From 356f0280c49a6b9543cabb42acbe27a83eea39a0 Mon Sep 17 00:00:00 2001 From: Yuzhong Zhang <141388234+BetterAndBetterII@users.noreply.github.com> Date: Sun, 6 Jul 2025 12:47:55 +0800 Subject: [PATCH] del build dist --- .gitignore | 1 + .../build/Assistant-Regular.woff2 | Bin 20232 -> 0 bytes .../excalidraw-app/build/Cascadia.woff2 | Bin 86812 -> 0 bytes excalidraw/excalidraw-app/build/Virgil.woff2 | Bin 61248 -> 0 bytes excalidraw/excalidraw-app/build/_headers | 2 - .../build/android-chrome-192x192.png | Bin 5091 -> 0 bytes .../build/android-chrome-512x512.png | Bin 14099 -> 0 bytes .../excalidraw-app/build/apple-touch-icon.png | Bin 4182 -> 0 bytes .../assets/Assistant-Bold-IJvrkktQ.woff2 | Bin 20380 -> 0 bytes .../assets/Assistant-Medium-63MQl4N5.woff2 | Bin 20320 -> 0 bytes .../assets/Assistant-Regular-1cWbs8W5.woff2 | Bin 20232 -> 0 bytes .../assets/Assistant-SemiBold-EgiOGxC_.woff2 | Bin 20212 -> 0 bytes .../build/assets/Cascadia-kYh-K9x1.woff2 | Bin 86812 -> 0 bytes .../build/assets/Virgil-EP9PimLu.woff2 | Bin 61248 -> 0 bytes .../_commonjs-dynamic-modules-h-SxKiO4.js | 2 - .../_commonjs-dynamic-modules-h-SxKiO4.js.map | 1 - .../build/assets/arc-uMvMTTPz.js | 2 - .../build/assets/arc-uMvMTTPz.js.map | 1 - .../build/assets/array-Nw74a44z.js | 2 - .../build/assets/array-Nw74a44z.js.map | 1 - .../assets/bug-issue-template-RzHCT2ur.js | 12 - .../assets/bug-issue-template-RzHCT2ur.js.map | 1 - .../assets/c4Diagram-9cddb37f-N9kopixF.js | 11 - .../assets/c4Diagram-9cddb37f-N9kopixF.js.map | 1 - .../assets/classDiagram-bc733c3b-nWtrl_HS.js | 2 - .../classDiagram-bc733c3b-nWtrl_HS.js.map | 1 - .../classDiagram-v2-8931bdaf-hkLGNE-q.js | 3 - .../classDiagram-v2-8931bdaf-hkLGNE-q.js.map | 1 - .../assets/createText-3df630b5-oLWc-GwH.js | 7 - .../createText-3df630b5-oLWc-GwH.js.map | 1 - .../directory-open-01563666-cQgJ4y3t.js | 2 - .../directory-open-01563666-cQgJ4y3t.js.map | 1 - .../directory-open-4ed118d0-LU9zN15H.js | 2 - .../directory-open-4ed118d0-LU9zN15H.js.map | 1 - .../build/assets/edges-49ac43a2-VNwnN65b.js | 5 - .../assets/edges-49ac43a2-VNwnN65b.js.map | 1 - .../assets/erDiagram-f6946109-z4VASuEu.js | 52 - .../assets/erDiagram-f6946109-z4VASuEu.js.map | 1 - .../assets/file-open-002ab408-YYr_q30i.js | 2 - .../assets/file-open-002ab408-YYr_q30i.js.map | 1 - .../assets/file-open-7c801643-DzelrtLq.js | 2 - .../assets/file-open-7c801643-DzelrtLq.js.map | 1 - .../assets/file-save-3189631c-fOa8IYo3.js | 2 - .../assets/file-save-3189631c-fOa8IYo3.js.map | 1 - .../assets/file-save-745eba88-h9NxcJsg.js | 2 - .../assets/file-save-745eba88-h9NxcJsg.js.map | 1 - .../build/assets/flowDb-6a57c1b4-o7QdmK-d.js | 7 - .../assets/flowDb-6a57c1b4-o7QdmK-d.js.map | 1 - .../assets/flowDiagram-93327f21-bzemmV0w.js | 5 - .../flowDiagram-93327f21-bzemmV0w.js.map | 1 - .../flowDiagram-v2-476db779-kB7FwdKI.js | 2 - .../flowDiagram-v2-476db779-kB7FwdKI.js.map | 1 - ...wchart-elk-definition-5082a990-_inAippy.js | 140 --- ...rt-elk-definition-5082a990-_inAippy.js.map | 1 - .../assets/ganttDiagram-7ce12d6b-bNEEGiE3.js | 267 ---- .../ganttDiagram-7ce12d6b-bNEEGiE3.js.map | 1 - .../gitGraphDiagram-1e960c50-nR2fIRcx.js | 65 - .../gitGraphDiagram-1e960c50-nR2fIRcx.js.map | 1 - .../assets/image-blob-reduce.esm-kuDQZwjv.js | 8 - .../image-blob-reduce.esm-kuDQZwjv.js.map | 1 - .../build/assets/index-2K3MavtT.js | 372 ------ .../build/assets/index-2K3MavtT.js.map | 1 - .../build/assets/index-4wu8EIXu.css | 1 - .../build/assets/index-5Jz4PfUi.js | 2 - .../build/assets/index-5Jz4PfUi.js.map | 1 - .../build/assets/index-a92ac404-gZDUZJdp.js | 2 - .../assets/index-a92ac404-gZDUZJdp.js.map | 1 - .../build/assets/index-jpNTxDe4.js | 99 -- .../build/assets/index-jpNTxDe4.js.map | 1 - .../build/assets/index.esm-Aqyp0Gpy.js | 446 ------- .../build/assets/index.esm-Aqyp0Gpy.js.map | 1 - .../build/assets/index.esm-EExsODKC.js | 17 - .../build/assets/index.esm-EExsODKC.js.map | 1 - .../build/assets/index.esm-J35DBGFx.js | 318 ----- .../build/assets/index.esm-J35DBGFx.js.map | 1 - .../build/assets/index.esm-h2kZ9fZN.js | 1081 ----------------- .../build/assets/index.esm-h2kZ9fZN.js.map | 1 - .../assets/infoDiagram-264bed3e-S8LyFZ95.js | 8 - .../infoDiagram-264bed3e-S8LyFZ95.js.map | 1 - .../build/assets/init-Hi12RPRh.js | 2 - .../build/assets/init-Hi12RPRh.js.map | 1 - .../journeyDiagram-31be0096-pp8z6RK0.js | 141 --- .../journeyDiagram-31be0096-pp8z6RK0.js.map | 1 - .../build/assets/layout-ewywu0M6.js | 2 - .../build/assets/layout-ewywu0M6.js.map | 1 - .../build/assets/line-reZX-DPl.js | 2 - .../build/assets/line-reZX-DPl.js.map | 1 - .../build/assets/linear-WA_JRKe7.js | 2 - .../build/assets/linear-WA_JRKe7.js.map | 1 - .../assets/locales/ar-SA.json-SV43LhYq.js | 11 - .../assets/locales/ar-SA.json-SV43LhYq.js.map | 1 - .../assets/locales/az-AZ.json-oLcB2OJI.js | 2 - .../assets/locales/az-AZ.json-oLcB2OJI.js.map | 1 - .../assets/locales/bg-BG.json-pnAjs09s.js | 6 - .../assets/locales/bg-BG.json-pnAjs09s.js.map | 1 - .../assets/locales/bn-BD.json-xZvqmnH0.js | 6 - .../assets/locales/bn-BD.json-xZvqmnH0.js.map | 1 - .../assets/locales/ca-ES.json-YA_IC9xZ.js | 9 - .../assets/locales/ca-ES.json-YA_IC9xZ.js.map | 1 - .../assets/locales/cs-CZ.json-xA16rUn9.js | 12 - .../assets/locales/cs-CZ.json-xA16rUn9.js.map | 1 - .../assets/locales/da-DK.json-IEeMktGi.js | 6 - .../assets/locales/da-DK.json-IEeMktGi.js.map | 1 - .../assets/locales/de-DE.json-i3JZdkyf.js | 9 - .../assets/locales/de-DE.json-i3JZdkyf.js.map | 1 - .../assets/locales/el-GR.json-HpHJuTAr.js | 11 - .../assets/locales/el-GR.json-HpHJuTAr.js.map | 1 - .../assets/locales/es-ES.json-B52Lj-PT.js | 10 - .../assets/locales/es-ES.json-B52Lj-PT.js.map | 1 - .../assets/locales/eu-ES.json-n0P55DpS.js | 12 - .../assets/locales/eu-ES.json-n0P55DpS.js.map | 1 - .../assets/locales/fa-IR.json-Gtl9UWDE.js | 9 - .../assets/locales/fa-IR.json-Gtl9UWDE.js.map | 1 - .../assets/locales/fi-FI.json-J5M8FnGK.js | 7 - .../assets/locales/fi-FI.json-J5M8FnGK.js.map | 1 - .../assets/locales/fr-FR.json-lfZo79tg.js | 10 - .../assets/locales/fr-FR.json-lfZo79tg.js.map | 1 - .../assets/locales/gl-ES.json--WW2Ul2N.js | 11 - .../assets/locales/gl-ES.json--WW2Ul2N.js.map | 1 - .../assets/locales/he-IL.json-4DiMSwaz.js | 11 - .../assets/locales/he-IL.json-4DiMSwaz.js.map | 1 - .../assets/locales/hi-IN.json-nhvtlCpV.js | 5 - .../assets/locales/hi-IN.json-nhvtlCpV.js.map | 1 - .../assets/locales/hu-HU.json-bmZtU8U3.js | 8 - .../assets/locales/hu-HU.json-bmZtU8U3.js.map | 1 - .../assets/locales/id-ID.json-XxPjS0Nx.js | 11 - .../assets/locales/id-ID.json-XxPjS0Nx.js.map | 1 - .../assets/locales/it-IT.json-rBd68gJl.js | 12 - .../assets/locales/it-IT.json-rBd68gJl.js.map | 1 - .../assets/locales/ja-JP.json-2da-VeKb.js | 9 - .../assets/locales/ja-JP.json-2da-VeKb.js.map | 1 - .../build/assets/locales/kaa.json-SGqCLwRa.js | 2 - .../assets/locales/kaa.json-SGqCLwRa.js.map | 1 - .../assets/locales/kab-KAB.json-S8YedR0v.js | 9 - .../locales/kab-KAB.json-S8YedR0v.js.map | 1 - .../assets/locales/kk-KZ.json-3Sz1_kBi.js | 2 - .../assets/locales/kk-KZ.json-3Sz1_kBi.js.map | 1 - .../assets/locales/km-KH.json-KP5HxHUN.js | 12 - .../assets/locales/km-KH.json-KP5HxHUN.js.map | 1 - .../assets/locales/ko-KR.json-brzJvi-h.js | 10 - .../assets/locales/ko-KR.json-brzJvi-h.js.map | 1 - .../assets/locales/ku-TR.json-3BiS76lb.js | 10 - .../assets/locales/ku-TR.json-3BiS76lb.js.map | 1 - .../assets/locales/lt-LT.json-VZNCnPUp.js | 4 - .../assets/locales/lt-LT.json-VZNCnPUp.js.map | 1 - .../assets/locales/lv-LV.json-5aVXkl-5.js | 8 - .../assets/locales/lv-LV.json-5aVXkl-5.js.map | 1 - .../assets/locales/mr-IN.json-uScRhQ9i.js | 14 - .../assets/locales/mr-IN.json-uScRhQ9i.js.map | 1 - .../assets/locales/my-MM.json-Rvx7mHUJ.js | 2 - .../assets/locales/my-MM.json-Rvx7mHUJ.js.map | 1 - .../assets/locales/nb-NO.json-Jc97XkYt.js | 11 - .../assets/locales/nb-NO.json-Jc97XkYt.js.map | 1 - .../assets/locales/nl-NL.json-lulb62bF.js | 9 - .../assets/locales/nl-NL.json-lulb62bF.js.map | 1 - .../assets/locales/nn-NO.json-19EVdr9m.js | 9 - .../assets/locales/nn-NO.json-19EVdr9m.js.map | 1 - .../assets/locales/oc-FR.json-mgdR7xZo.js | 9 - .../assets/locales/oc-FR.json-mgdR7xZo.js.map | 1 - .../assets/locales/pa-IN.json-6nU3HEBq.js | 5 - .../assets/locales/pa-IN.json-6nU3HEBq.js.map | 1 - .../assets/locales/pl-PL.json-e9P_Yfh8.js | 10 - .../assets/locales/pl-PL.json-e9P_Yfh8.js.map | 1 - .../assets/locales/pt-BR.json-SvBckatZ.js | 10 - .../assets/locales/pt-BR.json-SvBckatZ.js.map | 1 - .../assets/locales/pt-PT.json-kkhuggAD.js | 10 - .../assets/locales/pt-PT.json-kkhuggAD.js.map | 1 - .../assets/locales/ro-RO.json-IuXq2Sgz.js | 12 - .../assets/locales/ro-RO.json-IuXq2Sgz.js.map | 1 - .../assets/locales/ru-RU.json-AKny6SqI.js | 10 - .../assets/locales/ru-RU.json-AKny6SqI.js.map | 1 - .../assets/locales/si-LK.json-htW_YYt1.js | 2 - .../assets/locales/si-LK.json-htW_YYt1.js.map | 1 - .../assets/locales/sk-SK.json-9kwfDB_I.js | 7 - .../assets/locales/sk-SK.json-9kwfDB_I.js.map | 1 - .../assets/locales/sl-SI.json-ASsZh3wt.js | 7 - .../assets/locales/sl-SI.json-ASsZh3wt.js.map | 1 - .../assets/locales/sv-SE.json-lo_GRO0H.js | 11 - .../assets/locales/sv-SE.json-lo_GRO0H.js.map | 1 - .../assets/locales/ta-IN.json-heb0CKI9.js | 10 - .../assets/locales/ta-IN.json-heb0CKI9.js.map | 1 - .../assets/locales/th-TH.json-28RYlLeB.js | 3 - .../assets/locales/th-TH.json-28RYlLeB.js.map | 1 - .../assets/locales/tr-TR.json-EHF5lOjE.js | 8 - .../assets/locales/tr-TR.json-EHF5lOjE.js.map | 1 - .../assets/locales/uk-UA.json-opPb2znK.js | 7 - .../assets/locales/uk-UA.json-opPb2znK.js.map | 1 - .../assets/locales/vi-VN.json-lNqxPgt2.js | 6 - .../assets/locales/vi-VN.json-lNqxPgt2.js.map | 1 - .../assets/locales/zh-CN.json-I6DzD4ui.js | 11 - .../assets/locales/zh-CN.json-I6DzD4ui.js.map | 1 - .../assets/locales/zh-HK.json-0R3Wdr1t.js | 2 - .../assets/locales/zh-HK.json-0R3Wdr1t.js.map | 1 - .../assets/locales/zh-TW.json-b9fBzTxw.js | 10 - .../assets/locales/zh-TW.json-b9fBzTxw.js.map | 1 - .../mindmap-definition-4fc2557c-YYRKFqOa.js | 110 -- ...indmap-definition-4fc2557c-YYRKFqOa.js.map | 1 - .../build/assets/path-aUcfwwLI.js | 2 - .../build/assets/path-aUcfwwLI.js.map | 1 - .../build/assets/pica-k97f9p3G.js | 8 - .../build/assets/pica-k97f9p3G.js.map | 1 - .../assets/pieDiagram-157505fe-K3QYu1_A.js | 36 - .../pieDiagram-157505fe-K3QYu1_A.js.map | 1 - .../quadrantDiagram-fd70f2d0-9W_l-w0k.js | 8 - .../quadrantDiagram-fd70f2d0-9W_l-w0k.js.map | 1 - .../assets/random-username.esm-K7eb4aAo.js | 2 - .../random-username.esm-K7eb4aAo.js.map | 1 - .../requirementDiagram-19c99588-nu0kgzn5.js | 53 - ...equirementDiagram-19c99588-nu0kgzn5.js.map | 1 - .../build/assets/roundRect-CCyChLky.js | 2 - .../build/assets/roundRect-CCyChLky.js.map | 1 - .../build/assets/selectAll-ksDY_7eo.js | 2 - .../build/assets/selectAll-ksDY_7eo.js.map | 1 - .../sequenceDiagram-5dfd0049-6G3skaqL.js | 123 -- .../sequenceDiagram-5dfd0049-6G3skaqL.js.map | 1 - .../assets/stateDiagram-133e3642-C-DPoShl.js | 2 - .../stateDiagram-133e3642-C-DPoShl.js.map | 1 - .../stateDiagram-v2-6371a76b-m56clzbO.js | 2 - .../stateDiagram-v2-6371a76b-m56clzbO.js.map | 1 - .../build/assets/styles-5f89df53-Cnw1EiWb.js | 111 -- .../assets/styles-5f89df53-Cnw1EiWb.js.map | 1 - .../build/assets/styles-aefe6593-IaILeGot.js | 161 --- .../assets/styles-aefe6593-IaILeGot.js.map | 1 - .../build/assets/styles-fa41df25-AN4ki2j_.js | 208 ---- .../assets/styles-fa41df25-AN4ki2j_.js.map | 1 - .../build/assets/svgDraw-0fcc813d-8P1J7hc8.js | 3 - .../assets/svgDraw-0fcc813d-8P1J7hc8.js.map | 1 - .../assets/svgDrawCommon-f26cad39-uSOEV6F1.js | 2 - .../svgDrawCommon-f26cad39-uSOEV6F1.js.map | 1 - .../timeline-definition-5ed366f4-6Q7yW0Tk.js | 63 - ...meline-definition-5ed366f4-6Q7yW0Tk.js.map | 1 - .../workbox-window.prod.es5-prqDwDSL.js | 3 - .../workbox-window.prod.es5-prqDwDSL.js.map | 1 - .../excalidraw-app/build/favicon-16x16.png | Bin 973 -> 0 bytes .../excalidraw-app/build/favicon-32x32.png | Bin 1720 -> 0 bytes excalidraw/excalidraw-app/build/favicon.ico | Bin 15086 -> 0 bytes excalidraw/excalidraw-app/build/favicon.svg | 7 - .../build/fonts/Assistant-Bold.woff2 | Bin 20380 -> 0 bytes .../build/fonts/Assistant-Medium.woff2 | Bin 20320 -> 0 bytes .../build/fonts/Assistant-Regular.woff2 | Bin 20232 -> 0 bytes .../build/fonts/Assistant-SemiBold.woff2 | Bin 20212 -> 0 bytes .../excalidraw-app/build/fonts/Cascadia.ttf | Bin 213476 -> 0 bytes .../excalidraw-app/build/fonts/Cascadia.woff2 | Bin 86812 -> 0 bytes .../excalidraw-app/build/fonts/FG_Virgil.ttf | Bin 236876 -> 0 bytes .../build/fonts/FG_Virgil.woff2 | Bin 119508 -> 0 bytes .../excalidraw-app/build/fonts/Virgil.woff2 | Bin 61248 -> 0 bytes .../excalidraw-app/build/fonts/fonts.css | 38 - excalidraw/excalidraw-app/build/index.html | 201 --- excalidraw/excalidraw-app/build/manifest.json | 74 -- .../excalidraw-app/build/manifest.webmanifest | 1 - .../build/maskable_icon_x192.png | Bin 3639 -> 0 bytes .../build/maskable_icon_x512.png | Bin 14181 -> 0 bytes .../excalidraw-app/build/og-image-2.png | Bin 74022 -> 0 bytes excalidraw/excalidraw-app/build/robots.txt | 9 - .../build/screenshots/collaboration.png | Bin 29035 -> 0 bytes .../build/screenshots/export.png | Bin 25959 -> 0 bytes .../build/screenshots/illustration.png | Bin 48095 -> 0 bytes .../build/screenshots/shapes.png | Bin 25306 -> 0 bytes .../build/screenshots/virtual-whiteboard.png | Bin 27910 -> 0 bytes .../build/screenshots/wireframe.png | Bin 27243 -> 0 bytes .../excalidraw-app/build/service-worker.js | 20 - 261 files changed, 1 insertion(+), 4900 deletions(-) delete mode 100644 excalidraw/excalidraw-app/build/Assistant-Regular.woff2 delete mode 100644 excalidraw/excalidraw-app/build/Cascadia.woff2 delete mode 100644 excalidraw/excalidraw-app/build/Virgil.woff2 delete mode 100644 excalidraw/excalidraw-app/build/_headers delete mode 100644 excalidraw/excalidraw-app/build/android-chrome-192x192.png delete mode 100644 excalidraw/excalidraw-app/build/android-chrome-512x512.png delete mode 100644 excalidraw/excalidraw-app/build/apple-touch-icon.png delete mode 100644 excalidraw/excalidraw-app/build/assets/Assistant-Bold-IJvrkktQ.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/Assistant-Medium-63MQl4N5.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/Assistant-Regular-1cWbs8W5.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/Assistant-SemiBold-EgiOGxC_.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/Cascadia-kYh-K9x1.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/Virgil-EP9PimLu.woff2 delete mode 100644 excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js delete mode 100644 excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/arc-uMvMTTPz.js delete mode 100644 excalidraw/excalidraw-app/build/assets/arc-uMvMTTPz.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js delete mode 100644 excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js delete mode 100644 excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js delete mode 100644 excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js delete mode 100644 excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js delete mode 100644 excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js delete mode 100644 excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js delete mode 100644 excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js delete mode 100644 excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js delete mode 100644 excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js delete mode 100644 excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js delete mode 100644 excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js delete mode 100644 excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js delete mode 100644 excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js delete mode 100644 excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js delete mode 100644 excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js delete mode 100644 excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js delete mode 100644 excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js delete mode 100644 excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js delete mode 100644 excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index-2K3MavtT.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index-2K3MavtT.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index-4wu8EIXu.css delete mode 100644 excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-J35DBGFx.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-J35DBGFx.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-h2kZ9fZN.js delete mode 100644 excalidraw/excalidraw-app/build/assets/index.esm-h2kZ9fZN.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js delete mode 100644 excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js delete mode 100644 excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js delete mode 100644 excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/layout-ewywu0M6.js delete mode 100644 excalidraw/excalidraw-app/build/assets/layout-ewywu0M6.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/line-reZX-DPl.js delete mode 100644 excalidraw/excalidraw-app/build/assets/line-reZX-DPl.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/linear-WA_JRKe7.js delete mode 100644 excalidraw/excalidraw-app/build/assets/linear-WA_JRKe7.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js delete mode 100644 excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js delete mode 100644 excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js delete mode 100644 excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/pica-k97f9p3G.js delete mode 100644 excalidraw/excalidraw-app/build/assets/pica-k97f9p3G.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js delete mode 100644 excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js delete mode 100644 excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js delete mode 100644 excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js delete mode 100644 excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js delete mode 100644 excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js delete mode 100644 excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js delete mode 100644 excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js delete mode 100644 excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js delete mode 100644 excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js delete mode 100644 excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/svgDraw-0fcc813d-8P1J7hc8.js delete mode 100644 excalidraw/excalidraw-app/build/assets/svgDraw-0fcc813d-8P1J7hc8.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js delete mode 100644 excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js delete mode 100644 excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js.map delete mode 100644 excalidraw/excalidraw-app/build/assets/workbox-window.prod.es5-prqDwDSL.js delete mode 100644 excalidraw/excalidraw-app/build/assets/workbox-window.prod.es5-prqDwDSL.js.map delete mode 100644 excalidraw/excalidraw-app/build/favicon-16x16.png delete mode 100644 excalidraw/excalidraw-app/build/favicon-32x32.png delete mode 100644 excalidraw/excalidraw-app/build/favicon.ico delete mode 100644 excalidraw/excalidraw-app/build/favicon.svg delete mode 100644 excalidraw/excalidraw-app/build/fonts/Assistant-Bold.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/Assistant-Medium.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/Assistant-Regular.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/Assistant-SemiBold.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/Cascadia.ttf delete mode 100644 excalidraw/excalidraw-app/build/fonts/Cascadia.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/FG_Virgil.ttf delete mode 100644 excalidraw/excalidraw-app/build/fonts/FG_Virgil.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/Virgil.woff2 delete mode 100644 excalidraw/excalidraw-app/build/fonts/fonts.css delete mode 100644 excalidraw/excalidraw-app/build/index.html delete mode 100644 excalidraw/excalidraw-app/build/manifest.json delete mode 100644 excalidraw/excalidraw-app/build/manifest.webmanifest delete mode 100644 excalidraw/excalidraw-app/build/maskable_icon_x192.png delete mode 100644 excalidraw/excalidraw-app/build/maskable_icon_x512.png delete mode 100644 excalidraw/excalidraw-app/build/og-image-2.png delete mode 100644 excalidraw/excalidraw-app/build/robots.txt delete mode 100644 excalidraw/excalidraw-app/build/screenshots/collaboration.png delete mode 100644 excalidraw/excalidraw-app/build/screenshots/export.png delete mode 100644 excalidraw/excalidraw-app/build/screenshots/illustration.png delete mode 100644 excalidraw/excalidraw-app/build/screenshots/shapes.png delete mode 100644 excalidraw/excalidraw-app/build/screenshots/virtual-whiteboard.png delete mode 100644 excalidraw/excalidraw-app/build/screenshots/wireframe.png delete mode 100644 excalidraw/excalidraw-app/build/service-worker.js diff --git a/.gitignore b/.gitignore index 0234a98..81c391f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ excalidraw-complete node_modules .env *.env +*/build/* diff --git a/excalidraw/excalidraw-app/build/Assistant-Regular.woff2 b/excalidraw/excalidraw-app/build/Assistant-Regular.woff2 deleted file mode 100644 index e17d6eccaa7e85cb2a516565fa415ebb46d0e57a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20232 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∈%?q7f-cLnRe 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 TcQlRP`t>*4_1V8ZM$4EBNmmhp diff --git a/excalidraw/excalidraw-app/build/Cascadia.woff2 b/excalidraw/excalidraw-app/build/Cascadia.woff2 deleted file mode 100644 index b2eae9f40b917f56468f63766bb8aff907d9d2dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86812 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

H4;(BXGc?le%FC2c4K(amM!3jrZ$`#9?hR@ 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

o#<~uUPluf;eW3^a zA`lI2%dzmt|M!w8=%AE2YgE1L*2es1nB2Z&ORHK zc3rXKqs?#~7gmd0(76%8Y@UNKH4IJAaq6Gs95jC-i1rMyK>=&t(&tzg*!EL>WmPD+ zPa3Z{5B)EtfBxAq+NbZfdH>42dff3t861lYz?Q*l%G=?!Nq35sneiur)^16Y;i~hX z-;tZk#p8YQW99p`eS6#y-w^e>{P0sqX@ZJ&tt zAZB4~$+rD+Fd3WQJ&W$_o%?!G0M~eC!!Q=`zWd-4rq_rOV*fs2KdtC#&Pj$|b&nuZk$qeo*9pV>3g7^m39_~X#5p%e z<~z9`sMGG`BCy-V#_nQIZ?jS9Nsk0AWzwML8@Uj07=`7r07qzk!9$g$aZy+ViG+X! zR*Z6lYXJL=Dvw5pG~i2>^`3pPoypNB2Xsc3P4Zq^h-d1?*V7~a zxsmA+AsjxLX)6)0$Yjj;TP@ zf?;*opij&*_drN_z1&OrRgW?1yzpYnWU-3oErVwJ!+bAy3zqTOuGNgXonb$@-jqQM zX!^UP&?7I}cCel}$V;(b8Q$hh*9PLgN7Xh=_NZovF6=iCZ#@u(;`G29Ut6V^h+U)9 z_6`Qa6YU$x@yU?>My-$c+n!)xyz&BN2w1z($>DCk1&a(PZMkO4?=^;PE6E<{*?fG( zM(rrt(c+#xbJAL=PYcy@40cmFJv=>|hV8I}`$xDzDh&b0OVxbuzzZ7VqMVeUSc6-W zT_gz&Ua$`-=wlc*$2-GvgybgDQk-$o)ri+KzPozSB+y{M#h|H00-w~9xRAVPv61-m z(GYZ(66ZUho4sX-`S_Xov>HxhsB`~I@>x*BbrBebyWY!=Qv~^q` z>XUi)!s>CcT(L;r54uyXY&^P zQ`5fjn*Y0Fy!$|r?54&}4R_Wy2H*1x9JhAx*^%9m_R_Nt*`mJ=1uS8om-Dmb31

  • _{zDz&p>3TDQc)6hETbC-{f_tzLHj$*#VYkB| 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 diff --git a/excalidraw/excalidraw-app/build/_headers b/excalidraw/excalidraw-app/build/_headers deleted file mode 100644 index c776a47..0000000 --- a/excalidraw/excalidraw-app/build/_headers +++ /dev/null @@ -1,2 +0,0 @@ -/* - Access-Control-Allow-Origin: * diff --git a/excalidraw/excalidraw-app/build/android-chrome-192x192.png b/excalidraw/excalidraw-app/build/android-chrome-192x192.png deleted file mode 100644 index 34c7c2fc3e1c12a97e61b342ab2d92f3e0e36f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5091 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 diff --git a/excalidraw/excalidraw-app/build/android-chrome-512x512.png b/excalidraw/excalidraw-app/build/android-chrome-512x512.png deleted file mode 100644 index 24ea4de79a443a75f1ce803bf2bee4f42cb2abe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14099 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 U8wsAYcM|}4X%(p&iLYV*18x@aM*si- diff --git a/excalidraw/excalidraw-app/build/apple-touch-icon.png b/excalidraw/excalidraw-app/build/apple-touch-icon.png deleted file mode 100644 index bcbbeaf98096bcce1fa0edae987c301cd3bc77cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4182 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 IDVPWU50jp`G5`Po diff --git a/excalidraw/excalidraw-app/build/assets/Assistant-Bold-IJvrkktQ.woff2 b/excalidraw/excalidraw-app/build/assets/Assistant-Bold-IJvrkktQ.woff2 deleted file mode 100644 index 751ba1ceb5883ebce6c67d21c572ae2dfb78f24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20380 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∈%?q7f-cLnRe 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 TcQlRP`t>*4_1V8ZM$4EBNmmhp diff --git a/excalidraw/excalidraw-app/build/assets/Assistant-SemiBold-EgiOGxC_.woff2 b/excalidraw/excalidraw-app/build/assets/Assistant-SemiBold-EgiOGxC_.woff2 deleted file mode 100644 index d17aa74bba428f3dbb386ed8fe12e1526b955f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20212 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 diff --git a/excalidraw/excalidraw-app/build/assets/Cascadia-kYh-K9x1.woff2 b/excalidraw/excalidraw-app/build/assets/Cascadia-kYh-K9x1.woff2 deleted file mode 100644 index b2eae9f40b917f56468f63766bb8aff907d9d2dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86812 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

    H4;(BXGc?le%FC2c4K(amM!3jrZ$`#9?hR@ zxeTtbDH2EGwhV~YXx3SmNyH+kaf%w$pjkcZeoS@0J*z}&-RUE(`?Bo5xXnX{BLIWSA8CUHMJpF6@ueJjD!J|h8#NMX@tU2+K$2uRA5>o zFposT6e=(+9kvsJxj|uUF)*5;WVOkm`ag}XZOh4O!z!x{h*<&ZkZxDn#%o)e+yh$M zSh}_WB)`#X8^&lxyWXz-c5mpp<7919J%`q|<#cUh>Dm_WsgY!DQ}+g$e7d%=bZv|K z6p;Z+wV%_lUS>h`+7=6SH6HyjjmY{(VGxaw=8mFD9FDlw;Y`-ZFai^SnHvQ|)<4=# zTWmX+m(lu%c{zpY8c0_2vdt|TZPm#}qr%jFvINHA?AV2{M8)cnRj_xd!uE6lyz7qP zGaW8vEHe~5VZMUrHU&>f=JZT*z#1iURN!Kfl`J`4T^}HvDeCJB##zC!==sXxtO}8NQC4FYZ5~FVTOYRuArx%fxmS!Jg2npUR>K zHjPRS>Jf~Nj1aHz3_x7LlO;zNS>gR??opS7!|K5Z_#!tQz5qrcUoRADxg3)GJ?t%- znM7nwCU}fG(QC1atfiV|8J7_?r;%3(!ez8ww0ilG0NK$HeRdlt!DIEIG5XzX4V>Nh z!B5A*hL-T*!>s9v=fUDPfr}GDt$kn_s|m5jP$>K}Sx3kSh}P(@@&|!QqtY4_W}pJo z8i9Ev8m3TzX-6#urc8mM);=5QEH2d5co-p#s3RJ&zse(s)rhfUyVl{@YGfG6BOowy zqhN?e?62|&RPA6+KpGKqLMoFJ@Yp?~$zBbR8JxnHbU~RZ$ix+4qd1x?eC<@BicjDT zwK9~sCPo+1QOr;90(-#P9N88<=P< z7tap;4{Us_cEdxkmhA(f3uwN3WdD{mTvDht|D*rOTIG*q?ne`^?*`LADdaJ$*9?T? zb|S;60jtT%IYf@pBXwYr1=mq7S>%3uKh}Y;V6`9%O^McC*SP7OHGz{4Z2~iXgkJ}? zRwDhtm^XX~bhV$r;QirQY-&~)Ei5N%Wd`mA;ZjMpS3cnkH{py0gfmp@f`+jN^bDt3 z5hQ)&u4}{wS4&X{wRxYivfe^Hc6gAEPf+`WbluEAUIp zb|qU_{Yo{vH~iN7ue=X)L#S;z(q%$MKEckov4GzaZeT~Y)L@R;j@nKk+SMB{>N#CZtCUv&p06yB zW#8Tkj<}Au!l5oi#YVmiwN=(aVqT;jGJg}Ibe!5UqA-ODOiLVHu^r7y3ZXZJ`HE^C zvo4CaBq-#GAc{CSJI2~%6z!&JyW$f^V~@N~ZC+{5o+TxbaU9&e%CLC!=-!dxxc2_t zVybtTW=^dl0|RXgT;sxx_=|tWn^2kWi%l;g; zjj+#^BmHKp!dF-mYYJZhz2MvMZ5NA7zi>*p@Ccj0b_q9yzrlTzcFF8bS4S*uyvk;w zFas5s)(Fh1XqZ9;MvBn6V%m`+bkpNS=)870W~MwPJ%`pKrR{bRx(ou$dWiHci+C{v zqjtSr`|aM)b2LJydQKIg^SVidF3wXki5H{pEfS$a-Qfsbyr;-&JUuExr;tA~equ9D zS4Zg7BaSnZ*E*cZ8W~28&|#PfYM2YcLJ3BTwD1;rE*a*7C@9j~TovDN2~oWvylG2w zRd{o0?eSK(bS+*>1g1uYk?tH?{zfJ;KS7x^4dQ zATk}1u)@Fem@%N+;GC`w|Ls(4VbvXzcIJA!vUNmyU%AVkTTzzO57{T|NJWr2W7vyGTfDC(a9`O8g{n~q2Q+@FE^@~=9uROaTF&CT|IuE`LdVyXA zu;;LKBff3`li4pv){i*(3fvYh9L=tJbt#uRu;mz=@UQz?KO2JRN^m69U!>-l451x| z&QNGCMM!PREK0g?B%-|s(cT}(NOajnvrROc^)6j7NpBMMY*0uc!}KcVSAn#xL!yE> z66o+3dHkw~X{L}@RBESDLIwJty#L#1(tyE;C8Uu zB?VGlM+83K1JA*0Z4CTIwpXT;n3)sXD`q{yj{&B5-f;%+b}_yzyHgI1)`2~M1Ih3! z82%Xj_r#$?Xp#Erdw2s5c<`F zr}1OJf)w~Agi1fnH!h-%nzciv=YPf@GC4a9*j$+%#h0eZz;IdSahz^oj00-oCeY z&48mDkG?y0+UBAC|8V=D@tHG*AKeC5V5=PCL@02d+N#U8t7MhJ6e=(+@n8@Ia>&|6 zVJ^N#U^=T~-m&dS-fjM`wL>Wha#V2>91}q;twof~Wby)ux@6I7)TIa--r^E1`XHZ1 z3??ZUT!3kbdB)ZgsXafy8x(vNB`jf@yga1;as{`&_Ge&)Zvgnslh4A|ON(zw>Uu}F zdp9i*{|YiDOxXVjw+EPiH~{D7eX{q{E8bUih7HT6Z_X?Np(5~Ded|<}?Pf!g>I*ns z8j*Fm7_&|^tAkuLd`|2*f1K+3MeYz?yO(h|d4 z-7fZ6dhZl)BJa6w#JU5=;6QBOS4#Rp%QyoD0Xrm-$O(2rsDBKuphen--Y1dgTcm!@ ziY3mV6+{bq*2r;;R(_tw`IS~8o;GgnT~JJ0M8DrT@76jU(BbcvR2sh}XNrjOpTHjJ_BL``FlHA~nUxs0}si`+g zMd4rK&laXJu_!mIV_cDWz%)h{CFa%)CN*HUBO4|KnUg8iZowiFbF#osC08*gRSc}Q zD%oAwnw&?u8GhQms+`)B)R6QfgV)sT4L9Cw%?tR6K^ftOISQs>)p!O*kB3lZvzjtC zP8AXBBJCPt{iEkeY?`W%BD`Dg1Ag*C+N$OZ80i2b&%hdF=A`kT-&la2cA=+t5!p=% zSb43PGid|^-u#v$6cxm7^>cow^x}M67S~XBda-MD<9)8hr|aN5)uw9Hq>EeAx{SYc zV*xj{bq~g#v`yx0Pn0yPS8fVZsKCgQs&5BVrobqYs#ni_Y;Up*>Q!?;0KwFdSWHsD zV$cGf*WwH<&jMfocma;O2zr1X7vU)I!bSLR_;2<#_Fv%(Y)050?$5fz z-=TIBQM-?l9U5=I1aumX)$4*u^HxoYuv-(UhLbge}sB8 z2GR~0L%o_}23AE43R9@SNEEXO?O@6j7@1-QK~1qlq}v`Px~*O<<+kYfb1Y60T@CH~ ztC3-3DaSB#qhN?^)~jVR&e&!sFcQCG7=_=Fj^MiyS|Dc2)iX*!>tKVW{(`^)6m-c`C-%#X@iXExhOjGDqJW`p#sy=AxxP9b2SbO&X+Qh zz7Y4}%oW%q#bW~KGmcrL8A$F^k~3=OH6}wr;3L@wGdqa)34A2px446dkpx3LJ*Ax( z%TR6yTbMIDpoa{D$GTYd7%|T4_-;%Rlgso7q&nR$(c?A*GlVQrhq%IGMlL(fUrAt$ zk~iZhw-XzOn%mUI_7bbG)XRI^cCTBLmn9&d5eF8L<(=Vnfm45d{pZgXPki_x=sE+m zZ4L0C!EHP!PPwOF*4AY_S-`4!VwX(a zb;4vcnperpeMJ4=JPQENtM?h#2{$P)=PoHQ^-(a|uP6+Yi($~*e#98S{bX*-3joL+ z7kNhBotzwLS&6ja_Hm@mPk`C3v5~g;eVt_z<-UsJ_JyC)<-|Po8S3#jpVGb`^VIpa ztC4Xrw)jt}sQL+|SV1gR-_RabTKk)4`|`NRQ)-$`j-lBn63t2p za7Q$Y?d>dB{#(6~=Pt)Q_Zhh3_dKU_#XN`Uc7o6iJqXI;Kc)Fxq1&17X}nA!Z-fGT zHw8+HPj-#A%3|l>Y+^^8y-R`ljOhSI6M?yKDFz11JF=y)ymw*BnBqWsK9YC0K`2oP zdk?0on4BRdccK#iZUGG>Afc})@OLEgS|N5TQTv-pAZzj+kqyR?zo`&_Fn&1Qd>lB% zmdvWvgF>IF%Gf`>6q%2ek@+AzvOt;ZPZiluV3Hd6-bnKwY1Q^C(}&bYcpbKFm#lJWo(wG`#yV(vb$3U(qdcyD^`Z|B9LVuuXS~!aV0vRpgG}^q#krse)0;*+K*8FrZyX-d zdsppL*HobSW94((p5!=K;(9PxUXhePq0_SG3lrV2a_^ryS(lKKvk8ss( z+y9cgpNRSv%eQHPA2 zaPVoWn@R2t*VifQUBr3y2&Pig%vjJ`lOAxGoFZc~2CYJ($O~Fz4@mpe=tcKJ{dlN2 zsUP45&ZwhAvF&_9+evHJ7tvP~=EFjzuP4;DfDX-&o#q^w3}l)eeg81<NoO%2_bjMO z7L7V>koSl-J|gu*;N|`K46@arqNk72lb=!4G%?J=O7Q$o5>2 zFsn%vJDPGZ_0XI-hg$l@Ogl@sGapH)8&S;{aOzEoqRGSv9uZ?^RpuEJN|sdzQG`?v z5;^6l24q9<2l&yAFF*WF2p6ZkSvO$ifTXFrw%xPM%qDG61QxblA6BvUeyjPY!@zCZ zx%t7zBpJyka&(@`ERiENHCB%Di5*B`&bbtrC!%2@?KHbOY9|8o35D^+!u*F=Lg%Sv z;-Yrfqtv3wPLnMf@M|l=b1Fg?m`b@yDQ#PM2}Iro$=6hUYUTnP#-$t%o3&&(X14PX17Ms zCC)sZ?cdQ{?owbr%kKb26M?x9%M(}%kZp#gAQyR{c>%AfGZBJ3ECfmEViKcBg6&;p zmn@zvL?T{UG$QtEvf;mTFpYxc&0ii&sOeBnOnHOo<|>Yrxd9cL$moYFBRij_j7-VV zh>>qjlY~=ZZFv9}Ux5F=xEf9w1kM7*Oc_+351|olWrsguuTVZWZk+aztty$E9 zAY+hs9{o!6z67gcYz<`C-6Vv+4L%P>gR4Q&Q!%|O{1QA5N3-h=J;LU?j_3rqr|wXA zDY39Kc^$DfvY1YRM3)duxA{Z|8fls#MbsM5Sb@k`Wz$2lc$|4TBoPN2bh5%N^&^u+ z!zpU^B?B1y)K-UK$6~5(z4qhC-nn>G(z7u0m`(TRy|X4wQ55d+)?V-{c*V#yE6SF5 zB?v>J!+uhG$=NoQbWoVd3QThZroJN>$#=|e4^ynbe127FXJr%&kyZ-x;eTTAQ8Hee z83*1owhLC-Xf%?UE0S|wiQS0zI_+6xnYY`Kz32c!{gI}b6K@bB@!g~0(d_eg%!Q}I z2XV{&q?VKLiK;}4SL6&@ku?}JMvFG6VS-Mjhsf@ZlHZHiBDOzKYyz|3&PcEP8+g@& zd!l=8Yis)($(~$^#{CP;UxY`QN^F&RWApn)YpyUxx<`ihJnhr%HqkBwohGwrGDtzR zB-=?jr2-p2$VmVt(k_&n-PU*f_`dzdjSHUw+hIN11q|ljCI8T`@A#JDL+sm!TQ?q( zvn5CK*(5G%)*?>DIi!LtAF8}!oU16eb%<>|grApk14k2{2&?U0g9d0@Qcf`-`XQ)Rs^xFoXMs%oaYQmxt}>lvFXr8g!tEGcnUM6NO*`owB5pQckXV&V1_mL)^@f z1U);^1Yoi>i{Pj{oim!=H8ei8wW*DP7b7zonOQ!&r5R=%b6B3-%UvYOAnZ~o7a7Tg zqS%qJed;}lIE1KE1FQ!c~{(n%tKm<5YE;=%UW#&Nh3o>6BV z$Kg?R0&-+dhASgE-$xnAet9GZ(45qgkr2-lqwbpSa*9YbV*#S7IG+4a+LLr-LC~_- zWpr0yn!}lFP0jbmA~^ms_L#%^#9prKP;0Nh{db8KNfYjQF_I<=&P>#4kt?NA{zU6X z_0XVd7tflyH8fV#8b22EC@>Ix@d@)1jp#ac%DhntUO+UZFW|5kIXgc8fI3FX(k!d8 zNM48^XT0<*^|M;w^slNhhCyOLvFcz+O9? zN2MwQ_kwUS(S7DiWGBMaKHqr(8ovXdCpTIsE_xs+n2=KwzZ(-i8+M7t1ocrxEGz7_ zA{q-CQDB0MNiivC424oy4w9=}p_b5Cu_*Vb2g?U( zQ@aR_&PsP1_7J`75L9}Zzz|>0O}Gksdb~j|8kit&6M2hUwbR;HH2Em88ittbTgK&x0 zPhI<-L`d_v*E{NZI{k&U|IFhbRG=0W&X8{;(*CCDz2j3&_5OX@cn_iHl*Jw}(PH)?}IlxC$iwY+x55)7-_W4Jdp z)n@#AFIKtsU1*^^t}@l2;cwqAR?fQMl}4h=c}e#I)k-7#Ie7KQx#%WQaF7^=N*ht@ z-a$Q@5+xQ@)qLej^SPgXI=ArNdl#a&3uFKRXhAys4E_Rdzzd;c2cLcQ)n^YLQ+uT# zO%-ot6XHfHB$#uI0@FTHA;Ek?VNzn-IfLT@7zX?442?pprv80;qU_(NbP$D*p8Hbi z0Y@S7X%r$YUKFCRU2kW>*5B$4J+~4^A)=o93@rH_&ygrZ)N|(MHfvt2uy%Uuf0XRi1#M>G`@j8^jn()*;p1OZoC z7^3d)2_cRWCT%d05fcR=O>_t}21+6T2=bJ%4%djSsK{KT_LiQUwjE%#mbS%2aoNl%HjZ{ulhY$d)@m%2&TdmTj~aY-n4G z@H>RFqnRw6ukK_sJwC5VuhRl#a;J!PW6)^OPS+-iT5bD$bq&c^$MFN2u+C=58S9yX z6JwkQJfLg!_=m1EFPu1G{B;_o z*#bYs`lkT2Y@EOrCchf~?%2WF3E@+zl;TUJc_~(NQ?|Ap_YPNPh0ZUTm2L9gnG3-@ zLiBnj)0rs^Wav^v9dESaxR=0Ntqh+h^4eg6Lrh?@B2-v_JSP!aR7|6U*fI4k*r`*}9#|JJ8_b3~ z;10aM1&jGgGy=SPk`wT_O33j5 zA&W{i@>we{y$Ncv6CA*?Z~N&%qt>qlJdSn1%OLyM=>@aC{s3M)BxmogBvQ~@B?TbC zppt@Em}Vvp46<%kk`<#j(cxdUjic6AVzl+O3rUNMM2a&59z(X-;>)n7>KIp&=+cs- zwX*j?_rr44x!X7`K3j@xMzZ2v0xK+jW=KNyQ$wHH>Myyn`yoW!PTSUbZeG^=`MLoE z-+cP<8!n6OxXo5EsIa@aU;d)Shj!t(XWv2HI@t^J*R6c!aXbQo85v~-r3CfI^IWP? z#=`pAUGbnk{YC9yq< z{>IFeWgocnzaJiWCB3`XnbW_Z;I^_C|2$?{kAz`01uKRX<&X9kC8m}P8(6cniCuH} z#)seS**~HrWx#KgDY^4V5 zX5?@i1YI>YzwHX!`Q_XN;w{oL7s`G*XZhhncoi6$z~?aSo(GC*h9(SNi@ZW`@el~W z0Gr$)7jvjmSw>Xy8eu8FJK z2N;y@)hLYk;X`ow&{>Ma*+b(bEE=1qW2=E+LcD#f)x37(=p#L1V5%(!Q?)?|@@~cD zm$Q-8K7R}i*aOJ(9~y@a5%<46IS@DZLEMb!fw*}Hm5NJrr(Z1Lc0OQ-Ywa)uwc@$}10v!^at)U*vAv^o>Fx&HAY zdn`O~(jOjrmhIKL%X7eRX3hdhPDy?f7^(J!y=GNxb(fsEC&8S%s=z!S4HIeS6AF{u zt{q~TQjx~oLnKbQ)5AvssZJx6z-V_+Ts}?`< zde5*WY9`K*5sg*PL^`h?5u(i*V*8I((`+A;fQOZ=aso(udU zQQ`Iy&_TkRN+zPy+v3VcOiG(tTBa&v`1ERIq#L70N@zAxO*5}TGx@v{8Y!*?YTy}! zogA4dvPYdXI0aXJ4l*4e;d8i=&u-nq)wDFD=aGxWi|Bb=W5K57&76TTkVZ^O^j1o_ zi9Ku(THILaSpLRx$Hdc*z}97^WvJC<_^<)Drlpx1-ue<60coAg=yWwN+SEHPu`rUv zyV}7JiJu-N@%R`)MB-yxl4Lp38yYVT;0{LPrDqL*mYg*Zf_izh%2@-albki+L~svW zdl|yZa3xrI8HRshO>6>u0L%|x4qpN_a0_m=6zSths8u`Ob*B3bS}t}n%JIr2&xb_{ zl9hsUaAGr?5Mx9eLBKvmjd%yRtGSe z2+ReFw*$0mXSf1$K2d>DBm(b8n8@y?d=f#RClO?SAnGJS9a|lKl&cCq&CWf{zIpg? zxX)o}$H_#-beG!JH}Ek#g=&~)rUMv4XA1KnRA8Q$y<(hC#w+<`1%V`sgM>L5T}(Qe zQ_0*SN4Y!7CPStu_I`Os(ea7lVz>&dJexqX$?k*y{ruGF3%`*{#xp-6Dla54Yb}X# z;ygjZ(;9>q&rEk9drTL*zlpViRDC9DKa)Gq6avNQN4T$gACttdj-j7aM_BA`>-oWJ2KL#8Ii2Q6qa00vE@lq4QlM&!yB(^n5R2j`5}Z zK33p5A#M<^9YGVkLsQH2W-6GQm?6vvW(@OG;FhkPI_2c}e5t94{y?CjV(8EzLq?8t z_UzS*Wd*@tuvnaSvFN6o`t=(zV({QGV?1cK^YXH?($kZZJqe=I% zCYw|amcFEO@5<-sS4aOIc_Ha=BK;oq&MNVfH=X0yx8I#b-WZlcZ=cWU1M+Y5?wJN> zryWj%t@wxX*S;6h-n)Q)10Mg_(f%(P070+D&#^<%Kf~6Rp6U-5$uAtBiGCj-|Hu9- zeIFqILKjHP9WH&s@S8Z~|TlqpqJ|@x>np}R4bT4Z7fo{Fq~fZo`l+1ej>)tCq-E!F{5Aj{-0+LJ zMws8H?}k8j(a7Nl8pe0yWn)Ne)(p&v8_$Mqkt7iz4u717YiB-u5WBp z)mpX3uWwvL!kt1^q|!FB@oK>ERj>c?kFT%l1up~JiXA&}CD!e8-dMfr?{nCFFlpV~ zd28jBeje!`O)SEp0ev1ISM-aj@hbP%z-4UgGK~gb!>fV98j`1upc*ub2YV~Cp6&-6)ckmKjpU}Y;1_r5H$?I>JiOWMzrdJ zxVp4Q;wUH@{?H`oQP}1cCUNm&0E;K zmLiw|GEqMdRECZ}UB=sFs*EI5$zhbwWR$cDMaMOP%M_S6b&3%!lG|GNhc#Q#N;@!+ zU(rvj7+zv97V~K%M)-z`X+B^2aBL3`*9AKlh@I2%X|{Cf47Z;YHljJ3cA_{C>AWSx zgGc^)X$g*mmJ z@-x#yQ)a`4(rot5@MGDfVC3v62n3!D4AmeIerSJq7J*E?6O1g)4nM};nOzDS?wpG0 z6TtiBNYV@zYFke8-EJ)4yS1E-oSzBH}BY zY40&xL^JRva9u=FA}Z4-W=1L~6_iufk(i^j6p@KAhgOS}NR}ICBOwN%%t7{75O>rz zo}4kvL>gCRLjIKVZsSQ6iX5x`M78HdF z%RZ2O*PkKWA@jHmd$Ms~5I*ycKCWBT=L18Z*O_dT)dFP(}<*;`%m}Ud^X1KTb z;s1tmy7Nn0gWTqp=8e1ilYVi#gtH!}oJDhDt$LZWNG-WbNc%T1X0)<-5$CvV8jq;c z*nwL_iW)G2Ty~P2pCX&mIFySkf8~_;-8?S-<+SD4vw=-x=UEm8!0`j%4cPAnvO)Rq zOu$0u+Si3Ouqoa4?duZ$Jp6OPKK5glcmY@372zsX#XvN9I*R&MCNW^v zGooJ4n{`1G&nlPp&^4XLFsaIC2Yz#^F}MOGG&ZunFT!9GT)1N+`|OPctdG=O`IO%v zSD40vs%1ElF;quYn6}fE2)9<-2w>y9MqEf1Pb^*|R8?AWD`vp}v{5y05qbQQTuHB$ zjjtYf6*rR4pT+MR3-IVxO1RLvO9IBms3rKAt0PSn$QgpFSC-Ubm8#8_eApQwCyg;% zJw`@ft;5agr0fFK7=2`ntgaF6kOp~U0a_I^WgBFkRBsMf;I-m@@A#!giIDu>(?F3#;&`jYF~ z-ME36P3r8;H&Ivo$x!>gIAz`pq_?bq)5sv}%`S4b_T!RFZ=xN^RVJ8RK<;s6R0lAH33MGrOQ~-(G_UhvshM{!J0!Pqtot_U)Th zIINU#aNx}SfQPe-S{JrlwWLIk)s4`QR)r#U{Xl!v*t67QKifEO>GthQ;fb@Lskpe` z$dRN%R;>0Ize?6oeRy%&OA@U1SWXFEBATZb%M9NjbGQ)q6R=;nevqs7Iu)fR<1y`a=r zLJn<_>TKA{1kLNeo3LfVrWr4MU<;pQyCz;bwH@{QcMt%>;M=Zow>>bd^xC=5sn1cz za3g#Y{sk_TBX>l*^=Fhw-fz}#m+Fk8r$!U{;p#%Ur0#cmz^-**ev)dvnU!gj{emn~ zr_HY|X=JZE@Z=6|k8kc~BJH80RrC{BTjo~W9E0t2^ItSv{u7MOoiiacF z?OL-_H0y&nIg1ObtaeH*uWaWy9CFGHi-a?$s3-l~Zu3-zb{qFUbL7u|KJx5-{ciBT zu_H!|MQ_YFU<~LEpMv+mweT6x1&j>u+6O@r$N^gT3;YCLgb1&p$XdXoPG|D5+?tF& zujq4mu>5#*!Auuk5&lIDV`2>wgSfO5d13yNZX9;{$T}@h>ju|}B#z%uUtT|FcE;Rc zuCg_Ek8EuQpEkm)qx)F>-uaur2fzdWbN7P}YC?HKR{d!}B9}7a!A0+!L-Os=_UrTR zl)3B&04`s?WRo;2Rb*BWZ$-@t4kN1zRnzPQX=ZRFyCkEe7|jf@+(1*aIRxHBdfd_) zB9pTp4udy^+I|Tmcc86R^2yA2=7HWM@_IdkZ{bj@N%eg^QjNZbBS)~W28O~T?645K zHU!H<;g^XQf>w&d$XdLO85$@sloT8Jv{9pc!-)ej64SQ-$UyZ-U2s4@aX=hLq&v4Lvl71G`|!O{hNQ(*nSb4Iw%9Ck*| zWu~D8J~f^{LhS}@S9c90sqAX9YGnJwY$mf>(d5)6`F++k8szV@u1AM%8J+km#x=|V z*|x>YsC})nbgY;o>B5cGy-ADM(GbB^(G?M!N4Ysbyi;jr>shom|vOp;XBUUIPqS_9X2S7e#;Lc>xKeW%v!6 znDaB~htG&$q%};O&-U;5ZD(-U-3!af*}VooG}i zlH}-*ky^?oPG>NR8nfBJiUwVfVp_*<2GL8pS+E%%b-<&<;k(e1L3}8YpC@EW z^|+B7xV5PWKeSwWK#FK%rUOj6q<`W3i+@S}Q!Y*rEkz!b2QQjh*B9q6Up_y)IJj(C@R9Y&U_6)rW`NsM)~`=S*2Ql4G^|fr&)ovF zz@FZ+KNaZ1t?+s}KOr6dPqH9zwI+d72V$9}=yM;W%MzF@%-zm((du+EI()-aHIt}5 zwN7%6(U3}POiqp$mz;DV) z!@3>bHHa3w=(`5%Szm$!%D=_91T8 z<%;t13RnZb8Ftf6!x#Yi;2LuX8zug!9R4A>h4|QfANI%a=X`dkb!S@}g(o}X|De0) zgO&KFoQFYR259o7_@_YPpOGWTq+OzgQOo@r!zcM{z{7s6JJF2g!ym~mgN2^S)3IiU zXvC|KAt<;-L5PWe(ujy0{}gceGyjg_Zftl(V|etD+%Cvj+5&$B@7{L#NwBJQCoINE z(A>*AuS{X<<=tbx4Dri(Ci;xRJIt@viXglG6edpn3LMXAyUK6kyZu(w)1Zoa3cnfk zEKzKY62;bVt89%D#nx~uwuW1YdX}gx4a`J21>WqjeRFgBj?MNK44XaI-g802f}Zwy zcMdD?>R5_v|5=oub8Hld=q0ZHrlC9e$L9u z!)HvXIFiZ|MLdxU^b?ssOTQaCYv?P(mp}N_KRX-CHg4#$ciEsh;}VCju09Whb*n)U zY;_fn-d@~!RN&T|_hnRc>DSM!Z!p+aZ@zhx-PQHO+5?PorZAgC6-)*m=yXQJeL#>x zosQU8XMK|kJo!Y3A5g7|CG3IgzJGL`oNlV?H09kLua1v$Bv z!3h(FKUp}~lAGfz7=7oE^g(uiU_YM?N97efGwSBlkSlXv&oV9r)a=W2g;H-G^-Mt? z9EC@Mu_PmTU!4zDpwbLX1sbh|=ss`2j02oFJ4;UI_ZLV}fk>QF5GpDs<+88|J~-rH zsC3OjwkIO*EcoE-A5UcD_!Ma`C15piW&^R5grH7IaHAGdyDNmU584ib>=Q|Q_U%dH zv+)%|sNH;gg;49+C>~JVK&NiD-3@g0P2fmV6CBDDhHq)cQo*Qo3`z2hw5*D=DymT( zXRYU^lh*KXk!mF8I?4GI)KZzEt%ecp^#N&lBHnc(Ez4EWBj-3(RnfnPbGTOYo)rqw zcI8Yk0q0#Qd03ch&rz;zQS!Nzyr!-QwbhztwElNyN|2|JkZdt98G;|#r+TZP&0)HU zi76>=M867p`nSSQcDvhE9g9A?LeGxi6P{Gw0Z!N?8BYSpUbS%1>Zcv96E4Tos~0U? zHRcX2`dd2_99y+=P`|$6P5lO~Ty;}F7hpgN$OHNl?7Z-{6Yv`R2!7edRE-NCVs9A$ zUO=J0SH8z&mu1P(QA zXhaHSC!T)1a4Bc5rB-MrCynY#d$O_d)0(DN8eVOp387L_C~gJevX01%FJPyw&}ghV zf=@@$*qWw>11~jAY>c$ox&`*b73=}?ENYjNWd^sZXQt~E^!!P-cVpwR&*D+S*Klha zxkW9_XsNbfyX_bnXC-P$x?u!a<0cLVu@p&(j>l4yNV0^EHG!&w$BrFLfp3C7l~q+p z9_wFy=9yPn3p`v^Sy?4VVsZN>>Eypvv}o|QTa?U1MPlV%)>6Wd+F`BUrM=j zY2u6-NSb20;gs2;G1%0A&Bh_?*aXN)i^u_WdwD^}(bt-$DNh_c_yl;TDLkluf7NiX zVqi1jh8Ytl&Ojr=di5dHmlS>VYVmEOIQl9m(N|f;{=VpI#h6~Ke>CnJ{&=)kExW8w zpCO}0h5Aom-=zp}i^AWof2=|oFN^n?2o5y*>J|VAxN2Q?PPE&j=gyBAEQ-J4L|?0# zemFjdV9@jfYn(U{^^Zos5iEimpV^Hl&ERku3{_PQuavX=h<2t=tnnl-G@~aQ>hX#m zYmm;B&ytSj4Nn=KF-k6ndcI^`7c*nZ6@&3+?u|3^47HQT#?0TR*T1rwjyZHISFr=6 ziIj5lyOH%2*KX6BL{5t73hisRsbjjJ&*{_H|0GvcJ$(rLI|ToC2u?sPc1P>YW@HtQ z#WCIf6=MH>V*e4;%^Eq$ zt;^20Vw=*Imt9BVxyz`lr5V!y?#wh~AQ<&iC)efVS+V(vf$p42s(erybw<*Y80$Is z(nMc|wC11mQ_cLlya#nCw`1>NMdR3M`M>5oz;a;JjhR9G2L;z`632DQaa@7KaSbXg zV{C6Zj!W$Cb&cC(3!EBF#0tkJX^`!VPtxeH<)pI&c@}7qQ^(3q9oE0VPQ$3!M4s_E z@>_hL!x^ZNk9cqEX|7w#w=hrDk_}^Nu>|#;!0CXFoI?Chpw+=2NJ-asbOf@raZ&>}nF=C#0rPyZlnS*TXa(IpPsA{&%T4n(kEX!u0-!Q|ntX=IEZu8c4>$Zjq@z3bmNla#hOp>OlMpDY^%C+Ou9;!H>6nM-kk%Avc{o2^gu=PLS z&3~TTw(hZ~o4^0l@)Zka&-lY!ar$M~H-H5nfgk?%%!-{Z3m-bz*c@7Y_tLeYIk%6S z3Qxe!=R?iXKF}oOUPAON#rkrKL*D1utaywmoD5XaseU z?b`59gRAG{oh|A6(DQ>AkFu1{AB^lGYx#s3`S5yak4@Vr*HtIn`Y+e+Ew|MS%+~wO zU5W<|0h(hP?#ai;% zB#$tasZMo^soIF)OYIY&$|h8&6RNTam2|>Xc>dYi%I(z~ADgyo(p?GXUf=X&*;B=d zo|#KZf#JvfYg4Nm<}LjO7Qe84X#WQmPhQgJHQk&!f$9~yzR@k|3-QELlbFEZ>WHXIhkEgl`y>ft@p^sgoo4nrc-N8ic+FpqT>4<%-3$IG&PV-% zrck?%C69|#pG-qKBtg%M$WAvWie_z4%LE03dg)SU5MeE-^0?H84mfSyZo>m_z4d@` zH}<&RkbEr{cCU~WZT$J1>~I}XoGs#Q;oZ9jkT25>ub)~Wxf5DH?P&1!YNdowWc|#{ zCa1V@nGUpK(M>$0%Driv+r>nmfj9$Ok34kOyzE(zJy`~Z8{lID<_1b{>oVcl&12#9 z4_Ds5ebLg*TU}Q^eCgd3Z{nCKU1u%qX=9N~!&$ocyZ1~pCG@@XFKfSn@W{dYHtnce ze}7%Y0!h{Zd( zaq{-1o4U~F=h|oe{{P+e{wjr?mjb^6842Mn3F=+%KH$xkW8h8LC(cei#&8Jb~apla5z9y^7C^@S;Wobb3*z3o6G`Wc;1@7_ju7$$irr)*hM8;kF0KOFs zyaI=CYr>nr0a(G-9cB|*4ML$M{Pp439O>A+6Pzzh^Og}#yXohc{Na&O<|EF^a##%p z-UxIevPLmta;m3%+6;TxM@IP=F+F(-EQ8fE#+;ZLm&XC9p zxXl8-ds=T|c~)=4mt)I$3xarhK-4*LBw=!pcX=jr}%M}Js0v1uN- zvL0lt$ASeW!u`ArpIkl_E@K;!oRU6AN;w&M0WXeNXc#lzC^uV0Gfp{H4k`KNn?RJC zx6zxN*w# zBz)$~nTSrw#(lJIkKCS3#<7FkNJ!#II=~~1z;Q;iXjF0pah9fh4CLhJR~4fVyGGB$woz`!$zL+F6J95V2%eV` zZ-n1VDZk?pdMOnPFTv}0pqHEAfx0tij)ZSVSR4h8-rz@x@!jC)D>sAh3FjwId_}@a zokz>2{YoCKauX%nDGEw;6D6*s02g9S%p~L5ASN%DByx-nsZYmrGN`1JBsMPF&HY$M ziQmO)@mop17Ai$V?svDO^@A%7>_Y;_z>u7&%!15!$Cd9 z^n!!I{_K8*U`bw~4wlRJ+^<7^3gQ%OWti}>CqvL61chWdMsHKyW)pR{y%!gIldI@N z>dgHp-&eE^9yBGzuQW$$8pYmSQ-^#e?5De#PE2mVV@noo#-QGil__Rr**K5Lv83i+ zh2%((5>+vtI*l(ov4if9cG~L{U%fH7!Q{Gp`HJGQ!(z=n#9e>fY2jacrm=a})bJYN z5OviR&mGTIHo|ZLKa%la%hTc%Ef%}S60{3Jy;fBT3}DxdMNUj<8td?8+x<2TzA!#b zqw)5-WAxH#tH$JM!2YK228{+5&-m{C4?zBj2mAhY(BuDtUo_syajk_@S6`SGvApV# zAJ7HqBDYSPm?tJOcGR=Y0)mV$djCYq(x63jq&wTaTDdkIbseMZuSr`zT=d-DP4|BB z@8*VC_dc_*dUDOf@6B6$_QAzlA6Yj4fvv8){<-eyH}sxv>u2qG?vHyb`wr|iG`&;J zYjqEPxai0;4=mmO6)=p|@Oi4EW)XKtP$ zF%*2OecQCgVK*U5_#7Jyzs-$=55rg9d+mY8VMar*1x01R(hA-Kf#jn{zlLjGd-|`B zKLGznJYmEev;uZ&z;3`?VU1J7`S;eqZdt{zkZ;zI;%wxcF^;pbzaC1v(u{*?%~zHz z)r0H$rAwAB(L~wE71$BtZ*fI?dMxR`0l$8T8^Fl{(GEhv5LgBz66+u#GUCOZ7fGA?2xpkrrc`gPsM`PY5 zWv{Bcw_G{@flKvx0kRT6eUryJW+-^%G59K&^%U&ug3r!gs^j;Sa$YNcQt@ z!qraEoMX=Oq^Bk)0gb_97d^(HK_ePKWIsv@&*sU;DvCT_AQd&mN`upSwA@YL#l+;B zdnIQj_)Ayr>I~TATlflnJZZG`Tqsb+iYGV;g5o$M0b>R|YO8V4vQ zy3~tfA$ra!h;F;n7?gCX5oo2Fq0-TGId?9$931wLox4=^;5r}PQ{Y6ZN8rPY<}cs4 zhaKIz0T&{>a3PE<0x$xpPKD{57_bCV0W=_Zi*Ia~?Wt^0Rv=3mR;_!wSMYeEb8)Cu?2~M(sM>~j`JdCf|_JZkv^CqD1W z`8j;v)#RdN1h~0dnC%8`hJWqG!fu#?0<(h{}gFtf`R_)H2d=vSXbvw&vUx$;~(_qh(QAlYn z+6+HtJz*dG&VrVH_#5osj9 z*$IBK!r3R@w;s2?e*(_7B4YfdE4acs!r#NUx@(GWyxSf0CZ9}Q;dtB|n(ba_wtd*{ zwpbXC2X%+67BM+ev=cjcaUz<^AIhDv)9zkD!Mn$KDYP97x!WhVU?Wc%mzq?pXO7tdxa)AQtfJ$oaanoG-uwRUIYe;kKALDPTixD z%gqi}^%z|ljLZdrsZ?W?=}}=dQrUkfqcF50eVS3#4zWWCOdkqEbK=wWQMYmw(>!0c zABAamp9r?)7V>u@`S9RK1GZd*pxdD30M9dc6}MJLG9?`CtQV)^n&qjin9who$xRN= zG5D6skeLhr*7?>x@Fwu6zar%_T!d}C1(MCLWvs|2M1F?H#_%TMyz5k^ba}*k&yl@& zRjnDe3Z{TB!I$W#1^x(s1Ri|lQpNc3iZg#i_Ts^+@fG;qr3x$+2c+r}1|$_u4KHHt z%83FW)ZwMYB$+QXn&h)xMTiU_gMfg@AS$9pj0lQ(3^EEC^!XUZ zm2s3o#}$*lm9I|Sd%JIELFfH`-ya|0b~?AJPMtb+>YP*CIp5!Qv~Se_`Y1X{zoq}g z(?2@`!bJFQQ{VqVr!#<260VId-?;6*7FzgcO$)g~SvC_u(BKbZ4L~ z(zoWfLpjDCnoNoq&v|7~V(&lPzx~k1b?FITU%2m{(&tL6CVjv4RQ&l@`NQ%zJg%fSw%0-kXJK&AuTCoWvLFd0GSUZ?X40C^`ch+(qzEQPO=bxi z=G0-J`fgBf^~8&59P2Z5K~JKCuG(bz z^ZOQGz3@fg)g2p_u6nGJUQY1H&Ln9iiY2l%M2A=uLD${^-1DrwQVD zdJcWxus}E75``?GtB~o7Gddk6F)2?<5~9;3#<4=St}VI2-T2TPTetq8k7VHp+v@m- z{LCL#Klaay^D6|zX?q@g?u|E|TehcN zZ2BvkPJc+I-7~R#?%eW;_sHWJo2_2GXznsj`v#7)O8a<|lUbW4zB^>72oBWHNv`;u zOq<83I@m497i=!8Komv*>~1*m5{2eJ{QWy5(z}N(ucBWqTCvVpn~YNxg454wV;3sX z+wlvJRU#*lKU`YDO`$ZO-5KGC6a_I_5^daga_CPnXo8AI(MU&Zo{)p$G*KnT#G+4b z-3@1tQA{Mw=@%4L`2B~b;=!jHPvC@k6Xn-PA-T;0M{8wd~E`*qc#J-;j}bK6}F^Y=MjH4bzrn8kX3bDz(%o23f*W z*qcYyJpI|5xxCbR_02R^Y9%kVK`jM&X5k9;*i1P#}6I?CpokhGmXe}v6nBx=J-UhCAFkC%1jO+X_}c?2EW-{M@@nxbo-qUAk&?zhM*q zKoU_*^k!ph-);*`o`kNcTdgsJ`gI!?lMq?j=g#SXliKTwXQ9X_NiauBL^PUJKT7$< ziWLtUuRzgwE>9uy;o*Cw`?OxoH;3f zV80af!20r-JI9sJXPl*Srr_lJ{tlNQCA$2viBhCF)(=XKsB3x}kAX&D^Gugcxk2?V zC%$X#*3TQwdpDb7CzVXOXTzH5)5}TX@&{aR9jC zQc8k9Dn*J?c|lpHQAS3QUW=(pOhMeCHQ@FYk4tymao5@8q&KoGIDgkvb)gZzP^2Z^vkig-8PofF-=cLHh|2?Z*ZA`oH2<~ z4AGWIa@ExeouYyxUO{xw<`4~6tlRQ=VR`v zoFu}`JLYAC1=u}Ml%XRB#n((CdnTd$wRqbK&|;&Tn#6KG#$$vGp{LK|Op@GAzctn^ zMMcI$M@AcC?G<5T-x?hIiiaxg&64bTvta)9G`Bz(jY zVKT=Ob6iT-a@OSPx z{8nkmaDV$Dk~b$iD<>GLB>n8>Bx^0R7lYZ6;vJhAGNu?qEG2JHy<#nw*B411);Z_uHkFQ$=Vk6G6c-#6C!O6 zsV&y1@vxm*1Z-ArGcCnu1K~9{5x6umL2=*I1#4xLVn-FZ1f!Q>yM%JbX;uj+%(NTe{!8Q>kCRDKApN;QF zOxB{h*OBvqe443i!`pOYunn-k8Rdt*i17;{D&?yO2pCM_C~)91l`^@;lM&)A8j%{t z18g=2hx5>JObW&`p3U~fJBh(A#-<7WgfuC^Q4twymZD-qGLA=mMupvqLW@nAibY^_ zxxyOq@#;tWo=z@|k`-e|SO`8H)aOy6z?kJ8z_u&{t5rfrFdc)UuB zWI*WceS2n11c*x%A+1PPAi~)5%xH^rJ^1PkB>`IMq0m<%v87n@?+nzHlJ}6`*pGSs%DuYck)s z5tc9NWu8x!U@Rk9AGlmkGS!?YqUjcL)i_p(Aa9G6Og6vCBAKd!X9$%0y*l6dA*zU%h8@5LE--js>E z#!S51C?2vz0#(j4%wN3quLa- zsK?0GupJ348Z$em{p{QDOP3g;qVevDV|GoPGLIp8@7)aL(Gv^?hUhELj@><}lP_ae zV&7ZJ_Kki1G|Y4tFwCzSrzzfv1cL;;B}!;rkXy8qn+tFS9ghxOGTl*LI=_- zSW=1dE=q=A$@oII?T zbX+c$k_>DlUVef&_&0umpIjKo{+38aaI~#dMjMP>aEno1!*@KqEZ5rBb9u$7JQstl z=3=mqaoE$FMv0~T{I)XU&B};Z#KKV~6#yT3G~~f1k}C*}UoZ*2la`WFfiemH276P% z^3>8&F`L;YIqc2HjTKBbzR{GyQ|j=?+}~{uKGBrHrRE9YW8ThMmXgg=-heks8Ndqd z#~+jN{49CY%WR^Ktx8)EVz$nH6tkxqf6NUBgm$u=rLE+2xLH~?N}}JZSsB*rS>9eO z?;!k!_>mx-WK$J5?BBErD<^BNtgvra?`~tXR z!?_}h^{LC?G8oj~VlSG2zM}OgPrjjj8;X{1M9Z&!WdG=D@Efaf0jqJkTBFyO5XBhP z6dQp_WQ@^lfWy9K#=X%7zBm!wqsl6TAI3!LZ@diUu{ypASe4&Hc{OzTM!H=42K{?Y z7)ti@x>9^rWHewnjmz7^SPGhy8`c`KUml2SXa{sj!Ts`Q_Rm0yGbnFsP)wK@MMG$e z>7ZyhMxaZy1Fjhg#V-RUjQU9=id6I7e!J-w-rH{r=Xh^_MxyXpwGV*@wLWAz8vX42 z%E^+K%gb3`1YJ(co-SvmsfSAzynG& zvRDj)nV+!cqePAL5(1%u`7xbDp`j#Q0mXo!UtSgFl9Pr6!NJdK*d&Y9Z+BSC${Lo% zELm2nC#=-Cb47)H2tV;u*oovY(ijh1T+-L^)9i>X&VI{2*h6aOem7`bo(<)l$ip$Y z@h1bLBpD(8DX%cTI5!v? zyQmPs598)$Rm0&JQgfr8lj+74Q$~lS4tL!|e(>N~^aqY%H+O zX*5X0=(jL|VDX#GLCQgUp~YDchK|+lLS$QDUSJA&iaa4dfUD+W;UE^iqxs2Jf@#pAg?vP@AA`QCfushi37iY8Z1}*COCC`w zO<02CluExtKc7H9s|c_*;Y{)sxuBe1wF^?5-EWAN43>yEZs%Cl3rXsnt`lbSR^VNx zvePiXL|Xupy7zl7T(q#~%*Kz&f|3ix^DE{Tcj5o~!h?%=r2`IST%-*RStOPLv9Q$ znKNj`Ak`Qex}yKWm5MP$0wv5Y*v4!jhypi8DDxEz9XPN@mx6*GMbeN#gL6*@e}t#&St6@d{F90d-yQ#)<`dyJ{p z!gy)nyI9wOoz*=}{ug>_Z`)=T!XsOm44|&?DR;!4H2E#d=oy(_|81zeU`Ds+Pv6uU zEAn@5JLZO@OE z1?HoCs%?U?k@OMn!n97Aw!RQ0@K97ne{@KO>n8bGOykJ2wR!y>u@raFrt#gmPfQV z8CHz5N)d5!C^bb&MWA&n0WIr!^)?zTO|X8`Vd&Oljq z8hSo#9f|!u#hO8Gc!f(0lVh-##qj9tOED)orI@57K_n7pb`V3v1RJSH!fQejTf<2c zs#$H|MYc6=6e|Mz$fTb#wH2&`>X%EX>MW|dOnI$NH2sqnd$R(t%&=wXXf11j6aV=%V$mcnhn2yV|?k z^}Va4sJ**g?cMFXca6VX6LvHFuJQFg=-phQ2+n6`=jBW3DS3YA;Y7h6B^eX#eu$7= zsogzbNULXpZ_>}e2ZlD%Z!B-E{~H#x#u?=8=0pcFMAg)^;1tHOfscZ1ishV=<%@SF zNmi#H$R2GJ_()>oNofm^zxjx24foIp+bB+L+$~NG_Dcx6Dg~?kA#4c8<`l;Ua4Ga< z#Kzbi44)_`AmNCX><)?HWHb7ixn;LX_BEOu)a|nCm-ICAr&Zi)NVmW_aq_Q+THq$z zFQW)MinvT4I7@wc3_l6d3oz{JOK0fBGIV047^|dU>R{w@NH#lMKG2P=ma+(`qbv-& z1u8OztBrfa$$@jE+pm{f!B02H=yl!bT1!juBF@D-8h-|^#XHsqrJAy)rt5ujMr2dn(`&dwz5F8~j7y`KQSB#$#VkM;B^Pj~Y}@^J?gs8h%Fl zm$7P%$#CKzGTI*z$<&ZiDPi@SxL`lSnDLAnGqTWKq&`ZWCiNkW=e9RoH{3U`A>G(} z-mjxgkvq=r5HB{oKhN-V1DS=c zeZQT*FJV$`w(`Dlzbe(ngH8yu9IAtN;0%nf@}^tJ1>;!3E9CL`q8&ZyQoP3>pD4vwRdmVCwK%L+OO({L zLkDvXLS}?S4k^e4Hcq^gP$0|uB&c*}%baEIJ6A`rq7PKmbc=$jDZ_su1gJ&Qt> zPWixt#LcEfbYm;D!oyLUYpy++c`YvtQY|-g#%PQDOd4J)-sbnVq+NG^(M?xnPe0#n zMu9@khf<5ZbX#H11cj?QkW)e1cciaVa*`C6?1vjw>nc1sevgG2!;Fxb>FMS)jDIg% z<=%vlq5JQu{cCf#&Pn@}C02POP1opvs?i5@c+2MFKClXl`-JRYCV9$P12JFkd8Y9@ z#af;i9WG@@Pl3K!kZhqK(a}`K*CcOefD;rQA!A|NL{^ zWxgpUO`ZP;y&uw43W}+kjB7!}<7W=Ux#3+rlXO z3|~`Y7fc)-upl{d}3O^z;a))ygz*Lc4aR zM1+|BjW9)+cx#eH!Ot6%ThIm@{6<7)-VVB@&G^mYy$z8!kJfyY$7W`I)rIL3k?WHK zjdhxSV!Y1YlkI#5&BSNYHZUfPMw4W$_P@D^QX^+v*7SAruV+1w}+Nzkq}6{5vtkW6cJGdgY)^JPHffn|MH z7knZxMt-NB)woTZe2E*n^Ba-LOb^p;XMvW}SPkb?S~hULKhQKAY{g$bW+{i2l%`T{ zD<1fzLdnrM2iBN*bntD)Pn0v1WL1R`W^O8vKok`2vBUMttA_P;hV@5}8bA3p{U~2c zg>rm>HIDv9g7iEV8y-loemO$CjCYkJwdO`v-J6C`cQoHF%agOmElYmKl zY<6JwR%&EaPNG{%OH33}QG#S32v>N849PXsq3jcbr-$70oQYvCK#e!TFpbkYIDoq$ z;NdB&TaK-}fq%(n-@5Nc)2d#1_l3O|u6}a9Th;dMsQcl=^ep?medCHpHW}6BFZtWYMiz|Dv6*&R$}mozY_0C7H_be~{syAfySozWC_a zSYrx!ls6ekg%u@B@y%k(XkN;ZEtAinpNN=z(@9pI$Uh8ui37Yh!J%qa~Qui*{NxM$E~e zKftY1`l2|*P$47=>405~)oMzUq9Y>ACb&tNDkU)NB3s2S8y9x77lqL4&g}?>o-;1q zW;Ei_m#_cpZ&j<_$lW{Sks*%_NEo(jI9e^OMfy2c;Lkpv*q3@8t(28Om{FLj)g3you2^-VslD zONe$G(?eK>9K@{bxOhi4a>hH1Mzn72;D7%6lWuGCVq%NC<*)6wuy9LK=1W#9gf2W8 z8(XxtaBv@#;7)(xmLVsyXqWzvO`l7TC!lRFpcha!y0-vjCj?9=Ie~uMdBPJpX#pdG zFoS0kP+nA`_+Mhc-rgx@TjZ}lSV{7GeGjqogq32s_zn0U7kcCekbJq>?r%ag-4~+On7|&-ho=;~ucVt*+d*bW~QeLXJz1fnKnBk7f zib5{CO^UUXiVnymwF3cR(eCT!=N51imj`3#tHSZN9OVXlh~2M`Jsv=)T zc8=uC_B$ggY>`otJu=c5D^wWWil>(pDNg6PfQL{sg?oL0l`w2n zJ-^WHXlA`6)!Gwu-e1;}X(0zNX!4QSvyU|P3HJfhc!LR8B#cz!b+(7oHSv}NQyOY# zLhUW=Cn_gH%CS^fqa0GKGGG+1?J&bAF4pbr6#(NfW#3&W2=gY-2p=De>FG%)BNt-4 zu+occmmjO|deFOc@S+3h=n_pr1bsm}4?zWMS9IEcj3$jj-&A>XJsDLED0Y7N!^6iN z*;|#G)-|t+zQ)D^YJ%O@KFla9GW?NA{EoilD07SyX(knkDQwCuF&p2BB&QJP7r0I- z=F6PLiY|8Bg6G{s?pk19QvJcE$iM#c>iY}U7q9AlzkmL+dAJK*haB`@Xd%x1;{8is z4=ver=bEJz%f&S{yKDCF^8q8MN1VfG2wr{SVx#O*g2gDgEEXXK$QJYx06v@x)D2a| zyEyc))t%2tmTu$DlATOMmPO2dU^ZOxL_b$Zaeb$Dq+g&H>4>RkcT>-aSliCM*j#l8 zXFFdtGc);E6-{{K>qQQRN1E!j%LZ$DO615WizG%#;JM4Hb9EKGRjTtj&VP2VSV0cU zDY%RLK9jts{!t|+*V2^Q*Q@>^a1K8yKEyR`ijX06_9Z2{(j;4kWV6H}m!%>p+7c^8 znWq{pigX2y!0LL>Ud;UjDEdk_LftlFP+K7zn`YYZT=_fX3{o4@srYBbaP)`PSc z>QTK9z1?MOCL5gjJ@F3I3oTT&*2pc7M9F`br$y(ATy5nI6TO-AM|vmS8D&QN?Ak!a z-x8ns^z^k$G$e_sX##Aq=Nj1Pu;*qu@jm)`6>+O!;(f(&X3-Krz2mCMi+T7x=#PygY2 zd=&0lg+I`oS^b5sSyv_h1*dxQOyI*x^@C?jXHvVXFDWZICSCHRq$DH=wuq??OAM*V z)3X_9STL|`>N&hZcMh`(l$dy+Wq4>jm=0QVz`MF9!^D0WZEzmS?HZ4A(7FRPhi7}T z6BA}1I$pPJc0yvdXZEf|A8$qzYLeO^>o+I@jp?zYQp77Z=h3e(A3lsM6Xox4Au%%s z4lJXG4$<{B4C{Lt))N^QbP$StX)arWlp2*5=`m(T8VynGM{wE*vk!HcH$s+V{Qk$}3mi20_y>CsjRM@L1Q z5>qS{%B84$TPS9`a#W+J&{PPcEX!qZ!Q+h6vu5Fj~;q; zALGJ|;~85r(3|w`(OX6zXV1d1Qhq`4{(*h!E>8*bx0vdSi6&ObNQj6dVq*of(3fG* zw^)mTVFj~P1lyVStkGsGMekOjcQ5=@^%G9PowHFg{W4qrK>h-!pt&6aL&@{Xc7mlu!DS&tuvi$!TZ0@A&H;+;#o=>mmG@DBcF`Mo zYz~hS!feZyEdgYB_ays88{c(0H=!BMP56;2{D}N8JXOjs@fLcK4nZAtc-i>6Zbx5Y zs#S`@&J@W)oT=ZPJMyU%a`3Q-`yp%qcI^nSIRb3B(RxIWQ8fh7R|%@SS4L3*Px3$&G8iv z>|-@KJS4-TaGVm?iy6}ViVfJRirRPvJ~aEDC2df%z@>^2+^z$10JnV*>o(3@jV<*GM8LKc3OeVto>BZ# z!3vP-ENPTzmABAIqLn@8Yik?x)!=j}2rZt+FCj+BN}M=evSEVFab{-InZd~@Z2bWrmLBM?+FJTn59JR!5^d7SmUwl& zbC5678Wok4WHu99Muy9kmc}HpB_TQ`T>uZb(M;|+!)0+XzeyO9#;QanjPQgzCWRkm zO^|qq!&H!i3LGAIj@>%{?vWSzZO^ak`iFiOM&3RDR{G~bqXzkHoor2lv-e_bc6t}# z0ab9y7mcIO!S5>hbv!_RolM@eNiIRp(23|7UEJz;@TqQzj1dh|EE4??xyTVG_~W7~ zBDr6X{NP%hjjx=6S?*RtSZkKCr*ID%O^>kY)hsQN^(+)a52La4aNV0#hpR|5cc}UU z`}*dauyUo|yue1hM^OCkl!()eLt)S|)5F9y2RAWC3{@WYd5V9T?m zKj#GHA=hha=n~~=YHF%R2MkGgDK?4;{Pb~u>cKNjR`7W3vj|3iXc`ineH8G?#t4{f z)Q9F4#tXlWQ05b8vux-7V59iTo<%ai;Z~xp>>*od>S9BiLvt0`ZYqiBL9yO~l|=&KVZ)`}PH)7^`O6Jn9LkJSg~crB4; zY#=6cM1&~#jUqoOtgeqBRD{4`q6z)F9L=CRmZK?X%5u5`%~(#KKCu`rK}(j>^=QFT zx|*(DjOOz`ev-B2-+Z+=8QK$PmExkKB)A&HPb;0z%{|}zj6k!UU0l{<%$OcMM~{&& zkgsTz^2ccM(U=}RMvv~%V+?(aF+u0i@Umx*(IAbcqdBbB6wS*z93u-mP7~rOm7f4w zK&8KkdR~N6U(pzRZJS9MzWon-|0d#(f}MYJNL_Ht#^DL>{THZv{~KTZ4Edg74A}Fv zv#)(l-+T&Pk>7q5&Efn0a~Zy{@4p#nzgf5>j^byQSZxFwO$<#Fl9>KyW7Q~1#^7lW z-KusWa&3lS4y5){=*$K{o64Z2acFLz^QNbsLg$^tv_J`|WmDcS^rx7(KUm=&u@{FH z3FkF2F&Wti6)gVdIPz24AsijS;Ob?!w|H>#0XVvc! z^HumAeJSAiO2IiIQW7Hkdd!8+!4oC?`j&d69BL5rHT(kup%PSf7L`Fw^ft9WYZx!o zDY0i6<|2ZV=?ey>LU5ZwoyaE^2% zpYeMm)>n*TPz&cn_i)GP9&!$eC(bj7<>f89 z9lq@!H}3x8605bOxc9JO=>0xJhxXxrqOy1QK6|=s%9OIx&+dKq`0<0Y$4{6&YvS#* zX5Bt<*6a!6XM=A_HdY}bR5XlolK|e+P2o{>!2=LX!oczETJ%18|MHJN;t}X;8YjQV ze&^A8`9)P*a7pii^OWWo$*fLM} z49VNcpW>BL92IaZad*g7k4@>)B!14Qh3*LpU;?fk+DJoloB8uu%pGhrH23n8^ups$ zyl|xY@fY@%4H|mK9YY6|$@lZi+$oUo!V^4UNLksCL1k>LrnC0^DXcwxg<(Q(Uv^?b z!oVKVz-~S%DH$5qi8ZZTioctsqJhM9*t*EzT$6rAj7njW17lf3Q{CSCWzZ2iBp*d12!%$J|EJFV5%GN6}gGK4*-*^fnz_*mw1f>d5!TxzAxEoinJJQq9w*5ijEkIh$3-?i{D99Olo_xy5nK`)1r2_ zs}3!pOIsqa0{Lrda9kJ;Uvt}9U^9rL^fp*MvoWD99+mB=FMUf(X?k3rf*+P2(NcsD z^eN=cz^z&ew&_#ErbeWtkWu;+W1nA7X({4k`V`YcH&$pVhWGU;=GtFMv=laX(xq7F z&lpm$Ej)$&tzuw!KRm_oKJw9%3N)cwODV8btH6{Llou+4@I-uuXxm}|7>`X zT=fP@@OZC$;f!~eAlPq$TaJ(`bY>d6Na)G5Hk@N+*cKI#aEx1G-mDb`%^%jH-QGH- zQC+<9LEbWQ(i=!<*1WK1w0NX($!=)xZjvTP?1nb)MjPq&-Dh?g2YYwZxvcH-K`-vY z2@pu|l9QYY4QqMJZ~pnBc*NVdgcFCPdF2RBA+*s;w*#57{v#?46GjSSgxiIQ!W7|d z;T~a@aGx+=SSTzN9u`&#YlKIIO~Ml`dcMuaz-Vq#=-xVwZ}zlC|2Fyr9;E{^y^Y6s ze~?Muz%t%Fc#Bu=&wC4<^U^5Zc}Voqde)P@ywlt0vztAyjN=R=4)r!(QMhJ>H?Ut}of@w^N8z9Ey|g=L zBGkc4DdVJR-X0*ih6%5UGsKIGkA$oiep_~3Te%s98;G6u`6gQS&J z3xFoqTjBG*n*zT4Xn2K zu$snH?RoDIgNU-}#|&C{OUeL+YQUwM;qluw@#B+jKEe!erm`8S_Ee!04BoTn(W&Om z!qI@k35Lv19FMTNoUOKs)sw^bsBOj;-8_bqW|&H;X8lvfDwh+2$iRMesIEkQ?yr^J zDpJmX#3ALFZI*gcG_2QhGBb17gLaJ^G-#x3htKfNGvd#TMmf!h7T&YFi@dqZ?t9p8 zJf{onV`w-;a!+ENnHGloHdC0^UC6ZUCRou7P5tBBxSDBd>q_VUh4;8Dqka1f_MB9I z(`5C_JL+%z5A{pnN%aevroGwLJdeCc{eqs>;04q#VsHM7J;5*9v#3FlIwt;Hx@wrcO*Rjc>x zSzR(}R0(^~W6Gba_Ez)1*`t%SaKl%%_?uPw0d>V8IP*-I!pu1U|#-h+=i{*^ozrUZB7gj}Ft7!e?Ms7V3Y^ z8o_522!*x+<+M}xLd9o>+i6tG50ei*d!FgwIT{zq2S4R16LcoSLbb3Q8XtNT8fmoy zzW9u;X4NiZHEVX68t7f^YQ-)CVsOn1b!qyU*X2?xQNgo{1U}b1qv>ZR3q6H^ z5&6q|hd{KR;ZS#JTAX13TD&k=wNh!dQlVxMsJS#eH3Svh`20B7+d`HF1DRo3I)~3q z59+KwKEutj7_}VC#;>Hy=rT1YU4|-oxHx?YBa|?Nmk7(>GB>fIP<~x*Vr~t#=+*-d z+|U6RTIR-XcMy0W6ClpfiV9(T53@IDt0AW-zIl65<G6AQGTN;cz(mcX7di8 z#cUL?xkBJO2FfZef(t=87L5K*=b=qsp+C@j7NG9*EUjnUaYpVT_c)A`aFTqL_YB%D z9wp!NwGoG#91@L(&~~j?f@vltHOuXALyo{n{FiZZS0!UL$`cTK=8#IYhxuv~>s}a~ z&FkQ6BW=_GGQe$fvtn0CWnftdJd;`>_$H+W$O*O3KCscm>#8P|x)}{oBodQCT=;}Z zE0Zd%7z~!qCYIM_JI}?8@Nmmiv0Dn^I1dl>=rnq=V8;#OJ-T_|w>UIx{)P?naT0vW zU*eQ5tQX`j*yn4(w^!$Hs4ngjN)mK>O63F%ABTdof>Sj*rJ==G;}q@lpIRC2-|@Yz z{Qv3uw!Vu=?eg;4u_th+`UOQd|01tbzmOTtGq-%xvUu=|*qi^l$wTY^H*cChI*U_V zhv7Ylf_`fXL!6~OyeskbYT5_>3vI#3DzJHw`fwQ4Yz!z*kQr2%f)LRHhJHOr!Kt9o zV^E*AzBj9f4ZBvqYb}6(tO>eba92)`3HVO8DfN>=T6c!_{kmwg%~xA!G?&X0s{qi#&!R4=Ktq8H#cYg(jqYGlkw53UUm* z6>@gZ2hd-8KCt=jyYHsgd_H{LCkNPfB(o1m_wtph0cc#+0FD|N(z9nzdV{6u*Qrub}=u6(JZ=A*I0SKg;K`?*@ zQJkzQW$~#%y(lOJSuOthUr#HAFiKKu)ylYnhklbpAy8k>YqT4CYnAbOgo`SsCKXTi zF#H;p87cuUT2@~#K#L$B--qRP9a13kgOE@HpQ=Z!463Y`4?;n4YoKp^J$b8f76-uV zA=PSmAxA66J|&V@&xB-U{l$8N|JT##ATI^2(bdQ=?gI_^XHq@MlMk{AFB*F{JXwzp z^4bK20;D>$v#eZ?V7SQ)FTUx{H{M01e^l5uzHX#z578a)47IBs2+m2UZ(YNaocIbk ziPCEvuGa4ijzhVk0sRhe>VuuG005Mf9wbT+hRUO0t994}gnB(13IMe~k*=K-k-hN{!*| z_5^X0&_MtS@C+9l|H?DBXnF8Qt6wVuD5!<7PU1xdLqgxp-LDR9A(>@5O4h`uM7d6&mc*xt|&@GyB% z+4K&{6YmT^iGnJX9QdzjEnO7&4n7qca$eQuFDw^u3}e04dp^YNVLi`a=zB`zceUqL z9uCW)^6*6s2I_54S|>0`1@u*#Bq(W|v$Qml7nY{sNK^{4bZ&mJJW{>H=I>dIa#bqj zLULYrD~UY&Y2%Jhhq0d!9fR}~89nnEJ-^eJS83Xew%S9^!ZsgW)cg~AJk(C4^0e9* zB9t&Z?+xM^q&eV9rlH8jzoN)hC^8&H)@+7f8N;tmU#>OG$ZRx;?vsBGeL~Nm10*kW zq6zY&16uzBt}IQVE&q{}p#nH4!$j=^4#S}3Q*!lIMzf%CnF2`}sUBsVa#;tpf!t(u z_g3{pkV}-xlwquc6UME|iL^GyH{(SGX^m@x<2xjgnsGSf*YX1Fpri@Qr@^#PJv^Q- zTFVEQj&<@?3dceU>I=>jnp{++07wf(3P64>uSz3}LTfI)T@n}FvPyC$xuw?Vp-Or# ziRwdud4X2&C{(O7g&xXiWr{)4k5^UpsyX$vM!hA_A-vaG>YP@4W~*8tTv|u#dK0eT z>Et!FOS%?F!E#JiEEQs)9Bd?c3JdbZIJ=7#T=mI1N!pBrQ*&6R1M5CnRX^ucldxI7 zBdBe(a`x_-1qCj?3B}6IIfaDHlC<{IRZxxtsAsUC9Nf9Xa7r@<^aI~@f;)BCD0(C* zSOYpxzv|Pq_<(%J<|bB{OMbYkr<6k(nc0{Zi;H8mibr`SC?TN(ylyDTYOja+coPzj z8r&d-TyTM*0HFdnwdFwwU8EgXp^NC^D%z2M(2h+<@H9N_h`ft`$h+8|@-7_|Hqs0L z!v);9O3ZCCR2*s8cqBXrtA|w~=B{e|Yts>)for1!ViMOICe8sos6$X29bj6E*~jR5 z(>wT7NE3k-%Iuu$EHO+CDfH+4rk*Edc~mvjhSe3aKy+3YhY+&5H2Xufx`KTivZOSN z!mrsn$_+}cX_OfQG)2(*S(ifcLMcHFgu=8vNOlPZjKFo!0j7hN>U2mUlMLY7M}2fU zh*OVKP-GO$XB7M{Tz3)O!>I}X+Eh9kx2eJGIh!9AT`=cp)w zwz=L^#xT-pn-;jVqG%Kx@Tt&=VU|}_G|lxxfocs)UJb=j9bX48t;buDMOyIZUE9x1BjOQ>cWRTg}O}%XPhW z(O|0Zm~zoe=b%IczfkHWc}0#&A>&;N*Kn=Kbd^6+aA+6ZDmQ!*|n%LK=xi<8^s|~&1d=|uM=_%Cdr0bGaOwo^0xK>iRCsN}sWwxcv zfWemHov-6XK5w?@bE|o^oC;SascDsjI~-Cd7m-MvdDRq-1c| zv^FDcJ~!LShmZy_Xzvw<>^*gmwKgwvh0n{j^3kT+d%Rv}xo)hGB- zr425-XzUGZKw)%u=+`I;Z2GkqmF&++-I|&uL*tKiS$x;3FYkDwTY2`B z&Wrjl*ewl64qSWUyJO?c!^8dEx;s(n`fydFJnyLC$W%(2}jIAe+?7R{Ty^tG9=V#Dud z8+HqELIy;Kjg6OxHP(+DR!ML=B&WH;k}6r$JFA*61@Jtg51y<#9&zYS>>Wpaj@15m z`ENhe9zp%+8+Fs~fB511*>k*hNAkDteE7{bAHMT#@{Zc$$FX(u>Ic`Xd2sb+z$UZl znz-4pLP!#_!K0Wt&SJLa1*c>erbdCY454#w zL6Y@6k5rS9U1$}GM8T#+(glI!fndnfW~0OgBp}D^X_Nil!`@kYwyZ{GbZ|>GEu#&q zw@6dy2dMKDNmq|oNcY*@Lbl|xBpBn&Mj_UpIW>*d1`dMN=z!|3V0>6y>-gYR{}2L} zve|R*EbZoel~-8U^Kf6$$CXWcP*KEtJA&*JI+hdXu8*jj$z&woBJb4x~n_hJ9^ z#fzuYH&DOni#43YYl2gVc{wshkW4W!1|ardHda|XUUQ<3F)rKvZRO@gGd5bItQ%)6 z+FbcS%&Luf84-x&C@6u&;GEwiYD3?m ze|Yf&_yM_!<$j3q?M&`D!R3n(F&2!$h@Hiq;p`f}?apSN{m-0VXh)~d%iqI2ck!c! z17*xbA^_sKub zd~NCEd2C3>I45))JF|Sst+(~)k=H+~ebsw|F#+<5Bm*0;|d4&Vl<11^GoNn|(X~ z%HOLWUHaG4&%JSJX#a^bMwB2+*OTSfXv55%wB*5io}5nq9btLH`R+51zSZIRt#AHi z|F&BP%q<`C=m=W3_9Xr9x9Hak)}jZ-`R_!9kyw=)^Hu4UXB3tl54OfeD?OxB7h zLGih7FIGIhDr}>8j$p>i{@4CX{su2QSa%3lI^NoU;zDg>zIeV7;*1Yy$`ofA(}nIr zKPDNR@d+a7d23p`g8Ybx>^vzu!X|+ylg^5tHxzUf?$*bq%gN&P#TRmgqNH}~%v@5%AF93B_g7j3quC(2v!(6Xx6=iI%1{rXA2)sWBel3CNX=YM+c z9J+C6+_>hg$Pn6tw;^|yl$a?cxDylIH*3Rhwt#8u--rK03)Zh#vEuh&|G=#Km+wP2 zF8KW*KT?TNT*&oBJora6g9eO)y?#tEIimVMfmquNUqSD*rEPB}xNQ506We#Z{`!v6i4#lNL-4ClZhPgG zZBM>hJ#)<1nKQ?ZnF+IrYb1(fwh|8*LN;E@N5(~JKwyllEayi&C-_h@83aEzShaY- zJf0?d@NOt09}Sh{r4jlu80%E2XO&tH%q4!TQvy{&i$nR8XuP6C41Qg-OQi@=iq+MT znPgI6U*mN6WYYgK!?K>!3#31H6UW{2aB^{fj}YpZO<{-E|egoFpiN{>_N2 z_}D=R0(MX?RXvd^7P}k#E+(4IMh78AgTzea=yp;xgBlkafW@6d5l`G1nangU%x8KK z^f&7q!NjCIa>lEd0x>!H7y9n)d*0l>BIRHI{p@Q^!oU0fca{8O+>0lM4Op=Jr9Y;; z>YDQ)8iM>Ey!kbKW$fK^aQC~$mwbEho_X|!plhiEJU_=`BH3|_$tXpdF#E9xev8s% z?s8W128kT%DQBhiFgbIepUm{{Fql!g>7)r|(+^R5`rl?`MRB`OuU!aJx{JQOi+;_< zR}V&yO76`io}X0i=u1hnO9^TIs01l1%Ac7fW!fvmh)8Vm8?nk7nwK&d;);hC?un)? zA3RJ5^!RGM^Dukx+^YTitJXd9%(}w9eG9w$d<}Rq8I1eWO0-NqftJxqdCPMfHa+*; zrVY;>9OZ-iO}@$|`L=Tj3|DAKhsfIM=43`Zd@Fj5ro3VKgKOziXxA^(W zVdznDhKTse{>^T7qen+k$koR!_Llm(KNLs5QMlh?V793nLeT=o}(h?c=Y zQQne+yd|O_6cL2T)vNq$>p^@99iyc($Lk=DBWCgdU)SeXd5#`EisRt24nluKn~9Ay z@-*Ub;Ih|Vdkt+y-B2O@Gn7pgUL#Mmb^AWpCnGk7-@Zp^A^MUOlLNus>V@bO`jX!d z3EdpiZe+Q&4u`AP+9hq?wpuouI3^V@HQw(wg}!JAE3H+oFK=Ws7U z8$EP5gl<%5w<6${ z%R)FZUtO(?kLqec3`8_tBcCyS=N3wYA&e{T@a5-6JEhLHo~a{EgQaX!adMyZ5rb|; zXi$2x$&hMeKO~Q-=u$F3${>ykpE?E14?6R=DH9o+KA0cO4w>d=Q}V3rmUCE#GKV#U zlGAN1Qav!kWhNst6qH|-_I~gj-Hg)uO?>@XKGQ83+AUK~JU;3$+6eD&z4P^FQ8|C# zJ%ha;`P^4Mmo+?o;*sH>9V7w%Ys!2y8x85>e|^}~FTf=DwqZpN6w`{O&(U)=^gAa{ zEI)qR(=X6dkXXF1J5Q{8js9@wJoG@_RCHJ08vZFDIgXws+n9~TEiBO_i7P8$5h!F~ zd6bn~`AS`#p{8LVSZ9H$Oxnu*S;>>3i1jXK=Ppv`&RJrllqLGJ(xj{^JtSSkdhoIT zJHxfZbl9a_Cx)nhQOwATyK`A#Lf-{lLt*N>F6f)!e(cT*U*R#cbK1|o4S&T=$Z{Tb zedWUbD~76J*9WZ_G-nA9yZ+%j11g7g@@4Ew?0d`LH3QCl#@bU69$`Jw$U~@^q=?od ztgH9LhMT?OMdMZ)`k$j^4NVk%yocS3&OG2cvs_J1#KpAf z-DnaGA|ebFk%B&fRXhzUj`F=4ei31)2_z6fPm*_najQywT?lTM4ig+-yL74DnhG)b z|1|e3&{34<&Ogt6W#5~}LPDM-m=NM7Ap|fi4@00lHH7de27Iw|QiTZ0p;T?LN~y<7 zg(GOGcodaOJ?g2C(ln*CdV6vatx}}c2IO$P++Ouyu2vq&X1M?V&+KM*XLd6)I~&_( z*^HU_|L^^O-}is>ekv)U=1fD)9Ji7DC*Ze2nT=KJ@|LM)0%)edzi}!{3 zfE@d@cr@|_VSVnr-##w9R3n@Q#bDtdTWN5*bXNDy!~f|7lZ2x~&m0G=8T@$Mfg9U| zpJxf1%MLt%`T+)sqtr3_1W`_vi@l?%a@0E-b^C*V*$4kJ2KS3Xy)Ugkm&=+JB52xT z3i(NrWvv$8x?OBeQX7d!hR=X6a}`NtfRWOH+TjAVIpMdD!5@48F*P0iNauPB%ft^p z-#hX_=X~R?okyv+MQFn`hIXRZ=^8>S_UHnqsGA*=ox{`F9s*Jgm^-*U(&40XS(67fsP}l> zyeBd()L?vOr&Bz!GjdQkkV8Q38S13Euio2xwVSKDaOTQ8?0gIf*x&|tAt;9akpLBi zq1uO`%7QWYkT;wg(QgiQNGkp`e5WTLr^9665OKrZt^ z7qY&Hq4tHFsqUdpa?jwLD}C%ma8zizn$4Ah9UI8ptz>qe@VHypMP_%0`@(fXcVA4e zbljaCWdYpc8Tk&1v#RaRK6vo6fj=?(esT33cK7GUKWDx(u>2Qn^VQXg-Py4OAneW3 zDeY#+c{AWybL0f{?eV9ymx;uO6NT4fYX6XWCA=^~VZqW9Bg1)Eh9Q@;oY|o~t1Xvy za%g-D2SQGccW#eR(&diOv7x?+f?NgCEcMkC=Ie`p**e2><$uH5#VI+DclNdqo`sz4 zpV>Oe2V(_G6o4wyS=H9u4|xl%$4Agc6k{7PG2AS5Q=Uw`4%d$P#4hq8^Ay%x+e-_4o9j0|xE?(Xv zYys!FDU!Ac7yB;kbnpDM5Biak&O!dZ46S`1?$A;f97kHL6wPub#AS%617ey5QMEx_ z?f5|c!0`X2-jPvl6TeCEc>XJg#P65;K)?+GeZr#S!lL2dC2bca%S8l&<6Jh9%5t)- z*@8OUiXsMS0jG@!SwL#mAM?>Bl>vmfl3o)II}bb# zo+BxiwmLn$)5@4FJZ&}e&~dX4>-C8ky_V)KE30Ra@h*e#Ts|Vs4M<4+qwK}YtzZXN zdNn)7%zXTDU$}e7-q+VHu2iQX4_-%7cx?k-hbCSgFRo>H9RhGo7Gd?E?gm~WWb=kd zV6~yMkgascD(PS&-j^#!@YpG_f}nuPVUd-2_JeJ+z09WrV?8sro_ayFFa6DJRZg<1 zrwaHcwa$bxxhr-S55e0!$!94`m}PK&bQ;T^Z#t7tBh79^n3PGF|xO4>19fii+l3)u&IQnB@8@35CRLCQ$f@5siK0eEv z&71QG-URY^OKy&pMja+GY$8+<3!eZLw)fD+Z@==t@epwy>W3&>z5!fPfCXIY7hZ4+ z2cdPk2(8n2Y@MpZk4e^PDzr}YSLYDx zj(3Q)*)uCP~tzv5??*|PqBaZexwNpWtvcZc@D<>xxtm#BYW-I zC35$$PtVXCOB2wchhii1=|R1jbOCbrKp}H(u$ays{LDh~$H~s2@xo?mf&kq_>dGz{ z)r^%zHP8g|(7O?%nz;Bd8l?eobkN!xZXKRLjL$$-!aVfX=Y->+Jw7JPvN`Ou2?m64 zVG(0OI(1Aa&KN#~Lc%NS6DL)e7*SM;<7E_u(JG=S70!im&3iDeL7n8Pi6y~WQ(+}P zKC8IIKgMFdZbHFCo3jWMLb=MzbC&Yi9*?WT>FUDUHE=l;^Y4?xSm9%6h9VvP1%ClRf|MkqYRfG;ZMiy#m3 z%lK;Zb(PsUEK^$IFSl6>$K|`a+%Def=A91S`AC<~TE*L8Oy`OAzDECxhIL|NmAHsb zPJ)D(4z8MmHDXLRKqLGaS_J|xj$=>Nc5!*n<`v@;sq zEf@BS!5!8+F@lTe9g6K15TfQqqP_$1n=qqRtrgUS#~~)3!)SMxem_6i~cRD z1@lMT{>V~h3ZnMdk<>v{g|A6iA(Y!A!=z<}R)7p{cBxYb2%pdW^MD=VCdjj}k`vjCR z&><@;V%Xkq=w1wqm4;4Oe>1Sy9t4(a#MhnI2;`FG7W9d}exX-%$?Ep(aqrm!>5XY} z4AKO_H$7N7GJJ?QssYTwUL(i$UVU8zkZpwk{`1lWQ|^T`mrtKr-H(9lkC4q<*gtf7 zYu$s8dJo3%%LgGVX5B81wgCbHmdT>cPJ5_SGSas@Tn)9ehJ2rT z824V9L-rg5J;y;$pYXO@c)Ks=caet?k7^829n42g)fnhi0iQoFn`EJDl>?#4jXGCi z--(!rF=kPYKp^xCI}*iL&Wf(ZW06Qw$>oyV3+z=$awY0o9?=vmb3=8@b9H!tH8;mX zdQFnf`5<7~30j94I2>*(X0KHaA74ljwbjT9pwc^6HSPvOh z3Kzgn6ICmATH{R>$;%afrY!hv$Q zWay1k+XipK4i8JVpV~n`Ca&^(2hMtEVxjoyKpWzLhYmOAp9swGrM?m zRyGl$vtgVbLaH0d$G94CRuTE|h?Vu|1wU4jZl5olyZgt}?%Q(Tv^(hW;YVkkY`mxI zp2nIwaHRQ{zni{f`s#x2eY4tUtz8~K9%2wj8_y8e6E_g^iD2+LBEVNqoI`|~=J2^= zLgRAz5-%T|RWgpA(B$c2r|{M+HZ&oNpWu=LxTpl;hR7hk@D&OpE{4U;;7TGb;wCpt zCTb(4va!34oLCMR!)b>!Fws*(YR{8xy(gG0~933{Bwp331lIEm=V^ltwT_tR7d6goP6IANuHVadmLr zt+SyzZ@Oj4`o&A9J{;`0^$)WbPnp&}4=VG$%a(3jH7Oy^CiC+}oo(LLC28!~d@3f? zM%hJx{82xQJW7MvSz~!uE>D&5ToKPvt}NPH5%PIat$2>qxDiC80~zdSBf%ocFhyht zjv8EW|3j_Q7fzdYb8yjp>l+_EE}XjYr$4=M>dlL8X>Pp#M>C$mT?VVG%NrZZD=KiW z!HSB>EtApj$Y-bmcR`7N6rcSzF6e=Z&RJ1cMz|D`42;plhH{Yz8ui^O@`$;6Vb4DI z`92T?_UGvDhbyR$sC8iH&cEF*tnxYlRYw&EtNh}k90m+7+$rSx@doKJG>seMXH6Q z7fHVeHgqe$w}{%mIy^S(Me1?sQTeUIt<%=89BR9t{P@8q(8Zx;H@393wcNNY@*Tbo z-FN#6^64!@6%Xu{RaXvISps7JwJ+(VxWnnVpvz_@I494MU95|sr59kZf{1Uv)Yn0$ zz*Xq-Lba%`D|2~S@bG6sQ-GZN`_^{h;!fAGKRD?s;m&uDHLd;0uL{C<-?kOb&`WOu z|HQnFJLwgyX=-n8f**Pl{(>J=)6q-*Ub;Ksv~No3*(TW-!gq#8qljK$jgD55e7uxn zryqWlyR4^*Q z$|}G*H$7;JbV45eFWOKTmI03Fz1Akf1Le%6;3;M zH1R@dRY-&K>8;JlIiL*%qcq02wL4AOQfJjOz&CB)o+j&^+G;ZjxM=rJH9@Zp=onxP zqPu=g*QxPJGGqwdb!xk2!jBZgsDV2gKdD)+Qw9bj+jz}u*T}Fb5KoosuR>DNkK(3z&VZjkiyJsWZa0>MziG^8G3C%Ym6k)@+#EBu2Gs4 zq{tA;>(zM8q#wb~Yoe|uS}Iu15h8wX)wR*H8L!Zi6 zq$E6zV2#P;s+3q&(5VATlQ*r^Cmj(smE2a~GA)BuT^`&(U5_Chg);mx(5Ul;llr`= zTwH{C+*~R%@)~nCYH}E9CGRSpit22?|ONNa`X^~;}ub1J| z9`Vbt(`N<6IqbS)Xopdu$-(#&$N>5ft zt}9g#uRAlVGNYg|lb}D_k?bBduxZR|8kA{DldEad+Q?i}GHa&>ez{#ypKD5`wWF}7 z5UaI@e&SUCb_;F zk*SNBOhY86K3dWnC27mm>5GO8t6R~W_0jAnXo3A(s4vork8ZyF3se|s^;0zAmt0XZ zQe%`m93`4zl>4_B&o-gS(~My(nwX7QBN$Nv7D!InL9a%#^mkv zS;XX!YofBDSv&3ChYBl~lI-7B&TbeeEmc0FnzK^^F>Sh~owHLUTxy?IM{X+3cfyRy zEg4m5lZos?W@~NI@&1g<+8I-AV_;Uypn4nal50TLPG|l_tACbm-Y%W|OPW?kSJjQW z+?~1%l~Te$E$+H1_)=Mu)a$mUyqzYiksLNvbV@I4H=<3DK_^$al!VJv&Q5t<9_5@} zN|z;LIXgwvN%VevbhhNak<15@yFBV^>r}>hDU0j$=Im6)_j1WeW$Mz1f7N@P`l{26 z&OPX>Lrb&%EJL{m^^uaU3bVAUFVe}4WTO5;m4|3l-X_foj11|#t{n>9_D;jTQs(3) z{T#q3$cr4B%gNRd~`CM`H!^ooWmgKz+1Pz#2_x7<)iG`q>ghG z5A#u-xk(*?%6X=z`aqLMsK#wDH2PKJA*g_ERH9$??;R$7v{fHuIOnHfoycU)PiqB& zF?y3&fsmfg$5$L>h;zE4P~$nLKMqZYbIIb+n0Q}L?MSTcR~J9x@0Z} zbReEUM}403ygKst!+1&+H~4NXR2v>6Hip%;#;Ng3lC5#+RupUVXGf|i)_2x}!TxM2 zAcr|+P(5)vbk$2~1>H~Uw1h9@kUhf>y)0PzOnW_O>H||@o$yu$$c1*?^M!cUAx&DbthI=B~M3bZ!$H8@<2y@ z)uAV^q*XV-DwFqgV)%5=wTh12lza|7RX3VqP1)SW@4>37CDjI7 zM)zQ~!mE+4qq+yHN*1)i-=q_2O>gLp=vT<#QwNroI7|&Z>Ub|Ri-t#Gn$7~&tMdvw z6dA}`8koV*AH%17uk~Lg`=joJl+n)qq<)t=W6`@}Me=Az@2THl%3SoWT#K&Kr%x5V z$NTi!_as%tBL?nC>W|;m^u*G>Cuwl}uFfkkU_Vz={GNK%*A)$^iQiM56s!h!Ln8Rp ztG2EmTMc@J16FtR(P^9hfdI#qwdy?(Jr;HaAx8Mni z>`@oLryM)g92$0{l2&S{nL7jfQEK2x83)N=OD7H@d-Tvw72nkHPqjB|Ox{QRUQ`D2 zK8pG21Wp*QGjaLpI1SaK?+RH?~pfqP4 zl+HRJ<0z#^=3?Jx1>%Y&e=9WleB4{1qP&lk)tAkk^sP|s^>N8%Erg50Yoh1^G2VJ zK6LFG*iU{;EnprcS@L%T0k0ny7LdmY0bW0eujBqs0PrehqdJ(QkTaIo0L24hQf1Bc z0Mt_8RbYSi3Cc$PYG~25Ys6vt9L+NONtXEvK1TwAK25#KoX7at-*6KwZzG6Ffyw}U zIvKXtH7s7-FlEsqp;Y>XK8?SoNSE*%LUfWoO`gRgTV8|15+Xz~o@B%xVa1qX5XAv|{nDJu~KGfIx zyxFyZ$@mvYxdX4fa`S?PH@)%-efrQ-m6a>ju3b@C`P3oAQJ#L8YG&6!x_byu(Bgy~ zb%qF=I9vh?$^-RvCB;53*}m}yKiG&q9UUF?%Ny^!b0hj}y6yJcZ$ldMIenb^4|YD3 zkugE1m*NR;$Yc#UOg!NTiQ}S?J@s|9ft+jzCkC^mczpSIIJ)oilQ-Tvr6zmwOFiS3 zH!Q7~Paj`0aQ)bvHPe^$=M_v`KOM~=$z?n@J@rMt!_;c}Tu%?8(QS~j9J?Pv;rzA9 z&J(6k4(2363ZgW*z79^ul}{Ftvy(m_xHP%Gcua41_$Dy@wXexT@q_CPidu=_|1(x91ZaN@7+`~$vshMzkSvG+uY4$Vf&JH>tQppQ4!n1GN-Z4idY1e`76GT zXgbS$gs&qS%`$&O*HO)7nUC?`qngG1J>j|!Uq^I^WzOL1h$gViSv+1uidp6pd>xTF zmN|#6qf}&>3!;scXu>l8gKQ-suvOH{+!Rf=vLew|vQivXw}*!|+wS${OWI;y4BGuP5AbW|; zWo-cB$gw`sJFC3#rj9wYm;UmEARWxbJG`(ce&BHkI-*WOW4h# z{eu<>nZS7a_nW}z@}PGhA+#)kSPs-eD` zEGf3b5Bg?V@!L)zk~Sa$H<7i00y6$PJ3FVonkugcKK8}GY@Oi=uDf-1Tj#1xx3u5W zwjx;f<3011-P^H#?vk~^8xK3r(v&$MaqpWKp?T)Y1njuHP`^k-~7RYf|h z+M4@^KHCcE`U$jUS?mUd_2-k7r|yED!Y*M0vh*BFQ#nv$WcQI=!B;C;8dM3V6l`ha znq*mqK=JAh`ZOKDUXgXb7?Z000I60ssI20001ZoMT{QU|`?*Pl17fWy7Zjzc;gHFaSl6 z0UI{}q2C6R0001Zob8xhXk0}U$LFqNl|E^SV&exE6oPcI4}O-YwMG%UXedF7hz+t2 zF&GINYARR~4VZ@@B}foiXdXgY3c`X#`p}BdB1J@`HYjby=z}jU5!&iD^sejw-1$%L z*}L~9YfR}&0zb~o+%sp+%$zwh8(T3Wwqo+vkO#;#=*?hS>3F$XWQ{oio}?_(*YbZr z`|cS{)VEreV_=H%mAG58UnUjh7A%$+=mBFBm&xx@O=cc}O znKfEX+SJ(MS2Bi68FZ1(6teoP1o7dy6#BuVEs&P$E^_XEjZ6Ht*H)@WY~|9;PX7Ie ztps<09N1*tnelcGEAB~*aVOYj8}pez$M;*8?|j~vP=0mWI39g&^8H3sKhZa=KTJ8w zez)4j{M$ym&%1Ixq<`M7&kuU6GJW&8p_g;aQ%~yeIlZ7W#&p=m*pj)vW7F@3r|7re zgR&~WqV_M(z4mh-B%gz$T!%s0+r_;U8)LTdY>M7nU?0n3^FcMPk9R*-nSFJf_;@OD z4P<^V*~WMk-QARfY!kWD#%JC8;p6GBDo@!sHoOmc8{d&d+ZZ=f^xN;Dy3gwMY$Dqm zZG7K}ypMhz1Qj*!4_JPN^H~QzR(qv$mFV6GUIveIJ^R@%yvFaIaegmwT)!Vf+&A&( zee2>^_H+-|bBJZg0OvKpc)=3@YY}XtM1Bfhr|i0ZdeNMB5?}Uj4%CAaU^15G5tdJI zy+31p3uEU?Fw9u!a|G)lzlD_e`W|w~)y*&9N9qcaJ39#50vY2g>+Uqj;Gk;@d>o3c z3vP^{9sF)9VV}#9f|Pw-%Mj}kA|7jRLgIXeKckE|Teu7z*t-HBYQxR#QjeHJ`?&jd z1-^wA-+Lg>5!eoIx0S2NY1M+0LNs{lvV9Mut)v0v3QvG0p}VH7@3`*(`Oq|dvO z2js2%qIJ2lmuqdfh6CKQLc*ru`JJI0uyHOj?u}&!ZF^kK(n;;VgXpp% z>X*{qgyEX+$godai}se9Q+HerHYduh_(DX#PEG9D)}KePWeMh zeHmXQUIob;zU=F|Evp>W#~ivXYM*azmo}5qC#ffQccdfw+tc-zvyp|^T=Ye+t@nAp zS+~KjdF9u9^E{Wcv7~S9DQ#KnJC;38!+wor==k|dj*+*;vkJ*`{w;?4!91pP+7)+$ zhxi7UJLnd0*v(q|Uk81z9-TpXza9V>BY0Q!ON(V~_q4MW z*--sMj8VgVR6{~)!IQCCqmScZ}JU0#bE5^OajT4PE4xO6J1!esG3&70r!vFvP0018VO#oj2aR7_} zrvSnL-T?Ul3jrqqLIGX@c>$CGrvbVF%mLm3@B%ghNdjF0Zvv_UyaNLRI0H%pTmxk0k}GYV)5dJ3irxC+V&+zR*$6ALd3N(*HRcngaQoeQrE z!VA<3=L`7^3k)3$FbqNriVWNg?hOD9QVoL*w+;0UF%ClxRSswlvJS)!)(+?n`VS2c zSPzpAuMgc1?+^hH6c9NOOAuWUZxDhIl@O;8xe)6R{SgomA`vtZMiE&NYZ0yy!4cCD z@)95tG7>}*R}yIwl@hrU%M#rZ@Dl?Q6%!{DITK40Z4-YJkrSg6zZ20D;}i812NW3; zZWMqNk`%2J$Q0ug{uLP&D-}l-VikTBniaJb$Q9ca?G^tP5f*(GkQS{LzZX0gP8W+8 z#TVBX=@jP*pBb?k!x_~X=NbbV9vV6tRvK{{gc_C_sT#W)%^Keu zIvY$Ij~l`q6C5QRHylYETO4g1njF_0>K!2+K^;>aWgT}NiXELDuN}c26dooXc^-=% z$R6(>0v|OWNFRD1q#w2)?jQjm6(Ch0m>|U<*C7xgA|W*)aUrfDz#;S^1|k?DDk4TA zVIqAZnIg0z$0FJy>>~an5+fudHzP?STO(~FfFqJ4;v_jFOC((+z9j%9LM4PHyd};h z;3f1XK_*isWhQqfi6)#U1}8EnXeX^F@F)T(6(~z6T_|rTfhd$Hrzp87%P9~kA}KW~ zNGV$>Z7F~$k}2XT^(qG{Cn{DdXexRtjVhli$}0XV5Gx`pH7iIfS}SZTek+hGvMau`szX(JN5N@B{MBEH8VXkS~FrZYBO>(o-?pB^fUZ4B{WDhYc!WMyEN`K zBsE<%pEce!<~AcXV>W9xel~_SwKoAbQ8$A(tT;h9nmEWf&^ZG+IXP=NlR29?qdB!X z?K%HCGdfZ_pE{>H@;f;@Q9ENhfIGK4zdO-89zHrgLOxVJy*|Z0>^~1bGCy8FgFmxB=0F@kUO=5dr9kLGCqXYkLP1JFh(XUn zAVO_ImP05*enYH7(L@A9I7DegaYT7Ufkcx;)I{b*F-3(%jYc3wc1C_iiAI!0=SK!d z4o4P8KSzQ`%}51EK}d#3-ALs~?MU@W7)c;WC`m9$Xi0EMcu9ash)Ix1x=F%G%1P2m z{7M8$3`!JA97QRXPgRsv&{f%0;#KQa^i};<238MN7*-)xDpoUAJXS?k zPF7b|U{+~Xa#nj*gjS4JlvbQpq*km}v{t-U#8%8!)K>*pC|6ZipI69O0a!g)T3Dr6 z;aK-sPFbN^8Cs58D_gc)C0s#VRa}N#uUx-e=v@(ATV17Hu3gYx0bUMXU|w=whF+Uq z%3kCBs&>qF@OKAyEO$S5ZFi`5 z#&`XABzQ}Bdw8yR)_CK25_u_kM|qri!Flp|`g#I-C3;VKa(a4tg?gNO1bdNtxqIY% z4tzI!aeS(L?R@%u2YnQMA$=}=JAFufRefT8Z+(1yiG7xRqkXV_y?x4k*nQ@G^L_z- z4t^efGJZmSQ+{E7cYcR{)qiM!kASOy*MSXzGl5xwfPtogxq;1r_<|jRQi6wqy@KQdK!sa{c7=(BoQ1E2!iCa>>xKe`8HO;1M}}yIkA|IwvxdQj z&W7WL_=g3D8i!1WXoxI`PKa=bwTRn^1BqOTYKee}m5Hi}y@}C@?urbGEQ(BuY>I)3 zkBX#n&ypYO} z-jMH+0+ADuA(17D(a9G*j-k)F$+AfITTe4m-0xu3?L)}Q2`@}L5s5TG8QFrYr5PM~U_c%Y1+p`f;) z%Ann#@}UKxC81HFWubkcm7%hs$)WY438Jr}%%e1;U88EFrK8oP2c#~fRiw$J)}h1`l(5&j;Wie`>F@3 z7^*<3bgHnb!K*r}x2wdf)vN=oJ*h>(y(8! zo3Q_}OR;*gH?nB5XtIB@rn23$BeQw4-?UY<+qF@(x3(>|l(y=(P`AdoEVzQW=(#_+ zhPm9jL%O-UAG>zD+`KcqdA!iQHoc6!)4nObaK5I#?7u?4sK6e;guvRtK*5&5-NH1& zo5J$LIKz&^)x-?MQ^c#q62)o7u*L?)O~!=A%*P|gYR93+=g1z&MaX-|!pRxQfXVmD zUdpx09Lsdey37#FcFfGp63uAMug&MqF3yI|?axHdjL+lHE6`!ksL=k=MA3WE!O{5A z9@16PoYM2tTGO%9_|#9-mekGF6xD0hveoF;F4kq%jMl@~3)f=Tsn_AyDA-@vhSC-*W?c5RphMY6Xj~|{JXX%~kauQTk~@Bne))} z7xZrQwe;-uGxciqk@d*-5B5g(ZT6)0%l6{;3HLzvhxfks<@g-v*W%-i%uKB|G*7@`L4*DtjPWpKIsrtM6>H7Wq82dE)Nc(B~llzh>B>+(X1^@y85CAU#ng9R-%@2bB0{{Ye zoUK^PavN0;y-va-;jyA9D#b#TV&PD-9fwC1WTnXRgUC{l?1U^wBUzqAmc+~`iZ?7+ z^CN8d3O;}ZAHYYjpjgp;y6iBK*@!GFCzG*&K z`$Na?n0sq~>iFGY{N9JZU;9MI@0%|_`pf)GR_>d7X4`y4qeGLJ*raA+GWtI;InC8+ zl$t3%BbrHQG&Y;GQZpm^tC$YW4b3U7Wq2CU_kg5d(r2F}>$EQ;y%9Yn^eH;~w92wW zGb1e#$+HjJ^tVYKZIe$AOqXnYL;nv-I;@6`1s$txRTdrHFt40Kb{Y0VJkJPyD;?AK89hhja{{C{38lz9hm|99PHO`*N48$jY7N#T z!iTiN8RJalB=@!1qQ6Xc=cT=yYHgWk8N8a3wgg$O&^%ko!Hj3{x`J5G>3ar7NUVa1 zmFBq#;z~(^y%?A(J@+9u1;*!?;fUGJlq3_~8>^OqK1a|!MP|=PD#se{>cJ0-^#~F1 zF6)=<$bfTNnmKVXR4yk~^bI?3OqZ{}c6aapEae7GvMUV9&!hBTLgsW~ziyB@ME0&BhO*Mooq9Erq| z!=CL#Z!AY5oG=&FtL1sm zp)ymJ6yx24)_q#-DI=$-*#!Qi&~f6bzs!{~21D#Ug+|*ew@@3!ez1kpAv_~CAk7@w zqP?8M9(G2k5{_+)&^w@$q+wc=sRkiw^Z(dYU>2NS;;pc0pcOepO^lU4RYb$9gWxnd zMb!+IEw&znpHn>{#RB`7(^`U)NB9;gzo*LQurGQxbrpv>Y=xG5Pvy9|2S~5CI;+U< zAn?$47g?JC(G!(Tv68r6(?him3g<_rr(n3-o?%vo8B|^suPlrIO|%&}@|>RHpzq`t zRI+r9uo9Sc!hmgbz839Gf)4U}PbxGo{El1)Istcb*NfRA_ccDdr1tEMgSAQz%Mg?F z={9g4;z{Ji!eI%$;(aUA{Drlf0SAAgh+mwo6UYAhi2dqTFQ2zX?|Rx-Mvi@}*yfqE zrGELy=9)8~gKP<3r2k7E{5c)LPrfC|&A?ZlJ!7Ogvmm~Ryqe%9?&VW=Ul&H??i{oH z_x-QfdAUQ&`ID)}2rTI7*|m6<7a1xyhzx$RoektpcqKjk6?{6uSu#+LaDP3+jt#vd z_7T+xyH0gRvTS+a?+^ob{-lULMgPrReq%(+9xT(&y(ibX9NkWs#ktIaY+8FZ0`a1! z{Iq9_jmjb+u@BudYnmvsMLR{D2avZnotKcDFTIP+^xkQ!=QHgblS|afRVpRC=i4`~ z@Le#}(xN?#?>b4`)t)Q(WQg&V-Wg(G%vh)H);TueO|*Ot7EiuKRAS^u?xa)KXC)K$ zB{j0I)hkF!1&E#H_uBBzz54DmF!r8!7I4I(Ggfr`y*pJbeN;tVHrJWU_UFLW-WSIU zco(z#y14zW@T{q!6Oo(nQ~A%6BM#Zh+`RTe}2{x0QDx>cv9bd2w5zj%9Q?Ax_{^ROMj_X?4V6rsyRCU3veZ)`la z51j|R9=kW?7-y{YCHyU>uhnS#2Wtm3SD`nW z4y`<)ryZKzp_w}*(be@k$kbCBv&ObLhAz?3p-FIo?sHnPYn9@t)z|%*0-ccJX%;``8!p^oZuY)uLAiuxLFyq^Az) z-`CX|={|ry_P+|Gc-(S+?y9FXV8oh_@J@J4yJ}c@OydrHw(*WAe(b2XEyS=(>k>-? z9!Ms{qdI**Cfh8rM}8f_3$}Eml2t^=@$6tfTYZFC@vN;`=CRkZsaT31jQr2U%z+_KaH7@v0MGUk56j9rkaB#_aE&%fX_*R$DO#%Q#>y>>-K< z@MuE1OMW*<{=m%$>kh!Sx*{k#h24_*W`JQGx#IkNOI91ooEi`+Mj>^;{`)8d=bC=j zvA2yUpW~M1u(F?;-p#B1p7jrBHd@1YoP9h8cpSymvwNp0Dz+@ivfK@!6O6Qb zWkg8Poldqv*v7VSOp0@o*3zNVow#CKPVa&ALIMdS^cp%Lq<07q2&7j!>4Ee@l0X0M z%$qH<=h&Za_LX^U-n@CcSCEOszyDs0EO#)F_78WuFGrz!4HGZN{dff)z$?)`cokla z*Wk5y9h$`J(T#Y6vDD~BQ^qoM6MCP~gN{bWp#Px%qG_Yo=tIY%UmMGfesmmij1|TJ z`X)XCABmrbkHSZz`;2w?7<4~A);PjA5+8?-M<<|v7)KdL92JbBsCk0(2_+tx-mw!>1V)d^#S-XP_4vHS`OkZZwRhvEMjg z95fcuC@L9;@K(GHZ^vii9cT{k#JlhWJ`3+gW&Bcf4&GzD-FOG880VpRbg6MZDxfj+ zf9?WSjdvRFLYvTUjCUIb+Kd*A_ZaU*HGDRH8Gbo_1%4%}8yDcc=v@3N<3i&iT*Q-T z3px$`)415U1Wy^CK&Km*8keDQ^h4Azu0Z?I0X&VG*fFj)t}(7Pu0vsqFd2U^bFdCCXD-x`|&|^mhk|38vWaN5HF(hjEB%} z<6+}F_z-?IdMSFH@qP3L^hW#|^m_bS<45>)`1SY=_>K5Y#v{g~#$(3g#uI1{I@@^C zc*=O%_yu|ydO7-?@k{hs{AT0V_$~OY_-*JF#_!QDjc1H!jXxNFH2!4#+4zg`SL1K^ z?f4zWKaJ=xH+~O(FMc0>KmGvzApQ`(0Dl;N1Yd|R!XL#S!x!UA z@W=5d@TK@Nd^x@XUx}~6SL18&wfH)GJ-z{d65oh#!Z+hv@U8eZd^^4ae+u7;KaKCg zpTVESpTnQWU%+3)U&3F;U%_9+U&CL=-@td{d+;~$z4$(SKmHbe06&PojUU1fKUS?iyUSVEoUPacMSDV+E*P7Rv*PAz(pEPeYZz3DaTg+R{ z+sxa|JIqg+cbcCz?=nAQewG|ze$M>7`33Yb^NZw2^ULN}%&(eXGrw+r!@S$P$NZ*w zuX&$&zxgfm0rNrg+vY>&!{m9W7xkg#s2{CB185~$g;t|A=6A_a%s-Nih+3V8wQCa0p?(Cy@fD3?f}ucL3EJJ6@lo#@kvB)Se=kG_b$ zgxXMhf+T2yCE61miOxh1BsQ1Rf*M!HHo!}b&2(f z4T&QXM<$+^I4W^;;+Vv-iQ^K-Cr(J5n0S8Tq{PO=$%(TLL?h?}i6Xj~>>+2PkD`mvRpe#p!i0k;x|_V5yn?)v>?N-vMKVdI$TV@t zJ~BgQNr{|8=17^$lM1Pl1#&K_kveIRCfQF8kb`8A93rnKuOY7`uOqJ~Zy;|ZZz69d zZy|3bZzFFf?;z)q^T|8OyU4rAd&qmq`^fvr2gnD>hsXuw!{j66LUIxLDESzEauvCnT!TJCt|ixz>&Xq|ljKHn6SChRoIFAvC6AHE$rI#B@)UWR{DS|GB7HtRiEgAP(?L2!Eo##gP16j`Qcj2IDf9*ORQf{tBKl(b5;{V2G*3rqfsWBl zbTi#TPot;Pae4;bO1IJN^h~;g?xefu1U-xHrZ1&?=-KpT^yTyw^p$ikeHAUzNjgQR zsYCbC89GZ#^c*@z%XFSrXcavVG4u}fHuO$(K3zcXqUWMFCts6%E!vBIh2BJK=&Q7z zd;@LJCf!dD(1Uc59-^= zd+2-V`{?`W2a=a2FH2sYydrsJ@~Y(3$!n6=Ca+6gpS&UY$>fd6o02ytZ%N*oye)Zq z@{Z)El6NLQoxCggndE1apG$r|`Gw>clV3`HIr)|3SCd~$em(h(4V$LS~NrSvj-IlY2jNw1<;(`)Fp^g4Py zy@7s`-binvH`80_t@Ji}JH3N`irz^-P4A+gp`WFnqo1c=pkJh4qF<(8p^pEsU^w0D!^sn@9^zZZ^^q=%O z`Y-x#`XBm#^uG)-gPAPBlB|tkMi^y`wX+V^$-3AQwv=_VWvqwwvOcz)^|KXhfURV! z*lM~uEH&R|>FHnyFe$#$@vY!{ng zXR+PvrECv7o4t&^oV|j*lI>-$VnsH|rr0!d*giJHW?6}y!{%6-&9e%tvITZ7tFbz3 zuqNBj4zPo4ksV^MX0KtdWv^qeXK!F{WN%_`W^Z9{Wp86|XYXL=vGdtG*}K@g*?ZV~ z+56c0*$3DM*@xH#?8EFM>_T=C`)J!UZO^igv5VOy?BnbcZGUB#w*8%5#x8Grj$Og7 zWLKg0pr4^UdN+C${Rlmdeu{pMevE#C9zl<>tJyUeVS`=Eu4C7;8`vi?VK-vNZo(b7 z6L;Yycq#5?H?v!CFYd!5lQn0*(;>LzwdP4{$EX*V%_Jt6>*f5un%|?`f_7R_pjLa9OYSjuE zsm@d@&RqLQtyGy2s>w(}j2-zvPS-=J`x1ZI*s-l%F4kvd9CpAU!?7bA z$(=GocZMRpGqR{oZN6BUo-Ehfc23P6C?Qs5__~??nKnQUA z_~}cwM!{`SaAy=eI|AaOtdGS|eJn=nV=+`8i&}jwhU#NcPxWGpR4?kOUTl@>MLpGv z{z4XmxD{c6iclYmL47PrS30Ib^>HewkJGX~IGXmHm!h7@eRn z`hjf^;z%5D#ep&{FB`}~Q44~)0^p0~v%I8ALJLhIar?)Nw0m#jm7QSxKw<@>E+aPgP%@YOCd`>giSWqf!kjN>x;p zYEV(Ck&03cDoQn4QK~^jsYWVF6@pxaN?Hw7(i#jh9JO%StIMd>LrYK((c8+^%1k}k z@XBXHmd}PNpN+7brc8mR??N+hwke!#2F^Ak&Nc&Qn^9+*fwRqsvrTZe3FWgX%4bv7 zxC7Fq1EC6ez%QQ%WcgeS5f}aPxhTu$Vz74>p?oe%(T8ODJmhbRcDdU(7R!z9lB}fX z_?2`jS{y4;uo?yHQSeX%Y(KbhzFBUR7Rrm=mFE0j_}f@6%@q4W2p>7%0nN&^Q`@^x zthsy0O?E+OKd{&RFD{dn`Ra6XS_@tz3SNHK>dv%>+2ZNl<2l)On#V$R)usDen&MSh zH0p=Yt4DJlu+)vxv{QF8$6Xm0UUGUd0v0M^uyewlSS-!Vdd~LvfG=&y=E&@&`KWNR zb5=OtvAyV~(d?Xzh*$N+ipb3NF1NY6yCxiKpYX9=VzosA<~Hr<5(^bT`$ACClh-yW z{Fh5SBceAW{htY^(6peJL<*IH6e@`nl55m#ZWbZ7iNpeoYN?_ zZ7RAaDk&_~OYXUwJljPj3NCurtb3K*;vPC~^;}pex_6TElhZ}>jHbD@X}+}N-bR(Y zn48;6i5;`mwwB1s3i z5|{`vw{M$wW`N0KSLf?eU{WwUy;$10I6qk}w-tq(lb)M1o||qhC^w440cQ_+&U(a# zaJJ+*J13kiOJ^%h^I*wsbA&~S+HAGG?zy?IR4JC*#ATx4dfWt$7hG?r+&>p=t9r(= zlJ8b2Wbv{vAj!>;qf47nhx#;F&Zvgs)L!*N(_Rch?Sw<^s8G+T@UTNpt-8^B>GWPo zm3>aFRIPQm?TvrkIN;;E8nbR|tf0<)Rj&h5Kxuz4r(Qbf&#AlRr{Y77R|xz`F5aIc zZJDlA=c%h+Ubwo&MY~WeE}5qlu3VLp&($aSgfe+4G)YEJjl2>%+%BaibchR2hj#%w zyi2J=UU@nMpQl6cNgd)+>JW@Vhj%3+S#K@`F$w@zm;$^QscRV{9}-giNuFQ@FxP59 zo$VCX%IkWECm60fg)9X)2dCUbo~|}0%MNv0%Uao$cFernOS?U-+np`AYuoVdF)K4= z_ujEMHRm+EhI!uYGLMyPHBZ$4;%oQH(d?po>r?4+Yh>w=n{UOkTbjE>E9f@%ZjGKS zcb(g;HvGe=Yo_V8^Ul1}@XT1^Lqc1Rl(tt6qHSCmL4_%+q7?V$t>~%|q@{p!Z4q#9 z3!c?cT!hvQH1B>WkU^7 zjqtAlWXl;nA}6N9u}~;E$iPKVVah<1;+)$omIYx&l;Hc>2Z(cW*6r1cbL9ruD+d{n2r3+qWr`9+B8&;) z`&0Z4i3%dvA3}uC>jE>povT~5Dn!;utXOetV%aGbyHrrThfi~)GFe}6*P+WR*LBBT zE%)TEB`1rsjimP=go${2AxKWUQ<6^8J;A+~sixZySKJnQrs>Y9l*nvtaet*$Ow5%Q zlI3Eplq{EO#SZUfSF<+fHnnZ@#Y(Z!Rw=qDyx=Nx+aPzSw$;2d!+l+FoDT82#ce-| z755IsIoBz>_cfIn2RE8CwbESTK((@DvguavM%CRAo~>QerTwM4>yHRiha2b8{$klR z%~=tg5uSI>L06K;*zTS%-o06Qvf*Dg7JACnnbK6T?8a#a937n=)xDVV!j;%IJI_j$ zshZ;*MQx%ZYIhs;S??K5vFtWxBeh!fK)a}*;*w2Q4^-rpm&)R5iFdWbXX$7zj4Gz3 z@_MpZcLdy9t{!k|+bT{$9I-jKpPuVexHH|TyS52rzd-Ktj%mqS7w9Ddy}4N4C&1+b z9COd_Fw=@)E{Lp$WbX7%_%J)$=f+-2Z!Ro^r1uIiYHW|^YZTQBsId9VJzUIs5i;=E zz0&RO_a{Zn7P4Yi%QcY(h|8!^GEn16-%*-=`u4A(77V3Pd zHdS^y4$PJs4qUtYe+I4xycLmY;_~hem{y9FXh{hru0{zZU6j%rQ6q7EQ4JEgJRGTj z)em$?<{BUA=Ge4bq^U>X zw!6od8!Wf_*NXE!!jcGTnczAL7G;Nf7_{&6ZXu?OAICA?euI$!h=(%}FR-JoD+bX6sCgP%{MpipBtBFL)4 zaBNT^$(6+6U6~no&;Q-Q608x{P3YS@OdQv@w;B(rcT7Rx1=tU^)qA#U_z$% zhk1hN^@kY)v|IKCYFDi!?w5ONeqB?jWnL2!#mJL2gmJ|Pg;6mPln@ielvTA!=s3RLk6c`I3n|+1RrOahPCMc_0QDD{vjW)5MnW8Kmhc+@Gizx#dSrh<|u&M>Y74DH% zY9v`4Jj&`;6qvO^qlGPvFvti;OqENpN@oyfk07nqN%GVYv^6eGD1fwfZ$1ObtKvkJ zL!ANXKxJhZh}hPvQ9PsiG@P)eM~_wwJqt&k1j*`iin0Z7ino=K;9oZGWA*)+aVb2`Vil$@>4&@h2h*|Ef zz&P~vp#)tKM~iuVA-une%XOq+^|7kA%X{tS(K^=e-F8)jW~?=rJlm>%L$}7~I?Tq^ zh~bUv=i16J5Zkz6irTngoWF4eGP-dEN^M*p@KpGlZM~xWkBu9rhc|9e1pH_mZsTgi z@WvgNIn^IrDlF)v~gp!*v1WSb=`9B+@4rCY~L~vB?n#0$|xb!vuqF) zrA)XHZ57r;7&PLl2r*)6e~jeE{%~b!MV#ihGq5}{8wK~82!lpk6(L3zt3O8a*Dydw z^K3<&Ch&4)4%?*+M9D#qvNB2tbtp%<6qOu@UGa6Tn1Xd*--;Ys{Uby4!z}Td7A*d1 zu5CdK)-5dkFpIOM1&hB9Yg-V5h==2I*toB2#S}z;eJgTk4K}E^p?7$n&Tyv3%GH{% zyw;G<=-T!>m1aFTU#!)a)EA1=j=bG$mKt4C<>sUhEtwT_6xcm2pJDk3HZ|)^&ADRc z25N^<#THzPyoZO=c&b=)s{8PKsp5Tbw(d;1qFC9z8LjOs%~WuuIq%e}%zK|`-V-IC z)@^nUddF(N1pGJ^%H`5R9UcLV2Ty)O2zXK@5NC)d8Sn^hT^Qx=5OsT*cPfpV6CsE1 zK7kw-I9@&Ey-&10go@nM!jv^3`ow}p?2-=zUBL5mS@28?tPNp6U0>wkAVk7PF4lub zHOsZ^AA`a}WI%(NPJTq0%Q^;`i28#1;Cs!|4ruX_+^8I=5ZP3u? z5_&y2`0RsxcUR%m=NkmJQ()oa4+8**zwkS=Jqj6mOTHD~k|tjL z*L#sHJ{aJZ2{1gVU%s8Je{^95yvwYAuAp0g_qjiW2%!hU=tuzKs8tbEgw!WV+NV|| zQh$5AR|yC$gs z4nmEkRHvL7lU+=7q*Be;#nD*O5cy7>@A>}z{QYx%p3i+h*L7dd{dwQ_ulI95A3v!b z3C+2kZ4z7KRAcbBQbR*ji>6PDq7sVxG9>+mo}v1BTo=bwIryZoL@z9BjVLn25Hu~e z1L~8~Zjy;FX2vcE;?`xedD15WuAv(tt@dUnfr&EX{0JD?e!IA~Ws8jFZh!ck`O=YX zZMCWF)abMNX}m(C zJKiM;@6wuZXEWgr?~ZOB`mI?ntyzcsi&g_6FD`aOSQrNKPNCTHrg$RU`n>+R+q3!l zrnRG^!5i()(QZoLsuz8mgRds^1qz?rWHao2llr zRQJ{$V$U)~@_*YlcZeZh7-K&}Zcl&amw5aCg4x|imHm&x3ypoE)V=H`K91{D&yn^8ae_O#EY?CqF51TmA*eYY5~u3Nk8# z#o8cop;E6AOVIkFPIIg=Li&91yU6D&eYGrQFq|WO`TH z>^I<_LdSe>`W#Gcef~|0KjAYb0S7*}ME*r-yyCpD~-!x)= z+IClm691R{_frR8t;*bACFts@h!fs9zE*4Z8ot^c;y-k2KjF;Z>);LZ`u!m#g;&x# zudQ4@8#q4&f4(w09b|_mge-Qt;~xp6-Z|NS&Ghp0*&|@1M^Sg(rB5CyS8=jSK67aC zn+9#}$vFQz#20Ue&G*-;Q38Ot#^ctvQ4qipi21>m{O2b}&P0hb$;niyw3UaNRE1Q# zI@3=@=A8qPVR>g7(L0inA9t?&E_E#%K(Cbf*p{QKQAelKiIK>|`S98DAsSY=7U(a^ zeN|48;96nxl`!4A5_+iFg>+NcCZ4&0HULFOqg7Qm#h@O!Fizr;wK$>PN~CKD4q9Z} z<;*-L8f|4ZqPB?mb&G78NR5GS!r`V&t8^ckt4X3t(e`#m&5F!p-o*(fDt-CD*hA8r z(#O*P^9AY8fIXljaCN*GZ*78DLAb7=G9LvHkr^*99)%=_W?>8X_Ad=mkolOj6E8s9 ziL6lpW1ge_7wMJA{(%D93*!vxtz6XNHj$$WUT(B>--mN6eq9D6S(%Nh^&^0LwSy)c zZCG4UMpwr4nMD50Zt-S~Syw~wvQS)57`YV5Jj0g)qy~wtXsDSmUHOdtF_B`k?+Bxl zq$;DrbM5M1R6mkl7Msv30w93_Wpx*Yet64p_Pi;V73IEGN3a)==VXSa3iWE{BYTM~ z1TaC6g{R?UB%8USn2cvqi|xm&fLoq}KCDif19+u_rT|`Prya3-Q#YHL`eS*|tfzj( z?Yo9C;WN4)C76;~9V9;MK4`);5Z;0{NzB7CZ%NRKXit&cDuHAuH-=UP+EH87;`245 zXV*~+KlOR?jhrM7)ej}=_difv{RttZs=3gpRz-)9@+!AjDk3g?Q0QCOr5L&CkWAkY zcj<<=>R$9**tEZew`;XFaL0uZY5NAet4{sJA^o)IO8Tb~+w`;Q0oN|Wc3cU*qARu< zCIOx6zDs}$H9Pgyo{x-m^UMuTA4Ro{}uNvE|UzclM za+K8Fv-lKLcw%aW_;}~8hYIS;>CXnWgre7?>VP=F}`(w##H0+T_b)nih# zBOO99OGnlK7ZW>!BH`!r2F%;tN|p5vfz0~TTWzz$MBYaU_TriJ9Hih;(5@289-49N z_B!jx-+6zU)cE0RE5LzKo__S5(5r0mYxXCu z84CFWdYxT9NSBpm@;ne-&S%Y$9}<}=;3A`F8459Ln}LqR!e-R+tJ4zluOgsby-<7Z2cH_s#I>D#7~Pf=Z3T>x zDfJNlhFna4>R1G4RSf6_-36#Q;dFYHL)wzWF`);ZyWB$GJ3tB)^wZ}*nt7^BA-$YF zZ_AjsDQZYOEKEDY*Tv6~B;V&t_GdkpnLH-6l}~?LsBR)WEt8<@hA!}I#EyHD(dU%$ zXVcM*EOI4s@`~$u$c`wwlaI^a-=a6`{sFW>E5tt+$aOWWmlBZDgKaIqQQVuZd5|qQ z*@y3YMt75UcH)m$dRkv-M~A8q!qI?ijIrW{=IiPAb%z}@KRWe|%Q7pRH)!`dF2iCG zix!0Yz$6g;vm*5va9xW`fs1X4Wf)7bT+ynvD`$4h97VaVXl?K^A@i&S2FjlzKHF_m zHjYK|8&`-q+_0h%DV7vX=dTWv#^M4B`hXXUy^e0PPYCU08 zBY|DnIn!nfDQ+8DwP{*p`9{VzsjXg%2BYtqkwK;SOKEOw#neoKbgbx-84DpOW0(`` zwhfF`^ITHwxxWkCE}M4U%D{tH9s(XpihX}WHBr~gs1#eY%Y52#n^%X)<~lSP8r)fz z=BTsUf1QG(`rB!+-~(f_5B3RrYOp#Fh8OnUq%p0uJ-&kZ7tq zZc+?~(E+KRak%O21dk?}&sDq6S7T?Zg=f(XIQJDKwqi(Q`xA!W2%Qt1SZ;7<5sk{V zf$DojSifo61zbQ+;_Q|He_Rxm=ag7{o}uvf5&cPOYDj%N#hhNlB5?{B{LyM~q^JR< zdsGpCt=vhLv81Lmgcg{a90{2k&Kf@7dkJWScE*LpLQg>`0!0h}y#_bUq(`}HKyh?7 zZJtDnQ5!~1l*P=&LpK@1*_SPd^CUtH7J~~DgT9xbKuZ{Mq)9cT96uByNa-F_RK=c2 zBFeM)SWdz?T`?py848l7sFc7M!jF5{tQis~I+%=w6QCfyh0yoon8FNsjJer@6CX~O zCjx{ z7je1=k#fdADm@!|ynaFEhtqOK`alhl&E$~OXvuKPN3JX<0ql<=7SIA^O7}>O$b$D$ zc8V|vz&p3aOn(h{p2;FT@?bGA<^?P#Yh3ICQjQ2M08@I4V;+3g;(a@%XbLiH@-#D; zb5y2Aan^~7i`_%6W?^5MKtaaZG~xINBmxPQc#7@zp z8gh_w);?qjIbKtaQr?d6tP1k1@=93dT4WBgS1TT4QslWZr`iWI{n8q45jI zTl!JK;bbELZ#@8Jv5O2`VLE1d>^Ah)q4{)80mh9|s=WYnf0K1@^Di6xLo z#YxUYIwbP(BuDBJB+_}3Q`grbQwQGsntv50^Y5iQAo@lFSH-w&wsXT(ey+RXYL3Ergqn*^bX(8^;mRmY*eK3DA?3Wy-xLahpu5Nnu#iIR`_0eE$)O;UO9Au z#*d_v3(4d6S{x@Stk;$uU)IVTx%T0l(5$0>%UBv4;@vXd1p?#FcI(-b+~m7o#>L$W zk@OmT;w-zwBvA^_gC`!WJDVsMa?Fk@gXR=JXxl%v+8k0y#2!UM*G*myy)d84l_^dc z)09jkdu5d%vQEm)R{IT~v;XAyo0Uhv8`QIo%i->28j#=G*&4ArSF{a=DK-j-`Pew9NR8&s@0PjEm2><{90Xt9t0Pgny0{{R300000000000000000000 z0000DgvlKSU;v430X7081CUq*1_h602OwLgI&ni(89FOOTKRPo5#a3Fs>Z~+Mo_Ry zM8h`~w1EvUM@=Xp^)%fE|lMgLW6z2U`sDE=+c#M}q$ z7A2Z;V`#Qyh=!70u~Cu~fmS3qEHe{kM2iqZF@@s0&R>1ZKGr@hrVPE%JdIq?YICd&V08c;md^>aJ{bj*jM8PVCXi2tU=-ukT^Z)mL?!C{O z514KpEaFWlBBPm*Hjpf@ZTWC&y+6 zbMLf~As>(@9Si5-|(cy1`juZ(M6^Y+S(D9lEKaG}DAiDWg$osDOlo0OO8(PdZ*Z&2hn{rZgvS$Rjz8 z#>%~HE?Jtr|1T*b3BuJV1|b1`jbo*%tE*8H|2@C$|G(q-W)J+7;l^ zJ>wQ+oHITx_5T%Fc^Y-z8%Z7cLaa?6eZY&5UceGLg#a5u#zlK+&}Ys7@6PTlq1Sfo z7%+7j!ZJO=)sH2hWL2P$J?LG~1$1&$q`56fTWGu~l2GW5uA2@0}}vfcdBCzF)mJ zC!CWnIjpc}o(u5AaVZ6_Kusb(Ga2!W#~W$VIxVG$J#pnZ>#RPM9R%=hze|3sSx+?p6 z)Ah1RXMv^Tim$W+gGgv73?Mx7ud2CzQ1UzQDwT?~PN(!?Ds7lEEduBwP;>#^1kg?d z>59l}g5(BX>3vHn1s{|Xe%Q{#2W3Z~8$T%L5xgc)etx3TTOBi&DZ`pAqadfzNnf@s zTQVk-lV!@wlr>{s#@jMZ2f4~pZ9hIp4D6lC{eD`^jAcv5l7>m1A&ST%>&@f1{_%M^ z#%A-Y_ubG2B?tDRe)ewvdMn>ohuPq$v6D>OcnVVUGNW!v?fiVlW>KiKIR6|=Y~+*U zANy$QvYUQ#@`*=s)A(=2e@%bb2>q%5S+17fefVhfyN^7NpHT1c(`jRP5<~IsD|18` zV1gEVT<{`5kO*-y%(PI6DoeFmp~qTV?6Ti+E^>om9x=iv5NEqa`bp9glV>bmy)3$` zM@9Vh`$tyiXd2kC=hy?1SFKLJVWRywA;WA~2tpKT)G>o=Sim}RsGtQ30&H~PK^Soi z;{cB0B+lY8&fqd`;VvFy1aA<#?{!32h@h%k)~P-XY;dER*o@|Pe#=|emab@T*L8FE z_joUNs1N(5PK^>MMV~}wnt3|b*kYfvyuv9?bBQZlXNGy!*d#`hDieAbku7=BjqSK z>W&%5Ir$c?>;Gi`&!$iyo+cs!=Ehp2e0@Mg_8`L3KH?ifHfYL*JzfC9b5N2|!5_^P zMJ2<@;fLC-G}oL#DfC%o;kkmyUZJ^g^mAim$QsmgT7?ZQ9|_4_ns9NemUB_q(9#fL zt*z&wnH{Z-kRf+%z%|>>;%TC0%`13ZrP*EmriW-{xX9!*Qmu-)Dr%^BBqCMJOA)z+ zm9L7D&gF>O`O%)(M>Jku;U!m#t}62S@{t_L+N5-nS{==6`t-(&Cn#Sp1|z2&d9>I$ ztC*;JB&NUUtat-a1_zS)fc9f+aRT3?@$v;`q(dL2T03~ArQOhjLQT#=YV8sHu*Spt zk#e1L>}8g8wa_G}t{#*$bVVf8;VP0hQayGx=f~tgU9E+ZM!T7j_P&d`i}|E`Z|JLb z@4rg-YwJyyr#-+X)g|A^?qZm~rcDQ7VwtrO^8fXmG-1R<>7a4yMhn}{%Q2B-U#fhZ zSMa8|8)z|X(yuP6>IO8WK@%7qI>QWW7zQvb?^Wv|b+j#qtt%KusA1?eG}6i~O|tZs z_LdK11~`IDR<^Y?&)eHX#WeBri9;7YODw*E**zPcAOq}U`#RZQmNc$5Yjhcg%dZ#y zz-P=Mc>&WcDxM~&_VPjO^p%mKeX6+aH~UD2M8=4+_DK%dn8g~;6`cbeE7{CPPv5yH}Ad)Kw$s~M<6jUu~2Ai9AOIp0KkU> z0*Qf%g+gQFh)F;Y1bq?&fglKiAP9n>a`YVt!VyRev@jsPGp0EO#Yp}M7?8>Qu@-Zp zKBJE*hI+{T_>G#|Z|HMB4K(mJ3+Lcw)30sr*=(|kxou5y9Lnlqbv^&}AYV@y-0oUW zpIW{^B)bM}e0o}??a#EZ=EA?(G-83&1e~RUO99R#Fmb?DoXhhrK9EGm0h7tpzW5#d z$^qDhi!exHN@|T9!4*Dp7QE~O3J$4y@WM?e!Kq~!PJbsQ5gETGtQ4Y(F%aE|-D!ByPBDz>wT zrL1Q+`#HrAxQyR%!Mttcn1N?Z%9xh1Fk^W}cE+}h9T{~QZ5hH0Rfai3%CIwX8TE{r zR9O}H@oHjaY;J`fs+$gbkPzsUZ0v&eJodO-?R&}31RrCMw$UZ{I@POqs%}VDmy|%M zh~-+D%lIS?KgY?+gw3ibENwD5_@gVOr=Pa?JkQ08Sj_aOJ^xs~TixRKE@4ge<7{k3 zNq~L4A1kASx2-q#{t2aT6%wgOA(Aef68`9!vwVDn-i_uLecw#`a(C%1@Y?WCoS5F# z+z=|4(H2pT!+6)Mw`>!0!*1$aew(1|OqKL)~{SXkK z;I627ZYfA2>YKQs`am-8@p5+Tc`ev^ot9M7k}j(<@2)CpUBEh}osm4D|97=v%kFf_ zU$Pb-)FUFmj(;D&_wm`D(l*7M+N|UKPV@P}M&C-PJ|5ZTptoi2ScD{jWr6hJzA=QE ziYT_wO6<*|GG}51N@2>=SBT3LAe&#bE3iK>I9fy<#X{TD@>^Jo7B|2=~KZ^G@K z?(%qvW+2=lu#lwFhS2mHiyk8Y7CWC4jL239H1L0k|1oLqq^+_2fU_bfIPyXZM0f33 zBA9|Nu11aVVrs&=x<^0kApZR||DEo-+7%`x5L7#*CIrrYc`HXoNY+hl5YP;DA0oe0 zi+JtWf5JbD&)fB9aK79XF_~$2G6>CwW~U%6&65d8dqQ&;ELkyYwdak_r{Xea(s55D zA{sSszbL}YewwZ>LhEuztUmRMH$Gs&Df39W1+r|;6Cqa}&?S^b4H9$N2Qvtf%8T-e z$vVxwqLEJfOn-nXE4CT`fQG8O=_qLmO^TI3V{q__*H`^^KZWk}tnhsn*p!-VaPgmR z7&KR}<9vsy>bhO=I7fQZI(A?d9~}_?P}gdJ962=GWzg1@63R5cF(YE7TZ3UnDbd3= z8zBe{LdM*AOH@sOyDGfwbCA87t{OF9Vy{XNA=)5)GL!wUuYS^5@Kx{~{lH%?6pT%M zJ17hrzzsCbRa84TD&J$G^c&ooQ^tm6LYVBQ9>TC~RrliR=KL9aTXvE??Y|)gflyKg z3DZclYXdf1STa-*oEDYK0_1+%B)uj=KY}Lq>6M?~x1KjVLO71$txPN`+Cx?}Lf$k1 z2jhJTi3wSEG{+7tJB{hM+h*PK%Pe#V2aq zZ(w3I0?w1&Yuiz9<+s_5U^}pQRHUnMiFUH&gLra2Nig6KnVl+%#h2uPE^ctSrGm;i zrDYQcvY=w-K`YKdjwgx12F9$2bb(0mgok04D^<~vy7YVLFP!&u4%b|c$D7g)4%V_MHkR&mpons!j4O1h+_ zyK*|nkD+e{zUBG>^#O$57l*A_R;b12_1aVTa9MA|x_oMCo>BnWsP-%iQzcU4O7P0v zYd1Fb09mowk&N(bBH+5O_8mBaGaXS_6qYMXt6Ra+LQeKg&LKIG9>}TH8g%T2OK}oV zdW!G=O*3~JZz$AOM63YoP;sRQx$NI4P^pZW0OXShQ($h&kLf?e4~wz2jgtNpuh7C;HZC-(Z7pqYY7I zS-;>G%k_Mt`SjX@Q+0qhSG5t+KfF1QTC16!aR+cIZoq&bq&UqG%aAwQ6LD2Y@^PNb zMw8?H!z)&4#Nv&c5_A%(+bdiCn#uU>rU}SwTMgjSVCVL3+u$>HcbgtLpfu~H4RrR@ z&f)r<2iF4W)q<)vdP{*OE2dHO{c{&1U#MMu(KEg@Uz%Rp24NtmRYRdbBX7wD8!nay zi;5`WyuRvrcvY}@I}`MaRo(;wr&0y+)%rS4Xvf$O8n&3*>Gg`P*^(t$Ku-*}Z*h2M~_&XALbtsvP^8YPd(ngt|X z#0qOtK|K;dDj$YAlH``bti*0pn+RjdMDWC@+LhIslXnd81(rzrI&Gkg~jtW}hQv#d+GsIev9qReN6hqLge3SUaL8i*N{so; z@SWje42eZSQ4tWLiWH{5tBuvT>CMXf_dAxtkI`QSd@)8EqGwG9TW6(Su}^BHW;@ zie-1vr$^iK)CW?H8yal@^%PUKqav)YrJ_h0tPgs-lUrAi%*~Mq z5~;^uolDe;6)U;jZ#hDI{U_B$^#a%iS@z5GS9+WBX;z?AK?Jz+2UUp;&r0?~`A|40 z?=0O?j?LTq{pi5ew#!HS??!{-Z{Xuy_Y5Tmb|d2_$T}YUH;-gG4b=dGTE`lyX;VO_ zbpq1>2e#X7ch#{mCN^V`VDao;@1ke;G2$ zE!&qDAHPT;-(mwFA#_EovGb#DVv7{KWuRLE=Q|1OZT3Air&u!vhf=iQlr@loz>AxA zBY(QnF<9+*9UAtVo);L7=Q@;n7R5l$`80sIm8@1cL6V9=Dc1-sQ39?pCAsAa)4jhT{`Y(dRuqPm3o#^hF)85=NM3TKvf7D;LP zb|p?{zh^q}EuZ7D(G)tyvT6fYF)g^zBzS~nb*f@^`Qg>}%t|o<2N=s6SLBqPWjY%d za-AYz#eNBty@H4%X6hPOeuFY~Nvd$vqDm%a#PXs;#gxU<$}APX#4-~Wv+0ixRm=+s ztgyJmsX`eu)h+R@m`jul6IQFtS_$S?B-6EKSt{42CwR=WBGU{sq~7jy`QmQ#rI5}D+-}C0|KrK_I%FZBj zh&Z-+Cetf@Vod-sE3_)}`q~LvW}BSNB>vffap#A_W2z)74xtc(|GIB`Ai%<`7 z2y)6olU;vpOZuu~0GY2|k)YA*wy#`yV&(lUE1$ULmPNn8q9!@m>0IgfY^KnqOB}dw zUm3r#&Sp%-gnE)t2Q3zVsE{_AFy(*k;a@|Hu|%vr1z|Yx>|$v0sA^CTh6xBHj65VS z+O9|#If&m=i@vlp)!WuohNlD%jgJj^GxgL+Y1aRuKDRQ9qtRp6>{l4`)TXfwD-&XM zj4p{NnQU9FPWELnTRE58DlrC;@Ue+y;#602mOWr(QTOdtaJ=oHb{l_K3|1eMwOEUq zNI)>n6dXzhQ8i@dYg;(xf|6&uN;CnadY$FesR;?!*=R~83X$>5!HLR#69iFnvD0N_ zIBUMfxw^-ruQkuT4XEE*s+&`jv!x{s!1Hy?qhnfu^B1Wu!{Ho7IU1AsG*;(GE|(G| zc8_#eKFoLtxoqb;gv3T1mL+eTi9Z|$^?0XtwP1smvONwp!0MqUYp!@Q^^MP_5c zDM=iYVNUO=&DXQ!wbMQI8;iuI=jIDHCvitg={RbjB-M}taM4DPky>LL!G`s6L){BL zs4f?`$0eP9&K~+&;7LAW)VP`&HZWU07gpc~@%jFB8fXAygP2qhZ}KkIfdVb#4I5L8 zjqyV>n9N*?Wk8lyQSVCR`eIwx9dJd<7O$kP3Fs|eX9aDQ$l{i>yqp!5I;v!7s%ieumz9L2*q17h7YZ(y_jxwDdP*XdnpEMxQlcV=IobE>Uis7C z98i}5ll0++yVlmWeLfE=vdT|J=UJQX%s*;HmG6K5bdz0j`I100UH)#WQJ+^G7*;Du z5moDQbxBHzhy`N5{E$h-M{HL%B0oT{LI5e5|K=B+{mY2x%&{*SoJa=iakWjG4Zk;r zbBZ3SVV(rMXn-ar*>#=)^KT@(%{!F8qIB&uw&%CgQ)8rEvu=Xnw($Py+$t=1OWS#c zV)LHjsex~Wga$WEz=Ww#*07qMX@1uuAaK{w>RNuh{_bkW^VQ1MOib?r8J3EDb0@gf z{8}l{@zu8LNkAwURoFGAvE$1PtFatxTN8(Llu%g0?9&_gBP0{SLrAFoopx_$sCL>D z0T=_N(lJVoe*cMkVL--6C>QD$xFuF#;_6ZbkYil~qL^V6)Hg0trq5Y>9sI{L01iAe zfPT^nY4tHGh~;)PSXCj*b<}gf-j~LpBrf?P6z~luL`6=yB9~;+aBrG zDGJjH`boj}{$i*ZZu@OB%TrI6G_0{ziL#(sd3|*P!y}VYp<>4KoNi+{nrv7=&RE2R ziCnGhBSLe=*pd%)BjXqiJtYKZHUjNbOmnDVmJ52f+PJ2I7r+){Cc7L07T0}sxE2Ez}9K^A>+n;9$*fA?~v>x3Da;O*=QLYw#LL*+GGa;jFAalgI5?< z<>e-voHBYovd64c3xEZARWc>~%GLz0a#X^g4-mw8E{1J_|G%0ot);=$pTF^1t6s}Qjx6rYFp0g|srfqMBdo_|=6-~bRAMX8_%=`o(<6$w(e zF~UWJ0X{Az96B7fV_k^FnJ8pfNn$8SYr9+w6#$Jow$T+=4@etz0;j(k7p8n?ZP^%H0hE!x4I@W8WvM!aa9w0q)NBFaQRN{ zEh49&VeFI|HH8krcIA8_1T6hRC4di7Qx$+0%ilqE82dtv?cGFS+nJP6&`VT-4y|k+)O&>!GQm?PSyEY3Mu}B}GM% z(5P;V7q-!mV*FksR3o8SoG>Zn-l`#cmha^pku`ZO#e#Y_QEg=VR2N6iTeLmh-T0m2 zQez!TH~zLM6$tr(X0S%|;CrepY&W)7y1>F$cQq)NMSdPhHJv$L&Tnb+^#YFd${8j} z%gppTd-84hR(LYqX=n`^L+fEPQC*ZH^?`S)Yp}Z8Nc$+W+uV`1il-(k!IXt3)=|5c z646&NmF-FGS>qXNgZaf7$k;dqmFsj~h1*x1JMbJb2Dw2c03z#ad;&k&B=bIsr|vxD z`RrxCzxQ<(6;h$!W~xe8(-2c{kbp(v6kt^K9gB-xDJ)P86N;E7pThF~-r9Y%9^kjo zE>6o7jxP{EN7{oXpP)FSLvHWA01Q6tT-hx))C{x?rxR|9Zur3CiV3KyGJu3&IPty_4Sl9Cr_xq#DUQIf2=9SO`M zcBIYp*S##((cjbacZ$<$R(;%d)r7ZKTp*EUT7rR~EAVLi?$gWeJ?HFiXO0zs4&D(G zXy>UKBA_>94Km%iyhAUpuZ_&t1!OMdAk?|(&I`ohoyX)MyJnmW-ry-Gy1qHt+vM(v z!E^X3T+sH1z@GEP>leD{AkuNT*bj! z5}&Q*l`Rpl{Wnq;ws#Kpt|3mj=!X^=aXoJ|9n0nnQ#ad0Gr67tq2JgyR3}k@ zP+66C(8z)BS>1u{FwuN;+ckTWTV+=751ti7*c1e5dTA?P*?7zvt6}}gZKFGx6#_Si zIRyUw(+&8tr3WrZP2Pb?0mOk?;d~>)hDQ zt_wGNjg!c~q$vsI?&lmoHvyOQB_CQ@s+mYl*EPky_^?mL z8w&eN#68p<%-yil`J8mnRAN6R9lp0kJ0z_SaRrR!(sQRp1r}I)#oW=Dj z;Dj<3rm+npXJ#)`B?D^|#2_q<$tHw*@UkfYSI~RG{5AnnXm(GAIF?35wDwSGewE0# zfwBA%{G#DSf|;rj(5kOAWy|P!fUbUhQ~+P1YF5>#rRkl{VP1ns<9Hj{iO0540jV%~ zL(6G_Gu>&@$^x!{ao6#(4~tF`!l)E<`<>SGpLmA_$wYvvD+F1_DM3~+OvZQIX&_UT z;>7OyuCE_mJcU+T*BmRu6Q5)iYCPpZn{N~szs?#F5UaC_0hnft(_9niazQbKWj9fE zl=X(`bZ0e$Uv|xw$vYX>+D+(|di!T8+Mh7xWY*W9N)u#xRDwhR)W$+gW>O1;xYR5q zrtNuo$;2J0QgW0PiW-y=LiL6m6bI3;HUzkLmppZd0gD<-DjX$rY&?(B+}Bj)EZ!`} zwxURqtxZ$C8ka~wtLvfxHGgptX_S}PsR=BmBRf#_Vm2+~TN20LKgk7;S-UsqAdzLe zi?d92E@RuJ64B}B1ieCA&1Wexg-yj$ywyrDjkyx0;;_uE?Xy$e)EL|g=^3z#A@6py zW%;pAHR8Z^OAWmhCr;Jr|EZl3n&CoEGNjgRY?dEO>51(*jx7Y(6OHMh_6REozx@cO zqr24W(N^CS3SX(Bc!a6iORz)8a474Mp%))v#?lu$U7c4?h}XCzbD(s=Q?bfBB}twp zzeZn*a0fdR`BMko!Fwf|0Hkw#8AR9eX+w6!?ovPPPH$YayuDmX7_CX#o%VG)^p%HU ztA=<6?j4)kU_3C$;5Z)Jz8sN=Q?3B9l6-$fcVC0aCq%%CVd4lqkBotb_z2FIO{c`a zL436B@_?xdZvE4)8f{@^+8jyFTuu<1iK=J<{-cjEL!#gOp~J3{=nM-bNjy5qvSO{zdHU(@4 zwgB6JZ-O0QklA@)KeOk+N^k%iVh#ozX8r@#gQegEb2M-gbTRF~dFG7ZA~**wFipTE zaE-YfxD|dqunrgk!^~~LUFHs;2eg7m%>BS)(69Xj=*I8V47&RX>J{Dsdhh`n!rMS^ zzknm=?*SeD0H=U{^@r1dr$GPSe<%W~6tCSyP1rxPDdjwG2pn;dWMld)zlXH@U5Tu;8_ zTmEAnTjRw&#rF<#IahG|&fvnOPnQ0*53RcE_tgLFe4@Fd>21xl|Jt^8{?)N|bG=)= zlKzkVHN+9T`Ro2=JKnTPh3gMevtFv)MPH? zD%bws1nuANZt$7@-HpGU{qIA0v+3MleI0Wkyv zZD0Mhf_C9Y3-1;#7oA@JJ*rc&??!iHJla^&v1Ie+Hzoh?UMqDk?Ns_|$H|N~n^tbh z{uHO3l9gM_`MHyMc4fQDK9%A5msOvrnpF@ANg-Hxop6iug_>417b=C7f316>`u|fq z*Uzk-q>Zb$>Qdv6n?Bfdsr6R#m#kB5n7t4au)ElPY&@q)>muTbwySLm?MK`DwEsh9 zNtX1qQ^fc_aS)m7#(crAIoctf}?j^s?P!+pp91^)|zhXhgZ1&8oT$QA4R zebJEojQnSkdlW|bH|gi4MQTHpwNJ@vv_F-9Qy$mHT?ud#02HQrJDUkS?D%H>L% znV4(V%a&+ex7yaBbx&1Nt*EXQy(jG5bhS`W3eu=^!%-TP&4%J-wQmu8fHVcrNHf>((|^vRsH<5q_aBQsHV-CilOcYc*z<@w5gy#IYRHTRS1-+lOb z{`d2H3m<&5thP(*&&M-<7A|qn|A70Dqm9O?G^iq*ul|k?sNV z^_QJFcNj6O1+ot^%sDrPV;XOD6~*bLLsqKE8h}>F1+uTh#&$pq&hbYBJApx+wO($ z=}rI=SRpKvnc|f?#*7T1{M*y&BB+Zm4%gUH$Z?x0m>B6(#+b5pl~da0Q)d475lB5T z#29J19q0@-o-K1G;A4xS3JHp6HRR0TyXo3iu&!)NfaX_u$eZ(=o!0IKVb^?;Z?Q1` zvD9uTR(4Nqwmu0oqElrb2VCf8fC{&qd?0jJ3+5a?Q?aC^UQtVH4=xN2P^MphYyj?(|UzD z(f=HG+3)<}ZuJ=u7P!!2hy3BbTLuV2Z_p)&P*%zwt4t*m^bB?;y-l|;*dIKD^GJYt z=}2$~gxKo_BEZ6^f7LE+acon~0uj(}FRLnK`0gkQW}Y)bKk zZ%Pys4~+3LC$aO0X5_omsh#FM?YA~0GD9J%ZH5bmYyC{6qyFNrtjt$O6+fttV>l&1Loc?acsWotm= z4pE34mNSA#6s)A#?~HUQ-nGT<)6!OJcKIt0bvgDn7sC*7tWc03qG0sn2+4}P`YB|L zp^%fQU{<_yq+r+8C|cDLT}kRXjv}qCHo-gEGyGO*-B2UDrYS%gQmKj(x)NYt?=Na< zg9{s~+y=Z%C}tcvR{e@DhlWaAH}#d6Ojaj#QsLW`W)9Fn@lZk^BQ{1H$_8|=TFd|1 zIO$hciz1Muy2AFUWQ))NPhklTNaWm*ktL_3iZr%XjKr>46<2MOcGx0-xO|awn)gk= z*eRN9E&0*E5!`?xkOf+!Qj*Q^IeFcJ+UbUiqGv1j6bq2YePV@%a0Cn4Ff@@=S+(sn z6Cd;cSah%|*QX48b-Nhtrw*%DVHxR_DL+3`MfRZw{bwlH7jN!jjO=ll)CNxhZK@*e z!?Y-g8UpqF@#h&Ayi6_JMmlV%G$(Bw$Uco#Xwa828wRULex2Z$7%jsK?`V7Wt1#ol z^vB$U*;q9Jq^qO~hy0FILdl>m$|7<2ysYQz@pi2QT;zmV^}6zuiuFgIQ#oA)93H8* z>+=IK!hmd?PWRoB3T8k~SgWM8>BWv8sZlLh_6?(=(1g>(GEV^AhO;)*`71*Tx*IX8 zlax@9#8*=hfWk^3zZze|&Zx%CG-^RbUS*eD#UH46OhoN@M!(ZPHOH_w!0EGoT){`0 z_1f#rPw?`U$f$6#NaT9`EG73(*@wG7FFq zKWsT#lA_;k?XT_t0e=8bPc4~g|2Jq>n_6pGnf@JievI$bkFJ*8Q&Fl(iRix=e*Oeo z0w(nTeKff5i+49+TdVI}Mplceq8WryRvH2KiAwdqbgo4G_9jpsHg+p>*7Ky7XinQ3 z$1X6(M*09Q?_K%I2k811ab!AcUEwo%>z``hVpM;)@*SBq*%yz}xdM;Y?ti15eEom0 zro=d}5Eq0r$+B5V7cd*mIFbvsG@&*!vQAqH0T`vH#(NhC2?qzPWI+xwg}O}`)S-pE zDPdNiYdB%4%6#@FTDN8ONeTy)*k0+wiBrC1B8Vxf3^BXPqo(nU3#cQ0++2d8n%+<8 z4{9-D`imo|0jwv)LwcQEI(+{oK&S2t1DGgalA@fj9{b5~5>jvDu|y5{+qQrByy@CS z%{3Fdwi^n8e)Q~sXoF{G$nK2)!{06ko!?1=WvA)pCNKk6hfV0|P2wwPg;(>kUlC-t z4T7LbZc5$Vj-qHr49E-iVXZ-|@jL6h*FZRXSE|mheyQ#bUq29f_0^Fh=5mF^>t!)t z-3AshYJRvhmM?F6V`yh(!9sp~ObGS(5D~fZ@=~CRfIvtDu~Uy7drEJb_#^zmz_prk zIw7W&Sa*GJd@R0B&p#ik9p-ml+T6~MsX(v+S~Kt1;)ghVC<2OoEn*-Q-|gObP9?bpw_9Z_#Og;oGT5Q%U|;~nWEY)hMZ68d&A1_dWSWy zGfz2*ho#dCMY1Y08X#LHTdJ}=|IbuWi=T3fTt`~&K&>ev!s z8E|O%avo}cKAwvt*8TCziY7HB4TFiisi~}LI;q3ZQ>CCk0S&d|j95wTQH_Gs;9-oY z%IcaCzw)MDX;PBJ3k8pKv+D%Usq9=T@KY~+!MC!LRI8E#*dE@2^uY^B6Lxj?hZhiO zEZdGd7k~eTmW=l9-X87hF&D1d3=wL|@|7zSeQnh(E8l7I)e+Yc9?QA_ph8F2ncm<0 zxCZ&zp)*$L_@|yVJH1=cqfF>l|88=Ze03lS-kS8>2Tyk0N-L%RM8>r}Teh%HQ+(6t z`>!h+AS?dBg#WVGLA+6QQ&m#@Z z?wK%zNrAr%1onIZlEW2M5|^jq#`T$m!E{FlTrrknn5n92itdJA$G@BQD|U5wnq)X@0TU1NWZvnjrKfDUNRrUFOPW9U7!oX6x3wJCvei#+VndHOKvR*+swV>d2 zQWnKnS%=)kj}W+V{|mGEyJtVEs9TrWg^lRm?A~LmrD5PUJ$mL+`Za)lwdGb{5l8zCwKKDmJF;~9Ar z4Z7>vkl!jiwx9fagRAniLi&8@bJg+D`I!2E1tfa`?6EdtB_HcM8-qiW~bf^L{ z6H3YEJ)_(;4HAN<2szMxaL%u>aZfePb5-^9K%5jr$5f;I6Z-dC`PNgPBc6Iu-?!>h zXa-6^*syl>>oH;rp%TEw({5`QwZ?YWv}166Qfgk0#Elg%wlU4T{>5(YU`K}6z^P_h zp&(0(nVN5gaQL zxWo+md=E^kFZbJUMf%Fzl(;UfHnRkwb&D>&li4l5s*l85^On2%#jTBW1z76I^Sz;) zujq(7lN?U^03@*rQ);&~#|_P{N<`*BI`wHCXN^wB*I~`MpcERq4ya*RR|B?7n@` z)uSvBbXil_mM2P%1>x+djeQ|liEbIePuZ zlYSlj6L`6#M9DP~>M3d6hn8)#A0cT*NiV^Akt(5)OWz;~ENZRr{T->Y@lD(5?7C4f z02T~BZ=WbRzzaxWY1Ouv0}X93X49y4qbf>bGeCk^y|eYgNoyLhkNoj2Nvz$`Ks$2a zJ=q#JjO*dum$e8mrY%{}=`msz8F4A$S_^N_ohVp4+gzM!@9Ug`H}J$HYU$y(-UJA3 zs&1Oz%B?;%WBI@4%x`bbHTNv&w0fv;KFtTy)Vb?+3MESF4!FXlbe@e{SH6;5?Wfw$gLoXMKlkr zx2+549fp3UBH1VzGfYwDoM)ePd_@sNUVL_Lg5^a?mY=y;ZgpnCABYb|3|(@g^`q zt23!Rb}rMV58T{kh#?5;DXy^gM3yHmjnFo;AZs}^lfm!(;QCSl{b1x^+o+1GqR6qlK{x!@247h#~-Hm?qAwA3mM3z zj5pBnj9oxb4huMEO+cE%JoMs@Qbm=$J^Ivck{T!X_NC6S)OCJm#rjU*X8le~3$Iesd76lIib}G_X>r~OO5aBA$;nOFjj;Ty_qkI~zIQNvOlAznwl!g=(mdp*syYfRm zLT~Al>|tz(;b`Me{p-cX2C-FG9KV3Yj39K}jT4uz#K})S^X0%owndpBRw9bFbmnPm z_r@hAuddL51;NmbO5RSS>srrOCQ275FmeRH1--_x4%OHx1qjMkq{6kr_Y-kfZ@vq4 zei}>Nc@Icfen*F%z9^YPE9mmVObA%Ej%#SQHU=2JE^l*12xBtaLm_i zgpi{aw%?)$Y8_QpC5Ou>oGDo()V+w0KqGl!orD@wBnE8T>-9Nwke@F#jORS}a`zwa zF;#8Q8W%GzkeB$;yLj#APM|uJB5v89yBH1uOkoTshqT9zvvb_~z7|tGHb0wX>eH^uX|}m{}lLJELsMTl?SvW$I4w zE|Z`0AMU@k8IJw1fYM;PGtN zJKyKUZ2Xbce`eHD0`F7RNcYT~62RTq_WY52%eXW2uR~kkt{zFh8xJWziUOYWjl$1B z)gpD~vT~|>t2WYxhA{+X{pOH@HXgrNPD%ep`0WpsZ|JXxU3lVHs_nK22mncxL=pJ| zaZk7o`iHc{WKA)sTNtD*aometiYhBQ0yxbBRudd-9kGT0Qu9xvBM_6k7q+5m zk~<47rw&nd1*2;1sK-IKUUS$!w6aBj3A`8eG?C@1HL>&jR`y=KJ`uAcc029#_Szl) zc6g`sh8QTFB28bPcgmq)xxN8|p(x6t9-QX%Mj93_B=MKe;Y>M0V)XM$y*Rt`!c1%8 zzWuyD1=L_uZo;!?Ok)St_0jr72JJUrgv+Pgb$moal9p+nl(j-6DYQsLJTRk;fEHAHbte>- zmxw+k0ybXml;Q4%SKfFQxqjUgD{FE-op^kb{KPyao#N)ZzKd#{H5%IjXblYynk3w- z)}j-6;ai+-v3tcDA3y-3u;)qV$LPqK0N$2)&WdfQx-Zf23Z3|=Dt@{hW%#r zp^?F`MC`f9RA`wFgoq5r!~{Ehj)hm_2M>QQ}CCcZP1N;cM2}uvw&GsWfj_i)YTC1%bH*VVlDV((WqbR zJgLBpWjKyqj^wT~k(*W~%NVZ@YR3%4M@4Ic_N_;~t=*$0(_SYI-3e(|(sBw45SI9c z6a(R77YtseX)ntm`c+|E@=G?*BiX(TyF0x2DypM5s|8i8)vEq=PLT{p^R?7y?E(30 zqQkuM`?6hD6|aC}?Ps{l{FUs;%7xro+H94>BrgWaW$xP(EfOQMRp$n9Ew6F#f@IeU zG_|P_w-2Nw6I*&i<@e?0OOy6VV}qJdU1~$@3q@{^TBI8+%j3Mj2mtlzsz{`w)Q)^$ zCVAUIi%%TfIX;O<8pX=Dj*%nU5MPX-l`7S@`epa)d@%J->qN?`h>VFH(_*2{onWS zp3;1R7s{QoSOQEUuc$0q{Xy8uV(Oxt?6-vUW(#)+`#EPV zc_xh;6X8#Uw$@U-K7a^b!Q$U7@aWivVCMNN; zw$;{qikA|5b?jR}ikElFu(ww=Fm!k9u=_+hflGN+R>7IX?hYdf2a?aSmCBnU7BA=5 zINrd4R4d_%*s#mM-l2stO_mL%DVTGLL*ZJ)*lHt5Xw&n$b}N|(w~bApf+V^u$Y4l8 z*MaM;!M$X0tFKsxxZc~wIsH}mpcoE9l3w<87$=OU^k}ZnNu)T!^ClJ-#15rY83b#q;6H$ zx?861YH=KjsY+rJNfGZqUhU+z`@6z1cYJeSZ^$M?!3Zw#hDUhzK2#9}~ks>Pf5^xYrS}dY}(V6aNJum5RY^H9G%> zxbCW8skq%yTGu_Gk$}D!26(d#!bwY-x~6^MwJL=?^m^F9j;LC4U_>Qv>uB?J?*gBO zsa80QjX-Jvbz;6PI6$iV+};LUn`0H{&{EM>kXiG={P28nYC8fj>JyTRX}RcRYQc(JR@3r*Ob?rv{4J>&8q^3 z{ZdVl!rBEKT>hNjf3^%bs;1OnK=#bC4Thf{fJx4R@L6N?fRW5dZ|W(Y5#)PD*uSgJ z=!#)lmfmU50nd|($4nx>93{A@Uj1*;+y8o8CMSia>F}B^YT0yT@50cZtCXtC%IV%- z&#qINIg^h&Y8W;p*Kgo)*rR*Y5J-Xe0L0b#JmfN0m(HC0J=*fTW6K%0LR6|$m}8r% znHkm||2)f`Jh;Gr+@pIc;PQ=<4=Xw~C`y!TX}NRpXy-`3hpAZ;dK2bFtS0`^sIxseynn+}SZHB# z-s?Dwi#9Zhgk(i^%2!^n*O?NwP%CULxL!%LXx=uyYS@g&RzAs4%K5Rxfm2dgT+x6l zFZN;huJN3;J8U+>=dZ_=+D}dH&{LGxV_n(t4bCT?Y#5H!PMgDaXVB|RwgXi$2$i>Q zte1B

    r|u+A>HRp4ntzzUtRp&RW104QNhJ=%*h|NLpRP>RY!;y6yS0hbfkYUlteU z*4kAqQ*H=AViXCo9Im5-hoz(TW?~7Hgt` zX|hA??hLAJCu6FXZ1auMhD(-TnO((;Yrv(Nrw7j*`J$uLnfE>@_VN|NiLHS;h=+#h zheM}jjg_{RW+OXl&l-@iu%y4YBQD1q31OfF8u5gq4X+G&8;HC>1UQDeNfog|wWP$A zpEFk~S3BdFQy*(TN~L2TcY5)N(>Tz3gzW6FV%EksEDm$(5YsQxy8nOl^&1zRo%gs^<65hp>f_Si(mQh@-n4GDM`fJWe zJL3AeTjagJ_^t9#!5<$lTCBHW8aC|6BBFS^Uu z%8_(UY~Cv9HIQ#IOM{jstD+=w@lDYoKt-4P@TpL#PLm2E+{l;C%R~>PANR2{{d1OJ z;jV1H=Ynan^Qy~M`ck*c*cx>%YfBjsiB9xDXl=N*z0mArHYhVe!YScC69H(O);wr- zR%-U81c@z%OG8Ug7G#iI8Bb*Y3uIT%+n)(gvHSnDF|m*DiXHs#Irf~wf73$>Qp9_& zGigN5e#2A>{gatGB5})U0Liggci^L@MGf$n&oB)n-`hWaCt@<4txA#MnurPM_b^u= zEz(A2ul|Aw(q##~ecaZ;o@+pjWk3yHZRnL*UNHm=Yalh_s}wB`jQveZ{UlwGHfv#KxAS-1T&TXF z0WTtIg;7F*#PfuQ5kizWbet1kib&AMzkGE7Biu3a8+P>fyS{P{DIeT7C9T)iOY5DP z1OTc^DRPEYS?epk`AG46lCOIT7`hpg1ysK#I{qRGBT7|lOKo6Dx8!>}&oj)~n&2Tg zRMO!5)a#CRF|;-GhtdXRnd_{}LnQ(-utM6}8Um+mV+&Cb^lGX8R?HE7sE+^`TPHEBf_L(?nqyzvAWV{VF4zd9%bLJb zTx01Lc2om2swq(x5G;^@`+pYAjL8a2h;3n0op{fi3k6kq}t5~tGXKYvHmr`sc=^;K*#v%)FO&!N(Vj8MbIh-F0Sjv-| zKeWC_4b z9%423I_xqj#TfM>)&#HU!V_c36iL^4nIZPqZYcn(SgP(cwP1L^X>GQ~UKLB=>)=1tBpkM9*;WvOp=r*{fT!3Jl_k<-nc}cj4n`W_$6- zM&W>aM1gYO(FfUapa4)IGGke9eDhOnUEPWiw}ra79Yq%O=k`?Xf_|ge{V^uU-=y&a!3k8!#mj2T0T!JoNF{dZlY2dHC zSsg$-Pc#=z!(YEhCOcela6N2QK@jUj7q8!7U@R8tD`>NqEbNuQAGR{}$#pt%+y%RF zT?c45*vUdxEV$7+AS_5Jwe{?bb%jF^%RTtK1?RB7I}(GM!FdfQat+5oe;mP1}}gkPzR%uU(bVJ>8nW>!rO#UN2gS zQs~^>C#c_jb~r>-7yTy!EYLdQ`93h{gdSvhPc|(~*pb?ZHU`Hw0}t#)6LAU-=lxZk%Y*6?8U{I>iY`iU9tP zC;O^Vrt&^11xxS~B-QB8%4T3eF!k0=4D<3-HMrH2`zGLXiow zX4Gvk`9R~Mg~Wl-@xL?)dX2FO_Ap^qp&?|g1bP7#%RA^Un7b|QvSWBF6k!ACC8<>$ z3aMSS!luJhjA_<=Xj_6qx`*U-iMS*&?KB#ILld-}ur-kWSe8KY-qC5V1*cz54x0$5 z7^|p~nu4jJW~e3?*H89bMTH>-Uv8pOjJxqNeo5l%br=GikJaU;uX8x;&T-dx z2U39CwS&2iK@1QFmYS#wYHeZc)bY6>sIPy&_Wc|}t1t5%SQT~lGi97&R~@U)K=Jc&WLWVo1G7KnyzNK9pcsAXkFb0t!=l1 zfRzz<0{co2=soXjG$YlnUpy#7u}qM~?-TkynvPr~a105rk-ZzNO5Snv49`t|jn6u) z>ZGfTj*~MGh2`9Yf`WY-?_3^Y!E^j9_DfS%zUKHGWyDxq3@*o3 z%6e(202Z9U-{WNS3E_-qJsBT?JKt?t)t%{KP<-Is^7Va^&fM0L0zZ>D=RG>^ODMM{ zlgnep-A=*b^oK7)@7Ap#MK#+S%*Xt-jco>PsCF;Ke|{eAOJl!Ugxv(kW5T2E*w5?_ zB4RX(^J53UQCv8GzTR5ceeWg^Qgtze`9!#BqZNx)_c|MdvKx+_3F4dS{Cnr4ORu^? z{04&o&>xF-vY!DsO!e&vJX9aa^1EoG-nLYS0JQxiC^4+OBAM(in=wCHyO@OBWjO@x zy#Y_fwZpj>o(2ic)zwhCC4`gPZz3q5>sNjgIYsNlWWekb=C0-UKyz3AjXI1(JQ)qI z{a!XvvEUg=<|XFj_7O?4jE%sBntow!>xX_=_+mNn9*Wi)&wHIASv+vqG$@?>Zcc-M zYI&4)IvJqa0mgUkWbE>AU@>ZDe4v^8`?tT{us%9}>_d~sL95V-whRp!0JQMRbq9mH z?=|Le^7-?sTH5UI0uE4uuPexbfZcZ0;$XZ+Xm&$-OM>5IV11MkycTH2~pRO0rkPC z!Q{xn1sCZDeNoD;KvZ9uzXAovYkM@S&hQ>g1EAn&p-gg0kSVS+pfu|Qf}|uO0_fI~ zB!x0p?mpoemj69Feu@LDn~MGyXleM-vht<0;Kpb$wYAulj`P$_;zA=C1L4p9OfSdUq9Ol+y z^tZ^o|4~kWjDs-i)x;}+fn4sA#JF=GkM_PILVF;;=I3b|q3KIEk_0^MRhy@Lo6RdhBwGesE`6*CQf@{EP_foQbt;|vBl>CI6T8jr7RSypIgl`)*|beT=knp9)L=($K|9HlkHNE)G5?J zVaVt~3DiJqBQ(Tsh8U98aq$sKGp{FT+f=J5FSs$QfTY&614ftowD^6m2MFSMtqR%m{3(%lS)PRDHaBv<~RCIQ7XiE3IDF4(#4nXsx zJC)_3Xhl7}pR9}B$J)d@j%Qll>c`F_MrJX~7gD zv_15_4~7duv&X(4*g~?i&$iB-=1k~Cs$$HUPPEkSwFt-*4|Mbz!lW;6dDa(BRS~nL zzaXQF!fO(S+_VWSV4miLEV2j+cZqA(27aNQy!P%p){}82N>|E7#(IgnKuBQB zz60DGT-@C!F)JVz_FQ|cvc6P)8hX}2F>~iNTk~x&#LmX%sO`Uhi#0nH8oxO|LVXX@ z=+4IlTwYrK=I#S4fTllNZ!(wWeh-7@6C(LxcrBhm^s9wZY33szQQUzd$&)F!^WQ>y zet8b@T2u8WDDkOo8x>*n^sjz1wu`CXmqK84MSW(!B}%r&1X?P2h|StE?Cn%|3+3fv z3F;FvWs?nV;ERpRS4M^dYyh(d%VwTqS~st+f?5Kv2FFLftRDoP_LO2dwl2UvY3v=` zeXYK{B%o0rjmp7wWrY4;5yaQp`9uw2cT+1A|er_mE^r-$M3 zDX9s=R@w=G-LB=6W$;+fOCr=G>Bu*ZL9^x^RY80H_}M|X8>5SAQ$1}mWB zNtmh3LODxWJ--dP{?`}nNWvoyFT)5Q7Ro3EA!E$Z2(&f!TIhR{&=DCdrPS>SV~-`y z1_as>QL>So0@_2BK<)Xm_!w5tZTP#_ohjtG*W-u%;;hW5p_jRZOjMGH70R9p?Z+Ra z?9eIIb1oVf*ijsq0BX_iXh?>!YJGQA2iZV&kcAC^ZOMi(%Uu$K>KBL$LE@+r%jTze z1-CHM$egNnBq8_MzPAnav?5!GGYv(Dj=o`3yC5CCyTV>C+~m8-=V$?vRL2qu)@J1w zY8TQJ`65Ylo#{_G@d|6O#??G@9n`Tu0Va84QbJTjmhMJ#bxCH3nVrECmrwfQ+IxMl zwjlqXwFDh5y4}Zr57LDPbf?`LeK-q*Q8(Q{f-;COoCa-%9*$>Zs0qbp0^{IFE20`+ z-s?YF{AFOfc9Y=#gX56zZyU$jWMa%W;?B^dak=rAy$B`zc~dxIv}6aEg6NgtlGMd3 z7h*8B?Rpp8Mg%>HOt_{z$i*-)Qw0xmH6*g`wvOb<>xmd_nHLr}dLZJr2J^`MxlSYw zU1sH&v>mZ)11H8^35;sDvJpI6{LTd1ge&BitySp$(`w$6&o7U_Uo@*&7V1rR+w-jZ z_pWm(&oKnYX97G6m3lmV@W-(&hyc53JKZB-3nezAmG#PRA0y6#4}uv9Z+mcCLjTH? z%5`=TfnAAM8vo-qq!i`Ac6@E#9)VNGAFNE^?6BCr*_U@`zq2v`g6$@OuKsTV{t}w_}8?wC6M56GW_ROm(q77E9px5|dxOjm8a9 zcVLxs?=x!i;jg6}27S?hhBi&HNgtaCbhtm3oY=5-6!CQ$@%>HQWJy;{7EPvsiNuNN7+i%7AMPgH8_Q zz~abn{qym4CWq2oZ^$L(N$?y{QA+ z-Cd{fG$))ih}5f4+bY+k)JE zZ+zP!$=%{3SQzo#7(5zxk3}4}$bJ7BsGPh>n&m)a=3=UA$3z0kEt$@Js2Q4zzhM_{ zC~5`m`TEfE-PUPb@UJnMA#e05=HSbR5{yLxvxxTH+i$}w?mlpX=epf@J2Ziu$1<*7 z8}EbxgLSdcdSeq4=zS9$$V4eS^8?qwj-|_??BBPo>o>JOZ9}H%Eol?3oYVYWgwW$h zPaeOv2Pz{7A#D~KS~cVx9FM{fWrLG}Nr5mH5rX(4c+&kC7wwf)&XWtl1Q-yqNx_Wx zy||q#`q^bn07g6;Ya-kiOI0TQCPw87e z8g88X?Xz3|`IT+E!Mca<KvXy8HR%&tE|-#vb|s6l!BWD9%^T-wAlKKR_)QQ;5! zM7I|=T;SXFHaCW!d{>CUT4HnpLW!>p=V?LA&s8-bSy)(09@f)$QboTA3J(k1Z7=5# zMnRxoshR|t!=f74X@9jaR=}n#_*~m=q@C=ki2k2;WvI11W6r_;W&Repbj9!~;2p{LLqNJfsn;8%-sTJe%?X$j8wtbyw5f;u+p^KyT0ZXVfgEi5 z*BA?tv}IC(!xEc{(1o{qAhJ3`RJ!^?u3^NA+` z*Z#RrO#0{drqE;V2o0!YHQhmaDviBfuQQV!oZ@zHUoy%jd~0KD_`#@l*f#Vw$iqP1 zwln&sTeqrPAkA5;O(YS`4Rwe%=xucGD*IOEpE$DZI?*EZ2EYS5VNgYNfQ&)|g{o%C8QOxmCylhqAsq2CVo3oR(5@KqX6KTYOrAr@soXor4AsIUaJT*6V?hP4* ztzR5cR0O+I01qQ1GCi$?Lj0r4$rZWi|cRm&Dqs z)zg2JPP$_UakH-kjtqcUmsqdP6jUdYo-Rb`vkMoibO`o>Xt0^0-H;h5st!xRzOLo@ z$OkB=_57BO6@f)qb}AZMF(iRnj*+S{9`wMuY%gYVCmY*`7O-9mo*+>9nB34h&7l5x_^^>Bm3_i;4z)?aJ~|ejzOBl_dw1+S?IXHTYgw=!7HCN zW?V>6;t*3DsKZrCNceR|1EGGFAYhiolt<6xj8|(O!NXipCj|9n+LQ>aom4@Ge7Deq z0bH{^CuKTD!|$YnmH{MFCmPg~eAPlILDi5B@}ueJc&*W6-BHP}=v(y$0YWwmIdMg& zS}@$$G-^H?VhpR9g%YY0%X91=IL+Lp3PO`rxrdVu!br@QYE5{43T>smQaMwwqJcl8 z7hA;s>eunIKB=o6_r-8eX`3T+pW7U8U2#kky_aYSv5F1fc*5HCo9@(xnMoL1Oq3Sy z-Z@mf;okV@uGhgWwUu|mKrULQ*g1?8V9HjYS!Aqi;9|K)4ceOpdB&Z(T-@F)G7WbI zuzt<6(1=BX5BxBsjZ-o(l=H)d0b^>0`2guYZ@aUvYQ!@W^#?Z@`oM*LvqXFPr6CPE z##WAy?6rKNX|4jnHnN1>7-^xo6Q#eE1nq)^&NwziZtc4A)=EBH6??t)8;0#d8><0! z%YyHshZ>%rk!=L~Yvn~0&Qx_!R`KRYdrAwsKfQgT*0uT{zUqhf>AZu0^gul}#Mtes z5i);!f0qAJMf7#l3~T3JHCQUcZ(cBlaV;GhY>Zg{YT`$IuvidA{$`)oK5--=ttyN&X4n1;+sv=O$WQ#naBJ! zJncQ0)v4izuMv6OzQtU0N&vE6vEaL#pqt7hfjVbU0ql&ubQ zD6iBpbjJq!=GH$)J$7_+;+p#Zi#j$`{6bHKxTOm={-=PSwkSWI_}c6I;$;4uY7`uL zjPKW3g&)77rdzLMD)@FBs> zr@)Toh6Yq}bONo|WZ%gB8x%}XAuj?8*dzlN9%%gU>>8^^Uc^%Oy$*s;2bZ=jdrG8r zLf?s;IEv!${-KaH(HK3^M#;22VL%A6Hb3#5zWqklxOqyr_<%|OkGKvqDjkx|yLQ8I zY^P! zV7ce4SrTpVX*MrajERW(yle^-X1FNue4=M+f0zgM^ZUpE#e@Dx6uHxKqR)@^+SDZ8 zHvX-_bz?OWXCI_v0D{~}yFWpt!@pC~Jirv_pn;}DN}YWmUa3#B00)?=Xp#2Z!Nj?u z!FN9e8^E=}1A60Y4ikHmD_yPjnMdU=bn|pLM3u9<3M(kXKqqcGUm-Pj^z^tMNUDAr zpTKdYtx~p)ZH6JRV4Cgjf*Kv&^Dj#*v){k8Z8yCf__LPfxiWU zq|`Noslkj9q$!)N$|I|@#NTG5Va@up)jKQuEL*rt-4TtKiYZW3Hj)<|=fX|h8eC*v((eufP~V0hZcey%z4}4V z&^ucGpk;69D{jRsijqX7Ssa4AJh^J|2J7aAq=5H(4AKM;Zmfe&$KRRl+dvY3rP_mc z@3))@1(2Ym5mre+$64AEo7V^p1iA^V39}3#HT39!`dZP)`VE&enu7EKZt!@$8J9qt zazEek|FgT=Y1=VdL9aFJnLrYp=+H><6%`!Rc2Ltu2kEDH$N3hcr*gvClK@=@mQK$X z|D+9ao14guf<62kJkhH(MK;>%T6M@Frxde}4WtC8bO^FjC1^^n>7EM6_2+uHUDAmut`4Tezl;}|Ugfpkngf+jOIm1j<#|M4X3#ZXg53hM6Iaq2W}Oija0sT_GTw* zh|N(++9N*}08639JEuqDpv6jOzOM1h%EutZA zkb4^8u%Z=cAj%L=M{opCjPHvGEkXw5$MP?raVYQm$LpFL0P58aBl6TcTd7lu7X)Bp zXxoZeL*KfK;e?4POSI0>b42b#zD5a0uSswW=vv!B?6bd0RUM!o?4?(^4&ue`&wbTM zV8<;7bqt)Ud!uCVTD;#dTfl;$nR71-NO0uIBl~fl*D;y(u6l3|c6r(_T+W9@RWLyW zxr`>Jo^>w3dZc_KC=|^fPEV+rd>x9wgiI+@ZjbDj;?Rh#xy;9A7~>oJ%z3?afG}_z-fF`8nRfw35H$U<{V^oASwq%$^Gw>kU z*sMkKZ%hVHkH;^6njYgBUXdaFFfCk11Yjshs-gan8y9&_a3XE945YO+E`aiuvri{H zIy-d>;>92S==Wu*VbKi{Xio`G&bYRk;>0fm( z28!PN8Jh&flAvsSN8#V*%~j^Cga?M1%2IcVVt0%@X$u*eek0>FKKN>OsEYgsEQzlY zqwWUPLlqoId7o5_z0AFY_1hL3HJdnhKtEX~G213`H`s&huRsyxW__wx2%?}Ui4=fu z0gTJCWPED_?BLS_OZ~1t=-*q@&Yy!g^2y;2>CVsVe><_H36|O&X5Qj}wCy##sU&v0 zlR}f^@%H+La7l_R$$o{vr!g~iUFfao-x-}jVWB)s=M5zS(bYu^18K_L`a=*I&W1#$ zxaRlHL5vUgQ9Ehk!*Uf7oas)qJ zC-*g7R7i!m=mE$IScG1kxa6V2Mz6|k038(3GUFJ4MLQIN0t(0QWybth_qvH18+QXx zm>nMKh=o^oHmEX1G`nN#= ze+dGbN{$`*YhsEcxj|DZy^xvpMP}fGi2Hn;M!s#AX-9OcC3J*{cKn7PHPn=g79+*X z)o}t?5z7$uCr0P;;sJU7b6f~g?| z!}0nD!8BjC%AoYpEt$UeVlG;EV=@HjwFM7m9%1;s1r-SLi2&(zS1}Z%w6$s=>u%~B zstDG0#a0cpzUHhw+s`s_eqVe|+ zzaij)axZ}5Lz3u1j7on`QESZB%WdYR^_gl(uSxw!pR6UG(H16Ov_z z4wfYE2yN&KY1{p{zeNYw)a4R=Q%;BtUkst#*9!LzM}am7hnC$7k}rEWd=g)dztTf> z>NpLpf9W^NUx-?kzN*a<5RQ6 zBkmo)&Eu2v&X-}b;q#DzHD5<0vW6Ls-hve+iU({3Aoal z%zy5jj?u4<9)^Cc&+)I5@dS^6?!8NPte@TjaBve-);T(*riIXBWTEa=p-(o5nX^@8 zLo?WNw}mMX68%PzCDX3xLL;Nheew20@Xj}5sOD77 zMP{-Y_{~vcCb#f~uDHo!9l4t%MTdnJB z|J?z$sEwwxLLB&{v-;kd;}qSH?DZc$`{|4t`1%B#9%(ms_ynqH-EfeeiBoUX?a#PF zQxJ%H*@UlUg?E2_STk&!S`UI$aI=Mu0hJ;RY4qHz zLnRxE$*u)_8y~@8AhL?Wp~qN6;5gvP?I_(7nUvqMQC!0Y z7e2?9MhIylo~&1RX4Vz&FRf%yM|lk*!ZFe(2%`LzNq$n>);0kc*;5TjWY*}lQsYY` z48uP6gt=4Lbec_o>DOgfO5TJNIHSr{Yqhyb{1Ws4uA8VxLig!eF+h020Rbz-31s(( z$qHfs$4HWhM#EuT6=d?ndf~>ECTBqr0Ifko4PJkk3Ei*8XfPrA5y9CTJHbS@77fEN z5eF&ODO=@aB^6>HgsQJ{ZFudgv?qWRL)SE-J2N1sO|BD4W(tA@WN^UGYplWUo$fW| zrqTpF9M8F4-eujE!>fX<7Y*C-Dz&0utWE@jJeyFULwQsfz`2x{HijKH8mR`Lp<)dx zrpTM9EmMDb>S|WO*ZiNT)q=uWWwR1yV=?qWaPWSu4KI9>@pzD|yH0$^iZ-01oGcV1 zt0_$2G0j%tjFV0R8qoEIU2(mNoA*Q)w-rs2%%bUdRgNnO#>zw_r0^*VI_3NME({fg zQe>wb%Sc363uZZJ#43QghE*u*l3<|nrBE;AdZf0s4#L%fc`y&-INto!a%@uRNDvsA zUs#Rj;VQs))FL>td~RPuPf^E%!H1ZzI1orltncH6oZEutW>ebam~gvihR~*tw!lWa zovjW|6Dztp=pN^SQsOE6h%x_x>}?IUm9H9=GOpFGmf`~34J5IyNXW}^OoDnx5J;R7 z0UgqkASb3X+l6Ea(SXf?NJB%xAg=JTjgiLiKk}#}RcF;{(w%@a#=|uT%mE=VLurz2 z-=7w9{S?d+bcl?m{`ONU>DlD{nXNl>&HzFurkz6>7_mj+eAue7Uz`_du;>21&=Rg z-RoIMsjDSFo?A7UeSChhtVCK<4Khr>{uIH61aavCwB7JVR;(CwGLG1Y=sG?8MAiJQ zhvfCwcrOD@GTAu;f-xmFMxSujr{#uxM;EOsNFoFNSI9VDc=$GHtom)v51TN&EnP#P zXc^RMuN%a0&r1~E(KA$PLBL-i5z=J8>dY@i}D zRRfvPE&Bi}rtbSpKGt1V5uch^22(XQ$benRxTjrNFy$1(ooKYfZfZdtA5*%D!th{! z!3AMWrZP(bC&%P+1;^V+6BpiODGJx%f#R#RmttSdoGRNcMZv)cS420QIq_Kd0xUwI z(17_Mvi~-gO}N-$6=O$-)X6nvmnKbh>!oyMxH+W zO5(mEjDvJvD-1fL)=VJ=9(5adJ8nz6F8hwfxeGSoEvPruEx~R#aOSd`lI%c*@=}9D z3pQIfR{sM!b>iV@Tm`WBZ&ZH?sp&%2{%Ig=X4F zt1iYUPr@Ru7Odv4SQq4Q0L@3ol^im=+l^qjHkc{Koe)&{YO5&s^|^6VKh(o~J*K;) z&j$rNGiu=M<){c)0wOC`YG~dHWn?Mw8SkY%?L0pKUu!bV`7Bg#n`g7?3ZXJ64~Hok z$X4P-#FrCAm0XE(`n+jtWT&=oZ3AAf2Uzc~--@?eZ!U(ycV>La{YeuA@Tjgq$80;* zmes%B5lldXaapPw!Z&*E-L|mlAYEn)B5OA}HZT=ga_oG3XHAX6UH$M%bDRtUSk?v)jY>P%AfO@2=!3Fau z(1Y+j_)%gXr0UU*-nuc+x_WHt_YQ}XtKf2U6Lxvao?MO2UEU$TW6@l>MAwX~6oZi- z1Q=$)u|%u@gHo*==;)^Iy<89MaABgMzEH=uTW?;7?hU%s&A9ii47SXema1a2o4Kg> zd<8%sdsk14&OUp%Ik$Nm&-wsKK(@d9-EP$BHQYb)z+R+Y_$dyG^aXN|=}pE$K5t!9 z%vVnLkGQu{{acAZnFSo;fw>%SGZc$8-+04hwIAOq6V@yS6t*%T)QzZXhLWh*S*TuP z`nTFO|4J$R71y#Ot8-+M5zBBZdK)GWn_Lf0q{{kWo9D7Ji;|*a+84SOe6Ry5bMOrZ$UO1ltd~Ir0YTf--!9X3mU; z$=?K}euDVa+~J=5vZNAcfH$T?>@YEjSR2f#vXX3oJK9pnsj;2lAltZzx`1pgZ z&Xtl5;DK@28X7~M_7*u(uKpKqmK3KWKf%WTCdSgXE7oMW#+O%Lp3u-KZ~9ivhjz}u zDnj(rzZAgGPG0vz%v_J}stIyM^NJ0{=`3h`x_1l_UWFyGqViAnb?ua0>Y~VxFAj|= zM#ev~hdR7 zA_GX0c>D~-OTfiqt&&M%Q_<{o!G)=UPgV3UH}j{aNP_>gwDxhxrOruE^aDp=$EyZWIBv}Wi{i=>4FC_0j5O_L}`(0l`OJ zf7Za(_f4LJdub0OFvU^{fNSngd^4s_D&smj3SkN4@OWrMXQTlLZt`2psdZFEnoOWT zt?+9rXo1>e(XS|YFujbnTwNO<(u5bbq`58C4eDJ>O@{ieB7*G+blVdrAE7U=&eZr! z&m(xlufVy!RF2{2pCtX$D1kVEM)}jXmzF=Bp3`^z-F_~3z}j72grt_rfMH=SZE50B zcHI_Om z1h8ZfEyt~XuXHL|JY;~P1iAp_#^dojTFufLNTS;m;st(OBMim z?CIJ#nt`y7xk4%3RLvE6-*mVfM62{0AnhIZ4pQSxsn(8r+X_}sBOHHV#= z4G^tjBie;vq`$KlE~RS6+Gh{!lm44rE=idVvgP!fpbEKkMX$&p2A&fYrCMGo=kn{r zC2?VkyEjxR&015l4O=&X1cYKi=^_94Tg5SKX0Ym@O=sd<664=|#5qrZpGc$?R3ED} zurhdcE>l$~CTwYJvbGCz)Q-qqE^G6)9D-Bc$@XHu-R!JsQ9RM|R4Tv^i z;@dqbZ&z1TuFIrzZRZ*fR|4CetRwSLog<12%kd$)Pz<~0)r}U>nGHDBA`g0WqqhHu zpf|s7#7Iup*3i&S0~&m3<;F=+sLu5GQTlbOfR-^qc^LZ2PK!COxw}DaQRDstcgJ=v z^0x25y;b8ix+9K1OhOM4gG|d_eKH82r9&OR`jc!sQTG?|$

    o#<~uUPluf;eW3^a zA`lI2%dzmt|M!w8=%AE2YgE1L*2es1nB2Z&ORHK zc3rXKqs?#~7gmd0(76%8Y@UNKH4IJAaq6Gs95jC-i1rMyK>=&t(&tzg*!EL>WmPD+ zPa3Z{5B)EtfBxAq+NbZfdH>42dff3t861lYz?Q*l%G=?!Nq35sneiur)^16Y;i~hX z-;tZk#p8YQW99p`eS6#y-w^e>{P0sqX@ZJ&tt zAZB4~$+rD+Fd3WQJ&W$_o%?!G0M~eC!!Q=`zWd-4rq_rOV*fs2KdtC#&Pj$|b&nuZk$qeo*9pV>3g7^m39_~X#5p%e z<~z9`sMGG`BCy-V#_nQIZ?jS9Nsk0AWzwML8@Uj07=`7r07qzk!9$g$aZy+ViG+X! zR*Z6lYXJL=Dvw5pG~i2>^`3pPoypNB2Xsc3P4Zq^h-d1?*V7~a zxsmA+AsjxLX)6)0$Yjj;TP@ zf?;*opij&*_drN_z1&OrRgW?1yzpYnWU-3oErVwJ!+bAy3zqTOuGNgXonb$@-jqQM zX!^UP&?7I}cCel}$V;(b8Q$hh*9PLgN7Xh=_NZovF6=iCZ#@u(;`G29Ut6V^h+U)9 z_6`Qa6YU$x@yU?>My-$c+n!)xyz&BN2w1z($>DCk1&a(PZMkO4?=^;PE6E<{*?fG( zM(rrt(c+#xbJAL=PYcy@40cmFJv=>|hV8I}`$xDzDh&b0OVxbuzzZ7VqMVeUSc6-W zT_gz&Ua$`-=wlc*$2-GvgybgDQk-$o)ri+KzPozSB+y{M#h|H00-w~9xRAVPv61-m z(GYZ(66ZUho4sX-`S_Xov>HxhsB`~I@>x*BbrBebyWY!=Qv~^q` z>XUi)!s>CcT(L;r54uyXY&^P zQ`5fjn*Y0Fy!$|r?54&}4R_Wy2H*1x9JhAx*^%9m_R_Nt*`mJ=1uS8om-Dmb31

  • _{zDz&p>3TDQc)6hETbC-{f_tzLHj$*#VYkB| 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 diff --git a/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js b/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js deleted file mode 100644 index 5758f5c..0000000 --- a/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js +++ /dev/null @@ -1,2 +0,0 @@ -function r(o){throw new Error('Could not dynamically require "'+o+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}export{r as c}; -//# sourceMappingURL=_commonjs-dynamic-modules-h-SxKiO4.js.map diff --git a/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js.map b/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js.map deleted file mode 100644 index 91026ce..0000000 --- a/excalidraw/excalidraw-app/build/assets/_commonjs-dynamic-modules-h-SxKiO4.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"_commonjs-dynamic-modules-h-SxKiO4.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/arc-uMvMTTPz.js b/excalidraw/excalidraw-app/build/assets/arc-uMvMTTPz.js deleted file mode 100644 index edaeded..0000000 --- a/excalidraw/excalidraw-app/build/assets/arc-uMvMTTPz.js +++ /dev/null @@ -1,2 +0,0 @@ -import{w as ln,c as S}from"./path-aUcfwwLI.js";import{ar as an,as as H,at as q,au as rn,av as y,ap as tn,aw as L,ax as _,ay as un,az as o,aA as sn,aB as on,aC as fn}from"./index-jpNTxDe4.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function xn(l,h,C,z,v,A,j,a){var D=C-l,i=z-h,n=j-v,m=a-A,r=m*D-n*i;if(!(r*ru*u+G*G&&(I=P,O=x),{cx:I,cy:O,x01:-n,y01:-m,x11:I*(v/T-1),y11:O*(v/T-1)}}function vn(){var l=cn,h=yn,C=S(0),z=null,v=gn,A=mn,j=pn,a=null,D=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=A.apply(this,arguments)-rn,F=un(c-f),t=c>f;if(a||(a=n=D()),sy))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),r>y&&(a.moveTo(r*H(c),r*q(c)),a.arc(0,0,r,c,f,t));else{var p=f,g=c,R=f,T=c,w=F,E=F,I=j.apply(this,arguments)/2,O=I>y&&(z?+z.apply(this,arguments):L(r*r+s*s)),P=_(un(s-r)/2,+C.apply(this,arguments)),x=P,d=P,e,u;if(O>y){var G=sn(O/r*q(I)),M=sn(O/s*q(I));(w-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(w=0,R=T=(f+c)/2),(E-=M*2)>y?(M*=t?1:-1,p+=M,g-=M):(E=0,p=g=(f+c)/2)}var J=s*H(p),K=s*q(p),N=r*H(T),Q=r*q(T);if(P>y){var U=s*H(g),V=s*q(g),X=r*H(R),Y=r*q(R),B;if(Fy?d>y?(e=W(X,Y,J,K,s,d,t),u=W(U,V,N,Q,s,d,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),dy)||!(w>y)?a.lineTo(N,Q):x>y?(e=W(N,Q,U,V,r,-x,t),u=W(J,K,X,Y,r,-x,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),x dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js b/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js deleted file mode 100644 index 825ef78..0000000 --- a/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js +++ /dev/null @@ -1,2 +0,0 @@ -function t(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}export{t as a}; -//# sourceMappingURL=array-Nw74a44z.js.map diff --git a/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js.map b/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js.map deleted file mode 100644 index 6f1af75..0000000 --- a/excalidraw/excalidraw-app/build/assets/array-Nw74a44z.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"array-Nw74a44z.js","sources":["../../../node_modules/d3-shape/src/array.js"],"sourcesContent":["export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n"],"names":["array","x"],"mappings":"AAEe,SAAQA,EAACC,EAAG,CACzB,OAAO,OAAOA,GAAM,UAAY,WAAYA,EACxCA,EACA,MAAM,KAAKA,CAAC,CAClB","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js b/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js deleted file mode 100644 index 9802235..0000000 --- a/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js +++ /dev/null @@ -1,12 +0,0 @@ -const t=e=>` -### Scene content - -\`\`\` -Paste scene content here -\`\`\` - -### Sentry Error ID - -${e} -`;export{t as default}; -//# sourceMappingURL=bug-issue-template-RzHCT2ur.js.map diff --git a/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js.map b/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js.map deleted file mode 100644 index ae57c58..0000000 --- a/excalidraw/excalidraw-app/build/assets/bug-issue-template-RzHCT2ur.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bug-issue-template-RzHCT2ur.js","sources":["../../bug-issue-template.js"],"sourcesContent":["export default (sentryErrorId) => `\n### Scene content\n\n\\`\\`\\`\nPaste scene content here\n\\`\\`\\`\n\n### Sentry Error ID\n\n${sentryErrorId}\n`;\n"],"names":["bugIssueTemplate","sentryErrorId"],"mappings":"AAAA,MAAeA,EAACC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShCA,CAAa;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js b/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js deleted file mode 100644 index 493fb58..0000000 --- a/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js +++ /dev/null @@ -1,11 +0,0 @@ -import{s as Ye,g as Ie,a as Ve,b as je,c as Ut,d as Ee,m as Ue,e as Fe,f as Yt,h as Qt,l as _e,i as Xe,w as ze,j as le,k as xe,n as We}from"./index-jpNTxDe4.js";import{d as Qe,g as He}from"./svgDrawCommon-f26cad39-uSOEV6F1.js";import"./index-2K3MavtT.js";var qt=function(){var e=function(Ot,_,x,m){for(x=x||{},m=Ot.length;m--;x[Ot[m]]=_);return x},t=[1,6],a=[1,7],o=[1,8],l=[1,9],i=[1,16],s=[1,11],r=[1,12],n=[1,13],u=[1,14],y=[1,15],d=[1,27],p=[1,33],C=[1,34],T=[1,35],R=[1,36],S=[1,37],L=[1,72],Y=[1,73],Q=[1,74],H=[1,75],q=[1,76],G=[1,77],K=[1,78],J=[1,38],Z=[1,39],$=[1,40],tt=[1,41],et=[1,42],it=[1,43],nt=[1,44],st=[1,45],at=[1,46],rt=[1,47],lt=[1,48],ot=[1,49],ct=[1,50],ht=[1,51],ut=[1,52],dt=[1,53],ft=[1,54],pt=[1,55],yt=[1,56],gt=[1,57],bt=[1,59],_t=[1,60],xt=[1,61],mt=[1,62],vt=[1,63],Et=[1,64],kt=[1,65],At=[1,66],Ct=[1,67],wt=[1,68],Tt=[1,69],Nt=[24,52],$t=[24,44,46,47,48,49,50,51,52,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],It=[15,24,44,46,47,48,49,50,51,52,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],v=[1,94],E=[1,95],k=[1,96],A=[1,97],w=[15,24,52],fe=[7,8,9,10,18,22,25,26,27,28],pe=[15,24,43,52],Xt=[15,24,43,52,86,87,89,90],St=[15,43],te=[44,46,47,48,49,50,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],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(_,x,m,g,O,h,Vt){var f=h.length-1;switch(O){case 4:g.setDirection("TB");break;case 5:g.setDirection("BT");break;case 6:g.setDirection("RL");break;case 7:g.setDirection("LR");break;case 11:g.parseDirective("%%{","open_directive");break;case 12:break;case 13:h[f]=h[f].trim().replace(/'/g,'"'),g.parseDirective(h[f],"arg_directive");break;case 14:g.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:g.setC4Type(h[f-3]);break;case 26:g.setTitle(h[f].substring(6)),this.$=h[f].substring(6);break;case 27:g.setAccDescription(h[f].substring(15)),this.$=h[f].substring(15);break;case 28:this.$=h[f].trim(),g.setTitle(this.$);break;case 29:case 30:this.$=h[f].trim(),g.setAccDescription(this.$);break;case 35:case 36:h[f].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 37:g.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 38:h[f].splice(2,0,"CONTAINER"),g.addContainerBoundary(...h[f]),this.$=h[f];break;case 39:g.addDeploymentNode("node",...h[f]),this.$=h[f];break;case 40:g.addDeploymentNode("nodeL",...h[f]),this.$=h[f];break;case 41:g.addDeploymentNode("nodeR",...h[f]),this.$=h[f];break;case 42:g.popBoundaryParseStack();break;case 46:g.addPersonOrSystem("person",...h[f]),this.$=h[f];break;case 47:g.addPersonOrSystem("external_person",...h[f]),this.$=h[f];break;case 48:g.addPersonOrSystem("system",...h[f]),this.$=h[f];break;case 49:g.addPersonOrSystem("system_db",...h[f]),this.$=h[f];break;case 50:g.addPersonOrSystem("system_queue",...h[f]),this.$=h[f];break;case 51:g.addPersonOrSystem("external_system",...h[f]),this.$=h[f];break;case 52:g.addPersonOrSystem("external_system_db",...h[f]),this.$=h[f];break;case 53:g.addPersonOrSystem("external_system_queue",...h[f]),this.$=h[f];break;case 54:g.addContainer("container",...h[f]),this.$=h[f];break;case 55:g.addContainer("container_db",...h[f]),this.$=h[f];break;case 56:g.addContainer("container_queue",...h[f]),this.$=h[f];break;case 57:g.addContainer("external_container",...h[f]),this.$=h[f];break;case 58:g.addContainer("external_container_db",...h[f]),this.$=h[f];break;case 59:g.addContainer("external_container_queue",...h[f]),this.$=h[f];break;case 60:g.addComponent("component",...h[f]),this.$=h[f];break;case 61:g.addComponent("component_db",...h[f]),this.$=h[f];break;case 62:g.addComponent("component_queue",...h[f]),this.$=h[f];break;case 63:g.addComponent("external_component",...h[f]),this.$=h[f];break;case 64:g.addComponent("external_component_db",...h[f]),this.$=h[f];break;case 65:g.addComponent("external_component_queue",...h[f]),this.$=h[f];break;case 67:g.addRel("rel",...h[f]),this.$=h[f];break;case 68:g.addRel("birel",...h[f]),this.$=h[f];break;case 69:g.addRel("rel_u",...h[f]),this.$=h[f];break;case 70:g.addRel("rel_d",...h[f]),this.$=h[f];break;case 71:g.addRel("rel_l",...h[f]),this.$=h[f];break;case 72:g.addRel("rel_r",...h[f]),this.$=h[f];break;case 73:g.addRel("rel_b",...h[f]),this.$=h[f];break;case 74:h[f].splice(0,1),g.addRel("rel",...h[f]),this.$=h[f];break;case 75:g.updateElStyle("update_el_style",...h[f]),this.$=h[f];break;case 76:g.updateRelStyle("update_rel_style",...h[f]),this.$=h[f];break;case 77:g.updateLayoutConfig("update_layout_config",...h[f]),this.$=h[f];break;case 78:this.$=[h[f]];break;case 79:h[f].unshift(h[f-1]),this.$=h[f];break;case 80:case 82:this.$=h[f].trim();break;case 81:let Pt={};Pt[h[f-1].trim()]=h[f].trim(),this.$=Pt;break;case 83:this.$="";break}},table:[{3:1,4:2,5:3,6:4,7:t,8:a,9:o,10:l,11:5,12:10,18:i,22:s,25:r,26:n,27:u,28:y},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:t,8:a,9:o,10:l,11:5,12:10,18:i,22:s,25:r,26:n,27:u,28:y},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:d},e([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:p,33:C,34:T,36:R,38:S,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{23:79,29:29,30:30,31:31,32:p,33:C,34:T,36:R,38:S,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{23:80,29:29,30:30,31:31,32:p,33:C,34:T,36:R,38:S,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{23:81,29:29,30:30,31:31,32:p,33:C,34:T,36:R,38:S,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{23:82,29:29,30:30,31:31,32:p,33:C,34:T,36:R,38:S,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},e(Nt,[2,20],{53:32,39:58,40:70,42:71,30:87,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt}),e(Nt,[2,21]),e($t,[2,23],{15:[1,88]}),e(Nt,[2,43],{15:[1,89]}),e(It,[2,26]),e(It,[2,27]),{35:[1,90]},{37:[1,91]},e(It,[2,30]),{45:92,85:93,86:v,87:E,89:k,90:A},{45:98,85:93,86:v,87:E,89:k,90:A},{45:99,85:93,86:v,87:E,89:k,90:A},{45:100,85:93,86:v,87:E,89:k,90:A},{45:101,85:93,86:v,87:E,89:k,90:A},{45:102,85:93,86:v,87:E,89:k,90:A},{45:103,85:93,86:v,87:E,89:k,90:A},{45:104,85:93,86:v,87:E,89:k,90:A},{45:105,85:93,86:v,87:E,89:k,90:A},{45:106,85:93,86:v,87:E,89:k,90:A},{45:107,85:93,86:v,87:E,89:k,90:A},{45:108,85:93,86:v,87:E,89:k,90:A},{45:109,85:93,86:v,87:E,89:k,90:A},{45:110,85:93,86:v,87:E,89:k,90:A},{45:111,85:93,86:v,87:E,89:k,90:A},{45:112,85:93,86:v,87:E,89:k,90:A},{45:113,85:93,86:v,87:E,89:k,90:A},{45:114,85:93,86:v,87:E,89:k,90:A},{45:115,85:93,86:v,87:E,89:k,90:A},{45:116,85:93,86:v,87:E,89:k,90:A},e(w,[2,66]),{45:117,85:93,86:v,87:E,89:k,90:A},{45:118,85:93,86:v,87:E,89:k,90:A},{45:119,85:93,86:v,87:E,89:k,90:A},{45:120,85:93,86:v,87:E,89:k,90:A},{45:121,85:93,86:v,87:E,89:k,90:A},{45:122,85:93,86:v,87:E,89:k,90:A},{45:123,85:93,86:v,87:E,89:k,90:A},{45:124,85:93,86:v,87:E,89:k,90:A},{45:125,85:93,86:v,87:E,89:k,90:A},{45:126,85:93,86:v,87:E,89:k,90:A},{45:127,85:93,86:v,87:E,89:k,90:A},{30:128,39:58,40:70,42:71,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,53:32,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt},{15:[1,130],43:[1,129]},{45:131,85:93,86:v,87:E,89:k,90:A},{45:132,85:93,86:v,87:E,89:k,90:A},{45:133,85:93,86:v,87:E,89:k,90:A},{45:134,85:93,86:v,87:E,89:k,90:A},{45:135,85:93,86:v,87:E,89:k,90:A},{45:136,85:93,86:v,87:E,89:k,90:A},{45:137,85:93,86:v,87:E,89:k,90:A},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},e(fe,[2,9]),{14:142,21:d},{21:[2,13]},{1:[2,15]},e(Nt,[2,22]),e($t,[2,24],{31:31,29:143,32:p,33:C,34:T,36:R,38:S}),e(Nt,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:p,33:C,34:T,36:R,38:S,44:L,46:Y,47:Q,48:H,49:q,50:G,51:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt,75:_t,76:xt,77:mt,78:vt,79:Et,80:kt,81:At,82:Ct,83:wt,84:Tt}),e(It,[2,28]),e(It,[2,29]),e(w,[2,46]),e(pe,[2,78],{85:93,45:145,86:v,87:E,89:k,90:A}),e(Xt,[2,80]),{88:[1,146]},e(Xt,[2,82]),e(Xt,[2,83]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,59]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),e(w,[2,71]),e(w,[2,72]),e(w,[2,73]),e(w,[2,74]),e(w,[2,75]),e(w,[2,76]),e(w,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},e(St,[2,35]),e(St,[2,36]),e(St,[2,37]),e(St,[2,38]),e(St,[2,39]),e(St,[2,40]),e(St,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},e($t,[2,25]),e(Nt,[2,45]),e(pe,[2,79]),e(Xt,[2,81]),e(w,[2,31]),e(w,[2,42]),e(te,[2,32]),e(te,[2,33],{15:[1,152]}),e(fe,[2,10]),e(te,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],O=[null],h=[],Vt=this.table,f="",Pt=0,ye=0,Me=2,ge=1,Le=h.slice.call(arguments,1),D=Object.create(this.lexer),Mt={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(Mt.yy[ne]=this.yy[ne]);D.setInput(_,Mt.yy),Mt.yy.lexer=D,Mt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var se=D.yylloc;h.push(se);var Ne=D.options&&D.options.ranges;typeof Mt.yy.parseError=="function"?this.parseError=Mt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var z;return z=g.pop()||D.lex()||ge,typeof z!="number"&&(z instanceof Array&&(g=z,z=g.pop()),z=x.symbols_[z]||z),z}for(var M,Lt,N,ae,Bt={},zt,X,be,Wt;;){if(Lt=m[m.length-1],this.defaultActions[Lt]?N=this.defaultActions[Lt]:((M===null||typeof M>"u")&&(M=Be()),N=Vt[Lt]&&Vt[Lt][M]),typeof N>"u"||!N.length||!N[0]){var re="";Wt=[];for(zt in Vt[Lt])this.terminals_[zt]&&zt>Me&&Wt.push("'"+this.terminals_[zt]+"'");D.showPosition?re="Parse error on line "+(Pt+1)+`: -`+D.showPosition()+` -Expecting `+Wt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":re="Parse error on line "+(Pt+1)+": Unexpected "+(M==ge?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(re,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:se,expected:Wt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Lt+", token: "+M);switch(N[0]){case 1:m.push(M),O.push(D.yytext),h.push(D.yylloc),m.push(N[1]),M=null,ye=D.yyleng,f=D.yytext,Pt=D.yylineno,se=D.yylloc;break;case 2:if(X=this.productions_[N[1]][1],Bt.$=O[O.length-X],Bt._$={first_line:h[h.length-(X||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(X||1)].first_column,last_column:h[h.length-1].last_column},Ne&&(Bt._$.range=[h[h.length-(X||1)].range[0],h[h.length-1].range[1]]),ae=this.performAction.apply(Bt,[f,ye,Pt,Mt.yy,N[1],O,h].concat(Le)),typeof ae<"u")return ae;X&&(m=m.slice(0,-1*X*2),O=O.slice(0,-1*X),h=h.slice(0,-1*X)),m.push(this.productions_[N[1]][0]),O.push(Bt.$),h.push(Bt._$),be=Vt[m[m.length-2]][m[m.length-1]],m.push(be);break;case 3:return!0}}return!0}},Pe=function(){var Ot={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,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},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=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),m.length-1&&(this.yylineno-=m.length-1);var O=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:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[O[0],O[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` -`+x+"^"},test_match:function(_,x){var m,g,O;if(this.options.backtrack_lexer&&(O={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&&(O.yylloc.range=this.yylloc.range.slice(0))),g=_[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,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(_[0].length),this.matched+=_[0],m=this.performAction.call(this,this.yy,this,x,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var h in O)this[h]=O[h];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,x,m,g;this._more||(this.yytext="",this.match="");for(var O=this._currentRules(),h=0;hx[0].length)){if(x=m,g=h,this.options.backtrack_lexer){if(_=this.test_match(m,O[h]),_!==!1)return _;if(this._backtrack){x=!1;continue}else return!1}else if(!this.options.flex)break}return x?(_=this.test_match(x,O[g]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var x=this.next();return x||this.lex()},begin:function(x){this.conditionStack.push(x)},popState:function(){var x=this.conditionStack.length-1;return x>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(x){return x=this.conditionStack.length-1-Math.abs(x||0),x>=0?this.conditionStack[x]:"INITIAL"},pushState:function(x){this.begin(x)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(x,m,g,O){switch(g){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:break;case 19:c;break;case 20:return 15;case 21:break;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:return this.begin("node"),49;case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:return this.begin("rel_u"),76;case 58:return this.begin("rel_u"),76;case 59:return this.begin("rel_d"),77;case 60:return this.begin("rel_d"),77;case 61:return this.begin("rel_l"),78;case 62:return this.begin("rel_l"),78;case 63:return this.begin("rel_r"),79;case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:this.popState(),this.popState();break;case 74:return 90;case 75:break;case 76:return 90;case 77:this.begin("string");break;case 78:this.popState();break;case 79:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 84:this.popState(),this.popState();break;case 85:return"STR";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,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,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};return Ot}();ee.lexer=Pe;function ie(){this.yy={}}return ie.prototype=ee,ee.Parser=ie,new ie}();qt.parser=qt;const qe=qt;let j=[],Rt=[""],P="global",V="",F=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Ft=[],he="",ue=!1,Gt=4,Kt=2;var ke;const Ge=function(){return ke},Ke=function(e){ke=Ee(e,Ut())},Je=function(e,t,a){Ue.parseDirective(this,e,t,a)},Ze=function(e,t,a,o,l,i,s,r,n){if(e==null||t===void 0||t===null||a===void 0||a===null||o===void 0||o===null)return;let u={};const y=Ft.find(d=>d.from===t&&d.to===a);if(y?u=y:Ft.push(u),u.type=e,u.from=t,u.to=a,u.label={text:o},l==null)u.techn={text:""};else if(typeof l=="object"){let[d,p]=Object.entries(l)[0];u[d]={text:p}}else u.techn={text:l};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];u[d]={text:p}}else u.descr={text:i};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];u[d]=p}else u.sprite=s;if(typeof r=="object"){let[d,p]=Object.entries(r)[0];u[d]=p}else u.tags=r;if(typeof n=="object"){let[d,p]=Object.entries(n)[0];u[d]=p}else u.link=n;u.wrap=Dt()},$e=function(e,t,a,o,l,i,s){if(t===null||a===null)return;let r={};const n=j.find(u=>u.alias===t);if(n&&t===n.alias?r=n:(r.alias=t,j.push(r)),a==null?r.label={text:""}:r.label={text:a},o==null)r.descr={text:""};else if(typeof o=="object"){let[u,y]=Object.entries(o)[0];r[u]={text:y}}else r.descr={text:o};if(typeof l=="object"){let[u,y]=Object.entries(l)[0];r[u]=y}else r.sprite=l;if(typeof i=="object"){let[u,y]=Object.entries(i)[0];r[u]=y}else r.tags=i;if(typeof s=="object"){let[u,y]=Object.entries(s)[0];r[u]=y}else r.link=s;r.typeC4Shape={text:e},r.parentBoundary=P,r.wrap=Dt()},t0=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const u=j.find(y=>y.alias===t);if(u&&t===u.alias?n=u:(n.alias=t,j.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[y,d]=Object.entries(o)[0];n[y]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[y,d]=Object.entries(l)[0];n[y]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[y,d]=Object.entries(i)[0];n[y]=d}else n.sprite=i;if(typeof s=="object"){let[y,d]=Object.entries(s)[0];n[y]=d}else n.tags=s;if(typeof r=="object"){let[y,d]=Object.entries(r)[0];n[y]=d}else n.link=r;n.wrap=Dt(),n.typeC4Shape={text:e},n.parentBoundary=P},e0=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const u=j.find(y=>y.alias===t);if(u&&t===u.alias?n=u:(n.alias=t,j.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[y,d]=Object.entries(o)[0];n[y]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[y,d]=Object.entries(l)[0];n[y]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[y,d]=Object.entries(i)[0];n[y]=d}else n.sprite=i;if(typeof s=="object"){let[y,d]=Object.entries(s)[0];n[y]=d}else n.tags=s;if(typeof r=="object"){let[y,d]=Object.entries(r)[0];n[y]=d}else n.link=r;n.wrap=Dt(),n.typeC4Shape={text:e},n.parentBoundary=P},i0=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=F.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,F.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"system"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=Dt(),V=P,P=e,Rt.push(V)},n0=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=F.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,F.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"container"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=Dt(),V=P,P=e,Rt.push(V)},s0=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const u=F.find(y=>y.alias===t);if(u&&t===u.alias?n=u:(n.alias=t,F.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.type={text:"node"};else if(typeof o=="object"){let[y,d]=Object.entries(o)[0];n[y]={text:d}}else n.type={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[y,d]=Object.entries(l)[0];n[y]={text:d}}else n.descr={text:l};if(typeof s=="object"){let[y,d]=Object.entries(s)[0];n[y]=d}else n.tags=s;if(typeof r=="object"){let[y,d]=Object.entries(r)[0];n[y]=d}else n.link=r;n.nodeType=e,n.parentBoundary=P,n.wrap=Dt(),V=P,P=t,Rt.push(V)},a0=function(){P=V,Rt.pop(),V=Rt.pop(),Rt.push(V)},r0=function(e,t,a,o,l,i,s,r,n,u,y){let d=j.find(p=>p.alias===t);if(!(d===void 0&&(d=F.find(p=>p.alias===t),d===void 0))){if(a!=null)if(typeof a=="object"){let[p,C]=Object.entries(a)[0];d[p]=C}else d.bgColor=a;if(o!=null)if(typeof o=="object"){let[p,C]=Object.entries(o)[0];d[p]=C}else d.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,C]=Object.entries(l)[0];d[p]=C}else d.borderColor=l;if(i!=null)if(typeof i=="object"){let[p,C]=Object.entries(i)[0];d[p]=C}else d.shadowing=i;if(s!=null)if(typeof s=="object"){let[p,C]=Object.entries(s)[0];d[p]=C}else d.shape=s;if(r!=null)if(typeof r=="object"){let[p,C]=Object.entries(r)[0];d[p]=C}else d.sprite=r;if(n!=null)if(typeof n=="object"){let[p,C]=Object.entries(n)[0];d[p]=C}else d.techn=n;if(u!=null)if(typeof u=="object"){let[p,C]=Object.entries(u)[0];d[p]=C}else d.legendText=u;if(y!=null)if(typeof y=="object"){let[p,C]=Object.entries(y)[0];d[p]=C}else d.legendSprite=y}},l0=function(e,t,a,o,l,i,s){const r=Ft.find(n=>n.from===t&&n.to===a);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[n,u]=Object.entries(o)[0];r[n]=u}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[n,u]=Object.entries(l)[0];r[n]=u}else r.lineColor=l;if(i!=null)if(typeof i=="object"){let[n,u]=Object.entries(i)[0];r[n]=parseInt(u)}else r.offsetX=parseInt(i);if(s!=null)if(typeof s=="object"){let[n,u]=Object.entries(s)[0];r[n]=parseInt(u)}else r.offsetY=parseInt(s)}},o0=function(e,t,a){let o=Gt,l=Kt;if(typeof t=="object"){const i=Object.values(t)[0];o=parseInt(i)}else o=parseInt(t);if(typeof a=="object"){const i=Object.values(a)[0];l=parseInt(i)}else l=parseInt(a);o>=1&&(Gt=o),l>=1&&(Kt=l)},c0=function(){return Gt},h0=function(){return Kt},u0=function(){return P},d0=function(){return V},Ae=function(e){return e==null?j:j.filter(t=>t.parentBoundary===e)},f0=function(e){return j.find(t=>t.alias===e)},p0=function(e){return Object.keys(Ae(e))},y0=function(e){return e==null?F:F.filter(t=>t.parentBoundary===e)},g0=function(){return Ft},b0=function(){return he},_0=function(e){ue=e},Dt=function(){return ue},x0=function(){j=[],F=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],V="",P="global",Rt=[""],Ft=[],Rt=[""],he="",ue=!1,Gt=4,Kt=2},m0={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},v0={FILLED:0,OPEN:1},E0={LEFTOF:0,RIGHTOF:1,OVER:2},k0=function(e){he=Ee(e,Ut())},Ce={addPersonOrSystem:$e,addPersonOrSystemBoundary:i0,addContainer:t0,addContainerBoundary:n0,addComponent:e0,addDeploymentNode:s0,popBoundaryParseStack:a0,addRel:Ze,updateElStyle:r0,updateRelStyle:l0,updateLayoutConfig:o0,autoWrap:Dt,setWrap:_0,getC4ShapeArray:Ae,getC4Shape:f0,getC4ShapeKeys:p0,getBoundarys:y0,getCurrentBoundaryParse:u0,getParentBoundaryParse:d0,getRels:g0,getTitle:b0,getC4Type:Ge,getC4ShapeInRow:c0,getC4BoundaryInRow:h0,setAccTitle:Ye,getAccTitle:Ie,getAccDescription:Ve,setAccDescription:je,parseDirective:Je,getConfig:()=>Ut().c4,clear:x0,LINETYPE:m0,ARROWTYPE:v0,PLACEMENT:E0,setTitle:k0,setC4Type:Ke},de=function(e,t){return Qe(e,t)},we=function(e,t,a,o,l,i){const s=e.append("image");s.attr("width",t),s.attr("height",a),s.attr("x",o),s.attr("y",l);let r=i.startsWith("data:image/png;base64")?i:We.sanitizeUrl(i);s.attr("xlink:href",r)},A0=(e,t,a)=>{const o=e.append("g");let l=0;for(let i of t){let s=i.textColor?i.textColor:"#444444",r=i.lineColor?i.lineColor:"#444444",n=i.offsetX?parseInt(i.offsetX):0,u=i.offsetY?parseInt(i.offsetY):0,y="";if(l===0){let p=o.append("line");p.attr("x1",i.startPoint.x),p.attr("y1",i.startPoint.y),p.attr("x2",i.endPoint.x),p.attr("y2",i.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",r),p.style("fill","none"),i.type!=="rel_b"&&p.attr("marker-end","url("+y+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+y+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",i.startPoint.x).replaceAll("starty",i.startPoint.y).replaceAll("controlx",i.startPoint.x+(i.endPoint.x-i.startPoint.x)/2-(i.endPoint.x-i.startPoint.x)/4).replaceAll("controly",i.startPoint.y+(i.endPoint.y-i.startPoint.y)/2).replaceAll("stopx",i.endPoint.x).replaceAll("stopy",i.endPoint.y)),i.type!=="rel_b"&&p.attr("marker-end","url("+y+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+y+"#arrowend)")}let d=a.messageFont();W(a)(i.label.text,o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+u,i.label.width,i.label.height,{fill:s},d),i.techn&&i.techn.text!==""&&(d=a.messageFont(),W(a)("["+i.techn.text+"]",o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+a.messageFontSize+5+u,Math.max(i.label.width,i.techn.width),i.techn.height,{fill:s,"font-style":"italic"},d))}},C0=function(e,t,a){const o=e.append("g");let l=t.bgColor?t.bgColor:"none",i=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let n={x:t.x,y:t.y,fill:l,stroke:i,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};de(o,n);let u=a.boundaryFont();u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=s,W(a)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},u),t.type&&t.type.text!==""&&(u=a.boundaryFont(),u.fontColor=s,W(a)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},u)),t.descr&&t.descr.text!==""&&(u=a.boundaryFont(),u.fontSize=u.fontSize-2,u.fontColor=s,W(a)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},u))},w0=function(e,t,a){var o;let l=t.bgColor?t.bgColor:a[t.typeC4Shape.text+"_bg_color"],i=t.borderColor?t.borderColor:a[t.typeC4Shape.text+"_border_color"],s=t.fontColor?t.fontColor:"#FFFFFF",r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":r="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":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const n=e.append("g");n.attr("class","person-man");const u=He();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=t.x,u.y=t.y,u.fill=l,u.width=t.width,u.height=t.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},de(n,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":n.append("path").attr("fill",l).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",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),n.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",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":n.append("path").attr("fill",l).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",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),n.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",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let y=N0(a,t.typeC4Shape.text);switch(n.append("text").attr("fill",s).attr("font-family",y.fontFamily).attr("font-size",y.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":we(n,48,48,t.x+t.width/2-24,t.y+t.image.Y,r);break}let d=a[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=s,W(a)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:s},d),d=a[t.typeC4Shape.text+"Font"](),d.fontColor=s,t.techn&&((o=t.techn)==null?void 0:o.text)!==""?W(a)(t.techn.text,n,t.x,t.y+t.techn.Y,t.width,t.height,{fill:s,"font-style":"italic"},d):t.type&&t.type.text!==""&&W(a)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:s,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=a.personFont(),d.fontColor=s,W(a)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:s},d)),t.height},T0=function(e){e.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")},O0=function(e){e.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")},R0=function(e){e.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")},D0=function(e){e.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")},S0=function(e){e.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")},P0=function(e){e.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")},M0=function(e){e.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)},L0=function(e){const a=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);a.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"),a.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")},N0=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),W=function(){function e(l,i,s,r,n,u,y){const d=i.append("text").attr("x",s+n/2).attr("y",r+u/2+5).style("text-anchor","middle").text(l);o(d,y)}function t(l,i,s,r,n,u,y,d){const{fontSize:p,fontFamily:C,fontWeight:T}=d,R=l.split(le.lineBreakRegex);for(let S=0;S=this.data.widthLimit||o>=this.data.widthLimit||this.nextData.cnt>Te)&&(a=this.nextData.startx+t.margin+b.nextLinePaddingX,l=this.nextData.stopy+t.margin*2,this.nextData.stopx=o=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=l+t.height,this.nextData.cnt=1),t.x=a,t.y=l,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",l,Math.min),this.updateVal(this.data,"stopx",o,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",l,Math.min),this.updateVal(this.nextData,"stopx",o,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){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},ce(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const ce=function(e){Fe(b,e),e.fontFamily&&(b.personFontFamily=b.systemFontFamily=b.messageFontFamily=e.fontFamily),e.fontSize&&(b.personFontSize=b.systemFontSize=b.messageFontSize=e.fontSize),e.fontWeight&&(b.personFontWeight=b.systemFontWeight=b.messageFontWeight=e.fontWeight)},jt=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),Ht=e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),B0=e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight});function I(e,t,a,o,l){if(!t[e].width)if(a)t[e].text=ze(t[e].text,l,o),t[e].textLines=t[e].text.split(le.lineBreakRegex).length,t[e].width=l,t[e].height=xe(t[e].text,o);else{let i=t[e].text.split(le.lineBreakRegex);t[e].textLines=i.length;let s=0;t[e].height=0,t[e].width=0;for(const r of i)t[e].width=Math.max(Yt(r,o),t[e].width),s=xe(r,o),t[e].height=t[e].height+s}}const Re=function(e,t,a){t.x=a.data.startx,t.y=a.data.starty,t.width=a.data.stopx-a.data.startx,t.height=a.data.stopy-a.data.starty,t.label.y=b.c4ShapeMargin-35;let o=t.wrap&&b.wrap,l=Ht(b);l.fontSize=l.fontSize+2,l.fontWeight="bold";let i=Yt(t.label.text,l);I("label",t,o,l,i),U.drawBoundary(e,t,b)},De=function(e,t,a,o){let l=0;for(const i of o){l=0;const s=a[i];let r=jt(b,s.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,s.typeC4Shape.width=Yt("<<"+s.typeC4Shape.text+">>",r),s.typeC4Shape.height=r.fontSize+2,s.typeC4Shape.Y=b.c4ShapePadding,l=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=l,l=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height);let n=s.wrap&&b.wrap,u=b.width-b.c4ShapePadding*2,y=jt(b,s.typeC4Shape.text);if(y.fontSize=y.fontSize+2,y.fontWeight="bold",I("label",s,n,y,u),s.label.Y=l+8,l=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let C=jt(b,s.typeC4Shape.text);I("type",s,n,C,u),s.type.Y=l+5,l=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let C=jt(b,s.techn.text);I("techn",s,n,C,u),s.techn.Y=l+5,l=s.techn.Y+s.techn.height}let d=l,p=s.label.width;if(s.descr&&s.descr.text!==""){let C=jt(b,s.typeC4Shape.text);I("descr",s,n,C,u),s.descr.Y=l+20,l=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=l-s.descr.textLines*5}p=p+b.c4ShapePadding,s.width=Math.max(s.width||b.width,p,b.width),s.height=Math.max(s.height||b.height,d,b.height),s.margin=s.margin||b.c4ShapeMargin,e.insert(s),U.drawC4Shape(t,s,b)}e.bumpLastMargin(b.c4ShapeMargin)};class B{constructor(t,a){this.x=t,this.y=a}}let me=function(e,t){let a=e.x,o=e.y,l=t.x,i=t.y,s=a+e.width/2,r=o+e.height/2,n=Math.abs(a-l),u=Math.abs(o-i),y=u/n,d=e.height/e.width,p=null;return o==i&&al?p=new B(a,r):a==l&&oi&&(p=new B(s,o)),a>l&&o=y?p=new B(a,r+y*e.width/2):p=new B(s-n/u*e.height/2,o+e.height):a=y?p=new B(a+e.width,r+y*e.width/2):p=new B(s+n/u*e.height/2,o+e.height):ai?d>=y?p=new B(a+e.width,r-y*e.width/2):p=new B(s+e.height/2*n/u,o):a>l&&o>i&&(d>=y?p=new B(a,r-e.width/2*y):p=new B(s-e.height/2*n/u,o)),p},Y0=function(e,t){let a={x:0,y:0};a.x=t.x+t.width/2,a.y=t.y+t.height/2;let o=me(e,a);a.x=e.x+e.width/2,a.y=e.y+e.height/2;let l=me(t,a);return{startPoint:o,endPoint:l}};const I0=function(e,t,a,o){let l=0;for(let i of t){l=l+1;let s=i.wrap&&b.wrap,r=B0(b);o.db.getC4Type()==="C4Dynamic"&&(i.label.text=l+": "+i.label.text);let u=Yt(i.label.text,r);I("label",i,s,r,u),i.techn&&i.techn.text!==""&&(u=Yt(i.techn.text,r),I("techn",i,s,r,u)),i.descr&&i.descr.text!==""&&(u=Yt(i.descr.text,r),I("descr",i,s,r,u));let y=a(i.from),d=a(i.to),p=Y0(y,d);i.startPoint=p.startPoint,i.endPoint=p.endPoint}U.drawRels(e,t,b)};function Se(e,t,a,o,l){let i=new Oe(l);i.data.widthLimit=a.data.widthLimit/Math.min(oe,o.length);for(let[s,r]of o.entries()){let n=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=n,n=r.image.Y+r.image.height);let u=r.wrap&&b.wrap,y=Ht(b);if(y.fontSize=y.fontSize+2,y.fontWeight="bold",I("label",r,u,y,i.data.widthLimit),r.label.Y=n+8,n=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let T=Ht(b);I("type",r,u,T,i.data.widthLimit),r.type.Y=n+5,n=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let T=Ht(b);T.fontSize=T.fontSize-2,I("descr",r,u,T,i.data.widthLimit),r.descr.Y=n+20,n=r.descr.Y+r.descr.height}if(s==0||s%oe===0){let T=a.data.startx+b.diagramMarginX,R=a.data.stopy+b.diagramMarginY+n;i.setData(T,T,R,R)}else{let T=i.data.stopx!==i.data.startx?i.data.stopx+b.diagramMarginX:i.data.startx,R=i.data.starty;i.setData(T,T,R,R)}i.name=r.alias;let d=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&De(i,e,d,p),t=r.alias;let C=l.db.getBoundarys(t);C.length>0&&Se(e,t,i,C,l),r.alias!=="global"&&Re(e,r,i),a.data.stopy=Math.max(i.data.stopy+b.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(i.data.stopx+b.c4ShapeMargin,a.data.stopx),Jt=Math.max(Jt,a.data.stopx),Zt=Math.max(Zt,a.data.stopy)}}const V0=function(e,t,a,o){b=Ut().c4;const l=Ut().securityLevel;let i;l==="sandbox"&&(i=Qt("#i"+t));const s=l==="sandbox"?Qt(i.nodes()[0].contentDocument.body):Qt("body");let r=o.db;o.db.setWrap(b.wrap),Te=r.getC4ShapeInRow(),oe=r.getC4BoundaryInRow(),_e.debug(`C:${JSON.stringify(b,null,2)}`);const n=l==="sandbox"?s.select(`[id="${t}"]`):Qt(`[id="${t}"]`);U.insertComputerIcon(n),U.insertDatabaseIcon(n),U.insertClockIcon(n);let u=new Oe(o);u.setData(b.diagramMarginX,b.diagramMarginX,b.diagramMarginY,b.diagramMarginY),u.data.widthLimit=screen.availWidth,Jt=b.diagramMarginX,Zt=b.diagramMarginY;const y=o.db.getTitle();let d=o.db.getBoundarys("");Se(n,"",u,d,o),U.insertArrowHead(n),U.insertArrowEnd(n),U.insertArrowCrossHead(n),U.insertArrowFilledHead(n),I0(n,o.db.getRels(),o.db.getC4Shape,o),u.data.stopx=Jt,u.data.stopy=Zt;const p=u.data;let T=p.stopy-p.starty+2*b.diagramMarginY;const S=p.stopx-p.startx+2*b.diagramMarginX;y&&n.append("text").text(y).attr("x",(p.stopx-p.startx)/2-4*b.diagramMarginX).attr("y",p.starty+b.diagramMarginY),Xe(n,T,S,b.useMaxWidth);const L=y?60:0;n.attr("viewBox",p.startx-b.diagramMarginX+" -"+(b.diagramMarginY+L)+" "+S+" "+(T+L)),_e.debug("models:",p)},ve={drawPersonOrSystemArray:De,drawBoundary:Re,setConf:ce,draw:V0},j0=e=>`.person { - stroke: ${e.personBorder}; - fill: ${e.personBkg}; - } -`,U0=j0,W0={parser:qe,db:Ce,renderer:ve,styles:U0,init:e=>{ve.setConf(e.c4)}};export{W0 as diagram}; -//# sourceMappingURL=c4Diagram-9cddb37f-N9kopixF.js.map diff --git a/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js.map b/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js.map deleted file mode 100644 index af82e9a..0000000 --- a/excalidraw/excalidraw-app/build/assets/c4Diagram-9cddb37f-N9kopixF.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"c4Diagram-9cddb37f-N9kopixF.js","sources":["../../../node_modules/mermaid/dist/c4Diagram-9cddb37f.js"],"sourcesContent":["import { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, d as sanitizeText, m as mermaidAPI, e as common, f as assignWithDepth, h as calculateTextWidth, l as log, i as configureSvgSize, w as wrapLabel, j as calculateTextHeight } from \"./mermaid-b0ad2de1.js\";\nimport { select } from \"d3\";\nimport { d as drawRect$1, g as getNoteRect } from \"./svgDrawCommon-f26cad39.js\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 6], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 16], $V5 = [1, 11], $V6 = [1, 12], $V7 = [1, 13], $V8 = [1, 14], $V9 = [1, 15], $Va = [1, 27], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 72], $Vh = [1, 73], $Vi = [1, 74], $Vj = [1, 75], $Vk = [1, 76], $Vl = [1, 77], $Vm = [1, 78], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 50], $VA = [1, 51], $VB = [1, 52], $VC = [1, 53], $VD = [1, 54], $VE = [1, 55], $VF = [1, 56], $VG = [1, 57], $VH = [1, 59], $VI = [1, 60], $VJ = [1, 61], $VK = [1, 62], $VL = [1, 63], $VM = [1, 64], $VN = [1, 65], $VO = [1, 66], $VP = [1, 67], $VQ = [1, 68], $VR = [1, 69], $VS = [24, 52], $VT = [24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VU = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 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], $VV = [1, 94], $VW = [1, 95], $VX = [1, 96], $VY = [1, 97], $VZ = [15, 24, 52], $V_ = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], $V$ = [15, 24, 43, 52], $V01 = [15, 24, 43, 52, 86, 87, 89, 90], $V11 = [15, 43], $V21 = [44, 46, 47, 48, 49, 50, 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];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"direction\": 5, \"directive\": 6, \"direction_tb\": 7, \"direction_bt\": 8, \"direction_rl\": 9, \"direction_lr\": 10, \"graphConfig\": 11, \"openDirective\": 12, \"typeDirective\": 13, \"closeDirective\": 14, \"NEWLINE\": 15, \":\": 16, \"argDirective\": 17, \"open_directive\": 18, \"type_directive\": 19, \"arg_directive\": 20, \"close_directive\": 21, \"C4_CONTEXT\": 22, \"statements\": 23, \"EOF\": 24, \"C4_CONTAINER\": 25, \"C4_COMPONENT\": 26, \"C4_DYNAMIC\": 27, \"C4_DEPLOYMENT\": 28, \"otherStatements\": 29, \"diagramStatements\": 30, \"otherStatement\": 31, \"title\": 32, \"accDescription\": 33, \"acc_title\": 34, \"acc_title_value\": 35, \"acc_descr\": 36, \"acc_descr_value\": 37, \"acc_descr_multiline_value\": 38, \"boundaryStatement\": 39, \"boundaryStartStatement\": 40, \"boundaryStopStatement\": 41, \"boundaryStart\": 42, \"LBRACE\": 43, \"ENTERPRISE_BOUNDARY\": 44, \"attributes\": 45, \"SYSTEM_BOUNDARY\": 46, \"BOUNDARY\": 47, \"CONTAINER_BOUNDARY\": 48, \"NODE\": 49, \"NODE_L\": 50, \"NODE_R\": 51, \"RBRACE\": 52, \"diagramStatement\": 53, \"PERSON\": 54, \"PERSON_EXT\": 55, \"SYSTEM\": 56, \"SYSTEM_DB\": 57, \"SYSTEM_QUEUE\": 58, \"SYSTEM_EXT\": 59, \"SYSTEM_EXT_DB\": 60, \"SYSTEM_EXT_QUEUE\": 61, \"CONTAINER\": 62, \"CONTAINER_DB\": 63, \"CONTAINER_QUEUE\": 64, \"CONTAINER_EXT\": 65, \"CONTAINER_EXT_DB\": 66, \"CONTAINER_EXT_QUEUE\": 67, \"COMPONENT\": 68, \"COMPONENT_DB\": 69, \"COMPONENT_QUEUE\": 70, \"COMPONENT_EXT\": 71, \"COMPONENT_EXT_DB\": 72, \"COMPONENT_EXT_QUEUE\": 73, \"REL\": 74, \"BIREL\": 75, \"REL_U\": 76, \"REL_D\": 77, \"REL_L\": 78, \"REL_R\": 79, \"REL_B\": 80, \"REL_INDEX\": 81, \"UPDATE_EL_STYLE\": 82, \"UPDATE_REL_STYLE\": 83, \"UPDATE_LAYOUT_CONFIG\": 84, \"attribute\": 85, \"STR\": 86, \"STR_KEY\": 87, \"STR_VALUE\": 88, \"ATTRIBUTE\": 89, \"ATTRIBUTE_EMPTY\": 90, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 7: \"direction_tb\", 8: \"direction_bt\", 9: \"direction_rl\", 10: \"direction_lr\", 15: \"NEWLINE\", 16: \":\", 18: \"open_directive\", 19: \"type_directive\", 20: \"arg_directive\", 21: \"close_directive\", 22: \"C4_CONTEXT\", 24: \"EOF\", 25: \"C4_CONTAINER\", 26: \"C4_COMPONENT\", 27: \"C4_DYNAMIC\", 28: \"C4_DEPLOYMENT\", 32: \"title\", 33: \"accDescription\", 34: \"acc_title\", 35: \"acc_title_value\", 36: \"acc_descr\", 37: \"acc_descr_value\", 38: \"acc_descr_multiline_value\", 43: \"LBRACE\", 44: \"ENTERPRISE_BOUNDARY\", 46: \"SYSTEM_BOUNDARY\", 47: \"BOUNDARY\", 48: \"CONTAINER_BOUNDARY\", 49: \"NODE\", 50: \"NODE_L\", 51: \"NODE_R\", 52: \"RBRACE\", 54: \"PERSON\", 55: \"PERSON_EXT\", 56: \"SYSTEM\", 57: \"SYSTEM_DB\", 58: \"SYSTEM_QUEUE\", 59: \"SYSTEM_EXT\", 60: \"SYSTEM_EXT_DB\", 61: \"SYSTEM_EXT_QUEUE\", 62: \"CONTAINER\", 63: \"CONTAINER_DB\", 64: \"CONTAINER_QUEUE\", 65: \"CONTAINER_EXT\", 66: \"CONTAINER_EXT_DB\", 67: \"CONTAINER_EXT_QUEUE\", 68: \"COMPONENT\", 69: \"COMPONENT_DB\", 70: \"COMPONENT_QUEUE\", 71: \"COMPONENT_EXT\", 72: \"COMPONENT_EXT_DB\", 73: \"COMPONENT_EXT_QUEUE\", 74: \"REL\", 75: \"BIREL\", 76: \"REL_U\", 77: \"REL_D\", 78: \"REL_L\", 79: \"REL_R\", 80: \"REL_B\", 81: \"REL_INDEX\", 82: \"UPDATE_EL_STYLE\", 83: \"UPDATE_REL_STYLE\", 84: \"UPDATE_LAYOUT_CONFIG\", 86: \"STR\", 87: \"STR_KEY\", 88: \"STR_VALUE\", 89: \"ATTRIBUTE\", 90: \"ATTRIBUTE_EMPTY\" },\n productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.setDirection(\"TB\");\n break;\n case 5:\n yy.setDirection(\"BT\");\n break;\n case 6:\n yy.setDirection(\"RL\");\n break;\n case 7:\n yy.setDirection(\"LR\");\n break;\n case 11:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 12:\n break;\n case 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 14:\n yy.parseDirective(\"}%%\", \"close_directive\", \"c4Context\");\n break;\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 26:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 27:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 28:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 29:\n case 30:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 35:\n case 36:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 37:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 38:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 39:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.popBoundaryParseStack();\n break;\n case 46:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 59:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 72:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 73:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 74:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 75:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 76:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 77:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 78:\n this.$ = [$$[$0]];\n break;\n case 79:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 80:\n case 82:\n this.$ = $$[$0].trim();\n break;\n case 81:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 83:\n this.$ = \"\";\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: $Va }, o([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, o($VS, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VS, [2, 21]), o($VT, [2, 23], { 15: [1, 88] }), o($VS, [2, 43], { 15: [1, 89] }), o($VU, [2, 26]), o($VU, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, o($VU, [2, 30]), { 45: 92, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 98, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 99, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 100, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 101, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 102, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 103, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 104, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 105, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 106, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 107, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 108, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 109, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 110, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 111, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 112, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 113, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 114, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 115, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 116, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, o($VZ, [2, 66]), { 45: 117, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 118, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 119, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 120, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 121, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 122, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 123, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 124, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 125, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 126, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 127, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 132, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 133, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 134, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 135, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 136, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 137, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, o($V_, [2, 9]), { 14: 142, 21: $Va }, { 21: [2, 13] }, { 1: [2, 15] }, o($VS, [2, 22]), o($VT, [2, 24], { 31: 31, 29: 143, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf }), o($VS, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VU, [2, 28]), o($VU, [2, 29]), o($VZ, [2, 46]), o($V$, [2, 78], { 85: 93, 45: 145, 86: $VV, 87: $VW, 89: $VX, 90: $VY }), o($V01, [2, 80]), { 88: [1, 146] }, o($V01, [2, 82]), o($V01, [2, 83]), o($VZ, [2, 47]), o($VZ, [2, 48]), o($VZ, [2, 49]), o($VZ, [2, 50]), o($VZ, [2, 51]), o($VZ, [2, 52]), o($VZ, [2, 53]), o($VZ, [2, 54]), o($VZ, [2, 55]), o($VZ, [2, 56]), o($VZ, [2, 57]), o($VZ, [2, 58]), o($VZ, [2, 59]), o($VZ, [2, 60]), o($VZ, [2, 61]), o($VZ, [2, 62]), o($VZ, [2, 63]), o($VZ, [2, 64]), o($VZ, [2, 65]), o($VZ, [2, 67]), o($VZ, [2, 68]), o($VZ, [2, 69]), o($VZ, [2, 70]), o($VZ, [2, 71]), o($VZ, [2, 72]), o($VZ, [2, 73]), o($VZ, [2, 74]), o($VZ, [2, 75]), o($VZ, [2, 76]), o($VZ, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, o($V11, [2, 35]), o($V11, [2, 36]), o($V11, [2, 37]), o($V11, [2, 38]), o($V11, [2, 39]), o($V11, [2, 40]), o($V11, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, o($VT, [2, 25]), o($VS, [2, 45]), o($V$, [2, 79]), o($V01, [2, 81]), o($VZ, [2, 31]), o($VZ, [2, 42]), o($V21, [2, 32]), o($V21, [2, 33], { 15: [1, 152] }), o($V_, [2, 10]), o($V21, [2, 34])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 18;\n case 1:\n return 7;\n case 2:\n return 8;\n case 3:\n return 9;\n case 4:\n return 10;\n case 5:\n this.begin(\"type_directive\");\n return 19;\n case 6:\n this.popState();\n this.begin(\"arg_directive\");\n return 16;\n case 7:\n this.popState();\n this.popState();\n return 21;\n case 8:\n return 20;\n case 9:\n return 32;\n case 10:\n return 33;\n case 11:\n this.begin(\"acc_title\");\n return 34;\n case 12:\n this.popState();\n return \"acc_title_value\";\n case 13:\n this.begin(\"acc_descr\");\n return 36;\n case 14:\n this.popState();\n return \"acc_descr_value\";\n case 15:\n this.begin(\"acc_descr_multiline\");\n break;\n case 16:\n this.popState();\n break;\n case 17:\n return \"acc_descr_multiline_value\";\n case 18:\n break;\n case 19:\n c;\n break;\n case 20:\n return 15;\n case 21:\n break;\n case 22:\n return 22;\n case 23:\n return 25;\n case 24:\n return 26;\n case 25:\n return 27;\n case 26:\n return 28;\n case 27:\n this.begin(\"person_ext\");\n return 55;\n case 28:\n this.begin(\"person\");\n return 54;\n case 29:\n this.begin(\"system_ext_queue\");\n return 61;\n case 30:\n this.begin(\"system_ext_db\");\n return 60;\n case 31:\n this.begin(\"system_ext\");\n return 59;\n case 32:\n this.begin(\"system_queue\");\n return 58;\n case 33:\n this.begin(\"system_db\");\n return 57;\n case 34:\n this.begin(\"system\");\n return 56;\n case 35:\n this.begin(\"boundary\");\n return 47;\n case 36:\n this.begin(\"enterprise_boundary\");\n return 44;\n case 37:\n this.begin(\"system_boundary\");\n return 46;\n case 38:\n this.begin(\"container_ext_queue\");\n return 67;\n case 39:\n this.begin(\"container_ext_db\");\n return 66;\n case 40:\n this.begin(\"container_ext\");\n return 65;\n case 41:\n this.begin(\"container_queue\");\n return 64;\n case 42:\n this.begin(\"container_db\");\n return 63;\n case 43:\n this.begin(\"container\");\n return 62;\n case 44:\n this.begin(\"container_boundary\");\n return 48;\n case 45:\n this.begin(\"component_ext_queue\");\n return 73;\n case 46:\n this.begin(\"component_ext_db\");\n return 72;\n case 47:\n this.begin(\"component_ext\");\n return 71;\n case 48:\n this.begin(\"component_queue\");\n return 70;\n case 49:\n this.begin(\"component_db\");\n return 69;\n case 50:\n this.begin(\"component\");\n return 68;\n case 51:\n this.begin(\"node\");\n return 49;\n case 52:\n this.begin(\"node\");\n return 49;\n case 53:\n this.begin(\"node_l\");\n return 50;\n case 54:\n this.begin(\"node_r\");\n return 51;\n case 55:\n this.begin(\"rel\");\n return 74;\n case 56:\n this.begin(\"birel\");\n return 75;\n case 57:\n this.begin(\"rel_u\");\n return 76;\n case 58:\n this.begin(\"rel_u\");\n return 76;\n case 59:\n this.begin(\"rel_d\");\n return 77;\n case 60:\n this.begin(\"rel_d\");\n return 77;\n case 61:\n this.begin(\"rel_l\");\n return 78;\n case 62:\n this.begin(\"rel_l\");\n return 78;\n case 63:\n this.begin(\"rel_r\");\n return 79;\n case 64:\n this.begin(\"rel_r\");\n return 79;\n case 65:\n this.begin(\"rel_b\");\n return 80;\n case 66:\n this.begin(\"rel_index\");\n return 81;\n case 67:\n this.begin(\"update_el_style\");\n return 82;\n case 68:\n this.begin(\"update_rel_style\");\n return 83;\n case 69:\n this.begin(\"update_layout_config\");\n return 84;\n case 70:\n return \"EOF_IN_STRUCT\";\n case 71:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n case 72:\n this.begin(\"attribute\");\n break;\n case 73:\n this.popState();\n this.popState();\n break;\n case 74:\n return 90;\n case 75:\n break;\n case 76:\n return 90;\n case 77:\n this.begin(\"string\");\n break;\n case 78:\n this.popState();\n break;\n case 79:\n return \"STR\";\n case 80:\n this.begin(\"string_kv\");\n break;\n case 81:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n case 82:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 83:\n return \"STR_VALUE\";\n case 84:\n this.popState();\n this.popState();\n break;\n case 85:\n return \"STR\";\n case 86:\n return \"LBRACE\";\n case 87:\n return \"RBRACE\";\n case 88:\n return \"SPACE\";\n case 89:\n return \"EOL\";\n case 90:\n return 24;\n }\n },\n rules: [/^(?:%%\\{)/, /^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:((?:(?!\\}%%)[^:.])*))/, /^(?::)/, /^(?:\\}%%)/, /^(?:((?:(?!\\}%%).|\\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]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [16, 17], \"inclusive\": false }, \"acc_descr\": { \"rules\": [14], \"inclusive\": false }, \"acc_title\": { \"rules\": [12], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [7, 8], \"inclusive\": false }, \"type_directive\": { \"rules\": [6, 7], \"inclusive\": false }, \"open_directive\": { \"rules\": [5], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [83, 84], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [82], \"inclusive\": false }, \"string_kv\": { \"rules\": [81], \"inclusive\": false }, \"string\": { \"rules\": [78, 79], \"inclusive\": false }, \"attribute\": { \"rules\": [73, 74, 75, 76, 77, 80, 85], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"update_el_style\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_b\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_r\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_l\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_d\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_u\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"node_r\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"node_l\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"node\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"component_ext\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"component_queue\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"component_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"component\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container_boundary\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container_ext\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container_queue\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"container\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"birel\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_boundary\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"boundary\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_ext\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_queue\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system_db\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"system\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"person_ext\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"person\": { \"rules\": [70, 71, 72, 73], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 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, 65, 66, 67, 68, 69, 86, 87, 88, 89, 90], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst c4Parser = parser;\nlet c4ShapeArray = [];\nlet boundaryParseStack = [\"\"];\nlet currentBoundaryParse = \"global\";\nlet parentBoundaryParse = \"\";\nlet boundarys = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n];\nlet rels = [];\nlet title = \"\";\nlet wrapEnabled = false;\nlet c4ShapeInRow$1 = 4;\nlet c4BoundaryInRow$1 = 2;\nvar c4Type;\nconst getC4Type = function() {\n return c4Type;\n};\nconst setC4Type = function(c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n};\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst addRel = function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n};\nconst addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n};\nconst addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n};\nconst addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n};\nconst addPersonOrSystemBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addContainerBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst popBoundaryParseStack = function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === void 0) {\n old = boundarys.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n};\nconst updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n};\nconst updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow$1;\n let c4BoundaryInRowValue = c4BoundaryInRow$1;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow$1 = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow$1 = c4BoundaryInRowValue;\n }\n};\nconst getC4ShapeInRow = function() {\n return c4ShapeInRow$1;\n};\nconst getC4BoundaryInRow = function() {\n return c4BoundaryInRow$1;\n};\nconst getCurrentBoundaryParse = function() {\n return currentBoundaryParse;\n};\nconst getParentBoundaryParse = function() {\n return parentBoundaryParse;\n};\nconst getC4ShapeArray = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n};\nconst getC4Shape = function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n};\nconst getC4ShapeKeys = function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n};\nconst getBoundarys = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundarys;\n } else {\n return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n};\nconst getRels = function() {\n return rels;\n};\nconst getTitle = function() {\n return title;\n};\nconst setWrap = function(wrapSetting) {\n wrapEnabled = wrapSetting;\n};\nconst autoWrap = function() {\n return wrapEnabled;\n};\nconst clear = function() {\n c4ShapeArray = [];\n boundarys = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n ];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow$1 = 4;\n c4BoundaryInRow$1 = 2;\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst setTitle = function(txt) {\n let sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n};\nconst c4Db = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n parseDirective,\n getConfig: () => getConfig().c4,\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawImage = function(elem, width, height, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"width\", width);\n imageElem.attr(\"height\", height);\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n let sanitizedLink = link.startsWith(\"data:image/png;base64\") ? link : sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawRels$1 = (elem, rels2, conf2) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (let rel of rels2) {\n let textColor = rel.textColor ? rel.textColor : \"#444444\";\n let strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n let url = \"\";\n if (i === 0) {\n let line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n i = -1;\n } else {\n let line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\"controly\", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n }\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n};\nconst drawBoundary$1 = function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n let fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n let strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n let fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = { \"stroke-width\": 1, \"stroke-dasharray\": \"7.0,7.0\" };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n};\nconst drawC4Shape = function(elem, c4Shape, conf2) {\n var _a;\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + \"_bg_color\"];\n let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + \"_border_color\"];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : \"#FFFFFF\";\n let personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n break;\n case \"external_person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";\n break;\n }\n const c4ShapeElem = elem.append(\"g\");\n c4ShapeElem.attr(\"class\", \"person-man\");\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n case \"system\":\n case \"external_system\":\n case \"container\":\n case \"external_container\":\n case \"component\":\n case \"external_component\":\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.stroke = strokeColor;\n rect.rx = 2.5;\n rect.ry = 2.5;\n rect.attrs = { \"stroke-width\": 0.5 };\n drawRect(c4ShapeElem, rect);\n break;\n case \"system_db\":\n case \"external_system_db\":\n case \"container_db\":\n case \"external_container_db\":\n case \"component_db\":\n case \"external_component_db\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"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\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2).replaceAll(\"height\", c4Shape.height)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2)\n );\n break;\n case \"system_queue\":\n case \"external_system_queue\":\n case \"container_queue\":\n case \"external_container_queue\":\n case \"component_queue\":\n case \"external_component_queue\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"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\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"width\", c4Shape.width).replaceAll(\"half\", c4Shape.height / 2)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\", c4Shape.x + c4Shape.width).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.height / 2)\n );\n break;\n }\n let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);\n c4ShapeElem.append(\"text\").attr(\"fill\", fontColor).attr(\"font-family\", c4ShapeFontConf.fontFamily).attr(\"font-size\", c4ShapeFontConf.fontSize - 2).attr(\"font-style\", \"italic\").attr(\"lengthAdjust\", \"spacing\").attr(\"textLength\", c4Shape.typeC4Shape.width).attr(\"x\", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr(\"y\", c4Shape.y + c4Shape.typeC4Shape.Y).text(\"<<\" + c4Shape.typeC4Shape.text + \">>\");\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n let textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontWeight = \"bold\";\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontColor = fontColor;\n if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.techn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.techn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n }\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n textFontConf = conf2.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n return c4Shape.height;\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.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\");\n};\nconst insertArrowEnd = function(elem) {\n elem.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\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.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\");\n};\nconst insertDynamicNumber = function(elem) {\n elem.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);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.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\");\n marker.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\");\n};\nconst getC4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawBoundary: drawBoundary$1,\n drawC4Shape,\n drawRels: drawRels$1,\n drawImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\nlet globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\nparser.yy = c4Db;\nlet conf = {};\nclass Bounds {\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n}\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst c4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst boundaryFont = (cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;\n c4Shape[textType].width = textLimitWidth;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (const line of lines) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(line, textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(line, textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n }\n }\n}\nconst drawBoundary = function(diagram2, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw.drawBoundary(diagram2, boundary, conf);\n};\nconst drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n let Y = 0;\n for (const c4ShapeKey of c4ShapeKeys) {\n Y = 0;\n const c4Shape = c4ShapeArray2[c4ShapeKey];\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n \"<<\" + c4Shape.typeC4Shape.text + \">>\",\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\"label\", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape[\"label\"].Y = Y + 8;\n Y = c4Shape[\"label\"].Y + c4Shape[\"label\"].height;\n if (c4Shape.type && c4Shape.type.text !== \"\") {\n c4Shape.type.text = \"[\" + c4Shape.type.text + \"]\";\n let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"type\", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);\n c4Shape[\"type\"].Y = Y + 5;\n Y = c4Shape[\"type\"].Y + c4Shape[\"type\"].height;\n } else if (c4Shape.techn && c4Shape.techn.text !== \"\") {\n c4Shape.techn.text = \"[\" + c4Shape.techn.text + \"]\";\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH(\"techn\", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape[\"techn\"].Y = Y + 5;\n Y = c4Shape[\"techn\"].Y + c4Shape[\"techn\"].height;\n }\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"descr\", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape[\"descr\"].Y = Y + 20;\n Y = c4Shape[\"descr\"].Y + c4Shape[\"descr\"].height;\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape[\"descr\"].textLines * 5;\n }\n rectWidth = rectWidth + conf.c4ShapePadding;\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n currentBounds.insert(c4Shape);\n svgDraw.drawC4Shape(diagram2, c4Shape, conf);\n }\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n};\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nlet getIntersectPoint = function(fromNode, endPoint) {\n let x1 = fromNode.x;\n let y1 = fromNode.y;\n let x2 = endPoint.x;\n let y2 = endPoint.y;\n let fromCenterX = x1 + fromNode.width / 2;\n let fromCenterY = y1 + fromNode.height / 2;\n let dx = Math.abs(x1 - x2);\n let dy = Math.abs(y1 - y2);\n let tanDYX = dy / dx;\n let fromDYX = fromNode.height / fromNode.width;\n let returnPoint = null;\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);\n }\n }\n return returnPoint;\n};\nlet getIntersectPoints = function(fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n};\nconst drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels2) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw.drawRels(diagram2, rels2, conf);\n};\nfunction drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n let currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);\n for (let [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"label\"].Y = Y + 8;\n Y = currentBoundary[\"label\"].Y + currentBoundary[\"label\"].height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"type\"].Y = Y + 5;\n Y = currentBoundary[\"type\"].Y + currentBoundary[\"type\"].height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"descr\"].Y = Y + 20;\n Y = currentBoundary[\"descr\"].Y + currentBoundary[\"descr\"].height;\n }\n if (i == 0 || i % c4BoundaryInRow === 0) {\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);\n if (nextCurrentBoundarys.length > 0) {\n drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundarys,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\nconst draw = function(_text, id, _version, diagObj) {\n conf = getConfig().c4;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n let db = diagObj.db;\n diagObj.db.setWrap(conf.wrap);\n c4ShapeInRow = db.getC4ShapeInRow();\n c4BoundaryInRow = db.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n let screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = diagObj.db.getTitle();\n let currentBoundaries = diagObj.db.getBoundarys(\"\");\n drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowEnd(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n let boxHeight = box.stopy - box.starty;\n let height = boxHeight + 2 * conf.diagramMarginY;\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr(\"y\", box.starty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n};\nconst c4Renderer = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary,\n setConf,\n draw\n};\nconst getStyles = (options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`;\nconst c4Styles = getStyles;\nconst diagram = {\n parser: c4Parser,\n db: c4Db,\n renderer: c4Renderer,\n styles: c4Styles,\n init: (cnf) => {\n c4Renderer.setConf(cnf.c4);\n }\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","$V01","$V11","$V21","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","kv","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c2","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","c4Parser","c4ShapeArray","boundaryParseStack","currentBoundaryParse","parentBoundaryParse","boundarys","rels","title","wrapEnabled","c4ShapeInRow$1","c4BoundaryInRow$1","c4Type","getC4Type","setC4Type","c4TypeParam","sanitizeText","getConfig","parseDirective","statement","context","type","mermaidAPI","addRel","from","to","label","techn","descr","sprite","tags","link","rel","old","rel2","key","value","autoWrap","addPersonOrSystem","typeC4Shape","alias","personOrSystem","personOrSystem2","addContainer","container","container2","addComponent","component","component2","addPersonOrSystemBoundary","boundary","boundary2","addContainerBoundary","addDeploymentNode","nodeType","popBoundaryParseStack","updateElStyle","elementName","bgColor","fontColor","borderColor","shadowing","shape","legendText","legendSprite","element","updateRelStyle","textColor","lineColor","offsetX","offsetY","updateLayoutConfig","c4ShapeInRowParam","c4BoundaryInRowParam","c4ShapeInRowValue","c4BoundaryInRowValue","getC4ShapeInRow","getC4BoundaryInRow","getCurrentBoundaryParse","getParentBoundaryParse","getC4ShapeArray","parentBoundary","getC4Shape","getC4ShapeKeys","getBoundarys","getRels","getTitle","setWrap","wrapSetting","clear","LINETYPE","ARROWTYPE","PLACEMENT","setTitle","txt","c4Db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","drawRect","elem","rectData","drawRect$1","drawImage","width","height","x","y","imageElem","sanitizedLink","sanitizeUrl","drawRels$1","rels2","conf2","relsElem","strokeColor","url","line","messageConf","_drawTextCandidateFunc","drawBoundary$1","boundaryElem","fillColor","attrsValue","boundaryConf","drawC4Shape","c4Shape","_a","personImg","c4ShapeElem","rect","getNoteRect","c4ShapeFontConf","getC4ShapeFont","textFontConf","insertDatabaseIcon","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowEnd","insertArrowFilledHead","insertDynamicNumber","insertArrowCrossHead","marker","cnf","byText","content","g","textAttrs","text","_setTextAttrs","byTspan","fontSize","fontFamily","fontWeight","common","dy","byFo","s","toText","fromTextAttrsDict","svgDraw","globalBoundaryMaxX","globalBoundaryMaxY","c4ShapeInRow","c4BoundaryInRow","conf","Bounds","diagObj","setConf","startx","stopx","starty","stopy","obj","val","fun","_startx","_stopx","_starty","_stopy","margin","assignWithDepth","c4ShapeFont","boundaryFont","messageFont","calcC4ShapeTextWH","textType","c4ShapeTextWrap","textConf","textLimitWidth","wrapLabel","calculateTextHeight","lineHeight","calculateTextWidth","drawBoundary","diagram2","bounds","boundaryTextWrap","boundaryLabelConf","drawC4ShapeArray","currentBounds","c4ShapeArray2","c4ShapeKeys","Y","c4ShapeKey","c4ShapeTypeConf","c4ShapeLabelConf","c4ShapeTypeConf2","c4ShapeTechnConf","rectHeight","rectWidth","c4ShapeDescrConf","Point","getIntersectPoint","fromNode","endPoint","x1","y1","x2","y2","fromCenterX","fromCenterY","dx","tanDYX","fromDYX","returnPoint","getIntersectPoints","endNode","endIntersectPoint","startPoint","drawRels","getC4ShapeObj","relTextWrap","relConf","points","drawInsideBoundary","parentBoundaryAlias","parentBounds","currentBoundaries","currentBoundary","currentBoundaryTextWrap","currentBoundaryLabelConf","currentBoundaryTypeConf","currentBoundaryDescrConf","_x","_y","currentPersonOrSystemArray","currentPersonOrSystemKeys","nextCurrentBoundarys","draw","_text","id","_version","securityLevel","sandboxElement","select","root","db","log","screenBounds","title2","box","configureSvgSize","extraVertForTitle","c4Renderer","getStyles","options","c4Styles","diagram"],"mappings":"+PAWA,IAAIA,GAAS,UAAW,CACtB,IAAIC,EAAI,SAASC,GAAGC,EAAGC,EAAIC,EAAG,CAC5B,IAAKD,EAAKA,GAAM,GAAIC,EAAIH,GAAE,OAAQG,IAAKD,EAAGF,GAAEG,CAAC,CAAC,EAAIF,EAChD,CACF,OAAOC,CACR,EAAEE,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAO,CAAC,GAAI,EAAE,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAA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AC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CA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IC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAK,EAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,IAAO,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js b/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js deleted file mode 100644 index fd27f60..0000000 --- a/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js +++ /dev/null @@ -1,2 +0,0 @@ -import{p as N,d as M,s as W}from"./styles-aefe6593-IaILeGot.js";import{c as S,l as d,h as u,i as H}from"./index-jpNTxDe4.js";import{G as X,l as Y}from"./layout-ewywu0M6.js";import{s as l}from"./svgDraw-0fcc813d-8P1J7hc8.js";import"./index-2K3MavtT.js";import"./line-reZX-DPl.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";let h={};const g=20,p=function(e){const s=Object.entries(h).find(k=>k[1].label===e);if(s)return s[0]},Z=function(e){e.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),e.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).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"),e.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).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"),e.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).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"),e.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).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"),e.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).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"),e.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 18,7 L9,13 L14,7 L9,1 Z")},D=function(e,s,k,a){const c=S().class;h={},d.info("Rendering diagram "+e);const L=S().securityLevel;let y;L==="sandbox"&&(y=u("#i"+s));const x=L==="sandbox"?u(y.nodes()[0].contentDocument.body):u("body"),n=x.select(`[id='${s}']`);Z(n);const r=new X({multigraph:!0});r.setGraph({isMultiGraph:!0}),r.setDefaultEdgeLabel(function(){return{}});const m=a.db.getClasses(),$=Object.keys(m);for(const t of $){const o=m[t],i=l.drawClass(n,o,c,a);h[i.id]=i,r.setNode(i.id,i),d.info("Org height: "+i.height)}a.db.getRelations().forEach(function(t){d.info("tjoho"+p(t.id1)+p(t.id2)+JSON.stringify(t)),r.setEdge(p(t.id1),p(t.id2),{relation:t},t.title||"DEFAULT")}),a.db.getNotes().forEach(function(t){d.debug(`Adding note: ${JSON.stringify(t)}`);const o=l.drawNote(n,t,c,a);h[o.id]=o,r.setNode(o.id,o),t.class&&t.class in m&&r.setEdge(t.id,p(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),Y(r),r.nodes().forEach(function(t){t!==void 0&&r.node(t)!==void 0&&(d.debug("Node "+t+": "+JSON.stringify(r.node(t))),x.select("#"+(a.db.lookUpDomId(t)||t)).attr("transform","translate("+(r.node(t).x-r.node(t).width/2)+","+(r.node(t).y-r.node(t).height/2)+" )"))}),r.edges().forEach(function(t){t!==void 0&&r.edge(t)!==void 0&&(d.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(r.edge(t))),l.drawEdge(n,r.edge(t),r.edge(t).relation,c,a))});const f=n.node().getBBox(),E=f.width+g*2,b=f.height+g*2;H(n,b,E,c.useMaxWidth);const w=`${f.x-g} ${f.y-g} ${E} ${b}`;d.debug(`viewBox ${w}`),n.attr("viewBox",w)},B={draw:D},V={parser:N,db:M,renderer:B,styles:W,init:e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,M.clear()}};export{V as diagram}; -//# sourceMappingURL=classDiagram-bc733c3b-nWtrl_HS.js.map diff --git a/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js.map b/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js.map deleted file mode 100644 index 47c4841..0000000 --- a/excalidraw/excalidraw-app/build/assets/classDiagram-bc733c3b-nWtrl_HS.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"classDiagram-bc733c3b-nWtrl_HS.js","sources":["../../../node_modules/mermaid/dist/classDiagram-bc733c3b.js"],"sourcesContent":["import { p as parser, d as db, s as styles } from \"./styles-aefe6593.js\";\nimport { select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as getConfig, l as log, i as configureSvgSize } from \"./mermaid-b0ad2de1.js\";\nimport { s as svgDraw } from \"./svgDraw-0fcc813d.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nlet idCache = {};\nconst padding = 20;\nconst getGraphId = function(label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n if (foundEntry) {\n return foundEntry[0];\n }\n};\nconst insertMarkers = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"extensionStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"extensionEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"compositionStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"compositionEnd\").attr(\"refX\", 19).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"aggregationStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"aggregationEnd\").attr(\"refX\", 19).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).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\");\n elem.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 18,7 L9,13 L14,7 L9,1 Z\");\n};\nconst draw = function(text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n log.info(\"Rendering diagram \" + text);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const g = new graphlib.Graph({\n multigraph: true\n });\n g.setGraph({\n isMultiGraph: true\n });\n g.setDefaultEdgeLabel(function() {\n return {};\n });\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n for (const key of keys) {\n const classDef = classes[key];\n const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n log.info(\"Org height: \" + node.height);\n }\n const relations = diagObj.db.getRelations();\n relations.forEach(function(relation) {\n log.info(\n \"tjoho\" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation\n },\n relation.title || \"DEFAULT\"\n );\n });\n const notes = diagObj.db.getNotes();\n notes.forEach(function(note) {\n log.debug(`Adding note: ${JSON.stringify(note)}`);\n const node = svgDraw.drawNote(diagram2, note, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n if (note.class && note.class in classes) {\n g.setEdge(\n note.id,\n getGraphId(note.class),\n {\n relation: {\n id1: note.id,\n id2: note.class,\n relation: {\n type1: \"none\",\n type2: \"none\",\n lineType: 10\n }\n }\n },\n \"DEFAULT\"\n );\n }\n });\n layout(g);\n g.nodes().forEach(function(v) {\n if (v !== void 0 && g.node(v) !== void 0) {\n log.debug(\"Node \" + v + \": \" + JSON.stringify(g.node(v)));\n root.select(\"#\" + (diagObj.db.lookUpDomId(v) || v)).attr(\n \"transform\",\n \"translate(\" + (g.node(v).x - g.node(v).width / 2) + \",\" + (g.node(v).y - g.node(v).height / 2) + \" )\"\n );\n }\n });\n g.edges().forEach(function(e) {\n if (e !== void 0 && g.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);\n }\n });\n const svgBounds = diagram2.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram2.attr(\"viewBox\", vBox);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"],"names":["idCache","padding","getGraphId","label","foundEntry","entry","insertMarkers","elem","draw","text","id","_version","diagObj","conf","getConfig","log","securityLevel","sandboxElement","select","root","diagram2","g","graphlib.Graph","classes","keys","key","classDef","node","svgDraw","relation","note","layout","v","e","svgBounds","width","height","configureSvgSize","vBox","renderer","diagram","parser","db","styles","cnf"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js b/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js deleted file mode 100644 index 8e8924b..0000000 --- a/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js +++ /dev/null @@ -1,3 +0,0 @@ -import{p as I,d as N,s as M}from"./styles-aefe6593-IaILeGot.js";import{l as p,c,h as w,y as R,t as B,r as D,o as E,p as G,j as _}from"./index-jpNTxDe4.js";import{G as z}from"./layout-ewywu0M6.js";import{r as P}from"./index-a92ac404-gZDUZJdp.js";import"./index-2K3MavtT.js";import"./edges-49ac43a2-VNwnN65b.js";import"./createText-3df630b5-oLWc-GwH.js";import"./svgDraw-0fcc813d-8P1J7hc8.js";import"./line-reZX-DPl.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";const S=s=>_.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const q=function(s,t,y,a){const e=Object.keys(s);p.info("keys:",e),p.info(s),e.forEach(function(i){var l,r;const o=s[i],d={shape:"rect",id:o.id,domId:o.domId,labelText:S(o.id),labelStyle:"",style:"fill: none; stroke: black",padding:((l=c().flowchart)==null?void 0:l.padding)??((r=c().class)==null?void 0:r.padding)};t.setNode(o.id,d),A(o.classes,t,y,a,o.id),p.info("setNode",d)})},A=function(s,t,y,a,e){const i=Object.keys(s);p.info("keys:",i),p.info(s),i.forEach(function(l){var r,o;const n=s[l];let d="";n.cssClasses.length>0&&(d=d+" "+n.cssClasses.join(" "));const f={labelStyle:"",style:""},m=n.label??n.id,b=0,h="class_box",u={labelStyle:f.labelStyle,shape:h,labelText:S(m),classData:n,rx:b,ry:b,class:d,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,e)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((o=c().class)==null?void 0:o.padding)};t.setNode(n.id,u),e&&t.setParent(n.id,e),p.info("setNode",u)})},F=function(s,t,y,a){p.info(s),s.forEach(function(e,i){var l,r;const o=e,n="",d={labelStyle:"",style:""},f=o.text,m=0,b="note",h={labelStyle:d.labelStyle,shape:b,labelText:S(f),noteData:o,rx:m,ry:m,class:n,style:d.style,id:o.id,domId:o.id,tooltip:"",type:"note",padding:((l=c().flowchart)==null?void 0:l.padding)??((r=c().class)==null?void 0:r.padding)};if(t.setNode(o.id,h),p.info("setNode",h),!o.class||!(o.class in a))return;const u=y+i,g={id:`edgeNote${u}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:D(k.curve,E)};t.setEdge(o.id,o.class,g,u)})},H=function(s,t){const y=c().flowchart;let a=0;s.forEach(function(e){var i;a++;const l={classes:"relation",pattern:e.relation.lineType==1?"dashed":"solid",id:"id"+a,arrowhead:e.type==="arrow_open"?"none":"normal",startLabelRight:e.relationTitle1==="none"?"":e.relationTitle1,endLabelLeft:e.relationTitle2==="none"?"":e.relationTitle2,arrowTypeStart:C(e.relation.type1),arrowTypeEnd:C(e.relation.type2),style:"fill:none",labelStyle:"",curve:D(y==null?void 0:y.curve,E)};if(p.info(l,e),e.style!==void 0){const r=G(e.style);l.style=r.style,l.labelStyle=r.labelStyle}e.text=e.title,e.text===void 0?e.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(l.labelType="html",l.label=''+e.text+""):(l.labelType="text",l.label=e.text.replace(_.lineBreakRegex,` -`),e.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,l,a)})},V=function(s){k={...k,...s}},W=async function(s,t,y,a){p.info("Drawing class - ",t);const e=c().flowchart??c().class,i=c().securityLevel;p.info("config:",e);const l=(e==null?void 0:e.nodeSpacing)??50,r=(e==null?void 0:e.rankSpacing)??50,o=new z({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:l,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),d=a.db.getClasses(),f=a.db.getRelations(),m=a.db.getNotes();p.info(f),q(n,o,t,a),A(d,o,t,a),H(f,o),F(m,o,f.length+1,d);let b;i==="sandbox"&&(b=w("#i"+t));const h=i==="sandbox"?w(b.nodes()[0].contentDocument.body):w("body"),u=h.select(`[id="${t}"]`),g=h.select("#"+t+" g");if(await P(g,o,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),R.insertTitle(u,"classTitleText",(e==null?void 0:e.titleTopMargin)??5,a.db.getDiagramTitle()),B(o,u,e==null?void 0:e.diagramPadding,e==null?void 0:e.useMaxWidth),!(e!=null&&e.htmlLabels)){const T=i==="sandbox"?b.nodes()[0].contentDocument:document,$=T.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const x of $){const L=x.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),x.insertBefore(v,x.firstChild)}}};function C(s){let t;switch(s){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const J={setConf:V,draw:W},le={parser:I,db:N,renderer:J,styles:M,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,N.clear()}};export{le as diagram}; -//# sourceMappingURL=classDiagram-v2-8931bdaf-hkLGNE-q.js.map diff --git a/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js.map b/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js.map deleted file mode 100644 index 54b1c95..0000000 --- a/excalidraw/excalidraw-app/build/assets/classDiagram-v2-8931bdaf-hkLGNE-q.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"classDiagram-v2-8931bdaf-hkLGNE-q.js","sources":["../../../node_modules/mermaid/dist/classDiagram-v2-8931bdaf.js"],"sourcesContent":["import { p as parser, d as db, s as styles } from \"./styles-aefe6593.js\";\nimport { select, curveLinear } from \"d3\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { l as log, c as getConfig, u as utils, p as setupGraphViewbox, o as interpolateToCurve, k as getStylesFromArray, e as common } from \"./mermaid-b0ad2de1.js\";\nimport { r as render } from \"./index-a92ac404.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-49ac43a2.js\";\nimport \"./createText-3df630b5.js\";\nimport \"mdast-util-from-markdown\";\nimport \"./svgDraw-0fcc813d.js\";\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\nlet conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n curve: void 0\n};\nconst addNamespaces = function(namespaces, g, _id, diagObj) {\n const keys = Object.keys(namespaces);\n log.info(\"keys:\", keys);\n log.info(namespaces);\n keys.forEach(function(id) {\n var _a, _b;\n const vertex = namespaces[id];\n const shape = \"rect\";\n const node = {\n shape,\n id: vertex.id,\n domId: vertex.domId,\n labelText: sanitizeText(vertex.id),\n labelStyle: \"\",\n style: \"fill: none; stroke: black\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n addClasses(vertex.classes, g, _id, diagObj, vertex.id);\n log.info(\"setNode\", node);\n });\n};\nconst addClasses = function(classes, g, _id, diagObj, parent) {\n const keys = Object.keys(classes);\n log.info(\"keys:\", keys);\n log.info(classes);\n keys.forEach(function(id) {\n var _a, _b;\n const vertex = classes[id];\n let cssClassStr = \"\";\n if (vertex.cssClasses.length > 0) {\n cssClassStr = cssClassStr + \" \" + vertex.cssClasses.join(\" \");\n }\n const styles2 = { labelStyle: \"\", style: \"\" };\n const vertexText = vertex.label ?? vertex.id;\n const radius = 0;\n const shape = \"class_box\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radius,\n ry: radius,\n class: cssClassStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.domId,\n tooltip: diagObj.db.getTooltip(vertex.id, parent) || \"\",\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n if (parent) {\n g.setParent(vertex.id, parent);\n }\n log.info(\"setNode\", node);\n });\n};\nconst addNotes = function(notes, g, startEdgeId, classes) {\n log.info(notes);\n notes.forEach(function(note, i) {\n var _a, _b;\n const vertex = note;\n const cssNoteStr = \"\";\n const styles2 = { labelStyle: \"\", style: \"\" };\n const vertexText = vertex.text;\n const radius = 0;\n const shape = \"note\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n noteData: vertex,\n rx: radius,\n ry: radius,\n class: cssNoteStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.id,\n tooltip: \"\",\n type: \"note\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n log.info(\"setNode\", node);\n if (!vertex.class || !(vertex.class in classes)) {\n return;\n }\n const edgeId = startEdgeId + i;\n const edgeData = {\n id: `edgeNote${edgeId}`,\n //Set relationship style and line type\n classes: \"relation\",\n pattern: \"dotted\",\n // Set link type for rendering\n arrowhead: \"none\",\n //Set edge extra labels\n startLabelRight: \"\",\n endLabelLeft: \"\",\n //Set relation arrow types\n arrowTypeStart: \"none\",\n arrowTypeEnd: \"none\",\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf.curve, curveLinear)\n };\n g.setEdge(vertex.id, vertex.class, edgeData, edgeId);\n });\n};\nconst addRelations = function(relations, g) {\n const conf2 = getConfig().flowchart;\n let cnt = 0;\n relations.forEach(function(edge) {\n var _a;\n cnt++;\n const edgeData = {\n //Set relationship style and line type\n classes: \"relation\",\n pattern: edge.relation.lineType == 1 ? \"dashed\" : \"solid\",\n id: \"id\" + cnt,\n // Set link type for rendering\n arrowhead: edge.type === \"arrow_open\" ? \"none\" : \"normal\",\n //Set edge extra labels\n startLabelRight: edge.relationTitle1 === \"none\" ? \"\" : edge.relationTitle1,\n endLabelLeft: edge.relationTitle2 === \"none\" ? \"\" : edge.relationTitle2,\n //Set relation arrow types\n arrowTypeStart: getArrowMarker(edge.relation.type1),\n arrowTypeEnd: getArrowMarker(edge.relation.type2),\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)\n };\n log.info(edgeData, edge);\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n edgeData.style = styles2.style;\n edgeData.labelStyle = styles2.labelStyle;\n }\n edge.text = edge.title;\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) {\n edgeData.labelType = \"html\";\n edgeData.label = '' + edge.text + \"\";\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\nconst setConf = function(cnf) {\n conf = {\n ...conf,\n ...cnf\n };\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing class - \", id);\n const conf2 = getConfig().flowchart ?? getConfig().class;\n const securityLevel = getConfig().securityLevel;\n log.info(\"config:\", conf2);\n const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;\n const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: diagObj.db.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const namespaces = diagObj.db.getNamespaces();\n const classes = diagObj.db.getClasses();\n const relations = diagObj.db.getRelations();\n const notes = diagObj.db.getNotes();\n log.info(relations);\n addNamespaces(namespaces, g, id, diagObj);\n addClasses(classes, g, id, diagObj);\n addRelations(relations, g);\n addNotes(notes, g, relations.length + 1, classes);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? (\n // @ts-ignore Ignore type error for now\n select(sandboxElement.nodes()[0].contentDocument.body)\n ) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(\n element,\n g,\n [\"aggregation\", \"extension\", \"composition\", \"dependency\", \"lollipop\"],\n \"classDiagram\",\n id\n );\n utils.insertTitle(svg, \"classTitleText\", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);\n if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n};\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = \"aggregation\";\n break;\n case 1:\n marker = \"extension\";\n break;\n case 2:\n marker = \"composition\";\n break;\n case 3:\n marker = \"dependency\";\n break;\n case 4:\n marker = \"lollipop\";\n break;\n default:\n marker = \"none\";\n }\n return marker;\n}\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"],"names":["sanitizeText","txt","common","getConfig","conf","addNamespaces","namespaces","g","_id","diagObj","keys","log","id","_a","_b","vertex","node","addClasses","classes","parent","cssClassStr","styles2","vertexText","radius","shape","addNotes","notes","startEdgeId","note","cssNoteStr","edgeId","edgeData","interpolateToCurve","curveLinear","addRelations","relations","conf2","cnt","edge","getArrowMarker","getStylesFromArray","setConf","cnf","draw","text","_version","securityLevel","nodeSpacing","rankSpacing","graphlib.Graph","sandboxElement","select","root","svg","element","render","utils","setupGraphViewbox","doc","labels","label","dim","rect","type","marker","renderer","diagram","parser","db","styles"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js b/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js deleted file mode 100644 index 75cd957..0000000 --- a/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js +++ /dev/null @@ -1,7 +0,0 @@ -import{l as nt,a4 as At,a6 as zt}from"./index-jpNTxDe4.js";const It={};function Bt(n,r){const t=r||It,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return tt(n,e,u)}function tt(n,r,t){if(Tt(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return qn(n.children,r,t)}return Array.isArray(n)?qn(n,r,t):""}function qn(n,r,t){const e=[];let u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Hn={}.hasOwnProperty;function Lt(n){const r={};let t=-1;for(;++tl))return;const B=r.events.length;let H=B,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=B;kF;){const M=t[P];r.containerState=M[1],M[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Vn(n){if(n===null||Z(n)||qt(n))return 1;if(Rt(n))return 2}function Tn(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);Qn(f,-m),Qn(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Tn(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&I(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||w(k)?n.check(Wn,C,P)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||w(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function P(k){return n.exit("codeFenced"),r(k)}function M(k,B,H){let N=0;return V;function V(z){return k.enter("lineEnding"),k.consume(z),k.exit("lineEnding"),y}function y(z){return k.enter("codeFencedFence"),I(z)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(z):S(z)}function S(z){return z===a?(k.enter("codeFencedFenceSequence"),_(z)):H(z)}function _(z){return z===a?(N++,k.consume(z),_):N>=l?(k.exit("codeFencedFenceSequence"),I(z)?O(k,R,"whitespace")(z):R(z)):H(z)}function R(z){return z===null||w(z)?(k.exit("codeFencedFence"),B(z)):H(z)}}}function ee(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const wn={name:"codeIndented",tokenize:ie},re={tokenize:ue,partial:!0};function ie(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):w(c)?n.attempt(re,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||w(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function ue(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):w(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):w(l)?u(l):t(l)}}const le={name:"codeText",tokenize:se,resolve:ae,previous:oe};function ae(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function lt(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),C(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||w(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function C(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):w(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||w(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!I(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function ot(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):w(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||w(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return w(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):I(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ge={name:"definition",tokenize:de},ke={tokenize:be,partial:!0};function de(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return at.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return lt(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(ke,f,f)(h)}function f(h){return I(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||w(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function be(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return ot(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return I(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||w(a)?r(a):t(a)}}const ye={name:"hardBreakEscape",tokenize:Se};function Se(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return w(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Fe={name:"headingAtx",tokenize:we,resolve:Ee};function Ee(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||w(p)?(n.exit("atxHeading"),r(p)):I(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ce=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Zn=["pre","script","style","textarea"],Ae={name:"htmlFlow",tokenize:Te,resolveTo:Be,concrete:!0},ze={tokenize:Oe,partial:!0},Ie={tokenize:Le,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Te(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,C):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),D):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function C(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),D):t(s)}function D(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Zn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ce.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),D):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return I(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),P):I(s)?(n.consume(s),F):V(s)}function P(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),P):M(s)}function M(s){return s===61?(n.consume(s),k):I(s)?(n.consume(s),M):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,B):I(s)?(n.consume(s),k):H(s)}function B(s){return s===m?(n.consume(s),m=null,N):s===null||w(s)?t(s):(n.consume(s),B)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?M(s):(n.consume(s),H)}function N(s){return s===47||s===62||I(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||w(s)?S(s):I(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),W):s===60&&u===1?(n.consume(s),Q):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):w(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(ze,rn,_)(s)):s===null||w(s)?(n.exit("htmlFlowData"),_(s)):(n.consume(s),S)}function _(s){return n.check(Ie,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),z}function z(s){return s===null||w(s)?_(s):(n.enter("htmlFlowData"),S(s))}function W(s){return s===45?(n.consume(s),o):S(s)}function Q(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Zn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||w(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Le(n,r,t){const e=this;return u;function u(l){return w(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function Oe(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const De={name:"htmlText",tokenize:Pe};function Pe(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),M):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):w(o)?(l=f,Q(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?W(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?C:A):t(o)}function C(o){return o===null?t(o):o===93?(n.consume(o),D):w(o)?(l=C,Q(o)):(n.consume(o),C)}function D(o){return o===93?(n.consume(o),b):C(o)}function b(o){return o===62?W(o):o===93?(n.consume(o),b):C(o)}function j(o){return o===null||o===62?W(o):w(o)?(l=j,Q(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),P):w(o)?(l=F,Q(o)):(n.consume(o),F)}function P(o){return o===62?W(o):F(o)}function M(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):B(o)}function B(o){return w(o)?(l=B,Q(o)):I(o)?(n.consume(o),B):W(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),W):o===58||o===95||nn(o)?(n.consume(o),V):w(o)?(l=N,Q(o)):I(o)?(n.consume(o),N):W(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):w(o)?(l=y,Q(o)):I(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,_):w(o)?(l=S,Q(o)):I(o)?(n.consume(o),S):(n.consume(o),R)}function _(o){return o===u?(n.consume(o),u=void 0,z):o===null?t(o):w(o)?(l=_,Q(o)):(n.consume(o),_)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function z(o){return o===47||o===62||Z(o)?N(o):t(o)}function W(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function Q(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return I(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const On={name:"labelEnd",tokenize:He,resolveTo:qe,resolveAll:Re},_e={tokenize:Ne},Me={tokenize:Ve},je={tokenize:Qe};function Re(n){let r=-1;for(;++r=3&&(c===null||w(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),I(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:Xe,continuation:{tokenize:ve},exit:tr},Je={tokenize:er,partial:!0},Ke={tokenize:nr,partial:!0};function Xe(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Je,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return I(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function ve(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!I(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Ke,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function nr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function tr(n){n.exit(this.containerState.type)}function er(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!I(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Yn={name:"setextUnderline",tokenize:ir,resolveTo:rr};function rr(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ir(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),I(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||w(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const ur={tokenize:lr};function lr(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(he,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const ar={resolveAll:ct()},or=st("string"),sr=st("text");function st(n){return{tokenize:r,resolveAll:ct(n==="text"?cr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function fr(n,r){let t=-1;const e=[];let u;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const zr=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Ir(n){return n.replace(zr,Br)}function Br(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){const u=t.charCodeAt(1),i=u===120||u===88;return ht(t.slice(i?2:1),i?16:10)}return Ln(t)||n}function yn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?Jn(n.position):"start"in n||"end"in n?Jn(n):"line"in n||"column"in n?Bn(n):""}function Bn(n){return Kn(n&&n.line)+":"+Kn(n&&n.column)}function Jn(n){return Bn(n&&n.start)+"-"+Bn(n&&n.end)}function Kn(n){return n&&typeof n=="number"?n:1}const pt={}.hasOwnProperty,ft=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Tr(t)(Ar(wr(t).document().write(Cr()(n,r,!0))))};function Tr(n){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(jn),autolinkProtocol:y,autolinkEmail:y,atxHeading:a(Pn),blockQuote:a(Fn),characterEscape:y,characterReference:y,codeFenced:a(Dn),codeFencedFenceInfo:m,codeFencedFenceMeta:m,codeIndented:a(Dn,m),codeText:a(kt,m),codeTextData:y,data:y,codeFlowValue:y,definition:a(dt),definitionDestinationString:m,definitionLabelString:m,definitionTitleString:m,emphasis:a(bt),hardBreakEscape:a(_n),hardBreakTrailing:a(_n),htmlFlow:a(Mn,m),htmlFlowData:y,htmlText:a(Mn,m),htmlTextData:y,image:a(yt),label:m,link:a(jn),listItem:a(St),listItemValue:A,listOrdered:a(Rn,h),listUnordered:a(Rn),paragraph:a(Ft),reference:hn,referenceString:m,resourceDestinationString:m,resourceTitleString:m,setextHeading:a(Pn),strong:a(Et),thematicBreak:a(Ct)},exit:{atxHeading:p(),atxHeadingSequence:B,autolink:p(),autolinkEmail:mn,autolinkProtocol:fn,blockQuote:p(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:pn,characterReferenceMarkerNumeric:pn,characterReferenceValue:an,codeFenced:p(j),codeFencedFence:b,codeFencedFenceInfo:C,codeFencedFenceMeta:D,codeFlowValue:S,codeIndented:p(F),codeText:p(Q),codeTextData:S,data:S,definition:p(),definitionDestinationString:k,definitionLabelString:P,definitionTitleString:M,emphasis:p(),hardBreakEscape:p(R),hardBreakTrailing:p(R),htmlFlow:p(z),htmlFlowData:S,htmlText:p(W),htmlTextData:S,image:p(en),label:J,labelText:o,lineEnding:_,link:p(G),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:U,resourceDestinationString:rn,resourceTitleString:s,resource:K,setextHeading:p(V),setextHeadingLineSequence:N,setextHeadingText:H,strong:p(),thematicBreak:p()}};mt(r,(n||{}).mdastExtensions||[]);const t={};return e;function e(g){let d={type:"root",children:[]};const E={stack:[d],tokenStack:[],config:r,enter:c,exit:f,buffer:m,resume:x,setData:i,getData:l},T=[];let L=-1;for(;++L0){const X=E.tokenStack[E.tokenStack.length-1];(X[1]||Xn).call(E,void 0,X[0])}for(d.position={start:sn(g.length>0?g[0][1].start:{line:1,column:1,offset:0}),end:sn(g.length>0?g[g.length-2][1].end:{line:1,column:1,offset:0})},L=-1;++L{p!==0&&(u++,e.push([])),c.split(" ").forEach(f=>{f&&e[u].push({content:f,type:a})})}):(l.type==="strong"||l.type==="emphasis")&&l.children.forEach(m=>{i(m,l.type)})}return t.forEach(l=>{l.type==="paragraph"&&l.children.forEach(a=>{i(a)})}),e}function Pr(n){const{children:r}=ft(n);function t(e){return e.type==="text"?e.value.replace(/\n/g,"
    "):e.type==="strong"?`${e.children.map(t).join("")}`:e.type==="emphasis"?`${e.children.map(t).join("")}`:e.type==="paragraph"?`

    ${e.children.map(t).join("")}

    `:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function _r(n,r){r&&n.attr("style",r)}function Mr(n,r,t,e,u=!1){const i=n.append("foreignObject"),l=i.append("xhtml:div"),a=r.label,m=r.isNode?"nodeLabel":"edgeLabel";l.html(` - "+a+""),_r(l,r.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("max-width",t+"px"),l.attr("xmlns","http://www.w3.org/1999/xhtml"),u&&l.attr("class","labelBkg");let c=l.node().getBoundingClientRect();return c.width===t&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",t+"px"),c=l.node().getBoundingClientRect()),i.style("width",c.width),i.style("height",c.height),i.node()}function xt(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function vn(n,r,t){const e=n.append("text"),u=xt(e,1,r);gt(u,[{content:t,type:"normal"}]);const i=u.node().getComputedTextLength();return e.remove(),i}function jr(n,r,t,e=!1){const i=r.append("g");let l=i.insert("rect").attr("class","background");const a=i.append("text").attr("y","-10.1");let m=0;if(t.forEach(c=>{let p=c.map(C=>C.content).join(" "),f="",x=[],h=0;if(vn(i,1.1,p)<=n)x.push(p);else{for(let C=0;C<=p.length;C++)if(f=p.slice(h,C),nt.info(f,h,C),vn(i,1.1,f)>n){const b=p.slice(h,C).lastIndexOf(" ");b>-1&&(C=h+b+1),x.push(p.slice(h,C).trim()),h=C,f=null}f!=null&&x.push(f)}const A=x.map(C=>({content:C,type:c.type}));for(const C of A){let D=xt(a,m,1.1);gt(D,[C]),m++}}),e){const c=a.node().getBBox(),p=2;return l.attr("x",-p).attr("y",-p).attr("width",c.width+2*p).attr("height",c.height+2*p),i.node()}else return a.node()}function gt(n,r){n.text(""),r.forEach((t,e)=>{const u=n.append("tspan").attr("font-style",t.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?u.text(t.content):u.text(" "+t.content)})}const qr=(n,r="",{style:t="",isTitle:e=!1,classes:u="",useHtmlLabels:i=!0,isNode:l=!0,width:a,addSvgBackground:m=!1}={})=>{if(nt.info("createText",r,t,e,u,i,l,m),i){const c=Pr(r),p={isNode:l,label:At(c).replace(/fa[blrs]?:fa-[\w-]+/g,x=>``),labelStyle:t.replace("fill:","color:")};return Mr(n,p,a,u,m)}else{const c=Dr(r);return jr(a,n,c,m)}};export{qr as c}; -//# sourceMappingURL=createText-3df630b5-oLWc-GwH.js.map diff --git a/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js.map b/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js.map deleted file mode 100644 index adf78c1..0000000 --- a/excalidraw/excalidraw-app/build/assets/createText-3df630b5-oLWc-GwH.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"createText-3df630b5-oLWc-GwH.js","sources":["../../../node_modules/mdast-util-to-string/lib/index.js","../../../node_modules/micromark-util-chunked/index.js","../../../node_modules/micromark-util-combine-extensions/index.js","../../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../../../node_modules/micromark-util-character/index.js","../../../node_modules/micromark-factory-space/index.js","../../../node_modules/micromark/lib/initialize/content.js","../../../node_modules/micromark/lib/initialize/document.js","../../../node_modules/micromark-util-classify-character/index.js","../../../node_modules/micromark-util-resolve-all/index.js","../../../node_modules/micromark-core-commonmark/lib/attention.js","../../../node_modules/micromark-core-commonmark/lib/autolink.js","../../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../../node_modules/decode-named-character-reference/index.dom.js","../../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../../node_modules/micromark-core-commonmark/lib/code-text.js","../../../node_modules/micromark-util-subtokenize/index.js","../../../node_modules/micromark-core-commonmark/lib/content.js","../../../node_modules/micromark-factory-destination/index.js","../../../node_modules/micromark-factory-label/index.js","../../../node_modules/micromark-factory-title/index.js","../../../node_modules/micromark-factory-whitespace/index.js","../../../node_modules/micromark-util-normalize-identifier/index.js","../../../node_modules/micromark-core-commonmark/lib/definition.js","../../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../node_modules/micromark-util-html-tag-name/index.js","../../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../../node_modules/micromark-core-commonmark/lib/html-text.js","../../../node_modules/micromark-core-commonmark/lib/label-end.js","../../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../node_modules/micromark-core-commonmark/lib/list.js","../../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../node_modules/micromark/lib/initialize/flow.js","../../../node_modules/micromark/lib/initialize/text.js","../../../node_modules/micromark/lib/create-tokenizer.js","../../../node_modules/micromark/lib/constructs.js","../../../node_modules/micromark/lib/parse.js","../../../node_modules/micromark/lib/preprocess.js","../../../node_modules/micromark/lib/postprocess.js","../../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../node_modules/micromark-util-decode-string/index.js","../../../node_modules/unist-util-stringify-position/lib/index.js","../../../node_modules/mdast-util-from-markdown/lib/index.js","../../../node_modules/mermaid/dist/createText-3df630b5.js"],"sourcesContent":["/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * @param {Array} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array} */\n let parameters\n /** @type {Array} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array} events\n * @param {number} eventIndex\n * @returns {Record}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record} */\n const gaps = {}\n /** @type {Array} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n *
    \n * b>\n * \n * \n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (``).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | \n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * .\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | &<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | \n * ^^\n * > | \n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | \n ),\n});\n","import {\n isTextElement,\n isExcalidrawElement,\n redrawTextBoundingBox,\n} from \"../element\";\nimport { CODES, KEYS } from \"../keys\";\nimport { t } from \"../i18n\";\nimport { register } from \"./register\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport {\n DEFAULT_FONT_SIZE,\n DEFAULT_FONT_FAMILY,\n DEFAULT_TEXT_ALIGN,\n} from \"../constants\";\nimport {\n getBoundTextElement,\n getDefaultLineHeight,\n} from \"../element/textElement\";\nimport {\n hasBoundTextElement,\n canApplyRoundnessTypeToElement,\n getDefaultRoundnessTypeForElement,\n isFrameLikeElement,\n isArrowElement,\n} from \"../element/typeChecks\";\nimport { getSelectedElements } from \"../scene\";\nimport { ExcalidrawTextElement } from \"../element/types\";\n\n// `copiedStyles` is exported only for tests.\nexport let copiedStyles: string = \"{}\";\n\nexport const actionCopyStyles = register({\n name: \"copyStyles\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState, formData, app) => {\n const elementsCopied = [];\n const element = elements.find((el) => appState.selectedElementIds[el.id]);\n elementsCopied.push(element);\n if (element && hasBoundTextElement(element)) {\n const boundTextElement = getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n );\n elementsCopied.push(boundTextElement);\n }\n if (element) {\n copiedStyles = JSON.stringify(elementsCopied);\n }\n return {\n appState: {\n ...appState,\n toast: { message: t(\"toast.copyStyles\") },\n },\n commitToHistory: false,\n };\n },\n contextItemLabel: \"labels.copyStyles\",\n keyTest: (event) =>\n event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.C,\n});\n\nexport const actionPasteStyles = register({\n name: \"pasteStyles\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState, formData, app) => {\n const elementsCopied = JSON.parse(copiedStyles);\n const pastedElement = elementsCopied[0];\n const boundTextElement = elementsCopied[1];\n if (!isExcalidrawElement(pastedElement)) {\n return { elements, commitToHistory: false };\n }\n\n const selectedElements = getSelectedElements(elements, appState, {\n includeBoundTextElement: true,\n });\n const selectedElementIds = selectedElements.map((element) => element.id);\n return {\n elements: elements.map((element) => {\n if (selectedElementIds.includes(element.id)) {\n let elementStylesToCopyFrom = pastedElement;\n if (isTextElement(element) && element.containerId) {\n elementStylesToCopyFrom = boundTextElement;\n }\n if (!elementStylesToCopyFrom) {\n return element;\n }\n let newElement = newElementWith(element, {\n backgroundColor: elementStylesToCopyFrom?.backgroundColor,\n strokeWidth: elementStylesToCopyFrom?.strokeWidth,\n strokeColor: elementStylesToCopyFrom?.strokeColor,\n strokeStyle: elementStylesToCopyFrom?.strokeStyle,\n fillStyle: elementStylesToCopyFrom?.fillStyle,\n opacity: elementStylesToCopyFrom?.opacity,\n roughness: elementStylesToCopyFrom?.roughness,\n roundness: elementStylesToCopyFrom.roundness\n ? canApplyRoundnessTypeToElement(\n elementStylesToCopyFrom.roundness.type,\n element,\n )\n ? elementStylesToCopyFrom.roundness\n : getDefaultRoundnessTypeForElement(element)\n : null,\n });\n\n if (isTextElement(newElement)) {\n const fontSize =\n (elementStylesToCopyFrom as ExcalidrawTextElement).fontSize ||\n DEFAULT_FONT_SIZE;\n const fontFamily =\n (elementStylesToCopyFrom as ExcalidrawTextElement).fontFamily ||\n DEFAULT_FONT_FAMILY;\n newElement = newElementWith(newElement, {\n fontSize,\n fontFamily,\n textAlign:\n (elementStylesToCopyFrom as ExcalidrawTextElement).textAlign ||\n DEFAULT_TEXT_ALIGN,\n lineHeight:\n (elementStylesToCopyFrom as ExcalidrawTextElement).lineHeight ||\n getDefaultLineHeight(fontFamily),\n });\n let container = null;\n if (newElement.containerId) {\n container =\n selectedElements.find(\n (element) =>\n isTextElement(newElement) &&\n element.id === newElement.containerId,\n ) || null;\n }\n redrawTextBoundingBox(\n newElement,\n container,\n app.scene.getNonDeletedElementsMap(),\n );\n }\n\n if (\n newElement.type === \"arrow\" &&\n isArrowElement(elementStylesToCopyFrom)\n ) {\n newElement = newElementWith(newElement, {\n startArrowhead: elementStylesToCopyFrom.startArrowhead,\n endArrowhead: elementStylesToCopyFrom.endArrowhead,\n });\n }\n\n if (isFrameLikeElement(element)) {\n newElement = newElementWith(newElement, {\n roundness: null,\n backgroundColor: \"transparent\",\n });\n }\n\n return newElement;\n }\n return element;\n }),\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.pasteStyles\",\n keyTest: (event) =>\n event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.V,\n});\n","import { HamburgerMenuIcon, palette } from \"../components/icons\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { t } from \"../i18n\";\nimport { showSelectedShapeActions, getNonDeletedElements } from \"../element\";\nimport { register } from \"./register\";\nimport { KEYS } from \"../keys\";\n\nexport const actionToggleCanvasMenu = register({\n name: \"toggleCanvasMenu\",\n trackEvent: { category: \"menu\" },\n perform: (_, appState) => ({\n appState: {\n ...appState,\n openMenu: appState.openMenu === \"canvas\" ? null : \"canvas\",\n },\n commitToHistory: false,\n }),\n PanelComponent: ({ appState, updateData }) => (\n \n ),\n});\n\nexport const actionToggleEditMenu = register({\n name: \"toggleEditMenu\",\n trackEvent: { category: \"menu\" },\n perform: (_elements, appState) => ({\n appState: {\n ...appState,\n openMenu: appState.openMenu === \"shape\" ? null : \"shape\",\n },\n commitToHistory: false,\n }),\n PanelComponent: ({ elements, appState, updateData }) => (\n \n ),\n});\n\nexport const actionShortcuts = register({\n name: \"toggleShortcuts\",\n viewMode: true,\n trackEvent: { category: \"menu\", action: \"toggleHelpDialog\" },\n perform: (_elements, appState, _, { focusContainer }) => {\n if (appState.openDialog?.name === \"help\") {\n focusContainer();\n }\n return {\n appState: {\n ...appState,\n openDialog:\n appState.openDialog?.name === \"help\"\n ? null\n : {\n name: \"help\",\n },\n },\n commitToHistory: false,\n };\n },\n keyTest: (event) => event.key === KEYS.QUESTION_MARK,\n});\n","import { KEYS } from \"../keys\";\nimport { t } from \"../i18n\";\nimport { arrayToMap, getShortcutKey } from \"../utils\";\nimport { register } from \"./register\";\nimport { UngroupIcon, GroupIcon } from \"../components/icons\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport { isSomeElementSelected } from \"../scene\";\nimport {\n getSelectedGroupIds,\n selectGroup,\n selectGroupsForSelectedElements,\n getElementsInGroup,\n addToGroup,\n removeFromSelectedGroups,\n isElementInGroup,\n} from \"../groups\";\nimport { getNonDeletedElements } from \"../element\";\nimport { randomId } from \"../random\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { ExcalidrawElement, ExcalidrawTextElement } from \"../element/types\";\nimport { AppClassProperties, AppState } from \"../types\";\nimport { isBoundToContainer } from \"../element/typeChecks\";\nimport {\n getElementsInResizingFrame,\n getFrameLikeElements,\n groupByFrameLikes,\n removeElementsFromFrame,\n replaceAllElementsInFrame,\n} from \"../frame\";\n\nconst allElementsInSameGroup = (elements: readonly ExcalidrawElement[]) => {\n if (elements.length >= 2) {\n const groupIds = elements[0].groupIds;\n for (const groupId of groupIds) {\n if (\n elements.reduce(\n (acc, element) => acc && isElementInGroup(element, groupId),\n true,\n )\n ) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst enableActionGroup = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n app: AppClassProperties,\n) => {\n const selectedElements = app.scene.getSelectedElements({\n selectedElementIds: appState.selectedElementIds,\n includeBoundTextElement: true,\n });\n return (\n selectedElements.length >= 2 && !allElementsInSameGroup(selectedElements)\n );\n};\n\nexport const actionGroup = register({\n name: \"group\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState, _, app) => {\n const selectedElements = app.scene.getSelectedElements({\n selectedElementIds: appState.selectedElementIds,\n includeBoundTextElement: true,\n });\n if (selectedElements.length < 2) {\n // nothing to group\n return { appState, elements, commitToHistory: false };\n }\n // if everything is already grouped into 1 group, there is nothing to do\n const selectedGroupIds = getSelectedGroupIds(appState);\n if (selectedGroupIds.length === 1) {\n const selectedGroupId = selectedGroupIds[0];\n const elementIdsInGroup = new Set(\n getElementsInGroup(elements, selectedGroupId).map(\n (element) => element.id,\n ),\n );\n const selectedElementIds = new Set(\n selectedElements.map((element) => element.id),\n );\n const combinedSet = new Set([\n ...Array.from(elementIdsInGroup),\n ...Array.from(selectedElementIds),\n ]);\n if (combinedSet.size === elementIdsInGroup.size) {\n // no incremental ids in the selected ids\n return { appState, elements, commitToHistory: false };\n }\n }\n\n let nextElements = [...elements];\n\n // this includes the case where we are grouping elements inside a frame\n // and elements outside that frame\n const groupingElementsFromDifferentFrames =\n new Set(selectedElements.map((element) => element.frameId)).size > 1;\n // when it happens, we want to remove elements that are in the frame\n // and are going to be grouped from the frame (mouthful, I know)\n if (groupingElementsFromDifferentFrames) {\n const frameElementsMap = groupByFrameLikes(selectedElements);\n\n frameElementsMap.forEach((elementsInFrame, frameId) => {\n removeElementsFromFrame(\n elementsInFrame,\n app.scene.getNonDeletedElementsMap(),\n );\n });\n }\n\n const newGroupId = randomId();\n const selectElementIds = arrayToMap(selectedElements);\n\n nextElements = nextElements.map((element) => {\n if (!selectElementIds.get(element.id)) {\n return element;\n }\n return newElementWith(element, {\n groupIds: addToGroup(\n element.groupIds,\n newGroupId,\n appState.editingGroupId,\n ),\n });\n });\n // keep the z order within the group the same, but move them\n // to the z order of the highest element in the layer stack\n const elementsInGroup = getElementsInGroup(nextElements, newGroupId);\n const lastElementInGroup = elementsInGroup[elementsInGroup.length - 1];\n const lastGroupElementIndex = nextElements.lastIndexOf(lastElementInGroup);\n const elementsAfterGroup = nextElements.slice(lastGroupElementIndex + 1);\n const elementsBeforeGroup = nextElements\n .slice(0, lastGroupElementIndex)\n .filter(\n (updatedElement) => !isElementInGroup(updatedElement, newGroupId),\n );\n nextElements = [\n ...elementsBeforeGroup,\n ...elementsInGroup,\n ...elementsAfterGroup,\n ];\n\n return {\n appState: {\n ...appState,\n ...selectGroup(\n newGroupId,\n { ...appState, selectedGroupIds: {} },\n getNonDeletedElements(nextElements),\n ),\n },\n elements: nextElements,\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.group\",\n predicate: (elements, appState, _, app) =>\n enableActionGroup(elements, appState, app),\n keyTest: (event) =>\n !event.shiftKey && event[KEYS.CTRL_OR_CMD] && event.key === KEYS.G,\n PanelComponent: ({ elements, appState, updateData, app }) => (\n
    \n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | \n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","import { l as log, H as decodeEntities } from \"./mermaid-b0ad2de1.js\";\nimport { fromMarkdown } from \"mdast-util-from-markdown\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown) {\n const withoutMultipleNewlines = markdown.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n return withoutExtraSpaces;\n}\nfunction markdownToLines(markdown) {\n const preprocessedMarkdown = preprocessMarkdown(markdown);\n const { children } = fromMarkdown(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.value.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"emphasis\") {\n node.children.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n }\n }\n children.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.children.forEach((contentNode) => {\n processNode(contentNode);\n });\n }\n });\n return lines;\n}\nfunction markdownToHTML(markdown) {\n const { children } = fromMarkdown(markdown);\n function output(node) {\n if (node.type === \"text\") {\n return node.value.replace(/\\n/g, \"
    \");\n } else if (node.type === \"strong\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"emphasis\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

    ${node.children.map(output).join(\"\")}

    `;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n return children.map(output).join(\"\");\n}\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n `\n \" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"max-width\", width + \"px\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n fo.style(\"width\", bbox.width);\n fo.style(\"height\", bbox.height);\n return fo.node();\n}\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\nfunction computeWidthOfText(parentNode, lineHeight, text) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n let bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n structuredText.forEach((line) => {\n let fullStr = line.map((data) => data.content).join(\" \");\n let tempStr = \"\";\n let linesUnderWidth = [];\n let prevIndex = 0;\n if (computeWidthOfText(labelGroup, lineHeight, fullStr) <= width) {\n linesUnderWidth.push(fullStr);\n } else {\n for (let i = 0; i <= fullStr.length; i++) {\n tempStr = fullStr.slice(prevIndex, i);\n log.info(tempStr, prevIndex, i);\n if (computeWidthOfText(labelGroup, lineHeight, tempStr) > width) {\n const subStr = fullStr.slice(prevIndex, i);\n const lastSpaceIndex = subStr.lastIndexOf(\" \");\n if (lastSpaceIndex > -1) {\n i = prevIndex + lastSpaceIndex + 1;\n }\n linesUnderWidth.push(fullStr.slice(prevIndex, i).trim());\n prevIndex = i;\n tempStr = null;\n }\n }\n if (tempStr != null) {\n linesUnderWidth.push(tempStr);\n }\n }\n const preparedLines = linesUnderWidth.map((w) => ({ content: w, type: line.type }));\n for (const preparedLine of preparedLines) {\n let tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, [preparedLine]);\n lineIndex++;\n }\n });\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", -padding).attr(\"y\", -padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"em\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\nconst createText = (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width,\n addSvgBackground = false\n} = {}) => {\n log.info(\"createText\", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text);\n const node = {\n isNode,\n label: decodeEntities(htmlText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const structuredText = markdownToLines(text);\n const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);\n return svgLabel;\n }\n};\nexport {\n createText as c\n};\n"],"names":["emptyOptions","toString","value","options","settings","includeImageAlt","includeHtml","one","node","all","values","result","index","splice","list","start","remove","items","end","chunkStart","parameters","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","code","constructs","existing","before","unicodePunctuationRegex","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","check","factorySpace","effects","ok","type","max","limit","size","prefix","content","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","token","data","document","initializeDocument","containerConstruct","tokenizeContainer","self","stack","continued","childFlow","childToken","lineStartOffset","item","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","point","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","eof","stream","seen","entry","nok","classifyCharacter","resolveAll","events","context","called","resolve","attention","tokenizeAttention","resolveAllAttention","open","group","text","openingSequence","closingSequence","use","nextEvents","offset","movePoint","attentionMarkers","marker","inside","after","close","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","next","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","exit","state","contStart","contBefore","characterEscape","tokenizeCharacterEscape","element","decodeNamedCharacterReference","characterReference","char","tokenizeCharacterReference","test","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","info","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","enter","between","subtokenize","jumps","event","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","adjust","breaks","slice","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","escape","factoryWhitespace","normalizeIdentifier","definition","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","tokenizeHtmlFlow","resolveToHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","buffer","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","tagName","commentOpenInside","cdataOpenInside","continuation","slash","name","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","heading","paragraph","flow","initializeFlow","initial","atBlankEnding","afterConstruct","resolver","createResolver","string","initializeFactory","field","initializeText","resolveAllLineSuffixes","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","createTokenizer","parser","initialize","from","columnStart","resolveAllConstructs","consume","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","sliceStream","sliceSerialize","now","defineSkip","write","main","addResult","expandTabs","serializeChunks","sliceChunks","line","column","_index","_bufferIndex","accountForPotentialSkip","chunkIndex","go","fields","construct","_","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","map","def","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","head","atTab","contentInitial","flowInitial","insideSpan","resolveText","disable","parse","defaultConstructs","create","creator","search","preprocess","atCarriageReturn","preprocessor","encoding","match","endPosition","postprocess","decodeNumericCharacterReference","base","characterEscapeOrReference","decodeString","decode","$0","$1","$2","hex","stringifyPosition","position","pos","own","fromMarkdown","compiler","config","opener","link","onenterdata","codeFlow","emphasis","hardBreak","html","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","tree","resume","setData","getData","listStack","prepareList","handler","defaultOnError","length","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","key","and","errorHandler","onExitError","ancestor","depth","referenceType","fragment","children","d","combined","preprocessMarkdown","markdown","withoutMultipleNewlines","dedent","markdownToLines","preprocessedMarkdown","lines","currentLine","processNode","parentType","textLine","word","contentNode","treeNode","markdownToHTML","output","applyStyle","dom","styleFn","addHtmlSpan","width","classes","addBackground","fo","div","labelClass","bbox","createTspan","textElement","lineHeight","computeWidthOfText","parentNode","testElement","testSpan","updateTextContentAndStyles","textLength","createFormattedText","g","structuredText","labelGroup","bkg","fullStr","tempStr","linesUnderWidth","prevIndex","i","log","lastSpaceIndex","preparedLines","w","preparedLine","tspan","padding","wrappedLine","innerTspan","createText","el","style","isTitle","useHtmlLabels","isNode","addSvgBackground","decodeEntities","s"],"mappings":"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","x_google_ignoreList":[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,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]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js b/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js deleted file mode 100644 index d0fe3a6..0000000 --- a/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js +++ /dev/null @@ -1,2 +0,0 @@ -var y=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((s,l)=>{const r=document.createElement("input");r.type="file",r.webkitdirectory=!0;const a=t=>{typeof i=="function"&&i(),s(t)},i=e[0].legacySetup&&e[0].legacySetup(a,()=>i(l),r);r.addEventListener("change",()=>{let t=Array.from(r.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(c=>c.webkitRelativePath.split("/").every(n=>!e[0].skipDirectory({name:n,kind:"directory"})))):t=t.filter(c=>c.webkitRelativePath.split("/").length===2),a(t)}),r.click()}));export{y as default}; -//# sourceMappingURL=directory-open-01563666-cQgJ4y3t.js.map diff --git a/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js.map b/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js.map deleted file mode 100644 index b47e93d..0000000 --- a/excalidraw/excalidraw-app/build/assets/directory-open-01563666-cQgJ4y3t.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"directory-open-01563666-cQgJ4y3t.js","sources":["../../../node_modules/browser-fs-access/dist/directory-open-01563666.js"],"sourcesContent":["var e=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((t,r)=>{const i=document.createElement(\"input\");i.type=\"file\",i.webkitdirectory=!0;const c=e=>{\"function\"==typeof a&&a(),t(e)},a=e[0].legacySetup&&e[0].legacySetup(c,()=>a(r),i);i.addEventListener(\"change\",()=>{let t=Array.from(i.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(t=>t.webkitRelativePath.split(\"/\").every(t=>!e[0].skipDirectory({name:t,kind:\"directory\"})))):t=t.filter(e=>2===e.webkitRelativePath.split(\"/\").length),c(t)}),i.click()}));export{e as default};\n"],"names":["e","t","r","i","c","a"],"mappings":"AAAG,IAACA,EAAE,MAAM,EAAE,CAAC,CAAA,CAAE,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,QAAQ,CAACC,EAAEC,IAAI,CAAC,MAAMC,EAAE,SAAS,cAAc,OAAO,EAAEA,EAAE,KAAK,OAAOA,EAAE,gBAAgB,GAAG,MAAMC,EAAEJ,GAAG,CAAa,OAAOK,GAAnB,YAAsBA,EAAG,EAACJ,EAAED,CAAC,CAAC,EAAEK,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAYD,EAAE,IAAIC,EAAEH,CAAC,EAAEC,CAAC,EAAEA,EAAE,iBAAiB,SAAS,IAAI,CAAC,IAAI,EAAE,MAAM,KAAKA,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,OAAOF,GAAGA,EAAE,mBAAmB,MAAM,GAAG,EAAE,MAAMA,GAAG,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,KAAKA,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,OAAOD,GAAOA,EAAE,mBAAmB,MAAM,GAAG,EAAE,SAApC,CAA0C,EAAEI,EAAE,CAAC,CAAC,CAAC,EAAED,EAAE,MAAO,CAAA,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js b/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js deleted file mode 100644 index 5703adc..0000000 --- a/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js +++ /dev/null @@ -1,2 +0,0 @@ -function l(e){function i(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then(function(s){return{value:s,done:n}})}return l=function(r){this.s=r,this.n=r.next},l.prototype={s:null,n:null,next:function(){return i(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return n===void 0?Promise.resolve({value:r,done:!0}):i(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return n===void 0?Promise.reject(r):i(n.apply(this.s,arguments))}},new l(e)}const p=async(e,i,r=e.name,n)=>{const s=[],f=[];var v,c=!1,d=!1;try{for(var h,y=function(t){var o,a,u,w=2;for(typeof Symbol<"u"&&(a=Symbol.asyncIterator,u=Symbol.iterator);w--;){if(a&&(o=t[a])!=null)return o.call(t);if(u&&(o=t[u])!=null)return new l(o.call(t));a="@@asyncIterator",u="@@iterator"}throw new TypeError("Object is not async iterable")}(e.values());c=!(h=await y.next()).done;c=!1){const t=h.value,o=`${r}/${t.name}`;t.kind==="file"?f.push(t.getFile().then(a=>(a.directoryHandle=e,a.handle=t,Object.defineProperty(a,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>o})))):t.kind!=="directory"||!i||n&&n(t)||s.push(p(t,i,o,n))}}catch(t){d=!0,v=t}finally{try{c&&y.return!=null&&await y.return()}finally{if(d)throw v}}return[...(await Promise.all(s)).flat(),...await Promise.all(f)]};var m=async(e={})=>{e.recursive=e.recursive||!1;const i=await window.showDirectoryPicker({id:e.id,startIn:e.startIn});return p(i,e.recursive,void 0,e.skipDirectory)};export{m as default}; -//# sourceMappingURL=directory-open-4ed118d0-LU9zN15H.js.map diff --git a/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js.map b/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js.map deleted file mode 100644 index 07f2704..0000000 --- a/excalidraw/excalidraw-app/build/assets/directory-open-4ed118d0-LU9zN15H.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"directory-open-4ed118d0-LU9zN15H.js","sources":["../../../node_modules/browser-fs-access/dist/directory-open-4ed118d0.js"],"sourcesContent":["function e(r){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+\" is not an object.\"));var r=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:r}})}return e=function(e){this.s=e,this.n=e.next},e.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new e(r)}const r=async(t,n,i=t.name,a)=>{const o=[],l=[];var s,u=!1,c=!1;try{for(var y,f=function(r){var t,n,i,a=2;for(\"undefined\"!=typeof Symbol&&(n=Symbol.asyncIterator,i=Symbol.iterator);a--;){if(n&&null!=(t=r[n]))return t.call(r);if(i&&null!=(t=r[i]))return new e(t.call(r));n=\"@@asyncIterator\",i=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}(t.values());u=!(y=await f.next()).done;u=!1){const e=y.value,s=`${i}/${e.name}`;\"file\"===e.kind?l.push(e.getFile().then(r=>(r.directoryHandle=t,r.handle=e,Object.defineProperty(r,\"webkitRelativePath\",{configurable:!0,enumerable:!0,get:()=>s})))):\"directory\"!==e.kind||!n||a&&a(e)||o.push(r(e,n,s,a))}}catch(e){c=!0,s=e}finally{try{u&&null!=f.return&&await f.return()}finally{if(c)throw s}}return[...(await Promise.all(o)).flat(),...await Promise.all(l)]};var t=async(e={})=>{e.recursive=e.recursive||!1;const t=await window.showDirectoryPicker({id:e.id,startIn:e.startIn});return r(t,e.recursive,void 0,e.skipDirectory)};export{t as default};\n"],"names":["e","r","t","n","i","a","o","l","s","u","c","y","f"],"mappings":"AAAA,SAASA,EAAEC,EAAE,CAAC,SAASC,EAAEF,EAAE,CAAC,GAAG,OAAOA,CAAC,IAAIA,EAAE,OAAO,QAAQ,OAAO,IAAI,UAAUA,EAAE,oBAAoB,CAAC,EAAE,IAAIC,EAAED,EAAE,KAAK,OAAO,QAAQ,QAAQA,EAAE,KAAK,EAAE,KAAK,SAASA,EAAE,CAAC,MAAM,CAAC,MAAMA,EAAE,KAAKC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOD,EAAE,SAASA,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEA,EAAE,IAAI,EAAEA,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,OAAOE,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,SAASF,EAAE,CAAC,IAAIC,EAAE,KAAK,EAAE,OAAO,OAAgBA,IAAT,OAAW,QAAQ,QAAQ,CAAC,MAAMD,EAAE,KAAK,EAAE,CAAC,EAAEE,EAAED,EAAE,MAAM,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,SAASD,EAAE,CAAC,IAAIC,EAAE,KAAK,EAAE,OAAO,OAAgBA,IAAT,OAAW,QAAQ,OAAOD,CAAC,EAAEE,EAAED,EAAE,MAAM,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAID,EAAEC,CAAC,CAAC,CAAC,MAAMA,EAAE,MAAMC,EAAEC,EAAEC,EAAEF,EAAE,KAAKG,IAAI,CAAC,MAAMC,EAAE,CAAE,EAACC,EAAE,CAAA,EAAG,IAAIC,EAAEC,EAAE,GAAGC,EAAE,GAAG,GAAG,CAAC,QAAQC,EAAEC,EAAE,SAASX,EAAE,CAAC,IAAIC,EAAEC,EAAEC,EAAEC,EAAE,EAAE,IAAiB,OAAO,OAApB,MAA6BF,EAAE,OAAO,cAAcC,EAAE,OAAO,UAAUC,KAAK,CAAC,GAAGF,IAAUD,EAAED,EAAEE,CAAC,IAAZ,KAAe,OAAOD,EAAE,KAAKD,CAAC,EAAE,GAAGG,IAAUF,EAAED,EAAEG,CAAC,IAAZ,KAAe,OAAO,IAAIJ,EAAEE,EAAE,KAAKD,CAAC,CAAC,EAAEE,EAAE,kBAAkBC,EAAE,YAAY,CAAC,MAAM,IAAI,UAAU,8BAA8B,CAAC,EAAEF,EAAE,OAAM,CAAE,EAAEO,EAAE,EAAEE,EAAE,MAAMC,EAAE,QAAQ,KAAKH,EAAE,GAAG,CAAC,MAAMT,EAAEW,EAAE,MAAMH,EAAE,GAAGJ,CAAC,IAAIJ,EAAE,IAAI,GAAYA,EAAE,OAAX,OAAgBO,EAAE,KAAKP,EAAE,QAAO,EAAG,KAAKC,IAAIA,EAAE,gBAAgBC,EAAED,EAAE,OAAOD,EAAE,OAAO,eAAeC,EAAE,qBAAqB,CAAC,aAAa,GAAG,WAAW,GAAG,IAAI,IAAIO,CAAC,CAAC,EAAE,CAAC,EAAgBR,EAAE,OAAhB,aAAsB,CAACG,GAAGE,GAAGA,EAAEL,CAAC,GAAGM,EAAE,KAAKL,EAAED,EAAEG,EAAEK,EAAEH,CAAC,CAAC,CAAC,CAAC,OAAOL,EAAE,CAACU,EAAE,GAAGF,EAAER,CAAC,QAAC,CAAQ,GAAG,CAACS,GAASG,EAAE,QAAR,MAAgB,MAAMA,EAAE,OAAM,CAAE,QAAC,CAAQ,GAAGF,EAAE,MAAMF,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,QAAQ,IAAIF,CAAC,GAAG,KAAM,EAAC,GAAG,MAAM,QAAQ,IAAIC,CAAC,CAAC,CAAC,EAAK,IAACL,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,GAAG,MAAMA,EAAE,MAAM,OAAO,oBAAoB,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAOD,EAAEC,EAAE,EAAE,UAAU,OAAO,EAAE,aAAa,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js b/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js deleted file mode 100644 index d3b7bf8..0000000 --- a/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js +++ /dev/null @@ -1,5 +0,0 @@ -import{q as H,c as u,d as Z,a4 as j,h as L,l as x,y as U,a5 as F}from"./index-jpNTxDe4.js";import{c as P}from"./createText-3df630b5-oLWc-GwH.js";import{p as Q}from"./svgDraw-0fcc813d-8P1J7hc8.js";import{l as et}from"./line-reZX-DPl.js";const st=(r,t,e,n)=>{t.forEach(a=>{yt[a](r,e,n)})},it=(r,t,e)=>{x.trace("Making markers for ",e),r.append("defs").append("marker").attr("id",t+"-extensionStart").attr("class","marker extension "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),r.append("defs").append("marker").attr("id",t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},nt=(r,t)=>{r.append("defs").append("marker").attr("id",t+"-compositionStart").attr("class","marker composition "+t).attr("refX",0).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"),r.append("defs").append("marker").attr("id",t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",19).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")},lt=(r,t)=>{r.append("defs").append("marker").attr("id",t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",0).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"),r.append("defs").append("marker").attr("id",t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",19).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")},ct=(r,t)=>{r.append("defs").append("marker").attr("id",t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",0).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"),r.append("defs").append("marker").attr("id",t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",19).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")},ht=(r,t)=>{r.append("defs").append("marker").attr("id",t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},ot=(r,t)=>{r.append("marker").attr("id",t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",10).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"),r.append("marker").attr("id",t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",0).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")},ft=(r,t)=>{r.append("marker").attr("id",t+"-circleEnd").attr("class","marker "+t).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"),r.append("marker").attr("id",t+"-circleStart").attr("class","marker "+t).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")},dt=(r,t)=>{r.append("marker").attr("id",t+"-crossEnd").attr("class","marker cross "+t).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"),r.append("marker").attr("id",t+"-crossStart").attr("class","marker cross "+t).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")},pt=(r,t)=>{r.append("defs").append("marker").attr("id",t+"-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")},yt={extension:it,composition:nt,aggregation:lt,dependency:ct,lollipop:ht,point:ot,circle:ft,cross:dt,barb:pt},Kt=st;function bt(r,t){t&&r.attr("style",t)}function xt(r){const t=L(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),e=t.append("xhtml:div"),n=r.label,a=r.isNode?"nodeLabel":"edgeLabel";return e.html('"+n+""),bt(e,r.labelStyle),e.style("display","inline-block"),e.style("white-space","nowrap"),e.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const gt=(r,t,e,n)=>{let a=r||"";if(typeof a=="object"&&(a=a[0]),H(u().flowchart.htmlLabels)){a=a.replace(/\\n|\n/g,"
    "),x.info("vertexText"+a);const s={isNode:n,label:j(a).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:t.replace("fill:","color:")};return xt(s)}else{const s=document.createElementNS("http://www.w3.org/2000/svg","text");s.setAttribute("style",t.replace("color:","fill:"));let i=[];typeof a=="string"?i=a.split(/\\n|\n|/gi):Array.isArray(a)?i=a:i=[];for(const l of i){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),e?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=l.trim(),s.appendChild(c)}return s}},T=gt,S=async(r,t,e,n)=>{let a;const s=t.useHtmlLabels||H(u().flowchart.htmlLabels);e?a=e:a="node default";const i=r.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=l.node();let h;t.labelType==="markdown"?h=P(l,Z(j(c),u()),{useHtmlLabels:s,width:t.width||u().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(T(Z(j(c),u()),t.labelStyle,!1,n));let f=h.getBBox();const b=t.padding/2;if(H(u().flowchart.htmlLabels)){const d=h.children[0],p=L(h),y=d.getElementsByTagName("img");if(y){const g=c.replace(/]*>/g,"").trim()==="";await Promise.all([...y].map(w=>new Promise(R=>w.addEventListener("load",function(){if(w.style.display="flex",w.style.flexDirection="column",g){const I=u().fontSize?u().fontSize:window.getComputedStyle(document.body).fontSize,E=5;w.style.width=parseInt(I,10)*E+"px"}else w.style.width="100%";R(w)}))))}f=d.getBoundingClientRect(),p.attr("width",f.width),p.attr("height",f.height)}return s?l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):l.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:i,bbox:f,halfPadding:b,label:l}},k=(r,t)=>{const e=t.node().getBBox();r.width=e.width,r.height=e.height};function N(r,t,e,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+e/2+")")}function wt(r,t){return r.intersect(t)}function tt(r,t,e,n){var a=r.x,s=r.y,i=a-n.x,l=s-n.y,c=Math.sqrt(t*t*l*l+e*e*i*i),o=Math.abs(t*e*i/c);n.x0}function kt(r,t,e){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(p){i=Math.min(i,p.x),l=Math.min(l,p.y)}):(i=Math.min(i,t.x),l=Math.min(l,t.y));for(var c=n-r.width/2-i,o=a-r.height/2-l,h=0;h1&&s.sort(function(p,y){var g=p.x-e.x,w=p.y-e.y,R=Math.sqrt(g*g+w*w),I=y.x-e.x,E=y.y-e.y,X=Math.sqrt(I*I+E*E);return R{var e=r.x,n=r.y,a=t.x-e,s=t.y-n,i=r.width/2,l=r.height/2,c,o;return Math.abs(s)*i>Math.abs(a)*l?(s<0&&(l=-l),c=s===0?0:l*a/s,o=l):(a<0&&(i=-i),c=i,o=a===0?0:i*s/a),{x:e+c,y:n+o}},Lt=vt,m={node:wt,circle:ut,ellipse:tt,polygon:kt,rect:Lt},St=async(r,t)=>{t.useHtmlLabels||u().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:n,bbox:a,halfPadding:s}=await S(r,t,"node "+t.classes,!0);x.info("Classes = ",t.classes);const i=n.insert("rect",":first-child");return i.attr("rx",t.rx).attr("ry",t.ry).attr("x",-a.width/2-s).attr("y",-a.height/2-s).attr("width",a.width+t.padding).attr("height",a.height+t.padding),k(t,i),t.intersect=function(l){return m.rect(t,l)},n},Et=St,q=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=a+s,l=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}];x.info("Question main (Circle)");const c=N(e,i,i,l);return c.attr("style",t.style),k(t,c),t.intersect=function(o){return x.warn("Intersect called"),m.polygon(t,l,o)},e},Bt=(r,t)=>{const e=r.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=28,a=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return e.insert("polygon",":first-child").attr("points",a.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(i){return m.circle(t,14,i)},e},Mt=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=4,s=n.height+t.padding,i=s/a,l=n.width+2*i+t.padding,c=[{x:i,y:0},{x:l-i,y:0},{x:l,y:-s/2},{x:l-i,y:-s},{x:i,y:-s},{x:0,y:-s/2}],o=N(e,l,s,c);return o.attr("style",t.style),k(t,o),t.intersect=function(h){return m.polygon(t,c,h)},e},Ct=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:-s/2,y:0},{x:a,y:0},{x:a,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return N(e,a,s,i).attr("style",t.style),t.width=a+s,t.height=s,t.intersect=function(c){return m.polygon(t,i,c)},e},Tt=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:-2*s/6,y:0},{x:a-s/6,y:0},{x:a+2*s/6,y:-s},{x:s/6,y:-s}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},Rt=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:2*s/6,y:0},{x:a+s/6,y:0},{x:a-2*s/6,y:-s},{x:-s/6,y:-s}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},It=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:-2*s/6,y:0},{x:a+2*s/6,y:0},{x:a-s/6,y:-s},{x:s/6,y:-s}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},Ht=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:s/6,y:0},{x:a-s/6,y:0},{x:a+2*s/6,y:-s},{x:-2*s/6,y:-s}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},$t=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:0,y:0},{x:a+s/2,y:0},{x:a,y:-s/2},{x:a+s/2,y:-s},{x:0,y:-s}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},Nt=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=a/2,i=s/(2.5+a/50),l=n.height+i+t.padding,c="M 0,"+i+" a "+s+","+i+" 0,0,0 "+a+" 0 a "+s+","+i+" 0,0,0 "+-a+" 0 l 0,"+l+" a "+s+","+i+" 0,0,0 "+a+" 0 l 0,"+-l,o=e.attr("label-offset-y",i).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-a/2+","+-(l/2+i)+")");return k(t,o),t.intersect=function(h){const f=m.rect(t,h),b=f.x-t.x;if(s!=0&&(Math.abs(b)t.height/2-i)){let d=i*i*(1-b*b/(s*s));d!=0&&(d=Math.sqrt(d)),d=i-d,h.y-t.y>0&&(d=-d),f.y+=d}return f},e},_t=async(r,t)=>{const{shapeSvg:e,bbox:n,halfPadding:a}=await S(r,t,"node "+t.classes,!0),s=e.insert("rect",":first-child"),i=n.width+t.padding,l=n.height+t.padding;if(s.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",-n.width/2-a).attr("y",-n.height/2-a).attr("width",i).attr("height",l),t.props){const c=new Set(Object.keys(t.props));t.props.borders&&(rt(s,t.props.borders,i,l),c.delete("borders")),c.forEach(o=>{x.warn(`Unknown node property ${o}`)})}return k(t,s),t.intersect=function(c){return m.rect(t,c)},e},Wt=async(r,t)=>{const{shapeSvg:e}=await S(r,t,"label",!0);x.trace("Classes = ",t.classes);const n=e.insert("rect",":first-child"),a=0,s=0;if(n.attr("width",a).attr("height",s),e.attr("class","label edgeLabel"),t.props){const i=new Set(Object.keys(t.props));t.props.borders&&(rt(n,t.props.borders,a,s),i.delete("borders")),i.forEach(l=>{x.warn(`Unknown node property ${l}`)})}return k(t,n),t.intersect=function(i){return m.rect(t,i)},e};function rt(r,t,e,n){const a=[],s=l=>{a.push(l,0)},i=l=>{a.push(0,l)};t.includes("t")?(x.debug("add top border"),s(e)):i(e),t.includes("r")?(x.debug("add right border"),s(n)):i(n),t.includes("b")?(x.debug("add bottom border"),s(e)):i(e),t.includes("l")?(x.debug("add left border"),s(n)):i(n),r.attr("stroke-dasharray",a.join(" "))}const Xt=(r,t)=>{let e;t.classes?e="node "+t.classes:e="node default";const n=r.insert("g").attr("class",e).attr("id",t.domId||t.id),a=n.insert("rect",":first-child"),s=n.insert("line"),i=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof l=="object"?c=l[0]:c=l,x.info("Label text abc79",c,l,typeof l=="object");const o=i.node().appendChild(T(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(u().flowchart.htmlLabels)){const y=o.children[0],g=L(o);h=y.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}x.info("Text 2",l);const f=l.slice(1,l.length);let b=o.getBBox();const d=i.node().appendChild(T(f.join?f.join("
    "):f,t.labelStyle,!0,!0));if(H(u().flowchart.htmlLabels)){const y=d.children[0],g=L(d);h=y.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}const p=t.padding/2;return L(d).attr("transform","translate( "+(h.width>b.width?0:(b.width-h.width)/2)+", "+(b.height+p+5)+")"),L(o).attr("transform","translate( "+(h.width{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.height+t.padding,s=n.width+a/4+t.padding,i=e.insert("rect",":first-child").attr("style",t.style).attr("rx",a/2).attr("ry",a/2).attr("x",-s/2).attr("y",-a/2).attr("width",s).attr("height",a);return k(t,i),t.intersect=function(l){return m.rect(t,l)},e},Ut=async(r,t)=>{const{shapeSvg:e,bbox:n,halfPadding:a}=await S(r,t,void 0,!0),s=e.insert("circle",":first-child");return s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+a).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("Circle main"),k(t,s),t.intersect=function(i){return x.info("Circle intersect",t,n.width/2+a,i),m.circle(t,n.width/2+a,i)},e},At=async(r,t)=>{const{shapeSvg:e,bbox:n,halfPadding:a}=await S(r,t,void 0,!0),s=5,i=e.insert("g",":first-child"),l=i.insert("circle"),c=i.insert("circle");return l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+a+s).attr("width",n.width+t.padding+s*2).attr("height",n.height+t.padding+s*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+a).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("DoubleCircle main"),k(t,l),t.intersect=function(o){return x.info("DoubleCircle intersect",t,n.width/2+a+s,o),m.circle(t,n.width/2+a+s,o)},e},Dt=async(r,t)=>{const{shapeSvg:e,bbox:n}=await S(r,t,void 0,!0),a=n.width+t.padding,s=n.height+t.padding,i=[{x:0,y:0},{x:a,y:0},{x:a,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],l=N(e,a,s,i);return l.attr("style",t.style),k(t,l),t.intersect=function(c){return m.polygon(t,i,c)},e},Ot=(r,t)=>{const e=r.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=e.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),k(t,n),t.intersect=function(a){return m.circle(t,7,a)},e},J=(r,t,e)=>{const n=r.insert("g").attr("class","node default").attr("id",t.domId||t.id);let a=70,s=10;e==="LR"&&(a=10,s=70);const i=n.append("rect").attr("x",-1*a/2).attr("y",-1*s/2).attr("width",a).attr("height",s).attr("class","fork-join");return k(t,i),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return m.rect(t,l)},n},jt=(r,t)=>{const e=r.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=e.insert("circle",":first-child"),a=e.insert("circle",":first-child");return a.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),k(t,a),t.intersect=function(s){return m.circle(t,7,s)},e},zt=(r,t)=>{const e=t.padding/2,n=4,a=8;let s;t.classes?s="node "+t.classes:s="node default";const i=r.insert("g").attr("class",s).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),c=i.insert("line"),o=i.insert("line");let h=0,f=n;const b=i.insert("g").attr("class","label");let d=0;const p=t.classData.annotations&&t.classData.annotations[0],y=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",g=b.node().appendChild(T(y,t.labelStyle,!0,!0));let w=g.getBBox();if(H(u().flowchart.htmlLabels)){const B=g.children[0],M=L(g);w=B.getBoundingClientRect(),M.attr("width",w.width),M.attr("height",w.height)}t.classData.annotations[0]&&(f+=w.height+n,h+=w.width);let R=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(u().flowchart.htmlLabels?R+="<"+t.classData.type+">":R+="<"+t.classData.type+">");const I=b.node().appendChild(T(R,t.labelStyle,!0,!0));L(I).attr("class","classTitle");let E=I.getBBox();if(H(u().flowchart.htmlLabels)){const B=I.children[0],M=L(I);E=B.getBoundingClientRect(),M.attr("width",E.width),M.attr("height",E.height)}f+=E.height+n,E.width>h&&(h=E.width);const X=[];t.classData.members.forEach(B=>{const M=Q(B);let _=M.displayText;u().flowchart.htmlLabels&&(_=_.replace(//g,">"));const $=b.node().appendChild(T(_,M.cssStyle?M.cssStyle:t.labelStyle,!0,!0));let C=$.getBBox();if(H(u().flowchart.htmlLabels)){const O=$.children[0],Y=L($);C=O.getBoundingClientRect(),Y.attr("width",C.width),Y.attr("height",C.height)}C.width>h&&(h=C.width),f+=C.height+n,X.push($)}),f+=a;const z=[];if(t.classData.methods.forEach(B=>{const M=Q(B);let _=M.displayText;u().flowchart.htmlLabels&&(_=_.replace(//g,">"));const $=b.node().appendChild(T(_,M.cssStyle?M.cssStyle:t.labelStyle,!0,!0));let C=$.getBBox();if(H(u().flowchart.htmlLabels)){const O=$.children[0],Y=L($);C=O.getBoundingClientRect(),Y.attr("width",C.width),Y.attr("height",C.height)}C.width>h&&(h=C.width),f+=C.height+n,z.push($)}),f+=a,p){let B=(h-w.width)/2;L(g).attr("transform","translate( "+(-1*h/2+B)+", "+-1*f/2+")"),d=w.height+n}let at=(h-E.width)/2;return L(I).attr("transform","translate( "+(-1*h/2+at)+", "+(-1*f/2+d)+")"),d+=E.height+n,c.attr("class","divider").attr("x1",-h/2-e).attr("x2",h/2+e).attr("y1",-f/2-e+a+d).attr("y2",-f/2-e+a+d),d+=a,X.forEach(B=>{L(B).attr("transform","translate( "+-h/2+", "+(-1*f/2+d+a/2)+")"),d+=E.height+n}),d+=a,o.attr("class","divider").attr("x1",-h/2-e).attr("x2",h/2+e).attr("y1",-f/2-e+a+d).attr("y2",-f/2-e+a+d),d+=a,z.forEach(B=>{L(B).attr("transform","translate( "+-h/2+", "+(-1*f/2+d)+")"),d+=E.height+n}),l.attr("class","outer title-state").attr("x",-h/2-e).attr("y",-(f/2)-e).attr("width",h+t.padding).attr("height",f+t.padding),k(t,l),t.intersect=function(B){return m.rect(t,B)},i},K={rhombus:q,question:q,rect:_t,labelRect:Wt,rectWithTitle:Xt,choice:Bt,circle:Ut,doublecircle:At,stadium:Yt,hexagon:Mt,rect_left_inv_arrow:Ct,lean_right:Tt,lean_left:Rt,trapezoid:It,inv_trapezoid:Ht,rect_right_inv_arrow:$t,cylinder:Nt,start:Ot,end:jt,note:Et,subroutine:Dt,fork:J,join:J,class_box:zt};let W={};const Gt=async(r,t,e)=>{let n,a;if(t.link){let s;u().securityLevel==="sandbox"?s="_top":t.linkTarget&&(s=t.linkTarget||"_blank"),n=r.insert("svg:a").attr("xlink:href",t.link).attr("target",s),a=await K[t.shape](n,t,e)}else a=await K[t.shape](r,t,e),n=a;return t.tooltip&&a.attr("title",t.tooltip),t.class&&a.attr("class","node default "+t.class),W[t.id]=n,t.haveCallback&&W[t.id].attr("class",W[t.id].attr("class")+" clickable"),n},Pt=(r,t)=>{W[t.id]=r},tr=()=>{W={}},rr=r=>{const t=W[r.id];x.trace("Transforming node",r.diff,r,"translate("+(r.x-r.width/2-5)+", "+r.width/2+")");const e=8,n=r.diff||0;return r.clusterNode?t.attr("transform","translate("+(r.x+n-r.width/2)+", "+(r.y-r.height/2-e)+")"):t.attr("transform","translate("+r.x+", "+r.y+")"),n};let D={},v={};const ar=()=>{D={},v={}},er=(r,t)=>{const e=H(u().flowchart.htmlLabels),n=t.labelType==="markdown"?P(r,t.label,{style:t.labelStyle,useHtmlLabels:e,addSvgBackground:!0}):T(t.label,t.labelStyle);x.info("abc82",t,t.labelType);const a=r.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(n);let i=n.getBBox();if(e){const c=n.children[0],o=L(n);i=c.getBoundingClientRect(),o.attr("width",i.width),o.attr("height",i.height)}s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")"),D[t.id]=a,t.width=i.width,t.height=i.height;let l;if(t.startLabelLeft){const c=T(t.startLabelLeft,t.labelStyle),o=r.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);const f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),v[t.id]||(v[t.id]={}),v[t.id].startLeft=o,A(l,t.startLabelLeft)}if(t.startLabelRight){const c=T(t.startLabelRight,t.labelStyle),o=r.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=o.node().appendChild(c),h.node().appendChild(c);const f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),v[t.id]||(v[t.id]={}),v[t.id].startRight=o,A(l,t.startLabelRight)}if(t.endLabelLeft){const c=T(t.endLabelLeft,t.labelStyle),o=r.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);const f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),v[t.id]||(v[t.id]={}),v[t.id].endLeft=o,A(l,t.endLabelLeft)}if(t.endLabelRight){const c=T(t.endLabelRight,t.labelStyle),o=r.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);const f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),v[t.id]||(v[t.id]={}),v[t.id].endRight=o,A(l,t.endLabelRight)}return n};function A(r,t){u().flowchart.htmlLabels&&r&&(r.style.width=t.length*9+"px",r.style.height="12px")}const sr=(r,t)=>{x.info("Moving label abc78 ",r.id,r.label,D[r.id]);let e=t.updatedPath?t.updatedPath:t.originalPath;if(r.label){const n=D[r.id];let a=r.x,s=r.y;if(e){const i=U.calcLabelPosition(e);x.info("Moving label "+r.label+" from (",a,",",s,") to (",i.x,",",i.y,") abc78"),t.updatedPath&&(a=i.x,s=i.y)}n.attr("transform","translate("+a+", "+s+")")}if(r.startLabelLeft){const n=v[r.id].startLeft;let a=r.x,s=r.y;if(e){const i=U.calcTerminalLabelPosition(r.arrowTypeStart?10:0,"start_left",e);a=i.x,s=i.y}n.attr("transform","translate("+a+", "+s+")")}if(r.startLabelRight){const n=v[r.id].startRight;let a=r.x,s=r.y;if(e){const i=U.calcTerminalLabelPosition(r.arrowTypeStart?10:0,"start_right",e);a=i.x,s=i.y}n.attr("transform","translate("+a+", "+s+")")}if(r.endLabelLeft){const n=v[r.id].endLeft;let a=r.x,s=r.y;if(e){const i=U.calcTerminalLabelPosition(r.arrowTypeEnd?10:0,"end_left",e);a=i.x,s=i.y}n.attr("transform","translate("+a+", "+s+")")}if(r.endLabelRight){const n=v[r.id].endRight;let a=r.x,s=r.y;if(e){const i=U.calcTerminalLabelPosition(r.arrowTypeEnd?10:0,"end_right",e);a=i.x,s=i.y}n.attr("transform","translate("+a+", "+s+")")}},Zt=(r,t)=>{const e=r.x,n=r.y,a=Math.abs(t.x-e),s=Math.abs(t.y-n),i=r.width/2,l=r.height/2;return a>=i||s>=l},Ft=(r,t,e)=>{x.warn(`intersection calc abc89: - outsidePoint: ${JSON.stringify(t)} - insidePoint : ${JSON.stringify(e)} - node : x:${r.x} y:${r.y} w:${r.width} h:${r.height}`);const n=r.x,a=r.y,s=Math.abs(n-e.x),i=r.width/2;let l=e.xMath.abs(n-t.x)*c){let f=e.y{x.warn("abc88 cutPathAtIntersect",r,t);let e=[],n=r[0],a=!1;return r.forEach(s=>{if(x.info("abc88 checking point",s,t),!Zt(t,s)&&!a){const i=Ft(t,n,s);x.warn("abc88 inside",s,n,i),x.warn("abc88 intersection",i);let l=!1;e.forEach(c=>{l=l||c.x===i.x&&c.y===i.y}),e.some(c=>c.x===i.x&&c.y===i.y)?x.warn("abc88 no intersect",i,e):e.push(i),a=!0}else x.warn("abc88 outside",s,n),n=s,a||e.push(s)}),x.warn("abc88 returning points",e),e},ir=function(r,t,e,n,a,s){let i=e.points,l=!1;const c=s.node(t.v);var o=s.node(t.w);x.info("abc88 InsertEdge: ",e),o.intersect&&c.intersect&&(i=i.slice(1,e.points.length-1),i.unshift(c.intersect(i[0])),x.info("Last point",i[i.length-1],o,o.intersect(i[i.length-1])),i.push(o.intersect(i[i.length-1]))),e.toCluster&&(x.info("to cluster abc88",n[e.toCluster]),i=G(e.points,n[e.toCluster].node),l=!0),e.fromCluster&&(x.info("from cluster abc88",n[e.fromCluster]),i=G(i.reverse(),n[e.fromCluster].node).reverse(),l=!0);const h=i.filter(w=>!Number.isNaN(w.y));let f;a==="graph"||a==="flowchart"?f=e.curve||F:f=F;const b=et().x(function(w){return w.x}).y(function(w){return w.y}).curve(f);let d;switch(e.thickness){case"normal":d="edge-thickness-normal";break;case"thick":d="edge-thickness-thick";break;case"invisible":d="edge-thickness-thick";break;default:d=""}switch(e.pattern){case"solid":d+=" edge-pattern-solid";break;case"dotted":d+=" edge-pattern-dotted";break;case"dashed":d+=" edge-pattern-dashed";break}const p=r.append("path").attr("d",b(h)).attr("id",e.id).attr("class"," "+d+(e.classes?" "+e.classes:"")).attr("style",e.style);let y="";switch((u().flowchart.arrowMarkerAbsolute||u().state.arrowMarkerAbsolute)&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),x.info("arrowTypeStart",e.arrowTypeStart),x.info("arrowTypeEnd",e.arrowTypeEnd),e.arrowTypeStart){case"arrow_cross":p.attr("marker-start","url("+y+"#"+a+"-crossStart)");break;case"arrow_point":p.attr("marker-start","url("+y+"#"+a+"-pointStart)");break;case"arrow_barb":p.attr("marker-start","url("+y+"#"+a+"-barbStart)");break;case"arrow_circle":p.attr("marker-start","url("+y+"#"+a+"-circleStart)");break;case"aggregation":p.attr("marker-start","url("+y+"#"+a+"-aggregationStart)");break;case"extension":p.attr("marker-start","url("+y+"#"+a+"-extensionStart)");break;case"composition":p.attr("marker-start","url("+y+"#"+a+"-compositionStart)");break;case"dependency":p.attr("marker-start","url("+y+"#"+a+"-dependencyStart)");break;case"lollipop":p.attr("marker-start","url("+y+"#"+a+"-lollipopStart)");break}switch(e.arrowTypeEnd){case"arrow_cross":p.attr("marker-end","url("+y+"#"+a+"-crossEnd)");break;case"arrow_point":p.attr("marker-end","url("+y+"#"+a+"-pointEnd)");break;case"arrow_barb":p.attr("marker-end","url("+y+"#"+a+"-barbEnd)");break;case"arrow_circle":p.attr("marker-end","url("+y+"#"+a+"-circleEnd)");break;case"aggregation":p.attr("marker-end","url("+y+"#"+a+"-aggregationEnd)");break;case"extension":p.attr("marker-end","url("+y+"#"+a+"-extensionEnd)");break;case"composition":p.attr("marker-end","url("+y+"#"+a+"-compositionEnd)");break;case"dependency":p.attr("marker-end","url("+y+"#"+a+"-dependencyEnd)");break;case"lollipop":p.attr("marker-end","url("+y+"#"+a+"-lollipopEnd)");break}let g={};return l&&(g.updatedPath=i),g.originalPath=e.points,g};export{Gt as a,er as b,ir as c,sr as d,tr as e,ar as f,T as g,Lt as h,Kt as i,S as l,rr as p,Pt as s,k as u}; -//# sourceMappingURL=edges-49ac43a2-VNwnN65b.js.map diff --git a/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js.map b/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js.map deleted file mode 100644 index 3b14d48..0000000 --- a/excalidraw/excalidraw-app/build/assets/edges-49ac43a2-VNwnN65b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"edges-49ac43a2-VNwnN65b.js","sources":["../../../node_modules/mermaid/dist/edges-49ac43a2.js"],"sourcesContent":["import { l as log, n as evaluate, c as getConfig, H as decodeEntities, d as sanitizeText, u as utils } from \"./mermaid-b0ad2de1.js\";\nimport { select, curveBasis, line } from \"d3\";\nimport { c as createText } from \"./createText-3df630b5.js\";\nimport { p as parseMember } from \"./svgDraw-0fcc813d.js\";\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\nconst extension = (elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n};\nconst composition = (elem, type) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 19).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\");\n};\nconst aggregation = (elem, type) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 19).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\");\n};\nconst dependency = (elem, type) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 19).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\");\n};\nconst lollipop = (elem, type) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"white\").attr(\"cx\", 6).attr(\"cy\", 7).attr(\"r\", 6);\n};\nconst point = (elem, type) => {\n elem.append(\"marker\").attr(\"id\", type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 10).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\");\n elem.append(\"marker\").attr(\"id\", type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 0).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\");\n};\nconst circle$1 = (elem, type) => {\n elem.append(\"marker\").attr(\"id\", type + \"-circleEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", type + \"-circleStart\").attr(\"class\", \"marker \" + type).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\");\n};\nconst cross = (elem, type) => {\n elem.append(\"marker\").attr(\"id\", type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).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\");\n elem.append(\"marker\").attr(\"id\", type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).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\");\n};\nconst barb = (elem, type) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", type + \"-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\");\n};\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle: circle$1,\n cross,\n barb\n};\nconst insertMarkers$1 = insertMarkers;\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n '\" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
    \");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\nconst createLabel$1 = createLabel;\nconst labelHelper = async (parent, node, _classes, isNode) => {\n let classes;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);\n if (!_classes) {\n classes = \"node default\";\n } else {\n classes = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {\n useHtmlLabels,\n width: node.width || getConfig().flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n });\n } else {\n text = textNode.appendChild(\n createLabel$1(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise(\n (res) => img.addEventListener(\"load\", function() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n })\n )\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n};\nconst updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\nfunction intersectCircle(node, rx, point2) {\n return intersectEllipse(node, rx, rx, point2);\n}\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect2 = intersectLine(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect2) {\n intersections.push(intersect2);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\nconst intersectRect = (node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n};\nconst intersectRect$1 = intersectRect;\nconst intersect = {\n node: intersectNode,\n circle: intersectCircle,\n ellipse: intersectEllipse,\n polygon: intersectPolygon,\n rect: intersectRect$1\n};\nconst note = async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst note$1 = note;\nconst question = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst choice = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect.circle(node, 14, point2);\n };\n return shapeSvg;\n};\nconst hexagon = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_left_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_right = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_left = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst inv_trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_right_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst cylinder = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n};\nconst rect = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst labelRect = async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length, 0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0, length);\n };\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\nconst rectWithTitle = (parent, node) => {\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n createLabel$1(textRows.join ? textRows.join(\"
    \") : textRows, node.labelStyle, true, true)\n );\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst stadium = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst circle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, void 0, true);\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n};\nconst doublecircle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, void 0, true);\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n};\nconst subroutine = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst start = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst end = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"«\" + node.classData.annotations[0] + \"»\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst shapes = {\n rhombus: question,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note$1,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nlet nodeElems = {};\nconst insertNode = async (elem, node, dir) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, dir);\n } else {\n el = await shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n};\nconst setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nconst clear$1 = () => {\n nodeElems = {};\n};\nconst positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n};\nlet edgeLabels = {};\nlet terminalLabels = {};\nconst clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\nconst insertEdgeLabel = (elem, edge) => {\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n }) : createLabel$1(edge.label, edge.labelStyle);\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n};\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\nconst positionEdgeLabel = (edge, paths) => {\n log.info(\"Moving label abc78 \", edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcLabelPosition(path);\n log.info(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc78\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n};\nconst outsideNode = (node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\nconst intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n};\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundryNode);\n if (!outsideNode(boundryNode, point2) && !isInside) {\n const inter = intersection(boundryNode, lastPointOutside, point2);\n log.warn(\"abc88 inside\", point2, lastPointOutside, inter);\n log.warn(\"abc88 intersection\", inter);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.warn(\"abc88 returning points\", points);\n return points;\n};\nconst insertEdge = function(elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n log.info(\"abc88 InsertEdge: \", edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n \"Last point\",\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.info(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve;\n if (diagramType === \"graph\" || diagramType === \"flowchart\") {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n switch (edge.arrowTypeStart) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-crossStart)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-pointStart)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-barbStart)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-circleStart)\");\n break;\n case \"aggregation\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-aggregationStart)\");\n break;\n case \"extension\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-extensionStart)\");\n break;\n case \"composition\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-compositionStart)\");\n break;\n case \"dependency\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-dependencyStart)\");\n break;\n case \"lollipop\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-lollipopStart)\");\n break;\n }\n switch (edge.arrowTypeEnd) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-crossEnd)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-pointEnd)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-barbEnd)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-circleEnd)\");\n break;\n case \"aggregation\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-aggregationEnd)\");\n break;\n case \"extension\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-extensionEnd)\");\n break;\n case \"composition\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-compositionEnd)\");\n break;\n case \"dependency\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-dependencyEnd)\");\n break;\n case \"lollipop\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-lollipopEnd)\");\n break;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\nexport {\n insertMarkers$1 as a,\n clear$1 as b,\n createLabel$1 as c,\n clear as d,\n insertNode as e,\n insertEdgeLabel as f,\n insertEdge as g,\n positionEdgeLabel as h,\n intersectRect$1 as i,\n labelHelper as l,\n positionNode as p,\n setNodeElem as s,\n updateNodeBounds as u\n};\n"],"names":["insertMarkers","elem","markerArray","type","id","markerName","markers","extension","log","composition","aggregation","dependency","lollipop","point","circle$1","cross","barb","insertMarkers$1","applyStyle","dom","styleFn","addHtmlLabel","node","fo","select","div","label","labelClass","createLabel","_vertexText","style","isTitle","isNode","vertexText","evaluate","getConfig","decodeEntities","s","svgLabel","rows","row","tspan","createLabel$1","labelHelper","parent","_classes","classes","useHtmlLabels","shapeSvg","labelText","textNode","text","createText","sanitizeText","bbox","halfPadding","dv","images","noImgText","img","res","bodyFontSize","enlargingFactor","updateNodeBounds","element","insertPolygonShape","w","h","points","d","intersectNode","point2","intersectEllipse","rx","ry","cx","cy","px","py","det","dx","dy","intersectCircle","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","x","y","sameSign","intersectPolygon","polyPoints","x1","y1","intersections","minX","minY","entry","left","top","i","intersect2","q","pdx","pdy","distp","qdx","qdy","distq","intersectRect","sx","sy","intersectRect$1","intersect","note","rect2","note$1","question","questionElem","choice","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","el","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","shape","pos","rect","totalWidth","totalHeight","propKeys","applyNodePropertyBorders","propKey","labelRect","borders","strokeDashArray","addBorder","length","skipBorder","rectWithTitle","innerLine","text2","title","textRows","titleBox","descr","stadium","circle","circle2","doublecircle","gap","circleGroup","outerCircle","innerCircle","subroutine","start","forkJoin","dir","width","height","end","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","str","parsedInfo","parseMember","parsedText","lbl","classMethods","displayText","diffX2","diffX","shapes","nodeElems","insertNode","newEl","target","setNodeElem","clear$1","positionNode","padding","diff","edgeLabels","terminalLabels","clear","insertEdgeLabel","edge","labelElement","edgeLabel","startLabelElement","startEdgeLabelLeft","inner","slBox","setTerminalWidth","startEdgeLabelRight","endLabelElement","endEdgeLabelLeft","endEdgeLabelRight","value","positionEdgeLabel","paths","path","utils","outsideNode","intersection","outsidePoint","insidePoint","r","Q","R","_x","_y","cutPathAtIntersect","_points","boundryNode","lastPointOutside","isInside","inter","pointPresent","p","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","head","lineData","curve","curveBasis","lineFunction","line","strokeClasses","svgPath","url"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js b/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js deleted file mode 100644 index 89ac80e..0000000 --- a/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js +++ /dev/null @@ -1,52 +0,0 @@ -import{c as V,s as xt,g as Rt,b as Ot,a as bt,v as Nt,x as Tt,m as At,l as et,z as Mt,h as st,y as vt,i as Dt,a5 as It,a7 as wt}from"./index-jpNTxDe4.js";import{G as St,l as Lt}from"./layout-ewywu0M6.js";import{l as Bt}from"./line-reZX-DPl.js";import"./index-2K3MavtT.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";const Ct=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Pt(t){return typeof t=="string"&&Ct.test(t)}const T=[];for(let t=0;t<256;++t)T.push((t+256).toString(16).slice(1));function Yt(t,r=0){return T[t[r+0]]+T[t[r+1]]+T[t[r+2]]+T[t[r+3]]+"-"+T[t[r+4]]+T[t[r+5]]+"-"+T[t[r+6]]+T[t[r+7]]+"-"+T[t[r+8]]+T[t[r+9]]+"-"+T[t[r+10]]+T[t[r+11]]+T[t[r+12]]+T[t[r+13]]+T[t[r+14]]+T[t[r+15]]}function Zt(t){if(!Pt(t))throw TypeError("Invalid UUID");let r;const e=new Uint8Array(16);return e[0]=(r=parseInt(t.slice(0,8),16))>>>24,e[1]=r>>>16&255,e[2]=r>>>8&255,e[3]=r&255,e[4]=(r=parseInt(t.slice(9,13),16))>>>8,e[5]=r&255,e[6]=(r=parseInt(t.slice(14,18),16))>>>8,e[7]=r&255,e[8]=(r=parseInt(t.slice(19,23),16))>>>8,e[9]=r&255,e[10]=(r=parseInt(t.slice(24,36),16))/1099511627776&255,e[11]=r/4294967296&255,e[12]=r>>>24&255,e[13]=r>>>16&255,e[14]=r>>>8&255,e[15]=r&255,e}function Ft(t){t=unescape(encodeURIComponent(t));const r=[];for(let e=0;e>>32-r}function Ht(t){const r=[1518500249,1859775393,2400959708,3395469782],e=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;O=g,g=E,E=ot(_,30)>>>0,_=c,c=Y}e[0]=e[0]+c>>>0,e[1]=e[1]+_>>>0,e[2]=e[2]+E>>>0,e[3]=e[3]+g>>>0,e[4]=e[4]+O>>>0}return[e[0]>>24&255,e[0]>>16&255,e[0]>>8&255,e[0]&255,e[1]>>24&255,e[1]>>16&255,e[1]>>8&255,e[1]&255,e[2]>>24&255,e[2]>>16&255,e[2]>>8&255,e[2]&255,e[3]>>24&255,e[3]>>16&255,e[3]>>8&255,e[3]&255,e[4]>>24&255,e[4]>>16&255,e[4]>>8&255,e[4]&255]}const Gt=Ut("v5",80,Ht),Kt=Gt;var ct=function(){var t=function(M,a,l,d){for(l=l||{},d=M.length;d--;l[M[d]]=a);return l},r=[1,2],e=[1,5],n=[6,9,11,23,25,27,29,30,31,52],s=[1,17],p=[1,18],f=[1,19],o=[1,20],c=[1,21],_=[1,22],E=[1,25],g=[1,30],O=[1,31],y=[1,32],A=[1,33],Y=[1,34],U=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,48,52],X=[1,46],w=[30,31,49,50],N=[4,6,9,11,23,25,27,29,30,31,52],v=[44,45,46,47,48],k=[22,37],x=[1,66],P=[1,65],Z=[22,37,39,41],I={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,MD_PARENT:48,NON_IDENTIFYING:49,IDENTIFYING:50,WORD:51,open_directive:52,type_directive:53,arg_directive:54,close_directive:55,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"MD_PARENT",49:"NON_IDENTIFYING",50:"IDENTIFYING",51:"WORD",52:"open_directive",53:"type_directive",54:"arg_directive",55:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(a,l,d,u,m,i,Q){var h=i.length-1;switch(m){case 1:break;case 3:this.$=[];break;case 4:i[h-1].push(i[h]),this.$=i[h-1];break;case 5:case 6:this.$=i[h];break;case 7:case 8:this.$=[];break;case 12:u.addEntity(i[h-4]),u.addEntity(i[h-2]),u.addRelationship(i[h-4],i[h],i[h-2],i[h-3]);break;case 13:u.addEntity(i[h-3]),u.addAttributes(i[h-3],i[h-1]);break;case 14:u.addEntity(i[h-2]);break;case 15:u.addEntity(i[h]);break;case 16:case 17:this.$=i[h].trim(),u.setAccTitle(this.$);break;case 18:case 19:this.$=i[h].trim(),u.setAccDescription(this.$);break;case 20:case 44:this.$=i[h];break;case 21:case 42:case 43:this.$=i[h].replace(/"/g,"");break;case 22:case 30:this.$=[i[h]];break;case 23:i[h].push(i[h-1]),this.$=i[h];break;case 24:this.$={attributeType:i[h-1],attributeName:i[h]};break;case 25:this.$={attributeType:i[h-2],attributeName:i[h-1],attributeKeyTypeList:i[h]};break;case 26:this.$={attributeType:i[h-2],attributeName:i[h-1],attributeComment:i[h]};break;case 27:this.$={attributeType:i[h-3],attributeName:i[h-2],attributeKeyTypeList:i[h-1],attributeComment:i[h]};break;case 28:case 29:case 32:this.$=i[h];break;case 31:i[h-2].push(i[h]),this.$=i[h-2];break;case 33:this.$=i[h].replace(/"/g,"");break;case 34:this.$={cardA:i[h],relType:i[h-1],cardB:i[h-2]};break;case 35:this.$=u.Cardinality.ZERO_OR_ONE;break;case 36:this.$=u.Cardinality.ZERO_OR_MORE;break;case 37:this.$=u.Cardinality.ONE_OR_MORE;break;case 38:this.$=u.Cardinality.ONLY_ONE;break;case 39:this.$=u.Cardinality.MD_PARENT;break;case 40:this.$=u.Identification.NON_IDENTIFYING;break;case 41:this.$=u.Identification.IDENTIFYING;break;case 45:u.parseDirective("%%{","open_directive");break;case 46:u.parseDirective(i[h],"type_directive");break;case 47:i[h]=i[h].trim().replace(/'/g,'"'),u.parseDirective(i[h],"arg_directive");break;case 48:u.parseDirective("}%%","close_directive","er");break}},table:[{3:1,4:r,7:3,12:4,52:e},{1:[3]},t(n,[2,3],{5:6}),{3:7,4:r,7:3,12:4,52:e},{13:8,53:[1,9]},{53:[2,45]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:s,25:p,27:f,29:o,30:c,31:_,52:e},{1:[2,2]},{14:23,15:[1,24],55:E},t([15,55],[2,46]),t(n,[2,8],{1:[2,1]}),t(n,[2,4]),{7:15,10:26,12:4,17:16,23:s,25:p,27:f,29:o,30:c,31:_,52:e},t(n,[2,6]),t(n,[2,7]),t(n,[2,11]),t(n,[2,15],{18:27,42:29,20:[1,28],44:g,45:O,46:y,47:A,48:Y}),{24:[1,35]},{26:[1,36]},{28:[1,37]},t(n,[2,19]),t(U,[2,20]),t(U,[2,21]),{11:[1,38]},{16:39,54:[1,40]},{11:[2,48]},t(n,[2,5]),{17:41,30:c,31:_},{21:42,22:[1,43],32:44,33:45,37:X},{43:47,49:[1,48],50:[1,49]},t(w,[2,35]),t(w,[2,36]),t(w,[2,37]),t(w,[2,38]),t(w,[2,39]),t(n,[2,16]),t(n,[2,17]),t(n,[2,18]),t(N,[2,9]),{14:50,55:E},{55:[2,47]},{15:[1,51]},{22:[1,52]},t(n,[2,14]),{21:53,22:[2,22],32:44,33:45,37:X},{34:54,37:[1,55]},{37:[2,28]},{42:56,44:g,45:O,46:y,47:A,48:Y},t(v,[2,40]),t(v,[2,41]),{11:[1,57]},{19:58,30:[1,61],31:[1,60],51:[1,59]},t(n,[2,13]),{22:[2,23]},t(k,[2,24],{35:62,36:63,38:64,40:x,41:P}),t([22,37,40,41],[2,29]),t([30,31],[2,34]),t(N,[2,10]),t(n,[2,12]),t(n,[2,42]),t(n,[2,43]),t(n,[2,44]),t(k,[2,25],{36:67,39:[1,68],41:P}),t(k,[2,26]),t(Z,[2,30]),t(k,[2,33]),t(Z,[2,32]),t(k,[2,27]),{38:69,40:x},t(Z,[2,31])],defaultActions:{5:[2,45],7:[2,2],25:[2,48],40:[2,47],46:[2,28],53:[2,23]},parseError:function(a,l){if(l.recoverable)this.trace(a);else{var d=new Error(a);throw d.hash=l,d}},parse:function(a){var l=this,d=[0],u=[],m=[null],i=[],Q=this.table,h="",q=0,ht=0,Et=2,dt=1,mt=i.slice.call(arguments,1),b=Object.create(this.lexer),H={yy:{}};for(var rt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,rt)&&(H.yy[rt]=this.yy[rt]);b.setInput(a,H.yy),H.yy.lexer=b,H.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var it=b.yylloc;i.push(it);var gt=b.options&&b.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function kt(){var W;return W=u.pop()||b.lex()||dt,typeof W!="number"&&(W instanceof Array&&(u=W,W=u.pop()),W=l.symbols_[W]||W),W}for(var D,G,L,at,K={},J,F,ut,tt;;){if(G=d[d.length-1],this.defaultActions[G]?L=this.defaultActions[G]:((D===null||typeof D>"u")&&(D=kt()),L=Q[G]&&Q[G][D]),typeof L>"u"||!L.length||!L[0]){var nt="";tt=[];for(J in Q[G])this.terminals_[J]&&J>Et&&tt.push("'"+this.terminals_[J]+"'");b.showPosition?nt="Parse error on line "+(q+1)+`: -`+b.showPosition()+` -Expecting `+tt.join(", ")+", got '"+(this.terminals_[D]||D)+"'":nt="Parse error on line "+(q+1)+": Unexpected "+(D==dt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(nt,{text:b.match,token:this.terminals_[D]||D,line:b.yylineno,loc:it,expected:tt})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+D);switch(L[0]){case 1:d.push(D),m.push(b.yytext),i.push(b.yylloc),d.push(L[1]),D=null,ht=b.yyleng,h=b.yytext,q=b.yylineno,it=b.yylloc;break;case 2:if(F=this.productions_[L[1]][1],K.$=m[m.length-F],K._$={first_line:i[i.length-(F||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(F||1)].first_column,last_column:i[i.length-1].last_column},gt&&(K._$.range=[i[i.length-(F||1)].range[0],i[i.length-1].range[1]]),at=this.performAction.apply(K,[h,ht,q,H.yy,L[1],m,i].concat(mt)),typeof at<"u")return at;F&&(d=d.slice(0,-1*F*2),m=m.slice(0,-1*F),i=i.slice(0,-1*F)),d.push(this.productions_[L[1]][0]),m.push(K.$),i.push(K._$),ut=Q[d[d.length-2]][d[d.length-1]],d.push(ut);break;case 3:return!0}}return!0}},z=function(){var M={EOF:1,parseError:function(l,d){if(this.yy.parser)this.yy.parser.parseError(l,d);else throw new Error(l)},setInput: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},input: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},unput:function(a){var l=a.length,d=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 u=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),d.length-1&&(this.yylineno-=d.length-1);var m=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:d?(d.length===u.length?this.yylloc.first_column:0)+u[u.length-d.length].length-d[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var a=this.pastInput(),l=new Array(a.length+1).join("-");return a+this.upcomingInput()+` -`+l+"^"},test_match:function(a,l){var d,u,m;if(this.options.backtrack_lexer&&(m={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&&(m.yylloc.range=this.yylloc.range.slice(0))),u=a[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.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],d=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var i in m)this[i]=m[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,l,d,u;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),i=0;il[0].length)){if(l=d,u=i,this.options.backtrack_lexer){if(a=this.test_match(d,m[i]),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,m[u]),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})},lex:function(){var l=this.next();return l||this.lex()},begin:function(l){this.conditionStack.push(l)},popState:function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},pushState:function(l){this.begin(l)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(l,d,u,m){switch(u){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),52;case 8:return this.begin("type_directive"),53;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),55;case 11:return 54;case 12:return 11;case 13:break;case 14:return 9;case 15:return 31;case 16:return 51;case 17:return 4;case 18:return this.begin("block"),20;case 19:return 39;case 20:break;case 21:return 40;case 22:return 37;case 23:return 37;case 24:return 41;case 25:break;case 26:return this.popState(),22;case 27:return d.yytext[0];case 28:return 44;case 29:return 46;case 30:return 46;case 31:return 46;case 32:return 44;case 33:return 44;case 34:return 45;case 35:return 45;case 36:return 45;case 37:return 45;case 38:return 45;case 39:return 46;case 40:return 45;case 41:return 46;case 42:return 47;case 43:return 47;case 44:return 47;case 45:return 47;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 48;case 50:return 49;case 51:return 50;case 52:return 50;case 53:return 49;case 54:return 49;case 55:return 49;case 56:return 30;case 57:return d.yytext[0];case 58:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/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,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[19,20,21,22,23,24,25,26,27],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,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],inclusive:!0}}};return M}();I.lexer=z;function S(){this.yy={}}return S.prototype=I,I.Parser=S,new S}();ct.parser=ct;const Xt=ct;let $={},lt=[];const Qt={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"},$t={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},jt=function(t,r,e){At.parseDirective(this,t,r,e)},pt=function(t){return $[t]===void 0&&($[t]={attributes:[]},et.info("Added new entity :",t)),$[t]},qt=()=>$,Jt=function(t,r){let e=pt(t),n;for(n=r.length-1;n>=0;n--)e.attributes.push(r[n]),et.debug("Added attribute ",r[n].attributeName)},te=function(t,r,e,n){let s={entityA:t,roleA:r,entityB:e,relSpec:n};lt.push(s),et.debug("Added new relationship :",s)},ee=()=>lt,re=function(){$={},lt=[],Mt()},ie={Cardinality:Qt,Identification:$t,parseDirective:jt,getConfig:()=>V().er,addEntity:pt,addAttributes:Jt,getEntities:qt,addRelationship:te,getRelationships:ee,clear:re,setAccTitle:xt,getAccTitle:Rt,setAccDescription:Ot,getAccDescription:bt,setDiagramTitle:Nt,getDiagramTitle:Tt},B={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},ae=function(t,r){let e;t.append("defs").append("marker").attr("id",B.MD_PARENT_START).attr("refX",0).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",B.MD_PARENT_END).attr("refX",19).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"),t.append("defs").append("marker").attr("id",B.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",B.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),e=t.append("defs").append("marker").attr("id",B.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),e.append("circle").attr("stroke",r.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),e.append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M9,0 L9,18"),e=t.append("defs").append("marker").attr("id",B.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),e.append("circle").attr("stroke",r.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),e.append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",B.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",r.stroke).attr("fill","none").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",B.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),e=t.append("defs").append("marker").attr("id",B.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),e.append("circle").attr("stroke",r.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),e.append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),e=t.append("defs").append("marker").attr("id",B.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),e.append("circle").attr("stroke",r.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),e.append("path").attr("stroke",r.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},C={ERMarkers:B,insertMarkers:ae},ne=/[^\dA-Za-z](\W)*/g;let R={},j=new Map;const se=function(t){const r=Object.keys(t);for(const e of r)R[e]=t[e]},oe=(t,r,e)=>{const n=R.entityPadding/3,s=R.entityPadding/3,p=R.fontSize*.85,f=r.node().getBBox(),o=[];let c=!1,_=!1,E=0,g=0,O=0,y=0,A=f.height+n*2,Y=1;e.forEach(N=>{N.attributeKeyTypeList!==void 0&&N.attributeKeyTypeList.length>0&&(c=!0),N.attributeComment!==void 0&&(_=!0)}),e.forEach(N=>{const v=`${r.node().id}-attr-${Y}`;let k=0;const x=wt(N.attributeType),P=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",V().fontFamily).style("font-size",p+"px").text(x),Z=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",V().fontFamily).style("font-size",p+"px").text(N.attributeName),I={};I.tn=P,I.nn=Z;const z=P.node().getBBox(),S=Z.node().getBBox();if(E=Math.max(E,z.width),g=Math.max(g,S.width),k=Math.max(z.height,S.height),c){const M=N.attributeKeyTypeList!==void 0?N.attributeKeyTypeList.join(","):"",a=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",V().fontFamily).style("font-size",p+"px").text(M);I.kn=a;const l=a.node().getBBox();O=Math.max(O,l.width),k=Math.max(k,l.height)}if(_){const M=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",V().fontFamily).style("font-size",p+"px").text(N.attributeComment||"");I.cn=M;const a=M.node().getBBox();y=Math.max(y,a.width),k=Math.max(k,a.height)}I.height=k,o.push(I),A+=k+n*2,Y+=1});let U=4;c&&(U+=2),_&&(U+=2);const X=E+g+O+y,w={width:Math.max(R.minEntityWidth,Math.max(f.width+R.entityPadding*2,X+s*U)),height:e.length>0?A:Math.max(R.minEntityHeight,f.height+R.entityPadding*2)};if(e.length>0){const N=Math.max(0,(w.width-X-s*U)/(U/2));r.attr("transform","translate("+w.width/2+","+(n+f.height/2)+")");let v=f.height+n*2,k="attributeBoxOdd";o.forEach(x=>{const P=v+n+x.height/2;x.tn.attr("transform","translate("+s+","+P+")");const Z=t.insert("rect","#"+x.tn.node().id).classed(`er ${k}`,!0).attr("x",0).attr("y",v).attr("width",E+s*2+N).attr("height",x.height+n*2),I=parseFloat(Z.attr("x"))+parseFloat(Z.attr("width"));x.nn.attr("transform","translate("+(I+s)+","+P+")");const z=t.insert("rect","#"+x.nn.node().id).classed(`er ${k}`,!0).attr("x",I).attr("y",v).attr("width",g+s*2+N).attr("height",x.height+n*2);let S=parseFloat(z.attr("x"))+parseFloat(z.attr("width"));if(c){x.kn.attr("transform","translate("+(S+s)+","+P+")");const M=t.insert("rect","#"+x.kn.node().id).classed(`er ${k}`,!0).attr("x",S).attr("y",v).attr("width",O+s*2+N).attr("height",x.height+n*2);S=parseFloat(M.attr("x"))+parseFloat(M.attr("width"))}_&&(x.cn.attr("transform","translate("+(S+s)+","+P+")"),t.insert("rect","#"+x.cn.node().id).classed(`er ${k}`,"true").attr("x",S).attr("y",v).attr("width",y+s*2+N).attr("height",x.height+n*2)),v+=x.height+n*2,k=k==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else w.height=Math.max(R.minEntityHeight,A),r.attr("transform","translate("+w.width/2+","+w.height/2+")");return w},ce=function(t,r,e){const n=Object.keys(r);let s;return n.forEach(function(p){const f=ye(p,"entity");j.set(p,f);const o=t.append("g").attr("id",f);s=s===void 0?f:s;const c="text-"+f,_=o.append("text").classed("er entityLabel",!0).attr("id",c).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",V().fontFamily).style("font-size",R.fontSize+"px").text(p),{width:E,height:g}=oe(o,_,r[p].attributes),y=o.insert("rect","#"+c).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",E).attr("height",g).node().getBBox();e.setNode(f,{width:y.width,height:y.height,shape:"rect",id:f})}),s},le=function(t,r){r.nodes().forEach(function(e){e!==void 0&&r.node(e)!==void 0&&t.select("#"+e).attr("transform","translate("+(r.node(e).x-r.node(e).width/2)+","+(r.node(e).y-r.node(e).height/2)+" )")})},_t=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},he=function(t,r){return t.forEach(function(e){r.setEdge(j.get(e.entityA),j.get(e.entityB),{relationship:e},_t(e))}),t};let ft=0;const de=function(t,r,e,n,s){ft++;const p=e.edge(j.get(r.entityA),j.get(r.entityB),_t(r)),f=Bt().x(function(A){return A.x}).y(function(A){return A.y}).curve(It),o=t.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",f(p.points)).style("stroke",R.stroke).style("fill","none");r.relSpec.relType===s.db.Identification.NON_IDENTIFYING&&o.attr("stroke-dasharray","8,8");let c="";switch(R.arrowMarkerAbsolute&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),r.relSpec.cardA){case s.db.Cardinality.ZERO_OR_ONE:o.attr("marker-end","url("+c+"#"+C.ERMarkers.ZERO_OR_ONE_END+")");break;case s.db.Cardinality.ZERO_OR_MORE:o.attr("marker-end","url("+c+"#"+C.ERMarkers.ZERO_OR_MORE_END+")");break;case s.db.Cardinality.ONE_OR_MORE:o.attr("marker-end","url("+c+"#"+C.ERMarkers.ONE_OR_MORE_END+")");break;case s.db.Cardinality.ONLY_ONE:o.attr("marker-end","url("+c+"#"+C.ERMarkers.ONLY_ONE_END+")");break;case s.db.Cardinality.MD_PARENT:o.attr("marker-end","url("+c+"#"+C.ERMarkers.MD_PARENT_END+")");break}switch(r.relSpec.cardB){case s.db.Cardinality.ZERO_OR_ONE:o.attr("marker-start","url("+c+"#"+C.ERMarkers.ZERO_OR_ONE_START+")");break;case s.db.Cardinality.ZERO_OR_MORE:o.attr("marker-start","url("+c+"#"+C.ERMarkers.ZERO_OR_MORE_START+")");break;case s.db.Cardinality.ONE_OR_MORE:o.attr("marker-start","url("+c+"#"+C.ERMarkers.ONE_OR_MORE_START+")");break;case s.db.Cardinality.ONLY_ONE:o.attr("marker-start","url("+c+"#"+C.ERMarkers.ONLY_ONE_START+")");break;case s.db.Cardinality.MD_PARENT:o.attr("marker-start","url("+c+"#"+C.ERMarkers.MD_PARENT_START+")");break}const _=o.node().getTotalLength(),E=o.node().getPointAtLength(_*.5),g="rel"+ft,y=t.append("text").classed("er relationshipLabel",!0).attr("id",g).attr("x",E.x).attr("y",E.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",V().fontFamily).style("font-size",R.fontSize+"px").text(r.roleA).node().getBBox();t.insert("rect","#"+g).classed("er relationshipLabelBox",!0).attr("x",E.x-y.width/2).attr("y",E.y-y.height/2).attr("width",y.width).attr("height",y.height)},ue=function(t,r,e,n){R=V().er,et.info("Drawing ER diagram");const s=V().securityLevel;let p;s==="sandbox"&&(p=st("#i"+r));const o=(s==="sandbox"?st(p.nodes()[0].contentDocument.body):st("body")).select(`[id='${r}']`);C.insertMarkers(o,R);let c;c=new St({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:R.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=ce(o,n.db.getEntities(),c),E=he(n.db.getRelationships(),c);Lt(c),le(o,c),E.forEach(function(Y){de(o,Y,c,_,n)});const g=R.diagramPadding;vt.insertTitle(o,"entityTitleText",R.titleTopMargin,n.db.getDiagramTitle());const O=o.node().getBBox(),y=O.width+g*2,A=O.height+g*2;Dt(o,A,y,R.useMaxWidth),o.attr("viewBox",`${O.x-g} ${O.y-g} ${y} ${A}`)},fe="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function ye(t="",r=""){const e=t.replace(ne,"");return`${yt(r)}${yt(e)}${Kt(t,fe)}`}function yt(t=""){return t.length>0?`${t}-`:""}const pe={setConf:se,draw:ue},_e=t=>` - .entityBox { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxOdd { - fill: ${t.attributeBackgroundColorOdd}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxEven { - fill: ${t.attributeBackgroundColorEven}; - stroke: ${t.nodeBorder}; - } - - .relationshipLabelBox { - fill: ${t.tertiaryColor}; - opacity: 0.7; - background-color: ${t.tertiaryColor}; - rect { - opacity: 0.5; - } - } - - .relationshipLine { - stroke: ${t.lineColor}; - } - - .entityTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } - #MD_PARENT_START { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - #MD_PARENT_END { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - -`,Ee=_e,be={parser:Xt,db:ie,renderer:pe,styles:Ee};export{be as diagram}; -//# sourceMappingURL=erDiagram-f6946109-z4VASuEu.js.map diff --git a/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js.map b/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js.map deleted file mode 100644 index 75fb97b..0000000 --- a/excalidraw/excalidraw-app/build/assets/erDiagram-f6946109-z4VASuEu.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"erDiagram-f6946109-z4VASuEu.js","sources":["../../../node_modules/uuid/dist/esm-browser/regex.js","../../../node_modules/uuid/dist/esm-browser/validate.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/parse.js","../../../node_modules/uuid/dist/esm-browser/v35.js","../../../node_modules/uuid/dist/esm-browser/sha1.js","../../../node_modules/uuid/dist/esm-browser/v5.js","../../../node_modules/mermaid/dist/erDiagram-f6946109.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, r as setDiagramTitle, t as getDiagramTitle, m as mermaidAPI, l as log, v as clear$1, u as utils, i as configureSvgSize, x as parseGenericTypes } from \"./mermaid-b0ad2de1.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport { v5 } from \"uuid\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 23, 25, 27, 29, 30, 31, 52], $V3 = [1, 17], $V4 = [1, 18], $V5 = [1, 19], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 25], $Va = [1, 30], $Vb = [1, 31], $Vc = [1, 32], $Vd = [1, 33], $Ve = [1, 34], $Vf = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 48, 52], $Vg = [1, 46], $Vh = [30, 31, 49, 50], $Vi = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 52], $Vj = [44, 45, 46, 47, 48], $Vk = [22, 37], $Vl = [1, 66], $Vm = [1, 65], $Vn = [22, 37, 39, 41];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"ER_DIAGRAM\": 4, \"document\": 5, \"EOF\": 6, \"directive\": 7, \"line\": 8, \"SPACE\": 9, \"statement\": 10, \"NEWLINE\": 11, \"openDirective\": 12, \"typeDirective\": 13, \"closeDirective\": 14, \":\": 15, \"argDirective\": 16, \"entityName\": 17, \"relSpec\": 18, \"role\": 19, \"BLOCK_START\": 20, \"attributes\": 21, \"BLOCK_STOP\": 22, \"title\": 23, \"title_value\": 24, \"acc_title\": 25, \"acc_title_value\": 26, \"acc_descr\": 27, \"acc_descr_value\": 28, \"acc_descr_multiline_value\": 29, \"ALPHANUM\": 30, \"ENTITY_NAME\": 31, \"attribute\": 32, \"attributeType\": 33, \"attributeName\": 34, \"attributeKeyTypeList\": 35, \"attributeComment\": 36, \"ATTRIBUTE_WORD\": 37, \"attributeKeyType\": 38, \"COMMA\": 39, \"ATTRIBUTE_KEY\": 40, \"COMMENT\": 41, \"cardinality\": 42, \"relType\": 43, \"ZERO_OR_ONE\": 44, \"ZERO_OR_MORE\": 45, \"ONE_OR_MORE\": 46, \"ONLY_ONE\": 47, \"MD_PARENT\": 48, \"NON_IDENTIFYING\": 49, \"IDENTIFYING\": 50, \"WORD\": 51, \"open_directive\": 52, \"type_directive\": 53, \"arg_directive\": 54, \"close_directive\": 55, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 9: \"SPACE\", 11: \"NEWLINE\", 15: \":\", 20: \"BLOCK_START\", 22: \"BLOCK_STOP\", 23: \"title\", 24: \"title_value\", 25: \"acc_title\", 26: \"acc_title_value\", 27: \"acc_descr\", 28: \"acc_descr_value\", 29: \"acc_descr_multiline_value\", 30: \"ALPHANUM\", 31: \"ENTITY_NAME\", 37: \"ATTRIBUTE_WORD\", 39: \"COMMA\", 40: \"ATTRIBUTE_KEY\", 41: \"COMMENT\", 44: \"ZERO_OR_ONE\", 45: \"ZERO_OR_MORE\", 46: \"ONE_OR_MORE\", 47: \"ONLY_ONE\", 48: \"MD_PARENT\", 49: \"NON_IDENTIFYING\", 50: \"IDENTIFYING\", 51: \"WORD\", 52: \"open_directive\", 53: \"type_directive\", 54: \"arg_directive\", 55: \"close_directive\" },\n productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n break;\n case 3:\n this.$ = [];\n break;\n case 4:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 5:\n case 6:\n this.$ = $$[$0];\n break;\n case 7:\n case 8:\n this.$ = [];\n break;\n case 12:\n yy.addEntity($$[$0 - 4]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n break;\n case 13:\n yy.addEntity($$[$0 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 14:\n yy.addEntity($$[$0 - 2]);\n break;\n case 15:\n yy.addEntity($$[$0]);\n break;\n case 16:\n case 17:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 18:\n case 19:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 20:\n case 44:\n this.$ = $$[$0];\n break;\n case 21:\n case 42:\n case 43:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 22:\n case 30:\n this.$ = [$$[$0]];\n break;\n case 23:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 24:\n this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };\n break;\n case 25:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };\n break;\n case 26:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 27:\n this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 28:\n case 29:\n case 32:\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 33:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 34:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 35:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 36:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 37:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 38:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 39:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 40:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 41:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n case 45:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 46:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 47:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 48:\n yy.parseDirective(\"}%%\", \"close_directive\", \"er\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 52: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 52: $V1 }, { 13: 8, 53: [1, 9] }, { 53: [2, 45] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 52: $V1 }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 55: $V9 }, o([15, 55], [2, 46]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 52: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), o($V2, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd, 48: $Ve }), { 24: [1, 35] }, { 26: [1, 36] }, { 28: [1, 37] }, o($V2, [2, 19]), o($Vf, [2, 20]), o($Vf, [2, 21]), { 11: [1, 38] }, { 16: 39, 54: [1, 40] }, { 11: [2, 48] }, o($V2, [2, 5]), { 17: 41, 30: $V7, 31: $V8 }, { 21: 42, 22: [1, 43], 32: 44, 33: 45, 37: $Vg }, { 43: 47, 49: [1, 48], 50: [1, 49] }, o($Vh, [2, 35]), o($Vh, [2, 36]), o($Vh, [2, 37]), o($Vh, [2, 38]), o($Vh, [2, 39]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($Vi, [2, 9]), { 14: 50, 55: $V9 }, { 55: [2, 47] }, { 15: [1, 51] }, { 22: [1, 52] }, o($V2, [2, 14]), { 21: 53, 22: [2, 22], 32: 44, 33: 45, 37: $Vg }, { 34: 54, 37: [1, 55] }, { 37: [2, 28] }, { 42: 56, 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd, 48: $Ve }, o($Vj, [2, 40]), o($Vj, [2, 41]), { 11: [1, 57] }, { 19: 58, 30: [1, 61], 31: [1, 60], 51: [1, 59] }, o($V2, [2, 13]), { 22: [2, 23] }, o($Vk, [2, 24], { 35: 62, 36: 63, 38: 64, 40: $Vl, 41: $Vm }), o([22, 37, 40, 41], [2, 29]), o([30, 31], [2, 34]), o($Vi, [2, 10]), o($V2, [2, 12]), o($V2, [2, 42]), o($V2, [2, 43]), o($V2, [2, 44]), o($Vk, [2, 25], { 36: 67, 39: [1, 68], 41: $Vm }), o($Vk, [2, 26]), o($Vn, [2, 30]), o($Vk, [2, 33]), o($Vn, [2, 32]), o($Vk, [2, 27]), { 38: 69, 40: $Vl }, o($Vn, [2, 31])],\n defaultActions: { 5: [2, 45], 7: [2, 2], 25: [2, 48], 40: [2, 47], 46: [2, 28], 53: [2, 23] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 25;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 27;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n this.begin(\"open_directive\");\n return 52;\n case 8:\n this.begin(\"type_directive\");\n return 53;\n case 9:\n this.popState();\n this.begin(\"arg_directive\");\n return 15;\n case 10:\n this.popState();\n this.popState();\n return 55;\n case 11:\n return 54;\n case 12:\n return 11;\n case 13:\n break;\n case 14:\n return 9;\n case 15:\n return 31;\n case 16:\n return 51;\n case 17:\n return 4;\n case 18:\n this.begin(\"block\");\n return 20;\n case 19:\n return 39;\n case 20:\n break;\n case 21:\n return 40;\n case 22:\n return 37;\n case 23:\n return 37;\n case 24:\n return 41;\n case 25:\n break;\n case 26:\n this.popState();\n return 22;\n case 27:\n return yy_.yytext[0];\n case 28:\n return 44;\n case 29:\n return 46;\n case 30:\n return 46;\n case 31:\n return 46;\n case 32:\n return 44;\n case 33:\n return 44;\n case 34:\n return 45;\n case 35:\n return 45;\n case 36:\n return 45;\n case 37:\n return 45;\n case 38:\n return 45;\n case 39:\n return 46;\n case 40:\n return 45;\n case 41:\n return 46;\n case 42:\n return 47;\n case 43:\n return 47;\n case 44:\n return 47;\n case 45:\n return 47;\n case 46:\n return 44;\n case 47:\n return 45;\n case 48:\n return 46;\n case 49:\n return 48;\n case 50:\n return 49;\n case 51:\n return 50;\n case 52:\n return 50;\n case 53:\n return 49;\n case 54:\n return 49;\n case 55:\n return 49;\n case 56:\n return 30;\n case 57:\n return yy_.yytext[0];\n case 58:\n return 6;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:,)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\\-_\\[\\]\\(\\)]*)/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/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, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"open_directive\": { \"rules\": [8], \"inclusive\": false }, \"type_directive\": { \"rules\": [9, 10], \"inclusive\": false }, \"arg_directive\": { \"rules\": [10, 11], \"inclusive\": false }, \"block\": { \"rules\": [19, 20, 21, 22, 23, 24, 25, 26, 27], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 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], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst erParser = parser;\nlet entities = {};\nlet relationships = [];\nconst Cardinality = {\n ZERO_OR_ONE: \"ZERO_OR_ONE\",\n ZERO_OR_MORE: \"ZERO_OR_MORE\",\n ONE_OR_MORE: \"ONE_OR_MORE\",\n ONLY_ONE: \"ONLY_ONE\",\n MD_PARENT: \"MD_PARENT\"\n};\nconst Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n};\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst addEntity = function(name) {\n if (entities[name] === void 0) {\n entities[name] = { attributes: [] };\n log.info(\"Added new entity :\", name);\n }\n return entities[name];\n};\nconst getEntities = () => entities;\nconst addAttributes = function(entityName, attribs) {\n let entity = addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].attributeName);\n }\n};\nconst addRelationship = function(entA, rolA, entB, rSpec) {\n let rel = {\n entityA: entA,\n roleA: rolA,\n entityB: entB,\n relSpec: rSpec\n };\n relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n};\nconst getRelationships = () => relationships;\nconst clear = function() {\n entities = {};\n relationships = [];\n clear$1();\n};\nconst erDb = {\n Cardinality,\n Identification,\n parseDirective,\n getConfig: () => getConfig().er,\n addEntity,\n addAttributes,\n getEntities,\n addRelationship,\n getRelationships,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst ERMarkers = {\n ONLY_ONE_START: \"ONLY_ONE_START\",\n ONLY_ONE_END: \"ONLY_ONE_END\",\n ZERO_OR_ONE_START: \"ZERO_OR_ONE_START\",\n ZERO_OR_ONE_END: \"ZERO_OR_ONE_END\",\n ONE_OR_MORE_START: \"ONE_OR_MORE_START\",\n ONE_OR_MORE_END: \"ONE_OR_MORE_END\",\n ZERO_OR_MORE_START: \"ZERO_OR_MORE_START\",\n ZERO_OR_MORE_END: \"ZERO_OR_MORE_END\",\n MD_PARENT_END: \"MD_PARENT_END\",\n MD_PARENT_START: \"MD_PARENT_START\"\n};\nconst insertMarkers = function(elem, conf2) {\n let marker;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_START).attr(\"refX\", 0).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_END).attr(\"refX\", 19).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_END).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_END).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,0 L21,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_END).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_END).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n return;\n};\nconst erMarkers = {\n ERMarkers,\n insertMarkers\n};\nconst BAD_ID_CHARS_REGEXP = /[^\\dA-Za-z](\\W)*/g;\nlet conf = {};\nlet entityNameIds = /* @__PURE__ */ new Map();\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst drawAttributes = (groupNode, entityTextNode, attributes) => {\n const heightPadding = conf.entityPadding / 3;\n const widthPadding = conf.entityPadding / 3;\n const attrFontSize = conf.fontSize * 0.85;\n const labelBBox = entityTextNode.node().getBBox();\n const attributeNodes = [];\n let hasKeyType = false;\n let hasComment = false;\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeyWidth = 0;\n let maxCommentWidth = 0;\n let cumulativeHeight = labelBBox.height + heightPadding * 2;\n let attrNum = 1;\n attributes.forEach((item) => {\n if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {\n hasKeyType = true;\n }\n if (item.attributeComment !== void 0) {\n hasComment = true;\n }\n });\n attributes.forEach((item) => {\n const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;\n let nodeHeight = 0;\n const attributeType = parseGenericTypes(item.attributeType);\n const typeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-type`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(attributeType);\n const nameNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-name`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeName);\n const attributeNode = {};\n attributeNode.tn = typeNode;\n attributeNode.nn = nameNode;\n const typeBBox = typeNode.node().getBBox();\n const nameBBox = nameNode.node().getBBox();\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);\n maxNameWidth = Math.max(maxNameWidth, nameBBox.width);\n nodeHeight = Math.max(typeBBox.height, nameBBox.height);\n if (hasKeyType) {\n const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(\",\") : \"\";\n const keyTypeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-key`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(keyTypeNodeText);\n attributeNode.kn = keyTypeNode;\n const keyTypeBBox = keyTypeNode.node().getBBox();\n maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);\n nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);\n }\n if (hasComment) {\n const commentNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-comment`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeComment || \"\");\n attributeNode.cn = commentNode;\n const commentNodeBBox = commentNode.node().getBBox();\n maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);\n nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);\n }\n attributeNode.height = nodeHeight;\n attributeNodes.push(attributeNode);\n cumulativeHeight += nodeHeight + heightPadding * 2;\n attrNum += 1;\n });\n let widthPaddingFactor = 4;\n if (hasKeyType) {\n widthPaddingFactor += 2;\n }\n if (hasComment) {\n widthPaddingFactor += 2;\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;\n const bBox = {\n width: Math.max(\n conf.minEntityWidth,\n Math.max(\n labelBBox.width + conf.entityPadding * 2,\n maxWidth + widthPadding * widthPaddingFactor\n )\n ),\n height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)\n };\n if (attributes.length > 0) {\n const spareColumnWidth = Math.max(\n 0,\n (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)\n );\n entityTextNode.attr(\n \"transform\",\n \"translate(\" + bBox.width / 2 + \",\" + (heightPadding + labelBBox.height / 2) + \")\"\n );\n let heightOffset = labelBBox.height + heightPadding * 2;\n let attribStyle = \"attributeBoxOdd\";\n attributeNodes.forEach((attributeNode) => {\n const alignY = heightOffset + heightPadding + attributeNode.height / 2;\n attributeNode.tn.attr(\"transform\", \"translate(\" + widthPadding + \",\" + alignY + \")\");\n const typeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", 0).attr(\"y\", heightOffset).attr(\"width\", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n const nameXOffset = parseFloat(typeRect.attr(\"x\")) + parseFloat(typeRect.attr(\"width\"));\n attributeNode.nn.attr(\n \"transform\",\n \"translate(\" + (nameXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const nameRect = groupNode.insert(\"rect\", \"#\" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", nameXOffset).attr(\"y\", heightOffset).attr(\"width\", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n let keyTypeAndCommentXOffset = parseFloat(nameRect.attr(\"x\")) + parseFloat(nameRect.attr(\"width\"));\n if (hasKeyType) {\n attributeNode.kn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const keyTypeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr(\"x\")) + parseFloat(keyTypeRect.attr(\"width\"));\n }\n if (hasComment) {\n attributeNode.cn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n groupNode.insert(\"rect\", \"#\" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, \"true\").attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n }\n heightOffset += attributeNode.height + heightPadding * 2;\n attribStyle = attribStyle === \"attributeBoxOdd\" ? \"attributeBoxEven\" : \"attributeBoxOdd\";\n });\n } else {\n bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);\n entityTextNode.attr(\"transform\", \"translate(\" + bBox.width / 2 + \",\" + bBox.height / 2 + \")\");\n }\n return bBox;\n};\nconst drawEntities = function(svgNode, entities2, graph) {\n const keys = Object.keys(entities2);\n let firstOne;\n keys.forEach(function(entityName) {\n const entityId = generateId(entityName, \"entity\");\n entityNameIds.set(entityName, entityId);\n const groupNode = svgNode.append(\"g\").attr(\"id\", entityId);\n firstOne = firstOne === void 0 ? entityId : firstOne;\n const textId = \"text-\" + entityId;\n const textNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", textId).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(entityName);\n const { width: entityWidth, height: entityHeight } = drawAttributes(\n groupNode,\n textNode,\n entities2[entityName].attributes\n );\n const rectNode = groupNode.insert(\"rect\", \"#\" + textId).classed(\"er entityBox\", true).attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", entityWidth).attr(\"height\", entityHeight);\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(entityId, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: entityId\n });\n });\n return firstOne;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n};\nconst getEdgeName = function(rel) {\n return (rel.entityA + rel.roleA + rel.entityB).replace(/\\s/g, \"\");\n};\nconst addRelationships = function(relationships2, g) {\n relationships2.forEach(function(r) {\n g.setEdge(\n entityNameIds.get(r.entityA),\n entityNameIds.get(r.entityB),\n { relationship: r },\n getEdgeName(r)\n );\n });\n return relationships2;\n};\nlet relCnt = 0;\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n relCnt++;\n const edge = g.edge(\n entityNameIds.get(rel.entityA),\n entityNameIds.get(rel.entityB),\n getEdgeName(rel)\n );\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = svg.insert(\"path\", \"#\" + insert).classed(\"er relationshipLine\", true).attr(\"d\", lineFunction(edge.points)).style(\"stroke\", conf.stroke).style(\"fill\", \"none\");\n if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {\n svgPath.attr(\"stroke-dasharray\", \"8,8\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (rel.relSpec.cardA) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_END + \")\");\n break;\n }\n switch (rel.relSpec.cardB) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_START + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_START + \")\");\n break;\n }\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n const labelNode = svg.append(\"text\").classed(\"er relationshipLabel\", true).attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).style(\"text-anchor\", \"middle\").style(\"dominant-baseline\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(rel.roleA);\n const labelBBox = labelNode.node().getBBox();\n svg.insert(\"rect\", \"#\" + labelId).classed(\"er relationshipLabelBox\", true).attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height);\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().er;\n log.info(\"Drawing ER diagram\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n erMarkers.insertMarkers(svg, conf);\n let g;\n g = new graphlib.Graph({\n multigraph: true,\n directed: true,\n compound: false\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);\n const relationships2 = addRelationships(diagObj.db.getRelationships(), g);\n layout(g);\n adjustEntities(svg, g);\n relationships2.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);\n });\n const padding = conf.diagramPadding;\n utils.insertTitle(svg, \"entityTitleText\", conf.titleTopMargin, diagObj.db.getDiagramTitle());\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst MERMAID_ERDIAGRAM_UUID = \"28e9f9db-3c8d-5aa5-9faf-44286ae5937c\";\nfunction generateId(str = \"\", prefix = \"\") {\n const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, \"\");\n return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(\n str,\n MERMAID_ERDIAGRAM_UUID\n )}`;\n}\nfunction strWithHyphen(str = \"\") {\n return str.length > 0 ? `${str}-` : \"\";\n}\nconst erRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${options.attributeBackgroundColorOdd};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${options.attributeBackgroundColorEven};\n stroke: ${options.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${options.tertiaryColor};\n opacity: 0.7;\n background-color: ${options.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${options.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n } \n #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n \n`;\nconst erStyles = getStyles;\nconst diagram = {\n parser: erParser,\n db: erDb,\n renderer: erRenderer,\n styles: erStyles\n};\nexport {\n diagram\n};\n"],"names":["REGEX","validate","uuid","byteToHex","i","unsafeStringify","arr","offset","parse","v","stringToBytes","str","bytes","DNS","URL","v35","name","version","hashfunc","generateUUID","value","namespace","buf","_namespace","f","s","x","y","z","ROTL","n","sha1","K","H","msg","l","N","M","j","W","t","a","b","c","d","e","T","v5","v5$1","parser","o","k","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","erParser","entities","relationships","Cardinality","Identification","parseDirective","statement","context","type","mermaidAPI","addEntity","log","getEntities","addAttributes","entityName","attribs","entity","addRelationship","entA","rolA","entB","rSpec","rel","getRelationships","clear","clear$1","erDb","getConfig","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","ERMarkers","insertMarkers","elem","conf2","marker","erMarkers","BAD_ID_CHARS_REGEXP","conf","entityNameIds","setConf","cnf","keys","key","drawAttributes","groupNode","entityTextNode","attributes","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","item","attrPrefix","nodeHeight","attributeType","parseGenericTypes","typeNode","nameNode","attributeNode","typeBBox","nameBBox","keyTypeNodeText","keyTypeNode","keyTypeBBox","commentNode","commentNodeBBox","widthPaddingFactor","maxWidth","bBox","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","svgNode","entities2","graph","firstOne","entityId","generateId","textId","textNode","entityWidth","entityHeight","rectBBox","adjustEntities","getEdgeName","addRelationships","relationships2","g","relCnt","drawRelationshipFromLayout","svg","insert","diagObj","edge","lineFunction","line","curveBasis","svgPath","url","labelPoint","labelId","draw","text","id","_version","securityLevel","sandboxElement","select","graphlib.Graph","firstEntity","layout","padding","utils","svgBounds","width","height","configureSvgSize","MERMAID_ERDIAGRAM_UUID","prefix","simplifiedStr","strWithHyphen","erRenderer","getStyles","options","erStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js b/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js deleted file mode 100644 index 49a02b7..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js +++ /dev/null @@ -1,2 +0,0 @@ -const p=async e=>{const i=await e.getFile();return i.handle=e,i};var l=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const i=[];e.forEach((a,c)=>{i[c]={description:a.description||"",accept:{}},a.mimeTypes?a.mimeTypes.map(s=>{i[c].accept[s]=a.extensions||[]}):i[c].accept["*/*"]=a.extensions||[]});const n=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:i,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),t=await Promise.all(n.map(p));return e[0].multiple?t:t[0]};export{l as default}; -//# sourceMappingURL=file-open-002ab408-YYr_q30i.js.map diff --git a/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js.map b/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js.map deleted file mode 100644 index e4ba06b..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-open-002ab408-YYr_q30i.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"file-open-002ab408-YYr_q30i.js","sources":["../../../node_modules/browser-fs-access/dist/file-open-002ab408.js"],"sourcesContent":["const e=async e=>{const t=await e.getFile();return t.handle=e,t};var t=async(t=[{}])=>{Array.isArray(t)||(t=[t]);const i=[];t.forEach((e,t)=>{i[t]={description:e.description||\"\",accept:{}},e.mimeTypes?e.mimeTypes.map(a=>{i[t].accept[a]=e.extensions||[]}):i[t].accept[\"*/*\"]=e.extensions||[]});const a=await window.showOpenFilePicker({id:t[0].id,startIn:t[0].startIn,types:i,multiple:t[0].multiple||!1,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}),c=await Promise.all(a.map(e));return t[0].multiple?c:c[0]};export{t as default};\n"],"names":["e","t","a","c"],"mappings":"AAAA,MAAMA,EAAE,MAAM,GAAG,CAAC,MAAMC,EAAE,MAAM,EAAE,QAAO,EAAG,OAAOA,EAAE,OAAO,EAAEA,CAAC,EAAK,IAACA,EAAE,MAAMA,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,QAAQA,CAAC,IAAIA,EAAE,CAACA,CAAC,GAAG,MAAM,EAAE,GAAGA,EAAE,QAAQ,CAACD,EAAEC,IAAI,CAAC,EAAEA,CAAC,EAAE,CAAC,YAAYD,EAAE,aAAa,GAAG,OAAO,EAAE,EAAEA,EAAE,UAAUA,EAAE,UAAU,IAAIE,GAAG,CAAC,EAAED,CAAC,EAAE,OAAOC,CAAC,EAAEF,EAAE,YAAY,CAAA,CAAE,CAAC,EAAE,EAAEC,CAAC,EAAE,OAAO,KAAK,EAAED,EAAE,YAAY,EAAE,CAAC,EAAE,MAAME,EAAE,MAAM,OAAO,mBAAmB,CAAC,GAAGD,EAAE,CAAC,EAAE,GAAG,QAAQA,EAAE,CAAC,EAAE,QAAQ,MAAM,EAAE,SAASA,EAAE,CAAC,EAAE,UAAU,GAAG,uBAAuBA,EAAE,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAEE,EAAE,MAAM,QAAQ,IAAID,EAAE,IAAIF,CAAC,CAAC,EAAE,OAAOC,EAAE,CAAC,EAAE,SAASE,EAAEA,EAAE,CAAC,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js b/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js deleted file mode 100644 index dc6c6e3..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js +++ /dev/null @@ -1,2 +0,0 @@ -var s=async(t=[{}])=>(Array.isArray(t)||(t=[t]),new Promise((c,l)=>{const e=document.createElement("input");e.type="file";const p=[...t.map(a=>a.mimeTypes||[]),...t.map(a=>a.extensions||[])].join();e.multiple=t[0].multiple||!1,e.accept=p||"";const n=a=>{typeof i=="function"&&i(),c(a)},i=t[0].legacySetup&&t[0].legacySetup(n,()=>i(l),e);e.addEventListener("change",()=>{n(e.multiple?Array.from(e.files):e.files[0])}),e.click()}));export{s as default}; -//# sourceMappingURL=file-open-7c801643-DzelrtLq.js.map diff --git a/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js.map b/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js.map deleted file mode 100644 index 825547c..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-open-7c801643-DzelrtLq.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"file-open-7c801643-DzelrtLq.js","sources":["../../../node_modules/browser-fs-access/dist/file-open-7c801643.js"],"sourcesContent":["var e=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((t,n)=>{const a=document.createElement(\"input\");a.type=\"file\";const i=[...e.map(e=>e.mimeTypes||[]),...e.map(e=>e.extensions||[])].join();a.multiple=e[0].multiple||!1,a.accept=i||\"\";const c=e=>{\"function\"==typeof l&&l(),t(e)},l=e[0].legacySetup&&e[0].legacySetup(c,()=>l(n),a);a.addEventListener(\"change\",()=>{c(a.multiple?Array.from(a.files):a.files[0])}),a.click()}));export{e as default};\n"],"names":["e","t","n","a","i","c","l"],"mappings":"AAAG,IAACA,EAAE,MAAMA,EAAE,CAAC,CAAA,CAAE,KAAK,MAAM,QAAQA,CAAC,IAAIA,EAAE,CAACA,CAAC,GAAG,IAAI,QAAQ,CAACC,EAAEC,IAAI,CAAC,MAAMC,EAAE,SAAS,cAAc,OAAO,EAAEA,EAAE,KAAK,OAAO,MAAMC,EAAE,CAAC,GAAGJ,EAAE,IAAIA,GAAGA,EAAE,WAAW,CAAA,CAAE,EAAE,GAAGA,EAAE,IAAIA,GAAGA,EAAE,YAAY,CAAE,CAAA,CAAC,EAAE,OAAOG,EAAE,SAASH,EAAE,CAAC,EAAE,UAAU,GAAGG,EAAE,OAAOC,GAAG,GAAG,MAAMC,EAAEL,GAAG,CAAa,OAAOM,GAAnB,YAAsBA,EAAC,EAAGL,EAAED,CAAC,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAE,aAAaA,EAAE,CAAC,EAAE,YAAYK,EAAE,IAAIC,EAAEJ,CAAC,EAAEC,CAAC,EAAEA,EAAE,iBAAiB,SAAS,IAAI,CAACE,EAAEF,EAAE,SAAS,MAAM,KAAKA,EAAE,KAAK,EAAEA,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,MAAO,CAAA,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js b/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js deleted file mode 100644 index d2eeca7..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js +++ /dev/null @@ -1,2 +0,0 @@ -var w=async(n,e={})=>{Array.isArray(e)&&(e=e[0]);const t=document.createElement("a");let r=n;"body"in n&&(r=await async function(s,u){const o=s.getReader(),i=new ReadableStream({start:l=>async function f(){return o.read().then(({done:b,value:p})=>{if(!b)return l.enqueue(p),f();l.close()})}()}),d=new Response(i),y=await d.blob();return o.releaseLock(),new Blob([y],{type:u})}(n.body,n.headers.get("content-type"))),t.download=e.fileName||"Untitled",t.href=URL.createObjectURL(await r);const c=()=>{typeof a=="function"&&a()},a=e.legacySetup&&e.legacySetup(c,()=>a(reject),t);return t.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(t.href),3e4),c()}),t.click(),null};export{w as default}; -//# sourceMappingURL=file-save-3189631c-fOa8IYo3.js.map diff --git a/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js.map b/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js.map deleted file mode 100644 index 59284d4..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-save-3189631c-fOa8IYo3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"file-save-3189631c-fOa8IYo3.js","sources":["../../../node_modules/browser-fs-access/dist/file-save-3189631c.js"],"sourcesContent":["var e=async(e,t={})=>{Array.isArray(t)&&(t=t[0]);const n=document.createElement(\"a\");let a=e;\"body\"in e&&(a=await async function(e,t){const n=e.getReader(),a=new ReadableStream({start:e=>async function t(){return n.read().then(({done:n,value:a})=>{if(!n)return e.enqueue(a),t();e.close()})}()}),r=new Response(a),c=await r.blob();return n.releaseLock(),new Blob([c],{type:t})}(e.body,e.headers.get(\"content-type\"))),n.download=t.fileName||\"Untitled\",n.href=URL.createObjectURL(await a);const r=()=>{\"function\"==typeof c&&c()},c=t.legacySetup&&t.legacySetup(r,()=>c(reject),n);return n.addEventListener(\"click\",()=>{setTimeout(()=>URL.revokeObjectURL(n.href),3e4),r()}),n.click(),null};export{e as default};\n"],"names":["e","t","n","a","r","c"],"mappings":"AAAG,IAACA,EAAE,MAAMA,EAAEC,EAAE,CAAA,IAAK,CAAC,MAAM,QAAQA,CAAC,IAAIA,EAAEA,EAAE,CAAC,GAAG,MAAMC,EAAE,SAAS,cAAc,GAAG,EAAE,IAAIC,EAAEH,EAAE,SAASA,IAAIG,EAAE,MAAM,eAAeH,EAAEC,EAAE,CAAC,MAAMC,EAAEF,EAAE,UAAS,EAAGG,EAAE,IAAI,eAAe,CAAC,MAAMH,GAAG,eAAeC,GAAG,CAAC,OAAOC,EAAE,KAAM,EAAC,KAAK,CAAC,CAAC,KAAKA,EAAE,MAAMC,CAAC,IAAI,CAAC,GAAG,CAACD,EAAE,OAAOF,EAAE,QAAQG,CAAC,EAAEF,EAAG,EAACD,EAAE,MAAO,CAAA,CAAC,CAAC,EAAG,CAAA,CAAC,EAAEI,EAAE,IAAI,SAASD,CAAC,EAAEE,EAAE,MAAMD,EAAE,KAAI,EAAG,OAAOF,EAAE,YAAW,EAAG,IAAI,KAAK,CAACG,CAAC,EAAE,CAAC,KAAKJ,CAAC,CAAC,CAAC,EAAED,EAAE,KAAKA,EAAE,QAAQ,IAAI,cAAc,CAAC,GAAGE,EAAE,SAASD,EAAE,UAAU,WAAWC,EAAE,KAAK,IAAI,gBAAgB,MAAMC,CAAC,EAAE,MAAMC,EAAE,IAAI,CAAa,OAAOC,GAAnB,YAAsBA,EAAC,CAAE,EAAEA,EAAEJ,EAAE,aAAaA,EAAE,YAAYG,EAAE,IAAIC,EAAE,MAAM,EAAEH,CAAC,EAAE,OAAOA,EAAE,iBAAiB,QAAQ,IAAI,CAAC,WAAW,IAAI,IAAI,gBAAgBA,EAAE,IAAI,EAAE,GAAG,EAAEE,EAAG,CAAA,CAAC,EAAEF,EAAE,MAAK,EAAG,IAAI","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js b/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js deleted file mode 100644 index af21597..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js +++ /dev/null @@ -1,2 +0,0 @@ -var y=async(e,t=[{}],s=null,p=!1,o=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";const n=[];let a=null;if(e instanceof Blob&&e.type?a=e.type:e.headers&&e.headers.get("content-type")&&(a=e.headers.get("content-type")),t.forEach((i,l)=>{n[l]={description:i.description||"",accept:{}},i.mimeTypes?(l===0&&a&&i.mimeTypes.push(a),i.mimeTypes.map(d=>{n[l].accept[d]=i.extensions||[]})):a&&(n[l].accept[a]=i.extensions||[])}),s)try{await s.getFile()}catch(i){if(s=null,p)throw i}const c=s||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:n,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!s&&o&&o();const r=await c.createWritable();return"stream"in e?(await e.stream().pipeTo(r),c):"body"in e?(await e.body.pipeTo(r),c):(await r.write(await e),await r.close(),c)};export{y as default}; -//# sourceMappingURL=file-save-745eba88-h9NxcJsg.js.map diff --git a/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js.map b/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js.map deleted file mode 100644 index 4e3fe45..0000000 --- a/excalidraw/excalidraw-app/build/assets/file-save-745eba88-h9NxcJsg.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"file-save-745eba88-h9NxcJsg.js","sources":["../../../node_modules/browser-fs-access/dist/file-save-745eba88.js"],"sourcesContent":["var e=async(e,t=[{}],a=null,i=!1,n=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||\"Untitled\";const s=[];let c=null;if(e instanceof Blob&&e.type?c=e.type:e.headers&&e.headers.get(\"content-type\")&&(c=e.headers.get(\"content-type\")),t.forEach((e,t)=>{s[t]={description:e.description||\"\",accept:{}},e.mimeTypes?(0===t&&c&&e.mimeTypes.push(c),e.mimeTypes.map(a=>{s[t].accept[a]=e.extensions||[]})):c&&(s[t].accept[c]=e.extensions||[])}),a)try{await a.getFile()}catch(e){if(a=null,i)throw e}const r=a||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:s,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!a&&n&&n();const l=await r.createWritable();if(\"stream\"in e){const t=e.stream();return await t.pipeTo(l),r}return\"body\"in e?(await e.body.pipeTo(l),r):(await l.write(await e),await l.close(),r)};export{e as default};\n"],"names":["e","a","i","n","s","c","t","r","l"],"mappings":"AAAG,IAACA,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA,CAAE,EAAEC,EAAE,KAAKC,EAAE,GAAGC,EAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,WAAW,MAAMC,EAAE,CAAA,EAAG,IAAIC,EAAE,KAAK,GAAG,aAAa,MAAM,EAAE,KAAKA,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,IAAI,cAAc,IAAIA,EAAE,EAAE,QAAQ,IAAI,cAAc,GAAG,EAAE,QAAQ,CAACL,EAAEM,IAAI,CAACF,EAAEE,CAAC,EAAE,CAAC,YAAYN,EAAE,aAAa,GAAG,OAAO,CAAE,CAAA,EAAEA,EAAE,WAAeM,IAAJ,GAAOD,GAAGL,EAAE,UAAU,KAAKK,CAAC,EAAEL,EAAE,UAAU,IAAIC,GAAG,CAACG,EAAEE,CAAC,EAAE,OAAOL,CAAC,EAAED,EAAE,YAAY,CAAE,CAAA,CAAC,GAAGK,IAAID,EAAEE,CAAC,EAAE,OAAOD,CAAC,EAAEL,EAAE,YAAY,CAAA,EAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,MAAMA,EAAE,QAAS,CAAA,OAAOD,EAAE,CAAC,GAAGC,EAAE,KAAKC,EAAE,MAAMF,CAAC,CAAC,MAAMO,EAAEN,GAAG,MAAM,OAAO,mBAAmB,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,QAAQ,MAAMG,EAAE,uBAAuB,EAAE,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAACH,GAAGE,GAAGA,IAAI,MAAMK,EAAE,MAAMD,EAAE,eAAgB,EAAC,MAAG,WAAW,GAA6B,MAAlB,EAAE,SAAwB,OAAOC,CAAC,EAAED,GAAQ,SAAS,GAAG,MAAM,EAAE,KAAK,OAAOC,CAAC,EAAED,IAAI,MAAMC,EAAE,MAAM,MAAM,CAAC,EAAE,MAAMA,EAAE,MAAO,EAACD,EAAE","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js b/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js deleted file mode 100644 index 2822989..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js +++ /dev/null @@ -1,7 +0,0 @@ -import{c as w2,u as Ne,s as Oe,g as Pe,a as we,b as Ue,v as Me,x as Ge,m as Ke,l as U2,y as M2,z as je,j as We,h as n2}from"./index-jpNTxDe4.js";var O2=function(){var e=function(H1,a,o,T){for(o=o||{},T=H1.length;T--;o[H1[T]]=a);return o},u=[1,9],i=[1,7],n=[1,6],c=[1,8],_=[1,20,21,22,23,38,44,46,48,52,66,67,87,88,89,90,91,92,96,106,107,110,112,113,119,120,121,122,123,124,125,126,127,128],B=[2,10],u1=[1,20],H=[1,21],s1=[1,22],f1=[1,23],Y1=[1,30],Q1=[1,32],X1=[1,33],s2=[1,34],q=[1,62],c1=[1,48],m1=[1,52],o2=[1,36],l2=[1,37],h2=[1,38],A2=[1,39],f2=[1,40],v1=[1,56],V1=[1,63],x1=[1,51],R1=[1,53],L1=[1,55],I1=[1,59],N1=[1,60],p2=[1,41],d2=[1,42],E2=[1,43],b2=[1,44],O1=[1,61],P1=[1,50],w1=[1,54],U1=[1,57],M1=[1,58],G1=[1,49],j2=[1,66],u2=[1,71],Q=[1,20,21,22,23,38,42,44,46,48,52,66,67,87,88,89,90,91,92,96,106,107,110,112,113,119,120,121,122,123,124,125,126,127,128],p1=[1,75],d1=[1,74],E1=[1,76],k2=[20,21,23,81,82],i1=[1,99],l=[1,104],h=[1,107],A=[1,108],r1=[1,101],f=[1,106],p=[1,109],n1=[1,102],d=[1,114],E=[1,113],b=[1,103],k=[1,105],D=[1,110],g=[1,111],F=[1,112],C=[1,115],S2=[20,21,22,23,81,82],t1=[20,21,22,23,53,81,82],Z=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,92,96,106,107,110,112,113,123,124,125,126,127,128],Y=[20,21,23],W2=[20,21,23,52,66,67,81,82,92,96,106,107,110,112,113,123,124,125,126,127,128],m2=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,87,88,89,90,91,92,96,106,107,110,112,113,119,120,121,122,123,124,125,126,127,128],i2=[52,66,67,92,96,106,107,110,112,113,123,124,125,126,127,128],S=[1,150],m=[1,158],v=[1,159],V=[1,160],x=[1,161],R=[1,145],L=[1,146],J=[1,141],$=[1,142],I=[1,153],N=[1,154],O=[1,155],P=[1,156],w=[1,157],U=[1,162],M=[1,163],G=[1,148],K=[1,151],j=[1,147],W=[1,144],v2=[20,21,22,23,38,42,44,46,48,52,66,67,87,88,89,90,91,92,96,106,107,110,112,113,119,120,121,122,123,124,125,126,127,128],Y2=[1,166],$1=[20,21,22,23,26,52,66,67,92,106,107,110,112,113,123,124,125,126,127,128],y=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,87,88,89,90,91,92,93,96,106,107,110,112,113,114,115,123,124,125,126,127,128],z2=[12,21,22,24],H2=[22,107],b1=[1,251],k1=[1,246],D1=[1,247],g1=[1,255],F1=[1,252],C1=[1,249],_1=[1,248],B1=[1,250],T1=[1,253],y1=[1,254],S1=[1,256],z1=[1,274],Q2=[20,21,23,107],o1=[20,21,22,23,66,67,87,103,106,107,110,111,112,113,114],V2={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,MD_STR:85,keywords:86,STYLE:87,LINKSTYLE:88,CLASSDEF:89,CLASS:90,CLICK:91,DOWN:92,UP:93,textNoTags:94,textNoTagsToken:95,DEFAULT:96,stylesOpt:97,alphaNum:98,CALLBACKNAME:99,CALLBACKARGS:100,HREF:101,LINK_TARGET:102,HEX:103,numList:104,INTERPOLATE:105,NUM:106,COMMA:107,style:108,styleComponent:109,MINUS:110,UNIT:111,BRKT:112,DOT:113,PCT:114,TAGSTART:115,alphaNumToken:116,idStringToken:117,alphaNumStatement:118,direction_tb:119,direction_bt:120,direction_rl:121,direction_lr:122,PUNCTUATION:123,UNICODE_TEXT:124,PLUS:125,EQUALS:126,MULT:127,UNDERSCORE:128,graphCodeTokens:129,ARROW_CROSS:130,ARROW_POINT:131,ARROW_CIRCLE:132,ARROW_OPEN:133,QUOTE:134,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",85:"MD_STR",87:"STYLE",88:"LINKSTYLE",89:"CLASSDEF",90:"CLASS",91:"CLICK",92:"DOWN",93:"UP",96:"DEFAULT",99:"CALLBACKNAME",100:"CALLBACKARGS",101:"HREF",102:"LINK_TARGET",103:"HEX",105:"INTERPOLATE",106:"NUM",107:"COMMA",110:"MINUS",111:"UNIT",112:"BRKT",113:"DOT",114:"PCT",115:"TAGSTART",119:"direction_tb",120:"direction_bt",121:"direction_rl",122:"direction_lr",123:"PUNCTUATION",124:"UNICODE_TEXT",125:"PLUS",126:"EQUALS",127:"MULT",128:"UNDERSCORE",130:"ARROW_CROSS",131:"ARROW_POINT",132:"ARROW_CIRCLE",133:"ARROW_OPEN",134:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[39,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[86,1],[94,1],[94,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[104,1],[104,3],[97,1],[97,3],[108,1],[108,2],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[95,1],[95,1],[95,1],[95,1],[54,1],[54,2],[98,1],[98,2],[118,1],[118,1],[118,1],[118,1],[43,1],[43,1],[43,1],[43,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1],[129,1]],performAction:function(a,o,T,r,X,t,r2){var s=t.length-1;switch(X){case 5:r.parseDirective("%%{","open_directive");break;case 6:r.parseDirective(t[s],"type_directive");break;case 7:t[s]=t[s].trim().replace(/'/g,'"'),r.parseDirective(t[s],"arg_directive");break;case 8:r.parseDirective("}%%","close_directive","flowchart");break;case 10:this.$=[];break;case 11:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 12:case 97:case 153:case 155:case 156:this.$=t[s];break;case 19:r.setDirection("TB"),this.$="TB";break;case 20:r.setDirection(t[s-1]),this.$=t[s-1];break;case 35:this.$=t[s-1].nodes;break;case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 41:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 42:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 43:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 45:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 46:case 47:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 51:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 52:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 53:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 54:this.$={stmt:t[s],nodes:t[s]};break;case 55:this.$=[t[s]];break;case 56:this.$=t[s-4].concat(t[s]);break;case 57:this.$=[t[s-2]],r.setClass(t[s-2],t[s]);break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 60:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 61:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 64:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 67:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 68:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 69:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 70:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 71:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 72:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 73:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 74:this.$=t[s],r.addVertex(t[s]);break;case 75:t[s-1].text=t[s],this.$=t[s-1];break;case 76:case 77:t[s-2].text=t[s-1],this.$=t[s-2];break;case 78:this.$=t[s];break;case 79:var l1=r.destructLink(t[s],t[s-2]);this.$={type:l1.type,stroke:l1.stroke,length:l1.length,text:t[s-1]};break;case 80:var l1=r.destructLink(t[s]);this.$={type:l1.type,stroke:l1.stroke,length:l1.length};break;case 81:this.$=t[s-1];break;case 82:this.$={text:t[s],type:"text"};break;case 83:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 84:this.$={text:t[s],type:"text"};break;case 85:this.$={text:t[s],type:"markdown"};break;case 98:case 154:this.$=t[s-1]+""+t[s];break;case 99:case 100:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 101:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 102:case 110:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 103:case 111:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 104:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 105:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:case 112:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 107:case 113:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 108:case 114:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 109:case 115:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 116:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 117:case 119:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 118:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 120:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 121:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 122:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 123:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 124:case 126:this.$=[t[s]];break;case 125:case 127:t[s-2].push(t[s]),this.$=t[s-2];break;case 129:this.$=t[s-1]+t[s];break;case 151:this.$=t[s];break;case 152:this.$=t[s-1]+""+t[s];break;case 157:this.$="v";break;case 158:this.$="-";break;case 159:this.$={stmt:"dir",value:"TB"};break;case 160:this.$={stmt:"dir",value:"BT"};break;case 161:this.$={stmt:"dir",value:"RL"};break;case 162:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,5:3,6:5,12:u,16:4,21:i,22:n,24:c},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:u,16:4,21:i,22:n,24:c},e(_,B,{17:11}),{7:12,13:[1,13]},{16:14,21:i,22:n,24:c},{16:15,21:i,22:n,24:c},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:u1,21:H,22:s1,23:f1,32:24,33:25,34:26,35:27,36:28,37:29,38:Y1,43:31,44:Q1,46:X1,48:s2,50:35,51:45,52:q,54:46,66:c1,67:m1,87:o2,88:l2,89:h2,90:A2,91:f2,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,119:p2,120:d2,121:E2,122:b2,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},{8:64,10:[1,65],15:j2},e([10,15],[2,6]),e(_,[2,17]),e(_,[2,18]),e(_,[2,19]),{20:[1,68],21:[1,69],22:u2,27:67,30:70},e(Q,[2,11]),e(Q,[2,12]),e(Q,[2,13]),e(Q,[2,14]),e(Q,[2,15]),e(Q,[2,16]),{9:72,20:p1,21:d1,23:E1,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:p1,21:d1,23:E1},{9:81,20:p1,21:d1,23:E1},{9:82,20:p1,21:d1,23:E1},{9:83,20:p1,21:d1,23:E1},{9:84,20:p1,21:d1,23:E1},{9:86,20:p1,21:d1,22:[1,85],23:E1},e(Q,[2,44]),{45:[1,87]},{47:[1,88]},e(Q,[2,47]),e(k2,[2,54],{30:89,22:u2}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:i1,52:l,66:h,67:A,84:[1,97],92:r1,98:96,99:[1,94],101:[1,95],106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},e(Q,[2,159]),e(Q,[2,160]),e(Q,[2,161]),e(Q,[2,162]),e(S2,[2,55],{53:[1,116]}),e(t1,[2,74],{117:129,40:[1,117],52:q,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:c1,67:m1,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1}),e(Z,[2,151]),e(Z,[2,176]),e(Z,[2,177]),e(Z,[2,178]),e(Z,[2,179]),e(Z,[2,180]),e(Z,[2,181]),e(Z,[2,182]),e(Z,[2,183]),e(Z,[2,184]),e(Z,[2,185]),e(Z,[2,186]),e(Z,[2,187]),e(Z,[2,188]),e(Z,[2,189]),e(Z,[2,190]),e(Z,[2,191]),{9:130,20:p1,21:d1,23:E1},{11:131,14:[1,132]},e(Y,[2,8]),e(_,[2,20]),e(_,[2,26]),e(_,[2,27]),{21:[1,133]},e(W2,[2,34],{30:134,22:u2}),e(Q,[2,35]),{50:135,51:45,52:q,54:46,66:c1,67:m1,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},e(m2,[2,48]),e(m2,[2,49]),e(m2,[2,50]),e(i2,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:S,24:m,26:v,38:V,39:139,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e([52,66,67,68,80,92,96,106,107,110,112,113,123,124,125,126,127,128],[2,80]),e(Q,[2,36]),e(Q,[2,37]),e(Q,[2,38]),e(Q,[2,39]),e(Q,[2,40]),{22:S,24:m,26:v,38:V,39:164,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(v2,B,{17:165}),e(Q,[2,45]),e(Q,[2,46]),e(k2,[2,53],{52:Y2}),{26:i1,52:l,66:h,67:A,92:r1,98:167,103:[1,168],106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},{96:[1,169],104:170,106:[1,171]},{26:i1,52:l,66:h,67:A,92:r1,96:[1,172],98:173,106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},{26:i1,52:l,66:h,67:A,92:r1,98:174,106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},e(Y,[2,102],{22:[1,175],100:[1,176]}),e(Y,[2,106],{22:[1,177]}),e(Y,[2,110],{116:100,118:179,22:[1,178],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,123:b,124:k,125:D,126:g,127:F,128:C}),e(Y,[2,112],{22:[1,180]}),e($1,[2,153]),e($1,[2,155]),e($1,[2,156]),e($1,[2,157]),e($1,[2,158]),e(y,[2,163]),e(y,[2,164]),e(y,[2,165]),e(y,[2,166]),e(y,[2,167]),e(y,[2,168]),e(y,[2,169]),e(y,[2,170]),e(y,[2,171]),e(y,[2,172]),e(y,[2,173]),e(y,[2,174]),e(y,[2,175]),{52:q,54:181,66:c1,67:m1,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},{22:S,24:m,26:v,38:V,39:182,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:183,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:185,42:x,52:l,57:[1,184],66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:186,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:187,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:188,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{66:[1,189]},{22:S,24:m,26:v,38:V,39:190,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:191,42:x,52:l,66:h,67:A,71:[1,192],73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:193,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:194,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:195,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(Z,[2,152]),e(z2,[2,3]),{8:196,15:j2},{15:[2,7]},e(_,[2,28]),e(W2,[2,33]),e(k2,[2,51],{30:197,22:u2}),e(i2,[2,75],{22:[1,198]}),{22:[1,199]},{22:S,24:m,26:v,38:V,39:200,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,73:R,81:L,82:[1,201],83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(y,[2,82]),e(y,[2,84]),e(y,[2,85]),e(y,[2,141]),e(y,[2,142]),e(y,[2,143]),e(y,[2,144]),e(y,[2,145]),e(y,[2,146]),e(y,[2,147]),e(y,[2,148]),e(y,[2,149]),e(y,[2,150]),e(y,[2,86]),e(y,[2,87]),e(y,[2,88]),e(y,[2,89]),e(y,[2,90]),e(y,[2,91]),e(y,[2,92]),e(y,[2,93]),e(y,[2,94]),e(y,[2,95]),e(y,[2,96]),{9:204,20:p1,21:d1,22:S,23:E1,24:m,26:v,38:V,40:[1,203],42:x,52:l,66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{18:18,19:19,20:u1,21:H,22:s1,23:f1,32:24,33:25,34:26,35:27,36:28,37:29,38:Y1,42:[1,205],43:31,44:Q1,46:X1,48:s2,50:35,51:45,52:q,54:46,66:c1,67:m1,87:o2,88:l2,89:h2,90:A2,91:f2,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,119:p2,120:d2,121:E2,122:b2,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},{22:u2,30:206},{22:[1,207],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,116:100,118:179,123:b,124:k,125:D,126:g,127:F,128:C},{22:[1,208]},{22:[1,209]},{22:[1,210],107:[1,211]},e(H2,[2,124]),{22:[1,212]},{22:[1,213],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,116:100,118:179,123:b,124:k,125:D,126:g,127:F,128:C},{22:[1,214],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,116:100,118:179,123:b,124:k,125:D,126:g,127:F,128:C},{84:[1,215]},e(Y,[2,104],{22:[1,216]}),{84:[1,217],102:[1,218]},{84:[1,219]},e($1,[2,154]),{84:[1,220],102:[1,221]},e(S2,[2,57],{117:129,52:q,66:c1,67:m1,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1}),{22:S,24:m,26:v,38:V,41:[1,222],42:x,52:l,66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,56:[1,223],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:224,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,58:[1,225],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,60:[1,226],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,62:[1,227],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,64:[1,228],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{67:[1,229]},{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,70:[1,230],73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,72:[1,231],73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,39:232,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,41:[1,233],42:x,52:l,66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,73:R,75:[1,234],77:[1,235],81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,73:R,75:[1,237],77:[1,236],81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{9:238,20:p1,21:d1,23:E1},e(k2,[2,52],{52:Y2}),e(i2,[2,77]),e(i2,[2,76]),{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,68:[1,239],73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(i2,[2,79]),e(y,[2,83]),{22:S,24:m,26:v,38:V,39:240,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(v2,B,{17:241}),e(Q,[2,43]),{51:242,52:q,54:46,66:c1,67:m1,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},{22:b1,66:k1,67:D1,87:g1,97:243,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{22:b1,66:k1,67:D1,87:g1,97:257,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{22:b1,66:k1,67:D1,87:g1,97:258,103:F1,105:[1,259],106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{22:b1,66:k1,67:D1,87:g1,97:260,103:F1,105:[1,261],106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{106:[1,262]},{22:b1,66:k1,67:D1,87:g1,97:263,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{22:b1,66:k1,67:D1,87:g1,97:264,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{26:i1,52:l,66:h,67:A,92:r1,98:265,106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},e(Y,[2,103]),{84:[1,266]},e(Y,[2,107],{22:[1,267]}),e(Y,[2,108]),e(Y,[2,111]),e(Y,[2,113],{22:[1,268]}),e(Y,[2,114]),e(t1,[2,58]),e(t1,[2,59]),{22:S,24:m,26:v,38:V,42:x,52:l,58:[1,269],66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(t1,[2,66]),e(t1,[2,61]),e(t1,[2,62]),e(t1,[2,63]),{66:[1,270]},e(t1,[2,65]),e(t1,[2,67]),{22:S,24:m,26:v,38:V,42:x,52:l,66:h,67:A,72:[1,271],73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(t1,[2,69]),e(t1,[2,70]),e(t1,[2,72]),e(t1,[2,71]),e(t1,[2,73]),e(z2,[2,4]),e([22,52,66,67,92,96,106,107,110,112,113,123,124,125,126,127,128],[2,81]),{22:S,24:m,26:v,38:V,41:[1,272],42:x,52:l,66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{18:18,19:19,20:u1,21:H,22:s1,23:f1,32:24,33:25,34:26,35:27,36:28,37:29,38:Y1,42:[1,273],43:31,44:Q1,46:X1,48:s2,50:35,51:45,52:q,54:46,66:c1,67:m1,87:o2,88:l2,89:h2,90:A2,91:f2,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,119:p2,120:d2,121:E2,122:b2,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},e(S2,[2,56]),e(Y,[2,116],{107:z1}),e(Q2,[2,126],{109:275,22:b1,66:k1,67:D1,87:g1,103:F1,106:C1,110:_1,111:B1,112:T1,113:y1,114:S1}),e(o1,[2,128]),e(o1,[2,130]),e(o1,[2,131]),e(o1,[2,132]),e(o1,[2,133]),e(o1,[2,134]),e(o1,[2,135]),e(o1,[2,136]),e(o1,[2,137]),e(o1,[2,138]),e(o1,[2,139]),e(o1,[2,140]),e(Y,[2,117],{107:z1}),e(Y,[2,118],{107:z1}),{22:[1,276]},e(Y,[2,119],{107:z1}),{22:[1,277]},e(H2,[2,125]),e(Y,[2,99],{107:z1}),e(Y,[2,100],{107:z1}),e(Y,[2,101],{116:100,118:179,26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,123:b,124:k,125:D,126:g,127:F,128:C}),e(Y,[2,105]),{102:[1,278]},{102:[1,279]},{58:[1,280]},{68:[1,281]},{72:[1,282]},{9:283,20:p1,21:d1,23:E1},e(Q,[2,42]),{22:b1,66:k1,67:D1,87:g1,103:F1,106:C1,108:284,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},e(o1,[2,129]),{26:i1,52:l,66:h,67:A,92:r1,98:285,106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},{26:i1,52:l,66:h,67:A,92:r1,98:286,106:f,107:p,110:n1,112:d,113:E,116:100,118:98,123:b,124:k,125:D,126:g,127:F,128:C},e(Y,[2,109]),e(Y,[2,115]),e(t1,[2,60]),{22:S,24:m,26:v,38:V,39:287,42:x,52:l,66:h,67:A,73:R,81:L,83:140,84:J,85:$,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},e(t1,[2,68]),e(v2,B,{17:288}),e(Q2,[2,127],{109:275,22:b1,66:k1,67:D1,87:g1,103:F1,106:C1,110:_1,111:B1,112:T1,113:y1,114:S1}),e(Y,[2,122],{116:100,118:179,22:[1,289],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,123:b,124:k,125:D,126:g,127:F,128:C}),e(Y,[2,123],{116:100,118:179,22:[1,290],26:i1,52:l,66:h,67:A,92:r1,106:f,107:p,110:n1,112:d,113:E,123:b,124:k,125:D,126:g,127:F,128:C}),{22:S,24:m,26:v,38:V,41:[1,291],42:x,52:l,66:h,67:A,73:R,81:L,83:202,86:152,87:I,88:N,89:O,90:P,91:w,92:U,93:M,95:143,96:G,106:f,107:p,110:K,112:d,113:E,114:j,115:W,116:149,123:b,124:k,125:D,126:g,127:F,128:C},{18:18,19:19,20:u1,21:H,22:s1,23:f1,32:24,33:25,34:26,35:27,36:28,37:29,38:Y1,42:[1,292],43:31,44:Q1,46:X1,48:s2,50:35,51:45,52:q,54:46,66:c1,67:m1,87:o2,88:l2,89:h2,90:A2,91:f2,92:v1,96:V1,106:x1,107:R1,110:L1,112:I1,113:N1,117:47,119:p2,120:d2,121:E2,122:b2,123:O1,124:P1,125:w1,126:U1,127:M1,128:G1},{22:b1,66:k1,67:D1,87:g1,97:293,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},{22:b1,66:k1,67:D1,87:g1,97:294,103:F1,106:C1,108:244,109:245,110:_1,111:B1,112:T1,113:y1,114:S1},e(t1,[2,64]),e(Q,[2,41]),e(Y,[2,120],{107:z1}),e(Y,[2,121],{107:z1})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var T=new Error(a);throw T.hash=o,T}},parse:function(a){var o=this,T=[0],r=[],X=[null],t=[],r2=this.table,s="",l1=0,X2=0,xe=2,q2=1,Re=t.slice.call(arguments,1),e1=Object.create(this.lexer),q1={yy:{}};for(var R2 in this.yy)Object.prototype.hasOwnProperty.call(this.yy,R2)&&(q1.yy[R2]=this.yy[R2]);e1.setInput(a,q1.yy),q1.yy.lexer=e1,q1.yy.parser=this,typeof e1.yylloc>"u"&&(e1.yylloc={});var L2=e1.yylloc;t.push(L2);var Le=e1.options&&e1.options.ranges;typeof q1.yy.parseError=="function"?this.parseError=q1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ie(){var j1;return j1=r.pop()||e1.lex()||q2,typeof j1!="number"&&(j1 instanceof Array&&(r=j1,j1=r.pop()),j1=o.symbols_[j1]||j1),j1}for(var a1,Z1,h1,I2,e2={},D2,K1,Z2,g2;;){if(Z1=T[T.length-1],this.defaultActions[Z1]?h1=this.defaultActions[Z1]:((a1===null||typeof a1>"u")&&(a1=Ie()),h1=r2[Z1]&&r2[Z1][a1]),typeof h1>"u"||!h1.length||!h1[0]){var N2="";g2=[];for(D2 in r2[Z1])this.terminals_[D2]&&D2>xe&&g2.push("'"+this.terminals_[D2]+"'");e1.showPosition?N2="Parse error on line "+(l1+1)+`: -`+e1.showPosition()+` -Expecting `+g2.join(", ")+", got '"+(this.terminals_[a1]||a1)+"'":N2="Parse error on line "+(l1+1)+": Unexpected "+(a1==q2?"end of input":"'"+(this.terminals_[a1]||a1)+"'"),this.parseError(N2,{text:e1.match,token:this.terminals_[a1]||a1,line:e1.yylineno,loc:L2,expected:g2})}if(h1[0]instanceof Array&&h1.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z1+", token: "+a1);switch(h1[0]){case 1:T.push(a1),X.push(e1.yytext),t.push(e1.yylloc),T.push(h1[1]),a1=null,X2=e1.yyleng,s=e1.yytext,l1=e1.yylineno,L2=e1.yylloc;break;case 2:if(K1=this.productions_[h1[1]][1],e2.$=X[X.length-K1],e2._$={first_line:t[t.length-(K1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(K1||1)].first_column,last_column:t[t.length-1].last_column},Le&&(e2._$.range=[t[t.length-(K1||1)].range[0],t[t.length-1].range[1]]),I2=this.performAction.apply(e2,[s,X2,l1,q1.yy,h1[1],X,t].concat(Re)),typeof I2<"u")return I2;K1&&(T=T.slice(0,-1*K1*2),X=X.slice(0,-1*K1),t=t.slice(0,-1*K1)),T.push(this.productions_[h1[1]][0]),X.push(e2.$),t.push(e2._$),Z2=r2[T[T.length-2]][T[T.length-1]],T.push(Z2);break;case 3:return!0}}return!0}},Ve=function(){var H1={EOF:1,parseError:function(o,T){if(this.yy.parser)this.yy.parser.parseError(o,T);else throw new Error(o)},setInput:function(a,o){return this.yy=o||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},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,T=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=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),T.length-1&&(this.yylineno-=T.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:T?(T.length===r.length?this.yylloc.first_column:0)+r[r.length-T.length].length-T[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[X[0],X[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` -`+o+"^"},test_match:function(a,o){var T,r,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))),r=a[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.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],T=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),T)return T;if(this._backtrack){for(var t in X)this[t]=X[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,T,r;this._more||(this.yytext="",this.match="");for(var X=this._currentRules(),t=0;to[0].length)){if(o=T,r=t,this.options.backtrack_lexer){if(a=this.test_match(T,X[t]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,X[r]),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})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(o,T,r,X){switch(r){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:return this.begin("acc_title"),44;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),46;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:this.begin("md_string");break;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("string");break;case 16:this.popState();break;case 17:return"STR";case 18:return 87;case 19:return 96;case 20:return 88;case 21:return 105;case 22:return 89;case 23:return 90;case 24:this.begin("href");break;case 25:this.popState();break;case 26:return 101;case 27:this.begin("callbackname");break;case 28:this.popState();break;case 29:this.popState(),this.begin("callbackargs");break;case 30:return 99;case 31:this.popState();break;case 32:return 100;case 33:this.begin("click");break;case 34:this.popState();break;case 35:return 91;case 36:return o.lex.firstGraph()&&this.begin("dir"),24;case 37:return o.lex.firstGraph()&&this.begin("dir"),24;case 38:return o.lex.firstGraph()&&this.begin("dir"),24;case 39:return 38;case 40:return 42;case 41:return 102;case 42:return 102;case 43:return 102;case 44:return 102;case 45:return this.popState(),25;case 46:return this.popState(),26;case 47:return this.popState(),26;case 48:return this.popState(),26;case 49:return this.popState(),26;case 50:return this.popState(),26;case 51:return this.popState(),26;case 52:return this.popState(),26;case 53:return this.popState(),26;case 54:return this.popState(),26;case 55:return this.popState(),26;case 56:return 119;case 57:return 120;case 58:return 121;case 59:return 122;case 60:return 106;case 61:return 112;case 62:return 53;case 63:return 67;case 64:return 52;case 65:return 20;case 66:return 107;case 67:return 127;case 68:return 82;case 69:return 82;case 70:return 82;case 71:return 82;case 72:return 81;case 73:return 81;case 74:return 81;case 75:return 59;case 76:return 60;case 77:return 61;case 78:return 62;case 79:return 63;case 80:return 64;case 81:return 65;case 82:return 69;case 83:return 70;case 84:return 55;case 85:return 56;case 86:return 110;case 87:return 113;case 88:return 128;case 89:return 125;case 90:return 114;case 91:return 126;case 92:return 126;case 93:return 115;case 94:return 73;case 95:return 93;case 96:return"SEP";case 97:return 92;case 98:return 66;case 99:return 75;case 100:return 74;case 101:return 77;case 102:return 76;case 103:return 123;case 104:return 124;case 105:return 68;case 106:return 57;case 107:return 58;case 108:return 40;case 109:return 41;case 110:return 71;case 111:return 72;case 112:return 134;case 113:return 21;case 114:return 22;case 115:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\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]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\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:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[31,32],inclusive:!1},callbackname:{rules:[28,29,30],inclusive:!1},href:{rules:[25,26],inclusive:!1},click:{rules:[34,35],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[45,46,47,48,49,50,51,52,53,54,55],inclusive:!1},acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},md_string:{rules:[13,14],inclusive:!1},string:{rules:[16,17],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,15,18,19,20,21,22,23,24,27,33,36,37,38,39,40,41,42,43,44,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,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],inclusive:!0}}};return H1}();V2.lexer=Ve;function x2(){this.yy={}}return x2.prototype=V2,V2.Parser=x2,new x2}();O2.parser=O2;const et=O2,Ye="flowchart-";let J2=0,G2=w2(),z={},J1=[],t2={},W1=[],C2={},K2={},F2=0,P2=!0,A1,_2,B2=[];const T2=e=>We.sanitizeText(e,G2),$2=function(e,u,i){Ke.parseDirective(this,e,u,i)},c2=function(e){const u=Object.keys(z);for(const i of u)if(z[i].id===e)return z[i].domId;return e},ee=function(e,u,i,n,c,_,B={}){let u1,H=e;H!==void 0&&H.trim().length!==0&&(z[H]===void 0&&(z[H]={id:H,labelType:"text",domId:Ye+H+"-"+J2,styles:[],classes:[]}),J2++,u!==void 0?(G2=w2(),u1=T2(u.text.trim()),z[H].labelType=u.type,u1[0]==='"'&&u1[u1.length-1]==='"'&&(u1=u1.substring(1,u1.length-1)),z[H].text=u1):z[H].text===void 0&&(z[H].text=e),i!==void 0&&(z[H].type=i),n!=null&&n.forEach(function(s1){z[H].styles.push(s1)}),c!=null&&c.forEach(function(s1){z[H].classes.push(s1)}),_!==void 0&&(z[H].dir=_),z[H].props===void 0?z[H].props=B:B!==void 0&&Object.assign(z[H].props,B))},te=function(e,u,i){const _={start:e,end:u,type:void 0,text:"",labelType:"text"};U2.info("abc78 Got edge...",_);const B=i.text;B!==void 0&&(_.text=T2(B.text.trim()),_.text[0]==='"'&&_.text[_.text.length-1]==='"'&&(_.text=_.text.substring(1,_.text.length-1)),_.labelType=B.type),i!==void 0&&(_.type=i.type,_.stroke=i.stroke,_.length=i.length),J1.push(_)},se=function(e,u,i){U2.info("addLink (abc78)",e,u,i);let n,c;for(n=0;n/)&&(A1="LR"),A1.match(/.*v/)&&(A1="TB"),A1==="TD"&&(A1="TB")},y2=function(e,u){e.split(",").forEach(function(i){let n=i;z[n]!==void 0&&z[n].classes.push(u),C2[n]!==void 0&&C2[n].classes.push(u)})},ze=function(e,u){e.split(",").forEach(function(i){u!==void 0&&(K2[_2==="gen-1"?c2(i):i]=T2(u))})},He=function(e,u,i){let n=c2(e);if(w2().securityLevel!=="loose"||u===void 0)return;let c=[];if(typeof i=="string"){c=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let _=0;_")),c.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),n2(this).classed("hover",!1)})};B2.push(de);const Ee=function(e="gen-1"){z={},t2={},J1=[],B2=[de],W1=[],C2={},F2=0,K2=[],P2=!0,_2=e,je()},be=e=>{_2=e||"gen-2"},ke=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},De=function(e,u,i){let n=e.text.trim(),c=i.text;e===i&&i.text.match(/\s/)&&(n=void 0);function _(f1){const Y1={boolean:{},number:{},string:{}},Q1=[];let X1;return{nodeList:f1.filter(function(q){const c1=typeof q;return q.stmt&&q.stmt==="dir"?(X1=q.value,!1):q.trim()===""?!1:c1 in Y1?Y1[c1].hasOwnProperty(q)?!1:Y1[c1][q]=!0:Q1.includes(q)?!1:Q1.push(q)}),dir:X1}}let B=[];const{nodeList:u1,dir:H}=_(B.concat.apply(B,u));if(B=u1,_2==="gen-1")for(let f1=0;f12e3)return;if(ge[a2]=u,W1[u].id===e)return{result:!0,count:0};let n=0,c=1;for(;n=0){const B=Fe(e,_);if(B.result)return{result:!0,count:c+B.count};c=c+B.count}n=n+1}return{result:!1,count:c}},Ce=function(e){return ge[e]},_e=function(){a2=-1,W1.length>0&&Fe("none",W1.length-1)},Be=function(){return W1},Te=()=>P2?(P2=!1,!0):!1,Xe=e=>{let u=e.trim(),i="arrow_open";switch(u[0]){case"<":i="arrow_point",u=u.slice(1);break;case"x":i="arrow_cross",u=u.slice(1);break;case"o":i="arrow_circle",u=u.slice(1);break}let n="normal";return u.includes("=")&&(n="thick"),u.includes(".")&&(n="dotted"),{type:i,stroke:n}},qe=(e,u)=>{const i=u.length;let n=0;for(let c=0;c{const u=e.trim();let i=u.slice(0,-1),n="arrow_open";switch(u.slice(-1)){case"x":n="arrow_cross",u[0]==="x"&&(n="double_"+n,i=i.slice(1));break;case">":n="arrow_point",u[0]==="<"&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",u[0]==="o"&&(n="double_"+n,i=i.slice(1));break}let c="normal",_=i.length-1;i[0]==="="&&(c="thick"),i[0]==="~"&&(c="invisible");let B=qe(".",i);return B&&(c="dotted",_=B),{type:n,stroke:c,length:_}},ye=(e,u)=>{const i=Ze(e);let n;if(u){if(n=Xe(u),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i},Se=(e,u)=>{let i=!1;return e.forEach(n=>{n.nodes.indexOf(u)>=0&&(i=!0)}),i},me=(e,u)=>{const i=[];return e.nodes.forEach((n,c)=>{Se(u,n)||i.push(e.nodes[c])}),{nodes:i}},ve={firstGraph:Te},Je={parseDirective:$2,defaultConfig:()=>Ne.flowchart,setAccTitle:Oe,getAccTitle:Pe,getAccDescription:we,setAccDescription:Ue,addVertex:ee,lookUpDomId:c2,addLink:se,updateLinkInterpolate:ue,updateLink:ie,addClass:re,setDirection:ne,setClass:y2,setTooltip:ze,getTooltip:ce,setClickEvent:oe,setLink:ae,bindFunctions:le,getDirection:he,getVertices:Ae,getEdges:fe,getClasses:pe,clear:Ee,setGen:be,defaultStyle:ke,addSubGraph:De,getDepthFirstPos:Ce,indexNodes:_e,getSubGraphs:Be,destructLink:ye,lex:ve,exists:Se,makeUniq:me,setDiagramTitle:Me,getDiagramTitle:Ge},tt=Object.freeze(Object.defineProperty({__proto__:null,addClass:re,addLink:se,addSingleLink:te,addSubGraph:De,addVertex:ee,bindFunctions:le,clear:Ee,default:Je,defaultStyle:ke,destructLink:ye,firstGraph:Te,getClasses:pe,getDepthFirstPos:Ce,getDirection:he,getEdges:fe,getSubGraphs:Be,getTooltip:ce,getVertices:Ae,indexNodes:_e,lex:ve,lookUpDomId:c2,parseDirective:$2,setClass:y2,setClickEvent:oe,setDirection:ne,setGen:be,setLink:ae,updateLink:ie,updateLinkInterpolate:ue},Symbol.toStringTag,{value:"Module"}));export{tt as d,Je as f,et as p}; -//# sourceMappingURL=flowDb-6a57c1b4-o7QdmK-d.js.map diff --git a/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js.map b/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js.map deleted file mode 100644 index fdbe96e..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDb-6a57c1b4-o7QdmK-d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"flowDb-6a57c1b4-o7QdmK-d.js","sources":["../../../node_modules/mermaid/dist/flowDb-6a57c1b4.js"],"sourcesContent":["import { select } from \"d3\";\nimport { G as defaultConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, r as setDiagramTitle, t as getDiagramTitle, c as getConfig, m as mermaidAPI, l as log, u as utils, v as clear$1, e as common } from \"./mermaid-b0ad2de1.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 9], $V1 = [1, 7], $V2 = [1, 6], $V3 = [1, 8], $V4 = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V5 = [2, 10], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 30], $Vb = [1, 32], $Vc = [1, 33], $Vd = [1, 34], $Ve = [1, 62], $Vf = [1, 48], $Vg = [1, 52], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 56], $Vn = [1, 63], $Vo = [1, 51], $Vp = [1, 53], $Vq = [1, 55], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 41], $Vu = [1, 42], $Vv = [1, 43], $Vw = [1, 44], $Vx = [1, 61], $Vy = [1, 50], $Vz = [1, 54], $VA = [1, 57], $VB = [1, 58], $VC = [1, 49], $VD = [1, 66], $VE = [1, 71], $VF = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $VG = [1, 75], $VH = [1, 74], $VI = [1, 76], $VJ = [20, 21, 23, 81, 82], $VK = [1, 99], $VL = [1, 104], $VM = [1, 107], $VN = [1, 108], $VO = [1, 101], $VP = [1, 106], $VQ = [1, 109], $VR = [1, 102], $VS = [1, 114], $VT = [1, 113], $VU = [1, 103], $VV = [1, 105], $VW = [1, 110], $VX = [1, 111], $VY = [1, 112], $VZ = [1, 115], $V_ = [20, 21, 22, 23, 81, 82], $V$ = [20, 21, 22, 23, 53, 81, 82], $V01 = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V11 = [20, 21, 23], $V21 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V31 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V41 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V51 = [1, 150], $V61 = [1, 158], $V71 = [1, 159], $V81 = [1, 160], $V91 = [1, 161], $Va1 = [1, 145], $Vb1 = [1, 146], $Vc1 = [1, 141], $Vd1 = [1, 142], $Ve1 = [1, 153], $Vf1 = [1, 154], $Vg1 = [1, 155], $Vh1 = [1, 156], $Vi1 = [1, 157], $Vj1 = [1, 162], $Vk1 = [1, 163], $Vl1 = [1, 148], $Vm1 = [1, 151], $Vn1 = [1, 147], $Vo1 = [1, 144], $Vp1 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $Vq1 = [1, 166], $Vr1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $Vs1 = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], $Vt1 = [12, 21, 22, 24], $Vu1 = [22, 107], $Vv1 = [1, 251], $Vw1 = [1, 246], $Vx1 = [1, 247], $Vy1 = [1, 255], $Vz1 = [1, 252], $VA1 = [1, 249], $VB1 = [1, 248], $VC1 = [1, 250], $VD1 = [1, 253], $VE1 = [1, 254], $VF1 = [1, 256], $VG1 = [1, 274], $VH1 = [20, 21, 23, 107], $VI1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"directive\": 5, \"openDirective\": 6, \"typeDirective\": 7, \"closeDirective\": 8, \"separator\": 9, \":\": 10, \"argDirective\": 11, \"open_directive\": 12, \"type_directive\": 13, \"arg_directive\": 14, \"close_directive\": 15, \"graphConfig\": 16, \"document\": 17, \"line\": 18, \"statement\": 19, \"SEMI\": 20, \"NEWLINE\": 21, \"SPACE\": 22, \"EOF\": 23, \"GRAPH\": 24, \"NODIR\": 25, \"DIR\": 26, \"FirstStmtSeperator\": 27, \"ending\": 28, \"endToken\": 29, \"spaceList\": 30, \"spaceListNewline\": 31, \"verticeStatement\": 32, \"styleStatement\": 33, \"linkStyleStatement\": 34, \"classDefStatement\": 35, \"classStatement\": 36, \"clickStatement\": 37, \"subgraph\": 38, \"text\": 39, \"SQS\": 40, \"SQE\": 41, \"end\": 42, \"direction\": 43, \"acc_title\": 44, \"acc_title_value\": 45, \"acc_descr\": 46, \"acc_descr_value\": 47, \"acc_descr_multiline_value\": 48, \"link\": 49, \"node\": 50, \"vertex\": 51, \"AMP\": 52, \"STYLE_SEPARATOR\": 53, \"idString\": 54, \"DOUBLECIRCLESTART\": 55, \"DOUBLECIRCLEEND\": 56, \"PS\": 57, \"PE\": 58, \"(-\": 59, \"-)\": 60, \"STADIUMSTART\": 61, \"STADIUMEND\": 62, \"SUBROUTINESTART\": 63, \"SUBROUTINEEND\": 64, \"VERTEX_WITH_PROPS_START\": 65, \"ALPHA\": 66, \"COLON\": 67, \"PIPE\": 68, \"CYLINDERSTART\": 69, \"CYLINDEREND\": 70, \"DIAMOND_START\": 71, \"DIAMOND_STOP\": 72, \"TAGEND\": 73, \"TRAPSTART\": 74, \"TRAPEND\": 75, \"INVTRAPSTART\": 76, \"INVTRAPEND\": 77, \"linkStatement\": 78, \"arrowText\": 79, \"TESTSTR\": 80, \"START_LINK\": 81, \"LINK\": 82, \"textToken\": 83, \"STR\": 84, \"MD_STR\": 85, \"keywords\": 86, \"STYLE\": 87, \"LINKSTYLE\": 88, \"CLASSDEF\": 89, \"CLASS\": 90, \"CLICK\": 91, \"DOWN\": 92, \"UP\": 93, \"textNoTags\": 94, \"textNoTagsToken\": 95, \"DEFAULT\": 96, \"stylesOpt\": 97, \"alphaNum\": 98, \"CALLBACKNAME\": 99, \"CALLBACKARGS\": 100, \"HREF\": 101, \"LINK_TARGET\": 102, \"HEX\": 103, \"numList\": 104, \"INTERPOLATE\": 105, \"NUM\": 106, \"COMMA\": 107, \"style\": 108, \"styleComponent\": 109, \"MINUS\": 110, \"UNIT\": 111, \"BRKT\": 112, \"DOT\": 113, \"PCT\": 114, \"TAGSTART\": 115, \"alphaNumToken\": 116, \"idStringToken\": 117, \"alphaNumStatement\": 118, \"direction_tb\": 119, \"direction_bt\": 120, \"direction_rl\": 121, \"direction_lr\": 122, \"PUNCTUATION\": 123, \"UNICODE_TEXT\": 124, \"PLUS\": 125, \"EQUALS\": 126, \"MULT\": 127, \"UNDERSCORE\": 128, \"graphCodeTokens\": 129, \"ARROW_CROSS\": 130, \"ARROW_POINT\": 131, \"ARROW_CIRCLE\": 132, \"ARROW_OPEN\": 133, \"QUOTE\": 134, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 10: \":\", 12: \"open_directive\", 13: \"type_directive\", 14: \"arg_directive\", 15: \"close_directive\", 20: \"SEMI\", 21: \"NEWLINE\", 22: \"SPACE\", 23: \"EOF\", 24: \"GRAPH\", 25: \"NODIR\", 26: \"DIR\", 38: \"subgraph\", 40: \"SQS\", 41: \"SQE\", 42: \"end\", 44: \"acc_title\", 45: \"acc_title_value\", 46: \"acc_descr\", 47: \"acc_descr_value\", 48: \"acc_descr_multiline_value\", 52: \"AMP\", 53: \"STYLE_SEPARATOR\", 55: \"DOUBLECIRCLESTART\", 56: \"DOUBLECIRCLEEND\", 57: \"PS\", 58: \"PE\", 59: \"(-\", 60: \"-)\", 61: \"STADIUMSTART\", 62: \"STADIUMEND\", 63: \"SUBROUTINESTART\", 64: \"SUBROUTINEEND\", 65: \"VERTEX_WITH_PROPS_START\", 66: \"ALPHA\", 67: \"COLON\", 68: \"PIPE\", 69: \"CYLINDERSTART\", 70: \"CYLINDEREND\", 71: \"DIAMOND_START\", 72: \"DIAMOND_STOP\", 73: \"TAGEND\", 74: \"TRAPSTART\", 75: \"TRAPEND\", 76: \"INVTRAPSTART\", 77: \"INVTRAPEND\", 80: \"TESTSTR\", 81: \"START_LINK\", 82: \"LINK\", 84: \"STR\", 85: \"MD_STR\", 87: \"STYLE\", 88: \"LINKSTYLE\", 89: \"CLASSDEF\", 90: \"CLASS\", 91: \"CLICK\", 92: \"DOWN\", 93: \"UP\", 96: \"DEFAULT\", 99: \"CALLBACKNAME\", 100: \"CALLBACKARGS\", 101: \"HREF\", 102: \"LINK_TARGET\", 103: \"HEX\", 105: \"INTERPOLATE\", 106: \"NUM\", 107: \"COMMA\", 110: \"MINUS\", 111: \"UNIT\", 112: \"BRKT\", 113: \"DOT\", 114: \"PCT\", 115: \"TAGSTART\", 119: \"direction_tb\", 120: \"direction_bt\", 121: \"direction_rl\", 122: \"direction_lr\", 123: \"PUNCTUATION\", 124: \"UNICODE_TEXT\", 125: \"PLUS\", 126: \"EQUALS\", 127: \"MULT\", 128: \"UNDERSCORE\", 130: \"ARROW_CROSS\", 131: \"ARROW_POINT\", 132: \"ARROW_CIRCLE\", 133: \"ARROW_OPEN\", 134: \"QUOTE\" },\n productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 6:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 7:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 8:\n yy.parseDirective(\"}%%\", \"close_directive\", \"flowchart\");\n break;\n case 10:\n this.$ = [];\n break;\n case 11:\n if (!Array.isArray($$[$0]) || $$[$0].length > 0) {\n $$[$0 - 1].push($$[$0]);\n }\n this.$ = $$[$0 - 1];\n break;\n case 12:\n case 97:\n case 153:\n case 155:\n case 156:\n this.$ = $$[$0];\n break;\n case 19:\n yy.setDirection(\"TB\");\n this.$ = \"TB\";\n break;\n case 20:\n yy.setDirection($$[$0 - 1]);\n this.$ = $$[$0 - 1];\n break;\n case 35:\n this.$ = $$[$0 - 1].nodes;\n break;\n case 36:\n case 37:\n case 38:\n case 39:\n case 40:\n this.$ = [];\n break;\n case 41:\n this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);\n break;\n case 42:\n this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);\n break;\n case 43:\n this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);\n break;\n case 45:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 46:\n case 47:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 51:\n yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);\n this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };\n break;\n case 52:\n yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);\n this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };\n break;\n case 53:\n this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };\n break;\n case 54:\n this.$ = { stmt: $$[$0], nodes: $$[$0] };\n break;\n case 55:\n this.$ = [$$[$0]];\n break;\n case 56:\n this.$ = $$[$0 - 4].concat($$[$0]);\n break;\n case 57:\n this.$ = [$$[$0 - 2]];\n yy.setClass($$[$0 - 2], $$[$0]);\n break;\n case 58:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"square\");\n break;\n case 59:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"doublecircle\");\n break;\n case 60:\n this.$ = $$[$0 - 5];\n yy.addVertex($$[$0 - 5], $$[$0 - 2], \"circle\");\n break;\n case 61:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"ellipse\");\n break;\n case 62:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"stadium\");\n break;\n case 63:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"subroutine\");\n break;\n case 64:\n this.$ = $$[$0 - 7];\n yy.addVertex($$[$0 - 7], $$[$0 - 1], \"rect\", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));\n break;\n case 65:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"cylinder\");\n break;\n case 66:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"round\");\n break;\n case 67:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"diamond\");\n break;\n case 68:\n this.$ = $$[$0 - 5];\n yy.addVertex($$[$0 - 5], $$[$0 - 2], \"hexagon\");\n break;\n case 69:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"odd\");\n break;\n case 70:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"trapezoid\");\n break;\n case 71:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"inv_trapezoid\");\n break;\n case 72:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_right\");\n break;\n case 73:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_left\");\n break;\n case 74:\n this.$ = $$[$0];\n yy.addVertex($$[$0]);\n break;\n case 75:\n $$[$0 - 1].text = $$[$0];\n this.$ = $$[$0 - 1];\n break;\n case 76:\n case 77:\n $$[$0 - 2].text = $$[$0 - 1];\n this.$ = $$[$0 - 2];\n break;\n case 78:\n this.$ = $$[$0];\n break;\n case 79:\n var inf = yy.destructLink($$[$0], $$[$0 - 2]);\n this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length, \"text\": $$[$0 - 1] };\n break;\n case 80:\n var inf = yy.destructLink($$[$0]);\n this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length };\n break;\n case 81:\n this.$ = $$[$0 - 1];\n break;\n case 82:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 83:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 84:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 85:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 98:\n case 154:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n case 99:\n case 100:\n this.$ = $$[$0 - 4];\n yy.addClass($$[$0 - 2], $$[$0]);\n break;\n case 101:\n this.$ = $$[$0 - 4];\n yy.setClass($$[$0 - 2], $$[$0]);\n break;\n case 102:\n case 110:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 103:\n case 111:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 104:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 105:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 4], $$[$0]);\n break;\n case 106:\n case 112:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 107:\n case 113:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 108:\n case 114:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n break;\n case 109:\n case 115:\n this.$ = $$[$0 - 5];\n yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);\n yy.setTooltip($$[$0 - 5], $$[$0 - 2]);\n break;\n case 116:\n this.$ = $$[$0 - 4];\n yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);\n break;\n case 117:\n case 119:\n this.$ = $$[$0 - 4];\n yy.updateLink($$[$0 - 2], $$[$0]);\n break;\n case 118:\n this.$ = $$[$0 - 4];\n yy.updateLink([$$[$0 - 2]], $$[$0]);\n break;\n case 120:\n this.$ = $$[$0 - 8];\n yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);\n yy.updateLink([$$[$0 - 6]], $$[$0]);\n break;\n case 121:\n this.$ = $$[$0 - 8];\n yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);\n yy.updateLink($$[$0 - 6], $$[$0]);\n break;\n case 122:\n this.$ = $$[$0 - 6];\n yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);\n break;\n case 123:\n this.$ = $$[$0 - 6];\n yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);\n break;\n case 124:\n case 126:\n this.$ = [$$[$0]];\n break;\n case 125:\n case 127:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 129:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 151:\n this.$ = $$[$0];\n break;\n case 152:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n case 157:\n this.$ = \"v\";\n break;\n case 158:\n this.$ = \"-\";\n break;\n case 159:\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 160:\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 161:\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 162:\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, o($V4, $V5, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: $V1, 22: $V2, 24: $V3 }, { 16: 15, 21: $V1, 22: $V2, 24: $V3 }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 8: 64, 10: [1, 65], 15: $VD }, o([10, 15], [2, 6]), o($V4, [2, 17]), o($V4, [2, 18]), o($V4, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: $VE, 27: 67, 30: 70 }, o($VF, [2, 11]), o($VF, [2, 12]), o($VF, [2, 13]), o($VF, [2, 14]), o($VF, [2, 15]), o($VF, [2, 16]), { 9: 72, 20: $VG, 21: $VH, 23: $VI, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: $VG, 21: $VH, 23: $VI }, { 9: 81, 20: $VG, 21: $VH, 23: $VI }, { 9: 82, 20: $VG, 21: $VH, 23: $VI }, { 9: 83, 20: $VG, 21: $VH, 23: $VI }, { 9: 84, 20: $VG, 21: $VH, 23: $VI }, { 9: 86, 20: $VG, 21: $VH, 22: [1, 85], 23: $VI }, o($VF, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, o($VF, [2, 47]), o($VJ, [2, 54], { 30: 89, 22: $VE }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 84: [1, 97], 92: $VO, 98: 96, 99: [1, 94], 101: [1, 95], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($VF, [2, 159]), o($VF, [2, 160]), o($VF, [2, 161]), o($VF, [2, 162]), o($V_, [2, 55], { 53: [1, 116] }), o($V$, [2, 74], { 117: 129, 40: [1, 117], 52: $Ve, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: $Vf, 67: $Vg, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), o($V01, [2, 151]), o($V01, [2, 176]), o($V01, [2, 177]), o($V01, [2, 178]), o($V01, [2, 179]), o($V01, [2, 180]), o($V01, [2, 181]), o($V01, [2, 182]), o($V01, [2, 183]), o($V01, [2, 184]), o($V01, [2, 185]), o($V01, [2, 186]), o($V01, [2, 187]), o($V01, [2, 188]), o($V01, [2, 189]), o($V01, [2, 190]), o($V01, [2, 191]), { 9: 130, 20: $VG, 21: $VH, 23: $VI }, { 11: 131, 14: [1, 132] }, o($V11, [2, 8]), o($V4, [2, 20]), o($V4, [2, 26]), o($V4, [2, 27]), { 21: [1, 133] }, o($V21, [2, 34], { 30: 134, 22: $VE }), o($VF, [2, 35]), { 50: 135, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V31, [2, 48]), o($V31, [2, 49]), o($V31, [2, 50]), o($V41, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 139, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), o($VF, [2, 36]), o($VF, [2, 37]), o($VF, [2, 38]), o($VF, [2, 39]), o($VF, [2, 40]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 164, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 165 }), o($VF, [2, 45]), o($VF, [2, 46]), o($VJ, [2, 53], { 52: $Vq1 }), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 167, 103: [1, 168], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 96: [1, 172], 98: 173, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 174, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 102], { 22: [1, 175], 100: [1, 176] }), o($V11, [2, 106], { 22: [1, 177] }), o($V11, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 112], { 22: [1, 180] }), o($Vr1, [2, 153]), o($Vr1, [2, 155]), o($Vr1, [2, 156]), o($Vr1, [2, 157]), o($Vr1, [2, 158]), o($Vs1, [2, 163]), o($Vs1, [2, 164]), o($Vs1, [2, 165]), o($Vs1, [2, 166]), o($Vs1, [2, 167]), o($Vs1, [2, 168]), o($Vs1, [2, 169]), o($Vs1, [2, 170]), o($Vs1, [2, 171]), o($Vs1, [2, 172]), o($Vs1, [2, 173]), o($Vs1, [2, 174]), o($Vs1, [2, 175]), { 52: $Ve, 54: 181, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 182, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 183, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 185, 42: $V91, 52: $VL, 57: [1, 184], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 186, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 187, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 188, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 66: [1, 189] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 190, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 191, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 71: [1, 192], 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 193, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 194, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 195, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V01, [2, 152]), o($Vt1, [2, 3]), { 8: 196, 15: $VD }, { 15: [2, 7] }, o($V4, [2, 28]), o($V21, [2, 33]), o($VJ, [2, 51], { 30: 197, 22: $VE }), o($V41, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 200, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 82: [1, 201], 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vs1, [2, 82]), o($Vs1, [2, 84]), o($Vs1, [2, 85]), o($Vs1, [2, 141]), o($Vs1, [2, 142]), o($Vs1, [2, 143]), o($Vs1, [2, 144]), o($Vs1, [2, 145]), o($Vs1, [2, 146]), o($Vs1, [2, 147]), o($Vs1, [2, 148]), o($Vs1, [2, 149]), o($Vs1, [2, 150]), o($Vs1, [2, 86]), o($Vs1, [2, 87]), o($Vs1, [2, 88]), o($Vs1, [2, 89]), o($Vs1, [2, 90]), o($Vs1, [2, 91]), o($Vs1, [2, 92]), o($Vs1, [2, 93]), o($Vs1, [2, 94]), o($Vs1, [2, 95]), o($Vs1, [2, 96]), { 9: 204, 20: $VG, 21: $VH, 22: $V51, 23: $VI, 24: $V61, 26: $V71, 38: $V81, 40: [1, 203], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 205], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $VE, 30: 206 }, { 22: [1, 207], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, o($Vu1, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 214], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 84: [1, 215] }, o($V11, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, o($Vr1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, o($V_, [2, 57], { 117: 129, 52: $Ve, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 222], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 56: [1, 223], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 224, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 225], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 60: [1, 226], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 62: [1, 227], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 64: [1, 228], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 67: [1, 229] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 70: [1, 230], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 231], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 232, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 233], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 234], 77: [1, 235], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 237], 77: [1, 236], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 9: 238, 20: $VG, 21: $VH, 23: $VI }, o($VJ, [2, 52], { 52: $Vq1 }), o($V41, [2, 77]), o($V41, [2, 76]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 68: [1, 239], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V41, [2, 79]), o($Vs1, [2, 83]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 240, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 241 }), o($VF, [2, 43]), { 51: 242, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 243, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 257, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 258, 103: $Vz1, 105: [1, 259], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 260, 103: $Vz1, 105: [1, 261], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 106: [1, 262] }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 263, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 264, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 265, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 103]), { 84: [1, 266] }, o($V11, [2, 107], { 22: [1, 267] }), o($V11, [2, 108]), o($V11, [2, 111]), o($V11, [2, 113], { 22: [1, 268] }), o($V11, [2, 114]), o($V$, [2, 58]), o($V$, [2, 59]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 269], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 66]), o($V$, [2, 61]), o($V$, [2, 62]), o($V$, [2, 63]), { 66: [1, 270] }, o($V$, [2, 65]), o($V$, [2, 67]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 271], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 69]), o($V$, [2, 70]), o($V$, [2, 72]), o($V$, [2, 71]), o($V$, [2, 73]), o($Vt1, [2, 4]), o([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 272], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 273], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V_, [2, 56]), o($V11, [2, 116], { 107: $VG1 }), o($VH1, [2, 126], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($VI1, [2, 128]), o($VI1, [2, 130]), o($VI1, [2, 131]), o($VI1, [2, 132]), o($VI1, [2, 133]), o($VI1, [2, 134]), o($VI1, [2, 135]), o($VI1, [2, 136]), o($VI1, [2, 137]), o($VI1, [2, 138]), o($VI1, [2, 139]), o($VI1, [2, 140]), o($V11, [2, 117], { 107: $VG1 }), o($V11, [2, 118], { 107: $VG1 }), { 22: [1, 276] }, o($V11, [2, 119], { 107: $VG1 }), { 22: [1, 277] }, o($Vu1, [2, 125]), o($V11, [2, 99], { 107: $VG1 }), o($V11, [2, 100], { 107: $VG1 }), o($V11, [2, 101], { 116: 100, 118: 179, 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: $VG, 21: $VH, 23: $VI }, o($VF, [2, 42]), { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 108: 284, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($VI1, [2, 129]), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 285, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 286, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 109]), o($V11, [2, 115]), o($V$, [2, 60]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 287, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 68]), o($Vp1, $V5, { 17: 288 }), o($VH1, [2, 127], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($V11, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 291], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 292], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 293, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 294, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($V$, [2, 64]), o($VF, [2, 41]), o($V11, [2, 120], { 107: $VG1 }), o($V11, [2, 121], { 107: $VG1 })],\n defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex2() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex2();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex2() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 12;\n case 1:\n this.begin(\"type_directive\");\n return 13;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 10;\n case 3:\n this.popState();\n this.popState();\n return 15;\n case 4:\n return 14;\n case 5:\n this.begin(\"acc_title\");\n return 44;\n case 6:\n this.popState();\n return \"acc_title_value\";\n case 7:\n this.begin(\"acc_descr\");\n return 46;\n case 8:\n this.popState();\n return \"acc_descr_value\";\n case 9:\n this.begin(\"acc_descr_multiline\");\n break;\n case 10:\n this.popState();\n break;\n case 11:\n return \"acc_descr_multiline_value\";\n case 12:\n this.begin(\"md_string\");\n break;\n case 13:\n return \"MD_STR\";\n case 14:\n this.popState();\n break;\n case 15:\n this.begin(\"string\");\n break;\n case 16:\n this.popState();\n break;\n case 17:\n return \"STR\";\n case 18:\n return 87;\n case 19:\n return 96;\n case 20:\n return 88;\n case 21:\n return 105;\n case 22:\n return 89;\n case 23:\n return 90;\n case 24:\n this.begin(\"href\");\n break;\n case 25:\n this.popState();\n break;\n case 26:\n return 101;\n case 27:\n this.begin(\"callbackname\");\n break;\n case 28:\n this.popState();\n break;\n case 29:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 30:\n return 99;\n case 31:\n this.popState();\n break;\n case 32:\n return 100;\n case 33:\n this.begin(\"click\");\n break;\n case 34:\n this.popState();\n break;\n case 35:\n return 91;\n case 36:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 24;\n case 37:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 24;\n case 38:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 24;\n case 39:\n return 38;\n case 40:\n return 42;\n case 41:\n return 102;\n case 42:\n return 102;\n case 43:\n return 102;\n case 44:\n return 102;\n case 45:\n this.popState();\n return 25;\n case 46:\n this.popState();\n return 26;\n case 47:\n this.popState();\n return 26;\n case 48:\n this.popState();\n return 26;\n case 49:\n this.popState();\n return 26;\n case 50:\n this.popState();\n return 26;\n case 51:\n this.popState();\n return 26;\n case 52:\n this.popState();\n return 26;\n case 53:\n this.popState();\n return 26;\n case 54:\n this.popState();\n return 26;\n case 55:\n this.popState();\n return 26;\n case 56:\n return 119;\n case 57:\n return 120;\n case 58:\n return 121;\n case 59:\n return 122;\n case 60:\n return 106;\n case 61:\n return 112;\n case 62:\n return 53;\n case 63:\n return 67;\n case 64:\n return 52;\n case 65:\n return 20;\n case 66:\n return 107;\n case 67:\n return 127;\n case 68:\n return 82;\n case 69:\n return 82;\n case 70:\n return 82;\n case 71:\n return 82;\n case 72:\n return 81;\n case 73:\n return 81;\n case 74:\n return 81;\n case 75:\n return 59;\n case 76:\n return 60;\n case 77:\n return 61;\n case 78:\n return 62;\n case 79:\n return 63;\n case 80:\n return 64;\n case 81:\n return 65;\n case 82:\n return 69;\n case 83:\n return 70;\n case 84:\n return 55;\n case 85:\n return 56;\n case 86:\n return 110;\n case 87:\n return 113;\n case 88:\n return 128;\n case 89:\n return 125;\n case 90:\n return 114;\n case 91:\n return 126;\n case 92:\n return 126;\n case 93:\n return 115;\n case 94:\n return 73;\n case 95:\n return 93;\n case 96:\n return \"SEP\";\n case 97:\n return 92;\n case 98:\n return 66;\n case 99:\n return 75;\n case 100:\n return 74;\n case 101:\n return 77;\n case 102:\n return 76;\n case 103:\n return 123;\n case 104:\n return 124;\n case 105:\n return 68;\n case 106:\n return 57;\n case 107:\n return 58;\n case 108:\n return 40;\n case 109:\n return 41;\n case 110:\n return 71;\n case 111:\n return 72;\n case 112:\n return 134;\n case 113:\n return 21;\n case 114:\n return 22;\n case 115:\n return 23;\n }\n },\n rules: [/^(?:%%\\{)/, /^(?:((?:(?!\\}%%)[^:.])*))/, /^(?::)/, /^(?:\\}%%)/, /^(?:((?:(?!\\}%%).|\\n)*))/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:style\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\b)/, /^(?:class\\b)/, /^(?:href[\\s]+[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:call[\\s]+)/, /^(?:\\([\\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]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\\*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\[)/, /^(?:\\]\\))/, /^(?:\\[\\[)/, /^(?:\\]\\])/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\])/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:-)/, /^(?:\\.)/, /^(?:[\\_])/, /^(?:\\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:<)/, /^(?:>)/, /^(?:\\^)/, /^(?:\\\\\\|)/, /^(?:v\\b)/, /^(?:[A-Za-z]+)/, /^(?:\\\\\\])/, /^(?:\\[\\/)/, /^(?:\\/\\])/, /^(?:\\[\\\\)/, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/, /^(?:[\\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)/, /^(?:$)/],\n conditions: { \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"callbackargs\": { \"rules\": [31, 32], \"inclusive\": false }, \"callbackname\": { \"rules\": [28, 29, 30], \"inclusive\": false }, \"href\": { \"rules\": [25, 26], \"inclusive\": false }, \"click\": { \"rules\": [34, 35], \"inclusive\": false }, \"vertex\": { \"rules\": [], \"inclusive\": false }, \"dir\": { \"rules\": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [10, 11], \"inclusive\": false }, \"acc_descr\": { \"rules\": [8], \"inclusive\": false }, \"acc_title\": { \"rules\": [6], \"inclusive\": false }, \"md_string\": { \"rules\": [13, 14], \"inclusive\": false }, \"string\": { \"rules\": [16, 17], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 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, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst MERMAID_DOM_ID_PREFIX = \"flowchart-\";\nlet vertexCounter = 0;\nlet config = getConfig();\nlet vertices = {};\nlet edges = [];\nlet classes = {};\nlet subGraphs = [];\nlet subGraphLookup = {};\nlet tooltips = {};\nlet subCount = 0;\nlet firstGraphFlag = true;\nlet direction;\nlet version;\nlet funs = [];\nconst sanitizeText = (txt) => common.sanitizeText(txt, config);\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst lookUpDomId = function(id) {\n const veritceKeys = Object.keys(vertices);\n for (const veritceKey of veritceKeys) {\n if (vertices[veritceKey].id === id) {\n return vertices[veritceKey].domId;\n }\n }\n return id;\n};\nconst addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) {\n let txt;\n let id = _id;\n if (id === void 0) {\n return;\n }\n if (id.trim().length === 0) {\n return;\n }\n if (vertices[id] === void 0) {\n vertices[id] = {\n id,\n labelType: \"text\",\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + vertexCounter,\n styles: [],\n classes: []\n };\n }\n vertexCounter++;\n if (textObj !== void 0) {\n config = getConfig();\n txt = sanitizeText(textObj.text.trim());\n vertices[id].labelType = textObj.type;\n if (txt[0] === '\"' && txt[txt.length - 1] === '\"') {\n txt = txt.substring(1, txt.length - 1);\n }\n vertices[id].text = txt;\n } else {\n if (vertices[id].text === void 0) {\n vertices[id].text = _id;\n }\n }\n if (type !== void 0) {\n vertices[id].type = type;\n }\n if (style !== void 0 && style !== null) {\n style.forEach(function(s) {\n vertices[id].styles.push(s);\n });\n }\n if (classes2 !== void 0 && classes2 !== null) {\n classes2.forEach(function(s) {\n vertices[id].classes.push(s);\n });\n }\n if (dir !== void 0) {\n vertices[id].dir = dir;\n }\n if (vertices[id].props === void 0) {\n vertices[id].props = props;\n } else if (props !== void 0) {\n Object.assign(vertices[id].props, props);\n }\n};\nconst addSingleLink = function(_start, _end, type) {\n let start = _start;\n let end = _end;\n const edge = { start, end, type: void 0, text: \"\", labelType: \"text\" };\n log.info(\"abc78 Got edge...\", edge);\n const linkTextObj = type.text;\n if (linkTextObj !== void 0) {\n edge.text = sanitizeText(linkTextObj.text.trim());\n if (edge.text[0] === '\"' && edge.text[edge.text.length - 1] === '\"') {\n edge.text = edge.text.substring(1, edge.text.length - 1);\n }\n edge.labelType = linkTextObj.type;\n }\n if (type !== void 0) {\n edge.type = type.type;\n edge.stroke = type.stroke;\n edge.length = type.length;\n }\n edges.push(edge);\n};\nconst addLink = function(_start, _end, type) {\n log.info(\"addLink (abc78)\", _start, _end, type);\n let i, j;\n for (i = 0; i < _start.length; i++) {\n for (j = 0; j < _end.length; j++) {\n addSingleLink(_start[i], _end[j], type);\n }\n }\n};\nconst updateLinkInterpolate = function(positions, interp) {\n positions.forEach(function(pos) {\n if (pos === \"default\") {\n edges.defaultInterpolate = interp;\n } else {\n edges[pos].interpolate = interp;\n }\n });\n};\nconst updateLink = function(positions, style) {\n positions.forEach(function(pos) {\n if (pos === \"default\") {\n edges.defaultStyle = style;\n } else {\n if (utils.isSubstringInArray(\"fill\", style) === -1) {\n style.push(\"fill:none\");\n }\n edges[pos].style = style;\n }\n });\n};\nconst addClass = function(id, style) {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n if (style !== void 0 && style !== null) {\n style.forEach(function(s) {\n if (s.match(\"color\")) {\n const newStyle1 = s.replace(\"fill\", \"bgFill\");\n const newStyle2 = newStyle1.replace(\"color\", \"fill\");\n classes[id].textStyles.push(newStyle2);\n }\n classes[id].styles.push(s);\n });\n }\n};\nconst setDirection = function(dir) {\n direction = dir;\n if (direction.match(/.*/)) {\n direction = \"LR\";\n }\n if (direction.match(/.*v/)) {\n direction = \"TB\";\n }\n if (direction === \"TD\") {\n direction = \"TB\";\n }\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (vertices[id] !== void 0) {\n vertices[id].classes.push(className);\n }\n if (subGraphLookup[id] !== void 0) {\n subGraphLookup[id].classes.push(className);\n }\n });\n};\nconst setTooltip = function(ids, tooltip) {\n ids.split(\",\").forEach(function(id) {\n if (tooltip !== void 0) {\n tooltips[version === \"gen-1\" ? lookUpDomId(id) : id] = sanitizeText(tooltip);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n let domId = lookUpDomId(id);\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n if (vertices[id] !== void 0) {\n vertices[id].haveCallback = true;\n funs.push(function() {\n const elem = document.querySelector(`[id=\"${domId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n function() {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\nconst setLink = function(ids, linkStr, target) {\n ids.split(\",\").forEach(function(id) {\n if (vertices[id] !== void 0) {\n vertices[id].link = utils.formatUrl(linkStr, config);\n vertices[id].linkTarget = target;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst getTooltip = function(id) {\n return tooltips[id];\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst getDirection = function() {\n return direction.trim();\n};\nconst getVertices = function() {\n return vertices;\n};\nconst getEdges = function() {\n return edges;\n};\nconst getClasses = function() {\n return classes;\n};\nconst setupToolTips = function(element) {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", function() {\n const el = select(this);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.top - 14 + document.body.scrollTop + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
    \"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", function() {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(this);\n el.classed(\"hover\", false);\n });\n};\nfuns.push(setupToolTips);\nconst clear = function(ver = \"gen-1\") {\n vertices = {};\n classes = {};\n edges = [];\n funs = [setupToolTips];\n subGraphs = [];\n subGraphLookup = {};\n subCount = 0;\n tooltips = [];\n firstGraphFlag = true;\n version = ver;\n clear$1();\n};\nconst setGen = (ver) => {\n version = ver || \"gen-2\";\n};\nconst defaultStyle = function() {\n return \"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;\";\n};\nconst addSubGraph = function(_id, list, _title) {\n let id = _id.text.trim();\n let title = _title.text;\n if (_id === _title && _title.text.match(/\\s/)) {\n id = void 0;\n }\n function uniq(a) {\n const prims = { boolean: {}, number: {}, string: {} };\n const objs = [];\n let dir2;\n const nodeList2 = a.filter(function(item) {\n const type = typeof item;\n if (item.stmt && item.stmt === \"dir\") {\n dir2 = item.value;\n return false;\n }\n if (item.trim() === \"\") {\n return false;\n }\n if (type in prims) {\n return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;\n } else {\n return objs.includes(item) ? false : objs.push(item);\n }\n });\n return { nodeList: nodeList2, dir: dir2 };\n }\n let nodeList = [];\n const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));\n nodeList = nl;\n if (version === \"gen-1\") {\n for (let i = 0; i < nodeList.length; i++) {\n nodeList[i] = lookUpDomId(nodeList[i]);\n }\n }\n id = id || \"subGraph\" + subCount;\n title = title || \"\";\n title = sanitizeText(title);\n subCount = subCount + 1;\n const subGraph = {\n id,\n nodes: nodeList,\n title: title.trim(),\n classes: [],\n dir,\n labelType: _title.type\n };\n log.info(\"Adding\", subGraph.id, subGraph.nodes, subGraph.dir);\n subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;\n subGraphs.push(subGraph);\n subGraphLookup[id] = subGraph;\n return id;\n};\nconst getPosForId = function(id) {\n for (const [i, subGraph] of subGraphs.entries()) {\n if (subGraph.id === id) {\n return i;\n }\n }\n return -1;\n};\nlet secCount = -1;\nconst posCrossRef = [];\nconst indexNodes2 = function(id, pos) {\n const nodes = subGraphs[pos].nodes;\n secCount = secCount + 1;\n if (secCount > 2e3) {\n return;\n }\n posCrossRef[secCount] = pos;\n if (subGraphs[pos].id === id) {\n return {\n result: true,\n count: 0\n };\n }\n let count = 0;\n let posCount = 1;\n while (count < nodes.length) {\n const childPos = getPosForId(nodes[count]);\n if (childPos >= 0) {\n const res = indexNodes2(id, childPos);\n if (res.result) {\n return {\n result: true,\n count: posCount + res.count\n };\n } else {\n posCount = posCount + res.count;\n }\n }\n count = count + 1;\n }\n return {\n result: false,\n count: posCount\n };\n};\nconst getDepthFirstPos = function(pos) {\n return posCrossRef[pos];\n};\nconst indexNodes = function() {\n secCount = -1;\n if (subGraphs.length > 0) {\n indexNodes2(\"none\", subGraphs.length - 1);\n }\n};\nconst getSubGraphs = function() {\n return subGraphs;\n};\nconst firstGraph = () => {\n if (firstGraphFlag) {\n firstGraphFlag = false;\n return true;\n }\n return false;\n};\nconst destructStartLink = (_str) => {\n let str = _str.trim();\n let type = \"arrow_open\";\n switch (str[0]) {\n case \"<\":\n type = \"arrow_point\";\n str = str.slice(1);\n break;\n case \"x\":\n type = \"arrow_cross\";\n str = str.slice(1);\n break;\n case \"o\":\n type = \"arrow_circle\";\n str = str.slice(1);\n break;\n }\n let stroke = \"normal\";\n if (str.includes(\"=\")) {\n stroke = \"thick\";\n }\n if (str.includes(\".\")) {\n stroke = \"dotted\";\n }\n return { type, stroke };\n};\nconst countChar = (char, str) => {\n const length = str.length;\n let count = 0;\n for (let i = 0; i < length; ++i) {\n if (str[i] === char) {\n ++count;\n }\n }\n return count;\n};\nconst destructEndLink = (_str) => {\n const str = _str.trim();\n let line = str.slice(0, -1);\n let type = \"arrow_open\";\n switch (str.slice(-1)) {\n case \"x\":\n type = \"arrow_cross\";\n if (str[0] === \"x\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n case \">\":\n type = \"arrow_point\";\n if (str[0] === \"<\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n case \"o\":\n type = \"arrow_circle\";\n if (str[0] === \"o\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n }\n let stroke = \"normal\";\n let length = line.length - 1;\n if (line[0] === \"=\") {\n stroke = \"thick\";\n }\n if (line[0] === \"~\") {\n stroke = \"invisible\";\n }\n let dots = countChar(\".\", line);\n if (dots) {\n stroke = \"dotted\";\n length = dots;\n }\n return { type, stroke, length };\n};\nconst destructLink = (_str, _startStr) => {\n const info = destructEndLink(_str);\n let startInfo;\n if (_startStr) {\n startInfo = destructStartLink(_startStr);\n if (startInfo.stroke !== info.stroke) {\n return { type: \"INVALID\", stroke: \"INVALID\" };\n }\n if (startInfo.type === \"arrow_open\") {\n startInfo.type = info.type;\n } else {\n if (startInfo.type !== info.type) {\n return { type: \"INVALID\", stroke: \"INVALID\" };\n }\n startInfo.type = \"double_\" + startInfo.type;\n }\n if (startInfo.type === \"double_arrow\") {\n startInfo.type = \"double_arrow_point\";\n }\n startInfo.length = info.length;\n return startInfo;\n }\n return info;\n};\nconst exists = (allSgs, _id) => {\n let res = false;\n allSgs.forEach((sg) => {\n const pos = sg.nodes.indexOf(_id);\n if (pos >= 0) {\n res = true;\n }\n });\n return res;\n};\nconst makeUniq = (sg, allSubgraphs) => {\n const res = [];\n sg.nodes.forEach((_id, pos) => {\n if (!exists(allSubgraphs, _id)) {\n res.push(sg.nodes[pos]);\n }\n });\n return { nodes: res };\n};\nconst lex = {\n firstGraph\n};\nconst flowDb = {\n parseDirective,\n defaultConfig: () => defaultConfig.flowchart,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n addVertex,\n lookUpDomId,\n addLink,\n updateLinkInterpolate,\n updateLink,\n addClass,\n setDirection,\n setClass,\n setTooltip,\n getTooltip,\n setClickEvent,\n setLink,\n bindFunctions,\n getDirection,\n getVertices,\n getEdges,\n getClasses,\n clear,\n setGen,\n defaultStyle,\n addSubGraph,\n getDepthFirstPos,\n indexNodes,\n getSubGraphs,\n destructLink,\n lex,\n exists,\n makeUniq,\n setDiagramTitle,\n getDiagramTitle\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addClass,\n addLink,\n addSingleLink,\n addSubGraph,\n addVertex,\n bindFunctions,\n clear,\n default: flowDb,\n defaultStyle,\n destructLink,\n firstGraph,\n getClasses,\n getDepthFirstPos,\n getDirection,\n getEdges,\n getSubGraphs,\n getTooltip,\n getVertices,\n indexNodes,\n lex,\n lookUpDomId,\n parseDirective,\n setClass,\n setClickEvent,\n setDirection,\n setGen,\n setLink,\n updateLink,\n updateLinkInterpolate\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n db as d,\n flowDb as f,\n parser$1 as p\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","$V01","$V11","$V21","$V31","$V41","$V51","$V61","$V71","$V81","$V91","$Va1","$Vb1","$Vc1","$Vd1","$Ve1","$Vf1","$Vg1","$Vh1","$Vi1","$Vj1","$Vk1","$Vl1","$Vm1","$Vn1","$Vo1","$Vp1","$Vq1","$Vr1","$Vs1","$Vt1","$Vu1","$Vv1","$Vw1","$Vx1","$Vy1","$Vz1","$VA1","$VB1","$VC1","$VD1","$VE1","$VF1","$VG1","$VH1","$VI1","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","inf","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex2","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","MERMAID_DOM_ID_PREFIX","vertexCounter","config","getConfig","vertices","edges","classes","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","version","funs","sanitizeText","txt","common","parseDirective","statement","context","type","mermaidAPI","lookUpDomId","id","veritceKeys","veritceKey","addVertex","_id","textObj","style","classes2","dir","props","s","addSingleLink","_start","_end","edge","log","linkTextObj","addLink","j","updateLinkInterpolate","positions","interp","pos","updateLink","utils","addClass","newStyle2","setDirection","setClass","ids","className","setTooltip","tooltip","setClickFun","functionName","functionArgs","domId","argList","item","elem","setLink","linkStr","target","getTooltip","setClickEvent","bindFunctions","element","fun","getDirection","getVertices","getEdges","getClasses","setupToolTips","tooltipElem","select","el","rect","clear","ver","clear$1","setGen","defaultStyle","addSubGraph","list","_title","title","uniq","a","prims","objs","dir2","nodeList","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","nodes","count","posCount","childPos","res","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","stroke","countChar","char","length","destructEndLink","line","dots","destructLink","_startStr","info","startInfo","exists","allSgs","sg","allSubgraphs","lex","flowDb","defaultConfig","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","db"],"mappings":"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IAAK,GAAG,EAAGC,EAAO,CAAC,GAAI,GAAI,EAAE,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,EAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAA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,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC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IACH,MAAO,KACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,KACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,MACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,KACT,IAAK,KACH,MAAO,KACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,KACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,GACV,CACF,EACD,MAAO,CAAC,YAAa,4BAA6B,SAAU,YAAa,2BAA4B,uBAAwB,uBAAwB,uBAAwB,uBAAwB,wBAAyB,YAAa,cAAe,cAAe,cAAe,c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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js b/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js deleted file mode 100644 index 97afb01..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js +++ /dev/null @@ -1,5 +0,0 @@ -import{p as St,f as W}from"./flowDb-6a57c1b4-o7QdmK-d.js";import{h as S,u as Lt,r as Et,p as _t,l as Tt,d as D,f as tt,G as Nt}from"./layout-ewywu0M6.js";import{h as x,o as G,p as z,q as et,c as J,j as rt,l as I,r as V,t as At}from"./index-jpNTxDe4.js";import{a as N,b as at,i as nt,c as _,e as st,d as it,f as Ct,g as It}from"./styles-5f89df53-Cnw1EiWb.js";import{l as Bt}from"./line-reZX-DPl.js";import{s as Mt}from"./selectAll-ksDY_7eo.js";import"./index-2K3MavtT.js";import"./index-a92ac404-gZDUZJdp.js";import"./edges-49ac43a2-VNwnN65b.js";import"./createText-3df630b5-oLWc-GwH.js";import"./svgDraw-0fcc813d-8P1J7hc8.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";function Dt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Pt(r,e){return fetch(r,e).then(Dt)}function Rt(r){return(e,t)=>Pt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Gt=Rt("image/svg+xml"),Y={normal:$t,vee:Wt,undirected:Vt};function Ut(r){Y=r}function $t(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Yt(r,e){for(var t=r.append("text"),n=Ht(e.label).split(` -`),a=0;a0}function T(r,e,t){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(p){i=Math.min(i,p.x),o=Math.min(o,p.y)});for(var c=n-r.width/2-i,d=a-r.height/2-o,l=0;l1&&s.sort(function(p,m){var f=p.x-t.x,y=p.y-t.y,k=Math.sqrt(f*f+y*y),B=m.x-t.x,E=m.y-t.y,U=Math.sqrt(B*B+E*E);return kMath.abs(a)*o?(s<0&&(o=-o),c=s===0?0:o*a/s,d=o):(a<0&&(i=-i),c=i,d=a===0?0:i*s/a),{x:t+c,y:n+d}}var Q={rect:ie,ellipse:oe,circle:le,diamond:ce};function se(r){Q=r}function ie(r,e,t){var n=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(a){return Z(t,a)},n}function oe(r,e,t){var n=e.width/2,a=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",n).attr("ry",a);return t.intersect=function(i){return lt(t,n,a,i)},s}function le(r,e,t){var n=Math.max(e.width,e.height)/2,a=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",n);return t.intersect=function(s){return ae(t,n,s)},a}function ce(r,e,t){var n=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,s=[{x:0,y:-a},{x:-n,y:0},{x:0,y:a},{x:n,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return T(t,s,o)},i}function de(){var r=function(e,t){fe(t);var n=P(e,"output"),a=P(n,"clusters"),s=P(n,"edgePaths"),i=X(P(n,"edgeLabels"),t),o=q(P(n,"nodes"),t,Q);Tt(t),re(o,t),ee(i,t),F(s,t,Y);var c=H(a,t);te(c,t),pe(t)};return r.createNodes=function(e){return arguments.length?(jt(e),r):q},r.createClusters=function(e){return arguments.length?(Xt(e),r):H},r.createEdgeLabels=function(e){return arguments.length?(Ft(e),r):X},r.createEdgePaths=function(e){return arguments.length?(qt(e),r):F},r.shapes=function(e){return arguments.length?(se(e),r):Q},r.arrows=function(e){return arguments.length?(Ut(e),r):Y},r}var he={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},ue={arrowhead:"normal",curve:G};function fe(r){r.nodes().forEach(function(e){var t=r.node(e);!S(t,"label")&&!r.children(e).length&&(t.label=e),S(t,"paddingX")&&D(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),S(t,"paddingY")&&D(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),S(t,"padding")&&D(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),D(t,he),tt(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(n){t[n]=Number(t[n])}),S(t,"width")&&(t._prevWidth=t.width),S(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);S(t,"label")||(t.label=""),D(t,ue)})}function pe(r){tt(r.nodes(),function(e){var t=r.node(e);S(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,S(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function P(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function ct(r,e,t){const n=e.width,a=e.height,s=(n+a)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=A(r,s,s,i);return t.intersect=function(c){return T(t,i,c)},o}function dt(r,e,t){const a=e.height,s=a/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],c=A(r,i,a,o);return t.intersect=function(d){return T(t,o,d)},c}function ht(r,e,t){const n=e.width,a=e.height,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ut(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ft(r,e,t){const n=e.width,a=e.height,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function pt(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function vt(r,e,t){const n=e.width,a=e.height,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function yt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function gt(r,e,t){const n=e.height,a=e.width+n/4,s=r.insert("rect",":first-child").attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return t.intersect=function(i){return Z(t,i)},s}function mt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function wt(r,e,t){const n=e.width,a=n/2,s=a/(2.5+n/50),i=e.height+s,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+i+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-n/2+","+-(i/2+s)+")");return t.intersect=function(d){const l=Z(t,d),v=l.x-t.x;if(a!=0&&(Math.abs(v)t.height/2-s)){let h=s*s*(1-v*v/(a*a));h!=0&&(h=Math.sqrt(h)),h=s-h,d.y-t.y>0&&(h=-h),l.y+=h}return l},c}function ve(r){r.shapes().question=ct,r.shapes().hexagon=dt,r.shapes().stadium=gt,r.shapes().subroutine=mt,r.shapes().cylinder=wt,r.shapes().rect_left_inv_arrow=ht,r.shapes().lean_right=ut,r.shapes().lean_left=ft,r.shapes().trapezoid=pt,r.shapes().inv_trapezoid=vt,r.shapes().rect_right_inv_arrow=yt}function ye(r){r({question:ct}),r({hexagon:dt}),r({stadium:gt}),r({subroutine:mt}),r({cylinder:wt}),r({rect_left_inv_arrow:ht}),r({lean_right:ut}),r({lean_left:ft}),r({trapezoid:pt}),r({inv_trapezoid:vt}),r({rect_right_inv_arrow:yt})}function A(r,e,t,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const ge={addToRender:ve,addToRenderV2:ye},xt={},me=function(r){const e=Object.keys(r);for(const t of e)xt[t]=r[t]},bt=function(r,e,t,n,a,s){const i=n?n.select(`[id="${t}"]`):x(`[id="${t}"]`),o=a||document;Object.keys(r).forEach(function(d){const l=r[d];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=z(l.styles);let u=l.text!==void 0?l.text:l.id,p;if(et(J().flowchart.htmlLabels)){const y={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};p=at(i,y).node(),p.parentNode.removeChild(p)}else{const y=o.createElementNS("http://www.w3.org/2000/svg","text");y.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=u.split(rt.lineBreakRegex);for(const B of k){const E=o.createElementNS("http://www.w3.org/2000/svg","tspan");E.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),E.setAttribute("dy","1em"),E.setAttribute("x","1"),E.textContent=B,y.appendChild(E)}p=y}let m=0,f="";switch(l.type){case"round":m=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}I.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:p,rx:m,ry:m,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})})},kt=function(r,e,t){let n=0,a,s;if(r.defaultStyle!==void 0){const i=z(r.defaultStyle);a=i.style,s=i.labelStyle}r.forEach(function(i){n++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,d="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const u=z(i.style);v=u.style,h=u.labelStyle}else switch(i.stroke){case"normal":v="fill:none",a!==void 0&&(v=a),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=V(i.interpolate,G):r.defaultInterpolate!==void 0?l.curve=V(r.defaultInterpolate,G):l.curve=V(xt.curve,G),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",et(J().flowchart.htmlLabels)?(l.labelType="html",l.label=`${i.text.replace(/fa[blrs]?:fa-[\w-]+/g,u=>``)}`):(l.labelType="text",l.label=i.text.replace(rt.lineBreakRegex,` -`),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+d,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,n)})},we=function(r,e){I.info("Extracting classes"),e.db.clear();try{return e.parse(r),e.db.getClasses()}catch(t){return I.error(t),{}}},xe=function(r,e,t,n){I.info("Drawing flowchart"),n.db.clear();const{securityLevel:a,flowchart:s}=J();let i;a==="sandbox"&&(i=x("#i"+e));const o=a==="sandbox"?x(i.nodes()[0].contentDocument.body):x("body"),c=a==="sandbox"?i.nodes()[0].contentDocument:document;try{n.parser.parse(r)}catch{I.debug("Parsing failed")}let d=n.db.getDirection();d===void 0&&(d="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new Nt({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let u;const p=n.db.getSubGraphs();for(let g=p.length-1;g>=0;g--)u=p[g],n.db.addVertex(u.id,u.title,"group",void 0,u.classes);const m=n.db.getVertices();I.warn("Get vertices",m);const f=n.db.getEdges();let y=0;for(y=p.length-1;y>=0;y--){u=p[y],Mt("cluster").append("text");for(let g=0;g{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,be.setConf(r.flowchart),W.clear(),W.setGen("gen-1")}};export{Pe as diagram}; -//# sourceMappingURL=flowDiagram-93327f21-bzemmV0w.js.map diff --git a/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js.map b/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js.map deleted file mode 100644 index fffd3c7..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDiagram-93327f21-bzemmV0w.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"flowDiagram-93327f21-bzemmV0w.js","sources":["../../../node_modules/d3-fetch/src/text.js","../../../node_modules/d3-fetch/src/xml.js","../../../node_modules/dagre-d3-es/src/dagre-js/arrows.js","../../../node_modules/dagre-d3-es/src/dagre-js/label/add-svg-label.js","../../../node_modules/dagre-d3-es/src/dagre-js/label/add-text-label.js","../../../node_modules/dagre-d3-es/src/dagre-js/label/add-label.js","../../../node_modules/dagre-d3-es/src/dagre-js/create-clusters.js","../../../node_modules/dagre-d3-es/src/dagre-js/create-edge-labels.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-node.js","../../../node_modules/dagre-d3-es/src/dagre-js/create-edge-paths.js","../../../node_modules/dagre-d3-es/src/dagre-js/create-nodes.js","../../../node_modules/dagre-d3-es/src/dagre-js/position-clusters.js","../../../node_modules/dagre-d3-es/src/dagre-js/position-edge-labels.js","../../../node_modules/dagre-d3-es/src/dagre-js/position-nodes.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-ellipse.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-circle.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-line.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js","../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-rect.js","../../../node_modules/dagre-d3-es/src/dagre-js/shapes.js","../../../node_modules/dagre-d3-es/src/dagre-js/render.js","../../../node_modules/mermaid/dist/flowDiagram-93327f21.js"],"sourcesContent":["function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return (input, init) => text(input, init)\n .then(text => (new DOMParser).parseFromString(text, type));\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","import * as util from './util.js';\n\nexport { arrows, setArrows };\n\nvar arrows = {\n normal,\n vee,\n undirected,\n};\n\nfunction setArrows(value) {\n arrows = value;\n}\n\nfunction normal(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 L 4 5 z')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 5 L 10 5')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n","import * as util from '../util.js';\n\nexport { addSVGLabel };\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n","import * as util from '../util.js';\n\nexport { addTextLabel };\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append('text');\n\n var lines = processEscapeSequences(node.label).split('\\n');\n for (var i = 0; i < lines.length; i++) {\n domNode\n .append('tspan')\n .attr('xml:space', 'preserve')\n .attr('dy', '1em')\n .attr('x', '1')\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = '';\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch (ch) {\n case 'n':\n newText += '\\n';\n break;\n default:\n newText += ch;\n }\n escaped = false;\n } else if (ch === '\\\\') {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n","import { addHtmlLabel } from './add-html-label.js';\nimport { addSVGLabel } from './add-svg-label.js';\nimport { addTextLabel } from './add-text-label.js';\n\nexport { addLabel };\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append('g');\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === 'svg') {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== 'string' || node.labelType === 'html') {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch (location) {\n case 'top':\n y = -node.height / 2;\n break;\n case 'bottom':\n y = node.height / 2 - labelBBox.height;\n break;\n default:\n y = -labelBBox.height / 2;\n }\n labelSvg.attr('transform', 'translate(' + -labelBBox.width / 2 + ',' + y + ')');\n\n return labelSvg;\n}\n","import * as d3 from 'd3';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createClusters, setCreateClusters };\n\nvar createClusters = function (selection, g) {\n var clusters = g.nodes().filter(function (v) {\n return util.isSubgraph(g, v);\n });\n var svgClusters = selection.selectAll('g.cluster').data(clusters, function (v) {\n return v;\n });\n\n util.applyTransition(svgClusters.exit(), g).style('opacity', 0).remove();\n\n var enterSelection = svgClusters\n .enter()\n .append('g')\n .attr('class', 'cluster')\n .attr('id', function (v) {\n var node = g.node(v);\n return node.id;\n })\n .style('opacity', 0)\n .each(function (v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append('rect');\n var labelGroup = thisGroup.append('g').attr('class', 'label');\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters = svgClusters.merge(enterSelection);\n\n svgClusters = util.applyTransition(svgClusters, g).style('opacity', 1);\n\n svgClusters.selectAll('rect').each(function (c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n return svgClusters;\n};\n\nfunction setCreateClusters(value) {\n createClusters = value;\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createEdgeLabels, setCreateEdgeLabels };\n\nlet createEdgeLabels = function (selection, g) {\n var svgEdgeLabels = selection\n .selectAll('g.edgeLabel')\n .data(g.edges(), function (e) {\n return util.edgeToId(e);\n })\n .classed('update', true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append('g').classed('edgeLabel', true).style('opacity', 0);\n\n svgEdgeLabels = selection.selectAll('g.edgeLabel');\n\n svgEdgeLabels.each(function (e) {\n var root = d3.select(this);\n root.select('.label').remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0).classed('label', true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) {\n label.attr('id', edge.labelId);\n }\n if (!_.has(edge, 'width')) {\n edge.width = bbox.width;\n }\n if (!_.has(edge, 'height')) {\n edge.height = bbox.height;\n }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n return svgEdgeLabels;\n};\n\nfunction setCreateEdgeLabels(value) {\n createEdgeLabels = value;\n}\n","export { intersectNode };\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { intersectNode } from './intersect/intersect-node.js';\nimport * as util from './util.js';\n\nexport { createEdgePaths, setCreateEdgePaths };\n\nvar createEdgePaths = function (selection, g, arrows) {\n var previousPaths = selection\n .selectAll('g.edgePath')\n .data(g.edges(), function (e) {\n return util.edgeToId(e);\n })\n .classed('update', true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g).style('opacity', 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function (e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr('id', edge.id);\n }\n\n util.applyClass(\n domEdge,\n edge['class'],\n (domEdge.classed('update') ? 'update ' : '') + 'edgePath'\n );\n });\n\n svgPaths.selectAll('path.path').each(function (e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId('arrowhead');\n\n var domEdge = d3\n .select(this)\n .attr('marker-end', function () {\n return 'url(' + makeFragmentRef(location.href, edge.arrowheadId) + ')';\n })\n .style('fill', 'none');\n\n util.applyTransition(domEdge, g).attr('d', function (e) {\n return calcPoints(g, e);\n });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll('defs *').remove();\n svgPaths.selectAll('defs').each(function (e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, 'arrowhead');\n });\n\n return svgPaths;\n};\n\nfunction setCreateEdgePaths(value) {\n createEdgePaths = value;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split('#')[0];\n return baseUrl + '#' + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n // @ts-expect-error\n var line = (d3.line || d3.svg.line)()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n });\n\n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement\n .getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append('g').attr('class', 'edgePath').style('opacity', 0);\n svgPathsEnter\n .append('path')\n .attr('class', 'path')\n .attr('d', function (e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function () {\n return getCoords(sourceElem);\n });\n return createLine(edge, points);\n });\n svgPathsEnter.append('defs');\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g).style('opacity', 0).remove();\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createNodes, setCreateNodes };\n\nvar createNodes = function (selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function (v) {\n return !util.isSubgraph(g, v);\n });\n var svgNodes = selection\n .selectAll('g.node')\n .data(simpleNodes, function (v) {\n return v;\n })\n .classed('update', true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append('g').attr('class', 'node').style('opacity', 0);\n\n svgNodes = selection.selectAll('g.node');\n\n svgNodes.each(function (v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(\n thisGroup,\n node['class'],\n (thisGroup.classed('update') ? 'update ' : '') + 'node'\n );\n\n thisGroup.select('g.label').remove();\n var labelGroup = thisGroup.append('g').attr('class', 'label');\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), 'width', 'height');\n\n node.elem = this;\n\n if (node.id) {\n thisGroup.attr('id', node.id);\n }\n if (node.labelId) {\n labelGroup.attr('id', node.labelId);\n }\n\n if (_.has(node, 'width')) {\n bbox.width = node.width;\n }\n if (_.has(node, 'height')) {\n bbox.height = node.height;\n }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\n 'transform',\n 'translate(' +\n (node.paddingLeft - node.paddingRight) / 2 +\n ',' +\n (node.paddingTop - node.paddingBottom) / 2 +\n ')'\n );\n\n var root = d3.select(this);\n root.select('.label-container').remove();\n var shapeSvg = shape(root, bbox, node).classed('label-container', true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n return svgNodes;\n};\n\nfunction setCreateNodes(value) {\n createNodes = value;\n}\n","import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionClusters };\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(v) {\n var node = g.node(v);\n return 'translate(' + node.x + ',' + node.y + ')';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n\n util\n .applyTransition(created.selectAll('rect'), g)\n .attr('width', function (v) {\n return g.node(v).width;\n })\n .attr('height', function (v) {\n return g.node(v).height;\n })\n .attr('x', function (v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr('y', function (v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { positionEdgeLabels };\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, 'x') ? 'translate(' + edge.x + ',' + edge.y + ')' : '';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n","import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionNodes };\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(v) {\n var node = g.node(v);\n return 'translate(' + node.x + ',' + node.y + ')';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n","export { intersectEllipse };\n\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n","import { intersectEllipse } from './intersect-ellipse.js';\n\nexport { intersectCircle };\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n","export { intersectLine };\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n","import { intersectLine } from './intersect-line.js';\n\nexport { intersectPolygon };\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","export { intersectRect };\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n","import { intersectCircle } from './intersect/intersect-circle.js';\nimport { intersectEllipse } from './intersect/intersect-ellipse.js';\nimport { intersectPolygon } from './intersect/intersect-polygon.js';\nimport { intersectRect } from './intersect/intersect-rect.js';\n\nexport { shapes, setShapes };\n\nvar shapes = {\n rect,\n ellipse,\n circle,\n diamond,\n};\n\nfunction setShapes(value) {\n shapes = value;\n}\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent\n .insert('rect', ':first-child')\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('width', bbox.width)\n .attr('height', bbox.height);\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent\n .insert('ellipse', ':first-child')\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('rx', rx)\n .attr('ry', ry);\n\n node.intersect = function (point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent\n .insert('circle', ':first-child')\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('r', r);\n\n node.intersect = function (point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 },\n ];\n var shapeSvg = parent.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (p) {\n return p.x + ',' + p.y;\n })\n .join(' ')\n );\n\n node.intersect = function (p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { layout } from '../dagre/index.js';\nimport { arrows, setArrows } from './arrows.js';\nimport { createClusters, setCreateClusters } from './create-clusters.js';\nimport { createEdgeLabels, setCreateEdgeLabels } from './create-edge-labels.js';\nimport { createEdgePaths, setCreateEdgePaths } from './create-edge-paths.js';\nimport { createNodes, setCreateNodes } from './create-nodes.js';\nimport { positionClusters } from './position-clusters.js';\nimport { positionEdgeLabels } from './position-edge-labels.js';\nimport { positionNodes } from './position-nodes.js';\nimport { shapes, setShapes } from './shapes.js';\n\nexport { render };\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var fn = function (svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, 'output');\n var clustersGroup = createOrSelectGroup(outputGroup, 'clusters');\n var edgePathsGroup = createOrSelectGroup(outputGroup, 'edgePaths');\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, 'edgeLabels'), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, 'nodes'), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function (value) {\n if (!arguments.length) return createNodes;\n setCreateNodes(value);\n return fn;\n };\n\n fn.createClusters = function (value) {\n if (!arguments.length) return createClusters;\n setCreateClusters(value);\n return fn;\n };\n\n fn.createEdgeLabels = function (value) {\n if (!arguments.length) return createEdgeLabels;\n setCreateEdgeLabels(value);\n return fn;\n };\n\n fn.createEdgePaths = function (value) {\n if (!arguments.length) return createEdgePaths;\n setCreateEdgePaths(value);\n return fn;\n };\n\n fn.shapes = function (value) {\n if (!arguments.length) return shapes;\n setShapes(value);\n return fn;\n };\n\n fn.arrows = function (value) {\n if (!arguments.length) return arrows;\n setArrows(value);\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: 'rect',\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: 'normal',\n curve: d3.curveLinear,\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function (v) {\n var node = g.node(v);\n if (!_.has(node, 'label') && !g.children(v).length) {\n node.label = v;\n }\n\n if (_.has(node, 'paddingX')) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX,\n });\n }\n\n if (_.has(node, 'paddingY')) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY,\n });\n }\n\n if (_.has(node, 'padding')) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding,\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each(['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'], function (k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, 'width')) {\n node._prevWidth = node.width;\n }\n if (_.has(node, 'height')) {\n node._prevHeight = node.height;\n }\n });\n\n g.edges().forEach(function (e) {\n var edge = g.edge(e);\n if (!_.has(edge, 'label')) {\n edge.label = '';\n }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function (v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, '_prevWidth')) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, '_prevHeight')) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select('g.' + name);\n if (selection.empty()) {\n selection = root.append('g').attr('class', name);\n }\n return selection;\n}\n","import { p as parser, f as flowDb } from \"./flowDb-6a57c1b4.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, curveLinear, selectAll } from \"d3\";\nimport { k as getStylesFromArray, n as evaluate, c as getConfig, e as common, l as log, o as interpolateToCurve, p as setupGraphViewbox } from \"./mermaid-b0ad2de1.js\";\nimport { render } from \"dagre-d3-es\";\nimport { applyStyle } from \"dagre-d3-es/src/dagre-js/util.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport { intersectPolygon } from \"dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js\";\nimport { intersectRect } from \"dagre-d3-es/src/dagre-js/intersect/intersect-rect.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-5f89df53.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./index-a92ac404.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-49ac43a2.js\";\nimport \"./createText-3df630b5.js\";\nimport \"mdast-util-from-markdown\";\nimport \"./svgDraw-0fcc813d.js\";\nfunction question(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const s = (w + h) * 0.9;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, s, s, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction hexagon(parent, bbox, node) {\n const f = 4;\n const h = bbox.height;\n const m = h / f;\n const w = bbox.width + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_left_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_right(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_left(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction inv_trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_right_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction stadium(parent, bbox, node) {\n const h = bbox.height;\n const w = bbox.width + h / 4;\n const shapeSvg = parent.insert(\"rect\", \":first-child\").attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n}\nfunction subroutine(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction cylinder(parent, bbox, node) {\n const w = bbox.width;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const shapeSvg = parent.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n node.intersect = function(point) {\n const pos = intersectRect(node, point);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\nfunction addToRender(render2) {\n render2.shapes().question = question;\n render2.shapes().hexagon = hexagon;\n render2.shapes().stadium = stadium;\n render2.shapes().subroutine = subroutine;\n render2.shapes().cylinder = cylinder;\n render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;\n render2.shapes().lean_right = lean_right;\n render2.shapes().lean_left = lean_left;\n render2.shapes().trapezoid = trapezoid;\n render2.shapes().inv_trapezoid = inv_trapezoid;\n render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;\n}\nfunction addToRenderV2(addShape) {\n addShape({ question });\n addShape({ hexagon });\n addShape({ stadium });\n addShape({ subroutine });\n addShape({ cylinder });\n addShape({ rect_left_inv_arrow });\n addShape({ lean_right });\n addShape({ lean_left });\n addShape({ trapezoid });\n addShape({ inv_trapezoid });\n addShape({ rect_right_inv_arrow });\n}\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nconst flowChartShapes = {\n addToRender,\n addToRenderV2\n};\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = function(vert, g, svgId, root, _doc, diagObj) {\n const svg = !root ? select(`[id=\"${svgId}\"]`) : root.select(`[id=\"${svgId}\"]`);\n const doc = !_doc ? document : _doc;\n const keys = Object.keys(vert);\n keys.forEach(function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n )\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n let radious = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radious = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n default:\n _shape = \"rect\";\n }\n log.warn(\"Adding node\", vertex.id, vertex.domId);\n g.setNode(diagObj.db.lookUpDomId(vertex.id), {\n labelType: \"svg\",\n labelStyle: styles.labelStyle,\n shape: _shape,\n label: vertexNode,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles.style,\n id: diagObj.db.lookUpDomId(vertex.id)\n });\n });\n};\nconst addEdges = function(edges, g, diagObj) {\n let cnt = 0;\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n cnt++;\n const linkId = \"L-\" + edge.start + \"-\" + edge.end;\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = {};\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n let style = \"\";\n let labelStyle = \"\";\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n break;\n case \"dotted\":\n style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n style = \" stroke-width: 3.5px;fill:none\";\n break;\n }\n }\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n edgeData.labelType = \"html\";\n edgeData.label = `${edge.text.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n )}`;\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n edgeData.id = linkId;\n edgeData.class = linkNameStart + \" \" + linkNameEnd;\n edgeData.minlen = edge.length || 1;\n g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);\n });\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n diagObj.db.clear();\n try {\n diagObj.parse(text);\n return diagObj.db.getClasses();\n } catch (e) {\n log.error(e);\n return {};\n }\n};\nconst draw = function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n diagObj.db.clear();\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n try {\n diagObj.parser.parse(text);\n } catch (err) {\n log.debug(\"Parsing failed\");\n }\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n diagObj.db.addVertex(subG.id, subG.title, \"group\", void 0, subG.classes);\n }\n const vert = diagObj.db.getVertices();\n log.warn(\"Get vertices\", vert);\n const edges = diagObj.db.getEdges();\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.warn(\n \"Setting subgraph\",\n subG.nodes[j],\n diagObj.db.lookUpDomId(subG.nodes[j]),\n diagObj.db.lookUpDomId(subG.id)\n );\n g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));\n }\n }\n addVertices(vert, g, id, root, doc, diagObj);\n addEdges(edges, g, diagObj);\n const render$1 = new render();\n flowChartShapes.addToRender(render$1);\n render$1.arrows().none = function normal(parent, id2, edge, type) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n const path = marker.append(\"path\").attr(\"d\", \"M 0 0 L 0 0 L 0 0 z\");\n applyStyle(path, edge[type + \"Style\"]);\n };\n render$1.arrows().normal = function normal(parent, id2) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n marker.append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowheadPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n };\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n render$1(element, g);\n element.selectAll(\"g.node\").attr(\"title\", function() {\n return diagObj.db.getTooltip(this.id);\n });\n diagObj.db.indexNodes(\"subGraph\" + i);\n for (i = 0; i < subGraphs.length; i++) {\n subG = subGraphs[i];\n if (subG.title !== \"undefined\") {\n const clusterRects = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"] rect'\n );\n const clusterEl = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"]'\n );\n const xPos = clusterRects[0].x.baseVal.value;\n const yPos = clusterRects[0].y.baseVal.value;\n const _width = clusterRects[0].width.baseVal.value;\n const cluster = select(clusterEl[0]);\n const te = cluster.select(\".label\");\n te.attr(\"transform\", `translate(${xPos + _width / 2}, ${yPos + 14})`);\n te.attr(\"id\", id + \"Text\");\n for (let j = 0; j < subG.classes.length; j++) {\n clusterEl[0].classList.add(subG.classes[j]);\n }\n }\n }\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = root.select(\"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(key) + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRenderer = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n flowRenderer.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-1\");\n }\n};\nexport {\n diagram\n};\n"],"names":["responseText","response","text","input","init","parser","type","svg","arrows","normal","vee","undirected","setArrows","value","parent","id","edge","marker","path","util.applyStyle","addSVGLabel","root","node","domNode","addTextLabel","lines","processEscapeSequences","i","newText","escaped","ch","addLabel","location","label","labelSvg","addHtmlLabel","labelBBox","y","createClusters","selection","g","clusters","v","util.isSubgraph","svgClusters","util.applyTransition","enterSelection","thisGroup","d3.select","labelGroup","c","domCluster","setCreateClusters","createEdgeLabels","svgEdgeLabels","e","util.edgeToId","bbox","_.has","exitSelection","setCreateEdgeLabels","intersectNode","point","createEdgePaths","previousPaths","newPaths","enter","exit","svgPaths","domEdge","util.applyClass","_.uniqueId","d3\n .select","makeFragmentRef","calcPoints","arrowhead","setCreateEdgePaths","url","fragmentId","baseUrl","tail","head","points","createLine","line","d3.line","d3.svg","d","getCoords","elem","matrix","svgPathsEnter","sourceElem","_.range","svgPathExit","createNodes","shapes","simpleNodes","svgNodes","labelDom","shape","_.pick","shapeSvg","shapeBBox","setCreateNodes","positionClusters","created","translate","util\n .applyTransition","positionEdgeLabels","positionNodes","intersectEllipse","rx","ry","cx","cy","px","py","det","dx","dy","intersectCircle","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","x","sameSign","intersectPolygon","polyPoints","x1","y1","intersections","minX","minY","entry","left","top","intersect","q","pdx","pdy","distp","qdx","qdy","distq","intersectRect","w","h","sx","sy","rect","ellipse","circle","diamond","setShapes","r","p","render","fn","preProcessGraph","outputGroup","createOrSelectGroup","clustersGroup","edgePathsGroup","edgeLabels","nodes","layout","postProcessGraph","NODE_DEFAULT_ATTRS","EDGE_DEFAULT_ATTRS","d3.curveLinear","_.defaults","_.each","k","name","question","insertPolygonShape","hexagon","m","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","stadium","subroutine","cylinder","pos","addToRender","render2","addToRenderV2","addShape","flowChartShapes","conf","setConf","cnf","keys","key","addVertices","vert","svgId","_doc","diagObj","select","doc","vertex","classStr","styles","getStylesFromArray","vertexText","vertexNode","evaluate","getConfig","s","svgLabel","rows","common","row","tspan","radious","_shape","log","addEdges","edges","cnt","defaultStyle","defaultLabelStyle","defaultStyles","linkId","linkNameStart","linkNameEnd","edgeData","style","labelStyle","interpolateToCurve","curveLinear","getClasses","draw","_version","securityLevel","conf2","sandboxElement","dir","nodeSpacing","rankSpacing","graphlib.Graph","subG","subGraphs","i2","selectAll","j","render$1","id2","applyStyle","element","clusterRects","clusterEl","xPos","yPos","_width","te","labels","dim","setupGraphViewbox","link","linkNode","flowRenderer","diagram","flowDb","flowRendererV2","flowStyles"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js b/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js deleted file mode 100644 index 23f9cf0..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js +++ /dev/null @@ -1,2 +0,0 @@ -import{p as e,f as o}from"./flowDb-6a57c1b4-o7QdmK-d.js";import{f as t,g as a}from"./styles-5f89df53-Cnw1EiWb.js";import{a8 as i}from"./index-jpNTxDe4.js";import"./layout-ewywu0M6.js";import"./index-a92ac404-gZDUZJdp.js";import"./edges-49ac43a2-VNwnN65b.js";import"./createText-3df630b5-oLWc-GwH.js";import"./svgDraw-0fcc813d-8P1J7hc8.js";import"./line-reZX-DPl.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";import"./selectAll-ksDY_7eo.js";import"./index-2K3MavtT.js";const M={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{M as diagram}; -//# sourceMappingURL=flowDiagram-v2-476db779-kB7FwdKI.js.map diff --git a/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js.map b/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js.map deleted file mode 100644 index 74030bb..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowDiagram-v2-476db779-kB7FwdKI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"flowDiagram-v2-476db779-kB7FwdKI.js","sources":["../../../node_modules/mermaid/dist/flowDiagram-v2-476db779.js"],"sourcesContent":["import { p as parser, f as flowDb } from \"./flowDb-6a57c1b4.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-5f89df53.js\";\nimport { q as setConfig } from \"./mermaid-b0ad2de1.js\";\nimport \"d3\";\nimport \"dagre-d3-es/src/graphlib/index.js\";\nimport \"./index-a92ac404.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-49ac43a2.js\";\nimport \"./createText-3df630b5.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"./svgDraw-0fcc813d.js\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport \"khroma\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });\n flowRendererV2.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-2\");\n }\n};\nexport {\n diagram\n};\n"],"names":["diagram","parser","flowDb","flowRendererV2","flowStyles","cnf","setConfig"],"mappings":"ieAqBK,MAACA,EAAU,CAChB,OAAEC,EACA,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAOC,GAAQ,CACRA,EAAI,YACPA,EAAI,UAAY,IAElBA,EAAI,UAAU,oBAAsBA,EAAI,oBACxCC,EAAU,CAAE,UAAW,CAAE,oBAAqBD,EAAI,mBAAqB,CAAA,CAAE,EACzEF,EAAe,QAAQE,EAAI,SAAS,EACpCH,EAAO,MAAK,EACZA,EAAO,OAAO,OAAO,CACtB,CACH","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js b/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js deleted file mode 100644 index 41e4ca7..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js +++ /dev/null @@ -1,140 +0,0 @@ -import{d as bMe,p as wMe}from"./flowDb-6a57c1b4-o7QdmK-d.js";import{l as K1,h as lI,c as OH,t as gMe,p as V1n,r as X1n,o as IH,j as pMe}from"./index-jpNTxDe4.js";import{i as vMe,a as mMe,l as kMe,b as yMe}from"./edges-49ac43a2-VNwnN65b.js";import{h as Hee,g as jMe}from"./index-2K3MavtT.js";import{c as PH}from"./_commonjs-dynamic-modules-h-SxKiO4.js";import{l as EMe}from"./line-reZX-DPl.js";import"./createText-3df630b5-oLWc-GwH.js";import"./svgDraw-0fcc813d-8P1J7hc8.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";var Uee={exports:{}};(function(Ae,It){(function(ut){Ae.exports=ut()})(function(){return function(){function ut(dt,Bt,Ai){function j(Ot,qt){if(!Bt[Ot]){if(!dt[Ot]){var Ge=typeof PH=="function"&&PH;if(!qt&&Ge)return Ge(Ot,!0);if(Ht)return Ht(Ot,!0);var Ki=new Error("Cannot find module '"+Ot+"'");throw Ki.code="MODULE_NOT_FOUND",Ki}var Si=Bt[Ot]={exports:{}};dt[Ot][0].call(Si.exports,function(Mn){var Lc=dt[Ot][1][Mn];return j(Lc||Mn)},Si,Si.exports,ut,dt,Bt,Ai)}return Bt[Ot].exports}for(var Ht=typeof PH=="function"&&PH,ou=0;ou0&&arguments[0]!==void 0?arguments[0]:{},Ki=Ge.defaultLayoutOptions,Si=Ki===void 0?{}:Ki,Mn=Ge.algorithms,Lc=Mn===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:Mn,Nc=Ge.workerFactory,ps=Ge.workerUrl;if(j(this,Ot),this.defaultLayoutOptions=Si,this.initialized=!1,typeof ps>"u"&&typeof Nc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Rr=Nc;typeof ps<"u"&&typeof Nc>"u"&&(Rr=function(q1){return new Worker(q1)});var Ch=Rr(ps);if(typeof Ch.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new ou(Ch),this.worker.postMessage({cmd:"register",algorithms:Lc}).then(function(H1){return qt.initialized=!0}).catch(console.err)}return Ai(Ot,[{key:"layout",value:function(Ge){var Ki=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Si=Ki.layoutOptions,Mn=Si===void 0?this.defaultLayoutOptions:Si,Lc=Ki.logging,Nc=Lc===void 0?!1:Lc,ps=Ki.measureExecutionTime,Rr=ps===void 0?!1:ps;return Ge?this.worker.postMessage({cmd:"layout",graph:Ge,layoutOptions:Mn,options:{logging:Nc,measureExecutionTime:Rr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),Ot}();Bt.default=Ht;var ou=function(){function Ot(qt){var Ge=this;if(j(this,Ot),qt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=qt,this.worker.onmessage=function(Ki){setTimeout(function(){Ge.receive(Ge,Ki)},0)}}return Ai(Ot,[{key:"postMessage",value:function(Ge){var Ki=this.id||0;this.id=Ki+1,Ge.id=Ki;var Si=this;return new Promise(function(Mn,Lc){Si.resolvers[Ki]=function(Nc,ps){Nc?(Si.convertGwtStyleError(Nc),Lc(Nc)):Mn(ps)},Si.worker.postMessage(Ge)})}},{key:"receive",value:function(Ge,Ki){var Si=Ki.data,Mn=Ge.resolvers[Si.id];Mn&&(delete Ge.resolvers[Si.id],Si.error?Mn(Si.error):Mn(null,Si.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(Ge){if(Ge){var Ki=Ge.__java$exception;Ki&&(Ki.cause&&Ki.cause.backingJsObject&&(Ge.cause=Ki.cause.backingJsObject,this.convertGwtStyleError(Ge.cause)),delete Ge.__java$exception)}}}]),Ot}()},{}],2:[function(ut,dt,Bt){(function(Ai){(function(){var j;typeof window<"u"?j=window:typeof Ai<"u"?j=Ai:typeof self<"u"&&(j=self);var Ht;function ou(){}function Ot(){}function qt(){}function Ge(){}function Ki(){}function Si(){}function Mn(){}function Lc(){}function Nc(){}function ps(){}function Rr(){}function Ch(){}function H1(){}function q1(){}function ww(){}function Np(){}function G1(){}function Th(){}function Q1n(){}function J1n(){}function zy(){}function Y1n(){}function Z1n(){}function nln(){}function eln(){}function Xg(){}function N(){}function tln(){}function aI(){}function iln(){}function rln(){}function cln(){}function uln(){}function DH(){}function sln(){}function oln(){}function fln(){}function z1(){}function U1(){}function dI(){}function hln(){}function lln(){}function aln(){}function $H(){}function dln(){}function bln(){}function Vg(){}function Qg(){}function wln(){}function gln(){}function pln(){}function vln(){}function FH(){}function W1(){}function Jg(){}function Yg(){}function mln(){}function Vee(){}function bI(){}function kln(){}function yln(){}function jln(){}function Eln(){}function Cln(){}function Tln(){}function Mln(){}function Aln(){}function Sln(){}function Pln(){}function Iln(){}function Oln(){}function Dln(){}function $ln(){}function Fln(){}function xln(){}function Lln(){}function Nln(){}function Bln(){}function Rln(){}function _ln(){}function Kln(){}function Hln(){}function qln(){}function Gln(){}function zln(){}function Uln(){}function Wln(){}function Xln(){}function Vln(){}function Qln(){}function Jln(){}function Yln(){}function xH(){}function Zln(){}function nan(){}function ean(){}function tan(){}function wI(){}function gI(){}function Uy(){}function ian(){}function ran(){}function pI(){}function can(){}function uan(){}function san(){}function Wy(){}function oan(){}function fan(){}function han(){}function lan(){}function aan(){}function dan(){}function ban(){}function wan(){}function gan(){}function LH(){}function pan(){}function van(){}function man(){}function kan(){}function yan(){}function NH(){}function jan(){}function Ean(){}function Can(){}function Tan(){}function Man(){}function Aan(){}function San(){}function Pan(){}function Ian(){}function Oan(){}function Dan(){}function $an(){}function Fan(){}function xan(){}function vI(){}function Lan(){}function Nan(){}function Ban(){}function Ran(){}function _an(){}function BH(){}function Kan(){}function Han(){}function qan(){}function Gan(){}function zan(){}function Uan(){}function Wan(){}function Xan(){}function Van(){}function Qan(){}function Jan(){}function Yan(){}function Zan(){}function ndn(){}function edn(){}function tdn(){}function idn(){}function rdn(){}function cdn(){}function udn(){}function sdn(){}function odn(){}function fdn(){}function hdn(){}function ldn(){}function adn(){}function ddn(){}function bdn(){}function wdn(){}function gdn(){}function pdn(){}function vdn(){}function mdn(){}function kdn(){}function ydn(){}function jdn(){}function Edn(){}function Cdn(){}function Tdn(){}function Mdn(){}function Adn(){}function Sdn(){}function Pdn(){}function Idn(){}function Odn(){}function Ddn(){}function $dn(){}function Fdn(){}function xdn(){}function Ldn(){}function Ndn(){}function Bdn(){}function Rdn(){}function _dn(){}function Kdn(){}function Hdn(){}function qdn(){}function Gdn(){}function zdn(){}function Udn(){}function Wdn(){}function Xdn(){}function Vdn(){}function Qdn(){}function Jdn(){}function Ydn(){}function Zdn(){}function n0n(){}function e0n(){}function t0n(){}function i0n(){}function r0n(){}function c0n(){}function u0n(){}function s0n(){}function o0n(){}function f0n(){}function h0n(){}function l0n(){}function a0n(){}function d0n(){}function b0n(){}function w0n(){}function g0n(){}function p0n(){}function v0n(){}function m0n(){}function k0n(){}function y0n(){}function j0n(){}function E0n(){}function C0n(){}function T0n(){}function M0n(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function D0n(){}function RH(){}function $0n(){}function F0n(){}function x0n(){}function L0n(){}function N0n(){}function B0n(){}function R0n(){}function _0n(){}function K0n(){}function H0n(){}function q0n(){}function G0n(){}function z0n(){}function U0n(){}function W0n(){}function X0n(){}function V0n(){}function Q0n(){}function J0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function sbn(){}function obn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function vbn(){}function mbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Tbn(){}function Mbn(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function Obn(){}function Dbn(){}function $bn(){}function Fbn(){}function xbn(){}function Lbn(){}function Nbn(){}function Bbn(){}function Rbn(){}function _bn(){}function Kbn(){}function Hbn(){}function qbn(){}function Gbn(){}function zbn(){}function _H(){}function Ubn(){}function Wbn(){}function Xbn(){}function Vbn(){}function Qbn(){}function Jbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function uwn(){}function swn(){}function own(){}function fwn(){}function hwn(){}function lwn(){}function KH(){}function awn(){}function dwn(){}function bwn(){}function wwn(){}function gwn(){}function pwn(){}function HH(){}function qH(){}function vwn(){}function GH(){}function zH(){}function mwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Twn(){}function Mwn(){}function Awn(){}function UH(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function $wn(){}function Fwn(){}function xwn(){}function Lwn(){}function Nwn(){}function Bwn(){}function Rwn(){}function _wn(){}function Kwn(){}function Hwn(){}function qwn(){}function Gwn(){}function zwn(){}function Uwn(){}function Wwn(){}function Xwn(){}function Vwn(){}function Qwn(){}function Jwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function sgn(){}function ogn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function vgn(){}function mgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Tgn(){}function Mgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function $gn(){}function Fgn(){}function xgn(){}function Lgn(){}function Ngn(){}function Bgn(){}function Rgn(){}function _gn(){}function Kgn(){}function mI(){}function kI(){}function yI(){}function Hgn(){}function qgn(){}function Ggn(){}function zgn(){}function Ugn(){}function WH(){}function Wgn(){}function Xgn(){}function Qee(){}function Vgn(){}function Qgn(){}function Jgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function Zl(){}function t2n(){}function Zg(){}function XH(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function s2n(){}function o2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function v2n(){}function m2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function dn(){}function C2n(){}function T2n(){}function M2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function $2n(){}function jI(){}function F2n(){}function x2n(){}function L2n(){}function N2n(){}function B2n(){}function VH(){}function Xy(){}function Vy(){}function R2n(){}function QH(){}function Qy(){}function _2n(){}function K2n(){}function H2n(){}function q2n(){}function G2n(){}function z2n(){}function Jy(){}function U2n(){}function W2n(){}function X2n(){}function Yy(){}function V2n(){}function JH(){}function Q2n(){}function EI(){}function YH(){}function J2n(){}function Y2n(){}function Z2n(){}function npn(){}function Jee(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function spn(){}function opn(){}function fpn(){}function hpn(){}function Bp(){}function CI(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function vpn(){}function mpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Tpn(){}function Mpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function $pn(){}function Fpn(){}function xpn(){}function Lpn(){}function Npn(){}function Bpn(){}function Rpn(){}function _pn(){}function Kpn(){}function Hpn(){}function qpn(){}function Gpn(){}function zpn(){}function Upn(){}function Wpn(){}function Xpn(){}function Vpn(){}function Qpn(){}function Jpn(){}function Ypn(){}function Zpn(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function s3n(){}function o3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function v3n(){}function m3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function T3n(){}function M3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function $3n(){}function F3n(){}function x3n(){}function L3n(){}function N3n(){}function B3n(){}function R3n(){}function _3n(){}function K3n(){}function H3n(){}function q3n(){}function G3n(){}function z3n(){}function U3n(){}function W3n(){}function X3n(){}function V3n(){}function Q3n(){}function J3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function ZH(){}function r4n(){}function c4n(){}function TI(){Rv()}function u4n(){pF()}function s4n(){a6()}function o4n(){WT()}function f4n(){YJ()}function h4n(){Go()}function l4n(){fJ()}function a4n(){C7()}function d4n(){q9()}function b4n(){H9()}function w4n(){w8()}function g4n(){v7n()}function p4n(){x2()}function v4n(){Sj()}function m4n(){PSn()}function k4n(){HIn()}function y4n(){sPn()}function j4n(){CMn()}function E4n(){V3()}function C4n(){yl()}function T4n(){qIn()}function M4n(){pAn()}function A4n(){zZ()}function S4n(){IFn()}function P4n(){TMn()}function I4n(){nn()}function O4n(){EMn()}function D4n(){GIn()}function $4n(){WOn()}function F4n(){AMn()}function x4n(){aPn()}function L4n(){m7n()}function N4n(){$Y()}function B4n(){gb()}function R4n(){pOn()}function _4n(){S7()}function K4n(){Ux()}function H4n(){ZF()}function q4n(){Zd()}function G4n(){PV()}function z4n(){MMn()}function U4n(){BBn()}function W4n(){IY()}function X4n(){Bx()}function V4n(){DC()}function Q4n(){nM()}function nq(){Xe()}function J4n(){wT()}function Y4n(){NQ()}function eq(){mM()}function Fo(){dEn()}function tq(){eF()}function Z4n(){pZ()}function iq(n){_n(n)}function nvn(n){this.a=n}function Zy(n){this.a=n}function evn(n){this.a=n}function tvn(n){this.a=n}function ivn(n){this.a=n}function rvn(n){this.a=n}function cvn(n){this.a=n}function uvn(n){this.a=n}function rq(n){this.a=n}function cq(n){this.a=n}function svn(n){this.a=n}function MI(n){this.a=n}function ovn(n){this.a=n}function AI(n){this.a=n}function fvn(n){this.a=n}function SI(n){this.a=n}function hvn(n){this.a=n}function PI(n){this.a=n}function lvn(n){this.a=n}function avn(n){this.a=n}function dvn(n){this.a=n}function uq(n){this.b=n}function bvn(n){this.c=n}function wvn(n){this.a=n}function gvn(n){this.a=n}function pvn(n){this.a=n}function vvn(n){this.a=n}function mvn(n){this.a=n}function kvn(n){this.a=n}function yvn(n){this.a=n}function jvn(n){this.a=n}function Evn(n){this.a=n}function Cvn(n){this.a=n}function Tvn(n){this.a=n}function Mvn(n){this.a=n}function Avn(n){this.a=n}function sq(n){this.a=n}function oq(n){this.a=n}function nj(n){this.a=n}function M9(n){this.a=n}function na(){this.a=[]}function Svn(n,e){n.a=e}function Yee(n,e){n.a=e}function Zee(n,e){n.b=e}function nte(n,e){n.b=e}function ete(n,e){n.b=e}function fq(n,e){n.j=e}function tte(n,e){n.g=e}function ite(n,e){n.i=e}function rte(n,e){n.c=e}function cte(n,e){n.d=e}function ute(n,e){n.d=e}function ste(n,e){n.c=e}function ea(n,e){n.k=e}function ote(n,e){n.c=e}function hq(n,e){n.c=e}function lq(n,e){n.a=e}function fte(n,e){n.a=e}function hte(n,e){n.f=e}function lte(n,e){n.a=e}function ate(n,e){n.b=e}function II(n,e){n.d=e}function ej(n,e){n.i=e}function aq(n,e){n.o=e}function dte(n,e){n.r=e}function bte(n,e){n.a=e}function wte(n,e){n.b=e}function Pvn(n,e){n.e=e}function gte(n,e){n.f=e}function dq(n,e){n.g=e}function pte(n,e){n.e=e}function vte(n,e){n.f=e}function mte(n,e){n.f=e}function kte(n,e){n.n=e}function yte(n,e){n.a=e}function jte(n,e){n.a=e}function Ete(n,e){n.c=e}function Cte(n,e){n.c=e}function Tte(n,e){n.d=e}function Mte(n,e){n.e=e}function Ate(n,e){n.g=e}function Ste(n,e){n.a=e}function Pte(n,e){n.c=e}function Ite(n,e){n.d=e}function Ote(n,e){n.e=e}function Dte(n,e){n.f=e}function $te(n,e){n.j=e}function Fte(n,e){n.a=e}function xte(n,e){n.b=e}function Lte(n,e){n.a=e}function Ivn(n){n.b=n.a}function Ovn(n){n.c=n.d.d}function $v(n){this.d=n}function ta(n){this.a=n}function Rp(n){this.a=n}function bq(n){this.a=n}function Mh(n){this.a=n}function A9(n){this.a=n}function Dvn(n){this.a=n}function wq(n){this.a=n}function S9(n){this.a=n}function gq(n){this.a=n}function pq(n){this.a=n}function vq(n){this.a=n}function L0(n){this.a=n}function P9(n){this.a=n}function I9(n){this.a=n}function mq(n){this.b=n}function _p(n){this.b=n}function Kp(n){this.b=n}function OI(n){this.a=n}function $vn(n){this.a=n}function kq(n){this.a=n}function DI(n){this.c=n}function E(n){this.c=n}function Fvn(n){this.c=n}function yq(n){this.a=n}function jq(n){this.a=n}function Eq(n){this.a=n}function Cq(n){this.a=n}function st(n){this.a=n}function xvn(n){this.a=n}function Tq(n){this.a=n}function Mq(n){this.a=n}function Lvn(n){this.a=n}function Nvn(n){this.a=n}function Fv(n){this.a=n}function Bvn(n){this.a=n}function Rvn(n){this.a=n}function _vn(n){this.a=n}function Kvn(n){this.a=n}function Hvn(n){this.a=n}function qvn(n){this.a=n}function Gvn(n){this.a=n}function zvn(n){this.a=n}function Uvn(n){this.a=n}function Wvn(n){this.a=n}function Xvn(n){this.a=n}function Vvn(n){this.a=n}function Qvn(n){this.a=n}function Jvn(n){this.a=n}function Yvn(n){this.a=n}function Zvn(n){this.a=n}function n5n(n){this.a=n}function O9(n){this.a=n}function e5n(n){this.a=n}function t5n(n){this.a=n}function tj(n){this.a=n}function i5n(n){this.a=n}function r5n(n){this.a=n}function Hp(n){this.a=n}function Aq(n){this.a=n}function c5n(n){this.a=n}function u5n(n){this.a=n}function s5n(n){this.a=n}function o5n(n){this.a=n}function f5n(n){this.a=n}function Sq(n){this.a=n}function Pq(n){this.a=n}function Iq(n){this.a=n}function ij(n){this.a=n}function rj(n){this.e=n}function qp(n){this.a=n}function h5n(n){this.a=n}function n2(n){this.a=n}function Oq(n){this.a=n}function l5n(n){this.a=n}function a5n(n){this.a=n}function d5n(n){this.a=n}function b5n(n){this.a=n}function w5n(n){this.a=n}function g5n(n){this.a=n}function p5n(n){this.a=n}function v5n(n){this.a=n}function m5n(n){this.a=n}function k5n(n){this.a=n}function y5n(n){this.a=n}function Dq(n){this.a=n}function j5n(n){this.a=n}function E5n(n){this.a=n}function C5n(n){this.a=n}function T5n(n){this.a=n}function M5n(n){this.a=n}function A5n(n){this.a=n}function S5n(n){this.a=n}function P5n(n){this.a=n}function I5n(n){this.a=n}function O5n(n){this.a=n}function D5n(n){this.a=n}function $5n(n){this.a=n}function F5n(n){this.a=n}function x5n(n){this.a=n}function L5n(n){this.a=n}function N5n(n){this.a=n}function B5n(n){this.a=n}function R5n(n){this.a=n}function _5n(n){this.a=n}function K5n(n){this.a=n}function H5n(n){this.a=n}function q5n(n){this.a=n}function G5n(n){this.a=n}function z5n(n){this.a=n}function U5n(n){this.a=n}function W5n(n){this.a=n}function X5n(n){this.a=n}function V5n(n){this.a=n}function Q5n(n){this.a=n}function J5n(n){this.a=n}function Y5n(n){this.a=n}function Z5n(n){this.a=n}function n6n(n){this.a=n}function e6n(n){this.a=n}function t6n(n){this.a=n}function i6n(n){this.a=n}function r6n(n){this.a=n}function c6n(n){this.c=n}function u6n(n){this.b=n}function s6n(n){this.a=n}function o6n(n){this.a=n}function f6n(n){this.a=n}function h6n(n){this.a=n}function l6n(n){this.a=n}function a6n(n){this.a=n}function d6n(n){this.a=n}function b6n(n){this.a=n}function w6n(n){this.a=n}function g6n(n){this.a=n}function p6n(n){this.a=n}function v6n(n){this.a=n}function m6n(n){this.a=n}function k6n(n){this.a=n}function y6n(n){this.a=n}function j6n(n){this.a=n}function E6n(n){this.a=n}function C6n(n){this.a=n}function T6n(n){this.a=n}function M6n(n){this.a=n}function A6n(n){this.a=n}function S6n(n){this.a=n}function P6n(n){this.a=n}function I6n(n){this.a=n}function X1(n){this.a=n}function e2(n){this.a=n}function O6n(n){this.a=n}function D6n(n){this.a=n}function $6n(n){this.a=n}function F6n(n){this.a=n}function x6n(n){this.a=n}function L6n(n){this.a=n}function N6n(n){this.a=n}function B6n(n){this.a=n}function R6n(n){this.a=n}function _6n(n){this.a=n}function K6n(n){this.a=n}function H6n(n){this.a=n}function q6n(n){this.a=n}function G6n(n){this.a=n}function z6n(n){this.a=n}function U6n(n){this.a=n}function cj(n){this.a=n}function W6n(n){this.a=n}function X6n(n){this.a=n}function V6n(n){this.a=n}function Q6n(n){this.a=n}function J6n(n){this.a=n}function Y6n(n){this.a=n}function Z6n(n){this.a=n}function nmn(n){this.a=n}function emn(n){this.a=n}function tmn(n){this.a=n}function imn(n){this.a=n}function rmn(n){this.a=n}function cmn(n){this.a=n}function umn(n){this.a=n}function smn(n){this.a=n}function omn(n){this.a=n}function fmn(n){this.a=n}function hmn(n){this.a=n}function lmn(n){this.a=n}function amn(n){this.a=n}function dmn(n){this.a=n}function bmn(n){this.a=n}function wmn(n){this.a=n}function gmn(n){this.a=n}function pmn(n){this.a=n}function vmn(n){this.a=n}function mmn(n){this.a=n}function kmn(n){this.a=n}function $q(n){this.a=n}function kt(n){this.b=n}function ymn(n){this.f=n}function Fq(n){this.a=n}function jmn(n){this.a=n}function Emn(n){this.a=n}function Cmn(n){this.a=n}function Tmn(n){this.a=n}function Mmn(n){this.a=n}function Amn(n){this.a=n}function Smn(n){this.a=n}function Pmn(n){this.a=n}function D9(n){this.a=n}function Imn(n){this.a=n}function Omn(n){this.b=n}function xq(n){this.c=n}function uj(n){this.e=n}function Dmn(n){this.a=n}function sj(n){this.a=n}function oj(n){this.a=n}function $I(n){this.a=n}function $mn(n){this.a=n}function Fmn(n){this.d=n}function Lq(n){this.a=n}function Nq(n){this.a=n}function cd(n){this.e=n}function Nte(){this.a=0}function gw(){dyn(this)}function X(){RO(this)}function we(){Eu(this)}function FI(){pTn(this)}function xmn(){}function ud(){this.c=p1n}function Bte(n,e){e.Wb(n)}function Lmn(n,e){n.b+=e}function Nmn(n){n.b=new JI}function T(n){return n.e}function Rte(n){return n.a}function _te(n){return n.a}function Kte(n){return n.a}function Hte(n){return n.a}function qte(n){return n.a}function Gte(){return null}function zte(){return null}function Ute(){EG(),iTe()}function Wte(n){n.b.tf(n.e)}function xv(n,e){n.b=e-n.b}function Lv(n,e){n.a=e-n.a}function Bmn(n,e){e.ad(n.a)}function Xte(n,e){ui(e,n)}function Vte(n,e,t){n.Od(t,e)}function $9(n,e){n.e=e,e.b=n}function Bq(n){Df(),this.a=n}function Rmn(n){Df(),this.a=n}function _mn(n){Df(),this.a=n}function Rq(n){nb(),this.a=n}function Kmn(n){k3(),aR.be(n)}function ia(){Qyn.call(this)}function _q(){Qyn.call(this)}function Kq(){ia.call(this)}function xI(){ia.call(this)}function Hmn(){ia.call(this)}function F9(){ia.call(this)}function fu(){ia.call(this)}function Nv(){ia.call(this)}function ye(){ia.call(this)}function vs(){ia.call(this)}function qmn(){ia.call(this)}function ic(){ia.call(this)}function Gmn(){ia.call(this)}function zmn(){this.a=this}function fj(){this.Bb|=256}function Umn(){this.b=new Xkn}function Hq(){Hq=N,new we}function qq(){Kq.call(this)}function Wmn(n,e){n.length=e}function hj(n,e){W(n.a,e)}function Qte(n,e){nY(n.c,e)}function Jte(n,e){ri(n.b,e)}function Yte(n,e){KT(n.a,e)}function Zte(n,e){MF(n.a,e)}function Gp(n,e){et(n.e,e)}function t2(n){iM(n.c,n.b)}function nie(n,e){n.kc().Nb(e)}function Gq(n){this.a=Yge(n)}function fi(){this.a=new we}function Xmn(){this.a=new we}function lj(){this.a=new X}function LI(){this.a=new X}function zq(){this.a=new X}function Ns(){this.a=new Oln}function ra(){this.a=new TSn}function Uq(){this.a=new LH}function Wq(){this.a=new h7n}function Vmn(){this.a=new YMn}function Xq(){this.a=new bMn}function Vq(){this.a=new Bjn}function Qmn(){this.a=new X}function Qq(){this.a=new X}function Jmn(){this.a=new X}function Ymn(){this.a=new X}function Zmn(){this.d=new X}function n9n(){this.a=new fi}function e9n(){this.a=new we}function t9n(){this.b=new we}function i9n(){this.b=new X}function Jq(){this.e=new X}function r9n(){this.d=new X}function c9n(){this.a=new C4n}function u9n(){X.call(this)}function Yq(){lj.call(this)}function s9n(){kE.call(this)}function o9n(){Qq.call(this)}function NI(){Bv.call(this)}function Bv(){xmn.call(this)}function i2(){xmn.call(this)}function Zq(){i2.call(this)}function f9n(){zTn.call(this)}function h9n(){zTn.call(this)}function l9n(){uG.call(this)}function a9n(){uG.call(this)}function d9n(){uG.call(this)}function b9n(){sG.call(this)}function hu(){Ct.call(this)}function nG(){B2n.call(this)}function eG(){B2n.call(this)}function w9n(){O9n.call(this)}function g9n(){O9n.call(this)}function p9n(){we.call(this)}function v9n(){we.call(this)}function m9n(){we.call(this)}function k9n(){fi.call(this)}function BI(){RIn.call(this)}function y9n(){fj.call(this)}function RI(){Oz.call(this)}function _I(){Oz.call(this)}function tG(){we.call(this)}function KI(){we.call(this)}function j9n(){we.call(this)}function iG(){Yy.call(this)}function E9n(){Yy.call(this)}function C9n(){iG.call(this)}function T9n(){ZH.call(this)}function M9n(n){hIn.call(this,n)}function A9n(n){hIn.call(this,n)}function rG(n){rq.call(this,n)}function cG(n){n7n.call(this,n)}function eie(n){cG.call(this,n)}function tie(n){n7n.call(this,n)}function zp(){this.a=new Ct}function uG(){this.a=new fi}function sG(){this.a=new we}function S9n(){this.a=new X}function P9n(){this.j=new X}function oG(){this.a=new Rgn}function I9n(){this.a=new T8n}function O9n(){this.a=new X2n}function HI(){HI=N,uR=new V9n}function qI(){qI=N,cR=new X9n}function Rv(){Rv=N,rR=new Ot}function aj(){aj=N,fR=new Xyn}function iie(n){cG.call(this,n)}function rie(n){cG.call(this,n)}function D9n(n){m$.call(this,n)}function $9n(n){m$.call(this,n)}function F9n(n){uEn.call(this,n)}function GI(n){C5e.call(this,n)}function sd(n){_0.call(this,n)}function _v(n){Cj.call(this,n)}function fG(n){Cj.call(this,n)}function x9n(n){Cj.call(this,n)}function _r(n){kCn.call(this,n)}function L9n(n){_r.call(this,n)}function r2(){M9.call(this,{})}function dj(n){c3(),this.a=n}function Kv(n){n.b=null,n.c=0}function cie(n,e){n.e=e,NNn(n,e)}function uie(n,e){n.a=e,h6e(n)}function zI(n,e,t){n.a[e.g]=t}function sie(n,e,t){M4e(t,n,e)}function oie(n,e){$ue(e.i,n.n)}function N9n(n,e){Fwe(n).td(e)}function fie(n,e){return n*n/e}function B9n(n,e){return n.g-e.g}function hie(n){return new nj(n)}function lie(n){return new Z0(n)}function bj(n){_r.call(this,n)}function vr(n){_r.call(this,n)}function R9n(n){_r.call(this,n)}function UI(n){kCn.call(this,n)}function WI(n){AV(),this.a=n}function _9n(n){aEn(),this.a=n}function N0(n){ED(),this.f=n}function XI(n){ED(),this.f=n}function Up(n){_r.call(this,n)}function Hn(n){_r.call(this,n)}function Dr(n){_r.call(this,n)}function K9n(n){_r.call(this,n)}function c2(n){_r.call(this,n)}function on(n){return _n(n),n}function K(n){return _n(n),n}function x9(n){return _n(n),n}function hG(n){return _n(n),n}function aie(n){return _n(n),n}function Hv(n){return n.b==n.c}function B0(n){return!!n&&n.b}function die(n){return!!n&&n.k}function bie(n){return!!n&&n.j}function Ku(n){_n(n),this.a=n}function lG(n){return ja(n),n}function qv(n){EW(n,n.length)}function t1(n){_r.call(this,n)}function Af(n){_r.call(this,n)}function VI(n){_r.call(this,n)}function pw(n){_r.call(this,n)}function Gv(n){_r.call(this,n)}function Ee(n){_r.call(this,n)}function QI(n){Vz.call(this,n,0)}function JI(){iX.call(this,12,3)}function aG(){aG=N,din=new Q1n}function H9n(){H9n=N,ain=new ou}function wj(){wj=N,dm=new H1}function q9n(){q9n=N,vzn=new ww}function G9n(){throw T(new ye)}function dG(){throw T(new ye)}function z9n(){throw T(new ye)}function wie(){throw T(new ye)}function gie(){throw T(new ye)}function pie(){throw T(new ye)}function YI(){this.a=Ce(pe(Ji))}function u2(n){Df(),this.a=pe(n)}function U9n(n,e){n.Td(e),e.Sd(n)}function vie(n,e){n.a.ec().Mc(e)}function mie(n,e,t){n.c.lf(e,t)}function bG(n){vr.call(this,n)}function Sf(n){Hn.call(this,n)}function i1(){A9.call(this,"")}function zv(){A9.call(this,"")}function V1(){A9.call(this,"")}function R0(){A9.call(this,"")}function wG(n){vr.call(this,n)}function Wp(n){_p.call(this,n)}function ZI(n){lE.call(this,n)}function W9n(n){Wp.call(this,n)}function X9n(){AI.call(this,null)}function V9n(){AI.call(this,null)}function gj(){gj=N,k3()}function Q9n(){Q9n=N,Szn=Z4e()}function J9n(n){return n.a?n.b:0}function kie(n){return n.a?n.b:0}function yie(n,e){return n.a-e.a}function jie(n,e){return n.a-e.a}function Eie(n,e){return n.a-e.a}function pj(n,e){return WX(n,e)}function M(n,e){return pMn(n,e)}function Cie(n,e){return e in n.a}function Y9n(n,e){return n.f=e,n}function Tie(n,e){return n.b=e,n}function Z9n(n,e){return n.c=e,n}function Mie(n,e){return n.g=e,n}function gG(n,e){return n.a=e,n}function pG(n,e){return n.f=e,n}function Aie(n,e){return n.k=e,n}function vG(n,e){return n.a=e,n}function Sie(n,e){return n.e=e,n}function mG(n,e){return n.e=e,n}function Pie(n,e){return n.f=e,n}function Iie(n,e){n.b=!0,n.d=e}function Oie(n,e){n.b=new mr(e)}function Die(n,e,t){e.td(n.a[t])}function $ie(n,e,t){e.we(n.a[t])}function Fie(n,e){return n.b-e.b}function xie(n,e){return n.g-e.g}function Lie(n,e){return n.s-e.s}function Nie(n,e){return n?0:e-1}function n8n(n,e){return n?0:e-1}function Bie(n,e){return n?e-1:0}function Rie(n,e){return e.Yf(n)}function od(n,e){return n.b=e,n}function vj(n,e){return n.a=e,n}function fd(n,e){return n.c=e,n}function hd(n,e){return n.d=e,n}function ld(n,e){return n.e=e,n}function kG(n,e){return n.f=e,n}function Uv(n,e){return n.a=e,n}function Xp(n,e){return n.b=e,n}function Vp(n,e){return n.c=e,n}function gn(n,e){return n.c=e,n}function Dn(n,e){return n.b=e,n}function pn(n,e){return n.d=e,n}function vn(n,e){return n.e=e,n}function _ie(n,e){return n.f=e,n}function mn(n,e){return n.g=e,n}function kn(n,e){return n.a=e,n}function yn(n,e){return n.i=e,n}function jn(n,e){return n.j=e,n}function e8n(n,e){return n.k=e,n}function Kie(n,e){return n.j=e,n}function Hie(n,e){yl(),Hr(e,n)}function qie(n,e,t){Nfe(n.a,e,t)}function t8n(n){mTn.call(this,n)}function yG(n){mTn.call(this,n)}function mj(n){uD.call(this,n)}function i8n(n){u2e.call(this,n)}function Q1(n){Ld.call(this,n)}function r8n(n){XD.call(this,n)}function c8n(n){XD.call(this,n)}function u8n(){Mz.call(this,"")}function Li(){this.a=0,this.b=0}function s8n(){this.b=0,this.a=0}function o8n(n,e){n.b=0,hb(n,e)}function Gie(n,e){n.c=e,n.b=!0}function f8n(n,e){return n.c._b(e)}function xo(n){return n.e&&n.e()}function nO(n){return n?n.d:null}function h8n(n,e){return LDn(n.b,e)}function zie(n){return n?n.g:null}function Uie(n){return n?n.i:null}function J1(n){return Ph(n),n.o}function ad(){ad=N,Mne=h4e()}function l8n(){l8n=N,vi=jve()}function Qp(){Qp=N,g1n=a4e()}function a8n(){a8n=N,hee=l4e()}function jG(){jG=N,oc=s6e()}function EG(){EG=N,Wl=N3()}function d8n(){throw T(new ye)}function b8n(){throw T(new ye)}function w8n(){throw T(new ye)}function g8n(){throw T(new ye)}function p8n(){throw T(new ye)}function v8n(){throw T(new ye)}function kj(n){this.a=new s2(n)}function CG(n){d_n(),gTe(this,n)}function Y1(n){this.a=new AD(n)}function vw(n,e){for(;n.ye(e););}function TG(n,e){for(;n.sd(e););}function mw(n,e){return n.a+=e,n}function eO(n,e){return n.a+=e,n}function r1(n,e){return n.a+=e,n}function dd(n,e){return n.a+=e,n}function Wv(n){return fl(n),n.a}function yj(n){return n.b!=n.d.c}function m8n(n){return n.l|n.m<<22}function MG(n,e){return n.d[e.p]}function k8n(n,e){return Q8e(n,e)}function AG(n,e,t){n.splice(e,t)}function y8n(n){n.c?rBn(n):cBn(n)}function jj(n){this.a=0,this.b=n}function j8n(){this.a=new B7(Pon)}function E8n(){this.b=new B7(won)}function C8n(){this.b=new B7(OK)}function T8n(){this.b=new B7(OK)}function M8n(){throw T(new ye)}function A8n(){throw T(new ye)}function S8n(){throw T(new ye)}function P8n(){throw T(new ye)}function I8n(){throw T(new ye)}function O8n(){throw T(new ye)}function D8n(){throw T(new ye)}function $8n(){throw T(new ye)}function F8n(){throw T(new ye)}function x8n(){throw T(new ye)}function Wie(){throw T(new ic)}function Xie(){throw T(new ic)}function L9(n){this.a=new L8n(n)}function L8n(n){cbe(this,n,cve())}function N9(n){return!n||iTn(n)}function B9(n){return Tf[n]!=-1}function Vie(){_A!=0&&(_A=0),KA=-1}function N8n(){iR==null&&(iR=[])}function Qie(n,e){$x(R(n.a),e)}function Jie(n,e){$x(R(n.a),e)}function R9(n,e){Sw.call(this,n,e)}function Jp(n,e){R9.call(this,n,e)}function SG(n,e){this.b=n,this.c=e}function B8n(n,e){this.b=n,this.a=e}function R8n(n,e){this.a=n,this.b=e}function _8n(n,e){this.a=n,this.b=e}function K8n(n,e){this.a=n,this.b=e}function H8n(n,e){this.a=n,this.b=e}function q8n(n,e){this.a=n,this.b=e}function G8n(n,e){this.a=n,this.b=e}function z8n(n,e){this.a=n,this.b=e}function U8n(n,e){this.a=n,this.b=e}function W8n(n,e){this.b=n,this.a=e}function X8n(n,e){this.b=n,this.a=e}function V8n(n,e){this.b=n,this.a=e}function Q8n(n,e){this.b=n,this.a=e}function Oe(n,e){this.f=n,this.g=e}function Yp(n,e){this.e=n,this.d=e}function bd(n,e){this.g=n,this.i=e}function tO(n,e){this.a=n,this.b=e}function J8n(n,e){this.a=n,this.f=e}function Y8n(n,e){this.b=n,this.c=e}function Yie(n,e){this.a=n,this.b=e}function Z8n(n,e){this.a=n,this.b=e}function iO(n,e){this.a=n,this.b=e}function n7n(n){Bz(n.dc()),this.c=n}function Ej(n){this.b=u(pe(n),83)}function e7n(n){this.a=u(pe(n),83)}function _0(n){this.a=u(pe(n),15)}function t7n(n){this.a=u(pe(n),15)}function Cj(n){this.b=u(pe(n),47)}function Tj(){this.q=new j.Date}function Zf(){Zf=N,Sin=new tln}function Zp(){Zp=N,X4=new nln}function Xv(n){return n.f.c+n.g.c}function _9(n,e){return n.b.Hc(e)}function i7n(n,e){return n.b.Ic(e)}function r7n(n,e){return n.b.Qc(e)}function c7n(n,e){return n.b.Hc(e)}function u7n(n,e){return n.c.uc(e)}function Ah(n,e){return n.a._b(e)}function s7n(n,e){return tt(n.c,e)}function o7n(n,e){return zu(n.b,e)}function f7n(n,e){return n>e&&e0}function cO(n,e){return fc(n,e)<0}function n5(n,e){return n.a.get(e)}function lre(n,e){return e.split(n)}function S7n(n,e){return zu(n.e,e)}function LG(n){return _n(n),!1}function xj(n){xn.call(this,n,21)}function are(n,e){cMn.call(this,n,e)}function Lj(n,e){Oe.call(this,n,e)}function uO(n,e){Oe.call(this,n,e)}function NG(n){_D(),uEn.call(this,n)}function BG(n,e){fCn(n,n.length,e)}function z9(n,e){BCn(n,n.length,e)}function dre(n,e,t){e.ud(n.a.Ge(t))}function bre(n,e,t){e.we(n.a.Fe(t))}function wre(n,e,t){e.td(n.a.Kb(t))}function gre(n,e,t){n.Mb(t)&&e.td(t)}function e5(n,e,t){n.splice(e,0,t)}function pre(n,e){return au(n.e,e)}function Nj(n,e){this.d=n,this.e=e}function P7n(n,e){this.b=n,this.a=e}function I7n(n,e){this.b=n,this.a=e}function RG(n,e){this.b=n,this.a=e}function O7n(n,e){this.a=n,this.b=e}function D7n(n,e){this.a=n,this.b=e}function $7n(n,e){this.a=n,this.b=e}function F7n(n,e){this.a=n,this.b=e}function f2(n,e){this.a=n,this.b=e}function _G(n,e){this.b=n,this.a=e}function KG(n,e){this.b=n,this.a=e}function Bj(n,e){Oe.call(this,n,e)}function Rj(n,e){Oe.call(this,n,e)}function HG(n,e){Oe.call(this,n,e)}function qG(n,e){Oe.call(this,n,e)}function kw(n,e){Oe.call(this,n,e)}function sO(n,e){Oe.call(this,n,e)}function oO(n,e){Oe.call(this,n,e)}function fO(n,e){Oe.call(this,n,e)}function _j(n,e){Oe.call(this,n,e)}function GG(n,e){Oe.call(this,n,e)}function hO(n,e){Oe.call(this,n,e)}function U9(n,e){Oe.call(this,n,e)}function Kj(n,e){Oe.call(this,n,e)}function lO(n,e){Oe.call(this,n,e)}function t5(n,e){Oe.call(this,n,e)}function zG(n,e){Oe.call(this,n,e)}function zt(n,e){Oe.call(this,n,e)}function Hj(n,e){Oe.call(this,n,e)}function x7n(n,e){this.a=n,this.b=e}function L7n(n,e){this.a=n,this.b=e}function N7n(n,e){this.a=n,this.b=e}function B7n(n,e){this.a=n,this.b=e}function R7n(n,e){this.a=n,this.b=e}function _7n(n,e){this.a=n,this.b=e}function K7n(n,e){this.a=n,this.b=e}function H7n(n,e){this.a=n,this.b=e}function q7n(n,e){this.a=n,this.b=e}function UG(n,e){this.b=n,this.a=e}function G7n(n,e){this.b=n,this.a=e}function z7n(n,e){this.b=n,this.a=e}function U7n(n,e){this.b=n,this.a=e}function t3(n,e){this.c=n,this.d=e}function W7n(n,e){this.e=n,this.d=e}function X7n(n,e){this.a=n,this.b=e}function V7n(n,e){this.b=e,this.c=n}function qj(n,e){Oe.call(this,n,e)}function W9(n,e){Oe.call(this,n,e)}function aO(n,e){Oe.call(this,n,e)}function i5(n,e){Oe.call(this,n,e)}function WG(n,e){Oe.call(this,n,e)}function dO(n,e){Oe.call(this,n,e)}function bO(n,e){Oe.call(this,n,e)}function X9(n,e){Oe.call(this,n,e)}function XG(n,e){Oe.call(this,n,e)}function wO(n,e){Oe.call(this,n,e)}function r5(n,e){Oe.call(this,n,e)}function VG(n,e){Oe.call(this,n,e)}function c5(n,e){Oe.call(this,n,e)}function u5(n,e){Oe.call(this,n,e)}function H0(n,e){Oe.call(this,n,e)}function gO(n,e){Oe.call(this,n,e)}function pO(n,e){Oe.call(this,n,e)}function QG(n,e){Oe.call(this,n,e)}function s5(n,e){Oe.call(this,n,e)}function vO(n,e){Oe.call(this,n,e)}function Gj(n,e){Oe.call(this,n,e)}function V9(n,e){Oe.call(this,n,e)}function Q9(n,e){Oe.call(this,n,e)}function h2(n,e){Oe.call(this,n,e)}function mO(n,e){Oe.call(this,n,e)}function JG(n,e){Oe.call(this,n,e)}function kO(n,e){Oe.call(this,n,e)}function yO(n,e){Oe.call(this,n,e)}function YG(n,e){Oe.call(this,n,e)}function jO(n,e){Oe.call(this,n,e)}function EO(n,e){Oe.call(this,n,e)}function CO(n,e){Oe.call(this,n,e)}function TO(n,e){Oe.call(this,n,e)}function ZG(n,e){Oe.call(this,n,e)}function Q7n(n,e){this.b=n,this.a=e}function J7n(n,e){this.a=n,this.b=e}function Y7n(n,e){this.a=n,this.b=e}function Z7n(n,e){this.a=n,this.b=e}function nkn(n,e){this.a=n,this.b=e}function nz(n,e){Oe.call(this,n,e)}function ez(n,e){Oe.call(this,n,e)}function ekn(n,e){this.b=n,this.d=e}function tz(n,e){Oe.call(this,n,e)}function iz(n,e){Oe.call(this,n,e)}function tkn(n,e){this.a=n,this.b=e}function ikn(n,e){this.a=n,this.b=e}function zj(n,e){Oe.call(this,n,e)}function o5(n,e){Oe.call(this,n,e)}function rz(n,e){Oe.call(this,n,e)}function cz(n,e){Oe.call(this,n,e)}function uz(n,e){Oe.call(this,n,e)}function MO(n,e){Oe.call(this,n,e)}function sz(n,e){Oe.call(this,n,e)}function AO(n,e){Oe.call(this,n,e)}function Uj(n,e){Oe.call(this,n,e)}function SO(n,e){Oe.call(this,n,e)}function PO(n,e){Oe.call(this,n,e)}function J9(n,e){Oe.call(this,n,e)}function IO(n,e){Oe.call(this,n,e)}function oz(n,e){Oe.call(this,n,e)}function Y9(n,e){Oe.call(this,n,e)}function fz(n,e){Oe.call(this,n,e)}function vre(n,e){return au(n.c,e)}function mre(n,e){return au(e.b,n)}function kre(n,e){return-n.b.Je(e)}function hz(n,e){return au(n.g,e)}function Z9(n,e){Oe.call(this,n,e)}function l2(n,e){Oe.call(this,n,e)}function rkn(n,e){this.a=n,this.b=e}function ckn(n,e){this.a=n,this.b=e}function fn(n,e){this.a=n,this.b=e}function f5(n,e){Oe.call(this,n,e)}function h5(n,e){Oe.call(this,n,e)}function n8(n,e){Oe.call(this,n,e)}function OO(n,e){Oe.call(this,n,e)}function Wj(n,e){Oe.call(this,n,e)}function l5(n,e){Oe.call(this,n,e)}function DO(n,e){Oe.call(this,n,e)}function Xj(n,e){Oe.call(this,n,e)}function yw(n,e){Oe.call(this,n,e)}function e8(n,e){Oe.call(this,n,e)}function a5(n,e){Oe.call(this,n,e)}function d5(n,e){Oe.call(this,n,e)}function t8(n,e){Oe.call(this,n,e)}function Vj(n,e){Oe.call(this,n,e)}function jw(n,e){Oe.call(this,n,e)}function Qj(n,e){Oe.call(this,n,e)}function ukn(n,e){this.a=n,this.b=e}function skn(n,e){this.a=n,this.b=e}function okn(n,e){this.a=n,this.b=e}function fkn(n,e){this.a=n,this.b=e}function hkn(n,e){this.a=n,this.b=e}function lkn(n,e){this.a=n,this.b=e}function Pi(n,e){this.a=n,this.b=e}function Jj(n,e){Oe.call(this,n,e)}function akn(n,e){this.a=n,this.b=e}function dkn(n,e){this.a=n,this.b=e}function bkn(n,e){this.a=n,this.b=e}function wkn(n,e){this.a=n,this.b=e}function gkn(n,e){this.a=n,this.b=e}function pkn(n,e){this.a=n,this.b=e}function vkn(n,e){this.b=n,this.a=e}function mkn(n,e){this.b=n,this.a=e}function kkn(n,e){this.b=n,this.a=e}function ykn(n,e){this.b=n,this.a=e}function jkn(n,e){this.a=n,this.b=e}function Ekn(n,e){this.a=n,this.b=e}function yre(n,e){J9e(n.a,u(e,56))}function Ckn(n,e){f0e(n.a,u(e,11))}function jre(n,e){return h3(),e!=n}function Tkn(){return Q9n(),new Szn}function Mkn(){c$(),this.b=new fi}function Akn(){hM(),this.a=new fi}function Skn(){tX(),lW.call(this)}function a2(n,e){Oe.call(this,n,e)}function Pkn(n,e){this.a=n,this.b=e}function Ikn(n,e){this.a=n,this.b=e}function Yj(n,e){this.a=n,this.b=e}function Okn(n,e){this.a=n,this.b=e}function Dkn(n,e){this.a=n,this.b=e}function $kn(n,e){this.a=n,this.b=e}function Fkn(n,e){this.d=n,this.b=e}function lz(n,e){this.d=n,this.e=e}function xkn(n,e){this.f=n,this.c=e}function i8(n,e){this.b=n,this.c=e}function az(n,e){this.i=n,this.g=e}function Lkn(n,e){this.e=n,this.a=e}function Nkn(n,e){this.a=n,this.b=e}function dz(n,e){n.i=null,nT(n,e)}function Ere(n,e){n&&it($y,n,e)}function Bkn(n,e){return NF(n.a,e)}function Zj(n){return g7(n.c,n.b)}function Vr(n){return n?n.dd():null}function B(n){return n??null}function q0(n){return typeof n===X2}function G0(n){return typeof n===UZ}function mi(n){return typeof n===EL}function el(n,e){return n.Hd().Xb(e)}function nE(n,e){return Rbe(n.Kc(),e)}function gd(n,e){return fc(n,e)==0}function Cre(n,e){return fc(n,e)>=0}function b5(n,e){return fc(n,e)!=0}function Tre(n){return""+(_n(n),n)}function r8(n,e){return n.substr(e)}function Rkn(n){return $u(n),n.d.gc()}function $O(n){return yme(n,n.c),n}function eE(n){return A5(n==null),n}function w5(n,e){return n.a+=""+e,n}function dr(n,e){return n.a+=""+e,n}function g5(n,e){return n.a+=""+e,n}function rc(n,e){return n.a+=""+e,n}function De(n,e){return n.a+=""+e,n}function bz(n,e){return n.a+=""+e,n}function _kn(n,e){Kt(n,e,n.a,n.a.a)}function ua(n,e){Kt(n,e,n.c.b,n.c)}function Mre(n,e,t){VFn(e,Mx(n,t))}function Are(n,e,t){VFn(e,Mx(n,t))}function Sre(n,e){k0e(new ie(n),e)}function Kkn(n,e){n.q.setTime($d(e))}function Hkn(n,e){kW.call(this,n,e)}function qkn(n,e){kW.call(this,n,e)}function FO(n,e){kW.call(this,n,e)}function Gkn(n){Eu(this),Z5(this,n)}function wz(n){return Ln(n,0),null}function Lo(n){return n.a=0,n.b=0,n}function zkn(n,e){return n.a=e.g+1,n}function Pre(n,e){return n.j[e.p]==2}function gz(n){return lhe(u(n,79))}function Ukn(){Ukn=N,jUn=Fe(qF())}function Wkn(){Wkn=N,RWn=Fe(PNn())}function Xkn(){this.b=new s2(sb(12))}function Vkn(){this.b=0,this.a=!1}function Qkn(){this.b=0,this.a=!1}function p5(n){this.a=n,TI.call(this)}function Jkn(n){this.a=n,TI.call(this)}function In(n,e){ii.call(this,n,e)}function xO(n,e){V0.call(this,n,e)}function Ew(n,e){az.call(this,n,e)}function LO(n,e){H3.call(this,n,e)}function Ykn(n,e){c8.call(this,n,e)}function He(n,e){$j(),it(eI,n,e)}function NO(n,e){return Yu(n.a,0,e)}function Zkn(n,e){return n.a.a.a.cc(e)}function nyn(n,e){return B(n)===B(e)}function Ire(n,e){return Zt(n.a,e.a)}function Ore(n,e){return Uc(n.a,e.a)}function Dre(n,e){return xCn(n.a,e.a)}function Pf(n,e){return n.indexOf(e)}function pd(n,e){return n==e?0:n?1:-1}function tE(n){return n<10?"0"+n:""+n}function $re(n){return pe(n),new p5(n)}function eyn(n){return Bc(n.l,n.m,n.h)}function i3(n){return Gt((_n(n),n))}function Fre(n){return Gt((_n(n),n))}function tyn(n,e){return Uc(n.g,e.g)}function $r(n){return typeof n===UZ}function xre(n){return n==b0||n==Hb}function Lre(n){return n==b0||n==Kb}function pz(n){return Fr(n.b.b,n,0)}function iyn(n){this.a=Tkn(),this.b=n}function ryn(n){this.a=Tkn(),this.b=n}function Nre(n,e){return W(n.a,e),e}function Bre(n,e){return W(n.c,e),n}function cyn(n,e){return rs(n.a,e),n}function Rre(n,e){return wo(),e.a+=n}function _re(n,e){return wo(),e.a+=n}function Kre(n,e){return wo(),e.c+=n}function vz(n,e){S3(n,0,n.length,e)}function Sh(){Tq.call(this,new ba)}function uyn(){xE.call(this,0,0,0,0)}function d2(){ys.call(this,0,0,0,0)}function mr(n){this.a=n.a,this.b=n.b}function tl(n){return n==Zs||n==Ao}function r3(n){return n==Yh||n==Jh}function syn(n){return n==xg||n==Fg}function Cw(n){return n!=jf&&n!=ql}function Hu(n){return n.Lg()&&n.Mg()}function oyn(n){return JE(u(n,118))}function iE(n){return rs(new hi,n)}function fyn(n,e){return new H3(e,n)}function Hre(n,e){return new H3(e,n)}function mz(n,e,t){UC(n,e),WC(n,t)}function rE(n,e,t){Rd(n,e),Bd(n,t)}function Jo(n,e,t){Zc(n,e),nu(n,t)}function cE(n,e,t){D3(n,e),F3(n,t)}function uE(n,e,t){$3(n,e),x3(n,t)}function BO(n,e){X3(n,e),L3(n,n.D)}function kz(n){xkn.call(this,n,!0)}function hyn(n,e,t){fU.call(this,n,e,t)}function il(n){jl(),qbe.call(this,n)}function lyn(){Lj.call(this,"Head",1)}function ayn(){Lj.call(this,"Tail",3)}function RO(n){n.c=F(Zn,rn,1,0,5,1)}function dyn(n){n.a=F(Zn,rn,1,8,5,1)}function byn(n){Yc(n.xf(),new t5n(n))}function Tw(n){return n!=null?mt(n):0}function qre(n,e){return ob(e,nf(n))}function Gre(n,e){return ob(e,nf(n))}function zre(n,e){return n[n.length]=e}function Ure(n,e){return n[n.length]=e}function yz(n){return zoe(n.b.Kc(),n.a)}function Wre(n,e){return ZC(BD(n.d),e)}function Xre(n,e){return ZC(BD(n.g),e)}function Vre(n,e){return ZC(BD(n.j),e)}function tr(n,e){ii.call(this,n.b,e)}function vd(n){xE.call(this,n,n,n,n)}function jz(n){return n.b&&uL(n),n.a}function Ez(n){return n.b&&uL(n),n.c}function Qre(n,e){pf||(n.b=e)}function _O(n,e,t){return Mt(n,e,t),t}function wyn(n,e,t){Mt(n.c[e.g],e.g,t)}function Jre(n,e,t){u(n.c,69).Xh(e,t)}function Yre(n,e,t){Jo(t,t.i+n,t.j+e)}function Zre(n,e){me(bc(n.a),PMn(e))}function nce(n,e){me(Ou(n.a),IMn(e))}function v5(n){Je(),cd.call(this,n)}function ece(n){return n==null?0:mt(n)}function gyn(){gyn=N,hK=new f6(cH)}function je(){je=N,new pyn,new X}function pyn(){new we,new we,new we}function Cz(){Cz=N,Hq(),bin=new we}function Yo(){Yo=N,j.Math.log(2)}function ms(){ms=N,Eh=(E7n(),Dne)}function tce(){throw T(new t1(izn))}function ice(){throw T(new t1(izn))}function rce(){throw T(new t1(rzn))}function cce(){throw T(new t1(rzn))}function vyn(n){this.a=n,HU.call(this,n)}function KO(n){this.a=n,Ej.call(this,n)}function HO(n){this.a=n,Ej.call(this,n)}function bi(n,e){mD(n.c,n.c.length,e)}function Kr(n){return n.ae?1:0}function kyn(n,e){return fc(n,e)>0?n:e}function Bc(n,e,t){return{l:n,m:e,h:t}}function uce(n,e){n.a!=null&&Ckn(e,n.a)}function yyn(n){n.a=new aI,n.c=new aI}function sE(n){this.b=n,this.a=new X}function jyn(n){this.b=new san,this.a=n}function Mz(n){vU.call(this),this.a=n}function Eyn(){Lj.call(this,"Range",2)}function Cyn(){kJ(),this.a=new B7(Hrn)}function sce(n,e){pe(e),Iw(n).Jc(new ps)}function oce(n,e){return Zu(),e.n.b+=n}function fce(n,e,t){return it(n.g,t,e)}function hce(n,e,t){return it(n.k,t,e)}function lce(n,e){return it(n.a,e.a,e)}function Mw(n,e,t){return _Q(e,t,n.c)}function Az(n){return new fn(n.c,n.d)}function ace(n){return new fn(n.c,n.d)}function Qr(n){return new fn(n.a,n.b)}function Tyn(n,e){return xEe(n.a,e,null)}function dce(n){Hi(n,null),Ei(n,null)}function Myn(n){s$(n,null),o$(n,null)}function Ayn(){c8.call(this,null,null)}function Syn(){wE.call(this,null,null)}function Sz(n){this.a=n,we.call(this)}function bce(n){this.b=(Pn(),new DI(n))}function oE(n){n.j=F(Ain,q,310,0,0,1)}function wce(n,e,t){n.c.Vc(e,u(t,133))}function gce(n,e,t){n.c.ji(e,u(t,133))}function Pyn(n,e){de(n),n.Gc(u(e,15))}function m5(n,e){return Jje(n.c,n.b,e)}function pce(n,e){return new Jyn(n.Kc(),e)}function qO(n,e){return gwe(n.Kc(),e)!=-1}function Pz(n,e){return n.a.Bc(e)!=null}function fE(n){return n.Ob()?n.Pb():null}function Iyn(n){return Hs(n,0,n.length)}function I(n,e){return n!=null&&WF(n,e)}function vce(n,e){n.q.setHours(e),S6(n,e)}function Oyn(n,e){n.c&&(ZU(e),iMn(e))}function mce(n,e,t){u(n.Kb(t),164).Nb(e)}function kce(n,e,t){return SEe(n,e,t),t}function Dyn(n,e,t){n.a=e^1502,n.b=t^tN}function GO(n,e,t){return n.a[e.g][t.g]}function Zo(n,e){return n.a[e.c.p][e.p]}function yce(n,e){return n.e[e.c.p][e.p]}function jce(n,e){return n.c[e.c.p][e.p]}function Ece(n,e){return n.j[e.p]=D9e(e)}function Cce(n,e){return DX(n.f,e.tg())}function Tce(n,e){return DX(n.b,e.tg())}function Mce(n,e){return n.a0?e*e/n:e*e*100}function Jce(n,e){return n>0?e/(n*n):e*100}function Yce(n,e,t){return W(e,e$n(n,t))}function Zce(n,e,t){DC(),n.Xe(e)&&t.td(n)}function s3(n,e,t){var i;i=n.Zc(e),i.Rb(t)}function U0(n,e,t){return n.a+=e,n.b+=t,n}function nue(n,e,t){return n.a*=e,n.b*=t,n}function o8(n,e,t){return n.a-=e,n.b-=t,n}function Zz(n,e){return n.a=e.a,n.b=e.b,n}function vE(n){return n.a=-n.a,n.b=-n.b,n}function fjn(n){this.c=n,this.a=1,this.b=1}function hjn(n){this.c=n,Zc(n,0),nu(n,0)}function ljn(n){Ct.call(this),V5(this,n)}function ajn(n){yL(),Nmn(this),this.mf(n)}function djn(n,e){Zv(),c8.call(this,n,e)}function nU(n,e){c1(),wE.call(this,n,e)}function bjn(n,e){c1(),wE.call(this,n,e)}function wjn(n,e){c1(),nU.call(this,n,e)}function qu(n,e,t){Wu.call(this,n,e,t,2)}function JO(n,e){ms(),FE.call(this,n,e)}function gjn(n,e){ms(),JO.call(this,n,e)}function eU(n,e){ms(),JO.call(this,n,e)}function pjn(n,e){ms(),eU.call(this,n,e)}function tU(n,e){ms(),FE.call(this,n,e)}function vjn(n,e){ms(),tU.call(this,n,e)}function mjn(n,e){ms(),FE.call(this,n,e)}function eue(n,e){return n.c.Fc(u(e,133))}function iU(n,e,t){return jM(G8(n,e),t)}function tue(n,e,t){return e.Qk(n.e,n.c,t)}function iue(n,e,t){return e.Rk(n.e,n.c,t)}function YO(n,e){return pl(n.e,u(e,49))}function rue(n,e,t){s6(Ou(n.a),e,IMn(t))}function cue(n,e,t){s6(bc(n.a),e,PMn(t))}function rU(n,e){e.$modCount=n.$modCount}function C5(){C5=N,Xm=new kt("root")}function o3(){o3=N,xy=new w9n,new g9n}function kjn(){this.a=new Od,this.b=new Od}function cU(){RIn.call(this),this.Bb|=Yi}function yjn(){Oe.call(this,"GROW_TREE",0)}function uue(n){return n==null?null:CCe(n)}function sue(n){return n==null?null:D5e(n)}function oue(n){return n==null?null:Lr(n)}function fue(n){return n==null?null:Lr(n)}function Ph(n){n.o==null&&u9e(n)}function sn(n){return A5(n==null||q0(n)),n}function Y(n){return A5(n==null||G0(n)),n}function Ce(n){return A5(n==null||mi(n)),n}function uU(n){this.q=new j.Date($d(n))}function f8(n,e){this.c=n,Yp.call(this,n,e)}function mE(n,e){this.a=n,f8.call(this,n,e)}function hue(n,e){this.d=n,Ovn(this),this.b=e}function sU(n,e){P$.call(this,n),this.a=e}function oU(n,e){P$.call(this,n),this.a=e}function lue(n){xQ.call(this,0,0),this.f=n}function fU(n,e,t){IC.call(this,n,e,t,null)}function jjn(n,e,t){IC.call(this,n,e,t,null)}function aue(n,e,t){return n.ue(e,t)<=0?t:e}function due(n,e,t){return n.ue(e,t)<=0?e:t}function bue(n,e){return u(xd(n.b,e),149)}function wue(n,e){return u(xd(n.c,e),229)}function ZO(n){return u(un(n.a,n.b),287)}function Ejn(n){return new fn(n.c,n.d+n.a)}function Cjn(n){return Zu(),syn(u(n,197))}function W0(){W0=N,prn=Cn((Vu(),id))}function gue(n,e){e.a?e7e(n,e):zO(n.a,e.b)}function Tjn(n,e){pf||W(n.a,e)}function pue(n,e){return H9(),K3(e.d.i,n)}function vue(n,e){return x2(),new ABn(e,n)}function Of(n,e){return T8(e,ann),n.f=e,n}function hU(n,e,t){return t=ss(n,e,3,t),t}function lU(n,e,t){return t=ss(n,e,6,t),t}function aU(n,e,t){return t=ss(n,e,9,t),t}function h8(n,e,t){++n.j,n.Ki(),A$(n,e,t)}function Mjn(n,e,t){++n.j,n.Hi(e,n.oi(e,t))}function Ajn(n,e,t){var i;i=n.Zc(e),i.Rb(t)}function Sjn(n,e,t){return MZ(n.c,n.b,e,t)}function dU(n,e){return(e&nt)%n.d.length}function ii(n,e){kt.call(this,n),this.a=e}function bU(n,e){xq.call(this,n),this.a=e}function nD(n,e){xq.call(this,n),this.a=e}function Pjn(n,e){this.c=n,Ld.call(this,e)}function Ijn(n,e){this.a=n,Omn.call(this,e)}function l8(n,e){this.a=n,Omn.call(this,e)}function Ojn(n){this.a=(is(n,Pb),new Pc(n))}function Djn(n){this.a=(is(n,Pb),new Pc(n))}function a8(n){return!n.a&&(n.a=new Rr),n.a}function $jn(n){return n>8?0:n+1}function mue(n,e){return qn(),n==e?0:n?1:-1}function wU(n,e,t){return m2(n,u(e,22),t)}function kue(n,e,t){return n.apply(e,t)}function Fjn(n,e,t){return n.a+=Hs(e,0,t),n}function gU(n,e){var t;return t=n.e,n.e=e,t}function yue(n,e){var t;t=n[eN],t.call(n,e)}function jue(n,e){var t;t=n[eN],t.call(n,e)}function X0(n,e){n.a.Vc(n.b,e),++n.b,n.c=-1}function xjn(n){Eu(n.e),n.d.b=n.d,n.d.a=n.d}function d8(n){n.b?d8(n.b):n.f.c.zc(n.e,n.d)}function Eue(n,e,t){ca(),Svn(n,e.Ce(n.a,t))}function Cue(n,e){return nO(p$n(n.a,e,!0))}function Tue(n,e){return nO(v$n(n.a,e,!0))}function bo(n,e){return pj(new Array(e),n)}function eD(n){return String.fromCharCode(n)}function Mue(n){return n==null?null:n.message}function Ljn(){this.a=new X,this.b=new X}function Njn(){this.a=new LH,this.b=new Umn}function Bjn(){this.b=new Li,this.c=new X}function pU(){this.d=new Li,this.e=new Li}function vU(){this.n=new Li,this.o=new Li}function kE(){this.n=new i2,this.i=new d2}function Rjn(){this.a=new v4n,this.b=new cwn}function _jn(){this.a=new X,this.d=new X}function Kjn(){this.b=new fi,this.a=new fi}function Hjn(){this.b=new we,this.a=new we}function qjn(){this.b=new E8n,this.a=new sgn}function Gjn(){kE.call(this),this.a=new Li}function T5(n){Jbe.call(this,n,(FC(),vR))}function mU(n,e,t,i){xE.call(this,n,e,t,i)}function Aue(n,e,t){t!=null&&JC(e,rx(n,t))}function Sue(n,e,t){t!=null&&YC(e,rx(n,t))}function kU(n,e,t){return t=ss(n,e,11,t),t}function ot(n,e){return n.a+=e.a,n.b+=e.b,n}function ki(n,e){return n.a-=e.a,n.b-=e.b,n}function Pue(n,e){return n.n.a=(_n(e),e+10)}function Iue(n,e){return n.n.a=(_n(e),e+10)}function Oue(n,e){return e==n||o4(sM(e),n)}function zjn(n,e){return it(n.a,e,"")==null}function Due(n,e){return H9(),!K3(e.d.i,n)}function $ue(n,e){tl(n.f)?Qme(n,e):Fve(n,e)}function Fue(n,e){var t;return t=e.Hh(n.a),t}function V0(n,e){vr.call(this,rm+n+Ra+e)}function g2(n,e,t,i){V.call(this,n,e,t,i)}function yU(n,e,t,i){V.call(this,n,e,t,i)}function Ujn(n,e,t,i){yU.call(this,n,e,t,i)}function Wjn(n,e,t,i){zE.call(this,n,e,t,i)}function tD(n,e,t,i){zE.call(this,n,e,t,i)}function jU(n,e,t,i){zE.call(this,n,e,t,i)}function Xjn(n,e,t,i){tD.call(this,n,e,t,i)}function EU(n,e,t,i){tD.call(this,n,e,t,i)}function Fn(n,e,t,i){jU.call(this,n,e,t,i)}function Vjn(n,e,t,i){EU.call(this,n,e,t,i)}function Qjn(n,e,t,i){yW.call(this,n,e,t,i)}function Jjn(n,e,t){this.a=n,Vz.call(this,e,t)}function Yjn(n,e,t){this.c=e,this.b=t,this.a=n}function xue(n,e,t){return n.d=u(e.Kb(t),164)}function CU(n,e){return n.Aj().Nh().Kh(n,e)}function TU(n,e){return n.Aj().Nh().Ih(n,e)}function Zjn(n,e){return _n(n),B(n)===B(e)}function An(n,e){return _n(n),B(n)===B(e)}function iD(n,e){return nO(p$n(n.a,e,!1))}function rD(n,e){return nO(v$n(n.a,e,!1))}function Lue(n,e){return n.b.sd(new D7n(n,e))}function Nue(n,e){return n.b.sd(new $7n(n,e))}function nEn(n,e){return n.b.sd(new F7n(n,e))}function MU(n,e,t){return n.lastIndexOf(e,t)}function Bue(n,e,t){return Zt(n[e.b],n[t.b])}function Rue(n,e){return H(e,(nn(),Jk),n)}function _ue(n,e){return Uc(e.a.d.p,n.a.d.p)}function Kue(n,e){return Uc(n.a.d.p,e.a.d.p)}function Hue(n,e){return Zt(n.c-n.s,e.c-e.s)}function eEn(n){return n.c?Fr(n.c.a,n,0):-1}function que(n){return n<100?null:new Q1(n)}function p2(n){return n==td||n==jh||n==Ac}function tEn(n,e){return I(e,15)&&oBn(n.c,e)}function Gue(n,e){pf||e&&(n.d=e)}function cD(n,e){var t;return t=e,!!VV(n,t)}function AU(n,e){this.c=n,DD.call(this,n,e)}function iEn(n){this.c=n,FO.call(this,IM,0)}function rEn(n,e){Voe.call(this,n,n.length,e)}function zue(n,e,t){return u(n.c,69).lk(e,t)}function yE(n,e,t){return u(n.c,69).mk(e,t)}function Uue(n,e,t){return tue(n,u(e,332),t)}function SU(n,e,t){return iue(n,u(e,332),t)}function Wue(n,e,t){return txn(n,u(e,332),t)}function cEn(n,e,t){return zve(n,u(e,332),t)}function M5(n,e){return e==null?null:ab(n.b,e)}function PU(n){return G0(n)?(_n(n),n):n.ke()}function jE(n){return!isNaN(n)&&!isFinite(n)}function uEn(n){Df(),this.a=(Pn(),new Wp(n))}function b8(n){h3(),this.d=n,this.a=new gw}function ks(n,e,t){this.a=n,this.b=e,this.c=t}function sEn(n,e,t){this.a=n,this.b=e,this.c=t}function oEn(n,e,t){this.d=n,this.b=t,this.a=e}function uD(n){yyn(this),_s(this),Vi(this,n)}function du(n){RO(this),GU(this.c,0,n.Pc())}function fEn(n){Uu(n.a),uPn(n.c,n.b),n.b=null}function hEn(n){this.a=n,Zf(),eu(Date.now())}function lEn(){lEn=N,Xin=new ou,XA=new ou}function sD(){sD=N,Rin=new iln,Pzn=new rln}function aEn(){aEn=N,Nne=F(Zn,rn,1,0,5,1)}function dEn(){dEn=N,eee=F(Zn,rn,1,0,5,1)}function IU(){IU=N,tee=F(Zn,rn,1,0,5,1)}function Df(){Df=N,new Bq((Pn(),Pn(),cr))}function Xue(n){return FC(),$e((pPn(),Dzn),n)}function Vue(n){return hf(),$e((LSn(),Bzn),n)}function Que(n){return $T(),$e((qAn(),Gzn),n)}function Jue(n){return RC(),$e((GAn(),zzn),n)}function Yue(n){return dM(),$e((IOn(),Uzn),n)}function Zue(n){return _o(),$e(($Sn(),Vzn),n)}function nse(n){return Cu(),$e((FSn(),Jzn),n)}function ese(n){return Jc(),$e((xSn(),Zzn),n)}function tse(n){return SM(),$e((Ukn(),jUn),n)}function ise(n){return Hd(),$e((mPn(),CUn),n)}function rse(n){return K2(),$e((kPn(),MUn),n)}function cse(n){return d6(),$e((yPn(),PUn),n)}function use(n){return Aj(),$e((yAn(),IUn),n)}function sse(n){return _C(),$e((zAn(),WUn),n)}function ose(n){return W5(),$e((NSn(),bWn),n)}function fse(n){return Qi(),$e((JPn(),vWn),n)}function hse(n){return G3(),$e((vPn(),EWn),n)}function lse(n){return qd(),$e((BSn(),PWn),n)}function OU(n,e){if(!n)throw T(new Hn(e))}function ase(n){return Qn(),$e((vIn(),$Wn),n)}function DU(n){xE.call(this,n.d,n.c,n.a,n.b)}function oD(n){xE.call(this,n.d,n.c,n.a,n.b)}function $U(n,e,t){this.b=n,this.c=e,this.a=t}function EE(n,e,t){this.b=n,this.a=e,this.c=t}function bEn(n,e,t){this.a=n,this.b=e,this.c=t}function FU(n,e,t){this.a=n,this.b=e,this.c=t}function wEn(n,e,t){this.a=n,this.b=e,this.c=t}function xU(n,e,t){this.a=n,this.b=e,this.c=t}function gEn(n,e,t){this.b=n,this.a=e,this.c=t}function CE(n,e,t){this.e=e,this.b=n,this.d=t}function dse(n,e,t){return ca(),n.a.Od(e,t),e}function fD(n){var e;return e=new Dln,e.e=n,e}function LU(n){var e;return e=new Zmn,e.b=n,e}function w8(){w8=N,sS=new Fdn,oS=new xdn}function wo(){wo=N,WWn=new pbn,XWn=new vbn}function bse(n){return aT(),$e((EPn(),HWn),n)}function wse(n){return ff(),$e((TPn(),JWn),n)}function gse(n){return lM(),$e((mOn(),cXn),n)}function pse(n){return q2(),$e((yIn(),uXn),n)}function vse(n){return OC(),$e((JAn(),sXn),n)}function mse(n){return F2(),$e((RSn(),oXn),n)}function kse(n){return Vw(),$e((UPn(),ZWn),n)}function yse(n){return Kd(),$e((HSn(),rXn),n)}function jse(n){return VC(),$e((_Sn(),fXn),n)}function Ese(n){return Pa(),$e((GPn(),hXn),n)}function Cse(n){return V8(),$e((WAn(),lXn),n)}function Tse(n){return ya(),$e((KSn(),dXn),n)}function Mse(n){return eM(),$e((TIn(),bXn),n)}function Ase(n){return K8(),$e((XAn(),wXn),n)}function Sse(n){return A7(),$e((EIn(),gXn),n)}function Pse(n){return h4(),$e((jIn(),pXn),n)}function Ise(n){return or(),$e((zOn(),vXn),n)}function Ose(n){return q3(),$e((GSn(),mXn),n)}function Dse(n){return Nh(),$e((qSn(),yXn),n)}function $se(n){return kC(),$e((YAn(),jXn),n)}function Fse(n){return Ss(),$e((WPn(),EXn),n)}function xse(n){return JT(),$e((CIn(),BQn),n)}function Lse(n){return i6(),$e((zSn(),RQn),n)}function Nse(n){return wb(),$e((MPn(),_Qn),n)}function Bse(n){return ur(),$e((XSn(),UQn),n)}function Rse(n){return Zw(),$e((vOn(),HQn),n)}function _se(n){return Rh(),$e((WSn(),qQn),n)}function Kse(n){return z8(),$e((QAn(),GQn),n)}function Hse(n){return oT(),$e((USn(),WQn),n)}function qse(n){return b6(),$e((zPn(),KQn),n)}function Gse(n){return x8(),$e((VAn(),XQn),n)}function zse(n){return Q3(),$e((QSn(),VQn),n)}function Use(n){return uT(),$e((JSn(),QQn),n)}function Wse(n){return dT(),$e((VSn(),JQn),n)}function Xse(n){return _d(),$e((YSn(),hJn),n)}function Vse(n){return z5(),$e((nSn(),wJn),n)}function Qse(n){return Ff(),$e((eSn(),jJn),n)}function Jse(n){return ef(),$e((tSn(),CJn),n)}function Yse(n){return No(),$e((ZAn(),RJn),n)}function Zse(n){return Id(),$e((iSn(),UJn),n)}function noe(n){return c4(),$e((jPn(),WJn),n)}function eoe(n){return k6(),$e((MIn(),VJn),n)}function toe(n){return aC(),$e((uSn(),fYn),n)}function ioe(n){return iT(),$e((cSn(),wYn),n)}function roe(n){return gC(),$e((rSn(),hYn),n)}function coe(n){return CT(),$e((ZSn(),pYn),n)}function uoe(n){return $C(),$e((sSn(),vYn),n)}function soe(n){return f7(),$e((nPn(),mYn),n)}function ooe(n){return qT(),$e((CPn(),FYn),n)}function foe(n){return sT(),$e((tPn(),xYn),n)}function hoe(n){return ET(),$e((ePn(),LYn),n)}function loe(n){return g4(),$e((QPn(),tZn),n)}function aoe(n){return w7(),$e((iPn(),iZn),n)}function doe(n){return Pj(),$e((mAn(),rZn),n)}function boe(n){return Ij(),$e((vAn(),uZn),n)}function woe(n){return L8(),$e((fSn(),sZn),n)}function goe(n){return P7(),$e((XPn(),oZn),n)}function poe(n){return Jv(),$e((kAn(),CZn),n)}function voe(n){return c7(),$e((oSn(),TZn),n)}function moe(n){return Ho(),$e((VPn(),OZn),n)}function koe(n){return y1(),$e((kOn(),$Zn),n)}function yoe(n){return oh(),$e((kIn(),FZn),n)}function joe(n){return vb(),$e((mIn(),_Zn),n)}function Eoe(n){return rr(),$e((Wkn(),RWn),n)}function Coe(n){return B3(),$e((UAn(),BWn),n)}function Toe(n){return sr(),$e((YPn(),ene),n)}function Moe(n){return sf(),$e((cPn(),tne),n)}function Aoe(n){return Hh(),$e((PPn(),ine),n)}function Soe(n){return ZT(),$e((SIn(),rne),n)}function Poe(n){return _h(),$e((rPn(),une),n)}function Ioe(n){return cs(),$e((SPn(),one),n)}function Ooe(n){return jb(),$e((POn(),fne),n)}function Doe(n){return qw(),$e((ZPn(),hne),n)}function $oe(n){return Ti(),$e((bIn(),lne),n)}function Foe(n){return Tu(),$e((AIn(),ane),n)}function xoe(n){return Vu(),$e((OPn(),vne),n)}function Loe(n){return xu(),$e((UOn(),mne),n)}function Noe(n){return J(),$e((nIn(),dne),n)}function Boe(n){return AT(),$e((IPn(),kne),n)}function Roe(n){return Xu(),$e((APn(),Ene),n)}function _oe(n){return d4(),$e((yOn(),Lne),n)}function Koe(n,e){return _n(n),n+(_n(e),e)}function Hoe(n,e){return Zf(),me(R(n.a),e)}function qoe(n,e){return Zf(),me(R(n.a),e)}function hD(n,e){this.c=n,this.a=e,this.b=e-n}function pEn(n,e,t){this.a=n,this.b=e,this.c=t}function NU(n,e,t){this.a=n,this.b=e,this.c=t}function BU(n,e,t){this.a=n,this.b=e,this.c=t}function vEn(n,e,t){this.a=n,this.b=e,this.c=t}function mEn(n,e,t){this.a=n,this.b=e,this.c=t}function s1(n,e,t){this.e=n,this.a=e,this.c=t}function kEn(n,e,t){ms(),QW.call(this,n,e,t)}function lD(n,e,t){ms(),FW.call(this,n,e,t)}function RU(n,e,t){ms(),FW.call(this,n,e,t)}function _U(n,e,t){ms(),FW.call(this,n,e,t)}function yEn(n,e,t){ms(),lD.call(this,n,e,t)}function KU(n,e,t){ms(),lD.call(this,n,e,t)}function jEn(n,e,t){ms(),KU.call(this,n,e,t)}function EEn(n,e,t){ms(),RU.call(this,n,e,t)}function CEn(n,e,t){ms(),_U.call(this,n,e,t)}function g8(n,e){return pe(n),pe(e),new z8n(n,e)}function v2(n,e){return pe(n),pe(e),new NEn(n,e)}function Goe(n,e){return pe(n),pe(e),new BEn(n,e)}function zoe(n,e){return pe(n),pe(e),new W8n(n,e)}function u(n,e){return A5(n==null||WF(n,e)),n}function f3(n){var e;return e=new X,_$(e,n),e}function Uoe(n){var e;return e=new fi,_$(e,n),e}function TEn(n){var e;return e=new Wq,nF(e,n),e}function p8(n){var e;return e=new Ct,nF(e,n),e}function Woe(n){return!n.e&&(n.e=new X),n.e}function Xoe(n){return!n.c&&(n.c=new Bp),n.c}function W(n,e){return n.c[n.c.length]=e,!0}function MEn(n,e){this.c=n,this.b=e,this.a=!1}function HU(n){this.d=n,Ovn(this),this.b=_fe(n.d)}function AEn(){this.a=";,;",this.b="",this.c=""}function Voe(n,e,t){SCn.call(this,e,t),this.a=n}function SEn(n,e,t){this.b=n,Hkn.call(this,e,t)}function qU(n,e,t){this.c=n,Nj.call(this,e,t)}function GU(n,e,t){aY(t,0,n,e,t.length,!1)}function eh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function Qoe(n,e){e&&(n.b=e,n.a=(fl(e),e.a))}function zU(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function UU(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function WU(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function XU(n){return bl(the($r(n)?Ks(n):n))}function Joe(n,e){return Uc(GEn(n.d),GEn(e.d))}function Yoe(n,e){return e==(J(),Gn)?n.c:n.d}function h3(){h3=N,don=(J(),Gn),dP=Vn}function PEn(){this.b=K(Y(cn((Go(),xR))))}function IEn(n){return ca(),F(Zn,rn,1,n,5,1)}function Zoe(n){return new fn(n.c+n.b,n.d+n.a)}function nfe(n,e){return Sj(),Uc(n.d.p,e.d.p)}function aD(n){return ne(n.b!=0),Ts(n,n.a.a)}function efe(n){return ne(n.b!=0),Ts(n,n.c.b)}function VU(n,e){if(!n)throw T(new R9n(e))}function TE(n,e){if(!n)throw T(new Hn(e))}function QU(n,e,t){t3.call(this,n,e),this.b=t}function v8(n,e,t){lz.call(this,n,e),this.c=t}function OEn(n,e,t){oIn.call(this,e,t),this.d=n}function JU(n){IU(),Yy.call(this),this.th(n)}function DEn(n,e,t){this.a=n,Ew.call(this,e,t)}function $En(n,e,t){this.a=n,Ew.call(this,e,t)}function ME(n,e,t){lz.call(this,n,e),this.c=t}function FEn(){T3(),khe.call(this,(Z1(),uo))}function xEn(n){return n!=null&&!$F(n,a9,d9)}function tfe(n,e){return(GDn(n)<<4|GDn(e))&Ut}function ife(n,e){return QE(),ex(n,e),new oTn(n,e)}function sa(n,e){var t;n.n&&(t=e,W(n.f,t))}function l3(n,e,t){var i;i=new Z0(t),Ro(n,e,i)}function rfe(n,e){var t;return t=n.c,wV(n,e),t}function YU(n,e){return e<0?n.g=-1:n.g=e,n}function AE(n,e){return H0e(n),n.a*=e,n.b*=e,n}function LEn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function Ke(n,e){return Kt(n,e,n.c.b,n.c),!0}function ZU(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function dD(n){this.b=n,this.a=Ed(this.b.a).Ed()}function NEn(n,e){this.b=n,this.a=e,TI.call(this)}function BEn(n,e){this.a=n,this.b=e,TI.call(this)}function REn(n,e){SCn.call(this,e,1040),this.a=n}function m8(n){return n==0||isNaN(n)?n:n<0?-1:1}function cfe(n){return C2(),fh(n)==At(ml(n))}function ufe(n){return C2(),ml(n)==At(fh(n))}function jd(n,e){return v6(n,new t3(e.a,e.b))}function sfe(n){return!Xi(n)&&n.c.i.c==n.d.i.c}function SE(n){var e;return e=n.n,n.a.b+e.d+e.a}function _En(n){var e;return e=n.n,n.e.b+e.d+e.a}function nW(n){var e;return e=n.n,n.e.a+e.b+e.c}function KEn(n){return Je(),new th(0,n)}function ofe(n){return n.a?n.a:WD(n)}function A5(n){if(!n)throw T(new Up(null))}function HEn(){HEn=N,mH=(Pn(),new OI(XB))}function PE(){PE=N,new JQ((HI(),uR),(qI(),cR))}function qEn(){qEn=N,jin=F(Wi,q,19,256,0,1)}function bD(n,e,t,i){MQ.call(this,n,e,t,i,0,0)}function ffe(n,e,t){return it(n.b,u(t.b,17),e)}function hfe(n,e,t){return it(n.b,u(t.b,17),e)}function lfe(n,e){return W(n,new fn(e.a,e.b))}function afe(n,e){return n.c=e)throw T(new qq)}function Xfe(n,e,t){return Mt(e,0,rW(e[0],t[0])),e}function Vfe(n,e,t){e.Ye(t,K(Y(te(n.b,t)))*n.a)}function ACn(n,e,t){return eg(),R3(n,e)&&R3(n,t)}function D5(n){return Tu(),!n.Hc(n1)&&!n.Hc(Gl)}function qE(n){return new fn(n.c+n.b/2,n.d+n.a/2)}function MD(n,e){return e.kh()?pl(n.b,u(e,49)):e}function kW(n,e){this.e=n,this.d=e&64?e|Nf:e}function SCn(n,e){this.c=0,this.d=n,this.b=e|64|Nf}function GE(n){this.b=new Pc(11),this.a=(Ow(),n)}function AD(n){this.b=null,this.a=(Ow(),n||Lin)}function PCn(n){this.a=Y$n(n.a),this.b=new du(n.b)}function ICn(n){this.b=n,b2.call(this,n),$yn(this)}function OCn(n){this.b=n,u8.call(this,n),Fyn(this)}function Y0(n,e,t){this.a=n,g2.call(this,e,t,5,6)}function yW(n,e,t,i){this.b=n,Jt.call(this,e,t,i)}function wi(n,e,t,i,r){D$.call(this,n,e,t,i,r,-1)}function $5(n,e,t,i,r){R8.call(this,n,e,t,i,r,-1)}function V(n,e,t,i){Jt.call(this,n,e,t),this.b=i}function zE(n,e,t,i){v8.call(this,n,e,t),this.b=i}function DCn(n){xkn.call(this,n,!1),this.a=!1}function $Cn(n,e){this.b=n,bvn.call(this,n.b),this.a=e}function FCn(n,e){nb(),Yie.call(this,n,mT(new Ku(e)))}function UE(n,e){return Je(),new xW(n,e,0)}function SD(n,e){return Je(),new xW(6,n,e)}function Qfe(n,e){return An(n.substr(0,e.length),e)}function zu(n,e){return mi(e)?QD(n,e):!!Ar(n.f,e)}function Oi(n,e){for(_n(e);n.Ob();)e.td(n.Pb())}function Pw(n,e,t){jl(),this.e=n,this.d=e,this.a=t}function o1(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function jW(n){var e;for(e=n;e.f;)e=e.f;return e}function y2(n){var e;return e=t6(n),ne(e!=null),e}function Jfe(n){var e;return e=Lge(n),ne(e!=null),e}function d3(n,e){var t;return t=n.a.gc(),$X(e,t),t-e}function EW(n,e){var t;for(t=0;t0?j.Math.log(n/e):-100}function xCn(n,e){return fc(n,e)<0?-1:fc(n,e)>0?1:0}function SW(n,e,t){return MRn(n,u(e,46),u(t,167))}function LCn(n,e){return u(vW(Ed(n.a)).Xb(e),42).cd()}function uhe(n,e){return P0e(e,n.length),new REn(n,e)}function DD(n,e){this.d=n,ie.call(this,n),this.e=e}function Cd(n){this.d=(_n(n),n),this.a=0,this.c=IM}function PW(n,e){cd.call(this,1),this.a=n,this.b=e}function NCn(n,e){return n.c?NCn(n.c,e):W(n.b,e),n}function she(n,e,t){var i;return i=ub(n,e),g$(n,e,t),i}function IW(n,e){var t;return t=n.slice(0,e),WX(t,n)}function BCn(n,e,t){var i;for(i=0;i=n.g}function KD(n,e,t){var i;return i=Y$(n,e,t),rZ(n,i)}function j2(n,e){var t;t=n.a.length,ub(n,t),g$(n,t,e)}function ZCn(n,e){var t;t=console[n],t.call(console,e)}function nTn(n,e){var t;++n.j,t=n.Vi(),n.Ii(n.oi(t,e))}function mhe(n,e,t){u(e.b,65),Yc(e.a,new NU(n,t,e))}function FW(n,e,t){uj.call(this,e),this.a=n,this.b=t}function xW(n,e,t){cd.call(this,n),this.a=e,this.b=t}function LW(n,e,t){this.a=n,xq.call(this,e),this.b=t}function eTn(n,e,t){this.a=n,aX.call(this,8,e,null,t)}function khe(n){this.a=(_n(xe),xe),this.b=n,new tG}function tTn(n){this.c=n,this.b=this.c.a,this.a=this.c.e}function NW(n){this.c=n,this.b=n.a.d.a,rU(n.a.e,this)}function Uu(n){z0(n.c!=-1),n.d.$c(n.c),n.b=n.c,n.c=-1}function L5(n){return j.Math.sqrt(n.a*n.a+n.b*n.b)}function Md(n,e){return a3(e,n.a.c.length),un(n.a,e)}function $f(n,e){return B(n)===B(e)||n!=null&&tt(n,e)}function yhe(n){return 0>=n?new PG:sbe(n-1)}function jhe(n){return aw?QD(aw,n):!1}function iTn(n){return n?n.dc():!n.Kc().Ob()}function Gi(n){return!n.a&&n.c?n.c.b:n.a}function Ehe(n){return!n.a&&(n.a=new Jt(zl,n,4)),n.a}function Ad(n){return!n.d&&(n.d=new Jt(ar,n,1)),n.d}function _n(n){if(n==null)throw T(new Nv);return n}function N5(n){n.c?n.c.He():(n.d=!0,S8e(n))}function fl(n){n.c?fl(n.c):(Ta(n),n.d=!0)}function rTn(n){KW(n.a),n.b=F(Zn,rn,1,n.b.length,5,1)}function Che(n,e){return Uc(e.j.c.length,n.j.c.length)}function The(n,e){n.c<0||n.b.b=0?n.Bh(t):bY(n,e)}function cTn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function Ahe(n){if(n.p!=4)throw T(new fu);return n.e}function She(n){if(n.p!=3)throw T(new fu);return n.e}function Phe(n){if(n.p!=6)throw T(new fu);return n.f}function Ihe(n){if(n.p!=6)throw T(new fu);return n.k}function Ohe(n){if(n.p!=3)throw T(new fu);return n.j}function Dhe(n){if(n.p!=4)throw T(new fu);return n.j}function BW(n){return!n.b&&(n.b=new sj(new KI)),n.b}function Sd(n){return n.c==-2&&Pte(n,Qve(n.g,n.b)),n.c}function g3(n,e){var t;return t=LD("",n),t.n=e,t.i=1,t}function $he(n,e){yD(u(e.b,65),n),Yc(e.a,new Aq(n))}function Fhe(n,e){me((!n.a&&(n.a=new l8(n,n)),n.a),e)}function uTn(n,e){this.b=n,DD.call(this,n,e),$yn(this)}function sTn(n,e){this.b=n,AU.call(this,n,e),Fyn(this)}function RW(n,e,t,i){bd.call(this,n,e),this.d=t,this.a=i}function VE(n,e,t,i){bd.call(this,n,t),this.a=e,this.f=i}function oTn(n,e){bce.call(this,obe(pe(n),pe(e))),this.a=e}function fTn(){UJ.call(this,Ka,(a8n(),hee)),tEe(this)}function hTn(){UJ.call(this,Vs,(Qp(),g1n)),lje(this)}function lTn(){Oe.call(this,"DELAUNAY_TRIANGULATION",0)}function xhe(n){return String.fromCharCode.apply(null,n)}function it(n,e,t){return mi(e)?kr(n,e,t):_c(n.f,e,t)}function _W(n){return Pn(),n?n.ve():(Ow(),Ow(),Bin)}function Lhe(n,e,t){return L2(),t.pg(n,u(e.cd(),146))}function aTn(n,e){return PE(),new JQ(new Wyn(n),new Uyn(e))}function Nhe(n){return is(n,AL),KC(qi(qi(5,n),n/10|0))}function QE(){QE=N,fzn=new GI(A(M(Ha,1),OM,42,0,[]))}function dTn(n){return!n.d&&(n.d=new _p(n.c.Cc())),n.d}function p3(n){return!n.a&&(n.a=new W9n(n.c.vc())),n.a}function bTn(n){return!n.b&&(n.b=new Wp(n.c.ec())),n.b}function rh(n,e){for(;e-- >0;)n=n<<1|(n<0?1:0);return n}function pc(n,e){return B(n)===B(e)||n!=null&&tt(n,e)}function Bhe(n,e){return qn(),u(e.b,19).ai&&++i,i}function Oh(n){var e,t;return t=(e=new ud,e),O3(t,n),t}function UD(n){var e,t;return t=(e=new ud,e),VJ(t,n),t}function Zhe(n,e){var t;return t=te(n.f,e),MV(e,t),null}function WD(n){var e;return e=hbe(n),e||null}function CTn(n){return!n.b&&(n.b=new V(di,n,12,3)),n.b}function n1e(n){return n!=null&&_9(tI,n.toLowerCase())}function e1e(n,e){return Zt(bu(n)*Gu(n),bu(e)*Gu(e))}function t1e(n,e){return Zt(bu(n)*Gu(n),bu(e)*Gu(e))}function i1e(n,e){return Zt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function r1e(n,e){return Zt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function TTn(n,e,t){t.a?nu(n,e.b-n.f/2):Zc(n,e.a-n.g/2)}function MTn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function ATn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function ha(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function STn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function PTn(n,e,t,i){ms(),ySn.call(this,e,t,i),this.a=n}function ITn(n,e,t,i){ms(),ySn.call(this,e,t,i),this.a=n}function OTn(n,e){this.a=n,hue.call(this,n,u(n.d,15).Zc(e))}function XD(n){this.f=n,this.c=this.f.e,n.f>0&&qFn(this)}function DTn(n,e,t,i){this.b=n,this.c=i,FO.call(this,e,t)}function $Tn(n){return ne(n.b=0&&An(n.substr(t,e.length),e)}function hl(n,e,t,i,r,c,o){return new v$(n.e,e,t,i,r,c,o)}function QTn(n,e,t,i,r,c){this.a=n,z$.call(this,e,t,i,r,c)}function JTn(n,e,t,i,r,c){this.a=n,z$.call(this,e,t,i,r,c)}function YTn(n,e){this.g=n,this.d=A(M(vh,1),E1,10,0,[e])}function f1(n,e){this.e=n,this.a=Zn,this.b=yBn(e),this.c=e}function ZTn(n,e){kE.call(this),eV(this),this.a=n,this.c=e}function M8(n,e,t,i){Mt(n.c[e.g],t.g,i),Mt(n.c[t.g],e.g,i)}function ZD(n,e,t,i){Mt(n.c[e.g],e.g,t),Mt(n.b[e.g],e.g,i)}function M1e(){return x8(),A(M(ron,1),z,376,0,[uK,iy])}function A1e(){return K8(),A(M(Qcn,1),z,479,0,[Vcn,xS])}function S1e(){return V8(),A(M(Wcn,1),z,419,0,[$S,Ucn])}function P1e(){return OC(),A(M(Rcn,1),z,422,0,[Bcn,s_])}function I1e(){return kC(),A(M(fun,1),z,420,0,[j_,oun])}function O1e(){return z8(),A(M(non,1),z,421,0,[iK,rK])}function D1e(){return z5(),A(M(bJn,1),z,523,0,[Hm,Km])}function $1e(){return No(),A(M(BJn,1),z,520,0,[tw,Bl])}function F1e(){return Ff(),A(M(yJn,1),z,516,0,[M0,I1])}function x1e(){return ef(),A(M(EJn,1),z,515,0,[Ja,kf])}function L1e(){return Id(),A(M(zJn,1),z,455,0,[Rl,Lg])}function N1e(){return gC(),A(M(Son,1),z,425,0,[yK,Aon])}function B1e(){return aC(),A(M(Mon,1),z,480,0,[kK,Ton])}function R1e(){return iT(),A(M(Pon,1),z,495,0,[EP,mv])}function _1e(){return $C(),A(M(Oon,1),z,426,0,[Ion,TK])}function K1e(){return c7(),A(M(Ffn,1),z,429,0,[DP,$fn])}function H1e(){return L8(),A(M(afn,1),z,430,0,[FK,IP])}function q1e(){return $T(),A(M(Jin,1),z,428,0,[yR,Qin])}function G1e(){return RC(),A(M(Zin,1),z,427,0,[Yin,jR])}function z1e(){return _C(),A(M(Arn,1),z,424,0,[$R,tS])}function U1e(){return B3(),A(M(NWn,1),z,511,0,[_k,UR])}function sC(n,e,t,i){return t>=0?n.jh(e,t,i):n.Sg(null,t,i)}function n$(n){return n.b.b==0?n.a.$e():aD(n.b)}function W1e(n){if(n.p!=5)throw T(new fu);return ge(n.f)}function X1e(n){if(n.p!=5)throw T(new fu);return ge(n.k)}function VW(n){return B(n.a)===B((eF(),gH))&&Vje(n),n.a}function nMn(n){this.a=u(pe(n),271),this.b=(Pn(),new Hz(n))}function eMn(n,e){bte(this,new fn(n.a,n.b)),wte(this,p8(e))}function Id(){Id=N,Rl=new iz(Y2,0),Lg=new iz(Z2,1)}function Ff(){Ff=N,M0=new ez(Z2,0),I1=new ez(Y2,1)}function Od(){rie.call(this,new s2(sb(12))),Bz(!0),this.a=2}function e$(n,e,t){Je(),cd.call(this,n),this.b=e,this.a=t}function QW(n,e,t){ms(),uj.call(this,e),this.a=n,this.b=t}function tMn(n){kE.call(this),eV(this),this.a=n,this.c=!0}function iMn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function oC(n){var e;ebe(n.a),byn(n.a),e=new tj(n.a),TQ(e)}function V1e(n,e){aBn(n,!0),Yc(n.e.wf(),new $U(n,!0,e))}function fC(n,e){return LAn(e),Y0e(n,F(be,Le,25,e,15,1),e)}function Q1e(n,e){return C2(),n==At(fh(e))||n==At(ml(e))}function vc(n,e){return e==null?Vr(Ar(n.f,null)):n5(n.g,e)}function J1e(n){return n.b==0?null:(ne(n.b!=0),Ts(n,n.a.a))}function Gt(n){return Math.max(Math.min(n,nt),-2147483648)|0}function Y1e(n,e){var t=lR[n.charCodeAt(0)];return t??n}function hC(n,e){return tC(n,"set1"),tC(e,"set2"),new Z8n(n,e)}function Z1e(n,e){var t;return t=W0e(n.f,e),ot(vE(t),n.f.d)}function R5(n,e){var t,i;return t=e,i=new dI,n_n(n,t,i),i.d}function t$(n,e,t,i){var r;r=new Gjn,e.a[t.g]=r,m2(n.b,i,r)}function JW(n,e,t){var i;i=n.Yg(e),i>=0?n.sh(i,t):_Y(n,e,t)}function Dw(n,e,t){dC(),n&&it(dH,n,e),n&&it($y,n,t)}function rMn(n,e,t){this.i=new X,this.b=n,this.g=e,this.a=t}function lC(n,e,t){this.c=new X,this.e=n,this.f=e,this.b=t}function YW(n,e,t){this.a=new X,this.e=n,this.f=e,this.c=t}function cMn(n,e){oE(this),this.f=e,this.g=n,eC(this),this._d()}function A8(n,e){var t;t=n.q.getHours(),n.q.setDate(e),S6(n,t)}function uMn(n,e){var t;for(pe(e),t=n.a;t;t=t.c)e.Od(t.g,t.i)}function sMn(n){var e;return e=new kj(sb(n.length)),qV(e,n),e}function nle(n){function e(){}return e.prototype=n||{},new e}function ele(n,e){return LOn(n,e)?(FIn(n),!0):!1}function Dh(n,e){if(e==null)throw T(new Nv);return Y2e(n,e)}function tle(n){if(n.qe())return null;var e=n.n;return RA[e]}function S8(n){return n.Db>>16!=3?null:u(n.Cb,33)}function nf(n){return n.Db>>16!=9?null:u(n.Cb,33)}function oMn(n){return n.Db>>16!=6?null:u(n.Cb,79)}function fMn(n){return n.Db>>16!=7?null:u(n.Cb,235)}function hMn(n){return n.Db>>16!=7?null:u(n.Cb,160)}function At(n){return n.Db>>16!=11?null:u(n.Cb,33)}function lMn(n,e){var t;return t=n.Yg(e),t>=0?n.lh(t):Ox(n,e)}function aMn(n,e){var t;return t=new iW(e),dxn(t,n),new du(t)}function ZW(n){var e;return e=n.d,e=n.si(n.f),me(n,e),e.Ob()}function dMn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function i$(n,e){return j.Math.abs(n)0}function bMn(){this.a=new Sh,this.e=new fi,this.g=0,this.i=0}function wMn(n){this.a=n,this.b=F(lJn,q,1944,n.e.length,0,2)}function r$(n,e,t){var i;i=tDn(n,e,t),n.b=new tT(i.c.length)}function ef(){ef=N,Ja=new nz(hN,0),kf=new nz("UP",1)}function aC(){aC=N,kK=new rz(PHn,0),Ton=new rz("FAN",1)}function dC(){dC=N,dH=new we,$y=new we,Ere(Azn,new z2n)}function rle(n){if(n.p!=0)throw T(new fu);return b5(n.f,0)}function cle(n){if(n.p!=0)throw T(new fu);return b5(n.k,0)}function gMn(n){return n.Db>>16!=3?null:u(n.Cb,147)}function y3(n){return n.Db>>16!=6?null:u(n.Cb,235)}function eb(n){return n.Db>>16!=17?null:u(n.Cb,26)}function pMn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.le(e))}function ule(n,e){var t;return t=n.a.get(e),t??new Array}function sle(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),S6(n,t)}function kr(n,e,t){return e==null?_c(n.f,null,t):Gd(n.g,e,t)}function _5(n,e,t,i,r,c){return new Lh(n.e,e,n.aj(),t,i,r,c)}function P8(n,e,t){return n.a=Yu(n.a,0,e)+(""+t)+r8(n.a,e),n}function ole(n,e,t){return W(n.a,(QE(),ex(e,t),new bd(e,t))),n}function nX(n){return _z(n.c),n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function vMn(n){return _z(n.e),n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function Ei(n,e){n.d&&Qc(n.d.e,n),n.d=e,n.d&&W(n.d.e,n)}function Hi(n,e){n.c&&Qc(n.c.g,n),n.c=e,n.c&&W(n.c.g,n)}function yr(n,e){n.c&&Qc(n.c.a,n),n.c=e,n.c&&W(n.c.a,n)}function Hr(n,e){n.i&&Qc(n.i.j,n),n.i=e,n.i&&W(n.i.j,n)}function mMn(n,e,t){this.a=e,this.c=n,this.b=(pe(t),new du(t))}function kMn(n,e,t){this.a=e,this.c=n,this.b=(pe(t),new du(t))}function yMn(n,e){this.a=n,this.c=Qr(this.a),this.b=new uC(e)}function fle(n){var e;return Ta(n),e=new fi,gt(n,new Vvn(e))}function tb(n,e){if(n<0||n>e)throw T(new vr(cnn+n+unn+e))}function eX(n,e){return lCn(n.a,e)?TW(n,u(e,22).g,null):null}function hle(n){return yF(),qn(),u(n.a,81).d.e!=0}function jMn(){jMn=N,azn=Fe((aj(),A(M(lzn,1),z,538,0,[fR])))}function EMn(){EMn=N,YQn=ju(new hi,(Qi(),Ir),(rr(),Kk))}function tX(){tX=N,ZQn=ju(new hi,(Qi(),Ir),(rr(),Kk))}function CMn(){CMn=N,eJn=ju(new hi,(Qi(),Ir),(rr(),Kk))}function TMn(){TMn=N,gJn=Ze(new hi,(Qi(),Ir),(rr(),km))}function Zu(){Zu=N,mJn=Ze(new hi,(Qi(),Ir),(rr(),km))}function MMn(){MMn=N,kJn=Ze(new hi,(Qi(),Ir),(rr(),km))}function c$(){c$=N,TJn=Ze(new hi,(Qi(),Ir),(rr(),km))}function AMn(){AMn=N,lYn=ju(new hi,(c4(),Gm),(k6(),lK))}function aa(n,e,t,i){this.c=n,this.d=i,s$(this,e),o$(this,t)}function M2(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function u$(n){this.a=j.Math.cos(n),this.b=j.Math.sin(n)}function s$(n,e){n.a&&Qc(n.a.k,n),n.a=e,n.a&&W(n.a.k,n)}function o$(n,e){n.b&&Qc(n.b.f,n),n.b=e,n.b&&W(n.b.f,n)}function SMn(n,e){mhe(n,n.b,n.c),u(n.b.b,65),e&&u(e.b,65).b}function lle(n,e){vQ(n,e),I(n.Cb,88)&&yb(Iu(u(n.Cb,88)),2)}function f$(n,e){I(n.Cb,88)&&yb(Iu(u(n.Cb,88)),4),Ic(n,e)}function bC(n,e){I(n.Cb,179)&&(u(n.Cb,179).tb=null),Ic(n,e)}function mc(n,e){return er(),R$(e)?new IE(e,n):new i8(e,n)}function ale(n,e){var t,i;t=e.c,i=t!=null,i&&j2(n,new Z0(e.c))}function PMn(n){var e,t;return t=(Qp(),e=new ud,e),O3(t,n),t}function IMn(n){var e,t;return t=(Qp(),e=new ud,e),O3(t,n),t}function OMn(n,e){var t;return t=new Rs(n),e.c[e.c.length]=t,t}function DMn(n,e){var t;return t=u(ab(T2(n.a),e),14),t?t.gc():0}function $Mn(n){var e;return Ta(n),e=(Ow(),Ow(),Nin),qC(n,e)}function FMn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function iX(n,e){tie.call(this,new s2(sb(n))),is(e,W_n),this.a=e}function ch(n,e,t){KDn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function xMn(n,e,t){var i;KDn(e,t,n.c.length),i=t-e,AG(n.c,e,i)}function dle(n,e){Dyn(n,ge(ci(cl(e,24),FM)),ge(ci(e,FM)))}function Ln(n,e){if(n<0||n>=e)throw T(new vr(cnn+n+unn+e))}function Te(n,e){if(n<0||n>=e)throw T(new wG(cnn+n+unn+e))}function xn(n,e){this.b=(_n(n),n),this.a=e&Ib?e:e|64|Nf}function LMn(n){dyn(this),Wmn(this.a,KV(j.Math.max(8,n))<<1)}function tf(n){return Gr(A(M(ai,1),q,8,0,[n.i.n,n.n,n.a]))}function ble(){return hf(),A(M(Nu,1),z,132,0,[Win,hs,Rb])}function wle(){return _o(),A(M(_b,1),z,232,0,[Zr,Fc,nc])}function gle(){return Cu(),A(M(Qzn,1),z,461,0,[Xf,Ol,Co])}function ple(){return Jc(),A(M(Yzn,1),z,462,0,[Wo,Dl,To])}function vle(){return qd(),A(M(zrn,1),z,423,0,[yg,Grn,qR])}function mle(){return W5(),A(M(Krn,1),z,379,0,[NR,LR,BR])}function kle(){return i6(),A(M(Gsn,1),z,378,0,[J_,qsn,oP])}function yle(){return F2(),A(M(Kcn,1),z,314,0,[ap,qk,_cn])}function jle(){return VC(),A(M(qcn,1),z,337,0,[Hcn,DS,o_])}function Ele(){return ya(),A(M(aXn,1),z,450,0,[l_,cv,Tg])}function Cle(){return Kd(),A(M(YR,1),z,361,0,[g0,Fl,w0])}function Tle(){return Nh(),A(M(kXn,1),z,303,0,[zk,Ag,dp])}function Mle(){return q3(),A(M(y_,1),z,292,0,[m_,k_,Gk])}function Ale(){return ur(),A(M(zQn,1),z,452,0,[Bm,Au,xc])}function Sle(){return Rh(),A(M(Zsn,1),z,339,0,[Nl,Ysn,tK])}function Ple(){return oT(),A(M(ion,1),z,375,0,[eon,cK,ton])}function Ile(){return dT(),A(M(hon,1),z,377,0,[fK,pv,ew])}function Ole(){return Q3(),A(M(uon,1),z,336,0,[sK,con,Rm])}function Dle(){return uT(),A(M(fon,1),z,338,0,[oon,oK,son])}function $le(){return _d(),A(M(fJn,1),z,454,0,[ry,_m,aP])}function Fle(){return CT(),A(M(gYn,1),z,442,0,[CK,jK,EK])}function xle(){return f7(),A(M(Fon,1),z,380,0,[CP,Don,$on])}function Lle(){return ET(),A(M(Yon,1),z,381,0,[Jon,IK,Qon])}function Nle(){return sT(),A(M(Xon,1),z,293,0,[PK,Won,Uon])}function Ble(){return w7(),A(M(OK,1),z,437,0,[AP,SP,PP])}function Rle(){return _h(),A(M(Khn,1),z,334,0,[HP,F1,i9])}function _le(){return sf(),A(M(Phn,1),z,272,0,[jv,cw,Ev])}function Kle(n,e){return o9e(n,e,I(e,99)&&(u(e,18).Bb&Yi)!=0)}function Hle(n,e,t){var i;return i=O6(n,e,!1),i.b<=e&&i.a<=t}function NMn(n,e,t){var i;i=new Jwn,i.b=e,i.a=t,++e.b,W(n.d,i)}function qle(n,e){var t;return t=(_n(n),n).g,Yz(!!t),_n(e),t(e)}function rX(n,e){var t,i;return i=d3(n,e),t=n.a.Zc(i),new Y8n(n,t)}function Gle(n){return n.Db>>16!=6?null:u(Fx(n),235)}function zle(n){if(n.p!=2)throw T(new fu);return ge(n.f)&Ut}function Ule(n){if(n.p!=2)throw T(new fu);return ge(n.k)&Ut}function Wle(n){return n.a==(T3(),uI)&&Ste(n,C9e(n.g,n.b)),n.a}function A2(n){return n.d==(T3(),uI)&&Ite(n,pke(n.g,n.b)),n.d}function y(n){return ne(n.ai?1:0}function BMn(n,e){var t,i;return t=F$(e),i=t,u(te(n.c,i),19).a}function RMn(n,e){var t;for(t=n+"";t.length0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function rAn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function rae(n){return!!n.a&&Ou(n.a.a).i!=0&&!(n.b&&YF(n.b))}function cae(n){return!!n.u&&bc(n.u.a).i!=0&&!(n.n&&JF(n.n))}function cAn(n){return gD(n.e.Hd().gc()*n.c.Hd().gc(),16,new tvn(n))}function uae(n,e){return xCn(eu(n.q.getTime()),eu(e.q.getTime()))}function xf(n){return u(lf(n,F(GR,MN,17,n.c.length,0,1)),474)}function I8(n){return u(lf(n,F(vh,E1,10,n.c.length,0,1)),193)}function sae(n){return Zu(),!Xi(n)&&!(!Xi(n)&&n.c.i.c==n.d.i.c)}function uAn(n,e,t){var i;i=(pe(n),new du(n)),N3e(new mMn(i,e,t))}function O8(n,e,t){var i;i=(pe(n),new du(n)),B3e(new kMn(i,e,t))}function sAn(n,e){var t;return t=1-e,n.a[t]=eT(n.a[t],t),eT(n,e)}function oAn(n,e){var t;n.e=new oG,t=Cb(e),bi(t,n.c),eBn(n,t,0)}function Ci(n,e,t,i){var r;r=new XH,r.a=e,r.b=t,r.c=i,Ke(n.a,r)}function Z(n,e,t,i){var r;r=new XH,r.a=e,r.b=t,r.c=i,Ke(n.b,r)}function po(n){var e,t,i;return e=new HCn,t=Zx(e,n),UEe(e),i=t,i}function hX(){var n,e,t;return e=(t=(n=new ud,n),t),W(M1n,e),e}function pC(n){return n.j.c=F(Zn,rn,1,0,5,1),KW(n.c),Khe(n.a),n}function $w(n){return Qv(),I(n.g,10)?u(n.g,10):null}function oae(n){return Iw(n).dc()?!1:(sce(n,new Np),!0)}function fae(n){if(!("stack"in n))try{throw n}catch{}return n}function D8(n,e){if(n<0||n>=e)throw T(new vr(j6e(n,e)));return n}function fAn(n,e,t){if(n<0||et)throw T(new vr(W5e(n,e,t)))}function d$(n,e){if(ri(n.a,e),e.d)throw T(new _r(wKn));e.d=n}function b$(n,e){if(e.$modCount!=n.$modCount)throw T(new vs)}function hAn(n,e){return I(e,42)?ix(n.a,u(e,42)):!1}function lAn(n,e){return I(e,42)?ix(n.a,u(e,42)):!1}function aAn(n,e){return I(e,42)?ix(n.a,u(e,42)):!1}function hae(n,e){return n.a<=n.b?(e.ud(n.a++),!0):!1}function $d(n){var e;return $r(n)?(e=n,e==-0?0:e):m0e(n)}function vC(n){var e;return fl(n),e=new fln,vw(n.a,new Wvn(e)),e}function dAn(n){var e;return fl(n),e=new oln,vw(n.a,new Uvn(e)),e}function Ii(n,e){this.a=n,$v.call(this,n),tb(e,n.gc()),this.b=e}function lX(n){this.e=n,this.b=this.e.a.entries(),this.a=new Array}function lae(n){return gD(n.e.Hd().gc()*n.c.Hd().gc(),273,new evn(n))}function mC(n){return new Pc((is(n,AL),KC(qi(qi(5,n),n/10|0))))}function bAn(n){return u(lf(n,F(FWn,UKn,11,n.c.length,0,1)),1943)}function aae(n,e,t){return t.f.c.length>0?SW(n.a,e,t):SW(n.b,e,t)}function dae(n,e,t){n.d&&Qc(n.d.e,n),n.d=e,n.d&&Q0(n.d.e,t,n)}function w$(n,e){uTe(e,n),WU(n.d),WU(u(k(n,(nn(),eP)),207))}function H5(n,e){cTe(e,n),UU(n.d),UU(u(k(n,(nn(),eP)),207))}function Fd(n,e){var t,i;return t=Dh(n,e),i=null,t&&(i=t.fe()),i}function j3(n,e){var t,i;return t=ub(n,e),i=null,t&&(i=t.ie()),i}function q5(n,e){var t,i;return t=Dh(n,e),i=null,t&&(i=t.ie()),i}function $h(n,e){var t,i;return t=Dh(n,e),i=null,t&&(i=tY(t)),i}function bae(n,e,t){var i;return i=i4(t),gM(n.g,i,e),gM(n.i,e,t),e}function wae(n,e,t){var i;i=q2e();try{return kue(n,e,t)}finally{Mae(i)}}function wAn(n){var e;e=n.Wg(),this.a=I(e,69)?u(e,69).Zh():e.Kc()}function hi(){P9n.call(this),this.j.c=F(Zn,rn,1,0,5,1),this.a=-1}function aX(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function gAn(n,e,t,i){this.e=i,this.d=null,this.c=n,this.a=e,this.b=t}function dX(n,e,t){this.d=new r6n(this),this.e=n,this.i=e,this.f=t}function kC(){kC=N,j_=new QG(I4,0),oun=new QG("TOP_LEFT",1)}function pAn(){pAn=N,aon=aTn(Q(1),Q(4)),lon=aTn(Q(1),Q(2))}function vAn(){vAn=N,uZn=Fe((Ij(),A(M(cZn,1),z,551,0,[$K])))}function mAn(){mAn=N,rZn=Fe((Pj(),A(M(lfn,1),z,482,0,[DK])))}function kAn(){kAn=N,CZn=Fe((Jv(),A(M(Dfn,1),z,530,0,[hy])))}function yAn(){yAn=N,IUn=Fe((Aj(),A(M(krn,1),z,481,0,[SR])))}function gae(){return Hd(),A(M(EUn,1),z,406,0,[Ok,Ik,MR,AR])}function pae(){return FC(),A(M(WA,1),z,297,0,[vR,qin,Gin,zin])}function vae(){return d6(),A(M(SUn,1),z,394,0,[Lk,YA,ZA,Nk])}function mae(){return K2(),A(M(TUn,1),z,323,0,[$k,Dk,Fk,xk])}function kae(){return G3(),A(M(jWn,1),z,405,0,[b0,Hb,Kb,kg])}function yae(){return aT(),A(M(KWn,1),z,360,0,[QR,TS,MS,Hk])}function jAn(n,e,t,i){return I(t,54)?new ojn(n,e,t,i):new pW(n,e,t,i)}function jae(){return ff(),A(M(QWn,1),z,411,0,[lp,nv,ev,JR])}function Eae(n){var e;return n.j==(J(),ae)&&(e=GLn(n),au(e,Vn))}function Cae(n,e){var t;t=e.a,Hi(t,e.c.d),Ei(t,e.d.d),fb(t.a,n.n)}function EAn(n,e){return u(yd(KE(u(ct(n.k,e),15).Oc(),jg)),113)}function CAn(n,e){return u(yd(HE(u(ct(n.k,e),15).Oc(),jg)),113)}function Tae(n){return new xn(jbe(u(n.a.dd(),14).gc(),n.a.cd()),16)}function E3(n){return I(n,14)?u(n,14).dc():!n.Kc().Ob()}function S2(n){return Qv(),I(n.g,145)?u(n.g,145):null}function TAn(n){if(n.e.g!=n.b)throw T(new vs);return!!n.c&&n.d>0}function Re(n){return ne(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function bX(n,e){_n(e),Mt(n.a,n.c,e),n.c=n.c+1&n.a.length-1,MFn(n)}function ll(n,e){_n(e),n.b=n.b-1&n.a.length-1,Mt(n.a,n.b,e),MFn(n)}function MAn(n,e){var t;for(t=n.j.c.length;t0&&gc(n.g,0,e,0,n.i),e}function IAn(n,e){$j();var t;return t=u(te(eI,n),55),!t||t.wj(e)}function Bae(n){if(n.p!=1)throw T(new fu);return ge(n.f)<<24>>24}function Rae(n){if(n.p!=1)throw T(new fu);return ge(n.k)<<24>>24}function _ae(n){if(n.p!=7)throw T(new fu);return ge(n.k)<<16>>16}function Kae(n){if(n.p!=7)throw T(new fu);return ge(n.f)<<16>>16}function Fh(n){var e;for(e=0;n.Ob();)n.Pb(),e=qi(e,1);return KC(e)}function OAn(n,e){var t;return t=new R0,n.xd(t),t.a+="..",e.yd(t),t.a}function Hae(n,e,t){var i;i=u(te(n.g,t),57),W(n.a.c,new Pi(e,i))}function qae(n,e,t){return TD(Y(Vr(Ar(n.f,e))),Y(Vr(Ar(n.f,t))))}function yC(n,e,t){return vM(n,e,t,I(e,99)&&(u(e,18).Bb&Yi)!=0)}function Gae(n,e,t){return m4(n,e,t,I(e,99)&&(u(e,18).Bb&Yi)!=0)}function zae(n,e,t){return b9e(n,e,t,I(e,99)&&(u(e,18).Bb&Yi)!=0)}function pX(n,e){return n==(Qn(),ti)&&e==ti?4:n==ti||e==ti?8:32}function DAn(n,e){return B(e)===B(n)?"(this Map)":e==null?iu:Lr(e)}function Uae(n,e){return u(e==null?Vr(Ar(n.f,null)):n5(n.g,e),281)}function $An(n,e,t){var i;return i=i4(t),it(n.b,i,e),it(n.c,e,t),e}function FAn(n,e){var t;for(t=e;t;)U0(n,t.i,t.j),t=At(t);return n}function vX(n,e){var t;return t=C8(f3(new x$(n,e))),DE(new x$(n,e)),t}function uh(n,e){er();var t;return t=u(n,66).Mj(),M5e(t,e),t.Ok(e)}function Wae(n,e,t,i,r){var c;c=m9e(r,t,i),W(e,p6e(r,c)),o5e(n,r,e)}function xAn(n,e,t){n.i=0,n.e=0,e!=t&&(uDn(n,e,t),cDn(n,e,t))}function mX(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+Tl),S6(n,t)}function Xae(n,e,t){if(t){var i=t.ee();n.a[e]=i(t)}else delete n.a[e]}function g$(n,e,t){if(t){var i=t.ee();t=i(t)}else t=void 0;n.a[e]=t}function LAn(n){if(n<0)throw T(new K9n("Negative array size: "+n))}function bc(n){return n.n||(Iu(n),n.n=new wCn(n,ar,n),Mr(n)),n.n}function G5(n){return ne(n.a=0&&n.a[t]===e[t];t--);return t<0}function KAn(n,e){V3();var t;return t=n.j.g-e.j.g,t!=0?t:0}function HAn(n,e){return _n(e),n.a!=null?$fe(e.Kb(n.a)):UA}function jC(n){var e;return n?new iW(n):(e=new Sh,nF(e,n),e)}function es(n,e){var t;return e.b.Kb(FPn(n,e.c.Ee(),(t=new Jvn(e),t)))}function EC(n){_J(),Dyn(this,ge(ci(cl(n,24),FM)),ge(ci(n,FM)))}function qAn(){qAn=N,Gzn=Fe(($T(),A(M(Jin,1),z,428,0,[yR,Qin])))}function GAn(){GAn=N,zzn=Fe((RC(),A(M(Zin,1),z,427,0,[Yin,jR])))}function zAn(){zAn=N,WUn=Fe((_C(),A(M(Arn,1),z,424,0,[$R,tS])))}function UAn(){UAn=N,BWn=Fe((B3(),A(M(NWn,1),z,511,0,[_k,UR])))}function WAn(){WAn=N,lXn=Fe((V8(),A(M(Wcn,1),z,419,0,[$S,Ucn])))}function XAn(){XAn=N,wXn=Fe((K8(),A(M(Qcn,1),z,479,0,[Vcn,xS])))}function VAn(){VAn=N,XQn=Fe((x8(),A(M(ron,1),z,376,0,[uK,iy])))}function QAn(){QAn=N,GQn=Fe((z8(),A(M(non,1),z,421,0,[iK,rK])))}function JAn(){JAn=N,sXn=Fe((OC(),A(M(Rcn,1),z,422,0,[Bcn,s_])))}function YAn(){YAn=N,jXn=Fe((kC(),A(M(fun,1),z,420,0,[j_,oun])))}function ZAn(){ZAn=N,RJn=Fe((No(),A(M(BJn,1),z,520,0,[tw,Bl])))}function nSn(){nSn=N,wJn=Fe((z5(),A(M(bJn,1),z,523,0,[Hm,Km])))}function eSn(){eSn=N,jJn=Fe((Ff(),A(M(yJn,1),z,516,0,[M0,I1])))}function tSn(){tSn=N,CJn=Fe((ef(),A(M(EJn,1),z,515,0,[Ja,kf])))}function iSn(){iSn=N,UJn=Fe((Id(),A(M(zJn,1),z,455,0,[Rl,Lg])))}function rSn(){rSn=N,hYn=Fe((gC(),A(M(Son,1),z,425,0,[yK,Aon])))}function cSn(){cSn=N,wYn=Fe((iT(),A(M(Pon,1),z,495,0,[EP,mv])))}function uSn(){uSn=N,fYn=Fe((aC(),A(M(Mon,1),z,480,0,[kK,Ton])))}function sSn(){sSn=N,vYn=Fe(($C(),A(M(Oon,1),z,426,0,[Ion,TK])))}function oSn(){oSn=N,TZn=Fe((c7(),A(M(Ffn,1),z,429,0,[DP,$fn])))}function fSn(){fSn=N,sZn=Fe((L8(),A(M(afn,1),z,430,0,[FK,IP])))}function z5(){z5=N,Hm=new ZG("UPPER",0),Km=new ZG("LOWER",1)}function Yae(n,e){var t;t=new r2,la(t,"x",e.a),la(t,"y",e.b),j2(n,t)}function Zae(n,e){var t;t=new r2,la(t,"x",e.a),la(t,"y",e.b),j2(n,t)}function nde(n,e){var t,i;i=!1;do t=JOn(n,e),i=i|t;while(t);return i}function jX(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function hSn(n,e){var t;for(t=e;t;)U0(n,-t.i,-t.j),t=At(t);return n}function $i(n,e){var t,i;for(_n(e),i=n.Kc();i.Ob();)t=i.Pb(),e.td(t)}function lSn(n,e){var t;return t=e.cd(),new bd(t,n.e.pc(t,u(e.dd(),14)))}function Kt(n,e,t,i){var r;r=new aI,r.c=e,r.b=t,r.a=i,i.b=t.a=r,++n.b}function Es(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function ede(n,e,t){return u(e==null?_c(n.f,null,t):Gd(n.g,e,t),281)}function k$(n){return n.c&&n.d?cX(n.c)+"->"+cX(n.d):"e_"+md(n)}function C3(n,e){return(Ta(n),Wv(new $n(n,new UX(e,n.a)))).sd(V4)}function tde(){return Qi(),A(M(Hrn,1),z,356,0,[Vf,$l,Hc,Cc,Ir])}function ide(){return J(),A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn])}function rde(n){return gj(),function(){return wae(n,this,arguments)}}function cde(){return Date.now?Date.now():new Date().getTime()}function Xi(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function aSn(n){if(!n.c.Sb())throw T(new ic);return n.a=!0,n.c.Ub()}function $8(n){n.i=0,z9(n.b,null),z9(n.c,null),n.a=null,n.e=null,++n.g}function EX(n){are.call(this,n==null?iu:Lr(n),I(n,78)?u(n,78):null)}function dSn(n){B_n(),Nmn(this),this.a=new Ct,QV(this,n),Ke(this.a,n)}function bSn(){RO(this),this.b=new fn(Ft,Ft),this.a=new fn(Vt,Vt)}function wSn(n,e){this.c=0,this.b=e,qkn.call(this,n,17493),this.a=this.c}function y$(n){CC(),!pf&&(this.c=n,this.e=!0,this.a=new X)}function CC(){CC=N,pf=!0,Fzn=!1,xzn=!1,Nzn=!1,Lzn=!1}function CX(n,e){return I(e,149)?An(n.c,u(e,149).c):!1}function TX(n,e){var t;return t=0,n&&(t+=n.f.a/2),e&&(t+=e.f.a/2),t}function j$(n,e){var t;return t=u(xd(n.d,e),23),t||u(xd(n.e,e),23)}function gSn(n){this.b=n,ie.call(this,n),this.a=u(Rn(this.b.a,4),126)}function pSn(n){this.b=n,w2.call(this,n),this.a=u(Rn(this.b.a,4),126)}function Iu(n){return n.t||(n.t=new Amn(n),s6(new _9n(n),0,n.t)),n.t}function ude(){return sr(),A(M(e9,1),z,103,0,[mh,Ao,Zs,Jh,Yh])}function sde(){return qw(),A(M(c9,1),z,249,0,[Hl,Cy,Hhn,r9,qhn])}function ode(){return Ho(),A(M($1,1),z,175,0,[Xn,pi,Yf,Ya,D1])}function fde(){return P7(),A(M(gfn,1),z,316,0,[dfn,xK,wfn,LK,bfn])}function hde(){return b6(),A(M(Usn,1),z,315,0,[zsn,nK,eK,Lm,Nm])}function lde(){return Pa(),A(M(zcn,1),z,335,0,[f_,Gcn,h_,Em,jm])}function ade(){return g4(),A(M(eZn,1),z,355,0,[Ng,Ep,Qm,Vm,Jm])}function dde(){return Vw(),A(M(YWn,1),z,363,0,[SS,IS,OS,PS,AS])}function bde(){return Ss(),A(M(jun,1),z,163,0,[Qk,Sm,xl,Pm,Ub])}function T3(){T3=N;var n,e;cI=(Qp(),e=new fj,e),uI=(n=new BI,n)}function vSn(n){var e;return n.c||(e=n.r,I(e,88)&&(n.c=u(e,26))),n.c}function wde(n){return n.e=3,n.d=n.Yb(),n.e!=2?(n.e=0,!0):!1}function E$(n){var e,t,i;return e=n&Lu,t=n>>22&Lu,i=n<0?Wh:0,Bc(e,t,i)}function gde(n){var e,t,i,r;for(t=n,i=0,r=t.length;i0?g$n(n,e):BNn(n,-e)}function MX(n,e){return e==0||n.e==0?n:e>0?BNn(n,e):g$n(n,-e)}function ve(n){if(Se(n))return n.c=n.a,n.a.Pb();throw T(new ic)}function kSn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Qn(),Xt)&&t.k==Xt}function C$(n){var e;return e=new Pd,Sr(e,n),H(e,(nn(),Tr),null),e}function T$(n,e,t){var i;return i=n.Yg(e),i>=0?n._g(i,t,!0):Yd(n,e,t)}function AX(n,e,t,i){var r;for(r=0;re)throw T(new vr(fY(n,e,"index")));return n}function M$(n,e,t,i){var r;return r=F(be,Le,25,e,15,1),Pve(r,n,e,t,i),r}function vde(n,e){var t;t=n.q.getHours()+(e/60|0),n.q.setMinutes(e),S6(n,t)}function mde(n,e){return j.Math.min(al(e.a,n.d.d.c),al(e.b,n.d.d.c))}function O2(n,e){return mi(e)?e==null?MY(n.f,null):$On(n.g,e):MY(n.f,e)}function uf(n){this.c=n,this.a=new E(this.c.a),this.b=new E(this.c.b)}function TC(){this.e=new X,this.c=new X,this.d=new X,this.b=new X}function TSn(){this.g=new zq,this.b=new zq,this.a=new X,this.k=new X}function MSn(n,e,t){this.a=n,this.c=e,this.d=t,W(e.e,this),W(t.b,this)}function ASn(n,e){Hkn.call(this,e.rd(),e.qd()&-6),_n(n),this.a=n,this.b=e}function SSn(n,e){qkn.call(this,e.rd(),e.qd()&-6),_n(n),this.a=n,this.b=e}function FX(n,e){FO.call(this,e.rd(),e.qd()&-6),_n(n),this.a=n,this.b=e}function MC(n,e,t){this.a=n,this.b=e,this.c=t,W(n.t,this),W(e.i,this)}function AC(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function SC(){SC=N,Ym=new kt("org.eclipse.elk.labels.labelManager")}function PSn(){PSn=N,$cn=new ii("separateLayerConnections",(aT(),QR))}function No(){No=N,tw=new tz("REGULAR",0),Bl=new tz("CRITICAL",1)}function x8(){x8=N,uK=new YG("STACKED",0),iy=new YG("SEQUENCED",1)}function L8(){L8=N,FK=new oz("FIXED",0),IP=new oz("CENTER_NODE",1)}function kde(n,e){var t;return t=CEe(n,e),n.b=new tT(t.c.length),Lje(n,t)}function yde(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].$c(t),133),i.dd()}function ISn(n){var e;return n.a||(e=n.r,I(e,148)&&(n.a=u(e,148))),n.a}function xX(n){if(n.a){if(n.e)return xX(n.e)}else return n;return null}function jde(n,e){return n.pe.p?-1:0}function PC(n,e){return _n(e),n.c=0,"Initial capacity must not be negative")}function $Sn(){$Sn=N,Vzn=Fe((_o(),A(M(_b,1),z,232,0,[Zr,Fc,nc])))}function FSn(){FSn=N,Jzn=Fe((Cu(),A(M(Qzn,1),z,461,0,[Xf,Ol,Co])))}function xSn(){xSn=N,Zzn=Fe((Jc(),A(M(Yzn,1),z,462,0,[Wo,Dl,To])))}function LSn(){LSn=N,Bzn=Fe((hf(),A(M(Nu,1),z,132,0,[Win,hs,Rb])))}function NSn(){NSn=N,bWn=Fe((W5(),A(M(Krn,1),z,379,0,[NR,LR,BR])))}function BSn(){BSn=N,PWn=Fe((qd(),A(M(zrn,1),z,423,0,[yg,Grn,qR])))}function RSn(){RSn=N,oXn=Fe((F2(),A(M(Kcn,1),z,314,0,[ap,qk,_cn])))}function _Sn(){_Sn=N,fXn=Fe((VC(),A(M(qcn,1),z,337,0,[Hcn,DS,o_])))}function KSn(){KSn=N,dXn=Fe((ya(),A(M(aXn,1),z,450,0,[l_,cv,Tg])))}function HSn(){HSn=N,rXn=Fe((Kd(),A(M(YR,1),z,361,0,[g0,Fl,w0])))}function qSn(){qSn=N,yXn=Fe((Nh(),A(M(kXn,1),z,303,0,[zk,Ag,dp])))}function GSn(){GSn=N,mXn=Fe((q3(),A(M(y_,1),z,292,0,[m_,k_,Gk])))}function zSn(){zSn=N,RQn=Fe((i6(),A(M(Gsn,1),z,378,0,[J_,qsn,oP])))}function USn(){USn=N,WQn=Fe((oT(),A(M(ion,1),z,375,0,[eon,cK,ton])))}function WSn(){WSn=N,qQn=Fe((Rh(),A(M(Zsn,1),z,339,0,[Nl,Ysn,tK])))}function XSn(){XSn=N,UQn=Fe((ur(),A(M(zQn,1),z,452,0,[Bm,Au,xc])))}function VSn(){VSn=N,JQn=Fe((dT(),A(M(hon,1),z,377,0,[fK,pv,ew])))}function QSn(){QSn=N,VQn=Fe((Q3(),A(M(uon,1),z,336,0,[sK,con,Rm])))}function JSn(){JSn=N,QQn=Fe((uT(),A(M(fon,1),z,338,0,[oon,oK,son])))}function YSn(){YSn=N,hJn=Fe((_d(),A(M(fJn,1),z,454,0,[ry,_m,aP])))}function ZSn(){ZSn=N,pYn=Fe((CT(),A(M(gYn,1),z,442,0,[CK,jK,EK])))}function nPn(){nPn=N,mYn=Fe((f7(),A(M(Fon,1),z,380,0,[CP,Don,$on])))}function ePn(){ePn=N,LYn=Fe((ET(),A(M(Yon,1),z,381,0,[Jon,IK,Qon])))}function tPn(){tPn=N,xYn=Fe((sT(),A(M(Xon,1),z,293,0,[PK,Won,Uon])))}function iPn(){iPn=N,iZn=Fe((w7(),A(M(OK,1),z,437,0,[AP,SP,PP])))}function rPn(){rPn=N,une=Fe((_h(),A(M(Khn,1),z,334,0,[HP,F1,i9])))}function cPn(){cPn=N,tne=Fe((sf(),A(M(Phn,1),z,272,0,[jv,cw,Ev])))}function Pde(){return Ti(),A(M(Ghn,1),z,98,0,[ql,jf,Tv,td,jh,Ac])}function wa(n,e){return!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),NF(n.o,e)}function Ide(n){return!n.g&&(n.g=new Qy),!n.g.d&&(n.g.d=new Cmn(n)),n.g.d}function Ode(n){return!n.g&&(n.g=new Qy),!n.g.a&&(n.g.a=new Tmn(n)),n.g.a}function Dde(n){return!n.g&&(n.g=new Qy),!n.g.b&&(n.g.b=new Emn(n)),n.g.b}function N8(n){return!n.g&&(n.g=new Qy),!n.g.c&&(n.g.c=new Mmn(n)),n.g.c}function $de(n,e,t){var i,r;for(r=new H3(e,n),i=0;it||e=0?n._g(t,!0,!0):Yd(n,e,!0)}function Qde(n,e){return Zt(K(Y(k(n,(G(),k0)))),K(Y(k(e,k0))))}function aPn(){aPn=N,aYn=Xd(Xd(Dj(new hi,(c4(),qm)),(k6(),pP)),aK)}function Jde(n,e,t){var i;return i=tDn(n,e,t),n.b=new tT(i.c.length),JY(n,i)}function Yde(n){if(n.b<=0)throw T(new ic);return--n.b,n.a-=n.c.c,Q(n.a)}function Zde(n){var e;if(!n.a)throw T(new gTn);return e=n.a,n.a=At(n.a),e}function n0e(n){for(;!n.a;)if(!nEn(n.c,new Xvn(n)))return!1;return!0}function $2(n){var e;return pe(n),I(n,198)?(e=u(n,198),e):new dvn(n)}function e0e(n){DC(),u(n.We((Xe(),rw)),174).Fc((Tu(),Ty)),n.Ye(eH,null)}function DC(){DC=N,SZn=new n2n,IZn=new e2n,PZn=Rwe((Xe(),eH),SZn,_l,IZn)}function $C(){$C=N,Ion=new sz("LEAF_NUMBER",0),TK=new sz("NODE_SIZE",1)}function t0e(n,e,t){n.a=e,n.c=t,n.b.a.$b(),_s(n.d),n.e.a.c=F(Zn,rn,1,0,5,1)}function $$(n){n.a=F(be,Le,25,n.b+1,15,1),n.c=F(be,Le,25,n.b,15,1),n.d=0}function i0e(n,e){n.a.ue(e.d,n.b)>0&&(W(n.c,new QU(e.c,e.d,n.d)),n.b=e.d)}function zX(n,e){if(n.g==null||e>=n.i)throw T(new xO(e,n.i));return n.g[e]}function dPn(n,e,t){if(W3(n,t),t!=null&&!n.wj(t))throw T(new xI);return t}function bPn(n){var e;if(n.Ek())for(e=n.i-1;e>=0;--e)D(n,e);return gX(n)}function r0e(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function c0e(n,e){var t,i;return LAn(e),t=(i=n.slice(0,e),WX(i,n)),t.length=e,t}function S3(n,e,t,i){var r;i=(Ow(),i||Lin),r=n.slice(e,t),hY(r,n,e,t,-e,i)}function Cs(n,e,t,i,r){return e<0?Yd(n,t,i):u(t,66).Nj().Pj(n,n.yh(),e,i,r)}function u0e(n){return I(n,172)?""+u(n,172).a:n==null?null:Lr(n)}function s0e(n){return I(n,172)?""+u(n,172).a:n==null?null:Lr(n)}function wPn(n,e){if(e.a)throw T(new _r(wKn));ri(n.a,e),e.a=n,!n.j&&(n.j=e)}function UX(n,e){FO.call(this,e.rd(),e.qd()&-16449),_n(n),this.a=n,this.c=e}function gPn(n,e){var t,i;return i=e/n.c.Hd().gc()|0,t=e%n.c.Hd().gc(),D2(n,i,t)}function Cu(){Cu=N,Xf=new oO(Y2,0),Ol=new oO(I4,1),Co=new oO(Z2,2)}function FC(){FC=N,vR=new Lj("All",0),qin=new lyn,Gin=new Eyn,zin=new ayn}function pPn(){pPn=N,Dzn=Fe((FC(),A(M(WA,1),z,297,0,[vR,qin,Gin,zin])))}function vPn(){vPn=N,EWn=Fe((G3(),A(M(jWn,1),z,405,0,[b0,Hb,Kb,kg])))}function mPn(){mPn=N,CUn=Fe((Hd(),A(M(EUn,1),z,406,0,[Ok,Ik,MR,AR])))}function kPn(){kPn=N,MUn=Fe((K2(),A(M(TUn,1),z,323,0,[$k,Dk,Fk,xk])))}function yPn(){yPn=N,PUn=Fe((d6(),A(M(SUn,1),z,394,0,[Lk,YA,ZA,Nk])))}function jPn(){jPn=N,WJn=Fe((c4(),A(M(won,1),z,393,0,[gP,qm,uy,Gm])))}function EPn(){EPn=N,HWn=Fe((aT(),A(M(KWn,1),z,360,0,[QR,TS,MS,Hk])))}function CPn(){CPn=N,FYn=Fe((qT(),A(M(zon,1),z,340,0,[SK,qon,Gon,Hon])))}function TPn(){TPn=N,JWn=Fe((ff(),A(M(QWn,1),z,411,0,[lp,nv,ev,JR])))}function MPn(){MPn=N,_Qn=Fe((wb(),A(M(Z_,1),z,197,0,[fP,Y_,xg,Fg])))}function APn(){APn=N,Ene=Fe((Xu(),A(M(jne,1),z,396,0,[ws,Yhn,Jhn,Zhn])))}function SPn(){SPn=N,one=Fe((cs(),A(M(sne,1),z,285,0,[Ey,kh,Kl,jy])))}function PPn(){PPn=N,ine=Fe((Hh(),A(M(cH,1),z,218,0,[rH,yy,Cv,Sp])))}function IPn(){IPn=N,kne=Fe((AT(),A(M(Qhn,1),z,311,0,[oH,Whn,Vhn,Xhn])))}function OPn(){OPn=N,vne=Fe((Vu(),A(M(o9,1),z,374,0,[Ay,id,My,uw])))}function DPn(){DPn=N,mM(),F1n=Ft,Tee=Vt,x1n=new S9(Ft),Mee=new S9(Vt)}function K8(){K8=N,Vcn=new VG(Xh,0),xS=new VG("IMPROVE_STRAIGHTNESS",1)}function o0e(n,e){return h3(),W(n,new Pi(e,Q(e.e.c.length+e.g.c.length)))}function f0e(n,e){return h3(),W(n,new Pi(e,Q(e.e.c.length+e.g.c.length)))}function WX(n,e){return U8(e)!=10&&A(Du(e),e.hm,e.__elementTypeId$,U8(e),n),n}function Qc(n,e){var t;return t=Fr(n,e,0),t==-1?!1:(h1(n,t),!0)}function $Pn(n,e){var t;return t=u(O2(n.e,e),387),t?(ZU(t),t.e):null}function P3(n){var e;return $r(n)&&(e=0-n,!isNaN(e))?e:bl(z3(n))}function Fr(n,e,t){for(;t=0?BT(n,t,!0,!0):Yd(n,e,!0)}function YX(n,e){Qv();var t,i;return t=S2(n),i=S2(e),!!t&&!!i&&!V$n(t.k,i.k)}function a0e(n,e){Zc(n,e==null||jE((_n(e),e))||isNaN((_n(e),e))?0:(_n(e),e))}function d0e(n,e){nu(n,e==null||jE((_n(e),e))||isNaN((_n(e),e))?0:(_n(e),e))}function b0e(n,e){Rd(n,e==null||jE((_n(e),e))||isNaN((_n(e),e))?0:(_n(e),e))}function w0e(n,e){Bd(n,e==null||jE((_n(e),e))||isNaN((_n(e),e))?0:(_n(e),e))}function BPn(n){(this.q?this.q:(Pn(),Pn(),ph)).Ac(n.q?n.q:(Pn(),Pn(),ph))}function g0e(n,e){return I(e,99)&&u(e,18).Bb&Yi?new LO(e,n):new H3(e,n)}function p0e(n,e){return I(e,99)&&u(e,18).Bb&Yi?new LO(e,n):new H3(e,n)}function RPn(n,e){vrn=new Wy,AUn=e,gm=n,u(gm.b,65),BX(gm,vrn,null),DRn(gm)}function B$(n,e,t){var i;return i=n.g[e],k5(n,e,n.oi(e,t)),n.gi(e,t,i),n.ci(),i}function BC(n,e){var t;return t=n.Xc(e),t>=0?(n.$c(t),!0):!1}function R$(n){var e;return n.d!=n.r&&(e=qs(n),n.e=!!e&&e.Cj()==kGn,n.d=e),n.e}function _$(n,e){var t;for(pe(n),pe(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function xd(n,e){var t;return t=u(te(n.e,e),387),t?(Oyn(n,t),t.e):null}function _Pn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function qr(n,e){var t,i;return Ta(n),i=new FX(e,n.a),t=new iEn(i),new $n(n,t)}function ub(n,e){var t=n.a[e],i=(cF(),dR)[typeof t];return i?i(t):tQ(typeof t)}function v0e(n){switch(n.g){case 0:return nt;case 1:return-1;default:return 0}}function m0e(n){return mJ(n,(I3(),pin))<0?-xce(z3(n)):n.l+n.m*J2+n.h*$a}function U8(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function K$(n){var e;return e=n.b.c.length==0?null:un(n.b,0),e!=null&&J$(n,0),e}function KPn(n,e){for(;e[0]=0;)++e[0]}function W8(n,e){this.e=e,this.a=FOn(n),this.a<54?this.f=$d(n):this.c=m7(n)}function HPn(n,e,t,i){Je(),cd.call(this,26),this.c=n,this.a=e,this.d=t,this.b=i}function sh(n,e,t){var i,r;for(i=10,r=0;rn.a[i]&&(i=t);return i}function T0e(n,e){var t;return t=zd(n.e.c,e.e.c),t==0?Zt(n.e.d,e.e.d):t}function Fw(n,e){return e.e==0||n.e==0?W4:(a4(),Hx(n,e))}function M0e(n,e){if(!n)throw T(new Hn(P8e("Enum constant undefined: %s",e)))}function X5(){X5=N,MWn=new San,AWn=new Man,CWn=new $an,TWn=new Fan,SWn=new xan}function RC(){RC=N,Yin=new qG("BY_SIZE",0),jR=new qG("BY_SIZE_AND_SHAPE",1)}function _C(){_C=N,$R=new GG("EADES",0),tS=new GG("FRUCHTERMAN_REINGOLD",1)}function V8(){V8=N,$S=new XG("READING_DIRECTION",0),Ucn=new XG("ROTATION",1)}function GPn(){GPn=N,hXn=Fe((Pa(),A(M(zcn,1),z,335,0,[f_,Gcn,h_,Em,jm])))}function zPn(){zPn=N,KQn=Fe((b6(),A(M(Usn,1),z,315,0,[zsn,nK,eK,Lm,Nm])))}function UPn(){UPn=N,ZWn=Fe((Vw(),A(M(YWn,1),z,363,0,[SS,IS,OS,PS,AS])))}function WPn(){WPn=N,EXn=Fe((Ss(),A(M(jun,1),z,163,0,[Qk,Sm,xl,Pm,Ub])))}function XPn(){XPn=N,oZn=Fe((P7(),A(M(gfn,1),z,316,0,[dfn,xK,wfn,LK,bfn])))}function VPn(){VPn=N,OZn=Fe((Ho(),A(M($1,1),z,175,0,[Xn,pi,Yf,Ya,D1])))}function QPn(){QPn=N,tZn=Fe((g4(),A(M(eZn,1),z,355,0,[Ng,Ep,Qm,Vm,Jm])))}function JPn(){JPn=N,vWn=Fe((Qi(),A(M(Hrn,1),z,356,0,[Vf,$l,Hc,Cc,Ir])))}function YPn(){YPn=N,ene=Fe((sr(),A(M(e9,1),z,103,0,[mh,Ao,Zs,Jh,Yh])))}function ZPn(){ZPn=N,hne=Fe((qw(),A(M(c9,1),z,249,0,[Hl,Cy,Hhn,r9,qhn])))}function nIn(){nIn=N,dne=Fe((J(),A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn])))}function H$(n,e){var t;return t=u(te(n.a,e),134),t||(t=new pI,it(n.a,e,t)),t}function eIn(n){var e;return e=u(k(n,(G(),p0)),305),e?e.a==n:!1}function tIn(n){var e;return e=u(k(n,(G(),p0)),305),e?e.i==n:!1}function iIn(n,e){return _n(e),mW(n),n.d.Ob()?(e.td(n.d.Pb()),!0):!1}function KC(n){return fc(n,nt)>0?nt:fc(n,Bi)<0?Bi:ge(n)}function sb(n){return n<3?(is(n,J_n),n+1):n=0&&e=-.01&&n.a<=bf&&(n.a=0),n.b>=-.01&&n.b<=bf&&(n.b=0),n}function cIn(n,e){return e==(sD(),sD(),Pzn)?n.toLocaleLowerCase():n.toLowerCase()}function nV(n){return(n.i&2?"interface ":n.i&1?"":"class ")+(Ph(n),n.o)}function Er(n){var e,t;t=(e=new RI,e),me((!n.q&&(n.q=new V(co,n,11,10)),n.q),t)}function A0e(n,e){var t;return t=e>0?e-1:e,e8n(Kie(IIn(YU(new zp,t),n.n),n.j),n.k)}function S0e(n,e,t,i){var r;n.j=-1,EY(n,iY(n,e,t),(er(),r=u(e,66).Mj(),r.Ok(i)))}function uIn(n){this.g=n,this.f=new X,this.a=j.Math.min(this.g.c.c,this.g.d.c)}function sIn(n){this.b=new X,this.a=new X,this.c=new X,this.d=new X,this.e=n}function oIn(n,e){this.a=new we,this.e=new we,this.b=(i6(),oP),this.c=n,this.b=e}function fIn(n,e,t){kE.call(this),eV(this),this.a=n,this.c=t,this.b=e.d,this.f=e.e}function hIn(n){this.d=n,this.c=n.c.vc().Kc(),this.b=null,this.a=null,this.e=(aj(),fR)}function Ld(n){if(n<0)throw T(new Hn("Illegal Capacity: "+n));this.g=this.ri(n)}function P0e(n,e){if(0>n||n>e)throw T(new bG("fromIndex: 0, toIndex: "+n+tnn+e))}function I0e(n){var e;if(n.a==n.b.a)throw T(new ic);return e=n.a,n.c=e,n.a=n.a.e,e}function HC(n){var e;z0(!!n.c),e=n.c.a,Ts(n.d,n.c),n.b==n.c?n.b=e:--n.a,n.c=null}function qC(n,e){var t;return Ta(n),t=new DTn(n,n.a.rd(),n.a.qd()|4,e),new $n(n,t)}function O0e(n,e){var t,i;return t=u(ab(n.d,e),14),t?(i=e,n.e.pc(i,t)):null}function GC(n,e){var t,i;for(i=n.Kc();i.Ob();)t=u(i.Pb(),70),H(t,(G(),pp),e)}function D0e(n){var e;return e=K(Y(k(n,(nn(),S1)))),e<0&&(e=0,H(n,S1,e)),e}function $0e(n,e,t){var i;i=j.Math.max(0,n.b/2-.5),g6(t,i,1),W(e,new L7n(t,i))}function F0e(n,e,t){var i;return i=n.a.e[u(e.a,10).p]-n.a.e[u(t.a,10).p],Gt(m8(i))}function lIn(n,e,t,i,r,c){var o;o=C$(i),Hi(o,r),Ei(o,c),Tn(n.a,i,new EE(o,e,t.f))}function aIn(n,e){var t;if(t=R7(n.Tg(),e),!t)throw T(new Hn(Pl+e+MB));return t}function ob(n,e){var t;for(t=n;At(t);)if(t=At(t),t==e)return!0;return!1}function x0e(n,e){var t,i,r;for(i=e.a.cd(),t=u(e.a.dd(),14).gc(),r=0;r0&&(n.a/=e,n.b/=e),n}function ts(n){var e;return n.w?n.w:(e=Gle(n),e&&!e.kh()&&(n.w=e),e)}function q0e(n){var e;return n==null?null:(e=u(n,190),Gve(e,e.length))}function D(n,e){if(n.g==null||e>=n.i)throw T(new xO(e,n.i));return n.li(e,n.g[e])}function G0e(n){var e,t;for(e=n.a.d.j,t=n.c.d.j;e!=t;)ko(n.b,e),e=yT(e);ko(n.b,e)}function z0e(n){var e;for(e=0;e=14&&e<=16))),n}function gIn(n,e,t){var i=function(){return n.apply(i,arguments)};return e.apply(i,t),i}function pIn(n,e,t){var i,r;i=e;do r=K(n.p[i.p])+t,n.p[i.p]=r,i=n.a[i.p];while(i!=e)}function O3(n,e){var t,i;i=n.a,t=Tge(n,e,null),i!=e&&!n.e&&(t=j4(n,e,t)),t&&t.Fi()}function tV(n,e){return Yo(),mo(Cl),j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)}function iV(n,e){return Yo(),mo(Cl),j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)}function X0e(n,e){return yl(),Uc(n.b.c.length-n.e.c.length,e.b.c.length-e.e.c.length)}function xw(n,e){return Uie(J5(n,e,ge(Ni(ah,rh(ge(Ni(e==null?0:mt(e),dh)),15)))))}function vIn(){vIn=N,$Wn=Fe((Qn(),A(M(zR,1),z,267,0,[ti,gi,Xt,Tc,Qu,vf])))}function mIn(){mIn=N,_Zn=Fe((vb(),A(M(UK,1),z,291,0,[zK,gy,wy,GK,dy,by])))}function kIn(){kIn=N,FZn=Fe((oh(),A(M(Rfn,1),z,248,0,[HK,ly,ay,xP,$P,FP])))}function yIn(){yIn=N,uXn=Fe((q2(),A(M(rv,1),z,227,0,[iv,ym,tv,qb,Cg,Eg])))}function jIn(){jIn=N,pXn=Fe((h4(),A(M(sun,1),z,275,0,[Cm,iun,uun,cun,run,tun])))}function EIn(){EIn=N,gXn=Fe((A7(),A(M(eun,1),z,274,0,[LS,Ycn,nun,Jcn,Zcn,p_])))}function CIn(){CIn=N,BQn=Fe((JT(),A(M(Hsn,1),z,313,0,[Q_,_sn,V_,Rsn,Ksn,sP])))}function TIn(){TIn=N,bXn=Fe((eM(),A(M(Xcn,1),z,276,0,[d_,a_,w_,b_,g_,FS])))}function MIn(){MIn=N,VJn=Fe((k6(),A(M(XJn,1),z,327,0,[pP,aK,bK,dK,wK,lK])))}function AIn(){AIn=N,ane=Fe((Tu(),A(M(qP,1),z,273,0,[Gl,n1,Ty,s9,u9,Pp])))}function SIn(){SIn=N,rne=Fe((ZT(),A(M(xhn,1),z,312,0,[uH,Dhn,Fhn,Ihn,$hn,Ohn])))}function V0e(){return jb(),A(M(lr,1),z,93,0,[So,Zh,Po,Oo,yh,eo,as,Io,no])}function UC(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,0,t,n.a))}function WC(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,1,t,n.b))}function D3(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,3,t,n.b))}function Bd(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,3,t,n.f))}function Rd(n,e){var t;t=n.g,n.g=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,4,t,n.g))}function Zc(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,5,t,n.i))}function nu(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,6,t,n.j))}function $3(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,1,t,n.j))}function F3(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,4,t,n.c))}function x3(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&et(n,new rb(n,2,t,n.k))}function G$(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&et(n,new p$(n,2,t,n.d))}function d1(n,e){var t;t=n.s,n.s=e,n.Db&4&&!(n.Db&1)&&et(n,new p$(n,4,t,n.s))}function hb(n,e){var t;t=n.t,n.t=e,n.Db&4&&!(n.Db&1)&&et(n,new p$(n,5,t,n.t))}function L3(n,e){var t;t=n.F,n.F=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,5,t,e))}function Q8(n,e){var t;return t=u(te(($j(),eI),n),55),t?t.xj(e):F(Zn,rn,1,e,5,1)}function Bh(n,e){var t,i;return t=e in n.a,t&&(i=Dh(n,e).he(),i)?i.a:null}function Q0e(n,e){var t,i,r;return t=(i=(ad(),r=new QH,r),e&&zY(i,e),i),aV(t,n),t}function PIn(n,e,t){if(W3(n,t),!n.Bk()&&t!=null&&!n.wj(t))throw T(new xI);return t}function IIn(n,e){return n.n=e,n.n?(n.f=new X,n.e=new X):(n.f=null,n.e=null),n}function Me(n,e,t,i,r,c){var o;return o=LD(n,e),DIn(t,o),o.i=r?8:0,o.f=i,o.e=r,o.g=c,o}function rV(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=t}function cV(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=t}function uV(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=t}function sV(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=t}function oV(n,e,t,i,r){this.d=e,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=t}function OIn(n,e){var t,i,r,c;for(i=e,r=0,c=i.length;r=0),Q2e(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function fV(n){return n.a<54?n.f<0?-1:n.f>0?1:0:(!n.c&&(n.c=h7(n.f)),n.c).e}function mo(n){if(!(n>=0))throw T(new Hn("tolerance ("+n+") must be >= 0"));return n}function N3(){return _K||(_K=new kBn,_w(_K,A(M(mg,1),rn,130,0,[new nq]))),_K}function ur(){ur=N,Bm=new kO(K6,0),Au=new kO("INPUT",1),xc=new kO("OUTPUT",2)}function VC(){VC=N,Hcn=new bO("ARD",0),DS=new bO("MSD",1),o_=new bO("MANUAL",2)}function _d(){_d=N,ry=new TO("BARYCENTER",0),_m=new TO(rHn,1),aP=new TO(cHn,2)}function J8(n,e){var t;if(t=n.gc(),e<0||e>t)throw T(new V0(e,t));return new AU(n,e)}function xIn(n,e){var t;return I(e,42)?n.c.Mc(e):(t=NF(n,e),IT(n,e),t)}function wr(n,e,t){return Ca(n,e),Ic(n,t),d1(n,0),hb(n,1),p1(n,!0),g1(n,!0),n}function is(n,e){if(n<0)throw T(new Hn(e+" cannot be negative but was: "+n));return n}function LIn(n,e){var t,i;for(t=0,i=n.gc();t0?u(un(t.a,i-1),10):null}function Q5(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,2,t,n.k))}function JC(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,8,t,n.f))}function YC(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,7,t,n.i))}function aV(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,8,t,n.a))}function dV(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,0,t,n.b))}function bV(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,0,t,n.b))}function wV(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,1,t,n.c))}function gV(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,1,t,n.c))}function U$(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,4,t,n.c))}function pV(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,1,t,n.d))}function W$(n,e){var t;t=n.D,n.D=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,2,t,n.D))}function X$(n,e){n.r>0&&n.c0&&n.g!=0&&X$(n.i,e/n.r*n.i.d))}function cbe(n,e,t){var i;n.b=e,n.a=t,i=(n.a&512)==512?new T9n:new ZH,n.c=y7e(i,n.b,n.a)}function zIn(n,e){return zh(n.e,e)?(er(),R$(e)?new IE(e,n):new i8(e,n)):new Nkn(e,n)}function ZC(n,e){return zie(Y5(n.a,e,ge(Ni(ah,rh(ge(Ni(e==null?0:mt(e),dh)),15)))))}function ube(n,e,t){return cb(n,new Hvn(e),new mln,new qvn(t),A(M(Nu,1),z,132,0,[]))}function sbe(n){var e,t;return 0>n?new PG:(e=n+1,t=new wSn(e,n),new oU(null,t))}function obe(n,e){Pn();var t;return t=new s2(1),mi(n)?kr(t,n,e):_c(t.f,n,e),new DI(t)}function fbe(n,e){var t,i;return t=n.o+n.p,i=e.o+e.p,te?(e<<=1,e>0?e:L6):e}function V$(n){switch(Rz(n.e!=3),n.e){case 2:return!1;case 0:return!0}return wde(n)}function WIn(n,e){var t;return I(e,8)?(t=u(e,8),n.a==t.a&&n.b==t.b):!1}function Q$(n,e,t){var i,r,c;return c=e>>5,r=e&31,i=ci(J0(n.n[t][c],ge(Ih(r,1))),3),i}function lbe(n,e){var t,i;for(i=e.vc().Kc();i.Ob();)t=u(i.Pb(),42),XT(n,t.cd(),t.dd())}function abe(n,e){var t;t=new Wy,u(e.b,65),u(e.b,65),u(e.b,65),Yc(e.a,new BU(n,t,e))}function vV(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,21,t,n.b))}function mV(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,11,t,n.d))}function nT(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,13,t,n.j))}function XIn(n,e,t){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i>>31;i!=0&&(n[t]=i)}function jbe(n,e){Pn();var t,i;for(i=new X,t=0;t0&&(this.g=this.ri(this.i+(this.i/8|0)+1),n.Qc(this.g))}function $t(n,e){ME.call(this,ree,n,e),this.b=this,this.a=Kc(n.Tg(),On(this.e.Tg(),this.c))}function Z5(n,e){var t,i;for(_n(e),i=e.vc().Kc();i.Ob();)t=u(i.Pb(),42),n.zc(t.cd(),t.dd())}function Dbe(n,e,t){var i;for(i=t.Kc();i.Ob();)if(!yC(n,e,i.Pb()))return!1;return!0}function $be(n,e,t,i,r){var c;return t&&(c=yt(e.Tg(),n.c),r=t.gh(e,-1-(c==-1?i:c),null,r)),r}function Fbe(n,e,t,i,r){var c;return t&&(c=yt(e.Tg(),n.c),r=t.ih(e,-1-(c==-1?i:c),null,r)),r}function dOn(n){var e;if(n.b==-2){if(n.e==0)e=-1;else for(e=0;n.a[e]==0;e++);n.b=e}return n.b}function bOn(n){switch(n.g){case 2:return J(),Gn;case 4:return J(),Vn;default:return n}}function wOn(n){switch(n.g){case 1:return J(),ae;case 3:return J(),Kn;default:return n}}function xbe(n){var e,t,i;return n.j==(J(),Kn)&&(e=GLn(n),t=au(e,Vn),i=au(e,Gn),i||i&&t)}function Lbe(n){var e,t;return e=u(n.e&&n.e(),9),t=u(IW(e,e.length),9),new ks(e,t,e.length)}function Nbe(n,e){le(e,iHn,1),TQ(ire(new tj((Vv(),new GD(n,!1,!1,new BH))))),ce(e)}function Y8(n,e){return qn(),mi(n)?DX(n,Ce(e)):G0(n)?TD(n,Y(e)):q0(n)?Kfe(n,sn(e)):n.wd(e)}function TV(n,e){e.q=n,n.d=j.Math.max(n.d,e.r),n.b+=e.d+(n.a.c.length==0?0:n.c),W(n.a,e)}function R3(n,e){var t,i,r,c;return r=n.c,t=n.c+n.b,c=n.d,i=n.d+n.a,e.a>r&&e.ac&&e.b1||n.Ob())return++n.a,n.g=0,e=n.i,n.Ob(),e;throw T(new ic)}function Vbe(n){gyn();var e;return M7n(hK,n)||(e=new Zwn,e.a=n,wU(hK,n,e)),u(br(hK,n),635)}function Ks(n){var e,t,i,r;return r=n,i=0,r<0&&(r+=$a,i=Wh),t=Gt(r/J2),e=Gt(r-t*J2),Bc(e,t,i)}function Z8(n){var e,t,i;for(i=0,t=new o2(n.a);t.a>22),r=n.h+e.h+(i>>22),Bc(t&Lu,i&Lu,r&Wh)}function xOn(n,e){var t,i,r;return t=n.l-e.l,i=n.m-e.m+(t>>22),r=n.h-e.h+(i>>22),Bc(t&Lu,i&Lu,r&Wh)}function i7(n){var e;return n<128?(e=(QEn(),yin)[n],!e&&(e=yin[n]=new wq(n)),e):new wq(n)}function jt(n){var e;return I(n,78)?n:(e=n&&n.__java$exception,e||(e=new CDn(n),Kmn(e)),e)}function r7(n){if(I(n,186))return u(n,118);if(n)return null;throw T(new c2(Iqn))}function LOn(n,e){if(e==null)return!1;for(;n.a!=n.b;)if(tt(e,vT(n)))return!0;return!1}function OV(n){return n.a.Ob()?!0:n.a!=n.d?!1:(n.a=new lX(n.e.f),n.a.Ob())}function Yt(n,e){var t,i;return t=e.Pc(),i=t.length,i==0?!1:(GU(n.c,n.c.length,t),!0)}function hwe(n,e,t){var i,r;for(r=e.vc().Kc();r.Ob();)i=u(r.Pb(),42),n.yc(i.cd(),i.dd(),t);return n}function NOn(n,e){var t,i;for(i=new E(n.b);i.a=0,"Negative initial capacity"),TE(e>=0,"Non-positive load factor"),Eu(this)}function uF(n,e,t){return n>=128?!1:n<64?b5(ci(Ih(1,n),t),0):b5(ci(Ih(1,n-64),e),0)}function mwe(n,e){return!n||!e||n==e?!1:zd(n.b.c,e.b.c+e.b.b)<0&&zd(e.b.c,n.b.c+n.b.b)<0}function VOn(n){var e,t,i;return t=n.n,i=n.o,e=n.d,new ys(t.a-e.b,t.b-e.d,i.a+(e.b+e.c),i.b+(e.d+e.a))}function kwe(n){var e,t,i,r;for(t=n.a,i=0,r=t.length;ii)throw T(new V0(e,i));return n.hi()&&(t=aMn(n,t)),n.Vh(e,t)}function s7(n,e,t){return t==null?(!n.q&&(n.q=new we),O2(n.q,e)):(!n.q&&(n.q=new we),it(n.q,e,t)),n}function H(n,e,t){return t==null?(!n.q&&(n.q=new we),O2(n.q,e)):(!n.q&&(n.q=new we),it(n.q,e,t)),n}function QOn(n){var e,t;return t=new TC,Sr(t,n),H(t,(dl(),hp),n),e=new we,Cye(n,t,e),QEe(n,t,e),t}function Ewe(n){eg();var e,t,i;for(t=F(ai,q,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,t[e]=r3e(i,n);return t}function JOn(n,e){var t,i,r,c;for(t=!1,i=n.a[e].length,c=0;c>=1);return e}function ZOn(n){var e,t;return t=x7(n.h),t==32?(e=x7(n.m),e==32?x7(n.l)+32:e+20-10):t-12}function t6(n){var e;return e=n.a[n.b],e==null?null:(Mt(n.a,n.b,null),n.b=n.b+1&n.a.length-1,e)}function nDn(n){var e,t;return e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,e||t}function bT(n,e,t){var i,r;return i=new I$(e,t),r=new dI,n.b=zNn(n,n.b,i,r),r.b||++n.c,n.b.b=!1,r.d}function eDn(n,e,t){var i,r,c,o;for(o=c6(e,t),c=0,r=o.Kc();r.Ob();)i=u(r.Pb(),11),it(n.c,i,Q(c++))}function wl(n){var e,t;for(t=new E(n.a.b);t.at&&(t=n[e]);return t}function tDn(n,e,t){var i;return i=new X,XY(n,e,i,(J(),Vn),!0,!1),XY(n,t,i,Gn,!1,!1),i}function oF(n,e,t){var i,r,c,o;return c=null,o=e,r=Fd(o,"labels"),i=new jkn(n,t),c=(Hme(i.a,i.b,r),r),c}function Twe(n,e,t,i){var r;return r=xY(n,e,t,i),!r&&(r=Mge(n,t,i),r&&!rg(n,e,r))?null:r}function Mwe(n,e,t,i){var r;return r=LY(n,e,t,i),!r&&(r=TF(n,t,i),r&&!rg(n,e,r))?null:r}function iDn(n,e){var t;for(t=0;t1||e>=0&&n.b<3)}function o7(n){var e,t,i;for(e=new hu,i=_e(n,0);i.b!=i.d.c;)t=u(Re(i),8),s3(e,0,new mr(t));return e}function ja(n){var e,t;for(t=new E(n.a.b);t.ai?1:0}function QV(n,e){return ANn(n,e)?(Tn(n.b,u(k(e,(G(),Gb)),21),e),Ke(n.a,e),!0):!1}function Bwe(n){var e,t;e=u(k(n,(G(),Mu)),10),e&&(t=e.c,Qc(t.a,e),t.a.c.length==0&&Qc(Gi(e).b,t))}function fDn(n){return pf?F($zn,lKn,572,0,0,1):u(lf(n.a,F($zn,lKn,572,n.a.c.length,0,1)),842)}function Rwe(n,e,t,i){return QE(),new GI(A(M(Ha,1),OM,42,0,[(ex(n,e),new bd(n,e)),(ex(t,i),new bd(t,i))]))}function Rw(n,e,t){var i,r;return r=(i=new RI,i),wr(r,e,t),me((!n.q&&(n.q=new V(co,n,11,10)),n.q),r),r}function aF(n){var e,t,i,r;for(r=lre($ne,n),t=r.length,i=F(tn,q,2,t,6,1),e=0;e=n.b.c.length||(JV(n,2*e+1),t=2*e+2,t=0&&n[i]===e[i];i--);return i<0?0:cO(ci(n[i],fr),ci(e[i],fr))?-1:1}function _we(n,e){var t,i;for(i=_e(n,0);i.b!=i.d.c;)t=u(Re(i),214),t.e.length>0&&(e.td(t),t.i&&Fge(t))}function bF(n,e){var t,i;return i=u(Rn(n.a,4),126),t=F(bH,qB,415,e,0,1),i!=null&&gc(i,0,t,0,i.length),t}function lDn(n,e){var t;return t=new zx((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e),n.e!=null||(t.c=n),t}function Kwe(n,e){var t,i;for(i=n.Zb().Cc().Kc();i.Ob();)if(t=u(i.Pb(),14),t.Hc(e))return!0;return!1}function wF(n,e,t,i,r){var c,o;for(o=t;o<=r;o++)for(c=e;c<=i;c++)if(zw(n,c,o))return!0;return!1}function aDn(n,e,t){var i,r,c,o;for(_n(t),o=!1,c=n.Zc(e),r=t.Kc();r.Ob();)i=r.Pb(),c.Rb(i),o=!0;return o}function Hwe(n,e){var t;return n===e?!0:I(e,83)?(t=u(e,83),ZJ(Ed(n),t.vc())):!1}function dDn(n,e,t){var i,r;for(r=t.Kc();r.Ob();)if(i=u(r.Pb(),42),n.re(e,i.dd()))return!0;return!1}function bDn(n,e,t){return n.d[e.p][t.p]||(Bpe(n,e,t),n.d[e.p][t.p]=!0,n.d[t.p][e.p]=!0),n.a[e.p][t.p]}function W3(n,e){if(!n.ai()&&e==null)throw T(new Hn("The 'no null' constraint is violated"));return e}function X3(n,e){n.D==null&&n.B!=null&&(n.D=n.B,n.B=null),W$(n,e==null?null:(_n(e),e)),n.C&&n.yk(null)}function qwe(n,e){var t;return!n||n==e||!li(e,(G(),m0))?!1:(t=u(k(e,(G(),m0)),10),t!=n)}function gF(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.pl()}}function wDn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n.ql()}}function gDn(n){cMn.call(this,"The given string does not match the expected format for individual spacings.",n)}function Xu(){Xu=N,ws=new Jj("ELK",0),Yhn=new Jj("JSON",1),Jhn=new Jj("DOT",2),Zhn=new Jj("SVG",3)}function f7(){f7=N,CP=new AO(Xh,0),Don=new AO("RADIAL_COMPACTION",1),$on=new AO("WEDGE_COMPACTION",2)}function hf(){hf=N,Win=new uO("CONCURRENT",0),hs=new uO("IDENTITY_FINISH",1),Rb=new uO("UNORDERED",2)}function pF(){pF=N,jrn=(Aj(),SR),yrn=new In(pnn,jrn),OUn=new kt(vnn),DUn=new kt(mnn),$Un=new kt(knn)}function V3(){V3=N,xcn=new j0n,Lcn=new E0n,zWn=new C0n,GWn=new T0n,qWn=new M0n,Fcn=(_n(qWn),new uln)}function Q3(){Q3=N,sK=new jO("CONSERVATIVE",0),con=new jO("CONSERVATIVE_SOFT",1),Rm=new jO("SLOPPY",2)}function wT(){wT=N,_hn=new vd(15),cne=new tr((Xe(),nd),_hn),t9=Mp,Lhn=HZn,Nhn=Za,Rhn=Kg,Bhn=BP}function vF(n,e,t){var i,r,c;for(i=new Ct,c=_e(t,0);c.b!=c.d.c;)r=u(Re(c),8),Ke(i,new mr(r));aDn(n,e,i)}function Gwe(n){var e,t,i;for(e=0,i=F(ai,q,8,n.b,0,1),t=_e(n,0);t.b!=t.d.c;)i[e++]=u(Re(t),8);return i}function ZV(n){var e;return e=(!n.a&&(n.a=new V(e1,n,9,5)),n.a),e.i!=0?ore(u(D(e,0),678)):null}function zwe(n,e){var t;return t=qi(n,e),cO(h$(n,e),0)|Cre(h$(n,t),0)?t:qi(IM,h$(J0(t,63),1))}function Uwe(n,e){var t;t=cn((xF(),uP))!=null&&e.wg()!=null?K(Y(e.wg()))/K(Y(cn(uP))):1,it(n.b,e,t)}function Wwe(n,e){var t,i;return t=u(n.d.Bc(e),14),t?(i=n.e.hc(),i.Gc(t),n.e.d-=t.gc(),t.$b(),i):null}function nQ(n,e){var t,i;if(i=n.c[e],i!=0)for(n.c[e]=0,n.d-=i,t=e+1;t0)return a3(e-1,n.a.c.length),h1(n.a,e-1);throw T(new qmn)}function Xwe(n,e,t){if(e<0)throw T(new vr(_Hn+e));ee)throw T(new Hn(xM+n+aKn+e));if(n<0||e>t)throw T(new bG(xM+n+rnn+e+tnn+t))}function mDn(n){if(!n.a||!(n.a.i&8))throw T(new Dr("Enumeration class expected for layout option "+n.f))}function lb(n){var e;++n.j,n.i==0?n.g=null:n.ihA?n-t>hA:t-n>hA}function kF(n,e){return!n||e&&!n.j||I(n,124)&&u(n,124).a.b==0?0:n.Re()}function pT(n,e){return!n||e&&!n.k||I(n,124)&&u(n,124).a.a==0?0:n.Se()}function h7(n){return jl(),n<0?n!=-1?new VQ(-1,-n):gR:n<=10?xin[Gt(n)]:new VQ(1,n)}function tQ(n){throw cF(),T(new L9n("Unexpected typeof result '"+n+"'; please report this bug to the GWT team"))}function CDn(n){H9n(),oE(this),eC(this),this.e=n,NNn(this,n),this.g=n==null?iu:Lr(n),this.a="",this.b=n,this.a=""}function iQ(){this.a=new qgn,this.f=new O6n(this),this.b=new D6n(this),this.i=new $6n(this),this.e=new F6n(this)}function TDn(){iie.call(this,new _X(sb(16))),is(2,W_n),this.b=2,this.a=new RW(null,null,0,null),$9(this.a,this.a)}function i6(){i6=N,J_=new vO("DUMMY_NODE_OVER",0),qsn=new vO("DUMMY_NODE_UNDER",1),oP=new vO("EQUAL",2)}function yF(){yF=N,_R=sMn(A(M(e9,1),z,103,0,[(sr(),Zs),Ao])),KR=sMn(A(M(e9,1),z,103,0,[Yh,Jh]))}function jF(n){return(J(),cu).Hc(n.j)?K(Y(k(n,(G(),hv)))):Gr(A(M(ai,1),q,8,0,[n.i.n,n.n,n.a])).b}function Zwe(n){var e,t,i,r;for(i=n.b.a,t=i.a.ec().Kc();t.Ob();)e=u(t.Pb(),561),r=new pNn(e,n.e,n.f),W(n.g,r)}function Ca(n,e){var t,i,r;i=n.nk(e,null),r=null,e&&(r=(Qp(),t=new ud,t),O3(r,n.r)),i=af(n,r,i),i&&i.Fi()}function nge(n,e){var t,i;for(i=Fu(n.d,1)!=0,t=!0;t;)t=!1,t=e.c.Tf(e.e,i),t=t|_7(n,e,i,!1),i=!i;yV(n)}function rQ(n,e){var t,i,r;return i=!1,t=e.q.d,e.dr&&(JFn(e.q,r),i=t!=e.q.d)),i}function MDn(n,e){var t,i,r,c,o,f,h,l;return h=e.i,l=e.j,i=n.f,r=i.i,c=i.j,o=h-r,f=l-c,t=j.Math.sqrt(o*o+f*f),t}function cQ(n,e){var t,i;return i=OT(n),i||(t=(bL(),Yxn(e)),i=new Fmn(t),me(i.Vk(),n)),i}function l7(n,e){var t,i;return t=u(n.c.Bc(e),14),t?(i=n.hc(),i.Gc(t),n.d-=t.gc(),t.$b(),n.mc(i)):n.jc()}function ADn(n,e){var t;for(t=0;t=n.c.b:n.a<=n.c.b))throw T(new ic);return e=n.a,n.a+=n.c.c,++n.b,Q(e)}function ige(n){var e;return e=new uIn(n),O8(n.a,SWn,new Ku(A(M(Rk,1),rn,369,0,[e]))),e.d&&W(e.f,e.d),e.f}function EF(n){var e;return e=new Mz(n.a),Sr(e,n),H(e,(G(),rt),n),e.o.a=n.g,e.o.b=n.f,e.n.a=n.i,e.n.b=n.j,e}function rge(n,e,t,i){var r,c;for(c=n.Kc();c.Ob();)r=u(c.Pb(),70),r.n.a=e.a+(i.a-r.o.a)/2,r.n.b=e.b,e.b+=r.o.b+t}function cge(n,e,t){var i,r;for(r=e.a.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),57),_Tn(n,i,t))return!0;return!1}function uge(n){var e,t;for(t=new E(n.r);t.a=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function hge(n,e){var t,i,r;for(r=1,t=n,i=e>=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function FDn(n){var e,t;if(n!=null)for(t=0;t0&&(t=u(un(n.a,n.a.c.length-1),570),QV(t,e))||W(n.a,new dSn(e))}function wge(n){wo();var e,t;e=n.d.c-n.e.c,t=u(n.g,145),Yc(t.b,new _5n(e)),Yc(t.c,new K5n(e)),$i(t.i,new H5n(e))}function BDn(n){var e;return e=new V1,e.a+="VerticalSegment ",rc(e,n.e),e.a+=" ",De(e,Lz(new YI,new E(n.k))),e.a}function gge(n){var e;return e=u(xd(n.c.c,""),229),e||(e=new M2(Vp(Xp(new Zg,""),"Other")),Aa(n.c.c,"",e)),e}function r6(n){var e;return n.Db&64?yo(n):(e=new Bs(yo(n)),e.a+=" (name: ",dr(e,n.zb),e.a+=")",e.a)}function hQ(n,e,t){var i,r;return r=n.sb,n.sb=e,n.Db&4&&!(n.Db&1)&&(i=new wi(n,1,4,r,e),t?t.Ei(i):t=i),t}function CF(n,e){var t,i,r;for(t=0,r=zr(n,e).Kc();r.Ob();)i=u(r.Pb(),11),t+=k(i,(G(),Mu))!=null?1:0;return t}function Kw(n,e,t){var i,r,c;for(i=0,c=_e(n,0);c.b!=c.d.c&&(r=K(Y(Re(c))),!(r>t));)r>=e&&++i;return i}function pge(n,e,t){var i,r;return i=new Lh(n.e,3,13,null,(r=e.c,r||(Sn(),Cf)),v1(n,e),!1),t?t.Ei(i):t=i,t}function vge(n,e,t){var i,r;return i=new Lh(n.e,4,13,(r=e.c,r||(Sn(),Cf)),null,v1(n,e),!1),t?t.Ei(i):t=i,t}function lQ(n,e,t){var i,r;return r=n.r,n.r=e,n.Db&4&&!(n.Db&1)&&(i=new wi(n,1,8,r,n.r),t?t.Ei(i):t=i),t}function w1(n,e){var t,i;return t=u(e,676),i=t.vk(),!i&&t.wk(i=I(e,88)?new Fkn(n,u(e,26)):new eAn(n,u(e,148))),i}function a7(n,e,t){var i;n.qi(n.i+1),i=n.oi(e,t),e!=n.i&&gc(n.g,e,n.g,e+1,n.i-e),Mt(n.g,e,i),++n.i,n.bi(e,t),n.ci()}function mge(n,e){var t;return e.a&&(t=e.a.a.length,n.a?De(n.a,n.b):n.a=new Ju(n.d),iAn(n.a,e.a,e.d.length,t)),n}function kge(n,e){var t,i,r,c;if(e.vi(n.a),c=u(Rn(n.a,8),1936),c!=null)for(t=c,i=0,r=t.length;it)throw T(new vr(xM+n+rnn+e+", size: "+t));if(n>e)throw T(new Hn(xM+n+aKn+e))}function As(n,e,t){if(e<0)bY(n,t);else{if(!t.Ij())throw T(new Hn(Pl+t.ne()+em));u(t,66).Nj().Vj(n,n.yh(),e)}}function Ege(n,e,t,i,r,c,o,f){var h;for(h=t;c=i||e=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function zDn(n){var e;return n.Db&64?yo(n):(e=new Bs(yo(n)),e.a+=" (source: ",dr(e,n.d),e.a+=")",e.a)}function Tge(n,e,t){var i,r;return r=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&(i=new wi(n,1,5,r,n.a),t?FJ(t,i):t=i),t}function g1(n,e){var t;t=(n.Bb&256)!=0,e?n.Bb|=256:n.Bb&=-257,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,2,t,e))}function dQ(n,e){var t;t=(n.Bb&256)!=0,e?n.Bb|=256:n.Bb&=-257,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,8,t,e))}function kT(n,e){var t;t=(n.Bb&256)!=0,e?n.Bb|=256:n.Bb&=-257,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,8,t,e))}function p1(n,e){var t;t=(n.Bb&512)!=0,e?n.Bb|=512:n.Bb&=-513,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,3,t,e))}function bQ(n,e){var t;t=(n.Bb&512)!=0,e?n.Bb|=512:n.Bb&=-513,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,9,t,e))}function u6(n,e){var t;return n.b==-1&&n.a&&(t=n.a.Gj(),n.b=t?n.c.Xg(n.a.aj(),t):yt(n.c.Tg(),n.a)),n.c.Og(n.b,e)}function Q(n){var e,t;return n>-129&&n<128?(e=n+128,t=(qEn(),jin)[e],!t&&(t=jin[e]=new gq(n)),t):new gq(n)}function J3(n){var e,t;return n>-129&&n<128?(e=n+128,t=(VEn(),Min)[e],!t&&(t=Min[e]=new vq(n)),t):new vq(n)}function wQ(n){var e,t;return e=n.k,e==(Qn(),Xt)?(t=u(k(n,(G(),ec)),61),t==(J(),Kn)||t==ae):!1}function Mge(n,e,t){var i,r,c;return c=(r=b4(n.b,e),r),c&&(i=u(jM(G8(n,c),""),26),i)?xY(n,i,e,t):null}function TF(n,e,t){var i,r,c;return c=(r=b4(n.b,e),r),c&&(i=u(jM(G8(n,c),""),26),i)?LY(n,i,e,t):null}function UDn(n,e){var t,i;for(i=new ie(n);i.e!=i.i.gc();)if(t=u(oe(i),138),B(e)===B(t))return!0;return!1}function s6(n,e,t){var i;if(i=n.gc(),e>i)throw T(new V0(e,i));if(n.hi()&&n.Hc(t))throw T(new Hn(yk));n.Xh(e,t)}function Age(n,e){var t;if(t=xw(n.i,e),t==null)throw T(new Af("Node did not exist in input."));return MV(e,t),null}function Sge(n,e){var t;if(t=R7(n,e),I(t,322))return u(t,34);throw T(new Hn(Pl+e+"' is not a valid attribute"))}function Pge(n,e,t){var i,r;for(r=I(e,99)&&u(e,18).Bb&Yi?new LO(e,n):new H3(e,n),i=0;ie?1:n==e?n==0?Zt(1/n,1/e):0:isNaN(n)?isNaN(e)?0:1:-1}function Bge(n,e){le(e,"Sort end labels",1),Rt(gt(qr(new $n(null,new xn(n.b,16)),new bdn),new wdn),new gdn),ce(e)}function o6(n,e,t){var i,r;return n.ej()?(r=n.fj(),i=Dx(n,e,t),n.$i(n.Zi(7,Q(t),i,e,r)),i):Dx(n,e,t)}function MF(n,e){var t,i,r;n.d==null?(++n.e,--n.f):(r=e.cd(),t=e.Sh(),i=(t&nt)%n.d.length,yde(n,i,hNn(n,i,t,r)))}function Y3(n,e){var t;t=(n.Bb&Eo)!=0,e?n.Bb|=Eo:n.Bb&=-1025,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,10,t,e))}function Z3(n,e){var t;t=(n.Bb&Ib)!=0,e?n.Bb|=Ib:n.Bb&=-4097,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,12,t,e))}function n4(n,e){var t;t=(n.Bb&mu)!=0,e?n.Bb|=mu:n.Bb&=-8193,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,15,t,e))}function e4(n,e){var t;t=(n.Bb&Bb)!=0,e?n.Bb|=Bb:n.Bb&=-2049,n.Db&4&&!(n.Db&1)&&et(n,new vo(n,1,11,t,e))}function Rge(n,e){var t;return t=Zt(n.b.c,e.b.c),t!=0||(t=Zt(n.a.a,e.a.a),t!=0)?t:Zt(n.a.b,e.a.b)}function _ge(n,e){var t;if(t=te(n.k,e),t==null)throw T(new Af("Port did not exist in input."));return MV(e,t),null}function Kge(n){var e,t;for(t=wNn(ts(n)).Kc();t.Ob();)if(e=Ce(t.Pb()),A6(n,e))return Vae((C7n(),zne),e);return null}function Hge(n,e){var t,i,r,c,o;for(o=Kc(n.e.Tg(),e),c=0,t=u(n.g,119),r=0;r>10)+rk&Ut,e[1]=(n&1023)+56320&Ut,Hs(e,0,e.length)}function jT(n){var e,t;return t=u(k(n,(nn(),ls)),103),t==(sr(),mh)?(e=K(Y(k(n,zS))),e>=1?Ao:Jh):t}function zge(n){switch(u(k(n,(nn(),Qh)),218).g){case 1:return new ewn;case 3:return new uwn;default:return new nwn}}function Ta(n){if(n.c)Ta(n.c);else if(n.d)throw T(new Dr("Stream already terminated, can't be modified or used"))}function PF(n){var e;return n.Db&64?yo(n):(e=new Bs(yo(n)),e.a+=" (identifier: ",dr(e,n.k),e.a+=")",e.a)}function QDn(n,e,t){var i,r;return i=(ad(),r=new Xy,r),UC(i,e),WC(i,t),n&&me((!n.a&&(n.a=new Jt(io,n,5)),n.a),i),i}function IF(n,e,t,i){var r,c;return _n(i),_n(t),r=n.xc(e),c=r==null?t:l7n(u(r,15),u(t,14)),c==null?n.Bc(e):n.zc(e,c),c}function Cn(n){var e,t,i,r;return t=(e=u(xo((i=n.gm,r=i.f,r==Ie?i:r)),9),new ks(e,u(bo(e,e.length),9),0)),ko(t,n),t}function Uge(n,e,t){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),10),t7(t,u(un(e,i.p),14)))return i;return null}function Wge(n,e,t){var i;try{Awe(n,e,t)}catch(r){throw r=jt(r),I(r,597)?(i=r,T(new EX(i))):T(r)}return e}function vl(n,e){var t;return $r(n)&&$r(e)&&(t=n-e,ik>1,n.k=t-1>>1}function OF(){_J();var n,e,t;t=qTe+++Date.now(),n=Gt(j.Math.floor(t*uk))&FM,e=Gt(t-n*enn),this.a=n^1502,this.b=e^tN}function Kh(n){var e,t,i;for(e=new X,i=new E(n.j);i.a34028234663852886e22?Ft:e<-34028234663852886e22?Vt:e}function JDn(n){return n-=n>>1&1431655765,n=(n>>2&858993459)+(n&858993459),n=(n>>4)+n&252645135,n+=n>>8,n+=n>>16,n&63}function YDn(n){var e,t,i,r;for(e=new Djn(n.Hd().gc()),r=0,i=$2(n.Hd().Kc());i.Ob();)t=i.Pb(),ole(e,t,Q(r++));return $5e(e.a)}function Zge(n,e){var t,i,r;for(r=new we,i=e.vc().Kc();i.Ob();)t=u(i.Pb(),42),it(r,t.cd(),Gbe(n,u(t.dd(),15)));return r}function yQ(n,e){n.n.c.length==0&&W(n.n,new lC(n.s,n.t,n.i)),W(n.b,e),iJ(u(un(n.n,n.n.c.length-1),211),e),oRn(n,e)}function Hw(n){return(n.c!=n.b.b||n.i!=n.g.b)&&(n.a.c=F(Zn,rn,1,0,5,1),Yt(n.a,n.b),Yt(n.a,n.g),n.c=n.b.b,n.i=n.g.b),n.a}function DF(n,e){var t,i,r;for(r=0,i=u(e.Kb(n),20).Kc();i.Ob();)t=u(i.Pb(),17),on(sn(k(t,(G(),mf))))||++r;return r}function n2e(n,e){var t,i,r;i=$w(e),r=K(Y(bb(i,(nn(),Mo)))),t=j.Math.max(0,r/2-.5),g6(e,t,1),W(n,new G7n(e,t))}function Ss(){Ss=N,Qk=new Q9(Xh,0),Sm=new Q9("FIRST",1),xl=new Q9(uHn,2),Pm=new Q9("LAST",3),Ub=new Q9(sHn,4)}function Hh(){Hh=N,rH=new Wj(K6,0),yy=new Wj("POLYLINE",1),Cv=new Wj("ORTHOGONAL",2),Sp=new Wj("SPLINES",3)}function ET(){ET=N,Jon=new PO("ASPECT_RATIO_DRIVEN",0),IK=new PO("MAX_SCALE_DRIVEN",1),Qon=new PO("AREA_DRIVEN",2)}function w7(){w7=N,AP=new IO("P1_STRUCTURE",0),SP=new IO("P2_PROCESSING_ORDER",1),PP=new IO("P3_EXECUTION",2)}function CT(){CT=N,CK=new MO("OVERLAP_REMOVAL",0),jK=new MO("COMPACTION",1),EK=new MO("GRAPH_SIZE_CALCULATION",2)}function zd(n,e){return Yo(),mo(Cl),j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)?0:ne?1:pd(isNaN(n),isNaN(e))}function ZDn(n,e){var t,i;for(t=_e(n,0);t.b!=t.d.c;){if(i=x9(Y(Re(t))),i==e)return;if(i>e){a$(t);break}}y8(t,e)}function En(n,e){var t,i,r,c,o;if(t=e.f,Aa(n.c.d,t,e),e.g!=null)for(r=e.g,c=0,o=r.length;ce&&i.ue(n[c-1],n[c])>0;--c)o=n[c],Mt(n,c,n[c-1]),Mt(n,c-1,o)}function Ps(n,e,t,i){if(e<0)_Y(n,t,i);else{if(!t.Ij())throw T(new Hn(Pl+t.ne()+em));u(t,66).Nj().Tj(n,n.yh(),e,i)}}function TT(n,e){if(e==n.d)return n.e;if(e==n.e)return n.d;throw T(new Hn("Node "+e+" not part of edge "+n))}function t2e(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function n$n(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function jQ(n,e,t,i){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return aQ(n,e,t,i)}function i2e(n){return n.k!=(Qn(),ti)?!1:C3(new $n(null,new Cd(new re(ue(ni(n).a.Kc(),new Mn)))),new Hbn)}function r2e(n){return n.e==null?n:(!n.c&&(n.c=new zx((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,null)),n.c)}function c2e(n,e){return n.h==tk&&n.m==0&&n.l==0?(e&&(Il=Bc(0,0,0)),eyn((I3(),gin))):(e&&(Il=Bc(n.l,n.m,n.h)),Bc(0,0,0))}function Lr(n){var e;return Array.isArray(n)&&n.im===Xg?J1(Du(n))+"@"+(e=mt(n)>>>0,e.toString(16)):n.toString()}function f6(n){var e;this.a=(e=u(n.e&&n.e(),9),new ks(e,u(bo(e,e.length),9),0)),this.b=F(Zn,rn,1,this.a.a.length,5,1)}function u2e(n){var e,t,i;for(this.a=new Sh,i=new E(n);i.a0&&(Te(e-1,n.length),n.charCodeAt(e-1)==58)&&!$F(n,a9,d9))}function $F(n,e,t){var i,r;for(i=0,r=n.length;i=r)return e.c+t;return e.c+e.b.gc()}function l2e(n,e){o3();var t,i,r,c;for(i=bPn(n),r=e,S3(i,0,i.length,r),t=0;t0&&(i+=r,++t);return t>1&&(i+=n.d*(t-1)),i}function CQ(n){var e,t,i;for(i=new i1,i.a+="[",e=0,t=n.gc();e0&&this.b>0&&cW(this.c,this.b,this.a)}function AQ(n){xF(),this.c=cf(A(M(sMe,1),rn,831,0,[LQn])),this.b=new we,this.a=n,it(this.b,uP,1),Yc(NQn,new q6n(this))}function e$n(n,e){var t;return n.d?zu(n.b,e)?u(te(n.b,e),51):(t=e.Kf(),it(n.b,e,t),t):e.Kf()}function SQ(n,e){var t;return B(n)===B(e)?!0:I(e,91)?(t=u(e,91),n.e==t.e&&n.d==t.d&&Jae(n,t.a)):!1}function B2(n){switch(J(),n.g){case 4:return Kn;case 1:return Vn;case 3:return ae;case 2:return Gn;default:return Xr}}function PQ(n,e){switch(e){case 3:return n.f!=0;case 4:return n.g!=0;case 5:return n.i!=0;case 6:return n.j!=0}return SV(n,e)}function p2e(n){switch(n.g){case 0:return new Lgn;case 1:return new Ngn;default:throw T(new Hn(lB+(n.f!=null?n.f:""+n.g)))}}function t$n(n){switch(n.g){case 0:return new xgn;case 1:return new Bgn;default:throw T(new Hn(AN+(n.f!=null?n.f:""+n.g)))}}function i$n(n){switch(n.g){case 0:return new sG;case 1:return new b9n;default:throw T(new Hn(bA+(n.f!=null?n.f:""+n.g)))}}function v2e(n){switch(n.g){case 1:return new Pgn;case 2:return new kjn;default:throw T(new Hn(lB+(n.f!=null?n.f:""+n.g)))}}function m2e(n){var e,t;if(n.b)return n.b;for(t=pf?null:n.d;t;){if(e=pf?null:t.b,e)return e;t=pf?null:t.d}return e3(),Uin}function k2e(n){var e,t,i;return n.e==0?0:(e=n.d<<5,t=n.a[n.d-1],n.e<0&&(i=dOn(n),i==n.d-1&&(--t,t=t|0)),e-=x7(t),e)}function y2e(n){var e,t,i;return n>5,e=n&31,i=F(be,Le,25,t+1,15,1),i[t]=1<3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function E2e(n){return yF(),qn(),!!(n$n(u(n.a,81).j,u(n.b,103))||u(n.a,81).d.e!=0&&n$n(u(n.a,81).j,u(n.b,103)))}function C2e(n){DC(),u(n.We((Xe(),_l)),174).Hc((xu(),UP))&&(u(n.We(rw),174).Fc((Tu(),Pp)),u(n.We(_l),174).Mc(UP))}function c$n(n,e){var t,i;if(e){for(t=0;t=0;--i)for(e=t[i],r=0;r>1,this.k=e-1>>1}function I2e(n,e){le(e,"End label post-processing",1),Rt(gt(qr(new $n(null,new xn(n.b,16)),new udn),new sdn),new odn),ce(e)}function O2e(n,e,t){var i,r;return i=K(n.p[e.i.p])+K(n.d[e.i.p])+e.n.b+e.a.b,r=K(n.p[t.i.p])+K(n.d[t.i.p])+t.n.b+t.a.b,r-i}function D2e(n,e,t){var i,r;for(i=ci(t,fr),r=0;fc(i,0)!=0&&r0&&(Te(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function F2e(n){var e;return n==null?null:new il((e=jc(n,!0),e.length>0&&(Te(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function LQ(n,e){var t;return n.i>0&&(e.lengthn.i&&Mt(e,n.i,null),e}function Oc(n,e,t){var i,r,c;return n.ej()?(i=n.i,c=n.fj(),a7(n,i,e),r=n.Zi(3,null,e,i,c),t?t.Ei(r):t=r):a7(n,n.i,e),t}function x2e(n,e,t){var i,r;return i=new Lh(n.e,4,10,(r=e.c,I(r,88)?u(r,26):(Sn(),so)),null,v1(n,e),!1),t?t.Ei(i):t=i,t}function L2e(n,e,t){var i,r;return i=new Lh(n.e,3,10,null,(r=e.c,I(r,88)?u(r,26):(Sn(),so)),v1(n,e),!1),t?t.Ei(i):t=i,t}function o$n(n){W0();var e;return e=new mr(u(n.e.We((Xe(),Kg)),8)),n.B.Hc((xu(),Mv))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function f$n(n){wb();var e;return(n.q?n.q:(Pn(),Pn(),ph))._b((nn(),j0))?e=u(k(n,j0),197):e=u(k(Gi(n),$m),197),e}function bb(n,e){var t,i;return i=null,li(n,(nn(),rP))&&(t=u(k(n,rP),94),t.Xe(e)&&(i=t.We(e))),i==null&&(i=k(Gi(n),e)),i}function h$n(n,e){var t,i,r;return I(e,42)?(t=u(e,42),i=t.cd(),r=ab(n.Rc(),i),$f(r,t.dd())&&(r!=null||n.Rc()._b(i))):!1}function NF(n,e){var t,i,r;return n.f>0?(n.qj(),i=e==null?0:mt(e),r=(i&nt)%n.d.length,t=hNn(n,r,i,e),t!=-1):!1}function Ko(n,e){var t,i,r;return n.f>0&&(n.qj(),i=e==null?0:mt(e),r=(i&nt)%n.d.length,t=kY(n,r,i,e),t)?t.dd():null}function g7(n,e){var t,i,r,c;for(c=Kc(n.e.Tg(),e),t=u(n.g,119),r=0;r1?rf(Ih(e.a[1],32),ci(e.a[0],fr)):ci(e.a[0],fr),$d(Ni(e.e,t))))}function p7(n,e){var t;return $r(n)&&$r(e)&&(t=n%e,ik>5,e&=31,r=n.d+t+(e==0?0:1),i=F(be,Le,25,r,15,1),Nve(i,n.a,t,e),c=new Pw(n.e,r,i),K5(c),c}function BQ(n,e,t){var i,r;i=u(vc(Pv,e),117),r=u(vc(m9,e),117),t?(kr(Pv,n,i),kr(m9,n,r)):(kr(m9,n,i),kr(Pv,n,r))}function p$n(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(e,c.d),t&&i==0)return c;i>=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function v$n(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(e,c.d),t&&i==0)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function K2e(n,e,t,i){var r,c,o;return r=!1,jEe(n.f,t,i)&&(ape(n.f,n.a[e][t],n.a[e][i]),c=n.a[e],o=c[i],c[i]=c[t],c[t]=o,r=!0),r}function RQ(n,e,t,i,r){var c,o,f;for(o=r;e.b!=e.c;)c=u(y2(e),10),f=u(zr(c,i).Xb(0),11),n.d[f.p]=o++,t.c[t.c.length]=f;return o}function _Q(n,e,t){var i,r,c,o,f;return o=n.k,f=e.k,i=t[o.g][f.g],r=Y(bb(n,i)),c=Y(bb(e,i)),j.Math.max((_n(r),r),(_n(c),c))}function H2e(n,e,t){var i,r,c,o;for(i=t/n.c.length,r=0,o=new E(n);o.a2e3&&(wzn=n,KA=j.setTimeout(Vie,10))),_A++==0?(E0e((aG(),din)),!0):!1}function G2e(n,e){var t,i,r;for(i=new re(ue(ni(n).a.Kc(),new Mn));Se(i);)if(t=u(ve(i),17),r=t.d.i,r.c==e)return!1;return!0}function KQ(n,e){var t,i;if(I(e,245)){i=u(e,245);try{return t=n.vd(i),t==0}catch(r){if(r=jt(r),!I(r,205))throw T(r)}}return!1}function z2e(){return Error.stackTraceLimit>0?(j.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function U2e(n,e){return Yo(),Yo(),mo(Cl),(j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)?0:ne?1:pd(isNaN(n),isNaN(e)))>0}function HQ(n,e){return Yo(),Yo(),mo(Cl),(j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)?0:ne?1:pd(isNaN(n),isNaN(e)))<0}function y$n(n,e){return Yo(),Yo(),mo(Cl),(j.Math.abs(n-e)<=Cl||n==e||isNaN(n)&&isNaN(e)?0:ne?1:pd(isNaN(n),isNaN(e)))<=0}function RF(n,e){for(var t=0;!e[t]||e[t]=="";)t++;for(var i=e[t++];tJL)return t.fh();if(i=t.Zg(),i||t==n)break}return i}function qQ(n){return dC(),I(n,156)?u(te($y,Azn),288).vg(n):zu($y,Du(n))?u(te($y,Du(n)),288).vg(n):null}function X2e(n){if(DT(B4,n))return qn(),z4;if(DT(EB,n))return qn(),qa;throw T(new Hn("Expecting true or false"))}function V2e(n,e){if(e.c==n)return e.d;if(e.d==n)return e.c;throw T(new Hn("Input edge is not connected to the input port."))}function A$n(n,e){return n.e>e.e?1:n.ee.d?n.e:n.d=48&&n<48+j.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function P$n(n,e){var t;return B(e)===B(n)?!0:!I(e,21)||(t=u(e,21),t.gc()!=n.gc())?!1:n.Ic(t)}function Q2e(n,e){var t,i,r,c;return i=n.a.length-1,t=e-n.b&i,c=n.c-e&i,r=n.c-n.b&i,cjn(t=c?(Vwe(n,e),-1):(Qwe(n,e),1)}function J2e(n,e){var t,i;for(t=(Te(e,n.length),n.charCodeAt(e)),i=e+1;ie.e?1:n.fe.f?1:mt(n)-mt(e)}function DT(n,e){return _n(n),e==null?!1:An(n,e)?!0:n.length==e.length&&An(n.toLowerCase(),e.toLowerCase())}function upe(n,e){var t,i,r,c;for(i=0,r=e.gc();i0&&fc(n,128)<0?(e=ge(n)+128,t=(XEn(),Ein)[e],!t&&(t=Ein[e]=new pq(n)),t):new pq(n)}function O$n(n,e){var t,i;return t=e.Hh(n.a),t&&(i=Ce(Ko((!t.b&&(t.b=new qu((Sn(),nr),tc,t)),t.b),We)),i!=null)?i:e.ne()}function spe(n,e){var t,i;return t=e.Hh(n.a),t&&(i=Ce(Ko((!t.b&&(t.b=new qu((Sn(),nr),tc,t)),t.b),We)),i!=null)?i:e.ne()}function ope(n,e){c$();var t,i;for(i=new re(ue(Kh(n).a.Kc(),new Mn));Se(i);)if(t=u(ve(i),17),t.d.i==e||t.c.i==e)return t;return null}function UQ(n,e,t){this.c=n,this.f=new X,this.e=new Li,this.j=new eW,this.n=new eW,this.b=e,this.g=new ys(e.c,e.d,e.b,e.a),this.a=t}function _F(n){var e,t,i,r;for(this.a=new Sh,this.d=new fi,this.e=0,t=n,i=0,r=t.length;i0):!1}function F$n(n){var e;B(hn(n,(Xe(),Bg)))===B((_h(),HP))&&(At(n)?(e=u(hn(At(n),Bg),334),gr(n,Bg,e)):gr(n,Bg,i9))}function ape(n,e,t){var i,r;yx(n.e,e,t,(J(),Gn)),yx(n.i,e,t,Vn),n.a&&(r=u(k(e,(G(),rt)),11),i=u(k(t,rt),11),l$(n.g,r,i))}function x$n(n,e,t){var i,r,c;i=e.c.p,c=e.p,n.b[i][c]=new YTn(n,e),t&&(n.a[i][c]=new c6n(e),r=u(k(e,(G(),m0)),10),r&&Tn(n.d,r,e))}function L$n(n,e){var t,i,r;if(W(eS,n),e.Fc(n),t=u(te(DR,n),21),t)for(r=t.Kc();r.Ob();)i=u(r.Pb(),33),Fr(eS,i,0)!=-1||L$n(i,e)}function dpe(n,e,t){var i;(Fzn?(m2e(n),!0):xzn||Nzn?(e3(),!0):Lzn&&(e3(),!1))&&(i=new hEn(e),i.b=t,g5e(n,i))}function KF(n,e){var t;t=!n.A.Hc((Vu(),id))||n.q==(Ti(),Ac),n.u.Hc((Tu(),n1))?t?xCe(n,e):a_n(n,e):n.u.Hc(Gl)&&(t?nCe(n,e):M_n(n,e))}function r4(n,e){var t,i;if(++n.j,e!=null&&(t=(i=n.a.Cb,I(i,97)?u(i,97).Jg():null),ome(e,t))){R2(n.a,4,t);return}R2(n.a,4,u(e,126))}function N$n(n,e,t){return new ys(j.Math.min(n.a,e.a)-t/2,j.Math.min(n.b,e.b)-t/2,j.Math.abs(n.a-e.a)+t,j.Math.abs(n.b-e.b)+t)}function bpe(n,e){var t,i;return t=Uc(n.a.c.p,e.a.c.p),t!=0?t:(i=Uc(n.a.d.i.p,e.a.d.i.p),i!=0?i:Uc(e.a.d.p,n.a.d.p))}function wpe(n,e,t){var i,r,c,o;return c=e.j,o=t.j,c!=o?c.g-o.g:(i=n.f[e.p],r=n.f[t.p],i==0&&r==0?0:i==0?-1:r==0?1:Zt(i,r))}function B$n(n,e,t){var i,r,c;if(!t[e.d])for(t[e.d]=!0,r=new E(Hw(e));r.a=r)return r;for(e=e>0?e:0;ei&&Mt(e,i,null),e}function _$n(n,e){var t,i;for(i=n.a.length,e.lengthi&&Mt(e,i,null),e}function Aa(n,e,t){var i,r,c;return r=u(te(n.e,e),387),r?(c=gU(r,t),Oyn(n,r),c):(i=new qU(n,e,t),it(n.e,e,i),iMn(i),null)}function vpe(n){var e;if(n==null)return null;if(e=a9e(jc(n,!0)),e==null)throw T(new VI("Invalid hexBinary value: '"+n+"'"));return e}function m7(n){return jl(),fc(n,0)<0?fc(n,-1)!=0?new OJ(-1,P3(n)):gR:fc(n,10)<=0?xin[ge(n)]:new OJ(1,n)}function qF(){return SM(),A(M(yUn,1),z,159,0,[mUn,vUn,kUn,hUn,fUn,lUn,bUn,dUn,aUn,pUn,gUn,wUn,sUn,uUn,oUn,rUn,iUn,cUn,eUn,nUn,tUn,TR])}function K$n(n){var e;this.d=new X,this.j=new Li,this.g=new Li,e=n.g.b,this.f=u(k(Gi(e),(nn(),ls)),103),this.e=K(Y(xT(e,nw)))}function H$n(n){this.b=new X,this.e=new X,this.d=n,this.a=!Wv(gt(new $n(null,new Cd(new uf(n.b))),new Fv(new qbn))).sd((ca(),V4))}function Ho(){Ho=N,Xn=new Z9("PARENTS",0),pi=new Z9("NODES",1),Yf=new Z9("EDGES",2),Ya=new Z9("PORTS",3),D1=new Z9("LABELS",4)}function qw(){qw=N,Hl=new e8("DISTRIBUTED",0),Cy=new e8("JUSTIFIED",1),Hhn=new e8("BEGIN",2),r9=new e8(I4,3),qhn=new e8("END",4)}function mpe(n){var e;switch(e=n.yi(null),e){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function GF(n){switch(n.g){case 1:return sr(),Yh;case 4:return sr(),Zs;case 2:return sr(),Ao;case 3:return sr(),Jh}return sr(),mh}function kpe(n,e,t){var i;switch(i=t.q.getFullYear()-Tl+Tl,i<0&&(i=-i),e){case 1:n.a+=i;break;case 2:sh(n,i%100,2);break;default:sh(n,i,e)}}function _e(n,e){var t,i;if(tb(e,n.b),e>=n.b>>1)for(i=n.c,t=n.b;t>e;--t)i=i.b;else for(i=n.a.a,t=0;t=64&&e<128&&(r=rf(r,Ih(1,e-64)));return r}function xT(n,e){var t,i;return i=null,li(n,(Xe(),Ap))&&(t=u(k(n,Ap),94),t.Xe(e)&&(i=t.We(e))),i==null&&Gi(n)&&(i=k(Gi(n),e)),i}function z$n(n,e){var t,i,r;r=e.d.i,i=r.k,!(i==(Qn(),ti)||i==vf)&&(t=new re(ue(ni(r).a.Kc(),new Mn)),Se(t)&&it(n.k,e,u(ve(t),17)))}function zF(n,e){var t,i,r;return i=On(n.Tg(),e),t=e-n.Ah(),t<0?(r=n.Yg(i),r>=0?n.lh(r):Ox(n,i)):t<0?Ox(n,i):u(i,66).Nj().Sj(n,n.yh(),t)}function cn(n){var e;if(I(n.a,4)){if(e=qQ(n.a),e==null)throw T(new Dr(HHn+n.b+"'. "+KHn+(Ph(Fy),Fy.k)+Etn));return e}else return n.a}function Epe(n){var e;if(n==null)return null;if(e=qCe(jc(n,!0)),e==null)throw T(new VI("Invalid base64Binary value: '"+n+"'"));return e}function oe(n){var e;try{return e=n.i.Xb(n.e),n.mj(),n.g=n.e++,e}catch(t){throw t=jt(t),I(t,73)?(n.mj(),T(new ic)):T(t)}}function UF(n){var e;try{return e=n.c.ki(n.e),n.mj(),n.g=n.e++,e}catch(t){throw t=jt(t),I(t,73)?(n.mj(),T(new ic)):T(t)}}function a6(){a6=N,Trn=(Xe(),yhn),IR=Zfn,FUn=Tp,Crn=nd,BUn=(WT(),irn),NUn=ern,RUn=crn,LUn=nrn,xUn=(pF(),yrn),PR=OUn,Ern=DUn,nS=$Un}function LT(n){switch(DG(),this.c=new X,this.d=n,n.g){case 0:case 2:this.a=_W(qrn),this.b=Ft;break;case 3:case 1:this.a=qrn,this.b=Vt}}function U$n(n,e,t){var i,r;if(n.c)Zc(n.c,n.c.i+e),nu(n.c,n.c.j+t);else for(r=new E(n.b);r.a0&&(W(n.b,new MEn(e.a,t)),i=e.a.length,0i&&(e.a+=Iyn(F(Ls,Bf,25,-i,15,1))))}function W$n(n,e){var t,i,r;for(t=n.o,r=u(u(ct(n.r,e),21),84).Kc();r.Ob();)i=u(r.Pb(),111),i.e.a=M3e(i,t.a),i.e.b=t.b*K(Y(i.b.We(JA)))}function Tpe(n,e){var t,i,r,c;return r=n.k,t=K(Y(k(n,(G(),k0)))),c=e.k,i=K(Y(k(e,k0))),c!=(Qn(),Xt)?-1:r!=Xt?1:t==i?0:t=0?n.hh(e,t,i):(n.eh()&&(i=(r=n.Vg(),r>=0?n.Qg(i):n.eh().ih(n,-1-r,null,i))),n.Sg(e,t,i))}function XQ(n,e){switch(e){case 7:!n.e&&(n.e=new Fn(di,n,7,4)),de(n.e);return;case 8:!n.d&&(n.d=new Fn(di,n,8,5)),de(n.d);return}FQ(n,e)}function qo(n,e){var t;t=n.Zc(e);try{return t.Pb()}catch(i){throw i=jt(i),I(i,109)?T(new vr("Can't get element "+e)):T(i)}}function VQ(n,e){this.e=n,e=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}n.C&&(t.b=n.C.b,t.c=n.C.c)}function K2(){K2=N,$k=new Rj(NM,0),Dk=new Rj(lN,1),Fk=new Rj(aN,2),xk=new Rj(dN,3),$k.a=!1,Dk.a=!0,Fk.a=!1,xk.a=!0}function d6(){d6=N,Lk=new Bj(NM,0),YA=new Bj(lN,1),ZA=new Bj(aN,2),Nk=new Bj(dN,3),Lk.a=!1,YA.a=!0,ZA.a=!1,Nk.a=!0}function Ipe(n){var e;e=n.a;do e=u(ve(new re(ue(xr(e).a.Kc(),new Mn))),17).c.i,e.k==(Qn(),gi)&&n.b.Fc(e);while(e.k==(Qn(),gi));n.b=va(n.b)}function Ope(n){var e,t,i;for(i=n.c.a,n.p=(pe(i),new du(i)),t=new E(i);t.at.b)return!0}return!1}function WF(n,e){return mi(n)?!!ozn[e]:n.hm?!!n.hm[e]:G0(n)?!!szn[e]:q0(n)?!!uzn[e]:!1}function gr(n,e,t){return t==null?(!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),IT(n.o,e)):(!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),XT(n.o,e,t)),n}function xpe(n,e,t,i){var r,c;c=e.Xe((Xe(),_g))?u(e.We(_g),21):n.j,r=Cge(c),r!=(SM(),TR)&&(t&&!GQ(r)||nY(d9e(n,r,i),e))}function BT(n,e,t,i){var r,c,o;return c=On(n.Tg(),e),r=e-n.Ah(),r<0?(o=n.Yg(c),o>=0?n._g(o,t,!0):Yd(n,c,t)):u(c,66).Nj().Pj(n,n.yh(),r,t,i)}function Lpe(n,e,t,i){var r,c,o;t.mh(e)&&(er(),R$(e)?(r=u(t.ah(e),153),upe(n,r)):(c=(o=e,o?u(i,49).xh(o):null),c&&Bte(t.ah(e),c)))}function Npe(n){switch(n.g){case 1:return Hd(),Ok;case 3:return Hd(),Ik;case 2:return Hd(),AR;case 4:return Hd(),MR;default:return null}}function QQ(n){switch(typeof n){case EL:return m1(n);case UZ:return Gt(n);case X2:return qn(),n?1231:1237;default:return n==null?0:md(n)}}function Bpe(n,e,t){if(n.e)switch(n.b){case 1:d1e(n.c,e,t);break;case 0:b1e(n.c,e,t)}else xAn(n.c,e,t);n.a[e.p][t.p]=n.c.i,n.a[t.p][e.p]=n.c.e}function Y$n(n){var e,t;if(n==null)return null;for(t=F(vh,q,193,n.length,0,2),e=0;e=0)return r;if(n.Fk()){for(i=0;i=r)throw T(new V0(e,r));if(n.hi()&&(i=n.Xc(t),i>=0&&i!=e))throw T(new Hn(yk));return n.mi(e,t)}function JQ(n,e){if(this.a=u(pe(n),245),this.b=u(pe(e),245),n.vd(e)>0||n==(qI(),cR)||e==(HI(),uR))throw T(new Hn("Invalid range: "+OAn(n,e)))}function Z$n(n){var e,t;for(this.b=new X,this.c=n,this.a=!1,t=new E(n.a);t.a0),(e&-e)==e)return Gt(e*Fu(n,31)*4656612873077393e-25);do t=Fu(n,31),i=t%e;while(t-i+(e-1)<0);return Gt(i)}function m1(n){lEn();var e,t,i;return t=":"+n,i=XA[t],i!=null?Gt((_n(i),i)):(i=Xin[t],e=i==null?I8e(n):Gt((_n(i),i)),c1e(),XA[t]=e,e)}function eFn(n,e,t){le(t,"Compound graph preprocessor",1),n.a=new Od,s_n(n,e,null),pje(n,e),Z9e(n),H(e,(G(),dun),n.a),n.a=null,Eu(n.b),ce(t)}function Kpe(n,e,t){switch(t.g){case 1:n.a=e.a/2,n.b=0;break;case 2:n.a=e.a,n.b=e.b/2;break;case 3:n.a=e.a/2,n.b=e.b;break;case 4:n.a=0,n.b=e.b/2}}function Hpe(n){var e,t,i;for(i=u(ct(n.a,(Vw(),IS)),15).Kc();i.Ob();)t=u(i.Pb(),101),e=hJ(t),b3(n,t,e[0],(Kd(),w0),0),b3(n,t,e[1],g0,1)}function qpe(n){var e,t,i;for(i=u(ct(n.a,(Vw(),OS)),15).Kc();i.Ob();)t=u(i.Pb(),101),e=hJ(t),b3(n,t,e[0],(Kd(),w0),0),b3(n,t,e[1],g0,1)}function XF(n){switch(n.g){case 0:return null;case 1:return new eOn;case 2:return new oG;default:throw T(new Hn(lB+(n.f!=null?n.f:""+n.g)))}}function k7(n,e,t){var i,r;for(lwe(n,e-n.s,t-n.t),r=new E(n.n);r.a1&&(c=_pe(n,e)),c}function VF(n){var e;return n.f&&n.f.kh()&&(e=u(n.f,49),n.f=u(pl(n,e),82),n.f!=e&&n.Db&4&&!(n.Db&1)&&et(n,new wi(n,9,8,e,n.f))),n.f}function QF(n){var e;return n.i&&n.i.kh()&&(e=u(n.i,49),n.i=u(pl(n,e),82),n.i!=e&&n.Db&4&&!(n.Db&1)&&et(n,new wi(n,9,7,e,n.i))),n.i}function ir(n){var e;return n.b&&n.b.Db&64&&(e=n.b,n.b=u(pl(n,e),18),n.b!=e&&n.Db&4&&!(n.Db&1)&&et(n,new wi(n,9,21,e,n.b))),n.b}function KT(n,e){var t,i,r;n.d==null?(++n.e,++n.f):(i=e.Sh(),u8e(n,n.f+1),r=(i&nt)%n.d.length,t=n.d[r],!t&&(t=n.d[r]=n.uj()),t.Fc(e),++n.f)}function nJ(n,e,t){var i;return e.Kj()?!1:e.Zj()!=-2?(i=e.zj(),i==null?t==null:tt(i,t)):e.Hj()==n.e.Tg()&&t==null}function HT(){var n;is(16,J_n),n=UIn(16),this.b=F(oR,nk,317,n,0,1),this.c=F(oR,nk,317,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function qh(n){vU.call(this),this.k=(Qn(),ti),this.j=(is(6,Pb),new Pc(6)),this.b=(is(2,Pb),new Pc(2)),this.d=new NI,this.f=new Zq,this.a=n}function zpe(n){var e,t;n.c.length<=1||(e=ZNn(n,(J(),ae)),Kxn(n,u(e.a,19).a,u(e.b,19).a),t=ZNn(n,Gn),Kxn(n,u(t.a,19).a,u(t.b,19).a))}function b6(){b6=N,zsn=new V9("SIMPLE",0),nK=new V9(PN,1),eK=new V9("LINEAR_SEGMENTS",2),Lm=new V9("BRANDES_KOEPF",3),Nm=new V9(EHn,4)}function eJ(n,e,t){p2(u(k(e,(nn(),Lt)),98))||(VX(n,e,k1(e,t)),VX(n,e,k1(e,(J(),ae))),VX(n,e,k1(e,Kn)),Pn(),bi(e.j,new i6n(n)))}function tFn(n,e,t,i){var r,c,o;for(r=u(ct(i?n.a:n.b,e),21),o=r.Kc();o.Ob();)if(c=u(o.Pb(),33),aM(n,t,c))return!0;return!1}function JF(n){var e,t;for(t=new ie(n);t.e!=t.i.gc();)if(e=u(oe(t),87),e.e||(!e.d&&(e.d=new Jt(ar,e,1)),e.d).i!=0)return!0;return!1}function YF(n){var e,t;for(t=new ie(n);t.e!=t.i.gc();)if(e=u(oe(t),87),e.e||(!e.d&&(e.d=new Jt(ar,e,1)),e.d).i!=0)return!0;return!1}function Upe(n){var e,t,i;for(e=0,i=new E(n.c.a);i.a102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function ex(n,e){if(n==null)throw T(new c2("null key in entry: null="+e));if(e==null)throw T(new c2("null value in entry: "+n+"=null"))}function Wpe(n,e){for(var t,i;n.Ob();)if(!e.Ob()||(t=n.Pb(),i=e.Pb(),!(B(t)===B(i)||t!=null&&tt(t,i))))return!1;return!e.Ob()}function rFn(n,e){var t;return t=A(M(ji,1),pr,25,15,[kF(n.a[0],e),kF(n.a[1],e),kF(n.a[2],e)]),n.d&&(t[0]=j.Math.max(t[0],t[2]),t[2]=t[0]),t}function cFn(n,e){var t;return t=A(M(ji,1),pr,25,15,[pT(n.a[0],e),pT(n.a[1],e),pT(n.a[2],e)]),n.d&&(t[0]=j.Math.max(t[0],t[2]),t[2]=t[0]),t}function Pa(){Pa=N,f_=new X9("GREEDY",0),Gcn=new X9(fHn,1),h_=new X9(PN,2),Em=new X9("MODEL_ORDER",3),jm=new X9("GREEDY_MODEL_ORDER",4)}function uFn(n,e){var t,i,r;for(n.b[e.g]=1,i=_e(e.d,0);i.b!=i.d.c;)t=u(Re(i),188),r=t.c,n.b[r.g]==1?Ke(n.a,t):n.b[r.g]==2?n.b[r.g]=1:uFn(n,r)}function Xpe(n,e){var t,i,r;for(r=new Pc(e.gc()),i=e.Kc();i.Ob();)t=u(i.Pb(),286),t.c==t.f?l4(n,t,t.c):U5e(n,t)||(r.c[r.c.length]=t);return r}function Vpe(n,e,t){var i,r,c,o,f;for(f=n.r+e,n.r+=e,n.d+=t,i=t/n.n.c.length,r=0,o=new E(n.n);o.ac&&Mt(e,c,null),e}function f3e(n,e){var t,i;if(i=n.gc(),e==null){for(t=0;t0&&(h+=r),l[a]=o,o+=f*(h+i)}function bFn(n){var e,t,i;for(i=n.f,n.n=F(ji,pr,25,i,15,1),n.d=F(ji,pr,25,i,15,1),e=0;e0?n.c:0),++r;n.b=i,n.d=c}function g3e(n,e){var t,i,r,c,o;for(i=0,r=0,t=0,o=new E(e);o.a0?n.g:0),++t;n.c=r,n.d=i}function mFn(n,e){var t;return t=A(M(ji,1),pr,25,15,[ZQ(n,(_o(),Zr),e),ZQ(n,Fc,e),ZQ(n,nc,e)]),n.f&&(t[0]=j.Math.max(t[0],t[2]),t[2]=t[0]),t}function p3e(n,e,t){var i;try{wM(n,e+n.j,t+n.k,!1,!0)}catch(r){throw r=jt(r),I(r,73)?(i=r,T(new vr(i.g+RM+e+Ji+t+")."))):T(r)}}function v3e(n,e,t){var i;try{wM(n,e+n.j,t+n.k,!0,!1)}catch(r){throw r=jt(r),I(r,73)?(i=r,T(new vr(i.g+RM+e+Ji+t+")."))):T(r)}}function kFn(n){var e;li(n,(nn(),y0))&&(e=u(k(n,y0),21),e.Hc((jb(),So))?(e.Mc(So),e.Fc(Po)):e.Hc(Po)&&(e.Mc(Po),e.Fc(So)))}function yFn(n){var e;li(n,(nn(),y0))&&(e=u(k(n,y0),21),e.Hc((jb(),Oo))?(e.Mc(Oo),e.Fc(eo)):e.Hc(eo)&&(e.Mc(eo),e.Fc(Oo)))}function m3e(n,e,t){le(t,"Self-Loop ordering",1),Rt(Xc(gt(gt(qr(new $n(null,new xn(e.b,16)),new P0n),new I0n),new O0n),new D0n),new O5n(n)),ce(t)}function j7(n,e,t,i){var r,c;for(r=e;r0&&(r.b+=e),r}function zT(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),37),M6(t,0,r.b),r.b+=t.f.b+e,r.a=j.Math.max(r.a,t.f.a);return r.a>0&&(r.a+=e),r}function EFn(n){var e,t,i;for(i=nt,t=new E(n.a);t.a>16==6?n.Cb.ih(n,5,Vo,e):(i=ir(u(On((t=u(Rn(n,16),26),t||n.zh()),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function C3e(n){k3();var e=n.e;if(e&&e.stack){var t=e.stack,i=e+` -`;return t.substring(0,i.length)==i&&(t=t.substring(i.length)),t.split(` -`)}return[]}function T3e(n){var e;return e=(_In(),kzn),e[n>>>28]|e[n>>24&15]<<4|e[n>>20&15]<<8|e[n>>16&15]<<12|e[n>>12&15]<<16|e[n>>8&15]<<20|e[n>>4&15]<<24|e[n&15]<<28}function MFn(n){var e,t,i;n.b==n.c&&(i=n.a.length,t=KV(j.Math.max(8,i))<<1,n.b!=0?(e=bo(n.a,t),XIn(n,e,i),n.a=e,n.b=0):Wmn(n.a,t),n.c=i)}function M3e(n,e){var t;return t=n.b,t.Xe((Xe(),Bu))?t.Hf()==(J(),Gn)?-t.rf().a-K(Y(t.We(Bu))):e+K(Y(t.We(Bu))):t.Hf()==(J(),Gn)?-t.rf().a:e}function E7(n){var e;return n.b.c.length!=0&&u(un(n.b,0),70).a?u(un(n.b,0),70).a:(e=WD(n),e??""+(n.c?Fr(n.c.a,n,0):-1))}function UT(n){var e;return n.f.c.length!=0&&u(un(n.f,0),70).a?u(un(n.f,0),70).a:(e=WD(n),e??""+(n.i?Fr(n.i.j,n,0):-1))}function A3e(n,e){var t,i;if(e<0||e>=n.gc())return null;for(t=e;t0?n.c:0),r=j.Math.max(r,e.d),++i;n.e=c,n.b=r}function P3e(n){var e,t;if(!n.b)for(n.b=mC(u(n.f,118).Ag().i),t=new ie(u(n.f,118).Ag());t.e!=t.i.gc();)e=u(oe(t),137),W(n.b,new XI(e));return n.b}function I3e(n,e){var t,i,r;if(e.dc())return o3(),o3(),xy;for(t=new Pjn(n,e.gc()),r=new ie(n);r.e!=r.i.gc();)i=oe(r),e.Hc(i)&&me(t,i);return t}function oJ(n,e,t,i){return e==0?i?(!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),n.o):(!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),N8(n.o)):BT(n,e,t,i)}function fx(n){var e,t;if(n.rb)for(e=0,t=n.rb.i;e>22),r+=i>>22,r<0)?!1:(n.l=t&Lu,n.m=i&Lu,n.h=r&Wh,!0)}function F3e(n,e,t,i,r,c,o){var f,h;return!(e.Ae()&&(h=n.a.ue(t,i),h<0||!r&&h==0)||e.Be()&&(f=n.a.ue(t,c),f>0||!o&&f==0))}function x3e(n,e){V3();var t;if(t=n.j.g-e.j.g,t!=0)return 0;switch(n.j.g){case 2:return DF(e,Lcn)-DF(n,Lcn);case 4:return DF(n,xcn)-DF(e,xcn)}return 0}function L3e(n){switch(n.g){case 0:return a_;case 1:return d_;case 2:return b_;case 3:return w_;case 4:return FS;case 5:return g_;default:return null}}function Cr(n,e,t){var i,r;return i=(r=new _I,Ca(r,e),Ic(r,t),me((!n.c&&(n.c=new V(P0,n,12,10)),n.c),r),r),d1(i,0),hb(i,1),p1(i,!0),g1(i,!0),i}function H2(n,e){var t,i;if(e>=n.i)throw T(new xO(e,n.i));return++n.j,t=n.g[e],i=n.i-e-1,i>0&&gc(n.g,e+1,n.g,e,i),Mt(n.g,--n.i,null),n.fi(e,t),n.ci(),t}function AFn(n,e){var t,i;return n.Db>>16==17?n.Cb.ih(n,21,ro,e):(i=ir(u(On((t=u(Rn(n,16),26),t||n.zh()),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function N3e(n){var e,t,i,r;for(Pn(),bi(n.c,n.a),r=new E(n.c);r.at.a.c.length))throw T(new Hn("index must be >= 0 and <= layer node count"));n.c&&Qc(n.c.a,n),n.c=t,t&&Q0(t.a,e,n)}function DFn(n,e){var t,i,r;for(i=new re(ue(Kh(n).a.Kc(),new Mn));Se(i);)return t=u(ve(i),17),r=u(e.Kb(t),10),new Zy(pe(r.n.b+r.o.b/2));return Rv(),Rv(),rR}function $Fn(n,e){this.c=new we,this.a=n,this.b=e,this.d=u(k(n,(G(),Ig)),304),B(k(n,(nn(),ysn)))===B((K8(),xS))?this.e=new h9n:this.e=new f9n}function q3e(n,e){var t,i,r,c;for(c=0,i=new E(n);i.a>16==6?n.Cb.ih(n,6,di,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Dc(),XP)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function bJ(n,e){var t,i;return n.Db>>16==7?n.Cb.ih(n,1,Iy,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Dc(),e1n)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function wJ(n,e){var t,i;return n.Db>>16==9?n.Cb.ih(n,9,Pt,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Dc(),i1n)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function xFn(n,e){var t,i;return n.Db>>16==5?n.Cb.ih(n,9,iI,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Sn(),L1)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function gJ(n,e){var t,i;return n.Db>>16==3?n.Cb.ih(n,0,Dy,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Sn(),x1)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function LFn(n,e){var t,i;return n.Db>>16==7?n.Cb.ih(n,6,Vo,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Sn(),B1)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function NFn(){this.a=new q2n,this.g=new HT,this.j=new HT,this.b=new we,this.d=new HT,this.i=new HT,this.k=new we,this.c=new we,this.e=new we,this.f=new we}function W3e(n,e,t){var i,r,c;for(t<0&&(t=0),c=n.i,r=t;rJL)return u4(n,i);if(i==n)return!0}}return!1}function V3e(n){switch(dE(),n.q.g){case 5:yLn(n,(J(),Kn)),yLn(n,ae);break;case 4:gNn(n,(J(),Kn)),gNn(n,ae);break;default:g_n(n,(J(),Kn)),g_n(n,ae)}}function Q3e(n){switch(dE(),n.q.g){case 5:LLn(n,(J(),Vn)),LLn(n,Gn);break;case 4:W$n(n,(J(),Vn)),W$n(n,Gn);break;default:p_n(n,(J(),Vn)),p_n(n,Gn)}}function J3e(n){var e,t;e=u(k(n,(Go(),eWn)),19),e?(t=e.a,t==0?H(n,(dl(),cS),new OF):H(n,(dl(),cS),new EC(t))):H(n,(dl(),cS),new EC(1))}function Y3e(n,e){var t;switch(t=n.i,e.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-t.o.a;case 3:return n.n.b-t.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function Z3e(n,e){switch(n.g){case 0:return e==(Ss(),xl)?TS:MS;case 1:return e==(Ss(),xl)?TS:Hk;case 2:return e==(Ss(),xl)?Hk:MS;default:return Hk}}function T7(n,e){var t,i,r;for(Qc(n.a,e),n.e-=e.r+(n.a.c.length==0?0:n.c),r=ttn,i=new E(n.a);i.a>16==3?n.Cb.ih(n,12,Pt,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Dc(),n1n)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function vJ(n,e){var t,i;return n.Db>>16==11?n.Cb.ih(n,10,Pt,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Dc(),t1n)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function BFn(n,e){var t,i;return n.Db>>16==10?n.Cb.ih(n,11,ro,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Sn(),N1)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function RFn(n,e){var t,i;return n.Db>>16==10?n.Cb.ih(n,12,co,e):(i=ir(u(On((t=u(Rn(n,16),26),t||(Sn(),lw)),n.Db>>16),18)),n.Cb.ih(n,i.n,i.f,e))}function qs(n){var e;return!(n.Bb&1)&&n.r&&n.r.kh()&&(e=u(n.r,49),n.r=u(pl(n,e),138),n.r!=e&&n.Db&4&&!(n.Db&1)&&et(n,new wi(n,9,8,e,n.r))),n.r}function lx(n,e,t){var i;return i=A(M(ji,1),pr,25,15,[qJ(n,(_o(),Zr),e,t),qJ(n,Fc,e,t),qJ(n,nc,e,t)]),n.f&&(i[0]=j.Math.max(i[0],i[2]),i[2]=i[0]),i}function n4e(n,e){var t,i,r;if(r=Xpe(n,e),r.c.length!=0)for(bi(r,new e0n),t=r.c.length,i=0;i>19,l=e.h>>19,h!=l?l-h:(r=n.h,f=e.h,r!=f?r-f:(i=n.m,o=e.m,i!=o?i-o:(t=n.l,c=e.l,t-c)))}function WT(){WT=N,urn=(dM(),ER),crn=new In(snn,urn),rrn=(RC(),jR),irn=new In(onn,rrn),trn=($T(),yR),ern=new In(fnn,trn),nrn=new In(hnn,(qn(),!0))}function g6(n,e,t){var i,r;i=e*t,I(n.g,145)?(r=S2(n),r.f.d?r.f.a||(n.d.a+=i+bf):(n.d.d-=i+bf,n.d.a+=i+bf)):I(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function _Fn(n,e,t){var i,r,c,o,f;for(r=n[t.g],f=new E(e.d);f.a0?n.g:0),++t;e.b=i,e.e=r}function KFn(n){var e,t,i;if(i=n.b,f7n(n.i,i.length)){for(t=i.length*2,n.b=F(oR,nk,317,t,0,1),n.c=F(oR,nk,317,t,0,1),n.f=t-1,n.i=0,e=n.a;e;e=e.c)D7(n,e,e);++n.g}}function o4e(n,e,t,i){var r,c,o,f;for(r=0;ro&&(f=o/i),r>c&&(h=c/r),If(n,j.Math.min(f,h)),n}function h4e(){mM();var n,e;try{if(e=u(PJ((Z1(),uo),_4),2014),e)return e}catch(t){if(t=jt(t),I(t,102))n=t,gW((je(),n));else throw T(t)}return new R2n}function l4e(){DPn();var n,e;try{if(e=u(PJ((Z1(),uo),Ka),2024),e)return e}catch(t){if(t=jt(t),I(t,102))n=t,gW((je(),n));else throw T(t)}return new r3n}function a4e(){mM();var n,e;try{if(e=u(PJ((Z1(),uo),Vs),1941),e)return e}catch(t){if(t=jt(t),I(t,102))n=t,gW((je(),n));else throw T(t)}return new lpn}function d4e(n,e,t){var i,r;return r=n.e,n.e=e,n.Db&4&&!(n.Db&1)&&(i=new wi(n,1,4,r,e),t?t.Ei(i):t=i),r!=e&&(e?t=j4(n,uM(n,e),t):t=j4(n,n.a,t)),t}function HFn(){Tj.call(this),this.e=-1,this.a=!1,this.p=Bi,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Bi}function b4e(n,e){var t,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=e.b.d.d,e.a||(r+=e.b.d.a),t=Zt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function w4e(n,e){var t,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=e.b.b.d,e.a||(r+=e.b.b.a),t=Zt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function g4e(n,e){var t,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=e.b.g.d,e.a||(r+=e.b.g.a),t=Zt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function kJ(){kJ=N,wWn=ju(Ze(Ze(Ze(new hi,(Qi(),Cc),(rr(),ycn)),Cc,jcn),Ir,Ecn),Ir,hcn),pWn=Ze(Ze(new hi,Cc,icn),Cc,lcn),gWn=ju(new hi,Ir,dcn)}function p4e(n){var e,t,i,r,c;for(e=u(k(n,(G(),Am)),83),c=n.n,i=e.Cc().Kc();i.Ob();)t=u(i.Pb(),306),r=t.i,r.c+=c.a,r.d+=c.b,t.c?rBn(t):cBn(t);H(n,Am,null)}function v4e(n,e,t){var i,r;switch(r=n.b,i=r.d,e.g){case 1:return-i.d-t;case 2:return r.o.a+i.c+t;case 3:return r.o.b+i.a+t;case 4:return-i.b-t;default:return-1}}function m4e(n){var e,t,i,r,c;if(i=0,r=D4,n.b)for(e=0;e<360;e++)t=e*.017453292519943295,hZ(n,n.d,0,0,ag,t),c=n.b.ig(n.d),c0&&(o=(c&nt)%n.d.length,r=kY(n,o,c,e),r)?(f=r.ed(t),f):(i=n.tj(c,e,t),n.c.Fc(i),null)}function EJ(n,e){var t,i,r,c;switch(w1(n,e)._k()){case 3:case 2:{for(t=ig(e),r=0,c=t.i;r=0;i--)if(An(n[i].d,e)||An(n[i].d,t)){n.length>=i+1&&n.splice(0,i+1);break}return n}function M7(n,e){var t;return $r(n)&&$r(e)&&(t=n/e,ik0&&(n.b+=2,n.a+=i):(n.b+=1,n.a+=j.Math.min(i,r))}function VFn(n,e){var t,i;if(i=!1,mi(e)&&(i=!0,j2(n,new Z0(Ce(e)))),i||I(e,236)&&(i=!0,j2(n,(t=PU(u(e,236)),new nj(t)))),!i)throw T(new UI(Btn))}function N4e(n,e,t,i){var r,c,o;return r=new Lh(n.e,1,10,(o=e.c,I(o,88)?u(o,26):(Sn(),so)),(c=t.c,I(c,88)?u(c,26):(Sn(),so)),v1(n,e),!1),i?i.Ei(r):i=r,i}function MJ(n){var e,t;switch(u(k(Gi(n),(nn(),dsn)),420).g){case 0:return e=n.n,t=n.o,new fn(e.a+t.a/2,e.b+t.b/2);case 1:return new mr(n.n);default:return null}}function A7(){A7=N,LS=new c5(Xh,0),Ycn=new c5("LEFTUP",1),nun=new c5("RIGHTUP",2),Jcn=new c5("LEFTDOWN",3),Zcn=new c5("RIGHTDOWN",4),p_=new c5("BALANCED",5)}function B4e(n,e,t){var i,r,c;if(i=Zt(n.a[e.p],n.a[t.p]),i==0){if(r=u(k(e,(G(),gp)),15),c=u(k(t,gp),15),r.Hc(t))return-1;if(c.Hc(e))return 1}return i}function R4e(n){switch(n.g){case 1:return new Ogn;case 2:return new Dgn;case 3:return new Ign;case 0:return null;default:throw T(new Hn(lB+(n.f!=null?n.f:""+n.g)))}}function AJ(n,e,t){switch(e){case 1:!n.n&&(n.n=new V(Br,n,1,7)),de(n.n),!n.n&&(n.n=new V(Br,n,1,7)),Dt(n.n,u(t,14));return;case 2:Q5(n,Ce(t));return}WV(n,e,t)}function SJ(n,e,t){switch(e){case 3:Bd(n,K(Y(t)));return;case 4:Rd(n,K(Y(t)));return;case 5:Zc(n,K(Y(t)));return;case 6:nu(n,K(Y(t)));return}AJ(n,e,t)}function VT(n,e,t){var i,r,c;c=(i=new _I,i),r=af(c,e,null),r&&r.Fi(),Ic(c,t),me((!n.c&&(n.c=new V(P0,n,12,10)),n.c),c),d1(c,0),hb(c,1),p1(c,!0),g1(c,!0)}function PJ(n,e){var t,i,r;return t=n5(n.g,e),I(t,235)?(r=u(t,235),r.Qh()==null,r.Nh()):I(t,498)?(i=u(t,1938),r=i.b,r):null}function _4e(n,e,t,i){var r,c;return pe(e),pe(t),c=u(M5(n.d,e),19),NPn(!!c,"Row %s not in %s",e,n.e),r=u(M5(n.b,t),19),NPn(!!r,"Column %s not in %s",t,n.c),HOn(n,c.a,r.a,i)}function QFn(n,e,t,i,r,c,o){var f,h,l,a,d;if(a=r[c],l=c==o-1,f=l?i:0,d=pFn(f,a),i!=10&&A(M(n,o-c),e[c],t[c],f,d),!l)for(++c,h=0;h1||f==-1?(c=u(h,15),r.Wb(W2e(n,c))):r.Wb(Zx(n,u(h,56)))))}function W4e(n,e,t,i){N8n();var r=iR;function c(){for(var o=0;ooB)return t;r>-1e-6&&++t}return t}function DJ(n,e){var t;e!=n.b?(t=null,n.b&&(t=sC(n.b,n,-4,t)),e&&(t=_2(e,n,-4,t)),t=DDn(n,e,t),t&&t.Fi()):n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,3,e,e))}function ZFn(n,e){var t;e!=n.f?(t=null,n.f&&(t=sC(n.f,n,-1,t)),e&&(t=_2(e,n,-1,t)),t=$Dn(n,e,t),t&&t.Fi()):n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,0,e,e))}function nxn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new i1,e=t.Kc();e.Ob();)dr(i,(ht(),Ce(e.Pb()))),i.a+=" ";return NO(i,i.a.length-1)}function exn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new i1,e=t.Kc();e.Ob();)dr(i,(ht(),Ce(e.Pb()))),i.a+=" ";return NO(i,i.a.length-1)}function eve(n,e,t){var i,r;return i=n.c[e.c.p][e.p],r=n.c[t.c.p][t.p],i.a!=null&&r.a!=null?TD(i.a,r.a):i.a!=null?-1:r.a!=null?1:0}function tve(n,e){var t,i,r,c,o,f;if(e)for(c=e.a.length,t=new fa(c),f=(t.b-t.a)*t.c<0?(nl(),Jl):new rl(t);f.Ob();)o=u(f.Pb(),19),r=j3(e,o.a),i=new tmn(n),zhe(i.a,r)}function ive(n,e){var t,i,r,c,o,f;if(e)for(c=e.a.length,t=new fa(c),f=(t.b-t.a)*t.c<0?(nl(),Jl):new rl(t);f.Ob();)o=u(f.Pb(),19),r=j3(e,o.a),i=new W6n(n),Ghe(i.a,r)}function rve(n){var e;if(n!=null&&n.length>0&&Di(n,n.length-1)==33)try{return e=Yxn(Yu(n,0,n.length-1)),e.e==null}catch(t){if(t=jt(t),!I(t,32))throw T(t)}return!1}function txn(n,e,t){var i,r,c;return i=e.ak(),c=e.dd(),r=i.$j()?hl(n,3,i,null,c,m4(n,i,c,I(i,99)&&(u(i,18).Bb&Yi)!=0),!0):hl(n,1,i,i.zj(),c,-1,!0),t?t.Ei(r):t=r,t}function cve(){var n,e,t;for(e=0,n=0;n<1;n++){if(t=CY((Te(n,1),"X".charCodeAt(n))),t==0)throw T(new Ee("Unknown Option: "+"X".substr(n)));e|=t}return e}function uve(n,e,t){var i,r,c;switch(i=Gi(e),r=jT(i),c=new wc,Hr(c,e),t.g){case 1:ui(c,b7(B2(r)));break;case 2:ui(c,B2(r))}return H(c,(nn(),Jb),Y(k(n,Jb))),c}function $J(n){var e,t;return e=u(ve(new re(ue(xr(n.a).a.Kc(),new Mn))),17),t=u(ve(new re(ue(ni(n.a).a.Kc(),new Mn))),17),on(sn(k(e,(G(),mf))))||on(sn(k(t,mf)))}function Vw(){Vw=N,SS=new W9("ONE_SIDE",0),IS=new W9("TWO_SIDES_CORNER",1),OS=new W9("TWO_SIDES_OPPOSING",2),PS=new W9("THREE_SIDES",3),AS=new W9("FOUR_SIDES",4)}function wx(n,e,t,i,r){var c,o;c=u(es(gt(e.Oc(),new Jbn),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[(hf(),hs)]))),15),o=u(ma(n.b,t,i),15),r==0?o.Wc(0,c):o.Gc(c)}function sve(n,e){var t,i,r,c,o;for(c=new E(e.a);c.a0&&SFn(this,this.c-1,(J(),Vn)),this.c0&&n[0].length>0&&(this.c=on(sn(k(Gi(n[0][0]),(G(),wun))))),this.a=F(cJn,q,2018,n.length,0,2),this.b=F(uJn,q,2019,n.length,0,2),this.d=new TDn}function ave(n){return n.c.length==0?!1:(Ln(0,n.c.length),u(n.c[0],17)).c.i.k==(Qn(),gi)?!0:C3(Xc(new $n(null,new xn(n,16)),new Iwn),new Own)}function dve(n,e,t){return le(t,"Tree layout",1),pC(n.b),ih(n.b,(c4(),gP),gP),ih(n.b,qm,qm),ih(n.b,uy,uy),ih(n.b,Gm,Gm),n.a=EM(n.b,e),H8e(n,e,kc(t,1)),ce(t),e}function rxn(n,e){var t,i,r,c,o,f,h;for(f=Cb(e),c=e.f,h=e.g,o=j.Math.sqrt(c*c+h*h),r=0,i=new E(f);i.a=0?(t=M7(n,$M),i=p7(n,$M)):(e=J0(n,1),t=M7(e,5e8),i=p7(e,5e8),i=qi(Ih(i,1),ci(n,1))),rf(Ih(i,32),ci(t,fr))}function sxn(n,e,t){var i,r;switch(i=(ne(e.b!=0),u(Ts(e,e.a.a),8)),t.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return r=_e(e,0),y8(r,i),e}function oxn(n,e,t,i){var r,c,o,f,h;switch(h=n.b,c=e.d,o=c.j,f=WQ(o,h.d[o.g],t),r=ot(Qr(c.n),c.a),c.j.g){case 1:case 3:f.a+=r.a;break;case 2:case 4:f.b+=r.b}Kt(i,f,i.c.b,i.c)}function Tve(n,e,t){var i,r,c,o;for(o=Fr(n.e,e,0),c=new Jq,c.b=t,i=new Ii(n.e,o);i.b1;e>>=1)e&1&&(i=Fw(i,t)),t.d==1?t=Fw(t,t):t=new D$n(KBn(t.a,t.d,F(be,Le,25,t.d<<1,15,1)));return i=Fw(i,t),i}function _J(){_J=N;var n,e,t,i;for(Kin=F(ji,pr,25,25,15,1),Hin=F(ji,pr,25,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Hin[e]=i,i*=.5;for(t=1,n=24;n>=0;n--)Kin[n]=t,t*=.5}function Ove(n){var e,t;if(on(sn(hn(n,(nn(),Qb))))){for(t=new re(ue(Gh(n).a.Kc(),new Mn));Se(t);)if(e=u(ve(t),79),Jd(e)&&on(sn(hn(e,Wa))))return!0}return!1}function fxn(n,e){var t,i,r;ri(n.f,e)&&(e.b=n,i=e.c,Fr(n.j,i,0)!=-1||W(n.j,i),r=e.d,Fr(n.j,r,0)!=-1||W(n.j,r),t=e.a.b,t.c.length!=0&&(!n.i&&(n.i=new K$n(n)),Wbe(n.i,t)))}function Dve(n){var e,t,i,r,c;return t=n.c.d,i=t.j,r=n.d.d,c=r.j,i==c?t.p=0&&An(n.substr(e,3),"GMT")||e>=0&&An(n.substr(e,3),"UTC"))&&(t[0]=e+3),dZ(n,t,i)}function Fve(n,e){var t,i,r,c,o;for(c=n.g.a,o=n.g.b,i=new E(n.d);i.at;c--)n[c]|=e[c-t-1]>>>o,n[c-1]=e[c-t-1]<=n.f)break;c.c[c.c.length]=t}return c}function HJ(n){var e,t,i,r;for(e=null,r=new E(n.wf());r.a0&&gc(n.g,e,n.g,e+i,f),o=t.Kc(),n.i+=i,r=0;rc&&Qfe(l,cIn(t[f],Rin))&&(r=f,c=h);return r>=0&&(i[0]=e+c),r}function Kve(n,e){var t;if(t=tyn(n.b.Hf(),e.b.Hf()),t!=0)return t;switch(n.b.Hf().g){case 1:case 2:return Uc(n.b.sf(),e.b.sf());case 3:case 4:return Uc(e.b.sf(),n.b.sf())}return 0}function Hve(n){var e,t,i;for(i=n.e.c.length,n.a=oa(be,[q,Le],[48,25],15,[i,i],2),t=new E(n.c);t.a>4&15,c=n[i]&15,o[r++]=r1n[t],o[r++]=r1n[c];return Hs(o,0,o.length)}function zve(n,e,t){var i,r,c;return i=e.ak(),c=e.dd(),r=i.$j()?hl(n,4,i,c,null,m4(n,i,c,I(i,99)&&(u(i,18).Bb&Yi)!=0),!0):hl(n,i.Kj()?2:1,i,c,i.zj(),-1,!0),t?t.Ei(r):t=r,t}function tu(n){var e,t;return n>=Yi?(e=rk+(n-Yi>>10&1023)&Ut,t=56320+(n-Yi&1023)&Ut,String.fromCharCode(e)+(""+String.fromCharCode(t))):String.fromCharCode(n&Ut)}function Uve(n,e){W0();var t,i,r,c;return r=u(u(ct(n.r,e),21),84),r.gc()>=2?(i=u(r.Kc().Pb(),111),t=n.u.Hc((Tu(),s9)),c=n.u.Hc(Pp),!i.a&&!t&&(r.gc()==2||c)):!1}function axn(n,e,t,i,r){var c,o,f;for(c=VNn(n,e,t,i,r),f=!1;!c;)rM(n,r,!0),f=!0,c=VNn(n,e,t,i,r);f&&rM(n,r,!1),o=rF(r),o.c.length!=0&&(n.d&&n.d.lg(o),axn(n,r,t,i,o))}function ZT(){ZT=N,uH=new l5(Xh,0),Dhn=new l5("DIRECTED",1),Fhn=new l5("UNDIRECTED",2),Ihn=new l5("ASSOCIATION",3),$hn=new l5("GENERALIZATION",4),Ohn=new l5("DEPENDENCY",5)}function Wve(n,e){var t;if(!nf(n))throw T(new Dr(sqn));switch(t=nf(n),e.g){case 1:return-(n.j+n.f);case 2:return n.i-t.g;case 3:return n.j-t.f;case 4:return-(n.i+n.g)}return 0}function f4(n,e){var t,i;for(_n(e),i=n.b.c.length,W(n.b,e);i>0;){if(t=i,i=(i-1)/2|0,n.a.ue(un(n.b,i),e)<=0)return Es(n.b,t,e),!0;Es(n.b,t,un(n.b,i))}return Es(n.b,i,e),!0}function qJ(n,e,t,i){var r,c;if(r=0,t)r=pT(n.a[t.g][e.g],i);else for(c=0;c=f)}function GJ(n,e,t,i){var r;if(r=!1,mi(i)&&(r=!0,l3(e,t,Ce(i))),r||q0(i)&&(r=!0,GJ(n,e,t,i)),r||I(i,236)&&(r=!0,la(e,t,u(i,236))),!r)throw T(new UI(Btn))}function Vve(n,e){var t,i,r;if(t=e.Hh(n.a),t&&(r=Ko((!t.b&&(t.b=new qu((Sn(),nr),tc,t)),t.b),Xs),r!=null)){for(i=1;i<(gu(),S1n).length;++i)if(An(S1n[i],r))return i}return 0}function Qve(n,e){var t,i,r;if(t=e.Hh(n.a),t&&(r=Ko((!t.b&&(t.b=new qu((Sn(),nr),tc,t)),t.b),Xs),r!=null)){for(i=1;i<(gu(),P1n).length;++i)if(An(P1n[i],r))return i}return 0}function dxn(n,e){var t,i,r,c;if(_n(e),c=n.a.gc(),c0?1:0;c.a[r]!=t;)c=c.a[r],r=n.a.ue(t.d,c.d)>0?1:0;c.a[r]=i,i.b=t.b,i.a[0]=t.a[0],i.a[1]=t.a[1],t.a[0]=null,t.a[1]=null}function Zve(n){Tu();var e,t;return e=pt(n1,A(M(qP,1),z,273,0,[Gl])),!(Z8(hC(e,n))>1||(t=pt(s9,A(M(qP,1),z,273,0,[u9,Pp])),Z8(hC(t,n))>1))}function UJ(n,e){var t;t=vc((Z1(),uo),n),I(t,498)?kr(uo,n,new Dkn(this,e)):kr(uo,n,this),jx(this,e),e==(Qp(),g1n)?(this.wb=u(this,1939),u(e,1941)):this.wb=(ol(),Nn)}function n5e(n){var e,t,i;if(n==null)return null;for(e=null,t=0;t=j1?"error":i>=900?"warn":i>=800?"info":"log"),ZCn(t,n.a),n.b&&UY(e,t,n.b,"Exception: ",!0))}function k(n,e){var t,i;return i=(!n.q&&(n.q=new we),te(n.q,e)),i??(t=e.wg(),I(t,4)&&(t==null?(!n.q&&(n.q=new we),O2(n.q,e)):(!n.q&&(n.q=new we),it(n.q,e,t))),t)}function Qi(){Qi=N,Vf=new U9("P1_CYCLE_BREAKING",0),$l=new U9("P2_LAYERING",1),Hc=new U9("P3_NODE_ORDERING",2),Cc=new U9("P4_NODE_PLACEMENT",3),Ir=new U9("P5_EDGE_ROUTING",4)}function pxn(n,e){var t,i,r,c,o;for(r=e==1?KR:_R,i=r.a.ec().Kc();i.Ob();)for(t=u(i.Pb(),103),o=u(ct(n.f.c,t),21).Kc();o.Ob();)c=u(o.Pb(),46),Qc(n.b.b,c.b),Qc(n.b.a,u(c.b,81).d)}function e5e(n,e){X5();var t;if(n.c==e.c){if(n.b==e.b||Mbe(n.b,e.b)){if(t=xre(n.b)?1:-1,n.a&&!e.a)return t;if(!n.a&&e.a)return-t}return Uc(n.b.g,e.b.g)}else return Zt(n.c,e.c)}function t5e(n,e){var t;le(e,"Hierarchical port position processing",1),t=n.b,t.c.length>0&&LBn((Ln(0,t.c.length),u(t.c[0],29)),n),t.c.length>1&&LBn(u(un(t,t.c.length-1),29),n),ce(e)}function vxn(n,e){var t,i,r;if(XJ(n,e))return!0;for(i=new E(e);i.a=r||e<0)throw T(new vr(NB+e+Ra+r));if(t>=r||t<0)throw T(new vr(BB+t+Ra+r));return e!=t?i=(c=n.Ti(t),n.Hi(e,c),c):i=n.Oi(t),i}function yxn(n){var e,t,i;if(i=n,n)for(e=0,t=n.Ug();t;t=t.Ug()){if(++e>JL)return yxn(t);if(i=t,t==n)throw T(new Dr("There is a cycle in the containment hierarchy of "+n))}return i}function kl(n){var e,t,i;for(i=new ka(Ji,"[","]"),t=n.Kc();t.Ob();)e=t.Pb(),xh(i,B(e)===B(n)?"(this Collection)":e==null?iu:Lr(e));return i.a?i.e.length==0?i.a.a:i.a.a+(""+i.e):i.c}function XJ(n,e){var t,i;if(i=!1,e.gc()<2)return!1;for(t=0;ti&&(Te(e-1,n.length),n.charCodeAt(e-1)<=32);)--e;return i>0||e1&&(n.j.b+=n.e)):(n.j.a+=t.a,n.j.b=j.Math.max(n.j.b,t.b),n.d.c.length>1&&(n.j.a+=n.e))}function yl(){yl=N,eXn=A(M(Zi,1),hc,61,0,[(J(),Kn),Vn,ae]),nXn=A(M(Zi,1),hc,61,0,[Vn,ae,Gn]),tXn=A(M(Zi,1),hc,61,0,[ae,Gn,Kn]),iXn=A(M(Zi,1),hc,61,0,[Gn,Kn,Vn])}function r5e(n,e,t,i){var r,c,o,f,h,l,a;if(o=n.c.d,f=n.d.d,o.j!=f.j)for(a=n.b,r=o.j,h=null;r!=f.j;)h=e==0?yT(r):pQ(r),c=WQ(r,a.d[r.g],t),l=WQ(h,a.d[h.g],t),Ke(i,ot(c,l)),r=h}function c5e(n,e,t,i){var r,c,o,f,h;return o=PFn(n.a,e,t),f=u(o.a,19).a,c=u(o.b,19).a,i&&(h=u(k(e,(G(),Mu)),10),r=u(k(t,Mu),10),h&&r&&(xAn(n.b,h,r),f+=n.b.i,c+=n.b.e)),f>c}function Exn(n){var e,t,i,r,c,o,f,h,l;for(this.a=Y$n(n),this.b=new X,t=n,i=0,r=t.length;iZO(n.d).c?(n.i+=n.g.c,BF(n.d)):ZO(n.d).c>ZO(n.g).c?(n.e+=n.d.c,BF(n.g)):(n.i+=nCn(n.g),n.e+=nCn(n.d),BF(n.g),BF(n.d))}function o5e(n,e,t){var i,r,c,o;for(c=e.q,o=e.r,new aa((No(),Bl),e,c,1),new aa(Bl,c,o,1),r=new E(t);r.af&&(h=f/i),r>c&&(l=c/r),o=j.Math.min(h,l),n.a+=o*(e.a-n.a),n.b+=o*(e.b-n.b)}function a5e(n,e,t,i,r){var c,o;for(o=!1,c=u(un(t.b,0),33);Aye(n,e,c,i,r)&&(o=!0,z4e(t,c),t.b.c.length!=0);)c=u(un(t.b,0),33);return t.b.c.length==0&&T7(t.j,t),o&>(e.q),o}function d5e(n,e){eg();var t,i,r,c;if(e.b<2)return!1;for(c=_e(e,0),t=u(Re(c),8),i=t;c.b!=c.d.c;){if(r=u(Re(c),8),Kx(n,i,r))return!0;i=r}return!!Kx(n,i,t)}function QJ(n,e,t,i){var r,c;return t==0?(!n.o&&(n.o=new Wu((Dc(),Ul),S0,n,0)),yE(n.o,e,i)):(c=u(On((r=u(Rn(n,16),26),r||n.zh()),t),66),c.Nj().Rj(n,Rc(n),t-ee(n.zh()),e,i))}function jx(n,e){var t;e!=n.sb?(t=null,n.sb&&(t=u(n.sb,49).ih(n,1,h9,t)),e&&(t=u(e,49).gh(n,1,h9,t)),t=hQ(n,e,t),t&&t.Fi()):n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,4,e,e))}function b5e(n,e){var t,i,r,c;if(e)r=Bh(e,"x"),t=new Z6n(n),D3(t.a,(_n(r),r)),c=Bh(e,"y"),i=new nmn(n),F3(i.a,(_n(c),c));else throw T(new Af("All edge sections need an end point."))}function w5e(n,e){var t,i,r,c;if(e)r=Bh(e,"x"),t=new Q6n(n),$3(t.a,(_n(r),r)),c=Bh(e,"y"),i=new J6n(n),x3(i.a,(_n(c),c));else throw T(new Af("All edge sections need a start point."))}function g5e(n,e){var t,i,r,c,o,f,h;for(i=fDn(n),c=0,f=i.length;c>22-e,r=n.h<>22-e):e<44?(t=0,i=n.l<>44-e):(t=0,i=0,r=n.l<n)throw T(new Hn("k must be smaller than n"));return e==0||e==n?1:n==0?0:CJ(n)/(CJ(e)*CJ(n-e))}function JJ(n,e){var t,i,r,c;for(t=new kz(n);t.g==null&&!t.c?ZW(t):t.g==null||t.i!=0&&u(t.g[t.i-1],47).Ob();)if(c=u(cM(t),56),I(c,160))for(i=u(c,160),r=0;r>4],e[t*2+1]=oI[c&15];return Hs(e,0,e.length)}function $5e(n){QE();var e,t,i;switch(i=n.c.length,i){case 0:return fzn;case 1:return e=u(dLn(new E(n)),42),ife(e.cd(),e.dd());default:return t=u(lf(n,F(Ha,OM,42,n.c.length,0,1)),165),new GI(t)}}function F5e(n){var e,t,i,r,c,o;for(e=new gw,t=new gw,ll(e,n),ll(t,n);t.b!=t.c;)for(r=u(y2(t),37),o=new E(r.a);o.a0&&H7(n,t,e),r):gme(n,e,t)}function Oxn(n,e,t){var i,r,c,o;if(e.b!=0){for(i=new Ct,o=_e(e,0);o.b!=o.d.c;)c=u(Re(o),86),Vi(i,$V(c)),r=c.e,r.a=u(k(c,(cc(),mK)),19).a,r.b=u(k(c,pon),19).a;Oxn(n,i,kc(t,i.b/n.a|0))}}function Dxn(n,e){var t,i,r,c,o;if(n.e<=e||Hle(n,n.g,e))return n.g;for(c=n.r,i=n.g,o=n.r,r=(c-i)/2+i;i+11&&(n.e.b+=n.a)):(n.e.a+=t.a,n.e.b=j.Math.max(n.e.b,t.b),n.d.c.length>1&&(n.e.a+=n.a))}function R5e(n){var e,t,i,r;switch(r=n.i,e=r.b,i=r.j,t=r.g,r.a.g){case 0:t.a=(n.g.b.o.a-i.a)/2;break;case 1:t.a=e.d.n.a+e.d.a.a;break;case 2:t.a=e.d.n.a+e.d.a.a-i.a;break;case 3:t.b=e.d.n.b+e.d.a.b}}function $xn(n,e,t,i,r){if(ii&&(n.a=i),n.br&&(n.b=r),n}function _5e(n){if(I(n,149))return w8e(u(n,149));if(I(n,229))return a2e(u(n,229));if(I(n,23))return m5e(u(n,23));throw T(new Hn(Rtn+kl(new Ku(A(M(Zn,1),rn,1,5,[n])))))}function K5e(n,e,t,i,r){var c,o,f;for(c=!0,o=0;o>>r|t[o+i+1]<>>r,++o}return c}function eY(n,e,t,i){var r,c,o;if(e.k==(Qn(),gi)){for(c=new re(ue(xr(e).a.Kc(),new Mn));Se(c);)if(r=u(ve(c),17),o=r.c.i.k,o==gi&&n.c.a[r.c.i.c.p]==i&&n.c.a[e.c.p]==t)return!0}return!1}function H5e(n,e){var t,i,r,c;return e&=63,t=n.h&Wh,e<22?(c=t>>>e,r=n.m>>e|t<<22-e,i=n.l>>e|n.m<<22-e):e<44?(c=0,r=t>>>e-22,i=n.m>>e-22|n.h<<44-e):(c=0,r=0,i=t>>>e-44),Bc(i&Lu,r&Lu,c&Wh)}function Fxn(n,e,t,i){var r;this.b=i,this.e=n==(_d(),_m),r=e[t],this.d=oa(_u,[q,wh],[177,25],16,[r.length,r.length],2),this.a=oa(be,[q,Le],[48,25],15,[r.length,r.length],2),this.c=new NJ(e,t)}function q5e(n){var e,t,i;for(n.k=new iX((J(),A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn])).length,n.j.c.length),i=new E(n.j);i.a=t)return l4(n,e,i.p),!0;return!1}function Lxn(n){var e;return n.Db&64?Ex(n):(e=new Ju(Stn),!n.a||De(De((e.a+=' "',e),n.a),'"'),De(dd(De(dd(De(dd(De(dd((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function Nxn(n,e,t){var i,r,c,o,f;for(f=Kc(n.e.Tg(),e),r=u(n.g,119),i=0,o=0;ot?fY(n,t,"start index"):e<0||e>t?fY(e,t,"end index"):T6("end index (%s) must not be less than start index (%s)",A(M(Zn,1),rn,1,5,[Q(e),Q(n)]))}function Rxn(n,e){var t,i,r,c;for(i=0,r=n.length;i0&&_xn(n,c,t));e.p=0}function bn(n){var e;this.c=new Ct,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=(e=u(xo($1),9),new ks(e,u(bo(e,e.length),9),0)),this.g=n.f}function V5e(n){var e,t,i,r;for(e=sl(De(new Ju("Predicates."),"and"),40),t=!0,r=new $v(n);r.b0?f[o-1]:F(vh,E1,10,0,0,1),r=f[o],l=o=0?n.Bh(r):bY(n,i);else throw T(new Hn(Pl+i.ne()+em));else throw T(new Hn(vqn+e+mqn));else As(n,t,i)}function tY(n){var e,t;if(t=null,e=!1,I(n,204)&&(e=!0,t=u(n,204).a),e||I(n,258)&&(e=!0,t=""+u(n,258).a),e||I(n,483)&&(e=!0,t=""+u(n,483).a),!e)throw T(new UI(Btn));return t}function Gxn(n,e){var t,i;if(n.f){for(;e.Ob();)if(t=u(e.Pb(),72),i=t.ak(),I(i,99)&&u(i,18).Bb&uc&&(!n.e||i.Gj()!=Av||i.aj()!=0)&&t.dd()!=null)return e.Ub(),!0;return!1}else return e.Ob()}function zxn(n,e){var t,i;if(n.f){for(;e.Sb();)if(t=u(e.Ub(),72),i=t.ak(),I(i,99)&&u(i,18).Bb&uc&&(!n.e||i.Gj()!=Av||i.aj()!=0)&&t.dd()!=null)return e.Pb(),!0;return!1}else return e.Sb()}function iY(n,e,t){var i,r,c,o,f,h;for(h=Kc(n.e.Tg(),e),i=0,f=n.i,r=u(n.g,119),o=0;o1&&(e.c[e.c.length]=c))}function Z5e(n){var e,t,i,r;for(t=new Ct,Vi(t,n.o),i=new Yq;t.b!=0;)e=u(t.b==0?null:(ne(t.b!=0),Ts(t,t.a.a)),508),r=C_n(n,e,!0),r&&W(i.a,e);for(;i.a.c.length!=0;)e=u(pDn(i),508),C_n(n,e,!1)}function y1(){y1=N,Lfn=new l2(K6,0),_i=new l2("BOOLEAN",1),sc=new l2("INT",2),kv=new l2("STRING",3),Or=new l2("DOUBLE",4),Nt=new l2("ENUM",5),Cp=new l2("ENUMSET",6),yf=new l2("OBJECT",7)}function m6(n,e){var t,i,r,c,o;i=j.Math.min(n.c,e.c),c=j.Math.min(n.d,e.d),r=j.Math.max(n.c+n.b,e.c+e.b),o=j.Math.max(n.d+n.a,e.d+e.a),r=(r/2|0))for(this.e=i?i.c:null,this.d=r;t++0;)nX(this);this.b=e,this.a=null}function t6e(n,e){var t,i;e.a?T8e(n,e):(t=u(rD(n.b,e.b),57),t&&t==n.a[e.b.f]&&t.a&&t.a!=e.b.a&&t.c.Fc(e.b),i=u(iD(n.b,e.b),57),i&&n.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),zO(n.b,e.b))}function Wxn(n,e){var t,i;if(t=u(br(n.b,e),124),u(u(ct(n.r,e),21),84).dc()){t.n.b=0,t.n.c=0;return}t.n.b=n.C.b,t.n.c=n.C.c,n.A.Hc((Vu(),id))&&pBn(n,e),i=Dpe(n,e),qx(n,e)==(qw(),Hl)&&(i+=2*n.w),t.a.a=i}function Xxn(n,e){var t,i;if(t=u(br(n.b,e),124),u(u(ct(n.r,e),21),84).dc()){t.n.d=0,t.n.a=0;return}t.n.d=n.C.d,t.n.a=n.C.a,n.A.Hc((Vu(),id))&&vBn(n,e),i=$pe(n,e),qx(n,e)==(qw(),Hl)&&(i+=2*n.w),t.a.b=i}function i6e(n,e){var t,i,r,c;for(c=new X,i=new E(e);i.at.a&&(i.Hc((vb(),dy))?r=(e.a-t.a)/2:i.Hc(by)&&(r=e.a-t.a)),e.b>t.b&&(i.Hc((vb(),gy))?c=(e.b-t.b)/2:i.Hc(wy)&&(c=e.b-t.b)),zJ(n,r,c)}function tLn(n,e,t,i,r,c,o,f,h,l,a,d,g){I(n.Cb,88)&&yb(Iu(u(n.Cb,88)),4),Ic(n,t),n.f=o,Z3(n,f),e4(n,h),Y3(n,l),n4(n,a),p1(n,d),t4(n,g),g1(n,!0),d1(n,r),n.ok(c),Ca(n,e),i!=null&&(n.i=null,nT(n,i))}function iLn(n){var e,t;if(n.f){for(;n.n>0;){if(e=u(n.k.Xb(n.n-1),72),t=e.ak(),I(t,99)&&u(t,18).Bb&uc&&(!n.e||t.Gj()!=Av||t.aj()!=0)&&e.dd()!=null)return!0;--n.n}return!1}else return n.n>0}function fY(n,e,t){if(n<0)return T6(K_n,A(M(Zn,1),rn,1,5,[t,Q(n)]));if(e<0)throw T(new Hn(H_n+e));return T6("%s (%s) must not be greater than size (%s)",A(M(Zn,1),rn,1,5,[t,Q(n),Q(e)]))}function hY(n,e,t,i,r,c){var o,f,h,l;if(o=i-t,o<7){e2e(e,t,i,c);return}if(h=t+r,f=i+r,l=h+(f-h>>1),hY(e,n,h,l,-r,c),hY(e,n,l,f,-r,c),c.ue(n[l-1],n[l])<=0){for(;t=0?n.sh(c,t):_Y(n,r,t);else throw T(new Hn(Pl+r.ne()+em));else throw T(new Hn(vqn+e+mqn));else Ps(n,i,r,t)}function rLn(n){var e,t,i,r;if(t=u(n,49).qh(),t)try{if(i=null,e=b4((Z1(),uo),_Bn(r2e(t))),e&&(r=e.rh(),r&&(i=r.Wk(aie(t.e)))),i&&i!=n)return rLn(i)}catch(c){if(c=jt(c),!I(c,60))throw T(c)}return n}function _c(n,e,t){var i,r,c,o;if(o=e==null?0:n.b.se(e),r=(i=n.a.get(o),i??new Array),r.length==0)n.a.set(o,r);else if(c=kDn(n,e,r),c)return c.ed(t);return Mt(r,r.length,new Nj(e,t)),++n.c,cC(n.b),null}function cLn(n,e){var t,i;return pC(n.a),ih(n.a,(iT(),EP),EP),ih(n.a,mv,mv),i=new hi,Ze(i,mv,(CT(),CK)),B(hn(e,(gb(),AK)))!==B((f7(),CP))&&Ze(i,mv,jK),Ze(i,mv,EK),cyn(n.a,i),t=EM(n.a,e),t}function uLn(n){if(!n)return q9n(),vzn;var e=n.valueOf?n.valueOf():n;if(e!==n){var t=dR[typeof e];return t?t(e):tQ(typeof e)}else return n instanceof Array||n instanceof j.Array?new sq(n):new M9(n)}function sLn(n,e,t){var i,r,c;switch(c=n.o,i=u(br(n.p,t),244),r=i.i,r.b=F7(i),r.a=$7(i),r.b=j.Math.max(r.b,c.a),r.b>c.a&&!e&&(r.b=c.a),r.c=-(r.b-c.a)/2,t.g){case 1:r.d=-r.a;break;case 3:r.d=c.b}tL(i),iL(i)}function oLn(n,e,t){var i,r,c;switch(c=n.o,i=u(br(n.p,t),244),r=i.i,r.b=F7(i),r.a=$7(i),r.a=j.Math.max(r.a,c.b),r.a>c.b&&!e&&(r.a=c.b),r.d=-(r.a-c.b)/2,t.g){case 4:r.c=-r.b;break;case 2:r.c=c.a}tL(i),iL(i)}function v6e(n,e){var t,i,r,c,o;if(!e.dc()){if(r=u(e.Xb(0),128),e.gc()==1){xNn(n,r,r,1,0,e);return}for(t=1;t0)try{r=us(e,Bi,nt)}catch(c){throw c=jt(c),I(c,127)?(i=c,T(new xC(i))):T(c)}return t=(!n.a&&(n.a=new $I(n)),n.a),r=0?u(D(t,r),56):null}function j6e(n,e){if(n<0)return T6(K_n,A(M(Zn,1),rn,1,5,["index",Q(n)]));if(e<0)throw T(new Hn(H_n+e));return T6("%s (%s) must be less than size (%s)",A(M(Zn,1),rn,1,5,["index",Q(n),Q(e)]))}function E6e(n){var e,t,i,r,c;if(n==null)return iu;for(c=new ka(Ji,"[","]"),t=n,i=0,r=t.length;i0)for(o=n.c.d,f=n.d.d,r=If(ki(new fn(f.a,f.b),o),1/(i+1)),c=new fn(o.a,o.b),t=new E(n.a);t.a=0?n._g(t,!0,!0):Yd(n,r,!0),153)),u(i,215).ol(e);else throw T(new Hn(Pl+e.ne()+em))}function wY(n){var e,t;return n>-0x800000000000&&n<0x800000000000?n==0?0:(e=n<0,e&&(n=-n),t=Gt(j.Math.floor(j.Math.log(n)/.6931471805599453)),(!e||n!=j.Math.pow(2,t))&&++t,t):FOn(eu(n))}function L6e(n){var e,t,i,r,c,o,f;for(c=new Sh,t=new E(n);t.a2&&f.e.b+f.j.b<=2&&(r=f,i=o),c.a.zc(r,c),r.q=i);return c}function gLn(n,e){var t,i,r;return i=new qh(n),Sr(i,e),H(i,(G(),qS),e),H(i,(nn(),Lt),(Ti(),Ac)),H(i,Qf,(oh(),FP)),ea(i,(Qn(),Xt)),t=new wc,Hr(t,i),ui(t,(J(),Gn)),r=new wc,Hr(r,i),ui(r,Vn),i}function pLn(n){switch(n.g){case 0:return new WI((_d(),ry));case 1:return new D4n;case 2:return new R4n;default:throw T(new Hn("No implementation is available for the crossing minimizer "+(n.f!=null?n.f:""+n.g)))}}function vLn(n,e){var t,i,r,c,o;for(n.c[e.p]=!0,W(n.a,e),o=new E(e.j);o.a=c)o.$b();else for(r=o.Kc(),i=0;i0?dG():o<0&&jLn(n,e,-o),!0):!1}function $7(n){var e,t,i,r,c,o,f;if(f=0,n.b==0){for(o=rFn(n,!0),e=0,i=o,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}else f=J9n(oOn(YE(gt(ID(n.a),new xln),new Lln)));return f>0?f+n.n.d+n.n.a:0}function F7(n){var e,t,i,r,c,o,f;if(f=0,n.b==0)f=J9n(oOn(YE(gt(ID(n.a),new $ln),new Fln)));else{for(o=cFn(n,!0),e=0,i=o,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}return f>0?f+n.n.b+n.n.c:0}function G6e(n,e){var t,i,r,c;for(c=u(br(n.b,e),124),t=c.a,r=u(u(ct(n.r,e),21),84).Kc();r.Ob();)i=u(r.Pb(),111),i.c&&(t.a=j.Math.max(t.a,nW(i.c)));if(t.a>0)switch(e.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}function z6e(n,e){var t,i,r;return t=u(k(e,(Go(),Q4)),19).a-u(k(n,Q4),19).a,t==0?(i=ki(Qr(u(k(n,(dl(),Bk)),8)),u(k(n,vm),8)),r=ki(Qr(u(k(e,Bk),8)),u(k(e,vm),8)),Zt(i.a*i.b,r.a*r.b)):t}function U6e(n,e){var t,i,r;return t=u(k(e,(Zd(),jP)),19).a-u(k(n,jP),19).a,t==0?(i=ki(Qr(u(k(n,(cc(),sy)),8)),u(k(n,zm),8)),r=ki(Qr(u(k(e,sy),8)),u(k(e,zm),8)),Zt(i.a*i.b,r.a*r.b)):t}function ELn(n){var e,t;return t=new V1,t.a+="e_",e=ewe(n),e!=null&&(t.a+=""+e),n.c&&n.d&&(De((t.a+=" ",t),UT(n.c)),De(rc((t.a+="[",t),n.c.i),"]"),De((t.a+=TN,t),UT(n.d)),De(rc((t.a+="[",t),n.d.i),"]")),t.a}function CLn(n){switch(n.g){case 0:return new F4n;case 1:return new x4n;case 2:return new $4n;case 3:return new L4n;default:throw T(new Hn("No implementation is available for the layout phase "+(n.f!=null?n.f:""+n.g)))}}function pY(n,e,t,i,r){var c;switch(c=0,r.g){case 1:c=j.Math.max(0,e.b+n.b-(t.b+i));break;case 3:c=j.Math.max(0,-n.b-i);break;case 2:c=j.Math.max(0,-n.a-i);break;case 4:c=j.Math.max(0,e.a+n.a-(t.a+i))}return c}function W6e(n,e,t){var i,r,c,o,f;if(t)for(r=t.a.length,i=new fa(r),f=(i.b-i.a)*i.c<0?(nl(),Jl):new rl(i);f.Ob();)o=u(f.Pb(),19),c=j3(t,o.a),Dtn in c.a||xB in c.a?rke(n,c,e):hTe(n,c,e),Oce(u(te(n.b,i4(c)),79))}function vY(n){var e,t;switch(n.b){case-1:return!0;case 0:return t=n.t,t>1||t==-1?(n.b=-1,!0):(e=qs(n),e&&(er(),e.Cj()==kGn)?(n.b=-1,!0):(n.b=1,!1));default:case 1:return!1}}function X6e(n,e){var t,i,r,c,o;for(i=(!e.s&&(e.s=new V(su,e,21,17)),e.s),c=null,r=0,o=i.i;r=0&&i=0?n._g(t,!0,!0):Yd(n,r,!0),153)),u(i,215).ll(e);throw T(new Hn(Pl+e.ne()+MB))}function Z6e(){FG();var n;return cee?u(b4((Z1(),uo),Vs),1939):(He(Ha,new Qpn),FEe(),n=u(I(vc((Z1(),uo),Vs),547)?vc(uo,Vs):new hTn,547),cee=!0,ITe(n),xTe(n),it(($G(),w1n),n,new apn),kr(uo,Vs,n),n)}function nme(n,e){var t,i,r,c;n.j=-1,Hu(n.e)?(t=n.i,c=n.i!=0,F8(n,e),i=new Lh(n.e,3,n.c,null,e,t,c),r=e.Qk(n.e,n.c,null),r=txn(n,e,r),r?(r.Ei(i),r.Fi()):et(n.e,i)):(F8(n,e),r=e.Qk(n.e,n.c,null),r&&r.Fi())}function tM(n,e){var t,i,r;if(r=0,i=e[0],i>=n.length)return-1;for(t=(Te(i,n.length),n.charCodeAt(i));t>=48&&t<=57&&(r=r*10+(t-48),++i,!(i>=n.length));)t=(Te(i,n.length),n.charCodeAt(i));return i>e[0]?e[0]=i:r=-1,r}function eme(n){var e,t,i,r,c;return r=u(n.a,19).a,c=u(n.b,19).a,t=r,i=c,e=j.Math.max(j.Math.abs(r),j.Math.abs(c)),r<=0&&r==c?(t=0,i=c-1):r==-e&&c!=e?(t=c,i=r,c>=0&&++t):(t=-c,i=r),new Pi(Q(t),Q(i))}function tme(n,e,t,i){var r,c,o,f,h,l;for(r=0;r=0&&l>=0&&h=n.i)throw T(new vr(NB+e+Ra+n.i));if(t>=n.i)throw T(new vr(BB+t+Ra+n.i));return i=n.g[t],e!=t&&(e>16),e=i>>16&16,t=16-e,n=n>>e,i=n-256,e=i>>16&8,t+=e,n<<=e,i=n-Ib,e=i>>16&4,t+=e,n<<=e,i=n-Nf,e=i>>16&2,t+=e,n<<=e,i=n>>14,e=i&~(i>>1),t+2-e)}function rme(n){C2();var e,t,i,r;for(eS=new X,DR=new we,OR=new X,e=(!n.a&&(n.a=new V(Pt,n,10,11)),n.a),LCe(e),r=new ie(e);r.e!=r.i.gc();)i=u(oe(r),33),Fr(eS,i,0)==-1&&(t=new X,W(OR,t),L$n(i,t));return OR}function cme(n,e,t){var i,r,c,o;n.a=t.b.d,I(e,352)?(r=ng(u(e,79),!1,!1),c=I7(r),i=new s5n(n),$i(c,i),z7(c,r),e.We((Xe(),Rg))!=null&&$i(u(e.We(Rg),74),i)):(o=u(e,470),o.Hg(o.Dg()+n.a.a),o.Ig(o.Eg()+n.a.b))}function MLn(n,e){var t,i,r,c,o,f,h,l;for(l=K(Y(k(e,(nn(),Fm)))),h=n[0].n.a+n[0].o.a+n[0].d.c+l,f=1;f=0?t:(f=L5(ki(new fn(o.c+o.b/2,o.d+o.a/2),new fn(c.c+c.b/2,c.d+c.a/2))),-(XBn(c,o)-1)*f)}function sme(n,e,t){var i;Rt(new $n(null,(!t.a&&(t.a=new V(Tt,t,6,6)),new xn(t.a,16))),new hkn(n,e)),Rt(new $n(null,(!t.n&&(t.n=new V(Br,t,1,7)),new xn(t.n,16))),new lkn(n,e)),i=u(hn(t,(Xe(),Rg)),74),i&&EV(i,n,e)}function Yd(n,e,t){var i,r,c;if(c=rg((gu(),xi),n.Tg(),e),c)return er(),u(c,66).Oj()||(c=A2(jr(xi,c))),r=(i=n.Yg(c),u(i>=0?n._g(i,!0,!0):Yd(n,c,!0),153)),u(r,215).hl(e,t);throw T(new Hn(Pl+e.ne()+MB))}function kY(n,e,t,i){var r,c,o,f,h;if(r=n.d[e],r){if(c=r.g,h=r.i,i!=null){for(f=0;f=t&&(i=e,l=(h.c+h.a)/2,o=l-t,h.c<=l-t&&(r=new hD(h.c,o),Q0(n,i++,r)),f=l+t,f<=h.a&&(c=new hD(f,h.a),tb(i,n.c.length),e5(n.c,i,c)))}function yY(n){var e;if(!n.c&&n.g==null)n.d=n.si(n.f),me(n,n.d),e=n.d;else{if(n.g==null)return!0;if(n.i==0)return!1;e=u(n.g[n.i-1],47)}return e==n.b&&null.km>=null.jm()?(cM(n),yY(n)):e.Ob()}function lme(n,e,t){var i,r,c,o,f;if(f=t,!f&&(f=YU(new zp,0)),le(f,qKn,1),XRn(n.c,e),o=TEe(n.a,e),o.gc()==1)IRn(u(o.Xb(0),37),f);else for(c=1/o.gc(),r=o.Kc();r.Ob();)i=u(r.Pb(),37),IRn(i,kc(f,c));mie(n.a,o,e),T7e(e),ce(f)}function PLn(n){if(this.a=n,n.c.i.k==(Qn(),Xt))this.c=n.c,this.d=u(k(n.c.i,(G(),ec)),61);else if(n.d.i.k==Xt)this.c=n.d,this.d=u(k(n.d.i,(G(),ec)),61);else throw T(new Hn("Edge "+n+" is not an external edge."))}function ILn(n,e){var t,i,r;r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,3,r,n.b)),e?e!=n&&(Ic(n,e.zb),G$(n,e.d),t=(i=e.c,i??e.zb),U$(n,t==null||An(t,e.zb)?null:t)):(Ic(n,null),G$(n,0),U$(n,null))}function OLn(n){var e,t;if(n.f){for(;n.n=o)throw T(new V0(e,o));return r=t[e],o==1?i=null:(i=F(bH,qB,415,o-1,0,1),gc(t,0,i,0,e),c=o-e-1,c>0&&gc(t,e+1,i,e,c)),r4(n,i),nLn(n,e,r),r}function z2(){z2=N,Dp=u(D(R((jG(),oc).qb),6),34),Op=u(D(R(oc.qb),3),34),kH=u(D(R(oc.qb),4),34),yH=u(D(R(oc.qb),5),18),QT(Dp),QT(Op),QT(kH),QT(yH),fee=new Ku(A(M(su,1),gg,170,0,[Dp,Op]))}function xLn(n,e){var t;this.d=new Bv,this.b=e,this.e=new mr(e.qf()),t=n.u.Hc((Tu(),Ty)),n.u.Hc(n1)?n.D?this.a=t&&!e.If():this.a=!0:n.u.Hc(Gl)?t?this.a=!(e.zf().Kc().Ob()||e.Bf().Kc().Ob()):this.a=!1:this.a=!1}function LLn(n,e){var t,i,r,c;for(t=n.o.a,c=u(u(ct(n.r,e),21),84).Kc();c.Ob();)r=u(c.Pb(),111),r.e.a=(i=r.b,i.Xe((Xe(),Bu))?i.Hf()==(J(),Gn)?-i.rf().a-K(Y(i.We(Bu))):t+K(Y(i.We(Bu))):i.Hf()==(J(),Gn)?-i.rf().a:t)}function NLn(n,e){var t,i,r,c;t=u(k(n,(nn(),ls)),103),c=u(hn(e,dv),61),r=u(k(n,Lt),98),r!=(Ti(),jf)&&r!=ql?c==(J(),Xr)&&(c=mZ(e,t),c==Xr&&(c=B2(t))):(i=PRn(e),i>0?c=B2(t):c=b7(B2(t))),gr(e,dv,c)}function wme(n,e){var t,i,r,c,o;for(o=n.j,e.a!=e.b&&bi(o,new zbn),r=o.c.length/2|0,i=0;i0&&H7(n,t,e),c):i.a!=null?(H7(n,e,t),-1):r.a!=null?(H7(n,t,e),1):0}function BLn(n,e){var t,i,r,c;n.ej()?(t=n.Vi(),c=n.fj(),++n.j,n.Hi(t,n.oi(t,e)),i=n.Zi(3,null,e,t,c),n.bj()?(r=n.cj(e,null),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(nTn(n,e),n.bj()&&(r=n.cj(e,null),r&&r.Fi()))}function iM(n,e){var t,i,r,c,o;for(o=Kc(n.e.Tg(),e),r=new Jy,t=u(n.g,119),c=n.i;--c>=0;)i=t[c],o.rl(i.ak())&&me(r,i);!A_n(n,r)&&Hu(n.e)&&Gp(n,e.$j()?hl(n,6,e,(Pn(),cr),null,-1,!1):hl(n,e.Kj()?2:1,e,null,null,-1,!1))}function a4(){a4=N;var n,e;for(fp=F(vg,q,91,32,0,1),wm=F(vg,q,91,32,0,1),n=1,e=0;e<=18;e++)fp[e]=m7(n),wm[e]=m7(Ih(n,e)),n=Ni(n,5);for(;eo)||e.q&&(i=e.C,o=i.c.c.a-i.o.a/2,r=i.n.a-t,r>o)))}function vme(n,e){var t;le(e,"Partition preprocessing",1),t=u(es(gt(qr(gt(new $n(null,new xn(n.a,16)),new v0n),new m0n),new k0n),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[(hf(),hs)]))),15),Rt(t.Oc(),new y0n),ce(e)}function RLn(n){c$();var e,t,i,r,c,o,f;for(t=new ba,r=new E(n.e.b);r.a1?n.e*=K(n.a):n.f/=K(n.a),Zwe(n),rpe(n),_7e(n),H(n.b,(a6(),nS),n.g)}function qLn(n,e,t){var i,r,c,o,f,h;for(i=0,h=t,e||(i=t*(n.c.length-1),h*=-1),c=new E(n);c.a=0?(e||(e=new zv,i>0&&dr(e,n.substr(0,i))),e.a+="\\",w3(e,t&Ut)):e&&w3(e,t&Ut);return e?e.a:n}function Ame(n){var e;if(!n.a)throw T(new Dr("IDataType class expected for layout option "+n.f));if(e=xae(n.a),e==null)throw T(new Dr("Couldn't create new instance of property '"+n.f+"'. "+KHn+(Ph(Fy),Fy.k)+Etn));return u(e,414)}function Fx(n){var e,t,i,r,c;return c=n.eh(),c&&c.kh()&&(r=pl(n,c),r!=c)?(t=n.Vg(),i=(e=n.Vg(),e>=0?n.Qg(null):n.eh().ih(n,-1-e,null,null)),n.Rg(u(r,49),t),i&&i.Fi(),n.Lg()&&n.Mg()&&t>-1&&et(n,new wi(n,9,t,c,r)),r):c}function XLn(n){var e,t,i,r,c,o,f,h;for(o=0,c=n.f.e,i=0;i>5,r>=n.d)return n.e<0;if(t=n.a[r],e=1<<(e&31),n.e<0){if(i=dOn(n),r>16)),15).Xc(c),f0&&(!(tl(n.a.c)&&e.n.d)&&!(r3(n.a.c)&&e.n.b)&&(e.g.d+=j.Math.max(0,i/2-.5)),!(tl(n.a.c)&&e.n.a)&&!(r3(n.a.c)&&e.n.c)&&(e.g.a-=i-1))}function JLn(n){var e,t,i,r,c;if(r=new X,c=GBn(n,r),e=u(k(n,(G(),Mu)),10),e)for(i=new E(e.j);i.a>e,c=n.m>>e|t<<22-e,r=n.l>>e|n.m<<22-e):e<44?(o=i?Wh:0,c=t>>e-22,r=n.m>>e-22|t<<44-e):(o=i?Wh:0,c=i?Lu:0,r=t>>e-44),Bc(r&Lu,c&Lu,o&Wh)}function xx(n){var e,t,i,r,c,o;for(this.c=new X,this.d=n,i=Ft,r=Ft,e=Vt,t=Vt,o=_e(n,0);o.b!=o.d.c;)c=u(Re(o),8),i=j.Math.min(i,c.a),r=j.Math.min(r,c.b),e=j.Math.max(e,c.a),t=j.Math.max(t,c.b);this.a=new ys(i,r,e-i,t-r)}function nNn(n,e){var t,i,r,c,o,f;for(c=new E(n.b);c.a0&&I(e,42)&&(n.a.qj(),l=u(e,42),h=l.cd(),c=h==null?0:mt(h),o=dU(n.a,c),t=n.a.d[o],t)){for(i=u(t.g,367),a=t.i,f=0;f=2)for(t=r.Kc(),e=Y(t.Pb());t.Ob();)c=e,e=Y(t.Pb()),i=j.Math.min(i,(_n(e),e-(_n(c),c)));return i}function Bme(n,e){var t,i,r,c,o;i=new Ct,Kt(i,e,i.c.b,i.c);do for(t=(ne(i.b!=0),u(Ts(i,i.a.a),86)),n.b[t.g]=1,c=_e(t.d,0);c.b!=c.d.c;)r=u(Re(c),188),o=r.c,n.b[o.g]==1?Ke(n.a,r):n.b[o.g]==2?n.b[o.g]=1:Kt(i,o,i.c.b,i.c);while(i.b!=0)}function Rme(n,e){var t,i,r;if(B(e)===B(pe(n)))return!0;if(!I(e,15)||(i=u(e,15),r=n.gc(),r!=i.gc()))return!1;if(I(i,54)){for(t=0;t0&&(r=t),o=new E(n.f.e);o.a0?(e-=1,t-=1):i>=0&&r<0?(e+=1,t+=1):i>0&&r>=0?(e-=1,t+=1):(e+=1,t-=1),new Pi(Q(e),Q(t))}function i9e(n,e){return n.ce.c?1:n.be.b?1:n.a!=e.a?mt(n.a)-mt(e.a):n.d==(z5(),Hm)&&e.d==Km?-1:n.d==Km&&e.d==Hm?1:0}function sNn(n,e){var t,i,r,c,o;return c=e.a,c.c.i==e.b?o=c.d:o=c.c,c.c.i==e.b?i=c.c:i=c.d,r=O2e(n.a,o,i),r>0&&r0):r<0&&-r0):!1}function r9e(n,e,t,i){var r,c,o,f,h,l,a,d;for(r=(e-n.d)/n.c.c.length,c=0,n.a+=t,n.d=e,d=new E(n.c);d.a>24;return o}function u9e(n){if(n.pe()){var e=n.c;e.qe()?n.o="["+e.n:e.pe()?n.o="["+e.ne():n.o="[L"+e.ne()+";",n.b=e.me()+"[]",n.k=e.oe()+"[]";return}var t=n.j,i=n.d;i=i.split("/"),n.o=RF(".",[t,RF("$",i)]),n.b=RF(".",[t,RF(".",i)]),n.k=i[i.length-1]}function s9e(n,e){var t,i,r,c,o;for(o=null,c=new E(n.e.a);c.a=0;e-=2)for(t=0;t<=e;t+=2)(n.b[t]>n.b[t+2]||n.b[t]===n.b[t+2]&&n.b[t+1]>n.b[t+3])&&(i=n.b[t+2],n.b[t+2]=n.b[t],n.b[t]=i,i=n.b[t+3],n.b[t+3]=n.b[t+1],n.b[t+1]=i);n.c=!0}}function oNn(n,e){var t,i,r,c,o,f,h,l;for(o=e==1?KR:_R,c=o.a.ec().Kc();c.Ob();)for(r=u(c.Pb(),103),h=u(ct(n.f.c,r),21).Kc();h.Ob();)switch(f=u(h.Pb(),46),i=u(f.b,81),l=u(f.a,189),t=l.c,r.g){case 2:case 1:i.g.d+=t;break;case 4:case 3:i.g.c+=t}}function h9e(n,e){var t,i,r,c,o,f,h,l,a;for(l=-1,a=0,o=n,f=0,h=o.length;f0&&++a;++l}return a}function yo(n){var e,t;return t=new Ju(J1(n.gm)),t.a+="@",De(t,(e=mt(n)>>>0,e.toString(16))),n.kh()?(t.a+=" (eProxyURI: ",rc(t,n.qh()),n.$g()&&(t.a+=" eClass: ",rc(t,n.$g())),t.a+=")"):n.$g()&&(t.a+=" (eClass: ",rc(t,n.$g()),t.a+=")"),t.a}function E6(n){var e,t,i,r;if(n.e)throw T(new Dr((Ph(kR),uN+kR.k+sN)));for(n.d==(sr(),mh)&&TM(n,Zs),t=new E(n.a.a);t.a>24}return t}function d9e(n,e,t){var i,r,c;if(r=u(br(n.i,e),306),!r)if(r=new fIn(n.d,e,t),m2(n.i,e,r),GQ(e))Pce(n.a,e.c,e.b,r);else switch(c=n6e(e),i=u(br(n.p,c),244),c.g){case 1:case 3:r.j=!0,zI(i,e.b,r);break;case 4:case 2:r.k=!0,zI(i,e.c,r)}return r}function b9e(n,e,t,i){var r,c,o,f,h,l;if(f=new Jy,h=Kc(n.e.Tg(),e),r=u(n.g,119),er(),u(e,66).Oj())for(o=0;o=0)return r;for(c=1,f=new E(e.j);f.a0&&e.ue((Ln(r-1,n.c.length),u(n.c[r-1],10)),c)>0;)Es(n,r,(Ln(r-1,n.c.length),u(n.c[r-1],10))),--r;Ln(r,n.c.length),n.c[r]=c}t.a=new we,t.b=new we}function w9e(n,e,t){var i,r,c,o,f,h,l,a;for(a=(i=u(e.e&&e.e(),9),new ks(i,u(bo(i,i.length),9),0)),h=Tb(t,"[\\[\\]\\s,]+"),c=h,o=0,f=c.length;o0&&(!(tl(n.a.c)&&e.n.d)&&!(r3(n.a.c)&&e.n.b)&&(e.g.d-=j.Math.max(0,i/2-.5)),!(tl(n.a.c)&&e.n.a)&&!(r3(n.a.c)&&e.n.c)&&(e.g.a+=j.Math.max(0,i-1)))}function dNn(n,e,t){var i,r;if((n.c-n.b&n.a.length-1)==2)e==(J(),Kn)||e==Vn?(GC(u(t6(n),15),(cs(),kh)),GC(u(t6(n),15),Kl)):(GC(u(t6(n),15),(cs(),Kl)),GC(u(t6(n),15),kh));else for(r=new B5(n);r.a!=r.b;)i=u(vT(r),15),GC(i,t)}function p9e(n,e){var t,i,r,c,o,f,h;for(r=f3(new Fq(n)),f=new Ii(r,r.c.length),c=f3(new Fq(e)),h=new Ii(c,c.c.length),o=null;f.b>0&&h.b>0&&(t=(ne(f.b>0),u(f.a.Xb(f.c=--f.b),33)),i=(ne(h.b>0),u(h.a.Xb(h.c=--h.b),33)),t==i);)o=t;return o}function Fu(n,e){var t,i,r,c,o,f;return c=n.a*tN+n.b*1502,f=n.b*tN+11,t=j.Math.floor(f*uk),c+=t,f-=t*enn,c%=enn,n.a=c,n.b=f,e<=24?j.Math.floor(n.a*Kin[e]):(r=n.a*(1<=2147483648&&(i-=YL),i)}function bNn(n,e,t){var i,r,c,o;BMn(n,e)>BMn(n,t)?(i=zr(t,(J(),Vn)),n.d=i.dc()?0:wD(u(i.Xb(0),11)),o=zr(e,Gn),n.b=o.dc()?0:wD(u(o.Xb(0),11))):(r=zr(t,(J(),Gn)),n.d=r.dc()?0:wD(u(r.Xb(0),11)),c=zr(e,Vn),n.b=c.dc()?0:wD(u(c.Xb(0),11)))}function wNn(n){var e,t,i,r,c,o,f;if(n&&(e=n.Hh(Vs),e&&(o=Ce(Ko((!e.b&&(e.b=new qu((Sn(),nr),tc,e)),e.b),"conversionDelegates")),o!=null))){for(f=new X,i=Tb(o,"\\w+"),r=0,c=i.length;rn.c));o++)r.a>=n.s&&(c<0&&(c=o),f=o);return h=(n.s+n.c)/2,c>=0&&(i=nke(n,e,c,f),h=fre((Ln(i,e.c.length),u(e.c[i],329))),hme(e,i,t)),h}function Bx(){Bx=N,zYn=new tr((Xe(),Tp),1.3),efn=ehn,ofn=new vd(15),YYn=new tr(nd,ofn),nZn=new tr(ed,15),UYn=LP,VYn=Za,QYn=Kg,JYn=_l,XYn=_g,cfn=ky,ZYn=rw,sfn=(IY(),HYn),rfn=_Yn,ufn=KYn,ffn=qYn,tfn=RYn,ifn=NP,WYn=ihn,fy=BYn,nfn=NYn,hfn=GYn}function ke(n,e,t){var i,r,c,o,f,h,l;for(o=(c=new JH,c),pV(o,(_n(e),e)),l=(!o.b&&(o.b=new qu((Sn(),nr),tc,o)),o.b),h=1;h0&&Wje(this,r)}function NY(n,e,t,i,r,c){var o,f,h;if(!r[e.b]){for(r[e.b]=!0,o=i,!o&&(o=new TC),W(o.e,e),h=c[e.b].Kc();h.Ob();)f=u(h.Pb(),282),!(f.d==t||f.c==t)&&(f.c!=e&&NY(n,f.c,e,o,r,c),f.d!=e&&NY(n,f.d,e,o,r,c),W(o.c,f),Yt(o.d,f.b));return o}return null}function k9e(n){var e,t,i,r,c,o,f;for(e=0,r=new E(n.e);r.a=2}function y9e(n,e){var t,i,r,c;for(le(e,"Self-Loop pre-processing",1),i=new E(n.a);i.a1||(e=pt(So,A(M(lr,1),z,93,0,[Zh,Po])),Z8(hC(e,n))>1)||(i=pt(Oo,A(M(lr,1),z,93,0,[yh,eo])),Z8(hC(i,n))>1))}function C9e(n,e){var t,i,r;return t=e.Hh(n.a),t&&(r=Ce(Ko((!t.b&&(t.b=new qu((Sn(),nr),tc,t)),t.b),"affiliation")),r!=null)?(i=aE(r,tu(35)),i==-1?TF(n,I5(n,ts(e.Hj())),r):i==0?TF(n,null,r.substr(1)):TF(n,r.substr(0,i),r.substr(i+1))):null}function T9e(n){var e,t,i;try{return n==null?iu:Lr(n)}catch(r){if(r=jt(r),I(r,102))return e=r,i=J1(Du(n))+"@"+(t=(Zf(),QQ(n)>>>0),t.toString(16)),dpe(awe(),(e3(),"Exception during lenientFormat for "+i),e),"<"+i+" threw "+J1(e.gm)+">";throw T(r)}}function vNn(n){switch(n.g){case 0:return new T4n;case 1:return new k4n;case 2:return new k7n;case 3:return new jwn;case 4:return new Kjn;case 5:return new M4n;default:throw T(new Hn("No implementation is available for the layerer "+(n.f!=null?n.f:""+n.g)))}}function BY(n,e,t){var i,r,c;for(c=new E(n.t);c.a0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&Ke(e,i.b));for(r=new E(n.i);r.a0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&Ke(t,i.a))}function cM(n){var e,t,i,r,c;if(n.g==null&&(n.d=n.si(n.f),me(n,n.d),n.c))return c=n.f,c;if(e=u(n.g[n.i-1],47),r=e.Pb(),n.e=e,t=n.si(r),t.Ob())n.d=t,me(n,t);else for(n.d=null;!e.Ob()&&(Mt(n.g,--n.i,null),n.i!=0);)i=u(n.g[n.i-1],47),e=i;return r}function M9e(n,e){var t,i,r,c,o,f;if(i=e,r=i.ak(),zh(n.e,r)){if(r.hi()&&yC(n,r,i.dd()))return!1}else for(f=Kc(n.e.Tg(),r),t=u(n.g,119),c=0;c1||t>1)return 2;return e+t==1?2:0}function kNn(n,e,t){var i,r,c,o,f;for(le(t,"ELK Force",1),on(sn(hn(e,(Go(),Irn))))||oC((i=new O9((K0(),new N0(e))),i)),f=QOn(e),J3e(f),Iwe(n,u(k(f,Prn),424)),o=fRn(n.a,f),c=o.Kc();c.Ob();)r=u(c.Pb(),231),ake(n.b,r,kc(t,1/o.gc()));f=j_n(o),m_n(f),ce(t)}function $9e(n,e){var t,i,r,c,o;if(le(e,"Breaking Point Processor",1),ZEe(n),on(sn(k(n,(nn(),Nsn))))){for(r=new E(n.b);r.a=0?n._g(i,!0,!0):Yd(n,c,!0),153)),u(r,215).ml(e,t)}else throw T(new Hn(Pl+e.ne()+em))}function N9e(n,e){var t,i,r,c,o;for(t=new X,r=qr(new $n(null,new xn(n,16)),new wgn),c=qr(new $n(null,new xn(n,16)),new ggn),o=h0e(Tde(YE(g8e(A(M(UTe,1),rn,833,0,[r,c])),new pgn))),i=1;i=2*e&&W(t,new hD(o[i-1]+e,o[i]-e));return t}function B9e(n,e,t){le(t,"Eades radial",1),t.n&&e&&go(t,po(e),(Xu(),ws)),n.d=u(hn(e,(C5(),Xm)),33),n.c=K(Y(hn(e,(gb(),MP)))),n.e=XF(u(hn(e,oy),293)),n.a=p2e(u(hn(e,Kon),426)),n.b=R4e(u(hn(e,_on),340)),m4e(n),t.n&&e&&go(t,po(e),(Xu(),ws))}function R9e(n,e,t){var i,r,c,o,f,h,l,a;if(t)for(c=t.a.length,i=new fa(c),f=(i.b-i.a)*i.c<0?(nl(),Jl):new rl(i);f.Ob();)o=u(f.Pb(),19),r=j3(t,o.a),r&&(h=Nae(n,(l=(ad(),a=new eG,a),e&&KY(l,e),l),r),Q5(h,$h(r,Uf)),YT(r,h),lY(r,h),oF(n,r,h))}function sM(n){var e,t,i,r,c,o;if(!n.j){if(o=new npn,e=b9,c=e.a.zc(n,e),c==null){for(i=new ie(Mr(n));i.e!=i.i.gc();)t=u(oe(i),26),r=sM(t),Dt(o,r),me(o,t);e.a.Bc(n)!=null}lb(o),n.j=new Ew((u(D(R((ol(),Nn).o),11),18),o.i),o.g),Iu(n).b&=-33}return n.j}function _9e(n){var e,t,i,r;if(n==null)return null;if(i=jc(n,!0),r=Ak.length,An(i.substr(i.length-r,r),Ak)){if(t=i.length,t==4){if(e=(Te(0,i.length),i.charCodeAt(0)),e==43)return x1n;if(e==45)return Mee}else if(t==3)return x1n}return new Gq(i)}function K9e(n){var e,t,i;return t=n.l,t&t-1||(i=n.m,i&i-1)||(e=n.h,e&e-1)||e==0&&i==0&&t==0?-1:e==0&&i==0&&t!=0?hV(t):e==0&&i!=0&&t==0?hV(i)+22:e!=0&&i==0&&t==0?hV(e)+44:-1}function H9e(n,e){var t,i,r,c,o;for(le(e,"Edge joining",1),t=on(sn(k(n,(nn(),U_)))),r=new E(n.b);r.a1)for(r=new E(n.a);r.a0),c.a.Xb(c.c=--c.b),X0(c,r),ne(c.b3&&sh(n,0,e-3))}function U9e(n){var e,t,i,r;return B(k(n,(nn(),Vb)))===B((_h(),F1))?!n.e&&B(k(n,Jk))!==B((q3(),Gk)):(i=u(k(n,F_),292),r=on(sn(k(n,x_)))||B(k(n,Om))===B((F2(),qk)),e=u(k(n,nsn),19).a,t=n.a.c.length,!r&&i!=(q3(),Gk)&&(e==0||e>t))}function W9e(n){var e,t;for(t=0;t0);t++);if(t>0&&t0);e++);return e>0&&t>16!=6&&e){if(u4(n,e))throw T(new Hn(tm+_Ln(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?dJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=_2(e,n,6,i)),i=lU(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,6,e,e))}function KY(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=9&&e){if(u4(n,e))throw T(new Hn(tm+jBn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?wJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=_2(e,n,9,i)),i=aU(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,9,e,e))}function _x(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(u4(n,e))throw T(new Hn(tm+yRn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?pJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=_2(e,n,12,i)),i=hU(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,3,e,e))}function w4(n){var e,t,i,r,c;if(i=qs(n),c=n.j,c==null&&i)return n.$j()?null:i.zj();if(I(i,148)){if(t=i.Aj(),t&&(r=t.Nh(),r!=n.i)){if(e=u(i,148),e.Ej())try{n.g=r.Kh(e,c)}catch(o){if(o=jt(o),I(o,78))n.g=null;else throw T(o)}n.i=r}return n.g}return null}function ENn(n){var e;return e=new X,W(e,new f2(new fn(n.c,n.d),new fn(n.c+n.b,n.d))),W(e,new f2(new fn(n.c,n.d),new fn(n.c,n.d+n.a))),W(e,new f2(new fn(n.c+n.b,n.d+n.a),new fn(n.c+n.b,n.d))),W(e,new f2(new fn(n.c+n.b,n.d+n.a),new fn(n.c,n.d+n.a))),e}function CNn(n,e,t,i){var r,c,o;if(o=TJ(e,t),i.c[i.c.length]=e,n.j[o.p]==-1||n.j[o.p]==2||n.a[e.p])return i;for(n.j[o.p]=-1,c=new re(ue(Kh(o).a.Kc(),new Mn));Se(c);)if(r=u(ve(c),17),!(!(!Xi(r)&&!(!Xi(r)&&r.c.i.c==r.d.i.c))||r==e))return CNn(n,r,o,i);return i}function X9e(n,e,t){var i,r,c;for(c=e.a.ec().Kc();c.Ob();)r=u(c.Pb(),79),i=u(te(n.b,r),266),!i&&(At(fh(r))==At(ml(r))?f7e(n,r,t):fh(r)==At(ml(r))?te(n.c,r)==null&&te(n.b,ml(r))!=null&&i_n(n,r,t,!1):te(n.d,r)==null&&te(n.b,fh(r))!=null&&i_n(n,r,t,!0))}function V9e(n,e){var t,i,r,c,o,f,h;for(r=n.Kc();r.Ob();)for(i=u(r.Pb(),10),f=new wc,Hr(f,i),ui(f,(J(),Vn)),H(f,(G(),GS),(qn(),!0)),o=e.Kc();o.Ob();)c=u(o.Pb(),10),h=new wc,Hr(h,c),ui(h,Gn),H(h,GS,!0),t=new Pd,H(t,GS,!0),Hi(t,f),Ei(t,h)}function Q9e(n,e,t,i){var r,c,o,f;r=m$n(n,e,t),c=m$n(n,t,e),o=u(te(n.c,e),112),f=u(te(n.c,t),112),ri.b.g&&(c.c[c.c.length]=i);return c}function g4(){g4=N,Ng=new J9("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),Ep=new J9("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),Qm=new J9("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),Vm=new J9("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),Jm=new J9("WHOLE_DRAWING",4)}function J9e(n,e){if(I(e,239))return Age(n,u(e,33));if(I(e,186))return _ge(n,u(e,118));if(I(e,354))return Zhe(n,u(e,137));if(I(e,352))return Eye(n,u(e,79));if(e)return null;throw T(new Hn(Rtn+kl(new Ku(A(M(Zn,1),rn,1,5,[e])))))}function Y9e(n){var e,t,i,r,c,o,f;for(c=new Ct,r=new E(n.d.a);r.a1)for(e=kd((t=new ra,++n.b,t),n.d),f=_e(c,0);f.b!=f.d.c;)o=u(Re(f),121),jo(lo(ho(ao(fo(new Ns,1),0),e),o))}function HY(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=11&&e){if(u4(n,e))throw T(new Hn(tm+uZ(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?vJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=_2(e,n,10,i)),i=kU(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,11,e,e))}function Z9e(n){var e,t,i,r;for(i=new Ea(new ta(n.b).a);i.b;)t=Nd(i),r=u(t.cd(),11),e=u(t.dd(),10),H(e,(G(),rt),r),H(r,Mu,e),H(r,Wk,(qn(),!0)),ui(r,u(k(e,ec),61)),k(e,ec),H(r.i,(nn(),Lt),(Ti(),Tv)),u(k(Gi(r.i),Mc),21).Fc((or(),ov))}function n8e(n,e,t){var i,r,c,o,f,h;if(c=0,o=0,n.c)for(h=new E(n.d.i.j);h.ac.a?-1:r.ah){for(a=n.d,n.d=F(u1n,Xtn,63,2*h+4,0,1),c=0;c=9223372036854776e3?(I3(),win):(r=!1,n<0&&(r=!0,n=-n),i=0,n>=$a&&(i=Gt(n/$a),n-=i*$a),t=0,n>=J2&&(t=Gt(n/J2),n-=t*J2),e=Gt(n),c=Bc(e,t,i),r&&sF(c),c)}function h8e(n,e){var t,i,r,c;for(t=!e||!n.u.Hc((Tu(),n1)),c=0,r=new E(n.e.Cf());r.a=-e&&i==e?new Pi(Q(t-1),Q(i)):new Pi(Q(t),Q(i-1))}function PNn(){return rr(),A(M(nMe,1),z,77,0,[fcn,ucn,mm,WR,Scn,dS,ES,Z4,Mcn,pcn,Ccn,Y4,Acn,bcn,Pcn,ncn,pS,XR,lS,kS,Ocn,mS,ecn,Tcn,Dcn,yS,Icn,aS,lcn,jcn,ycn,CS,rcn,hS,wS,icn,J4,mcn,wcn,Ecn,km,scn,ccn,kcn,gcn,gS,jS,tcn,vS,vcn,bS,acn,hcn,Kk,fS,dcn,ocn])}function b8e(n,e,t){n.d=0,n.b=0,e.k==(Qn(),Tc)&&t.k==Tc&&u(k(e,(G(),rt)),10)==u(k(t,rt),10)&&(F$(e).j==(J(),Kn)?bNn(n,e,t):bNn(n,t,e)),e.k==Tc&&t.k==gi?F$(e).j==(J(),Kn)?n.d=1:n.b=1:t.k==Tc&&e.k==gi&&(F$(t).j==(J(),Kn)?n.b=1:n.d=1),e3e(n,e,t)}function w8e(n){var e,t,i,r,c,o,f,h,l,a,d;return d=KJ(n),e=n.a,h=e!=null,h&&l3(d,"category",n.a),r=N9(new Rp(n.d)),o=!r,o&&(l=new na,Ro(d,"knownOptions",l),t=new pmn(l),$i(new Rp(n.d),t)),c=N9(n.g),f=!c,f&&(a=new na,Ro(d,"supportedFeatures",a),i=new vmn(a),$i(n.g,i)),d}function g8e(n){var e,t,i,r,c,o,f,h,l;for(i=!1,e=336,t=0,c=new Ojn(n.length),f=n,h=0,l=f.length;h>16!=7&&e){if(u4(n,e))throw T(new Hn(tm+Lxn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?bJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=u(e,49).gh(n,1,Iy,i)),i=aW(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,7,e,e))}function INn(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(u4(n,e))throw T(new Hn(tm+zDn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?gJ(n,i):n.Cb.ih(n,-1-t,null,i))),e&&(i=u(e,49).gh(n,0,Dy,i)),i=dW(n,e,i),i&&i.Fi()}else n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,3,e,e))}function Hx(n,e){a4();var t,i,r,c,o,f,h,l,a;return e.d>n.d&&(f=n,n=e,e=f),e.d<63?u7e(n,e):(o=(n.d&-2)<<4,l=MX(n,o),a=MX(e,o),i=rL(n,P2(l,o)),r=rL(e,P2(a,o)),h=Hx(l,a),t=Hx(i,r),c=Hx(rL(l,i),rL(r,a)),c=aL(aL(c,h),t),c=P2(c,o),h=P2(h,o<<1),aL(aL(h,c),t))}function v8e(n,e,t){var i,r,c,o,f;for(o=c6(n,t),f=F(vh,E1,10,e.length,0,1),i=0,c=o.Kc();c.Ob();)r=u(c.Pb(),11),on(sn(k(r,(G(),Wk))))&&(f[i++]=u(k(r,Mu),10));if(i=0;c+=t?1:-1)o=o|e.c.Sf(h,c,t,i&&!on(sn(k(e.j,(G(),v0))))&&!on(sn(k(e.j,(G(),Pg))))),o=o|e.q._f(h,c,t),o=o|wBn(n,h[c],t,i);return ri(n.c,e),o}function fM(n,e,t){var i,r,c,o,f,h,l,a,d,g;for(a=bAn(n.j),d=0,g=a.length;d1&&(n.a=!0),Ffe(u(t.b,65),ot(Qr(u(e.b,65).c),If(ki(Qr(u(t.b,65).a),u(e.b,65).a),r))),SMn(n,e),ONn(n,t)}function DNn(n){var e,t,i,r,c,o,f;for(c=new E(n.a.a);c.a0&&c>0?o.p=e++:i>0?o.p=t++:c>0?o.p=r++:o.p=t++}Pn(),bi(n.j,new d0n)}function E8e(n){var e,t;t=null,e=u(un(n.g,0),17);do{if(t=e.d.i,li(t,(G(),Ys)))return u(k(t,Ys),11).i;if(t.k!=(Qn(),ti)&&Se(new re(ue(ni(t).a.Kc(),new Mn))))e=u(ve(new re(ue(ni(t).a.Kc(),new Mn))),17);else if(t.k!=ti)return null}while(t&&t.k!=(Qn(),ti));return t}function C8e(n,e){var t,i,r,c,o,f,h,l,a;for(f=e.j,o=e.g,h=u(un(f,f.c.length-1),113),a=(Ln(0,f.c.length),u(f.c[0],113)),l=sx(n,o,h,a),c=1;cl&&(h=t,a=r,l=i);e.a=a,e.c=h}function T8e(n,e){var t,i;if(i=k8(n.b,e.b),!i)throw T(new Dr("Invalid hitboxes for scanline constraint calculation."));(ROn(e.b,u(Tue(n.b,e.b),57))||ROn(e.b,u(Cue(n.b,e.b),57)))&&(Zf(),e.b+""),n.a[e.b.f]=u(rD(n.b,e.b),57),t=u(iD(n.b,e.b),57),t&&(n.a[t.f]=e.b)}function jo(n){if(!n.a.d||!n.a.e)throw T(new Dr((Ph(Wzn),Wzn.k+" must have a source and target "+(Ph(grn),grn.k)+" specified.")));if(n.a.d==n.a.e)throw T(new Dr("Network simplex does not support self-loops: "+n.a+" "+n.a.d+" "+n.a.e));return bE(n.a.d.g,n.a),bE(n.a.e.b,n.a),n.a}function M8e(n,e,t){var i,r,c,o,f,h,l;for(l=new Y1(new g6n(n)),o=A(M(FWn,1),UKn,11,0,[e,t]),f=0,h=o.length;fh-n.b&&fh-n.a&&f0&&++p;++g}return p}function L8e(n,e){var t,i,r,c,o;for(o=u(k(e,(Zd(),Eon)),425),c=_e(e.b,0);c.b!=c.d.c;)if(r=u(Re(c),86),n.b[r.g]==0){switch(o.g){case 0:uFn(n,r);break;case 1:Bme(n,r)}n.b[r.g]=2}for(i=_e(n.a,0);i.b!=i.d.c;)t=u(Re(i),188),db(t.b.d,t,!0),db(t.c.b,t,!0);H(e,(cc(),gon),n.a)}function Kc(n,e){er();var t,i,r,c;return e?e==(ht(),Cee)||(e==aee||e==rd||e==lee)&&n!=$1n?new BZ(n,e):(i=u(e,677),t=i.pk(),t||(v3(jr((gu(),xi),e)),t=i.pk()),c=(!t.i&&(t.i=new we),t.i),r=u(Vr(Ar(c.f,n)),1942),!r&&it(c,n,r=new BZ(n,e)),r):oee}function N8e(n,e){var t,i,r,c,o,f,h,l,a;for(h=u(k(n,(G(),rt)),11),l=Gr(A(M(ai,1),q,8,0,[h.i.n,h.n,h.a])).a,a=n.i.n.b,t=xf(n.e),r=t,c=0,o=r.length;c0?c.a?(f=c.b.rf().a,t>f&&(r=(t-f)/2,c.d.b=r,c.d.c=r)):c.d.c=n.s+t:D5(n.u)&&(i=HJ(c.b),i.c<0&&(c.d.b=-i.c),i.c+i.b>c.b.rf().a&&(c.d.c=i.c+i.b-c.b.rf().a))}function K8e(n,e){var t,i,r,c;for(le(e,"Semi-Interactive Crossing Minimization Processor",1),t=!1,r=new E(n.b);r.a=0){if(e==t)return new Pi(Q(-e-1),Q(-e-1));if(e==-t)return new Pi(Q(-e),Q(t+1))}return j.Math.abs(e)>j.Math.abs(t)?e<0?new Pi(Q(-e),Q(t)):new Pi(Q(-e),Q(t+1)):new Pi(Q(e+1),Q(t))}function G8e(n){var e,t;t=u(k(n,(nn(),qc)),163),e=u(k(n,(G(),za)),303),t==(Ss(),xl)?(H(n,qc,Qk),H(n,za,(Nh(),Ag))):t==Ub?(H(n,qc,Qk),H(n,za,(Nh(),dp))):e==(Nh(),Ag)?(H(n,qc,xl),H(n,za,zk)):e==dp&&(H(n,qc,Ub),H(n,za,zk))}function hM(){hM=N,cy=new ngn,$Jn=Ze(new hi,(Qi(),Hc),(rr(),lS)),LJn=ju(Ze(new hi,Hc,mS),Ir,vS),NJn=Xd(Xd(Dj(ju(Ze(new hi,Vf,ES),Ir,jS),Cc),yS),CS),FJn=ju(Ze(Ze(Ze(new hi,$l,dS),Cc,wS),Cc,J4),Ir,bS),xJn=ju(Ze(Ze(new hi,Cc,J4),Cc,hS),Ir,fS)}function C6(){C6=N,_Jn=Ze(ju(new hi,(Qi(),Ir),(rr(),acn)),Hc,lS),GJn=Xd(Xd(Dj(ju(Ze(new hi,Vf,ES),Ir,jS),Cc),yS),CS),KJn=ju(Ze(Ze(Ze(new hi,$l,dS),Cc,wS),Cc,J4),Ir,bS),qJn=Ze(Ze(new hi,Hc,mS),Ir,vS),HJn=ju(Ze(Ze(new hi,Cc,J4),Cc,hS),Ir,fS)}function z8e(n,e,t,i,r){var c,o;(!Xi(e)&&e.c.i.c==e.d.i.c||!WIn(Gr(A(M(ai,1),q,8,0,[r.i.n,r.n,r.a])),t))&&!Xi(e)&&(e.c==r?s3(e.a,0,new mr(t)):Ke(e.a,new mr(t)),i&&!Ah(n.a,t)&&(o=u(k(e,(nn(),Tr)),74),o||(o=new hu,H(e,Tr,o)),c=new mr(t),Kt(o,c,o.c.b,o.c),ri(n.a,c)))}function U8e(n){var e,t;for(t=new re(ue(xr(n).a.Kc(),new Mn));Se(t);)if(e=u(ve(t),17),e.c.i.k!=(Qn(),Qu))throw T(new pw(SN+E7(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function W8e(n,e,t){var i,r,c,o,f,h,l;if(r=JDn(n.Db&254),r==0)n.Eb=t;else{if(r==1)f=F(Zn,rn,1,2,5,1),c=ux(n,e),c==0?(f[0]=t,f[1]=n.Eb):(f[0]=n.Eb,f[1]=t);else for(f=F(Zn,rn,1,r+1,5,1),o=pa(n.Eb),i=2,h=0,l=0;i<=128;i<<=1)i==e?f[l++]=t:n.Db&i&&(f[l++]=o[h++]);n.Eb=f}n.Db|=e}function FNn(n,e,t){var i,r,c,o;for(this.b=new X,r=0,i=0,o=new E(n);o.a0&&(c=u(un(this.b,0),167),r+=c.o,i+=c.p),r*=2,i*=2,e>1?r=Gt(j.Math.ceil(r*e)):i=Gt(j.Math.ceil(i/e)),this.a=new xQ(r,i)}function xNn(n,e,t,i,r,c){var o,f,h,l,a,d,g,p,v,m,C,S;for(a=i,e.j&&e.o?(p=u(te(n.f,e.A),57),m=p.d.c+p.d.b,--a):m=e.a.c+e.a.b,d=r,t.q&&t.o?(p=u(te(n.f,t.C),57),l=p.d.c,++d):l=t.a.c,C=l-m,h=j.Math.max(2,d-a),f=C/h,v=m+f,g=a;g=0;o+=r?1:-1){for(f=e[o],h=i==(J(),Vn)?r?zr(f,i):va(zr(f,i)):r?va(zr(f,i)):zr(f,i),c&&(n.c[f.p]=h.gc()),d=h.Kc();d.Ob();)a=u(d.Pb(),11),n.d[a.p]=l++;Yt(t,h)}}function LNn(n,e,t){var i,r,c,o,f,h,l,a;for(c=K(Y(n.b.Kc().Pb())),l=K(Y(twe(e.b))),i=If(Qr(n.a),l-t),r=If(Qr(e.a),t-c),a=ot(i,r),If(a,1/(l-c)),this.a=a,this.b=new X,f=!0,o=n.b.Kc(),o.Pb();o.Ob();)h=K(Y(o.Pb())),f&&h-t>oB&&(this.b.Fc(t),f=!1),this.b.Fc(h);f&&this.b.Fc(t)}function X8e(n){var e,t,i,r;if(cke(n,n.n),n.d.c.length>0){for(qv(n.c);AY(n,u(y(new E(n.e.a)),121))>5,e&=31,i>=n.d)return n.e<0?(jl(),gR):(jl(),W4);if(c=n.d-i,r=F(be,Le,25,c+1,15,1),K5e(r,c,n.a,i,e),n.e<0){for(t=0;t0&&n.a[t]<<32-e){for(t=0;t=0?!1:(t=rg((gu(),xi),r,e),t?(i=t.Zj(),(i>1||i==-1)&&Sd(jr(xi,t))!=3):!0)):!1}function Y8e(n,e,t,i){var r,c,o,f,h;return f=Pr(u(D((!e.b&&(e.b=new Fn(he,e,4,7)),e.b),0),82)),h=Pr(u(D((!e.c&&(e.c=new Fn(he,e,5,8)),e.c),0),82)),At(f)==At(h)||ob(h,f)?null:(o=S8(e),o==t?i:(c=u(te(n.a,o),10),c&&(r=c.e,r)?r:null))}function Z8e(n,e){var t;switch(t=u(k(n,(nn(),JS)),276),le(e,"Label side selection ("+t+")",1),t.g){case 0:nNn(n,(cs(),kh));break;case 1:nNn(n,(cs(),Kl));break;case 2:wRn(n,(cs(),kh));break;case 3:wRn(n,(cs(),Kl));break;case 4:QNn(n,(cs(),kh));break;case 5:QNn(n,(cs(),Kl))}ce(e)}function VY(n,e,t){var i,r,c,o,f,h;if(i=Bie(t,n.length),o=n[i],o[0].k==(Qn(),Xt))for(c=n8n(t,o.length),h=e.j,r=0;r0&&(t[0]+=n.d,o-=t[0]),t[2]>0&&(t[2]+=n.d,o-=t[2]),c=j.Math.max(0,o),t[1]=j.Math.max(t[1],o),SX(n,Fc,r.c+i.b+t[0]-(t[1]-o)/2,t),e==Fc&&(n.c.b=c,n.c.c=r.c+i.b+(c-o)/2)}function WNn(){this.c=F(ji,pr,25,(J(),A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn])).length,15,1),this.b=F(ji,pr,25,A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn]).length,15,1),this.a=F(ji,pr,25,A(M(Zi,1),hc,61,0,[Xr,Kn,Vn,ae,Gn]).length,15,1),BG(this.c,Ft),BG(this.b,Vt),BG(this.a,Vt)}function yc(n,e,t){var i,r,c,o;if(e<=t?(r=e,c=t):(r=t,c=e),i=0,n.b==null)n.b=F(be,Le,25,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r){n.b[i-1]=c;return}o=F(be,Le,25,i+2,15,1),gc(n.b,0,o,0,i),n.b=o,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||Jw(n)}}function s7e(n,e,t){var i,r,c,o,f,h,l;for(l=e.d,n.a=new Pc(l.c.length),n.c=new we,f=new E(l);f.a=0?n._g(l,!1,!0):Yd(n,t,!1),58));n:for(c=d.Kc();c.Ob();){for(r=u(c.Pb(),56),a=0;a1;)Eb(r,r.i-1);return i}function a7e(n,e){var t,i,r,c,o,f,h;for(le(e,"Comment post-processing",1),c=new E(n.b);c.an.d[o.p]&&(t+=jX(n.b,c),ll(n.a,Q(c)));for(;!Hv(n.a);)ZX(n.b,u(y2(n.a),19).a)}return t}function JNn(n,e,t){var i,r,c,o;for(c=(!e.a&&(e.a=new V(Pt,e,10,11)),e.a).i,r=new ie((!e.a&&(e.a=new V(Pt,e,10,11)),e.a));r.e!=r.i.gc();)i=u(oe(r),33),(!i.a&&(i.a=new V(Pt,i,10,11)),i.a).i==0||(c+=JNn(n,i,!1));if(t)for(o=At(e);o;)c+=(!o.a&&(o.a=new V(Pt,o,10,11)),o.a).i,o=At(o);return c}function Eb(n,e){var t,i,r,c;return n.ej()?(i=null,r=n.fj(),n.ij()&&(i=n.kj(n.pi(e),null)),t=n.Zi(4,c=H2(n,e),null,e,r),n.bj()&&c!=null&&(i=n.dj(c,i)),i?(i.Ei(t),i.Fi()):n.$i(t),c):(c=H2(n,e),n.bj()&&c!=null&&(i=n.dj(c,null),i&&i.Fi()),c)}function b7e(n){var e,t,i,r,c,o,f,h,l,a;for(l=n.a,e=new fi,h=0,i=new E(n.d);i.af.d&&(a=f.d+f.a+l));t.c.d=a,e.a.zc(t,e),h=j.Math.max(h,t.c.d+t.c.a)}return h}function or(){or=N,NS=new H0("COMMENTS",0),$s=new H0("EXTERNAL_PORTS",1),Tm=new H0("HYPEREDGES",2),BS=new H0("HYPERNODES",3),ov=new H0("NON_FREE_PORTS",4),Mg=new H0("NORTH_SOUTH_PORTS",5),Mm=new H0(lHn,6),uv=new H0("CENTER_LABELS",7),sv=new H0("END_LABELS",8),RS=new H0("PARTITIONS",9)}function Cb(n){var e,t,i,r,c;for(r=new X,e=new S5((!n.a&&(n.a=new V(Pt,n,10,11)),n.a)),i=new re(ue(Gh(n).a.Kc(),new Mn));Se(i);)t=u(ve(i),79),I(D((!t.b&&(t.b=new Fn(he,t,4,7)),t.b),0),186)||(c=Pr(u(D((!t.c&&(t.c=new Fn(he,t,5,8)),t.c),0),82)),e.a._b(c)||(r.c[r.c.length]=c));return r}function w7e(n){var e,t,i,r,c,o;for(c=new fi,e=new S5((!n.a&&(n.a=new V(Pt,n,10,11)),n.a)),r=new re(ue(Gh(n).a.Kc(),new Mn));Se(r);)i=u(ve(r),79),I(D((!i.b&&(i.b=new Fn(he,i,4,7)),i.b),0),186)||(o=Pr(u(D((!i.c&&(i.c=new Fn(he,i,5,8)),i.c),0),82)),e.a._b(o)||(t=c.a.zc(o,c),t==null));return c}function g7e(n,e,t,i,r){return i<0?(i=Qw(n,r,A(M(tn,1),q,2,6,[IL,OL,DL,$L,V2,FL,xL,LL,NL,BL,RL,_L]),e),i<0&&(i=Qw(n,r,A(M(tn,1),q,2,6,["Jan","Feb","Mar","Apr",V2,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function p7e(n,e,t,i,r){return i<0?(i=Qw(n,r,A(M(tn,1),q,2,6,[IL,OL,DL,$L,V2,FL,xL,LL,NL,BL,RL,_L]),e),i<0&&(i=Qw(n,r,A(M(tn,1),q,2,6,["Jan","Feb","Mar","Apr",V2,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function v7e(n,e,t,i,r,c){var o,f,h,l;if(f=32,i<0){if(e[0]>=n.length||(f=Di(n,e[0]),f!=43&&f!=45)||(++e[0],i=tM(n,e),i<0))return!1;f==45&&(i=-i)}return f==32&&e[0]-t==2&&r.b==2&&(h=new Tj,l=h.q.getFullYear()-Tl+Tl-80,o=l%100,c.a=i==o,i+=(l/100|0)*100+(i=l&&(h=i);h&&(a=j.Math.max(a,h.a.o.a)),a>g&&(d=l,g=a)}return d}function y7e(n,e,t){var i,r,c;if(n.e=t,n.d=0,n.b=0,n.f=1,n.i=e,(n.e&16)==16&&(n.i=ske(n.i)),n.j=n.i.length,Qe(n),c=Wd(n),n.d!=n.j)throw T(new Ee(Pe((je(),$qn))));if(n.g){for(i=0;iFHn?bi(h,n.b):i<=FHn&&i>xHn?bi(h,n.d):i<=xHn&&i>LHn?bi(h,n.c):i<=LHn&&bi(h,n.a),c=eBn(n,h,c);return r}function jl(){jl=N;var n;for(qA=new l1(1,1),pR=new l1(1,10),W4=new l1(0,0),gR=new l1(-1,1),xin=A(M(vg,1),q,91,0,[W4,qA,new l1(1,2),new l1(1,3),new l1(1,4),new l1(1,5),new l1(1,6),new l1(1,7),new l1(1,8),new l1(1,9),pR]),GA=F(vg,q,91,32,0,1),n=0;n1,f&&(i=new fn(r,t.b),Ke(e.a,i)),V5(e.a,A(M(ai,1),q,8,0,[g,d]))}function uBn(n){wd(n,new Ia(ld(od(hd(fd(new Zl,gA),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new $2n))),Z(n,gA,u0,zhn),Z(n,gA,Db,15),Z(n,gA,HM,Q(0)),Z(n,gA,ep,$4)}function YY(){YY=N;var n,e,t,i,r,c;for(v9=F(yu,wg,25,255,15,1),oI=F(Ls,Bf,25,16,15,1),e=0;e<255;e++)v9[e]=-1;for(t=57;t>=48;t--)v9[t]=t-48<<24>>24;for(i=70;i>=65;i--)v9[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)v9[r]=r-97+10<<24>>24;for(c=0;c<10;c++)oI[c]=48+c&Ut;for(n=10;n<=15;n++)oI[n]=65+n-10&Ut}function aM(n,e,t){var i,r,c,o,f,h,l,a;return f=e.i-n.g/2,h=t.i-n.g/2,l=e.j-n.g/2,a=t.j-n.g/2,c=e.g+n.g/2,o=t.g+n.g/2,i=e.f+n.g/2,r=t.f+n.g/2,f>19)return"-"+sBn(z3(n));for(t=n,i="";!(t.l==0&&t.m==0&&t.h==0);){if(r=E$($M),t=IZ(t,r,!0),e=""+m8n(Il),!(t.l==0&&t.m==0&&t.h==0))for(c=9-e.length;c>0;c--)e="0"+e;i=e+i}return i}function A7e(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var n="__proto__",e=Object.create(null);if(e[n]!==void 0)return!1;var t=Object.getOwnPropertyNames(e);return!(t.length!=0||(e[n]=42,e[n]!==42)||Object.getOwnPropertyNames(e).length==0)}function S7e(n){var e,t,i,r,c,o,f;for(e=!1,t=0,r=new E(n.d.b);r.a=n.a||!RJ(e,t))return-1;if(E3(u(i.Kb(e),20)))return 1;for(r=0,o=u(i.Kb(e),20).Kc();o.Ob();)if(c=u(o.Pb(),17),h=c.c.i==e?c.d.i:c.c.i,f=nZ(n,h,t,i),f==-1||(r=j.Math.max(r,f),r>n.c-1))return-1;return r+1}function oBn(n,e){var t,i,r,c,o,f;if(B(e)===B(n))return!0;if(!I(e,15)||(i=u(e,15),f=n.gc(),i.gc()!=f))return!1;if(o=i.Kc(),n.ni()){for(t=0;t0){if(n.qj(),e!=null){for(c=0;c>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw T(new Sf("Invalid hexadecimal"))}}function D7e(n,e,t){var i,r,c,o;for(le(t,"Processor order nodes",2),n.a=K(Y(k(e,(Zd(),Con)))),r=new Ct,o=_e(e.b,0);o.b!=o.d.c;)c=u(Re(o),86),on(sn(k(c,(cc(),iw))))&&Kt(r,c,r.c.b,r.c);i=(ne(r.b!=0),u(r.a.a.c,86)),SRn(n,i),!t.b&&X$(t,1),cZ(n,i,0-K(Y(k(i,(cc(),kP))))/2,0),!t.b&&X$(t,1),ce(t)}function dM(){dM=N,brn=new kw("SPIRAL",0),hrn=new kw("LINE_BY_LINE",1),lrn=new kw("MANHATTAN",2),frn=new kw("JITTER",3),ER=new kw("QUADRANTS_LINE_BY_LINE",4),drn=new kw("QUADRANTS_MANHATTAN",5),arn=new kw("QUADRANTS_JITTER",6),orn=new kw("COMBINE_LINE_BY_LINE_MANHATTAN",7),srn=new kw("COMBINE_JITTER_MANHATTAN",8)}function hBn(n,e,t,i){var r,c,o,f,h,l;for(h=ax(n,t),l=ax(e,t),r=!1;h&&l&&(i||S3e(h,l,t));)o=ax(h,t),f=ax(l,t),H8(e),H8(n),c=h.c,gL(h,!1),gL(l,!1),t?(pb(e,l.p,c),e.p=l.p,pb(n,h.p+1,c),n.p=h.p):(pb(n,h.p,c),n.p=h.p,pb(e,l.p+1,c),e.p=l.p),yr(h,null),yr(l,null),h=o,l=f,r=!0;return r}function $7e(n,e,t,i){var r,c,o,f,h;for(r=!1,c=!1,f=new E(i.j);f.a=e.length)throw T(new vr("Greedy SwitchDecider: Free layer not in graph."));this.c=e[n],this.e=new b8(i),Y$(this.e,this.c,(J(),Gn)),this.i=new b8(i),Y$(this.i,this.c,Vn),this.f=new oCn(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(Qn(),Xt),this.a&&Q5e(this,n,e.length)}function aBn(n,e){var t,i,r,c,o,f;c=!n.B.Hc((xu(),Sy)),o=n.B.Hc(sH),n.a=new s$n(o,c,n.c),n.n&&GW(n.a.n,n.n),zI(n.g,(_o(),Fc),n.a),e||(i=new l6(1,c,n.c),i.n.a=n.k,m2(n.p,(J(),Kn),i),r=new l6(1,c,n.c),r.n.d=n.k,m2(n.p,ae,r),f=new l6(0,c,n.c),f.n.c=n.k,m2(n.p,Gn,f),t=new l6(0,c,n.c),t.n.b=n.k,m2(n.p,Vn,t))}function x7e(n){var e,t,i;switch(e=u(k(n.d,(nn(),Qh)),218),e.g){case 2:t=lTe(n);break;case 3:t=(i=new X,Rt(gt(Xc(qr(qr(new $n(null,new xn(n.d.b,16)),new Pbn),new Ibn),new Obn),new gbn),new U5n(i)),i);break;default:throw T(new Dr("Compaction not supported for "+e+" edges."))}$je(n,t),$i(new Rp(n.g),new G5n(n))}function L7e(n,e){var t;return t=new pI,e&&Sr(t,u(te(n.a,Iy),94)),I(e,470)&&Sr(t,u(te(n.a,Oy),94)),I(e,354)?(Sr(t,u(te(n.a,Br),94)),t):(I(e,82)&&Sr(t,u(te(n.a,he),94)),I(e,239)?(Sr(t,u(te(n.a,Pt),94)),t):I(e,186)?(Sr(t,u(te(n.a,Ru),94)),t):(I(e,352)&&Sr(t,u(te(n.a,di),94)),t))}function Go(){Go=N,Q4=new tr((Xe(),_P),Q(1)),rS=new tr(ed,80),iWn=new tr(jhn,5),XUn=new tr(Tp,$4),eWn=new tr(tH,Q(1)),tWn=new tr(iH,(qn(),!0)),Orn=new vd(50),ZUn=new tr(nd,Orn),Srn=NP,Drn=n9,VUn=new tr(WK,!1),Irn=ky,YUn=_l,JUn=Za,QUn=_g,nWn=rw,Prn=(YJ(),KUn),xR=zUn,iS=_Un,FR=HUn,$rn=GUn}function N7e(n){var e,t,i,r,c,o,f,h;for(h=new bSn,f=new E(n.a);f.a0&&e=0)return!1;if(e.p=t.b,W(t.e,e),r==(Qn(),gi)||r==Tc){for(o=new E(e.j);o.a1||o==-1)&&(c|=16),r.Bb&uc&&(c|=64)),t.Bb&Yi&&(c|=Bb),c|=Eo):I(e,457)?c|=512:(i=e.Bj(),i&&i.i&1&&(c|=256)),n.Bb&512&&(c|=128),c}function T6(n,e){var t,i,r,c,o;for(n=n==null?iu:(_n(n),n),r=0;rn.d[f.p]&&(t+=jX(n.b,c),ll(n.a,Q(c)))):++o;for(t+=n.b.d*o;!Hv(n.a);)ZX(n.b,u(y2(n.a),19).a)}return t}function U7e(n,e){var t;return n.f==mH?(t=Sd(jr((gu(),xi),e)),n.e?t==4&&e!=(z2(),Dp)&&e!=(z2(),Op)&&e!=(z2(),kH)&&e!=(z2(),yH):t==2):n.d&&(n.d.Hc(e)||n.d.Hc(A2(jr((gu(),xi),e)))||n.d.Hc(rg((gu(),xi),n.b,e)))?!0:n.f&&qY((gu(),n.f),E8(jr(xi,e)))?(t=Sd(jr(xi,e)),n.e?t==4:t==2):!1}function W7e(n,e,t,i){var r,c,o,f,h,l,a,d;return o=u(hn(t,(Xe(),Mp)),8),h=o.a,a=o.b+n,r=j.Math.atan2(a,h),r<0&&(r+=ag),r+=e,r>ag&&(r-=ag),f=u(hn(i,Mp),8),l=f.a,d=f.b+n,c=j.Math.atan2(d,l),c<0&&(c+=ag),c+=e,c>ag&&(c-=ag),Yo(),mo(1e-10),j.Math.abs(r-c)<=1e-10||r==c||isNaN(r)&&isNaN(c)?0:rc?1:pd(isNaN(r),isNaN(c))}function Wx(n){var e,t,i,r,c,o,f;for(f=new we,i=new E(n.a.b);i.a=n.o)throw T(new qq);f=e>>5,o=e&31,c=Ih(1,ge(Ih(o,1))),r?n.n[t][f]=rf(n.n[t][f],c):n.n[t][f]=ci(n.n[t][f],XU(c)),c=Ih(c,1),i?n.n[t][f]=rf(n.n[t][f],c):n.n[t][f]=ci(n.n[t][f],XU(c))}catch(h){throw h=jt(h),I(h,320)?T(new vr(bN+n.o+"*"+n.p+wN+e+Ji+t+gN)):T(h)}}function cZ(n,e,t,i){var r,c,o;e&&(c=K(Y(k(e,(cc(),O1))))+i,o=t+K(Y(k(e,kP)))/2,H(e,mK,Q(ge(eu(j.Math.round(c))))),H(e,pon,Q(ge(eu(j.Math.round(o))))),e.d.b==0||cZ(n,u(fE((r=_e(new X1(e).a.d,0),new e2(r))),86),t+K(Y(k(e,kP)))+n.a,i+K(Y(k(e,vv)))),k(e,vK)!=null&&cZ(n,u(k(e,vK),86),t,i))}function V7e(n,e){var t,i,r,c,o,f,h,l,a,d,g;for(h=Gi(e.a),r=K(Y(k(h,(nn(),Qa))))*2,a=K(Y(k(h,$g))),l=j.Math.max(r,a),c=F(ji,pr,25,e.f-e.c+1,15,1),i=-l,t=0,f=e.b.Kc();f.Ob();)o=u(f.Pb(),10),i+=n.a[o.c.p]+l,c[t++]=i;for(i+=n.a[e.a.c.p]+l,c[t++]=i,g=new E(e.e);g.a0&&(i=(!n.n&&(n.n=new V(Br,n,1,7)),u(D(n.n,0),137)).a,!i||De(De((e.a+=' "',e),i),'"'))),De(dd(De(dd(De(dd(De(dd((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function jBn(n){var e,t,i;return n.Db&64?Ex(n):(e=new Ju(Itn),t=n.k,t?De(De((e.a+=' "',e),t),'"'):(!n.n&&(n.n=new V(Br,n,1,7)),n.n.i>0&&(i=(!n.n&&(n.n=new V(Br,n,1,7)),u(D(n.n,0),137)).a,!i||De(De((e.a+=' "',e),i),'"'))),De(dd(De(dd(De(dd(De(dd((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function Vx(n,e){var t,i,r,c,o,f,h;if(e==null||e.length==0)return null;if(r=u(vc(n.a,e),149),!r){for(i=(f=new Mh(n.b).a.vc().Kc(),new L0(f));i.a.Ob();)if(t=(c=u(i.a.Pb(),42),u(c.dd(),149)),o=t.c,h=e.length,An(o.substr(o.length-h,h),e)&&(e.length==o.length||Di(o,o.length-e.length-1)==46)){if(r)return null;r=t}r&&kr(n.a,e,r)}return r}function Y7e(n,e){var t,i,r,c;return t=new zln,i=u(es(Xc(new $n(null,new xn(n.f,16)),t),cb(new Vg,new Qg,new Jg,new Yg,A(M(Nu,1),z,132,0,[(hf(),Rb),hs]))),21),r=i.gc(),i=u(es(Xc(new $n(null,new xn(e.f,16)),t),cb(new Vg,new Qg,new Jg,new Yg,A(M(Nu,1),z,132,0,[Rb,hs]))),21),c=i.gc(),rr.p?(ui(c,ae),c.d&&(f=c.o.b,e=c.a.b,c.a.b=f-e)):c.j==ae&&r.p>n.p&&(ui(c,Kn),c.d&&(f=c.o.b,e=c.a.b,c.a.b=-(f-e)));break}return r}function nke(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v;if(c=t,t1,f&&(i=new fn(r,t.b),Ke(e.a,i)),V5(e.a,A(M(ai,1),q,8,0,[g,d]))}function Qx(n,e,t){var i,r,c,o,f,h;if(e)if(t<=-1){if(i=On(e.Tg(),-1-t),I(i,99))return u(i,18);for(o=u(e.ah(i),153),f=0,h=o.gc();f0){for(r=h.length;r>0&&h[r-1]=="";)--r;r=40,o&&lye(n),wje(n),X8e(n),t=WDn(n),i=0;t&&i0&&Ke(n.f,c)):(n.c[o]-=l+1,n.c[o]<=0&&n.a[o]>0&&Ke(n.e,c))))}function Mke(n){var e,t,i,r,c,o,f,h,l;for(f=new Y1(u(pe(new Wln),62)),l=Vt,t=new E(n.d);t.a=0&&ht?e:t;l<=d;++l)l==t?f=i++:(c=r[l],a=v.rl(c.ak()),l==e&&(h=l==d&&!a?i-1:i),a&&++i);return g=u(o6(n,e,t),72),f!=h&&Gp(n,new R8(n.e,7,o,Q(f),p.dd(),h)),g}}else return u(Dx(n,e,t),72);return u(o6(n,e,t),72)}function Ike(n,e){var t,i,r,c,o,f,h;for(le(e,"Port order processing",1),h=u(k(n,(nn(),Ssn)),421),i=new E(n.b);i.a=0&&(f=$3e(n,o),!(f&&(l<22?h.l|=1<>>1,o.m=a>>>1|(d&1)<<21,o.l=g>>>1|(a&1)<<21,--l;return t&&sF(h),c&&(i?(Il=z3(n),r&&(Il=xOn(Il,(I3(),gin)))):Il=Bc(n.l,n.m,n.h)),h}function $ke(n,e){var t,i,r,c,o,f,h,l,a,d;for(l=n.e[e.c.p][e.p]+1,h=e.c.a.c.length+1,f=new E(n.a);f.a0&&(Te(0,n.length),n.charCodeAt(0)==45||(Te(0,n.length),n.charCodeAt(0)==43))?1:0,i=o;it)throw T(new Sf(c0+n+'"'));return f}function Fke(n){var e,t,i,r,c,o,f;for(o=new Ct,c=new E(n.a);c.a1)&&e==1&&u(n.a[n.b],10).k==(Qn(),Qu)?W2(u(n.a[n.b],10),(cs(),kh)):i&&(!t||(n.c-n.b&n.a.length-1)>1)&&e==1&&u(n.a[n.c-1&n.a.length-1],10).k==(Qn(),Qu)?W2(u(n.a[n.c-1&n.a.length-1],10),(cs(),Kl)):(n.c-n.b&n.a.length-1)==2?(W2(u(t6(n),10),(cs(),kh)),W2(u(t6(n),10),Kl)):S9e(n,r),kX(n)}function Nke(n,e,t){var i,r,c,o,f;for(c=0,r=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));r.e!=r.i.gc();)i=u(oe(r),33),o="",(!i.n&&(i.n=new V(Br,i,1,7)),i.n).i==0||(o=u(D((!i.n&&(i.n=new V(Br,i,1,7)),i.n),0),137).a),f=new hF(c++,e,o),Sr(f,i),H(f,(cc(),Wm),i),f.e.b=i.j+i.f/2,f.f.a=j.Math.max(i.g,1),f.e.a=i.i+i.g/2,f.f.b=j.Math.max(i.f,1),Ke(e.b,f),_c(t.f,i,f)}function Bke(n){var e,t,i,r,c;i=u(k(n,(G(),rt)),33),c=u(hn(i,(nn(),Xa)),174).Hc((Vu(),id)),n.e||(r=u(k(n,Mc),21),e=new fn(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((or(),$s))?(gr(i,Lt,(Ti(),Ac)),t0(i,e.a,e.b,!1,!0)):on(sn(hn(i,H_)))||t0(i,e.a,e.b,!0,!0)),c?gr(i,Xa,Cn(id)):gr(i,Xa,(t=u(xo(o9),9),new ks(t,u(bo(t,t.length),9),0)))}function dZ(n,e,t){var i,r,c,o;if(e[0]>=n.length)return t.o=0,!0;switch(Di(n,e[0])){case 43:r=1;break;case 45:r=-1;break;default:return t.o=0,!0}if(++e[0],c=e[0],o=tM(n,e),o==0&&e[0]==c)return!1;if(e[0]=0&&f!=t&&(c=new wi(n,1,f,o,null),i?i.Ei(c):i=c),t>=0&&(c=new wi(n,1,t,f==t?o:null,e),i?i.Ei(c):i=c)),i}function _Bn(n){var e,t,i;if(n.b==null){if(i=new i1,n.i!=null&&(dr(i,n.i),i.a+=":"),n.f&256){for(n.f&256&&n.a!=null&&(n1e(n.i)||(i.a+="//"),dr(i,n.a)),n.d!=null&&(i.a+="/",dr(i,n.d)),n.f&16&&(i.a+="/"),e=0,t=n.j.length;eg?!1:(d=(h=O6(i,g,!1),h.a),a+f+d<=e.b&&(B8(t,c-t.s),t.c=!0,B8(i,c-t.s),k7(i,t.s,t.t+t.d+f),i.k=!0,TV(t.q,i),p=!0,r&&(XC(e,i),i.j=e,n.c.length>o&&(T7((Ln(o,n.c.length),u(n.c[o],200)),i),(Ln(o,n.c.length),u(n.c[o],200)).a.c.length==0&&h1(n,o)))),p)}function Uke(n,e){var t,i,r,c,o,f;if(le(e,"Partition midprocessing",1),r=new Od,Rt(gt(new $n(null,new xn(n.a,16)),new w0n),new I5n(r)),r.d!=0){for(f=u(es($Mn((c=r.i,new $n(null,(c||(r.i=new Sw(r,r.c))).Nc()))),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[(hf(),hs)]))),15),i=f.Kc(),t=u(i.Pb(),19);i.Ob();)o=u(i.Pb(),19),V9e(u(ct(r,t),21),u(ct(r,o),21)),t=o;ce(e)}}function qBn(n,e,t){var i,r,c,o,f,h,l,a;if(e.p==0){for(e.p=1,o=t,o||(r=new X,c=(i=u(xo(Zi),9),new ks(i,u(bo(i,i.length),9),0)),o=new Pi(r,c)),u(o.a,15).Fc(e),e.k==(Qn(),Xt)&&u(o.b,21).Fc(u(k(e,(G(),ec)),61)),h=new E(e.j);h.a0){if(r=u(n.Ab.g,1934),e==null){for(c=0;c1)for(i=new E(r);i.at.s&&ff&&(f=r,a.c=F(Zn,rn,1,0,5,1)),r==f&&W(a,new Pi(t.c.i,t)));Pn(),bi(a,n.c),Q0(n.b,h.p,a)}}function Yke(n,e){var t,i,r,c,o,f,h,l,a;for(o=new E(e.b);o.af&&(f=r,a.c=F(Zn,rn,1,0,5,1)),r==f&&W(a,new Pi(t.d.i,t)));Pn(),bi(a,n.c),Q0(n.f,h.p,a)}}function zBn(n){wd(n,new Ia(ld(od(hd(fd(new Zl,f0),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new m2n))),Z(n,f0,u0,Gfn),Z(n,f0,Db,15),Z(n,f0,hk,Q(0)),Z(n,f0,dA,cn(Kfn)),Z(n,f0,hg,cn(LZn)),Z(n,f0,tp,cn(NZn)),Z(n,f0,ep,qHn),Z(n,f0,lk,cn(Hfn)),Z(n,f0,ip,cn(qfn)),Z(n,f0,Ctn,cn(qK)),Z(n,f0,sA,cn(xZn))}function UBn(n,e){var t,i,r,c,o,f,h,l,a;if(r=n.i,o=r.o.a,c=r.o.b,o<=0&&c<=0)return J(),Xr;switch(l=n.n.a,a=n.n.b,f=n.o.a,t=n.o.b,e.g){case 2:case 1:if(l<0)return J(),Gn;if(l+f>o)return J(),Vn;break;case 4:case 3:if(a<0)return J(),Kn;if(a+t>c)return J(),ae}return h=(l+f/2)/o,i=(a+t/2)/c,h+i<=1&&h-i<=0?(J(),Gn):h+i>=1&&h-i>=0?(J(),Vn):i<.5?(J(),Kn):(J(),ae)}function Zke(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m;for(t=!1,a=K(Y(k(e,(nn(),T0)))),v=Cl*a,r=new E(e.b);r.ah+v&&(m=d.g+g.g,g.a=(g.g*g.a+d.g*d.a)/m,g.g=m,d.f=g,t=!0)),c=f,d=g;return t}function WBn(n,e,t,i,r,c,o){var f,h,l,a,d,g;for(g=new d2,l=e.Kc();l.Ob();)for(f=u(l.Pb(),839),d=new E(f.wf());d.a0?f.a?(l=f.b.rf().b,r>l&&(n.v||f.c.d.c.length==1?(o=(r-l)/2,f.d.d=o,f.d.a=o):(t=u(un(f.c.d,0),181).rf().b,i=(t-l)/2,f.d.d=j.Math.max(0,i),f.d.a=r-i-l))):f.d.a=n.t+r:D5(n.u)&&(c=HJ(f.b),c.d<0&&(f.d.d=-c.d),c.d+c.a>f.b.rf().b&&(f.d.a=c.d+c.a-f.b.rf().b))}function tye(n,e){var t;switch(U8(n)){case 6:return mi(e);case 7:return G0(e);case 8:return q0(e);case 3:return Array.isArray(e)&&(t=U8(e),!(t>=14&&t<=16));case 11:return e!=null&&typeof e===CL;case 12:return e!=null&&(typeof e===Q7||typeof e==CL);case 0:return WF(e,n.__elementTypeId$);case 2:return OD(e)&&e.im!==Xg;case 1:return OD(e)&&e.im!==Xg||WF(e,n.__elementTypeId$);default:return!0}}function XBn(n,e){var t,i,r,c;return i=j.Math.min(j.Math.abs(n.c-(e.c+e.b)),j.Math.abs(n.c+n.b-e.c)),c=j.Math.min(j.Math.abs(n.d-(e.d+e.a)),j.Math.abs(n.d+n.a-e.d)),t=j.Math.abs(n.c+n.b/2-(e.c+e.b/2)),t>n.b/2+e.b/2||(r=j.Math.abs(n.d+n.a/2-(e.d+e.a/2)),r>n.a/2+e.a/2)?1:t==0&&r==0?0:t==0?c/r+1:r==0?i/t+1:j.Math.min(i/t,c/r)+1}function VBn(n,e){var t,i,r,c,o,f;return r=fV(n),f=fV(e),r==f?n.e==e.e&&n.a<54&&e.a<54?n.fe.f?1:0:(i=n.e-e.e,t=(n.d>0?n.d:j.Math.floor((n.a-1)*uKn)+1)-(e.d>0?e.d:j.Math.floor((e.a-1)*uKn)+1),t>i+1?r:t0&&(o=Fw(o,pRn(i))),A$n(c,o))):r0&&n.d!=(W5(),BR)&&(f+=o*(i.d.a+n.a[e.b][i.b]*(e.d.a-i.d.a)/t)),t>0&&n.d!=(W5(),LR)&&(h+=o*(i.d.b+n.a[e.b][i.b]*(e.d.b-i.d.b)/t)));switch(n.d.g){case 1:return new fn(f/c,e.d.b);case 2:return new fn(e.d.a,h/c);default:return new fn(f/c,h/c)}}function QBn(n,e){V3();var t,i,r,c,o;if(o=u(k(n.i,(nn(),Lt)),98),c=n.j.g-e.j.g,c!=0||!(o==(Ti(),td)||o==jh||o==Ac))return 0;if(o==(Ti(),td)&&(t=u(k(n,P1),19),i=u(k(e,P1),19),t&&i&&(r=t.a-i.a,r!=0)))return r;switch(n.j.g){case 1:return Zt(n.n.a,e.n.a);case 2:return Zt(n.n.b,e.n.b);case 3:return Zt(e.n.a,n.n.a);case 4:return Zt(e.n.b,n.n.b);default:throw T(new Dr($nn))}}function JBn(n){var e,t,i,r,c,o;for(t=(!n.a&&(n.a=new Jt(io,n,5)),n.a).i+2,o=new Pc(t),W(o,new fn(n.j,n.k)),Rt(new $n(null,(!n.a&&(n.a=new Jt(io,n,5)),new xn(n.a,16))),new z6n(o)),W(o,new fn(n.b,n.c)),e=1;e0&&(u7(h,!1,(sr(),Zs)),u7(h,!0,Ao)),Yc(e.g,new H7n(n,t)),it(n.g,e,t)}function ZBn(){ZBn=N;var n;for(Cin=A(M(be,1),Le,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),bR=F(be,Le,25,37,15,1),yzn=A(M(be,1),Le,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),Tin=F(Yl,QL,25,37,14,1),n=2;n<=36;n++)bR[n]=Gt(j.Math.pow(n,Cin[n])),Tin[n]=M7(IM,bR[n])}function rye(n){var e;if((!n.a&&(n.a=new V(Tt,n,6,6)),n.a).i!=1)throw T(new Hn(oqn+(!n.a&&(n.a=new V(Tt,n,6,6)),n.a).i));return e=new hu,r7(u(D((!n.b&&(n.b=new Fn(he,n,4,7)),n.b),0),82))&&Vi(e,x_n(n,r7(u(D((!n.b&&(n.b=new Fn(he,n,4,7)),n.b),0),82)),!1)),r7(u(D((!n.c&&(n.c=new Fn(he,n,5,8)),n.c),0),82))&&Vi(e,x_n(n,r7(u(D((!n.c&&(n.c=new Fn(he,n,5,8)),n.c),0),82)),!0)),e}function nRn(n,e){var t,i,r,c,o;for(e.d?r=n.a.c==(Ff(),M0)?xr(e.b):ni(e.b):r=n.a.c==(Ff(),I1)?xr(e.b):ni(e.b),c=!1,i=new re(ue(r.a.Kc(),new Mn));Se(i);)if(t=u(ve(i),17),o=on(n.a.f[n.a.g[e.b.p].p]),!(!o&&!Xi(t)&&t.c.i.c==t.d.i.c)&&!(on(n.a.n[n.a.g[e.b.p].p])||on(n.a.n[n.a.g[e.b.p].p]))&&(c=!0,Ah(n.b,n.a.g[b3e(t,e.b).p])))return e.c=!0,e.a=t,e;return e.c=c,e.a=null,e}function cye(n,e,t,i,r){var c,o,f,h,l,a,d;for(Pn(),bi(n,new I2n),f=new Ii(n,0),d=new X,c=0;f.bc*2?(a=new zC(d),l=bu(o)/Gu(o),h=kL(a,e,new i2,t,i,r,l),ot(Lo(a.e),h),d.c=F(Zn,rn,1,0,5,1),c=0,d.c[d.c.length]=a,d.c[d.c.length]=o,c=bu(a)*Gu(a)+bu(o)*Gu(o)):(d.c[d.c.length]=o,c+=bu(o)*Gu(o));return d}function wZ(n,e,t){var i,r,c,o,f,h,l;if(i=t.gc(),i==0)return!1;if(n.ej())if(h=n.fj(),IQ(n,e,t),o=i==1?n.Zi(3,null,t.Kc().Pb(),e,h):n.Zi(5,null,t,e,h),n.bj()){for(f=i<100?null:new Q1(i),c=e+i,r=e;r0){for(o=0;o>16==-15&&n.Cb.nh()&&L$(new D$(n.Cb,9,13,t,n.c,v1(Ou(u(n.Cb,59)),n))):I(n.Cb,88)&&n.Db>>16==-23&&n.Cb.nh()&&(e=n.c,I(e,88)||(e=(Sn(),so)),I(t,88)||(t=(Sn(),so)),L$(new D$(n.Cb,9,10,t,e,v1(bc(u(n.Cb,26)),n)))))),n.c}function uye(n,e){var t,i,r,c,o,f,h,l,a,d;for(le(e,"Hypernodes processing",1),r=new E(n.b);r.at);return r}function tRn(n,e){var t,i,r;i=Fu(n.d,1)!=0,!on(sn(k(e.j,(G(),v0))))&&!on(sn(k(e.j,Pg)))||B(k(e.j,(nn(),Ll)))===B((Rh(),Nl))?e.c.Tf(e.e,i):i=on(sn(k(e.j,v0))),_7(n,e,i,!0),on(sn(k(e.j,Pg)))&&H(e.j,Pg,(qn(),!1)),on(sn(k(e.j,v0)))&&(H(e.j,v0,(qn(),!1)),H(e.j,Pg,!0)),t=Sx(n,e);do{if(yV(n),t==0)return 0;i=!i,r=t,_7(n,e,i,!1),t=Sx(n,e)}while(r>t);return r}function iRn(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v;if(e==t)return!0;if(e=TY(n,e),t=TY(n,t),i=nx(e),i){if(a=nx(t),a!=i)return a?(h=i.Dj(),v=a.Dj(),h==v&&h!=null):!1;if(o=(!e.d&&(e.d=new Jt(ar,e,1)),e.d),c=o.i,g=(!t.d&&(t.d=new Jt(ar,t,1)),t.d),c==g.i){for(l=0;l0,f=TT(e,c),Uz(t?f.b:f.g,e),Hw(f).c.length==1&&Kt(i,f,i.c.b,i.c),r=new Pi(c,e),ll(n.o,r),Qc(n.e.a,c))}function sRn(n,e){var t,i,r,c,o,f,h;return i=j.Math.abs(qE(n.b).a-qE(e.b).a),f=j.Math.abs(qE(n.b).b-qE(e.b).b),r=0,h=0,t=1,o=1,i>n.b.b/2+e.b.b/2&&(r=j.Math.min(j.Math.abs(n.b.c-(e.b.c+e.b.b)),j.Math.abs(n.b.c+n.b.b-e.b.c)),t=1-r/i),f>n.b.a/2+e.b.a/2&&(h=j.Math.min(j.Math.abs(n.b.d-(e.b.d+e.b.a)),j.Math.abs(n.b.d+n.b.a-e.b.d)),o=1-h/f),c=j.Math.min(t,o),(1-c)*j.Math.sqrt(i*i+f*f)}function aye(n){var e,t,i,r;for(mL(n,n.e,n.f,(Id(),Rl),!0,n.c,n.i),mL(n,n.e,n.f,Rl,!1,n.c,n.i),mL(n,n.e,n.f,Lg,!0,n.c,n.i),mL(n,n.e,n.f,Lg,!1,n.c,n.i),bye(n,n.c,n.e,n.f,n.i),i=new Ii(n.i,0);i.b=65;t--)Tf[t]=t-65<<24>>24;for(i=122;i>=97;i--)Tf[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)Tf[r]=r-48+52<<24>>24;for(Tf[43]=62,Tf[47]=63,c=0;c<=25;c++)R1[c]=65+c&Ut;for(o=26,h=0;o<=51;++o,h++)R1[o]=97+h&Ut;for(n=52,f=0;n<=61;++n,f++)R1[n]=48+f&Ut;R1[62]=43,R1[63]=47}function dye(n,e){var t,i,r,c,o,f,h,l,a,d,g,p;if(n.dc())return new Li;for(l=0,d=0,r=n.Kc();r.Ob();)i=u(r.Pb(),37),c=i.f,l=j.Math.max(l,c.a),d+=c.a*c.b;for(l=j.Math.max(l,j.Math.sqrt(d)*K(Y(k(u(n.Kc().Pb(),37),(nn(),zS))))),g=0,p=0,h=0,t=e,f=n.Kc();f.Ob();)o=u(f.Pb(),37),a=o.f,g+a.a>l&&(g=0,p+=h+e,h=0),M6(o,g,p),t=j.Math.max(t,g+a.a),h=j.Math.max(h,a.b),g+=a.a+e;return new fn(t+e,p+h+e)}function bye(n,e,t,i,r){var c,o,f,h,l,a,d;for(o=new E(e);o.ac)return J(),Vn;break;case 4:case 3:if(h<0)return J(),Kn;if(h+n.f>r)return J(),ae}return o=(f+n.g/2)/c,t=(h+n.f/2)/r,o+t<=1&&o-t<=0?(J(),Gn):o+t>=1&&o-t>=0?(J(),Vn):t<.5?(J(),Kn):(J(),ae)}function wye(n,e,t,i,r){var c,o;if(c=qi(ci(e[0],fr),ci(i[0],fr)),n[0]=ge(c),c=cl(c,32),t>=r){for(o=1;o0&&(r.b[o++]=0,r.b[o++]=c.b[0]-1),e=1;e0&&(II(h,h.d-r.d),r.c==(No(),Bl)&<e(h,h.a-r.d),h.d<=0&&h.i>0&&Kt(e,h,e.c.b,e.c)));for(c=new E(n.f);c.a0&&(ej(f,f.i-r.d),r.c==(No(),Bl)&&ate(f,f.b-r.d),f.i<=0&&f.d>0&&Kt(t,f,t.c.b,t.c)))}function gye(n,e,t){var i,r,c,o,f,h,l,a;for(le(t,"Processor compute fanout",1),Eu(n.b),Eu(n.a),f=null,c=_e(e.b,0);!f&&c.b!=c.d.c;)l=u(Re(c),86),on(sn(k(l,(cc(),iw))))&&(f=l);for(h=new Ct,Kt(h,f,h.c.b,h.c),v_n(n,h),a=_e(e.b,0);a.b!=a.d.c;)l=u(Re(a),86),o=Ce(k(l,(cc(),Um))),r=vc(n.b,o)!=null?u(vc(n.b,o),19).a:0,H(l,vP,Q(r)),i=1+(vc(n.a,o)!=null?u(vc(n.a,o),19).a:0),H(l,QJn,Q(i));ce(t)}function pye(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v;for(g=nve(n,t),h=0;h0),i.a.Xb(i.c=--i.b),d>g+h&&Uu(i);for(o=new E(p);o.a0),i.a.Xb(i.c=--i.b)}}function vye(){Je();var n,e,t,i,r,c;if(EH)return EH;for(n=new ns(4),Ab(n,El(eR,!0)),F6(n,El("M",!0)),F6(n,El("C",!0)),c=new ns(4),i=0;i<11;i++)yc(c,i,i);return e=new ns(4),Ab(e,El("M",!0)),yc(e,4448,4607),yc(e,65438,65439),r=new v5(2),Oa(r,n),Oa(r,k9),t=new v5(2),t.$l(LE(c,El("L",!0))),t.$l(e),t=new ib(3,t),t=new PW(r,t),EH=t,EH}function mye(n){var e,t;if(e=Ce(hn(n,(Xe(),Zm))),!EOn(e,n)&&!wa(n,yv)&&((!n.a&&(n.a=new V(Pt,n,10,11)),n.a).i!=0||on(sn(hn(n,vy)))))if(e==null||mb(e).length==0){if(!EOn(Jn,n))throw t=De(De(new Ju("Unable to load default layout algorithm "),Jn)," for unconfigured node "),CM(n,t),T(new pw(t.a))}else throw t=De(De(new Ju("Layout algorithm '"),e),"' not found for "),CM(n,t),T(new pw(t.a))}function tL(n){var e,t,i,r,c,o,f,h,l,a,d,g,p;if(t=n.i,e=n.n,n.b==0)for(p=t.c+e.b,g=t.b-e.b-e.c,o=n.a,h=0,a=o.length;h0&&(d-=i[0]+n.c,i[0]+=n.c),i[2]>0&&(d-=i[2]+n.c),i[1]=j.Math.max(i[1],d),BE(n.a[1],t.c+e.b+i[0]-(i[1]-d)/2,i[1]);for(c=n.a,f=0,l=c.length;f0?(n.n.c.length-1)*n.i:0,i=new E(n.n);i.a1)for(i=_e(r,0);i.b!=i.d.c;)for(t=u(Re(i),231),c=0,h=new E(t.e);h.a0&&(e[0]+=n.c,d-=e[0]),e[2]>0&&(d-=e[2]+n.c),e[1]=j.Math.max(e[1],d),RE(n.a[1],i.d+t.d+e[0]-(e[1]-d)/2,e[1]);else for(v=i.d+t.d,p=i.a-t.d-t.a,o=n.a,h=0,a=o.length;h=0&&c!=t))throw T(new Hn(yk));for(r=0,h=0;h0||zd(r.b.d,n.b.d+n.b.a)==0&&i.b<0||zd(r.b.d+r.b.a,n.b.d)==0&&i.b>0){f=0;break}}else f=j.Math.min(f,lLn(n,r,i));f=j.Math.min(f,lRn(n,c,f,i))}return f}function z7(n,e){var t,i,r,c,o,f,h;if(n.b<2)throw T(new Hn("The vector chain must contain at least a source and a target point."));for(r=(ne(n.b!=0),u(n.a.a.c,8)),uE(e,r.a,r.b),h=new b2((!e.a&&(e.a=new Jt(io,e,5)),e.a)),o=_e(n,1);o.aK(Zo(o.g,o.d[0]).a)?(ne(h.b>0),h.a.Xb(h.c=--h.b),X0(h,o),r=!0):f.e&&f.e.gc()>0&&(c=(!f.e&&(f.e=new X),f.e).Mc(e),l=(!f.e&&(f.e=new X),f.e).Mc(t),(c||l)&&((!f.e&&(f.e=new X),f.e).Fc(o),++o.c));r||(i.c[i.c.length]=o)}function bRn(n){var e,t,i;if(Cw(u(k(n,(nn(),Lt)),98)))for(t=new E(n.j);t.a>>0,"0"+e.toString(16)),i="\\x"+Yu(t,t.length-2,t.length)):n>=Yi?(t=(e=n>>>0,"0"+e.toString(16)),i="\\v"+Yu(t,t.length-6,t.length)):i=""+String.fromCharCode(n&Ut)}return i}function rL(n,e){var t,i,r,c,o,f,h,l,a,d;if(o=n.e,h=e.e,h==0)return n;if(o==0)return e.e==0?e:new Pw(-e.e,e.d,e.a);if(c=n.d,f=e.d,c+f==2)return t=ci(n.a[0],fr),i=ci(e.a[0],fr),o<0&&(t=P3(t)),h<0&&(i=P3(i)),m7(vl(t,i));if(r=c!=f?c>f?1:-1:YV(n.a,e.a,c),r==-1)d=-h,a=o==h?M$(e.a,f,n.a,c):S$(e.a,f,n.a,c);else if(d=o,o==h){if(r==0)return jl(),W4;a=M$(n.a,c,e.a,f)}else a=S$(n.a,c,e.a,f);return l=new Pw(d,a.length,a),K5(l),l}function jZ(n){var e,t,i,r,c,o;for(this.e=new X,this.a=new X,t=n.b-1;t<3;t++)s3(n,0,u(qo(n,0),8));if(n.b<4)throw T(new Hn("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,l9e(this,n.b+this.b-1),o=new X,c=new E(this.e),e=0;e=e.o&&t.f<=e.f||e.a*.5<=t.f&&e.a*1.5>=t.f){if(o=u(un(e.n,e.n.c.length-1),211),o.e+o.d+t.g+r<=i&&(c=u(un(e.n,e.n.c.length-1),211),c.f-n.f+t.f<=n.b||n.a.c.length==1))return yQ(e,t),!0;if(e.s+t.g<=i&&(e.t+e.d+t.f+r<=n.b||n.a.c.length==1))return W(e.b,t),f=u(un(e.n,e.n.c.length-1),211),W(e.n,new lC(e.s,f.f+f.a+e.i,e.i)),iJ(u(un(e.n,e.n.c.length-1),211),t),oRn(e,t),!0}return!1}function gRn(n,e,t){var i,r,c,o;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,o=B$(n,e,t),t,e,c),n.bj()&&!(n.ni()&&o!=null?tt(o,t):B(o)===B(t))?(o!=null&&(r=n.dj(o,r)),r=n.cj(t,r),n.ij()&&(r=n.lj(o,t,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):(n.ij()&&(r=n.lj(o,t,r)),r?(r.Ei(i),r.Fi()):n.$i(i)),o):(o=B$(n,e,t),n.bj()&&!(n.ni()&&o!=null?tt(o,t):B(o)===B(t))&&(r=null,o!=null&&(r=n.dj(o,null)),r=n.cj(t,r),r&&r.Fi()),o)}function S6(n,e){var t,i,r,c,o,f,h,l;e%=24,n.q.getHours()!=e&&(i=new j.Date(n.q.getTime()),i.setDate(i.getDate()+1),f=n.q.getTimezoneOffset()-i.getTimezoneOffset(),f>0&&(h=f/60|0,l=f%60,r=n.q.getDate(),t=n.q.getHours(),t+h>=24&&++r,c=new j.Date(n.q.getFullYear(),n.q.getMonth(),r,e+h,n.q.getMinutes()+l,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),o=n.q.getTime(),n.q.setTime(o+36e5),n.q.getHours()!=e&&n.q.setTime(o)}function Sye(n,e){var t,i,r,c,o;if(le(e,"Path-Like Graph Wrapping",1),n.b.c.length==0){ce(e);return}if(r=new PY(n),o=(r.i==null&&(r.i=jV(r,new HH)),K(r.i)*r.f),t=o/(r.i==null&&(r.i=jV(r,new HH)),K(r.i)),r.b>t){ce(e);return}switch(u(k(n,(nn(),W_)),337).g){case 2:c=new GH;break;case 0:c=new KH;break;default:c=new zH}if(i=c.Vf(n,r),!c.Wf())switch(u(k(n,cP),338).g){case 2:i=aLn(r,i);break;case 1:i=lxn(r,i)}Tje(n,r,i),ce(e)}function Pye(n,e){var t,i,r,c;if(dle(n.d,n.e),n.c.a.$b(),K(Y(k(e.j,(nn(),XS))))!=0||K(Y(k(e.j,XS)))!=0)for(t=D4,B(k(e.j,Ll))!==B((Rh(),Nl))&&H(e.j,(G(),v0),(qn(),!0)),c=u(k(e.j,xm),19).a,r=0;rr&&++l,W(o,(Ln(f+l,e.c.length),u(e.c[f+l],19))),h+=(Ln(f+l,e.c.length),u(e.c[f+l],19)).a-i,++t;t1&&(h>bu(f)*Gu(f)/2||o.b==0)&&(d=new zC(g),a=bu(f)/Gu(f),l=kL(d,e,new i2,t,i,r,a),ot(Lo(d.e),l),f=d,p.c[p.c.length]=d,h=0,g.c=F(Zn,rn,1,0,5,1)));return Yt(p,g),p}function Dye(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m;if(t.mh(e)&&(a=(p=e,p?u(i,49).xh(p):null),a))if(m=t.bh(e,n.a),v=e.t,v>1||v==-1)if(d=u(m,69),g=u(a,69),d.dc())g.$b();else for(o=!!ir(e),c=0,f=n.a?d.Kc():d.Zh();f.Ob();)l=u(f.Pb(),56),r=u(xd(n,l),56),r?(o?(h=g.Xc(r),h==-1?g.Xh(c,r):c!=h&&g.ji(c,r)):g.Xh(c,r),++c):n.b&&!o&&(g.Xh(c,l),++c);else m==null?a.Wb(null):(r=xd(n,m),r==null?n.b&&!ir(e)&&a.Wb(m):a.Wb(r))}function $ye(n,e){var t,i,r,c,o,f,h,l;for(t=new $dn,r=new re(ue(xr(e).a.Kc(),new Mn));Se(r);)if(i=u(ve(r),17),!Xi(i)&&(f=i.c.i,RJ(f,oS))){if(l=nZ(n,f,oS,sS),l==-1)continue;t.b=j.Math.max(t.b,l),!t.a&&(t.a=new X),W(t.a,f)}for(o=new re(ue(ni(e).a.Kc(),new Mn));Se(o);)if(c=u(ve(o),17),!Xi(c)&&(h=c.d.i,RJ(h,sS))){if(l=nZ(n,h,sS,oS),l==-1)continue;t.d=j.Math.max(t.d,l),!t.c&&(t.c=new X),W(t.c,h)}return t}function pRn(n){a4();var e,t,i,r;if(e=Gt(n),n1e6)throw T(new bj("power of ten too big"));if(n<=nt)return P2(L7(fp[1],e),e);for(i=L7(fp[1],nt),r=i,t=eu(n-nt),e=Gt(n%nt);fc(t,nt)>0;)r=Fw(r,i),t=vl(t,nt);for(r=Fw(r,L7(fp[1],e)),r=P2(r,nt),t=eu(n-nt);fc(t,nt)>0;)r=P2(r,nt),t=vl(t,nt);return r=P2(r,e),r}function Fye(n,e){var t,i,r,c,o,f,h,l,a;for(le(e,"Hierarchical port dummy size processing",1),h=new X,a=new X,i=K(Y(k(n,(nn(),Dg)))),t=i*2,c=new E(n.b);c.al&&i>l)a=f,l=K(e.p[f.p])+K(e.d[f.p])+f.o.b+f.d.a;else{r=!1,t.n&&sa(t,"bk node placement breaks on "+f+" which should have been after "+a);break}if(!r)break}return t.n&&sa(t,e+" is feasible: "+r),r}function Rye(n,e,t,i){var r,c,o,f,h,l,a;for(f=-1,a=new E(n);a.a=C&&n.e[h.p]>v*n.b||O>=t*C)&&(g.c[g.c.length]=f,f=new X,Vi(o,c),c.a.$b(),l-=a,p=j.Math.max(p,l*n.b+m),l+=O,$=O,O=0,a=0,m=0);return new Pi(p,g)}function qye(n){var e,t,i,r,c,o,f,h,l,a,d,g,p;for(t=(l=new Mh(n.c.b).a.vc().Kc(),new L0(l));t.a.Ob();)e=(f=u(t.a.Pb(),42),u(f.dd(),149)),r=e.a,r==null&&(r=""),i=wue(n.c,r),!i&&r.length==0&&(i=gge(n)),i&&!db(i.c,e,!1)&&Ke(i.c,e);for(o=_e(n.a,0);o.b!=o.d.c;)c=u(Re(o),478),a=j$(n.c,c.a),p=j$(n.c,c.b),a&&p&&Ke(a.c,new Pi(p,c.c));for(_s(n.a),g=_e(n.b,0);g.b!=g.d.c;)d=u(Re(g),478),e=bue(n.c,d.a),h=j$(n.c,d.b),e&&h&&rre(e,h,d.c);_s(n.b)}function Gye(n,e,t){var i,r,c,o,f,h,l,a,d,g,p;c=new M9(n),o=new NFn,r=($8(o.g),$8(o.j),Eu(o.b),$8(o.d),$8(o.i),Eu(o.k),Eu(o.c),Eu(o.e),p=kLn(o,c,null),fNn(o,c),p),e&&(l=new M9(e),f=nje(l),JJ(r,A(M(xfn,1),rn,527,0,[f]))),g=!1,d=!1,t&&(l=new M9(t),kA in l.a&&(g=Dh(l,kA).ge().a),Dqn in l.a&&(d=Dh(l,Dqn).ge().a)),a=e8n(IIn(new zp,g),d),N5e(new Qgn,r,a),kA in c.a&&Ro(c,kA,null),(g||d)&&(h=new r2,dRn(a,h,g,d),Ro(c,kA,h)),i=new omn(o),Owe(new kz(r),i)}function zye(n,e,t){var i,r,c,o,f,h,l,a,d;for(o=new HFn,l=A(M(be,1),Le,25,15,[0]),r=-1,c=0,i=0,h=0;h0){if(r<0&&a.a&&(r=h,c=l[0],i=0),r>=0){if(f=a.b,h==r&&(f-=i++,f==0))return 0;if(!k_n(e,l,a,f,o)){h=r-1,l[0]=c;continue}}else if(r=-1,!k_n(e,l,a,0,o))return 0}else{if(r=-1,Di(a.c,0)==32){if(d=l[0],KPn(e,l),l[0]>d)continue}else if(T1e(e,a.c,l[0])){l[0]+=a.c.length;continue}return 0}return TCe(o,t)?l[0]:0}function I6(n){var e,t,i,r,c,o,f,h;if(!n.f){if(h=new YH,f=new YH,e=b9,o=e.a.zc(n,e),o==null){for(c=new ie(Mr(n));c.e!=c.i.gc();)r=u(oe(c),26),Dt(h,I6(r));e.a.Bc(n)!=null,e.a.gc()==0}for(i=(!n.s&&(n.s=new V(su,n,21,17)),new ie(n.s));i.e!=i.i.gc();)t=u(oe(i),170),I(t,99)&&me(f,u(t,18));lb(f),n.r=new $En(n,(u(D(R((ol(),Nn).o),6),18),f.i),f.g),Dt(h,n.r),lb(h),n.f=new Ew((u(D(R(Nn.o),5),18),h.i),h.g),Iu(n).b&=-3}return n.f}function Uye(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v;for(o=n.o,i=F(be,Le,25,o,15,1),r=F(be,Le,25,o,15,1),t=n.p,e=F(be,Le,25,t,15,1),c=F(be,Le,25,t,15,1),l=0;l=0&&!zw(n,a,d);)--d;r[a]=d}for(p=0;p=0&&!zw(n,f,v);)--f;c[v]=f}for(h=0;he[g]&&gi[h]&&wM(n,h,g,!1,!0)}function EZ(n){var e,t,i,r,c,o,f,h;t=on(sn(k(n,(Go(),VUn)))),c=n.a.c.d,f=n.a.d.d,t?(o=If(ki(new fn(f.a,f.b),c),.5),h=If(Qr(n.e),.5),e=ki(ot(new fn(c.a,c.b),o),h),Zz(n.d,e)):(r=K(Y(k(n.a,iWn))),i=n.d,c.a>=f.a?c.b>=f.b?(i.a=f.a+(c.a-f.a)/2+r,i.b=f.b+(c.b-f.b)/2-r-n.e.b):(i.a=f.a+(c.a-f.a)/2+r,i.b=c.b+(f.b-c.b)/2+r):c.b>=f.b?(i.a=c.a+(f.a-c.a)/2+r,i.b=f.b+(c.b-f.b)/2+r):(i.a=c.a+(f.a-c.a)/2+r,i.b=c.b+(f.b-c.b)/2-r-n.e.b))}function jc(n,e){var t,i,r,c,o,f,h;if(n==null)return null;if(c=n.length,c==0)return"";for(h=F(Ls,Bf,25,c,15,1),RX(0,c,n.length),RX(0,c,h.length),RCn(n,0,c,h,0),t=null,f=e,r=0,o=0;r0?Yu(t.a,0,c-1):""):n.substr(0,c-1):t?t.a:n}function kRn(n){wd(n,new Ia(ld(od(hd(fd(new Zl,La),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new han))),Z(n,La,vN,cn(Trn)),Z(n,La,mN,cn(IR)),Z(n,La,ep,cn(FUn)),Z(n,La,u0,cn(Crn)),Z(n,La,onn,cn(BUn)),Z(n,La,fnn,cn(NUn)),Z(n,La,snn,cn(RUn)),Z(n,La,hnn,cn(LUn)),Z(n,La,pnn,cn(xUn)),Z(n,La,vnn,cn(PR)),Z(n,La,mnn,cn(Ern)),Z(n,La,knn,cn(nS))}function CZ(n,e,t,i){var r,c,o,f,h,l,a,d,g;if(c=new qh(n),ea(c,(Qn(),Tc)),H(c,(nn(),Lt),(Ti(),Ac)),r=0,e){for(o=new wc,H(o,(G(),rt),e),H(c,rt,e.i),ui(o,(J(),Gn)),Hr(o,c),g=xf(e.e),l=g,a=0,d=l.length;a0)if(t-=i.length-e,t>=0){for(r.a+="0.";t>Ga.length;t-=Ga.length)YEn(r,Ga);Fjn(r,Ga,Gt(t)),De(r,i.substr(e))}else t=e-t,De(r,Yu(i,e,Gt(t))),r.a+=".",De(r,r8(i,Gt(t)));else{for(De(r,i.substr(e));t<-Ga.length;t+=Ga.length)YEn(r,Ga);Fjn(r,Ga,Gt(-t))}return r.a}function TZ(n,e,t,i){var r,c,o,f,h,l,a,d,g;return h=ki(new fn(t.a,t.b),n),l=h.a*e.b-h.b*e.a,a=e.a*i.b-e.b*i.a,d=(h.a*i.b-h.b*i.a)/a,g=l/a,a==0?l==0?(r=ot(new fn(t.a,t.b),If(new fn(i.a,i.b),.5)),c=al(n,r),o=al(ot(new fn(n.a,n.b),e),r),f=j.Math.sqrt(i.a*i.a+i.b*i.b)*.5,c=0&&d<=1&&g>=0&&g<=1?ot(new fn(n.a,n.b),If(new fn(e.a,e.b),d)):null}function Xye(n,e,t){var i,r,c,o,f;if(i=u(k(n,(nn(),$_)),21),t.a>e.a&&(i.Hc((vb(),dy))?n.c.a+=(t.a-e.a)/2:i.Hc(by)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((vb(),gy))?n.c.b+=(t.b-e.b)/2:i.Hc(wy)&&(n.c.b+=t.b-e.b)),u(k(n,(G(),Mc)),21).Hc((or(),$s))&&(t.a>e.a||t.b>e.b))for(f=new E(n.a);f.ae.a&&(i.Hc((vb(),dy))?n.c.a+=(t.a-e.a)/2:i.Hc(by)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((vb(),gy))?n.c.b+=(t.b-e.b)/2:i.Hc(wy)&&(n.c.b+=t.b-e.b)),u(k(n,(G(),Mc)),21).Hc((or(),$s))&&(t.a>e.a||t.b>e.b))for(o=new E(n.a);o.ae&&(r=0,c+=a.b+t,d.c[d.c.length]=a,a=new oX(c,t),i=new lF(0,a.f,a,t),XC(a,i),r=0),i.b.c.length==0||h.f>=i.o&&h.f<=i.f||i.a*.5<=h.f&&i.a*1.5>=h.f?yQ(i,h):(o=new lF(i.s+i.r+t,a.f,a,t),XC(a,o),yQ(o,h)),r=h.i+h.g;return d.c[d.c.length]=a,d}function ig(n){var e,t,i,r,c,o,f,h;if(!n.a){if(n.o=null,h=new Smn(n),e=new J2n,t=b9,f=t.a.zc(n,t),f==null){for(o=new ie(Mr(n));o.e!=o.i.gc();)c=u(oe(o),26),Dt(h,ig(c));t.a.Bc(n)!=null,t.a.gc()==0}for(r=(!n.s&&(n.s=new V(su,n,21,17)),new ie(n.s));r.e!=r.i.gc();)i=u(oe(r),170),I(i,322)&&me(e,u(i,34));lb(e),n.k=new DEn(n,(u(D(R((ol(),Nn).o),7),18),e.i),e.g),Dt(h,n.k),lb(h),n.a=new Ew((u(D(R(Nn.o),4),18),h.i),h.g),Iu(n).b&=-2}return n.a}function Yye(n,e,t,i,r,c,o){var f,h,l,a,d,g;return d=!1,h=SNn(t.q,e.f+e.b-t.q.f),g=r-(t.q.e+h-o),g=(Ln(c,n.c.length),u(n.c[c],200)).e,a=(f=O6(i,g,!1),f.a),a>e.b&&!l)?!1:((l||a<=e.b)&&(l&&a>e.b?(t.d=a,B8(t,Dxn(t,a))):(JFn(t.q,h),t.c=!0),B8(i,r-(t.s+t.r)),k7(i,t.q.e+t.q.d,e.f),XC(e,i),n.c.length>c&&(T7((Ln(c,n.c.length),u(n.c[c],200)),i),(Ln(c,n.c.length),u(n.c[c],200)).a.c.length==0&&h1(n,c)),d=!0),d)}function MZ(n,e,t,i){var r,c,o,f,h,l,a;if(a=Kc(n.e.Tg(),e),r=0,c=u(n.g,119),h=null,er(),u(e,66).Oj()){for(f=0;fn.o.a&&(a=(h-n.o.a)/2,f.b=j.Math.max(f.b,a),f.c=j.Math.max(f.c,a))}}function nje(n){var e,t,i,r,c,o,f,h;for(c=new ZMn,Bre(c,(L2(),MZn)),i=(r=Z$(n,F(tn,q,2,0,6,1)),new $v(new Ku(new iO(n,r).b)));i.b0?n.i:0)>e&&h>0&&(c=0,o+=h+n.i,r=j.Math.max(r,g),i+=h+n.i,h=0,g=0,t&&(++d,W(n.n,new lC(n.s,o,n.i))),f=0),g+=l.g+(f>0?n.i:0),h=j.Math.max(h,l.f),t&&iJ(u(un(n.n,d),211),l),c+=l.g+(f>0?n.i:0),++f;return r=j.Math.max(r,g),i+=h,t&&(n.r=r,n.d=i,sJ(n.j)),new ys(n.s,n.t,r,i)}function gc(n,e,t,i,r){Zf();var c,o,f,h,l,a,d,g,p;if(MW(n,"src"),MW(t,"dest"),g=Du(n),h=Du(t),VU((g.i&4)!=0,"srcType is not an array"),VU((h.i&4)!=0,"destType is not an array"),d=g.c,o=h.c,VU(d.i&1?d==o:(o.i&1)==0,"Array types don't match"),p=n.length,l=t.length,e<0||i<0||r<0||e+r>p||i+r>l)throw T(new Kq);if(!(d.i&1)&&g!=h)if(a=pa(n),c=pa(t),B(n)===B(t)&&ei;)Mt(c,f,a[--e]);else for(f=i+r;i0&&aY(n,e,t,i,r,!0)}function oL(){oL=N,Ezn=A(M(be,1),Le,25,15,[Bi,1162261467,L6,1220703125,362797056,1977326743,L6,387420489,$M,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,L6,1291467969,1544804416,1838265625,60466176]),Czn=A(M(be,1),Le,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function eje(n){var e,t,i,r,c,o,f,h;for(r=new E(n.b);r.a=n.b.length?(c[r++]=o.b[i++],c[r++]=o.b[i++]):i>=o.b.length?(c[r++]=n.b[t++],c[r++]=n.b[t++]):o.b[i]0?n.i:0)),++e;for(d2e(n.n,h),n.d=t,n.r=i,n.g=0,n.f=0,n.e=0,n.o=Ft,n.p=Ft,c=new E(n.b);c.a0&&(r=(!n.n&&(n.n=new V(Br,n,1,7)),u(D(n.n,0),137)).a,!r||De(De((e.a+=' "',e),r),'"'))),t=(!n.b&&(n.b=new Fn(he,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new Fn(he,n,5,8)),n.c.i<=1))),t?e.a+=" [":e.a+=" ",De(e,Lz(new YI,new ie(n.b))),t&&(e.a+="]"),e.a+=TN,t&&(e.a+="["),De(e,Lz(new YI,new ie(n.c))),t&&(e.a+="]"),e.a)}function fL(n,e){var t,i,r,c,o,f,h;if(n.a){if(f=n.a.ne(),h=null,f!=null?e.a+=""+f:(o=n.a.Dj(),o!=null&&(c=Pf(o,tu(91)),c!=-1?(h=o.substr(c),e.a+=""+Yu(o==null?iu:(_n(o),o),0,c)):e.a+=""+o)),n.d&&n.d.i!=0){for(r=!0,e.a+="<",i=new ie(n.d);i.e!=i.i.gc();)t=u(oe(i),87),r?r=!1:e.a+=Ji,fL(t,e);e.a+=">"}h!=null&&(e.a+=""+h)}else n.e?(f=n.e.zb,f!=null&&(e.a+=""+f)):(e.a+="?",n.b?(e.a+=" super ",fL(n.b,e)):n.f&&(e.a+=" extends ",fL(n.f,e)))}function rje(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn;for(_=n.c,U=e.c,t=Fr(_.a,n,0),i=Fr(U.a,e,0),O=u(Ud(n,(ur(),Au)).Kc().Pb(),11),wn=u(Ud(n,xc).Kc().Pb(),11),x=u(Ud(e,Au).Kc().Pb(),11),zn=u(Ud(e,xc).Kc().Pb(),11),S=xf(O.e),en=xf(wn.g),$=xf(x.e),ln=xf(zn.g),pb(n,i,U),o=$,a=0,v=o.length;aa?new aa((No(),tw),t,e,l-a):l>0&&a>0&&(new aa((No(),tw),e,t,0),new aa(tw,t,e,0))),o)}function ERn(n,e){var t,i,r,c,o,f;for(o=new Ea(new ta(n.f.b).a);o.b;){if(c=Nd(o),r=u(c.cd(),594),e==1){if(r.gf()!=(sr(),Yh)&&r.gf()!=Jh)continue}else if(r.gf()!=(sr(),Zs)&&r.gf()!=Ao)continue;switch(i=u(u(c.dd(),46).b,81),f=u(u(c.dd(),46).a,189),t=f.c,r.gf().g){case 2:i.g.c=n.e.a,i.g.b=j.Math.max(1,i.g.b+t);break;case 1:i.g.c=i.g.c+t,i.g.b=j.Math.max(1,i.g.b-t);break;case 4:i.g.d=n.e.b,i.g.a=j.Math.max(1,i.g.a+t);break;case 3:i.g.d=i.g.d+t,i.g.a=j.Math.max(1,i.g.a-t)}}}function cje(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m;for(f=F(be,Le,25,e.b.c.length,15,1),l=F(zR,z,267,e.b.c.length,0,1),h=F(vh,E1,10,e.b.c.length,0,1),d=n.a,g=0,p=d.length;g0&&h[i]&&(v=Mw(n.b,h[i],r)),m=j.Math.max(m,r.c.c.b+v);for(c=new E(a.e);c.a1)throw T(new Hn(Mk));h||(c=uh(e,i.Kc().Pb()),o.Fc(c))}return NV(n,iY(n,e,t),o)}function oje(n,e){var t,i,r,c;for(z0e(e.b.j),Rt(Xc(new $n(null,new xn(e.d,16)),new iwn),new rwn),c=new E(e.d);c.an.o.b||(t=zr(n,Vn),f=e.d+e.a+(t.gc()-1)*o,f>n.o.b)))}function aL(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v;if(o=n.e,h=e.e,o==0)return e;if(h==0)return n;if(c=n.d,f=e.d,c+f==2)return t=ci(n.a[0],fr),i=ci(e.a[0],fr),o==h?(a=qi(t,i),v=ge(a),p=ge(J0(a,32)),p==0?new l1(o,v):new Pw(o,2,A(M(be,1),Le,25,15,[v,p]))):m7(o<0?vl(i,t):vl(t,i));if(o==h)g=o,d=c>=f?S$(n.a,c,e.a,f):S$(e.a,f,n.a,c);else{if(r=c!=f?c>f?1:-1:YV(n.a,e.a,c),r==0)return jl(),W4;r==1?(g=o,d=M$(n.a,c,e.a,f)):(g=h,d=M$(e.a,f,n.a,c))}return l=new Pw(g,d.length,d),K5(l),l}function dL(n,e,t,i,r,c,o){var f,h,l,a,d,g,p;return d=on(sn(k(e,(nn(),ksn)))),g=null,c==(ur(),Au)&&i.c.i==t?g=i.c:c==xc&&i.d.i==t&&(g=i.d),l=o,!l||!d||g?(a=(J(),Xr),g?a=g.j:Cw(u(k(t,Lt),98))&&(a=c==Au?Gn:Vn),h=aje(n,e,t,c,a,i),f=C$((Gi(t),i)),c==Au?(Hi(f,u(un(h.j,0),11)),Ei(f,r)):(Hi(f,r),Ei(f,u(un(h.j,0),11))),l=new HDn(i,f,h,u(k(h,(G(),rt)),11),c,!g)):(W(l.e,i),p=j.Math.max(K(Y(k(l.d,S1))),K(Y(k(i,S1)))),H(l.d,S1,p)),Tn(n.a,i,new EE(l.d,e,c)),l}function jM(n,e){var t,i,r,c,o,f,h,l,a,d;if(a=null,n.d&&(a=u(vc(n.d,e),138)),!a){if(c=n.a.Mh(),d=c.i,!n.d||Xv(n.d)!=d){for(h=new we,n.d&&Z5(h,n.d),l=h.f.c+h.g.c,f=l;f0?(p=(v-1)*t,f&&(p+=i),a&&(p+=i),p=n.b[r+1])r+=2;else if(t0)for(i=new du(u(ct(n.a,c),21)),Pn(),bi(i,new Iq(e)),r=new Ii(c.b,0);r.b_)?(h=2,o=nt):h==0?(h=1,o=en):(h=0,o=en)):(p=en>=o||o-en0?1:pd(isNaN(i),isNaN(0)))>=0^(mo(Gf),(j.Math.abs(f)<=Gf||f==0||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:pd(isNaN(f),isNaN(0)))>=0)?j.Math.max(f,i):(mo(Gf),(j.Math.abs(i)<=Gf||i==0||isNaN(i)&&isNaN(0)?0:i<0?-1:i>0?1:pd(isNaN(i),isNaN(0)))>0?j.Math.sqrt(f*f+i*i):-j.Math.sqrt(f*f+i*i))}function Oa(n,e){var t,i,r,c,o,f;if(e){if(!n.a&&(n.a=new lj),n.e==2){hj(n.a,e);return}if(e.e==1){for(r=0;r=Yi?dr(t,kQ(i)):w3(t,i&Ut),o=new e$(10,null,0),Zfe(n.a,o,f-1)):(t=(o.bm().length+c,new zv),dr(t,o.bm())),e.e==0?(i=e._l(),i>=Yi?dr(t,kQ(i)):w3(t,i&Ut)):dr(t,e.bm()),u(o,521).b=t.a}}function ORn(n){var e,t,i,r,c;return n.g!=null?n.g:n.a<32?(n.g=NCe(eu(n.f),Gt(n.e)),n.g):(r=jL((!n.c&&(n.c=h7(n.f)),n.c),0),n.e==0?r:(e=(!n.c&&(n.c=h7(n.f)),n.c).e<0?2:1,t=r.length,i=-n.e+t-e,c=new V1,c.a+=""+r,n.e>0&&i>=-6?i>=0?P8(c,t-Gt(n.e),"."):(c.a=Yu(c.a,0,e-1)+"0."+r8(c.a,e-1),P8(c,e+1,Hs(Ga,0,-Gt(i)-1))):(t-e>=1&&(P8(c,e,"."),++t),P8(c,t,"E"),i>0&&P8(c,++t,"+"),P8(c,++t,""+O5(eu(i)))),n.g=c.a,n.g))}function Tje(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C;if(!t.dc()){for(f=0,g=0,i=t.Kc(),v=u(i.Pb(),19).a;f1&&(h=l.mg(h,n.a,f));return h.c.length==1?u(un(h,h.c.length-1),220):h.c.length==2?bje((Ln(0,h.c.length),u(h.c[0],220)),(Ln(1,h.c.length),u(h.c[1],220)),o,c):null}function DRn(n){var e,t,i,r,c,o;for(Yc(n.a,new can),t=new E(n.a);t.a=j.Math.abs(i.b)?(i.b=0,c.d+c.a>o.d&&c.do.c&&c.c0){if(e=new az(n.i,n.g),t=n.i,c=t<100?null:new Q1(t),n.ij())for(i=0;i0){for(f=n.g,l=n.i,U5(n),c=l<100?null:new Q1(l),i=0;i>13|(n.m&15)<<9,r=n.m>>4&8191,c=n.m>>17|(n.h&255)<<5,o=(n.h&1048320)>>8,f=e.l&8191,h=e.l>>13|(e.m&15)<<9,l=e.m>>4&8191,a=e.m>>17|(e.h&255)<<5,d=(e.h&1048320)>>8,ln=t*f,wn=i*f,zn=r*f,Wn=c*f,se=o*f,h!=0&&(wn+=t*h,zn+=i*h,Wn+=r*h,se+=c*h),l!=0&&(zn+=t*l,Wn+=i*l,se+=r*l),a!=0&&(Wn+=t*a,se+=i*a),d!=0&&(se+=t*d),p=ln&Lu,v=(wn&511)<<13,g=p+v,C=ln>>22,S=wn>>9,$=(zn&262143)<<4,O=(Wn&31)<<17,m=C+S+$+O,_=zn>>18,U=Wn>>5,en=(se&4095)<<8,x=_+U+en,m+=g>>22,g&=Lu,x+=m>>22,m&=Lu,x&=Wh,Bc(g,m,x)}function $Rn(n){var e,t,i,r,c,o,f;if(f=u(un(n.j,0),11),f.g.c.length!=0&&f.e.c.length!=0)throw T(new Dr("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(f.g.c.length!=0){for(c=Ft,t=new E(f.g);t.a4)if(n.wj(e)){if(n.rk()){if(r=u(e,49),i=r.Ug(),h=i==n.e&&(n.Dk()?r.Og(r.Vg(),n.zk())==n.Ak():-1-r.Vg()==n.aj()),n.Ek()&&!h&&!i&&r.Zg()){for(c=0;c0&&(l=n.n.a/c);break;case 2:case 4:r=n.i.o.b,r>0&&(l=n.n.b/r)}H(n,(G(),k0),l)}if(h=n.o,o=n.a,i)o.a=i.a,o.b=i.b,n.d=!0;else if(e!=jf&&e!=ql&&f!=Xr)switch(f.g){case 1:o.a=h.a/2;break;case 2:o.a=h.a,o.b=h.b/2;break;case 3:o.a=h.a/2,o.b=h.b;break;case 4:o.b=h.b/2}else o.a=h.a/2,o.b=h.b/2}function $6(n){var e,t,i,r,c,o,f,h,l,a;if(n.ej())if(a=n.Vi(),h=n.fj(),a>0)if(e=new CV(n.Gi()),t=a,c=t<100?null:new Q1(t),h8(n,t,e.g),r=t==1?n.Zi(4,D(e,0),null,0,h):n.Zi(6,e,null,-1,h),n.bj()){for(i=new ie(e);i.e!=i.i.gc();)c=n.dj(oe(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r);else h8(n,n.Vi(),n.Wi()),n.$i(n.Zi(6,(Pn(),cr),null,-1,h));else if(n.bj())if(a=n.Vi(),a>0){for(f=n.Wi(),l=a,h8(n,a,f),c=l<100?null:new Q1(l),i=0;in.d[o.p]&&(t+=jX(n.b,c)*u(h.b,19).a,ll(n.a,Q(c)));for(;!Hv(n.a);)ZX(n.b,u(y2(n.a),19).a)}return t}function Nje(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C;for(d=new mr(u(hn(n,(nM(),qfn)),8)),d.a=j.Math.max(d.a-t.b-t.c,0),d.b=j.Math.max(d.b-t.d-t.a,0),r=Y(hn(n,_fn)),(r==null||(_n(r),r<=0))&&(r=1.3),f=new X,v=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));v.e!=v.i.gc();)p=u(oe(v),33),o=new hjn(p),f.c[f.c.length]=o;switch(g=u(hn(n,qK),311),g.g){case 3:C=cye(f,e,d.a,d.b,(l=i,_n(r),l));break;case 1:C=Oye(f,e,d.a,d.b,(a=i,_n(r),a));break;default:C=_je(f,e,d.a,d.b,(h=i,_n(r),h))}c=new zC(C),m=kL(c,e,t,d.a,d.b,i,(_n(r),r)),t0(n,m.a,m.b,!1,!0)}function Bje(n,e){var t,i,r,c;t=e.b,c=new du(t.j),r=0,i=t.j,i.c=F(Zn,rn,1,0,5,1),Td(u(ma(n.b,(J(),Kn),(Kd(),g0)),15),t),r=j7(c,r,new Fbn,i),Td(u(ma(n.b,Kn,Fl),15),t),r=j7(c,r,new $bn,i),Td(u(ma(n.b,Kn,w0),15),t),Td(u(ma(n.b,Vn,g0),15),t),Td(u(ma(n.b,Vn,Fl),15),t),r=j7(c,r,new xbn,i),Td(u(ma(n.b,Vn,w0),15),t),Td(u(ma(n.b,ae,g0),15),t),r=j7(c,r,new Lbn,i),Td(u(ma(n.b,ae,Fl),15),t),r=j7(c,r,new Nbn,i),Td(u(ma(n.b,ae,w0),15),t),Td(u(ma(n.b,Gn,g0),15),t),r=j7(c,r,new Xbn,i),Td(u(ma(n.b,Gn,Fl),15),t),Td(u(ma(n.b,Gn,w0),15),t)}function Rje(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m;for(le(e,"Layer size calculation",1),a=Ft,l=Vt,r=!1,f=new E(n.b);f.a.5?S-=o*2*(v-.5):v<.5&&(S+=c*2*(.5-v)),r=f.d.b,SC.a-m-a&&(S=C.a-m-a),f.n.a=e+S}}function _je(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C;for(f=F(ji,pr,25,n.c.length,15,1),g=new GE(new P2n),lJ(g,n),l=0,m=new X;g.b.c.length!=0;)if(o=u(g.b.c.length==0?null:un(g.b,0),157),l>1&&bu(o)*Gu(o)/2>f[0]){for(c=0;cf[c];)++c;v=new ch(m,0,c+1),d=new zC(v),a=bu(o)/Gu(o),h=kL(d,e,new i2,t,i,r,a),ot(Lo(d.e),h),M3(f4(g,d)),p=new ch(m,c+1,m.c.length),lJ(g,p),m.c=F(Zn,rn,1,0,5,1),l=0,fCn(f,f.length,0)}else C=g.b.c.length==0?null:un(g.b,0),C!=null&&J$(g,0),l>0&&(f[l]=f[l-1]),f[l]+=bu(o)*Gu(o),++l,m.c[m.c.length]=o;return m}function Kje(n){var e,t,i,r,c;if(i=u(k(n,(nn(),qc)),163),i==(Ss(),xl)){for(t=new re(ue(xr(n).a.Kc(),new Mn));Se(t);)if(e=u(ve(t),17),!kSn(e))throw T(new pw(SN+E7(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(i==Ub){for(c=new re(ue(ni(n).a.Kc(),new Mn));Se(c);)if(r=u(ve(c),17),!kSn(r))throw T(new pw(SN+E7(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function Hje(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v;for(le(e,"Label dummy removal",1),i=K(Y(k(n,(nn(),jp)))),r=K(Y(k(n,nw))),l=u(k(n,ls),103),h=new E(n.b);h.a0&&_xn(n,f,d);for(r=new E(d);r.a>19&&(e=z3(e),h=!h),o=K9e(e),c=!1,r=!1,i=!1,n.h==tk&&n.m==0&&n.l==0)if(r=!0,c=!0,o==-1)n=eyn((I3(),win)),i=!0,h=!h;else return f=SY(n,o),h&&sF(f),t&&(Il=Bc(0,0,0)),f;else n.h>>19&&(c=!0,n=z3(n),i=!0,h=!h);return o!=-1?Swe(n,o,h,c,t):mJ(n,e)<0?(t&&(c?Il=z3(n):Il=Bc(n.l,n.m,n.h)),Bc(0,0,0)):Dke(i?n:Bc(n.l,n.m,n.h),e,h,c,r,t)}function EM(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v;if(n.e&&n.c.ce.f||e.g>n.f)){for(t=0,i=0,o=n.w.a.ec().Kc();o.Ob();)r=u(o.Pb(),11),mF(Gr(A(M(ai,1),q,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&++t;for(f=n.r.a.ec().Kc();f.Ob();)r=u(f.Pb(),11),mF(Gr(A(M(ai,1),q,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&--t;for(h=e.w.a.ec().Kc();h.Ob();)r=u(h.Pb(),11),mF(Gr(A(M(ai,1),q,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=e.r.a.ec().Kc();c.Ob();)r=u(c.Pb(),11),mF(Gr(A(M(ai,1),q,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;t=0)return r=Jge(n,e.substr(1,o-1)),a=e.substr(o+1,h-(o+1)),UCe(n,a,r)}else{if(t=-1,kin==null&&(kin=new RegExp("\\d")),kin.test(String.fromCharCode(f))&&(t=MU(e,tu(46),h-1),t>=0)){i=u(T$(n,aIn(n,e.substr(1,t-1)),!1),58),l=0;try{l=us(e.substr(t+1),Bi,nt)}catch(g){throw g=jt(g),I(g,127)?(c=g,T(new xC(c))):T(g)}if(l=0)return t;switch(Sd(jr(n,t))){case 2:{if(An("",w1(n,t.Hj()).ne())){if(h=E8(jr(n,t)),f=v3(jr(n,t)),a=xY(n,e,h,f),a)return a;for(r=oZ(n,e),o=0,d=r.gc();o1)throw T(new Hn(Mk));for(a=Kc(n.e.Tg(),e),i=u(n.g,119),o=0;o1,l=new uf(g.b);Kr(l.a)||Kr(l.b);)h=u(Kr(l.a)?y(l.a):y(l.b),17),d=h.c==g?h.d:h.c,j.Math.abs(Gr(A(M(ai,1),q,8,0,[d.i.n,d.n,d.a])).b-o.b)>1&&z8e(n,h,o,c,g)}}function nEe(n){var e,t,i,r,c,o;if(r=new Ii(n.e,0),i=new Ii(n.a,0),n.d)for(t=0;toB;){for(c=e,o=0;j.Math.abs(e-c)0),r.a.Xb(r.c=--r.b),pye(n,n.b-o,c,i,r),ne(r.b0),i.a.Xb(i.c=--i.b)}if(!n.d)for(t=0;t0?(n.f[a.p]=p/(a.e.c.length+a.g.c.length),n.c=j.Math.min(n.c,n.f[a.p]),n.b=j.Math.max(n.b,n.f[a.p])):f&&(n.f[a.p]=p)}}function tEe(n){n.b=null,n.bb=null,n.fb=null,n.qb=null,n.a=null,n.c=null,n.d=null,n.e=null,n.f=null,n.n=null,n.M=null,n.L=null,n.Q=null,n.R=null,n.K=null,n.db=null,n.eb=null,n.g=null,n.i=null,n.j=null,n.k=null,n.gb=null,n.o=null,n.p=null,n.q=null,n.r=null,n.$=null,n.ib=null,n.S=null,n.T=null,n.t=null,n.s=null,n.u=null,n.v=null,n.w=null,n.B=null,n.A=null,n.C=null,n.D=null,n.F=null,n.G=null,n.H=null,n.I=null,n.J=null,n.P=null,n.Z=null,n.U=null,n.V=null,n.W=null,n.X=null,n.Y=null,n._=null,n.ab=null,n.cb=null,n.hb=null,n.nb=null,n.lb=null,n.mb=null,n.ob=null,n.pb=null,n.jb=null,n.kb=null,n.N=!1,n.O=!1}function iEe(n,e,t){var i,r,c,o;for(le(t,"Graph transformation ("+n.a+")",1),o=Dd(e.a),c=new E(e.b);c.a0&&(n.a=h+(p-1)*c,e.c.b+=n.a,e.f.b+=n.a)),v.a.gc()!=0&&(g=new FD(1,c),p=FZ(g,e,v,m,e.f.b+h-e.c.b),p>0&&(e.f.b+=h+(p-1)*c))}function y4(n,e){var t,i,r,c;c=n.F,e==null?(n.F=null,X3(n,null)):(n.F=(_n(e),e),i=Pf(e,tu(60)),i!=-1?(r=e.substr(0,i),Pf(e,tu(46))==-1&&!An(r,X2)&&!An(r,cm)&&!An(r,EA)&&!An(r,um)&&!An(r,sm)&&!An(r,om)&&!An(r,fm)&&!An(r,hm)&&(r=yGn),t=aE(e,tu(62)),t!=-1&&(r+=""+e.substr(t+1)),X3(n,r)):(r=e,Pf(e,tu(46))==-1&&(i=Pf(e,tu(91)),i!=-1&&(r=e.substr(0,i)),!An(r,X2)&&!An(r,cm)&&!An(r,EA)&&!An(r,um)&&!An(r,sm)&&!An(r,om)&&!An(r,fm)&&!An(r,hm)?(r=yGn,i!=-1&&(r+=""+e.substr(i))):r=e),X3(n,r),r==e&&(n.F=n.D))),n.Db&4&&!(n.Db&1)&&et(n,new wi(n,1,5,c,e))}function cEe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O;if(m=e.b.c.length,!(m<3)){for(p=F(be,Le,25,m,15,1),d=0,a=new E(e.b);a.ao)&&ri(n.b,u(C.b,17));++f}c=o}}}function OZ(n,e){var t;if(e==null||An(e,iu)||e.length==0&&n.k!=(y1(),Cp))return null;switch(n.k.g){case 1:return DT(e,B4)?(qn(),z4):DT(e,EB)?(qn(),qa):null;case 2:try{return Q(us(e,Bi,nt))}catch(i){if(i=jt(i),I(i,127))return null;throw T(i)}case 4:try{return kb(e)}catch(i){if(i=jt(i),I(i,127))return null;throw T(i)}case 3:return e;case 5:return mDn(n),TLn(n,e);case 6:return mDn(n),w9e(n,n.a,e);case 7:try{return t=Ame(n),t.Jf(e),t}catch(i){if(i=jt(i),I(i,32))return null;throw T(i)}default:throw T(new Dr("Invalid type set for this layout option."))}}function uEe(n){X5();var e,t,i,r,c,o,f;for(f=new Qmn,t=new E(n);t.a=f.b.c)&&(f.b=e),(!f.c||e.c<=f.c.c)&&(f.d=f.c,f.c=e),(!f.e||e.d>=f.e.d)&&(f.e=e),(!f.f||e.d<=f.f.d)&&(f.f=e);return i=new LT((G3(),b0)),O8(n,AWn,new Ku(A(M(Rk,1),rn,369,0,[i]))),o=new LT(Hb),O8(n,MWn,new Ku(A(M(Rk,1),rn,369,0,[o]))),r=new LT(Kb),O8(n,TWn,new Ku(A(M(Rk,1),rn,369,0,[r]))),c=new LT(kg),O8(n,CWn,new Ku(A(M(Rk,1),rn,369,0,[c]))),Rx(i.c,b0),Rx(r.c,Kb),Rx(c.c,kg),Rx(o.c,Hb),f.a.c=F(Zn,rn,1,0,5,1),Yt(f.a,i.c),Yt(f.a,va(r.c)),Yt(f.a,c.c),Yt(f.a,va(o.c)),f}function DZ(n){var e;switch(n.d){case 1:{if(n.hj())return n.o!=-2;break}case 2:{if(n.hj())return n.o==-2;break}case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(e=n.gj(),n.p){case 0:return e!=null&&on(sn(e))!=b5(n.k,0);case 1:return e!=null&&u(e,217).a!=ge(n.k)<<24>>24;case 2:return e!=null&&u(e,172).a!=(ge(n.k)&Ut);case 6:return e!=null&&b5(u(e,162).a,n.k);case 5:return e!=null&&u(e,19).a!=ge(n.k);case 7:return e!=null&&u(e,184).a!=ge(n.k)<<16>>16;case 3:return e!=null&&K(Y(e))!=n.j;case 4:return e!=null&&u(e,155).a!=n.j;default:return e==null?n.n!=null:!tt(e,n.n)}}function X7(n,e,t){var i,r,c,o;return n.Fk()&&n.Ek()&&(o=MD(n,u(t,56)),B(o)!==B(t))?(n.Oi(e),n.Ui(e,dPn(n,e,o)),n.rk()&&(c=(r=u(t,49),n.Dk()?n.Bk()?r.ih(n.b,ir(u(On(Vc(n.b),n.aj()),18)).n,u(On(Vc(n.b),n.aj()).Yj(),26).Bj(),null):r.ih(n.b,yt(r.Tg(),ir(u(On(Vc(n.b),n.aj()),18))),null,null):r.ih(n.b,-1-n.aj(),null,null)),!u(o,49).eh()&&(c=(i=u(o,49),n.Dk()?n.Bk()?i.gh(n.b,ir(u(On(Vc(n.b),n.aj()),18)).n,u(On(Vc(n.b),n.aj()).Yj(),26).Bj(),c):i.gh(n.b,yt(i.Tg(),ir(u(On(Vc(n.b),n.aj()),18))),null,c):i.gh(n.b,-1-n.aj(),null,c))),c&&c.Fi()),Hu(n.b)&&n.$i(n.Zi(9,t,o,e,!1)),o):t}function NRn(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;for(a=K(Y(k(n,(nn(),C0)))),i=K(Y(k(n,Osn))),g=new jI,H(g,C0,a+i),l=e,S=l.d,m=l.c.i,$=l.d.i,C=pz(m.c),O=pz($.c),r=new X,d=C;d<=O;d++)f=new qh(n),ea(f,(Qn(),gi)),H(f,(G(),rt),l),H(f,Lt,(Ti(),Ac)),H(f,rP,g),p=u(un(n.b,d),29),d==C?pb(f,p.a.c.length-t,p):yr(f,p),x=K(Y(k(l,S1))),x<0&&(x=0,H(l,S1,x)),f.o.b=x,v=j.Math.floor(x/2),o=new wc,ui(o,(J(),Gn)),Hr(o,f),o.n.b=v,h=new wc,ui(h,Vn),Hr(h,f),h.n.b=v,Ei(l,o),c=new Pd,Sr(c,l),H(c,Tr,null),Hi(c,h),Ei(c,S),f4e(f,l,c),r.c[r.c.length]=c,l=c;return r}function gL(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O;for(h=u(k1(n,(J(),Gn)).Kc().Pb(),11).e,p=u(k1(n,Vn).Kc().Pb(),11).g,f=h.c.length,O=tf(u(un(n.j,0),11));f-- >0;){for(m=(Ln(0,h.c.length),u(h.c[0],17)),r=(Ln(0,p.c.length),u(p.c[0],17)),$=r.d.e,c=Fr($,r,0),dae(m,r.d,c),Hi(r,null),Ei(r,null),v=m.a,e&&Ke(v,new mr(O)),i=_e(r.a,0);i.b!=i.d.c;)t=u(Re(i),8),Ke(v,new mr(t));for(S=m.b,g=new E(r.b);g.a0&&(o=j.Math.max(o,lOn(n.C.b+i.d.b,r))),a=i,d=r,g=c;n.C&&n.C.c>0&&(p=g+n.C.c,l&&(p+=a.d.c),o=j.Math.max(o,(Yo(),mo(bf),j.Math.abs(d-1)<=bf||d==1||isNaN(d)&&isNaN(1)?0:p/(1-d)))),t.n.b=0,t.a.a=o}function RRn(n,e){var t,i,r,c,o,f,h,l,a,d,g,p;if(t=u(br(n.b,e),124),h=u(u(ct(n.r,e),21),84),h.dc()){t.n.d=0,t.n.a=0;return}for(l=n.u.Hc((Tu(),n1)),o=0,n.A.Hc((Vu(),id))&&vBn(n,e),f=h.Kc(),a=null,g=0,d=0;f.Ob();)i=u(f.Pb(),111),c=K(Y(i.b.We((dE(),JA)))),r=i.b.rf().b,a?(p=d+a.d.a+n.w+i.d.d,o=j.Math.max(o,(Yo(),mo(bf),j.Math.abs(g-c)<=bf||g==c||isNaN(g)&&isNaN(c)?0:p/(c-g)))):n.C&&n.C.d>0&&(o=j.Math.max(o,lOn(n.C.d+i.d.d,c))),a=i,g=c,d=r;n.C&&n.C.a>0&&(p=d+n.C.a,l&&(p+=a.d.a),o=j.Math.max(o,(Yo(),mo(bf),j.Math.abs(g-1)<=bf||g==1||isNaN(g)&&isNaN(1)?0:p/(1-g)))),t.n.d=0,t.a.b=o}function _Rn(n,e,t){var i,r,c,o,f,h;for(this.g=n,f=e.d.length,h=t.d.length,this.d=F(vh,E1,10,f+h,0,1),o=0;o0?q$(this,this.f/this.a):Zo(e.g,e.d[0]).a!=null&&Zo(t.g,t.d[0]).a!=null?q$(this,(K(Zo(e.g,e.d[0]).a)+K(Zo(t.g,t.d[0]).a))/2):Zo(e.g,e.d[0]).a!=null?q$(this,Zo(e.g,e.d[0]).a):Zo(t.g,t.d[0]).a!=null&&q$(this,Zo(t.g,t.d[0]).a)}function sEe(n,e){var t,i,r,c,o,f,h,l,a,d;for(n.a=new XCn(Lbe(e9)),i=new E(e.a);i.a=1&&(C-o>0&&d>=0?(h.n.a+=m,h.n.b+=c*o):C-o<0&&a>=0&&(h.n.a+=m*C,h.n.b+=c));n.o.a=e.a,n.o.b=e.b,H(n,(nn(),Xa),(Vu(),i=u(xo(o9),9),new ks(i,u(bo(i,i.length),9),0)))}function lEe(n,e,t,i,r,c){var o;if(!(e==null||!$F(e,a1n,d1n)))throw T(new Hn("invalid scheme: "+e));if(!n&&!(t!=null&&Pf(t,tu(35))==-1&&t.length>0&&(Te(0,t.length),t.charCodeAt(0)!=47)))throw T(new Hn("invalid opaquePart: "+t));if(n&&!(e!=null&&_9(tI,e.toLowerCase()))&&!(t==null||!$F(t,a9,d9)))throw T(new Hn(oGn+t));if(n&&e!=null&&_9(tI,e.toLowerCase())&&!rve(t))throw T(new Hn(oGn+t));if(!o2e(i))throw T(new Hn("invalid device: "+i));if(!ege(r))throw o=r==null?"invalid segments: null":"invalid segment: "+Jwe(r),T(new Hn(o));if(!(c==null||Pf(c,tu(35))==-1))throw T(new Hn("invalid query: "+c))}function aEe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S;for(le(e,"Calculate Graph Size",1),e.n&&n&&go(e,po(n),(Xu(),ws)),f=D4,h=D4,c=ttn,o=ttn,d=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));d.e!=d.i.gc();)l=u(oe(d),33),v=l.i,m=l.j,S=l.g,i=l.f,r=u(hn(l,(Xe(),my)),142),f=j.Math.min(f,v-r.b),h=j.Math.min(h,m-r.d),c=j.Math.max(c,v+S+r.c),o=j.Math.max(o,m+i+r.a);for(p=u(hn(n,(Xe(),nd)),116),g=new fn(f-p.b,h-p.d),a=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));a.e!=a.i.gc();)l=u(oe(a),33),Zc(l,l.i-g.a),nu(l,l.j-g.b);C=c-f+(p.b+p.c),t=o-h+(p.d+p.a),Rd(n,C),Bd(n,t),e.n&&n&&go(e,po(n),(Xu(),ws))}function qRn(n){var e,t,i,r,c,o,f,h,l,a;for(i=new X,o=new E(n.e.a);o.a0){NT(n,t,0),t.a+=String.fromCharCode(i),r=J2e(e,c),NT(n,t,r),c+=r-1;continue}i==39?c+11)for(m=F(be,Le,25,n.b.b.c.length,15,1),d=0,l=new E(n.b.b);l.a=f&&r<=h)f<=r&&c<=h?(t[a++]=r,t[a++]=c,i+=2):f<=r?(t[a++]=r,t[a++]=h,n.b[i]=h+1,o+=2):c<=h?(t[a++]=f,t[a++]=c,i+=2):(t[a++]=f,t[a++]=h,n.b[i]=h+1);else if(hCl)&&f<10);mG(n.c,new Tan),GRn(n),ehe(n.c),fEe(n.f)}function gEe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C;if(on(sn(k(t,(nn(),Qb)))))for(f=new E(t.j);f.a=2){for(h=_e(t,0),o=u(Re(h),8),f=u(Re(h),8);f.a0&&u7(l,!0,(sr(),Ao)),f.k==(Qn(),Xt)&&pTn(l),it(n.f,f,e)}}function kEe(n,e,t){var i,r,c,o,f,h,l,a,d,g;switch(le(t,"Node promotion heuristic",1),n.g=e,MCe(n),n.q=u(k(e,(nn(),__)),260),a=u(k(n.g,psn),19).a,c=new h0n,n.q.g){case 2:case 1:k4(n,c);break;case 3:for(n.q=(Zw(),lP),k4(n,c),h=0,f=new E(n.a);f.an.j&&(n.q=ey,k4(n,c));break;case 4:for(n.q=(Zw(),lP),k4(n,c),l=0,r=new E(n.b);r.an.k&&(n.q=ty,k4(n,c));break;case 6:g=Gt(j.Math.ceil(n.f.length*a/100)),k4(n,new M5n(g));break;case 5:d=Gt(j.Math.ceil(n.d*a/100)),k4(n,new A5n(d));break;default:k4(n,c)}d7e(n,e),ce(t)}function URn(n,e,t){var i,r,c,o;this.j=n,this.e=LJ(n),this.o=this.j.e,this.i=!!this.o,this.p=this.i?u(un(t,Gi(this.o).p),214):null,r=u(k(n,(G(),Mc)),21),this.g=r.Hc((or(),$s)),this.b=new X,this.d=new b$n(this.e),o=u(k(this.j,vp),230),this.q=Ybe(e,o,this.e),this.k=new wMn(this),c=cf(A(M(VWn,1),rn,225,0,[this,this.d,this.k,this.q])),e==(_d(),ry)&&!on(sn(k(n,(nn(),Wb))))?(i=new BJ(this.e),c.c[c.c.length]=i,this.c=new dX(i,o,u(this.q,402))):e==ry&&on(sn(k(n,(nn(),Wb))))?(i=new BJ(this.e),c.c[c.c.length]=i,this.c=new JIn(i,o,u(this.q,402))):this.c=new V7n(e,this),W(c,this.c),ARn(c,this.e),this.s=tTe(this.k)}function yEe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;for(d=u(fE((o=_e(new X1(e).a.d,0),new e2(o))),86),v=d?u(k(d,(cc(),pK)),86):null,r=1;d&&v;){for(h=0,x=0,t=d,i=v,f=0;f=n.i?(++n.i,W(n.a,Q(1)),W(n.b,a)):(i=n.c[e.p][1],Es(n.a,l,Q(u(un(n.a,l),19).a+1-i)),Es(n.b,l,K(Y(un(n.b,l)))+a-i*n.e)),(n.q==(Zw(),ey)&&(u(un(n.a,l),19).a>n.j||u(un(n.a,l-1),19).a>n.j)||n.q==ty&&(K(Y(un(n.b,l)))>n.k||K(Y(un(n.b,l-1)))>n.k))&&(h=!1),o=new re(ue(xr(e).a.Kc(),new Mn));Se(o);)c=u(ve(o),17),f=c.c.i,n.f[f.p]==l&&(d=WRn(n,f),r=r+u(d.a,19).a,h=h&&on(sn(d.b)));return n.f[e.p]=l,r=r+n.c[e.p][0],new Pi(Q(r),(qn(),!!h))}function FZ(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C,S;for(d=new we,o=new X,wLn(n,t,n.d.fg(),o,d),wLn(n,i,n.d.gg(),o,d),n.b=.2*(m=rNn(qr(new $n(null,new xn(o,16)),new vgn)),C=rNn(qr(new $n(null,new xn(o,16)),new mgn)),j.Math.min(m,C)),c=0,f=0;f=2&&(S=MNn(o,!0,g),!n.e&&(n.e=new I6n(n)),Z2e(n.e,S,o,n.b)),uxn(o,g),NEe(o),p=-1,a=new E(o);a.af)}function EEe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m;for(t=u(k(n,(nn(),Lt)),98),o=n.f,c=n.d,f=o.a+c.b+c.c,h=0-c.d-n.c.b,a=o.b+c.d+c.a-n.c.b,l=new X,d=new X,r=new E(e);r.a0),u(a.a.Xb(a.c=--a.b),17));c!=i&&a.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,c=(ne(a.b>0),u(a.a.Xb(a.c=--a.b),17));a.b>0&&Uu(a)}}function JRn(n,e,t){var i,r,c,o,f,h,l,a,d;if(n.a!=e.Aj())throw T(new Hn(R4+e.ne()+h0));if(i=w1((gu(),xi),e).$k(),i)return i.Aj().Nh().Ih(i,t);if(o=w1(xi,e).al(),o){if(t==null)return null;if(f=u(t,15),f.dc())return"";for(d=new i1,c=f.Kc();c.Ob();)r=c.Pb(),dr(d,o.Aj().Nh().Ih(o,r)),d.a+=" ";return NO(d,d.a.length-1)}if(a=w1(xi,e).bl(),!a.dc()){for(l=a.Kc();l.Ob();)if(h=u(l.Pb(),148),h.wj(t))try{if(d=h.Aj().Nh().Ih(h,t),d!=null)return d}catch(g){if(g=jt(g),!I(g,102))throw T(g)}throw T(new Hn("Invalid value: '"+t+"' for datatype :"+e.ne()))}return u(e,834).Fj(),t==null?null:I(t,172)?""+u(t,172).a:Du(t)==HA?Tyn(l9[0],u(t,199)):Lr(t)}function PEe(n){var e,t,i,r,c,o,f,h,l,a;for(l=new Ct,f=new Ct,c=new E(n);c.a-1){for(r=_e(f,0);r.b!=r.d.c;)i=u(Re(r),128),i.v=o;for(;f.b!=0;)for(i=u(hx(f,0),128),t=new E(i.i);t.a0&&(t+=h.n.a+h.o.a/2,++d),v=new E(h.j);v.a0&&(t/=d),S=F(ji,pr,25,i.a.c.length,15,1),f=0,l=new E(i.a);l.a=f&&r<=h)f<=r&&c<=h?i+=2:f<=r?(n.b[i]=h+1,o+=2):c<=h?(t[a++]=r,t[a++]=f-1,i+=2):(t[a++]=r,t[a++]=f-1,n.b[i]=h+1,o+=2);else if(h0?r-=864e5:r+=864e5,h=new uU(qi(eu(e.q.getTime()),r))),a=new R0,l=n.a.length,c=0;c=97&&i<=122||i>=65&&i<=90){for(o=c+1;o=l)throw T(new Hn("Missing trailing '"));o+10&&t.c==0&&(!e&&(e=new X),e.c[e.c.length]=t);if(e)for(;e.c.length!=0;){if(t=u(h1(e,0),233),t.b&&t.b.c.length>0){for(c=(!t.b&&(t.b=new X),new E(t.b));c.aFr(n,t,0))return new Pi(r,t)}else if(K(Zo(r.g,r.d[0]).a)>K(Zo(t.g,t.d[0]).a))return new Pi(r,t)}for(f=(!t.e&&(t.e=new X),t.e).Kc();f.Ob();)o=u(f.Pb(),233),h=(!o.b&&(o.b=new X),o.b),tb(0,h.c.length),e5(h.c,0,t),o.c==h.c.length&&(e.c[e.c.length]=o)}return null}function t_n(n,e){var t,i,r,c,o,f,h,l,a;if(n==null)return iu;if(h=e.a.zc(n,e),h!=null)return"[...]";for(t=new ka(Ji,"[","]"),r=n,c=0,o=r.length;c=14&&a<=16))?e.a._b(i)?(t.a?De(t.a,t.b):t.a=new Ju(t.d),g5(t.a,"[...]")):(f=pa(i),l=new S5(e),xh(t,t_n(f,l))):I(i,177)?xh(t,M6e(u(i,177))):I(i,190)?xh(t,wve(u(i,190))):I(i,195)?xh(t,T5e(u(i,195))):I(i,2012)?xh(t,gve(u(i,2012))):I(i,48)?xh(t,T6e(u(i,48))):I(i,364)?xh(t,R6e(u(i,364))):I(i,832)?xh(t,C6e(u(i,832))):I(i,104)&&xh(t,E6e(u(i,104))):xh(t,i==null?iu:Lr(i));return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function i_n(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O;for(f=ng(e,!1,!1),S=I7(f),i&&(S=o7(S)),O=K(Y(hn(e,(a6(),IR)))),C=(ne(S.b!=0),u(S.a.a.c,8)),d=u(qo(S,1),8),S.b>2?(a=new X,Yt(a,new ch(S,1,S.b)),c=L_n(a,O+n.a),$=new xx(c),Sr($,e),t.c[t.c.length]=$):i?$=u(te(n.b,fh(e)),266):$=u(te(n.b,ml(e)),266),h=fh(e),i&&(h=ml(e)),o=z5e(C,h),l=O+n.a,o.a?(l+=j.Math.abs(C.b-d.b),m=new fn(d.a,(d.b+C.b)/2)):(l+=j.Math.abs(C.a-d.a),m=new fn((d.a+C.a)/2,d.b)),i?it(n.d,e,new cJ($,o,m,l)):it(n.c,e,new cJ($,o,m,l)),it(n.b,e,$),v=(!e.n&&(e.n=new V(Br,e,1,7)),e.n),p=new ie(v);p.e!=p.i.gc();)g=u(oe(p),137),r=K7(n,g,!0,0,0),t.c[t.c.length]=r}function NEe(n){var e,t,i,r,c,o,f,h,l,a;for(l=new X,f=new X,o=new E(n);o.a-1){for(c=new E(f);c.a0)&&(aq(h,j.Math.min(h.o,r.o-1)),ej(h,h.i-1),h.i==0&&(f.c[f.c.length]=h))}}function j4(n,e,t){var i,r,c,o,f,h,l;if(l=n.c,!e&&(e=p1n),n.c=e,n.Db&4&&!(n.Db&1)&&(h=new wi(n,1,2,l,n.c),t?t.Ei(h):t=h),l!=e){if(I(n.Cb,284))n.Db>>16==-10?t=u(n.Cb,284).nk(e,t):n.Db>>16==-15&&(!e&&(e=(Sn(),Cf)),!l&&(l=(Sn(),Cf)),n.Cb.nh()&&(h=new Lh(n.Cb,1,13,l,e,v1(Ou(u(n.Cb,59)),n),!1),t?t.Ei(h):t=h));else if(I(n.Cb,88))n.Db>>16==-23&&(I(e,88)||(e=(Sn(),so)),I(l,88)||(l=(Sn(),so)),n.Cb.nh()&&(h=new Lh(n.Cb,1,10,l,e,v1(bc(u(n.Cb,26)),n),!1),t?t.Ei(h):t=h));else if(I(n.Cb,444))for(f=u(n.Cb,836),o=(!f.b&&(f.b=new sj(new KI)),f.b),c=(i=new Ea(new ta(o.a).a),new oj(i));c.a.b;)r=u(Nd(c.a).cd(),87),t=j4(r,uM(r,f),t)}return t}function BEe(n,e){var t,i,r,c,o,f,h,l,a,d,g;for(o=on(sn(hn(n,(nn(),Qb)))),g=u(hn(n,Yb),21),h=!1,l=!1,d=new ie((!n.c&&(n.c=new V(Ru,n,9,9)),n.c));d.e!=d.i.gc()&&(!h||!l);){for(c=u(oe(d),118),f=0,r=ul(of(A(M(gf,1),rn,20,0,[(!c.d&&(c.d=new Fn(di,c,8,5)),c.d),(!c.e&&(c.e=new Fn(di,c,7,4)),c.e)])));Se(r)&&(i=u(ve(r),79),a=o&&Jd(i)&&on(sn(hn(i,Wa))),t=FRn((!i.b&&(i.b=new Fn(he,i,4,7)),i.b),c)?n==At(Pr(u(D((!i.c&&(i.c=new Fn(he,i,5,8)),i.c),0),82))):n==At(Pr(u(D((!i.b&&(i.b=new Fn(he,i,4,7)),i.b),0),82))),!((a||t)&&(++f,f>1))););(f>0||g.Hc((Tu(),n1))&&(!c.n&&(c.n=new V(Br,c,1,7)),c.n).i>0)&&(h=!0),f>1&&(l=!0)}h&&e.Fc((or(),$s)),l&&e.Fc((or(),Tm))}function r_n(n){var e,t,i,r,c,o,f,h,l,a,d,g;if(g=u(hn(n,(Xe(),Za)),21),g.dc())return null;if(f=0,o=0,g.Hc((Vu(),Ay))){for(a=u(hn(n,n9),98),i=2,t=2,r=2,c=2,e=At(n)?u(hn(At(n),A0),103):u(hn(n,A0),103),l=new ie((!n.c&&(n.c=new V(Ru,n,9,9)),n.c));l.e!=l.i.gc();)if(h=u(oe(l),118),d=u(hn(h,Hg),61),d==(J(),Xr)&&(d=mZ(h,e),gr(h,Hg,d)),a==(Ti(),Ac))switch(d.g){case 1:i=j.Math.max(i,h.i+h.g);break;case 2:t=j.Math.max(t,h.j+h.f);break;case 3:r=j.Math.max(r,h.i+h.g);break;case 4:c=j.Math.max(c,h.j+h.f)}else switch(d.g){case 1:i+=h.g+2;break;case 2:t+=h.f+2;break;case 3:r+=h.g+2;break;case 4:c+=h.f+2}f=j.Math.max(i,r),o=j.Math.max(t,c)}return t0(n,f,o,!0,!0)}function pL(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;for($=u(es(qC(gt(new $n(null,new xn(e.d,16)),new Q5n(t)),new J5n(t)),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[(hf(),hs)]))),15),d=nt,a=Bi,h=new E(e.b.j);h.a0,l?l&&(g=S.p,o?++g:--g,d=u(un(S.c.a,g),10),i=VOn(d),p=!(Kx(i,U,t[0])||ACn(i,U,t[0]))):p=!0),v=!1,_=e.D.i,_&&_.c&&f.e&&(a=o&&_.p>0||!o&&_.p<_.c.a.c.length-1,a?(g=_.p,o?--g:++g,d=u(un(_.c.a,g),10),i=VOn(d),v=!(Kx(i,t[0],ln)||ACn(i,t[0],ln))):v=!0),p&&v&&Ke(n.a,en),p||V5(n.a,A(M(ai,1),q,8,0,[m,C])),v||V5(n.a,A(M(ai,1),q,8,0,[x,O]))}function CM(n,e){var t,i,r,c,o,f,h,l;if(I(n.Ug(),160)?(CM(u(n.Ug(),160),e),e.a+=" > "):e.a+="Root ",t=n.Tg().zb,An(t.substr(0,3),"Elk")?De(e,t.substr(3)):e.a+=""+t,r=n.zg(),r){De((e.a+=" ",e),r);return}if(I(n,354)&&(l=u(n,137).a,l)){De((e.a+=" ",e),l);return}for(o=new ie(n.Ag());o.e!=o.i.gc();)if(c=u(oe(o),137),l=c.a,l){De((e.a+=" ",e),l);return}if(I(n,352)&&(i=u(n,79),!i.b&&(i.b=new Fn(he,i,4,7)),i.b.i!=0&&(!i.c&&(i.c=new Fn(he,i,5,8)),i.c.i!=0))){for(e.a+=" (",f=new b2((!i.b&&(i.b=new Fn(he,i,4,7)),i.b));f.e!=f.i.gc();)f.e>0&&(e.a+=Ji),CM(u(oe(f),160),e);for(e.a+=TN,h=new b2((!i.c&&(i.c=new Fn(he,i,5,8)),i.c));h.e!=h.i.gc();)h.e>0&&(e.a+=Ji),CM(u(oe(h),160),e);e.a+=")"}}function GEe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p;if(c=u(k(n,(G(),rt)),79),!!c){for(i=n.a,r=new mr(t),ot(r,F4e(n)),K3(n.d.i,n.c.i)?(g=n.c,d=Gr(A(M(ai,1),q,8,0,[g.n,g.a])),ki(d,t)):d=tf(n.c),Kt(i,d,i.a,i.a.a),p=tf(n.d),k(n,I_)!=null&&ot(p,u(k(n,I_),8)),Kt(i,p,i.c.b,i.c),fb(i,r),o=ng(c,!0,!0),JC(o,u(D((!c.b&&(c.b=new Fn(he,c,4,7)),c.b),0),82)),YC(o,u(D((!c.c&&(c.c=new Fn(he,c,5,8)),c.c),0),82)),z7(i,o),a=new E(n.b);a.a=0){for(h=null,f=new Ii(a.a,l+1);f.bo?1:pd(isNaN(0),isNaN(o)))<0&&(mo(Gf),(j.Math.abs(o-1)<=Gf||o==1||isNaN(o)&&isNaN(1)?0:o<1?-1:o>1?1:pd(isNaN(o),isNaN(1)))<0)&&(mo(Gf),(j.Math.abs(0-f)<=Gf||f==0||isNaN(0)&&isNaN(f)?0:0f?1:pd(isNaN(0),isNaN(f)))<0)&&(mo(Gf),(j.Math.abs(f-1)<=Gf||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:pd(isNaN(f),isNaN(1)))<0)),c)}function UEe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U;for(d=new NW(new Mq(n));d.b!=d.c.a.d;)for(a=fPn(d),f=u(a.d,56),e=u(a.e,56),o=f.Tg(),m=0,x=(o.i==null&&Lf(o),o.i).length;m=0&&m=l.c.c.length?a=pX((Qn(),ti),gi):a=pX((Qn(),gi),gi),a*=2,c=t.a.g,t.a.g=j.Math.max(c,c+(a-c)),o=t.b.g,t.b.g=j.Math.max(o,o+(a-o)),r=e}}function VEe(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_;for(_=TEn(n),a=new X,f=n.c.length,d=f-1,g=f+1;_.a.c!=0;){for(;t.b!=0;)O=(ne(t.b!=0),u(Ts(t,t.a.a),112)),R5(_.a,O)!=null,O.g=d--,kZ(O,e,t,i);for(;e.b!=0;)x=(ne(e.b!=0),u(Ts(e,e.a.a),112)),R5(_.a,x)!=null,x.g=g++,kZ(x,e,t,i);for(l=Bi,S=(o=new T5(new j5(new P9(_.a).a).b),new I9(o));G9(S.a.a);){if(C=(c=pE(S.a),u(c.cd(),112)),!i&&C.b>0&&C.a<=0){a.c=F(Zn,rn,1,0,5,1),a.c[a.c.length]=C;break}m=C.i-C.d,m>=l&&(m>l&&(a.c=F(Zn,rn,1,0,5,1),l=m),a.c[a.c.length]=C)}a.c.length!=0&&(h=u(un(a,_T(r,a.c.length)),112),R5(_.a,h)!=null,h.g=g++,kZ(h,e,t,i),a.c=F(Zn,rn,1,0,5,1))}for($=n.c.length+1,v=new E(n);v.a0&&(g.d+=a.n.d,g.d+=a.d),g.a>0&&(g.a+=a.n.a,g.a+=a.d),g.b>0&&(g.b+=a.n.b,g.b+=a.d),g.c>0&&(g.c+=a.n.c,g.c+=a.d),g}function u_n(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v;for(g=t.d,d=t.c,c=new fn(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),o=c.b,l=new E(n.a);l.a0&&(n.c[e.c.p][e.p].d+=Fu(n.i,24)*uk*.07000000029802322-.03500000014901161,n.c[e.c.p][e.p].a=n.c[e.c.p][e.p].d/n.c[e.c.p][e.p].b)}}function iCe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C;for(v=new E(n);v.ai.d,i.d=j.Math.max(i.d,e),f&&t&&(i.d=j.Math.max(i.d,i.a),i.a=i.d+r);break;case 3:t=e>i.a,i.a=j.Math.max(i.a,e),f&&t&&(i.a=j.Math.max(i.a,i.d),i.d=i.a+r);break;case 2:t=e>i.c,i.c=j.Math.max(i.c,e),f&&t&&(i.c=j.Math.max(i.b,i.c),i.b=i.c+r);break;case 4:t=e>i.b,i.b=j.Math.max(i.b,e),f&&t&&(i.b=j.Math.max(i.b,i.c),i.c=i.b+r)}}}function sCe(n){var e,t,i,r,c,o,f,h,l,a,d;for(l=new E(n);l.a0||a.j==Gn&&a.e.c.length-a.g.c.length<0)){e=!1;break}for(r=new E(a.g);r.a=l&&_>=C&&(g+=v.n.b+m.n.b+m.a.b-x,++f));if(t)for(o=new E($.e);o.a=l&&_>=C&&(g+=v.n.b+m.n.b+m.a.b-x,++f))}f>0&&(U+=g/f,++p)}p>0?(e.a=r*U/p,e.g=p):(e.a=0,e.g=0)}function fCe(n,e){var t,i,r,c,o,f,h,l,a,d,g;for(r=new E(n.a.b);r.aVt||e.o==Ja&&a0&&Zc(S,x*U),_>0&&nu(S,_*en);for(n6(n.b,new gan),e=new X,f=new Ea(new ta(n.c).a);f.b;)o=Nd(f),i=u(o.cd(),79),t=u(o.dd(),395).a,r=ng(i,!1,!1),d=sxn(fh(i),I7(r),t),z7(d,r),O=mxn(i),O&&Fr(e,O,0)==-1&&(e.c[e.c.length]=O,TTn(O,(ne(d.b!=0),u(d.a.a.c,8)),t));for(C=new Ea(new ta(n.d).a);C.b;)m=Nd(C),i=u(m.cd(),79),t=u(m.dd(),395).a,r=ng(i,!1,!1),d=sxn(ml(i),o7(I7(r)),t),d=o7(d),z7(d,r),O=kxn(i),O&&Fr(e,O,0)==-1&&(e.c[e.c.length]=O,TTn(O,(ne(d.b!=0),u(d.c.b.c,8)),t))}function f_n(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en;if(t.c.length!=0){for(p=new X,g=new E(t);g.a1)for(p=new SZ(v,O,i),$i(O,new tkn(n,p)),o.c[o.c.length]=p,d=O.a.ec().Kc();d.Ob();)a=u(d.Pb(),46),Qc(c,a.b);if(f.a.gc()>1)for(p=new SZ(v,f,i),$i(f,new ikn(n,p)),o.c[o.c.length]=p,d=f.a.ec().Kc();d.Ob();)a=u(d.Pb(),46),Qc(c,a.b)}}function l_n(n){wd(n,new Ia(vj(ld(od(hd(fd(new Zl,zf),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new Fgn),zf))),Z(n,zf,oA,cn(DYn)),Z(n,zf,Db,cn($Yn)),Z(n,zf,hg,cn(SYn)),Z(n,zf,ip,cn(PYn)),Z(n,zf,tp,cn(IYn)),Z(n,zf,F4,cn(AYn)),Z(n,zf,G6,cn(Ron)),Z(n,zf,x4,cn(OYn)),Z(n,zf,dB,cn(MK)),Z(n,zf,aB,cn(AK)),Z(n,zf,otn,cn(_on)),Z(n,zf,rtn,cn(TP)),Z(n,zf,ctn,cn(MP)),Z(n,zf,utn,cn(oy)),Z(n,zf,stn,cn(Kon))}function NZ(n){var e;if(this.r=Uhe(new Nln,new Bln),this.b=new f6(u(pe(Zi),290)),this.p=new f6(u(pe(Zi),290)),this.i=new f6(u(pe(yUn),290)),this.e=n,this.o=new mr(n.rf()),this.D=n.Df()||on(sn(n.We((Xe(),vy)))),this.A=u(n.We((Xe(),Za)),21),this.B=u(n.We(_l),21),this.q=u(n.We(n9),98),this.u=u(n.We(rw),21),!Zve(this.u))throw T(new pw("Invalid port label placement: "+this.u));if(this.v=on(sn(n.We(mhn))),this.j=u(n.We(_g),21),!E9e(this.j))throw T(new pw("Invalid node label placement: "+this.j));this.n=u(w6(n,uhn),116),this.k=K(Y(w6(n,KP))),this.d=K(Y(w6(n,Ehn))),this.w=K(Y(w6(n,Shn))),this.s=K(Y(w6(n,Chn))),this.t=K(Y(w6(n,Thn))),this.C=u(w6(n,Mhn),142),this.c=2*this.d,e=!this.B.Hc((xu(),Sy)),this.f=new l6(0,e,0),this.g=new l6(1,e,0),zI(this.f,(_o(),Fc),this.g)}function vCe(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn;for(O=0,v=0,p=0,g=1,$=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));$.e!=$.i.gc();)C=u(oe($),33),g+=Fh(new re(ue(Gh(C).a.Kc(),new Mn))),ln=C.g,v=j.Math.max(v,ln),d=C.f,p=j.Math.max(p,d),O+=ln*d;for(m=(!n.a&&(n.a=new V(Pt,n,10,11)),n.a).i,o=O+2*i*i*g*m,c=j.Math.sqrt(o),h=j.Math.max(c*t,v),f=j.Math.max(c/t,p),S=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));S.e!=S.i.gc();)C=u(oe(S),33),wn=r.b+(Fu(e,26)*N6+Fu(e,27)*B6)*(h-C.g),zn=r.b+(Fu(e,26)*N6+Fu(e,27)*B6)*(f-C.f),Zc(C,wn),nu(C,zn);for(en=h+(r.b+r.c),U=f+(r.d+r.a),_=new ie((!n.a&&(n.a=new V(Pt,n,10,11)),n.a));_.e!=_.i.gc();)for(x=u(oe(_),33),a=new re(ue(Gh(x).a.Kc(),new Mn));Se(a);)l=u(ve(a),79),j6(l)||mTe(l,e,en,U);en+=r.b+r.c,U+=r.d+r.a,t0(n,en,U,!1,!0)}function MM(n){var e,t,i,r,c,o,f,h,l,a,d;if(n==null)throw T(new Sf(iu));if(l=n,c=n.length,h=!1,c>0&&(e=(Te(0,n.length),n.charCodeAt(0)),(e==45||e==43)&&(n=n.substr(1),--c,h=e==45)),c==0)throw T(new Sf(c0+l+'"'));for(;n.length>0&&(Te(0,n.length),n.charCodeAt(0)==48);)n=n.substr(1),--c;if(c>(ZBn(),yzn)[10])throw T(new Sf(c0+l+'"'));for(r=0;r0&&(d=-parseInt(n.substr(0,i),10),n=n.substr(i),c-=i,t=!1);c>=o;){if(i=parseInt(n.substr(0,o),10),n=n.substr(o),c-=o,t)t=!1;else{if(fc(d,f)<0)throw T(new Sf(c0+l+'"'));d=Ni(d,a)}d=vl(d,i)}if(fc(d,0)>0)throw T(new Sf(c0+l+'"'));if(!h&&(d=P3(d),fc(d,0)<0))throw T(new Sf(c0+l+'"'));return d}function BZ(n,e){HEn();var t,i,r,c,o,f,h;if(this.a=new Sz(this),this.b=n,this.c=e,this.f=PD(jr((gu(),xi),e)),this.f.dc())if((f=EJ(xi,n))==e)for(this.e=!0,this.d=new X,this.f=new H2n,this.f.Fc(Ka),u(jM(G8(xi,ts(n)),""),26)==n&&this.f.Fc(I5(xi,ts(n))),r=Jx(xi,n).Kc();r.Ob();)switch(i=u(r.Pb(),170),Sd(jr(xi,i))){case 4:{this.d.Fc(i);break}case 5:{this.f.Gc(PD(jr(xi,i)));break}}else if(er(),u(e,66).Oj())for(this.e=!0,this.f=null,this.d=new X,o=0,h=(n.i==null&&Lf(n),n.i).length;o=0&&o0&&(u(br(n.b,e),124).a.b=t)}function mCe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S;for(le(e,"Comment pre-processing",1),t=0,h=new E(n.a);h.a0&&(h=(Te(0,e.length),e.charCodeAt(0)),h!=64)){if(h==37&&(d=e.lastIndexOf("%"),l=!1,d!=0&&(d==g-1||(l=(Te(d+1,e.length),e.charCodeAt(d+1)==46))))){if(o=e.substr(1,d-1),O=An("%",o)?null:_Z(o),i=0,l)try{i=us(e.substr(d+2),Bi,nt)}catch(x){throw x=jt(x),I(x,127)?(f=x,T(new xC(f))):T(x)}for(C=kV(n.Wg());C.Ob();)if(v=hT(C),I(v,510)&&(r=u(v,590),$=r.d,(O==null?$==null:An(O,$))&&i--==0))return r;return null}if(a=e.lastIndexOf("."),p=a==-1?e:e.substr(0,a),t=0,a!=-1)try{t=us(e.substr(a+1),Bi,nt)}catch(x){if(x=jt(x),I(x,127))p=e;else throw T(x)}for(p=An("%",p)?null:_Z(p),m=kV(n.Wg());m.Ob();)if(v=hT(m),I(v,191)&&(c=u(v,191),S=c.ne(),(p==null?S==null:An(p,S))&&t--==0))return c;return null}return LRn(n,e)}function jCe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn;for(U=new X,v=new E(n.b);v.a=e.length)return{done:!0};var r=e[i++];return{value:[r,t.get(r)],done:!1}}}},A7e()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(e){return this.obj[":"+e]},n.prototype.set=function(e,t){this.obj[":"+e]=t},n.prototype[eN]=function(e){delete this.obj[":"+e]},n.prototype.keys=function(){var e=[];for(var t in this.obj)t.charCodeAt(0)==58&&e.push(t.substring(1));return e}),n}function CCe(n){vZ();var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C;if(n==null)return null;if(d=n.length*8,d==0)return"";for(f=d%24,p=d/24|0,g=f!=0?p+1:p,c=null,c=F(Ls,Bf,25,g*4,15,1),l=0,a=0,e=0,t=0,i=0,o=0,r=0,h=0;h>24,l=(e&3)<<24>>24,v=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,m=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,C=i&-128?(i>>6^252)<<24>>24:i>>6<<24>>24,c[o++]=R1[v],c[o++]=R1[m|l<<4],c[o++]=R1[a<<2|C],c[o++]=R1[i&63];return f==8?(e=n[r],l=(e&3)<<24>>24,v=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,c[o++]=R1[v],c[o++]=R1[l<<4],c[o++]=61,c[o++]=61):f==16&&(e=n[r],t=n[r+1],a=(t&15)<<24>>24,l=(e&3)<<24>>24,v=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,m=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,c[o++]=R1[v],c[o++]=R1[m|l<<4],c[o++]=R1[a<<2],c[o++]=61),Hs(c,0,c.length)}function TCe(n,e){var t,i,r,c,o,f,h;if(n.e==0&&n.p>0&&(n.p=-(n.p-1)),n.p>Bi&&mX(e,n.p-Tl),o=e.q.getDate(),A8(e,1),n.k>=0&&sle(e,n.k),n.c>=0?A8(e,n.c):n.k>=0?(h=new _V(e.q.getFullYear()-Tl,e.q.getMonth(),35),i=35-h.q.getDate(),A8(e,j.Math.min(i,o))):A8(e,o),n.f<0&&(n.f=e.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),vce(e,n.f==24&&n.g?0:n.f),n.j>=0&&vde(e,n.j),n.n>=0&&Lde(e,n.n),n.i>=0&&Kkn(e,qi(Ni(M7(eu(e.q.getTime()),j1),j1),n.i)),n.a&&(r=new Tj,mX(r,r.q.getFullYear()-Tl-80),cO(eu(e.q.getTime()),eu(r.q.getTime()))&&mX(e,r.q.getFullYear()-Tl+100)),n.d>=0){if(n.c==-1)t=(7+n.d-e.q.getDay())%7,t>3&&(t-=7),f=e.q.getMonth(),A8(e,e.q.getDate()+t),e.q.getMonth()!=f&&A8(e,e.q.getDate()+(t>0?-7:7));else if(e.q.getDay()!=n.d)return!1}return n.o>Bi&&(c=e.q.getTimezoneOffset(),Kkn(e,qi(eu(e.q.getTime()),(n.o-c)*60*j1))),!0}function b_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;if(r=k(e,(G(),rt)),!!I(r,239)){for(v=u(r,33),m=e.e,g=new mr(e.c),c=e.d,g.a+=c.b,g.b+=c.d,x=u(hn(v,(nn(),iP)),174),au(x,(xu(),GP))&&(p=u(hn(v,Esn),116),Yee(p,c.a),ute(p,c.d),Zee(p,c.b),ste(p,c.c)),t=new X,a=new E(e.a);a.a0&&W(n.p,a),W(n.o,a);e-=i,p=h+e,l+=e*n.e,Es(n.a,f,Q(p)),Es(n.b,f,l),n.j=j.Math.max(n.j,p),n.k=j.Math.max(n.k,l),n.d+=e,e+=m}}function J(){J=N;var n;Xr=new t8(K6,0),Kn=new t8(NM,1),Vn=new t8(lN,2),ae=new t8(aN,3),Gn=new t8(dN,4),Ef=(Pn(),new Wp((n=u(xo(Zi),9),new ks(n,u(bo(n,n.length),9),0)))),Do=b1(pt(Kn,A(M(Zi,1),hc,61,0,[]))),Fs=b1(pt(Vn,A(M(Zi,1),hc,61,0,[]))),ds=b1(pt(ae,A(M(Zi,1),hc,61,0,[]))),to=b1(pt(Gn,A(M(Zi,1),hc,61,0,[]))),cu=b1(pt(Kn,A(M(Zi,1),hc,61,0,[ae]))),Gc=b1(pt(Vn,A(M(Zi,1),hc,61,0,[Gn]))),$o=b1(pt(Kn,A(M(Zi,1),hc,61,0,[Gn]))),Su=b1(pt(Kn,A(M(Zi,1),hc,61,0,[Vn]))),bs=b1(pt(ae,A(M(Zi,1),hc,61,0,[Gn]))),xs=b1(pt(Vn,A(M(Zi,1),hc,61,0,[ae]))),Pu=b1(pt(Kn,A(M(Zi,1),hc,61,0,[Vn,Gn]))),ru=b1(pt(Vn,A(M(Zi,1),hc,61,0,[ae,Gn]))),uu=b1(pt(Kn,A(M(Zi,1),hc,61,0,[ae,Gn]))),ku=b1(pt(Kn,A(M(Zi,1),hc,61,0,[Vn,ae]))),Sc=b1(pt(Kn,A(M(Zi,1),hc,61,0,[Vn,ae,Gn])))}function v_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O;if(e.b!=0){for(p=new Ct,f=null,v=null,i=Gt(j.Math.floor(j.Math.log(e.b)*j.Math.LOG10E)+1),h=0,O=_e(e,0);O.b!=O.d.c;)for(S=u(Re(O),86),B(v)!==B(k(S,(cc(),Um)))&&(v=Ce(k(S,Um)),h=0),v!=null?f=v+RMn(h++,i):f=RMn(h++,i),H(S,Um,f),C=(r=_e(new X1(S).a.d,0),new e2(r));yj(C.a);)m=u(Re(C.a),188).c,Kt(p,m,p.c.b,p.c),H(m,Um,f);for(g=new we,o=0;o=h){ne(S.b>0),S.a.Xb(S.c=--S.b);break}else m.a>l&&(r?(Yt(r.b,m.b),r.a=j.Math.max(r.a,m.a),Uu(S)):(W(m.b,d),m.c=j.Math.min(m.c,l),m.a=j.Math.max(m.a,h),r=m));r||(r=new i9n,r.c=l,r.a=h,X0(S,r),W(r.b,d))}for(f=e.b,a=0,C=new E(i);C.af?1:0:(n.b&&(n.b._b(c)&&(r=u(n.b.xc(c),19).a),n.b._b(h)&&(f=u(n.b.xc(h),19).a)),rf?1:0)):e.e.c.length!=0&&t.g.c.length!=0?1:-1}function PCe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en;for(le(e,oHn,1),m=new X,U=new X,l=new E(n.b);l.a0&&(O-=p),PZ(o,O),a=0,g=new E(o.a);g.a0),f.a.Xb(f.c=--f.b)),h=.4*i*a,!c&&f.be.d.c){if(p=n.c[e.a.d],C=n.c[d.a.d],p==C)continue;jo(lo(ho(ao(fo(new Ns,1),100),p),C))}}}}}function _Z(n){bL();var e,t,i,r,c,o,f,h;if(n==null)return null;if(r=Pf(n,tu(37)),r<0)return n;for(h=new Ju(n.substr(0,r)),e=F(yu,wg,25,4,15,1),f=0,i=0,o=n.length;rr+2&&uF((Te(r+1,n.length),n.charCodeAt(r+1)),h1n,l1n)&&uF((Te(r+2,n.length),n.charCodeAt(r+2)),h1n,l1n))if(t=tfe((Te(r+1,n.length),n.charCodeAt(r+1)),(Te(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?(t&192)==128?e[f++]=t<<24>>24:i=0:t>=128&&((t&224)==192?(e[f++]=t<<24>>24,i=2):(t&240)==224?(e[f++]=t<<24>>24,i=3):(t&248)==240&&(e[f++]=t<<24>>24,i=4)),i>0){if(f==i){switch(f){case 2:{sl(h,((e[0]&31)<<6|e[1]&63)&Ut);break}case 3:{sl(h,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&Ut);break}}f=0,i=0}}else{for(c=0;c0){if(o+i>n.length)return!1;f=tM(n.substr(0,o+i),e)}else f=tM(n,e);switch(c){case 71:return f=Qw(n,o,A(M(tn,1),q,2,6,[nKn,eKn]),e),r.e=f,!0;case 77:return g7e(n,e,r,f,o);case 76:return p7e(n,e,r,f,o);case 69:return o6e(n,e,o,r);case 99:return f6e(n,e,o,r);case 97:return f=Qw(n,o,A(M(tn,1),q,2,6,["AM","PM"]),e),r.b=f,!0;case 121:return v7e(n,e,o,f,t,r);case 100:return f<=0?!1:(r.c=f,!0);case 83:return f<0?!1:j2e(f,o,e[0],r);case 104:f==12&&(f=0);case 75:case 72:return f<0?!1:(r.f=f,r.g=!1,!0);case 107:return f<0?!1:(r.f=f,r.g=!0,!0);case 109:return f<0?!1:(r.j=f,!0);case 115:return f<0?!1:(r.n=f,!0);case 90:if(oU&&(v.c=U-v.b),W(o.d,new jD(v,gQ(o,v))),$=e==Kn?j.Math.max($,m.b+l.b.rf().b):j.Math.min($,m.b));for($+=e==Kn?n.t:-n.t,O=DQ((o.e=$,o)),O>0&&(u(br(n.b,e),124).a.b=O),a=g.Kc();a.Ob();)l=u(a.Pb(),111),!(!l.c||l.c.d.c.length<=0)&&(v=l.c.i,v.c-=l.e.a,v.d-=l.e.b)}function LCe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p;for(e=new we,h=new ie(n);h.e!=h.i.gc();){for(f=u(oe(h),33),t=new fi,it(DR,f,t),p=new lan,r=u(es(new $n(null,new Cd(new re(ue(N7(f).a.Kc(),new Mn)))),hCn(p,ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[(hf(),hs)])))),83),$In(t,u(r.xc((qn(),!0)),14),new aan),i=u(es(gt(u(r.xc(!1),15).Lc(),new dan),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[hs]))),15),o=i.Kc();o.Ob();)c=u(o.Pb(),79),g=mxn(c),g&&(l=u(Vr(Ar(e.f,g)),21),l||(l=RNn(g),_c(e.f,g,l)),Vi(t,l));for(r=u(es(new $n(null,new Cd(new re(ue(Gh(f).a.Kc(),new Mn)))),hCn(p,ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[hs])))),83),$In(t,u(r.xc(!0),14),new ban),i=u(es(gt(u(r.xc(!1),15).Lc(),new wan),ga(new U1,new z1,new W1,A(M(Nu,1),z,132,0,[hs]))),15),d=i.Kc();d.Ob();)a=u(d.Pb(),79),g=kxn(a),g&&(l=u(Vr(Ar(e.f,g)),21),l||(l=RNn(g),_c(e.f,g,l)),Vi(t,l))}}function NCe(n,e){oL();var t,i,r,c,o,f,h,l,a,d,g,p,v,m;if(h=fc(n,0)<0,h&&(n=P3(n)),fc(n,0)==0)switch(e){case 0:return"0";case 1:return S4;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return p=new V1,e<0?p.a+="0E+":p.a+="0E",p.a+=e==Bi?"2147483648":""+-e,p.a}a=18,d=F(Ls,Bf,25,a+1,15,1),t=a,m=n;do l=m,m=M7(m,10),d[--t]=ge(qi(48,vl(l,Ni(m,10))))&Ut;while(fc(m,0)!=0);if(r=vl(vl(vl(a,t),e),1),e==0)return h&&(d[--t]=45),Hs(d,t,a-t);if(e>0&&fc(r,-6)>=0){if(fc(r,0)>=0){for(c=t+ge(r),f=a-1;f>=c;f--)d[f+1]=d[f];return d[++c]=46,h&&(d[--t]=45),Hs(d,t,a-t+1)}for(o=2;cO(o,qi(P3(r),1));o++)d[--t]=48;return d[--t]=46,d[--t]=48,h&&(d[--t]=45),Hs(d,t,a-t)}return v=t+1,i=a,g=new R0,h&&(g.a+="-"),i-v>=1?(sl(g,d[t]),g.a+=".",g.a+=Hs(d,t+1,a-t-1)):g.a+=Hs(d,t,a-t),g.a+="E",fc(r,0)>0&&(g.a+="+"),g.a+=""+O5(r),g.a}function BCe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p;if(n.e.a.$b(),n.f.a.$b(),n.c.c=F(Zn,rn,1,0,5,1),n.i.c=F(Zn,rn,1,0,5,1),n.g.a.$b(),e)for(o=new E(e.a);o.a=1&&(_-l>0&&v>=0?(Zc(d,d.i+x),nu(d,d.j+h*l)):_-l<0&&p>=0&&(Zc(d,d.i+x*_),nu(d,d.j+h)));return gr(n,(Xe(),Za),(Vu(),c=u(xo(o9),9),new ks(c,u(bo(c,c.length),9),0))),new fn(U,a)}function y_n(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v;if(p=At(Pr(u(D((!n.b&&(n.b=new Fn(he,n,4,7)),n.b),0),82))),v=At(Pr(u(D((!n.c&&(n.c=new Fn(he,n,5,8)),n.c),0),82))),d=p==v,f=new Li,e=u(hn(n,(wT(),Lhn)),74),e&&e.b>=2){if((!n.a&&(n.a=new V(Tt,n,6,6)),n.a).i==0)t=(ad(),r=new Vy,r),me((!n.a&&(n.a=new V(Tt,n,6,6)),n.a),t);else if((!n.a&&(n.a=new V(Tt,n,6,6)),n.a).i>1)for(g=new b2((!n.a&&(n.a=new V(Tt,n,6,6)),n.a));g.e!=g.i.gc();)p6(g);z7(e,u(D((!n.a&&(n.a=new V(Tt,n,6,6)),n.a),0),202))}if(d)for(i=new ie((!n.a&&(n.a=new V(Tt,n,6,6)),n.a));i.e!=i.i.gc();)for(t=u(oe(i),202),l=new ie((!t.a&&(t.a=new Jt(io,t,5)),t.a));l.e!=l.i.gc();)h=u(oe(l),469),f.a=j.Math.max(f.a,h.a),f.b=j.Math.max(f.b,h.b);for(o=new ie((!n.n&&(n.n=new V(Br,n,1,7)),n.n));o.e!=o.i.gc();)c=u(oe(o),137),a=u(hn(c,t9),8),a&&Jo(c,a.a,a.b),d&&(f.a=j.Math.max(f.a,c.i+c.g),f.b=j.Math.max(f.b,c.j+c.f));return f}function RCe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln;for(O=e.c.length,r=new tg(n.a,t,null,null),ln=F(ji,pr,25,O,15,1),m=F(ji,pr,25,O,15,1),v=F(ji,pr,25,O,15,1),C=0,f=0;fln[h]&&(C=h),d=new E(n.a.b);d.ap&&(c&&(ua(U,g),ua(ln,Q(l.b-1))),Ye=t.b,oi+=g+e,g=0,a=j.Math.max(a,t.b+t.c+se)),Zc(f,Ye),nu(f,oi),a=j.Math.max(a,Ye+se+t.c),g=j.Math.max(g,d),Ye+=se+e;if(a=j.Math.max(a,i),Wn=oi+g+t.a,WnKf,wn=j.Math.abs(g.b-v.b)>Kf,(!t&&ln&&wn||t&&(ln||wn))&&Ke(C.a,x)),Vi(C.a,i),i.b==0?g=x:g=(ne(i.b!=0),u(i.c.b.c,8)),iwe(p,d,m),hOn(r)==en&&(Gi(en.i)!=r.a&&(m=new Li,rY(m,Gi(en.i),$)),H(C,I_,m)),A5e(p,C,$),a.a.zc(p,a);Hi(C,_),Ei(C,en)}for(l=a.a.ec().Kc();l.Ob();)h=u(l.Pb(),17),Hi(h,null),Ei(h,null);ce(e)}function j_n(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;if(n.gc()==1)return u(n.Xb(0),231);if(n.gc()<=0)return new TC;for(r=n.Kc();r.Ob();){for(t=u(r.Pb(),231),v=0,a=nt,d=nt,h=Bi,l=Bi,p=new E(t.e);p.af&&(O=0,x+=o+S,o=0),Tke(m,t,O,x),e=j.Math.max(e,O+C.a),o=j.Math.max(o,C.b),O+=C.a+S;return m}function E_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v;switch(a=new hu,n.a.g){case 3:g=u(k(e.e,(G(),Ua)),15),p=u(k(e.j,Ua),15),v=u(k(e.f,Ua),15),t=u(k(e.e,Og),15),i=u(k(e.j,Og),15),r=u(k(e.f,Og),15),o=new X,Yt(o,g),p.Jc(new pwn),Yt(o,I(p,152)?I2(u(p,152)):I(p,131)?u(p,131).a:I(p,54)?new sd(p):new _0(p)),Yt(o,v),c=new X,Yt(c,t),Yt(c,I(i,152)?I2(u(i,152)):I(i,131)?u(i,131).a:I(i,54)?new sd(i):new _0(i)),Yt(c,r),H(e.f,Ua,o),H(e.f,Og,c),H(e.f,yun,e.f),H(e.e,Ua,null),H(e.e,Og,null),H(e.j,Ua,null),H(e.j,Og,null);break;case 1:Vi(a,e.e.a),Ke(a,e.i.n),Vi(a,va(e.j.a)),Ke(a,e.a.n),Vi(a,e.f.a);break;default:Vi(a,e.e.a),Vi(a,va(e.j.a)),Vi(a,e.f.a)}_s(e.f.a),Vi(e.f.a,a),Hi(e.f,e.e.c),f=u(k(e.e,(nn(),Tr)),74),l=u(k(e.j,Tr),74),h=u(k(e.f,Tr),74),(f||l||h)&&(d=new hu,AW(d,h),AW(d,l),AW(d,f),H(e.f,Tr,d)),Hi(e.j,null),Ei(e.j,null),Hi(e.e,null),Ei(e.e,null),yr(e.a,null),yr(e.i,null),e.g&&E_n(n,e.g)}function qCe(n){vZ();var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C;if(n==null||(c=NC(n),v=Ige(c),v%4!=0))return null;if(m=v/4|0,m==0)return F(yu,wg,25,0,15,1);for(d=null,e=0,t=0,i=0,r=0,o=0,f=0,h=0,l=0,p=0,g=0,a=0,d=F(yu,wg,25,m*3,15,1);p>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24}return!B9(o=c[a++])||!B9(f=c[a++])?null:(e=Tf[o],t=Tf[f],h=c[a++],l=c[a++],Tf[h]==-1||Tf[l]==-1?h==61&&l==61?t&15?null:(C=F(yu,wg,25,p*3+1,15,1),gc(d,0,C,0,p*3),C[g]=(e<<2|t>>4)<<24>>24,C):h!=61&&l==61?(i=Tf[h],i&3?null:(C=F(yu,wg,25,p*3+2,15,1),gc(d,0,C,0,p*3),C[g++]=(e<<2|t>>4)<<24>>24,C[g]=((t&15)<<4|i>>2&15)<<24>>24,C)):null:(i=Tf[h],r=Tf[l],d[g++]=(e<<2|t>>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24,d))}function GCe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_;for(le(e,oHn,1),v=u(k(n,(nn(),Qh)),218),r=new E(n.b);r.a=2){for(m=!0,g=new E(c.j),t=u(y(g),11),p=null;g.a0&&(r=u(un(C.c.a,U-1),10),o=n.i[r.p],ln=j.Math.ceil(Mw(n.n,r,C)),c=_.a.e-C.d.d-(o.a.e+r.o.b+r.d.a)-ln),l=Ft,U0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)<0,v=O.a.e.e-O.a.a-(O.b.e.e-O.b.a)<0&&en.a.e.e-en.a.a-(en.b.e.e-en.b.a)>0,p=O.a.e.e+O.b.aen.b.e.e+en.a.a,x=0,!m&&!v&&(g?c+d>0?x=d:l-i>0&&(x=i):p&&(c+f>0?x=f:l-$>0&&(x=$))),_.a.e+=x,_.b&&(_.d.e+=x),!1))}function T_n(n,e,t){var i,r,c,o,f,h,l,a,d,g;if(i=new ys(e.qf().a,e.qf().b,e.rf().a,e.rf().b),r=new d2,n.c)for(o=new E(e.wf());o.al&&(i.a+=Iyn(F(Ls,Bf,25,-l,15,1))),i.a+="Is",Pf(h,tu(32))>=0)for(r=0;r=i.o.b/2}else $=!d;$?(S=u(k(i,(G(),mp)),15),S?g?c=S:(r=u(k(i,bp),15),r?S.gc()<=r.gc()?c=S:c=r:(c=new X,H(i,bp,c))):(c=new X,H(i,mp,c))):(r=u(k(i,(G(),bp)),15),r?d?c=r:(S=u(k(i,mp),15),S?r.gc()<=S.gc()?c=r:c=S:(c=new X,H(i,mp,c))):(c=new X,H(i,bp,c))),c.Fc(n),H(n,(G(),_S),t),e.d==t?(Ei(e,null),t.e.c.length+t.g.c.length==0&&Hr(t,null),Bwe(t)):(Hi(e,null),t.e.c.length+t.g.c.length==0&&Hr(t,null)),_s(e.a)}function XCe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye;for($=new Ii(n.b,0),a=e.Kc(),v=0,l=u(a.Pb(),19).a,_=0,t=new fi,en=new Sh;$.b<$.d.gc();){for(S=(ne($.b<$.d.gc()),u($.d.Xb($.c=$.b++),29)),x=new E(S.a);x.a=n.a&&(i=$ye(n,$),a=j.Math.max(a,i.b),x=j.Math.max(x,i.d),W(f,new Pi($,i)));for(ln=new X,l=0;l0),C.a.Xb(C.c=--C.b),wn=new Rs(n.b),X0(C,wn),ne(C.b0?(l=0,C&&(l+=f),l+=(wn-1)*o,O&&(l+=f),ln&&O&&(l=j.Math.max(l,D8e(O,o,$,en))),l<$&&!g&&!p&&(Wn=($-l)/2,l=$),x+=l):!g&&!p&&(x+=$),O&&PZ(O,x),U=new E(n.i);U.a0){for(g=a<100?null:new Q1(a),l=new CV(e),v=l.g,S=F(be,Le,25,a,15,1),i=0,x=new Ld(a),r=0;r=0;)if(p!=null?tt(p,v[h]):B(p)===B(v[h])){S.length<=i&&(C=S,S=F(be,Le,25,2*S.length,15,1),gc(C,0,S,0,i)),S[i++]=r,me(x,v[h]);break n}if(p=p,B(p)===B(f))break}}if(l=x,v=x.g,a=i,i>S.length&&(C=S,S=F(be,Le,25,i,15,1),gc(C,0,S,0,i)),i>0){for(O=!0,c=0;c=0;)H2(n,S[o]);if(i!=a){for(r=a;--r>=i;)H2(l,r);C=S,S=F(be,Le,25,i,15,1),gc(C,0,S,0,i)}e=l}}}else for(e=I3e(n,e),r=n.i;--r>=0;)e.Hc(n.g[r])&&(H2(n,r),O=!0);if(O){if(S!=null){for(t=e.gc(),d=t==1?_5(n,4,e.Kc().Pb(),null,S[0],m):_5(n,6,e,S,S[0],m),g=t<100?null:new Q1(t),r=e.Kc();r.Ob();)p=r.Pb(),g=SU(n,u(p,72),g);g?(g.Ei(d),g.Fi()):et(n.e,d)}else{for(g=que(e.gc()),r=e.Kc();r.Ob();)p=r.Pb(),g=SU(n,u(p,72),g);g&&g.Fi()}return!0}else return!1}function ZCe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O;for(t=new Z$n(e),t.a||Lke(e),l=N7e(e),h=new Od,C=new WNn,m=new E(e.a);m.a0||t.o==kf&&r0?(d=u(un(g.c.a,o-1),10),ln=Mw(n.b,g,d),C=g.n.b-g.d.d-(d.n.b+d.o.b+d.d.a+ln)):C=g.n.b-g.d.d,l=j.Math.min(C,l),oo?p4(n,e,t):p4(n,t,e),ro?1:0}return i=u(k(e,(G(),dc)),19).a,c=u(k(t,dc),19).a,i>c?p4(n,e,t):p4(n,t,e),ic?1:0}function KZ(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C,S,$;if(on(sn(hn(e,(Xe(),RP)))))return Pn(),Pn(),cr;if(l=(!e.a&&(e.a=new V(Pt,e,10,11)),e.a).i!=0,d=K6e(e),a=!d.dc(),l||a){if(r=u(hn(e,yv),149),!r)throw T(new pw("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if($=hz(r,(d4(),YP)),F$n(e),!l&&a&&!$)return Pn(),Pn(),cr;if(h=new X,B(hn(e,Bg))===B((_h(),F1))&&(hz(r,QP)||hz(r,VP)))for(p=gBn(n,e),v=new Ct,Vi(v,(!e.a&&(e.a=new V(Pt,e,10,11)),e.a));v.b!=0;)g=u(v.b==0?null:(ne(v.b!=0),Ts(v,v.a.a)),33),F$n(g),S=B(hn(g,Bg))===B(i9),S||wa(g,Zm)&&!CX(r,hn(g,yv))?(f=KZ(n,g,t,i),Yt(h,f),gr(g,Bg,i9),$Bn(g)):Vi(v,(!g.a&&(g.a=new V(Pt,g,10,11)),g.a));else for(p=(!e.a&&(e.a=new V(Pt,e,10,11)),e.a).i,o=new ie((!e.a&&(e.a=new V(Pt,e,10,11)),e.a));o.e!=o.i.gc();)c=u(oe(o),33),f=KZ(n,c,t,i),Yt(h,f),$Bn(c);for(C=new E(h);C.a=0?p=B2(f):p=b7(B2(f)),n.Ye(dv,p)),l=new Li,g=!1,n.Xe(E0)?(Zz(l,u(n.We(E0),8)),g=!0):Sce(l,o.a/2,o.b/2),p.g){case 4:H(a,qc,(Ss(),xl)),H(a,HS,(ya(),Tg)),a.o.b=o.b,m<0&&(a.o.a=-m),ui(d,(J(),Vn)),g||(l.a=o.a),l.a-=o.a;break;case 2:H(a,qc,(Ss(),Ub)),H(a,HS,(ya(),cv)),a.o.b=o.b,m<0&&(a.o.a=-m),ui(d,(J(),Gn)),g||(l.a=0);break;case 1:H(a,za,(Nh(),Ag)),a.o.a=o.a,m<0&&(a.o.b=-m),ui(d,(J(),ae)),g||(l.b=o.b),l.b-=o.b;break;case 3:H(a,za,(Nh(),dp)),a.o.a=o.a,m<0&&(a.o.b=-m),ui(d,(J(),Kn)),g||(l.b=0)}if(Zz(d.n,l),H(a,E0,l),e==td||e==jh||e==Ac){if(v=0,e==td&&n.Xe(P1))switch(p.g){case 1:case 2:v=u(n.We(P1),19).a;break;case 3:case 4:v=-u(n.We(P1),19).a}else switch(p.g){case 4:case 2:v=c.b,e==jh&&(v/=r.b);break;case 1:case 3:v=c.a,e==jh&&(v/=r.a)}H(a,k0,v)}return H(a,ec,p),a}function tTe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn;if(t=K(Y(k(n.a.j,(nn(),esn)))),t<-1||!n.a.i||p2(u(k(n.a.o,Lt),98))||zr(n.a.o,(J(),Vn)).gc()<2&&zr(n.a.o,Gn).gc()<2)return!0;if(n.a.c.Rf())return!1;for(_=0,x=0,O=new X,h=n.a.e,l=0,a=h.length;l=t}function iTe(){EG();function n(i){var r=this;this.dispatch=function(c){var o=c.data;switch(o.cmd){case"algorithms":var f=OQ((Pn(),new _p(new Mh(Wl.b))));i.postMessage({id:o.id,data:f});break;case"categories":var h=OQ((Pn(),new _p(new Mh(Wl.c))));i.postMessage({id:o.id,data:h});break;case"options":var l=OQ((Pn(),new _p(new Mh(Wl.d))));i.postMessage({id:o.id,data:l});break;case"register":hEe(o.algorithms),i.postMessage({id:o.id});break;case"layout":Gye(o.graph,o.layoutOptions||{},o.options||{}),i.postMessage({id:o.id,data:o.graph});break}},this.saveDispatch=function(c){try{r.dispatch(c)}catch(o){i.postMessage({id:c.data.id,error:o})}}}function e(i){var r=this;this.dispatcher=new n({postMessage:function(c){r.onmessage({data:c})}}),this.postMessage=function(c){setTimeout(function(){r.dispatcher.saveDispatch({data:c})},0)}}if(typeof document===cN&&typeof self!==cN){var t=new n(self);self.onmessage=t.saveDispatch}else typeof dt!==cN&&dt.exports&&(Object.defineProperty(Bt,"__esModule",{value:!0}),dt.exports={default:e,Worker:e})}function rTe(n){n.N||(n.N=!0,n.b=Yr(n,0),St(n.b,0),St(n.b,1),St(n.b,2),n.bb=Yr(n,1),St(n.bb,0),St(n.bb,1),n.fb=Yr(n,2),St(n.fb,3),St(n.fb,4),bt(n.fb,5),n.qb=Yr(n,3),St(n.qb,0),bt(n.qb,1),bt(n.qb,2),St(n.qb,3),St(n.qb,4),bt(n.qb,5),St(n.qb,6),n.a=Ue(n,4),n.c=Ue(n,5),n.d=Ue(n,6),n.e=Ue(n,7),n.f=Ue(n,8),n.g=Ue(n,9),n.i=Ue(n,10),n.j=Ue(n,11),n.k=Ue(n,12),n.n=Ue(n,13),n.o=Ue(n,14),n.p=Ue(n,15),n.q=Ue(n,16),n.s=Ue(n,17),n.r=Ue(n,18),n.t=Ue(n,19),n.u=Ue(n,20),n.v=Ue(n,21),n.w=Ue(n,22),n.B=Ue(n,23),n.A=Ue(n,24),n.C=Ue(n,25),n.D=Ue(n,26),n.F=Ue(n,27),n.G=Ue(n,28),n.H=Ue(n,29),n.J=Ue(n,30),n.I=Ue(n,31),n.K=Ue(n,32),n.M=Ue(n,33),n.L=Ue(n,34),n.P=Ue(n,35),n.Q=Ue(n,36),n.R=Ue(n,37),n.S=Ue(n,38),n.T=Ue(n,39),n.U=Ue(n,40),n.V=Ue(n,41),n.X=Ue(n,42),n.W=Ue(n,43),n.Y=Ue(n,44),n.Z=Ue(n,45),n.$=Ue(n,46),n._=Ue(n,47),n.ab=Ue(n,48),n.cb=Ue(n,49),n.db=Ue(n,50),n.eb=Ue(n,51),n.gb=Ue(n,52),n.hb=Ue(n,53),n.ib=Ue(n,54),n.jb=Ue(n,55),n.kb=Ue(n,56),n.lb=Ue(n,57),n.mb=Ue(n,58),n.nb=Ue(n,59),n.ob=Ue(n,60),n.pb=Ue(n,61))}function cTe(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x;if($=0,e.f.a==0)for(C=new E(n);C.al&&(Ln(l,e.c.length),u(e.c[l],200)).a.c.length==0;)Qc(e,(Ln(l,e.c.length),e.c[l]));if(!h){--c;continue}if(zke(e,a,r,h,g,t,l,i)){d=!0;continue}if(g){if(Yye(e,a,r,h,t,l,i)){d=!0;continue}else if(rQ(a,r)){r.c=!0,d=!0;continue}}else if(rQ(a,r)){r.c=!0,d=!0;continue}if(d)continue}if(rQ(a,r)){r.c=!0,d=!0,h&&(h.k=!1);continue}else GT(r.q)}return d}function kL(n,e,t,i,r,c,o){var f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye,oi;for(m=0,zn=0,l=new E(n.b);l.am&&(c&&(ua(U,p),ua(ln,Q(a.b-1)),W(n.d,v),f.c=F(Zn,rn,1,0,5,1)),Ye=t.b,oi+=p+e,p=0,d=j.Math.max(d,t.b+t.c+se)),f.c[f.c.length]=h,U$n(h,Ye,oi),d=j.Math.max(d,Ye+se+t.c),p=j.Math.max(p,g),Ye+=se+e,v=h;if(Yt(n.a,f),W(n.d,u(un(f,f.c.length-1),157)),d=j.Math.max(d,i),Wn=oi+p+t.a,Wn1&&(o=j.Math.min(o,j.Math.abs(u(qo(f.a,1),8).b-a.b)))));else for(m=new E(e.j);m.ar&&(c=g.a-r,o=nt,i.c=F(Zn,rn,1,0,5,1),r=g.a),g.a>=r&&(i.c[i.c.length]=f,f.a.b>1&&(o=j.Math.min(o,j.Math.abs(u(qo(f.a,f.a.b-2),8).b-g.b)))));if(i.c.length!=0&&c>e.o.a/2&&o>e.o.b/2){for(p=new wc,Hr(p,e),ui(p,(J(),Kn)),p.n.a=e.o.a/2,S=new wc,Hr(S,e),ui(S,ae),S.n.a=e.o.a/2,S.n.b=e.o.b,h=new E(i);h.a=l.b?Hi(f,S):Hi(f,p)):(l=u(efe(f.a),8),C=f.a.b==0?tf(f.c):u(gE(f.a),8),C.b>=l.b?Ei(f,S):Ei(f,p)),d=u(k(f,(nn(),Tr)),74),d&&db(d,l,!0);e.n.a=r-e.o.a/2}}function hTe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye,oi,gs,oo;if(zn=null,se=e,Wn=$An(n,PAn(t),se),Q5(Wn,$h(se,Uf)),Ye=u(xw(n.g,G2(Dh(se,PB))),33),g=Dh(se,"sourcePort"),i=null,g&&(i=G2(g)),oi=u(xw(n.j,i),118),!Ye)throw f=i4(se),v="An edge must have a source node (edge id: '"+f,m=v+K4,T(new Af(m));if(oi&&!$f(nf(oi),Ye))throw h=$h(se,Uf),C="The source port of an edge must be a port of the edge's source node (edge id: '"+h,S=C+K4,T(new Af(S));if(ln=(!Wn.b&&(Wn.b=new Fn(he,Wn,4,7)),Wn.b),c=null,oi?c=oi:c=Ye,me(ln,c),gs=u(xw(n.g,G2(Dh(se,_tn))),33),p=Dh(se,"targetPort"),r=null,p&&(r=G2(p)),oo=u(xw(n.j,r),118),!gs)throw d=i4(se),$="An edge must have a target node (edge id: '"+d,O=$+K4,T(new Af(O));if(oo&&!$f(nf(oo),gs))throw l=$h(se,Uf),x="The target port of an edge must be a port of the edge's target node (edge id: '"+l,_=x+K4,T(new Af(_));if(wn=(!Wn.c&&(Wn.c=new Fn(he,Wn,5,8)),Wn.c),o=null,oo?o=oo:o=gs,me(wn,o),(!Wn.b&&(Wn.b=new Fn(he,Wn,4,7)),Wn.b).i==0||(!Wn.c&&(Wn.c=new Fn(he,Wn,5,8)),Wn.c).i==0)throw a=$h(se,Uf),U=Tqn+a,en=U+K4,T(new Af(en));return YT(se,Wn),n9e(se,Wn),zn=oF(n,se,Wn),zn}function I_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn;return d=dye(Wc(n,(J(),Ef)),e),v=Uw(Wc(n,Do),e),x=Uw(Wc(n,ds),e),ln=zT(Wc(n,to),e),g=zT(Wc(n,Fs),e),$=Uw(Wc(n,$o),e),m=Uw(Wc(n,Su),e),U=Uw(Wc(n,bs),e),_=Uw(Wc(n,xs),e),wn=zT(Wc(n,Gc),e),S=Uw(Wc(n,cu),e),O=Uw(Wc(n,Pu),e),en=Uw(Wc(n,ru),e),zn=zT(Wc(n,uu),e),p=zT(Wc(n,ku),e),C=Uw(Wc(n,Sc),e),t=Bw(A(M(ji,1),pr,25,15,[$.a,ln.a,U.a,zn.a])),i=Bw(A(M(ji,1),pr,25,15,[v.a,d.a,x.a,C.a])),r=S.a,c=Bw(A(M(ji,1),pr,25,15,[m.a,g.a,_.a,p.a])),l=Bw(A(M(ji,1),pr,25,15,[$.b,v.b,m.b,O.b])),h=Bw(A(M(ji,1),pr,25,15,[ln.b,d.b,g.b,C.b])),a=wn.b,f=Bw(A(M(ji,1),pr,25,15,[U.b,x.b,_.b,en.b])),a1(Wc(n,Ef),t+r,l+a),a1(Wc(n,Sc),t+r,l+a),a1(Wc(n,Do),t+r,0),a1(Wc(n,ds),t+r,l+a+h),a1(Wc(n,to),0,l+a),a1(Wc(n,Fs),t+r+i,l+a),a1(Wc(n,Su),t+r+i,0),a1(Wc(n,bs),0,l+a+h),a1(Wc(n,xs),t+r+i,l+a+h),a1(Wc(n,Gc),0,l),a1(Wc(n,cu),t,0),a1(Wc(n,ru),0,l+a+h),a1(Wc(n,ku),t+r+i,0),o=new Li,o.a=Bw(A(M(ji,1),pr,25,15,[t+i+r+c,wn.a,O.a,en.a])),o.b=Bw(A(M(ji,1),pr,25,15,[l+h+a+f,S.b,zn.b,p.b])),o}function lTe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C;for(m=new X,g=new E(n.d.b);g.ar.d.d+r.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))),i.b!=i.d.c&&(e=t);a&&(c=u(te(n.f,o.d.i),57),e.bc.d.d+c.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))}for(f=new re(ue(xr(p).a.Kc(),new Mn));Se(f);)o=u(ve(f),17),o.a.b!=0&&(e=u(gE(o.a),8),o.d.j==(J(),Kn)&&(C=new P6(e,new fn(e.a,r.d.d),r,o),C.f.a=!0,C.a=o.d,m.c[m.c.length]=C),o.d.j==ae&&(C=new P6(e,new fn(e.a,r.d.d+r.d.a),r,o),C.f.d=!0,C.a=o.d,m.c[m.c.length]=C))}return m}function aTe(n,e,t){var i,r,c,o,f,h,l,a,d;if(le(t,"Network simplex node placement",1),n.e=e,n.n=u(k(e,(G(),Ig)),304),Pje(n),fve(n),Rt(qr(new $n(null,new xn(n.e.b,16)),new Fwn),new E6n(n)),Rt(gt(qr(gt(qr(new $n(null,new xn(n.e.b,16)),new Wwn),new Xwn),new Vwn),new Qwn),new j6n(n)),on(sn(k(n.e,(nn(),Dm))))&&(o=kc(t,1),le(o,"Straight Edges Pre-Processing",1),XEe(n),ce(o)),Gpe(n.f),c=u(k(e,xm),19).a*n.f.a.c.length,Yx(gG(pG(fD(n.f),c),!1),kc(t,1)),n.d.a.gc()!=0){for(o=kc(t,1),le(o,"Flexible Where Space Processing",1),f=u(yd(HE(Xc(new $n(null,new xn(n.f.a,16)),new xwn),new Swn)),19).a,h=u(yd(KE(Xc(new $n(null,new xn(n.f.a,16)),new Lwn),new Pwn)),19).a,l=h-f,a=kd(new ra,n.f),d=kd(new ra,n.f),jo(lo(ho(fo(ao(new Ns,2e4),l),a),d)),Rt(gt(gt(ID(n.i),new Nwn),new Bwn),new kTn(f,a,l,d)),r=n.d.a.ec().Kc();r.Ob();)i=u(r.Pb(),213),i.g=1;Yx(gG(pG(fD(n.f),c),!1),kc(o,1)),ce(o)}on(sn(k(e,Dm)))&&(o=kc(t,1),le(o,"Straight Edges Post-Processing",1),Z5e(n),ce(o)),DEe(n),n.e=null,n.f=null,n.i=null,n.c=null,Eu(n.k),n.j=null,n.a=null,n.o=null,n.d.a.$b(),ce(t)}function dTe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_;for(f=new E(n.a.b);f.a0)if(i=d.gc(),l=Gt(j.Math.floor((i+1)/2))-1,r=Gt(j.Math.ceil((i+1)/2))-1,e.o==kf)for(a=r;a>=l;a--)e.a[x.p]==x&&(m=u(d.Xb(a),46),v=u(m.a,10),!Ah(t,m.b)&&p>n.b.e[v.p]&&(e.a[v.p]=x,e.g[x.p]=e.g[v.p],e.a[x.p]=e.g[x.p],e.f[e.g[x.p].p]=(qn(),!!(on(e.f[e.g[x.p].p])&x.k==(Qn(),gi))),p=n.b.e[v.p]));else for(a=l;a<=r;a++)e.a[x.p]==x&&(S=u(d.Xb(a),46),C=u(S.a,10),!Ah(t,S.b)&&p=v&&($>v&&(p.c=F(Zn,rn,1,0,5,1),v=$),p.c[p.c.length]=o);p.c.length!=0&&(g=u(un(p,_T(e,p.c.length)),128),Wn.a.Bc(g)!=null,g.s=m++,BY(g,wn,U),p.c=F(Zn,rn,1,0,5,1))}for(x=n.c.length+1,f=new E(n);f.azn.s&&(Uu(t),Qc(zn.i,i),i.c>0&&(i.a=zn,W(zn.t,i),i.b=en,W(en.i,i)))}function HZ(n){var e,t,i,r,c;switch(e=n.c,e){case 11:return n.Ml();case 12:return n.Ol();case 14:return n.Ql();case 15:return n.Tl();case 16:return n.Rl();case 17:return n.Ul();case 21:return Qe(n),Je(),Je(),k9;case 10:switch(n.a){case 65:return n.yl();case 90:return n.Dl();case 122:return n.Kl();case 98:return n.El();case 66:return n.zl();case 60:return n.Jl();case 62:return n.Hl()}}switch(c=oTe(n),e=n.c,e){case 3:return n.Zl(c);case 4:return n.Xl(c);case 5:return n.Yl(c);case 0:if(n.a==123&&n.d=48&&e<=57){for(i=e-48;r=48&&e<=57;)if(i=i*10+e-48,i<0)throw T(new Ee(Pe((je(),Utn))))}else throw T(new Ee(Pe((je(),Zqn))));if(t=i,e==44){if(r>=n.j)throw T(new Ee(Pe((je(),eGn))));if((e=Di(n.i,r++))>=48&&e<=57){for(t=e-48;r=48&&e<=57;)if(t=t*10+e-48,t<0)throw T(new Ee(Pe((je(),Utn))));if(i>t)throw T(new Ee(Pe((je(),tGn))))}else t=-1}if(e!=125)throw T(new Ee(Pe((je(),nGn))));n.sl(r)?(c=(Je(),Je(),new ib(9,c)),n.d=r+1):(c=(Je(),Je(),new ib(3,c)),n.d=r),c.dm(i),c.cm(t),Qe(n)}}return c}function O_n(n,e,t,i,r){var c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn;for(m=new Pc(e.b),x=new Pc(e.b),g=new Pc(e.b),ln=new Pc(e.b),C=new Pc(e.b),en=_e(e,0);en.b!=en.d.c;)for(_=u(Re(en),11),f=new E(_.g);f.a0,S=_.g.c.length>0,l&&S?g.c[g.c.length]=_:l?m.c[m.c.length]=_:S&&(x.c[x.c.length]=_);for(v=new E(m);v.a1)for(v=new b2((!n.a&&(n.a=new V(Tt,n,6,6)),n.a));v.e!=v.i.gc();)p6(v);for(o=u(D((!n.a&&(n.a=new V(Tt,n,6,6)),n.a),0),202),C=Ye,Ye>_+x?C=_+x:Ye<_-x&&(C=_-x),S=oi,oi>U+m?S=U+m:oi_-x&&C<_+x&&S>U-m&&SYe+se?ln=Ye+se:_oi+en?wn=oi+en:UYe-se&&lnoi-en&&wnt&&(g=t-1),p=Ky+Fu(e,24)*uk*d-d/2,p<0?p=1:p>i&&(p=i-1),r=(ad(),h=new Xy,h),UC(r,g),WC(r,p),me((!o.a&&(o.a=new Jt(io,o,5)),o.a),r)}function nn(){nn=N,q_=(Xe(),QZn),Isn=JZn,Zk=yhn,Mo=YZn,jp=jhn,C0=ZZn,nw=Ehn,wv=Chn,gv=Thn,G_=KP,T0=ed,z_=nne,Fm=Shn,rP=Ap,Yk=(zZ(),WVn),Dg=XVn,Qa=VVn,$g=QVn,$Qn=new tr(_P,Q(0)),bv=GVn,Psn=zVn,yp=UVn,Bsn=vQn,Osn=ZVn,Dsn=tQn,W_=fQn,$sn=cQn,Fsn=sQn,cP=jQn,X_=mQn,Lsn=bQn,xsn=aQn,Nsn=gQn,j0=BVn,$m=RVn,B_=tVn,ssn=rVn,Csn=new vd(12),Esn=new tr(nd,Csn),rsn=(Hh(),Cv),Qh=new tr(Jfn,rsn),Jb=new tr(Bu,0),FQn=new tr(tH,Q(1)),zS=new tr(Tp,$4),Va=RP,Lt=n9,dv=Hg,MQn=py,Qf=KZn,Vb=Bg,xQn=new tr(iH,(qn(),!0)),Qb=vy,Wa=VK,Xa=Za,iP=_l,H_=BP,isn=(sr(),mh),ls=new tr(A0,isn),y0=_g,eP=uhn,Yb=rw,DQn=eH,Asn=mhn,Msn=(qw(),Cy),new tr(bhn,Msn),PQn=JK,IQn=YK,OQn=ZK,SQn=QK,U_=YVn,vsn=MVn,__=TVn,xm=JVn,qc=vVn,Xb=XXn,Om=WXn,Wb=FXn,nsn=xXn,F_=RXn,Jk=LXn,x_=zXn,msn=AVn,ksn=SVn,dsn=aVn,tP=HVn,K_=OVn,R_=sVn,jsn=LVn,usn=nVn,N_=eVn,$_=LP,ysn=PVn,WS=AXn,Jun=MXn,US=TXn,hsn=hVn,fsn=fVn,lsn=lVn,lv=Kg,Tr=Rg,S1=Zfn,Jf=XK,L_=WK,esn=KXn,P1=nH,Im=GZn,YS=zZn,E0=ghn,Tsn=UZn,av=WZn,wsn=kVn,gsn=jVn,Zb=Mp,O_=CXn,psn=CVn,JS=JXn,QS=QXn,nP=my,bsn=wVn,Dm=$Vn,ny=Mhn,tsn=VXn,Ssn=qVn,csn=YXn,AQn=pVn,TQn=qXn,asn=ihn,ZS=mVn,VS=GXn,Ll=$Xn,Zun=OXn,XS=PXn,Yun=IXn,D_=DXn,kp=SXn,osn=oVn}function jL(n,e){oL();var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye;if(ln=n.e,v=n.d,r=n.a,ln==0)switch(e){case 0:return"0";case 1:return S4;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return U=new V1,e<0?U.a+="0E+":U.a+="0E",U.a+=-e,U.a}if(O=v*10+1+7,x=F(Ls,Bf,25,O+1,15,1),t=O,v==1)if(f=r[0],f<0){Ye=ci(f,fr);do m=Ye,Ye=M7(Ye,10),x[--t]=48+ge(vl(m,Ni(Ye,10)))&Ut;while(fc(Ye,0)!=0)}else{Ye=f;do m=Ye,Ye=Ye/10|0,x[--t]=48+(m-Ye*10)&Ut;while(Ye!=0)}else{zn=F(be,Le,25,v,15,1),se=v,gc(r,0,zn,0,se);n:for(;;){for(en=0,l=se-1;l>=0;l--)Wn=qi(Ih(en,32),ci(zn[l],fr)),S=Cve(Wn),zn[l]=ge(S),en=ge(cl(S,32));$=ge(en),C=t;do x[--t]=48+$%10&Ut;while(($=$/10|0)!=0&&t!=0);for(i=9-C+t,h=0;h0;h++)x[--t]=48;for(d=se-1;zn[d]==0;d--)if(d==0)break n;se=d+1}for(;x[t]==48;)++t}if(p=ln<0,o=O-t-e-1,e==0)return p&&(x[--t]=45),Hs(x,t,O-t);if(e>0&&o>=-6){if(o>=0){for(a=t+o,g=O-1;g>=a;g--)x[g+1]=x[g];return x[++a]=46,p&&(x[--t]=45),Hs(x,t,O-t+1)}for(d=2;d<-o+1;d++)x[--t]=48;return x[--t]=46,x[--t]=48,p&&(x[--t]=45),Hs(x,t,O-t)}return wn=t+1,c=O,_=new R0,p&&(_.a+="-"),c-wn>=1?(sl(_,x[t]),_.a+=".",_.a+=Hs(x,t+1,O-t-1)):_.a+=Hs(x,t,O-t),_.a+="E",o>0&&(_.a+="+"),_.a+=""+o,_.a}function F_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U;switch(n.c=e,n.g=new we,t=(K0(),new N0(n.c)),i=new tj(t),TQ(i),O=Ce(hn(n.c,(S7(),kfn))),h=u(hn(n.c,BK),316),_=u(hn(n.c,RK),429),o=u(hn(n.c,pfn),482),x=u(hn(n.c,NK),430),n.j=K(Y(hn(n.c,lZn))),f=n.a,h.g){case 0:f=n.a;break;case 1:f=n.b;break;case 2:f=n.i;break;case 3:f=n.e;break;case 4:f=n.f;break;default:throw T(new Hn(bA+(h.f!=null?h.f:""+h.g)))}if(n.d=new rMn(f,_,o),H(n.d,(_3(),pm),sn(hn(n.c,fZn))),n.d.c=on(sn(hn(n.c,vfn))),iC(n.c).i==0)return n.d;for(d=new ie(iC(n.c));d.e!=d.i.gc();){for(a=u(oe(d),33),p=a.g/2,g=a.f/2,U=new fn(a.i+p,a.j+g);zu(n.g,U);)U0(U,(j.Math.random()-.5)*Kf,(j.Math.random()-.5)*Kf);m=u(hn(a,(Xe(),my)),142),C=new yMn(U,new ys(U.a-p-n.j/2-m.b,U.b-g-n.j/2-m.d,a.g+n.j+(m.b+m.c),a.f+n.j+(m.d+m.a))),W(n.d.i,C),it(n.g,U,new Pi(C,a))}switch(x.g){case 0:if(O==null)n.d.d=u(un(n.d.i,0),65);else for($=new E(n.d.i);$.a<$.c.c.length;)C=u(y($),65),v=u(u(te(n.g,C.a),46).b,33).zg(),v!=null&&An(v,O)&&(n.d.d=C);break;case 1:for(r=new fn(n.c.g,n.c.f),r.a*=.5,r.b*=.5,U0(r,n.c.i,n.c.j),c=Ft,S=new E(n.d.i);S.a1&&Kt(a,S,a.c.b,a.c),HC(r)));S=$}return a}function kTe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye,oi,gs,oo,Mf;for(le(t,"Greedy cycle removal",1),O=e.a,Mf=O.c.length,n.a=F(be,Le,25,Mf,15,1),n.c=F(be,Le,25,Mf,15,1),n.b=F(be,Le,25,Mf,15,1),l=0,S=new E(O);S.a0?se+1:1);for(o=new E(U.g);o.a0?se+1:1)}n.c[l]==0?Ke(n.e,m):n.a[l]==0&&Ke(n.f,m),++l}for(v=-1,p=1,d=new X,n.d=u(k(e,(G(),vp)),230);Mf>0;){for(;n.e.b!=0;)oi=u(aD(n.e),10),n.b[oi.p]=v--,lZ(n,oi),--Mf;for(;n.f.b!=0;)gs=u(aD(n.f),10),n.b[gs.p]=p++,lZ(n,gs),--Mf;if(Mf>0){for(g=Bi,$=new E(O);$.a<$.c.c.length;)m=u(y($),10),n.b[m.p]==0&&(x=n.c[m.p]-n.a[m.p],x>=g&&(x>g&&(d.c=F(Zn,rn,1,0,5,1),g=x),d.c[d.c.length]=m));a=n.Zf(d),n.b[a.p]=p++,lZ(n,a),--Mf}}for(Ye=O.c.length+1,l=0;ln.b[oo]&&(e0(i,!0),H(e,Uk,(qn(),!0)));n.a=null,n.c=null,n.b=null,_s(n.f),_s(n.e),ce(t)}function L_n(n,e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S;for(i=new X,f=new X,C=e/2,p=n.gc(),r=u(n.Xb(0),8),S=u(n.Xb(1),8),v=Lx(r.a,r.b,S.a,S.b,C),W(i,(Ln(0,v.c.length),u(v.c[0],8))),W(f,(Ln(1,v.c.length),u(v.c[1],8))),l=2;l=0;h--)Ke(t,(Ln(h,o.c.length),u(o.c[h],8)));return t}function yTe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p;if(o=!0,d=null,i=null,r=null,e=!1,p=Hne,l=null,c=null,f=0,h=HF(n,f,a1n,d1n),h=0&&An(n.substr(f,2),"//")?(f+=2,h=HF(n,f,a9,d9),i=n.substr(f,h-f),f=h):d!=null&&(f==n.length||(Te(f,n.length),n.charCodeAt(f)!=47))&&(o=!1,h=qz(n,tu(35),f),h==-1&&(h=n.length),i=n.substr(f,h-f),f=h);if(!t&&f0&&Di(a,a.length-1)==58&&(r=a,f=h)),f=n.j){n.a=-1,n.c=1;return}if(e=Di(n.i,n.d++),n.a=e,n.b==1){switch(e){case 92:if(i=10,n.d>=n.j)throw T(new Ee(Pe((je(),yA))));n.a=Di(n.i,n.d++);break;case 45:(n.e&512)==512&&n.d=n.j||Di(n.i,n.d)!=63)break;if(++n.d>=n.j)throw T(new Ee(Pe((je(),_B))));switch(e=Di(n.i,n.d++),e){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw T(new Ee(Pe((je(),_B))));if(e=Di(n.i,n.d++),e==61)i=16;else if(e==33)i=17;else throw T(new Ee(Pe((je(),xqn))));break;case 35:for(;n.d=n.j)throw T(new Ee(Pe((je(),yA))));n.a=Di(n.i,n.d++);break;default:i=0}n.c=i}function ETe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se;if(en=u(k(n,(nn(),Lt)),98),en!=(Ti(),jf)&&en!=ql){for(v=n.b,p=v.c.length,a=new Pc((is(p+2,AL),KC(qi(qi(5,p+2),(p+2)/10|0)))),m=new Pc((is(p+2,AL),KC(qi(qi(5,p+2),(p+2)/10|0)))),W(a,new we),W(a,new we),W(m,new X),W(m,new X),U=new X,e=0;e=_||!G2e(S,i))&&(i=OMn(e,a)),yr(S,i),c=new re(ue(xr(S).a.Kc(),new Mn));Se(c);)r=u(ve(c),17),!n.a[r.p]&&(m=r.c.i,--n.e[m.p],n.e[m.p]==0&&M3(f4(p,m)));for(l=a.c.length-1;l>=0;--l)W(e.b,(Ln(l,a.c.length),u(a.c[l],29)));e.a.c=F(Zn,rn,1,0,5,1),ce(t)}function N_n(n){var e,t,i,r,c,o,f,h,l;for(n.b=1,Qe(n),e=null,n.c==0&&n.a==94?(Qe(n),e=(Je(),Je(),new ns(4)),yc(e,0,q4),f=new ns(4)):f=(Je(),Je(),new ns(4)),r=!0;(l=n.c)!=1;){if(l==0&&n.a==93&&!r){e&&(F6(e,f),f=e);break}if(t=n.a,i=!1,l==10)switch(t){case 100:case 68:case 119:case 87:case 115:case 83:Ab(f,v4(t)),i=!0;break;case 105:case 73:case 99:case 67:t=(Ab(f,v4(t)),-1),t<0&&(i=!0);break;case 112:case 80:if(h=mY(n,t),!h)throw T(new Ee(Pe((je(),KB))));Ab(f,h),i=!0;break;default:t=ZY(n)}else if(l==24&&!r){if(e&&(F6(e,f),f=e),c=N_n(n),F6(f,c),n.c!=0||n.a!=93)throw T(new Ee(Pe((je(),zqn))));break}if(Qe(n),!i){if(l==0){if(t==91)throw T(new Ee(Pe((je(),Gtn))));if(t==93)throw T(new Ee(Pe((je(),ztn))));if(t==45&&!r&&n.a!=93)throw T(new Ee(Pe((je(),HB))))}if(n.c!=0||n.a!=45||t==45&&r)yc(f,t,t);else{if(Qe(n),(l=n.c)==1)throw T(new Ee(Pe((je(),jA))));if(l==0&&n.a==93)yc(f,t,t),yc(f,45,45);else{if(l==0&&n.a==93||l==24)throw T(new Ee(Pe((je(),HB))));if(o=n.a,l==0){if(o==91)throw T(new Ee(Pe((je(),Gtn))));if(o==93)throw T(new Ee(Pe((je(),ztn))));if(o==45)throw T(new Ee(Pe((je(),HB))))}else l==10&&(o=ZY(n));if(Qe(n),t>o)throw T(new Ee(Pe((je(),Xqn))));yc(f,t,o)}}}r=!1}if(n.c==1)throw T(new Ee(Pe((je(),jA))));return Jw(f),D6(f),n.b=0,Qe(n),f}function TTe(n){ke(n.c,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#decimal"])),ke(n.d,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#integer"])),ke(n.e,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#boolean"])),ke(n.f,xe,A(M(tn,1),q,2,6,[Ri,"EBoolean",We,"EBoolean:Object"])),ke(n.i,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#byte"])),ke(n.g,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#hexBinary"])),ke(n.j,xe,A(M(tn,1),q,2,6,[Ri,"EByte",We,"EByte:Object"])),ke(n.n,xe,A(M(tn,1),q,2,6,[Ri,"EChar",We,"EChar:Object"])),ke(n.t,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#double"])),ke(n.u,xe,A(M(tn,1),q,2,6,[Ri,"EDouble",We,"EDouble:Object"])),ke(n.F,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#float"])),ke(n.G,xe,A(M(tn,1),q,2,6,[Ri,"EFloat",We,"EFloat:Object"])),ke(n.I,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#int"])),ke(n.J,xe,A(M(tn,1),q,2,6,[Ri,"EInt",We,"EInt:Object"])),ke(n.N,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#long"])),ke(n.O,xe,A(M(tn,1),q,2,6,[Ri,"ELong",We,"ELong:Object"])),ke(n.Z,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#short"])),ke(n.$,xe,A(M(tn,1),q,2,6,[Ri,"EShort",We,"EShort:Object"])),ke(n._,xe,A(M(tn,1),q,2,6,[Ri,"http://www.w3.org/2001/XMLSchema#string"]))}function MTe(n){var e,t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se;if(n.c.length==1)return Ln(0,n.c.length),u(n.c[0],135);if(n.c.length<=0)return new AC;for(h=new E(n);h.ad&&(Wn=0,se+=a+en,a=0),L9e(_,o,Wn,se),e=j.Math.max(e,Wn+U.a),a=j.Math.max(a,U.b),Wn+=U.a+en;for(x=new we,t=new we,wn=new E(n);wn.aNx(c))&&(d=c);for(!d&&(d=(Ln(0,C.c.length),u(C.c[0],180))),m=new E(e.b);m.a=-1900?1:0,t>=4?De(n,A(M(tn,1),q,2,6,[nKn,eKn])[f]):De(n,A(M(tn,1),q,2,6,["BC","AD"])[f]);break;case 121:kpe(n,t,i);break;case 77:Cke(n,t,i);break;case 107:h=r.q.getHours(),h==0?sh(n,24,t):sh(n,h,t);break;case 83:z9e(n,t,r);break;case 69:a=i.q.getDay(),t==5?De(n,A(M(tn,1),q,2,6,["S","M","T","W","T","F","S"])[a]):t==4?De(n,A(M(tn,1),q,2,6,[KL,HL,qL,GL,zL,UL,WL])[a]):De(n,A(M(tn,1),q,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[a]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?De(n,A(M(tn,1),q,2,6,["AM","PM"])[1]):De(n,A(M(tn,1),q,2,6,["AM","PM"])[0]);break;case 104:d=r.q.getHours()%12,d==0?sh(n,12,t):sh(n,d,t);break;case 75:g=r.q.getHours()%12,sh(n,g,t);break;case 72:p=r.q.getHours(),sh(n,p,t);break;case 99:v=i.q.getDay(),t==5?De(n,A(M(tn,1),q,2,6,["S","M","T","W","T","F","S"])[v]):t==4?De(n,A(M(tn,1),q,2,6,[KL,HL,qL,GL,zL,UL,WL])[v]):t==3?De(n,A(M(tn,1),q,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[v]):sh(n,v,1);break;case 76:m=i.q.getMonth(),t==5?De(n,A(M(tn,1),q,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[m]):t==4?De(n,A(M(tn,1),q,2,6,[IL,OL,DL,$L,V2,FL,xL,LL,NL,BL,RL,_L])[m]):t==3?De(n,A(M(tn,1),q,2,6,["Jan","Feb","Mar","Apr",V2,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[m]):sh(n,m+1,t);break;case 81:C=i.q.getMonth()/3|0,t<4?De(n,A(M(tn,1),q,2,6,["Q1","Q2","Q3","Q4"])[C]):De(n,A(M(tn,1),q,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[C]);break;case 100:S=i.q.getDate(),sh(n,S,t);break;case 109:l=r.q.getMinutes(),sh(n,l,t);break;case 115:o=r.q.getSeconds(),sh(n,o,t);break;case 122:t<4?De(n,c.c[0]):De(n,c.c[1]);break;case 118:De(n,c.b);break;case 90:t<3?De(n,F6e(c)):t==3?De(n,N6e(c)):De(n,B6e(c.a));break;default:return!1}return!0}function GZ(n,e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye;if(CBn(e),h=u(D((!e.b&&(e.b=new Fn(he,e,4,7)),e.b),0),82),a=u(D((!e.c&&(e.c=new Fn(he,e,5,8)),e.c),0),82),f=Pr(h),l=Pr(a),o=(!e.a&&(e.a=new V(Tt,e,6,6)),e.a).i==0?null:u(D((!e.a&&(e.a=new V(Tt,e,6,6)),e.a),0),202),en=u(te(n.a,f),10),Wn=u(te(n.a,l),10),ln=null,se=null,I(h,186)&&(U=u(te(n.a,h),299),I(U,11)?ln=u(U,11):I(U,10)&&(en=u(U,10),ln=u(un(en.j,0),11))),I(a,186)&&(zn=u(te(n.a,a),299),I(zn,11)?se=u(zn,11):I(zn,10)&&(Wn=u(zn,10),se=u(un(Wn.j,0),11))),!en||!Wn)throw T(new Gv("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(m=new Pd,Sr(m,e),H(m,(G(),rt),e),H(m,(nn(),Tr),null),p=u(k(i,Mc),21),en==Wn&&p.Fc((or(),Mm)),ln||(_=(ur(),xc),wn=null,o&&Cw(u(k(en,Lt),98))&&(wn=new fn(o.j,o.k),FAn(wn,S8(e)),hSn(wn,t),ob(l,f)&&(_=Au,ot(wn,en.n))),ln=jRn(en,wn,_,i)),se||(_=(ur(),Au),Ye=null,o&&Cw(u(k(Wn,Lt),98))&&(Ye=new fn(o.b,o.c),FAn(Ye,S8(e)),hSn(Ye,t)),se=jRn(Wn,Ye,_,Gi(Wn))),Hi(m,ln),Ei(m,se),(ln.e.c.length>1||ln.g.c.length>1||se.e.c.length>1||se.g.c.length>1)&&p.Fc((or(),Tm)),g=new ie((!e.n&&(e.n=new V(Br,e,1,7)),e.n));g.e!=g.i.gc();)if(d=u(oe(g),137),!on(sn(hn(d,Va)))&&d.a)switch(C=EF(d),W(m.b,C),u(k(C,Jf),272).g){case 1:case 2:p.Fc((or(),sv));break;case 0:p.Fc((or(),uv)),H(C,Jf,(sf(),jv))}if(c=u(k(i,Om),314),S=u(k(i,tP),315),r=c==(F2(),qk)||S==(b6(),nK),o&&(!o.a&&(o.a=new Jt(io,o,5)),o.a).i!=0&&r){for($=I7(o),v=new hu,x=_e($,0);x.b!=x.d.c;)O=u(Re(x),8),Ke(v,new mr(O));H(m,gun,v)}return m}function ITe(n){n.gb||(n.gb=!0,n.b=Yr(n,0),St(n.b,18),bt(n.b,19),n.a=Yr(n,1),St(n.a,1),bt(n.a,2),bt(n.a,3),bt(n.a,4),bt(n.a,5),n.o=Yr(n,2),St(n.o,8),St(n.o,9),bt(n.o,10),bt(n.o,11),bt(n.o,12),bt(n.o,13),bt(n.o,14),bt(n.o,15),bt(n.o,16),bt(n.o,17),bt(n.o,18),bt(n.o,19),bt(n.o,20),bt(n.o,21),bt(n.o,22),bt(n.o,23),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),Er(n.o),n.p=Yr(n,3),St(n.p,2),St(n.p,3),St(n.p,4),St(n.p,5),bt(n.p,6),bt(n.p,7),Er(n.p),Er(n.p),n.q=Yr(n,4),St(n.q,8),n.v=Yr(n,5),bt(n.v,9),Er(n.v),Er(n.v),Er(n.v),n.w=Yr(n,6),St(n.w,2),St(n.w,3),St(n.w,4),bt(n.w,5),n.B=Yr(n,7),bt(n.B,1),Er(n.B),Er(n.B),Er(n.B),n.Q=Yr(n,8),bt(n.Q,0),Er(n.Q),n.R=Yr(n,9),St(n.R,1),n.S=Yr(n,10),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),Er(n.S),n.T=Yr(n,11),bt(n.T,10),bt(n.T,11),bt(n.T,12),bt(n.T,13),bt(n.T,14),Er(n.T),Er(n.T),n.U=Yr(n,12),St(n.U,2),St(n.U,3),bt(n.U,4),bt(n.U,5),bt(n.U,6),bt(n.U,7),Er(n.U),n.V=Yr(n,13),bt(n.V,10),n.W=Yr(n,14),St(n.W,18),St(n.W,19),St(n.W,20),bt(n.W,21),bt(n.W,22),bt(n.W,23),n.bb=Yr(n,15),St(n.bb,10),St(n.bb,11),St(n.bb,12),St(n.bb,13),St(n.bb,14),St(n.bb,15),St(n.bb,16),bt(n.bb,17),Er(n.bb),Er(n.bb),n.eb=Yr(n,16),St(n.eb,2),St(n.eb,3),St(n.eb,4),St(n.eb,5),St(n.eb,6),St(n.eb,7),bt(n.eb,8),bt(n.eb,9),n.ab=Yr(n,17),St(n.ab,0),St(n.ab,1),n.H=Yr(n,18),bt(n.H,0),bt(n.H,1),bt(n.H,2),bt(n.H,3),bt(n.H,4),bt(n.H,5),Er(n.H),n.db=Yr(n,19),bt(n.db,2),n.c=Ue(n,20),n.d=Ue(n,21),n.e=Ue(n,22),n.f=Ue(n,23),n.i=Ue(n,24),n.g=Ue(n,25),n.j=Ue(n,26),n.k=Ue(n,27),n.n=Ue(n,28),n.r=Ue(n,29),n.s=Ue(n,30),n.t=Ue(n,31),n.u=Ue(n,32),n.fb=Ue(n,33),n.A=Ue(n,34),n.C=Ue(n,35),n.D=Ue(n,36),n.F=Ue(n,37),n.G=Ue(n,38),n.I=Ue(n,39),n.J=Ue(n,40),n.L=Ue(n,41),n.M=Ue(n,42),n.N=Ue(n,43),n.O=Ue(n,44),n.P=Ue(n,45),n.X=Ue(n,46),n.Y=Ue(n,47),n.Z=Ue(n,48),n.$=Ue(n,49),n._=Ue(n,50),n.cb=Ue(n,51),n.K=Ue(n,52))}function Xe(){Xe=N;var n,e;Zm=new kt(GHn),yv=new kt(zHn),Ufn=(oh(),HK),KZn=new In(Oen,Ufn),Tp=new In(ep,null),HZn=new kt(Ttn),Xfn=(vb(),pt(zK,A(M(UK,1),z,291,0,[GK]))),LP=new In(sA,Xfn),py=new In(mk,(qn(),!1)),Vfn=(sr(),mh),A0=new In(Fen,Vfn),Yfn=(Hh(),rH),Jfn=new In(pk,Yfn),ehn=new In(dA,!1),thn=(_h(),HP),Bg=new In(uA,thn),ahn=new vd(12),nd=new In(u0,ahn),NP=new In(lk,!1),ihn=new In(cB,!1),ky=new In(G6,!1),phn=(Ti(),ql),n9=new In(CN,phn),Mp=new kt(oA),_P=new kt(hk),tH=new kt(HM),iH=new kt(q6),rhn=new hu,Rg=new In(qen,rhn),GZn=new In(Uen,!1),zZn=new In(Wen,!1),chn=new Bv,my=new In(Ven,chn),RP=new In(Pen,!1),VZn=new In(UHn,1),new In(WHn,!0),Q(0),new In(XHn,Q(100)),new In(VHn,!1),Q(0),new In(QHn,Q(4e3)),Q(0),new In(JHn,Q(400)),new In(YHn,!1),new In(ZHn,!1),new In(nqn,!0),new In(eqn,!1),Wfn=(AT(),oH),qZn=new In(Ctn,Wfn),QZn=new In(pen,10),JZn=new In(ven,10),yhn=new In(vN,20),YZn=new In(men,10),jhn=new In(EN,2),ZZn=new In(ken,10),Ehn=new In(yen,0),KP=new In(Cen,5),Chn=new In(jen,1),Thn=new In(Een,1),ed=new In(Db,20),nne=new In(Ten,10),Shn=new In(Men,10),Ap=new kt(Aen),Ahn=new uyn,Mhn=new In(Qen,Ahn),WZn=new kt(rB),dhn=!1,UZn=new In(iB,dhn),shn=new vd(5),uhn=new In(xen,shn),ohn=(jb(),e=u(xo(lr),9),new ks(e,u(bo(e,e.length),9),0)),_g=new In(F4,ohn),whn=(qw(),Hl),bhn=new In(Ben,whn),JK=new kt(Ren),YK=new kt(_en),ZK=new kt(Ken),QK=new kt(Hen),fhn=(n=u(xo(o9),9),new ks(n,u(bo(n,n.length),9),0)),Za=new In(hg,fhn),lhn=Cn((xu(),Mv)),_l=new In(tp,lhn),hhn=new fn(0,0),Kg=new In(ip,hhn),BP=new In(tB,!1),Qfn=(sf(),jv),XK=new In(Gen,Qfn),WK=new In(qM,!1),Q(1),new In(tqn,null),ghn=new kt(Xen),nH=new kt(zen),khn=(J(),Xr),Hg=new In(Ien,khn),Bu=new kt(Sen),vhn=(Tu(),Cn(Gl)),rw=new In(x4,vhn),eH=new In(Len,!1),mhn=new In(Nen,!0),vy=new In(Den,!1),VK=new In($en,!1),Zfn=new In(mN,1),nhn=(ZT(),uH),new In(iqn,nhn),XZn=!0}function G(){G=N;var n,e;rt=new kt(Ann),aun=new kt("coordinateOrigin"),S_=new kt("processors"),lun=new ii("compoundNode",(qn(),!1)),Wk=new ii("insideConnections",!1),gun=new kt("originalBendpoints"),pun=new kt("originalDummyNodePosition"),vun=new kt("originalLabelEdge"),Vk=new kt("representedLabels"),Am=new kt("endLabels"),wp=new kt("endLabel.origin"),pp=new ii("labelSide",(cs(),Ey)),Sg=new ii("maxEdgeThickness",0),mf=new ii("reversed",!1),vp=new kt(RKn),Xo=new ii("longEdgeSource",null),Ys=new ii("longEdgeTarget",null),zb=new ii("longEdgeHasLabelDummies",!1),Xk=new ii("longEdgeBeforeLabelDummy",!1),HS=new ii("edgeConstraint",(ya(),l_)),m0=new kt("inLayerLayoutUnit"),za=new ii("inLayerConstraint",(Nh(),zk)),gp=new ii("inLayerSuccessorConstraint",new X),wun=new ii("inLayerSuccessorConstraintBetweenNonDummies",!1),Mu=new kt("portDummy"),KS=new ii("crossingHint",Q(0)),Mc=new ii("graphProperties",(e=u(xo(v_),9),new ks(e,u(bo(e,e.length),9),0))),ec=new ii("externalPortSide",(J(),Xr)),bun=new ii("externalPortSize",new Li),E_=new kt("externalPortReplacedDummies"),qS=new kt("externalPortReplacedDummy"),Gb=new ii("externalPortConnections",(n=u(xo(Zi),9),new ks(n,u(bo(n,n.length),9),0))),k0=new ii(OKn,0),hun=new kt("barycenterAssociates"),mp=new kt("TopSideComments"),bp=new kt("BottomSideComments"),_S=new kt("CommentConnectionPort"),T_=new ii("inputCollect",!1),A_=new ii("outputCollect",!1),Uk=new ii("cyclic",!1),dun=new kt("crossHierarchyMap"),I_=new kt("targetOffset"),new ii("splineLabelSize",new Li),Ig=new kt("spacings"),GS=new ii("partitionConstraint",!1),p0=new kt("breakingPoint.info"),yun=new kt("splines.survivingEdge"),Ua=new kt("splines.route.start"),Og=new kt("splines.edgeChain"),kun=new kt("originalPortConstraints"),fv=new kt("selfLoopHolder"),hv=new kt("splines.nsPortY"),dc=new kt("modelOrder"),M_=new kt("longEdgeTargetNode"),v0=new ii(aHn,!1),Pg=new ii(aHn,!1),C_=new kt("layerConstraints.hiddenNodes"),mun=new kt("layerConstraints.opposidePort"),P_=new kt("targetNode.modelOrder")}function zZ(){zZ=N,Dun=(V8(),$S),VXn=new In(xnn,Dun),sVn=new In(Lnn,(qn(),!1)),Bun=(kC(),j_),aVn=new In(WM,Bun),AVn=new In(Nnn,!1),SVn=new In(Bnn,!0),CXn=new In(Rnn,!1),Uun=(z8(),iK),qVn=new In(_nn,Uun),Q(1),JVn=new In(Knn,Q(7)),YVn=new In(Hnn,!1),oVn=new In(qnn,!1),Oun=(Pa(),f_),XXn=new In(IN,Oun),Kun=(JT(),Q_),MVn=new In(wk,Kun),Run=(Ss(),Qk),vVn=new In(Gnn,Run),Q(-1),pVn=new In(znn,Q(-1)),Q(-1),mVn=new In(Unn,Q(-1)),Q(-1),kVn=new In(ON,Q(4)),Q(-1),jVn=new In(DN,Q(2)),_un=(Zw(),hP),TVn=new In($N,_un),Q(0),CVn=new In(FN,Q(0)),wVn=new In(xN,Q(nt)),Iun=(F2(),ap),WXn=new In(X6,Iun),FXn=new In(Wnn,!1),KXn=new In(LN,.1),zXn=new In(NN,!1),Q(-1),qXn=new In(Xnn,Q(-1)),Q(-1),GXn=new In(Vnn,Q(-1)),Q(0),xXn=new In(Qnn,Q(40)),Pun=(q3(),k_),RXn=new In(BN,Pun),Sun=Gk,LXn=new In(XM,Sun),zun=(b6(),Lm),HVn=new In(lg,zun),$Vn=new kt(VM),Hun=(K8(),xS),PVn=new In(RN,Hun),qun=(A7(),LS),OVn=new In(_N,qun),LVn=new In(KN,.3),BVn=new kt(HN),Gun=(wb(),fP),RVn=new In(qN,Gun),xun=(oT(),cK),nVn=new In(Jnn,xun),Lun=(x8(),uK),eVn=new In(Ynn,Lun),Nun=(Q3(),Rm),tVn=new In(QM,Nun),rVn=new In(JM,.2),YXn=new In(GN,2),WVn=new In(Znn,null),VVn=new In(nen,10),XVn=new In(een,10),QVn=new In(ten,20),Q(0),GVn=new In(ien,Q(0)),Q(0),zVn=new In(ren,Q(0)),Q(0),UVn=new In(cen,Q(0)),TXn=new In(zN,!1),Cun=(h4(),Cm),AXn=new In(uen,Cun),Eun=(OC(),s_),MXn=new In(sen,Eun),hVn=new In(YM,!1),Q(0),fVn=new In(UN,Q(16)),Q(0),lVn=new In(WN,Q(5)),Vun=(dT(),fK),vQn=new In(Vh,Vun),ZVn=new In(ZM,10),tQn=new In(nA,1),Xun=(VC(),DS),fQn=new In(V6,Xun),cQn=new kt(XN),Wun=Q(1),Q(0),sQn=new In(VN,Wun),Qun=(uT(),oK),jQn=new In(eA,Qun),mQn=new kt(tA),bQn=new In(iA,!0),aQn=new In(rA,2),gQn=new In(QN,!0),Fun=(eM(),FS),JXn=new In(oen,Fun),$un=(q2(),iv),QXn=new In(fen,$un),Aun=(Rh(),Nl),$Xn=new In(cA,Aun),DXn=new In(hen,!1),Tun=(qd(),yg),SXn=new In(JN,Tun),Mun=(i6(),J_),OXn=new In(len,Mun),PXn=new In(YN,0),IXn=new In(ZN,0),bVn=h_,dVn=qk,yVn=sP,EVn=sP,gVn=V_,HXn=(_h(),F1),UXn=ap,_Xn=ap,NXn=ap,BXn=F1,FVn=Nm,xVn=Lm,IVn=Lm,DVn=Lm,NVn=eK,KVn=Nm,_Vn=Nm,iVn=(Hh(),Sp),cVn=Sp,uVn=Rm,ZXn=yy,nQn=pv,eQn=ew,iQn=pv,rQn=ew,hQn=pv,lQn=ew,uQn=o_,oQn=DS,EQn=pv,CQn=ew,kQn=pv,yQn=ew,wQn=ew,dQn=ew,pQn=ew}function rr(){rr=N,fcn=new zt("DIRECTION_PREPROCESSOR",0),ucn=new zt("COMMENT_PREPROCESSOR",1),mm=new zt("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),WR=new zt("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),Scn=new zt("PARTITION_PREPROCESSOR",4),dS=new zt("LABEL_DUMMY_INSERTER",5),ES=new zt("SELF_LOOP_PREPROCESSOR",6),Z4=new zt("LAYER_CONSTRAINT_PREPROCESSOR",7),Mcn=new zt("PARTITION_MIDPROCESSOR",8),pcn=new zt("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Ccn=new zt("NODE_PROMOTION",10),Y4=new zt("LAYER_CONSTRAINT_POSTPROCESSOR",11),Acn=new zt("PARTITION_POSTPROCESSOR",12),bcn=new zt("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),Pcn=new zt("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),ncn=new zt("BREAKING_POINT_INSERTER",15),pS=new zt("LONG_EDGE_SPLITTER",16),XR=new zt("PORT_SIDE_PROCESSOR",17),lS=new zt("INVERTED_PORT_PROCESSOR",18),kS=new zt("PORT_LIST_SORTER",19),Ocn=new zt("SORT_BY_INPUT_ORDER_OF_MODEL",20),mS=new zt("NORTH_SOUTH_PORT_PREPROCESSOR",21),ecn=new zt("BREAKING_POINT_PROCESSOR",22),Tcn=new zt(rHn,23),Dcn=new zt(cHn,24),yS=new zt("SELF_LOOP_PORT_RESTORER",25),Icn=new zt("SINGLE_EDGE_GRAPH_WRAPPER",26),aS=new zt("IN_LAYER_CONSTRAINT_PROCESSOR",27),lcn=new zt("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),jcn=new zt("LABEL_AND_NODE_SIZE_PROCESSOR",29),ycn=new zt("INNERMOST_NODE_MARGIN_CALCULATOR",30),CS=new zt("SELF_LOOP_ROUTER",31),rcn=new zt("COMMENT_NODE_MARGIN_CALCULATOR",32),hS=new zt("END_LABEL_PREPROCESSOR",33),wS=new zt("LABEL_DUMMY_SWITCHER",34),icn=new zt("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),J4=new zt("LABEL_SIDE_SELECTOR",36),mcn=new zt("HYPEREDGE_DUMMY_MERGER",37),wcn=new zt("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),Ecn=new zt("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),km=new zt("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),scn=new zt("CONSTRAINTS_POSTPROCESSOR",41),ccn=new zt("COMMENT_POSTPROCESSOR",42),kcn=new zt("HYPERNODE_PROCESSOR",43),gcn=new zt("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),gS=new zt("LONG_EDGE_JOINER",45),jS=new zt("SELF_LOOP_POSTPROCESSOR",46),tcn=new zt("BREAKING_POINT_REMOVER",47),vS=new zt("NORTH_SOUTH_PORT_POSTPROCESSOR",48),vcn=new zt("HORIZONTAL_COMPACTOR",49),bS=new zt("LABEL_DUMMY_REMOVER",50),acn=new zt("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),hcn=new zt("END_LABEL_SORTER",52),Kk=new zt("REVERSED_EDGE_RESTORER",53),fS=new zt("END_LABEL_POSTPROCESSOR",54),dcn=new zt("HIERARCHICAL_NODE_RESIZER",55),ocn=new zt("DIRECTION_POSTPROCESSOR",56)}function OTe(n,e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn,zn,Wn,se,Ye,oi,gs,oo,Mf,hI,Ky,y9,Hy,Ov,CH,Ree,TH,_1,$0,Dv,qy,Gy,Fp,MH,j9,_ee,W1n,F0,E9,AH,xp,C9,bw,T9,SH,Kee;for(W1n=0,Ye=e,oo=0,Ky=Ye.length;oo0&&(n.a[_1.p]=W1n++)}for(C9=0,oi=t,Mf=0,y9=oi.length;Mf0;){for(_1=(ne(Gy.b>0),u(Gy.a.Xb(Gy.c=--Gy.b),11)),qy=0,f=new E(_1.e);f.a0&&(_1.j==(J(),Kn)?(n.a[_1.p]=C9,++C9):(n.a[_1.p]=C9+Hy+CH,++CH))}C9+=CH}for(Dv=new we,v=new Sh,se=e,gs=0,hI=se.length;gsl.b&&(l.b=Fp)):_1.i.c==_ee&&(Fpl.c&&(l.c=Fp));for(S3(m,0,m.length,null),xp=F(be,Le,25,m.length,15,1),i=F(be,Le,25,C9+1,15,1),S=0;S0;)en%2>0&&(r+=SH[en+1]),en=(en-1)/2|0,++SH[en];for(wn=F(dJn,rn,362,m.length*2,0,1),x=0;x'?":An(xqn,n)?"'(?<' or '(? toIndex: ",rnn=", toIndex: ",cnn="Index: ",unn=", Size: ",P4="org.eclipse.elk.alg.common",lt={62:1},dKn="org.eclipse.elk.alg.common.compaction",bKn="Scanline/EventHandler",bh="org.eclipse.elk.alg.common.compaction.oned",wKn="CNode belongs to another CGroup.",gKn="ISpacingsHandler/1",uN="The ",sN=" instance has been finished already.",pKn="The direction ",vKn=" is not supported by the CGraph instance.",mKn="OneDimensionalCompactor",kKn="OneDimensionalCompactor/lambda$0$Type",yKn="Quadruplet",jKn="ScanlineConstraintCalculator",EKn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",CKn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",TKn="ScanlineConstraintCalculator/Timestamp",MKn="ScanlineConstraintCalculator/lambda$0$Type",Rf={169:1,45:1},oN="org.eclipse.elk.alg.common.compaction.options",Wr="org.eclipse.elk.core.data",snn="org.eclipse.elk.polyomino.traversalStrategy",onn="org.eclipse.elk.polyomino.lowLevelSort",fnn="org.eclipse.elk.polyomino.highLevelSort",hnn="org.eclipse.elk.polyomino.fill",zs={130:1},fN="polyomino",_6="org.eclipse.elk.alg.common.networksimplex",wh={177:1,3:1,4:1},AKn="org.eclipse.elk.alg.common.nodespacing",Fa="org.eclipse.elk.alg.common.nodespacing.cellsystem",I4="CENTER",SKn={212:1,326:1},lnn={3:1,4:1,5:1,595:1},Y2="LEFT",Z2="RIGHT",ann="Vertical alignment cannot be null",dnn="BOTTOM",LM="org.eclipse.elk.alg.common.nodespacing.internal",K6="UNDEFINED",bf=.01,sk="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",PKn="LabelPlacer/lambda$0$Type",IKn="LabelPlacer/lambda$1$Type",OKn="portRatioOrPosition",O4="org.eclipse.elk.alg.common.overlaps",hN="DOWN",_f="org.eclipse.elk.alg.common.polyomino",NM="NORTH",lN="EAST",aN="SOUTH",dN="WEST",BM="org.eclipse.elk.alg.common.polyomino.structures",bnn="Direction",bN="Grid is only of size ",wN=". Requested point (",gN=") is out of bounds.",RM=" Given center based coordinates were (",ok="org.eclipse.elk.graph.properties",DKn="IPropertyHolder",wnn={3:1,94:1,134:1},np="org.eclipse.elk.alg.common.spore",$Kn="org.eclipse.elk.alg.common.utils",xa={209:1},og="org.eclipse.elk.core",FKn="Connected Components Compaction",xKn="org.eclipse.elk.alg.disco",_M="org.eclipse.elk.alg.disco.graph",pN="org.eclipse.elk.alg.disco.options",gnn="CompactionStrategy",pnn="org.eclipse.elk.disco.componentCompaction.strategy",vnn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",mnn="org.eclipse.elk.disco.debug.discoGraph",knn="org.eclipse.elk.disco.debug.discoPolys",LKn="componentCompaction",La="org.eclipse.elk.disco",vN="org.eclipse.elk.spacing.componentComponent",mN="org.eclipse.elk.edge.thickness",ep="org.eclipse.elk.aspectRatio",u0="org.eclipse.elk.padding",fg="org.eclipse.elk.alg.disco.transform",kN=1.5707963267948966,D4=17976931348623157e292,Ob={3:1,4:1,5:1,192:1},ynn={3:1,6:1,4:1,5:1,106:1,120:1},jnn="org.eclipse.elk.alg.force",Enn="ComponentsProcessor",NKn="ComponentsProcessor/1",fk="org.eclipse.elk.alg.force.graph",BKn="Component Layout",Cnn="org.eclipse.elk.alg.force.model",KM="org.eclipse.elk.force.model",Tnn="org.eclipse.elk.force.iterations",Mnn="org.eclipse.elk.force.repulsivePower",yN="org.eclipse.elk.force.temperature",Kf=.001,jN="org.eclipse.elk.force.repulsion",H6="org.eclipse.elk.alg.force.options",$4=1.600000023841858,os="org.eclipse.elk.force",hk="org.eclipse.elk.priority",Db="org.eclipse.elk.spacing.nodeNode",EN="org.eclipse.elk.spacing.edgeLabel",HM="org.eclipse.elk.randomSeed",q6="org.eclipse.elk.separateConnectedComponents",lk="org.eclipse.elk.interactive",CN="org.eclipse.elk.portConstraints",qM="org.eclipse.elk.edgeLabels.inline",G6="org.eclipse.elk.omitNodeMicroLayout",tp="org.eclipse.elk.nodeSize.options",hg="org.eclipse.elk.nodeSize.constraints",F4="org.eclipse.elk.nodeLabels.placement",x4="org.eclipse.elk.portLabels.placement",Ann="origin",RKn="random",_Kn="boundingBox.upLeft",KKn="boundingBox.lowRight",Snn="org.eclipse.elk.stress.fixed",Pnn="org.eclipse.elk.stress.desiredEdgeLength",Inn="org.eclipse.elk.stress.dimension",Onn="org.eclipse.elk.stress.epsilon",Dnn="org.eclipse.elk.stress.iterationLimit",Ml="org.eclipse.elk.stress",HKn="ELK Stress",ip="org.eclipse.elk.nodeSize.minimum",GM="org.eclipse.elk.alg.force.stress",qKn="Layered layout",rp="org.eclipse.elk.alg.layered",ak="org.eclipse.elk.alg.layered.compaction.components",z6="org.eclipse.elk.alg.layered.compaction.oned",zM="org.eclipse.elk.alg.layered.compaction.oned.algs",Na="org.eclipse.elk.alg.layered.compaction.recthull",Hf="org.eclipse.elk.alg.layered.components",Xh="NONE",hc={3:1,6:1,4:1,9:1,5:1,122:1},GKn={3:1,6:1,4:1,5:1,141:1,106:1,120:1},UM="org.eclipse.elk.alg.layered.compound",xt={51:1},$c="org.eclipse.elk.alg.layered.graph",TN=" -> ",zKn="Not supported by LGraph",$nn="Port side is undefined",MN={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},E1={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},UKn={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},WKn=`([{"' \r -`,XKn=`)]}"' \r -`,VKn="The given string contains parts that cannot be parsed as numbers.",dk="org.eclipse.elk.core.math",QKn={3:1,4:1,142:1,207:1,414:1},JKn={3:1,4:1,116:1,207:1,414:1},Jn="org.eclipse.elk.layered",C1="org.eclipse.elk.alg.layered.graph.transform",YKn="ElkGraphImporter",ZKn="ElkGraphImporter/lambda$0$Type",nHn="ElkGraphImporter/lambda$1$Type",eHn="ElkGraphImporter/lambda$2$Type",tHn="ElkGraphImporter/lambda$4$Type",iHn="Node margin calculation",Un="org.eclipse.elk.alg.layered.intermediate",rHn="ONE_SIDED_GREEDY_SWITCH",cHn="TWO_SIDED_GREEDY_SWITCH",AN="No implementation is available for the layout processor ",Fnn="IntermediateProcessorStrategy",SN="Node '",uHn="FIRST_SEPARATE",sHn="LAST_SEPARATE",oHn="Odd port side processing",Qt="org.eclipse.elk.alg.layered.intermediate.compaction",U6="org.eclipse.elk.alg.layered.intermediate.greedyswitch",gh="org.eclipse.elk.alg.layered.p3order.counting",bk={225:1},cp="org.eclipse.elk.alg.layered.intermediate.loops",fs="org.eclipse.elk.alg.layered.intermediate.loops.ordering",Al="org.eclipse.elk.alg.layered.intermediate.loops.routing",W6="org.eclipse.elk.alg.layered.intermediate.preserveorder",qf="org.eclipse.elk.alg.layered.intermediate.wrapping",lc="org.eclipse.elk.alg.layered.options",PN="INTERACTIVE",fHn="DEPTH_FIRST",hHn="EDGE_LENGTH",lHn="SELF_LOOPS",aHn="firstTryWithInitialOrder",xnn="org.eclipse.elk.layered.directionCongruency",Lnn="org.eclipse.elk.layered.feedbackEdges",WM="org.eclipse.elk.layered.interactiveReferencePoint",Nnn="org.eclipse.elk.layered.mergeEdges",Bnn="org.eclipse.elk.layered.mergeHierarchyEdges",Rnn="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",_nn="org.eclipse.elk.layered.portSortingStrategy",Knn="org.eclipse.elk.layered.thoroughness",Hnn="org.eclipse.elk.layered.unnecessaryBendpoints",qnn="org.eclipse.elk.layered.generatePositionAndLayerIds",IN="org.eclipse.elk.layered.cycleBreaking.strategy",wk="org.eclipse.elk.layered.layering.strategy",Gnn="org.eclipse.elk.layered.layering.layerConstraint",znn="org.eclipse.elk.layered.layering.layerChoiceConstraint",Unn="org.eclipse.elk.layered.layering.layerId",ON="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",DN="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",$N="org.eclipse.elk.layered.layering.nodePromotion.strategy",FN="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",xN="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",X6="org.eclipse.elk.layered.crossingMinimization.strategy",Wnn="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",LN="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",NN="org.eclipse.elk.layered.crossingMinimization.semiInteractive",Xnn="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",Vnn="org.eclipse.elk.layered.crossingMinimization.positionId",Qnn="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",BN="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",XM="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",lg="org.eclipse.elk.layered.nodePlacement.strategy",VM="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",RN="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",_N="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",KN="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",HN="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",qN="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",Jnn="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",Ynn="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",QM="org.eclipse.elk.layered.edgeRouting.splines.mode",JM="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",GN="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",Znn="org.eclipse.elk.layered.spacing.baseValue",nen="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",een="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",ten="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",ien="org.eclipse.elk.layered.priority.direction",ren="org.eclipse.elk.layered.priority.shortness",cen="org.eclipse.elk.layered.priority.straightness",zN="org.eclipse.elk.layered.compaction.connectedComponents",uen="org.eclipse.elk.layered.compaction.postCompaction.strategy",sen="org.eclipse.elk.layered.compaction.postCompaction.constraints",YM="org.eclipse.elk.layered.highDegreeNodes.treatment",UN="org.eclipse.elk.layered.highDegreeNodes.threshold",WN="org.eclipse.elk.layered.highDegreeNodes.treeHeight",Vh="org.eclipse.elk.layered.wrapping.strategy",ZM="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",nA="org.eclipse.elk.layered.wrapping.correctionFactor",V6="org.eclipse.elk.layered.wrapping.cutting.strategy",XN="org.eclipse.elk.layered.wrapping.cutting.cuts",VN="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",eA="org.eclipse.elk.layered.wrapping.validify.strategy",tA="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",iA="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",rA="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",QN="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",oen="org.eclipse.elk.layered.edgeLabels.sideSelection",fen="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",cA="org.eclipse.elk.layered.considerModelOrder.strategy",hen="org.eclipse.elk.layered.considerModelOrder.noModelOrder",JN="org.eclipse.elk.layered.considerModelOrder.components",len="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",YN="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",ZN="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",nB="layering",dHn="layering.minWidth",bHn="layering.nodePromotion",gk="crossingMinimization",uA="org.eclipse.elk.hierarchyHandling",wHn="crossingMinimization.greedySwitch",gHn="nodePlacement",pHn="nodePlacement.bk",vHn="edgeRouting",pk="org.eclipse.elk.edgeRouting",wf="spacing",aen="priority",den="compaction",mHn="compaction.postCompaction",kHn="Specifies whether and how post-process compaction is applied.",ben="highDegreeNodes",wen="wrapping",yHn="wrapping.cutting",jHn="wrapping.validify",gen="wrapping.multiEdge",eB="edgeLabels",vk="considerModelOrder",pen="org.eclipse.elk.spacing.commentComment",ven="org.eclipse.elk.spacing.commentNode",men="org.eclipse.elk.spacing.edgeEdge",ken="org.eclipse.elk.spacing.edgeNode",yen="org.eclipse.elk.spacing.labelLabel",jen="org.eclipse.elk.spacing.labelPortHorizontal",Een="org.eclipse.elk.spacing.labelPortVertical",Cen="org.eclipse.elk.spacing.labelNode",Ten="org.eclipse.elk.spacing.nodeSelfLoop",Men="org.eclipse.elk.spacing.portPort",Aen="org.eclipse.elk.spacing.individual",Sen="org.eclipse.elk.port.borderOffset",Pen="org.eclipse.elk.noLayout",Ien="org.eclipse.elk.port.side",mk="org.eclipse.elk.debugMode",Oen="org.eclipse.elk.alignment",Den="org.eclipse.elk.insideSelfLoops.activate",$en="org.eclipse.elk.insideSelfLoops.yo",tB="org.eclipse.elk.nodeSize.fixedGraphSize",Fen="org.eclipse.elk.direction",xen="org.eclipse.elk.nodeLabels.padding",Len="org.eclipse.elk.portLabels.nextToPortIfPossible",Nen="org.eclipse.elk.portLabels.treatAsGroup",Ben="org.eclipse.elk.portAlignment.default",Ren="org.eclipse.elk.portAlignment.north",_en="org.eclipse.elk.portAlignment.south",Ken="org.eclipse.elk.portAlignment.west",Hen="org.eclipse.elk.portAlignment.east",sA="org.eclipse.elk.contentAlignment",qen="org.eclipse.elk.junctionPoints",Gen="org.eclipse.elk.edgeLabels.placement",zen="org.eclipse.elk.port.index",Uen="org.eclipse.elk.commentBox",Wen="org.eclipse.elk.hypernode",Xen="org.eclipse.elk.port.anchor",iB="org.eclipse.elk.partitioning.activate",rB="org.eclipse.elk.partitioning.partition",oA="org.eclipse.elk.position",Ven="org.eclipse.elk.margins",Qen="org.eclipse.elk.spacing.portsSurrounding",cB="org.eclipse.elk.interactiveLayout",ac="org.eclipse.elk.core.util",Jen={3:1,4:1,5:1,593:1},EHn="NETWORK_SIMPLEX",Ec={123:1,51:1},fA="org.eclipse.elk.alg.layered.p1cycles",$b="org.eclipse.elk.alg.layered.p2layers",Yen={402:1,225:1},CHn={832:1,3:1,4:1},vu="org.eclipse.elk.alg.layered.p3order",hr="org.eclipse.elk.alg.layered.p4nodes",THn={3:1,4:1,5:1,840:1},Gf=1e-5,Sl="org.eclipse.elk.alg.layered.p4nodes.bk",uB="org.eclipse.elk.alg.layered.p5edges",zo="org.eclipse.elk.alg.layered.p5edges.orthogonal",sB="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",oB=1e-6,Fb="org.eclipse.elk.alg.layered.p5edges.splines",fB=.09999999999999998,hA=1e-8,MHn=4.71238898038469,AHn=3.141592653589793,Q6="org.eclipse.elk.alg.mrtree",J6="org.eclipse.elk.alg.mrtree.graph",up="org.eclipse.elk.alg.mrtree.intermediate",SHn="Set neighbors in level",PHn="DESCENDANTS",Zen="org.eclipse.elk.mrtree.weighting",ntn="org.eclipse.elk.mrtree.searchOrder",lA="org.eclipse.elk.alg.mrtree.options",T1="org.eclipse.elk.mrtree",IHn="org.eclipse.elk.tree",etn="org.eclipse.elk.alg.radial",ag=6.283185307179586,ttn=5e-324,OHn="org.eclipse.elk.alg.radial.intermediate",hB="org.eclipse.elk.alg.radial.intermediate.compaction",DHn={3:1,4:1,5:1,106:1},itn="org.eclipse.elk.alg.radial.intermediate.optimization",lB="No implementation is available for the layout option ",Y6="org.eclipse.elk.alg.radial.options",rtn="org.eclipse.elk.radial.orderId",ctn="org.eclipse.elk.radial.radius",aB="org.eclipse.elk.radial.compactor",dB="org.eclipse.elk.radial.compactionStepSize",utn="org.eclipse.elk.radial.sorter",stn="org.eclipse.elk.radial.wedgeCriteria",otn="org.eclipse.elk.radial.optimizationCriteria",zf="org.eclipse.elk.radial",$Hn="org.eclipse.elk.alg.radial.p1position.wedge",ftn="org.eclipse.elk.alg.radial.sorting",FHn=5.497787143782138,xHn=3.9269908169872414,LHn=2.356194490192345,NHn="org.eclipse.elk.alg.rectpacking",aA="org.eclipse.elk.alg.rectpacking.firstiteration",bB="org.eclipse.elk.alg.rectpacking.options",htn="org.eclipse.elk.rectpacking.optimizationGoal",ltn="org.eclipse.elk.rectpacking.lastPlaceShift",atn="org.eclipse.elk.rectpacking.currentPosition",dtn="org.eclipse.elk.rectpacking.desiredPosition",btn="org.eclipse.elk.rectpacking.onlyFirstIteration",wtn="org.eclipse.elk.rectpacking.rowCompaction",wB="org.eclipse.elk.rectpacking.expandToAspectRatio",gtn="org.eclipse.elk.rectpacking.targetWidth",dA="org.eclipse.elk.expandNodes",Us="org.eclipse.elk.rectpacking",kk="org.eclipse.elk.alg.rectpacking.util",bA="No implementation available for ",xb="org.eclipse.elk.alg.spore",Lb="org.eclipse.elk.alg.spore.options",s0="org.eclipse.elk.sporeCompaction",gB="org.eclipse.elk.underlyingLayoutAlgorithm",ptn="org.eclipse.elk.processingOrder.treeConstruction",vtn="org.eclipse.elk.processingOrder.spanningTreeCostFunction",pB="org.eclipse.elk.processingOrder.preferredRoot",vB="org.eclipse.elk.processingOrder.rootSelection",mB="org.eclipse.elk.structure.structureExtractionStrategy",mtn="org.eclipse.elk.compaction.compactionStrategy",ktn="org.eclipse.elk.compaction.orthogonal",ytn="org.eclipse.elk.overlapRemoval.maxIterations",jtn="org.eclipse.elk.overlapRemoval.runScanline",kB="processingOrder",BHn="overlapRemoval",L4="org.eclipse.elk.sporeOverlap",RHn="org.eclipse.elk.alg.spore.p1structure",yB="org.eclipse.elk.alg.spore.p2processingorder",jB="org.eclipse.elk.alg.spore.p3execution",_Hn="Invalid index: ",N4="org.eclipse.elk.core.alg",dg={331:1},Nb={288:1},KHn="Make sure its type is registered with the ",Etn=" utility class.",B4="true",EB="false",HHn="Couldn't clone property '",o0=.05,Ws="org.eclipse.elk.core.options",qHn=1.2999999523162842,f0="org.eclipse.elk.box",Ctn="org.eclipse.elk.box.packingMode",GHn="org.eclipse.elk.algorithm",zHn="org.eclipse.elk.resolvedAlgorithm",Ttn="org.eclipse.elk.bendPoints",LTe="org.eclipse.elk.labelManager",UHn="org.eclipse.elk.scaleFactor",WHn="org.eclipse.elk.animate",XHn="org.eclipse.elk.animTimeFactor",VHn="org.eclipse.elk.layoutAncestors",QHn="org.eclipse.elk.maxAnimTime",JHn="org.eclipse.elk.minAnimTime",YHn="org.eclipse.elk.progressBar",ZHn="org.eclipse.elk.validateGraph",nqn="org.eclipse.elk.validateOptions",eqn="org.eclipse.elk.zoomToFit",NTe="org.eclipse.elk.font.name",tqn="org.eclipse.elk.font.size",iqn="org.eclipse.elk.edge.type",rqn="partitioning",cqn="nodeLabels",wA="portAlignment",CB="nodeSize",TB="port",Mtn="portLabels",uqn="insideSelfLoops",Z6="org.eclipse.elk.fixed",gA="org.eclipse.elk.random",sqn="port must have a parent node to calculate the port side",oqn="The edge needs to have exactly one edge section. Found: ",nm="org.eclipse.elk.core.util.adapters",Is="org.eclipse.emf.ecore",bg="org.eclipse.elk.graph",fqn="EMapPropertyHolder",hqn="ElkBendPoint",lqn="ElkGraphElement",aqn="ElkConnectableShape",Atn="ElkEdge",dqn="ElkEdgeSection",bqn="EModelElement",wqn="ENamedElement",Stn="ElkLabel",Ptn="ElkNode",Itn="ElkPort",gqn={92:1,90:1},sp="org.eclipse.emf.common.notify.impl",Pl="The feature '",em="' is not a valid changeable feature",pqn="Expecting null",MB="' is not a valid feature",vqn="The feature ID",mqn=" is not a valid feature ID",uc=32768,kqn={105:1,92:1,90:1,56:1,49:1,97:1},Bn="org.eclipse.emf.ecore.impl",Ba="org.eclipse.elk.graph.impl",tm="Recursive containment not allowed for ",R4="The datatype '",h0="' is not a valid classifier",AB="The value '",wg={190:1,3:1,4:1},SB="The class '",_4="http://www.eclipse.org/elk/ElkGraph",Eo=1024,Otn="property",im="value",PB="source",yqn="properties",jqn="identifier",IB="height",OB="width",DB="parent",$B="text",FB="children",Eqn="hierarchical",Dtn="sources",xB="targets",$tn="sections",pA="bendPoints",Ftn="outgoingShape",xtn="incomingShape",Ltn="outgoingSections",Ntn="incomingSections",Ui="org.eclipse.emf.common.util",Btn="Severe implementation error in the Json to ElkGraph importer.",Uf="id",Fi="org.eclipse.elk.graph.json",Rtn="Unhandled parameter types: ",Cqn="startPoint",Tqn="An edge must have at least one source and one target (edge id: '",K4="').",Mqn="Referenced edge section does not exist: ",Aqn=" (edge id: '",_tn="target",Sqn="sourcePoint",Pqn="targetPoint",vA="group",We="name",Iqn="connectableShape cannot be null",Oqn="edge cannot be null",LB="Passed edge is not 'simple'.",mA="org.eclipse.elk.graph.util",yk="The 'no duplicates' constraint is violated",NB="targetIndex=",Ra=", size=",BB="sourceIndex=",Wf={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},RB={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},kA="logging",Dqn="measureExecutionTime",$qn="parser.parse.1",Fqn="parser.parse.2",yA="parser.next.1",_B="parser.next.2",xqn="parser.next.3",Lqn="parser.next.4",_a="parser.factor.1",Ktn="parser.factor.2",Nqn="parser.factor.3",Bqn="parser.factor.4",Rqn="parser.factor.5",_qn="parser.factor.6",Kqn="parser.atom.1",Hqn="parser.atom.2",qqn="parser.atom.3",Htn="parser.atom.4",KB="parser.atom.5",qtn="parser.cc.1",jA="parser.cc.2",Gqn="parser.cc.3",zqn="parser.cc.5",Gtn="parser.cc.6",ztn="parser.cc.7",HB="parser.cc.8",Uqn="parser.ope.1",Wqn="parser.ope.2",Xqn="parser.ope.3",M1="parser.descape.1",Vqn="parser.descape.2",Qqn="parser.descape.3",Jqn="parser.descape.4",Yqn="parser.descape.5",Os="parser.process.1",Zqn="parser.quantifier.1",nGn="parser.quantifier.2",eGn="parser.quantifier.3",tGn="parser.quantifier.4",Utn="parser.quantifier.5",iGn="org.eclipse.emf.common.notify",Wtn={415:1,672:1},rGn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},jk={366:1,143:1},rm="index=",qB={3:1,4:1,5:1,126:1},cGn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},Xtn={3:1,6:1,4:1,5:1,192:1},uGn={3:1,4:1,5:1,165:1,367:1},sGn=";/?:@&=+$,",oGn="invalid authority: ",fGn="EAnnotation",hGn="ETypedElement",lGn="EStructuralFeature",aGn="EAttribute",dGn="EClassifier",bGn="EEnumLiteral",wGn="EGenericType",gGn="EOperation",pGn="EParameter",vGn="EReference",mGn="ETypeParameter",vt="org.eclipse.emf.ecore.util",GB={76:1},Vtn={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},kGn="org.eclipse.emf.ecore.util.FeatureMap$Entry",mu=8192,Bb=2048,cm="byte",EA="char",um="double",sm="float",om="int",fm="long",hm="short",yGn="java.lang.Object",gg={3:1,4:1,5:1,247:1},Qtn={3:1,4:1,5:1,673:1},jGn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Nr={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Ek="mixed",xe="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",Xs="kind",EGn={3:1,4:1,5:1,674:1},Jtn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},CA={20:1,28:1,52:1,14:1,15:1,58:1,69:1},TA={47:1,125:1,279:1},MA={72:1,332:1},AA="The value of type '",SA="' must be of type '",pg=1316,Vs="http://www.eclipse.org/emf/2002/Ecore",PA=-32768,l0="constraints",Ri="baseType",CGn="getEStructuralFeature",TGn="getFeatureID",lm="feature",MGn="getOperationID",Ytn="operation",AGn="defaultValue",SGn="eTypeParameters",PGn="isInstance",IGn="getEEnumLiteral",OGn="eContainingClass",qe={55:1},DGn={3:1,4:1,5:1,119:1},$Gn="org.eclipse.emf.ecore.resource",FGn={92:1,90:1,591:1,1935:1},zB="org.eclipse.emf.ecore.resource.impl",Ztn="unspecified",Ck="simple",IA="attribute",xGn="attributeWildcard",OA="element",UB="elementWildcard",Uo="collapse",WB="itemType",DA="namespace",Tk="##targetNamespace",Qs="whiteSpace",nin="wildcards",Ka="http://www.eclipse.org/emf/2003/XMLType",XB="##any",H4="uninitialized",Mk="The multiplicity constraint is violated",$A="org.eclipse.emf.ecore.xml.type",LGn="ProcessingInstruction",NGn="SimpleAnyType",BGn="XMLTypeDocumentRoot",Wt="org.eclipse.emf.ecore.xml.type.impl",Ak="INF",RGn="processing",_Gn="ENTITIES_._base",ein="minLength",tin="ENTITY",FA="NCName",KGn="IDREFS_._base",iin="integer",VB="token",QB="pattern",HGn="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",rin="\\i\\c*",qGn="[\\i-[:]][\\c-[:]]*",GGn="nonPositiveInteger",Sk="maxInclusive",cin="NMTOKEN",zGn="NMTOKENS_._base",uin="nonNegativeInteger",Pk="minInclusive",UGn="normalizedString",WGn="unsignedByte",XGn="unsignedInt",VGn="18446744073709551615",QGn="unsignedShort",JGn="processingInstruction",A1="org.eclipse.emf.ecore.xml.type.internal",q4=1114111,YGn="Internal Error: shorthands: \\u",am="xml:isDigit",JB="xml:isWord",YB="xml:isSpace",ZB="xml:isNameChar",nR="xml:isInitialNameChar",ZGn="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",nzn="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",ezn="Private Use",eR="ASSIGNED",tR="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",sin="UNASSIGNED",G4={3:1,117:1},tzn="org.eclipse.emf.ecore.xml.type.util",xA={3:1,4:1,5:1,368:1},oin="org.eclipse.xtext.xbase.lib",izn="Cannot add elements to a Range",rzn="Cannot set elements in a Range",czn="Cannot remove elements from a Range",LA="locale",NA="default",BA="user.agent",s,RA,iR;j.goog=j.goog||{},j.goog.global=j.goog.global||j,f5e(),b(1,null,{},ou),s.Fb=function(e){return nyn(this,e)},s.Gb=function(){return this.gm},s.Hb=function(){return md(this)},s.Ib=function(){var e;return J1(Du(this))+"@"+(e=mt(this)>>>0,e.toString(16))},s.equals=function(n){return this.Fb(n)},s.hashCode=function(){return this.Hb()},s.toString=function(){return this.Ib()};var uzn,szn,ozn;b(290,1,{290:1,2026:1},RV),s.le=function(e){var t;return t=new RV,t.i=4,e>1?t.c=pMn(this,e-1):t.c=this,t},s.me=function(){return Ph(this),this.b},s.ne=function(){return J1(this)},s.oe=function(){return Ph(this),this.k},s.pe=function(){return(this.i&4)!=0},s.qe=function(){return(this.i&1)!=0},s.Ib=function(){return nV(this)},s.i=0;var Zn=w(Ur,"Object",1),fin=w(Ur,"Class",290);b(1998,1,J7),w(Y7,"Optional",1998),b(1170,1998,J7,Ot),s.Fb=function(e){return e===this},s.Hb=function(){return 2040732332},s.Ib=function(){return"Optional.absent()"},s.Jb=function(e){return pe(e),Rv(),rR};var rR;w(Y7,"Absent",1170),b(628,1,{},YI),w(Y7,"Joiner",628);var BTe=Et(Y7,"Predicate");b(582,1,{169:1,582:1,3:1,45:1},nvn),s.Mb=function(e){return iDn(this,e)},s.Lb=function(e){return iDn(this,e)},s.Fb=function(e){var t;return I(e,582)?(t=u(e,582),DY(this.a,t.a)):!1},s.Hb=function(){return GV(this.a)+306654252},s.Ib=function(){return V5e(this.a)},w(Y7,"Predicates/AndPredicate",582),b(408,1998,{408:1,3:1},Zy),s.Fb=function(e){var t;return I(e,408)?(t=u(e,408),tt(this.a,t.a)):!1},s.Hb=function(){return 1502476572+mt(this.a)},s.Ib=function(){return q_n+this.a+")"},s.Jb=function(e){return new Zy(tC(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},w(Y7,"Present",408),b(198,1,E4),s.Nb=function(e){Oi(this,e)},s.Qb=function(){G9n()},w(an,"UnmodifiableIterator",198),b(1978,198,C4),s.Qb=function(){G9n()},s.Rb=function(e){throw T(new ye)},s.Wb=function(e){throw T(new ye)},w(an,"UnmodifiableListIterator",1978),b(386,1978,C4),s.Ob=function(){return this.c0},s.Pb=function(){if(this.c>=this.d)throw T(new ic);return this.Xb(this.c++)},s.Tb=function(){return this.c},s.Ub=function(){if(this.c<=0)throw T(new ic);return this.Xb(--this.c)},s.Vb=function(){return this.c-1},s.c=0,s.d=0,w(an,"AbstractIndexedListIterator",386),b(699,198,E4),s.Ob=function(){return V$(this)},s.Pb=function(){return XX(this)},s.e=1,w(an,"AbstractIterator",699),b(1986,1,{224:1}),s.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},s.Fb=function(e){return dF(this,e)},s.Hb=function(){return mt(this.Zb())},s.dc=function(){return this.gc()==0},s.ec=function(){return k2(this)},s.Ib=function(){return Lr(this.Zb())},w(an,"AbstractMultimap",1986),b(726,1986,Da),s.$b=function(){QC(this)},s._b=function(e){return f8n(this,e)},s.ac=function(){return new Yp(this,this.c)},s.ic=function(e){return this.hc()},s.bc=function(){return new Sw(this,this.c)},s.jc=function(){return this.mc(this.hc())},s.kc=function(){return new A9n(this)},s.lc=function(){return kx(this.c.vc().Nc(),new Ge,64,this.d)},s.cc=function(e){return ct(this,e)},s.fc=function(e){return l7(this,e)},s.gc=function(){return this.d},s.mc=function(e){return Pn(),new _p(e)},s.nc=function(){return new M9n(this)},s.oc=function(){return kx(this.c.Cc().Nc(),new qt,64,this.d)},s.pc=function(e,t){return new IC(this,e,t,null)},s.d=0,w(an,"AbstractMapBasedMultimap",726),b(1631,726,Da),s.hc=function(){return new Pc(this.a)},s.jc=function(){return Pn(),Pn(),cr},s.cc=function(e){return u(ct(this,e),15)},s.fc=function(e){return u(l7(this,e),15)},s.Zb=function(){return T2(this)},s.Fb=function(e){return dF(this,e)},s.qc=function(e){return u(ct(this,e),15)},s.rc=function(e){return u(l7(this,e),15)},s.mc=function(e){return C8(u(e,15))},s.pc=function(e,t){return jAn(this,e,u(t,15),null)},w(an,"AbstractListMultimap",1631),b(732,1,yi),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return this.c.Ob()||this.e.Ob()},s.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),42),this.b=e.cd(),this.a=u(e.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},s.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},w(an,"AbstractMapBasedMultimap/Itr",732),b(1099,732,yi,M9n),s.sc=function(e,t){return t},w(an,"AbstractMapBasedMultimap/1",1099),b(1100,1,{},qt),s.Kb=function(e){return u(e,14).Nc()},w(an,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),b(1101,732,yi,A9n),s.sc=function(e,t){return new bd(e,t)},w(an,"AbstractMapBasedMultimap/2",1101);var hin=Et(fe,"Map");b(1967,1,r0),s.wc=function(e){n6(this,e)},s.yc=function(e,t,i){return IF(this,e,t,i)},s.$b=function(){this.vc().$b()},s.tc=function(e){return ix(this,e)},s._b=function(e){return!!xJ(this,e,!1)},s.uc=function(e){var t,i,r;for(i=this.vc().Kc();i.Ob();)if(t=u(i.Pb(),42),r=t.dd(),B(e)===B(r)||e!=null&&tt(e,r))return!0;return!1},s.Fb=function(e){var t,i,r;if(e===this)return!0;if(!I(e,83)||(r=u(e,83),this.gc()!=r.gc()))return!1;for(i=r.vc().Kc();i.Ob();)if(t=u(i.Pb(),42),!this.tc(t))return!1;return!0},s.xc=function(e){return Vr(xJ(this,e,!1))},s.Hb=function(){return FV(this.vc())},s.dc=function(){return this.gc()==0},s.ec=function(){return new Rp(this)},s.zc=function(e,t){throw T(new t1("Put not supported on this map"))},s.Ac=function(e){Z5(this,e)},s.Bc=function(e){return Vr(xJ(this,e,!0))},s.gc=function(){return this.vc().gc()},s.Ib=function(){return cxn(this)},s.Cc=function(){return new Mh(this)},w(fe,"AbstractMap",1967),b(1987,1967,r0),s.bc=function(){return new Ej(this)},s.vc=function(){return yCn(this)},s.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},s.Cc=function(){var e;return e=this.i,e||(this.i=new e7n(this))},w(an,"Maps/ViewCachingAbstractMap",1987),b(389,1987,r0,Yp),s.xc=function(e){return O0e(this,e)},s.Bc=function(e){return Wwe(this,e)},s.$b=function(){this.d==this.e.c?this.e.$b():DE(new tW(this))},s._b=function(e){return LDn(this.d,e)},s.Ec=function(){return new rvn(this)},s.Dc=function(){return this.Ec()},s.Fb=function(e){return this===e||tt(this.d,e)},s.Hb=function(){return mt(this.d)},s.ec=function(){return this.e.ec()},s.gc=function(){return this.d.gc()},s.Ib=function(){return Lr(this.d)},w(an,"AbstractMapBasedMultimap/AsMap",389);var gf=Et(Ur,"Iterable");b(28,1,Sb),s.Jc=function(e){$i(this,e)},s.Lc=function(){return this.Oc()},s.Nc=function(){return new xn(this,0)},s.Oc=function(){return new $n(null,this.Nc())},s.Fc=function(e){throw T(new t1("Add not supported on this collection"))},s.Gc=function(e){return Vi(this,e)},s.$b=function(){KW(this)},s.Hc=function(e){return db(this,e,!1)},s.Ic=function(e){return t7(this,e)},s.dc=function(){return this.gc()==0},s.Mc=function(e){return db(this,e,!0)},s.Pc=function(){return wW(this)},s.Qc=function(e){return y7(this,e)},s.Ib=function(){return kl(this)},w(fe,"AbstractCollection",28);var Js=Et(fe,"Set");b(df,28,pu),s.Nc=function(){return new xn(this,1)},s.Fb=function(e){return P$n(this,e)},s.Hb=function(){return FV(this)},w(fe,"AbstractSet",df),b(1970,df,pu),w(an,"Sets/ImprovedAbstractSet",1970),b(1971,1970,pu),s.$b=function(){this.Rc().$b()},s.Hc=function(e){return h$n(this,e)},s.dc=function(){return this.Rc().dc()},s.Mc=function(e){var t;return this.Hc(e)?(t=u(e,42),this.Rc().ec().Mc(t.cd())):!1},s.gc=function(){return this.Rc().gc()},w(an,"Maps/EntrySet",1971),b(1097,1971,pu,rvn),s.Hc=function(e){return fQ(this.a.d.vc(),e)},s.Kc=function(){return new tW(this.a)},s.Rc=function(){return this.a},s.Mc=function(e){var t;return fQ(this.a.d.vc(),e)?(t=u(e,42),pde(this.a.e,t.cd()),!0):!1},s.Nc=function(){return g8(this.a.d.vc().Nc(),new cvn(this.a))},w(an,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),b(1098,1,{},cvn),s.Kb=function(e){return lSn(this.a,u(e,42))},w(an,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),b(730,1,yi,tW),s.Nb=function(e){Oi(this,e)},s.Pb=function(){var e;return e=u(this.b.Pb(),42),this.a=u(e.dd(),14),lSn(this.c,e)},s.Ob=function(){return this.b.Ob()},s.Qb=function(){Nw(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},w(an,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),b(532,1970,pu,Ej),s.$b=function(){this.b.$b()},s.Hc=function(e){return this.b._b(e)},s.Jc=function(e){pe(e),this.b.wc(new jvn(e))},s.dc=function(){return this.b.dc()},s.Kc=function(){return new _v(this.b.vc().Kc())},s.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},s.gc=function(){return this.b.gc()},w(an,"Maps/KeySet",532),b(318,532,pu,Sw),s.$b=function(){var e;DE((e=this.b.vc().Kc(),new SG(this,e)))},s.Ic=function(e){return this.b.ec().Ic(e)},s.Fb=function(e){return this===e||tt(this.b.ec(),e)},s.Hb=function(){return mt(this.b.ec())},s.Kc=function(){var e;return e=this.b.vc().Kc(),new SG(this,e)},s.Mc=function(e){var t,i;return i=0,t=u(this.b.Bc(e),14),t&&(i=t.gc(),t.$b(),this.a.d-=i),i>0},s.Nc=function(){return this.b.ec().Nc()},w(an,"AbstractMapBasedMultimap/KeySet",318),b(731,1,yi,SG),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return this.c.Ob()},s.Pb=function(){return this.a=u(this.c.Pb(),42),this.a.cd()},s.Qb=function(){var e;Nw(!!this.a),e=u(this.a.dd(),14),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},w(an,"AbstractMapBasedMultimap/KeySet/1",731),b(491,389,{83:1,161:1},f8),s.bc=function(){return this.Sc()},s.ec=function(){return this.Tc()},s.Sc=function(){return new R9(this.c,this.Uc())},s.Tc=function(){var e;return e=this.b,e||(this.b=this.Sc())},s.Uc=function(){return u(this.d,161)},w(an,"AbstractMapBasedMultimap/SortedAsMap",491),b(542,491,G_n,mE),s.bc=function(){return new Jp(this.a,u(u(this.d,161),171))},s.Sc=function(){return new Jp(this.a,u(u(this.d,161),171))},s.ec=function(){var e;return e=this.b,u(e||(this.b=new Jp(this.a,u(u(this.d,161),171))),271)},s.Tc=function(){var e;return e=this.b,u(e||(this.b=new Jp(this.a,u(u(this.d,161),171))),271)},s.Uc=function(){return u(u(this.d,161),171)},w(an,"AbstractMapBasedMultimap/NavigableAsMap",542),b(490,318,z_n,R9),s.Nc=function(){return this.b.ec().Nc()},w(an,"AbstractMapBasedMultimap/SortedKeySet",490),b(388,490,WZ,Jp),w(an,"AbstractMapBasedMultimap/NavigableKeySet",388),b(541,28,Sb,IC),s.Fc=function(e){var t,i;return $u(this),i=this.d.dc(),t=this.d.Fc(e),t&&(++this.f.d,i&&d8(this)),t},s.Gc=function(e){var t,i,r;return e.dc()?!1:(r=($u(this),this.d.gc()),t=this.d.Gc(e),t&&(i=this.d.gc(),this.f.d+=i-r,r==0&&d8(this)),t)},s.$b=function(){var e;e=($u(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,NE(this))},s.Hc=function(e){return $u(this),this.d.Hc(e)},s.Ic=function(e){return $u(this),this.d.Ic(e)},s.Fb=function(e){return e===this?!0:($u(this),tt(this.d,e))},s.Hb=function(){return $u(this),mt(this.d)},s.Kc=function(){return $u(this),new HU(this)},s.Mc=function(e){var t;return $u(this),t=this.d.Mc(e),t&&(--this.f.d,NE(this)),t},s.gc=function(){return Rkn(this)},s.Nc=function(){return $u(this),this.d.Nc()},s.Ib=function(){return $u(this),Lr(this.d)},w(an,"AbstractMapBasedMultimap/WrappedCollection",541);var Ds=Et(fe,"List");b(728,541,{20:1,28:1,14:1,15:1},pW),s.ad=function(e){Lw(this,e)},s.Nc=function(){return $u(this),this.d.Nc()},s.Vc=function(e,t){var i;$u(this),i=this.d.dc(),u(this.d,15).Vc(e,t),++this.a.d,i&&d8(this)},s.Wc=function(e,t){var i,r,c;return t.dc()?!1:(c=($u(this),this.d.gc()),i=u(this.d,15).Wc(e,t),i&&(r=this.d.gc(),this.a.d+=r-c,c==0&&d8(this)),i)},s.Xb=function(e){return $u(this),u(this.d,15).Xb(e)},s.Xc=function(e){return $u(this),u(this.d,15).Xc(e)},s.Yc=function(){return $u(this),new vyn(this)},s.Zc=function(e){return $u(this),new OTn(this,e)},s.$c=function(e){var t;return $u(this),t=u(this.d,15).$c(e),--this.a.d,NE(this),t},s._c=function(e,t){return $u(this),u(this.d,15)._c(e,t)},s.bd=function(e,t){return $u(this),jAn(this.a,this.e,u(this.d,15).bd(e,t),this.b?this.b:this)},w(an,"AbstractMapBasedMultimap/WrappedList",728),b(1096,728,{20:1,28:1,14:1,15:1,54:1},ojn),w(an,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),b(620,1,yi,HU),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return m3(this),this.b.Ob()},s.Pb=function(){return m3(this),this.b.Pb()},s.Qb=function(){zyn(this)},w(an,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),b(729,620,hh,vyn,OTn),s.Qb=function(){zyn(this)},s.Rb=function(e){var t;t=Rkn(this.a)==0,(m3(this),u(this.b,125)).Rb(e),++this.a.a.d,t&&d8(this.a)},s.Sb=function(){return(m3(this),u(this.b,125)).Sb()},s.Tb=function(){return(m3(this),u(this.b,125)).Tb()},s.Ub=function(){return(m3(this),u(this.b,125)).Ub()},s.Vb=function(){return(m3(this),u(this.b,125)).Vb()},s.Wb=function(e){(m3(this),u(this.b,125)).Wb(e)},w(an,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),b(727,541,z_n,fU),s.Nc=function(){return $u(this),this.d.Nc()},w(an,"AbstractMapBasedMultimap/WrappedSortedSet",727),b(1095,727,WZ,hyn),w(an,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),b(1094,541,pu,jjn),s.Nc=function(){return $u(this),this.d.Nc()},w(an,"AbstractMapBasedMultimap/WrappedSet",1094),b(1103,1,{},Ge),s.Kb=function(e){return Ede(u(e,42))},w(an,"AbstractMapBasedMultimap/lambda$1$Type",1103),b(1102,1,{},uvn),s.Kb=function(e){return new bd(this.a,e)},w(an,"AbstractMapBasedMultimap/lambda$2$Type",1102);var Ha=Et(fe,"Map/Entry");b(345,1,PM),s.Fb=function(e){var t;return I(e,42)?(t=u(e,42),$f(this.cd(),t.cd())&&$f(this.dd(),t.dd())):!1},s.Hb=function(){var e,t;return e=this.cd(),t=this.dd(),(e==null?0:mt(e))^(t==null?0:mt(t))},s.ed=function(e){throw T(new ye)},s.Ib=function(){return this.cd()+"="+this.dd()},w(an,U_n,345),b(1988,28,Sb),s.$b=function(){this.fd().$b()},s.Hc=function(e){var t;return I(e,42)?(t=u(e,42),iae(this.fd(),t.cd(),t.dd())):!1},s.Mc=function(e){var t;return I(e,42)?(t=u(e,42),tAn(this.fd(),t.cd(),t.dd())):!1},s.gc=function(){return this.fd().d},w(an,"Multimaps/Entries",1988),b(733,1988,Sb,rq),s.Kc=function(){return this.a.kc()},s.fd=function(){return this.a},s.Nc=function(){return this.a.lc()},w(an,"AbstractMultimap/Entries",733),b(734,733,pu,rG),s.Nc=function(){return this.a.lc()},s.Fb=function(e){return ZJ(this,e)},s.Hb=function(){return iOn(this)},w(an,"AbstractMultimap/EntrySet",734),b(735,28,Sb,cq),s.$b=function(){this.a.$b()},s.Hc=function(e){return Kwe(this.a,e)},s.Kc=function(){return this.a.nc()},s.gc=function(){return this.a.d},s.Nc=function(){return this.a.oc()},w(an,"AbstractMultimap/Values",735),b(1989,28,{835:1,20:1,28:1,14:1}),s.Jc=function(e){pe(e),Iw(this).Jc(new yvn(e))},s.Nc=function(){var e;return e=Iw(this).Nc(),kx(e,new G1,64|e.qd()&1296,this.a.d)},s.Fc=function(e){return dG(),!0},s.Gc=function(e){return pe(this),pe(e),I(e,543)?oae(u(e,835)):!e.dc()&&_$(this,e.Kc())},s.Hc=function(e){var t;return t=u(ab(T2(this.a),e),14),(t?t.gc():0)>0},s.Fb=function(e){return e9e(this,e)},s.Hb=function(){return mt(Iw(this))},s.dc=function(){return Iw(this).dc()},s.Mc=function(e){return jLn(this,e,1)>0},s.Ib=function(){return Lr(Iw(this))},w(an,"AbstractMultiset",1989),b(1991,1970,pu),s.$b=function(){QC(this.a.a)},s.Hc=function(e){var t,i;return I(e,492)?(i=u(e,416),u(i.a.dd(),14).gc()<=0?!1:(t=DMn(this.a,i.a.cd()),t==u(i.a.dd(),14).gc())):!1},s.Mc=function(e){var t,i,r,c;return I(e,492)&&(i=u(e,416),t=i.a.cd(),r=u(i.a.dd(),14).gc(),r!=0)?(c=this.a,q6e(c,t,r)):!1},w(an,"Multisets/EntrySet",1991),b(1109,1991,pu,svn),s.Kc=function(){return new x9n(yCn(T2(this.a.a)).Kc())},s.gc=function(){return T2(this.a.a).gc()},w(an,"AbstractMultiset/EntrySet",1109),b(619,726,Da),s.hc=function(){return this.gd()},s.jc=function(){return this.hd()},s.cc=function(e){return this.jd(e)},s.fc=function(e){return this.kd(e)},s.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},s.hd=function(){return Pn(),Pn(),zA},s.Fb=function(e){return dF(this,e)},s.jd=function(e){return u(ct(this,e),21)},s.kd=function(e){return u(l7(this,e),21)},s.mc=function(e){return Pn(),new Wp(u(e,21))},s.pc=function(e,t){return new jjn(this,e,u(t,21))},w(an,"AbstractSetMultimap",619),b(1657,619,Da),s.hc=function(){return new Y1(this.b)},s.gd=function(){return new Y1(this.b)},s.jc=function(){return DW(new Y1(this.b))},s.hd=function(){return DW(new Y1(this.b))},s.cc=function(e){return u(u(ct(this,e),21),84)},s.jd=function(e){return u(u(ct(this,e),21),84)},s.fc=function(e){return u(u(l7(this,e),21),84)},s.kd=function(e){return u(u(l7(this,e),21),84)},s.mc=function(e){return I(e,271)?DW(u(e,271)):(Pn(),new Hz(u(e,84)))},s.Zb=function(){var e;return e=this.f,e||(this.f=I(this.c,171)?new mE(this,u(this.c,171)):I(this.c,161)?new f8(this,u(this.c,161)):new Yp(this,this.c))},s.pc=function(e,t){return I(t,271)?new hyn(this,e,u(t,271)):new fU(this,e,u(t,84))},w(an,"AbstractSortedSetMultimap",1657),b(1658,1657,Da),s.Zb=function(){var e;return e=this.f,u(u(e||(this.f=I(this.c,171)?new mE(this,u(this.c,171)):I(this.c,161)?new f8(this,u(this.c,161)):new Yp(this,this.c)),161),171)},s.ec=function(){var e;return e=this.i,u(u(e||(this.i=I(this.c,171)?new Jp(this,u(this.c,171)):I(this.c,161)?new R9(this,u(this.c,161)):new Sw(this,this.c)),84),271)},s.bc=function(){return I(this.c,171)?new Jp(this,u(this.c,171)):I(this.c,161)?new R9(this,u(this.c,161)):new Sw(this,this.c)},w(an,"AbstractSortedKeySortedSetMultimap",1658),b(2010,1,{1947:1}),s.Fb=function(e){return D4e(this,e)},s.Hb=function(){var e;return FV((e=this.g,e||(this.g=new MI(this))))},s.Ib=function(){var e;return cxn((e=this.f,e||(this.f=new Fz(this))))},w(an,"AbstractTable",2010),b(665,df,pu,MI),s.$b=function(){z9n()},s.Hc=function(e){var t,i;return I(e,468)?(t=u(e,682),i=u(ab(GCn(this.a),el(t.c.e,t.b)),83),!!i&&fQ(i.vc(),new bd(el(t.c.c,t.a),D2(t.c,t.b,t.a)))):!1},s.Kc=function(){return g1e(this.a)},s.Mc=function(e){var t,i;return I(e,468)?(t=u(e,682),i=u(ab(GCn(this.a),el(t.c.e,t.b)),83),!!i&&bge(i.vc(),new bd(el(t.c.c,t.a),D2(t.c,t.b,t.a)))):!1},s.gc=function(){return tCn(this.a)},s.Nc=function(){return lae(this.a)},w(an,"AbstractTable/CellSet",665),b(1928,28,Sb,ovn),s.$b=function(){z9n()},s.Hc=function(e){return Eve(this.a,e)},s.Kc=function(){return p1e(this.a)},s.gc=function(){return tCn(this.a)},s.Nc=function(){return cAn(this.a)},w(an,"AbstractTable/Values",1928),b(1632,1631,Da),w(an,"ArrayListMultimapGwtSerializationDependencies",1632),b(513,1632,Da,JI,iX),s.hc=function(){return new Pc(this.a)},s.a=0,w(an,"ArrayListMultimap",513),b(664,2010,{664:1,1947:1,3:1},DLn),w(an,"ArrayTable",664),b(1924,386,C4,Ryn),s.Xb=function(e){return new BV(this.a,e)},w(an,"ArrayTable/1",1924),b(1925,1,{},evn),s.ld=function(e){return new BV(this.a,e)},w(an,"ArrayTable/1methodref$getCell$Type",1925),b(2011,1,{682:1}),s.Fb=function(e){var t;return e===this?!0:I(e,468)?(t=u(e,682),$f(el(this.c.e,this.b),el(t.c.e,t.b))&&$f(el(this.c.c,this.a),el(t.c.c,t.a))&&$f(D2(this.c,this.b,this.a),D2(t.c,t.b,t.a))):!1},s.Hb=function(){return gT(A(M(Zn,1),rn,1,5,[el(this.c.e,this.b),el(this.c.c,this.a),D2(this.c,this.b,this.a)]))},s.Ib=function(){return"("+el(this.c.e,this.b)+","+el(this.c.c,this.a)+")="+D2(this.c,this.b,this.a)},w(an,"Tables/AbstractCell",2011),b(468,2011,{468:1,682:1},BV),s.a=0,s.b=0,s.d=0,w(an,"ArrayTable/2",468),b(1927,1,{},tvn),s.ld=function(e){return gPn(this.a,e)},w(an,"ArrayTable/2methodref$getValue$Type",1927),b(1926,386,C4,_yn),s.Xb=function(e){return gPn(this.a,e)},w(an,"ArrayTable/3",1926),b(1979,1967,r0),s.$b=function(){DE(this.kc())},s.vc=function(){return new Evn(this)},s.lc=function(){return new vTn(this.kc(),this.gc())},w(an,"Maps/IteratorBasedAbstractMap",1979),b(828,1979,r0),s.$b=function(){throw T(new ye)},s._b=function(e){return h8n(this.c,e)},s.kc=function(){return new Kyn(this,this.c.b.c.gc())},s.lc=function(){return gD(this.c.b.c.gc(),16,new ivn(this))},s.xc=function(e){var t;return t=u(M5(this.c,e),19),t?this.nd(t.a):null},s.dc=function(){return this.c.b.c.dc()},s.ec=function(){return CD(this.c)},s.zc=function(e,t){var i;if(i=u(M5(this.c,e),19),!i)throw T(new Hn(this.md()+" "+e+" not in "+CD(this.c)));return this.od(i.a,t)},s.Bc=function(e){throw T(new ye)},s.gc=function(){return this.c.b.c.gc()},w(an,"ArrayTable/ArrayMap",828),b(1923,1,{},ivn),s.ld=function(e){return UCn(this.a,e)},w(an,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),b(1921,345,PM,G8n),s.cd=function(){return Dce(this.a,this.b)},s.dd=function(){return this.a.nd(this.b)},s.ed=function(e){return this.a.od(this.b,e)},s.b=0,w(an,"ArrayTable/ArrayMap/1",1921),b(1922,386,C4,Kyn),s.Xb=function(e){return UCn(this.a,e)},w(an,"ArrayTable/ArrayMap/2",1922),b(1920,828,r0,$Cn),s.md=function(){return"Column"},s.nd=function(e){return D2(this.b,this.a,e)},s.od=function(e,t){return HOn(this.b,this.a,e,t)},s.a=0,w(an,"ArrayTable/Row",1920),b(829,828,r0,Fz),s.nd=function(e){return new $Cn(this.a,e)},s.zc=function(e,t){return u(t,83),wie()},s.od=function(e,t){return u(t,83),gie()},s.md=function(){return"Row"},w(an,"ArrayTable/RowMap",829),b(1120,1,Gs,z8n),s.qd=function(){return this.a.qd()&-262},s.rd=function(){return this.a.rd()},s.Nb=function(e){this.a.Nb(new _8n(e,this.b))},s.sd=function(e){return this.a.sd(new R8n(e,this.b))},w(an,"CollectSpliterators/1",1120),b(1121,1,Yn,R8n),s.td=function(e){this.a.td(this.b.Kb(e))},w(an,"CollectSpliterators/1/lambda$0$Type",1121),b(1122,1,Yn,_8n),s.td=function(e){this.a.td(this.b.Kb(e))},w(an,"CollectSpliterators/1/lambda$1$Type",1122),b(1123,1,Gs,gAn),s.qd=function(){return this.a},s.rd=function(){return this.d&&(this.b=kyn(this.b,this.d.rd())),kyn(this.b,0)},s.Nb=function(e){this.d&&(this.d.Nb(e),this.d=null),this.c.Nb(new B8n(this.e,e)),this.b=0},s.sd=function(e){for(;;){if(this.d&&this.d.sd(e))return b5(this.b,IM)&&(this.b=vl(this.b,1)),!0;if(this.d=null,!this.c.sd(new K8n(this,this.e)))return!1}},s.a=0,s.b=0,w(an,"CollectSpliterators/1FlatMapSpliterator",1123),b(1124,1,Yn,K8n),s.td=function(e){xue(this.a,this.b,e)},w(an,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),b(1125,1,Yn,B8n),s.td=function(e){mce(this.b,this.a,e)},w(an,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),b(1117,1,Gs,Yjn),s.qd=function(){return 16464|this.b},s.rd=function(){return this.a.rd()},s.Nb=function(e){this.a.xe(new q8n(e,this.c))},s.sd=function(e){return this.a.ye(new H8n(e,this.c))},s.b=0,w(an,"CollectSpliterators/1WithCharacteristics",1117),b(1118,1,Z7,H8n),s.ud=function(e){this.a.td(this.b.ld(e))},w(an,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),b(1119,1,Z7,q8n),s.ud=function(e){this.a.td(this.b.ld(e))},w(an,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),b(245,1,TL),s.wd=function(e){return this.vd(u(e,245))},s.vd=function(e){var t;return e==(HI(),uR)?1:e==(qI(),cR)?-1:(t=(PE(),Y8(this.a,e.a)),t!=0?t:I(this,519)==I(e,519)?0:I(this,519)?1:-1)},s.zd=function(){return this.a},s.Fb=function(e){return KQ(this,e)},w(an,"Cut",245),b(1761,245,TL,X9n),s.vd=function(e){return e==this?0:1},s.xd=function(e){throw T(new _q)},s.yd=function(e){e.a+="+∞)"},s.zd=function(){throw T(new Dr(X_n))},s.Hb=function(){return Zf(),QQ(this)},s.Ad=function(e){return!1},s.Ib=function(){return"+∞"};var cR;w(an,"Cut/AboveAll",1761),b(519,245,{245:1,519:1,3:1,35:1},Uyn),s.xd=function(e){rc((e.a+="(",e),this.a)},s.yd=function(e){sl(rc(e,this.a),93)},s.Hb=function(){return~mt(this.a)},s.Ad=function(e){return PE(),Y8(this.a,e)<0},s.Ib=function(){return"/"+this.a+"\\"},w(an,"Cut/AboveValue",519),b(1760,245,TL,V9n),s.vd=function(e){return e==this?0:-1},s.xd=function(e){e.a+="(-∞"},s.yd=function(e){throw T(new _q)},s.zd=function(){throw T(new Dr(X_n))},s.Hb=function(){return Zf(),QQ(this)},s.Ad=function(e){return!0},s.Ib=function(){return"-∞"};var uR;w(an,"Cut/BelowAll",1760),b(1762,245,TL,Wyn),s.xd=function(e){rc((e.a+="[",e),this.a)},s.yd=function(e){sl(rc(e,this.a),41)},s.Hb=function(){return mt(this.a)},s.Ad=function(e){return PE(),Y8(this.a,e)<=0},s.Ib=function(){return"\\"+this.a+"/"},w(an,"Cut/BelowValue",1762),b(537,1,lh),s.Jc=function(e){$i(this,e)},s.Ib=function(){return Gge(u(tC(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},w(an,"FluentIterable",537),b(433,537,lh,p5),s.Kc=function(){return new re(ue(this.a.Kc(),new Mn))},w(an,"FluentIterable/2",433),b(1046,537,lh,Jkn),s.Kc=function(){return ul(this)},w(an,"FluentIterable/3",1046),b(708,386,C4,xz),s.Xb=function(e){return this.a[e].Kc()},w(an,"FluentIterable/3/1",708),b(1972,1,{}),s.Ib=function(){return Lr(this.Bd().b)},w(an,"ForwardingObject",1972),b(1973,1972,V_n),s.Bd=function(){return this.Cd()},s.Jc=function(e){$i(this,e)},s.Lc=function(){return this.Oc()},s.Nc=function(){return new xn(this,0)},s.Oc=function(){return new $n(null,this.Nc())},s.Fc=function(e){return this.Cd(),b8n()},s.Gc=function(e){return this.Cd(),w8n()},s.$b=function(){this.Cd(),g8n()},s.Hc=function(e){return this.Cd().Hc(e)},s.Ic=function(e){return this.Cd().Ic(e)},s.dc=function(){return this.Cd().b.dc()},s.Kc=function(){return this.Cd().Kc()},s.Mc=function(e){return this.Cd(),p8n()},s.gc=function(){return this.Cd().b.gc()},s.Pc=function(){return this.Cd().Pc()},s.Qc=function(e){return this.Cd().Qc(e)},w(an,"ForwardingCollection",1973),b(1980,28,XZ),s.Kc=function(){return this.Ed()},s.Fc=function(e){throw T(new ye)},s.Gc=function(e){throw T(new ye)},s.$b=function(){throw T(new ye)},s.Hc=function(e){return e!=null&&db(this,e,!1)},s.Dd=function(){switch(this.gc()){case 0:return nb(),nb(),sR;case 1:return nb(),new pD(pe(this.Ed().Pb()));default:return new FCn(this,this.Pc())}},s.Mc=function(e){throw T(new ye)},w(an,"ImmutableCollection",1980),b(712,1980,XZ,Bq),s.Kc=function(){return $2(this.a.Kc())},s.Hc=function(e){return e!=null&&this.a.Hc(e)},s.Ic=function(e){return this.a.Ic(e)},s.dc=function(){return this.a.dc()},s.Ed=function(){return $2(this.a.Kc())},s.gc=function(){return this.a.gc()},s.Pc=function(){return this.a.Pc()},s.Qc=function(e){return this.a.Qc(e)},s.Ib=function(){return Lr(this.a)},w(an,"ForwardingImmutableCollection",712),b(152,1980,x6),s.Kc=function(){return this.Ed()},s.Yc=function(){return this.Fd(0)},s.Zc=function(e){return this.Fd(e)},s.ad=function(e){Lw(this,e)},s.Nc=function(){return new xn(this,16)},s.bd=function(e,t){return this.Gd(e,t)},s.Vc=function(e,t){throw T(new ye)},s.Wc=function(e,t){throw T(new ye)},s.Fb=function(e){return Rme(this,e)},s.Hb=function(){return Qbe(this)},s.Xc=function(e){return e==null?-1:f3e(this,e)},s.Ed=function(){return this.Fd(0)},s.Fd=function(e){return Qz(this,e)},s.$c=function(e){throw T(new ye)},s._c=function(e,t){throw T(new ye)},s.Gd=function(e,t){var i;return mT((i=new t7n(this),new ch(i,e,t)))};var sR;w(an,"ImmutableList",152),b(2006,152,x6),s.Kc=function(){return $2(this.Hd().Kc())},s.bd=function(e,t){return mT(this.Hd().bd(e,t))},s.Hc=function(e){return e!=null&&this.Hd().Hc(e)},s.Ic=function(e){return this.Hd().Ic(e)},s.Fb=function(e){return tt(this.Hd(),e)},s.Xb=function(e){return el(this,e)},s.Hb=function(){return mt(this.Hd())},s.Xc=function(e){return this.Hd().Xc(e)},s.dc=function(){return this.Hd().dc()},s.Ed=function(){return $2(this.Hd().Kc())},s.gc=function(){return this.Hd().gc()},s.Gd=function(e,t){return mT(this.Hd().bd(e,t))},s.Pc=function(){return this.Hd().Qc(F(Zn,rn,1,this.Hd().gc(),5,1))},s.Qc=function(e){return this.Hd().Qc(e)},s.Ib=function(){return Lr(this.Hd())},w(an,"ForwardingImmutableList",2006),b(714,1,T4),s.vc=function(){return Ed(this)},s.wc=function(e){n6(this,e)},s.ec=function(){return CD(this)},s.yc=function(e,t,i){return IF(this,e,t,i)},s.Cc=function(){return this.Ld()},s.$b=function(){throw T(new ye)},s._b=function(e){return this.xc(e)!=null},s.uc=function(e){return this.Ld().Hc(e)},s.Jd=function(){return new Rmn(this)},s.Kd=function(){return new _mn(this)},s.Fb=function(e){return Hwe(this,e)},s.Hb=function(){return Ed(this).Hb()},s.dc=function(){return this.gc()==0},s.zc=function(e,t){return pie()},s.Bc=function(e){throw T(new ye)},s.Ib=function(){return k5e(this)},s.Ld=function(){return this.e?this.e:this.e=this.Kd()},s.c=null,s.d=null,s.e=null;var fzn;w(an,"ImmutableMap",714),b(715,714,T4),s._b=function(e){return h8n(this,e)},s.uc=function(e){return u7n(this.b,e)},s.Id=function(){return xDn(new fvn(this))},s.Jd=function(){return xDn(bTn(this.b))},s.Kd=function(){return Df(),new Bq(dTn(this.b))},s.Fb=function(e){return s7n(this.b,e)},s.xc=function(e){return M5(this,e)},s.Hb=function(){return mt(this.b.c)},s.dc=function(){return this.b.c.dc()},s.gc=function(){return this.b.c.gc()},s.Ib=function(){return Lr(this.b.c)},w(an,"ForwardingImmutableMap",715),b(1974,1973,ML),s.Bd=function(){return this.Md()},s.Cd=function(){return this.Md()},s.Nc=function(){return new xn(this,1)},s.Fb=function(e){return e===this||this.Md().Fb(e)},s.Hb=function(){return this.Md().Hb()},w(an,"ForwardingSet",1974),b(1069,1974,ML,fvn),s.Bd=function(){return p3(this.a.b)},s.Cd=function(){return p3(this.a.b)},s.Hc=function(e){if(I(e,42)&&u(e,42).cd()==null)return!1;try{return c7n(p3(this.a.b),e)}catch(t){if(t=jt(t),I(t,205))return!1;throw T(t)}},s.Md=function(){return p3(this.a.b)},s.Qc=function(e){var t;return t=VTn(p3(this.a.b),e),p3(this.a.b).b.gc()=0?"+":"")+(i/60|0),t=tE(j.Math.abs(i)%60),(wxn(),Tzn)[this.q.getDay()]+" "+Mzn[this.q.getMonth()]+" "+tE(this.q.getDate())+" "+tE(this.q.getHours())+":"+tE(this.q.getMinutes())+":"+tE(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var HA=w(fe,"Date",199);b(1915,199,rKn,HFn),s.a=!1,s.b=0,s.c=0,s.d=0,s.e=0,s.f=0,s.g=!1,s.i=0,s.j=0,s.k=0,s.n=0,s.o=0,s.p=0,w("com.google.gwt.i18n.shared.impl","DateRecord",1915),b(1966,1,{}),s.fe=function(){return null},s.ge=function(){return null},s.he=function(){return null},s.ie=function(){return null},s.je=function(){return null},w(Q2,"JSONValue",1966),b(216,1966,{216:1},na,sq),s.Fb=function(e){return I(e,216)?uX(this.a,u(e,216).a):!1},s.ee=function(){return Rte},s.Hb=function(){return WW(this.a)},s.fe=function(){return this},s.Ib=function(){var e,t,i;for(i=new Ju("["),t=0,e=this.a.length;t0&&(i.a+=","),rc(i,ub(this,t));return i.a+="]",i.a},w(Q2,"JSONArray",216),b(483,1966,{483:1},oq),s.ee=function(){return _te},s.ge=function(){return this},s.Ib=function(){return qn(),""+this.a},s.a=!1;var gzn,pzn;w(Q2,"JSONBoolean",483),b(985,60,Uh,L9n),w(Q2,"JSONException",985),b(1023,1966,{},ww),s.ee=function(){return zte},s.Ib=function(){return iu};var vzn;w(Q2,"JSONNull",1023),b(258,1966,{258:1},nj),s.Fb=function(e){return I(e,258)?this.a==u(e,258).a:!1},s.ee=function(){return Kte},s.Hb=function(){return i3(this.a)},s.he=function(){return this},s.Ib=function(){return this.a+""},s.a=0,w(Q2,"JSONNumber",258),b(183,1966,{183:1},r2,M9),s.Fb=function(e){return I(e,183)?uX(this.a,u(e,183).a):!1},s.ee=function(){return Hte},s.Hb=function(){return WW(this.a)},s.ie=function(){return this},s.Ib=function(){var e,t,i,r,c,o,f;for(f=new Ju("{"),e=!0,o=Z$(this,F(tn,q,2,0,6,1)),i=o,r=0,c=i.length;r=0?":"+this.c:"")+")"},s.c=0;var Ain=w(Ur,"StackTraceElement",310);ozn={3:1,475:1,35:1,2:1};var tn=w(Ur,VZ,2);b(107,418,{475:1},i1,zv,Bs),w(Ur,"StringBuffer",107),b(100,418,{475:1},V1,R0,Ju),w(Ur,"StringBuilder",100),b(687,73,VL,wG),w(Ur,"StringIndexOutOfBoundsException",687),b(2043,1,{});var Sin;b(844,1,{},cln),s.Kb=function(e){return u(e,78).e},w(Ur,"Throwable/lambda$0$Type",844),b(41,60,{3:1,102:1,60:1,78:1,41:1},ye,t1),w(Ur,"UnsupportedOperationException",41),b(240,236,{3:1,35:1,236:1,240:1},W8,CG),s.wd=function(e){return VBn(this,u(e,240))},s.ke=function(){return kb(ORn(this))},s.Fb=function(e){var t;return this===e?!0:I(e,240)?(t=u(e,240),this.e==t.e&&VBn(this,t)==0):!1},s.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=eu(this.f),this.b=ge(ci(e,-1)),this.b=33*this.b+ge(ci(cl(e,32),-1)),this.b=17*this.b+Gt(this.e),this.b):(this.b=17*PDn(this.c)+Gt(this.e),this.b)},s.Ib=function(){return ORn(this)},s.a=0,s.b=0,s.d=0,s.e=0,s.f=0;var jzn,Ga,Pin,Iin,Oin,Din,$in,Fin,wR=w("java.math","BigDecimal",240);b(91,236,{3:1,35:1,236:1,91:1},VQ,l1,Pw,OJ,D$n,il),s.wd=function(e){return A$n(this,u(e,91))},s.ke=function(){return kb(jL(this,0))},s.Fb=function(e){return SQ(this,e)},s.Hb=function(){return PDn(this)},s.Ib=function(){return jL(this,0)},s.b=-2,s.c=0,s.d=0,s.e=0;var gR,qA,xin,pR,GA,W4,vg=w("java.math","BigInteger",91),Ezn,Czn,fp,wm;b(488,1967,r0),s.$b=function(){Eu(this)},s._b=function(e){return zu(this,e)},s.uc=function(e){return dDn(this,e,this.g)||dDn(this,e,this.f)},s.vc=function(){return new ta(this)},s.xc=function(e){return te(this,e)},s.zc=function(e,t){return it(this,e,t)},s.Bc=function(e){return O2(this,e)},s.gc=function(){return Xv(this)},w(fe,"AbstractHashMap",488),b(261,df,pu,ta),s.$b=function(){this.a.$b()},s.Hc=function(e){return lAn(this,e)},s.Kc=function(){return new Ea(this.a)},s.Mc=function(e){var t;return lAn(this,e)?(t=u(e,42).cd(),this.a.Bc(t),!0):!1},s.gc=function(){return this.a.gc()},w(fe,"AbstractHashMap/EntrySet",261),b(262,1,yi,Ea),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return Nd(this)},s.Ob=function(){return this.b},s.Qb=function(){oPn(this)},s.b=!1,w(fe,"AbstractHashMap/EntrySetIterator",262),b(417,1,yi,$v),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return G9(this)},s.Pb=function(){return $Tn(this)},s.Qb=function(){Uu(this)},s.b=0,s.c=-1,w(fe,"AbstractList/IteratorImpl",417),b(96,417,hh,Ii),s.Qb=function(){Uu(this)},s.Rb=function(e){X0(this,e)},s.Sb=function(){return this.b>0},s.Tb=function(){return this.b},s.Ub=function(){return ne(this.b>0),this.a.Xb(this.c=--this.b)},s.Vb=function(){return this.b-1},s.Wb=function(e){z0(this.c!=-1),this.a._c(this.c,e)},w(fe,"AbstractList/ListIteratorImpl",96),b(219,52,A4,ch),s.Vc=function(e,t){tb(e,this.b),this.c.Vc(this.a+e,t),++this.b},s.Xb=function(e){return Ln(e,this.b),this.c.Xb(this.a+e)},s.$c=function(e){var t;return Ln(e,this.b),t=this.c.$c(this.a+e),--this.b,t},s._c=function(e,t){return Ln(e,this.b),this.c._c(this.a+e,t)},s.gc=function(){return this.b},s.a=0,s.b=0,w(fe,"AbstractList/SubList",219),b(384,df,pu,Rp),s.$b=function(){this.a.$b()},s.Hc=function(e){return this.a._b(e)},s.Kc=function(){var e;return e=this.a.vc().Kc(),new bq(e)},s.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},s.gc=function(){return this.a.gc()},w(fe,"AbstractMap/1",384),b(691,1,yi,bq),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return this.a.Ob()},s.Pb=function(){var e;return e=u(this.a.Pb(),42),e.cd()},s.Qb=function(){this.a.Qb()},w(fe,"AbstractMap/1/1",691),b(226,28,Sb,Mh),s.$b=function(){this.a.$b()},s.Hc=function(e){return this.a.uc(e)},s.Kc=function(){var e;return e=this.a.vc().Kc(),new L0(e)},s.gc=function(){return this.a.gc()},w(fe,"AbstractMap/2",226),b(294,1,yi,L0),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return this.a.Ob()},s.Pb=function(){var e;return e=u(this.a.Pb(),42),e.dd()},s.Qb=function(){this.a.Qb()},w(fe,"AbstractMap/2/1",294),b(484,1,{484:1,42:1}),s.Fb=function(e){var t;return I(e,42)?(t=u(e,42),pc(this.d,t.cd())&&pc(this.e,t.dd())):!1},s.cd=function(){return this.d},s.dd=function(){return this.e},s.Hb=function(){return Tw(this.d)^Tw(this.e)},s.ed=function(e){return gU(this,e)},s.Ib=function(){return this.d+"="+this.e},w(fe,"AbstractMap/AbstractEntry",484),b(383,484,{484:1,383:1,42:1},Nj),w(fe,"AbstractMap/SimpleEntry",383),b(1984,1,ZL),s.Fb=function(e){var t;return I(e,42)?(t=u(e,42),pc(this.cd(),t.cd())&&pc(this.dd(),t.dd())):!1},s.Hb=function(){return Tw(this.cd())^Tw(this.dd())},s.Ib=function(){return this.cd()+"="+this.dd()},w(fe,U_n,1984),b(1992,1967,G_n),s.tc=function(e){return mSn(this,e)},s._b=function(e){return cD(this,e)},s.vc=function(){return new mq(this)},s.xc=function(e){var t;return t=e,Vr(VV(this,t))},s.ec=function(){return new P9(this)},w(fe,"AbstractNavigableMap",1992),b(739,df,pu,mq),s.Hc=function(e){return I(e,42)&&mSn(this.b,u(e,42))},s.Kc=function(){return new T5(this.b)},s.Mc=function(e){var t;return I(e,42)?(t=u(e,42),uPn(this.b,t)):!1},s.gc=function(){return this.b.c},w(fe,"AbstractNavigableMap/EntrySet",739),b(493,df,WZ,P9),s.Nc=function(){return new xj(this)},s.$b=function(){Kv(this.a)},s.Hc=function(e){return cD(this.a,e)},s.Kc=function(){var e;return e=new T5(new j5(this.a).b),new I9(e)},s.Mc=function(e){return cD(this.a,e)?(R5(this.a,e),!0):!1},s.gc=function(){return this.a.c},w(fe,"AbstractNavigableMap/NavigableKeySet",493),b(494,1,yi,I9),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return G9(this.a.a)},s.Pb=function(){var e;return e=pE(this.a),e.cd()},s.Qb=function(){fEn(this.a)},w(fe,"AbstractNavigableMap/NavigableKeySet/1",494),b(2004,28,Sb),s.Fc=function(e){return M3(f4(this,e)),!0},s.Gc=function(e){return _n(e),TE(e!=this,"Can't add a queue to itself"),Vi(this,e)},s.$b=function(){for(;K$(this)!=null;);},w(fe,"AbstractQueue",2004),b(302,28,{4:1,20:1,28:1,14:1},gw,LMn),s.Fc=function(e){return bX(this,e),!0},s.$b=function(){kX(this)},s.Hc=function(e){return LOn(new B5(this),e)},s.dc=function(){return Hv(this)},s.Kc=function(){return new B5(this)},s.Mc=function(e){return ele(new B5(this),e)},s.gc=function(){return this.c-this.b&this.a.length-1},s.Nc=function(){return new xn(this,272)},s.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&Mt(e,t,null),e},s.b=0,s.c=0,w(fe,"ArrayDeque",302),b(446,1,yi,B5),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return this.a!=this.b},s.Pb=function(){return vT(this)},s.Qb=function(){FIn(this)},s.a=0,s.b=0,s.c=-1,w(fe,"ArrayDeque/IteratorImpl",446),b(12,52,sKn,X,Pc,du),s.Vc=function(e,t){Q0(this,e,t)},s.Fc=function(e){return W(this,e)},s.Wc=function(e,t){return eQ(this,e,t)},s.Gc=function(e){return Yt(this,e)},s.$b=function(){this.c=F(Zn,rn,1,0,5,1)},s.Hc=function(e){return Fr(this,e,0)!=-1},s.Jc=function(e){Yc(this,e)},s.Xb=function(e){return un(this,e)},s.Xc=function(e){return Fr(this,e,0)},s.dc=function(){return this.c.length==0},s.Kc=function(){return new E(this)},s.$c=function(e){return h1(this,e)},s.Mc=function(e){return Qc(this,e)},s.Ud=function(e,t){xMn(this,e,t)},s._c=function(e,t){return Es(this,e,t)},s.gc=function(){return this.c.length},s.ad=function(e){bi(this,e)},s.Pc=function(){return XO(this)},s.Qc=function(e){return lf(this,e)};var RTe=w(fe,"ArrayList",12);b(7,1,yi,E),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return Kr(this)},s.Pb=function(){return y(this)},s.Qb=function(){F5(this)},s.a=0,s.b=-1,w(fe,"ArrayList/1",7),b(2013,j.Function,{},zy),s.te=function(e,t){return Zt(e,t)},b(154,52,oKn,Ku),s.Hc=function(e){return LIn(this,e)!=-1},s.Jc=function(e){var t,i,r,c;for(_n(e),i=this.a,r=0,c=i.length;r>>0,e.toString(16)))},s.f=0,s.i=Vt;var VA=w(bh,"CNode",57);b(814,1,{},Vq),w(bh,"CNode/CNodeBuilder",814);var _zn;b(1525,1,{},Tln),s.Oe=function(e,t){return 0},s.Pe=function(e,t){return 0},w(bh,gKn,1525),b(1790,1,{},Mln),s.Le=function(e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C;for(a=Ft,r=new E(e.a.b);r.ar.d.c||r.d.c==o.d.c&&r.d.b0?e+this.n.d+this.n.a:0},s.Se=function(){var e,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].Se());else if(this.g)c=EQ(this,lx(this,null,!0));else for(t=(_o(),A(M(_b,1),z,232,0,[Zr,Fc,nc])),i=0,r=t.length;i0?c+this.n.b+this.n.c:0},s.Te=function(){var e,t,i,r,c;if(this.g)for(e=lx(this,null,!1),i=(_o(),A(M(_b,1),z,232,0,[Zr,Fc,nc])),r=0,c=i.length;r0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=j.Math.max(0,i),this.c.d=t.d+e.d+(this.c.a-i)/2,r[1]=j.Math.max(r[1],i),AX(this,Fc,t.d+e.d+r[0]-(r[1]-i)/2,r)},s.b=null,s.d=0,s.e=!1,s.f=!1,s.g=!1;var CR=0,QA=0;w(Fa,"GridContainerCell",1473),b(461,22,{3:1,35:1,22:1,461:1},oO);var Ol,Xf,Co,Qzn=Me(Fa,"HorizontalLabelAlignment",461,Ie,gle,nse),Jzn;b(306,212,{212:1,306:1},tMn,fIn,ZTn),s.Re=function(){return _En(this)},s.Se=function(){return nW(this)},s.a=0,s.c=!1;var VTe=w(Fa,"LabelCell",306);b(244,326,{212:1,326:1,244:1},l6),s.Re=function(){return $7(this)},s.Se=function(){return F7(this)},s.Te=function(){tL(this)},s.Ue=function(){iL(this)},s.b=0,s.c=0,s.d=!1,w(Fa,"StripContainerCell",244),b(1626,1,Ve,$ln),s.Mb=function(e){return die(u(e,212))},w(Fa,"StripContainerCell/lambda$0$Type",1626),b(1627,1,{},Fln),s.Fe=function(e){return u(e,212).Se()},w(Fa,"StripContainerCell/lambda$1$Type",1627),b(1628,1,Ve,xln),s.Mb=function(e){return bie(u(e,212))},w(Fa,"StripContainerCell/lambda$2$Type",1628),b(1629,1,{},Lln),s.Fe=function(e){return u(e,212).Re()},w(Fa,"StripContainerCell/lambda$3$Type",1629),b(462,22,{3:1,35:1,22:1,462:1},fO);var To,Dl,Wo,Yzn=Me(Fa,"VerticalLabelAlignment",462,Ie,ple,ese),Zzn;b(789,1,{},NZ),s.c=0,s.d=0,s.k=0,s.s=0,s.t=0,s.v=!1,s.w=0,s.D=!1,w(LM,"NodeContext",789),b(1471,1,lt,Nln),s.ue=function(e,t){return tyn(u(e,61),u(t,61))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(LM,"NodeContext/0methodref$comparePortSides$Type",1471),b(1472,1,lt,Bln),s.ue=function(e,t){return Kve(u(e,111),u(t,111))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(LM,"NodeContext/1methodref$comparePortContexts$Type",1472),b(159,22,{3:1,35:1,22:1,159:1},Ms);var nUn,eUn,tUn,iUn,rUn,cUn,uUn,sUn,oUn,fUn,hUn,lUn,aUn,dUn,bUn,wUn,gUn,pUn,vUn,mUn,kUn,TR,yUn=Me(LM,"NodeLabelLocation",159,Ie,qF,tse),jUn;b(111,1,{111:1},xLn),s.a=!1,w(LM,"PortContext",111),b(1476,1,Yn,Rln),s.td=function(e){y8n(u(e,306))},w(sk,PKn,1476),b(1477,1,Ve,_ln),s.Mb=function(e){return!!u(e,111).c},w(sk,IKn,1477),b(1478,1,Yn,Kln),s.td=function(e){y8n(u(e,111).c)},w(sk,"LabelPlacer/lambda$2$Type",1478);var prn;b(1475,1,Yn,qln),s.td=function(e){W0(),Wte(u(e,111))},w(sk,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),b(790,1,Yn,$U),s.td=function(e){cre(this.b,this.c,this.a,u(e,181))},s.a=!1,s.c=!1,w(sk,"NodeLabelCellCreator/lambda$0$Type",790),b(1474,1,Yn,i5n),s.td=function(e){Qte(this.a,u(e,181))},w(sk,"PortContextCreator/lambda$0$Type",1474);var JA;b(1829,1,{},Gln),w(O4,"GreedyRectangleStripOverlapRemover",1829),b(1830,1,lt,Hln),s.ue=function(e,t){return Nce(u(e,222),u(t,222))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(O4,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),b(1786,1,{},Zmn),s.a=5,s.e=0,w(O4,"RectangleStripOverlapRemover",1786),b(1787,1,lt,Uln),s.ue=function(e,t){return Bce(u(e,222),u(t,222))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(O4,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),b(1789,1,lt,Wln),s.ue=function(e,t){return ohe(u(e,222),u(t,222))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(O4,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),b(406,22,{3:1,35:1,22:1,406:1},_j);var Ik,MR,AR,Ok,EUn=Me(O4,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Ie,gae,ise),CUn;b(222,1,{222:1},jD),w(O4,"RectangleStripOverlapRemover/RectangleNode",222),b(1788,1,Yn,r5n),s.td=function(e){a3e(this.a,u(e,222))},w(O4,"RectangleStripOverlapRemover/lambda$1$Type",1788),b(1304,1,lt,Xln),s.ue=function(e,t){return vje(u(e,167),u(t,167))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),b(1307,1,{},Vln),s.Kb=function(e){return u(e,324).a},w(_f,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),b(1308,1,Ve,Qln),s.Mb=function(e){return u(e,323).a},w(_f,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),b(1309,1,Ve,Jln),s.Mb=function(e){return u(e,323).a},w(_f,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),b(1302,1,lt,Yln),s.ue=function(e,t){return Y7e(u(e,167),u(t,167))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),b(1305,1,{},zln),s.Kb=function(e){return u(e,324).a},w(_f,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),b(767,1,lt,xH),s.ue=function(e,t){return nwe(u(e,167),u(t,167))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/MinNumOfExtensionsComparator",767),b(1300,1,lt,Zln),s.ue=function(e,t){return fbe(u(e,321),u(t,321))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/MinPerimeterComparator",1300),b(1301,1,lt,nan),s.ue=function(e,t){return Rpe(u(e,321),u(t,321))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),b(1303,1,lt,ean),s.ue=function(e,t){return yke(u(e,167),u(t,167))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(_f,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),b(1306,1,{},tan),s.Kb=function(e){return u(e,324).a},w(_f,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),b(777,1,{},_G),s.Ce=function(e,t){return aae(this,u(e,46),u(t,167))},w(_f,"SuccessorCombination",777),b(644,1,{},wI),s.Ce=function(e,t){var i;return eme((i=u(e,46),u(t,167),i))},w(_f,"SuccessorJitter",644),b(643,1,{},gI),s.Ce=function(e,t){var i;return q8e((i=u(e,46),u(t,167),i))},w(_f,"SuccessorLineByLine",643),b(568,1,{},Uy),s.Ce=function(e,t){var i;return t9e((i=u(e,46),u(t,167),i))},w(_f,"SuccessorManhattan",568),b(1356,1,{},ian),s.Ce=function(e,t){var i;return d8e((i=u(e,46),u(t,167),i))},w(_f,"SuccessorMaxNormWindingInMathPosSense",1356),b(400,1,{},Hp),s.Ce=function(e,t){return SW(this,e,t)},s.c=!1,s.d=!1,s.e=!1,s.f=!1,w(_f,"SuccessorQuadrantsGeneric",400),b(1357,1,{},ran),s.Kb=function(e){return u(e,324).a},w(_f,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),b(323,22,{3:1,35:1,22:1,323:1},Rj),s.a=!1;var Dk,$k,Fk,xk,TUn=Me(BM,bnn,323,Ie,mae,rse),MUn;b(1298,1,{}),s.Ib=function(){var e,t,i,r,c,o;for(i=" ",e=Q(0),c=0;c=0?"b"+e+"["+k$(this.a)+"]":"b["+k$(this.a)+"]"):"b_"+md(this)},w(fk,"FBendpoint",559),b(282,134,{3:1,282:1,94:1,134:1},Ljn),s.Ib=function(){return k$(this)},w(fk,"FEdge",282),b(231,134,{3:1,231:1,94:1,134:1},TC);var JTe=w(fk,"FGraph",231);b(447,357,{3:1,447:1,357:1,94:1,134:1},RAn),s.Ib=function(){return this.b==null||this.b.length==0?"l["+k$(this.a)+"]":"l_"+this.b},w(fk,"FLabel",447),b(144,357,{3:1,144:1,357:1,94:1,134:1},VCn),s.Ib=function(){return cX(this)},s.b=0,w(fk,"FNode",144),b(2003,1,{}),s.bf=function(e){gZ(this,e)},s.cf=function(){vFn(this)},s.d=0,w(Cnn,"AbstractForceModel",2003),b(631,2003,{631:1},SOn),s.af=function(e,t){var i,r,c,o,f;return bLn(this.f,e,t),c=ki(Qr(t.d),e.d),f=j.Math.sqrt(c.a*c.a+c.b*c.b),r=j.Math.max(0,f-L5(e.e)/2-L5(t.e)/2),i=rDn(this.e,e,t),i>0?o=-che(r,this.c)*i:o=Jce(r,this.b)*u(k(e,(Go(),Q4)),19).a,If(c,o/f),c},s.bf=function(e){gZ(this,e),this.a=u(k(e,(Go(),iS)),19).a,this.c=K(Y(k(e,rS))),this.b=K(Y(k(e,FR)))},s.df=function(e){return e0&&(o-=fie(r,this.a)*i),If(c,o*this.b/f),c},s.bf=function(e){var t,i,r,c,o,f,h;for(gZ(this,e),this.b=K(Y(k(e,(Go(),xR)))),this.c=this.b/u(k(e,iS),19).a,r=e.e.c.length,o=0,c=0,h=new E(e.e);h.a0},s.a=0,s.b=0,s.c=0,w(Cnn,"FruchtermanReingoldModel",632),b(849,1,zs,f4n),s.Qe=function(e){En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,KM),""),"Force Model"),"Determines the model for force calculation."),Mrn),(y1(),Nt)),Arn),Cn((Ho(),Xn))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Tnn),""),"Iterations"),"The number of iterations on the force model."),Q(300)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Mnn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Q(0)),sc),Wi),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,yN),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),Kf),Or),Mi),Cn(Xn)))),Ci(e,yN,KM,UUn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,jN),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Or),Mi),Cn(Xn)))),Ci(e,jN,KM,qUn),w_n((new h4n,e))};var _Un,KUn,Mrn,HUn,qUn,GUn,zUn,UUn;w(H6,"ForceMetaDataProvider",849),b(424,22,{3:1,35:1,22:1,424:1},GG);var $R,tS,Arn=Me(H6,"ForceModelStrategy",424,Ie,z1e,sse),WUn;b(988,1,zs,h4n),s.Qe=function(e){w_n(e)};var XUn,VUn,Srn,iS,Prn,QUn,JUn,YUn,Irn,ZUn,Orn,Drn,nWn,Q4,eWn,FR,$rn,tWn,iWn,rS,xR;w(H6,"ForceOptions",988),b(989,1,{},van),s.$e=function(){var e;return e=new Uq,e},s._e=function(e){},w(H6,"ForceOptions/ForceFactory",989);var Bk,vm,hp,cS;b(850,1,zs,l4n),s.Qe=function(e){En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Snn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(qn(),!1)),(y1(),_i)),si),Cn((Ho(),pi))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Pnn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Or),Mi),pt(Xn,A(M($1,1),z,175,0,[Yf]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Inn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),Frn),Nt),Krn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Onn),""),"Stress Epsilon"),"Termination criterion for the iterative process."),Kf),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Dnn),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Q(nt)),sc),Wi),Cn(Xn)))),ZRn((new a4n,e))};var rWn,cWn,Frn,uWn,sWn,oWn;w(H6,"StressMetaDataProvider",850),b(992,1,zs,a4n),s.Qe=function(e){ZRn(e)};var uS,xrn,Lrn,Nrn,Brn,Rrn,fWn,hWn,lWn,aWn,_rn,dWn;w(H6,"StressOptions",992),b(993,1,{},man),s.$e=function(){var e;return e=new Njn,e},s._e=function(e){},w(H6,"StressOptions/StressFactory",993),b(1128,209,xa,Njn),s.Ze=function(e,t){var i,r,c,o,f;for(le(t,HKn,1),on(sn(hn(e,(C7(),Brn))))?on(sn(hn(e,_rn)))||oC((i=new O9((K0(),new N0(e))),i)):kNn(new Uq,e,kc(t,1)),c=QOn(e),r=fRn(this.a,c),f=r.Kc();f.Ob();)o=u(f.Pb(),231),!(o.e.c.length<=1)&&(gje(this.b,o),Xme(this.b),Yc(o.d,new kan));c=j_n(r),m_n(c),ce(t)},w(GM,"StressLayoutProvider",1128),b(1129,1,Yn,kan),s.td=function(e){EZ(u(e,447))},w(GM,"StressLayoutProvider/lambda$0$Type",1129),b(990,1,{},Umn),s.c=0,s.e=0,s.g=0,w(GM,"StressMajorization",990),b(379,22,{3:1,35:1,22:1,379:1},hO);var LR,NR,BR,Krn=Me(GM,"StressMajorization/Dimension",379,Ie,mle,ose),bWn;b(991,1,lt,o5n),s.ue=function(e,t){return Bue(this.a,u(e,144),u(t,144))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(GM,"StressMajorization/lambda$0$Type",991),b(1229,1,{},YMn),w(rp,"ElkLayered",1229),b(1230,1,Yn,yan),s.td=function(e){V6e(u(e,37))},w(rp,"ElkLayered/lambda$0$Type",1230),b(1231,1,Yn,f5n),s.td=function(e){Rue(this.a,u(e,37))},w(rp,"ElkLayered/lambda$1$Type",1231),b(1263,1,{},Cyn);var wWn,gWn,pWn;w(rp,"GraphConfigurator",1263),b(759,1,Yn,Sq),s.td=function(e){Mxn(this.a,u(e,10))},w(rp,"GraphConfigurator/lambda$0$Type",759),b(760,1,{},NH),s.Kb=function(e){return kJ(),new $n(null,new xn(u(e,29).a,16))},w(rp,"GraphConfigurator/lambda$1$Type",760),b(761,1,Yn,Pq),s.td=function(e){Mxn(this.a,u(e,10))},w(rp,"GraphConfigurator/lambda$2$Type",761),b(1127,209,xa,Vmn),s.Ze=function(e,t){var i;i=Nye(new e9n,e),B(hn(e,(nn(),Vb)))===B((_h(),F1))?w2e(this.a,i,t):lme(this.a,i,t),b_n(new b4n,i)},w(rp,"LayeredLayoutProvider",1127),b(356,22,{3:1,35:1,22:1,356:1},U9);var Vf,$l,Hc,Cc,Ir,Hrn=Me(rp,"LayeredPhases",356,Ie,tde,fse),vWn;b(1651,1,{},NIn),s.i=0;var mWn;w(ak,"ComponentsToCGraphTransformer",1651);var kWn;b(1652,1,{},jan),s.ef=function(e,t){return j.Math.min(e.a!=null?K(e.a):e.c.i,t.a!=null?K(t.a):t.c.i)},s.ff=function(e,t){return j.Math.min(e.a!=null?K(e.a):e.c.i,t.a!=null?K(t.a):t.c.i)},w(ak,"ComponentsToCGraphTransformer/1",1652),b(81,1,{81:1}),s.i=0,s.k=!0,s.o=Vt;var RR=w(z6,"CNode",81);b(460,81,{460:1,81:1},zz,UQ),s.Ib=function(){return""},w(ak,"ComponentsToCGraphTransformer/CRectNode",460),b(1623,1,{},Ean);var _R,KR;w(ak,"OneDimensionalComponentsCompaction",1623),b(1624,1,{},Can),s.Kb=function(e){return hle(u(e,46))},s.Fb=function(e){return this===e},w(ak,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),b(1625,1,{},Tan),s.Kb=function(e){return E2e(u(e,46))},s.Fb=function(e){return this===e},w(ak,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),b(1654,1,{},XCn),w(z6,"CGraph",1654),b(189,1,{189:1},_F),s.b=0,s.c=0,s.e=0,s.g=!0,s.i=Vt,w(z6,"CGroup",189),b(1653,1,{},Pan),s.ef=function(e,t){return j.Math.max(e.a!=null?K(e.a):e.c.i,t.a!=null?K(t.a):t.c.i)},s.ff=function(e,t){return j.Math.max(e.a!=null?K(e.a):e.c.i,t.a!=null?K(t.a):t.c.i)},w(z6,gKn,1653),b(1655,1,{},ALn),s.d=!1;var yWn,HR=w(z6,mKn,1655);b(1656,1,{},Ian),s.Kb=function(e){return OG(),qn(),u(u(e,46).a,81).d.e!=0},s.Fb=function(e){return this===e},w(z6,kKn,1656),b(823,1,{},eW),s.a=!1,s.b=!1,s.c=!1,s.d=!1,w(z6,yKn,823),b(1825,1,{},aCn),w(zM,jKn,1825);var Rk=Et(Na,bKn);b(1826,1,{369:1},qTn),s.Ke=function(e){r7e(this,u(e,466))},w(zM,EKn,1826),b(1827,1,lt,Oan),s.ue=function(e,t){return r1e(u(e,81),u(t,81))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(zM,CKn,1827),b(466,1,{466:1},UG),s.a=!1,w(zM,TKn,466),b(1828,1,lt,Dan),s.ue=function(e,t){return g4e(u(e,466),u(t,466))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(zM,MKn,1828),b(140,1,{140:1},t3,QU),s.Fb=function(e){var t;return e==null||YTe!=Du(e)?!1:(t=u(e,140),pc(this.c,t.c)&&pc(this.d,t.d))},s.Hb=function(){return gT(A(M(Zn,1),rn,1,5,[this.c,this.d]))},s.Ib=function(){return"("+this.c+Ji+this.d+(this.a?"cx":"")+this.b+")"},s.a=!0,s.c=0,s.d=0;var YTe=w(Na,"Point",140);b(405,22,{3:1,35:1,22:1,405:1},Kj);var b0,Kb,kg,Hb,jWn=Me(Na,"Point/Quadrant",405,Ie,kae,hse),EWn;b(1642,1,{},Qmn),s.b=null,s.c=null,s.d=null,s.e=null,s.f=null;var CWn,TWn,MWn,AWn,SWn;w(Na,"RectilinearConvexHull",1642),b(574,1,{369:1},LT),s.Ke=function(e){i0e(this,u(e,140))},s.b=0;var qrn;w(Na,"RectilinearConvexHull/MaximalElementsEventHandler",574),b(1644,1,lt,Aan),s.ue=function(e,t){return Whe(Y(e),Y(t))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),b(1643,1,{369:1},uIn),s.Ke=function(e){p8e(this,u(e,140))},s.a=0,s.b=null,s.c=null,s.d=null,s.e=null,w(Na,"RectilinearConvexHull/RectangleEventHandler",1643),b(1645,1,lt,San),s.ue=function(e,t){return Qle(u(e,140),u(t,140))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/lambda$0$Type",1645),b(1646,1,lt,Man),s.ue=function(e,t){return Jle(u(e,140),u(t,140))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/lambda$1$Type",1646),b(1647,1,lt,$an),s.ue=function(e,t){return Zle(u(e,140),u(t,140))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/lambda$2$Type",1647),b(1648,1,lt,Fan),s.ue=function(e,t){return Yle(u(e,140),u(t,140))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/lambda$3$Type",1648),b(1649,1,lt,xan),s.ue=function(e,t){return e5e(u(e,140),u(t,140))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Na,"RectilinearConvexHull/lambda$4$Type",1649),b(1650,1,{},kMn),w(Na,"Scanline",1650),b(2005,1,{}),w(Hf,"AbstractGraphPlacer",2005),b(325,1,{325:1},ajn),s.mf=function(e){return this.nf(e)?(Tn(this.b,u(k(e,(G(),Gb)),21),e),!0):!1},s.nf=function(e){var t,i,r,c;for(t=u(k(e,(G(),Gb)),21),c=u(ct(at,t),21),r=c.Kc();r.Ob();)if(i=u(r.Pb(),21),!u(ct(this.b,i),15).dc())return!1;return!0};var at;w(Hf,"ComponentGroup",325),b(765,2005,{},Qq),s.of=function(e){var t,i;for(i=new E(this.a);i.av&&(U=0,en+=p+c,p=0),S=f.c,M6(f,U+S.a,en+S.b),Lo(S),i=j.Math.max(i,U+O.a),p=j.Math.max(p,O.b),U+=O.a+c;if(t.f.a=i,t.f.b=en+p,on(sn(k(o,US)))){for(r=new vI,qZ(r,e,c),g=e.Kc();g.Ob();)d=u(g.Pb(),37),ot(Lo(d.c),r.e);ot(Lo(t.f),r.a)}qX(t,e)},w(Hf,"SimpleRowGraphPlacer",1291),b(1292,1,lt,Ban),s.ue=function(e,t){return Zbe(u(e,37),u(t,37))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Hf,"SimpleRowGraphPlacer/1",1292);var IWn;b(1262,1,Rf,Ran),s.Lb=function(e){var t;return t=u(k(u(e,243).b,(nn(),Tr)),74),!!t&&t.b!=0},s.Fb=function(e){return this===e},s.Mb=function(e){var t;return t=u(k(u(e,243).b,(nn(),Tr)),74),!!t&&t.b!=0},w(UM,"CompoundGraphPostprocessor/1",1262),b(1261,1,xt,t9n),s.pf=function(e,t){eFn(this,u(e,37),t)},w(UM,"CompoundGraphPreprocessor",1261),b(441,1,{441:1},HDn),s.c=!1,w(UM,"CompoundGraphPreprocessor/ExternalPort",441),b(243,1,{243:1},EE),s.Ib=function(){return VO(this.c)+":"+ELn(this.b)},w(UM,"CrossHierarchyEdge",243),b(763,1,lt,Iq),s.ue=function(e,t){return H3e(this,u(e,243),u(t,243))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(UM,"CrossHierarchyEdgeComparator",763),b(299,134,{3:1,299:1,94:1,134:1}),s.p=0,w($c,"LGraphElement",299),b(17,299,{3:1,17:1,299:1,94:1,134:1},Pd),s.Ib=function(){return ELn(this)};var GR=w($c,"LEdge",17);b(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},lV),s.Jc=function(e){$i(this,e)},s.Kc=function(){return new E(this.b)},s.Ib=function(){return this.b.c.length==0?"G-unlayered"+kl(this.a):this.a.c.length==0?"G-layered"+kl(this.b):"G[layerless"+kl(this.a)+", layers"+kl(this.b)+"]"};var OWn=w($c,"LGraph",37),DWn;b(657,1,{}),s.qf=function(){return this.e.n},s.We=function(e){return k(this.e,e)},s.rf=function(){return this.e.o},s.sf=function(){return this.e.p},s.Xe=function(e){return li(this.e,e)},s.tf=function(e){this.e.n.a=e.a,this.e.n.b=e.b},s.uf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},s.vf=function(e){this.e.p=e},w($c,"LGraphAdapters/AbstractLShapeAdapter",657),b(577,1,{839:1},ij),s.wf=function(){var e,t;if(!this.b)for(this.b=nh(this.a.b.c.length),t=new E(this.a.b);t.a0&&SDn((Te(t-1,e.length),e.charCodeAt(t-1)),XKn);)--t;if(o> ",e),UT(i)),De(rc((e.a+="[",e),i.i),"]")),e.a},s.c=!0,s.d=!1;var Xrn,Vrn,Qrn,Jrn,Yrn,Zrn,FWn=w($c,"LPort",11);b(397,1,lh,qp),s.Jc=function(e){$i(this,e)},s.Kc=function(){var e;return e=new E(this.a.e),new h5n(e)},w($c,"LPort/1",397),b(1290,1,yi,h5n),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return u(y(this.a),17).c},s.Ob=function(){return Kr(this.a)},s.Qb=function(){F5(this.a)},w($c,"LPort/1/1",1290),b(359,1,lh,n2),s.Jc=function(e){$i(this,e)},s.Kc=function(){var e;return e=new E(this.a.g),new Oq(e)},w($c,"LPort/2",359),b(762,1,yi,Oq),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return u(y(this.a),17).d},s.Ob=function(){return Kr(this.a)},s.Qb=function(){F5(this.a)},w($c,"LPort/2/1",762),b(1283,1,lh,q7n),s.Jc=function(e){$i(this,e)},s.Kc=function(){return new uf(this)},w($c,"LPort/CombineIter",1283),b(201,1,yi,uf),s.Nb=function(e){Oi(this,e)},s.Qb=function(){d8n()},s.Ob=function(){return E5(this)},s.Pb=function(){return Kr(this.a)?y(this.a):y(this.b)},w($c,"LPort/CombineIter/1",201),b(1285,1,Rf,Kan),s.Lb=function(e){return CCn(e)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).e.c.length!=0},w($c,"LPort/lambda$0$Type",1285),b(1284,1,Rf,Han),s.Lb=function(e){return TCn(e)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).g.c.length!=0},w($c,"LPort/lambda$1$Type",1284),b(1286,1,Rf,qan),s.Lb=function(e){return wu(),u(e,11).j==(J(),Kn)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).j==(J(),Kn)},w($c,"LPort/lambda$2$Type",1286),b(1287,1,Rf,Gan),s.Lb=function(e){return wu(),u(e,11).j==(J(),Vn)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).j==(J(),Vn)},w($c,"LPort/lambda$3$Type",1287),b(1288,1,Rf,zan),s.Lb=function(e){return wu(),u(e,11).j==(J(),ae)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).j==(J(),ae)},w($c,"LPort/lambda$4$Type",1288),b(1289,1,Rf,Uan),s.Lb=function(e){return wu(),u(e,11).j==(J(),Gn)},s.Fb=function(e){return this===e},s.Mb=function(e){return wu(),u(e,11).j==(J(),Gn)},w($c,"LPort/lambda$5$Type",1289),b(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},Rs),s.Jc=function(e){$i(this,e)},s.Kc=function(){return new E(this.a)},s.Ib=function(){return"L_"+Fr(this.b.b,this,0)+kl(this.a)},w($c,"Layer",29),b(1342,1,{},e9n),w(C1,YKn,1342),b(1346,1,{},Wan),s.Kb=function(e){return Pr(u(e,82))},w(C1,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),b(1349,1,{},Xan),s.Kb=function(e){return Pr(u(e,82))},w(C1,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),b(1343,1,Yn,l5n),s.td=function(e){NLn(this.a,u(e,118))},w(C1,ZKn,1343),b(1344,1,Yn,a5n),s.td=function(e){NLn(this.a,u(e,118))},w(C1,nHn,1344),b(1345,1,{},Van),s.Kb=function(e){return new $n(null,new xn(Hhe(u(e,79)),16))},w(C1,eHn,1345),b(1347,1,Ve,d5n),s.Mb=function(e){return qre(this.a,u(e,33))},w(C1,tHn,1347),b(1348,1,{},Qan),s.Kb=function(e){return new $n(null,new xn(qhe(u(e,79)),16))},w(C1,"ElkGraphImporter/lambda$5$Type",1348),b(1350,1,Ve,b5n),s.Mb=function(e){return Gre(this.a,u(e,33))},w(C1,"ElkGraphImporter/lambda$7$Type",1350),b(1351,1,Ve,Jan),s.Mb=function(e){return u1e(u(e,79))},w(C1,"ElkGraphImporter/lambda$8$Type",1351),b(1278,1,{},b4n);var xWn;w(C1,"ElkGraphLayoutTransferrer",1278),b(1279,1,Ve,w5n),s.Mb=function(e){return Due(this.a,u(e,17))},w(C1,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),b(1280,1,Yn,g5n),s.td=function(e){H9(),W(this.a,u(e,17))},w(C1,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),b(1281,1,Ve,p5n),s.Mb=function(e){return pue(this.a,u(e,17))},w(C1,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),b(1282,1,Yn,v5n),s.td=function(e){H9(),W(this.a,u(e,17))},w(C1,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),b(1485,1,xt,Yan),s.pf=function(e,t){mbe(u(e,37),t)},w(Un,"CommentNodeMarginCalculator",1485),b(1486,1,{},Zan),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"CommentNodeMarginCalculator/lambda$0$Type",1486),b(1487,1,Yn,ndn),s.td=function(e){Zye(u(e,10))},w(Un,"CommentNodeMarginCalculator/lambda$1$Type",1487),b(1488,1,xt,edn),s.pf=function(e,t){a7e(u(e,37),t)},w(Un,"CommentPostprocessor",1488),b(1489,1,xt,tdn),s.pf=function(e,t){mCe(u(e,37),t)},w(Un,"CommentPreprocessor",1489),b(1490,1,xt,idn),s.pf=function(e,t){x9e(u(e,37),t)},w(Un,"ConstraintsPostprocessor",1490),b(1491,1,xt,rdn),s.pf=function(e,t){Hbe(u(e,37),t)},w(Un,"EdgeAndLayerConstraintEdgeReverser",1491),b(1492,1,xt,cdn),s.pf=function(e,t){I2e(u(e,37),t)},w(Un,"EndLabelPostprocessor",1492),b(1493,1,{},udn),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"EndLabelPostprocessor/lambda$0$Type",1493),b(1494,1,Ve,sdn),s.Mb=function(e){return C1e(u(e,10))},w(Un,"EndLabelPostprocessor/lambda$1$Type",1494),b(1495,1,Yn,odn),s.td=function(e){p4e(u(e,10))},w(Un,"EndLabelPostprocessor/lambda$2$Type",1495),b(1496,1,xt,fdn),s.pf=function(e,t){u6e(u(e,37),t)},w(Un,"EndLabelPreprocessor",1496),b(1497,1,{},hdn),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"EndLabelPreprocessor/lambda$0$Type",1497),b(1498,1,Yn,wEn),s.td=function(e){ure(this.a,this.b,this.c,u(e,10))},s.a=0,s.b=0,s.c=!1,w(Un,"EndLabelPreprocessor/lambda$1$Type",1498),b(1499,1,Ve,ldn),s.Mb=function(e){return B(k(u(e,70),(nn(),Jf)))===B((sf(),Ev))},w(Un,"EndLabelPreprocessor/lambda$2$Type",1499),b(1500,1,Yn,m5n),s.td=function(e){Ke(this.a,u(e,70))},w(Un,"EndLabelPreprocessor/lambda$3$Type",1500),b(1501,1,Ve,adn),s.Mb=function(e){return B(k(u(e,70),(nn(),Jf)))===B((sf(),cw))},w(Un,"EndLabelPreprocessor/lambda$4$Type",1501),b(1502,1,Yn,k5n),s.td=function(e){Ke(this.a,u(e,70))},w(Un,"EndLabelPreprocessor/lambda$5$Type",1502),b(1551,1,xt,d4n),s.pf=function(e,t){Bge(u(e,37),t)};var LWn;w(Un,"EndLabelSorter",1551),b(1552,1,lt,ddn),s.ue=function(e,t){return bpe(u(e,456),u(t,456))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"EndLabelSorter/1",1552),b(456,1,{456:1},xTn),w(Un,"EndLabelSorter/LabelGroup",456),b(1553,1,{},bdn),s.Kb=function(e){return q9(),new $n(null,new xn(u(e,29).a,16))},w(Un,"EndLabelSorter/lambda$0$Type",1553),b(1554,1,Ve,wdn),s.Mb=function(e){return q9(),u(e,10).k==(Qn(),ti)},w(Un,"EndLabelSorter/lambda$1$Type",1554),b(1555,1,Yn,gdn),s.td=function(e){p5e(u(e,10))},w(Un,"EndLabelSorter/lambda$2$Type",1555),b(1556,1,Ve,pdn),s.Mb=function(e){return q9(),B(k(u(e,70),(nn(),Jf)))===B((sf(),cw))},w(Un,"EndLabelSorter/lambda$3$Type",1556),b(1557,1,Ve,vdn),s.Mb=function(e){return q9(),B(k(u(e,70),(nn(),Jf)))===B((sf(),Ev))},w(Un,"EndLabelSorter/lambda$4$Type",1557),b(1503,1,xt,mdn),s.pf=function(e,t){hje(this,u(e,37))},s.b=0,s.c=0,w(Un,"FinalSplineBendpointsCalculator",1503),b(1504,1,{},kdn),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),b(1505,1,{},ydn),s.Kb=function(e){return new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(Un,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),b(1506,1,Ve,jdn),s.Mb=function(e){return!Xi(u(e,17))},w(Un,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),b(1507,1,Ve,Edn),s.Mb=function(e){return li(u(e,17),(G(),Ua))},w(Un,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),b(1508,1,Yn,y5n),s.td=function(e){Eke(this.a,u(e,128))},w(Un,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),b(1509,1,Yn,Cdn),s.td=function(e){Ax(u(e,17).a)},w(Un,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),b(792,1,xt,Dq),s.pf=function(e,t){iEe(this,u(e,37),t)},w(Un,"GraphTransformer",792),b(511,22,{3:1,35:1,22:1,511:1},zG);var UR,_k,NWn=Me(Un,"GraphTransformer/Mode",511,Ie,U1e,Coe),BWn;b(1510,1,xt,Tdn),s.pf=function(e,t){$8e(u(e,37),t)},w(Un,"HierarchicalNodeResizingProcessor",1510),b(1511,1,xt,Mdn),s.pf=function(e,t){bbe(u(e,37),t)},w(Un,"HierarchicalPortConstraintProcessor",1511),b(1512,1,lt,Adn),s.ue=function(e,t){return Tpe(u(e,10),u(t,10))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"HierarchicalPortConstraintProcessor/NodeComparator",1512),b(1513,1,xt,Sdn),s.pf=function(e,t){Fye(u(e,37),t)},w(Un,"HierarchicalPortDummySizeProcessor",1513),b(1514,1,xt,Pdn),s.pf=function(e,t){O7e(this,u(e,37),t)},s.a=0,w(Un,"HierarchicalPortOrthogonalEdgeRouter",1514),b(1515,1,lt,Idn),s.ue=function(e,t){return Lce(u(e,10),u(t,10))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"HierarchicalPortOrthogonalEdgeRouter/1",1515),b(1516,1,lt,Odn),s.ue=function(e,t){return Qde(u(e,10),u(t,10))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"HierarchicalPortOrthogonalEdgeRouter/2",1516),b(1517,1,xt,Ddn),s.pf=function(e,t){t5e(u(e,37),t)},w(Un,"HierarchicalPortPositionProcessor",1517),b(1518,1,xt,w4n),s.pf=function(e,t){JCe(this,u(e,37))},s.a=0,s.c=0;var sS,oS;w(Un,"HighDegreeNodeLayeringProcessor",1518),b(571,1,{571:1},$dn),s.b=-1,s.d=-1,w(Un,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),b(1519,1,{},Fdn),s.Kb=function(e){return w8(),xr(u(e,10))},s.Fb=function(e){return this===e},w(Un,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),b(1520,1,{},xdn),s.Kb=function(e){return w8(),ni(u(e,10))},s.Fb=function(e){return this===e},w(Un,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),b(1526,1,xt,Ldn),s.pf=function(e,t){oye(this,u(e,37),t)},w(Un,"HyperedgeDummyMerger",1526),b(793,1,{},xU),s.a=!1,s.b=!1,s.c=!1,w(Un,"HyperedgeDummyMerger/MergeState",793),b(1527,1,{},Ndn),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"HyperedgeDummyMerger/lambda$0$Type",1527),b(1528,1,{},Bdn),s.Kb=function(e){return new $n(null,new xn(u(e,10).j,16))},w(Un,"HyperedgeDummyMerger/lambda$1$Type",1528),b(1529,1,Yn,Rdn),s.td=function(e){u(e,11).p=-1},w(Un,"HyperedgeDummyMerger/lambda$2$Type",1529),b(1530,1,xt,_dn),s.pf=function(e,t){uye(u(e,37),t)},w(Un,"HypernodesProcessor",1530),b(1531,1,xt,Kdn),s.pf=function(e,t){sye(u(e,37),t)},w(Un,"InLayerConstraintProcessor",1531),b(1532,1,xt,Hdn),s.pf=function(e,t){Nbe(u(e,37),t)},w(Un,"InnermostNodeMarginCalculator",1532),b(1533,1,xt,qdn),s.pf=function(e,t){bCe(this,u(e,37))},s.a=Vt,s.b=Vt,s.c=Ft,s.d=Ft;var ZTe=w(Un,"InteractiveExternalPortPositioner",1533);b(1534,1,{},Gdn),s.Kb=function(e){return u(e,17).d.i},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$0$Type",1534),b(1535,1,{},j5n),s.Kb=function(e){return Rce(this.a,Y(e))},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$1$Type",1535),b(1536,1,{},zdn),s.Kb=function(e){return u(e,17).c.i},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$2$Type",1536),b(1537,1,{},E5n),s.Kb=function(e){return _ce(this.a,Y(e))},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$3$Type",1537),b(1538,1,{},C5n),s.Kb=function(e){return Pue(this.a,Y(e))},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$4$Type",1538),b(1539,1,{},T5n),s.Kb=function(e){return Iue(this.a,Y(e))},s.Fb=function(e){return this===e},w(Un,"InteractiveExternalPortPositioner/lambda$5$Type",1539),b(77,22,{3:1,35:1,22:1,77:1,234:1},zt),s.Kf=function(){switch(this.g){case 15:return new awn;case 22:return new dwn;case 47:return new gwn;case 28:case 35:return new t0n;case 32:return new Yan;case 42:return new edn;case 1:return new tdn;case 41:return new idn;case 56:return new Dq((B3(),_k));case 0:return new Dq((B3(),UR));case 2:return new rdn;case 54:return new cdn;case 33:return new fdn;case 51:return new mdn;case 55:return new Tdn;case 13:return new Mdn;case 38:return new Sdn;case 44:return new Pdn;case 40:return new Ddn;case 9:return new w4n;case 49:return new ejn;case 37:return new Ldn;case 43:return new _dn;case 27:return new Kdn;case 30:return new Hdn;case 3:return new qdn;case 18:return new Wdn;case 29:return new Xdn;case 5:return new g4n;case 50:return new Udn;case 34:return new p4n;case 36:return new i0n;case 52:return new d4n;case 11:return new c0n;case 7:return new m4n;case 39:return new u0n;case 45:return new s0n;case 16:return new o0n;case 10:return new f0n;case 48:return new l0n;case 21:return new a0n;case 23:return new WI((_d(),_m));case 8:return new b0n;case 12:return new g0n;case 4:return new p0n;case 19:return new E4n;case 17:return new A0n;case 53:return new S0n;case 6:return new _0n;case 25:return new c9n;case 46:return new $0n;case 31:return new Rjn;case 14:return new X0n;case 26:return new mwn;case 20:return new Z0n;case 24:return new WI((_d(),aP));default:throw T(new Hn(AN+(this.f!=null?this.f:""+this.g)))}};var ncn,ecn,tcn,icn,rcn,ccn,ucn,scn,ocn,fcn,mm,fS,hS,hcn,lcn,acn,dcn,bcn,wcn,gcn,km,pcn,vcn,mcn,kcn,ycn,WR,lS,aS,jcn,dS,bS,wS,J4,Y4,Z4,Ecn,gS,pS,Ccn,vS,mS,Tcn,Mcn,Acn,Scn,kS,XR,Kk,yS,jS,ES,CS,Pcn,Icn,Ocn,Dcn,nMe=Me(Un,Fnn,77,Ie,PNn,Eoe),RWn;b(1540,1,xt,Wdn),s.pf=function(e,t){gCe(u(e,37),t)},w(Un,"InvertedPortProcessor",1540),b(1541,1,xt,Xdn),s.pf=function(e,t){gke(u(e,37),t)},w(Un,"LabelAndNodeSizeProcessor",1541),b(1542,1,Ve,Vdn),s.Mb=function(e){return u(e,10).k==(Qn(),ti)},w(Un,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),b(1543,1,Ve,Qdn),s.Mb=function(e){return u(e,10).k==(Qn(),Xt)},w(Un,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),b(1544,1,Yn,gEn),s.td=function(e){sre(this.b,this.a,this.c,u(e,10))},s.a=!1,s.c=!1,w(Un,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),b(1545,1,xt,g4n),s.pf=function(e,t){_Ee(u(e,37),t)};var _Wn;w(Un,"LabelDummyInserter",1545),b(1546,1,Rf,Jdn),s.Lb=function(e){return B(k(u(e,70),(nn(),Jf)))===B((sf(),jv))},s.Fb=function(e){return this===e},s.Mb=function(e){return B(k(u(e,70),(nn(),Jf)))===B((sf(),jv))},w(Un,"LabelDummyInserter/1",1546),b(1547,1,xt,Udn),s.pf=function(e,t){Hje(u(e,37),t)},w(Un,"LabelDummyRemover",1547),b(1548,1,Ve,Ydn),s.Mb=function(e){return on(sn(k(u(e,70),(nn(),L_))))},w(Un,"LabelDummyRemover/lambda$0$Type",1548),b(1359,1,xt,p4n),s.pf=function(e,t){pEe(this,u(e,37),t)},s.a=null;var VR;w(Un,"LabelDummySwitcher",1359),b(286,1,{286:1},ABn),s.c=0,s.d=null,s.f=0,w(Un,"LabelDummySwitcher/LabelDummyInfo",286),b(1360,1,{},Zdn),s.Kb=function(e){return x2(),new $n(null,new xn(u(e,29).a,16))},w(Un,"LabelDummySwitcher/lambda$0$Type",1360),b(1361,1,Ve,n0n),s.Mb=function(e){return x2(),u(e,10).k==(Qn(),Qu)},w(Un,"LabelDummySwitcher/lambda$1$Type",1361),b(1362,1,{},S5n),s.Kb=function(e){return vue(this.a,u(e,10))},w(Un,"LabelDummySwitcher/lambda$2$Type",1362),b(1363,1,Yn,P5n),s.td=function(e){phe(this.a,u(e,286))},w(Un,"LabelDummySwitcher/lambda$3$Type",1363),b(1364,1,lt,e0n),s.ue=function(e,t){return zfe(u(e,286),u(t,286))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"LabelDummySwitcher/lambda$4$Type",1364),b(791,1,xt,t0n),s.pf=function(e,t){Sde(u(e,37),t)},w(Un,"LabelManagementProcessor",791),b(1549,1,xt,i0n),s.pf=function(e,t){Z8e(u(e,37),t)},w(Un,"LabelSideSelector",1549),b(1550,1,Ve,r0n),s.Mb=function(e){return on(sn(k(u(e,70),(nn(),L_))))},w(Un,"LabelSideSelector/lambda$0$Type",1550),b(1558,1,xt,c0n),s.pf=function(e,t){xye(u(e,37),t)},w(Un,"LayerConstraintPostprocessor",1558),b(1559,1,xt,m4n),s.pf=function(e,t){Vme(u(e,37),t)};var $cn;w(Un,"LayerConstraintPreprocessor",1559),b(360,22,{3:1,35:1,22:1,360:1},Hj);var Hk,TS,MS,QR,KWn=Me(Un,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Ie,yae,bse),HWn;b(1560,1,xt,u0n),s.pf=function(e,t){Rje(u(e,37),t)},w(Un,"LayerSizeAndGraphHeightCalculator",1560),b(1561,1,xt,s0n),s.pf=function(e,t){H9e(u(e,37),t)},w(Un,"LongEdgeJoiner",1561),b(1562,1,xt,o0n),s.pf=function(e,t){kje(u(e,37),t)},w(Un,"LongEdgeSplitter",1562),b(1563,1,xt,f0n),s.pf=function(e,t){kEe(this,u(e,37),t)},s.d=0,s.e=0,s.i=0,s.j=0,s.k=0,s.n=0,w(Un,"NodePromotion",1563),b(1564,1,{},h0n),s.Kb=function(e){return u(e,46),qn(),!0},s.Fb=function(e){return this===e},w(Un,"NodePromotion/lambda$0$Type",1564),b(1565,1,{},M5n),s.Kb=function(e){return Bhe(this.a,u(e,46))},s.Fb=function(e){return this===e},s.a=0,w(Un,"NodePromotion/lambda$1$Type",1565),b(1566,1,{},A5n),s.Kb=function(e){return Rhe(this.a,u(e,46))},s.Fb=function(e){return this===e},s.a=0,w(Un,"NodePromotion/lambda$2$Type",1566),b(1567,1,xt,l0n),s.pf=function(e,t){GCe(u(e,37),t)},w(Un,"NorthSouthPortPostprocessor",1567),b(1568,1,xt,a0n),s.pf=function(e,t){PCe(u(e,37),t)},w(Un,"NorthSouthPortPreprocessor",1568),b(1569,1,lt,d0n),s.ue=function(e,t){return rwe(u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"NorthSouthPortPreprocessor/lambda$0$Type",1569),b(1570,1,xt,b0n),s.pf=function(e,t){Uke(u(e,37),t)},w(Un,"PartitionMidprocessor",1570),b(1571,1,Ve,w0n),s.Mb=function(e){return li(u(e,10),(nn(),av))},w(Un,"PartitionMidprocessor/lambda$0$Type",1571),b(1572,1,Yn,I5n),s.td=function(e){s1e(this.a,u(e,10))},w(Un,"PartitionMidprocessor/lambda$1$Type",1572),b(1573,1,xt,g0n),s.pf=function(e,t){o8e(u(e,37),t)},w(Un,"PartitionPostprocessor",1573),b(1574,1,xt,p0n),s.pf=function(e,t){vme(u(e,37),t)},w(Un,"PartitionPreprocessor",1574),b(1575,1,Ve,v0n),s.Mb=function(e){return li(u(e,10),(nn(),av))},w(Un,"PartitionPreprocessor/lambda$0$Type",1575),b(1576,1,{},m0n),s.Kb=function(e){return new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(Un,"PartitionPreprocessor/lambda$1$Type",1576),b(1577,1,Ve,k0n),s.Mb=function(e){return lpe(u(e,17))},w(Un,"PartitionPreprocessor/lambda$2$Type",1577),b(1578,1,Yn,y0n),s.td=function(e){bwe(u(e,17))},w(Un,"PartitionPreprocessor/lambda$3$Type",1578),b(1579,1,xt,E4n),s.pf=function(e,t){Ike(u(e,37),t)};var Fcn,qWn,GWn,zWn,xcn,Lcn;w(Un,"PortListSorter",1579),b(1580,1,{},j0n),s.Kb=function(e){return V3(),u(e,11).e},w(Un,"PortListSorter/lambda$0$Type",1580),b(1581,1,{},E0n),s.Kb=function(e){return V3(),u(e,11).g},w(Un,"PortListSorter/lambda$1$Type",1581),b(1582,1,lt,C0n),s.ue=function(e,t){return KAn(u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"PortListSorter/lambda$2$Type",1582),b(1583,1,lt,T0n),s.ue=function(e,t){return x3e(u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"PortListSorter/lambda$3$Type",1583),b(1584,1,lt,M0n),s.ue=function(e,t){return QBn(u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"PortListSorter/lambda$4$Type",1584),b(1585,1,xt,A0n),s.pf=function(e,t){qme(u(e,37),t)},w(Un,"PortSideProcessor",1585),b(1586,1,xt,S0n),s.pf=function(e,t){G7e(u(e,37),t)},w(Un,"ReversedEdgeRestorer",1586),b(1591,1,xt,c9n),s.pf=function(e,t){m3e(this,u(e,37),t)},w(Un,"SelfLoopPortRestorer",1591),b(1592,1,{},P0n),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"SelfLoopPortRestorer/lambda$0$Type",1592),b(1593,1,Ve,I0n),s.Mb=function(e){return u(e,10).k==(Qn(),ti)},w(Un,"SelfLoopPortRestorer/lambda$1$Type",1593),b(1594,1,Ve,O0n),s.Mb=function(e){return li(u(e,10),(G(),fv))},w(Un,"SelfLoopPortRestorer/lambda$2$Type",1594),b(1595,1,{},D0n),s.Kb=function(e){return u(k(u(e,10),(G(),fv)),403)},w(Un,"SelfLoopPortRestorer/lambda$3$Type",1595),b(1596,1,Yn,O5n),s.td=function(e){S5e(this.a,u(e,403))},w(Un,"SelfLoopPortRestorer/lambda$4$Type",1596),b(794,1,Yn,RH),s.td=function(e){q5e(u(e,101))},w(Un,"SelfLoopPortRestorer/lambda$5$Type",794),b(1597,1,xt,$0n),s.pf=function(e,t){Spe(u(e,37),t)},w(Un,"SelfLoopPostProcessor",1597),b(1598,1,{},F0n),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"SelfLoopPostProcessor/lambda$0$Type",1598),b(1599,1,Ve,x0n),s.Mb=function(e){return u(e,10).k==(Qn(),ti)},w(Un,"SelfLoopPostProcessor/lambda$1$Type",1599),b(1600,1,Ve,L0n),s.Mb=function(e){return li(u(e,10),(G(),fv))},w(Un,"SelfLoopPostProcessor/lambda$2$Type",1600),b(1601,1,Yn,N0n),s.td=function(e){x4e(u(e,10))},w(Un,"SelfLoopPostProcessor/lambda$3$Type",1601),b(1602,1,{},B0n),s.Kb=function(e){return new $n(null,new xn(u(e,101).f,1))},w(Un,"SelfLoopPostProcessor/lambda$4$Type",1602),b(1603,1,Yn,D5n),s.td=function(e){Cae(this.a,u(e,409))},w(Un,"SelfLoopPostProcessor/lambda$5$Type",1603),b(1604,1,Ve,R0n),s.Mb=function(e){return!!u(e,101).i},w(Un,"SelfLoopPostProcessor/lambda$6$Type",1604),b(1605,1,Yn,$5n),s.td=function(e){oie(this.a,u(e,101))},w(Un,"SelfLoopPostProcessor/lambda$7$Type",1605),b(1587,1,xt,_0n),s.pf=function(e,t){y9e(u(e,37),t)},w(Un,"SelfLoopPreProcessor",1587),b(1588,1,{},K0n),s.Kb=function(e){return new $n(null,new xn(u(e,101).f,1))},w(Un,"SelfLoopPreProcessor/lambda$0$Type",1588),b(1589,1,{},H0n),s.Kb=function(e){return u(e,409).a},w(Un,"SelfLoopPreProcessor/lambda$1$Type",1589),b(1590,1,Yn,q0n),s.td=function(e){dce(u(e,17))},w(Un,"SelfLoopPreProcessor/lambda$2$Type",1590),b(1606,1,xt,Rjn),s.pf=function(e,t){v5e(this,u(e,37),t)},w(Un,"SelfLoopRouter",1606),b(1607,1,{},G0n),s.Kb=function(e){return new $n(null,new xn(u(e,29).a,16))},w(Un,"SelfLoopRouter/lambda$0$Type",1607),b(1608,1,Ve,z0n),s.Mb=function(e){return u(e,10).k==(Qn(),ti)},w(Un,"SelfLoopRouter/lambda$1$Type",1608),b(1609,1,Ve,U0n),s.Mb=function(e){return li(u(e,10),(G(),fv))},w(Un,"SelfLoopRouter/lambda$2$Type",1609),b(1610,1,{},W0n),s.Kb=function(e){return u(k(u(e,10),(G(),fv)),403)},w(Un,"SelfLoopRouter/lambda$3$Type",1610),b(1611,1,Yn,x7n),s.td=function(e){Yhe(this.a,this.b,u(e,403))},w(Un,"SelfLoopRouter/lambda$4$Type",1611),b(1612,1,xt,X0n),s.pf=function(e,t){K8e(u(e,37),t)},w(Un,"SemiInteractiveCrossMinProcessor",1612),b(1613,1,Ve,V0n),s.Mb=function(e){return u(e,10).k==(Qn(),ti)},w(Un,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),b(1614,1,Ve,Q0n),s.Mb=function(e){return eCn(u(e,10))._b((nn(),Zb))},w(Un,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),b(1615,1,lt,J0n),s.ue=function(e,t){return gbe(u(e,10),u(t,10))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Un,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),b(1616,1,{},Y0n),s.Ce=function(e,t){return w1e(u(e,10),u(t,10))},w(Un,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),b(1618,1,xt,Z0n),s.pf=function(e,t){Lye(u(e,37),t)},w(Un,"SortByInputModelProcessor",1618),b(1619,1,Ve,nbn),s.Mb=function(e){return u(e,11).g.c.length!=0},w(Un,"SortByInputModelProcessor/lambda$0$Type",1619),b(1620,1,Yn,F5n),s.td=function(e){X5e(this.a,u(e,11))},w(Un,"SortByInputModelProcessor/lambda$1$Type",1620),b(1693,803,{},QIn),s.Me=function(e){var t,i,r,c;switch(this.c=e,this.a.g){case 2:t=new X,Rt(gt(new $n(null,new xn(this.c.a.b,16)),new bbn),new _7n(this,t)),O7(this,new ibn),Yc(t,new rbn),t.c=F(Zn,rn,1,0,5,1),Rt(gt(new $n(null,new xn(this.c.a.b,16)),new cbn),new L5n(t)),O7(this,new ubn),Yc(t,new sbn),t.c=F(Zn,rn,1,0,5,1),i=myn(fOn(YE(new $n(null,new xn(this.c.a.b,16)),new N5n(this))),new obn),Rt(new $n(null,new xn(this.c.a.a,16)),new N7n(i,t)),O7(this,new hbn),Yc(t,new ebn),t.c=F(Zn,rn,1,0,5,1);break;case 3:r=new X,O7(this,new tbn),c=myn(fOn(YE(new $n(null,new xn(this.c.a.b,16)),new x5n(this))),new fbn),Rt(gt(new $n(null,new xn(this.c.a.b,16)),new lbn),new R7n(c,r)),O7(this,new abn),Yc(r,new dbn),r.c=F(Zn,rn,1,0,5,1);break;default:throw T(new Gmn)}},s.b=0,w(Qt,"EdgeAwareScanlineConstraintCalculation",1693),b(1694,1,Rf,tbn),s.Lb=function(e){return I(u(e,57).g,145)},s.Fb=function(e){return this===e},s.Mb=function(e){return I(u(e,57).g,145)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),b(1695,1,{},x5n),s.Fe=function(e){return A6e(this.a,u(e,57))},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),b(1703,1,DM,L7n),s.Vd=function(){g6(this.a,this.b,-1)},s.b=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),b(1705,1,Rf,ibn),s.Lb=function(e){return I(u(e,57).g,145)},s.Fb=function(e){return this===e},s.Mb=function(e){return I(u(e,57).g,145)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),b(1706,1,Yn,rbn),s.td=function(e){u(e,365).Vd()},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),b(1707,1,Ve,cbn),s.Mb=function(e){return I(u(e,57).g,10)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),b(1709,1,Yn,L5n),s.td=function(e){n2e(this.a,u(e,57))},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),b(1708,1,DM,G7n),s.Vd=function(){g6(this.b,this.a,-1)},s.a=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),b(1710,1,Rf,ubn),s.Lb=function(e){return I(u(e,57).g,10)},s.Fb=function(e){return this===e},s.Mb=function(e){return I(u(e,57).g,10)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),b(1711,1,Yn,sbn),s.td=function(e){u(e,365).Vd()},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),b(1712,1,{},N5n),s.Fe=function(e){return S6e(this.a,u(e,57))},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),b(1713,1,{},obn),s.De=function(){return 0},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),b(1696,1,{},fbn),s.De=function(){return 0},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),b(1715,1,Yn,N7n),s.td=function(e){xfe(this.a,this.b,u(e,307))},s.a=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),b(1714,1,DM,B7n),s.Vd=function(){uNn(this.a,this.b,-1)},s.b=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),b(1716,1,Rf,hbn),s.Lb=function(e){return u(e,57),!0},s.Fb=function(e){return this===e},s.Mb=function(e){return u(e,57),!0},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),b(1717,1,Yn,ebn),s.td=function(e){u(e,365).Vd()},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),b(1697,1,Ve,lbn),s.Mb=function(e){return I(u(e,57).g,10)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),b(1699,1,Yn,R7n),s.td=function(e){Lfe(this.a,this.b,u(e,57))},s.a=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),b(1698,1,DM,z7n),s.Vd=function(){g6(this.b,this.a,-1)},s.a=0,w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),b(1700,1,Rf,abn),s.Lb=function(e){return u(e,57),!0},s.Fb=function(e){return this===e},s.Mb=function(e){return u(e,57),!0},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),b(1701,1,Yn,dbn),s.td=function(e){u(e,365).Vd()},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),b(1702,1,Ve,bbn),s.Mb=function(e){return I(u(e,57).g,145)},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),b(1704,1,Yn,_7n),s.td=function(e){$0e(this.a,this.b,u(e,57))},w(Qt,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),b(1521,1,xt,ejn),s.pf=function(e,t){Aje(this,u(e,37),t)};var UWn;w(Qt,"HorizontalGraphCompactor",1521),b(1522,1,{},B5n),s.Oe=function(e,t){var i,r,c;return YX(e,t)||(i=$w(e),r=$w(t),i&&i.k==(Qn(),Xt)||r&&r.k==(Qn(),Xt))?0:(c=u(k(this.a.a,(G(),Ig)),304),Kce(c,i?i.k:(Qn(),gi),r?r.k:(Qn(),gi)))},s.Pe=function(e,t){var i,r,c;return YX(e,t)?1:(i=$w(e),r=$w(t),c=u(k(this.a.a,(G(),Ig)),304),Wz(c,i?i.k:(Qn(),gi),r?r.k:(Qn(),gi)))},w(Qt,"HorizontalGraphCompactor/1",1522),b(1523,1,{},wbn),s.Ne=function(e,t){return Qv(),e.a.i==0},w(Qt,"HorizontalGraphCompactor/lambda$0$Type",1523),b(1524,1,{},R5n),s.Ne=function(e,t){return l1e(this.a,e,t)},w(Qt,"HorizontalGraphCompactor/lambda$1$Type",1524),b(1664,1,{},xPn);var WWn,XWn;w(Qt,"LGraphToCGraphTransformer",1664),b(1672,1,Ve,gbn),s.Mb=function(e){return e!=null},w(Qt,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),b(1665,1,{},pbn),s.Kb=function(e){return wo(),Lr(k(u(u(e,57).g,10),(G(),rt)))},w(Qt,"LGraphToCGraphTransformer/lambda$0$Type",1665),b(1666,1,{},vbn),s.Kb=function(e){return wo(),BDn(u(u(e,57).g,145))},w(Qt,"LGraphToCGraphTransformer/lambda$1$Type",1666),b(1675,1,Ve,mbn),s.Mb=function(e){return wo(),I(u(e,57).g,10)},w(Qt,"LGraphToCGraphTransformer/lambda$10$Type",1675),b(1676,1,Yn,kbn),s.td=function(e){h1e(u(e,57))},w(Qt,"LGraphToCGraphTransformer/lambda$11$Type",1676),b(1677,1,Ve,ybn),s.Mb=function(e){return wo(),I(u(e,57).g,145)},w(Qt,"LGraphToCGraphTransformer/lambda$12$Type",1677),b(1681,1,Yn,jbn),s.td=function(e){wge(u(e,57))},w(Qt,"LGraphToCGraphTransformer/lambda$13$Type",1681),b(1678,1,Yn,_5n),s.td=function(e){Rre(this.a,u(e,8))},s.a=0,w(Qt,"LGraphToCGraphTransformer/lambda$14$Type",1678),b(1679,1,Yn,K5n),s.td=function(e){Kre(this.a,u(e,110))},s.a=0,w(Qt,"LGraphToCGraphTransformer/lambda$15$Type",1679),b(1680,1,Yn,H5n),s.td=function(e){_re(this.a,u(e,8))},s.a=0,w(Qt,"LGraphToCGraphTransformer/lambda$16$Type",1680),b(1682,1,{},Ebn),s.Kb=function(e){return wo(),new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(Qt,"LGraphToCGraphTransformer/lambda$17$Type",1682),b(1683,1,Ve,Cbn),s.Mb=function(e){return wo(),Xi(u(e,17))},w(Qt,"LGraphToCGraphTransformer/lambda$18$Type",1683),b(1684,1,Yn,q5n),s.td=function(e){y0e(this.a,u(e,17))},w(Qt,"LGraphToCGraphTransformer/lambda$19$Type",1684),b(1668,1,Yn,G5n),s.td=function(e){eae(this.a,u(e,145))},w(Qt,"LGraphToCGraphTransformer/lambda$2$Type",1668),b(1685,1,{},Tbn),s.Kb=function(e){return wo(),new $n(null,new xn(u(e,29).a,16))},w(Qt,"LGraphToCGraphTransformer/lambda$20$Type",1685),b(1686,1,{},Mbn),s.Kb=function(e){return wo(),new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(Qt,"LGraphToCGraphTransformer/lambda$21$Type",1686),b(1687,1,{},Abn),s.Kb=function(e){return wo(),u(k(u(e,17),(G(),Ua)),15)},w(Qt,"LGraphToCGraphTransformer/lambda$22$Type",1687),b(1688,1,Ve,Sbn),s.Mb=function(e){return qce(u(e,15))},w(Qt,"LGraphToCGraphTransformer/lambda$23$Type",1688),b(1689,1,Yn,z5n),s.td=function(e){v6e(this.a,u(e,15))},w(Qt,"LGraphToCGraphTransformer/lambda$24$Type",1689),b(1667,1,Yn,K7n),s.td=function(e){Hae(this.a,this.b,u(e,145))},w(Qt,"LGraphToCGraphTransformer/lambda$3$Type",1667),b(1669,1,{},Pbn),s.Kb=function(e){return wo(),new $n(null,new xn(u(e,29).a,16))},w(Qt,"LGraphToCGraphTransformer/lambda$4$Type",1669),b(1670,1,{},Ibn),s.Kb=function(e){return wo(),new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(Qt,"LGraphToCGraphTransformer/lambda$5$Type",1670),b(1671,1,{},Obn),s.Kb=function(e){return wo(),u(k(u(e,17),(G(),Ua)),15)},w(Qt,"LGraphToCGraphTransformer/lambda$6$Type",1671),b(1673,1,Yn,U5n),s.td=function(e){Q6e(this.a,u(e,15))},w(Qt,"LGraphToCGraphTransformer/lambda$8$Type",1673),b(1674,1,Yn,H7n),s.td=function(e){fce(this.a,this.b,u(e,145))},w(Qt,"LGraphToCGraphTransformer/lambda$9$Type",1674),b(1663,1,{},Dbn),s.Le=function(e){var t,i,r,c,o;for(this.a=e,this.d=new LI,this.c=F(grn,rn,121,this.a.a.a.c.length,0,1),this.b=0,i=new E(this.a.a.a);i.a=C&&(W(o,Q(d)),O=j.Math.max(O,x[d-1]-g),h+=m,S+=x[d-1]-S,g=x[d-1],m=l[d]),m=j.Math.max(m,l[d]),++d;h+=m}v=j.Math.min(1/O,1/t.b/h),v>r&&(r=v,i=o)}return i},s.Wf=function(){return!1},w(qf,"MSDCutIndexHeuristic",802),b(1617,1,xt,mwn),s.pf=function(e,t){Sye(u(e,37),t)},w(qf,"SingleEdgeGraphWrapper",1617),b(227,22,{3:1,35:1,22:1,227:1},i5);var Eg,tv,iv,qb,ym,Cg,rv=Me(lc,"CenterEdgeLabelPlacementStrategy",227,Ie,Rde,pse),uXn;b(422,22,{3:1,35:1,22:1,422:1},WG);var Bcn,s_,Rcn=Me(lc,"ConstraintCalculationStrategy",422,Ie,P1e,vse),sXn;b(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},dO),s.Kf=function(){return pLn(this)},s.Xf=function(){return pLn(this)};var qk,ap,_cn,Kcn=Me(lc,"CrossingMinimizationStrategy",314,Ie,yle,mse),oXn;b(337,22,{3:1,35:1,22:1,337:1},bO);var Hcn,o_,DS,qcn=Me(lc,"CuttingStrategy",337,Ie,jle,jse),fXn;b(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},X9),s.Kf=function(){return iNn(this)},s.Xf=function(){return iNn(this)};var Gcn,f_,jm,h_,Em,zcn=Me(lc,"CycleBreakingStrategy",335,Ie,lde,Ese),hXn;b(419,22,{3:1,35:1,22:1,419:1},XG);var $S,Ucn,Wcn=Me(lc,"DirectionCongruency",419,Ie,S1e,Cse),lXn;b(450,22,{3:1,35:1,22:1,450:1},wO);var cv,l_,Tg,aXn=Me(lc,"EdgeConstraint",450,Ie,Ele,Tse),dXn;b(276,22,{3:1,35:1,22:1,276:1},r5);var a_,d_,b_,w_,FS,g_,Xcn=Me(lc,"EdgeLabelSideSelection",276,Ie,qde,Mse),bXn;b(479,22,{3:1,35:1,22:1,479:1},VG);var xS,Vcn,Qcn=Me(lc,"EdgeStraighteningStrategy",479,Ie,A1e,Ase),wXn;b(274,22,{3:1,35:1,22:1,274:1},c5);var p_,Jcn,Ycn,LS,Zcn,nun,eun=Me(lc,"FixedAlignment",274,Ie,Kde,Sse),gXn;b(275,22,{3:1,35:1,22:1,275:1},u5);var tun,iun,run,cun,Cm,uun,sun=Me(lc,"GraphCompactionStrategy",275,Ie,_de,Pse),pXn;b(256,22,{3:1,35:1,22:1,256:1},H0);var uv,NS,sv,$s,Tm,BS,ov,Mg,RS,Mm,v_=Me(lc,"GraphProperties",256,Ie,Sbe,Ise),vXn;b(292,22,{3:1,35:1,22:1,292:1},gO);var Gk,m_,k_,y_=Me(lc,"GreedySwitchType",292,Ie,Mle,Ose),mXn;b(303,22,{3:1,35:1,22:1,303:1},pO);var dp,zk,Ag,kXn=Me(lc,"InLayerConstraint",303,Ie,Tle,Dse),yXn;b(420,22,{3:1,35:1,22:1,420:1},QG);var j_,oun,fun=Me(lc,"InteractiveReferencePoint",420,Ie,I1e,$se),jXn,hun,bp,p0,_S,lun,aun,KS,dun,Uk,HS,Am,wp,Gb,E_,qS,ec,bun,v0,Mc,C_,T_,Wk,za,m0,gp,wun,pp,Xk,zb,Xo,Ys,M_,Sg,dc,rt,gun,pun,vun,mun,kun,A_,GS,Mu,k0,S_,vp,Vk,mf,Pg,fv,Ig,Og,hv,Ua,yun,P_,I_,mp;b(163,22,{3:1,35:1,22:1,163:1},Q9);var Sm,xl,Pm,Ub,Qk,jun=Me(lc,"LayerConstraint",163,Ie,bde,Fse),EXn;b(848,1,zs,A4n),s.Qe=function(e){En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,xnn),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),Dun),(y1(),Nt)),Wcn),Cn((Ho(),Xn))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Lnn),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(qn(),!1)),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,WM),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Bun),Nt),fun),Cn(Xn)))),Ci(e,WM,IN,bVn),Ci(e,WM,X6,dVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Nnn),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Bnn),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),_i),si),Cn(Xn)))),En(e,new bn(_ie(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Rnn),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),_i),si),Cn(Ya)),A(M(tn,1),q,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,_nn),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),Uun),Nt),non),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Knn),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Q(7)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Hnn),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,qnn),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,IN),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),Oun),Nt),zcn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,wk),nB),"Node Layering Strategy"),"Strategy for node layering."),Kun),Nt),Hsn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Gnn),nB),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),Run),Nt),jun),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,znn),nB),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),Q(-1)),sc),Wi),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Unn),nB),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Q(-1)),sc),Wi),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ON),dHn),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Q(4)),sc),Wi),Cn(Xn)))),Ci(e,ON,wk,yVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,DN),dHn),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Q(2)),sc),Wi),Cn(Xn)))),Ci(e,DN,wk,EVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,$N),bHn),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),_un),Nt),Jsn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,FN),bHn),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Q(0)),sc),Wi),Cn(Xn)))),Ci(e,FN,$N,null),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,xN),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Q(nt)),sc),Wi),Cn(Xn)))),Ci(e,xN,wk,gVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,X6),gk),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),Iun),Nt),Kcn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Wnn),gk),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,LN),gk),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Or),Mi),Cn(Xn)))),Ci(e,LN,uA,HXn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,NN),gk),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),_i),si),Cn(Xn)))),Ci(e,NN,X6,UXn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Xnn),gk),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),Q(-1)),sc),Wi),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Vnn),gk),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Q(-1)),sc),Wi),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Qnn),wHn),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Q(40)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,BN),wHn),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),Pun),Nt),y_),Cn(Xn)))),Ci(e,BN,X6,_Xn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,XM),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),Sun),Nt),y_),Cn(Xn)))),Ci(e,XM,X6,NXn),Ci(e,XM,uA,BXn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,lg),gHn),"Node Placement Strategy"),"Strategy for node placement."),zun),Nt),Usn),Cn(Xn)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,VM),gHn),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),_i),si),Cn(Xn)))),Ci(e,VM,lg,FVn),Ci(e,VM,lg,xVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,RN),pHn),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Hun),Nt),Qcn),Cn(Xn)))),Ci(e,RN,lg,IVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,_N),pHn),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),qun),Nt),eun),Cn(Xn)))),Ci(e,_N,lg,DVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,KN),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Or),Mi),Cn(Xn)))),Ci(e,KN,lg,NVn),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,HN),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),Nt),Z_),Cn(pi)))),Ci(e,HN,lg,KVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,qN),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Gun),Nt),Z_),Cn(Xn)))),Ci(e,qN,lg,_Vn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Jnn),vHn),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),xun),Nt),ion),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ynn),vHn),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Lun),Nt),ron),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,QM),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Nun),Nt),uon),Cn(Xn)))),Ci(e,QM,pk,iVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,JM),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Or),Mi),Cn(Xn)))),Ci(e,JM,pk,cVn),Ci(e,JM,QM,uVn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,GN),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Or),Mi),Cn(Xn)))),Ci(e,GN,pk,ZXn),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Znn),wf),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,nen),wf),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,een),wf),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ten),wf),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ien),aen),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Q(0)),sc),Wi),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ren),aen),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Q(0)),sc),Wi),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,cen),aen),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Q(0)),sc),Wi),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,zN),den),FKn),"Tries to further compact components (disconnected sub-graphs)."),!1),_i),si),Cn(Xn)))),Ci(e,zN,q6,!0),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,uen),mHn),"Post Compaction Strategy"),kHn),Cun),Nt),sun),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,sen),mHn),"Post Compaction Constraint Calculation"),kHn),Eun),Nt),Rcn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,YM),ben),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,UN),ben),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Q(16)),sc),Wi),Cn(Xn)))),Ci(e,UN,YM,!0),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,WN),ben),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Q(5)),sc),Wi),Cn(Xn)))),Ci(e,WN,YM,!0),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Vh),wen),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Vun),Nt),hon),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ZM),wen),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Or),Mi),Cn(Xn)))),Ci(e,ZM,Vh,nQn),Ci(e,ZM,Vh,eQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,nA),wen),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Or),Mi),Cn(Xn)))),Ci(e,nA,Vh,iQn),Ci(e,nA,Vh,rQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,V6),yHn),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),Xun),Nt),qcn),Cn(Xn)))),Ci(e,V6,Vh,hQn),Ci(e,V6,Vh,lQn),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,XN),yHn),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),yf),Ds),Cn(Xn)))),Ci(e,XN,V6,uQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,VN),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),Wun),sc),Wi),Cn(Xn)))),Ci(e,VN,V6,oQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,eA),jHn),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),Qun),Nt),fon),Cn(Xn)))),Ci(e,eA,Vh,EQn),Ci(e,eA,Vh,CQn),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,tA),jHn),"Valid Indices for Wrapping"),null),yf),Ds),Cn(Xn)))),Ci(e,tA,Vh,kQn),Ci(e,tA,Vh,yQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,iA),gen),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),_i),si),Cn(Xn)))),Ci(e,iA,Vh,wQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,rA),gen),"Distance Penalty When Improving Cuts"),null),2),Or),Mi),Cn(Xn)))),Ci(e,rA,Vh,dQn),Ci(e,rA,iA,!0),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,QN),gen),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),_i),si),Cn(Xn)))),Ci(e,QN,Vh,pQn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,oen),eB),"Edge Label Side Selection"),"Method to decide on edge label sides."),Fun),Nt),Xcn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,fen),eB),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),$un),Nt),rv),pt(Xn,A(M($1,1),z,175,0,[D1]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,cA),vk),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),Aun),Nt),Zsn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,hen),vk),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,JN),vk),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),Tun),Nt),zrn),Cn(Xn)))),Ci(e,JN,q6,null),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,len),vk),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),Mun),Nt),Gsn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,YN),vk),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Or),Mi),Cn(Xn)))),Ci(e,YN,cA,null),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ZN),vk),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Or),Mi),Cn(Xn)))),Ci(e,ZN,cA,null),R_n((new I4n,e))};var CXn,TXn,MXn,Eun,AXn,Cun,SXn,Tun,PXn,IXn,OXn,Mun,DXn,$Xn,Aun,FXn,xXn,LXn,Sun,NXn,BXn,RXn,Pun,_Xn,KXn,HXn,qXn,GXn,zXn,UXn,WXn,Iun,XXn,Oun,VXn,Dun,QXn,$un,JXn,Fun,YXn,ZXn,nVn,xun,eVn,Lun,tVn,Nun,iVn,rVn,cVn,uVn,sVn,oVn,fVn,hVn,lVn,aVn,Bun,dVn,bVn,wVn,gVn,pVn,vVn,Run,mVn,kVn,yVn,jVn,EVn,CVn,TVn,_un,MVn,Kun,AVn,SVn,PVn,Hun,IVn,OVn,qun,DVn,$Vn,FVn,xVn,LVn,NVn,BVn,RVn,Gun,_Vn,KVn,HVn,zun,qVn,Uun,GVn,zVn,UVn,WVn,XVn,VVn,QVn,JVn,YVn,ZVn,nQn,eQn,tQn,iQn,rQn,cQn,uQn,sQn,Wun,oQn,fQn,Xun,hQn,lQn,aQn,dQn,bQn,wQn,gQn,pQn,vQn,Vun,mQn,kQn,yQn,jQn,Qun,EQn,CQn;w(lc,"LayeredMetaDataProvider",848),b(986,1,zs,I4n),s.Qe=function(e){R_n(e)};var Qf,O_,zS,Im,US,Jun,WS,kp,XS,Yun,Zun,D_,Ll,$_,Wb,nsn,Jk,F_,esn,TQn,VS,x_,Om,Xb,MQn,ls,tsn,isn,QS,L_,Jf,JS,Qh,rsn,csn,usn,N_,B_,ssn,S1,R_,osn,Vb,fsn,hsn,lsn,YS,Qb,Wa,asn,dsn,Tr,bsn,AQn,qc,ZS,wsn,gsn,psn,__,vsn,nP,msn,ksn,eP,y0,ysn,K_,Dm,jsn,j0,$m,tP,Xa,H_,lv,iP,Va,Esn,Csn,Tsn,av,Msn,SQn,PQn,IQn,OQn,E0,Jb,Lt,P1,DQn,Yb,Asn,dv,Ssn,Zb,$Qn,bv,Psn,yp,FQn,xQn,Yk,q_,Isn,Zk,Mo,Dg,jp,C0,Qa,rP,nw,G_,wv,gv,T0,$g,z_,ny,Fm,xm,U_,Osn,Dsn,$sn,Fsn,W_,xsn,Lsn,Nsn,Bsn,X_,cP;w(lc,"LayeredOptions",986),b(987,1,{},ywn),s.$e=function(){var e;return e=new Vmn,e},s._e=function(e){},w(lc,"LayeredOptions/LayeredFactory",987),b(1372,1,{}),s.a=0;var LQn;w(ac,"ElkSpacings/AbstractSpacingsBuilder",1372),b(779,1372,{},AQ);var uP,NQn;w(lc,"LayeredSpacings/LayeredSpacingsBuilder",779),b(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},s5),s.Kf=function(){return vNn(this)},s.Xf=function(){return vNn(this)};var V_,Rsn,_sn,sP,Q_,Ksn,Hsn=Me(lc,"LayeringStrategy",313,Ie,Hde,xse),BQn;b(378,22,{3:1,35:1,22:1,378:1},vO);var J_,qsn,oP,Gsn=Me(lc,"LongEdgeOrderingStrategy",378,Ie,kle,Lse),RQn;b(197,22,{3:1,35:1,22:1,197:1},Gj);var Fg,xg,fP,Y_,Z_=Me(lc,"NodeFlexibility",197,Ie,Aae,Nse),_Qn;b(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},V9),s.Kf=function(){return tNn(this)},s.Xf=function(){return tNn(this)};var Lm,nK,eK,Nm,zsn,Usn=Me(lc,"NodePlacementStrategy",315,Ie,hde,qse),KQn;b(260,22,{3:1,35:1,22:1,260:1},h2);var Wsn,ey,Xsn,Vsn,ty,Qsn,hP,lP,Jsn=Me(lc,"NodePromotionStrategy",260,Ie,K0e,Rse),HQn;b(339,22,{3:1,35:1,22:1,339:1},mO);var Ysn,Nl,tK,Zsn=Me(lc,"OrderingStrategy",339,Ie,Sle,_se),qQn;b(421,22,{3:1,35:1,22:1,421:1},JG);var iK,rK,non=Me(lc,"PortSortingStrategy",421,Ie,O1e,Kse),GQn;b(452,22,{3:1,35:1,22:1,452:1},kO);var Au,xc,Bm,zQn=Me(lc,"PortType",452,Ie,Ale,Bse),UQn;b(375,22,{3:1,35:1,22:1,375:1},yO);var eon,cK,ton,ion=Me(lc,"SelfLoopDistributionStrategy",375,Ie,Ple,Hse),WQn;b(376,22,{3:1,35:1,22:1,376:1},YG);var iy,uK,ron=Me(lc,"SelfLoopOrderingStrategy",376,Ie,M1e,Gse),XQn;b(304,1,{304:1},KRn),w(lc,"Spacings",304),b(336,22,{3:1,35:1,22:1,336:1},jO);var sK,con,Rm,uon=Me(lc,"SplineRoutingMode",336,Ie,Ole,zse),VQn;b(338,22,{3:1,35:1,22:1,338:1},EO);var oK,son,oon,fon=Me(lc,"ValidifyStrategy",338,Ie,Dle,Use),QQn;b(377,22,{3:1,35:1,22:1,377:1},CO);var ew,fK,pv,hon=Me(lc,"WrappingStrategy",377,Ie,Ile,Wse),JQn;b(1383,1,Ec,O4n),s.Yf=function(e){return u(e,37),YQn},s.pf=function(e,t){jje(this,u(e,37),t)};var YQn;w(fA,"DepthFirstCycleBreaker",1383),b(782,1,Ec,lW),s.Yf=function(e){return u(e,37),ZQn},s.pf=function(e,t){kTe(this,u(e,37),t)},s.Zf=function(e){return u(un(e,_T(this.d,e.c.length)),10)};var ZQn;w(fA,"GreedyCycleBreaker",782),b(1386,782,Ec,Skn),s.Zf=function(e){var t,i,r,c;for(c=null,t=nt,r=new E(e);r.a1&&(on(sn(k(Gi((Ln(0,e.c.length),u(e.c[0],10))),(nn(),Wb))))?aNn(e,this.d,u(this,660)):(Pn(),bi(e,this.d)),DOn(this.e,e))},s.Sf=function(e,t,i,r){var c,o,f,h,l,a,d;for(t!=iCn(i,e.length)&&(o=e[t-(i?1:-1)],LX(this.f,o,i?(ur(),xc):(ur(),Au))),c=e[t][0],d=!r||c.k==(Qn(),Xt),a=cf(e[t]),this.ag(a,d,!1,i),f=0,l=new E(a);l.a"),e0?r$(this.a,e[t-1],e[t]):!i&&t1&&(on(sn(k(Gi((Ln(0,e.c.length),u(e.c[0],10))),(nn(),Wb))))?aNn(e,this.d,this):(Pn(),bi(e,this.d)),on(sn(k(Gi((Ln(0,e.c.length),u(e.c[0],10))),Wb)))||DOn(this.e,e))},w(vu,"ModelOrderBarycenterHeuristic",660),b(1803,1,lt,a6n),s.ue=function(e,t){return L5e(this.a,u(e,10),u(t,10))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(vu,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),b(1403,1,Ec,R4n),s.Yf=function(e){var t;return u(e,37),t=iE(aJn),Ze(t,(Qi(),Hc),(rr(),kS)),t},s.pf=function(e,t){y1e((u(e,37),t))};var aJn;w(vu,"NoCrossingMinimizer",1403),b(796,402,Yen,yG),s.$f=function(e,t,i){var r,c,o,f,h,l,a,d,g,p,v;switch(g=this.g,i.g){case 1:{for(c=0,o=0,d=new E(e.j);d.a1&&(c.j==(J(),Vn)?this.b[e]=!0:c.j==Gn&&e>0&&(this.b[e-1]=!0))},s.f=0,w(gh,"AllCrossingsCounter",1798),b(587,1,{},tT),s.b=0,s.d=0,w(gh,"BinaryIndexedTree",587),b(524,1,{},b8);var don,dP;w(gh,"CrossingsCounter",524),b(1906,1,lt,d6n),s.ue=function(e,t){return Cfe(this.a,u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(gh,"CrossingsCounter/lambda$0$Type",1906),b(1907,1,lt,b6n),s.ue=function(e,t){return Tfe(this.a,u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(gh,"CrossingsCounter/lambda$1$Type",1907),b(1908,1,lt,w6n),s.ue=function(e,t){return Mfe(this.a,u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(gh,"CrossingsCounter/lambda$2$Type",1908),b(1909,1,lt,g6n),s.ue=function(e,t){return Afe(this.a,u(e,11),u(t,11))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(gh,"CrossingsCounter/lambda$3$Type",1909),b(1910,1,Yn,p6n),s.td=function(e){o0e(this.a,u(e,11))},w(gh,"CrossingsCounter/lambda$4$Type",1910),b(1911,1,Ve,v6n),s.Mb=function(e){return jre(this.a,u(e,11))},w(gh,"CrossingsCounter/lambda$5$Type",1911),b(1912,1,Yn,m6n),s.td=function(e){Ckn(this,e)},w(gh,"CrossingsCounter/lambda$6$Type",1912),b(1913,1,Yn,Q7n),s.td=function(e){var t;h3(),ll(this.b,(t=this.a,u(e,11),t))},w(gh,"CrossingsCounter/lambda$7$Type",1913),b(826,1,Rf,UH),s.Lb=function(e){return h3(),li(u(e,11),(G(),Mu))},s.Fb=function(e){return this===e},s.Mb=function(e){return h3(),li(u(e,11),(G(),Mu))},w(gh,"CrossingsCounter/lambda$8$Type",826),b(1905,1,{},k6n),w(gh,"HyperedgeCrossingsCounter",1905),b(467,1,{35:1,467:1},_jn),s.wd=function(e){return cpe(this,u(e,467))},s.b=0,s.c=0,s.e=0,s.f=0;var eMe=w(gh,"HyperedgeCrossingsCounter/Hyperedge",467);b(362,1,{35:1,362:1},nC),s.wd=function(e){return i9e(this,u(e,362))},s.b=0,s.c=0;var dJn=w(gh,"HyperedgeCrossingsCounter/HyperedgeCorner",362);b(523,22,{3:1,35:1,22:1,523:1},ZG);var Km,Hm,bJn=Me(gh,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Ie,D1e,Vse),wJn;b(1405,1,Ec,P4n),s.Yf=function(e){return u(k(u(e,37),(G(),Mc)),21).Hc((or(),$s))?gJn:null},s.pf=function(e,t){C4e(this,u(e,37),t)};var gJn;w(hr,"InteractiveNodePlacer",1405),b(1406,1,Ec,S4n),s.Yf=function(e){return u(k(u(e,37),(G(),Mc)),21).Hc((or(),$s))?pJn:null},s.pf=function(e,t){o3e(this,u(e,37),t)};var pJn,bP,wP;w(hr,"LinearSegmentsNodePlacer",1406),b(257,1,{35:1,257:1},Jq),s.wd=function(e){return Fie(this,u(e,257))},s.Fb=function(e){var t;return I(e,257)?(t=u(e,257),this.b==t.b):!1},s.Hb=function(){return this.b},s.Ib=function(){return"ls"+kl(this.e)},s.a=0,s.b=0,s.c=-1,s.d=-1,s.g=0;var vJn=w(hr,"LinearSegmentsNodePlacer/LinearSegment",257);b(1408,1,Ec,dCn),s.Yf=function(e){return u(k(u(e,37),(G(),Mc)),21).Hc((or(),$s))?mJn:null},s.pf=function(e,t){aTe(this,u(e,37),t)},s.b=0,s.g=0;var mJn;w(hr,"NetworkSimplexPlacer",1408),b(1427,1,lt,Swn),s.ue=function(e,t){return Uc(u(e,19).a,u(t,19).a)},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(hr,"NetworkSimplexPlacer/0methodref$compare$Type",1427),b(1429,1,lt,Pwn),s.ue=function(e,t){return Uc(u(e,19).a,u(t,19).a)},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(hr,"NetworkSimplexPlacer/1methodref$compare$Type",1429),b(649,1,{649:1},J7n);var tMe=w(hr,"NetworkSimplexPlacer/EdgeRep",649);b(401,1,{401:1},qW),s.b=!1;var iMe=w(hr,"NetworkSimplexPlacer/NodeRep",401);b(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},u9n),w(hr,"NetworkSimplexPlacer/Path",508),b(1409,1,{},Iwn),s.Kb=function(e){return u(e,17).d.i.k},w(hr,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),b(1410,1,Ve,Own),s.Mb=function(e){return u(e,267)==(Qn(),gi)},w(hr,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),b(1411,1,{},Dwn),s.Kb=function(e){return u(e,17).d.i},w(hr,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),b(1412,1,Ve,y6n),s.Mb=function(e){return Cjn(f$n(u(e,10)))},w(hr,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),b(1413,1,Ve,$wn),s.Mb=function(e){return dfe(u(e,11))},w(hr,"NetworkSimplexPlacer/lambda$0$Type",1413),b(1414,1,Yn,Y7n),s.td=function(e){hce(this.a,this.b,u(e,11))},w(hr,"NetworkSimplexPlacer/lambda$1$Type",1414),b(1423,1,Yn,j6n),s.td=function(e){I6e(this.a,u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$10$Type",1423),b(1424,1,{},Fwn),s.Kb=function(e){return Zu(),new $n(null,new xn(u(e,29).a,16))},w(hr,"NetworkSimplexPlacer/lambda$11$Type",1424),b(1425,1,Yn,E6n),s.td=function(e){M7e(this.a,u(e,10))},w(hr,"NetworkSimplexPlacer/lambda$12$Type",1425),b(1426,1,{},xwn),s.Kb=function(e){return Zu(),Q(u(e,121).e)},w(hr,"NetworkSimplexPlacer/lambda$13$Type",1426),b(1428,1,{},Lwn),s.Kb=function(e){return Zu(),Q(u(e,121).e)},w(hr,"NetworkSimplexPlacer/lambda$15$Type",1428),b(1430,1,Ve,Nwn),s.Mb=function(e){return Zu(),u(e,401).c.k==(Qn(),ti)},w(hr,"NetworkSimplexPlacer/lambda$17$Type",1430),b(1431,1,Ve,Bwn),s.Mb=function(e){return Zu(),u(e,401).c.j.c.length>1},w(hr,"NetworkSimplexPlacer/lambda$18$Type",1431),b(1432,1,Yn,kTn),s.td=function(e){g2e(this.c,this.b,this.d,this.a,u(e,401))},s.c=0,s.d=0,w(hr,"NetworkSimplexPlacer/lambda$19$Type",1432),b(1415,1,{},Rwn),s.Kb=function(e){return Zu(),new $n(null,new xn(u(e,29).a,16))},w(hr,"NetworkSimplexPlacer/lambda$2$Type",1415),b(1433,1,Yn,C6n),s.td=function(e){oce(this.a,u(e,11))},s.a=0,w(hr,"NetworkSimplexPlacer/lambda$20$Type",1433),b(1434,1,{},_wn),s.Kb=function(e){return Zu(),new $n(null,new xn(u(e,29).a,16))},w(hr,"NetworkSimplexPlacer/lambda$21$Type",1434),b(1435,1,Yn,T6n),s.td=function(e){Ece(this.a,u(e,10))},w(hr,"NetworkSimplexPlacer/lambda$22$Type",1435),b(1436,1,Ve,Kwn),s.Mb=function(e){return Cjn(e)},w(hr,"NetworkSimplexPlacer/lambda$23$Type",1436),b(1437,1,{},Hwn),s.Kb=function(e){return Zu(),new $n(null,new xn(u(e,29).a,16))},w(hr,"NetworkSimplexPlacer/lambda$24$Type",1437),b(1438,1,Ve,M6n),s.Mb=function(e){return Pre(this.a,u(e,10))},w(hr,"NetworkSimplexPlacer/lambda$25$Type",1438),b(1439,1,Yn,Z7n),s.td=function(e){Y5e(this.a,this.b,u(e,10))},w(hr,"NetworkSimplexPlacer/lambda$26$Type",1439),b(1440,1,Ve,qwn),s.Mb=function(e){return Zu(),!Xi(u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$27$Type",1440),b(1441,1,Ve,Gwn),s.Mb=function(e){return Zu(),!Xi(u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$28$Type",1441),b(1442,1,{},A6n),s.Ce=function(e,t){return kce(this.a,u(e,29),u(t,29))},w(hr,"NetworkSimplexPlacer/lambda$29$Type",1442),b(1416,1,{},zwn),s.Kb=function(e){return Zu(),new $n(null,new Cd(new re(ue(ni(u(e,10)).a.Kc(),new Mn))))},w(hr,"NetworkSimplexPlacer/lambda$3$Type",1416),b(1417,1,Ve,Uwn),s.Mb=function(e){return Zu(),sae(u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$4$Type",1417),b(1418,1,Yn,S6n),s.td=function(e){Tye(this.a,u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$5$Type",1418),b(1419,1,{},Wwn),s.Kb=function(e){return Zu(),new $n(null,new xn(u(e,29).a,16))},w(hr,"NetworkSimplexPlacer/lambda$6$Type",1419),b(1420,1,Ve,Xwn),s.Mb=function(e){return Zu(),u(e,10).k==(Qn(),ti)},w(hr,"NetworkSimplexPlacer/lambda$7$Type",1420),b(1421,1,{},Vwn),s.Kb=function(e){return Zu(),new $n(null,new Cd(new re(ue(Kh(u(e,10)).a.Kc(),new Mn))))},w(hr,"NetworkSimplexPlacer/lambda$8$Type",1421),b(1422,1,Ve,Qwn),s.Mb=function(e){return Zu(),sfe(u(e,17))},w(hr,"NetworkSimplexPlacer/lambda$9$Type",1422),b(1404,1,Ec,z4n),s.Yf=function(e){return u(k(u(e,37),(G(),Mc)),21).Hc((or(),$s))?kJn:null},s.pf=function(e,t){uje(u(e,37),t)};var kJn;w(hr,"SimpleNodePlacer",1404),b(180,1,{180:1},tg),s.Ib=function(){var e;return e="",this.c==(Ff(),M0)?e+=Z2:this.c==I1&&(e+=Y2),this.o==(ef(),Ja)?e+=hN:this.o==kf?e+="UP":e+="BALANCED",e},w(Sl,"BKAlignedLayout",180),b(516,22,{3:1,35:1,22:1,516:1},ez);var I1,M0,yJn=Me(Sl,"BKAlignedLayout/HDirection",516,Ie,F1e,Qse),jJn;b(515,22,{3:1,35:1,22:1,515:1},nz);var Ja,kf,EJn=Me(Sl,"BKAlignedLayout/VDirection",515,Ie,x1e,Jse),CJn;b(1634,1,{},nkn),w(Sl,"BKAligner",1634),b(1637,1,{},$Fn),w(Sl,"BKCompactor",1637),b(654,1,{654:1},Jwn),s.a=0,w(Sl,"BKCompactor/ClassEdge",654),b(458,1,{458:1},r9n),s.a=null,s.b=0,w(Sl,"BKCompactor/ClassNode",458),b(1407,1,Ec,Mkn),s.Yf=function(e){return u(k(u(e,37),(G(),Mc)),21).Hc((or(),$s))?TJn:null},s.pf=function(e,t){ATe(this,u(e,37),t)},s.d=!1;var TJn;w(Sl,"BKNodePlacer",1407),b(1635,1,{},Ywn),s.d=0,w(Sl,"NeighborhoodInformation",1635),b(1636,1,lt,P6n),s.ue=function(e,t){return F0e(this,u(e,46),u(t,46))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Sl,"NeighborhoodInformation/NeighborComparator",1636),b(808,1,{}),w(Sl,"ThresholdStrategy",808),b(1763,808,{},f9n),s.bg=function(e,t,i){return this.a.o==(ef(),kf)?Ft:Vt},s.cg=function(){},w(Sl,"ThresholdStrategy/NullThresholdStrategy",1763),b(579,1,{579:1},ekn),s.c=!1,s.d=!1,w(Sl,"ThresholdStrategy/Postprocessable",579),b(1764,808,{},h9n),s.bg=function(e,t,i){var r,c,o;return c=t==i,r=this.a.a[i.p]==t,c||r?(o=e,this.a.c==(Ff(),M0)?(c&&(o=hL(this,t,!0)),!isNaN(o)&&!isFinite(o)&&r&&(o=hL(this,i,!1))):(c&&(o=hL(this,t,!0)),!isNaN(o)&&!isFinite(o)&&r&&(o=hL(this,i,!1))),o):e},s.cg=function(){for(var e,t,i,r,c;this.d.b!=0;)c=u(J1e(this.d),579),r=nRn(this,c),r.a&&(e=r.a,i=on(this.a.f[this.a.g[c.b.p].p]),!(!i&&!Xi(e)&&e.c.i.c==e.d.i.c)&&(t=sNn(this,c),t||Nre(this.e,c)));for(;this.e.a.c.length!=0;)sNn(this,u(pDn(this.e),579))},w(Sl,"ThresholdStrategy/SimpleThresholdStrategy",1764),b(635,1,{635:1,246:1,234:1},Zwn),s.Kf=function(){return AOn(this)},s.Xf=function(){return AOn(this)};var hK;w(uB,"EdgeRouterFactory",635),b(1458,1,Ec,U4n),s.Yf=function(e){return c7e(u(e,37))},s.pf=function(e,t){dje(u(e,37),t)};var MJn,AJn,SJn,PJn,IJn,bon,OJn,DJn;w(uB,"OrthogonalEdgeRouter",1458),b(1451,1,Ec,Akn),s.Yf=function(e){return P4e(u(e,37))},s.pf=function(e,t){$Ce(this,u(e,37),t)};var $Jn,FJn,xJn,LJn,cy,NJn;w(uB,"PolylineEdgeRouter",1451),b(1452,1,Rf,ngn),s.Lb=function(e){return IV(u(e,10))},s.Fb=function(e){return this===e},s.Mb=function(e){return IV(u(e,10))},w(uB,"PolylineEdgeRouter/1",1452),b(1809,1,Ve,egn),s.Mb=function(e){return u(e,129).c==(No(),Bl)},w(zo,"HyperEdgeCycleDetector/lambda$0$Type",1809),b(1810,1,{},tgn),s.Ge=function(e){return u(e,129).d},w(zo,"HyperEdgeCycleDetector/lambda$1$Type",1810),b(1811,1,Ve,ign),s.Mb=function(e){return u(e,129).c==(No(),Bl)},w(zo,"HyperEdgeCycleDetector/lambda$2$Type",1811),b(1812,1,{},rgn),s.Ge=function(e){return u(e,129).d},w(zo,"HyperEdgeCycleDetector/lambda$3$Type",1812),b(1813,1,{},cgn),s.Ge=function(e){return u(e,129).d},w(zo,"HyperEdgeCycleDetector/lambda$4$Type",1813),b(1814,1,{},ugn),s.Ge=function(e){return u(e,129).d},w(zo,"HyperEdgeCycleDetector/lambda$5$Type",1814),b(112,1,{35:1,112:1},n7),s.wd=function(e){return xie(this,u(e,112))},s.Fb=function(e){var t;return I(e,112)?(t=u(e,112),this.g==t.g):!1},s.Hb=function(){return this.g},s.Ib=function(){var e,t,i,r;for(e=new Ju("{"),r=new E(this.n);r.a"+this.b+" ("+Uce(this.c)+")"},s.d=0,w(zo,"HyperEdgeSegmentDependency",129),b(520,22,{3:1,35:1,22:1,520:1},tz);var Bl,tw,BJn=Me(zo,"HyperEdgeSegmentDependency/DependencyType",520,Ie,$1e,Yse),RJn;b(1815,1,{},I6n),w(zo,"HyperEdgeSegmentSplitter",1815),b(1816,1,{},s8n),s.a=0,s.b=0,w(zo,"HyperEdgeSegmentSplitter/AreaRating",1816),b(329,1,{329:1},hD),s.a=0,s.b=0,s.c=0,w(zo,"HyperEdgeSegmentSplitter/FreeArea",329),b(1817,1,lt,bgn),s.ue=function(e,t){return Hue(u(e,112),u(t,112))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(zo,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),b(1818,1,Yn,yTn),s.td=function(e){Wae(this.a,this.d,this.c,this.b,u(e,112))},s.b=0,w(zo,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),b(1819,1,{},wgn),s.Kb=function(e){return new $n(null,new xn(u(e,112).e,16))},w(zo,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),b(1820,1,{},ggn),s.Kb=function(e){return new $n(null,new xn(u(e,112).j,16))},w(zo,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),b(1821,1,{},pgn),s.Fe=function(e){return K(Y(e))},w(zo,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),b(655,1,{},FD),s.a=0,s.b=0,s.c=0,w(zo,"OrthogonalRoutingGenerator",655),b(1638,1,{},vgn),s.Kb=function(e){return new $n(null,new xn(u(e,112).e,16))},w(zo,"OrthogonalRoutingGenerator/lambda$0$Type",1638),b(1639,1,{},mgn),s.Kb=function(e){return new $n(null,new xn(u(e,112).j,16))},w(zo,"OrthogonalRoutingGenerator/lambda$1$Type",1639),b(661,1,{}),w(sB,"BaseRoutingDirectionStrategy",661),b(1807,661,{},l9n),s.dg=function(e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new E(e.n);a.aKf&&(o=d,c=e,r=new fn(g,o),Ke(f.a,r),n0(this,f,c,r,!1),p=e.r,p&&(v=K(Y(qo(p.e,0))),r=new fn(v,o),Ke(f.a,r),n0(this,f,c,r,!1),o=t+p.o*i,c=p,r=new fn(v,o),Ke(f.a,r),n0(this,f,c,r,!1)),r=new fn(C,o),Ke(f.a,r),n0(this,f,c,r,!1)))},s.eg=function(e){return e.i.n.a+e.n.a+e.a.a},s.fg=function(){return J(),ae},s.gg=function(){return J(),Kn},w(sB,"NorthToSouthRoutingStrategy",1807),b(1808,661,{},a9n),s.dg=function(e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C;if(!(e.r&&!e.q))for(d=t-e.o*i,a=new E(e.n);a.aKf&&(o=d,c=e,r=new fn(g,o),Ke(f.a,r),n0(this,f,c,r,!1),p=e.r,p&&(v=K(Y(qo(p.e,0))),r=new fn(v,o),Ke(f.a,r),n0(this,f,c,r,!1),o=t-p.o*i,c=p,r=new fn(v,o),Ke(f.a,r),n0(this,f,c,r,!1)),r=new fn(C,o),Ke(f.a,r),n0(this,f,c,r,!1)))},s.eg=function(e){return e.i.n.a+e.n.a+e.a.a},s.fg=function(){return J(),Kn},s.gg=function(){return J(),ae},w(sB,"SouthToNorthRoutingStrategy",1808),b(1806,661,{},d9n),s.dg=function(e,t,i){var r,c,o,f,h,l,a,d,g,p,v,m,C;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new E(e.n);a.aKf&&(o=d,c=e,r=new fn(o,g),Ke(f.a,r),n0(this,f,c,r,!0),p=e.r,p&&(v=K(Y(qo(p.e,0))),r=new fn(o,v),Ke(f.a,r),n0(this,f,c,r,!0),o=t+p.o*i,c=p,r=new fn(o,v),Ke(f.a,r),n0(this,f,c,r,!0)),r=new fn(o,C),Ke(f.a,r),n0(this,f,c,r,!0)))},s.eg=function(e){return e.i.n.b+e.n.b+e.a.b},s.fg=function(){return J(),Vn},s.gg=function(){return J(),Gn},w(sB,"WestToEastRoutingStrategy",1806),b(813,1,{},jZ),s.Ib=function(){return kl(this.a)},s.b=0,s.c=!1,s.d=!1,s.f=0,w(Fb,"NubSpline",813),b(407,1,{407:1},LNn,eMn),w(Fb,"NubSpline/PolarCP",407),b(1453,1,Ec,TFn),s.Yf=function(e){return vve(u(e,37))},s.pf=function(e,t){YCe(this,u(e,37),t)};var _Jn,KJn,HJn,qJn,GJn;w(Fb,"SplineEdgeRouter",1453),b(268,1,{268:1},MC),s.Ib=function(){return this.a+" ->("+this.c+") "+this.b},s.c=0,w(Fb,"SplineEdgeRouter/Dependency",268),b(455,22,{3:1,35:1,22:1,455:1},iz);var Rl,Lg,zJn=Me(Fb,"SplineEdgeRouter/SideToProcess",455,Ie,L1e,Zse),UJn;b(1454,1,Ve,agn),s.Mb=function(e){return C6(),!u(e,128).o},w(Fb,"SplineEdgeRouter/lambda$0$Type",1454),b(1455,1,{},lgn),s.Ge=function(e){return C6(),u(e,128).v+1},w(Fb,"SplineEdgeRouter/lambda$1$Type",1455),b(1456,1,Yn,tkn),s.td=function(e){ffe(this.a,this.b,u(e,46))},w(Fb,"SplineEdgeRouter/lambda$2$Type",1456),b(1457,1,Yn,ikn),s.td=function(e){hfe(this.a,this.b,u(e,46))},w(Fb,"SplineEdgeRouter/lambda$3$Type",1457),b(128,1,{35:1,128:1},Zxn,SZ),s.wd=function(e){return Lie(this,u(e,128))},s.b=0,s.e=!1,s.f=0,s.g=0,s.j=!1,s.k=!1,s.n=0,s.o=!1,s.p=!1,s.q=!1,s.s=0,s.u=0,s.v=0,s.F=0,w(Fb,"SplineSegment",128),b(459,1,{459:1},dgn),s.a=0,s.b=!1,s.c=!1,s.d=!1,s.e=!1,s.f=0,w(Fb,"SplineSegment/EdgeInformation",459),b(1234,1,{},sgn),w(Q6,Enn,1234),b(1235,1,lt,ogn),s.ue=function(e,t){return U6e(u(e,135),u(t,135))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(Q6,NKn,1235),b(1233,1,{},E8n),w(Q6,"MrTree",1233),b(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},zj),s.Kf=function(){return CLn(this)},s.Xf=function(){return CLn(this)};var gP,qm,uy,Gm,won=Me(Q6,"TreeLayoutPhases",393,Ie,Sae,noe),WJn;b(1130,209,xa,qjn),s.Ze=function(e,t){var i,r,c,o,f,h,l;for(on(sn(hn(e,(Zd(),yon))))||oC((i=new O9((K0(),new N0(e))),i)),f=(h=new AC,Sr(h,e),H(h,(cc(),Wm),e),l=new we,Nke(e,h,l),nye(e,h,l),h),o=Wke(this.a,f),c=new E(o);c.a"+wC(this.c):"e_"+mt(this)},w(J6,"TEdge",188),b(135,134,{3:1,135:1,94:1,134:1},AC),s.Ib=function(){var e,t,i,r,c;for(c=null,r=_e(this.b,0);r.b!=r.d.c;)i=u(Re(r),86),c+=(i.c==null||i.c.length==0?"n_"+i.g:"n_"+i.c)+` -`;for(t=_e(this.a,0);t.b!=t.d.c;)e=u(Re(t),188),c+=(e.b&&e.c?wC(e.b)+"->"+wC(e.c):"e_"+mt(e))+` -`;return c};var rMe=w(J6,"TGraph",135);b(633,502,{3:1,502:1,633:1,94:1,134:1}),w(J6,"TShape",633),b(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},hF),s.Ib=function(){return wC(this)};var cMe=w(J6,"TNode",86);b(255,1,lh,X1),s.Jc=function(e){$i(this,e)},s.Kc=function(){var e;return e=_e(this.a.d,0),new e2(e)},w(J6,"TNode/2",255),b(358,1,yi,e2),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return u(Re(this.a),188).c},s.Ob=function(){return yj(this.a)},s.Qb=function(){HC(this.a)},w(J6,"TNode/2/1",358),b(1840,1,xt,Hjn),s.pf=function(e,t){gye(this,u(e,135),t)},w(up,"FanProcessor",1840),b(327,22,{3:1,35:1,22:1,327:1,234:1},o5),s.Kf=function(){switch(this.g){case 0:return new S9n;case 1:return new Hjn;case 2:return new jgn;case 3:return new kgn;case 4:return new Cgn;case 5:return new Tgn;default:throw T(new Hn(AN+(this.f!=null?this.f:""+this.g)))}};var lK,aK,dK,bK,wK,pP,XJn=Me(up,Fnn,327,Ie,Gde,eoe),VJn;b(1843,1,xt,kgn),s.pf=function(e,t){Yme(this,u(e,135),t)},s.a=0,w(up,"LevelHeightProcessor",1843),b(1844,1,lh,ygn),s.Jc=function(e){$i(this,e)},s.Kc=function(){return Pn(),Zp(),X4},w(up,"LevelHeightProcessor/1",1844),b(1841,1,xt,jgn),s.pf=function(e,t){c6e(this,u(e,135),t)},s.a=0,w(up,"NeighborsProcessor",1841),b(1842,1,lh,Egn),s.Jc=function(e){$i(this,e)},s.Kc=function(){return Pn(),Zp(),X4},w(up,"NeighborsProcessor/1",1842),b(1845,1,xt,Cgn),s.pf=function(e,t){Jme(this,u(e,135),t)},s.a=0,w(up,"NodePositionProcessor",1845),b(1839,1,xt,S9n),s.pf=function(e,t){Eje(this,u(e,135))},w(up,"RootProcessor",1839),b(1846,1,xt,Tgn),s.pf=function(e,t){Dge(u(e,135))},w(up,"Untreeifyer",1846);var sy,zm,QJn,gK,vP,Um,pK,mP,kP,vv,Wm,yP,O1,gon,JJn,vK,iw,mK,pon;b(851,1,zs,G4n),s.Qe=function(e){En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Zen),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),mon),(y1(),Nt)),Mon),Cn((Ho(),Xn))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ntn),""),"Search Order"),"Which search order to use when computing a spanning tree."),von),Nt),Son),Cn(Xn)))),QRn((new q4n,e))};var YJn,von,ZJn,mon;w(lA,"MrTreeMetaDataProvider",851),b(994,1,zs,q4n),s.Qe=function(e){QRn(e)};var nYn,kon,eYn,tYn,iYn,rYn,yon,cYn,jon,uYn,jP,Eon,sYn,Con,oYn;w(lA,"MrTreeOptions",994),b(995,1,{},Mgn),s.$e=function(){var e;return e=new qjn,e},s._e=function(e){},w(lA,"MrTreeOptions/MrtreeFactory",995),b(480,22,{3:1,35:1,22:1,480:1},rz);var kK,Ton,Mon=Me(lA,"OrderWeighting",480,Ie,B1e,toe),fYn;b(425,22,{3:1,35:1,22:1,425:1},cz);var Aon,yK,Son=Me(lA,"TreeifyingOrder",425,Ie,N1e,roe),hYn;b(1459,1,Ec,F4n),s.Yf=function(e){return u(e,135),lYn},s.pf=function(e,t){Obe(this,u(e,135),t)};var lYn;w("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),b(1460,1,Ec,x4n),s.Yf=function(e){return u(e,135),aYn},s.pf=function(e,t){w6e(this,u(e,135),t)};var aYn;w("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),b(1461,1,Ec,$4n),s.Yf=function(e){return u(e,135),dYn},s.pf=function(e,t){D7e(this,u(e,135),t)},s.a=0;var dYn;w("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),b(1462,1,Ec,L4n),s.Yf=function(e){return u(e,135),bYn},s.pf=function(e,t){r4e(u(e,135),t)};var bYn;w("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462);var Xm;b(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},uz),s.Kf=function(){return t$n(this)},s.Xf=function(){return t$n(this)};var EP,mv,Pon=Me(etn,"RadialLayoutPhases",495,Ie,R1e,ioe),wYn;b(1131,209,xa,j8n),s.Ze=function(e,t){var i,r,c,o,f,h;if(i=cLn(this,e),le(t,"Radial layout",i.c.length),on(sn(hn(e,(gb(),Ron))))||oC((r=new O9((K0(),new N0(e))),r)),h=yve(e),gr(e,(C5(),Xm),h),!h)throw T(new Hn("The given graph is not a tree!"));for(c=K(Y(hn(e,MP))),c==0&&(c=mLn(e)),gr(e,MP,c),f=new E(cLn(this,e));f.a0&&ADn((Te(t-1,e.length),e.charCodeAt(t-1)),XKn);)--t;if(r>=t)throw T(new Hn("The given string does not contain any numbers."));if(c=Tb(e.substr(r,t-r),`,|;|\r| -`),c.length!=2)throw T(new Hn("Exactly two numbers are expected, "+c.length+" were found."));try{this.a=kb(mb(c[0])),this.b=kb(mb(c[1]))}catch(o){throw o=jt(o),I(o,127)?(i=o,T(new Hn(VKn+i))):T(o)}},s.Ib=function(){return"("+this.a+","+this.b+")"},s.a=0,s.b=0;var ai=w(dk,"KVector",8);b(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},hu,mj,ljn),s.Pc=function(){return Gwe(this)},s.Jf=function(e){var t,i,r,c,o,f;r=Tb(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | -`),_s(this);try{for(i=0,o=0,c=0,f=0;i0&&(o%2==0?c=kb(r[i]):f=kb(r[i]),o>0&&o%2!=0&&Ke(this,new fn(c,f)),++o),++i}catch(h){throw h=jt(h),I(h,127)?(t=h,T(new Hn("The given string does not match the expected format for vectors."+t))):T(h)}},s.Ib=function(){var e,t,i;for(e=new Ju("("),t=_e(this,0);t.b!=t.d.c;)i=u(Re(t),8),De(e,i.a+","+i.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var Bfn=w(dk,"KVectorChain",74);b(248,22,{3:1,35:1,22:1,248:1},f5);var HK,$P,FP,ly,ay,xP,Rfn=Me(Ws,"Alignment",248,Ie,Bde,yoe),FZn;b(979,1,zs,Q4n),s.Qe=function(e){zBn(e)};var _fn,qK,xZn,Kfn,Hfn,LZn,qfn,NZn,BZn,Gfn,zfn,RZn;w(Ws,"BoxLayouterOptions",979),b(980,1,{},m2n),s.$e=function(){var e;return e=new A2n,e},s._e=function(e){},w(Ws,"BoxLayouterOptions/BoxFactory",980),b(291,22,{3:1,35:1,22:1,291:1},h5);var dy,GK,by,wy,gy,zK,UK=Me(Ws,"ContentAlignment",291,Ie,Nde,joe),_Zn;b(684,1,zs,nq),s.Qe=function(e){En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,GHn),""),"Layout Algorithm"),"Select a specific layout algorithm."),(y1(),kv)),tn),Cn((Ho(),Xn))))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,zHn),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),yf),oMe),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Oen),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),Ufn),Nt),Rfn),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,ep),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Ttn),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),yf),Bfn),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,sA),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),Xfn),Cp),UK),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,mk),""),"Debug Mode"),"Whether additional debug information shall be generated."),(qn(),!1)),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Fen),""),bnn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),Vfn),Nt),e9),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,pk),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),Yfn),Nt),cH),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,dA),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,uA),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),thn),Nt),Khn),pt(Xn,A(M($1,1),z,175,0,[pi]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,u0),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),ahn),yf),Wrn),pt(Xn,A(M($1,1),z,175,0,[pi]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,lk),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,cB),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,G6),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,CN),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),phn),Nt),Ghn),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,oA),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),yf),ai),pt(pi,A(M($1,1),z,175,0,[Ya,D1]))))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,hk),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),sc),Wi),pt(pi,A(M($1,1),z,175,0,[Yf]))))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,HM),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,q6),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,qen),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),rhn),yf),Bfn),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Uen),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Wen),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,LTe),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),yf),dMe),pt(Xn,A(M($1,1),z,175,0,[D1]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ven),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),chn),yf),Urn),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Pen),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),_i),si),pt(pi,A(M($1,1),z,175,0,[Yf,Ya,D1]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,UHn),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Or),Mi),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,WHn),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,XHn),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Q(100)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,VHn),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,QHn),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Q(4e3)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,JHn),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Q(400)),sc),Wi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,YHn),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ZHn),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,nqn),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,eqn),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ctn),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),Wfn),Nt),Qhn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,pen),wf),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ven),wf),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,vN),wf),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,men),wf),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,EN),wf),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ken),wf),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,yen),wf),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Cen),wf),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,jen),wf),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Een),wf),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Db),wf),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ten),wf),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Or),Mi),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Men),wf),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Or),Mi),pt(Xn,A(M($1,1),z,175,0,[pi]))))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Aen),wf),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),yf),yne),pt(pi,A(M($1,1),z,175,0,[Yf,Ya,D1]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Qen),wf),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),Ahn),yf),Urn),Cn(Xn)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,rB),rqn),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),sc),Wi),pt(Xn,A(M($1,1),z,175,0,[pi]))))),Ci(e,rB,iB,XZn),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,iB),rqn),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),dhn),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,xen),cqn),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),shn),yf),Wrn),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,F4),cqn),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),ohn),Cp),lr),pt(pi,A(M($1,1),z,175,0,[D1]))))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ben),wA),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),whn),Nt),c9),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Ren),wA),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Nt),c9),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,_en),wA),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Nt),c9),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Ken),wA),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Nt),c9),Cn(pi)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Hen),wA),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Nt),c9),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,hg),CB),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),fhn),Cp),o9),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,tp),CB),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),lhn),Cp),Uhn),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,ip),CB),"Node Size Minimum"),"The minimal size to which a node can be reduced."),hhn),yf),ai),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,tB),CB),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),_i),si),Cn(Xn)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Gen),eB),"Edge Label Placement"),"Gives a hint on where to put edge labels."),Qfn),Nt),Phn),Cn(D1)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,qM),eB),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),_i),si),Cn(D1)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,NTe),"font"),"Font Name"),"Font name used for a label."),kv),tn),Cn(D1)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,tqn),"font"),"Font Size"),"Font size used for a label."),sc),Wi),Cn(D1)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Xen),TB),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),yf),ai),Cn(Ya)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,zen),TB),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),sc),Wi),Cn(Ya)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Ien),TB),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),khn),Nt),Zi),Cn(Ya)))),En(e,new bn(yn(kn(jn(gn(mn(pn(vn(new dn,Sen),TB),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Or),Mi),Cn(Ya)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,x4),Mtn),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),vhn),Cp),qP),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Len),Mtn),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Nen),Mtn),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,Den),uqn),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),_i),si),Cn(pi)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,$en),uqn),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),_i),si),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,mN),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Or),Mi),Cn(Yf)))),En(e,new bn(yn(kn(jn(Dn(gn(mn(pn(vn(new dn,iqn),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),nhn),Nt),xhn),Cn(Yf)))),Yv(e,new M2(Uv(Vp(Xp(new Zg,Jn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),Yv(e,new M2(Uv(Vp(Xp(new Zg,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),Yv(e,new M2(Uv(Vp(Xp(new Zg,os),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),Yv(e,new M2(Uv(Vp(Xp(new Zg,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),Yv(e,new M2(Uv(Vp(Xp(new Zg,IHn),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),Yv(e,new M2(Uv(Vp(Xp(new Zg,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),Yv(e,new M2(Uv(Vp(Xp(new Zg,zf),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),IBn((new J4n,e)),zBn((new Q4n,e)),uBn((new Y4n,e))};var Zm,KZn,Ufn,Tp,HZn,qZn,Wfn,GZn,LP,Xfn,py,A0,Vfn,WK,XK,Qfn,Jfn,Yfn,Zfn,nhn,ehn,Bg,thn,zZn,vy,VK,NP,ihn,Rg,rhn,my,chn,uhn,shn,_g,ohn,Za,fhn,BP,Kg,hhn,_l,lhn,RP,ky,nd,ahn,UZn,dhn,WZn,XZn,bhn,whn,QK,JK,YK,ZK,ghn,Bu,n9,phn,nH,eH,rw,vhn,mhn,Hg,khn,Mp,_P,tH,yv,VZn,iH,QZn,JZn,yhn,YZn,jhn,ZZn,Ap,Ehn,KP,Chn,Thn,ed,nne,Mhn,Ahn,Shn;w(Ws,"CoreOptions",684),b(103,22,{3:1,35:1,22:1,103:1},n8);var Jh,Zs,Ao,mh,Yh,e9=Me(Ws,bnn,103,Ie,ude,Toe),ene;b(272,22,{3:1,35:1,22:1,272:1},OO);var jv,cw,Ev,Phn=Me(Ws,"EdgeLabelPlacement",272,Ie,_le,Moe),tne;b(218,22,{3:1,35:1,22:1,218:1},Wj);var Cv,yy,Sp,rH,cH=Me(Ws,"EdgeRouting",218,Ie,Dae,Aoe),ine;b(312,22,{3:1,35:1,22:1,312:1},l5);var Ihn,Ohn,Dhn,$hn,uH,Fhn,xhn=Me(Ws,"EdgeType",312,Ie,Ude,Soe),rne;b(977,1,zs,J4n),s.Qe=function(e){IBn(e)};var Lhn,Nhn,Bhn,Rhn,cne,_hn,t9;w(Ws,"FixedLayouterOptions",977),b(978,1,{},D2n),s.$e=function(){var e;return e=new T2n,e},s._e=function(e){},w(Ws,"FixedLayouterOptions/FixedFactory",978),b(334,22,{3:1,35:1,22:1,334:1},DO);var F1,HP,i9,Khn=Me(Ws,"HierarchyHandling",334,Ie,Rle,Poe),une;b(285,22,{3:1,35:1,22:1,285:1},Xj);var kh,Kl,jy,Ey,sne=Me(Ws,"LabelSide",285,Ie,Oae,Ioe),one;b(93,22,{3:1,35:1,22:1,93:1},yw);var Zh,So,no,Po,as,Io,eo,yh,Oo,lr=Me(Ws,"NodeLabelPlacement",93,Ie,V0e,Ooe),fne;b(249,22,{3:1,35:1,22:1,249:1},e8);var Hhn,r9,Hl,qhn,Cy,c9=Me(Ws,"PortAlignment",249,Ie,sde,Doe),hne;b(98,22,{3:1,35:1,22:1,98:1},a5);var td,Ac,jh,Tv,jf,ql,Ghn=Me(Ws,"PortConstraints",98,Ie,Pde,$oe),lne;b(273,22,{3:1,35:1,22:1,273:1},d5);var u9,s9,n1,Ty,Gl,Pp,qP=Me(Ws,"PortLabelPlacement",273,Ie,zde,Foe),ane;b(61,22,{3:1,35:1,22:1,61:1},t8);var Vn,Kn,Fs,xs,ru,Gc,Ef,Do,Su,ku,Sc,Pu,cu,uu,$o,ds,bs,to,ae,Xr,Gn,Zi=Me(Ws,"PortSide",61,Ie,ide,Noe),dne;b(981,1,zs,Y4n),s.Qe=function(e){uBn(e)};var bne,wne,zhn,gne,pne;w(Ws,"RandomLayouterOptions",981),b(982,1,{},$2n),s.$e=function(){var e;return e=new L2n,e},s._e=function(e){},w(Ws,"RandomLayouterOptions/RandomFactory",982),b(374,22,{3:1,35:1,22:1,374:1},Vj);var uw,My,Ay,id,o9=Me(Ws,"SizeConstraint",374,Ie,Iae,xoe),vne;b(259,22,{3:1,35:1,22:1,259:1},jw);var Sy,GP,Mv,sH,Py,f9,zP,UP,WP,Uhn=Me(Ws,"SizeOptions",259,Ie,tbe,Loe),mne;b(370,1,{1949:1},zp),s.b=!1,s.c=0,s.d=-1,s.e=null,s.f=null,s.g=-1,s.j=!1,s.k=!1,s.n=!1,s.o=0,s.q=0,s.r=0,w(ac,"BasicProgressMonitor",370),b(972,209,xa,A2n),s.Ze=function(e,t){var i,r,c,o,f,h,l,a,d;switch(le(t,"Box layout",2),c=x9(Y(hn(e,(nM(),RZn)))),o=u(hn(e,BZn),116),i=on(sn(hn(e,Kfn))),r=on(sn(hn(e,Hfn))),u(hn(e,qK),311).g){case 0:f=(h=new du((!e.a&&(e.a=new V(Pt,e,10,11)),e.a)),Pn(),bi(h,new H6n(r)),h),l=sY(e),a=Y(hn(e,_fn)),(a==null||(_n(a),a<=0))&&(a=1.3),d=KCe(f,c,o,l.a,l.b,i,(_n(a),a)),t0(e,d.a,d.b,!1,!0);break;default:Nje(e,c,o,i)}ce(t)},w(ac,"BoxLayoutProvider",972),b(973,1,lt,H6n),s.ue=function(e,t){return c8e(this,u(e,33),u(t,33))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},s.a=!1,w(ac,"BoxLayoutProvider/1",973),b(157,1,{157:1},zC,hjn),s.Ib=function(){return this.c?uZ(this.c):kl(this.b)},w(ac,"BoxLayoutProvider/Group",157),b(311,22,{3:1,35:1,22:1,311:1},Qj);var Whn,Xhn,Vhn,oH,Qhn=Me(ac,"BoxLayoutProvider/PackingMode",311,Ie,$ae,Boe),kne;b(974,1,lt,S2n),s.ue=function(e,t){return o1e(u(e,157),u(t,157))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(ac,"BoxLayoutProvider/lambda$0$Type",974),b(975,1,lt,P2n),s.ue=function(e,t){return e1e(u(e,157),u(t,157))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(ac,"BoxLayoutProvider/lambda$1$Type",975),b(976,1,lt,I2n),s.ue=function(e,t){return t1e(u(e,157),u(t,157))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(ac,"BoxLayoutProvider/lambda$2$Type",976),b(1365,1,{831:1},O2n),s.qg=function(e,t){return Oj(),!I(t,160)||k8n((L2(),u(e,160)),t)},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),b(1366,1,Yn,q6n),s.td=function(e){Uwe(this.a,u(e,146))},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),b(1367,1,Yn,M2n),s.td=function(e){u(e,94),Oj()},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),b(1371,1,Yn,G6n),s.td=function(e){pbe(this.a,u(e,94))},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),b(1369,1,Ve,ukn),s.Mb=function(e){return Dwe(this.a,this.b,u(e,146))},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),b(1368,1,Ve,skn),s.Mb=function(e){return Vce(this.a,this.b,u(e,831))},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),b(1370,1,Yn,okn),s.td=function(e){Vfe(this.a,this.b,u(e,146))},w(ac,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),b(935,1,{},C2n),s.Kb=function(e){return oyn(e)},s.Fb=function(e){return this===e},w(ac,"ElkUtil/lambda$0$Type",935),b(936,1,Yn,fkn),s.td=function(e){sme(this.a,this.b,u(e,79))},s.a=0,s.b=0,w(ac,"ElkUtil/lambda$1$Type",936),b(937,1,Yn,hkn),s.td=function(e){sie(this.a,this.b,u(e,202))},s.a=0,s.b=0,w(ac,"ElkUtil/lambda$2$Type",937),b(938,1,Yn,lkn),s.td=function(e){Yre(this.a,this.b,u(e,137))},s.a=0,s.b=0,w(ac,"ElkUtil/lambda$3$Type",938),b(939,1,Yn,z6n),s.td=function(e){lfe(this.a,u(e,469))},w(ac,"ElkUtil/lambda$4$Type",939),b(342,1,{35:1,342:1},Nte),s.wd=function(e){return Mce(this,u(e,236))},s.Fb=function(e){var t;return I(e,342)?(t=u(e,342),this.a==t.a):!1},s.Hb=function(){return Gt(this.a)},s.Ib=function(){return this.a+" (exclusive)"},s.a=0,w(ac,"ExclusiveBounds/ExclusiveLowerBound",342),b(1138,209,xa,T2n),s.Ze=function(e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$,O,x,_,U,en,ln,wn;for(le(t,"Fixed Layout",1),o=u(hn(e,(Xe(),Jfn)),218),g=0,p=0,O=new ie((!e.a&&(e.a=new V(Pt,e,10,11)),e.a));O.e!=O.i.gc();){for(S=u(oe(O),33),wn=u(hn(S,(wT(),t9)),8),wn&&(Jo(S,wn.a,wn.b),u(hn(S,Nhn),174).Hc((Vu(),uw))&&(v=u(hn(S,Rhn),8),v.a>0&&v.b>0&&t0(S,v.a,v.b,!0,!0))),g=j.Math.max(g,S.i+S.g),p=j.Math.max(p,S.j+S.f),a=new ie((!S.n&&(S.n=new V(Br,S,1,7)),S.n));a.e!=a.i.gc();)h=u(oe(a),137),wn=u(hn(h,t9),8),wn&&Jo(h,wn.a,wn.b),g=j.Math.max(g,S.i+h.i+h.g),p=j.Math.max(p,S.j+h.j+h.f);for(U=new ie((!S.c&&(S.c=new V(Ru,S,9,9)),S.c));U.e!=U.i.gc();)for(_=u(oe(U),118),wn=u(hn(_,t9),8),wn&&Jo(_,wn.a,wn.b),en=S.i+_.i,ln=S.j+_.j,g=j.Math.max(g,en+_.g),p=j.Math.max(p,ln+_.f),l=new ie((!_.n&&(_.n=new V(Br,_,1,7)),_.n));l.e!=l.i.gc();)h=u(oe(l),137),wn=u(hn(h,t9),8),wn&&Jo(h,wn.a,wn.b),g=j.Math.max(g,en+h.i+h.g),p=j.Math.max(p,ln+h.j+h.f);for(c=new re(ue(Gh(S).a.Kc(),new Mn));Se(c);)i=u(ve(c),79),d=y_n(i),g=j.Math.max(g,d.a),p=j.Math.max(p,d.b);for(r=new re(ue(N7(S).a.Kc(),new Mn));Se(r);)i=u(ve(r),79),At(fh(i))!=e&&(d=y_n(i),g=j.Math.max(g,d.a),p=j.Math.max(p,d.b))}if(o==(Hh(),Cv))for($=new ie((!e.a&&(e.a=new V(Pt,e,10,11)),e.a));$.e!=$.i.gc();)for(S=u(oe($),33),r=new re(ue(Gh(S).a.Kc(),new Mn));Se(r);)i=u(ve(r),79),f=rye(i),f.b==0?gr(i,Rg,null):gr(i,Rg,f);on(sn(hn(e,(wT(),Bhn))))||(x=u(hn(e,cne),116),C=g+x.b+x.c,m=p+x.d+x.a,t0(e,C,m,!0,!0)),ce(t)},w(ac,"FixedLayoutProvider",1138),b(373,134,{3:1,414:1,373:1,94:1,134:1},jI,BPn),s.Jf=function(e){var t,i,r,c,o,f,h,l,a;if(e)try{for(l=Tb(e,";,;"),o=l,f=0,h=o.length;f>16&Ut|t^r<<16},s.Kc=function(){return new U6n(this)},s.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+Lr(this.b)+")":this.b==null?"pair("+Lr(this.a)+",null)":"pair("+Lr(this.a)+","+Lr(this.b)+")"},w(ac,"Pair",46),b(983,1,yi,U6n),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},s.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw T(new ic)},s.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),T(new fu)},s.b=!1,s.c=!1,w(ac,"Pair/1",983),b(448,1,{448:1},jTn),s.Fb=function(e){return pc(this.a,u(e,448).a)&&pc(this.c,u(e,448).c)&&pc(this.d,u(e,448).d)&&pc(this.b,u(e,448).b)},s.Hb=function(){return gT(A(M(Zn,1),rn,1,5,[this.a,this.c,this.d,this.b]))},s.Ib=function(){return"("+this.a+Ji+this.c+Ji+this.d+Ji+this.b+")"},w(ac,"Quadruple",448),b(1126,209,xa,L2n),s.Ze=function(e,t){var i,r,c,o,f;if(le(t,"Random Layout",1),(!e.a&&(e.a=new V(Pt,e,10,11)),e.a).i==0){ce(t);return}o=u(hn(e,(NQ(),gne)),19),o&&o.a!=0?c=new EC(o.a):c=new OF,i=x9(Y(hn(e,bne))),f=x9(Y(hn(e,pne))),r=u(hn(e,wne),116),vCe(e,c,i,f,r),ce(t)},w(ac,"RandomLayoutProvider",1126);var Cne;b(553,1,{}),s.qf=function(){return new fn(this.f.i,this.f.j)},s.We=function(e){return XTn(e,(Xe(),Bu))?hn(this.f,Tne):hn(this.f,e)},s.rf=function(){return new fn(this.f.g,this.f.f)},s.sf=function(){return this.g},s.Xe=function(e){return wa(this.f,e)},s.tf=function(e){Zc(this.f,e.a),nu(this.f,e.b)},s.uf=function(e){Rd(this.f,e.a),Bd(this.f,e.b)},s.vf=function(e){this.g=e},s.g=0;var Tne;w(nm,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),b(554,1,{839:1},cj),s.wf=function(){var e,t;if(!this.b)for(this.b=mC(JE(this.a).i),t=new ie(JE(this.a));t.e!=t.i.gc();)e=u(oe(t),137),W(this.b,new XI(e));return this.b},s.b=null,w(nm,"ElkGraphAdapters/ElkEdgeAdapter",554),b(301,553,{},N0),s.xf=function(){return jFn(this)},s.a=null,w(nm,"ElkGraphAdapters/ElkGraphAdapter",301),b(630,553,{181:1},XI),w(nm,"ElkGraphAdapters/ElkLabelAdapter",630),b(629,553,{680:1},WO),s.wf=function(){return k3e(this)},s.Af=function(){var e;return e=u(hn(this.f,(Xe(),my)),142),!e&&(e=new Bv),e},s.Cf=function(){return y3e(this)},s.Ef=function(e){var t;t=new oD(e),gr(this.f,(Xe(),my),t)},s.Ff=function(e){gr(this.f,(Xe(),nd),new DU(e))},s.yf=function(){return this.d},s.zf=function(){var e,t;if(!this.a)for(this.a=new X,t=new re(ue(N7(u(this.f,33)).a.Kc(),new Mn));Se(t);)e=u(ve(t),79),W(this.a,new cj(e));return this.a},s.Bf=function(){var e,t;if(!this.c)for(this.c=new X,t=new re(ue(Gh(u(this.f,33)).a.Kc(),new Mn));Se(t);)e=u(ve(t),79),W(this.c,new cj(e));return this.c},s.Df=function(){return iC(u(this.f,33)).i!=0||on(sn(u(this.f,33).We((Xe(),vy))))},s.Gf=function(){l0e(this,(K0(),Cne))},s.a=null,s.b=null,s.c=null,s.d=null,s.e=null,w(nm,"ElkGraphAdapters/ElkNodeAdapter",629),b(1266,553,{838:1},ymn),s.wf=function(){return P3e(this)},s.zf=function(){var e,t;if(!this.a)for(this.a=nh(u(this.f,118).xg().i),t=new ie(u(this.f,118).xg());t.e!=t.i.gc();)e=u(oe(t),79),W(this.a,new cj(e));return this.a},s.Bf=function(){var e,t;if(!this.c)for(this.c=nh(u(this.f,118).yg().i),t=new ie(u(this.f,118).yg());t.e!=t.i.gc();)e=u(oe(t),79),W(this.c,new cj(e));return this.c},s.Hf=function(){return u(u(this.f,118).We((Xe(),Hg)),61)},s.If=function(){var e,t,i,r,c,o,f,h;for(r=nf(u(this.f,118)),i=new ie(u(this.f,118).yg());i.e!=i.i.gc();)for(e=u(oe(i),79),h=new ie((!e.c&&(e.c=new Fn(he,e,5,8)),e.c));h.e!=h.i.gc();){if(f=u(oe(h),82),ob(Pr(f),r))return!0;if(Pr(f)==r&&on(sn(hn(e,(Xe(),VK)))))return!0}for(t=new ie(u(this.f,118).xg());t.e!=t.i.gc();)for(e=u(oe(t),79),o=new ie((!e.b&&(e.b=new Fn(he,e,4,7)),e.b));o.e!=o.i.gc();)if(c=u(oe(o),82),ob(Pr(c),r))return!0;return!1},s.a=null,s.b=null,s.c=null,w(nm,"ElkGraphAdapters/ElkPortAdapter",1266),b(1267,1,lt,N2n),s.ue=function(e,t){return J7e(u(e,118),u(t,118))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(nm,"ElkGraphAdapters/PortComparator",1267);var zl=Et(Is,"EObject"),Av=Et(bg,fqn),io=Et(bg,hqn),Iy=Et(bg,lqn),Oy=Et(bg,"ElkShape"),he=Et(bg,aqn),di=Et(bg,Atn),Tt=Et(bg,dqn),Dy=Et(Is,bqn),h9=Et(Is,"EFactory"),Mne,fH=Et(Is,wqn),Vo=Et(Is,"EPackage"),vi,Ane,Sne,n1n,XP,Pne,e1n,t1n,i1n,Ul,Ine,One,Br=Et(bg,Stn),Pt=Et(bg,Ptn),Ru=Et(bg,Itn);b(90,1,gqn),s.Jg=function(){return this.Kg(),null},s.Kg=function(){return null},s.Lg=function(){return this.Kg(),!1},s.Mg=function(){return!1},s.Ng=function(e){et(this,e)},w(sp,"BasicNotifierImpl",90),b(97,90,kqn),s.nh=function(){return Hu(this)},s.Og=function(e,t){return e},s.Pg=function(){throw T(new ye)},s.Qg=function(e){var t;return t=ir(u(On(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,e)},s.Rg=function(e,t){throw T(new ye)},s.Sg=function(e,t,i){return ss(this,e,t,i)},s.Tg=function(){var e;return this.Pg()&&(e=this.Pg().ck(),e)?e:this.zh()},s.Ug=function(){return Fx(this)},s.Vg=function(){throw T(new ye)},s.Wg=function(){var e,t;return t=this.ph().dk(),!t&&this.Pg().ik(t=(Zv(),e=VW(Lf(this.Tg())),e==null?pH:new c8(this,e))),t},s.Xg=function(e,t){return e},s.Yg=function(e){var t;return t=e.Gj(),t?e.aj():yt(this.Tg(),e)},s.Zg=function(){var e;return e=this.Pg(),e?e.fk():null},s.$g=function(){return this.Pg()?this.Pg().ck():null},s._g=function(e,t,i){return BT(this,e,t,i)},s.ah=function(e){return A3(this,e)},s.bh=function(e,t){return T$(this,e,t)},s.dh=function(){var e;return e=this.Pg(),!!e&&e.gk()},s.eh=function(){throw T(new ye)},s.fh=function(){return OT(this)},s.gh=function(e,t,i,r){return _2(this,e,t,r)},s.hh=function(e,t,i){var r;return r=u(On(this.Tg(),t),66),r.Nj().Qj(this,this.yh(),t-this.Ah(),e,i)},s.ih=function(e,t,i,r){return sC(this,e,t,r)},s.jh=function(e,t,i){var r;return r=u(On(this.Tg(),t),66),r.Nj().Rj(this,this.yh(),t-this.Ah(),e,i)},s.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},s.lh=function(e){return zF(this,e)},s.mh=function(e){return lMn(this,e)},s.oh=function(e){return LRn(this,e)},s.ph=function(){throw T(new ye)},s.qh=function(){return this.Pg()?this.Pg().ek():null},s.rh=function(){return OT(this)},s.sh=function(e,t){Px(this,e,t)},s.th=function(e){this.ph().hk(e)},s.uh=function(e){this.ph().kk(e)},s.vh=function(e){this.ph().jk(e)},s.wh=function(e,t){var i,r,c,o;return o=this.Zg(),o&&e&&(t=zi(o.Vk(),this,t),o.Zk(this)),r=this.eh(),r&&(Qx(this,this.eh(),this.Vg()).Bb&Yi?(c=r.fh(),c&&(e?!o&&c.Zk(this):c.Yk(this))):(t=(i=this.Vg(),i>=0?this.Qg(t):this.eh().ih(this,-1-i,null,t)),t=this.Sg(null,-1,t))),this.uh(e),t},s.xh=function(e){var t,i,r,c,o,f,h,l;if(i=this.Tg(),o=yt(i,e),t=this.Ah(),o>=t)return u(e,66).Nj().Uj(this,this.yh(),o-t);if(o<=-1)if(f=rg((gu(),xi),i,e),f){if(er(),u(f,66).Oj()||(f=A2(jr(xi,f))),c=(r=this.Yg(f),u(r>=0?this._g(r,!0,!0):Yd(this,f,!0),153)),l=f.Zj(),l>1||l==-1)return u(u(c,215).hl(e,!1),76)}else throw T(new Hn(Pl+e.ne()+MB));else if(e.$j())return r=this.Yg(e),u(r>=0?this._g(r,!1,!0):Yd(this,e,!1),76);return h=new Okn(this,e),h},s.yh=function(){return QX(this)},s.zh=function(){return(ol(),Nn).S},s.Ah=function(){return ee(this.zh())},s.Bh=function(e){Cx(this,e)},s.Ib=function(){return yo(this)},w(Bn,"BasicEObjectImpl",97);var Dne;b(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),s.Ch=function(e){var t;return t=JX(this),t[e]},s.Dh=function(e,t){var i;i=JX(this),Mt(i,e,t)},s.Eh=function(e){var t;t=JX(this),Mt(t,e,null)},s.Jg=function(){return u(Rn(this,4),126)},s.Kg=function(){throw T(new ye)},s.Lg=function(){return(this.Db&4)!=0},s.Pg=function(){throw T(new ye)},s.Fh=function(e){R2(this,2,e)},s.Rg=function(e,t){this.Db=t<<16|this.Db&255,this.Fh(e)},s.Tg=function(){return Vc(this)},s.Vg=function(){return this.Db>>16},s.Wg=function(){var e,t;return Zv(),t=VW(Lf((e=u(Rn(this,16),26),e||this.zh()))),t==null?pH:new c8(this,t)},s.Mg=function(){return(this.Db&1)==0},s.Zg=function(){return u(Rn(this,128),1935)},s.$g=function(){return u(Rn(this,16),26)},s.dh=function(){return(this.Db&32)!=0},s.eh=function(){return u(Rn(this,2),49)},s.kh=function(){return(this.Db&64)!=0},s.ph=function(){throw T(new ye)},s.qh=function(){return u(Rn(this,64),281)},s.th=function(e){R2(this,16,e)},s.uh=function(e){R2(this,128,e)},s.vh=function(e){R2(this,64,e)},s.yh=function(){return Rc(this)},s.Db=0,w(Bn,"MinimalEObjectImpl",114),b(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),s.Fh=function(e){this.Cb=e},s.eh=function(){return this.Cb},w(Bn,"MinimalEObjectImpl/Container",115),b(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),s._g=function(e,t,i){return oJ(this,e,t,i)},s.jh=function(e,t,i){return QJ(this,e,t,i)},s.lh=function(e){return sX(this,e)},s.sh=function(e,t){WV(this,e,t)},s.zh=function(){return Dc(),One},s.Bh=function(e){LV(this,e)},s.Ve=function(){return q$n(this)},s.We=function(e){return hn(this,e)},s.Xe=function(e){return wa(this,e)},s.Ye=function(e,t){return gr(this,e,t)},w(Ba,"EMapPropertyHolderImpl",1985),b(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Xy),s._g=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return BT(this,e,t,i)},s.lh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return zF(this,e)},s.sh=function(e,t){switch(e){case 0:UC(this,K(Y(t)));return;case 1:WC(this,K(Y(t)));return}Px(this,e,t)},s.zh=function(){return Dc(),Ane},s.Bh=function(e){switch(e){case 0:UC(this,0);return;case 1:WC(this,0);return}Cx(this,e)},s.Ib=function(){var e;return this.Db&64?yo(this):(e=new Bs(yo(this)),e.a+=" (x: ",mw(e,this.a),e.a+=", y: ",mw(e,this.b),e.a+=")",e.a)},s.a=0,s.b=0,w(Ba,"ElkBendPointImpl",567),b(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),s._g=function(e,t,i){return aQ(this,e,t,i)},s.hh=function(e,t,i){return vx(this,e,t,i)},s.jh=function(e,t,i){return tF(this,e,t,i)},s.lh=function(e){return SV(this,e)},s.sh=function(e,t){AJ(this,e,t)},s.zh=function(){return Dc(),Pne},s.Bh=function(e){oQ(this,e)},s.zg=function(){return this.k},s.Ag=function(){return JE(this)},s.Ib=function(){return PF(this)},s.k=null,w(Ba,"ElkGraphElementImpl",723),b(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),s._g=function(e,t,i){return jQ(this,e,t,i)},s.lh=function(e){return PQ(this,e)},s.sh=function(e,t){SJ(this,e,t)},s.zh=function(){return Dc(),Ine},s.Bh=function(e){FQ(this,e)},s.Bg=function(){return this.f},s.Cg=function(){return this.g},s.Dg=function(){return this.i},s.Eg=function(){return this.j},s.Fg=function(e,t){rE(this,e,t)},s.Gg=function(e,t){Jo(this,e,t)},s.Hg=function(e){Zc(this,e)},s.Ig=function(e){nu(this,e)},s.Ib=function(){return Ex(this)},s.f=0,s.g=0,s.i=0,s.j=0,w(Ba,"ElkShapeImpl",724),b(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),s._g=function(e,t,i){return tJ(this,e,t,i)},s.hh=function(e,t,i){return yJ(this,e,t,i)},s.jh=function(e,t,i){return jJ(this,e,t,i)},s.lh=function(e){return zV(this,e)},s.sh=function(e,t){OY(this,e,t)},s.zh=function(){return Dc(),Sne},s.Bh=function(e){XQ(this,e)},s.xg=function(){return!this.d&&(this.d=new Fn(di,this,8,5)),this.d},s.yg=function(){return!this.e&&(this.e=new Fn(di,this,7,4)),this.e},w(Ba,"ElkConnectableShapeImpl",725),b(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},VH),s.Qg=function(e){return pJ(this,e)},s._g=function(e,t,i){switch(e){case 3:return S8(this);case 4:return!this.b&&(this.b=new Fn(he,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Fn(he,this,5,8)),this.c;case 6:return!this.a&&(this.a=new V(Tt,this,6,6)),this.a;case 7:return qn(),!this.b&&(this.b=new Fn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Fn(he,this,5,8)),this.c.i<=1));case 8:return qn(),!!j6(this);case 9:return qn(),!!Jd(this);case 10:return qn(),!this.b&&(this.b=new Fn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Fn(he,this,5,8)),this.c.i!=0)}return aQ(this,e,t,i)},s.hh=function(e,t,i){var r;switch(t){case 3:return this.Cb&&(i=(r=this.Db>>16,r>=0?pJ(this,i):this.Cb.ih(this,-1-r,null,i))),hU(this,u(e,33),i);case 4:return!this.b&&(this.b=new Fn(he,this,4,7)),Oc(this.b,e,i);case 5:return!this.c&&(this.c=new Fn(he,this,5,8)),Oc(this.c,e,i);case 6:return!this.a&&(this.a=new V(Tt,this,6,6)),Oc(this.a,e,i)}return vx(this,e,t,i)},s.jh=function(e,t,i){switch(t){case 3:return hU(this,null,i);case 4:return!this.b&&(this.b=new Fn(he,this,4,7)),zi(this.b,e,i);case 5:return!this.c&&(this.c=new Fn(he,this,5,8)),zi(this.c,e,i);case 6:return!this.a&&(this.a=new V(Tt,this,6,6)),zi(this.a,e,i)}return tF(this,e,t,i)},s.lh=function(e){switch(e){case 3:return!!S8(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Fn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Fn(he,this,5,8)),this.c.i<=1));case 8:return j6(this);case 9:return Jd(this);case 10:return!this.b&&(this.b=new Fn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Fn(he,this,5,8)),this.c.i!=0)}return SV(this,e)},s.sh=function(e,t){switch(e){case 3:_x(this,u(t,33));return;case 4:!this.b&&(this.b=new Fn(he,this,4,7)),de(this.b),!this.b&&(this.b=new Fn(he,this,4,7)),Dt(this.b,u(t,14));return;case 5:!this.c&&(this.c=new Fn(he,this,5,8)),de(this.c),!this.c&&(this.c=new Fn(he,this,5,8)),Dt(this.c,u(t,14));return;case 6:!this.a&&(this.a=new V(Tt,this,6,6)),de(this.a),!this.a&&(this.a=new V(Tt,this,6,6)),Dt(this.a,u(t,14));return}AJ(this,e,t)},s.zh=function(){return Dc(),n1n},s.Bh=function(e){switch(e){case 3:_x(this,null);return;case 4:!this.b&&(this.b=new Fn(he,this,4,7)),de(this.b);return;case 5:!this.c&&(this.c=new Fn(he,this,5,8)),de(this.c);return;case 6:!this.a&&(this.a=new V(Tt,this,6,6)),de(this.a);return}oQ(this,e)},s.Ib=function(){return yRn(this)},w(Ba,"ElkEdgeImpl",352),b(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Vy),s.Qg=function(e){return dJ(this,e)},s._g=function(e,t,i){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new Jt(io,this,5)),this.a;case 6:return oMn(this);case 7:return t?QF(this):this.i;case 8:return t?VF(this):this.f;case 9:return!this.g&&(this.g=new Fn(Tt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Fn(Tt,this,10,9)),this.e;case 11:return this.d}return oJ(this,e,t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?dJ(this,i):this.Cb.ih(this,-1-c,null,i))),lU(this,u(e,79),i);case 9:return!this.g&&(this.g=new Fn(Tt,this,9,10)),Oc(this.g,e,i);case 10:return!this.e&&(this.e=new Fn(Tt,this,10,9)),Oc(this.e,e,i)}return o=u(On((r=u(Rn(this,16),26),r||(Dc(),XP)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Dc(),XP)),e,i)},s.jh=function(e,t,i){switch(t){case 5:return!this.a&&(this.a=new Jt(io,this,5)),zi(this.a,e,i);case 6:return lU(this,null,i);case 9:return!this.g&&(this.g=new Fn(Tt,this,9,10)),zi(this.g,e,i);case 10:return!this.e&&(this.e=new Fn(Tt,this,10,9)),zi(this.e,e,i)}return QJ(this,e,t,i)},s.lh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!oMn(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return sX(this,e)},s.sh=function(e,t){switch(e){case 1:$3(this,K(Y(t)));return;case 2:x3(this,K(Y(t)));return;case 3:D3(this,K(Y(t)));return;case 4:F3(this,K(Y(t)));return;case 5:!this.a&&(this.a=new Jt(io,this,5)),de(this.a),!this.a&&(this.a=new Jt(io,this,5)),Dt(this.a,u(t,14));return;case 6:jNn(this,u(t,79));return;case 7:YC(this,u(t,82));return;case 8:JC(this,u(t,82));return;case 9:!this.g&&(this.g=new Fn(Tt,this,9,10)),de(this.g),!this.g&&(this.g=new Fn(Tt,this,9,10)),Dt(this.g,u(t,14));return;case 10:!this.e&&(this.e=new Fn(Tt,this,10,9)),de(this.e),!this.e&&(this.e=new Fn(Tt,this,10,9)),Dt(this.e,u(t,14));return;case 11:mV(this,Ce(t));return}WV(this,e,t)},s.zh=function(){return Dc(),XP},s.Bh=function(e){switch(e){case 1:$3(this,0);return;case 2:x3(this,0);return;case 3:D3(this,0);return;case 4:F3(this,0);return;case 5:!this.a&&(this.a=new Jt(io,this,5)),de(this.a);return;case 6:jNn(this,null);return;case 7:YC(this,null);return;case 8:JC(this,null);return;case 9:!this.g&&(this.g=new Fn(Tt,this,9,10)),de(this.g);return;case 10:!this.e&&(this.e=new Fn(Tt,this,10,9)),de(this.e);return;case 11:mV(this,null);return}LV(this,e)},s.Ib=function(){return _Ln(this)},s.b=0,s.c=0,s.d=null,s.j=0,s.k=0,w(Ba,"ElkEdgeSectionImpl",439),b(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),s._g=function(e,t,i){var r;return e==0?(!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab):Cs(this,e-ee(this.zh()),On((r=u(Rn(this,16),26),r||this.zh()),e),t,i)},s.hh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i)):(c=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),c.Nj().Qj(this,Rc(this),t-ee(this.zh()),e,i))},s.jh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i)):(c=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),c.Nj().Rj(this,Rc(this),t-ee(this.zh()),e,i))},s.lh=function(e){var t;return e==0?!!this.Ab&&this.Ab.i!=0:js(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.oh=function(e){return RZ(this,e)},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return}Ps(this,e-ee(this.zh()),On((i=u(Rn(this,16),26),i||this.zh()),e),t)},s.uh=function(e){R2(this,128,e)},s.zh=function(){return Sn(),Qne},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return}As(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.Gh=function(){this.Bb|=1},s.Hh=function(e){return A6(this,e)},s.Bb=0,w(Bn,"EModelElementImpl",150),b(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},eq),s.Ih=function(e,t){return JRn(this,e,t)},s.Jh=function(e){var t,i,r,c,o;if(this.a!=ts(e)||e.Bb&256)throw T(new Hn(SB+e.zb+h0));for(r=Mr(e);bc(r.a).i!=0;){if(i=u(X7(r,0,(t=u(D(bc(r.a),0),87),o=t.c,I(o,88)?u(o,26):(Sn(),so))),26),Qd(i))return c=ts(i).Nh().Jh(i),u(c,49).th(e),c;r=Mr(i)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new UEn(e):new JU(e)},s.Kh=function(e,t){return i0(this,e,t)},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.a}return Cs(this,e-ee((Sn(),Ql)),On((r=u(Rn(this,16),26),r||Ql),e),t,i)},s.hh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 1:return this.a&&(i=u(this.a,49).ih(this,4,Vo,i)),uQ(this,u(e,235),i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),Ql)),t),66),c.Nj().Qj(this,Rc(this),t-ee((Sn(),Ql)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 1:return uQ(this,null,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),Ql)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),Ql)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return js(this,e-ee((Sn(),Ql)),On((t=u(Rn(this,16),26),t||Ql),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:jxn(this,u(t,235));return}Ps(this,e-ee((Sn(),Ql)),On((i=u(Rn(this,16),26),i||Ql),e),t)},s.zh=function(){return Sn(),Ql},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:jxn(this,null);return}As(this,e-ee((Sn(),Ql)),On((t=u(Rn(this,16),26),t||Ql),e))};var l9,r1n,$ne;w(Bn,"EFactoryImpl",704),b(Eo,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},R2n),s.Ih=function(e,t){switch(e.yj()){case 12:return u(t,146).tg();case 13:return Lr(t);default:throw T(new Hn(R4+e.ne()+h0))}},s.Jh=function(e){var t,i,r,c,o,f,h,l;switch(e.G==-1&&(e.G=(t=ts(e),t?v1(t.Mh(),e):-1)),e.G){case 4:return o=new QH,o;case 6:return f=new nG,f;case 7:return h=new eG,h;case 8:return r=new VH,r;case 9:return i=new Xy,i;case 10:return c=new Vy,c;case 11:return l=new _2n,l;default:throw T(new Hn(SB+e.zb+h0))}},s.Kh=function(e,t){switch(e.yj()){case 13:case 12:return null;default:throw T(new Hn(R4+e.ne()+h0))}},w(Ba,"ElkGraphFactoryImpl",Eo),b(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),s.Wg=function(){var e,t;return t=(e=u(Rn(this,16),26),VW(Lf(e||this.zh()))),t==null?(Zv(),Zv(),pH):new djn(this,t)},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.ne()}return Cs(this,e-ee(this.zh()),On((r=u(Rn(this,16),26),r||this.zh()),e),t,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return js(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:this.Lh(Ce(t));return}Ps(this,e-ee(this.zh()),On((i=u(Rn(this,16),26),i||this.zh()),e),t)},s.zh=function(){return Sn(),Jne},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:this.Lh(null);return}As(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.ne=function(){return this.zb},s.Lh=function(e){Ic(this,e)},s.Ib=function(){return r6(this)},s.zb=null,w(Bn,"ENamedElementImpl",438),b(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},WTn),s.Qg=function(e){return LFn(this,e)},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Y0(this,Qo,this)),this.rb;case 6:return!this.vb&&(this.vb=new g2(Vo,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?u(this.Cb,235):null:fMn(this)}return Cs(this,e-ee((Sn(),B1)),On((r=u(Rn(this,16),26),r||B1),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 4:return this.sb&&(i=u(this.sb,49).ih(this,1,h9,i)),hQ(this,u(e,471),i);case 5:return!this.rb&&(this.rb=new Y0(this,Qo,this)),Oc(this.rb,e,i);case 6:return!this.vb&&(this.vb=new g2(Vo,this,6,7)),Oc(this.vb,e,i);case 7:return this.Cb&&(i=(c=this.Db>>16,c>=0?LFn(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,7,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),B1)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),B1)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 4:return hQ(this,null,i);case 5:return!this.rb&&(this.rb=new Y0(this,Qo,this)),zi(this.rb,e,i);case 6:return!this.vb&&(this.vb=new g2(Vo,this,6,7)),zi(this.vb,e,i);case 7:return ss(this,null,7,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),B1)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),B1)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!fMn(this)}return js(this,e-ee((Sn(),B1)),On((t=u(Rn(this,16),26),t||B1),e))},s.oh=function(e){var t;return t=m8e(this,e),t||RZ(this,e)},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:Ic(this,Ce(t));return;case 2:cT(this,Ce(t));return;case 3:rT(this,Ce(t));return;case 4:jx(this,u(t,471));return;case 5:!this.rb&&(this.rb=new Y0(this,Qo,this)),de(this.rb),!this.rb&&(this.rb=new Y0(this,Qo,this)),Dt(this.rb,u(t,14));return;case 6:!this.vb&&(this.vb=new g2(Vo,this,6,7)),de(this.vb),!this.vb&&(this.vb=new g2(Vo,this,6,7)),Dt(this.vb,u(t,14));return}Ps(this,e-ee((Sn(),B1)),On((i=u(Rn(this,16),26),i||B1),e),t)},s.vh=function(e){var t,i;if(e&&this.rb)for(i=new ie(this.rb);i.e!=i.i.gc();)t=oe(i),I(t,351)&&(u(t,351).w=null);R2(this,64,e)},s.zh=function(){return Sn(),B1},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:Ic(this,null);return;case 2:cT(this,null);return;case 3:rT(this,null);return;case 4:jx(this,null);return;case 5:!this.rb&&(this.rb=new Y0(this,Qo,this)),de(this.rb);return;case 6:!this.vb&&(this.vb=new g2(Vo,this,6,7)),de(this.vb);return}As(this,e-ee((Sn(),B1)),On((t=u(Rn(this,16),26),t||B1),e))},s.Gh=function(){fx(this)},s.Mh=function(){return!this.rb&&(this.rb=new Y0(this,Qo,this)),this.rb},s.Nh=function(){return this.sb},s.Oh=function(){return this.ub},s.Ph=function(){return this.xb},s.Qh=function(){return this.yb},s.Rh=function(e){this.ub=e},s.Ib=function(){var e;return this.Db&64?r6(this):(e=new Bs(r6(this)),e.a+=" (nsURI: ",dr(e,this.yb),e.a+=", nsPrefix: ",dr(e,this.xb),e.a+=")",e.a)},s.xb=null,s.yb=null,w(Bn,"EPackageImpl",179),b(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},VLn),s.q=!1,s.r=!1;var Fne=!1;w(Ba,"ElkGraphPackageImpl",555),b(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},QH),s.Qg=function(e){return bJ(this,e)},s._g=function(e,t,i){switch(e){case 7:return hMn(this);case 8:return this.a}return jQ(this,e,t,i)},s.hh=function(e,t,i){var r;switch(t){case 7:return this.Cb&&(i=(r=this.Db>>16,r>=0?bJ(this,i):this.Cb.ih(this,-1-r,null,i))),aW(this,u(e,160),i)}return vx(this,e,t,i)},s.jh=function(e,t,i){return t==7?aW(this,null,i):tF(this,e,t,i)},s.lh=function(e){switch(e){case 7:return!!hMn(this);case 8:return!An("",this.a)}return PQ(this,e)},s.sh=function(e,t){switch(e){case 7:zY(this,u(t,160));return;case 8:aV(this,Ce(t));return}SJ(this,e,t)},s.zh=function(){return Dc(),e1n},s.Bh=function(e){switch(e){case 7:zY(this,null);return;case 8:aV(this,"");return}FQ(this,e)},s.Ib=function(){return Lxn(this)},s.a="",w(Ba,"ElkLabelImpl",354),b(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},nG),s.Qg=function(e){return vJ(this,e)},s._g=function(e,t,i){switch(e){case 9:return!this.c&&(this.c=new V(Ru,this,9,9)),this.c;case 10:return!this.a&&(this.a=new V(Pt,this,10,11)),this.a;case 11:return At(this);case 12:return!this.b&&(this.b=new V(di,this,12,3)),this.b;case 13:return qn(),!this.a&&(this.a=new V(Pt,this,10,11)),this.a.i>0}return tJ(this,e,t,i)},s.hh=function(e,t,i){var r;switch(t){case 9:return!this.c&&(this.c=new V(Ru,this,9,9)),Oc(this.c,e,i);case 10:return!this.a&&(this.a=new V(Pt,this,10,11)),Oc(this.a,e,i);case 11:return this.Cb&&(i=(r=this.Db>>16,r>=0?vJ(this,i):this.Cb.ih(this,-1-r,null,i))),kU(this,u(e,33),i);case 12:return!this.b&&(this.b=new V(di,this,12,3)),Oc(this.b,e,i)}return yJ(this,e,t,i)},s.jh=function(e,t,i){switch(t){case 9:return!this.c&&(this.c=new V(Ru,this,9,9)),zi(this.c,e,i);case 10:return!this.a&&(this.a=new V(Pt,this,10,11)),zi(this.a,e,i);case 11:return kU(this,null,i);case 12:return!this.b&&(this.b=new V(di,this,12,3)),zi(this.b,e,i)}return jJ(this,e,t,i)},s.lh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!At(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new V(Pt,this,10,11)),this.a.i>0}return zV(this,e)},s.sh=function(e,t){switch(e){case 9:!this.c&&(this.c=new V(Ru,this,9,9)),de(this.c),!this.c&&(this.c=new V(Ru,this,9,9)),Dt(this.c,u(t,14));return;case 10:!this.a&&(this.a=new V(Pt,this,10,11)),de(this.a),!this.a&&(this.a=new V(Pt,this,10,11)),Dt(this.a,u(t,14));return;case 11:HY(this,u(t,33));return;case 12:!this.b&&(this.b=new V(di,this,12,3)),de(this.b),!this.b&&(this.b=new V(di,this,12,3)),Dt(this.b,u(t,14));return}OY(this,e,t)},s.zh=function(){return Dc(),t1n},s.Bh=function(e){switch(e){case 9:!this.c&&(this.c=new V(Ru,this,9,9)),de(this.c);return;case 10:!this.a&&(this.a=new V(Pt,this,10,11)),de(this.a);return;case 11:HY(this,null);return;case 12:!this.b&&(this.b=new V(di,this,12,3)),de(this.b);return}XQ(this,e)},s.Ib=function(){return uZ(this)},w(Ba,"ElkNodeImpl",239),b(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},eG),s.Qg=function(e){return wJ(this,e)},s._g=function(e,t,i){return e==9?nf(this):tJ(this,e,t,i)},s.hh=function(e,t,i){var r;switch(t){case 9:return this.Cb&&(i=(r=this.Db>>16,r>=0?wJ(this,i):this.Cb.ih(this,-1-r,null,i))),aU(this,u(e,33),i)}return yJ(this,e,t,i)},s.jh=function(e,t,i){return t==9?aU(this,null,i):jJ(this,e,t,i)},s.lh=function(e){return e==9?!!nf(this):zV(this,e)},s.sh=function(e,t){switch(e){case 9:KY(this,u(t,33));return}OY(this,e,t)},s.zh=function(){return Dc(),i1n},s.Bh=function(e){switch(e){case 9:KY(this,null);return}XQ(this,e)},s.Ib=function(){return jBn(this)},w(Ba,"ElkPortImpl",186);var xne=Et(Ui,"BasicEMap/Entry");b(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},_2n),s.Fb=function(e){return this===e},s.cd=function(){return this.b},s.Hb=function(){return md(this)},s.Uh=function(e){dV(this,u(e,146))},s._g=function(e,t,i){switch(e){case 0:return this.b;case 1:return this.c}return BT(this,e,t,i)},s.lh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return zF(this,e)},s.sh=function(e,t){switch(e){case 0:dV(this,u(t,146));return;case 1:gV(this,t);return}Px(this,e,t)},s.zh=function(){return Dc(),Ul},s.Bh=function(e){switch(e){case 0:dV(this,null);return;case 1:gV(this,null);return}Cx(this,e)},s.Sh=function(){var e;return this.a==-1&&(e=this.b,this.a=e?mt(e):0),this.a},s.dd=function(){return this.c},s.Th=function(e){this.a=e},s.ed=function(e){var t;return t=this.c,gV(this,e),t},s.Ib=function(){var e;return this.Db&64?yo(this):(e=new V1,De(De(De(e,this.b?this.b.tg():iu),TN),y5(this.c)),e.a)},s.a=-1,s.c=null;var S0=w(Ba,"ElkPropertyToValueMapEntryImpl",1092);b(984,1,{},q2n),w(Fi,"JsonAdapter",984),b(210,60,Uh,Af),w(Fi,"JsonImportException",210),b(857,1,{},NFn),w(Fi,"JsonImporter",857),b(891,1,{},akn),w(Fi,"JsonImporter/lambda$0$Type",891),b(892,1,{},dkn),w(Fi,"JsonImporter/lambda$1$Type",892),b(900,1,{},W6n),w(Fi,"JsonImporter/lambda$10$Type",900),b(902,1,{},bkn),w(Fi,"JsonImporter/lambda$11$Type",902),b(903,1,{},wkn),w(Fi,"JsonImporter/lambda$12$Type",903),b(909,1,{},ATn),w(Fi,"JsonImporter/lambda$13$Type",909),b(908,1,{},MTn),w(Fi,"JsonImporter/lambda$14$Type",908),b(904,1,{},gkn),w(Fi,"JsonImporter/lambda$15$Type",904),b(905,1,{},pkn),w(Fi,"JsonImporter/lambda$16$Type",905),b(906,1,{},vkn),w(Fi,"JsonImporter/lambda$17$Type",906),b(907,1,{},mkn),w(Fi,"JsonImporter/lambda$18$Type",907),b(912,1,{},X6n),w(Fi,"JsonImporter/lambda$19$Type",912),b(893,1,{},V6n),w(Fi,"JsonImporter/lambda$2$Type",893),b(910,1,{},Q6n),w(Fi,"JsonImporter/lambda$20$Type",910),b(911,1,{},J6n),w(Fi,"JsonImporter/lambda$21$Type",911),b(915,1,{},Y6n),w(Fi,"JsonImporter/lambda$22$Type",915),b(913,1,{},Z6n),w(Fi,"JsonImporter/lambda$23$Type",913),b(914,1,{},nmn),w(Fi,"JsonImporter/lambda$24$Type",914),b(917,1,{},emn),w(Fi,"JsonImporter/lambda$25$Type",917),b(916,1,{},tmn),w(Fi,"JsonImporter/lambda$26$Type",916),b(918,1,Yn,kkn),s.td=function(e){Xde(this.b,this.a,Ce(e))},w(Fi,"JsonImporter/lambda$27$Type",918),b(919,1,Yn,ykn),s.td=function(e){Vde(this.b,this.a,Ce(e))},w(Fi,"JsonImporter/lambda$28$Type",919),b(920,1,{},jkn),w(Fi,"JsonImporter/lambda$29$Type",920),b(896,1,{},imn),w(Fi,"JsonImporter/lambda$3$Type",896),b(921,1,{},Ekn),w(Fi,"JsonImporter/lambda$30$Type",921),b(922,1,{},rmn),w(Fi,"JsonImporter/lambda$31$Type",922),b(923,1,{},cmn),w(Fi,"JsonImporter/lambda$32$Type",923),b(924,1,{},umn),w(Fi,"JsonImporter/lambda$33$Type",924),b(925,1,{},smn),w(Fi,"JsonImporter/lambda$34$Type",925),b(859,1,{},omn),w(Fi,"JsonImporter/lambda$35$Type",859),b(929,1,{},vEn),w(Fi,"JsonImporter/lambda$36$Type",929),b(926,1,Yn,fmn),s.td=function(e){Yae(this.a,u(e,469))},w(Fi,"JsonImporter/lambda$37$Type",926),b(927,1,Yn,Pkn),s.td=function(e){Mre(this.a,this.b,u(e,202))},w(Fi,"JsonImporter/lambda$38$Type",927),b(928,1,Yn,Ikn),s.td=function(e){Are(this.a,this.b,u(e,202))},w(Fi,"JsonImporter/lambda$39$Type",928),b(894,1,{},hmn),w(Fi,"JsonImporter/lambda$4$Type",894),b(930,1,Yn,lmn),s.td=function(e){Zae(this.a,u(e,8))},w(Fi,"JsonImporter/lambda$40$Type",930),b(895,1,{},amn),w(Fi,"JsonImporter/lambda$5$Type",895),b(899,1,{},dmn),w(Fi,"JsonImporter/lambda$6$Type",899),b(897,1,{},bmn),w(Fi,"JsonImporter/lambda$7$Type",897),b(898,1,{},wmn),w(Fi,"JsonImporter/lambda$8$Type",898),b(901,1,{},gmn),w(Fi,"JsonImporter/lambda$9$Type",901),b(948,1,Yn,pmn),s.td=function(e){j2(this.a,new Z0(Ce(e)))},w(Fi,"JsonMetaDataConverter/lambda$0$Type",948),b(949,1,Yn,vmn),s.td=function(e){whe(this.a,u(e,237))},w(Fi,"JsonMetaDataConverter/lambda$1$Type",949),b(950,1,Yn,mmn),s.td=function(e){ale(this.a,u(e,149))},w(Fi,"JsonMetaDataConverter/lambda$2$Type",950),b(951,1,Yn,kmn),s.td=function(e){ghe(this.a,u(e,175))},w(Fi,"JsonMetaDataConverter/lambda$3$Type",951),b(237,22,{3:1,35:1,22:1,237:1},a2);var VP,QP,hH,JP,YP,ZP,lH,aH,nI=Me(ok,"GraphFeature",237,Ie,B0e,_oe),Lne;b(13,1,{35:1,146:1},kt,ii,In,tr),s.wd=function(e){return Tce(this,u(e,146))},s.Fb=function(e){return XTn(this,e)},s.wg=function(){return cn(this)},s.tg=function(){return this.b},s.Hb=function(){return m1(this.b)},s.Ib=function(){return this.b},w(ok,"Property",13),b(818,1,lt,$q),s.ue=function(e,t){return qge(this,u(e,94),u(t,94))},s.Fb=function(e){return this===e},s.ve=function(){return new st(this)},w(ok,"PropertyHolderComparator",818),b(695,1,yi,Fq),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return Zde(this)},s.Qb=function(){d8n()},s.Ob=function(){return!!this.a},w(mA,"ElkGraphUtil/AncestorIterator",695);var c1n=Et(Ui,"EList");b(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),s.Vc=function(e,t){s6(this,e,t)},s.Fc=function(e){return me(this,e)},s.Wc=function(e,t){return NV(this,e,t)},s.Gc=function(e){return Dt(this,e)},s.Zh=function(){return new w2(this)},s.$h=function(){return new u8(this)},s._h=function(e){return J8(this,e)},s.ai=function(){return!0},s.bi=function(e,t){},s.ci=function(){},s.di=function(e,t){A$(this,e,t)},s.ei=function(e,t,i){},s.fi=function(e,t){},s.gi=function(e,t,i){},s.Fb=function(e){return oBn(this,e)},s.Hb=function(){return DV(this)},s.hi=function(){return!1},s.Kc=function(){return new ie(this)},s.Yc=function(){return new b2(this)},s.Zc=function(e){var t;if(t=this.gc(),e<0||e>t)throw T(new V0(e,t));return new DD(this,e)},s.ji=function(e,t){this.ii(e,this.Xc(t))},s.Mc=function(e){return BC(this,e)},s.li=function(e,t){return t},s._c=function(e,t){return Gw(this,e,t)},s.Ib=function(){return CQ(this)},s.ni=function(){return!0},s.oi=function(e,t){return W3(this,t)},w(Ui,"AbstractEList",67),b(63,67,Wf,Jy,Ld,CV),s.Vh=function(e,t){return mx(this,e,t)},s.Wh=function(e){return hFn(this,e)},s.Xh=function(e,t){a7(this,e,t)},s.Yh=function(e){F8(this,e)},s.pi=function(e){return zX(this,e)},s.$b=function(){U5(this)},s.Hc=function(e){return o4(this,e)},s.Xb=function(e){return D(this,e)},s.qi=function(e){var t,i,r;++this.j,i=this.g==null?0:this.g.length,e>i&&(r=this.g,t=i+(i/2|0)+4,t=0?(this.$c(t),!0):!1},s.mi=function(e,t){return this.Ui(e,this.oi(e,t))},s.gc=function(){return this.Vi()},s.Pc=function(){return this.Wi()},s.Qc=function(e){return this.Xi(e)},s.Ib=function(){return this.Yi()},w(Ui,"DelegatingEList",1995),b(1996,1995,rGn),s.Vh=function(e,t){return wZ(this,e,t)},s.Wh=function(e){return this.Vh(this.Vi(),e)},s.Xh=function(e,t){WLn(this,e,t)},s.Yh=function(e){BLn(this,e)},s.ai=function(){return!this.bj()},s.$b=function(){$6(this)},s.Zi=function(e,t,i,r,c){return new QTn(this,e,t,i,r,c)},s.$i=function(e){et(this.Ai(),e)},s._i=function(){return null},s.aj=function(){return-1},s.Ai=function(){return null},s.bj=function(){return!1},s.cj=function(e,t){return t},s.dj=function(e,t){return t},s.ej=function(){return!1},s.fj=function(){return!this.Ri()},s.ii=function(e,t){var i,r;return this.ej()?(r=this.fj(),i=WJ(this,e,t),this.$i(this.Zi(7,Q(t),i,e,r)),i):WJ(this,e,t)},s.$c=function(e){var t,i,r,c;return this.ej()?(i=null,r=this.fj(),t=this.Zi(4,c=OE(this,e),null,e,r),this.bj()&&c?(i=this.dj(c,i),i?(i.Ei(t),i.Fi()):this.$i(t)):i?(i.Ei(t),i.Fi()):this.$i(t),c):(c=OE(this,e),this.bj()&&c&&(i=this.dj(c,null),i&&i.Fi()),c)},s.mi=function(e,t){return eRn(this,e,t)},w(sp,"DelegatingNotifyingListImpl",1996),b(143,1,jk),s.Ei=function(e){return FJ(this,e)},s.Fi=function(){L$(this)},s.xi=function(){return this.d},s._i=function(){return null},s.gj=function(){return null},s.yi=function(e){return-1},s.zi=function(){return KNn(this)},s.Ai=function(){return null},s.Bi=function(){return QY(this)},s.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},s.hj=function(){return!1},s.Di=function(e){var t,i,r,c,o,f,h,l,a,d,g;switch(this.d){case 1:case 2:switch(c=e.xi(),c){case 1:case 2:if(o=e.Ai(),B(o)===B(this.Ai())&&this.yi(null)==e.yi(null))return this.g=e.zi(),e.xi()==1&&(this.d=1),!0}case 4:{switch(c=e.xi(),c){case 4:{if(o=e.Ai(),B(o)===B(this.Ai())&&this.yi(null)==e.yi(null))return a=DZ(this),l=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,f=e.Ci(),this.d=6,g=new Ld(2),l<=f?(me(g,this.n),me(g,e.Bi()),this.g=A(M(be,1),Le,25,15,[this.o=l,f+1])):(me(g,e.Bi()),me(g,this.n),this.g=A(M(be,1),Le,25,15,[this.o=f,l])),this.n=g,a||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(c=e.xi(),c){case 4:{if(o=e.Ai(),B(o)===B(this.Ai())&&this.yi(null)==e.yi(null)){for(a=DZ(this),f=e.Ci(),d=u(this.g,48),r=F(be,Le,25,d.length+1,15,1),t=0;t>>0,t.toString(16))),r.a+=" (eventType: ",this.d){case 1:{r.a+="SET";break}case 2:{r.a+="UNSET";break}case 3:{r.a+="ADD";break}case 5:{r.a+="ADD_MANY";break}case 4:{r.a+="REMOVE";break}case 6:{r.a+="REMOVE_MANY";break}case 7:{r.a+="MOVE";break}case 8:{r.a+="REMOVING_ADAPTER";break}case 9:{r.a+="RESOLVE";break}default:{eO(r,this.d);break}}if(PBn(this)&&(r.a+=", touch: true"),r.a+=", position: ",eO(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",w5(r,this.Ai()),r.a+=", feature: ",w5(r,this._i()),r.a+=", oldValue: ",w5(r,QY(this)),r.a+=", newValue: ",this.d==6&&I(this.g,48)){for(i=u(this.g,48),r.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new S5(this),this.a=this.j),Ah(this.b,e)):o4(this,e)},s.ni=function(){return!0},s.a=0,w(Ui,"AbstractEList/1",953),b(295,73,VL,V0),w(Ui,"AbstractEList/BasicIndexOutOfBoundsException",295),b(40,1,yi,ie),s.Nb=function(e){Oi(this,e)},s.mj=function(){if(this.i.j!=this.f)throw T(new vs)},s.nj=function(){return oe(this)},s.Ob=function(){return this.e!=this.i.gc()},s.Pb=function(){return this.nj()},s.Qb=function(){p6(this)},s.e=0,s.f=0,s.g=-1,w(Ui,"AbstractEList/EIterator",40),b(278,40,hh,b2,DD),s.Qb=function(){p6(this)},s.Rb=function(e){a$n(this,e)},s.oj=function(){var e;try{return e=this.d.Xb(--this.e),this.mj(),this.g=this.e,e}catch(t){throw t=jt(t),I(t,73)?(this.mj(),T(new ic)):T(t)}},s.pj=function(e){dFn(this,e)},s.Sb=function(){return this.e!=0},s.Tb=function(){return this.e},s.Ub=function(){return this.oj()},s.Vb=function(){return this.e-1},s.Wb=function(e){this.pj(e)},w(Ui,"AbstractEList/EListIterator",278),b(341,40,yi,w2),s.nj=function(){return UF(this)},s.Qb=function(){throw T(new ye)},w(Ui,"AbstractEList/NonResolvingEIterator",341),b(385,278,hh,u8,AU),s.Rb=function(e){throw T(new ye)},s.nj=function(){var e;try{return e=this.c.ki(this.e),this.mj(),this.g=this.e++,e}catch(t){throw t=jt(t),I(t,73)?(this.mj(),T(new ic)):T(t)}},s.oj=function(){var e;try{return e=this.c.ki(--this.e),this.mj(),this.g=this.e,e}catch(t){throw t=jt(t),I(t,73)?(this.mj(),T(new ic)):T(t)}},s.Qb=function(){throw T(new ye)},s.Wb=function(e){throw T(new ye)},w(Ui,"AbstractEList/NonResolvingEListIterator",385),b(1982,67,cGn),s.Vh=function(e,t){var i,r,c,o,f,h,l,a,d,g,p;if(c=t.gc(),c!=0){for(a=u(Rn(this.a,4),126),d=a==null?0:a.length,p=d+c,r=bF(this,p),g=d-e,g>0&&gc(a,e,r,e+c,g),l=t.Kc(),f=0;fi)throw T(new V0(e,i));return new sTn(this,e)},s.$b=function(){var e,t;++this.j,e=u(Rn(this.a,4),126),t=e==null?0:e.length,r4(this,null),A$(this,t,e)},s.Hc=function(e){var t,i,r,c,o;if(t=u(Rn(this.a,4),126),t!=null){if(e!=null){for(r=t,c=0,o=r.length;c=i)throw T(new V0(e,i));return t[e]},s.Xc=function(e){var t,i,r;if(t=u(Rn(this.a,4),126),t!=null){if(e!=null){for(i=0,r=t.length;ii)throw T(new V0(e,i));return new uTn(this,e)},s.ii=function(e,t){var i,r,c;if(i=k$n(this),c=i==null?0:i.length,e>=c)throw T(new vr(NB+e+Ra+c));if(t>=c)throw T(new vr(BB+t+Ra+c));return r=i[t],e!=t&&(e0&&gc(e,0,t,0,i),t},s.Qc=function(e){var t,i,r;return t=u(Rn(this.a,4),126),r=t==null?0:t.length,r>0&&(e.lengthr&&Mt(e,r,null),e};var Nne;w(Ui,"ArrayDelegatingEList",1982),b(1038,40,yi,gSn),s.mj=function(){if(this.b.j!=this.f||B(u(Rn(this.b.a,4),126))!==B(this.a))throw T(new vs)},s.Qb=function(){p6(this),this.a=u(Rn(this.b.a,4),126)},w(Ui,"ArrayDelegatingEList/EIterator",1038),b(706,278,hh,ICn,uTn),s.mj=function(){if(this.b.j!=this.f||B(u(Rn(this.b.a,4),126))!==B(this.a))throw T(new vs)},s.pj=function(e){dFn(this,e),this.a=u(Rn(this.b.a,4),126)},s.Qb=function(){p6(this),this.a=u(Rn(this.b.a,4),126)},w(Ui,"ArrayDelegatingEList/EListIterator",706),b(1039,341,yi,pSn),s.mj=function(){if(this.b.j!=this.f||B(u(Rn(this.b.a,4),126))!==B(this.a))throw T(new vs)},w(Ui,"ArrayDelegatingEList/NonResolvingEIterator",1039),b(707,385,hh,OCn,sTn),s.mj=function(){if(this.b.j!=this.f||B(u(Rn(this.b.a,4),126))!==B(this.a))throw T(new vs)},w(Ui,"ArrayDelegatingEList/NonResolvingEListIterator",707),b(606,295,VL,xO),w(Ui,"BasicEList/BasicIndexOutOfBoundsException",606),b(696,63,Wf,az),s.Vc=function(e,t){throw T(new ye)},s.Fc=function(e){throw T(new ye)},s.Wc=function(e,t){throw T(new ye)},s.Gc=function(e){throw T(new ye)},s.$b=function(){throw T(new ye)},s.qi=function(e){throw T(new ye)},s.Kc=function(){return this.Zh()},s.Yc=function(){return this.$h()},s.Zc=function(e){return this._h(e)},s.ii=function(e,t){throw T(new ye)},s.ji=function(e,t){throw T(new ye)},s.$c=function(e){throw T(new ye)},s.Mc=function(e){throw T(new ye)},s._c=function(e,t){throw T(new ye)},w(Ui,"BasicEList/UnmodifiableEList",696),b(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),s.Vc=function(e,t){wce(this,e,u(t,42))},s.Fc=function(e){return eue(this,u(e,42))},s.Jc=function(e){$i(this,e)},s.Xb=function(e){return u(D(this.c,e),133)},s.ii=function(e,t){return u(this.c.ii(e,t),42)},s.ji=function(e,t){gce(this,e,u(t,42))},s.Lc=function(){return new $n(null,new xn(this,16))},s.$c=function(e){return u(this.c.$c(e),42)},s._c=function(e,t){return fhe(this,e,u(t,42))},s.ad=function(e){Lw(this,e)},s.Nc=function(){return new xn(this,16)},s.Oc=function(){return new $n(null,new xn(this,16))},s.Wc=function(e,t){return this.c.Wc(e,t)},s.Gc=function(e){return this.c.Gc(e)},s.$b=function(){this.c.$b()},s.Hc=function(e){return this.c.Hc(e)},s.Ic=function(e){return t7(this.c,e)},s.qj=function(){var e,t,i;if(this.d==null){for(this.d=F(u1n,Xtn,63,2*this.f+1,0,1),i=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)e=u(t.nj(),133),KT(this,e);this.e=i}},s.Fb=function(e){return tEn(this,e)},s.Hb=function(){return DV(this.c)},s.Xc=function(e){return this.c.Xc(e)},s.rj=function(){this.c=new jmn(this)},s.dc=function(){return this.f==0},s.Kc=function(){return this.c.Kc()},s.Yc=function(){return this.c.Yc()},s.Zc=function(e){return this.c.Zc(e)},s.sj=function(){return N8(this)},s.tj=function(e,t,i){return new mEn(e,t,i)},s.uj=function(){return new W2n},s.Mc=function(e){return xIn(this,e)},s.gc=function(){return this.f},s.bd=function(e,t){return new ch(this.c,e,t)},s.Pc=function(){return this.c.Pc()},s.Qc=function(e){return this.c.Qc(e)},s.Ib=function(){return CQ(this.c)},s.e=0,s.f=0,w(Ui,"BasicEMap",705),b(1033,63,Wf,jmn),s.bi=function(e,t){Yte(this,u(t,133))},s.ei=function(e,t,i){var r;++(r=this,u(t,133),r).a.e},s.fi=function(e,t){Zte(this,u(t,133))},s.gi=function(e,t,i){Hce(this,u(t,133),u(i,133))},s.di=function(e,t){TOn(this.a)},w(Ui,"BasicEMap/1",1033),b(1034,63,Wf,W2n),s.ri=function(e){return F(hMe,uGn,612,e,0,1)},w(Ui,"BasicEMap/2",1034),b(1035,df,pu,Emn),s.$b=function(){this.a.c.$b()},s.Hc=function(e){return NF(this.a,e)},s.Kc=function(){return this.a.f==0?(o3(),xy.a):new r8n(this.a)},s.Mc=function(e){var t;return t=this.a.f,IT(this.a,e),this.a.f!=t},s.gc=function(){return this.a.f},w(Ui,"BasicEMap/3",1035),b(1036,28,Sb,Cmn),s.$b=function(){this.a.c.$b()},s.Hc=function(e){return fBn(this.a,e)},s.Kc=function(){return this.a.f==0?(o3(),xy.a):new c8n(this.a)},s.gc=function(){return this.a.f},w(Ui,"BasicEMap/4",1036),b(1037,df,pu,Tmn),s.$b=function(){this.a.c.$b()},s.Hc=function(e){var t,i,r,c,o,f,h,l,a;if(this.a.f>0&&I(e,42)&&(this.a.qj(),l=u(e,42),h=l.cd(),c=h==null?0:mt(h),o=dU(this.a,c),t=this.a.d[o],t)){for(i=u(t.g,367),a=t.i,f=0;f"+this.c},s.a=0;var hMe=w(Ui,"BasicEMap/EntryImpl",612);b(536,1,{},Qy),w(Ui,"BasicEMap/View",536);var xy;b(768,1,{}),s.Fb=function(e){return DY((Pn(),cr),e)},s.Hb=function(){return GV((Pn(),cr))},s.Ib=function(){return kl((Pn(),cr))},w(Ui,"ECollections/BasicEmptyUnmodifiableEList",768),b(1312,1,hh,X2n),s.Nb=function(e){Oi(this,e)},s.Rb=function(e){throw T(new ye)},s.Ob=function(){return!1},s.Sb=function(){return!1},s.Pb=function(){throw T(new ic)},s.Tb=function(){return 0},s.Ub=function(){throw T(new ic)},s.Vb=function(){return-1},s.Qb=function(){throw T(new ye)},s.Wb=function(e){throw T(new ye)},w(Ui,"ECollections/BasicEmptyUnmodifiableEList/1",1312),b(1310,768,{20:1,14:1,15:1,58:1},w9n),s.Vc=function(e,t){M8n()},s.Fc=function(e){return A8n()},s.Wc=function(e,t){return S8n()},s.Gc=function(e){return P8n()},s.$b=function(){I8n()},s.Hc=function(e){return!1},s.Ic=function(e){return!1},s.Jc=function(e){$i(this,e)},s.Xb=function(e){return wz((Pn(),e)),null},s.Xc=function(e){return-1},s.dc=function(){return!0},s.Kc=function(){return this.a},s.Yc=function(){return this.a},s.Zc=function(e){return this.a},s.ii=function(e,t){return O8n()},s.ji=function(e,t){D8n()},s.Lc=function(){return new $n(null,new xn(this,16))},s.$c=function(e){return $8n()},s.Mc=function(e){return F8n()},s._c=function(e,t){return x8n()},s.gc=function(){return 0},s.ad=function(e){Lw(this,e)},s.Nc=function(){return new xn(this,16)},s.Oc=function(){return new $n(null,new xn(this,16))},s.bd=function(e,t){return Pn(),new ch(cr,e,t)},s.Pc=function(){return wW((Pn(),cr))},s.Qc=function(e){return Pn(),y7(cr,e)},w(Ui,"ECollections/EmptyUnmodifiableEList",1310),b(1311,768,{20:1,14:1,15:1,58:1,589:1},g9n),s.Vc=function(e,t){M8n()},s.Fc=function(e){return A8n()},s.Wc=function(e,t){return S8n()},s.Gc=function(e){return P8n()},s.$b=function(){I8n()},s.Hc=function(e){return!1},s.Ic=function(e){return!1},s.Jc=function(e){$i(this,e)},s.Xb=function(e){return wz((Pn(),e)),null},s.Xc=function(e){return-1},s.dc=function(){return!0},s.Kc=function(){return this.a},s.Yc=function(){return this.a},s.Zc=function(e){return this.a},s.ii=function(e,t){return O8n()},s.ji=function(e,t){D8n()},s.Lc=function(){return new $n(null,new xn(this,16))},s.$c=function(e){return $8n()},s.Mc=function(e){return F8n()},s._c=function(e,t){return x8n()},s.gc=function(){return 0},s.ad=function(e){Lw(this,e)},s.Nc=function(){return new xn(this,16)},s.Oc=function(){return new $n(null,new xn(this,16))},s.bd=function(e,t){return Pn(),new ch(cr,e,t)},s.Pc=function(){return wW((Pn(),cr))},s.Qc=function(e){return Pn(),y7(cr,e)},s.sj=function(){return Pn(),Pn(),ph},w(Ui,"ECollections/EmptyUnmodifiableEMap",1311);var o1n=Et(Ui,"Enumerator"),eI;b(281,1,{281:1},zx),s.Fb=function(e){var t;return this===e?!0:I(e,281)?(t=u(e,281),this.f==t.f&&Ife(this.i,t.i)&&vD(this.a,this.f&256?t.f&256?t.a:null:t.f&256?null:t.a)&&vD(this.d,t.d)&&vD(this.g,t.g)&&vD(this.e,t.e)&&Cpe(this,t)):!1},s.Hb=function(){return this.f},s.Ib=function(){return _Bn(this)},s.f=0;var Bne=0,Rne=0,_ne=0,Kne=0,f1n=0,h1n=0,l1n=0,a1n=0,d1n=0,Hne,a9=0,d9=0,qne=0,Gne=0,tI,b1n;w(Ui,"URI",281),b(1091,43,sg,p9n),s.zc=function(e,t){return u(kr(this,Ce(e),u(t,281)),281)},w(Ui,"URI/URICache",1091),b(497,63,Wf,H2n,$E),s.hi=function(){return!0},w(Ui,"UniqueEList",497),b(581,60,Uh,xC),w(Ui,"WrappedException",581);var Be=Et(Is,fGn),sw=Et(Is,hGn),su=Et(Is,lGn),ow=Et(Is,aGn),Qo=Et(Is,dGn),ro=Et(Is,"EClass"),wH=Et(Is,"EDataType"),zne;b(1183,43,sg,v9n),s.xc=function(e){return mi(e)?vc(this,e):Vr(Ar(this.f,e))},w(Is,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var iI=Et(Is,"EEnum"),e1=Et(Is,bGn),ar=Et(Is,wGn),co=Et(Is,gGn),uo,P0=Et(Is,pGn),fw=Et(Is,vGn);b(1029,1,{},K2n),s.Ib=function(){return"NIL"},w(Is,"EStructuralFeature/Internal/DynamicValueHolder/1",1029);var Une;b(1028,43,sg,m9n),s.xc=function(e){return mi(e)?vc(this,e):Vr(Ar(this.f,e))},w(Is,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var zc=Et(Is,mGn),Ip=Et(Is,"EValidator/PatternMatcher"),w1n,g1n,Nn,x1,hw,Xl,Wne,Xne,Vne,Vl,L1,Ql,I0,Cf,Qne,Jne,so,N1,Yne,B1,lw,qg,nr,Zne,nee,O0,rI=Et(vt,"FeatureMap/Entry");b(535,1,{72:1},Yj),s.ak=function(){return this.a},s.dd=function(){return this.b},w(Bn,"BasicEObjectImpl/1",535),b(1027,1,GB,Okn),s.Wj=function(e){return T$(this.a,this.b,e)},s.fj=function(){return lMn(this.a,this.b)},s.Wb=function(e){JW(this.a,this.b,e)},s.Xj=function(){Mhe(this.a,this.b)},w(Bn,"BasicEObjectImpl/4",1027),b(1983,1,{108:1}),s.bk=function(e){this.e=e==0?eee:F(Zn,rn,1,e,5,1)},s.Ch=function(e){return this.e[e]},s.Dh=function(e,t){this.e[e]=t},s.Eh=function(e){this.e[e]=null},s.ck=function(){return this.c},s.dk=function(){throw T(new ye)},s.ek=function(){throw T(new ye)},s.fk=function(){return this.d},s.gk=function(){return this.e!=null},s.hk=function(e){this.c=e},s.ik=function(e){throw T(new ye)},s.jk=function(e){throw T(new ye)},s.kk=function(e){this.d=e};var eee;w(Bn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),b(185,1983,{108:1},Fo),s.dk=function(){return this.a},s.ek=function(){return this.b},s.ik=function(e){this.a=e},s.jk=function(e){this.b=e},w(Bn,"BasicEObjectImpl/EPropertiesHolderImpl",185),b(506,97,kqn,Yy),s.Kg=function(){return this.f},s.Pg=function(){return this.k},s.Rg=function(e,t){this.g=e,this.i=t},s.Tg=function(){return this.j&2?this.ph().ck():this.zh()},s.Vg=function(){return this.i},s.Mg=function(){return(this.j&1)!=0},s.eh=function(){return this.g},s.kh=function(){return(this.j&4)!=0},s.ph=function(){return!this.k&&(this.k=new Fo),this.k},s.th=function(e){this.ph().hk(e),e?this.j|=2:this.j&=-3},s.vh=function(e){this.ph().jk(e),e?this.j|=4:this.j&=-5},s.zh=function(){return(ol(),Nn).S},s.i=0,s.j=1,w(Bn,"EObjectImpl",506),b(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},JU),s.Ch=function(e){return this.e[e]},s.Dh=function(e,t){this.e[e]=t},s.Eh=function(e){this.e[e]=null},s.Tg=function(){return this.d},s.Yg=function(e){return yt(this.d,e)},s.$g=function(){return this.d},s.dh=function(){return this.e!=null},s.ph=function(){return!this.k&&(this.k=new V2n),this.k},s.th=function(e){this.d=e},s.yh=function(){var e;return this.e==null&&(e=ee(this.d),this.e=e==0?tee:F(Zn,rn,1,e,5,1)),this},s.Ah=function(){return 0};var tee;w(Bn,"DynamicEObjectImpl",780),b(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},UEn),s.Fb=function(e){return this===e},s.Hb=function(){return md(this)},s.th=function(e){this.d=e,this.b=R7(e,"key"),this.c=R7(e,im)},s.Sh=function(){var e;return this.a==-1&&(e=N$(this,this.b),this.a=e==null?0:mt(e)),this.a},s.cd=function(){return N$(this,this.b)},s.dd=function(){return N$(this,this.c)},s.Th=function(e){this.a=e},s.Uh=function(e){JW(this,this.b,e)},s.ed=function(e){var t;return t=N$(this,this.c),JW(this,this.c,e),t},s.a=0,w(Bn,"DynamicEObjectImpl/BasicEMapEntry",1376),b(1377,1,{108:1},V2n),s.bk=function(e){throw T(new ye)},s.Ch=function(e){throw T(new ye)},s.Dh=function(e,t){throw T(new ye)},s.Eh=function(e){throw T(new ye)},s.ck=function(){throw T(new ye)},s.dk=function(){return this.a},s.ek=function(){return this.b},s.fk=function(){return this.c},s.gk=function(){throw T(new ye)},s.hk=function(e){throw T(new ye)},s.ik=function(e){this.a=e},s.jk=function(e){this.b=e},s.kk=function(e){this.c=e},w(Bn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),b(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},JH),s.Qg=function(e){return gJ(this,e)},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.d;case 2:return i?(!this.b&&(this.b=new qu((Sn(),nr),tc,this)),this.b):(!this.b&&(this.b=new qu((Sn(),nr),tc,this)),N8(this.b));case 3:return gMn(this);case 4:return!this.a&&(this.a=new Jt(zl,this,4)),this.a;case 5:return!this.c&&(this.c=new Aw(zl,this,5)),this.c}return Cs(this,e-ee((Sn(),x1)),On((r=u(Rn(this,16),26),r||x1),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 3:return this.Cb&&(i=(c=this.Db>>16,c>=0?gJ(this,i):this.Cb.ih(this,-1-c,null,i))),dW(this,u(e,147),i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),x1)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),x1)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 2:return!this.b&&(this.b=new qu((Sn(),nr),tc,this)),yE(this.b,e,i);case 3:return dW(this,null,i);case 4:return!this.a&&(this.a=new Jt(zl,this,4)),zi(this.a,e,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),x1)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),x1)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!gMn(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return js(this,e-ee((Sn(),x1)),On((t=u(Rn(this,16),26),t||x1),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:wfe(this,Ce(t));return;case 2:!this.b&&(this.b=new qu((Sn(),nr),tc,this)),fT(this.b,t);return;case 3:INn(this,u(t,147));return;case 4:!this.a&&(this.a=new Jt(zl,this,4)),de(this.a),!this.a&&(this.a=new Jt(zl,this,4)),Dt(this.a,u(t,14));return;case 5:!this.c&&(this.c=new Aw(zl,this,5)),de(this.c),!this.c&&(this.c=new Aw(zl,this,5)),Dt(this.c,u(t,14));return}Ps(this,e-ee((Sn(),x1)),On((i=u(Rn(this,16),26),i||x1),e),t)},s.zh=function(){return Sn(),x1},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:pV(this,null);return;case 2:!this.b&&(this.b=new qu((Sn(),nr),tc,this)),this.b.c.$b();return;case 3:INn(this,null);return;case 4:!this.a&&(this.a=new Jt(zl,this,4)),de(this.a);return;case 5:!this.c&&(this.c=new Aw(zl,this,5)),de(this.c);return}As(this,e-ee((Sn(),x1)),On((t=u(Rn(this,16),26),t||x1),e))},s.Ib=function(){return zDn(this)},s.d=null,w(Bn,"EAnnotationImpl",510),b(151,705,Vtn,Wu),s.Xh=function(e,t){Jre(this,e,u(t,42))},s.lk=function(e,t){return zue(this,u(e,42),t)},s.pi=function(e){return u(u(this.c,69).pi(e),133)},s.Zh=function(){return u(this.c,69).Zh()},s.$h=function(){return u(this.c,69).$h()},s._h=function(e){return u(this.c,69)._h(e)},s.mk=function(e,t){return yE(this,e,t)},s.Wj=function(e){return u(this.c,76).Wj(e)},s.rj=function(){},s.fj=function(){return u(this.c,76).fj()},s.tj=function(e,t,i){var r;return r=u(ts(this.b).Nh().Jh(this.b),133),r.Th(e),r.Uh(t),r.ed(i),r},s.uj=function(){return new Lq(this)},s.Wb=function(e){fT(this,e)},s.Xj=function(){u(this.c,76).Xj()},w(vt,"EcoreEMap",151),b(158,151,Vtn,qu),s.qj=function(){var e,t,i,r,c,o;if(this.d==null){for(o=F(u1n,Xtn,63,2*this.f+1,0,1),i=this.c.Kc();i.e!=i.i.gc();)t=u(i.nj(),133),r=t.Sh(),c=(r&nt)%o.length,e=o[c],!e&&(e=o[c]=new Lq(this)),e.Fc(t);this.d=o}},w(Bn,"EAnnotationImpl/1",158),b(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),s._g=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),!!this.$j();case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q}return Cs(this,e-ee(this.zh()),On((r=u(Rn(this,16),26),r||this.zh()),e),t,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 9:return xD(this,i)}return c=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),c.Nj().Rj(this,Rc(this),t-ee(this.zh()),e,i)},s.lh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0)}return js(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.sh=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:this.Lh(Ce(t));return;case 2:g1(this,on(sn(t)));return;case 3:p1(this,on(sn(t)));return;case 4:d1(this,u(t,19).a);return;case 5:this.ok(u(t,19).a);return;case 8:Ca(this,u(t,138));return;case 9:r=af(this,u(t,87),null),r&&r.Fi();return}Ps(this,e-ee(this.zh()),On((i=u(Rn(this,16),26),i||this.zh()),e),t)},s.zh=function(){return Sn(),nee},s.Bh=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:this.Lh(null);return;case 2:g1(this,!0);return;case 3:p1(this,!0);return;case 4:d1(this,0);return;case 5:this.ok(1);return;case 8:Ca(this,null);return;case 9:i=af(this,null,null),i&&i.Fi();return}As(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.Gh=function(){qs(this),this.Bb|=1},s.Yj=function(){return qs(this)},s.Zj=function(){return this.t},s.$j=function(){var e;return e=this.t,e>1||e==-1},s.hi=function(){return(this.Bb&512)!=0},s.nk=function(e,t){return lQ(this,e,t)},s.ok=function(e){hb(this,e)},s.Ib=function(){return jY(this)},s.s=0,s.t=1,w(Bn,"ETypedElementImpl",284),b(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),s.Qg=function(e){return AFn(this,e)},s._g=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),!!this.$j();case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q;case 10:return qn(),!!(this.Bb&Eo);case 11:return qn(),!!(this.Bb&Bb);case 12:return qn(),!!(this.Bb&Ib);case 13:return this.j;case 14:return w4(this);case 15:return qn(),!!(this.Bb&mu);case 16:return qn(),!!(this.Bb&Nf);case 17:return eb(this)}return Cs(this,e-ee(this.zh()),On((r=u(Rn(this,16),26),r||this.zh()),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 17:return this.Cb&&(i=(c=this.Db>>16,c>=0?AFn(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,17,i)}return o=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),o.Nj().Qj(this,Rc(this),t-ee(this.zh()),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 9:return xD(this,i);case 17:return ss(this,null,17,i)}return c=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),c.Nj().Rj(this,Rc(this),t-ee(this.zh()),e,i)},s.lh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0);case 10:return(this.Bb&Eo)==0;case 11:return(this.Bb&Bb)!=0;case 12:return(this.Bb&Ib)!=0;case 13:return this.j!=null;case 14:return w4(this)!=null;case 15:return(this.Bb&mu)!=0;case 16:return(this.Bb&Nf)!=0;case 17:return!!eb(this)}return js(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.sh=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:f$(this,Ce(t));return;case 2:g1(this,on(sn(t)));return;case 3:p1(this,on(sn(t)));return;case 4:d1(this,u(t,19).a);return;case 5:this.ok(u(t,19).a);return;case 8:Ca(this,u(t,138));return;case 9:r=af(this,u(t,87),null),r&&r.Fi();return;case 10:Y3(this,on(sn(t)));return;case 11:e4(this,on(sn(t)));return;case 12:Z3(this,on(sn(t)));return;case 13:dz(this,Ce(t));return;case 15:n4(this,on(sn(t)));return;case 16:t4(this,on(sn(t)));return}Ps(this,e-ee(this.zh()),On((i=u(Rn(this,16),26),i||this.zh()),e),t)},s.zh=function(){return Sn(),Zne},s.Bh=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,88)&&yb(Iu(u(this.Cb,88)),4),Ic(this,null);return;case 2:g1(this,!0);return;case 3:p1(this,!0);return;case 4:d1(this,0);return;case 5:this.ok(1);return;case 8:Ca(this,null);return;case 9:i=af(this,null,null),i&&i.Fi();return;case 10:Y3(this,!0);return;case 11:e4(this,!1);return;case 12:Z3(this,!1);return;case 13:this.i=null,nT(this,null);return;case 15:n4(this,!1);return;case 16:t4(this,!1);return}As(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.Gh=function(){v3(jr((gu(),xi),this)),qs(this),this.Bb|=1},s.Gj=function(){return this.f},s.zj=function(){return w4(this)},s.Hj=function(){return eb(this)},s.Lj=function(){return null},s.pk=function(){return this.k},s.aj=function(){return this.n},s.Mj=function(){return QT(this)},s.Nj=function(){var e,t,i,r,c,o,f,h,l;return this.p||(i=eb(this),(i.i==null&&Lf(i),i.i).length,r=this.Lj(),r&&ee(eb(r)),c=qs(this),f=c.Bj(),e=f?f.i&1?f==_u?si:f==be?Wi:f==dw?U4:f==ji?Mi:f==Yl?a0:f==Wg?d0:f==yu?op:bm:f:null,t=w4(this),h=c.zj(),Vge(this),this.Bb&Nf&&((o=EJ((gu(),xi),i))&&o!=this||(o=A2(jr(xi,this))))?this.p=new $kn(this,o):this.$j()?this.rk()?r?this.Bb&mu?e?this.sk()?this.p=new ha(47,e,this,r):this.p=new ha(5,e,this,r):this.sk()?this.p=new da(46,this,r):this.p=new da(4,this,r):e?this.sk()?this.p=new ha(49,e,this,r):this.p=new ha(7,e,this,r):this.sk()?this.p=new da(48,this,r):this.p=new da(6,this,r):this.Bb&mu?e?e==Ha?this.p=new s1(50,xne,this):this.sk()?this.p=new s1(43,e,this):this.p=new s1(1,e,this):this.sk()?this.p=new f1(42,this):this.p=new f1(0,this):e?e==Ha?this.p=new s1(41,xne,this):this.sk()?this.p=new s1(45,e,this):this.p=new s1(3,e,this):this.sk()?this.p=new f1(44,this):this.p=new f1(2,this):I(c,148)?e==rI?this.p=new f1(40,this):this.Bb&512?this.Bb&mu?e?this.p=new s1(9,e,this):this.p=new f1(8,this):e?this.p=new s1(11,e,this):this.p=new f1(10,this):this.Bb&mu?e?this.p=new s1(13,e,this):this.p=new f1(12,this):e?this.p=new s1(15,e,this):this.p=new f1(14,this):r?(l=r.t,l>1||l==-1?this.sk()?this.Bb&mu?e?this.p=new ha(25,e,this,r):this.p=new da(24,this,r):e?this.p=new ha(27,e,this,r):this.p=new da(26,this,r):this.Bb&mu?e?this.p=new ha(29,e,this,r):this.p=new da(28,this,r):e?this.p=new ha(31,e,this,r):this.p=new da(30,this,r):this.sk()?this.Bb&mu?e?this.p=new ha(33,e,this,r):this.p=new da(32,this,r):e?this.p=new ha(35,e,this,r):this.p=new da(34,this,r):this.Bb&mu?e?this.p=new ha(37,e,this,r):this.p=new da(36,this,r):e?this.p=new ha(39,e,this,r):this.p=new da(38,this,r)):this.sk()?this.Bb&mu?e?this.p=new s1(17,e,this):this.p=new f1(16,this):e?this.p=new s1(19,e,this):this.p=new f1(18,this):this.Bb&mu?e?this.p=new s1(21,e,this):this.p=new f1(20,this):e?this.p=new s1(23,e,this):this.p=new f1(22,this):this.qk()?this.sk()?this.p=new kEn(u(c,26),this,r):this.p=new QW(u(c,26),this,r):I(c,148)?e==rI?this.p=new f1(40,this):this.Bb&mu?e?this.p=new vCn(t,h,this,(LF(),f==be?E1n:f==_u?v1n:f==Yl?C1n:f==dw?j1n:f==ji?y1n:f==Wg?T1n:f==yu?m1n:f==Ls?k1n:vH)):this.p=new ITn(u(c,148),t,h,this):e?this.p=new pCn(t,h,this,(LF(),f==be?E1n:f==_u?v1n:f==Yl?C1n:f==dw?j1n:f==ji?y1n:f==Wg?T1n:f==yu?m1n:f==Ls?k1n:vH)):this.p=new PTn(u(c,148),t,h,this):this.rk()?r?this.Bb&mu?this.sk()?this.p=new jEn(u(c,26),this,r):this.p=new KU(u(c,26),this,r):this.sk()?this.p=new yEn(u(c,26),this,r):this.p=new lD(u(c,26),this,r):this.Bb&mu?this.sk()?this.p=new pjn(u(c,26),this):this.p=new eU(u(c,26),this):this.sk()?this.p=new gjn(u(c,26),this):this.p=new JO(u(c,26),this):this.sk()?r?this.Bb&mu?this.p=new EEn(u(c,26),this,r):this.p=new RU(u(c,26),this,r):this.Bb&mu?this.p=new vjn(u(c,26),this):this.p=new tU(u(c,26),this):r?this.Bb&mu?this.p=new CEn(u(c,26),this,r):this.p=new _U(u(c,26),this,r):this.Bb&mu?this.p=new mjn(u(c,26),this):this.p=new FE(u(c,26),this)),this.p},s.Ij=function(){return(this.Bb&Eo)!=0},s.qk=function(){return!1},s.rk=function(){return!1},s.Jj=function(){return(this.Bb&Nf)!=0},s.Oj=function(){return R$(this)},s.sk=function(){return!1},s.Kj=function(){return(this.Bb&mu)!=0},s.tk=function(e){this.k=e},s.Lh=function(e){f$(this,e)},s.Ib=function(){return bM(this)},s.e=!1,s.n=0,w(Bn,"EStructuralFeatureImpl",449),b(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},BI),s._g=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),!!vY(this);case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q;case 10:return qn(),!!(this.Bb&Eo);case 11:return qn(),!!(this.Bb&Bb);case 12:return qn(),!!(this.Bb&Ib);case 13:return this.j;case 14:return w4(this);case 15:return qn(),!!(this.Bb&mu);case 16:return qn(),!!(this.Bb&Nf);case 17:return eb(this);case 18:return qn(),!!(this.Bb&uc);case 19:return t?iF(this):ISn(this)}return Cs(this,e-ee((Sn(),hw)),On((r=u(Rn(this,16),26),r||hw),e),t,i)},s.lh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return vY(this);case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0);case 10:return(this.Bb&Eo)==0;case 11:return(this.Bb&Bb)!=0;case 12:return(this.Bb&Ib)!=0;case 13:return this.j!=null;case 14:return w4(this)!=null;case 15:return(this.Bb&mu)!=0;case 16:return(this.Bb&Nf)!=0;case 17:return!!eb(this);case 18:return(this.Bb&uc)!=0;case 19:return!!ISn(this)}return js(this,e-ee((Sn(),hw)),On((t=u(Rn(this,16),26),t||hw),e))},s.sh=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:f$(this,Ce(t));return;case 2:g1(this,on(sn(t)));return;case 3:p1(this,on(sn(t)));return;case 4:d1(this,u(t,19).a);return;case 5:o8n(this,u(t,19).a);return;case 8:Ca(this,u(t,138));return;case 9:r=af(this,u(t,87),null),r&&r.Fi();return;case 10:Y3(this,on(sn(t)));return;case 11:e4(this,on(sn(t)));return;case 12:Z3(this,on(sn(t)));return;case 13:dz(this,Ce(t));return;case 15:n4(this,on(sn(t)));return;case 16:t4(this,on(sn(t)));return;case 18:SF(this,on(sn(t)));return}Ps(this,e-ee((Sn(),hw)),On((i=u(Rn(this,16),26),i||hw),e),t)},s.zh=function(){return Sn(),hw},s.Bh=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,88)&&yb(Iu(u(this.Cb,88)),4),Ic(this,null);return;case 2:g1(this,!0);return;case 3:p1(this,!0);return;case 4:d1(this,0);return;case 5:this.b=0,hb(this,1);return;case 8:Ca(this,null);return;case 9:i=af(this,null,null),i&&i.Fi();return;case 10:Y3(this,!0);return;case 11:e4(this,!1);return;case 12:Z3(this,!1);return;case 13:this.i=null,nT(this,null);return;case 15:n4(this,!1);return;case 16:t4(this,!1);return;case 18:SF(this,!1);return}As(this,e-ee((Sn(),hw)),On((t=u(Rn(this,16),26),t||hw),e))},s.Gh=function(){iF(this),v3(jr((gu(),xi),this)),qs(this),this.Bb|=1},s.$j=function(){return vY(this)},s.nk=function(e,t){return this.b=0,this.a=null,lQ(this,e,t)},s.ok=function(e){o8n(this,e)},s.Ib=function(){var e;return this.Db&64?bM(this):(e=new Bs(bM(this)),e.a+=" (iD: ",r1(e,(this.Bb&uc)!=0),e.a+=")",e.a)},s.b=0,w(Bn,"EAttributeImpl",322),b(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),s.uk=function(e){return e.Tg()==this},s.Qg=function(e){return ox(this,e)},s.Rg=function(e,t){this.w=null,this.Db=t<<16|this.Db&255,this.Cb=e},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Qd(this);case 4:return this.zj();case 5:return this.F;case 6:return t?ts(this):y3(this);case 7:return!this.A&&(this.A=new lu(zc,this,7)),this.A}return Cs(this,e-ee(this.zh()),On((r=u(Rn(this,16),26),r||this.zh()),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?ox(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,6,i)}return o=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),o.Nj().Qj(this,Rc(this),t-ee(this.zh()),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 6:return ss(this,null,6,i);case 7:return!this.A&&(this.A=new lu(zc,this,7)),zi(this.A,e,i)}return c=u(On((r=u(Rn(this,16),26),r||this.zh()),t),66),c.Nj().Rj(this,Rc(this),t-ee(this.zh()),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Qd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!y3(this);case 7:return!!this.A&&this.A.i!=0}return js(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:bC(this,Ce(t));return;case 2:BO(this,Ce(t));return;case 5:y4(this,Ce(t));return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A),!this.A&&(this.A=new lu(zc,this,7)),Dt(this.A,u(t,14));return}Ps(this,e-ee(this.zh()),On((i=u(Rn(this,16),26),i||this.zh()),e),t)},s.zh=function(){return Sn(),Wne},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,179)&&(u(this.Cb,179).tb=null),Ic(this,null);return;case 2:X3(this,null),L3(this,this.D);return;case 5:y4(this,null);return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A);return}As(this,e-ee(this.zh()),On((t=u(Rn(this,16),26),t||this.zh()),e))},s.yj=function(){var e;return this.G==-1&&(this.G=(e=ts(this),e?v1(e.Mh(),this):-1)),this.G},s.zj=function(){return null},s.Aj=function(){return ts(this)},s.vk=function(){return this.v},s.Bj=function(){return Qd(this)},s.Cj=function(){return this.D!=null?this.D:this.B},s.Dj=function(){return this.F},s.wj=function(e){return nL(this,e)},s.wk=function(e){this.v=e},s.xk=function(e){uOn(this,e)},s.yk=function(e){this.C=e},s.Lh=function(e){bC(this,e)},s.Ib=function(){return MT(this)},s.C=null,s.D=null,s.G=-1,w(Bn,"EClassifierImpl",351),b(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},tq),s.uk=function(e){return Oue(this,e.Tg())},s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Qd(this);case 4:return null;case 5:return this.F;case 6:return t?ts(this):y3(this);case 7:return!this.A&&(this.A=new lu(zc,this,7)),this.A;case 8:return qn(),!!(this.Bb&256);case 9:return qn(),!!(this.Bb&512);case 10:return Mr(this);case 11:return!this.q&&(this.q=new V(co,this,11,10)),this.q;case 12:return ig(this);case 13:return I6(this);case 14:return I6(this),this.r;case 15:return ig(this),this.k;case 16:return oY(this);case 17:return cL(this);case 18:return Lf(this);case 19:return sM(this);case 20:return ig(this),this.o;case 21:return!this.s&&(this.s=new V(su,this,21,17)),this.s;case 22:return bc(this);case 23:return Gx(this)}return Cs(this,e-ee((Sn(),Xl)),On((r=u(Rn(this,16),26),r||Xl),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?ox(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,6,i);case 11:return!this.q&&(this.q=new V(co,this,11,10)),Oc(this.q,e,i);case 21:return!this.s&&(this.s=new V(su,this,21,17)),Oc(this.s,e,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),Xl)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),Xl)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 6:return ss(this,null,6,i);case 7:return!this.A&&(this.A=new lu(zc,this,7)),zi(this.A,e,i);case 11:return!this.q&&(this.q=new V(co,this,11,10)),zi(this.q,e,i);case 21:return!this.s&&(this.s=new V(su,this,21,17)),zi(this.s,e,i);case 22:return zi(bc(this),e,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),Xl)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),Xl)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Qd(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!y3(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&bc(this.u.a).i!=0&&!(this.n&&JF(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return ig(this).i!=0;case 13:return I6(this).i!=0;case 14:return I6(this),this.r.i!=0;case 15:return ig(this),this.k.i!=0;case 16:return oY(this).i!=0;case 17:return cL(this).i!=0;case 18:return Lf(this).i!=0;case 19:return sM(this).i!=0;case 20:return ig(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&JF(this.n);case 23:return Gx(this).i!=0}return js(this,e-ee((Sn(),Xl)),On((t=u(Rn(this,16),26),t||Xl),e))},s.oh=function(e){var t;return t=this.i==null||this.q&&this.q.i!=0?null:R7(this,e),t||RZ(this,e)},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:bC(this,Ce(t));return;case 2:BO(this,Ce(t));return;case 5:y4(this,Ce(t));return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A),!this.A&&(this.A=new lu(zc,this,7)),Dt(this.A,u(t,14));return;case 8:dQ(this,on(sn(t)));return;case 9:bQ(this,on(sn(t)));return;case 10:$6(Mr(this)),Dt(Mr(this),u(t,14));return;case 11:!this.q&&(this.q=new V(co,this,11,10)),de(this.q),!this.q&&(this.q=new V(co,this,11,10)),Dt(this.q,u(t,14));return;case 21:!this.s&&(this.s=new V(su,this,21,17)),de(this.s),!this.s&&(this.s=new V(su,this,21,17)),Dt(this.s,u(t,14));return;case 22:de(bc(this)),Dt(bc(this),u(t,14));return}Ps(this,e-ee((Sn(),Xl)),On((i=u(Rn(this,16),26),i||Xl),e),t)},s.zh=function(){return Sn(),Xl},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,179)&&(u(this.Cb,179).tb=null),Ic(this,null);return;case 2:X3(this,null),L3(this,this.D);return;case 5:y4(this,null);return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A);return;case 8:dQ(this,!1);return;case 9:bQ(this,!1);return;case 10:this.u&&$6(this.u);return;case 11:!this.q&&(this.q=new V(co,this,11,10)),de(this.q);return;case 21:!this.s&&(this.s=new V(su,this,21,17)),de(this.s);return;case 22:this.n&&de(this.n);return}As(this,e-ee((Sn(),Xl)),On((t=u(Rn(this,16),26),t||Xl),e))},s.Gh=function(){var e,t;if(ig(this),I6(this),oY(this),cL(this),Lf(this),sM(this),Gx(this),U5(Xoe(Iu(this))),this.s)for(e=0,t=this.s.i;e=0;--t)D(this,t);return LQ(this,e)},s.Xj=function(){de(this)},s.oi=function(e,t){return PIn(this,e,t)},w(vt,"EcoreEList",622),b(496,622,Nr,v8),s.ai=function(){return!1},s.aj=function(){return this.c},s.bj=function(){return!1},s.Fk=function(){return!0},s.hi=function(){return!0},s.li=function(e,t){return t},s.ni=function(){return!1},s.c=0,w(vt,"EObjectEList",496),b(85,496,Nr,Jt),s.bj=function(){return!0},s.Dk=function(){return!1},s.rk=function(){return!0},w(vt,"EObjectContainmentEList",85),b(545,85,Nr,hE),s.ci=function(){this.b=!0},s.fj=function(){return this.b},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.b,this.b=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.b=!1},s.b=!1,w(vt,"EObjectContainmentEList/Unsettable",545),b(1140,545,Nr,wCn),s.ii=function(e,t){var i,r;return i=u(o6(this,e,t),87),Hu(this.e)&&Gp(this,new R8(this.a,7,(Sn(),Xne),Q(t),(r=i.c,I(r,88)?u(r,26):so),e)),i},s.jj=function(e,t){return L2e(this,u(e,87),t)},s.kj=function(e,t){return x2e(this,u(e,87),t)},s.lj=function(e,t,i){return N4e(this,u(e,87),u(t,87),i)},s.Zi=function(e,t,i,r,c){switch(e){case 3:return _5(this,e,t,i,r,this.i>1);case 5:return _5(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new Lh(this.e,e,this.c,t,i,r,!0)}},s.ij=function(){return!0},s.fj=function(){return JF(this)},s.Xj=function(){de(this)},w(Bn,"EClassImpl/1",1140),b(1154,1153,Wtn),s.ui=function(e){var t,i,r,c,o,f,h;if(i=e.xi(),i!=8){if(r=mpe(e),r==0)switch(i){case 1:case 9:{h=e.Bi(),h!=null&&(t=Iu(u(h,473)),!t.c&&(t.c=new Bp),BC(t.c,e.Ai())),f=e.zi(),f!=null&&(c=u(f,473),c.Bb&1||(t=Iu(c),!t.c&&(t.c=new Bp),me(t.c,u(e.Ai(),26))));break}case 3:{f=e.zi(),f!=null&&(c=u(f,473),c.Bb&1||(t=Iu(c),!t.c&&(t.c=new Bp),me(t.c,u(e.Ai(),26))));break}case 5:{if(f=e.zi(),f!=null)for(o=u(f,14).Kc();o.Ob();)c=u(o.Pb(),473),c.Bb&1||(t=Iu(c),!t.c&&(t.c=new Bp),me(t.c,u(e.Ai(),26)));break}case 4:{h=e.Bi(),h!=null&&(c=u(h,473),c.Bb&1||(t=Iu(c),!t.c&&(t.c=new Bp),BC(t.c,e.Ai())));break}case 6:{if(h=e.Bi(),h!=null)for(o=u(h,14).Kc();o.Ob();)c=u(o.Pb(),473),c.Bb&1||(t=Iu(c),!t.c&&(t.c=new Bp),BC(t.c,e.Ai()));break}}this.Hk(r)}},s.Hk=function(e){bBn(this,e)},s.b=63,w(Bn,"ESuperAdapter",1154),b(1155,1154,Wtn,Amn),s.Hk=function(e){yb(this,e)},w(Bn,"EClassImpl/10",1155),b(1144,696,Nr),s.Vh=function(e,t){return mx(this,e,t)},s.Wh=function(e){return hFn(this,e)},s.Xh=function(e,t){a7(this,e,t)},s.Yh=function(e){F8(this,e)},s.pi=function(e){return zX(this,e)},s.mi=function(e,t){return B$(this,e,t)},s.lk=function(e,t){throw T(new ye)},s.Zh=function(){return new w2(this)},s.$h=function(){return new u8(this)},s._h=function(e){return J8(this,e)},s.mk=function(e,t){throw T(new ye)},s.Wj=function(e){return this},s.fj=function(){return this.i!=0},s.Wb=function(e){throw T(new ye)},s.Xj=function(){throw T(new ye)},w(vt,"EcoreEList/UnmodifiableEList",1144),b(319,1144,Nr,Ew),s.ni=function(){return!1},w(vt,"EcoreEList/UnmodifiableEList/FastCompare",319),b(1147,319,Nr,YOn),s.Xc=function(e){var t,i,r;if(I(e,170)&&(t=u(e,170),i=t.aj(),i!=-1)){for(r=this.i;i4)if(this.wj(e)){if(this.rk()){if(r=u(e,49),i=r.Ug(),h=i==this.b&&(this.Dk()?r.Og(r.Vg(),u(On(Vc(this.b),this.aj()).Yj(),26).Bj())==ir(u(On(Vc(this.b),this.aj()),18)).n:-1-r.Vg()==this.aj()),this.Ek()&&!h&&!i&&r.Zg()){for(c=0;c1||r==-1)):!1},s.Dk=function(){var e,t,i;return t=On(Vc(this.b),this.aj()),I(t,99)?(e=u(t,18),i=ir(e),!!i):!1},s.Ek=function(){var e,t;return t=On(Vc(this.b),this.aj()),I(t,99)?(e=u(t,18),(e.Bb&Yi)!=0):!1},s.Xc=function(e){var t,i,r,c;if(r=this.Qi(e),r>=0)return r;if(this.Fk()){for(i=0,c=this.Vi();i=0;--e)X7(this,e,this.Oi(e));return this.Wi()},s.Qc=function(e){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)X7(this,t,this.Oi(t));return this.Xi(e)},s.Xj=function(){$6(this)},s.oi=function(e,t){return dPn(this,e,t)},w(vt,"DelegatingEcoreEList",742),b(1150,742,Jtn,Ijn),s.Hi=function(e,t){cue(this,e,u(t,26))},s.Ii=function(e){Zre(this,u(e,26))},s.Oi=function(e){var t,i;return t=u(D(bc(this.a),e),87),i=t.c,I(i,88)?u(i,26):(Sn(),so)},s.Ti=function(e){var t,i;return t=u(Eb(bc(this.a),e),87),i=t.c,I(i,88)?u(i,26):(Sn(),so)},s.Ui=function(e,t){return u3e(this,e,u(t,26))},s.ai=function(){return!1},s.Zi=function(e,t,i,r,c){return null},s.Ji=function(){return new Pmn(this)},s.Ki=function(){de(bc(this.a))},s.Li=function(e){return qDn(this,e)},s.Mi=function(e){var t,i;for(i=e.Kc();i.Ob();)if(t=i.Pb(),!qDn(this,t))return!1;return!0},s.Ni=function(e){var t,i,r;if(I(e,15)&&(r=u(e,15),r.gc()==bc(this.a).i)){for(t=r.Kc(),i=new ie(this);t.Ob();)if(B(t.Pb())!==B(oe(i)))return!1;return!0}return!1},s.Pi=function(){var e,t,i,r,c;for(i=1,t=new ie(bc(this.a));t.e!=t.i.gc();)e=u(oe(t),87),r=(c=e.c,I(c,88)?u(c,26):(Sn(),so)),i=31*i+(r?md(r):0);return i},s.Qi=function(e){var t,i,r,c;for(r=0,i=new ie(bc(this.a));i.e!=i.i.gc();){if(t=u(oe(i),87),B(e)===B((c=t.c,I(c,88)?u(c,26):(Sn(),so))))return r;++r}return-1},s.Ri=function(){return bc(this.a).i==0},s.Si=function(){return null},s.Vi=function(){return bc(this.a).i},s.Wi=function(){var e,t,i,r,c,o;for(o=bc(this.a).i,c=F(Zn,rn,1,o,5,1),i=0,t=new ie(bc(this.a));t.e!=t.i.gc();)e=u(oe(t),87),c[i++]=(r=e.c,I(r,88)?u(r,26):(Sn(),so));return c},s.Xi=function(e){var t,i,r,c,o,f,h;for(h=bc(this.a).i,e.lengthh&&Mt(e,h,null),r=0,i=new ie(bc(this.a));i.e!=i.i.gc();)t=u(oe(i),87),o=(f=t.c,I(f,88)?u(f,26):(Sn(),so)),Mt(e,r++,o);return e},s.Yi=function(){var e,t,i,r,c;for(c=new i1,c.a+="[",e=bc(this.a),t=0,r=bc(this.a).i;t>16,c>=0?ox(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,6,i);case 9:return!this.a&&(this.a=new V(e1,this,9,5)),Oc(this.a,e,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),Vl)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),Vl)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 6:return ss(this,null,6,i);case 7:return!this.A&&(this.A=new lu(zc,this,7)),zi(this.A,e,i);case 9:return!this.a&&(this.a=new V(e1,this,9,5)),zi(this.a,e,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),Vl)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),Vl)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Qd(this);case 4:return!!ZV(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!y3(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return js(this,e-ee((Sn(),Vl)),On((t=u(Rn(this,16),26),t||Vl),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:bC(this,Ce(t));return;case 2:BO(this,Ce(t));return;case 5:y4(this,Ce(t));return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A),!this.A&&(this.A=new lu(zc,this,7)),Dt(this.A,u(t,14));return;case 8:kT(this,on(sn(t)));return;case 9:!this.a&&(this.a=new V(e1,this,9,5)),de(this.a),!this.a&&(this.a=new V(e1,this,9,5)),Dt(this.a,u(t,14));return}Ps(this,e-ee((Sn(),Vl)),On((i=u(Rn(this,16),26),i||Vl),e),t)},s.zh=function(){return Sn(),Vl},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,179)&&(u(this.Cb,179).tb=null),Ic(this,null);return;case 2:X3(this,null),L3(this,this.D);return;case 5:y4(this,null);return;case 7:!this.A&&(this.A=new lu(zc,this,7)),de(this.A);return;case 8:kT(this,!0);return;case 9:!this.a&&(this.a=new V(e1,this,9,5)),de(this.a);return}As(this,e-ee((Sn(),Vl)),On((t=u(Rn(this,16),26),t||Vl),e))},s.Gh=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?u(this.Cb,671):null}return Cs(this,e-ee((Sn(),L1)),On((r=u(Rn(this,16),26),r||L1),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 5:return this.Cb&&(i=(c=this.Db>>16,c>=0?xFn(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,5,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),L1)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),L1)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 5:return ss(this,null,5,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),L1)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),L1)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,671))}return js(this,e-ee((Sn(),L1)),On((t=u(Rn(this,16),26),t||L1),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:Ic(this,Ce(t));return;case 2:G$(this,u(t,19).a);return;case 3:ILn(this,u(t,1940));return;case 4:U$(this,Ce(t));return}Ps(this,e-ee((Sn(),L1)),On((i=u(Rn(this,16),26),i||L1),e),t)},s.zh=function(){return Sn(),L1},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:Ic(this,null);return;case 2:G$(this,0);return;case 3:ILn(this,null);return;case 4:U$(this,null);return}As(this,e-ee((Sn(),L1)),On((t=u(Rn(this,16),26),t||L1),e))},s.Ib=function(){var e;return e=this.c,e??this.zb},s.b=null,s.c=null,s.d=0,w(Bn,"EEnumLiteralImpl",573);var lMe=Et(Bn,"EFactoryImpl/InternalEDateTimeFormat");b(489,1,{2015:1},D9),w(Bn,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),b(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},ud),s.Sg=function(e,t,i){var r;return i=ss(this,e,t,i),this.e&&I(e,170)&&(r=uM(this,this.e),r!=this.c&&(i=j4(this,r,i))),i},s._g=function(e,t,i){var r;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new Jt(ar,this,1)),this.d;case 2:return t?pM(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?nx(this):this.a}return Cs(this,e-ee((Sn(),I0)),On((r=u(Rn(this,16),26),r||I0),e),t,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return $Dn(this,null,i);case 1:return!this.d&&(this.d=new Jt(ar,this,1)),zi(this.d,e,i);case 3:return DDn(this,null,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),I0)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),I0)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return js(this,e-ee((Sn(),I0)),On((t=u(Rn(this,16),26),t||I0),e))},s.sh=function(e,t){var i;switch(e){case 0:ZFn(this,u(t,87));return;case 1:!this.d&&(this.d=new Jt(ar,this,1)),de(this.d),!this.d&&(this.d=new Jt(ar,this,1)),Dt(this.d,u(t,14));return;case 3:DJ(this,u(t,87));return;case 4:VJ(this,u(t,836));return;case 5:O3(this,u(t,138));return}Ps(this,e-ee((Sn(),I0)),On((i=u(Rn(this,16),26),i||I0),e),t)},s.zh=function(){return Sn(),I0},s.Bh=function(e){var t;switch(e){case 0:ZFn(this,null);return;case 1:!this.d&&(this.d=new Jt(ar,this,1)),de(this.d);return;case 3:DJ(this,null);return;case 4:VJ(this,null);return;case 5:O3(this,null);return}As(this,e-ee((Sn(),I0)),On((t=u(Rn(this,16),26),t||I0),e))},s.Ib=function(){var e;return e=new Ju(yo(this)),e.a+=" (expression: ",fL(this,e),e.a+=")",e.a};var p1n;w(Bn,"EGenericTypeImpl",241),b(1969,1964,CA),s.Xh=function(e,t){Ajn(this,e,t)},s.lk=function(e,t){return Ajn(this,this.gc(),e),t},s.pi=function(e){return qo(this.Gi(),e)},s.Zh=function(){return this.$h()},s.Gi=function(){return new $mn(this)},s.$h=function(){return this._h(0)},s._h=function(e){return this.Gi().Zc(e)},s.mk=function(e,t){return db(this,e,!0),t},s.ii=function(e,t){var i,r;return r=hx(this,t),i=this.Zc(e),i.Rb(r),r},s.ji=function(e,t){var i;db(this,t,!0),i=this.Zc(e),i.Rb(t)},w(vt,"AbstractSequentialInternalEList",1969),b(486,1969,CA,c8),s.pi=function(e){return qo(this.Gi(),e)},s.Zh=function(){return this.b==null?(c1(),c1(),Ly):this.Jk()},s.Gi=function(){return new Ykn(this.a,this.b)},s.$h=function(){return this.b==null?(c1(),c1(),Ly):this.Jk()},s._h=function(e){var t,i;if(this.b==null){if(e<0||e>1)throw T(new vr(rm+e+", size=0"));return c1(),c1(),Ly}for(i=this.Jk(),t=0;t0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=Av||t.aj()!=0)&&(!this.Mk()||this.b.mh(t))){if(o=this.b.bh(t,this.Lk()),this.f=(er(),u(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(r=u(o,15),this.k=r):(r=u(o,69),this.k=this.j=r),I(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?zxn(this,this.p):iLn(this))return c=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,72),e.ak(),i=e.dd(),this.i=i):(i=c,this.i=i),this.g=-3,!0}else if(o!=null)return this.k=null,this.p=null,i=o,this.i=i,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return c=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,72),e.ak(),i=e.dd(),this.i=i):(i=c,this.i=i),this.g=-3,!0}},s.Pb=function(){return hT(this)},s.Tb=function(){return this.a},s.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw T(new ic)},s.Vb=function(){return this.a-1},s.Qb=function(){throw T(new ye)},s.Lk=function(){return!1},s.Wb=function(e){throw T(new ye)},s.Mk=function(){return!0},s.a=0,s.d=0,s.f=!1,s.g=0,s.n=0,s.o=0;var Ly;w(vt,"EContentsEList/FeatureIteratorImpl",279),b(697,279,TA,nU),s.Lk=function(){return!0},w(vt,"EContentsEList/ResolvingFeatureIteratorImpl",697),b(1157,697,TA,wjn),s.Mk=function(){return!1},w(Bn,"ENamedElementImpl/1/1",1157),b(1158,279,TA,bjn),s.Mk=function(){return!1},w(Bn,"ENamedElementImpl/1/2",1158),b(36,143,jk,rb,p$,wi,D$,Lh,vo,rV,qMn,cV,GMn,PX,zMn,oV,UMn,IX,WMn,uV,XMn,$5,R8,VD,sV,VMn,OX,QMn),s._i=function(){return HX(this)},s.gj=function(){var e;return e=HX(this),e?e.zj():null},s.yi=function(e){return this.b==-1&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,e)},s.Ai=function(){return this.c},s.hj=function(){var e;return e=HX(this),e?e.Kj():!1},s.b=-1,w(Bn,"ENotificationImpl",36),b(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},RI),s.Qg=function(e){return BFn(this,e)},s._g=function(e,t,i){var r,c,o;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),o=this.t,o>1||o==-1;case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,26):null;case 11:return!this.d&&(this.d=new lu(zc,this,11)),this.d;case 12:return!this.c&&(this.c=new V(P0,this,12,10)),this.c;case 13:return!this.a&&(this.a=new l8(this,this)),this.a;case 14:return Ou(this)}return Cs(this,e-ee((Sn(),N1)),On((r=u(Rn(this,16),26),r||N1),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?BFn(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,10,i);case 12:return!this.c&&(this.c=new V(P0,this,12,10)),Oc(this.c,e,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),N1)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),N1)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 9:return xD(this,i);case 10:return ss(this,null,10,i);case 11:return!this.d&&(this.d=new lu(zc,this,11)),zi(this.d,e,i);case 12:return!this.c&&(this.c=new V(P0,this,12,10)),zi(this.c,e,i);case 14:return zi(Ou(this),e,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),N1)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),N1)),e,i)},s.lh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,26));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&Ou(this.a.a).i!=0&&!(this.b&&YF(this.b));case 14:return!!this.b&&YF(this.b)}return js(this,e-ee((Sn(),N1)),On((t=u(Rn(this,16),26),t||N1),e))},s.sh=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:Ic(this,Ce(t));return;case 2:g1(this,on(sn(t)));return;case 3:p1(this,on(sn(t)));return;case 4:d1(this,u(t,19).a);return;case 5:hb(this,u(t,19).a);return;case 8:Ca(this,u(t,138));return;case 9:r=af(this,u(t,87),null),r&&r.Fi();return;case 11:!this.d&&(this.d=new lu(zc,this,11)),de(this.d),!this.d&&(this.d=new lu(zc,this,11)),Dt(this.d,u(t,14));return;case 12:!this.c&&(this.c=new V(P0,this,12,10)),de(this.c),!this.c&&(this.c=new V(P0,this,12,10)),Dt(this.c,u(t,14));return;case 13:!this.a&&(this.a=new l8(this,this)),$6(this.a),!this.a&&(this.a=new l8(this,this)),Dt(this.a,u(t,14));return;case 14:de(Ou(this)),Dt(Ou(this),u(t,14));return}Ps(this,e-ee((Sn(),N1)),On((i=u(Rn(this,16),26),i||N1),e),t)},s.zh=function(){return Sn(),N1},s.Bh=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:Ic(this,null);return;case 2:g1(this,!0);return;case 3:p1(this,!0);return;case 4:d1(this,0);return;case 5:hb(this,1);return;case 8:Ca(this,null);return;case 9:i=af(this,null,null),i&&i.Fi();return;case 11:!this.d&&(this.d=new lu(zc,this,11)),de(this.d);return;case 12:!this.c&&(this.c=new V(P0,this,12,10)),de(this.c);return;case 13:this.a&&$6(this.a);return;case 14:this.b&&de(this.b);return}As(this,e-ee((Sn(),N1)),On((t=u(Rn(this,16),26),t||N1),e))},s.Gh=function(){var e,t;if(this.c)for(e=0,t=this.c.i;eh&&Mt(e,h,null),r=0,i=new ie(Ou(this.a));i.e!=i.i.gc();)t=u(oe(i),87),o=(f=t.c,f||(Sn(),Cf)),Mt(e,r++,o);return e},s.Yi=function(){var e,t,i,r,c;for(c=new i1,c.a+="[",e=Ou(this.a),t=0,r=Ou(this.a).i;t1);case 5:return _5(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new Lh(this.e,e,this.c,t,i,r,!0)}},s.ij=function(){return!0},s.fj=function(){return YF(this)},s.Xj=function(){de(this)},w(Bn,"EOperationImpl/2",1341),b(498,1,{1938:1,498:1},Dkn),w(Bn,"EPackageImpl/1",498),b(16,85,Nr,V),s.zk=function(){return this.d},s.Ak=function(){return this.b},s.Dk=function(){return!0},s.b=0,w(vt,"EObjectContainmentWithInverseEList",16),b(353,16,Nr,g2),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectContainmentWithInverseEList/Resolving",353),b(298,353,Nr,Y0),s.ci=function(){this.a.tb=null},w(Bn,"EPackageImpl/2",298),b(1228,1,{},Jee),w(Bn,"EPackageImpl/3",1228),b(718,43,sg,tG),s._b=function(e){return mi(e)?QD(this,e):!!Ar(this.f,e)},w(Bn,"EPackageRegistryImpl",718),b(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},_I),s.Qg=function(e){return RFn(this,e)},s._g=function(e,t,i){var r,c,o;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),o=this.t,o>1||o==-1;case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,59):null}return Cs(this,e-ee((Sn(),lw)),On((r=u(Rn(this,16),26),r||lw),e),t,i)},s.hh=function(e,t,i){var r,c,o;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),Oc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?RFn(this,i):this.Cb.ih(this,-1-c,null,i))),ss(this,e,10,i)}return o=u(On((r=u(Rn(this,16),26),r||(Sn(),lw)),t),66),o.Nj().Qj(this,Rc(this),t-ee((Sn(),lw)),e,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 9:return xD(this,i);case 10:return ss(this,null,10,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),lw)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),lw)),e,i)},s.lh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,59))}return js(this,e-ee((Sn(),lw)),On((t=u(Rn(this,16),26),t||lw),e))},s.zh=function(){return Sn(),lw},w(Bn,"EParameterImpl",509),b(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},cU),s._g=function(e,t,i){var r,c,o,f;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return qn(),!!(this.Bb&256);case 3:return qn(),!!(this.Bb&512);case 4:return Q(this.s);case 5:return Q(this.t);case 6:return qn(),f=this.t,f>1||f==-1;case 7:return qn(),c=this.s,c>=1;case 8:return t?qs(this):this.r;case 9:return this.q;case 10:return qn(),!!(this.Bb&Eo);case 11:return qn(),!!(this.Bb&Bb);case 12:return qn(),!!(this.Bb&Ib);case 13:return this.j;case 14:return w4(this);case 15:return qn(),!!(this.Bb&mu);case 16:return qn(),!!(this.Bb&Nf);case 17:return eb(this);case 18:return qn(),!!(this.Bb&uc);case 19:return qn(),o=ir(this),!!(o&&o.Bb&uc);case 20:return qn(),!!(this.Bb&Yi);case 21:return t?ir(this):this.b;case 22:return t?HV(this):vSn(this);case 23:return!this.a&&(this.a=new Aw(ow,this,23)),this.a}return Cs(this,e-ee((Sn(),qg)),On((r=u(Rn(this,16),26),r||qg),e),t,i)},s.lh=function(e){var t,i,r,c;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return c=this.t,c>1||c==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&Ad(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Ad(this.q).i==0);case 10:return(this.Bb&Eo)==0;case 11:return(this.Bb&Bb)!=0;case 12:return(this.Bb&Ib)!=0;case 13:return this.j!=null;case 14:return w4(this)!=null;case 15:return(this.Bb&mu)!=0;case 16:return(this.Bb&Nf)!=0;case 17:return!!eb(this);case 18:return(this.Bb&uc)!=0;case 19:return r=ir(this),!!r&&(r.Bb&uc)!=0;case 20:return(this.Bb&Yi)==0;case 21:return!!this.b;case 22:return!!vSn(this);case 23:return!!this.a&&this.a.i!=0}return js(this,e-ee((Sn(),qg)),On((t=u(Rn(this,16),26),t||qg),e))},s.sh=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:f$(this,Ce(t));return;case 2:g1(this,on(sn(t)));return;case 3:p1(this,on(sn(t)));return;case 4:d1(this,u(t,19).a);return;case 5:hb(this,u(t,19).a);return;case 8:Ca(this,u(t,138));return;case 9:r=af(this,u(t,87),null),r&&r.Fi();return;case 10:Y3(this,on(sn(t)));return;case 11:e4(this,on(sn(t)));return;case 12:Z3(this,on(sn(t)));return;case 13:dz(this,Ce(t));return;case 15:n4(this,on(sn(t)));return;case 16:t4(this,on(sn(t)));return;case 18:lle(this,on(sn(t)));return;case 20:mQ(this,on(sn(t)));return;case 21:vV(this,u(t,18));return;case 23:!this.a&&(this.a=new Aw(ow,this,23)),de(this.a),!this.a&&(this.a=new Aw(ow,this,23)),Dt(this.a,u(t,14));return}Ps(this,e-ee((Sn(),qg)),On((i=u(Rn(this,16),26),i||qg),e),t)},s.zh=function(){return Sn(),qg},s.Bh=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:I(this.Cb,88)&&yb(Iu(u(this.Cb,88)),4),Ic(this,null);return;case 2:g1(this,!0);return;case 3:p1(this,!0);return;case 4:d1(this,0);return;case 5:hb(this,1);return;case 8:Ca(this,null);return;case 9:i=af(this,null,null),i&&i.Fi();return;case 10:Y3(this,!0);return;case 11:e4(this,!1);return;case 12:Z3(this,!1);return;case 13:this.i=null,nT(this,null);return;case 15:n4(this,!1);return;case 16:t4(this,!1);return;case 18:vQ(this,!1),I(this.Cb,88)&&yb(Iu(u(this.Cb,88)),2);return;case 20:mQ(this,!0);return;case 21:vV(this,null);return;case 23:!this.a&&(this.a=new Aw(ow,this,23)),de(this.a);return}As(this,e-ee((Sn(),qg)),On((t=u(Rn(this,16),26),t||qg),e))},s.Gh=function(){HV(this),v3(jr((gu(),xi),this)),qs(this),this.Bb|=1},s.Lj=function(){return ir(this)},s.qk=function(){var e;return e=ir(this),!!e&&(e.Bb&uc)!=0},s.rk=function(){return(this.Bb&uc)!=0},s.sk=function(){return(this.Bb&Yi)!=0},s.nk=function(e,t){return this.c=null,lQ(this,e,t)},s.Ib=function(){var e;return this.Db&64?bM(this):(e=new Bs(bM(this)),e.a+=" (containment: ",r1(e,(this.Bb&uc)!=0),e.a+=", resolveProxies: ",r1(e,(this.Bb&Yi)!=0),e.a+=")",e.a)},w(Bn,"EReferenceImpl",99),b(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},epn),s.Fb=function(e){return this===e},s.cd=function(){return this.b},s.dd=function(){return this.c},s.Hb=function(){return md(this)},s.Uh=function(e){gfe(this,Ce(e))},s.ed=function(e){return rfe(this,Ce(e))},s._g=function(e,t,i){var r;switch(e){case 0:return this.b;case 1:return this.c}return Cs(this,e-ee((Sn(),nr)),On((r=u(Rn(this,16),26),r||nr),e),t,i)},s.lh=function(e){var t;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return js(this,e-ee((Sn(),nr)),On((t=u(Rn(this,16),26),t||nr),e))},s.sh=function(e,t){var i;switch(e){case 0:pfe(this,Ce(t));return;case 1:wV(this,Ce(t));return}Ps(this,e-ee((Sn(),nr)),On((i=u(Rn(this,16),26),i||nr),e),t)},s.zh=function(){return Sn(),nr},s.Bh=function(e){var t;switch(e){case 0:bV(this,null);return;case 1:wV(this,null);return}As(this,e-ee((Sn(),nr)),On((t=u(Rn(this,16),26),t||nr),e))},s.Sh=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:m1(e)),this.a},s.Th=function(e){this.a=e},s.Ib=function(){var e;return this.Db&64?yo(this):(e=new Bs(yo(this)),e.a+=" (key: ",dr(e,this.b),e.a+=", value: ",dr(e,this.c),e.a+=")",e.a)},s.a=-1,s.b=null,s.c=null;var tc=w(Bn,"EStringToStringMapEntryImpl",548),ree=Et(vt,"FeatureMap/Entry/Internal");b(565,1,MA),s.Ok=function(e){return this.Pk(u(e,49))},s.Pk=function(e){return this.Ok(e)},s.Fb=function(e){var t,i;return this===e?!0:I(e,72)?(t=u(e,72),t.ak()==this.c?(i=this.dd(),i==null?t.dd()==null:tt(i,t.dd())):!1):!1},s.ak=function(){return this.c},s.Hb=function(){var e;return e=this.dd(),mt(this.c)^(e==null?0:mt(e))},s.Ib=function(){var e,t;return e=this.c,t=ts(e.Hj()).Ph(),e.ne(),(t!=null&&t.length!=0?t+":"+e.ne():e.ne())+"="+this.dd()},w(Bn,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),b(776,565,MA,bU),s.Pk=function(e){return new bU(this.c,e)},s.dd=function(){return this.a},s.Qk=function(e,t,i){return $be(this,e,this.a,t,i)},s.Rk=function(e,t,i){return Fbe(this,e,this.a,t,i)},w(Bn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),b(1314,1,{},$kn),s.Pj=function(e,t,i,r,c){var o;return o=u(A3(e,this.b),215),o.nl(this.a).Wj(r)},s.Qj=function(e,t,i,r,c){var o;return o=u(A3(e,this.b),215),o.el(this.a,r,c)},s.Rj=function(e,t,i,r,c){var o;return o=u(A3(e,this.b),215),o.fl(this.a,r,c)},s.Sj=function(e,t,i){var r;return r=u(A3(e,this.b),215),r.nl(this.a).fj()},s.Tj=function(e,t,i,r){var c;c=u(A3(e,this.b),215),c.nl(this.a).Wb(r)},s.Uj=function(e,t,i){return u(A3(e,this.b),215).nl(this.a)},s.Vj=function(e,t,i){var r;r=u(A3(e,this.b),215),r.nl(this.a).Xj()},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),b(89,1,{},s1,ha,f1,da),s.Pj=function(e,t,i,r,c){var o;if(o=t.Ch(i),o==null&&t.Dh(i,o=AM(this,e)),!c)switch(this.e){case 50:case 41:return u(o,589).sj();case 40:return u(o,215).kl()}return o},s.Qj=function(e,t,i,r,c){var o,f;return f=t.Ch(i),f==null&&t.Dh(i,f=AM(this,e)),o=u(f,69).lk(r,c),o},s.Rj=function(e,t,i,r,c){var o;return o=t.Ch(i),o!=null&&(c=u(o,69).mk(r,c)),c},s.Sj=function(e,t,i){var r;return r=t.Ch(i),r!=null&&u(r,76).fj()},s.Tj=function(e,t,i,r){var c;c=u(t.Ch(i),76),!c&&t.Dh(i,c=AM(this,e)),c.Wb(r)},s.Uj=function(e,t,i){var r,c;return c=t.Ch(i),c==null&&t.Dh(i,c=AM(this,e)),I(c,76)?u(c,76):(r=u(t.Ch(i),15),new Dmn(r))},s.Vj=function(e,t,i){var r;r=u(t.Ch(i),76),!r&&t.Dh(i,r=AM(this,e)),r.Xj()},s.b=0,s.e=0,w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),b(504,1,{}),s.Qj=function(e,t,i,r,c){throw T(new ye)},s.Rj=function(e,t,i,r,c){throw T(new ye)},s.Uj=function(e,t,i){return new STn(this,e,t,i)};var Eh;w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),b(1331,1,GB,STn),s.Wj=function(e){return this.a.Pj(this.c,this.d,this.b,e,!0)},s.fj=function(){return this.a.Sj(this.c,this.d,this.b)},s.Wb=function(e){this.a.Tj(this.c,this.d,this.b,e)},s.Xj=function(){this.a.Vj(this.c,this.d,this.b)},s.b=0,w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),b(769,504,{},QW),s.Pj=function(e,t,i,r,c){return Qx(e,e.eh(),e.Vg())==this.b?this.sk()&&r?Fx(e):e.eh():null},s.Qj=function(e,t,i,r,c){var o,f;return e.eh()&&(c=(o=e.Vg(),o>=0?e.Qg(c):e.eh().ih(e,-1-o,null,c))),f=yt(e.Tg(),this.e),e.Sg(r,f,c)},s.Rj=function(e,t,i,r,c){var o;return o=yt(e.Tg(),this.e),e.Sg(null,o,c)},s.Sj=function(e,t,i){var r;return r=yt(e.Tg(),this.e),!!e.eh()&&e.Vg()==r},s.Tj=function(e,t,i,r){var c,o,f,h,l;if(r!=null&&!nL(this.a,r))throw T(new Up(AA+(I(r,56)?IJ(u(r,56).Tg()):nV(Du(r)))+SA+this.a+"'"));if(c=e.eh(),f=yt(e.Tg(),this.e),B(r)!==B(c)||e.Vg()!=f&&r!=null){if(u4(e,u(r,56)))throw T(new Hn(tm+e.Ib()));l=null,c&&(l=(o=e.Vg(),o>=0?e.Qg(l):e.eh().ih(e,-1-o,null,l))),h=u(r,49),h&&(l=h.gh(e,yt(h.Tg(),this.b),null,l)),l=e.Sg(h,f,l),l&&l.Fi()}else e.Lg()&&e.Mg()&&et(e,new wi(e,1,f,r,r))},s.Vj=function(e,t,i){var r,c,o,f;r=e.eh(),r?(f=(c=e.Vg(),c>=0?e.Qg(null):e.eh().ih(e,-1-c,null,null)),o=yt(e.Tg(),this.e),f=e.Sg(null,o,f),f&&f.Fi()):e.Lg()&&e.Mg()&&et(e,new $5(e,1,this.e,null,null))},s.sk=function(){return!1},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),b(1315,769,{},kEn),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),b(563,504,{}),s.Pj=function(e,t,i,r,c){var o;return o=t.Ch(i),o==null?this.b:B(o)===B(Eh)?null:o},s.Sj=function(e,t,i){var r;return r=t.Ch(i),r!=null&&(B(r)===B(Eh)||!tt(r,this.b))},s.Tj=function(e,t,i,r){var c,o;e.Lg()&&e.Mg()?(c=(o=t.Ch(i),o==null?this.b:B(o)===B(Eh)?null:o),r==null?this.c!=null?(t.Dh(i,null),r=this.b):this.b!=null?t.Dh(i,Eh):t.Dh(i,null):(this.Sk(r),t.Dh(i,r)),et(e,this.d.Tk(e,1,this.e,c,r))):r==null?this.c!=null?t.Dh(i,null):this.b!=null?t.Dh(i,Eh):t.Dh(i,null):(this.Sk(r),t.Dh(i,r))},s.Vj=function(e,t,i){var r,c;e.Lg()&&e.Mg()?(r=(c=t.Ch(i),c==null?this.b:B(c)===B(Eh)?null:c),t.Eh(i),et(e,this.d.Tk(e,1,this.e,r,this.b))):t.Eh(i)},s.Sk=function(e){throw T(new Hmn)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),b(pg,1,{},tpn),s.Tk=function(e,t,i,r,c){return new $5(e,t,i,r,c)},s.Uk=function(e,t,i,r,c,o){return new VD(e,t,i,r,c,o)};var v1n,m1n,k1n,y1n,j1n,E1n,C1n,vH,T1n;w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",pg),b(1332,pg,{},ipn),s.Tk=function(e,t,i,r,c){return new OX(e,t,i,on(sn(r)),on(sn(c)))},s.Uk=function(e,t,i,r,c,o){return new QMn(e,t,i,on(sn(r)),on(sn(c)),o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),b(1333,pg,{},rpn),s.Tk=function(e,t,i,r,c){return new rV(e,t,i,u(r,217).a,u(c,217).a)},s.Uk=function(e,t,i,r,c,o){return new qMn(e,t,i,u(r,217).a,u(c,217).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),b(1334,pg,{},cpn),s.Tk=function(e,t,i,r,c){return new cV(e,t,i,u(r,172).a,u(c,172).a)},s.Uk=function(e,t,i,r,c,o){return new GMn(e,t,i,u(r,172).a,u(c,172).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),b(1335,pg,{},upn),s.Tk=function(e,t,i,r,c){return new PX(e,t,i,K(Y(r)),K(Y(c)))},s.Uk=function(e,t,i,r,c,o){return new zMn(e,t,i,K(Y(r)),K(Y(c)),o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),b(1336,pg,{},spn),s.Tk=function(e,t,i,r,c){return new oV(e,t,i,u(r,155).a,u(c,155).a)},s.Uk=function(e,t,i,r,c,o){return new UMn(e,t,i,u(r,155).a,u(c,155).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),b(1337,pg,{},opn),s.Tk=function(e,t,i,r,c){return new IX(e,t,i,u(r,19).a,u(c,19).a)},s.Uk=function(e,t,i,r,c,o){return new WMn(e,t,i,u(r,19).a,u(c,19).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),b(1338,pg,{},fpn),s.Tk=function(e,t,i,r,c){return new uV(e,t,i,u(r,162).a,u(c,162).a)},s.Uk=function(e,t,i,r,c,o){return new XMn(e,t,i,u(r,162).a,u(c,162).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),b(1339,pg,{},hpn),s.Tk=function(e,t,i,r,c){return new sV(e,t,i,u(r,184).a,u(c,184).a)},s.Uk=function(e,t,i,r,c,o){return new VMn(e,t,i,u(r,184).a,u(c,184).a,o)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),b(1317,563,{},PTn),s.Sk=function(e){if(!this.a.wj(e))throw T(new Up(AA+Du(e)+SA+this.a+"'"))},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),b(1318,563,{},pCn),s.Sk=function(e){},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),b(770,563,{}),s.Sj=function(e,t,i){var r;return r=t.Ch(i),r!=null},s.Tj=function(e,t,i,r){var c,o;e.Lg()&&e.Mg()?(c=!0,o=t.Ch(i),o==null?(c=!1,o=this.b):B(o)===B(Eh)&&(o=null),r==null?this.c!=null?(t.Dh(i,null),r=this.b):t.Dh(i,Eh):(this.Sk(r),t.Dh(i,r)),et(e,this.d.Uk(e,1,this.e,o,r,!c))):r==null?this.c!=null?t.Dh(i,null):t.Dh(i,Eh):(this.Sk(r),t.Dh(i,r))},s.Vj=function(e,t,i){var r,c;e.Lg()&&e.Mg()?(r=!0,c=t.Ch(i),c==null?(r=!1,c=this.b):B(c)===B(Eh)&&(c=null),t.Eh(i),et(e,this.d.Uk(e,2,this.e,c,this.b,r))):t.Eh(i)},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),b(1319,770,{},ITn),s.Sk=function(e){if(!this.a.wj(e))throw T(new Up(AA+Du(e)+SA+this.a+"'"))},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),b(1320,770,{},vCn),s.Sk=function(e){},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),b(398,504,{},FE),s.Pj=function(e,t,i,r,c){var o,f,h,l,a;if(a=t.Ch(i),this.Kj()&&B(a)===B(Eh))return null;if(this.sk()&&r&&a!=null){if(h=u(a,49),h.kh()&&(l=pl(e,h),h!=l)){if(!nL(this.a,l))throw T(new Up(AA+Du(l)+SA+this.a+"'"));t.Dh(i,a=l),this.rk()&&(o=u(l,49),f=h.ih(e,this.b?yt(h.Tg(),this.b):-1-yt(e.Tg(),this.e),null,null),!o.eh()&&(f=o.gh(e,this.b?yt(o.Tg(),this.b):-1-yt(e.Tg(),this.e),null,f)),f&&f.Fi()),e.Lg()&&e.Mg()&&et(e,new $5(e,9,this.e,h,l))}return a}else return a},s.Qj=function(e,t,i,r,c){var o,f;return f=t.Ch(i),B(f)===B(Eh)&&(f=null),t.Dh(i,r),this.bj()?B(f)!==B(r)&&f!=null&&(o=u(f,49),c=o.ih(e,yt(o.Tg(),this.b),null,c)):this.rk()&&f!=null&&(c=u(f,49).ih(e,-1-yt(e.Tg(),this.e),null,c)),e.Lg()&&e.Mg()&&(!c&&(c=new Q1(4)),c.Ei(new $5(e,1,this.e,f,r))),c},s.Rj=function(e,t,i,r,c){var o;return o=t.Ch(i),B(o)===B(Eh)&&(o=null),t.Eh(i),e.Lg()&&e.Mg()&&(!c&&(c=new Q1(4)),this.Kj()?c.Ei(new $5(e,2,this.e,o,null)):c.Ei(new $5(e,1,this.e,o,null))),c},s.Sj=function(e,t,i){var r;return r=t.Ch(i),r!=null},s.Tj=function(e,t,i,r){var c,o,f,h,l;if(r!=null&&!nL(this.a,r))throw T(new Up(AA+(I(r,56)?IJ(u(r,56).Tg()):nV(Du(r)))+SA+this.a+"'"));l=t.Ch(i),h=l!=null,this.Kj()&&B(l)===B(Eh)&&(l=null),f=null,this.bj()?B(l)!==B(r)&&(l!=null&&(c=u(l,49),f=c.ih(e,yt(c.Tg(),this.b),null,f)),r!=null&&(c=u(r,49),f=c.gh(e,yt(c.Tg(),this.b),null,f))):this.rk()&&B(l)!==B(r)&&(l!=null&&(f=u(l,49).ih(e,-1-yt(e.Tg(),this.e),null,f)),r!=null&&(f=u(r,49).gh(e,-1-yt(e.Tg(),this.e),null,f))),r==null&&this.Kj()?t.Dh(i,Eh):t.Dh(i,r),e.Lg()&&e.Mg()?(o=new VD(e,1,this.e,l,r,this.Kj()&&!h),f?(f.Ei(o),f.Fi()):et(e,o)):f&&f.Fi()},s.Vj=function(e,t,i){var r,c,o,f,h;h=t.Ch(i),f=h!=null,this.Kj()&&B(h)===B(Eh)&&(h=null),o=null,h!=null&&(this.bj()?(r=u(h,49),o=r.ih(e,yt(r.Tg(),this.b),null,o)):this.rk()&&(o=u(h,49).ih(e,-1-yt(e.Tg(),this.e),null,o))),t.Eh(i),e.Lg()&&e.Mg()?(c=new VD(e,this.Kj()?2:1,this.e,h,null,f),o?(o.Ei(c),o.Fi()):et(e,c)):o&&o.Fi()},s.bj=function(){return!1},s.rk=function(){return!1},s.sk=function(){return!1},s.Kj=function(){return!1},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),b(564,398,{},JO),s.rk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),b(1323,564,{},gjn),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),b(772,564,{},eU),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),b(1325,772,{},pjn),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),b(640,564,{},lD),s.bj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),b(1324,640,{},yEn),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),b(773,640,{},KU),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),b(1326,773,{},jEn),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),b(641,398,{},tU),s.sk=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),b(1327,641,{},vjn),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),b(774,641,{},RU),s.bj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),b(1328,774,{},EEn),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),b(1321,398,{},mjn),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),b(771,398,{},_U),s.bj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),b(1322,771,{},CEn),s.Kj=function(){return!0},w(Bn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),b(775,565,MA,LW),s.Pk=function(e){return new LW(this.a,this.c,e)},s.dd=function(){return this.b},s.Qk=function(e,t,i){return Fde(this,e,this.b,i)},s.Rk=function(e,t,i){return xde(this,e,this.b,i)},w(Bn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),b(1329,1,GB,Dmn),s.Wj=function(e){return this.a},s.fj=function(){return I(this.a,95)?u(this.a,95).fj():!this.a.dc()},s.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},s.Xj=function(){I(this.a,95)?u(this.a,95).Xj():this.a.$b()},w(Bn,"EStructuralFeatureImpl/SettingMany",1329),b(1330,565,MA,BAn),s.Ok=function(e){return new nD((ht(),p9),this.b.Ih(this.a,e))},s.dd=function(){return null},s.Qk=function(e,t,i){return i},s.Rk=function(e,t,i){return i},w(Bn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),b(642,565,MA,nD),s.Ok=function(e){return new nD(this.c,e)},s.dd=function(){return this.a},s.Qk=function(e,t,i){return i},s.Rk=function(e,t,i){return i},w(Bn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),b(391,497,Wf,Bp),s.ri=function(e){return F(ro,rn,26,e,0,1)},s.ni=function(){return!1},w(Bn,"ESuperAdapter/1",391),b(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},CI),s._g=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new P5(this,ar,this)),this.a}return Cs(this,e-ee((Sn(),O0)),On((r=u(Rn(this,16),26),r||O0),e),t,i)},s.jh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new V(Be,this,0,3)),zi(this.Ab,e,i);case 2:return!this.a&&(this.a=new P5(this,ar,this)),zi(this.a,e,i)}return c=u(On((r=u(Rn(this,16),26),r||(Sn(),O0)),t),66),c.Nj().Rj(this,Rc(this),t-ee((Sn(),O0)),e,i)},s.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return js(this,e-ee((Sn(),O0)),On((t=u(Rn(this,16),26),t||O0),e))},s.sh=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab),!this.Ab&&(this.Ab=new V(Be,this,0,3)),Dt(this.Ab,u(t,14));return;case 1:Ic(this,Ce(t));return;case 2:!this.a&&(this.a=new P5(this,ar,this)),de(this.a),!this.a&&(this.a=new P5(this,ar,this)),Dt(this.a,u(t,14));return}Ps(this,e-ee((Sn(),O0)),On((i=u(Rn(this,16),26),i||O0),e),t)},s.zh=function(){return Sn(),O0},s.Bh=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new V(Be,this,0,3)),de(this.Ab);return;case 1:Ic(this,null);return;case 2:!this.a&&(this.a=new P5(this,ar,this)),de(this.a);return}As(this,e-ee((Sn(),O0)),On((t=u(Rn(this,16),26),t||O0),e))},w(Bn,"ETypeParameterImpl",444),b(445,85,Nr,P5),s.cj=function(e,t){return xve(this,u(e,87),t)},s.dj=function(e,t){return Lve(this,u(e,87),t)},w(Bn,"ETypeParameterImpl/1",445),b(634,43,sg,KI),s.ec=function(){return new sj(this)},w(Bn,"ETypeParameterImpl/2",634),b(556,df,pu,sj),s.Fc=function(e){return zjn(this,u(e,87))},s.Gc=function(e){var t,i,r;for(r=!1,i=e.Kc();i.Ob();)t=u(i.Pb(),87),it(this.a,t,"")==null&&(r=!0);return r},s.$b=function(){Eu(this.a)},s.Hc=function(e){return zu(this.a,e)},s.Kc=function(){var e;return e=new Ea(new ta(this.a).a),new oj(e)},s.Mc=function(e){return OSn(this,e)},s.gc=function(){return Xv(this.a)},w(Bn,"ETypeParameterImpl/2/1",556),b(557,1,yi,oj),s.Nb=function(e){Oi(this,e)},s.Pb=function(){return u(Nd(this.a).cd(),87)},s.Ob=function(){return this.a.b},s.Qb=function(){oPn(this.a)},w(Bn,"ETypeParameterImpl/2/1/1",557),b(1276,43,sg,j9n),s._b=function(e){return mi(e)?QD(this,e):!!Ar(this.f,e)},s.xc=function(e){var t,i;return t=mi(e)?vc(this,e):Vr(Ar(this.f,e)),I(t,837)?(i=u(t,837),t=i._j(),it(this,u(e,235),t),t):t??(e==null?(rO(),uee):null)},w(Bn,"EValidatorRegistryImpl",1276),b(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},lpn),s.Ih=function(e,t){switch(e.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return t==null?null:Lr(t);case 25:return q0e(t);case 27:return u0e(t);case 28:return s0e(t);case 29:return t==null?null:Tyn(l9[0],u(t,199));case 41:return t==null?"":J1(u(t,290));case 42:return Lr(t);case 50:return Ce(t);default:throw T(new Hn(R4+e.ne()+h0))}},s.Jh=function(e){var t,i,r,c,o,f,h,l,a,d,g,p,v,m,C,S;switch(e.G==-1&&(e.G=(p=ts(e),p?v1(p.Mh(),e):-1)),e.G){case 0:return i=new BI,i;case 1:return t=new JH,t;case 2:return r=new tq,r;case 4:return c=new fj,c;case 5:return o=new y9n,o;case 6:return f=new zmn,f;case 7:return h=new eq,h;case 10:return a=new Yy,a;case 11:return d=new RI,d;case 12:return g=new WTn,g;case 13:return v=new _I,v;case 14:return m=new cU,m;case 17:return C=new epn,C;case 18:return l=new ud,l;case 19:return S=new CI,S;default:throw T(new Hn(SB+e.zb+h0))}},s.Kh=function(e,t){switch(e.yj()){case 20:return t==null?null:new CG(t);case 21:return t==null?null:new il(t);case 23:case 22:return t==null?null:X2e(t);case 26:case 24:return t==null?null:X8(us(t,-128,127)<<24>>24);case 25:return c9e(t);case 27:return O3e(t);case 28:return D3e(t);case 29:return n5e(t);case 32:case 31:return t==null?null:kb(t);case 38:case 37:return t==null?null:new Gq(t);case 40:case 39:return t==null?null:Q(us(t,Bi,nt));case 41:return null;case 42:return t==null,null;case 44:case 43:return t==null?null:Ma(MM(t));case 49:case 48:return t==null?null:J3(us(t,PA,32767)<<16>>16);case 50:return t;default:throw T(new Hn(R4+e.ne()+h0))}},w(Bn,"EcoreFactoryImpl",1313),b(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},hTn),s.gb=!1,s.hb=!1;var M1n,cee=!1;w(Bn,"EcorePackageImpl",547),b(1184,1,{837:1},apn),s._j=function(){return Vyn(),see},w(Bn,"EcorePackageImpl/1",1184),b(1193,1,qe,dpn),s.wj=function(e){return I(e,147)},s.xj=function(e){return F(Dy,rn,147,e,0,1)},w(Bn,"EcorePackageImpl/10",1193),b(1194,1,qe,bpn),s.wj=function(e){return I(e,191)},s.xj=function(e){return F(fH,rn,191,e,0,1)},w(Bn,"EcorePackageImpl/11",1194),b(1195,1,qe,wpn),s.wj=function(e){return I(e,56)},s.xj=function(e){return F(zl,rn,56,e,0,1)},w(Bn,"EcorePackageImpl/12",1195),b(1196,1,qe,gpn),s.wj=function(e){return I(e,399)},s.xj=function(e){return F(co,Qtn,59,e,0,1)},w(Bn,"EcorePackageImpl/13",1196),b(1197,1,qe,ppn),s.wj=function(e){return I(e,235)},s.xj=function(e){return F(Vo,rn,235,e,0,1)},w(Bn,"EcorePackageImpl/14",1197),b(1198,1,qe,vpn),s.wj=function(e){return I(e,509)},s.xj=function(e){return F(P0,rn,2017,e,0,1)},w(Bn,"EcorePackageImpl/15",1198),b(1199,1,qe,mpn),s.wj=function(e){return I(e,99)},s.xj=function(e){return F(fw,gg,18,e,0,1)},w(Bn,"EcorePackageImpl/16",1199),b(1200,1,qe,kpn),s.wj=function(e){return I(e,170)},s.xj=function(e){return F(su,gg,170,e,0,1)},w(Bn,"EcorePackageImpl/17",1200),b(1201,1,qe,ypn),s.wj=function(e){return I(e,472)},s.xj=function(e){return F(sw,rn,472,e,0,1)},w(Bn,"EcorePackageImpl/18",1201),b(1202,1,qe,jpn),s.wj=function(e){return I(e,548)},s.xj=function(e){return F(tc,uGn,548,e,0,1)},w(Bn,"EcorePackageImpl/19",1202),b(1185,1,qe,Epn),s.wj=function(e){return I(e,322)},s.xj=function(e){return F(ow,gg,34,e,0,1)},w(Bn,"EcorePackageImpl/2",1185),b(1203,1,qe,Cpn),s.wj=function(e){return I(e,241)},s.xj=function(e){return F(ar,EGn,87,e,0,1)},w(Bn,"EcorePackageImpl/20",1203),b(1204,1,qe,Tpn),s.wj=function(e){return I(e,444)},s.xj=function(e){return F(zc,rn,836,e,0,1)},w(Bn,"EcorePackageImpl/21",1204),b(1205,1,qe,Mpn),s.wj=function(e){return q0(e)},s.xj=function(e){return F(si,q,476,e,8,1)},w(Bn,"EcorePackageImpl/22",1205),b(1206,1,qe,Apn),s.wj=function(e){return I(e,190)},s.xj=function(e){return F(yu,q,190,e,0,2)},w(Bn,"EcorePackageImpl/23",1206),b(1207,1,qe,Spn),s.wj=function(e){return I(e,217)},s.xj=function(e){return F(op,q,217,e,0,1)},w(Bn,"EcorePackageImpl/24",1207),b(1208,1,qe,Ppn),s.wj=function(e){return I(e,172)},s.xj=function(e){return F(bm,q,172,e,0,1)},w(Bn,"EcorePackageImpl/25",1208),b(1209,1,qe,Ipn),s.wj=function(e){return I(e,199)},s.xj=function(e){return F(HA,q,199,e,0,1)},w(Bn,"EcorePackageImpl/26",1209),b(1210,1,qe,Opn),s.wj=function(e){return!1},s.xj=function(e){return F(G1n,rn,2110,e,0,1)},w(Bn,"EcorePackageImpl/27",1210),b(1211,1,qe,Dpn),s.wj=function(e){return G0(e)},s.xj=function(e){return F(Mi,q,333,e,7,1)},w(Bn,"EcorePackageImpl/28",1211),b(1212,1,qe,$pn),s.wj=function(e){return I(e,58)},s.xj=function(e){return F(c1n,Ob,58,e,0,1)},w(Bn,"EcorePackageImpl/29",1212),b(1186,1,qe,Fpn),s.wj=function(e){return I(e,510)},s.xj=function(e){return F(Be,{3:1,4:1,5:1,1934:1},590,e,0,1)},w(Bn,"EcorePackageImpl/3",1186),b(1213,1,qe,xpn),s.wj=function(e){return I(e,573)},s.xj=function(e){return F(o1n,rn,1940,e,0,1)},w(Bn,"EcorePackageImpl/30",1213),b(1214,1,qe,Lpn),s.wj=function(e){return I(e,153)},s.xj=function(e){return F(O1n,Ob,153,e,0,1)},w(Bn,"EcorePackageImpl/31",1214),b(1215,1,qe,Npn),s.wj=function(e){return I(e,72)},s.xj=function(e){return F(rI,DGn,72,e,0,1)},w(Bn,"EcorePackageImpl/32",1215),b(1216,1,qe,Bpn),s.wj=function(e){return I(e,155)},s.xj=function(e){return F(U4,q,155,e,0,1)},w(Bn,"EcorePackageImpl/33",1216),b(1217,1,qe,Rpn),s.wj=function(e){return I(e,19)},s.xj=function(e){return F(Wi,q,19,e,0,1)},w(Bn,"EcorePackageImpl/34",1217),b(1218,1,qe,_pn),s.wj=function(e){return I(e,290)},s.xj=function(e){return F(fin,rn,290,e,0,1)},w(Bn,"EcorePackageImpl/35",1218),b(1219,1,qe,Kpn),s.wj=function(e){return I(e,162)},s.xj=function(e){return F(a0,q,162,e,0,1)},w(Bn,"EcorePackageImpl/36",1219),b(1220,1,qe,Hpn),s.wj=function(e){return I(e,83)},s.xj=function(e){return F(hin,rn,83,e,0,1)},w(Bn,"EcorePackageImpl/37",1220),b(1221,1,qe,qpn),s.wj=function(e){return I(e,591)},s.xj=function(e){return F(A1n,rn,591,e,0,1)},w(Bn,"EcorePackageImpl/38",1221),b(1222,1,qe,Gpn),s.wj=function(e){return!1},s.xj=function(e){return F(z1n,rn,2111,e,0,1)},w(Bn,"EcorePackageImpl/39",1222),b(1187,1,qe,zpn),s.wj=function(e){return I(e,88)},s.xj=function(e){return F(ro,rn,26,e,0,1)},w(Bn,"EcorePackageImpl/4",1187),b(1223,1,qe,Upn),s.wj=function(e){return I(e,184)},s.xj=function(e){return F(d0,q,184,e,0,1)},w(Bn,"EcorePackageImpl/40",1223),b(1224,1,qe,Wpn),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Bn,"EcorePackageImpl/41",1224),b(1225,1,qe,Xpn),s.wj=function(e){return I(e,588)},s.xj=function(e){return F(s1n,rn,588,e,0,1)},w(Bn,"EcorePackageImpl/42",1225),b(1226,1,qe,Vpn),s.wj=function(e){return!1},s.xj=function(e){return F(U1n,q,2112,e,0,1)},w(Bn,"EcorePackageImpl/43",1226),b(1227,1,qe,Qpn),s.wj=function(e){return I(e,42)},s.xj=function(e){return F(Ha,OM,42,e,0,1)},w(Bn,"EcorePackageImpl/44",1227),b(1188,1,qe,Jpn),s.wj=function(e){return I(e,138)},s.xj=function(e){return F(Qo,rn,138,e,0,1)},w(Bn,"EcorePackageImpl/5",1188),b(1189,1,qe,Ypn),s.wj=function(e){return I(e,148)},s.xj=function(e){return F(wH,rn,148,e,0,1)},w(Bn,"EcorePackageImpl/6",1189),b(1190,1,qe,Zpn),s.wj=function(e){return I(e,457)},s.xj=function(e){return F(iI,rn,671,e,0,1)},w(Bn,"EcorePackageImpl/7",1190),b(1191,1,qe,n3n),s.wj=function(e){return I(e,573)},s.xj=function(e){return F(e1,rn,678,e,0,1)},w(Bn,"EcorePackageImpl/8",1191),b(1192,1,qe,e3n),s.wj=function(e){return I(e,471)},s.xj=function(e){return F(h9,rn,471,e,0,1)},w(Bn,"EcorePackageImpl/9",1192),b(1025,1982,cGn,_9n),s.bi=function(e,t){kge(this,u(t,415))},s.fi=function(e,t){nLn(this,e,u(t,415))},w(Bn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),b(1026,143,jk,eTn),s.Ai=function(){return this.a.a},w(Bn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),b(1053,1052,{},pyn),w("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var A1n=Et($Gn,"Resource");b(781,1378,FGn),s.Yk=function(e){},s.Zk=function(e){},s.Vk=function(){return!this.a&&(this.a=new $I(this)),this.a},s.Wk=function(e){var t,i,r,c,o;if(r=e.length,r>0)if(Te(0,e.length),e.charCodeAt(0)==47){for(o=new Pc(4),c=1,t=1;t0&&(e=e.substr(0,i)));return H6e(this,e)},s.Xk=function(){return this.c},s.Ib=function(){var e;return J1(this.gm)+"@"+(e=mt(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},s.b=!1,w(zB,"ResourceImpl",781),b(1379,781,FGn,Fmn),w(zB,"BinaryResourceImpl",1379),b(1169,694,RB),s.si=function(e){return I(e,56)?E1e(this,u(e,56)):I(e,591)?new ie(u(e,591).Vk()):B(e)===B(this.f)?u(e,14).Kc():(o3(),xy.a)},s.Ob=function(){return yY(this)},s.a=!1,w(vt,"EcoreUtil/ContentTreeIterator",1169),b(1380,1169,RB,DCn),s.si=function(e){return B(e)===B(this.f)?u(e,15).Kc():new wAn(u(e,56))},w(zB,"ResourceImpl/5",1380),b(648,1994,jGn,$I),s.Hc=function(e){return this.i<=4?o4(this,e):I(e,49)&&u(e,49).Zg()==this.a},s.bi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},s.di=function(e,t){e==0?this.a.b||(this.a.b=!0):A$(this,e,t)},s.fi=function(e,t){},s.gi=function(e,t,i){},s.aj=function(){return 2},s.Ai=function(){return this.a},s.bj=function(){return!0},s.cj=function(e,t){var i;return i=u(e,49),t=i.wh(this.a,t),t},s.dj=function(e,t){var i;return i=u(e,49),i.wh(null,t)},s.ej=function(){return!1},s.hi=function(){return!0},s.ri=function(e){return F(zl,rn,56,e,0,1)},s.ni=function(){return!1},w(zB,"ResourceImpl/ContentsEList",648),b(957,1964,A4,$mn),s.Zc=function(e){return this.a._h(e)},s.gc=function(){return this.a.gc()},w(vt,"AbstractSequentialInternalEList/1",957);var S1n,P1n,xi,I1n;b(624,1,{},FEn);var cI,uI;w(vt,"BasicExtendedMetaData",624),b(1160,1,{},Fkn),s.$k=function(){return null},s._k=function(){return this.a==-2&&yte(this,Vve(this.d,this.b)),this.a},s.al=function(){return null},s.bl=function(){return Pn(),Pn(),cr},s.ne=function(){return this.c==H4&&Ete(this,O$n(this.d,this.b)),this.c},s.cl=function(){return 0},s.a=-2,s.c=H4,w(vt,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),b(1161,1,{},eAn),s.$k=function(){return this.a==(T3(),cI)&&jte(this,l8e(this.f,this.b)),this.a},s._k=function(){return 0},s.al=function(){return this.c==(T3(),cI)&&Cte(this,a8e(this.f,this.b)),this.c},s.bl=function(){return!this.d&&Tte(this,lke(this.f,this.b)),this.d},s.ne=function(){return this.e==H4&&Mte(this,O$n(this.f,this.b)),this.e},s.cl=function(){return this.g==-2&&Ate(this,bve(this.f,this.b)),this.g},s.e=H4,s.g=-2,w(vt,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),b(1159,1,{},Lkn),s.b=!1,s.c=!1,w(vt,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),b(1162,1,{},nAn),s.c=-2,s.e=H4,s.f=H4,w(vt,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),b(585,622,Nr,ME),s.aj=function(){return this.c},s.Fk=function(){return!1},s.li=function(e,t){return t},s.c=0,w(vt,"EDataTypeEList",585);var O1n=Et(vt,"FeatureMap");b(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},$t),s.Vc=function(e,t){s8e(this,e,u(t,72))},s.Fc=function(e){return M9e(this,u(e,72))},s.Yh=function(e){ahe(this,u(e,72))},s.cj=function(e,t){return Uue(this,u(e,72),t)},s.dj=function(e,t){return SU(this,u(e,72),t)},s.ii=function(e,t){return Pke(this,e,t)},s.li=function(e,t){return oEe(this,e,u(t,72))},s._c=function(e,t){return J8e(this,e,u(t,72))},s.jj=function(e,t){return Wue(this,u(e,72),t)},s.kj=function(e,t){return cEn(this,u(e,72),t)},s.lj=function(e,t,i){return J4e(this,u(e,72),u(t,72),i)},s.oi=function(e,t){return px(this,e,u(t,72))},s.dl=function(e,t){return fZ(this,e,t)},s.Wc=function(e,t){var i,r,c,o,f,h,l,a,d;for(a=new Ld(t.gc()),c=t.Kc();c.Ob();)if(r=u(c.Pb(),72),o=r.ak(),zh(this.e,o))(!o.hi()||!yC(this,o,r.dd())&&!o4(a,r))&&me(a,r);else{for(d=Kc(this.e.Tg(),o),i=u(this.g,119),f=!0,h=0;h=0;)if(t=e[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},w(vt,"BasicFeatureMap/FeatureEIterator",410),b(662,410,hh,LO),s.Lk=function(){return!0},w(vt,"BasicFeatureMap/ResolvingFeatureEIterator",662),b(955,486,CA,Ayn),s.Gi=function(){return this},w(vt,"EContentsEList/1",955),b(956,486,CA,Ykn),s.Lk=function(){return!1},w(vt,"EContentsEList/2",956),b(954,279,TA,Syn),s.Nk=function(e){},s.Ob=function(){return!1},s.Sb=function(){return!1},w(vt,"EContentsEList/FeatureIteratorImpl/1",954),b(825,585,Nr,$z),s.ci=function(){this.a=!0},s.fj=function(){return this.a},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.a,this.a=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.a=!1},s.a=!1,w(vt,"EDataTypeEList/Unsettable",825),b(1849,585,Nr,Lyn),s.hi=function(){return!0},w(vt,"EDataTypeUniqueEList",1849),b(1850,825,Nr,Nyn),s.hi=function(){return!0},w(vt,"EDataTypeUniqueEList/Unsettable",1850),b(139,85,Nr,lu),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectContainmentEList/Resolving",139),b(1163,545,Nr,xyn),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectContainmentEList/Unsettable/Resolving",1163),b(748,16,Nr,yU),s.ci=function(){this.a=!0},s.fj=function(){return this.a},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.a,this.a=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.a=!1},s.a=!1,w(vt,"EObjectContainmentWithInverseEList/Unsettable",748),b(1173,748,Nr,Ujn),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),b(743,496,Nr,Dz),s.ci=function(){this.a=!0},s.fj=function(){return this.a},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.a,this.a=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.a=!1},s.a=!1,w(vt,"EObjectEList/Unsettable",743),b(328,496,Nr,Aw),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectResolvingEList",328),b(1641,743,Nr,Byn),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectResolvingEList/Unsettable",1641),b(1381,1,{},t3n);var uee;w(vt,"EObjectValidator",1381),b(546,496,Nr,zE),s.zk=function(){return this.d},s.Ak=function(){return this.b},s.bj=function(){return!0},s.Dk=function(){return!0},s.b=0,w(vt,"EObjectWithInverseEList",546),b(1176,546,Nr,Wjn),s.Ck=function(){return!0},w(vt,"EObjectWithInverseEList/ManyInverse",1176),b(625,546,Nr,tD),s.ci=function(){this.a=!0},s.fj=function(){return this.a},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.a,this.a=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.a=!1},s.a=!1,w(vt,"EObjectWithInverseEList/Unsettable",625),b(1175,625,Nr,Xjn),s.Ck=function(){return!0},w(vt,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),b(749,546,Nr,jU),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectWithInverseResolvingEList",749),b(31,749,Nr,Fn),s.Ck=function(){return!0},w(vt,"EObjectWithInverseResolvingEList/ManyInverse",31),b(750,625,Nr,EU),s.Ek=function(){return!0},s.li=function(e,t){return U2(this,e,u(t,56))},w(vt,"EObjectWithInverseResolvingEList/Unsettable",750),b(1174,750,Nr,Vjn),s.Ck=function(){return!0},w(vt,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),b(1164,622,Nr),s.ai=function(){return(this.b&1792)==0},s.ci=function(){this.b|=1},s.Bk=function(){return(this.b&4)!=0},s.bj=function(){return(this.b&40)!=0},s.Ck=function(){return(this.b&16)!=0},s.Dk=function(){return(this.b&8)!=0},s.Ek=function(){return(this.b&Bb)!=0},s.rk=function(){return(this.b&32)!=0},s.Fk=function(){return(this.b&Eo)!=0},s.wj=function(e){return this.d?IAn(this.d,e):this.ak().Yj().wj(e)},s.fj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},s.hi=function(){return(this.b&128)!=0},s.Xj=function(){var e;de(this),this.b&2&&(Hu(this.e)?(e=(this.b&1)!=0,this.b&=-2,Gp(this,new vo(this.e,2,yt(this.e.Tg(),this.ak()),e,!1))):this.b&=-2)},s.ni=function(){return(this.b&1536)==0},s.b=0,w(vt,"EcoreEList/Generic",1164),b(1165,1164,Nr,RTn),s.ak=function(){return this.a},w(vt,"EcoreEList/Dynamic",1165),b(747,63,Wf,Lq),s.ri=function(e){return Q8(this.a.a,e)},w(vt,"EcoreEMap/1",747),b(746,85,Nr,yW),s.bi=function(e,t){KT(this.b,u(t,133))},s.di=function(e,t){TOn(this.b)},s.ei=function(e,t,i){var r;++(r=this.b,u(t,133),r).e},s.fi=function(e,t){MF(this.b,u(t,133))},s.gi=function(e,t,i){MF(this.b,u(i,133)),B(i)===B(t)&&u(i,133).Th(ece(u(t,133).cd())),KT(this.b,u(t,133))},w(vt,"EcoreEMap/DelegateEObjectContainmentEList",746),b(1171,151,Vtn,BIn),w(vt,"EcoreEMap/Unsettable",1171),b(1172,746,Nr,Qjn),s.ci=function(){this.a=!0},s.fj=function(){return this.a},s.Xj=function(){var e;de(this),Hu(this.e)?(e=this.a,this.a=!1,et(this.e,new vo(this.e,2,this.c,e,!1))):this.a=!1},s.a=!1,w(vt,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),b(1168,228,sg,HCn),s.a=!1,s.b=!1,w(vt,"EcoreUtil/Copier",1168),b(745,1,yi,wAn),s.Nb=function(e){Oi(this,e)},s.Ob=function(){return l$n(this)},s.Pb=function(){var e;return l$n(this),e=this.b,this.b=null,e},s.Qb=function(){this.a.Qb()},w(vt,"EcoreUtil/ProperContentIterator",745),b(1382,1381,{},Z4n);var see;w(vt,"EcoreValidator",1382);var oee;Et(vt,"FeatureMapUtil/Validator"),b(1260,1,{1942:1},i3n),s.rl=function(e){return!0},w(vt,"FeatureMapUtil/1",1260),b(757,1,{1942:1},BZ),s.rl=function(e){var t;return this.c==e?!0:(t=sn(te(this.a,e)),t==null?U7e(this,e)?(ESn(this.a,e,(qn(),z4)),!0):(ESn(this.a,e,(qn(),qa)),!1):t==(qn(),z4))},s.e=!1;var mH;w(vt,"FeatureMapUtil/BasicValidator",757),b(758,43,sg,Sz),w(vt,"FeatureMapUtil/BasicValidator/Cache",758),b(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},i8),s.Vc=function(e,t){_Nn(this.c,this.b,e,t)},s.Fc=function(e){return fZ(this.c,this.b,e)},s.Wc=function(e,t){return sje(this.c,this.b,e,t)},s.Gc=function(e){return m5(this,e)},s.Xh=function(e,t){S0e(this.c,this.b,e,t)},s.lk=function(e,t){return iZ(this.c,this.b,e,t)},s.pi=function(e){return kM(this.c,this.b,e,!1)},s.Zh=function(){return fyn(this.c,this.b)},s.$h=function(){return Hre(this.c,this.b)},s._h=function(e){return $de(this.c,this.b,e)},s.mk=function(e,t){return Sjn(this,e,t)},s.$b=function(){t2(this)},s.Hc=function(e){return yC(this.c,this.b,e)},s.Ic=function(e){return Dbe(this.c,this.b,e)},s.Xb=function(e){return kM(this.c,this.b,e,!0)},s.Wj=function(e){return this},s.Xc=function(e){return Gae(this.c,this.b,e)},s.dc=function(){return Zj(this)},s.fj=function(){return!g7(this.c,this.b)},s.Kc=function(){return g0e(this.c,this.b)},s.Yc=function(){return p0e(this.c,this.b)},s.Zc=function(e){return Pge(this.c,this.b,e)},s.ii=function(e,t){return rRn(this.c,this.b,e,t)},s.ji=function(e,t){Ade(this.c,this.b,e,t)},s.$c=function(e){return Nxn(this.c,this.b,e)},s.Mc=function(e){return dke(this.c,this.b,e)},s._c=function(e,t){return hRn(this.c,this.b,e,t)},s.Wb=function(e){iM(this.c,this.b),m5(this,u(e,15))},s.gc=function(){return Hge(this.c,this.b)},s.Pc=function(){return Kle(this.c,this.b)},s.Qc=function(e){return zae(this.c,this.b,e)},s.Ib=function(){var e,t;for(t=new i1,t.a+="[",e=fyn(this.c,this.b);gF(e);)dr(t,y5(RT(e))),gF(e)&&(t.a+=Ji);return t.a+="]",t.a},s.Xj=function(){iM(this.c,this.b)},w(vt,"FeatureMapUtil/FeatureEList",501),b(627,36,jk,v$),s.yi=function(e){return u6(this,e)},s.Di=function(e){var t,i,r,c,o,f,h;switch(this.d){case 1:case 2:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return this.g=e.zi(),e.xi()==1&&(this.d=1),!0;break}case 3:{switch(c=e.xi(),c){case 3:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return this.d=5,t=new Ld(2),me(t,this.g),me(t,e.zi()),this.g=t,!0;break}}break}case 5:{switch(c=e.xi(),c){case 3:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return i=u(this.g,14),i.Fc(e.zi()),!0;break}}break}case 4:{switch(c=e.xi(),c){case 3:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return this.d=1,this.g=e.zi(),!0;break}case 4:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return this.d=6,h=new Ld(2),me(h,this.n),me(h,e.Bi()),this.n=h,f=A(M(be,1),Le,25,15,[this.o,e.Ci()]),this.g=f,!0;break}}break}case 6:{switch(c=e.xi(),c){case 4:{if(o=e.Ai(),B(o)===B(this.c)&&u6(this,null)==e.yi(null))return i=u(this.n,14),i.Fc(e.Bi()),f=u(this.g,48),r=F(be,Le,25,f.length+1,15,1),gc(f,0,r,0,f.length),r[f.length]=e.Ci(),this.g=r,!0;break}}break}}return!1},w(vt,"FeatureMapUtil/FeatureENotificationImpl",627),b(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},IE),s.dl=function(e,t){return fZ(this.c,e,t)},s.el=function(e,t,i){return iZ(this.c,e,t,i)},s.fl=function(e,t,i){return MZ(this.c,e,t,i)},s.gl=function(){return this},s.hl=function(e,t){return W7(this.c,e,t)},s.il=function(e){return u(kM(this.c,this.b,e,!1),72).ak()},s.jl=function(e){return u(kM(this.c,this.b,e,!1),72).dd()},s.kl=function(){return this.a},s.ll=function(e){return!g7(this.c,e)},s.ml=function(e,t){yM(this.c,e,t)},s.nl=function(e){return zIn(this.c,e)},s.ol=function(e){wFn(this.c,e)},w(vt,"FeatureMapUtil/FeatureFeatureMap",552),b(1259,1,GB,Nkn),s.Wj=function(e){return kM(this.b,this.a,-1,e)},s.fj=function(){return!g7(this.b,this.a)},s.Wb=function(e){yM(this.b,this.a,e)},s.Xj=function(){iM(this.b,this.a)},w(vt,"FeatureMapUtil/FeatureValue",1259);var Op,kH,yH,Dp,fee,Ny=Et($A,"AnyType");b(666,60,Uh,VI),w($A,"InvalidDatatypeValueException",666);var sI=Et($A,LGn),By=Et($A,NGn),D1n=Et($A,BGn),hee,oc,$1n,rd,lee,aee,dee,bee,wee,gee,pee,vee,mee,kee,yee,Gg,jee,zg,w9,Eee,D0,Ry,_y,Cee,g9,p9;b(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},iG),s._g=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new $t(this,0)),this.c):(!this.c&&(this.c=new $t(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)):(!this.c&&(this.c=new $t(this,0)),u(u(mc(this.c,(ht(),rd)),153),215)).kl();case 2:return i?(!this.b&&(this.b=new $t(this,2)),this.b):(!this.b&&(this.b=new $t(this,2)),this.b.b)}return Cs(this,e-ee(this.zh()),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():this.zh(),e),t,i)},s.jh=function(e,t,i){var r;switch(t){case 0:return!this.c&&(this.c=new $t(this,0)),q7(this.c,e,i);case 1:return(!this.c&&(this.c=new $t(this,0)),u(u(mc(this.c,(ht(),rd)),153),69)).mk(e,i);case 2:return!this.b&&(this.b=new $t(this,2)),q7(this.b,e,i)}return r=u(On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():this.zh(),t),66),r.Nj().Rj(this,QX(this),t-ee(this.zh()),e,i)},s.lh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)).dc();case 2:return!!this.b&&this.b.i!=0}return js(this,e-ee(this.zh()),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():this.zh(),e))},s.sh=function(e,t){switch(e){case 0:!this.c&&(this.c=new $t(this,0)),j8(this.c,t);return;case 1:(!this.c&&(this.c=new $t(this,0)),u(u(mc(this.c,(ht(),rd)),153),215)).Wb(t);return;case 2:!this.b&&(this.b=new $t(this,2)),j8(this.b,t);return}Ps(this,e-ee(this.zh()),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():this.zh(),e),t)},s.zh=function(){return ht(),$1n},s.Bh=function(e){switch(e){case 0:!this.c&&(this.c=new $t(this,0)),de(this.c);return;case 1:(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)).$b();return;case 2:!this.b&&(this.b=new $t(this,2)),de(this.b);return}As(this,e-ee(this.zh()),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():this.zh(),e))},s.Ib=function(){var e;return this.j&4?yo(this):(e=new Bs(yo(this)),e.a+=" (mixed: ",w5(e,this.c),e.a+=", anyAttribute: ",w5(e,this.b),e.a+=")",e.a)},w(Wt,"AnyTypeImpl",830),b(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},c3n),s._g=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return Cs(this,e-ee((ht(),Gg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():Gg,e),t,i)},s.lh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return js(this,e-ee((ht(),Gg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():Gg,e))},s.sh=function(e,t){switch(e){case 0:Fte(this,Ce(t));return;case 1:xte(this,Ce(t));return}Ps(this,e-ee((ht(),Gg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():Gg,e),t)},s.zh=function(){return ht(),Gg},s.Bh=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}As(this,e-ee((ht(),Gg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():Gg,e))},s.Ib=function(){var e;return this.j&4?yo(this):(e=new Bs(yo(this)),e.a+=" (data: ",dr(e,this.a),e.a+=", target: ",dr(e,this.b),e.a+=")",e.a)},s.a=null,s.b=null,w(Wt,"ProcessingInstructionImpl",667),b(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},C9n),s._g=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new $t(this,0)),this.c):(!this.c&&(this.c=new $t(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)):(!this.c&&(this.c=new $t(this,0)),u(u(mc(this.c,(ht(),rd)),153),215)).kl();case 2:return i?(!this.b&&(this.b=new $t(this,2)),this.b):(!this.b&&(this.b=new $t(this,2)),this.b.b);case 3:return!this.c&&(this.c=new $t(this,0)),Ce(W7(this.c,(ht(),w9),!0));case 4:return CU(this.a,(!this.c&&(this.c=new $t(this,0)),Ce(W7(this.c,(ht(),w9),!0))));case 5:return this.a}return Cs(this,e-ee((ht(),zg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():zg,e),t,i)},s.lh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new $t(this,0)),Ce(W7(this.c,(ht(),w9),!0))!=null;case 4:return CU(this.a,(!this.c&&(this.c=new $t(this,0)),Ce(W7(this.c,(ht(),w9),!0))))!=null;case 5:return!!this.a}return js(this,e-ee((ht(),zg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():zg,e))},s.sh=function(e,t){switch(e){case 0:!this.c&&(this.c=new $t(this,0)),j8(this.c,t);return;case 1:(!this.c&&(this.c=new $t(this,0)),u(u(mc(this.c,(ht(),rd)),153),215)).Wb(t);return;case 2:!this.b&&(this.b=new $t(this,2)),j8(this.b,t);return;case 3:fX(this,Ce(t));return;case 4:fX(this,TU(this.a,t));return;case 5:Lte(this,u(t,148));return}Ps(this,e-ee((ht(),zg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():zg,e),t)},s.zh=function(){return ht(),zg},s.Bh=function(e){switch(e){case 0:!this.c&&(this.c=new $t(this,0)),de(this.c);return;case 1:(!this.c&&(this.c=new $t(this,0)),u(mc(this.c,(ht(),rd)),153)).$b();return;case 2:!this.b&&(this.b=new $t(this,2)),de(this.b);return;case 3:!this.c&&(this.c=new $t(this,0)),yM(this.c,(ht(),w9),null);return;case 4:fX(this,TU(this.a,null));return;case 5:this.a=null;return}As(this,e-ee((ht(),zg)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():zg,e))},w(Wt,"SimpleAnyTypeImpl",668),b(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},E9n),s._g=function(e,t,i){switch(e){case 0:return i?(!this.a&&(this.a=new $t(this,0)),this.a):(!this.a&&(this.a=new $t(this,0)),this.a.b);case 1:return i?(!this.b&&(this.b=new Wu((Sn(),nr),tc,this,1)),this.b):(!this.b&&(this.b=new Wu((Sn(),nr),tc,this,1)),N8(this.b));case 2:return i?(!this.c&&(this.c=new Wu((Sn(),nr),tc,this,2)),this.c):(!this.c&&(this.c=new Wu((Sn(),nr),tc,this,2)),N8(this.c));case 3:return!this.a&&(this.a=new $t(this,0)),mc(this.a,(ht(),Ry));case 4:return!this.a&&(this.a=new $t(this,0)),mc(this.a,(ht(),_y));case 5:return!this.a&&(this.a=new $t(this,0)),mc(this.a,(ht(),g9));case 6:return!this.a&&(this.a=new $t(this,0)),mc(this.a,(ht(),p9))}return Cs(this,e-ee((ht(),D0)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():D0,e),t,i)},s.jh=function(e,t,i){var r;switch(t){case 0:return!this.a&&(this.a=new $t(this,0)),q7(this.a,e,i);case 1:return!this.b&&(this.b=new Wu((Sn(),nr),tc,this,1)),yE(this.b,e,i);case 2:return!this.c&&(this.c=new Wu((Sn(),nr),tc,this,2)),yE(this.c,e,i);case 5:return!this.a&&(this.a=new $t(this,0)),Sjn(mc(this.a,(ht(),g9)),e,i)}return r=u(On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():(ht(),D0),t),66),r.Nj().Rj(this,QX(this),t-ee((ht(),D0)),e,i)},s.lh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new $t(this,0)),!Zj(mc(this.a,(ht(),Ry)));case 4:return!this.a&&(this.a=new $t(this,0)),!Zj(mc(this.a,(ht(),_y)));case 5:return!this.a&&(this.a=new $t(this,0)),!Zj(mc(this.a,(ht(),g9)));case 6:return!this.a&&(this.a=new $t(this,0)),!Zj(mc(this.a,(ht(),p9)))}return js(this,e-ee((ht(),D0)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():D0,e))},s.sh=function(e,t){switch(e){case 0:!this.a&&(this.a=new $t(this,0)),j8(this.a,t);return;case 1:!this.b&&(this.b=new Wu((Sn(),nr),tc,this,1)),fT(this.b,t);return;case 2:!this.c&&(this.c=new Wu((Sn(),nr),tc,this,2)),fT(this.c,t);return;case 3:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),Ry))),!this.a&&(this.a=new $t(this,0)),m5(mc(this.a,Ry),u(t,14));return;case 4:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),_y))),!this.a&&(this.a=new $t(this,0)),m5(mc(this.a,_y),u(t,14));return;case 5:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),g9))),!this.a&&(this.a=new $t(this,0)),m5(mc(this.a,g9),u(t,14));return;case 6:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),p9))),!this.a&&(this.a=new $t(this,0)),m5(mc(this.a,p9),u(t,14));return}Ps(this,e-ee((ht(),D0)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():D0,e),t)},s.zh=function(){return ht(),D0},s.Bh=function(e){switch(e){case 0:!this.a&&(this.a=new $t(this,0)),de(this.a);return;case 1:!this.b&&(this.b=new Wu((Sn(),nr),tc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new Wu((Sn(),nr),tc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),Ry)));return;case 4:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),_y)));return;case 5:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),g9)));return;case 6:!this.a&&(this.a=new $t(this,0)),t2(mc(this.a,(ht(),p9)));return}As(this,e-ee((ht(),D0)),On(this.j&2?(!this.k&&(this.k=new Fo),this.k).ck():D0,e))},s.Ib=function(){var e;return this.j&4?yo(this):(e=new Bs(yo(this)),e.a+=" (mixed: ",w5(e,this.a),e.a+=")",e.a)},w(Wt,"XMLTypeDocumentRootImpl",669),b(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},r3n),s.Ih=function(e,t){switch(e.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return t==null?null:Lr(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Ce(t);case 6:return uue(u(t,190));case 12:case 47:case 49:case 11:return JRn(this,e,t);case 13:return t==null?null:Wye(u(t,240));case 15:case 14:return t==null?null:ihe(K(Y(t)));case 17:return nxn((ht(),t));case 18:return nxn(t);case 21:case 20:return t==null?null:rhe(u(t,155).a);case 27:return sue(u(t,190));case 30:return gFn((ht(),u(t,15)));case 31:return gFn(u(t,15));case 40:return fue((ht(),t));case 42:return exn((ht(),t));case 43:return exn(t);case 59:case 48:return oue((ht(),t));default:throw T(new Hn(R4+e.ne()+h0))}},s.Jh=function(e){var t,i,r,c,o;switch(e.G==-1&&(e.G=(i=ts(e),i?v1(i.Mh(),e):-1)),e.G){case 0:return t=new iG,t;case 1:return r=new c3n,r;case 2:return c=new C9n,c;case 3:return o=new E9n,o;default:throw T(new Hn(SB+e.zb+h0))}},s.Kh=function(e,t){var i,r,c,o,f,h,l,a,d,g,p,v,m,C,S,$;switch(e.yj()){case 5:case 52:case 4:return t;case 6:return Epe(t);case 8:case 7:return t==null?null:hve(t);case 9:return t==null?null:X8(us((r=jc(t,!0),r.length>0&&(Te(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),-128,127)<<24>>24);case 10:return t==null?null:X8(us((c=jc(t,!0),c.length>0&&(Te(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),-128,127)<<24>>24);case 11:return Ce(i0(this,(ht(),dee),t));case 12:return Ce(i0(this,(ht(),bee),t));case 13:return t==null?null:new CG(jc(t,!0));case 15:case 14:return O9e(t);case 16:return Ce(i0(this,(ht(),wee),t));case 17:return j$n((ht(),t));case 18:return j$n(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return jc(t,!0);case 21:case 20:return _9e(t);case 22:return Ce(i0(this,(ht(),gee),t));case 23:return Ce(i0(this,(ht(),pee),t));case 24:return Ce(i0(this,(ht(),vee),t));case 25:return Ce(i0(this,(ht(),mee),t));case 26:return Ce(i0(this,(ht(),kee),t));case 27:return vpe(t);case 30:return E$n((ht(),t));case 31:return E$n(t);case 32:return t==null?null:Q(us((d=jc(t,!0),d.length>0&&(Te(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),Bi,nt));case 33:return t==null?null:new il((g=jc(t,!0),g.length>0&&(Te(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g));case 34:return t==null?null:Q(us((p=jc(t,!0),p.length>0&&(Te(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p),Bi,nt));case 36:return t==null?null:Ma(MM((v=jc(t,!0),v.length>0&&(Te(0,v.length),v.charCodeAt(0)==43)?v.substr(1):v)));case 37:return t==null?null:Ma(MM((m=jc(t,!0),m.length>0&&(Te(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m)));case 40:return F2e((ht(),t));case 42:return C$n((ht(),t));case 43:return C$n(t);case 44:return t==null?null:new il((C=jc(t,!0),C.length>0&&(Te(0,C.length),C.charCodeAt(0)==43)?C.substr(1):C));case 45:return t==null?null:new il((S=jc(t,!0),S.length>0&&(Te(0,S.length),S.charCodeAt(0)==43)?S.substr(1):S));case 46:return jc(t,!1);case 47:return Ce(i0(this,(ht(),yee),t));case 59:case 48:return $2e((ht(),t));case 49:return Ce(i0(this,(ht(),jee),t));case 50:return t==null?null:J3(us(($=jc(t,!0),$.length>0&&(Te(0,$.length),$.charCodeAt(0)==43)?$.substr(1):$),PA,32767)<<16>>16);case 51:return t==null?null:J3(us((o=jc(t,!0),o.length>0&&(Te(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o),PA,32767)<<16>>16);case 53:return Ce(i0(this,(ht(),Eee),t));case 55:return t==null?null:J3(us((f=jc(t,!0),f.length>0&&(Te(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),PA,32767)<<16>>16);case 56:return t==null?null:J3(us((h=jc(t,!0),h.length>0&&(Te(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),PA,32767)<<16>>16);case 57:return t==null?null:Ma(MM((l=jc(t,!0),l.length>0&&(Te(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l)));case 58:return t==null?null:Ma(MM((a=jc(t,!0),a.length>0&&(Te(0,a.length),a.charCodeAt(0)==43)?a.substr(1):a)));case 60:return t==null?null:Q(us((i=jc(t,!0),i.length>0&&(Te(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i),Bi,nt));case 61:return t==null?null:Q(us(jc(t,!0),Bi,nt));default:throw T(new Hn(R4+e.ne()+h0))}};var Tee,F1n,Mee,x1n;w(Wt,"XMLTypeFactoryImpl",1919),b(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},fTn),s.N=!1,s.O=!1;var Aee=!1;w(Wt,"XMLTypePackageImpl",586),b(1852,1,{837:1},u3n),s._j=function(){return pZ(),Lee},w(Wt,"XMLTypePackageImpl/1",1852),b(1861,1,qe,s3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/10",1861),b(1862,1,qe,o3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/11",1862),b(1863,1,qe,f3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/12",1863),b(1864,1,qe,h3n),s.wj=function(e){return G0(e)},s.xj=function(e){return F(Mi,q,333,e,7,1)},w(Wt,"XMLTypePackageImpl/13",1864),b(1865,1,qe,l3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/14",1865),b(1866,1,qe,a3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/15",1866),b(1867,1,qe,d3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/16",1867),b(1868,1,qe,b3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/17",1868),b(1869,1,qe,w3n),s.wj=function(e){return I(e,155)},s.xj=function(e){return F(U4,q,155,e,0,1)},w(Wt,"XMLTypePackageImpl/18",1869),b(1870,1,qe,g3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/19",1870),b(1853,1,qe,p3n),s.wj=function(e){return I(e,843)},s.xj=function(e){return F(Ny,rn,843,e,0,1)},w(Wt,"XMLTypePackageImpl/2",1853),b(1871,1,qe,v3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/20",1871),b(1872,1,qe,m3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/21",1872),b(1873,1,qe,k3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/22",1873),b(1874,1,qe,y3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/23",1874),b(1875,1,qe,j3n),s.wj=function(e){return I(e,190)},s.xj=function(e){return F(yu,q,190,e,0,2)},w(Wt,"XMLTypePackageImpl/24",1875),b(1876,1,qe,E3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/25",1876),b(1877,1,qe,C3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/26",1877),b(1878,1,qe,T3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/27",1878),b(1879,1,qe,M3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/28",1879),b(1880,1,qe,A3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/29",1880),b(1854,1,qe,S3n),s.wj=function(e){return I(e,667)},s.xj=function(e){return F(sI,rn,2021,e,0,1)},w(Wt,"XMLTypePackageImpl/3",1854),b(1881,1,qe,P3n),s.wj=function(e){return I(e,19)},s.xj=function(e){return F(Wi,q,19,e,0,1)},w(Wt,"XMLTypePackageImpl/30",1881),b(1882,1,qe,I3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/31",1882),b(1883,1,qe,O3n),s.wj=function(e){return I(e,162)},s.xj=function(e){return F(a0,q,162,e,0,1)},w(Wt,"XMLTypePackageImpl/32",1883),b(1884,1,qe,D3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/33",1884),b(1885,1,qe,$3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/34",1885),b(1886,1,qe,F3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/35",1886),b(1887,1,qe,x3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/36",1887),b(1888,1,qe,L3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/37",1888),b(1889,1,qe,N3n),s.wj=function(e){return I(e,15)},s.xj=function(e){return F(Ds,Ob,15,e,0,1)},w(Wt,"XMLTypePackageImpl/38",1889),b(1890,1,qe,B3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/39",1890),b(1855,1,qe,R3n),s.wj=function(e){return I(e,668)},s.xj=function(e){return F(By,rn,2022,e,0,1)},w(Wt,"XMLTypePackageImpl/4",1855),b(1891,1,qe,_3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/40",1891),b(1892,1,qe,K3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/41",1892),b(1893,1,qe,H3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/42",1893),b(1894,1,qe,q3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/43",1894),b(1895,1,qe,G3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/44",1895),b(1896,1,qe,z3n),s.wj=function(e){return I(e,184)},s.xj=function(e){return F(d0,q,184,e,0,1)},w(Wt,"XMLTypePackageImpl/45",1896),b(1897,1,qe,U3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/46",1897),b(1898,1,qe,W3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/47",1898),b(1899,1,qe,X3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/48",1899),b(Tl,1,qe,V3n),s.wj=function(e){return I(e,184)},s.xj=function(e){return F(d0,q,184,e,0,1)},w(Wt,"XMLTypePackageImpl/49",Tl),b(1856,1,qe,Q3n),s.wj=function(e){return I(e,669)},s.xj=function(e){return F(D1n,rn,2023,e,0,1)},w(Wt,"XMLTypePackageImpl/5",1856),b(1901,1,qe,J3n),s.wj=function(e){return I(e,162)},s.xj=function(e){return F(a0,q,162,e,0,1)},w(Wt,"XMLTypePackageImpl/50",1901),b(1902,1,qe,Y3n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/51",1902),b(1903,1,qe,Z3n),s.wj=function(e){return I(e,19)},s.xj=function(e){return F(Wi,q,19,e,0,1)},w(Wt,"XMLTypePackageImpl/52",1903),b(1857,1,qe,n4n),s.wj=function(e){return mi(e)},s.xj=function(e){return F(tn,q,2,e,6,1)},w(Wt,"XMLTypePackageImpl/6",1857),b(1858,1,qe,e4n),s.wj=function(e){return I(e,190)},s.xj=function(e){return F(yu,q,190,e,0,2)},w(Wt,"XMLTypePackageImpl/7",1858),b(1859,1,qe,t4n),s.wj=function(e){return q0(e)},s.xj=function(e){return F(si,q,476,e,8,1)},w(Wt,"XMLTypePackageImpl/8",1859),b(1860,1,qe,i4n),s.wj=function(e){return I(e,217)},s.xj=function(e){return F(op,q,217,e,0,1)},w(Wt,"XMLTypePackageImpl/9",1860);var Tf,R1,v9,oI,P;b(50,60,Uh,Ee),w(A1,"RegEx/ParseException",50),b(820,1,{},ZH),s.sl=function(e){return ei*16)throw T(new Ee(Pe((je(),Vqn))));i=i*16+c}while(!0);if(this.a!=125)throw T(new Ee(Pe((je(),Qqn))));if(i>q4)throw T(new Ee(Pe((je(),Jqn))));e=i}else{if(c=0,this.c!=0||(c=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(i=c,Qe(this),this.c!=0||(c=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));i=i*16+c,e=i}break;case 117:if(r=0,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));t=t*16+r,e=t;break;case 118:if(Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,Qe(this),this.c!=0||(r=Sa(this.a))<0)throw T(new Ee(Pe((je(),M1))));if(t=t*16+r,t>q4)throw T(new Ee(Pe((je(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw T(new Ee(Pe((je(),Yqn))))}return e},s.ul=function(e){var t,i;switch(e){case 100:i=(this.e&32)==32?El("Nd",!0):(Je(),fI);break;case 68:i=(this.e&32)==32?El("Nd",!1):(Je(),K1n);break;case 119:i=(this.e&32)==32?El("IsWord",!0):(Je(),Iv);break;case 87:i=(this.e&32)==32?El("IsWord",!1):(Je(),q1n);break;case 115:i=(this.e&32)==32?El("IsSpace",!0):(Je(),$p);break;case 83:i=(this.e&32)==32?El("IsSpace",!1):(Je(),H1n);break;default:throw T(new _r((t=e,YGn+t.toString(16))))}return i},s.vl=function(e){var t,i,r,c,o,f,h,l,a,d,g,p;for(this.b=1,Qe(this),t=null,this.c==0&&this.a==94?(Qe(this),e?d=(Je(),Je(),new ns(5)):(t=(Je(),Je(),new ns(4)),yc(t,0,q4),d=new ns(4))):d=(Je(),Je(),new ns(4)),c=!0;(p=this.c)!=1&&!(p==0&&this.a==93&&!c);){if(c=!1,i=this.a,r=!1,p==10)switch(i){case 100:case 68:case 119:case 87:case 115:case 83:Ab(d,this.ul(i)),r=!0;break;case 105:case 73:case 99:case 67:i=this.Ll(d,i),i<0&&(r=!0);break;case 112:case 80:if(g=mY(this,i),!g)throw T(new Ee(Pe((je(),KB))));Ab(d,g),r=!0;break;default:i=this.tl()}else if(p==20){if(f=u3(this.i,58,this.d),f<0)throw T(new Ee(Pe((je(),qtn))));if(h=!0,Di(this.i,this.d)==94&&(++this.d,h=!1),o=Yu(this.i,this.d,f),l=hPn(o,h,(this.e&512)==512),!l)throw T(new Ee(Pe((je(),Gqn))));if(Ab(d,l),r=!0,f+1>=this.j||Di(this.i,f+1)!=93)throw T(new Ee(Pe((je(),qtn))));this.d=f+2}if(Qe(this),!r)if(this.c!=0||this.a!=45)yc(d,i,i);else{if(Qe(this),(p=this.c)==1)throw T(new Ee(Pe((je(),jA))));p==0&&this.a==93?(yc(d,i,i),yc(d,45,45)):(a=this.a,p==10&&(a=this.tl()),Qe(this),yc(d,i,a))}(this.e&Eo)==Eo&&this.c==0&&this.a==44&&Qe(this)}if(this.c==1)throw T(new Ee(Pe((je(),jA))));return t&&(F6(t,d),d=t),Jw(d),D6(d),this.b=0,Qe(this),d},s.wl=function(){var e,t,i,r;for(i=this.vl(!1);(r=this.c)!=7;)if(e=this.a,r==0&&(e==45||e==38)||r==4){if(Qe(this),this.c!=9)throw T(new Ee(Pe((je(),Uqn))));if(t=this.vl(!1),r==4)Ab(i,t);else if(e==45)F6(i,t);else if(e==38)zRn(i,t);else throw T(new _r("ASSERT"))}else throw T(new Ee(Pe((je(),Wqn))));return Qe(this),i},s.xl=function(){var e,t;return e=this.a-48,t=(Je(),Je(),new e$(12,null,e)),!this.g&&(this.g=new lj),hj(this.g,new Nq(e)),Qe(this),t},s.yl=function(){return Qe(this),Je(),Iee},s.zl=function(){return Qe(this),Je(),Pee},s.Al=function(){throw T(new Ee(Pe((je(),Os))))},s.Bl=function(){throw T(new Ee(Pe((je(),Os))))},s.Cl=function(){return Qe(this),xwe()},s.Dl=function(){return Qe(this),Je(),Dee},s.El=function(){return Qe(this),Je(),Fee},s.Fl=function(){var e;if(this.d>=this.j||((e=Di(this.i,this.d++))&65504)!=64)throw T(new Ee(Pe((je(),Kqn))));return Qe(this),Je(),Je(),new th(0,e-64)},s.Gl=function(){return Qe(this),vye()},s.Hl=function(){return Qe(this),Je(),xee},s.Il=function(){var e;return e=(Je(),Je(),new th(0,105)),Qe(this),e},s.Jl=function(){return Qe(this),Je(),$ee},s.Kl=function(){return Qe(this),Je(),Oee},s.Ll=function(e,t){return this.tl()},s.Ml=function(){return Qe(this),Je(),R1n},s.Nl=function(){var e,t,i,r,c;if(this.d+1>=this.j)throw T(new Ee(Pe((je(),Bqn))));if(r=-1,t=null,e=Di(this.i,this.d),49<=e&&e<=57){if(r=e-48,!this.g&&(this.g=new lj),hj(this.g,new Nq(r)),++this.d,Di(this.i,this.d)!=41)throw T(new Ee(Pe((je(),_a))));++this.d}else switch(e==63&&--this.d,Qe(this),t=HZ(this),t.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw T(new Ee(Pe((je(),_a))));break;default:throw T(new Ee(Pe((je(),Rqn))))}if(Qe(this),c=Wd(this),i=null,c.e==2){if(c.em()!=2)throw T(new Ee(Pe((je(),_qn))));i=c.am(1),c=c.am(0)}if(this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),Je(),Je(),new HPn(r,t,c,i)},s.Ol=function(){return Qe(this),Je(),_1n},s.Pl=function(){var e;if(Qe(this),e=UE(24,Wd(this)),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Ql=function(){var e;if(Qe(this),e=UE(20,Wd(this)),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Rl=function(){var e;if(Qe(this),e=UE(22,Wd(this)),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Sl=function(){var e,t,i,r,c;for(e=0,i=0,t=-1;this.d=this.j)throw T(new Ee(Pe((je(),Ktn))));if(t==45){for(++this.d;this.d=this.j)throw T(new Ee(Pe((je(),Ktn))))}if(t==58){if(++this.d,Qe(this),r=WCn(Wd(this),e,i),this.c!=7)throw T(new Ee(Pe((je(),_a))));Qe(this)}else if(t==41)++this.d,Qe(this),r=WCn(Wd(this),e,i);else throw T(new Ee(Pe((je(),Nqn))));return r},s.Tl=function(){var e;if(Qe(this),e=UE(21,Wd(this)),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Ul=function(){var e;if(Qe(this),e=UE(23,Wd(this)),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Vl=function(){var e,t;if(Qe(this),e=this.f++,t=SD(Wd(this),e),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),t},s.Wl=function(){var e;if(Qe(this),e=SD(Wd(this),0),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Xl=function(e){return Qe(this),this.c==5?(Qe(this),LE(e,(Je(),Je(),new ib(9,e)))):LE(e,(Je(),Je(),new ib(3,e)))},s.Yl=function(e){var t;return Qe(this),t=(Je(),Je(),new v5(2)),this.c==5?(Qe(this),Oa(t,k9),Oa(t,e)):(Oa(t,e),Oa(t,k9)),t},s.Zl=function(e){return Qe(this),this.c==5?(Qe(this),Je(),Je(),new ib(9,e)):(Je(),Je(),new ib(3,e))},s.a=0,s.b=0,s.c=0,s.d=0,s.e=0,s.f=1,s.g=null,s.j=0,w(A1,"RegEx/RegexParser",820),b(1824,820,{},T9n),s.sl=function(e){return!1},s.tl=function(){return ZY(this)},s.ul=function(e){return v4(e)},s.vl=function(e){return N_n(this)},s.wl=function(){throw T(new Ee(Pe((je(),Os))))},s.xl=function(){throw T(new Ee(Pe((je(),Os))))},s.yl=function(){throw T(new Ee(Pe((je(),Os))))},s.zl=function(){throw T(new Ee(Pe((je(),Os))))},s.Al=function(){return Qe(this),v4(67)},s.Bl=function(){return Qe(this),v4(73)},s.Cl=function(){throw T(new Ee(Pe((je(),Os))))},s.Dl=function(){throw T(new Ee(Pe((je(),Os))))},s.El=function(){throw T(new Ee(Pe((je(),Os))))},s.Fl=function(){return Qe(this),v4(99)},s.Gl=function(){throw T(new Ee(Pe((je(),Os))))},s.Hl=function(){throw T(new Ee(Pe((je(),Os))))},s.Il=function(){return Qe(this),v4(105)},s.Jl=function(){throw T(new Ee(Pe((je(),Os))))},s.Kl=function(){throw T(new Ee(Pe((je(),Os))))},s.Ll=function(e,t){return Ab(e,v4(t)),-1},s.Ml=function(){return Qe(this),Je(),Je(),new th(0,94)},s.Nl=function(){throw T(new Ee(Pe((je(),Os))))},s.Ol=function(){return Qe(this),Je(),Je(),new th(0,36)},s.Pl=function(){throw T(new Ee(Pe((je(),Os))))},s.Ql=function(){throw T(new Ee(Pe((je(),Os))))},s.Rl=function(){throw T(new Ee(Pe((je(),Os))))},s.Sl=function(){throw T(new Ee(Pe((je(),Os))))},s.Tl=function(){throw T(new Ee(Pe((je(),Os))))},s.Ul=function(){throw T(new Ee(Pe((je(),Os))))},s.Vl=function(){var e;if(Qe(this),e=SD(Wd(this),0),this.c!=7)throw T(new Ee(Pe((je(),_a))));return Qe(this),e},s.Wl=function(){throw T(new Ee(Pe((je(),Os))))},s.Xl=function(e){return Qe(this),LE(e,(Je(),Je(),new ib(3,e)))},s.Yl=function(e){var t;return Qe(this),t=(Je(),Je(),new v5(2)),Oa(t,e),Oa(t,k9),t},s.Zl=function(e){return Qe(this),Je(),Je(),new ib(3,e)};var Ug=null,Sv=null;w(A1,"RegEx/ParserForXMLSchema",1824),b(117,1,G4,cd),s.$l=function(e){throw T(new _r("Not supported."))},s._l=function(){return-1},s.am=function(e){return null},s.bm=function(){return null},s.cm=function(e){},s.dm=function(e){},s.em=function(){return 0},s.Ib=function(){return this.fm(0)},s.fm=function(e){return this.e==11?".":""},s.e=0;var L1n,Pv,m9,See,N1n,aw=null,fI,jH=null,B1n,k9,EH=null,R1n,_1n,K1n,H1n,q1n,Pee,$p,Iee,Oee,Dee,$ee,Iv,Fee,xee,aMe=w(A1,"RegEx/Token",117);b(136,117,{3:1,136:1,117:1},ns),s.fm=function(e){var t,i,r;if(this.e==4)if(this==B1n)i=".";else if(this==fI)i="\\d";else if(this==Iv)i="\\w";else if(this==$p)i="\\s";else{for(r=new i1,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?dr(r,U7(this.b[t])):(dr(r,U7(this.b[t])),r.a+="-",dr(r,U7(this.b[t+1])));r.a+="]",i=r.a}else if(this==K1n)i="\\D";else if(this==q1n)i="\\W";else if(this==H1n)i="\\S";else{for(r=new i1,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?dr(r,U7(this.b[t])):(dr(r,U7(this.b[t])),r.a+="-",dr(r,U7(this.b[t+1])));r.a+="]",i=r.a}return i},s.a=!1,s.c=!1,w(A1,"RegEx/RangeToken",136),b(584,1,{584:1},Nq),s.a=0,w(A1,"RegEx/RegexParser/ReferencePosition",584),b(583,1,{3:1,583:1},L8n),s.Fb=function(e){var t;return e==null||!I(e,583)?!1:(t=u(e,583),An(this.b,t.b)&&this.a==t.a)},s.Hb=function(){return m1(this.b+"/"+WY(this.a))},s.Ib=function(){return this.c.fm(this.a)},s.a=0,w(A1,"RegEx/RegularExpression",583),b(223,117,G4,th),s._l=function(){return this.a},s.fm=function(e){var t,i,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+eD(this.a&Ut);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:this.a>=Yi?(i=(t=this.a>>>0,"0"+t.toString(16)),r="\\v"+Yu(i,i.length-6,i.length)):r=""+eD(this.a&Ut)}break;case 8:this==R1n||this==_1n?r=""+eD(this.a&Ut):r="\\"+eD(this.a&Ut);break;default:r=null}return r},s.a=0,w(A1,"RegEx/Token/CharToken",223),b(309,117,G4,ib),s.am=function(e){return this.a},s.cm=function(e){this.b=e},s.dm=function(e){this.c=e},s.em=function(){return 1},s.fm=function(e){var t;if(this.e==3)if(this.c<0&&this.b<0)t=this.a.fm(e)+"*";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}";else throw T(new _r("Token#toString(): CLOSURE "+this.c+Ji+this.b));else if(this.c<0&&this.b<0)t=this.a.fm(e)+"*?";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}?";else throw T(new _r("Token#toString(): NONGREEDYCLOSURE "+this.c+Ji+this.b));return t},s.b=0,s.c=0,w(A1,"RegEx/Token/ClosureToken",309),b(821,117,G4,PW),s.am=function(e){return e==0?this.a:this.b},s.em=function(){return 2},s.fm=function(e){var t;return this.b.e==3&&this.b.am(0)==this.a?t=this.a.fm(e)+"+":this.b.e==9&&this.b.am(0)==this.a?t=this.a.fm(e)+"+?":t=this.a.fm(e)+(""+this.b.fm(e)),t},w(A1,"RegEx/Token/ConcatToken",821),b(1822,117,G4,HPn),s.am=function(e){if(e==0)return this.d;if(e==1)return this.b;throw T(new _r("Internal Error: "+e))},s.em=function(){return this.b?2:1},s.fm=function(e){var t;return this.c>0?t="(?("+this.c+")":this.a.e==8?t="(?("+this.a+")":t="(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},s.c=0,w(A1,"RegEx/Token/ConditionToken",1822),b(1823,117,G4,HMn),s.am=function(e){return this.b},s.em=function(){return 1},s.fm=function(e){return"(?"+(this.a==0?"":WY(this.a))+(this.c==0?"":WY(this.c))+":"+this.b.fm(e)+")"},s.a=0,s.c=0,w(A1,"RegEx/Token/ModifierToken",1823),b(822,117,G4,xW),s.am=function(e){return this.a},s.em=function(){return 1},s.fm=function(e){var t;switch(t=null,this.e){case 6:this.b==0?t="(?:"+this.a.fm(e)+")":t="("+this.a.fm(e)+")";break;case 20:t="(?="+this.a.fm(e)+")";break;case 21:t="(?!"+this.a.fm(e)+")";break;case 22:t="(?<="+this.a.fm(e)+")";break;case 23:t="(?"+this.a.fm(e)+")"}return t},s.b=0,w(A1,"RegEx/Token/ParenToken",822),b(521,117,{3:1,117:1,521:1},e$),s.bm=function(){return this.b},s.fm=function(e){return this.e==12?"\\"+this.a:Mme(this.b)},s.a=0,w(A1,"RegEx/Token/StringToken",521),b(465,117,G4,v5),s.$l=function(e){Oa(this,e)},s.am=function(e){return u(Md(this.a,e),117)},s.em=function(){return this.a?this.a.a.c.length:0},s.fm=function(e){var t,i,r,c,o;if(this.e==1){if(this.a.a.c.length==2)t=u(Md(this.a,0),117),i=u(Md(this.a,1),117),i.e==3&&i.am(0)==t?c=t.fm(e)+"+":i.e==9&&i.am(0)==t?c=t.fm(e)+"+?":c=t.fm(e)+(""+i.fm(e));else{for(o=new i1,r=0;r=this.c.b:this.a<=this.c.b},s.Sb=function(){return this.b>0},s.Tb=function(){return this.b},s.Vb=function(){return this.b-1},s.Qb=function(){throw T(new t1(czn))},s.a=0,s.b=0,w(oin,"ExclusiveRange/RangeIterator",254);var Ls=g3(EA,"C"),be=g3(om,"I"),_u=g3(X2,"Z"),Yl=g3(fm,"J"),yu=g3(cm,"B"),ji=g3(um,"D"),dw=g3(sm,"F"),Wg=g3(hm,"S"),dMe=Et("org.eclipse.elk.core.labels","ILabelManager"),G1n=Et(Ui,"DiagnosticChain"),z1n=Et($Gn,"ResourceSet"),U1n=w(Ui,"InvocationTargetException",null),Nee=(gj(),rde),Bee=Bee=W4e;Z0e(Ute),Tbe("permProps",[[[LA,NA],[BA,"gecko1_8"]],[[LA,NA],[BA,"ie10"]],[[LA,NA],[BA,"ie8"]],[[LA,NA],[BA,"ie9"]],[[LA,NA],[BA,"safari"]]]),Bee(null,"elk",null)}).call(this)}).call(this,typeof Hee<"u"?Hee:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(ut,dt,Bt){function Ai(qt,Ge){if(!(qt instanceof Ge))throw new TypeError("Cannot call a class as a function")}function j(qt,Ge){if(!qt)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ge&&(typeof Ge=="object"||typeof Ge=="function")?Ge:qt}function Ht(qt,Ge){if(typeof Ge!="function"&&Ge!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof Ge);qt.prototype=Object.create(Ge&&Ge.prototype,{constructor:{value:qt,enumerable:!1,writable:!0,configurable:!0}}),Ge&&(Object.setPrototypeOf?Object.setPrototypeOf(qt,Ge):qt.__proto__=Ge)}var ou=ut("./elk-api.js").default,Ot=function(qt){Ht(Ge,qt);function Ge(){var Ki=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ai(this,Ge);var Si=Object.assign({},Ki),Mn=!1;try{ut.resolve("web-worker"),Mn=!0}catch{}if(Ki.workerUrl)if(Mn){var Lc=ut("web-worker");Si.workerFactory=function(Rr){return new Lc(Rr)}}else console.warn(`Web worker requested but 'web-worker' package not installed. -Consider installing the package or pass your own 'workerFactory' to ELK's constructor. -... Falling back to non-web worker version.`);if(!Si.workerFactory){var Nc=ut("./elk-worker.min.js"),ps=Nc.Worker;Si.workerFactory=function(Rr){return new ps(Rr)}}return j(this,(Ge.__proto__||Object.getPrototypeOf(Ge)).call(this,Si))}return Ge}(ou);Object.defineProperty(dt.exports,"__esModule",{value:!0}),dt.exports=Ot,Ot.default=Ot},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(ut,dt,Bt){dt.exports=Worker},{}]},{},[3])(3)})})(Uee);var CMe=Uee.exports;const TMe=jMe(CMe),MMe=(Ae,It,ut)=>{const{parentById:dt}=ut,Bt=new Set;let Ai=Ae;for(;Ai;){if(Bt.add(Ai),Ai===It)return Ai;Ai=dt[Ai]}for(Ai=It;Ai;){if(Bt.has(Ai))return Ai;Ai=dt[Ai]}return"root"},qee=new TMe;let x0={};const AMe={};let Lp={};const SMe=async function(Ae,It,ut,dt,Bt,Ai,j){const ou=ut.select(`[id="${It}"]`).insert("g").attr("class","nodes"),Ot=Object.keys(Ae);return await Promise.all(Ot.map(async function(qt){const Ge=Ae[qt];let Ki="default";Ge.classes.length>0&&(Ki=Ge.classes.join(" ")),Ki=Ki+" flowchart-label";const Si=V1n(Ge.styles);let Mn=Ge.text!==void 0?Ge.text:Ge.id;const Lc={width:0,height:0},Nc=[{id:Ge.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:Ge.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:Ge.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:Ge.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let ps=0,Rr="",Ch={};switch(Ge.type){case"round":ps=5,Rr="rect";break;case"square":Rr="rect";break;case"diamond":Rr="question",Ch={portConstraints:"FIXED_SIDE"};break;case"hexagon":Rr="hexagon";break;case"odd":Rr="rect_left_inv_arrow";break;case"lean_right":Rr="lean_right";break;case"lean_left":Rr="lean_left";break;case"trapezoid":Rr="trapezoid";break;case"inv_trapezoid":Rr="inv_trapezoid";break;case"odd_right":Rr="rect_left_inv_arrow";break;case"circle":Rr="circle";break;case"ellipse":Rr="ellipse";break;case"stadium":Rr="stadium";break;case"subroutine":Rr="subroutine";break;case"cylinder":Rr="cylinder";break;case"group":Rr="rect";break;case"doublecircle":Rr="doublecircle";break;default:Rr="rect"}const H1={labelStyle:Si.labelStyle,shape:Rr,labelText:Mn,labelType:Ge.labelType,rx:ps,ry:ps,class:Ki,style:Si.style,id:Ge.id,link:Ge.link,linkTarget:Ge.linkTarget,tooltip:Bt.db.getTooltip(Ge.id)||"",domId:Bt.db.lookUpDomId(Ge.id),haveCallback:Ge.haveCallback,width:Ge.type==="group"?500:void 0,dir:Ge.dir,type:Ge.type,props:Ge.props,padding:OH().flowchart.padding};let q1,ww;if(H1.type!=="group")ww=await mMe(ou,H1,Ge.dir),q1=ww.node().getBBox();else{dt.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:G1,bbox:Th}=await kMe(ou,H1,void 0,!0);Lc.width=Th.width,Lc.wrappingWidth=OH().flowchart.wrappingWidth,Lc.height=Th.height,Lc.labelNode=G1.node(),H1.labelData=Lc}const Np={id:Ge.id,ports:Ge.type==="diamond"?Nc:[],layoutOptions:Ch,labelText:Mn,labelData:Lc,domId:Bt.db.lookUpDomId(Ge.id),width:q1==null?void 0:q1.width,height:q1==null?void 0:q1.height,type:Ge.type,el:ww,parent:Ai.parentById[Ge.id]};Lp[H1.id]=Np})),j},Gee=(Ae,It,ut)=>{const dt={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return dt.TD=dt.TB,K1.info("abc88",ut,It,Ae),dt[ut][It][Ae]},zee=(Ae,It,ut)=>{if(K1.info("getNextPort abc88",{node:Ae,edgeDirection:It,graphDirection:ut}),!x0[Ae])switch(ut){case"TB":case"TD":x0[Ae]={inPosition:"north",outPosition:"south"};break;case"BT":x0[Ae]={inPosition:"south",outPosition:"north"};break;case"RL":x0[Ae]={inPosition:"east",outPosition:"west"};break;case"LR":x0[Ae]={inPosition:"west",outPosition:"east"};break}const dt=It==="in"?x0[Ae].inPosition:x0[Ae].outPosition;return It==="in"?x0[Ae].inPosition=Gee(x0[Ae].inPosition,It,ut):x0[Ae].outPosition=Gee(x0[Ae].outPosition,It,ut),dt},PMe=(Ae,It)=>{let ut=Ae.start,dt=Ae.end;const Bt=ut,Ai=dt,j=Lp[ut],Ht=Lp[dt];return!j||!Ht?{source:ut,target:dt}:(j.type==="diamond"&&(ut=`${ut}-${zee(ut,"out",It)}`),Ht.type==="diamond"&&(dt=`${dt}-${zee(dt,"in",It)}`),{source:ut,target:dt,sourceId:Bt,targetId:Ai})},IMe=function(Ae,It,ut,dt){K1.info("abc78 edges = ",Ae);const Bt=dt.insert("g").attr("class","edgeLabels");let Ai={},j=It.db.getDirection(),Ht,ou;if(Ae.defaultStyle!==void 0){const Ot=V1n(Ae.defaultStyle);Ht=Ot.style,ou=Ot.labelStyle}return Ae.forEach(function(Ot){const qt="L-"+Ot.start+"-"+Ot.end;Ai[qt]===void 0?(Ai[qt]=0,K1.info("abc78 new entry",qt,Ai[qt])):(Ai[qt]++,K1.info("abc78 new entry",qt,Ai[qt]));let Ge=qt+"-"+Ai[qt];K1.info("abc78 new link id to be used is",qt,Ge,Ai[qt]);const Ki="LS-"+Ot.start,Si="LE-"+Ot.end,Mn={style:"",labelStyle:""};switch(Mn.minlen=Ot.length||1,Ot.type==="arrow_open"?Mn.arrowhead="none":Mn.arrowhead="normal",Mn.arrowTypeStart="arrow_open",Mn.arrowTypeEnd="arrow_open",Ot.type){case"double_arrow_cross":Mn.arrowTypeStart="arrow_cross";case"arrow_cross":Mn.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":Mn.arrowTypeStart="arrow_point";case"arrow_point":Mn.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":Mn.arrowTypeStart="arrow_circle";case"arrow_circle":Mn.arrowTypeEnd="arrow_circle";break}let Lc="",Nc="";switch(Ot.stroke){case"normal":Lc="fill:none;",Ht!==void 0&&(Lc=Ht),ou!==void 0&&(Nc=ou),Mn.thickness="normal",Mn.pattern="solid";break;case"dotted":Mn.thickness="normal",Mn.pattern="dotted",Mn.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":Mn.thickness="thick",Mn.pattern="solid",Mn.style="stroke-width: 3.5px;fill:none;";break}if(Ot.style!==void 0){const ww=V1n(Ot.style);Lc=ww.style,Nc=ww.labelStyle}Mn.style=Mn.style+=Lc,Mn.labelStyle=Mn.labelStyle+=Nc,Ot.interpolate!==void 0?Mn.curve=X1n(Ot.interpolate,IH):Ae.defaultInterpolate!==void 0?Mn.curve=X1n(Ae.defaultInterpolate,IH):Mn.curve=X1n(AMe.curve,IH),Ot.text===void 0?Ot.style!==void 0&&(Mn.arrowheadStyle="fill: #333"):(Mn.arrowheadStyle="fill: #333",Mn.labelpos="c"),Mn.labelType=Ot.labelType,Mn.label=Ot.text.replace(pMe.lineBreakRegex,` -`),Ot.style===void 0&&(Mn.style=Mn.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),Mn.labelStyle=Mn.labelStyle.replace("color:","fill:"),Mn.id=Ge,Mn.classes="flowchart-link "+Ki+" "+Si;const ps=yMe(Bt,Mn),{source:Rr,target:Ch,sourceId:H1,targetId:q1}=PMe(Ot,j);K1.debug("abc78 source and target",Rr,Ch),ut.edges.push({id:"e"+Ot.start+Ot.end,sources:[Rr],targets:[Ch],sourceId:H1,targetId:q1,labelEl:ps,labels:[{width:Mn.width,height:Mn.height,orgWidth:Mn.width,orgHeight:Mn.height,text:Mn.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:Mn})}),ut},OMe=function(Ae,It,ut,dt){let Bt="";switch(dt&&(Bt=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Bt=Bt.replace(/\(/g,"\\("),Bt=Bt.replace(/\)/g,"\\)")),It.arrowTypeStart){case"arrow_cross":Ae.attr("marker-start","url("+Bt+"#"+ut+"-crossStart)");break;case"arrow_point":Ae.attr("marker-start","url("+Bt+"#"+ut+"-pointStart)");break;case"arrow_barb":Ae.attr("marker-start","url("+Bt+"#"+ut+"-barbStart)");break;case"arrow_circle":Ae.attr("marker-start","url("+Bt+"#"+ut+"-circleStart)");break;case"aggregation":Ae.attr("marker-start","url("+Bt+"#"+ut+"-aggregationStart)");break;case"extension":Ae.attr("marker-start","url("+Bt+"#"+ut+"-extensionStart)");break;case"composition":Ae.attr("marker-start","url("+Bt+"#"+ut+"-compositionStart)");break;case"dependency":Ae.attr("marker-start","url("+Bt+"#"+ut+"-dependencyStart)");break;case"lollipop":Ae.attr("marker-start","url("+Bt+"#"+ut+"-lollipopStart)");break}switch(It.arrowTypeEnd){case"arrow_cross":Ae.attr("marker-end","url("+Bt+"#"+ut+"-crossEnd)");break;case"arrow_point":Ae.attr("marker-end","url("+Bt+"#"+ut+"-pointEnd)");break;case"arrow_barb":Ae.attr("marker-end","url("+Bt+"#"+ut+"-barbEnd)");break;case"arrow_circle":Ae.attr("marker-end","url("+Bt+"#"+ut+"-circleEnd)");break;case"aggregation":Ae.attr("marker-end","url("+Bt+"#"+ut+"-aggregationEnd)");break;case"extension":Ae.attr("marker-end","url("+Bt+"#"+ut+"-extensionEnd)");break;case"composition":Ae.attr("marker-end","url("+Bt+"#"+ut+"-compositionEnd)");break;case"dependency":Ae.attr("marker-end","url("+Bt+"#"+ut+"-dependencyEnd)");break;case"lollipop":Ae.attr("marker-end","url("+Bt+"#"+ut+"-lollipopEnd)");break}},DMe=function(Ae,It){K1.info("Extracting classes"),It.db.clear("ver-2");try{return It.parse(Ae),It.db.getClasses()}catch{return{}}},$Me=function(Ae){const It={parentById:{},childrenById:{}},ut=Ae.getSubGraphs();return K1.info("Subgraphs - ",ut),ut.forEach(function(dt){dt.nodes.forEach(function(Bt){It.parentById[Bt]=dt.id,It.childrenById[dt.id]===void 0&&(It.childrenById[dt.id]=[]),It.childrenById[dt.id].push(Bt)})}),ut.forEach(function(dt){dt.id,It.parentById[dt.id]!==void 0&&It.parentById[dt.id]}),It},FMe=function(Ae,It,ut){const dt=MMe(Ae,It,ut);if(dt===void 0||dt==="root")return{x:0,y:0};const Bt=Lp[dt].offset;return{x:Bt.posX,y:Bt.posY}},xMe=function(Ae,It,ut,dt,Bt){const Ai=FMe(It.sourceId,It.targetId,Bt),j=It.sections[0].startPoint,Ht=It.sections[0].endPoint,Ot=(It.sections[0].bendPoints?It.sections[0].bendPoints:[]).map(Nc=>[Nc.x+Ai.x,Nc.y+Ai.y]),qt=[[j.x+Ai.x,j.y+Ai.y],...Ot,[Ht.x+Ai.x,Ht.y+Ai.y]],Ge=EMe().curve(IH),Ki=Ae.insert("path").attr("d",Ge(qt)).attr("class","path "+ut.classes).attr("fill","none"),Si=Ae.insert("g").attr("class","edgeLabel"),Mn=lI(Si.node().appendChild(It.labelEl)),Lc=Mn.node().firstChild.getBoundingClientRect();Mn.attr("width",Lc.width),Mn.attr("height",Lc.height),Si.attr("transform",`translate(${It.labels[0].x+Ai.x}, ${It.labels[0].y+Ai.y})`),OMe(Ki,ut,dt.type,dt.arrowMarkerAbsolute)},Wee=(Ae,It)=>{Ae.forEach(ut=>{ut.children||(ut.children=[]);const dt=It.childrenById[ut.id];dt&&dt.forEach(Bt=>{ut.children.push(Lp[Bt])}),Wee(ut.children,It)})},LMe=async function(Ae,It,ut,dt){var Bt;dt.db.clear(),Lp={},x0={},dt.db.setGen("gen-2"),dt.parser.parse(Ae);const Ai=lI("body").append("div").attr("style","height:400px").attr("id","cy");let j={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(K1.info("Drawing flowchart using v3 renderer",qee),dt.db.getDirection()){case"BT":j.layoutOptions["elk.direction"]="UP";break;case"TB":j.layoutOptions["elk.direction"]="DOWN";break;case"LR":j.layoutOptions["elk.direction"]="RIGHT";break;case"RL":j.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:ou,flowchart:Ot}=OH();let qt;ou==="sandbox"&&(qt=lI("#i"+It));const Ge=ou==="sandbox"?lI(qt.nodes()[0].contentDocument.body):lI("body"),Ki=ou==="sandbox"?qt.nodes()[0].contentDocument:document,Si=Ge.select(`[id="${It}"]`);vMe(Si,["point","circle","cross"],dt.type,dt.arrowMarkerAbsolute);const Lc=dt.db.getVertices();let Nc;const ps=dt.db.getSubGraphs();K1.info("Subgraphs - ",ps);for(let G1=ps.length-1;G1>=0;G1--)Nc=ps[G1],dt.db.addVertex(Nc.id,{text:Nc.title,type:Nc.labelType},"group",void 0,Nc.classes,Nc.dir);const Rr=Si.insert("g").attr("class","subgraphs"),Ch=$Me(dt.db);j=await SMe(Lc,It,Ge,Ki,dt,Ch,j);const H1=Si.insert("g").attr("class","edges edgePath"),q1=dt.db.getEdges();j=IMe(q1,dt,j,Si),Object.keys(Lp).forEach(G1=>{const Th=Lp[G1];Th.parent||j.children.push(Th),Ch.childrenById[G1]!==void 0&&(Th.labels=[{text:Th.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:Th.labelData.width,height:Th.labelData.height}],delete Th.x,delete Th.y,delete Th.width,delete Th.height)}),Wee(j.children,Ch),K1.info("after layout",JSON.stringify(j,null,2));const Np=await qee.layout(j);Xee(0,0,Np.children,Si,Rr,dt,0),K1.info("after layout",Np),(Bt=Np.edges)==null||Bt.map(G1=>{xMe(H1,G1,G1.edgeData,dt,Ch)}),gMe({},Si,Ot.diagramPadding,Ot.useMaxWidth),Ai.remove()},Xee=(Ae,It,ut,dt,Bt,Ai,j)=>{ut.forEach(function(Ht){if(Ht)if(Lp[Ht.id].offset={posX:Ht.x+Ae,posY:Ht.y+It,x:Ae,y:It,depth:j,width:Ht.width,height:Ht.height},Ht.type==="group"){const ou=Bt.insert("g").attr("class","subgraph");ou.insert("rect").attr("class","subgraph subgraph-lvl-"+j%5+" node").attr("x",Ht.x+Ae).attr("y",Ht.y+It).attr("width",Ht.width).attr("height",Ht.height);const Ot=ou.insert("g").attr("class","label"),qt=OH().flowchart.htmlLabels?Ht.labelData.width/2:0;Ot.attr("transform",`translate(${Ht.labels[0].x+Ae+Ht.x+qt}, ${Ht.labels[0].y+It+Ht.y+3})`),Ot.node().appendChild(Ht.labelData.labelNode),K1.info("Id (UGH)= ",Ht.type,Ht.labels)}else K1.info("Id (UGH)= ",Ht.id),Ht.el.attr("transform",`translate(${Ht.x+Ae+Ht.width/2}, ${Ht.y+It+Ht.height/2})`)}),ut.forEach(function(Ht){Ht&&Ht.type==="group"&&Xee(Ae+Ht.x,It+Ht.y,Ht.children,dt,Bt,Ai,j+1)})},NMe={getClasses:DMe,draw:LMe},BMe=Ae=>{let It="";for(let ut=0;ut<5;ut++)It+=` - .subgraph-lvl-${ut} { - fill: ${Ae[`surface${ut}`]}; - stroke: ${Ae[`surfacePeer${ut}`]}; - } - `;return It},RMe=Ae=>`.label { - font-family: ${Ae.fontFamily}; - color: ${Ae.nodeTextColor||Ae.textColor}; - } - .cluster-label text { - fill: ${Ae.titleColor}; - } - .cluster-label span { - color: ${Ae.titleColor}; - } - - .label text,span { - fill: ${Ae.nodeTextColor||Ae.textColor}; - color: ${Ae.nodeTextColor||Ae.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${Ae.mainBkg}; - stroke: ${Ae.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${Ae.arrowheadColor}; - } - - .edgePath .path { - stroke: ${Ae.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${Ae.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${Ae.edgeLabelBackground}; - rect { - opacity: 0.85; - background-color: ${Ae.edgeLabelBackground}; - fill: ${Ae.edgeLabelBackground}; - } - text-align: center; - } - - .cluster rect { - fill: ${Ae.clusterBkg}; - stroke: ${Ae.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${Ae.titleColor}; - } - - .cluster span { - color: ${Ae.titleColor}; - } - /* .cluster div { - color: ${Ae.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${Ae.fontFamily}; - font-size: 12px; - background: ${Ae.tertiaryColor}; - border: 1px solid ${Ae.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${Ae.textColor}; - } - .subgraph { - stroke-width:2; - rx:3; - } - // .subgraph-lvl-1 { - // fill:#ccc; - // // stroke:black; - // } - - .flowchart-label text { - text-anchor: middle; - } - - ${BMe(Ae)} -`,_Me=RMe,JMe={db:bMe,renderer:NMe,parser:wMe,styles:_Me};export{JMe as diagram}; -//# sourceMappingURL=flowchart-elk-definition-5082a990-_inAippy.js.map diff --git a/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js.map b/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js.map deleted file mode 100644 index 19991a1..0000000 --- a/excalidraw/excalidraw-app/build/assets/flowchart-elk-definition-5082a990-_inAippy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"flowchart-elk-definition-5082a990-_inAippy.js","sources":["../../../node_modules/elkjs/lib/elk.bundled.js","../../../node_modules/mermaid/dist/flowchart-elk-definition-5082a990.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$defaultLayoutOpt = _ref.defaultLayoutOptions,\n defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt,\n _ref$algorithms = _ref.algorithms,\n algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms,\n workerFactory = _ref.workerFactory,\n workerUrl = _ref.workerUrl;\n\n _classCallCheck(this, ELK);\n\n this.defaultLayoutOptions = defaultLayoutOptions;\n this.initialized = false;\n\n // check valid worker construction possible\n if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') {\n throw new Error(\"Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.\");\n }\n var factory = workerFactory;\n if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') {\n // use default Web Worker\n factory = function factory(url) {\n return new Worker(url);\n };\n }\n\n // create the worker\n var worker = factory(workerUrl);\n if (typeof worker.postMessage !== 'function') {\n throw new TypeError(\"Created worker does not provide\" + \" the required 'postMessage' function.\");\n }\n\n // wrap the worker to return promises\n this.worker = new PromisedWorker(worker);\n\n // initially register algorithms\n this.worker.postMessage({\n cmd: 'register',\n algorithms: algorithms\n }).then(function (r) {\n return _this.initialized = true;\n }).catch(console.err);\n }\n\n _createClass(ELK, [{\n key: 'layout',\n value: function layout(graph) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$layoutOptions = _ref2.layoutOptions,\n layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions,\n _ref2$logging = _ref2.logging,\n logging = _ref2$logging === undefined ? false : _ref2$logging,\n _ref2$measureExecutio = _ref2.measureExecutionTime,\n measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio;\n\n if (!graph) {\n return Promise.reject(new Error(\"Missing mandatory parameter 'graph'.\"));\n }\n return this.worker.postMessage({\n cmd: 'layout',\n graph: graph,\n layoutOptions: layoutOptions,\n options: {\n logging: logging,\n measureExecutionTime: measureExecutionTime\n }\n });\n }\n }, {\n key: 'knownLayoutAlgorithms',\n value: function knownLayoutAlgorithms() {\n return this.worker.postMessage({ cmd: 'algorithms' });\n }\n }, {\n key: 'knownLayoutOptions',\n value: function knownLayoutOptions() {\n return this.worker.postMessage({ cmd: 'options' });\n }\n }, {\n key: 'knownLayoutCategories',\n value: function knownLayoutCategories() {\n return this.worker.postMessage({ cmd: 'categories' });\n }\n }, {\n key: 'terminateWorker',\n value: function terminateWorker() {\n this.worker.terminate();\n }\n }]);\n\n return ELK;\n}();\n\nexports.default = ELK;\n\nvar PromisedWorker = function () {\n function PromisedWorker(worker) {\n var _this2 = this;\n\n _classCallCheck(this, PromisedWorker);\n\n if (worker === undefined) {\n throw new Error(\"Missing mandatory parameter 'worker'.\");\n }\n this.resolvers = {};\n this.worker = worker;\n this.worker.onmessage = function (answer) {\n // why is this necessary?\n setTimeout(function () {\n _this2.receive(_this2, answer);\n }, 0);\n };\n }\n\n _createClass(PromisedWorker, [{\n key: 'postMessage',\n value: function postMessage(msg) {\n var id = this.id || 0;\n this.id = id + 1;\n msg.id = id;\n var self = this;\n return new Promise(function (resolve, reject) {\n // prepare the resolver\n self.resolvers[id] = function (err, res) {\n if (err) {\n self.convertGwtStyleError(err);\n reject(err);\n } else {\n resolve(res);\n }\n };\n // post the message\n self.worker.postMessage(msg);\n });\n }\n }, {\n key: 'receive',\n value: function receive(self, answer) {\n var json = answer.data;\n var resolver = self.resolvers[json.id];\n if (resolver) {\n delete self.resolvers[json.id];\n if (json.error) {\n resolver(json.error);\n } else {\n resolver(null, json.data);\n }\n }\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n if (this.worker.terminate) {\n this.worker.terminate();\n }\n }\n }, {\n key: 'convertGwtStyleError',\n value: function convertGwtStyleError(err) {\n if (!err) {\n return;\n }\n // Somewhat flatten the way GWT stores nested exception(s)\n var javaException = err['__java$exception'];\n if (javaException) {\n // Note that the property name of the nested exception is different\n // in the non-minified ('cause') and the minified (not deterministic) version.\n // Hence, the version below only works for the non-minified version.\n // However, as the minified stack trace is not of much use anyway, one\n // should switch the used version for debugging in such a case.\n if (javaException.cause && javaException.cause.backingJsObject) {\n err.cause = javaException.cause.backingJsObject;\n this.convertGwtStyleError(err.cause);\n }\n delete err['__java$exception'];\n }\n }\n }]);\n\n return PromisedWorker;\n}();\n},{}],2:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\n// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- \nvar $wnd;\nif (typeof window !== 'undefined')\n $wnd = window\nelse if (typeof global !== 'undefined')\n $wnd = global // nodejs\nelse if (typeof self !== 'undefined')\n $wnd = self // web worker\n\nvar $moduleName,\n $moduleBase;\n\n// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- \nvar g, i, o;\n\n// -------------- GENERATED CODE -------------- \nfunction nb(){}\nfunction xb(){}\nfunction Fd(){}\nfunction $g(){}\nfunction _p(){}\nfunction yq(){}\nfunction Sq(){}\nfunction Es(){}\nfunction Jw(){}\nfunction Vw(){}\nfunction VA(){}\nfunction dA(){}\nfunction MA(){}\nfunction PA(){}\nfunction PB(){}\nfunction bx(){}\nfunction cx(){}\nfunction vy(){}\nfunction Nz(){}\nfunction Yz(){}\nfunction Ylb(){}\nfunction Ymb(){}\nfunction xmb(){}\nfunction Fmb(){}\nfunction Qmb(){}\nfunction gcb(){}\nfunction ccb(){}\nfunction jcb(){}\nfunction jtb(){}\nfunction otb(){}\nfunction qtb(){}\nfunction _fb(){}\nfunction bpb(){}\nfunction kpb(){}\nfunction ppb(){}\nfunction Gpb(){}\nfunction drb(){}\nfunction dzb(){}\nfunction fzb(){}\nfunction fxb(){}\nfunction Vxb(){}\nfunction Ovb(){}\nfunction byb(){}\nfunction zyb(){}\nfunction Zyb(){}\nfunction _yb(){}\nfunction hzb(){}\nfunction jzb(){}\nfunction lzb(){}\nfunction nzb(){}\nfunction rzb(){}\nfunction zzb(){}\nfunction Czb(){}\nfunction Ezb(){}\nfunction Gzb(){}\nfunction Izb(){}\nfunction Mzb(){}\nfunction bBb(){}\nfunction NBb(){}\nfunction PBb(){}\nfunction RBb(){}\nfunction iCb(){}\nfunction OCb(){}\nfunction SCb(){}\nfunction GDb(){}\nfunction JDb(){}\nfunction fEb(){}\nfunction xEb(){}\nfunction CEb(){}\nfunction GEb(){}\nfunction yFb(){}\nfunction KGb(){}\nfunction tIb(){}\nfunction vIb(){}\nfunction xIb(){}\nfunction zIb(){}\nfunction OIb(){}\nfunction SIb(){}\nfunction TJb(){}\nfunction VJb(){}\nfunction XJb(){}\nfunction XKb(){}\nfunction fKb(){}\nfunction VKb(){}\nfunction VLb(){}\nfunction jLb(){}\nfunction nLb(){}\nfunction GLb(){}\nfunction KLb(){}\nfunction MLb(){}\nfunction OLb(){}\nfunction RLb(){}\nfunction YLb(){}\nfunction bMb(){}\nfunction gMb(){}\nfunction lMb(){}\nfunction pMb(){}\nfunction wMb(){}\nfunction zMb(){}\nfunction CMb(){}\nfunction FMb(){}\nfunction LMb(){}\nfunction zNb(){}\nfunction PNb(){}\nfunction kOb(){}\nfunction pOb(){}\nfunction tOb(){}\nfunction yOb(){}\nfunction FOb(){}\nfunction GPb(){}\nfunction aQb(){}\nfunction cQb(){}\nfunction eQb(){}\nfunction gQb(){}\nfunction iQb(){}\nfunction CQb(){}\nfunction MQb(){}\nfunction OQb(){}\nfunction ASb(){}\nfunction fTb(){}\nfunction kTb(){}\nfunction STb(){}\nfunction fUb(){}\nfunction DUb(){}\nfunction VUb(){}\nfunction YUb(){}\nfunction _Ub(){}\nfunction _Wb(){}\nfunction QWb(){}\nfunction XWb(){}\nfunction jVb(){}\nfunction DVb(){}\nfunction VVb(){}\nfunction $Vb(){}\nfunction dXb(){}\nfunction hXb(){}\nfunction lXb(){}\nfunction gYb(){}\nfunction HYb(){}\nfunction SYb(){}\nfunction VYb(){}\nfunction dZb(){}\nfunction P$b(){}\nfunction T$b(){}\nfunction h1b(){}\nfunction m1b(){}\nfunction q1b(){}\nfunction u1b(){}\nfunction y1b(){}\nfunction C1b(){}\nfunction e2b(){}\nfunction g2b(){}\nfunction m2b(){}\nfunction q2b(){}\nfunction u2b(){}\nfunction S2b(){}\nfunction U2b(){}\nfunction W2b(){}\nfunction _2b(){}\nfunction e3b(){}\nfunction h3b(){}\nfunction p3b(){}\nfunction t3b(){}\nfunction w3b(){}\nfunction y3b(){}\nfunction A3b(){}\nfunction M3b(){}\nfunction Q3b(){}\nfunction U3b(){}\nfunction Y3b(){}\nfunction l4b(){}\nfunction q4b(){}\nfunction s4b(){}\nfunction u4b(){}\nfunction w4b(){}\nfunction y4b(){}\nfunction L4b(){}\nfunction N4b(){}\nfunction P4b(){}\nfunction R4b(){}\nfunction T4b(){}\nfunction X4b(){}\nfunction I5b(){}\nfunction Q5b(){}\nfunction T5b(){}\nfunction Z5b(){}\nfunction l6b(){}\nfunction o6b(){}\nfunction t6b(){}\nfunction z6b(){}\nfunction L6b(){}\nfunction M6b(){}\nfunction P6b(){}\nfunction X6b(){}\nfunction $6b(){}\nfunction a7b(){}\nfunction c7b(){}\nfunction g7b(){}\nfunction j7b(){}\nfunction m7b(){}\nfunction r7b(){}\nfunction x7b(){}\nfunction D7b(){}\nfunction D9b(){}\nfunction b9b(){}\nfunction h9b(){}\nfunction j9b(){}\nfunction l9b(){}\nfunction w9b(){}\nfunction F9b(){}\nfunction hac(){}\nfunction jac(){}\nfunction pac(){}\nfunction uac(){}\nfunction Iac(){}\nfunction Kac(){}\nfunction Sac(){}\nfunction obc(){}\nfunction rbc(){}\nfunction vbc(){}\nfunction Fbc(){}\nfunction Jbc(){}\nfunction Xbc(){}\nfunction ccc(){}\nfunction fcc(){}\nfunction lcc(){}\nfunction occ(){}\nfunction tcc(){}\nfunction ycc(){}\nfunction Acc(){}\nfunction Ccc(){}\nfunction Ecc(){}\nfunction Gcc(){}\nfunction Zcc(){}\nfunction _cc(){}\nfunction bdc(){}\nfunction fdc(){}\nfunction jdc(){}\nfunction pdc(){}\nfunction sdc(){}\nfunction ydc(){}\nfunction Adc(){}\nfunction Cdc(){}\nfunction Edc(){}\nfunction Idc(){}\nfunction Ndc(){}\nfunction Qdc(){}\nfunction Sdc(){}\nfunction Udc(){}\nfunction Wdc(){}\nfunction Ydc(){}\nfunction aec(){}\nfunction hec(){}\nfunction jec(){}\nfunction lec(){}\nfunction nec(){}\nfunction uec(){}\nfunction wec(){}\nfunction yec(){}\nfunction Aec(){}\nfunction Fec(){}\nfunction Jec(){}\nfunction Lec(){}\nfunction Nec(){}\nfunction Rec(){}\nfunction Uec(){}\nfunction Zec(){}\nfunction Zfc(){}\nfunction lfc(){}\nfunction tfc(){}\nfunction xfc(){}\nfunction zfc(){}\nfunction Ffc(){}\nfunction Jfc(){}\nfunction Nfc(){}\nfunction Pfc(){}\nfunction Vfc(){}\nfunction _fc(){}\nfunction fgc(){}\nfunction jgc(){}\nfunction lgc(){}\nfunction Bgc(){}\nfunction ehc(){}\nfunction ghc(){}\nfunction ihc(){}\nfunction khc(){}\nfunction mhc(){}\nfunction ohc(){}\nfunction qhc(){}\nfunction yhc(){}\nfunction Ahc(){}\nfunction Ghc(){}\nfunction Ihc(){}\nfunction Khc(){}\nfunction Mhc(){}\nfunction Shc(){}\nfunction Uhc(){}\nfunction Whc(){}\nfunction dic(){}\nfunction dlc(){}\nfunction blc(){}\nfunction flc(){}\nfunction hlc(){}\nfunction jlc(){}\nfunction Glc(){}\nfunction Ilc(){}\nfunction Klc(){}\nfunction Mlc(){}\nfunction Mjc(){}\nfunction Qjc(){}\nfunction Qlc(){}\nfunction Ulc(){}\nfunction Ylc(){}\nfunction Lkc(){}\nfunction Nkc(){}\nfunction Pkc(){}\nfunction Rkc(){}\nfunction Xkc(){}\nfunction _kc(){}\nfunction gmc(){}\nfunction kmc(){}\nfunction zmc(){}\nfunction Fmc(){}\nfunction Wmc(){}\nfunction $mc(){}\nfunction anc(){}\nfunction mnc(){}\nfunction wnc(){}\nfunction Hnc(){}\nfunction Jnc(){}\nfunction Lnc(){}\nfunction Nnc(){}\nfunction Pnc(){}\nfunction Ync(){}\nfunction eoc(){}\nfunction Aoc(){}\nfunction Coc(){}\nfunction Eoc(){}\nfunction Joc(){}\nfunction Loc(){}\nfunction Zoc(){}\nfunction _oc(){}\nfunction bpc(){}\nfunction hpc(){}\nfunction kpc(){}\nfunction ppc(){}\nfunction pFc(){}\nfunction Ryc(){}\nfunction QCc(){}\nfunction PDc(){}\nfunction xGc(){}\nfunction HGc(){}\nfunction JGc(){}\nfunction NGc(){}\nfunction GIc(){}\nfunction iKc(){}\nfunction mKc(){}\nfunction wKc(){}\nfunction yKc(){}\nfunction AKc(){}\nfunction EKc(){}\nfunction KKc(){}\nfunction OKc(){}\nfunction QKc(){}\nfunction SKc(){}\nfunction UKc(){}\nfunction YKc(){}\nfunction aLc(){}\nfunction fLc(){}\nfunction hLc(){}\nfunction nLc(){}\nfunction pLc(){}\nfunction tLc(){}\nfunction vLc(){}\nfunction zLc(){}\nfunction BLc(){}\nfunction DLc(){}\nfunction FLc(){}\nfunction sMc(){}\nfunction JMc(){}\nfunction hNc(){}\nfunction RNc(){}\nfunction ZNc(){}\nfunction _Nc(){}\nfunction bOc(){}\nfunction dOc(){}\nfunction fOc(){}\nfunction hOc(){}\nfunction hRc(){}\nfunction jRc(){}\nfunction KRc(){}\nfunction NRc(){}\nfunction NQc(){}\nfunction LQc(){}\nfunction _Qc(){}\nfunction cPc(){}\nfunction iPc(){}\nfunction kPc(){}\nfunction mPc(){}\nfunction xPc(){}\nfunction zPc(){}\nfunction zSc(){}\nfunction BSc(){}\nfunction GSc(){}\nfunction ISc(){}\nfunction NSc(){}\nfunction TSc(){}\nfunction NTc(){}\nfunction NVc(){}\nfunction oVc(){}\nfunction SVc(){}\nfunction VVc(){}\nfunction XVc(){}\nfunction ZVc(){}\nfunction bWc(){}\nfunction bXc(){}\nfunction CXc(){}\nfunction FXc(){}\nfunction IXc(){}\nfunction MXc(){}\nfunction UXc(){}\nfunction bYc(){}\nfunction fYc(){}\nfunction oYc(){}\nfunction qYc(){}\nfunction uYc(){}\nfunction pZc(){}\nfunction G$c(){}\nfunction h0c(){}\nfunction N0c(){}\nfunction k1c(){}\nfunction I1c(){}\nfunction Q1c(){}\nfunction f2c(){}\nfunction i2c(){}\nfunction k2c(){}\nfunction w2c(){}\nfunction O2c(){}\nfunction S2c(){}\nfunction Z2c(){}\nfunction v3c(){}\nfunction x3c(){}\nfunction R3c(){}\nfunction U3c(){}\nfunction e4c(){}\nfunction w4c(){}\nfunction x4c(){}\nfunction z4c(){}\nfunction B4c(){}\nfunction D4c(){}\nfunction F4c(){}\nfunction H4c(){}\nfunction J4c(){}\nfunction L4c(){}\nfunction N4c(){}\nfunction P4c(){}\nfunction R4c(){}\nfunction T4c(){}\nfunction V4c(){}\nfunction X4c(){}\nfunction Z4c(){}\nfunction _4c(){}\nfunction _7c(){}\nfunction b5c(){}\nfunction d5c(){}\nfunction f5c(){}\nfunction h5c(){}\nfunction H5c(){}\nfunction Hfd(){}\nfunction Zfd(){}\nfunction Zed(){}\nfunction ged(){}\nfunction Jed(){}\nfunction Ned(){}\nfunction Red(){}\nfunction Ved(){}\nfunction bbd(){}\nfunction mdd(){}\nfunction _fd(){}\nfunction fgd(){}\nfunction kgd(){}\nfunction Mgd(){}\nfunction Ahd(){}\nfunction Ald(){}\nfunction Tld(){}\nfunction xkd(){}\nfunction rmd(){}\nfunction knd(){}\nfunction Jod(){}\nfunction JCd(){}\nfunction Bpd(){}\nfunction BFd(){}\nfunction oFd(){}\nfunction bqd(){}\nfunction bvd(){}\nfunction jvd(){}\nfunction yud(){}\nfunction Hxd(){}\nfunction EBd(){}\nfunction aDd(){}\nfunction MGd(){}\nfunction vHd(){}\nfunction RHd(){}\nfunction wNd(){}\nfunction zNd(){}\nfunction CNd(){}\nfunction KNd(){}\nfunction XNd(){}\nfunction $Nd(){}\nfunction HPd(){}\nfunction lUd(){}\nfunction XUd(){}\nfunction DWd(){}\nfunction GWd(){}\nfunction JWd(){}\nfunction MWd(){}\nfunction PWd(){}\nfunction SWd(){}\nfunction VWd(){}\nfunction YWd(){}\nfunction _Wd(){}\nfunction xYd(){}\nfunction BYd(){}\nfunction mZd(){}\nfunction EZd(){}\nfunction GZd(){}\nfunction JZd(){}\nfunction MZd(){}\nfunction PZd(){}\nfunction SZd(){}\nfunction VZd(){}\nfunction YZd(){}\nfunction _Zd(){}\nfunction c$d(){}\nfunction f$d(){}\nfunction i$d(){}\nfunction l$d(){}\nfunction o$d(){}\nfunction r$d(){}\nfunction u$d(){}\nfunction x$d(){}\nfunction A$d(){}\nfunction D$d(){}\nfunction G$d(){}\nfunction J$d(){}\nfunction M$d(){}\nfunction P$d(){}\nfunction S$d(){}\nfunction V$d(){}\nfunction Y$d(){}\nfunction _$d(){}\nfunction c_d(){}\nfunction f_d(){}\nfunction i_d(){}\nfunction l_d(){}\nfunction o_d(){}\nfunction r_d(){}\nfunction u_d(){}\nfunction x_d(){}\nfunction A_d(){}\nfunction D_d(){}\nfunction G_d(){}\nfunction J_d(){}\nfunction M_d(){}\nfunction P_d(){}\nfunction S_d(){}\nfunction V_d(){}\nfunction Y_d(){}\nfunction h5d(){}\nfunction U6d(){}\nfunction U9d(){}\nfunction _8d(){}\nfunction fae(){}\nfunction hae(){}\nfunction kae(){}\nfunction nae(){}\nfunction qae(){}\nfunction tae(){}\nfunction wae(){}\nfunction zae(){}\nfunction Cae(){}\nfunction Fae(){}\nfunction Iae(){}\nfunction Lae(){}\nfunction Oae(){}\nfunction Rae(){}\nfunction Uae(){}\nfunction Xae(){}\nfunction $ae(){}\nfunction bbe(){}\nfunction ebe(){}\nfunction hbe(){}\nfunction kbe(){}\nfunction nbe(){}\nfunction qbe(){}\nfunction tbe(){}\nfunction wbe(){}\nfunction zbe(){}\nfunction Cbe(){}\nfunction Fbe(){}\nfunction Ibe(){}\nfunction Lbe(){}\nfunction Obe(){}\nfunction Rbe(){}\nfunction Ube(){}\nfunction Xbe(){}\nfunction $be(){}\nfunction bce(){}\nfunction ece(){}\nfunction hce(){}\nfunction kce(){}\nfunction nce(){}\nfunction qce(){}\nfunction tce(){}\nfunction wce(){}\nfunction zce(){}\nfunction Cce(){}\nfunction Fce(){}\nfunction Ice(){}\nfunction Lce(){}\nfunction Oce(){}\nfunction Rce(){}\nfunction Uce(){}\nfunction Xce(){}\nfunction ude(){}\nfunction Vge(){}\nfunction dhe(){}\nfunction s_b(a){}\nfunction jSd(a){}\nfunction ol(){wb()}\nfunction oPb(){nPb()}\nfunction EPb(){CPb()}\nfunction gFb(){fFb()}\nfunction TRb(){SRb()}\nfunction ySb(){wSb()}\nfunction PSb(){OSb()}\nfunction dTb(){bTb()}\nfunction i4b(){b4b()}\nfunction D2b(){x2b()}\nfunction J6b(){D6b()}\nfunction u9b(){q9b()}\nfunction $9b(){I9b()}\nfunction Umc(){Imc()}\nfunction abc(){Vac()}\nfunction ZCc(){VCc()}\nfunction kCc(){hCc()}\nfunction rCc(){oCc()}\nfunction Tcc(){Occ()}\nfunction xkc(){gkc()}\nfunction xDc(){rDc()}\nfunction iDc(){cDc()}\nfunction kwc(){jwc()}\nfunction tJc(){jJc()}\nfunction dJc(){aJc()}\nfunction Pyc(){Nyc()}\nfunction VBc(){SBc()}\nfunction CFc(){yFc()}\nfunction CUc(){wUc()}\nfunction lUc(){fUc()}\nfunction sUc(){pUc()}\nfunction IUc(){GUc()}\nfunction IWc(){HWc()}\nfunction _Wc(){ZWc()}\nfunction fHc(){dHc()}\nfunction f0c(){d0c()}\nfunction B0c(){A0c()}\nfunction L0c(){J0c()}\nfunction LTc(){JTc()}\nfunction sTc(){rTc()}\nfunction KLc(){ILc()}\nfunction wNc(){tNc()}\nfunction PYc(){OYc()}\nfunction nZc(){lZc()}\nfunction q3c(){p3c()}\nfunction Z7c(){X7c()}\nfunction Z9c(){Y9c()}\nfunction _ad(){Zad()}\nfunction kdd(){idd()}\nfunction $md(){Smd()}\nfunction HGd(){tGd()}\nfunction hLd(){NKd()}\nfunction J6d(){Uge()}\nfunction Mvb(a){uCb(a)}\nfunction Yb(a){this.a=a}\nfunction cc(a){this.a=a}\nfunction cj(a){this.a=a}\nfunction ij(a){this.a=a}\nfunction Dj(a){this.a=a}\nfunction df(a){this.a=a}\nfunction kf(a){this.a=a}\nfunction ah(a){this.a=a}\nfunction lh(a){this.a=a}\nfunction th(a){this.a=a}\nfunction Ph(a){this.a=a}\nfunction vi(a){this.a=a}\nfunction Ci(a){this.a=a}\nfunction Fk(a){this.a=a}\nfunction Ln(a){this.a=a}\nfunction ap(a){this.a=a}\nfunction zp(a){this.a=a}\nfunction Yp(a){this.a=a}\nfunction qq(a){this.a=a}\nfunction Dq(a){this.a=a}\nfunction wr(a){this.a=a}\nfunction Ir(a){this.b=a}\nfunction sj(a){this.c=a}\nfunction sw(a){this.a=a}\nfunction fw(a){this.a=a}\nfunction xw(a){this.a=a}\nfunction Cw(a){this.a=a}\nfunction Qw(a){this.a=a}\nfunction Rw(a){this.a=a}\nfunction Xw(a){this.a=a}\nfunction Xv(a){this.a=a}\nfunction Sv(a){this.a=a}\nfunction eu(a){this.a=a}\nfunction Zx(a){this.a=a}\nfunction _x(a){this.a=a}\nfunction xy(a){this.a=a}\nfunction xB(a){this.a=a}\nfunction HB(a){this.a=a}\nfunction TB(a){this.a=a}\nfunction fC(a){this.a=a}\nfunction wB(){this.a=[]}\nfunction MBb(a,b){a.a=b}\nfunction w_b(a,b){a.a=b}\nfunction x_b(a,b){a.b=b}\nfunction YOb(a,b){a.b=b}\nfunction $Ob(a,b){a.b=b}\nfunction ZGb(a,b){a.j=b}\nfunction qNb(a,b){a.g=b}\nfunction rNb(a,b){a.i=b}\nfunction dRb(a,b){a.c=b}\nfunction eRb(a,b){a.d=b}\nfunction z_b(a,b){a.d=b}\nfunction y_b(a,b){a.c=b}\nfunction __b(a,b){a.k=b}\nfunction E0b(a,b){a.c=b}\nfunction njc(a,b){a.c=b}\nfunction mjc(a,b){a.a=b}\nfunction dFc(a,b){a.a=b}\nfunction eFc(a,b){a.f=b}\nfunction nOc(a,b){a.a=b}\nfunction oOc(a,b){a.b=b}\nfunction pOc(a,b){a.d=b}\nfunction qOc(a,b){a.i=b}\nfunction rOc(a,b){a.o=b}\nfunction sOc(a,b){a.r=b}\nfunction $Pc(a,b){a.a=b}\nfunction _Pc(a,b){a.b=b}\nfunction DVc(a,b){a.e=b}\nfunction EVc(a,b){a.f=b}\nfunction FVc(a,b){a.g=b}\nfunction SZc(a,b){a.e=b}\nfunction TZc(a,b){a.f=b}\nfunction c$c(a,b){a.f=b}\nfunction bJd(a,b){a.n=b}\nfunction A1d(a,b){a.a=b}\nfunction J1d(a,b){a.a=b}\nfunction B1d(a,b){a.c=b}\nfunction K1d(a,b){a.c=b}\nfunction L1d(a,b){a.d=b}\nfunction M1d(a,b){a.e=b}\nfunction N1d(a,b){a.g=b}\nfunction d2d(a,b){a.a=b}\nfunction e2d(a,b){a.c=b}\nfunction f2d(a,b){a.d=b}\nfunction g2d(a,b){a.e=b}\nfunction h2d(a,b){a.f=b}\nfunction i2d(a,b){a.j=b}\nfunction Z8d(a,b){a.a=b}\nfunction $8d(a,b){a.b=b}\nfunction g9d(a,b){a.a=b}\nfunction Cic(a){a.b=a.a}\nfunction Dg(a){a.c=a.d.d}\nfunction vib(a){this.d=a}\nfunction eib(a){this.a=a}\nfunction Pib(a){this.a=a}\nfunction Vib(a){this.a=a}\nfunction $ib(a){this.a=a}\nfunction mcb(a){this.a=a}\nfunction Mcb(a){this.a=a}\nfunction Xcb(a){this.a=a}\nfunction Ndb(a){this.a=a}\nfunction _db(a){this.a=a}\nfunction teb(a){this.a=a}\nfunction Qeb(a){this.a=a}\nfunction djb(a){this.a=a}\nfunction Gjb(a){this.a=a}\nfunction Njb(a){this.a=a}\nfunction Bjb(a){this.b=a}\nfunction lnb(a){this.b=a}\nfunction Dnb(a){this.b=a}\nfunction anb(a){this.a=a}\nfunction Mob(a){this.a=a}\nfunction Rob(a){this.a=a}\nfunction iob(a){this.c=a}\nfunction olb(a){this.c=a}\nfunction qub(a){this.c=a}\nfunction Tub(a){this.a=a}\nfunction Vub(a){this.a=a}\nfunction Xub(a){this.a=a}\nfunction Zub(a){this.a=a}\nfunction tpb(a){this.a=a}\nfunction _pb(a){this.a=a}\nfunction Wqb(a){this.a=a}\nfunction nsb(a){this.a=a}\nfunction Rxb(a){this.a=a}\nfunction Txb(a){this.a=a}\nfunction Xxb(a){this.a=a}\nfunction bzb(a){this.a=a}\nfunction tzb(a){this.a=a}\nfunction vzb(a){this.a=a}\nfunction xzb(a){this.a=a}\nfunction Kzb(a){this.a=a}\nfunction Ozb(a){this.a=a}\nfunction iAb(a){this.a=a}\nfunction kAb(a){this.a=a}\nfunction mAb(a){this.a=a}\nfunction BAb(a){this.a=a}\nfunction hBb(a){this.a=a}\nfunction jBb(a){this.a=a}\nfunction nBb(a){this.a=a}\nfunction TBb(a){this.a=a}\nfunction XBb(a){this.a=a}\nfunction QCb(a){this.a=a}\nfunction WCb(a){this.a=a}\nfunction _Cb(a){this.a=a}\nfunction dEb(a){this.a=a}\nfunction QGb(a){this.a=a}\nfunction YGb(a){this.a=a}\nfunction tKb(a){this.a=a}\nfunction CLb(a){this.a=a}\nfunction JMb(a){this.a=a}\nfunction RNb(a){this.a=a}\nfunction kQb(a){this.a=a}\nfunction mQb(a){this.a=a}\nfunction FQb(a){this.a=a}\nfunction ETb(a){this.a=a}\nfunction UTb(a){this.a=a}\nfunction dUb(a){this.a=a}\nfunction hUb(a){this.a=a}\nfunction EZb(a){this.a=a}\nfunction j$b(a){this.a=a}\nfunction v$b(a){this.e=a}\nfunction J0b(a){this.a=a}\nfunction M0b(a){this.a=a}\nfunction R0b(a){this.a=a}\nfunction U0b(a){this.a=a}\nfunction i2b(a){this.a=a}\nfunction k2b(a){this.a=a}\nfunction o2b(a){this.a=a}\nfunction s2b(a){this.a=a}\nfunction G2b(a){this.a=a}\nfunction I2b(a){this.a=a}\nfunction K2b(a){this.a=a}\nfunction M2b(a){this.a=a}\nfunction W3b(a){this.a=a}\nfunction $3b(a){this.a=a}\nfunction V4b(a){this.a=a}\nfunction u5b(a){this.a=a}\nfunction A7b(a){this.a=a}\nfunction G7b(a){this.a=a}\nfunction J7b(a){this.a=a}\nfunction M7b(a){this.a=a}\nfunction Mbc(a){this.a=a}\nfunction Pbc(a){this.a=a}\nfunction lac(a){this.a=a}\nfunction nac(a){this.a=a}\nfunction qcc(a){this.a=a}\nfunction Gdc(a){this.a=a}\nfunction $dc(a){this.a=a}\nfunction cec(a){this.a=a}\nfunction _ec(a){this.a=a}\nfunction pfc(a){this.a=a}\nfunction Bfc(a){this.a=a}\nfunction Lfc(a){this.a=a}\nfunction ygc(a){this.a=a}\nfunction Dgc(a){this.a=a}\nfunction shc(a){this.a=a}\nfunction uhc(a){this.a=a}\nfunction whc(a){this.a=a}\nfunction Chc(a){this.a=a}\nfunction Ehc(a){this.a=a}\nfunction Ohc(a){this.a=a}\nfunction Yhc(a){this.a=a}\nfunction Tkc(a){this.a=a}\nfunction Vkc(a){this.a=a}\nfunction Olc(a){this.a=a}\nfunction pnc(a){this.a=a}\nfunction rnc(a){this.a=a}\nfunction dpc(a){this.a=a}\nfunction fpc(a){this.a=a}\nfunction GCc(a){this.a=a}\nfunction KCc(a){this.a=a}\nfunction mDc(a){this.a=a}\nfunction jEc(a){this.a=a}\nfunction HEc(a){this.a=a}\nfunction FEc(a){this.c=a}\nfunction qoc(a){this.b=a}\nfunction bFc(a){this.a=a}\nfunction GFc(a){this.a=a}\nfunction iGc(a){this.a=a}\nfunction kGc(a){this.a=a}\nfunction mGc(a){this.a=a}\nfunction $Gc(a){this.a=a}\nfunction hIc(a){this.a=a}\nfunction lIc(a){this.a=a}\nfunction pIc(a){this.a=a}\nfunction tIc(a){this.a=a}\nfunction xIc(a){this.a=a}\nfunction zIc(a){this.a=a}\nfunction CIc(a){this.a=a}\nfunction LIc(a){this.a=a}\nfunction CKc(a){this.a=a}\nfunction IKc(a){this.a=a}\nfunction MKc(a){this.a=a}\nfunction $Kc(a){this.a=a}\nfunction cLc(a){this.a=a}\nfunction jLc(a){this.a=a}\nfunction rLc(a){this.a=a}\nfunction xLc(a){this.a=a}\nfunction OMc(a){this.a=a}\nfunction ZOc(a){this.a=a}\nfunction ZRc(a){this.a=a}\nfunction aSc(a){this.a=a}\nfunction I$c(a){this.a=a}\nfunction K$c(a){this.a=a}\nfunction M$c(a){this.a=a}\nfunction O$c(a){this.a=a}\nfunction U$c(a){this.a=a}\nfunction n1c(a){this.a=a}\nfunction z1c(a){this.a=a}\nfunction B1c(a){this.a=a}\nfunction Q2c(a){this.a=a}\nfunction U2c(a){this.a=a}\nfunction z3c(a){this.a=a}\nfunction med(a){this.a=a}\nfunction Xed(a){this.a=a}\nfunction _ed(a){this.a=a}\nfunction Qfd(a){this.a=a}\nfunction Bgd(a){this.a=a}\nfunction $gd(a){this.a=a}\nfunction lrd(a){this.a=a}\nfunction urd(a){this.a=a}\nfunction vrd(a){this.a=a}\nfunction wrd(a){this.a=a}\nfunction xrd(a){this.a=a}\nfunction yrd(a){this.a=a}\nfunction zrd(a){this.a=a}\nfunction Ard(a){this.a=a}\nfunction Brd(a){this.a=a}\nfunction Crd(a){this.a=a}\nfunction Ird(a){this.a=a}\nfunction Krd(a){this.a=a}\nfunction Lrd(a){this.a=a}\nfunction Mrd(a){this.a=a}\nfunction Nrd(a){this.a=a}\nfunction Prd(a){this.a=a}\nfunction Srd(a){this.a=a}\nfunction Yrd(a){this.a=a}\nfunction Zrd(a){this.a=a}\nfunction _rd(a){this.a=a}\nfunction asd(a){this.a=a}\nfunction bsd(a){this.a=a}\nfunction csd(a){this.a=a}\nfunction dsd(a){this.a=a}\nfunction msd(a){this.a=a}\nfunction osd(a){this.a=a}\nfunction qsd(a){this.a=a}\nfunction ssd(a){this.a=a}\nfunction Wsd(a){this.a=a}\nfunction Lsd(a){this.b=a}\nfunction thd(a){this.f=a}\nfunction qtd(a){this.a=a}\nfunction yBd(a){this.a=a}\nfunction GBd(a){this.a=a}\nfunction MBd(a){this.a=a}\nfunction SBd(a){this.a=a}\nfunction iCd(a){this.a=a}\nfunction YMd(a){this.a=a}\nfunction GNd(a){this.a=a}\nfunction EPd(a){this.a=a}\nfunction EQd(a){this.a=a}\nfunction NTd(a){this.a=a}\nfunction qOd(a){this.b=a}\nfunction lVd(a){this.c=a}\nfunction VVd(a){this.e=a}\nfunction iYd(a){this.a=a}\nfunction RYd(a){this.a=a}\nfunction ZYd(a){this.a=a}\nfunction z0d(a){this.a=a}\nfunction O0d(a){this.a=a}\nfunction s0d(a){this.d=a}\nfunction W5d(a){this.a=a}\nfunction cge(a){this.a=a}\nfunction xfe(a){this.e=a}\nfunction Tfd(){this.a=0}\nfunction jkb(){Vjb(this)}\nfunction Rkb(){Ckb(this)}\nfunction Lqb(){Uhb(this)}\nfunction lEb(){kEb(this)}\nfunction A_b(){s_b(this)}\nfunction UQd(){this.c=FQd}\nfunction v6d(a,b){b.Wb(a)}\nfunction moc(a,b){a.b+=b}\nfunction yXb(a){a.b=new Ji}\nfunction vbb(a){return a.e}\nfunction DB(a){return a.a}\nfunction LB(a){return a.a}\nfunction ZB(a){return a.a}\nfunction lC(a){return a.a}\nfunction EC(a){return a.a}\nfunction wC(){return null}\nfunction SB(){return null}\nfunction hcb(){mvd();ovd()}\nfunction zJb(a){a.b.tf(a.e)}\nfunction j5b(a,b){a.b=b-a.b}\nfunction g5b(a,b){a.a=b-a.a}\nfunction PXc(a,b){b.ad(a.a)}\nfunction plc(a,b){G0b(b,a)}\nfunction hp(a,b,c){a.Od(c,b)}\nfunction As(a,b){a.e=b;b.b=a}\nfunction Zl(a){Ql();this.a=a}\nfunction jq(a){Ql();this.a=a}\nfunction sq(a){Ql();this.a=a}\nfunction Fq(a){im();this.a=a}\nfunction Sz(a){Rz();Qz.be(a)}\nfunction gz(){Xy.call(this)}\nfunction xcb(){Xy.call(this)}\nfunction pcb(){gz.call(this)}\nfunction tcb(){gz.call(this)}\nfunction Bdb(){gz.call(this)}\nfunction Vdb(){gz.call(this)}\nfunction Ydb(){gz.call(this)}\nfunction Geb(){gz.call(this)}\nfunction bgb(){gz.call(this)}\nfunction Apb(){gz.call(this)}\nfunction Jpb(){gz.call(this)}\nfunction utb(){gz.call(this)}\nfunction x2c(){gz.call(this)}\nfunction rQd(){this.a=this}\nfunction MPd(){this.Bb|=256}\nfunction tTb(){this.b=new mt}\nfunction fA(){fA=ccb;new Lqb}\nfunction rcb(){pcb.call(this)}\nfunction dCb(a,b){a.length=b}\nfunction Tvb(a,b){Ekb(a.a,b)}\nfunction sKb(a,b){UHb(a.c,b)}\nfunction SMc(a,b){Qqb(a.b,b)}\nfunction vBd(a,b){uAd(a.a,b)}\nfunction wBd(a,b){vAd(a.a,b)}\nfunction GLd(a,b){Uhd(a.e,b)}\nfunction d7d(a){D2d(a.c,a.b)}\nfunction mj(a,b){a.kc().Nb(b)}\nfunction Odb(a){this.a=Tdb(a)}\nfunction Tqb(){this.a=new Lqb}\nfunction gyb(){this.a=new Lqb}\nfunction Wvb(){this.a=new Rkb}\nfunction KFb(){this.a=new Rkb}\nfunction PFb(){this.a=new Rkb}\nfunction FFb(){this.a=new yFb}\nfunction pGb(){this.a=new MFb}\nfunction ZQb(){this.a=new MQb}\nfunction Gxb(){this.a=new Pwb}\nfunction jUb(){this.a=new PTb}\nfunction sDb(){this.a=new oDb}\nfunction zDb(){this.a=new tDb}\nfunction CWb(){this.a=new Rkb}\nfunction HXb(){this.a=new Rkb}\nfunction nYb(){this.a=new Rkb}\nfunction BYb(){this.a=new Rkb}\nfunction fLb(){this.d=new Rkb}\nfunction vYb(){this.a=new Tqb}\nfunction a2b(){this.a=new Lqb}\nfunction wZb(){this.b=new Lqb}\nfunction TCc(){this.b=new Rkb}\nfunction zJc(){this.e=new Rkb}\nfunction uMc(){this.d=new Rkb}\nfunction wdc(){this.a=new xkc}\nfunction vKc(){Rkb.call(this)}\nfunction twb(){Wvb.call(this)}\nfunction oHb(){$Gb.call(this)}\nfunction LXb(){HXb.call(this)}\nfunction L_b(){H_b.call(this)}\nfunction H_b(){A_b.call(this)}\nfunction p0b(){A_b.call(this)}\nfunction s0b(){p0b.call(this)}\nfunction WMc(){VMc.call(this)}\nfunction bNc(){VMc.call(this)}\nfunction EPc(){CPc.call(this)}\nfunction JPc(){CPc.call(this)}\nfunction OPc(){CPc.call(this)}\nfunction w1c(){s1c.call(this)}\nfunction s7c(){Psb.call(this)}\nfunction apd(){Ald.call(this)}\nfunction ppd(){Ald.call(this)}\nfunction lDd(){YCd.call(this)}\nfunction NDd(){YCd.call(this)}\nfunction mFd(){Lqb.call(this)}\nfunction vFd(){Lqb.call(this)}\nfunction GFd(){Lqb.call(this)}\nfunction KPd(){Tqb.call(this)}\nfunction OJd(){hJd.call(this)}\nfunction aQd(){MPd.call(this)}\nfunction SSd(){FId.call(this)}\nfunction rUd(){FId.call(this)}\nfunction oUd(){Lqb.call(this)}\nfunction NYd(){Lqb.call(this)}\nfunction cZd(){Lqb.call(this)}\nfunction R8d(){MGd.call(this)}\nfunction o9d(){MGd.call(this)}\nfunction i9d(){R8d.call(this)}\nfunction hee(){ude.call(this)}\nfunction Dd(a){yd.call(this,a)}\nfunction Hd(a){yd.call(this,a)}\nfunction ph(a){lh.call(this,a)}\nfunction Sh(a){Wc.call(this,a)}\nfunction oi(a){Sh.call(this,a)}\nfunction Ii(a){Wc.call(this,a)}\nfunction Zdd(){this.a=new Psb}\nfunction CPc(){this.a=new Tqb}\nfunction s1c(){this.a=new Lqb}\nfunction QSc(){this.a=new Rkb}\nfunction D2c(){this.j=new Rkb}\nfunction QXc(){this.a=new UXc}\nfunction e_c(){this.a=new d_c}\nfunction YCd(){this.a=new aDd}\nfunction _k(){_k=ccb;$k=new al}\nfunction Lk(){Lk=ccb;Kk=new Mk}\nfunction wb(){wb=ccb;vb=new xb}\nfunction hs(){hs=ccb;gs=new is}\nfunction rs(a){Sh.call(this,a)}\nfunction Gp(a){Sh.call(this,a)}\nfunction xp(a){Lo.call(this,a)}\nfunction Ep(a){Lo.call(this,a)}\nfunction Tp(a){Wn.call(this,a)}\nfunction wx(a){un.call(this,a)}\nfunction ov(a){dv.call(this,a)}\nfunction Mv(a){Br.call(this,a)}\nfunction Ov(a){Br.call(this,a)}\nfunction Lw(a){Br.call(this,a)}\nfunction hz(a){Yy.call(this,a)}\nfunction MB(a){hz.call(this,a)}\nfunction eC(){fC.call(this,{})}\nfunction Ftb(a){Atb();this.a=a}\nfunction zwb(a){a.b=null;a.c=0}\nfunction Vy(a,b){a.e=b;Sy(a,b)}\nfunction LVb(a,b){a.a=b;NVb(a)}\nfunction lIb(a,b,c){a.a[b.g]=c}\nfunction vfd(a,b,c){Dfd(c,a,b)}\nfunction Odc(a,b){rjc(b.i,a.n)}\nfunction Wyc(a,b){Xyc(a).td(b)}\nfunction ERb(a,b){return a*a/b}\nfunction Xr(a,b){return a.g-b.g}\nfunction tC(a){return new TB(a)}\nfunction vC(a){return new yC(a)}\nfunction ocb(a){hz.call(this,a)}\nfunction qcb(a){hz.call(this,a)}\nfunction ucb(a){hz.call(this,a)}\nfunction vcb(a){Yy.call(this,a)}\nfunction fGc(a){LFc();this.a=a}\nfunction c0d(a){kzd();this.a=a}\nfunction bhd(a){Rgd();this.f=a}\nfunction dhd(a){Rgd();this.f=a}\nfunction Cdb(a){hz.call(this,a)}\nfunction Wdb(a){hz.call(this,a)}\nfunction Zdb(a){hz.call(this,a)}\nfunction Feb(a){hz.call(this,a)}\nfunction Heb(a){hz.call(this,a)}\nfunction Ccb(a){return uCb(a),a}\nfunction Edb(a){return uCb(a),a}\nfunction Gdb(a){return uCb(a),a}\nfunction jfb(a){return uCb(a),a}\nfunction tfb(a){return uCb(a),a}\nfunction akb(a){return a.b==a.c}\nfunction Hwb(a){return !!a&&a.b}\nfunction pIb(a){return !!a&&a.k}\nfunction qIb(a){return !!a&&a.j}\nfunction amb(a){uCb(a);this.a=a}\nfunction wVb(a){qVb(a);return a}\nfunction Blb(a){Glb(a,a.length)}\nfunction cgb(a){hz.call(this,a)}\nfunction cqd(a){hz.call(this,a)}\nfunction n8d(a){hz.call(this,a)}\nfunction y2c(a){hz.call(this,a)}\nfunction z2c(a){hz.call(this,a)}\nfunction mde(a){hz.call(this,a)}\nfunction pc(a){qc.call(this,a,0)}\nfunction Ji(){Ki.call(this,12,3)}\nfunction Kz(){Kz=ccb;Jz=new Nz}\nfunction jz(){jz=ccb;iz=new nb}\nfunction KA(){KA=ccb;JA=new MA}\nfunction OB(){OB=ccb;NB=new PB}\nfunction jc(){throw vbb(new bgb)}\nfunction zh(){throw vbb(new bgb)}\nfunction Pi(){throw vbb(new bgb)}\nfunction Pj(){throw vbb(new bgb)}\nfunction Qj(){throw vbb(new bgb)}\nfunction Ym(){throw vbb(new bgb)}\nfunction Gb(){this.a=GD(Qb(She))}\nfunction oy(a){Ql();this.a=Qb(a)}\nfunction Bs(a,b){a.Td(b);b.Sd(a)}\nfunction iw(a,b){a.a.ec().Mc(b)}\nfunction CYb(a,b,c){a.c.lf(b,c)}\nfunction scb(a){qcb.call(this,a)}\nfunction Oeb(a){Wdb.call(this,a)}\nfunction Hfb(){mcb.call(this,'')}\nfunction Ifb(){mcb.call(this,'')}\nfunction Ufb(){mcb.call(this,'')}\nfunction Vfb(){mcb.call(this,'')}\nfunction Xfb(a){qcb.call(this,a)}\nfunction zob(a){lnb.call(this,a)}\nfunction Yob(a){Inb.call(this,a)}\nfunction Gob(a){zob.call(this,a)}\nfunction Mk(){Fk.call(this,null)}\nfunction al(){Fk.call(this,null)}\nfunction Az(){Az=ccb;!!(Rz(),Qz)}\nfunction wrb(){wrb=ccb;vrb=yrb()}\nfunction Mtb(a){return a.a?a.b:0}\nfunction Vtb(a){return a.a?a.b:0}\nfunction Lcb(a,b){return a.a-b.a}\nfunction Wcb(a,b){return a.a-b.a}\nfunction Peb(a,b){return a.a-b.a}\nfunction eCb(a,b){return PC(a,b)}\nfunction GC(a,b){return rdb(a,b)}\nfunction _B(b,a){return a in b.a}\nfunction _Db(a,b){a.f=b;return a}\nfunction ZDb(a,b){a.b=b;return a}\nfunction $Db(a,b){a.c=b;return a}\nfunction aEb(a,b){a.g=b;return a}\nfunction HGb(a,b){a.a=b;return a}\nfunction IGb(a,b){a.f=b;return a}\nfunction JGb(a,b){a.k=b;return a}\nfunction dLb(a,b){a.a=b;return a}\nfunction eLb(a,b){a.e=b;return a}\nfunction zVb(a,b){a.e=b;return a}\nfunction AVb(a,b){a.f=b;return a}\nfunction KOb(a,b){a.b=true;a.d=b}\nfunction DHb(a,b){a.b=new g7c(b)}\nfunction uvb(a,b,c){b.td(a.a[c])}\nfunction zvb(a,b,c){b.we(a.a[c])}\nfunction wJc(a,b){return a.b-b.b}\nfunction kOc(a,b){return a.g-b.g}\nfunction WQc(a,b){return a.s-b.s}\nfunction Lic(a,b){return a?0:b-1}\nfunction SFc(a,b){return a?0:b-1}\nfunction RFc(a,b){return a?b-1:0}\nfunction M2c(a,b){return b.Yf(a)}\nfunction M3c(a,b){a.b=b;return a}\nfunction L3c(a,b){a.a=b;return a}\nfunction N3c(a,b){a.c=b;return a}\nfunction O3c(a,b){a.d=b;return a}\nfunction P3c(a,b){a.e=b;return a}\nfunction Q3c(a,b){a.f=b;return a}\nfunction b4c(a,b){a.a=b;return a}\nfunction c4c(a,b){a.b=b;return a}\nfunction d4c(a,b){a.c=b;return a}\nfunction z5c(a,b){a.c=b;return a}\nfunction y5c(a,b){a.b=b;return a}\nfunction A5c(a,b){a.d=b;return a}\nfunction B5c(a,b){a.e=b;return a}\nfunction C5c(a,b){a.f=b;return a}\nfunction D5c(a,b){a.g=b;return a}\nfunction E5c(a,b){a.a=b;return a}\nfunction F5c(a,b){a.i=b;return a}\nfunction G5c(a,b){a.j=b;return a}\nfunction Vdd(a,b){a.k=b;return a}\nfunction Wdd(a,b){a.j=b;return a}\nfunction ykc(a,b){gkc();F0b(b,a)}\nfunction T$c(a,b,c){R$c(a.a,b,c)}\nfunction RGc(a){cEc.call(this,a)}\nfunction iHc(a){cEc.call(this,a)}\nfunction t7c(a){Qsb.call(this,a)}\nfunction aPb(a){_Ob.call(this,a)}\nfunction Ixd(a){zud.call(this,a)}\nfunction dCd(a){ZBd.call(this,a)}\nfunction fCd(a){ZBd.call(this,a)}\nfunction p_b(){q_b.call(this,'')}\nfunction d7c(){this.a=0;this.b=0}\nfunction aPc(){this.b=0;this.a=0}\nfunction NJd(a,b){a.b=0;DId(a,b)}\nfunction X1d(a,b){a.c=b;a.b=true}\nfunction Oc(a,b){return a.c._b(b)}\nfunction gdb(a){return a.e&&a.e()}\nfunction Vd(a){return !a?null:a.d}\nfunction sn(a,b){return Gv(a.b,b)}\nfunction Fv(a){return !a?null:a.g}\nfunction Kv(a){return !a?null:a.i}\nfunction hdb(a){fdb(a);return a.o}\nfunction Fhd(){Fhd=ccb;Ehd=ond()}\nfunction Hhd(){Hhd=ccb;Ghd=Cod()}\nfunction LFd(){LFd=ccb;KFd=qZd()}\nfunction p8d(){p8d=ccb;o8d=Y9d()}\nfunction r8d(){r8d=ccb;q8d=dae()}\nfunction mvd(){mvd=ccb;lvd=n4c()}\nfunction Srb(){throw vbb(new bgb)}\nfunction enb(){throw vbb(new bgb)}\nfunction fnb(){throw vbb(new bgb)}\nfunction gnb(){throw vbb(new bgb)}\nfunction jnb(){throw vbb(new bgb)}\nfunction Cnb(){throw vbb(new bgb)}\nfunction Uqb(a){this.a=new Mqb(a)}\nfunction tgb(a){lgb();ngb(this,a)}\nfunction Hxb(a){this.a=new Qwb(a)}\nfunction _ub(a,b){while(a.ye(b));}\nfunction Sub(a,b){while(a.sd(b));}\nfunction Bfb(a,b){a.a+=b;return a}\nfunction Cfb(a,b){a.a+=b;return a}\nfunction Ffb(a,b){a.a+=b;return a}\nfunction Lfb(a,b){a.a+=b;return a}\nfunction WAb(a){Tzb(a);return a.a}\nfunction Wsb(a){return a.b!=a.d.c}\nfunction pD(a){return a.l|a.m<<22}\nfunction aIc(a,b){return a.d[b.p]}\nfunction h2c(a,b){return c2c(a,b)}\nfunction cCb(a,b,c){a.splice(b,c)}\nfunction WHb(a){a.c?VHb(a):XHb(a)}\nfunction jVc(a){this.a=0;this.b=a}\nfunction ZUc(){this.a=new L2c(K$)}\nfunction tRc(){this.b=new L2c(h$)}\nfunction Q$c(){this.b=new L2c(J_)}\nfunction d_c(){this.b=new L2c(J_)}\nfunction OCd(){throw vbb(new bgb)}\nfunction PCd(){throw vbb(new bgb)}\nfunction QCd(){throw vbb(new bgb)}\nfunction RCd(){throw vbb(new bgb)}\nfunction SCd(){throw vbb(new bgb)}\nfunction TCd(){throw vbb(new bgb)}\nfunction UCd(){throw vbb(new bgb)}\nfunction VCd(){throw vbb(new bgb)}\nfunction WCd(){throw vbb(new bgb)}\nfunction XCd(){throw vbb(new bgb)}\nfunction ahe(){throw vbb(new utb)}\nfunction bhe(){throw vbb(new utb)}\nfunction Rge(a){this.a=new ege(a)}\nfunction ege(a){dge(this,a,Vee())}\nfunction Fhe(a){return !a||Ehe(a)}\nfunction dde(a){return $ce[a]!=-1}\nfunction Iz(){xz!=0&&(xz=0);zz=-1}\nfunction Ybb(){Wbb==null&&(Wbb=[])}\nfunction ONd(a,b){Rxd(ZKd(a.a),b)}\nfunction TNd(a,b){Rxd(ZKd(a.a),b)}\nfunction Yf(a,b){zf.call(this,a,b)}\nfunction $f(a,b){Yf.call(this,a,b)}\nfunction Hf(a,b){this.b=a;this.c=b}\nfunction rk(a,b){this.b=a;this.a=b}\nfunction ek(a,b){this.a=a;this.b=b}\nfunction gk(a,b){this.a=a;this.b=b}\nfunction pk(a,b){this.a=a;this.b=b}\nfunction yk(a,b){this.a=a;this.b=b}\nfunction Ak(a,b){this.a=a;this.b=b}\nfunction Fj(a,b){this.a=a;this.b=b}\nfunction _j(a,b){this.a=a;this.b=b}\nfunction dr(a,b){this.a=a;this.b=b}\nfunction zr(a,b){this.b=a;this.a=b}\nfunction So(a,b){this.b=a;this.a=b}\nfunction qp(a,b){this.b=a;this.a=b}\nfunction $q(a,b){this.b=a;this.a=b}\nfunction $r(a,b){this.f=a;this.g=b}\nfunction ne(a,b){this.e=a;this.d=b}\nfunction Wo(a,b){this.g=a;this.i=b}\nfunction bu(a,b){this.a=a;this.b=b}\nfunction qu(a,b){this.a=a;this.f=b}\nfunction qv(a,b){this.b=a;this.c=b}\nfunction ox(a,b){this.a=a;this.b=b}\nfunction Px(a,b){this.a=a;this.b=b}\nfunction mC(a,b){this.a=a;this.b=b}\nfunction Wc(a){Lb(a.dc());this.c=a}\nfunction rf(a){this.b=BD(Qb(a),83)}\nfunction Zv(a){this.a=BD(Qb(a),83)}\nfunction dv(a){this.a=BD(Qb(a),15)}\nfunction $u(a){this.a=BD(Qb(a),15)}\nfunction Br(a){this.b=BD(Qb(a),47)}\nfunction eB(){this.q=new $wnd.Date}\nfunction Zfb(){Zfb=ccb;Yfb=new jcb}\nfunction Emb(){Emb=ccb;Dmb=new Fmb}\nfunction Vhb(a){return a.f.c+a.g.c}\nfunction hnb(a,b){return a.b.Hc(b)}\nfunction inb(a,b){return a.b.Ic(b)}\nfunction knb(a,b){return a.b.Qc(b)}\nfunction Dob(a,b){return a.b.Hc(b)}\nfunction dob(a,b){return a.c.uc(b)}\nfunction Rqb(a,b){return a.a._b(b)}\nfunction fob(a,b){return pb(a.c,b)}\nfunction jt(a,b){return Mhb(a.b,b)}\nfunction Lp(a,b){return a>b&&b0}\nfunction Gbb(a,b){return ybb(a,b)<0}\nfunction Crb(a,b){return a.a.get(b)}\nfunction icb(b,a){return a.split(b)}\nfunction Vrb(a,b){return Mhb(a.e,b)}\nfunction Nvb(a){return uCb(a),false}\nfunction Rub(a){Kub.call(this,a,21)}\nfunction wcb(a,b){Zy.call(this,a,b)}\nfunction mxb(a,b){$r.call(this,a,b)}\nfunction Gyb(a,b){$r.call(this,a,b)}\nfunction zx(a){yx();Wn.call(this,a)}\nfunction zlb(a,b){Dlb(a,a.length,b)}\nfunction Alb(a,b){Flb(a,a.length,b)}\nfunction ABb(a,b,c){b.ud(a.a.Ge(c))}\nfunction uBb(a,b,c){b.we(a.a.Fe(c))}\nfunction GBb(a,b,c){b.td(a.a.Kb(c))}\nfunction Zq(a,b,c){a.Mb(c)&&b.td(c)}\nfunction aCb(a,b,c){a.splice(b,0,c)}\nfunction lDb(a,b){return uqb(a.e,b)}\nfunction pjb(a,b){this.d=a;this.e=b}\nfunction kqb(a,b){this.b=a;this.a=b}\nfunction VBb(a,b){this.b=a;this.a=b}\nfunction BEb(a,b){this.b=a;this.a=b}\nfunction sBb(a,b){this.a=a;this.b=b}\nfunction yBb(a,b){this.a=a;this.b=b}\nfunction EBb(a,b){this.a=a;this.b=b}\nfunction KBb(a,b){this.a=a;this.b=b}\nfunction aDb(a,b){this.a=a;this.b=b}\nfunction tMb(a,b){this.b=a;this.a=b}\nfunction oOb(a,b){this.b=a;this.a=b}\nfunction SOb(a,b){$r.call(this,a,b)}\nfunction SMb(a,b){$r.call(this,a,b)}\nfunction NEb(a,b){$r.call(this,a,b)}\nfunction VEb(a,b){$r.call(this,a,b)}\nfunction sFb(a,b){$r.call(this,a,b)}\nfunction hHb(a,b){$r.call(this,a,b)}\nfunction OHb(a,b){$r.call(this,a,b)}\nfunction FIb(a,b){$r.call(this,a,b)}\nfunction wLb(a,b){$r.call(this,a,b)}\nfunction YRb(a,b){$r.call(this,a,b)}\nfunction zTb(a,b){$r.call(this,a,b)}\nfunction rUb(a,b){$r.call(this,a,b)}\nfunction oWb(a,b){$r.call(this,a,b)}\nfunction SXb(a,b){$r.call(this,a,b)}\nfunction k0b(a,b){$r.call(this,a,b)}\nfunction z5b(a,b){$r.call(this,a,b)}\nfunction T8b(a,b){$r.call(this,a,b)}\nfunction ibc(a,b){$r.call(this,a,b)}\nfunction Cec(a,b){this.a=a;this.b=b}\nfunction rfc(a,b){this.a=a;this.b=b}\nfunction Rfc(a,b){this.a=a;this.b=b}\nfunction Tfc(a,b){this.a=a;this.b=b}\nfunction bgc(a,b){this.a=a;this.b=b}\nfunction ngc(a,b){this.a=a;this.b=b}\nfunction Qhc(a,b){this.a=a;this.b=b}\nfunction $hc(a,b){this.a=a;this.b=b}\nfunction Z0b(a,b){this.a=a;this.b=b}\nfunction ZVb(a,b){this.b=a;this.a=b}\nfunction Dfc(a,b){this.b=a;this.a=b}\nfunction dgc(a,b){this.b=a;this.a=b}\nfunction Bmc(a,b){this.b=a;this.a=b}\nfunction cWb(a,b){this.c=a;this.d=b}\nfunction I$b(a,b){this.e=a;this.d=b}\nfunction Unc(a,b){this.a=a;this.b=b}\nfunction Oic(a,b){this.b=b;this.c=a}\nfunction Bjc(a,b){$r.call(this,a,b)}\nfunction Yjc(a,b){$r.call(this,a,b)}\nfunction Gkc(a,b){$r.call(this,a,b)}\nfunction Bpc(a,b){$r.call(this,a,b)}\nfunction Jpc(a,b){$r.call(this,a,b)}\nfunction Tpc(a,b){$r.call(this,a,b)}\nfunction cqc(a,b){$r.call(this,a,b)}\nfunction oqc(a,b){$r.call(this,a,b)}\nfunction yqc(a,b){$r.call(this,a,b)}\nfunction Hqc(a,b){$r.call(this,a,b)}\nfunction Uqc(a,b){$r.call(this,a,b)}\nfunction arc(a,b){$r.call(this,a,b)}\nfunction mrc(a,b){$r.call(this,a,b)}\nfunction zrc(a,b){$r.call(this,a,b)}\nfunction Prc(a,b){$r.call(this,a,b)}\nfunction Yrc(a,b){$r.call(this,a,b)}\nfunction fsc(a,b){$r.call(this,a,b)}\nfunction nsc(a,b){$r.call(this,a,b)}\nfunction nzc(a,b){$r.call(this,a,b)}\nfunction zzc(a,b){$r.call(this,a,b)}\nfunction Kzc(a,b){$r.call(this,a,b)}\nfunction Xzc(a,b){$r.call(this,a,b)}\nfunction Dtc(a,b){$r.call(this,a,b)}\nfunction lAc(a,b){$r.call(this,a,b)}\nfunction uAc(a,b){$r.call(this,a,b)}\nfunction CAc(a,b){$r.call(this,a,b)}\nfunction LAc(a,b){$r.call(this,a,b)}\nfunction UAc(a,b){$r.call(this,a,b)}\nfunction aBc(a,b){$r.call(this,a,b)}\nfunction uBc(a,b){$r.call(this,a,b)}\nfunction DBc(a,b){$r.call(this,a,b)}\nfunction MBc(a,b){$r.call(this,a,b)}\nfunction sGc(a,b){$r.call(this,a,b)}\nfunction VIc(a,b){$r.call(this,a,b)}\nfunction EIc(a,b){this.b=a;this.a=b}\nfunction qKc(a,b){this.a=a;this.b=b}\nfunction GKc(a,b){this.a=a;this.b=b}\nfunction lLc(a,b){this.a=a;this.b=b}\nfunction mMc(a,b){this.a=a;this.b=b}\nfunction fMc(a,b){$r.call(this,a,b)}\nfunction ZLc(a,b){$r.call(this,a,b)}\nfunction ZMc(a,b){this.b=a;this.d=b}\nfunction IOc(a,b){$r.call(this,a,b)}\nfunction GQc(a,b){$r.call(this,a,b)}\nfunction PQc(a,b){this.a=a;this.b=b}\nfunction RQc(a,b){this.a=a;this.b=b}\nfunction ARc(a,b){$r.call(this,a,b)}\nfunction rSc(a,b){$r.call(this,a,b)}\nfunction TTc(a,b){$r.call(this,a,b)}\nfunction _Tc(a,b){$r.call(this,a,b)}\nfunction RUc(a,b){$r.call(this,a,b)}\nfunction uVc(a,b){$r.call(this,a,b)}\nfunction hWc(a,b){$r.call(this,a,b)}\nfunction rWc(a,b){$r.call(this,a,b)}\nfunction kXc(a,b){$r.call(this,a,b)}\nfunction uXc(a,b){$r.call(this,a,b)}\nfunction AYc(a,b){$r.call(this,a,b)}\nfunction l$c(a,b){$r.call(this,a,b)}\nfunction Z$c(a,b){$r.call(this,a,b)}\nfunction D_c(a,b){$r.call(this,a,b)}\nfunction O_c(a,b){$r.call(this,a,b)}\nfunction c1c(a,b){$r.call(this,a,b)}\nfunction cVb(a,b){return uqb(a.c,b)}\nfunction nnc(a,b){return uqb(b.b,a)}\nfunction x1c(a,b){return -a.b.Je(b)}\nfunction D3c(a,b){return uqb(a.g,b)}\nfunction O5c(a,b){$r.call(this,a,b)}\nfunction a6c(a,b){$r.call(this,a,b)}\nfunction m2c(a,b){this.a=a;this.b=b}\nfunction W2c(a,b){this.a=a;this.b=b}\nfunction f7c(a,b){this.a=a;this.b=b}\nfunction G7c(a,b){$r.call(this,a,b)}\nfunction j8c(a,b){$r.call(this,a,b)}\nfunction iad(a,b){$r.call(this,a,b)}\nfunction rad(a,b){$r.call(this,a,b)}\nfunction Bad(a,b){$r.call(this,a,b)}\nfunction Nad(a,b){$r.call(this,a,b)}\nfunction ibd(a,b){$r.call(this,a,b)}\nfunction tbd(a,b){$r.call(this,a,b)}\nfunction Ibd(a,b){$r.call(this,a,b)}\nfunction Ubd(a,b){$r.call(this,a,b)}\nfunction gcd(a,b){$r.call(this,a,b)}\nfunction scd(a,b){$r.call(this,a,b)}\nfunction Ycd(a,b){$r.call(this,a,b)}\nfunction udd(a,b){$r.call(this,a,b)}\nfunction Jdd(a,b){$r.call(this,a,b)}\nfunction Eed(a,b){$r.call(this,a,b)}\nfunction bfd(a,b){this.a=a;this.b=b}\nfunction dfd(a,b){this.a=a;this.b=b}\nfunction ffd(a,b){this.a=a;this.b=b}\nfunction Kfd(a,b){this.a=a;this.b=b}\nfunction Mfd(a,b){this.a=a;this.b=b}\nfunction Ofd(a,b){this.a=a;this.b=b}\nfunction vgd(a,b){this.a=a;this.b=b}\nfunction qgd(a,b){$r.call(this,a,b)}\nfunction jrd(a,b){this.a=a;this.b=b}\nfunction krd(a,b){this.a=a;this.b=b}\nfunction mrd(a,b){this.a=a;this.b=b}\nfunction nrd(a,b){this.a=a;this.b=b}\nfunction qrd(a,b){this.a=a;this.b=b}\nfunction rrd(a,b){this.a=a;this.b=b}\nfunction srd(a,b){this.b=a;this.a=b}\nfunction trd(a,b){this.b=a;this.a=b}\nfunction Drd(a,b){this.b=a;this.a=b}\nfunction Frd(a,b){this.b=a;this.a=b}\nfunction Hrd(a,b){this.a=a;this.b=b}\nfunction Jrd(a,b){this.a=a;this.b=b}\nfunction Ord(a,b){Xqd(a.a,BD(b,56))}\nfunction BIc(a,b){gIc(a.a,BD(b,11))}\nfunction fIc(a,b){FHc();return b!=a}\nfunction Arb(){wrb();return new vrb}\nfunction CMc(){wMc();this.b=new Tqb}\nfunction NNc(){FNc();this.a=new Tqb}\nfunction eCc(){ZBc();aCc.call(this)}\nfunction Dsd(a,b){$r.call(this,a,b)}\nfunction Urd(a,b){this.a=a;this.b=b}\nfunction Wrd(a,b){this.a=a;this.b=b}\nfunction kGd(a,b){this.a=a;this.b=b}\nfunction nGd(a,b){this.a=a;this.b=b}\nfunction bUd(a,b){this.a=a;this.b=b}\nfunction zVd(a,b){this.a=a;this.b=b}\nfunction C1d(a,b){this.d=a;this.b=b}\nfunction MLd(a,b){this.d=a;this.e=b}\nfunction Wud(a,b){this.f=a;this.c=b}\nfunction f7d(a,b){this.b=a;this.c=b}\nfunction _zd(a,b){this.i=a;this.g=b}\nfunction Y1d(a,b){this.e=a;this.a=b}\nfunction c8d(a,b){this.a=a;this.b=b}\nfunction $Id(a,b){a.i=null;_Id(a,b)}\nfunction ivd(a,b){!!a&&Rhb(cvd,a,b)}\nfunction hCd(a,b){return qAd(a.a,b)}\nfunction e7d(a){return R2d(a.c,a.b)}\nfunction Wd(a){return !a?null:a.dd()}\nfunction PD(a){return a==null?null:a}\nfunction KD(a){return typeof a===Khe}\nfunction LD(a){return typeof a===Lhe}\nfunction ND(a){return typeof a===Mhe}\nfunction Em(a,b){return a.Hd().Xb(b)}\nfunction Kq(a,b){return hr(a.Kc(),b)}\nfunction Bbb(a,b){return ybb(a,b)==0}\nfunction Ebb(a,b){return ybb(a,b)>=0}\nfunction Kbb(a,b){return ybb(a,b)!=0}\nfunction Jdb(a){return ''+(uCb(a),a)}\nfunction pfb(a,b){return a.substr(b)}\nfunction cg(a){ag(a);return a.d.gc()}\nfunction oVb(a){pVb(a,a.c);return a}\nfunction RD(a){CCb(a==null);return a}\nfunction Dfb(a,b){a.a+=''+b;return a}\nfunction Efb(a,b){a.a+=''+b;return a}\nfunction Nfb(a,b){a.a+=''+b;return a}\nfunction Pfb(a,b){a.a+=''+b;return a}\nfunction Qfb(a,b){a.a+=''+b;return a}\nfunction Mfb(a,b){return a.a+=''+b,a}\nfunction Esb(a,b){Gsb(a,b,a.a,a.a.a)}\nfunction Fsb(a,b){Gsb(a,b,a.c.b,a.c)}\nfunction Mqd(a,b,c){Rpd(b,kqd(a,c))}\nfunction Nqd(a,b,c){Rpd(b,kqd(a,c))}\nfunction Dhe(a,b){Hhe(new Fyd(a),b)}\nfunction cB(a,b){a.q.setTime(Sbb(b))}\nfunction fvb(a,b){bvb.call(this,a,b)}\nfunction jvb(a,b){bvb.call(this,a,b)}\nfunction nvb(a,b){bvb.call(this,a,b)}\nfunction Nqb(a){Uhb(this);Ld(this,a)}\nfunction wmb(a){tCb(a,0);return null}\nfunction X6c(a){a.a=0;a.b=0;return a}\nfunction f3c(a,b){a.a=b.g+1;return a}\nfunction PJc(a,b){return a.j[b.p]==2}\nfunction _Pb(a){return VPb(BD(a,79))}\nfunction yJb(){yJb=ccb;xJb=as(wJb())}\nfunction Y8b(){Y8b=ccb;X8b=as(W8b())}\nfunction mt(){this.b=new Mqb(Cv(12))}\nfunction Otb(){this.b=0;this.a=false}\nfunction Wtb(){this.b=0;this.a=false}\nfunction sl(a){this.a=a;ol.call(this)}\nfunction vl(a){this.a=a;ol.call(this)}\nfunction Nsd(a,b){Msd.call(this,a,b)}\nfunction $zd(a,b){Cyd.call(this,a,b)}\nfunction nNd(a,b){_zd.call(this,a,b)}\nfunction s4d(a,b){p4d.call(this,a,b)}\nfunction w4d(a,b){qRd.call(this,a,b)}\nfunction rEd(a,b){pEd();Rhb(oEd,a,b)}\nfunction lcb(a,b){return qfb(a.a,0,b)}\nfunction ww(a,b){return a.a.a.a.cc(b)}\nfunction mb(a,b){return PD(a)===PD(b)}\nfunction Mdb(a,b){return Kdb(a.a,b.a)}\nfunction $db(a,b){return beb(a.a,b.a)}\nfunction seb(a,b){return ueb(a.a,b.a)}\nfunction hfb(a,b){return a.indexOf(b)}\nfunction Ny(a,b){return a==b?0:a?1:-1}\nfunction kB(a){return a<10?'0'+a:''+a}\nfunction Mq(a){return Qb(a),new sl(a)}\nfunction SC(a){return TC(a.l,a.m,a.h)}\nfunction Hdb(a){return QD((uCb(a),a))}\nfunction Idb(a){return QD((uCb(a),a))}\nfunction NIb(a,b){return beb(a.g,b.g)}\nfunction Fbb(a){return typeof a===Lhe}\nfunction mWb(a){return a==hWb||a==kWb}\nfunction nWb(a){return a==hWb||a==iWb}\nfunction G1b(a){return Jkb(a.b.b,a,0)}\nfunction lrb(a){this.a=Arb();this.b=a}\nfunction Frb(a){this.a=Arb();this.b=a}\nfunction swb(a,b){Ekb(a.a,b);return b}\nfunction Z1c(a,b){Ekb(a.c,b);return a}\nfunction E2c(a,b){d3c(a.a,b);return a}\nfunction _gc(a,b){Hgc();return b.a+=a}\nfunction bhc(a,b){Hgc();return b.a+=a}\nfunction ahc(a,b){Hgc();return b.c+=a}\nfunction Nlb(a,b){Klb(a,0,a.length,b)}\nfunction zsb(){Wqb.call(this,new $rb)}\nfunction I_b(){B_b.call(this,0,0,0,0)}\nfunction I6c(){J6c.call(this,0,0,0,0)}\nfunction g7c(a){this.a=a.a;this.b=a.b}\nfunction fad(a){return a==aad||a==bad}\nfunction gad(a){return a==dad||a==_9c}\nfunction Jzc(a){return a==Fzc||a==Ezc}\nfunction fcd(a){return a!=bcd&&a!=ccd}\nfunction oid(a){return a.Lg()&&a.Mg()}\nfunction Gfd(a){return Kkd(BD(a,118))}\nfunction k3c(a){return d3c(new j3c,a)}\nfunction y2d(a,b){return new p4d(b,a)}\nfunction z2d(a,b){return new p4d(b,a)}\nfunction ukd(a,b,c){vkd(a,b);wkd(a,c)}\nfunction _kd(a,b,c){cld(a,b);ald(a,c)}\nfunction bld(a,b,c){dld(a,b);eld(a,c)}\nfunction gmd(a,b,c){hmd(a,b);imd(a,c)}\nfunction nmd(a,b,c){omd(a,b);pmd(a,c)}\nfunction iKd(a,b){$Jd(a,b);_Jd(a,a.D)}\nfunction _ud(a){Wud.call(this,a,true)}\nfunction Xg(a,b,c){Vg.call(this,a,b,c)}\nfunction Ygb(a){Hgb();Zgb.call(this,a)}\nfunction rxb(){mxb.call(this,'Head',1)}\nfunction wxb(){mxb.call(this,'Tail',3)}\nfunction Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)}\nfunction Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)}\nfunction MGb(a){Hkb(a.xf(),new QGb(a))}\nfunction xtb(a){return a!=null?tb(a):0}\nfunction b2b(a,b){return ntd(b,mpd(a))}\nfunction c2b(a,b){return ntd(b,mpd(a))}\nfunction dAb(a,b){return a[a.length]=b}\nfunction gAb(a,b){return a[a.length]=b}\nfunction Vq(a){return lr(a.b.Kc(),a.a)}\nfunction dqd(a,b){return _o(qo(a.d),b)}\nfunction eqd(a,b){return _o(qo(a.g),b)}\nfunction fqd(a,b){return _o(qo(a.j),b)}\nfunction Osd(a,b){Msd.call(this,a.b,b)}\nfunction q0b(a){B_b.call(this,a,a,a,a)}\nfunction HOb(a){a.b&&LOb(a);return a.a}\nfunction IOb(a){a.b&&LOb(a);return a.c}\nfunction uyb(a,b){if(lyb){return}a.b=b}\nfunction lzd(a,b,c){NC(a,b,c);return c}\nfunction mBc(a,b,c){NC(a.c[b.g],b.g,c)}\nfunction _Hd(a,b,c){BD(a.c,69).Xh(b,c)}\nfunction wfd(a,b,c){bld(c,c.i+a,c.j+b)}\nfunction UOd(a,b){wtd(VKd(a.a),XOd(b))}\nfunction bTd(a,b){wtd(QSd(a.a),eTd(b))}\nfunction Lge(a){wfe();xfe.call(this,a)}\nfunction CAd(a){return a==null?0:tb(a)}\nfunction fNc(){fNc=ccb;eNc=new Rpb(v1)}\nfunction h0d(){h0d=ccb;new i0d;new Rkb}\nfunction i0d(){new Lqb;new Lqb;new Lqb}\nfunction GA(){GA=ccb;fA();FA=new Lqb}\nfunction Iy(){Iy=ccb;$wnd.Math.log(2)}\nfunction UVd(){UVd=ccb;TVd=(AFd(),zFd)}\nfunction _ge(){throw vbb(new cgb(Cxe))}\nfunction ohe(){throw vbb(new cgb(Cxe))}\nfunction che(){throw vbb(new cgb(Dxe))}\nfunction rhe(){throw vbb(new cgb(Dxe))}\nfunction Mg(a){this.a=a;Gg.call(this,a)}\nfunction up(a){this.a=a;rf.call(this,a)}\nfunction Bp(a){this.a=a;rf.call(this,a)}\nfunction Okb(a,b){Mlb(a.c,a.c.length,b)}\nfunction llb(a){return a.ab?1:0}\nfunction Deb(a,b){return ybb(a,b)>0?a:b}\nfunction TC(a,b,c){return {l:a,m:b,h:c}}\nfunction Ctb(a,b){a.a!=null&&BIc(b,a.a)}\nfunction Csb(a){a.a=new jtb;a.c=new jtb}\nfunction hDb(a){this.b=a;this.a=new Rkb}\nfunction dOb(a){this.b=new pOb;this.a=a}\nfunction q_b(a){n_b.call(this);this.a=a}\nfunction txb(){mxb.call(this,'Range',2)}\nfunction bUb(){ZTb();this.a=new L2c(zP)}\nfunction Bh(a,b){Qb(b);Ah(a).Jc(new Vw)}\nfunction fKc(a,b){FJc();return b.n.b+=a}\nfunction Tgc(a,b,c){return Rhb(a.g,c,b)}\nfunction LJc(a,b,c){return Rhb(a.k,c,b)}\nfunction r1c(a,b){return Rhb(a.a,b.a,b)}\nfunction jBc(a,b,c){return hBc(b,c,a.c)}\nfunction E6c(a){return new f7c(a.c,a.d)}\nfunction F6c(a){return new f7c(a.c,a.d)}\nfunction R6c(a){return new f7c(a.a,a.b)}\nfunction CQd(a,b){return hA(a.a,b,null)}\nfunction fec(a){QZb(a,null);RZb(a,null)}\nfunction AOc(a){BOc(a,null);COc(a,null)}\nfunction u4d(){qRd.call(this,null,null)}\nfunction y4d(){RRd.call(this,null,null)}\nfunction a7d(a){this.a=a;Lqb.call(this)}\nfunction Pp(a){this.b=(mmb(),new iob(a))}\nfunction Py(a){a.j=KC(VI,nie,310,0,0,1)}\nfunction oAd(a,b,c){a.c.Vc(b,BD(c,133))}\nfunction GAd(a,b,c){a.c.ji(b,BD(c,133))}\nfunction JLd(a,b){Uxd(a);a.Gc(BD(b,15))}\nfunction b7d(a,b){return t2d(a.c,a.b,b)}\nfunction Bv(a,b){return new Qv(a.Kc(),b)}\nfunction Lq(a,b){return rr(a.Kc(),b)!=-1}\nfunction Sqb(a,b){return a.a.Bc(b)!=null}\nfunction pr(a){return a.Ob()?a.Pb():null}\nfunction yfb(a){return zfb(a,0,a.length)}\nfunction JD(a,b){return a!=null&&AD(a,b)}\nfunction $A(a,b){a.q.setHours(b);YA(a,b)}\nfunction Yrb(a,b){if(a.c){jsb(b);isb(b)}}\nfunction nk(a,b,c){BD(a.Kb(c),164).Nb(b)}\nfunction RJc(a,b,c){SJc(a,b,c);return c}\nfunction Eub(a,b,c){a.a=b^1502;a.b=c^kke}\nfunction xHb(a,b,c){return a.a[b.g][c.g]}\nfunction REc(a,b){return a.a[b.c.p][b.p]}\nfunction aEc(a,b){return a.e[b.c.p][b.p]}\nfunction tEc(a,b){return a.c[b.c.p][b.p]}\nfunction OJc(a,b){return a.j[b.p]=aKc(b)}\nfunction k5c(a,b){return cfb(a.f,b.tg())}\nfunction Isd(a,b){return cfb(a.b,b.tg())}\nfunction Sfd(a,b){return a.a0?b*b/a:b*b*100}\nfunction CRb(a,b){return a>0?b/(a*a):b*100}\nfunction G2c(a,b,c){return Ekb(b,I2c(a,c))}\nfunction t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)}\nfunction St(a,b,c){var d;d=a.Zc(b);d.Rb(c)}\nfunction O6c(a,b,c){a.a+=b;a.b+=c;return a}\nfunction Z6c(a,b,c){a.a*=b;a.b*=c;return a}\nfunction b7c(a,b,c){a.a-=b;a.b-=c;return a}\nfunction a7c(a,b){a.a=b.a;a.b=b.b;return a}\nfunction V6c(a){a.a=-a.a;a.b=-a.b;return a}\nfunction Dic(a){this.c=a;this.a=1;this.b=1}\nfunction xed(a){this.c=a;dld(a,0);eld(a,0)}\nfunction u7c(a){Psb.call(this);n7c(this,a)}\nfunction AXb(a){xXb();yXb(this);this.mf(a)}\nfunction GRd(a,b){nRd();qRd.call(this,a,b)}\nfunction dSd(a,b){LRd();RRd.call(this,a,b)}\nfunction hSd(a,b){LRd();RRd.call(this,a,b)}\nfunction fSd(a,b){LRd();dSd.call(this,a,b)}\nfunction sId(a,b,c){dId.call(this,a,b,c,2)}\nfunction zXd(a,b){UVd();nXd.call(this,a,b)}\nfunction BXd(a,b){UVd();zXd.call(this,a,b)}\nfunction DXd(a,b){UVd();zXd.call(this,a,b)}\nfunction FXd(a,b){UVd();DXd.call(this,a,b)}\nfunction PXd(a,b){UVd();nXd.call(this,a,b)}\nfunction RXd(a,b){UVd();PXd.call(this,a,b)}\nfunction XXd(a,b){UVd();nXd.call(this,a,b)}\nfunction pAd(a,b){return a.c.Fc(BD(b,133))}\nfunction w1d(a,b,c){return V1d(p1d(a,b),c)}\nfunction N2d(a,b,c){return b.Qk(a.e,a.c,c)}\nfunction P2d(a,b,c){return b.Rk(a.e,a.c,c)}\nfunction a3d(a,b){return xid(a.e,BD(b,49))}\nfunction aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))}\nfunction TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))}\nfunction ypb(a,b){b.$modCount=a.$modCount}\nfunction MUc(){MUc=ccb;LUc=new Lsd('root')}\nfunction LCd(){LCd=ccb;KCd=new lDd;new NDd}\nfunction KVc(){this.a=new Hp;this.b=new Hp}\nfunction FUd(){hJd.call(this);this.Bb|=Tje}\nfunction t_c(){$r.call(this,'GROW_TREE',0)}\nfunction C9d(a){return a==null?null:cde(a)}\nfunction G9d(a){return a==null?null:jde(a)}\nfunction J9d(a){return a==null?null:fcb(a)}\nfunction K9d(a){return a==null?null:fcb(a)}\nfunction fdb(a){if(a.o!=null){return}vdb(a)}\nfunction DD(a){CCb(a==null||KD(a));return a}\nfunction ED(a){CCb(a==null||LD(a));return a}\nfunction GD(a){CCb(a==null||ND(a));return a}\nfunction gB(a){this.q=new $wnd.Date(Sbb(a))}\nfunction Mf(a,b){this.c=a;ne.call(this,a,b)}\nfunction Sf(a,b){this.a=a;Mf.call(this,a,b)}\nfunction Hg(a,b){this.d=a;Dg(this);this.b=b}\nfunction bAb(a,b){Vzb.call(this,a);this.a=b}\nfunction vAb(a,b){Vzb.call(this,a);this.a=b}\nfunction sNb(a){pNb.call(this,0,0);this.f=a}\nfunction Vg(a,b,c){dg.call(this,a,b,c,null)}\nfunction Yg(a,b,c){dg.call(this,a,b,c,null)}\nfunction Pxb(a,b,c){return a.ue(b,c)<=0?c:b}\nfunction Qxb(a,b,c){return a.ue(b,c)<=0?b:c}\nfunction g4c(a,b){return BD(Wrb(a.b,b),149)}\nfunction i4c(a,b){return BD(Wrb(a.c,b),229)}\nfunction wic(a){return BD(Ikb(a.a,a.b),287)}\nfunction B6c(a){return new f7c(a.c,a.d+a.a)}\nfunction eLc(a){return FJc(),Jzc(BD(a,197))}\nfunction $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))}\nfunction fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)}\nfunction qyb(a,b){if(lyb){return}Ekb(a.a,b)}\nfunction F2b(a,b){x2b();return f_b(b.d.i,a)}\nfunction _9b(a,b){I9b();return new gac(b,a)}\nfunction _Hb(a,b){ytb(b,lle);a.f=b;return a}\nfunction Kld(a,b,c){c=_hd(a,b,3,c);return c}\nfunction bmd(a,b,c){c=_hd(a,b,6,c);return c}\nfunction kpd(a,b,c){c=_hd(a,b,9,c);return c}\nfunction Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)}\nfunction Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))}\nfunction bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)}\nfunction c7d(a,b,c){return C2d(a.c,a.b,b,c)}\nfunction DAd(a,b){return (b&Ohe)%a.d.length}\nfunction Msd(a,b){Lsd.call(this,a);this.a=b}\nfunction uVd(a,b){lVd.call(this,a);this.a=b}\nfunction sYd(a,b){lVd.call(this,a);this.a=b}\nfunction zyd(a,b){this.c=a;zud.call(this,b)}\nfunction YOd(a,b){this.a=a;qOd.call(this,b)}\nfunction fTd(a,b){this.a=a;qOd.call(this,b)}\nfunction Xp(a){this.a=(Xj(a,Jie),new Skb(a))}\nfunction cq(a){this.a=(Xj(a,Jie),new Skb(a))}\nfunction LA(a){!a.a&&(a.a=new VA);return a.a}\nfunction XMb(a){if(a>8){return 0}return a+1}\nfunction Ecb(a,b){Bcb();return a==b?0:a?1:-1}\nfunction Opb(a,b,c){return Npb(a,BD(b,22),c)}\nfunction Bz(a,b,c){return a.apply(b,c);var d}\nfunction Sfb(a,b,c){a.a+=zfb(b,0,c);return a}\nfunction ijb(a,b){var c;c=a.e;a.e=b;return c}\nfunction trb(a,b){var c;c=a[hke];c.call(a,b)}\nfunction urb(a,b){var c;c=a[hke];c.call(a,b)}\nfunction Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1}\nfunction Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d}\nfunction _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)}\nfunction _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))}\nfunction Bxb(a,b){return Vd(Cwb(a.a,b,true))}\nfunction Cxb(a,b){return Vd(Dwb(a.a,b,true))}\nfunction _Bb(a,b){return eCb(new Array(b),a)}\nfunction HD(a){return String.fromCharCode(a)}\nfunction mz(a){return a==null?null:a.message}\nfunction gRb(){this.a=new Rkb;this.b=new Rkb}\nfunction iTb(){this.a=new MQb;this.b=new tTb}\nfunction tDb(){this.b=new d7c;this.c=new Rkb}\nfunction _Qb(){this.d=new d7c;this.e=new d7c}\nfunction n_b(){this.n=new d7c;this.o=new d7c}\nfunction $Gb(){this.n=new p0b;this.i=new I6c}\nfunction sec(){this.a=new Umc;this.b=new mnc}\nfunction NIc(){this.a=new Rkb;this.d=new Rkb}\nfunction LDc(){this.b=new Tqb;this.a=new Tqb}\nfunction hSc(){this.b=new Lqb;this.a=new Lqb}\nfunction HRc(){this.b=new tRc;this.a=new hRc}\nfunction aHb(){$Gb.call(this);this.a=new d7c}\nfunction Ywb(a){Zwb.call(this,a,(lxb(),hxb))}\nfunction J_b(a,b,c,d){B_b.call(this,a,b,c,d)}\nfunction sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))}\nfunction tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))}\nfunction Tod(a,b,c){c=_hd(a,b,11,c);return c}\nfunction P6c(a,b){a.a+=b.a;a.b+=b.b;return a}\nfunction c7c(a,b){a.a-=b.a;a.b-=b.b;return a}\nfunction u7b(a,b){return a.n.a=(uCb(b),b)+10}\nfunction v7b(a,b){return a.n.a=(uCb(b),b)+10}\nfunction dLd(a,b){return b==a||pud(UKd(b),a)}\nfunction PYd(a,b){return Rhb(a.a,b,'')==null}\nfunction E2b(a,b){x2b();return !f_b(b.d.i,a)}\nfunction rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)}\nfunction h1d(a,b){var c;c=b.Hh(a.a);return c}\nfunction Cyd(a,b){qcb.call(this,gve+a+mue+b)}\nfunction gUd(a,b,c,d){cUd.call(this,a,b,c,d)}\nfunction Q4d(a,b,c,d){cUd.call(this,a,b,c,d)}\nfunction U4d(a,b,c,d){Q4d.call(this,a,b,c,d)}\nfunction n5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction p5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction v5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction t5d(a,b,c,d){p5d.call(this,a,b,c,d)}\nfunction A5d(a,b,c,d){p5d.call(this,a,b,c,d)}\nfunction y5d(a,b,c,d){v5d.call(this,a,b,c,d)}\nfunction D5d(a,b,c,d){A5d.call(this,a,b,c,d)}\nfunction d6d(a,b,c,d){Y5d.call(this,a,b,c,d)}\nfunction Vp(a,b,c){this.a=a;qc.call(this,b,c)}\nfunction tk(a,b,c){this.c=b;this.b=c;this.a=a}\nfunction ik(a,b,c){return a.d=BD(b.Kb(c),164)}\nfunction j6d(a,b){return a.Aj().Nh().Kh(a,b)}\nfunction h6d(a,b){return a.Aj().Nh().Ih(a,b)}\nfunction Fdb(a,b){return uCb(a),PD(a)===PD(b)}\nfunction dfb(a,b){return uCb(a),PD(a)===PD(b)}\nfunction Dxb(a,b){return Vd(Cwb(a.a,b,false))}\nfunction Exb(a,b){return Vd(Dwb(a.a,b,false))}\nfunction vBb(a,b){return a.b.sd(new yBb(a,b))}\nfunction BBb(a,b){return a.b.sd(new EBb(a,b))}\nfunction HBb(a,b){return a.b.sd(new KBb(a,b))}\nfunction lfb(a,b,c){return a.lastIndexOf(b,c)}\nfunction uTb(a,b,c){return Kdb(a[b.b],a[c.b])}\nfunction RTb(a,b){return yNb(b,(Nyc(),Cwc),a)}\nfunction fmc(a,b){return beb(b.a.d.p,a.a.d.p)}\nfunction emc(a,b){return beb(a.a.d.p,b.a.d.p)}\nfunction _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)}\nfunction S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)}\nfunction Vxd(a){return a<100?null:new Ixd(a)}\nfunction ecd(a){return a==Zbd||a==_bd||a==$bd}\nfunction zAd(a,b){return JD(b,15)&&Btd(a.c,b)}\nfunction vyb(a,b){if(lyb){return}!!b&&(a.d=b)}\nfunction ujb(a,b){var c;c=b;return !!Awb(a,c)}\nfunction czd(a,b){this.c=a;Pyd.call(this,a,b)}\nfunction fBb(a){this.c=a;nvb.call(this,rie,0)}\nfunction Avb(a,b){Bvb.call(this,a,a.length,b)}\nfunction aId(a,b,c){return BD(a.c,69).lk(b,c)}\nfunction bId(a,b,c){return BD(a.c,69).mk(b,c)}\nfunction O2d(a,b,c){return N2d(a,BD(b,332),c)}\nfunction Q2d(a,b,c){return P2d(a,BD(b,332),c)}\nfunction i3d(a,b,c){return h3d(a,BD(b,332),c)}\nfunction k3d(a,b,c){return j3d(a,BD(b,332),c)}\nfunction tn(a,b){return b==null?null:Hv(a.b,b)}\nfunction Kcb(a){return LD(a)?(uCb(a),a):a.ke()}\nfunction Ldb(a){return !isNaN(a)&&!isFinite(a)}\nfunction Wn(a){Ql();this.a=(mmb(),new zob(a))}\nfunction dIc(a){FHc();this.d=a;this.a=new jkb}\nfunction xqb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Nrb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction $sb(a,b,c){this.d=a;this.b=c;this.a=b}\nfunction Qsb(a){Csb(this);Osb(this);ye(this,a)}\nfunction Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())}\nfunction Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null}\nfunction iyb(a){this.a=a;Zfb();Cbb(Date.now())}\nfunction JCb(){JCb=ccb;GCb=new nb;ICb=new nb}\nfunction ntb(){ntb=ccb;ltb=new otb;mtb=new qtb}\nfunction kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)}\nfunction tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)}\nfunction $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)}\nfunction Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))}\nfunction pxb(a){lxb();return es((zxb(),yxb),a)}\nfunction Hyb(a){Fyb();return es((Kyb(),Jyb),a)}\nfunction OEb(a){MEb();return es((REb(),QEb),a)}\nfunction WEb(a){UEb();return es((ZEb(),YEb),a)}\nfunction tFb(a){rFb();return es((wFb(),vFb),a)}\nfunction iHb(a){gHb();return es((lHb(),kHb),a)}\nfunction PHb(a){NHb();return es((SHb(),RHb),a)}\nfunction GIb(a){EIb();return es((JIb(),IIb),a)}\nfunction vJb(a){qJb();return es((yJb(),xJb),a)}\nfunction xLb(a){vLb();return es((ALb(),zLb),a)}\nfunction TMb(a){RMb();return es((WMb(),VMb),a)}\nfunction TOb(a){ROb();return es((WOb(),VOb),a)}\nfunction ePb(a){cPb();return es((hPb(),gPb),a)}\nfunction ZRb(a){XRb();return es((aSb(),_Rb),a)}\nfunction ATb(a){yTb();return es((DTb(),CTb),a)}\nfunction sUb(a){qUb();return es((vUb(),uUb),a)}\nfunction rWb(a){lWb();return es((uWb(),tWb),a)}\nfunction TXb(a){RXb();return es((WXb(),VXb),a)}\nfunction Mb(a,b){if(!a){throw vbb(new Wdb(b))}}\nfunction l0b(a){j0b();return es((o0b(),n0b),a)}\nfunction r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)}\nfunction K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)}\nfunction mKb(a,b,c){this.b=a;this.c=b;this.a=c}\nfunction BZb(a,b,c){this.b=a;this.a=b;this.c=c}\nfunction TNb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction uOb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction S3b(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Z6b(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction n9b(a,b,c){this.b=a;this.a=b;this.c=c}\nfunction x$b(a,b,c){this.e=b;this.b=a;this.d=c}\nfunction $Ab(a,b,c){EAb();a.a.Od(b,c);return b}\nfunction LGb(a){var b;b=new KGb;b.e=a;return b}\nfunction iLb(a){var b;b=new fLb;b.b=a;return b}\nfunction D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b}\nfunction Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc}\nfunction jbc(a){gbc();return es((mbc(),lbc),a)}\nfunction Cjc(a){Ajc();return es((Fjc(),Ejc),a)}\nfunction Clc(a){Alc();return es((Flc(),Elc),a)}\nfunction Cpc(a){Apc();return es((Fpc(),Epc),a)}\nfunction Kpc(a){Ipc();return es((Npc(),Mpc),a)}\nfunction Wpc(a){Rpc();return es((Zpc(),Ypc),a)}\nfunction $jc(a){Xjc();return es((bkc(),akc),a)}\nfunction Hkc(a){Fkc();return es((Kkc(),Jkc),a)}\nfunction dqc(a){bqc();return es((gqc(),fqc),a)}\nfunction rqc(a){mqc();return es((uqc(),tqc),a)}\nfunction zqc(a){xqc();return es((Cqc(),Bqc),a)}\nfunction Iqc(a){Gqc();return es((Lqc(),Kqc),a)}\nfunction Vqc(a){Sqc();return es((Yqc(),Xqc),a)}\nfunction brc(a){_qc();return es((erc(),drc),a)}\nfunction nrc(a){lrc();return es((qrc(),prc),a)}\nfunction Arc(a){yrc();return es((Drc(),Crc),a)}\nfunction Qrc(a){Orc();return es((Trc(),Src),a)}\nfunction Zrc(a){Xrc();return es((asc(),_rc),a)}\nfunction gsc(a){esc();return es((jsc(),isc),a)}\nfunction osc(a){msc();return es((rsc(),qsc),a)}\nfunction Etc(a){Ctc();return es((Htc(),Gtc),a)}\nfunction qzc(a){lzc();return es((tzc(),szc),a)}\nfunction Azc(a){xzc();return es((Dzc(),Czc),a)}\nfunction Mzc(a){Izc();return es((Pzc(),Ozc),a)}\nfunction MAc(a){KAc();return es((PAc(),OAc),a)}\nfunction mAc(a){kAc();return es((pAc(),oAc),a)}\nfunction vAc(a){tAc();return es((yAc(),xAc),a)}\nfunction DAc(a){BAc();return es((GAc(),FAc),a)}\nfunction VAc(a){TAc();return es((YAc(),XAc),a)}\nfunction $zc(a){Vzc();return es((bAc(),aAc),a)}\nfunction bBc(a){_Ac();return es((eBc(),dBc),a)}\nfunction vBc(a){tBc();return es((yBc(),xBc),a)}\nfunction EBc(a){CBc();return es((HBc(),GBc),a)}\nfunction NBc(a){LBc();return es((QBc(),PBc),a)}\nfunction tGc(a){rGc();return es((wGc(),vGc),a)}\nfunction WIc(a){UIc();return es((ZIc(),YIc),a)}\nfunction $Lc(a){YLc();return es((bMc(),aMc),a)}\nfunction gMc(a){eMc();return es((jMc(),iMc),a)}\nfunction JOc(a){HOc();return es((MOc(),LOc),a)}\nfunction HQc(a){FQc();return es((KQc(),JQc),a)}\nfunction DRc(a){yRc();return es((GRc(),FRc),a)}\nfunction tSc(a){qSc();return es((wSc(),vSc),a)}\nfunction UTc(a){STc();return es((XTc(),WTc),a)}\nfunction UUc(a){PUc();return es((XUc(),WUc),a)}\nfunction aUc(a){$Tc();return es((dUc(),cUc),a)}\nfunction wVc(a){tVc();return es((zVc(),yVc),a)}\nfunction iWc(a){fWc();return es((lWc(),kWc),a)}\nfunction sWc(a){pWc();return es((vWc(),uWc),a)}\nfunction lXc(a){iXc();return es((oXc(),nXc),a)}\nfunction vXc(a){sXc();return es((yXc(),xXc),a)}\nfunction BYc(a){zYc();return es((EYc(),DYc),a)}\nfunction m$c(a){k$c();return es((p$c(),o$c),a)}\nfunction $$c(a){Y$c();return es((b_c(),a_c),a)}\nfunction n_c(a){i_c();return es((q_c(),p_c),a)}\nfunction w_c(a){s_c();return es((z_c(),y_c),a)}\nfunction E_c(a){C_c();return es((H_c(),G_c),a)}\nfunction P_c(a){N_c();return es((S_c(),R_c),a)}\nfunction W0c(a){R0c();return es((Z0c(),Y0c),a)}\nfunction f1c(a){a1c();return es((i1c(),h1c),a)}\nfunction P5c(a){N5c();return es((S5c(),R5c),a)}\nfunction b6c(a){_5c();return es((e6c(),d6c),a)}\nfunction H7c(a){F7c();return es((K7c(),J7c),a)}\nfunction k8c(a){i8c();return es((n8c(),m8c),a)}\nfunction V8b(a){S8b();return es((Y8b(),X8b),a)}\nfunction A5b(a){y5b();return es((D5b(),C5b),a)}\nfunction jad(a){ead();return es((mad(),lad),a)}\nfunction sad(a){qad();return es((vad(),uad),a)}\nfunction Cad(a){Aad();return es((Fad(),Ead),a)}\nfunction Oad(a){Mad();return es((Rad(),Qad),a)}\nfunction jbd(a){hbd();return es((mbd(),lbd),a)}\nfunction ubd(a){rbd();return es((xbd(),wbd),a)}\nfunction Kbd(a){Hbd();return es((Nbd(),Mbd),a)}\nfunction Vbd(a){Tbd();return es((Ybd(),Xbd),a)}\nfunction hcd(a){dcd();return es((kcd(),jcd),a)}\nfunction vcd(a){rcd();return es((ycd(),xcd),a)}\nfunction vdd(a){tdd();return es((ydd(),xdd),a)}\nfunction Kdd(a){Idd();return es((Ndd(),Mdd),a)}\nfunction $cd(a){Ucd();return es((cdd(),bdd),a)}\nfunction Fed(a){Ded();return es((Ied(),Hed),a)}\nfunction rgd(a){pgd();return es((ugd(),tgd),a)}\nfunction Esd(a){Csd();return es((Hsd(),Gsd),a)}\nfunction Yoc(a,b){return (uCb(a),a)+(uCb(b),b)}\nfunction NNd(a,b){Zfb();return wtd(ZKd(a.a),b)}\nfunction SNd(a,b){Zfb();return wtd(ZKd(a.a),b)}\nfunction bPc(a,b){this.c=a;this.a=b;this.b=b-a}\nfunction nYc(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction L1c(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction T1c(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Rrd(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction zCd(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction IVd(a,b,c){this.e=a;this.a=b;this.c=c}\nfunction kWd(a,b,c){UVd();cWd.call(this,a,b,c)}\nfunction HXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction TXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction ZXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction JXd(a,b,c){UVd();HXd.call(this,a,b,c)}\nfunction LXd(a,b,c){UVd();HXd.call(this,a,b,c)}\nfunction NXd(a,b,c){UVd();LXd.call(this,a,b,c)}\nfunction VXd(a,b,c){UVd();TXd.call(this,a,b,c)}\nfunction _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)}\nfunction $j(a,b){Qb(a);Qb(b);return new _j(a,b)}\nfunction Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)}\nfunction Rq(a,b){Qb(a);Qb(b);return new ar(a,b)}\nfunction lr(a,b){Qb(a);Qb(b);return new zr(a,b)}\nfunction BD(a,b){CCb(a==null||AD(a,b));return a}\nfunction Nu(a){var b;b=new Rkb;fr(b,a);return b}\nfunction Ex(a){var b;b=new Tqb;fr(b,a);return b}\nfunction Hx(a){var b;b=new Gxb;Jq(b,a);return b}\nfunction Ru(a){var b;b=new Psb;Jq(b,a);return b}\nfunction YEc(a){!a.e&&(a.e=new Rkb);return a.e}\nfunction SMd(a){!a.c&&(a.c=new xYd);return a.c}\nfunction Ekb(a,b){a.c[a.c.length]=b;return true}\nfunction WA(a,b){this.c=a;this.b=b;this.a=false}\nfunction Gg(a){this.d=a;Dg(this);this.b=ed(a.d)}\nfunction pzb(){this.a=';,;';this.b='';this.c=''}\nfunction Bvb(a,b,c){qvb.call(this,b,c);this.a=a}\nfunction fAb(a,b,c){this.b=a;fvb.call(this,b,c)}\nfunction lsb(a,b,c){this.c=a;pjb.call(this,b,c)}\nfunction bCb(a,b,c){$Bb(c,0,a,b,c.length,false)}\nfunction HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e}\nfunction eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}}\nfunction v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e}\nfunction h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b}\nfunction k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c}\nfunction Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))}\nfunction rlc(a,b){return beb(D0b(a.d),D0b(b.d))}\nfunction uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d}\nfunction FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd}\nfunction DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))}\nfunction aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)}\nfunction C6c(a){return new f7c(a.c+a.b,a.d+a.a)}\nfunction Vmc(a,b){Imc();return beb(a.d.p,b.d.p)}\nfunction Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)}\nfunction Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)}\nfunction rCb(a,b){if(!a){throw vbb(new ucb(b))}}\nfunction mCb(a,b){if(!a){throw vbb(new Wdb(b))}}\nfunction dWb(a,b,c){cWb.call(this,a,b);this.b=c}\nfunction pMd(a,b,c){MLd.call(this,a,b);this.c=c}\nfunction Dnc(a,b,c){Cnc.call(this,b,c);this.d=a}\nfunction _Gd(a){$Gd();MGd.call(this);this.th(a)}\nfunction PNd(a,b,c){this.a=a;nNd.call(this,b,c)}\nfunction UNd(a,b,c){this.a=a;nNd.call(this,b,c)}\nfunction k2d(a,b,c){MLd.call(this,a,b);this.c=c}\nfunction y1d(){T0d();z1d.call(this,(yFd(),xFd))}\nfunction gFd(a){return a!=null&&!OEd(a,CEd,DEd)}\nfunction dFd(a,b){return (jFd(a)<<4|jFd(b))&aje}\nfunction ln(a,b){return Vm(),Wj(a,b),new iy(a,b)}\nfunction Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}}\nfunction Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)}\nfunction WUd(a,b){var c;c=a.c;VUd(a,b);return c}\nfunction Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a}\nfunction $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a}\nfunction G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e}\nfunction Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true}\nfunction jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}\nfunction Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()}\nfunction Wq(a,b){this.b=a;this.a=b;ol.call(this)}\nfunction ar(a,b){this.a=a;this.b=b;ol.call(this)}\nfunction vvb(a,b){qvb.call(this,b,1040);this.a=a}\nfunction Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1}\nfunction WPb(a){QPb();return jtd(a)==Xod(ltd(a))}\nfunction XPb(a){QPb();return ltd(a)==Xod(jtd(a))}\nfunction iYb(a,b){return hYb(a,new cWb(b.a,b.b))}\nfunction NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c}\nfunction _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a}\nfunction YHb(a){var b;b=a.n;return a.e.b+b.d+b.a}\nfunction ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c}\nfunction zfe(a){wfe();++vfe;return new ige(0,a)}\nfunction o_b(a){if(a.a){return a.a}return JZb(a)}\nfunction CCb(a){if(!a){throw vbb(new Cdb(null))}}\nfunction X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))}\nfunction ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))}\nfunction oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)}\nfunction d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)}\nfunction sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}\nfunction tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}\nfunction xfd(a,b){return Ekb(a,new f7c(b.a,b.b))}\nfunction Bic(a,b){return a.c=b){throw vbb(new rcb)}}\nfunction Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b}\nfunction _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)}\nfunction n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)}\nfunction tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)}\nfunction D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)}\nfunction oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b}\nfunction bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b}\nfunction qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie}\nfunction gub(a){this.b=new Skb(11);this.a=(ipb(),a)}\nfunction Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)}\nfunction nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)}\nfunction Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)}\nfunction Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)}\nfunction jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)}\nfunction Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)}\nfunction nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)}\nfunction DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)}\nfunction cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d}\nfunction i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d}\nfunction x0d(a){Wud.call(this,a,false);this.a=false}\nfunction Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b}\nfunction px(a,b){im();ox.call(this,a,Dm(new amb(b)))}\nfunction Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)}\nfunction Efe(a,b){wfe();++vfe;return new Dge(6,a,b)}\nfunction nfb(a,b){return dfb(a.substr(0,b.length),b)}\nfunction Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)}\nfunction Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}}\nfunction Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c}\nfunction amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d}\nfunction xJc(a){var b;b=a;while(b.f){b=b.f}return b}\nfunction fkb(a){var b;b=bkb(a);sCb(b!=null);return b}\nfunction gkb(a){var b;b=ckb(a);sCb(b!=null);return b}\nfunction cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b}\nfunction Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100}\nfunction ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0}\nfunction HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))}\nfunction iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()}\nfunction Olb(a,b){return avb(b,a.length),new vvb(a,b)}\nfunction Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b}\nfunction Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie}\nfunction rge(a,b){xfe.call(this,1);this.a=a;this.b=b}\nfunction Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a}\nfunction uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d}\nfunction ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)}\nfunction Flb(a,b,c){var d;for(d=0;d=a.g}\nfunction NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)}\nfunction Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)}\nfunction gCb(a,b){var c;c=console[a];c.call(console,b)}\nfunction Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))}\nfunction E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))}\nfunction oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c}\nfunction Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c}\nfunction dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c}\nfunction f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)}\nfunction z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd}\nfunction ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e}\nfunction usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)}\nfunction uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1}\nfunction U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)}\nfunction Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)}\nfunction Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}\nfunction oAb(a){if(0>=a){return new yAb}return pAb(a-1)}\nfunction Nfe(a){if(!bfe)return false;return Qhb(bfe,a)}\nfunction Ehe(a){if(a)return a.dc();return !a.Kc().Ob()}\nfunction Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a}\nfunction LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a}\nfunction LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d}\nfunction uCb(a){if(a==null){throw vbb(new Geb)}return a}\nfunction Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}}\nfunction Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}}\nfunction Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)}\nfunction qlc(a,b){return beb(b.j.c.length,a.j.c.length)}\nfunction igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)}\nfunction WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c}\nfunction Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e}\nfunction Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e}\nfunction Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f}\nfunction fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k}\nfunction cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j}\nfunction dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j}\nfunction AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b}\nfunction $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c}\nfunction pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c}\nfunction MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))}\nfunction Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)}\nfunction Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)}\nfunction Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)}\nfunction Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d}\nfunction $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d}\nfunction iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b}\nfunction cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)}\nfunction AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)}\nfunction T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)}\nfunction vfb(a){return String.fromCharCode.apply(null,a)}\nfunction Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)}\nfunction tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()}\nfunction d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))}\nfunction ix(a,b){ex();return new gx(new il(a),new Uk(b))}\nfunction Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))}\nfunction Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))}\nfunction hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d}\nfunction eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a}\nfunction gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b}\nfunction keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a}\nfunction wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}\nfunction Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d}\nfunction Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c}\nfunction Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c}\nfunction hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null}\nfunction JZb(a){var b;b=P2b(a);if(b){return b}return null}\nfunction Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b}\nfunction YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())}\nfunction ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}\nfunction jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}\nfunction wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)}\nfunction UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)}\nfunction pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)}\nfunction prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d}\nfunction ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d}\nfunction cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}\nfunction jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}\nfunction Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))}\nfunction ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)}\nfunction lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)}\nfunction tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)}\nfunction H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)}\nfunction Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}\nfunction vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}\nfunction $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])}\nfunction KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b}\nfunction cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b}\nfunction kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)}\nfunction nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)}\nfunction cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])}\nfunction crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])}\nfunction Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])}\nfunction Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])}\nfunction psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])}\nfunction EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])}\nfunction XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])}\nfunction KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])}\nfunction _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])}\nfunction hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])}\nfunction IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])}\nfunction bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])}\nfunction VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])}\nfunction VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])}\nfunction jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])}\nfunction g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])}\nfunction F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])}\nfunction PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])}\nfunction XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])}\nfunction $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])}\nfunction B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])}\nfunction lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)}\nfunction hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)}\nfunction Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)}\nfunction exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)}\nfunction pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a}\nfunction by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))}\nfunction bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))}\nfunction FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)}\nfunction YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)}\nfunction Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2}\nfunction Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c}\nfunction cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c}\nfunction aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true}\nfunction isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a}\nfunction $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)}\nfunction iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))}\nfunction tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)}\nfunction YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))}\nfunction Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)}\nfunction Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))}\nfunction QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0}\nfunction uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c}\nfunction Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)}\nfunction QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)}\nfunction Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d}\nfunction NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)}\nfunction zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)}\nfunction hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)}\nfunction g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c}\nfunction VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c}\nfunction b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c}\nfunction Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()}\nfunction ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)}\nfunction no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}}\nfunction Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b}\nfunction ecb(a){function b(){}\n;b.prototype=a||{};return new b}\nfunction dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false}\nfunction aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)}\nfunction tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]}\nfunction Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)}\nfunction mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)}\nfunction fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)}\nfunction Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)}\nfunction Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)}\nfunction Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)}\nfunction nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)}\nfunction Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)}\nfunction Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()}\nfunction t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a}\nfunction A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b}\nfunction Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0}\nfunction oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0}\nfunction BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)}\nfunction RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)}\nfunction eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)}\nfunction STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)}\nfunction evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)}\nfunction Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)}\nfunction _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)}\nfunction MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)}\nfunction ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)}\nfunction WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)}\nfunction rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))}\nfunction hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c}\nfunction aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)}\nfunction Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)}\nfunction FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)}\nfunction Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a}\nfunction bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a}\nfunction uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f}\nfunction vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f}\nfunction RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)}\nfunction QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)}\nfunction $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)}\nfunction F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)}\nfunction jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}\nfunction qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}\nfunction aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)}\nfunction IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))}\nfunction wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}}\nfunction Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null}\nfunction WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false}\nfunction qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))}\nfunction SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))}\nfunction DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)}\nfunction W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a}\nfunction e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)}\nfunction BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)}\nfunction COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)}\nfunction D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b}\nfunction BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)}\nfunction cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)}\nfunction lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)}\nfunction T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)}\nfunction jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))}\nfunction XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}\nfunction eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}\nfunction yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c}\nfunction Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()}\nfunction UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)}\nfunction nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}}\nfunction Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b}\nfunction Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b}\nfunction Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)}\nfunction Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))}\nfunction tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}}\nfunction BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}}\nfunction Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b}\nfunction kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)}\nfunction A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))}\nfunction Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])}\nfunction jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])}\nfunction QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])}\nfunction HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])}\nfunction UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])}\nfunction BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])}\nfunction Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])}\nfunction Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])}\nfunction eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])}\nfunction Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])}\nfunction Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])}\nfunction hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])}\nfunction $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])}\nfunction NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])}\nfunction wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])}\nfunction WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])}\nfunction OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])}\nfunction wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])}\nfunction FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])}\nfunction uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])}\nfunction xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])}\nfunction tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])}\nfunction CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])}\nfunction wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])}\nfunction _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])}\nfunction kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])}\nfunction tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])}\nfunction o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c}\nfunction tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)}\nfunction fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)}\nfunction av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)}\nfunction cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)}\nfunction Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje}\nfunction bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje}\nfunction Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a}\nfunction _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d}\nfunction mlb(a){sCb(a.ad?1:0}\nfunction bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a}\nfunction iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)}\nfunction wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)}\nfunction RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))}\nfunction cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))}\nfunction $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))}\nfunction XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))}\nfunction k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)}\nfunction l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)}\nfunction cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)}\nfunction kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))}\nfunction rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))}\nfunction Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)}\nfunction YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)}\nfunction o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)}\nfunction p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)}\nfunction i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d}\nfunction vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b}\nfunction H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a}\nfunction tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null}\nfunction Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true}\nfunction _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}\nfunction Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a}\nfunction Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}}\nfunction eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a}\nfunction xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}}\nfunction $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false}\nfunction Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)}\nfunction tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b}\nfunction Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b}\nfunction Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b}\nfunction orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array}\nfunction Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))}\nfunction Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))}\nfunction m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)}\nfunction sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)}\nfunction SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)}\nfunction a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))}\nfunction _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))}\nfunction Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d}\nfunction Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d}\nfunction $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d}\nfunction _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d}\nfunction Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b}\nfunction Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}}\nfunction C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()}\nfunction j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1}\nfunction mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1}\nfunction jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c}\nfunction uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c}\nfunction msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)}\nfunction cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))}\nfunction z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))}\nfunction q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))}\nfunction Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))}\nfunction hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))}\nfunction yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])}\nfunction qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])}\nfunction UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])}\nfunction UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])}\nfunction sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])}\nfunction kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])}\nfunction Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)}\nfunction Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])}\nfunction okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))}\nfunction Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)}\nfunction Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}\nfunction Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}\nfunction _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)}\nfunction Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()}\nfunction ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null}\nfunction Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0}\nfunction Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c}\nfunction Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)}\nfunction Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)}\nfunction A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b}\nfunction qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)}\nfunction Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24}\nfunction axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24}\nfunction gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16}\nfunction Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16}\nfunction sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)}\nfunction nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a}\nfunction Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))}\nfunction VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))}\nfunction E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32}\nfunction Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)}\nfunction kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)}\nfunction Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b}\nfunction Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a}\nfunction kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c}\nfunction R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)}\nfunction TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)}\nfunction mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)}\nfunction dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)}\nfunction dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}}\nfunction vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b}\nfunction pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}}\nfunction VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n}\nfunction Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0}\nfunction Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0}\nfunction Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb}\nfunction Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b}\nfunction GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))}\nfunction Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))}\nfunction REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))}\nfunction ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))}\nfunction aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))}\nfunction D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))}\nfunction Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))}\nfunction erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))}\nfunction eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))}\nfunction GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))}\nfunction Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))}\nfunction rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))}\nfunction MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))}\nfunction ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))}\nfunction bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))}\nfunction jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))}\nfunction KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))}\nfunction dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))}\nfunction XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))}\nfunction XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))}\nfunction lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))}\nfunction i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))}\nfunction H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))}\nfunction UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)}\nfunction Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}\nfunction Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}\nfunction Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d}\nfunction zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d}\nfunction Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a}\nfunction reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}}\nfunction me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))}\nfunction Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b}\nfunction Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d}\nfunction lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)}\nfunction fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)}\nfunction FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)}\nfunction tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])}\nfunction _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])}\nfunction Dz(b){Az();return function(){return Ez(b,this,arguments);var a}}\nfunction sz(){if(Date.now){return Date.now()}return (new Date).getTime()}\nfunction OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i}\nfunction pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()}\nfunction ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g}\nfunction ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)}\nfunction PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)}\nfunction jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)}\nfunction rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c}\nfunction wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb}\nfunction oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false}\nfunction C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false}\nfunction zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c}\nfunction j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)}\nfunction Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}\nfunction Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}\nfunction $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t}\nfunction kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])}\nfunction Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])}\nfunction Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])}\nfunction Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])}\nfunction _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])}\nfunction sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])}\nfunction n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])}\nfunction _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])}\nfunction Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])}\nfunction T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)}\nfunction yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c}\nfunction zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false}\nfunction RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)}\nfunction uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)}\nfunction Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)}\nfunction Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}}\nfunction Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b}\nfunction kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b}\nfunction hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)}\nfunction uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a}\nfunction zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e}\nfunction _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)}\nfunction A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))}\nfunction Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)}\nfunction b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)}\nfunction kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb}\nfunction MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb}\nfunction Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)}\nfunction wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)}\nfunction SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb}\nfunction g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')}\nfunction Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))}\nfunction HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)}\nfunction _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)}\nfunction C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)}\nfunction PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)}\nfunction KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()}\nfunction JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a}\nfunction poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null}\nfunction ODc(a,b){if(a.pb.p){return -1}return 0}\nfunction pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')}\nfunction lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))}\nfunction SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))}\nfunction JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))}\nfunction Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))}\nfunction DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))}\nfunction WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))}\nfunction Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))}\nfunction gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))}\nfunction Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))}\nfunction Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))}\nfunction jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))}\nfunction asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))}\nfunction Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))}\nfunction YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))}\nfunction yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))}\nfunction PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))}\nfunction QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))}\nfunction yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))}\nfunction HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))}\nfunction wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))}\nfunction zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))}\nfunction vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))}\nfunction EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))}\nfunction yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))}\nfunction b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))}\nfunction mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))}\nfunction vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))}\nfunction icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])}\nfunction ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)}\nfunction NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d}\nfunction yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a}\nfunction EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b}\nfunction FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c}\nfunction A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)}\nfunction s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))}\nfunction pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)}\nfunction IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)}\nfunction qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)}\nfunction ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b}\nfunction dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true}\nfunction vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)}\nfunction r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)}\nfunction p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)}\nfunction fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)}\nfunction UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)}\nfunction yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0}\nfunction MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}}\nfunction nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]}\nfunction pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}\nfunction KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)}\nfunction Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c}\nfunction ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c}\nfunction Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)}\nfunction bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)}\nfunction hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}\nfunction iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}\nfunction nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)}\nfunction qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b}\nfunction Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)}\nfunction NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)}\nfunction lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb}\nfunction zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))}\nfunction uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))}\nfunction ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))}\nfunction WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))}\nfunction WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))}\nfunction GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))}\nfunction mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))}\nfunction oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))}\nfunction Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))}\nfunction Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))}\nfunction ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))}\nfunction xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))}\nfunction Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))}\nfunction Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))}\nfunction ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))}\nfunction A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)}\nfunction _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)}\nfunction eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}\nfunction gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}\nfunction PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a}\nfunction Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true}\nfunction Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null}\nfunction Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))}\nfunction Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)}\nfunction vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)}\nfunction Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)}\nfunction S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}\nfunction U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}\nfunction INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)}\nfunction uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d}\nfunction Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}}\nfunction YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e}\nfunction fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c}\nfunction Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null}\nfunction UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)}\nfunction LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)}\nfunction tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)}\nfunction yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}}\nfunction oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije}\nfunction HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}\nfunction dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b}\nfunction uA(a,b){while(b[0]=0){++b[0]}}\nfunction sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))}\nfunction vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d}\nfunction EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d}\nfunction fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c}\nfunction Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)}\nfunction nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}}\nfunction AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb}\nfunction UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)}\nfunction XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)}\nfunction xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)}\nfunction uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))}\nfunction bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))}\nfunction bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))}\nfunction Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))}\nfunction S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))}\nfunction S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))}\nfunction p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))}\nfunction vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))}\nfunction mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))}\nfunction Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))}\nfunction cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))}\nfunction _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c}\nfunction hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false}\nfunction ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false}\nfunction Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false}\nfunction Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)}\nfunction Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a}\nfunction sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()}\nfunction idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)}\nfunction Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)}\nfunction Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)}\nfunction u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))}\nfunction VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)}\nfunction mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a}\nfunction Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b}\nfunction bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e}\nfunction yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)}\nfunction zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)}\nfunction avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}}\nfunction Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b}\nfunction Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null}\nfunction VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)}\nfunction ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)}\nfunction xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}}\nfunction t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b}\nfunction ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))}\nfunction NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))}\nfunction iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))}\nfunction Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c}\nfunction ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false}\nfunction Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a}\nfunction bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}}\nfunction gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}}\nfunction qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])}\nfunction Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)}\nfunction Jmc(a){var b;for(b=0;b=14&&b<=16)));return a}\nfunction dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d}\nfunction TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)}\nfunction NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()}\nfunction ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}\nfunction Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}\nfunction Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)}\nfunction oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}\nfunction o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))}\nfunction n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))}\nfunction K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))}\nfunction Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))}\nfunction Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))}\nfunction qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))}\nfunction tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))}\nfunction Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))}\nfunction wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))}\nfunction ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))}\nfunction Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))}\nfunction Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])}\nfunction vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))}\nfunction wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))}\nfunction hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))}\nfunction ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))}\nfunction cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))}\nfunction dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))}\nfunction eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))}\nfunction omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))}\nfunction imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))}\nfunction pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))}\nfunction qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))}\nfunction AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))}\nfunction DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))}\nfunction _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))}\nfunction izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)}\nfunction Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null}\nfunction ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c}\nfunction LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}\nfunction Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a}\nfunction ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g}\nfunction rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c}\nfunction tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c}\nfunction BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c}\nfunction GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c}\nfunction xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c}\nfunction rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1}\nfunction pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e}\nfunction My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a}\nfunction n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c}\nfunction KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)}\nfunction bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)}\nfunction rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)}\nfunction ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)}\nfunction JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}}\nfunction $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a}\nfunction Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a}\nfunction Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null}\nfunction Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))}\nfunction kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))}\nfunction lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))}\nfunction Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))}\nfunction zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}\nfunction UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}\nfunction VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}\nfunction Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}\nfunction pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))}\nfunction PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))}\nfunction jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))}\nfunction Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}}\nfunction dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)}\nfunction g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)}\nfunction _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}\nfunction Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))}\nfunction pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)}\nfunction umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)}\nfunction aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b}\nfunction xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)}\nfunction T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}}\nfunction _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d}\nfunction IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}}\nfunction N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))}\nfunction DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))}\nfunction jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))}\nfunction _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))}\nfunction $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)}\nfunction rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}}\nfunction u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))}\nfunction Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}}\nfunction G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true}\nfunction sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e}\nfunction tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e}\nfunction Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b}\nfunction Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}}\nfunction $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}}\nfunction nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)}\nfunction oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)}\nfunction l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)}\nfunction Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)}\nfunction WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)}\nfunction m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}}\nfunction kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)}\nfunction Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)}\nfunction Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}\nfunction nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}\nfunction bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)}\nfunction ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b}\nfunction btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}}\nfunction Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false}\nfunction kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()}\nfunction Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true}\nfunction Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a}\nfunction yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)}\nfunction _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)}\nfunction bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0}\nfunction I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))}\nfunction $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)}\nfunction xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a}\nfunction yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a}\nfunction TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c}\nfunction j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c}\nfunction Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}}\nfunction $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}}\nfunction bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b}\nfunction EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c}\nfunction Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d}\nfunction djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}}\nfunction xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c}\nfunction SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d}\nfunction crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f}\nfunction j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}\nfunction m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}\nfunction Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3}\nfunction w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b}\nfunction qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0}\nfunction NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}}\nfunction d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}}\nfunction syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)}\nfunction mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))}\nfunction Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e}\nfunction Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1}\nfunction UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}}\nfunction nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c}\nfunction JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c}\nfunction Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false}\nfunction oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false}\nfunction Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g}\nfunction Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false}\nfunction Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false}\nfunction Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]}\nfunction Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb(\"The 'no null' constraint is violated\"))}return b}\nfunction $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)}\nfunction XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a}\nfunction b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}}\nfunction c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}}\nfunction Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)}\nfunction pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)}\nfunction pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)}\nfunction Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)}\nfunction nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)}\nfunction Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)}\nfunction tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)}\nfunction Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c}\nfunction o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)}\nfunction r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d}\nfunction $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null}\nfunction Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))}\nfunction Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)}\nfunction le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d}\nfunction AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}}\nfunction C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}}\nfunction j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}}\nfunction vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe}\nfunction pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()}\nfunction qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()}\nfunction fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)}\nfunction xC(a){rC();throw vbb(new MB(\"Unexpected typeof result '\"+a+\"'; please report this bug to the GWT team\"))}\nfunction lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''}\nfunction F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)}\nfunction ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)}\nfunction xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)}\nfunction LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))}\nfunction VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b}\nfunction DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}}\nfunction yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()}\nfunction VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)}\nfunction wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d}\nfunction PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c}\nfunction Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d}\nfunction Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)}\nfunction j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)}\nfunction BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f}\nfunction Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b}\nfunction A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}}\nfunction UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false}\nfunction JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}\nfunction y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}\nfunction sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))}\nfunction $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))}\nfunction gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a}\nfunction u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b}\nfunction qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a}\nfunction Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c}\nfunction _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c}\nfunction vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d}\nfunction RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c}\nfunction o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d}\nfunction kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()}\nfunction vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a}\nfunction __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}}\nfunction eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}}\nfunction Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0}\nfunction QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a}\nfunction OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c}\nfunction BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))}\nfunction eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}\nfunction LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}\nfunction CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))}\nfunction fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))}\nfunction N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)}\nfunction meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)}\nfunction Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)}\nfunction L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false}\nfunction i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null}\nfunction l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null}\nfunction cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false}\nfunction vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)}\nfunction iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null}\nfunction $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+\"' is not a valid attribute\"))}\nfunction V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1}\nfunction f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)}\nfunction Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}}\nfunction vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}}\nfunction ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))}\nfunction dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))}\nfunction eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))}\nfunction fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))}\nfunction jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)}\nfunction jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null}\nfunction k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null}\nfunction n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)}\nfunction a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c}\nfunction rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}}\nfunction Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb(\"Stream already terminated, can't be modified or used\"))}}\nfunction Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a}\nfunction ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d}\nfunction ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f}\nfunction pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c}\nfunction hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null}\nfunction Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c}\nfunction Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1}\nfunction Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke}\nfunction O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b}\nfunction aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63}\nfunction Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)}\nfunction Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e}\nfunction EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)}\nfunction LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a}\nfunction Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e}\nfunction efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))}\nfunction Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)}\nfunction Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)}\nfunction zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)}\nfunction Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)}\nfunction tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)}\nfunction Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))}\nfunction yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)}\nfunction t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}}\nfunction did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}}\nfunction xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}}\nfunction iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}\nfunction GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}\nfunction Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)}\nfunction Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)}\nfunction MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c}\nfunction VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)}\nfunction fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()}\nfunction Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)}\nfunction _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)}\nfunction OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()}\nfunction NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d}\nfunction Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)}\nfunction ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))}\nfunction I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}}\nfunction Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false}\nfunction Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}}\nfunction Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)}\nfunction gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}}\nfunction b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}}\nfunction qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb}\nfunction hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b}\nfunction bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true}\nfunction XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false}\nfunction s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}}\nfunction Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1}\nfunction r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)}\nfunction NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d}\nfunction xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}\nfunction T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}\nfunction xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b}\nfunction Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c}\nfunction HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b}\nfunction Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b}\nfunction pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d}\nfunction Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false}\nfunction qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}}\nfunction AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null}\nfunction R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))}\nfunction Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f}\nfunction Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}}\nfunction Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e}\nfunction Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e}\nfunction Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e}\nfunction QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g}\nfunction hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))}\nfunction zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false}\nfunction wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true}\nfunction Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false}\nfunction Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error}\nfunction BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0}\nfunction DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0}\nfunction CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0}\nfunction ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d}\nfunction fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null}\nfunction fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}}\nfunction uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))}\nfunction Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}\nfunction Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)}\nfunction ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}}\nfunction lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)}\nfunction efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())}\nfunction x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)}\nfunction _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}\nfunction a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}\nfunction FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null}\nfunction HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c}\nfunction gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}}\nfunction q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}}\nfunction ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}}\nfunction OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}}\nfunction TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}}\nfunction tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)}\nfunction xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))}\nfunction b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))}\nfunction dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)}\nfunction k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)}\nfunction _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}}\nfunction HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b}\nfunction _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b}\nfunction Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}}\nfunction P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d(\"Invalid hexBinary value: '\"+a+\"'\"))}return b}\nfunction ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)}\nfunction wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])}\nfunction vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))}\nfunction Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))}\nfunction N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)}\nfunction Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)}\nfunction UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1}\nfunction cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad}\nfunction kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}}\nfunction Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e}\nfunction c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d}\nfunction oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))}\nfunction mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)}\nfunction Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+\"'. \"+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}}\nfunction L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d(\"Invalid base64Binary value: '\"+a+\"'\"))}return b}\nfunction Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}\nfunction Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}\nfunction CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb}\nfunction NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}}\nfunction ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}}\nfunction JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}}\nfunction S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}}\nfunction zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)}\nfunction Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb(\"Can't get element \"+c))}else throw vbb(a)}}\nfunction Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}}\nfunction RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true}\nfunction ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true}\nfunction dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)}\nfunction CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false}\nfunction AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false}\nfunction jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a}\nfunction jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)}\nfunction fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)}\nfunction u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}}\nfunction H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}}\nfunction kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}}\nfunction Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e}\nfunction lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)}\nfunction gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}}\nfunction mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)}\nfunction LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b}\nfunction qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)}\nfunction X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}}\nfunction tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}\nfunction ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}\nfunction tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f}\nfunction dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f}\nfunction emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i}\nfunction zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b}\nfunction uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}}\nfunction m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null}\nfunction wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0}\nfunction b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a}\nfunction Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)}\nfunction Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)}\nfunction XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}}\nfunction HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false}\nfunction FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}\nfunction QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}\nfunction FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10}\nfunction Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}}\nfunction kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()}\nfunction jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)}\nfunction iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}}\nfunction V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e}\nfunction IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b}\nfunction Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}}\nfunction Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f}\nfunction BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d}\nfunction AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}\nfunction mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}\nfunction d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}}\nfunction e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}}\nfunction udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)}\nfunction ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e}\nfunction GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e}\nfunction d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\\n')}return []}\nfunction jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28}\nfunction _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d}\nfunction DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b}\nfunction P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))}\nfunction C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))}\nfunction Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e}\nfunction shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b}\nfunction Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}}\nfunction bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)}\nfunction Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true}\nfunction Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true}\nfunction Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0}\nfunction Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}}\nfunction End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d}\nfunction tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c}\nfunction UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)}\nfunction p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb}\nfunction rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)}\nfunction $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb}\nfunction MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false}\nfunction HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}}\nfunction LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}}\nfunction XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}}\nfunction V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0}\nfunction hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}}\nfunction v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r}\nfunction yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d}\nfunction O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f}\nfunction fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))}\nfunction cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}}\nfunction vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e}\nfunction to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}}\nfunction cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a}\nfunction ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd}\nfunction Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d}\nfunction qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd}\nfunction HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c}\nfunction nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie}\nfunction qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)}\nfunction s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)}\nfunction qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}}\nfunction BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null}\nfunction t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a}\nfunction Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}}\nfunction Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}}\nfunction IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d}\nfunction T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}}\nfunction lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)}\nfunction FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d}\nfunction jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)}\nfunction Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)}\nfunction Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)}\nfunction mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}}\nfunction Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)}\nfunction JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}}\nfunction Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c}\nfunction PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))}\nfunction E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}\nfunction I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}\nfunction qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0}\nfunction zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}}\nfunction Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}}\nfunction eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false}\nfunction h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c}\nfunction Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b}\nfunction mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f}\nfunction U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))}\nfunction Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)}\nfunction jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)}\nfunction KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss}\nfunction tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)}\nfunction rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b}\nfunction HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))}\nfunction oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b}\nfunction pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)}\nfunction yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d}\nfunction zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}}\nfunction S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false}\nfunction kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}}\nfunction rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)}\nfunction tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f}\nfunction sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e}\nfunction MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0}\nfunction iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}}\nfunction j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c}\nfunction wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}}\nfunction bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}}\nfunction IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}}\nfunction Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)}\nfunction kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0}\nfunction cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true}\nfunction BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h}\nfunction Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}}\nfunction W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0}\nfunction X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0}\nfunction Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null}\nfunction ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true}\nfunction fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}}\nfunction lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)}\nfunction vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c}\nfunction qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)}\nfunction SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}}\nfunction IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}}\nfunction y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)}\nfunction RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d}\nfunction m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d}\nfunction Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)}\nfunction CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}}\nfunction gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])}\nfunction omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}}\nfunction oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f}\nfunction oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}}\nfunction XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)}\nfunction sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g}\nfunction t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false}\nfunction ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)}\nfunction bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))}\nfunction yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}}\nfunction wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}}\nfunction pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))}\nfunction jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)}\nfunction fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}}\nfunction ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)}\nfunction MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}}\nfunction JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}}\nfunction cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}}\nfunction Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a}\nfunction lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}}\nfunction mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f}\nfunction zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false}\nfunction mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)}\nfunction Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)}\nfunction ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false}\nfunction Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' \"',b),a.a),'\"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))}\nfunction Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0}\nfunction p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f}\nfunction Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}}\nfunction aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c}\nfunction ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}}\nfunction QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}}\nfunction I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}}\nfunction TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}}\nfunction _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)}\nfunction H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null}\nfunction rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)}\nfunction FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d}\nfunction OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d}\nfunction cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)}\nfunction aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))}\nfunction PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}}\nfunction Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}}\nfunction Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}}\nfunction q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b}\nfunction jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null}\nfunction YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c}\nfunction uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}}\nfunction RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)}\nfunction SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)}\nfunction Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null}\nfunction Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}}\nfunction Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}}\nfunction ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))}\nfunction QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f}\nfunction K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d}\nfunction Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}}\nfunction tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}}\nfunction fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0}\nfunction gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0}\nfunction MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}}\nfunction NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c}\nfunction iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c}\nfunction TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a}\nfunction zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}}\nfunction mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f}\nfunction mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}}\nfunction LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}}\nfunction k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}}\nfunction BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a}\nfunction v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}}\nfunction rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e}\nfunction vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))}\nfunction fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}\nfunction $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb}\nfunction BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}}\nfunction _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h}\nfunction ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)}\nfunction sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}}\nfunction wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}}\nfunction u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}}\nfunction KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)}\nfunction qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}}\nfunction oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}}\nfunction NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e}\nfunction m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))}\nfunction AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)}\nfunction IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}}\nfunction Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)}\nfunction olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0}\nfunction swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}}\nfunction D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))}\nfunction Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true}\nfunction wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)}\nfunction DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)}\nfunction Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a}\nfunction l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb(\"Couldn't create new instance of property '\"+a.f+\"'. \"+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)}\nfunction aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f}\nfunction nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}}\nfunction N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)}\nfunction XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)}\nfunction Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d}\nfunction gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)}\nfunction Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))}\nfunction PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0}\nfunction aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false}\nfunction RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g}\nfunction vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]}\nfunction qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true}\nfunction UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}}\nfunction PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k}\nfunction Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a}\nfunction TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c}\nfunction lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e}\nfunction r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb}\nfunction n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\\\[\\\\]\\\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}}\nfunction Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}}\nfunction htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g}\nfunction Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}}\nfunction Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}}\nfunction l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i}\nfunction lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc}\nfunction Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}}\nfunction IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null}\nfunction e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2}\nfunction gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true}\nfunction U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null}\nfunction ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}}\nfunction mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}}\nfunction AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}}\nfunction Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e}\nfunction r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0}\nfunction WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)}\nfunction yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}}\nfunction ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c}\nfunction AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))}\nfunction Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}}\nfunction UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j}\nfunction O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}}\nfunction _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1}\nfunction qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}}\nfunction cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)}\nfunction lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))}\nfunction npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))}\nfunction Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null}\nfunction wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b}\nfunction IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d}\nfunction vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}}\nfunction jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}}\nfunction jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f}\nfunction k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)}\nfunction Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}}\nfunction aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}}\nfunction $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))}\nfunction uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}}\nfunction G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f}\nfunction rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))}\nfunction W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])}\nfunction Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)}\nfunction esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l}\nfunction ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))}\nfunction NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)}\nfunction aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g}\nfunction o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}}\nfunction rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)}\nfunction Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c}\nfunction Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i}\nfunction sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)}\nfunction AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a}\nfunction HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n}\nfunction hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)}\nfunction S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}}\nfunction Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}}\nfunction Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))}\nfunction q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}}\nfunction FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)}\nfunction hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)}\nfunction GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}}\nfunction Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to FIRST, but has at least one incoming edge that \"+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}}\nfunction vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b}\nfunction ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)}\nfunction Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}}\nfunction aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)}\nfunction vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}}\nfunction R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null}\nfunction Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)}\nfunction bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}}\nfunction AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)}\nfunction Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}}\nfunction inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}}\nfunction Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f}\nfunction Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}}\nfunction UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i}\nfunction Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)}\nfunction gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e}\nfunction fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f}\nfunction zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false}\nfunction BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false}\nfunction DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l}\nfunction ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e}\nfunction Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))}\nfunction jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of \"real\" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)}\nfunction hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje}\nfunction BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d}\nfunction xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true}\nfunction Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1}\nfunction Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}}\nfunction AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)}\nfunction rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)}\nfunction roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e}\nfunction VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)}\nfunction hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}}\nfunction Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))}\nfunction a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c}\nfunction wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb}\nfunction ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f}\nfunction hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false}\nfunction iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))}\nfunction YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}}\nfunction BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}}\nfunction N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' \"',b),d),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),c),'\"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' \"',b),d),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),c),'\"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e}\nfunction QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e}\nfunction NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))}\nfunction Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}}\nfunction _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)}\nfunction Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i}\nfunction TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'\"'))}return h}\nfunction dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)}\nfunction pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}}\nfunction B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))}\nfunction tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d}\nfunction LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n}\nfunction kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)}\nfunction DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}}\nfunction MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}}\nfunction Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))}\nfunction W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)}\nfunction pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c}\nfunction VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}}\nfunction FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}}\nfunction xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1}\nfunction mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}}\nfunction Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}}\nfunction tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)}\nfunction Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}}\nfunction pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b}\nfunction _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b}\nfunction bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l}\nfunction qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c}\nfunction f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e}\nfunction XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e}\nfunction uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}}\nfunction _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)}\nfunction lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47}\nfunction FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)}\nfunction mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)}\nfunction vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}}\nfunction gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)}\nfunction WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}}\nfunction Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe}\nfunction S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb(\"Layout algorithm '\"),b),\"' not found for \");yfd(a,c);throw vbb(new y2c(c.a))}}}\nfunction hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h}\nfunction ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)}\nfunction odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d}\nfunction yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j}\nfunction YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false}\nfunction Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}}\nfunction YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)}\nfunction opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)}\nfunction MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n}\nfunction y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}}\nfunction E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c}\nfunction Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e}\nfunction X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e}\nfunction XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)}\nfunction q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)}\nfunction qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)}\nfunction pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]}\nfunction SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f}\nfunction rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}}\nfunction lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}}\nfunction Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}}\nfunction DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))}\nfunction Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a}\nfunction v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}}\nfunction OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l}\nfunction OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a}\nfunction vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l}\nfunction C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}}\nfunction rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)}\nfunction $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,\"Array types don't match\");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)}\nfunction phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}\nfunction soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' \"',b),e),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),d),'\"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a}\nfunction TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}}\nfunction Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g}\nfunction TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}}\nfunction nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)}\nfunction Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true}\nfunction thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j}\nfunction oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j}\nfunction V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)}\nfunction Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a}\nfunction rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g}\nfunction npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null}\nfunction JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)}\nfunction o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}}\nfunction vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)}\nfunction vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)}\nfunction nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}}\nfunction ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p}\nfunction Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. \"+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. \"+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}}\nfunction C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)}\nfunction F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}}\nfunction XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}}\nfunction $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false}\nfunction l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}}\nfunction kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))}\nfunction AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}}\nfunction o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}}\nfunction JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h}\nfunction jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}}\nfunction nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c}\nfunction Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e}\nfunction sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g}\nfunction NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g}\nfunction _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)}\nfunction BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))}\nfunction iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}}\nfunction nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))}\nfunction rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)}\nfunction sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}}\nfunction Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)}\nfunction fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)}\nfunction xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))}\nfunction sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah}\nfunction k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}}\nfunction Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb(\"Invalid value: '\"+d+\"' for datatype :\"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)}\nfunction zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb(\"Missing trailing '\"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null}\nfunction wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)}\nfunction xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}}\nfunction wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}}\nfunction QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c}\nfunction O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))}\nfunction zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)}\nfunction lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}}\nfunction y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f}\nfunction z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}}\nfunction VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m}\nfunction d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}}\nfunction m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}}\nfunction l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}}\nfunction oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}}\nfunction _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}}\nfunction $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in \"Drawing free trees.\", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))}\nfunction LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)}\nfunction Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)}\nfunction Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'\"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'\"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'\"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'\"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'\"'))}}return l}\nfunction Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)}\nfunction b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)}\nfunction f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e}\nfunction cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)}\nfunction mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true}\nfunction z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}}\nfunction Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))}\nfunction fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1}\nfunction acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}}\nfunction QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}}\nfunction SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}}\nfunction rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a}\nfunction iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)}\nfunction Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h}\nfunction yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)}\nfunction KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p}\nfunction Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)}\nfunction bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l}\nfunction Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false}\nfunction XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)}\nfunction aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}}\nfunction fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0}\nfunction u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k}\nfunction AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c}\nfunction ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}}\nfunction j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}}\nif(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}}\nfunction aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)}\nfunction f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l}\nfunction fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}}\nfunction erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o=\"An edge must have a source node (edge id: '\"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q=\"The source port of an edge must be a port of the edge's source node (edge id: '\"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s=\"An edge must have a target node (edge id: '\"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u=\"The target port of an edge must be a port of the edge's target node (edge id: '\"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D}\nfunction DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g}\nfunction Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p}\nfunction WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)}\nfunction lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}}\nfunction qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f}\nfunction $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}}\nfunction Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc}\nfunction shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a}\nfunction z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k}\nfunction $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)}\nfunction sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c}\nfunction aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d}\nfunction P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)}\nfunction gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h}\nfunction xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))}\nfunction fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true}\nfunction X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p}\nfunction yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)}\nfunction Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true}\nfunction wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')}\nfunction jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc}\nfunction S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)}\nfunction KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?\":dfb(wue,a)?\"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{\"\\' \\t\\r\\n',nne=')]}\"\\' \\t\\r\\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne=\"Node '\",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse=\"Couldn't clone property '\",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite=\"The feature '\",jte=\"' is not a valid changeable feature\",kte='Expecting null',lte=\"' is not a valid feature\",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte=\"The datatype '\",ute=\"' is not a valid classifier\",vte=\"The value '\",wte={190:1,3:1,4:1},xte=\"The class '\",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte=\"An edge must have at least one source and one target (edge id: '\",$te=\"').\",_te='Referenced edge section does not exist: ',aue=\" (edge id: '\",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue=\"Passed edge is not 'simple'.\",jue='org.eclipse.elk.graph.util',kue=\"The 'no duplicates' constraint is violated\",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve=\"The value of type '\",Zve=\"' must be of type '\",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\\\i\\\\c*',Zwe='[\\\\i-[:]][\\\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\\\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\\u0660\\u0669\\u06F0\\u06F9\\u0966\\u096F\\u09E6\\u09EF\\u0A66\\u0A6F\\u0AE6\\u0AEF\\u0B66\\u0B6F\\u0BE7\\u0BEF\\u0C66\\u0C6F\\u0CE6\\u0CEF\\u0D66\\u0D6F\\u0E50\\u0E59\\u0ED0\\u0ED9\\u0F20\\u0F29',txe='AZaz\\xC0\\xD6\\xD8\\xF6\\xF8\\u0131\\u0134\\u013E\\u0141\\u0148\\u014A\\u017E\\u0180\\u01C3\\u01CD\\u01F0\\u01F4\\u01F5\\u01FA\\u0217\\u0250\\u02A8\\u02BB\\u02C1\\u0386\\u0386\\u0388\\u038A\\u038C\\u038C\\u038E\\u03A1\\u03A3\\u03CE\\u03D0\\u03D6\\u03DA\\u03DA\\u03DC\\u03DC\\u03DE\\u03DE\\u03E0\\u03E0\\u03E2\\u03F3\\u0401\\u040C\\u040E\\u044F\\u0451\\u045C\\u045E\\u0481\\u0490\\u04C4\\u04C7\\u04C8\\u04CB\\u04CC\\u04D0\\u04EB\\u04EE\\u04F5\\u04F8\\u04F9\\u0531\\u0556\\u0559\\u0559\\u0561\\u0586\\u05D0\\u05EA\\u05F0\\u05F2\\u0621\\u063A\\u0641\\u064A\\u0671\\u06B7\\u06BA\\u06BE\\u06C0\\u06CE\\u06D0\\u06D3\\u06D5\\u06D5\\u06E5\\u06E6\\u0905\\u0939\\u093D\\u093D\\u0958\\u0961\\u0985\\u098C\\u098F\\u0990\\u0993\\u09A8\\u09AA\\u09B0\\u09B2\\u09B2\\u09B6\\u09B9\\u09DC\\u09DD\\u09DF\\u09E1\\u09F0\\u09F1\\u0A05\\u0A0A\\u0A0F\\u0A10\\u0A13\\u0A28\\u0A2A\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59\\u0A5C\\u0A5E\\u0A5E\\u0A72\\u0A74\\u0A85\\u0A8B\\u0A8D\\u0A8D\\u0A8F\\u0A91\\u0A93\\u0AA8\\u0AAA\\u0AB0\\u0AB2\\u0AB3\\u0AB5\\u0AB9\\u0ABD\\u0ABD\\u0AE0\\u0AE0\\u0B05\\u0B0C\\u0B0F\\u0B10\\u0B13\\u0B28\\u0B2A\\u0B30\\u0B32\\u0B33\\u0B36\\u0B39\\u0B3D\\u0B3D\\u0B5C\\u0B5D\\u0B5F\\u0B61\\u0B85\\u0B8A\\u0B8E\\u0B90\\u0B92\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8\\u0BAA\\u0BAE\\u0BB5\\u0BB7\\u0BB9\\u0C05\\u0C0C\\u0C0E\\u0C10\\u0C12\\u0C28\\u0C2A\\u0C33\\u0C35\\u0C39\\u0C60\\u0C61\\u0C85\\u0C8C\\u0C8E\\u0C90\\u0C92\\u0CA8\\u0CAA\\u0CB3\\u0CB5\\u0CB9\\u0CDE\\u0CDE\\u0CE0\\u0CE1\\u0D05\\u0D0C\\u0D0E\\u0D10\\u0D12\\u0D28\\u0D2A\\u0D39\\u0D60\\u0D61\\u0E01\\u0E2E\\u0E30\\u0E30\\u0E32\\u0E33\\u0E40\\u0E45\\u0E81\\u0E82\\u0E84\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8A\\u0E8D\\u0E8D\\u0E94\\u0E97\\u0E99\\u0E9F\\u0EA1\\u0EA3\\u0EA5\\u0EA5\\u0EA7\\u0EA7\\u0EAA\\u0EAB\\u0EAD\\u0EAE\\u0EB0\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EBD\\u0EC0\\u0EC4\\u0F40\\u0F47\\u0F49\\u0F69\\u10A0\\u10C5\\u10D0\\u10F6\\u1100\\u1100\\u1102\\u1103\\u1105\\u1107\\u1109\\u1109\\u110B\\u110C\\u110E\\u1112\\u113C\\u113C\\u113E\\u113E\\u1140\\u1140\\u114C\\u114C\\u114E\\u114E\\u1150\\u1150\\u1154\\u1155\\u1159\\u1159\\u115F\\u1161\\u1163\\u1163\\u1165\\u1165\\u1167\\u1167\\u1169\\u1169\\u116D\\u116E\\u1172\\u1173\\u1175\\u1175\\u119E\\u119E\\u11A8\\u11A8\\u11AB\\u11AB\\u11AE\\u11AF\\u11B7\\u11B8\\u11BA\\u11BA\\u11BC\\u11C2\\u11EB\\u11EB\\u11F0\\u11F0\\u11F9\\u11F9\\u1E00\\u1E9B\\u1EA0\\u1EF9\\u1F00\\u1F15\\u1F18\\u1F1D\\u1F20\\u1F45\\u1F48\\u1F4D\\u1F50\\u1F57\\u1F59\\u1F59\\u1F5B\\u1F5B\\u1F5D\\u1F5D\\u1F5F\\u1F7D\\u1F80\\u1FB4\\u1FB6\\u1FBC\\u1FBE\\u1FBE\\u1FC2\\u1FC4\\u1FC6\\u1FCC\\u1FD0\\u1FD3\\u1FD6\\u1FDB\\u1FE0\\u1FEC\\u1FF2\\u1FF4\\u1FF6\\u1FFC\\u2126\\u2126\\u212A\\u212B\\u212E\\u212E\\u2180\\u2182\\u3007\\u3007\\u3021\\u3029\\u3041\\u3094\\u30A1\\u30FA\\u3105\\u312C\\u4E00\\u9FA5\\uAC00\\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\\x00\\x7F\\x80\\xFF\\u0100\\u017F\\u0180\\u024F\\u0250\\u02AF\\u02B0\\u02FF\\u0300\\u036F\\u0370\\u03FF\\u0400\\u04FF\\u0530\\u058F\\u0590\\u05FF\\u0600\\u06FF\\u0700\\u074F\\u0780\\u07BF\\u0900\\u097F\\u0980\\u09FF\\u0A00\\u0A7F\\u0A80\\u0AFF\\u0B00\\u0B7F\\u0B80\\u0BFF\\u0C00\\u0C7F\\u0C80\\u0CFF\\u0D00\\u0D7F\\u0D80\\u0DFF\\u0E00\\u0E7F\\u0E80\\u0EFF\\u0F00\\u0FFF\\u1000\\u109F\\u10A0\\u10FF\\u1100\\u11FF\\u1200\\u137F\\u13A0\\u13FF\\u1400\\u167F\\u1680\\u169F\\u16A0\\u16FF\\u1780\\u17FF\\u1800\\u18AF\\u1E00\\u1EFF\\u1F00\\u1FFF\\u2000\\u206F\\u2070\\u209F\\u20A0\\u20CF\\u20D0\\u20FF\\u2100\\u214F\\u2150\\u218F\\u2190\\u21FF\\u2200\\u22FF\\u2300\\u23FF\\u2400\\u243F\\u2440\\u245F\\u2460\\u24FF\\u2500\\u257F\\u2580\\u259F\\u25A0\\u25FF\\u2600\\u26FF\\u2700\\u27BF\\u2800\\u28FF\\u2E80\\u2EFF\\u2F00\\u2FDF\\u2FF0\\u2FFF\\u3000\\u303F\\u3040\\u309F\\u30A0\\u30FF\\u3100\\u312F\\u3130\\u318F\\u3190\\u319F\\u31A0\\u31BF\\u3200\\u32FF\\u3300\\u33FF\\u3400\\u4DB5\\u4E00\\u9FFF\\uA000\\uA48F\\uA490\\uA4CF\\uAC00\\uD7A3\\uE000\\uF8FF\\uF900\\uFAFF\\uFB00\\uFB4F\\uFB50\\uFDFF\\uFE20\\uFE2F\\uFE30\\uFE4F\\uFE50\\uFE6F\\uFE70\\uFEFE\\uFEFF\\uFEFF\\uFF00\\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,\"Can't add a queue to itself\");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),\"Factor for repulsive forces in Eades' model.\"),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),\"Maximum number of performed iterations. Takes higher precedence than 'epsilon'.\"),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),\"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed.\"),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),\"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes.\"),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),\"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine.\"),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),\"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected.\"),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),\"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected.\"),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),\"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints.\"),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),\"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine.\"),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),\"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation.\"),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),\"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used.\"),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),\"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges.\"),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),\"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false.\"),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),\"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments.\"),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),\"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent.\"),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),\"Default value of the 'nodeFlexibility' option for the children of a hierarchical node.\"),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),\"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node.\"),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),\"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used.\"),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),\"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer.\"),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),\"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself.\"),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),\"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'.\"),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),\"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option.\"),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\\r|\\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}| |\\t|\\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),\"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points.\"),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),\"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`.\"),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),\"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately.\"),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),\"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout.\"),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),\"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position.\"),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),\"Label managers can shorten labels upon a layout algorithm's request.\"),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),\"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels.\"),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),\"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node.\"),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),\"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set.\"),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),\"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'.\"),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),\"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated.\"),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),\"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option.\"),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),\"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option.\"),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),\"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option.\"),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),\"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option.\"),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),\"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent.\"),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),\"Hints for where node labels are to be placed; if empty, the node label's position is not modified.\"),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),\"Defines how ports on the northern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),\"Defines how ports on the southern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),\"Defines how ports on the western side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),\"Defines how ports on the eastern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),\"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed.\"),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),\"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so.\"),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),\"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible.\"),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),\"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case.\"),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),\"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports.\"),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),\"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border.\"),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),\"Decides on a placement method for port labels; if empty, the node label's position is not modified.\"),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),\"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE.\"),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),\"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports.\"),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called \"hierarchies\", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the \"topology-shape-metrics\" approach by Batini, Nardelli and Tamassia \\'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+\"'\"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+\"'\"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+\"'\"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+\"'\"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+\"'\"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+\" uri='\"+this.d+\"'\"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\\\d';else if(this==sfe)c='\\\\w';else if(this==nfe)c='\\\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\\\D';else if(this==lfe)c='\\\\W';else if(this==kfe)c='\\\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\\\'+HD(this.a&aje);break;case 12:d='\\\\f';break;case 10:d='\\\\n';break;case 13:d='\\\\r';break;case 9:d='\\\\t';break;case 27:d='\\\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]);\n// -------------- RUN GWT INITIALIZATION CODE -------------- \ngwtOnLoad(null, 'elk', null);\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],3:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*******************************************************************************\n * Copyright (c) 2021 Kiel University and others.\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n * \n * SPDX-License-Identifier: EPL-2.0\n *******************************************************************************/\nvar ELK = require('./elk-api.js').default;\n\nvar ELKNode = function (_ELK) {\n _inherits(ELKNode, _ELK);\n\n function ELKNode() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ELKNode);\n\n var optionsClone = Object.assign({}, options);\n\n var workerThreadsExist = false;\n try {\n require.resolve('web-worker');\n workerThreadsExist = true;\n } catch (e) {}\n\n // user requested a worker\n if (options.workerUrl) {\n if (workerThreadsExist) {\n var Worker = require('web-worker');\n optionsClone.workerFactory = function (url) {\n return new Worker(url);\n };\n } else {\n console.warn('Web worker requested but \\'web-worker\\' package not installed. \\nConsider installing the package or pass your own \\'workerFactory\\' to ELK\\'s constructor.\\n... Falling back to non-web worker version.');\n }\n }\n\n // unless no other workerFactory is registered, use the fake worker\n if (!optionsClone.workerFactory) {\n var _require = require('./elk-worker.min.js'),\n _Worker = _require.Worker;\n\n optionsClone.workerFactory = function (url) {\n return new _Worker(url);\n };\n }\n\n return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone));\n }\n\n return ELKNode;\n}(ELK);\n\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports = ELKNode;\nELKNode.default = ELKNode;\n},{\"./elk-api.js\":1,\"./elk-worker.min.js\":2,\"web-worker\":4}],4:[function(require,module,exports){\n/**\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = Worker;\n},{}]},{},[3])(3)\n});\n","import { d as db, p as parser } from \"./flowDb-6a57c1b4.js\";\nimport { select, curveLinear, line } from \"d3\";\nimport { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel } from \"./edges-49ac43a2.js\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport { l as log, c as getConfig, p as setupGraphViewbox, k as getStylesFromArray, o as interpolateToCurve, e as common } from \"./mermaid-b0ad2de1.js\";\nimport ELK from \"elkjs/lib/elk.bundled.js\";\nimport \"./createText-3df630b5.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"./svgDraw-0fcc813d.js\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst findCommonAncestor = (id1, id2, treeData) => {\n const { parentById } = treeData;\n const visited = /* @__PURE__ */ new Set();\n let currentId = id1;\n while (currentId) {\n visited.add(currentId);\n if (currentId === id2) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n currentId = id2;\n while (currentId) {\n if (visited.has(currentId)) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n return \"root\";\n};\nconst elk = new ELK();\nlet portPos = {};\nconst conf = {};\nlet nodeDb = {};\nconst addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const nodes = svg.insert(\"g\").attr(\"class\", \"nodes\");\n const keys = Object.keys(vert);\n await Promise.all(\n keys.map(async function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles2 = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n const labelData = { width: 0, height: 0 };\n const ports = [\n {\n id: vertex.id + \"-west\",\n layoutOptions: {\n \"port.side\": \"WEST\"\n }\n },\n {\n id: vertex.id + \"-east\",\n layoutOptions: {\n \"port.side\": \"EAST\"\n }\n },\n {\n id: vertex.id + \"-south\",\n layoutOptions: {\n \"port.side\": \"SOUTH\"\n }\n },\n {\n id: vertex.id + \"-north\",\n layoutOptions: {\n \"port.side\": \"NORTH\"\n }\n }\n ];\n let radious = 0;\n let _shape = \"\";\n let layoutOptions = {};\n switch (vertex.type) {\n case \"round\":\n radious = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n layoutOptions = {\n portConstraints: \"FIXED_SIDE\"\n };\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const node = {\n labelStyle: styles2.labelStyle,\n shape: _shape,\n labelText: vertexText,\n labelType: vertex.labelType,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles2.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n };\n let boundingBox;\n let nodeEl;\n if (node.type !== \"group\") {\n nodeEl = await insertNode(nodes, node, vertex.dir);\n boundingBox = nodeEl.node().getBBox();\n } else {\n doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true);\n labelData.width = bbox.width;\n labelData.wrappingWidth = getConfig().flowchart.wrappingWidth;\n labelData.height = bbox.height;\n labelData.labelNode = shapeSvg.node();\n node.labelData = labelData;\n }\n const data = {\n id: vertex.id,\n ports: vertex.type === \"diamond\" ? ports : [],\n // labelStyle: styles.labelStyle,\n // shape: _shape,\n layoutOptions,\n labelText: vertexText,\n labelData,\n // labels: [{ text: vertexText }],\n // rx: radius,\n // ry: radius,\n // class: classStr,\n // style: styles.style,\n // link: vertex.link,\n // linkTarget: vertex.linkTarget,\n // tooltip: diagObj.db.getTooltip(vertex.id) || '',\n domId: diagObj.db.lookUpDomId(vertex.id),\n // haveCallback: vertex.haveCallback,\n width: boundingBox == null ? void 0 : boundingBox.width,\n height: boundingBox == null ? void 0 : boundingBox.height,\n // dir: vertex.dir,\n type: vertex.type,\n // props: vertex.props,\n // padding: getConfig().flowchart.padding,\n // boundingBox,\n el: nodeEl,\n parent: parentLookupDb.parentById[vertex.id]\n };\n nodeDb[node.id] = data;\n })\n );\n return graph;\n};\nconst getNextPosition = (position, edgeDirection, graphDirection) => {\n const portPos2 = {\n TB: {\n in: {\n north: \"north\"\n },\n out: {\n south: \"west\",\n west: \"east\",\n east: \"south\"\n }\n },\n LR: {\n in: {\n west: \"west\"\n },\n out: {\n east: \"south\",\n south: \"north\",\n north: \"east\"\n }\n },\n RL: {\n in: {\n east: \"east\"\n },\n out: {\n west: \"north\",\n north: \"south\",\n south: \"west\"\n }\n },\n BT: {\n in: {\n south: \"south\"\n },\n out: {\n north: \"east\",\n east: \"west\",\n west: \"north\"\n }\n }\n };\n portPos2.TD = portPos2.TB;\n log.info(\"abc88\", graphDirection, edgeDirection, position);\n return portPos2[graphDirection][edgeDirection][position];\n};\nconst getNextPort = (node, edgeDirection, graphDirection) => {\n log.info(\"getNextPort abc88\", { node, edgeDirection, graphDirection });\n if (!portPos[node]) {\n switch (graphDirection) {\n case \"TB\":\n case \"TD\":\n portPos[node] = {\n inPosition: \"north\",\n outPosition: \"south\"\n };\n break;\n case \"BT\":\n portPos[node] = {\n inPosition: \"south\",\n outPosition: \"north\"\n };\n break;\n case \"RL\":\n portPos[node] = {\n inPosition: \"east\",\n outPosition: \"west\"\n };\n break;\n case \"LR\":\n portPos[node] = {\n inPosition: \"west\",\n outPosition: \"east\"\n };\n break;\n }\n }\n const result = edgeDirection === \"in\" ? portPos[node].inPosition : portPos[node].outPosition;\n if (edgeDirection === \"in\") {\n portPos[node].inPosition = getNextPosition(\n portPos[node].inPosition,\n edgeDirection,\n graphDirection\n );\n } else {\n portPos[node].outPosition = getNextPosition(\n portPos[node].outPosition,\n edgeDirection,\n graphDirection\n );\n }\n return result;\n};\nconst getEdgeStartEndPoint = (edge, dir) => {\n let source = edge.start;\n let target = edge.end;\n const sourceId = source;\n const targetId = target;\n const startNode = nodeDb[source];\n const endNode = nodeDb[target];\n if (!startNode || !endNode) {\n return { source, target };\n }\n if (startNode.type === \"diamond\") {\n source = `${source}-${getNextPort(source, \"out\", dir)}`;\n }\n if (endNode.type === \"diamond\") {\n target = `${target}-${getNextPort(target, \"in\", dir)}`;\n }\n return { source, target, sourceId, targetId };\n};\nconst addEdges = function(edges, diagObj, graph, svg) {\n log.info(\"abc78 edges = \", edges);\n const labelsEl = svg.insert(\"g\").attr(\"class\", \"edgeLabels\");\n let linkIdCnt = {};\n let dir = diagObj.db.getDirection();\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n style = styles2.style;\n labelStyle = styles2.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n const labelEl = insertEdgeLabel(labelsEl, edgeData);\n const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);\n log.debug(\"abc78 source and target\", source, target);\n graph.edges.push({\n id: \"e\" + edge.start + edge.end,\n sources: [source],\n targets: [target],\n sourceId,\n targetId,\n labelEl,\n labels: [\n {\n width: edgeData.width,\n height: edgeData.height,\n orgWidth: edgeData.width,\n orgHeight: edgeData.height,\n text: edgeData.label,\n layoutOptions: {\n \"edgeLabels.inline\": \"true\",\n \"edgeLabels.placement\": \"CENTER\"\n }\n }\n ],\n edgeData\n });\n });\n return graph;\n};\nconst addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) {\n let url = \"\";\n if (arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (edgeData.arrowTypeStart) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-crossStart)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-pointStart)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-barbStart)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-circleStart)\");\n break;\n case \"aggregation\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-aggregationStart)\");\n break;\n case \"extension\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-extensionStart)\");\n break;\n case \"composition\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-compositionStart)\");\n break;\n case \"dependency\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-dependencyStart)\");\n break;\n case \"lollipop\":\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + diagramType + \"-lollipopStart)\");\n break;\n }\n switch (edgeData.arrowTypeEnd) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-crossEnd)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-pointEnd)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-barbEnd)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-circleEnd)\");\n break;\n case \"aggregation\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-aggregationEnd)\");\n break;\n case \"extension\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-extensionEnd)\");\n break;\n case \"composition\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-compositionEnd)\");\n break;\n case \"dependency\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-dependencyEnd)\");\n break;\n case \"lollipop\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + diagramType + \"-lollipopEnd)\");\n break;\n }\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n diagObj.db.clear(\"ver-2\");\n try {\n diagObj.parse(text);\n return diagObj.db.getClasses();\n } catch (e) {\n return {};\n }\n};\nconst addSubGraphs = function(db2) {\n const parentLookupDb = { parentById: {}, childrenById: {} };\n const subgraphs = db2.getSubGraphs();\n log.info(\"Subgraphs - \", subgraphs);\n subgraphs.forEach(function(subgraph) {\n subgraph.nodes.forEach(function(node) {\n parentLookupDb.parentById[node] = subgraph.id;\n if (parentLookupDb.childrenById[subgraph.id] === void 0) {\n parentLookupDb.childrenById[subgraph.id] = [];\n }\n parentLookupDb.childrenById[subgraph.id].push(node);\n });\n });\n subgraphs.forEach(function(subgraph) {\n ({ id: subgraph.id });\n if (parentLookupDb.parentById[subgraph.id] !== void 0) {\n parentLookupDb.parentById[subgraph.id];\n }\n });\n return parentLookupDb;\n};\nconst calcOffset = function(src, dest, parentLookupDb) {\n const ancestor = findCommonAncestor(src, dest, parentLookupDb);\n if (ancestor === void 0 || ancestor === \"root\") {\n return { x: 0, y: 0 };\n }\n const ancestorOffset = nodeDb[ancestor].offset;\n return { x: ancestorOffset.posX, y: ancestorOffset.posY };\n};\nconst insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) {\n const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);\n const src = edge.sections[0].startPoint;\n const dest = edge.sections[0].endPoint;\n const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];\n const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);\n const points = [\n [src.x + offset.x, src.y + offset.y],\n ...segPoints,\n [dest.x + offset.x, dest.y + offset.y]\n ];\n const curve = line().curve(curveLinear);\n const edgePath = edgesEl.insert(\"path\").attr(\"d\", curve(points)).attr(\"class\", \"path \" + edgeData.classes).attr(\"fill\", \"none\");\n const edgeG = edgesEl.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));\n const box = edgeWithLabel.node().firstChild.getBoundingClientRect();\n edgeWithLabel.attr(\"width\", box.width);\n edgeWithLabel.attr(\"height\", box.height);\n edgeG.attr(\n \"transform\",\n `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`\n );\n addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);\n};\nconst insertChildren = (nodeArray, parentLookupDb) => {\n nodeArray.forEach((node) => {\n if (!node.children) {\n node.children = [];\n }\n const childIds = parentLookupDb.childrenById[node.id];\n if (childIds) {\n childIds.forEach((childId) => {\n node.children.push(nodeDb[childId]);\n });\n }\n insertChildren(node.children, parentLookupDb);\n });\n};\nconst draw = async function(text, id, _version, diagObj) {\n var _a;\n diagObj.db.clear();\n nodeDb = {};\n portPos = {};\n diagObj.db.setGen(\"gen-2\");\n diagObj.parser.parse(text);\n const renderEl = select(\"body\").append(\"div\").attr(\"style\", \"height:400px\").attr(\"id\", \"cy\");\n let graph = {\n id: \"root\",\n layoutOptions: {\n \"elk.hierarchyHandling\": \"INCLUDE_CHILDREN\",\n \"org.eclipse.elk.padding\": \"[top=100, left=100, bottom=110, right=110]\",\n \"elk.layered.spacing.edgeNodeBetweenLayers\": \"30\",\n // 'elk.layered.mergeEdges': 'true',\n \"elk.direction\": \"DOWN\"\n // 'elk.ports.sameLayerEdges': true,\n // 'nodePlacement.strategy': 'SIMPLE',\n },\n children: [],\n edges: []\n };\n log.info(\"Drawing flowchart using v3 renderer\", elk);\n let dir = diagObj.db.getDirection();\n switch (dir) {\n case \"BT\":\n graph.layoutOptions[\"elk.direction\"] = \"UP\";\n break;\n case \"TB\":\n graph.layoutOptions[\"elk.direction\"] = \"DOWN\";\n break;\n case \"LR\":\n graph.layoutOptions[\"elk.direction\"] = \"RIGHT\";\n break;\n case \"RL\":\n graph.layoutOptions[\"elk.direction\"] = \"LEFT\";\n break;\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const svg = root.select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute);\n const vert = diagObj.db.getVertices();\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const subGraphsEl = svg.insert(\"g\").attr(\"class\", \"subgraphs\");\n const parentLookupDb = addSubGraphs(diagObj.db);\n graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);\n const edgesEl = svg.insert(\"g\").attr(\"class\", \"edges edgePath\");\n const edges = diagObj.db.getEdges();\n graph = addEdges(edges, diagObj, graph, svg);\n const nodes = Object.keys(nodeDb);\n nodes.forEach((nodeId) => {\n const node = nodeDb[nodeId];\n if (!node.parent) {\n graph.children.push(node);\n }\n if (parentLookupDb.childrenById[nodeId] !== void 0) {\n node.labels = [\n {\n text: node.labelText,\n layoutOptions: {\n \"nodeLabels.placement\": \"[H_CENTER, V_TOP, INSIDE]\"\n },\n width: node.labelData.width,\n height: node.labelData.height\n // width: 100,\n // height: 100,\n }\n ];\n delete node.x;\n delete node.y;\n delete node.width;\n delete node.height;\n }\n });\n insertChildren(graph.children, parentLookupDb);\n log.info(\"after layout\", JSON.stringify(graph, null, 2));\n const g = await elk.layout(graph);\n drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);\n log.info(\"after layout\", g);\n (_a = g.edges) == null ? void 0 : _a.map((edge) => {\n insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb);\n });\n setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth);\n renderEl.remove();\n};\nconst drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => {\n nodeArray.forEach(function(node) {\n if (node) {\n nodeDb[node.id].offset = {\n posX: node.x + relX,\n posY: node.y + relY,\n x: relX,\n y: relY,\n depth,\n width: node.width,\n height: node.height\n };\n if (node.type === \"group\") {\n const subgraphEl = subgraphsEl.insert(\"g\").attr(\"class\", \"subgraph\");\n subgraphEl.insert(\"rect\").attr(\"class\", \"subgraph subgraph-lvl-\" + depth % 5 + \" node\").attr(\"x\", node.x + relX).attr(\"y\", node.y + relY).attr(\"width\", node.width).attr(\"height\", node.height);\n const label = subgraphEl.insert(\"g\").attr(\"class\", \"label\");\n const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0;\n label.attr(\n \"transform\",\n `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})`\n );\n label.node().appendChild(node.labelData.labelNode);\n log.info(\"Id (UGH)= \", node.type, node.labels);\n } else {\n log.info(\"Id (UGH)= \", node.id);\n node.el.attr(\n \"transform\",\n `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`\n );\n }\n }\n });\n nodeArray.forEach(function(node) {\n if (node && node.type === \"group\") {\n drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1);\n }\n });\n};\nconst renderer = {\n getClasses,\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < 5; i++) {\n sections += `\n .subgraph-lvl-${i} {\n fill: ${options[`surface${i}`]};\n stroke: ${options[`surfacePeer${i}`]};\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span {\n color: ${options.titleColor};\n }\n\n .label text,span {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.85;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n\n .flowchart-label text {\n text-anchor: middle;\n }\n\n ${genSections(options)}\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser,\n styles\n};\nexport {\n diagram\n};\n"],"names":["f","module","r","e","n","t","o","i","c","require","u","a","p","exports","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","ELK","_this","_ref","_ref$defaultLayoutOpt","defaultLayoutOptions","_ref$algorithms","algorithms","workerFactory","workerUrl","factory","url","worker","PromisedWorker","graph","_ref2","_ref2$layoutOptions","layoutOptions","_ref2$logging","logging","_ref2$measureExecutio","measureExecutionTime","_this2","answer","msg","id","self","resolve","reject","err","res","json","resolver","javaException","global","$wnd","nb","xb","Fd","$g","_p","yq","Sq","Es","Jw","Vw","VA","dA","MA","PA","PB","bx","cx","vy","Nz","Yz","Ylb","Ymb","xmb","Fmb","Qmb","gcb","ccb","jcb","jtb","otb","qtb","_fb","bpb","kpb","ppb","Gpb","drb","dzb","fzb","fxb","Vxb","Ovb","byb","zyb","Zyb","_yb","hzb","jzb","lzb","nzb","rzb","zzb","Czb","Ezb","Gzb","Izb","Mzb","bBb","NBb","PBb","RBb","iCb","OCb","SCb","GDb","JDb","fEb","xEb","CEb","GEb","yFb","KGb","tIb","vIb","xIb","zIb","OIb","SIb","TJb","VJb","XJb","XKb","fKb","VKb","VLb","jLb","nLb","GLb","KLb","MLb","OLb","RLb","YLb","bMb","gMb","lMb","pMb","wMb","zMb","CMb","FMb","LMb","zNb","PNb","kOb","pOb","tOb","yOb","FOb","GPb","aQb","cQb","eQb","gQb","iQb","CQb","MQb","OQb","ASb","fTb","kTb","STb","fUb","DUb","VUb","YUb","_Ub","_Wb","QWb","XWb","jVb","DVb","VVb","$Vb","dXb","hXb","lXb","gYb","HYb","SYb","VYb","dZb","P$b","T$b","h1b","m1b","q1b","u1b","y1b","C1b","e2b","g2b","m2b","q2b","u2b","S2b","U2b","W2b","_2b","e3b","h3b","p3b","t3b","w3b","y3b","A3b","M3b","Q3b","U3b","Y3b","l4b","q4b","s4b","u4b","w4b","y4b","L4b","N4b","P4b","R4b","T4b","X4b","I5b","Q5b","T5b","Z5b","l6b","o6b","t6b","z6b","L6b","M6b","P6b","X6b","$6b","a7b","c7b","g7b","j7b","m7b","r7b","x7b","D7b","D9b","b9b","h9b","j9b","l9b","w9b","F9b","hac","jac","pac","uac","Iac","Kac","Sac","obc","rbc","vbc","Fbc","Jbc","Xbc","ccc","fcc","lcc","occ","tcc","ycc","Acc","Ccc","Ecc","Gcc","Zcc","_cc","bdc","fdc","jdc","pdc","sdc","ydc","Adc","Cdc","Edc","Idc","Ndc","Qdc","Sdc","Udc","Wdc","Ydc","aec","hec","jec","lec","nec","uec","wec","yec","Aec","Fec","Jec","Lec","Nec","Rec","Uec","Zec","Zfc","lfc","tfc","xfc","zfc","Ffc","Jfc","Nfc","Pfc","Vfc","_fc","fgc","jgc","lgc","Bgc","ehc","ghc","ihc","khc","mhc","ohc","qhc","yhc","Ahc","Ghc","Ihc","Khc","Mhc","Shc","Uhc","Whc","dic","dlc","blc","flc","hlc","jlc","Glc","Ilc","Klc","Mlc","Mjc","Qjc","Qlc","Ulc","Ylc","Lkc","Nkc","Pkc","Rkc","Xkc","_kc","gmc","kmc","zmc","Fmc","Wmc","$mc","anc","mnc","wnc","Hnc","Jnc","Lnc","Nnc","Pnc","Ync","eoc","Aoc","Coc","Eoc","Joc","Loc","Zoc","_oc","bpc","hpc","kpc","ppc","pFc","Ryc","QCc","PDc","xGc","HGc","JGc","NGc","GIc","iKc","mKc","wKc","yKc","AKc","EKc","KKc","OKc","QKc","SKc","UKc","YKc","aLc","fLc","hLc","nLc","pLc","tLc","vLc","zLc","BLc","DLc","FLc","sMc","JMc","hNc","RNc","ZNc","_Nc","bOc","dOc","fOc","hOc","hRc","jRc","KRc","NRc","NQc","LQc","_Qc","cPc","iPc","kPc","mPc","xPc","zPc","zSc","BSc","GSc","ISc","NSc","TSc","NTc","NVc","oVc","SVc","VVc","XVc","ZVc","bWc","bXc","CXc","FXc","IXc","MXc","UXc","bYc","fYc","oYc","qYc","uYc","pZc","G$c","h0c","N0c","k1c","I1c","Q1c","f2c","i2c","k2c","w2c","O2c","S2c","Z2c","v3c","x3c","R3c","U3c","e4c","w4c","x4c","z4c","B4c","D4c","F4c","H4c","J4c","L4c","N4c","P4c","R4c","T4c","V4c","X4c","Z4c","_4c","_7c","b5c","d5c","f5c","h5c","H5c","Hfd","Zfd","Zed","ged","Jed","Ned","Red","Ved","bbd","mdd","_fd","fgd","kgd","Mgd","Ahd","Ald","Tld","xkd","rmd","knd","Jod","JCd","Bpd","BFd","oFd","bqd","bvd","jvd","yud","Hxd","EBd","aDd","MGd","vHd","RHd","wNd","zNd","CNd","KNd","XNd","$Nd","HPd","lUd","XUd","DWd","GWd","JWd","MWd","PWd","SWd","VWd","YWd","_Wd","xYd","BYd","mZd","EZd","GZd","JZd","MZd","PZd","SZd","VZd","YZd","_Zd","c$d","f$d","i$d","l$d","o$d","r$d","u$d","x$d","A$d","D$d","G$d","J$d","M$d","P$d","S$d","V$d","Y$d","_$d","c_d","f_d","i_d","l_d","o_d","r_d","u_d","x_d","A_d","D_d","G_d","J_d","M_d","P_d","S_d","V_d","Y_d","h5d","U6d","U9d","_8d","fae","hae","kae","nae","qae","tae","wae","zae","Cae","Fae","Iae","Lae","Oae","Rae","Uae","Xae","$ae","bbe","ebe","hbe","kbe","nbe","qbe","tbe","wbe","zbe","Cbe","Fbe","Ibe","Lbe","Obe","Rbe","Ube","Xbe","$be","bce","ece","hce","kce","nce","qce","tce","wce","zce","Cce","Fce","Ice","Lce","Oce","Rce","Uce","Xce","ude","Vge","dhe","ol","wb","oPb","nPb","EPb","CPb","gFb","fFb","TRb","SRb","ySb","wSb","PSb","OSb","dTb","bTb","i4b","b4b","D2b","x2b","J6b","D6b","u9b","q9b","$9b","I9b","Umc","Imc","abc","Vac","ZCc","VCc","kCc","hCc","rCc","oCc","Tcc","Occ","xkc","gkc","xDc","rDc","iDc","cDc","kwc","jwc","tJc","jJc","dJc","aJc","Pyc","Nyc","VBc","SBc","CFc","yFc","CUc","wUc","lUc","fUc","sUc","pUc","IUc","GUc","IWc","HWc","_Wc","ZWc","fHc","dHc","f0c","d0c","B0c","A0c","L0c","J0c","LTc","JTc","sTc","rTc","KLc","ILc","wNc","tNc","PYc","OYc","nZc","lZc","q3c","p3c","Z7c","X7c","Z9c","Y9c","_ad","Zad","kdd","idd","$md","Smd","HGd","tGd","hLd","NKd","J6d","Uge","Mvb","uCb","Yb","cc","cj","ij","Dj","df","kf","ah","lh","th","Ph","vi","Ci","Fk","Ln","ap","zp","Yp","qq","Dq","wr","Ir","sj","sw","fw","xw","Cw","Qw","Rw","Xw","Xv","Sv","eu","Zx","_x","xy","xB","HB","TB","fC","wB","MBb","b","w_b","x_b","YOb","$Ob","ZGb","qNb","rNb","dRb","eRb","z_b","y_b","__b","E0b","njc","mjc","dFc","eFc","nOc","oOc","pOc","qOc","rOc","sOc","$Pc","_Pc","DVc","EVc","FVc","SZc","TZc","c$c","bJd","A1d","J1d","B1d","K1d","L1d","M1d","N1d","d2d","e2d","f2d","g2d","h2d","i2d","Z8d","$8d","g9d","Cic","Dg","vib","eib","Pib","Vib","$ib","mcb","Mcb","Xcb","Ndb","_db","teb","Qeb","djb","Gjb","Njb","Bjb","lnb","Dnb","anb","Mob","Rob","iob","olb","qub","Tub","Vub","Xub","Zub","tpb","_pb","Wqb","nsb","Rxb","Txb","Xxb","bzb","tzb","vzb","xzb","Kzb","Ozb","iAb","kAb","mAb","BAb","hBb","jBb","nBb","TBb","XBb","QCb","WCb","_Cb","dEb","QGb","YGb","tKb","CLb","JMb","RNb","kQb","mQb","FQb","ETb","UTb","dUb","hUb","EZb","j$b","v$b","J0b","M0b","R0b","U0b","i2b","k2b","o2b","s2b","G2b","I2b","K2b","M2b","W3b","$3b","V4b","u5b","A7b","G7b","J7b","M7b","Mbc","Pbc","lac","nac","qcc","Gdc","$dc","cec","_ec","pfc","Bfc","Lfc","ygc","Dgc","shc","uhc","whc","Chc","Ehc","Ohc","Yhc","Tkc","Vkc","Olc","pnc","rnc","dpc","fpc","GCc","KCc","mDc","jEc","HEc","FEc","qoc","bFc","GFc","iGc","kGc","mGc","$Gc","hIc","lIc","pIc","tIc","xIc","zIc","CIc","LIc","CKc","IKc","MKc","$Kc","cLc","jLc","rLc","xLc","OMc","ZOc","ZRc","aSc","I$c","K$c","M$c","O$c","U$c","n1c","z1c","B1c","Q2c","U2c","z3c","med","Xed","_ed","Qfd","Bgd","$gd","lrd","urd","vrd","wrd","xrd","yrd","zrd","Ard","Brd","Crd","Ird","Krd","Lrd","Mrd","Nrd","Prd","Srd","Yrd","Zrd","_rd","asd","bsd","csd","dsd","msd","osd","qsd","ssd","Wsd","Lsd","thd","qtd","yBd","GBd","MBd","SBd","iCd","YMd","GNd","EPd","EQd","NTd","qOd","lVd","VVd","iYd","RYd","ZYd","z0d","O0d","s0d","W5d","cge","xfe","Tfd","jkb","Vjb","Rkb","Ckb","Lqb","Uhb","lEb","kEb","A_b","UQd","FQd","v6d","moc","yXb","Ji","vbb","DB","LB","ZB","lC","EC","wC","SB","hcb","mvd","ovd","zJb","j5b","g5b","PXc","plc","G0b","hp","As","Zl","Ql","jq","sq","Fq","im","Sz","Rz","Qz","gz","Xy","xcb","pcb","tcb","Bdb","Vdb","Ydb","Geb","bgb","Apb","Jpb","utb","x2c","rQd","MPd","tTb","mt","fA","rcb","dCb","Tvb","Ekb","sKb","UHb","SMc","Qqb","vBd","uAd","wBd","vAd","GLd","Uhd","d7d","D2d","mj","Odb","Tdb","Tqb","gyb","Wvb","KFb","PFb","FFb","pGb","MFb","ZQb","Gxb","Pwb","jUb","PTb","sDb","oDb","zDb","tDb","CWb","HXb","nYb","BYb","fLb","vYb","a2b","wZb","TCc","zJc","uMc","wdc","vKc","twb","oHb","$Gb","LXb","L_b","H_b","p0b","s0b","WMc","VMc","bNc","EPc","CPc","JPc","OPc","w1c","s1c","s7c","Psb","apd","ppd","lDd","YCd","NDd","mFd","vFd","GFd","KPd","OJd","hJd","aQd","SSd","FId","rUd","oUd","NYd","cZd","R8d","o9d","i9d","hee","Dd","yd","Hd","ph","Sh","Wc","oi","Ii","Zdd","QSc","D2c","QXc","e_c","d_c","_k","$k","al","Lk","Kk","Mk","vb","hs","gs","is","rs","Gp","xp","Lo","Ep","Tp","Wn","wx","un","ov","dv","Mv","Br","Ov","Lw","hz","Yy","MB","eC","Ftb","Atb","zwb","Vy","Sy","LVb","NVb","lIb","vfd","Dfd","Odc","rjc","Wyc","Xyc","ERb","Xr","tC","vC","yC","ocb","qcb","ucb","vcb","fGc","LFc","c0d","kzd","bhd","Rgd","dhd","Cdb","Wdb","Zdb","Feb","Heb","Ccb","Edb","Gdb","jfb","tfb","akb","Hwb","pIb","qIb","amb","wVb","qVb","Blb","Glb","cgb","cqd","n8d","y2c","z2c","mde","pc","qc","Ki","Kz","Jz","jz","iz","KA","JA","OB","NB","jc","zh","Pi","Pj","Qj","Ym","Gb","GD","Qb","She","oy","Bs","iw","CYb","scb","Oeb","Hfb","Ifb","Ufb","Vfb","Xfb","zob","Yob","Inb","Gob","Az","wrb","vrb","yrb","Mtb","Vtb","Lcb","Wcb","Peb","eCb","PC","GC","rdb","_B","_Db","ZDb","$Db","aEb","HGb","IGb","JGb","dLb","eLb","zVb","AVb","KOb","DHb","g7c","uvb","zvb","wJc","kOc","WQc","Lic","SFc","RFc","M2c","M3c","L3c","N3c","O3c","P3c","Q3c","b4c","c4c","d4c","z5c","y5c","A5c","B5c","C5c","D5c","E5c","F5c","G5c","Vdd","Wdd","ykc","F0b","T$c","R$c","RGc","cEc","iHc","t7c","Qsb","aPb","_Ob","Ixd","zud","dCd","ZBd","fCd","p_b","q_b","d7c","aPc","NJd","DId","X1d","Oc","gdb","Vd","sn","Gv","Fv","Kv","hdb","fdb","Fhd","Ehd","ond","Hhd","Ghd","Cod","LFd","KFd","qZd","p8d","o8d","Y9d","r8d","q8d","dae","lvd","n4c","Srb","enb","fnb","gnb","jnb","Cnb","Uqb","Mqb","tgb","lgb","ngb","Hxb","Qwb","_ub","Sub","Bfb","Cfb","Ffb","Lfb","WAb","Tzb","Wsb","pD","aIc","h2c","c2c","cCb","WHb","VHb","XHb","jVc","ZUc","L2c","K$","tRc","h$","Q$c","J_","OCd","PCd","QCd","RCd","SCd","TCd","UCd","VCd","WCd","XCd","ahe","bhe","Rge","ege","dge","Vee","Fhe","Ehe","dde","$ce","Iz","xz","zz","Ybb","Wbb","ONd","Rxd","ZKd","TNd","Yf","zf","$f","Hf","rk","ek","gk","pk","yk","Ak","Fj","_j","dr","zr","So","qp","$q","$r","ne","Wo","bu","qu","qv","ox","Px","mC","Lb","rf","BD","Zv","$u","eB","Zfb","Yfb","Emb","Dmb","Vhb","hnb","inb","knb","Dob","dob","Rqb","fob","pb","jt","Mhb","Lp","Iie","Ryb","Syb","ye","sC","GB","FB","EB","Whb","yAb","Vzb","Gqb","Dqb","Csb","Osb","MAb","Myb","qDb","wDb","xDb","yDb","BFb","CFb","DFb","EFb","oGb","TGb","Ltb","Ktb","Otb","Utb","Ttb","Wtb","$xb","Zxb","$Yb","ZYb","cPb","bPb","dPb","EAb","DAb","a$b","_Zb","FDb","EDb","xUb","wUb","w2b","iVb","hVb","nVb","mVb","OVb","LWb","KWb","a4b","p9b","qgc","pgc","Hmc","FUc","j3c","i_c","h_c","k_c","s_c","r_c","t_c","R0c","Q0c","T0c","Vyc","Uyc","DCc","vCc","Une","r4c","Xrb","s4c","B3c","Shb","kKb","d","jKb","E3b","J3b","e9b","f9b","g3c","DQd","qA","nQd","$Oc","Pgd","Ogd","AFd","zFd","tFd","sFd","EFd","DFd","yFd","xFd","JFd","IFd","nRd","mRd","u4d","LRd","KRd","y4d","g5d","f5d","Q6d","P6d","pEd","oEd","tZd","rZd","Xge","Wge","Hz","jw","Lv","sib","Lpb","tqb","Dbb","ybb","Gbb","Crb","icb","Vrb","Nvb","Rub","Kub","wcb","Zy","mxb","Gyb","zx","yx","zlb","Dlb","Alb","Flb","ABb","uBb","GBb","Zq","aCb","lDb","uqb","pjb","kqb","VBb","BEb","sBb","yBb","EBb","KBb","aDb","tMb","oOb","SOb","SMb","NEb","VEb","sFb","hHb","OHb","FIb","wLb","YRb","zTb","rUb","oWb","SXb","k0b","z5b","T8b","ibc","Cec","rfc","Rfc","Tfc","bgc","ngc","Qhc","$hc","Z0b","ZVb","Dfc","dgc","Bmc","cWb","I$b","Unc","Oic","Bjc","Yjc","Gkc","Bpc","Jpc","Tpc","cqc","oqc","yqc","Hqc","Uqc","arc","mrc","zrc","Prc","Yrc","fsc","nsc","nzc","zzc","Kzc","Xzc","Dtc","lAc","uAc","CAc","LAc","UAc","aBc","uBc","DBc","MBc","sGc","VIc","EIc","qKc","GKc","lLc","mMc","fMc","ZLc","ZMc","IOc","GQc","PQc","RQc","ARc","rSc","TTc","_Tc","RUc","uVc","hWc","rWc","kXc","uXc","AYc","l$c","Z$c","D_c","O_c","c1c","cVb","nnc","x1c","D3c","O5c","a6c","m2c","W2c","f7c","G7c","j8c","iad","rad","Bad","Nad","ibd","tbd","Ibd","Ubd","gcd","scd","Ycd","udd","Jdd","Eed","bfd","dfd","ffd","Kfd","Mfd","Ofd","vgd","qgd","jrd","krd","mrd","nrd","qrd","rrd","srd","trd","Drd","Frd","Hrd","Jrd","Ord","Xqd","BIc","gIc","fIc","FHc","Arb","CMc","wMc","NNc","FNc","eCc","ZBc","aCc","Dsd","Urd","Wrd","kGd","nGd","bUd","zVd","C1d","MLd","Wud","f7d","_zd","Y1d","c8d","$Id","_Id","ivd","Rhb","cvd","hCd","qAd","e7d","R2d","Wd","PD","KD","Khe","LD","Lhe","ND","Mhe","Em","Kq","hr","Bbb","Ebb","Kbb","Jdb","pfb","cg","ag","oVb","pVb","RD","CCb","Dfb","Efb","Nfb","Pfb","Qfb","Mfb","Esb","Gsb","Fsb","Mqd","Rpd","kqd","Nqd","Dhe","Hhe","Fyd","cB","Sbb","fvb","bvb","jvb","nvb","Nqb","Ld","wmb","tCb","X6c","f3c","PJc","_Pb","VPb","yJb","xJb","as","wJb","Y8b","X8b","W8b","Cv","sl","vl","Nsd","Msd","$zd","Cyd","nNd","s4d","p4d","w4d","qRd","rEd","lcb","qfb","ww","mb","Mdb","Kdb","$db","beb","seb","ueb","hfb","Ny","kB","Mq","SC","TC","Hdb","QD","Idb","NIb","Fbb","mWb","hWb","kWb","nWb","iWb","G1b","Jkb","lrb","Frb","swb","Z1c","E2c","d3c","_gc","Hgc","bhc","ahc","Nlb","Klb","zsb","$rb","I_b","B_b","I6c","J6c","fad","aad","bad","gad","dad","_9c","Jzc","Fzc","Ezc","fcd","bcd","ccd","oid","Gfd","Kkd","k3c","y2d","z2d","ukd","vkd","wkd","_kd","cld","ald","bld","dld","eld","gmd","hmd","imd","nmd","omd","pmd","iKd","$Jd","_Jd","_ud","Xg","Vg","Ygb","Hgb","Zgb","rxb","wxb","KC","SI","Uhe","MGb","Hkb","xtb","tb","b2b","ntd","mpd","c2b","dAb","gAb","Vq","lr","dqd","_o","qo","eqd","fqd","Osd","q0b","HOb","LOb","IOb","uyb","lyb","lzd","NC","mBc","_Hd","wfd","UOd","wtd","VKd","XOd","bTd","QSd","eTd","Lge","wfe","CAd","fNc","eNc","Rpb","v1","h0d","i0d","GA","FA","Iy","UVd","TVd","_ge","Cxe","ohe","che","Dxe","rhe","Mg","Gg","up","Bp","Okb","Mlb","llb","Eqb","Ntb","Deb","Ctb","hDb","dOb","n_b","txb","bUb","ZTb","zP","Bh","Ah","fKc","FJc","Tgc","LJc","r1c","jBc","hBc","E6c","F6c","R6c","CQd","hA","fec","QZb","RZb","AOc","BOc","COc","RRd","a7d","Pp","mmb","Py","VI","nie","oAd","GAd","JLd","Uxd","b7d","t2d","Bv","Qv","Lq","rr","Sqb","pr","yfb","zfb","JD","AD","$A","YA","Yrb","jsb","isb","nk","RJc","SJc","Eub","kke","xHb","REc","aEc","tEc","OJc","aKc","k5c","cfb","Isd","Sfd","Kcb","ZDc","_6c","Y6c","mud","CHb","EQb","O6c","Ozd","Ajd","Wzd","otd","ytb","hue","Rld","gtd","ztb","Ivb","Hvb","xMd","pMd","BMd","K4d","N4d","X4d","_4d","C4d","k2d","G4d","I4d","c5d","aj","kj","Jj","Rj","she","xl","Qo","op","rj","Rl","Xm","Eb","Db","ur","Gr","Hs","Eg","bg","Uk","il","Ub","ot","I6d","H6d","Bcb","zcb","Acb","Jfb","Wfb","Xnb","Zob","Ry","au","xu","kfb","ifb","xfb","Xhe","fcb","nz","Etb","or","nr","Fxb","Jwb","FCb","ECb","aD","Hje","Ije","pDb","vDb","nGb","Btb","sCb","Asb","_rb","GUb","HUb","cxb","CKb","BKb","tle","NFb","OFb","Lkb","n6b","WKb","gLb","zXb","Qc","s7b","t7b","a1b","fBc","gBc","iBc","i3c","B2c","xBd","hhd","Sb","n5b","chc","Afe","lge","jm","Vp","ns","es","qs","ps","Oyd","$yd","bzd","sgc","Pu","Xj","Jie","Skb","Vz","gfb","wfb","Pkb","ZBb","Yr","Zr","Hsb","Isb","Cmd","Wwb","tib","Ptb","Xtb","Trb","ksb","mkb","lCb","yCb","qCb","lsb","Cg","qg","zkc","Rc","azc","wNb","JRb","CRb","G2c","I2c","t3c","St","Z6c","b7c","a7c","V6c","Dic","xed","u7c","n7c","AXb","xXb","GRd","dSd","hSd","fSd","sId","dId","zXd","nXd","BXd","DXd","FXd","PXd","RXd","XXd","pAd","w1d","V1d","p1d","N2d","P2d","a3d","xid","aTd","vtd","TOd","ypb","MUc","LUc","LCd","KCd","KVc","Hp","FUd","Tje","C9d","cde","G9d","jde","J9d","K9d","vdb","DD","ED","gB","Mf","Sf","Hg","bAb","vAb","sNb","pNb","dg","Yg","Pxb","Qxb","g4c","Wrb","i4c","wic","Ikb","B6c","eLc","$Jb","ZJb","pqb","tdd","sdd","fOb","gOb","qyb","F2b","f_b","_9b","gac","_Hb","lle","Kld","_hd","bmd","kpd","Cvd","Atd","Avd","bRd","c7d","C2d","DAd","Ohe","uVd","sYd","zyd","YOd","fTd","Xp","cq","LA","XMb","Ecb","Opb","Npb","Bz","Sfb","ijb","trb","hke","urb","Aib","Urb","_f","_Ab","Bxb","Cwb","Cxb","Dwb","_Bb","HD","mz","gRb","iTb","_Qb","sec","NIc","LDc","hSc","HRc","aHb","Ywb","Zwb","lxb","hxb","J_b","sqd","kmd","Wqd","tqd","lmd","Tod","P6c","c7c","u7b","v7b","dLd","pud","UKd","PYd","E2b","sjc","tjc","h1d","gve","mue","gUd","cUd","Q4d","U4d","n5d","i5d","p5d","v5d","t5d","A5d","y5d","D5d","d6d","Y5d","tk","ik","j6d","h6d","Fdb","dfb","Dxb","Exb","vBb","BBb","HBb","lfb","uTb","RTb","yNb","Cwc","fmc","emc","_Oc","S_b","Vxd","ecd","Zbd","_bd","$bd","zAd","Btd","vyb","ujb","Awb","czd","Pyd","fBb","rie","Avb","Bvb","aId","bId","O2d","Q2d","i3d","h3d","k3d","j3d","tn","Hv","Ldb","dIc","xqb","Nrb","$sb","Tkb","bCb","Xwb","uib","Kwb","iyb","Cbb","JCb","GCb","ICb","ntb","ltb","mtb","jzd","sGd","$Gd","ZGd","jmb","pxb","zxb","yxb","Hyb","Fyb","Kyb","Jyb","OEb","MEb","REb","QEb","WEb","UEb","ZEb","YEb","tFb","rFb","wFb","vFb","iHb","gHb","lHb","kHb","PHb","NHb","SHb","RHb","GIb","EIb","JIb","IIb","vJb","qJb","xLb","vLb","ALb","zLb","TMb","RMb","WMb","VMb","TOb","ROb","WOb","VOb","ePb","hPb","gPb","ZRb","XRb","aSb","_Rb","ATb","yTb","DTb","CTb","sUb","qUb","vUb","uUb","rWb","lWb","uWb","tWb","TXb","RXb","WXb","VXb","Mb","l0b","j0b","o0b","n0b","r0b","K_b","mKb","BZb","TNb","uOb","S3b","Z6b","n9b","x$b","$Ab","LGb","iLb","B6b","C6b","Fgc","Ggc","jbc","gbc","mbc","lbc","Cjc","Ajc","Fjc","Ejc","Clc","Alc","Flc","Elc","Cpc","Apc","Fpc","Epc","Kpc","Ipc","Npc","Mpc","Wpc","Rpc","Zpc","Ypc","$jc","Xjc","bkc","akc","Hkc","Fkc","Kkc","Jkc","dqc","bqc","gqc","fqc","rqc","mqc","uqc","tqc","zqc","xqc","Cqc","Bqc","Iqc","Gqc","Lqc","Kqc","Vqc","Sqc","Yqc","Xqc","brc","_qc","erc","drc","nrc","lrc","qrc","prc","Arc","yrc","Drc","Crc","Qrc","Orc","Trc","Src","Zrc","Xrc","asc","_rc","gsc","esc","jsc","isc","osc","msc","rsc","qsc","Etc","Ctc","Htc","Gtc","qzc","lzc","tzc","szc","Azc","xzc","Dzc","Czc","Mzc","Izc","Pzc","Ozc","MAc","KAc","PAc","OAc","mAc","kAc","pAc","oAc","vAc","tAc","yAc","xAc","DAc","BAc","GAc","FAc","VAc","TAc","YAc","XAc","$zc","Vzc","bAc","aAc","bBc","_Ac","eBc","dBc","vBc","tBc","yBc","xBc","EBc","CBc","HBc","GBc","NBc","LBc","QBc","PBc","tGc","rGc","wGc","vGc","WIc","UIc","ZIc","YIc","$Lc","YLc","bMc","aMc","gMc","eMc","jMc","iMc","JOc","HOc","MOc","LOc","HQc","FQc","KQc","JQc","DRc","yRc","GRc","FRc","tSc","qSc","wSc","vSc","UTc","STc","XTc","WTc","UUc","PUc","XUc","WUc","aUc","$Tc","dUc","cUc","wVc","tVc","zVc","yVc","iWc","fWc","lWc","kWc","sWc","pWc","vWc","uWc","lXc","iXc","oXc","nXc","vXc","sXc","yXc","xXc","BYc","zYc","EYc","DYc","m$c","k$c","p$c","o$c","$$c","Y$c","b_c","a_c","n_c","q_c","p_c","w_c","z_c","y_c","E_c","C_c","H_c","G_c","P_c","N_c","S_c","R_c","W0c","Z0c","Y0c","f1c","a1c","i1c","h1c","P5c","N5c","S5c","R5c","b6c","_5c","e6c","d6c","H7c","F7c","K7c","J7c","k8c","i8c","n8c","m8c","V8b","S8b","A5b","y5b","D5b","C5b","jad","ead","mad","lad","sad","qad","vad","uad","Cad","Aad","Fad","Ead","Oad","Mad","Rad","Qad","jbd","hbd","mbd","lbd","ubd","rbd","xbd","wbd","Kbd","Hbd","Nbd","Mbd","Vbd","Tbd","Ybd","Xbd","hcd","dcd","kcd","jcd","vcd","rcd","ycd","xcd","vdd","ydd","xdd","Kdd","Idd","Ndd","Mdd","$cd","Ucd","cdd","bdd","Fed","Ded","Ied","Hed","rgd","pgd","ugd","tgd","Esd","Csd","Hsd","Gsd","Yoc","NNd","SNd","bPc","nYc","L1c","T1c","Rrd","zCd","IVd","kWd","cWd","HXd","oXd","TXd","ZXd","JXd","LXd","NXd","VXd","_Xd","$j","Nq","Wq","Rq","ar","Nu","fr","Ex","Hx","Jq","Ru","YEc","SMd","WA","ed","pzb","qvb","fAb","$Bb","HVb","eBb","v_b","h5b","k5b","Lbb","zbb","iD","Rbb","rlc","D0b","uic","Tcd","DHc","EHc","zcd","DRb","Ksd","vSb","aBb","C6c","Vmc","Lsb","Nsb","Msb","rCb","mCb","dWb","Dnc","Cnc","_Gd","PNd","UNd","y1d","T0d","z1d","gFd","OEd","CEd","DEd","dFd","jFd","aje","ln","Vm","Wj","iy","Sdd","Upd","cC","WUd","VUd","Ydd","$6c","W6c","G6c","Dsb","Aq","Wm","vvb","Eeb","WPb","QPb","jtd","Xod","ltd","XPb","iYb","hYb","NZb","OZb","_Gb","YHb","ZHb","zfe","ige","o_b","JZb","X6d","W6d","Fwe","ex","gx","oeb","neb","JI","d$c","e$c","sQc","tQc","xfd","Bic","B0b","Ojc","dKc","Ecd","lHd","R7d","odb","ldb","Evd","e3c","Qrd","Kqd","OHd","PHd","SUd","UUd","TUd","Zj","oAb","IC","JC","Ucb","Tcb","xI","Ceb","Beb","MI","Yeb","Xeb","UI","ddb","cdb","yI","IVb","my","ir","Tw","mf","fqb","Vqb","Bsb","Rfb","$lb","YAb","Qyb","Aeb","wbb","jpb","Fcb","opb","Oyb","Bzb","vic","uNb","kmb","Xi","onc","YHc","ZHc","$Hc","_Hc","q$c","sEc","Elb","bVc","hVc","Voc","Toc","qed","red","pFd","ytd","KYd","jgd","MOb","Nr","ejc","$ic","ju","bt","Tbb","Bfe","rge","SEd","TEd","efb","rqb","Qpb","oCb","Dkb","wCb","qqb","nmb","Oz","Brb","Wyb","Nyb","Itb","vqb","wqb","Aub","Cub","ike","jke","MC","$Nb","ZNb","BLb","SVb","oEb","uEb","$Jc","Qgd","s9c","Mr","Lr","gfc","bfc","hfc","cfc","ACc","mHb","nHb","c3c","Dod","JHd","JMd","UTd","eXd","nWd","lXd","FNd","ote","MD","ID","De","u1d","W1d","uvd","Ty","Sr","Yge","fe","Ec","Ffe","Hge","Ubb","qD","a4d","Nbb","kD","Obb","lD","Pbb","mD","Dcb","Ddb","fx","dD","jD","rD","QAb","TAb","RAb","g1b","z0b","l1b","bac","Rnc","Snc","koc","poc","Iub","pBb","_vb","Pyb","_yc","Ohb","n6c","i6c","m6c","tcd","ncd","pcd","D6c","oOd","oie","gub","ipb","fpb","nHc","lHc","Pzd","Xzd","jUd","nSd","oSd","DSd","ESd","x0d","Lj","px","Dm","Cfe","Dge","Efe","nfb","Qhb","irb","Rrb","Vgb","amc","xJc","fkb","bkb","gkb","ckb","cv","Clb","ylb","Vvb","Nkb","Lyb","zjb","vCb","Goc","K2c","C2c","vVb","tVb","c2d","d1d","nlb","Kkb","zpb","Plb","Olb","Eje","Fje","Jhe","Nhe","D9d","Pje","Nwe","Qje","F9d","yRb","HMb","IMb","iq","avb","Lub","Rzb","uB","tB","vB","ffb","bfb","hLb","Axb","Iwb","Vsb","d3d","hkc","NAb","kkc","jkc","lOc","mOc","it","gKc","MAd","os","OC","yG","Kie","aRb","tPc","DPc","A6d","aLd","TKd","oRd","w2d","t3d","v2d","vId","uId","Dtd","mdb","zdb","jdb","Fc","Vi","ci","Uc","Pc","Yi","Fb","Ix","by","qj","Pb","Dfe","zge","FC","bv","Afb","Kfb","ovb","Phb","ZPb","isd","Qpd","ksd","dVb","H1b","pRb","HA","sA","v4c","hm","ux","xx","lmb","NFd","MFd","BZd","jGd","PFd","DZd","aac","Mpb","pTb","NHc","THc","MHc","gCb","Bvd","E1c","dYd","f0d","mxd","Rve","ct","usb","U6c","Uvb","Hb","pAb","Nfe","bfe","Q_b","LHd","m5","LQd","j5","Qzb","Szb","Uzb","Kpb","Ae","qlc","igd","Did","vid","WHc","Wwd","Vwd","Ywd","fxd","cxd","dxd","AYd","$1d","X0d","pdb","MNb","Cnd","Qzd","Yzd","Ms","$o","umb","cae","fod","Ewe","$9d","AZd","_ve","uZd","vfb","jrb","tmb","hpb","d2c","Y1c","ix","Iu","Mie","Oy","Um","CK","zie","hob","eob","gob","keb","wtb","Gbc","Hbc","kcb","OJb","MJb","QJb","BCb","vtb","xkb","Znd","Ynd","LPd","h3c","Old","z2","Nld","D2","Yod","F2","a2d","Gwe","a1d","b2d","b1d","Fg","Xx","Zeb","Zie","Mub","nqd","ctd","Xpd","Aqd","JAb","qBb","IBb","OAb","wBb","PAb","CBb","Cy","Ay","PWb","fPb","GO","o_c","N_","x_c","O_","X0c","W_","WD","l$b","QIc","rKc","WKc","gPc","Blc","Ggd","pec","Pmc","dmc","enc","xmc","Pid","QEd","KPb","Nnd","NQd","Ond","RQd","hqd","Yqd","P2b","Wod","B2","YEd","GEd","ied","jed","wEb","UVb","pQb","prd","ord","JVd","ZVd","cXd","mWd","jXd","Ng","YBd","lBb","u_b","Sie","FD","p4b","Gkb","PPb","OPb","NPb","gpb","ODb","LDb","NDb","MDb","MCb","HCb","nd","d2b","Qld","hkd","gxc","mcc","vNb","Nxc","POc","vPc","ooc","noc","hed","cgd","Zgc","wgc","iEb","Y2c","rb","oic","kic","pic","lic","Spd","FSd","U5d","QRc","Hec","wtc","Qsc","Rb","WKd","n5","t5","Vod","E2","Dx","Ni","Zi","rz","Oq","mr","vmb","VDb","Gfb","fVb","pu","hOb","FYb","UZb","K6c","eod","bod","eHc","Odd","Qdd","Gz","_Kd","$Kd","wjd","Jsd","t0d","u3b","h0b","Csc","Xz","Wy","Eob","Fob","grb","hrb","ofb","H2d","g","O7d","Cxd","nxd","vyd","$Ec","OQ","kne","KVd","R5d","cIb","THb","kBc","nBc","cBc","fX","$Ac","ZAc","crc","MW","$qc","Zqc","Aqc","JW","vqc","wqc","Lpc","FW","Gpc","Hpc","psc","SW","ksc","lsc","EAc","cX","zAc","AAc","XIc","mY","TIc","SIc","KOc","DZ","GOc","FOc","_Lc","fZ","XLc","WLc","hMc","gZ","cMc","dMc","IQc","YZ","DQc","EQc","bUc","F$","ZTc","YTc","VTc","E$","QTc","RTc","VUc","NUc","OUc","jWc","X$","dWc","eWc","g1c","X_","_0c","$0c","F_c","P_","B_c","A_c","PEb","aN","LEb","KEb","XEb","bN","SEb","TEb","$Rb","gP","VRb","WRb","B5b","ZR","x5b","w5b","lid","hgd","Xwd","exd","pNd","MKd","qNd","bQc","jle","kle","aIb","$Cb","NGb","UGb","iKb","hKb","tlb","pCb","vlb","oje","YPb","Ksb","uz","tz","Cx","QUb","zUb","Lwb","NJb","zid","uid","hvd","evd","dvd","g_c","VZc","b$c","ZA","no","Fx","ecb","dkb","Zjb","wkb","aC","bC","tdb","_bb","Mld","fmd","Ind","Fod","nid","tid","Ve","Uud","t_b","A4b","Zod","BGc","SX","RHc","SHc","BHc","vle","Yqe","hK","Swd","_wd","MHd","ZJd","WId","aB","Drb","FLd","pSd","Tfb","bq","uu","vu","$_b","jDb","qXb","aOb","IAb","Ake","Bke","Ppb","WUb","LUb","RBc","pUb","J8b","YBc","nCc","_Ic","h8b","EJc","HLc","vMc","eUc","xRc","kSc","DOc","W3c","e7c","D1c","BUd","CUd","XMd","cJd","pnd","lKd","T2d","YId","jsd","yCc","Aw","UAb","VAb","mie","Jib","xCb","Mkb","Fub","xbb","nke","Rje","kkb","geb","A0b","l7c","m1","Iyb","xL","Cyb","Dyb","Eyb","jHb","pN","dHb","eHb","fHb","QHb","sN","LHb","KHb","MHb","HIb","zN","DIb","CIb","BIb","UXb","hQ","QXb","PXb","OXb","BTb","oP","wTb","vTb","xTb","Bzc","ZW","uzc","vzc","wzc","Xpc","GW","Ppc","Opc","Qpc","eqc","HW","$pc","aqc","_pc","Jqc","KW","Eqc","Dqc","Fqc","Ikc","vV","Ekc","Dkc","Ckc","hsc","RW","csc","dsc","bsc","$rc","QW","Vrc","Wrc","Urc","NAc","dX","JAc","HAc","IAc","wAc","bX","rAc","qAc","sAc","WAc","eX","QAc","RAc","SAc","OBc","jX","JBc","KBc","IBc","wBc","hX","qBc","rBc","sBc","FBc","iX","BBc","zBc","ABc","uGc","PX","oGc","pGc","qGc","xVc","O$","sVc","qVc","rVc","tWc","Y$","mWc","nWc","oWc","CYc","q_","xYc","yYc","wYc","wXc","b_","qXc","rXc","pXc","_$c","V$c","W$c","X$c","kbd","z1","fbd","ebd","gbd","tad","u1","nad","oad","pad","o3d","p3d","LZc","MZc","tMc","fs","av","cKd","aid","Uwd","bxd","Z1d","S0d","U0d","_1d","Y0d","mlb","hEb","Mbb","Vbb","Dub","Mu","EWb","AWb","FWb","HWb","GWb","WGb","Q9c","XGb","Rgc","GYb","d_b","bjc","ajc","iSc","WRc","oRb","qz","dkd","mid","Tdd","cIc","kxd","lxd","$fe","sSd","rSd","uSd","tSd","wSd","vSd","ySd","xSd","ASd","zSd","CSd","BSd","HSd","GSd","JSd","ISd","x$c","b2c","j2d","O1d","R0d","h9d","u3d","f3d","Q8d","I8d","Cc","Gc","Ofb","Xnd","eLd","fLd","Ysb","Jgb","wwb","RSd","QTd","cLd","FMd","$i","XA","k_b","Qkb","AQ","jne","l_b","cKc","kDb","iDb","rXb","pXb","Nwb","Owb","YXc","gVc","ZXc","o4c","p4c","i6d","s6d","z6d","vZd","H2c","tgc","Zw","_y","Ib","Tb","Kb","eVb","Hke","xpb","$pb","Jd","dib","msb","qAb","oD","tAb","Yzb","Bib","orb","Oi","Qu","m_b","aR","lne","sMb","SZb","a5b","i5b","wxc","_4b","f5b","Ypd","Zpd","$pd","_pd","aqd","Tqd","Wpd","ro","Ez","Cz","Fz","C6d","jk","uEc","gle","bDc","meb","aDc","yLb","PN","uLb","rLb","sLb","tLb","qxb","iL","ixb","jxb","kxb","UOb","CO","OOb","NOb","POb","QOb","UMb","jO","OMb","NMb","PMb","QMb","sWb","SP","jWb","kbc","VS","fbc","dbc","ebc","cbc","Vc","Djc","mV","wjc","xjc","yjc","zjc","okc","Rcd","pkc","Mdc","q7c","Smc","Tmc","_w","rmb","Qq","ugc","Ko","Xsb","Xjb","_jb","Wjb","A2c","goc","DZc","Mz","Nzc","$W","Gzc","Hzc","ERc","uRc","vRc","wRc","mXc","a_","hXc","fXc","gXc","eXc","wdd","I1","rdd","qdd","pdd","vbd","A1","qbd","nbd","obd","pbd","Dad","zad","xad","wad","yad","Ged","O1","Ced","zed","Bed","Aed","sgd","k2","mgd","ngd","lgd","ogd","gvd","cid","Sqd","Uqd","dtd","wud","$fb","qEd","Twd","axd","gxd","Zwd","sr","nx","Sgc","VCb","E2d","F2d","L2d","M2d","q3d","r3d","JJc","Nd","kFd","Rqd","Bfd","kt","wu","R6d","kVd","TOc","OOc","tOc","XOc","mic","dB","nje","dC","Fqb","Yjb","AQb","lSd","mSd","LVd","nYd","wId","Irb","mRb","uFd","FFd","Lgb","Ucc","Dtb","Gx","GAb","SAb","Hub","zub","Lqd","Oqd","Jic","Mic","zHc","Cfd","reb","me","lFd","fRb","FAb","tUb","lUb","mUb","nUb","oUb","_cd","F1","bne","Scd","Acd","Dz","sz","pv","ko","ycb","PYb","MYb","NYb","jYb","rAb","wyb","oyb","jyb","kyb","nyb","myb","C3c","zUc","j4c","Lzd","Uzd","kad","t1","cad","Wbd","C1","Qbd","Sbd","Obd","Pbd","Rbd","Q5c","e1","L5c","K5c","I5c","M5c","J5c","Q_c","Q_","I_c","J_c","M_c","K_c","L_c","_zc","_W","Uzc","Rzc","Szc","Qzc","Tzc","sqc","IW","iqc","hqc","kqc","lqc","jqc","n$c","y_","g$c","f$c","i$c","h$c","j$c","_jc","uV","Tjc","Vjc","Wjc","Ujc","Sjc","Ftc","TW","Btc","xtc","ytc","ztc","Atc","yUd","zc","RC","uy","Tc","Iv","tjb","Qgb","ihb","lhb","Rgb","Rr","Qr","Yac","e0b","kZb","tNb","jxc","hid","sid","uHb","rHb","vHb","sHb","oxd","qSd","CWd","AWd","_6d","lud","oud","Ou","km","smb","Fpb","uwb","Jb","zhb","Ahb","_A","A$c","S6c","Thb","krb","Erb","b1b","kRb","Gjc","BQc","SRc","g6c","f6c","Uac","PHc","VHc","OHc","KAd","JJd","ODc","pvb","QYd","fd","sqb","_zb","HAb","UDc","Mi","Ugb","o5b","Y2d","X2d","tac","icd","D1","acd","ikd","Thd","Qhd","S2","NAd","yAd","EAd","FAd","A2d","d4d","uhb","vhb","LC","bYd","bLd","cYd","KNb","ACb","xke","zke","oke","zCb","exb","dL","VRc","Ut","bB","zGc","gCc","n8b","l8c","r1","h8c","g8c","f8c","d8c","c8c","e8c","I7c","o1","z7c","C7c","D7c","E7c","A7c","B7c","Dpc","EW","wpc","ypc","vpc","xpc","zpc","upc","Brc","OW","wrc","trc","xrc","vrc","urc","rrc","orc","NW","irc","hrc","krc","grc","jrc","frc","rzc","YW","jzc","hzc","fzc","gzc","kzc","izc","Wqc","LW","Nqc","Mqc","Pqc","Oqc","Rqc","Qqc","uSc","t$","pSc","lSc","nSc","mSc","oSc","wcd","E1","ocd","mcd","lcd","qcd","Pad","w1","Kad","Iad","Lad","Gad","Jad","Had","m0b","NQ","g0b","i0b","f0b","d0b","mib","kib","tsb","kSd","XKd","$Hb","Lfe","Kfe","vXb","uXb","tXb","sXb","ojc","KZc","Jjc","Pjc","Byb","Bqd","Vqd","Cqd","v1d","nUd","gid","s6b","htc","oUc","b3c","IHc","KHc","qhe","ptd","dBb","vr","r3c","x9c","w9c","m3c","o3c","n3c","mn","b9c","UMc","yHc","MWb","nud","pOd","Itd","KLd","qud","Bwb","ulb","Llb","bid","hZd","iZd","nDb","Ti","A9d","x9d","w9d","z9d","y9d","ane","eIc","HC","Zrb","Jbb","hD","aAb","UD","Vje","$sc","yc","xc","Ygc","Tnc","zoc","Rwd","rFd","Ayb","ese","Ob","hc","dDb","ghd","t9c","NCd","q1d","mle","wD","sD","tD","Gje","uD","vD","WDc","$Dc","TDc","rfb","TD","$ie","Aid","xjd","CD","yjd","iid","fid","vgc","omb","Gqd","Hqd","Iqd","Jqd","agd","S2d","U2d","INb","HNb","FNb","GNb","JNb","uud","Ftd","Bve","UA","LAb","rC","qC","xC","yzc","eD","dub","fub","uA","sgb","vgb","ghb","vge","EA","Dyd","xHc","Qgc","p7c","Scb","nCb","Pz","Lz","S9b","fic","Jy","Ogb","Ggb","Dhb","Ehb","DCb","xWb","yWb","vWb","wWb","zWb","_1c","hoc","usc","ioc","Jub","Rie","Hie","Emc","ple","sfb","idb","Pnd","Pdd","Xdd","u2d","Qxd","I2d","VWb","mDb","bIb","Gs","Zsb","ke","xac","Ssc","t9b","Zwc","ifc","NMc","iZb","Bid","YKd","ite","lte","Uw","lo","vo","Ibb","Eie","Fie","w$b","Vxc","Fsd","O3","Bsd","ysd","zsd","xsd","Asd","vsd","usd","wsd","c6c","f1","$5c","T5c","X5c","Z5c","U5c","V5c","W5c","Y5c","Dlc","KV","tlc","wlc","slc","zlc","vlc","ulc","ylc","xlc","nAc","aX","iAc","dAc","gAc","eAc","fAc","cAc","hAc","jAc","tHb","wed","bKd","gZd","Umd","Mmc","Xcd","Jmc","bEc","ZEc","Jsb","lib","dcb","TLc","OQd","QQd","ADb","My","Qie","Ky","Akc","oo","uo","Lbd","B1","zbd","ybd","Bbd","Gbd","Fbd","Ebd","Cbd","Dbd","Abd","qQd","AId","izd","ftd","God","Hod","LLd","ndb","rDb","pl","Uz","Xie","RPb","Xbb","s$c","ekb","pgb","fhb","f4c","m4c","l4c","C0","ole","Bne","Cne","ztd","JAd","LAd","$nd","yId","CId","BId","Bt","Nc","Ri","ieb","ahd","CUb","XZb","c6d","zte","Ldd","J1","Bdd","Ddd","Add","Edd","Fdd","Hdd","Gdd","Cdd","zdd","uFb","dN","qFb","lFb","mFb","kFb","oFb","pFb","nFb","jFb","iFb","qeb","peb","uCc","Z7b","w8b","v8b","UCc","qDc","xFc","z8b","p8b","y8b","Tne","RLc","Lkd","zpd","Apd","pQd","jKd","Rdd","ode","g3d","T6d","aMb","O2b","Kp","T6c","_Mb","IAd","HAd","N1c","DUd","jmd","$jb","eub","bub","eyb","M5b","N5b","P5b","GOb","Gec","ayc","jfc","lyc","Swc","XGc","ku","UHc","nMc","$B","pRd","r$c","HSb","FSb","Ime","GSb","Jme","ESb","Kme","DSb","Lme","H9b","Zyc","$Xc","Tqe","Sqe","cme","$Fc","oHc","ZFc","cod","dod","Knd","Qnd","ktb","Bx","SA","Bnc","IMc","gKd","Poc","Soc","Q2b","zne","SXc","SWc","khb","Zzb","$zb","uAb","zZb","AZb","Vnd","h","j","k","l","m","aod","MJd","tJb","$bb","pWb","qWb","IJb","Rrc","PW","Frc","Hrc","Irc","Jrc","Krc","Lrc","Nrc","Erc","Grc","Mrc","KKd","Mve","LKd","Nve","w0b","u0b","v0b","t0b","x0b","y0b","J9b","nfd","sfd","mfd","Udd","kUc","jUc","hUc","zic","xic","Aud","D9","S6d","G2d","sVd","tVd","Mgb","Z4b","$4b","nkc","oqb","l7b","WZc","hKd","Gte","Fte","KFc","cHc","xle","XNb","VNb","WNb","Xyb","hyb","dyb","QNc","T3c","h4c","jkd","F9c","M9b","_$b","stb","cId","Su","fac","crb","n3b","m3b","l3b","tAd","sAd","aKb","_Jb","dhb","Vb","Kje","fD","Yyb","lDc","Si","cYc","qjc","ujc","pQc","zjd","Lnd","d5","Mnd","Hkd","gNc","vQc","MRd","kNc","Ox","Ku","Ewb","xwb","xRb","eSb","uSb","qSb","qTc","pTc","Zqe","oTc","nTc","$qe","TQc","uOc","PEc","QEc","wFc","UYb","XLb","KZb","Pq","heb","Hsc","bZb","o7c","M_b","dcc","bmc","cmc","lBc","G1c","WDb","Gkd","Txd","ckd","Gnd","u5","Zqd","Jte","lqd","KJd","Be","cD","nD","bdb","ubb","lz","btd","gue","vkb","Vyb","yac","FZc","Nb","mEb","CDb","xyb","fyb","J2c","Hnd","Etd","Wi","p6c","A6c","Gne","Hne","W1c","V1c","URc","dVc","xcc","PZb","_ie","cyc","q1c","p1c","QLc","ZEd","pmb","etd","A2","TA","RA","ZI","fkd","Cid","jEb","sbd","Zac","mxc","vUc","uC","_Ed","bOb","I4b","djc","Uy","Tz","C$c","_Nb","xtd","xNb","TQb","VQb","UQb","j6c","r6c","Nic","nNb","YMb","aNb","rNd","hj","fB","$C","EDc","Gwb","CHc","xVb","sVb","XDb","RDb","AUd","ZC","w6c","crd","Dqd","j1d","r1d","i1d","e1d","m1d","s1d","l1d","Xb","Cb","qmb","WC","YC","QC","Xzb","jRb","xld","Ykd","YQb","Ghe","Vud","qic","nic","$yc","KAb","nA","w7c","rVb","LCb","BI","wI","PH","j_c","Mre","S0c","ekd","yid","XRc","PZc","nib","Pr","dzc","bzc","bRc","Ife","dfe","Tyb","dYc","UYc","OYb","Esc","d3b","gtc","syb","qL","tke","Dnd","Zmd","Rmd","q4c","hw","aub","Ss","BG","Gie","whb","Yje","UFc","_Fc","nzd","$3","hve","JEd","NEd","Dc","oNb","Tt","Dv","Ax","Nhb","Hic","Gic","XHc","Psc","b4d","c4d","Xdb","kPb","jPb","Tle","iPb","Ule","lPb","Vle","mPb","Wle","Mcc","Ncc","Lcc","Kcc","Jcc","Icc","Xad","Wad","f9c","Yad","C9c","Sad","s8c","Tad","Y8c","Vad","_8c","Uad","$8c","r7c","$Pd","g5","Ly","Yyc","le","AHc","rwb","yke","j5c","vud","hkb","ikb","Fkb","VEd","Hlb","gr","eDc","HZb","w$c","_Zc","aRc","Rqe","pHb","qHb","Tgb","Bgb","Dgb","F$c","ss","JUb","KUb","VQc","Lcd","qtc","DOb","MPb","xId","VFc","dGc","wZc","ZZc","$Zc","PVc","Rnd","jid","IEd","PEd","Sc","j7c","E_b","hFd","Ngb","phe","BWb","bQ","Z1b","A9b","UDb","JDc","cVc","fVc","zFc","Ksc","H8b","qKb","AJb","bFd","Kic","Iic","jjc","Tmd","GQd","IQd","q6d","x6c","y6c","YZc","eGc","mHc","Jkd","Vn","Up","qr","Ck","Dk","KXb","$gc","gic","u4c","qnd","Eid","Jnd","_ic","V_b","RTd","YFd","HLd","STd","zId","o1d","kud","vwb","__d","r6d","sbb","VD","FI","XD","rbb","SD","Fhb","Hhb","Ghb","c6b","_5b","i6b","Ekd","bkd","eid","jte","Jlb","yZb","VOd","uJb","pJb","QHd","Qwd","N7d","Web","L5b","cTd","kue","iqd","$hd","V2d","ede","lYb","SSc","mTc","gTc","b5b","Osc","bGc","loc","zGb","bLb","had","Vcd","Wcd","f4b","Wxd","sud","xAd","ZId","dJd","eJd","Cve","fJd","Dve","jOb","jqd","k6d","l6d","Dmd","n3d","Vsd","ved","Efd","RUb","tr","aJd","EUd","Tee","Uje","a_b","Lwc","owc","rec","Mkd","y2","ttb","CI","hDc","Qbb","gD","N_b","kNb","Sje","Gub","yub","lke","mke","O_b","R_b","U_b","n6d","o6d","wm","wid","Hcb","aeb","Ev","fn","Uyb","EZc","QZc","GZc","LFb","Ycc","ltc","efc","pBc","yOc","t4c","Ilb","did","xFb","GVb","Xkd","Ljc","MEd","VC","cKb","fFd","JOb","t6c","o6c","Q9b","N9b","MCd","EHb","Htd","fsd","hsd","Ce","ze","MUb","XCc","JTb","Vme","qZb","LTb","_Yb","eKc","AFb","ezc","h0","czc","Kgb","Zcd","gWc","jre","QUc","Dne","b1c","qWc","ryb","hhb","bhb","Fgb","zvd","yA","XUb","s3c","Gxd","pvd","lsd","cLb","_Kb","UKb","mKd","Pqd","Eqd","tNd","uNd","tud","jCb","Yie","nm","W_b","$kd","vyc","Q3","zqe","kyc","nyc","oyc","ryc","syc","tyc","uyc","xyc","zyc","myc","pyc","wyc","Y9b","U9b","mwc","XAb","tWd","uWd","vWd","wWd","xWd","yWd","zWd","BWd","FHb","oN","ile","r3b","NLc","xhb","$Ed","S9d","Qge","T9d","xud","Sxd","HMd","_Fd","GMd","Lzc","Cxc","Dxc","qyc","Ze","AAd","wAd","B6d","Myd","IA","Epb","ogb","Hbb","UC","p5b","m5b","Rwc","Tqc","rHc","dle","BDc","yic","eac","fdd","edd","hdd","T9c","gdd","E9c","ddd","r8c","tme","Ree","Ufe","OZc","jhb","Ofe","Zee","$ee","fjc","ijc","QHc","zZc","t$c","hnc","mzd","yz","wCc","Ek","BDb","DDb","ydb","N9d","Q9d","R9d","ted","sed","t6d","rde","sde","nde","Kge","Vte","Vpd","Wje","fvd","fZd","kse","lse","uDc","Igb","Zcb","Ue","lA","sJb","VOc","ROc","QOc","Cjd","Bjd","vjd","fGd","x6","dTd","KQd","fCb","NNb","EOb","ENb","ELb","ymc","MIc","x6d","_0d","fue","FMc","gVb","Xgb","mIb","Kjc","Vbc","Wbc","vcc","q2c","J8c","bIc","OEc","TPb","tyb","pyb","xKb","vKb","zKb","wKb","AKb","b0d","xlb","dYb","k4b","_Dc","HFb","umc","r2c","k4c","o5c","TTd","UEd","_lb","P9d","ide","Wgb","DN","nJb","mJb","oJb","eJb","dJb","fJb","iJb","hJb","gJb","lJb","kJb","jJb","bJb","aJb","cJb","$Ib","ZIb","_Ib","XIb","WIb","YIb","vjc","c_b","UMd","cYb","kA","h4b","c4b","gkd","O5b","Roc","XEd","O9c","oQc","mse","ise","Y3","jse","L9d","bde","Zyd","BPb","K9c","vPb","G8c","qPb","wPb","zPb","bFb","yPb","_Eb","APb","dFb","xPb","$Eb","sPb","rPb","tPb","uPb","NWb","ued","KEd","gA","JKb","DKb","S5b","B$c","aZb","a0b","P_b","Kdc","kid","zld","Zje","uwd","PJb","yle","zle","Ale","dac","CDc","GDc","eVc","JJb","RKb","SOc","zD","yD","xD","W8c","lKb","u6d","H3b","kCb","b3d","fMb","rud","Gtd","mYb","GFb","Nac","zHb","Bub","KCb","vZb","pZb","uZb","zsc","X$b","tkc","Bkc","ukc","tXc","JFb","IFb","dmd","emd","zUd","BAd","m3d","wo","GF","b0b","Scc","Pcc","Rcc","Aqe","XDc","Y_b","HVc","BVc","FDc","UPc","XPc","I0c","z0c","G0c","H0c","x0c","E0c","n0c","F0c","o0c","D0c","y8c","uld","JQd","yde","kr","jIb","kIb","iUc","V9b","K9b","L9b","IZc","RZc","tEb","PM","RVb","IP","P1c","hNb","Gle","iNb","ZMb","jNb","$Mb","s5b","cjc","gjc","XZc","H4b","k6c","jud","twd","WOd","Fwb","eAb","Dle","Ele","Fle","Nyd","rJc","otc","sJc","nJc","kJc","qJc","Ee","Lu","yKb","aLb","ZOb","Vne","rTb","TMc","_lc","smc","qmc","Uoc","Qoc","s3d","Yxd","H9d","_I","PDb","QDb","sRb","lRb","cRb","a$c","BZc","AHb","lNb","mNb","d5b","xxc","e5b","udc","ikc","Kmc","Nmc","ehd","fhd","dKd","eKd","GJb","DJb","EJb","FJb","PKb","MKb","NKb","OKb","EXb","GXb","Zsc","pHc","qHc","hQc","aKd","o5","Wz","jeb","C0b","Ogc","uoc","voc","u$c","shd","Ctd","Tnd","O6d","M6d","_nd","jZd","Icb","kZd","bD","Vcc","End","p5","UId","c5","AGb","MSb","Mme","ISb","Nme","KSb","JSb","Ome","LSb","Pme","qme","NSb","Qme","ric","uqd","vqd","JHc","HHc","gJc","hJc","iJc","UWc","XWc","NWc","OWc","PWc","MWc","QWc","e9c","TWc","KWc","wWc","LWc","xWc","RWc","zWc","BWc","VWc","CWc","WWc","DWc","YWc","FWc","DZb","Z_b","p7b","rMc","yxc","$dd","bgd","Vt","pA","_tb","VSb","O8c","B8c","YSb","ZSb","$Sb","XSb","_Sb","aTb","USb","SSb","TSb","WSb","RSb","MZb","C3b","H6b","Xec","ttc","cmd","Lhd","Eod","C2","Nhd","lpd","Phd","mQd","h5","VFd","KHd","k5","OFd","Snd","cGd","ird","Awe","Bwe","p6d","HKb","EKb","FKb","GKb","LKb","IKb","KKb","XQb","pSb","V$b","hbc","v$c","ere","Lld","Khd","Uod","Ohd","PSd","aGd","qUd","dGd","yHb","BHb","O9b","R9b","qkc","LZb","JNc","HUc","xqd","ard","xZd","wZd","eFb","Yke","cFb","Zke","aFb","$ke","_ke","vmc","AZc","to","po","cNb","Ooc","Vsc","Wsc","l6c","mUd","yte","HQd","MQd","nB","qEb","eOb","PVb","WTb","m8b","q8b","x8b","a8b","YTb","S7b","b8b","XTb","d8b","s3b","BXc","dme","zXc","dre","E$c","j0d","l0d","rEc","_dd","LHc","GHc","cJc","bJc","MVc","vld","Fkd","wld","drd","t1d","OKd","Qs","INc","zNc","CNc","ENc","ANc","BNc","j1c","NCb","q6c","h6c","jr","zy","Abb","C2b","xsc","Ldc","ntc","woc","HDc","oEc","nEc","WOc","Ute","IMd","T_b","ixc","FFc","jXc","Ikd","Zkd","Fnd","Ui","Eyd","nZb","UZc","bEb","BVb","Lmc","znc","CCc","zCc","NZc","HZc","$sd","atd","XId","w6d","Zbb","Ihe","Kgc","llc","Vwc","nlc","mlc","KXc","LXc","gLd","l3d","kz","Vie","zrb","VPc","Oqe","PQd","SQd","E9d","I9d","qEc","zqd","Qqd","eFd","Uee","mZb","H0b","Uxc","KDc","cnc","HJc","YJc","B9d","Kd","dKb","LNb","ONb","WZb","K3b","sic","SEc","Rsc","CX","FX","tKc","rRc","F2c","sRc","HXc","c1d","Cwe","N6d","Qlb","Wlb","Md","EGb","F6b","uPc","WNc","qQc","cQc","gQc","dQc","fQc","eQc","Xac","Wac","ctc","_ac","wmc","aVc","yod","Bod","zod","Aod","Qi","qhb","Jje","oQb","pmc","yJc","sYc","tYc","mA","Jhb","Cgb","Lhb","wub","xub","S1b","fxc","_sd","kjc","rmc","E3c","grd","Dte","CA","tA","IYd","JYd","LJb","TKb","rpc","H6c","iud","Yj","Qy","oA","MIb","iRb","oSb","H1c","F1c","Qmd","bKb","IVc","JVc","AVc","kfd","Sse","cub","knc","Tpd","W0d","Sve","K6d","L6d","bYb","P9b","Tsc","Mwb","ucd","lZd","Pmd","Dpb","Bpb","Cpb","fje","yyb","uke","hCb","SUb","IWb","y6b","x6b","RVc","CVc","c0c","__c","v0c","$_c","t0c","Y_c","p0c","Z_c","r0c","X_c","W_c","a0c","b0c","T_c","k0c","U_c","m0c","V_c","U7c","T7c","W7c","V7c","D9c","O7c","I8c","Q7c","S7c","L7c","pse","P7c","R7c","M7c","t8c","N7c","w8c","iue","ktd","mtd","Dvd","lue","nue","m6d","Fe","Ymd","ufb","dkc","ckc","ekc","fkc","omc","oFc","KIc","jZb","pPc","XQc","Qqe","acb","$Tb","dtc","c5b","qRc","sZc","yZc","s6c","i5","yqd","wqd","g4b","e4b","d4b","qec","gsd","eue","Mte","Jv","Gcb","Oje","jfd","fld","Rlb","MRb","LRb","mme","KRb","nme","PRb","ome","QRb","pme","NRb","rme","RRb","ORb","NUb","cZb","btc","Y$b","vdc","wkc","Znc","j3b","k3b","L3b","hde","gde","ITb","tic","VGc","UGc","WGc","TGc","MSc","kTc","lTc","JZc","t2c","o2c","g2","u2c","ofd","qqd","rqd","Q6c","esd","Xte","mhb","zMc","ljc","Zjc","UQc","BGb","zQb","Iod","dte","Z2d","Xxd","ffe","qde","Z9b","ktc","Wec","Vec","Xsc","iCc","p5c","Wb","hjc","pjc","QVc","mte","nte","ORd","x2","QRd","d9b","QJc","IJc","TJc","KJc","swe","twe","uwe","vwe","wwe","xwe","Qve","ywe","rJb","sKc","cRc","rEb","sEb","KJb","KIb","SKb","cOb","JM","rQb","q","TBc","pCc","jOc","KI","rfd","PKd","SKd","Rmc","ESc","jTc","FSc","HEd","aFd","I3b","NFc","YQc","a0d","Z9d","eae","aae","bae","xA","rje","sje","tje","uje","vje","wje","xje","AA","KVb","MVb","Dsc","Gac","Hac","N3b","wbc","Qwc","rUc","qUc","Ffd","PRd","The","Vhe","nEb","gnc","LEd","YUc","RJb","gIb","fIb","hIb","iIb","SJb","Jgc","Igc","olc","hrd","TMd","Slb","Tlb","Ulb","Xlb","xGb","YNb","wOb","dfc","ffc","tpc","spc","MJc","oqd","pqd","lt","OA","uRb","qPc","X_b","ugb","K5b","Gsc","Spc","tDc","_Uc","$od","brd","Fqd","NA","QA","Vlb","DGb","LPb","s2c","M8c","N8c","k0d","u0d","Bw","ax","NQb","iRc","ETc","VSc","WSc","TZb","gne","zRc","mqd","Lte","$qd","erd","LJd","k1d","tde","tvd","Fue","Gue","QTb","Iwc","dhc","hic","xCc","m5c","sZd","CZd","yZd","zZd","rA","vMb","fNb","LNc","$Pb","SPb","BQb","itd","ifd","Q8c","D$c","z6c","xOb","ufd","Pgb","Sgb","CVb","D3b","YOc","KTb","aUb","EYb","MTb","NTb","qYb","oQd","NRd","_i","vz","wz","cEb","HQb","yK","eme","fDc","ozd","m8d","k8d","h8d","i8d","j8d","l8d","Q1b","$xc","lfd","M1b","swd","Bhb","cJ","Chb","Egb","K4b","wcc","DMc","dRc","qmd","EId","Wnd","BOb","COb","AOb","Y5b","ILd","n1d","Pld","rwd","Wee","l5c","nTb","mkc","rkc","Wwc","skc","vkc","Wne","O1c","vNd","Nid","bcb","_","GGb","O3b","Ysc","a9b","Rs","XOb","Dac","zac","Xoc","Dyc","ADc","DDc","CTc","BTc","HTc","uTc","GTc","H9c","vTc","xTc","yTc","zTc","wTc","ATc","DTc","ITc","FTc","RBd","fnc","inc","jtc","dnc","lnc","LYc","KYc","Bre","IYc","Cre","FYc","Dre","GYc","Ere","JYc","Fre","MYc","Gre","HYc","Hre","NYc","Ire","yld","At","U6b","T6b","Wzc","nqc","lre","mre","yWc","nre","ore","EWc","pre","GWc","qre","AWc","rre","XXb","rPc","gUc","Ju","Aac","uKc","EMc","Ite","ndc","odc","tQb","OLc","PLc","mfb","sGb","qTb","mTb","$ac","Lsc","LSc","xSc","ySc","q$","fme","frd","cue","due","Ote","$w","BMb","PIc","aNc","Xmd","wte","jnd","qGb","SLc","f1d","g1d","T9b","Yfe","UUb","PFc","ync","TDb","TM","Jke","Kke","SDb","TPc","fde","YCc","YGc","n5c","htd","Zic","Woc","NOc","RYc","VYc","gZc","fZc","jZc","SYc","_Yc","aZc","bZc","$Yc","cZc","hZc","eZc","ZYc","dZc","iZc","WYc","XYc","YYc","P8c","TYc","kZc","Bnd","a5","JPb","IQb","gec","Hjc","eec","vnc","Jbd","ic","mzc","AQc","r2d","r9b","zbc","wac","HNc","aWc","_Vc","aYb","mFc","nFc","M9d","WQb","jSb","fSb","LQb","tRb","KQb","SQb","yoc","xoc","Jyc","soc","toc","$1c","g3b","nxc","Gwc","eRc","ty","xM","AXc","npd","O9d","_C","qbc","Byc","sbc","c_c","mo","eNb","DWb","Y2b","vsc","iA","cUb","axc","Dwc","Hwc","Bwc","lkc","mmd","ste","opd","Sld","VId","vQb","uQb","xQb","jcc","ftc","jnc","XNc","VNc","gqd","aic","_od","Nsc","G4b","Hoc","Ioc","u6c","x1d","tN","F3b","Lgc","led","y4","jve","o2d","Hwe","wXb","LYb","scc","rKb","V0d","cwe","Z0d","zwe","EMb","AS","Y7b","V7b","G8b","r8b","M8b","E8b","i8b","A8b","F8b","e8b","O8b","P7b","I8b","o8b","Q8b","C8b","Q7b","D8b","R8b","K8b","P8b","N8b","T7b","_7b","t8b","u8b","k8b","f8b","W7b","U7b","l8b","g8b","L8b","R7b","B8b","j8b","s8b","c8b","$7b","X7b","Yic","UWb","NHd","Ihb","yhb","thb","aGc","Und","cGc","Jsc","mtc","o3b","Qmc","a6b","Txc","bcc","Omc","fN","jN","oPc","G3b","Rac","Fne","jQc","See","F5b","G5b","E5b","QFc","N8d","v8d","t8d","u8d","s8d","Z6d","Tbc","Ubc","TFc","KQ","cne","fFc","HJb","Eec","yMb","q5b","DNc","GNc","Qac","rMb","aQc","vGb","yGb","rGb","c3d","UPb","p2d","R1b","Cac","Bac","Eac","rQc","$wd","hxd","Fxc","Ixc","Hxc","H5b","roc","WCc","QVb","ybc","uNc","oNc","qNc","$wc","rNc","nNc","sNc","pNc","lNc","mNc","wHb","AYb","Xqe","bTc","atc","sQb","wQb","qid","V6b","Z2b","vtc","tsc","$2b","Fac","Ebc","zA","bje","cje","dje","eje","gje","hje","ije","jje","kje","lje","mje","BA","DA","L1b","PGb","Pac","Xee","sue","tue","_Pd","o9c","p9c","n9c","q9c","l9c","OCc","vre","wre","xre","B9b","UOc","hTc","_Sc","iTc","aTc","D4b","jdd","Rse","ame","wme","yme","_le","Gxc","OTb","NJc","QKd","eee","uue","Yue","xrb","Pgc","_Xb","O$b","Wxc","ine","G6b","rAd","e6b","h6b","k6b","j6b","f6b","d6b","b6b","AUc","yUc","BUc","VDc","_D","t5b","Vgc","Ngc","Ugc","a2c","G2","tSb","M9c","bSb","sSb","lSb","kSb","dSb","mSb","cSb","iSb","hSb","gSb","nSb","rSb","ZXb","Qre","y0c","Vre","w0c","Rre","u0c","Sre","Tre","s0c","Ure","l0c","Wre","Xre","Yre","Zre","q0c","Lyc","p2c","QKb","oJc","gJd","tmc","x2d","CJb","rdc","l1","i1","j1","i2","DJ","xK","jK","uK","kL","Bsc","Y6d","iVc","YDb","yVb","dNb","fTc","cTc","zhd","A9c","v9c","ete","fte","QLb","r5b","kHc","g_b","N1b","OFc","ywc","uwc","vwc","phb","ohb","nhb","SGb","Owc","Anc","doc","Gyc","Iyc","coc","Myc","aoc","Zte","$te","_qd","CGb","ixd","$ad","Qse","uqe","use","Fme","Tme","bqe","E4b","GVc","ht","nOd","B2d","pKb","$0d","kme","$2d","sDc","jYc","kYc","mYc","K0c","ase","Zpe","g9b","Yxc","Zxc","q2d","uVb","LP","JVb","Ijc","hfd","G9c","r9c","Mac","Dwe","kMb","hZb","ULc","X9b","C4b","F4b","s","jA","uGb","FGb","wGb","tGb","JQb","_Bc","LEc","MEc","NEc","JRc","YDc","W2d","Qcc","_xc","vDc","dyc","XC","v2c","fee","kee","nxe","oxe","pxe","qxe","rxe","mxe","$Xb","pRc","dTc","B2b","Afd","W1b","Dmc","b_b","j_b","YFc","so","ZJc","yyc","uZc","kcc","DYb","gRc","n$","v","Yte","Qte","Pte","Ste","Rte","i_b","Msc","etc","_bc","ysc","BPc","gNb","LMc","eyc","MMc","Y7c","qse","vme","Jre","Eme","Ame","rse","lqe","W$b","pJc","VGb","C8c","oRc","mgb","Xje","Khb","Wcc","tfd","Xgc","Neb","Jeb","Keb","Leb","Meb","pfd","Tse","qfd","_Mc","bed","fed","qwd","wwd","rRb","Tge","w5","Axe","Xwe","Ywe","Zwe","hxe","f7b","exc","e7b","i7b","W6b","S6b","WFc","XFc","P1b","OGb","Kxc","Usc","lQc","nQc","mQc","kQc","wQc","zQc","fKd","ade","_ce","FXb","_fe","Vfe","lxe","Pxd","YNc","gSc","fSc","$Sc","ZSc","XSc","WPc","Jfe","gfe","Xfe","vxe","Zfe","S3c","o8c","sne","yfd","KMc","$O","boc","e3d","$lc","UVc","Nte","eDb","GM","nvd","XJc","_Ec","age","YPc","Zxd","opc","npc","MFc","Ayc","RKd","aed","y6d","E6b","X5b","Oac","Tec","wwc","U1b","O1b","Y1b","Mxc","hyc","V1b","T1b","oTb","xMc","$8b","Z8b","dDc","qvd","rvd","que","rue","wA","mB","lde","kde","DPb","Yle","Zle","$le","Zbc","c6","qgb","shb","egb","v6c","zwc","kMc","xZc","vZc","R2b","iyc","jyc","J2d","K2d","_se","TQd","w","A","B","C","D","$$b","uxc","TUb","e0c","Pre","JLc","s2d","$Mc","oKb","$Ic","J4b","Xwc","swc","rtc","stc","ptc","B4b","bKc","oZb","vxc","lZb","Z$b","vNc","h_b","sPc","BEd","uEd","vEd","wEd","sEd","tEd","xEd","yEd","EEd","FEd","lve","zEd","AEd","xUc","Dbc","Cbc","lYc","sTb","FLb","Fsc","g6b","ubc","itc","Bxc","lJc","UCb","UBc","Asc","PSc","YSc","Jqe","rgb","rhb","Noc","rgc","Wgc","rwc","Mgc","z_","o_","VJc","xY","wY","ZQc","F","G","o7b","txc","ELd","e_b","vwd","eed","ced","nbc","C9b","tZb","jCc","_z","qCc","Hyc","rid","pid","Vcb","qMc","eTc","MNc","F8d","H8d","K8d","L8d","M8d","P8d","O8d","w8d","x8d","y8d","z8d","A8d","B8d","C8d","D8d","E8d","G8d","J8d","l5b","Mwc","kKd","Eve","Fve","Gve","Hve","Ive","Jve","Kve","Lve","AMc","JWb","jxd","Cyc","BUb","AUb","oBc","_2d","yUb","svd","iFd","mve","nVc","S8c","wDc","OUb","Wfe","PUb","sZb","W9b","AFc","_sc","pwc","Bbc","Abc","rxc","qxc","qY","Awc","AGc","wPc","fyc","Axc","Jwc","sxc","Exc","_Tb","y$c","gyc","twc","KTc","are","bre","zme","Gme","Dme","Hme","Gcd","Bcd","Ocd","Qcd","Hcd","Ccd","Pcd","Ncd","Dcd","Mcd","Kcd","Jcd","rZb","Vmd","tte","ute","$J","nse","cTb","Rme","Sme","ume","Cme","BFc","BJb","GJc","cic","pEc","b5","f5","l5","q5","v5","O4","T4","U4","O9","E9","AI","DK","v8","u8","X4","V4","vA","wlb","zfd","z8c","s9b","eYb","$1b","wsc","Jxc","_1b","y2b","utc","mJc","CZc","tZc","UJc","Lke","Mke","LIb","Isc","nRc","IDc","ssc","yQb","eKb","oMc","pMc","qQb","q7b","zS","_8b","$Wc","sre","z9c","U8c","P9c","X9c","R9c","S9c","V9c","Lgd","Kgd","Jcb","b3b","c3b","Q9","S9","T9","U9","Bmd","dgb","bJ","fgb","ggb","hgb","igb","jgb","z2b","A2b","xSb","xme","Bme","Fcd","Icd","PCc","acc","Ine","$bc","nwc","H","I","KNc","Uwc","bic","pje","qje","$je","iQc","Yfd","yMc","ded","Sbc","kte","lbb","_ee","Yee","wxe","afe","uxe","xxe","xwc","X1b","gDc","oxc","pxc","I6b","bxc","dxc","uQc","Ywc","fYb","_te","aue","d9c","Ewc","pde","efe","Iue","Hue","J","K","Cte","bue","DXb","WJc","lMc","Shd","Mhd","Rhd","Jhd","Ihd","bve","Zue","_ue","ave","$ue","hxc","_wc","cxc","Kyc","mZc","Kre","xqe","Wmd","vte","kgb","YXb","bwe","L","M","N","O","P","I9c","J9c","L9c","N9c","U9c","Bvc","Cvc","Dvc","Evc","byc","yvc","zvc","Avc","awc","Hvc","Kvc","Svc","Eyc","Nvc","Fyc","Pvc","fwc","cwc","Yvc","Wvc","$vc","pvc","qvc","Auc","Duc","Lxc","Twc","E8c","Kwc","p8c","Nwc","Xxc","Oxc","Qxc","Rxc","Sxc","Pxc","Gvc","avc","$uc","Fvc","Suc","muc","kuc","Xtc","Ytc","buc","Ztc","iuc","cvc","dvc","Luc","uvc","zxc","hvc","Guc","nvc","wuc","yuc","evc","Mtc","Ktc","qwc","Jtc","Juc","Iuc","Kuc","Pwc","euc","v8c","L8c","h9c","j9c","Vuc","Xuc","Itc","Zuc","suc","quc","kxc","Puc","kvc","ouc","wvc","uuc","lxc","Ruc","Fwc","guc","Uuc","huc","Vtc","Stc","Qtc","Rtc","Utc","Otc","Huc","z$c","$Bc","sY","Iqe","vue","wue","xue","BCc","gee","Mue","Nue","Oue","Pue","Kue","Sue","fRc","HVd","BMc","sse","tse","q8c","$pe","x8c","A8c","cqe","F8c","ype","K8c","tpe","g9c","u9c","R8c","mqe","pqe","qqe","T8c","vqe","Xpe","wse","xse","yse","zse","Ase","Bse","Cse","Dse","Ese","Fse","u8c","Lpe","Mpe","Npe","Ope","Ppe","Spe","Qpe","Rpe","Tpe","Upe","Vpe","W9c","wqe","tqe","i9c","sqe","V8c","dqe","X8c","m9c","gqe","hqe","iqe","jqe","kqe","Z8c","c9c","a9c","D8c","nqe","Hse","rqe","oqe","B9c","Ype","Wpe","y9c","eqe","fqe","_pe","aqe","H8c","Ise","k9c","Xne","puc","Yne","Zne","Muc","$ne","_ne","aoe","boe","xvc","coe","doe","eoe","foe","nuc","goe","bvc","hoe","Tuc","ioe","joe","koe","loe","moe","_uc","noe","ooe","poe","luc","qoe","roe","soe","toe","uoe","voe","woe","cuc","xoe","$tc","yoe","vvc","zoe","Aoe","fvc","Boe","ivc","Coe","Doe","Eoe","rvc","Foe","xuc","Goe","zuc","Hoe","Buc","Ioe","Joe","Koe","Loe","Moe","Noe","Ooe","Poe","Qoe","Roe","Soe","Ntc","Toe","Ltc","Uoe","Voe","Woe","Xoe","bwc","Yoe","Zoe","$oe","Tvc","_oe","ape","Qvc","bpe","gwc","cpe","dpe","epe","fpe","gpe","tuc","hpe","ruc","ipe","Wtc","jpe","kpe","Ptc","lpe","Ttc","mpe","npe","ope","Ouc","Nuc","Wuc","Yuc","Quc","fuc","juc","duc","_tc","auc","lvc","mvc","gvc","jvc","ovc","tvc","svc","Cuc","Euc","Fuc","vuc","Ivc","Jvc","Lvc","Mvc","Uvc","Vvc","Ovc","Rvc","hwc","iwc","dwc","ewc","Zvc","Xvc","_vc","Q","R","S","T","U","V","W","X","Y","Z","$","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","oY","nY","hfe","ife","ofe","pfe","qfe","tfe","mfe","rfe","ufe","cfe","sfe","nfe","jfe","lfe","kfe","LK","QFd","SFd","RFd","TFd","UFd","WFd","ZFd","$Fd","bGd","eGd","gGd","hGd","XFd","iGd","Jwe","Kwe","Bte","Lwe","jxe","Rwe","Swe","axe","_9d","Oyc","cee","dee","sxe","txe","Owe","Pwe","Qwe","Twe","Uwe","Vwe","Wwe","$we","_we","bxe","cxe","dxe","exe","fxe","gxe","ixe","yue","zue","Aue","Bue","Cue","Due","Eue","Jue","Lue","Que","Rue","Tue","Uue","Vue","Wue","Xue","P3","Ile","Ate","Xse","Zse","Ete","Hte","$se","Kte","Yse","ate","qve","nve","dwe","ewe","fwe","gwe","hwe","rve","iwe","jwe","kwe","lwe","sve","bte","cte","uve","mwe","vve","wve","pve","ove","tve","xve","Phe","Qhe","Rhe","Whe","Yhe","Zhe","$he","_he","aie","bie","cie","die","eie","fie","gie","hie","iie","jie","kie","lie","pie","qie","sie","tie","uie","vie","wie","xie","yie","Aie","Bie","Cie","Die","Lie","Nie","Oie","Pie","Tie","Uie","Wie","yje","zje","Aje","Bje","Cje","Dje","Lje","Mje","Nje","_je","ake","bke","cke","dke","eke","fke","gke","pke","qke","rke","ske","vke","wke","Cke","Dke","Eke","Fke","Gke","Ike","Nke","Oke","Pke","Qke","Rke","Ske","Tke","Uke","Vke","Wke","Xke","ale","ble","cle","ele","fle","hle","nle","qle","rle","sle","ule","wle","Ble","Cle","Hle","Jle","Kle","Lle","Mle","Nle","Ole","Ple","Qle","Rle","Sle","Xle","bme","gme","hme","ime","jme","lme","sme","Ume","Wme","Xme","Yme","Zme","$me","_me","dne","ene","fne","hne","mne","nne","one","pne","qne","rne","tne","une","vne","wne","xne","yne","Ane","Ene","Jne","Kne","Lne","Mne","Nne","One","Pne","Qne","Rne","Sne","ppe","qpe","rpe","spe","upe","vpe","wpe","xpe","zpe","Ape","Bpe","Cpe","Dpe","Epe","Fpe","Gpe","Hpe","Ipe","Jpe","Kpe","yqe","Bqe","Cqe","Dqe","Eqe","Fqe","Gqe","Hqe","Kqe","Lqe","Mqe","Nqe","Pqe","Uqe","Vqe","Wqe","_qe","cre","fre","gre","hre","ire","kre","tre","ure","yre","zre","Are","Lre","Nre","Ore","$re","_re","bse","cse","dse","fse","gse","hse","ose","vse","Gse","Jse","Kse","Lse","Mse","Nse","Ose","Pse","Use","Vse","Wse","gte","hte","pte","qte","rte","xte","Tte","Wte","jue","oue","pue","cve","dve","eve","fve","ive","kve","yve","zve","Ave","Ove","Pve","Tve","Uve","Vve","Wve","Xve","Yve","Zve","$ve","awe","nwe","owe","pwe","qwe","rwe","Iwe","Mwe","kxe","yxe","zxe","Bxe","Exe","Fxe","Gxe","Hxe","TP","E0","h1","J4","_3","I4","gwtOnLoad","_possibleConstructorReturn","call","_inherits","subClass","superClass","ELKNode","_ELK","options","optionsClone","workerThreadsExist","Worker","_require","_Worker","findCommonAncestor","id1","id2","treeData","parentById","visited","currentId","elk","portPos","conf","nodeDb","addVertices","vert","svgId","root","diagObj","parentLookupDb","nodes","keys","vertex","classStr","styles2","getStylesFromArray","vertexText","labelData","ports","radious","_shape","node","getConfig","boundingBox","nodeEl","insertNode","shapeSvg","bbox","labelHelper","data","getNextPosition","position","edgeDirection","graphDirection","portPos2","log","getNextPort","result","getEdgeStartEndPoint","edge","dir","source","sourceId","targetId","startNode","endNode","addEdges","edges","svg","labelsEl","linkIdCnt","defaultStyle","defaultLabelStyle","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","edgeData","style","labelStyle","interpolateToCurve","curveLinear","common","labelEl","insertEdgeLabel","addMarkersToEdge","svgPath","diagramType","arrowMarkerAbsolute","getClasses","text","addSubGraphs","db2","subgraphs","subgraph","calcOffset","src","dest","ancestor","ancestorOffset","insertEdge","edgesEl","offset","segPoints","segment","points","curve","line","edgePath","edgeG","edgeWithLabel","select","box","insertChildren","nodeArray","childIds","childId","draw","_version","_a","renderEl","securityLevel","conf2","sandboxElement","insertMarkers","subG","subGraphs","subGraphsEl","nodeId","drawNodes","setupGraphViewbox","relX","relY","subgraphsEl","depth","subgraphEl","label","labelCentering","renderer","genSections","sections","getStyles","styles","diagram","parser"],"mappings":"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AK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,GAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,IAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAChB,SAASC,KAAK,CAAE,CAGhB,SAASC,IAAI,CAACC,IAAI,CAClB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,KAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,IAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,IAAK,CAACC,IAAK,CACpB,SAASC,IAAK,CAACC,KAAK,CACpB,SAASC,IAAK,CAACC,IAAK,CACpB,SAASC,KAAK,CAACC,IAAK,CACpB,SAASC,GAAI7wB,EAAE,CAAC8wB,GAAI9wB,CAAC,CAAC,CACtB,SAAS+wB,IAAG/wB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASgxB,GAAGhxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASixB,IAAGjxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASkxB,IAAGlxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASmxB,IAAGnxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASoxB,IAAGpxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASqxB,IAAGrxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASsxB,IAAGtxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASuxB,GAAGvxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASwxB,GAAGxxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASyxB,IAAGzxB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS0xB,GAAG1xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS2xB,IAAG3xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS4xB,GAAG5xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS6xB,IAAG7xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS8xB,GAAG9xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS+xB,IAAG/xB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASgyB,GAAGhyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASiyB,IAAGjyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASkyB,IAAGlyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASmyB,IAAGnyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASoyB,GAAGpyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASqyB,IAAGryB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASsyB,IAAGtyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASuyB,IAAGvyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASwyB,IAAGxyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASyyB,IAAGzyB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS0yB,IAAG1yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS2yB,IAAG3yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS4yB,IAAG5yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS6yB,IAAG7yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS8yB,IAAG9yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAAS+yB,IAAG/yB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASgzB,IAAGhzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASizB,IAAGjzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASkzB,IAAGlzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASmzB,GAAGnzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASozB,GAAGpzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASqzB,GAAGrzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASszB,GAAGtzB,EAAE,CAAC,KAAK,EAAEA,CAAC,CACvB,SAASuzB,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,CACvB,SAASC,IAAIxzB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASC,IAAI1zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASE,IAAI3zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASG,IAAI5zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASI,IAAI7zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASK,GAAI9zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASM,IAAI/zB,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASO,IAAIh0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASQ,IAAIj0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASS,IAAIl0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASU,IAAIn0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASW,IAAIp0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASY,GAAIr0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASa,IAAIt0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASc,GAAIv0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASe,GAAIx0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASgB,IAAIz0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASiB,IAAI10B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASkB,IAAI30B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASmB,IAAI50B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASoB,GAAI70B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASqB,GAAI90B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASsB,GAAI/0B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASuB,IAAIh1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASwB,IAAIj1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASyB,IAAIl1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS0B,IAAIn1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS2B,IAAIp1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS4B,GAAIr1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS6B,IAAIt1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS8B,IAAIv1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS+B,IAAIx1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASgC,IAAIz1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASiC,IAAI11B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASkC,IAAI31B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASmC,IAAI51B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASoC,IAAI71B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASqC,IAAI91B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASsC,IAAI/1B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASuC,IAAIh2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASwC,IAAIj2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASyC,IAAIl2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS0C,IAAIn2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS2C,IAAIp2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS4C,IAAIr2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS6C,IAAIt2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS8C,IAAIv2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAAS+C,IAAIx2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASgD,IAAIz2B,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,CAAC,CACvB,SAASiD,IAAI12B,EAAE,CAACA,EAAE,EAAEA,EAAE,CAAC,CACvB,SAAS22B,IAAG32B,EAAE,CAACA,EAAE,EAAEA,EAAE,EAAE,CAAC,CACxB,SAAS42B,GAAI52B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS62B,GAAI72B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS82B,GAAI92B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+2B,GAAI/2B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg3B,GAAIh3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi3B,GAAIj3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk3B,IAAIl3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm3B,GAAIn3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo3B,GAAIp3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq3B,GAAIr3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs3B,GAAIt3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu3B,GAAIv3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw3B,GAAIx3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy3B,GAAIz3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS03B,GAAI13B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS23B,GAAI33B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS43B,GAAI53B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS63B,GAAI73B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS83B,GAAI93B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+3B,IAAI/3B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg4B,GAAIh4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi4B,GAAIj4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk4B,EAAIl4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm4B,IAAIn4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo4B,GAAIp4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq4B,GAAIr4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs4B,GAAIt4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu4B,GAAIv4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw4B,GAAIx4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy4B,IAAIz4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS04B,GAAI14B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS24B,GAAI34B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS44B,IAAI54B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS64B,IAAI74B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS84B,GAAI94B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+4B,IAAI/4B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg5B,IAAIh5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi5B,IAAIj5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk5B,IAAIl5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm5B,IAAIn5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo5B,IAAIp5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq5B,IAAIr5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs5B,IAAIt5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu5B,IAAIv5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw5B,IAAIx5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy5B,IAAIz5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS05B,IAAI15B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS25B,IAAI35B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS45B,IAAI55B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS65B,IAAI75B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS85B,IAAI95B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+5B,IAAI/5B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg6B,GAAIh6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi6B,IAAIj6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk6B,IAAIl6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm6B,GAAIn6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo6B,IAAIp6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq6B,IAAIr6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs6B,GAAIt6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu6B,GAAIv6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw6B,IAAIx6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy6B,IAAIz6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS06B,IAAI16B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS26B,IAAI36B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS46B,IAAI56B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS66B,GAAI76B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS86B,GAAI96B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+6B,GAAI/6B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg7B,GAAIh7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi7B,GAAIj7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk7B,GAAIl7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm7B,IAAIn7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo7B,GAAIp7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq7B,GAAIr7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs7B,IAAIt7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu7B,IAAIv7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw7B,IAAIx7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy7B,IAAIz7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS07B,IAAI17B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS27B,IAAI37B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS47B,IAAI57B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS67B,IAAI77B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS87B,IAAI97B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+7B,IAAI/7B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg8B,IAAIh8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi8B,GAAIj8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk8B,IAAIl8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm8B,IAAIn8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo8B,IAAIp8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq8B,IAAIr8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs8B,IAAIt8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu8B,IAAIv8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw8B,IAAIx8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy8B,IAAIz8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS08B,IAAI18B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS28B,IAAI38B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS48B,IAAI58B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS68B,IAAI78B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS88B,IAAI98B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+8B,IAAI/8B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg9B,IAAIh9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi9B,IAAIj9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk9B,IAAIl9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm9B,IAAIn9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo9B,IAAIp9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq9B,IAAIr9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs9B,IAAIt9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu9B,IAAIv9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw9B,IAAIx9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy9B,IAAIz9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS09B,IAAI19B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS29B,IAAI39B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS49B,IAAI59B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS69B,IAAI79B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS89B,IAAI99B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+9B,IAAI/9B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg+B,IAAIh+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi+B,IAAIj+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk+B,IAAIl+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm+B,IAAIn+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo+B,IAAIp+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq+B,IAAIr+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs+B,IAAIt+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu+B,IAAIv+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw+B,IAAIx+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy+B,IAAIz+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0+B,IAAI1+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2+B,IAAI3+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4+B,IAAI5+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6+B,IAAI7+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8+B,IAAI9+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS++B,IAAI/+B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASg/B,IAAIh/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASi/B,IAAIj/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASk/B,IAAIl/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASm/B,IAAIn/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASo/B,IAAIp/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASq/B,IAAIr/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASs/B,IAAIt/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASu/B,IAAIv/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASw/B,IAAIx/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASy/B,IAAIz/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0/B,IAAI1/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2/B,IAAI3/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4/B,IAAI5/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6/B,IAAI7/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8/B,IAAI9/B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+/B,IAAI//B,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASggC,IAAIhgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASigC,GAAIjgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASkgC,GAAIlgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASmgC,IAAIngC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASogC,IAAIpgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASqgC,IAAIrgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASsgC,IAAItgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASugC,IAAIvgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASwgC,IAAIxgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASygC,IAAIzgC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0gC,IAAI1gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2gC,IAAI3gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4gC,IAAI5gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6gC,IAAI7gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8gC,IAAI9gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+gC,IAAI/gC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASghC,IAAIhhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASihC,IAAIjhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASkhC,IAAIlhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASmhC,GAAInhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASohC,IAAIphC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASqhC,IAAIrhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASshC,IAAIthC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASuhC,IAAIvhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASwhC,IAAIxhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASyhC,IAAIzhC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0hC,IAAI1hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2hC,IAAI3hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4hC,IAAI5hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6hC,IAAI7hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8hC,IAAI9hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+hC,IAAI/hC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASgiC,IAAIhiC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASiiC,IAAIjiC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASkiC,IAAIliC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASmiC,IAAIniC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASoiC,IAAIpiC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASqiC,IAAIriC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASsiC,IAAItiC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASuiC,IAAIviC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASwiC,IAAIxiC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASyiC,IAAIziC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0iC,IAAI1iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2iC,IAAI3iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4iC,IAAI5iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6iC,IAAI7iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8iC,IAAI9iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+iC,IAAI/iC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASgjC,GAAIhjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASijC,GAAIjjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASkjC,IAAIljC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASmjC,GAAInjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASojC,IAAIpjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASqjC,IAAIrjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASsjC,IAAItjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASujC,IAAIvjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASwjC,IAAIxjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASyjC,IAAIzjC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0jC,IAAI1jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS2jC,IAAI3jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS4jC,GAAI5jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS6jC,IAAI7jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS8jC,IAAI9jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS+jC,GAAI/jC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASgkC,GAAIhkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASikC,IAAIjkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASkkC,GAAIlkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASmkC,GAAInkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASokC,GAAIpkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASqkC,IAAIrkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASskC,IAAItkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASukC,GAAIvkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASwkC,GAAIxkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAASykC,GAAIzkC,EAAE,CAAC,KAAK,EAAEA,CAAC,CACxB,SAAS0kC,KAAK,CAAC,KAAK,EAAE,CAAC,CACvB,SAASC,IAAK,CAACC,IAAI,IAAI,CAAC,CACxB,SAASC,GAAK,CAACC,GAAI,IAAI,CAAC,CACxB,SAASC,IAAK,CAACC,GAAI,IAAI,CAAC,CACxB,SAASC,IAAK,CAACC,IAAI,IAAI,CAAC,CACxB,SAASC,KAAK,CAAU,CACxB,SAASC,IAAK,CAAC,KAAK,EAAEC,GAAG,CACzB,SAASC,IAAItlC,EAAEyzB,EAAE,CAACA,EAAE,GAAGzzB,CAAC,CAAC,CACzB,SAASulC,IAAIvlC,EAAEyzB,EAAE,CAACzzB,EAAE,GAAGyzB,CAAC,CACxB,SAAS+R,IAAIxlC,EAAE,CAACA,EAAE,EAAE,IAAIylC,EAAE,CAC1B,SAASC,EAAI1lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CAC1B,SAAS2lC,IAAG3lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CACzB,SAAS4lC,IAAG5lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CACzB,SAAS6lC,IAAG7lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CACzB,SAAS8lC,IAAG9lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CACzB,SAAS+lC,IAAG/lC,EAAE,CAAC,OAAOA,EAAE,CAAC,CACzB,SAASgmC,KAAI,CAAC,OAAO,IAAI,CACzB,SAASC,KAAI,CAAC,OAAO,IAAI,CACzB,SAASC,KAAK,CAACC,GAAK,EAACC,IAAG,CAAE,CAC1B,SAASC,IAAIrmC,EAAE,CAACA,EAAE,EAAE,GAAGA,EAAE,CAAC,CAAC,CAC3B,SAASsmC,GAAItmC,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAC3B,SAASumC,GAAIvmC,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAC3B,SAASwmC,IAAIxmC,EAAEyzB,EAAE,CAACA,EAAE,GAAGzzB,EAAE,CAAC,CAAC,CAC3B,SAASymC,IAAIzmC,EAAEyzB,EAAE,CAACiT,GAAIjT,EAAEzzB,CAAC,CAAC,CAC1B,SAAS2mC,IAAG3mC,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAC5B,SAASmT,GAAG5mC,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAEA,EAAE,EAAEzzB,CAAC,CAC5B,SAAS6mC,GAAG7mC,EAAE,CAAC8mC,GAAI,EAAC,KAAK,EAAE9mC,CAAC,CAC5B,SAAS+mC,IAAG/mC,EAAE,CAAC8mC,GAAI,EAAC,KAAK,EAAE9mC,CAAC,CAC5B,SAASgnC,IAAGhnC,EAAE,CAAC8mC,GAAI,EAAC,KAAK,EAAE9mC,CAAC,CAC5B,SAASinC,GAAGjnC,EAAE,CAACknC,GAAI,EAAC,KAAK,EAAElnC,CAAC,CAC5B,SAASmnC,IAAGnnC,EAAE,CAAConC,GAAI,EAACC,GAAG,GAAGrnC,CAAC,CAAC,CAC5B,SAASsnC,IAAI,CAACC,IAAG,KAAK,IAAI,CAAC,CAC3B,SAASC,IAAK,CAACD,IAAG,KAAK,IAAI,CAAC,CAC5B,SAASE,IAAK,CAACH,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASI,IAAK,CAACJ,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASK,KAAK,CAACL,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASM,IAAK,CAACN,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASO,IAAK,CAACP,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASQ,IAAK,CAACR,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASS,IAAK,CAACT,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASU,IAAK,CAACV,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASW,KAAK,CAACX,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASY,IAAK,CAACZ,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASa,KAAK,CAACb,GAAG,KAAK,IAAI,CAAC,CAC5B,SAASc,KAAK,CAAC,KAAK,EAAE,IAAI,CAC1B,SAASC,IAAK,CAAC,KAAK,IAAI,GAAG,CAC3B,SAASC,KAAK,CAAC,KAAK,EAAE,IAAIC,GAAE,CAC5B,SAASC,IAAI,CAACA,GAAG9jC,EAAI,IAAIqgC,EAAG,CAC5B,SAAS0D,IAAK,CAAChB,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASiB,IAAI1oC,EAAEyzB,EAAE,CAACzzB,EAAE,OAAOyzB,CAAC,CAC5B,SAASkV,GAAI3oC,EAAEyzB,EAAE,CAACmV,EAAI5oC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAASoV,IAAI7oC,EAAEyzB,EAAE,CAACqV,GAAI9oC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAASsV,IAAI/oC,EAAEyzB,EAAE,CAACuV,GAAIhpC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAASwV,IAAIjpC,EAAEyzB,EAAE,CAACyV,GAAIlpC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAAS0V,IAAInpC,EAAEyzB,EAAE,CAAC2V,GAAIppC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAAS4V,GAAIrpC,EAAEyzB,EAAE,CAAC6V,GAAItpC,EAAE,EAAEyzB,CAAC,CAAC,CAC5B,SAAS8V,GAAIvpC,EAAE,CAACwpC,GAAIxpC,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC5B,SAASypC,IAAGzpC,EAAEyzB,EAAE,CAACzzB,EAAE,GAAI,EAAC,GAAGyzB,CAAC,CAAC,CAC7B,SAASiW,GAAI1pC,EAAE,CAAC,KAAK,EAAE2pC,IAAI3pC,CAAC,CAAC,CAC7B,SAAS4pC,IAAK,CAAC,KAAK,EAAE,IAAI7E,EAAG,CAC7B,SAAS8E,KAAK,CAAC,KAAK,EAAE,IAAI9E,EAAG,CAC7B,SAAS+E,IAAK,CAAC,KAAK,EAAE,IAAIjF,CAAG,CAC7B,SAASkF,IAAK,CAAC,KAAK,EAAE,IAAIlF,CAAG,CAC7B,SAASmF,IAAK,CAAC,KAAK,EAAE,IAAInF,CAAG,CAC7B,SAASoF,IAAK,CAAC,KAAK,EAAE,IAAI3iC,GAAG,CAC7B,SAAS4iC,IAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAASC,IAAK,CAAC,KAAK,EAAE,IAAIhgC,EAAG,CAC7B,SAASigC,IAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAASC,KAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAASC,IAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAASC,IAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAASC,KAAK,CAAC,KAAK,EAAE,IAAIhG,CAAG,CAC7B,SAASiG,IAAK,CAAC,KAAK,EAAE,IAAIjG,CAAG,CAC7B,SAASkG,KAAK,CAAC,KAAK,EAAE,IAAIlG,CAAG,CAC7B,SAASmG,KAAK,CAAC,KAAK,EAAE,IAAInG,CAAG,CAC7B,SAASoG,KAAK,CAAC,KAAK,EAAE,IAAIpG,CAAG,CAC7B,SAASqG,KAAK,CAAC,KAAK,EAAE,IAAItB,EAAG,CAC7B,SAASuB,KAAK,CAAC,KAAK,EAAE,IAAIpG,EAAG,CAC7B,SAASqG,KAAK,CAAC,KAAK,EAAE,IAAIrG,EAAG,CAC7B,SAASsG,KAAK,CAAC,KAAK,EAAE,IAAIxG,CAAG,CAC7B,SAASyG,IAAK,CAAC,KAAK,EAAE,IAAIzG,CAAG,CAC7B,SAAS0G,KAAK,CAAC,KAAK,EAAE,IAAI1G,CAAG,CAC7B,SAAS2G,KAAK,CAAC,KAAK,EAAE,IAAI/e,GAAG,CAC7B,SAASgf,KAAK,CAAC5G,EAAI,KAAK,IAAI,CAAC,CAC7B,SAAS6G,IAAK,CAAC5B,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS6B,KAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,KAAK,CAACf,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASgB,IAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASA,IAAK,CAAC5G,IAAI,KAAK,IAAI,CAAC,CAC7B,SAAS6G,IAAK,CAAC7G,IAAI,KAAK,IAAI,CAAC,CAC7B,SAAS8G,IAAK,CAACD,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASE,KAAK,CAACC,IAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,KAAK,CAACD,IAAI,KAAK,IAAI,CAAC,CAC7B,SAASE,KAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,KAAK,CAACD,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASE,KAAK,CAACF,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASG,KAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,IAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,IAAK,CAAC1rB,IAAI,KAAK,IAAI,CAAC,CAC7B,SAAS2rB,IAAK,CAAC3rB,IAAI,KAAK,IAAI,CAAC,CAC7B,SAAS4rB,KAAK,CAACC,IAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,KAAK,CAACD,IAAI,KAAK,IAAI,CAAC,CAC7B,SAASE,KAAK,CAACnI,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASoI,KAAK,CAACpI,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASqI,KAAK,CAACrI,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASsI,KAAK,CAACzD,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS0D,IAAK,CAACC,IAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,KAAK,CAACnF,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASoF,IAAK,CAACC,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASC,IAAK,CAACD,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASE,IAAK,CAAC7I,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS8I,IAAK,CAAC9I,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS+I,KAAK,CAAC/I,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASgJ,IAAK,CAAC3rB,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS4rB,KAAK,CAAC5rB,GAAI,KAAK,IAAI,CAAC,CAC7B,SAAS6rB,KAAK,CAACF,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASG,KAAK,CAAClkB,GAAI,KAAK,IAAI,CAAC,CAC7B,SAASmkB,IAAGnuC,EAAE,CAACouC,IAAG,KAAK,KAAKpuC,CAAC,CAAC,CAC9B,SAASquC,IAAGruC,EAAE,CAACouC,IAAG,KAAK,KAAKpuC,CAAC,CAAC,CAC9B,SAASsuC,GAAGtuC,EAAE,CAACuxB,GAAG,KAAK,KAAKvxB,CAAC,CAAC,CAC9B,SAASuuC,GAAGvuC,EAAE,CAACwuC,IAAG,KAAK,KAAKxuC,CAAC,CAAC,CAC9B,SAASyuC,IAAGzuC,EAAE,CAACuuC,GAAG,KAAK,KAAKvuC,CAAC,CAAC,CAC9B,SAAS0uC,IAAG1uC,EAAE,CAACwuC,IAAG,KAAK,KAAKxuC,CAAC,CAAC,CAC9B,SAAS2uC,IAAK,CAAC,KAAK,EAAE,IAAI/B,EAAG,CAC7B,SAASN,IAAK,CAAC,KAAK,EAAE,IAAI1C,EAAG,CAC7B,SAAS8C,IAAK,CAAC,KAAK,EAAE,IAAI3H,EAAG,CAC7B,SAAS6J,KAAK,CAAC,KAAK,EAAE,IAAI/J,CAAG,CAC7B,SAASgK,KAAK,CAAC,KAAK,EAAE,IAAIhK,CAAG,CAC7B,SAASiK,IAAK,CAAC,KAAK,EAAE,IAAI1xB,GAAG,CAC7B,SAAS2xB,KAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,CAC7B,SAAShC,KAAK,CAAC,KAAK,EAAE,IAAI7qB,GAAG,CAC7B,SAAS8sB,IAAI,CAACA,GAAGvqC,EAAIwqC,GAAG,IAAIC,GAAE,CAC9B,SAASC,IAAI,CAACA,GAAG1qC,EAAI2qC,GAAG,IAAIC,GAAE,CAC9B,SAASllB,IAAI,CAACA,GAAG1lB,EAAI6qC,GAAG,IAAItsC,EAAE,CAC9B,SAASusC,IAAI,CAACA,GAAG9qC,EAAI+qC,GAAG,IAAIC,GAAE,CAC9B,SAASC,IAAG3vC,EAAE,CAACuuC,GAAG,KAAK,KAAKvuC,CAAC,CAAC,CAC9B,SAAS4vC,IAAG5vC,EAAE,CAACuuC,GAAG,KAAK,KAAKvuC,CAAC,CAAC,CAC9B,SAAS6vC,IAAG7vC,EAAE,CAAC8vC,GAAG,KAAK,KAAK9vC,CAAC,CAAC,CAC9B,SAAS+vC,IAAG/vC,EAAE,CAAC8vC,GAAG,KAAK,KAAK9vC,CAAC,CAAC,CAC9B,SAASgwC,IAAGhwC,EAAE,CAACiwC,IAAG,KAAK,KAAKjwC,CAAC,CAAC,CAC9B,SAASkwC,GAAGlwC,EAAE,CAACmwC,IAAG,KAAK,KAAKnwC,CAAC,CAAC,CAC9B,SAASowC,GAAGpwC,EAAE,CAACqwC,GAAG,KAAK,KAAKrwC,CAAC,CAAC,CAC9B,SAASswC,GAAGtwC,EAAE,CAACuwC,GAAG,KAAK,KAAKvwC,CAAC,CAAC,CAC9B,SAASwwC,GAAGxwC,EAAE,CAACuwC,GAAG,KAAK,KAAKvwC,CAAC,CAAC,CAC9B,SAASywC,IAAGzwC,EAAE,CAACuwC,GAAG,KAAK,KAAKvwC,CAAC,CAAC,CAC9B,SAAS0wC,GAAG1wC,EAAE,CAAC2wC,IAAG,KAAK,KAAK3wC,CAAC,CAAC,CAC9B,SAAS4wC,IAAG5wC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC9B,SAAS6wC,IAAI,CAACvd,GAAG,KAAK,KAAK,CAAE,CAAA,CAAC,CAC9B,SAASwd,GAAI9wC,EAAE,CAAC+wC,GAAK,EAAC,KAAK,EAAE/wC,CAAC,CAC9B,SAASgxC,GAAIhxC,EAAE,CAACA,EAAE,EAAE,KAAKA,EAAE,EAAE,CAAC,CAC9B,SAASixC,IAAGjxC,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAEyd,IAAGlxC,EAAEyzB,CAAC,CAAC,CAC9B,SAAS0d,IAAInxC,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAE2d,IAAIpxC,CAAC,CAAC,CAC9B,SAASqxC,GAAIrxC,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,CAAC,CAC9B,SAASyxC,IAAItxC,EAAEyzB,EAAE5zB,EAAE,CAAC0xC,IAAI1xC,EAAEG,EAAEyzB,CAAC,CAAC,CAC9B,SAAS+d,IAAIxxC,EAAEyzB,EAAE,CAACge,IAAIhe,EAAE,EAAEzzB,EAAE,CAAC,CAAC,CAC9B,SAAS0xC,IAAI1xC,EAAEyzB,EAAE,CAACke,IAAI3xC,CAAC,EAAE,GAAGyzB,CAAC,CAAC,CAC9B,SAASme,IAAI5xC,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEA,EAAEyzB,CAAC,CAC9B,SAASoe,IAAG7xC,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAC/B,SAASqe,IAAG9xC,EAAE,CAAC,OAAO,IAAIqzB,GAAGrzB,CAAC,CAAC,CAC/B,SAAS+xC,IAAG/xC,EAAE,CAAC,OAAO,IAAIgyC,GAAGhyC,CAAC,CAAC,CAC/B,SAASiyC,GAAIjyC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASkyC,GAAIlyC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASmyC,IAAInyC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASoyC,GAAIpyC,EAAE,CAAC2wC,IAAG,KAAK,KAAK3wC,CAAC,CAAC,CAC/B,SAASqyC,GAAIryC,EAAE,CAACsyC,GAAK,EAAC,KAAK,EAAEtyC,CAAC,CAC9B,SAASuyC,IAAIvyC,EAAE,CAACwyC,IAAK,EAAC,KAAK,EAAExyC,CAAC,CAC9B,SAASyyC,GAAIzyC,EAAE,CAAC0yC,GAAK,EAAC,KAAK,EAAE1yC,CAAC,CAC9B,SAAS2yC,GAAI3yC,EAAE,CAAC0yC,GAAK,EAAC,KAAK,EAAE1yC,CAAC,CAC9B,SAAS4yC,GAAI5yC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAAS6yC,GAAI7yC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAAS8yC,GAAI9yC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAAS+yC,IAAI/yC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASgzC,GAAIhzC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASizC,GAAIjzC,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAEA,CAAC,CAC/B,SAASkzC,EAAIlzC,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAEA,CAAC,CAC/B,SAASmzC,GAAInzC,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAEA,CAAC,CAC/B,SAASozC,GAAIpzC,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAEA,CAAC,CAC/B,SAASqzC,IAAIrzC,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAEA,CAAC,CAC/B,SAASszC,GAAItzC,EAAE,CAAC,OAAOA,EAAE,GAAGA,EAAE,CAAC,CAC/B,SAASuzC,GAAIvzC,EAAE,CAAC,MAAO,CAAC,CAACA,GAAGA,EAAE,CAAC,CAC/B,SAASwzC,IAAIxzC,EAAE,CAAC,MAAO,CAAC,CAACA,GAAGA,EAAE,CAAC,CAC/B,SAASyzC,IAAIzzC,EAAE,CAAC,MAAO,CAAC,CAACA,GAAGA,EAAE,CAAC,CAC/B,SAAS0zC,GAAI1zC,EAAE,CAAC8wB,GAAI9wB,CAAC,EAAE,KAAK,EAAEA,CAAC,CAC/B,SAAS2zC,GAAI3zC,EAAE,CAAC,OAAA4zC,GAAI5zC,CAAC,EAASA,CAAC,CAC/B,SAAS6zC,GAAI7zC,EAAE,CAAC8zC,GAAI9zC,EAAEA,EAAE,MAAM,CAAC,CAC/B,SAAS+zC,GAAI/zC,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASg0C,GAAIh0C,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASi0C,GAAIj0C,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASk0C,GAAIl0C,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASm0C,GAAIn0C,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASo0C,GAAIp0C,EAAE,CAAC0wC,GAAG,KAAK,KAAK1wC,CAAC,CAAC,CAC/B,SAASq0C,GAAGr0C,EAAE,CAACs0C,GAAG,KAAK,KAAKt0C,EAAE,CAAC,CAAC,CAChC,SAASylC,IAAI,CAAC8O,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAChC,SAASC,IAAI,CAACA,GAAG9vC,EAAI+vC,IAAG,IAAIvwC,GAAE,CAC9B,SAASwwC,KAAI,CAACA,IAAGhwC,EAAIiwC,IAAG,IAAI3xC,EAAE,CAC9B,SAAS4xC,IAAI,CAACA,GAAGlwC,EAAImwC,GAAG,IAAIjxC,EAAE,CAC9B,SAASkxC,KAAI,CAACA,IAAGpwC,EAAIqwC,IAAG,IAAIjxC,EAAE,CAC9B,SAASkxC,KAAI,CAAC,MAAMtP,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASkN,IAAI,CAAC,MAAMvP,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASmN,KAAI,CAAC,MAAMxP,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASoN,KAAI,CAAC,MAAMzP,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASqN,KAAI,CAAC,MAAM1P,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASsN,KAAI,CAAC,MAAM3P,EAAI,IAAIqC,EAAG,CAAC,CAChC,SAASuN,IAAI,CAAC,KAAK,EAAEC,GAAGC,GAAGC,EAAG,CAAC,CAAC,CAChC,SAASC,GAAG11C,EAAE,CAAC8mC,GAAE,EAAG,KAAK,EAAE0O,GAAGx1C,CAAC,CAAC,CAChC,SAAS21C,IAAG31C,EAAEyzB,EAAE,CAACzzB,EAAE,GAAGyzB,CAAC,EAAEA,EAAE,GAAGzzB,CAAC,CAAC,CAChC,SAAS41C,IAAG51C,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,GAAI,EAAC,GAAGyzB,CAAC,CAAC,CAC/B,SAASoiB,IAAI71C,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAC/B,SAASi2C,GAAI91C,EAAE,CAACkyC,GAAI,KAAK,KAAKlyC,CAAC,CAAC,CAChC,SAAS+1C,GAAI/1C,EAAE,CAAC6yC,GAAI,KAAK,KAAK7yC,CAAC,CAAC,CAChC,SAASg2C,IAAK,CAAC/e,GAAI,KAAK,KAAK,EAAE,CAAC,CAChC,SAASgf,IAAK,CAAChf,GAAI,KAAK,KAAK,EAAE,CAAC,CAChC,SAASif,IAAK,CAACjf,GAAI,KAAK,KAAK,EAAE,CAAC,CAChC,SAASkf,IAAK,CAAClf,GAAI,KAAK,KAAK,EAAE,CAAC,CAChC,SAASmf,GAAIp2C,EAAE,CAACkyC,GAAI,KAAK,KAAKlyC,CAAC,CAAC,CAChC,SAASq2C,GAAIr2C,EAAE,CAAC43B,GAAI,KAAK,KAAK53B,CAAC,CAAC,CAChC,SAASs2C,GAAIt2C,EAAE,CAACu2C,GAAI,KAAK,KAAKv2C,CAAC,CAAC,CAChC,SAASw2C,IAAIx2C,EAAE,CAACq2C,GAAI,KAAK,KAAKr2C,CAAC,CAAC,CAChC,SAASsvC,KAAI,CAAC1d,GAAG,KAAK,KAAK,IAAI,CAAC,CAChC,SAASud,KAAI,CAACvd,GAAG,KAAK,KAAK,IAAI,CAAC,CAChC,SAAS6kB,IAAI,CAACA,GAAG/xC,EAAO0iC,GAAE,CAAM,CAChC,SAASsP,KAAK,CAACA,IAAIhyC,EAAIiyC,IAAIC,IAAG,CAAE,CAChC,SAASC,IAAI72C,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE,CAAC,CAChC,SAAS82C,IAAI92C,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE,CAAC,CAChC,SAAS+2C,IAAI/2C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASujB,IAAIh3C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASwjB,IAAIj3C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASyjB,GAAIl3C,EAAEyzB,EAAE,CAAC,OAAO0jB,GAAGn3C,EAAEyzB,CAAC,CAAC,CAChC,SAAS2jB,EAAGp3C,EAAEyzB,EAAE,CAAC,OAAO4jB,IAAIr3C,EAAEyzB,CAAC,CAAC,CAChC,SAAS6jB,IAAG7jB,EAAEzzB,EAAE,CAAC,OAAOA,KAAKyzB,EAAE,CAAC,CAChC,SAAS8jB,IAAIv3C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASw3C,IAAIx3C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASy3C,IAAIz3C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS03C,IAAI13C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS23C,GAAI33C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS43C,GAAI53C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS63C,IAAI73C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS83C,GAAI93C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS+3C,IAAI/3C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASg4C,GAAIh4C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASi4C,IAAIj4C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASk4C,IAAIl4C,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,GAAKA,EAAE,EAAEyzB,CAAC,CAChC,SAAS0kB,IAAIn4C,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,IAAIo4C,GAAI3kB,CAAC,CAAC,CAChC,SAAS4kB,IAAIr4C,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAGzzB,EAAE,EAAEH,CAAC,CAAC,CAAC,CAChC,SAASy4C,IAAIt4C,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAGzzB,EAAE,EAAEH,CAAC,CAAC,CAAC,CAChC,SAAS04C,IAAIv4C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAAS+kB,IAAIx4C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASglB,IAAIz4C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASilB,IAAI14C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASklB,IAAI34C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAChC,SAASmlB,IAAI54C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEyzB,EAAE,EAAE,CAAC,CAChC,SAASolB,IAAI74C,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,GAAGzzB,CAAC,CAAC,CAChC,SAAS84C,GAAI94C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS+4C,GAAI/4C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASg5C,GAAIh5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASi5C,GAAIj5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASk5C,GAAIl5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASm5C,GAAIn5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASo5C,GAAIp5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASq5C,GAAIr5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASs5C,GAAIt5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASu5C,GAAIv5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASw5C,GAAIx5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASy5C,GAAIz5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS05C,GAAI15C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS25C,IAAI35C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS45C,GAAI55C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS65C,GAAI75C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS85C,GAAI95C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAAS+5C,GAAI/5C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASg6C,IAAIh6C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASi6C,IAAIj6C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAChC,SAASk6C,IAAIl6C,EAAEyzB,EAAE,CAAC/G,GAAG,EAAGytB,GAAI1mB,EAAEzzB,CAAC,CAAC,CAChC,SAASo6C,IAAIp6C,EAAEyzB,EAAE5zB,EAAE,CAACw6C,IAAIr6C,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAChC,SAASy6C,IAAIt6C,EAAE,CAACu6C,IAAI,KAAK,KAAKv6C,CAAC,CAAC,CAChC,SAASw6C,GAAIx6C,EAAE,CAACu6C,IAAI,KAAK,KAAKv6C,CAAC,CAAC,CAChC,SAASy6C,GAAIz6C,EAAE,CAAC06C,GAAI,KAAK,KAAK16C,CAAC,CAAC,CAChC,SAAS26C,IAAI36C,EAAE,CAAC46C,IAAI,KAAK,KAAK56C,CAAC,CAAC,CAChC,SAAS66C,GAAI76C,EAAE,CAAC86C,GAAI,KAAK,KAAK96C,CAAC,CAAC,CAChC,SAAS+6C,IAAI/6C,EAAE,CAACg7C,GAAI,KAAK,KAAKh7C,CAAC,CAAC,CAChC,SAASi7C,IAAIj7C,EAAE,CAACg7C,GAAI,KAAK,KAAKh7C,CAAC,CAAC,CAChC,SAASk7C,KAAK,CAACC,GAAI,KAAK,KAAK,EAAE,CAAC,CAChC,SAASC,IAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAChC,SAASC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAChC,SAASC,IAAIt7C,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,EAAEu7C,GAAIv7C,EAAEyzB,CAAC,CAAC,CAChC,SAAS+nB,IAAIx7C,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAI,CAChC,SAASy7C,IAAGz7C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CACjC,SAASioB,GAAI17C,EAAE,CAAC,OAAOA,EAAE,GAAGA,EAAE,GAAG,CACjC,SAAS27C,GAAG37C,EAAE,CAAC,OAAQA,EAAOA,EAAE,EAAP,IAAQ,CACjC,SAAS47C,IAAG57C,EAAEyzB,EAAE,CAAC,OAAOooB,IAAG77C,EAAE,EAAEyzB,CAAC,CAAC,CACjC,SAASqoB,IAAG97C,EAAE,CAAC,OAAQA,EAAOA,EAAE,EAAP,IAAQ,CACjC,SAAS+7C,IAAG/7C,EAAE,CAAC,OAAQA,EAAOA,EAAE,EAAP,IAAQ,CACjC,SAASg8C,GAAIh8C,EAAE,CAAC,OAAAi8C,GAAIj8C,CAAC,EAASA,EAAE,CAAC,CACjC,SAASk8C,IAAK,CAACA,GAAIx3C,EAAIy3C,IAAIC,IAAG,CAAE,CAChC,SAASC,KAAK,CAACA,IAAI33C,EAAI43C,GAAIC,IAAG,CAAE,CAChC,SAASC,IAAK,CAACA,GAAI93C,EAAI+3C,IAAIC,IAAG,CAAE,CAChC,SAASC,KAAK,CAACA,IAAIj4C,EAAIk4C,IAAIC,IAAG,CAAE,CAChC,SAASC,IAAK,CAACA,GAAIp4C,EAAIq4C,GAAIC,IAAG,CAAE,CAChC,SAAS7W,IAAK,CAACA,GAAIzhC,EAAIu4C,GAAIC,GAAG,CAAE,CAChC,SAASC,KAAK,CAAC,MAAMzX,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASqV,KAAK,CAAC,MAAM1X,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASsV,KAAK,CAAC,MAAM3X,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASuV,KAAK,CAAC,MAAM5X,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASwV,KAAK,CAAC,MAAM7X,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASyV,KAAK,CAAC,MAAM9X,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS0V,GAAIz9C,EAAE,CAAC,KAAK,EAAE,IAAI09C,GAAI19C,CAAC,CAAC,CACjC,SAAS29C,GAAI39C,EAAE,CAAC49C,IAAK,EAACC,IAAI,KAAK79C,CAAC,CAAC,CACjC,SAAS89C,GAAI99C,EAAE,CAAC,KAAK,EAAE,IAAI+9C,GAAI/9C,CAAC,CAAC,CACjC,SAASg+C,GAAIh+C,EAAEyzB,EAAE,CAAC,KAAMzzB,EAAE,GAAGyzB,CAAC,GAAE,CAAC,CACjC,SAASwqB,GAAIj+C,EAAEyzB,EAAE,CAAC,KAAMzzB,EAAE,GAAGyzB,CAAC,GAAE,CAAC,CACjC,SAASyqB,GAAIl+C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CACjC,SAASm+C,GAAIn+C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CACjC,SAASo+C,GAAIp+C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CACjC,SAASq+C,GAAIr+C,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CACjC,SAASs+C,GAAIt+C,EAAE,CAAC,OAAAu+C,GAAIv+C,CAAC,EAASA,EAAE,CAAC,CACjC,SAASw+C,GAAIx+C,EAAE,CAAC,OAAOA,EAAE,GAAGA,EAAE,EAAE,CAAC,CACjC,SAASy+C,IAAGz+C,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,GAAG,EAAE,CACjC,SAAS0+C,GAAI1+C,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACjC,SAASkrB,IAAI3+C,EAAEyzB,EAAE,CAAC,OAAOmrB,IAAI5+C,EAAEyzB,CAAC,CAAC,CACjC,SAASorB,GAAI7+C,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,OAAOyzB,EAAE5zB,CAAC,CAAC,CACjC,SAASi/C,IAAI9+C,EAAE,CAACA,EAAE,EAAE++C,IAAI/+C,CAAC,EAAEg/C,IAAIh/C,CAAC,CAAC,CACjC,SAASi/C,GAAIj/C,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAEA,CAAC,CACjC,SAASk/C,KAAK,CAAC,KAAK,EAAE,IAAIC,GAAIC,GAAE,CAAC,CACjC,SAASC,KAAK,CAAC,KAAK,EAAE,IAAIF,GAAIG,GAAE,CAAC,CACjC,SAASC,KAAK,CAAC,KAAK,EAAE,IAAIJ,GAAIK,EAAE,CAAC,CACjC,SAASxQ,KAAK,CAAC,KAAK,EAAE,IAAImQ,GAAIK,EAAE,CAAC,CACjC,SAASC,KAAK,CAAC,MAAM/Z,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS2X,KAAK,CAAC,MAAMha,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS4X,KAAK,CAAC,MAAMja,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS6X,KAAK,CAAC,MAAMla,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS8X,KAAK,CAAC,MAAMna,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAAS+X,KAAK,CAAC,MAAMpa,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASgY,KAAK,CAAC,MAAMra,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASiY,KAAK,CAAC,MAAMta,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASkY,KAAK,CAAC,MAAMva,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASmY,KAAK,CAAC,MAAMxa,EAAI,IAAIqC,EAAG,CAAC,CACjC,SAASoY,KAAK,CAAC,MAAMza,EAAI,IAAIwC,EAAG,CAAC,CACjC,SAASkY,KAAK,CAAC,MAAM1a,EAAI,IAAIwC,EAAG,CAAC,CACjC,SAASmY,GAAIrgD,EAAE,CAAC,KAAK,EAAE,IAAIsgD,IAAItgD,CAAC,CAAC,CACjC,SAASsgD,IAAItgD,EAAE,CAACugD,IAAI,KAAKvgD,EAAEwgD,IAAG,CAAE,CAAC,CACjC,SAASC,GAAIzgD,EAAE,CAAC,MAAO,CAACA,GAAG0gD,IAAI1gD,CAAC,CAAC,CACjC,SAAS2gD,GAAI3gD,EAAE,CAAC,OAAO4gD,GAAI5gD,CAAC,GAAG,EAAE,CACjC,SAAS6gD,KAAI,CAACC,IAAI,IAAIA,GAAG,GAAGC,GAAG,EAAE,CACjC,SAASC,KAAK,CAACC,IAAK,OAAOA,GAAI,CAAE,EAAC,CAClC,SAASC,IAAIlhD,EAAEyzB,EAAE,CAAC0tB,GAAIC,EAAIphD,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CACjC,SAAS4tB,IAAIrhD,EAAEyzB,EAAE,CAAC0tB,GAAIC,EAAIphD,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CACjC,SAAS6tB,GAAGthD,EAAEyzB,EAAE,CAAC8tB,GAAG,KAAK,KAAKvhD,EAAEyzB,CAAC,CAAC,CAClC,SAAS+tB,GAAGxhD,EAAEyzB,EAAE,CAAC6tB,GAAG,KAAK,KAAKthD,EAAEyzB,CAAC,CAAC,CAClC,SAASguB,GAAGzhD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASiuB,IAAG1hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASkuB,IAAG3hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASmuB,IAAG5hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASouB,IAAG7hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASquB,IAAG9hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASsuB,IAAG/hD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASuuB,IAAGhiD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASwuB,IAAGjiD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASyuB,IAAGliD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS0uB,IAAGniD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS2uB,IAAGpiD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS4uB,IAAGriD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS6uB,IAAGtiD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS8uB,GAAGviD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS+uB,GAAGxiD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASgvB,GAAGziD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASivB,GAAG1iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASkvB,IAAG3iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASmvB,IAAG5iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASovB,IAAG7iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASqvB,IAAG9iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAASsvB,GAAG/iD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CAClC,SAAS+a,IAAGxuC,EAAE,CAACgjD,GAAGhjD,EAAE,GAAE,CAAE,EAAE,KAAK,EAAEA,CAAC,CAClC,SAASijD,GAAGjjD,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAClC,SAASmjD,IAAGnjD,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAClC,SAASqwC,GAAGrwC,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAClC,SAASojD,IAAGpjD,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAClC,SAASuwC,GAAGvwC,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAClC,SAASqjD,IAAI,CAAC,KAAK,EAAE,IAAItgD,EAAK,IAAI,CAClC,SAASugD,IAAK,CAACA,GAAI5+C,EAAI6+C,IAAI,IAAI5+C,GAAG,CAClC,SAAS6+C,IAAK,CAACA,GAAI9+C,EAAI++C,GAAI,IAAIl/C,GAAG,CAClC,SAASm/C,GAAI1jD,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAClC,SAAS2jD,GAAI3jD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASmwB,IAAI5jD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASowB,IAAI7jD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASqwB,IAAI9jD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASswB,IAAI/jD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASuwB,GAAIhkD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAASwwB,IAAIjkD,EAAEyzB,EAAE,CAAC,OAAOywB,GAAGlkD,EAAE,EAAEyzB,CAAC,CAAC,CAClC,SAAS0wB,IAAGnkD,EAAEyzB,EAAE,CAAC,OAAO2wB,GAAIpkD,EAAE,EAAEyzB,CAAC,CAAC,CAClC,SAAS4wB,IAAGrkD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEyzB,GAAGA,EAAE6wB,EAAG,CAClC,SAASC,IAAIvkD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAGyzB,CAAC,EAAEzzB,CAAC,CAClC,SAASwkD,IAAIxkD,EAAEyzB,EAAE,CAAC,OAAOgxB,GAAGzkD,EAAEyzB,CAAC,EAAEzzB,CAAC,CAClC,SAAS0kD,IAAG1kD,EAAE,CAAC,OAAO2kD,IAAE,EAAG3kD,EAAE4kD,IAAGC,GAAE,CAClC,SAASnH,GAAI19C,EAAE,CAAC8kD,IAAI,KAAK,KAAK9kD,EAAE,CAAC,CAAC,CAClC,SAASsqC,KAAK,CAACyT,GAAI,KAAK,KAAK,IAAI,CAAC,CAClC,SAASgH,IAAK,CAACC,GAAI,KAAK,KAAK,IAAI,CAAC,CAClC,SAASC,GAAIjlD,EAAE,CAAC,KAAK,EAAEA,EAAEklD,IAAI,IAAI,CAAC,CAClC,SAAStY,IAAK,CAACuY,IAAI,IAAI,EAAEC,GAAI,IAAI,CAAC,CAClC,SAASC,GAAIrlD,EAAEyzB,EAAE,CAAC8qB,GAAIv+C,CAAC,EAAEA,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAClC,SAAS6xB,IAAItlD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,CAAC,EAASzzB,CAAC,CAClC,SAASulD,IAAIvlD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAASwlD,IAAIxlD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAASylD,IAAIzlD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS0lD,IAAI1lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS2lD,GAAI3lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS4lD,GAAI5lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS6lD,GAAI7lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS8lD,GAAI9lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAAS+lD,GAAI/lD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAEyzB,EAASzzB,CAAC,CAClC,SAASgmD,IAAIhmD,EAAE,CAAC,OAAAA,EAAE,EAAE,GAAaA,CAAC,CAClC,SAASimD,IAAK,CAACA,GAAIvhD,EAAIwhD,IAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAI1hD,EAAI2hD,IAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAI7hD,EAAI8hD,IAAI,IAAI9gD,GAAG,CAClC,SAAS+gD,KAAK,CAACA,IAAI/hD,EAAIgiD,IAAI,IAAI76C,GAAG,CAClC,SAAS86C,IAAK,CAACA,GAAIjiD,EAAIkiD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAIpiD,EAAIqiD,GAAI,IAAIpgD,GAAG,CAClC,SAASqgD,IAAK,CAACA,GAAItiD,EAAIuiD,IAAI,IAAIn7C,GAAG,CAClC,SAASo7C,KAAK,CAACA,IAAIxiD,EAAIyiD,IAAI,IAAIngD,GAAG,CAClC,SAASogD,IAAK,CAACA,GAAI1iD,EAAI2iD,IAAI,IAAI18C,GAAG,CAClC,SAAS2gB,IAAK,CAACA,GAAI5mB,EAAI4iD,IAAI,IAAIlM,EAAG,CAClC,SAASmM,KAAK,CAACA,IAAI7iD,EAAI8iD,IAAI,IAAIt8C,GAAG,CAClC,SAASu8C,IAAK,CAACA,GAAI/iD,EAAIgjD,IAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAIljD,EAAImjD,IAAI,IAAI78C,GAAG,CAClC,SAASogB,IAAK,CAACA,GAAI1mB,EAAIojD,IAAI,IAAIp6C,GAAG,CAClC,SAASge,KAAK,CAACA,IAAIhnB,EAAIqjD,IAAI,IAAI/3C,GAAG,CAClC,SAASg4C,IAAK,CAACA,GAAItjD,EAAIujD,IAAI,IAAIvyC,GAAG,CAClC,SAASoW,IAAK,CAACA,GAAIpnB,EAAIwjD,GAAI,IAAI/wC,GAAG,CAClC,SAAS+W,KAAK,CAACA,IAAIxpB,EAAIyjD,IAAI,IAAIC,EAAG,CAClC,SAASC,IAAK,CAACA,GAAI3jD,EAAI4jD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAI9jD,EAAI+jD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAIjkD,EAAIkkD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAIpkD,EAAIqkD,IAAI,IAAIpoC,GAAG,CAClC,SAASqoC,KAAK,CAACC,IAAG,EAAG,KAAK,EAAE,IAAIxjB,EAAE,CAClC,SAAS8iB,KAAK,CAAChG,GAAG,KAAK,KAAK2G,IAAI,CAAC,CAAC,CAClC,SAASC,GAAInpD,EAAEyzB,EAAE,CAAC21B,GAAIppD,EAAE,EAAE,EAAEyzB,EAAE,EAAEA,CAAC,CAAC,CAClC,SAAS41B,GAAIrpD,EAAEyzB,EAAE,CAAC21B,GAAIppD,EAAE,EAAE,EAAEyzB,EAAE,EAAEA,CAAC,CAAC,CAClC,SAAS61B,IAAItpD,EAAEyzB,EAAE5zB,EAAE,CAAC0pD,GAAIvpD,EAAE,EAAEyzB,EAAE,EAAE5zB,CAAC,CAAC,CAClC,SAAS2pD,IAAIxpD,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACC,IAAI1pD,EAAEypD,EAAEh2B,EAAE5zB,CAAC,CAAC,CAClC,SAAS8pD,IAAI3pD,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACG,IAAIH,EAAEzpD,EAAEyzB,EAAE5zB,CAAC,CAAC,CAClC,SAASgqD,IAAI7pD,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACK,IAAIL,EAAEzpD,EAAEyzB,EAAE5zB,CAAC,CAAC,CAClC,SAASkqD,GAAI/pD,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAAE,EAASzzB,CAAC,CAClC,SAASgqD,IAAIhqD,EAAEyzB,EAAE,CAAC,OAAOw2B,IAAGjqD,EAAE,EAAEyzB,CAAC,CAAC,CAClC,SAASy2B,IAAIlqD,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAClC,SAASmqD,IAAInqD,EAAE,CAAC,OAAQA,EAAE,EAAEA,EAAE,GAAG,CAAC,CAClC,SAASoqD,IAAK,CAACA,GAAI1lD,EAAI2lD,IAAI,IAAInpC,GAAG,CAClC,SAASopC,KAAK,CAACA,IAAI5lD,EAAI6lD,IAAI,IAAI5oC,GAAG,CAClC,SAAS6oC,KAAK,CAACA,IAAI9lD,EAAI+lD,IAAI,IAAItd,GAAG,CAClC,SAASud,KAAK,CAACA,IAAIhmD,EAAIimD,IAAI,IAAIvd,GAAG,CAClC,SAASwd,IAAK,CAACA,GAAIlmD,EAAImmD,GAAI,IAAIjd,EAAG,CAClC,SAASkd,IAAK,CAACA,GAAIpmD,EAAIqmD,IAAI,IAAIjd,GAAG,CAClC,SAASkd,IAAK,CAACA,GAAItmD,EAAIumD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAIzmD,EAAI0mD,GAAI,IAAIC,GAAG,CAClC,SAASC,IAAK,CAACA,GAAI5mD,EAAI6mD,IAAI,IAAI/kC,GAAG,CAClC,SAASglC,IAAK,CAACA,GAAI9mD,EAAI+mD,IAAI,IAAIhlC,GAAG,CAClC,SAASilC,IAAK,CAACA,GAAIhnD,EAAIinD,GAAI,IAAI5mB,EAAG,CAClC,SAAS6mB,IAAK,CAACA,GAAIlnD,EAAImnD,IAAI,IAAIhnB,CAAG,CAClC,SAASinB,IAAK,CAACA,GAAIpnD,EAAIqnD,GAAI,IAAI7hC,GAAG,CAClC,SAAS8hC,IAAGhsD,EAAE,CAAC+C,EAAK,aAAa/C,CAAC,CAAC,CACnC,SAASisD,GAAGjsD,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,GAAG,CAAC,CACnC,SAASksD,GAAGlsD,EAAE,CAAC,OAAOkjD,EAAGljD,EAAE,EAAE,EAAE,IAAI,CACnC,SAASmsD,GAAInsD,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE,IAAI,CACnC,SAASosD,IAAIpsD,EAAEyzB,EAAE,CAAC,OAAO44B,GAAIrsD,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAAS64B,IAAItsD,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,EAAE,CAAC,CACnC,SAAS+4B,GAAIxsD,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,EAAE,CAAC,CACnC,SAASg5B,GAAIzsD,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,IAAIyzB,CAAC,CAAC,CACnC,SAASi5B,IAAIj5B,EAAEzzB,EAAE,CAAC,OAAOA,EAAE,MAAMyzB,CAAC,CAAC,CACnC,SAASk5B,IAAI3sD,EAAEyzB,EAAE,CAAC,OAAO2wB,GAAIpkD,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAASm5B,GAAI5sD,EAAE,CAAC,OAAO8wB,GAAI9wB,CAAC,EAAE,EAAK,CACnC,SAAS6sD,GAAI7sD,EAAE,CAAC8sD,GAAI,KAAK,KAAK9sD,EAAE,EAAE,CAAC,CACnC,SAAS+sD,IAAI/sD,EAAEyzB,EAAE,CAACu5B,IAAG,KAAK,KAAKhtD,EAAEyzB,CAAC,CAAC,CACnC,SAASw5B,GAAIjtD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASy5B,GAAIltD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS05B,GAAGntD,EAAE,CAACotD,GAAE,EAAGnd,IAAG,KAAK,KAAKjwC,CAAC,CAAC,CACnC,SAASqtD,GAAIrtD,EAAEyzB,EAAE,CAAC65B,IAAIttD,EAAEA,EAAE,OAAOyzB,CAAC,CAAC,CACnC,SAAS85B,GAAIvtD,EAAEyzB,EAAE,CAAC+5B,IAAIxtD,EAAEA,EAAE,OAAOyzB,CAAC,CAAC,CACnC,SAASg6B,IAAIztD,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAGzzB,EAAE,EAAE,GAAGH,CAAC,CAAC,CAAC,CACnC,SAAS6tD,IAAI1tD,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAGzzB,EAAE,EAAE,GAAGH,CAAC,CAAC,CAAC,CACnC,SAAS8tD,IAAI3tD,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAGzzB,EAAE,EAAE,GAAGH,CAAC,CAAC,CAAC,CACnC,SAAS+tD,IAAG5tD,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,GAAGH,CAAC,GAAG4zB,EAAE,GAAG5zB,CAAC,CAAC,CACnC,SAASguD,GAAI7tD,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,OAAOyzB,EAAE,EAAE5zB,CAAC,CAAC,CACnC,SAASiuD,IAAI9tD,EAAEyzB,EAAE,CAAC,OAAOs6B,GAAI/tD,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAASu6B,GAAIhuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASw6B,IAAIjuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASy6B,IAAIluD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS06B,GAAInuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS26B,IAAIpuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS46B,IAAIruD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS66B,IAAItuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS86B,IAAIvuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS+6B,GAAIxuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASg7B,GAAIzuD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASi7B,GAAI1uD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASk7B,GAAI3uD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASm7B,GAAI5uD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASo7B,GAAI7uD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASq7B,GAAI9uD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASs7B,GAAI/uD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASu7B,GAAIhvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASw7B,GAAIjvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASy7B,GAAIlvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS07B,GAAInvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS27B,GAAIpvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS47B,GAAIrvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS67B,GAAItvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS87B,GAAIvvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS+7B,GAAIxvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASg8B,GAAIzvD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASi8B,GAAI1vD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASk8B,GAAI3vD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASm8B,GAAI5vD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASo8B,IAAI7vD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASq8B,IAAI9vD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASs8B,IAAI/vD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASu8B,IAAIhwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASw8B,IAAIjwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASy8B,IAAIlwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS08B,IAAInwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS28B,IAAIpwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS48B,IAAIrwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS68B,GAAItwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS88B,IAAIvwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS+8B,IAAIxwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASg9B,IAAIzwD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASi9B,GAAI1wD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASk9B,IAAI3wD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASm9B,IAAI5wD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASo9B,IAAI7wD,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEzzB,CAAC,CACnC,SAAS8wD,GAAI9wD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASs9B,GAAI/wD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASu9B,GAAIhxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASw9B,GAAIjxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASy9B,GAAIlxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS09B,GAAInxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS29B,GAAIpxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS49B,GAAIrxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS69B,GAAItxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS89B,GAAIvxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS+9B,GAAIxxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASg+B,GAAIzxD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASi+B,GAAI1xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASk+B,GAAI3xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASm+B,GAAI5xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASo+B,GAAI7xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASq+B,GAAI9xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASs+B,GAAI/xD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASu+B,GAAIhyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASw+B,GAAIjyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASy+B,GAAIlyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS0+B,GAAInyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS2+B,GAAIpyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS4+B,GAAIryD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS6+B,GAAItyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS8+B,GAAIvyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS++B,GAAIxyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASg/B,GAAIzyD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASi/B,GAAI1yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASk/B,GAAI3yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASm/B,GAAI5yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASo/B,GAAI7yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASq/B,GAAI9yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASs/B,GAAI/yD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASu/B,IAAIhzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASw/B,IAAIjzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASy/B,IAAIlzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS0/B,IAAInzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS2/B,IAAIpzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS4/B,GAAIrzD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS6/B,GAAItzD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS8/B,IAAIvzD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS+/B,GAAIxzD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASggC,GAAIzzD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASigC,IAAI1zD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASkgC,IAAI3zD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASmgC,GAAI5zD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASogC,GAAI7zD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASqgC,GAAI9zD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASsgC,GAAI/zD,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASugC,GAAIh0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASwgC,GAAIj0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASygC,GAAIl0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS0gC,GAAIn0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS2gC,GAAIp0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS4gC,GAAIr0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS6gC,GAAIt0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS8gC,GAAIv0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS+gC,GAAIx0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASghC,GAAIz0D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASihC,GAAI10D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASkhC,GAAI30D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASmhC,IAAI50D,EAAEyzB,EAAE,CAAC,OAAOs6B,GAAI/tD,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAASohC,IAAI70D,EAAEyzB,EAAE,CAAC,OAAOs6B,GAAIt6B,EAAE,EAAEzzB,CAAC,CAAC,CACnC,SAAS80D,IAAI90D,EAAEyzB,EAAE,CAAC,MAAO,CAACzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CACnC,SAASshC,GAAI/0D,EAAEyzB,EAAE,CAAC,OAAOs6B,GAAI/tD,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAASuhC,GAAIh1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASwhC,GAAIj1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASyhC,IAAIl1D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS0hC,IAAIn1D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS2hC,GAAIp1D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS4hC,GAAIr1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS6hC,GAAIt1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS8hC,GAAIv1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS+hC,GAAIx1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASgiC,GAAIz1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASiiC,GAAI11D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASkiC,GAAI31D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASmiC,GAAI51D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASoiC,GAAI71D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASqiC,GAAI91D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASsiC,GAAI/1D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASuiC,GAAIh2D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASwiC,GAAIj2D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASyiC,GAAIl2D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS0iC,GAAIn2D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS2iC,GAAIp2D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS4iC,IAAIr2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS6iC,IAAIt2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS8iC,IAAIv2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS+iC,IAAIx2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASgjC,IAAIz2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASijC,IAAI12D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASkjC,GAAI32D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASmjC,GAAI52D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAASojC,IAAI72D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASqjC,IAAI92D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASsjC,IAAI/2D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASujC,IAAIh3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASwjC,IAAIj3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASyjC,IAAIl3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS0jC,IAAIn3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS2jC,IAAIp3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS4jC,IAAIr3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS6jC,IAAIt3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS8jC,IAAIv3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS+jC,IAAIx3D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASgkC,IAAIz3D,EAAEyzB,EAAE,CAACikC,IAAI13D,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CACnC,SAASkkC,IAAI33D,EAAEyzB,EAAE,CAACmkC,IAAI53D,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CACnC,SAASokC,IAAI73D,EAAEyzB,EAAE,CAAC,OAAAqkC,KAAarkC,GAAGzzB,CAAC,CACnC,SAAS+3D,KAAK,CAAC,OAAArhB,MAAa,IAAIC,GAAG,CACnC,SAASqhB,KAAK,CAACC,GAAG,EAAG,KAAK,EAAE,IAAIruB,EAAG,CACnC,SAASsuB,KAAK,CAACC,GAAG,EAAG,KAAK,EAAE,IAAIvuB,EAAG,CACnC,SAASwuB,KAAK,CAACC,GAAG,EAAGC,GAAI,KAAK,IAAI,CAAC,CACnC,SAASC,GAAIv4D,EAAEyzB,EAAE,CAAC8uB,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,CAAC,CACnC,SAAS+kC,IAAIx4D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASglC,IAAIz4D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASilC,GAAI14D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASklC,IAAI34D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASmlC,IAAI54D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASolC,IAAI74D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASqlC,IAAI94D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASslC,GAAI/4D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASulC,IAAIh5D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASwlC,GAAIj5D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAASylC,GAAIl5D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS0lC,IAAIn5D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS2lC,IAAIp5D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,CAAC,CACnC,SAAS4lC,GAAIr5D,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,KAAKs5D,GAAIt5D,EAAEyzB,CAAC,CAAC,CACnC,SAAS8lC,IAAIv5D,EAAEyzB,EAAE,CAAGzzB,GAAGw5D,GAAIC,GAAIz5D,EAAEyzB,CAAC,CAAC,CACnC,SAASimC,IAAI15D,EAAEyzB,EAAE,CAAC,OAAOkmC,GAAI35D,EAAE,EAAEyzB,CAAC,CAAC,CACnC,SAASmmC,GAAI55D,EAAE,CAAC,OAAO65D,GAAI75D,EAAE,EAAEA,EAAE,CAAC,CAAC,CACnC,SAAS85D,GAAG95D,EAAE,CAAC,OAAQA,EAAOA,EAAE,KAAP,IAAW,CACpC,SAAS+5D,EAAG/5D,EAAE,CAAC,OAAOA,GAAQ,IAAM,CACpC,SAASg6D,GAAGh6D,EAAE,CAAC,OAAO,OAAOA,IAAIi6D,EAAG,CACpC,SAASC,GAAGl6D,EAAE,CAAC,OAAO,OAAOA,IAAIm6D,EAAG,CACpC,SAASC,GAAGp6D,EAAE,CAAC,OAAO,OAAOA,IAAIq6D,EAAG,CACpC,SAASC,GAAGt6D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAI,EAAC,GAAGyzB,CAAC,CAAC,CACpC,SAAS8mC,GAAGv6D,EAAEyzB,EAAE,CAAC,OAAO+mC,IAAGx6D,EAAE,KAAKyzB,CAAC,CAAC,CACpC,SAASgnC,GAAIz6D,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,GAAG,CAAC,CACpC,SAASinC,IAAI16D,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,GAAG,CAAC,CACpC,SAASknC,GAAI36D,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,GAAG,CAAC,CACpC,SAASmnC,IAAI56D,EAAE,CAAC,MAAO,IAAI8wB,GAAI9wB,CAAC,EAAEA,EAAE,CACpC,SAAS66D,GAAI76D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,OAAOyzB,CAAC,CAAC,CACpC,SAASqnC,IAAG96D,EAAE,CAAC,OAAA+6D,GAAG/6D,CAAC,EAASA,EAAE,EAAE,IAAI,CACpC,SAASg7D,GAAIh7D,EAAE,CAAC,OAAAi7D,IAAIj7D,EAAEA,EAAE,CAAC,EAASA,CAAC,CACnC,SAASk7D,GAAGl7D,EAAE,CAAC,OAAAm7D,GAAIn7D,GAAG,IAAI,EAASA,CAAC,CACpC,SAASo7D,GAAIp7D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,GAAGyzB,EAASzzB,CAAC,CACpC,SAASq7D,GAAIr7D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,GAAGyzB,EAASzzB,CAAC,CACpC,SAASs7D,GAAIt7D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,GAAGyzB,EAASzzB,CAAC,CACpC,SAASu7D,GAAIv7D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,GAAGyzB,EAASzzB,CAAC,CACpC,SAASw7D,GAAIx7D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,GAAGyzB,EAASzzB,CAAC,CACpC,SAASy7D,GAAIz7D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAG,GAAGyzB,EAAEzzB,CAAC,CACpC,SAAS07D,IAAI17D,EAAEyzB,EAAE,CAACkoC,GAAI37D,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CACpC,SAAS47D,GAAI57D,EAAEyzB,EAAE,CAACkoC,GAAI37D,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CACpC,SAAS67D,IAAI77D,EAAEyzB,EAAE5zB,EAAE,CAACi8D,IAAIroC,EAAEsoC,GAAI/7D,EAAEH,CAAC,CAAC,CAAC,CACnC,SAASm8D,IAAIh8D,EAAEyzB,EAAE5zB,EAAE,CAACi8D,IAAIroC,EAAEsoC,GAAI/7D,EAAEH,CAAC,CAAC,CAAC,CACnC,SAASo8D,IAAIj8D,EAAEyzB,EAAE,CAACyoC,IAAI,IAAIC,GAAIn8D,CAAC,EAAEyzB,CAAC,CAAC,CACnC,SAAS2oC,IAAGp8D,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,QAAQq8D,GAAI5oC,CAAC,CAAC,CAAC,CACpC,SAAS6oC,IAAIt8D,EAAEyzB,EAAE,CAAC8oC,GAAI,KAAK,KAAKv8D,EAAEyzB,CAAC,CAAC,CACpC,SAAS+oC,IAAIx8D,EAAEyzB,EAAE,CAAC8oC,GAAI,KAAK,KAAKv8D,EAAEyzB,CAAC,CAAC,CACpC,SAASgpC,GAAIz8D,EAAEyzB,EAAE,CAAC8oC,GAAI,KAAK,KAAKv8D,EAAEyzB,CAAC,CAAC,CACpC,SAASipC,IAAI18D,EAAE,CAACglC,GAAI,IAAI,EAAE23B,GAAG,KAAK38D,CAAC,CAAC,CACpC,SAAS48D,GAAI58D,EAAE,CAAC,OAAA68D,GAAI78D,EAAE,CAAC,EAAS,IAAI,CACpC,SAAS88D,GAAI98D,EAAE,CAAC,OAAAA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAASA,CAAC,CACpC,SAAS+8D,IAAI/8D,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAAE,EAAE,EAASzzB,CAAC,CACpC,SAASg9D,IAAIh9D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,GAAG,CAAC,CACpC,SAASwpC,GAAIj9D,EAAE,CAAC,OAAOk9D,IAAIha,EAAGljD,EAAE,EAAE,CAAC,CAAC,CACpC,SAASm9D,KAAK,CAACA,IAAIz4D,EAAI04D,IAAIC,GAAGC,GAAG,CAAE,CAAC,CACpC,SAASC,KAAK,CAACA,IAAI74D,EAAI84D,IAAIH,GAAGI,IAAG,CAAE,CAAC,CACpC,SAASl1B,KAAI,CAAC,KAAK,EAAE,IAAImV,GAAIggB,GAAG,EAAE,CAAC,CAAC,CACpC,SAASvX,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAK,CACpC,SAASG,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAK,CACpC,SAASqX,GAAG39D,EAAE,CAAC,KAAK,EAAEA,EAAEmqB,GAAG,KAAK,IAAI,CAAC,CACrC,SAASyzC,IAAG59D,EAAE,CAAC,KAAK,EAAEA,EAAEmqB,GAAG,KAAK,IAAI,CAAC,CACrC,SAAS0zC,GAAI79D,EAAEyzB,EAAE,CAACqqC,GAAI,KAAK,KAAK99D,EAAEyzB,CAAC,CAAC,CACpC,SAASsqC,GAAI/9D,EAAEyzB,EAAE,CAACuqC,GAAI,KAAK,KAAKh+D,EAAEyzB,CAAC,CAAC,CACpC,SAASwqC,GAAIj+D,EAAEyzB,EAAE,CAACylC,GAAI,KAAK,KAAKl5D,EAAEyzB,CAAC,CAAC,CACpC,SAASyqC,GAAIl+D,EAAEyzB,EAAE,CAAC0qC,GAAI,KAAK,KAAKn+D,EAAEyzB,CAAC,CAAC,CACpC,SAAS2qC,IAAIp+D,EAAEyzB,EAAE,CAAC4qC,GAAI,KAAK,KAAKr+D,EAAEyzB,CAAC,CAAC,CACpC,SAAS6qC,GAAIt+D,EAAEyzB,EAAE,CAACi4B,KAAM8N,GAAI7N,GAAI3rD,EAAEyzB,CAAC,CAAC,CACpC,SAAS8qC,GAAIv+D,EAAEyzB,EAAE,CAAC,OAAO+qC,GAAIx+D,EAAE,EAAE,EAAEyzB,CAAC,CAAC,CACrC,SAASgrC,IAAGz+D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CACrC,SAASirC,IAAG1+D,EAAEyzB,EAAE,CAAC,OAAOsmC,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,CAAC,CACrC,SAASkrC,IAAI3+D,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACrC,SAASorC,IAAI7+D,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACrC,SAASsrC,IAAI/+D,EAAEyzB,EAAE,CAAC,OAAOurC,IAAIh/D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACrC,SAASwrC,GAAIj/D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,QAAQyzB,CAAC,CAAC,CACrC,SAASyrC,GAAGl/D,EAAEyzB,EAAE,CAAC,OAAOzzB,GAAGyzB,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CACrC,SAASm/D,GAAGn/D,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAIA,EAAE,GAAGA,CAAC,CACrC,SAASo/D,IAAGp/D,EAAE,CAAC,OAAOw1C,GAAGx1C,CAAC,EAAE,IAAI29D,GAAG39D,CAAC,CAAC,CACrC,SAASq/D,IAAGr/D,EAAE,CAAC,OAAOs/D,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CACrC,SAASu/D,GAAIv/D,EAAE,CAAC,OAAOw/D,IAAI1uC,GAAI9wB,CAAC,EAAEA,GAAG,CACrC,SAASy/D,IAAIz/D,EAAE,CAAC,OAAOw/D,IAAI1uC,GAAI9wB,CAAC,EAAEA,GAAG,CACrC,SAAS0/D,IAAI1/D,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACrC,SAASksC,GAAI3/D,EAAE,CAAC,OAAO,OAAOA,IAAIm6D,EAAG,CACrC,SAASyF,IAAI5/D,EAAE,CAAC,OAAOA,GAAG6/D,IAAK7/D,GAAG8/D,EAAG,CACrC,SAASC,IAAI//D,EAAE,CAAC,OAAOA,GAAG6/D,IAAK7/D,GAAGggE,EAAG,CACrC,SAASC,GAAIjgE,EAAE,CAAC,OAAOkgE,GAAIlgE,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CACrC,SAASmgE,IAAIngE,EAAE,CAAC,KAAK,EAAE+3D,MAAM,KAAK,EAAE/3D,CAAC,CACrC,SAASogE,IAAIpgE,EAAE,CAAC,KAAK,EAAE+3D,MAAM,KAAK,EAAE/3D,CAAC,CACrC,SAASqgE,IAAIrgE,EAAEyzB,EAAE,CAAC,OAAAmV,EAAI5oC,EAAE,EAAEyzB,CAAC,EAASA,CAAC,CACrC,SAAS6sC,IAAItgE,EAAEyzB,EAAE,CAAC,OAAAmV,EAAI5oC,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CACrC,SAASugE,IAAIvgE,EAAEyzB,EAAE,CAAC,OAAA+sC,GAAIxgE,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CACrC,SAASygE,IAAIzgE,EAAEyzB,EAAE,CAAC,OAAAitC,GAAG,EAAUjtC,EAAE,GAAGzzB,CAAC,CACrC,SAAS2gE,IAAI3gE,EAAEyzB,EAAE,CAAC,OAAAitC,GAAG,EAAUjtC,EAAE,GAAGzzB,CAAC,CACrC,SAAS4gE,IAAI5gE,EAAEyzB,EAAE,CAAC,OAAAitC,GAAG,EAAUjtC,EAAE,GAAGzzB,CAAC,CACrC,SAAS6gE,GAAI7gE,EAAEyzB,EAAE,CAACqtC,GAAI9gE,EAAE,EAAEA,EAAE,OAAOyzB,CAAC,CAAC,CACrC,SAASstC,IAAK,CAACroC,GAAI,KAAK,KAAK,IAAIsoC,EAAG,CAAC,CACrC,SAASC,KAAK,CAACC,GAAI,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CACrC,SAASC,IAAK,CAACC,GAAI,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CACrC,SAAShpB,GAAIp4C,EAAE,CAAC,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,CACrC,SAASqhE,GAAIrhE,EAAE,CAAC,OAAOA,GAAGshE,IAAKthE,GAAGuhE,EAAG,CACrC,SAASC,GAAIxhE,EAAE,CAAC,OAAOA,GAAGyhE,IAAKzhE,GAAG0hE,EAAG,CACrC,SAASC,IAAI3hE,EAAE,CAAC,OAAOA,GAAG4hE,IAAK5hE,GAAG6hE,EAAG,CACrC,SAASC,GAAI9hE,EAAE,CAAC,OAAOA,GAAG+hE,IAAK/hE,GAAGgiE,EAAG,CACrC,SAASC,GAAIjiE,EAAE,CAAC,OAAOA,EAAE,MAAMA,EAAE,IAAI,CACrC,SAASkiE,IAAIliE,EAAE,CAAC,OAAOmiE,GAAIjf,EAAGljD,EAAE,GAAG,CAAC,CAAC,CACrC,SAASoiE,GAAIpiE,EAAE,CAAC,OAAOwgE,GAAI,IAAIpY,GAAIpoD,CAAC,CAAC,CACrC,SAASqiE,IAAIriE,EAAEyzB,EAAE,CAAC,OAAO,IAAI0qC,GAAI1qC,EAAEzzB,CAAC,CAAC,CACrC,SAASsiE,IAAItiE,EAAEyzB,EAAE,CAAC,OAAO,IAAI0qC,GAAI1qC,EAAEzzB,CAAC,CAAC,CACrC,SAASuiE,GAAIviE,EAAEyzB,EAAE5zB,EAAE,CAAC2iE,GAAIxiE,EAAEyzB,CAAC,EAAEgvC,GAAIziE,EAAEH,CAAC,CAAC,CACrC,SAAS6iE,GAAI1iE,EAAEyzB,EAAE5zB,EAAE,CAAC8iE,GAAI3iE,EAAEyzB,CAAC,EAAEmvC,GAAI5iE,EAAEH,CAAC,CAAC,CACrC,SAASgjE,GAAI7iE,EAAEyzB,EAAE5zB,EAAE,CAACijE,GAAI9iE,EAAEyzB,CAAC,EAAEsvC,GAAI/iE,EAAEH,CAAC,CAAC,CACrC,SAASmjE,GAAIhjE,EAAEyzB,EAAE5zB,EAAE,CAACojE,GAAIjjE,EAAEyzB,CAAC,EAAEyvC,GAAIljE,EAAEH,CAAC,CAAC,CACrC,SAASsjE,GAAInjE,EAAEyzB,EAAE5zB,EAAE,CAACujE,GAAIpjE,EAAEyzB,CAAC,EAAE4vC,GAAIrjE,EAAEH,CAAC,CAAC,CACrC,SAASyjE,GAAItjE,EAAEyzB,EAAE,CAAC8vC,GAAIvjE,EAAEyzB,CAAC,EAAE+vC,GAAIxjE,EAAEA,EAAE,CAAC,CAAC,CACrC,SAASyjE,GAAIzjE,EAAE,CAACg5D,IAAI,KAAK,KAAKh5D,EAAE,EAAI,CAAC,CACrC,SAAS0jE,IAAG1jE,EAAEyzB,EAAE5zB,EAAE,CAAC8jE,GAAG,KAAK,KAAK3jE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACtC,SAAS+jE,GAAI5jE,EAAE,CAAC6jE,GAAG,EAAGC,IAAI,KAAK,KAAK9jE,CAAC,CAAC,CACtC,SAAS+jE,KAAK,CAAC9W,GAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CACtC,SAAS+W,KAAK,CAAC/W,GAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CACtC,SAASnoB,GAAI9kC,EAAE,CAACA,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACtC,SAASv/B,IAAI5kC,EAAE,CAACA,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACtC,SAASC,IAAIpkE,EAAE,CAACqkE,GAAIrkE,EAAE,GAAE,EAAG,IAAIk6B,IAAIl6B,CAAC,CAAC,CAAC,CACtC,SAASskE,GAAItkE,EAAE,CAAC,OAAOA,GAAG,KAAKukE,GAAGvkE,CAAC,EAAE,CAAC,CACtC,SAASwkE,IAAIxkE,EAAEyzB,EAAE,CAAC,OAAOgxC,GAAIhxC,EAAEixC,GAAI1kE,CAAC,CAAC,CAAC,CACtC,SAAS2kE,IAAI3kE,EAAEyzB,EAAE,CAAC,OAAOgxC,GAAIhxC,EAAEixC,GAAI1kE,CAAC,CAAC,CAAC,CACtC,SAAS4kE,IAAI5kE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEA,EAAE,MAAM,EAAEyzB,CAAC,CACtC,SAASoxC,IAAI7kE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEA,EAAE,MAAM,EAAEyzB,CAAC,CACtC,SAASqxC,GAAG9kE,EAAE,CAAC,OAAO+kE,IAAG/kE,EAAE,EAAE,GAAI,EAACA,EAAE,CAAC,CAAC,CACtC,SAASglE,IAAIhlE,EAAEyzB,EAAE,CAAC,OAAOwxC,GAAGC,GAAGllE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CACtC,SAAS0xC,IAAInlE,EAAEyzB,EAAE,CAAC,OAAOwxC,GAAGC,GAAGllE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CACtC,SAAS2xC,IAAIplE,EAAEyzB,EAAE,CAAC,OAAOwxC,GAAGC,GAAGllE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CACtC,SAAS4xC,GAAIrlE,EAAEyzB,EAAE,CAACqqC,GAAI,KAAK,KAAK99D,EAAE,EAAEyzB,CAAC,CAAC,CACtC,SAAS6xC,GAAItlE,EAAE,CAACkhE,GAAI,KAAK,KAAKlhE,EAAEA,EAAEA,EAAEA,CAAC,CAAC,CACtC,SAASulE,GAAIvlE,EAAE,CAAC,OAAAA,EAAE,GAAGwlE,GAAIxlE,CAAC,EAASA,EAAE,CAAC,CACtC,SAASylE,GAAIzlE,EAAE,CAAC,OAAAA,EAAE,GAAGwlE,GAAIxlE,CAAC,EAASA,EAAE,CAAC,CACtC,SAAS0lE,IAAI1lE,EAAEyzB,EAAE,CAAIkyC,KAAY3lE,EAAE,EAAEyzB,EAAC,CACtC,SAASmyC,GAAI5lE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAgmE,GAAG7lE,EAAEyzB,EAAE5zB,CAAC,EAASA,CAAC,CACtC,SAASimE,IAAI9lE,EAAEyzB,EAAE5zB,EAAE,CAACgmE,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAE5zB,CAAC,CAAC,CACtC,SAASkmE,IAAI/lE,EAAEyzB,EAAE5zB,EAAE,CAACqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CACtC,SAASmmE,IAAIhmE,EAAEyzB,EAAE5zB,EAAE,CAACgjE,GAAIhjE,EAAEA,EAAE,EAAEG,EAAEH,EAAE,EAAE4zB,CAAC,CAAC,CACtC,SAASwyC,IAAIjmE,EAAEyzB,EAAE,CAACyyC,GAAIC,GAAInmE,EAAE,CAAC,EAAEomE,IAAI3yC,CAAC,CAAC,CAAC,CACtC,SAAS4yC,IAAIrmE,EAAEyzB,EAAE,CAACyyC,GAAII,GAAItmE,EAAE,CAAC,EAAEumE,IAAI9yC,CAAC,CAAC,CAAC,CACtC,SAAS+yC,GAAIxmE,EAAE,CAACymE,GAAG,EAAGhiC,GAAI,KAAK,KAAKzkC,CAAC,CAAC,CACtC,SAAS0mE,IAAI1mE,EAAE,CAAC,OAAOA,GAAG,KAAK,EAAEukE,GAAGvkE,CAAC,CAAC,CACtC,SAAS2mE,KAAK,CAACA,IAAIjiE,EAAIkiE,GAAI,IAAIC,GAAIC,EAAE,CAAC,CACtC,SAASC,IAAK,CAACA,GAAIriE,EAAI,IAAIsiE,IAAI,IAAIniC,CAAG,CACtC,SAASmiC,KAAK,CAAC,IAAIjiC,GAAI,IAAIA,GAAI,IAAIA,EAAG,CACtC,SAASkiC,IAAI,CAACA,GAAGviE,EAAI8jC,KAAK0+B,IAAG,IAAIniC,EAAG,CACpC,SAASoiC,IAAI,CAACA,GAAGziE,EAAI3B,EAAK,KAAK,IAAI,CAAC,CAAC,CACrC,SAASqkE,IAAK,CAACA,GAAI1iE,EAAI2iE,IAAK/c,IAAG,EAAGC,IAAI,CACtC,SAAS+c,KAAK,CAAC,MAAM5hC,EAAI,IAAIqO,GAAIwzB,GAAG,CAAC,CAAC,CACtC,SAASC,KAAK,CAAC,MAAM9hC,EAAI,IAAIqO,GAAIwzB,GAAG,CAAC,CAAC,CACtC,SAASE,KAAK,CAAC,MAAM/hC,EAAI,IAAIqO,GAAI2zB,GAAG,CAAC,CAAC,CACtC,SAASC,KAAK,CAAC,MAAMjiC,EAAI,IAAIqO,GAAI2zB,GAAG,CAAC,CAAC,CACtC,SAASE,IAAG5nE,EAAE,CAAC,KAAK,EAAEA,EAAE6nE,GAAG,KAAK,KAAK7nE,CAAC,CAAC,CACvC,SAAS8nE,GAAG9nE,EAAE,CAAC,KAAK,EAAEA,EAAEijD,GAAG,KAAK,KAAKjjD,CAAC,CAAC,CACvC,SAAS+nE,GAAG/nE,EAAE,CAAC,KAAK,EAAEA,EAAEijD,GAAG,KAAK,KAAKjjD,CAAC,CAAC,CACvC,SAASgoE,GAAIhoE,EAAEyzB,EAAE,CAACw0C,GAAIjoE,EAAE,EAAEA,EAAE,EAAE,OAAOyzB,CAAC,CAAC,CACvC,SAASy0C,GAAIloE,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,CACvC,SAASmoE,GAAInoE,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,CACvC,SAASooE,IAAIpoE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,GAAE,CAAE,CACvC,SAASqrC,GAAI9+D,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAEyzB,EAAE,GAAGzzB,EAAEyzB,EAAE,EAAE,CAAC,CACvC,SAAS40C,IAAIroE,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,EAAE,EAAEzzB,EAAEyzB,CAAC,CACvC,SAAS6rC,GAAGt/D,EAAEyzB,EAAE5zB,EAAE,CAAC,MAAO,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,EAAE5zB,CAAC,CAAC,CACvC,SAASyoE,IAAItoE,EAAEyzB,EAAE,CAACzzB,EAAE,GAAG,MAAM23D,IAAIlkC,EAAEzzB,EAAE,CAAC,CAAC,CACvC,SAASmlD,IAAInlD,EAAE,CAACA,EAAE,EAAE,IAAI4E,GAAI5E,EAAE,EAAE,IAAI4E,EAAG,CACvC,SAAS2jE,GAAIvoE,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI6kC,CAAG,CACvC,SAAS2jC,IAAIxoE,EAAE,CAAC,KAAK,EAAE,IAAIyJ,IAAI,KAAK,EAAEzJ,CAAC,CACvC,SAASm7C,GAAIn7C,EAAE,CAACyoE,GAAI,KAAK,IAAI,EAAE,KAAK,EAAEzoE,CAAC,CACvC,SAAS0oE,KAAK,CAACzb,GAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CACvC,SAAS0b,KAAK,CAACC,KAAM,KAAK,EAAE,IAAIzpB,GAAI0pB,GAAE,CAAC,CACvC,SAASC,IAAG9oE,EAAEyzB,EAAE,CAAC+hB,GAAG/hB,CAAC,EAAEs1C,GAAG/oE,CAAC,EAAE,GAAG,IAAIyD,EAAE,CAAC,CACvC,SAASulE,IAAIhpE,EAAEyzB,EAAE,CAAC,OAAAw1C,KAAax1C,EAAE,EAAE,GAAGzzB,CAAC,CACvC,SAASkpE,IAAIlpE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO25D,GAAIx5D,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CACvC,SAAS01C,IAAInpE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO25D,GAAIx5D,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CACvC,SAAS21C,IAAIppE,EAAEyzB,EAAE,CAAC,OAAO+lC,GAAIx5D,EAAE,EAAEyzB,EAAE,EAAEA,CAAC,CAAC,CACvC,SAAS41C,GAAIrpE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOypE,GAAI71C,EAAE5zB,EAAEG,EAAE,CAAC,CAAC,CACvC,SAASupE,GAAIvpE,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,CACvC,SAASwpE,IAAIxpE,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,CACvC,SAASypE,GAAIzpE,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,CACvC,SAAS0pE,IAAI1pE,EAAEyzB,EAAE,CAAC,OAAOk2C,IAAG3pE,EAAE,EAAEyzB,EAAE,IAAI,CAAC,CACvC,SAASm2C,IAAI5pE,EAAE,CAAC6pE,GAAI7pE,EAAE,IAAI,EAAE8pE,GAAI9pE,EAAE,IAAI,CAAC,CACvC,SAAS+pE,IAAI/pE,EAAE,CAACgqE,GAAIhqE,EAAE,IAAI,EAAEiqE,GAAIjqE,EAAE,IAAI,CAAC,CACvC,SAASkrD,KAAK,CAACmT,GAAI,KAAK,KAAK,KAAK,IAAI,CAAC,CACvC,SAAShT,KAAK,CAAC6e,GAAI,KAAK,KAAK,KAAK,IAAI,CAAC,CACvC,SAASC,GAAInqE,EAAE,CAAC,KAAK,EAAEA,EAAE+kC,GAAI,KAAK,IAAI,CAAC,CACvC,SAASqlC,IAAGpqE,EAAE,CAAC,KAAK,GAAGqqE,GAAG,EAAG,IAAIpyC,GAAIj4B,CAAC,EAAE,CACxC,SAASsqE,GAAGtqE,EAAE,CAACA,EAAE,EAAEikE,EAAGsG,IAAGC,EAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CACvC,SAASC,IAAIzqE,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,GAAGyzB,EAAEyvB,EAAGrjD,EAAE,GAAG,CAAC,CAAC,CACvC,SAAS6qE,IAAI1qE,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,GAAGyzB,EAAEyvB,EAAGrjD,EAAE,GAAG,CAAC,CAAC,CACvC,SAAS8qE,IAAI3qE,EAAEyzB,EAAE,CAACm3C,GAAI5qE,CAAC,EAAEA,EAAE,GAAGkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CACvC,SAASo3C,GAAI7qE,EAAEyzB,EAAE,CAAC,OAAOq3C,IAAI9qE,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,CAAC,CACvC,SAASs3C,IAAG/qE,EAAEyzB,EAAE,CAAC,OAAO,IAAIu3C,IAAGhrE,EAAE,KAAKyzB,CAAC,CAAC,CACxC,SAASw3C,GAAGjrE,EAAEyzB,EAAE,CAAC,OAAOy3C,IAAGlrE,EAAE,GAAI,EAACyzB,CAAC,GAAG,EAAE,CACxC,SAAS03C,GAAInrE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGyzB,CAAC,GAAG,IAAI,CACxC,SAAS23C,GAAGprE,EAAE,CAAC,OAAOA,EAAE,GAAE,EAAGA,EAAE,GAAI,EAAC,IAAI,CACxC,SAASqrE,IAAIrrE,EAAE,CAAC,OAAOsrE,GAAItrE,EAAE,EAAEA,EAAE,MAAM,CAAC,CACxC,SAASurE,EAAGvrE,EAAEyzB,EAAE,CAAC,OAAOzzB,GAAG,MAAMwrE,GAAGxrE,EAAEyzB,CAAC,CAAC,CACxC,SAASg4C,IAAGzrE,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,SAASyzB,CAAC,EAAEi4C,GAAG1rE,EAAEyzB,CAAC,CAAC,CACxC,SAASk4C,IAAI3rE,EAAEyzB,EAAE,CAAIzzB,EAAE,IAAG4rE,GAAIn4C,CAAC,EAAEo4C,IAAIp4C,CAAC,EAAE,CACxC,SAASq4C,IAAG9rE,EAAEyzB,EAAE5zB,EAAE,CAACqjD,EAAGljD,EAAE,GAAGH,CAAC,EAAE,GAAG,EAAE,GAAG4zB,CAAC,CAAC,CACxC,SAASs4C,IAAI/rE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAmsE,IAAIhsE,EAAEyzB,EAAE5zB,CAAC,EAASA,CAAC,CACvC,SAASosE,IAAIjsE,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAEyzB,EAAE,KAAKzzB,EAAE,EAAEH,EAAEqsE,EAAG,CACxC,SAASC,GAAInsE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,CAAC,CAAC,CACxC,SAASusE,GAAIpsE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CACxC,SAAS44C,IAAIrsE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CACxC,SAAS64C,IAAItsE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CACxC,SAAS84C,IAAIvsE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE+4C,IAAI/4C,CAAC,CAAC,CACxC,SAASg5C,IAAIzsE,EAAEyzB,EAAE,CAAC,OAAOi5C,GAAI1sE,EAAE,EAAEyzB,EAAE,GAAE,CAAE,CAAC,CACxC,SAASk5C,IAAI3sE,EAAEyzB,EAAE,CAAC,OAAOi5C,GAAI1sE,EAAE,EAAEyzB,EAAE,GAAE,CAAE,CAAC,CACxC,SAASm5C,IAAI5sE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE6sE,GAAIp5C,CAAC,EAAE,GAAG,CAAC,CACxC,SAASq5C,IAAI9sE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,EAAE4zB,GAAG,EAAEA,GAAGzzB,EAAE,CAAC,CACxC,SAAS+sE,IAAI/sE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAASG,CAAC,CACxC,SAASgtE,GAAIhtE,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CACxC,SAASitE,GAAIjtE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAgmE,GAAG7lE,EAAE,EAAEyzB,EAAE5zB,CAAC,EAASA,CAAC,CACxC,SAASqtE,IAAIltE,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACoc,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAE4pD,CAAC,CAAC,CACxC,SAAS0jB,IAAIntE,EAAEyzB,EAAE,CAAC25C,GAAI35C,EAAEzzB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAC,CACxC,SAASqtE,IAAIrtE,EAAE,CAACA,EAAE,EAAEkjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACxC,SAASutE,IAAIvtE,EAAE,CAACA,EAAE,EAAEkjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACxC,SAASwtE,IAAIxtE,EAAE,CAACytE,GAAIztE,EAAE0tE,GAAG,EAAEC,GAAI3tE,EAAE4tE,IAAI5tE,CAAC,CAAC,CAAC,CACxC,SAAS+wC,IAAK,CAACA,GAAIrsC,EAAImpE,GAAI,IAAI/8B,GAAI,IAAI,CAAC,CACxC,SAASg9B,IAAK,CAACA,GAAIppE,EAAIopE,KAAMC,IAAI,IAAItoE,GAAG,CACxC,SAASioC,IAAK,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CACxC,SAASyuB,GAAIn8D,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACxC,SAASguE,GAAIhuE,EAAEyzB,EAAE5zB,EAAE,CAACouE,GAAI,KAAK,KAAKjuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAASquE,GAAIluE,EAAEyzB,EAAE5zB,EAAE,CAACmuE,GAAI,KAAK,KAAKhuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAASsuE,GAAInuE,EAAEyzB,EAAE5zB,EAAE,CAACmuE,GAAI,KAAK,KAAKhuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAASuuE,IAAIpuE,EAAEyzB,EAAE5zB,EAAE,CAACquE,GAAI,KAAK,KAAKluE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAASwuE,GAAIruE,EAAEyzB,EAAE5zB,EAAE,CAACouE,GAAI,KAAK,KAAKjuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAASyuE,GAAItuE,EAAEyzB,EAAE5zB,EAAE,CAACouE,GAAI,KAAK,KAAKjuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAAS0uE,GAAIvuE,EAAEyzB,EAAE5zB,EAAE,CAAC2uE,GAAI,KAAK,KAAKxuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAAS4uE,IAAIzuE,EAAEyzB,EAAE5zB,EAAE,CAAC2uE,GAAI,KAAK,KAAKxuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAAS6uE,IAAI1uE,EAAEyzB,EAAE5zB,EAAE,CAAC0uE,GAAI,KAAK,KAAKvuE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAAS8uE,IAAI3uE,EAAEyzB,EAAE5zB,EAAE,CAACwuE,GAAI,KAAK,KAAKruE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxC,SAAS0hD,GAAGvhD,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEijD,GAAG,KAAK,KAAKxvB,CAAC,CAAC,CACzC,SAASm7C,IAAG5uE,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEq0C,GAAG,KAAK,KAAK5gB,CAAC,CAAC,CACzC,SAASo7C,IAAG7uE,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEq0C,GAAG,KAAK,KAAK5gB,CAAC,CAAC,CACzC,SAASq7C,IAAG9uE,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEq0C,GAAG,KAAK,KAAK5gB,CAAC,CAAC,CACzC,SAASs7C,GAAG/uE,EAAE,CAAC,KAAK,EAAEA,EAAEqyB,IAAG,KAAK,KAAKryB,EAAE,CAAC,CAAC,CACzC,SAASgvE,GAAIhvE,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACxC,SAASivE,GAAGjvE,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAE4gB,GAAG,KAAK,KAAKr0C,CAAC,CAAC,CACzC,SAASkvE,IAAGlvE,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAEqc,GAAG,KAAK,KAAK9vC,CAAC,CAAC,CACzC,SAASmvE,IAAGnvE,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE8vC,GAAG,KAAK,KAAKrc,CAAC,CAAC,CACzC,SAAS27C,IAAGpvE,EAAEyzB,EAAE,CAAC,OAAO47C,GAAGC,GAAGtvE,EAAE,CAAC,CAAC,EAAE,GAAGyzB,CAAC,CAAC,CACzC,SAAS87C,GAAGvvE,EAAEyzB,EAAE,CAAC,OAAO+7C,IAAGxvE,EAAE,IAAIk2C,GAAIziB,CAAC,EAAE,CAAC,CACzC,SAASg8C,GAAGzvE,EAAEyzB,EAAE,CAAC,OAAA+hB,GAAG/hB,CAAC,EAAS,IAAIi8C,IAAG1vE,EAAEyzB,CAAC,CAAC,CACzC,SAASi8C,IAAG1vE,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAE8c,GAAG,KAAK,KAAKvwC,CAAC,CAAC,CACzC,SAAS2vE,GAAG3vE,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACzC,SAAS4vE,IAAG5vE,EAAE,CAACA,EAAE,EAAE,GAAE,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAE6vE,GAAG7vE,EAAE,CAAC,CAAC,CACzC,SAAS8vE,IAAG9vE,EAAE,CAAC4xB,GAAG,KAAK,KAAKsxB,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAAC,CACzC,SAAS+vE,IAAG/vE,EAAE,CAAC4xB,GAAG,KAAK,KAAKsxB,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CAAC,CACzC,SAAS0vC,KAAI,CAAC6S,GAAG,KAAK,KAAK,WAAW,CAAC,CAAC,CACxC,SAASS,GAAGhjD,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIkC,EAAG,CAAE,CACzC,SAASooC,GAAGhwE,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAImC,EAAG,CAAE,CACzC,SAASooC,GAAGjwE,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIwC,EAAG,CAAE,CACzC,SAASgoC,KAAK,CAACA,IAAIxrE,EAAI4mD,KAAM6kB,IAAI,IAAIx/C,GAAG,CACxC,SAASy/C,IAAK,CAACA,GAAI1rE,EAAI2rE,GAAI,GAAMC,GAAI,EAAI,CACzC,SAASC,GAAIvwE,EAAE,CAACi3B,GAAI,KAAK,MAAMnG,GAAI9wB,CAAC,EAAEA,GAAG,CACzC,SAASwwE,GAAIxwE,EAAE,CAACi3B,GAAI,KAAK,MAAMnG,GAAI9wB,CAAC,EAAEA,GAAG,CACzC,SAASu2C,GAAIv2C,EAAE,CAAC43B,GAAI,KAAK,KAAK53B,CAAC,EAAE,KAAK,EAAEA,CAAC,CACzC,SAASywE,GAAIzwE,EAAE,CAAC63B,GAAI,KAAK,KAAK73B,CAAC,EAAE,KAAK,EAAEA,CAAC,CACzC,SAAS0wE,GAAI1wE,EAAE,CAACq2C,GAAI,KAAK,KAAKr2C,CAAC,EAAE,KAAK,EAAEA,CAAC,CACzC,SAASunC,KAAI,CAAC+iC,GAAG,IAAI,EAAEqG,GAAG,IAAI,EAAE,KAAK,IAAI,CACzC,SAAS3F,IAAGhrE,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAE8c,GAAG,KAAK,KAAKvwC,CAAC,CAAC,CACzC,SAAS4wE,IAAG5wE,EAAEyzB,EAAE,CAAC,OAAO,IAAIo9C,IAAG7wE,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,CAAC,CACzC,SAASq9C,GAAI9wE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,YAAYyzB,CAAC,CAAC,CACzC,SAASs9C,GAAI/wE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,QAAQyzB,EAAE5zB,CAAC,CAAC,CACzC,SAASmxE,GAAIhxE,EAAE,CAAC,OAAOA,GAAG,KAAKixE,GAAIC,GAAIlxE,CAAC,CAAC,CACzC,SAASmxE,IAAGnxE,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKA,EAAE,IAAI,CACzC,SAASoxE,GAAIpxE,EAAE,CAAC,OAAOA,EAAE,GAAG,KAAKA,EAAE,EAAE,IAAI,CACzC,SAASqxE,IAAGrxE,EAAE,CAAC,OAAOw+C,GAAIx+C,EAAE,CAAC,EAAEsxE,IAAGtxE,CAAC,EAAE,IAAI,CACzC,SAASuxE,GAAIvxE,EAAEyzB,EAAE,CAAC,OAAO+9C,GAAIxxE,EAAE,EAAEyzB,CAAC,GAAG,IAAI,CACzC,SAASs6B,GAAI/tD,EAAEyzB,EAAE,CAAC,MAAO,CAAC,CAACA,GAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,GAAGA,CAAC,CACzC,SAASg+C,GAAIzxE,EAAE,CAAC,OAAOA,EAAE,KAAKA,EAAE,GAAG,EAAE0xE,IAAI,CACzC,SAASC,IAAG3xE,EAAE,CAAC,OAAOA,EAAE,EAAEA,EAAE,EAAE4xE,GAAI5xE,EAAE,EAAE6xE,EAAG,CACzC,SAASC,IAAI9xE,EAAEyzB,EAAE,CAAC,OAAAmV,EAAInV,EAAE,EAAEzzB,EAAE,CAAC,EAASA,EAAE,CAAC,CACzC,SAAS+xE,IAAI/xE,EAAEyzB,EAAE,CAAC,OAAAmV,EAAInV,EAAE,EAAEzzB,EAAE,CAAC,EAASA,EAAE,CAAC,CACzC,SAASgyE,GAAIhyE,EAAEyzB,EAAE,CAAC,OAAAmV,EAAInV,EAAE,EAAEzzB,EAAE,CAAC,EAASA,EAAE,CAAC,CACzC,SAASiyE,GAAIjyE,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAG,IAAI,EAASA,EAAE,CAAC,CACzC,SAASmyE,GAAInyE,EAAE,CAAC04B,GAAI,KAAK,KAAK,IAAI05C,GAAIpyE,CAAC,CAAC,CAAC,CACzC,SAASqyE,GAAIryE,EAAEyzB,EAAE,CAAC6+C,GAAI,KAAK,KAAKtyE,EAAEyzB,EAAE,IAAI,CAAC,CACzC,SAAS8+C,GAAIvyE,EAAE,CAAC,KAAK,EAAEA,EAAE23B,GAAI,KAAK,KAAK33B,CAAC,CAAC,CACzC,SAASwyE,IAAK,CAACA,GAAI9tE,EAAI+tE,GAAI,IAAI3U,GAAI4U,IAAI,CAAC,CAAC,CACzC,SAASC,GAAI3yE,EAAEyzB,EAAE,CAAC,QAAEzzB,EAAE,EAAS4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,CAAC,CACzC,SAASm/C,GAAI5yE,EAAEyzB,EAAE,CAAC,QAAEzzB,EAAE,EAAS6yE,GAAI7yE,EAAE,EAAEyzB,CAAC,CAAC,CACzC,SAASq/C,IAAI9yE,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,CACzC,SAASs/C,IAAI/yE,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,CACzC,SAASu/C,IAAIhzE,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,CACzC,SAASw/C,GAAIjzE,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,CAAC,CACzC,SAAS0/C,IAAInzE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG8wB,GAAI2C,CAAC,EAAEA,EAAE,CACzC,SAAS2/C,IAAIpzE,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG8wB,GAAI2C,CAAC,EAAEA,EAAE,CACzC,SAAS4/C,GAAIrzE,EAAE,CAAC,OAAOkoE,GAAIloE,EAAE,CAAC,GAAGkoE,GAAIloE,EAAE,CAAC,CAAC,CACzC,SAASszE,IAAItzE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO0zE,IAAIvzE,EAAEyzB,EAAE5zB,EAAEG,EAAE,CAAC,CAAC,CACzC,SAASwzE,GAAIxzE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO0zE,IAAIvzE,EAAEyzB,EAAE5zB,EAAEG,EAAE,CAAC,CAAC,CACzC,SAASyzE,GAAIzzE,EAAEyzB,EAAE5zB,EAAE,CAACqjD,EAAGwwB,GAAI1zE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,GAAG5zB,CAAC,CAAC,CACzC,SAAS8zE,IAAI3zE,EAAEyzB,EAAE5zB,EAAE,CAACupC,GAAIppC,EAAE,EAAEH,CAAC,EAAEqpC,GAAIlpC,EAAE,EAAEyzB,CAAC,CAAC,CACzC,SAAS4qC,GAAIr+D,EAAEyzB,EAAE,CAACu3B,GAAK,EAAC,KAAK,EAAEhrD,EAAE,KAAK,EAAEyzB,CAAC,CACzC,SAASy2C,GAAIlqE,EAAEyzB,EAAE,CAAC03B,GAAK,EAAC,KAAK,EAAEnrD,EAAE,KAAK,EAAEyzB,CAAC,CACzC,SAASmgD,GAAI5zE,EAAEyzB,EAAE,CAACif,GAAK,EAAC,KAAK,EAAEjf,EAAE,KAAK,EAAEzzB,CAAC,CACzC,SAASs0C,GAAGt0C,EAAEyzB,EAAE,CAACogD,GAAGpgD,EAAEzzB,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC1C,SAASqgD,GAAI9zE,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,CACzC,SAASsgD,IAAI/zE,EAAE,CAAC,OAAA0gE,GAAK,EAAQ,CAAC,CAAC1gE,GAAG,CAACA,EAAE,IAAI,CACzC,SAASg0E,IAAIh0E,EAAE,CAAO,OAAO,IAAIi0E,GAAI,EAAEj0E,CAAC,CAAC,CACzC,SAASk0E,GAAGl0E,EAAEyzB,EAAE,CAAC,OAAO,IAAI0gD,IAAGn0E,EAAEA,EAAE,GAAI,EAACyzB,CAAC,CAAC,CAC1C,SAAS2gD,IAAGp0E,EAAE,CAAC,OAAAwvC,GAAI,EAAQ6kC,IAAIC,IAAI,EAACC,KAAIv0E,CAAC,CAAC,CAC1C,SAASw0E,GAAIx0E,EAAE,CAAC,KAAK,EAAEA,EAAEm8D,GAAI,KAAK,KAAKn8D,CAAC,CAAC,CACzC,SAASy0E,GAAIz0E,EAAE,CAAC,KAAK,EAAEA,EAAEm8D,GAAI,KAAK,KAAKn8D,CAAC,CAAC,CACzC,SAAS00E,GAAI10E,EAAE,CAAC,KAAK,EAAEA,EAAEw0E,GAAI,KAAK,KAAKx0E,CAAC,CAAC,CACzC,SAAS20E,KAAK,CAAC3sB,KAAM,KAAK,EAAE,IAAI9qB,IAAI,IAAI,CAAC,CACzC,SAAS03C,GAAG50E,EAAE,CAAC,OAAA60E,GAAG70E,EAAE80E,EAAG,EAAS,IAAIC,GAAI/0E,CAAC,CAAC,CAC1C,SAASg1E,IAAGh1E,EAAE,CAAC,OAAAonC,GAAE,EAAU,SAASpnC,CAAC,GAAG,EAAE,CAC1C,SAASw+D,GAAIx+D,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,OAAOyzB,EAAE5zB,EAAE4zB,CAAC,CAAC,CAC1C,SAASwhD,GAAIj1E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOkxE,GAAI/wE,EAAEk1E,GAAIzhD,CAAC,EAAE5zB,CAAC,CAAC,CAC1C,SAASs1E,GAAIn1E,EAAE,CAAC,OAAOo1E,GAAIp1E,EAAE,EAAEA,EAAE,EAAE,MAAM,CAAC,CAC1C,SAASq1E,IAAGr1E,EAAE,CAAC,OAAOA,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,CAAC,CAC1C,SAASs1E,GAAGt1E,EAAE,CAAC,OAAOA,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,CAAC,CAC1C,SAASu1E,GAAIv1E,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAG,CAAC,EAASA,EAAE,EAAE,EAAE,CAAC,CAC1C,SAASw1E,GAAIx1E,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAG,CAAC,EAASA,EAAE,EAAE,EAAE,CAAC,CAC1C,SAASy1E,GAAIz1E,EAAE,CAACurE,EAAGvrE,EAAE,GAAG,GAAGkjD,EAAGljD,EAAE,GAAG,EAAE,GAAE,CAAE,CACzC,SAAS01E,GAAI11E,EAAE,CAAC,OAAOA,EAAE,EAAEkjD,EAAGyyB,IAAI31E,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1C,SAAS41E,GAAI51E,EAAE,CAACimD,KAAM,KAAK,EAAEjmD,EAAE,KAAK,EAAE,EAAI,CAC1C,SAAS61E,IAAI71E,EAAE,CAAComD,KAAM,KAAK,EAAEpmD,EAAE,KAAK,EAAE,EAAI,CAC1C,SAAS81E,IAAI91E,EAAE,CAACA,EAAE,EAAE,IAAI+1E,IAAI/1E,CAAC,EAAEA,EAAE,EAAE,IAAI+kC,EAAG,CAC1C,SAASixC,IAAIh2E,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CAC1C,SAASiuC,GAAIj2E,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIkC,EAAG,CAAE,CAC1C,SAASsuC,GAAIl2E,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAImC,EAAG,CAAE,CAC1C,SAASsuC,IAAIn2E,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIgC,EAAG,CAAE,CAC1C,SAASwqC,GAAIlyE,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIwC,EAAG,CAAE,CAC1C,SAAS6tC,IAAI/1E,EAAE,CAACo2E,GAAI,KAAK,KAAKp2E,EAAE,KAAK,IAAI,CAAC,CAC1C,SAAS6mD,KAAK,CAACtE,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAC1C,SAAS8zB,IAAGr2E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC6sB,GAAG,KAAK,KAAKt2E,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC1C,SAAS8sB,IAAIv2E,EAAEyzB,EAAE,CAAC,OAAA/G,GAAK,EAAQ8pD,GAAGx2E,EAAEyzB,EAAE,EAAEA,CAAC,CAAC,CAC1C,SAASgjD,IAAIz2E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAipD,KAAajpD,EAAE,GAAGG,EAAEyzB,CAAC,CAAC,CAC1C,SAASijD,GAAI12E,EAAEyzB,EAAE,CAAC,MAAO,CAAC,CAACzzB,EAAE,GAAGokD,GAAIpkD,EAAE,EAAEyzB,CAAC,CAAC,CAC1C,SAASkjD,IAAI32E,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAEA,EAAEzzB,EAAEyzB,EAAEA,EAAE,GAAG,CAC1C,SAASmjD,IAAI52E,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,GAAGzzB,EAAEA,GAAGyzB,EAAE,GAAG,CAC1C,SAASojD,IAAI72E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO+oC,EAAInV,EAAEqjD,IAAI92E,EAAEH,CAAC,CAAC,CAAC,CAC1C,SAASk3E,IAAI/2E,EAAEyzB,EAAE5zB,EAAE,CAAC+vB,GAAK,EAAC5vB,EAAE,GAAGyzB,CAAC,GAAG5zB,EAAE,GAAGG,CAAC,CAAC,CAC1C,SAASg3E,GAAGh3E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAEg2B,EAAE,GAAG5pD,CAAC,CAAC,CAC1C,SAASutE,GAAIptE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGH,EAASG,CAAC,CAC1C,SAASi3E,IAAIj3E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGH,EAASG,CAAC,CAC1C,SAASk3E,GAAIl3E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGH,EAASG,CAAC,CAC1C,SAASm3E,GAAIn3E,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAASzzB,CAAC,CAC1C,SAASo3E,GAAIp3E,EAAE,CAAC,OAAAA,EAAE,EAAE,CAACA,EAAE,EAAEA,EAAE,EAAE,CAACA,EAAE,EAASA,CAAC,CAC1C,SAASq3E,IAAIr3E,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAC1C,SAASs3E,IAAIt3E,EAAE,CAAC,KAAK,EAAEA,EAAE8iE,GAAI9iE,EAAE,CAAC,EAAE+iE,GAAI/iE,EAAE,CAAC,CAAC,CAC1C,SAASu3E,IAAIv3E,EAAE,CAAC4sC,GAAI,KAAK,IAAI,EAAE4qC,GAAI,KAAKx3E,CAAC,CAAC,CAC1C,SAASy3E,IAAIz3E,EAAE,CAAC03E,KAAMlyC,IAAI,IAAI,EAAE,KAAK,GAAGxlC,CAAC,CAAC,CAC1C,SAAS23E,IAAI33E,EAAEyzB,EAAE,CAACu3B,GAAG,EAAGqT,GAAI,KAAK,KAAKr+D,EAAEyzB,CAAC,CAAC,CAC1C,SAASmkD,GAAI53E,EAAEyzB,EAAE,CAAC03B,GAAG,EAAG+e,GAAI,KAAK,KAAKlqE,EAAEyzB,CAAC,CAAC,CAC1C,SAASokD,IAAI73E,EAAEyzB,EAAE,CAAC03B,GAAG,EAAG+e,GAAI,KAAK,KAAKlqE,EAAEyzB,CAAC,CAAC,CAC1C,SAASqkD,IAAI93E,EAAEyzB,EAAE,CAAC03B,GAAG,EAAGysB,GAAI,KAAK,KAAK53E,EAAEyzB,CAAC,CAAC,CAC1C,SAASskD,GAAI/3E,EAAEyzB,EAAE5zB,EAAE,CAACm4E,GAAI,KAAK,KAAKh4E,EAAEyzB,EAAE5zB,EAAE,CAAC,CAAC,CAC1C,SAASo4E,GAAIj4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAG8Q,GAAI,KAAK,KAAKl4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS0kD,IAAIn4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAG6Q,GAAI,KAAK,KAAKj4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS2kD,GAAIp4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAG6Q,GAAI,KAAK,KAAKj4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS4kD,IAAIr4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAGgR,GAAI,KAAK,KAAKp4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS6kD,GAAIt4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAG8Q,GAAI,KAAK,KAAKl4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS8kD,IAAIv4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAGkR,GAAI,KAAK,KAAKt4E,EAAEyzB,CAAC,CAAC,CAC1C,SAAS+kD,IAAIx4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAG8Q,GAAI,KAAK,KAAKl4E,EAAEyzB,CAAC,CAAC,CAC1C,SAASglD,IAAIz4E,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAGkjD,EAAGzvB,EAAE,GAAG,CAAC,CAAC,CAC1C,SAASilD,GAAI14E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO84E,GAAIC,GAAI54E,EAAEyzB,CAAC,EAAE5zB,CAAC,CAAC,CAC1C,SAASg5E,IAAI74E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,EAAEH,CAAC,CAAC,CAC1C,SAASi5E,IAAI94E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,EAAEH,CAAC,CAAC,CAC1C,SAASk5E,GAAI/4E,EAAEyzB,EAAE,CAAC,OAAOulD,GAAIh5E,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CAC1C,SAASwlD,IAAIj5E,EAAEyzB,EAAE5zB,EAAE,CAACq5E,GAAI5S,GAAItmE,EAAE,CAAC,EAAEyzB,EAAE8yC,IAAI1mE,CAAC,CAAC,CAAC,CAC1C,SAASs5E,IAAIn5E,EAAEyzB,EAAE5zB,EAAE,CAACq5E,GAAI/S,GAAInmE,EAAE,CAAC,EAAEyzB,EAAE2yC,IAAIvmE,CAAC,CAAC,CAAC,CAC1C,SAASu5E,GAAIp5E,EAAEyzB,EAAE,CAACA,EAAE,UAAUzzB,EAAE,SAAS,CACzC,SAASq5E,IAAK,CAACA,GAAI30E,EAAI40E,GAAI,IAAIr2C,GAAI,MAAM,CAAC,CAC1C,SAASs2C,IAAK,CAACA,GAAI70E,EAAI80E,GAAI,IAAIzsC,IAAI,IAAIE,GAAG,CAC1C,SAASwsC,KAAK,CAAC,KAAK,EAAE,IAAIC,GAAG,KAAK,EAAE,IAAIA,EAAE,CAC1C,SAASC,IAAK,CAACpsC,IAAI,KAAK,IAAI,EAAE,KAAK,IAAIqsC,EAAG,CAC1C,SAASlxB,KAAK,CAACnG,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAC1C,SAASs3B,IAAI75E,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAK85E,IAAI95E,CAAC,CAAC,CAC1C,SAAS+5E,IAAI/5E,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKg6E,IAAIh6E,CAAC,CAAC,CAC1C,SAASi6E,IAAIj6E,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKkxE,GAAIlxE,CAAC,CAAC,CAC1C,SAASk6E,IAAIl6E,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKkxE,GAAIlxE,CAAC,CAAC,CAC1C,SAASi8C,GAAIj8C,EAAE,CAAIA,EAAE,GAAG,MAAam6E,IAAIn6E,CAAC,CAAC,CAC3C,SAASo6E,GAAGp6E,EAAE,CAAC,OAAAm7D,GAAIn7D,GAAG,MAAMg6D,GAAGh6D,CAAC,CAAC,EAASA,CAAC,CAC3C,SAASq6E,EAAGr6E,EAAE,CAAC,OAAAm7D,GAAIn7D,GAAG,MAAMk6D,GAAGl6D,CAAC,CAAC,EAASA,CAAC,CAC3C,SAASu1C,GAAGv1C,EAAE,CAAC,OAAAm7D,GAAIn7D,GAAG,MAAMo6D,GAAGp6D,CAAC,CAAC,EAASA,CAAC,CAC3C,SAASs6E,GAAGt6E,EAAE,CAAC,KAAK,EAAE,IAAI+C,EAAK,KAAKs5D,GAAIr8D,CAAC,CAAC,CAAC,CAC3C,SAASu6E,GAAGv6E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEwiD,GAAG,KAAK,KAAKxiD,EAAEyzB,CAAC,CAAC,CAC3C,SAAS+mD,GAAGx6E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEu6E,GAAG,KAAK,KAAKv6E,EAAEyzB,CAAC,CAAC,CAC3C,SAASgnD,IAAGz6E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE22B,IAAG,IAAI,EAAE,KAAK,EAAElD,CAAC,CAC3C,SAASinD,GAAI16E,EAAEyzB,EAAE,CAACuxB,GAAI,KAAK,KAAKhlD,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAC3C,SAASknD,GAAI36E,EAAEyzB,EAAE,CAACuxB,GAAI,KAAK,KAAKhlD,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAC3C,SAASmnD,IAAI56E,EAAE,CAAC66E,GAAI,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE76E,CAAC,CAC3C,SAAS2jE,GAAG3jE,EAAEyzB,EAAE5zB,EAAE,CAACi7E,GAAG,KAAK,KAAK96E,EAAEyzB,EAAE5zB,EAAE,IAAI,CAAC,CAC3C,SAASk7E,IAAG/6E,EAAEyzB,EAAE5zB,EAAE,CAACi7E,GAAG,KAAK,KAAK96E,EAAEyzB,EAAE5zB,EAAE,IAAI,CAAC,CAC3C,SAASm7E,IAAIh7E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,GAAGyzB,EAAE5zB,CAAC,GAAG,EAAEA,EAAE4zB,CAAC,CAC3C,SAASwnD,IAAIj7E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,GAAGyzB,EAAE5zB,CAAC,GAAG,EAAE4zB,EAAE5zB,CAAC,CAC3C,SAASq7E,IAAIl7E,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAGi4B,GAAIn7E,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CAC3C,SAAS2nD,IAAIp7E,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAGi4B,GAAIn7E,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CAC3C,SAAS4nD,GAAIr7E,EAAE,CAAC,OAAOkjD,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAG,CAAC,CAC3C,SAASu7E,IAAIv7E,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC3C,SAASw7E,IAAIx7E,EAAE,CAAC,OAAOipE,GAAG,EAAGtH,IAAIze,EAAGljD,EAAE,GAAG,CAAC,CAAC,CAC3C,SAASy7E,IAAK,CAACA,GAAI/2E,EAAIg3E,IAAIC,IAAKC,KAAMC,IAAK,CAC3C,SAASC,IAAI97E,EAAEyzB,EAAE,CAACA,EAAE,EAAEsoD,IAAI/7E,EAAEyzB,CAAC,EAAE89C,GAAIvxE,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CAC3C,SAASuoD,IAAIh8E,EAAEyzB,EAAE,CAAIkyC,IAAY/8B,EAAI5oC,EAAE,EAAEyzB,CAAC,CAAC,CAC3C,SAASwoD,IAAIj8E,EAAEyzB,EAAE,CAAC,OAAAnI,GAAK,EAAQ4wD,GAAIzoD,EAAE,EAAE,EAAEzzB,CAAC,CAAC,CAC3C,SAASm8E,IAAIn8E,EAAEyzB,EAAE,CAAC,OAAA7H,KAAa,IAAIwwD,IAAI3oD,EAAEzzB,CAAC,CAAC,CAC3C,SAASq8E,GAAIr8E,EAAEyzB,EAAE,CAAC,OAAAg6C,GAAIh6C,EAAE6oD,GAAG,EAAEt8E,EAAE,EAAEyzB,EAASzzB,CAAC,CAC3C,SAASu8E,GAAIv8E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEyzB,EAAE,EAAE5zB,CAAC,EAASA,CAAC,CAC3C,SAAS48E,GAAIz8E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEyzB,EAAE,EAAE5zB,CAAC,EAASA,CAAC,CAC3C,SAAS68E,GAAI18E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEyzB,EAAE,EAAE5zB,CAAC,EAASA,CAAC,CAC3C,SAAS88E,GAAI38E,EAAEyzB,EAAE5zB,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,GAAI,EAAC48E,GAAI58E,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC3C,SAASg9E,IAAI78E,EAAEyzB,EAAE5zB,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAAC,CAC3C,SAASi9E,IAAI98E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAEg2B,EAAE,GAAG5pD,CAAC,CAAC,CAC3C,SAASk9E,IAAI/8E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOm9E,GAAIh9E,EAAE,EAAEA,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC3C,SAASo9E,GAAIj9E,EAAEyzB,EAAE,CAAC,OAAQA,EAAEypD,IAAKl9E,EAAE,EAAE,MAAM,CAC3C,SAAS89D,GAAI99D,EAAEyzB,EAAE,CAACwP,GAAI,KAAK,KAAKjjC,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAC3C,SAAS0pD,GAAIn9E,EAAEyzB,EAAE,CAACsQ,GAAI,KAAK,KAAK/jC,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAC3C,SAAS2pD,GAAIp9E,EAAEyzB,EAAE,CAACsQ,GAAI,KAAK,KAAK/jC,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAC3C,SAAS4pD,IAAIr9E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE86C,GAAI,KAAK,KAAKrnB,CAAC,CAAC,CAC3C,SAAS6pD,IAAIt9E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE8jC,IAAI,KAAK,KAAKrQ,CAAC,CAAC,CAC3C,SAAS8pD,GAAIv9E,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE8jC,IAAI,KAAK,KAAKrQ,CAAC,CAAC,CAC3C,SAAS+pD,IAAGx9E,EAAE,CAAC,KAAK,GAAG60E,GAAG70E,EAAE80E,EAAG,EAAE,IAAIC,GAAI/0E,CAAC,EAAE,CAC5C,SAASy9E,IAAGz9E,EAAE,CAAC,KAAK,GAAG60E,GAAG70E,EAAE80E,EAAG,EAAE,IAAIC,GAAI/0E,CAAC,EAAE,CAC5C,SAAS09E,GAAG19E,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAI0D,IAAW1D,EAAE,CAAC,CAC5C,SAAS29E,IAAI39E,EAAE,CAAC,OAAGA,EAAE,EAAU,EAASA,EAAE,CAAC,CAC3C,SAAS49E,IAAI59E,EAAEyzB,EAAE,CAAC,OAAA28C,GAAG,EAAUpwE,GAAGyzB,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAC5C,SAAS69E,GAAI79E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi+E,GAAI99E,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE5zB,CAAC,CAAC,CAC5C,SAASk+E,IAAG/9E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,MAAMyzB,EAAE5zB,CAAC,CAAO,CAC5C,SAASm+E,IAAIh+E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,GAAGsrE,GAAI73C,EAAE,EAAE5zB,CAAC,EAASG,CAAC,CAC5C,SAASi+E,GAAIj+E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAS5zB,CAAC,CAC5C,SAASq+E,IAAIl+E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAEm+E,EAAG,EAAEt+E,EAAE,KAAKG,EAAEyzB,CAAC,CAAC,CAC5C,SAAS2qD,IAAIp+E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAEm+E,EAAG,EAAEt+E,EAAE,KAAKG,EAAEyzB,CAAC,CAAC,CAC5C,SAAS4qD,GAAIr+E,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,GAAGA,EAAE,EAAEyzB,CAAC,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAE,CAC5C,SAASs+E,IAAIt+E,EAAE,CAACglC,GAAIhlC,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAC5C,SAASu+E,GAAGv+E,EAAE,CAACA,EAAE,EAAEu+E,GAAGv+E,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC5C,SAASw+E,IAAIx+E,EAAEyzB,EAAE5zB,EAAE,CAACinD,GAAG,EAAGtzB,IAAIxzB,EAAEyzB,EAAE,GAAGzzB,EAAE,EAAEH,CAAC,CAAC,CAAC,CAC5C,SAAS4+E,IAAIz+E,EAAEyzB,EAAE,CAAC,OAAOkoB,GAAG+iC,IAAI1+E,EAAE,EAAEyzB,EAAE,EAAI,CAAC,CAAC,CAC5C,SAASkrD,IAAI3+E,EAAEyzB,EAAE,CAAC,OAAOkoB,GAAGijC,IAAI5+E,EAAE,EAAEyzB,EAAE,EAAI,CAAC,CAAC,CAC5C,SAASorD,GAAI7+E,EAAEyzB,EAAE,CAAC,OAAOyjB,GAAI,IAAI,MAAMzjB,CAAC,EAAEzzB,CAAC,CAAC,CAC5C,SAAS8+E,GAAG9+E,EAAE,CAAC,OAAO,OAAO,aAAaA,CAAC,CAAC,CAC5C,SAAS++E,IAAG/+E,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKA,EAAE,OAAO,CAC5C,SAASg/E,KAAK,CAAC,KAAK,EAAE,IAAIn6C,EAAI,KAAK,EAAE,IAAIA,CAAG,CAC5C,SAASo6C,KAAK,CAAC,KAAK,EAAE,IAAI70E,GAAI,KAAK,EAAE,IAAIk+B,GAAG,CAC5C,SAASsC,KAAK,CAAC,KAAK,EAAE,IAAIwQ,GAAI,KAAK,EAAE,IAAIvW,CAAG,CAC5C,SAASq6C,IAAK,CAAC,KAAK,EAAE,IAAI9jC,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC5C,SAASqtB,IAAK,CAAC,KAAK,EAAE,IAAIrtB,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC5C,SAASxP,IAAK,CAAC,KAAK,EAAE,IAAII,GAAI,KAAK,EAAE,IAAIm1B,EAAG,CAC5C,SAASge,KAAK,CAAC,KAAK,EAAE,IAAItzD,IAAI,KAAK,EAAE,IAAIvU,GAAG,CAC5C,SAAS8nE,KAAK,CAAC,KAAK,EAAE,IAAIv6C,EAAI,KAAK,EAAE,IAAIA,CAAG,CAC5C,SAASw6C,KAAK,CAAC,KAAK,EAAE,IAAIz1C,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC5C,SAAS01C,KAAK,CAAC,KAAK,EAAE,IAAIv6C,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC5C,SAASw6C,KAAK,CAAC,KAAK,EAAE,IAAIlgC,IAAI,KAAK,EAAE,IAAIjkC,GAAG,CAC5C,SAASokE,KAAK,CAAC5zC,GAAI,KAAK,IAAI,EAAE,KAAK,EAAE,IAAIwP,EAAG,CAC5C,SAASqkC,GAAIz/E,EAAE,CAAC0/E,IAAI,KAAK,KAAK1/E,GAAG2/E,KAAMC,IAAK,CAC5C,SAASC,GAAI7/E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACyX,GAAI,KAAK,KAAKlhE,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASq2B,IAAI9/E,EAAEyzB,EAAE5zB,EAAE,CAACA,GAAG,MAAMkgF,GAAItsD,EAAEusD,GAAIhgF,EAAEH,CAAC,CAAC,CAAC,CAC5C,SAASogF,IAAIjgF,EAAEyzB,EAAE5zB,EAAE,CAACA,GAAG,MAAMqgF,GAAIzsD,EAAEusD,GAAIhgF,EAAEH,CAAC,CAAC,CAAC,CAC5C,SAASsgF,GAAIngF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEyzB,EAAE,GAAG5zB,CAAC,EAASA,CAAC,CAC5C,SAASugF,GAAIpgF,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,GAAGyzB,EAAE,EAASzzB,CAAC,CAC5C,SAASqgF,GAAIrgF,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,GAAGyzB,EAAE,EAASzzB,CAAC,CAC5C,SAASsgF,IAAItgF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG8wB,GAAI2C,CAAC,EAAEA,EAAG,GAAE,CAC5C,SAAS8sD,IAAIvgF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG8wB,GAAI2C,CAAC,EAAEA,EAAG,GAAE,CAC5C,SAAS+sD,IAAIxgF,EAAEyzB,EAAE,CAAC,OAAOA,GAAGzzB,GAAGygF,GAAIC,GAAIjtD,CAAC,EAAEzzB,CAAC,CAAC,CAC5C,SAAS2gF,IAAI3gF,EAAEyzB,EAAE,CAAC,OAAO+lC,GAAIx5D,EAAE,EAAEyzB,EAAE,EAAE,GAAG,IAAI,CAC5C,SAASmtD,IAAI5gF,EAAEyzB,EAAE,CAAC,OAAAnI,GAAK,EAAQ,CAAC4wD,GAAIzoD,EAAE,EAAE,EAAEzzB,CAAC,CAAC,CAC5C,SAASyxC,IAAIzxC,EAAEyzB,EAAE,CAAC4tC,GAAIrhE,EAAE,CAAC,EAAE6gF,IAAI7gF,EAAEyzB,CAAC,EAAEqtD,IAAI9gF,EAAEyzB,CAAC,CAAC,CAC5C,SAASstD,IAAI/gF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAASH,CAAC,CAC5C,SAASm+D,GAAIh+D,EAAEyzB,EAAE,CAACye,GAAI,KAAK,KAAK8uC,GAAIhhF,EAAEihF,GAAIxtD,CAAC,CAAC,CAC5C,SAASytD,GAAIlhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC03B,EAAI,KAAK,KAAKnhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAAS23B,GAAIphF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC03B,EAAI,KAAK,KAAKnhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAAS43B,IAAIrhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC23B,GAAI,KAAK,KAAKphF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAAS63B,IAAIthF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC83B,GAAI,KAAK,KAAKvhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAAS+3B,GAAIxhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC83B,GAAI,KAAK,KAAKvhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASg4B,GAAIzhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC83B,GAAI,KAAK,KAAKvhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASi4B,IAAI1hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC+3B,GAAI,KAAK,KAAKxhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASk4B,GAAI3hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC+3B,GAAI,KAAK,KAAKxhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASm4B,GAAI5hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACg4B,GAAI,KAAK,KAAKzhF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASo4B,IAAI7hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACk4B,GAAI,KAAK,KAAK3hF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAASq4B,IAAI9hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACs4B,GAAI,KAAK,KAAK/hF,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5C,SAAS0qB,IAAGn0E,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEs0C,GAAG,KAAK,KAAK7gB,EAAE5zB,CAAC,CAAC,CAC7C,SAASmiF,IAAGhiF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE4zB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAEG,CAAC,CAC7C,SAASiiF,IAAGjiF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG5zB,CAAC,EAAE,GAAG,CAAC,CAC7C,SAASqiF,GAAIliF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAI,EAAC,GAAE,EAAG,GAAGA,EAAEyzB,CAAC,CAAC,CAC5C,SAAS0uD,GAAIniF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAI,EAAC,GAAE,EAAG,GAAGA,EAAEyzB,CAAC,CAAC,CAC5C,SAAS2uD,IAAIpiF,EAAEyzB,EAAE,CAAC,OAAO3C,GAAI9wB,CAAC,EAAE+5D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,CAAC,CAC7C,SAAS4uD,GAAIriF,EAAEyzB,EAAE,CAAC,OAAO3C,GAAI9wB,CAAC,EAAE+5D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,CAAC,CAC7C,SAAS6uD,GAAItiF,EAAEyzB,EAAE,CAAC,OAAOkoB,GAAG+iC,IAAI1+E,EAAE,EAAEyzB,EAAE,EAAK,CAAC,CAAC,CAC7C,SAAS8uD,GAAIviF,EAAEyzB,EAAE,CAAC,OAAOkoB,GAAGijC,IAAI5+E,EAAE,EAAEyzB,EAAE,EAAK,CAAC,CAAC,CAC7C,SAAS+uD,IAAIxiF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG,IAAIquD,IAAIruD,EAAEyzB,CAAC,CAAC,CAAC,CAC7C,SAASgvD,IAAIziF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG,IAAIsuD,IAAItuD,EAAEyzB,CAAC,CAAC,CAAC,CAC7C,SAASivD,IAAI1iF,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,GAAG,IAAIuuD,IAAIvuD,EAAEyzB,CAAC,CAAC,CAAC,CAC7C,SAASkvD,GAAI3iF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,EAAE,YAAYyzB,EAAE5zB,CAAC,CAAC,CAC7C,SAAS+iF,IAAI5iF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO++D,GAAI5+D,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAEH,EAAE,CAAC,CAAC,CAAC,CAC7C,SAASgjF,IAAI7iF,EAAEyzB,EAAE,CAAC,OAAOqvD,EAAIrvD,GAAGnG,GAAK,EAACy1D,IAAK/iF,CAAC,CAAC,CAC7C,SAASgjF,IAAIhjF,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAIrrC,EAAE,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAAC,CAAC,CAC7C,SAASijF,IAAIjjF,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAI9+D,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAE,CAAC,CAAC,CAC7C,SAASyvD,IAAIljF,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC7C,SAAS0vD,IAAInjF,EAAE,CAAC,OAAQA,EAAE,EAAKkgE,GAAIlgE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAhB,EAAiB,CAC7C,SAASojF,IAAIpjF,EAAE,CAAC,OAAOA,EAAE,IAAI,KAAK,IAAI66C,GAAI76C,CAAC,CAAC,CAC5C,SAASqjF,GAAIrjF,EAAE,CAAC,OAAOA,GAAGsjF,IAAKtjF,GAAGujF,IAAKvjF,GAAGwjF,EAAG,CAC7C,SAASC,IAAIzjF,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,EAAE,GAAGiwD,IAAI1jF,EAAE,EAAEyzB,CAAC,CAAC,CAC7C,SAASkwD,IAAI3jF,EAAEyzB,EAAE,CAAIkyC,IAAclyC,IAAIzzB,EAAE,EAAEyzB,EAAE,CAC7C,SAASmwD,GAAI5jF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE4zB,EAAS,CAAC,CAACowD,GAAI7jF,EAAEH,CAAC,CAAC,CAC7C,SAASikF,GAAI9jF,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE+jF,GAAI,KAAK,KAAK/jF,EAAEyzB,CAAC,CAAC,CAC7C,SAASuwD,IAAIhkF,EAAE,CAAC,KAAK,EAAEA,EAAEy8D,GAAI,KAAK,KAAKwnB,GAAI,CAAC,CAAC,CAC7C,SAASC,IAAIlkF,EAAEyzB,EAAE,CAAC0wD,IAAI,KAAK,KAAKnkF,EAAEA,EAAE,OAAOyzB,CAAC,CAAC,CAC7C,SAAS2wD,IAAIpkF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAC7C,SAASwkF,GAAIrkF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAC7C,SAASykF,IAAItkF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOg5E,IAAI74E,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAC7C,SAAS0kF,GAAIvkF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi5E,IAAI94E,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAC7C,SAAS2kF,IAAIxkF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4kF,IAAIzkF,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAC7C,SAAS6kF,IAAI1kF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO8kF,IAAI3kF,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAC7C,SAAS+kF,GAAG5kF,EAAEyzB,EAAE,CAAC,OAAOA,GAAG,KAAK,KAAKoxD,GAAG7kF,EAAE,EAAEyzB,CAAC,CAAC,CAC9C,SAASo5C,GAAI7sE,EAAE,CAAC,OAAOk6D,GAAGl6D,CAAC,GAAG8wB,GAAI9wB,CAAC,EAAEA,GAAGA,EAAE,GAAE,CAAE,CAC9C,SAAS8kF,GAAI9kF,EAAE,CAAC,MAAO,CAAC,MAAMA,CAAC,GAAG,CAAC,SAASA,CAAC,CAAC,CAC9C,SAASiwC,IAAGjwC,EAAE,CAAC8mC,GAAI,EAAC,KAAK,GAAGujC,KAAM,IAAIh0B,GAAIr2C,CAAC,EAAE,CAC7C,SAAS+kF,GAAI/kF,EAAE,CAAC83D,KAAM,KAAK,EAAE93D,EAAE,KAAK,EAAE,IAAI2kC,EAAG,CAC7C,SAASqgD,GAAIhlF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASolF,IAAIjlF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASqlF,IAAIllF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEH,EAAE,KAAK,EAAE4zB,CAAC,CAC9C,SAASinB,GAAI16C,EAAE,CAACmlD,IAAI,IAAI,EAAEC,GAAI,IAAI,EAAEX,GAAG,KAAKzkD,CAAC,CAAC,CAC9C,SAASmlF,GAAInlF,EAAE,CAAC8kC,GAAI,IAAI,EAAEsgD,GAAI,KAAK,EAAE,EAAEplF,EAAE,GAAI,CAAA,CAAC,CAC9C,SAASqlF,IAAIrlF,EAAE,CAACslF,GAAItlF,EAAE,CAAC,EAAEulF,IAAIvlF,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAE,IAAI,CAC9C,SAASwlF,IAAIxlF,EAAE,CAAC,KAAK,EAAEA,EAAEsjD,GAAG,EAAGmiC,GAAI,KAAK,IAAK,CAAA,CAAC,CAC9C,SAASC,KAAK,CAACA,IAAIhhF,EAAIihF,IAAI,IAAI3iF,GAAG4iF,GAAI,IAAI5iF,EAAE,CAC5C,SAAS6iF,IAAK,CAACA,GAAInhF,EAAIohF,IAAI,IAAIjhF,IAAIkhF,IAAI,IAAIjhF,GAAG,CAC9C,SAAS0tC,KAAK,CAACA,IAAI9tC,EAAIshF,IAAI/hB,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAC7C,SAAS3zC,KAAK,CAACA,IAAI9rB,EAAIuhF,IAAIhiB,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAC7C,SAAS+hB,IAAK,CAACA,GAAIxhF,EAAIyhF,IAAIliB,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAC7C,SAASr9B,IAAI,CAACA,GAAGpiC,EAAI,IAAImiC,IAAIwjC,KAAMA,KAAM+b,IAAK,CAC9C,SAASC,IAAIrmF,EAAE,CAAC,OAAA2/E,GAAK,EAAQtL,IAAIiS,IAAK,EAACC,KAAKvmF,CAAC,CAAC,CAC9C,SAASwmF,IAAIxmF,EAAE,CAAC,OAAAymF,GAAK,EAAQpS,IAAIqS,IAAK,EAACC,KAAK3mF,CAAC,CAAC,CAC9C,SAAS4mF,IAAI5mF,EAAE,CAAC,OAAA6mF,GAAK,EAAQxS,IAAIyS,IAAK,EAACC,KAAK/mF,CAAC,CAAC,CAC9C,SAASgnF,IAAIhnF,EAAE,CAAC,OAAAinF,GAAK,EAAQ5S,IAAI6S,IAAK,EAACC,KAAKnnF,CAAC,CAAC,CAC9C,SAASonF,IAAIpnF,EAAE,CAAC,OAAAqnF,GAAK,EAAQhT,IAAIiT,IAAK,EAACC,KAAKvnF,CAAC,CAAC,CAC9C,SAASwnF,IAAIxnF,EAAE,CAAC,OAAAynF,GAAK,EAAQpT,IAAIqT,IAAK,EAACC,KAAK3nF,CAAC,CAAC,CAC9C,SAAS4nF,IAAI5nF,EAAE,CAAC,OAAA6nF,GAAK,EAAQxT,IAAIyT,IAAK,EAACC,KAAK/nF,CAAC,CAAC,CAC9C,SAASgoF,IAAIhoF,EAAE,CAAC,OAAAioF,GAAK,EAAQ5T,IAAI6T,IAAK,EAACC,KAAKnoF,CAAC,CAAC,CAC9C,SAASooF,IAAIpoF,EAAE,CAAC,OAAAqoF,GAAK,EAAQhU,IAAIlX,IAAK,EAACC,KAAKp9D,CAAC,CAAC,CAC9C,SAASsoF,IAAItoF,EAAE,CAAC,OAAAuoF,GAAK,EAAQlU,IAAImU,IAAK,EAACC,KAAKzoF,CAAC,CAAC,CAC9C,SAAS0oF,IAAI1oF,EAAE,CAAC,OAAA2oF,GAAK,EAAQtU,IAAIuU,IAAK,EAACC,KAAK7oF,CAAC,CAAC,CAC9C,SAAS8oF,IAAI9oF,EAAE,CAAC,OAAA+oF,GAAK,EAAQ1U,IAAI2U,IAAK,EAACC,KAAKjpF,CAAC,CAAC,CAC9C,SAASkpF,IAAIlpF,EAAE,CAAC,OAAA2mD,GAAK,EAAQ0tB,IAAI8U,IAAK,EAACC,KAAKppF,CAAC,CAAC,CAC9C,SAASqpF,IAAIrpF,EAAE,CAAC,OAAAspF,GAAK,EAAQjV,IAAIkV,IAAK,EAACC,KAAKxpF,CAAC,CAAC,CAC9C,SAASypF,IAAIzpF,EAAE,CAAC,OAAA0pF,GAAK,EAAQrV,IAAIsV,IAAK,EAACC,KAAK5pF,CAAC,CAAC,CAC9C,SAAS6pF,IAAI7pF,EAAE,CAAC,OAAA8pF,GAAK,EAAQzV,IAAI0V,IAAK,EAACC,KAAKhqF,CAAC,CAAC,CAC9C,SAASiqF,IAAIjqF,EAAE,CAAC,OAAAkqF,GAAK,EAAQ7V,IAAI8V,IAAK,EAACC,KAAKpqF,CAAC,CAAC,CAC9C,SAASqqF,IAAIrqF,EAAE,CAAC,OAAAsqF,GAAK,EAAQjW,IAAIkW,IAAK,EAACC,KAAKxqF,CAAC,CAAC,CAC9C,SAASyqF,GAAGzqF,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAG,MAAM0lC,EAAI,IAAImN,GAAIpf,CAAC,CAAC,CAAE,CAC9C,SAASi3D,IAAI1qF,EAAE,CAAC,OAAA2qF,GAAK,EAAQtW,IAAIuW,IAAK,EAACC,KAAK7qF,CAAC,CAAC,CAC9C,SAAS8qF,GAAI9qF,EAAE,CAACkhE,GAAI,KAAK,KAAKlhE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC9C,SAAS+qF,GAAI/qF,EAAE,CAACkhE,GAAI,KAAK,KAAKlhE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC9C,SAASgrF,GAAIhrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASorF,GAAIjrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASqrF,IAAIlrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASsrF,GAAInrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASurF,IAAIprF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASwrF,GAAIrrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASyrF,IAAItrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAAS0rF,GAAIvrF,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE4zB,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAEH,CAAC,CAC9C,SAAS2rF,IAAIxrF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAinD,GAAK,EAAC9mD,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAS4zB,CAAC,CAC9C,SAASg4D,GAAIzrF,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIlsB,IAAIksB,EAAE,EAAEzzB,EAASyzB,CAAC,CAC9C,SAASi4D,GAAI1rF,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIwX,IAAIxX,EAAE,EAAEzzB,EAASyzB,CAAC,CAC9C,SAASjI,IAAK,CAACA,GAAI9mB,EAAIinF,GAAI,IAAI58E,IAAI68E,GAAI,IAAI58E,GAAG,CAC9C,SAAS0xD,IAAK,CAACA,GAAIh8D,EAAImnF,IAAI,IAAIl3E,IAAIm3E,IAAI,IAAIl3E,GAAG,CAC9C,SAASm3E,IAAI/rF,EAAE,CAAC,OAAAgsF,GAAK,EAAQ3X,IAAI4X,IAAK,EAACC,KAAKlsF,CAAC,CAAC,CAC9C,SAASmsF,IAAInsF,EAAE,CAAC,OAAAosF,GAAK,EAAQ/X,IAAIgY,IAAK,EAACC,KAAKtsF,CAAC,CAAC,CAC9C,SAASusF,IAAIvsF,EAAE,CAAC,OAAAwsF,GAAK,EAAQnY,IAAIoY,IAAK,EAACC,KAAK1sF,CAAC,CAAC,CAC9C,SAAS2sF,IAAI3sF,EAAE,CAAC,OAAA4sF,GAAK,EAAQvY,IAAIwY,IAAK,EAACC,KAAK9sF,CAAC,CAAC,CAC9C,SAAS+sF,IAAI/sF,EAAE,CAAC,OAAAgtF,GAAK,EAAQ3Y,IAAI4Y,IAAK,EAACC,KAAKltF,CAAC,CAAC,CAC9C,SAASmtF,IAAIntF,EAAE,CAAC,OAAAotF,GAAK,EAAQ/Y,IAAIgZ,IAAK,EAACC,KAAKttF,CAAC,CAAC,CAC9C,SAASutF,IAAIvtF,EAAE,CAAC,OAAAwtF,GAAK,EAAQnZ,IAAIoZ,IAAK,EAACC,KAAK1tF,CAAC,CAAC,CAC9C,SAAS2tF,IAAI3tF,EAAE,CAAC,OAAA4tF,GAAK,EAAQvZ,IAAIwZ,IAAK,EAACC,KAAK9tF,CAAC,CAAC,CAC9C,SAAS+tF,IAAI/tF,EAAE,CAAC,OAAAguF,GAAK,EAAQ3Z,IAAI4Z,IAAK,EAACC,KAAKluF,CAAC,CAAC,CAC9C,SAASmuF,IAAInuF,EAAE,CAAC,OAAAouF,GAAK,EAAQ/Z,IAAIga,IAAK,EAACC,KAAKtuF,CAAC,CAAC,CAC9C,SAASuuF,IAAIvuF,EAAE,CAAC,OAAAwuF,GAAK,EAAQna,IAAIoa,IAAK,EAACC,KAAK1uF,CAAC,CAAC,CAC9C,SAAS2uF,IAAI3uF,EAAE,CAAC,OAAA4uF,GAAK,EAAQva,IAAIwa,IAAK,EAACC,KAAK9uF,CAAC,CAAC,CAC9C,SAAS+uF,IAAI/uF,EAAE,CAAC,OAAAgvF,GAAK,EAAQ3a,IAAI4a,IAAK,EAACC,KAAKlvF,CAAC,CAAC,CAC9C,SAASmvF,IAAInvF,EAAE,CAAC,OAAAovF,GAAK,EAAQ/a,IAAIgb,IAAK,EAACC,KAAKtvF,CAAC,CAAC,CAC9C,SAASuvF,IAAIvvF,EAAE,CAAC,OAAAwvF,GAAK,EAAQnb,IAAIob,IAAK,EAACC,KAAK1vF,CAAC,CAAC,CAC9C,SAAS2vF,IAAI3vF,EAAE,CAAC,OAAA4vF,GAAK,EAAQvb,IAAIwb,IAAK,EAACC,KAAK9vF,CAAC,CAAC,CAC9C,SAAS+vF,IAAI/vF,EAAE,CAAC,OAAAgwF,GAAK,EAAQ3b,IAAI4b,IAAK,EAACC,KAAKlwF,CAAC,CAAC,CAC9C,SAASmwF,IAAInwF,EAAE,CAAC,OAAAowF,GAAK,EAAQ/b,IAAIgc,IAAK,EAACC,KAAKtwF,CAAC,CAAC,CAC9C,SAASuwF,IAAIvwF,EAAE,CAAC,OAAAwwF,GAAK,EAAQnc,IAAIoc,IAAK,EAACC,KAAK1wF,CAAC,CAAC,CAC9C,SAAS2wF,IAAI3wF,EAAE,CAAC,OAAA4wF,GAAK,EAAQvc,IAAIwc,IAAK,EAACC,KAAK9wF,CAAC,CAAC,CAC9C,SAAS+wF,IAAI/wF,EAAE,CAAC,OAAAgxF,GAAK,EAAQ3c,IAAI4c,IAAK,EAACC,KAAKlxF,CAAC,CAAC,CAC9C,SAASmxF,IAAInxF,EAAE,CAAC,OAAAoxF,GAAK,EAAQ/c,IAAIgd,IAAK,EAACC,KAAKtxF,CAAC,CAAC,CAC9C,SAASuxF,IAAIvxF,EAAE,CAAC,OAAAwxF,GAAK,EAAQnd,IAAIod,IAAK,EAACC,KAAK1xF,CAAC,CAAC,CAC9C,SAAS2xF,IAAI3xF,EAAE,CAAC,OAAA4xF,GAAK,EAAQvd,IAAIwd,IAAK,EAACC,KAAK9xF,CAAC,CAAC,CAC9C,SAAS+xF,IAAI/xF,EAAE,CAAC,OAAAgyF,GAAK,EAAQ3d,IAAI4d,IAAK,EAACC,KAAKlyF,CAAC,CAAC,CAC9C,SAASmyF,IAAInyF,EAAE,CAAC,OAAAoyF,GAAK,EAAQ/d,IAAIge,IAAK,EAACC,KAAKtyF,CAAC,CAAC,CAC9C,SAASuyF,IAAIvyF,EAAE,CAAC,OAAAwyF,GAAK,EAAQne,IAAIoe,IAAK,EAACC,KAAK1yF,CAAC,CAAC,CAC9C,SAAS2yF,IAAI3yF,EAAE,CAAC,OAAA4yF,GAAK,EAAQve,IAAIwe,IAAK,EAACC,KAAK9yF,CAAC,CAAC,CAC9C,SAAS+yF,IAAI/yF,EAAE,CAAC,OAAAgzF,GAAK,EAAQ3e,IAAI4e,IAAK,EAACC,KAAKlzF,CAAC,CAAC,CAC9C,SAASmzF,IAAInzF,EAAE,CAAC,OAAAozF,GAAK,EAAQ/e,IAAIgf,IAAK,EAACC,KAAKtzF,CAAC,CAAC,CAC9C,SAASuzF,IAAIvzF,EAAE,CAAC,OAAAwzF,GAAK,EAAQnf,IAAIof,IAAK,EAACC,KAAK1zF,CAAC,CAAC,CAC9C,SAAS2zF,IAAI3zF,EAAE,CAAC,OAAA4zF,GAAK,EAAQvf,IAAIwf,IAAK,EAACC,KAAK9zF,CAAC,CAAC,CAC9C,SAAS+zF,IAAI/zF,EAAE,CAAC,OAAAg0F,GAAK,EAAQ3f,IAAI4f,IAAK,EAACC,KAAKl0F,CAAC,CAAC,CAC9C,SAASm0F,IAAIn0F,EAAE,CAAC,OAAAo0F,GAAK,EAAQ/f,IAAIggB,IAAK,EAACC,KAAKt0F,CAAC,CAAC,CAC9C,SAASu0F,IAAIv0F,EAAE,CAAC,OAAAw0F,GAAK,EAAQngB,IAAIogB,IAAK,EAACC,KAAK10F,CAAC,CAAC,CAC9C,SAAS20F,IAAI30F,EAAE,CAAC,OAAA40F,GAAK,EAAQvgB,IAAIwgB,IAAK,EAACC,KAAK90F,CAAC,CAAC,CAC9C,SAAS+0F,IAAI/0F,EAAE,CAAC,OAAAg1F,GAAK,EAAQ3gB,IAAI4gB,IAAK,EAACC,KAAKl1F,CAAC,CAAC,CAC9C,SAASm1F,IAAIn1F,EAAE,CAAC,OAAAo1F,GAAK,EAAQ/gB,IAAIghB,IAAK,EAACC,KAAKt1F,CAAC,CAAC,CAC9C,SAASu1F,IAAIv1F,EAAE,CAAC,OAAAw1F,GAAK,EAAQnhB,IAAIohB,IAAK,EAACC,KAAK11F,CAAC,CAAC,CAC9C,SAAS21F,IAAI31F,EAAE,CAAC,OAAA41F,GAAK,EAAQvhB,IAAIwhB,IAAK,EAACC,KAAK91F,CAAC,CAAC,CAC9C,SAAS+1F,IAAI/1F,EAAE,CAAC,OAAAg2F,GAAK,EAAQ3hB,IAAI4hB,IAAK,EAACC,KAAKl2F,CAAC,CAAC,CAC9C,SAASm2F,IAAIn2F,EAAE,CAAC,OAAAo2F,GAAK,EAAQ/hB,IAAIgiB,IAAK,EAACC,KAAKt2F,CAAC,CAAC,CAC9C,SAASu2F,IAAIv2F,EAAE,CAAC,OAAAw2F,GAAK,EAAQniB,IAAIoiB,IAAK,EAACC,KAAK12F,CAAC,CAAC,CAC9C,SAAS22F,IAAI32F,EAAE,CAAC,OAAA42F,GAAK,EAAQviB,IAAIwiB,IAAK,EAACC,KAAK92F,CAAC,CAAC,CAC9C,SAAS+2F,IAAI/2F,EAAE,CAAC,OAAAg3F,GAAK,EAAQ3iB,IAAI4iB,IAAK,EAACC,KAAKl3F,CAAC,CAAC,CAC9C,SAASm3F,IAAIn3F,EAAE,CAAC,OAAAo3F,GAAK,EAAQ/iB,IAAIgjB,IAAK,EAACC,KAAKt3F,CAAC,CAAC,CAC9C,SAASu3F,IAAIv3F,EAAE,CAAC,OAAAw3F,GAAK,EAAQnjB,IAAIojB,IAAK,EAACC,KAAK13F,CAAC,CAAC,CAC9C,SAAS23F,IAAI33F,EAAE,CAAC,OAAA43F,GAAK,EAAQvjB,IAAIwjB,IAAK,EAACC,KAAK93F,CAAC,CAAC,CAC9C,SAAS+3F,IAAI/3F,EAAE,CAAC,OAAAg4F,GAAK,EAAQ3jB,IAAI4jB,IAAK,EAACC,KAAKl4F,CAAC,CAAC,CAC9C,SAASm4F,IAAIn4F,EAAE,CAAC,OAAAo4F,GAAK,EAAQ/jB,IAAIgkB,IAAK,EAACC,KAAKt4F,CAAC,CAAC,CAC9C,SAASu4F,IAAIv4F,EAAE,CAAC,OAAAw4F,GAAK,EAAQnkB,IAAIokB,IAAK,EAACC,KAAK14F,CAAC,CAAC,CAC9C,SAAS24F,IAAI34F,EAAE,CAAC,OAAA44F,GAAK,EAAQvkB,IAAIwkB,IAAK,EAACC,KAAK94F,CAAC,CAAC,CAC9C,SAAS+4F,IAAI/4F,EAAE,CAAC,OAAAg5F,GAAK,EAAQ3kB,IAAI4kB,IAAK,EAACC,KAAKl5F,CAAC,CAAC,CAC9C,SAASm5F,IAAIn5F,EAAE,CAAC,OAAAqoD,GAAK,EAAQgsB,IAAI+kB,IAAK,EAACC,KAAKr5F,CAAC,CAAC,CAC9C,SAASs5F,IAAIt5F,EAAE,CAAC,OAAAwoD,GAAK,EAAQ6rB,IAAIklB,IAAK,EAACC,KAAKx5F,CAAC,CAAC,CAC9C,SAASy5F,IAAIz5F,EAAE,CAAC,OAAA05F,GAAK,EAAQrlB,IAAIslB,IAAK,EAACC,KAAK55F,CAAC,CAAC,CAC9C,SAAS65F,IAAI75F,EAAE,CAAC,OAAA85F,GAAK,EAAQzlB,IAAI0lB,IAAK,EAACC,KAAKh6F,CAAC,CAAC,CAC9C,SAASi6F,IAAIj6F,EAAE,CAAC,OAAA2oD,GAAK,EAAQ0rB,IAAI6lB,IAAK,EAACC,KAAKn6F,CAAC,CAAC,CAC9C,SAASo6F,IAAIp6F,EAAE,CAAC,OAAAq6F,GAAK,EAAQhmB,IAAIimB,IAAK,EAACC,KAAKv6F,CAAC,CAAC,CAC9C,SAASw6F,IAAIx6F,EAAE,CAAC,OAAAy6F,GAAK,EAAQpmB,IAAIqmB,IAAK,EAACC,KAAK36F,CAAC,CAAC,CAC9C,SAAS46F,IAAI56F,EAAE,CAAC,OAAA66F,GAAK,EAAQxmB,IAAIymB,IAAK,EAACC,KAAK/6F,CAAC,CAAC,CAC9C,SAASg7F,IAAIh7F,EAAE,CAAC,OAAAi7F,GAAK,EAAQ5mB,IAAI6mB,IAAK,EAACC,KAAKn7F,CAAC,CAAC,CAC9C,SAASo7F,IAAIp7F,EAAE,CAAC,OAAAq7F,GAAK,EAAQhnB,IAAIinB,IAAK,EAACC,KAAKv7F,CAAC,CAAC,CAC9C,SAASw7F,IAAIx7F,EAAE,CAAC,OAAAy7F,GAAK,EAAQpnB,IAAI9W,IAAK,EAACC,KAAKx9D,CAAC,CAAC,CAC9C,SAAS07F,IAAI17F,EAAE,CAAC,OAAA27F,GAAK,EAAQtnB,IAAIunB,IAAK,EAACC,KAAK77F,CAAC,CAAC,CAC9C,SAAS87F,IAAI97F,EAAE,CAAC,OAAA+7F,GAAK,EAAQ1nB,IAAI2nB,IAAK,EAACC,KAAKj8F,CAAC,CAAC,CAC9C,SAASk8F,IAAIl8F,EAAE,CAAC,OAAAm8F,GAAK,EAAQ9nB,IAAI+nB,IAAK,EAACC,KAAKr8F,CAAC,CAAC,CAC9C,SAASs8F,IAAIt8F,EAAE,CAAC,OAAAu8F,GAAK,EAAQloB,IAAImoB,IAAK,EAACC,KAAKz8F,CAAC,CAAC,CAC9C,SAAS08F,IAAI18F,EAAE,CAAC,OAAA28F,GAAK,EAAQtoB,IAAIuoB,IAAK,EAACC,KAAK78F,CAAC,CAAC,CAC9C,SAAS88F,IAAI98F,EAAE,CAAC,OAAA+8F,GAAK,EAAQ1oB,IAAI2oB,IAAK,EAACC,KAAKj9F,CAAC,CAAC,CAC9C,SAASk9F,IAAIl9F,EAAE,CAAC,OAAAm9F,GAAK,EAAQ9oB,IAAI+oB,IAAK,EAACC,KAAKr9F,CAAC,CAAC,CAC9C,SAASs9F,IAAIt9F,EAAE,CAAC,OAAAu9F,GAAK,EAAQlpB,IAAImpB,IAAK,EAACC,KAAKz9F,CAAC,CAAC,CAC9C,SAAS09F,IAAI19F,EAAE,CAAC,OAAA29F,GAAK,EAAQtpB,IAAIupB,IAAK,EAACC,KAAK79F,CAAC,CAAC,CAC9C,SAAS89F,IAAI99F,EAAE,CAAC,OAAA+9F,GAAK,EAAQ1pB,IAAI2pB,IAAK,EAACC,KAAKj+F,CAAC,CAAC,CAC9C,SAASk+F,IAAIl+F,EAAE,CAAC,OAAAm+F,GAAK,EAAQ9pB,IAAI+pB,IAAK,EAACC,KAAKr+F,CAAC,CAAC,CAC9C,SAASs+F,IAAIt+F,EAAE,CAAC,OAAA47E,GAAK,EAAQvH,IAAIkqB,IAAK,EAACC,KAAKx+F,CAAC,CAAC,CAC9C,SAASy+F,IAAIz+F,EAAE,CAAC,OAAA0+F,GAAK,EAAQrqB,IAAIsqB,IAAK,EAACC,KAAK5+F,CAAC,CAAC,CAC9C,SAAS6+F,IAAI7+F,EAAE,CAAC,OAAA8+F,EAAK,EAAQzqB,IAAI0qB,IAAK,EAACC,KAAKh/F,CAAC,CAAC,CAC9C,SAASi/F,IAAIj/F,EAAE,CAAC,OAAAk/F,GAAK,EAAQ7qB,IAAI8qB,IAAK,EAACC,KAAKp/F,CAAC,CAAC,CAC9C,SAASq/F,IAAIr/F,EAAE,CAAC,OAAAs/F,GAAK,EAAQjrB,IAAIkrB,IAAK,EAACC,KAAKx/F,CAAC,CAAC,CAC9C,SAASy/F,IAAIz/F,EAAE,CAAC,OAAA0/F,GAAK,EAAQrrB,IAAIsrB,IAAK,EAACC,KAAK5/F,CAAC,CAAC,CAC9C,SAAS6/F,IAAI7/F,EAAEyzB,EAAE,CAAC,OAAQ3C,GAAI9wB,CAAC,EAAEA,GAAI8wB,GAAI2C,CAAC,EAAEA,EAAE,CAC9C,SAASqsE,IAAI9/F,EAAEyzB,EAAE,CAAC,OAAA6vB,GAAK,EAAQ4iB,GAAI9kB,EAAIphD,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CAC9C,SAASssE,IAAI//F,EAAEyzB,EAAE,CAAC,OAAA6vB,GAAK,EAAQ4iB,GAAI9kB,EAAIphD,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CAC9C,SAASusE,GAAIhgG,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAEA,EAAEzzB,CAAC,CAC9C,SAASigG,IAAIjgG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASqgG,GAAIlgG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASsgG,GAAIngG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASugG,IAAIpgG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASwgG,IAAIrgG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAASygG,GAAItgG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC9C,SAAS0gG,IAAIvgG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGo5B,GAAI,KAAK,KAAKxgG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAAS4gG,GAAIzgG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGs5B,GAAI,KAAK,KAAK1gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAAS8gG,GAAI3gG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGs5B,GAAI,KAAK,KAAK1gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAAS+gG,GAAI5gG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGs5B,GAAI,KAAK,KAAK1gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASghG,IAAI7gG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGq5B,GAAI,KAAK,KAAKzgG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASihG,GAAI9gG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGq5B,GAAI,KAAK,KAAKzgG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASkhG,IAAI/gG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAG05B,GAAI,KAAK,KAAK9gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASmhG,IAAIhhG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGu5B,GAAI,KAAK,KAAK3gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASohG,IAAIjhG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAG,EAAGw5B,GAAI,KAAK,KAAK5gG,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC9C,SAASqhG,GAAGlhG,EAAEyzB,EAAE,CAAC,OAAA+hB,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAS,IAAIwuB,IAAGjiD,EAAEyzB,CAAC,CAAC,CAC/C,SAAS0tE,GAAGnhG,EAAEyzB,EAAE,CAAC,OAAA+hB,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAS,IAAI2tE,IAAGphG,EAAEyzB,CAAC,CAAC,CAC/C,SAAS4tE,IAAGrhG,EAAEyzB,EAAE,CAAC,OAAA+hB,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAS,IAAI6tE,IAAGthG,EAAEyzB,CAAC,CAAC,CAC/C,SAASsxC,IAAG/kE,EAAEyzB,EAAE,CAAC,OAAA+hB,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAS,IAAI0uB,IAAGniD,EAAEyzB,CAAC,CAAC,CAC/C,SAASyvB,EAAGljD,EAAEyzB,EAAE,CAAC,OAAA0nC,GAAIn7D,GAAG,MAAMwrE,GAAGxrE,EAAEyzB,CAAC,CAAC,EAASzzB,CAAC,CAC/C,SAASuhG,GAAGvhG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIoR,EAAI28D,GAAG/tE,EAAEzzB,CAAC,EAASyzB,CAAC,CAC/C,SAASguE,IAAGzhG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAImW,GAAI43D,GAAG/tE,EAAEzzB,CAAC,EAASyzB,CAAC,CAC/C,SAASiuE,IAAG1hG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAI4W,GAAIs3D,GAAGluE,EAAEzzB,CAAC,EAASyzB,CAAC,CAC/C,SAASmuE,GAAG5hG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAImZ,GAAI+0D,GAAGluE,EAAEzzB,CAAC,EAASyzB,CAAC,CAC/C,SAASouE,IAAI7hG,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAI6kC,GAAY7kC,EAAE,CAAC,CAC9C,SAAS8hG,IAAI9hG,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyjB,IAAYzjB,EAAE,CAAC,CAC9C,SAAS4oC,EAAI5oC,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEyzB,EAAS,EAAI,CAC/C,SAASsuE,IAAG/hG,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,EAAK,CAC/C,SAASo0C,GAAG7nE,EAAE,CAAC,KAAK,EAAEA,EAAE22B,IAAG,IAAI,EAAE,KAAK,EAAEqrE,IAAGhiG,EAAE,CAAC,CAAC,CAC/C,SAASiiG,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CAC/C,SAAS9d,IAAInkF,EAAEyzB,EAAE5zB,EAAE,CAACqiG,IAAI,KAAK,KAAKzuE,EAAE5zB,CAAC,EAAE,KAAK,EAAEG,CAAC,CAC/C,SAASmiG,IAAIniG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEs8D,IAAI,KAAK,KAAK7oC,EAAE5zB,CAAC,CAAC,CAC/C,SAASu2E,GAAIp2E,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEguD,GAAI,KAAK,KAAKv6B,EAAE5zB,CAAC,CAAC,CAC/C,SAASulF,GAAIplF,EAAEyzB,EAAE5zB,EAAE,CAACuiG,GAAIviG,EAAE,EAAEG,EAAEyzB,EAAE5zB,EAAE,OAAO,EAAK,CAAC,CAC/C,SAASwiG,GAAIriG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACQ,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,CAAC,CAC/C,SAAS8iG,IAAItiG,EAAEyzB,EAAE,CAAIA,IAAGzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,GAAGu+C,GAAI9qB,CAAC,EAAEA,EAAE,GAAG,CAC/C,SAAS8uE,GAAIviG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACQ,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,CAAC,CAC/C,SAASgjG,GAAIxiG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEyzB,CAAC,CAC/C,SAASgvE,GAAIziG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAEA,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,CAAC,CAC/C,SAAS6iG,GAAI1iG,EAAE,CAAC,OAAO2iG,GAAIC,IAAGjjC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,CAAC,CAAC,CAAC,CAC/C,SAAS8iG,IAAI9iG,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAIikC,IAAI/iG,EAAE,CAAC,EAAE+iG,IAAItvE,EAAE,CAAC,CAAC,CAAC,CAC/C,SAASuvE,IAAIhjG,EAAEyzB,EAAE,CAAC,OAAOA,IAAIqrE,IAAMmE,IAAKjjG,EAAE,EAAEA,EAAE,CAAC,CAC/C,SAAS83D,IAAK,CAACA,GAAIpzD,EAAIw+F,KAAKpE,EAAG,EAAGmE,IAAKE,GAAIC,EAAG,CAC9C,SAASC,KAAK,CAAC,KAAK,EAAEnwD,EAAImnC,EAAGipB,IAAKx4E,GAAG,EAAGy4E,GAAG,CAAE,CAAC,CAAC,CAC/C,SAASC,IAAIxjG,EAAE,CAAC,OAAO8mD,GAAK,EAACmd,EAAGC,GAAGC,GAAI,EAAEnkE,EAAE,EAAE,CAAC,CAAC,CAC/C,SAASyjG,IAAIzjG,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC/C,SAAS0jG,IAAI1jG,EAAEyzB,EAAE,CAAC,OAAA3H,GAAK,EAAQgzC,GAAI9+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,CAC/C,SAASkwE,GAAI3jG,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAG,CAAC,EAAS4jG,GAAI5jG,EAAEA,EAAE,EAAE,CAAC,CAAC,CAC/C,SAAS6jG,IAAI7jG,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAG,CAAC,EAAS4jG,GAAI5jG,EAAEA,EAAE,EAAE,CAAC,CAAC,CAC/C,SAAS8jG,GAAI9jG,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAG,MAAM0lC,EAAI,IAAIyM,IAAI1e,CAAC,CAAC,CAAE,CAC/C,SAASswE,GAAI/jG,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAG,MAAM0lC,EAAI,IAAImN,GAAIpf,CAAC,CAAC,CAAE,CAC/C,SAASuwE,GAAIhkG,EAAEyzB,EAAE5zB,EAAE,CAAC6wD,GAAI,KAAK,KAAK1wD,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,CAAC,CAC/C,SAASouE,GAAIjuE,EAAEyzB,EAAE5zB,EAAE,CAACk5D,GAAI,KAAK,KAAK/4D,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,CAAC,CAC/C,SAASokG,IAAIjkG,EAAEyzB,EAAE5zB,EAAE,CAACqkG,IAAI,KAAK,KAAKzwE,EAAE5zB,CAAC,EAAE,KAAK,EAAEG,CAAC,CAC/C,SAASmkG,GAAInkG,EAAE,CAACkmF,GAAK,EAAC9jE,GAAI,KAAK,IAAI,EAAE,KAAK,GAAGpiB,CAAC,CAAC,CAC/C,SAASokG,IAAIpkG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEi+D,GAAI,KAAK,KAAKxqC,EAAE5zB,CAAC,CAAC,CAC/C,SAASwkG,IAAIrkG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEi+D,GAAI,KAAK,KAAKxqC,EAAE5zB,CAAC,CAAC,CAC/C,SAAS2uE,GAAIxuE,EAAEyzB,EAAE5zB,EAAE,CAACk5D,GAAI,KAAK,KAAK/4D,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,CAAC,CAC/C,SAASykG,KAAK,CAACC,GAAG,EAAGC,IAAI,KAAK,MAAM55C,KAAMC,IAAK,CAC/C,SAAS45C,IAAIzkG,EAAE,CAAC,OAAOA,GAAG,MAAM,CAAC0kG,GAAI1kG,EAAE2kG,GAAIC,EAAG,CAAC,CAC/C,SAASC,IAAI7kG,EAAEyzB,EAAE,CAAC,OAAQqxE,IAAI9kG,CAAC,GAAG,EAAE8kG,IAAIrxE,CAAC,GAAGsxE,EAAG,CAC/C,SAASC,IAAGhlG,EAAEyzB,EAAE,CAAC,OAAOwxE,GAAE,EAAGC,GAAGllG,EAAEyzB,CAAC,EAAE,IAAI0xE,IAAGnlG,EAAEyzB,CAAC,CAAC,CAChD,SAAS2xE,GAAIplG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAKG,EAAE,IAAGH,EAAE4zB,EAAEmV,EAAI5oC,EAAE,EAAEH,CAAC,EAAE,CAC/C,SAASwlG,GAAIrlG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE,IAAIzX,GAAGnyC,CAAC,EAAEylG,GAAGtlG,EAAEyzB,EAAEg2B,CAAC,CAAC,CAC/C,SAAS87C,IAAIvlG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAEwlG,GAAIxlG,EAAEyzB,CAAC,EAAS5zB,CAAC,CAC/C,SAAS4lG,GAAIzlG,EAAEyzB,EAAE,CAAC,OAAAA,EAAE,EAAGzzB,EAAE,EAAE,GAAKA,EAAE,EAAEyzB,EAAUzzB,CAAC,CAC/C,SAAS0lG,GAAI1lG,EAAEyzB,EAAE,CAAC,OAAAkyE,IAAI3lG,CAAC,EAAEA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAASzzB,CAAC,CAC/C,SAAS4lG,IAAI5lG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACQ,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,CAAC,CAC/C,SAASqmG,GAAI7lG,EAAEyzB,EAAE,CAAC,OAAAkoC,GAAI37D,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAS,EAAI,CAChD,SAAS4rE,GAAI5rE,EAAE,CAACA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,IAAI,CAChD,SAAS8lG,GAAG9lG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE+lG,GAAG,KAAK,EAAE,CAAC,EAAE,GAAE,CAAE,CAChD,SAAS3E,IAAGphG,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAEtJ,GAAG,KAAK,IAAI,CAAC,CAChD,SAASm3E,IAAGthG,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAEtJ,GAAG,KAAK,IAAI,CAAC,CAChD,SAAS67E,IAAIhmG,EAAEyzB,EAAE,CAACyuE,IAAI,KAAK,KAAKzuE,EAAE,IAAI,EAAE,KAAK,EAAEzzB,CAAC,CAChD,SAASimG,GAAIjmG,EAAE,CAAC,OAAOA,GAAG,GAAG,MAAMA,CAAC,EAAEA,EAAEA,EAAE,EAAE,GAAG,CAAC,CAChD,SAASkmG,IAAIlmG,EAAE,CAAC,OAAAmmG,GAAK,EAAQC,GAAIpmG,CAAC,GAAGqmG,GAAIC,GAAItmG,CAAC,CAAC,CAAC,CAChD,SAASumG,IAAIvmG,EAAE,CAAC,OAAAmmG,GAAK,EAAQG,GAAItmG,CAAC,GAAGqmG,GAAID,GAAIpmG,CAAC,CAAC,CAAC,CAChD,SAASwmG,GAAIxmG,EAAEyzB,EAAE,CAAC,OAAOgzE,GAAIzmG,EAAE,IAAI0wD,GAAIj9B,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAChD,SAASizE,IAAI1mG,EAAE,CAAC,MAAO,CAAC2mG,GAAI3mG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,CAAC,CAChD,SAAS4mG,GAAI5mG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAASA,EAAE,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,CAChD,SAASozE,IAAI7mG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAASA,EAAE,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,CAChD,SAASqzE,GAAI9mG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAASA,EAAE,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,CAChD,SAASszE,IAAI/mG,EAAE,CAAC,OAAAymE,GAAG,EAAgB,IAAIugC,GAAI,EAAEhnG,CAAC,CAAC,CAC/C,SAASinG,IAAIjnG,EAAE,CAAC,OAAGA,EAAE,EAAUA,EAAE,EAASknG,GAAIlnG,CAAC,CAAC,CAChD,SAASm7D,GAAIn7D,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIkN,GAAI,IAAI,CAAC,CAAE,CAChD,SAASu0D,KAAK,CAACA,IAAIziG,EAAI0iG,IAAK/8B,GAAG,EAAG,IAAIvyC,GAAIuvE,EAAG,EAAE,CAC/C,SAASC,IAAI,CAACA,GAAG5iG,EAAI,IAAI6iG,IAAIt4D,GAAE,EAAGC,KAAKE,GAAI,EAACC,GAAE,CAAE,CAChD,SAASm4D,KAAK,CAACA,IAAI9iG,EAAI+iG,IAAIxjC,EAAGyjC,GAAGl9B,EAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAChD,SAASm9B,GAAI3nG,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACm+C,GAAI,KAAK,KAAK5nG,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,EAAE,CAAC,CAAC,CAChD,SAASo+C,IAAI7nG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO25D,GAAIx5D,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE4zB,CAAC,CAAC,CAChD,SAASq0E,IAAI9nG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO25D,GAAIx5D,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE4zB,CAAC,CAAC,CAChD,SAASs0E,IAAI/nG,EAAEyzB,EAAE,CAAC,OAAOmV,EAAI5oC,EAAE,IAAIo1D,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAChD,SAASu0E,IAAIhoG,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,EAAE,GAAGzzB,EAAE,GAAGyzB,EAAE,EAAE,EAAE,CAAC,CAChD,SAASw0E,GAAIjoG,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAChD,SAAS+iG,IAAI/iG,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAChD,SAASkoG,IAAIloG,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAChD,SAASmoG,IAAInoG,EAAE,CAAC,OAAAipE,GAAK,GAAS61B,EAAK,EAACsJ,IAAK,GAAGpoG,EAAE,CAAC,CAAC,CAChD,SAASqoG,IAAIroG,EAAE,CAACkmF,GAAG,EAAGie,GAAI,KAAK,KAAKnkG,CAAC,EAAE,KAAK,EAAE,EAAE,CAChD,SAASsoG,GAAItoG,EAAEyzB,EAAE,CAACwlC,GAAI,KAAK,KAAKj5D,EAAEyzB,CAAC,EAAE,KAAK,EAAE,IAAI,CAChD,SAAS80E,GAAIvoG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE2oG,GAAIxoG,EAAEyzB,CAAC,EAAE5zB,EAAE,EAAE,EAASA,CAAC,CACjD,SAAS4oG,GAAIzoG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,QAAEG,EAAE,EAAEH,EAAEG,EAAE,GAAGyzB,CAAC,EAAS5zB,CAAC,CAChD,SAAS6oG,GAAI1oG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,EAAE,GAAGyzE,GAAIzzE,EAAEyzB,EAAE,EAAE5zB,CAAC,EAASG,CAAC,CAChD,SAAS2oG,IAAI3oG,EAAEyzB,EAAE5zB,EAAE,CAAC+oG,IAAI5oG,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAChD,SAASgpG,IAAI7oG,EAAEyzB,EAAE,CAACq1E,GAAI9oG,EAAEyzB,GAAG,KAAK,MAAM3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CAChD,SAASs1E,IAAI/oG,EAAEyzB,EAAE,CAACu1E,GAAIhpG,EAAEyzB,GAAG,KAAK,MAAM3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CAChD,SAASw1E,IAAIjpG,EAAEyzB,EAAE,CAACu1E,GAAIhpG,EAAEyzB,GAAG,KAAK,MAAM3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CAChD,SAASy1E,GAAGlpG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO,IAAImiF,IAAGmnB,IAAInpG,CAAC,EAAE,GAAI,EAACH,EAAE4zB,CAAC,CAAC,CACjD,SAAS21E,GAAGppG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,OAAOgqG,IAAGrpG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,EAAEH,CAAC,CAAC,CACjD,SAASiqG,KAAK,CAACA,IAAI5kG,EAAI6kG,IAAItlC,EAAGulC,GAAGh/B,EAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CACjD,SAASi/B,KAAK,CAACA,IAAI/kG,EAAIglG,IAAIzlC,EAAG0lC,GAAGn/B,EAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CACjD,SAASo/B,KAAK,CAACA,IAAIllG,EAAImlG,IAAI5lC,EAAG6lC,GAAGt/B,EAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CACjD,SAASu/B,KAAK,CAACA,IAAIrlG,EAAIslG,IAAI/lC,EAAGgmC,GAAGz/B,EAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CACjD,SAAS0/B,IAAK,CAAC7H,GAAI,KAAK,GAAM,GAAM,GAAM,EAAK,CAAC,CAChD,SAAS8H,GAAGnqG,EAAE,CAACknC,GAAE,EAAG,KAAK,GAAGmjC,GAAG,EAAG,IAAIvyC,GAAI0d,GAAGx1C,CAAC,CAAC,EAAE,CACjD,SAASoqG,GAAGpqG,EAAE,CAAO,IAANw1C,GAAGx1C,CAAC,EAAQA,EAAE,GAAE,GAAIA,EAAE,GAAE,EAAGA,EAAE,GAAI,CAAC,CACjD,SAASqqG,IAAGrqG,EAAE,CAACA,EAAE,EAAE,GAAE,EAAGkjD,EAAGljD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE,GAAE,EAAGi1C,IAAI,CACjD,SAASq1D,GAAGtqG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,CACjD,SAASuqG,IAAIvqG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAIilD,GAAI,KAAK,EAAE,CAAC,CAAC,CACjD,SAASulD,GAAIxqG,EAAE,CAAC,KAAK,EAAE,IAAI09C,GAAI19C,EAAE,GAAE,CAAE,EAAEykD,GAAG,KAAKzkD,CAAC,CAAC,CACjD,SAASyqG,GAAIzqG,EAAE,CAAC04B,GAAI,KAAK,KAAK,IAAIsoC,EAAG,EAAEvc,GAAG,KAAKzkD,CAAC,CAAC,CACjD,SAAS0qG,IAAI1qG,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGsrE,GAAI73C,EAAE,EAAEA,EAAE,MAAM,EAASzzB,CAAC,CACjD,SAASs7E,GAAIt7E,EAAEyzB,EAAE,CAAC,OAAAopC,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAASA,EAAE,EAAEyzB,CAAC,CAAC,CACjD,SAASk3E,IAAI3qG,EAAEyzB,EAAE,CAAC,OAAAopC,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAASA,EAAE,EAAEyzB,CAAC,CAAC,CACjD,SAASm3E,GAAI5qG,EAAEyzB,EAAE,CAACqzB,GAAG,EAAG9B,GAAI,KAAK,KAAKhlD,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CACjD,SAASo3E,IAAI7qG,EAAEyzB,EAAE,CAAC,OAAOq3E,GAAIC,GAAID,GAAI9qG,EAAE,CAAC,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CAAC,CACjD,SAASu3E,IAAIhrG,EAAEyzB,EAAE,CAAC,OAAO3C,GAAI9wB,CAAC,EAAEirG,GAAIjrG,GAAG8wB,GAAI2C,CAAC,EAAEA,EAAC,CAAE,CACjD,SAASy3E,IAAIlrG,EAAEyzB,EAAE,CAAC,OAAO3C,GAAI2C,CAAC,EAAEw3E,GAAIx3E,GAAG3C,GAAI9wB,CAAC,EAAEA,EAAC,CAAE,CACjD,SAASmrG,IAAInrG,EAAEyzB,EAAE,CAAC,OAAOoyC,GAAGpyC,EAAE,EAAE23E,GAAI33E,EAAE,CAAC,EAAEq3E,GAAI,CAAC,CAAC,CAAC,CAAC,CACjD,SAASM,GAAIprG,EAAEyzB,EAAE,CAAC,OAAOo3E,IAAI3nD,EAAGljD,EAAE,GAAG,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,CAAC,CACjD,SAAS43E,IAAIrrG,EAAE,CAAC,OAAOA,EAAE,EAAEkjD,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CACjD,SAASsrG,IAAItrG,EAAE,CAAC,OAAQA,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAG,EAAGA,GAAK,EAACkhC,GAAQ,CACjD,SAASC,IAAGxrG,EAAE,CAAC,OAAOA,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGA,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,CACjD,SAASyrG,IAAIzrG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi/D,GAAIrrC,EAAE,EAAEzzB,EAAE,CAAC,EAAEH,EAAE,EAAEG,EAAE,CAAC,CAAC,CAAC,CACjD,SAAS0rG,IAAI1rG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi/D,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,CAAC,CACjD,SAAS8rG,IAAI3rG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi/D,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,CAAC,CACjD,SAAS+rG,IAAI5rG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi/D,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,CAAC,CACjD,SAASgsG,IAAI7rG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOi/D,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,CAAC,CACjD,SAASisG,GAAI9rG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOkD,EAAK,KAAK,IAAIlD,EAAEG,EAAE,EAAEyzB,CAAC,CAAC,CACjD,SAASs4E,IAAI/rG,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI,EAAE0wB,EAAE,CAAC,CAAC,CACjD,SAASu4E,IAAIhsG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,EAAE5zB,EAAGG,EAAEH,CAAC,EAAE,EAAG,CACjD,SAASosG,IAAIjsG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEy4E,IAAIlsG,CAAC,EAAUyzB,EAAIw4E,IAAIx4E,CAAC,EAAPzzB,CAAQ,CACjD,SAASmsG,IAAInsG,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,MAAMosG,IAAIpsG,CAAC,EAASA,EAAE,EAAEyzB,CAAC,CAAC,CACjD,SAAS44E,GAAIrsG,EAAE,CAAC,OAAGA,EAAE,EAAUA,EAAE,EAAE,EAASA,EAAE,EAAE,CAAC,CACjD,SAASssG,GAAItsG,EAAE,CAAC,OAAGA,EAAE,EAAUA,EAAE,EAAE,EAASA,EAAE,EAAE,CAAC,CACjD,SAASusG,GAAIvsG,EAAE,CAAC86C,GAAI,KAAK,KAAK96C,EAAE,GAAI,CAAA,EAAEwsG,GAAI,KAAKxsG,CAAC,CAAC,CACjD,SAASk4E,GAAIl4E,EAAEyzB,EAAE,CAAC2zC,GAAG,EAAGpjC,GAAI,KAAK,KAAKvQ,CAAC,EAAE,KAAK,EAAEzzB,CAAC,CACjD,SAASysG,GAAIzsG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEguE,GAAI,KAAK,KAAKv6C,EAAE5zB,EAAE,CAAC,CAAC,CACjD,SAASqhE,GAAIlhE,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAW84C,GAAI,KAAKviG,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACjD,SAASu9C,GAAIhnG,EAAEyzB,EAAE,CAACgzC,GAAG,EAAGhiC,GAAI,KAAK,KAAKzkC,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CACjD,SAASi5E,IAAI1sG,EAAE,CAAC,KAAK,EAAE,IAAI4sC,GAAI,KAAK,EAAE5sC,EAAE,KAAK,EAAE,EAAE,CACjD,SAAS2sG,KAAK,CAAC,KAAK,EAAE,IAAIv3C,GAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAIxrB,EAAG,CACjD,SAASgjE,IAAG5sG,EAAE,CAACs0C,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,EAAEt0C,EAAE,KAAK,EAAE,CAAC,CAClD,SAAS6sG,IAAI7sG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI+kC,GAAI+nE,IAAI,IAAI,CAAC,CACjD,SAASC,GAAG/sG,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CACjD,SAASglE,GAAGhtG,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CACjD,SAASilE,GAAIjtG,EAAE,CAAC,OAAG2/D,GAAI3/D,CAAC,EAAUA,EAAE,EAASy+C,IAAGz+C,CAAC,CAAC,CAClD,SAASktG,GAAIltG,EAAEyzB,EAAE,CAAC,OAAAgzC,KAAmB,IAAI0mC,GAAIntG,EAAEyzB,CAAC,CAAC,CACjD,SAAS25E,GAAIptG,EAAEyzB,EAAE,CAAC,OAAOzzB,GAAG,KAAKyzB,GAAG,KAAK4uD,GAAIriF,EAAEyzB,CAAC,CAAC,CACjD,SAAS45E,IAAIrtG,EAAEyzB,EAAE,CAAC,OAAOzzB,GAAG,KAAKyzB,GAAG,KAAK65E,GAAIttG,EAAEyzB,CAAC,CAAC,CACjD,SAASqqD,GAAI99E,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAA0tG,GAAIvtG,EAAE,EAAEyzB,CAAC,EAAS+5E,GAAIxtG,EAAEyzB,EAAE,EAAE5zB,CAAC,CAAC,CAClD,SAASooE,GAAIjoE,EAAEyzB,EAAE5zB,EAAE,CAAC4tG,IAAI,EAAEh6E,EAAEzzB,EAAE,MAAM,EAAE8gE,GAAI9gE,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAClD,SAAS6tG,GAAI1tG,EAAEyzB,EAAE5zB,EAAE,CAAC8tG,GAAIl6E,EAAEzzB,EAAE,EAAE,MAAM,EAAE6tD,GAAI7tD,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAClD,SAASytD,IAAIttD,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAE,EAAEA,EAAEh2B,EAAE,EAAEg2B,EAAGzpD,EAAEypD,CAAC,EAAE5pD,CAAE,CAClD,SAAS+tG,GAAI5tG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE87E,GAAI37E,CAAC,EAAE6tG,GAAIhuG,EAAE4zB,CAAC,EAAS5zB,CAAC,CAClD,SAASiuG,IAAG9tG,EAAEyzB,EAAE,CAAC,OAACzzB,IAAIA,EAAE,CAAE,GAAEA,EAAEA,EAAE,MAAM,EAAEyzB,EAASzzB,CAAC,CAClD,SAAS+tG,IAAI/tG,EAAEyzB,EAAE,CAAC,OAASzzB,EAAE,EAAE,IAAIyzB,CAAC,IAAI,MAAU,CAClD,SAASu6E,IAAIhuG,EAAEyzB,EAAE,CAAC,OAAOw6E,IAAI,IAAI/nG,IAAI,IAAI6yB,IAAI/4B,CAAC,EAAEyzB,CAAC,CAAC,CAClD,SAASy6E,IAAIluG,EAAE,CAAC,OAAOA,GAAG,KAAK6tE,GAAI,IAAI/8B,GAAIhgB,GAAI9wB,CAAC,CAAC,CAAC,CAClD,SAASqsD,GAAIrsD,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,EAAE,GAAGs6B,GAAI/tD,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CAClD,SAAS06E,IAAInuG,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,EAAE,GAAG26E,IAAIpuG,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CAClD,SAAS46E,GAAIruG,EAAE,CAAC,OAAOsuG,GAAItuG,EAAE,EAAE,EAAEuuG,GAAID,GAAItuG,EAAE,EAAE,EAAEwuG,EAAG,CAClD,SAASC,GAAGzuG,EAAE,CAAC,OAAO,MAAM,QAAQA,CAAC,GAAGA,EAAE,KAAKyE,EAAG,CAClD,SAASorE,GAAG7vE,EAAE,CAACA,EAAE,EAAE6vE,GAAG7vE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAE,GAAIA,EAAE,EAAE,EAAE,GAAGA,EAAE,CAAC,CAAC,CAClD,SAAS0uG,GAAI1uG,EAAEyzB,EAAE,CAAC2sD,GAAIpgF,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,EAAE,GAAGyzB,EAAE,CAAC,CAClD,SAASk7E,IAAI3uG,EAAEyzB,EAAE,CAACi7E,GAAI1uG,EAAEqgF,GAAI,IAAIjrB,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,EAAEzzB,EAAE,CAAC,CAAC,CAAC,CAClD,SAAS4uG,GAAI5uG,EAAEyzB,EAAE,CAAC,KAAK,EAAE,IAAImZ,GAAI,KAAK,EAAE5sC,EAAE,KAAK,EAAEyzB,CAAC,CAClD,SAASk0B,KAAK,CAAC,KAAK,EAAE,IAAIt8C,IAAI,KAAK,EAAE,IAAIwjG,IAAI,IAAI,CAAC,CAClD,SAASC,IAAK,CAAC,KAAK,EAAE,IAAI1nG,IAAI,KAAK,EAAE,IAAI2nG,IAAI,IAAI,CAAC,CAClD,SAASz2C,IAAK,CAACD,GAAK,EAAC,KAAK,EAAE,IAAIzrB,GAAI,KAAK,EAAE,IAAIA,EAAG,CAClD,SAASoiE,KAAK,CAAC/lC,GAAK,EAAC,KAAK,EAAE,IAAIlkC,GAAI,KAAK,EAAE,IAAI6E,EAAG,CAClD,SAAS8I,IAAK,CAACA,GAAIhuC,EAAIuqG,IAAI,IAAI5pC,IAAKr1C,GAAK,EAACk/E,IAAK,CAAC,CAAC,CACjD,SAASC,KAAI,CAACA,IAAGzqG,EAAI0qG,IAAG,IAAIxC,IAAG3oC,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAClD,SAASkrC,IAAIrvG,EAAEyzB,EAAE5zB,EAAE,CAACyvG,IAAIzvG,EAAEG,EAAE,CAAC,EAAE4oC,EAAInV,EAAE,IAAIu8B,IAAInwD,EAAEG,CAAC,CAAC,CAAC,CAClD,SAASuvG,IAAIvvG,EAAEyzB,EAAE5zB,EAAE,CAAC2vG,GAAI3vG,EAAEG,EAAE,CAAC,EAAE4oC,EAAInV,EAAE,IAAI+8B,IAAI3wD,EAAEG,CAAC,CAAC,CAAC,CAClD,SAASq6C,IAAIr6C,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOmpC,GAAIhpC,EAAE,IAAIwuD,GAAI/6B,EAAE,EAAE5zB,EAAE,CAAC,CAAC,CAAC,CAClD,SAAS4vG,IAAIzvG,EAAEyzB,EAAE5zB,EAAE,CAAC,MAAO,CAACi/D,GAAI9+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,CAAC,CAClD,SAAS6vG,GAAI1vG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAKzpD,IAAGypD,EAAEzpD,EAAE,EAAEypD,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,EAAE,CAClD,SAAS8vG,GAAI3vG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAKzpD,IAAGypD,EAAEzpD,EAAE,EAAEypD,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,EAAE,CAClD,SAAS+vG,GAAI5vG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,EAAE,GAAGyzE,GAAIzzE,EAAEyzB,EAAE,EAAE,EAAE5zB,CAAC,EAASG,CAAC,CAClD,SAAS6vG,GAAI7vG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE5zB,CAAC,EAASA,CAAC,CAClD,SAASiwG,GAAI9vG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,EAAE28E,GAAIx8E,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE5zB,CAAC,EAASA,CAAC,CAClD,SAASkwG,IAAI/vG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEkuE,GAAI,KAAK,KAAKz6C,EAAE5zB,EAAE,EAAE,CAAC,CAClD,SAASmwG,IAAIhwG,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEkuE,GAAI,KAAK,KAAKz6C,EAAE5zB,EAAE,EAAE,CAAC,CAClD,SAASowG,IAAIjwG,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC2d,GAAG,EAAG8oC,IAAI,KAAK,KAAKlwG,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAClD,SAAS0mD,IAAInwG,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC2d,GAAG,EAAG8oC,IAAI,KAAK,KAAKlwG,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAClD,SAAS2mD,IAAIpwG,EAAEyzB,EAAE,CAAEA,EAAE,GAAG48E,IAAS,CAACrwG,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAEyzB,EAAE,CAClD,SAAS68E,IAAGtwG,EAAE,CAAC,OAAOA,GAAG,MAAM,GAAGA,CAAC,GAAKA,EAAE,KAAKyE,EAAI,CACnD,SAAS8rG,GAAGvwG,EAAE,CAAC,MAAO,CAAC,MAAM,QAAQA,CAAC,GAAGA,EAAE,KAAKyE,EAAG,CACnD,SAASu9F,IAAGhiG,EAAE,CAAC,OAAOurE,EAAGvrE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,GAAI,EAACA,EAAE,GAAE,CAAE,CACnD,SAASwwG,GAAGxwG,EAAE,CAAC,OAAOA,EAAE,GAAGikE,EAAGC,GAAGC,GAAI,EAAEnkE,EAAE,GAAI,EAAC,EAAE,CAAC,CAAC,CAAC,CACnD,SAASywG,GAAIzwG,EAAEyzB,EAAE,CAAC,OAAOi9E,IAAI93B,GAAI54E,EAAEyzB,CAAC,CAAC,EAAEA,EAAE,GAAE,EAAG,IAAI,CAClD,SAASk9E,GAAI3wG,EAAE,CAACA,EAAE4wG,GAAG5wG,GAAGsjD,GAAK,EAACC,IAAO,EAAGD,GAAK,CAAK,CAClD,SAASutD,GAAG7wG,EAAE,CAAC,KAAK,GAAGmvG,IAAE,EAAGC,KAAI,KAAK,EAAElsD,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,CAAC,CACnD,SAASs2E,GAAGt2E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE86E,GAAG,KAAK,KAAK96E,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACnD,SAASqnD,GAAI9wG,EAAE,CAAC8rD,GAAG,EAAG,KAAK,EAAE,EAAE,KAAK,EAAE9rD,EAAE,EAAE,KAAK,EAAE,CAAC,CAClD,SAAS2wC,IAAG3wC,EAAE,CAACsqE,GAAG,IAAI,EAAE,KAAK,EAAEtqE,EAAE2wE,GAAG,IAAI,EAAE,KAAK,GAAE,CAAE,CACnD,SAASo1B,GAAG/lG,EAAE,CAAC,OAAGA,EAAE,EAAUA,EAAE,EAASA,EAAE,EAAEA,EAAE,GAAE,CAAE,CACnD,SAASsvE,GAAGtvE,EAAE,CAAC,OAAGA,EAAE,EAAUA,EAAE,EAASA,EAAE,EAAEA,EAAE,GAAE,CAAE,CACnD,SAASqvE,GAAGrvE,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAEA,EAAE,GAAI,EAAG,CACnD,SAAS+wG,IAAG/wG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAEA,EAAE,GAAI,EAAG,CACnD,SAASgxG,GAAGhxG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAEA,EAAE,GAAI,EAAG,CACnD,SAASixG,IAAIjxG,EAAE,CAAC,OAAAymE,GAAK,EAAc,IAAIyqC,GAAI,GAAGlxG,EAAE,CAAC,CAAC,CAClD,SAASmxG,GAAInxG,EAAE,CAAC,OAAG2/D,GAAI3/D,CAAC,EAAU,GAAGA,EAASoxG,IAAGpxG,CAAC,CAAC,CACnD,SAASqxG,GAAIrxG,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CAClD,SAASspE,GAAItxG,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAI4O,IAAG5xC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAEyzB,CAAC,CAAC,CAAC,CACnD,SAAS+9E,GAAIxxG,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAI8O,GAAG9xC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAEyzB,CAAC,CAAC,CAAC,CACnD,SAASi+E,GAAI1xG,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAIgP,IAAGhyC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAEyzB,CAAC,CAAC,CAAC,CACnD,SAASm+E,IAAI5xG,EAAEyzB,EAAE,CAAC,OAAOmqD,KAAK9sD,GAAI9wB,CAAC,EAAEA,IAAI8wB,GAAI2C,CAAC,EAAEA,EAAC,CAAE,CACnD,SAASo+E,GAAI7xG,EAAEyzB,EAAE,CAAC,OAAOmrC,IAAK9tC,GAAI9wB,CAAC,EAAEA,IAAI8wB,GAAI2C,CAAC,EAAEA,EAAC,CAAE,CACnD,SAASq+E,IAAG9xG,EAAEyzB,EAAE,CAAC,OAAO+hB,GAAG/hB,CAAC,EAAEzzB,EAAE,EAAE,GAAGyzB,CAAC,GAAG,CAACzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CACnD,SAASs+E,IAAG/xG,EAAEyzB,EAAE,CAAC,OAAO6rC,GAAGt/D,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACnD,SAASu+E,IAAGhyG,EAAEyzB,EAAE,CAAC,OAAO6rC,GAAGt/D,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACnD,SAASw+E,IAAGjyG,EAAEyzB,EAAE,CAAC,OAAO6rC,GAAGt/D,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACnD,SAASy+E,GAAIlyG,EAAEyzB,EAAE,CAAC,OAAO0+E,GAAInyG,GAAG8wB,GAAI2C,CAAC,EAAE,IAAImF,IAAInF,CAAC,EAAC,CAAE,CACnD,SAAS2+E,GAAIpyG,EAAEyzB,EAAE,CAAC,OAAO0+E,GAAInyG,GAAG8wB,GAAI2C,CAAC,EAAE,IAAIoF,IAAIpF,CAAC,EAAC,CAAE,CACnD,SAAS4+E,IAAIryG,EAAE,CAAC,OAAOsyG,GAAK,EAACpvD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CACnD,SAASuyG,IAAIvyG,EAAE,CAAC,OAAOsyG,GAAK,EAACpvD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CACnD,SAASwyG,IAAIxyG,EAAEyzB,EAAE,CAAC,OAAA7H,GAAG,EAAUgzC,GAAInrC,EAAE,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAAC,CAAC,CACnD,SAASyyG,IAAIzyG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO6yG,IAAI1yG,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAEyvB,EAAGrjD,EAAE,EAAE,CAAC,CAAC,CACnD,SAAS8yG,IAAI3yG,EAAE,CAAC,OAAGA,EAAE,EAAU4yG,GAAI5yG,EAAE,CAAC,EAAS,IAAI,CACnD,SAAS6yG,GAAI7yG,EAAE,CAAKA,EAAE,IAAGA,EAAE,EAAEA,EAAE,EAAE,GAAI,EAACA,EAAE,EAAEA,EAAE,EAAE,GAAE,EAAG,CACnD,SAAS8yG,IAAI9yG,EAAEyzB,EAAE5zB,EAAE,CAAIG,EAAE,EAAE,GAAGH,CAAC,IAAGG,EAAE,EAAE,GAAKyzB,EAAE,GAAG5zB,CAAC,EAAE,CACnD,SAASkzG,GAAI/yG,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,GAAGyzB,EAAG,MAAMiS,EAAI,IAAI+C,EAAG,CAAE,CACnD,SAASuqE,IAAIhzG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAgmE,GAAGpyC,EAAE,EAAE23E,GAAI33E,EAAE,CAAC,EAAE5zB,EAAE,CAAC,CAAC,CAAC,EAAS4zB,CAAC,CACnD,SAASw/E,IAAIjzG,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAG5zB,EAAEqzC,EAAImnC,EAAG64B,GAAIlzG,EAAE,EAAEH,CAAC,CAAC,CAAC,EAAEG,EAAE,CAAC,CAAC,CACnD,SAASmzG,IAAInzG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAuzG,GAAK,EAAQC,GAAIrzG,EAAEyzB,CAAC,GAAG4/E,GAAIrzG,EAAEH,CAAC,CAAC,CACnD,SAASyzG,GAAItzG,EAAE,CAAC,OAAAm+F,GAAG,EAAU,CAACn+F,EAAE,GAAGuzG,EAAG,GAAG,CAACvzG,EAAE,GAAGwzG,EAAG,CAAC,CACnD,SAASC,GAAIzzG,EAAE,CAAC,OAAO,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CACnD,SAAS0zG,GAAI1zG,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,GAAI,EAACulD,GAAIh5E,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAEA,CAAC,CACnD,SAAS8oC,GAAIv8D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAGyzB,EAAE,GAAOA,EAAEkgF,GAAIlgF,CAAC,CACnD,SAASyuE,IAAIliG,EAAEyzB,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,GAAGkgF,EAAG,CACnD,SAASC,GAAI5zG,EAAE,CAAC,KAAK,EAAE,IAAI+0E,GAAI,EAAE,EAAE,KAAK,GAAG8+B,GAAK,EAAC7zG,EAAE,CACnD,SAAS+9C,GAAI/9C,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG6zG,GAAG,EAAI7zG,GAAE8zG,IAAM,CACnD,SAASC,IAAI/zG,EAAE,CAAC,KAAK,EAAEg0G,IAAIh0G,EAAE,CAAC,EAAE,KAAK,EAAE,IAAImlF,GAAInlF,EAAE,CAAC,CAAC,CACnD,SAASi0G,IAAIj0G,EAAE,CAAC,KAAK,EAAEA,EAAEw0E,GAAI,KAAK,KAAKx0E,CAAC,EAAEqtE,IAAI,IAAI,CAAC,CACnD,SAAS6mC,IAAIl0G,EAAE,CAAC,KAAK,EAAEA,EAAE00E,GAAI,KAAK,KAAK10E,CAAC,EAAEutE,IAAI,IAAI,CAAC,CACnD,SAAS4mC,GAAIn0G,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEkhF,GAAI,KAAK,KAAKztD,EAAE5zB,EAAE,EAAE,CAAC,CAAC,CACnD,SAASkiF,GAAI/hF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAEguE,GAAI,KAAK,KAAKv6C,EAAE5zB,EAAE4pD,CAAC,CAAC,CACnD,SAAS2qD,GAAIp0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC60G,GAAI,KAAK,KAAKr0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,EAAE,CAAC,CACnD,SAAS80G,GAAIt0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC+0G,GAAI,KAAK,KAAKv0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,EAAE,CAAC,CACnD,SAAS2hF,EAAInhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACukB,GAAI,KAAK,KAAKhuE,EAAEyzB,EAAE5zB,CAAC,EAAE,KAAK,EAAE4pD,CAAC,CACnD,SAAS83B,GAAIvhF,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACwkB,GAAI,KAAK,KAAKjuE,EAAEyzB,EAAE5zB,CAAC,EAAE,KAAK,EAAE4pD,CAAC,CACnD,SAAS+qD,IAAIx0G,EAAE,CAACg5D,IAAI,KAAK,KAAKh5D,EAAE,EAAK,EAAE,KAAK,EAAE,EAAK,CACnD,SAASy0G,IAAGz0G,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEqyB,IAAG,KAAK,KAAKryB,EAAE,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CACpD,SAASihF,IAAG10G,EAAEyzB,EAAE,CAACyT,GAAE,EAAG2b,IAAG,KAAK,KAAK7iD,EAAE20G,GAAG,IAAIjhE,GAAIjgB,CAAC,CAAC,CAAC,CAAC,CACpD,SAASmhF,GAAI50G,EAAEyzB,EAAE,CAAC,OAAAgzC,GAAG,EAAgB,IAAIouC,GAAI70G,EAAEyzB,EAAE,CAAC,CAAC,CACnD,SAASqhF,GAAI90G,EAAEyzB,EAAE,CAAC,OAAAgzC,GAAG,EAAgB,IAAIouC,GAAI,EAAE70G,EAAEyzB,CAAC,CAAC,CACnD,SAASshF,IAAI/0G,EAAEyzB,EAAE,CAAC,OAAO4uD,GAAIriF,EAAE,OAAO,EAAEyzB,EAAE,MAAM,EAAEA,CAAC,CAAC,CACpD,SAAS2wB,GAAIpkD,EAAEyzB,EAAE,CAAC,OAAO2mC,GAAG3mC,CAAC,EAAEuhF,GAAIh1G,EAAEyzB,CAAC,EAAE,CAAC,CAACwhF,GAAIj1G,EAAE,EAAEyzB,CAAC,CAAC,CACpD,SAASyhF,GAAIl1G,EAAEyzB,EAAE,CAAQ,IAAP3C,GAAI2C,CAAC,EAAQzzB,EAAE,GAAI,GAAEyzB,EAAE,GAAGzzB,EAAE,GAAI,CAAA,CAAE,CACpD,SAASm1G,GAAIn1G,EAAEyzB,EAAE5zB,EAAE,CAACgkE,GAAG,EAAG,KAAK,EAAE7jE,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CACpD,SAASu1G,GAAIp1G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEA,EAAEQ,EAAE,EAAER,EAAE,EAAEi0B,EAAEj0B,EAAE,EAAEK,EAAEL,EAAE,EAAEiqD,CAAC,CACnD,SAAS4rD,GAAIr1G,EAAE,CAAC,IAAIyzB,EAAM,IAAJA,EAAEzzB,EAAQyzB,EAAE,GAAGA,EAAEA,EAAE,EAAE,OAAOA,CAAC,CACnD,SAAS6hF,GAAIt1G,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE8hF,GAAIv1G,CAAC,EAAEkyE,GAAIz+C,GAAG,IAAI,EAASA,CAAC,CACpD,SAAS+hF,IAAIx1G,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEgiF,IAAIz1G,CAAC,EAAEkyE,GAAIz+C,GAAG,IAAI,EAASA,CAAC,CACpD,SAASiiF,GAAG11G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,GAAE,EAAG6zE,GAAGpgD,EAAE5zB,CAAC,EAASA,EAAE4zB,CAAC,CACpD,SAASqgB,GAAI9zC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,EAAE5zB,EAAGG,EAAEH,CAAC,EAAE,EAAM,CACpD,SAAS81G,IAAI31G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,IAAIA,EAAEi0B,EAAEj0B,EAAEK,EAAE,EAAEL,EAAGQ,EAAER,CAAC,EAAEiqD,CAAE,CACpD,SAASmsD,EAAI51G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACgkD,IAAIh6E,EAAE5zB,EAAEG,EAAE,MAAM,EAAE21G,IAAI31G,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACpD,SAASosD,IAAI71G,EAAEyzB,EAAE5zB,EAAE,CAACkzG,GAAIlzG,EAAEG,EAAE,EAAE,EAAE,MAAM,EAAE81G,GAAI91G,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CACpD,SAASsiF,GAAI/1G,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE42C,GAAK,EAAC,KAAK,EAAExqE,CAAC,CACpD,SAAS2tG,GAAIxtG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEzpD,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAS4pD,CAAC,CACpD,SAASzgB,GAAIhpC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,GAAGyzB,EAAEzzB,CAAC,EAASH,GAAG,IAAI,CACpD,SAASm2G,IAAIh2G,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,OAAOloC,EAAE,CAAC,CACpD,SAASi2G,GAAIj2G,EAAEyzB,EAAE,CAAC,GAAGzzB,GAAG,KAAM,MAAM0lC,EAAI,IAAIsN,GAAIvf,CAAC,CAAC,CAAE,CACpD,SAASyiF,GAAIl2G,EAAEyzB,EAAE,CAAC,OAAIA,EAAuBgxB,GAAGzkD,EAAEyzB,CAAC,EAAnB,EAAoB,CACpD,SAAS0iF,GAAIn2G,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAu2G,IAAIp2G,EAAEyzB,EAAE,EAAE5zB,CAAC,EAAE0tG,GAAIvtG,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CACpD,SAASq2G,IAAIr2G,EAAE,CAAC,OAAAs2G,GAAIt2G,GAAG+7F,GAAG,EAAGz6B,GAAG,EAAGthE,EAAE,EAAE,GAAYA,CAAC,CACpD,SAASu2G,GAAIv2G,EAAE,CAAC,OAACA,EAAE,GAAGs2B,IAAIt2B,EAAEw2G,IAAIx2G,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CACpD,SAASy2G,GAAIz2G,EAAE,CAACk2E,GAAIl2E,EAAE,GAAG,EAAE,EAAE02G,GAAI12G,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,CACpD,SAASglC,GAAIhlC,EAAE,CAACA,EAAE,EAAE,IAAImgE,IAAIngE,CAAC,EAAEA,EAAE,EAAE,IAAIogE,IAAIpgE,CAAC,EAAE22G,GAAI32G,CAAC,CAAC,CACpD,SAAS42G,GAAI52G,EAAE,CAAC,OAAO,IAAI4qG,GAAI,KAAKiM,IAAI72G,EAAEA,EAAE,MAAM,CAAC,CAAC,CACpD,SAAS,GAAGA,EAAE,CAAC,OAAO,IAAI6wG,GAAG,IAAI5hC,GAAGjvE,EAAE,EAAE,OAAOA,EAAE,CAAC,CAAC,CAAC,CACpD,SAAS4iG,IAAG5iG,EAAE,CAAC,OAAOs/D,GAAG,CAACt/D,EAAE,EAAE82G,GAAI,CAAC92G,EAAE,EAAE82G,GAAI,CAAC92G,EAAE,EAAE+2G,EAAG,CAAC,CACpD,SAAS,GAAG/2G,EAAE,CAAC,OAAO,OAAOA,IAAIg3G,IAAK,OAAOh3G,IAAIi3G,EAAG,CACpD,SAASC,IAAIl3G,EAAE,CAAC,OAAOA,GAAGm3G,GAAIC,GAAIp3G,GAAGq3G,GAAI,OAAO,GAAGr3G,CAAC,CACpD,SAASs3G,IAAIt3G,EAAE,CAAC,OAAOA,GAAGm3G,GAAIC,GAAIp3G,GAAGq3G,GAAI,OAAO,GAAGr3G,CAAC,CACpD,SAASu3G,IAAIv3G,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,EAAE,IAAI,CACpD,SAASurC,IAAIh/D,EAAEyzB,EAAE,CAAC,OAAO84B,GAAIvsD,EAAEyzB,CAAC,EAAE,EAAE,GAAG84B,GAAIvsD,EAAEyzB,CAAC,EAAE,EAAE,EAAE,CAAC,CACrD,SAAS+jF,GAAIx3G,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO43G,IAAIz3G,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAEyvB,EAAGrjD,EAAE,GAAG,CAAC,CAAC,CACpD,SAAS63G,IAAG13G,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAGmsB,GAAG02B,GAAG/lG,EAAE,CAAC,CAAC,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAE,IAAI,CACrD,SAASojF,IAAI72G,EAAEyzB,EAAE,CAAC,OAAOkkF,IAAIlkF,EAAEzzB,EAAE,MAAM,EAAE,IAAIgmG,IAAIhmG,EAAEyzB,CAAC,CAAC,CACrD,SAASswD,GAAI/jF,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEm8D,GAAI,KAAK,KAAKn8D,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CACpD,SAASmkF,GAAI53G,EAAE,CAAC,KAAK,GAAG8wB,GAAI9wB,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEikF,EAAG,CACrD,SAASkpB,GAAIntG,EAAEyzB,EAAE,CAACgR,GAAI,KAAK,KAAK,CAAC,EAAE,KAAK,EAAEzkC,EAAE,KAAK,EAAEyzB,CAAC,CACpD,SAASokF,IAAI73G,EAAEyzB,EAAE,CAAC,OAACzzB,EAAE,EAAa63G,IAAI73G,EAAE,EAAEyzB,CAAC,EAApBmV,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAoBzzB,CAAC,CACrD,SAAS83G,IAAG93G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEsuD,GAAG/3G,EAAEyzB,CAAC,EAAEukF,GAAGh4G,EAAEyzB,EAAE5zB,CAAC,EAAS4pD,CAAC,CACrD,SAAS2rB,GAAIp1E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,MAAM,EAAEyzB,CAAC,EAAS0jB,GAAGt3C,EAAEG,CAAC,CAAC,CACrD,SAASwtD,IAAIxtD,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAE,EAAEA,EAAEh2B,EAAE,EAAEg2B,EAAGoc,GAAG7lE,EAAEypD,EAAE5pD,CAAC,CAAE,CACrD,SAASo4G,IAAIj4G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAMi0B,EAAE5zB,GAAG4pD,EAAEjqD,GAAG,EAAE04G,GAAIl4G,EAAEyzB,GAAG,CAAE,CACrD,SAAS0kF,IAAIn4G,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CACrD,SAAS2kF,GAAIp4G,EAAEyzB,EAAE,CAAC,OAAO4kF,GAAIr4G,EAAE,EAAEyzB,GAAG28C,GAAG,EAAGC,GAAG,GAAI,IAAI,CACrD,SAASioC,GAAIt4G,EAAEyzB,EAAE,CAACkoC,GAAI37D,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,IAAI,CACrD,SAASu4G,GAAIv4G,EAAEyzB,EAAE,CAACk3C,IAAI3qE,EAAEurE,EAAG93C,EAAE,GAAG,EAAEA,EAAEyvB,EAAGzvB,EAAE,IAAI,EAAE,GAAE,CAAE,CAAC,CACpD,SAAS+kF,GAAIx4G,EAAEyzB,EAAE,CAAC4xB,GAAIozD,GAAIz4G,EAAE,GAAI,EAAC,IAAI4W,GAAG,EAAE,IAAI+mB,IAAIlK,CAAC,CAAC,CAAC,CACrD,SAASilF,GAAI14G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACm5G,GAAI34G,EAAEkjD,EAAGgwB,GAAGz/C,EAAE,EAAE5zB,CAAC,EAAE,EAAE,EAAEA,EAAE4pD,EAAEjqD,CAAC,CAAC,CACrD,SAASo5G,GAAI54G,EAAE,CAACA,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI64G,IAAI74G,EAAEA,EAAE,CAAC,EAAE64G,IAAI74G,EAAEA,EAAE,CAAC,CAAC,CACrD,SAAS84G,IAAG94G,EAAE,CAACA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKglC,GAAIhlC,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,CACrD,SAAS+4G,GAAI/4G,EAAE,CAAC,OAAO+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CACrD,SAASg5G,IAAIh5G,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOqjD,EAAGljD,EAAE,EAAE,GAAGyzB,EAAEyvB,EAAGrjD,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CACrD,SAASo5G,KAAI,CAAC,OAAAzpE,GAAI,EAAQ0pE,EAAG9hE,EAAG+hE,IAAG,CAAC,EAAEC,EAAI,IAAI,EAAE,CAAC3pE,EAAE,CAAC,CAAC,CACrD,SAASytB,IAAIl9D,EAAE,CAAC,OAAAmmG,GAAG,EAAUE,GAAID,GAAIpmG,CAAC,CAAC,GAAGqmG,GAAIC,GAAItmG,CAAC,CAAC,CAAC,CACrD,SAASq5G,IAAIr5G,EAAE,CAACk/E,GAAI,KAAK,IAAI,EAAE,KAAK,EAAEl/E,EAAE4oC,EAAI5oC,EAAE,EAAE,IAAI,CAAC,CACrD,SAASs5G,GAAIt5G,EAAEyzB,EAAE,CAAC,KAAK,EAAE8lF,IAAIv5G,CAAC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,GAAIA,CAAC,CACrD,SAAS+lF,KAAK,CAACx4C,GAAI,KAAK,IAAI,EAAE,KAAK,EAAE,GAAK,KAAK,EAAE,EAAI,CACrD,SAASy4C,GAAIz5G,EAAE,CAAC,OAAQA,EAAE,GAAG,MAAM05G,GAAI15G,CAAC,EAAEA,EAAE,GAAG,MAAM,CACrD,SAAS25G,IAAI35G,EAAE,CAAC,OAAOurE,EAAGvrE,EAAE,EAAE,IAAIkjD,EAAGljD,EAAE,EAAE,EAAE,GAAGqwG,KAAM,CAAC,CACrD,SAASuJ,IAAI55G,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAE65G,GAAI75G,EAAEA,EAAE,EAAEyzB,CAAC,EAAEqmF,IAAI95G,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,CAAC,CACrD,SAASsmF,GAAI/5G,EAAEyzB,EAAE,CAAC,OAAAA,EAAEzzB,EAAE,GAAG,KAAKyzB,CAAC,EAASumF,IAAIh6G,EAAE,KAAKyzB,CAAC,CAAC,CACrD,SAAS+4E,GAAIxsG,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAE,IAAKyzB,EAAEwmF,IAAIj6G,EAAEyzB,CAAC,GAAUzzB,EAAE,GAAGyzB,CAAC,CAAC,CACrD,SAASymF,EAAIl6G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAE++C,GAAIxoG,EAAEyzB,CAAC,EAAE0mF,IAAIt6G,EAAE4pD,CAAC,EAASA,CAAC,CACtD,SAAS++C,GAAIxoG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAIu6G,GAAIv6G,EAAE,EAAEG,EAAEH,EAAE,EAAE4zB,EAAS5zB,CAAC,CACtD,SAAS21C,GAAGx1C,EAAE,CAAC,GAAGA,GAAG,KAAM,MAAM0lC,EAAI,IAAIoC,EAAG,EAAE,OAAO9nC,CAAC,CACtD,SAASq6G,GAAGr6G,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAE,IAAIyyB,IAAGzyB,CAAC,EAAI,CACtD,SAASs6G,IAAGt6G,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAE,IAAI+uE,GAAG/uE,CAAC,EAAI,CACtD,SAASu6G,GAAGv6G,EAAE,CAAC,IAAIyzB,EAAE,OAAOA,EAAEzzB,EAAE,EAAGyzB,IAAGzzB,EAAE,EAAE,IAAIwxB,GAAGxxB,CAAC,EAAI,CACtD,SAASw6G,GAAGx6G,EAAE,CAAC,IAAIyzB,EAAE,OAAOA,EAAEzzB,EAAE,EAAGyzB,IAAGzzB,EAAE,EAAE,IAAIwxB,GAAGxxB,CAAC,EAAI,CACtD,SAASy6G,GAAGz6G,EAAE,CAAC,IAAIyzB,EAAE,OAAOA,EAAEzzB,EAAE,EAAGyzB,IAAGzzB,EAAE,EAAE,IAAIuxB,GAAGvxB,CAAC,EAAI,CACtD,SAAS06G,IAAG16G,EAAE,CAAC,IAAIyzB,EAAE,OAAOA,EAAEzzB,EAAE,EAAGyzB,IAAGzzB,EAAE,EAAE,IAAI2xB,IAAG3xB,CAAC,EAAI,CACtD,SAASklE,GAAGllE,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAUyzB,IAAGzzB,EAAE,EAAE,IAAI8xB,GAAG9xB,CAAC,EAAI,CACtD,SAAS26G,IAAG36G,EAAE,CAAC,OAAAw1C,GAAGx1C,CAAC,EAASurE,EAAGvrE,EAAE,GAAG,EAAEkjD,EAAGljD,EAAE,GAAG,EAAEkxE,GAAIlxE,CAAC,CAAC,CACtD,SAAS46G,GAAG56G,EAAE,CAAC,OAAGurE,EAAGvrE,EAAE,GAAG,EAAUA,EAAS,IAAI66G,IAAG76G,CAAC,CAAC,CACtD,SAAS86G,IAAG96G,EAAEyzB,EAAE,CAAC,OAAAsnF,GAAGtnF,EAAEzzB,EAAE,EAAE,EAAE,EAAE,GAAE,CAAE,EAAS,IAAIgiD,IAAGhiD,EAAEyzB,CAAC,CAAC,CACtD,SAASunF,IAAIh7G,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAA4mE,KAAmB,IAAIw0C,IAAIj7G,EAAEyzB,EAAE5zB,CAAC,CAAC,CACrD,SAASgmE,GAAG7lE,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAs2E,IAAIt2E,GAAG,MAAMq7G,IAAGl7G,EAAEH,CAAC,CAAC,EAASG,EAAEyzB,CAAC,EAAE5zB,CAAC,CACtD,SAASs7G,GAAGn7G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,GAAI,EAAC+6G,GAAGtnF,EAAE5zB,CAAC,EAASA,EAAE,EAAE4zB,CAAC,CACtD,SAAS2nF,GAAIp7G,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,OAAO,aAAayzB,CAAC,EAASzzB,CAAC,CACtD,SAASq7G,GAAIr7G,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAG,OAAO,aAAayzB,CAAC,EAASzzB,CAAC,CACtD,SAASs7G,GAAIt7G,EAAEyzB,EAAE,CAAQ,IAAP3C,GAAI2C,CAAC,EAAQzzB,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,CAAE,CACtD,SAASkzG,GAAIlzG,EAAEyzB,EAAE,CAAC,OAAO2mC,GAAG3mC,CAAC,EAAE8nF,GAAIv7G,EAAEyzB,CAAC,EAAEqmC,GAAGm7C,GAAIj1G,EAAE,EAAEyzB,CAAC,CAAC,CAAC,CACtD,SAAS+nF,IAAIx7G,EAAEyzB,EAAE,CAAC,OAAA0yE,GAAG,EAAUnmG,GAAGomG,GAAI3yE,CAAC,EAAE6yE,GAAI7yE,CAAC,EAAE2yE,GAAI3yE,CAAC,CAAC,CACtD,SAASgoF,IAAIz7G,EAAEyzB,EAAE,CAACioF,GAAI17G,EAAE,IAAIgyC,GAAGve,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,CAAC,CAAC,CAAC,CACrD,SAASkoF,IAAI37G,EAAEyzB,EAAE,CAACioF,GAAI17G,EAAE,IAAIgyC,GAAGve,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,CAAC,CAAC,CAAC,CACrD,SAASmoF,IAAI57G,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,CAAC,CACtD,SAAS67G,GAAI77G,EAAE,CAAC,KAAK,EAAE,IAAIo7C,GAAI,KAAK,EAAE,IAAIvW,EAAI,KAAK,EAAE7kC,CAAC,CACtD,SAAS87G,IAAI97G,EAAE,CAACk/E,GAAI,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI9jC,GAAI,KAAK,EAAEp7C,CAAC,CACtD,SAASgyC,GAAGhyC,EAAE,CAAC,GAAGA,GAAG,KAAM,MAAM0lC,EAAI,IAAIoC,EAAG,EAAE,KAAK,EAAE9nC,CAAC,CACtD,SAAS+7G,IAAG/7G,EAAE,CAACwoC,GAAE,EAAG,KAAK,EAAE,IAAI3D,EAAI,KAAK,EAAE7kC,EAAEg8G,IAAG,KAAKh8G,CAAC,CAAC,CACtD,SAASi8G,IAAIj8G,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI4sC,GAAI,KAAK,EAAE,IAAIA,EAAG,CACtD,SAAS+X,KAAI,CAACA,IAAGjgD,EAAImgD,IAAG,IAAIzxB,GAAG,EAAK,EAAEwxB,IAAG,IAAIxxB,GAAG,EAAI,CAAC,CACrD,SAAS8T,IAAI,CAACA,GAAGxiC,EAAIoiC,GAAE,EAAGo1E,GAAG,IAAIC,IAAI9xC,GAAK,EAACA,GAAK,EAAC+b,GAAG,CAAE,CACtD,SAASh5B,IAAI,CAACA,GAAG1oD,EAAIoiC,GAAE,EAAGs1E,IAAG,IAAIjvD,IAAIkd,GAAK,EAACA,GAAK,EAACgyC,GAAG,CAAE,CACtD,SAASC,IAAK,CAACA,GAAI53G,EAAI63G,GAAIC,MAASC,GAAK,EAACC,IAAMC,IAAG,CAAE,CACrD,SAASC,IAAI58G,EAAEyzB,EAAE,CAAC,OAAA7H,GAAG,EAAUs3B,EAAG25D,GAAI78G,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,CAAC,CAAC,CACtD,SAASqpF,IAAI98G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAO5pD,GAAG,IAAIA,EAAE4pD,GAAG5pD,EAAEG,EAAE,GAAGyzB,GAAGzzB,EAAE,CAAC,CACtD,SAAS+8G,GAAI/8G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEuzD,GAAIh9G,EAAEyzB,EAAE5zB,CAAC,EAASo9G,GAAIj9G,EAAEypD,CAAC,CAAC,CACtD,SAASiyD,GAAI17G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,OAAO+3G,GAAG/3G,EAAEH,CAAC,EAAEm4G,GAAGh4G,EAAEH,EAAE4zB,CAAC,CAAC,CACtD,SAASypF,IAAIl9G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE,QAAQG,CAAC,EAAEH,EAAE,KAAK,QAAQ4zB,CAAC,CAAC,CACtD,SAAS0pF,IAAIn9G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,EAAEG,EAAE,EAAEH,EAAEG,EAAE,GAAI,EAACA,EAAE,GAAGA,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACtD,SAAS2pF,IAAIp9G,EAAEyzB,EAAE5zB,EAAE,CAACqjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE4wC,GAAI5wC,EAAE,EAAE,IAAIysE,GAAIlgG,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtD,SAASitE,GAAI1gG,EAAEyzB,EAAE5zB,EAAE,CAACmkC,GAAI,KAAK,KAAKvQ,CAAC,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAEH,CAAC,CACtD,SAASg1G,GAAI70G,EAAEyzB,EAAE5zB,EAAE,CAAC4kC,GAAI,KAAK,KAAKzkC,CAAC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CACtD,SAASw9G,GAAIr9G,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE+jC,GAAI,KAAK,KAAKtQ,CAAC,EAAE,KAAK,EAAE5zB,CAAC,CACtD,SAASy9G,IAAIt9G,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAEu9G,GAAI,KAAK,KAAK,EAAE9pF,EAAE,KAAK5zB,CAAC,CAAC,CACtD,SAAS2kG,IAAIxkG,EAAE,CAAC,KAAK,GAAG8wB,GAAI0sF,EAAG,EAAEA,IAAK,KAAK,EAAEx9G,EAAE,IAAI4tC,EAAG,CACtD,SAAS6vE,IAAGz9G,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACvD,SAAS09G,GAAI19G,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEA,EAAE,EAAE,EAAE,EAAEo5E,GAAIp5E,EAAE,EAAE,EAAE,IAAI,CAAC,CACvD,SAASslF,GAAItlF,EAAE,CAACk2E,GAAIl2E,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,CACvD,SAAS29G,GAAI39G,EAAE,CAAC,OAAO+C,EAAK,KAAK,KAAK/C,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CACtD,SAAS49G,GAAI59G,EAAEyzB,EAAE,CAAC,OAAOs/E,GAAIt/E,EAAEzzB,EAAE,EAAE,EAAE,MAAM,EAAEs7E,GAAIt7E,EAAE,EAAEyzB,CAAC,CAAC,CACvD,SAASoqF,GAAG79G,EAAEyzB,EAAE,CAAC,OAAOsmC,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,GAAGzzB,GAAG,MAAMkkD,GAAGlkD,EAAEyzB,CAAC,CAAC,CACvD,SAAS01E,IAAInpG,EAAE,CAAC,MAAG,IAAGA,EAAU,IAAI+kD,GAAW+4D,IAAI99G,EAAE,CAAC,CAAC,CACvD,SAAS+9G,IAAI/9G,EAAE,CAAC,OAAIg+G,GAAwBhJ,GAAIgJ,GAAIh+G,CAAC,EAAtB,EAAuB,CACtD,SAAS0gD,IAAI1gD,EAAE,CAAC,OAAGA,EAASA,EAAE,GAAI,EAAQ,CAACA,EAAE,GAAI,EAAC,GAAE,CAAE,CACtD,SAASi+G,GAAIj+G,EAAE,CAAC,MAAG,CAACA,EAAE,GAAKA,EAAE,EAAUA,EAAE,EAAE,EAASA,EAAE,CAAC,CACvD,SAASk+G,IAAIl+G,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAImwC,GAAGn+G,EAAE,CAAC,GAAUA,EAAE,CAAC,CACtD,SAASo+G,GAAIp+G,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAIqwC,GAAGr+G,EAAE,CAAC,GAAUA,EAAE,CAAC,CACtD,SAAS8wB,GAAI9wB,EAAE,CAAC,GAAGA,GAAG,KAAM,MAAM0lC,EAAI,IAAIoC,EAAG,EAAE,OAAO9nC,CAAC,CACvD,SAASs+G,GAAIt+G,EAAE,CAAKA,EAAE,EAAwBA,EAAE,EAAE,GAAE,GAA3BA,EAAE,EAAE,GAAKu+G,IAAIv+G,CAAC,EAAgB,CACvD,SAASu+C,GAAIv+C,EAAE,CAAKA,EAAE,EAAwBu+C,GAAIv+C,EAAE,CAAC,GAA5Bw+G,GAAIx+G,CAAC,EAAEA,EAAE,EAAE,GAAmB,CACvD,SAASy+G,IAAIz+G,EAAE,CAAC0+G,GAAG1+G,EAAE,CAAC,EAAEA,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAEnkE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CACvD,SAAS2+G,IAAI3+G,EAAEyzB,EAAE,CAAC,OAAOqrC,GAAIrrC,EAAE,EAAE,EAAE,OAAOzzB,EAAE,EAAE,EAAE,MAAM,CAAC,CACvD,SAAS4+G,IAAI5+G,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,EAAE47D,GAAI57D,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CACvD,SAASorF,IAAI7+G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,GAAGyzB,CAAC,EAAE5zB,GAAG,EAAEG,EAAE,GAAGH,CAAC,EAAEi/G,GAAI9+G,EAAEyzB,CAAC,CAAC,CACvD,SAASsrF,IAAI/+G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEzzB,EAAE,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAAE,EAASyzB,GAAG5zB,CAAC,CACvD,SAASm/G,IAAIh/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASi/G,IAAIj/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASk/G,IAAIl/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASm/G,IAAIn/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASo/G,IAAIp/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASq/G,IAAIr/G,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO7nC,EAAE,CAAC,CACvD,SAASs/G,GAAIt/G,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIkkC,GAAI,IAAI2J,EAAG,GAAU7tC,EAAE,CAAC,CACvD,SAASu/G,GAAIv/G,EAAE,CAAC,OAAAA,EAAE,GAAG,IAAIk2B,IAAIl2B,EAAEw/G,IAAIx/G,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CACvD,SAASy/G,GAAIz/G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE2oG,GAAI,GAAGxoG,CAAC,EAAEH,EAAE,EAAE4zB,EAAE5zB,EAAE,EAAE,EAASA,CAAC,CACxD,SAAS6/G,IAAI1/G,EAAEyzB,EAAE,CAACi7E,GAAIxrD,EAAGzvB,EAAE,EAAE,EAAE,EAAEzzB,CAAC,EAAEqkE,GAAI5wC,EAAE,EAAE,IAAI8G,GAAIv6B,CAAC,CAAC,CAAC,CACvD,SAAS2/G,IAAI3/G,EAAEyzB,EAAE,CAACyyC,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAIu9E,GAAIv9E,EAAEA,CAAC,GAAGA,EAAE,GAAGyzB,CAAC,CAAC,CACvD,SAASmsF,IAAI5/G,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE+jF,GAAI,KAAK,KAAK/jF,EAAEyzB,CAAC,EAAE45C,IAAI,IAAI,CAAC,CACvD,SAASwyC,IAAI7/G,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE8jF,GAAI,KAAK,KAAK9jF,EAAEyzB,CAAC,EAAE85C,IAAI,IAAI,CAAC,CACvD,SAASuyC,GAAG9/G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAChH,GAAG,KAAK,KAAKziD,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACxD,SAASs2D,GAAG//G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAChH,GAAG,KAAK,KAAKziD,EAAEH,CAAC,EAAE,KAAK,EAAE4zB,EAAE,KAAK,EAAEg2B,CAAC,CACxD,SAAS07C,IAAGnlG,EAAEyzB,EAAE,CAAC22C,IAAG,KAAK,KAAK41C,IAAIxqE,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAEA,CAAC,CACxD,SAASwsF,KAAK,CAACC,GAAI,KAAK,KAAKC,IAAKxjE,IAAG,EAAGC,IAAG,EAAGwjE,IAAI,IAAI,CAAC,CACvD,SAASC,KAAK,CAACH,GAAI,KAAK,KAAKI,IAAK9jE,GAAG,EAAGC,IAAG,EAAG8jE,IAAI,IAAI,CAAC,CACvD,SAAS13D,KAAK,CAACtG,GAAG,KAAK,KAAK,yBAAyB,CAAC,CAAC,CACvD,SAASi+D,IAAIxgH,EAAE,CAAC,OAAO,OAAO,aAAa,MAAM,KAAKA,CAAC,CAAC,CACxD,SAASw5D,GAAIx5D,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOu6D,GAAG3mC,CAAC,EAAE81B,GAAIvpD,EAAEyzB,EAAE5zB,CAAC,EAAE4gH,GAAIzgH,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxD,SAAS6gH,GAAI1gH,EAAE,CAAC,OAAAqqE,GAAG,EAAWrqE,EAAoBA,EAAE,GAAE,GAArB6zG,GAAG,EAAGA,GAAK,EAAC8M,IAAW,CACxD,SAASC,IAAI5gH,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAghH,GAAG,EAAUhhH,EAAE,GAAGG,EAAEkjD,EAAGzvB,EAAE,GAAI,EAAC,GAAG,CAAC,CAAC,CACvD,SAASqtF,IAAG9gH,EAAEyzB,EAAE,CAAC,OAAA6zE,GAAI,EAAQ,IAAIC,GAAG,IAAIx3B,IAAG/vE,CAAC,EAAE,IAAI8vE,IAAGr8C,CAAC,CAAC,CAAC,CACxD,SAASstF,IAAG/gH,EAAE,CAAC,OAAA60E,GAAG70E,EAAEghH,EAAG,EAASC,GAAGlW,GAAIA,GAAI,EAAE/qG,CAAC,EAAEA,EAAE,GAAG,CAAC,CAAC,CAAC,CACxD,SAASilG,IAAI,CAACA,GAAGvgG,EAAIw8G,IAAG,IAAIhxE,GAAGgpE,EAAG9hE,EAAG+pE,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC,CACxD,SAASC,IAAIrhH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAI43B,GAAI53B,EAAE,EAAE,GAAE,CAAE,GAAUA,EAAE,CAAC,CACxD,SAASshH,GAAIthH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIw2C,IAAIx2C,EAAE,EAAE,GAAE,CAAE,GAAUA,EAAE,CAAC,CACxD,SAASuhH,IAAIvhH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIq2C,GAAIr2C,EAAE,EAAE,GAAE,CAAE,GAAUA,EAAE,CAAC,CACxD,SAASwhH,GAAIxhH,EAAEyzB,EAAE,CAAC,KAAMA,KAAI,GAAGzzB,EAAEA,GAAG,GAAGA,EAAE,EAAE,EAAE,GAAG,OAAOA,CAAC,CACxD,SAASyhH,GAAIzhH,EAAEyzB,EAAE,CAAC,OAAOsmC,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,GAAGzzB,GAAG,MAAMkkD,GAAGlkD,EAAEyzB,CAAC,CAAC,CACxD,SAASiuF,IAAI1hH,EAAEyzB,EAAE,CAAC,OAAO28C,GAAK,EAACltB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAEzzB,CAAY,CACxD,SAAS2hH,IAAI3hH,EAAEyzB,EAAE,CAAC,OAAO28C,GAAK,EAACltB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAEzzB,CAAY,CACxD,SAAS68G,GAAI78G,EAAEyzB,EAAE,CAAC,OAAO44B,GAAIrsD,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CACxD,SAASmuF,IAAI5hH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACzpD,EAAE,EAAEw+D,GAAIx+D,EAAE,EAAE,EAAEyzB,CAAC,GAAG,GAAGg2B,GAAGoR,GAAI76D,EAAE,EAAEH,CAAC,CAAC,CACxD,SAASgiH,IAAI7hH,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,IAAIm+F,GAAG,EAAGoV,GAAK,GAAEuO,IAAI9hH,EAAEyzB,CAAC,EAAEsuF,IAAI/hH,EAAEyzB,CAAC,CAAC,CACxD,SAASykF,GAAIl4G,EAAEyzB,EAAE,CAAC,OAAAuuF,GAAIvuF,EAAEzzB,EAAE,MAAM,EAASA,EAAE,WAAWyzB,CAAC,CAAC,CACxD,SAASwuF,KAAK,CAACvxE,GAAG,KAAK,KAAK,2BAA2B,CAAC,CACxD,SAASwxE,GAAIliH,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACxD,SAASklC,IAAIllC,EAAE,CAACA,EAAE,EAAE,GAAMA,EAAE,EAAE,GAAMA,EAAE,EAAE,GAAMA,EAAE,EAAE,EAAK,CACvD,SAASmiH,GAAIniH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAA24D,IAAIpiH,EAAEyzB,EAAE5zB,EAAE,EAAK,EAAEwiH,GAAIriH,EAAEypD,CAAC,EAASzpD,CAAC,CACxD,SAASsiH,IAAItiH,EAAE,CAAC,OAAAA,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,GAAUA,CAAC,CACxD,SAASuiH,IAAIviH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAUA,EAAE,CAAC,CACxD,SAASyiH,IAAIziH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAUA,EAAE,CAAC,CACxD,SAASmiE,GAAIniE,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAUA,EAAE,CAAC,CACxD,SAAS2iH,GAAI3iH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAUA,EAAE,CAAC,CACxD,SAAS6iH,GAAI7iH,EAAE,CAAC,OAAAA,EAAE,GAAG8iH,IAAK1sF,IAAIp2B,EAAE+iH,IAAI/iH,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CACxD,SAASgjH,GAAIhjH,EAAE,CAAC,OAAAA,EAAE,GAAG8iH,IAAKzsF,IAAIr2B,EAAEijH,IAAIjjH,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CACxD,SAAS+oE,GAAG/oE,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAE,CAACyzB,IAAIzzB,EAAE,EAAEyzB,EAAE,IAAIhC,IAAGzxB,CAAC,GAAUyzB,CAAC,CACzD,SAASirF,GAAG1+G,EAAE,CAAC,IAAIyzB,EAAE,IAAIA,EAAEzzB,EAAE,GAAE,EAAGyzB,EAAE,GAAI,GAAGA,EAAE,GAAE,EAAGA,EAAE,GAAE,CAAG,CACzD,SAASyvF,GAAGljH,EAAE,CAAS,GAAR+6D,GAAG/6D,EAAE,CAAC,EAAKA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CACzD,SAASm7E,GAAGnjH,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,IAAIwxB,GAAI,KAAK,CAAC,CAAC,CACzD,SAASm+D,GAAIpjH,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEwjH,GAAI,KAAK,EAAErjH,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CACzD,SAASyjH,IAAItjH,EAAEyzB,EAAE,CAAC,KAAK,GAAG3C,GAAI9wB,CAAC,EAAEA,GAAG,KAAK,EAAE,MAAM,KAAK,EAAEyzB,CAAC,CACzD,SAAS8vF,IAAIvjH,EAAEyzB,EAAE,CAAC+vF,IAAIxjH,EAAEkzC,EAAIuwE,GAAIhwF,EAAE,GAAG,CAAC,EAAEyf,EAAIuwE,GAAIhwF,EAAE,GAAG,CAAC,CAAC,CAAC,CACxD,SAASiwF,IAAI1jH,EAAEyzB,EAAE,CAAC+vF,IAAIxjH,EAAEkzC,EAAIuwE,GAAIhwF,EAAE,GAAG,CAAC,EAAEyf,EAAIuwE,GAAIhwF,EAAE,GAAG,CAAC,CAAC,CAAC,CACxD,SAASkwF,GAAI3jH,EAAEyzB,EAAE,CAAC,OAAA+qF,GAAIx+G,CAAC,EAAS,IAAI4qG,GAAI5qG,EAAE,IAAI4jH,GAAInwF,EAAEzzB,EAAE,CAAC,CAAC,CAAC,CACzD,SAASy4G,GAAIz4G,EAAEyzB,EAAE,CAAC,OAAA+qF,GAAIx+G,CAAC,EAAS,IAAI4qG,GAAI5qG,EAAE,IAAI6jH,GAAIpwF,EAAEzzB,EAAE,CAAC,CAAC,CAAC,CACzD,SAAS8jH,GAAI9jH,EAAEyzB,EAAE,CAAC,OAAA+qF,GAAIx+G,CAAC,EAAS,IAAI06E,GAAI16E,EAAE,IAAI+jH,IAAItwF,EAAEzzB,EAAE,CAAC,CAAC,CAAC,CACzD,SAASgkH,GAAIhkH,EAAEyzB,EAAE,CAAC,OAAA+qF,GAAIx+G,CAAC,EAAS,IAAI26E,GAAI36E,EAAE,IAAIikH,IAAIxwF,EAAEzzB,EAAE,CAAC,CAAC,CAAC,CACzD,SAASkkH,IAAGlkH,EAAEyzB,EAAE,CAAC,OAAO,IAAI0wF,IAAGjhE,EAAG1N,GAAGx1C,CAAC,EAAE,EAAE,EAAEkjD,EAAG1N,GAAG/hB,CAAC,EAAE,EAAE,CAAC,CAAC,CACzD,SAAS2wF,IAAIpkH,EAAEyzB,EAAE,CAAC,OAAAm0B,GAAG,EAAUgX,IAAK9tC,GAAI9wB,CAAC,EAAEA,IAAI8wB,GAAI2C,CAAC,EAAEA,EAAC,CAAE,CACzD,SAAS4wF,KAAK,CAAC,OAAA19D,GAAK,EAAQuyD,EAAG9hE,EAAGktE,IAAG,CAAC,EAAElL,EAAI,IAAI,EAAE,CAACxyD,EAAG,CAAC,CAAC,CACxD,SAAS29D,KAAK,CAAC,OAAAl8D,GAAK,EAAQ6wD,EAAG9hE,EAAGotE,IAAG,CAAC,EAAEpL,EAAI,IAAI,EAAE,CAAC9wD,EAAG,CAAC,CAAC,CACxD,SAASm8D,KAAK,CAAC,OAAAj8D,GAAK,EAAQ0wD,EAAG9hE,EAAGstE,IAAG,CAAC,EAAEtL,EAAI,IAAI,EAAE,CAAC3wD,EAAG,CAAC,CAAC,CACxD,SAASk8D,KAAK,CAAC,OAAAh8D,GAAK,EAAQuwD,EAAG9hE,EAAGwtE,IAAG,CAAC,EAAExL,EAAI,IAAI,EAAE,CAACxwD,EAAG,CAAC,CAAC,CACxD,SAASrO,IAAIv6C,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAEo/B,EAAG4gD,GAAGr6C,EAAI,GAAGxqE,EAAE,EAAE,CAAC,CAAC,CACzD,SAAS8kH,GAAI9kH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASs7D,GAAI/kH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASu7D,GAAIhlH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASw7D,IAAIjlH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAAS2X,GAAIphE,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASy7D,IAAIllH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAAS07D,GAAInlH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAClH,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAAS27D,IAAIplH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAAS47D,IAAIrlH,EAAEyzB,EAAE5zB,EAAE,CAACylH,IAAItlH,EAAE,EAAEH,CAAC,EAAE0lH,IAAI1lH,CAAC,EAAE2lH,IAAIxlH,EAAE,EAAEH,CAAC,EAAE4lH,IAAIhyF,EAAE5zB,CAAC,CAAC,CACzD,SAAS6lH,GAAI1lH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAEk8D,GAAI3lH,CAAC,EAAER,EAAEi0B,EAAE,GAAG5zB,EAAE4pD,CAAC,EAASjqD,CAAC,CACzD,SAASomH,IAAI5lH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEG,EAAEyzB,EAAEg2B,EAAE+V,GAAG3/D,CAAC,EAAEA,EAAE4pD,GAAG,EAAEA,EAASA,CAAC,CACzD,SAASo8D,GAAI7lH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAG4zB,EAAE,IAAI2R,GAAI3R,GAAGqyF,GAAIjmH,EAAEG,CAAC,EAASH,CAAC,CACzD,SAASkmH,GAAI/lH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAG4zB,EAAE,IAAI2R,GAAI3R,GAAGuyF,GAAInmH,EAAEG,CAAC,EAASH,CAAC,CACzD,SAASomH,IAAIjmH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqzG,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAEyyF,GAAIzyF,EAAE5zB,CAAC,EAAS,IAAI,CACzD,SAASqnG,GAAIlnG,EAAE,CAAC,IAAIyzB,EAAW,OAATA,EAAE0yF,IAAInmH,CAAC,EAAKyzB,GAAmB,IAAI,CACzD,SAAS2yF,IAAIpmH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIklC,GAAGrmH,EAAE,GAAG,CAAC,GAAUA,EAAE,CAAC,CACzD,SAASsmH,IAAItmH,EAAE,CAAC,OAAOA,GAAG,MAAM2jD,GAAI4iE,GAAIvmH,EAAE,YAAW,CAAE,CAAC,CACxD,SAASwmH,IAAIxmH,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI0tC,GAAItsG,CAAC,EAAEqsG,GAAIrsG,CAAC,EAAEssG,GAAI74E,CAAC,EAAE44E,GAAI54E,CAAC,CAAC,CAAC,CACzD,SAASgzF,IAAIzmH,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI0tC,GAAItsG,CAAC,EAAEqsG,GAAIrsG,CAAC,EAAEssG,GAAI74E,CAAC,EAAE44E,GAAI54E,CAAC,CAAC,CAAC,CACzD,SAASizF,IAAI1mH,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAC,CACzD,SAASkzF,IAAI3mH,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAC,CACzD,SAASmzF,IAAI5mH,EAAEyzB,EAAE5zB,EAAE,CAACA,EAAE,EAAEkjE,GAAI/iE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAE8iE,GAAI9iE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAE,CAAC,CAAC,CACzD,SAAS6mH,IAAI7mH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASq9D,IAAI9mH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASs9D,GAAI/mH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASu9D,IAAIhnH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACzD,SAASw9D,IAAIjnH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC2d,KAAM8/C,IAAI,KAAK,KAAKzzF,EAAE5zB,EAAE4pD,CAAC,EAAE,KAAK,EAAEzpD,CAAC,CACzD,SAASmnH,IAAInnH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC2d,KAAM8/C,IAAI,KAAK,KAAKzzF,EAAE5zB,EAAE4pD,CAAC,EAAE,KAAK,EAAEzpD,CAAC,CACzD,SAASonH,IAAGpnH,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEy6E,IAAG,KAAK,KAAKz6E,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAAC,CAC1D,SAASunB,GAAIh7C,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAEA,EAAE,EAAE,GAAGqnH,IAAI,IAAI,CAAC,CACzD,SAASC,IAAItnH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEypD,EAAEgT,GAAI,KAAK,KAAKhpC,EAAE5zB,CAAC,CAAC,CAC1D,SAAS81E,IAAI31E,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAASA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,CAAC,CAC1D,SAASolD,GAAIplD,EAAE,CAACA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAE,CAAC,CAC1D,SAASunH,GAAIvnH,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAASzzB,CAAC,CAC1D,SAAS2wE,GAAG3wE,EAAE,CAAC,OAAGA,EAAE,IAAGA,EAAE,IAAIwnH,KAAKxnH,EAAE,KAAKA,EAAE,EAAE,MAAYA,CAAC,CAC1D,SAASynH,IAAGznH,EAAE,CAAC,OAAAm7D,GAAIn7D,GAAG,MAAM,GAAGA,CAAC,GAAKA,EAAE,KAAKyE,EAAI,EAASzE,CAAC,CAC1D,SAAS0nH,IAAI1nH,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI8iF,GAAI,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE3nH,CAAC,CAC1D,SAASmmG,IAAK,CAACA,GAAIzhG,EAAIkjH,GAAI,IAAI/iF,EAAIgjF,GAAI,IAAI9iF,GAAI+iF,GAAI,IAAIjjF,CAAG,CAC1D,SAASwlC,IAAK,CAACA,GAAI3lE,EAAI0hF,GAAI,IAAI9hF,IAAIinG,GAAI,IAAI/mG,IAAI63G,GAAI,IAAIh4G,GAAG,CAC1D,SAASwvG,IAAK,CAACA,GAAInvG,EAAIovG,IAAI,IAAI7uG,GAAI8iH,IAAI,IAAI9iH,GAAI07G,IAAI,IAAIz7G,GAAG,CAC1D,SAAS8iH,IAAK,CAACA,GAAItjH,EAAIujH,IAAI,IAAIhhH,IAAIihH,IAAI,IAAIpZ,GAAIqZ,IAAI,IAAIjhH,GAAG,CAC1D,SAASkhH,KAAK,CAAIC,KAAK,MAAK1iC,IAAIC,GAAIA,GAAI,IAAI5iF,GAAGqlH,IAAI,GAAE,EAAEA,GAAG,CAC1D,SAASC,GAAGtoH,EAAE,CAAC,IAAIyzB,EAAE,OAAOA,EAAEzzB,EAAE,EAAGyzB,IAAGzzB,EAAE,EAAE,IAAIwiD,GAAGxiD,EAAEA,EAAE,CAAC,EAAI,CAC1D,SAASuoH,IAAIvoH,EAAE,CAAC,OAAOwoH,GAAIxoH,CAAC,GAAGizC,GAAImnC,GAAGquC,GAAIzoH,GAAGstB,GAAK,EAACo7F,GAAG,CAAE,CAAC,CAAC,CAC1D,SAASC,IAAI3oH,EAAEyzB,EAAE,CAAC,OAAO+iD,GAAGx2E,EAAEkjD,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGu7F,GAAK,EAAC,EAAE,EAAEp1F,CAAC,CAAC,CAC1D,SAASq1F,IAAI9oH,EAAEyzB,EAAE,CAAC,OAAOs1F,GAAI/oH,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,EAAEs1F,GAAIt1F,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,CAAC,CAAC,CAC1D,SAASgpH,IAAIhpH,EAAEyzB,EAAE,CAAMzzB,EAAE,GAAG,CAACA,EAAE,EAAE,IAAGulC,IAAIvlC,EAAE,EAAEyzB,CAAC,EAAEu1F,IAAIhpH,EAAE,EAAEyzB,CAAC,EAAE,CAC1D,SAASw1F,IAAIjpH,EAAEyzB,EAAE,CAAMzzB,EAAE,GAAG,CAACA,EAAE,EAAE,IAAGulC,IAAIvlC,EAAE,EAAEyzB,CAAC,EAAEw1F,IAAIjpH,EAAE,EAAEyzB,CAAC,EAAE,CAC1D,SAASy1F,IAAIlpH,EAAEyzB,EAAE,CAAC,MAAO,CAACmrC,GAAI0tC,GAAItsG,CAAC,EAAEqsG,GAAIrsG,CAAC,EAAEssG,GAAI74E,CAAC,EAAE44E,GAAI54E,CAAC,CAAC,CAAC,CAC1D,SAAS01F,IAAInpH,EAAE,CAAC,OAAOkjD,EAAGljD,EAAE,GAAI,EAAC,GAAG,EAAE,GAAI,EAAC,IAAIkxE,GAAIlxE,EAAE,GAAE,CAAE,CAAC,CAC1D,SAASopH,IAAIppH,EAAE,CAAC0gE,GAAK,EAAC,IAAIjtC,EAAEA,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAC1D,SAAS41F,IAAIrpH,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAmoD,GAAK,EAAQshE,IAAIpmE,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE5zB,CAAC,CAAC,CAC1D,SAAS0pH,IAAIvpH,EAAEyzB,EAAE,CAAC,OAAA+1F,GAAGxpH,CAAC,EAAEwpH,GAAG/1F,CAAC,EAASoe,IAAGqR,EAAGljD,EAAE,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,CAAC,CAC1D,SAASg2F,IAAIzpH,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKyzB,GAAG5zB,GAAU6pH,IAAI1pH,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC1D,SAAS8pH,IAAI3pH,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKyzB,GAAG5zB,GAAU+pH,IAAI5pH,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC1D,SAASgqH,GAAI7pH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEojB,GAAIhtE,CAAC,EAAEL,EAAE,IAAI6zB,GAAGo2B,CAAC,EAAE67C,GAAGtlG,EAAEyzB,EAAEj0B,CAAC,CAAC,CAC1D,SAASsqH,GAAI9pH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACk1G,GAAI,KAAK,KAAKv0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAG,EAAE,CAAC,CAC1D,SAAS0qH,IAAI/pH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACsP,GAAI,KAAK,KAAKtlC,EAAE5zB,CAAC,EAAE,KAAK,EAAEG,EAAE,KAAK,EAAEypD,CAAC,CAC1D,SAASugE,GAAIhqH,EAAEyzB,EAAE,CAAC,IAAImZ,GAAI,KAAK,EAAE,IAAID,GAAI,KAAK,EAAE3sC,EAAE,KAAK,EAAEyzB,CAAC,CAC1D,SAASw2F,IAAIjqH,EAAEyzB,EAAE,CAAC,OAAAyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACC,GAAG,EAAG,EAAE,EAAE,GAAG12F,CAAC,EAASA,CAAC,CAC1D,SAAS22F,GAAGpqH,EAAEyzB,EAAE,CAAC,GAAGzzB,GAAG,KAAM,MAAM0lC,EAAI,IAAIsN,GAAIvf,CAAC,CAAC,EAAE,OAAOzzB,CAAC,CAC3D,SAASqqH,GAAIrqH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAImpC,GAAGtqH,EAAE,GAAG,EAAE,GAAUA,EAAE,CAAC,CAC1D,SAASohD,EAAIphD,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAUA,EAAE,CAAC,CAC1D,SAASwqH,GAAIxqH,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAUA,EAAE,CAAC,CAC1D,SAAS0qH,GAAG1qH,EAAE,CAAC,OAAOurE,EAAGvrE,EAAE,EAAE,EAAE,IAAIwqG,GAAItnD,EAAGljD,EAAE,EAAE,CAAC,EAAEyhG,IAAGzhG,EAAE,GAAE,CAAE,CAAC,CAC3D,SAAS2qH,IAAG3qH,EAAE,CAAC,OAAO,IAAI4uE,IAAG5uE,EAAEA,EAAE,EAAE,GAAE,EAAG,GAAI,EAACA,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,CAAC,CAC3D,SAAS4qH,IAAG5qH,EAAE,CAAC,OAAO,IAAI6uE,IAAG7uE,EAAEA,EAAE,EAAE,GAAE,EAAG,GAAI,EAACA,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,CAAC,CAC3D,SAAS6qH,GAAG7qH,EAAE,CAAC,OAASA,GAAKA,EAAE,SAASA,EAAE,SAAU,EAACyxE,GAAIzxE,CAAC,CAAC,CAC3D,SAASg1G,GAAIh1G,EAAEyzB,EAAE,CAAC,OAAOA,GAAG,KAAK,CAAC,CAACwhF,GAAIj1G,EAAE,EAAE,IAAI,EAAE+tG,IAAI/tG,EAAE,EAAEyzB,CAAC,CAAC,CAC3D,SAASq3F,IAAG9qH,EAAE,CAAC,OAAAw1C,GAAGx1C,CAAC,EAAS+qH,IAAG,IAAIla,GAAGphC,GAAGzvE,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,CAAC,CAAC,CAC3D,SAAS0nH,GAAIhrH,EAAE,CAAC,OAAAqqE,GAAG,EAAUkB,EAAGvrE,EAAE,EAAE,EAAE,IAAIs2C,GAAIt2C,CAAC,EAAE,IAAIu2C,GAAIv2C,CAAC,CAAC,CAC3D,SAASirH,IAAIjrH,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAGG,EAAE,EAAUA,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAS,EAAK,CAC3D,SAASqrH,IAAIlrH,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEw+D,GAAIx+D,EAAE,EAAE,EAAEyzB,CAAC,EAAE,GAAGonC,GAAI76D,EAAE,EAAEyzB,EAAE,CAAC,EAASzzB,CAAC,CAC3D,SAASmrH,IAAInrH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEsrE,GAAInrE,EAAE,EAAEyzB,CAAC,EAAE5zB,IAAI4zB,EAAE,EAAE,MAAa5zB,CAAC,CAC3D,SAAS82G,GAAI32G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAEA,EAAEG,EAAEyzB,EAAE5zB,EAAE,UAAU,EAAEA,EAAE,UAAU4zB,EAAE,CAAC,CAC3D,SAAS23F,GAAGprH,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEA,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK,KAAK,EAAE,CAAC,CAC3D,SAASqrH,IAAIrrH,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI89C,GAAIoF,EAAG1N,GAAG,IAAIhsC,GAAG,EAAE,EAAE,CAAC,CAAC,CAC3D,SAASulG,IAAI/uG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI89C,GAAIoF,EAAG1N,GAAG,IAAIruC,GAAG,EAAE,EAAE,CAAC,CAAC,CAC3D,SAAS0nG,IAAI7uG,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI89C,GAAIoF,EAAG1N,GAAG,IAAIpqC,GAAG,EAAE,EAAE,CAAC,CAAC,CAC3D,SAASkgH,KAAK,CAAC,KAAK,EAAE,IAAIxgF,GAAI,KAAK,EAAE,IAAIe,IAAI,KAAK,EAAE,IAAIlgC,GAAG,CAC3D,SAAS4/G,IAAK,CAAC,KAAK,EAAE,IAAI5+E,GAAI,KAAK,GAAGkoC,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,EAAE,CAC3D,SAAS5oC,KAAK,CAAC,KAAK,EAAE,IAAIvC,GAAI,KAAK,EAAE,IAAIgD,GAAI,KAAK,EAAE,IAAIlB,EAAG,CAC3D,SAAS8/E,GAAIxrH,EAAE,CAAC,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,CAC3D,SAASmkH,IAAGnkH,EAAEyzB,EAAE,CAACgb,IAAG,KAAK,KAAK,IAAIsP,GAAI/9C,CAAC,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC3D,SAASg4F,KAAK,CAACC,GAAI,KAAK,IAAIr7F,EAAG,EAAE,KAAK,IAAIisF,GAAK,EAACC,IAAK//D,GAAG,CAAE,CAC1D,SAASmvE,IAAI3rH,EAAE,CAAC4rH,GAAI5rH,EAAE,2BAA2B,CAAC,EAAE6rH,GAAI7rH,CAAC,CAAC,CAC1D,SAAS8rH,IAAG9rH,EAAE,CAACy2C,KAAK1zC,EAAK,WAAW,UAAU,CAAC,MAAM/C,CAAC,EAAE,CAAC,CAAC,CAC1D,SAAS+rH,GAAI/rH,EAAE,CAAC,OAAIA,EAAE,IAAGgsH,GAAIhsH,CAAC,EAAEA,EAAE,EAAE,IAAIs9E,IAAIt9E,EAAEA,CAAC,GAASA,EAAE,CAAC,CAC3D,SAASisH,GAAIjsH,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEyvB,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAUyzB,GAAEzzB,EAAE,GAAI,CAAE,CAC3D,SAASksH,IAAIlsH,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,GAAG,GAAG4uD,GAAIriF,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE,GAAE,CAAE,CAAC,CAC3D,SAAS04F,IAAInsH,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAEyzB,EAAE,GAAI,EAAC,GAAE,EAAGyvB,EAAGzvB,EAAE,GAAE,EAAG,EAAE,EAAE,IAAI,CAC3D,SAAS24F,IAAIpsH,EAAE,CAAC,OAAOA,EAAE,IAAI2qF,GAAG,EAAG0hC,KAAM31C,GAAI12E,GAAGkqH,EAAK,EAACoC,GAAG,CAAE,CAC3D,SAASnQ,GAAGn8G,EAAE,CAAC,KAAK,GAAGqqE,GAAK,EAACkB,EAAGvrE,EAAE,EAAE,EAAE,IAAIs2C,GAAIt2C,CAAC,EAAE,IAAIu2C,GAAIv2C,CAAC,EAAE,CAC5D,SAASonC,IAAI,CAACA,GAAG1iC,EAAI,IAAI1E,EAAEyzB,EAAEA,EAAE,CAAC84F,IAAE,EAAGvsH,EAAE,IAAI2D,GAAG0jC,GAAG5T,EAAE,IAAItvB,IAAGnE,CAAC,CAC3D,SAASwsH,GAAGxsH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEm8C,GAAIh8C,EAAE,EAAE,EAASyzB,GAAG,KAAK5zB,EAAEA,EAAE,KAAK4zB,CAAC,CAC5D,SAASg5F,IAAIzsH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,GAAGyzB,CAAC,EAAEi5F,IAAI7sH,EAAEG,EAAE,EAAE,GAAI,CAAA,EAASH,CAAC,CAC5D,SAAS4tE,GAAIztE,EAAEyzB,EAAE,CAAC,GAAGzzB,GAAG,KAAM,MAAM0lC,EAAI,IAAIsN,GAAIvf,CAAC,CAAC,EAAE,OAAOzzB,CAAC,CAC5D,SAASi1G,GAAIj1G,EAAEyzB,EAAE,CAAC,OAAOk5F,IAAI3sH,EAAEyzB,EAAEm5F,IAAI5sH,EAAEyzB,GAAG,KAAK,EAAEzzB,EAAE,EAAE,GAAGyzB,CAAC,CAAC,CAAC,CAAC,CAC5D,SAASo5F,IAAI7sH,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,GAAG,GAAGwiF,GAAIriF,EAAE,OAAOH,EAAE4zB,EAAE,MAAM,EAAEA,CAAC,CAAC,CAC5D,SAASq5F,GAAI9sH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,OAAO,IAAIC,GAAIhtH,EAAE,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,CAAC,CAAC,CAC3D,SAASE,IAAIjtH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,KAAK,EAAEW,EAAEktH,GAAI,KAAK,KAAKz5F,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,CAAC,CAAC,CAC3D,SAAS8tH,IAAIntH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,KAAK,EAAEW,EAAEktH,GAAI,KAAK,KAAKz5F,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,CAAC,CAAC,CAC3D,SAAS+tH,IAAIptH,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEk5G,EAAG9hE,EAAGi2E,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAAC75F,CAAC,CAAC,CAAC,CAC3D,SAAS85F,GAAIvtH,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEkkE,GAAG,KAAK,EAAEspD,IAAI/5F,CAAC,EAAE,KAAK,EAAEA,CAAC,CAC3D,SAASg6F,IAAIztH,EAAEyzB,EAAE,CAACmY,GAAI,KAAK,IAAI,EAAE8hF,GAAI,IAAI,EAAE,KAAK,EAAE1tH,EAAE,KAAK,EAAEyzB,CAAC,CAC5D,SAASk6F,GAAI3tH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACoc,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAE4pD,CAAC,EAAEoc,GAAG7lE,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,EAAEg2B,CAAC,CAAC,CAC3D,SAASmkE,GAAI5tH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACoc,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAE5zB,CAAC,EAAEgmE,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAEg2B,CAAC,CAAC,CAC3D,SAASokE,KAAK,CAAC,OAAAr6B,GAAG,EAAU0lB,EAAG9hE,EAAG02E,IAAG,CAAC,EAAE1U,EAAI,IAAI,EAAE,CAAC2U,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAA7+B,GAAG,EAAU8pB,EAAG9hE,EAAG82E,IAAG,CAAC,EAAE9U,EAAI,IAAI,EAAE,CAAC+U,IAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAA7/B,GAAG,EAAU0qB,EAAG9hE,EAAGk3E,IAAG,CAAC,EAAElV,EAAI,IAAI,EAAE,CAACmV,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAzhC,GAAG,EAAUksB,EAAG9hE,EAAGs3E,IAAG,CAAC,EAAEtV,EAAI,IAAI,EAAE,CAACuV,IAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAj+B,GAAG,EAAUsoB,EAAG9hE,EAAG03E,IAAG,CAAC,EAAE1V,EAAI,IAAI,EAAE,CAAC2V,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAr8B,GAAG,EAAUsmB,EAAG9hE,EAAG83E,IAAG,CAAC,EAAE9V,EAAI,IAAI,EAAE,CAAC+V,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAz6B,GAAG,EAAUskB,EAAG9hE,EAAGk4E,IAAG,CAAC,EAAElW,EAAI,IAAI,EAAE,CAACmW,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAj6B,GAAG,EAAU0jB,EAAG9hE,EAAGs4E,IAAG,CAAC,EAAEtW,EAAI,IAAI,EAAE,CAACuW,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAA76B,GAAG,EAAUkkB,EAAG9hE,EAAG04E,IAAG,CAAC,EAAE1W,EAAI,IAAI,EAAE,CAAC2W,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAA76B,GAAG,EAAU8jB,EAAG9hE,EAAG84E,IAAG,CAAC,EAAE9W,EAAI,IAAI,EAAE,CAAC+W,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAz6B,GAAG,EAAUsjB,EAAG9hE,EAAGk5E,IAAG,CAAC,EAAElX,EAAI,IAAI,EAAE,CAACmX,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAz5B,GAAG,EAAUkiB,EAAG9hE,EAAGs5E,IAAG,CAAC,EAAEtX,EAAI,IAAI,EAAE,CAACuX,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAr6B,GAAG,EAAU0iB,EAAG9hE,EAAG05E,IAAG,CAAC,EAAE1X,EAAI,IAAI,EAAE,CAAC2X,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAr6B,GAAG,EAAUsiB,EAAG9hE,EAAGgI,IAAG,CAAC,EAAEg6D,EAAI,IAAI,EAAE,CAAC8X,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAA55B,GAAG,EAAU0hB,EAAG9hE,EAAGi6E,IAAG,CAAC,EAAEjY,EAAI,IAAI,EAAE,CAACkY,IAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAn3B,GAAG,EAAU6e,EAAG9hE,EAAGq6E,IAAG,CAAC,EAAErY,EAAI,IAAI,EAAE,CAACsY,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAl4B,GAAG,EAAUwf,EAAG9hE,EAAGy6E,IAAG,CAAC,EAAEzY,EAAI,IAAI,EAAE,CAAC0Y,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAnrC,GAAG,EAAUqyB,EAAG9hE,EAAG66E,IAAG,CAAC,EAAE7Y,EAAI,IAAI,EAAE,CAAC8Y,GAAIC,GAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAnrC,GAAG,EAAUiyB,EAAG9hE,EAAGi7E,IAAG,CAAC,EAAEjZ,EAAI,IAAI,EAAE,CAACkZ,IAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAlpC,GAAG,EAAU4vB,EAAG9hE,EAAGq7E,IAAG,CAAC,EAAErZ,EAAI,IAAI,EAAE,CAACsZ,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,KAAK,CAAC,OAAAj3B,GAAG,EAAUud,EAAG9hE,EAAGy7E,IAAG,CAAC,EAAEzZ,EAAI,IAAI,EAAE,CAAC0Z,GAAIC,EAAG,CAAC,CAAC,CAC5D,SAASC,GAAIhzH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAO5pD,GAAG,EAAEG,EAAE,GAAGyzB,EAAE5zB,EAAE4pD,CAAC,EAAEzpD,EAAE,GAAG,KAAKH,EAAE4pD,CAAC,CAAC,CAC5D,SAASwpE,GAAIjzH,EAAE,CAAC,OAAGA,EAAE,EAAE,GAAG,EAAUA,EAAE,EAAE,GAAI,EAAQ2jG,GAAI3jG,EAAE,CAAC,CAAC,CAC5D,SAASkzH,IAAIlzH,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,CAAC,CAC5D,SAASmzH,IAAInzH,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,CAAC,CAC5D,SAASozH,GAAIpzH,EAAE,CAAC,OAAA+5D,EAAG/5D,EAAE,CAAC,IAAI+5D,GAAIrpC,GAAG,EAAG2iG,GAAK,GAAEC,IAAItzH,CAAC,EAASA,EAAE,CAAC,CAC5D,SAAS66G,IAAG76G,EAAE,CAAC,KAAK,EAAEkjD,EAAG1N,GAAGx1C,CAAC,EAAE,GAAG,EAAE,KAAK,GAAGqqE,GAAK,EAAC,IAAIqG,GAAI1wE,CAAC,EAAE,CAC7D,SAASuzH,IAAIvzH,EAAEyzB,EAAE,CAACwB,IAAI,KAAK,IAAImgC,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEk1B,IAAI,KAAK0sE,GAAGnuE,CAAC,CAAC,CAAC,CAC5D,SAASmiE,IAAK,CAACA,GAAIlxF,EAAI6rH,GAAI,IAAI98D,GAAI+/D,GAAI,CAAC,EAAEhD,GAAI,IAAI/8D,GAAIggE,GAAI,CAAC,CAAC,CAC5D,SAASz+B,IAAK,CAACA,GAAItwF,EAAIqrH,GAAI,IAAIz8D,GAAImgE,GAAI,CAAC,EAAEzD,GAAI,IAAI18D,GAAIkgE,GAAI,CAAC,CAAC,CAC5D,SAAS95C,IAAI,CAAC9pC,IAAG,KAAK,KAAK,IAAI8N,GAAIggB,GAAG,EAAE,CAAC,CAAC,EAAE1a,GAAG,EAAI,EAAE,KAAK,EAAE,CAAC,CAC7D,SAASkuD,GAAIlxG,EAAEyzB,EAAE5zB,EAAE,CAAC4mE,GAAK,EAAChiC,GAAI,KAAK,KAAKzkC,CAAC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC5D,SAAS2gG,GAAIxgG,EAAEyzB,EAAE5zB,EAAE,CAACunE,GAAK,EAACpjC,GAAI,KAAK,KAAKvQ,CAAC,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAEH,CAAC,CAC5D,SAAS6zH,IAAI1zH,EAAE,CAAC4rC,GAAI,KAAK,IAAI,EAAE8hF,GAAI,IAAI,EAAE,KAAK,EAAE1tH,EAAE,KAAK,EAAE,EAAI,CAC7D,SAAS6rE,IAAI7rE,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAE,EAAE,EAAEA,CAAC,CAC7D,SAAS2zH,GAAI3zH,EAAE,CAAC,IAAIyzB,EAAEmgG,IAAI5zH,EAAE,CAAC,EAAEokE,IAAIpkE,EAAE,CAAC,EAAEyzB,EAAE,IAAI0G,GAAIn6B,EAAE,CAAC,EAAE6zH,GAAIpgG,CAAC,CAAC,CAC7D,SAASqgG,IAAI9zH,EAAEyzB,EAAE,CAACsgG,IAAI/zH,EAAE,EAAI,EAAEqkE,GAAIrkE,EAAE,EAAE,GAAE,EAAG,IAAIgrF,GAAIhrF,EAAE,GAAKyzB,CAAC,CAAC,CAAC,CAC7D,SAASugG,GAAIh0H,EAAEyzB,EAAE,CAAC,OAAAwgG,IAAIxgG,CAAC,EAASygG,IAAIl0H,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,GAAG,CAAC,EAAEA,CAAC,CAAC,CAC7D,SAAS2gG,IAAIp0H,EAAEyzB,EAAE,CAAC,OAAA0yE,GAAG,EAAUnmG,GAAGqmG,GAAID,GAAI3yE,CAAC,CAAC,GAAGzzB,GAAGqmG,GAAIC,GAAI7yE,CAAC,CAAC,CAAC,CAC7D,SAAS8nF,GAAIv7G,EAAEyzB,EAAE,CAAC,OAAOA,GAAG,KAAKqmC,GAAGm7C,GAAIj1G,EAAE,EAAE,IAAI,CAAC,EAAEysD,GAAIzsD,EAAE,EAAEyzB,CAAC,CAAC,CAC7D,SAAS4gG,IAAIr0H,EAAE,CAAC,OAAOA,EAAE,GAAG,EAAE,MAAMkyE,GAAIlyE,EAAE,GAAG,CAAC,EAAE4jG,GAAI5jG,EAAEA,EAAE,EAAE,CAAC,EAAE,CAC7D,SAASw/D,GAAGx/D,EAAE,CAAC,OAAO,KAAK,IAAI,KAAK,IAAIA,EAAEk9E,EAAG,EAAE,WAAW,EAAE,CAAC,CAC7D,SAASo3C,IAAGt0H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE00H,GAAGv0H,EAAE,WAAW,CAAC,CAAC,EAAE,OAAOH,GAAQG,CAAG,CAC7D,SAASw0H,GAAGx0H,EAAEyzB,EAAE,CAAC,OAAA22F,GAAGpqH,EAAE,MAAM,EAAEoqH,GAAG32F,EAAE,MAAM,EAAS,IAAIqvB,IAAG9iD,EAAEyzB,CAAC,CAAC,CAC7D,SAASghG,IAAIz0H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE60H,IAAI10H,EAAE,EAAEyzB,CAAC,EAAS2sD,GAAIhJ,GAAIv3E,CAAC,EAAEG,EAAE,EAAE,CAAC,CAAC,CAC7D,SAASwxE,GAAIxxE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE4zB,EAAEg2B,EAAE,IAAIlkD,GAAIovH,IAAI30H,EAAEH,EAAE4pD,CAAC,EAASA,EAAE,CAAC,CAC7D,SAASmrE,GAAI50H,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEA,EAAE,IAAIggF,IAAI/rD,EAAE,EAAE5zB,EAAE,CAAC,EAAEL,EAAEs+E,GAAI99E,EAAE,EAAEypD,EAAEjqD,CAAC,CAAC,CAC7D,SAASq1H,GAAI70H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAEg2B,GAAG,EAAEzpD,EAAE,GAAGypD,EAAE5pD,CAAC,EAAEi1H,GAAI90H,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC7D,SAASk1H,GAAI/0H,EAAEyzB,EAAE5zB,EAAE,CAACm1H,GAAK,EAAGh1H,GAAGw5D,GAAIy7D,GAAIj1H,EAAEyzB,CAAC,EAAIzzB,GAAGw5D,GAAIC,GAAIz5D,EAAEH,CAAC,CAAC,CAC7D,SAASq1H,IAAIl1H,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE,IAAIglC,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC7D,SAASs1H,GAAIn1H,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE,IAAIglC,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC7D,SAASu1H,GAAIp1H,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE,IAAIglC,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC7D,SAASmtD,IAAGhtD,EAAEyzB,EAAE,CAAC62C,GAAG,IAAI,EAAE,KAAK,EAAE72C,EAAE,KAAK,EAAEzzB,EAAE2wE,GAAG,IAAI,EAAE,KAAK,IAAI,CAC9D,SAAS0kD,GAAGr1H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,SAAQ,EAAGA,EAAE,EAAE,QAAQyzB,CAAC,EAAEi4C,GAAG1rE,EAAEH,CAAC,CAAC,CAC9D,SAASy1H,IAAGt1H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAQ,IAAN21C,GAAG/hB,CAAC,EAAM5zB,EAAEG,EAAE,EAAEH,EAAEA,EAAEA,EAAE,EAAG4zB,EAAE,GAAG5zB,EAAE,EAAEA,EAAE,CAAC,CAAE,CAC9D,SAAS01H,IAAGv1H,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIgqB,GAAIigB,GAAG19D,EAAE,MAAM,CAAC,EAAE6tG,GAAIp6E,EAAEzzB,CAAC,EAASyzB,CAAC,CAC9D,SAAS+hG,IAAIx1H,EAAE,CAAC,SAASyzB,GAAG,CAAE,CAC7B,OAAAA,EAAE,UAAUzzB,GAAG,GAAU,IAAIyzB,CAAC,CAC/B,SAASgiG,IAAIz1H,EAAEyzB,EAAE,CAAC,OAAGiiG,IAAI11H,EAAEyzB,CAAC,GAAGkiG,IAAI31H,CAAC,EAAS,IAAY,EAAK,CAC9D,SAAS41H,GAAG51H,EAAEyzB,EAAE,CAAC,GAAGA,GAAG,KAAM,MAAMiS,EAAI,IAAIoC,EAAG,EAAE,OAAO+tF,IAAG71H,EAAEyzB,CAAC,CAAC,CAC9D,SAASqiG,IAAI91H,EAAE,CAAC,GAAGA,EAAE,GAAI,EAAE,OAAO,KAAK,IAAIyzB,EAAEzzB,EAAE,EAAE,OAAO+1H,GAAItiG,CAAC,CAAC,CAC9D,SAASuiG,GAAIh2H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAC7D,SAAS0kE,GAAI1kE,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAC7D,SAASi2H,IAAIj2H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAC7D,SAASk2H,IAAIl2H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,GAAG,CAAC,CAC9D,SAASm2H,IAAIn2H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,GAAG,CAAC,CAC9D,SAASqmG,GAAIrmG,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,GAAU,KAAYkjD,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAC9D,SAASo2H,IAAIp2H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,GAAGyzB,CAAC,EAAS5zB,GAAG,EAAEG,EAAE,GAAGH,CAAC,EAAEw2H,GAAIr2H,EAAEyzB,CAAC,CAAC,CAC9D,SAASwmF,IAAIj6G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAI4qG,GAAIh3E,CAAC,EAAE6iG,IAAGz2H,EAAEG,CAAC,EAAS,IAAImlF,GAAItlF,CAAC,CAAC,CAC9D,SAAS02H,GAAIv2H,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,GAAGA,EAAE,CAAC,EAAEkmE,GAAIlmE,EAAEyzB,CAAC,EAASA,EAAE,IAAI,CAC9D,SAAS+iG,IAAIx2H,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,GAAGyzB,EAAE,EAASzzB,CAAC,CAC9D,SAASy2H,GAAIz2H,EAAEyzB,EAAE,CAAC,OAAO1wB,EAAK,KAAK,IAAI/C,CAAC,EAAE+C,EAAK,KAAK,IAAI0wB,CAAC,EAAEzzB,EAAEyzB,CAAC,CAC9D,SAASijG,IAAI12H,EAAE,CAAC,MAAO,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAE,EAAE,CAAC,CAC9D,SAAS0qC,KAAK,CAAC,KAAK,EAAE,IAAIq2B,GAAI,KAAK,EAAE,IAAIn3B,GAAI,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAC9D,SAAS+sF,IAAI32H,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEikE,EAAG2yD,IAAGpsD,EAAI,KAAKxqE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAC9D,SAAS62H,GAAI72H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEqtE,IAAI92H,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,IAAI+2H,GAAIttE,EAAE,EAAE,MAAM,CAAC,CAC9D,SAAS2rC,IAAK,CAACA,GAAI1wF,EAAIyrH,GAAI,IAAI98D,GAAI2jE,GAAI,CAAC,EAAE5G,GAAI,IAAI/8D,GAAI,KAAK,CAAC,CAAC,CAC7D,SAASmjC,IAAK,CAACA,GAAI9xF,EAAIqsH,GAAI,IAAIj9D,GAAImjE,IAAI,CAAC,EAAEjG,IAAI,IAAIl9D,GAAI,MAAM,CAAC,CAAC,CAC9D,SAASkhE,IAAK,CAACA,GAAItwH,EAAIuwH,GAAI,IAAIlwF,GAAI00B,GAAI,IAAI10B,GAAIw0B,IAAI29D,IAAG,IAAIn1G,GAAG,CAAC,CAC9D,SAASo1G,IAAIn3H,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO8yB,GAAI36D,EAAE,EAAE,CAAC,CAAC,CAC9D,SAASo3H,IAAIp3H,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAO8yB,GAAI36D,EAAE,EAAE,CAAC,CAAC,CAC9D,SAASq3H,IAAIr3H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,GAAG,CAAC,CAC9D,SAASs3H,GAAIt3H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGljD,EAAE,GAAG,GAAG,CAAC,CAC9D,SAASu3H,GAAIv3H,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,GAAU,KAAYkjD,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAC9D,SAASq3C,IAAIr3C,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEG,EAAE,EAAEA,EAAE,GAAG,CAAE,EAAC,OAAOH,EAAE4zB,CAAC,IAAI5zB,EAAE4zB,CAAC,EAAEzzB,EAAE,GAAGyzB,CAAC,EAAE,CAC/D,SAASm5F,IAAI5sH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,IAAIyzB,CAAC,EAAS5zB,GAAQ,IAAI,KAAO,CAC/D,SAAS23H,IAAGx3H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,SAAQ,EAAGA,EAAE,EAAE,SAASyzB,CAAC,EAAEi4C,GAAG1rE,EAAEH,CAAC,CAAC,CAC/D,SAAS0pD,GAAIvpD,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,GAAG,KAAKgtF,GAAIzgH,EAAE,EAAE,KAAKH,CAAC,EAAE43H,GAAIz3H,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC/D,SAAS63H,GAAI13H,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,OAAO,IAAIs4H,GAAI33H,EAAE,EAAEyzB,EAAEzzB,EAAE,GAAE,EAAGH,EAAE4pD,EAAEjqD,EAAEH,CAAC,CAAC,CAC9D,SAASu4H,GAAI53H,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAG,EAAE,EAAEw+D,GAAIx+D,EAAE,EAAE,EAAEyzB,CAAC,GAAG,GAAG5zB,GAAGg7D,GAAI76D,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CAC/D,SAAS63H,IAAG73H,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAA+oC,EAAI5oC,EAAE,GAAGilG,GAAE,EAAGC,GAAGzxE,EAAE5zB,CAAC,EAAE,IAAI4iD,GAAGhvB,EAAE5zB,CAAC,IAAWG,CAAC,CAC/D,SAAS83H,GAAG93H,EAAE,CAAC,OAAAiwE,GAAGjwE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAASA,EAAE,EAAE,CAAC,CAC/D,SAAS+3H,IAAG/3H,EAAE,CAAC,OAAAiwE,GAAGjwE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAASA,EAAE,EAAE,CAAC,CAC/D,SAAS8pE,GAAI9pE,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAAS6pE,GAAI7pE,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAASg4H,GAAIh4H,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAASm6C,GAAIn6C,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAASi4H,IAAIj4H,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE4zB,EAAE,KAAK,EAAEzzB,EAAE,KAAK,GAAGw1C,GAAG31C,CAAC,EAAE,IAAIslF,GAAItlF,CAAC,EAAE,CAC/D,SAASq4H,IAAIl4H,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE4zB,EAAE,KAAK,EAAEzzB,EAAE,KAAK,GAAGw1C,GAAG31C,CAAC,EAAE,IAAIslF,GAAItlF,CAAC,EAAE,CAC/D,SAASs4H,IAAIn4H,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEypE,GAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI+hD,GAAI/3F,CAAC,CAAC,CAC/D,SAAS2kG,IAAIp4H,EAAE,CAAC,IAAIyzB,EAAE,OAAA+qF,GAAIx+G,CAAC,EAAEyzB,EAAE,IAAImW,GAAW+5E,GAAI3jH,EAAE,IAAI05B,IAAIjG,CAAC,CAAC,CAAC,CAC/D,SAASk6E,GAAI3tG,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,EAAEyzB,EAAG,MAAMiS,EAAI,IAAIwM,GAAImmF,IAAIr4H,EAAEs4H,IAAI7kG,CAAC,CAAC,CAAE,CAC/D,SAAS8kG,GAAIv4H,EAAEyzB,EAAE,CAAC,OAAO06E,IAAInuG,EAAE,EAAEyzB,CAAC,EAAE+5E,GAAIxtG,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAC/D,SAAS+kG,IAAIx4H,EAAE,CAAC,OAAAy4H,GAAG,EAAUroD,GAAG,EAAGltB,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAY,CAC/D,SAASs0E,KAAI,CAACA,IAAG5vE,EAAI6vE,IAAGlX,IAAI7tB,GAAE,EAAG0pE,EAAG9hE,EAAG+hE,IAAG,CAAC,EAAEC,EAAI,IAAI,EAAE,CAAC3pE,EAAE,CAAC,GAAG,CAC9D,SAASjiB,KAAK,CAACA,IAAI9oB,EAAIg0H,IAAI9oB,GAAI,IAAIxnD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACm9B,GAAG,CAAE,CAC/D,SAASvgE,IAAK,CAACA,GAAI3zD,EAAIm0H,IAAIjpB,GAAI,IAAIxnD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACm9B,GAAG,CAAE,CAC/D,SAAStsG,KAAK,CAACA,IAAI5nB,EAAIo0H,IAAIlpB,GAAI,IAAIxnD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACm9B,GAAG,CAAE,CAC/D,SAASxrG,KAAK,CAACA,IAAI1oB,EAAIq0H,IAAIrwB,GAAI,IAAItgD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACu9B,GAAG,CAAE,CAC/D,SAAS/vD,IAAK,CAACA,GAAIvkE,EAAIu0H,IAAIvwB,GAAI,IAAItgD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACu9B,GAAG,CAAE,CAC/D,SAAS5pG,KAAK,CAACA,IAAI1qB,EAAIw0H,IAAIxwB,GAAI,IAAItgD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACu9B,GAAG,CAAE,CAC/D,SAAS/gE,IAAK,CAACA,GAAIvzD,EAAIy0H,IAAIzwB,GAAI,IAAItgD,IAAK0hC,GAAG,EAAG6uC,KAAMl9B,GAAK,EAACu9B,GAAG,CAAE,CAC/D,SAASlrG,KAAK,CAACA,IAAIppB,EAAI00H,IAAIxpB,GAAI,IAAIxnD,IAAK4tC,GAAG,EAAGqjC,KAAMjjC,GAAK,EAACkjC,GAAG,CAAE,CAC/D,SAASC,GAAIv5H,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEypD,EAAEugB,GAAI,KAAKv2C,CAAC,EAAEw2C,GAAI,KAAKpqE,CAAC,CAAC,CAC/D,SAAS25H,GAAIx5H,EAAE,CAAC,KAAK,EAAE,IAAI4sC,GAAI,KAAK,EAAE5sC,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,CAC/D,SAASy5H,GAAIz5H,EAAE,CAAC,KAAK,EAAE+C,EAAK,KAAK,IAAI/C,CAAC,EAAE,KAAK,EAAE+C,EAAK,KAAK,IAAI/C,CAAC,CAAC,CAC/D,SAASgqE,GAAIhqE,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAASiqE,GAAIjqE,EAAEyzB,EAAE,CAAGzzB,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAE,EAAEA,CAAC,CAAC,CAC/D,SAAS05H,IAAI15H,EAAEyzB,EAAE,CAAC2pF,IAAIp9G,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAIyzB,GAAGyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,CAC/D,SAASkmG,IAAI35H,EAAEyzB,EAAE,CAACmmG,GAAI55H,EAAEyzB,CAAC,EAAE83C,EAAGvrE,EAAE,GAAG,EAAE,GAAG65H,GAAI7N,GAAI9oE,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAC/D,SAAS85H,GAAI95H,EAAEyzB,EAAE,CAAC83C,EAAGvrE,EAAE,GAAG,EAAE,GAAG65H,GAAI7N,GAAI9oE,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE+5H,GAAI/5H,EAAEyzB,CAAC,CAAC,CAC/D,SAASumG,GAAIh6H,EAAEyzB,EAAE,CAAC83C,EAAGvrE,EAAE,GAAG,GAAG,IAAIkjD,EAAGljD,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM+5H,GAAI/5H,EAAEyzB,CAAC,CAAC,CAC/D,SAASwmG,GAAIj6H,EAAEyzB,EAAE,CAAC,OAAO+3B,GAAG,EAAG0uE,GAAIzmG,CAAC,EAAE,IAAI60E,GAAI70E,EAAEzzB,CAAC,EAAE,IAAIi5D,GAAIxlC,EAAEzzB,CAAC,CAAC,CAC/D,SAASm6H,IAAIn6H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE5pD,EAAE4zB,EAAE,EAAEg2B,EAAE5pD,GAAG,KAAK4pD,GAAGiyD,GAAI17G,EAAE,IAAIgyC,GAAGve,EAAE,CAAC,CAAC,CAAC,CAC/D,SAAS2yC,IAAIpmE,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAG28C,GAAK,EAAC/oB,EAAE,IAAI2R,GAAI3R,GAAGqyF,GAAIjmH,EAAEG,CAAC,EAASH,CAAC,CAC/D,SAAS0mE,IAAIvmE,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAG28C,GAAK,EAAC/oB,EAAE,IAAI2R,GAAI3R,GAAGqyF,GAAIjmH,EAAEG,CAAC,EAASH,CAAC,CAC/D,SAASu6H,IAAIp6H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAIg8G,GAAI77G,CAAC,EAAEyzB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE5zB,EAASA,CAAC,CAC/D,SAASw6H,IAAGr6H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAG2hC,GAAGyjC,GAAGtoH,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAU5zB,EAAIA,EAAE,KAAJ,CAAQ,CAChE,SAASy6H,IAAIt6H,EAAE,CAAC,IAAIyzB,EAAE,OAAA+qF,GAAIx+G,CAAC,EAAEyzB,GAAGogF,GAAG,EAAGA,GAAK,EAACkU,KAAYwS,GAAIv6H,EAAEyzB,CAAC,CAAC,CAChE,SAAS69C,IAAGtxE,EAAE,CAAO,QAAFyzB,IAAuB,GAATA,EAAEzzB,EAAE,GAAI,EAAI,CAACA,EAAE,GAAI,EAAE,OAAOyzB,CAAG,CAChE,SAAS8gB,GAAGv0C,EAAEyzB,EAAE,CAACib,IAAG,KAAK,KAAK,IAAIgP,GAAIggB,GAAG19D,CAAC,CAAC,CAAC,EAAE60E,GAAGphD,EAAE+mG,GAAG,EAAE,KAAK,EAAE/mG,CAAC,CAChE,SAASgnG,GAAIz6H,EAAEyzB,EAAE5zB,EAAE,CAAC66H,IAAIjnG,EAAE5zB,EAAEG,EAAE,GAAE,CAAE,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE4zB,CAAC,CAChE,SAASknG,IAAI36H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEixE,IAAIjnG,EAAE5zB,EAAEG,EAAE,EAAE,MAAM,EAAEypD,EAAE5pD,EAAE4zB,EAAEorB,GAAI7+C,EAAE,EAAEyzB,EAAEg2B,CAAC,CAAC,CAChE,SAASmxE,IAAI56H,EAAEyzB,EAAE,CAACw4C,IAAIjsE,EAAEitG,GAAI4tB,GAAIrpB,GAAI/9E,EAAE,EAAE,EAAEqnG,EAAG,CAAC,EAAE7tB,GAAI4tB,GAAIpnG,EAAEqnG,EAAG,CAAC,CAAC,CAAC,CAChE,SAASj+D,GAAI78D,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,GAAGyzB,EAAG,MAAMiS,EAAI,IAAIwM,GAAImmF,IAAIr4H,EAAEs4H,IAAI7kG,CAAC,CAAC,CAAE,CAChE,SAASuuF,GAAIhiH,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,GAAGyzB,EAAG,MAAMiS,EAAI,IAAI0Q,GAAIiiF,IAAIr4H,EAAEs4H,IAAI7kG,CAAC,CAAC,CAAE,CAChE,SAASq5B,GAAI9sD,EAAEyzB,EAAE,CAAC,KAAK,GAAG3C,GAAI9wB,CAAC,EAAEA,GAAG,KAAK,EAAGyzB,EAAEsnG,GAAiBtnG,EAATA,EAAE,GAAGkgF,EAAK,CAChE,SAASqnB,IAAIh7H,EAAE,CAAC4kC,IAAI,IAAI,EAAE8D,IAAI,KAAK,EAAEuyF,GAAIl4H,EAAK,KAAK,IAAI,EAAE/C,CAAC,CAAC,GAAG,CAAC,CAAC,CAChE,SAASk7H,GAAIl7H,EAAE,CAAC,OAAOm7H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACxqE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAChE,SAASq7H,KAAK,CAAC,OAAA50C,GAAG,EAAUyyB,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAACmiB,IAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAj0C,GAAG,EAAUyxB,EAAG9hE,EAAGukF,GAAG,CAAC,EAAEviB,EAAI,IAAI,EAAE,CAACwiB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAl0C,GAAG,EAAUqxB,EAAG9hE,EAAG4kF,IAAG,CAAC,EAAE5iB,EAAI,IAAI,EAAE,CAAC6iB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAn0C,GAAG,EAAUixB,EAAG9hE,EAAGilF,IAAG,CAAC,EAAEjjB,EAAI,IAAI,EAAE,CAACkjB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAnyC,GAAG,EAAU4uB,EAAG9hE,EAAGslF,IAAG,CAAC,EAAEtjB,EAAI,IAAI,EAAE,CAACujB,GAAIC,IAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAApzC,GAAG,EAAUwvB,EAAG9hE,EAAG2lF,IAAG,CAAC,EAAE3jB,EAAI,IAAI,EAAE,CAAC4jB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA3rC,GAAG,EAAU0nB,EAAG9hE,EAAGgmF,IAAG,CAAC,EAAEhkB,EAAI,IAAI,EAAE,CAACikB,GAAIC,IAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAApwC,GAAG,EAAU8rB,EAAG9hE,EAAGqmF,IAAG,CAAC,EAAErkB,EAAI,IAAI,EAAE,CAACskB,GAAIC,GAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA7vC,GAAG,EAAUkrB,EAAG9hE,EAAG0mF,IAAG,CAAC,EAAE1kB,EAAI,IAAI,EAAE,CAAC2kB,IAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAtvC,GAAG,EAAUsqB,EAAG9hE,EAAG+mF,IAAG,CAAC,EAAE/kB,EAAI,IAAI,EAAE,CAACglB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA3wC,GAAG,EAAUsrB,EAAG9hE,EAAGonF,GAAG,CAAC,EAAEplB,EAAI,IAAI,EAAE,CAACqlB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAApuC,GAAG,EAAU0oB,EAAG9hE,EAAGynF,IAAG,CAAC,EAAEzlB,EAAI,IAAI,EAAE,CAAC0lB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA7uC,GAAG,EAAU8oB,EAAG9hE,EAAG8nF,GAAG,CAAC,EAAE9lB,EAAI,IAAI,EAAE,CAAC+lB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAttC,GAAG,EAAUknB,EAAG9hE,EAAGmoF,IAAG,CAAC,EAAEnmB,EAAI,IAAI,EAAE,CAAComB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAntC,GAAG,EAAU0mB,EAAG9hE,EAAGwoF,IAAG,CAAC,EAAExmB,EAAI,IAAI,EAAE,CAACymB,GAAIC,IAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAhtC,GAAG,EAAUkmB,EAAG9hE,EAAG6oF,IAAG,CAAC,EAAE7mB,EAAI,IAAI,EAAE,CAAC8mB,IAAIC,GAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAjsC,GAAG,EAAU8kB,EAAG9hE,EAAGkpF,IAAG,CAAC,EAAElnB,EAAI,IAAI,EAAE,CAACmnB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA9sC,GAAG,EAAUslB,EAAG9hE,EAAGupF,IAAG,CAAC,EAAEvnB,EAAI,IAAI,EAAE,CAACwnB,GAAIC,IAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA/sC,GAAG,EAAUklB,EAAG9hE,EAAG4pF,IAAG,CAAC,EAAE5nB,EAAI,IAAI,EAAE,CAAC6nB,IAAIC,GAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA5sC,GAAG,EAAU0kB,EAAG9hE,EAAGiqF,IAAG,CAAC,EAAEjoB,EAAI,IAAI,EAAE,CAACkoB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAArqC,GAAG,EAAU8hB,EAAG9hE,EAAGsqF,IAAG,CAAC,EAAEtoB,EAAI,IAAI,EAAE,CAACuoB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAlqC,GAAG,EAAUshB,EAAG9hE,EAAG2qF,IAAG,CAAC,EAAE3oB,EAAI,IAAI,EAAE,CAAC4oB,GAAIC,IAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA3pC,GAAG,EAAU0gB,EAAG9hE,EAAGgrF,IAAG,CAAC,EAAEhpB,EAAI,IAAI,EAAE,CAACipB,IAAIC,GAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAApqC,GAAG,EAAU8gB,EAAG9hE,EAAGqrF,IAAG,CAAC,EAAErpB,EAAI,IAAI,EAAE,CAACspB,GAAIC,IAAIC,GAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAA7pC,GAAG,EAAUkgB,EAAG9hE,EAAGoI,GAAG,CAAC,EAAE45D,EAAI,IAAI,EAAE,CAAC0pB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAlmC,GAAG,EAAUmc,EAAG9hE,EAAG8rF,IAAG,CAAC,EAAE9pB,EAAI,IAAI,EAAE,CAAC+pB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,KAAK,CAAC,OAAAnnC,GAAG,EAAU+c,EAAG9hE,EAAGmsF,IAAG,CAAC,EAAEnqB,EAAI,IAAI,EAAE,CAACoqB,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAChE,SAASC,IAAI3jI,EAAEyzB,EAAE,CAAC,OAAOmwG,IAAI5jI,EAAEyzB,EAAE83C,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,CAAC,CAChE,SAASiqD,IAAI7jI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEq6E,GAAI9jI,EAAEyzB,EAAE,EAAK,EAASg2B,EAAE,GAAGh2B,GAAGg2B,EAAE,GAAG5pD,CAAC,CAChE,SAASkkI,IAAI/jI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE,IAAI/uC,IAAI+uC,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAEmV,EAAI5oC,EAAE,EAAEypD,CAAC,CAAC,CAChE,SAASu6E,IAAGhkI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,GAAGixB,GAAI9wB,CAAC,EAAEA,GAAG,EAAEi2E,GAAI,CAAC,CAACp2E,CAAC,EAAEixB,GAAI2C,CAAC,EAAS5zB,EAAE4zB,CAAC,CAAC,CACjE,SAASwwG,GAAGjkI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAEisD,GAAG11G,EAAEyzB,CAAC,EAAE5zB,EAAEG,EAAE,EAAE,GAAGypD,CAAC,EAAS,IAAI7G,IAAG5iD,EAAEH,CAAC,CAAC,CACjE,SAASqkI,IAAIlkI,EAAE,CAAC,OAAGA,EAAE,IAAI,IAAI,EAAS,KAAYkjD,EAAGihF,GAAInkI,CAAC,EAAE,GAAG,CAAC,CAChE,SAASokI,IAAIpkI,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,EAAE+kG,EAAG,CAChE,SAASs/B,IAAIrkI,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,EAAE+kG,EAAG,CAChE,SAASu/B,IAAItkI,EAAE,CAAC,OAAAA,EAAE,IAAIukG,GAAK,EAACggC,KAAMtuG,IAAIj2B,EAAEwkI,IAAIxkI,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CAChE,SAASykI,GAAIzkI,EAAE,CAAC,OAAAA,EAAE,IAAIukG,GAAK,EAACggC,KAAMpuG,IAAIn2B,EAAE0kI,IAAI1kI,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,CAChE,SAAS2kI,EAAI3kI,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEA,EAAE,IAAWA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CACjE,SAAS4kI,IAAI5kI,EAAEyzB,EAAE,CAACzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,CAAC,CACjE,SAASonG,GAAI76H,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAIoP,IAAGpyC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CACjE,SAASoxG,GAAI7kI,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAIqP,IAAGryC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CACjE,SAASqxG,GAAI9kI,EAAEyzB,EAAE,CAAC,OAAOkvE,GAAIsP,IAAGtyC,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CACjE,SAASsxG,IAAI/kI,EAAE,CAAC,OAAO+qG,GAAIuG,GAAI7rB,GAAI6oB,GAAItuG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEylF,GAAI6oB,GAAItuG,EAAE,EAAE,CAAC,CAAC,CAAC,CACjE,SAASglI,GAAGhlI,EAAE,CAAC,OAAAw1C,GAAGx1C,CAAC,EAASurE,EAAGvrE,EAAE,EAAE,EAAE,IAAImlF,GAAIjiC,EAAGljD,EAAE,EAAE,CAAC,EAAEuhG,GAAGvhG,EAAE,GAAE,CAAE,CAAC,CACjE,SAASilI,IAAIjlI,EAAEyzB,EAAE,CAAC,OAAAyxG,GAAK,EAAQllI,EAAE,GAAGyzB,EAAE,EAAEmrC,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,EAAE4+D,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACjE,SAAS0xG,IAAInlI,EAAEyzB,EAAE,CAAC,OAAAyxG,GAAK,EAAQllI,EAAE,GAAGyzB,EAAE,EAAEmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CACjE,SAAS2xG,IAAIplI,EAAEyzB,EAAE,CAAC,OAAAyxG,GAAK,EAAQllI,EAAE,GAAGyzB,EAAE,EAAEmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEmrC,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,CAAC,CACjE,SAASqlI,IAAIrlI,EAAEyzB,EAAE,CAAC,OAAAyxG,GAAK,EAAQllI,EAAE,GAAGyzB,EAAE,EAAEmrC,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,EAAE4+D,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,CAAC,CACjE,SAASslI,IAAItlI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEqzC,EAAImnC,EAAGr6E,EAAE,EAAE,IAAIgwB,KAAMu1G,IAAK,CAAC,EAAEC,IAAIxlI,EAAEyzB,EAAE5zB,CAAC,CAAC,CACjE,SAAS4lI,IAAIzlI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE4wC,GAAI5wC,EAAE,EAAE,IAAI08B,IAAInwD,EAAEH,CAAC,CAAC,CAAC,CACjE,SAAS6lI,IAAI1lI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE8lI,IAAI3lI,CAAC,EAAEypD,EAAEk8E,IAAIlyG,CAAC,EAAS5zB,EAAE4pD,EAAE,GAAG5pD,EAAE4pD,EAAE,EAAE,CAAC,CACjE,SAASm8E,IAAI5lI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEgmI,GAAIpyG,CAAC,EAAEg2B,EAAE5pD,EAASqjD,EAAGgwD,GAAIlzG,EAAE,EAAEypD,CAAC,EAAE,EAAE,EAAE,CAAC,CACjE,SAASq8E,IAAI9lI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAS,IAAPA,EAAEG,EAAE,GAASH,EAAE,OAAO4zB,GAAG5zB,EAAE,IAAIA,EAAE,OAAOA,CAAC,CACjE,SAASkmI,GAAI/lI,EAAE,CAAC,OAAOA,EAAE,GAAG,MAAMA,EAAE,EAAE,QAAQ,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,CAAC,CACjE,SAASgmI,GAAIhmI,EAAE,CAAC,OAAOA,EAAE,GAAG,MAAMA,EAAE,EAAE,QAAQ,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,CAAC,CACjE,SAASimI,GAAGjmI,EAAEyzB,EAAE,CAAC,OAASzzB,GAAKA,EAAE,OAAOA,EAAE,OAAOyzB,CAAC,EAAEsmC,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,CAAC,CACjE,SAASyyG,GAAIlmI,EAAEyzB,EAAE,CAAC,OAAGA,GAAG,EAAU,CAAC,CAACzzB,EAAE,GAAGA,EAAE,EAAE,GAAG,EAASmmI,GAAInmI,EAAEyzB,CAAC,CAAC,CACjE,SAAS2yG,GAAIpmI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAKzpD,EAAE,GAAKyzB,GAAK5zB,IAAG4pD,EAAE,IAAIzoC,IAAI4nB,EAAI5oC,EAAE,EAAEypD,CAAC,EAAE,CACjE,SAAS48E,GAAIrmI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE4pD,CAAC,CACjE,SAAS68E,IAAItmI,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CACjE,SAAS0mI,IAAIvmI,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CACjE,SAASo7G,IAAIj7G,EAAEyzB,EAAE5zB,EAAE,CAAC4kC,GAAI,KAAK,KAAK,EAAE,EAAE,KAAK,EAAEzkC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAChE,SAAS2mI,GAAIxmI,EAAE,CAACymE,GAAG,EAAGhiC,GAAI,KAAK,KAAKzkC,CAAC,EAAE,KAAK,EAAE,GAAM,KAAK,EAAE,EAAK,CAChE,SAASymI,IAAIzmI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACqnI,GAAI,KAAK,KAAK1mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAASsnI,IAAI3mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACunI,GAAI,KAAK,KAAK5mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAASwnI,IAAI7mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACynI,GAAI,KAAK,KAAK9mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAAS0nI,IAAI/mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC2nI,GAAI,KAAK,KAAKhnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAAS4nI,IAAIjnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC6nI,GAAI,KAAK,KAAKlnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAAS8nI,IAAInnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC+nI,GAAI,KAAK,KAAKpnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAASgoI,IAAIrnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACioI,GAAI,KAAK,KAAKtnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAASkoI,IAAIvnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACmoI,GAAI,KAAK,KAAKxnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEH,IAAI,KAAK,EAAE,GAAG,CACjE,SAAS6wG,IAAIlwG,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACzlB,GAAI,KAAK,KAAKnkC,CAAC,EAAE,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAEg2B,CAAC,CACjE,SAASg+E,GAAIznI,EAAEyzB,EAAE,CAAC,KAAK,EAAE,IAAIoR,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAEyzB,CAAC,CACjE,SAAS+W,KAAK,CAAC,KAAK,EAAE,IAAIm+B,IAAI,KAAK,EAAE,IAAI2iD,IAAI,KAAK,EAAE,IAAIlgF,IAAIqb,IAAG,CAAE,CACjE,SAASihF,KAAK,CAAC7mB,GAAK,EAAC,KAAK,EAAE,IAAI97E,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIF,CAAG,CACjE,SAAS8iG,IAAI3nI,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,GAAGukG,KAAMggC,IAAK,KAAK,EAAEA,GAAI,KAAK,EAAE9wG,CAAC,CACjE,SAASm0G,IAAI5nI,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,GAAGukG,KAAMsjC,IAAK,KAAK,EAAEA,GAAI,KAAK,EAAEp0G,CAAC,CACjE,SAASq0G,GAAI9nI,EAAEyzB,EAAE,CAAC,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI+nI,GAAI/nI,EAAE,CAAC,GAAGgoI,GAAIhoI,EAAE,GAAGioI,GAAK,EAACC,IAAKz0G,CAAC,CAAC,CACjE,SAASujE,IAAK,CAACA,GAAItyF,EAAIisH,GAAI,IAAI58D,GAAI,MAAM,CAAC,EAAE68D,IAAI,IAAI78D,GAAI,MAAM,CAAC,CAAC,CAChE,SAASo0E,IAAGnoI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEvG,EAAGljD,EAAE,GAAI,EAAC,GAAGyzB,CAAC,EAAE,EAAE,EAAS,CAAC,CAACg2B,GAAGA,EAAE,GAAG5pD,CAAC,CAAC,CAClE,SAASuoI,IAAGpoI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEvG,EAAGljD,EAAE,GAAI,EAAC,GAAGyzB,CAAC,EAAE,EAAE,EAAS,CAAC,CAACg2B,GAAGA,EAAE,GAAG5pD,CAAC,CAAC,CAClE,SAASwoI,IAAIroI,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAAzpD,EAAE,GAAG,GAAGw+D,GAAI/qC,GAAG,KAAKw9C,GAAIC,GAAIz9C,CAAC,EAAE5zB,EAAE4pD,CAAC,EAASzpD,CAAC,CAClE,SAASsoI,GAAItoI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,OAAA+iH,IAAIpiH,EAAEyzB,EAAE5zB,EAAER,CAAC,EAAEkpI,GAAIvoI,EAAEypD,CAAC,EAAE++E,GAAIxoI,EAAER,CAAC,EAASQ,CAAC,CACjE,SAASyoI,GAAIzoI,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAASA,EAAE,EAAE,CAAC,CAClE,SAAS0oI,GAAI1oI,EAAE,CAAC,KAAMA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAG,GAAE,CAACA,EAAE,EAAEA,EAAE,GAAG,GAAG,IAAIA,EAAE,EAAE,EAAE,CAClE,SAAS2oI,IAAI3oI,EAAE,CAAC,OAAQA,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CAClE,SAAS4oI,IAAI5oI,EAAE,CAAC,MAAO,CAAC,CAACA,EAAE,GAAGsmE,GAAItmE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAIA,EAAE,GAAG6oI,GAAI7oI,EAAE,CAAC,EAAE,CACjE,SAAS8oI,IAAI9oI,EAAE,CAAC,MAAO,CAAC,CAACA,EAAE,GAAGmmE,GAAInmE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAIA,EAAE,GAAG+oI,GAAI/oI,EAAE,CAAC,EAAE,CACjE,SAASgpI,IAAGhpI,EAAE,CAAC,OAAOkpG,GAAGlpG,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGA,EAAE,EAAE,GAAE,EAAG,GAAE,EAAG,GAAG,IAAIkxB,IAAGlxB,CAAC,CAAC,CAAC,CAClE,SAASipI,IAAGjpI,EAAEyzB,EAAE,CAAC,OAAOurC,IAAIymB,GAAIzlF,EAAE,EAAE,QAAO,CAAE,EAAEylF,GAAIhyD,EAAE,EAAE,QAAS,CAAA,CAAC,CAAC,CAClE,SAASy1G,GAAIlpI,EAAE,CAAC,OAAOkjD,EAAGimF,GAAInpI,EAAEikE,EAAGmlE,GAAGC,GAAI,GAAGrpI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAClE,SAASspI,GAAItpI,EAAE,CAAC,OAAOkjD,EAAGimF,GAAInpI,EAAEikE,EAAGopD,GAAGC,GAAI,GAAGttH,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAClE,SAASupI,IAAIvpI,EAAE,CAAC,OAAAipE,GAAG,EAAU,CAAC09B,GAAI3mG,CAAC,GAAG,EAAE,CAAC2mG,GAAI3mG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,CAClE,SAASwpI,IAAIxpI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,GAAGjU,GAAGx1C,CAAC,EAAE,IAAImlF,GAAInlF,CAAC,GAAGypI,IAAI,IAAIxR,IAAIxuE,EAAEh2B,EAAE5zB,CAAC,CAAC,CAAC,CAClE,SAAS6pI,GAAI1pI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,GAAGjU,GAAGx1C,CAAC,EAAE,IAAImlF,GAAInlF,CAAC,GAAG2pI,IAAI,IAAIzR,IAAIzuE,EAAEh2B,EAAE5zB,CAAC,CAAC,CAAC,CAClE,SAAS+pI,IAAI5pI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,EAAE4zB,EAAEzzB,EAAE,EAAEH,CAAC,EAAEgqI,GAAI7pI,EAAE,EAAEH,CAAC,EAAEA,CAAC,EAASgqI,GAAI7pI,EAAEyzB,CAAC,CAAC,CAClE,SAASq2G,IAAI9pI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEG,EAAE,EAAE,IAAI8uC,GAAIjvC,EAAEkqI,GAAIt2G,CAAC,EAAEu0C,GAAInoE,EAAEG,EAAE,CAAC,EAAEgqI,IAAIhqI,EAAEH,EAAE,CAAC,CAAC,CAClE,SAASoqI,GAAIjqI,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEA,EAAE,IAAIqf,GAAIrf,EAAE,EAAEi0B,EAAEj0B,EAAE,EAAEK,EAAEL,EAAE,EAAEiqD,EAAEo8C,GAAI7lG,EAAE,EAAER,CAAC,CAAC,CAClE,SAAS0qI,EAAIlqI,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEA,EAAE,IAAIqf,GAAIrf,EAAE,EAAEi0B,EAAEj0B,EAAE,EAAEK,EAAEL,EAAE,EAAEiqD,EAAEo8C,GAAI7lG,EAAE,EAAER,CAAC,CAAC,CAClE,SAAS2qI,GAAInqI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAAh2B,EAAE,IAAI+lF,IAAI35G,EAAEuqI,GAAI32G,EAAEzzB,CAAC,EAAEqqI,IAAI52G,CAAC,EAAEg2B,EAAE5pD,EAAS4pD,CAAC,CAClE,SAAS6gF,IAAK,CAAC,IAAItqI,EAAEyzB,EAAE5zB,EAAE,OAAA4zB,GAAG5zB,GAAGG,EAAE,IAAIolC,GAAIplC,GAAGH,GAAG+oC,EAAIijB,IAAIp4B,CAAC,EAASA,CAAC,CAClE,SAAS82G,GAAIvqI,EAAE,CAAC,OAAAA,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEu6C,GAAG1+G,EAAE,CAAC,EAAEsiH,IAAItiH,EAAE,CAAC,EAASA,CAAC,CAClE,SAASwqI,GAAIxqI,EAAE,CAAO,OAANgoD,GAAK,EAAIujB,EAAGvrE,EAAE,EAAE,EAAE,EAAUkjD,EAAGljD,EAAE,EAAE,EAAE,EAAS,IAAI,CAClE,SAASyqI,IAAGzqI,EAAE,CAAC,OAAG+oE,GAAG/oE,CAAC,EAAE,GAAE,EAAW,IAAM8oE,IAAG9oE,EAAE,IAAI+D,EAAE,EAAS,GAAI,CACnE,SAAS2mI,IAAGj3G,EAAE,CAAC,GAAG,EAAE,UAAWA,GAAI,GAAG,CAAC,MAAMA,CAAC,MAAS,CAAE,CAAC,OAAOA,CAAC,CAClE,SAASsnF,GAAG/6G,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,GAAGyzB,EAAG,MAAMiS,EAAI,IAAIwM,GAAIy4F,IAAG3qI,EAAEyzB,CAAC,CAAC,CAAC,EAAE,OAAOzzB,CAAC,CACnE,SAAS4qI,IAAG5qI,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,GAAGyzB,EAAEzzB,GAAGyzB,EAAE5zB,EAAG,MAAM6lC,EAAI,IAAIwM,GAAI24F,IAAG7qI,EAAEyzB,EAAE5zB,CAAC,CAAC,CAAC,CAAE,CACnE,SAASirI,GAAI9qI,EAAEyzB,EAAE,CAAY,GAAXuV,GAAIhpC,EAAE,EAAEyzB,CAAC,EAAKA,EAAE,EAAG,MAAMiS,EAAI,IAAIgL,GAAGq6F,GAAG,CAAC,EAAEt3G,EAAE,EAAEzzB,CAAC,CACjE,SAASgrI,GAAIhrI,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,WAAWzzB,EAAE,UAAW,MAAM0lC,EAAI,IAAIsC,EAAG,CAAE,CAClE,SAASijG,IAAIjrI,EAAEyzB,EAAE,CAAC,OAAG83C,EAAG93C,EAAE,EAAE,EAAUy3G,GAAGlrI,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAS,EAAK,CACnE,SAAS03G,IAAInrI,EAAEyzB,EAAE,CAAC,OAAG83C,EAAG93C,EAAE,EAAE,EAAUy3G,GAAGlrI,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAS,EAAK,CACnE,SAAS23G,IAAIprI,EAAEyzB,EAAE,CAAC,OAAG83C,EAAG93C,EAAE,EAAE,EAAUy3G,GAAGlrI,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAS,EAAK,CACnE,SAAS43G,IAAIrrI,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,GAAGA,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,GAAG,EAAS,IAAY,EAAK,CACnE,SAASq8D,GAAIr8D,EAAE,CAAC,IAAIyzB,EAAE,OAAGksC,GAAI3/D,CAAC,GAAGyzB,EAAEzzB,EAASyzB,GAAG,GAAI,EAAEA,GAAS63G,IAAGtrI,CAAC,CAAC,CACnE,SAASurI,GAAIvrI,EAAE,CAAC,IAAIyzB,EAAE,OAAA8qB,GAAIv+C,CAAC,EAAEyzB,EAAE,IAAIruB,IAAI44C,GAAIh+C,EAAE,EAAE,IAAIw5B,IAAI/F,CAAC,CAAC,EAASA,CAAC,CACnE,SAAS+3G,IAAIxrI,EAAE,CAAC,IAAIyzB,EAAE,OAAA8qB,GAAIv+C,CAAC,EAAEyzB,EAAE,IAAItuB,IAAI64C,GAAIh+C,EAAE,EAAE,IAAIu5B,IAAI9F,CAAC,CAAC,EAASA,CAAC,CACnE,SAASg4G,GAAIzrI,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE42B,GAAI,KAAK,KAAK52B,CAAC,EAAE2tG,GAAIl6E,EAAEzzB,EAAE,GAAE,CAAE,EAAE,KAAK,EAAEyzB,CAAC,CAClE,SAASi4G,GAAI1rI,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAO,EAAG,KAAK,EAAE,IAAI,KAAK,CACnE,SAAS2rI,IAAG3rI,EAAE,CAAC,OAAOkpG,GAAGlpG,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGA,EAAE,EAAE,GAAE,EAAG,GAAE,EAAG,IAAI,IAAIixB,IAAGjxB,CAAC,CAAC,CAAC,CACnE,SAAS4rI,GAAG5rI,EAAE,CAAC,OAAO,IAAI+0E,IAAKF,GAAG70E,EAAEghH,EAAG,EAAEC,GAAGlW,GAAIA,GAAI,EAAE/qG,CAAC,EAAEA,EAAE,GAAG,CAAC,CAAC,GAAG,CACnE,SAAS6rI,IAAI7rI,EAAE,CAAC,OAAOkjD,EAAGimF,GAAInpI,EAAEikE,EAAG6nE,IAAGC,IAAI,GAAG/rI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CACnE,SAASgsI,IAAIhsI,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAE,OAAO,EAAE23G,GAAIx3G,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAE23G,GAAIx3G,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACnE,SAASosI,IAAIjsI,EAAEyzB,EAAE5zB,EAAE,CAAGG,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEyzB,EAAIzzB,EAAE,GAAG0tG,GAAI1tG,EAAE,EAAE,EAAEH,EAAEG,CAAC,CAAC,CACnE,SAASksI,GAAIlsI,EAAEyzB,EAAE,CAAC04G,IAAI14G,EAAEzzB,CAAC,EAAEyiG,GAAIziG,EAAE,CAAC,EAAEyiG,GAAIv/C,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG8+G,GAAG,EAAG,GAAG,CAAC,CAAC,CACnE,SAASC,GAAIrsI,EAAEyzB,EAAE,CAAC64G,IAAI74G,EAAEzzB,CAAC,EAAEwiG,GAAIxiG,EAAE,CAAC,EAAEwiG,GAAIt/C,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG8+G,GAAG,EAAG,GAAG,CAAC,CAAC,CACnE,SAASG,GAAIvsI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE+1H,GAAG51H,EAAEyzB,CAAC,EAAEg2B,EAAE,KAAO5pD,IAAI4pD,EAAE5pD,EAAE,GAAE,GAAW4pD,CAAC,CACnE,SAAS+iF,GAAIxsI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEk4G,GAAG/3G,EAAEyzB,CAAC,EAAEg2B,EAAE,KAAO5pD,IAAI4pD,EAAE5pD,EAAE,GAAE,GAAW4pD,CAAC,CACnE,SAASgjF,GAAIzsI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE+1H,GAAG51H,EAAEyzB,CAAC,EAAEg2B,EAAE,KAAO5pD,IAAI4pD,EAAE5pD,EAAE,GAAE,GAAW4pD,CAAC,CACnE,SAASijF,GAAI1sI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE+1H,GAAG51H,EAAEyzB,CAAC,EAAEg2B,EAAE,KAAO5pD,IAAI4pD,EAAEkjF,GAAI9sI,CAAC,GAAU4pD,CAAC,CACnE,SAASmjF,IAAI5sI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEojF,GAAIhtI,CAAC,EAAEitI,GAAG9sI,EAAE,EAAEypD,EAAEh2B,CAAC,EAAEq5G,GAAG9sI,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAS4zB,CAAC,CACnE,SAASs5G,IAAG/sI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEujF,IAAI,EAAC,GAAG,CAAC,OAAOjvD,IAAG/9E,EAAEyzB,EAAE5zB,CAAC,CAAC,QAAC,CAAQotI,IAAGxjF,CAAC,CAAC,CAAC,CACnE,SAASyjF,IAAIltI,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,KAAK,KAAK,EAAEurE,EAAG93C,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAACA,EAAE,IAAI,CACnE,SAAS20B,IAAK,CAACvZ,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,EAAEo1B,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CACnE,SAASo5C,GAAIv9G,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAE,EAAE,CACnE,SAAS0jF,IAAGntI,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CACpE,SAASutI,GAAIptI,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE,IAAIy+B,IAAI,IAAI,EAAE,KAAK,EAAEt+B,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CACnE,SAAS+wF,IAAK,CAACA,GAAIlsF,EAAIqqH,GAAI,IAAIh9D,GAAIs7E,GAAI,CAAC,EAAEre,IAAI,IAAIj9D,GAAI,WAAW,CAAC,CAAC,CACnE,SAASjlC,KAAK,CAACA,IAAIpoB,EAAI4oI,IAAIxsB,IAAGysB,EAAI,CAAC,EAAEA,EAAI,CAAC,CAAC,EAAEC,IAAI1sB,IAAGysB,EAAI,CAAC,EAAEA,EAAI,CAAC,CAAC,CAAC,CAClE,SAASh0C,KAAK,CAACA,IAAI70F,EAAI80F,IAAIn8B,IAAI7U,GAAG,EAAG0wD,EAAG9hE,EAAGstE,IAAG,CAAC,EAAEtL,EAAI,IAAI,EAAE,CAAC3wD,EAAG,CAAC,GAAG,CACnE,SAAS2wC,KAAK,CAACA,IAAI10F,EAAI20F,IAAIh8B,IAAIhV,GAAG,EAAG6wD,EAAG9hE,EAAGotE,IAAG,CAAC,EAAEpL,EAAI,IAAI,EAAE,CAAC9wD,EAAG,CAAC,GAAG,CACnE,SAAS4xC,KAAK,CAACA,IAAIx1F,EAAIy1F,IAAI98B,IAAI1U,GAAG,EAAGuwD,EAAG9hE,EAAGwtE,IAAG,CAAC,EAAExL,EAAI,IAAI,EAAE,CAACxwD,EAAG,CAAC,GAAG,CACnE,SAASugC,KAAK,CAACA,IAAIzkF,EAAI0kF,IAAI/rB,IAAI1W,GAAG,EAAGuyD,EAAG9hE,EAAGktE,IAAG,CAAC,EAAElL,EAAI,IAAI,EAAE,CAACxyD,EAAG,CAAC,GAAG,CACnE,SAAS6mF,KAAK,CAAC,OAAAllD,GAAK,EAAQ2wB,EAAG9hE,EAAGs2F,IAAG,CAAC,EAAEt0B,EAAI,IAAI,EAAE,CAACu0B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAApuD,GAAK,EAAQu5B,EAAG9hE,EAAG42F,GAAG,CAAC,EAAE50B,EAAI,IAAI,EAAE,CAACx5B,GAAIquD,IAAIC,IAAIC,GAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAArlD,GAAK,EAAQmwB,EAAG9hE,EAAGi3F,IAAG,CAAC,EAAEj1B,EAAI,IAAI,EAAE,CAACk1B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAA/lD,GAAK,EAAQuwB,EAAG9hE,EAAGu3F,IAAG,CAAC,EAAEv1B,EAAI,IAAI,EAAE,CAACw1B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAA9kD,GAAK,EAAQgvB,EAAG9hE,EAAG63F,IAAG,CAAC,EAAE71B,EAAI,IAAI,EAAE,CAACv5C,GAAIC,GAAIE,GAAIkvE,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAnjD,GAAK,EAAQktB,EAAG9hE,EAAGg4F,IAAG,CAAC,EAAEh2B,EAAI,IAAI,EAAE,CAACi2B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,IAAGzvI,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAO8hB,EAAG1rE,EAAE,EAAE,EAAE,IAAIw2E,IAAGr2E,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAE,IAAI6sB,GAAGt2E,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACpE,SAASimF,KAAK,CAAC,OAAAtjD,GAAK,EAAQ8sB,EAAG9hE,EAAGu4F,IAAG,CAAC,EAAEv2B,EAAI,IAAI,EAAE,CAACw2B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,IAAIhwI,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,EAAE,IAAI8+F,EAAK,EAACmxC,MAAOx8G,EAAEy8G,IAAIlwI,CAAC,EAAE+tD,GAAIt6B,EAAE2vE,EAAG,EAAE,CACpE,SAAS+sC,IAAInwI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE4zB,EAAE,EAAEo2C,GAAIhqE,EAAE4zB,EAAE,EAAE,CAAC,EAAEq2C,GAAIjqE,EAAE4zB,EAAE,EAAE,CAAC,EAAE28G,GAAIvwI,EAAE,EAAEG,EAAE,CAAC,CAAC,CACpE,SAASqwI,IAAIrwI,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAG+uB,GAAIigC,GAAIhvD,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGy0B,EAAG,CAAC,EAAE,GAAG,CAAC,CACpE,SAASooF,IAAItwI,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAG+uB,GAAImgC,GAAIlvD,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGy0B,EAAG,CAAC,EAAE,GAAG,CAAC,CACpE,SAASqoF,IAAGvwI,EAAE,CAAC,OAAO,IAAI8sD,GAAI0jF,IAAIttF,EAAGljD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAE,CAAE,EAAE,EAAE,CAAC,CACpE,SAASywI,GAAGzwI,EAAE,CAAC,OAAGurE,EAAGvrE,EAAE,EAAE,EAAUkjD,EAAGljD,EAAE,EAAE,EAAE,KAAY,CAACA,EAAE,GAAE,EAAG,IAAI,CACpE,SAAS0wI,GAAI1wI,EAAE,CAAO,OAANgoD,GAAK,EAAIujB,EAAGvrE,EAAE,EAAE,GAAG,EAAUkjD,EAAGljD,EAAE,EAAE,GAAG,EAAS,IAAI,CACpE,SAAS2wI,IAAG3wI,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,EAAE,MAAO,CAAC,CAAChoC,EAAE,GAAGA,EAAE,EAAE,CAAC,CACpE,SAAS4wI,GAAI5wI,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,GAAGA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAASA,EAAE,EAAE,CAAC,CACpE,SAAS6wI,GAAI7wI,EAAEyzB,EAAE,CAAC3C,GAAI2C,CAAC,EAAEoyC,GAAG7lE,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,EAAE8wI,IAAI9wI,CAAC,CAAC,CACpE,SAAS+wI,GAAI/wI,EAAEyzB,EAAE,CAAC3C,GAAI2C,CAAC,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,EAAE6lE,GAAG7lE,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,EAAEq9G,IAAI9wI,CAAC,CAAC,CACpE,SAASgxI,IAAIhxI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,EAAE,OAAOH,EAAE4zB,EAAE5zB,IAAK+oC,EAAI5oC,EAAE,EAAEA,EAAE,GAAI,CAAA,CAAE,CACpE,SAASuzE,IAAIvzE,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,OAAAA,EAAEiqD,EAAEh2B,EAAE,CAAC,EAAE5zB,EAAE,CAAC,EAASqzC,EAAImnC,EAAGuuC,EAAI5oH,EAAE,EAAER,CAAC,CAAC,CAAC,CAAC,CACpE,SAASyxI,GAAIjxI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEQ,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEjqD,CAAC,CACpE,SAAS0xI,IAAIlxI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEQ,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEjqD,CAAC,CACpE,SAASytI,IAAGjtI,EAAE,CAACA,GAAGmxI,KAAI38F,KAAKC,MAAK,EAAEqM,GAAM9gD,GAAM+gD,IAAI,KAAIiL,IAAGjL,EAAE,EAAEA,GAAG,GAAI,CACpE,SAASqwF,KAAK,CAAC,OAAAx/C,GAAK,EAAQsnB,EAAG9hE,EAAGi6F,GAAG,CAAC,EAAEj4B,EAAI,IAAI,EAAE,CAACk4B,GAAIC,GAAI3vE,GAAIC,EAAG,CAAC,CAAC,CACpE,SAAS2vE,KAAK,CAAC,OAAAx7C,GAAK,EAAQkjB,EAAG9hE,EAAGkI,IAAG,CAAC,EAAE85D,EAAI,IAAI,EAAE,CAACq4B,GAAIC,GAAIC,GAAItY,EAAG,CAAC,CAAC,CACpE,SAASuY,KAAK,CAAC,OAAA55C,GAAK,EAAQkhB,EAAG9hE,EAAGy6F,IAAG,CAAC,EAAEz4B,EAAI,IAAI,EAAE,CAAC04B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAt2D,GAAK,EAAQs9B,EAAG9hE,EAAG+6F,GAAG,CAAC,EAAE/4B,EAAI,IAAI,EAAE,CAACg5B,GAAIv2D,GAAIw2D,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAp1C,GAAK,EAAQ+b,EAAG9hE,EAAGo7F,IAAG,CAAC,EAAEp5B,EAAI,IAAI,EAAE,CAACq5B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAt2C,GAAK,EAAQ2c,EAAG9hE,EAAG0vB,GAAG,CAAC,EAAEsyC,EAAI,IAAI,EAAE,CAAC05B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAh0C,GAAK,EAAQga,EAAG9hE,EAAG+7F,IAAG,CAAC,EAAE/5B,EAAI,IAAI,EAAE,CAACg6B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CACpE,SAASC,KAAK,CAAC,OAAAl0C,GAAK,EAAQ4Z,EAAG9hE,EAAGq8F,IAAG,CAAC,EAAEr6B,EAAI,IAAI,EAAE,CAACs6B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CACpE,SAASC,IAAI9zI,EAAE,CAAC,OAAAg1H,GAAK,EAAQ5wE,GAAI6wE,GAAIj1H,CAAC,EAAEkjD,EAAGgwD,GAAI+hB,GAAIj1H,CAAC,EAAE,GAAG,EAAE,GAAI,EAAC,IAAI,CACpE,SAAS+zI,GAAI/zI,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAE,EAAE4iG,GAAIr2H,EAAEH,CAAC,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,KAAK,GAAGG,EAAEA,EAAE,KAAKyzB,CAAC,CAAC,CACpE,SAASugH,IAAIh0I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEojF,GAAIhtI,CAAC,EAAEitI,GAAG9sI,EAAE,EAAEypD,EAAEh2B,CAAC,EAAE+lC,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAS4zB,CAAC,CACpE,SAASwgH,IAAIj0I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEojF,GAAIhtI,CAAC,EAAEitI,GAAG9sI,EAAE,EAAEypD,EAAEh2B,CAAC,EAAE+lC,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAS4zB,CAAC,CACpE,SAASygH,IAAIl0I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,GAAGyoB,GAAG,EAAGr8C,EAAE,IAAIuhB,GAAIvhB,GAAKG,GAAG2tE,GAAIl6C,EAAEzzB,CAAC,EAASyzB,CAAC,CACpE,SAAS0gH,GAAIn0I,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGo0I,GAAIp0I,EAAE,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,CAAC,EAASyzB,CAAC,CACpE,SAAS4gH,IAAIr0I,EAAEyzB,EAAE,CAACi4B,GAAG,EAAG,IAAI7rD,EAAE,OAAAA,EAAEqjD,EAAGgwD,GAAIvnD,GAAI3rD,CAAC,EAAE,EAAE,EAAS,CAACH,GAAGA,EAAE,GAAG4zB,CAAC,CAAC,CACpE,SAAS6gH,IAAIt0I,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,GAAG,IAAI,EAAE,CACpE,SAASu0I,IAAIv0I,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,GAAG,IAAI,EAAE,CACpE,SAASw0I,IAAIx0I,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,GAAG,IAAI,EAAE,CACpE,SAASy0I,IAAIz0I,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImC,EAAG,EAAE,OAAOolE,GAAIjtG,EAAE,CAAC,GAAG,IAAI,EAAE,CACpE,SAAS00I,GAAG10I,EAAE,CAAC,IAAIyzB,EAAM,IAAJA,EAAE,EAAQzzB,EAAE,GAAI,GAAEA,EAAE,GAAE,EAAGyzB,EAAEs3E,GAAIt3E,EAAE,CAAC,EAAE,OAAOwtF,GAAGxtF,CAAC,CAAC,CACrE,SAASkhH,IAAG30I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAIs2C,GAAIn2C,EAAE,GAAGH,CAAC,EAAEA,EAAE,GAAG,KAAK4zB,EAAE,GAAG5zB,CAAC,EAASA,EAAE,CAAC,CACrE,SAAS+0I,IAAI50I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE+oC,EAAI5oC,EAAE,EAAE,EAAE,IAAI22D,GAAIljC,EAAEg2B,CAAC,CAAC,CAAC,CACrE,SAASorF,IAAI70I,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOgyG,GAAIx3B,EAAGvgB,GAAGm7C,GAAIj1G,EAAE,EAAEyzB,CAAC,CAAC,CAAC,EAAE4mD,EAAGvgB,GAAGm7C,GAAIj1G,EAAE,EAAEH,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE,SAASi1I,GAAI90I,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOk1I,GAAI/0I,EAAEyzB,EAAE5zB,EAAE0rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,CAAC,CACpE,SAASo7D,IAAIh1I,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOo1I,GAAIj1I,EAAEyzB,EAAE5zB,EAAE0rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,CAAC,CACpE,SAASs7D,IAAIl1I,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOs1I,IAAIn1I,EAAEyzB,EAAE5zB,EAAE0rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,CAAC,CACpE,SAASw7D,GAAIp1I,EAAEyzB,EAAE,CAAC,OAAOzzB,IAAI2qF,GAAK,EAAC0hC,KAAM54F,GAAG44F,GAAI,EAAErsH,GAAGqsH,IAAK54F,GAAG44F,GAAI,EAAE,EAAE,CACrE,SAASgpB,IAAGr1I,EAAEyzB,EAAE,CAAC,OAAOsmC,EAAGtmC,CAAC,IAAIsmC,EAAG/5D,CAAC,EAAE,aAAayzB,GAAG,KAAKw9C,GAAIC,GAAIz9C,CAAC,CAAC,CACrE,SAAS6hH,IAAIt1I,EAAEyzB,EAAE,CAAC,OAAOyvB,EAAGzvB,GAAG,KAAKqmC,GAAGm7C,GAAIj1G,EAAE,EAAE,IAAI,CAAC,EAAEysD,GAAIzsD,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CACrE,SAAS8hH,IAAIv1I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEojF,GAAIhtI,CAAC,EAAE25D,GAAIx5D,EAAE,EAAEypD,EAAEh2B,CAAC,EAAE+lC,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAS4zB,CAAC,CACrE,SAAS+hH,IAAIx1I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAM,IAAJA,EAAE4zB,EAAQ5zB,GAAGutE,GAAIptE,EAAEH,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAEwmG,GAAIxmG,CAAC,EAAE,OAAOG,CAAC,CACrE,SAASy1I,GAAGz1I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEmrH,GAAIzpB,GAAG,IAAIm0C,GAAG11I,EAAEyzB,CAAC,CAAC,CAAC,EAAE22E,GAAG,IAAIsrC,GAAG11I,EAAEyzB,CAAC,CAAC,EAAS5zB,CAAC,CACtE,SAAS81I,GAAI31I,EAAEyzB,EAAE,CAAC+3B,GAAK,EAAC,IAAI3rD,EAAE,OAAAA,EAAEqjD,EAAGljD,EAAE,EAAE,EAAE,GAAE,EAAG41I,IAAI/1I,EAAE4zB,CAAC,EAAS5zB,EAAE,GAAG4zB,CAAC,CAAC,CACrE,SAASoiH,IAAI71I,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAEA,EAAEy2I,IAAIt2I,EAAEK,EAAE4pD,CAAC,EAAE7gB,EAAInV,EAAEsiH,IAAIv2I,EAAEH,CAAC,CAAC,EAAE22I,IAAIh2I,EAAER,EAAEi0B,CAAC,CAAC,CACrE,SAASwiH,IAAIj2I,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKyzB,GAAG5zB,IAAU+pH,IAAI5pH,EAAEyzB,EAAE5zB,CAAC,EAAE6pH,IAAI1pH,EAAEyzB,EAAE5zB,CAAC,EAAC,CACrE,SAASq2I,GAAGl2I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,SAAU,EAACA,EAAE,EAAE,YAAYyzB,EAAE0iH,EAAG,EAAEzqE,GAAG1rE,EAAEH,CAAC,CAAC,CACtE,SAASu2I,IAAG3sF,EAAEzpD,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI5zB,EAAE4zB,EAAE,GAAI,EAACg2B,EAAE,EAAEzpD,CAAC,EAAEH,EAAE4zB,CAAC,CAAC,MAAM,OAAOg2B,EAAE,EAAEzpD,CAAC,CAAE,CACrE,SAASg4G,GAAGvuD,EAAEzpD,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI5zB,EAAE4zB,EAAE,GAAE,EAAGA,EAAE5zB,EAAE4zB,CAAC,CAAC,MAAMA,EAAE,OAAUg2B,EAAE,EAAEzpD,CAAC,EAAEyzB,CAAC,CACtE,SAASwgG,IAAIj0H,EAAE,CAAC,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIqN,IAAI,wBAAwB/yC,CAAC,CAAC,CAAE,CACtE,SAASmmE,GAAInmE,EAAE,CAAC,OAAIA,EAAE,IAAGgsH,GAAIhsH,CAAC,EAAEA,EAAE,EAAE,IAAI+vG,IAAI/vG,EAAEq+G,GAAGr+G,CAAC,EAAE+rH,GAAI/rH,CAAC,GAASA,EAAE,CAAC,CACrE,SAASq2I,GAAIr2I,EAAE,CAAC,OAAAkyE,GAAIlyE,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEA,EAAE,EAAEklD,IAAIllD,CAAC,EAASA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CACtE,SAASs2I,GAAIt2I,EAAE,CAAIA,EAAE,GAAGA,EAAE,IAAUA,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAC,CACtE,SAASu2I,IAAIv2I,EAAE,CAAC,KAAK,EAAE,IAAI+kC,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE/kC,CAAC,CACrE,SAASi0E,GAAIj0E,EAAEyzB,EAAE,CAACgzC,GAAG,EAAGhiC,GAAI,KAAK,KAAKzkC,CAAC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CACrE,SAAS+iH,GAAIx2I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC68E,IAAI,KAAK,KAAK,EAAEzmI,EAAE4pD,CAAC,EAAY,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,CAAC,CACtE,SAASgjH,GAAIz2I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC88E,IAAI,KAAK,KAAK,EAAE1mI,EAAE4pD,CAAC,EAAY,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,CAAC,CACtE,SAASu5F,GAAIhtH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAACG,GAAI,KAAK,KAAKz5F,EAAEg2B,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAE,KAAK,EAAE/sH,EAAE,KAAK,EAAEH,CAAC,CACtE,SAAS62I,GAAI12I,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEkkE,GAAG,KAAK,EAAEspD,IAAI/5F,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAE5zB,CAAC,CACtE,SAASiwC,GAAG9vC,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACvE,SAAS22I,IAAI32I,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEkjD,EAAG0zF,GAAI52I,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CACtE,SAAS62I,GAAI72I,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAO,EAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CACvE,SAASghE,IAAK,CAACj8B,GAAI,KAAK,IAAI,EAAE+wC,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CACvE,SAASghE,IAAI92I,EAAEyzB,EAAE,CAACyrD,GAAI,KAAK,IAAI,EAAE,KAAK,EAAEl/E,EAAE,KAAK,EAAEyzB,EAAEmV,EAAI,KAAK,EAAE,EAAE,IAAI,CAAC,CACrE,SAASmuG,IAAI/2I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAOA,EAAE4zB,GAAG,KAAK8nF,GAAIv7G,EAAEyzB,CAAC,EAAEqmC,GAAGm7C,GAAIj1G,EAAE,EAAEyzB,CAAC,CAAC,EAAEynC,GAAGr7D,CAAC,CAAC,CACtE,SAASm3I,IAAIh3I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAOA,EAAE4zB,GAAG,KAAK8nF,GAAIv7G,EAAEyzB,CAAC,EAAEqmC,GAAGm7C,GAAIj1G,EAAE,EAAEyzB,CAAC,CAAC,EAAEynC,GAAGr7D,CAAC,CAAC,CACtE,SAAS6sH,IAAI1sH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,EAAE5zB,EAAGgmE,GAAG7lE,EAAEH,EAAE,IAAIm4B,GAAIkrB,EAAGljD,EAAEH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,CACtE,SAASo3I,IAAIj3I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,EAAEH,GAAG,GAAGG,EAAE,EAAEH,CAAC,IAAI4zB,EAAE5zB,CAAC,EAAEA,IAAI,CAAC,OAAOA,EAAE,CAAC,CACvE,SAASq3I,IAAIl3I,EAAEyzB,EAAE,CAACjH,GAAG,EAAG,IAAI3sB,EAAgB,OAAdA,EAAEG,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAK5zB,GAAG,EAAUA,EAAS,CAAC,CACtE,SAASs3I,IAAIn3I,EAAEyzB,EAAE,CAAQ,OAAP3C,GAAI2C,CAAC,EAAKzzB,EAAE,GAAG,KAAakuG,IAAIz6E,EAAE,GAAGzzB,EAAE,CAAC,CAAC,EAAS6tE,EAAG,CACvE,SAASupE,GAAGp3I,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAU,IAAIyqG,GAAIzqG,CAAC,GAAEyzB,EAAE,IAAIstC,GAAI4gC,GAAGluE,EAAEzzB,CAAC,EAASyzB,EAAC,CACvE,SAAS4jH,GAAIr3I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAO4zB,EAAE,EAAE,GAAG6jH,IAAIt3I,EAAEyzB,EAAE,EAAE,GAAE,GAAI5zB,EAAE,IAAI+5B,IAAInG,CAAC,EAAE5zB,EAAC,CAAE,CAAC,CACvE,SAAS03I,GAAIv3I,EAAE,CAACw3I,GAAG,EAAGvrE,IAAI,KAAKghC,GAAI4tB,GAAIrpB,GAAIxxG,EAAE,EAAE,EAAE86H,EAAG,CAAC,EAAE7tB,GAAI4tB,GAAI76H,EAAE86H,EAAG,CAAC,CAAC,CAAC,CACvE,SAASh0C,KAAK,CAACA,IAAIpiF,EAAIqiF,IAAI1pB,IAAIwpB,GAAK,EAACqyB,EAAG9hE,EAAG66E,IAAG,CAAC,EAAE7Y,EAAI,IAAI,EAAE,CAAC8Y,GAAIC,GAAG,CAAC,GAAG,CACvE,SAASjrC,KAAK,CAACA,IAAIxiF,EAAIyiF,IAAI9pB,IAAI4pB,GAAK,EAACiyB,EAAG9hE,EAAGi7E,IAAG,CAAC,EAAEjZ,EAAI,IAAI,EAAE,CAACkZ,IAAIC,EAAG,CAAC,GAAG,CACvE,SAAShpC,KAAK,CAACA,IAAI7kF,EAAI8kF,IAAInsB,IAAIisB,GAAK,EAAC4vB,EAAG9hE,EAAGq7E,IAAG,CAAC,EAAErZ,EAAI,IAAI,EAAE,CAACsZ,GAAIC,EAAG,CAAC,GAAG,CACvE,SAAS/2B,KAAK,CAACA,IAAIl3F,EAAIm3F,IAAIx+B,IAAIs+B,GAAK,EAACud,EAAG9hE,EAAGy7E,IAAG,CAAC,EAAEzZ,EAAI,IAAI,EAAE,CAAC0Z,GAAIC,EAAG,CAAC,GAAG,CACvE,SAAStkC,KAAK,CAACA,IAAI/pF,EAAIgqF,IAAIrxB,IAAImxB,GAAK,EAAC0qB,EAAG9hE,EAAGk3E,IAAG,CAAC,EAAElV,EAAI,IAAI,EAAE,CAACmV,GAAIC,GAAG,CAAC,GAAG,CACvE,SAASn/B,KAAK,CAACA,IAAI3qF,EAAI4qF,IAAIjyB,IAAI+xB,GAAK,EAAC8pB,EAAG9hE,EAAG82E,IAAG,CAAC,EAAE9U,EAAI,IAAI,EAAE,CAAC+U,IAAIC,EAAG,CAAC,GAAG,CACvE,SAAS36B,KAAK,CAACA,IAAI/uF,EAAIgvF,IAAIr2B,IAAIm2B,GAAK,EAAC0lB,EAAG9hE,EAAG02E,IAAG,CAAC,EAAE1U,EAAI,IAAI,EAAE,CAAC2U,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASn7B,KAAK,CAACA,IAAInuF,EAAIouF,IAAIz1B,IAAIu1B,GAAK,EAACsmB,EAAG9hE,EAAG83E,IAAG,CAAC,EAAE9V,EAAI,IAAI,EAAE,CAAC+V,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASniC,KAAK,CAACA,IAAIvoF,EAAIwoF,IAAI7vB,IAAI2vB,GAAK,EAACksB,EAAG9hE,EAAGs3E,IAAG,CAAC,EAAEtV,EAAI,IAAI,EAAE,CAACuV,IAAIC,EAAG,CAAC,GAAG,CACvE,SAAS/9B,KAAK,CAACA,IAAInsF,EAAIosF,IAAIzzB,IAAIuzB,GAAK,EAACsoB,EAAG9hE,EAAG03E,IAAG,CAAC,EAAE1V,EAAI,IAAI,EAAE,CAAC2V,GAAIC,GAAG,CAAC,GAAG,CACvE,SAASv5B,KAAK,CAACA,IAAI/wF,EAAIgxF,IAAIr4B,IAAIm4B,GAAK,EAAC0jB,EAAG9hE,EAAGs4E,IAAG,CAAC,EAAEtW,EAAI,IAAI,EAAE,CAACuW,GAAIC,EAAG,CAAC,GAAG,CACvE,SAAS/6B,KAAK,CAACA,IAAInwF,EAAIowF,IAAIz3B,IAAIu3B,GAAK,EAACskB,EAAG9hE,EAAGk4E,IAAG,CAAC,EAAElW,EAAI,IAAI,EAAE,CAACmW,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASv6B,KAAK,CAACA,IAAIvwF,EAAIwwF,IAAI73B,IAAI23B,GAAK,EAACkkB,EAAG9hE,EAAG04E,IAAG,CAAC,EAAE1W,EAAI,IAAI,EAAE,CAAC2W,GAAIC,EAAG,CAAC,GAAG,CACvE,SAAS36B,KAAK,CAACA,IAAI3wF,EAAI4wF,IAAIj4B,IAAI+3B,GAAK,EAAC8jB,EAAG9hE,EAAG84E,IAAG,CAAC,EAAE9W,EAAI,IAAI,EAAE,CAAC+W,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASv6B,KAAK,CAACA,IAAInxF,EAAIoxF,IAAIz4B,IAAIu4B,GAAK,EAACsjB,EAAG9hE,EAAGk5E,IAAG,CAAC,EAAElX,EAAI,IAAI,EAAE,CAACmX,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASv5B,KAAK,CAACA,IAAIvyF,EAAIwyF,IAAI75B,IAAI25B,GAAK,EAACkiB,EAAG9hE,EAAGs5E,IAAG,CAAC,EAAEtX,EAAI,IAAI,EAAE,CAACuX,GAAIC,GAAG,CAAC,GAAG,CACvE,SAAS/5B,KAAK,CAACA,IAAInyF,EAAIoyF,IAAIz5B,IAAIu5B,GAAK,EAACsiB,EAAG9hE,EAAGgI,IAAG,CAAC,EAAEg6D,EAAI,IAAI,EAAE,CAAC8X,GAAIC,EAAG,CAAC,GAAG,CACvE,SAAS16B,KAAK,CAACA,IAAI/xF,EAAIgyF,IAAIr5B,IAAIm5B,GAAK,EAAC0iB,EAAG9hE,EAAG05E,IAAG,CAAC,EAAE1X,EAAI,IAAI,EAAE,CAAC2X,GAAIC,GAAG,CAAC,GAAG,CACvE,SAASv5B,KAAK,CAACA,IAAI/yF,EAAIgzF,IAAIr6B,IAAIm6B,GAAK,EAAC0hB,EAAG9hE,EAAGi6E,IAAG,CAAC,EAAEjY,EAAI,IAAI,EAAE,CAACkY,IAAIC,EAAG,CAAC,GAAG,CACvE,SAASj3B,KAAK,CAACA,IAAI51F,EAAI61F,IAAIl9B,IAAIg9B,GAAK,EAAC6e,EAAG9hE,EAAGq6E,IAAG,CAAC,EAAErY,EAAI,IAAI,EAAE,CAACsY,GAAIC,GAAG,CAAC,GAAG,CACvE,SAASh4B,KAAK,CAACA,IAAIj1F,EAAIk1F,IAAIv8B,IAAIq8B,GAAK,EAACwf,EAAG9hE,EAAGy6E,IAAG,CAAC,EAAEzY,EAAI,IAAI,EAAE,CAAC0Y,GAAIC,EAAG,CAAC,GAAG,CACvE,SAASn9B,IAAK,CAACA,GAAIlwF,EAAI6qH,GAAI,IAAIx8D,GAAI,QAAQ,CAAC,EAAEy8D,GAAI,IAAIz8D,GAAI,QAAQ,CAAC,CAAC,CACpE,SAAS0kF,IAAIz3I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE,IAAIgxC,GAAGg5E,GAAIhqH,EAAE,IAAI4zB,EAAE,CAAC,EAAEo2F,GAAIhqH,EAAE,IAAI4zB,EAAE,CAAC,EAAEioF,GAAI17G,EAAEH,CAAC,CAAC,CACvE,SAAS63I,IAAI13I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE,IAAIgxC,GAAGg5E,GAAIhqH,EAAE,IAAI4zB,EAAE,CAAC,EAAEo2F,GAAIhqH,EAAE,IAAI4zB,EAAE,CAAC,EAAEioF,GAAI17G,EAAEH,CAAC,CAAC,CACvE,SAAS83I,IAAI33I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEA,EAAE,GAAM,GAAG5pD,EAAE+3I,IAAI53I,EAAEyzB,CAAC,EAAEg2B,EAAEA,EAAE5pD,QAAQA,GAAG,OAAO4pD,CAAC,CACvE,SAASouF,GAAI73I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAU,IAAR5pD,EAAE4zB,EAAEg2B,EAAE,EAAQ5pD,EAAE,GAAG4pD,GAAGzpD,EAAE,EAAEH,CAAC,EAAEA,GAAGA,EAAE,CAACA,EAAE,OAAO4pD,CAAC,CACvE,SAASquF,IAAI93I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAM,IAAJA,EAAE4zB,EAAQ5zB,GAAGutE,GAAIptE,EAAE,CAACH,EAAE,EAAE,CAACA,EAAE,CAAC,EAAEA,EAAEwmG,GAAIxmG,CAAC,EAAE,OAAOG,CAAC,CACvE,SAAS+3I,GAAI/3I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAS,IAAP34B,GAAI2C,CAAC,EAAMg2B,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,MAAO5pD,EAAE4pD,EAAE,GAAE,EAAGh2B,EAAE,GAAG5zB,CAAC,CAAE,CACxE,SAASm4I,IAAGh4I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE4zB,EAAE,GAAI,EAAQ,IAAIgvB,GAAG5iD,EAAEG,EAAE,EAAE,GAAGH,EAAEqjD,EAAGzvB,EAAE,GAAI,EAAC,EAAE,CAAC,CAAC,CAAC,CACxE,SAASkoC,GAAI37D,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEA,EAAE,IAAIoF,GAAIpF,EAAE,EAAEi0B,EAAEj0B,EAAE,EAAEK,EAAEL,EAAE,EAAEiqD,EAAEA,EAAE,EAAE5pD,EAAE,EAAEL,EAAE,EAAEQ,EAAE,CAAC,CACvE,SAAS81G,GAAI91G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,GAAGoT,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEyzB,CAAC,GAAGzzB,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAS4pD,CAAC,CACxE,SAASwuF,IAAIj4I,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOqjD,EAAGzvB,GAAG,KAAKgtF,GAAIzgH,EAAE,EAAE,KAAKH,CAAC,EAAE43H,GAAIz3H,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAE,GAAG,CAAC,CACvE,SAASq4I,GAAIl4I,EAAE,CAAC,OAASA,EAAE,GAAKA,EAAE,EAAEgmI,GAAIhmI,EAAE,CAAC,EAAE,KAAKgmI,GAAIhmI,EAAE,CAAC,EAAE,KAAKyxE,GAAIzxE,CAAC,CAAC,CACtE,SAASm4I,GAAIn4I,EAAEyzB,EAAE,CAAC,OAAQ+qF,GAAIx+G,CAAC,EAAEs+C,GAAI,IAAIssD,GAAI5qG,EAAE,IAAI4jH,GAAInwF,EAAEzzB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG+mD,EAAG,CAAC,CACxE,SAASqxF,KAAK,CAAC,OAAAtuD,GAAK,EAAQovB,EAAG9hE,EAAGyxB,IAAG,CAAC,EAAEuwC,EAAI,IAAI,EAAE,CAACi/B,GAAIC,GAAIC,GAAIC,GAAI7f,EAAG,CAAC,CAAC,CACxE,SAAS8f,KAAK,CAAC,OAAA35C,EAAK,EAAQoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,CAAC,CACvE,SAAS61C,IAAGrlH,EAAE,CAAC,OAAAgjB,GAAI,EAAQ,UAAU,CAAC,OAAOs2F,IAAGt5G,EAAE,KAAK,SAAS,CAAO,CAAC,CACxE,SAASslH,KAAI,CAAC,OAAG,KAAK,IAAY,KAAK,IAAK,EAAS,IAAI,OAAM,QAAO,CAAE,CACxE,SAASpyC,GAAI3mG,EAAE,CAAC,MAAG,CAACA,EAAE,GAAG,CAACA,EAAE,EAAU,GAAa,CAAC,CAACA,EAAE,EAAE,GAAGA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CACxE,SAASg5I,IAAGh5I,EAAE,CAAC,GAAG,CAACA,EAAE,EAAE,GAAI,EAAE,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,OAAAloC,EAAE,EAAE,GAAYA,EAAE,EAAE,IAAI,CACxE,SAASi5I,GAAGj5I,EAAE,CAACA,EAAE,EAAE,EAAEutD,GAAIvtD,EAAE,EAAE,IAAI,EAAEutD,GAAIvtD,EAAE,EAAE,IAAI,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,CACxE,SAASk5I,GAAIl5I,EAAE,CAAC+sD,IAAI,KAAK,KAAK/sD,GAAG,KAAKixE,GAAIC,GAAIlxE,CAAC,EAAEurE,EAAGvrE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,IAAI,CAAC,CACxE,SAASm5I,IAAIn5I,EAAE,CAACo5I,IAAG,EAAG5zG,IAAI,IAAI,EAAE,KAAK,EAAE,IAAIoH,GAAIysG,GAAI,KAAKr5I,CAAC,EAAE6lG,GAAI,KAAK,EAAE7lG,CAAC,CAAC,CACxE,SAASs5I,KAAK,CAACx0G,GAAI,IAAI,EAAE,KAAK,EAAE,IAAIswB,GAAI+hD,GAAIA,EAAG,EAAE,KAAK,EAAE,IAAI/hD,GAAIiiD,GAAIA,EAAG,CAAC,CACxE,SAASkiC,IAAIv5I,EAAEyzB,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAEA,EAAE+oC,IAAI,KAAK,KAAKx8D,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACxE,SAASw5I,GAAIx5I,EAAE,CAACy5I,GAAK,EAAI,CAAA9zE,KAAY,KAAK,EAAE3lE,EAAE,KAAK,EAAE,GAAK,KAAK,EAAE,IAAI6kC,EAAG,CACxE,SAAS40G,IAAK,CAACA,GAAI/0I,EAAIihE,GAAI,GAAK+zE,IAAI,GAAMC,IAAI,GAAMC,IAAI,GAAMC,IAAI,EAAK,CACvE,SAASC,GAAI95I,EAAEyzB,EAAE,CAAC,OAAG83C,EAAG93C,EAAE,GAAG,EAAU4uD,GAAIriF,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAE,CAAC,EAAS,EAAK,CACxE,SAASsmH,GAAI/5I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,EAAIG,IAAIH,GAAGG,EAAE,EAAE,EAAE,GAAKyzB,IAAI5zB,GAAG4zB,EAAE,EAAE,EAAE,GAAU5zB,CAAC,CACxE,SAASm6I,GAAIh6I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGi4B,GAAIn7E,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAS5zB,GAAIqjD,EAAGi4B,GAAIn7E,EAAE,EAAEyzB,CAAC,EAAE,EAAE,CAAC,CACxE,SAASwmH,IAAIj6I,EAAE,CAAC,KAAK,EAAEA,EAAEm8D,GAAI,KAAK,KAAKn8D,CAAC,EAAE,KAAK,EAAEkjD,EAAGoqB,GAAI,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACxE,SAAS4sE,IAAIl6I,EAAE,CAAC,KAAK,EAAEA,EAAEy0E,GAAI,KAAK,KAAKz0E,CAAC,EAAE,KAAK,EAAEkjD,EAAGoqB,GAAI,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CACxE,SAAS0+C,GAAIhsH,EAAE,CAAC,OAAIA,EAAE,IAAGA,EAAE,EAAE,IAAIyjC,IAAIzjC,CAAC,EAAEk5E,GAAI,IAAI3mC,IAAIvyC,CAAC,EAAE,EAAEA,EAAE,CAAC,GAASA,EAAE,CAAC,CACxE,SAASm6I,KAAK,CAAC,OAAAp+C,GAAK,EAAQmd,EAAG9hE,EAAGgjG,GAAG,CAAC,EAAEhhC,EAAI,IAAI,EAAE,CAACihC,GAAI94E,GAAID,GAAII,GAAID,EAAG,CAAC,CAAC,CACxE,SAAS64E,KAAK,CAAC,OAAA38C,GAAK,EAAQub,EAAG9hE,EAAGmjG,GAAG,CAAC,EAAEnhC,EAAI,IAAI,EAAE,CAACohC,GAAIC,GAAIC,IAAIC,GAAIC,GAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAApgD,GAAK,EAAQye,EAAG9hE,EAAG0jG,GAAG,CAAC,EAAE1hC,EAAI,IAAI,EAAE,CAAC2hC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAAthD,GAAK,EAAQof,EAAG9hE,EAAGikG,IAAG,CAAC,EAAEjiC,EAAI,IAAI,EAAE,CAACkiC,IAAIC,GAAIC,IAAIC,GAAIC,GAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAAvoD,GAAK,EAAQ8lB,EAAG9hE,EAAGwkG,IAAG,CAAC,EAAExiC,EAAI,IAAI,EAAE,CAACyiC,IAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAA9tD,GAAK,EAAQ8qB,EAAG9hE,EAAG+kG,IAAG,CAAC,EAAE/iC,EAAI,IAAI,EAAE,CAACgjC,GAAIC,IAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAA7jD,GAAK,EAAQsgB,EAAG9hE,EAAGslG,IAAG,CAAC,EAAEtjC,EAAI,IAAI,EAAE,CAACujC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAAxvD,GAAK,EAAQ0rB,EAAG9hE,EAAG6lG,IAAG,CAAC,EAAE7jC,EAAI,IAAI,EAAE,CAAC8jC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASC,KAAK,CAAC,OAAAvsD,GAAK,EAAQkoB,EAAG9hE,EAAGomG,IAAG,CAAC,EAAEpkC,EAAI,IAAI,EAAE,CAACqkC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxE,SAASt5C,IAAK,CAACA,GAAI7/F,EAAI,IAAI1E,EAAEyzB,EAAEo0G,IAAKrrF,GAAG,EAAG/oB,EAAE,IAAI4U,GAAI5U,GAAG8wG,IAAKvkI,EAAE,IAAIstC,GAAIttC,EAAE,CACxE,SAAS89I,IAAI99I,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,IAAGyzB,EAAEzzB,EAAE,EAAEurE,EAAG93C,EAAE,EAAE,IAAIzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,IAAUzzB,EAAE,CAAC,CACxE,SAAS+9I,IAAG/9I,EAAE,CAAkB,OAAjBA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAE,EAAMA,EAAE,GAAG,GAAGA,EAAE,EAAE,EAAS,IAAY,EAAK,CACzE,SAASg+I,GAAGh+I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAAh2B,EAAEzzB,EAAE82G,GAAIj3G,EAAEG,GAAG,GAAG82G,GAAIrtD,EAAEzpD,EAAE,EAAE+2G,GAAI,EAASz3C,GAAG7rC,EAAE5zB,EAAE4pD,CAAC,CAAC,CACzE,SAASw0F,IAAGj+I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE60D,GAAI7qF,CAAC,CAAE,CACzE,SAASyqH,IAAGl+I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE5pD,EAAEqjD,EAAGi7F,IAAGn+I,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAK5zB,IAAG4pD,EAAE5pD,EAAE,GAAE,EAAGA,EAAE,GAAE,EAAGG,EAAE,GAAGypD,EAAE,CACzE,SAAS20F,IAAIp+I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE4zB,EAAE,GAAE,EAAGg2B,EAAEo6B,GAAI7jF,EAAEH,CAAC,EAAS,CAAC,CAAC4pD,GAAGg4D,GAAIh4D,EAAE,EAAEh2B,EAAE,GAAI,CAAA,CAAC,CACzE,SAAS4qH,GAAIr+I,EAAEyzB,EAAE,CAAC,OAAGA,GAAG,GAAGzzB,EAAE,GAAG,EAAUA,EAASyzB,EAAE,EAAE6qH,IAAIt+I,EAAEyzB,CAAC,EAAE8qH,IAAIv+I,EAAE,CAACyzB,CAAC,CAAC,CACzE,SAAS+qH,GAAIx+I,EAAEyzB,EAAE,CAAC,OAAGA,GAAG,GAAGzzB,EAAE,GAAG,EAAUA,EAASyzB,EAAE,EAAE8qH,IAAIv+I,EAAEyzB,CAAC,EAAE6qH,IAAIt+I,EAAE,CAACyzB,CAAC,CAAC,CACzE,SAASgrH,GAAGz+I,EAAE,CAAC,GAAG0+I,GAAG1+I,CAAC,EAAG,OAAAA,EAAE,EAAEA,EAAE,EAASA,EAAE,EAAE,GAAI,EAAM,MAAM0lC,EAAI,IAAIwC,EAAG,CAAE,CACzE,SAASy2G,IAAI3+I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEzzB,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAASyzB,EAAE,IAAIk3D,KAAMi0D,KAAM/+I,EAAE,GAAG++I,EAAG,CACzE,SAASC,GAAI7+I,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAI83F,GAAIuzB,GAAIrrH,EAAEzzB,CAAC,EAAE8iF,EAAIrvD,GAAGnG,GAAG,EAAGyxH,IAAK,IAAI,EAAStrH,CAAC,CACzE,SAASurH,GAAIh/I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAOA,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAEg2B,GAAG,EAAEzpD,EAAE,GAAGypD,EAAE5pD,EAAE,EAAI,EAAEo/I,GAAIj/I,EAAEyzB,EAAE5zB,CAAC,CAAC,CACzE,SAASq/I,GAAIl/I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,IAAIA,EAAE,EAAEA,EAAE2/I,GAAI3/I,IAAKmwG,GAAI3vG,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,CAAC,EAAEK,EAAE4pD,EAAEh2B,EAAE,CAAC,CAAC,CAAE,CACzE,SAAS2rH,GAAIp/I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,IAAIA,EAAE,EAAEA,EAAE6/I,GAAI7/I,IAAKkwG,GAAI1vG,EAAE,EAAER,CAAC,EAAEi0B,EAAE,CAAC,EAAE5zB,EAAE4pD,EAAEh2B,EAAE,CAAC,CAAC,CAAE,CACzE,SAASqzG,GAAI9mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC8mI,IAAI,KAAK,KAAK7yG,EAAEg2B,EAAEjqD,CAAC,EAAY,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACxE,SAASqnI,GAAIlnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC+mI,IAAI,KAAK,KAAK9yG,EAAEg2B,EAAEjqD,CAAC,EAAY,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACxE,SAAS2nI,GAAIxnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC8/I,IAAI,KAAK,KAAK7rH,EAAEg2B,EAAEjqD,CAAC,EAAY,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACxE,SAAS0/I,GAAIv/I,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC8/I,IAAI,KAAK,KAAK7rH,EAAEg2B,EAAEjqD,CAAC,EAAY,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACxE,SAASqnH,IAAIlnH,EAAEyzB,EAAE5zB,EAAE,CAACmkC,GAAI,KAAK,KAAKnkC,CAAC,EAAE,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,GAAG+rH,KAAMC,GAAI,CACzE,SAASH,IAAIt/I,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,EAAE,EAAE,KAAK,EAAE5zB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CACzE,SAAS6/I,IAAI1/I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE,IAAI0gB,GAAInqE,EAAE,CAAC,EAAE28D,GAAGlT,EAAEzpD,EAAE,EAAE,CAAC,EAAEygH,GAAIh3D,EAAE,EAAEh2B,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,EAAEypD,CAAC,CACzE,SAASk2F,GAAI3/I,EAAEyzB,EAAE,CAACzzB,EAAE,GAAGA,EAAE,EAAE,CAAC,EAAEitE,GAAIjtE,EAAEA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEyzB,CAAC,CAAC,EAAEzzB,EAAE,GAAGA,EAAE,IAAIyzB,CAAC,EAAEzzB,EAAE,GAAE,CAAE,CACzE,SAAS4/I,GAAI5/I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAEA,EAAE,GAAGH,EAAE4zB,CAAC,EAAEzzB,EAAE,GAAE,CAAE,CACzE,SAAS6/I,GAAG7/I,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA21C,GAAGx1C,CAAC,EAAEyzB,EAAEstF,IAAG/gH,EAAE,MAAM,EAAEH,EAAE,IAAIk1E,GAAIthD,CAAC,EAAEo6E,GAAIhuG,EAAEG,CAAC,EAASH,CAAC,CAC1E,SAASigJ,GAAG9/I,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,GAAG+hB,GAAGx1C,CAAC,EAAEA,EAAE,IAAImlF,GAAInlF,CAAC,EAAEuhG,GAAGvhG,EAAE,GAAE,CAAE,GAAG+/I,GAAItsH,CAAC,EAASkhF,GAAGlhF,CAAC,CAAC,CAC1E,SAASijF,GAAI12G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,GAAGg9D,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEyzB,CAAC,GAAGorB,GAAI7+C,EAAE,EAAEyzB,EAAE,CAAC,EAAS5zB,CAAC,CAC1E,SAASqzE,GAAGlzE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGljD,EAAE,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAE,CAAC5zB,IAAIA,EAAEG,EAAE,GAAGyzB,CAAC,GAAUzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAC1E,SAAS6sE,GAAI1sE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,GAAGixB,GAAI9wB,CAAC,EAAEA,GAAGypD,GAAG34B,GAAI2C,CAAC,EAAEA,GAAU5zB,GAAG4pD,EAAE,EAAE5pD,EAAE4pD,EAAE,GAAG,CAAC,CAC1E,SAASu2F,IAAIhgJ,EAAE,CAAC,IAAIyzB,EAAY,OAAVA,EAAEzzB,EAAE,EAAEA,EAAE,EAAK,MAAMyzB,CAAC,GAAGqxD,GAAI9kF,EAAE,CAAC,EAAUA,EAAE,EAASyzB,CAAC,CAC1E,SAASwsH,GAAIjgJ,EAAEyzB,EAAE,CAAC,OAACzzB,EAAE,EAAqBw7D,GAAIx7D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAIwwE,GAAIxwE,EAAE,CAAC,EAAgBs7D,GAAIt7D,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CAC1E,SAAS6zE,GAAG7zE,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGA,EAAEyzB,EAAG,MAAMiS,EAAI,IAAIwM,GAAIguG,GAAGlgJ,EAAEyzB,EAAE,OAAO,CAAC,CAAC,EAAE,OAAOzzB,CAAC,CAC1E,SAASmgJ,GAAIngJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,OAAAA,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,GAAG,CAAC,EAAE2sH,IAAI5gJ,EAAEQ,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAASjqD,CAAC,CAC1E,SAAS6gJ,IAAGrgJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,YAAYyzB,EAAE,GAAG,GAAGzzB,EAAE,EAAE,WAAWyzB,CAAC,EAAEi4C,GAAG1rE,EAAEH,CAAC,CAAC,CAC1E,SAASygJ,IAAItgJ,EAAEyzB,EAAE,CAAC,OAAO1wB,EAAK,KAAK,IAAIw9I,GAAI9sH,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAAC,EAAEugJ,GAAI9sH,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CACzE,SAASwgJ,GAAIxgJ,EAAEyzB,EAAE,CAAC,OAAO2mC,GAAG3mC,CAAC,EAAEA,GAAG,KAAKgtH,GAAIzgJ,EAAE,EAAE,IAAI,EAAE0gJ,IAAI1gJ,EAAE,EAAEyzB,CAAC,EAAEgtH,GAAIzgJ,EAAE,EAAEyzB,CAAC,CAAC,CAC1E,SAASktH,GAAI3gJ,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAIk4B,EAAI,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,CAAC,CAAC,CAC1E,SAAS0oH,IAAK,CAAC,KAAK,EAAE,IAAI/7G,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,CAAG,CAC1E,SAASsF,KAAK,CAAC,KAAK,EAAE,IAAIH,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAInF,EAAI,KAAK,EAAE,IAAIA,CAAG,CAC1E,SAASg8G,IAAI7gJ,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE+oC,EAAInV,EAAE,EAAE,IAAI,EAAEmV,EAAI/oC,EAAE,EAAE,IAAI,CAAC,CAC1E,SAASkkH,IAAI/jH,EAAEyzB,EAAE,CAAC6oC,IAAI,KAAK,KAAK7oC,EAAE,GAAI,EAACA,EAAE,KAAK,EAAE,EAAE3C,GAAI9wB,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC1E,SAASwwF,IAAIjkH,EAAEyzB,EAAE,CAAC+oC,IAAI,KAAK,KAAK/oC,EAAE,GAAI,EAACA,EAAE,KAAK,EAAE,EAAE3C,GAAI9wB,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC1E,SAASowF,GAAI7jH,EAAEyzB,EAAE,CAACgpC,GAAI,KAAK,KAAKhpC,EAAE,GAAI,EAACA,EAAE,KAAK,EAAE,EAAE3C,GAAI9wB,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC1E,SAASqtH,GAAI9gJ,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE+oC,EAAI5oC,EAAE,EAAE,IAAI,EAAE4oC,EAAInV,EAAE,EAAE,IAAI,CAAC,CAC1E,SAASstH,IAAK,CAAC,KAAK,EAAE,IAAIn0G,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC1E,SAASo0G,IAAK,CAACA,GAAIt8I,EAAIu8I,GAAI,IAAIh+G,GAAI,qCAAqC,CAAC,CACzE,SAASjX,KAAK,CAACA,IAAItnB,EAAIw8I,IAAI,IAAIpjF,GAAI,4BAA4BkuB,KAAMqjD,IAAK,CAC1E,SAAS75C,IAAK,CAACA,GAAI9wF,EAAIirH,GAAI,IAAIn8D,GAAI,UAAU,CAAC,EAAEo8D,GAAI,IAAIp8D,GAAI,WAAW,CAAC,CAAC,CACzE,SAASggC,IAAK,CAACA,GAAI9uF,EAAIqpH,GAAI,IAAIr7D,GAAI,UAAU,CAAC,EAAEs7D,GAAI,IAAIt7D,GAAI,YAAY,CAAC,CAAC,CAC1E,SAASgnC,IAAK,CAACA,GAAIh1F,EAAIotH,GAAI,IAAIr9D,GAAI,QAAQ,CAAC,EAAEs9D,GAAI,IAAIt9D,GAAI,cAAc,CAAC,CAAC,CAC1E,SAAS0sF,IAAInhJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEuhJ,IAAIphJ,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE,IAAI+2H,GAAIl3H,EAAE,EAAE,MAAM,EAASwhJ,IAAIrhJ,EAAEH,CAAC,CAAC,CAC1E,SAASyhJ,IAAIthJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,QAAEzpD,EAAE,EAAE,EAAEA,EAAE,EAAEypD,EAAEvG,EAAGljD,EAAE,EAAEyzB,CAAC,EAAE,GAAG5zB,CAAC,EAAE,GAAG,EAAS4pD,EAAE,GAAE,CAAE,CAC1E,SAAS83F,IAAIvhJ,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,IAAGyzB,EAAEzzB,EAAE,EAAEurE,EAAG93C,EAAE,GAAG,IAAIzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,IAAUzzB,EAAE,CAAC,CAC1E,SAAS4yG,GAAI5yG,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAGA,EAAE,EAAG,OAAO4yG,GAAI5yG,EAAE,CAAC,MAAQ,QAAOA,EAAE,OAAO,IAAI,CAC1E,SAASwhJ,IAAIxhJ,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAUzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAU,CAAC,CAC1E,SAASguH,GAAIzhJ,EAAEyzB,EAAE,CAAQ,OAAP3C,GAAI2C,CAAC,EAAKzzB,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,EAAS,IAAY,EAAK,CAC3E,SAAS0hJ,IAAI1hJ,EAAEyzB,EAAE,CAAC,OAAG2wB,GAAIpkD,EAAE,EAAEyzB,CAAC,GAAG+sH,GAAIxgJ,EAAE,EAAEyzB,CAAC,EAAS,IAAiB,EAAM,CAC1E,SAASkuH,IAAG3hJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEzzB,EAAE,KAAKH,EAAEqjD,EAAGljD,EAAE,KAAK,EAAE,EAASkhG,GAAGrhG,EAAE,GAAE,EAAG,IAAIyxB,IAAGmC,CAAC,CAAC,CAAC,CAC3E,SAASmuH,IAAI5hJ,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEyvB,EAAGkyB,GAAIp1E,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE,CAAC,EAAS,IAAIglF,GAAIhlF,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAAC,CAC3E,SAAS6hJ,IAAI7hJ,EAAE,CAAC,IAAIyzB,EAAE,OAAA+qF,GAAIx+G,CAAC,EAAEyzB,EAAE,IAAI0uE,IAAIniG,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAS,IAAI06E,GAAI16E,EAAEyzB,CAAC,CAAC,CAC3E,SAASquH,IAAI9hJ,EAAE,CAAC,IAAIyzB,EAAa,IAAX8qB,GAAIv+C,CAAC,EAAEyzB,EAAE,EAAQzzB,EAAE,EAAE,GAAG,IAAI4G,GAAG,GAAG6sB,EAAEs3E,GAAIt3E,EAAE,CAAC,EAAE,OAAOA,CAAC,CAC3E,SAASsuH,GAAI/hJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAM,IAAJiqD,EAAE,EAAMjqD,EAAE,EAAEA,EAAEi0B,EAAE,OAAOj0B,IAAKiqD,GAAGzpD,EAAE,GAAGyzB,EAAEj0B,CAAC,EAAEiqD,EAAE5pD,CAAC,CAAE,CAC1E,SAASkiH,IAAI/hH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAKG,EAAE,IAAGH,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,EAAE5zB,EAAE,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAEG,EAAE,EAAE,EAAE,CAC3E,SAASgiJ,GAAGhiJ,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAk7G,GAAGtnF,EAAEzzB,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,EAAE+6G,GAAGl7G,EAAEG,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,EAASA,EAAE,EAAEyzB,CAAC,EAAE5zB,CAAC,CAAC,CAC3E,SAASoiJ,GAAIjiJ,EAAEyzB,EAAE,CAACowC,GAAG,EAAG,KAAK,EAAE7jE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAEk5G,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC1gG,CAAC,CAAC,CAAC,CAC3E,SAASqnD,GAAG96E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAGA,EAAOA,EAAE,EAAP,IAAQ,CAC3E,SAASy4F,GAAIliJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEQ,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,EAAEQ,EAAE,EAAEyzB,CAAC,CAC3E,SAAS0uH,IAAIniJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC24F,IAAIpiJ,EAAEyzB,EAAE5zB,EAAEo1I,GAAIj1I,EAAEyzB,EAAEg2B,EAAE8hB,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,CAAC,CAAC,CAC1E,SAASyoE,IAAIriJ,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAE,mBAAmB,CAAC,EAAEynC,GAAG0tD,EAAI5oH,GAAGghJ,GAAK,EAACC,GAAG,CAAE,EAAEp1B,GAAIp4F,CAAC,CAAC,CAC3E,SAASshD,GAAI/0E,EAAE,CAAC8kC,GAAI,IAAI,EAAEi/D,GAAI/jG,GAAG,EAAE,uCAAuC,CAAC,CAC3E,SAAS0nF,KAAK,CAACA,IAAIhjF,EAAIijF,IAAItqB,IAAIoqB,KAAMyxB,EAAG9hE,EAAGukF,GAAG,CAAC,EAAEviB,EAAI,IAAI,EAAE,CAACwiB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASh0C,KAAK,CAACA,IAAIpjF,EAAIqjF,IAAI1qB,IAAIwqB,KAAMqxB,EAAG9hE,EAAG4kF,IAAG,CAAC,EAAE5iB,EAAI,IAAI,EAAE,CAAC6iB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASj0C,KAAK,CAACA,IAAIxjF,EAAIyjF,IAAI9qB,IAAI4qB,KAAMixB,EAAG9hE,EAAGilF,IAAG,CAAC,EAAEjjB,EAAI,IAAI,EAAE,CAACkjB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS91C,KAAK,CAACA,IAAIhiF,EAAIiiF,IAAItpB,IAAIopB,KAAMyyB,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAACmiB,IAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS9xC,KAAK,CAACA,IAAIjlF,EAAIklF,IAAIvsB,IAAIqsB,KAAMwvB,EAAG9hE,EAAG2lF,IAAG,CAAC,EAAE3jB,EAAI,IAAI,EAAE,CAAC4jB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS3yC,KAAK,CAACA,IAAI7lF,EAAI8lF,IAAIntB,IAAIitB,KAAM4uB,EAAG9hE,EAAGslF,IAAG,CAAC,EAAEtjB,EAAI,IAAI,EAAE,CAACujB,GAAIC,IAAIC,EAAG,CAAC,GAAG,CAC3E,SAASxvC,KAAK,CAACA,IAAI3oF,EAAI4oF,IAAIjwB,IAAI+vB,KAAM8rB,EAAG9hE,EAAGqmF,IAAG,CAAC,EAAErkB,EAAI,IAAI,EAAE,CAACskB,GAAIC,GAAIC,GAAG,CAAC,GAAG,CAC3E,SAAS3vC,KAAK,CAACA,IAAIvpF,EAAIwpF,IAAI7wB,IAAI2wB,KAAMkrB,EAAG9hE,EAAG0mF,IAAG,CAAC,EAAE1kB,EAAI,IAAI,EAAE,CAAC2kB,IAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASpvC,KAAK,CAACA,IAAInqF,EAAIoqF,IAAIzxB,IAAIuxB,KAAMsqB,EAAG9hE,EAAG+mF,IAAG,CAAC,EAAE/kB,EAAI,IAAI,EAAE,CAACglB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASzwC,KAAK,CAACA,IAAInpF,EAAIopF,IAAIzwB,IAAIuwB,KAAMsrB,EAAG9hE,EAAGonF,GAAG,CAAC,EAAEplB,EAAI,IAAI,EAAE,CAACqlB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASluC,KAAK,CAACA,IAAI/rF,EAAIgsF,IAAIrzB,IAAImzB,KAAM0oB,EAAG9hE,EAAGynF,IAAG,CAAC,EAAEzlB,EAAI,IAAI,EAAE,CAAC0lB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS3uC,KAAK,CAACA,IAAI3rF,EAAI4rF,IAAIjzB,IAAI+yB,KAAM8oB,EAAG9hE,EAAG8nF,GAAG,CAAC,EAAE9lB,EAAI,IAAI,EAAE,CAAC+lB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS5tC,KAAK,CAACA,IAAI/sF,EAAIgtF,IAAIr0B,IAAIm0B,KAAM0nB,EAAG9hE,EAAGgmF,IAAG,CAAC,EAAEhkB,EAAI,IAAI,EAAE,CAACikB,GAAIC,IAAIC,EAAG,CAAC,GAAG,CAC3E,SAAStqC,KAAK,CAACA,IAAIvuF,EAAIwuF,IAAI71B,IAAI21B,KAAMkmB,EAAG9hE,EAAG6oF,IAAG,CAAC,EAAE7mB,EAAI,IAAI,EAAE,CAAC8mB,IAAIC,GAAIC,GAAG,CAAC,GAAG,CAC3E,SAAS3tC,KAAK,CAACA,IAAI/tF,EAAIguF,IAAIr1B,IAAIm1B,KAAM0mB,EAAG9hE,EAAGwoF,IAAG,CAAC,EAAExmB,EAAI,IAAI,EAAE,CAACymB,GAAIC,IAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS9tC,KAAK,CAACA,IAAIvtF,EAAIwtF,IAAI70B,IAAI20B,KAAMknB,EAAG9hE,EAAGmoF,IAAG,CAAC,EAAEnmB,EAAI,IAAI,EAAE,CAAComB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASrrC,KAAK,CAACA,IAAI3vF,EAAI4vF,IAAIj3B,IAAI+2B,KAAM8kB,EAAG9hE,EAAGkpF,IAAG,CAAC,EAAElnB,EAAI,IAAI,EAAE,CAACmnB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS5sC,KAAK,CAACA,IAAInvF,EAAIovF,IAAIz2B,IAAIu2B,KAAMslB,EAAG9hE,EAAGupF,IAAG,CAAC,EAAEvnB,EAAI,IAAI,EAAE,CAACwnB,GAAIC,IAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS7sC,KAAK,CAACA,IAAIvvF,EAAIwvF,IAAI72B,IAAI22B,KAAMklB,EAAG9hE,EAAG4pF,IAAG,CAAC,EAAE5nB,EAAI,IAAI,EAAE,CAAC6nB,IAAIC,GAAIC,GAAG,CAAC,GAAG,CAC3E,SAAS1sC,KAAK,CAACA,IAAI/vF,EAAIgwF,IAAIr3B,IAAIm3B,KAAM0kB,EAAG9hE,EAAGiqF,IAAG,CAAC,EAAEjoB,EAAI,IAAI,EAAE,CAACkoB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASnqC,KAAK,CAACA,IAAI3yF,EAAI4yF,IAAIj6B,IAAI+5B,KAAM8hB,EAAG9hE,EAAGsqF,IAAG,CAAC,EAAEtoB,EAAI,IAAI,EAAE,CAACuoB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAShqC,KAAK,CAACA,IAAInzF,EAAIozF,IAAIz6B,IAAIu6B,KAAMshB,EAAG9hE,EAAG2qF,IAAG,CAAC,EAAE3oB,EAAI,IAAI,EAAE,CAAC4oB,GAAIC,IAAIC,GAAG,CAAC,GAAG,CAC3E,SAASzpC,KAAK,CAACA,IAAI/zF,EAAIg0F,IAAIr7B,IAAIm7B,KAAM0gB,EAAG9hE,EAAGgrF,IAAG,CAAC,EAAEhpB,EAAI,IAAI,EAAE,CAACipB,IAAIC,GAAIC,GAAG,CAAC,GAAG,CAC3E,SAASlqC,KAAK,CAACA,IAAI3zF,EAAI4zF,IAAIj7B,IAAI+6B,KAAM8gB,EAAG9hE,EAAGqrF,IAAG,CAAC,EAAErpB,EAAI,IAAI,EAAE,CAACspB,GAAIC,IAAIC,GAAG,CAAC,GAAG,CAC3E,SAAS3pC,KAAK,CAACA,IAAIv0F,EAAIw0F,IAAI77B,IAAI27B,KAAMkgB,EAAG9hE,EAAGoI,GAAG,CAAC,EAAE45D,EAAI,IAAI,EAAE,CAAC0pB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAShmC,KAAK,CAACA,IAAIt4F,EAAIu4F,IAAI5/B,IAAI0/B,KAAMmc,EAAG9hE,EAAG8rF,IAAG,CAAC,EAAE9pB,EAAI,IAAI,EAAE,CAAC+pB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAASjnC,KAAK,CAACA,IAAI13F,EAAI23F,IAAIh/B,IAAI8+B,KAAM+c,EAAG9hE,EAAGmsF,IAAG,CAAC,EAAEnqB,EAAI,IAAI,EAAE,CAACoqB,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC3E,SAAS4e,KAAK,CAAC,OAAAvkD,KAAamb,EAAG9hE,EAAGmrG,IAAG,CAAC,EAAEnpC,EAAI,GAAG,EAAE,CAACp3C,GAAID,GAAIygF,GAAIl/D,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC3E,SAASi/D,GAAIziJ,EAAEyzB,EAAE,CAAC,MAAO,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAG25D,GAAI35D,EAAE,EAAEyzB,CAAC,CAAC,CAC3E,SAASovH,IAAI7iJ,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyhB,IAAK,CAACzhB,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,IAAIsjC,IAAItjC,CAAC,GAAUA,EAAE,EAAE,CAAC,CAC3E,SAAS8iJ,IAAI9iJ,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyhB,IAAK,CAACzhB,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,IAAIujC,IAAIvjC,CAAC,GAAUA,EAAE,EAAE,CAAC,CAC3E,SAAS+iJ,IAAI/iJ,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyhB,IAAK,CAACzhB,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,IAAIqjC,IAAIrjC,CAAC,GAAUA,EAAE,EAAE,CAAC,CAC3E,SAASgjJ,GAAIhjJ,EAAE,CAAC,OAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyhB,IAAK,CAACzhB,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,IAAIwjC,IAAIxjC,CAAC,GAAUA,EAAE,EAAE,CAAC,CAC3E,SAASijJ,IAAIjjJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAiB,IAAfA,EAAE,IAAI2+D,GAAI1qC,EAAEzzB,CAAC,EAAMypD,EAAE,EAAEA,EAAE5pD,EAAE,EAAE4pD,EAAGy5F,GAAI1jJ,CAAC,EAAE,OAAOA,CAAC,CAC3E,SAASo9E,GAAI58E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,GAAGK,GAAG,KAAM,IAAI4pD,EAAE,EAAEA,EAAEh2B,EAAE,EAAEg2B,EAAGjqD,EAAEK,EAAE4pD,CAAC,EAAEzpD,EAAE,GAAGypD,EAAEjqD,CAAC,CAAG,CAC3E,SAAS2jJ,GAAInjJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,OAAAA,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,EAAE,GAAG,CAAC,EAAE2vH,IAAI5jJ,EAAEQ,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAASjqD,CAAC,CAC5E,SAASykE,EAAGjkE,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE,OAAAA,EAAEs2B,IAAG7jJ,EAAEiqD,CAAC,EAAEjqD,GAAG,IAAI05G,EAAG9hE,EAAGp3C,EAAEX,CAAC,EAAEo0B,EAAE5zB,EAAEL,EAAEutH,CAAC,EAASA,CAAC,CAC5E,SAASu2B,IAAItjJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAE5pD,IAAI4pD,EAAE5pD,EAAE,GAAG4zB,EAAE8vH,GAAI1jJ,EAAE,KAAKG,EAAE,EAAE,IAAI,EAAE,KAAKypD,CAAC,GAAUA,CAAC,CAC3E,SAAS+5F,IAAIxjJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAE5pD,IAAI4pD,EAAE5pD,EAAE,GAAG4zB,EAAE8vH,GAAI1jJ,EAAE,KAAKG,EAAE,EAAE,IAAI,EAAE,KAAKypD,CAAC,GAAUA,CAAC,CAC3E,SAASg6F,GAAIzjJ,EAAEyzB,EAAE5zB,EAAE,CAACqjD,EAAGljD,EAAE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAEqkE,GAAIrkE,EAAE,EAAE,IAAIkrF,IAAIrrF,EAAE4zB,EAAEzzB,CAAC,CAAC,CAAC,CAC5E,SAAS0jJ,GAAI1jJ,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,GAAGyzB,EAAE5zB,GAAG4zB,EAAEzzB,EAAG,MAAM0lC,EAAI,IAAI0Q,GAAIutG,GAAI3jJ,EAAE4jJ,IAAInwH,EAAEowH,IAAIhkJ,CAAC,CAAC,CAAE,CAC5E,SAASikJ,GAAI9jJ,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,gCAAgC,CAAC,CAAE,CAC5E,SAASkS,GAAIhlD,EAAE,CAAKA,GAAmC,KAAK,EAAEA,EAAE,KAAK,EAAE,OAAhD,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI6kC,EAA8B,CAC5E,SAASk/G,GAAI/jJ,EAAEyzB,EAAE,CAACu6B,GAAI,KAAK,KAAKhuD,EAAEyzB,CAAC,EAAE,KAAK,EAAEwwC,EAAG+/E,IAAG5iC,GAAI,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAI,CAC5E,SAAShvC,GAAIpyE,EAAE,CAAC8kD,IAAI,KAAK,KAAK9kD,EAAE,CAAC,EAAE81E,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAC5E,SAASmuE,GAAIjkJ,EAAE,CAAC,IAAIyzB,EAAQ,OAANA,EAAEzzB,EAAE,EAAKyzB,EAAE,GAAG,EAAU,KAAYyvB,EAAGghG,GAAGzwH,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAC3E,SAAS8xD,IAAIvlF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAI0F,GAAI1F,EAAE,EAAE,GAAKA,EAAE,EAAE4zB,EAAE,GAAE,EAAUkhG,IAAI30H,EAAEyzB,EAAE,KAAK5zB,CAAC,CAAC,CAC5E,SAASskJ,IAAGnkJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAE,YAAYyzB,EAAE,KAAK,GAAGzzB,EAAE,EAAE,WAAWyzB,CAAC,EAAEi4C,GAAG1rE,EAAEH,CAAC,CAAC,CAC5E,SAASukJ,GAAIpkJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEzpD,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE4pD,EAAE,GAAGh2B,EAAE,EAAEg2B,EAAE,GAAGh2B,EAAE,EAAEg2B,EAAE,GAAGh2B,EAAE,EAAE,EAAEg2B,EAAE,CAAC,CAC5E,SAAS82F,GAAIvgJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEG,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,EAAS1wB,EAAK,KAAK,KAAKlD,EAAEA,EAAE4pD,EAAEA,CAAC,CAAC,CAC5E,SAASujC,IAAK,CAACA,GAAItoF,EAAIiqH,IAAI,IAAIz9D,GAAI,YAAY,CAAC,EAAE09D,GAAI,IAAI19D,GAAI,WAAW,CAAC,CAAC,CAC3E,SAAS9kC,KAAK,CAACA,IAAI1nB,EAAI2/I,IAAIz0C,GAAIlH,GAAI,IAAItgD,IAAK0hC,GAAK,EAACuuD,KAAM58C,GAAK,EAAC6oD,GAAG,EAAG3rB,GAAIC,EAAG,CAAC,CAC5E,SAAS2rB,KAAK,CAAC,OAAAlpD,KAAa6d,EAAG9hE,EAAGotG,GAAG,CAAC,EAAEprC,EAAI,IAAI,EAAE,CAACqrC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAA9pD,KAAaie,EAAG9hE,EAAG4tG,IAAG,CAAC,EAAE5rC,EAAI,IAAI,EAAE,CAAC6rC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAA34D,KAAassB,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAAn2D,KAAaspB,EAAG9hE,EAAG4uG,IAAG,CAAC,EAAE5sC,EAAI,IAAI,EAAE,CAAC6sC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAA/2D,KAAa0pB,EAAG9hE,EAAGovG,IAAG,CAAC,EAAEptC,EAAI,IAAI,EAAE,CAACqtC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAA31D,KAAa8nB,EAAG9hE,EAAG4vG,IAAG,CAAC,EAAE5tC,EAAI,IAAI,EAAE,CAAC6tC,GAAIC,IAAIC,GAAIC,IAAIC,IAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAAv4D,KAAakqB,EAAG9hE,EAAGowG,IAAG,CAAC,EAAEpuC,EAAI,IAAI,EAAE,CAACquC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAA3xD,KAAa8iB,EAAG9hE,EAAG4wG,IAAG,CAAC,EAAE5uC,EAAI,IAAI,EAAE,CAAC6uC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI/uB,EAAG,CAAC,CAAC,CAC5E,SAASgvB,KAAK,CAAC,OAAAnqD,KAAa+a,EAAG9hE,EAAGmxG,GAAG,CAAC,EAAEnvC,EAAI,IAAI,EAAE,CAAC5F,GAAID,GAAIi1C,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAAjsD,KAAauc,EAAG9hE,EAAGyxG,IAAG,CAAC,EAAEzvC,EAAI,IAAI,EAAE,CAAC0vC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CAC5E,SAASC,KAAK,CAAC,OAAAz+D,KAAauuB,EAAG9hE,EAAGiyG,GAAG,CAAC,EAAEjwC,EAAI,IAAI,EAAE,CAACiT,GAAIi9B,GAAI1K,GAAI2K,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5E,SAASC,IAAI1pJ,EAAE,CAACk2E,GAAI,CAAC,CAACl2E,EAAE,CAAC,EAAEgrI,GAAIhrI,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAE,KAAKA,EAAE,EAAE2pJ,GAAI3pJ,CAAC,EAAEo5E,GAAIp5E,EAAE,EAAEA,CAAC,CAAC,CAC7E,SAAS4pJ,IAAI5pJ,EAAE,CAAC,OAAAgrI,GAAIhrI,EAAE,EAAE,EAAE,EAAEA,CAAC,EAAEkyE,GAAIlyE,EAAE,GAAGA,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAASA,EAAE,CAAC,CAC7E,SAAS6pJ,GAAI7pJ,EAAE,CAAC,IAAIyzB,EAAE,MAAG,CAACzzB,EAAE,GAAGA,EAAE,GAAG,KAAIyzB,EAAEzzB,EAAE,EAAE,KAAKA,EAAE,EAAE8pJ,GAAIr2H,EAAEzzB,EAAE,CAAC,GAASA,EAAE,CAAC,CAC5E,SAASkmE,GAAIlmE,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,GAAE,GAAIA,EAAE,GAAGyzB,CAAC,EAAU,IAAWzzB,EAAE,GAAGyzB,CAAC,EAAS,GAAK,CAC5E,SAASs2H,GAAI/pJ,EAAEyzB,EAAE,CAAC,OAAAg6C,GAAIh6C,EAAE,qCAAqC,EAAEzzB,EAAE,EAAEyzB,EAASzzB,CAAC,CAC7E,SAASgqJ,IAAIhqJ,EAAEyzB,EAAE5zB,EAAE,CAAC4mE,GAAG,EAAG,IAAIhd,EAAE,OAAAA,EAAEwgG,GAAIjqJ,EAAEyzB,CAAC,EAAE5zB,GAAK4pD,GAAGs0D,IAAI/9G,CAAC,IAAIypD,EAAE,MAAaA,CAAC,CAC5E,SAASygG,GAAIlqJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEQ,EAAE,GAAI,EAACR,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAE2qJ,GAAI1gG,EAAEh2B,EAAE5zB,CAAC,CAAE,CAC7E,SAASuqJ,GAAIpqJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEh2B,EAAE,GAAI,EAACg2B,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAE4gG,IAAIrqJ,EAAEH,EAAE,EAAE,CAAC,CAAE,CAC7E,SAASyqJ,GAAItqJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE4pD,EAAEzpD,EAAE,EAAE,EAAEypD,EAAEh2B,EAAE,CAAC,EAAE1wB,EAAK,KAAK,IAAI0mD,EAAEh2B,EAAE,CAAC,EAAE5zB,EAAE,CAAC,CAAC,CAC7E,SAAS0qJ,GAAIvqJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEH,EAAEikI,GAAI9jI,EAAEyzB,EAAE,EAAI,EAAS5zB,EAAE,GAAGL,GAAGK,EAAE,GAAG4pD,CAAC,CAC7E,SAAS+gG,IAAIxqJ,EAAEyzB,EAAE,CAAC,OAAAk5B,IAAI3sD,EAAE,EAAEyzB,CAAC,GAAG21B,GAAIppD,EAAE,EAAEyzB,EAAE,IAAIg3H,IAAIh3H,CAAC,CAAC,EAASyvB,EAAGi4B,GAAIn7E,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CAC7E,SAASi3H,GAAI1qJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAA34B,GAAI9wB,CAAC,EAAE8wB,GAAI2C,CAAC,EAAE3C,GAAIjxB,CAAC,EAAEixB,GAAI24B,CAAC,EAAS,IAAIssD,GAAI/1G,EAAEyzB,EAAE,IAAIjuB,GAAG,CAAC,CAC7E,SAASwyE,GAAIh4E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,GAAE,EAAG,KAAK,EAAEh2B,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAE,IAAI+hF,GAAI,KAAKtuD,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5E,SAAS4qD,GAAIr0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACk+G,GAAI,KAAK,KAAK9pF,EAAEg2B,EAAEjqD,EAAEH,CAAC,EAAY,KAAK,EAAEW,EAAE,KAAK,EAAEH,CAAC,CAC5E,SAAS00G,GAAIv0G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAACk+G,GAAI,KAAK,KAAK9pF,EAAEg2B,EAAEjqD,EAAEH,CAAC,EAAY,KAAK,EAAEW,EAAE,KAAK,EAAEH,CAAC,CAC5E,SAAS8qJ,IAAI3qJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEoqD,EAAEmsE,GAAG51H,EAAEH,CAAC,EAAEL,EAAE,KAAOiqD,IAAIjqD,EAAEmtI,GAAIljF,CAAC,GAAGpqD,EAAEG,EAAEorJ,IAAIn3H,EAAE5zB,EAAER,CAAC,CAAC,CAC7E,SAASwrJ,IAAI7qJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEoqD,EAAEmsE,GAAG51H,EAAEH,CAAC,EAAEL,EAAE,KAAOiqD,IAAIjqD,EAAEmtI,GAAIljF,CAAC,GAAGpqD,EAAEG,EAAEorJ,IAAIn3H,EAAE5zB,EAAER,CAAC,CAAC,CAC7E,SAASyrJ,GAAI9qJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,GAAGiqD,EAAEshG,GAAI/qJ,EAAE,EAAEyzB,CAAC,EAAEg2B,GAAWjqD,EAAOm5E,GAAIC,GAAI54E,EAAER,CAAC,EAAEK,CAAC,EAAnB,IAAoB,CAC7E,SAASmrJ,GAAIhrJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAOA,EAAEG,EAAE,GAAGyzB,CAAC,EAAE5zB,GAAG,EAAEG,EAAE,GAAGH,EAAE,GAAK,EAAI,EAAEo/I,GAAIj/I,EAAEyzB,EAAE,EAAI,CAAC,CAC7E,SAASw3H,IAAIjrJ,EAAEyzB,EAAE,CAAC,OAAOmrC,GAAI1rB,EAAImnC,EAAGuuC,EAAI5oH,GAAGkqH,EAAK,EAACghC,GAAK,CAAA,CAAC,EAAEh4G,EAAImnC,EAAGuuC,EAAIn1F,EAAEy3H,EAAG,CAAC,CAAC,CAAC,CAAC,CAC7E,SAASl9H,KAAK,CAACA,IAAItpB,EAAIymJ,IAAIC,GAAIA,GAAIrhG,GAAI,IAAI3B,IAAK4tC,GAAK,EAAC07C,GAAK,GAAEt7C,GAAG,EAAG6xD,GAAG,EAAGC,EAAG,CAAC,CAC7E,SAASmD,IAAIrrJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEqtE,IAAI92H,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,IAAI+2H,GAAIttE,EAAE,EAAE,MAAM,EAAS6hG,GAAItrJ,EAAEypD,CAAC,CAAC,CAC9E,SAAS8hG,IAAIvrJ,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,QAAEloC,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,EAASutI,EAAIvtI,EAAE,CAAC,CAAC,CAC7E,SAASwrJ,IAAIxrJ,EAAE,CAAC,IAAIyzB,EAAE,GAAG,CAACzzB,EAAE,EAAG,MAAM0lC,EAAI,IAAIu8E,GAAG,EAAE,OAAAxuF,EAAEzzB,EAAE,EAAEA,EAAE,EAAEqmG,GAAIrmG,EAAE,CAAC,EAASyzB,CAAC,CAC7E,SAASg4H,IAAIzrJ,EAAE,CAAC,KAAM,CAACA,EAAE,GAAG,GAAG,CAAC0iF,IAAI1iF,EAAE,EAAE,IAAIy5B,IAAIz5B,CAAC,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,CAC9E,SAAS0rJ,GAAG1rJ,EAAE,CAAC,IAAIyzB,EAAQ,OAAN+hB,GAAGx1C,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGyzB,EAAEyvB,EAAGljD,EAAE,GAAG,EAASyzB,GAAS,IAAItB,IAAGnyB,CAAC,CAAC,CAC9E,SAAS2rJ,IAAI3rJ,EAAE,CAAC4vB,GAAK,EAACszB,EAAGljD,EAAE,IAAIgwB,GAAG,EAAG47H,GAAG,EAAG,GAAG,EAAE,IAAIztD,GAAG,EAAGqqD,GAAG,EAAGxoJ,EAAE,GAAG6rJ,GAAI,IAAI,CAAC,CAC9E,SAASj8H,IAAK,CAACA,GAAIlrB,EAAIonJ,IAAI,IAAIttI,IAAIutI,IAAI,IAAIttI,IAAIutI,IAAIC,KAAIj8H,GAAK,EAAC67H,IAAKC,IAAII,GAAIH,GAAG,CAAC,CAC9E,SAASv0D,IAAK,CAACA,GAAI9yF,EAAI4sH,IAAI,IAAIp9D,GAAI,cAAc,CAAC,EAAEq9D,GAAI,IAAIr9D,GAAI,YAAY,CAAC,CAAC,CAC9E,SAASi4F,IAAInsJ,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAAE,GAAE,EAAGolD,GAAIplD,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAC9E,SAASioF,GAAIpsJ,EAAE,CAACA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,GAAG,CAAC,EAAEA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,GAAG,CAAC,EAAEA,EAAE,EAAE,CAAC,CAC7E,SAASqsJ,IAAIrsJ,EAAEyzB,EAAE,CAAIzzB,EAAE,EAAE,GAAGyzB,EAAE,EAAEzzB,EAAE,CAAC,EAAE,IAAG4oC,EAAI5oC,EAAE,EAAE,IAAIgkG,GAAIvwE,EAAE,EAAEA,EAAE,EAAEzzB,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAEyzB,EAAE,EAAE,CAC9E,SAAS64H,GAAItsJ,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAG,MAAMyzB,GAAGzzB,EAAE,EAAE,MAAM0lC,EAAI,IAAIq4B,GAAItqC,EAAEzzB,EAAE,CAAC,CAAC,EAAE,OAAOA,EAAE,EAAEyzB,CAAC,CAAC,CAC9E,SAAS84H,IAAIvsJ,EAAEyzB,EAAE5zB,EAAE,CAAU,GAAT2sJ,GAAIxsJ,EAAEH,CAAC,EAAKA,GAAG,MAAM,CAACG,EAAE,GAAGH,CAAC,EAAG,MAAM6lC,EAAI,IAAIgC,EAAG,EAAE,OAAO7nC,CAAC,CAC9E,SAAS4sJ,IAAIzsJ,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,KAAM,IAAIyzB,EAAEzzB,EAAE,EAAE,EAAEyzB,GAAG,EAAE,EAAEA,EAAGi5H,EAAI1sJ,EAAEyzB,CAAC,EAAG,OAAO0gH,GAAIn0I,CAAC,CAAC,CAC9E,SAAS2sJ,IAAI3sJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAG,CAACG,EAAE,EAAG,OAAO,KAAW,IAANH,EAAEG,EAAE,EAAQyzB,EAAE5zB,EAAE,EAAE,CAAC,GAAGA,EAAE4zB,EAAE,OAAO5zB,CAAC,CAC/E,SAAS+sJ,IAAI5sJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAwqE,IAAIxgG,CAAC,EAAS5zB,GAAG4pD,EAAEzpD,EAAE,MAAM,EAAEyzB,CAAC,EAAE0jB,GAAGsS,EAAEzpD,CAAC,GAAGH,EAAE,OAAO4zB,EAAE5zB,CAAC,CAC/E,SAASihE,GAAI9gE,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEiqD,GAAGoqD,GAAG,EAAIpqD,GAAEqqD,KAAOt0G,EAAEQ,EAAE,MAAMyzB,EAAE5zB,CAAC,EAAEgtJ,GAAIrtJ,EAAEQ,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAEg2B,CAAC,CAAC,CAC/E,SAASqjG,GAAI9sJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAOi0B,EAAE,EAAEwrH,GAAIj/I,EAAEH,EAAE4pD,CAAC,EAAEvG,EAAGrjD,EAAE,EAAE,EAAE,GAAI,EAAC,GAAGG,EAAEA,EAAE,GAAI,EAACyzB,EAAEg2B,EAAEjqD,CAAC,CAAC,CAC9E,SAASutJ,IAAI/sJ,EAAE,CAAC,OAAGurE,EAAGvrE,EAAE,GAAG,EAAU,GAAGkjD,EAAGljD,EAAE,GAAG,EAAE,EAASA,GAAG,KAAK,KAAKkxE,GAAIlxE,CAAC,CAAC,CAC9E,SAASgtJ,IAAIhtJ,EAAE,CAAC,OAAGurE,EAAGvrE,EAAE,GAAG,EAAU,GAAGkjD,EAAGljD,EAAE,GAAG,EAAE,EAASA,GAAG,KAAK,KAAKkxE,GAAIlxE,CAAC,CAAC,CAC9E,SAASitJ,IAAIjtJ,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,EAAG,MAAMiS,EAAI,IAAIgL,GAAGq6F,GAAG,CAAC,EAAE/hG,GAAIhpC,EAAE,EAAEyzB,CAAC,EAAEA,EAAE,EAAEzzB,EAAE,CAACA,EAAE,IAAIA,EAAE,EAAEyzB,EAAE,CAC/E,SAASmwF,GAAI5jH,EAAEyzB,EAAE,CAACgpC,GAAI,KAAK,KAAKhpC,EAAE,GAAI,EAACA,EAAE,KAAK,MAAM,EAAE3C,GAAI9wB,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,CAAC,CAC9E,SAASy5H,IAAGltJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAEh2B,EAAEzzB,EAAE,EAAE,GAAI,EAAC,GAAE,EAAG,EAAEH,EAAE4zB,EAAEzzB,EAAE,EAAE,GAAI,EAAC,GAAI,EAAQgiJ,GAAGhiJ,EAAEypD,EAAE5pD,CAAC,CAAC,CAC/E,SAASgoF,IAAK,CAACA,GAAInjF,EAAIu3H,GAAI,IAAIhtE,GAAIukE,GAAI,CAAC,EAAE0I,GAAI,IAAIjtE,GAAIo+E,GAAI,CAAC,EAAElR,GAAI,IAAIltE,GAAIwkE,GAAI,CAAC,CAAC,CAC/E,SAAS9zC,IAAK,CAACA,GAAIj7E,EAAIk7E,GAAI,IAAI3yB,GAAI,MAAM,CAAC,EAAEghF,IAAI,IAAIlqE,IAAImqE,IAAI,IAAIxlE,IAAIylE,IAAI,IAAInqE,GAAG,CAC/E,SAASsiB,KAAK,CAACA,IAAI5hF,EAAI6hF,IAAIlpB,IAAIsiB,GAAG,EAAGu5B,EAAG9hE,EAAG42F,GAAG,CAAC,EAAE50B,EAAI,IAAI,EAAE,CAACx5B,GAAIquD,IAAIC,IAAIC,GAAG,CAAC,GAAG,CAC/E,SAAShkD,KAAK,CAACA,IAAIzlF,EAAI0lF,IAAI/sB,IAAI6sB,GAAG,EAAGgvB,EAAG9hE,EAAG63F,IAAG,CAAC,EAAE71B,EAAI,IAAI,EAAE,CAACv5C,GAAIC,GAAIE,GAAIkvE,EAAG,CAAC,GAAG,CAC/E,SAAS1mD,KAAK,CAACA,IAAI9jF,EAAI+jF,IAAIprB,IAAIkrB,GAAG,EAAG2wB,EAAG9hE,EAAGs2F,IAAG,CAAC,EAAEt0B,EAAI,IAAI,EAAE,CAACu0B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAASllD,KAAK,CAACA,IAAIlkF,EAAImkF,IAAIxrB,IAAIsrB,GAAG,EAAGuwB,EAAG9hE,EAAGu3F,IAAG,CAAC,EAAEv1B,EAAI,IAAI,EAAE,CAACw1B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAAS/lD,KAAK,CAACA,IAAItkF,EAAIukF,IAAI5rB,IAAI0rB,GAAG,EAAGmwB,EAAG9hE,EAAGi3F,IAAG,CAAC,EAAEj1B,EAAI,IAAI,EAAE,CAACk1B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAASx4C,KAAK,CAACA,IAAIvxF,EAAIwxF,IAAI74B,IAAI24B,GAAG,EAAGkjB,EAAG9hE,EAAGkI,IAAG,CAAC,EAAE85D,EAAI,IAAI,EAAE,CAACq4B,GAAIC,GAAIC,GAAItY,EAAG,CAAC,GAAG,CAC/E,SAASptC,KAAK,CAACA,IAAIvnF,EAAIwnF,IAAI7uB,IAAI2uB,GAAG,EAAGktB,EAAG9hE,EAAGg4F,IAAG,CAAC,EAAEh2B,EAAI,IAAI,EAAE,CAACi2B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAASv3C,KAAK,CAACA,IAAIvzF,EAAIwzF,IAAI76B,IAAI26B,GAAG,EAAGkhB,EAAG9hE,EAAGy6F,IAAG,CAAC,EAAEz4B,EAAI,IAAI,EAAE,CAAC04B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,GAAG,CAC/E,SAAS5lD,KAAK,CAACA,IAAI3nF,EAAI4nF,IAAIjvB,IAAI+uB,GAAG,EAAG8sB,EAAG9hE,EAAGu4F,IAAG,CAAC,EAAEv2B,EAAI,IAAI,EAAE,CAACw2B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAASl+C,KAAK,CAACA,IAAIntF,EAAIotF,IAAIz0B,IAAIu0B,GAAG,EAAGsnB,EAAG9hE,EAAGi6F,GAAG,CAAC,EAAEj4B,EAAI,IAAI,EAAE,CAACk4B,GAAIC,GAAI3vE,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAAS09B,KAAK,CAACA,IAAI76F,EAAI86F,IAAIniC,IAAIiiC,GAAG,EAAG4Z,EAAG9hE,EAAGq8F,IAAG,CAAC,EAAEr6B,EAAI,IAAI,EAAE,CAACs6B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,GAAG,CAC/E,SAASz2C,KAAK,CAACA,IAAI14F,EAAI24F,IAAIhgC,IAAI8/B,GAAG,EAAG+b,EAAG9hE,EAAGo7F,IAAG,CAAC,EAAEp5B,EAAI,IAAI,EAAE,CAACq5B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAASp2C,KAAK,CAACA,IAAI93F,EAAI+3F,IAAIp/B,IAAIk/B,GAAG,EAAG2c,EAAG9hE,EAAG0vB,GAAG,CAAC,EAAEsyC,EAAI,IAAI,EAAE,CAAC05B,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAAS9zC,KAAK,CAACA,IAAIz6F,EAAI06F,IAAI/hC,IAAI6hC,GAAG,EAAGga,EAAG9hE,EAAG+7F,IAAG,CAAC,EAAE/5B,EAAI,IAAI,EAAE,CAACg6B,GAAIC,IAAIC,IAAIC,GAAG,CAAC,GAAG,CAC/E,SAASh1C,KAAK,CAACA,IAAI75F,EAAI85F,IAAInhC,IAAIue,GAAG,EAAGs9B,EAAG9hE,EAAG+6F,GAAG,CAAC,EAAE/4B,EAAI,IAAI,EAAE,CAACg5B,GAAIv2D,GAAIw2D,GAAIC,EAAG,CAAC,GAAG,CAC/E,SAAS6a,KAAK,CAACA,IAAIzoJ,EAAI4rB,KAAM88H,IAAIj2C,GAAIk2C,IAAIh2C,GAAIi2C,IAAI,IAAIl2H,GAAI+/E,EAAG,EAAEo2C,IAAI,IAAIn2H,GAAIigF,EAAG,CAAC,CAC9E,SAASjoB,IAAK,CAACA,GAAI1qF,EAAIypH,IAAI,IAAI18D,GAAI+7F,GAAI,CAAC,EAAEp/B,GAAI,IAAI38D,GAAI,uBAAuB,CAAC,CAAC,CAC/E,SAASg8F,IAAIztJ,EAAEyzB,EAAE,CAAC,OAAAqkC,GAAK,EAAQlvB,EAAI5oC,EAAE,IAAI22D,GAAIljC,EAAE85G,EAAI95G,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAC/E,SAASmkC,IAAI53D,EAAEyzB,EAAE,CAAC,OAAAqkC,GAAK,EAAQlvB,EAAI5oC,EAAE,IAAI22D,GAAIljC,EAAE85G,EAAI95G,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAC/E,SAAS0jB,GAAGn3C,EAAEyzB,EAAE,CAAC,OAAAi6H,GAAGj6H,CAAC,GAAG,IAAIylF,EAAGsQ,GAAG/1F,CAAC,EAAEA,EAAE,GAAGA,EAAE,iBAAiBi6H,GAAGj6H,CAAC,EAAEzzB,CAAC,EAASA,CAAC,CAC9E,SAAS6yE,GAAI7yE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAe,OAAbA,EAAEqgE,GAAIlgE,EAAEyzB,EAAE,CAAC,EAAK5zB,GAAG,GAAW,IAAM62G,GAAI12G,EAAEH,CAAC,EAAS,GAAI,CAChF,SAAS8tJ,IAAI3tJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAuB,OAArBA,EAAEqjD,EAAGs9F,GAAIxgJ,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAK5zB,GAAG+rE,GAAI/rE,CAAC,EAASA,EAAE,GAAS,IAAI,CAChF,SAAS+tJ,GAAI5tJ,EAAE,CAAC,IAAIyzB,EAAE,OAAGksC,GAAI3/D,CAAC,IAAGyzB,EAAE,EAAEzzB,EAAK,CAAC,MAAMyzB,CAAC,GAAUA,EAAUkvE,GAAIkrD,GAAG7tJ,CAAC,CAAC,CAAC,CAChF,SAASkgE,GAAIlgE,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAKA,EAAEG,EAAE,EAAE,OAAO,EAAEH,EAAG,GAAG4hH,GAAIhuF,EAAEzzB,EAAE,EAAEH,CAAC,CAAC,EAAG,OAAOA,EAAG,MAAO,EAAE,CAChF,SAASy3I,IAAIt3I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAlL,GAAIv+C,CAAC,EAAEypD,EAAE,IAAI/iD,GAAI+iD,EAAE,EAAEh2B,EAAEzzB,EAAE,EAAE,GAAG,IAAIkuD,IAAIzE,EAAE5pD,CAAC,CAAC,EAAS4pD,EAAE,CAAC,CAChF,SAASqkG,IAAI9tJ,EAAE,CAAC,IAAIyzB,EAAE,OAAA8qB,GAAIv+C,CAAC,EAAEyzB,EAAEwwC,EAAG8pF,GAAGC,GAAI,GAAG,EAAE,GAAG,CAAC,EAAEhwG,GAAIh+C,EAAE,EAAE,IAAIs5B,IAAI7F,CAAC,CAAC,EAASA,CAAC,CAChF,SAASoyG,GAAI7lI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAEqjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEyzB,EAAEyvB,EAAG0lE,EAAI/oH,GAAGqqH,EAAK,EAAC+jC,GAAK,EAAC,EAAE,EAASx6H,CAAC,CAChF,SAASy6H,GAAGluJ,EAAE,CAAC,IAAIyzB,EAAE,GAAG,CAAC06H,GAAGnuJ,CAAC,EAAG,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,OAAAloC,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,KAAYyzB,CAAC,CAChF,SAASiiH,GAAG11I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE5zB,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAG5zB,EAAOA,EAAE,EAAP,IAAQ,CAChF,SAASuuJ,KAAK,CAAC1tF,GAAK,EAAC,KAAK,EAAE,IAAI37B,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,EAAG,CAChF,SAASspH,IAAIruJ,EAAEyzB,EAAE,CAAC,KAAK,EAAEwwC,EAAGopD,GAAGC,GAAI,GAAGttH,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEmpI,GAAInpI,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAEyzB,CAAC,CAChF,SAAS66H,GAAItuJ,EAAE,CAAC,IAAIyzB,EAAE,IAAIA,EAAEzzB,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAEyzB,EAAG,EAAEyvB,EAAGo4B,GAAIt7E,EAAE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,CAAE,CAChF,SAAS86H,GAAIvuJ,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,GAAI,EAACyzB,GAAG,MAAMzzB,EAAE,GAAG,IAAIkjD,EAAGzvB,EAAE,EAAE,EAAE,GAAGzzB,CAAC,EAAIA,EAAE,GAAGA,EAAE,EAAE,GAAE,CAAE,CAC/E,SAASwuJ,GAAIxuJ,EAAE,CAACsqE,GAAG,IAAI,EAAE,KAAK,EAAGtqE,EAAOwsH,GAAGxsH,EAAEA,EAAE,GAAE,CAAE,EAAhB,KAAkB,KAAK,EAAEA,EAAE2wE,GAAG,IAAI,EAAE,KAAK,GAAE,CAAE,CAChF,SAASgnD,GAAI33H,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAACG,GAAI,KAAK,KAAKz5F,EAAEg2B,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAY,KAAK,EAAE/sH,EAAE,KAAK,EAAEH,CAAC,CAChF,SAAS4uJ,GAAIzuJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAAsxB,GAAI9wB,CAAC,EAAE8wB,GAAI2C,CAAC,EAAE3C,GAAIjxB,CAAC,EAAEixB,GAAI24B,CAAC,EAAE34B,GAAItxB,CAAC,EAAS,IAAIu2G,GAAI/1G,EAAEyzB,EAAEg2B,CAAC,CAAC,CAChF,SAASiqB,GAAI1zE,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,EAAG,MAAMiS,EAAI,IAAIwM,GAAIw8G,IAAIj7H,CAAC,CAAC,EAAE,OAAAu9G,IAAIhxI,EAAEyzB,EAAE,CAAC,EAAS6nD,GAAIt7E,EAAE,EAAEyzB,CAAC,CAAC,CAChF,SAASk7H,IAAG3uJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAG,CAACzpD,EAAG,MAAM0lC,EAAI,IAAImN,GAAI+7G,GAAGn7H,EAAEylF,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAACtkE,EAAE4pD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACjF,SAASolG,GAAI7uJ,EAAEyzB,EAAE,CAAC,OAAOguF,GAAIhuF,EAAE6nD,GAAIt7E,EAAE,EAAE,CAAC,CAAC,GAAGyhH,GAAIhuF,EAAE6nD,GAAIt7E,EAAE,EAAE,CAAC,CAAC,GAAGyhH,GAAIhuF,EAAE6nD,GAAIt7E,EAAE,EAAE,CAAC,CAAC,CAAC,CAChF,SAAS8uJ,IAAI9uJ,EAAEyzB,EAAE,CAAC4vD,GAAIngC,EAAGA,EAAGljD,EAAE,EAAE,EAAE,EAAE,IAAIgwB,KAAM++H,KAAM,EAAE,CAAC,GAAGC,IAAIrsC,GAAIz/D,EAAGljD,EAAE,EAAE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CAChF,SAASmlD,GAAI54E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGzvB,EAAE,GAAG,EAAEg2B,EAAE5pD,EAAE,KAAK,CAAC4pD,GAAG5pD,EAAE,GAAG4pD,EAAE,IAAI0P,IAAIn5D,EAAEyzB,CAAC,CAAC,EAASg2B,CAAC,CAChF,SAASwlG,GAAIjvJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGzvB,EAAE,GAAG,EAAEg2B,EAAE5pD,EAAE,KAAK,CAAC4pD,GAAG5pD,EAAE,GAAG4pD,EAAE,IAAIk+E,IAAI3nI,EAAEyzB,CAAC,CAAC,EAASg2B,CAAC,CAChF,SAAS6c,GAAItmE,EAAE,CAAC,OAAIA,EAAE,IAAGA,EAAE,EAAE,IAAIgwG,IAAIhwG,EAAEq+G,GAAGr+G,CAAC,EAAE,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIu9E,GAAIv9E,EAAEA,CAAC,IAAUA,EAAE,CAAC,CAChF,SAAS0pF,IAAK,CAACA,GAAIhlF,EAAIs4H,GAAI,IAAI3tE,GAAI,KAAK,CAAC,EAAE4tE,GAAI,IAAI5tE,GAAI,IAAI,CAAC,EAAE6tE,GAAI,IAAI7tE,GAAI,IAAI,CAAC,CAAC,CAChF,SAAS44B,IAAK,CAACA,GAAIvjF,EAAI43H,GAAI,IAAIptE,GAAI,MAAM,CAAC,EAAEqtE,GAAI,IAAIrtE,GAAIm+E,GAAI,CAAC,EAAE7Q,GAAI,IAAIttE,GAAIggG,IAAI,CAAC,CAAC,CACjF,SAAS1+D,IAAK,CAACA,GAAI9rF,EAAIo6H,GAAI,IAAIhtE,GAAI07F,GAAI,CAAC,EAAEzuB,GAAI,IAAIjtE,GAAI,MAAM,CAAC,EAAEktE,GAAI,IAAIltE,GAAIo9F,IAAI,CAAC,CAAC,CACjF,SAASt8D,IAAK,CAACA,GAAIluF,EAAIyqH,GAAI,IAAI58D,GAAI,cAAc,CAAC,EAAE68D,GAAI,IAAI78D,GAAI,cAAc,CAAC,CAAC,CAChF,SAAS48F,IAAI,CAACA,GAAGzqJ,EAAI0qJ,IAAG9vF,GAAGw3C,GAAIA,GAAI,MAAM,EAAEu4C,IAAG/vF,GAAG,EAAE,EAAEgwF,EAAG,EAAEC,IAAGvR,GAAG,CAAC,EAAEA,GAAG,CAAC,EAAEwR,IAAGxR,GAAG,CAAC,CAAC,CACjF,SAASyR,GAAIzvJ,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEurF,IAAI1vJ,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,EAAE,QAAQ,GAAG2vJ,IAAI3vJ,EAAEyzB,CAAC,CAAC,CACjF,SAASm8H,GAAI5vJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAEG,EAAE,OAAOyzB,EAAEwwC,EAAG4rF,GAAGC,GAAI,GAAGjwJ,EAAE,GAAG,CAAC,EAAEo4G,IAAIj4G,EAAE,EAAEH,EAAE4zB,EAAE,CAAC,EAASA,CAAC,CACjF,SAASs8H,GAAI/vJ,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAI,IAAEyzB,EAAEgmF,GAAIz5G,EAAE,GAAI,CAAA,EAAEA,EAAE,GAAI,EAACA,EAAE,GAAE,EAAG,GAAGyzB,CAAC,GAASzzB,EAAE,GAAE,CAAE,CACjF,SAASgwJ,GAAIhwJ,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEw8H,GAAG3iF,GAAIttE,EAAE,EAAE,CAAC,EAAKyzB,GAAG,OAAMy8H,GAAIlwJ,CAAC,EAAEyzB,EAAEw8H,GAAG3iF,GAAIttE,EAAE,EAAE,CAAC,GAASyzB,CAAC,CACjF,SAAS08H,GAAInwJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE0jJ,GAAIvjJ,EAAE,EAAEyzB,CAAC,EAAS5zB,GAAG,EAAEuwJ,GAAIpwJ,EAAEH,EAAE,GAAK,EAAI,EAAEo/I,GAAIj/I,EAAEyzB,EAAE,EAAI,CAAC,CACjF,SAAS48H,GAAIrwJ,EAAEyzB,EAAE,CAACu0B,GAAK,EAAC,IAAInoD,EAAE4pD,EAAE,OAAA5pD,EAAE6wI,GAAI1wI,CAAC,EAAEypD,EAAEinF,GAAIj9G,CAAC,EAAS,CAAC,CAAC5zB,GAAG,CAAC,CAAC4pD,GAAG,CAAC6mG,IAAIzwJ,EAAE,EAAE4pD,EAAE,CAAC,CAAC,CAChF,SAAS8mG,IAAIvwJ,EAAEyzB,EAAE,CAACqvC,GAAI9iE,EAAEyzB,GAAG,MAAMqxD,IAAKh0D,GAAI2C,CAAC,EAAEA,EAAG,GAAE,OAAO3C,GAAI2C,CAAC,EAAEA,EAAC,EAAG,GAAG3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CACjF,SAAS+8H,IAAIxwJ,EAAEyzB,EAAE,CAACsvC,GAAI/iE,EAAEyzB,GAAG,MAAMqxD,IAAKh0D,GAAI2C,CAAC,EAAEA,EAAG,GAAE,OAAO3C,GAAI2C,CAAC,EAAEA,EAAC,EAAG,GAAG3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CACjF,SAASg9H,IAAIzwJ,EAAEyzB,EAAE,CAACkvC,GAAI3iE,EAAEyzB,GAAG,MAAMqxD,IAAKh0D,GAAI2C,CAAC,EAAEA,EAAG,GAAE,OAAO3C,GAAI2C,CAAC,EAAEA,EAAC,EAAG,GAAG3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CACjF,SAASi9H,IAAI1wJ,EAAEyzB,EAAE,CAACmvC,GAAI5iE,EAAEyzB,GAAG,MAAMqxD,IAAKh0D,GAAI2C,CAAC,EAAEA,EAAG,GAAE,OAAO3C,GAAI2C,CAAC,EAAEA,EAAC,EAAG,GAAG3C,GAAI2C,CAAC,EAAEA,EAAE,CAAC,CACjF,SAASk9H,IAAI3wJ,EAAE,EAAG,KAAK,EAAoB,KAAK,GAAtBqqE,GAAK,EAACA,GAAK,EAACkhC,KAAa,GAAIvrG,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAG,EAAGA,GAAG,EAAGkhC,GAAQ,CAAC,CACjF,SAASqlD,IAAI5wJ,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,GAAQ,IAAI1b,GAAIzqC,EAAEzzB,CAAC,EAAE,IAAIm+D,GAAI1qC,EAAEzzB,CAAC,CAAC,CACjF,SAAS6wJ,IAAI7wJ,EAAEyzB,EAAE,CAAC,OAAO83C,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,GAAQ,IAAI1b,GAAIzqC,EAAEzzB,CAAC,EAAE,IAAIm+D,GAAI1qC,EAAEzzB,CAAC,CAAC,CACjF,SAAS8wJ,IAAI9wJ,EAAEyzB,EAAE,CAACs9H,IAAI,IAAIrnJ,GAAIsnJ,IAAIv9H,EAAEw9H,GAAIjxJ,EAAEkjD,EAAG+tG,GAAI,EAAE,EAAE,EAAExN,GAAIwN,GAAIF,IAAI,IAAI,EAAEG,IAAID,EAAG,CAAC,CACjF,SAASE,GAAInxJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEzpD,EAAE,EAAEyzB,CAAC,EAAEw5C,GAAIjtE,EAAEyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,EAAEG,EAAE,GAAGyzB,EAAE5zB,EAAE4pD,CAAC,EAAEzpD,EAAE,GAAI,EAAQypD,CAAC,CACjF,SAAS2nG,GAAIpxJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAY,OAAVA,EAAEG,EAAE,GAAGyzB,CAAC,EAAK5zB,GAAG,GAAGG,EAAE,GAAGH,CAAC,EAAS,IAAiB,EAAM,CACjF,SAASq6H,GAAIl6H,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,GAAGA,EAAE,IAAGyzB,EAAEmjH,GAAI52I,CAAC,EAAEA,EAAE,EAAE,CAAC,CAACyzB,GAAGA,EAAE,GAAI,GAAE49H,IAAIrxJ,EAAE,EAAEyzB,GAASzzB,EAAE,CAAC,CACjF,SAASwhG,GAAGxhG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAsB,IAApB21C,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAE5zB,EAAE,GAAY4zB,EAAE,GAAE,GAAI5zB,EAAEA,EAAEG,EAAE,GAAGyzB,EAAE,IAAI,EAAE,OAAO5zB,CAAC,CAClF,SAASs7E,GAAIn7E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAuB,OAArBA,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAK5zB,GAAG8rE,IAAI3rE,EAAEH,CAAC,EAASA,EAAE,GAAS,IAAI,CAClF,SAASyxJ,IAAGtxJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAkB,OAAhB4zB,EAAEzzB,EAAE,GAAG,EAAEH,EAAEG,EAAE,GAAMH,GAAG,EAAU,GAAG4zB,EAAS,GAAGA,EAAE,KAAK,GAAG5zB,EAAE,CAClF,SAAS0xJ,GAAIvxJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA+0D,GAAIx+G,CAAC,EAAEypD,EAAE,IAAIo6D,GAAIpwF,EAAEzzB,EAAE,CAAC,EAAEH,EAAE,IAAImkF,IAAIv6B,CAAC,EAAS,IAAImhD,GAAI5qG,EAAEH,CAAC,CAAC,CAClF,SAASk4G,GAAGtuD,EAAEzpD,EAAE,CAAC,IAAIyzB,EAAEg2B,EAAE,EAAEzpD,CAAC,EAAMH,GAAG2xJ,GAAI,EAACC,IAAI,OAAOh+H,CAAC,EAAE,OAAO5zB,EAAEA,EAAE4zB,CAAC,EAAEi+H,GAAG,OAAOj+H,CAAC,CAAC,CAClF,SAASk+H,IAAI3xJ,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAOk9E,GAAI,IAAK,GAAE,MAAO,GAAG,QAAQ,MAAO,EAAE,CAAC,CACjF,SAASouD,IAAGtrI,EAAE,CAAC,OAAG4xJ,GAAG5xJ,GAAGmvJ,GAAE,EAAGK,IAAE,EAAG,EAAU,CAAC79E,IAAGk8E,GAAG7tJ,CAAC,CAAC,EAASA,EAAE,EAAEA,EAAE,EAAE4xE,GAAI5xE,EAAE,EAAE6xE,EAAG,CACjF,SAAS67E,GAAG1tJ,EAAE,CAAC,OAAOA,EAAE,wBAAwB,KAAK,GAAGA,EAAE,sBAAsB,CAChF,SAAS6xJ,GAAI7xJ,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAKs7E,GAAIt7E,EAAE,EAAE,CAAC,EAAEyzB,GAAG,MAAMq+H,GAAI9xJ,EAAE,CAAC,EAASyzB,CAAC,CAClF,SAASs+H,IAAG/xJ,EAAEyzB,EAAE,CAAC,KAAMA,EAAE,CAAC,EAAEzzB,EAAE,QAAQi/D,GAAI;AAAA,EAAUiW,GAAIgjC,GAAIl4G,EAAEyzB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEA,EAAE,CAAC,CAAE,CACjF,SAASu+H,GAAIhyJ,EAAEyzB,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEw+H,IAAIjyJ,CAAC,EAAE,KAAK,EAAE,GAAI,KAAK,EAAEq8D,GAAIr8D,CAAC,EAAI,KAAK,EAAEkyJ,GAAIlyJ,CAAC,CAAE,CAClF,SAASmyJ,IAAInyJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACgd,KAAMhiC,GAAI,KAAK,KAAK,EAAE,EAAE,KAAK,EAAEzkC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,CAAC,CACjF,SAAS2oG,GAAGpyJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAO,IAALiqD,EAAE,GAAOjqD,EAAE,EAAEA,EAAEK,EAAE,EAAEL,IAAKi0B,EAAEg2B,IAAIzpD,EAAE,GAAG,KAAOypD,GAAG,GAAGzpD,EAAE,GAAGyzB,CAAC,CACjF,SAASyoC,IAAIl8D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAM,IAAJA,EAAE,EAAQG,EAAE,GAAGA,EAAE,EAAE,MAAM2oG,IAAIl1E,EAAE4+H,GAAIryJ,CAAC,EAAEutI,EAAI1tI,CAAC,CAAC,EAAEA,GAAGq9E,IAAK,EAAEr9E,CAAE,CAClF,SAASyyJ,GAAItyJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAuB,IAArB,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAE4zB,EAAE,EAAQ5zB,EAAEG,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAEH,CAAC,EAAEA,GAAGA,EAAE,CAACA,CAAE,CAClF,SAAS0yJ,IAAIvyJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEi0B,EAAE,EAAE,EAAE5zB,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAER,CAAC,EAAE,EAAE,EAAEiqD,EAAE5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE2yJ,GAAI/+H,EAAE,EAAEg2B,EAAE,CAAC,CAAC,CAClF,SAASgpG,GAAIzyJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEzzB,EAAE,IAAIH,GAAGypG,IAAK,EAACC,KAAK91E,CAAC,EAAE,CAAC5zB,IAAIA,EAAE0pG,IAAI91E,CAAC,EAAE,IAAIyD,IAAIl3B,CAAC,GAAUH,CAAC,CACnF,SAASw0E,GAAGr0E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAixB,GAAI2C,CAAC,EAAE5zB,EAAEG,EAAE,IAAIyzB,CAAC,EAAEi/H,IAAI,CAAC,CAAC7yJ,EAAEq5G,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC1wC,CAAC,CAAC,CAAC,EAAS5zB,CAAC,CACnF,SAASsxI,IAAGnxI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAE,CAACH,EAAE,KAAK,GAAG4zB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,KAAKH,EAAE8yJ,IAAGl/H,EAAE5zB,CAAC,QAAQG,EAAE,GAAGA,EAAE,EAAEH,CAAC,CAAC,CACnF,SAAS+yJ,IAAG5yJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAE,CAACH,EAAE,KAAK,GAAG4zB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,KAAKH,EAAE8yJ,IAAGl/H,EAAE5zB,CAAC,QAAQG,EAAE,GAAGA,EAAE,EAAEH,CAAC,CAAC,CACnF,SAASqlD,IAAIllD,EAAE,CAAC,IAAIyzB,EAAQ,IAAN,EAAEzzB,EAAE,EAAMyzB,EAAEzzB,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAG,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAG,MAAQ,CACnF,SAAS6yJ,IAAI7yJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAQ,IAANA,EAAEh2B,EAAE,EAAM5zB,EAAE4pD,EAAE,EAAE5pD,GAAG4zB,EAAE,EAAE5zB,IAAKG,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEypD,CAAC,IAAIA,EAAE5pD,GAAG,OAAO4pD,CAAC,CACnF,SAASqpG,IAAI9yJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAoB,OAAlBA,EAAEkzJ,GAAG/yJ,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAK5zB,GAAG,EAAU++D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAS5zB,CAAC,CACnF,SAASmzJ,GAAIhzJ,EAAEyzB,EAAE,CAAuB,OAAnBA,EAAE,GAAG,GAAiBzzB,EAAE,GAAG,EAAUizJ,IAAWC,GAAG,EAAGC,GAAInzJ,EAAEyzB,CAAC,EAAC,CACnF,SAASi/H,IAAI1yJ,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAG,MAAM0lC,EAAI,IAAImN,GAAIugH,IAAI,8BAA8B3/H,CAAC,CAAC,CAAC,CAAE,CAClF,SAASyxG,IAAK,CAACA,GAAIxgI,EAAI2uJ,IAAI,IAAIpoJ,IAAIqoJ,IAAI,IAAIvoJ,IAAIwoJ,IAAI,IAAIjoJ,IAAIkoJ,IAAI,IAAIjoJ,IAAIkoJ,IAAI,IAAIjoJ,GAAG,CAClF,SAASy7E,IAAK,CAACA,GAAIviF,EAAI4tH,IAAI,IAAIxjE,GAAI,UAAU,CAAC,EAAEyjE,GAAI,IAAIzjE,GAAI,oBAAoB,CAAC,CAAC,CAClF,SAASw6B,IAAK,CAACA,GAAI5kF,EAAIguH,GAAI,IAAItjE,GAAI,QAAQ,CAAC,EAAEujE,GAAI,IAAIvjE,GAAI,uBAAuB,CAAC,CAAC,CACnF,SAASo/B,IAAK,CAACA,GAAI9pF,EAAI6pH,GAAI,IAAIj9D,GAAI,oBAAoB,CAAC,EAAEk9D,IAAI,IAAIl9D,GAAI,WAAW,CAAC,CAAC,CACnF,SAAS+8B,KAAK,CAACA,IAAI3pF,EAAI4pF,IAAIjxB,IAAI+wB,GAAK,EAAC8qB,EAAG9hE,EAAG+kG,IAAG,CAAC,EAAE/iC,EAAI,IAAI,EAAE,CAACgjC,GAAIC,IAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAASnpD,KAAK,CAACA,IAAI3uF,EAAI4uF,IAAIj2B,IAAI+1B,GAAK,EAAC8lB,EAAG9hE,EAAGwkG,IAAG,CAAC,EAAExiC,EAAI,IAAI,EAAE,CAACyiC,IAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAASxuD,KAAK,CAACA,IAAI/oF,EAAIgpF,IAAIrwB,IAAImwB,GAAK,EAAC0rB,EAAG9hE,EAAG6lG,IAAG,CAAC,EAAE7jC,EAAI,IAAI,EAAE,CAAC8jC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAASrsD,KAAK,CAACA,IAAIvsF,EAAIwsF,IAAI7zB,IAAI2zB,GAAK,EAACkoB,EAAG9hE,EAAGomG,IAAG,CAAC,EAAEpkC,EAAI,IAAI,EAAE,CAACqkC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAAS9jD,KAAK,CAACA,IAAIr1F,EAAIs1F,IAAI38B,IAAIy8B,GAAK,EAACof,EAAG9hE,EAAGikG,IAAG,CAAC,EAAEjiC,EAAI,IAAI,EAAE,CAACkiC,IAAIC,GAAIC,IAAIC,GAAIC,GAAG,CAAC,GAAG,CACnF,SAAShhD,KAAK,CAACA,IAAIh2F,EAAIi2F,IAAIt9B,IAAIo9B,GAAK,EAACye,EAAG9hE,EAAG0jG,GAAG,CAAC,EAAE1hC,EAAI,IAAI,EAAE,CAAC2hC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAAStiD,KAAK,CAACA,IAAIn0F,EAAIo0F,IAAIz7B,IAAIu7B,GAAK,EAACsgB,EAAG9hE,EAAGslG,IAAG,CAAC,EAAEtjC,EAAI,IAAI,EAAE,CAACujC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG,CACnF,SAAShzD,KAAK,CAACA,IAAIrlF,EAAIslF,IAAI3sB,IAAIysB,GAAK,EAACovB,EAAG9hE,EAAGyxB,IAAG,CAAC,EAAEuwC,EAAI,IAAI,EAAE,CAACi/B,GAAIC,GAAIC,GAAIC,GAAI7f,EAAG,CAAC,GAAG,CACnF,SAAS38B,KAAK,CAACA,IAAIt3F,EAAIu3F,IAAI5+B,IAAI0+B,GAAK,EAACmd,EAAG9hE,EAAGgjG,GAAG,CAAC,EAAEhhC,EAAI,IAAI,EAAE,CAACihC,GAAI94E,GAAID,GAAII,GAAID,EAAG,CAAC,GAAG,CACnF,SAASm8B,KAAK,CAACA,IAAIl5F,EAAIm5F,IAAIxgC,IAAIsgC,GAAK,EAACub,EAAG9hE,EAAGmjG,GAAG,CAAC,EAAEnhC,EAAI,IAAI,EAAE,CAACohC,GAAIC,GAAIC,IAAIC,GAAIC,GAAG,CAAC,GAAG,CACnF,SAAS77C,KAAK,CAACA,IAAIr6F,EAAIs6F,IAAI3hC,IAAIyhC,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,CAClF,SAASywD,GAAI1zJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAM5zB,IAAGA,EAAE,IAAIyJ,GAAIkwD,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,GAASA,CAAC,CACnF,SAAS8zJ,IAAI3zJ,EAAE,CAAC,IAAIyzB,EAA+B,OAA7BA,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG0pC,KAAM,GAAG,EAAKngI,EAAUA,EAAE,GAAGzzB,EAAS,EAAK,CACnF,SAAS6zJ,IAAI7zJ,EAAE,CAAC,IAAIyzB,EAA+B,OAA7BA,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG0pC,KAAM,GAAG,EAAKngI,EAAUA,EAAE,GAAGzzB,EAAS,EAAK,CACnF,SAAS8zJ,IAAI9zJ,EAAEyzB,EAAE,CAAe,OAAd3C,GAAI2C,CAAC,EAAEo/E,GAAI7yG,CAAC,EAAKA,EAAE,EAAE,GAAE,GAAIyzB,EAAE,GAAGzzB,EAAE,EAAE,GAAE,CAAE,EAAS,IAAY,EAAK,CACpF,SAASihH,GAAGjhH,EAAE,CAAC,OAAGusD,GAAIvsD,EAAEk9E,EAAG,EAAE,EAAUA,GAAO3wB,GAAIvsD,EAAE+zJ,EAAG,EAAE,EAAUA,GAAW9mD,GAAIjtG,CAAC,CAAC,CACpF,SAAS09D,GAAG19D,EAAE,CAAC,OAAGA,EAAE,GAAG60E,GAAG70E,EAAEg0J,GAAG,EAASh0J,EAAE,GAAKA,EAAEskD,GAAYkb,GAAGx/D,EAAE,IAAK,CAAC,EAASk9E,EAAG,CACpF,SAAS4sE,GAAI9pJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,GAAGG,EAAE,GAAG,MAAM05G,GAAI15G,CAAC,EAAEA,EAAE,GAAUyzB,GAAG,GAAGA,EAAE5zB,EAAE,OAAOA,EAAE4zB,CAAC,EAAE,IAAI,CACnF,SAAS6xE,GAAGtlG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,GAAGh2B,GAAG,KAAM,MAAMiS,EAAI,IAAIoC,EAAG,EAAE,OAAA2hB,EAAEmsE,GAAG51H,EAAEyzB,CAAC,EAAE2iH,IAAGp2I,EAAEyzB,EAAE5zB,CAAC,EAAS4pD,CAAC,CACpF,SAASwqG,IAAIj0J,EAAE,CAAC,OAAAA,EAAE,GAAG,MAAOA,EAAE,GAAGk0J,KAAMl0J,EAAE,EAAE,GAAGA,EAAE,GAAG,MAAOA,EAAE,GAAGk0J,KAAMl0J,EAAE,EAAE,GAAUA,CAAC,CACpF,SAASm0J,IAAIn0J,EAAEyzB,EAAE,CAAC,OAAOA,IAAIoyD,GAAK,EAACA,GAAG,EAAGE,KAAK/lF,EAAE,kBAAiB,EAAGA,EAAE,aAAa,CACnF,SAASo0J,GAAIp0J,EAAE,CAAC,OAASA,EAAE,EAAE,EAAM,aAAcA,EAAE,EAAE,EAAM,GAAG,WAAWi8C,GAAIj8C,CAAC,EAAEA,EAAE,EAAE,CACpF,SAASq0J,GAAIr0J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAEA,GAAG4zB,EAAE,IAAIga,GAAIha,GAAGyyC,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAImpC,GAAGtqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGH,CAAC,CAAC,CACpF,SAASy0J,IAAIt0J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE4zB,EAAE,EAAEA,EAAE,EAAEA,EAASumB,IAAIC,IAAIs6G,IAAI9uD,GAAI,IAAI92D,GAAI9uC,CAAC,EAAEG,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CACpF,SAASw0J,IAAIx0J,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEQ,EAAE,EAAE,GAAGy0J,GAAIz0J,EAAE00J,GAAI10J,EAAEyzB,EAAE5zB,CAAC,GAAG2rD,GAAG,EAAGhsD,EAAE0jD,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAGj0B,EAAE,GAAGiqD,CAAC,EAAC,CAAE,CACpF,SAASkrG,IAAI30J,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE9hC,EAAK,KAAK,IAAI,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CACnF,SAAS6xJ,IAAI50J,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,CAAC,CACpF,SAASkkG,IAAIlkG,EAAEyzB,EAAE,CAAC,KAAK,EAAE,IAAIsR,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,GAAGysD,KAAM+rC,IAAK,KAAK,EAAEv9H,EAAE,KAAK,EAAEyzB,CAAC,CACpF,SAASohI,IAAI70J,EAAEyzB,EAAE5zB,EAAE,CAAC+rC,GAAI,KAAK,IAAI,EAAE8hF,GAAI,IAAI,EAAE,KAAK,EAAE1tH,EAAE,KAAK,EAAEH,EAAE,KAAK,EAAE4zB,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,CACpF,SAAS2a,IAAGpuC,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEA,EAAE,EAAE,GAAI,EAAC,GAAI,EAAC,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,GAAGwvC,GAAI,EAACC,GAAG,CACrF,SAASqL,GAAI96C,EAAE,CAAC,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,qBAAqB7yC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAGA,CAAC,CAAC,CACpF,SAAS23G,IAAI33G,EAAEyzB,EAAE,CAAC,GAAG,EAAEzzB,GAAGA,EAAEyzB,EAAG,MAAMiS,EAAI,IAAIoQ,GAAI,0BAA0B91C,EAAE6jJ,IAAIpwH,CAAC,CAAC,CAAE,CACrF,SAASqhI,IAAG90J,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAGA,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,OAAAzU,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAASyzB,CAAC,CACrF,SAASshI,GAAI/0J,EAAE,CAAC,IAAIyzB,EAAEyiD,GAAI,CAAC,CAACl2E,EAAE,CAAC,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAE4jG,GAAI5jG,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,GAAGA,EAAE,EAAGA,EAAE,EAAEyzB,EAAG,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,IAAI,CACrF,SAASu6H,GAAIv6H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAA2+G,GAAIx+G,CAAC,EAAEH,EAAE,IAAIynH,IAAItnH,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAE,EAAG,EAAEyzB,CAAC,EAAS,IAAIm3E,GAAI5qG,EAAEH,CAAC,CAAC,CACrF,SAASm1J,IAAGh1J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAqB,OAAnB5pD,EAAEqjD,EAAG2hC,GAAG7kF,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAM5zB,GAAe4pD,EAAEh2B,EAASzzB,EAAE,EAAE,GAAGypD,EAAE5pD,CAAC,GAA1B,IAA2B,CACrF,SAASo1J,GAAIj1J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEq5B,EAAIjjF,GAAGqqH,EAAK,EAACgrC,IAAKzhI,CAAC,CAAE,CACrF,SAAS0hI,IAAIn1J,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEyf,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAK,EAAC8nI,GAAG,CAAE,CAAC,EAAK3hI,EAAE,IAAGA,EAAE,EAAEqvD,EAAI9iF,EAAEo1J,GAAI3hI,CAAC,GAASA,CAAC,CACrF,SAAS4hI,IAAIr1J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE1mD,EAAK,KAAK,IAAI,EAAE/C,EAAE,EAAE,EAAE,EAAG,EAAEwvG,GAAI3vG,EAAE4pD,EAAE,CAAC,EAAE7gB,EAAInV,EAAE,IAAIq8B,IAAIjwD,EAAE4pD,CAAC,CAAC,CAAC,CACrF,SAAS6rG,IAAIt1J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEzpD,EAAE,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEzzB,EAAE,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAS2/D,GAAGymC,GAAIx8C,CAAC,CAAC,CAAC,CACrF,SAAS8rG,IAAIv1J,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAEA,EAAE8xB,GAAIp1F,CAAC,EAAEogB,GAAIkjD,EAAEvtH,CAAC,EAAEsqE,GAAIijD,EAAE1tH,CAAC,EAAEm3E,GAAGx2E,EAAE,EAAEypD,EAAE,IAAIwhC,GAAI8hC,EAAEt5F,EAAE5zB,EAAE,CAAC,CAAC,CAAC,CACrF,SAAS21J,IAAIx1J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAkB,GAAhBA,EAAE41J,GAAIz1J,EAAE,GAAE,EAAGyzB,CAAC,EAAK,CAAC5zB,EAAG,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAEkiI,EAAG,CAAC,EAAE,OAAO91J,CAAC,CACrF,SAAS4kE,GAAIzkE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAM,IAAJA,EAAEG,EAAQqmG,GAAIxmG,CAAC,GAAY,GAATA,EAAEwmG,GAAIxmG,CAAC,EAAKA,GAAG4zB,EAAG,MAAO,GAAM,MAAO,EAAK,CACrF,SAASmiI,IAAG51J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoC,IAAlCiqD,EAAEh2B,EAAE,EAAE,GAAI,EAAC5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE,GAAE,EAAOj0B,EAAE,EAAEA,EAAEK,EAAEL,IAAKQ,EAAE,GAAGypD,CAAC,CAAE,CACtF,SAAS4a,GAAIrkE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAS,IAAPyxB,GAAI2C,CAAC,EAAMg2B,EAAEzpD,EAAE,EAAER,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEi0B,EAAE,GAAG5zB,CAAC,CAAE,CACtF,SAAS+jG,GAAI5jG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE4zB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK,EAAEzzB,EAAE,EAASH,CAAC,CACtF,SAASuuG,IAAIpuG,EAAEyzB,EAAE,CAAC,OAAKA,GAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,GAAGA,GAAGoyC,GAAG7lE,EAAE,EAAEyzB,EAAE,EAAE,IAAI,EAAE,EAAEzzB,EAAE,EAAS,IAAY,EAAK,CACtF,SAAS61J,IAAG71J,EAAEyzB,EAAE,CAAC,MAAO,CAAC,CAACqiI,GAAG91J,EAAEyzB,EAAEw5E,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CACrF,SAASC,IAAIl2J,EAAEyzB,EAAE,CAAC4vD,GAAIngC,EAAG0lE,EAAI1lE,EAAGljD,EAAE,EAAE,EAAE,GAAGstB,GAAK,EAAC6oI,GAAK,EAAC,EAAE,CAAC,IAAI9rF,GAAK,EAACrC,GAAI9kB,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEyzB,CAAC,EAAE,CACtF,SAASi6F,GAAI1tH,EAAE,CAACA,EAAE,GAAG6nF,KAAMq0C,IAAKl8H,EAAE,GAAGioF,GAAK,EAACs0C,IAAKv8H,EAAE,GAAG60E,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG/0E,EAAE,EAAE,IAAIo7C,EAAG,CACtF,SAASqsC,IAAK,CAACA,GAAI/iF,EAAIk3H,GAAI,IAAI5sE,GAAI,QAAQ,CAAC,EAAE6sE,GAAI,IAAI7sE,GAAIq+E,GAAI,CAAC,EAAEvR,GAAI,IAAI9sE,GAAI,MAAM,CAAC,CAAC,CACrF,SAASmtC,IAAK,CAACA,GAAIz3F,EAAI8+H,GAAI,IAAIhuE,GAAI63E,GAAI,CAAC,EAAE5J,GAAI,IAAIjuE,GAAI,OAAO,CAAC,EAAEkuE,GAAI,IAAIluE,GAAI,OAAO,CAAC,CAAC,CACrF,SAAS4gG,KAAK,CAAC,OAAA12D,GAAG,EAAUwZ,EAAG9hE,EAAGi/G,GAAG,CAAC,EAAEj9C,EAAI,IAAI,EAAE,CAACk9C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpF,SAASC,KAAK,CAAC,OAAAj8D,GAAG,EAAUqe,EAAG9hE,EAAG2/G,IAAG,CAAC,EAAE39C,EAAI,IAAI,EAAE,CAAC49C,IAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpF,SAASC,KAAK,CAAC,OAAAhrE,GAAG,EAAU0sB,EAAG9hE,EAAGqgH,IAAG,CAAC,EAAEr+C,EAAI,IAAI,EAAE,CAACs+C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACpF,SAASC,KAAK,CAAC,OAAA9lE,GAAG,EAAU8mB,EAAG9hE,EAAG+gH,IAAG,CAAC,EAAE/+C,EAAI,IAAI,EAAE,CAACg/C,GAAIC,GAAIC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,EAAG,CAAC,CAAC,CACpF,SAAS36D,KAAK,CAACA,IAAIt5F,EAAIu5F,IAAI5gC,IAAI0gC,KAAMmb,EAAG9hE,EAAGmrG,IAAG,CAAC,EAAEnpC,EAAI,GAAG,EAAE,CAACp3C,GAAID,GAAIygF,GAAIl/D,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACtF,SAASo1E,KAAK,CAACA,IAAIl0J,EAAI26I,IAAK53D,KAAMyxB,EAAG9hE,EAAGukF,GAAG,CAAC,EAAEviB,EAAI,IAAI,EAAE,CAACwiB,GAAIC,GAAIC,EAAG,CAAC,GAAG,OAAOqjB,GAAIE,EAAG,CACtF,SAASwZ,GAAI74J,EAAE,CAAC,KAAK,GAAGw1C,GAAGx1C,CAAC,EAAE,IAAImlF,GAAInlF,CAAC,GAAG,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIuW,EAAG,CACtF,SAASuqD,IAAI3lG,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE1wB,EAAK,KAAK,KAAK/C,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAKyzB,EAAE,IAAGzzB,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,GAASzzB,CAAC,CACtF,SAAS84J,GAAI94J,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,EAAUA,EAAE,GAAOyzB,EAAEywG,IAAIlkI,CAAC,EAAIyzB,GAAG,CAACA,EAAE,OAAOzzB,EAAE,EAAEyzB,GAAUA,EAAE,CACtF,SAASslI,IAAI/4J,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,GAAG,KAAa,MAAUyzB,EAAEyvB,EAAGljD,EAAE,GAAG,EAASg5J,IAAIvlI,EAAEA,EAAE,MAAM,EAAE,CACtF,SAASi5H,EAAI1sJ,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAG,MAAMyzB,GAAGzzB,EAAE,EAAE,MAAM0lC,EAAI,IAAIq4B,GAAItqC,EAAEzzB,EAAE,CAAC,CAAC,EAAE,OAAOA,EAAE,GAAGyzB,EAAEzzB,EAAE,EAAEyzB,CAAC,CAAC,CAAC,CACtF,SAASwlI,IAAIj5J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAsB,IAApB4zB,EAAEzzB,EAAE,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAAE,EAAQyzB,GAAG5zB,GAAG0tG,GAAIvtG,EAAE,EAAEyzB,CAAC,EAAEA,EAAEylI,GAAIzlI,CAAC,EAAE85E,GAAIvtG,EAAE,EAAEyzB,CAAC,CAAC,CACtF,SAAS0lI,IAAIn5J,EAAE,CAAC,IAAIyzB,EAAE,IAAIA,EAAE,EAAEA,EAAEzzB,EAAE,EAAE,OAAOyzB,KAAMopC,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEyzB,CAAC,EAAE,EAAE,GAAG,EAAEA,CAAE,CACtF,SAAS2lI,IAAIp5J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAS,IAAPG,EAAEi0B,EAAE5zB,CAAC,EAAM4pD,EAAE,EAAEA,EAAEjqD,EAAE,OAAOiqD,IAAKpqD,EAAEG,EAAEiqD,CAAC,EAAEzpD,EAAE,EAAEX,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEoqD,CAAE,CACtF,SAAS4vG,GAAIr5J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAEzpD,EAAE,EAAER,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAE4sE,GAAIpsE,EAAE,EAAEH,CAAC,EAAE,EAAE4zB,CAAE,CACtF,SAAS28G,GAAIpwI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE6vG,GAAIt5J,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,CAAC,EAAE22B,GAAIvgF,EAAE4zB,CAAC,EAAE,OAAOzzB,CAAC,CACtF,SAAS00H,IAAI10H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEwgF,GAAI5W,GAAIvmB,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,CAAC,CAAC,EAAE81C,GAAIrmB,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAS5zB,CAAC,CACvF,SAAS05J,GAAIv5J,EAAE,CAAC,IAAIyzB,EAAE,OAAAu3G,GAAIhrI,EAAE,EAAEA,CAAC,EAAEkyE,GAAIlyE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEyzB,EAAEyvB,EAAGljD,EAAE,EAAE,GAAI,EAAC,EAAE,EAAEA,EAAE,EAAE2pJ,GAAI3pJ,CAAC,EAASyzB,CAAC,CACvF,SAASw8H,GAAGjwJ,EAAE,CAAC,IAAIyzB,EAAE,OAAA0nC,GAAIn7D,GAAG,MAAM,MAAM,QAAQA,CAAC,IAAIyzB,EAAEi6H,GAAG1tJ,CAAC,EAAE,EAAEyzB,GAAG,IAAIA,GAAG,IAAI,EAASzzB,CAAC,CACvF,SAASw5J,IAAIx5J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,UAAU,CAAC,OAAOzpD,EAAE,MAAMypD,EAAE,SAAS,CAAC,EAAE,OAAAh2B,EAAE,MAAMg2B,EAAE5pD,CAAC,EAAS4pD,CAAC,CACvF,SAASgwG,IAAIz5J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEh2B,EAAE,GAAGj0B,EAAE0zC,EAAIlzC,EAAE,EAAEypD,EAAE,CAAC,CAAC,EAAE5pD,EAAEG,EAAE,EAAEypD,EAAE,CAAC,EAAEjqD,EAAEiqD,EAAEzpD,EAAE,EAAEypD,EAAE,CAAC,QAAQA,GAAGh2B,EAAE,CACtF,SAASqyF,GAAI9lH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEA,EAAEzpD,EAAE,EAAEH,EAAE65J,IAAI15J,EAAEyzB,EAAE,IAAI,EAAEg2B,GAAGh2B,GAAG,CAACzzB,EAAE,IAAIH,EAAE85J,GAAI35J,EAAEyzB,EAAE5zB,CAAC,GAAKA,GAAGA,EAAE,GAAE,CAAE,CACtF,SAAS+5J,GAAI55J,EAAEyzB,EAAE,CAAC,OAAO0zC,GAAI,EAAC0yF,GAAGC,EAAG,EAAE/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,CAAC,CACvF,SAASsmI,GAAG/5J,EAAEyzB,EAAE,CAAC,OAAA0zC,KAAK0yF,GAAGC,EAAG,EAAS/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,CAAC,CACtF,SAASumI,IAAIh6J,EAAEyzB,EAAE,CAAC,OAAA/G,GAAG,EAAUoyC,GAAI9+D,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAOyzB,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAAC,CACvF,SAASwmI,GAAGj6J,EAAEyzB,EAAE,CAAC,OAAOsoB,IAAGm+G,GAAGl6J,EAAEyzB,EAAEw5E,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACvF,SAASrrE,KAAK,CAACA,IAAIlmF,EAAImmF,IAAIxtB,IAAIstB,KAAMuuB,EAAG9hE,EAAGiyG,GAAG,CAAC,EAAEjwC,EAAI,IAAI,EAAE,CAACiT,GAAIi9B,GAAI1K,GAAI2K,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASnuD,KAAK,CAACA,IAAI52F,EAAI62F,IAAIl+B,IAAIg+B,KAAM6d,EAAG9hE,EAAGotG,GAAG,CAAC,EAAEprC,EAAI,IAAI,EAAE,CAACqrC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAAS5pD,KAAK,CAACA,IAAIx2F,EAAIy2F,IAAI99B,IAAI49B,KAAMie,EAAG9hE,EAAG4tG,IAAG,CAAC,EAAE5rC,EAAI,IAAI,EAAE,CAAC6rC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASz4D,KAAK,CAACA,IAAInoF,EAAIooF,IAAIzvB,IAAIuvB,KAAMssB,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASj2D,KAAK,CAACA,IAAInrF,EAAIorF,IAAIzyB,IAAIuyB,KAAMspB,EAAG9hE,EAAG4uG,IAAG,CAAC,EAAE5sC,EAAI,IAAI,EAAE,CAAC6sC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,EAAC,CAAE,CACvF,SAAS72D,KAAK,CAACA,IAAI/qF,EAAIgrF,IAAIryB,IAAImyB,KAAM0pB,EAAG9hE,EAAGovG,IAAG,CAAC,EAAEptC,EAAI,IAAI,EAAE,CAACqtC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASz1D,KAAK,CAACA,IAAI3sF,EAAI4sF,IAAIj0B,IAAI+zB,KAAM8nB,EAAG9hE,EAAG4vG,IAAG,CAAC,EAAE5tC,EAAI,IAAI,EAAE,CAAC6tC,GAAIC,IAAIC,GAAIC,IAAIC,IAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASr4D,KAAK,CAACA,IAAIvqF,EAAIwqF,IAAI7xB,IAAI2xB,KAAMkqB,EAAG9hE,EAAGowG,IAAG,CAAC,EAAEpuC,EAAI,IAAI,EAAE,CAACquC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAASzxD,KAAK,CAACA,IAAI3xF,EAAI4xF,IAAIj5B,IAAI+4B,KAAM8iB,EAAG9hE,EAAG4wG,IAAG,CAAC,EAAE5uC,EAAI,IAAI,EAAE,CAAC6uC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI/uB,EAAG,CAAC,EAAC,CAAE,CACvF,SAASl7B,KAAK,CAACA,IAAI15F,EAAI25F,IAAIhhC,IAAI8gC,KAAM+a,EAAG9hE,EAAGmxG,GAAG,CAAC,EAAEnvC,EAAI,IAAI,EAAE,CAAC5F,GAAID,GAAIi1C,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvF,SAAS/rD,KAAK,CAACA,IAAIl4F,EAAIm4F,IAAIx/B,IAAIs/B,KAAMuc,EAAG9hE,EAAGyxG,IAAG,CAAC,EAAEzvC,EAAI,IAAI,EAAE,CAAC0vC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,EAAC,CAAE,CACvF,SAASgR,KAAK,CAAC,OAAA58D,GAAG,EAAU2b,EAAG9hE,EAAGgjH,GAAG,CAAC,EAAEhhD,EAAI,GAAG,EAAE,CAACihD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACvF,SAASr4F,GAAIxiE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASyiE,GAAIziE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASijE,GAAIjjE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS4iE,GAAI5iE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS2iE,GAAI3iE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS8iE,GAAI9iE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS+iE,GAAI/iE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASojE,GAAIpjE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASkjE,GAAIljE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASqjE,GAAIrjE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIw2I,GAAIx2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS86J,GAAI96J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIy2I,GAAIz2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAAS+6J,GAAI/6J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIy2I,GAAIz2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASu7C,GAAIv7C,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIy2I,GAAIz2I,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACvF,SAASwjE,GAAIxjE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACvF,SAASunI,GAAIh7J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGgwD,IAAKxnD,GAAG,EAAGC,IAAK3rD,CAAC,EAAE,EAAE,EAASH,EAAEA,EAAE,GAAG4zB,CAAC,EAAEwwC,EAAGC,GAAGC,GAAI,EAAE1wC,EAAE,EAAE,CAAC,CAAC,CACvF,SAASgwF,GAAIzjH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAa,OAAX5pD,EAAE4zB,KAAKzzB,EAAE,EAAKH,IAAG4pD,EAAEmsE,GAAG51H,EAAEyzB,CAAC,EAAE,GAAI,EAAIg2B,GAAUA,EAAE,EAAU,IAAI,CACvF,SAASwxG,IAAIj7J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAK,GAAG4pD,GAAGvN,GAAK,EAAC18C,EAAE,IAAIgiB,GAAIhiB,GAAKi0B,GAAGynI,GAAIzxG,EAAEh2B,CAAC,EAAEg2B,GAAG0xG,GAAIt7J,EAAEG,CAAC,EAASH,CAAC,CACvF,SAASu7J,IAAIp7J,EAAEyzB,EAAE5zB,EAAE,CAAU,GAAT2sJ,GAAIxsJ,EAAEH,CAAC,EAAK,CAACG,EAAE,GAAE,GAAIH,GAAG,MAAM,CAACG,EAAE,GAAGH,CAAC,EAAG,MAAM6lC,EAAI,IAAIgC,EAAG,EAAE,OAAO7nC,CAAC,CACvF,SAAS00J,IAAIv0J,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAEyzB,EAAKzzB,EAAE,GAAGA,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAE,IAAI6kC,IAAS7kC,EAAE,EAAE,KAAKA,EAAE,EAAE,MAAYA,CAAC,CACvF,SAASq7J,GAAIr7J,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE,OAAAA,EAAEvkB,GAAIxoG,EAAEyzB,CAAC,EAAE0mF,IAAIt6G,EAAEktH,CAAC,EAAEA,EAAE,EAAEvtH,EAAE,EAAE,EAAEutH,EAAE,EAAEtjE,EAAEsjE,EAAE,EAAEvtH,EAAEutH,EAAE,EAAE1tH,EAAS0tH,CAAC,CACxF,SAAS2Z,GAAI1mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEi0B,EAAE,KAAK,EAAEg2B,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACvF,SAAS+mI,GAAI5mI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEi0B,EAAE,KAAK,EAAEg2B,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACvF,SAASunI,GAAIpnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEi0B,EAAE,KAAK,EAAEg2B,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACvF,SAASynI,GAAItnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEi0B,EAAE,KAAK,EAAEg2B,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACvF,SAASmnI,GAAIhnI,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEi0B,EAAE,KAAK,EAAEg2B,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEH,CAAC,CACvF,SAASy7J,IAAIt7J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEytJ,IAAIjtJ,EAAE,EAAEH,CAAC,EAAE,OAAOG,CAAC,CACxF,SAASu7J,GAAGv7J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEjU,GAAG/hB,CAAC,EAAE,OAAO,IAAImqC,IAAG59D,CAAC,CAAC,CACxF,SAASw7J,IAAGx7J,EAAE,CAAC,IAAIyzB,EAAE,gCAAoC5zB,EAAE4zB,EAAE,KAAKzzB,CAAC,EAAE,OAAOH,GAAGA,EAAE,CAAC,GAAG47J,EAAG,CACxF,SAASthD,IAAIn6G,EAAEyzB,EAAE,CAAO,GAAIzzB,EAAU,CAAAyzB,EAAE,EAAEzzB,EAAE,IAAIypD,EAAEqsE,IAAIriG,CAAC,EAAE,GAAG,CAACg2B,EAAE,CAACssE,GAAI/1H,CAAC,EAAE,CAACyzB,CAAC,EAAE,MAAM,CAACg2B,EAAE,GAAGh2B,EAAC,CACxF,SAASygG,IAAIl0H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,OAAOypD,EAAE1mD,EAAK,KAAK,IAAIlD,EAAEL,CAAC,EAAE4iG,GAAIpiG,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAE,EAAI,EAASh2B,CAAC,CACxF,SAASioI,IAAI17J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEwpC,GAAIhpC,EAAEkjD,EAAGrjD,EAAE,GAAG4pD,CAAC,EAAE,EAAE,CAAC,CAAE,CACxF,SAASkyG,KAAK,CAAC36G,MAAgB,QAANhhD,EAAEihD,GAAYxtB,EAAE,EAAEA,EAAE,UAAU,OAAOA,IAAKzzB,EAAE,KAAK,UAAUyzB,CAAC,CAAC,CAAE,CACxF,SAAS+jD,GAAIx3E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEm8D,GAAI37D,EAAEH,EAAEG,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAE,CACxF,SAAS47J,GAAI57J,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,CAAC,CACxF,SAASkiG,IAAI31H,EAAE,CAACk2E,GAAIl2E,EAAE,GAAG,CAAC,EAAK67J,IAAI77J,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAGA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,EAAEA,EAAE,EAAEA,EAAE,EAAE,GAAEA,EAAE,EAAE,EAAE,CACxF,SAAS87J,GAAI97J,EAAE,CAAC,OAAGA,EAAE,EAAE,GAAWA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,GAAU,CAACA,EAAE,IAAIA,EAAE,EAAE+7J,GAAI/7J,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,CACxF,SAAS65J,GAAG75J,EAAE,CAAC,GAAG,EAAEA,GAAG,GAAI,MAAM0lC,EAAI,IAAImN,GAAI,cAAc7yC,EAAE,gBAAgB,CAAC,EAAE,OAAOA,CAAC,CACxF,SAASk9C,IAAK,CAAC,OAAI8+G,KAAKA,GAAI,IAAIC,IAAIC,GAAIF,GAAI9iD,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIp0C,EAAG,CAAC,CAAC,GAASisI,EAAG,CACxF,SAAShqE,IAAK,CAACA,GAAIttF,EAAI86H,GAAI,IAAIhtE,GAAI4pG,GAAI,CAAC,EAAE38B,GAAI,IAAIjtE,GAAI,QAAQ,CAAC,EAAEktE,GAAI,IAAIltE,GAAI,SAAS,CAAC,CAAC,CACxF,SAASw7B,IAAK,CAACA,GAAItpF,EAAIq5H,IAAI,IAAI3sE,GAAI,MAAM,CAAC,EAAE4sE,GAAI,IAAI5sE,GAAI,MAAM,CAAC,EAAE6sE,GAAI,IAAI7sE,GAAI,SAAS,CAAC,CAAC,CACxF,SAASojC,IAAK,CAACA,GAAI9vF,EAAI48H,GAAI,IAAIxuE,GAAI,aAAa,CAAC,EAAEyuE,GAAI,IAAIzuE,GAAIupG,IAAI,CAAC,EAAE76B,GAAI,IAAI1uE,GAAIwpG,IAAI,CAAC,CAAC,CACxF,SAASC,GAAIv8J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAW,GAATA,EAAEG,EAAE,KAAQyzB,EAAE,GAAGA,EAAE5zB,EAAE,MAAM6lC,EAAI,IAAIs4B,GAAIvqC,EAAE5zB,CAAC,CAAC,EAAE,OAAO,IAAIikF,GAAI9jF,EAAEyzB,CAAC,CAAC,CACxF,SAAS+oI,IAAIx8J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG0rE,EAAG93C,EAAE,EAAE,EAAUzzB,EAAE,EAAE,GAAGyzB,CAAC,GAAO5zB,EAAE85D,GAAI35D,EAAEyzB,CAAC,EAAEgpI,GAAIz8J,EAAEyzB,CAAC,EAAS5zB,EAAE,CACxF,SAAS68J,GAAI18J,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAA88J,GAAI38J,EAAEyzB,CAAC,EAAEsmG,GAAI/5H,EAAEH,CAAC,EAAEk7J,GAAI/6J,EAAE,CAAC,EAAEu7C,GAAIv7C,EAAE,CAAC,EAAE48J,GAAI58J,EAAE,EAAI,EAAE68J,GAAI78J,EAAE,EAAI,EAASA,CAAC,CACxF,SAAS60E,GAAG70E,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAIpf,EAAE,gCAAgCzzB,CAAC,CAAC,EAAE,OAAOA,CAAC,CACzF,SAAS88J,IAAG98J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,EAAE4pD,EAAEzpD,EAAE,GAAI,EAACH,EAAE4pD,EAAE,EAAE5pD,EAAG,GAAG4hH,GAAIhuF,EAAEzzB,EAAE,GAAGH,CAAC,CAAC,EAAG,OAAOA,EAAG,MAAO,EAAE,CACzF,SAASk9J,GAAG/8J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,GAAI,EAAC,GAAE,EAAGH,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,EAAE,EAAE4zB,EAAE,GAAI,EAACzzB,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAE,CAAC,CACzF,SAASg9J,IAAGh9J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAEG,EAAE,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE+D,IAAI/5B,EAAEA,EAAE,OAAO,IAAI,CAAE,CACzF,SAASwpI,GAAIj9J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,GAAG,EAAG,MAAO,IAAY,IAAJH,EAAE,EAAM4zB,EAAE,EAAG,EAAAA,EAAEzzB,GAAMyzB,IAAI,EAAG,EAAE5zB,EAAE,OAAOA,CAAE,CACzF,SAAS+zH,IAAI5zH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIglI,IAAIl9J,CAAC,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,GAAI,CAAC,CACzF,SAAS0pI,IAAIn9J,EAAE,CAAConD,GAAK,EAAC,KAAK,EAAE,IAAIriB,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAI20C,GAAG,KAAK,EAAE15E,CAAC,CACzF,SAASo9J,IAAK,CAAC,KAAK,EAAE,IAAIhiH,GAAI,KAAK,EAAE,IAAInP,GAAI,KAAK,EAAE,IAAImP,GAAI,KAAK,EAAE,IAAIvW,EAAI,KAAK,EAAE,IAAIA,CAAG,CACzF,SAASw4H,IAAIr9J,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,GAAE,EAAG,KAAK,EAAEh2B,EAAE,KAAK,EAAEzzB,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI8hF,IAAI,KAAKruD,EAAE5zB,EAAE4pD,CAAC,CAAC,CACxF,SAASyjE,GAAIltH,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,KAAK,EAAEQ,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAE,GAAGjqD,IAAI,KAAK,EAAE,GAAGiqD,EAAE,EAAE,CACxF,SAASlc,KAAK,CAACG,GAAI,KAAK,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI4vH,EAAG,CACxF,SAASC,KAAK,CAAC,OAAA7+D,GAAG,EAAUwa,EAAG9hE,EAAGomH,IAAG,CAAC,EAAEpkD,EAAI,IAAI,EAAE,CAACqkD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CACxF,SAASC,KAAK,CAAC,OAAA72E,GAAG,EAAU6xB,EAAG9hE,EAAG+mH,IAAG,CAAC,EAAE/kD,EAAI,IAAI,EAAE,CAACglD,IAAIC,IAAIC,IAAIC,IAAIC,GAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,CAAC,CACxF,SAASC,KAAK,CAACA,IAAIn6J,EAAIo6J,IAAI5lD,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CACzF,SAASlrE,KAAK,CAACA,IAAIvkD,EAAIq6J,IAAIr2D,GAAIA,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGuuD,KAAM58C,GAAK,EAACujE,GAAK,EAAC1mB,GAAI2mB,EAAG,EAAE1mB,GAAI2mB,EAAG,CAAC,CACzF,SAAShzI,KAAK,CAACA,IAAIxnB,EAAIy6J,IAAIz2D,GAAIA,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGuuD,KAAM58C,GAAK,EAACujE,GAAK,EAAC1mB,GAAI2mB,EAAG,EAAE1mB,GAAI2mB,EAAG,CAAC,CACzF,SAAStyI,KAAK,CAACA,IAAIloB,EAAI06J,IAAI12D,GAAIA,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGuuD,KAAM58C,GAAK,EAACujE,GAAK,EAAC1mB,GAAI2mB,EAAG,EAAE1mB,GAAI2mB,EAAG,CAAC,CACzF,SAASxxI,KAAK,CAACA,IAAIhpB,EAAI26J,IAAIzvD,GAAIlH,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGyuD,KAAM98C,GAAK,EAAC6jE,GAAK,EAAC9mB,GAAI+mB,EAAG,EAAE5mC,GAAI6mC,EAAG,CAAC,CACzF,SAASpyE,IAAK,CAACA,GAAI1oF,EAAIg5H,GAAI,IAAIvsE,GAAI,cAAc,CAAC,EAAEwsE,GAAI,IAAIxsE,GAAIsuG,GAAI,CAAC,EAAE7hC,IAAI,IAAIzsE,GAAIq8F,GAAI,CAAC,CAAC,CACzF,SAASkS,IAAI1/J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAmB,OAAjB5pD,EAAEG,EAAE,EAAEypD,EAAEh2B,EAAE,EAAEzzB,EAAE,CAAC,EAAKypD,EAAE,EAAUvG,EAAGo4B,GAAIz7E,EAAE,EAAE4pD,EAAE,CAAC,EAAE,EAAE,EAAS,IAAI,CACzF,SAASk2G,GAAI3/J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS+/E,GAAI//E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAASkgF,GAAIlgF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAASm7J,GAAIn7J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS4/J,GAAI5/J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAASgpG,GAAIhpG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAASwlG,GAAIxlG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS6/J,GAAI7/J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS8/J,GAAI9/J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS8oG,GAAI9oG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAAS+/J,GAAI//J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,CAAC,CACzF,SAASggK,GAAIhgK,EAAEyzB,EAAE,CAAIzzB,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,IAAGA,EAAE,GAAGyzB,EAAIzzB,EAAE,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,GAAG,GAAGggK,GAAIhgK,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,CACzF,SAASugD,IAAIvgD,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEzpD,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAE4pD,GAAGzpD,EAAE,EAAE,MAAM,IAAI,IAAIkuC,IAAI,IAAIlkB,GAAIhqB,EAAE,EAAEigK,IAAIx2G,EAAEzpD,EAAE,EAAEA,EAAE,CAAC,CAAC,CACzF,SAASkgK,IAAIlgK,EAAEyzB,EAAE,CAAC,OAAO0sI,GAAIngK,EAAE,EAAEyzB,CAAC,GAAG+3B,GAAG,EAAG0uE,GAAIzmG,CAAC,EAAE,IAAI60E,GAAI70E,EAAEzzB,CAAC,EAAE,IAAIi5D,GAAIxlC,EAAEzzB,CAAC,GAAG,IAAIo5D,IAAI3lC,EAAEzzB,CAAC,CAAC,CACzF,SAASilE,GAAGjlE,EAAEyzB,EAAE,CAAC,OAAOqoB,IAAGg6G,GAAG91J,EAAE,EAAEyzB,EAAEw5E,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACzF,SAAShoD,IAAIjuG,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4uJ,GAAIzuJ,EAAE,IAAIm5B,IAAI1F,CAAC,EAAE,IAAIjtB,IAAI,IAAI4yB,IAAIv5B,CAAC,EAAEq5G,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAAA,CAAE,CAAC,CAAC,CACzF,SAAS0E,IAAI99G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,MAAG,GAAEG,EAAU,IAAI+kD,IAAItxB,EAAEzzB,EAAE,EAAEH,EAAE,IAAI05I,IAAI9lH,EAAEzzB,CAAC,EAAS,IAAI26E,GAAI,KAAK96E,CAAC,EAAC,CAC1F,SAASmgH,IAAIhgH,EAAEyzB,EAAE,CAAC42C,GAAG,EAAG,IAAIxqE,EAAE,OAAAA,EAAE,IAAI69C,GAAI,CAAC,EAAE0c,GAAGp6D,CAAC,EAAEupD,GAAI1pD,EAAEG,EAAEyzB,CAAC,EAAEgtF,GAAI5gH,EAAE,EAAEG,EAAEyzB,CAAC,EAAS,IAAIwE,GAAIp4B,CAAC,CAAC,CAC1F,SAASugK,IAAIpgK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAsB,OAApB5pD,EAAEG,EAAE,EAAEA,EAAE,EAAEypD,EAAEh2B,EAAE,EAAEA,EAAE,EAAK5zB,EAAE4pD,EAAU,GAAM5pD,GAAG4pD,EAAU,EAAS,CAAC,CAC1F,SAAS08D,IAAInmH,EAAE,CAAC,IAAIyzB,EAAuB,OAArBA,EAAEm1F,EAAI5oH,GAAGkqH,EAAK,EAAC+jC,GAAK,EAAI1iF,EAAG93C,EAAE,GAAG,EAAU4sI,IAAIn9G,EAAGzvB,EAAE,GAAG,CAAC,EAAS,IAAI,CAC1F,SAAS6sI,IAAGtgK,EAAE,CAAC,IAAIyzB,EAAgC,OAA9BzzB,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,CAAC,EAAEyzB,EAAEwnG,GAAIj7H,CAAC,EAAKA,EAAEyzB,GAAGA,IAAI,EAASA,EAAE,EAAEA,EAAE6wB,IAAW7wB,CAAC,CAC1F,SAAS06H,GAAGnuJ,EAAE,CAAY,OAAXgwE,GAAGhwE,EAAE,GAAG,CAAC,EAASA,EAAE,EAAG,CAAA,IAAK,GAAE,MAAO,GAAM,IAAK,GAAE,MAAO,EAAK,CAAC,OAAO+9I,IAAG/9I,CAAC,CAAC,CAC1F,SAASugK,IAAIvgK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG0rE,EAAG93C,EAAE,CAAC,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,CAAC,EAASzzB,EAAE,GAAGH,EAAE,GAAGG,EAAE,GAAGH,EAAE,GAAc,EAAM,CAC1F,SAAS2gK,GAAIxgK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAA,EAAEo0B,GAAG,EAAEj0B,EAAEi0B,EAAE,GAAGg2B,EAAEoxE,GAAInpB,GAAI1xG,EAAE,EAAEH,CAAC,EAAER,CAAC,EAAE4tG,GAAIqE,GAAI9xG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAASiqD,CAAC,CAC1F,SAASg3G,IAAIzgK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEh2B,EAAE,GAAE,EAAG,GAAI,EAACg2B,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAEi3G,GAAI1gK,EAAEH,EAAE,GAAI,EAACA,EAAE,GAAE,CAAE,CAAE,CAC1F,SAAS8gK,IAAI3gK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE,IAAI6J,GAAIw5C,EAAGzvB,EAAE,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE4wC,GAAI5wC,EAAE,EAAE,IAAI0sE,GAAIngG,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CAC1F,SAASmtI,GAAI5gK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,GAAGH,EAAEG,EAAE,CAAC,CAAC,CAAC,CAC1F,SAAS6gK,GAAI7gK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,GAAGH,EAAEG,EAAE,CAAC,CAAC,CAAC,CAC1F,SAASs5D,GAAIt5D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,GAAGH,EAAEG,EAAE,CAAC,CAAC,CAAC,CAC1F,SAAS8gK,IAAI9gK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAiB,IAAfA,EAAEW,EAAE,EAAE,OAAO,EAAMR,EAAEQ,EAAE,EAAEypD,EAAE,EAAEA,EAAE5pD,EAAEL,EAAEA,EAAE,EAAEH,EAAE,EAAEoqD,EAAGoc,GAAGpyC,EAAEg2B,EAAEzpD,EAAE,EAAER,CAAC,CAAC,CAAE,CAC3F,SAAS+tG,GAAIvtG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAe,OAAbixB,GAAI2C,CAAC,EAAE5zB,EAAE4zB,EAAE,EAAMzzB,EAAE,EAAEH,CAAC,EAAwC,IAArCgmE,GAAG7lE,EAAE,EAAEH,EAAE4zB,CAAC,EAAE,EAAEzzB,EAAE,EAAS,GAAiB,CAC3F,SAAS+gK,IAAI/gK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAA4B,OAA1BA,EAAE4zB,GAAG,KAAK,GAAGysC,GAAIlgE,EAAE,EAAEyzB,EAAE,CAAC,EAAK5zB,EAAE,EAAU,IAAMiyJ,GAAI9xJ,EAAEH,CAAC,EAAS,GAAI,CAC3F,SAASiyJ,GAAI9xJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE62G,GAAI12G,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAKyzB,EAAEzzB,EAAE,EAAE,EAAE,SAAQ81G,GAAI91G,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAEmhK,IAAIhhK,EAAEyzB,CAAC,EAAE,CAC3F,SAASwtI,IAAIjhK,EAAEyzB,EAAE,EAAGgmH,KAAM9zE,GAAK,KAAKlyC,EAAE,GAAG,QAAQ,GAAGuoD,IAAIvoD,EAAE,IAAI9tB,EAAG,EAAE4jD,GAAIvpD,EAAE,EAAE2lE,GAAI,KAAKlyC,EAAE,EAAEA,CAAC,CAAC,CAC1F,SAASytI,IAAIlhK,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAE,0CAA0C,CAAC,EAAE0tI,IAAInhK,CAAC,EAAEohK,IAAIphK,CAAC,EAAE6rH,GAAIp4F,CAAC,CAAC,CACzF,SAAS4tI,IAAIrhK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEh2B,EAAE,GAAE,EAAGg2B,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEzpD,EAAE,EAAE,GAAKgpC,GAAIhpC,EAAE,EAAEH,CAAC,EAAEA,EAAE,EAAEG,CAAE,CAC3F,SAAS6pI,GAAI7pI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAE,EAAE4zB,EAAEg2B,EAAEzpD,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,CAAC,EAAE4pD,EAAE,EAAEh2B,CAAC,EAAEg2B,EAAE,EAAEh2B,CAAC,EAAEzzB,EAAEA,EAAE,EAAE,GAAKypD,EAAE,EAAE,GAAaA,CAAC,CAC3F,SAAS63G,IAAIthK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGi0I,GAAK,EAAC,CAAC,EAAE93G,EAAEvG,EAAG0lE,EAAIn1F,EAAE8tI,EAAG,EAAE,CAAC,EAAS3iG,GAAI/+D,EAAE,EAAE4pD,EAAE,CAAC,CAAC,CAC3F,SAAS+3G,IAAIxhK,EAAE,CAAC8uG,GAAI,KAAK,IAAI,EAAE,KAAK,EAAE57D,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAGm0I,GAAG,CAAE,CAAC,EAAE,KAAK,EAAEv+G,EAAG0lE,EAAI5oH,EAAE0hK,EAAG,EAAE,GAAG,CAAC,CAC3F,SAASC,IAAI3hK,EAAEyzB,EAAE5zB,EAAE,CAACutI,GAAI,KAAK,KAAKptI,EAAEyzB,EAAE5zB,CAAC,EAAE,KAAK,EAAE,IAAIklC,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIjG,IAAI,IAAI,CAAC,CAC3F,SAAS8iI,IAAG5hK,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAIy9C,GAAIigB,GAAGszC,GAAG,KAAK,CAAC,EAAE,GAAI,CAAA,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAC3F,SAAS+lB,GAAI/2H,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAC3F,SAASg9G,GAAIh9G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAE,IAAI5kB,EAAIg9H,GAAI7hK,EAAEyzB,EAAEg2B,EAAE5pD,EAAE,GAAK,EAAI,EAAEG,EAAE,EAAE,IAAI+2H,GAAIttE,EAAE,EAAE,MAAM,EAASA,CAAC,CAC3F,SAASq4G,IAAI9hK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAM5zB,IAAGA,EAAE,IAAI0rC,IAAI1rC,EAAE,EAAE4zB,EAAE+lC,GAAIx5D,EAAE,EAAEH,EAAE,EAAEA,CAAC,GAASA,CAAC,CAC3F,SAASkiK,GAAGviK,EAAEQ,EAAE,CAAC,IAAIyzB,EAAEj0B,EAAE,EAAMK,EAAE,EAAE,QAAQ4pD,KAAKh2B,EAAGA,EAAE,eAAeg2B,CAAC,IAAIzpD,EAAEH,GAAG,EAAE4pD,GAAG,OAAOzpD,CAAC,CAC3F,SAASgiK,GAAIhiK,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,GAAG,MAAamrD,KAAMA,KAAMC,KAAI33B,EAAEzzB,EAAE,KAAKA,EAAE,GAAE,EAAGA,EAAE,GAAI,EAAQyzB,EAAC,CAC1F,SAASwuI,IAAIjiK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIs8D,GAAIn8D,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,MAAO4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAEijE,GAAIrvC,EAAE,CAAC,EAAEsvC,GAAItvC,EAAE,CAAC,CAAE,CAC3F,SAASyuI,IAAK,CAACA,GAAIx9J,EAAIy9J,GAAI,IAAIl/H,GAAIm/H,GAAG,EAAEC,GAAI,IAAIp/H,GAAIq/H,GAAG,EAAEC,GAAI,IAAIt/H,GAAIu/H,GAAG,EAAEC,GAAI,IAAIx/H,GAAIy/H,GAAG,CAAC,CAC1F,SAAS/mE,IAAK,CAACA,GAAIj3F,EAAIouH,GAAI,IAAIpjE,GAAI,kBAAkB,CAAC,EAAEqjE,GAAI,IAAIrjE,GAAI,qBAAqB,CAAC,CAAC,CAC3F,SAASknC,IAAK,CAACA,GAAIlyF,EAAIwsH,GAAI,IAAIl9D,GAAI,oBAAoB,CAAC,EAAEm9D,GAAI,IAAIn9D,GAAI,kBAAkB,CAAC,CAAC,CAC1F,SAAS45B,IAAK,CAACA,GAAIlpF,EAAI+5H,GAAI,IAAIztE,GAAI,QAAQ,CAAC,EAAE0tE,GAAI,IAAI1tE,GAAI,SAAS,CAAC,EAAE2tE,GAAI,IAAI3tE,GAAI,MAAM,CAAC,CAAC,CAC1F,SAASplC,IAAK,CAACA,GAAIlnB,EAAIi+J,GAAI,IAAI7kG,GAAI,8CAA8CsS,KAAMC,IAAK,CAC5F,SAASuyF,IAAI5iK,EAAEyzB,EAAE,CAAC4xB,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI,IAAIh2B,GAAI92B,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAIq2D,IAAIr2D,EAAEyzB,CAAC,CAAC,EAAE,IAAI8iC,IAAIv2D,EAAEyzB,CAAC,CAAC,CAAC,CAC3F,SAASovI,KAAK,CAAC,KAAK,EAAE,IAAI5jH,GAAI,CAAC,EAAE,KAAK,EAAE,IAAIA,GAAI6jH,GAAG,EAAE,KAAK,EAAE,IAAI7jH,GAAI8jH,GAAG,EAAE,KAAK,EAAE,IAAI9jH,GAAI+jH,EAAG,CAAC,CAC5F,SAASC,GAAIjjK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAACH,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,GAAG,EAAE60B,IAAIjB,EAAE,IAAIyvI,IAAIzvI,EAAE,CAAC,CAAC,CAAE,CAC5F,SAAS0vI,IAAInjK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAACH,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,GAAG,EAAE40B,IAAIhB,EAAE,IAAIsgF,IAAItgF,EAAE,CAAC,CAAC,CAAE,CAC5F,SAASsmG,GAAI/5H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,GAAGA,EAAE,GAAGyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,CAAC,CAAC,CAC5F,SAASojK,GAAIpjK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,GAAGA,EAAE,GAAGyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,CAAC,CAAC,CAC5F,SAASqjK,GAAIrjK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEG,EAAE,GAAGA,EAAE,GAAGyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,CAAC,CAAC,CAC5F,SAASsjK,GAAItjK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE5pD,GAAG4pD,EAAE,IAAInc,GAAImc,GAAG5pD,EAAE,EAAE4zB,EAAEyyC,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGH,CAAC,CAAC,CAC5F,SAAS0jK,GAAIvjK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEA,GAAG5pD,EAAE,IAAI85E,GAAI95E,GAAG4pD,EAAE,EAAEh2B,EAAEyyC,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGypD,CAAC,CAAC,CAC5F,SAAS+5G,GAAIxjK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAA+B,IAA7B5pD,EAAEG,EAAE,GAAI,EAAC8gE,GAAIjhE,EAAE,EAAEA,EAAE,OAAO4zB,CAAC,EAAMg2B,EAAE,EAAEA,EAAE5pD,EAAE,OAAO4pD,IAAKzpD,EAAE,GAAGypD,EAAE5pD,EAAE4pD,CAAC,CAAC,CAAE,CAC5F,SAAShF,GAAGzkD,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAiB,IAAfsxB,GAAI2C,CAAC,EAAE5zB,EAAE,GAAUL,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEjqD,EAAE,GAAE,EAAGK,EAAEA,EAAEG,EAAE,GAAGypD,CAAC,EAAE,OAAO5pD,CAAC,CAC7F,SAAS4jK,IAAGzjK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJh2B,EAAE,EAAMg2B,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAE,GAAK5pD,EAAE4pD,EAAE,GAAE,EAAGh2B,GAAG5zB,GAAG,KAAK0kE,GAAG1kE,CAAC,EAAE,EAAE4zB,EAAE,CAAC,CAACA,EAAE,OAAOA,CAAC,CAC7F,SAASiwI,IAAG1jK,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,GAAG,EAAU,OAASA,EAAE,GAAGA,EAAE,CAACA,EAAEyzB,EAAE,QAAYA,EAAE,OAAcA,EAAE69H,IAAGtxJ,CAAC,EAAC,CAC7F,SAAS2hG,GAAG3hG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG0rE,EAAG93C,EAAE,EAAE,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAASzzB,EAAE,GAAGH,CAAC,GAAS2hG,GAAGxhG,EAAEkjD,EAAG1N,GAAG/hB,CAAC,EAAE,EAAE,EAAE,GAAI,CAAA,CAAC,CAC5F,SAASkwI,IAAI3jK,EAAEyzB,EAAE5zB,EAAE,CAACqkG,IAAI,KAAK,KAAKzwE,EAAE5zB,CAAC,EAAE,KAAK,EAAEokE,EAAGopD,GAAGC,GAAI,GAAGttH,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEmpI,GAAInpI,EAAE,EAAE,KAAK,CAAC,CAAC,CAC5F,SAAS4jK,IAAI5jK,EAAE,CAACA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,IAAI,CAC5F,SAAS6jK,IAAI7jK,EAAEyzB,EAAE,CAAIA,EAAMzzB,EAAE,GAAG,OAAMA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,MAAcA,EAAE,GAAG,OAAMA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,KAAK,CAC5F,SAAS8jK,IAAI9jK,EAAEyzB,EAAE,CAAC,OAAOyf,EAAImnC,EAAGpI,GAAIkgC,GAAIsG,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIi+B,IAAIj+B,CAAC,CAAC,EAAEyzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7F,SAASswI,GAAI/jK,EAAEyzB,EAAE,CAAC,OAAOyf,EAAImnC,EAAGpI,GAAIkgC,GAAIsG,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIg+B,IAAIh+B,CAAC,CAAC,EAAEyzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7F,SAASuwI,IAAIhkK,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAEwwI,IAAI,CAAC,EAAE5+G,GAAIksG,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI4M,GAAG,EAAE,IAAIC,GAAG,EAAEg/G,GAAIp4F,CAAC,CAAC,CAC7F,SAASywI,IAAIlkK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGulE,GAAIzoH,GAAGsuB,GAAG,EAAG61I,GAAK,EAAC,EAAE,EAAE16G,EAAEvG,EAAGulE,GAAIh1F,EAAE0wI,EAAG,EAAE,EAAE,EAASrlG,GAAIj/D,EAAE,EAAE4pD,EAAE,CAAC,CAAC,CAC7F,SAAS+oG,GAAIxyJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAE85J,GAAIt5J,EAAE,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,GAAIiqD,EAAEvG,EAAG0tF,GAAIpxI,CAAC,EAAE,CAAC,EAAEiqD,EAAE,GAAGh2B,EAAEg2B,EAAE,GAAG5pD,EAAE,OAAOG,CAAC,CAC7F,SAASk6J,GAAGl6J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAEzpD,EAAE,EAAEH,EAAEG,EAAE,CAAC,EAAEypD,EAAEA,EAAEA,EAAE,EAAG,GAAG5pD,GAAG4pD,EAAE,GAAGo0D,GAAGpqF,EAAEg2B,EAAE,CAAC,EAAG,OAAOA,EAAG,OAAO,IAAI,CAC9F,SAASqsG,GAAG91J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAEzpD,EAAE,EAAEH,EAAEG,EAAE,CAAC,EAAEypD,EAAEA,EAAEA,EAAE,EAAG,GAAG5pD,GAAG4pD,EAAE,GAAGo0D,GAAGpqF,EAAEg2B,EAAE,CAAC,EAAG,OAAOA,EAAG,OAAO,IAAI,CAC9F,SAAS26G,IAAIpkK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAM,IAAJoqD,EAAE,EAAMjqD,EAAE,EAAEA,EAAEK,EAAEL,IAAKH,EAAEo0B,EAAEj0B,CAAC,EAAEQ,EAAER,CAAC,EAAEH,GAAG,EAAEoqD,EAAEA,EAAEpqD,IAAI,GAAGoqD,GAAG,IAAIzpD,EAAEH,CAAC,EAAE4pD,EAAE,CAC7F,SAAS+mF,IAAIxwI,EAAEyzB,EAAE,CAAC42C,GAAG,EAAG,IAAIxqE,EAAE4pD,EAAY,IAAVA,EAAE,IAAI5kB,EAAQhlC,EAAE,EAAEA,EAAEG,EAAE,EAAEH,EAAG4pD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEh2B,EAAE,OAAO,IAAI6iB,GAAImT,CAAC,CAAC,CAC9F,SAAS46G,IAAIrkK,EAAE,CAAC,IAAIyzB,EAAW,OAATA,EAAE+3G,IAAIxrI,CAAC,EAAKy6D,GAAIhnC,EAAE,EAAE,CAAC,GAAUwyB,KAAMA,GAAK,EAACC,MAAWD,GAAG,EAAG,IAAI2vB,GAAIniD,EAAE,CAAC,EAAC,CAC9F,SAAS6wI,IAAItkK,EAAE,CAAC,IAAIyzB,EAAW,OAATA,EAAE+3G,IAAIxrI,CAAC,EAAKy6D,GAAIhnC,EAAE,EAAE,CAAC,GAAUwyB,KAAMA,GAAK,EAACC,MAAWD,GAAG,EAAG,IAAI2vB,GAAIniD,EAAE,CAAC,EAAC,CAC9F,SAAS8wI,IAAIvkK,EAAE,CAAC,IAAIyzB,EAAW,OAATA,EAAE83G,GAAIvrI,CAAC,EAAKy6D,GAAIhnC,EAAE,EAAE,CAAC,GAAU2yB,KAAMA,GAAK,EAACC,MAAWD,GAAG,EAAG,IAAIyvB,IAAIpiD,EAAE,CAAC,EAAC,CAC9F,SAAS+wI,IAAIxkK,EAAE,CAAC,OAAGA,EAAE,EAAE,EAAE,EAAE,IAAI2qF,GAAG,EAAGi0D,IAAa17F,EAAG0lE,EAAI5oH,EAAE,EAAE,EAAE,GAAGkqH,EAAK,EAAC+jC,GAAK,EAAC,EAAE,EAASjuJ,EAAE,EAAE,CAAC,CAC9F,SAASykK,IAAIzkK,EAAE,CAAC,OAAGA,EAAE,EAAE,EAAE,EAAE,IAAI2qF,GAAG,EAAGi0D,IAAa17F,EAAG0lE,EAAI5oH,EAAE,EAAE,EAAE,GAAGkqH,EAAK,EAAC+jC,GAAK,EAAC,EAAE,EAASjuJ,EAAE,EAAE,CAAC,CAC9F,SAAS0kK,GAAI1kK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAAC,IAAIhlK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,CAAC,EAAEE,GAAIjlK,EAAE,EAAK,EAASA,CAAC,CAC5F,SAASklK,GAAIllK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAACxqE,GAAG,KAAK,KAAKviD,EAAEyzB,CAAC,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAEH,EAAE,KAAK,EAAEwgJ,GAAG9yB,CAAC,CAAC,CAC9F,SAASo4C,IAAInlK,EAAEyzB,EAAE,CAAC,OAAO,SAASujF,IAAK,OAAO,OAAO,OAAUA,KAAM,OAAO,KAAQh3G,CAAC,EAAEyzB,EAAE,CACzF,SAAS2xI,IAAIplK,EAAEyzB,EAAE,CAAC,OAAAy2D,KAAalqF,GAAG6/D,IAAKpsC,GAAGqsC,IAAK9/D,GAAG8/D,IAAKrsC,GAAGosC,IAAK7/D,GAAGkvI,IAAKz7G,GAAGusC,IAAKhgE,GAAGggE,IAAKvsC,GAAGy7G,EAAG,CAC7F,SAASm2B,IAAIrlK,EAAEyzB,EAAE,CAAC,OAAAy2D,KAAalqF,GAAG6/D,IAAKpsC,GAAGusC,IAAKhgE,GAAG6/D,IAAKpsC,GAAGy7G,IAAKlvI,GAAG8/D,IAAKrsC,GAAGy7G,IAAKlvI,GAAG8/D,IAAKrsC,GAAGusC,EAAG,CAC7F,SAASslG,IAAItlK,EAAEyzB,EAAE,CAAC,OAAO0zC,GAAE,EAAG0yF,GAAG3F,EAAG,EAAEnxJ,EAAK,KAAK,IAAI,EAAE0wB,CAAC,GAAGygI,IAAQzgI,GAAH,GAAM,MAAM,CAAC,GAAG,MAAMA,CAAC,EAAE,EAAEzzB,EAAEyzB,CAAC,CAC7F,SAAS8xI,KAAK,CAAC,OAAAv1E,GAAK,EAAQkpB,EAAG9hE,EAAGouH,GAAG,CAAC,EAAEpsD,EAAI,IAAI,EAAE,CAACqsD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAC5F,SAASx1I,IAAK,CAACA,GAAIhsB,EAAIyhK,GAAI,IAAI94H,IAAIgmF,GAAIna,EAAG9hE,EAAGmzE,GAAG,CAAC,EAAE67C,GAAI,IAAI,EAAE,CAAA,CAAE,EAAEC,IAAIntD,EAAG9hE,EAAGkzE,GAAG,CAAC,EAAEg8C,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAC7F,SAAStyE,IAAK,CAACA,GAAItvF,EAAIu8H,IAAI,IAAIruE,GAAI,KAAK,CAAC,EAAEsuE,GAAI,IAAItuE,GAAI,SAAS,CAAC,EAAEuuE,IAAI,IAAIvuE,GAAI,YAAY,CAAC,CAAC,CAC7F,SAAS0/C,IAAK,CAACA,GAAI5tG,EAAI6hK,IAAI,IAAIt6J,IAAIu6J,IAAI,IAAIx6J,IAAIy6J,IAAI,IAAIv6J,IAAIw6J,IAAI,IAAIv6J,IAAIw6J,IAAI,IAAIv6J,IAAIw6J,IAAI,IAAIv6J,GAAG,CAC9F,SAASw6J,IAAI7mK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,EAAEA,CAAE,CAC9F,SAASq9G,IAAI9mK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEknK,GAAI/mK,CAAC,EAASgnK,GAAI,IAAI5xG,GAAIv1D,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIu1D,GAAIv1D,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAE,GAAE,EAAGyzB,EAAEzzB,EAAE,GAAI,CAAA,CAAC,CAC9F,SAASinK,GAAIjnK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,EAAU,MAAUH,EAAEy0J,IAAIt0J,EAAEA,EAAE,CAAC,EAAE6lG,GAAI7lG,EAAE,EAAEH,CAAC,EAAEA,EAAE,EAAEG,EAAEA,EAAE,EAAEyzB,EAAS5zB,EAAE,CAC9F,SAASqnK,IAAIlnK,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,uBAAuB,CAAC,EAAEsnK,IAAInnK,EAAEyzB,CAAC,EAAE2zI,IAAIpnK,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CAC9F,SAASwnK,IAAIrnK,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE,IAAIglC,EAAIyiI,IAAI,IAAI,EAAEj9F,GAAG,EAAGrC,GAAI,KAAK,EAAE,IAAI,CAAC,CAC9F,SAASu/F,GAAIvnK,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAQ,KAAK,EAAE,IAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAG,KAAK,CAAC,EAAE,CAC9F,SAAS+nI,GAAI/nI,EAAEyzB,EAAE,CAAC+6C,GAAI,KAAK,KAAKg5F,IAAGxnK,EAAEyzB,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,EAAEg0I,GAAIznK,EAAE,GAAI,EAAC8pJ,GAAI,KAAK,EAAE,GAAI,EAAC,KAAK,CAAC,CAAC,CAAC,CAC9F,SAASntF,GAAG38D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAS,IAAP34B,GAAI2C,CAAC,EAAMg2B,EAAEh2B,EAAE,GAAI,EAAC,GAAE,EAAGg2B,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEzpD,EAAE,GAAGH,EAAE,GAAE,EAAGA,EAAE,GAAI,CAAA,CAAE,CAC/F,SAAS6nK,IAAI1nK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAE5pD,EAAE,GAAE,EAAG4pD,EAAE,MAAO,GAAG,CAACqrF,GAAI90I,EAAEyzB,EAAEg2B,EAAE,GAAI,CAAA,EAAG,MAAO,GAAO,MAAO,EAAI,CAC9F,SAASk+G,IAAI3nK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE,OAAGQ,IAAGR,EAAEkkJ,GAAI9vH,EAAE,KAAKzzB,EAAE,CAAC,EAAER,EAAEK,EAAE,GAAG4zB,EAAE,IAAIp0B,GAAG,GAAGoqD,EAAEpqD,GAAG,KAAKG,CAAC,GAASA,CAAC,CAC9F,SAASooK,IAAI5nK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE,OAAGQ,IAAGR,EAAEkkJ,GAAI9vH,EAAE,KAAKzzB,EAAE,CAAC,EAAER,EAAEK,EAAE,GAAG4zB,EAAE,IAAIp0B,GAAG,GAAGoqD,EAAEpqD,GAAG,KAAKG,CAAC,GAASA,CAAC,CAC9F,SAASqoK,IAAI7nK,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAG,GAAG,CAAC,GAAGA,EAAE,GAAG,EAAGyzB,EAAE,OAAQ,KAAIA,EAAE,EAAEzzB,EAAE,EAAEyzB,CAAC,GAAG,EAAEA,IAAI,CAAEzzB,EAAE,EAAEyzB,CAAC,CAAC,OAAOzzB,EAAE,CAAC,CAC/F,SAAS8nK,IAAI9nK,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO8+F,EAAG,EAAGmE,GAAI,IAAK,GAAE,OAAOnE,EAAG,EAAGsE,GAAI,QAAQ,OAAOpjG,CAAE,CAAC,CAC9F,SAAS+nK,IAAI/nK,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO8+F,EAAG,EAAGmxC,GAAI,IAAK,GAAE,OAAOnxC,EAAG,EAAG+5C,GAAI,QAAQ,OAAO74I,CAAE,CAAC,CAC9F,SAASgoK,IAAIhoK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAOzpD,EAAE,IAAI8+F,EAAK,EAAC+5C,MAAOplH,EAAEy8G,IAAIlwI,CAAC,EAAEH,EAAEkuD,GAAIt6B,EAAE2vE,EAAG,EAAE35C,EAAEsE,GAAIt6B,EAAEwvE,EAAG,EAAEx5C,GAAGA,GAAG5pD,EAAE,CAC/F,SAASooK,IAAIjoK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEyvB,EAAGljD,EAAE,GAAGA,EAAE,EAAC,EAAG,CAAC,EAAEH,EAAEqjD,EAAGkyB,GAAI3hD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAS,IAAIuxD,GAAIvxD,EAAE5zB,EAAE4zB,EAAE,MAAM,CAAC,CAC/F,SAASy0I,IAAIloK,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAEwwI,IAAI,CAAC,EAAEpwC,GAAI7tE,IAAI,IAAI7rB,IAAK6sB,GAAG,EAAG,IAAI89D,GAAI9kH,EAAE,GAAM,GAAM,IAAI+L,EAAG,GAAG,CAAC,EAAE8/G,GAAIp4F,CAAC,CAAC,CAC/F,SAASw3E,GAAIjrG,EAAEyzB,EAAE,CAAC,OAAA28C,GAAG,EAAUhW,GAAGp6D,CAAC,EAAE0sE,GAAI1sE,EAAEu1C,GAAG9hB,CAAC,CAAC,EAAEymC,GAAGl6D,CAAC,EAAE6xG,GAAI7xG,EAAEq6E,EAAG5mD,CAAC,CAAC,EAAEumC,GAAGh6D,CAAC,EAAE4xG,IAAI5xG,EAAEo6E,GAAG3mD,CAAC,CAAC,EAAEzzB,EAAE,GAAGyzB,CAAC,CAAC,CAC/F,SAAS00I,GAAInoK,EAAEyzB,EAAE,CAACA,EAAE,EAAEzzB,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,CAAC,CAC9F,SAAS4/E,GAAIrzG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAG,EAAEQ,EAAE,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAEX,EAAEW,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEA,EAAE,EAASyzB,EAAE,EAAEj0B,GAAGi0B,EAAE,EAAE5zB,GAAG4zB,EAAE,EAAEp0B,GAAGo0B,EAAE,EAAEg2B,CAAC,CAC/F,SAAS24D,IAAIpiH,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC8hB,EAAGvrE,EAAE,GAAG,GAAG,IAAIkjD,EAAGljD,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM+5H,GAAI/5H,EAAEH,CAAC,EAAI4zB,GAAG20I,IAAIpoK,EAAEyzB,CAAC,EAAEg2B,GAAGzpD,EAAE,GAAG,EAAI,CAAC,CAC/F,SAASkmH,GAAIlmH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEqjD,EAAGzvB,EAAE,GAAG,EAAEo2F,GAAIhqH,EAAE,IAAIG,EAAE,CAAC,EAAE6pH,GAAIhqH,EAAE,IAAIG,EAAE,CAAC,EAAE6pH,GAAIhqH,EAAEwoK,GAAIroK,EAAE,CAAC,EAAE6pH,GAAIhqH,EAAEyoK,GAAItoK,EAAE,CAAC,CAAC,CAC/F,SAASsyC,IAAK,CAACA,GAAI5tC,EAAI6jK,IAAInd,GAAIruF,IAAI2rC,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGyuD,KAAM98C,GAAK,EAAC6jE,GAAK,EAAC9mB,GAAI+mB,EAAG,EAAE5mC,EAAG,EAAE6mC,EAAG,CAAC,CAC9F,SAAShxI,KAAK,CAACA,IAAI9pB,EAAI8jK,IAAIpd,GAAIruF,IAAI2rC,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGyuD,KAAM98C,GAAK,EAAC6jE,GAAK,EAAC9mB,GAAI+mB,EAAG,EAAE5mC,EAAG,EAAE6mC,EAAG,CAAC,CAC9F,SAASpnE,IAAK,CAACA,GAAI1zF,EAAIg+H,GAAI,IAAIruE,GAAIm5F,GAAI,CAAC,EAAE7qB,IAAI,IAAItuE,GAAI,mBAAmB,CAAC,EAAEuuE,IAAI,IAAIvuE,GAAI,KAAK,CAAC,CAAC,CAC/F,SAAS2+B,IAAK,CAACA,GAAItuF,EAAIw7H,IAAI,IAAIztE,GAAI,UAAU,CAAC,EAAE0tE,GAAI,IAAI1tE,GAAIg2G,GAAI,CAAC,EAAEroC,IAAI,IAAI3tE,GAAI,cAAc,CAAC,CAAC,CAC/F,SAAS4/B,KAAK,CAACA,IAAI3tF,EAAI4tF,IAAIj1B,IAAI+0B,GAAG,EAAG8mB,EAAG9hE,EAAG+gH,IAAG,CAAC,EAAE/+C,EAAI,IAAI,EAAE,CAACg/C,GAAIC,GAAIC,GAAIC,IAAIC,IAAIC,IAAIC,IAAIC,EAAG,CAAC,EAAC,CAAE,CAC/F,SAASlsE,KAAK,CAACA,IAAI/nF,EAAIgoF,IAAIrvB,IAAImvB,GAAG,EAAG0sB,EAAG9hE,EAAGqgH,IAAG,CAAC,EAAEr+C,EAAI,IAAI,EAAE,CAACs+C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CAC/F,SAASn9D,KAAK,CAACA,IAAIp2F,EAAIq2F,IAAI19B,IAAIw9B,GAAG,EAAGqe,EAAG9hE,EAAG2/G,IAAG,CAAC,EAAE39C,EAAI,IAAI,EAAE,CAAC49C,IAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CAC/F,SAAS53D,KAAK,CAACA,IAAIj7F,EAAIk7F,IAAIviC,IAAIqiC,GAAG,EAAGwZ,EAAG9hE,EAAGi/G,GAAG,CAAC,EAAEj9C,EAAI,IAAI,EAAE,CAACk9C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CAC/F,SAAS6R,IAAK,CAACA,GAAIhkK,EAAIikK,GAAI,IAAI7qG,GAAI,YAAYsS,GAAG,EAAG,GAAO,EAACw4F,IAAI,IAAI9qG,GAAI,kBAAkB,EAAI,CAAC,CAChG,SAAS+qG,IAAI7oK,EAAEyzB,EAAE,CAAC,OAAOg7H,GAAI,IAAIz1H,IAAIh5B,CAAC,EAAE,IAAIi5B,IAAIxF,CAAC,EAAE,IAAIyF,IAAIzF,CAAC,EAAE,IAAIttB,IAAI+yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAAA,CAAE,CAAC,CAAC,CAChG,SAAS0vD,KAAK,CAAC,IAAI9oK,EAAE,OAAI+oK,KAAKA,GAAI,IAAIl/H,IAAI7pC,EAAE,IAAIw5I,GAAI,EAAE,EAAE9zE,IAAI1lE,GAAGumD,GAAG,EAAGC,IAAG,EAAGy6G,IAAI8H,GAAI/oK,CAAC,GAAS+oK,EAAG,CAChG,SAASvuG,IAAGx6D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAQ,IAAN21C,GAAG/hB,CAAC,EAAQzzB,EAAE,GAAI,GAAW,GAATH,EAAEG,EAAE,GAAI,EAAI,CAACgpK,GAAI9lH,EAAGrjD,EAAE,EAAE,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,CAChG,SAASopK,IAAIjpK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAiB,OAAfA,EAAEqpK,GAAIhsH,KAAMl9C,CAAC,EAAKH,GAAGspK,GAAI11I,GAAGzD,GAAG,EAAGo5I,IAAKvpK,CAAC,EAAS,IAAiB,EAAM,CAChG,SAAS2gE,GAAIxgE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,EAAE,EAAE,OAAO5zB,IAAKqjD,EAAGwwB,GAAI1zE,EAAEH,CAAC,EAAE,EAAE,EAAE,GAAGqjD,EAAGwwB,GAAIjgD,EAAE5zB,CAAC,EAAE,EAAE,CAAC,EAAE,OAAOG,CAAC,CAChG,SAASqpK,IAAIrpK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIzE,EAAE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEzpD,EAAE,EAAEH,EAAE,CAAC,EAAEypK,IAAIzpK,CAAC,CAAE,CAChG,SAAS0pK,GAAIvpK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAS,IAAP34B,GAAI2C,CAAC,EAAMg2B,EAAEzpD,EAAE,GAAI,EAAC,GAAE,EAAGypD,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEh2B,EAAE,GAAG5zB,EAAE,GAAE,EAAGA,EAAE,GAAI,CAAA,CAAE,CAChG,SAAS2pK,GAAIxpK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK0rE,EAAG93C,EAAE,EAAE,GAAGyvB,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAI,EAACH,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAEgtI,IAAIzgK,EAAEH,CAAC,GAAOqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGyzB,CAAC,CAAE,CAC/F,SAASg2I,GAAGzpK,EAAE,CAAC,OAAOurE,EAAGvrE,EAAE,GAAG,EAAE8/I,GAAG58F,EAAGljD,EAAE,GAAG,CAAC,EAAEurE,EAAGvrE,EAAE,GAAG,EAAEkjD,EAAGljD,EAAE,GAAG,EAAE,EAAEurE,EAAGvrE,EAAE,EAAE,EAAE,IAAIowC,GAAGpwC,CAAC,EAAE,IAAIqwC,GAAGrwC,CAAC,CAAC,CAChG,SAAS0pK,IAAI1pK,EAAEyzB,EAAE,CAAC,OAAOA,EAAEzzB,EAAE,EAAE,GAAE,EAAGkjD,EAAGljD,EAAE,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAEA,GAAGzzB,EAAE,EAAE,KAAKA,EAAE,EAAEkjD,EAAGo4B,GAAIt7E,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,GAAI,EAAC,CAAC,EAAE,EAAE,CAAC,CACjG,SAAS2pK,IAAI3pK,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE+qG,GAAI/qG,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE+qG,GAAI/qG,EAAE,EAAEyzB,CAAC,CAAC,CACjG,SAASm2I,IAAI5pK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+rH,GAAIn4F,EAAE,0CAA0C,CAAC,EAAE5zB,EAAEgqK,IAAI7pK,CAAC,EAAE8pK,IAAIjqK,CAAC,EAAEgsH,GAAIp4F,CAAC,CAAC,CACjG,SAASs2I,IAAI/pK,EAAE,CAAC,IAAIyzB,EAAKzzB,EAAE,GAAG,MAAM,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEgqK,IAAI,IAAI,IAAO,EAAEhqK,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAEgqK,IAAIv2I,CAAC,EAAE,CACjG,SAASkvE,GAAI3iG,EAAE,CAAC,IAAIyzB,EAAQ,OAANA,EAAEzzB,EAAE,EAAKyzB,GAAG,EAAUzzB,EAAE,EAAEA,EAAE,EAAE4xE,GAAOn+C,GAAGsjF,GAAY/2G,EAAE,EAAEA,EAAE,EAAE4xE,GAAIC,GAAW7xE,CAAC,CAClG,SAASiqK,IAAIjqK,EAAE,CAAO,OAANy7E,KAASz7E,EAAE,EAAE,IAAI47E,GAAK,EAAC02D,GAAG,GAAO,CAACtyI,EAAE,EAAE,IAAI0+F,GAAK,EAACg/D,GAAG,EAAWwM,IAAIlqK,CAAC,EAAU,IAAI,CACjG,SAAS8jE,IAAI9jE,EAAE,CAAQ,GAAP8wB,GAAI9wB,CAAC,EAAKA,EAAE,QAAQ,EAAG,MAAM0lC,EAAI,IAAIqQ,GAAI,wBAAwB,CAAC,EAAEo0H,IAAI,KAAKnqK,CAAC,CAAC,CAC/F,SAASoqK,GAAGpqK,EAAE,CAAC,GAAG,CAACA,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,oDAAoD,CAAC,CAAE,CAC/F,SAAS2yC,GAAIzlF,EAAE,CAAC,OAAGqqK,GAAIrqK,GAAGA,EAAE6xE,GAAY7xE,EAAE,EAAE+C,EAAK,KAAK,KAAK/C,CAAC,EAAE+C,EAAK,KAAK,MAAM/C,CAAC,EAAS2iG,GAAI2nE,IAAGtqK,CAAC,CAAC,CAAC,CAClG,SAASuqK,IAAIvqK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,IAAXK,EAAEG,EAAE,EAAE,GAAE,EAAOR,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEjqD,EAAE,GAAE,EAAGQ,EAAE,EAAE,GAAGH,EAAE4pD,CAAC,EAAE,OAAOzpD,EAAE,EAAE,GAAGH,CAAC,CAAC,CAClG,SAASypC,GAAItpC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAW,GAATK,EAAEG,EAAE,GAAI,EAAIH,GAAG,MAAMG,EAAE,GAAE,EAAI,IAAIypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAG5pD,EAAE4pD,CAAC,EAAE,GAAGh2B,CAAC,CAAG,CACjG,SAASyoD,GAAIl8E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAiB,IAAf5pD,EAAEG,EAAEypD,EAAEw0D,GAAIp+G,CAAC,EAAE,EAAQ4pD,GAAE,CAAK,GAAJ5pD,EAAE4pD,EAAK5pD,GAAG4zB,EAAG,MAAO,GAAKg2B,EAAEw0D,GAAIp+G,CAAC,EAAE,CAAC,CAAC,MAAO,EAAK,CAClG,SAAS2qK,IAAIxqK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAA4B,OAA1BiqD,EAAEzpD,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,EAAEQ,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAK4pD,EAAEjqD,EAAU,GAAMiqD,GAAGjqD,EAAU,EAAS,CAAC,CAClG,SAASirK,GAAGzqK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAE0jD,EAAG0hC,GAAG5kF,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEg2B,EAAEvG,EAAG0hC,GAAG5kF,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAS,CAACL,GAAG,CAACiqD,EAAE,KAAKu4F,GAAGhiJ,EAAER,EAAE,EAAEiqD,EAAE,CAAC,CAAC,CACjG,SAASihH,IAAI1qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAI0S,GAAIn8D,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEoZ,GAAIhjE,EAAEA,EAAE,EAAE4zB,EAAE,EAAE5zB,EAAE,EAAE4zB,EAAE,CAAC,CAAE,CAClG,SAASk3I,IAAI3qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAI5oC,EAAE,EAAEH,CAAC,EAAE+qK,IAAI5qK,EAAEH,CAAC,CAAE,CAClG,SAASgrK,IAAI7qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEA,EAAE,IAAI5kB,EAAIhlC,EAAE4zB,EAAE,GAAGg2B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE5pD,EAAEA,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,QAAQA,GAAG,OAAO4pD,CAAC,CAClG,SAAS6jB,GAAIttE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAIG,EAAE,GAAGyzB,GAAO5zB,EAAEirK,GAAI9qK,EAAEyzB,CAAC,EAAS5zB,GAAG,GAAGG,EAAE,GAAGiwJ,GAAGjwJ,EAAE,EAAE,EAAEH,CAAC,GAAc,IAAK,CAClG,SAASkrK,GAAI/qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,GAAG4pD,EAAE,IAAIh5B,GAAIg5B,GAAG5pD,EAAE,EAAE4zB,EAAE,CAACzzB,EAAE,KAAKA,EAAE,GAAG,IAAIm0G,GAAIn0G,EAAEgrK,GAAGhrK,CAAC,GAAGkmE,GAAIlmE,EAAE,GAAGH,CAAC,EAASA,CAAC,CAClG,SAASorK,GAAIjrK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,GAAG4pD,EAAE,IAAIphB,GAAIohB,GAAG5pD,EAAE,EAAE4zB,EAAE,CAACzzB,EAAE,KAAKA,EAAE,GAAG,IAAIm0G,GAAIn0G,EAAEgrK,GAAGhrK,CAAC,GAAGkmE,GAAIlmE,EAAE,GAAGH,CAAC,EAASA,CAAC,CAClG,SAASqrK,GAAIlrK,EAAEyzB,EAAE,CAAC,OAAOA,GAAG,IAAK,GAAE,MAAO,CAAC,CAACzzB,EAAE,GAAGA,EAAE,EAAE,GAAG,EAAE,IAAK,GAAE,OAAOA,EAAE,GAAG,IAAK,CAAC,OAAOkmI,GAAIlmI,EAAEyzB,CAAC,CAAC,CAClG,SAAS03I,IAAInrK,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,OAAO,IAAIk4D,IAAI,IAAK,GAAE,OAAO,IAAIkzG,IAAI,QAAQ,OAAO,IAAI/7I,GAAI,CAAC,CAClG,SAASg8I,GAAIrrK,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,EAAE,GAAGA,EAAE,GAAE,EAAI,QAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEA,EAAE,GAAE,EAAUyzB,EAAO,MAAMiS,EAAI,IAAIwC,EAAG,CAAE,CAClG,SAASojI,IAAItrK,EAAE,CAAC2mE,IAAG,EAAG,IAAIlzC,EAAE,OAAI24B,IAAIwa,GAAI5mE,CAAC,IAAGyzB,EAAE,IAAI7Y,IAAI6Y,EAAE,EAAEzzB,EAAE69E,GAAIjX,GAAI5mE,EAAEyzB,CAAC,GAASyvB,EAAG25D,GAAIj2C,GAAI5mE,CAAC,EAAE,GAAG,CAAC,CAClG,SAAS6iG,GAAI7iG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAEypD,EAAE,EAAKjqD,EAAE,IAAGA,GAAGqyE,GAAIpoB,EAAEstD,IAAIl3G,EAAE2/D,GAAGhgE,EAAEoyE,EAAG,EAAEn+C,EAAE+rC,GAAGhgE,EAAEK,EAAE+xE,EAAG,EAAStS,GAAG7rC,EAAE5zB,EAAE4pD,CAAC,CAAC,CACnG,SAAS8hH,GAAGvrK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAE,IAAIolD,GAAIjlD,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAE4iH,GAAIx2I,CAAC,EAAEG,EAAE,EAAE,GAAGyzB,CAAC,GAAG,EAAEg2B,EAAE,OAAOA,CAAC,CACnG,SAAS+hH,IAAGxrK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJh2B,EAAE,EAAMg2B,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAE,GAAK5pD,EAAE4pD,EAAE,GAAI,EAACh2B,EAAE,GAAGA,GAAG5zB,GAAG,KAAK,EAAE0kE,GAAG1kE,CAAC,GAAG4zB,EAAE,CAAC,CAACA,EAAE,OAAOA,CAAC,CACnG,SAASisD,IAAI1/E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,KAAK,EAAEG,EAAEH,EAAE,IAAIglC,EAAI4mI,GAAIzrK,EAAEH,EAAE4zB,EAAEzzB,EAAE,EAAE,KAAK,GAAM,KAAK,EAAK,EAAE,KAAK,EAAE,IAAIyrI,GAAI5rI,EAAE,CAAC,CAAC,CACnG,SAASs+D,GAAIn+D,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,GAAG+3B,GAAG,EAAGtI,EAAGljD,EAAE,EAAE,EAAE,GAAE,GAAI,KAAK,EAAEynK,GAAIh0I,EAAE,EAAE,GAAE,EAAGzzB,CAAC,CAAC,CAClG,SAAS0rK,GAAI1rK,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,GAAGixB,GAAI9wB,CAAC,EAAEA,GAAG,KAAK,GAAG8wB,GAAI2C,CAAC,EAAEA,GAAG,KAAK,GAAG3C,GAAIjxB,CAAC,EAAEA,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,KAAK,EAAE,CACnG,SAAS8rK,KAAK,CAAC,KAAK,EAAEzoH,EAAGogD,IAAKx4E,GAAK,EAAC8gJ,GAAG,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE14H,EAAImnC,EAAGipB,GAAIuoE,EAAG,CAAC,CAAC,EAAE,KAAK,EAAE34H,EAAImnC,EAAGipB,GAAIwoE,EAAG,CAAC,CAAC,CAAC,CACjG,SAAStuE,KAAK,CAACA,IAAI94F,EAAI+4F,IAAIpgC,IAAIkgC,GAAG,EAAG2b,EAAG9hE,EAAGgjH,GAAG,CAAC,EAAEhhD,EAAI,GAAG,EAAE,CAACihD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CAClG,SAASvzE,KAAK,CAACA,IAAI5iF,EAAI6iF,IAAIlqB,IAAIgqB,GAAG,EAAG6xB,EAAG9hE,EAAG+mH,IAAG,CAAC,EAAE/kD,EAAI,IAAI,EAAE,CAACglD,IAAIC,IAAIC,IAAIC,IAAIC,GAAIC,IAAIC,IAAIC,IAAIC,GAAG,CAAC,EAAC,CAAE,CACnG,SAASr2E,IAAK,CAACA,GAAI7jF,EAAIipI,GAAI,IAAIx+E,GAAI,KAAK,CAAC,EAAEy+E,GAAI,IAAIz+E,GAAI6nE,GAAI,CAAC,EAAE6W,GAAI,IAAI1+E,GAAIqkE,GAAI,CAAC,EAAEsa,GAAI,IAAI3+E,GAAIskE,GAAI,CAAC,CAAC,CACnG,SAASvkG,IAAK,CAACA,GAAIxqB,EAAIqnK,KAAKv1E,GAAG,EAAGu6B,IAAKi7C,IAAI,IAAInuG,GAAIouG,IAAIF,GAAG,EAAEG,KAAKl1E,GAAG,EAAG25B,IAAKw7C,IAAI,IAAItuG,GAAIuuG,IAAIF,GAAG,CAAC,CAChG,SAAS97E,IAAK,CAACA,GAAI1rF,EAAIy6H,GAAI,IAAIttE,GAAI,YAAY,CAAC,EAAEutE,GAAI,IAAIvtE,GAAI,YAAY,CAAC,EAAEwtE,GAAI,IAAIxtE,GAAI,MAAM,CAAC,CAAC,CACjG,SAASw6G,IAAIrsK,EAAE,CAACA,EAAE,EAAE,IAAI4pC,GAAI5pC,EAAE,EAAE,IAAI4pC,GAAI5pC,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAE,IAAI4pC,GAAI5pC,EAAE,EAAE,IAAImhE,GAAInhE,EAAE,EAAE,IAAI+kC,EAAG,CACnG,SAASunI,GAAItsK,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAI+H,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAI/H,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,CAAC,CACnG,SAASusK,IAAIvsK,EAAEyzB,EAAE,CAAIzzB,EAAE,IAAGwsK,IAAIxsK,EAAEyzB,EAAE,EAAI,EAAE4xB,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,CAAC,EAAE,IAAIgL,IAAIz+B,CAAC,CAAC,GAAEwsK,IAAIxsK,EAAEyzB,EAAE,EAAK,CAAC,CAClG,SAASg5I,IAAIzsK,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOG,IAAIw0F,GAAK,EAACgtC,IAAK,IAAI9oH,IAAI41F,GAAI76E,EAAE,CAAC,GAAG,EAAE,IAAI+mB,GAAI36C,EAAE,MAAM,EAAE,IAAIy6C,IAAIz6C,EAAE,MAAM,CAAC,CACjG,SAASi/I,GAAI9+I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAI4zB,IAAY5zB,EAAE4zB,EAAE,GAAE,EAAG5zB,EAAE,OAAQG,EAAE,EAAmB28D,GAAG38D,EAAE,EAAEH,CAAC,EAAxBG,EAAE,EAAE,IAAI08D,IAAI78D,CAAC,IAAqBG,CAAC,CACnG,SAAS0gJ,IAAI1gJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAAE,IAAIyzB,CAAC,EAAK5zB,IAAI,OAAW,EAAEG,EAAE,GAAOo+E,IAAIp+E,EAAE,EAAEyzB,CAAC,EAAE,EAAEzzB,EAAE,EAAE22G,GAAI32G,EAAE,CAAC,GAASH,CAAC,CACpG,SAAS6sK,IAAI1sK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAY,OAAVK,EAAE4zB,EAAE,EAAEzzB,EAAE,EAAKH,GAAG,GAAG4pD,EAAEzpD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAER,EAAEi0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAASmrC,GAAInV,EAAEjqD,CAAC,GAASK,CAAC,CACnG,SAAS8sK,IAAI3sK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAgC,OAA9B5pD,EAAEG,EAAE,EAAE,EAAE,OAAOypD,EAAEh2B,EAAE,EAAE,EAAE,OAAU5zB,EAAE4pD,EAAU,GAAM5pD,GAAG4pD,EAAU,EAAS,CAAC,CACpG,SAASmjH,IAAI5sK,EAAE,CAAC,OAAGA,EAAE,EAAE,EAAE,QAAQ,GAAKkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAUkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAASknG,GAAIlnG,CAAC,CAAC,CACnG,SAAS6sK,IAAG7sK,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,CAAK,GAAJyzB,EAAEzzB,EAAKyzB,EAAE,GAAE,EAAI,MAAMiS,EAAI,IAAIwC,EAAG,EAAE,OAAOzU,EAAE,GAAGA,EAAE,GAAE,EAAG,CAAC,CAAC,CAAC,OAAO69C,IAAGtxE,EAAE,GAAI,CAAA,CAAC,CACpG,SAASiyJ,IAAIjyJ,EAAE,CAAC,IAAIyzB,EAAE,OAAA84B,GAAIvsD,EAAE,CAAC,EAAE,IAAIA,EAAE0iG,GAAI1iG,CAAC,GAAUyzB,EAAEw5E,GAAIuE,GAAIxxG,EAAE,EAAE,CAAC,EAAE,IAAIyzB,GAAG,EAAEq5I,GAAIr5I,CAAC,EAAEq5I,GAAI7/D,GAAIjtG,CAAC,CAAC,EAAE,GAAG,CACpG,SAASgpK,GAAIhpK,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAAC6iD,GAAG,EAAG,EAAE,EAAS/sK,EAAE,IAAI2qF,GAAG,EAAGi0D,MAAOnrH,IAAIqrE,EAAK,EAACmE,KAAMxvE,GAAG2vE,GAAI,CACnG,SAAS4pE,IAAIhtK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEA,EAAE0jD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGyxH,GAAK,EAAC,EAAE,EAAKv/I,IAAGiqD,EAAE,IAAI9c,GAAIsgI,GAAIxjH,EAAE,EAAEjqD,CAAC,EAAE4wI,GAAI3mF,EAAE5pD,CAAC,EAAE4kD,GAAGhxB,EAAEg2B,CAAC,EAAE,CACpG,SAASyjH,GAAIltK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEA,EAAE9O,GAAIj+G,CAAC,EAAEypD,EAAEsjE,EAAE,EAAEvtH,EAAEutH,EAAE,EAAE1tH,EAAEW,EAAE,EAAEyzB,IAAIp0B,EAAE,EAAEA,EAAE,EAAEoqD,EAAE,EAAEjqD,EAAE,GAAGK,IAAIR,EAAE,EAAEA,EAAE,EAAEoqD,EAAE,EAAEjqD,EAAE,EAAE,CACpG,SAAS2tK,IAAIntK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEG,EAAE,EAAEypD,EAAEh2B,EAAE,EAAS5zB,GAAG4pD,EAAE5pD,EAAE,EAAE4pD,EAAE,EAAEzpD,EAAE,GAAGyzB,EAAE,EAAE,EAAE5zB,IAAIi/F,IAAM+5C,IAAK74I,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,EAAEzzB,EAAE,CAAC,CACnG,SAASulH,IAAIvlH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAS,IAAPutK,IAAIptK,CAAC,EAAMH,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAI4zB,EAAE,GAAG45I,IAAI55I,CAAC,CAAE,CACpG,SAAS65I,GAAIttK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACqmE,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAE4pD,CAAC,EAAEoc,GAAG7lE,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,EAAEg2B,CAAC,EAAEoc,GAAG7lE,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAEL,CAAC,EAAEqmE,GAAG7lE,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,EAAEj0B,CAAC,CAAC,CACnG,SAAS+tK,IAAIvtK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACvG,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAE4a,GAAI5a,EAAE,EAAE,IAAIy2C,GAAIlgG,EAAEyzB,EAAEg2B,CAAC,CAAC,CAAC,CACpG,SAAS+jH,IAAIxtK,EAAEyzB,EAAE,CAACzzB,EAAE,IAAI+7F,KAAMz6B,KAAMthE,EAAE,GAAGyhE,GAAIve,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGyvB,EAAGzvB,EAAE,EAAE,EAAE,CAAC,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGyvB,EAAGzvB,EAAE,EAAE,EAAE,CAAC,CAAC,CACpG,SAASg6I,GAAIztK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAG5pD,GAAG,GAAU,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAG0tK,GAAI1tK,EAAE,EAAEyzB,EAAEg2B,CAAC,GAASkkH,GAAI3tK,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACpG,SAASmkH,GAAI5tK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,GAAG5pD,EAAE,IAAI6jB,GAAI7jB,GAAGk6H,GAAItwE,EAAEh2B,CAAC,EAAEyyC,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImuE,GAAI0/F,GAAG7tK,EAAE,CAAC,GAAGA,EAAE,GAAGypD,CAAC,EAASA,CAAC,CACpG,SAASqkH,IAAI9tK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAA1tH,EAAE,KAAK0tH,EAAEt5F,EAAEj0B,EAAE+sI,GAAIxf,EAAEghD,EAAG,EAAEtkH,EAAE,IAAIoN,IAAI72D,EAAEH,CAAC,EAAER,GAAG2uK,IAAIvkH,EAAE,EAAEA,EAAE,EAAEjqD,CAAC,EAAEA,GAAUH,CAAC,CACpG,SAAS4uK,GAAIjuK,EAAE,CAAC,IAAIyzB,EAAE,OAAG,CAACzzB,EAAE,GAAI,EAAAA,EAAE,GAAG,IAAOA,EAAE,EAAE,GAAI,KAAEyzB,EAAEmjH,GAAI52I,CAAC,EAAEurE,EAAG93C,EAAE,GAAG,IAAIzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,IAAUzzB,EAAE,CAAC,CACpG,SAASkuK,GAAGluK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAS,IAAP34B,GAAI2C,CAAC,EAAMg2B,EAAEh2B,EAAE,GAAE,EAAGg2B,EAAE,GAAE,GAAc,GAAT5pD,EAAE4pD,EAAE,GAAE,EAAM,CAACzpD,EAAE,GAAGH,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,CACrG,SAASsuK,IAAGnuK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAK,EAAEG,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,GAAG5zB,GAAG,IAAIL,EAAEQ,EAAE,EAAEyzB,EAAE,GAAGg2B,GAAG,IAAW6V,GAAGz/D,EAAEi3G,GAAIrtD,EAAEqtD,GAAIt3G,EAAEu3G,EAAG,CAAC,CACrG,SAASq3D,IAAGpuK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAK,EAAEG,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,GAAG5zB,GAAG,IAAIL,EAAEQ,EAAE,EAAEyzB,EAAE,GAAGg2B,GAAG,IAAW6V,GAAGz/D,EAAEi3G,GAAIrtD,EAAEqtD,GAAIt3G,EAAEu3G,EAAG,CAAC,CACrG,SAASs3D,GAAIruK,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,KAAKyzB,GAAGs2E,MAAMC,KAAKhqG,CAAC,EAAE,CAACyzB,IAAIA,EAAEu2E,IAAIhqG,CAAC,EAAE,IAAIm3B,GAAIn3B,CAAC,GAAUyzB,GAAS,IAAI0D,GAAIn3B,CAAC,CAAC,CACrG,SAASsuK,GAAItuK,EAAE,CAAC,IAAIyzB,EAAE,OAAG83C,EAAGvrE,EAAE,EAAE,EAAUA,GAAEyzB,EAAEzzB,GAAGA,EAAE,iBAAqByzB,IAAGA,EAAE,IAAI86I,IAAGvuK,CAAC,EAAEmnC,IAAG1T,CAAC,GAASA,EAAC,CACrG,SAAS+6I,GAAIxuK,EAAE,CAAC,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAOkjD,EAAGljD,EAAE,GAAG,EAAO,GAAIA,EAAgC,OAAO,KAApC,MAAM0lC,EAAI,IAAIsN,GAAIy7H,GAAG,CAAC,CAAmB,CACpG,SAAS/4C,IAAI11H,EAAEyzB,EAAE,CAAC,GAAGA,GAAG,KAAM,MAAO,GAAM,KAAMzzB,EAAE,GAAGA,EAAE,GAAG,GAAGkkD,GAAGzwB,EAAEi7I,GAAI1uK,CAAC,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACrG,SAAS2pJ,GAAI3pJ,EAAE,CAAC,OAAGA,EAAE,EAAE,KAAa,GAAQA,EAAE,GAAGA,EAAE,EAAU,IAAMA,EAAE,EAAE,IAAI0rI,GAAI1rI,EAAE,EAAE,CAAC,EAASA,EAAE,EAAE,GAAE,EAAE,CACrG,SAAS2nH,GAAI3nH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAsB,OAApB5pD,EAAE4zB,EAAE,GAAE,EAAGg2B,EAAE5pD,EAAE,OAAU4pD,GAAG,EAAU,IAAM27B,GAAIplF,EAAE,EAAEA,EAAE,EAAE,OAAOH,CAAC,EAAS,GAAI,CACrG,SAAS8uK,IAAI3uK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEi0B,EAAE,GAAE,EAAG,GAAI,EAACj0B,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEQ,EAAE,GAAGypD,EAAE,GAAE,EAAGA,EAAE,GAAI,EAAC5pD,CAAC,EAAE,OAAOG,CAAC,CACrG,SAAS4uK,IAAI5uK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEq5B,EAAIjjF,GAAGqqH,EAAK,EAACgrC,IAAKzhI,CAAC,CAAE,CACrG,SAASo7I,IAAI7uK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEqjE,GAAIpZ,EAAEA,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,CAAC,CAAE,CACrG,SAASivK,IAAG9uK,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAG,MAAM0lC,EAAI,IAAImN,GAAI+7G,GAAG,4BAA4B11C,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC1wC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACrG,SAASs7I,IAAI/uK,EAAEyzB,EAAE,CAAC,MAAG,CAACzzB,GAAG,CAACyzB,GAAGzzB,GAAGyzB,EAAU,GAAau7I,IAAIhvK,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAGu7I,IAAIv7I,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CACrG,SAASivK,KAAK,CAAO,OAANx1B,GAAK,EAAI9zE,GAAY,IAAI6zE,GAAI,IAAI,EAAS01B,IAAIpG,IAAK,EAAC,gCAAgC,CAAC,CACpG,SAASqG,IAAInvK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE+0E,GAAGnhD,EAAE,EAAE,GAAI,CAAA,EAAE4xB,GAAIk1E,GAAI,IAAI3vB,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,CAAC,CAAC,EAAEzzB,EAAE,CAAC,EAAE,IAAIm1D,IAAIn1D,EAAEH,CAAC,CAAC,EAASA,CAAC,CACrG,SAASuvK,IAAIpvK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAG4zB,EAAE,IAAI/P,GAAI+P,GAAGsmG,GAAIl6H,EAAE,GAAG,EAAEqmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImuE,GAAI0/F,GAAG7tK,EAAE,EAAE,GAAGA,EAAE,GAAGH,CAAC,EAASA,CAAC,CACrG,SAASwvK,GAAIrvK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAM,IAAJi0B,EAAE,EAAM5zB,EAAE,EAAEL,EAAEQ,EAAE,GAAI,EAACH,EAAEL,EAAE,EAAEK,EAAG4pD,EAAEzpD,EAAE,GAAGH,CAAC,EAAE4zB,EAAE,GAAGA,GAAGg2B,GAAG,KAAK,EAAE8a,GAAG9a,CAAC,GAAG,OAAOh2B,CAAC,CACrG,SAAS67I,IAAGtvK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,OAAAu7G,GAAGtnF,EAAEzzB,EAAE,EAAE,GAAI,EAAC,GAAE,CAAE,EAAE+6G,GAAGl7G,EAAEG,EAAE,EAAE,GAAE,EAAG,IAAI,EAAER,EAAEQ,EAAE,EAAEyzB,CAAC,EAAE5zB,CAAC,EAAEgmE,GAAG7lE,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAE4pD,CAAC,EAASjqD,CAAC,CACtG,SAAS05G,EAAGl5G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAAA,EAAE,GAAGQ,EAAER,EAAE,GAAGi0B,EAAEj0B,EAAE,GAAGiF,GAAIjF,EAAE,iBAAiBK,EAAEL,EAAE,uBAAuBiqD,EAASjqD,CAAC,CACtG,SAAS+vK,IAAIvvK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAA4zG,GAAG,EAAUrwG,EAAK,KAAK,IAAIysK,IAAIxvK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEgwK,IAAI3vK,EAAE4pD,EAAEzpD,EAAEyzB,EAAE2jD,GAAI,IAAIhiB,GAAI51D,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrG,SAASwsF,IAAK,CAACA,GAAItnF,EAAI2qI,GAAI,IAAIz/E,GAAI49F,GAAI,CAAC,EAAEle,GAAI,IAAI1/E,GAAI6/G,IAAI,CAAC,EAAElgC,GAAI,IAAI3/E,GAAI8/G,IAAI,CAAC,EAAElgC,GAAI,IAAI5/E,GAAI,OAAO,CAAC,CAAC,CACrG,SAASw8B,IAAK,CAACA,GAAI1nF,EAAIkrI,GAAI,IAAI9+E,GAAIu8E,GAAI,CAAC,EAAEwC,GAAI,IAAI/+E,GAAI0iE,GAAI,CAAC,EAAEsc,GAAI,IAAIh/E,GAAI2iE,GAAI,CAAC,EAAEsc,GAAI,IAAIj/E,GAAI,MAAM,CAAC,CAAC,CACpG,SAASo5B,IAAK,CAACA,GAAIxlF,EAAIm7D,GAAI,IAAItQ,GAAI,KAAK,CAAC,EAAEuQ,GAAI,IAAIvQ,GAAI,KAAK,CAAC,EAAEyQ,GAAI,IAAIzQ,GAAI,KAAK,CAAC,EAAE2/E,GAAI,IAAI3/E,GAAI,KAAK,CAAC,CAAC,CACtG,SAAS6kC,IAAK,CAACA,GAAI1vF,EAAI67H,GAAI,IAAI1tE,GAAI,MAAM,CAAC,EAAE2tE,GAAI,IAAI3tE,GAAI,cAAc,CAAC,EAAE4tE,GAAI,IAAI5tE,GAAI,aAAa,CAAC,CAAC,CACpG,SAASwnC,IAAK,CAACA,GAAI31F,EAAIgtH,GAAI,IAAI/8D,GAAI,wBAAwB,CAAC,EAAEg9D,IAAI,IAAIh9D,GAAI,wBAAwB,CAAC,CAAC,CACpG,SAASksD,IAAK,CAACA,GAAIn8G,EAA+CirK,IAAI,IAAIxxJ,IAAIyxJ,IAAI,IAAI3xJ,GAAe,CACrG,SAAS4xJ,GAAI7vK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAImZ,GAAQ6c,EAAE6vG,GAAIt5J,EAAE,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAEo8C,GAAIpyE,EAAE5zB,EAAE,CAAC,EAAE,OAAO4zB,CAAC,CACtG,SAASq8I,GAAI9vK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAIqlC,EAAQ4kB,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAEh2B,EAAEs2G,GAAIlqI,CAAC,EAAE8nH,GAAInoH,EAAEi0B,CAAC,EAAE,OAAOj0B,CAAC,CACtG,SAASuwK,IAAI/vK,EAAE,CAAC,IAAIyzB,EAAEu8I,GAAIhwK,EAAE,EAAI,EAAEyzB,EAAEw8I,GAAIv5F,GAAI12E,GAAGstB,GAAK,EAAC4iJ,GAAG,IAAKz8I,GAAGyvB,EAAG0lE,EAAI5oH,EAAEkwK,EAAG,EAAE,EAAE,EAAE,GAAGptF,EAAI9iF,EAAEkwK,GAAI3iC,EAAI95G,CAAC,CAAC,CAAC,CACtG,SAAS08I,IAAInwK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEzkB,GAAIhlC,EAAE,CAAC,EAAEqkE,GAAIxkE,EAAE,EAAE,IAAI6gC,IAAI1gC,CAAC,CAAC,EAAEypD,EAAE,IAAI8e,GAAIrlB,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE28I,IAAIpwK,EAAEypD,EAAEh2B,CAAC,EAAE5zB,EAAE,EAAE4pD,CAAC,CACtG,SAAS4mH,IAAIrwK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAmB,OAAjB5pD,EAAEG,EAAE,EAAEypD,EAAEh2B,EAAE,EAAEzzB,EAAE,CAAC,EAAKypD,EAAE5pD,EAAE,EAAE,EAAE,OAAO,EAAUqjD,EAAGo4B,GAAIz7E,EAAE,EAAE4pD,EAAE,CAAC,EAAE,EAAE,EAAS,IAAI,CACtG,SAASyhB,IAAGlrE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAoB,IAAlB2gE,GAAG32F,EAAE,WAAW,EAAMg2B,EAAE,EAAEzpD,EAAE,KAAKypD,IAAc,GAAT5pD,EAAEG,EAAE,GAAI,EAAIyzB,EAAE,GAAG5zB,CAAC,EAAG,OAAO4pD,EAAG,MAAO,EAAE,CACvG,SAAS6mH,GAAItwK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAM,GAAJA,EAAE,EAAKzpD,EAAE,IAAIA,GAAGyzB,EAAe,IAAZA,EAAEA,EAAE,GAAGA,EAAE,GAAO5zB,EAAEG,EAAEH,GAAG4zB,EAAE5zB,IAAK4pD,EAAEo7E,GAAIp7E,EAAE6nD,GAAI,EAAEzxG,CAAC,CAAC,EAAG,OAAO4pD,CAAC,CACtG,SAAS8mH,GAAIvwK,EAAE,CAACqqE,GAAG,EAAG,IAAI52C,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAEG,EAAE,GAAE,EAAGH,EAAE,GAAE,GAAK4zB,EAAE5zB,EAAE,GAAE,EAAG4pD,EAAEA,GAAGh2B,GAAG,KAAK8wC,GAAG9wC,CAAC,EAAE,GAAGg2B,EAAEA,EAAE,EAAE,OAAOA,CAAC,CACvG,SAAS+mH,GAAIxwK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,GAAGq8C,GAAK,EAACzoB,EAAE,IAAInS,GAAImS,GAAKzzB,GAAGkmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAGH,CAAC,EAASA,CAAC,CACtG,SAAS6wK,IAAG1wK,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAI5vB,GAAG4vB,EAAE,EAAEzzB,EAAEyzB,EAAE,EAAEk9I,IAAG3wK,CAAC,EAAEyzB,EAAE,EAAEwwC,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,EAAE/2C,EAAE,EAAE,CAAC,EAAEiwI,IAAG1jK,CAAC,EAAEyzB,EAAE,EAAE,CAAC,EAAEiwI,IAAG1jK,CAAC,EAASyzB,CAAC,CACvG,SAASo9I,GAAI7wK,EAAEyzB,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAI,EAAC,MAAO,CAAC8wK,GAAI9wK,EAAEyzB,CAAC,CAAC,CACtG,SAASs9I,GAAI/wK,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAEG,EAAE,EAAEyzB,EAAE,MAAM,IAAK,GAAEzzB,EAAE,EAAEyzB,EAAE,MAAM,IAAK,GAAEzzB,EAAE,EAAEyzB,EAAE,MAAM,IAAK,GAAEzzB,EAAE,EAAEyzB,CAAE,CAAC,CACvG,SAASu9I,IAAIhxK,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO2yI,GAAI,IAAK,GAAE,OAAOD,GAAI,IAAK,GAAE,OAAOE,GAAI,QAAQ,OAAOH,EAAI,CAAC,CACtG,SAASw+B,IAAIjxK,EAAE,CAAC,OAAOkjD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC4jJ,GAAK,EAAC,GAAG,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,MAAO,GAAK,QAAQ,MAAO,EAAM,CAAC,CACrG,SAASjhF,KAAK,CAACA,IAAIvrF,EAAIwrF,IAAI7yB,IAAI2yB,GAAK,EAACkpB,EAAG9hE,EAAGouH,GAAG,CAAC,EAAEpsD,EAAI,IAAI,EAAE,CAACqsD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACvG,SAASvnE,KAAK,CAACA,IAAIj6F,EAAIk6F,IAAIvhC,IAAIqhC,GAAG,EAAGwa,EAAG9hE,EAAGomH,IAAG,CAAC,EAAEpkD,EAAI,IAAI,EAAE,CAACqkD,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAC,CAAE,CACnG,SAASrwI,KAAK,CAACA,IAAIlpB,EAAIysK,IAAIzoE,GAAI0iD,GAAIA,GAAIrhG,GAAI2+C,GAAI,IAAItgD,IAAK4tC,GAAK,EAAC07C,KAAMt7C,KAAM6xD,GAAK,EAACtW,EAAG,EAAEyW,EAAG,EAAED,EAAG,EAAE9uB,GAAIgvB,EAAG,CAAC,CACvG,SAASz5D,IAAK,CAACA,GAAIlqF,EAAI05H,GAAI,IAAI7sE,GAAIi8F,GAAI,CAAC,EAAEnvB,GAAI,IAAI9sE,GAAI,gBAAgB,CAAC,EAAE+sE,GAAI,IAAI/sE,GAAI,gBAAgB,CAAC,CAAC,CACvG,SAASigG,IAAI,CAACA,GAAG9sJ,EAAI+sJ,GAAG,CAAC,QAAU/sG,IAAG,OAAS5S,IAAG,OAASC,IAAG,OAASq/H,IAAG,SAAWA,IAAG,UAAYprI,GAAE,CAAC,CACvG,SAAS8e,IAAI9kD,EAAEyzB,EAAE,CAACswE,GAAI/jG,GAAG,EAAE,2BAA2B,EAAE+jG,GAAItwE,GAAG,EAAE,0BAA0B,EAAEuR,GAAI,IAAI,CAAC,CACtG,SAASqsI,GAAIrxK,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAGG,GAAG,IAAW,GAAaA,EAAE,GAAG26D,GAAIkgE,GAAIvpB,GAAI,EAAEtxG,CAAC,EAAEH,CAAC,EAAE,CAAC,EAAE86D,GAAIkgE,GAAIvpB,GAAI,EAAEtxG,EAAE,EAAE,EAAEyzB,CAAC,EAAE,CAAC,CAAC,CACvG,SAAS69I,IAAItxK,EAAEyzB,EAAE,CAAC,MAAG,CAACzzB,GAAG,CAACyzB,GAAGzzB,GAAGyzB,EAAU,GAAas/H,GAAG/yJ,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,GAAGs/H,GAAGt/H,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,CAAC,CACvG,SAASuxK,IAAIvxK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAA5pD,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAS,IAAIohE,GAAIvhE,EAAE,EAAE4zB,EAAE,EAAE5zB,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,GAAGh2B,EAAE,EAAEA,EAAE,GAAGg2B,EAAE,GAAGh2B,EAAE,EAAEA,EAAE,EAAE,CAAC,CACvG,SAASq5E,IAAI9sG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAEG,EAAE,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE+nH,IAAIxxK,EAAEyzB,GAAGqrE,EAAK,EAACmxC,GAAG,EAAGuhC,IAAIxxK,EAAEyzB,EAAEolH,EAAG,CAAE,CACvG,SAAS44B,IAAGzxK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIi0B,GAAGzzB,EAAE,GAAG,OAAOA,EAAE,GAAGonC,GAAE,EAAG5nC,EAAE6nC,GAAG,GAAGrnC,CAAC,EAAE0xK,IAAGlyK,CAAC,IAAIQ,EAAE,GAAGH,EAAE,EAAE4pD,EAAEh2B,EAAE,OAAO5zB,EAAE4pD,EAAE,EAAE5pD,EAAE,CAAC,CACxG,SAASguJ,GAAG7tJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAAh2B,EAAE,CAACzzB,EAAE,EAAE,EAAE82G,GAAIj3G,EAAE,CAACG,EAAE,GAAGyzB,GAAG,EAAE,EAAE,GAAGqjF,GAAIrtD,EAAE,CAACzpD,EAAE,GAAGyzB,GAAG,GAAG5zB,GAAG,EAAE,EAAE,GAAGk3G,GAAWz3C,GAAG7rC,EAAE5zB,EAAE4pD,CAAC,CAAC,CACxG,SAASkoH,IAAI3xK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEg2B,EAAEvG,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAASm+I,IAAI/xK,EAAE4pD,CAAC,CAAC,CACvG,SAASooH,GAAI7xK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAW,GAATA,EAAEzpD,EAAE,GAAI,EAAIyzB,EAAEg2B,EAAE,MAAM/jB,EAAI,IAAIs4B,GAAIvqC,EAAEg2B,CAAC,CAAC,EAAE,OAAAzpD,EAAE,GAAI,IAAGH,EAAEo6G,IAAIj6G,EAAEH,CAAC,GAAUG,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CACvG,SAASiyK,GAAI9xK,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,GAAG,MAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy7G,GAAIxgJ,EAAE,EAAEyzB,CAAC,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy0B,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,GAAGG,CAAC,CACxG,SAAS8iF,EAAI9iF,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,GAAG,MAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy7G,GAAIxgJ,EAAE,EAAEyzB,CAAC,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy0B,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,GAAUG,CAAC,CACxG,SAAS+xK,IAAI/xK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAE,IAAI+gJ,GAAI9B,GAAIj/I,EAAEG,CAAC,EAAE8iF,EAAIjjF,GAAGqiK,GAAK,EAACC,IAAKniK,CAAC,EAAEyzB,EAAE,IAAIsR,GAAIitI,IAAIhyK,EAAEH,EAAE4zB,CAAC,EAAEw+I,IAAIjyK,EAAEH,EAAE4zB,CAAC,EAAS5zB,CAAC,CACxG,SAASqyK,IAAIlyK,EAAE,CAACozG,GAAK,EAAC,IAAI3/E,EAAE5zB,EAAE4pD,EAA2B,IAAzB5pD,EAAEokE,EAAGm3D,GAAG5wD,EAAI,EAAE,EAAE,EAAE,CAAC,EAAE/gB,EAAE,EAAMh2B,EAAE,EAAEA,EAAE,EAAEA,IAAKg2B,GAAG,GAAI5pD,EAAE4zB,CAAC,EAAE0+I,IAAI1oH,EAAEzpD,CAAC,EAAE,OAAOH,CAAC,CACvG,SAAS+3I,IAAI53I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA0B,IAAxBQ,EAAE,GAAM4pD,EAAEzpD,EAAE,EAAEyzB,CAAC,EAAE,OAAWp0B,EAAE,EAAEA,EAAEoqD,EAAE,EAAEpqD,IAAKG,EAAEH,EAAE,EAAEQ,EAAEA,EAAEuyK,IAAIpyK,EAAEyzB,EAAEp0B,EAAEG,CAAC,EAAE,OAAOK,CAAC,CACxG,SAASwyK,GAAIryK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE,IAAIA,EAAEltH,EAAEktH,GAAGvtH,EAAEutH,IAAK,IAAI1tH,EAAEo0B,EAAEp0B,GAAGoqD,EAAEpqD,IAAKizK,GAAItyK,EAAEX,EAAE0tH,CAAC,GAAGwlD,GAAIvyK,EAAEX,EAAE0tH,EAAE,GAAK,EAAK,CAAG,CACvG,SAASylD,IAAIxyK,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAEi+D,GAAI,KAAK,MAAM/a,EAAGwpG,EAAItrG,GAAKk7D,GAAG,EAAGC,IAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE9oF,EAAE,GAAGA,EAAE,CAAC,EAAE,KAAK,GAAG/C,GAAK,EAAC2iG,GAAI,CACxG,SAASo/C,GAAGzyK,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAE,EAAG,GAAI,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAE,EAAG,IAAI,CACtG,SAAS2mF,IAAK,CAAO,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,CACxG,SAASs4D,GAAG1yK,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAE,IAAIkD,EAAK,KAAK,KAAK,EAAE,YAAY/C,EAAEm2I,GAAI1iH,EAAE5zB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE6rE,GAAG,KAAK,CAAC,CAAC,CACzG,SAAS8mB,IAAK,CAACA,GAAI9tF,EAAIm7H,GAAI,IAAIvtE,GAAIk7F,GAAI,CAAC,EAAE1tB,IAAI,IAAIxtE,GAAI,kBAAkB,CAAC,EAAEytE,GAAI,IAAIztE,GAAI,eAAe,CAAC,CAAC,CACxG,SAASq+G,IAAG3wK,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,GAAG,EAAU,WAAaA,EAAE,GAAGA,EAAE,CAACA,EAAEyzB,EAAE,YAAgBA,EAAE,WAAkBA,EAAE69H,IAAGtxJ,CAAC,EAAC,CACzG,SAASi7H,GAAIj7H,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,EAAG,OAAO+zJ,GAAS,GAAG/zJ,GAAG,EAAG,MAAO,GAAO,IAAIyzB,EAAE6wB,GAAK,EAAA7wB,EAAEzzB,GAAMyzB,IAAI,EAAE,CAAC,OAAOA,CAAE,CACxG,SAASk/I,IAAG3yK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAa,OAAXA,EAAEitK,GAAI9sK,EAAE,CAAC,EAAKH,GAAG,IAAI4zB,EAAEq5I,GAAI9sK,EAAE,CAAC,EAASyzB,GAAG,GAAGq5I,GAAI9sK,EAAE,CAAC,EAAE,GAAGyzB,EAAE,GAAG,IAAe5zB,EAAE,EAAG,CACzG,SAAS01G,GAAIv1G,EAAE,CAAC,IAAIyzB,EAAa,OAAXA,EAAEzzB,EAAE,EAAEA,EAAE,CAAC,EAAKyzB,GAAG,KAAa,MAAKoyC,GAAG7lE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,EAASyzB,EAAC,CACzG,SAASm/I,IAAI5yK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAASyzB,GAAG5zB,CAAC,CACxG,SAASw4G,GAAIr4G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIs6F,GAAItwH,EAAE5zB,CAAC,EAAEL,EAAE,IAAI+F,GAAIvF,EAAE,EAAE6yK,IAAI7yK,EAAEA,EAAE,EAAEypD,EAAEjqD,CAAC,EAAEA,EAAE,GAAG,EAAEQ,EAAE,EAAEA,EAAE,EAAE,EAAE,GAAaR,EAAE,CAAC,CACzG,SAASgyK,IAAIxxK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiB,IAAfA,EAAE+lD,GAAIr/I,EAAE5zB,CAAC,EAAER,EAAE,EAAMG,EAAEutH,EAAE,GAAI,EAACvtH,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEg6D,GAAIx5D,EAAE,EAAEypD,EAAE8jF,EAAIluI,GAAG,CAAC,CAAE,CACzG,SAAS0zK,GAAI/yK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,EAAE,CAACA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEu/I,GAAIhzK,CAAC,CAAC,CACzG,SAASizK,GAAIjzK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,EAAE,CAACA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEy/I,GAAIlzK,CAAC,CAAC,CACzG,SAASmzK,GAAInzK,EAAE,CAAC,IAAIyzB,EAAE,OAAG,CAACzzB,EAAE,GAAI,EAAAA,EAAE,GAAG,IAAQA,EAAE,EAAE,GAAG,MAAQyzB,EAAEmjH,GAAI52I,CAAC,EAAEurE,EAAG93C,EAAE,EAAE,IAAIzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,IAAUzzB,EAAE,CAAC,CACxG,SAASozK,GAAGpzK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEh2B,EAAE,CAACzzB,EAAE,EAAE,EAAE82G,GAAIj3G,EAAE,CAACG,EAAE,GAAGyzB,GAAG,EAAE,EAAE,GAAGqjF,GAAIrtD,EAAE,CAACzpD,EAAE,GAAGyzB,GAAG,GAAG5zB,GAAG,EAAE,EAAE,GAAGk3G,GAAI/2G,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,CAAC,CACzG,SAAS0xE,GAAIn7H,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAY,IAAVo0B,EAAE,IAAI2nB,GAAQqO,EAAEzpD,EAAER,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEi0B,EAAE,GAAG5zB,EAAE,EAAE4zB,EAAE,GAAG5zB,EAAE,EAAE,OAAO4zB,CAAC,CACzG,SAASo6E,GAAI7tG,EAAEyzB,EAAE,CAAC42C,GAAK,EAAC,IAAIxqE,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAU,IAARA,EAAE,GAAUtjE,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEutH,EAAEA,EAAE/sH,EAAE,GAAGH,CAAC,EAAE,OAAOktH,CAAC,CACzG,SAASsmD,GAAIrzK,EAAE,CAACozG,GAAK,EAAC,IAAI3/E,EAAE5zB,EAA4B,IAA1BA,EAAE,uBAA4B4zB,EAAE,EAAEA,EAAEzzB,EAAE,OAAOyzB,IAAKzzB,EAAEyzB,CAAC,EAAE5zB,IAAIA,EAAEG,EAAEyzB,CAAC,GAAG,OAAO5zB,CAAC,CACzG,SAASi3H,IAAI92H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAE,IAAI5kB,EAAIg9H,GAAI7hK,EAAEyzB,EAAEg2B,GAAGq1C,EAAK,EAACsE,IAAK,GAAK,EAAK,EAAEy+D,GAAI7hK,EAAEH,EAAE4pD,EAAEw5C,GAAI,GAAM,EAAK,EAASx5C,CAAC,CACzG,SAAS6pH,GAAItzK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAA1tH,EAAE,KAAK0tH,EAAEt5F,EAAEj0B,EAAE+sI,GAAIxf,EAAE,QAAQ,EAAEtjE,EAAE,IAAI8N,IAAIv3D,EAAEH,CAAC,EAAER,GAAGk0K,IAAI9pH,EAAE,EAAEA,EAAE,EAAEjqD,CAAC,EAAEA,GAAUH,CAAC,CACzG,SAASm0K,IAAIxzK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAiB,OAAfA,EAAEi0K,GAAIzzK,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAK,CAACjqD,IAAGA,EAAEk0K,IAAI1zK,EAAEH,EAAE4pD,CAAC,EAAOjqD,GAAG,CAACm0K,GAAI3zK,EAAEyzB,EAAEj0B,CAAC,GAAU,KAAaA,CAAC,CACzG,SAASo0K,IAAI5zK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAiB,OAAfA,EAAEq0K,GAAI7zK,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAK,CAACjqD,IAAGA,EAAEs0K,GAAI9zK,EAAEH,EAAE4pD,CAAC,EAAOjqD,GAAG,CAACm0K,GAAI3zK,EAAEyzB,EAAEj0B,CAAC,GAAU,KAAaA,CAAC,CACzG,SAASu0K,IAAG/zK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAE,OAAOH,IAAK,GAAG,CAACqjD,EAAGynD,IAAI3qG,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAE,GAAG4zB,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,CAC1G,SAASugJ,IAAGh0K,EAAEyzB,EAAE5zB,EAAE,CAAO,GAAN21C,GAAG/hB,CAAC,EAAK5zB,EAAE,GAAI,EAAoB,IAAlB47D,GAAIhoC,EAAEknF,IAAG96G,EAAE,GAAI,CAAA,CAAC,EAAQA,EAAE,MAAM47D,GAAIhoC,EAAEzzB,EAAE,CAAC,EAAEy7D,GAAIhoC,EAAEknF,IAAG96G,EAAE,GAAI,CAAA,CAAC,EAAG,OAAO4zB,CAAC,CAC1G,SAASwgJ,GAAIj0K,EAAE,CAACqqE,GAAG,EAAG,IAAI52C,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAEG,EAAE,GAAI,EAACH,EAAE,GAAI,GAAG4zB,EAAE5zB,EAAE,KAAK4pD,EAAE,GAAGA,GAAGh2B,GAAG,KAAK8wC,GAAG9wC,CAAC,EAAE,GAAGg2B,EAAEA,EAAE,EAAE,OAAOA,CAAC,CAC1G,SAASyqH,IAAGl0K,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE,OAAAA,EAAEoyG,GAAGzxG,EAAEyzB,CAAC,EAAE5zB,GAAGuzK,GAAG/zK,CAAC,EAAKG,IAAGQ,EAAEm0K,IAAGn0K,EAAEyzB,CAAC,EAAEg2B,EAAG2qH,GAAGvmB,GAAG7tJ,CAAC,EAAIo0K,GAAG90G,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,GAAUX,CAAC,CAC1G,SAASg1K,IAAI5gJ,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,GAAG,CAAC5pD,EAAE,GAAI,CAAA,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAGypD,EAAEzpD,EAAEyzB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEg2B,MAAO,OAAM/jB,EAAI1lC,CAAC,CAAC,CAAC,CAC1G,SAASs0K,IAAIt0K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAG+rE,EAAG93C,EAAE,GAAG,GAAK5zB,GAAG4pD,EAAEvG,EAAGzvB,EAAE,GAAG,EAAEj0B,EAAEK,EAASG,EAAE,EAAEypD,EAAE,CAAC,EAAEjqD,EAAE,CAAC,EAAEQ,EAAE,EAAER,EAAE,CAAC,EAAEiqD,EAAE,CAAC,GAAS,CAAC,CAC1G,SAAS8qH,GAAIv0K,EAAEyzB,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAK,GAAE,MAAO,CAAC,CAACzzB,EAAE,GAAGA,EAAE,EAAE,GAAG,EAAE,IAAK,GAAE,MAAO,CAAC,CAACA,EAAE,GAAGA,EAAE,EAAE,GAAG,CAAE,CAAC,OAAOw0K,GAAIx0K,EAAEyzB,CAAC,CAAC,CACxG,SAASghJ,IAAIz0K,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE83C,EAAGvrE,EAAE,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAI2rK,KAAK,MAAM,IAAK,GAAEpgG,EAAGvrE,EAAE,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAIqjG,IAAK,CAAC,CACzG,SAASqxE,IAAI10K,EAAEyzB,EAAE,CAAC,KAAMzzB,EAAE,GAAG,MAAM,CAACA,EAAE,EAAEu2H,GAAIv2H,CAAC,EAAEA,EAAE,GAAG,MAAMA,EAAE,GAAG,GAAGkjD,EAAGljD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,GAAIy3D,IAAIhkC,EAAEkhJ,GAAI30K,CAAC,CAAC,CAAE,CACxG,SAAS0pH,IAAI1pH,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE40K,GAAI50K,EAAEyzB,GAAGqrE,EAAG,EAAGsE,IAAKpjG,EAAE,CAAC,EAAEA,EAAE,EAAE40K,GAAI50K,EAAEH,EAAEujG,GAAIpjG,EAAE,CAAC,EAAK,EAAAA,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,IAAU60K,IAAI70K,CAAC,CAAC,CAC1G,SAAS4pH,IAAI5pH,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE40K,GAAI50K,EAAEyzB,GAAGqrE,EAAG,EAAGmE,IAAKjjG,EAAE,CAAC,EAAEA,EAAE,EAAE40K,GAAI50K,EAAEH,EAAEojG,GAAIjjG,EAAE,CAAC,EAAK,EAAAA,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,IAAU60K,IAAI70K,CAAC,CAAC,CAC1G,SAAS80K,IAAI90K,EAAEyzB,EAAE5zB,EAAE,CAAC,MAAO,CAACy+C,GAAIqlE,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI84B,GAAI,IAAIw9B,IAAI7iC,EAAE5zB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIinD,GAAK,EAACC,GAAG,CAAE,CACzG,SAASguH,GAAI/0K,EAAE,CAAC,IAAIyzB,EAAmB,OAAjB8qB,GAAIv+C,CAAC,EAAEyzB,EAAE,IAAI/sB,GAAO1G,EAAE,EAAE,GAAGyzB,CAAC,GAAUsd,GAAG,EAAG,IAAID,GAAIhgB,GAAI2C,EAAE,CAAC,CAAC,IAASsd,GAAK,EAACA,GAAG,EAAG88B,GAAG,CAC1G,SAASmnG,GAAGh1K,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,GAAG,EAAU,IAAMyzB,EAAEwrC,GAAI,eAAeiW,GAAIgjC,GAAIl4G,EAAE,EAAE,CAAC,CAAC,CAAC,EAASyzB,EAAE,GAAGA,GAAG,GAAGzzB,EAAE,EAAE,EAAC,CAC1G,SAASi1K,GAAIj1K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAIkZ,GAAQ8c,EAAE6vG,GAAIt5J,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,CAAC,EAAEutB,GAAGvjD,EAAE,EAAE,IAAI2kB,GAAIv4C,CAAC,CAAC,EAAE,OAAO4zB,CAAC,CAC1G,SAASmgB,GAAI5zC,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,GAAI,EAAC0d,IAAInxC,EAAE,EAAEA,CAAC,EAAEk1K,IAAIl1K,CAAC,CAAC,CAC1G,SAASukE,GAAGvkE,EAAE,CAAC,OAAOo6D,GAAGp6D,CAAC,EAAEm1K,GAAIn1K,CAAC,EAAEk6D,GAAGl6D,CAAC,EAAEu/D,GAAIv/D,CAAC,EAAEg6D,GAAGh6D,CAAC,GAAG8wB,GAAI9wB,CAAC,EAAEA,EAAG,KAAK,MAAKuwG,GAAGvwG,CAAC,EAAEA,EAAE,GAAI,EAACyuG,GAAGzuG,CAAC,EAAEyxE,GAAIzxE,CAAC,EAAE6qH,GAAG7qH,CAAC,CAAC,CAC1G,SAASwpH,GAAGxpH,EAAE,CAAC,OAAOo6D,GAAGp6D,CAAC,EAAE4wK,GAAG12G,GAAGl6D,CAAC,EAAEo1K,GAAGp7G,GAAGh6D,CAAC,EAAEq1K,GAAG9kE,GAAGvwG,CAAC,GAAOyuG,GAAGzuG,CAAC,EAATA,EAAE,GAAcA,EAAE,IAAI,MAAM,QAAQA,CAAC,GAAGo3C,EAAGk+H,IAAG,CAAC,GAAGA,GAAE,CAC3G,SAASC,IAAIv1K,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,OAAO,IAAIge,IAAI,QAAQ,MAAM0nB,EAAI,IAAImN,GAAI2iI,IAAKx1K,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAC1G,SAASy1K,IAAIz1K,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,OAAO,IAAI8d,IAAI,QAAQ,MAAM4nB,EAAI,IAAImN,GAAI2iI,IAAKx1K,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAC1G,SAAS01K,GAAI11K,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAG,CAAA,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGwpK,GAAIxpK,EAAE,EAAEH,CAAC,EAAE,MAAO,CAAC81K,GAAI31K,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC1G,SAAS+1K,GAAI51K,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAE,IAAIo7C,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIxO,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAEnZ,EAAE,KAAK,EAAE5zB,CAAC,CAC1G,SAASg2K,GAAI71K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAE,IAAI5kB,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE4kB,EAAE,KAAK,EAAE5pD,EAAE,KAAK,EAAEG,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CACzG,SAASqiJ,GAAI91K,EAAE,CAAC,KAAK,EAAEA,EAAE,KAAK,EAAE,IAAI62I,GAAI,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE8S,GAAI,IAAI,EAAE,KAAK,UAAU3pJ,EAAE,SAAS,CAC3G,SAAS+1K,IAAG/1K,EAAE,CAAC,KAAM,CAACA,EAAE,GAAG,CAACA,EAAE,EAAE,GAAI,GAAE,GAAKA,EAAE,GAAG,CAACszC,GAAItzC,EAAE,CAAC,EAAGA,EAAE,EAAEkjD,EAAGoyD,GAAIt1G,EAAE,CAAC,EAAE,EAAE,MAAO,QAAO,KAAM,OAAOA,EAAE,CAAC,CAC3G,SAAS2xC,IAAI3xC,EAAE,CAAsB,OAArB4oC,EAAI5oC,EAAE,GAAG6gH,GAAG,EAAG8uD,IAAK,EAAI5V,GAAG/5J,EAAE,EAAEkzC,EAAImnC,EAAGipB,IAAK0yE,KAAMC,GAAK,CAAA,CAAC,CAAC,EAAU,IAAI31J,IAAW,IAAI0gB,IAAIhhC,CAAC,CAAC,CAC3G,SAASk2K,GAAIl2K,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,OAAO+iK,IAAI,QAAQ,IAAK,GAAE,MAAO,GAAE,IAAK,GAAE,OAAOC,GAAI,IAAK,GAAE,OAAOF,GAAI,CAAC,CAC3G,SAASqT,KAAK,CAAC1vG,GAAK,EAAC,IAAIzmE,EAAE,OAAGo2K,KAAep2K,EAAEg0E,IAAIi2E,GAAI,IAAI,EAAI,CAAC,EAAEjqJ,EAAEktG,GAAI+8C,GAAI,IAAI,EAAK,EAAEjqJ,CAAC,EAAEo2K,GAAIp2K,EAASo2K,GAAG,CAC1G,SAASvyF,GAAI7jF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAQ,IAANA,EAAEQ,EAAE,EAAQR,GAAE,CAAiB,GAAhBK,EAAEG,EAAE,EAAE,GAAGyzB,EAAEj0B,EAAE,CAAC,EAAKK,GAAG,EAAG,OAAOL,EAAEiqD,EAAE5pD,EAAE,EAAE,EAAE,EAAEL,EAAEA,EAAE,EAAEiqD,CAAC,CAAC,CAAC,OAAO,IAAI,CAC3G,SAAS4sH,IAAIr2K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,GAAG2mB,GAAK,EAAC,EAAAnT,GAAIp9D,CAAC,GAAcL,EAAE0jD,EAAGzvB,EAAE,GAAGg2B,CAAC,EAAE,EAAE,EAAMjqD,IAAGA,EAAE,IAAIqlC,EAAIpR,EAAE,GAAGg2B,EAAEjqD,CAAC,GAAEA,EAAE,GAAGK,CAAC,CAAC,CAC3G,SAASy2K,IAAIt2K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGulE,GAAIzoH,GAAG0vB,KAAM6mJ,GAAK,EAAC,EAAE,EAAE,EAAE9sH,EAAEvG,EAAGulE,GAAIh1F,EAAE8iJ,EAAG,EAAE,EAAE,EAAE,EAAS12K,GAAG4pD,GAAK5pD,EAAE4pD,EAAL,GAAU5pD,EAAE4pD,EAAE,EAAE,CAAC,CAC3G,SAAS4vF,GAAIr5I,EAAEyzB,EAAE,CAAC,OAAG+iJ,IAAIx2K,EAAEyzB,CAAC,GAAG+iD,GAAGx2E,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACusD,GAAG,EAAG,EAAE,EAAEhjJ,CAAC,EAAEoyE,GAAI7lG,EAAE,EAAEyzB,CAAC,EAAS,IAAiB,EAAM,CAC5G,SAASijJ,IAAI12K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4zB,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACysD,GAAK,EAAC,EAAE,EAAKljJ,IAAG5zB,EAAE4zB,EAAE,EAAEo/C,GAAIhzE,EAAE,EAAE4zB,CAAC,EAAE5zB,EAAE,EAAE,EAAE,QAAQ,GAAGgzE,GAAIorC,GAAIxqF,CAAC,EAAE,EAAE5zB,CAAC,EAAE,CAC5G,SAAS+2K,IAAI52K,EAAE,CAAC,OAAG2lE,GAAY1B,EAAG4yG,IAAGC,IAAI,IAAI,EAAE,EAAE,CAAC,EAAS5zH,EAAGimF,GAAInpI,EAAE,EAAEikE,EAAG4yG,IAAGC,IAAI,IAAI92K,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAC3G,SAASisJ,IAAGjsJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAAw7C,GAAI,EAAQ,IAAI/0D,GAAGgpE,EAAG9hE,EAAG+pE,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,EAAElc,GAAGllG,EAAEyzB,CAAC,EAAE,IAAIgvB,GAAGziD,EAAEyzB,CAAC,IAAIyxE,GAAGrlG,EAAE4pD,CAAC,EAAE,IAAIhH,GAAG5iD,EAAE4pD,CAAC,EAAG,CAAA,CAAC,CAAC,CAC5G,SAASstH,GAAI/2K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,GAAGiqD,EAAE,IAAIhc,GAAIgc,GAAGizG,GAAIl9J,EAAEi0B,EAAE5zB,CAAC,EAAEqmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAImpC,GAAGtqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGR,CAAC,EAASA,CAAC,CAC5G,SAASw3K,GAAIh3K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA+C,IAA7CA,EAAEktD,IAAIuqH,IAAIj3K,CAAC,EAAEH,EAAEL,EAAE,OAAOiqD,EAAEwa,EAAG2sG,GAAGpmG,EAAI,EAAE3qE,EAAE,EAAE,CAAC,EAAM4zB,EAAE,EAAEA,EAAE5zB,EAAE,EAAE4zB,EAAGg2B,EAAEh2B,CAAC,EAAEj0B,EAAEi0B,CAAC,EAAE,OAAOg2B,CAAC,CAC5G,SAASyyG,GAAIl8J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAItjE,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEutH,EAAE,IAAI9Q,IAAIj8G,CAAC,EAAEH,EAAE,GAAGktH,CAAC,EAAEmqD,IAAInqD,CAAC,EAAE/nF,GAAIhlC,EAAE,CAAC,CAAC,CAC3G,SAASm3K,GAAGn3K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG4zB,IAAIzzB,EAAU,GAAQurE,EAAG93C,EAAE,GAAG,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,GAAG,EAASywB,GAAGlkD,EAAE,GAAI,EAACH,EAAE,GAAE,CAAE,GAAS,EAAK,CAC5G,SAASu3K,GAAIp3K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,EAAE,EAAE,GAAGzzB,EAAE,EAAE,EAAE,SAAeo3K,GAAIp3K,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAE4zB,EAAE,EAAE5zB,EAAEG,EAAE,EAAE,EAAE,QAAQo3K,GAAIp3K,EAAEH,CAAC,EAAEmhK,IAAIhhK,EAAEyzB,CAAC,EAAC,CAC7G,SAAS4jJ,IAAGr3K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,KAAK,EAAEQ,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAKj0B,EAAE8gK,IAAGzgK,CAAC,EAAE4pD,EAAEwa,EAAGqzG,IAAGC,GAAI,IAAI/3K,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEiqD,CAAC,CAC5G,SAAS+tH,GAAIx3K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,IAAIA,EAAE5pD,EAAE,EAAE4pD,GAAG,GAAGzpD,EAAEypD,CAAC,IAAIh2B,EAAEg2B,CAAC,EAAEA,IAAI,CAAC,OAAOA,EAAE,EAAE,EAAE+C,GAAIquE,GAAI76H,EAAEypD,CAAC,EAAEguH,EAAG,EAAE58C,GAAIpnG,EAAEg2B,CAAC,EAAEguH,EAAG,CAAC,EAAE,GAAG,CAAC,CAC7G,SAASC,IAAI13K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE6vG,GAAIt5J,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAK5pD,EAAE,EAAE,OAAO,IAAG4zB,EAAE,GAAG5zB,CAAC,EAAEA,EAAE,GAAG83K,IAAI93K,CAAC,EAAG,CAC7G,SAAS+3K,GAAI53K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAEvG,EAAGoqB,GAAIttE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAEH,EAAEokE,EAAG4zG,GAAGC,GAAI,IAAIrkJ,EAAE,EAAE,CAAC,EAAEg2B,GAAG,MAAM2qF,GAAI3qF,EAAE,EAAE5pD,EAAE,EAAE4pD,EAAE,MAAM,EAAS5pD,CAAC,CAC7G,SAASk4K,IAAI/3K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAE,IAAIm4K,IAAKh4K,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,GAAG,OAAOH,EAAE,EAAEG,GAAUH,CAAC,CAC7G,SAASo4K,IAAGj4K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEzpD,EAAE,GAAE,EAAG,GAAI,EAAC,GAAE,EAAGypD,EAAE,GAAI,GAAmB,GAAhB5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAK5pD,EAAE,GAAG4zB,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CAC9G,SAASykJ,GAAIl4K,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE,IAAIA,EAAEltH,EAAEktH,GAAGvtH,EAAEutH,IAAK,IAAI1tH,EAAEo0B,EAAEp0B,GAAGoqD,EAAEpqD,IAAK,GAAGizK,GAAItyK,EAAEX,EAAE0tH,CAAC,EAAG,MAAO,GAAO,MAAO,EAAK,CAC7G,SAASorD,IAAGn4K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA2B,IAAzBj8F,GAAIjxB,CAAC,EAAEktH,EAAE,GAAM1tH,EAAEW,EAAE,GAAGyzB,CAAC,EAAMj0B,EAAEK,EAAE,GAAE,EAAGL,EAAE,GAAE,GAAKiqD,EAAEjqD,EAAE,GAAI,EAACH,EAAE,GAAGoqD,CAAC,EAAEsjE,EAAE,GAAK,OAAOA,CAAC,CAC9G,SAASqrD,IAAGp4K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,IAAIyzB,EAAU,GAAa83C,EAAG93C,EAAE,EAAE,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAS4kJ,GAAGtyE,GAAG/lG,CAAC,EAAEH,EAAE,GAAE,CAAE,GAAS,EAAK,CAC9G,SAASy4K,IAAIt4K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEK,EAAE,GAAE,EAAGL,EAAE,GAAI,GAAmB,GAAhBiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAKQ,EAAE,GAAGyzB,EAAEg2B,EAAE,GAAE,CAAE,EAAG,MAAO,GAAM,MAAO,EAAK,CAC9G,SAAS8uH,IAAIv4K,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAIG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,CAAC,IAAG24K,IAAIx4K,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,CAAC,EAAE,GAAKG,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,CAAC,EAAE,IAAYzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,CAAC,CAAC,CAC5G,SAAS2sJ,GAAIxsJ,EAAEyzB,EAAE,CAAC,GAAG,CAACzzB,EAAE,MAAMyzB,GAAG,KAAM,MAAMiS,EAAI,IAAImN,GAAI,sCAAsC,CAAC,EAAE,OAAOpf,CAAC,CAC1G,SAAS8vC,GAAIvjE,EAAEyzB,EAAE,CAAIzzB,EAAE,GAAG,MAAMA,EAAE,GAAG,OAAMA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,MAAK+/J,GAAI//J,EAAEyzB,GAAG,KAAK,MAAM3C,GAAI2C,CAAC,EAAEA,EAAE,EAAIzzB,EAAE,GAAGA,EAAE,GAAG,IAAI,CAAC,CAC5G,SAASy4K,IAAIz4K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,MAAG,CAACG,GAAGA,GAAGyzB,GAAG,CAACijD,GAAIjjD,GAAGy2F,EAAK,EAACwuD,GAAK,EAAS,IAAM74K,EAAEqjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACwuD,GAAG,EAAG,EAAE,EAAS74K,GAAGG,EAAC,CAC9G,SAAS24K,GAAI34K,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAG,MAAO,GAAK,IAAK,GAAG,MAAO,GAAM,IAAK,GAAI,EAAEA,EAAE,EAAE,QAAS,OAAOA,EAAE,GAAI,CAAC,CAAC,CAC5G,SAAS44K,IAAI54K,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAI,MAAO,GAAK,IAAK,GAAI,MAAO,GAAM,IAAK,GAAG,EAAEA,EAAE,EAAE,QAAS,OAAOA,EAAE,GAAE,CAAG,CAAC,CAC7G,SAAS64K,IAAI74K,EAAE,CAACgtD,IAAG,KAAK,KAAK,+EAA+EhtD,CAAC,CAAC,CAC9G,SAASs/F,IAAK,CAACA,GAAI56F,EAAIgvI,GAAI,IAAI98E,GAAI,MAAM,CAAC,EAAE+8E,IAAI,IAAI/8E,GAAI,OAAO,CAAC,EAAEg9E,IAAI,IAAIh9E,GAAI,MAAM,CAAC,EAAEi9E,IAAI,IAAIj9E,GAAI,MAAM,CAAC,CAAC,CAC3G,SAASghC,IAAK,CAACA,GAAIlzF,EAAIs9H,GAAI,IAAI7tE,GAAIq5F,GAAI,CAAC,EAAEvrB,IAAI,IAAI9tE,GAAI,oBAAoB,CAAC,EAAE+tE,IAAI,IAAI/tE,GAAI,mBAAmB,CAAC,CAAC,CAC9G,SAASsyB,IAAK,CAACA,GAAI/hF,EAAI62H,IAAI,IAAIruE,GAAI,aAAa,CAAC,EAAEsuE,GAAI,IAAItuE,GAAI,kBAAkB,CAAC,EAAEuuE,GAAI,IAAIvuE,GAAI,YAAY,CAAC,CAAC,CAC9G,SAAS5iC,IAAK,CAACA,GAAI5lB,EAAIo0K,KAAKnyH,KAAMC,IAAKmyH,IAAI,IAAIl7G,GAAIm7G,IAAIF,GAAG,EAAEG,IAAI,IAAIh2I,GAAIi2I,GAAG,EAAEC,IAAI,IAAIl2I,GAAIm2I,GAAG,EAAEC,IAAI,IAAIp2I,GAAIq2I,GAAG,CAAC,CAC9G,SAAS9sJ,IAAK,CAACA,GAAI9nB,EAAI60K,IAAI,IAAI9nK,IAAI+nK,IAAI,IAAI9nK,IAAI+nK,IAAI,IAAI9nK,IAAI+nK,IAAI,IAAI9nK,IAAI+nK,IAAI,IAAI9nK,IAAI+nK,KAAK9oJ,GAAI6oJ,GAAG,EAAE,IAAI30K,IAAI,CACzG,SAAS4uF,IAAK,CAACA,GAAIlvF,EAAIk8H,GAAI,IAAIjuE,GAAI,eAAe,CAAC,EAAEkuE,IAAI,IAAIluE,GAAI,oBAAoB,CAAC,EAAEmuE,GAAI,IAAInuE,GAAI,SAAS,CAAC,CAAC,CAC/G,SAASziC,IAAK,CAACA,GAAIxrB,EAAIm1K,IAAI,IAAIv0G,GAAI,EAAE,EAAEw0G,IAAI,IAAIz0G,IAAKr1C,GAAK,EAAC+pJ,IAAKF,GAAG,EAAEG,GAAIC,GAAIC,IAAIC,IAAIC,IAAIC,GAAIC,IAAIC,GAAIC,IAAIC,EAAG,CAC3G,SAASxN,GAAIjtK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAY,IAAVoqD,EAAE,IAAI7c,GAAQvtC,EAAEi6J,GAAIz5J,EAAE,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,GAAIG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAEwmG,GAAIp8C,EAAE,IAAIrR,GAAI54C,CAAC,CAAC,EAAE24K,IAAGn4K,EAAEyzB,EAAEg2B,CAAC,CAAC,CAC9G,SAASixH,IAAI16K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAwC,IAAtCh2B,EAAE,EAAEg2B,EAAEwa,EAAGm3D,GAAG5wD,EAAI,EAAExqE,EAAE,EAAE,EAAE,CAAC,EAAEH,EAAEy5J,GAAIt5J,EAAE,CAAC,EAAQH,EAAE,GAAGA,EAAE,EAAE,GAAG4pD,EAAEh2B,GAAG,EAAEyvB,EAAG0tF,GAAI/wI,CAAC,EAAE,CAAC,EAAE,OAAO4pD,CAAC,CAC9G,SAASkxH,GAAI36K,EAAE,CAAC,IAAIyzB,EAAwC,OAAtCA,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIy5F,GAAG56K,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAMyzB,EAAE,GAAG,EAAUy2B,IAAIhH,EAAGwpG,EAAIj5H,EAAE,CAAC,EAAE,GAAG,CAAC,EAAS,IAAI,CAC/G,SAASonJ,IAAG76K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAa,OAAXA,EAAEkrG,GAAI/qG,EAAEyzB,CAAC,EAAK+4B,GAAIs4E,GAAI9kI,EAAEyzB,CAAC,EAAE,CAAC,EAAEinC,IAAIoqE,GAAI9kI,EAAEH,CAAC,EAAE,CAAC,EAAUA,EAASkrG,GAAI9mB,GAAI6gD,GAAIpzB,GAAI7xG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAC/G,SAASi7K,IAAI96K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAEyjG,IAAK0yE,GAAG,EAAGC,GAAK,GAAE,MAAMxiJ,EAAE,GAAE,GAAI,KAAKyf,EAAImnC,EAAG5mD,EAAE,GAAE,CAAE,CAAC,EAAEyf,EAAImnC,EAAGipB,GAAI2yE,EAAG,CAAC,CAAC,EAAE,EAAEz8G,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAC/G,SAASk7K,IAAG/6K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAqB,OAAnB5pD,EAAEqjD,EAAGljD,EAAE,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAM5zB,GAAe4pD,EAAEzpD,EAAE,EAAE,GAAI,EAACypD,EAAE,GAAG5pD,CAAC,EAAEG,EAAE,EAAE,GAAGH,EAAE,GAAE,EAAGA,EAAE,GAAE,EAAU4pD,GAApD,IAAqD,CAC/G,SAASuxH,GAAIh7K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAW,GAATA,EAAEzpD,EAAE,EAAEyzB,CAAC,EAAKg2B,GAAG,EAAgC,IAAtBzpD,EAAE,EAAEyzB,CAAC,EAAE,EAAEzzB,EAAE,GAAGypD,EAAE5pD,EAAE4zB,EAAE,EAAQ5zB,EAAEG,EAAE,EAAE,QAAQA,EAAE,EAAEH,CAAC,GAAG4pD,EAAE5pD,GAAGA,EAAE,CAACA,CAAE,CAC/G,SAASo7K,IAAIj7K,EAAE,CAAC,IAAIyzB,EAAiB,GAAfA,EAAEzzB,EAAE,EAAE,EAAE,OAAUyzB,EAAE,EAAG,OAAOs/E,GAAIt/E,EAAE,EAAEzzB,EAAE,EAAE,EAAE,MAAM,EAAE02G,GAAI12G,EAAE,EAAEyzB,EAAE,CAAC,EAAO,MAAMiS,EAAI,IAAIuC,GAAG,CAAE,CAC/G,SAASmuE,IAAIp2G,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAG4zB,EAAE,EAAG,MAAMiS,EAAI,IAAIwM,GAAIw8G,IAAIj7H,CAAC,CAAC,EAAKA,EAAEzzB,EAAE,EAAE,EAAE,OAAQ81G,GAAI91G,EAAE,EAAEyzB,EAAE5zB,CAAC,GAAOmxI,IAAIhxI,EAAEyzB,CAAC,EAAEmV,EAAI5oC,EAAE,EAAEH,CAAC,EAAE,CAC/G,SAAS4tG,IAAIztG,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAEyzB,EAAG,MAAMiS,EAAI,IAAImN,GAAI8wG,GAAI3jJ,EAAEk7K,IAAIznJ,CAAC,CAAC,EAAE,GAAGzzB,EAAE,GAAGyzB,EAAE5zB,EAAG,MAAM6lC,EAAI,IAAIoQ,GAAI6tG,GAAI3jJ,EAAE4jJ,IAAInwH,EAAEowH,IAAIhkJ,CAAC,CAAC,CAAE,CAC/G,SAASs7K,IAAIn7K,EAAE,CAAC,GAAG,CAACA,EAAE,GAAI,EAAAA,EAAE,EAAE,EAAE,GAAO,MAAM0lC,EAAI,IAAIoN,GAAI,gDAAgD9yC,EAAE,CAAC,CAAC,CAAE,CAC/G,SAASo7K,GAAIp7K,EAAE,CAAC,IAAIyzB,EAAE,EAAEzzB,EAAE,EAAKA,EAAE,GAAG,EAAGA,EAAE,EAAE,KAAaA,EAAE,EAAEA,EAAE,EAAE,SAAQyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAGA,EAAE,CAAC,EAAEo0I,GAAI3gH,EAAE,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,CAC/G,SAASq7K,IAAIr7K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAA6B,IAA3B5pD,EAAEG,EAAE,EAAE,OAAO,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEH,EAAQ4zB,GAAGzzB,EAAE,GAAGypD,EAAEh2B,EAAE,EAAE5zB,EAAEgmE,GAAG7lE,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEypD,CAAC,CAAC,EAAEh2B,EAAEg2B,EAAEoc,GAAG7lE,EAAE,EAAEA,EAAE,EAAE,IAAI,CAAC,CAChH,SAASs7K,IAAIt7K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAiB,IAAf5pD,EAAEG,EAAE,EAAE,OAAO,EAAQyzB,GAAGzzB,EAAE,GAAGypD,EAAEh2B,EAAE,EAAE5zB,EAAEgmE,GAAG7lE,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEypD,CAAC,CAAC,EAAEh2B,EAAEg2B,EAAEoc,GAAG7lE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEH,CAAC,CAChH,SAAS07K,GAAIv7K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAwC,OAAtCmuG,GAAIl6E,EAAEzzB,EAAE,EAAE,MAAM,EAAEypD,EAAE5pD,EAAE,GAAE,EAAGL,EAAEiqD,EAAE,OAAUjqD,GAAG,EAAU,IAAM4lF,GAAIplF,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAS,GAAI,CAChH,SAAS+xH,IAAIx7K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,GAAG,KAAK,OAAO,KAAK,IAAIyzB,EAAE,EAAE5zB,EAAEG,EAAE,OAAOyzB,EAAE5zB,EAAE4zB,IAAK,GAAG,CAACgxE,IAAIzkG,EAAEyzB,CAAC,CAAC,EAAE,OAAOzzB,EAAEyzB,CAAC,EAAE,OAAO,IAAI,CAChH,SAASk5F,IAAI3sH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAIvtH,EAAEK,EAAER,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAU,GAAPoqD,EAAEjqD,EAAEH,CAAC,EAAKW,EAAE,EAAE,GAAGyzB,EAAEg2B,EAAE,GAAI,CAAA,EAAG,OAAOA,EAAG,OAAO,IAAI,CACjH,SAASgyH,GAAIz7K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJA,EAAE,EAAMQ,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEpqD,EAAE,GAAGA,GAAGo0B,GAAG,KAAK8wC,GAAG9wC,CAAC,EAAE,GAAGp0B,EAAEA,EAAE,EAAE,OAAOA,CAAC,CAChH,SAASg+D,GAAGr9D,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAO,IAALo0B,EAAE,CAAA,EAAOg2B,EAAEzpD,EAAER,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEi0B,EAAE,KAAK5zB,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,OAAO4zB,CAAC,CACjH,SAASioJ,IAAG17K,EAAE,CAAC,IAAIyzB,EAAuD,IAArD+hB,GAAGx1C,CAAC,EAAEyqF,GAAG,GAAK,qCAAqC,EAAMh3D,EAAE,EAAEA,EAAE,GAAGirH,GAAG1+I,CAAC,EAAEyzB,IAAKgrH,GAAGz+I,CAAC,EAAE,OAAOyzB,CAAC,CAChH,SAASkoJ,IAAI37K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAE,IAAIgxG,GAAGphC,GAAGzvE,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,GAAGA,EAAE,EAAE,GAAG,EAAEg2B,EAAE,OAAOA,CAAC,CACjH,SAASmyH,IAAI57K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEK,EAAEG,EAAER,EAAE,EAAE,EAAE,CAAC,GAAGK,GAAG4zB,EAAG,OAAOj0B,EAAQ,GAANiqD,EAAE5pD,EAAE,EAAK,CAAC4pD,EAAG,MAAM/jB,EAAI,IAAIkC,EAAG,EAAE/nC,EAAEo+G,GAAIx0D,CAAC,EAAE,EAAEjqD,CAAC,OAAO,GAAK,CACjH,SAASq8K,IAAI77K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAU,IAARA,EAAEi0B,EAAEzzB,EAAE,EAAMypD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEqyH,IAAIj8K,EAAEA,EAAE,EAAEA,EAAE,EAAEL,CAAC,EAAEQ,EAAE,EAAEyzB,CAAC,CACjH,SAASsoJ,GAAI/7K,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAGkD,EAAK,KAAK,IAAI0wB,EAAEzzB,CAAC,EAAEg8K,IAAKj5K,EAAK,KAAK,IAAIlD,EAAEG,CAAC,EAAEg8K,GAAY,GAAYvoJ,EAAEzzB,EAAEg8K,GAAIh8K,EAAEH,EAAEm8K,GAAIn8K,EAAEG,EAAEg8K,EAAG,CACjH,SAASC,GAAIj8K,EAAEyzB,EAAE,CAAsC,MAAlC,CAACzzB,GAAeyzB,GAAG,CAACzzB,EAAE,GAAeurE,EAAGvrE,EAAE,GAAG,GAAMkjD,EAAGljD,EAAE,GAAG,EAAE,EAAE,GAAG,EAAU,EAAUA,EAAE,IAAI,CACjH,SAASk8K,GAAIl8K,EAAEyzB,EAAE,CAAsC,MAAlC,CAACzzB,GAAeyzB,GAAG,CAACzzB,EAAE,GAAeurE,EAAGvrE,EAAE,GAAG,GAAMkjD,EAAGljD,EAAE,GAAG,EAAE,EAAE,GAAG,EAAU,EAAUA,EAAE,IAAI,CACjH,SAAS+7J,GAAI/7J,EAAE,CAAO,OAAN6jE,GAAK,EAAI7jE,EAAE,EAAMA,GAAG,GAAW,IAAIm8K,GAAI,GAAG,CAACn8K,CAAC,EAASo8K,GAAgBp8K,GAAG,GAAGq8K,IAAI78G,GAAGx/D,CAAC,CAAC,EAAE,IAAIm8K,GAAI,EAAEn8K,CAAC,CAAC,CAClH,SAAS0xJ,GAAG1xJ,EAAE,CAAC,MAAAwxJ,GAAI,EAAO9rH,EAAI,IAAIkL,IAAG,6BAA6B5wC,EAAE,2CAA2C,CAAC,CAAC,CACjH,SAASuuK,IAAGvuK,EAAE,CAAC00C,IAAE,EAAG41B,GAAG,IAAI,EAAEqG,GAAG,IAAI,EAAE,KAAK,EAAE3wE,EAAEkxC,IAAG,KAAKlxC,CAAC,EAAE,KAAK,EAAEA,GAAG,KAAKixE,GAAIC,GAAIlxE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAEA,EAAE,KAAK,EAAE,EAAE,CAChH,SAASs8K,IAAK,CAAC,KAAK,EAAE,IAAI3+J,IAAI,KAAK,EAAE,IAAIwiB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAIC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAIC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAIC,IAAI,IAAI,CAAC,CACjH,SAASi8I,KAAI,CAAC5sI,IAAG,KAAK,KAAK,IAAIyiC,GAAI1U,GAAG,EAAE,CAAC,CAAC,EAAEmX,GAAG,EAAE2lD,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI1a,GAAG,KAAK,KAAK,EAAE,IAAI,EAAEl5E,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAChH,SAAS4qD,IAAK,CAACA,GAAI9sF,EAAI24H,GAAI,IAAIprE,GAAI,kBAAkB,CAAC,EAAEqrE,IAAI,IAAIrrE,GAAI,mBAAmB,CAAC,EAAEsrE,GAAI,IAAItrE,GAAI,QAAQ,CAAC,CAAC,CAChH,SAASwmE,IAAK,CAACA,GAAI/zH,EAAI83K,GAAIjnD,IAAGrc,EAAG9hE,EAAGgjG,GAAG,CAAC,EAAEhhC,EAAI,IAAI,EAAE,EAAErd,KAAMz6B,IAAKC,EAAG,CAAC,CAAC,EAAEk7G,GAAIlnD,IAAGrc,EAAG9hE,EAAGgjG,GAAG,CAAC,EAAEhhC,EAAI,IAAI,EAAE,CAAC33C,GAAIC,EAAG,CAAC,CAAC,CAAC,CAChH,SAASg7G,GAAI18K,EAAE,CAAC,OAAQ8+F,IAAM69E,IAAK,GAAG38K,EAAE,CAAC,EAAEkzC,EAAImnC,EAAGuuC,EAAI5oH,GAAGkqH,EAAK,EAAC0yD,GAAG,CAAE,CAAC,EAAEzhD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACxqE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClH,SAAS68K,IAAI78K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,IAARiqD,EAAEzpD,EAAE,EAAE,EAAMH,EAAE4pD,EAAE,EAAE,GAAI,EAAC,GAAI,EAAC5pD,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,GAAG,EAAEL,EAAE,IAAIs9K,IAAIrpJ,EAAEzzB,EAAE,EAAEA,EAAE,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAER,CAAC,CAAE,CAClH,SAASm9J,GAAI38J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEiqD,EAAEzpD,EAAE,GAAGyzB,EAAE,IAAI,EAAEj0B,EAAE,KAAQi0B,IAAGj0B,GAAGg9C,GAAK,EAAC38C,EAAE,IAAIulC,GAAIvlC,GAAGimH,GAAItmH,EAAEQ,EAAE,CAAC,GAAEypD,EAAEszH,GAAI/8K,EAAER,EAAEiqD,CAAC,EAAIA,GAAGA,EAAE,IAAI,CACjH,SAASuzH,IAAIh9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAyB,IAAvBA,EAAE6kD,GAAItuG,EAAE,EAAE,CAAC,GAAG,EAAEH,EAAE,GAAWA,GAAGA,EAAE,GAAMA,EAAE4zB,EAAE,EAAE,GAAGA,EAAE,EAAEg2B,CAAC,EAAE5pD,EAAEA,EAAEo9K,GAAIj9K,EAAEyzB,EAAEg2B,EAAE,EAAK,EAAEA,EAAE,CAACA,EAAEw5G,GAAIjjK,CAAC,CAAC,CAClH,SAASk9K,GAAIl9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,GAAM5pD,EAAE4zB,EAAE,EAAE,EAAKA,EAAE,EAAEzzB,EAAE,IAAGR,EAAE29K,IAAI1pJ,EAAE,EAAEzzB,EAAE,CAAC,EAAKyzB,EAAE,EAAE,EAAEj0B,IAAG49K,IAAI3pJ,EAAE,EAAEj0B,CAAC,EAAEiqD,EAAE5pD,GAAG4zB,EAAE,EAAE,IAAUg2B,CAAC,CAClH,SAAS4zH,IAAIr9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,OAAAhlK,EAAE6zB,EAAE,EAAEmxI,EAAEnxI,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAER,EAAEiqD,EAAE,EAAEpqD,EAAEoqD,EAAE,EAAEsjE,EAAEntH,EAAEJ,EAAEmlK,EAAEC,EAAEvlK,EAAEQ,EAAEkD,EAAK,KAAK,KAAKgqH,EAAEA,EAAE43C,EAAEA,CAAC,EAAS9kK,CAAC,CAClH,SAASy9K,GAAIt9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAE8zH,GAAIv9K,CAAC,EAAMypD,IAAuB5pD,GAAG29K,KAAMC,IAAIhqJ,CAAC,GAAGg2B,EAAE,IAAInlB,IAAIzkC,CAAC,EAAEqmE,GAAIzc,EAAE,GAAE,EAAGzpD,CAAC,GAASypD,CAAC,CAClH,SAASi0H,GAAG19K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAqB,OAAnB5pD,EAAEqjD,EAAGljD,EAAE,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAM5zB,GAAiB4pD,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAG5pD,CAAC,EAAEG,EAAE,GAAGH,EAAE,GAAE,EAAGA,EAAE,GAAE,EAAUG,EAAE,GAAGypD,CAAC,GAAxDzpD,EAAE,GAAE,CAAqD,CACnH,SAAS29K,IAAI39K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,OAAO5zB,IAAK,GAAGG,IAAIgiH,GAAIniH,EAAE4zB,EAAE,MAAM,EAAEA,EAAE,WAAW5zB,CAAC,GAAI,MAAO,GAAM,MAAO,EAAK,CAClH,SAAS+9K,IAAI59K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAIA,EAAE,EAAEA,EAAE4zB,EAAE,OAAO5zB,IAAK,GAAGG,IAAIgiH,GAAIniH,EAAE4zB,EAAE,MAAM,EAAEA,EAAE,WAAW5zB,CAAC,GAAI,MAAO,GAAM,MAAO,EAAK,CAClH,SAASg+K,IAAI79K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,GAAG,KAAK,MAAO,GAAM,IAAIyzB,EAAE,EAAE5zB,EAAEG,EAAE,OAAOyzB,EAAE5zB,EAAE4zB,IAAK,GAAG,CAACgxE,IAAIzkG,EAAEyzB,CAAC,CAAC,EAAE,MAAO,GAAM,MAAO,EAAI,CAClH,SAASqqJ,IAAI99K,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAG,EAAG,OAAOA,EAAE,EAAE,IAAIyzB,EAAE,EAAEA,EAAEzzB,EAAE,EAAE,OAAOyzB,IAAKzzB,EAAE,EAAEA,EAAE,EAAE,IAAIA,EAAE,EAAEyzB,CAAC,EAAE,IAAI,OAAAzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAASA,EAAE,CAAC,CACnH,SAAS0uK,GAAI1uK,EAAE,CAAC,IAAIyzB,EAAE,OAAAy+C,GAAIlyE,EAAE,GAAGA,EAAE,CAAC,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEg2E,IAAIh2E,EAAE,GAAGA,EAAE,EAAE,GAAGyzB,GAAG,IAAI,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,EAASyzB,CAAC,CACnH,SAASsqJ,IAAI/9K,EAAE,CAAC,IAAIyzB,EAAE,GAAG,EAAEzzB,EAAE,EAAE,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAI,MAAM0lC,EAAI,IAAIwC,EAAG,EAAE,OAAAzU,EAAEzzB,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAASutI,EAAI95G,CAAC,CAAC,CAClH,SAASuqJ,IAAIh+K,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIkhI,IAAI30J,CAAC,EAAE0pI,GAAI1pI,EAAE,EAAEyzJ,IAAI,IAAI//G,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAAC1wC,CAAC,CAAC,CAAC,CAAC,EAAIA,EAAE,GAAGmV,EAAInV,EAAE,EAAEA,EAAE,CAAC,EAASA,EAAE,CAAC,CAClH,SAASyqJ,GAAIl+K,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAI0nB,GAAIn7C,EAAE,CAAC,EAAE8+I,GAAIrrH,EAAEzzB,CAAC,EAAE8iF,EAAIrvD,GAAGy2F,IAAM+jC,IAAKjuJ,CAAC,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAASyzB,CAAC,CACnH,SAAS0qJ,IAAIn+K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,IAAIA,EAAEW,EAAE,KAAKX,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,KAAK,EAAE,EAAEG,EAAE,EAAE,EAAEi0B,EAAE,GAAGg2B,EAAE,EAAEjqD,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,EAAEi0B,EAAE,EAAEA,EAAE,GAAGj0B,EAAE,EAAE,EAAEK,CAAE,CACnH,SAASu+K,IAAIp+K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEi0B,EAAE,EAAE,EAAE,GAAI,EAAC,GAAE,EAAGj0B,EAAE,GAAE,GAAqB,GAAhBiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAKyrH,IAAIjrH,EAAEypD,EAAE5pD,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACnH,SAASw+K,IAAIr+K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAKG,EAAE,EAAEyzB,EAAE,CAAC,GAAG,EAAG,OAAOA,EAAG,OAAO,IAAI,CACnH,SAAS6qJ,IAAIt+K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAIoqC,GAAQ6f,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEh2B,EAAE8qJ,IAAI1+K,CAAC,EAAE4kD,GAAGjlD,EAAEi0B,CAAC,EAAE,OAAOj0B,CAAC,CACnH,SAASg/K,IAAIx+K,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE2uC,GAAIi9F,GAAG,EAAEn8G,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGu0D,GAAK,EAAC,EAAE,EAAE,IAAIzuF,GAAG,EAAG61E,GAAK,GAAEn9D,GAAIj1E,GAAGq2D,GAAK,EAACyuD,KAAM98C,GAAG,EAAGijF,GAAK,EAAQjrJ,CAAC,CACnH,SAASkrJ,IAAI3+K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE,IAAIm1H,IAAI5+K,EAAEyzB,CAAC,EAAE+iD,GAAGx2E,EAAE,EAAEyzB,EAAE,GAAI,EAACg2B,CAAC,EAAK5pD,GAAG,CAACyzG,GAAItzG,EAAE,CAAC,IAAGypD,EAAE,EAAE,IAAIiqE,IAAI1zH,EAAE,CAAC,EAAEqkE,GAAI5wC,EAAE,GAAE,EAAG,IAAI2G,IAAIqvB,CAAC,CAAC,EAAE,CACnH,SAAS8C,GAAIvsD,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK,CAAC,MAAM5zB,CAAC,GAAUA,EAAU+xJ,GAAGjyF,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CACnH,SAASorJ,IAAI7+K,EAAEyzB,EAAE,CAAC,OAAOA,EAAEzzB,EAAE,SAASgiH,GAAIvuF,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,CAAC,GAAG,MAAMuuF,GAAIvuF,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,CAAC,GAAG,GAAG,CACjH,SAASqrJ,IAAI9+K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAEW,EAAE,EAAEyzB,EAAEp0B,EAAEoqD,EAAE,EAAE,EAAEzpD,EAAE,GAAGR,EAAE,IAAIu/K,IAAI/+K,EAAE,EAAEA,EAAE,EAAEH,EAAER,CAAC,EAAE,IAAI2/K,IAAIn/K,EAAEG,EAAE,EAAER,EAAEQ,EAAE,EAAEA,EAAE,EAAEA,EAAE,IAAIw0F,GAAK,EAAC+sC,GAAI,EAAE,CAClH,SAAS09C,GAAIj/K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEi0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACnH,SAASq/K,IAAIl/K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEi0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACnH,SAASs/K,IAAIn/K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEi0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACnH,SAASm5E,GAAIh5E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAA,GAAGG,EAAEQ,EAAEu9K,GAAIv9K,CAAC,EAAE,KAAKo/K,KAAK31H,EAAEh2B,EAAEj0B,GAAEA,EAAE,GAAE,EAAQiqD,EAAC,GAAOpqD,GAAGo0B,IAAG5zB,EAAE09K,GAAIv9K,CAAC,EAAIH,GAAGA,EAAE,GAAE,GAAUR,CAAC,CACnH,SAASggL,GAAIr/K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAsB,IAApBA,EAAE,EAAEK,EAAEG,EAAEypD,EAAEh2B,GAAG,EAAEA,EAAE,CAACA,EAAQg2B,EAAE,GAAMA,EAAE,GAAG,GAAG5pD,GAAGA,EAAE4pD,EAAEA,EAAE,EAAE,IAAOjqD,GAAGK,EAAE4pD,GAAG,GAAG,OAAOh2B,EAAE,EAAE,EAAEj0B,EAAEA,CAAC,CACnH,SAAS8/K,IAAIt/K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAsB,IAApBA,EAAE,EAAEK,EAAEG,EAAEypD,EAAEh2B,GAAG,EAAEA,EAAE,CAACA,EAAQg2B,EAAE,GAAMA,EAAE,GAAG,GAAG5pD,GAAGA,EAAE4pD,EAAEA,EAAE,EAAE,IAAOjqD,GAAGK,EAAE4pD,GAAG,GAAG,OAAOh2B,EAAE,EAAE,EAAEj0B,EAAEA,CAAC,CACnH,SAASwqK,IAAIhqK,EAAE,KAAKyzB,EAAE5zB,EAAM,GAAGG,GAAG,KAAM,IAAIH,EAAE,EAAEA,EAAEG,EAAE,OAAO,EAAEH,EAAG4zB,EAAEzzB,EAAEH,CAAC,EAAK4zB,IAAGyvB,EAAGzvB,EAAE,EAAE,GAAG,EAAIA,EAAE,EAAsB,CACnH,SAAS8rJ,IAAIv/K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJA,EAAE,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4pD,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEh2B,EAAE,CAAC,EAAE,OAAOg2B,CAAC,CACpH,SAAS+1H,IAAIx/K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEh2B,EAAE5zB,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAEA,EAAE,EAAI4zB,GAAGgsJ,IAAIhsJ,EAAE5zB,EAAE,CAAC,CAAE,CACpH,SAASk9F,IAAK,CAACA,GAAIr4F,EAAIy+H,GAAI,IAAIxtE,GAAI,UAAU,CAAC,EAAEytE,GAAI,IAAIztE,GAAI,mBAAmB,CAAC,EAAE0tE,GAAI,IAAI1tE,GAAI,oBAAoB,CAAC,CAAC,CACpH,SAAS+pH,GAAI1/K,EAAEyzB,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE2/J,GAAI3/J,EAAE,IAAI,EAAE,MAAO,CAAC6wK,GAAI7wK,EAAEyzB,CAAC,CAAC,CACpH,SAASkhF,GAAG30G,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,EAAE,GAAI,EAAA,CAAE,IAAK,GAAE,OAAOk8G,GAAG,IAAK,GAAE,OAAO,IAAI/R,GAAG30D,GAAGx1C,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAAyzB,EAAEzzB,EAAS,IAAIm8G,GAAG1oF,CAAC,CAAE,CAAC,CACrH,SAASksJ,IAAG3/K,EAAE,CAAM,OAAL8mC,GAAI,EAAQ9mC,EAAE,GAAE,GAAI,IAAK,GAAE,OAAOotD,GAAI,EAACgvD,IAAG,IAAK,GAAE,OAAO,IAAI1mE,GAAG11C,EAAE,GAAE,EAAG,IAAI,EAAE,QAAQ,OAAO,IAAImtD,GAAGntD,CAAC,CAAE,CAAC,CACrH,SAAS4/K,GAAG5/K,EAAE,CAAM,OAAL8mC,GAAI,EAAQ9mC,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOotD,GAAE,EAAGgvD,IAAG,IAAK,GAAE,OAAO,IAAI1mE,GAAGmqI,IAAG,IAAI56H,GAAIjlD,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAO,IAAIgwC,IAAGhwC,CAAC,CAAE,CAAC,CACrH,SAAS6kF,GAAGpxD,EAAE5zB,EAAE,CAAC21C,GAAG/hB,CAAC,EAAE,GAAG,CAAC,OAAOA,EAAE,GAAG5zB,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO,KAAU,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CACnH,SAASm+I,IAAG1qH,EAAE5zB,EAAE,CAAC21C,GAAG/hB,CAAC,EAAE,GAAG,CAAC,OAAOA,EAAE,GAAG5zB,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO,KAAU,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CACnH,SAAS8/K,GAAGrsJ,EAAE5zB,EAAE,CAAC21C,GAAG/hB,CAAC,EAAE,GAAG,CAAC,OAAOA,EAAE,GAAG5zB,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,MAAO,GAAW,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CACpH,SAAS+/K,IAAGtsJ,EAAE5zB,EAAE,CAAC21C,GAAG/hB,CAAC,EAAE,GAAG,CAAC,OAAOA,EAAE,GAAG5zB,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,MAAO,GAAW,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CACpH,SAAS67C,IAAGpoB,EAAE5zB,EAAE,CAAC21C,GAAG/hB,CAAC,EAAE,GAAG,CAAC,OAAOA,EAAE,GAAG5zB,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,MAAO,GAAW,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CACpH,SAASggL,IAAIhgL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAKG,EAAE,EAAE,EAAE,OAAO,IAAGH,EAAEqjD,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAKq5I,GAAIx5I,EAAE4zB,CAAC,IAAWmV,EAAI5oC,EAAE,EAAE,IAAIm5I,IAAI1lH,CAAC,CAAC,CAAC,CACrH,SAASwsJ,IAAIjgL,EAAE,CAAC0gE,GAAG,EAAG,IAAIjtC,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEH,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAEqkE,GAAIxkE,EAAE,EAAE,IAAIu9B,IAAI3J,CAAC,CAAC,EAAE4wC,GAAIxkE,EAAE,EAAE,IAAIw9B,IAAI5J,CAAC,CAAC,EAAEskH,GAAIl4I,EAAE,EAAE,IAAIy9B,IAAI7J,CAAC,CAAC,CAAC,CACrH,SAASysJ,IAAIlgL,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIyiB,GAAIziB,EAAE,GAAG,mBAAmB8nC,GAAI9nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAI+nC,GAAI/nC,EAAE87C,GAAG,IAAIj6B,GAAG,IAAIpd,EAAIl4B,EAAE,CAAC,CAAC,CAAC,EAASyzB,EAAE,CAAC,CACrH,SAAS0sJ,IAAIngL,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEyvB,EAAGi4B,GAAIn7E,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAMyzB,IAAGA,EAAE,IAAI+lG,GAAIlgF,GAAID,GAAI,IAAIz6B,GAAI,EAAE,EAAE,OAAO,CAAC,EAAEwqC,GAAIppD,EAAE,EAAE,EAAE,GAAGyzB,CAAC,GAASA,CAAC,CACrH,SAAS2sJ,GAAIpgL,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcqgL,GAAIrgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI8vG,GAAIrgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,WAAW4nC,GAAI5nC,EAAEzzB,EAAE,EAAE,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CACrH,SAAS6sJ,GAAItgL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,GAAGA,EAAE,GAAGyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEi0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACrH,SAAS0gL,GAAIvgL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAM,IAAJK,EAAE,EAAML,EAAEghL,GAAIxgL,EAAEyzB,CAAC,EAAE,GAAI,EAACj0B,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEK,GAAG+oH,EAAIn/D,GAAGygE,EAAK,EAACysD,GAAK,GAAE,KAAK,EAAE,EAAE,OAAO92K,CAAC,CACrH,SAASkpH,GAAI/oH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAM,IAAJoqD,EAAE,EAAMpqD,EAAEi6J,GAAIt5J,EAAE,CAAC,EAAEX,EAAE,GAAGA,EAAE,EAAE,IAAIG,EAAE0zC,EAAImnC,EAAGu2D,GAAIvxI,CAAC,CAAC,CAAC,EAAK,EAAAG,EAAEK,KAAcL,GAAGi0B,GAAG,EAAEg2B,EAAE,OAAOA,CAAC,CACrH,SAASg3H,IAAIzgL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIkuE,GAAI33H,EAAE,EAAE,EAAE,GAAG,MAAMR,EAAEi0B,EAAE,EAAEj0B,IAAKi9G,GAAG,EAAGikE,KAAMC,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,EAAkB5pD,CAAC,CACrH,SAAS+gL,IAAI5gL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIkuE,GAAI33H,EAAE,EAAE,EAAE,IAAIR,EAAEi0B,EAAE,EAAEj0B,IAAKi9G,GAAG,EAAGikE,KAAM,KAAKC,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,EAAkB5pD,CAAC,CACrH,SAASghL,GAAI7gL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEQ,EAAE,CAAC,EAAGH,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACrH,SAASihL,GAAI9gL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGzvB,EAAE,GAAG,EAAEg2B,EAAE5pD,EAAE,GAAI,EAAC,CAAC4pD,GAAG5pD,EAAE,GAAG4pD,EAAE8hB,EAAG93C,EAAE,EAAE,EAAE,IAAIqlC,IAAI94D,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAE,IAAIm0G,IAAI5nI,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,CAAC,EAASg2B,CAAC,CACrH,SAASs3H,GAAI/gL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEzpD,EAAE,GAAGA,EAAE,EAAE,CAAC,EAAEypD,EAAEzpD,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAE4zB,GAAGzzB,EAAE,GAAGo0I,GAAIp0I,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,CAAC,EAAEoyC,GAAG7lE,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAE,EAAEzpD,EAAE,EAAEA,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAEG,EAAE,GAAE,CAAE,CACrH,SAASghL,IAAIhhL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG4zB,EAAE,IAAG5zB,EAAE4zB,EAAE,EAAE,EAAE,OAAQzzB,EAAE,EAAqBw7D,GAAIx7D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAIwwE,GAAIxwE,EAAE,CAAC,EAAgBqoI,IAAIroI,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,EAAE,OAAO5zB,CAAC,GAASG,CAAC,CACtH,SAASihL,IAAIjhL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAkC,GAAhCo0B,EAAE,GAAGzzB,EAAE,CAAC,EAAEX,EAAE6jD,EAAGoqB,GAAIttE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAKX,GAAG,KAAM,IAAIQ,EAAER,EAAEoqD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAG,KAAK,GAAI,CAAE,CACrH,SAAS0oD,GAAInyG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAY,OAAVA,EAAE,IAAI6G,GAAQ1G,EAAE,EAAE,GAAGH,CAAC,GAAwCkxC,GAAG,EAAG,IAAID,GAAIhgB,GAAIwmH,IAAIt3I,EAAEH,EAAE,EAAE4zB,CAAC,CAAC,CAAC,IAApE8qB,GAAIv+C,CAAC,EAAS+wC,GAAK,EAACA,GAAG,EAAG88B,GAA2C,CACtH,SAASilG,GAAI9yK,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,IAAK,GAAE,OAAO+sJ,GAAIxgL,EAAEyzB,CAAC,EAAE,IAAK,GAAE,IAAK,GAAE,OAAOg2I,GAAG+W,GAAIxgL,EAAEyzB,CAAC,CAAC,CAAE,CAAC,OAAO42C,GAAK,EAACA,GAAG,EAAG+b,EAAG,CACrH,SAASliC,GAAGlkD,EAAEyzB,EAAE,CAAC,OAAO2mC,GAAGp6D,CAAC,EAAEqiF,GAAIriF,EAAEyzB,CAAC,EAAEymC,GAAGl6D,CAAC,EAAEoiF,IAAIpiF,EAAEyzB,CAAC,EAAEumC,GAAGh6D,CAAC,GAAG8wB,GAAI9wB,CAAC,EAAE+5D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,GAAG88E,GAAGvwG,CAAC,EAAEA,EAAE,GAAGyzB,CAAC,EAAEg7E,GAAGzuG,CAAC,EAAE0+D,IAAG1+D,EAAEyzB,CAAC,EAAEwyG,GAAGjmI,EAAEyzB,CAAC,CAAC,CACtH,SAASytJ,IAAIlhL,EAAE,CAAC,OAAQA,EAAQA,EAAE,EAAE,EAAMA,GAAGmhL,GAAI9L,GAAGr1K,GAAG6kH,GAAGnd,GAAG1nG,GAAGohL,GAAGC,GAAGrhL,GAAG+tJ,GAAGqnB,GAAGp1K,GAAGshL,GAAG33E,GAAG3pG,GAAGuhL,GAAIz3E,GAAG9pG,GAAGwhL,GAAGh4E,GAAGS,GAAGjqG,EAApF,IAAqF,CAC/G,SAASyhL,IAAIzhL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAIi0B,GAAG,GAAGg2B,GAAG,IAAUh2B,GAAG,EAAGj0B,EAAEiqD,CAAC,EAAEi4H,GAAIliL,EAAEK,EAAE4pD,EAAEzpD,EAAE,CAAC,CAAC,EAAGypD,GAAG,EAAGjqD,EAAEi0B,CAAC,EAAEiuJ,GAAIliL,EAAEQ,EAAEyzB,EAAE5zB,EAAE,CAAC,CAAC,EAAG8hL,IAAI3hL,EAAEH,EAAEL,EAAEi0B,EAAEg2B,CAAC,EAAC,CACpH,SAASm4H,IAAI5hL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAKG,EAAE,EAAE,QAAQ,IAAUH,EAAEqjD,EAAGimF,GAAInpI,EAAEikE,EAAGopD,GAAGC,GAAI,GAAGttH,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE6gE,GAAIhhE,EAAE,IAAI8O,GAAG,EAAEkzK,IAAIhiL,EAAE4zB,CAAC,EAAC,CACtH,SAASquJ,IAAI9hL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAKG,EAAE,EAAE,QAAQ,IAAUH,EAAEqjD,EAAGimF,GAAInpI,EAAEikE,EAAGopD,GAAGC,GAAI,GAAGttH,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE6gE,GAAIhhE,EAAE,IAAI+O,GAAG,EAAEizK,IAAIhiL,EAAE4zB,CAAC,EAAC,CACtH,SAASsuJ,GAAI/hL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAOh2B,EAAC,CAAE,IAAK,GAAE,MAAO,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,CAAE,CAAC,OAAOgiL,GAAIhiL,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACtH,SAASsyC,IAAK,CAACA,GAAIr3F,EAAI21I,GAAI,IAAI9kF,GAAI6mG,GAAI,CAAC,EAAE76F,GAAI,IAAIhM,GAAIk+D,GAAI,CAAC,EAAEnyD,GAAI,IAAI/L,GAAIi+D,GAAI,CAAC,EAAE9xD,GAAI,IAAInM,GAAIyhE,GAAI,CAAC,EAAEv1D,GAAI,IAAIlM,GAAI,KAAK,CAAC,CAAC,CACtH,SAAS+0B,IAAK,CAACA,GAAI5lF,EAAIi4H,GAAI,IAAIntE,GAAIg+F,GAAI,CAAC,EAAE5wB,IAAI,IAAIptE,GAAI,0BAA0B,CAAC,EAAEqtE,GAAI,IAAIrtE,GAAI,oBAAoB,CAAC,CAAC,CACrH,SAASkrE,IAAI16H,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,GAAGyzB,EAAE5zB,EAAG,MAAM6lC,EAAI,IAAIwM,GAAIyxG,GAAI3jJ,EAAE4jJ,IAAInwH,EAAE,WAAW5zB,CAAC,CAAC,EAAE,GAAGG,EAAEyzB,EAAG,MAAMiS,EAAI,IAAImN,GAAI8wG,GAAI3jJ,EAAEk7K,IAAIznJ,CAAC,CAAC,CAAE,CACtH,SAASwuJ,GAAIjiL,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAG4zB,EAAE,EAAGqrF,GAAI9+G,EAAEH,CAAC,MAAM,CAAC,GAAG,CAACA,EAAE,GAAE,EAAI,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAI71J,EAAE,GAAE,EAAGqiL,EAAG,CAAC,EAAEh/H,EAAGrjD,EAAE,EAAE,EAAE,GAAE,EAAG,GAAGG,EAAEA,EAAE,GAAI,EAACyzB,CAAC,CAAC,CAAC,CACtH,SAAS0uJ,IAAIniL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAM,IAAJA,EAAEC,EAAQR,EAAE0tH,GAAGntH,GAAG6pD,GAAGh2B,EAAE5zB,GAAG8kK,EAAE,GAAG3kK,EAAEyzB,CAAC,EAAEzzB,EAAEJ,CAAC,CAAC,GAAG,EAAEimE,GAAGrmE,EAAEH,IAAIW,EAAEyzB,GAAG,CAAC,EAAEoyC,GAAGrmE,EAAEH,IAAIW,EAAEJ,GAAG,CAAC,CAAE,CACnH,SAASwiL,IAAIpiL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,KAAK,EAAE,IAAIwlC,EAAI,KAAK,GAAGmtD,GAAK,EAACwtC,IAAK52F,EAAI,KAAK,EAAE5oC,CAAC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAEH,CAAC,CACtH,SAASgjL,IAAIriL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAI0S,GAAIn8D,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAqB,GAAhB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAKsQ,EAAGtmC,CAAC,IAAIsmC,EAAGl6D,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACtH,SAASyiL,IAAItiL,EAAE,CAACqoF,GAAK,EAAC,IAAI50D,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAEy9D,KAAM7T,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAU,GAAPh2B,EAAE5zB,EAAE4pD,CAAC,EAAKyW,GAAIzsC,EAAE,EAAEzzB,EAAE,CAAC,GAAG,GAAI,OAAOyzB,EAAG,OAAO8uJ,EAAG,CACtH,SAASz9E,IAAI9kG,EAAE,CAAC,OAAGA,GAAG,IAAIA,GAAG,GAAWA,EAAE,GAAG,GAAMA,GAAG,IAAIA,GAAG,IAAYA,EAAE,GAAG,GAAMA,GAAG,IAAIA,GAAG,GAAWA,EAAE,GAAU,CAAC,CACtH,SAASwiL,IAAIxiL,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcqgL,GAAIrgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI8vG,GAAIrgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,aAAa4nC,GAAI5nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CACtH,SAASimI,IAAI15J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEQ,EAAE,CAAC,EAAGH,EAAQ4iL,GAAI5iL,EAAE4pD,CAAC,EAAZ5pD,EAAE4pD,GAAmB5pD,CAAC,CACtH,SAASg9J,GAAI78J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG,MAAM,EAAEyzB,EAAGzzB,EAAE,IAAI,IAAMA,EAAE,IAAI,KAAOA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtH,SAAS80G,GAAIvoI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG,MAAM,EAAEyzB,EAAGzzB,EAAE,IAAI,IAAMA,EAAE,IAAI,KAAOA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtH,SAAS4uF,GAAIriH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG,MAAM,EAAEyzB,EAAGzzB,EAAE,IAAI,IAAMA,EAAE,IAAI,KAAOA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtH,SAASmpI,GAAI58J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG,MAAM,EAAEyzB,EAAGzzB,EAAE,IAAI,IAAMA,EAAE,IAAI,KAAOA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtH,SAAS+0G,GAAIxoI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG,MAAM,EAAEyzB,EAAGzzB,EAAE,IAAI,IAAMA,EAAE,IAAI,KAAOA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,CAAC,CAAC,CACtH,SAASivJ,GAAI1iL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,GAAG,IAAMA,EAAE,IAAGH,EAAEG,EAAE,EAAE,KAAKA,EAAE,EAAGH,EAAoBG,EAAE,EAAE,GAAGA,EAAE,EAAE,GAAI,EAACH,CAAC,EAAnC0jJ,GAAIvjJ,EAAE,EAAE,GAAE,EAAGA,EAAE,CAAC,GAA4BA,EAAE,EAAE,GAAGA,EAAE,EAAEyzB,CAAC,CAAC,CACtH,SAAS85G,EAAIvtI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAGG,EAAE,MAAMA,EAAE,KAAKyzB,EAAEzzB,EAAE,IAAIH,GAAG2nG,IAAK,EAACC,KAAKh0E,CAAC,EAAE,CAAC5zB,IAAIA,EAAE4nG,IAAIh0E,CAAC,EAAE,IAAI4D,GAAIr3B,CAAC,GAAUH,GAAS,IAAIw3B,GAAIr3B,CAAC,CAAC,CACvH,SAAS2iL,GAAI3iL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAGG,EAAE,MAAMA,EAAE,KAAKyzB,EAAEzzB,EAAE,IAAIH,GAAG+pG,IAAK,EAACC,KAAKp2E,CAAC,EAAE,CAAC5zB,IAAIA,EAAEgqG,IAAIp2E,CAAC,EAAE,IAAI8D,GAAIv3B,CAAC,GAAUH,GAAS,IAAI03B,GAAIv3B,CAAC,CAAC,CACvH,SAAS4iL,GAAI5iL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAQ,OAAN4zB,EAAEzzB,EAAE,EAAKyzB,IAAIk3D,GAAK,EAACi0D,KAAM/+I,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG6iD,GAAK,EAAC,EAAE,EAASltK,IAAIi/F,EAAG,EAAG+5C,KAAMh5I,GAAGowI,IAAW,EAAK,CACvH,SAASyjC,IAAI1zK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAqB,OAAnBA,GAAGG,EAAEurJ,GAAI/qJ,EAAE,EAAEyzB,CAAC,EAAEj0B,GAAMH,IAAGoqD,EAAEvG,EAAGy1B,GAAIC,GAAI54E,EAAEX,CAAC,EAAE,EAAE,EAAE,EAAE,EAAKoqD,GAAUgqH,GAAIzzK,EAAEypD,EAAEh2B,EAAE5zB,CAAC,EAAU,IAAI,CACvH,SAASi0K,GAAI9zK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAqB,OAAnBA,GAAGG,EAAEurJ,GAAI/qJ,EAAE,EAAEyzB,CAAC,EAAEj0B,GAAMH,IAAGoqD,EAAEvG,EAAGy1B,GAAIC,GAAI54E,EAAEX,CAAC,EAAE,EAAE,EAAE,EAAE,EAAKoqD,GAAUoqH,GAAI7zK,EAAEypD,EAAEh2B,EAAE5zB,CAAC,EAAU,IAAI,CACvH,SAASgjL,IAAI7iL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAI0S,GAAIn8D,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAsB,GAAjB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAKsQ,EAAGtmC,CAAC,IAAIsmC,EAAGl6D,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACvH,SAASq5E,GAAIl5E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAW,GAATA,EAAEzpD,EAAE,GAAI,EAAIyzB,EAAEg2B,EAAE,MAAM/jB,EAAI,IAAIs4B,GAAIvqC,EAAEg2B,CAAC,CAAC,EAAE,GAAGzpD,EAAE,GAAI,GAAEA,EAAE,GAAGH,CAAC,EAAG,MAAM6lC,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,EAAE9iL,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CACvH,SAASkjL,IAAI/iL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAc,GAAZA,EAAEo6J,GAAGj6J,EAAE,EAAEyzB,CAAC,EAAK5zB,GAAG,KAAM,MAAM6lC,EAAI,IAAIsO,GAAI,8BAA8B,CAAC,EAAE,OAAAkyE,GAAIzyF,EAAE5zB,CAAC,EAAS,IAAI,CACvH,SAASmjL,IAAIhjL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAa,GAAXA,EAAE41J,GAAIz1J,EAAEyzB,CAAC,EAAK83C,EAAG1rE,EAAE,GAAG,EAAG,OAAOqjD,EAAGrjD,EAAE,EAAE,EAAE,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,4BAA4B,CAAC,CAAC,CACvH,SAASwvJ,IAAIjjL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAA6D,IAA3DA,EAAE+rE,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,GAAQ,IAAI1b,GAAIzqC,EAAEzzB,CAAC,EAAE,IAAIm+D,GAAI1qC,EAAEzzB,CAAC,EAAMypD,EAAE,EAAEA,EAAE5pD,EAAE,EAAE4pD,EAAGy5F,GAAI1jJ,CAAC,EAAE,OAAOA,CAAC,CACvH,SAAS0jL,IAAIljL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiB,IAAfA,EAAE,EAAE5pD,EAAEG,EAAE,OAAWyzB,EAAE,EAAEA,EAAE5zB,EAAE4zB,IAAKzzB,EAAEyzB,CAAC,GAAG,IAAIzzB,EAAEyzB,CAAC,GAAG,IAAIzzB,EAAEyzB,CAAC,GAAG,IAAIzzB,EAAEyzB,CAAC,GAAG,IAAIzzB,EAAEypD,GAAG,EAAEzpD,EAAEyzB,CAAC,GAAG,OAAOg2B,CAAC,CACvH,SAAS05H,IAAInjL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAIoR,EAAQ4kB,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEk+D,GAAIl0F,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,EAAE,CAAC,EAAE,OAAO4zB,CAAC,CACxH,SAAS2vJ,IAAIpjL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA8B,IAA5Bh2B,EAAEyvB,EAAG0lE,EAAI5oH,GAAGqjL,GAAG,EAAGC,MAAM,EAAE,EAAM75H,EAAEh2B,EAAE,KAAKg2B,EAAE,MAAO5pD,EAAEqjD,EAAGuG,EAAE,KAAK,GAAG,EAAEo8C,GAAIhmG,EAAE,EAAE,EAAEA,CAAC,EAAEgmG,GAAIhmG,EAAE,EAAE,EAAEA,CAAC,CAAE,CACvH,SAAS0jL,IAAIvjL,EAAE,CAAC,OAAOkjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACs5D,GAAG,EAAG,GAAG,EAAE,EAAC,CAAE,IAAK,GAAE1gG,EAAI9iF,EAAEwjL,IAAKhzF,GAAG,EAAGwuC,GAAK,EAAC,MAAM,IAAK,GAAEl8C,EAAI9iF,EAAEwjL,IAAKhzF,GAAK,EAACuuC,GAAG,CAAG,CAAC,CACxH,SAAS44C,IAAI33K,EAAE,CAAC,IAAIyzB,EAAKzzB,EAAE,IAAGyzB,EAAEzzB,EAAE,EAAE,GAAI,EAACA,EAAE,EAAEA,EAAE,EAAEyjL,GAAIhwJ,EAAE,EAAEzzB,EAAE,EAAE,EAAI,EAAEyjL,GAAIhwJ,EAAE,EAAEzzB,EAAE,EAAE,EAAK,EAAE8iF,EAAI9iF,EAAE,GAAGstB,GAAK,EAAC6oI,KAAMp4D,GAAK,EAACza,GAAG,EAAG,CACvH,SAASogG,IAAI1jL,EAAE,CAAC,IAAIyzB,EAAE,GAAG,CAACzzB,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,kCAAkC,CAAC,EAAErf,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAGyzB,EAAEw1F,IAAIjpH,EAAEyzB,CAAC,EAAEu1F,IAAIhpH,EAAEyzB,CAAC,CAAC,CACxH,SAASgiF,IAAIz1G,EAAE,CAAC,IAAIyzB,EAA4B,OAA1BA,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAKyzB,GAAG,KAAa,MAAKzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,EAAE6lE,GAAG7lE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAASyzB,EAAC,CACxH,SAASkwJ,IAAI3jL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEG,EAAE,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGH,EAAE,GAAI,GAAoB,GAAjB4zB,EAAEyvB,EAAGrjD,EAAE,GAAE,EAAG,GAAG,EAAK4zB,EAAE,GAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE,OAAU,OAAOA,EAAG,OAAO,IAAI,CACxH,SAASmwJ,GAAI5jL,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,OAAOyzB,EAAE,IAAK,GAAE,IAAK,GAAE,OAAO,IAAI2tC,GAAI3tC,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,QAAQ,OAAO,IAAK,CAAC,CACxH,SAASowJ,IAAI7jL,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOuhE,GAAI,IAAK,GAAE,OAAOD,GAAI,IAAK,GAAE,OAAOI,GAAI,IAAK,GAAE,OAAOD,GAAI,QAAQ,OAAO44E,EAAI,CAAC,CACxH,SAASypC,GAAI9jL,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOijG,GAAI,IAAK,GAAE,OAAO41C,GAAI,IAAK,GAAE,OAAOz1C,GAAI,IAAK,GAAE,OAAO6sC,GAAI,QAAQ,OAAO2I,EAAI,CAAC,CACxH,SAASmrC,GAAI/jL,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOiwI,GAAI,IAAK,GAAE,OAAOhtC,GAAI,IAAK,GAAE,OAAO41C,GAAI,IAAK,GAAE,OAAOz1C,GAAI,QAAQ,OAAOw1C,EAAI,CAAC,CACxH,SAASsgB,GAAIl5J,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOojG,GAAI,IAAK,GAAE,OAAO6sC,GAAI,IAAK,GAAE,OAAOhtC,GAAI,IAAK,GAAE,OAAO41C,GAAI,QAAQ,OAAOD,EAAI,CAAC,CACxH,SAASr/B,IAAIv5G,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIwsC,IAAI,IAAK,GAAE,OAAO,IAAIH,IAAI,IAAK,GAAE,OAAO,IAAIE,IAAI,QAAQ,MAAM7G,EAAI,IAAIkC,EAAG,CAAE,CAAC,CACxH,SAASg3B,GAAI5+D,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAEyzB,EAAU,GAAMzzB,EAAEyzB,EAAU,EAAKzzB,GAAGyzB,EAAUzzB,GAAG,EAAE4+D,GAAI,EAAE5+D,EAAE,EAAEyzB,CAAC,EAAE,EAAS,MAAMzzB,CAAC,EAAE,MAAMyzB,CAAC,EAAE,EAAE,EAAE,EAAE,CACxH,SAASuwJ,IAAIhkL,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAE,kBAAkB,CAAC,EAAE4xB,GAAIs+D,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI2N,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAEg+G,GAAIp4F,CAAC,CAAC,CACxH,SAASwwJ,GAAIjkL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAGQ,EAAE,GAAE,GAAIR,EAAEQ,EAAE,GAAE,EAAGypD,EAAEy6H,GAAIlkL,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,GAAGA,EAAE,GAAG,EAAEutI,EAAI1tI,CAAC,EAAE4pD,EAAEh2B,EAAEj0B,CAAC,CAAC,EAASiqD,GAAcy6H,GAAIlkL,EAAEyzB,EAAE5zB,CAAC,CAAE,CACxH,SAASupC,GAAIppC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAKQ,EAAE,GAAG,MAAM,EAAEA,EAAE,EAAE,EAAEA,EAAE,IAAOR,EAAEi0B,EAAE,GAAI,EAAC5zB,EAAE4zB,EAAE,KAAKg2B,GAAG5pD,EAAEq9E,IAAKl9E,EAAE,EAAE,OAAOshJ,IAAIthJ,EAAEypD,EAAE06H,IAAInkL,EAAEypD,EAAE5pD,EAAEL,CAAC,CAAC,EAAE,CACxH,SAAS4kL,GAAIpkL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAGs9J,KAAM,EAAE7pI,EAAGzzB,EAAE,IAAIs9J,GAAMt9J,EAAE,IAAI,MAAQA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACxH,SAAS4wJ,GAAIrkL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG+6H,KAAM,EAAEtnG,EAAGzzB,EAAE,IAAI+6H,GAAM/6H,EAAE,IAAI,MAAQA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACxH,SAAS6wJ,GAAItkL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAGukL,KAAM,EAAE9wJ,EAAGzzB,EAAE,IAAIukL,GAAMvkL,EAAE,IAAI,MAAQA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACxH,SAAS+wJ,GAAIxkL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAGykL,KAAM,EAAEhxJ,EAAGzzB,EAAE,IAAIykL,GAAMzkL,EAAE,IAAI,MAAQA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACxH,SAASixJ,IAAI1kL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAA0D,OAAxDA,EAAE++D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAK5zB,GAAG,IAAYA,EAAE++D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAK5zB,GAAG,GAAUA,EAAS++D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,CACzH,SAASkxJ,IAAI3kL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAe,GAAbA,EAAEqzG,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAK5zB,GAAG,KAAM,MAAM6lC,EAAI,IAAIsO,GAAI,8BAA8B,CAAC,EAAE,OAAAkyE,GAAIzyF,EAAE5zB,CAAC,EAAS,IAAI,CACxH,SAAS+kL,IAAI5kL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEglL,IAAI/rB,GAAI94J,CAAC,CAAC,EAAE,GAAI,EAACH,EAAE,GAAE,GAAkB,GAAb4zB,EAAE8hB,GAAG11C,EAAE,GAAI,CAAA,EAAKilL,GAAI9kL,EAAEyzB,CAAC,EAAG,OAAOsjH,KAAKvsF,IAAG,EAAGC,KAAKh3B,CAAC,EAAG,OAAO,IAAI,CACxH,SAASsxJ,IAAI/kL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAsC,IAApCA,EAAE06C,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAEp0B,EAAE,EAAEQ,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMR,EAAE,EAAEA,EAAEQ,EAAE,EAAE,EAAER,EAAGiqD,EAAE5pD,EAAEL,CAAC,EAAEutH,EAAE,GAAGtjE,EAAE,GAAE,CAAE,GAAG,EAAEpqD,EAAE,OAAOA,CAAC,CACxH,SAAS2lL,IAAIhlL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAEvG,EAAGzvB,EAAE,GAAGzzB,EAAE,CAAC,EAAE,EAAE,EAAER,EAAE0jD,EAAGrjD,EAAE,GAAGG,EAAE,CAAC,EAAE,EAAE,EAASypD,GAAG,MAAMjqD,GAAG,KAAKyrG,GAAIxhD,EAAEjqD,CAAC,EAAEiqD,GAAG,KAAK,GAAGjqD,GAAG,KAAK,EAAE,CAAC,CACzH,SAASylL,IAAIjlL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,GAAGQ,EAAE,EAAGklL,GAAIllL,EAAE,EAAEyzB,EAAE5zB,CAAC,MAAO,KAAIL,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEylL,IAAIx7H,EAAEh2B,EAAE5zB,CAAC,CAAG,CACzH,SAASslL,GAAInlL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEopB,GAAI7yE,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAEsrH,IAAIjoE,EAAGrjD,EAAE,EAAE,GAAG,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,CAAC,CAAE,CACzH,SAASulL,IAAGplL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA2B,IAAzBA,EAAEw7G,GAAI,IAAInlE,GAAI,EAAE,EAAEziB,EAAE,GAAWzzB,EAAE,GAAI,GAAEyzB,IAAI5zB,EAAE,GAAG41C,IAAOhiB,EAAE,GAAM8nC,GAAI17D,EAAEG,EAAE,GAAI,CAAA,EAAE,OAAQH,EAAE,GAAG,IAAIA,GAAG,CAAC,CACzH,SAASwlL,GAAIrlL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG2zG,KAAM,EAAElgF,EAAGzzB,EAAE,IAAI2zG,GAAM3zG,EAAE,IAAI,OAASA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACzH,SAASwxI,GAAIjlK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAGqwG,KAAM,EAAE58E,EAAGzzB,EAAE,IAAIqwG,GAAMrwG,EAAE,IAAI,OAASA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACzH,SAASmmG,GAAI55H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAGqwG,KAAM,EAAE58E,EAAGzzB,EAAE,IAAIqwG,GAAMrwG,EAAE,IAAI,OAASA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACzH,SAAS6xJ,GAAItlL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,GAAGG,EAAE,GAAG45E,KAAM,EAAEnmD,EAAGzzB,EAAE,IAAI45E,GAAM55E,EAAE,IAAI,OAASA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIu/I,GAAIv/I,EAAE,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,CAAC,CACzH,SAAS8xJ,GAAIvlL,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEwwC,EAAG4rF,GAAGC,GAAI,GAAG,EAAE,GAAG,CAAC,EAAE9vJ,GAAG45E,GAAInmD,EAAE,CAAC,GAAGzzB,GAAG,IAAIwlL,GAAIzgF,GAAItxE,EAAE,CAAC,GAAGzzB,EAAE,MAAM,MAAM+kG,GAAWz5B,GAAI73C,EAAE,EAAEA,EAAE,MAAM,CAAC,CACzH,SAASgyJ,GAAIzlL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA+B,OAA7BA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGo4J,GAAK,EAAC,GAAG,EAAK7lL,IAAIk8F,GAAK,EAACs+C,KAAM5mH,EAAEyf,EAAImnC,EAAGuuC,EAAI5oH,EAAE2lL,EAAG,CAAC,CAAC,EAASlyJ,GAAG,EAAE8tC,GAAIG,IAAW7hE,CAAC,CAC1H,SAAS+lL,IAAI5lL,EAAE,CAAC,OAAOkjD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACo0I,GAAK,EAAC,GAAG,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIxqJ,IAAI,IAAK,GAAE,OAAO,IAAIK,IAAI,QAAQ,OAAO,IAAIN,GAAI,CAAC,CACzH,SAASunG,GAAIx+G,EAAE,CAAC,GAAGA,EAAE,EAAGw+G,GAAIx+G,EAAE,CAAC,UAAUA,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,sDAAsD,CAAC,CAAE,CACzH,SAAS+yI,GAAI7lL,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcqgL,GAAIrgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI8vG,GAAIrgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB4nC,GAAI5nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CAC1H,SAAS+vF,IAAIxjH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,GAAGvN,GAAK,EAAC18C,EAAE,IAAI6hB,GAAI7hB,GAAGgjE,GAAI/Y,EAAEh2B,CAAC,EAAEgvC,GAAIhZ,EAAE5pD,CAAC,EAAIG,GAAGkmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAI83G,GAAG9lL,EAAE,CAAC,GAAGA,EAAE,GAAGypD,CAAC,EAASA,CAAC,CAC1H,SAASs8H,GAAI/lL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,OAAAyxB,GAAI24B,CAAC,EAAE34B,GAAIjxB,CAAC,EAAEL,EAAEQ,EAAE,GAAGyzB,CAAC,EAAEp0B,EAAEG,GAAG,KAAKK,EAAEylD,IAAIpC,EAAG1jD,EAAE,EAAE,EAAE0jD,EAAGrjD,EAAE,EAAE,CAAC,EAAER,GAAG,KAAKW,EAAE,GAAGyzB,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAEp0B,CAAC,EAASA,CAAC,CAC3H,SAASs8E,GAAI37E,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAAK,GAAG4zB,EAAEyvB,EAAGxH,IAAK+N,EAAEzpD,EAAE,GAAGR,EAAEiqD,EAAE,EAAEjqD,GAAGwmL,GAAGv8H,EAAEjqD,EAAG,EAAC,CAAC,EAAE,IAAIwlF,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG85E,GAAI1tG,EAAEG,CAAC,EAASH,CAAC,CAC1H,SAASomL,IAAIjmL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEQ,EAAE,EAAE,KAAK,GAAI,EAACR,EAAE,GAAI,GAAmB,GAAhBiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAK0uK,GAAGruK,EAAEqjD,EAAGo4B,GAAI7nD,EAAEg2B,EAAE,CAAC,EAAE,EAAE,CAAC,EAAG,OAAOA,EAAG,OAAO,IAAI,CAC1H,SAAS+lB,IAAG/7C,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAACw0K,IAAGvgJ,EAAE5zB,EAAE4pD,CAAC,CAAC,OAAOzpD,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwzG,GAAI15I,CAAC,CAAC,GAAakmC,EAAI1lC,CAAC,CAAC,CAAC,OAAOH,CAAC,CAC3H,SAASqmL,GAAIlmL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK42I,GAAIxqK,GAAGA,EAAEgyE,IAAYhyE,EAAU8iG,GAAIyrE,IAAGzuG,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CAC3H,SAASs3E,GAAI/qG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK42I,GAAIxqK,GAAGA,EAAEgyE,IAAYhyE,EAAU8iG,GAAIwrE,IAAGxuG,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CAC3H,SAASsiI,GAAI/1J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK42I,GAAIxqK,GAAGA,EAAEgyE,IAAYhyE,EAAU8iG,GAAIwjF,IAAGxmH,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,CAAC,CAAC,CAAC,CAC3H,SAAS+sJ,GAAIxgL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAG,EAAE,GAAGomL,GAAIpmL,CAAC,EAAEH,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAU5zB,EAAoB,IAAI46H,GAAIz6H,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,GAAtDwqE,GAAK,EAACA,GAAG,EAAG+b,GAA2C,CAC1H,SAASqxC,GAAIz3H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEzpD,EAAE,EAAE,IAAIyzB,CAAC,EAAEzzB,EAAE,EAAE,IAAIyzB,EAAE5zB,IAAI,OAAU,KAAKA,CAAC,EAAK4pD,IAAI,QAAW,EAAEzpD,EAAE,EAAE22G,GAAI32G,EAAE,CAAC,GAAO,EAAEA,EAAE,EAASypD,CAAC,CAC3H,SAAS48H,IAAIrmL,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAEopG,GAAGk4E,GAAG,CAAC92G,EAAI87G,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAACzmL,EAAE2/D,GAAGz8D,EAAK,KAAK,KAAK0wB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEyzB,EAAE,GAAG,EAAEzzB,EAAE,EAAEH,EAAE,GAAG,CAAC,CACrH,SAAS0mL,IAAK,CAAC/uC,GAAK,EAAC,IAAIx3I,EAAEyzB,EAAE5zB,EAAEA,EAAE2mL,MAAM,KAAK,MAAMxmL,EAAEw/D,GAAGz8D,EAAK,KAAK,MAAMlD,EAAE4mL,EAAG,CAAC,EAAE3rD,GAAIrnG,EAAE+rC,GAAG3/D,EAAEG,EAAE0mL,GAAG,EAAE,KAAK,EAAE1mL,EAAE,KAAK,KAAK,EAAEyzB,EAAEy4C,EAAG,CAC3H,SAASy6G,GAAI3mL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAIoR,EAAQ4kB,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAInV,EAAE5zB,EAAE,CAAC,EAAE,OAAO21C,GAAG/hB,CAAC,EAAE,IAAIkqC,GAAGlqC,CAAC,CAAC,CAC3H,SAASmzJ,GAAI5mL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAIoR,EAAQ4kB,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAInV,EAAE5zB,EAAE,CAAC,EAAE,OAAO21C,GAAG/hB,CAAC,EAAE,IAAIkqC,GAAGlqC,CAAC,CAAC,CAC3H,SAASozJ,GAAI7mL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAY,IAAVh2B,EAAE,IAAIoR,EAAQ4kB,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAInV,EAAE5zB,EAAE,CAAC,EAAE,OAAO21C,GAAG/hB,CAAC,EAAE,IAAIkqC,GAAGlqC,CAAC,CAAC,CAC3H,SAASqzJ,IAAI9mL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAEknL,IAAIjuB,GAAIvhC,GAAIv3H,CAAC,CAAC,CAAC,EAAE,GAAE,EAAGH,EAAE,GAAE,GAAkB,GAAb4zB,EAAE8hB,GAAG11C,EAAE,GAAE,CAAE,EAAKilL,GAAI9kL,EAAEyzB,CAAC,EAAE,OAAOujH,KAAKtsF,IAAK,EAACC,KAAKl3B,CAAC,EAAE,OAAO,IAAI,CAC3H,SAASuzJ,IAAGhnL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,EAAE4pD,EAAEzpD,EAAE,OAAOH,EAAE4pD,EAAE5pD,IAAK,GAAGG,EAAEH,CAAC,GAAG,KAAM,MAAM6lC,EAAI,IAAIsN,GAAI,YAAYnzC,CAAC,CAAC,EAAG,OAAA4zB,EAAEzzB,EAAS,IAAI0zC,GAAIjgB,CAAC,CAAC,CAC5H,SAASwzJ,IAAIjnL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAkB,GAAhBA,EAAE41J,GAAIz1J,EAAE,GAAE,EAAGyzB,CAAC,EAAK83C,EAAG1rE,EAAE,EAAE,EAAG,OAAOqjD,EAAGrjD,EAAE,EAAE,EAAE,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,4BAA4B,CAAC,CAAC,CAC3H,SAASkW,IAAI3pC,EAAE,CAAC,IAAIyzB,EAAW,OAATA,EAAEyzJ,GAAIlnL,CAAC,EAAKyzB,EAAE,qBAA8B0jF,GAAY1jF,EAAE,sBAA+B4jF,GAAW5jF,CAAC,CAC3H,SAAS0zJ,IAAInnL,EAAE,CAAC,OAAAA,GAAGA,GAAG,EAAE,WAAWA,GAAGA,GAAG,EAAE,YAAYA,EAAE,WAAWA,GAAGA,GAAG,GAAGA,EAAE,UAAUA,GAAGA,GAAG,EAAEA,GAAGA,GAAG,GAAUA,EAAE,EAAE,CACrH,SAASonL,IAAGpnL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA4B,IAA1Bi0B,EAAE,IAAIgqD,IAAGz9E,EAAE,GAAE,EAAG,IAAI,EAAER,EAAE,EAAMiqD,EAAEiiG,GAAG1rJ,EAAE,GAAE,EAAG,GAAE,CAAE,EAAEypD,EAAE,GAAI,GAAG5pD,EAAE4pD,EAAE,KAAKouE,IAAGpkG,EAAE5zB,EAAE0tI,EAAI/tI,GAAG,CAAC,EAAE,OAAO6nL,IAAG5zJ,EAAE,CAAC,CAAC,CAC5H,SAAS6zJ,IAAItnL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAIulC,GAAQ0kB,EAAEh2B,EAAE,GAAI,EAAC,GAAE,EAAGg2B,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAE+P,GAAIh6D,EAAEK,EAAE,GAAI,EAAC0qK,IAAIvqK,EAAEkjD,EAAGrjD,EAAE,GAAE,EAAG,EAAE,CAAC,CAAC,EAAE,OAAOL,CAAC,CAC5H,SAAS+nL,GAAIvnL,EAAEyzB,EAAE,CAACzzB,EAAE,EAAE,EAAE,QAAQ,GAAG4oC,EAAI5oC,EAAE,EAAE,IAAIm1H,GAAIn1H,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAE+zJ,GAAItkI,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEyzB,CAAC,EAAEg0J,IAAIznL,EAAEyzB,CAAC,CAAC,CAC3H,SAASi0J,GAAI1nL,EAAE,CAAC,OAAGA,EAAE,GAAGA,EAAE,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAE,KAAGA,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEwjD,GAAI3nH,EAAE,EAAEA,EAAE,CAAC,EAAE2nH,GAAI3nH,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,GAASA,EAAE,CAAC,CAC5H,SAAS2nL,GAAI3nL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAM,IAAJA,EAAE,EAAMiqD,EAAEvG,EAAGzvB,EAAE,GAAGzzB,CAAC,EAAE,EAAE,EAAE,KAAKypD,EAAE,MAAO5pD,EAAEqjD,EAAGuG,EAAE,KAAK,EAAE,EAAExW,GAAImnC,GAAGwuC,EAAI/oH,GAAGqqH,EAAG,EAAG09D,GAAG,CAAE,CAAC,GAAG,EAAEpoL,EAAE,OAAOA,CAAC,CAC5H,SAASqoL,IAAI7nL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEiqD,EAAE+gF,GAAI/2G,CAAC,EAAEj0B,EAAE0zC,EAAImnC,EAAGytG,GAAIr+H,GAAGn8B,KAAMm0I,IAAK,CAAC,EAAE5hK,EAAEkD,EAAK,KAAK,IAAI,EAAEvD,EAAE,EAAE,EAAG,EAAEgwG,GAAI/7E,EAAE5zB,EAAE,CAAC,EAAE+oC,EAAI5oC,EAAE,IAAIuwD,IAAI98B,EAAE5zB,CAAC,CAAC,CAAC,CAC5H,SAASmxF,IAAK,CAACA,GAAItsF,EAAI+4I,GAAI,IAAIrrF,GAAIo7F,GAAI,CAAC,EAAE9P,GAAI,IAAItrF,GAAI,QAAQ,CAAC,EAAEurF,GAAI,IAAIvrF,GAAIq9G,IAAI,CAAC,EAAE7xB,GAAI,IAAIxrF,GAAI,OAAO,CAAC,EAAEyrF,GAAI,IAAIzrF,GAAIs9G,IAAI,CAAC,CAAC,CAC5H,SAASnzE,IAAK,CAACA,GAAI73F,EAAIouI,GAAI,IAAIr9E,GAAI2mG,GAAI,CAAC,EAAErpB,GAAI,IAAIt9E,GAAI,WAAW,CAAC,EAAEu9E,GAAI,IAAIv9E,GAAI,aAAa,CAAC,EAAEw9E,GAAI,IAAIx9E,GAAI,UAAU,CAAC,CAAC,CACxH,SAAS+iC,IAAK,CAACA,GAAI9zF,EAAI29H,IAAI,IAAI/tE,GAAI,sBAAsB,CAAC,EAAEguE,GAAI,IAAIhuE,GAAI,mBAAmB,CAAC,EAAEiuE,IAAI,IAAIjuE,GAAI,cAAc,CAAC,CAAC,CAC1H,SAAS0kC,IAAK,CAACA,GAAIt0F,EAAIo+H,GAAI,IAAItuE,GAAI,eAAe,CAAC,EAAEuuE,GAAI,IAAIvuE,GAAI,sBAAsB,CAAC,EAAEwuE,GAAI,IAAIxuE,GAAI,eAAe,CAAC,CAAC,CACvH,SAAS4iC,IAAK,CAACA,GAAI1yF,EAAIi9H,GAAI,IAAI1tE,GAAI,kBAAkB,CAAC,EAAE2tE,GAAI,IAAI3tE,GAAI,aAAa,CAAC,EAAE4tE,GAAI,IAAI5tE,GAAI,yBAAyB,CAAC,CAAC,CAC3H,SAAS8+F,GAAG/yJ,EAAEyzB,EAAE,CAAC,OAAA0zC,GAAI,EAAQ0yF,GAAGC,EAAG,EAAE/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,EAAE,EAAEzzB,EAAEyzB,EAAE,GAAGzzB,EAAEyzB,EAAE,EAAEyrC,GAAG,MAAMl/D,CAAC,EAAE,MAAMyzB,CAAC,CAAC,CAAC,CAC3H,SAASs0J,IAAI/nL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAa,IAAX5pD,EAAEy5J,GAAIt5J,EAAE,CAAC,EAAQH,EAAE,GAAGA,EAAE,EAAE,GAAE,CAAmB,GAAlB4pD,EAAEtW,GAAIknC,EAAGu2D,GAAI/wI,CAAC,CAAC,CAAC,EAAK4pD,GAAGh2B,EAAG,OAAY,GAAGg2B,EAAEh2B,EAAE,CAACg1G,GAAI5oI,CAAC,EAAE,KAAK,CAAC,CAACy4G,GAAIz4G,EAAE4zB,CAAC,CAAC,CAC5H,SAASu0J,GAAIhoL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAuB,GAArBltH,EAAE4zB,EAAE,EAAE21B,GAAIppD,EAAE,EAAE,EAAEH,EAAE4zB,CAAC,EAAKA,EAAE,GAAG,KAAM,IAAIj0B,EAAEi0B,EAAE,EAAEp0B,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAE+pD,GAAIppD,EAAE,EAAE,EAAEypD,EAAEh2B,CAAC,CAAG,CAC5H,SAASw0J,IAAIjoL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,IAAIvtH,EAAEi0B,EAAE,EAAEj0B,EAAEK,EAAE,EAAEL,EAAG,IAAIH,EAAEG,EAAEH,EAAEo0B,GAAGg2B,EAAE,GAAGzpD,EAAEX,EAAE,CAAC,EAAEW,EAAEX,CAAC,CAAC,EAAE,EAAE,EAAEA,EAAG0tH,EAAE/sH,EAAEX,CAAC,EAAEwmE,GAAG7lE,EAAEX,EAAEW,EAAEX,EAAE,CAAC,CAAC,EAAEwmE,GAAG7lE,EAAEX,EAAE,EAAE0tH,CAAC,CAAG,CAC5H,SAASm7D,GAAIloL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAGh2B,EAAE,EAAGqhG,GAAI90H,EAAEH,EAAE4pD,CAAC,MAAM,CAAC,GAAG,CAAC5pD,EAAE,GAAI,EAAE,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAI71J,EAAE,GAAE,EAAGqiL,EAAG,CAAC,EAAEh/H,EAAGrjD,EAAE,EAAE,EAAE,GAAI,EAAC,GAAGG,EAAEA,EAAE,KAAKyzB,EAAEg2B,CAAC,CAAC,CAAC,CAC5H,SAAS0+H,GAAInoL,EAAEyzB,EAAE,CAAC,GAAGA,GAAGzzB,EAAE,EAAG,OAAOA,EAAE,EAAO,GAAGyzB,GAAGzzB,EAAE,EAAG,OAAOA,EAAE,EAAO,MAAM0lC,EAAI,IAAImN,GAAI,QAAQpf,EAAE,qBAAqBzzB,CAAC,CAAC,CAAE,CAC7H,SAASspH,IAAItpH,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAOzzB,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,QAAQ,MAAO,EAAM,CAAC,CAC5H,SAASooL,IAAIpoL,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAOzzB,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,QAAQ,MAAO,EAAM,CAAC,CAC5H,SAASqoL,GAAIroL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAOh2B,EAAC,CAAE,IAAK,GAAE,OAAOzzB,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,CAAE,CAAC,OAAO+hL,GAAI/hL,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5H,SAAS6+H,IAAItoL,EAAE,CAAC,OAAGA,EAAE,IAAI2qF,GAAG,EAAG0hC,IAAa,GAAa8rB,GAAI,IAAIvtC,GAAI,KAAK,IAAIgN,GAAI,IAAI/G,GAAGphC,GAAGo3G,GAAI7mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI8S,GAAG,CAAC,CAC7H,SAASmyK,IAAIvoL,EAAE,CAAC,OAAGA,EAAE,GAAG,KAAaA,GAAO,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIg4K,IAAKh4K,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAEA,EAAE,EAAE,IAAI,GAAUA,EAAE,EAAC,CAC7H,SAASwoL,IAAGxoL,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,GAAGsvJ,IAAKtvJ,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGyzB,IAAI2gJ,GAAG90G,GAAG,EAAE,EAAE,CAAC,GAAUD,KAAI8vF,GAAE,EAAGI,IAAE,IAAG97H,IAAI2gJ,GAAG90G,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,GAAUs/D,GAAG,EAAE,EAAE,CAAC,EAAC,CAC7H,SAAS4R,GAAIlxE,EAAE,CAAC,IAAIyzB,EAAE,OAAG,MAAM,QAAQzzB,CAAC,GAAGA,EAAE,KAAKyE,GAAYu3C,GAAIwtE,GAAGxpH,CAAC,CAAC,EAAE,KAAKyzB,EAAE8wC,GAAGvkE,CAAC,IAAI,EAAEyzB,EAAE,SAAS,EAAE,GAAUzzB,EAAE,SAAQ,CAAE,CAC7H,SAAS6mE,GAAI7mE,EAAE,CAAC,IAAIyzB,EAAE,KAAK,GAAGA,EAAEyvB,EAAGljD,EAAE,GAAGA,EAAE,EAAC,EAAG,CAAC,EAAE,IAAIglF,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAEwwC,EAAGC,GAAGC,GAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAC5H,SAASvpB,IAAI56C,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiB,IAAf,KAAK,EAAE,IAAIsX,GAAQtX,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEh2B,EAAE,IAAIk5E,IAAI00D,IAAI5tI,EAAE5zB,CAAC,EAAEmpC,GAAI,KAAK,EAAEvV,CAAC,CAAE,CAC9H,SAASg1J,IAAIzoL,EAAE,CAACy7E,GAAK,EAAC,IAAIhoD,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,IAARi0B,EAAEzzB,EAAE,EAAE,EAAMypD,EAAEvG,EAAGA,EAAGgwB,GAAGlzE,EAAE,GAAG8+F,EAAK,EAACmxC,GAAG,EAAG,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGxmF,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEjqD,EAAEK,EAAE,EAAEL,EAAE,GAAGi0B,CAAE,CAC9H,SAASsnC,GAAG/6D,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAW,GAAR+6D,GAAG/6D,EAAE,CAAC,EAAKA,EAAE,EAAE,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAIsC,EAAG,OAAWhoC,EAAE,EAAE,OAAMyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAE,EAAE,EAAIyzB,IAAIzzB,EAAE,EAAEyzB,GAAG,CAC9H,SAASi1J,IAAI1oL,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,GAAG,KAAY,IAAKyzB,EAAEzzB,EAAE,OAAcyzB,EAAE,IAAIuuF,GAAIvuF,EAAE,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,EAAE,CAAC,GAAG,KAAK,CAACixE,GAAI1kG,EAAE2kG,GAAIC,EAAG,EAAC,CAC9H,SAASF,GAAI1kG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,EAAEjqD,EAAEQ,EAAE,OAAOypD,EAAEjqD,EAAEiqD,IAAK,GAAG4nH,IAAKrvD,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAGh2B,EAAE5zB,CAAC,EAAE,MAAO,GAAK,MAAO,EAAK,CAC9H,SAAS8oL,IAAI3oL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAEzpD,EAAE,EAAE,EAAE,KAAK,GAAI,EAACypD,EAAE,GAAI,GAAoB,GAAjB5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAKm/H,IAAIn1J,EAAE5zB,EAAE,CAAC,GAAGgpL,IAAIp1J,EAAE5zB,EAAE,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CAC9H,SAASipL,IAAI9oL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA+B,IAA7BiqD,EAAEs/H,IAAI/oL,EAAEyzB,CAAC,EAAEj0B,EAAEiqD,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAM5pD,EAAE,EAAEA,EAAE4pD,EAAE,OAAO5pD,IAAK,GAAG4pD,EAAE5pD,CAAC,GAAGL,EAAG,OAAOi0B,EAAE,EAAE5zB,EAAG,OAAO4zB,EAAE,EAAEA,EAAE,EAAE,IAAI,CAC9H,SAASu7H,IAAIhvJ,EAAEyzB,EAAE,CAAC8lD,GAAK,EAAC,IAAI15E,EAAE4pD,EAAEjqD,EAAEH,EAAmC,IAAjCoqD,EAAEgjG,IAAIzsJ,CAAC,EAAER,EAAEi0B,EAAEqtC,GAAIrX,EAAE,EAAEA,EAAE,OAAOjqD,CAAC,EAAMK,EAAE,EAAEA,EAAE4pD,EAAE,OAAO5pD,IAAKR,EAAE2pL,IAAIhpL,EAAEypD,EAAE5pD,CAAC,EAAEA,CAAC,EAAEA,GAAGR,GAAG4kL,GAAIjkL,EAAEH,EAAER,CAAC,CAAE,CAC9H,SAAS4pL,GAAIjpL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAU,IAARl7G,EAAE,EAAE5pD,EAAE,EAAMR,EAAEo0B,EAAEs5F,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAAGvtH,EAAEH,EAAE0tH,CAAC,EAAKvtH,EAAE,IAAGiqD,GAAGjqD,EAAE,EAAEK,GAAG,OAAAA,EAAE,IAAI4pD,GAAGzpD,EAAE,GAAGH,EAAE,IAAW4pD,CAAC,CAC/H,SAASy/H,GAAIlpL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAqB,IAAnBA,EAAE,IAAIzT,GAAIyT,EAAE,GAAG,IAAQh2B,EAAE,EAAE5zB,EAAEG,EAAE,KAAKyzB,EAAE5zB,GAAIw7D,GAAI5R,EAAEunB,GAAIhxE,EAAE,GAAGyzB,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE5zB,IAAI4pD,EAAE,GAAGhU,IAAO,OAAAgU,EAAE,GAAG,IAAWA,EAAE,CAAC,CAC/H,SAAS0/H,IAAInpL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAA,EAAE+pL,GAAIppL,CAAC,EAAEH,EAAE4gD,GAAIzgD,EAAE,CAAC,EAAEypD,EAAE,CAAC5pD,EAAK4pD,IAAGjqD,EAAE,IAAI+zB,GAAG+xE,GAAGjmG,EAAE,iBAAiBG,CAAC,EAAEi0B,EAAE,IAAIqP,IAAItjC,CAAC,EAAEu4I,GAAI/3I,EAAE,EAAEyzB,CAAC,GAASp0B,CAAC,CAC/H,SAASgqL,IAAGrpL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAiB,IAAfsxB,GAAI2C,CAAC,EAAE5zB,EAAE,GAAU4pD,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASjqD,EAAEmlI,EAAIl7E,CAAC,EAAK6/H,GAAG71J,EAAEj0B,EAAE,EAAK,IAAGi3G,GAAIhtD,CAAC,EAAE5pD,EAAE,IAAM,OAAOA,CAAC,CAChI,SAASg0H,GAAI7zH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiC,IAA/BA,EAAEvW,EAAImnC,EAAGr6E,EAAE,EAAE,IAAIgwB,KAAMu1G,GAAK,CAAA,CAAC,EAAM1lI,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,GAAE,CAAE,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE2lI,IAAIxlI,EAAEyzB,EAAEg2B,CAAC,CAAE,CAChI,SAAS8/H,GAAIvpL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAI5oC,EAAE,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,CAAC,EAAEirI,GAAI5nF,EAAGrjD,EAAE,EAAE,GAAG,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,CAAC,CAAE,CAChI,SAAS2pL,IAAIxpL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAU,IAARA,EAAEQ,EAAE,EAAE,EAAMypD,EAAEjqD,EAAE,EAAE,OAAOiqD,EAAE5pD,EAAE4pD,IAAKikD,GAAIluG,EAAE,EAAE,IAAIq8G,GAAI77G,EAAE,CAAC,CAAC,EAAEg4H,GAAIvkG,EAAEyvB,EAAGo4B,GAAI97E,EAAEA,EAAE,EAAE,OAAOK,CAAC,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,CAAC,CAChI,SAAS4pL,IAAIzpL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE5pD,EAAE,CAAC4pD,IAAIA,EAAEg8C,GAAI,IAAI92D,GAAI,CAAC,GAAGi9E,GAAIniE,EAAEigI,IAAI,CAAC,EAAEC,IAAI3pL,EAAE,EAAEyzB,EAAEwzI,GAAIx9G,EAAE,CAAC,CAAC,EAAEmgI,IAAI5pL,EAAEyzB,EAAEwzI,GAAIx9G,EAAE,CAAC,CAAC,EAAEogI,IAAIp2J,EAAEwzI,GAAIx9G,EAAE,CAAC,CAAC,EAAEoiE,GAAIpiE,CAAC,CAAC,CAC9H,SAASqgI,IAAI9pL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACypE,GAAK,EAAC8gH,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAI,CAAC,EAAEzqC,EAAE,EAAE,EAAEQ,CAAC,EAAEyzB,CAAC,EAAEj0B,EAAE,CAAC,CAAC,EAAEuqL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAI,CAAC,EAAEpqC,EAAEL,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEiqD,CAAC,CAAC,CAAC,CAC/H,SAASm+C,GAAI5nG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,KAAK,EAAEW,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEjqD,EAAE,KAAK,EAAEH,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAGysG,GAAI,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAC7H,SAASk+E,GAAIhqL,EAAE,CAACg2K,GAAK,EAAC,KAAK,EAAEn2B,GAAG3mC,EAAG9hE,EAAG6yI,IAAG,CAAC,EAAE9lH,GAAI,IAAI,EAAE,CAACpb,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAIhkB,GAAI,KAAK,EAAE/kC,EAAEw5D,GAAI,KAAK,EAAEy8G,GAAI,CAAC,EAAE5xG,GAAI6lH,IAAI,IAAInpJ,IAAI,IAAI,CAAC,CAAC,CAC9H,SAAS+1C,IAAI92E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,EAAMokD,GAAIpkD,EAAE,EAAEyzB,CAAC,EAAUyvB,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,GAAO5zB,EAAE4zB,EAAE,GAAI,EAAC+lC,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,EAASA,GAAe4zB,EAAE,GAAE,CAAG,CAChI,SAAS02J,GAAInqL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGk6D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,EAAU,GAAQ83C,EAAG93C,EAAE,EAAE,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAASzzB,EAAE,GAAGH,EAAE,GAAGG,EAAE,GAAGH,EAAE,GAAGo3I,IAAIj3I,EAAEH,EAAE,CAAC,GAAS,EAAK,CAChI,SAASuqL,GAAIpqL,EAAE,CAAO,OAAN8+F,EAAK,EAAQ9+F,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO64I,GAAI,IAAK,GAAE,OAAOz1C,GAAI,IAAK,GAAE,OAAO6sC,GAAI,IAAK,GAAE,OAAOhtC,GAAI,QAAQ,OAAO21C,EAAI,CAAC,CAC9H,SAAS47B,GAAIx0K,EAAEyzB,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,GAAE,OAAOzzB,EAAE,GAAG,EAAE,IAAK,GAAE,OAAOA,EAAE,GAAG,EAAE,IAAK,GAAE,OAAOA,EAAE,GAAG,EAAE,IAAK,GAAE,OAAOA,EAAE,GAAG,CAAE,CAAC,OAAOkrK,GAAIlrK,EAAEyzB,CAAC,CAAC,CAChI,SAAS42J,IAAIrqL,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIid,IAAI,IAAK,GAAE,OAAO,IAAIC,IAAI,QAAQ,MAAMwoB,EAAI,IAAImN,GAAIy3I,IAAKtqL,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAChI,SAASuqL,IAAIvqL,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIgd,IAAI,IAAK,GAAE,OAAO,IAAIG,IAAI,QAAQ,MAAMuoB,EAAI,IAAImN,GAAI23I,IAAKxqL,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAChI,SAASyqL,IAAIzqL,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAI0sC,GAAI,IAAK,GAAE,OAAO,IAAID,IAAI,QAAQ,MAAM/G,EAAI,IAAImN,GAAI2iI,IAAKx1K,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAChI,SAAS0qL,IAAI1qL,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAI0c,IAAI,IAAK,GAAE,OAAO,IAAI+8D,IAAI,QAAQ,MAAM/zC,EAAI,IAAImN,GAAIy3I,IAAKtqL,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAChI,SAAS2qL,IAAI3qL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAG,OAAOA,EAAE,EAAiB,IAAfH,EAAE8lE,GAAI,KAAK3lE,EAAE,EAAQH,GAAE,CAAgB,GAAf4zB,EAAEkyC,GAAI,KAAK9lE,EAAE,EAAK4zB,EAAG,OAAOA,EAAE5zB,EAAE8lE,GAAI,KAAK9lE,EAAE,CAAC,CAAC,OAAO0mD,GAAK,EAACC,GAAG,CAChI,SAASokI,IAAI5qL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,GAAG,EAAU,GAAEyzB,EAAEzzB,EAAE,GAAG,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAKA,EAAE,EAAE,IAAGypD,EAAEo+G,IAAI7nK,CAAC,EAAKypD,GAAGzpD,EAAE,EAAE,IAAG,EAAEH,EAAEA,EAAEA,EAAE,IAAG4zB,GAAGq5I,GAAIjtK,CAAC,EAAS4zB,EAAC,CACjI,SAASo3J,IAAI7qL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAGzpD,EAAE8qL,GAAI,OAAeA,GAAI9qL,CAAC,GAAEH,EAAEG,GAAG,EAAEyzB,EAAEzzB,EAAE,GAAGypD,EAAEwa,EAAG4gD,GAAGsP,GAAI,GAAGt0H,EAAE,EAAE,GAAG,CAAC,EAAE4pD,EAAE5pD,CAAC,EAAE,GAAG4zB,EAAS,IAAI0hF,GAAI,EAAEt1G,EAAE,EAAE4pD,CAAC,EAAC,CACjI,SAAS42G,IAAIrgK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAW,OAAT5pD,EAAEG,EAAE,GAAI,EAAIH,GAAG4zB,EAAEzzB,EAAE,GAAE,EAAMurE,EAAG93C,EAAE,GAAG,IAAGg2B,EAAE42G,IAAIn9G,EAAGzvB,EAAE,GAAG,CAAC,EAAKg2B,GAAG,MAAaA,EAAE,IAAI5pD,EAAUA,GAAS,IAAI,CACjI,SAASypL,GAAGtpL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAEQ,EAAE,GAAI,EAACR,EAAE,GAAI,GAAY,GAATiqD,EAAEjqD,EAAE,GAAI,EAAIu6D,EAAGtmC,CAAC,IAAIsmC,EAAGtQ,CAAC,GAAGh2B,GAAG,MAAMywB,GAAGzwB,EAAEg2B,CAAC,EAAG,OAAA5pD,GAAGL,EAAE,GAAI,EAAQ,GAAM,MAAO,EAAK,CACjI,SAASurL,GAAI/qL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAQ,GAAN,EAAEQ,EAAE,EAAKH,EAAE,KAAM,MAAO,GAAW,IAAIL,EAAEK,EAAE,GAAE,EAAGL,EAAE,GAAE,GAAKiqD,EAAEjqD,EAAE,GAAE,EAAGQ,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAEg2B,CAAC,CAAC,EAAE,EAAEh2B,EAAE,MAAO,EAAK,CAChI,SAASu3J,IAAGhrL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAQ,GAANA,EAAEQ,EAAE4zB,EAAKp0B,EAAE,EAAG,KAAMA,EAAE,GAAGW,GAAG,GAAG,EAAEX,MAAO,CAAK,IAAJG,EAAE,EAAQH,EAAE,GAAGG,GAAG,GAAG,EAAEH,EAAEW,GAAGA,GAAGR,GAAG,IAAIA,EAAE,CAAC,CAAC,OAAAiqD,EAAE,EAAEzpD,EAAS,EAAI,CACjI,SAASirL,IAAIjrL,EAAE,CAAC,OAAAy4H,GAAG,EAAUroD,GAAK,EAAC,GAAAg4G,IAAIllI,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,GAAG,CAAC,GAAGkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAGooL,IAAIllI,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,GAAG,CAAC,EAAY,CAC7H,SAASkrL,IAAIlrL,EAAE,CAAC4vB,GAAK,EAAIszB,EAAGljD,EAAE,IAAIgwB,GAAG,EAAGk8H,GAAK,EAAC,GAAG,EAAE,IAAIxtD,GAAK,EAACq/D,GAAG,IAAI76G,EAAGljD,EAAE,GAAG4rJ,EAAG,EAAE,GAAG,EAAE,IAAIztD,GAAK,EAACwqD,GAAK,EAACzlG,EAAGljD,EAAE,GAAGksJ,EAAG,EAAE,GAAG,EAAE,GAAG6R,EAAG,EAAE,CAChI,SAASotB,IAAInrL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAIh2B,EAAoB,CAAC,IAAI5zB,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAoB,GAAjB4pD,EAAEvG,EAAGljD,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAK4pD,EAAE,GAAGh2B,CAAC,EAAG,MAAO,GAAO,OAAOyyC,GAAIlmE,EAAEyzB,CAAC,CAAC,KAA/F,OAAO,EAAyF,CACjI,SAAS23J,GAAIprL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAW,IAATi0B,EAAE,IAAIF,GAAO/zB,EAAE,IAAIq4B,GAAI73B,EAAE,EAAE,IAAI,EAAER,EAAE,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,EAAE,GAAE,EAAG,GAAG,EAAEK,EAAEwrL,IAAI5hI,CAAC,EAAEquD,IAAGrkF,EAAEA,EAAE,EAAE,OAAO5zB,CAAC,EAAE,OAAO4zB,EAAE,CAAC,CACjI,SAAS63J,GAAItrL,EAAE,CAAC,IAAIyzB,EAAE,OAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImI,KAAK6/D,GAAIhoE,EAAE,EAAE,IAAIqI,GAAG,EAAEkjL,IAAIvrL,CAAC,EAAEyzB,EAAE+3J,IAAIxrL,CAAC,EAAEqlD,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIq6B,IAAIr6B,CAAC,CAAC,EAASyzB,CAAC,CACjI,SAASg4J,GAAIzrL,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcogL,GAAIpgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI6vG,GAAIpgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,wBAAwB4nC,GAAI5nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CACjI,SAASi4J,IAAI1rL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAKo0B,IAAGj0B,EAAEikH,GAAIhwF,EAAE,GAAG,EAAE5zB,EAAE,IAAI4iC,IAAIziC,CAAC,EAAEijE,GAAIpjE,EAAE,GAAGixB,GAAItxB,CAAC,EAAEA,EAAG,EAACH,EAAEokH,GAAIhwF,EAAE,GAAG,EAAEg2B,EAAE,IAAI/mB,IAAI1iC,CAAC,EAAEkjE,GAAIzZ,EAAE,GAAG34B,GAAIzxB,CAAC,EAAEA,EAAC,EAAG,CAChI,SAASssL,IAAI3rL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAKo0B,IAAGj0B,EAAEikH,GAAIhwF,EAAE,GAAG,EAAE5zB,EAAE,IAAIwiC,IAAIriC,CAAC,EAAEojE,GAAIvjE,EAAE,GAAGixB,GAAItxB,CAAC,EAAEA,EAAG,EAACH,EAAEokH,GAAIhwF,EAAE,GAAG,EAAEg2B,EAAE,IAAIlnB,IAAIviC,CAAC,EAAEqjE,GAAI5Z,EAAE,GAAG34B,GAAIzxB,CAAC,EAAEA,EAAC,EAAG,CAChI,SAASkkJ,GAAIvjJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqC,GAAnCK,GAAGG,EAAE,GAAG,MAAM05G,GAAI15G,CAAC,EAAEA,EAAE,GAAGypD,EAAEh2B,EAAE,GAAE,EAAMg2B,GAAG,IAAI,IAAIjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAG,GAAG5pD,EAAE4pD,CAAC,GAAGh2B,EAAG,OAAOg2B,EAAI,MAAO,EAAE,CACjI,SAASmiI,IAAI5rL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgB,IAAdQ,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMypD,EAAEzpD,EAAE,EAAE,EAAEypD,GAAG,EAAE,EAAEA,EAAU,IAAPh2B,EAAE5zB,EAAE4pD,CAAC,EAAMjqD,EAAE,EAAEA,EAAEiqD,EAAE,EAAEjqD,EAAU,GAAPH,EAAEQ,EAAEL,CAAC,EAAKqsL,IAAI7rL,EAAEyzB,EAAEp0B,CAAC,EAAE,CAACysL,GAAI9rL,EAAEypD,CAAC,EAAE,KAAK,CAAG,CACjI,SAASsiI,IAAIt4J,EAAE,CAAC,IAAI5zB,EAAE4zB,EAAE,EAAE,SAASg2B,EAAEzpD,EAAE,CAAC,MAAG,CAACA,GAAGA,EAAE,QAAQ,EAAU,GAAU,IAAKA,EAAE,KAAK;AAAA,EAAM,CAAC,CAChG,OAAOH,IAAIA,EAAE,OAAO4pD,EAAEh2B,EAAEu4J,EAAG,CAAC,EAAE,CAC9B,SAASC,GAAGjsL,EAAE,CAACknC,GAAI,EAAC,IAAIzT,EAAW,OAATA,EAAEzzB,EAAE,GAAI,EAAQyzB,EAAE,OAAQ,CAAA,IAAK,GAAE,OAAOyoF,GAAG,IAAK,GAAE,OAAO,IAAI/R,GAAG30D,GAAG/hB,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAO,IAAI0oF,GAAG6qE,IAAGvzJ,CAAC,CAAC,CAAE,CAAC,CAClI,SAASy4J,GAAIlsL,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAO0tE,GAAGnhG,EAAE,GAAGsyG,GAAK,EAACk0D,IAAG,EAAG,IAAK,GAAE,OAAOrlE,GAAGnhG,EAAE,GAAGsyG,GAAG,EAAGi0D,MAAM,QAAQ,OAAOl8F,GAAK,EAACA,GAAG,EAAG+b,EAAI,CAAC,CAClI,SAAS+lG,GAAInsL,EAAEyzB,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAK,GAAEmvC,GAAI5iE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE2iE,GAAI3iE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE8iE,GAAI9iE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE+iE,GAAI/iE,EAAE,CAAC,EAAE,MAAO,CAAC0/K,GAAI1/K,EAAEyzB,CAAC,CAAC,CACjI,SAASuiJ,IAAK,CAACA,GAAItxK,EAAIokD,GAAG,EAAGmtH,IAAK3oJ,GAAG,EAAG8+J,IAAKlC,IAAIrqC,GAAG3mC,EAAG9hE,EAAGi1I,GAAG,CAAC,EAAEC,IAAI,IAAI,EAAE,CAACC,GAAI9qB,GAAI+qB,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,CAAC,CAAC,CACjI,SAASC,IAAIntL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,IAAI4sF,GAAG,EAAG+4D,IAAK9lJ,EAAEutL,GAAIptL,CAAC,EAAEyzB,GAAG,CAAC5zB,GAAG,CAAC4zB,GAAG5zB,EAAEijF,EAAI9iF,EAAE,GAAGstB,KAAM+/J,KAAMpyF,KAAMkqD,GAAK,EAACriE,EAAI9iF,EAAE,GAAGstB,GAAG,EAAG+/J,KAAMpyF,GAAG,EAAGiqD,IAAK,CAClI,SAASooC,IAAIttL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAGm0F,GAAIr3I,EAAE0qJ,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAAC+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAS37H,EAAE,GAAG2jG,IAAI3jG,EAAE,GAAI,CAAA,CAAC,CAAC,CAClI,SAASq/F,IAAK,CAACA,GAAIx6F,EAAI0uI,GAAI,IAAIh9E,GAAI,SAAS,CAAC,EAAEi9E,IAAI,IAAIj9E,GAAI,YAAY,CAAC,EAAEk9E,IAAI,IAAIl9E,GAAI,cAAc,CAAC,EAAEm9E,IAAI,IAAIn9E,GAAI,YAAY,CAAC,CAAC,CACjI,SAASopF,IAAK,CAACA,GAAI96I,EAAI+6I,GAAI,IAAIz8H,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,IAAIuqK,IAAI,IAAItqK,GAAG,CAClI,SAASuqK,IAAI/tL,EAAEyzB,EAAE5zB,EAAE,CAAC+4J,IAAG,EAAGjtH,IAAI,KAAK,IAAI,EAAE,KAAK,EAAEy9D,GAAG4kF,IAAG,CAACxjH,EAAIyjH,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC5uC,GAAIF,EAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAIh+E,GAAI,KAAK,EAAEnhE,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAClI,SAASg7E,GAAI76E,EAAEyzB,EAAE,CAAC,KAAK,EAAE21E,GAAGk4E,GAAG,CAAC92G,EAAI87G,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC7yJ,EAAE+rC,GAAGz8D,EAAK,KAAK,KAAK/C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAEzzB,EAAE,GAAG,EAAE,KAAK,EAAEyzB,EAAE,GAAG,CAAC,CAClI,SAASy6J,IAAIluL,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAE,4BAA4B,CAAC,EAAE4xB,GAAIs+D,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAImN,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAEw+G,GAAIp4F,CAAC,CAAC,CAClI,SAAS06J,IAAInuL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAEvW,EAAIlzC,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,EAAEyf,EAAIlzC,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEj0B,EAAE0zC,EAAIlzC,EAAE,EAAEH,EAAE,EAAE,CAAC,CAAC,EAAEqzC,EAAIlzC,EAAE,EAAEH,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAASL,EAAEiqD,CAAC,CAClI,SAAS2kI,IAAIpuL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAe,IAAbiqD,EAAEoxE,GAAIh7H,EAAE43K,EAAG,EAAMj4K,EAAE,EAAE+sD,GAAI9C,EAAE,CAAC,GAAG,GAAGjqD,EAAEi0B,EAAEj0B,IAAKiqD,EAAEshD,GAAIthD,EAAEoxE,GAAI76H,EAAER,CAAC,EAAEi4K,EAAG,CAAC,EAAEz3K,EAAER,CAAC,EAAEytG,GAAIxjD,CAAC,EAAEA,EAAE+nD,GAAI/nD,EAAE,EAAE,EAAE,OAAOwjD,GAAIxjD,CAAC,CAAC,CACnI,SAAS4kI,GAAIruL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAM,IAAJA,EAAE,EAAMK,EAAE,EAAE4pD,EAAEzpD,EAAE,OAAOH,EAAE4pD,EAAE5pD,IAAK4zB,GAAGuuF,GAAIniH,EAAEG,EAAE,MAAM,EAAEA,EAAE,WAAWH,CAAC,GAAG4zB,EAAE,KAAKj0B,EAAEqlI,GAAIrlI,EAAE8xG,GAAI,EAAE79E,CAAC,CAAC,GAAG,OAAOj0B,CAAC,CAClI,SAAS8uL,IAAItuL,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,GAAG,KAAK,KAAK,IAAI4jE,IAAKnwC,EAAE86J,GAAIvuL,EAAE,EAAI,EAAEyzB,EAAE,OAAO,IAAIuuF,GAAI,EAAEvuF,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAG,IAAIA,EAAE,OAAO,CAAC,EAAEA,GAAG,CAClI,SAAS+6J,IAAIxuL,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,GAAG,KAAK,KAAK,IAAI4jE,IAAKnwC,EAAE86J,GAAIvuL,EAAE,EAAI,EAAEyzB,EAAE,OAAO,IAAIuuF,GAAI,EAAEvuF,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAG,IAAIA,EAAE,OAAO,CAAC,EAAEA,GAAG,CAClI,SAASg7J,GAAIzuL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,EAAE,IAAMyzB,EAAE,OAAOzzB,EAAE,IAAGH,EAAEm7J,GAAIxxC,GAAG/1F,CAAC,EAAE,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE5zB,GAAEu0I,GAAIp0I,EAAE,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,CAAC,GAAEyzB,EAAE,OAAOzzB,EAAE,GAAG6lE,GAAGpyC,EAAEzzB,EAAE,EAAE,IAAI,EAASyzB,CAAC,CAClI,SAASi7J,GAAI1uL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAGW,EAAE,GAAE,GAAIypD,EAAEzpD,EAAE,EAAEX,EAAEW,EAAE,GAAI,EAAC+gL,GAAI/gL,EAAEypD,EAAEh2B,CAAC,EAAEj0B,EAAEQ,EAAE,GAAG,EAAE,KAAKyzB,EAAEg2B,EAAEpqD,CAAC,EAAGQ,EAAQA,EAAE,GAAGL,CAAC,EAAXK,EAAEL,GAAgBuhL,GAAI/gL,EAAEA,EAAE,EAAEyzB,CAAC,EAAS5zB,CAAC,CACnI,SAAS8uL,IAAI3uL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIkuE,GAAI33H,EAAE,EAAE,EAAE,IAAIR,EAAEi0B,EAAE,EAAE83C,EAAG/rE,EAAE,EAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGi9G,GAAK,EAACmyE,KAAM,KAAKjO,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,EAAkB5pD,CAAC,CACnI,SAASgvL,IAAI7uL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIkuE,GAAI33H,EAAE,EAAE,EAAE,GAAG,MAAMR,EAAEi0B,EAAE,EAAE83C,EAAG/rE,EAAE,EAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGi9G,GAAK,EAACmyE,KAAMjO,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,EAAkB5pD,CAAC,CACnI,SAASqqK,IAAIlqK,EAAE,CAACy7E,GAAG,EAAG,IAAIhoD,EAAE,OAAAA,EAAE,IAAI2kB,GAAI8K,EAAGljD,EAAE,EAAE,IAAIgwB,GAAK,EAACuqJ,GAAG,EAAG,CAAC,CAAC,EAAKv6K,EAAE,EAAE,IAAI0+F,GAAK,EAAC++D,GAAK,IAAEhqI,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAIA,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAWA,CAAC,CACnI,SAASq7J,IAAI9uL,EAAE,CAAC4xF,GAAK,EAAC,IAAIn+D,EAAE,OAAEzzB,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAK,EAACA,GAAG,EAAGkhC,KAAU,IAAIj+E,KAAMyhK,GAAK,EAAEt7J,EAAEyvB,EAAG0lE,EAAI5oH,EAAE+uL,EAAG,EAAE,GAAG,EAAIt7J,EAAEyvB,EAAG0lE,EAAI3K,GAAIj+G,CAAC,EAAEgvL,EAAG,EAAE,GAAG,EAAUv7J,CAAC,CACpI,SAASq0J,GAAI9nL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAE,KAAQitB,GAAI12E,GAAGstB,GAAK,EAAC2hK,GAAK,IAAEpvL,EAAEqjD,EAAG0lE,EAAI5oH,EAAEivL,EAAG,EAAE,EAAE,EAAEpvL,EAAE,GAAG4zB,CAAC,IAAIg2B,EAAE5pD,EAAE,GAAG4zB,CAAC,IAAGg2B,GAAG,OAAOA,EAAEm/D,EAAI3K,GAAIj+G,CAAC,EAAEyzB,CAAC,GAAUg2B,CAAC,CACpI,SAASylI,IAAGlvL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAG+rE,EAAG93C,EAAE,EAAE,GAAG5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAEg2B,EAAE5pD,EAAE,GAAI,EAACL,EAAEqlF,GAAG7kF,EAAE,KAAKypD,CAAC,EAASo0D,GAAGr+G,EAAEK,EAAE,GAAE,CAAE,IAAIL,GAAG,MAAMQ,EAAE,GAAE,EAAG,GAAGypD,CAAC,IAAU,EAAK,CACpI,SAASkQ,GAAI35D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAGQ,EAAE,EAAE,GAAGA,EAAE,GAAI,EAACypD,EAAEh2B,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEj0B,GAAGiqD,EAAEyzB,IAAKl9E,EAAE,EAAE,OAAOH,EAAEskL,IAAInkL,EAAER,EAAEiqD,EAAEh2B,CAAC,EAAS5zB,GAAG,IAAe,EAAM,CAClI,SAASsvL,GAAInvL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAGQ,EAAE,EAAE,IAAGA,EAAE,KAAKypD,EAAEh2B,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEj0B,GAAGiqD,EAAEyzB,IAAKl9E,EAAE,EAAE,OAAOH,EAAEuvL,GAAIpvL,EAAER,EAAEiqD,EAAEh2B,CAAC,EAAK5zB,GAAUA,EAAE,GAAE,EAAW,IAAI,CACnI,SAASg6D,GAAI75D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAkC,IAAhCA,EAAEooK,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAE5zB,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMR,EAAE,EAAEA,EAAEQ,EAAE,EAAE,EAAER,EAAU,GAAPiqD,EAAE5pD,EAAEL,CAAC,EAAKH,EAAE,GAAGoqD,EAAE,GAAE,CAAE,EAAG,MAAO,GAAO,MAAO,EAAI,CAClI,SAAS4lI,IAAIrvL,EAAE,CAAC,GAAGA,EAAE,GAAG,KAAK,CAAC,KAAMA,EAAE,EAAE,GAAE,GAAiB,GAAbA,EAAE,EAAEA,EAAE,EAAE,GAAE,EAAM,CAACkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAI,EAAE,MAAO,GAAM,OAAAA,EAAE,EAAE,KAAY,EAAK,KAAM,OAAO,EAAK,CACpI,SAASsvL,IAAI77J,EAAE5zB,EAAE,CAAC4zB,EAAE,GAAI,EAAC,GAAG,CAACA,EAAE,EAAE,GAAGA,EAAE,IAAI5zB,CAAC,EAAE4zB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAS0lC,EAAI,IAAIsC,EAAG,EAAatC,EAAI1lC,CAAC,CAAC,CAAC,CAClI,SAASuvL,GAAGvvL,EAAEyzB,EAAE,CAACwzC,GAAE,EAAG,IAAIpnE,EAAE4pD,EAAE,OAAA5pD,EAAE69E,IAAI9oC,KAAKA,GAAI,EAACC,GAAI,EAAC4U,EAAE,KAAKh2B,GAAG5zB,IAAI4pD,EAAEvG,EAAGq4D,GAAIr0C,IAAGlnE,CAAC,EAAE,GAAG,GAAOypD,IAAGA,EAAE,IAAIsyD,IAAG/7G,CAAC,EAAEyzB,GAAG5zB,GAAG0pD,GAAI2d,IAAGlnE,EAAEypD,CAAC,GAASA,CAAC,CACnI,SAAS+lI,IAAIxvL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEzpD,EAAE,EAAE+qG,GAAI/qG,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,CAAC,CACnI,SAASgmI,IAAIzvL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE4qL,IAAIn3J,CAAC,EAAEzzB,EAAE,EAAE,KAAKA,EAAE,GAAGH,EAAE4zB,EAAE,EAAE,EAAEoxG,GAAIvzB,GAAI79E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEonG,GAAIpnG,EAAE,EAAE,CAAC,EAAEgkJ,EAAG,CAAC,EAAE58C,GAAIpnG,EAAE,EAAE,CAAC,EAAEgkJ,EAAG,EAAEp7G,GAAI05F,GAAItiI,EAAE,EAAE5zB,CAAC,CAAC,GAAG,CACpI,SAAS6vL,GAAI1vL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK42I,GAAIxqK,GAAGA,EAAEgyE,IAAYhyE,EAAU8iG,IAAKgtF,GAAGhwH,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,EAAE,EAAI,EAAE2gJ,IAAI,CACrI,SAASwb,GAAI5vL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEgwL,IAAIp8J,CAAC,EAAE5zB,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,KAAMwiK,KAAM,GAAG,EAAIjwL,GAAGijF,EAAI9iF,EAAE8vL,GAAIC,IAAIlwL,CAAC,CAAC,EAAEi0E,GAAI9zE,EAAE,CAAC,EAAE8zE,GAAI9zE,EAAE,CAAC,EAAEkiJ,GAAIliJ,EAAE,CAAC,EAAEkiJ,GAAIh/F,EAAG0lE,EAAI5oH,EAAEosI,EAAG,EAAE,GAAG,CAAC,CAAC,CACrI,SAAS4jD,IAAIhwL,EAAE,CAAC,KAAK,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGjwL,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGjwL,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CACnI,SAASkwL,IAAIlwL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAsC,IAApCG,EAAE,EAAEikE,EAAG8pF,GAAGC,GAAI,GAAGhuJ,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAMH,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEzzB,EAAE,CAAE,CACrI,SAASmwL,GAAInwL,EAAE,CAAC,IAAIyzB,EAAKzzB,EAAE,GAAG,IAAUyzB,EAAEyvB,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAG,EAAEyzB,EAAE,GAAG,GAAG,EAAEzzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ02B,IAAIwsB,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAC,CACrI,SAASowL,IAAIpwL,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,EAAE,GAAGyzB,EAAEyvB,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGo3G,GAAIpzJ,CAAC,EAAE,EAAE,GAAE,EAAG,IAAInwB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEmwB,EAAE,IAAIk3D,GAAK,EAAC2+D,KAAM1gH,EAAI5oC,EAAE,EAAEyzB,CAAC,QAAQA,EAAE,IAAIk3D,GAAG,EAAG2+D,IAAK,CACrI,SAASl5H,IAAK,CAACA,GAAI1rB,EAAI2rL,IAAI,IAAI/qH,GAAI,EAAE,EAAEgrH,IAAI,IAAIjrH,IAAKr1C,GAAK,EAAC+pJ,IAAKsW,GAAG,EAAEE,IAAI,IAAIlrH,GAAImrH,GAAI,EAAE,EAAEC,IAAI,IAAIprH,GAAIqrH,GAAInjD,EAAI,CAAC,CAAC,EAAEojD,IAAI,IAAItrH,GAAIurH,GAAIC,EAAG,CAAC,CACpI,SAASj1G,IAAK,CAACA,GAAIl3E,EAAI0tI,GAAI,IAAIl8E,GAAI,QAAQ,CAAC,EAAE2lB,GAAI,IAAI3lB,GAAI,cAAc,CAAC,EAAEm8E,GAAI,IAAIn8E,GAAI,cAAc,CAAC,EAAEo8E,GAAI,IAAIp8E,GAAI,eAAe,CAAC,CAAC,CACrI,SAAS46H,GAAI9wL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAa,IAAXA,EAAEh2B,EAAE,OAAW5zB,EAAE,EAAEA,EAAE4pD,EAAE5pD,GAAG,EAAEkxL,GAAI/wL,GAAGgiH,GAAIniH,EAAE4zB,EAAE,MAAM,EAAEA,EAAE,WAAW5zB,CAAC,IAAImiH,GAAIniH,EAAE,EAAE4zB,EAAE,MAAM,EAAEA,EAAE,WAAW5zB,EAAE,CAAC,GAAG,CACpI,SAASi8K,IAAI97K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkB,IAAhB1tH,EAAEo0B,EAAEzzB,EAAE,EAAE+sH,EAAEltH,EAAEG,EAAE,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEwxL,GAAIvnI,EAAEA,EAAE,EAAEpqD,EAAEoqD,EAAE,EAAEsjE,CAAC,EAAE/sH,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,CAAC,CACrI,SAASsnK,IAAInnK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAmD,IAAjDA,EAAEo0B,EAAE,EAAE,EAAEzzB,EAAE,EAAE,IAAI4sC,GAAI5sC,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG90H,EAAE,GAAG,CAAC,EAAEQ,EAAE,EAAML,EAAE85J,GAAI7lI,EAAE,EAAE,CAAC,EAAEj0B,EAAE,GAAGA,EAAE,EAAE,GAAIiqD,EAAEvG,EAAG0tF,GAAIpxI,CAAC,EAAE,EAAE,EAAEiqD,EAAE,EAAE5pD,GAAI,CACrI,SAASy+I,IAAIt+I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAQ,EAAE4zB,GAAG,EAAEA,GAAG,GAAGj0B,EAAEQ,EAAE,EAAEH,GAAG4zB,GAAG,EAAE,EAAE,GAAGg2B,EAAEwa,EAAG4gD,GAAGsP,GAAI,GAAG30H,EAAE,GAAG,CAAC,EAAEyxL,IAAIxnI,EAAEzpD,EAAE,EAAEH,EAAE4zB,CAAC,EAAEp0B,EAAE,IAAI81G,GAAIn1G,EAAE,EAAER,EAAEiqD,CAAC,EAAEi/E,GAAIrpI,CAAC,EAASA,CAAC,CACtI,SAAS6xL,GAAIlxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEvG,EAAGq4D,GAAI41E,GAAI19J,CAAC,EAAE,GAAG,EAAEj0B,EAAE0jD,EAAGq4D,GAAI61E,GAAI39J,CAAC,EAAE,GAAG,EAAK5zB,GAAG0pD,GAAI4nI,GAAInxL,EAAEypD,CAAC,EAAEF,GAAI6nI,GAAIpxL,EAAER,CAAC,IAAO+pD,GAAI6nI,GAAIpxL,EAAEypD,CAAC,EAAEF,GAAI4nI,GAAInxL,EAAER,CAAC,EAAE,CACrI,SAASk/E,IAAI1+E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAe,IAAbG,EAAE,KAAKH,EAAEW,EAAE,EAAQX,GAAE,CAAiB,GAAhBoqD,EAAEzpD,EAAE,EAAE,GAAGyzB,EAAEp0B,EAAE,CAAC,EAAKQ,GAAG4pD,GAAG,EAAG,OAAOpqD,EAAKoqD,GAAG,EAAGpqD,EAAEA,EAAE,EAAE,CAAC,GAAOG,EAAEH,EAAEA,EAAEA,EAAE,EAAE,CAAC,EAAE,CAAC,OAAOG,CAAC,CACtI,SAASo/E,IAAI5+E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAe,IAAbG,EAAE,KAAKH,EAAEW,EAAE,EAAQX,GAAE,CAAiB,GAAhBoqD,EAAEzpD,EAAE,EAAE,GAAGyzB,EAAEp0B,EAAE,CAAC,EAAKQ,GAAG4pD,GAAG,EAAG,OAAOpqD,EAAKoqD,GAAG,EAAGpqD,EAAEA,EAAE,EAAE,CAAC,GAAOG,EAAEH,EAAEA,EAAEA,EAAE,EAAE,CAAC,EAAE,CAAC,OAAOG,CAAC,CACtI,SAAS4yK,IAAIpyK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAAvtH,EAAE,GAAS6xL,IAAIrxL,EAAE,EAAEH,EAAE4pD,CAAC,IAAG6nI,IAAItxL,EAAE,EAAEA,EAAE,EAAEyzB,CAAC,EAAE5zB,CAAC,EAAEG,EAAE,EAAEyzB,CAAC,EAAEg2B,CAAC,CAAC,EAAEpqD,EAAEW,EAAE,EAAEyzB,CAAC,EAAEs5F,EAAE1tH,EAAEoqD,CAAC,EAAEpqD,EAAEoqD,CAAC,EAAEpqD,EAAEQ,CAAC,EAAER,EAAEQ,CAAC,EAAEktH,EAAEvtH,EAAE,IAAYA,CAAC,CACtI,SAAS+xL,GAAIvxL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAM,IAAJ53C,EAAEvtH,EAAQi0B,EAAE,GAAGA,EAAE,GAAGp0B,EAAE6jD,EAAGoyD,GAAI7hF,CAAC,EAAE,EAAE,EAAEkxI,EAAEzhH,EAAGs9H,GAAInhL,EAAEoqD,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAEzpD,EAAE,EAAE2kK,EAAE,CAAC,EAAE53C,IAAIltH,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE8kK,EAAE,OAAO53C,CAAC,CACrI,SAASzjD,GAAItpE,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAA53C,EAAE/sH,EAAE,EAAE2kK,EAAElxI,EAAE,EAAEg2B,EAAE5pD,EAAEktH,EAAE,CAAC,EAAE43C,EAAE,CAAC,EAAEnlK,EAAE66E,EAAGytG,GAAI9nL,EAAEypD,CAAC,CAAC,EAAEpqD,EAAEg7E,EAAGytG,GAAIr0J,EAAEg2B,CAAC,CAAC,EAAS1mD,EAAK,KAAK,KAAK+tB,GAAItxB,CAAC,EAAEA,IAAIsxB,GAAIzxB,CAAC,EAAEA,GAAG,CACrI,SAASmyL,IAAIxxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAqB,IAAnBtjE,EAAE5pD,EAAEG,EAAE,EAAE,OAAOR,EAAE,EAAMutH,EAAE,IAAI70F,EAAIl4B,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE8uD,IAAIx8K,EAAEA,EAAE,EAAEoqD,EAAEjqD,CAAC,EAAEiyL,IAAIpyL,EAAEo0B,EAAEg2B,CAAC,EAAE,EAAEjqD,CAAE,CACtI,SAASkyL,IAAI1xL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA2B,IAAzBvtH,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAE4pD,EAAE,EAAMsjE,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEvtH,EAAEH,EAAE,EAAE,CAAC,GAAG,EAAEoqD,EAAE,OAAOA,CAAC,CACtI,SAASkoI,IAAI3xL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAuB,OAArB4zB,EAAEyvB,EAAGoqB,GAAIttE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAKyzB,GAAG,MAAM5zB,EAAEokE,EAAG4zG,GAAGC,GAAI,IAAIrkJ,EAAE,OAAO,EAAE,CAAC,EAAE2gH,GAAI3gH,EAAE,EAAE5zB,EAAE,EAAE4zB,EAAE,MAAM,EAAS5zB,GAAcmmF,GAAI,CACtI,SAASgnD,KAAI,CAAC,IAAIhtI,EAAiE,OAA5D8gD,IAAI,IAAG9gD,EAAE+4I,IAAI,EAAI/4I,EAAE4xL,IAAG,MAAMA,IAAG5xL,EAAE+gD,GAAGh+C,EAAK,WAAW89C,IAAG,EAAE,IAAMC,MAAM,GAAG8xG,KAAIp+G,GAAE,EAAGC,IAAI,EAAQ,IAAY,EAAK,CACrI,SAASo9I,IAAI7xL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAI7mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAA2B,GAAvB5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEjqD,EAAEK,EAAE,EAAE,EAAKL,EAAE,GAAGi0B,EAAG,MAAO,GAAO,MAAO,EAAI,CACtI,SAASq+J,GAAGr+J,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,GAAG+rE,EAAG1rE,EAAE,GAAG,EAAE,CAACL,EAAE0jD,EAAGrjD,EAAE,GAAG,EAAE,GAAG,CAAC,OAAA4pD,EAAEh2B,EAAE,GAAGj0B,CAAC,EAASiqD,GAAG,CAAC,OAAOzpD,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,GAAG,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CAAC,MAAO,EAAK,CACvI,SAASusH,KAAI,CAAC,OAAG,MAAM,gBAAgB,GAAGxpH,EAAK,MAAM,gBAAgB,MAAM,gBAAgB,GAAU,IAAY,UAAW,IAAI,KAAK,CACrI,SAASgvL,IAAI/xL,EAAEyzB,EAAE,CAAC,OAAO0zC,KAAKA,GAAI,EAAC0yF,GAAGC,EAAG,GAAG/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,EAAE,EAAEzzB,EAAEyzB,EAAE,GAAGzzB,EAAEyzB,EAAE,EAAEyrC,GAAG,MAAMl/D,CAAC,EAAE,MAAMyzB,CAAC,CAAC,GAAG,CAAC,CACrI,SAASu+J,GAAIhyL,EAAEyzB,EAAE,CAAC,OAAO0zC,KAAKA,GAAI,EAAC0yF,GAAGC,EAAG,GAAG/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,EAAE,EAAEzzB,EAAEyzB,EAAE,GAAGzzB,EAAEyzB,EAAE,EAAEyrC,GAAG,MAAMl/D,CAAC,EAAE,MAAMyzB,CAAC,CAAC,GAAG,CAAC,CACrI,SAASu7I,IAAIhvK,EAAEyzB,EAAE,CAAC,OAAO0zC,KAAKA,GAAI,EAAC0yF,GAAGC,EAAG,GAAG/2J,EAAK,KAAK,IAAI/C,EAAEyzB,CAAC,GAAGqmI,IAAK95J,GAAGyzB,GAAG,MAAMzzB,CAAC,GAAG,MAAMyzB,CAAC,EAAE,EAAEzzB,EAAEyzB,EAAE,GAAGzzB,EAAEyzB,EAAE,EAAEyrC,GAAG,MAAMl/D,CAAC,EAAE,MAAMyzB,CAAC,CAAC,IAAI,CAAC,CACtI,SAASw+J,GAAIjyL,EAAEyzB,EAAE,CAAS,QAAJ5zB,EAAE,EAAQ,CAAC4zB,EAAE5zB,CAAC,GAAG4zB,EAAE5zB,CAAC,GAAG,IAAIA,IAAiB,QAAT4pD,EAAEh2B,EAAE5zB,GAAG,EAAOA,EAAE4zB,EAAE,OAAO5zB,IAAQ,CAAC4zB,EAAE5zB,CAAC,GAAG4zB,EAAE5zB,CAAC,GAAG,KAAa4pD,GAAGzpD,EAAEyzB,EAAE5zB,CAAC,GAAE,OAAO4pD,CAAC,CACtI,SAAS6hB,GAAItrE,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA+B,IAA7B1tH,EAAEo0B,EAAE5zB,EAAE6jJ,GAAIjwH,EAAEp0B,EAAEW,EAAE,MAAM,EAAE+sH,EAAE,GAAOvtH,EAAEi0B,EAAEj0B,EAAEH,GAAIoqD,EAAE1mD,EAAK,KAAK,IAAIvD,EAAE,IAAMH,CAAC,EAAE0tH,GAAGvM,IAAIxgH,EAAE,MAAMR,EAAEiqD,CAAC,CAAC,EAAEjqD,EAAEiqD,EAAE,OAAOsjE,CAAC,CACvI,SAASmlE,IAAIlyL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAK,OAAO,KAAe,IAAVX,EAAE,IAAIwlC,EAAQhlC,EAAEm3K,GAAIh3K,CAAC,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE7gB,EAAIvpC,EAAEkvL,GAAI96J,EAAE,EAAI,CAAC,EAAE,OAAOp0B,CAAC,CACtI,SAAS8yL,IAAInyL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAK,OAAO,KAAe,IAAVX,EAAE,IAAIwlC,EAAQhlC,EAAEm3K,GAAIh3K,CAAC,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE7gB,EAAIvpC,EAAEkvL,GAAI96J,EAAE,EAAI,CAAC,EAAE,OAAOp0B,CAAC,CACtI,SAAS+yL,IAAIpyL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAK,OAAO,KAAe,IAAVX,EAAE,IAAIwlC,EAAQhlC,EAAEm3K,GAAIh3K,CAAC,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE7gB,EAAIvpC,EAAEkvL,GAAI96J,EAAE,EAAI,CAAC,EAAE,OAAOp0B,CAAC,CACtI,SAASgzL,IAAIryL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGQ,EAAE,EAAG2iE,GAAI3iE,EAAE,EAAEyzB,CAAC,MAAkB,KAAX5zB,EAAE4zB,EAAE64E,GAAItsG,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAE6yL,IAAI5oI,EAAE6iD,GAAI7iD,CAAC,EAAE5pD,CAAC,CAAG,CACvI,SAASyyL,IAAItyL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGQ,EAAE,EAAG4iE,GAAI5iE,EAAE,EAAEyzB,CAAC,MAAkB,KAAX5zB,EAAE4zB,EAAE44E,GAAIrsG,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAE8yL,IAAI7oI,EAAE4iD,GAAI5iD,CAAC,EAAE5pD,CAAC,CAAG,CACvI,SAAS0yL,IAAIvyL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoB,IAAlBG,EAAE,IAAIu1E,GAAIthD,EAAE,IAAI,EAAMg2B,EAAEh2B,EAAE,GAAI,EAACg2B,EAAE,MAAO5pD,EAAE4pD,EAAE,KAAKpqD,EAAE+qI,GAAIpqI,EAAEkjD,EAAGrjD,EAAE,EAAE,CAAC,EAAIR,IAAIG,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEH,GAAQ,OAAOG,CAAC,CACvI,SAASi9J,GAAIz8J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA+D,OAA7DQ,EAAE,GAAE,EAAGypD,EAAEh2B,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEj0B,GAAGiqD,EAAEyzB,IAAKl9E,EAAE,EAAE,OAAOH,EAAEuvL,GAAIpvL,EAAER,EAAEiqD,EAAEh2B,CAAC,EAAK5zB,GAAG28J,IAAIx8J,EAAEH,CAAC,EAASA,EAAE,MAAiB,IAAK,CACvI,SAAS2yL,GAAIxyL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAkB,IAAhBA,EAAE4yL,IAAIzyL,CAAC,EAAEyzB,EAAE,KAAWzzB,EAAE,GAAG,GAAG0yL,GAAI1yL,CAAC,EAAMyzB,IAAGA,GAAGgzC,GAAG,EAAGA,KAAY,IAAID,GAAI,CAAC,GAAGmsH,GAAIl/J,EAAE5zB,CAAC,EAAEA,EAAE4zB,GAAE5zB,EAAE,GAAG4yL,IAAIzyL,CAAC,CAAC,EAAE,OAAOH,CAAC,CACvI,SAASgtI,GAAI7sI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA2B,GAAzBA,EAAE,KAAKh2B,EAAEm/J,MAAO5yL,EAAE,EAAEH,EAAE,CAAC4zB,EAAK5zB,EAAG,MAAM6lC,EAAI,IAAIsO,GAAI,gCAAgC,CAAC,EAAE,OAAAyV,EAAEopI,GAAIj9D,GAAG51H,EAAE4yL,EAAG,CAAC,EAASnpI,CAAC,CACvI,SAAS8zH,GAAIv9K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAW,GAATA,EAAEzpD,EAAE,GAAE,EAAM,CAACypD,EAAO,IAAJh2B,EAAE,EAAM5zB,EAAEG,EAAE,KAAKH,EAAEA,EAAEA,EAAE,GAAI,EAAC,CAAC,GAAG,EAAE4zB,EAAEq/J,GAAK,OAAOjzL,EAAE,GAAI,EAAU,GAAT4pD,EAAE5pD,EAAE,KAAU4pD,GAAG5pD,GAAGG,EAAG,KAAM,CAAE,OAAOypD,CAAC,CACxI,SAASspI,GAAI/yL,EAAE,CAAO,OAANg1H,GAAK,EAAIzpD,EAAGvrE,EAAE,GAAG,EAAUkjD,EAAGgwD,GAAIz5C,GAAIy9D,GAAE,EAAE,GAAG,EAAE,GAAGl3H,CAAC,EAAKokD,GAAIqV,GAAI+vD,GAAGxpH,CAAC,CAAC,EAAUkjD,EAAGgwD,GAAIz5C,GAAI+vD,GAAGxpH,CAAC,CAAC,EAAE,GAAG,EAAE,GAAGA,CAAC,EAAS,IAAI,CACvI,SAASgzL,IAAIhzL,EAAE,CAAC,GAAGstG,GAAI2lF,GAAIjzL,CAAC,EAAG,OAAOowE,KAAME,GAAS,GAAGg9B,GAAI4lF,GAAIlzL,CAAC,EAAG,OAAOowE,GAAK,EAACC,GAAS,MAAM3qC,EAAI,IAAImN,GAAI,yBAAyB,CAAC,CAAE,CACxI,SAASsgJ,IAAInzL,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,GAAGzzB,EAAG,OAAOyzB,EAAE,EAAO,GAAGA,EAAE,GAAGzzB,EAAG,OAAOyzB,EAAE,EAAE,MAAMiS,EAAI,IAAImN,GAAI,gDAAgD,CAAC,CAAC,CACvI,SAASugJ,IAAIpzL,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAKzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAMzzB,EAAE,EAAEyzB,EAAE,EAAUzzB,EAAE,EAAKA,EAAE,EAAEyzB,EAAE,EAAU,CAACA,EAAE,EAASzzB,EAAE,EAAEw3K,GAAIx3K,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,CAAC,CAAC,CACvI,SAASqzL,IAAIrzL,EAAE,CAAC,OAAGA,GAAG,IAAIA,EAAE,GAAG+C,EAAK,KAAK,IAAI,GAAG,EAAE,EAAU/C,EAAE,GAAMA,GAAG,IAAIA,EAAE,GAAWA,EAAE,GAAG,GAAMA,GAAG,IAAIA,EAAE,GAAWA,EAAE,GAAG,GAAU,EAAE,CACxI,SAASszL,IAAGtzL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGk6D,EAAGtmC,CAAC,IAAIsmC,EAAG/5D,CAAC,EAAU,GAAQ,CAACurE,EAAG93C,EAAE,EAAE,IAAgB5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAK5zB,EAAE,GAAE,GAAIG,EAAE,GAAI,GAAS,GAAaA,EAAE,GAAGH,CAAC,CAAC,CACzI,SAASg8J,IAAI77J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA0D,OAAxDoqD,EAAEzpD,EAAE,EAAE,OAAO,EAAEH,EAAE4zB,EAAEzzB,EAAE,EAAEypD,EAAEpqD,EAAEW,EAAE,EAAEyzB,EAAEg2B,EAAEjqD,EAAEQ,EAAE,EAAEA,EAAE,EAAEypD,EAAEusB,IAAIn2E,EAAEL,CAAC,EAAKK,GAAGR,GAAGg8K,IAAIr7K,EAAEyzB,CAAC,EAAS,KAAQ6nJ,IAAIt7K,EAAEyzB,CAAC,EAAS,EAAE,CACzI,SAAS8/J,IAAGvzL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAA4C,IAA1C5pD,GAAGmiH,GAAIvuF,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,CAAC,GAAGg2B,EAAEh2B,EAAE,EAAQg2B,EAAEzpD,EAAE,SAASgiH,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAG5pD,IAAI,EAAE4pD,EAAE,OAAOA,EAAEh2B,CAAC,CACzI,SAAS+/J,GAAIxzL,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,MAAO,GAAK,QAAQ,MAAO,EAAM,CAAC,CACtI,SAAS61H,IAAGx2H,EAAEW,EAAE,CAAC,IAAIyzB,EAAEp0B,EAAE,EAAMQ,EAAEG,EAAE,OAAOA,CAAC,EAAEyzB,EAAE,eAAezzB,CAAC,IAAIH,EAAE4zB,EAAEzzB,CAAC,GAAG,IAAIypD,GAAG+nG,GAAE,EAAGC,IAAI,OAAO5xJ,CAAC,EAAML,EAAEiqD,EAAEA,EAAE5pD,CAAC,EAAE6xJ,GAAG,OAAO7xJ,CAAC,EAAE,OAAOL,CAAC,CACvI,SAAS4rJ,GAAIprJ,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,iEAAiE,CAAC,EAAE,OAAA2gC,GAAIzzE,EAAEA,EAAE,EAAEyzB,CAAC,EAASzzB,CAAC,CACvI,SAASyzL,IAAIzzL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAKo0B,EAAE,EAAE,QAAQ,IAAUj0B,EAAEk0L,IAAI7zL,EAAE4pD,CAAC,EAAEpqD,EAAEs0L,IAAIlgK,CAAC,EAAE4xB,GAAIk1E,GAAI,IAAI3vB,GAAI,KAAK,IAAI99C,GAAIztD,EAAE,CAAC,CAAC,EAAE,IAAIsc,GAAG,EAAE,IAAIupG,IAAIllH,EAAEH,EAAEL,EAAEiqD,CAAC,CAAC,EAAC,CACxI,SAASmqI,GAAI5zL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAMzpD,EAAE,GAAGyzB,EAAU5zB,GAAG,KAAMg0L,IAAI7zL,EAAEyzB,CAAC,GAAOg2B,EAAEqhH,GAAI9qK,EAAEyzB,CAAC,EAAEg2B,GAAG,GAAIzpD,EAAE,GAAGH,EAAGgmE,GAAGoqF,GAAGjwJ,EAAE,EAAE,EAAEypD,EAAE5pD,CAAC,GAAQA,GAAG,MAAMi0L,IAAI9zL,EAAEyzB,EAAE5zB,CAAC,CAAC,CACxI,SAASqwJ,GAAIlwJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAIG,EAAE,GAAG,KAAQH,GAAG4zB,EAAEyvB,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAEy5G,GAAKhmF,GAAEzzB,EAAE,IAAM,EAAEy5G,GAAIz5G,EAAE,GAAI,CAAA,GAAGH,GAAG,GAAG+zL,GAAI5zL,EAAE,GAAGikE,EAAGC,GAAGC,GAAI,EAAEtkE,EAAE,EAAE,CAAC,CAAC,GAASG,CAAC,CACxI,SAAS0wG,IAAI1wG,EAAE,CAAC,IAAIyzB,EAAE,OAAAzzB,EAAE,GAAGw7C,IAAIx7C,GAAGyzB,EAAEstD,IAAI/gF,EAAE,EAAEA,EAAE,CAAC,EAAE,CAACyzB,GAAG,CAAC4uD,GAAI6wG,GAAI/D,IAAK,CAAC17J,EAAE,IAAIA,EAAE,EAAE,IAAIskD,IAAK0kC,GAAK,EAACs3E,IAAKC,GAAGvgK,CAAC,GAAGA,EAAE,GAAG,WAAW,CAAC,IAAWzzB,EAAE,CAAC,CACxI,SAASi0L,IAAIj0L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAoqD,EAAEvG,EAAGwpG,EAAIpmF,GAAItmE,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAEp0B,GAAGG,EAAEiqD,EAAE,EAAEjqD,IAAKi9G,KAAMikE,MAAOrhL,EAAE,GAAI,EAAC25E,GAAIh5E,EAAE,EAAEkjD,EAAG7jD,EAAE,EAAE,CAAC,EAAEA,IAAIQ,EAAEq0L,GAAIzqI,CAAC,EAAEq8D,GAAIr8D,EAAE5pD,CAAC,EAASR,CAAC,CACzI,SAAS80L,IAAIn0L,EAAEyzB,EAAE,EAAE,CAACA,GAAG,QAAQ,gBAAgB,KAAK,QAAQ,eAAe,QAAQ,OAA0B,QAAQ,KAAK,KAAK,QAAQzzB,CAAC,CAAC,CACzI,SAASo0L,IAAIp0L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACA,GAAGzpD,EAAGkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAqDg6F,GAAIh6F,EAAEh2B,EAAEzzB,CAAC,CAAC,CACzI,SAASq0L,IAAIr0L,EAAE,CAAK,IAAEH,EAAE4pD,EAAM,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASqjD,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAM4pD,EAAE,IAAI6qI,IAAIt0L,EAAE,EAAEkzC,EAAIlzC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEu0L,IAAI9qI,CAAC,EAAEzpD,EAAE,EAAEypD,EAAE,EAAEzpD,EAAE,EAAEypD,EAAE,CAAC,CACzI,SAAS+qI,GAAIx0L,EAAEyzB,EAAE5zB,EAAE,CAAC4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE,CAAC5zB,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAEG,EAAE,CAAC,EAAEyzB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE,CAAC5zB,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAEG,EAAE,CAAC,CAAC,CACzI,SAASy0L,IAAIz0L,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAWzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAUzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAWzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAS8wC,GAAGvkE,CAAC,EAAEukE,GAAG9wC,CAAC,CAAC,CACzI,SAAS65E,GAAIttG,EAAEyzB,EAAE,CAAQ,OAAP3C,GAAI9wB,CAAC,EAAKyzB,GAAG,KAAa,GAAS4uD,GAAIriF,EAAEyzB,CAAC,EAAU,GAAYzzB,EAAE,QAAQyzB,EAAE,QAAQ4uD,GAAIriF,EAAE,YAAW,EAAGyzB,EAAE,YAAa,CAAA,CAAC,CAC1I,SAASihK,IAAI10L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAE,EAAEjqD,EAAEi0B,EAAE,GAAE,EAAGg2B,EAAEjqD,EAAE,EAAEiqD,EAAG5pD,EAAE4zB,EAAE,GAAGg2B,CAAC,EAAK8hB,EAAG1rE,EAAE,EAAE,GAAIqjD,EAAGrjD,EAAE,EAAE,EAAE,GAAGwwG,KAAShxG,EAAEo0B,EAAE,GAAGg2B,CAAC,EAAEpqD,GAAG,MAAM+qI,GAAIpqI,EAAEkjD,EAAG7jD,EAAE,EAAE,CAAC,EAAG,CACzI,SAAS+wK,IAAIpwK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAE,IAAI64B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAE,IAAI8e,GAAIrlB,EAAGgwD,GAAIlzG,EAAE,EAAER,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEopC,EAAInV,EAAE,EAAEg2B,CAAC,EAAE2mH,IAAIpwK,EAAEypD,EAAEjqD,CAAC,CAAE,CAC1I,SAASsrG,GAAI9qG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAG0sD,GAAIvsD,EAAE,IAAI,EAAE,GAAGusD,GAAIvsD,EAAE,GAAG,EAAE,GAAGyzB,EAAEw5E,GAAIjtG,CAAC,EAAE,IAAIH,GAAG4pG,IAAG,EAAGC,KAAKj2E,CAAC,EAAE,CAAC5zB,IAAIA,EAAE6pG,IAAIj2E,CAAC,EAAE,IAAI6D,GAAIt3B,CAAC,GAAUH,GAAS,IAAIy3B,GAAIt3B,CAAC,CAAC,CAC1I,SAAS20L,IAAI30L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAc,OAAZ5pD,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAG4pD,EAAElU,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG+0L,EAAG,CAAC,EAAKnrI,GAAG,MAAaA,EAAUh2B,EAAE,IAAI,CAC1I,SAASsvF,IAAI/iH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAc,OAAZ5pD,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAG4pD,EAAElU,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG+0L,EAAG,CAAC,EAAKnrI,GAAG,MAAaA,EAAUh2B,EAAE,IAAI,CAC1I,SAASohK,IAAI70L,EAAEyzB,EAAE,CAACwkC,GAAG,EAAG,IAAIp4D,EAAE4pD,EAAE,IAAIA,EAAE,IAAIonD,GAAGphC,GAAGk3G,GAAI3mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAmB,GAAf5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK5pD,EAAE,EAAE,GAAG4zB,GAAG5zB,EAAE,EAAE,GAAG4zB,EAAG,OAAO5zB,EAAG,OAAO,IAAI,CAC1I,SAASyyE,GAAItyE,EAAEyzB,EAAE5zB,EAAE,CAAC,KAAK,EAAEG,EAAE,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIuW,GAAI,KAAK,EAAE,IAAI8uD,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAEz2E,EAAE,KAAK,EAAE,IAAI2tC,GAAI3tC,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,EAAE5zB,CAAC,CAC1I,SAASi1L,GAAI90L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAyC,IAAvC,KAAK,EAAE,IAAIuhE,GAAI,KAAK,EAAE,IAAIn3B,GAAI,KAAK,EAAE,EAAM/pC,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,EAAEh2B,GAAGq3G,GAAI,KAAKr3G,CAAC,CAAE,CAC1I,SAASshK,IAAI/0L,EAAE,CAAC6jE,GAAG,EAAM7jE,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAEk5G,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAO,KAAK,EAAE,EAAE,KAAK,EAAEn0H,EAAE,OAAO,KAAK,EAAEA,EAAE0oI,GAAI,IAAI,EAAE,CAC3I,SAASssD,GAAIh1L,EAAEyzB,EAAE5zB,EAAE,CAAC8rC,IAAI,KAAK,IAAI,EAAE,KAAK,EAAEs4B,EAAG+pH,IAAGC,IAAI,KAAKxmG,KAAMyxB,EAAG9hE,EAAGukF,GAAG,CAAC,EAAEviB,EAAI,IAAI,EAAE,CAACwiB,GAAIC,GAAIC,EAAG,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE97H,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,CAAC,CAC3I,SAASo1L,IAAIj1L,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIm8B,GAAI,KAAK,EAAEiD,EAAG4gD,GAAGsP,GAAI,IAAIr1B,EAAG,EAAGoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEjjG,CAAC,CAC3I,SAASk1L,IAAIl1L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4D,IAA1DA,EAAE7pE,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAEnrE,EAAIiqC,EAAE6vD,GAAI58K,EAAE,EAAE,EAAE,CAAC,EAAEyzB,EAAEy1G,GAAIlpI,EAAE,CAAC,EAAMypD,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEsqE,GAAIjqE,EAAEktH,CAAC,CAAE,CAC1I,SAASooE,IAAIn1L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4D,IAA1DltH,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAEnrE,EAAIjjF,EAAE+8K,GAAI58K,EAAE,EAAE,EAAE,CAAC,EAAEyzB,EAAEy1G,GAAIlpI,EAAE,CAAC,EAAMR,EAAEi0B,EAAEp0B,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEwqE,GAAIpgB,EAAE5pD,CAAC,CAAE,CAC1I,SAASu1L,IAAIp1L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAG62E,GAAI12E,EAAE,EAAE,GAAGstB,KAAMu7F,MAAOp1F,EAAEyvB,EAAG0lE,EAAI5oH,EAAE,EAAE,EAAE6oH,EAAG,EAAE,EAAE,EAAEhpH,EAAEqjD,EAAG0lE,EAAI5oH,EAAE,EAAE,EAAE6oH,EAAG,EAAE,EAAE,EAAS/pD,GAAIrrC,EAAE,EAAE5zB,EAAE,CAAC,EAAE,GAAc,EAAM,CAC3I,SAASw1L,IAAIr1L,EAAE,CAAC,IAAIyzB,EAAKsmC,EAAG0uD,GAAIzoH,GAAGgwB,GAAG,EAAGslK,IAAK,IAAIv7H,GAAIgjC,GAAK,EAAComC,GAAG,IAAQ98B,GAAIrmG,CAAC,GAAuByzB,EAAEyvB,EAAGulE,GAAIpiB,GAAIrmG,CAAC,EAAEs1L,EAAG,EAAE,GAAG,EAAEnsB,GAAInpK,EAAEs1L,GAAI7hK,CAAC,GAAzD01I,GAAInpK,EAAEs1L,GAAIjyD,EAAG,EAA+C,CAC3I,SAASiuD,IAAItxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE+1L,GAAIv1L,EAAE,EAAEyzB,EAAE5zB,GAAGi/F,EAAK,EAACmE,GAAK,EAACsyF,GAAIv1L,EAAE,EAAEyzB,EAAE5zB,EAAEujG,EAAG,EAAKpjG,EAAE,IAAGR,EAAE0jD,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAAC+jC,GAAK,EAAC,EAAE,EAAExkG,EAAEvG,EAAG0lE,EAAI/oH,EAAEouJ,EAAG,EAAE,EAAE,EAAE5nB,GAAIrmI,EAAE,EAAER,EAAEiqD,CAAC,EAAE,CAC3I,SAAS+rI,IAAIx1L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEoqD,EAAEh2B,EAAE,EAAE,EAAEp0B,EAAEo0B,EAAE,EAAEzzB,EAAE,EAAEypD,CAAC,EAAEpqD,CAAC,EAAE,IAAI+tH,IAAIptH,EAAEyzB,CAAC,EAAK5zB,IAAGG,EAAE,EAAEypD,CAAC,EAAEpqD,CAAC,EAAE,IAAIk/B,IAAI9K,CAAC,EAAEj0B,EAAE0jD,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGwuD,GAAG,EAAG,EAAE,EAAIl5K,GAAGg3E,GAAGx2E,EAAE,EAAER,EAAEi0B,CAAC,EAAE,CAC3I,SAASgiK,IAAIz1L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAyC,GAAvCopC,EAAIg/E,GAAI5nH,CAAC,EAAEyzB,EAAE,GAAGzzB,CAAC,EAAEH,EAAEqjD,EAAGgwD,GAAI2U,GAAI7nH,CAAC,EAAE,EAAE,EAAKH,EAAG,IAAIL,EAAEK,EAAE,GAAI,EAACL,EAAE,MAAOiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAE0gE,GAAI0nD,GAAIn+D,EAAE,CAAC,GAAG,IAAIgsI,IAAIhsI,EAAEh2B,CAAC,CAAG,CAC3I,SAASiiK,IAAI11L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,GAAGiwF,KAAKixC,IAAI3qL,CAAC,EAAE,IAAM25I,KAAiBC,KAAZrzF,GAAG,EAAG,IAAuBszF,MAAMtzF,KAAM,OAAUkD,EAAE,IAAI+7B,IAAI/xD,CAAC,EAAEg2B,EAAE,EAAE5pD,EAAE81L,IAAI31L,EAAEypD,CAAC,EAAY,CAC3I,SAASmsI,GAAI51L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE,CAACG,EAAE,EAAE,IAAI47E,GAAK,EAACC,GAAK,GAAE77E,EAAE,IAAI+9F,GAAG,EAAGva,IAAKxjF,EAAE,EAAE,IAAIm+F,GAAG,EAAGoV,KAAM1zG,EAAEg2L,IAAI71L,EAAEyzB,CAAC,EAAEqiK,IAAI91L,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAE,GAAGwzG,EAAG,IAAI3zG,EAAEk2L,IAAI/1L,EAAEyzB,CAAC,EAAEuiK,IAAIh2L,EAAEyzB,CAAC,EAAE,CAC3I,SAASwiK,GAAIj2L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAQ,GAAN,EAAEzpD,EAAE,EAAKyzB,GAAG,OAAM5zB,GAAG4pD,EAAEzpD,EAAE,EAAE,GAAGurE,EAAG9hB,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,KAAK,MAASysI,IAAIziK,EAAE5zB,CAAC,GAAE,CAAC+zL,GAAI5zL,EAAE,EAAE,EAAEH,CAAC,EAAE,MAAM,CAAE+zL,GAAI5zL,EAAE,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,CAAC,CAC3I,SAAS0iK,IAAIn2L,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO,IAAIuhE,GAAIr+D,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAEkD,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,EAAEkD,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAEkD,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,CAAC,CAAC,CAC3I,SAASu2L,IAAIp2L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAyB,OAAvB5pD,EAAEi/D,GAAI9+D,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAE,CAAC,EAAK5zB,GAAG,EAAUA,GAAE4pD,EAAEqV,GAAI9+D,EAAE,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAKg2B,GAAG,EAAUA,EAASqV,GAAIrrC,EAAE,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAE,CAAC,EAAC,CAC3I,SAASq2L,IAAIr2L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAc,OAAZ1tH,EAAEo0B,EAAE,EAAEs5F,EAAEltH,EAAE,EAAKR,GAAG0tH,EAAU1tH,EAAE,EAAE0tH,EAAE,GAAOtjE,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,EAAEQ,EAAE,EAAEH,EAAE,CAAC,EAAS4pD,GAAG,GAAGjqD,GAAG,EAAE,EAAEiqD,GAAG,EAAE,GAAGjqD,GAAG,EAAE,EAAEo/D,GAAInV,EAAEjqD,CAAC,EAAE,CAC3I,SAAS82L,IAAIt2L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,GAAG,CAAAQ,EAAE4zB,EAAE,CAAC,EAAsB,IAAZ5zB,EAAE4zB,EAAE,CAAC,EAAE,GAASj0B,EAAE,IAAI04B,EAAIwvJ,GAAIj0J,CAAC,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEH,EAAE8oL,GAAI1+H,EAAEh2B,CAAC,EAAE6iK,IAAIt2L,EAAEX,EAAEQ,CAAC,CAAE,CAC5I,SAAS02L,GAAIv2L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAc,OAAZA,EAAE5pD,EAAEG,EAAE,CAAC,EAAEyzB,CAAC,EAASzzB,EAAE,GAAG,IAAK,GAAE,IAAK,GAAE,OAAO,IAAIo1D,GAAI,EAAE3L,CAAC,EAAE,IAAK,GAAE,IAAK,GAAE,OAAO,IAAI2L,GAAI3L,EAAE,CAAC,EAAE,QAAQ,OAAO,IAAK,CAAC,CAC3I,SAAS+sI,IAAI/iK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAEA,EAAE6jD,EAAG+vE,GAAIpzH,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAACR,EAAE,GAAGo0B,EAAEg2B,CAAC,EAAEm1D,IAAI/+G,EAAE,EAAER,CAAC,CAAC,OAAOW,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGR,EAAEQ,EAAQ0lC,EAAIlmC,CAAC,GAAakmC,EAAI1lC,CAAC,CAAC,CAAC,CAC3I,SAAS4qJ,IAAI5qJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,OAAA6pD,EAAE,KAAKk7G,EAAE8xB,GAAIv5I,GAAK,EAACzpB,CAAC,EAAEp0B,EAAE,KAAQslK,IAAGnlK,EAAE,KAAKI,EAAE82L,GAAI/xB,EAAE9kK,CAAC,EAAEktH,EAAE,KAAKntH,GAAG,OAAOmtH,EAAE/sH,EAAE,GAAG2kK,EAAE/kK,CAAC,GAAGJ,EAAEutH,EAAE1tH,EAAEG,GAAEiqD,EAAEpqD,EAASoqD,CAAC,CAC3I,SAASktI,IAAI32L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAAvtH,EAAE,IAAIm4H,GAAI33H,EAAE,EAAE,EAAE,IAAI+sH,EAAEt5F,EAAE,EAAEs5F,IAAKtQ,GAAK,EAACikE,MAAOrhL,EAAEQ,EAAE,EAAER,IAAKo9G,KAAMikE,KAAMC,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAGg2B,EAAQA,EAAE,GAAGjqD,CAAC,EAAXiqD,EAAEjqD,EAAkBiqD,CAAC,CAC5I,SAASmtI,GAAI52L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAa,GAAXA,EAAEQ,EAAE,OAAUyzB,GAAGj0B,EAAE,OAAOA,EAAE,IAAIi0B,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAEj0B,GAAU,CAAA6xK,IAAKrvD,GAAIvuF,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,CAAC,GAAG5zB,EAAE4pD,CAAC,EAAjDh2B,IAAK,CAAoD,OAAOA,CAAC,CAC3I,SAAS01G,GAAInpI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAmD,IAAjDA,EAAEzpD,EAAE,EAAE,OAAOyzB,EAAE,OAAOg2B,IAAIh2B,EAAEyjB,GAAI,IAAI,MAAMuS,CAAC,EAAEh2B,CAAC,GAAO5zB,EAAE,EAAEA,EAAE4pD,EAAE,EAAE5pD,EAAGgmE,GAAGpyC,EAAE5zB,EAAEG,EAAE,EAAEH,CAAC,CAAC,EAAE,OAAA4zB,EAAE,OAAOg2B,GAAGoc,GAAGpyC,EAAEg2B,EAAE,IAAI,EAASh2B,CAAC,CAC5I,SAASojK,IAAI72L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAmD,IAAjDA,EAAEzpD,EAAE,EAAE,OAAOyzB,EAAE,OAAOg2B,IAAIh2B,EAAEyjB,GAAI,IAAI,MAAMuS,CAAC,EAAEh2B,CAAC,GAAO5zB,EAAE,EAAEA,EAAE4pD,EAAE,EAAE5pD,EAAGgmE,GAAGpyC,EAAE5zB,EAAEG,EAAE,EAAEH,CAAC,CAAC,EAAE,OAAA4zB,EAAE,OAAOg2B,GAAGoc,GAAGpyC,EAAEg2B,EAAE,IAAI,EAASh2B,CAAC,CAC5I,SAAS21B,GAAIppD,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAuB,OAArBG,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAMj0B,GAAyDH,EAAE4+E,GAAIz+E,EAAEK,CAAC,EAAE8rE,IAAI3rE,EAAER,CAAC,EAASH,IAAjFoqD,EAAE,IAAI2sB,GAAIp2E,EAAEyzB,EAAE5zB,CAAC,EAAE25D,GAAIx5D,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAEoiB,IAAIpiB,CAAC,EAAS,KAAuC,CAC7I,SAASqtI,IAAI92L,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,GAAG,KAAK,OAAO,KAAwB,GAAnByzB,EAAEsjK,IAAIxI,GAAIvuL,EAAE,EAAI,CAAC,EAAKyzB,GAAG,KAAM,MAAMiS,EAAI,IAAIuO,GAAI,6BAA6Bj0C,EAAE,GAAG,CAAC,EAAE,OAAOyzB,CAAC,CAC3I,SAASy+H,GAAIlyJ,EAAE,CAAO,OAAN6jE,GAAK,EAAItX,GAAIvsD,EAAE,CAAC,EAAE,EAAMusD,GAAIvsD,EAAE,EAAE,GAAG,EAAU,IAAIg3L,GAAI,GAAGppC,GAAI5tJ,CAAC,CAAC,EAASo8K,GAAgB7vH,GAAIvsD,EAAE,EAAE,GAAG,EAAEq8K,IAAIpvE,GAAIjtG,CAAC,CAAC,EAAE,IAAIg3L,GAAI,EAAEh3L,CAAC,CAAC,CAC5I,SAASs9D,IAAK,CAAC,OAAA+qB,GAAK,EAAQ6wB,EAAG9hE,EAAG6/I,IAAG,CAAC,EAAE79E,EAAI,IAAI,EAAE,CAAC89E,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAI/V,EAAG,CAAC,CAAC,CAC5I,SAASgW,IAAIv4L,EAAE,CAAC,IAAIyzB,EAAE,KAAK,EAAE,IAAIoR,EAAI,KAAK,EAAE,IAAIuW,GAAI,KAAK,EAAE,IAAIA,GAAI3nB,EAAEzzB,EAAE,EAAE,EAAE,KAAK,EAAEkjD,EAAG0lE,EAAI3K,GAAIxqF,CAAC,GAAGnG,GAAG,EAAGo4J,KAAM,GAAG,EAAE,KAAK,EAAExyI,EAAImnC,EAAGm+G,GAAI/kK,EAAEi5J,EAAG,CAAC,CAAC,CAAC,CAC5I,SAASjiC,IAAIzqJ,EAAE,CAAC,KAAK,EAAE,IAAI6kC,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAE,CAACs+C,GAAIqlE,GAAI,IAAI/Y,GAAI,KAAK,IAAIgN,GAAI,IAAI+oC,GAAI3gJ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI84B,GAAI,IAAIziB,GAAG,CAAC,CAAC,EAAE,IAAIywC,GAAG,EAAGC,IAAK,CAC7I,SAAS0zC,IAAK,CAACA,GAAI/1F,EAAIq2I,GAAI,IAAI/lF,GAAI,UAAU,CAAC,EAAEgmF,GAAI,IAAIhmF,GAAI,QAAQ,CAAC,EAAEimF,GAAI,IAAIjmF,GAAI,QAAQ,CAAC,EAAEkmF,GAAI,IAAIlmF,GAAI,QAAQ,CAAC,EAAEmmF,GAAI,IAAInmF,GAAI,SAAS,CAAC,CAAC,CAC5I,SAAS2oC,IAAK,CAACA,GAAIj5F,EAAI81I,GAAI,IAAI1kF,GAAI,cAAc,CAAC,EAAE2kF,GAAI,IAAI3kF,GAAI,YAAY,CAAC,EAAE4kF,IAAI,IAAI5kF,GAAI,QAAQ,CAAC,EAAE6kF,GAAI,IAAI7kF,GAAIu3E,GAAI,CAAC,EAAEuN,IAAI,IAAI9kF,GAAI,MAAM,CAAC,CAAC,CAC7I,SAAS2iI,IAAIz4L,EAAE,CAAC,IAAIyzB,EAAe,OAAbA,EAAEzzB,EAAE,GAAG,IAAI,EAASyzB,EAAC,CAAE,IAAK,IAAG,MAAO,GAAE,IAAK,IAAG,MAAO,GAAE,IAAK,IAAG,MAAO,GAAE,IAAK,IAAG,MAAO,GAAE,IAAK,IAAG,MAAO,EAAE,CAAC,MAAO,EAAE,CAC5I,SAASilK,GAAI14L,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO+7F,GAAG,EAAGt6B,GAAI,IAAK,GAAE,OAAOs6B,GAAG,EAAGz6B,GAAI,IAAK,GAAE,OAAOy6B,GAAK,EAACx6B,GAAI,IAAK,GAAE,OAAOw6B,GAAK,EAACr6B,EAAI,CAAC,OAAOq6B,GAAG,EAAGs+C,EAAG,CAC7I,SAASs+C,IAAG34L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAA0C,OAAxCA,EAAE5pD,EAAE,EAAE,YAAa,EAACs2I,GAAIA,GAAI1sF,EAAE,IAAIA,EAAE,CAACA,GAAUh2B,EAAC,CAAE,IAAK,GAAEzzB,EAAE,GAAGypD,EAAE,MAAM,IAAK,GAAE2oG,GAAGpyJ,EAAEypD,EAAE,IAAI,CAAC,EAAE,MAAM,QAAQ2oG,GAAGpyJ,EAAEypD,EAAEh2B,CAAC,CAAE,CAAC,CAC7I,SAAS6lI,GAAIt5J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAa,GAAXkkD,GAAIl6E,EAAEzzB,EAAE,CAAC,EAAKyzB,GAAGzzB,EAAE,GAAG,EAAS,IAANypD,EAAEzpD,EAAE,EAAMH,EAAEG,EAAE,EAAEH,EAAE4zB,EAAE,EAAE5zB,EAAG4pD,EAAEA,EAAE,MAAgB,KAARA,EAAEzpD,EAAE,EAAE,EAAMH,EAAE,EAAEA,EAAE4zB,EAAE,EAAE5zB,EAAG4pD,EAAEA,EAAE,EAAG,OAAO,IAAIy7B,IAAIllF,EAAEyzB,EAAEg2B,CAAC,CAAC,CAC7I,SAASo9B,IAAK,CAACA,GAAIniF,EAAIwtH,GAAI,IAAIrjE,GAAI,oDAAoD,CAAC,EAAEsjE,IAAI,IAAItjE,GAAI,qCAAqC,CAAC,CAAC,CAC7I,SAAS+pI,IAAI54L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAmD,IAAjDiqD,EAAEovI,IAAI74L,CAAC,EAAEgoE,GAAIve,EAAE3B,GAAG,EAAEtoD,EAAEQ,EAAE,EAAER,EAAE,EAAEykE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAMtkE,EAAE,IAAIq4B,EAAIuxB,CAAC,EAAE5pD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE8nH,GAAInoH,EAAEi0B,EAAE,CAAC,CAAE,CAC7I,SAASqlK,IAAI94L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAkD,IAAhDA,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGA,EAAE,GAAOH,EAAE4pD,EAAE,EAAE,GAAI,EAAC5pD,EAAE,GAAGA,EAAE,EAAE,MAAO4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,EAAE,EAAE4zB,EAAE,KAAK,OAAOuvH,GAAIv5F,CAAC,CAAC,CAC7I,SAAS03G,IAAInhK,EAAE,CAAC,IAAIyzB,EAAM4vD,GAAIngC,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC6oI,GAAK,EAAC,EAAE,CAAC,IAAU1iI,EAAEzzB,EAAE,EAAE+4L,KAAKl8H,GAAI,EAAEppC,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAG,EAACslK,IAAI71I,EAAGo4B,GAAI7nD,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAC,CAC7I,SAASulK,IAAIh5L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJQ,EAAE,EAAML,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEzpD,EAAE,EAAEH,EAAEkD,EAAK,KAAK,IAAIlD,EAAER,CAAC,EAAE,OAAOQ,CAAC,CAC7I,SAASo5L,GAAIj5L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAM,IAAJA,EAAE,EAAMK,EAAE,EAAE4pD,EAAEzpD,EAAE,OAAOH,EAAE4pD,EAAE5pD,IAAK4zB,GAAGuuF,GAAIniH,EAAEG,EAAE,MAAM,EAAEA,EAAE,WAAWH,CAAC,GAAG4zB,GAAG,IAAIA,EAAE,MAAMj0B,EAAEqlI,GAAIrlI,EAAE8xG,GAAI,EAAE79E,EAAE,EAAE,CAAC,GAAG,OAAOj0B,CAAC,CAC7I,SAASg5L,GAAIx4L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAE,KAAQitB,GAAI12E,GAAGgwB,GAAK,EAACkpK,GAAK,IAAEr5L,EAAEqjD,EAAG0lE,EAAI5oH,EAAEk5L,EAAG,EAAE,EAAE,EAAEr5L,EAAE,GAAG4zB,CAAC,IAAIg2B,EAAE5pD,EAAE,GAAG4zB,CAAC,IAAGg2B,GAAG,MAAQw0D,GAAIj+G,CAAC,IAAIypD,EAAEm/D,EAAI3K,GAAIj+G,CAAC,EAAEyzB,CAAC,GAAUg2B,CAAC,CAC9I,SAAS0vI,IAAIn5L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEi0B,EAAE,EAAE,EAAEg2B,EAAEjqD,EAAE,EAAK,EAAAiqD,IAAIkhC,KAAM0hC,KAAM5iE,GAAGggG,MAAY5pJ,EAAE,IAAIgxG,GAAGphC,GAAGo3G,GAAIrnL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAI8D,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAG25D,GAAIx5D,EAAE,EAAEyzB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,CAAC,EAAC,CAC7I,SAASsmI,GAAInmI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAiqD,EAAEqgG,GAAI9pJ,EAAE,GAAI,EAACyzB,CAAC,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,GAAE,EAAUH,EAAE,GAAGL,EAAEQ,EAAE,GAAGypD,CAAC,EAAEjqD,GAAG,EAAEQ,EAAE,GAAGR,CAAC,EAAE62H,GAAIr2H,EAAEypD,CAAC,GAAG5pD,EAAE,EAAEw2H,GAAIr2H,EAAEypD,CAAC,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,GAAI,EAAC,GAAGzpD,EAAEA,EAAE,GAAI,EAACH,CAAC,CAAC,CAC7I,SAASyjG,GAAItjG,EAAE,CAAC,IAAIyzB,EAAE,GAAG83C,EAAGvrE,EAAE,EAAE,CAAC,EAAE,CAAY,GAAXyzB,EAAEs/J,GAAI/yL,EAAE,CAAC,EAAKyzB,GAAG,KAAM,MAAMiS,EAAI,IAAIoN,GAAIsmJ,IAAIp5L,EAAE,EAAE,MAAMq5L,KAAKp9I,GAAIq9I,EAAE,EAAEA,GAAG,GAAGC,GAAG,CAAC,EAAE,OAAO9lK,CAAC,KAAM,QAAOzzB,EAAE,CAAE,CAC7I,SAASw5L,IAAIx5L,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,GAAG,KAAK,OAAO,KAAwB,GAAnByzB,EAAEgmK,IAAIlL,GAAIvuL,EAAE,EAAI,CAAC,EAAKyzB,GAAG,KAAM,MAAMiS,EAAI,IAAIuO,GAAI,gCAAgCj0C,EAAE,GAAG,CAAC,EAAE,OAAOyzB,CAAC,CAC9I,SAAS4+H,GAAI5+H,EAAE,CAAC,IAAI5zB,EAAE,GAAG,CAAC,OAAAA,EAAE4zB,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,GAAI,EAACA,EAAE,EAAEA,EAAE,IAAW5zB,CAAC,OAAOG,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGyzB,EAAE,GAAI,EAAOiS,EAAI,IAAIwC,EAAG,GAAaxC,EAAI1lC,CAAC,CAAC,CAAC,CAC7I,SAAS05L,GAAIjmK,EAAE,CAAC,IAAI5zB,EAAE,GAAG,CAAC,OAAAA,EAAE4zB,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,GAAI,EAACA,EAAE,EAAEA,EAAE,IAAW5zB,CAAC,OAAOG,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGyzB,EAAE,GAAI,EAAOiS,EAAI,IAAIwC,EAAG,GAAaxC,EAAI1lC,CAAC,CAAC,CAAC,CAC7I,SAASwqB,IAAK,CAACA,GAAI9lB,EAAIi1L,KAAK3pK,GAAG,EAAG4pK,KAAKC,GAAIC,IAAIC,IAAInJ,GAAIoJ,IAAIjgB,GAAIkgB,KAAKvvK,GAAK,EAACwvK,KAAKC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,KAAKnwK,GAAK,EAACyuJ,KAAK2hB,GAAIzhB,IAAI0hB,IAAIxhB,IAAIyhB,GAAIvhB,GAAG,CAC9I,SAASwhB,GAAI76L,EAAE,CAA+B,OAA9B4nD,GAAK,EAAC,KAAK,EAAE,IAAI/iB,EAAI,KAAK,EAAE7kC,EAASA,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,KAAK,EAAE0gH,GAAI74D,GAAG,EAAE,KAAK,EAAEsvD,GAAI,MAAM,IAAK,GAAE,IAAK,GAAE,KAAK,EAAEtvD,IAAI,KAAK,EAAEwvD,EAAI,CAAC,CAC9I,SAASyjF,IAAI96L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,GAAGQ,EAAE,EAAG8iE,GAAI9iE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,CAAC,EAAEsvC,GAAI/iE,EAAE,EAAEA,EAAE,EAAE,EAAEH,CAAC,MAAO,KAAIL,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEs7L,IAAIrxI,EAAEh2B,EAAE5zB,CAAC,CAAG,CAC9I,SAASk7L,IAAI/6L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGzpD,EAAE,EAAE,QAAQyzB,EAAE,EAAE,OAAO,MAAO,GAAM,IAAI5zB,EAAE,EAAE4pD,EAAEzpD,EAAE,EAAE,OAAOH,EAAE4pD,EAAE5pD,IAAK,GAAG,CAACwiF,GAAIriF,EAAE,EAAEH,CAAC,EAAE4zB,EAAE,EAAE5zB,CAAC,CAAC,EAAE,MAAO,GAAM,MAAO,EAAI,CAC9I,SAASm7L,GAAGh7L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAKh2B,EAAE,EAAE,OAAO,IAAGmV,EAAI5oC,EAAE,EAAE,IAAI+hG,IAAGtuE,EAAE,EAAE5zB,CAAC,CAAC,EAAE4pD,EAAEh2B,EAAE,EAAE,OAAO,EAAEg2B,EAAGh2B,EAAE,EAAEA,EAAE,EAAE,OAAO,EAAE,CAAC,EAAG,EAAEg2B,IAAIh2B,EAAE,GAAG43C,IAAIpH,EAAG4rF,GAAGC,GAAI,GAAG,CAACrmG,EAAE,GAAG,CAAC,CAAC,GAAG,CAC/I,SAASwxI,IAAIj7L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAQ,IAANK,EAAEG,EAAE,EAAMR,EAAE0jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,GAAG,EAAEiqD,EAAE,EAAE,EAAEyxI,IAAIzxI,EAAE5pD,EAAE,CAAC,EAAE4pD,EAAE,EAAE,EAAE5pD,EAAE,EAAEqzC,EAAImnC,EAAG5wB,EAAE,EAAE,GAAGgpB,EAAG,CAAC,CAAC,CAAE,CAC/I,SAAS0oH,IAAIn7L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAG,EAAEQ,EAAE,EAAEH,EAAEqzC,EAAImnC,EAAGuuC,EAAI5oH,GAAGkqH,IAAMghC,IAAK,CAAC,EAAE7rJ,EAAEo0B,EAAE,EAAEg2B,EAAEvW,EAAImnC,EAAGuuC,EAAIn1F,EAAEy3H,EAAG,CAAC,CAAC,EAAS7rJ,IAAIsrF,GAAK,EAACi0D,IAAK,GAAGp/I,GAAGo/I,GAAI,EAAE/+I,GAAG4pD,EAAE,EAAE5pD,EAAE4pD,EAAE,GAAG,CAAC,CAC/I,SAAS2xI,IAAIp7L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA5pD,EAAEqjD,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEg2B,EAAEvG,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAS8sH,GAAI9sH,EAAE,EAAEA,EAAE,CAAC,EAAE8sH,GAAI9sH,EAAE,EAAE81C,GAAI1pE,EAAE,CAAC,CAAC,EAAE0gJ,GAAI9sH,EAAE,EAAE81C,GAAI9f,EAAE,CAAC,CAAC,CAAC,CAC/I,SAAS4xI,IAAIr7L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGyxH,GAAG,EAAG,EAAE,EAAK9zE,GAAGx3C,EAAEizB,GAAG,EAAO7mD,EAA+BulD,GAAIvlD,CAAC,GAAjCA,EAAE,IAAI8sC,GAAIm2C,EAAI9iF,EAAE++I,GAAIl/I,CAAC,GAAsBA,GAAGijF,EAAI9iF,EAAE++I,GAAI,IAAI,EAASl/I,CAAC,CAC/I,SAASy7L,IAAIt7L,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIyiB,GAAIziB,EAAE,GAAG,IAAIzzB,EAAE,IAAI2qF,KAAM0hC,KAAM7wD,GAAIA,IAAK/nC,EAAE,GAAG,IAAIA,GAAG6hD,GAAGt1E,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAEw7D,IAAK/nC,EAAE,GAAG,IAAIA,GAAG8nK,GAAIv7L,CAAC,CAAC,EAASyzB,EAAE,CAAC,CAC/I,SAAS+nK,IAAIx7L,EAAEyzB,EAAE,CAACm4F,GAAIn4F,EAAE,4BAA4B,CAAC,EAAE4xB,GAAIs+D,GAAIA,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIsS,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAEo5G,GAAIp4F,CAAC,CAAC,CAC/I,SAASgoK,GAAIz7L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,OAAGK,GAAG,EAAUG,EAAE,GAAGyzB,EAAE5zB,EAAE4pD,CAAC,GAASzpD,EAAE,OAAOypD,GAAGjqD,EAAEQ,EAAE,GAAE,EAAGR,GAAG,EAAEQ,EAAE,GAAGypD,CAAC,EAAEzpD,EAAE,KAAK,GAAGA,EAAE,GAAGR,EAAE,KAAKiqD,CAAC,IAAWzpD,EAAE,GAAGyzB,EAAE5zB,EAAE4pD,CAAC,EAAE,CAC/I,SAASiyI,GAAI17L,EAAEyzB,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,MAAO,CAACmsL,GAAInsL,EAAEyzB,CAAC,CAAC,CAC/I,SAASywH,GAAGzwH,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEh2B,EAAE,GAAG5zB,CAAC,EAAE,GAAG,CAAC,OAAO4pD,EAAE,GAAI,CAAA,OAAOzpD,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAI,qBAAqBryC,CAAC,CAAC,EAAa6lC,EAAI1lC,CAAC,CAAC,CAAC,CAChJ,SAASm8K,GAAIn8K,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAKyzB,EAAEkoK,IAAK,KAAK,EAAE,EAAE,KAAK,EAAEziF,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC1gG,EAAE,CAAC,CAAC,IAAO,KAAK,EAAE,EAAE,KAAK,EAAEylF,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC1gG,EAAEkoK,GAAI,EAAEloK,EAAEkoK,GAAI,CAAC,CAAC,EAAE,CAChJ,SAASrrC,IAAItwJ,EAAEyzB,EAAE,CAAC42C,KAAM,IAAIxqE,EAAE4pD,EAAEjqD,EAAEH,EAA0C,IAAxCQ,EAAEG,EAAEX,EAAEo0B,EAAK83C,EAAGvrE,EAAE,EAAE,GAAG,CAACurE,EAAG93C,EAAE,EAAE,IAAG5zB,EAAE4zB,EAAEp0B,EAAEW,GAAMR,EAAEK,EAAE,GAAI,EAACL,EAAE,MAAgB,GAATiqD,EAAEjqD,EAAE,GAAE,EAAMH,EAAE,GAAGoqD,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,CAChJ,SAASikH,GAAI1tK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAAtjE,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAKg2B,GAAG,KAAOzpD,EAAE,GAAE,GAAIX,EAAEW,EAAE,GAAE,EAAG+sH,EAAE++D,GAAI9rL,EAAEypD,CAAC,EAAEjqD,EAAEQ,EAAE,GAAG,EAAE+sH,EAAE,KAAKtjE,EAAEpqD,CAAC,EAAGQ,EAAQA,EAAE,GAAGL,CAAC,EAAXK,EAAEL,GAAgBssL,GAAI9rL,EAAEypD,CAAC,GAAU5pD,CAAC,CAChJ,SAAS+7L,IAAI57L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAAtjE,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAKg2B,GAAG,KAAOzpD,EAAE,GAAE,GAAIX,EAAEW,EAAE,GAAE,EAAG+sH,EAAEtkB,GAAIzoG,EAAEypD,CAAC,EAAEjqD,EAAEQ,EAAE,GAAG,EAAE+sH,EAAE,KAAKtjE,EAAEpqD,CAAC,EAAGQ,EAAQA,EAAE,GAAGL,CAAC,EAAXK,EAAEL,GAAgBipG,GAAIzoG,EAAEypD,CAAC,GAAU5pD,CAAC,CAChJ,SAASg8L,IAAI77L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAyB,OAAvBA,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,EAASA,EAAE,EAAC,CAAE,IAAK,GAAEzzB,EAAE,GAAG,IAAIH,EAAE,EAAEG,EAAE,GAAG,MAAM,IAAK,GAAEA,EAAE,GAAG,IAAIH,EAAE,EAAEG,EAAE,EAAG,CAAIA,EAAE,IAAGH,EAAE,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAEG,EAAE,EAAE,EAAE,CAChJ,SAAS2oF,IAAK,CAACA,GAAIjkF,EAAIkqI,GAAI,IAAIhgF,GAAI65G,GAAI,CAAC,EAAE55B,GAAI,IAAIjgF,GAAIktI,GAAI,CAAC,EAAEhtD,GAAI,IAAIlgF,GAAImtI,GAAI,CAAC,EAAEhtD,GAAI,IAAIngF,GAAIotI,GAAI,CAAC,EAAEptD,GAAI,EAAE,GAAMC,GAAI,EAAE,GAAKC,GAAI,EAAE,GAAMC,GAAI,EAAE,EAAI,CAChJ,SAAShmD,IAAK,CAACA,GAAIrkF,EAAI4pI,GAAI,IAAI3/E,GAAI85G,GAAI,CAAC,EAAEl6B,GAAI,IAAI5/E,GAAImtI,GAAI,CAAC,EAAEttD,GAAI,IAAI7/E,GAAIotI,GAAI,CAAC,EAAEttD,GAAI,IAAI9/E,GAAIqtI,GAAI,CAAC,EAAE1tD,GAAI,EAAE,GAAMC,GAAI,EAAE,GAAKC,GAAI,EAAE,GAAMC,GAAI,EAAE,EAAI,CAChJ,SAASwtD,IAAIj8L,EAAE,CAAC,IAAIyzB,EAAEA,EAAEzzB,EAAE,EAAE,GAAGyzB,EAAEyvB,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,KAAK,IAAInwB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEmwB,EAAE,IAAIk3D,GAAG,EAAG2+D,KAAMtpJ,EAAE,EAAE,GAAGyzB,CAAC,QAAQA,EAAE,IAAIk3D,GAAK,EAAC2+D,KAAMtpJ,EAAE,EAAEypK,GAAGzpK,EAAE,CAAC,CAAC,CAChJ,SAASk8L,IAAIl8L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiC,IAA/BA,EAAEzpD,EAAE,EAAE,EAAEA,EAAE,GAAGw1C,GAAGiU,CAAC,EAAE,IAAI07B,GAAI17B,CAAC,GAAO5pD,EAAE,IAAIq4B,EAAIuxB,CAAC,EAAE5pD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE0oK,IAAI1oK,CAAC,EAAE,EAAE42C,KAAMrC,GAAIhoE,EAAE,EAAE,IAAI6Y,GAAG,CAAC,CAChJ,SAASujL,IAAIp8L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAe,GAAbiqD,EAAE,EAAEjqD,EAAEuqI,GAAI/pI,CAAC,EAAKR,EAAE,EAAE,QAAQ,EAAG,MAAO,GAAO,IAAIK,EAAE,IAAIq4B,EAAI14B,CAAC,EAAEK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,GAAG2yI,IAAI3oK,CAAC,EAAG,OAAOg2B,CAAC,CAChJ,SAAS4yI,IAAIr8L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqC,IAAnCA,EAAE,EAAEiqD,EAAEvG,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAASg2B,EAAE,GAAI,GAAE5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAEjqD,GAAGK,EAAE,EAAE,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,EAAE4pD,EAAE,OAAOjqD,GAAGQ,EAAE,GAAG,OAAOR,CAAC,CACjJ,SAAS88L,IAAIt8L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqC,IAAnCA,EAAE,EAAEiqD,EAAEvG,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAASg2B,EAAE,GAAI,GAAE5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAEjqD,GAAGK,EAAE,EAAE,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,EAAE4pD,EAAE,OAAOjqD,GAAGQ,EAAE,GAAG,OAAOR,CAAC,CACjJ,SAAS+8L,IAAIv8L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAGh2B,EAAE,EAAEg2B,EAAE,EAAG,MAAO,GAAU,GAAGh2B,EAAE,GAAGg2B,EAAE,EAAE,CAAC,GAAGh2B,EAAE,EAAEg2B,EAAE,EAAG,MAAO,GAAU,GAAGh2B,EAAE,GAAGg2B,EAAE,GAAMzpD,EAAE,EAAEH,EAAE,EAAG,MAAO,EAAM,CAAC,MAAO,EAAK,CAChJ,SAAS2rE,GAAGxrE,EAAEyzB,EAAE,CAAC,OAAG2mC,GAAGp6D,CAAC,EAAU,CAAC,CAACw8L,IAAG/oK,CAAC,EAAUzzB,EAAE,GAAW,CAAC,CAACA,EAAE,GAAGyzB,CAAC,EAAUymC,GAAGl6D,CAAC,EAAU,CAAC,CAACy8L,IAAGhpK,CAAC,EAAUumC,GAAGh6D,CAAC,EAAU,CAAC,CAAC08L,IAAGjpK,CAAC,EAAS,EAAK,CACjJ,SAAS01I,GAAInpK,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAAA,GAAG,MAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGy8J,GAAIz8J,EAAE,EAAEyzB,CAAC,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAK,EAACC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAG0gK,GAAI1gK,EAAE,EAAEyzB,EAAE5zB,CAAC,GAAUG,CAAC,CAChJ,SAAS0pD,IAAI1pD,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAEA,EAAEo0B,EAAE,IAAIzD,GAAK,EAAC2sK,GAAK,EAACz5I,EAAGzvB,EAAE,GAAGkpK,EAAG,EAAE,EAAE,EAAE38L,EAAE,EAAER,EAAE8iL,IAAIjjL,CAAC,EAAKG,IAAI6oF,GAAK,EAACk6F,MAAgB1iL,GAAG,CAAC2zL,GAAIh0L,CAAC,GAAUspC,GAAI8zJ,IAAI58L,EAAER,EAAEiqD,CAAC,EAAEh2B,CAAC,EAAC,CACjJ,SAAS28H,GAAIpwJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAA1tH,EAAEyqJ,GAAI9pJ,EAAE,GAAE,EAAGyzB,CAAC,EAAEj0B,EAAEi0B,EAAEzzB,EAAE,GAAI,EAAQR,EAAE,GAAGutH,EAAE/sH,EAAE,GAAGX,CAAC,EAAE0tH,GAAG,EAAE/sH,EAAE,GAAG+sH,EAAEltH,EAAE,EAAI,EAAEo/I,GAAIj/I,EAAEX,EAAEQ,CAAC,GAAGqjD,EAAG7jD,EAAE,EAAE,EAAE,GAAE,EAAG,GAAGW,EAAEA,EAAE,GAAE,EAAGR,EAAEK,EAAE4pD,CAAC,CAAC,CACjJ,SAASozI,IAAI78L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAKltH,EAAE,GAAG4zB,CAAC,IAAG+3B,GAAG,EAAM0uE,GAAIzmG,CAAC,GAAGj0B,EAAE0jD,EAAGrjD,EAAE,GAAG4zB,CAAC,EAAE,GAAG,EAAEihK,IAAI10L,EAAER,CAAC,IAAOH,GAAG0tH,EAAEt5F,EAAGs5F,EAAO7pE,EAAGuG,EAAE,EAAE,EAAE,GAAGsjE,CAAC,EAAlB,MAAuB1tH,GAAGimC,IAAIzlC,EAAE,GAAG4zB,CAAC,EAAEp0B,CAAC,GAAG,CACjJ,SAASy9L,IAAI98L,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAOuoF,GAAG,EAAGolD,GAAI,IAAK,GAAE,OAAOplD,GAAG,EAAGqlD,GAAI,IAAK,GAAE,OAAOrlD,GAAK,EAACulD,GAAI,IAAK,GAAE,OAAOvlD,GAAK,EAACslD,GAAI,QAAQ,OAAO,IAAK,CAAC,CACjJ,SAASkvD,GAAI/8L,EAAE,CAAC,OAAO,OAAOA,EAAE,CAAE,KAAKq6D,GAAI,OAAO86G,GAAIn1K,CAAC,EAAE,KAAKm6D,GAAI,OAAOqF,GAAGx/D,CAAC,EAAE,KAAKi6D,GAAI,OAAOmW,GAAG,EAAGpwE,EAAE,KAAK,KAAK,QAAQ,OAAOA,GAAG,KAAK,EAAEyxE,GAAIzxE,CAAC,CAAE,CAAC,CAClJ,SAASw4K,IAAIx4K,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,EAAG,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAEypH,IAAIzpH,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAE,MAAM,IAAK,GAAE8pH,IAAI3pH,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAE,MAAOo2I,IAAIj2I,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAE5zB,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,CAAC,EAAEzzB,EAAE,EAAE,CAAC,CACjJ,SAASg0G,IAAIh0G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,GAAG,KAAM,OAAO,KAAmC,IAA9BH,EAAEokE,EAAGopD,GAAG7iD,EAAI,IAAIxqE,EAAE,OAAO,EAAE,CAAC,EAAMyzB,EAAE,EAAEA,EAAE5zB,EAAE,OAAO4zB,IAAK5zB,EAAE4zB,CAAC,EAAEyvB,EAAG0pG,IAAI5sJ,EAAEyzB,CAAC,EAAEzzB,EAAEyzB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO5zB,CAAC,CACjJ,SAASqjJ,GAAIljJ,EAAE,CAAC,IAAIyzB,EAAE,GAAGklJ,GAAI34K,CAAC,EAAG,OAAAqxG,GAAIrxG,CAAC,EAAKA,EAAE,GAAE,IAAIyzB,EAAEupK,GAAIh9L,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAEyzB,GAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAASA,EAAE,EAAO,MAAM0lC,EAAI,IAAIwC,EAAG,CAAE,CACjJ,SAAS+0J,IAAIj9L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA0E,OAAxEA,EAAEW,EAAE,EAAEH,EAAEG,EAAE,EAAEX,EAAEQ,EAAGR,GAAGA,EAAIQ,GAAGA,EAAG4pD,EAAEpqD,EAAEQ,EAAER,EAAEo0B,EAAE,EAAE5zB,EAAE4zB,EAAE,EAAEp0B,EAAEQ,EAAGR,GAAGA,EAAIQ,GAAGA,EAAGL,EAAEH,EAAEQ,EAAK4pD,EAAEjqD,EAAU,GAAMiqD,GAAGjqD,EAAU,EAAS,CAAC,CAClJ,SAASmhL,GAAI3gL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,GAAXA,EAAE09L,IAAIl9L,EAAEyzB,CAAC,EAAKj0B,GAAG,EAAE,OAAOA,EAAE,GAAGQ,EAAE,GAAE,GAAI,IAAIypD,EAAE,EAAEA,EAAEzpD,EAAE,EAAE,EAAEypD,EAAyB,GAAtB5pD,EAAEG,EAAE,GAAGkjD,EAAGljD,EAAE,EAAEypD,CAAC,EAAE,EAAE,CAAC,EAAKsQ,EAAGl6D,CAAC,IAAIk6D,EAAGtmC,CAAC,EAAG,OAAOg2B,EAAI,MAAO,EAAE,CAClJ,SAAS0zI,GAAIn9L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAW,GAATA,EAAEQ,EAAE,GAAI,EAAIyzB,GAAGj0B,EAAE,MAAMkmC,EAAI,IAAIs4B,GAAIvqC,EAAEj0B,CAAC,CAAC,EAAE,GAAGQ,EAAE,GAAE,IAAIypD,EAAEzpD,EAAE,GAAGH,CAAC,EAAK4pD,GAAG,GAAGA,GAAGh2B,GAAG,MAAMiS,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,EAAG,OAAO9iL,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,CAClJ,SAAS0nG,GAAGvnG,EAAEyzB,EAAE,CAA2C,GAA1C,KAAK,EAAEyvB,EAAG1N,GAAGx1C,CAAC,EAAE,GAAG,EAAE,KAAK,EAAEkjD,EAAG1N,GAAG/hB,CAAC,EAAE,GAAG,EAAKzzB,EAAE,GAAGyzB,CAAC,EAAE,GAAGzzB,IAAIovC,GAAE,EAAGC,KAAK5b,IAAIwb,GAAE,EAAGC,IAAK,MAAMxJ,EAAI,IAAImN,GAAI,kBAAkB8hG,IAAG30I,EAAEyzB,CAAC,CAAC,CAAC,CAAE,CACnJ,SAAS2pK,IAAIp9L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAuC,IAArC,KAAK,EAAE,IAAIglC,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAE,GAAUH,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE4zB,EAAE,IAAIk3D,GAAG,EAAG0hC,GAAK,CAClJ,SAASgxE,IAAIr9L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAmB,IAAjBK,EAAEmyE,GAAI,IAAI9nC,GAAIlqC,CAAC,EAAMR,EAAE,IAAI04B,EAAIzE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEuqL,GAAIlkI,GAAID,GAAIE,GAAIH,GAAI,IAAI1b,GAAI,CAAC,EAAE,CAAC,EAAEpqC,CAAC,EAAE4pD,CAAC,CAAC,EAAE,OAAO5pD,CAAC,CACnJ,SAASy9L,IAAIt9L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIG,EAAE,IAAIqxG,GAAGphC,IAAIh8C,EAAEmzJ,GAAI5mL,CAAC,EAAE6mL,GAAI7mL,CAAC,GAAG,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEH,EAAEo0B,EAAEg2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEpqD,EAAE,IAAIsrF,GAAG,EAAG6+D,KAAMxxB,GAAI34H,EAAEQ,CAAC,CAAE,CAClJ,SAAS+xF,IAAK,CAACA,GAAIltF,EAAI4sI,GAAI,IAAIp/E,GAAIs7F,GAAI,CAAC,EAAEjc,GAAI,IAAIr/E,GAAI,gBAAgB,CAAC,EAAE0P,GAAI,IAAI1P,GAAI,gCAAgC,CAAC,EAAE2P,GAAI,IAAI3P,GAAI,YAAY,CAAC,CAAC,CAClJ,SAAS+oC,IAAK,CAACA,GAAIv2F,EAAIugJ,GAAI,IAAI5vF,GAAI,YAAY,CAAC,EAAE6vF,GAAI,IAAI7vF,GAAIm+D,GAAI,CAAC,EAAE2xB,GAAI,IAAI9vF,GAAIo+D,GAAI,CAAC,EAAE2xB,GAAI,IAAI/vF,GAAI,MAAM,CAAC,EAAEgwF,GAAI,IAAIhwF,GAAI65F,IAAI,CAAC,EAAE5J,GAAI,IAAIjwF,GAAIg4E,GAAI,CAAC,CAAC,CAClJ,SAASq0C,GAAI1hL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACypG,KAAM,IAAI1zJ,EAAEH,EAAM,IAAJG,EAAE,EAAMH,EAAE,EAAEA,EAAEQ,EAAER,IAAKG,EAAEurG,GAAIgrD,GAAIl7B,GAAIpnG,EAAEp0B,CAAC,EAAEo4K,EAAG,EAAE58C,GAAIpxE,EAAEguH,EAAG,CAAC,EAAE58C,GAAI5tB,GAAIztG,CAAC,EAAEi4K,EAAG,CAAC,EAAEz3K,EAAEX,CAAC,EAAE4tG,GAAIztG,CAAC,EAAEA,EAAEkyG,GAAIlyG,EAAE,EAAE,EAAE,OAAOytG,GAAIztG,CAAC,CAAC,CACnJ,SAAS+9L,GAAIv9L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAM,IAAJA,EAAE,EAAMiqD,EAAE,EAAEA,EAAE01F,GAAI11F,IAAKjqD,EAAEuD,EAAK,KAAK,IAAIvD,EAAEy8K,GAAIj8K,EAAE,EAAEyzB,EAAE,CAAC,EAAEg2B,CAAC,EAAE5pD,CAAC,CAAC,EAAE,OAAA4zB,IAAIg0D,GAAK,EAACo0C,KAAQ77H,EAAE,IAAIR,EAAEuD,EAAK,KAAK,IAAIvD,EAAEQ,EAAE,EAAE,CAAC,GAAUR,CAAC,CACnJ,SAASg+L,GAAIx9L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAW,GAATwsB,GAAIxiD,EAAE,CAAC,GAAMA,EAAE,CAACA,IAAIA,EAAG,OAAO+rC,GAAG/rC,EAAE66E,GAAItuG,EAAE,EAAE,EAAE,oBAAsB,EAAE,GAAGH,EAAEyuG,GAAItuG,EAAE,EAAE,EAAEypD,EAAE5pD,EAAE4zB,QAAQ5zB,EAAE4pD,GAAGh2B,EAAE,GAAG,GAAG,OAAO+rC,GAAG/V,CAAC,CAAC,CACnJ,SAAS0rH,GAAIn1K,EAAE,CAAC0lF,IAAK,EAAC,IAAIjyD,EAAE5zB,EAAE4pD,EAAmB,OAAjB5pD,EAAE,IAAIG,EAAEypD,EAAEm8B,GAAI/lF,CAAC,EAAK4pD,GAAG,KAAa+V,IAAI1uC,GAAI24B,CAAC,EAAEA,EAAC,GAAGA,EAAEk8B,IAAI9lF,CAAC,EAAE4zB,EAAEg2B,GAAG,KAAKg0I,IAAIz9L,CAAC,EAAEw/D,IAAI1uC,GAAI24B,CAAC,EAAEA,EAAC,EAAG2+D,IAAG,EAAGxiC,GAAI/lF,CAAC,EAAE4zB,EAASA,EAAC,CACnJ,SAASk2J,IAAI3pL,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,8BAA8B,CAAC,EAAEG,EAAE,EAAE,IAAI05E,GAAGgkH,IAAI19L,EAAEyzB,EAAE,IAAI,EAAEkqK,IAAI39L,EAAEyzB,CAAC,EAAEmqK,IAAI59L,CAAC,EAAE8iF,EAAIrvD,GAAGy2F,EAAK,EAAC2zE,KAAK79L,EAAE,CAAC,EAAEA,EAAE,EAAE,KAAKglC,GAAIhlC,EAAE,CAAC,EAAE6rH,GAAIhsH,CAAC,CAAC,CACnJ,SAASi+L,IAAI99L,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAEG,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,MAAM,IAAK,GAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAE,CAAE,CAAC,CACnJ,SAASsqK,IAAI/9L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAIA,EAAEvG,EAAGgwB,GAAGlzE,EAAE,GAAGwtF,GAAG,EAAG2vD,GAAG,EAAG,EAAE,EAAE,GAAE,EAAG1zF,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEh2B,EAAEuqK,GAAIn+L,CAAC,EAAE64G,GAAI14G,EAAEH,EAAE4zB,EAAE,CAAC,GAAGm6D,KAAM+wC,IAAK,CAAC,EAAEjmB,GAAI14G,EAAEH,EAAE4zB,EAAE,CAAC,EAAEgrG,GAAI,CAAC,CAAE,CACnJ,SAASw/D,IAAIj+L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAIA,EAAEvG,EAAGgwB,GAAGlzE,EAAE,GAAGwtF,GAAG,EAAG4vD,GAAG,EAAG,EAAE,EAAE,GAAE,EAAG3zF,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEh2B,EAAEuqK,GAAIn+L,CAAC,EAAE64G,GAAI14G,EAAEH,EAAE4zB,EAAE,CAAC,GAAGm6D,KAAM+wC,IAAK,CAAC,EAAEjmB,GAAI14G,EAAEH,EAAE4zB,EAAE,CAAC,EAAEgrG,GAAI,CAAC,CAAE,CACnJ,SAASy/D,GAAIl+L,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,KAAK,IAAK,GAAE,OAAO,IAAI6iK,IAAI,IAAK,GAAE,OAAO,IAAI/zH,GAAI,QAAQ,MAAMpJ,EAAI,IAAImN,GAAIy3I,IAAKtqL,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CACnJ,SAASgxL,GAAIhxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAqB,IAAnBqvK,IAAI7uK,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAE81B,IAAIm0B,EAAEA,EAAE,EAAEh2B,EAAEzzB,EAAE,CAAC,EAAEu1B,IAAIk0B,EAAEA,EAAE,EAAE5pD,EAAEG,EAAE,CAAC,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,CAAC,CACnJ,SAASs+L,IAAIn+L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJQ,EAAE,EAAML,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEiqD,EAAE,EAAE5pD,IAAI,OAAA4zB,EAAE2qK,IAAIp+L,CAAC,EAAEX,EAAE,KAAKo0B,EAAE,EAAE,OAAO,IAAIp0B,EAAEg+L,IAAIr9L,EAAEyzB,CAAC,GAAUp0B,CAAC,CACpJ,SAASg/L,GAAIr+L,EAAE,CAAC,IAAIyzB,EAAE,OAAKzzB,EAAE,GAAGA,EAAE,EAAE,GAAE,IAAIyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEyzB,CAAC,EAAE,EAAE,EAAEzzB,EAAE,GAAGyzB,GAAIzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAAC,GAASA,EAAE,CAAC,CACnJ,SAASs+L,GAAIt+L,EAAE,CAAC,IAAIyzB,EAAE,OAAKzzB,EAAE,GAAGA,EAAE,EAAE,GAAE,IAAIyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEyzB,CAAC,EAAE,EAAE,EAAEzzB,EAAE,GAAGyzB,GAAIzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAAC,GAASA,EAAE,CAAC,CACnJ,SAASu+L,GAAIv+L,EAAE,CAAC,IAAIyzB,EAAE,OAAKzzB,EAAE,GAAIA,EAAE,EAAE,GAAG,KAAQyzB,EAAEzzB,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEyzB,CAAC,EAAE,EAAE,EAAEzzB,EAAE,GAAGyzB,GAAIzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,GAAGyzB,EAAEzzB,EAAE,CAAC,CAAC,GAASA,EAAE,CAAC,CACnJ,SAASkpC,GAAIlpC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAKQ,EAAE,GAAG,MAAM,EAAEA,EAAE,EAAE,EAAEA,EAAE,IAAOypD,EAAEh2B,EAAE,GAAE,EAAG+qK,IAAIx+L,EAAEA,EAAE,EAAE,CAAC,EAAER,GAAGiqD,EAAEyzB,IAAKl9E,EAAE,EAAE,OAAOH,EAAEG,EAAE,EAAER,CAAC,EAAE,CAACK,IAAIA,EAAEG,EAAE,EAAER,CAAC,EAAEQ,EAAE,GAAE,GAAIH,EAAE,GAAG4zB,CAAC,EAAE,EAAEzzB,EAAE,EAAE,CACnJ,SAASy+L,GAAIz+L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAGh2B,EAAE,GAAI,EAAS,GAAcA,EAAE,GAAE,GAAI,IAAIg2B,EAAEh2B,EAAE,GAAI,EAAQg2B,GAAG,KAAK5pD,GAAG,KAAKqkD,GAAGuF,EAAE5pD,CAAC,GAAc4zB,EAAE,GAAE,GAAIzzB,EAAE,EAAE,GAAI,GAAEH,GAAG,IAAI,CACnJ,SAAS6+L,IAAI,CAAC,IAAI1+L,EAAE60E,GAAG,GAAGm/E,GAAG,EAAEh0J,EAAEsgK,IAAG,EAAE,EAAE,KAAK,EAAEr8F,EAAG06H,GAAGpnB,GAAI,IAAIv3K,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEikE,EAAG06H,GAAGpnB,GAAI,IAAIv3K,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAE,CAAC,CACpJ,SAAS4+L,GAAI5+L,EAAE,CAACyoE,GAAI,KAAK,IAAI,EAAE,KAAK,GAAGkiB,GAAK,EAAC0hC,IAAK,KAAK,GAAGx3C,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG,KAAK,GAAGF,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG,KAAK,EAAE,IAAIjpC,GAAI,KAAK,EAAE,IAAIG,GAAI,KAAK,EAAEjsC,CAAC,CACpJ,SAAS6+L,IAAI7+L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAKG,EAAE,EAAE,QAAQ,IAAUyzB,EAAEqrK,IAAI9+L,GAAG8+F,EAAK,EAACmxC,GAAK,EAAC8uD,IAAI/+L,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE5zB,EAAEi/L,IAAI9+L,EAAEijG,EAAG,EAAE87F,IAAI/+L,EAAEkjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAC,CACpJ,SAASuzF,IAAK,CAACA,GAAI1uF,EAAIm3I,IAAI,IAAI1pF,GAAI,SAAS,CAAC,EAAE2pF,GAAI,IAAI3pF,GAAIstG,GAAI,CAAC,EAAE1jB,GAAI,IAAI5pF,GAAI,kBAAkB,CAAC,EAAE6pF,GAAI,IAAI7pF,GAAI,gBAAgB,CAAC,EAAE8pF,GAAI,IAAI9pF,GAAI6sI,IAAI,CAAC,CAAC,CACpJ,SAASC,GAAIj/L,EAAEyzB,EAAE5zB,EAAE,CAAKwjF,GAAIngC,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAG6oI,GAAG,EAAG,EAAE,CAAC,IAAG1G,GAAIzvJ,EAAEyzB,EAAEyrK,GAAIzrK,EAAE5zB,CAAC,CAAC,EAAE4vJ,GAAIzvJ,EAAEyzB,EAAEyrK,GAAIzrK,GAAGqrE,EAAK,EAACmxC,GAAK,CAAA,EAAEwf,GAAIzvJ,EAAEyzB,EAAEyrK,GAAIzrK,EAAEolH,EAAG,CAAC,EAAExuE,GAAK,EAACrC,GAAIv0C,EAAE,EAAE,IAAI4K,IAAIr+B,CAAC,CAAC,EAAE,CACpJ,SAASm/L,IAAIn/L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAwC,IAAtCvtH,EAAI0jD,EAAGgwB,GAALzpB,EAAQzpD,EAAE,EAAeA,EAAE,EAAfyzB,CAAC,EAAE,EAAE,EAAuBs5F,EAAEvtH,EAAE,GAAI,EAACutH,EAAE,MAAuB,GAAhB1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAKqyE,GAAIp/L,EAAEH,EAAER,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACpJ,SAAS0pI,GAAI/oI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIs8D,GAAIn8D,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAmB,GAAhB4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAO4zB,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIu6C,GAAIqwC,GAAG5qF,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAO,GAAM,MAAO,EAAK,CACpJ,SAASo1G,GAAI7oI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIs8D,GAAIn8D,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAmB,GAAhB4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAO4zB,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIu6C,GAAIqwC,GAAG5qF,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAO,GAAM,MAAO,EAAK,CACpJ,SAAS4rK,IAAIr/L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,IAAJh2B,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEh2B,GAAGihH,GAAG,IAAI7jC,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,CAAC,EAAE,OAAOmwB,EAAEzzB,EAAE,EAAE,EAAE,EAAE,MAAM,CACrJ,SAASs/L,IAAIt/L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA8C,IAA5CG,EAAE,GAAGu/L,IAAIv/L,CAAC,EAAEH,EAAE,IAAI8sC,GAAIlZ,EAAE,IAAIyE,EAAIl4B,EAAE,CAAC,EAAE2kI,EAAIlxG,CAAC,EAAQA,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQoyE,GAAIhmG,EAAEqjD,EAAGyhF,EAAIlxG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAAy+C,GAAIryE,EAAE,GAAG,CAAC,EAAE+jG,GAAI/jG,EAAEA,EAAE,EAAE,CAAC,EAASA,CAAC,CACrJ,SAASivB,IAAK,CAACA,GAAIpqB,EAAI86L,KAAK5wK,GAAG,EAAG6wK,KAAKC,IAAI,IAAIp6H,GAAI,CAAC,EAAE,IAAID,IAAKr1C,GAAK,EAAC+pJ,IAAK2lB,GAAG,EAAE,IAAIr6H,GAAImrH,GAAI,CAAC,EAAEmP,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAI,IAAI56H,GAAI66H,IAAK9vH,GAAG,EAAG,IAAO,CACpJ,SAAS+vH,GAAIngM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAOh2B,GAAG,IAAK,GAAE,MAAO,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,IAAK,GAAE,MAAO,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,CAAE,CAAC,OAAOqoL,GAAIroL,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACpJ,SAAS22I,GAAIpgM,EAAE,CAAC,IAAIyzB,EAAE,OAAKzzB,EAAE,GAAGA,EAAE,EAAE,GAAE,IAAIyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEyzB,CAAC,EAAE,GAAG,EAAEzzB,EAAE,GAAGyzB,GAAIzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAAC,GAASA,EAAE,CAAC,CACpJ,SAASqgM,GAAIrgM,EAAE,CAAmB,OAAfA,EAAE,IAAgBA,EAAE,IAAW,GAAMA,GAAG,GAAUA,EAAE,GAAMA,EAAE,GAAU,GAAMA,GAAG,GAAUA,EAAE,GAAG,GAAMA,EAAE,GAAU,GAAUA,EAAE,GAAG,EAAE,CACpJ,SAASklG,GAAGllG,EAAEyzB,EAAE,CAAC,GAAGzzB,GAAG,KAAM,MAAM0lC,EAAI,IAAIsN,GAAI,2BAA2Bvf,CAAC,CAAC,EAAO,GAAGA,GAAG,KAAM,MAAMiS,EAAI,IAAIsN,GAAI,wBAAwBhzC,EAAE,OAAO,CAAC,CAAE,CACrJ,SAASsgM,IAAGtgM,EAAEyzB,EAAE,CAAS,QAAJ5zB,EAAE4pD,EAAQzpD,EAAE,GAAI,GAA6C,GAAxC,CAACyzB,EAAE,GAAE,IAAiB5zB,EAAEG,EAAE,GAAE,EAAGypD,EAAEh2B,EAAE,GAAI,EAAI,EAAEsmC,EAAGl6D,CAAC,IAAIk6D,EAAGtQ,CAAC,GAAG5pD,GAAG,MAAMqkD,GAAGrkD,EAAE4pD,CAAC,IAAI,MAAO,GAAO,MAAO,CAACh2B,EAAE,IAAI,CACrJ,SAAS8sK,IAAIvgM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEq5G,EAAG9hE,EAAG22G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAACiuB,GAAIj8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,EAAEwoJ,GAAIj8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,EAAEwoJ,GAAIj8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CAAC,EAAKzzB,EAAE,IAAGH,EAAE,CAAC,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,GAASA,CAAC,CACrJ,SAAS2gM,IAAIxgM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEq5G,EAAG9hE,EAAG22G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAACkuB,GAAIl8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,EAAEyoJ,GAAIl8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,EAAEyoJ,GAAIl8K,EAAE,EAAE,CAAC,EAAEyzB,CAAC,CAAC,CAAC,EAAKzzB,EAAE,IAAGH,EAAE,CAAC,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,GAASA,CAAC,CACrJ,SAASuuF,IAAK,CAACA,GAAI1pF,EAAI03I,GAAI,IAAI/qF,GAAI,SAAS,CAAC,EAAEgrF,IAAI,IAAIhrF,GAAInI,IAAI,CAAC,EAAEozF,GAAI,IAAIjrF,GAAIouG,GAAI,CAAC,EAAEljB,GAAI,IAAIlrF,GAAI,cAAc,CAAC,EAAEmrF,GAAI,IAAInrF,GAAI,qBAAqB,CAAC,CAAC,CACrJ,SAASovI,IAAIzgM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,IAAXQ,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAMg2B,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAEg2B,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAEjqD,EAAEK,EAAE,EAAEG,EAAE,EAAER,EAAE,CAAC,GAAG,EAAEqmG,GAAI7lG,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAER,EAAE,CAAC,GAAG,EAAGQ,EAAE,EAAER,EAAE,CAAC,EAAE,EAAGihM,IAAIzgM,EAAER,CAAC,CAAE,CACrJ,SAASkhM,IAAI1gM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoB,IAAlBA,EAAE,IAAIu1E,GAAIthD,EAAE,IAAI,EAAMg2B,EAAEh2B,EAAE,KAAKg2B,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAE5pD,EAAE,GAAGA,EAAE,EAAE8gM,GAAI3gM,EAAEH,EAAEA,EAAE,CAAC,EAAE+gM,IAAI5gM,EAAEH,CAAC,IAAIL,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEK,GAAQ,OAAOL,CAAC,CACtJ,SAASqhM,IAAI7gM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA6C,IAA3CA,EAAE3kK,EAAE,EAAEyzB,EAAEzzB,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGH,EAAE4pD,EAAE5pD,EAAEG,EAAE,EAAE,EAAE,OAAOR,EAAE,EAAMutH,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE+zE,IAAIzhM,EAAEslK,EAAEl7G,EAAEjqD,CAAC,EAAE,EAAEA,CAAE,CACrJ,SAASuhM,IAAI/gM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA0D,IAAxDzY,GAAIhxC,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEikE,EAAG+8H,GAAG78H,GAAI,GAAGnkE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEyzB,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE5pD,EAAE,EAAE4zB,GAAI,CACtJ,SAASwtK,IAAIjhM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA0D,IAAxDzY,GAAIhxC,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEikE,EAAGi9H,GAAG/8H,GAAI,GAAGnkE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEyzB,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE5pD,EAAE,EAAE4zB,GAAI,CACtJ,SAAS0tK,IAAInhM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEmiE,GAAI/rH,EAAE,4BAA4B,CAAC,EAAKozC,GAAImnC,GAAGwuC,EAAIn1F,GAAGi1I,GAAK,EAACC,GAAK,CAAA,CAAC,GAAGhI,IAAI3gK,EAAEyzB,EAAE,CAAC,EAAEq9H,IAAIr9H,EAAE,GAAGg2B,EAAEh2B,EAAE,EAAEg2B,EAAC,GAAQqnG,IAAIr9H,EAAE,EAAEA,EAAE,CAAC,EAAEo4F,GAAIhsH,CAAC,CAAC,CACrJ,SAASkrH,IAAG/qH,EAAE,CAAC,IAAIyzB,EAAU,GAARA,EAAEioJ,IAAG17K,CAAC,EAAK,CAAC0+I,GAAG1+I,CAAC,EAAG,MAAM0lC,EAAI,IAAIwM,GAAI,wEAAwEze,EAAE,GAAG,CAAC,EAAE,OAAOgrH,GAAGz+I,CAAC,CAAC,CACtJ,SAASohM,IAAI3tK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAAC,OAAO8yK,GAAI7+I,EAAE5zB,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,CAAC,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwM,GAAI1yC,EAAE,EAAE6hM,GAAIxhM,EAAE41C,GAAIgU,EAAE,IAAI,CAAC,GAAa/jB,EAAI1lC,CAAC,CAAC,CAAC,CACtJ,SAASshM,IAAI7tK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAAC,OAAO+hM,IAAI9tK,EAAE5zB,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,CAAC,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwM,GAAI1yC,EAAE,EAAE6hM,GAAIxhM,EAAE41C,GAAIgU,EAAE,IAAI,CAAC,GAAa/jB,EAAI1lC,CAAC,CAAC,CAAC,CACtJ,SAASwhM,IAAI/tK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAAC,OAAOiiM,IAAIhuK,EAAE5zB,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,CAAC,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwM,GAAI1yC,EAAE,EAAE6hM,GAAIxhM,EAAE41C,GAAIgU,EAAE,IAAI,CAAC,GAAa/jB,EAAI1lC,CAAC,CAAC,CAAC,CACtJ,SAAS0hM,IAAI1hM,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO8+F,EAAG,EAAGmE,GAAI,IAAK,GAAE,OAAOnE,EAAK,EAAC+5C,GAAI,IAAK,GAAE,OAAO/5C,EAAK,EAACsE,GAAI,IAAK,GAAE,OAAOtE,EAAK,EAACmxC,GAAI,QAAQ,OAAOnxC,EAAG,EAAG85C,EAAI,CAAC,CACtJ,SAAS+oD,IAAI3hM,EAAEyzB,EAAE5zB,EAAE,CAAI4zB,EAAE,IAAIk3D,KAAM0hC,KAAMxsH,EAAE,GAAGypJ,KAAKtpJ,EAAE,EAAEugL,GAAI9sJ,GAAGqrE,IAAMmxC,KAAMjwI,EAAE,EAAEugL,GAAI9sJ,EAAEolH,EAAG,GAAKh5I,EAAE,GAAGwsH,IAAK54F,EAAE,GAAG61H,KAAKtpJ,EAAE,EAAEugL,GAAI1gL,GAAGi/F,IAAM+5C,KAAM74I,EAAE,EAAEugL,GAAI1gL,EAAEowI,EAAG,EAAE,CACtJ,SAAS2xD,GAAI5hM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,IAAXA,EAAEghL,GAAIxgL,EAAEyzB,CAAC,EAAMg2B,EAAEjqD,EAAE,GAAE,EAAGiqD,EAAE,GAAI,GAAmB,GAAhB5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAKm/D,EAAI/oH,GAAGqqH,EAAK,EAACysD,GAAK,GAAE,MAAMtjG,GAAI,IAAIstE,GAAI9gJ,EAAE,CAAC,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACtJ,SAAS2nL,GAAIxnL,EAAEyzB,EAAE,CAAC,OAAAqvC,GAAIrvC,EAAEzzB,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,EAAE,EAAE+iE,GAAItvC,EAAEzzB,EAAE,CAAC,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,GAAG4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAS,EAAI,CACtJ,SAASouK,IAAI7hM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAuB,IAArBA,EAAE,EAAEtjE,EAAE5pD,EAAEG,EAAE,EAAE,EAAE,OAAWX,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAE2xL,GAAIxxL,EAAEA,EAAE,EAAEA,EAAE,EAAEutH,EAAEtjE,CAAC,EAAEo3I,IAAIrhM,EAAEQ,EAAE,EAAER,EAAE,EAAEi0B,EAAEg2B,CAAC,EAAE,EAAEsjE,CAAE,CACtJ,SAAS+0E,IAAI9hM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA6B,IAApB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEh2B,EAAE,EAAMp0B,EAAE,IAAI64B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEi0B,GAAK,CACvJ,SAAS0+I,IAAInyK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAuB,IAArBnlK,EAAEi0B,EAAE,OAAO,EAAEs5F,EAAE,EAAE43C,EAAE,EAAMl7G,EAAE,EAAEA,GAAGjqD,EAAEiqD,IAAKpqD,EAAEo0B,EAAEg2B,CAAC,EAAE5pD,EAAEkiM,IAAIviM,EAAEiqD,CAAC,EAAE41H,GAAI,EAAEr/K,EAAER,EAAEiqD,CAAC,EAAE41H,GAAIr/K,EAAEypD,CAAC,EAAEsjE,GAAG1tH,EAAE,EAAEQ,EAAE8kK,GAAGtlK,EAAE,EAAEQ,EAAE,OAAO,IAAIu1D,GAAI23D,EAAE43C,CAAC,CAAC,CACtJ,SAASq9B,IAAIhiM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6C,IAA3CltH,EAAE4zB,EAAE,GAAE,EAAGzzB,EAAE,GAAGA,EAAE,EAAEH,CAAC,EAAER,EAAEo0B,EAAE,GAAI,EAACs5F,EAAE/sH,EAAE,EAAEA,EAAE,GAAGH,EAAM4pD,EAAEsjE,EAAEtjE,EAAEzpD,EAAE,EAAE,EAAEypD,EAAGjqD,EAAEH,EAAE,GAAE,EAAG4tE,GAAIjtE,EAAEypD,EAAEzpD,EAAE,GAAGypD,EAAEjqD,CAAC,CAAC,EAAEQ,EAAE,GAAGypD,EAAEjqD,CAAC,EAAEQ,EAAE,GAAI,EAAC,OAAOH,GAAG,CAAC,CACtJ,SAASoiM,IAAIjiM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAGW,EAAE,GAAI,GAAEypD,EAAEzpD,EAAE,GAAE,EAAGX,EAAEW,EAAE,GAAE,EAAG,EAAEA,EAAE,EAAEA,EAAE,GAAGypD,EAAEzpD,EAAE,GAAGypD,EAAEh2B,CAAC,CAAC,EAAEj0B,EAAEQ,EAAE,GAAG,EAAE,KAAKyzB,EAAEg2B,EAAEpqD,CAAC,EAAGQ,EAAQA,EAAE,GAAGL,CAAC,EAAXK,EAAEL,GAAgBq9E,IAAI78E,EAAEA,EAAE,GAAI,EAACyzB,CAAC,EAAS5zB,CAAC,CACtJ,SAASqiM,IAAIliM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAoqD,EAAEvG,EAAGwpG,EAAIvmF,GAAInmE,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAEp0B,GAAGG,EAAEiqD,EAAE,EAAE8hB,EAAG/rE,EAAE,EAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGi9G,GAAG,EAAGmyE,MAAQvvL,EAAE,GAAG,GAAO25E,GAAIh5E,EAAE,EAAEX,CAAC,EAAEA,IAAIQ,EAAEq0L,GAAIzqI,CAAC,EAAEq8D,GAAIr8D,EAAE5pD,CAAC,EAASR,CAAC,CACtJ,SAASosK,GAAIzrK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAEglK,EAAMn7G,IAAU7pD,EAAE6pD,EAAE,EAAE,CAAC,EAAI7pD,GAAG6rK,GAAIzrK,EAAEyzB,EAAE5zB,EAAED,EAAEJ,EAAEH,EAAE0tH,EAAE43C,CAAC,EAAEw9B,IAAIniM,EAAEH,EAAE4pD,EAAE,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,CAAC,GAAGlxI,EAAE,GAAGg2B,CAAC,EAAEm7G,EAAEn7G,EAAE,EAAE,CAAC,EAAIm7G,GAAG6G,GAAIzrK,EAAEyzB,EAAE5zB,EAAE+kK,EAAEplK,EAAEH,EAAE0tH,EAAE43C,CAAC,EAAC,CACvJ,SAASy9B,IAAIpiM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAIG,EAAE,IAAGH,EAAEokE,EAAG8pF,GAAGC,GAAI,GAAG,EAAE,GAAG,CAAC,EAAEhwG,GAAIh+C,EAAE,EAAE,EAAE,IAAIq5B,IAAIx5B,CAAC,CAAC,EAAEA,EAAE,KAAK25J,IAAIp1J,GAAI,UAAU,GAAGA,GAAI,CAAE,CAAA,CAAC,EAAEpE,EAAE,EAAE,IAAIkkF,IAAIrkF,EAAEG,EAAE,CAAC,GAASyhJ,GAAIzhJ,EAAE,EAAEyzB,CAAC,CAAC,CACvJ,SAAS6+I,GAAI7+I,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAG,CAAC,OAAOgR,GAAI+lG,GAAI/sI,EAAE5zB,EAAE4pD,CAAC,EAAE,CAAC,CAAC,OAAOzpD,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAImwJ,GAAI5uK,EAAE,EAAE,IAAIA,EAAE,EAAE6uK,GAAIziM,EAAE41C,GAAIgU,EAAE84I,EAAG,CAAC,EAAa78J,EAAI1lC,CAAC,CAAC,CAAC,CACvJ,SAASuhM,IAAI9tK,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAG,CAAC,OAAOgR,GAAI+lG,GAAI/sI,EAAE5zB,EAAE4pD,CAAC,EAAE,CAAC,CAAC,OAAOzpD,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAImwJ,GAAI5uK,EAAE,EAAE,IAAIA,EAAE,EAAE6uK,GAAIziM,EAAE41C,GAAIgU,EAAE84I,EAAG,CAAC,EAAa78J,EAAI1lC,CAAC,CAAC,CAAC,CACvJ,SAASyhM,IAAIhuK,EAAE5zB,EAAE4pD,EAAE,CAAC,GAAG,CAAC,OAAOgR,GAAI+lG,GAAI/sI,EAAE5zB,EAAE4pD,CAAC,EAAE,CAAC,CAAC,OAAOzpD,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAImwJ,GAAI5uK,EAAE,EAAE,IAAIA,EAAE,EAAE6uK,GAAIziM,EAAE41C,GAAIgU,EAAE84I,EAAG,CAAC,EAAa78J,EAAI1lC,CAAC,CAAC,CAAC,CACvJ,SAASwiM,IAAI/uK,EAAE5zB,EAAE,CAAC,GAAG4zB,EAAE,GAAG,GAAI,MAAMiS,EAAI,IAAImC,EAAG,EAAEpU,EAAE,GAAI,EAAC,GAAG,CAACA,EAAE,EAAE,GAAGA,EAAE,EAAE5zB,CAAC,EAAE4zB,EAAE,EAAEA,EAAE,EAAE,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAS0lC,EAAI,IAAIsC,EAAG,EAAatC,EAAI1lC,CAAC,CAAC,CAAC,CACxJ,SAASyiM,IAAIziM,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,iCAAiC,CAAC,EAAEG,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGw4E,GAAG,EAAG,GAAG,EAAEC,IAAI3iM,EAAEyzB,CAAC,EAAEmvK,IAAI5iM,EAAEyzB,CAAC,EAAEovK,IAAI7iM,EAAEyzB,CAAC,EAAEqvK,IAAI9iM,CAAC,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CACvJ,SAASkjM,GAAG/iM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA4D,IAA1DA,EAAEW,EAAE,GAAE,EAAGyzB,EAAE,OAAOp0B,IAAIo0B,EAAEyjB,GAAI,IAAI,MAAM73C,CAAC,EAAEo0B,CAAC,GAAGj0B,EAAEi0B,EAAEg2B,EAAEzpD,EAAE,GAAE,EAAOH,EAAE,EAAEA,EAAER,EAAE,EAAEQ,EAAGgmE,GAAGrmE,EAAEK,EAAE4pD,EAAE,GAAI,CAAA,EAAE,OAAAh2B,EAAE,OAAOp0B,GAAGwmE,GAAGpyC,EAAEp0B,EAAE,IAAI,EAASo0B,CAAC,CACxJ,SAASuvK,IAAGhjM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAW,GAATA,EAAEzpD,EAAE,GAAE,EAAMyzB,GAAG,MAAM,IAAI5zB,EAAE,EAAEA,EAAE4pD,EAAE5pD,IAAK,GAAGG,EAAE,GAAGH,CAAC,GAAG,KAAM,OAAOA,MAAS,KAAIA,EAAE,EAAEA,EAAE4pD,EAAE5pD,IAAK,GAAGqkD,GAAGzwB,EAAEzzB,EAAE,GAAGH,CAAC,CAAC,EAAG,OAAOA,EAAI,MAAO,EAAE,CACxJ,SAASqrI,GAAGlrI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAkF,OAAhFK,EAAE4zB,EAAE,GAAI,EAACj0B,EAAEi0B,EAAE,GAAE,EAAGg2B,EAAEzpD,EAAE,GAAGH,CAAC,EAAK,IAAEk6D,EAAGv6D,CAAC,IAAIu6D,EAAGtQ,CAAC,GAAGjqD,GAAG,MAAM0kD,GAAG1kD,EAAEiqD,CAAC,IAAoBA,GAAG,MAAM,CAACzpD,EAAE,GAAGH,CAAC,EAA2B,CACzJ,SAASs0K,IAAGn0K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAGi0B,GAAG,IAAI5zB,EAAEG,EAAE,GAAG,GAAGyzB,GAAG,EAAEg2B,EAAEjqD,EAAE,GAAUi0B,GAAG,IAAI5zB,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,GAAG,GAAGyzB,EAAE,IAAI,EAAEj0B,EAAE,IAAOK,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,EAAEQ,EAAE,GAAG,GAAGyzB,EAAE,IAAI,GAAS6rC,GAAGz/D,EAAE4pD,EAAEjqD,CAAC,CAAC,CACxJ,SAASyjM,IAAIjjM,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOzzB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,QAAQ,MAAO,EAAE,CAAC,CACxJ,SAASkjM,IAAIljM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAc,OAAZA,EAAEh2B,EAAE,EAAE5zB,EAAE4zB,EAAE,EAASzzB,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEH,EAAE,EAAEG,EAAE,EAAEypD,EAAE,EAAEA,EAAE,EAAE,MAAM,IAAK,GAAE5pD,EAAE,GAAGG,EAAE,EAAE,MAAM,IAAK,GAAEH,EAAE,EAAEG,EAAE,EAAEypD,EAAE,EAAEA,EAAE,EAAE,MAAM,IAAK,GAAE5pD,EAAE,EAAEG,EAAE,EAAEypD,EAAE,CAAE,CAAC,CACxJ,SAAS05I,GAAInjM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,KAAK,EAAEo0B,EAAE,KAAK,EAAEg2B,EAAEjqD,EAAEQ,EAAE,EAAE4zB,IAAI,KAAK,IAAIwhC,GAAI,CAAC51D,EAAE,EAAE,CAACA,EAAE,CAAC,CAAC,EAAE4gF,GAAI,KAAK,EAAEvgF,CAAC,EAAER,EAAEoqD,EAAE,EAAEh2B,EAAE,EAAEyjD,GAAI,KAAK,EAAE,EAAE73E,CAAC,EAAE63E,GAAI,KAAK,EAAE73E,EAAE,CAAC,EAAEupC,EAAI5oC,EAAE,EAAE,IAAI,CAAC,CACxJ,SAASg4F,IAAK,CAACA,GAAItzF,EAAIotI,GAAI,IAAI19E,GAAIo5F,GAAI,CAAC,EAAEzb,IAAI,IAAI39E,GAAIgvI,IAAI,CAAC,EAAEpxD,IAAI,IAAI59E,GAAI,0BAA0B,CAAC,EAAE69E,IAAI,IAAI79E,GAAI,oCAAoC,CAAC,CAAC,CACxJ,SAAS4rB,GAAIhgF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAqB,GAAnB5pD,EAAEqjD,EAAG+2G,GAAGj6J,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAK5zB,EAAG,OAAOA,EAAsB,GAApB4pD,EAAEvG,EAAG+2G,GAAGj6J,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAKg2B,EAAG,OAAOA,EAAE,MAAM/jB,EAAI,IAAIsO,GAAI,oCAAoCvgB,CAAC,CAAC,CAAC,CACxJ,SAAS4vK,IAAIrjM,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGyzB,EAAG,OAAOzzB,EAAE,EAAO,GAAGA,EAAE,GAAGyzB,EAAG,OAAOzzB,EAAE,EAAO,MAAM0lC,EAAI,IAAImN,GAAI,4DAA4D,CAAC,CAAE,CACzJ,SAASywJ,IAAItjM,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAE,GAAGyzB,EAAG,OAAOzzB,EAAE,EAAE,EAAO,GAAGA,EAAE,EAAE,GAAGyzB,EAAG,OAAOzzB,EAAE,EAAE,EAAO,MAAM0lC,EAAI,IAAImN,GAAI,QAAQpf,EAAE,yCAAyCzzB,CAAC,CAAC,CAAE,CACzJ,SAASujM,IAAIvjM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAO4zB,EAAE,GAAG,IAAK,GAAE,IAAK,GAAE5zB,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAE,IAAIA,EAAEG,EAAE,GAAGo1G,GAAIp1G,EAAEyzB,GAAG24D,GAAG,EAAG2jD,IAAKlwI,CAAC,EAAE,MAAM,IAAK,GAAE,IAAK,GAAEu1G,GAAIp1G,EAAEyzB,GAAG24D,GAAG,EAAGwjD,IAAK,IAAI,CAAE,CAAC,CACzJ,SAAS4zD,GAAIxjM,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAsD,IAApD93C,EAAE02E,IAAIhwK,EAAE5zB,EAAER,CAAC,EAAEslK,EAAE9kK,IAAIi/F,EAAG,EAAG+5C,KAAMh5I,GAAGojG,GAAI,GAAG,EAAE2hE,EAAE5kK,EAAEH,EAAE,CAAC,EAAMglK,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAKjlK,EAAEglK,EAAEC,CAAC,EAAEjlK,EAAE,IAAIA,GAAGJ,GAAGolK,EAAEC,CAAC,EAAE93C,EAAEA,GAAG43C,GAAG/kK,EAAE6pD,EAAG,CACzJ,SAASi6I,IAAI1jM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA0D,IAAxDA,EAAEzpD,EAAE,EAAEA,EAAE,EAAEikE,EAAG8pF,GAAGC,GAAI,GAAGvkG,EAAE,GAAG,CAAC,EAAEzpD,EAAE,EAAEikE,EAAG8pF,GAAGC,GAAI,GAAGvkG,EAAE,GAAG,CAAC,EAAMh2B,EAAE,EAAEA,EAAEg2B,EAAEh2B,IAAK5zB,EAAEqjD,EAAGo4B,GAAIt7E,EAAE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEzzB,EAAE,EAAEyzB,CAAC,EAAEulK,IAAIh5L,EAAEH,CAAC,EAAEG,EAAE,EAAEyzB,CAAC,EAAEkwK,IAAI3jM,EAAEH,CAAC,CAAE,CACzJ,SAASirK,GAAI9qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAM,IAAJA,EAAE,EAAMiqD,EAAE,EAAEA,EAAEh2B,EAAEg2B,IAAI,EAAIzpD,EAAE,GAAGypD,GAAO,EAAEjqD,EAAE,GAAGA,GAAG,EAAE,CAAC,IAAIK,EAAE4zB,IAAI,EAAE5zB,GAAG,IAAIA,IAAI,EAAG,GAAIG,EAAE,GAAGH,EAAO,MAAO,GAAG,MAAO,EAAE,KAAM,QAAOL,CAAE,CACzJ,SAASokM,IAAI5jM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAyC,IAAvCA,EAAE06C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEp0B,EAAE,KAAKQ,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMR,EAAE,EAAEA,EAAEQ,EAAE,EAAE,EAAER,EAAGiqD,EAAE5pD,EAAEL,CAAC,EAAKutH,EAAE,GAAGtjE,EAAE,GAAI,CAAA,IAAG,CAACpqD,IAAIA,EAAE,IAAI2iB,IAAKkkD,GAAI7mE,EAAEoqD,CAAC,GAAKpqD,GAAGwkM,IAAI7jM,EAAEX,CAAC,CAAC,CACzJ,SAASykM,IAAI9jM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAG,CAACzpD,EAAE,OAAO,KAAK,GAAGA,EAAE,GAAE,EAAG,MAAO,GAAa,IAAVypD,EAAE,IAAIzT,GAAQn2C,EAAEG,EAAE,GAAI,EAACH,EAAE,GAAI,GAAG4zB,EAAE5zB,EAAE,GAAI,EAACw7D,GAAI5R,EAAElU,GAAG9hB,CAAC,CAAC,EAAEg2B,EAAE,GAAG,IAAI,OAAO8U,GAAI9U,EAAEA,EAAE,EAAE,OAAO,CAAC,CAAC,CACzJ,SAASmnD,GAAG5wG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAQ,IAAN8M,IAAGzxK,CAAC,EAAMR,GAAGQ,EAAE,GAAG,OAAOA,EAAE,EAAEikE,EAAG8/H,GAAGv5H,EAAI,GAAG,EAAE,EAAE,CAAC,GAAGxqE,EAAE,GAAGX,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEuxG,GAAGnnD,CAAU,EAAEk7G,EAAE3kK,EAAE,EAAI2kK,GAAG/zD,GAAG+zD,CAAK,CAAC,CAC1J,SAASthB,IAAGrjJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,IAAI,MAAM4zB,CAAC,EAAMg2B,EAAE,OAAOzpD,GAAG,IAAK,IAAG,IAAK,IAAGypD,EAAE,EAAE,MAAM,IAAK,IAAGA,EAAE,GAAM,MAAM,QAAQ,OAAO5pD,CAAE,CAAC,QAAQL,EAAE,EAAEA,EAAEi0B,EAAE,EAAEj0B,EAAGK,EAAEL,CAAC,EAAEiqD,EAAE,OAAO5pD,CAAC,CAC1J,SAASmkM,GAAIhkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,KAAK4tC,GAAIrhE,EAAE,CAAC,EAAGypD,EAAEzpD,EAAE,EAAE,EAAIypD,EAAEzpD,EAAE,EAAE,EAAGqkE,GAAI5a,EAAE,IAAIxvB,IAAIj6B,CAAC,CAAC,EAAEA,EAAE,EAAE,GAAGA,CAAC,EAAEikM,IAAIjkM,CAAC,CAAC,CAC1J,SAASkkM,IAAIlkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIK,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,IAAjB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAML,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAE2kM,GAAI16I,CAAC,EAAE26I,IAAI3wK,CAAC,CAAC,CAAC,CAC1J,SAAS4wK,GAAIrkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAc,IAAZoqD,EAAE,EAAEpqD,EAAE,EAAEG,EAAE,EAAMK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAER,EAAE0D,EAAK,KAAK,IAAI1D,EAAEo0B,EAAE,CAAC,EAAEg2B,GAAGh2B,EAAE,GAAGj0B,EAAE,EAAEQ,EAAE,EAAE,GAAG,EAAER,EAAEQ,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEX,CAAC,CAC1J,SAASilM,IAAItkM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAc,IAAZtjE,EAAE,EAAEjqD,EAAE,EAAEK,EAAE,EAAMktH,EAAE,IAAI70F,EAAIzE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEtjE,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEpqD,EAAE,CAAC,EAAEG,GAAGH,EAAE,GAAGQ,EAAE,EAAEG,EAAE,EAAE,GAAG,EAAEH,EAAEG,EAAE,EAAER,EAAEQ,EAAE,EAAEypD,CAAC,CAC1J,SAAS86I,IAAIvkM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEq5G,EAAG9hE,EAAG22G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAACuvC,GAAIv9L,GAAGynF,GAAG,EAAGm0C,IAAKnoG,CAAC,EAAE8pK,GAAIv9L,EAAE67H,GAAIpoG,CAAC,EAAE8pK,GAAIv9L,EAAE87H,GAAIroG,CAAC,CAAC,CAAC,EAAKzzB,EAAE,IAAGH,EAAE,CAAC,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,GAASA,CAAC,CAC1J,SAAS2kM,IAAI/wK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAAC+yK,GAAI9+I,EAAE5zB,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,EAAE,GAAM,EAAI,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwM,GAAI1yC,EAAE,EAAE6hM,GAAIxhM,EAAE41C,GAAIgU,EAAE,IAAI,CAAC,GAAa/jB,EAAI1lC,CAAC,CAAC,CAAC,CAC1J,SAASykM,IAAIhxK,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,GAAG,CAAC+yK,GAAI9+I,EAAE5zB,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,EAAE,GAAK,EAAK,CAAC,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAIwM,GAAI1yC,EAAE,EAAE6hM,GAAIxhM,EAAE41C,GAAIgU,EAAE,IAAI,CAAC,GAAa/jB,EAAI1lC,CAAC,CAAC,CAAC,CAC1J,SAAS0kM,IAAI1kM,EAAE,CAAC,IAAIyzB,EAAMijD,GAAI12E,GAAGstB,GAAK,EAACq3K,GAAK,IAASlxK,EAAEyvB,EAAG0lE,EAAI5oH,EAAE2kM,EAAG,EAAE,EAAE,EAAKlxK,EAAE,IAAI8pE,GAAK,EAAC88D,GAAK,GAAE5mI,EAAE,GAAG4mI,EAAG,EAAE5mI,EAAE,GAAG8mI,EAAG,GAAU9mI,EAAE,GAAG8mI,EAAG,IAAG9mI,EAAE,GAAG8mI,EAAG,EAAE9mI,EAAE,GAAG4mI,EAAG,GAAE,CAC1J,SAASuqC,IAAI5kM,EAAE,CAAC,IAAIyzB,EAAMijD,GAAI12E,GAAGstB,GAAK,EAACq3K,GAAK,IAASlxK,EAAEyvB,EAAG0lE,EAAI5oH,EAAE2kM,EAAG,EAAE,EAAE,EAAKlxK,EAAE,IAAI8pE,GAAK,EAACi9D,GAAK,GAAE/mI,EAAE,GAAG+mI,EAAG,EAAE/mI,EAAE,GAAGinI,EAAG,GAAUjnI,EAAE,GAAGinI,EAAG,IAAGjnI,EAAE,GAAGinI,EAAG,EAAEjnI,EAAE,GAAG+mI,EAAG,GAAE,CAC1J,SAASqqC,IAAI7kM,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,qBAAqB,CAAC,EAAEwlD,GAAIozD,GAAIkL,GAAIA,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIzhB,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIwqB,IAAI38B,CAAC,CAAC,EAAE6rH,GAAIhsH,CAAC,CAAC,CAC1J,SAASilM,GAAI9kM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,IAAIG,EAAEi0B,EAAEj0B,EAAEQ,EAAE,EAAE,OAAOR,IAAyC,GAApCH,GAAGw9D,GAAIr9D,EAAEQ,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAER,CAAC,EAAE,EAAE,GAAMK,EAAE,GAAGR,CAAC,EAAGoqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEpqD,MAAO,QAAOG,EAAG,OAAOQ,EAAE,EAAE,MAAM,CAC1J,SAAS+kM,GAAI/kM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAA3kK,EAAE,GAAG,MAAMglM,IAAIhlM,EAAEyzB,CAAC,EAAEs5F,EAAEt5F,EAAE,EAAE,EAAE,EAAE,OAAOp0B,EAAEQ,EAAE,EAAE,EAAE8kK,EAAEl7G,EAAE,EAAE,EAAEjqD,EAAEmlK,EAAE,EAAEnlK,EAAE,IAAIA,EAAEutH,EAAE,GAAU1tH,GAAGG,EAAEQ,EAAE,EAAER,CAAC,EAAEQ,EAAE,EAAEX,CAAC,EAAEW,EAAE,EAAE+sH,EAAE,CAAC,EAAE/sH,EAAE,EAAEX,CAAC,EAAEW,EAAE,EAAER,CAAC,CAAC,CAC1J,SAASylM,IAAIjlM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAG,CAACG,EAAE,EAA6B,IAA1BA,EAAE,EAAE4rI,GAAG1oF,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAE,EAAG,CAAC,EAAMH,EAAE,IAAIs8D,GAAIjZ,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAE,CAAE,EAAEH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,GAAG,EAAE+oC,EAAI5oC,EAAE,EAAE,IAAI2yC,GAAIlf,CAAC,CAAC,EAAG,OAAOzzB,EAAE,CAAC,CAC1J,SAASklM,IAAIllM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAG,CAACG,EAAE,EAA6B,IAA1BA,EAAE,EAAE4rI,GAAGjpB,GAAIz/D,EAAGljD,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAMH,EAAE,IAAIs8D,GAAIwmD,GAAIz/D,EAAGljD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,GAAG,EAAE+oC,EAAI5oC,EAAE,EAAE,IAAIkjC,IAAIzP,CAAC,CAAC,EAAG,OAAOzzB,EAAE,CAAC,CAC1J,SAASk9J,IAAIl9J,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAG,CAACG,EAAE,EAA6B,IAA1BA,EAAE,EAAE4rI,GAAGphB,GAAItnE,EAAGljD,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAMH,EAAE,IAAIs8D,GAAIquD,GAAItnE,EAAGljD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,MAAO4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAE+oC,EAAI5oC,EAAE,EAAE,IAAI4zE,GAAI5zE,EAAEyzB,CAAC,CAAC,EAAG,OAAOzzB,EAAE,CAAC,CAC3J,SAASmlM,GAAI1xK,EAAE,CAAC,IAAI5zB,EAAE,GAAG,CAAC4zB,EAAE,IAAIA,EAAE,GAAG,MAAMA,EAAE,GAAG,MAAgB,GAAT5zB,EAAEulM,IAAI3xK,CAAC,EAAK5zB,EAAG4zB,EAAE,GAAG5zB,CAAC,MAAO,IAAG,CAAC4zB,EAAE,GAAG,IAAI,CAAC,OAAOzzB,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,EAAE,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAG,OAAOyzB,EAAE,CAAC,CAC1J,SAAS4xK,IAAIrlM,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEslM,IAAItlM,GAAG8+F,EAAG,EAAG+5C,KAAMysD,IAAItlM,EAAEiwI,EAAG,EAAE,MAAM,IAAK,GAAEs1D,IAAIvlM,GAAG8+F,EAAG,EAAG+5C,GAAG,EAAG0sD,IAAIvlM,EAAEiwI,EAAG,EAAE,MAAM,QAAQu1D,IAAIxlM,GAAG8+F,EAAK,EAAC+5C,GAAK,EAAC2sD,IAAIxlM,EAAEiwI,EAAG,CAAE,CAAC,CAC3J,SAASw1D,IAAIzlM,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAE0lM,IAAI1lM,GAAG8+F,EAAG,EAAGsE,KAAMsiG,IAAI1lM,EAAEijG,EAAG,EAAE,MAAM,IAAK,GAAE0iG,IAAI3lM,GAAG8+F,EAAG,EAAGsE,GAAG,EAAGuiG,IAAI3lM,EAAEijG,EAAG,EAAE,MAAM,QAAQ2iG,IAAI5lM,GAAG8+F,EAAK,EAACsE,GAAK,EAACwiG,IAAI5lM,EAAEijG,EAAG,CAAE,CAAC,CAC3J,SAAS4iG,GAAI7lM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAI47C,GAAQqO,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,MAAO5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAE0gG,GAAItqJ,EAAEL,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAGK,EAAE,EAAE,EAAE4zB,EAAEj0B,EAAE,EAAEuD,EAAK,KAAK,IAAIvD,EAAE,EAAEK,EAAE,EAAE,CAAC,EAAE,OAAAL,EAAE,EAAE,IAAIA,EAAE,GAAGi0B,GAAUj0B,CAAC,CAC3J,SAASsmM,GAAI9lM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAI47C,GAAQqO,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,MAAO5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAE0gG,GAAItqJ,EAAE,EAAEL,EAAE,CAAC,EAAEA,EAAE,GAAGK,EAAE,EAAE,EAAE4zB,EAAEj0B,EAAE,EAAEuD,EAAK,KAAK,IAAIvD,EAAE,EAAEK,EAAE,EAAE,CAAC,EAAE,OAAAL,EAAE,EAAE,IAAIA,EAAE,GAAGi0B,GAAUj0B,CAAC,CAC3J,SAASmmI,IAAI3lI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAQ,IAANA,EAAEyzB,GAAQr9E,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE62E,GAAIjjD,GAAGy2F,EAAK,EAAC67E,GAAK,IAAGt8I,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEvG,EAAG0lE,EAAIn1F,EAAEsyK,EAAG,EAAE,EAAE,EAAE,CAAC,GAAG,OAAOt8I,CAAC,CAC3J,SAASu8I,IAAIhmM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,EAAE,QAAQ,EAAG,MAAO,GAA4D,IAA1D5zB,EAAEk9G,GAAI/8G,EAAE,EAAEyzB,EAAE,CAAC,GAAGqrE,EAAG,EAAGmE,GAAG,EAAGpjG,GAAGk9G,GAAI/8G,EAAE,EAAEyzB,EAAEA,EAAE,OAAO,CAAC,EAAE2vE,EAAG,EAAM35C,EAAE,EAAEA,EAAEh2B,EAAE,OAAOg2B,IAAK5pD,GAAGomM,IAAIjmM,EAAEypD,EAAEh2B,CAAC,EAAE,OAAO5zB,CAAC,CAC3J,SAASurK,KAAK,CAAC86B,GAAK,EAAC,KAAK,EAAE,IAAIrhK,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIk8B,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIl8B,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIE,GAAI,KAAK,EAAE,IAAIA,EAAG,CAC3J,SAASohK,GAAInmM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAEomM,GAAG3yK,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,GAAEG,EAAE,GAAE,GAAMA,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAC3J,SAAS4yK,IAAGrmM,EAAE,CAAConC,GAAI,EAAC,IAAI3T,EAAEzzB,EAAE,EAAE,GAAGyzB,GAAGA,EAAE,MAAM,CAAC,IAAI5zB,EAAE4zB,EAAE,MAAUg2B,EAAEh2B,EAAE;AAAA,EAAK,OAAA5zB,EAAE,UAAU,EAAE4pD,EAAE,MAAM,GAAGA,IAAI5pD,EAAEA,EAAE,UAAU4pD,EAAE,MAAM,GAAU5pD,EAAE,MAAM;AAAA,CAAI,CAAC,CAAC,MAAO,EAAE,CAC5J,SAASymM,IAAItmM,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,GAAGorI,IAAG,EAAGC,KAAYrrI,EAAEzzB,IAAI,EAAE,EAAEyzB,EAAEzzB,GAAG,GAAG,EAAE,GAAG,EAAEyzB,EAAEzzB,GAAG,GAAG,EAAE,GAAG,EAAEyzB,EAAEzzB,GAAG,GAAG,EAAE,GAAG,GAAGyzB,EAAEzzB,GAAG,GAAG,EAAE,GAAG,GAAGyzB,EAAEzzB,GAAG,EAAE,EAAE,GAAG,GAAGyzB,EAAEzzB,GAAG,EAAE,EAAE,GAAG,GAAGyzB,EAAEzzB,EAAE,EAAE,GAAG,EAAE,CAC5J,SAAS8wI,IAAI9wI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAKzpD,EAAE,GAAGA,EAAE,IAAUypD,EAAEzpD,EAAE,EAAE,OAAOH,EAAEo7H,GAAIl4H,EAAK,KAAK,IAAI,EAAE0mD,CAAC,CAAC,GAAG,EAAKzpD,EAAE,GAAG,GAAGyzB,EAAEorD,GAAI7+E,EAAE,EAAEH,CAAC,EAAEihK,IAAI9gK,EAAEyzB,EAAEg2B,CAAC,EAAEzpD,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,GAAO0oC,IAAI1oC,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEypD,EAAC,CAC5J,SAASyxI,IAAIl7L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAAA,EAAEG,EAAE,EAASH,EAAE,IAAImwB,GAAK,EAACk/E,GAAK,EAACrvG,EAAE,OAAOi/F,IAAMmE,IAAK,CAACpjG,EAAE,GAAI,EAAC,EAAEqzC,EAAImnC,EAAGx6E,EAAE,GAAGqvG,EAAG,CAAC,CAAC,EAAEz7E,EAAEyf,EAAImnC,EAAGx6E,EAAE,GAAGqvG,EAAG,CAAC,CAAC,EAAErvG,EAAE,OAAOi/F,IAAMmE,IAAK,CAACpjG,EAAE,KAAK,EAAE4zB,CAAC,CAC5J,SAAS8nK,GAAIv7L,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,EAAE,EAAE,QAAQ,GAAKkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAUkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAEyzB,EAAEyzE,GAAIlnG,CAAC,EAAKyzB,GAAyB,IAAKzzB,EAAE,EAAKkgE,GAAIlgE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAhB,IAAkB,CAC5J,SAASumM,GAAIvmM,EAAE,CAAC,IAAIyzB,EAAE,OAAGzzB,EAAE,EAAE,EAAE,QAAQ,GAAKkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAUkjD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAEyzB,EAAEyzE,GAAIlnG,CAAC,EAAKyzB,GAAyB,IAAKzzB,EAAE,EAAKkgE,GAAIlgE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAhB,IAAkB,CAC5J,SAASwmM,IAAIxmM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,EAAE,GAAGA,GAAGzzB,EAAE,GAAE,EAAI,OAAO,KAAK,IAAIH,EAAE4zB,EAAE5zB,EAAEG,EAAE,KAAK,EAAEH,EAAqB,GAAlB4pD,EAAEvG,EAAGljD,EAAE,GAAGH,CAAC,EAAE,GAAG,EAAKA,GAAGG,EAAE,KAAK,GAAG,CAACypD,EAAE,EAAG,OAAO,IAAIkN,GAAI42E,EAAI1tI,CAAC,EAAE4pD,CAAC,EAAG,OAAO,IAAI,CAC5J,SAASg9I,IAAIzmM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAwB,IAAtBtlK,EAAEW,EAAE,EAAE2kK,EAAE9kK,EAAE4zB,EAAEzzB,EAAEypD,EAAE5pD,EAAEG,EAAEyzB,EAAMj0B,EAAEmlK,EAAE,EAAE,EAAEnlK,EAAEiqD,EAAE,EAAE,EAAEjqD,EAAuB,GAApButH,EAAE7pE,EAAGo4B,GAAIj8E,EAAE,EAAEG,CAAC,EAAE,EAAE,EAAK,EAAEutH,EAAE,IAAIpiC,GAAK,EAAC8+D,KAAMi9C,IAAI35E,CAAC,GAAI,MAAO,GAAO,MAAO,EAAI,CAC5J,SAAS45E,GAAI3mM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgB,IAAdA,EAAE,EAAEG,EAAE63G,GAAI5tD,EAAE,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAER,GAAGo0B,EAAE,GAAGg2B,EAAE,EAAEzpD,EAAE,EAAE,GAAGR,EAAEuD,EAAK,KAAK,IAAIvD,EAAEi0B,EAAE,CAAC,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAEX,EAAEW,EAAE,EAAER,CAAC,CAC5J,SAASonM,IAAI5mM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAG,CAACG,EAAE,EAA8B,IAA3BA,EAAE,EAAE4rI,GAAG1oF,EAAGljD,EAAE,EAAE,GAAG,EAAE,GAAE,EAAG,CAAC,EAAMH,EAAE,IAAIs8D,GAAIjZ,EAAGljD,EAAE,EAAE,GAAG,EAAE,GAAE,CAAE,EAAEH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,GAAG,EAAE+oC,EAAI5oC,EAAE,EAAE,IAAI2yC,GAAIlf,CAAC,CAAC,EAAG,OAAOzzB,EAAE,CAAC,CAC5J,SAAS6mM,IAAI7mM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,EAAE,GAAI,EAAE,OAAO8lD,KAAMA,KAAMC,GAA6B,IAApB35E,EAAE,IAAIw9E,IAAIr9E,EAAEyzB,EAAE,GAAI,CAAA,EAAMj0B,EAAE,IAAI28D,GAAIn8D,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGiqD,EAAE4oG,GAAI7yJ,CAAC,EAAEi0B,EAAE,GAAGg2B,CAAC,GAAGyc,GAAIrmE,EAAE4pD,CAAC,EAAE,OAAO5pD,CAAE,CAC5J,SAASmiL,GAAIhiL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAGh2B,GAAG,EAAUg2B,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,KAAMC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGA,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAK,EAACC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGgjJ,GAAIhjJ,EAAE,CAAC,GAAUowJ,GAAIpwJ,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CAC5J,SAASq9I,GAAI9mM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,GAAI,IAAIyzB,EAAE,EAAE5zB,EAAEG,EAAE,GAAG,EAAEyzB,EAAE5zB,EAAE,EAAE4zB,EAAGgiD,GAAIi3E,EAAI1sJ,EAAE,GAAGyzB,CAAC,CAAC,EAAG,GAAGzzB,EAAE,GAAI,IAAIyzB,EAAE,EAAE5zB,EAAEG,EAAE,GAAG,EAAEyzB,EAAE5zB,EAAE,EAAE4zB,EAAGgiD,GAAIi3E,EAAI1sJ,EAAE,GAAGyzB,CAAC,CAAC,EAAGg9E,IAAKs2F,KAAMC,IAAKhnM,CAAC,EAAEA,EAAE,IAAI,CAAC,CAC5J,SAASinM,GAAIjnM,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,CAAC,OAAAulK,IAAIhlK,EAAEyzB,EAAEg2B,EAAE,KAAKjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEG,EAAE,GAAKtlK,CAAC,EAAEm6H,GAAI55H,EAAE6kK,CAAC,EAAEt5F,EAAGvrE,EAAE,GAAG,EAAE,GAAG65H,GAAI7N,GAAI9oE,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAIH,GAAG+gK,GAAI5gK,EAAEH,CAAC,EAAEylL,GAAItlL,EAAE8kK,CAAC,EAAS9kK,CAAC,CAC5J,SAASknM,IAAIzzK,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAG,KAAM,OAAO,KAAKg2B,EAAE,EAAE,GAAG,CAACA,EAAE09I,GAAI1zK,EAAEsgI,GAAI72E,EAAG,EAAE6nB,EAAG,OAAO/kG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAGH,EAAE+vJ,GAAIn8H,CAAC,EAAEg2B,EAAE5pD,EAAE,CAAC,MAAO,OAAM6lC,EAAI1lC,CAAC,CAAC,CAAC,OAAOquK,GAAI5kH,CAAC,CAAC,CAC5J,SAAS29I,IAAI3zK,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAG,KAAM,OAAO,KAAKg2B,EAAE,EAAE,GAAG,CAACA,EAAE09I,GAAI1zK,EAAEsgI,GAAI72E,EAAG,EAAE6nB,EAAG,OAAO/kG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAGH,EAAE+vJ,GAAIn8H,CAAC,EAAEg2B,EAAE5pD,EAAE,CAAC,MAAO,OAAM6lC,EAAI1lC,CAAC,CAAC,CAAC,OAAOquK,GAAI5kH,CAAC,CAAC,CAC5J,SAAS49I,IAAGrnM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAsE,OAApEA,EAAEQ,EAAE,EAAEyzB,EAAE,EAAKj0B,EAAE,IAAgBK,EAAEG,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,GAAG5zB,GAAG,IAAIL,GAAGiqD,GAAG,GAAMjqD,EAAE,GAAU,IAAMQ,EAAE,EAAEH,EAAEi3G,GAAI92G,EAAE,EAAEypD,EAAEqtD,GAAI92G,EAAE,EAAER,EAAEu3G,GAAW,GAAI,CAC7J,SAASorF,IAAIniM,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAyD,MAApD,EAAA6zB,EAAE,GAAE,IAAK7zB,EAAEI,EAAE,EAAE,GAAGH,EAAE4pD,CAAC,EAAE7pD,EAAE,GAAG,CAACJ,GAAGI,GAAG,IAAoB6zB,EAAE,OAAOkxI,EAAE3kK,EAAE,EAAE,GAAGH,EAAER,CAAC,EAAEslK,EAAE,GAAG,CAAC53C,GAAG43C,GAAG,GAA4B,CAC7J,SAAS2iC,IAAItnM,EAAEyzB,EAAE,CAACjH,GAAG,EAAG,IAAI3sB,EAAgB,GAAdA,EAAEG,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAK5zB,GAAG,EAAG,MAAO,GAAE,OAAOG,EAAE,EAAE,GAAG,IAAK,GAAE,OAAO2nL,GAAIl0J,EAAE+lJ,GAAG,EAAEmO,GAAI3nL,EAAEw5K,GAAG,EAAE,IAAK,GAAE,OAAOmO,GAAI3nL,EAAEu5K,GAAG,EAAEoO,GAAIl0J,EAAE8lJ,GAAG,CAAE,CAAC,MAAO,EAAC,CAC7J,SAASwW,IAAI/vL,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO0nJ,GAAI,IAAK,GAAE,OAAOD,GAAI,IAAK,GAAE,OAAOG,GAAI,IAAK,GAAE,OAAOD,GAAI,IAAK,GAAE,OAAOG,GAAI,IAAK,GAAE,OAAOD,GAAI,QAAQ,OAAO,IAAK,CAAC,CAC7J,SAAS0/C,GAAIvnM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAiqD,GAAGjqD,EAAE,IAAImuC,GAAIgvH,GAAIn9J,EAAEi0B,CAAC,EAAEsmG,GAAIv6H,EAAEK,CAAC,EAAEqmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIqmH,GAAGxnM,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGR,CAAC,EAAEA,GAAGu7J,GAAItxG,EAAE,CAAC,EAAElO,GAAIkO,EAAE,CAAC,EAAEmzG,GAAInzG,EAAE,EAAI,EAAEozG,GAAIpzG,EAAE,EAAI,EAASA,CAAC,CAC7J,SAASqiI,GAAI9rL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,EAAE,MAAM0lC,EAAI,IAAIq4B,GAAItqC,EAAEzzB,EAAE,CAAC,CAAC,EAAE,QAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEyzB,CAAC,EAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAE,GAAG2qF,GAAIp0I,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAEoc,GAAG7lE,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEA,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAEG,EAAE,GAAI,EAAQH,CAAC,CAC7J,SAAS4nM,IAAIznM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,GAAWA,EAAE,GAAG,GAAGA,EAAE,GAAG0nM,GAAGj0K,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,GAAEG,EAAE,GAAE,GAAMA,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAC7J,SAASg2G,IAAIzpI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAqB,IAAnB6qE,GAAK,EAACrC,GAAIhoE,EAAE,EAAEA,EAAE,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkB,IAATiqD,EAAEk7E,EAAInlI,CAAC,EAAMK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,GAAGg2B,CAAC,CAAG,CAC9J,SAASkgF,IAAI3pI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAqB,IAAnB6qE,GAAK,EAACrC,GAAIhoE,EAAE,EAAEA,EAAE,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkB,IAATiqD,EAAEk7E,EAAInlI,CAAC,EAAMK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,GAAGg2B,CAAC,CAAG,CAC9J,SAASk+I,IAAI3nM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAe,IAAbG,EAAE09E,GAAI79E,EAAE,KAASoqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAK5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAG4zB,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAK4zB,EAAEj0B,IAAGA,EAAEi0B,EAAEp0B,EAAEQ,IAAI,OAAOR,CAAC,CAC9J,SAAS2rB,IAAK,CAACA,GAAItmB,EAAIkjM,IAAI,IAAI/pI,GAAIgqI,KAAKz3H,GAAK,EAAC,GAAK,EAAG03H,IAAI,IAAIjqI,GAAIkqI,IAAI,GAAG,EAAEC,KAAKt+G,GAAG,EAAGszC,IAAKirE,IAAI,IAAIpqI,GAAIqqI,IAAIF,GAAG,EAAEG,IAAI,IAAItqI,GAAIuqI,IAAIC,EAAG,EAAEC,IAAI,IAAIzqI,GAAI0qI,IAAIh7D,EAAIrwD,EAAG,CAAC,CAAC,CAC9J,SAASsrH,IAAIxoM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAM,IAAJD,EAAE,EAAMplK,EAAEQ,EAAE,EAAEyzB,CAAC,EAAEp0B,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAqB,IAAlBoqD,EAAEjqD,EAAEH,CAAC,EAAEwlK,EAAEiO,GAAIrpH,EAAE5pD,CAAC,EAAMD,EAAEilK,EAAE,GAAE,EAAGjlK,EAAE,GAAI,GAAG+kK,EAAEzhH,EAAGtjD,EAAE,GAAE,EAAG,EAAE,EAAE45D,GAAIx5D,EAAE,EAAE2kK,EAAEp3B,EAAIq3B,GAAG,CAAC,CAAG,CAC9J,SAAS6jC,IAAIzoM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGltH,EAA6B,IAA1BL,EAAEK,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAItxG,CAAC,EAAMutH,GAAGtjE,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAG,EAAGC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEsjE,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAEv2C,GAAGx2E,EAAEyzB,EAAEo/J,GAAI96E,GAAGl4G,EAAER,EAAE,CAAC,CAAC,CAAC,CAAG,CAC9J,SAASqpM,IAAI1oM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGltH,EAA6B,IAA1BL,EAAEK,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAItxG,CAAC,EAAMutH,GAAGtjE,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAG,EAAGC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEsjE,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAEv2C,GAAGx2E,EAAEyzB,EAAEo/J,GAAI96E,GAAGl4G,EAAER,EAAE,CAAC,CAAC,CAAC,CAAG,CAC9J,SAAS2+L,GAAIh+L,EAAE,CAAC0sB,KAAM,IAAI+G,EAAE,OAAAA,EAAEyvB,EAAG6/I,GAAG/xF,GAAGhxG,EAAE,CAAC,EAAEikE,EAAGy0E,GAAGC,GAAI,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE73E,GAAIrtC,EAAE,EAAEA,EAAE,OAAO,IAAI,EAAKA,EAAE,CAAC,IAAIqrE,EAAK,EAAC+5C,KAAMplH,EAAE,CAAC,GAAGwvE,KAAKp9B,GAAGpyC,EAAE,EAAEwvE,EAAG,EAAEp9B,GAAGpyC,EAAE,EAAEolH,EAAG,GAASplH,CAAC,CAC9J,SAASk1K,IAAI3oM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAG,EAAEopM,IAAI5oM,EAAEyzB,EAAE5zB,CAAC,EAAER,EAAEisJ,GAAItrJ,EAAER,CAAC,EAAE4sJ,GAAIpsJ,EAAE,CAAC,EAAEqmI,GAAIrmI,EAAEyzB,EAAE5zB,CAAC,EAAEwqE,GAAK,EAACrC,GAAIxoE,EAAE,IAAIu/B,IAAI/+B,CAAC,CAAC,EAAEypD,EAAE6hG,GAAItrJ,EAAER,CAAC,EAAE4sJ,GAAIpsJ,EAAE,CAAC,EAAEqmI,GAAIrmI,EAAEH,EAAE4zB,CAAC,EAAS,IAAIkjC,GAAI42E,EAAIluI,CAAC,EAAEkuI,EAAI9jF,CAAC,CAAC,CAAC,CAC9J,SAASv8B,KAAK,CAACA,IAAIxoB,EAAImkM,IAAIngG,GAAI,IAAItgD,IAAK0hC,GAAK,EAAC6uC,KAAMl9B,GAAK,EAACu9B,GAAG,EAAG8vE,GAAI,IAAIhrI,GAAI,2BAA2ByvE,EAAI,CAAC,CAAC,EAAEw7D,GAAI,IAAIjrI,GAAI,4BAA4ByvE,EAAI,CAAC,CAAC,CAAC,CAC9J,SAASv3C,IAAK,CAACA,GAAItxF,EAAI+sI,GAAI,IAAI79E,GAAI,mBAAmB,CAAC,EAAE89E,GAAI,IAAI99E,GAAI,mBAAmB,CAAC,EAAE+9E,GAAI,IAAI/9E,GAAI,oBAAoB,CAAC,EAAEylE,GAAI,IAAIzlE,GAAI,kBAAkB,CAAC,CAAC,CAC9J,SAAStlC,IAAK,CAACA,GAAI5pB,EAAIskM,KAAKh5K,GAAG,EAAGiqJ,IAAKgvB,IAAIzY,GAAI0Y,IAAI7uB,GAAI8uB,IAAI5uB,GAAI6uB,IAAIl9C,GAAIm9C,IAAI1M,GAAI2M,IAAIC,GAAIC,IAAI59C,GAAI69C,IAAKr7K,GAAK,EAACs7K,KAAKC,GAAIC,IAAIC,IAAIC,IAAI3lC,GAAI4lC,IAAIC,GAAIC,IAAIC,GAAIC,IAAIC,IAAIC,GAAG,CAC9J,SAASltG,IAAK,CAACA,GAAIz4F,EAAI+tI,GAAI,IAAI78E,GAAI,UAAU,CAAC,EAAE88E,GAAI,IAAI98E,GAAI,QAAQ,CAAC,EAAE+8E,GAAI,IAAI/8E,GAAI,QAAQ,CAAC,EAAEg9E,GAAI,IAAIh9E,GAAI,SAAS,CAAC,EAAE,IAAIkI,GAAI,4BAA4B20E,EAAG,CAAC,CAC9J,SAASyqD,IAAIl9L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAGG,EAAE,GAAE,GAAIyzB,GAAG,MAAM,IAAI5zB,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAG,GAAGqkD,GAAGzwB,EAAEzzB,EAAE,EAAEH,CAAC,CAAC,EAAG,OAAOA,MAAS,KAAIA,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAG,GAAGk6D,EAAG/5D,EAAE,EAAEH,CAAC,CAAC,IAAIk6D,EAAGtmC,CAAC,EAAG,OAAO5zB,EAAI,MAAO,EAAE,CAC9J,SAASyqM,IAAItqM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAGi0B,EAAE,IAAIu+D,GAAG,EAAG0tC,KAAM7/H,EAAE,GAAG4/H,GAAY,GAAWhsG,EAAE,GAAGgsG,IAAK5/H,EAAE,GAAG6/H,GAAY,GAAEj2E,EAAEmyH,IAAInoJ,EAAE,EAAEzzB,EAAE,CAAC,EAAER,EAAEo8K,IAAI/7K,EAAE,EAAEG,EAAE,CAAC,EAASyzB,EAAE,GAAGisG,GAAIlgI,EAAEiqD,EAAEA,EAAEjqD,EAAC,CAC/J,SAAS+qM,GAAIvqM,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAKA,IAAI4zB,EAAE,GAAGA,EAAE5zB,EAAE,EAAE,EAAE,QAAS,MAAM6lC,EAAI,IAAImN,GAAI,4CAA4C,CAAC,EAAI7yC,EAAE,GAAG6yE,GAAI7yE,EAAE,EAAE,EAAEA,CAAC,EAAEA,EAAE,EAAEH,EAAIA,GAAG6tG,GAAI7tG,EAAE,EAAE4zB,EAAEzzB,CAAC,CAAC,CAC/J,SAASwqM,IAAIxqM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,IAAIonD,GAAGphC,GAAGk3G,GAAI3mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI,OAAA5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEjqD,EAAE0jD,EAAGzvB,EAAE,GAAG5zB,CAAC,EAAE,EAAE,EAAS,IAAImxB,GAAGwkB,GAAGh2C,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO4qB,GAAE,EAAGA,GAAE,EAAGmlB,EAAE,CAC/J,SAASk7J,IAAIzqM,EAAEyzB,EAAE,CAAC,KAAK,EAAE,IAAIsR,GAAI,KAAK,EAAE/kC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACw4E,GAAG,EAAG,GAAG,EAAE3oI,EAAG6uD,EAAI5oH,GAAGstB,GAAK,EAACo9K,IAAK,CAAA,IAAI3wI,GAAIq1B,GAAG,EAAGg/B,GAAG,EAAI,KAAK,EAAE,IAAIhiF,IAAM,KAAK,EAAE,IAAIF,GAAI,CAC/J,SAASy+J,IAAI3qM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJA,EAAE,EAAMoqD,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEpqD,GAAG0D,EAAK,KAAK,IAAIlD,EAAE,EAAEA,EAAE,EAAE4zB,EAAE,CAAC,EAAE,OAAAj0B,EAAEuD,EAAK,KAAK,KAAK1D,GAAGW,EAAE,EAAE,OAAO,EAAE,EAASR,CAAC,CAC/J,SAASorM,GAAI5qM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAAA,EAAE,KAAQzpD,EAAE,IAAIgwB,KAAMkpK,OAAOr5L,EAAEqjD,EAAGljD,EAAE,GAAGk5L,EAAG,EAAE,EAAE,EAAEr5L,EAAE,GAAG4zB,CAAC,IAAIg2B,EAAE5pD,EAAE,GAAG4zB,CAAC,IAAGg2B,GAAG,MAAQzpD,EAAE,GAAE,IAAKypD,EAAEzpD,EAAE,GAAE,EAAG,GAAGyzB,CAAC,GAAGg2B,GAAG,OAAOA,EAAE65C,GAAI7vE,CAAC,GAAUg2B,CAAC,CAC/J,SAASohJ,GAAGp3K,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEh2B,EAAE,GAAG5zB,CAAC,EAAE,GAAG,CAAC,OAAAL,EAAEiqD,EAAE,GAAE,EAAGA,EAAE,GAAI,EAAQjqD,CAAC,OAAOQ,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAI,wBAAwBryC,CAAC,CAAC,EAAa6lC,EAAI1lC,CAAC,CAAC,CAAC,CAChK,SAASiqD,IAAGjqD,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoF,GAAlFiqD,EAAE,IAAIpG,GAAG7jD,EAAE,IAAIkzK,GAAGjpH,EAAE,EAAE,YAAW,EAAG0sF,GAAI1sF,EAAE,EAAE,WAAWA,EAAE,EAAE,QAAO,CAAE,EAAE5pD,EAAEirM,IAAG9qM,EAAEyzB,EAAEj0B,CAAC,EAAKK,GAAG,GAAGA,EAAE4zB,EAAE,OAAQ,MAAMiS,EAAI,IAAImN,GAAIpf,CAAC,CAAC,EAAE,OAAOj0B,CAAC,CAChK,SAASurM,GAAI/qM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAkC,IAAhCsxB,GAAI2C,CAAC,EAAEwiD,GAAIxiD,GAAGzzB,CAAC,EAAER,EAAEQ,EAAE,EAAE,EAAE,OAAWypD,EAAEh2B,EAAE,GAAI,EAACg2B,EAAE,GAAI,GAAG5pD,EAAE4pD,EAAE,KAAK7gB,EAAI5oC,EAAE,EAAE8wB,GAAIjxB,CAAC,CAAC,EAAE,OAAGL,GAAGQ,EAAE,EAAE,EAAE,QAAQo3K,GAAIp3K,EAAE,CAAC,EAAS,IAAY,EAAK,CAChK,SAASkrB,IAAK,CAACA,GAAIxmB,EAAIsmM,KAAKh7K,GAAG,EAAGi7K,IAAK,IAAI5lI,GAAI6lI,IAAK96H,GAAK,EAAC,GAAM,EAAC+6H,IAAI9wB,GAAI+wB,IAAI7wB,GAAI8wB,IAAIn/C,GAAIo/C,IAAI3O,GAAI4O,IAAIhC,GAAIiC,IAAI5/C,GAAI6/C,KAAKzgL,GAAK,EAAC48K,KAAK8D,IAAIzD,IAAI0D,IAAIxD,IAAIyD,IAAItD,IAAIuD,GAAI/D,GAAG,CAChK,SAASgE,IAAI9rM,EAAEyzB,EAAE,CAAC,GAAGA,GAAGzzB,EAAE,EAAG,OAAOA,EAAE,EAAO,GAAGyzB,GAAGzzB,EAAE,EAAG,OAAOA,EAAE,EAAO,MAAM0lC,EAAI,IAAImN,GAAI,mEAAmE,CAAC,CAAE,CAChK,SAASk5J,IAAI/rM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAc,OAAZA,EAAEQ,EAAE,EAAEypD,EAAEzpD,EAAE,EAASyzB,EAAE,GAAG,IAAK,GAAE,MAAO,CAACg2B,EAAE,EAAE5pD,EAAE,IAAK,GAAE,OAAOL,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,IAAK,GAAE,OAAOL,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,IAAK,GAAE,MAAO,CAAC4pD,EAAE,EAAE5pD,EAAE,QAAQ,MAAO,EAAE,CAAC,CAChK,SAASmsM,GAAIhsM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAyC,IAAvC3sC,GAAIvkG,EAAEyvB,EAAGuG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEk7G,EAAEl7G,EAAE,GAAG,EAAEA,EAAE,GAAE,CAAE,EAAMpqD,EAAE6jD,EAAGrjD,EAAE,GAAG4zB,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGp0B,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAE0tH,EAAEvtH,EAAE,EAAE,GAAGi0B,EAAEj0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEwsM,GAAIhsM,EAAE+sH,EAAEltH,EAAE8kK,CAAC,CAAE,CAChK,SAASsnC,IAAIjsM,EAAE,CAAC,IAAIyzB,EAAY,OAAVA,EAAE,IAAIsR,GAAO2xC,GAAI12E,GAAGkqH,EAAG,EAAGgiF,GAAG,EAAWhpJ,EAAG0lE,EAAI5oH,EAAEksM,EAAG,EAAE,EAAE,GAAE7mJ,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI0T,GAAG,EAAE,IAAIopB,IAAIrJ,CAAC,CAAC,EAAEqvD,EAAI9iF,EAAEksM,GAAIz4K,CAAC,EAASA,EAAC,CAChK,SAAS04K,GAAInsM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAEqmH,GAAG5yF,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG6iJ,KAAM0pD,KAAQpsM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAAS44K,GAAIrsM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAEssM,GAAG74K,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG6iJ,KAAM6pD,MAAQvsM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAAS+4K,GAAIxsM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAEyqH,GAAGh3F,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG6iJ,KAAM+pD,MAAQzsM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAASi5K,IAAI1sM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAE2sM,GAAGl5K,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG48G,KAAMmwF,KAAQ5sM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAASo5K,GAAI7sM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAE8sM,GAAGr5K,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG48G,KAAMswF,KAAQ/sM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAASu5K,IAAIhtM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,EAAEomM,GAAG3yK,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG48G,KAAMwwF,KAAQjtM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAChK,SAASy5K,KAAK,CAAC,KAAK,EAAE,IAAIrrL,IAAI,KAAK,EAAE,IAAI68K,GAAG,KAAK,EAAE,IAAIA,GAAG,KAAK,EAAE,IAAI35J,GAAI,KAAK,EAAE,IAAI25J,GAAG,KAAK,EAAE,IAAIA,GAAG,KAAK,EAAE,IAAI35J,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,EAAG,CAChK,SAASikJ,IAAIhpL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAmB,IAAjBQ,EAAE,IAAIA,EAAE,GAAGR,EAAEW,EAAE,EAAMR,EAAEK,EAAEL,EAAEH,EAAEG,IAAgB,GAAXiqD,EAAEijG,EAAI1sJ,EAAER,CAAC,EAAKi0B,GAAG,MAAM,GAAGg2B,GAAG,KAAM,OAAOjqD,UAAWu6D,EAAGtmC,CAAC,IAAIsmC,EAAGtQ,CAAC,GAAGvF,GAAGzwB,EAAEg2B,CAAC,EAAG,OAAOjqD,EAAG,MAAO,EAAE,CAChK,SAASyjH,IAAIjjH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAc,OAAZ5pD,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAMH,GAAoB4pD,EAAElU,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAGstM,EAAG,CAAC,EAAS9qH,GAAI+qH,GAAI3jJ,CAAC,EAAEgnD,GAAIzwG,EAAE84J,GAAIrlI,EAAE,GAAE,CAAE,CAAC,EAAEg2B,GAA1G,IAA4G,CAChK,SAAS4jJ,GAAIrtM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,EAAE,CAAC,GAAGA,GAAGzzB,EAAG,MAAO,GAAS,IAAJH,EAAE,EAAM4pD,EAAEvG,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAAGg2B,GAAGA,GAAGh2B,EAAEg2B,EAAEA,EAAE,GAAE,EAAG,CAAC,GAAG,EAAE5pD,EAAEizL,GAAK,OAAOua,GAAIrtM,EAAEypD,CAAC,EAAE,GAAGA,GAAGzpD,EAAG,MAAO,EAAK,CAAC,CAAC,MAAO,EAAK,CAChK,SAASstM,IAAIttM,EAAE,CAAO,OAANwyE,GAAG,EAAUxyE,EAAE,EAAE,GAAG,IAAK,GAAEutM,IAAIvtM,GAAG8+F,EAAG,EAAG+5C,GAAG,EAAG00D,IAAIvtM,EAAEiwI,EAAG,EAAE,MAAM,IAAK,GAAEu9D,IAAIxtM,GAAG8+F,IAAM+5C,GAAK,EAAC20D,IAAIxtM,EAAEiwI,EAAG,EAAE,MAAM,QAAQw9D,IAAIztM,GAAG8+F,EAAG,EAAG+5C,GAAG,EAAG40D,IAAIztM,EAAEiwI,EAAG,CAAE,CAAC,CACjK,SAASy9D,IAAI1tM,EAAE,CAAO,OAANwyE,GAAG,EAAUxyE,EAAE,EAAE,GAAG,IAAK,GAAE2tM,IAAI3tM,GAAG8+F,EAAG,EAAGsE,GAAG,EAAGuqG,IAAI3tM,EAAEijG,EAAG,EAAE,MAAM,IAAK,GAAEg4F,IAAIj7L,GAAG8+F,IAAMsE,GAAK,EAAC63F,IAAIj7L,EAAEijG,EAAG,EAAE,MAAM,QAAQ2qG,IAAI5tM,GAAG8+F,EAAG,EAAGsE,GAAG,EAAGwqG,IAAI5tM,EAAEijG,EAAG,CAAE,CAAC,CACjK,SAAS4qG,IAAI7tM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4zB,EAAEyvB,EAAG0lE,EAAI5oH,GAAG8qB,GAAG,EAAGgjL,MAAM,EAAE,EAAKr6K,GAAG5zB,EAAE4zB,EAAE,EAAE5zB,GAAG,EAAEijF,EAAI9iF,GAAGkiK,GAAK,EAACG,IAAK,IAAIkkB,EAAG,EAAEzjG,EAAI9iF,GAAGkiK,GAAG,EAAGG,IAAK,IAAI9qB,GAAI13I,CAAC,CAAC,GAAOijF,EAAI9iF,GAAGkiK,GAAG,EAAGG,IAAK,IAAI9qB,GAAI,CAAC,CAAC,CAAE,CACjK,SAASw2D,IAAI/tM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAQ,OAANA,EAAEG,EAAE,EAASyzB,EAAE,EAAC,CAAE,IAAK,GAAE,MAAO,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,IAAK,GAAE,OAAOA,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAE,IAAK,GAAE,OAAOG,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAE,IAAK,GAAE,MAAO,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAG,CAAC,MAAO,EAAC,CACjK,SAASguM,IAAIhuM,EAAEyzB,EAAE,CAAC,OAAOzzB,EAAE,GAAG,IAAK,GAAE,OAAOyzB,IAAIu9D,GAAG,EAAG2sD,IAAKrO,GAAIC,GAAI,IAAK,GAAE,OAAO97G,IAAIu9D,GAAG,EAAG2sD,IAAKrO,GAAIE,GAAI,IAAK,GAAE,OAAO/7G,IAAIu9D,GAAK,EAAC2sD,IAAKnO,GAAID,GAAI,QAAQ,OAAOC,EAAI,CAAC,CACjK,SAASy+D,GAAIjuM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoD,IAAlDqzE,GAAI7yE,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,GAAGR,EAAE0uM,IAAQzkJ,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEjqD,EAAEuD,EAAK,KAAK,IAAIvD,EAAEK,EAAE,CAAC,EAAEG,EAAE,EAAER,CAAC,CACjK,SAAS2uM,GAAInuM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,EAAUA,EAAE,GAAG,GAAGA,EAAE,GAAGyqH,GAAGh3F,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG6iJ,KAAM0rD,MAAQpuM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CACjK,SAAS46K,GAAIruM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,GAAWA,EAAE,GAAG,GAAGA,EAAE,GAAGyqH,GAAGh3F,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG6iJ,KAAM4rD,MAAQtuM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAClK,SAAS86K,IAAIvuM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,GAAWA,EAAE,GAAG,GAAGA,EAAE,GAAG0nM,GAAGj0K,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG48G,KAAM+xF,KAAQxuM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAClK,SAASg7K,IAAIzuM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,IAAI,IAAI,GAAWA,EAAE,GAAG,GAAGA,EAAE,GAAGsqH,GAAG72F,CAAC,GAASg2B,EAAE80I,GAAIr7I,EAAG4mG,IAAKjqJ,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGH,IAAG48G,KAAMiyF,KAAQ1uM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGA,EAAEypD,EAAE,EAAEA,EAAE,EAAEh2B,CAAC,EAAC,CAClK,SAASmjH,GAAI52I,EAAE,CAAC,IAAIyzB,EAAE,MAAI,EAAAzzB,EAAE,GAAG,IAASA,EAAE,GAAGA,EAAE,EAAE,GAAE,IAAIyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEyzB,CAAC,EAAE,GAAG,EAAEzzB,EAAE,GAAGyzB,GAAIzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAAC,GAASA,EAAE,CAAC,CACjK,SAAS2uM,GAAI3uM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAAA,EAAEyvD,EAAG9hE,EAAG22G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAAC4gD,GAAI5uM,GAAGynF,GAAK,EAACm0C,IAAKnoG,EAAE5zB,CAAC,EAAE+uM,GAAI5uM,EAAE67H,GAAIpoG,EAAE5zB,CAAC,EAAE+uM,GAAI5uM,EAAE87H,GAAIroG,EAAE5zB,CAAC,CAAC,CAAC,EAAKG,EAAE,IAAGypD,EAAE,CAAC,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,GAASA,CAAC,CAClK,SAASolJ,IAAI7uM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,GAAXA,EAAEkhM,IAAI1gM,EAAEyzB,CAAC,EAAKj0B,EAAE,EAAE,QAAQ,EAAsC,IAA5BwoE,GAAIxoE,EAAE,IAAI4Q,GAAG,EAAEvQ,EAAEL,EAAE,EAAE,OAAWiqD,EAAE,EAAEA,EAAE5pD,EAAE4pD,IAAKk3I,GAAI3gM,GAAG68D,GAAIpT,EAAEjqD,EAAE,EAAE,MAAM,EAAE0jD,EAAG1jD,EAAE,EAAEiqD,CAAC,EAAE,GAAG,GAAGqlJ,IAAI9uM,EAAER,EAAEiqD,CAAC,CAAC,CAAE,CAClK,SAASslJ,IAAI/uM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIA,EAAE0jD,EAAGgwB,GAAGlzE,EAAE,GAAGwtF,GAAG,EAAG8vD,GAAG,EAAG,EAAE,EAAE,GAAI,EAAC99I,EAAE,GAAI,GAAoB,IAAjBiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAMK,EAAEmxG,GAAGvnD,EAAE,CAAC,EAAE,GAAE,EAAG5pD,EAAE,MAAO4zB,EAAEyvB,EAAGrjD,EAAE,KAAK,EAAE,EAAE64G,GAAI14G,EAAEypD,EAAEh2B,GAAGm6D,GAAG,EAAG8wC,IAAK,CAAC,CAAG,CAClK,SAASgoE,IAAI1mM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,IAAI2qF,GAAK,EAAC2+D,KAAM,IAAIzpJ,EAAE,IAAIgxG,GAAGphC,GAAGk3G,GAAI3mL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK,CAAC8mG,GAAIlzE,CAAC,GAAGzzB,EAAE,GAAGgvM,GAAIv7K,EAAEzzB,CAAC,EAAE,EAAG,MAAO,GAAO,MAAO,EAAK,CAClK,SAASivM,IAAIjvM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,IAAI2qF,GAAK,EAAC2+D,KAAM,IAAIzpJ,EAAE,IAAIgxG,GAAGphC,GAAGk3G,GAAI3mL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK,CAAC8mG,GAAIlzE,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAG,MAAO,GAAO,MAAO,EAAK,CACnK,SAASy7K,IAAIlvM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA+B,IAA7BusH,GAAIn4F,EAAE,oBAAoB,CAAC,EAAMp0B,EAAEi6J,GAAIt5J,EAAE,EAAE,CAAC,EAAEX,EAAE,GAAGA,EAAE,EAAE,GAAoB,IAAhBG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,EAAE,EAAMoqD,EAAE6vG,GAAI95J,EAAE,EAAE,CAAC,EAAEiqD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAErE,GAAIvlD,EAAE,CAAC,CAAG,CAClK,SAASsvM,IAAInvM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGt5F,EAA6B,IAA1Bj0B,EAAEi0B,EAAE,EAAE,OAAO5zB,EAAE,IAAIixG,GAAItxG,CAAC,EAAMutH,GAAGltH,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGisD,GAAG,EAAGC,IAAK,IAAIijB,GAAInvE,CAAC,EAAEktH,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAEtjE,EAAE+iF,GAAI/4G,EAAEp0B,EAAE,CAAC,EAAIoqD,GAAG2lJ,IAAIpvM,EAAEypD,CAAC,CAAG,CAClK,SAASkzD,KAAK,CAAC/wD,KAAM,IAAI5rD,EAAEyzB,EAAqD,IAAnD47K,KAAK/yF,GAAG,EAAGC,GAAG,EAAG+yF,IAAI/yF,EAAG,EAAEuqF,GAAIvqF,EAAG,EAAEl3E,KAAKo3E,GAAK,EAACikE,IAASjtJ,EAAE,IAAIyE,EAAI2zB,GAAG,EAAEp4B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASzzB,EAAEkjD,EAAGyhF,EAAIlxG,CAAC,EAAE,GAAG,EAAEkmI,GAAI35J,EAAE0gL,GAAI,IAAI,EAAE,MAAO,EAAI,CAClK,SAAS9uB,GAAG5xJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAsB,OAApBhlK,EAAEI,EAAE,GAAG,GAAG4kK,EAAEnxI,EAAE,GAAG,GAAM7zB,GAAGglK,EAAUA,EAAEhlK,GAAEJ,EAAEQ,EAAE,EAAE2kK,EAAElxI,EAAE,EAAKj0B,GAAGmlK,EAAUnlK,EAAEmlK,GAAEl7G,EAAEzpD,EAAE,EAAE+sH,EAAEt5F,EAAE,EAAKg2B,GAAGsjE,EAAUtjE,EAAEsjE,GAAEltH,EAAEG,EAAE,EAAEX,EAAEo0B,EAAE,EAAS5zB,EAAER,IAAC,CACnK,SAASqrB,IAAK,CAACA,GAAIhmB,EAAI6qM,KAAKloH,GAAG,EAAGm3E,IAAK87B,IAAI,IAAIz8H,GAAI2xI,IAAID,GAAG,EAAEE,KAAKxoH,KAAMsrC,IAAK2nE,IAAI,IAAIr8H,GAAI6xI,IAAID,GAAG,EAAEE,KAAK9oH,GAAG,EAAGqrC,IAAKkoE,IAAI,IAAIv8H,GAAI+xI,IAAID,GAAG,EAAEnV,IAAI,IAAI38H,GAAIgyI,KAAKz/H,GAAG,EAAG,IAAM,CACnK,SAASo/B,GAAIxvG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEh2B,EAAE5zB,EAAK0rE,EAAGvrE,EAAE,EAAE,GAAG,GAAGR,EAAEkxI,GAAI1wI,CAAC,EAAKR,EAAE,EAAE,EAAGA,EAAE,EAAE,IAAIQ,EAAE,EAAE,GAAGypD,EAAEyqG,KAAUl0J,EAAE,EAAE,GAAGypD,EAAEyqG,GAAIl0J,EAAE,EAAE,GAAGypD,EAAEyqG,KAAa3oF,EAAGvrE,EAAE,EAAE,EAAE,IAAGA,EAAE,EAAE,GAAGypD,EAAEzpD,EAAE,EAAE,GAAG,EAAEypD,EAAE,CACnK,SAASqmJ,IAAI9vM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAW,IAATnlK,EAAEQ,EAAEH,EAAE,CAAC,EAAM8kK,EAAE,IAAIzsI,EAAIzE,EAAE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEtlK,EAAE0tH,EAAE,EAAO1tH,GAAGA,EAAE,GAAGQ,IAAG4pD,EAAEsjE,EAAE,EAAEltH,EAAE,CAAC,EAAEL,EAAEiqD,CAAC,EAAE1mD,EAAK,KAAK,IAAIvD,EAAEiqD,CAAC,EAAEpqD,EAAE,EAAE,CAAC,EAAG,CACnK,SAAS0wM,IAAI/vM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAc,IAAZtjE,EAAE,EAAEjqD,EAAE,EAAEK,EAAE,EAAMktH,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEs3E,GAAIhlM,CAAC,EAAEoqD,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEpqD,EAAE,CAAC,EAAEG,GAAGH,EAAE,GAAGQ,EAAE,EAAEG,EAAE,EAAE,GAAG,EAAEH,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAE,EAAEj0B,CAAC,CACnK,SAASwwM,IAAGhwM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAQ,GAANA,EAAEzpD,EAAE,EAAKqkD,IAAGrkD,EAAE,EAAEypD,EAAE,MAAM,EAAE,CAA8E,IAA7E5pD,EAAE4pD,EAAE,OAAO,EAAEzpD,EAAE,EAAEikE,EAAG06H,GAAGpnB,GAAI,IAAI13K,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAEikE,EAAG06H,GAAGpnB,GAAI,IAAI13K,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,EAAEG,EAAE,EAAE,EAAMyzB,EAAEzzB,EAAE,EAAEyzB,EAAEA,EAAEA,EAAE,EAAGw8K,GAAGjwM,EAAEyzB,EAAEA,CAAC,EAAE,EAAEzzB,EAAE,CAAC,CAAC,CACpK,SAASkwM,IAAIlwM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAInlK,EAAE,EAAEA,EAAEi0B,EAAE,EAAEj0B,IAAe,IAAVH,EAAEG,EAAEi0B,EAAE,EAAE5zB,EAAMktH,EAAE,EAAEA,EAAEt5F,EAAE,EAAEs5F,IAAK43C,EAAE53C,EAAEt5F,EAAE,EAAEg2B,EAAE6oH,GAAI7+I,EAAEj0B,EAAEutH,CAAC,EAAEy0E,IAAIxhM,EAAEX,EAAEslK,CAAC,GAAG6/B,IAAIxkM,EAAEX,EAAEslK,CAAC,EAAE88B,IAAIhuK,EAAEj0B,EAAEutH,CAAC,IAAIq0E,IAAIphM,EAAEX,EAAEslK,CAAC,GAAG8/B,IAAIzkM,EAAEX,EAAEslK,CAAC,EAAI,CACpK,SAASwrC,IAAInwM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAEh2B,EAAE,EAAE,EAAKg2B,EAAE,IAAIkhC,KAAM2+D,KAAMxmE,EAAI9iF,GAAGkqH,EAAK,EAACkmF,IAAKltJ,EAAG0lE,EAAIn/D,EAAE2mJ,EAAG,EAAE,EAAE,CAAC,EAAEttH,EAAI9iF,EAAEqwM,GAAIntJ,EAAG0lE,EAAIn/D,EAAE4mJ,EAAG,EAAE,EAAE,CAAC,IAAOvtH,EAAI9iF,GAAGkqH,EAAG,EAAGkmF,IAAK38K,EAAE,CAAC,EAAEqvD,EAAI9iF,EAAEqwM,GAAIxwM,EAAE,CAAC,EAAE,CACpK,SAASywM,GAAItwM,EAAEyzB,EAAE5zB,EAAE,CAACuzG,GAAG,EAAG,IAAI3pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,OAAAmtH,EAAEt5F,EAAE,EAAEp0B,EAAEQ,EAAE,EAAE4pD,EAAE1mD,EAAK,KAAK,IAAI/C,EAAE,CAAC,EAAER,EAAEuD,EAAK,KAAK,IAAI/C,EAAE,CAAC,EAAE2kK,EAAE,EAAE/kK,EAAE,EAAE6pD,EAAEsjE,IAAI43C,EAAE53C,EAAEtjE,GAAGjqD,EAAEH,IAAIO,EAAEP,EAAEG,GAAGwtE,GAAIhtE,EAAE+C,EAAK,KAAK,IAAI4hK,EAAE/kK,CAAC,CAAC,EAASI,CAAC,CACpK,SAASo8C,KAAK,CAAC9rB,KAAM,IAAImD,EAAE5zB,EAAE,GAAG,CAAiC,GAAhCA,EAAEqjD,EAAGqtJ,IAAK3lJ,KAAMC,IAAK2lJ,EAAG,EAAE,IAAI,EAAK3wM,EAAG,OAAOA,CAAE,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAGyzB,EAAEzzB,EAAE2wG,IAAK5pC,KAAMtzC,QAAS,OAAMiS,EAAI1lC,CAAC,CAAC,CAAC,OAAO,IAAIuhB,GAAG,CACpK,SAASs7B,KAAK,CAACswG,MAAM,IAAI15H,EAAE5zB,EAAE,GAAG,CAAiC,GAAhCA,EAAEqjD,EAAGqtJ,IAAK3lJ,KAAMC,IAAKs1D,EAAG,EAAE,IAAI,EAAKtgH,EAAG,OAAOA,CAAE,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAGyzB,EAAEzzB,EAAE2wG,IAAK5pC,KAAMtzC,QAAS,OAAMiS,EAAI1lC,CAAC,CAAC,CAAC,OAAO,IAAI0mB,GAAG,CACpK,SAASg2B,KAAK,CAACpsB,KAAM,IAAImD,EAAE5zB,EAAE,GAAG,CAAiC,GAAhCA,EAAEqjD,EAAGqtJ,IAAK3lJ,KAAMC,IAAKy1D,EAAG,EAAE,IAAI,EAAKzgH,EAAG,OAAOA,CAAE,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAGyzB,EAAEzzB,EAAE2wG,IAAK5pC,KAAMtzC,QAAS,OAAMiS,EAAI1lC,CAAC,CAAC,CAAC,OAAO,IAAI2jB,GAAG,CACpK,SAAS8sL,IAAIzwM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,OAAAA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAER,EAAEi0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAWjqD,GAAGi0B,IAAIA,EAAG5zB,EAAE85J,GAAI35J,EAAE0wM,GAAI1wM,EAAEyzB,CAAC,EAAE5zB,CAAC,EAAIA,EAAE85J,GAAI35J,EAAEA,EAAE,EAAEH,CAAC,GAAWA,CAAC,CACpK,SAAS8wM,KAAI,CAACttJ,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAM,KAAK,EAAE0wG,GAAI,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAM,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAEA,EAAG,CACrK,SAAS68C,IAAI5wM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqE,GAAnEiqD,EAAEzpD,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIypD,GAAGzpD,EAAE,EAAE,EAAE,GAAGR,EAAEi0B,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIj0B,GAAGi0B,EAAE,EAAE,EAAE,GAAG5zB,EAAE++D,GAAInV,EAAEjqD,CAAC,EAAKK,GAAG,EAAE,CAAC,GAAG,CAACG,EAAE,GAAGyzB,EAAE,EAAG,MAAO,GAAQ,GAAG,CAACA,EAAE,GAAGzzB,EAAE,EAAG,MAAO,EAAE,CAAC,OAAOH,CAAC,CACrK,SAASgxM,IAAI7wM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqE,GAAnEiqD,EAAEzpD,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIypD,GAAGzpD,EAAE,EAAE,EAAE,GAAGR,EAAEi0B,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIj0B,GAAGi0B,EAAE,EAAE,EAAE,GAAG5zB,EAAE++D,GAAInV,EAAEjqD,CAAC,EAAKK,GAAG,EAAE,CAAC,GAAG,CAACG,EAAE,GAAGyzB,EAAE,EAAG,MAAO,GAAQ,GAAG,CAACA,EAAE,GAAGzzB,EAAE,EAAG,MAAO,EAAE,CAAC,OAAOH,CAAC,CACrK,SAASixM,IAAI9wM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAqE,GAAnEiqD,EAAEzpD,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIypD,GAAGzpD,EAAE,EAAE,EAAE,GAAGR,EAAEi0B,EAAE,EAAE,EAAE,EAAEA,EAAE,IAAIj0B,GAAGi0B,EAAE,EAAE,EAAE,GAAG5zB,EAAE++D,GAAInV,EAAEjqD,CAAC,EAAKK,GAAG,EAAE,CAAC,GAAG,CAACG,EAAE,GAAGyzB,EAAE,EAAG,MAAO,GAAQ,GAAG,CAACA,EAAE,GAAGzzB,EAAE,EAAG,MAAO,EAAE,CAAC,OAAOH,CAAC,CACrK,SAAS+oE,IAAK,CAACA,GAAIlkE,EAAIqsM,IAAInhG,GAAIlH,GAAIA,GAAIA,GAAI,IAAItgD,IAAK0hC,GAAG,EAAG0uD,KAAM/8C,GAAG,EAAGu1G,MAAMx4D,GAAIy4D,GAAG,EAAEt4E,GAAIu4E,GAAG,EAAEv4E,GAAIw4E,GAAG,EAAEC,IAAI1oG,GAAIA,GAAI,IAAItgD,GAAIowF,GAAI64D,GAAG,EAAE74D,GAAI84D,GAAG,EAAEC,IAAI3hG,GAAI,IAAIxnD,GAAIuwE,GAAI64E,GAAG,CAAC,CACrK,SAASC,IAAIzxM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoC,IAAlCo0B,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGoC,GAAG,EAAG,EAAE,EAAEjtH,EAAEW,EAAE,EAAMypD,EAAEh2B,EAAE,GAAI,EAAC,GAAE,EAAGg2B,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEjqD,EAAEK,EAAE,EAAEL,EAAE,GAAGH,EAAE,EAAEG,EAAE,GAAGH,EAAE,EAAEQ,EAAE,EAAEk/C,IAAIl/C,CAAC,EAAEm/C,IAAIn/C,CAAC,EAAEijF,EAAI9iF,EAAEssH,GAAI,IAAI,CAAC,CACrK,SAASm3E,IAAIzjM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAc,OAAZA,EAAEQ,EAAE,EAAEypD,EAAEjqD,EAAE,EAASi0B,EAAE,GAAG,IAAK,GAAE,MAAO,CAACg2B,EAAE,EAAE5pD,EAAE,IAAK,GAAE,OAAOL,EAAE,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,IAAK,GAAE,OAAOL,EAAE,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,IAAK,GAAE,MAAO,CAAC4pD,EAAE,EAAE5pD,EAAE,QAAQ,MAAO,EAAG,CAAC,CACrK,SAAS6xM,IAAI1xM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAY,GAAVoqD,EAAE,EAAEjqD,EAAEmyM,GAAO3xM,EAAE,EAAG,IAAIyzB,EAAE,EAAEA,EAAE,IAAIA,IAAK5zB,EAAE4zB,EAAE,oBAAqBm+K,GAAI5xM,EAAEA,EAAE,EAAE,EAAE,EAAE6xM,GAAIhyM,CAAC,EAAER,EAAEW,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAKX,EAAEG,IAAGiqD,EAAE5pD,EAAEL,EAAEH,GAAIuyM,GAAI5xM,EAAEA,EAAE,EAAE,EAAE,EAAE6xM,GAAIpoJ,CAAC,CAAC,CACrK,SAASqoJ,IAAI9xM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA8B,IAA5BA,EAAE,IAAI0lC,GAAItR,EAAE,EAAE,KAAKA,EAAE,EAAE,KAASg2B,EAAE,IAAIvxB,EAAIzE,EAAE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEH,EAAE,CAAC,EAAE,EAAE,EAAEA,EAAE,EAAE4zG,GAAI5zG,EAAE,CAAC,EAAE25D,GAAIn6D,EAAEQ,EAAE,EAAEL,CAAC,EAAEQ,EAAE,EAAEX,CAAC,CACrK,SAASoyL,IAAIzxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA+B,IAA7BJ,EAAEi0B,EAAEzzB,EAAE,EAAEX,EAAEG,EAAEQ,EAAE,EAAE,EAAE,OAAO+sH,EAAE,EAAMntH,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAE6pD,EAAEzpD,EAAE,EAAE2kK,EAAE,EAAE9kK,EAAEi8K,IAAInX,EAAEA,EAAE,EAAE53C,EAAE1tH,EAAEslK,EAAE,CAAC,EAAEk9B,IAAIl9B,EAAEtlK,EAAEoqD,CAAC,EAAE,EAAEsjE,CAAE,CACtK,SAAS1F,IAAIrnH,EAAE,CAAC,IAAIyzB,EAAW,GAATzzB,EAAE,EAAE,GAAI,EAAIA,EAAE,GAAG,GAAG,CAAoB,GAAnB,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAKA,EAAE,EAAEyzB,EAAE,EAAG,OAAO,EAAEzzB,EAAE,CAAC,CAAC,KAAKA,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,EAAEA,EAAE,EAAgB,GAAbyzB,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAOyzB,GAAGA,EAAE,GAAG,EAAE,CAACzzB,EAAE,EAAE,EAAE,MAAM,CAAEA,EAAE,EAAE,EAAE,CACrK,SAAS+xM,IAAI/xM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA+D,IAA7DA,EAAEi0B,EAAE,EAAE,OAAO5zB,EAAEmyM,IAAIhyM,EAAER,GAAG,EAAE,IAAIq9D,GAAI,EAAEppC,EAAE,EAAE,MAAM,EAAE8hB,GAAG9hB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAMg2B,EAAE,EAAEA,EAAEjqD,GAAKK,EAAE,EAAE4pD,EAAG5pD,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,IAAIg9D,GAAIpT,EAAEh2B,EAAE,EAAE,MAAM,EAAE8hB,GAAG9hB,EAAE,EAAEg2B,CAAC,CAAC,EAAG,EAAC,OAAO5pD,CAAC,CACrK,SAASoyM,IAAIjyM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,IAAIA,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEzpD,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAEwuG,GAAIruG,EAAE,CAAC,EAAEA,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAEqzC,EAAIlzC,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE,CAAE,CACtK,SAASqyM,IAAIlyM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJA,EAAE,EAAMoqD,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEpqD,GAAG0D,EAAK,KAAK,IAAIupG,GAAIzsG,CAAC,EAAEwsG,GAAIxsG,CAAC,EAAE4zB,EAAE,CAAC,EAAE,OAAAj0B,EAAEuD,EAAK,KAAK,KAAK1D,GAAGW,EAAE,EAAE,OAAO,EAAE,EAASR,CAAC,CACtK,SAAS2yM,IAAInyM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAA1tH,EAAE+yM,IAAIpyM,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAEsjE,EAAE9P,GAAIj9G,EAAEX,CAAC,EAAEk2L,GAAIv1L,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAE2iG,GAAIpsJ,EAAE,CAAC,EAAEqqE,GAAK,EAACrC,GAAI3oE,EAAE,IAAI2/B,IAAIh/B,CAAC,CAAC,EAAER,EAAEy9G,GAAIj9G,EAAEX,CAAC,EAAEk2L,GAAIv1L,EAAEH,EAAE4zB,EAAEg2B,CAAC,EAAE2iG,GAAIpsJ,EAAE,CAAC,EAAS,IAAI22D,GAAI42E,EAAIxgB,CAAC,EAAEwgB,EAAI/tI,CAAC,CAAC,CAAC,CACtK,SAAS6yM,IAAIryM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAuE,IAArEosH,GAAI/rH,EAAE,6BAA6B,CAAC,EAAEG,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGw4E,GAAG,EAAG,GAAG,EAAMljM,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAE8yM,IAAItyM,EAAEypD,CAAC,EAAEoiE,GAAIhsH,CAAC,CAAC,CACtK,SAAS0yM,IAAIvyM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+rH,GAAIn4F,EAAE,oBAAoB,CAAC,EAAEA,EAAE,GAAKzzB,GAAGomI,GAAI3yG,EAAE02G,GAAInqI,CAAC,GAAGs/F,GAAK,EAACo0C,GAAK,EAAC7zI,EAAE6qL,IAAIxnI,EAAGulE,GAAIzoH,GAAGsuB,GAAG,EAAGq7K,GAAG,EAAG,GAAG,CAAC,EAAE9pM,EAAE,GAAGG,CAAC,EAAEyzB,EAAE,GAAKzzB,GAAGomI,GAAI3yG,EAAE02G,GAAInqI,CAAC,GAAGs/F,KAAMo0C,IAAK,CACtK,SAASniG,IAAIvxC,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAqB,IAAnB2jE,GAAInjE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,CAAC,EAAML,EAAE,IAAI28D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAI83G,GAAG9lL,EAAE,CAAC,GAAGA,EAAE,EAAG,EAACR,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAKiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,GAAG,EAAE+iE,GAAI9Y,EAAEA,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,CAAC,EAAEmjE,GAAIhjE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,CAAC,CAAC,CACtK,SAAS2yM,GAAIxyM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAO5pD,GAAG,IAAK,GAAE,MAAO,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG0uL,GAAI1uL,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAE,IAAK,GAAE,MAAO,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG0uL,GAAI1uL,EAAE,EAAEyzB,EAAEg2B,CAAC,CAAE,CAAC,OAAOgpJ,GAAIzyM,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACtK,SAASipJ,GAAI1yM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAO5pD,GAAG,IAAK,GAAE,MAAO,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG0tK,GAAI1tK,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAE,IAAK,GAAE,MAAO,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG0tK,GAAI1tK,EAAE,EAAEyzB,EAAEg2B,CAAC,CAAE,CAAC,OAAOgkH,GAAIztK,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,CACtK,SAASukH,IAAIhuK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG9kK,EAA6B,IAA1BR,EAAEQ,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAIzxG,CAAC,EAAMslK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAG,EAAGC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAEnlK,EAAEgtI,GAAI3sI,EAAEktH,EAAE,CAAC,EAAIvtH,GAAGmzM,IAAI3yM,EAAER,EAAEi0B,CAAC,CAAG,CACtK,SAASitI,GAAI1gK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA2B,OAAzB3kK,EAAE,GAAE,EAAGX,EAAEo0B,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAKzzB,EAAE,EAAE,IAAG+sH,GAAG1tH,EAAE69E,IAAKl9E,EAAE,EAAE,OAAOR,EAAE4vL,GAAIpvL,EAAE+sH,EAAE1tH,EAAEo0B,CAAC,EAAKj0B,IAAGmlK,EAAEnlK,EAAE,GAAGK,CAAC,EAAS8kK,IAAGl7G,EAAEzpD,EAAE,GAAGX,EAAEo0B,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,GAAGypD,CAAC,EAAS,KAAI,CACtK,SAASmpJ,GAAI5yM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAOyhL,GAAI9gL,EAAEyzB,CAAC,EAAE,KAAM,CAAA,IAAK,GAAE,IAAK,GAAE,CAAU,IAAT5zB,EAAEgzM,GAAIp/K,CAAC,EAAMj0B,EAAE,EAAEH,EAAEQ,EAAE,EAAEL,EAAEH,EAAE,EAAEG,EAAqB,GAAlBiqD,EAAEvG,EAAGwpG,EAAI7sJ,EAAEL,CAAC,EAAE,EAAE,EAAK+/G,GAAI0vC,GAAIjvJ,EAAEypD,CAAC,CAAC,GAAG,EAAG,OAAOA,EAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CACtK,SAASqpJ,IAAG9yM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGglD,IAAGrkD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAwD,IAArDypD,EAAEwa,EAAGqzG,IAAGC,GAAI,IAAIv3K,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEypD,EAAEjqD,EAAEiqD,EAAE,OAAO,EAAM5pD,EAAEG,EAAE,EAAEH,GAAGG,EAAEH,EAAEA,EAAE,GAAE,EAAIR,EAAE6jD,EAAGrjD,EAAE,GAAG,EAAE4zB,EAAEp0B,EAAE,EAAEG,EAAEH,EAAE,EAAEoqD,EAAEh2B,CAAC,EAAEg2B,EAAEh2B,CAAC,EAAEp0B,CAAG,CACvK,SAASimM,IAAItlM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJA,EAAE,EAAMG,EAAE0jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAEH,EAAE0D,EAAK,KAAK,IAAI1D,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAI,EAAC,CAAC,EAAE5pD,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE5zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAER,CAAC,CACvK,SAASqmM,IAAI1lM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAM,IAAJQ,EAAE,EAAMR,EAAE6jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,EAACp0B,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAEQ,EAAEkD,EAAK,KAAK,IAAIlD,EAAEL,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAI,EAAC,CAAC,EAAEiqD,EAAEvG,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAEg2B,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5pD,CAAC,CACvK,SAASkzM,IAAI/yM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGu0D,KAAM,EAAE,EAAEhrJ,EAAE2uC,GAAI4wI,GAAG,EAAEnzM,EAAE,IAAImwF,GAAG,EAAG81E,GAAG,GAAItlG,GAAI/sC,EAAEw/K,GAAG,EAAEpzM,EAAE,GAAGkmK,EAAG,GAAGvlG,GAAI/sC,EAAEy/K,GAAG,EAAErzM,EAAE,GAAGmmK,EAAG,GAAGxlG,GAAI/sC,EAAE0/K,GAAG,EAAEtzM,EAAE,GAAGomK,EAAG,GAAGzlG,GAAI/sC,EAAE2/K,GAAG,EAAS3/K,CAAC,CACvK,SAAS4/K,IAAIrzM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+rH,GAAIn4F,EAAE,yBAAyB,CAAC,EAAE5zB,EAAE,IAAIglC,EAAIw/B,GAAIrkE,EAAE,EAAE,IAAIwgC,IAAI3gC,CAAC,CAAC,EAAEozC,GAAImnC,GAAGwuC,EAAI5oH,GAAG0oK,GAAG,EAAGC,GAAG,CAAE,CAAC,EAAe3oK,EAAE,EAAeykD,GAAGzkD,EAAE,EAAEszM,IAAIzzM,CAAC,CAAC,EAAzBG,EAAE,EAAEszM,IAAIzzM,CAAC,EAAkBgsH,GAAIp4F,CAAC,CAAC,CACvK,SAAS8/K,GAAIvzM,EAAE,CAAC,GAAGA,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,4BAA4B,CAAC,EAAO,OAAO7yC,EAAEwzM,IAAI,OAAOn3I,GAAIm3I,IAAIxzM,CAAC,CAAC,EAAE+C,EAAK,KAAK,KAAK8uM,GAAI7xM,CAAC,GAAGs/K,IAAIt/K,EAAEA,CAAC,EAAEq/K,GAAI,kBAAkBr/K,CAAC,EAAE,CACvK,SAASygF,GAAIzgF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAGG,EAAE,GAAE,GAAIyzB,GAAG,MAAM,IAAI5zB,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAG,GAAGqkD,GAAGzwB,EAAEzzB,EAAE,EAAEH,CAAC,CAAC,EAAG,MAAO,OAAY,KAAIA,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAG,GAAGk6D,EAAG/5D,EAAE,EAAEH,CAAC,CAAC,IAAIk6D,EAAGtmC,CAAC,EAAG,MAAO,GAAO,MAAO,EAAK,CACvK,SAASggL,IAAGzzM,EAAEyzB,EAAE,CAAC,GAAGA,GAAG,MAAM,KAAMzzB,EAAE,EAAE,GAAI,GAAE,GAAGkjD,EAAGljD,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,KAAM,MAAO,OAAY,MAAMA,EAAE,EAAE,GAAI,GAAE,GAAGkkD,GAAGzwB,EAAEyvB,EAAGljD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE,GAAE,CAAE,EAAG,MAAO,GAAO,MAAO,EAAK,CACxK,SAAS0zM,IAAG1zM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAGi0B,IAAIzzB,EAAU,GAAaurE,EAAG93C,EAAE,GAAG,GAAGj0B,EAAE0jD,EAAGzvB,EAAE,IAAI,EAAS6/J,KAAI7pI,EAAEzpD,EAAE,EAAGypD,IAAGzpD,EAAE,EAAE,IAAI0xB,GAAG1xB,CAAC,KAAOH,EAAEL,EAAE,EAAGK,IAAGL,EAAE,EAAE,IAAIkyB,GAAGlyB,CAAC,GAAM,GAAa,EAAM,CACxK,SAASkyK,IAAG1xK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA4C,IAA1Ci0B,EAAE,KAAK5zB,EAAE,KAAKL,EAAEuD,EAAK,KAAK,IAAI/C,EAAE,OAAO,CAAC,EAAMypD,EAAEjqD,EAAE,EAAEiqD,GAAG,EAAEA,IAAK,GAAG44B,GAAIriF,EAAEypD,CAAC,EAAE,EAAEh2B,CAAC,GAAG4uD,GAAIriF,EAAEypD,CAAC,EAAE,EAAE5pD,CAAC,EAAE,CAACG,EAAE,QAAQypD,EAAE,GAAGzpD,EAAE,OAAO,EAAEypD,EAAE,CAAC,EAAE,KAAK,CAAE,OAAOzpD,CAAC,CACxK,SAAS2zM,GAAI3zM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAG8/D,GAAI3/D,CAAC,GAAG2/D,GAAIlsC,CAAC,IAAG5zB,EAAEG,EAAEyzB,EAAK42I,GAAIxqK,GAAGA,EAAEgyE,IAAYhyE,EAAE,EAAEkD,EAAK,KAAK,KAAKlD,CAAC,EAAEkD,EAAK,KAAK,MAAMlD,CAAC,EAAU8iG,GAAIgtF,GAAGhwH,GAAI3/D,CAAC,EAAE6iG,GAAI7iG,CAAC,EAAEA,EAAE2/D,GAAIlsC,CAAC,EAAEovE,GAAIpvE,CAAC,EAAEA,EAAE,EAAK,CAAC,CAAC,CACxK,SAASu7K,GAAIhvM,EAAEyzB,EAAE,CAAC,GAAGA,GAAGzzB,EAAE,EAAE,EAAG,OAAOA,EAAE,EAAE,EAAO,GAAGyzB,GAAGzzB,EAAE,EAAE,EAAG,OAAOA,EAAE,EAAE,EAAO,MAAM0lC,EAAI,IAAImN,GAAI,mEAAmE,CAAC,CAAE,CACxK,SAAS+gK,IAAI5zM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA8B,GAA5BA,EAAE0jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG2pF,IAAG,EAAG,EAAE,EAAKr0M,EAAE,CAAwB,IAAvBiqD,EAAE,IAAIrO,GAAI3nB,EAAEwqF,GAAIj+G,EAAE,EAAE,CAAC,EAAQyzB,GAAGj0B,GAAGK,EAAE4zB,EAAE,EAAEA,EAAEwqF,GAAIp+G,CAAC,EAAEutE,GAAIgT,GAAIA,GAAI32B,EAAE5pD,EAAE,CAAC,EAAE4zB,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,OAAOg2B,CAAC,CAAC,OAAOnC,GAAG,CACxK,SAASwsJ,IAAI9zM,EAAE,CAAC,IAAIyzB,EAAEA,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAAC6pF,GAAG,EAAG,GAAG,EAAE1uJ,GAAIksG,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI/gB,GAAG,EAAE,IAAIkqB,IAAI58B,CAAC,CAAC,EAAEqlD,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI9gB,GAAG,EAAE,IAAIkqB,IAAI78B,CAAC,CAAC,CAAC,CACxK,SAASg0M,GAAIh0M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoB,IAAlBG,EAAEi0B,EAAEozJ,GAAI7mL,CAAC,EAAE4mL,GAAI5mL,CAAC,EAAMypD,EAAE,IAAIonD,GAAGphC,GAAGjwE,EAAE,EAAE,GAAE,EAAG,IAAI8D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAA8B,GAA1B5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEpqD,EAAE2vM,GAAInvM,EAAEG,CAAC,EAAKX,EAAE,IAAIsrF,GAAG,EAAG2+D,KAAMjqJ,EAAE,GAAGW,EAAE,EAAG,OAAOX,EAAG,OAAO,IAAI,CACxK,SAAS40M,IAAIj0M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAK4zB,EAAE,IAAIk3D,KAAM0hC,MAAe5iE,EAAEh2B,EAAE,EAAE,EAAEzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEypD,CAAC,EAAEzpD,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEypD,CAAC,EAAE,CACxK,SAASyqJ,IAAIl0M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAE,IAAI64B,EAAIzE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEW,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE,GAAM,IAAIjqD,EAAE,IAAI04B,EAAIzE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAE20M,GAAIn0M,EAAEypD,EAAE5pD,CAAC,CAAE,CACzK,SAASu0M,GAAIp0M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEs/D,GAAIt1F,EAAE,EAAE5zB,EAAE,EAAEA,EAAE,CAAC,EAAEkpH,GAAIlpH,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,CAAC,EAAEj0B,EAAEupH,GAAIlpH,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,CAAC,EAAEs1F,GAAIt1F,EAAE,EAAE5zB,EAAE,EAAEA,EAAE,CAAC,EAAK4pD,GAAGjqD,EAAMiqD,EAAE,IAAGzpD,EAAE,GAAG,EAAEA,EAAE,GAAGypD,IAAQzpD,EAAE,GAAG,EAAEA,EAAE,GAAG+C,EAAK,KAAK,IAAI0mD,EAAEjqD,CAAC,EAAE,CACxK,SAASs8D,IAAI97D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAiH,GAA/GA,EAAE,GAAS2Q,GAAG3mC,CAAC,IAAGg2B,EAAE,GAAKiyD,GAAI17G,EAAE,IAAIgyC,GAAGuD,GAAG9hB,CAAC,CAAC,CAAC,GAAMg2B,GAAM8hB,EAAG93C,EAAE,GAAG,IAAGg2B,EAAE,GAAKiyD,GAAI17G,GAAGH,EAAEgtE,GAAI3pB,EAAGzvB,EAAE,GAAG,CAAC,EAAE,IAAIJ,GAAGxzB,CAAC,KAAQ,CAAC4pD,EAAG,MAAM/jB,EAAI,IAAI0M,GAAIiiK,GAAG,CAAC,CAAE,CACxK,SAASC,IAAIt0M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAAvtH,EAAE,IAAIm4H,GAAI33H,EAAE,EAAE,EAAE,IAAI+sH,EAAEt5F,EAAE,EAAE83C,EAAGwhD,EAAE,EAAE,EAAE7pE,EAAG6pE,EAAE,EAAE,GAAGtQ,GAAK,EAACmyE,MAAOvvL,EAAEQ,EAAE,EAAE0rE,EAAGlsE,EAAE,EAAE,EAAE6jD,EAAG7jD,EAAE,EAAE,GAAGo9G,GAAK,EAACmyE,KAAMjO,GAAI3gL,EAAEyzB,CAAC,EAAE,EAAK,EAAGg2B,EAAQA,EAAE,GAAGjqD,CAAC,EAAXiqD,EAAEjqD,EAAkBiqD,CAAC,CACxK,SAAS8qJ,GAAIv0M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAOqjD,EAAG0lE,EAAI3K,GAAIj+G,CAAC,GAAGstB,GAAG,EAAGknL,IAAG,EAAG,GAAG,EAAE,EAAC,CAAE,IAAK,GAAE,OAAA/gL,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAS,IAAIo1D,GAAI3hC,EAAE,EAAE5zB,EAAE,EAAE,EAAE4zB,EAAE,EAAE5zB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO,IAAIu4C,GAAIp4C,EAAE,CAAC,EAAE,QAAQ,OAAO,IAAK,CAAC,CACzK,SAASwvF,IAAK,CAACA,GAAI9qF,EAAI+hJ,GAAI,IAAI/0F,GAAI87F,GAAI,CAAC,EAAE9G,IAAI,IAAIh1F,GAAI,SAAS,CAAC,EAAEi1F,IAAI,IAAIj1F,GAAI,UAAU,CAAC,EAAEk1F,IAAI,IAAIl1F,GAAI,WAAW,CAAC,EAAEm1F,IAAI,IAAIn1F,GAAI,YAAY,CAAC,EAAEo1F,GAAI,IAAIp1F,GAAI,WAAW,CAAC,CAAC,CACzK,SAAS+iJ,IAAIz0M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA2B,GAAzBoqD,EAAEmV,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,CAAC,EAAK4pD,GAAG,EAAE,CAAiD,GAAhDjqD,EAAE0jD,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGC,GAAG,EAAG,EAAE,EAAE9qH,EAAE6jD,EAAG0lE,EAAI/oH,EAAEsqH,EAAG,EAAE,EAAE,EAAK3qH,EAAE,GAAGK,CAAC,EAAG,MAAO,GAAQ,GAAGR,EAAE,GAAGo0B,CAAC,EAAG,MAAO,EAAE,CAAC,OAAOg2B,CAAC,CACzK,SAASirJ,IAAI10M,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAI4c,IAAI,IAAK,GAAE,OAAO,IAAIC,IAAI,IAAK,GAAE,OAAO,IAAIF,IAAI,IAAK,GAAE,OAAO,KAAK,QAAQ,MAAM+oB,EAAI,IAAImN,GAAIy3I,IAAKtqL,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CACzK,SAAS20M,GAAI30M,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAG,CAAA,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGwsG,GAAIxsG,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE8/J,GAAI3/J,EAAEu1C,GAAG11C,CAAC,CAAC,EAAE,MAAO,CAAC61K,GAAI11K,EAAEyzB,EAAE5zB,CAAC,CAAC,CACzK,SAAS+0M,GAAI50M,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,GAAG,IAAK,GAAEmvC,GAAI5iE,EAAEkzC,EAAImnC,EAAGx6E,CAAC,CAAC,CAAC,EAAE,OAAO,IAAK,GAAE8iE,GAAI3iE,EAAEkzC,EAAImnC,EAAGx6E,CAAC,CAAC,CAAC,EAAE,OAAO,IAAK,GAAEijE,GAAI9iE,EAAEkzC,EAAImnC,EAAGx6E,CAAC,CAAC,CAAC,EAAE,OAAO,IAAK,GAAEkjE,GAAI/iE,EAAEkzC,EAAImnC,EAAGx6E,CAAC,CAAC,CAAC,EAAE,MAAO,CAAC80M,GAAI30M,EAAEyzB,EAAE5zB,CAAC,CAAC,CACzK,SAASg1M,GAAI70M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEA,GAAGoqD,EAAE,IAAI9b,GAAI8b,GAAGjqD,EAAEu9K,GAAI19K,EAAEo0B,EAAE,IAAI,EAAIj0B,GAAGA,EAAE,GAAE,EAAGu6H,GAAI16H,EAAEQ,CAAC,EAAEqmE,IAAK,CAAClmE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIqmH,GAAGxnM,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGX,CAAC,EAAE07J,GAAI17J,EAAE,CAAC,EAAEk8C,GAAIl8C,EAAE,CAAC,EAAEu9J,GAAIv9J,EAAE,EAAI,EAAEw9J,GAAIx9J,EAAE,EAAI,CAAC,CACzK,SAASkxM,GAAIvwM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAe,OAAbK,EAAE4sD,GAAIzsD,EAAE,EAAEyzB,CAAC,EAAK83C,EAAG1rE,EAAE,GAAG,GAAGL,EAAE0jD,EAAGrjD,EAAE,GAAG,EAAEL,EAAE,GAAI,GAAE,KAAuBA,EAAE,GAAE,GAAW+rE,EAAG1rE,EAAE,GAAG,GAAG4pD,EAAEvG,EAAGrjD,EAAE,IAAI,EAAEL,EAAEiqD,EAAE,EAASjqD,GAAc,IAAK,CACzK,SAASs1M,IAAG90M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,OAAAm2C,GAAG/hB,CAAC,EAAE+hB,GAAG31C,CAAC,EAAER,EAAE6jD,EAAG0hC,GAAG5kF,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEk7H,IAAG,CAAC,CAACtvJ,EAAE,mBAAmBo0B,EAAEzzB,EAAE,CAAC,EAAER,EAAE0jD,EAAG0hC,GAAG5kF,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE8uJ,IAAG,CAAC,CAACnvJ,EAAE,sBAAsBK,EAAEG,EAAE,CAAC,EAASsvK,IAAGtvK,EAAEX,EAAE,EAAEG,EAAE,EAAEiqD,CAAC,CAAC,CAC1K,SAAS4/C,IAAGrpG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAuE,GAArED,EAAErlK,EAAEH,CAAC,EAAEulK,EAAEvlK,GAAG0tH,EAAE,EAAE43C,EAAEC,EAAEn7G,EAAE,EAAEq7G,EAAEzhB,IAAGshB,EAAEE,CAAC,EAAEp7G,GAAG,IAAIyvD,EAAG9hE,EAAGp3C,EAAE+sH,EAAE1tH,CAAC,EAAEo0B,EAAEp0B,CAAC,EAAEQ,EAAER,CAAC,EAAEslK,EAAEG,CAAC,EAAK,CAACF,EAAO,IAAJ,EAAEvlK,EAAMO,EAAE,EAAEA,EAAEilK,EAAE,EAAEjlK,EAAGklK,EAAEllK,CAAC,EAAEypG,IAAGrpG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAG,OAAO+3C,CAAC,CAC1K,SAASiwC,GAAIthL,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAI,MAAMiS,EAAI,IAAImC,EAAG,EAAEpU,EAAE,KAAK,GAAG,CAACA,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAG,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAOzzB,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAS0lC,EAAI,IAAIsC,EAAG,EAAatC,EAAI1lC,CAAC,CAAC,CAAC,CAC1K,SAASymG,GAAIzmG,EAAEyzB,EAAE,CAAC,OAAAzzB,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAASzzB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEyzB,EAAE,EAAI,CAC3K,SAASuhL,IAAIh1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAW,IAATA,EAAE,GAAGiqD,EAAE,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,GAAjB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAK4zB,EAAE,IAAIu+D,GAAK,EAACytC,IAAK,CAACjgI,EAAEiqD,GAAG,EAAE,EAAEA,EAAE,EAAE,KAAK,MAAMA,GAAGzpD,EAAE,EAAE,OAAO,IAAIR,EAAEiqD,GAAGA,GAAG,CAAC,CAAC,OAAOjqD,CAAC,CAC3K,SAASy1M,IAAIj1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,IAARA,EAAE,EAAEi0B,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEqZ,GAAIjjE,EAAEG,EAAE,EAAER,CAAC,EAAEujE,GAAIljE,EAAEG,EAAE,CAAC,EAAER,GAAGK,EAAE,EAAEG,EAAE,EAAEyzB,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE5zB,EAAE,EAAEG,EAAE,CAAC,EAAEA,EAAE,EAAER,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAEzzB,EAAE,CAAC,CAC3K,SAASk1M,GAAIl1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEA,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEA,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEypH,GAAIlzK,CAAC,CAAC,CAC5K,SAASm1M,GAAIn1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEA,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEA,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAEupH,GAAIhzK,CAAC,CAAC,CAC5K,SAASo1M,IAAIp1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAY,IAAVA,EAAE2xG,GAAGhxG,EAAE,CAAC,EAAMH,GAAGi/F,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAGx5C,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAU,GAAPh2B,EAAE5zB,EAAE4pD,CAAC,EAAKh2B,GAAGmlH,IAAK,CAACv5I,EAAE,GAAGo0B,CAAC,EAAG,OAAOA,EAAG,OAAO,IAAI,CAC3K,SAAS4hL,GAAIr1M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAgE,OAA9DA,EAAEvG,EAAGkuB,GAAI2jG,GAAIpxD,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI7b,GAAG,CAAC,CAAC,EAAE,EAAE,EAAK6xC,IAAG5pD,EAAEqjD,EAAGo4B,GAAI7xB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAK5pD,GAAUqjD,EAAG0lE,EAAI/oH,GAAGqqH,IAAM67E,GAAK,EAAC,EAAE,EAAE,EAAUp0C,IAAI3xJ,EAAE,CAAC,CAAC,CAC3K,SAASs1M,IAAIt1M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkC,IAAzBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEw0C,GAAI7zC,EAAE,CAAC,EAAMypD,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIrnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAI8D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAE8rJ,IAAIv1M,EAAER,EAAEK,EAAE,EAAE,CAAC,CAAG,CAC3K,SAAS21M,IAAIx1M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAa,IAAXopB,GAAI7yE,EAAE,EAAEyzB,CAAC,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,GAAjB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAKyW,GAAIrgE,EAAE,EAAE4zB,EAAE,CAAC,GAAG,GAAG,CAACo/C,GAAIhzE,EAAE,EAAE4zB,CAAC,EAAEwhL,IAAIp1M,CAAC,EAAEA,EAAE,EAAE,EAAE,QAAQ,GAAGgzE,GAAI7yE,EAAE,EAAEH,CAAC,EAAE,KAAK,CAAE41M,IAAIz1M,CAAC,CAAC,CAC5K,SAASo9K,IAAIp9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAgB,IAAdA,EAAE/sH,EAAE,EAAER,EAAE,EAAEH,EAAE,EAAMoqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEunI,GAAInxL,EAAEG,EAAE,EAAE+sH,CAAC,EAAEw9B,GAAI1qJ,EAAE4zB,CAAC,EAAEp0B,EAAE0D,EAAK,KAAK,IAAI1D,EAAEQ,EAAE,CAAC,EAAEktH,GAAGltH,EAAE,EAAEG,EAAE,EAAER,EAAEutH,EAAE/sH,EAAE,EAAEX,EAAEW,EAAE,EAAER,CAAC,CAC5K,SAAS0sG,IAAIlsG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAW,OAATA,EAAE61M,GAAI11M,CAAC,EAAKywI,GAAG5wI,CAAC,EAAU,MAAU4zB,GAAG+hB,GAAG31C,CAAC,EAAEqjD,EAAG6nE,IAAG,IAAIla,GAAGphC,GAAG5vE,EAAE,EAAE,KAAK,IAAIyD,EAAE,CAAC,CAAC,EAAE,EAAE,GAAUqyM,GAAIzyJ,EAAGwpG,GAAK,CAACj5H,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAC3K,SAASmiL,GAAI51M,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,IAAGyzB,EAAEzzB,EAAE,GAAI,EAACyzB,EAAGzzB,EAAE,EAAE,IAAIq9G,GAAIr9G,EAAEA,EAAE,IAAI,EAAGA,EAAE,KAAMA,EAAE,EAAE,IAAIm9E,GAAIn9E,EAAE,IAAI,EAAGu/G,GAAI0vC,IAAK83C,KAAMC,IAAKhnM,CAAC,CAAC,GAAG,EAAGA,EAAE,EAAE,IAAI22I,IAAI32I,CAAC,EAAIA,EAAE,EAAE,IAAIo9E,GAAIp9E,EAAE,IAAI,GAAUA,EAAE,CAAC,CAC3K,SAAS61M,IAAI71M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAKC,EAAE,GAAG4zB,CAAC,IAAGj0B,GAAGutH,EAAEt5F,EAAGs5F,EAAO7pE,EAAGuG,EAAE,EAAE,EAAE,GAAGsjE,CAAC,EAAlB,MAAwBvtH,IAAGI,EAAEC,EAAE,GAAG4zB,CAAC,EAAEkxI,EAAElxI,EAAE,EAAKkxI,EAAE,GAAGA,GAAG,IAAItlK,EAAE6jD,EAAGtjD,EAAE,EAAE,EAAEJ,EAAE,GAAG+yL,IAAIvyL,EAAEX,CAAC,CAAC,GAAOG,EAAE,GAAG4qI,GAAIpqI,EAAEkjD,EAAGtjD,EAAE,EAAE,CAAC,CAAC,GAAI,CAC3K,SAASk2M,IAAIriL,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAACwhD,MAAM,IAAI3hD,EAAE4hD,GAAsC,SAAS8rE,GAAG,CAAC,QAAQ/sH,EAAE,EAAEA,EAAEX,EAAE,OAAOW,IAAKX,EAAEW,CAAC,EAAG,CAAC,CACxH,GAAGyzB,EAAG,GAAG,CAACsiL,IAAIhpF,CAAC,EAAC,CAAE,OAAO/sH,EAAE,CAACyzB,EAAE5zB,EAAEG,CAAC,CAAC,MAAO+1M,IAAIhpF,CAAC,EAAC,CAAG,CAClD,SAASipF,IAAIh2M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAE,IAAIqsH,GAAK,IAAIj/I,GAAI72B,EAAE,CAAC,EAAG,CAAC,EAAEypD,EAAE,GAAI5pD,EAAE05J,GAAI9vG,CAAC,EAAEh2B,EAAEyvB,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAER,EAAE6jD,EAAGA,EAAGrjD,EAAE,GAAI,EAAC,EAAE,EAAE,EAAE,EAAE,EAAEL,EAAE0jD,EAAGA,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAEugF,GAAItjB,GAAIrpC,EAAE,CAAC,EAAE2sD,GAAI3W,GAAIpqE,EAAE,CAAC,EAAEG,CAAC,CAAC,CAAE,CAC5K,SAASy2M,IAAIj2M,EAAE,CAAC,OAAOkjD,EAAG0lE,EAAI5oH,EAAE,GAAGstB,KAAM4oL,IAAK,EAAC,GAAG,EAAE,EAAG,CAAA,IAAK,GAAE7wJ,GAAIozD,GAAI84C,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIgW,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,MAAM,IAAK,GAAEigM,IAAIn2M,CAAC,EAAE,MAAM,IAAK,GAAEo2M,IAAIp2M,CAAC,CAAE,CAAC,CAC5K,SAASq2M,IAAIr2M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEmiE,GAAI/rH,EAAE,6BAA6B,CAAC,EAAEA,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,GAAK,EAACo0C,GAAK,EAACjqF,EAAEvG,EAAGulE,GAAIh1F,GAAG4lD,KAAMC,KAAM,EAAE,EAAEg9H,IAAIt2M,EAAEypD,CAAC,EAAE5pD,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,KAAMo0C,IAAK,CAC5K,SAASr4C,IAAK,CAACA,GAAI32F,EAAI+/I,GAAI,IAAInvF,GAAI,QAAQ,CAAC,EAAEovF,GAAI,IAAIpvF,GAAI,WAAW,CAAC,EAAEqvF,GAAI,IAAIrvF,GAAI,WAAW,CAAC,EAAEsvF,GAAI,IAAItvF,GAAI,SAAS,CAAC,EAAEuvF,GAAI,IAAIvvF,GAAI,WAAW,CAAC,EAAEwvF,GAAI,IAAIxvF,GAAI,UAAU,CAAC,CAAC,CAC5K,SAASihJ,GAAIv2M,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcyrL,GAAIzrL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAIk7G,GAAIzrL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,eAAe2qB,GAAI3qB,GAAGzzB,EAAE,GAAG,MAAM,CAAC,EAAEyzB,EAAE,GAAG,gBAAgB2qB,GAAI3qB,GAAGzzB,EAAE,GAAG,MAAM,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CAC5K,SAAS+iL,IAAIx2M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAG1iG,GAAIjiE,EAAE,CAAC,IAAGR,EAAEi0B,EAAE,GAAI,EAACkxI,EAAElxI,EAAE,GAAE,EAAGp0B,EAAEQ,EAAE,GAAI,EAACktH,EAAED,GAAI9sH,EAAE,EAAER,EAAEmlK,EAAEtlK,EAAEG,EAAE,GAAI,EAACy1I,GAAIj1I,EAAER,EAAEH,EAAEksE,EAAG/rE,EAAE,EAAE,IAAI0jD,EAAG1jD,EAAE,EAAE,EAAE,GAAGo6E,KAAM,CAAC,EAAE,GAAG,EAAI,EAAEnwB,EAAEA,EAAE,GAAGsjE,CAAC,EAAGtjE,EAAEsjE,GAAUtjE,CAAC,CAC5K,SAASgtJ,IAAGz2M,EAAE,CAAC,IAAIyzB,EAAKzzB,EAAE,GAAG,OAAMyzB,EAAEsmC,EAAG/5D,EAAE,CAAC,IAAI+5D,EAAGplB,GAAE,EAAE,KAAK30C,EAAE,EAAEA,EAAE,EAAEyzB,GAAG,KAAKw9C,GAAIq/B,IAAG78E,CAAC,EAAE09C,IAAGs2C,IAAGh0F,CAAC,CAAC,EAAE2mC,GAAG3mC,CAAC,EAAEijL,GAAI16J,GAAIwtE,GAAG/1F,CAAC,CAAC,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,MAAMswG,IAAG78E,CAAC,EAAEsrD,IAAG0oC,IAAGh0F,CAAC,CAAC,EAAEA,EAAE,IAAIzzB,EAAE,EAAE,IAAIA,EAAE,EAAE,KAAKA,EAAE,EAAE,CAC7K,SAASg3L,GAAIh3L,EAAEyzB,EAAE,CAAC,KAAK,EAAEzzB,EAAKy6D,GAAIogE,GAAIpnG,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,KAAK,EAAEylF,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAClnB,GAAIx5E,CAAC,CAAC,CAAC,IAAO,KAAK,EAAE,EAAE,KAAK,EAAEylF,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAClnB,GAAIx5E,CAAC,EAAEw5E,GAAIuE,GAAI/9E,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAC7K,SAASmjB,KAAK,CAAC,SAASnjB,GAAG,CAAC,GAAG,CAAC,OAAQ,IAAI,MAAK,QAAO,EAAG,KAAM,EAAC,IAAI,MAAS,CAAC,MAAO,EAAK,CAAC,CAC7F,OAAG,OAAO,MAAMwjF,IAAK,IAAI,UAAU,SAASxjF,EAAG,EAAS,IAAgBkjL,IAAK,CAAC,CAC9E,SAASC,IAAI52M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAuB,IAArBA,EAAE,IAAIosI,GAAIzrI,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAQR,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAC,CAAwD,GAAvDoqD,EAAEvW,GAAKg/B,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEg7E,EAAGh7E,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,CAAC,EAAC,EAAGG,EAAEiqD,EAAEh2B,EAAKj0B,EAAEq3M,GAAK,OAAOh3M,EAAOL,EAAE,OAAS,EAAEK,CAAC,CAAC,OAAOA,CAAC,CAC7K,SAASi3M,GAAI92M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,GAAGzzB,EAAE,GAAGH,EAAE,KAAOG,EAAE,IAAIH,EAAEmzH,GAAIhzH,EAAE,EAAEA,EAAE,GAAGH,CAAC,GAAK4zB,IAAI5zB,EAAE47L,GAAIhoK,EAAEzzB,EAAE,GAAGH,CAAC,GAAGA,EAAEq/K,IAAIl/K,EAAEyzB,EAAE5zB,CAAC,EAAIA,GAAGA,EAAE,GAAE,GAASG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC7K,SAASsjL,IAAI/2M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,GAAGzzB,EAAE,GAAGH,EAAE,KAAOG,EAAE,IAAIH,EAAEmzH,GAAIhzH,EAAE,EAAEA,EAAE,GAAGH,CAAC,GAAK4zB,IAAI5zB,EAAE47L,GAAIhoK,EAAEzzB,EAAE,GAAGH,CAAC,GAAGA,EAAEs/K,IAAIn/K,EAAEyzB,EAAE5zB,CAAC,EAAIA,GAAGA,EAAE,GAAE,GAASG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC7K,SAASujL,IAAIh3M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAGzpD,GAAG,KAAK,OAAO,KAAgB,GAAXH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAKH,EAAE,KAAK,MAAO,GAAa,IAAV4pD,EAAE,IAAIzT,GAAQviB,EAAE5zB,EAAE,GAAI,EAAC4zB,EAAE,MAAO4nC,GAAI5R,GAAGw+E,GAAG,EAAG1yF,GAAG9hB,EAAE,IAAI,EAAC,EAAGg2B,EAAE,GAAG,IAAI,OAAO8U,GAAI9U,EAAEA,EAAE,EAAE,OAAO,CAAC,CAAC,CAC7K,SAASwtJ,IAAIj3M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAGzpD,GAAG,KAAK,OAAO,KAAgB,GAAXH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAKH,EAAE,KAAK,MAAO,GAAa,IAAV4pD,EAAE,IAAIzT,GAAQviB,EAAE5zB,EAAE,GAAI,EAAC4zB,EAAE,MAAO4nC,GAAI5R,GAAGw+E,GAAG,EAAG1yF,GAAG9hB,EAAE,IAAI,EAAC,EAAGg2B,EAAE,GAAG,IAAI,OAAO8U,GAAI9U,EAAEA,EAAE,EAAE,OAAO,CAAC,CAAC,CAC7K,SAASytJ,IAAIl3M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAsC,OAApCiqD,EAAEzpD,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEj0B,EAAEQ,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAK4pD,EAAE,GAAG,MAAMjqD,EAAE,GAAG,KAAaqyG,GAAIpoD,EAAE,EAAEjqD,EAAE,CAAC,EAAUiqD,EAAE,GAAG,KAAa,GAAWjqD,EAAE,GAAG,KAAa,EAAS,CAAC,CAC9K,SAAS23M,IAAIn3M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAGlxI,EAA6B,IAA1Bp0B,EAAEo0B,EAAE,EAAE,OAAO5zB,EAAE,IAAIixG,GAAIzxG,CAAC,EAAMslK,GAAG9kK,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGisD,GAAG,EAAGC,IAAK,IAAIijB,GAAInvE,CAAC,EAAE8kK,EAAE,MAAO53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEnlK,EAAEgtI,GAAI/4G,EAAEs5F,EAAE,CAAC,EAAEtjE,EAAE,IAAI5nB,IAAI7hC,CAAC,EAAE0jH,IAAIj6D,EAAE,EAAEjqD,CAAC,CAAG,CAC9K,SAAS43M,IAAIp3M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAGlxI,EAA6B,IAA1Bp0B,EAAEo0B,EAAE,EAAE,OAAO5zB,EAAE,IAAIixG,GAAIzxG,CAAC,EAAMslK,GAAG9kK,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGisD,GAAG,EAAGC,IAAK,IAAIijB,GAAInvE,CAAC,EAAE8kK,EAAE,MAAO53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEnlK,EAAEgtI,GAAI/4G,EAAEs5F,EAAE,CAAC,EAAEtjE,EAAE,IAAIroB,IAAIphC,CAAC,EAAEujH,IAAI95D,EAAE,EAAEjqD,CAAC,CAAG,CAC9K,SAAS63M,IAAI5jL,EAAE,CAAC,IAAI5zB,EAAE,GAAG4zB,GAAG,MAAMA,EAAE,OAAO,GAAGykF,GAAIzkF,EAAEA,EAAE,OAAO,CAAC,GAAG,GAAI,GAAG,CAAC,OAAA5zB,EAAE49K,IAAIj/G,GAAI/qC,EAAE,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAS5zB,EAAE,GAAG,IAAI,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,EAAE,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAE,MAAO,EAAK,CAC9K,SAASykF,IAAIzkF,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAoqD,EAAEh2B,EAAE,GAAE,EAAGp0B,EAAEo0B,EAAE,KAAKj0B,EAAEiqD,EAAE,GAAI,EAACqjE,GAAI9sH,EAAE,EAAEypD,EAAE,KAAKpqD,EAAE41I,GAAIj1I,EAAEypD,EAAEpqD,EAAEksE,EAAG9hB,EAAE,EAAE,IAAIvG,EAAGuG,EAAE,EAAE,EAAE,GAAGmwB,KAAM,CAAC,EAAE,EAAI,EAAEkzC,GAAI9sH,EAAE,EAAEypD,EAAEA,EAAE,GAAI,EAACpqD,EAAE,GAAG,EAAI,EAAEQ,EAAEA,EAAE,GAAGL,CAAC,EAAGK,EAAEL,EAAUK,CAAC,CAC9K,SAAS2gD,KAAK,CAAC,IAAIxgD,EAAEyzB,EAAE5zB,EAAM,IAAJ4zB,EAAE,EAAMzzB,EAAE,EAAEA,EAAE,EAAWA,IAAI,CAA8C,GAA7CH,EAAEy3M,IAAKt1F,GAAIhiH,EAAE,CAAU,EAAE,IAAI,WAAWA,CAAC,EAAG,EAAIH,GAAG,EAAE,MAAM6lC,EAAI,IAAI0O,GAAI,mBAAmB,IAAI,OAAOp0C,CAAC,CAAC,CAAC,EAAEyzB,GAAG5zB,CAAC,CAAC,OAAO4zB,CAAC,CAC9K,SAAS8jL,IAAIv3M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAuC,OAArCoqD,EAAEw0D,GAAIxqF,CAAC,EAAEj0B,EAAEimL,GAAIh8H,CAAC,EAAEpqD,EAAE,IAAIm4M,GAAIr9J,GAAI96C,EAAEo0B,CAAC,EAAS5zB,EAAE,EAAC,CAAE,IAAK,GAAE6mC,GAAIrnC,EAAE0kL,GAAIqG,GAAI5qL,CAAC,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEknC,GAAIrnC,EAAE+qL,GAAI5qL,CAAC,CAAC,CAAE,CAAC,OAAAsjF,EAAIzjF,GAAGiuB,GAAG,EAAGmqL,IAAKp9H,EAAGuuC,EAAI5oH,EAAEy3M,EAAG,CAAC,CAAC,EAASp4M,CAAC,CAC/K,SAAS+tL,GAAIptL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAEyvB,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGm3G,GAAI5mL,EAAE,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,CAAC,EAAE,EAAE,EAAEzD,EAAEqjD,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGo3G,GAAI7mL,EAAE,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,CAAC,EAAE,EAAE,EAAS2vC,GAAImnC,GAAGwuC,EAAIn1F,GAAGy2F,IAAM09D,GAAK,CAAA,CAAC,GAAG30I,GAAImnC,GAAGwuC,EAAI/oH,EAAE+nL,EAAG,CAAC,CAAC,CAAC,CAC/K,SAASp6F,IAAK,CAACA,GAAI9oF,EAAIw4I,GAAI,IAAInsF,GAAI,WAAW,CAAC,EAAEosF,GAAI,IAAIpsF,GAAI,mBAAmB,CAAC,EAAEqsF,GAAI,IAAIrsF,GAAI,qBAAqB,CAAC,EAAEssF,GAAI,IAAItsF,GAAI,cAAc,CAAC,EAAEusF,GAAI,IAAIvsF,GAAI,aAAa,CAAC,CAAC,CAC/K,SAAS4nD,GAAI34G,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE1tH,EAAE6jD,EAAGm0F,GAAI1zB,GAAIlwF,EAAE,GAAI,EAAC,IAAI3c,GAAG,EAAE4zI,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAAC+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAEzO,EAAE7pE,EAAGunH,GAAGzqK,EAAE,EAAEH,EAAE4pD,CAAC,EAAE,EAAE,EAAEjqD,GAAG,EAAEutH,EAAE,GAAG,EAAE1tH,CAAC,EAAE0tH,EAAE,GAAG1tH,CAAC,CAAC,CAC/K,SAASq4M,IAAI13M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAI1tH,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMoqD,EAAE,IAAIonD,GAAGphC,GAAGm3G,GAAIpnL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAI8D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEsjE,EAAEltH,EAAE,EAAE,EAAE,EAAEG,EAAE,EAAE+sH,CAAC,EAAE/sH,EAAE,EAAE+sH,CAAC,EAAE,CAAG,CAC/K,SAAS4qF,IAAI33M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAI1tH,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiD,IAAxCG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAE0tH,EAAE7pE,EAAGgwD,GAAIlzG,EAAE,EAAER,CAAC,EAAE,GAAG,EAAE,EAAMiqD,EAAE,IAAIxE,GAAIzlD,EAAE,CAAC,EAAEiqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGmzF,GAAI5sF,CAAC,EAAE,EAAE,EAAE6gG,GAAI9qJ,EAAEK,EAAEktH,CAAC,CAAG,CAChL,SAAS6qF,IAAI53M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEg4M,IAAI73M,EAAEyzB,CAAC,EAAE4xB,GAAIs+D,GAAI4tC,GAAIA,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI8Z,GAAG,EAAE,IAAIM,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIylB,IAAI9/B,CAAC,CAAC,CAAC,CAC/K,SAASyiL,GAAIziL,EAAEyzB,EAAE,CAAC,OAAIA,EAAwBzzB,EAAE,GAAGyzB,CAAC,EAAU,GAAUzzB,EAAE,EAA0FA,EAAE,EAAE,GAAGyzB,CAAC,EAA5F83C,EAAG93C,EAAE,GAAG,GAAGzzB,EAAE,EAAEkjD,EAAGzvB,EAAE,GAAG,EAAS,KAAUzzB,EAAE,EAAE,IAAIiiB,IAAWjiB,EAAE,EAAE,GAAGyzB,CAAC,GAArH,EAA+I,CAC/K,SAASqkL,IAAI93M,EAAE,CAAe,GAAdA,EAAEuuL,GAAIvuL,EAAE,EAAI,EAAKqiF,GAAI4wG,GAAIjzL,CAAC,GAAGqiF,GAAI,IAAIriF,CAAC,EAAG,OAAOowE,KAAME,GAAS,GAAG+R,GAAI6wG,GAAIlzL,CAAC,GAAGqiF,GAAI,IAAIriF,CAAC,EAAG,OAAOowE,GAAG,EAAGC,GAAI,MAAM3qC,EAAI,IAAIuO,GAAI,2BAA2Bj0C,EAAE,GAAG,CAAC,CAAC,CAC/K,SAAS+3M,GAAG/3M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIG,EAAEQ,EAAE,GAAI,EAAC,GAAI,EAACR,EAAE,GAAE,GAA8B,GAAzBiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEH,EAAEoqD,EAAE,GAAI,EAAIsQ,EAAGtmC,CAAC,IAAIsmC,EAAG16D,CAAC,GAAGo0B,GAAG,MAAMywB,GAAGzwB,EAAEp0B,CAAC,EAAG,OAAGQ,IAAG4pD,EAAE,IAAIuE,GAAIvE,EAAE,KAAKA,EAAE,GAAI,CAAA,EAAEjqD,EAAE,GAAE,GAAUiqD,EAAG,OAAO,IAAI,CAChL,SAASuuJ,IAAIh4M,EAAE,CAACy7E,GAAG,EAAG,IAAIhoD,EAAE5zB,EAAE4pD,EAAMzpD,EAAE,EAAE,IAAI0+F,GAAK,EAACi/D,GAAG,IAAWl0G,EAAEzpD,EAAE,EAAE,EAAEyzB,EAAE,IAAI+3F,GAAIxrH,EAAE,EAAE,CAAC,EAAEH,EAAE,IAAImsC,GAAInsC,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4pD,EAAE,EAAEA,EAAE,GAAGh2B,EAAE,EAAEA,EAAE,GAAG5zB,EAAE,EAAE4pD,EAAE,EAAEA,EAAE,GAAGh2B,EAAE,EAAEA,EAAE,GAAGzzB,EAAE,EAAE,GAAGH,CAAC,EAAC,CAChL,SAASo4M,IAAIj4M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAA2C,IAAzCA,EAAEhqH,EAAK,KAAK,IAAIlD,EAAEq4M,IAAIh1J,EAAGljD,EAAE,EAAE,EAAE,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,CAAC,EAAMpqD,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEG,GAAGi0B,IAAIs5F,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAEkrF,IAAIz4M,EAAEi0B,EAAEs5F,EAAEtjE,CAAC,CAAC,GAAG,OAAOsjE,CAAC,CAChL,SAASorF,GAAIn4M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAqD,IAAnDA,EAAEykE,EAAGopD,GAAG7iD,EAAI,IAAIxqE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAEypD,EAAE,IAAIgiF,GAAIzrI,EAAE,EAAE,CAAC,EAAQypD,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIh2B,GAAGy+C,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAG5pD,EAAE4pD,EAAE,EAAE,EAAEjqD,EAAEK,CAAC,EAAEypI,GAAI71G,EAAE,CAAC,EAAE,OAAOj0B,CAAC,CAChL,SAAS44M,GAAIp4M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAuC,IAArCmtH,EAAEh1E,IAAID,GAAI4zC,GAAIoxG,IAAIj9L,CAAC,CAAC,EAAE4pD,CAAC,EAAEsiJ,IAAI/rM,EAAEH,EAAEL,CAAC,CAAC,EAAMI,EAAEs/L,GAAIl/L,EAAEH,CAAC,EAAE,GAAI,EAACD,EAAE,GAAE,GAAK+kK,EAAEzhH,EAAGtjD,EAAE,GAAE,EAAG,EAAE,EAAK6zB,EAAEkxI,EAAE,CAAC,IAAGtlK,EAAEo0B,EAAEkxI,EAAE,CAAC,EAAE,EAAE/7H,EAAImkF,EAAE,EAAE,IAAIne,GAAIvvG,EAAEukL,GAAI72D,EAAE1tH,CAAC,CAAC,CAAC,GAAGisL,GAAIv+D,CAAC,CAAC,CAChL,SAASsrF,GAAIr4M,EAAEyzB,EAAE,CAAC,KAAK,EAAE,IAAIsR,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE/kC,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE,GAAG+0K,IAAI,KAAK,KAAK,EAAE,GAAG1pG,EAAG,EAAGsE,GAAG,EAAG,KAAK,EAAE,KAAK,EAAE,OAAO,GAAGolG,IAAI,KAAK,KAAK,EAAE,GAAG1pG,IAAMmE,IAAK,CAChL,SAASq1G,GAAIt4M,EAAE,CAACA,EAAE,OAAO,GAAGA,EAAE,CAAC,EAAE,OAAO,IAAI,KAAK,EAAEizC,GAAImnC,GAAGwuC,EAAI3K,GAAIj+G,EAAE,CAAC,EAAE,CAAC,CAAC,GAAGkqH,EAAK,EAACquF,IAAG,CAAE,CAAC,GAAG,KAAK,EAAEt0I,EAAGu0I,IAAGhuI,EAAI,KAAKxqE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAEikE,EAAGw0I,IAAGjuI,EAAI,KAAKxqE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAIu8K,GAAE,CAChL,SAASm8B,IAAI14M,EAAE,CAAC,OAAGA,EAAE,EAAE,QAAQ,EAAU,IAAU68D,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI2qF,KAAM2+D,IAAa,GAAYnR,GAAI1/B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,CAAC,EAAE,IAAIqZ,GAAG,EAAE,IAAIC,GAAG,CAAC,CAChL,SAASq/L,IAAI34M,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAA+rH,GAAI/rH,EAAE,cAAc,CAAC,EAAE0qI,GAAIvqI,EAAE,CAAC,EAAEm2G,GAAIn2G,EAAE,GAAGg2F,GAAK,EAACy7C,IAAKA,EAAG,EAAEt7B,GAAIn2G,EAAE,EAAE0xI,GAAIA,EAAG,EAAEv7B,GAAIn2G,EAAE,EAAE2xI,GAAIA,EAAG,EAAEx7B,GAAIn2G,EAAE,EAAEq5H,GAAIA,EAAG,EAAEr5H,EAAE,EAAE44M,GAAI54M,EAAE,EAAEyzB,CAAC,EAAEolL,IAAI74M,EAAEyzB,EAAEwzI,GAAIpnK,EAAE,CAAC,CAAC,EAAEgsH,GAAIhsH,CAAC,EAAS4zB,CAAC,CAChL,SAASqlL,IAAI94M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAqD,IAAnD+kK,EAAE56B,GAAIt2G,CAAC,EAAEp0B,EAAEo0B,EAAE,EAAE7zB,EAAE6zB,EAAE,EAAEs5F,EAAEhqH,EAAK,KAAK,KAAK1D,EAAEA,EAAEO,EAAEA,CAAC,EAAEJ,EAAE,EAAMiqD,EAAE,IAAIvxB,EAAIysI,CAAC,EAAEl7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,GAAGs5M,IAAI94M,EAAEH,CAAC,EAAE,OAAOkD,EAAK,KAAK,IAAIvD,EAAEutH,CAAC,CAAC,CAChL,SAAShvB,IAAK,CAACA,GAAIr5F,EAAIs9D,GAAI,IAAIjM,GAAIqmG,GAAI,CAAC,EAAEr6F,GAAI,IAAIhM,GAAI,OAAO,CAAC,EAAEysF,GAAI,IAAIzsF,GAAI,aAAa,CAAC,EAAEutB,GAAI,IAAIvtB,GAAI,cAAc,CAAC,EAAEwtB,GAAI,IAAIxtB,GAAI,cAAc,CAAC,EAAEytB,GAAI,IAAIztB,GAAI,YAAY,CAAC,CAAC,CAChL,SAASgjJ,IAAI/4M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAc,GAAZK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,GAA8D,IAA3DL,EAAE+1C,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAGm5M,EAAG,CAAC,EAAMvvJ,EAAE,EAAEA,GAAGs9I,GAAG,EAAGkS,KAAK,OAAO,EAAExvJ,EAAG,GAAG44B,GAAI42H,IAAIxvJ,CAAC,EAAEjqD,CAAC,EAAG,OAAOiqD,EAAI,MAAO,EAAC,CAChL,SAASyvJ,IAAIl5M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEw2F,GAAI5gJ,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACjL,SAAS85M,IAAIn5M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEw2F,GAAI5gJ,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACjL,SAAS+5M,IAAGp5M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAyB,IAAvBA,EAAE,IAAIiiH,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAE,GAAI,EAAC,GAAE,EAAGH,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAEogJ,GAAIx2F,EAAE4rF,IAAGr1I,EAAEyzB,EAAE,GAAI,CAAA,EAAE,IAAI4hH,IAAGr1I,EAAEyzB,EAAE,GAAE,CAAE,CAAC,EAAE,OAAQg2B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CAClL,SAAS4vJ,IAAIr5M,EAAE,CAAa,QAARyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAQ,CAAC8zC,GAAItzC,EAAE,CAAC,GAAGH,EAAEqjD,EAAGoyD,GAAIt1G,EAAE,CAAC,EAAE,EAAE,EAAEypD,EAAEvG,EAAGrjD,EAAE,EAAE,GAAG,EAAE4zB,EAAEyvB,EAAGrjD,EAAE,EAAE,GAAG,EAAEL,EAAE2oL,GAAI10J,EAAEg2B,CAAC,EAAKh2B,EAAE,GAAGg2B,GAAGkpB,GAAInzE,EAAE,EAAEi0B,CAAC,EAAEg2B,EAAE,EAAEjqD,EAAE,EAAEi0B,EAAE,IAAOk/C,GAAInzE,EAAE,EAAEi0B,CAAC,EAAEg2B,EAAE,EAAEjqD,EAAE,EAAEi0B,EAAE,GAAEmV,EAAI5oC,EAAE,EAAE,EAAEypD,CAAC,CAAE,CACjL,SAAS6vJ,GAAIt5M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAS,IAAPK,EAAE,KAASL,EAAE0jD,EAAGzvB,EAAE,GAAGzzB,CAAC,EAAE,EAAE,EAAE,GAAI,EAACR,EAAE,GAAE,GAAqB,GAAhBiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAK,CAACK,EAAGA,EAAE4pD,EAAE,EAAE,GAAGzpD,EAAEypD,EAAE,EAAE,EAAEA,EAAE,EAAE,WAAWA,EAAE,EAAE,GAAGzpD,EAAEypD,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI5pD,EAAG,MAAO,GAAQ,MAAO,EAAI,CACjL,SAAS05M,IAAIv5M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAmB,IAAjBltH,EAAE25M,IAAIx5M,EAAE,GAAMyzB,CAAC,EAAMj0B,EAAE,IAAI04B,EAAIr4B,CAAC,EAAEL,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEiqD,EAAE,GAAG,GAAGugB,GAAIvgB,EAAE,IAAI,EAAEwgB,GAAIxgB,EAAE,IAAI,IAAIpqD,EAAEoqD,EAAE,EAAEsjE,EAAEtjE,EAAE,EAAEugB,GAAIvgB,EAAEsjE,CAAC,EAAE9iD,GAAIxgB,EAAEpqD,CAAC,EAAa,CACjL,SAASo6M,IAAIz5M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAA4zB,EAAE,IAAI20B,GAAIoY,GAAI/sC,EAAEimL,GAAG,EAAE75M,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGu0D,GAAK,EAAC,EAAE,EAAE5+K,EAAE,IAAImwF,GAAG,EAAG+1E,GAAK,GAAEvlG,GAAI/sC,EAAEkmL,GAAG,EAAE95M,EAAE,GAAGmmK,EAAG,GAAGxlG,GAAI/sC,EAAEmmL,GAAG,EAAE/5M,EAAE,GAAGimK,EAAG,GAAGtlG,GAAI/sC,EAAEomL,GAAG,EAAEh6M,EAAE,GAAGomK,EAAG,GAAGzlG,GAAI/sC,EAAEqmL,GAAG,EAASrmL,CAAC,CACjL,SAASsmL,IAAI/5M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAS,IAAPw6M,IAAIh6M,CAAC,EAAMH,EAAE,IAAIgxG,GAAGphC,GAAGk3G,GAAI3mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE4pD,EAAEh2B,EAAE,EAAE,GAAGzzB,EAAER,EAAEiqD,EAAEh2B,EAAE,EAAEA,EAAE,EAAEg2B,EAAEqgB,GAAIr2C,EAAE,IAAI,EAAEo2C,GAAIp2C,EAAE,IAAI,EAAEqvD,EAAIrvD,GAAGy2F,EAAK,EAAC+vF,KAAKz6M,CAAC,EAAE06M,IAAIl6M,EAAER,EAAE,CAAC,CAAE,CAClL,SAAS26M,IAAIn6M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAA2B,OAAzBA,EAAEo0B,EAAE,EAAEj0B,EAAEK,EAAER,EAAE,CAAC,EAAEW,EAAE,EAAEX,EAAE,CAAC,CAAC,EAASA,EAAE,EAAC,CAAE,IAAK,GAAEG,GAAGiqD,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEj0B,EAAE,MAAM,IAAK,GAAEA,GAAGiqD,EAAEh2B,EAAE,EAAE,EAAEj0B,EAAE,MAAM,IAAK,GAAEA,GAAGiqD,EAAEh2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEj0B,EAAE,MAAM,IAAK,GAAEA,GAAGiqD,EAAEh2B,EAAE,EAAE,EAAEj0B,CAAE,CAAC,CAClL,SAAS46M,IAAIp6M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIs8D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAG,EAACH,EAAE,GAAGA,EAAE,EAAE,GAAE,GAA8B,GAAzB4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAE4pD,EAAEisJ,GAAIjiL,CAAC,EAAK,CAACirH,GAAG,IAAI7tC,GAAGphC,GAAGhmB,EAAE,EAAE,GAAE,EAAG,IAAInmD,EAAE,CAAC,CAAC,EAAG,OAAOmwB,EAAG,OAAO,IAAI,CAClL,SAAS8oB,KAAK,CAAC,IAAIv8C,EAAE,OAAGq6M,IAAWn3J,EAAG6nG,IAAKngG,GAAK,EAACC,IAAK2lJ,EAAG,EAAE,IAAI,GAAExwM,EAAEkjD,EAAGqoB,EAAGgwC,IAAK3wD,KAAMC,IAAK2lJ,EAAG,EAAE,GAAG,EAAEj1F,GAAI1wD,GAAI2lJ,EAAG,EAAE,IAAI8J,IAAI,GAAG,EAAED,IAAI,GAAKE,IAAIv6M,CAAC,EAAEw6M,IAAIx6M,CAAC,EAAE8mM,GAAI9mM,CAAC,EAAEupD,GAAIsB,GAAI2lJ,GAAIxwM,CAAC,EAASA,EAAC,CAClL,SAAS65G,GAAI75G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,GAAGQ,EAAE,GAAG,EAAE,OAAOH,EAA+B,GAA7BL,EAAE0jD,EAAGk4G,IAAIp7J,EAAEyzB,EAAE5zB,CAAC,EAAE,EAAE,EAAE4pD,EAAE5pD,EAAE,GAAE,EAAM,CAAC4pD,EAAE,MAAM,CAACzpD,EAAE,EAAE,GAAGypD,CAAC,EAAG,MAAM/jB,EAAI,IAAIgL,GAAG,0BAA0B+Y,EAAE,KAAK,GAAG,IAAIA,EAAE,KAAK,GAAG,CAAC,EAAE,OAAOjqD,CAAC,CAClL,SAASi7M,IAAGz6M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,IAAID,EAAE3kK,EAAE,EAAEJ,EAAE,EAAEglK,EAAED,EAAE,OAAO/kK,EAAEglK,EAAE,EAAEhlK,EAAU,IAAPmtH,EAAE43C,EAAE/kK,CAAC,EAAM6pD,EAAEsjE,EAAEvtH,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAU,GAAPK,EAAE4pD,EAAEjqD,CAAC,EAAKu6D,EAAGtmC,CAAC,IAAIsmC,EAAGl6D,CAAC,GAAG4zB,GAAG,MAAMywB,GAAGzwB,EAAE5zB,CAAC,EAAG,MAAO,GAAO,MAAO,EAAK,CACnL,SAAS66M,IAAI16M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAG8C,GAAIvsD,EAAE,CAAC,GAAG,GAAGH,EAAE8zM,GAAI3zM,EAAE26M,EAAG,EAAElxJ,EAAEimI,GAAI1vL,EAAE26M,EAAG,IAAOlnL,EAAEi+E,GAAI1xG,EAAE,CAAC,EAAEH,EAAE8zM,GAAIlgL,EAAE,GAAS,EAAEg2B,EAAEimI,GAAIj8J,EAAE,GAAS,EAAEg2B,EAAEshD,GAAIuG,GAAI7nD,EAAE,CAAC,EAAEoxE,GAAI76H,EAAE,CAAC,CAAC,GAAS6kI,GAAIvzB,GAAI7nD,EAAE,EAAE,EAAEoxE,GAAIh7H,EAAE43K,EAAG,CAAC,CAAC,CACnL,SAASmjC,IAAI56M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAqC,OAAnCiqD,GAAGyoB,GAAIz+C,EAAE,GAAG,CAAC,EAAEyvB,EAAG0gD,GAAInwE,EAAEA,EAAE,EAAE,CAAC,EAAE,CAAC,GAAU5zB,EAAE,GAAG,IAAK,GAAE4pD,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEzpD,EAAE,EAAE,MAAM,IAAK,GAAEypD,EAAE,EAAE,EAAE,MAAM,QAAQA,EAAE,EAAEzpD,EAAE,CAAE,CAAC,OAAAR,EAAE85J,GAAI7lI,EAAE,CAAC,EAAE6kF,GAAI94G,EAAEiqD,CAAC,EAASh2B,CAAC,CACnL,SAASonL,IAAI76M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA4D,OAA1DA,EAAEI,EAAE,EAAEX,EAAEo0B,EAAE,EAAEs5F,EAAE1tH,EAAE,EAAEslK,EAAE4xB,GAAIxpE,EAAEntH,EAAE,EAAEmtH,EAAE,CAAC,EAAEltH,CAAC,EAAEL,EAAE4gF,GAAI3W,GAAIpqE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAASA,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAEslK,EAAE,GAAGnlK,EAAE,EAAE,MAAM,IAAK,GAAE,IAAK,GAAEmlK,EAAE,GAAGnlK,EAAE,CAAE,CAACm8D,GAAIlS,EAAEk7G,EAAEl7G,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CACnL,SAASqxJ,IAAI96M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkD,IAAhDA,EAAE7sD,GAAIlgE,EAAE,EAAEyzB,EAAE,CAAC,EAAEp0B,EAAE,IAAIisC,GAAIjsC,EAAE,EAAEQ,EAAE4pD,EAAE,IAAIgiF,GAAIzrI,EAAE,EAAE+sH,CAAC,EAAQtjE,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIjqD,GAAG0yE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGjqD,EAAE,EAAEK,EAAE+oC,EAAIvpC,EAAE,EAAEG,CAAC,EAAE8lF,GAAI77B,CAAC,EAAE,OAAOpqD,CAAC,CACnL,SAAS07M,IAAI/6M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAa,IAAXJ,EAAE,KAAKH,EAAE,EAAMslK,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAEmtH,EAAE,EAAEA,EAAE,EAAK/sH,EAAE+sH,EAAE,EAAEA,EAAE,EAAEtjE,IAAIjqD,EAAQK,EAAE,EAAED,EAAEC,EAAE,EAAER,IAAIG,EAAEutH,GAArBvtH,EAAEutH,EAAsB1tH,EAAEG,EAAE,EAAEA,EAAE,GAAG,OAAQA,EAAIH,EAAEoqD,EAAJ,CAAK,CACnL,SAASuxJ,IAAIh7M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAa,IAAXP,EAAE,KAAKG,EAAE,EAAMmlK,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAEmtH,EAAE,EAAEA,EAAE,EAAK/sH,EAAE+sH,EAAE,EAAEA,EAAE,EAAEtjE,IAAIpqD,EAAQQ,EAAE,EAAED,EAAEC,EAAE,EAAEL,IAAIH,EAAE0tH,GAArB1tH,EAAE0tH,EAAsBvtH,EAAEH,EAAE,EAAEA,EAAE,GAAG,OAAQA,EAAIG,EAAEiqD,EAAJ,CAAK,CACnL,SAASwxJ,IAAGj7M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAyB,IAAvBh2B,EAAE,GAAMg2B,EAAEzpD,EAAE,EAAE,EAAE,OAAWH,EAAE,EAAEA,EAAE4pD,EAAE5pD,IAAQm1K,GAAG9xH,EAAGo4B,GAAIt7E,EAAE,EAAEH,CAAC,EAAE,GAAG,CAAC,EAAM,CAAC4zB,GAAG5zB,EAAE,EAAE4pD,GAAGurH,GAAG9xH,EAAGo4B,GAAIt7E,EAAE,EAAEH,EAAE,CAAC,EAAE,GAAG,CAAC,IAAG4zB,EAAE,GAAKyvB,EAAGo4B,GAAIt7E,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAE,EAAE,IAAW4zB,EAAE,EAAO,CACpL,SAAS2sH,IAAIpgJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAM,IAAJ1tH,EAAE,EAAM0tH,EAAE,EAAEA,EAAEvtH,EAAEutH,IAAK1tH,EAAE0rG,GAAI1rG,EAAE6mL,GAAIrrD,GAAIpnG,EAAEs5F,CAAC,EAAE0qD,EAAG,EAAE58C,GAAIpxE,EAAEsjE,CAAC,EAAE0qD,EAAG,CAAC,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,EAAE,KAAK0tH,EAAEltH,EAAEktH,IAAK1tH,EAAE0rG,GAAI1rG,EAAEw7H,GAAIpnG,EAAEs5F,CAAC,EAAE0qD,EAAG,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,CAAE,CACpL,SAAS67M,IAAIl7M,EAAEyzB,EAAE,CAACy/H,GAAK,EAAC,IAAIrzJ,EAAE4pD,EAAoB,IAAlBA,GAAGoa,GAAG,EAAGs3I,IAAKt7M,EAAEG,EAAOyzB,EAAE,EAAEA,IAAI,EAAIA,EAAE,IAAQg2B,EAAEupG,GAAIvpG,EAAE5pD,CAAC,GAAGA,EAAE,GAAG,EAAGA,EAAEmzJ,GAAInzJ,EAAEA,CAAC,EAAIA,EAAE,IAAIk1L,IAAIqmB,IAAIv7M,EAAE,EAAEA,EAAE,EAAEokE,EAAG4gD,GAAGsP,GAAI,GAAGt0H,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAG,OAAA4pD,EAAEupG,GAAIvpG,EAAE5pD,CAAC,EAAS4pD,CAAC,CACpL,SAAS+tF,IAAK,CAACA,GAAI9yI,EAAI,IAAI1E,EAAEyzB,EAAE5zB,EAAE4pD,EAAyE,IAAvE4xJ,IAAIp3I,EAAG8pF,GAAGC,GAAI,GAAG,GAAG,GAAG,CAAC,EAAEstD,IAAIr3I,EAAG8pF,GAAGC,GAAI,GAAG,GAAG,GAAG,CAAC,EAAEvkG,EAAE,iBAAqBh2B,EAAE,GAAGA,GAAG,EAAEA,IAAK6nL,IAAI7nL,CAAC,EAAEg2B,EAAEA,GAAG,GAAQ,IAAJ5pD,EAAE,EAAMG,EAAE,GAAGA,GAAG,EAAEA,IAAKq7M,IAAIr7M,CAAC,EAAEH,EAAEA,GAAG,EAAI,CACpL,SAAS07M,IAAIv7M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGozC,GAAImnC,GAAGquC,GAAIzoH,GAAGstB,GAAG,EAAGkuL,IAAK,CAAC,GAAG,IAAI37M,EAAE,IAAIgxG,GAAGphC,GAAGgsI,GAAIz7M,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK2oH,GAAI/0F,CAAC,GAAMwf,GAAImnC,GAAGquC,GAAIh1F,EAAEi1F,EAAG,CAAC,CAAC,EAAG,MAAO,GAAQ,MAAO,EAAK,CACpL,SAASgzF,IAAI17M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAKwpC,GAAIhpC,EAAE,EAAEyzB,CAAC,IAAGA,EAAE,EAAEzzB,EAAEypD,EAAEh2B,EAAE,EAAEysC,GAAIlgE,EAAE,EAAEypD,EAAE,CAAC,GAAG,IAAI7gB,EAAI5oC,EAAE,EAAEypD,CAAC,EAAEjqD,EAAEi0B,EAAE,EAAEysC,GAAIlgE,EAAE,EAAER,EAAE,CAAC,GAAG,IAAIopC,EAAI5oC,EAAE,EAAER,CAAC,EAAEK,EAAE4zB,EAAE,EAAE,EAAK5zB,EAAE,EAAE,QAAQ,IAAG,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIu4L,IAAIv4L,CAAC,GAAG2qK,IAAI3qK,EAAE,EAAEH,CAAC,GAAG,CACpL,SAAS87M,IAAI37M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAA8B,OAA5BQ,EAAEG,EAAE,EAAE,EAAEypD,EAAE5pD,EAAE,EAAEL,EAAEQ,EAAE,EAAE,EAAEX,EAAEG,EAAE,EAAKiqD,GAAGpqD,EAAUQ,EAAE,EAAEL,EAAE,EAAE,EAAE,EAAU05J,GAAIzvG,CAAC,GAAGpqD,EAAU,EAAUykL,GAAIr6H,CAAC,GAAGpqD,EAAU,GAAOo0B,EAAEzzB,EAAE,EAAS+tD,GAAIt6B,EAAE,EAAEylI,GAAIzvG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpL,SAAS2nC,IAAK,CAACA,GAAI1sF,EAAIuiJ,GAAI,IAAIj1F,GAAIgtI,IAAI,CAAC,EAAE93C,IAAI,IAAIl1F,GAAI,eAAe,CAAC,EAAEm1F,GAAI,IAAIn1F,GAAI,iBAAiB,CAAC,EAAEo1F,IAAI,IAAIp1F,GAAIytG,GAAI,CAAC,EAAEpY,IAAI,IAAIr1F,GAAI,gBAAgB,CAAC,EAAEs1F,GAAI,IAAIt1F,GAAI,YAAY,CAAC,CAAC,CACpL,SAAS4pJ,GAAI57M,EAAE,CAAC,IAAIyzB,EAAE,KAAK,EAAE,IAAIsR,GAAI,KAAK,EAAE/kC,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAE,IAAI0sG,IAAI1sG,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,EAAGA,EAAE,EAAiE,KAAK,EAAEA,EAAE,EAAvE,KAAK,GAAGyzB,EAAEyvB,EAAGxH,GAAI26G,EAAE,EAAE,CAAC,EAAE,IAAIrxE,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAgB,CACpL,SAASooL,GAAI77M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAEnlK,EAAEQ,EAAE+sH,EAAE0f,GAAIjtI,EAAE,eAAe,EAAE,CAACutH,IAAIA,EAAE0f,GAAIjtI,EAAEs8M,GAAG,GAAM/uF,IAAG43C,EAAE53C,EAAEtjE,EAAE,KAAOk7G,IAAIl7G,GAAGpqD,EAAE0iK,GAAG4C,EAAE1gG,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAIznB,GAAG4hH,EAAEtlK,CAAC,IAAOoqD,IAAG5pD,EAAE,IAAIw3D,IAAIstG,EAAElxI,CAAC,EAAEskH,GAAItuF,EAAE5pD,CAAC,GAAG,CACpL,SAAS81M,GAAI31M,EAAE,CAAC,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAOkjD,EAAGljD,EAAE,EAAE,EAAO,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO0kE,GAAIxhB,EAAGljD,EAAE,GAAG,CAAC,EAAO,MAA0C0lC,EAAtC1lC,EAA0C,IAAI+zC,GAAI,+BAA+B,EAApE,IAAIf,GAAIy7H,GAAG,CAA0D,CAAE,CACpL,SAASstC,IAAG/7M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAyE,OAArEh2B,GAAG,GAAG4uD,GAAIriF,EAAE,OAAOyzB,EAAE,CAAY,EAAE,KAAK,GAAgCA,GAAG,GAAG4uD,GAAIriF,EAAE,OAAOyzB,EAAE,CAAY,EAAE,KAAK,KAAG5zB,EAAE,CAAC,EAAE4zB,EAAE,GAASuoL,GAAGh8M,EAAEH,EAAE4pD,CAAC,CAAkB,CACrL,SAASq3B,IAAI9gF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkB,IAAhB1tH,EAAEW,EAAE,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAE,EAAMypD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAEK,EAAE,EAAEL,EAAE,EAAEH,EAAEW,EAAE,IAAI8+F,EAAG,EAAG+5C,IAAMr5I,EAAE,EAAEutH,EAAE/sH,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAIL,EAAE,EAAEutH,EAAG3sC,GAAI5gF,EAAEi0B,CAAC,EAAEp0B,GAAGQ,EAAE,EAAE,EAAEG,EAAE,CAAE,CACrL,SAAS4rH,GAAI5rH,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,2BAA2B,CAAC,EAAO,OAAG9yC,EAAE,GAAG,KAAa,IAAWA,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,IAAIA,EAAE,GAAGsjD,GAAK,EAACyyG,GAAItwE,GAAI,KAAK,IAAK,CAAA,EAAEwqF,EAAG,IAAW,GAAK,CACrL,SAASmZ,GAAIppL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAAA,EAAE,IAAI9zH,GAAGhxC,EAAEG,EAAE,GAAI,EAACR,EAAEK,GAAG,KAAKL,GAAG6lG,GAAIs/D,EAAEiuB,GAAI5yL,EAAE,GAAI,CAAA,EAAEypD,EAAEzpD,EAAE,GAAE,EAAGX,EAAEoqD,GAAG,KAAKpqD,GAAGgmG,GAAIs/D,EAAEiwB,GAAI50L,EAAE,GAAE,CAAE,EAAEyzB,EAAEzzB,EAAE,GAAI,EAAC+sH,EAAEt5F,GAAG,KAAKs5F,GAAG1nB,GAAIs/D,EAAE,cAAc3kK,EAAE,GAAE,CAAE,EAAS2kK,CAAC,CACrL,SAAS3qD,IAAIh6G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAA,EAAEW,EAAE,EAAEA,EAAE,EAAEyzB,EAAMzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOR,EAAE,IAAI40G,GAAIp0G,EAAE,EAAE,EAAEX,EAAEo0B,CAAC,EAAG5zB,EAAQA,EAAE,GAAGL,CAAC,EAAXK,EAAEL,GAAei0B,GAAgCg2B,EAAEh2B,EAAE,EAAEg2B,GAAGzpD,EAAE,IAAIH,EAAEG,EAAE,GAAGypD,EAAE5pD,CAAC,IAApDG,EAAE,IAAIH,EAAEG,EAAE,GAAG,KAAKH,CAAC,GAA2CA,CAAC,CACrL,SAASo8M,IAAIj8M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyC,IAAvC9kK,GAAG8kK,EAAElxI,EAAEgoK,GAAI92B,EAAE3kK,EAAE,EAAE,GAAGA,EAAE,EAAEH,CAAC,GAAGktH,EAAEzN,GAAIt/G,EAAE,CAAC,EAAMX,GAAGoqD,EAAE,IAAIqsH,GAAK,IAAIj/I,GAAIk2F,EAAE,CAAC,EAAG,CAAC,EAAE,IAAI5oF,GAAIslB,CAAC,GAAGpqD,EAAE,EAAE,GAAIG,EAAE0jD,EAAGq2G,GAAIl6J,EAAE,CAAC,EAAE,GAAI,EAAC,EAAE,EAAEQ,EAAE85J,GAAIn6J,EAAEkxM,GAAIlxM,EAAEQ,EAAE,CAAC,EAAEH,CAAC,EAAE,OAAOA,CAAC,CACrL,SAASq8M,IAAIl8M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyC,IAAvC9kK,GAAG8kK,EAAElxI,EAAEu/F,GAAI2xC,EAAE3kK,EAAE,EAAE,GAAGA,EAAE,EAAEH,CAAC,GAAGktH,EAAEzN,GAAIt/G,EAAE,CAAC,EAAMX,GAAGoqD,EAAE,IAAIqsH,GAAK,IAAIj/I,GAAIk2F,EAAE,CAAC,EAAG,CAAC,EAAE,IAAI5oF,GAAIslB,CAAC,GAAGpqD,EAAE,EAAE,GAAIG,EAAE0jD,EAAGq2G,GAAIl6J,EAAE,CAAC,EAAE,GAAI,EAAC,EAAE,EAAEQ,EAAE85J,GAAIn6J,EAAEkxM,GAAIlxM,EAAEQ,EAAE,CAAC,EAAEH,CAAC,EAAE,OAAOA,CAAC,CACrL,SAASoxL,IAAIjxL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,GAAGtjE,GAAG,EAAG2qF,GAAI3gH,EAAE,EAAEzzB,EAAEH,EAAEG,EAAE,OAAOH,CAAC,MAA8B,KAAvBktH,EAAE,GAAGtjE,EAAEzpD,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAMX,EAAEW,EAAE,OAAO,EAAEX,EAAEQ,EAAER,IAAKW,EAAEX,CAAC,GAAGo0B,EAAEp0B,EAAEQ,EAAE,CAAC,IAAIktH,EAAE/sH,EAAEX,EAAE,CAAC,EAAEo0B,EAAEp0B,EAAEQ,EAAE,CAAC,GAAG4pD,EAAG,IAAIjqD,EAAE,EAAEA,EAAEK,EAAEL,IAAKQ,EAAER,CAAC,EAAE,CAAE,CACtL,SAAS28M,IAAIn8M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAU,IAARo0B,EAAE,EAAE5zB,EAAE,EAAMR,EAAEW,EAAE,GAAE,EAAGX,EAAE,GAAI,GAAGoqD,EAAEvG,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEo0B,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEg2B,EAAE,EAAE,CAAC,EAAE5pD,EAAEkD,EAAK,KAAK,IAAIlD,EAAE4pD,EAAE,EAAE,CAAC,EAAE,IAAIjqD,EAAEQ,EAAE,GAAI,EAACR,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,GAAG,EAAEiqD,EAAE,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE,EAAE5pD,CAAE,CACtL,SAASu8M,IAAIp8M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAU,IAARQ,EAAE,EAAE4zB,EAAE,EAAMp0B,EAAEW,EAAE,GAAE,EAAGX,EAAE,GAAI,GAAGoqD,EAAEvG,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEQ,EAAEkD,EAAK,KAAK,IAAIlD,EAAE4pD,EAAE,EAAE,CAAC,EAAEh2B,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEg2B,EAAE,EAAE,CAAC,EAAE,IAAIjqD,EAAEQ,EAAE,GAAI,EAACR,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,GAAG,EAAEiqD,EAAE,EAAE,EAAE5pD,EAAE4pD,EAAE,EAAE,EAAEh2B,CAAE,CACtL,SAAS4oL,IAAIr8M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAyB,IAAvBA,EAAE,IAAIwlC,EAAIrlC,EAAE,EAAEiqD,EAAEh2B,EAAE,GAAE,EAASg2B,EAAE,GAAE,GAAG,CAA0B,IAAzB5pD,EAAE0tI,EAAIrqF,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAE,EAAEjqD,CAAC,EAAQK,EAAE,EAAEG,EAAE,GAAG,CAACmsG,IAAInsG,EAAEH,EAAE,CAAC,GAAGA,EAAE0tI,EAAI1tI,EAAE,EAAE,CAAC,EAAE,EAAEL,EAAE,GAAGK,EAAE,GAAGG,EAAE,EAAG,MAAMX,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEQ,CAAC,CAAC,OAAOR,CAAC,CACtL,SAAS0nK,GAAI/mK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAS,IAAPi0B,EAAE,KAASj0B,EAAE,IAAI04B,EAAIl4B,EAAE,GAAI,CAAA,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEK,EAAE,IAAIuhE,GAAI3X,EAAE,GAAI,EAAC,EAAEA,EAAE,GAAE,EAAG,EAAEA,EAAE,GAAE,EAAG,EAAEA,EAAE,GAAI,EAAC,CAAC,EAAGh2B,EAAQ6oL,GAAI7oL,EAAE5zB,CAAC,EAAZ4zB,EAAE5zB,EAAY,OAAC4zB,IAAIA,EAAE,IAAI0tC,IAAY1tC,CAAC,CACtL,SAASg/K,GAAIzyM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,OAAGQ,GAAG,GAAU,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAG0uL,GAAI1uL,EAAE,EAAEyzB,EAAEg2B,CAAC,IAASpqD,EAAE6jD,EAAG4mG,IAAKtqJ,EAAE0jD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGR,GAAEQ,EAAE,GAAI,GAAIH,CAAC,EAAE,EAAE,EAAER,EAAE,GAAE,EAAG,GAAGW,EAAEkwJ,GAAIlwJ,CAAC,EAAEH,EAAE45G,GAAIz5G,EAAE,GAAE,CAAE,EAAEyzB,EAAEg2B,CAAC,EAAC,CACtL,SAAS8yJ,GAAIv8M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyE,IAAvEl7G,EAAE5pD,EAAE,GAAE,EAAGG,EAAE,GAAGA,EAAE,EAAEypD,CAAC,EAAEk7G,EAAE3kK,EAAE,EAAEyzB,EAAEkxI,EAAE,GAAGvwB,GAAIp0I,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEyzB,EAAEg2B,EAAEk7G,CAAC,EAAE53C,EAAEltH,EAAE,GAAE,EAAGG,EAAE,GAAGypD,EAAMjqD,EAAE,EAAEA,EAAEiqD,EAAE,EAAEjqD,EAAGH,EAAE0tH,EAAE,GAAI,EAAC9/C,GAAIjtE,EAAEyzB,EAAEzzB,EAAE,GAAGyzB,EAAEp0B,CAAC,CAAC,EAAEW,EAAE,GAAGyzB,EAAEp0B,CAAC,EAAEW,EAAE,GAAI,EAAC,EAAEyzB,EAAE,OAAOg2B,GAAG,CAAC,CACtL,SAASszH,GAAI/8K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,OAAGh2B,GAAGzzB,EAAE,GAAKA,EAAE,IAAIH,EAAEmzH,GAAIhzH,EAAE,EAAEA,EAAE,IAAIH,CAAC,GAAK4zB,IAAI5zB,EAAE47L,GAAIhoK,EAAEzzB,EAAE,IAAIH,CAAC,GAAGA,EAAEm6G,IAAIh6G,EAAEyzB,EAAE5zB,CAAC,GAAWG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,KAAOypD,EAAE,IAAI2qD,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,EAAG5zB,EAAQA,EAAE,GAAG4pD,CAAC,EAAX5pD,EAAE4pD,GAAkB5pD,CAAC,CACtL,SAAS28M,GAAGx8M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,OAAAghC,IAAI5qF,EAAE8zG,KAAM,EAAE,kDAAkD,EAAElpB,IAAI5qF,EAAE,IAAI,EAAE,gDAAgD,EAAE21C,GAAGx1C,CAAC,EAAEw1C,GAAG/hB,CAAC,EAAS,IAAI05G,IAAGntI,EAAEH,EAAE4pD,EAAEh2B,CAAC,CAAC,CACvL,SAASgpL,IAAGz8M,EAAEyzB,EAAE,CAACwiF,GAAIxiF,EAAE,mCAAmC,EAAEswE,GAAItwE,GAAGzzB,EAAE,oCAAoC,EAAK,CAAAA,EAAE,IAAUA,EAAE,GAAG,KAAMA,EAAE,EAAEk5G,EAAG9hE,EAAG2sJ,GAAG,CAAC,EAAEv5H,EAAI,GAAG,EAAE,CAAC/2C,CAAC,CAAC,EAAIzzB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEyzB,EAAE,CACvL,SAASipL,GAAG18M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAqD,IAAnD73C,EAAEltH,EAAE,OAAOR,EAAE,EAAEG,EAAE,GAAGolK,EAAEzQ,IAAIn0J,EAAE,OAAOyzB,CAAC,GAAGoyD,GAAK,EAACC,IAAG,EAAO6+E,EAAE,EAAEA,EAAE53C,EAAE,EAAE43C,EAAG/kK,EAAEC,EAAE8kK,CAAC,EAAE,OAAU/kK,EAAEP,GAAG01G,IAAI6vD,EAAEzQ,IAAIt0J,EAAE8kK,CAAC,EAAE7+E,GAAG,CAAC,IAAGtmF,EAAEmlK,EAAEtlK,EAAEO,GAAG,OAAAJ,GAAG,IAAIiqD,EAAE,CAAC,EAAEh2B,EAAEp0B,GAAUG,CAAC,CACvL,SAASm9M,IAAI38M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAA2B,GAAzBA,EAAE6/D,IAAI1/D,EAAE,EAAE,GAAI,EAACyzB,EAAE,EAAE,IAAI,EAAK5zB,GAAG,EAAG,OAAOA,EAAE,OAAOG,EAAE,EAAE,GAAE,EAAG,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE,OAAO8+D,GAAI9+D,EAAE,EAAE,KAAKyzB,EAAE,EAAE,GAAI,CAAA,EAAE,IAAK,GAAE,IAAK,GAAE,OAAOqrC,GAAIrrC,EAAE,EAAE,GAAI,EAACzzB,EAAE,EAAE,GAAE,CAAE,CAAE,CAAC,MAAO,EAAC,CACvL,SAAS48M,IAAI58M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAyD,IAAvDA,EAAEzpD,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAEopG,GAAGyb,GAAG,CAACr6C,EAAI2pD,EAAG,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC1qE,EAAEA,CAAC,EAAE,CAAC,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAEG,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,CAAC,GAAGyvB,EAAG0lE,EAAIn1F,GAAG3I,GAAG,EAAG+xL,GAAK,EAAC,EAAE,EAAE,CAAE,CACvL,SAASC,IAAI98M,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,YAAY,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,EAAKwf,GAAImnC,GAAGwuC,EAAIn1F,GAAGi1I,GAAG,EAAGC,GAAG,CAAE,CAAC,GAAG3oK,EAAE,EAAE,IAAI0J,GAAIgwH,IAAI15H,EAAE,IAAI,GAAOA,EAAE,EAAE,IAAI0J,GAAI1J,EAAE,EAAE,GAAM+8M,IAAI/8M,EAAEyzB,EAAE,CAAC,EAAEqvD,EAAIrvD,EAAEm1I,KAAKx4F,GAAG,EAAG,EAAApwE,EAAE,EAAY,EAAG6rH,GAAIhsH,CAAC,CAAC,CACvL,SAASm5J,IAAIh5J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG/sH,GAAG,KAAM,OAAO,KAAmC,IAAzB+sH,EAAE9oD,EAAG4rF,GAAGC,GAAI,GAAG,EAAEr8H,EAAE,GAAG,CAAC,EAAMg2B,EAAE,EAAEjqD,EAAE,EAAEiqD,EAAEh2B,EAAE,EAAEg2B,EAAG5pD,EAAEG,EAAEypD,CAAC,GAAG,EAAE,GAAGpqD,EAAEW,EAAEypD,CAAC,EAAE,GAAGsjE,EAAEvtH,GAAG,EAAEw9M,IAAIn9M,CAAC,EAAEktH,EAAEvtH,GAAG,EAAEw9M,IAAI39M,CAAC,EAAE,OAAOisE,GAAIyhD,EAAE,EAAEA,EAAE,MAAM,CAAE,CACvL,SAASpoC,IAAI3kF,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAoqD,EAAEh2B,EAAE,GAAI,EAACp0B,EAAEo0B,EAAE,GAAE,EAAGj0B,EAAEiqD,EAAE,GAAI,EAACqjE,GAAI9sH,EAAE,EAAEypD,EAAEpqD,EAAE,KAAK41I,GAAIj1I,EAAEypD,EAAEpqD,EAAEksE,EAAG9hB,EAAE,EAAE,IAAIvG,EAAGuG,EAAE,EAAE,EAAE,GAAGmwB,KAAM,CAAC,EAAE,EAAI,EAAEkzC,GAAI9sH,EAAEypD,EAAE,GAAE,EAAG,EAAE,EAAEA,EAAEpqD,EAAEoqD,EAAE,GAAE,EAAG,GAAG,EAAI,EAAE5pD,EAAEA,EAAE,GAAGL,CAAC,EAAGK,EAAEL,EAAUK,CAAC,CACvL,SAASq1E,GAAIl1E,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAGG,GAAG45E,IAAKnmD,EAAE+xJ,IAAKxlL,EAAE45E,IAAK,GAAG,MAAMmrB,GAAIllG,EAAE,OAAOG,EAAE45E,GAAI,MAAMmrB,GAAW,OAAO,aAAatxE,CAAC,GAAG,GAAG,OAAO,aAAa5zB,CAAC,IAAe,OAAO,aAAaG,EAAE+kG,EAAG,CAAE,CACxL,SAASk4G,IAAIj9M,EAAEyzB,EAAE,CAACgoD,GAAG,EAAG,IAAI57E,EAAE4pD,EAAEjqD,EAAEH,EAA4B,OAA1BG,EAAE0jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAKj0B,EAAE,GAAI,GAAE,GAAGiqD,EAAEvG,EAAG1jD,EAAE,KAAK,GAAI,EAAC,GAAG,EAAEK,EAAEG,EAAE,EAAE,IAAIm+F,GAAK,EAACsqD,GAAG,EAAGppJ,EAAEW,EAAE,EAAE,GAAG2oJ,EAAG,EAAS,CAACl/F,EAAE,GAAG,CAAC5pD,IAAIL,EAAE,GAAI,GAAE,GAAGH,IAAe,EAAM,CACxL,SAAS69M,IAAIl9M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAA2B,IAAzBtlK,EAAE89M,IAAIn9M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEmlK,EAAE,GAAY,CAACtlK,GAAG+9M,GAAIp9M,EAAER,EAAE,EAAI,EAAEmlK,EAAE,GAAKtlK,EAAE89M,IAAIn9M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,EAAEmlK,GAAGy4C,GAAIp9M,EAAER,EAAE,EAAK,EAAEutH,EAAE+iD,GAAItwK,CAAC,EAAKutH,EAAE,EAAE,QAAQ,IAAK/sH,EAAE,GAAGA,EAAE,EAAE,GAAG+sH,CAAC,EAAEmwF,IAAIl9M,EAAER,EAAEK,EAAE4pD,EAAEsjE,CAAC,EAAE,CACxL,SAASpwB,IAAK,CAACA,GAAIj4F,EAAIokJ,GAAI,IAAIpzF,GAAI83F,GAAI,CAAC,EAAEzE,IAAI,IAAIrzF,GAAI,WAAW,CAAC,EAAEszF,IAAI,IAAItzF,GAAI,aAAa,CAAC,EAAEuzF,IAAI,IAAIvzF,GAAI,cAAc,CAAC,EAAEwzF,IAAI,IAAIxzF,GAAI,iBAAiB,CAAC,EAAEyzF,IAAI,IAAIzzF,GAAI,aAAa,CAAC,CAAC,CACxL,SAAS2nJ,IAAIr9M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAG,CAAC6kE,GAAI1kE,CAAC,EAAG,MAAM0lC,EAAI,IAAIoN,GAAIwqK,GAAG,CAAC,EAAW,OAATz9M,EAAE6kE,GAAI1kE,CAAC,EAASyzB,EAAE,EAAC,CAAE,IAAK,GAAE,MAAO,EAAEzzB,EAAE,EAAEA,EAAE,GAAG,IAAK,GAAE,OAAOA,EAAE,EAAEH,EAAE,EAAE,IAAK,GAAE,OAAOG,EAAE,EAAEH,EAAE,EAAE,IAAK,GAAE,MAAO,EAAEG,EAAE,EAAEA,EAAE,EAAG,CAAC,MAAO,EAAC,CACxL,SAASu9M,GAAIv9M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAmC,IAAjC34B,GAAI2C,CAAC,EAAEg2B,EAAEzpD,EAAE,EAAE,EAAE,OAAO4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAQg2B,EAAE,GAAE,CAAiB,GAAhB5pD,EAAE4pD,EAAEA,GAAGA,EAAE,GAAG,EAAE,EAAKzpD,EAAE,EAAE,GAAGs7E,GAAIt7E,EAAE,EAAEypD,CAAC,EAAEh2B,CAAC,GAAG,EAAG,OAAAqiF,GAAI91G,EAAE,EAAEH,EAAE4zB,CAAC,EAAS,GAAKqiF,GAAI91G,EAAE,EAAEH,EAAEy7E,GAAIt7E,EAAE,EAAEypD,CAAC,CAAC,CAAC,CAAC,OAAAqsD,GAAI91G,EAAE,EAAEypD,EAAEh2B,CAAC,EAAS,EAAI,CACzL,SAASm7K,GAAI5uM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAM,GAAJG,EAAE,EAAMK,EAAkEL,EAAE08K,GAAIl8K,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,CAAC,EAAEg2B,CAAC,MAApF,KAAIpqD,EAAE,EAAEA,EAAEggJ,GAAIhgJ,IAAKG,EAAEuD,EAAK,KAAK,IAAIvD,EAAE08K,GAAIl8K,EAAE,EAAEX,CAAC,EAAEo0B,EAAE,CAAC,EAAEg2B,CAAC,CAAC,EAA+B,OAAAh2B,IAAIg0D,GAAK,EAACo0C,KAAQ77H,EAAE,IAAIR,EAAEuD,EAAK,KAAK,IAAIvD,EAAEQ,EAAE,EAAE,CAAC,GAAUR,CAAC,CACzL,SAASg+M,IAAIx9M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsC,OAApCnlK,EAAEQ,EAAE,EAAEX,EAAEo0B,EAAE,EAAK,CAACj0B,GAAG,CAACH,GAAmBG,EAAE,GAAGH,EAAE,GAAGG,EAAE,IAAIs/F,EAAK,EAACsE,KAAM5jG,EAAE,IAAIs/F,EAAG,EAAGmE,IAAa,IAAM8pB,EAAEvtH,EAAE,EAAE,EAAEK,EAAEktH,EAAEvtH,EAAE,EAAE,EAAEmlK,EAAEtlK,EAAE,EAAE,EAAEoqD,EAAEk7G,EAAEtlK,EAAE,EAAE,EAAS0tH,GAAGtjE,GAAG5pD,GAAG8kK,EAAC,CACzL,SAAS84C,GAAIz9M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAgI,GAA9HA,EAAE,GAAS46D,GAAG3Q,CAAC,IAAGjqD,EAAE,GAAK6lG,GAAI5xE,EAAE5zB,EAAE01C,GAAGkU,CAAC,CAAC,GAAMjqD,GAAMw6D,GAAGvQ,CAAC,IAAGjqD,EAAE,GAAKi+M,GAAIz9M,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,GAAOjqD,GAAM+rE,EAAG9hB,EAAE,GAAG,IAAGjqD,EAAE,GAAKqqH,GAAIp2F,EAAE5zB,EAAEqjD,EAAGuG,EAAE,GAAG,CAAC,GAAM,CAACjqD,EAAG,MAAMkmC,EAAI,IAAI0M,GAAIiiK,GAAG,CAAC,CAAE,CACzL,SAASqJ,IAAI19M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAc,GAAZK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAGL,EAAE2vL,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG89M,EAAG,EAAKn+M,GAAG,OAAM,IAAIiqD,EAAE,EAAEA,GAAGs9I,GAAG,EAAG6W,KAAK,OAAO,EAAEn0J,EAAG,GAAG44B,GAAIu7H,IAAIn0J,CAAC,EAAEjqD,CAAC,EAAG,OAAOiqD,EAAK,MAAO,EAAC,CACzL,SAAS+1D,IAAIx/G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAc,GAAZK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAGL,EAAE2vL,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG89M,EAAG,EAAKn+M,GAAG,OAAM,IAAIiqD,EAAE,EAAEA,GAAGs9I,GAAG,EAAG8W,KAAK,OAAO,EAAEp0J,EAAG,GAAG44B,GAAIw7H,IAAIp0J,CAAC,EAAEjqD,CAAC,EAAG,OAAOiqD,EAAK,MAAO,EAAC,CACzL,SAAS6sE,IAAGt2H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoB,GAAlByxB,GAAI2C,CAAC,EAAEp0B,EAAEW,EAAE,EAAE,GAAI,EAAIX,EAAEo0B,EAAE,GAAI,EAAE,IAAI5zB,EAAEG,EAAE,EAAE,GAAE,EAAG,GAAI,EAACH,EAAE,GAAE,GAAK4pD,EAAE5pD,EAAE,GAAE,EAAG4zB,EAAE,GAAGg2B,CAAC,GAAG5pD,EAAE,GAAE,MAAS,KAAIL,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEjqD,EAAE,GAAE,EAAGQ,EAAE,EAAE,GAAGypD,CAAC,GAAG,KAAM,OAAOpqD,GAAGW,EAAE,EAAE,GAAE,CAAE,CAC1L,SAAS89M,IAAI99M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA2D,OAAzDA,EAAE4pE,GAAI0xD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACxqE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEyzB,EAAEzzB,EAAE,EAAE,EAASA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEH,EAAE,GAAG4zB,EAAE,EAAE,MAAM,IAAK,GAAE5zB,EAAE,GAAG4zB,EAAE,EAAE,MAAM,IAAK,GAAE5zB,EAAE,GAAG4zB,EAAE,EAAE,MAAM,IAAK,GAAE5zB,EAAE,GAAG4zB,EAAE,CAAE,CAAC,OAAO5zB,CAAC,CAC1L,SAASk+M,IAAI/9M,EAAE,CAAC,IAAIyzB,EAA4D,IAA1DA,GAAG7H,KAAMs3B,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGm3G,GAAI5mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAASmwB,EAAE,IAAIk3D,GAAG,EAAG2+D,KAAMxmE,EAAIrvD,GAAGy2F,EAAK,EAAC8zF,KAAM5tI,GAAK,EAAC,GAAI,EAAG38C,EAAEyvB,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,GAAE,EAAG,IAAInwB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAE,CAC1L,SAASiyL,GAAIv1L,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAa,IAAXA,EAAEmO,GAAIr/I,EAAEg2B,CAAC,EAAMsjE,EAAE43C,EAAE,GAAE,EAAG53C,EAAE,MAAOvtH,EAAE0jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAE/sH,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAEH,EAAE,CAAC,EAAa,IAAX8kK,EAAEmO,GAAIjzK,EAAE4pD,CAAC,EAAMpqD,EAAEslK,EAAE,GAAE,EAAGtlK,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAEW,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAEyzB,EAAE,CAAC,CAAE,CAC1L,SAASyxJ,GAAIllL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIA,EAAE,IAAI28D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAG,EAACR,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAKiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,EAAEqjE,GAAIpZ,EAAEA,EAAE,EAAEh2B,EAAEg2B,EAAE,EAAE5pD,CAAC,EAAEk4I,IAAK,CAAC/3I,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIklC,GAAGrmH,EAAE,GAAG,CAAC,GAAGA,EAAE,GAAG,IAAIw2D,IAAI/iC,EAAE5zB,CAAC,CAAC,CAAC,CAC1L,SAASo+M,IAAIj+M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAyC,IAAvCA,EAAEo0B,EAAEj0B,EAAEH,EAAE,GAAG,MAAMW,EAAE,EAAE,GAAGH,EAAE,EAAER,EAAE,CAAC,EAAE,EAAE,EAAE,EAAQA,EAAE,EAAEG,CAAC,GAAGK,GAAGR,EAAEA,EAAE,EAAEG,CAAC,EAAEA,EAAEQ,EAAE,EAAE,GAAGH,EAAE,EAAER,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEG,CAAC,EAAEiqD,EAAEA,EAAE,EAAE5pD,EAAE,EAAE4pD,EAAE,EAAE,CAAC,EAAE5pD,EAAE,EAAE,CAAC,EAAE4pD,EAAE,EAAE,CAAC,EAAE5pD,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,CAAC,EAAE,KAAKA,EAAE,EAAE,CAAC,EAAE,IAAI,CAC3L,SAASq+M,IAAIl+M,EAAE,CAACm+F,GAAK,EAAC,IAAI1qE,EAAE5zB,EAAqH,OAAnH4zB,EAAEm6E,GAAI2F,GAAI2F,EAAG9hE,EAAGmxG,GAAG,CAAC,EAAEnvC,EAAI,IAAI,EAAE,CAAC5F,EAAG,CAAC,CAAC,EAAK,EAAA+3D,GAAG/2C,GAAG/gG,EAAEzzB,CAAC,CAAC,EAAE,IAAgBH,EAAE+tG,GAAI66C,GAAIvvC,EAAG9hE,EAAGmxG,GAAG,CAAC,EAAEnvC,EAAI,IAAI,EAAE,CAACsvC,GAAIC,EAAG,CAAC,CAAC,EAAK4iB,GAAG/2C,GAAG30H,EAAEG,CAAC,CAAC,EAAE,GAA2B,CAC3L,SAASkgH,GAAIlgH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE07G,IAAK3wD,GAAG,EAAGC,IAAK7qD,CAAC,EAAEurE,EAAG1rE,EAAE,GAAG,EAAE0pD,GAAIsB,GAAI7qD,EAAE,IAAI44D,IAAI,KAAKnlC,CAAC,CAAC,EAAE81B,GAAIsB,GAAI7qD,EAAE,IAAI,EAAE0rH,GAAI,KAAKj4F,CAAC,EAAKA,IAAI+oB,GAAG,EAAGC,MAAM,KAAK,GAAGyG,EAAG,KAAK,IAAI,EAAEA,EAAGzvB,EAAE,IAAI,GAAO,KAAK,IAAI6oF,KAAMC,GAAK,CAC3L,SAAS4hG,IAAI1qL,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,GAAG,KAAM,OAAO,KAAY,IAAP5zB,EAAE,KAAS4pD,EAAE,EAAEA,EAAE20J,GAAI,OAAO,EAAE30J,EAAG,GAAG,CAAC,OAAOO,IAAIo0J,GAAI30J,CAAC,EAAEh2B,CAAC,CAAC,OAAOzzB,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAGR,EAAEQ,EAAEH,EAAEL,MAAO,OAAMkmC,EAAI1lC,CAAC,CAAC,CAAE,MAAM0lC,EAAI,IAAI8oH,GAAI3uJ,CAAC,CAAC,CAAC,CAC3L,SAASw+M,KAAK,CAACA,IAAI35M,EAAI45M,IAAIplG,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE+zI,IAAIrlG,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAMg0I,GAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC,CAC5L,SAASC,IAAIz+M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEh2B,EAAE4uD,GAAI,OAAO5uD,EAAGirL,EAAG,EAAE,KAAK,IAAI73M,IAAQ4sB,IAAU8yB,KAAM1mD,GAAG4pD,EAAE,IAAIA,GAAGwmH,GAAI,QAAQxmH,GAAG,IAAI,OAAOA,GAAG,IAAI,OAAO,OAAOyzD,IAAIr9G,EAAEG,EAAE,CAAC,EAAIA,EAAE,GAAG2+M,GAAIlrL,EAAE5zB,EAAEG,EAAE,EAAE,cAAc,EAAI,EAAC,CAC5L,SAAS4oH,EAAI5oH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAqC,OAAnCA,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKmuE,GAAIlzG,EAAE,EAAEyzB,CAAC,GAAMg2B,IAAkB5pD,EAAE4zB,EAAE,GAAI,EAAC83C,EAAG1rE,EAAE,CAAC,IAAIA,GAAG,MAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy7G,GAAIxgJ,EAAE,EAAEyzB,CAAC,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI+kC,IAAKy0B,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,IAAaA,EAAC,CAC5L,SAASiqF,IAAK,CAACA,GAAIplF,EAAI2zI,GAAI,IAAI/oF,GAAI,oBAAoB,CAAC,EAAEgpF,GAAI,IAAIhpF,GAAI,cAAc,CAAC,EAAEipF,GAAI,IAAIjpF,GAAI,mBAAmB,CAAC,EAAEkpF,GAAI,IAAIlpF,GAAI,oBAAoB,CAAC,EAAEqpE,GAAI,IAAIrpE,GAAI,kBAAkB,CAAC,CAAC,CAC5L,SAASsvJ,IAAI5+M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiB,IAAfvtH,EAAEi0B,GAAG,EAAEgpJ,GAAID,GAAQ/yH,EAAEjqD,EAAE,EAAE,GAAE,EAAG,GAAI,EAACiqD,EAAE,GAAE,GAAsB,IAAjB5pD,EAAEqjD,EAAGuG,EAAE,KAAK,GAAG,EAAMsjE,EAAE7pE,EAAGgwB,GAAGlzE,EAAE,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGktH,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAEl6C,GAAI7yE,EAAE,EAAE,EAAEX,EAAE,CAAC,EAAEwzE,GAAI7yE,EAAE,EAAE,EAAEkjD,EAAG7jD,EAAE,EAAE,EAAE,EAAE,CAAC,CAAG,CAC5L,SAASw/M,IAAI7+M,EAAEyzB,EAAE,CAACyxG,GAAK,EAAC,IAAIrlI,EAAE,GAAGG,EAAE,GAAGyzB,EAAE,EAAE,CAAC,GAAGzzB,EAAE,GAAGyzB,EAAE,GAAG2xI,IAAIplK,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAiB,GAAhB5zB,EAAE+/D,IAAI5/D,EAAE,CAAC,EAAE,EAAE,GAAMA,EAAE,GAAG,CAACyzB,EAAE,EAAG,OAAO5zB,EAAO,GAAG,CAACG,EAAE,GAAGyzB,EAAE,EAAG,MAAO,CAAC5zB,CAAE,CAAC,OAAOi/D,GAAI9+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,KAAM,QAAOmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,CAAE,CAC5L,SAASqrL,IAAI9+M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+rH,GAAIn4F,EAAE,wCAAwC,CAAC,EAAE5zB,EAAEG,EAAE,EAAEH,EAAE,EAAE,OAAO,GAAGk/M,KAAKliJ,GAAI,EAAEh9D,EAAE,EAAE,MAAM,EAAEqjD,EAAGrjD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGG,CAAC,EAAEH,EAAE,EAAE,OAAO,GAAGk/M,IAAI77J,EAAGo4B,GAAIz7E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAEG,CAAC,EAAE6rH,GAAIp4F,CAAC,CAAC,CAC5L,SAASurL,IAAIh/M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGy/M,GAAIj/M,EAAEyzB,CAAC,EAAG,MAAO,GAAK,IAAIg2B,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA6D,GAApD5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAE0sG,IAAIrsG,CAAC,EAAKu/L,GAAIp/L,EAAEH,EAAEL,CAAC,GAAkB69K,IAAIr9K,EAAEH,CAAC,EAAEG,EAAE,GAAGA,EAAE,EAAG,MAAO,GAAM,MAAO,EAAK,CAC5L,SAAS0uB,IAAK,CAACA,GAAIhqB,EAAIw6M,IAAKtwL,KAAM6wK,KAAK0f,GAAIC,IAAIC,GAAIC,IAAIC,IAAIC,IAAIC,GAAIC,IAAIC,IAAI,IAAIr6I,GAAI,CAAC,EAAEs6I,IAAI,IAAIv6I,IAAKr1C,GAAK,EAAC+pJ,IAAK4lC,GAAG,EAAEE,IAAI,IAAIx6I,GAAImrH,GAAI,CAAC,EAAEsvB,IAAIlgB,IAAImgB,IAAIC,IAAIC,IAAIC,IAAIC,IAAI,IAAI96I,GAAI66H,IAAK9vH,KAAM,IAAO,CAC5L,SAAStgD,IAAK,CAACA,GAAIprB,EAAI07M,IAAI,IAAI96I,GAAI,EAAE,EAAE+6I,IAAI,IAAIh7I,IAAKr1C,GAAG,EAAG+pJ,IAAKqmC,GAAG,EAAEE,IAAI,IAAIj7I,GAAImrH,GAAI,EAAE,EAAE+vB,IAAI,IAAIl7I,GAAIm7I,GAAIjzE,EAAI,CAAC,CAAC,EAAEkzE,IAAIC,IAAIC,IAAItmC,GAAIumC,IAAI10D,GAAI20D,IAAI,IAAIx7I,GAAIurH,GAAIkwB,GAAG,EAAEC,IAAI9V,GAAI+V,IAAIzmC,GAAI0mC,GAAIC,IAAIC,IAAIC,EAAG,CAC5L,SAASh7G,GAAIpmG,EAAE,CAAC,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAIwuK,EAAG,CAAC,EAAE,OAAO1L,GAAIzyJ,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5L,SAASshN,IAAIthN,EAAE,CAAC,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAIwuK,EAAG,CAAC,EAAE,OAAO7yC,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5L,SAASuhN,IAAIvhN,EAAE,CAAC,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAIwuK,EAAG,CAAC,EAAE,OAAO7yC,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5L,SAASsmG,GAAItmG,EAAE,CAAC,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAIwuK,EAAG,CAAC,EAAE,OAAO1L,GAAIzyJ,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5L,SAASwhN,GAAIxhN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAiB,GAAf,EAAEW,EAAE,EAAER,EAAEQ,EAAE,GAAE,EAAMyzB,GAAGj0B,GAAGi0B,EAAE,EAAE,MAAMiS,EAAI,IAAIwM,GAAIuvK,GAAIhuL,EAAEwtD,GAAIzhF,CAAC,CAAC,EAAE,GAAGK,GAAGL,GAAGK,EAAE,EAAE,MAAM6lC,EAAI,IAAIwM,GAAIwvK,GAAI7hN,EAAEohF,GAAIzhF,CAAC,CAAC,EAAE,OAAAi0B,GAAG5zB,EAAG4pD,GAAGpqD,EAAEW,EAAE,GAAGH,CAAC,EAAEG,EAAE,GAAGyzB,EAAEp0B,CAAC,EAAEA,GAAKoqD,EAAEzpD,EAAE,GAAGH,CAAC,EAAU4pD,CAAC,CAC5L,SAASk4J,IAAI3hN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAM,GAAJA,EAAEzpD,EAAKA,EAAO,IAAJyzB,EAAE,EAAM5zB,EAAEG,EAAE,GAAE,EAAGH,EAAEA,EAAEA,EAAE,GAAE,EAAG,CAAC,GAAG,EAAE4zB,EAAEq/J,GAAK,OAAO6uB,IAAI9hN,CAAC,EAAM,GAAJ4pD,EAAE5pD,EAAKA,GAAGG,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,oDAAoD9yC,CAAC,CAAC,CAAE,CAAE,OAAOypD,CAAC,CAC5L,SAASm4J,GAAG5hN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAyB,IAAvBA,EAAE,IAAIiiH,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAE,GAAI,EAACH,EAAE,GAAI,GAAG4zB,EAAE5zB,EAAE,GAAE,EAAGogJ,GAAIx2F,EAAEsQ,EAAGtmC,CAAC,IAAIsmC,EAAG/5D,CAAC,EAAE,oBAAoByzB,GAAG,KAAKw9C,GAAIC,GAAIz9C,CAAC,CAAC,EAAE,OAAQg2B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CAC7L,SAASw1J,GAAIj/M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAU,GAARA,EAAE,GAASh2B,EAAE,GAAE,EAAG,EAAG,MAAO,GAAM,IAAI5zB,EAAE,EAAEA,EAAE4zB,EAAE,GAAE,EAAG5zB,IAAKA,EAAE4zB,EAAE,GAAI,EAAC,EAAGg2B,EAAEA,EAAE21I,GAAIp/L,EAAEkjD,EAAGzvB,EAAE,GAAG5zB,CAAC,EAAE,EAAE,EAAEqjD,EAAGzvB,EAAE,GAAG5zB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAI4pD,EAAEA,EAAE21I,GAAIp/L,EAAEkjD,EAAGzvB,EAAE,GAAG5zB,CAAC,EAAE,EAAE,EAAEqjD,EAAGzvB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAG,OAAOg2B,CAAC,CAC7L,SAASo4J,IAAI7hN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,GAAGzzB,EAAE,GAAGH,EAAE,KAAOG,EAAE,IAAIH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAEomM,GAAGvmM,CAAC,GAAK4zB,IAAI5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAE,GAAGzzB,EAAE,EAAEomM,GAAGvmM,CAAC,GAAGA,EAAEo/K,GAAIj/K,EAAEyzB,EAAE5zB,CAAC,EAAIA,GAAGA,EAAE,GAAE,GAASG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC7L,SAASuyF,GAAIhmH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,GAAGzzB,EAAE,GAAKA,EAAE,GAAG0hJ,IAAIpiC,GAAIt/G,EAAE,CAAC,EAAEA,CAAC,EAAIyzB,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIyQ,GAAI,IAAI2J,EAAG,GAAG8yC,IAAIltD,EAAE,EAAEzzB,CAAC,GAAGH,EAAE4wM,IAAIzwM,EAAEyzB,EAAE,IAAI,EAAI5zB,GAAGA,EAAE,GAAI,GAAOG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC7L,SAASquL,GAAI9hN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiB,IAAf5pD,EAAEG,EAAE,OAAOypD,EAAE,EAAQA,EAAE5pD,IAAImiH,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAG,KAAK,EAAEA,EAAM,IAAJh2B,EAAE5zB,EAAQ4zB,EAAEg2B,IAAIu4D,GAAIvuF,EAAE,EAAEzzB,EAAE,MAAM,EAAEA,EAAE,WAAWyzB,EAAE,CAAC,GAAG,KAAK,EAAEA,EAAE,OAAOg2B,EAAE,GAAGh2B,EAAE5zB,EAAEG,EAAE,OAAOypD,EAAEh2B,EAAEg2B,CAAC,EAAEzpD,CAAC,CAC9L,SAAS4qK,IAAI5qK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEA,EAAE4zB,EAAE,EAAK4tC,GAAIrhE,EAAE,CAAC,GAAGA,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAE,GAAGH,EAAE,EAAEG,EAAE,EAAE,EAAE,OAAO,IAAIA,EAAE,EAAE,GAAGA,EAAE,KAAQA,EAAE,EAAE,GAAGH,EAAE,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAE,OAAO,IAAIA,EAAE,EAAE,GAAGA,EAAE,GAAG,CAC9L,SAAS0sB,IAAK,CAACA,GAAIhoB,EAAIq9M,IAAI7oG,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,EAAE75C,IAAM+5C,IAAKz1C,GAAI6sC,EAAG,CAAC,EAAE+xE,IAAI9oG,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACv1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAEg/G,IAAI/oG,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAAC1I,GAAIhtC,GAAI41C,EAAG,CAAC,EAAEqpE,IAAIhpG,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAAC11C,GAAI41C,GAAIz1C,EAAG,CAAC,CAAC,CAC9L,SAAS++G,IAAIniN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAkB,GAAhB93C,EAAE/sH,EAAE,EAAE,EAAE2kK,EAAE3kK,EAAE,EAAE,EAAK+sH,EAAE,GAAG43C,EAAE,EAA6B,IAAnBE,EAAE7kK,EAAE,EAAER,EAAEutH,EAAE,EAAEntH,EAAE,KAAWJ,GAAGmlK,EAAE,GAAG/kK,EAAE6zB,GAAG,EAAEylI,GAAI15J,CAAC,EAAEskL,GAAItkL,CAAC,EAAEH,EAAEk3L,GAAI/2L,EAAEqlK,EAAE,EAAErlK,EAAE,CAAC,EAAEK,CAAC,EAAE+kK,EAAE2xB,GAAI32L,EAAEilK,EAAE,EAAEjlK,EAAE,CAAC,EAAEC,CAAC,EAAEgmG,GAAIp8C,EAAE22B,GAAI/gF,EAAEulK,CAAC,CAAC,EAAEplK,EAAEI,CAAE,CAC9L,SAASwiN,IAAIpiN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,OAAAmtH,EAAE47E,IAAI3oM,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAE8kK,EAAEzhH,EAAG6pE,EAAE,EAAE,EAAE,EAAE,EAAE1tH,EAAE6jD,EAAG6pE,EAAE,EAAE,EAAE,EAAE,EAAKtjE,IAAG7pD,EAAEsjD,EAAG0lE,EAAIn1F,GAAGy2F,IAAMysD,GAAK,EAAC,EAAE,EAAEn3K,EAAE0jD,EAAG0lE,EAAI/oH,EAAE82K,EAAG,EAAE,EAAE,EAAO/2K,GAAKJ,IAAGy2I,IAAIj2I,EAAE,EAAEJ,EAAEJ,CAAC,EAAEmlK,GAAG3kK,EAAE,EAAE,EAAEX,GAAGW,EAAE,EAAE,IAAU2kK,EAAEtlK,CAAC,CAC9L,SAAS6jK,IAAIljK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA+B,IAA7B,KAAK,EAAE5wD,IAAIh0G,CAAC,EAAE,KAAK,EAAE,IAAI6kC,EAAQhlC,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAkC,IAA/Bh2B,EAAE5zB,EAAE4pD,CAAC,EAAEpqD,EAAE,IAAIwlC,EAAI+D,EAAI,KAAK,EAAEvpC,CAAC,EAAMslK,EAAElxI,EAAE7zB,EAAE,EAAEglK,EAAED,EAAE,OAAO/kK,EAAEglK,EAAE,EAAEhlK,EAAGmtH,EAAE43C,EAAE/kK,CAAC,EAAEgpC,EAAIvpC,EAAE,IAAI8lF,GAAI4nC,EAAE,CAAC,CAAC,CAAG,CAC9L,SAASk5E,IAAIjmM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,OAAAA,EAAE,EAAEoqD,EAAE5pD,EAAE4zB,CAAC,EAAKA,EAAE5zB,EAAE,OAAO,IAAGL,EAAEK,EAAE4zB,EAAE,CAAC,EAAKzzB,EAAE,EAAEyzB,CAAC,GAAGp0B,EAAEgjN,IAAIriN,EAAE,EAAEypD,EAAEjqD,CAAC,EAAEH,GAAG09G,GAAI/8G,EAAE,EAAEypD,GAAGq1C,EAAG,EAAGsE,GAAG,EAAG/jG,GAAG09G,GAAI/8G,EAAE,EAAER,EAAEyjG,EAAG,GAAO5jG,EAAEgsJ,IAAIrrJ,EAAE,EAAEypD,EAAEjqD,CAAC,GAAGQ,EAAE,EAAEyzB,CAAC,IAAIp0B,GAAG8hJ,IAAInhJ,EAAE,EAAEypD,CAAC,GAAUpqD,CAAC,CAC9L,SAASijN,IAAItiN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAS,IAAPA,EAAE,KAAS+kK,EAAE,IAAIzsI,EAAIuxB,CAAC,EAAEk7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,GAAjB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAK53C,GAAGltH,GAAGqgE,GAAI6sD,EAAE,EAAEvtH,EAAE,CAAC,GAAG,GAAG,CAACI,EAAEmtH,EAAE,KAAK,CAAE1tH,EAAEw/I,GAAIr/I,CAAC,EAAEqqE,GAAIxqE,EAAEQ,EAAE,CAAC,EAAEiqE,GAAIzqE,EAAEO,EAAE,CAAC,EAAE42E,GAAGx2E,EAAE,EAAER,EAAE,IAAIyrF,GAAI5rF,EAAEo0B,EAAE5zB,EAAE,CAAC,CAAC,CAAC,CAC/L,SAASg1K,IAAI70K,EAAE,CAAC,KAAMA,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,GAAMq7E,GAAIr7E,EAAE,CAAC,EAAE,EAAEq7E,GAAIr7E,EAAE,CAAC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAE,EAAEmwL,GAAInwL,EAAE,CAAC,GAAUq7E,GAAIr7E,EAAE,CAAC,EAAE,EAAEq7E,GAAIr7E,EAAE,CAAC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAE,EAAEmwL,GAAInwL,EAAE,CAAC,IAAOA,EAAE,GAAGqrG,IAAIrrG,EAAE,CAAC,EAAEA,EAAE,GAAGqrG,IAAIrrG,EAAE,CAAC,EAAEmwL,GAAInwL,EAAE,CAAC,EAAEmwL,GAAInwL,EAAE,CAAC,EAAG,CAC/L,SAASg2I,IAAIh2I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4D,IAA1D1tH,EAAEo0B,EAAE,EAAEs5F,EAAEt5F,EAAE,EAAE,IAAI8lG,IAAK/jC,GAAK,EAACo6B,IAAKn8F,EAAEp0B,EAAE,CAAC,EAAE,IAAIk6H,GAAI3J,GAAIvwH,EAAE0tH,EAAE,CAAC,EAAMvtH,EAAE,IAAI04B,EAAIr4B,CAAC,EAAEL,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAKiqD,GAAGpqD,GAAGoqD,GAAGh2B,GAAGg2B,GAAGsjE,IAAGw1F,GAAIviN,EAAE,EAAEypD,EAAEh2B,CAAC,EAAE8uL,GAAIviN,EAAE,EAAEypD,EAAEsjE,CAAC,EAAG,CAC/L,SAASy1F,IAAIxiN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAACzpD,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI0wB,EAAE5zB,CAAC,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI0wB,EAAEg2B,CAAC,EAAEzpD,EAAE,EAAE,EAAKyzB,EAAE5zB,GAAGG,EAAE,EAAE,IAAKyzB,EAAE5zB,GAAGG,EAAE,EAAEyiN,GAAIziN,EAAE,EAAE,GAAIyzB,EAAEzzB,EAAE,EAAEyiN,GAAIziN,EAAE,EAAE,GAAIH,IAAOG,EAAE,EAAE,IAAKyzB,EAAEg2B,GAAGzpD,EAAE,EAAEyiN,GAAIziN,EAAE,EAAE,GAAIypD,EAAEzpD,EAAE,EAAEyiN,GAAIziN,EAAE,EAAE,GAAIyzB,EAAE,CAC/L,SAASivL,KAAK,CAAC3sF,GAAI,CAAA,EAAG,CAAC,MAAM,UAAU,MAAM,QAAQ,SAAS/1H,EAAE,CAAC,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAI,gBAAgB,GAAG,SAASyzB,GAAG,CAAC,OAAQ,IAAI,OAAM,QAAO,CAAE,CACvK,CAAC,KAAK,MAAM,KAAK,IAAIA,EAAE,CACvB,SAASkvL,IAAI3iN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEA,EAAEvG,EAAG0lE,EAAIn1F,GAAGnG,GAAK,EAAC6oI,GAAG,EAAG,EAAE,EAAErzE,EAAIrvD,GAAGy2F,EAAG,EAAG04F,KAAKn5J,CAAC,EAAE5pD,EAAE4zB,EAAE,EAAI5zB,IAAIwlD,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIg7B,GAAI76B,CAAC,CAAC,EAAEqlD,GAAIksG,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI6K,EAAG,EAAE,IAAIowB,GAAI96B,CAAC,CAAC,EAAE,CAChM,SAASspK,IAAItpK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,GAAGgiE,GAAIte,EAAG0lE,EAAI5oH,EAAE,GAAGstB,GAAG,EAAGo4J,GAAG,EAAG,GAAG,CAAC,EAAG,MAAO,GAAM,IAAJjyJ,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAK5pD,EAAE,IAAI8qF,GAAK,EAAC0hC,MAAM7sH,EAAEK,EAAE,EAAE,EAAE4zB,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEj0B,CAAC,GAAG,OAAOi0B,CAAC,CAChM,SAASovL,IAAI7iN,EAAE,CAAC,OAAOkjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG4jJ,GAAG,EAAG,GAAG,EAAE,GAAG,IAAK,GAAEpuF,EAAI9iF,EAAEkxK,IAAKlgF,GAAG,EAAG4sD,GAAG,EAAG,MAAM,IAAK,GAAE96D,EAAI9iF,EAAEkxK,IAAKlgF,GAAK,EAAC6sD,GAAK,EAAC,MAAM,IAAK,GAAE/6D,EAAI9iF,EAAEkxK,IAAKlgF,GAAG,EAAG0sD,KAAM,MAAM,IAAK,GAAE56D,EAAI9iF,EAAEkxK,IAAKlgF,GAAK,EAAC2sD,GAAK,CAAC,CAAC,CAChM,SAAS/tD,IAAK,CAACA,GAAIlrF,EAAIuhJ,GAAI,IAAIt0F,GAAI67F,GAAI,CAAC,EAAEtH,IAAI,IAAIv0F,GAAI6hE,GAAI,CAAC,EAAE2yB,IAAI,IAAIx0F,GAAI8hE,GAAI,CAAC,EAAE2yB,IAAI,IAAIz0F,GAAI,gCAAgC,CAAC,EAAE00F,IAAI,IAAI10F,GAAI,gCAAgC,CAAC,EAAE20F,IAAI,IAAI30F,GAAIyxI,IAAI,CAAC,CAAC,CAChM,SAAS0f,IAAI9iN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAED,EAAE9kK,EAAE,EAAE,EAAER,EAAEQ,EAAE,EAAE,EAAE4pD,EAAE1mD,EAAK,KAAK,IAAI0wB,EAAE,EAAEzzB,EAAE,CAAC,EAAER,EAAEuD,EAAK,KAAK,IAAI0wB,EAAE,EAAEzzB,EAAE,CAAC,EAAEJ,EAAE,EAAEglK,EAAE,EAAEn7G,EAAEk7G,IAAI/kK,EAAE+kK,EAAEl7G,GAAGjqD,EAAEH,IAAIulK,EAAEvlK,EAAEG,GAAGutH,EAAEhqH,EAAK,KAAK,IAAInD,EAAEglK,CAAC,EAAE5kK,EAAE,GAAG+sH,GAAGt5F,EAAE,EAAEzzB,EAAE,GAAGA,EAAE,GAAG+sH,GAAGt5F,EAAE,EAAEzzB,EAAE,EAAE,CAChM,SAAS+iN,IAAI/iN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAA8B,IAA5BA,EAAE,GAAM1tH,EAAE6jD,EAAGo4B,GAAIz7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAQmjN,IAAIhjN,EAAEyzB,EAAEp0B,EAAEoqD,EAAEjqD,CAAC,IAAGutH,EAAE,GAAKyoF,IAAI31M,EAAER,CAAC,EAAKQ,EAAE,EAAE,EAAE,QAAQ,IAASR,EAAE6jD,EAAGo4B,GAAIz7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,OAAAA,EAAE,EAAE,EAAE,QAAQ,GAAGouM,GAAIpuM,EAAE,EAAEA,CAAC,EAAEktH,GAAGs3E,GAAI5wK,EAAE,CAAC,EAASs5F,CAAC,CAChM,SAAS67D,IAAI5oL,EAAEyzB,EAAE,CAAC2/E,GAAG,EAAG,IAAIvzG,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGo0B,EAAE,EAAE,EAAG,MAAO,GAAoC,IAA9Bp0B,EAAEi6J,GAAI7lI,EAAE,CAAC,EAAE5zB,EAAEqjD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAEoqD,EAAE5pD,EAAQR,EAAE,GAAGA,EAAE,EAAE,GAAE,CAAgB,GAAfG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAK4jN,GAAIjjN,EAAEypD,EAAEjqD,CAAC,EAAG,MAAO,GAAKiqD,EAAEjqD,CAAC,CAAC,MAAG,EAAAyjN,GAAIjjN,EAAEypD,EAAE5pD,CAAC,CAA2B,CAChM,SAAS8tK,GAAI3tK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,OAAGQ,GAAG,GAAU,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGqkF,GAAIrkF,EAAE,EAAEyzB,EAAEg2B,CAAC,IAASpqD,EAAE6jD,EAAG4mG,IAAKtqJ,EAAE0jD,EAAGoqB,GAAIttE,EAAE,EAAE,EAAE,EAAE,EAAGR,GAAEQ,EAAE,GAAE,GAAMH,CAAC,EAAE,EAAE,EAAER,EAAE,GAAI,EAAC,GAAGW,EAAEkwJ,GAAIlwJ,CAAC,EAAEH,EAAE45G,GAAIz5G,EAAE,GAAI,CAAA,EAAEyzB,EAAEg2B,CAAC,EAAC,CAChM,SAASiiE,GAAI1rH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAK4zB,GAAGzzB,EAAE,IAAIH,EAAE,KAAOG,EAAE,KAAKH,EAAEqjD,EAAGljD,EAAE,GAAG,EAAE,EAAE,GAAGA,EAAE,EAAEkjN,GAAGrjN,CAAC,GAAK4zB,IAAI5zB,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAE,GAAGzzB,EAAE,EAAEkjN,GAAGrjN,CAAC,GAAGA,EAAEygL,GAAItgL,EAAEyzB,EAAE5zB,CAAC,EAAIA,GAAGA,EAAE,GAAE,GAASG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAChM,SAAS0vL,IAAInjN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGo0B,EAAGj0B,EAAEikH,GAAIhwF,EAAE,GAAG,EAAE5zB,EAAE,IAAI6hC,IAAI1hC,CAAC,EAAEijE,GAAIpjE,EAAE,GAAGixB,GAAItxB,CAAC,EAAEA,IAAIH,EAAEokH,GAAIhwF,EAAE,GAAG,EAAEg2B,EAAE,IAAI9nB,IAAI3hC,CAAC,EAAEkjE,GAAIzZ,EAAE,GAAG34B,GAAIzxB,CAAC,EAAEA,QAAS,OAAMqmC,EAAI,IAAIsO,GAAI,sCAAsC,CAAC,CAAE,CAChM,SAASovK,IAAIpjN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGo0B,EAAGj0B,EAAEikH,GAAIhwF,EAAE,GAAG,EAAE5zB,EAAE,IAAI0hC,IAAIvhC,CAAC,EAAEojE,GAAIvjE,EAAE,GAAGixB,GAAItxB,CAAC,EAAEA,IAAIH,EAAEokH,GAAIhwF,EAAE,GAAG,EAAEg2B,EAAE,IAAIjoB,IAAIxhC,CAAC,EAAEqjE,GAAI5Z,EAAE,GAAG34B,GAAIzxB,CAAC,EAAEA,QAAS,OAAMqmC,EAAI,IAAIsO,GAAI,uCAAuC,CAAC,CAAE,CACjM,SAAS2hJ,IAAI31L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAI6pD,EAAEmtH,IAAI52K,CAAC,EAAEX,EAAE,EAAEslK,EAAEl7G,EAAE,OAAOpqD,EAAEslK,EAAE,EAAEtlK,EAAGo/M,IAAIhrL,CAAC,EAAgC,IAA9B7zB,EAAE,CAAC+lE,IAAK3lE,EAAE,EAAE2lE,GAAI,KAAK3lE,EAAE,EAAE,KAAWJ,GAAE,CAAC,IAAIC,EAAE+2K,IAAIh3K,CAAC,EAAEJ,EAAE,EAAEutH,EAAEltH,EAAE,OAAOL,EAAEutH,EAAE,EAAEvtH,EAAGi/M,IAAIhrL,CAAC,EAAE7zB,EAAE,CAAC+lE,IAAK/lE,EAAE,EAAE+lE,GAAI,KAAK/lE,EAAE,EAAE,IAAI,CAAC,CACjM,SAAS+qF,IAAK,CAACA,GAAIjmF,EAAI2nH,GAAI,IAAI58D,GAAI,SAAS,CAAC,EAAE65F,GAAI,IAAI75F,GAAI,YAAY,CAAC,EAAEmvF,GAAI,IAAInvF,GAAI,gBAAgB,CAAC,EAAE85F,GAAI,IAAI95F,GAAI,mBAAmB,CAAC,EAAE+5F,GAAI,IAAI/5F,GAAI,QAAQ,CAAC,EAAEg6F,GAAI,IAAIh6F,GAAI,iBAAiB,CAAC,CAAC,CACjM,SAAS4zJ,IAAIrjN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,GAARi0B,EAAE,GAASijD,GAAI12E,GAAGkqH,EAAK,EAACoC,GAAG,EAAwB,IAApBzsH,EAAEqjD,EAAG0lE,EAAI5oH,EAAEssH,EAAG,EAAE,EAAE,EAAM9sH,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAK8jN,IAAI75J,CAAC,IAAOh2B,IAAG8vL,IAAItlG,GAAIj+G,CAAC,CAAC,EAAEyzB,EAAE,IAAKmlK,IAAI11I,EAAGrjD,EAAE,GAAG4pD,CAAC,EAAE,GAAG,CAAC,EAAI,CACjM,SAAS+5J,IAAIxjN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEmiE,GAAI/rH,EAAE,oBAAoB,CAAC,EAAE4pD,EAAEm8H,IAAInyJ,CAAC,EAAEynC,GAAG0tD,EAAIn1F,GAAGutH,GAAK,EAACC,GAAK,CAAA,EAAE57F,GAAIozD,GAAIkL,GAAIA,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIzgB,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAI08C,IAAI7vD,EAAEypD,CAAC,CAAC,EAAEoiE,GAAIhsH,CAAC,CAAC,CACjM,SAAS4jN,IAAIzjN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,OAAAA,EAAEwkB,GAAIppL,CAAC,EAAEH,EAAEG,EAAE,EAAEX,EAAEQ,GAAG,KAAKR,GAAGgmG,GAAIu/D,EAAE8+C,GAAI1jN,EAAE,CAAC,EAAE2kK,EAAE3kK,EAAE,EAAE+sH,EAAE,CAAC,CAAC43C,EAAE53C,GAAG1nB,GAAIu/D,EAAE,OAAOtvF,GAAGt1E,EAAE,CAAC,CAAC,EAAEypD,EAAEhJ,GAAIzgD,EAAE,CAAC,EAAER,EAAE,CAACiqD,EAAKjqD,IAAGI,EAAE,IAAI2zB,GAAG+xE,GAAGs/D,EAAE++C,GAAI/jN,CAAC,EAAE6zB,EAAE,IAAIsP,IAAInjC,CAAC,EAAEm4I,GAAI/3I,EAAE,EAAEyzB,CAAC,GAASmxI,CAAC,CACjM,SAASg/C,IAAG5jN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAgD,IAA9CA,EAAE67G,IAAKxmC,GAAG70E,EAAE,GAAI,EAAC,MAAM,EAAE,IAAIm2C,IAAK,GAAG,EAAEsT,EAAE,GAAS5pD,EAAEkmG,GAAG/lG,CAAC,EAAE,GAAI,EAACH,EAAE,GAAE,GAAK4zB,EAAEyvB,EAAGrjD,EAAE,GAAI,EAAC,EAAE,EAAE4pD,IAAIjqD,EAAE,GAAGi2C,IAAOgU,EAAE,GAAM8R,GAAI8/C,GAAI9/C,GAAI/7D,EAAEi0B,EAAE,GAAE,CAAE,EAAE,EAAE,EAAEA,EAAE,GAAI,CAAA,EAAE,OAAQj0B,EAAE,GAAG,IAAIA,GAAG,CAAC,CAClM,SAAS+xG,IAAGvxG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAi0B,GAAG,GAAMA,EAAE,IAAI5zB,EAAEG,EAAE,GAAGyzB,EAAEg2B,EAAEzpD,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,GAAGyzB,EAAEj0B,EAAEQ,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,GAAGyzB,GAAUA,EAAE,IAAI5zB,EAAE,EAAE4pD,EAAEzpD,EAAE,GAAGyzB,EAAE,GAAGj0B,EAAEQ,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,GAAG,GAAGyzB,IAAO5zB,EAAE,EAAE4pD,EAAE,EAAEjqD,EAAEQ,EAAE,GAAGyzB,EAAE,IAAU6rC,GAAGz/D,EAAEi3G,GAAIrtD,EAAEqtD,GAAIt3G,EAAEu3G,EAAG,CAAC,CAClM,SAASmwE,GAAIlnL,EAAE,CAAgH,GAA/G6jN,KAAK,OAAOA,IAAI,IAAI,OAAO,iFAAiF,GAAM,CAACA,IAAI,KAAK7jN,CAAC,EAAG,MAAM0lC,EAAI,IAAIqQ,GAAI+tK,GAAI9jN,EAAE,GAAG,CAAC,EAAE,OAAO,WAAWA,CAAC,CAAC,CAClM,SAASo+L,IAAIp+L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA+D,IAA7Di0B,EAAE,IAAIoR,EAAIhlC,EAAEokE,EAAGk9G,GAAI8O,GAAI,GAAGjwL,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE8zC,GAAIj0C,EAAEA,EAAE,MAAM,EAAML,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAMK,EAAE4pD,EAAE,CAAC,IAAGh2B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEg2B,EAAE6sI,IAAIt2L,EAAEypD,EAAE5pD,CAAC,GAAG,OAAO4zB,CAAC,CAClM,SAASuxK,IAAIhlM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgD,IAA9CA,EAAEo0B,EAAE,EAAE,EAAEzzB,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG90H,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEG,EAAE,EAAMiqD,EAAE,EAAEA,EAAEpqD,EAAE,EAAE,OAAOoqD,IAAK5pD,GAAGg9D,GAAIpT,EAAEpqD,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAEoqD,CAAC,EAAE,EAAE,GAAG5pD,EAAE,EAAE,EAAE,QAAQ,GAAGA,EAAE,EAAE,EAAE,QAAQ,EAAGL,GAAG,EAAIA,GAAG,EAAGQ,EAAE,EAAEypD,CAAC,EAAEjqD,CAAE,CAClM,SAASwvF,IAAK,CAACA,GAAItqF,EAAI+iJ,GAAI,IAAIj2F,GAAI,YAAY,CAAC,EAAEk2F,GAAI,IAAIl2F,GAAI,cAAc,CAAC,EAAEm2F,GAAI,IAAIn2F,GAAI,eAAe,CAAC,EAAEo2F,GAAI,IAAIp2F,GAAI,iBAAiB,CAAC,EAAEq2F,GAAI,IAAIr2F,GAAI,WAAW,CAAC,EAAEs2F,GAAI,IAAIt2F,GAAI,aAAa,CAAC,CAAC,CAClM,SAASuwI,IAAI/hM,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,GAAGyzB,EAAE,EAAG,MAAMiS,EAAI,IAAImN,GAAI,0BAA0B,CAAC,EAAO,GAAGpf,EAAEzzB,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,0BAA0B,CAAC,EAAO,OAAOpf,GAAG,GAAGA,GAAGzzB,EAAE,EAAEA,GAAG,EAAE,EAAEuzM,GAAIvzM,CAAC,GAAGuzM,GAAI9/K,CAAC,EAAE8/K,GAAIvzM,EAAEyzB,CAAC,EAAE,CAClM,SAASswL,GAAI/jN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAe,IAAbQ,EAAE,IAAI4jE,GAAIzjE,CAAC,EAAQH,EAAE,GAAG,MAAM,CAACA,EAAE,EAAE02H,GAAI12H,CAAC,EAAEA,EAAE,GAAG,MAAMA,EAAE,GAAG,GAAGqjD,EAAGrjD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAI,GAAkB,GAAhBR,EAAE6jD,EAAGyxH,GAAI90K,CAAC,EAAE,EAAE,EAAK0rE,EAAGlsE,EAAE,GAAG,EAAe,IAAZoqD,EAAEvG,EAAG7jD,EAAE,GAAG,EAAMG,EAAE,EAAEA,EAAEi0B,EAAE,OAAOj0B,IAAKi0B,EAAEj0B,CAAC,EAAE,GAAGiqD,CAAC,CAAI,CAClM,SAASu6J,GAAIhkN,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAc6lL,GAAI7lL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAIs1G,GAAI7lL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,aAAayqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,YAAYyqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,QAAQyqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,QAAQyqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CAClM,SAAS0c,IAAGnwC,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVlxI,EAAE,IAAIutC,GAAQvX,EAAEzpD,EAAER,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAA6C,GAA1CK,EAAE4pD,EAAEjqD,CAAC,EAAEutH,EAAEv3E,GAAG31C,EAAE,GAAE,CAAE,EAAE8kK,EAAEv7G,GAAI31B,EAAEs5F,EAAEv3E,GAAG31C,EAAE,GAAI,CAAA,CAAC,EAAK8kK,GAAG,KAAM,MAAMj/H,EAAI,IAAImN,GAAI,kBAAkBk6E,CAAC,CAAC,EAAG,KAAK,GAAG1iD,GAAK,EAAC,IAAIpyC,GAAIxE,CAAC,EAAE,CACnM,SAASwwL,IAAIjkN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEw2F,GAAI5gJ,EAAE,OAAO,aAAao0B,CAAC,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACnM,SAASurB,IAAK,CAACA,GAAIlmB,EAAIw/M,KAAK56H,GAAG,EAAGqpC,IAAKwxF,IAAI,IAAItmJ,GAAIumJ,GAAIF,GAAG,EAAE32E,EAAI,CAAC,EAAE82E,IAAI,IAAIxmJ,GAAIymJ,IAAI/2E,EAAI,GAAG,CAAC,EAAEA,EAAI,CAAC,EAAEg3E,IAAI,IAAI1mJ,GAAI2mJ,IAAIj3E,EAAI,CAAC,CAAC,EAAUk3E,IAAI,IAAI5mJ,GAAI6mJ,GAAIrc,EAAG,EAAUsc,IAAI,IAAI9mJ,GAAI+mJ,GAAI,CAAC,EAAEC,IAAIlyF,GAAImyF,IAAIpyF,EAAG,CACnM,SAASqyF,IAAI/kN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiB,IAAfvtH,EAAEi0B,GAAG,EAAEgpJ,GAAID,GAAQ/yH,EAAEjqD,EAAE,EAAE,GAAI,EAAC,GAAI,EAACiqD,EAAE,GAAE,GAAsB,IAAjB5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAMsjE,EAAE7pE,EAAGgwB,GAAGlzE,EAAE,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE,GAAI,EAACktH,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAEnkF,EAAI5oC,EAAE,EAAE,EAAEkjD,EAAG7jD,EAAE,EAAE,EAAE,CAAC,EAAEupC,EAAI5oC,EAAE,EAAE,EAAEkjD,EAAG7jD,EAAE,EAAE,EAAE,EAAE,CAAC,CAAG,CACnM,SAASu2I,IAAI51I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAG4zB,GAAG,MAAM,CAACzzB,EAAE,EAAE,KAAK,GAAGyzB,CAAC,EAAG,MAAA5zB,EAAE0rE,EAAG93C,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,KAAK,GAAGuoB,GAAIwtE,GAAG/1F,CAAC,CAAC,EAAQiS,EAAI,IAAIkN,GAAI8iH,GAAI11J,EAAE,EAAE,GAAI,EAAC,YAAYA,EAAE,EAAE,GAAI,EAAC,GAAI,EAAC,sCAAsCH,EAAE,GAAG,CAAC,CAAE,CACnM,SAASmlN,IAAIhlN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAmB,IAAjBA,EAAE,IAAIisI,GAAIzrI,EAAE,EAAE,CAAC,EAAQR,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIiqD,GAAGyoB,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAMu6D,EAAG6uD,EAAIn/D,GAAGygE,EAAG,EAAG+6F,IAAK,CAAA,IAAIlrJ,EAAGtmC,CAAC,IAAYyxL,GAAIz7J,EAAE,EAAEw0D,GAAIj+G,EAAE,EAAE,CAAC,EAAEH,CAAC,EAAEylF,GAAI9lF,CAAC,EAAEopC,EAAInV,EAAE,EAAEg2B,CAAC,EAAE,CACpM,SAAS07J,IAAInlN,EAAEyzB,EAAE,CAAC,GAAGA,EAAE,EAAG,OAAOyvB,EAAG0lE,EAAIn1F,EAAE,GAAGy2F,EAAG,EAAG04F,IAAG,EAAG,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE3M,IAAIxiL,CAAC,EAAE,IAAK,GAAE4xB,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIrhB,EAAG,EAAEgzM,IAAIplN,EAAE,EAAEyzB,CAAC,CAAE,MAAO4xB,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIrhB,EAAG,CAAE,CACpM,SAASizM,IAAIrlN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAEkD,EAAK,KAAK,MAAM/C,EAAE,GAAG,OAAOA,EAAE,EAAE+jK,GAAI/jK,EAAE,IAAIsY,GAAG,GAAG46B,EAAIlzC,EAAE,CAAC,GAAGA,EAAE,GAAGA,EAAE,GAAG,OAAOA,EAAE,EAAE8jK,IAAI9jK,EAAE,IAAIqY,EAAG,GAAG66B,EAAIlzC,EAAE,CAAC,IAAG,EAAGyzB,EAAEw5E,GAAIxnB,GAAI1iF,EAAK,KAAK,MAAMlD,CAAC,CAAC,CAAC,EAAE4zB,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEzzB,EAAE,CAAC,EAASyzB,CAAC,CACpM,SAAS+jL,IAAK,CAACllG,GAAK,EAAC7pC,GAAI,KAAK,IAAI,EAAE,KAAK,GAAGq2B,EAAG,EAAG85C,IAAK,KAAK,EAAE,IAAIx9F,GAAI,IAAItP,GAAI,KAAK,GAAG+oC,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG,KAAK,GAAGF,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG,KAAK,GAAGF,GAAG,EAAEC,EAAG,EAAE,IAAIC,GAAI,CAAC,GAAG,KAAK,EAAE,IAAI1kB,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,CACrM,SAASi1J,IAAItlN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAA0I,MAArI,EAAAxW,GAAImnC,GAAGwuC,EAAIn1F,GAAGy2F,IAAM09D,IAAK,CAAC,IAAgBn+H,EAAEh2B,EAAE,EAAE,EAAKzzB,IAAIgxF,GAAK,EAAC0sD,KAASj0F,EAAE,IAAIkhC,GAAK,EAAC6+D,OAAoB3pJ,EAAEqjD,EAAG0lE,EAAIn/D,GAAGn8B,GAAK,EAAC4jJ,GAAK,EAAC,GAAG,EAAKrxK,GAAG89I,IAA6B,CACrM,SAAS4nE,IAAIvlN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAA0I,MAArI,EAAAxW,GAAImnC,GAAGwuC,EAAIn1F,GAAGy2F,IAAM09D,IAAK,CAAC,IAAgBn+H,EAAEh2B,EAAE,EAAE,EAAKzzB,IAAIgxF,GAAK,EAAC4sD,KAASn0F,EAAE,IAAIkhC,GAAK,EAAC6+D,OAAoB3pJ,EAAEqjD,EAAG0lE,EAAIn/D,GAAGn8B,GAAK,EAAC4jJ,GAAK,EAAC,GAAG,EAAKrxK,GAAGg+I,IAA6B,CACrM,SAAS2nE,IAAIxlN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA2D,IAAzDmtH,EAAE/sH,EAAE,EAAEJ,EAAEI,EAAE,EAAE2kK,EAAE,IAAIvjG,GAAI,CAAC2rD,EAAE,EAAE,CAACA,EAAE,EAAEA,EAAE,EAAEntH,EAAE,EAAEmtH,EAAE,EAAEA,EAAE,EAAEntH,EAAE,EAAEmtH,EAAE,CAAC,EAAMtjE,EAAEh2B,EAAEj0B,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAIK,GAAGy8M,GAAI33C,EAAE9kK,EAAE,CAAC,EAAEktH,EAAE,EAAE,CAAC43C,EAAE,EAAE53C,EAAE,EAAE,CAAC43C,EAAE,EAAE53C,EAAE,EAAE43C,EAAE,EAAE53C,EAAE,EAAEntH,EAAE,EAAEmtH,EAAE,EAAE43C,EAAE,EAAE53C,EAAE,EAAEntH,EAAE,CAAC,CACrM,SAASk6F,IAAK,CAACA,GAAIp1F,EAAI42I,IAAI,IAAI5mF,GAAI,kBAAkB,CAAC,EAAE6mF,GAAI,IAAI7mF,GAAI,kBAAkB,CAAC,EAAE8mF,IAAI,IAAI9mF,GAAI,qBAAqB,CAAC,EAAE+mF,GAAI,IAAI/mF,GAAI,mBAAmB,CAAC,EAAEgnF,IAAI,IAAIhnF,GAAI,wBAAwB,CAAC,CAAC,CACrM,SAASslB,IAAIh6E,EAAE,CAACylN,GAAG,EAAG,IAAIhyL,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAK,OAAO,KAA6C,IAAxCypD,EAAEzpD,EAAE,OAAOR,EAAEiqD,EAAE,EAAEh2B,EAAEwwC,EAAG4rF,GAAGC,GAAI,GAAGtwJ,EAAE,GAAG,CAAC,EAAMK,EAAE,EAAEA,EAAE4pD,EAAE5pD,IAAKR,EAAEW,EAAEH,CAAC,EAAER,EAAE,IAAIA,GAAG,KAAKo0B,EAAE5zB,EAAE,CAAC,EAAE6lN,GAAIrmN,GAAG,CAAC,EAAEo0B,EAAE5zB,EAAE,EAAE,CAAC,EAAE6lN,GAAIrmN,EAAE,EAAE,EAAE,OAAOisE,GAAI73C,EAAE,EAAEA,EAAE,MAAM,CAAC,CACrM,SAAS4zJ,IAAGrnL,EAAE,CAACilG,GAAI,EAAC,IAAIxxE,EAAE5zB,EAAE4pD,EAAe,OAAbA,EAAEzpD,EAAE,EAAE,OAAcypD,EAAG,CAAA,IAAK,GAAE,OAAOy3D,IAAG,IAAK,GAAE,OAAAztF,EAAEyvB,EAAG28H,IAAG,IAAI3nJ,EAAIl4B,CAAC,CAAC,EAAE,EAAE,EAASglG,IAAGvxE,EAAE,GAAE,EAAGA,EAAE,GAAE,CAAE,EAAE,QAAQ,OAAA5zB,EAAEqjD,EAAGimF,GAAInpI,EAAEikE,EAAGk9C,GAAGC,GAAI,GAAGphH,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAS,IAAIkwC,GAAGrwC,CAAC,CAAE,CAAC,CACtM,SAAS8lN,IAAI3lN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAwC,IAAtCt5F,EAAE,IAAIkR,GAAI9kC,EAAE,IAAI8kC,GAAIosG,GAAIt9G,EAAEzzB,CAAC,EAAE+wI,GAAIlxI,EAAEG,CAAC,EAAQH,EAAE,GAAGA,EAAE,GAAmB,IAAhBL,EAAE0jD,EAAGoyD,GAAIz1G,CAAC,EAAE,EAAE,EAAMktH,EAAE,IAAI70F,EAAI14B,EAAE,CAAC,EAAEutH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAK1tH,EAAE,IAAGoqD,EAAEpqD,EAAE,EAAE0xI,GAAIt9G,EAAEg2B,CAAC,EAAEsnF,GAAIlxI,EAAE4pD,CAAC,GAAI,OAAOh2B,CAAC,CACtM,SAASyrK,GAAIl/L,EAAEyzB,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,OAAO0tE,GAAGnhG,EAAE,GAAGsyG,GAAK,EAACm0D,IAAK,EAAC,IAAK,GAAE,OAAOtlE,GAAGnhG,EAAE,GAAGsyG,GAAG,EAAGo0D,IAAG,EAAG,IAAK,GAAE,OAAOvlE,GAAGnhG,EAAE,GAAGsyG,GAAK,EAACq0D,IAAK,EAAC,IAAK,GAAE,OAAOxlE,GAAGnhG,EAAE,GAAGsyG,KAAMs0D,MAAM,QAAQ,OAAOv8F,GAAG,EAAGA,GAAG,EAAG+b,EAAI,CAAC,CACtM,SAASw/H,IAAI5lN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEK,EAAEmjG,IAAIvvE,EAAEzzB,EAAE,CAAC,EAAEypD,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE,EAAEL,EAAEQ,EAAE,EAAE,EAAE,OAAO,EAAKA,EAAE,EAAE,EAAE,QAAQ,GAAGkjD,EAAGo4B,GAAIt7E,EAAE,EAAER,CAAC,EAAE,GAAG,EAAE,GAAGiqD,GAAG,EAAEvG,EAAGo4B,GAAIt7E,EAAE,EAAER,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE0jD,EAAGo4B,GAAIt7E,EAAE,EAAER,CAAC,EAAE,GAAG,EAAE,GAAOopC,EAAI5oC,EAAE,EAAE,IAAIq3E,IAAI5tB,CAAC,CAAC,CAAE,CACtM,SAASo8J,IAAI7lN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAe,OAAbiqD,EAAEq8J,IAAI9lN,EAAEyzB,EAAE5zB,CAAC,EAAK4pD,GAAG,EAAUA,EAAKitB,GAAIjjD,GAAGy2F,EAAG,EAAG67E,GAAK,GAAErvH,GAAI72E,EAAEkmM,EAAG,GAAGvmM,EAAEs/D,GAAI5b,EAAG0lE,EAAIn1F,EAAEsyK,EAAG,EAAE,EAAE,EAAE,EAAE7iJ,EAAG0lE,EAAI/oH,EAAEkmM,EAAG,EAAE,EAAE,EAAE,CAAC,EAAEvmM,EAAE,EAAEumN,GAAI/lN,EAAEyzB,EAAE5zB,CAAC,EAAEL,EAAE,GAAGumN,GAAI/lN,EAAEH,EAAE4zB,CAAC,EAASj0B,GAASwmN,IAAIhmN,EAAEyzB,EAAE5zB,CAAC,CAAC,CACtM,SAASomN,IAAIjmN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGt5F,EAAE,GAAG,EAAE,CAAW,IAAVg2B,EAAE,IAAI7c,GAAQmgF,EAAEusC,GAAI7lI,EAAE,CAAC,EAAEs5F,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,EAAE,EAAEtoE,GAAGgF,EAAEomH,GAAIxwK,CAAC,CAAC,EAAEG,EAAEH,EAAE,EAAEG,EAAE,EAAE0jD,EAAG0lE,EAAIvpH,GAAGgkL,GAAG,EAAG6iC,KAAM,EAAE,EAAE,EAAE1mN,EAAE,EAAE0jD,EAAG0lE,EAAIvpH,EAAE8mN,GAAG,EAAE,EAAE,EAAE,EAAEF,IAAIjmN,EAAEypD,EAAEw9G,GAAIpnK,EAAE4pD,EAAE,EAAEzpD,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CACtM,SAASomN,IAAIpmN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAwB,GAAnB/sH,EAAE,GAAGyzB,GAAiBowG,IAAI7jI,EAAEA,EAAE,EAAEyzB,CAAC,EAAG,OAAOzzB,EAAE,EAAgC,IAA9BX,EAAEW,EAAE,EAAEypD,EAAEzpD,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAER,GAAGH,EAAEoqD,GAAG,EAAEA,EAAQA,EAAE,EAAEpqD,GAAGQ,EAAEikI,GAAI9jI,EAAER,EAAE,EAAK,EAAKK,EAAE,GAAGL,GAAGK,EAAE,GAAG4zB,GAAGs5F,EAAEvtH,EAAEH,EAAEG,GAAOiqD,EAAEjqD,EAAEA,GAAGH,EAAEoqD,GAAG,EAAEA,EAAE,OAAOsjE,CAAC,CACtM,SAASs5F,IAAIrmN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE68J,IAAItmN,EAAEyzB,EAAE,EAAI,EAAEm4F,GAAI/rH,EAAE,yBAAyB4pD,CAAC,EAAEs6J,GAAItwL,EAAEylF,EAAG9hE,EAAGmvK,IAAG,CAAC,EAAEpiJ,GAAI,IAAI,EAAE,CAAC,IAAIx0C,GAAG,CAAC,CAAC,EAAE8yH,GAAIhvH,GAAGzD,GAAG,EAAGo5I,GAAK,GAAE26C,GAAItwL,EAAEylF,EAAG9hE,EAAGmvK,IAAG,CAAC,EAAEpiJ,GAAI,IAAI,EAAE,CAAC,IAAIxlD,GAAG,CAAC,CAAC,EAAE6nM,GAAIxmN,EAAEyzB,EAAE,KAAK5zB,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CACtM,SAASgsH,GAAI7rH,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAG,KAAM,MAAM0lC,EAAI,IAAIoN,GAAI,6BAA6B,CAAC,EAAM9yC,EAAE,IAAMA,EAAE,IAAGyzB,GAAG6vB,GAAK,EAACyyG,GAAItwE,GAAI,KAAK,KAAK,EAAEwqF,EAAG,GAAGjwK,EAAE,EAAEq8D,GAAI6pH,GAAIzyJ,EAAEzzB,EAAE,CAAC,CAAC,EAAE,MAAOA,EAAE,EAAEA,EAAE,GAAGggK,GAAIhgK,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAK,CACtM,SAASymN,GAAIzmN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAoC,IAAlCA,EAAE,IAAI9c,GAAIk5D,GAAIp8C,EAAE,IAAI2L,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAMH,EAAE,IAAIs8D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAI83G,GAAG9lL,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,GAAG,EAAEgmG,GAAIp8C,EAAE,IAAI2L,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE,OAAAoyE,GAAIp8C,EAAE,IAAI2L,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASypD,CAAC,CACtM,SAASi9J,IAAI1mN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGrlK,EAA6B,IAA1BI,EAAEJ,EAAE,EAAE,OAAOH,EAAE,IAAIyxG,GAAIlxG,CAAC,EAAMilK,GAAGxlK,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGysD,GAAG,EAAGC,IAAK,IAAIijB,GAAI3vE,CAAC,EAAEwlK,EAAE,GAAI,GAAGD,EAAE1hH,EAAG2hH,EAAE,GAAE,EAAG,EAAE,EAAEF,EAAEn4B,GAAIhtI,EAAEolK,EAAE,CAAC,EAAE73C,EAAE,IAAIlG,IAAI7mH,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAEk9J,IAAI55F,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE43C,CAAC,CAAG,CACtM,SAAS0T,GAAG5kJ,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAE,GAAGsQ,EAAGtmC,CAAC,IAAIsmC,EAAGl6D,CAAC,EAAG,MAAO,GAAK,GAAG0rE,EAAG1rE,EAAE,EAAE,EAAE,CAAC4pD,EAAEvG,EAAGrjD,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO4zB,EAAE,GAAI,GAAEg2B,EAAE,MAAMh2B,EAAE,GAAGg2B,CAAC,CAAC,OAAOzpD,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,MAAO,GAAW,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CAAC,MAAO,EAAK,CACvM,SAAS8oC,GAAI9oC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAE4zB,EAAE,GAAI,EAAIzzB,EAAE,GAAGA,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAE,GAAGH,EAAE,EAAEG,EAAE,EAAE,EAAE,OAAO,IAAIA,EAAE,EAAE,GAAGA,EAAE,KAAQA,EAAE,EAAE,GAAGH,EAAE,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAE,OAAO,IAAIA,EAAE,EAAE,GAAGA,EAAE,GAAG,CACvM,SAASqtK,IAAIrtK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA0B,OAAxBA,EAAEQ,EAAE,EAAEyzB,EAAEj0B,EAAE,EAAEiqD,EAAEjqD,EAAE,EAAEK,EAAEL,EAAE,EAASA,EAAE,EAAE,EAAC,CAAE,IAAK,GAAEK,EAAE,GAAGG,EAAE,EAAE,EAAE,EAAE,EAAEypD,EAAE,GAAG,EAAE,MAAM,IAAK,GAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,IAAK,GAAE5zB,EAAE,EAAE4zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEg2B,EAAE,EAAE,MAAM,IAAK,GAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAE,CAAC,CACvM,SAASmzL,IAAI5mN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,GAAGiqD,EAAEh2B,GAAGj0B,EAAEK,EAAG,MAAM6lC,EAAI,IAAImN,GAAI,2EAA2E,CAAC,EAAE,OAAA7yC,EAAE,EAAEyzB,EAAGzzB,EAAE,EAAEyzB,EAAGzzB,EAAE,EAAEypD,IAAIzpD,EAAE,EAAEypD,GAAGzpD,EAAE,EAAEH,EAAGG,EAAE,EAAEH,EAAGG,EAAE,EAAER,IAAIQ,EAAE,EAAER,GAAUQ,CAAC,CACvM,SAASqrL,IAAIrrL,EAAE,CAAC,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO6mN,IAAI3jK,EAAGljD,EAAE,GAAG,CAAC,EAAO,GAAGurE,EAAGvrE,EAAE,GAAG,EAAG,OAAOmpL,IAAIjmI,EAAGljD,EAAE,GAAG,CAAC,EAAO,GAAGurE,EAAGvrE,EAAE,EAAE,EAAG,OAAOyjN,IAAIvgK,EAAGljD,EAAE,EAAE,CAAC,EAAO,MAAM0lC,EAAI,IAAImN,GAAIi0K,IAAIlF,GAAG,IAAIluK,GAAIwlE,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAACnkE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACvM,SAAS+mN,IAAI/mN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAS,IAAPtlK,EAAE,GAAS0tH,EAAE,EAAEA,EAAEtjE,EAAEsjE,IAAK1tH,EAAEA,EAAEQ,EAAEktH,CAAC,GAAG,EAAE,GAAGvtH,GAAG,EAAG40I,GAAIv0I,EAAE4pD,EAAEzpD,EAAE,EAAEyzB,CAAC,EAAEs5F,EAAEt5F,MAAM,CAAuB,IAAtBkxI,EAAE,GAAGnlK,EAAEH,EAAEA,EAAEQ,EAAEktH,CAAC,GAAG43C,GAAG,EAAM53C,EAAE,EAAEA,EAAEt5F,EAAE,EAAEs5F,IAAK/sH,EAAE+sH,CAAC,EAAEltH,EAAEktH,EAAEtjE,CAAC,IAAIjqD,EAAEK,EAAEktH,EAAEtjE,EAAE,CAAC,GAAGk7G,EAAE3kK,EAAE+sH,CAAC,EAAEltH,EAAEktH,EAAEtjE,CAAC,IAAIjqD,EAAE,EAAEutH,CAAC,CAAC,OAAO1tH,CAAC,CACxM,SAAS2nN,GAAIhnN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,GAAGt5F,EAAE,IAAIk3D,GAAG,EAAG2+D,KAAM,IAAIjqJ,EAAE,IAAIwxG,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAA6B,GAAzBG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAE0tH,EAAEvtH,EAAE,EAAE,EAAE,EAAKutH,GAAGu8B,IAAKtpJ,EAAE,EAAE,EAAER,EAAE,EAAE,EAAE,EAAE,CAAC,GAAGiqD,GAAGzpD,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,GAAG5zB,EAAG,MAAO,GAAO,MAAO,EAAK,CACxM,SAAS8xG,IAAG3xG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAo0B,GAAG,GAAG5zB,EAAEG,EAAE,EAAE+2G,GAAOtjF,EAAE,IAAIp0B,EAAEQ,IAAI4zB,EAAEj0B,EAAEQ,EAAE,GAAGyzB,EAAE5zB,GAAG,GAAG4zB,EAAEg2B,EAAEzpD,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,GAAGyzB,GAAUA,EAAE,IAAIp0B,EAAE,EAAEG,EAAEK,IAAI4zB,EAAE,GAAGg2B,EAAEzpD,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,GAAG,GAAGyzB,IAAOp0B,EAAE,EAAEG,EAAE,EAAEiqD,EAAE5pD,IAAI4zB,EAAE,IAAU6rC,GAAG7V,EAAEqtD,GAAIt3G,EAAEs3G,GAAIz3G,EAAE03G,EAAG,CAAC,CACzM,SAASgoE,IAAI/+K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE,KAAK,EAAEiqD,EAAE,KAAK,EAAEzpD,IAAIw0F,GAAG,EAAG+sC,IAAK/hI,EAAEi0B,EAAE5zB,CAAC,EAAE,KAAK,EAAEupG,GAAG+3E,GAAI,CAAC32G,EAAIylH,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAACzwL,EAAE,OAAOA,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE4pG,GAAGyb,GAAG,CAACr6C,EAAI2pD,EAAG,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC30H,EAAE,OAAOA,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI64M,GAAI5kL,EAAE5zB,CAAC,CAAC,CACzM,SAASonN,IAAIjnN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAsF,IAApFzpD,EAAE,EAAE,IAAIu0C,IAAIuqD,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,OAAOjjG,EAAE,EAAE,EAAE,MAAM,EAAMypD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEh2B,EAAE5zB,EAAE,EAAE,EAAE22E,GAAGx2E,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAEG,EAAE,EAAEknN,IAAIl2G,GAAGhxG,EAAE,CAAC,CAAC,CAAC,CACzM,SAASmnN,IAAInnN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEwpC,GAAIhpC,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAE,IAAI6b,IAAI89C,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAEA,EAAE,EAAE68K,GAAIjpJ,EAAE,CAAC,EAAE5zB,EAAE,EAAE68K,GAAIjpJ,EAAE,CAAC,EAAE5zB,EAAE,GAAGqmM,GAAG,EAAG1mM,EAAEi0B,EAAE,EAAE,EAAE,EAAEj0B,IAAImrF,GAAK,EAAC0hC,KAAM7sH,GAAGiqJ,IAAK5pJ,EAAE,GAAG4pD,EAAEh2B,EAAE,EAAE,EAAE,EAAEg2B,GAAG4iE,IAAK5iE,GAAGggG,IAAK5pJ,EAAE,EAAE4zB,EAAE,EAAE,IAAIqrE,EAAG,EAAGmE,IAAKpjG,EAAE,EAAE4zB,EAAE,EAAE,GAAG2vE,EAAG,CACzM,SAASgkH,IAAIpnN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAc,IAAZA,EAAE69E,GAAI19E,EAAE09E,GAAQzzB,EAAE,IAAIvxB,EAAIwvJ,GAAI1nL,CAAC,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEh2B,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,GAAGG,GAAGyzB,EAAEj0B,EAAGA,EAAEi0B,EAAGA,EAAEp0B,IAAIA,EAAEo0B,GAAG,OAAAj0B,GAAG09E,KAAM19E,EAAE,IAAIH,GAAG69E,KAAM79E,EAAE,IAAW,IAAIs3D,GAAI42E,EAAI/tI,CAAC,EAAE+tI,EAAIluI,CAAC,CAAC,CAAC,CAC1M,SAASgoN,IAAIrnN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAA,EAAEmyM,GAAIloJ,GAAGs/B,GAAK,EAACulD,IAAK9uI,EAAEuD,EAAK,KAAK,IAAI/C,EAAE,CAAC,EAAEH,EAAEkD,EAAK,KAAK,IAAI0wB,EAAE,EAAEzzB,EAAE,CAAC,EAAKH,EAAEL,IAAGA,EAAEK,EAAE4pD,EAAE+kF,IAAI3uI,EAAEkD,EAAK,KAAK,IAAI/C,EAAE,CAAC,EAAKH,EAAEL,IAAGA,EAAEK,EAAE4pD,EAAEglF,IAAI5uI,EAAEkD,EAAK,KAAK,IAAI0wB,EAAE,EAAEzzB,EAAE,CAAC,EAAKH,EAAEL,IAAGA,EAAEK,EAAE4pD,EAAE8kF,IAAW9kF,CAAC,CAC1M,SAASm3I,IAAI5gM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA4C,IAA1CQ,EAAE4zB,EAAE,EAAE,EAAE,EAAEp0B,EAAE,IAAIo7H,GAAIxc,GAAIxqF,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAMj0B,EAAE,IAAIo3B,GAAIv3B,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAoD,GAA/CiqD,GAAGyoB,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAMiqD,EAAE,EAAE,GAAG5pD,EAAG,OAAA8gM,GAAI3gM,EAAEyzB,EAAEg2B,EAAE,CAAC,EAAS,GAAM,MAAO,EAAK,CAC1M,SAAS69J,IAAItnN,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcgkN,GAAIhkN,CAAC,GAAEyzB,EAAE,IAAI+8C,GAAI+2I,GAAG,EAAE,CAACvnN,EAAE,GAAGw7D,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAGzzB,EAAE,CAAC,EAAE,GAAG,EAAEw7D,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,IAAK5qB,EAAE,GAAG,KAAKA,GAAGzzB,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,GAAG,EAASyzB,EAAE,EAAC,CAC3M,SAAS+zL,IAAIxnN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsC,IAApCA,EAAE8C,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAEj0B,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAEypD,EAAE,EAAMsjE,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAK43C,EAAE,GAAGtlK,EAAE,GAAI,CAAA,EAAE,CAAC,GAAGoqD,GAAG5pD,EAAG,OAAA4nN,GAAIznN,EAAE+sH,CAAC,EAASvhE,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,KAAKp0B,EAAEA,EAAE,GAAI,EAAC,EAAEoqD,CAAC,CAAE,MAAM/jB,EAAI,IAAIwM,GAAI8uC,GAAInhF,EAAEohF,GAAIx3B,CAAC,CAAC,CAAC,CAC3M,SAASgpI,IAAIzyL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAQ,GAANh2B,EAAEzzB,EAAE,EAAKyzB,GAAG,GAAGA,GAAG,GAAGA,GAAG,EAAG,OAAOgzC,GAAK,EAACA,GAAG,EAAGihJ,GAAyB,IAAhBj+J,EAAEk+J,GAAI3nN,CAAC,EAAEH,EAAE,MAAY4zB,EAAEzzB,EAAE,IAAI,GAAGyzB,GAAG,GAAGA,GAAG,GAAO5zB,IAAGA,GAAG4mE,GAAG,EAAGA,GAAK,EAAO,IAAID,GAAI,CAAC,GAAGmsH,GAAI9yL,EAAE4pD,CAAC,EAAEA,EAAE5pD,GAAE8yL,GAAI9yL,EAAE8nN,GAAI3nN,CAAC,CAAC,EAAE,OAAOypD,CAAE,CAC3M,SAASohF,IAAG7qI,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAGG,EAAE,GAAGA,EAAEH,EAAUqgJ,GAAGlgJ,EAAEH,EAAE,aAAa,EAAK4zB,EAAE,GAAGA,EAAE5zB,EAAUqgJ,GAAGzsH,EAAE5zB,EAAE,WAAW,EAAS+uJ,GAAG,wDAAwD11C,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAACopE,EAAI95G,CAAC,EAAE85G,EAAIvtI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5M,SAAS2yJ,IAAGl/H,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAIvtH,EAAE,EAAEH,EAAEo0B,EAAE,OAAOj0B,EAAEH,EAAEG,IAAI,CAACutH,EAAEt5F,EAAEj0B,CAAC,EAAE,GAAG,CAACutH,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,GAAI,IAAGltH,EAAEiuG,IAAGjuG,EAAEktH,CAAC,GAAGA,EAAE,CAAC,EAAE,GAAE,CAAE,OAAO/sH,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAGypD,EAAEzpD,EAAEy2C,GAAE,EAAGq1E,IAAGvgD,EAAG9hB,EAAE,GAAG,EAAEvG,EAAGuG,EAAE,GAAG,EAAE,GAAE,EAAGA,CAAC,MAAO,OAAM/jB,EAAI1lC,CAAC,CAAC,CAAC,CAAC,OAAOH,CAAC,CAC5M,SAAS8gM,GAAI3gM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAwF,IAAtFQ,GAAG4zB,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIm0L,IAAIn0L,EAAE,EAAEi2I,IAAIj2I,EAAE5zB,EAAE4zB,EAAE,CAAC,CAAC,EAAEp0B,EAAEo0B,EAAE,EAAE,EAAE,EAAEzzB,EAAE,EAAEX,CAAC,EAAE0D,EAAK,KAAK,IAAI/C,EAAE,EAAEX,CAAC,EAAEo0B,EAAE,EAAE,EAAE,CAAC,EAAMj0B,EAAE0jD,EAAG0lE,EAAIn1F,EAAE,GAAGy2F,EAAK,EAAC29F,GAAG,EAAG,EAAE,EAAE,GAAI,EAACroN,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEsjF,EAAIr5B,EAAEk5G,IAAKvyF,GAAK,EAAC,GAAI,CAAG,CAC5M,SAAS03I,IAAI9nN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEuoN,IAAIt0L,CAAC,EAAEqvD,EAAIrvD,GAAGy2F,EAAG,EAAG89F,IAAKxoN,CAAC,EAAKA,IAAGiqD,EAAEyzB,GAAM+3B,GAAIj1G,EAAE,EAAER,CAAC,IAAIiqD,EAAEvG,EAAG4W,GAAGm7C,GAAIj1G,EAAE,EAAER,CAAC,CAAC,EAAE,EAAE,EAAE,GAAGK,EAAEqjD,EAAGo4B,GAAI7nD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEwf,GAAImnC,GAAGwuC,EAAI/oH,EAAE+nL,EAAG,CAAC,CAAC,GAAGpuH,GAAIx5D,EAAER,EAAE+tI,EAAIxqI,EAAK,KAAK,IAAImgD,EAAG0lE,EAAI/oH,EAAEkmM,EAAG,EAAE,EAAE,EAAE,EAAEt8I,CAAC,CAAC,CAAC,EAAE,CAC5M,SAASw+J,IAAIjoN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAS,IAAPlxI,EAAE,EAAE,GAAOkxI,EAAEunB,GAAIz4J,GAAGu+D,GAAG,EAAG0tC,GAAK,EAAC,GAAI,EAACilC,EAAE,GAAE,GAAqB,IAAhB53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAMnlK,EAAE,IAAI04B,EAAI60F,EAAE,CAAC,EAAEvtH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAEoqD,EAAE,EAAE,EAAEh2B,GAAGp0B,IAAIA,EAAE,EAAE,EAAEQ,EAAE,GAAG4pD,CAAC,EAAEpqD,EAAE,EAAE,GAAG4oN,IAAIjoN,EAAEX,EAAEQ,CAAC,GAAI4zB,EAAE,EAAE,CAAC,CAC5M,SAASy0L,GAAIloN,EAAE,CAAC,IAAIyzB,EAAE,KAAK,EAAE,IAAImZ,GAAI,KAAK,EAAE5sC,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAE,KAAK,EAAEA,EAAE,EAAGA,EAAE,EAAiE,KAAK,EAAEA,EAAE,EAAvE,KAAK,GAAGyzB,EAAEyvB,EAAGxH,GAAIo/F,EAAE,EAAE,CAAC,EAAE,IAAI91D,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAiB,KAAK,EAAEzzB,EAAE,CAAC,CAC5M,SAASmoN,IAAGnoN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAqD,IAAnDi0B,EAAE4nF,GAAI7/C,GAAI,IAAIgV,GAAI,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE3wE,EAAE,GAASL,EAAE,IAAIo3B,GAAI52B,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAKiqD,GAAGyoB,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,GAAGK,IAAI4zB,EAAE,GAAG,KAAOA,EAAE,GAAG,GAAGg2B,EAAE5pD,EAAE,GAAM,OAAQ4zB,EAAE,GAAG,IAAIA,GAAG,CAAC,CAC7M,SAASsrK,IAAI/+L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,GAAG,EAAAQ,GAAG4zB,EAAE,GAAsB,IAAZj0B,GAAGK,EAAE4zB,GAAG,EAAE,EAAMg2B,EAAE,EAAEA,EAAEjqD,EAAE,EAAEiqD,EAAGpqD,GAAGw9D,GAAIppC,EAAEg2B,EAAEzpD,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAE,EAAE,GAAGqsD,GAAI91G,EAAEyzB,EAAEg2B,GAAGoT,GAAIh9D,EAAE4pD,EAAE,EAAEzpD,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEH,EAAE4pD,EAAE,CAAC,EAAE,EAAE,EAAG,EAACoT,GAAIh9D,EAAE4pD,EAAE,EAAEzpD,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEH,EAAE4pD,EAAE,CAAC,EAAEpqD,CAAE,CAC7M,SAAS+oN,IAAIpoN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAExlK,EAAEW,EAAE,EAAE,EAAE2kK,EAAEtlK,EAAE,EAAEO,EAAEP,EAAE,EAAEW,EAAE,EAAE,IAAI+kF,GAAInlF,CAAC,EAAEmtH,EAAE/sH,EAAE,EAAE,EAAE,EAAE,EAAEypD,EAAEsjE,EAAE,EAAE43C,EAAE53C,EAAE,CAAC,EAAE9oD,EAAGopD,GAAGC,GAAI,GAAG,EAAE,EAAE,CAAC,EAAE9tH,EAAEmlK,EAAE53C,CAAC,EAAE63C,EAAE73C,EAAE43C,EAAE,OAAO,EAAEA,EAAE53C,EAAE,CAAC,EAAE9oD,EAAGopD,GAAGC,GAAI,GAAG,EAAE,EAAE,CAAC,EAAEu3C,EAAEpxI,GAAG5zB,EAAE,EAAEglK,EAAEhuC,GAAI72H,EAAE,EAAER,EAAEolK,CAAC,EAAE/tC,GAAI72H,EAAE,EAAEypD,EAAEjqD,CAAC,CAAC,CAC7M,SAAS6oN,IAAIroN,EAAE,CAAC,IAAIyzB,EAAE,KAAK,EAAE,IAAIoR,EAAI,KAAK,EAAE,IAAI+E,GAAI,KAAK,GAAGnW,EAAEyvB,EAAGxH,GAAIg9F,EAAE,EAAE,CAAC,EAAE,IAAI1zD,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAEwwC,EAAG4gD,GAAGsP,GAAI,IAAIr1B,EAAG,EAAGoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEjjG,CAAC,CAC7M,SAASsoN,IAAItoN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,EAAE,EAAE,QAAQ,EAAE,CAAoB,IAAnB5zB,EAAEm/M,IAAIh/M,EAAEyzB,CAAC,EAAEj0B,EAAE,GAAY,CAACK,GAAGu9M,GAAIp9M,EAAEyzB,EAAE,EAAI,EAAEj0B,EAAE,GAAKK,EAAEm/M,IAAIh/M,EAAEyzB,CAAC,EAAEj0B,GAAG49M,GAAIp9M,EAAEyzB,EAAE,EAAK,EAAEg2B,EAAEqmH,GAAIr8I,CAAC,EAAIzzB,EAAE,GAAGA,EAAE,EAAE,GAAGypD,CAAC,EAAEzpD,EAAE,EAAEq9K,IAAIr9K,GAAG68D,GAAI,EAAEppC,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAG,EAAC60L,IAAItoN,EAAEypD,CAAC,CAAC,CAAC,CAC7M,SAASqnH,GAAI9wK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA6B,GAA3BiqD,EAAEqgG,GAAI9pJ,EAAE,GAAI,EAACyzB,CAAC,EAAE5zB,EAAE4zB,EAAEzzB,EAAE,GAAI,EAAIH,EAAE,EAAG,GAAI4pD,EAAsC,GAAGA,EAAE,GAAE,EAAIjqD,EAAEQ,EAAE,GAAGypD,CAAC,EAAEjqD,GAAG,EAAEQ,EAAE,GAAGR,CAAC,EAAEs/G,GAAI9+G,EAAEypD,CAAC,MAAO,OAAM/jB,EAAI,IAAImN,GAAI6iH,GAAIjsG,EAAE,GAAE,EAAGy4H,EAAG,CAAC,MAApH,OAAMx8I,EAAI,IAAImN,GAAI01K,IAAI90L,EAAE+0L,GAAG,CAAC,OAAgGvmC,GAAIjiL,EAAEH,EAAE4pD,CAAC,CAAE,CAC7M,SAASkjF,GAAI3sI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAgJ,GAA9IA,EAAE,KAAK4zB,EAAE,GAAS83C,EAAGvrE,EAAE,GAAG,IAAGyzB,EAAE,GAAK5zB,EAAEqjD,EAAGljD,EAAE,GAAG,EAAE,GAAMyzB,GAAM83C,EAAGvrE,EAAE,GAAG,IAAGyzB,EAAE,GAAK5zB,EAAE,GAAGqjD,EAAGljD,EAAE,GAAG,EAAE,GAAOyzB,GAAM83C,EAAGvrE,EAAE,GAAG,IAAGyzB,EAAE,GAAK5zB,EAAE,GAAGqjD,EAAGljD,EAAE,GAAG,EAAE,GAAM,CAACyzB,EAAG,MAAMiS,EAAI,IAAI0M,GAAIiiK,GAAG,CAAC,EAAE,OAAOx0M,CAAC,CAC7M,SAAS4oN,IAAIzoN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGzpD,EAAE,EAAE,CAAC,KAAMyzB,EAAE,GAAI,GAA2B,GAAzB5zB,EAAEqjD,EAAGzvB,EAAE,GAAE,EAAG,EAAE,EAAEg2B,EAAE5pD,EAAE,GAAI,EAAI0rE,EAAG9hB,EAAE,EAAE,GAAIvG,EAAGuG,EAAE,EAAE,EAAE,GAAG4mD,KAAU,CAACrwG,EAAE,GAAGypD,EAAE,GAAI,GAAEi/J,IAAIj/J,EAAE,GAAE,GAAI,IAAI5pD,EAAE,GAAI,GAAE,KAAM,OAAA4zB,EAAE,GAAI,EAAQ,GAAM,MAAO,EAAK,KAAM,QAAOA,EAAE,GAAI,CAAC,CAC7M,SAASk1L,IAAI3oN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGzpD,EAAE,EAAE,CAAC,KAAMyzB,EAAE,GAAI,GAA2B,GAAzB5zB,EAAEqjD,EAAGzvB,EAAE,GAAE,EAAG,EAAE,EAAEg2B,EAAE5pD,EAAE,GAAI,EAAI0rE,EAAG9hB,EAAE,EAAE,GAAIvG,EAAGuG,EAAE,EAAE,EAAE,GAAG4mD,KAAU,CAACrwG,EAAE,GAAGypD,EAAE,GAAI,GAAEi/J,IAAIj/J,EAAE,GAAE,GAAI,IAAI5pD,EAAE,GAAI,GAAE,KAAM,OAAA4zB,EAAE,GAAI,EAAQ,GAAM,MAAO,EAAK,KAAM,QAAOA,EAAE,GAAI,CAAC,CAC7M,SAASihI,GAAI10J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA4C,IAA1CA,EAAE6nK,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAE,EAAEk7G,EAAE3kK,EAAE,EAAER,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAI,CAAA,EAAE,CAAC,GAAGQ,GAAG4pD,EAAG,OAAOsjE,EAAE,EAAEtjE,EAAEk7G,EAAE53C,EAAE,CAAC,CAAE,GAAGltH,GAAG4pD,EAAG,OAAOk7G,EAAO,MAAMj/H,EAAI,IAAIwM,GAAI8uC,GAAInhF,EAAEohF,GAAIx3B,CAAC,CAAC,CAAE,CAC7M,SAASm/J,IAAI5oN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,EAAE,EAAE,EAAE,QAAQ,EAAG,OAAO,KAAoB,IAAVX,EAAE,IAAI8hE,GAAQ1X,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAEK,EAAE,EAAER,EAAE,EAAE0D,EAAK,KAAK,IAAI1D,EAAE,EAAEG,EAAE,CAAC,EAAEH,EAAE,GAAGG,EAAE,EAAE,OAAAH,EAAE,IAAIW,EAAE,EAAE,EAAE,OAAO,GAAGyzB,EAASp0B,CAAE,CAC9M,SAASwpN,IAAI7oN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIG,EAAE,IAAIqxG,GAAGphC,GAAGk3G,GAAI9mL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAO,CAACmnG,GAAIl9C,CAAC,GAAG,EAAE,CAACk9C,GAAIl9C,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,KAAcpqD,EAAEypN,IAAI9oN,EAAEypD,EAAE5pD,EAAE,IAAI4rC,GAAG,EAAEpsC,EAAE,EAAE,OAAO,IAAIo0B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEp0B,GAAQ,CAC9M,SAAS0pN,IAAI/oN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAgC,IAA9BK,EAAE,IAAI+sC,GAAI6X,GAAG5kD,EAAEG,EAAE,CAAC,EAAEypD,EAAE,IAAI/d,GAAU7rC,EAAE,GAAG,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAG,EAAE,MAAMqyE,GAAIryE,EAAE,GAAG,CAAC,EAAE+jG,GAAI/jG,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAEL,EAAEwpN,IAAIhpN,EAAEyzB,EAAE,EAAI,EAAEj0B,GAAGopC,EAAI6gB,EAAE,EAAEh2B,CAAC,EAAE,KAAMg2B,EAAE,EAAE,EAAE,QAAQ,GAAGh2B,EAAEyvB,EAAG+3H,IAAIxxH,CAAC,EAAE,GAAG,EAAEu/J,IAAIhpN,EAAEyzB,EAAE,EAAK,CAAE,CAC9M,SAASonE,IAAK,CAACA,GAAIn2F,EAAIsyJ,IAAI,IAAI/hG,GAAImnG,GAAI,CAAC,EAAEnF,GAAI,IAAIhiG,GAAI,UAAU,CAAC,EAAEiiG,GAAI,IAAIjiG,GAAI,MAAM,CAAC,EAAEkiG,GAAI,IAAIliG,GAAI,SAAS,CAAC,EAAEmiG,GAAI,IAAIniG,GAAI,SAAS,CAAC,EAAEoiG,GAAI,IAAIpiG,GAAI,OAAO,CAAC,EAAEqiG,GAAI,IAAIriG,GAAI,UAAU,CAAC,EAAEsiG,GAAI,IAAItiG,GAAI,SAAS,CAAC,CAAC,CAC9M,SAASqnJ,GAAIt8M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEtjE,EAAE1mD,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEp0B,EAAE0D,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,EAAEuD,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,EAAEs5F,EAAEhqH,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,CAAC,EAAKj0B,EAAEiqD,IAAG5pD,EAAE4pD,EAAEA,EAAEjqD,EAAEA,EAAEK,GAAKktH,EAAE1tH,IAAGQ,EAAER,EAAEA,EAAE0tH,EAAEA,EAAEltH,GAAE+lG,IAAI5lG,EAAEypD,EAAEpqD,EAAEG,EAAEiqD,EAAEsjE,EAAE1tH,CAAC,CAAC,CAC9M,SAAS0nM,IAAK,CAACA,GAAIriM,EAAIm5M,IAAI3kG,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAACy+I,IAAIC,GAAIC,GAAIC,IAAIC,GAAIC,GAAI5F,EAAG,CAAC,EAAE9F,IAAI1kG,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAACy+I,IAAI,QAAQC,GAAIK,GAAI,aAAa,CAAC,EAAEtQ,IAAI//F,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAACy+I,IAAI,WAAW,UAAUO,EAAG,CAAC,EAAExiB,GAAI,IAAI1iG,GAAG,CAC9M,SAAS4gH,GAAIllN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,GAAGo0B,GAAG5zB,EAAU,CAAA4pD,EAAEh2B,EAAE,GAAG2sD,GAAIpgF,EAAEypD,EAAE,CAAC,EAAEjqD,EAAEiqD,EAAE,EAAKjqD,IAAGH,EAAEoqD,EAAE,EAAE2jB,GAAIptE,EAAEX,EAAE,EAAEA,EAAE,CAAC,EAAE+gF,GAAIpgF,EAAER,EAAE,CAAC,EAAEiqD,EAAEw0D,GAAIz+G,CAAC,SAASA,GAAGiqD,EAAE5pD,EAAE,GAAGwgF,GAAIrgF,EAAEypD,EAAE,CAAC,EAAEjqD,EAAEiqD,EAAE,EAAKjqD,IAAGH,EAAEoqD,EAAE,EAAEytB,GAAIl3E,EAAEX,EAAE,EAAEA,EAAE,CAAC,EAAEghF,GAAIrgF,EAAER,EAAE,CAAC,EAAEiqD,EAAEw0D,GAAIz+G,CAAC,SAASA,GAAE,CAC/M,SAASo1K,GAAI50K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG6pD,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,EAAG,IAAIsjE,EAAE/sH,EAAE,EAAEA,EAAE,CAAC,EAAE2kK,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAGtlK,EAAE0tH,EAAE43C,CAAC,EAAEnrG,GAAI/P,EAAEpqD,EAAE,IAAIgoK,IAAIrnK,EAAEX,EAAEQ,CAAC,CAAC,EAAG,OAAAL,EAAE0jD,EAAG4W,GAAGm7C,GAAIxrD,EAAE,EAAEh2B,CAAC,CAAC,EAAE,GAAG,EAAEj0B,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,GAAG,GAAGk3B,IAAIwsB,EAAGo4B,GAAI97E,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAG,CAAC,EAASA,CAAC,CAC/M,SAASotF,IAAK,CAACA,GAAIloF,EAAI+gJ,GAAI,IAAIx0F,GAAI,eAAe,CAAC,EAAEy0F,GAAI,IAAIz0F,GAAI,aAAa,CAAC,EAAE00F,GAAI,IAAI10F,GAAI,aAAa,CAAC,EAAE20F,GAAI,IAAI30F,GAAI,wBAAwB,CAAC,EAAE40F,GAAI,IAAI50F,GAAI,eAAe,CAAC,EAAE60F,GAAI,IAAI70F,GAAI,eAAe,CAAC,CAAC,CAC/M,SAASw4J,IAAIzpN,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,OAAO8+F,EAAG,EAAG+5C,GAAI,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,OAAO/5C,EAAK,EAACmxC,GAAI,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,OAAOnxC,EAAK,EAACmE,GAAI,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,OAAOnE,IAAMsE,GAAI,QAAQ,OAAOtE,EAAG,EAAG85C,EAAI,CAAC,CAChN,SAAS8wE,IAAI1pN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,EAAE,QAAQ,EAAU,IAAMH,EAAEivL,KAAKjyH,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAEipE,GAAG,EAAMppE,IAAI+xF,GAAK,EAAChwB,KAAM/hE,GAAGgiE,GAAY,GAAYs2E,GAAI1/B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,CAAC,EAAE,IAAIuZ,GAAG,EAAE,IAAIgmB,IAAI9L,CAAC,CAAC,EAAC,CAChN,SAASk2L,GAAI3pN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,GAAG,CAACW,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAA8C,IAA7CzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAKg2B,EAAE5pD,EAAE,CAAC4pD,IAAIA,EAAE,IAAIs3F,IAAKl7C,GAAIp8C,EAAE,EAAEh2B,CAAC,EAAMp0B,EAAEW,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAI,EAACp0B,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAEG,EAAE,GAAGi0B,GAAGk2L,GAAI3pN,EAAER,EAAE,EAAEiqD,CAAC,EAAEjqD,EAAE,GAAGi0B,GAAGk2L,GAAI3pN,EAAER,EAAE,EAAEiqD,CAAC,EAAEo8C,GAAIp8C,EAAE,EAAEjqD,CAAC,EAAE,OAAOiqD,CAAC,CAAC,OAAO,IAAI,CAChN,SAAS2sC,IAAK,CAACA,GAAI1xF,EAAIujJ,GAAI,IAAIp0F,GAAI,YAAY,CAAC,EAAEq0F,GAAI,IAAIr0F,GAAI,WAAW,CAAC,EAAEs0F,GAAI,IAAIt0F,GAAI,iBAAiB,CAAC,EAAEu0F,GAAI,IAAIv0F,GAAI,eAAe,CAAC,EAAEw0F,GAAI,IAAIx0F,GAAI,qBAAqB,CAAC,EAAEylE,GAAI,IAAIzlE,GAAI,oBAAoB,CAAC,CAAC,CAChN,SAASkI,GAAI/7D,EAAEyzB,EAAE,CAAC,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAO0xC,IAAInlE,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAO,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAO2xC,IAAIplE,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,EAAO,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAOuxC,IAAIhlE,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,EAAO,MAAMiS,EAAI,IAAImN,GAAIi0K,IAAIlF,GAAG,IAAIluK,GAAIwlE,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC1wC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAChN,SAASo9C,IAAG7wE,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAmD,GAAjD,KAAK,EAAEQ,EAAEypD,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAEj0B,EAAGiqD,EAAIA,EAAE,EAAJ,EAAMoqB,GAAGh0E,EAAEL,CAAC,EAAKK,IAAIL,EAAE,EAAE,GAAgC,IAA5B,KAAK,EAAGiqD,EAAOA,EAAE,EAAP,KAAS,KAAK,EAAEjqD,EAAQK,IAAIL,GAAGu4H,IAAG,IAAI,MAA2B,KAAnB,KAAK,EAAGtuE,EAAOA,EAAE,EAAP,KAAe5pD,KAAI,GAAGi4H,GAAG,IAAI,EAAG,KAAK,EAAErkG,EAAE,KAAK,EAAE,IAAI,CACjN,SAASm2L,IAAI5pN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEh2B,EAAE,EAAEo2L,IAAI7pN,EAAEyzB,CAAC,GAAG5zB,EAAEqjD,EAAGq/B,GAAIviF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAI5zB,GAAGA,GAAGG,EAAE,EAAEyzB,EAAE,EAAE,CAAC,GAAK5zB,EAAE,GAAGA,EAAE,GAAG4zB,EAAE,EAAE,GAAG5zB,EAAE,EAAE,GAAG4zB,EAAE,CAAC,EAAEg2B,EAAEvG,EAAGo/B,GAAItiF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAIg2B,GAAGzpD,EAAE,EAAEypD,EAAE,CAAC,GAAGh2B,EAAE,GAAKg2B,EAAE,GAAGA,EAAE,GAAGh2B,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,GAAGg2B,CAAC,EAAE8nB,GAAIvxE,EAAE,EAAEyzB,EAAE,CAAC,EAAY,CACjN,SAAS+xK,IAAIxlM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAuB,GAArB5pD,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAKyvB,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAG,CAAC5zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,CAACA,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI47E,KAAMC,GAAK,GAAEiuI,IAAI9pN,EAAEyzB,CAAC,EAAEg2B,EAAE4yI,IAAIr8L,EAAEyzB,CAAC,EAAEs2L,GAAI/pN,EAAEyzB,CAAC,IAAIkqE,KAAM68C,MAAO/wF,GAAG,EAAEzpD,EAAE,GAAGH,EAAE,EAAE,EAAE4pD,CAAC,CACjN,SAASm8I,IAAI5lM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAuB,GAArB5pD,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAKyvB,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAG,CAAC5zB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,CAACA,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI47E,KAAMC,GAAK,GAAEmuI,IAAIhqN,EAAEyzB,CAAC,EAAEg2B,EAAE6yI,IAAIt8L,EAAEyzB,CAAC,EAAEs2L,GAAI/pN,EAAEyzB,CAAC,IAAIkqE,KAAM68C,MAAO/wF,GAAG,EAAEzpD,EAAE,GAAGH,EAAE,EAAE,EAAE4pD,CAAC,CACjN,SAASwgK,IAAIjqN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAY,IAAVA,EAAE,IAAIwlC,EAAQ4kB,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7gB,EAAIvpC,EAAE,IAAIqvD,GAAI7uD,EAAE,EAAI,CAAC,EAAE+oC,EAAIvpC,EAAE,IAAIqvD,GAAI7uD,EAAE,EAAK,CAAC,EAAEL,EAAE,IAAI6rH,IAAIrrH,CAAC,EAAEgxC,GAAIxxC,EAAE,EAAE,CAAC,EAAEgqI,IAAInqI,EAAEW,EAAE,EAAE,IAAI0zC,GAAIwlE,EAAG9hE,EAAG8yK,IAAG,CAAC,EAAE/lJ,GAAI,IAAI,EAAE,CAAC3kE,CAAC,CAAC,CAAC,CAAC,CAAC,CACjN,SAAS2qN,IAAInqN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE,OAAAxqN,EAAEI,EAAE,EAAEP,EAAEO,EAAE,EAAE4kK,EAAEnxI,EAAE,EAAE9zB,EAAE8zB,EAAE,EAAEoxI,EAAEhlK,EAAE,EAAEI,EAAEJ,EAAE,EAAEilK,EAAEr7G,EAAE,EAAE2gK,EAAE3gK,EAAE,EAAEpqD,EAAEO,EAAED,EAAEF,EAAEmlK,EAAE73C,EAAE83C,EAAEulD,EAAEnqN,EAAE6kK,EAAEtlK,GAAGI,EAAEglK,IAAI3kK,EAAEmqN,IAAI3qN,EAAEE,IAAIklK,EAAEC,GAAGH,GAAGtlK,GAAGwlK,EAAEC,GAAG/3C,GAAGntH,EAAEglK,IAAIplK,EAAEulK,GAAG1lK,GAAGY,EAAEmqN,GAAGr9F,GAAGttH,EAAEE,IAAIH,EAAS,IAAI41D,GAAIuvG,EAAEI,CAAC,CAAC,CACjN,SAASslD,GAAIrqN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAG,CAAAQ,EAAE,EAAEyzB,EAAE,CAAC,EAAsC,KAA5BzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAKzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAASg2B,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIpzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK,CAAAk9C,GAAI9mG,CAAC,IAAYL,EAAEK,EAAE,EAAE,EAAEG,EAAE,EAAER,EAAE,CAAC,EAAEopC,EAAI5oC,EAAE,EAAEH,CAAC,EAAEwqN,GAAIrqN,EAAER,CAAC,GAAEQ,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAK,CACjN,SAAS62L,IAAItqN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAM,OAAJA,EAAE,EAASvG,EAAG0lE,EAAIn1F,GAAGnG,GAAK,EAAC4jJ,GAAG,EAAG,GAAG,EAAE,EAAG,CAAA,IAAK,GAAEznH,EAAE,EAAE,CAAC5pD,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,MAAM,IAAK,GAAEypD,EAAE,CAAC5pD,EAAE,MAAM,IAAK,GAAE4pD,EAAE5pD,EAAE,MAAM,IAAK,GAAE4pD,EAAE,EAAE5pD,EAAEG,EAAE,EAAE,EAAEA,EAAE,CAAE,CAAC,OAAA02E,GAAIjjD,GAAGy2F,EAAK,EAAC67E,GAAG,IAAKt8I,GAAGvG,EAAG0lE,EAAIn1F,EAAEsyK,EAAG,EAAE,EAAE,EAAE,GAAUt8I,CAAC,CACjN,SAAS8gK,IAAIvqN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA8E,IAA5EQ,EAAE,GAAG4zB,EAAEzzB,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAEp0B,EAAEW,EAAE,EAAE,GAAGyzB,CAAC,EAAEA,EAAE,GAAGzzB,EAAE,EAAE,GAAE,EAAG+nL,IAAI/nL,EAAE,EAAEX,CAAC,EAAE0oL,IAAI/nL,EAAE,EAAEX,CAAC,EAAEu5G,GAAI54G,CAAC,EAAMR,EAAE,GAAG+7J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC,IAAIjpC,GAAIzH,CAAC,EAAE,IAAI2H,GAAI3H,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEirH,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEK,EAAE,GAAG4pD,CAAC,GAAG8gK,IAAIvqN,EAAEypD,EAAE5pD,CAAC,CAAE,CACjN,SAAS4qN,GAAIzqN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA8B,OAA5B5pD,EAAEqjD,EAAGulE,GAAIzoH,GAAGgwB,GAAG,EAAGqqJ,GAAK,EAAC,EAAE,EAAKx6K,EAAE,IAAI+7E,GAAK,EAAC02D,GAAG,GAAI7oF,EAAEvG,EAAGulE,GAAIzoH,EAAEksJ,EAAG,EAAE,EAAE,EAAEz4H,EAAE,IAAI2kB,GAAI8K,EAAGulE,GAAIzoH,EAAEu6K,EAAG,EAAE,CAAC,CAAC,EAAK9wH,EAAE,IAAIi1C,GAAG,EAAG++D,GAAK,IAAEhqI,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAIA,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAWA,GAAc,IAAI2nB,EAAI,CACjN,SAASsvK,GAAI1qN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAG,CAACzpD,EAAE,EAAE,CAAW,IAAVypD,EAAE,IAAI7mC,IAAQ/iB,EAAE,IAAI40E,GAAIk2I,GAAI3qN,CAAC,CAAC,EAAEH,EAAE,GAAGA,EAAE,EAAE,MAAO4zB,EAAEyvB,EAAGw2I,GAAI75L,CAAC,EAAE,EAAE,EAAG4zB,EAAE,GAAG48E,IAASnqC,GAAIzc,EAAEh2B,CAAC,EAAE2nJ,GAAI3xH,CAAC,EAAEzpD,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,GAAKk7D,KAAMC,IAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE9yD,EAAE,GAAGA,EAAE,CAAC,EAAEuiE,GAAIhsH,CAAC,EAAE,GAAG,EAAE,CAAC,OAAOA,EAAE,CAAC,CACjN,SAAS4qN,IAAI5qN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEhlK,EAAEsjD,EAAG6/I,GAAG/xF,GAAGv9E,EAAE,CAAC,EAAEwwC,EAAGy0E,GAAGC,GAAI,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAEisB,EAAEnxI,EAAE,EAAE5zB,EAAEywI,IAAI78G,EAAE7zB,EAAE,CAAC,CAAC,EAAEJ,EAAE6wI,IAAI58G,EAAE7zB,EAAE,CAAC,CAAC,EAAE6pD,EAAEs7I,GAAI/kM,EAAE4kK,EAAE/kK,EAAEL,CAAC,EAAEH,EAAEixI,IAAI78G,EAAE7zB,EAAE,CAAC,CAAC,EAAE+kK,EAAEt0B,IAAI58G,EAAE7zB,EAAE,CAAC,CAAC,EAAEmtH,EAAEg4E,GAAI/kM,EAAE4kK,EAAEvlK,EAAEslK,CAAC,EAAKl7G,GAAGsjE,GAAGt5F,EAAE,EAAE5zB,EAAE4zB,EAAE,EAAEj0B,IAAOi0B,EAAE,EAAEp0B,EAAEo0B,EAAE,EAAEkxI,EAAE,CAClN,SAASkmD,IAAI7qN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA8E,IAA5EusH,GAAI/rH,EAAE,0BAA0B,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE,EAAEj0B,EAAE,KAAKiqD,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAQ,CAACj0B,GAAGiqD,EAAE,GAAGA,EAAE,EAAE,GAAGpqD,EAAE6jD,EAAG0tF,GAAInnF,CAAC,EAAE,EAAE,EAAExW,GAAImnC,GAAGwuC,EAAIvpH,GAAGgkL,GAAG,EAAGynC,GAAK,CAAA,CAAC,IAAItrN,EAAEH,GAAKG,GAAGurN,IAAI/qN,EAAE,IAAIigC,GAAIzgC,CAAC,EAAEK,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CAClN,SAAS49K,IAAIz9K,EAAE,CAACw9K,GAAG,EAAG,IAAI/pJ,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAAiqD,EAAEwV,GAAIj/D,EAAEk1E,GAAI,EAAE,CAAC,EAAEzhD,EAAEg2B,GAAG,GAAGzpD,EAAEA,EAAE,OAAO,EAAEypD,CAAC,EAAE5pD,EAAE4pD,GAAG,GAAG,KAAKzpD,EAAE,OAAOypD,EAAE,CAAC,EAAEjqD,EAAE81I,IAAI01E,IAAIv3L,CAAC,EAAMj0B,EAAoDK,GAAG,OAAOL,EAAEu4K,IAAIv4K,GAAGsxB,GAAIjxB,CAAC,EAAEA,EAAG,IAA9EL,EAAEyrN,IAAIx3L,CAAC,EAAEwkH,IAAI+yE,IAAIv3L,EAAEj0B,CAAC,EAAEK,GAAG,OAAOL,EAAEu4K,IAAIv4K,EAAEK,CAAC,IAA8CL,CAAC,CAClN,SAASugJ,GAAI//I,EAAE,CAAC,IAAI2kK,EAAEt6F,GAAK,EAAC,IAAI52C,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGxhD,EAAGvrE,EAAE,EAAE,EAAG,IAAIR,EAAE,EAAEiqD,EAAEzpD,EAAE,KAAK,EAAER,EAAEiqD,EAAE,EAAEjqD,EAAE,EAAEiqD,EAAGk7G,EAAE3kK,EAAE,GAAGR,CAAC,EAAEQ,EAAE,GAAGR,EAAEQ,EAAE,GAAGypD,CAAC,CAAC,EAAEzpD,EAAE,GAAGypD,EAAEk7G,CAAC,MAAgC,KAAxBlxI,EAAEzzB,EAAE,GAAI,EAACX,EAAEW,EAAE,GAAGA,EAAE,GAAE,CAAE,EAAQyzB,EAAE,GAAE,EAAGp0B,EAAE,GAAE,GAAIQ,EAAE4zB,EAAE,GAAE,EAAGs5F,EAAE1tH,EAAE,GAAE,EAAGo0B,EAAE,GAAGs5F,CAAC,EAAE1tH,EAAE,GAAGQ,CAAC,CAAG,CACnN,SAASqrN,IAAIlrN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEosH,GAAIn4F,EAAE,2BAA2B,CAAC,EAAE5zB,EAAEqzC,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAK,EAACk/J,GAAG,CAAE,CAAC,EAAE/iI,EAAEvW,EAAImnC,EAAGuuC,EAAI5oH,EAAE0sL,EAAG,CAAC,CAAC,EAAEltL,EAAEgiE,GAAIte,EAAG0lE,EAAI5oH,EAAE0lL,EAAG,EAAE,GAAG,CAAC,EAAErgI,GAAIksG,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIuN,GAAG,EAAE,IAAI69E,IAAIvrF,EAAE4pD,EAAEjqD,CAAC,CAAC,EAAEqsH,GAAIp4F,CAAC,CAAC,CACnN,SAAS03L,GAAInrN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyB,IAAvBA,EAAE,EAAEtlK,EAAE,IAAIslC,GAAIosG,GAAI1xI,EAAEo0B,CAAC,EAAQp0B,EAAE,GAAGA,EAAE,GAAoC,IAAjC0tH,EAAE7pE,EAAGoyD,GAAIj2G,CAAC,EAAE,GAAG,EAAEslK,GAAGqhC,IAAIj5E,EAAE,EAAEA,EAAE,CAAC,EAAMvtH,EAAE,IAAI04B,EAAI60F,EAAE,CAAC,EAAEvtH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEK,EAAEqjD,EAAGo4B,GAAIt7E,EAAE,EAAEypD,EAAE,CAAC,EAAE,GAAG,EAAE5pD,EAAE,IAAI8kK,GAAGwmD,GAAInrN,EAAEH,CAAC,GAAI,OAAO8kK,CAAC,CACnN,SAASymD,IAAIprN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE6sK,IAAI,IAAI,EAAE54I,IAAImiE,GAAK,EAAC26B,IAAKvnF,GAAI,KAAK,EAAEhpC,EAAE,CAAC,EAAEgpC,GAAI,KAAK,EAAEhpC,EAAE,CAAC,EAAEH,GAAG0wH,GAAIvnF,GAAI,KAAK,EAAEhpC,EAAE,CAAC,EAAEgpC,GAAI,KAAK,EAAEhpC,EAAE,CAAC,EAAEmnN,IAAI,KAAKnnN,CAAC,EAAEypD,EAAEizH,GAAI18K,EAAE,CAAC,EAAER,EAAEk9K,GAAI18K,EAAE,CAAC,EAAEwiN,IAAI,KAAK/4J,EAAEjqD,EAAEA,CAAC,EAAE,KAAK,GAAG0mM,GAAK,EAACnjM,EAAK,KAAK,IAAI0mD,EAAEjqD,CAAC,EAAE,GAAI,CACnN,SAAS6rN,IAAIrrN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAwB,GAAtB+kK,EAAEzhH,EAAGoqB,GAAIttE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAK2kK,GAAG,KAAM,IAAInlK,EAAEmlK,EAAEtlK,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAG,KAAK,GAAI,EAAEoqD,EAAE5pD,EAAMG,EAAE,EAAE,GAAG,IAAOJ,EAAE,IAAI09G,IAAIt9G,EAAEH,EAAE4zB,CAAC,EAAEg2B,EAAE,GAAG7pD,CAAC,GAAE2rE,EAAG9hB,EAAE,GAAG,EAAEvG,EAAGuG,EAAE,GAAG,EAAE,GAAGzpD,EAAE,CAAC,EAAEypD,EAAE,GAAE,GAAIzpD,EAAE,GAAGypD,EAAE,GAAG,IAAI,CAAC,CACnN,SAASzM,KAAK,CAAC,IAAIh9C,EAAE,OAAGsrN,IAAWpoK,EAAG6nG,IAAKngG,GAAK,EAACC,IAAKs1D,EAAG,EAAE,IAAI,GAAEorG,IAAG,EAAGvrN,EAAEkjD,EAAGqoB,EAAGgwC,IAAK3wD,KAAMC,IAAKs1D,EAAG,EAAE,GAAG,EAAE5E,GAAI1wD,GAAIs1D,EAAG,EAAE,IAAIF,IAAI,GAAG,EAAEqrG,IAAI,GAAKE,IAAIxrN,CAAC,EAAEyrN,IAAIzrN,CAAC,EAAEw5D,IAAK1O,GAAG,EAAGC,KAAK/qD,EAAE,IAAI4mB,GAAG,EAAEkgL,GAAI9mM,CAAC,EAAEupD,GAAIsB,GAAIs1D,GAAIngH,CAAC,EAASA,EAAC,CACnN,SAAS0rN,IAAG1rN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAqJ,OAAnJA,EAAEk9M,GAAG18M,EAAEH,EAAEq5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAACmhJ,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEx4L,CAAC,EAAEj0B,EAAE,IAAIA,EAAEk9M,GAAG18M,EAAEH,EAAEq5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE/2C,CAAC,GAAMj0B,EAAE,EAAU,IAAMiqD,EAAE,EAAEjqD,EAAS,GAAI,CACpN,SAAS0sN,IAAGlsN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAqJ,OAAnJA,EAAEk9M,GAAG18M,EAAEH,EAAEq5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAACmhJ,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEx4L,CAAC,EAAEj0B,EAAE,IAAIA,EAAEk9M,GAAG18M,EAAEH,EAAEq5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE/2C,CAAC,GAAMj0B,EAAE,EAAU,IAAMiqD,EAAE,EAAEjqD,EAAS,GAAI,CACpN,SAAS4xC,IAAIpxC,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAmB,IAAjB0iK,IAAInsN,CAAC,EAAEypD,EAAE,IAAI5kB,EAAQhlC,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE+oC,EAAI6gB,EAAE,IAAI6G,GAAI78B,EAAE,EAAI,CAAC,EAAEmV,EAAI6gB,EAAE,IAAI6G,GAAI78B,EAAE,EAAK,CAAC,EAAEwtK,IAAIjhM,EAAE,CAAC,EAAE0pI,GAAIjgF,EAAEzpD,EAAE,EAAE,IAAI0zC,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAACnkE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEosN,IAAIpsN,CAAC,CAAC,CACpN,SAAS64L,IAAI74L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAY,IAAVK,EAAE,IAAIklC,GAAQvlC,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEi0B,EAAEyvB,EAAGuG,EAAE,IAAIygE,EAAK,EAACmiG,GAAG,EAAG,EAAE,EAAIp3G,GAAIp1G,EAAE,EAAE4zB,CAAC,GAAG+lC,GAAI35D,EAAE4zB,EAAE,IAAIi0F,IAAIj0F,CAAC,CAAC,EAAEmV,EAAIsa,EAAG4W,GAAGm7C,GAAIp1G,EAAE,EAAE4zB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAEg2B,CAAC,EAAE,OAAO,IAAI07B,GAAI,IAAInuD,GAAIn3B,CAAC,CAAC,CAAC,CACpN,SAASysN,IAAItsN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiC,IAA/BtjE,EAAE,IAAIuxE,IAAIh7H,EAAE,EAAE,EAAE,MAAM,EAAEH,EAAE,KAASR,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAKG,EAAE,GAAGK,IAAG4pD,EAAE,GAAGA,EAAE,GAAG8iK,IAAI9iK,EAAE5pD,EAAE4zB,CAAC,EAAE6iH,GAAI7sF,CAAC,EAAE5pD,EAAEL,EAAE,GAAEutH,EAAEy/F,IAAIhtN,CAAC,EAAIutH,GAAI8jB,GAAIpnF,EAAEsjE,CAAC,EAAQtjE,EAAE,GAAGA,EAAE,GAAG8iK,IAAI9iK,EAAE5pD,EAAE4zB,CAAC,CAAC,CACpN,SAASg5L,IAAIzsN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAmB,IAAjBiqD,EAAE,IAAIgiF,GAAIzrI,EAAE,EAAE,CAAC,EAAQypD,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAE5pD,GAAGqyE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGjqD,EAAE0jD,EAAG0lE,EAAI/oH,GAAGytB,GAAK,EAACo/L,GAAG,EAAG,GAAG,EAAKltN,IAAI28F,GAAG,EAAGsnC,MAAMn+C,GAAI77B,CAAC,EAAE7gB,EAAInV,EAAE,EAAE5zB,CAAC,EAAE62E,GAAI72E,GAAGqqH,EAAG,EAAGmiG,GAAK,GAAEvpI,EAAIjjF,EAAEwsN,GAAIrsN,CAAC,EAAG,CACpN,SAASm8L,IAAIn8L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAyC,IAAvCo0B,EAAEihH,GAAG,IAAI7jC,GAAGphC,GAAGo3G,GAAI7mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,CAAC,EAAM9D,EAAE,IAAIqxG,GAAGphC,GAAGm3G,GAAI5mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEK,EAAE4pD,EAAE,EAAE,EAAEpqD,EAAEq1I,GAAG,IAAI7jC,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,CAAC,EAAEmwB,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEp0B,CAAC,EAAE,OAAOkuI,EAAI95G,CAAC,CAAC,CACpN,SAASk5L,IAAI3sN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkE,IAAhEnB,GAAI/rH,EAAE,yBAAyB,CAAC,EAAEL,EAAE,KAAKH,EAAE,IAAIutC,GAAI6c,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAQ,CAACj0B,GAAGiqD,EAAE,GAAGA,EAAE,EAAE,GAAGsjE,EAAE7pE,EAAG0tF,GAAInnF,CAAC,EAAE,EAAE,EAAExW,GAAImnC,GAAGwuC,EAAImE,GAAGs2D,GAAK,EAACynC,GAAG,CAAE,CAAC,IAAItrN,EAAEutH,GAAGpxD,GAAIt8D,EAAEG,EAAEH,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEutN,IAAI5sN,EAAEX,EAAE4nK,GAAIpnK,EAAE,CAAC,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CACpN,SAASgtN,IAAI7sN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEoqD,EAAEvG,EAAGulE,GAAIzoH,GAAGgwB,GAAK,EAACoxL,GAAK,EAAC,EAAE,EAAE5hN,EAAE,EAAEH,EAAE,EAAEo0B,EAAE,EAAE5zB,EAAE,IAAI4pD,EAAE,IAAI4xC,GAAK,EAACwpD,GAAK,EAAErlJ,GAAGi0B,EAAE,EAAE5zB,EAAE,GAAG,EAAG4pD,EAAE,GAAGq7F,EAAG,IAAItlJ,EAAEi0B,EAAE,EAAE5zB,EAAE,IAAI4zB,EAAE,EAAE5zB,EAAE,IAAI4pD,EAAE,IAAI4xC,KAAMqpD,GAAK,EAAErlJ,GAAGo0B,EAAE,EAAE5zB,EAAE,GAAG,EAAG4pD,EAAE,GAAGk7F,EAAG,IAAItlJ,EAAEo0B,EAAE,EAAE5zB,EAAE,IAAIqlL,GAAIllL,EAAER,EAAEH,CAAC,CAAC,CACpN,SAAS2lK,IAAIhlK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,CAACx5F,EAAGvrE,EAAE,GAAG,EAAE,GAAG65H,GAAI7N,GAAI9oE,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE+5H,GAAI/5H,EAAEH,CAAC,EAAEG,EAAE,EAAE+sH,EAAEs3D,GAAIrkL,EAAE2kK,CAAC,EAAE6f,GAAIxkL,EAAEJ,CAAC,EAAEwkL,GAAIpkL,EAAE4kK,CAAC,EAAE0f,GAAItkL,EAAE6kK,CAAC,EAAEjI,GAAI58J,EAAE8kK,CAAC,EAAEugB,GAAIrlL,EAAE+kK,CAAC,EAAElI,GAAI78J,EAAE,EAAI,EAAE+6J,GAAI/6J,EAAER,CAAC,EAAEQ,EAAE,GAAGX,CAAC,EAAEs9J,GAAI38J,EAAEyzB,CAAC,EAAEg2B,GAAG,OAAOzpD,EAAE,EAAE,KAAKs5D,GAAIt5D,EAAEypD,CAAC,EAAE,CACpN,SAASqjK,IAAI9sN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAE,CAAC,KAAMA,EAAE,EAAE,GAAE,CAAiC,GAAhCyzB,EAAEyvB,EAAGljD,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEH,EAAE4zB,EAAE,GAAI,EAAI83C,EAAG1rE,EAAE,EAAE,GAAIqjD,EAAGrjD,EAAE,EAAE,EAAE,GAAGwwG,KAAU,CAACrwG,EAAE,GAAGH,EAAE,GAAI,GAAE6oN,IAAI7oN,EAAE,GAAE,GAAI,IAAI4zB,EAAE,GAAE,GAAI,KAAM,MAAO,GAAU,EAAEzzB,EAAE,CAAE,CAAC,MAAO,EAAK,KAAM,QAAOA,EAAE,EAAE,CAAE,CACpN,SAASkgJ,GAAGlgJ,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGG,EAAE,EAAG,OAAO4uJ,GAAGm+D,IAAI7zG,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAACtkE,EAAE0tI,EAAIvtI,CAAC,CAAC,CAAC,CAAC,EAAO,GAAGyzB,EAAE,EAAG,MAAMiS,EAAI,IAAImN,GAAIm6K,IAAIv5L,CAAC,CAAC,EAAO,OAAOm7H,GAAG,6CAA6C11C,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAACtkE,EAAE0tI,EAAIvtI,CAAC,EAAEutI,EAAI95G,CAAC,CAAC,CAAC,CAAC,CAAE,CACrN,SAASo5H,GAAI7sJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAQ,GAAN73C,EAAEtjE,EAAE5pD,EAAKktH,EAAE,EAAE,CAACk7D,IAAIx0J,EAAE5zB,EAAE4pD,EAAEpqD,CAAC,EAAE,MAAM,CAA8D,GAA7DO,EAAEC,EAAEL,EAAEmlK,EAAEl7G,EAAEjqD,EAAEolK,EAAEhlK,GAAG+kK,EAAE/kK,GAAG,GAAGitJ,GAAIp5H,EAAEzzB,EAAEJ,EAAEglK,EAAE,CAACplK,EAAEH,CAAC,EAAEwtJ,GAAIp5H,EAAEzzB,EAAE4kK,EAAED,EAAE,CAACnlK,EAAEH,CAAC,EAAKA,EAAE,GAAGW,EAAE4kK,EAAE,CAAC,EAAE5kK,EAAE4kK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAM/kK,EAAE4pD,GAAGoc,GAAGpyC,EAAE5zB,IAAIG,EAAEJ,GAAG,CAAC,EAAE,MAAM,CAACuiL,IAAIniL,EAAEJ,EAAEglK,EAAED,EAAElxI,EAAE5zB,EAAE4pD,EAAEpqD,CAAC,CAAC,CACrN,SAAS4tN,GAAIjtN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAY,IAAVA,EAAE,IAAIqlC,EAAQ4kB,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAKh2B,EAAE,GAAG5zB,CAAC,IAAG+oC,EAAIppC,EAAE,IAAI2uD,GAAItuD,EAAE,EAAI,CAAC,EAAE+oC,EAAIppC,EAAE,IAAI2uD,GAAItuD,EAAE,EAAK,CAAC,GAAGkhM,IAAI/gM,EAAE,CAAC,EAAEwpI,IAAIhqI,EAAEQ,EAAE,EAAE,IAAI0zC,GAAIwlE,EAAG9hE,EAAG8yK,IAAG,CAAC,EAAE/lJ,GAAI,IAAI,EAAE,CAACnkE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrN,SAASktN,IAAIltN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAgB,IAAdA,EAAE6zB,EAAE,EAAEj0B,EAAEi0B,EAAE,EAAE,EAAMkxI,EAAE,IAAIzsI,EAAIt4B,CAAC,EAAE+kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA8F,IAArF53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEtlK,EAAE4kE,EAAGk9G,GAAI8O,GAAI,GAAGzwL,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEg6D,GAAIx5D,EAAE,EAAE+sH,EAAE1tH,CAAC,EAAEQ,EAAEktH,EAAE,EAAE,EAAE,EAAE,EAAEtjE,EAAEsjE,EAAE,EAAE,EAAE,EAAQltH,GAAG4pD,GAAG5pD,GAAGA,EAAE,GAAGL,EAAE,EAAE,OAAOH,EAAEQ,CAAC,EAAE,EAAM,CACrN,SAASk2I,IAAI/1I,EAAEyzB,EAAE,CAA4F,IAA3FzzB,EAAE,EAAE,IAAIssK,GAAItsK,EAAE,CAAC,EAAEg1B,IAAIh1B,EAAE,EAAEA,CAAC,EAAEykD,GAAGzkD,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEolD,GAAIplD,EAAE,CAAC,EAAE6lG,GAAI7lG,EAAE,EAAEyzB,CAAC,EAAEoyE,GAAI7lG,EAAE,EAAE,EAAEyzB,CAAC,EAAEmlF,GAAI54G,CAAC,EAAE44G,GAAI54G,EAAE,CAAC,EAAQA,EAAE,EAAE,EAAE,QAAQ,GAAG+pE,IAAI7mB,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,KAAMA,EAAE,EAAE,EAAE,QAAQ,GAAG+pE,IAAI7mB,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,OAAOA,EAAE,CAAC,CACrN,SAAS21K,GAAI31K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA6B,GAA3BG,EAAEsqJ,GAAI9pJ,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAEh2B,EAAEzzB,EAAE,GAAI,EAAIypD,EAAE,EAAG,GAAIjqD,EAAsC,GAAGA,EAAE,GAAE,EAAIH,EAAEW,EAAE,GAAGR,CAAC,EAAEH,GAAG,EAAEW,EAAE,GAAGX,EAAEQ,CAAC,EAAEi1H,GAAI90H,EAAER,EAAEK,CAAC,MAAO,OAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIl2J,EAAE,GAAE,EAAG0iL,EAAG,CAAC,MAAxH,OAAMx8I,EAAI,IAAImN,GAAI01K,IAAI90L,EAAE+0L,GAAG,CAAC,OAAoGtgC,GAAIloL,EAAEypD,EAAEjqD,EAAEK,CAAC,CAAE,CACrN,SAASu/K,IAAI3rJ,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAkB,GAAhBoqD,EAAEvG,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAMg2B,EAAG,GAAG,CAA8E,GAA7EjqD,EAAE,KAAKK,EAAEkrJ,IAAKngG,GAAG,EAAGC,IAAKsiK,IAAI5kC,IAAI9+H,CAAC,CAAC,CAAC,EAAK5pD,IAAGR,EAAEQ,EAAE,GAAE,EAAKR,IAAIG,EAAEH,EAAE,GAAGg0C,IAAIoW,EAAE,CAAC,CAAC,IAAQjqD,GAAGA,GAAGi0B,EAAG,OAAO2rJ,IAAI5/K,CAAC,CAAE,OAAOQ,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,EAAE,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAE,OAAOyzB,CAAC,CACrN,SAASgtF,GAAIzgH,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6D,GAA3DA,EAAEt5F,GAAG,KAAK,EAAEzzB,EAAE,EAAE,GAAGyzB,CAAC,EAAEj0B,GAAGiqD,EAAEzpD,EAAE,EAAE,IAAI+sH,CAAC,EAAEtjE,GAAQ,IAAI,OAAYjqD,EAAE,QAAQ,EAAGQ,EAAE,EAAE,IAAI+sH,EAAEvtH,CAAC,UAAOH,EAAEstH,IAAI3sH,EAAEyzB,EAAEj0B,CAAC,EAAKH,EAAG,OAAOA,EAAE,GAAGQ,CAAC,EAAG,OAAAgmE,GAAGrmE,EAAEA,EAAE,OAAO,IAAIwuD,GAAIv6B,EAAE5zB,CAAC,CAAC,EAAE,EAAEG,EAAE,EAAE22G,GAAI32G,EAAE,CAAC,EAAS,IAAI,CACtN,SAASotN,IAAIptN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,OAAA8gF,GAAIvqI,EAAE,CAAC,EAAEm2G,GAAIn2G,EAAE,GAAG42F,GAAK,EAACs6B,IAAKA,EAAG,EAAE/a,GAAIn2G,EAAE,EAAEmxH,GAAIA,EAAG,EAAE1nE,EAAE,IAAIrB,GAAIsgD,GAAIj/C,EAAE0nE,IAAK/5B,GAAK,EAACuqC,GAAG,EAAG5nE,EAAG0uD,GAAIh1F,GAAGnF,GAAK,EAACq7K,GAAG,CAAE,IAAI5vI,GAAI69B,GAAG,EAAGoqC,GAAK,GAAEt5B,GAAIj/C,EAAE0nE,GAAIyQ,EAAG,EAAEl5B,GAAIj/C,EAAE0nE,GAAI0Q,EAAG,EAAEthE,IAAIvgE,EAAE,EAAEypD,CAAC,EAAE5pD,EAAE+4M,GAAI54M,EAAE,EAAEyzB,CAAC,EAAS5zB,CAAC,CACtN,SAASuxK,IAAGpxK,EAAE,CAAC,GAAG,CAACA,EAAG,OAAO80C,IAAI,EAACC,IAAG,IAAIthB,EAAEzzB,EAAE,QAAQA,EAAE,QAAS,EAACA,EAAE,GAAGyzB,IAAIzzB,EAAE,CAAC,IAAIH,EAAE4xJ,GAAG,OAAOh+H,CAAC,EAAE,OAAO5zB,EAAEA,EAAE4zB,CAAC,EAAEi+H,GAAG,OAAOj+H,CAAC,CAAC,KAAM,QAAGzzB,aAAa,OAAOA,aAAa+C,EAAK,MAAc,IAAIowB,GAAGnzB,CAAC,EAAc,IAAIszB,GAAGtzB,CAAC,CAAE,CACvN,SAASqtN,IAAIrtN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA4H,OAA1HA,EAAEW,EAAE,EAAEypD,EAAEvG,EAAG25D,GAAI78G,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAEL,EAAEiqD,EAAE,EAAEjqD,EAAE,EAAE8tN,GAAI7jK,CAAC,EAAEjqD,EAAE,EAAE+tN,GAAI9jK,CAAC,EAAEjqD,EAAE,EAAEuD,EAAK,KAAK,IAAIvD,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,GAAG,CAACo0B,IAAIj0B,EAAE,EAAEH,EAAE,GAAGG,EAAE,EAAE,EAAEA,EAAE,EAAEH,EAAE,GAAG,EAASQ,EAAE,EAAC,CAAE,IAAK,GAAEL,EAAE,EAAE,CAACA,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEH,EAAE,CAAE,CAACmuN,GAAI/jK,CAAC,EAAEgkK,GAAIhkK,CAAC,CAAC,CACvN,SAASikK,IAAI1tN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA4H,OAA1HA,EAAEW,EAAE,EAAEypD,EAAEvG,EAAG25D,GAAI78G,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAEL,EAAEiqD,EAAE,EAAEjqD,EAAE,EAAE8tN,GAAI7jK,CAAC,EAAEjqD,EAAE,EAAE+tN,GAAI9jK,CAAC,EAAEjqD,EAAE,EAAEuD,EAAK,KAAK,IAAIvD,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,GAAG,CAACo0B,IAAIj0B,EAAE,EAAEH,EAAE,GAAGG,EAAE,EAAE,EAAEA,EAAE,EAAEH,EAAE,GAAG,EAASQ,EAAE,EAAC,CAAE,IAAK,GAAEL,EAAE,EAAE,CAACA,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEH,EAAE,CAAE,CAACmuN,GAAI/jK,CAAC,EAAEgkK,GAAIhkK,CAAC,CAAC,CACvN,SAASkkK,IAAI3tN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG,CAAAt5F,EAAE,GAAI,EAA2B,IAAlBj0B,EAAE0jD,EAAGzvB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAKA,EAAE,GAAI,GAAE,EAAE,CAACm6L,IAAI5tN,EAAER,EAAEA,EAAE,EAAE,EAAEi0B,CAAC,EAAE,MAAM,CAAK,IAAJ5zB,EAAE,EAAQA,EAAE4zB,EAAE,GAAI,IAAKj0B,EAAE,GAAG,CAACA,EAAE,KAAGH,EAAEmnM,IAAI/yK,EAAE5zB,CAAC,EAAKR,IAAGoqD,EAAEvG,EAAG7jD,EAAE,EAAE,EAAE,EAAE,EAAE0tH,EAAE7pE,EAAG7jD,EAAE,EAAE,GAAG,EAAEuuN,IAAI5tN,EAAER,EAAEutH,EAAEltH,EAAE4pD,EAAEh2B,CAAC,EAAE5zB,EAAE4pD,EAAE,EAAEjqD,EAAEutH,IAAI,CACvN,SAASqpF,IAAIp2M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAuG,IAArGA,EAAE,IAAI5nC,GAAInlF,EAAE,CAAC,EAAEgoE,GAAI+kD,EAAE,IAAIz2G,GAAG,EAAEmd,GAAG+4D,GAAG,EAAG0sB,EAAG9hE,EAAGqgH,IAAG,CAAC,EAAEr+C,EAAI,IAAI,EAAE,CAACs+C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAGp4J,EAAE,EAAMR,EAAE,IAAI64B,EAAI60F,CAAC,EAAE1tH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAEh2B,EAAE5zB,EAAE4zB,EAAE,MAAM,EAAEo6L,IAAIruN,EAAEiqD,CAAC,EAAE,EAAE5pD,CAAE,CACvN,SAASgpL,IAAI7oL,EAAEyzB,EAAE,CAAC2/E,GAAG,EAAG,IAAIvzG,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGo0B,EAAE,EAAE,EAAG,MAAO,GAAoC,IAA9Bp0B,EAAEi6J,GAAI7lI,EAAE,CAAC,EAAE5zB,EAAEqjD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAEoqD,EAAE5pD,EAAQR,EAAE,GAAGA,EAAE,EAAE,GAAE,CAAgB,GAAfG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAK,EAAEg0G,GAAIrzG,EAAEypD,CAAC,GAAG4pD,GAAIrzG,EAAER,CAAC,GAAI,MAAO,GAAMiqD,EAAEjqD,CAAC,CAAC,MAAK,GAAA6zG,GAAIrzG,EAAEypD,CAAC,GAAG4pD,GAAIrzG,EAAEH,CAAC,EAA4B,CACvN,SAASiuN,GAAI9tN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,OAAAD,EAAE,KAAKC,EAAE9kK,EAAE+sH,EAAEtJ,GAAIqhD,EAAE,GAAG,EAAEjlK,EAAE,IAAIkiC,IAAItO,CAAC,EAAE88H,IAAI1wJ,EAAE,EAAEktH,CAAC,EAAE43C,EAAElhD,GAAIqhD,EAAE,GAAG,EAAEr7G,EAAE,IAAIznB,IAAIvO,CAAC,EAAE+8H,IAAI/mG,EAAE,EAAEk7G,CAAC,EAAE/kK,EAAE6jH,GAAIqhD,EAAEuD,EAAG,EAAE7oK,EAAE,IAAIyiC,IAAIxO,CAAC,EAAEg9H,IAAIjxJ,EAAE,EAAEI,CAAC,EAAEglK,EAAEnhD,GAAIqhD,EAAEwD,EAAG,EAAEjpK,EAAE,IAAI6iC,IAAIzO,CAAC,EAAEoxI,GAAGnU,IAAIrxJ,EAAE,EAAEulK,CAAC,EAAEA,GAAUC,CAAC,CACvN,SAAShrC,GAAI75H,EAAEyzB,EAAE,CAACs6L,IAAI/tN,EAAEyzB,CAAC,EAAGzzB,EAAE,EAAE,IAAQA,EAAE,EAAE,EAAE,MAAOA,EAAE,EAAE,IAAQA,EAAE,EAAE,EAAE,MAAUA,EAAE,EAAE,IAAOA,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,MAASA,EAAE,EAAE,KAAQA,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,MAAMA,EAAE,EAAE,IAAQA,EAAE,EAAE,EAAE,MAAUA,EAAE,EAAE,KAAQA,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,KAAK,CACvN,SAASgyM,IAAIv+K,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAM,GAAJA,EAAE,EAAKQ,EAAE,OAAO,EAAG,GAAG,CAACR,EAAE8nM,GAAItnM,EAAEk0J,GAAI72E,EAAG,CAAC,OAAOl9E,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAGR,EAAEQ,EAAQ0lC,EAAI,IAAI8oH,GAAIhvJ,CAAC,CAAC,GAAakmC,EAAI1lC,CAAC,CAAC,CAAE,OAAAypD,GAAG,CAACh2B,EAAE,IAAIA,EAAE,EAAE,IAAI2Q,GAAI3Q,CAAC,GAAGA,EAAE,GAAUp0B,EAAEoqD,EAAE,GAAGpqD,GAAG,EAAE6jD,EAAGwpG,EAAIjjG,EAAEpqD,CAAC,EAAE,EAAE,EAAE,IAAI,CACvN,SAASsrI,IAAG3qI,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAG,OAAO4uJ,GAAGm+D,IAAI7zG,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC,QAAQopE,EAAIvtI,CAAC,CAAC,CAAC,CAAC,EAAO,GAAGyzB,EAAE,EAAG,MAAMiS,EAAI,IAAImN,GAAIm6K,IAAIv5L,CAAC,CAAC,EAAO,OAAOm7H,GAAG,sCAAsC11C,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC,QAAQopE,EAAIvtI,CAAC,EAAEutI,EAAI95G,CAAC,CAAC,CAAC,CAAC,CAAE,CACxN,SAASu6L,IAAIhuN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAGpqD,EAAE,EAAqBm8D,GAAIn8D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAImxE,GAAInxE,EAAE,CAAC,EAAgBi8D,GAAIj8D,EAAE,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACxN,SAAS4uN,IAAIjuN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAGpqD,EAAE,EAAqBm8D,GAAIn8D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAImxE,GAAInxE,EAAE,CAAC,EAAgBi8D,GAAIj8D,EAAE,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACxN,SAAS6uN,IAAIluN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAGpqD,EAAE,EAAqBm8D,GAAIn8D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAImxE,GAAInxE,EAAE,CAAC,EAAgBi8D,GAAIj8D,EAAE,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACxN,SAAS8uN,IAAInuN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAGpqD,EAAE,EAAqBm8D,GAAIn8D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAImxE,GAAInxE,EAAE,CAAC,EAAgBi8D,GAAIj8D,EAAE,EAAE,GAAGo0B,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CACxN,SAAS2hK,IAAIhhK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA8B,IAA5B9kK,EAAEG,EAAE,EAAE,EAAE,OAAOR,EAAE87E,GAAIt7E,EAAE,EAAEyzB,CAAC,EAAQA,EAAE,EAAE,EAAE5zB,IAAG4pD,GAAGpqD,EAAE,EAAEo0B,EAAE,EAAEs5F,EAAE1tH,EAAE,EAAEslK,EAAEtlK,EAAE0tH,EAAEltH,GAAGG,EAAE,EAAE,GAAGs7E,GAAIt7E,EAAE,EAAE+sH,CAAC,EAAEzxC,GAAIt7E,EAAE,EAAEX,CAAC,CAAC,EAAE,IAAIslK,EAAE53C,GAAG43C,GAAM,EAAA3kK,EAAE,EAAE,GAAGR,EAAE87E,GAAIt7E,EAAE,EAAEypD,CAAC,CAAC,EAAE,KAASqsD,GAAI91G,EAAE,EAAEyzB,EAAE6nD,GAAIt7E,EAAE,EAAEypD,CAAC,CAAC,EAAEh2B,EAAEg2B,EAAEqsD,GAAI91G,EAAE,EAAEyzB,EAAEj0B,CAAC,CAAC,CACxN,SAAS4iG,GAAIpiG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA6C,IAAxC9qG,EAAG/5D,CAAC,IAAI+5D,EAAGl6D,CAAC,IAAGG,EAAEA,EAAE,MAAMyzB,EAAEA,EAAEj0B,CAAC,EAAEi0B,EAAE,GAAE7zB,EAAEC,EAAM8kK,EAAElxI,EAAEmxI,EAAEnxI,EAAEj0B,EAAEmlK,EAAEC,GAAI73C,EAAEhqH,EAAK,KAAK,IAAI4hK,EAAE,IAAMC,CAAC,EAAEplK,EAAEutH,EAAE43C,EAAEE,EAAE7kK,EAAE,MAAM2kK,EAAE53C,CAAC,EAAE83C,EAAE,OAAO,EAAE,EAAEp7G,EAAEpqD,EAAEG,EAAE,CAAC,EAAE,MAAM,UAAU,OAAO,MAAMI,EAAEilK,CAAC,EAAEF,EAAE53C,EAAEtjE,GAAGjqD,CAAE,CACxN,SAAS4uN,GAAIpuN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAc,OAAZiqD,EAAE5pD,EAAE,EAAEL,EAAEK,EAAE,EAAKG,EAAE,EAAEypD,EAAE,CAAC,GAAGzpD,EAAE,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAEypD,EAAE,CAAC,GAAGzpD,EAAE,EAAER,EAAE,CAAC,GAAGQ,EAAE,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,GAAGzzB,EAAE,EAAER,EAAE,CAAC,EAAM,EAAAQ,EAAE,EAAEypD,EAAE,CAAC,EAAEzpD,EAAE,EAAER,EAAE,CAAC,GAA+BQ,EAAE,EAAEypD,EAAE,CAAC,EAAEzpD,EAAE,EAAER,EAAE,CAAC,CAA2B,CACxN,SAAS4kM,IAAIpkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAiB,GAAfl7G,EAAEzpD,EAAE,EAAE,EAAE,OAAUypD,EAAE,EAA6E,IAA1EsjE,EAAE/sH,EAAE,EAAE,EAAE2kK,EAAE3kK,EAAE,EAAE,EAAER,EAAEwtE,GAAIqT,GAAI,IAAIjrB,GAAIuvG,EAAE,EAAEA,EAAE,CAAC,EAAE53C,CAAC,EAAE,GAAGtjE,EAAE,EAAE,EAAEpqD,EAAE,IAAI+1D,GAAI23D,EAAE,EAAEA,EAAE,CAAC,EAAMltH,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,EAAE,EAAEp0B,EAAE,EAAEo0B,EAAE,EAAE,EAAEp0B,EAAE,EAAE+gF,GAAI/gF,EAAEG,CAAC,CAAG,CACxN,SAAS6uN,IAAIruN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAQ,IAANA,EAAEu3G,GAAQ93G,EAAE,IAAI64B,EAAIo2L,IAAItuN,EAAE,CAAC,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAMslK,EAAE,IAAIzsI,EAAIo2L,IAAI76L,EAAE,CAAC,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEl7G,EAAE8lH,IAAI/vK,EAAE,EAAEA,EAAE,EAAEutH,EAAE,EAAEA,EAAE,EAAEltH,CAAC,EAAED,EAAEmD,EAAK,KAAK,IAAInD,EAAE6pD,CAAC,EAAG,OAAO7pD,CAAC,CACzN,SAAS8mC,GAAI1mC,EAAEyzB,EAAE,CAAC,GAAG,CAACA,EAAG,MAAMiS,EAAI,IAAIoC,EAAG,EAAQ,GAAN9nC,EAAE,EAAEyzB,EAAK,CAACzzB,EAAE,EAAG,OAAOA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAE,CAAE,CACzN,SAASuuN,IAAIvuN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAG+rE,EAAG93C,EAAE,EAAE,EAAE,GAAGyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,IAAIk3D,GAAK,EAACi0D,IAAaznC,IAAI33G,EAAEkxI,GAAIj9G,CAAC,EAAKj0B,EAAUuD,EAAK,KAAK,IAAI,EAAE/C,EAAE,EAAE,EAAE,EAAG,GAAEH,EAAE2qI,GAAI/2G,CAAC,EAAK5zB,GAAG4pD,EAAEvW,EAAImnC,EAAGytG,GAAIjoL,GAAGytB,GAAG,EAAG8+J,GAAK,CAAA,CAAC,EAASrpL,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAG,GAAS0tD,IAAG,CACzN,SAASq3G,IAAIxuN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAG+rE,EAAG93C,EAAE,EAAE,EAAE,GAAGyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,IAAIk3D,GAAK,EAACi0D,IAAaznC,IAAI33G,EAAEkxI,GAAIj9G,CAAC,EAAKj0B,EAAUuD,EAAK,KAAK,IAAI,EAAE/C,EAAE,EAAE,EAAE,EAAG,GAAEH,EAAE2qI,GAAI/2G,CAAC,EAAK5zB,GAAG4pD,EAAEvW,EAAImnC,EAAGytG,GAAIjoL,GAAGytB,GAAG,EAAG8+J,GAAK,CAAA,CAAC,EAASrpL,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAG,GAAS0tD,IAAG,CACzN,SAASmwD,IAAItnK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiB,IAAfA,EAAE+lD,GAAI9yK,EAAE,EAAEA,EAAE,CAAC,EAAMX,EAAE0tH,EAAE,GAAE,EAAG1tH,EAAE,GAAE,GAAgD,IAA3CG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAEoqD,EAAEzpD,EAAE,IAAI8+F,EAAK,EAACmE,IAAKzjG,EAAE,EAAEA,EAAE,EAAMK,EAAE,IAAIq4B,EAAIuxB,CAAC,EAAE5pD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAK,CAAC8mG,GAAIlzE,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAGmyL,IAAI5lN,EAAEyzB,CAAC,EAAE,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,EAAI,CACzN,SAASyuN,IAAIzuN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,EAAE,GAAI,EAAE,OAAO42C,GAAG,EAAGA,GAAK,EAAC+b,GAA8B,IAA1B38B,EAAE,IAAI5kB,EAAI+D,EAAI6gB,EAAE8jF,EAAIwmB,EAAG,CAAC,EAAMl0J,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,EAAGG,EAAE,GAAG,MAAMosG,IAAIpsG,CAAC,EAAEA,EAAE,EAAEH,CAAC,GAAG+oC,EAAI6gB,EAAE8jF,EAAI1tI,CAAC,CAAC,EAAE,OAAG4pD,EAAE,EAAE,QAAQ,GAAU4gB,GAAK,EAACA,GAAG,EAAG+b,KAAIx9C,EAAI6gB,EAAE8jF,EAAIrwD,EAAG,CAAC,EAASwxI,IAAIj7L,EAAEg2B,CAAC,EAAC,CACzN,SAASklK,IAAI3uN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEmtH,EAAEt5F,EAAE,EAAE,EAAE,IAAIk3D,KAAM0hC,IAAKzsH,EAAEmtH,EAAEt5F,EAAE,EAAEA,EAAE,EAAE5zB,EAAEisM,IAAIr4K,EAAE7zB,CAAC,EAAE,EAAEJ,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEJ,CAAC,EAAE,GAAG,EAAE6pD,EAAEzpD,EAAE,EAAEH,EAAE,CAAC,EAAE,EAAKsjF,IAAIvjF,EAAE,CAAC,GAAIC,EAAE,EAAKqgE,GAAIrgE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAhB,KAAoBR,EAAEG,EAAEmlK,EAAEl7G,IAAOpqD,EAAEoqD,EAAEk7G,EAAEnlK,GAAEuqL,GAAIlkI,GAAID,GAAIE,GAAIH,GAAI,IAAI1b,GAAI,CAAC,EAAE,CAAC,EAAE5qC,CAAC,EAAEslK,CAAC,CAAC,CAAC,CACzN,SAASiqD,IAAI5uN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGC,EAA6B,IAA1BL,EAAEK,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAItxG,CAAC,EAAMmlK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,KAAMC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAE/kK,EAAEogF,GAAIhgF,EAAE6yL,GAAI96E,GAAGl4G,EAAEktH,EAAE,CAAC,CAAC,CAAC,EAAKntH,IAAGP,GAAG,CAACo0B,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAGyyC,GAAI7mE,EAAEO,CAAC,EAAI,CACzN,SAASivN,IAAI7uN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGC,EAA6B,IAA1BL,EAAEK,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAItxG,CAAC,EAAMmlK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,KAAMC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAE/kK,EAAEogF,GAAIhgF,EAAE6yL,GAAI96E,GAAGl4G,EAAEktH,EAAE,CAAC,CAAC,CAAC,EAAKntH,IAAGP,GAAG,CAACo0B,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAGyyC,GAAI7mE,EAAEO,CAAC,EAAI,CACzN,SAASqwM,GAAGjwM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEh2B,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEypD,CAAC,EAAEzpD,EAAE,EAAEypD,CAAC,EAAEh2B,EAAEj0B,EAAEi0B,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAER,CAAC,EAAEQ,EAAE,EAAER,CAAC,EAAEi0B,EAAM5zB,GAAsD4zB,EAAE,EAAE5zB,EAAE,EAAG4zB,EAAE,EAAWA,EAAE,EAAE,EAAEA,EAAdzzB,EAAE,EAAEyzB,EAAaA,EAAE,EAAE5zB,EAAE,EAAG4zB,EAAE,EAAWA,EAAE,EAAE,EAAEA,EAAdzzB,EAAE,EAAEyzB,IAApGA,EAAE,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,KAAMzzB,EAAE,EAAWA,EAAE,EAAE,EAAEyzB,EAAdzzB,EAAE,EAAEyzB,EAAazzB,EAAE,EAAEyzB,GAAqE,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,CAC1N,SAAS6/K,IAAG7/K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAW,GAATh2B,EAAEzzB,EAAE,GAAE,EAAM,CAACA,EAAE,GAAE,EAAI,OAAOyzB,EAA0D,IAAxDg2B,EAAE8R,GAAIC,GAAI,IAAItlB,GAAI,iCAAiC,EAAEziB,CAAC,EAAM5zB,EAAE,EAAEA,EAAE,GAAGG,EAAE,GAAI,EAACH,IAAK07D,IAAK9R,EAAE,GAAGhU,GAAIgU,GAAGzpD,EAAE,GAAE,CAAE,EAAE,MAAAA,EAAE,GAAE,IAAKypD,EAAE,GAAG,SAAWA,EAAE,GAAG,IAAU/jB,EAAI,IAAImN,GAAI4W,EAAE,CAAC,CAAC,CAAC,CAC1N,SAASqlK,IAAG9uN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4zB,EAAE,EAAGA,EAAE,EAAE,EAAEA,EAAE,EAAIzzB,EAAE,EAAEyzB,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAE,EAAEA,EAAE,EAAIzzB,EAAE,EAAEyzB,EAAE,EAAM,CAACA,EAAE,GAAG,CAACA,EAAE,GAAG5zB,EAAEqjD,EAAGs9F,GAAIxgJ,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAG,EAAE5zB,EAAE,EAAE,EAAE,EAAEG,EAAE,IAAOH,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE5zB,EAAE,EAAG4zB,EAAE,EAAaA,EAAE,EAAE,EAAEA,EAAE,EAAlB5zB,EAAE,EAAE4zB,EAAE,EAAgBA,EAAE,EAAaA,EAAE,EAAE,EAAEA,EAAE,EAAlB5zB,EAAE,EAAE4zB,EAAE,GAAe,EAAEzzB,EAAE,CAAC,CAC1N,SAAS+uN,IAAG/uN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAE,CAACG,EAAE,EAAEyzB,EAAEylF,EAAG9hE,EAAGy4G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAKjwJ,EAAE,IAAG4zB,EAAE,CAAC,EAAE,GAAG5zB,EAAE,CAACA,GAAE4zB,EAAE,CAAC,EAAEA,EAAE,CAAC,IAAI5zB,EAAE,GAAG,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG5zB,EAAE,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG5zB,EAAE,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE5zB,EAAE,GAAGklG,GAAWz5B,GAAI73C,EAAE,EAAEA,EAAE,MAAM,CAAC,CAC1N,SAASu7L,IAAIhvN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAc,IAAZiqD,EAAEh2B,EAAE,EAAEj0B,EAAEK,EAAE,EAAQ4pD,EAAE,EAAEjqD,EAAE,GAAG,GAAGiqD,EAAE,EAAEjqD,EAAE,GAAG,GAAGiqD,EAAE,GAAG6kD,GAAItuG,EAAE,EAAE,EAAEuuG,GAAID,GAAItuG,EAAE,EAAE,EAAEwuG,GAAI,GAAI/kD,EAAE,GAAG6kD,GAAItuG,EAAE,EAAE,EAAEuuG,GAAID,GAAItuG,EAAE,EAAE,EAAEwuG,GAAI,GAAIhvG,EAAE,GAAG8uG,GAAItuG,EAAE,EAAE,EAAEuuG,GAAID,GAAItuG,EAAE,EAAE,EAAEwuG,GAAI,GAAIhvG,EAAE,GAAG8uG,GAAItuG,EAAE,EAAE,EAAEuuG,GAAID,GAAItuG,EAAE,EAAE,EAAEwuG,GAAI,EAAI,CAC1N,SAAS43E,GAAIpmL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAoD,IAAlDQ,EAAE,EAAE,IAAI6mE,GAAI3jB,EAAG1N,GAAGkjG,EAAE,EAAE,GAAG,CAAC,EAAEjvF,EAAE,EAAE5pD,GAAGi/F,EAAK,EAAC+5C,IAAKplH,EAAE,EAAOA,EAAEzzB,EAAE,EAAE,EAAE,OAAOyzB,IAAKj0B,EAAE0jD,EAAGo4B,GAAIt7E,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAKj0B,EAAE,GAAGK,IAAG4pD,GAAGh2B,GAAGqqD,GAAI99E,EAAE,EAAEH,EAAE,IAAI82D,GAAI42E,EAAI9jF,CAAC,EAAE8jF,EAAI95G,CAAC,CAAC,CAAC,EAAE5zB,EAAEL,EAAE,EAAEiqD,EAAEh2B,GAAGqqD,GAAI99E,EAAE,EAAEH,EAAE,IAAI82D,GAAI42E,EAAI9jF,CAAC,EAAE8jF,EAAI95G,CAAC,CAAC,CAAC,CAAC,CAC1N,SAAS8vL,IAAIvjN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJl7G,EAAE,EAAM5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAMR,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiC,IAAxBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEiqD,IAAQk7G,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE53C,EAAE,EAAEtjE,GAAM,CAC1N,SAASwlK,IAAIjvN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,GAAGnxI,EAAG,IAAIkxI,EAAElxI,EAAE,GAAE,EAAGkxI,EAAE,GAAI,GAAmB,IAAhB53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAMC,EAAEsqD,GAAIniG,GAAG/6B,GAAK,EAAC0tC,IAAK7/H,CAAC,EAAE,GAAE,EAAG+kK,EAAE,GAAE,GAAKhlK,EAAEsjD,EAAG0hH,EAAE,KAAK,EAAE,EAAEvlK,EAAE6jD,EAAG4W,GAAGm7C,GAAIz1G,EAAE,EAAEI,CAAC,CAAC,EAAE,GAAG,EAAMP,IAAGA,EAAE,IAAIitK,GAAItsK,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEpqD,EAAEkrN,IAAIlrN,EAAEO,EAAEJ,CAAC,EAAK,CAC1N,SAASs/G,GAAI9+G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA8B,GAA5BA,EAAEm0K,IAAKozB,GAAG,EAAGC,IAAKhnM,EAAE,GAAI,EAACyzB,CAAC,EAAKj0B,EAAGgsD,GAAG,EAAGtI,EAAG1jD,EAAE,EAAE,EAAE,GAAI,IAAGA,EAAEilI,GAAIwqB,GAAI+3C,GAAIxnM,CAAC,CAAC,GAAGiqD,GAAG5pD,EAAEG,EAAE,GAAGR,CAAC,EAAE0jD,EAAGrjD,GAAG,EAAEG,EAAE,GAAGH,EAAE,GAAK,EAAI,EAAEo/I,GAAIj/I,EAAER,EAAE,EAAI,EAAE,GAAG,GAAG0jD,EAAGuG,EAAE,GAAG,EAAE,GAAGh2B,CAAC,MAAO,OAAMiS,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,GAAE,EAAGyuJ,EAAG,CAAC,CAAE,CAC1N,SAASitC,GAAInvN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAGG,EAAE,iBAAkBA,EAAE,eAAoBA,GAAG,EAAU,GAAEyzB,EAAEzzB,EAAE,EAAEyzB,IAAIzzB,EAAE,CAACA,GAAGH,EAAE2/D,GAAGz8D,EAAK,KAAK,MAAMA,EAAK,KAAK,IAAI/C,CAAC,EAAE,iBAAkB,CAAC,GAAG,CAACyzB,GAAGzzB,GAAG+C,EAAK,KAAK,IAAI,EAAElD,CAAC,IAAI,EAAEA,EAASA,GAASoyJ,IAAIxsE,GAAIzlF,CAAC,CAAC,CAAC,CAC3N,SAAS2zL,IAAI3zL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVtlK,EAAE,IAAI0hE,GAAQlhE,EAAE,IAAIq4B,EAAIl4B,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAEktH,EAAEt5F,EAAE,EAAEkxI,EAAElxI,EAAE,EAAK,EAAAp0B,EAAE,EAAE,GAAG0tH,CAAC,GAAG1tH,EAAE,EAAE,GAAGslK,CAAC,KAAYnlK,EAAEutH,EAAEtjE,EAAEk7G,EAAK53C,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,GAAG43C,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,IAAGnlK,EAAEmlK,EAAEl7G,EAAEsjE,GAAE1tH,EAAE,EAAE,GAAGG,EAAEH,CAAC,EAAEG,EAAE,EAAEiqD,GAAE,OAAOpqD,CAAC,CAC3N,SAAS+vN,IAAIpvN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,OAAAiqD,EAAE,IAAIm1I,GAAI5+L,CAAC,EAAE8+I,GAAIr1F,EAAEh2B,CAAC,EAAEqvD,EAAIr5B,GAAGygE,EAAK,EAACmlG,IAAK57L,CAAC,EAAEqvD,EAAIr5B,GAAGn8B,GAAK,EAAC6oI,KAAMp4D,GAAG,EAAGva,GAAK,EAACV,EAAIr5B,EAAE4jI,IAAKpyF,GAAK,EAACqqD,GAAG,EAAGjxH,GAAIo1B,GAAGkhC,GAAK,EAACi0D,GAAG,EAAG/+I,EAAE,IAAI23M,GAAIr9J,GAAIt6C,EAAE4pD,CAAC,EAAE/iB,GAAI7mC,GAAGi/F,EAAK,EAACmE,GAAG,EAAGzjG,EAAE,IAAIg4M,GAAIr9J,GAAI36C,EAAEiqD,CAAC,EAAE/iB,GAAIlnC,EAAE4jG,EAAG,EAAS35C,CAAC,CAC5N,SAAS6lK,IAAItvN,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIqyC,IAAKmiD,GAAK,EAAC8sC,GAAK,EAAC,IAAK,GAAE,OAAO,IAAI7zG,IAAI,IAAK,GAAE,OAAO,IAAIc,IAAI,QAAQ,MAAMmX,EAAI,IAAImN,GAAI,8DAA8D7yC,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAC5N,SAASuvN,IAAIvvN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA2B,IAAzB/sH,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAKmV,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAMs5F,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAMtjE,EAAE,IAAIk3F,GAAIthJ,EAAE,CAAC,EAAE6oE,GAAIze,EAAE,CAAC,GAAGye,GAAIze,EAAE,CAAC,GAAI5pD,EAAEqjD,EAAGglB,GAAIze,EAAE,CAAC,EAAEk7E,EAAIl7E,EAAE,CAAC,EAAEk7E,EAAIl7E,EAAE,CAAC,EAAE,EAAE,EAAEjqD,EAAE2zL,IAAI9zL,EAAEQ,CAAC,EAAE,EAAEG,EAAE,EAAER,EAAE,CAAC,GAAG+vN,IAAIvvN,EAAER,CAAC,CAAG,CAC5N,SAASgwN,IAAIxvN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJ53C,EAAE,EAAMltH,EAAE,IAAIs8D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAG,EAACH,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAE8kK,EAAElxI,EAAE,EAAEj0B,EAAEi0B,EAAE,EAAEg2B,EAAE1mD,EAAK,KAAK,KAAK4hK,EAAEA,EAAEnlK,EAAEA,CAAC,EAAEutH,EAAEhqH,EAAK,KAAK,IAAI0mD,EAAEsjE,CAAC,EAAE1tH,EAAEmwN,IAAI/7L,CAAC,EAAEs5F,EAAEhqH,EAAK,KAAK,IAAI1D,EAAE0tH,CAAC,EAAE,OAAOA,CAAC,CAC5N,SAAS5uB,IAAK,CAACA,GAAIz5F,EAAI8uG,GAAI,IAAIx9C,GAAI,UAAU,CAAC,EAAEu9C,GAAI,IAAIv9C,GAAI,SAAS,CAAC,EAAEwyF,GAAI,IAAIxyF,GAAI,2BAA2B,CAAC,EAAEyyF,GAAI,IAAIzyF,GAAI,mBAAmB,CAAC,EAAE0yF,GAAI,IAAI1yF,GAAI,yBAAyB,CAAC,EAAE2yF,GAAI,IAAI3yF,GAAI,kBAAkB,CAAC,CAAC,CAC5N,SAAS28I,IAAI3yM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEslK,EAAE/kK,EAAEglK,EAAE,OAAAn7G,EAAEmjF,IAAI5sI,GAAGR,GAAG08C,KAAM78C,EAAE,IAAIwtC,GAAIxtC,GAAKQ,GAAG4vN,GAAIjwN,EAAEK,CAAC,EAAEL,GAAGi0B,CAAC,EAAEksI,GAAIl2G,EAAEijF,GAAIj5G,EAAEm/J,EAAG,CAAC,EAAEipB,GAAIpoL,EAAEg2B,CAAC,EAAEimK,IAAIj8L,EAAEg2B,CAAC,EAAEqkK,GAAIr6L,EAAEg2B,CAAC,EAASk7G,EAAElxI,EAAE7zB,EAAE2sI,GAAIo4B,EAAE,OAAO,EAAEC,EAAE,IAAIptG,IAAIx3D,EAAEypD,CAAC,EAAEkmK,IAAI/qD,EAAE,EAAEA,EAAE,EAAEhlK,CAAC,EAAE0zK,GAAItzK,EAAEyzB,EAAEg2B,CAAC,EAAEqkH,IAAI9tK,EAAEyzB,EAAEg2B,CAAC,EAASA,CAAC,CAC5N,SAASmmK,IAAG5vN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAE,CAACG,EAAE,EAAEyzB,EAAEylF,EAAG9hE,EAAGy4G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAKjwJ,EAAE,IAAG4zB,EAAE,CAAC,EAAE,GAAG5zB,EAAE,CAACA,GAAE4zB,EAAE,CAAC,EAAEA,EAAE,CAAC,IAAI5zB,EAAE,GAAG,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG5zB,EAAE,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG5zB,EAAE,GAAG,GAAG,GAAGklG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE5zB,EAAE,GAAGklG,GAAWz5B,GAAI73C,EAAE,EAAEA,EAAE,MAAM,CAAC,CAC7N,SAASo8L,IAAG7vN,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAEylF,EAAG9hE,EAAGy4G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAK9vJ,GAAG,IAAGyzB,EAAE,CAAC,EAAE,GAAGzzB,EAAE,CAACA,GAAEyzB,EAAE,CAAC,EAAEA,EAAE,CAAC,IAAIzzB,EAAE,GAAG,GAAG,GAAG,GAAG+kG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAGzzB,EAAE,GAAG,GAAG,GAAG+kG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAGzzB,EAAE,GAAG,GAAG,GAAG+kG,GAAItxE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEzzB,EAAE,GAAG+kG,GAAWz5B,GAAI73C,EAAE,EAAEA,EAAE,MAAM,CAAC,CAC9N,SAASq8L,IAAI9vN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,GAAG,KAAM,OAAOixE,GAA2B,IAAvB5xE,EAAE,IAAIqsK,GAAIj2H,GAAI,IAAI,GAAG,EAAM51C,EAAEG,EAAEypD,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAGpqD,EAAE,EAAqBm8D,GAAIn8D,EAAE,EAAEA,EAAE,CAAC,EAA7BA,EAAE,EAAE,IAAImxE,GAAInxE,EAAE,CAAC,EAAgBi8D,GAAIj8D,EAAE,EAAE,GAAG8xG,GAAI19E,CAAC,CAAC,EAAE,OAAQp0B,EAAE,EAAMA,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,GAApCA,EAAE,CAAoC,CAC7N,SAAS0wN,GAAI/vN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAQ,IAANA,EAAE09E,GAAQzzB,EAAE,IAAIvxB,EAAIwvJ,GAAIj0J,CAAC,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAK5pD,EAAE,GAAG,CAACG,EAAE,EAAEH,EAAE,CAAC,IAAGG,EAAE,EAAEH,EAAE,CAAC,EAAE,GAAKL,EAAEuD,EAAK,KAAK,IAAIvD,EAAEuwN,GAAI/vN,EAAEmoL,GAAItoL,EAAE4zB,CAAC,CAAC,CAAC,GAAG,OAAAzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,CAAC,EAAE1wB,EAAK,KAAK,IAAIvD,EAAEQ,EAAE,GAAG,EAASA,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CAC7N,SAAS85K,IAAIvtM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,IAAIA,EAAE0jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAEiqD,EAAE,EAAE,GAAG5pD,EAAE4pD,EAAE,EAAE5pD,EAAE,IAAImwB,GAAK,EAACk/E,GAAG,EAAGrvG,EAAE,GAAE,IAAKi/F,EAAG,EAAG+5C,IAAK,CAACh5I,EAAE,GAAE,EAAG,EAAEqzC,EAAImnC,EAAGx6E,EAAE,GAAGqvG,EAAG,CAAC,CAAC,EAAEh8D,EAAImnC,EAAGx6E,EAAE,GAAGqvG,EAAG,CAAC,CAAC,EAAErvG,EAAE,GAAI,IAAGi/F,EAAG,EAAG+5C,IAAK,CAACh5I,EAAE,GAAE,EAAG,EAAE,EAAG,CAC7N,SAASmwN,IAAIhwN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAgF,IAA9E9kK,EAAE4lE,GAAIzlE,EAAE,CAAC,EAAEX,EAAE2tE,GAAIkK,GAAIzN,GAAIlE,GAAIvlE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAI,EAAEyzB,EAAE5zB,EAAE,EAAER,EAAE,EAAEG,EAAEK,EAAE,EAAER,EAAE,EAAMslK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE2kK,IAAI,CAAK,IAAJl7G,EAAEh2B,EAAMs5F,EAAE,EAAEA,EAAE/sH,EAAE,EAAE+sH,IAAK47D,IAAI3oL,EAAE,EAAE,IAAIohE,GAAI3X,EAAEjqD,EAAEQ,EAAE,EAAEA,EAAE,CAAC,CAAC,GAAGuyK,GAAIvyK,EAAE+sH,EAAE43C,EAAE,GAAM,EAAI,EAAEl7G,GAAGzpD,EAAE,EAAER,GAAGQ,EAAE,CAAC,CAAC,CAC7N,SAASiwN,IAAIjwN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAGxW,GAAImnC,GAAGquC,GAAIzoH,GAAGgwB,GAAG,EAAGkgM,GAAK,CAAA,CAAC,EAAE,CAAW,IAAVzmK,EAAE,IAAI5kB,EAAQhlC,EAAE,IAAIgxG,GAAGphC,GAAGgsI,GAAIz7M,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE2oH,GAAI/0F,CAAC,GAAGwf,GAAImnC,GAAGquC,GAAIh1F,EAAE08L,EAAG,CAAC,CAAC,IAAI1mK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEh2B,GAAQ,OAAOg2B,CAAC,KAAM,QAAO4gB,GAAK,EAACA,GAAG,EAAG+b,EAAI,CAC7N,SAASysG,GAAI7yL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAU,GAARA,EAAE,GAAS0rE,EAAGvrE,EAAE,GAAG,EAAG,OAAAH,EAAE,GAAYqjD,EAAGljD,EAAE,GAAG,EAAE,EAAE,GAAG,CAACH,GAAM0rE,EAAGvrE,EAAE,GAAG,IAAGyzB,EAAEyvB,EAAGljD,EAAE,GAAG,EAAE,EAAE,GAAG,EAAKyzB,GAAG,OAAA5zB,EAAE,GAAY0tI,EAAI9tE,IAAIvc,EAAGljD,EAAE,GAAG,EAAE,CAAC,CAAC,EAAI,MAAM0lC,EAAI,IAAIsO,GAAI,uCAAuCh0C,EAAE,IAAI,CAAC,CAAC,CAC7N,SAASowN,IAAIpwN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAS,IAAPtlK,EAAE,KAASG,EAAE,IAAIg1G,KAAK,CAACx0G,EAAE,IAAIA,EAAE,EAAE,IAAIokC,GAAIpkC,CAAC,GAAGA,EAAE,IAAIqwN,GAAI7wN,CAAC,GAAsF,GAAlFK,EAAEqjD,EAAGyxH,GAAIn1K,CAAC,EAAE,EAAE,EAAEiqD,GAAGsjE,EAAEltH,EAAE,GAAE,EAAG8kK,GAAGkuC,GAAI9lF,CAAC,EAAEA,EAAE,GAAG,CAAC43C,GAAG,CAAC9kK,EAAE,GAAG8kK,CAAC,EAAE,KAAKxiF,GAAI8rF,GAAItJ,CAAC,EAAE9kK,EAAE,GAAG8kK,CAAC,CAAC,GAAMl7G,GAAG,MAAS44B,GAAI54B,EAAEh2B,CAAC,EAAE,CAACp0B,EAAEQ,EAAE,KAAK,CAAG,OAAOR,CAAC,CAC7N,SAASixN,IAAGtwN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsB,GAApB9vF,GAAGh1E,EAAE,aAAa,EAAKA,GAAG,EAAG,OAAO8kK,EAAEzhH,EAAG2hC,GAAGyjC,GAAGtoH,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAGkxI,EAAIA,EAAE,GAAI,EAAR,EAAgC,GAAvB53C,EAAE7pE,EAAG2hC,GAAGyjC,GAAGtoH,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAK,CAACs5F,EAAG,MAAO,GAAW,GAAT1tH,EAAE0tH,EAAE,KAAQltH,GAAGR,EAAG0tH,EAAE,GAAI,MAAe,KAATvtH,EAAEutH,EAAE,GAAI,EAAKtjE,EAAE,EAAEA,EAAE5pD,EAAE4pD,IAAKjqD,EAAE,GAAI,EAACA,EAAE,GAAI,EAAE,OAAOH,CAAC,CAC9N,SAASkxN,IAAGvwN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA2D,OAAzDl4C,GAAGh1E,EAAE,UAAU,EAAEg1E,GAAG,EAAE,UAAU,EAAEprB,EAAEvG,EAAG2hC,GAAGyjC,GAAGtoH,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,GAAOg2B,EAAIA,EAAE,GAAE,EAAN,IAAW5pD,GAAGg1E,GAAG,EAAE,OAAO,EAAEr1E,GAAGH,EAAE6jD,EAAG2hC,GAAGyjC,GAAGtoH,EAAE,CAAC,EAAEyzB,CAAC,EAAE,EAAE,EAAGp0B,EAAIA,EAAE,KAAJ,GAAU0tH,EAAE,CAACvtH,EAAEutH,EAAE,EAAE93E,GAAE,EAAG83E,EAAE,GAAGujG,IAAGtwN,EAAEyzB,EAAE,CAACs5F,CAAC,EAAS,IAAiB,EAAM,CAC9N,SAASwgG,GAAIvtN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,GAAJA,EAAE,EAAK3kK,EAAE,GAAG,EAAE,CAAmB,IAAlB+sH,EAAEwzE,IAAIvgM,EAAE,EAAI,EAAEyzB,EAAE,EAAMg2B,EAAEsjE,EAAEvtH,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAKK,EAAE,IAAG8kK,GAAG9kK,EAAE,EAAE4zB,GAAGA,EAAE,IAAIkxI,GAAG3kK,EAAE,GAAGyzB,EAAE,GAAG,MAAMkxI,EAAE9tH,IAAIwtH,IAAIvgD,GAAIH,GAAI/M,GAAI52G,EAAE,CAAC,EAAE,IAAI0H,GAAG,EAAE,IAAIC,GAAG,CAAC,CAAC,EAAE,OAAOg9J,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAC9N,SAASstN,GAAIttN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,GAAJA,EAAE,EAAK3kK,EAAE,GAAG,EAAG2kK,EAAE9tH,IAAIwtH,IAAIvgD,GAAIH,GAAI/M,GAAI52G,EAAE,CAAC,EAAE,IAAIwH,GAAG,EAAE,IAAIC,GAAG,CAAC,CAAC,MAAM,CAAmB,IAAlBslH,EAAEyzE,IAAIxgM,EAAE,EAAI,EAAEyzB,EAAE,EAAMg2B,EAAEsjE,EAAEvtH,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAKK,EAAE,IAAG8kK,GAAG9kK,EAAE,EAAE4zB,GAAGA,EAAE,IAAIkxI,GAAG3kK,EAAE,GAAGyzB,EAAE,GAAG,CAAC,OAAOkxI,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAC9N,SAAS8hH,IAAI9hH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA6B,IAA3BA,EAAE6jD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE5zB,EAAER,EAAE,EAAMG,EAAE0jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAIiqD,EAAE,IAAI5pD,EAAE,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,EAAEinG,GAAIr9C,EAAE,CAAC,CAAC,GAAG,GAAG5pD,EAAE,EAAE,EAAG,OAAO4zB,EAAE,EAAG,CAAA,IAAK,GAAEp0B,EAAE,EAAE,EAAEW,EAAE,EAAE,MAAM,IAAK,GAAEX,EAAE,EAAE,EAAEW,EAAE,CAAE,CAAE,CAC/N,SAASwwN,IAAIxwN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoD,OAAlDK,EAAEqjD,EAAG0lE,EAAIn1F,GAAG3I,GAAG,EAAG+xL,GAAK,EAAC,EAAE,EAAE,EAAE35J,EAAG0lE,EAAI5oH,EAAE68M,EAAG,EAAE,EAAE,EAAE,EAAKh9M,GAAG,GAAG4pD,EAAE42B,GAAI5W,GAAIvmB,EAAG0lE,EAAI5oH,GAAGkiK,GAAG,EAAGO,GAAG,EAAG,CAAC,CAAC,EAAEv/G,EAAG0lE,EAAI5oH,EAAEuiK,EAAG,EAAE,CAAC,CAAC,EAAE/iK,EAAE6gF,GAAI5W,GAAIvmB,EAAG0lE,EAAIn1F,EAAEgvI,EAAG,EAAE,CAAC,CAAC,EAAEv/G,EAAG0lE,EAAIn1F,EAAE8uI,EAAG,EAAE,CAAC,CAAC,EAAS3jG,GAAInV,EAAE,EAAEA,EAAE,EAAEjqD,EAAE,EAAEA,EAAE,CAAC,GAASK,CAAC,CAC/N,SAAS4wN,IAAIzwN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAoD,OAAlDK,EAAEqjD,EAAG0lE,EAAIn1F,GAAGzE,GAAG,EAAG0hM,GAAK,EAAC,EAAE,EAAE,EAAExtK,EAAG0lE,EAAI5oH,EAAE0wN,EAAG,EAAE,EAAE,EAAE,EAAK7wN,GAAG,GAAG4pD,EAAE42B,GAAI5W,GAAIvmB,EAAG0lE,EAAI5oH,GAAGqjL,GAAG,EAAGstC,GAAG,EAAG,CAAC,CAAC,EAAEztK,EAAG0lE,EAAI5oH,EAAE4wN,EAAG,EAAE,CAAC,CAAC,EAAEpxN,EAAE6gF,GAAI5W,GAAIvmB,EAAG0lE,EAAIn1F,EAAEk9L,EAAG,EAAE,CAAC,CAAC,EAAEztK,EAAG0lE,EAAIn1F,EAAEm9L,EAAG,EAAE,CAAC,CAAC,EAAShyJ,GAAInV,EAAE,EAAEA,EAAE,EAAEjqD,EAAE,EAAEA,EAAE,CAAC,GAASK,CAAC,CAC/N,SAASgxN,IAAI7wN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAE,IAAIq2C,GAAIr2C,EAAE,GAAG,KAAK4zB,EAAEm5I,IAAI5sK,CAAC,EAAEyzB,GAAG,OAAO5zB,EAAE,GAAG,GAAG4zB,GAAUzzB,EAAE,GAAKA,EAAE,IAAGw7D,IAAK37D,EAAE,GAAG,IAAIA,GAAG0mM,GAAIvmM,EAAE,CAAC,CAAC,EAAEw7D,GAAID,IAAK17D,EAAE,GAAG,IAAIA,GAAGG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAEw7D,IAAK37D,EAAE,GAAGixN,GAAIjxN,GAAG0mM,GAAIvmM,EAAE,CAAC,CAAC,EAAEw7D,GAAID,IAAK17D,EAAE,GAAG,IAAIA,GAAGG,EAAE,EAAE,CAAC,EAAE,GAAG,GAASH,EAAE,CAAC,CAC/N,SAASkxN,IAAI/wN,EAAE,CAAC,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAO,IAAI6tB,IAAI,IAAK,GAAE,OAAO,IAAIE,IAAI,IAAK,GAAE,OAAO,IAAIJ,IAAI,IAAK,GAAE,OAAO,IAAIM,IAAI,QAAQ,MAAMyX,EAAI,IAAImN,GAAI,wDAAwD7yC,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CAC/N,SAASgnK,GAAIhnK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAM,OAAJA,EAAE,EAASG,EAAE,EAAG,CAAA,IAAK,GAAEH,EAAE0D,EAAK,KAAK,IAAI,EAAE0wB,EAAE,EAAEzzB,EAAE,GAAGH,EAAE,EAAE4pD,EAAE,EAAE,MAAM,IAAK,GAAEpqD,EAAE0D,EAAK,KAAK,IAAI,EAAE,CAAC/C,EAAE,EAAEypD,CAAC,EAAE,MAAM,IAAK,GAAEpqD,EAAE0D,EAAK,KAAK,IAAI,EAAE,CAAC/C,EAAE,EAAEypD,CAAC,EAAE,MAAM,IAAK,GAAEpqD,EAAE0D,EAAK,KAAK,IAAI,EAAE0wB,EAAE,EAAEzzB,EAAE,GAAGH,EAAE,EAAE4pD,EAAE,CAAE,CAAC,OAAOpqD,CAAC,CAC/N,SAAS2xN,IAAIhxN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG9kK,EAA6B,IAA1BL,EAAEK,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAItxG,CAAC,EAAMmlK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAK,EAACC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEtlK,EAAEmtI,GAAI3sI,EAAEktH,EAAE,CAAC,EAAEkkG,OAAO5xN,EAAE,GAAGskN,MAAOtkN,EAAE,EAAE6xN,IAAIlxN,EAAEX,EAAEo0B,CAAC,EAAE09L,IAAInxN,EAAEX,EAAEo0B,CAAC,EAAE+5C,IAAItqB,EAAGgwD,GAAIlzG,EAAE,EAAE6sI,GAAIxtI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAG,CAC/N,SAAS+xN,GAAIpxN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAOG,EAAE,EAAG,CAAA,IAAK,GAAI,MAAO,GAAK,IAAK,GAAS,OAANH,EAAEG,EAAE,EAAKH,EAAE,GAAGA,GAAG,IAAIG,EAAE,EAAE,GAAU,KAAUyzB,EAAEmjH,GAAI52I,CAAC,EAAOyzB,IAAI+3B,KAAM/3B,EAAE,GAAI,GAAE49H,MAAMrxJ,EAAE,EAAE,GAAU,KAAUA,EAAE,EAAE,EAAS,KAAQ,QAAQ,IAAK,GAAG,MAAO,EAAM,CAAC,CAC/N,SAASqxN,IAAIrxN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiD,IAA/CtjE,GAAG,CAACh2B,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIopC,GAAG92F,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGp0B,EAAE,KAASG,EAAE,EAAEutH,EAAEtjE,EAAE,EAAEjqD,EAAEutH,EAAE,EAAEvtH,EAAsB,OAAnBK,EAAEqjD,EAAGwpG,EAAIjjG,EAAEjqD,CAAC,EAAE,GAAG,EAAS+/G,GAAI0vC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAG,CAAA,IAAK,GAAE,IAAK,GAAG,CAACR,IAAIA,EAAE,IAAIwlC,GAAKxlC,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEQ,CAAE,CAAE,OAAQR,IAAGgrE,GAAG,EAAGA,GAAK,EAAC+b,GAAM,CAC/N,SAASkrI,GAAItxN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAS,GAAPqzL,GAAI1yL,CAAC,EAAKA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,MAAM0lC,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,GAAK,EAACyqJ,IAAK,CAAA,CAAC,EAAkC,GAAhCnyN,EAAEo0B,GAAG,IAAIg2B,EAAEzpD,EAAE,EAAEH,EAAEo1E,GAAIj1E,EAAE,EAAE,IAAIypD,CAAC,EAAK5pD,EAAE,EAAE,MAAM6lC,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,GAAK,EAAC0qJ,IAAG,CAAE,CAAC,EAAE,OAAAjyN,EAAEg/D,GAAIx+D,EAAE,EAAEypD,EAAE5pD,CAAC,EAAEG,EAAE,EAAEH,EAAE,EAASmqJ,IAAIxqJ,EAAEH,GAAGW,EAAE,EAAE,MAAM,GAAG,CAAC,CAC/N,SAAS0xN,IAAI1xN,EAAE,CAAC,IAAIyzB,EAA+B,GAA7BA,EAAEyvB,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGqkM,GAAK,EAAC,GAAG,EAAKl+L,IAAI25D,GAAK,EAACswC,IAAM,MAAMh4F,EAAI,IAAIyO,GAAI,iCAAiC1gB,EAAE,kBAAkBzzB,EAAE,8EAA8E,CAAC,CAAE,CAChO,SAAS4xN,IAAI5xN,EAAEyzB,EAAE,CAACitC,KAAM,IAAI7gE,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAS,IAAP9kK,EAAE,KAASktH,EAAEt5F,EAAE,KAAKs5F,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,GAAG,EAAK,CAAA1tH,EAAE,IAAYoqD,EAAE+f,IAAInqE,EAAE,CAAC,EAAEG,EAAEikG,IAAIpkG,EAAE,CAAC,EAAEslK,EAAE,IAAIktD,GAAIpoK,EAAEjqD,EAAE,KAAK0jD,EAAG7jD,EAAE,EAAE,EAAE,GAAI,EAAC,GAAI,EAAC,GAAE,EAAG,EAAE,CAAC,EAAEupC,EAAI+7H,EAAE,EAAEtlK,EAAE,CAAC,EAAEW,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE2kK,EAAI9kK,GAAG+oC,EAAI/oC,EAAE,EAAE8kK,CAAC,EAAE9kK,EAAE8kK,EAAE,CAChO,SAASyD,IAAIpoK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAG,CAACi0B,EAAGssI,GAAI//J,EAAE,IAAI,EAAEwjE,GAAIxjE,EAAE,IAAI,UAAWyzB,EAAE,EAAE,EAAc,IAAPg2B,EAAE,KAAS5pD,EAAE4zB,EAAE,GAAG5zB,EAAEA,EAAE,EAAE,CAAC,GAAI,EAAAA,EAAE,EAAE,GAAM,CAACL,EAAE4zC,IAAK6I,GAAIp8C,CAAC,EAAEA,EAAE,EAAE4pD,EAAC,EAAGs2G,GAAI//J,EAAER,CAAC,EAAEgkE,GAAIxjE,EAAER,CAAC,EAAE,KAAK,CAACiqD,GAAG,IAAI,MAAOjqD,EAAE4zC,IAAK6I,GAAIxoB,CAAC,EAAEA,EAAE,EAAG,EAACssI,GAAI//J,EAAER,CAAC,EAAEgkE,GAAIxjE,EAAER,CAAC,EAAEQ,EAAE,GAAGyzB,CAAC,CAAC,CAChO,SAASupK,GAAIh9L,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAoB,OAAlBA,EAAEm5E,GAAI/4E,EAAEkjD,EAAG1jD,EAAE,EAAE,CAAC,EAAKu6D,EAAGn6D,CAAC,IAAIm6D,EAAGv6D,CAAC,GAAGmlK,EAAEzhH,EAAGljD,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAER,EAAEs2I,GAAIliH,EAAE7zB,CAAC,EAAEqtE,GAAIjtE,EAAEH,EAAEg6G,GAAI75G,EAAEH,EAAER,CAAC,CAAC,EAAK4iE,GAAIjiE,EAAE,CAAC,IAAG+sH,EAAED,GAAI9sH,EAAE,EAAEX,EAAE,GAAI,EAACG,EAAEI,EAAE6pD,EAAE,EAAK,EAAEg5H,GAAI11D,EAAE,IAAI4K,GAAI33H,EAAE,EAAE,EAAEA,EAAE,EAAE2kK,EAAEtlK,EAAEoqD,EAAE,EAAK,CAAC,EAAE8kG,GAAIxhC,CAAC,GAASntH,GAASJ,CAAC,CAChO,SAASsyN,IAAI9xN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAsE,IAApE6pD,EAAEvG,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEj0B,EAAE0jD,EAAGgwB,GAAGlzE,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAER,EAAEoqD,EAAE,GAAGA,EAAE,GAAE,CAAE,EAAEsjE,EAAEvtH,EAAE,GAAGA,EAAE,IAAI,EAAQH,EAAE,GAAE,GAAI0tH,EAAE,GAAE,GAAoC,GAAhC43C,EAAEzhH,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAEO,EAAEsjD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAK43C,GAAG/kK,EAAG,OAAOk/D,GAAI6lG,EAAE,EAAE/kK,EAAE,CAAC,EAAG,MAAO,CAACP,EAAE,GAAI,GAAE,CAAC0tH,EAAE,GAAE,EAAG,EAAE1tH,EAAE,GAAI,EAAC,EAAE,EAAE,CACjO,SAAS0yN,IAAIlyN,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,GAAG,CAAC,OAAAA,EAAEiX,IAAGnkI,EAAE,EAAE4pD,CAAC,EAASsjE,CAAC,OAAOt5F,EAAE,CAAU,GAATA,EAAE66I,GAAI76I,CAAC,EAAK83C,EAAG93C,EAAE,EAAE,EAAE,CAAC,GAAG,CAA6B,GAA5Bp0B,EAAE8nM,GAAI19I,EAAEsqG,GAAI72E,EAAG,EAAE19E,EAAEk8C,GAAI77C,EAAE,CAAC,EAAKR,GAAG,GAAGA,EAAEG,EAAE,OAAQ,OAAOA,EAAEH,CAAC,CAAE,OAAOW,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,GAAG,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,OAAO,IAAI,KAAM,OAAM0lC,EAAIjS,CAAC,CAAC,CAAC,CACjO,SAAS4iG,GAAIr2H,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAA8B,GAA5BA,EAAEm0K,IAAKozB,GAAG,EAAGC,IAAKhnM,EAAE,GAAI,EAACyzB,CAAC,EAAKj0B,EAAG,OAAAgsD,GAAG,EAAGtI,EAAG1jD,EAAE,EAAE,EAAE,GAAI,IAAGA,EAAEilI,GAAIwqB,GAAI+3C,GAAIxnM,CAAC,CAAC,GAAGiqD,GAAG5pD,EAAEG,EAAE,GAAGR,CAAC,EAAE0jD,EAAGrjD,GAAG,EAAEG,EAAE,GAAGH,EAAE,GAAK,EAAI,EAAEo/I,GAAIj/I,EAAER,EAAE,EAAI,EAAE,GAAG,GAAU0jD,EAAGuG,EAAE,GAAG,EAAE,GAAGh2B,CAAC,EAAO,MAAMiS,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,GAAE,EAAGkiI,EAAG,CAAC,CAAE,CACjO,SAASn5C,KAAK,CAAC5wD,KAAM,IAAI5rD,EAAE,OAAGgyN,IAAW9uK,EAAG6nG,IAAKngG,KAAMC,IAAKy1D,EAAG,EAAE,IAAI,GAAEhiD,GAAI6iD,GAAG,IAAIj7F,GAAG,EAAE+rM,IAAK,EAACjyN,EAAEkjD,EAAGqoB,EAAGgwC,IAAK3wD,GAAK,EAACC,IAAKy1D,EAAG,EAAE,GAAG,EAAE/E,GAAI1wD,GAAIy1D,EAAG,EAAE,IAAID,IAAI,GAAG,EAAE2xG,IAAI,GAAKE,IAAIlyN,CAAC,EAAEmyN,IAAInyN,CAAC,EAAEw5D,IAAK1O,GAAG,EAAGC,KAAK/qD,EAAE,IAAI4jB,GAAG,EAAE2lC,GAAIsB,GAAIy1D,GAAItgH,CAAC,EAASA,EAAC,CAClO,SAAS85G,IAAI95G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEW,EAAE,EAAE,GAAMiiE,GAAIjiE,EAAE,CAAC,GAAGH,EAAEG,EAAE,EAAEX,EAAEW,EAAE,GAAG,EAAE2/I,GAAI3/I,EAAEyzB,CAAC,EAAEg2B,EAAE,IAAIkuE,GAAI33H,EAAE,EAAE,EAAEA,EAAE,EAAE,KAAKyzB,EAAE5zB,EAAER,CAAC,EAAEG,EAAEi0B,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAER,EAAEilF,IAAIzkF,EAAEyzB,EAAEj0B,CAAC,EAAMA,GAAmBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAE,GAA5B8pC,GAAItpC,EAAE,EAAEypD,CAAC,IAA4Bk2F,GAAI3/I,EAAEyzB,CAAC,EAAEj0B,EAAEi0B,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAIR,GAAGA,EAAE,GAAE,EAAG,CAClO,SAAS4yN,GAAGpyN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAa,GAAXA,EAAE,EAAEiqD,EAAEh2B,EAAE,CAAC,EAAKg2B,GAAGzpD,EAAE,OAAQ,MAAO,GAAuC,IAApCH,GAAGmiH,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAS5pD,GAAG,IAAIA,GAAG,KAAIL,EAAEA,EAAE,IAAIK,EAAE,IAAI,EAAE4pD,EAAK,EAAAA,GAAGzpD,EAAE,UAAcH,GAAGmiH,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAG,OAAAA,EAAEh2B,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAEg2B,EAAIjqD,EAAE,GAAWA,CAAC,CACnO,SAAS6yN,IAAIryN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAAG,EAAE0jD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEX,EAAE6jD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEH,EAAEL,EAAEiqD,EAAEpqD,EAAEo0B,EAAE1wB,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAIvD,CAAC,EAAEuD,EAAK,KAAK,IAAI1D,CAAC,CAAC,EAAKG,GAAG,GAAGA,GAAGH,GAAGQ,EAAE,EAAE4pD,EAAEpqD,EAAE,GAAUG,GAAG,CAACi0B,GAAGp0B,GAAGo0B,GAAG5zB,EAAER,EAAEoqD,EAAEjqD,EAAEH,GAAG,GAAG,EAAEQ,IAAOA,EAAE,CAACR,EAAEoqD,EAAEjqD,GAAU,IAAIm3D,GAAI42E,EAAI1tI,CAAC,EAAE0tI,EAAI9jF,CAAC,CAAC,CAAC,CACnO,SAAS6oK,IAAItyN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,IAAIplK,EAAE,EAAEA,EAAEi0B,EAAE,EAAEj0B,IAAe,IAAVH,EAAEG,EAAEi0B,EAAE,EAAE5zB,EAAMktH,EAAE,EAAEA,EAAEt5F,EAAE,EAAEs5F,IAAe,GAAV43C,EAAE53C,EAAEt5F,EAAE,EAAEg2B,EAAM7pD,EAAEP,EAAEulK,EAAED,EAAE/kK,GAAGI,EAAE,EAAE4kK,GAAG5kK,EAAE,EAAEJ,GAAG,GAAGglK,GAAG,GAAGhlK,EAAEI,EAAE,GAAG4kK,EAAE5kK,EAAE,IAAK,CAACuhM,IAAI9tK,EAAEj0B,EAAEutH,CAAC,GAAGq0E,IAAIphM,EAAEX,EAAEslK,CAAC,GAAG2N,GAAI7+I,EAAEj0B,EAAEutH,CAAC,GAAG,CAACu0E,IAAIthM,EAAEX,EAAEslK,CAAC,GAAI,MAAO,GAAO,MAAO,EAAK,CACnO,SAAS4tD,IAAIvyN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE53C,EAAE/sH,EAAE,EAAE2kK,EAAE3kK,EAAE,EAAEX,EAAE87H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACuiD,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEvtH,GAAGH,EAAE87H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACm6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAEl7G,EAAE,KAAKsjE,EAAE,IAAIjuB,EAAG,EAAGsE,IAAM35C,EAAE,IAAI2L,GAAI3hC,EAAEs5F,EAAE,EAAE,EAAE,EAAE,EAAEltH,EAAEL,CAAC,EAAIiqD,EAAE,IAAI2L,GAAI3hC,EAAE5zB,EAAEL,CAAC,EAAGw3E,GAAGh3E,EAAE,EAAE,EAAEypD,CAAC,CAAC,CACnO,SAAS++D,GAAIxoH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAS,IAAPi0B,EAAE,KAASg2B,EAAE,GAAG8xG,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,EAAE,CAACnkE,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,CAAE,CAAC,CAAC,EAAE0+I,GAAGj1F,CAAC,GAA4B,GAAxB5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEjqD,EAAEm2M,GAAI91M,CAAC,EAAK,CAAC4zB,EAAGA,EAAEj0B,UAAUi0B,GAAGj0B,EAAG,MAAO,GAAO,MAAO,EAAI,CACnO,SAAS0kL,GAAIlkL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAQ,GAAN,EAAEzpD,EAAE,EAAKyzB,GAAGzzB,EAAE,EAAE,MAAM0lC,EAAI,IAAIwM,GAAIuvK,GAAIhuL,EAAEwtD,GAAIjhF,EAAE,CAAC,CAAC,EAAE,GAAGH,GAAGG,EAAE,EAAE,MAAM0lC,EAAI,IAAIwM,GAAIwvK,GAAI7hN,EAAEohF,GAAIjhF,EAAE,CAAC,CAAC,EAAE,OAAAypD,EAAEzpD,EAAE,EAAEH,CAAC,EAAK4zB,GAAG5zB,IAAG4zB,EAAE5zB,EAAEu0I,GAAIp0I,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE5zB,EAAE4zB,CAAC,EAAE2gH,GAAIp0I,EAAE,EAAEH,EAAE,EAAEG,EAAE,EAAEH,EAAE4zB,EAAE5zB,CAAC,EAAEgmE,GAAG7lE,EAAE,EAAEyzB,EAAEg2B,CAAC,EAAEzpD,EAAE,GAAGyzB,EAAEg2B,EAAE5pD,CAAC,EAAEG,EAAE,MAAYypD,CAAC,CACnO,SAAS+sB,GAAGx2E,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAqB,GAAnBA,EAAEvG,EAAGljD,EAAE,EAAE,GAAGyzB,CAAC,EAAE,EAAE,EAAMg2B,EAAoI,OAAGA,EAAE,GAAG5pD,CAAC,GAAG,EAAEG,EAAE,EAAS,IAAiB,GAAjK,GAAVypD,EAAEzpD,EAAE,GAAGyzB,CAAC,EAAKg2B,EAAE,GAAG5pD,CAAC,EAAG,QAAEG,EAAE,EAAEA,EAAE,EAAE,GAAGyzB,EAAEg2B,CAAC,EAAS,GAAU,MAAM/jB,EAAI,IAAIwzG,GAAI,6CAA6C,CAAC,CAAwD,CACpO,SAAS4zB,GAAI9sK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAGzpD,EAAE,EAAU,EAAUA,GAAG,EAAU,IAAQypD,EAAE,EAAEzpD,GAAG,IAAIyzB,EAAEg2B,GAAG,GAAG,GAAG5pD,EAAE,GAAG4zB,EAAEzzB,EAAEA,GAAGyzB,EAAEg2B,EAAEzpD,EAAE,IAAIyzB,EAAEg2B,GAAG,GAAG,EAAE5pD,GAAG4zB,EAAEzzB,IAAIyzB,EAAEg2B,EAAEzpD,EAAE+6H,GAAItnG,EAAEg2B,GAAG,GAAG,EAAE5pD,GAAG4zB,EAAEzzB,IAAIyzB,EAAEg2B,EAAEzpD,EAAE2zG,GAAIlgF,EAAEg2B,GAAG,GAAG,EAAE5pD,GAAG4zB,EAAEzzB,IAAIyzB,EAAEg2B,EAAEzpD,GAAG,GAAGyzB,EAAEg2B,EAAE,EAAEA,GAAG,GAAU5pD,EAAE,EAAE4zB,EAAE,CACpO,SAAS++L,IAAIxyN,EAAE,CAACmmG,GAAG,EAAG,IAAI1yE,EAAE5zB,EAAE4pD,EAAEjqD,EAAqF,IAAnFooH,GAAI,IAAI/iF,EAAIgjF,GAAI,IAAI9iF,GAAI+iF,GAAI,IAAIjjF,EAAIpR,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGyyN,IAAIh/L,CAAC,EAAMj0B,EAAE,IAAI28D,GAAI1oC,CAAC,EAAEj0B,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,EAAK0gE,GAAI0nD,GAAIn+D,EAAE,CAAC,GAAG,KAAI5pD,EAAE,IAAIglC,EAAI+D,EAAIk/E,GAAIjoH,CAAC,EAAE41L,IAAIhsI,EAAE5pD,CAAC,GAAG,OAAOioH,EAAG,CACpO,SAAS4qG,IAAI1yN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE/sH,EAAE,EAAEH,EAAE,EAAE,EAAK0rE,EAAG93C,EAAE,GAAG,GAAGj0B,EAAEmzN,GAAIzvK,EAAGzvB,EAAE,EAAE,EAAE,GAAM,EAAK,EAAEp0B,EAAEonN,GAAIjnN,CAAC,EAAEiqD,EAAE,IAAI/uB,IAAI16B,CAAC,EAAE+3I,GAAI14I,EAAEoqD,CAAC,EAAEmpK,GAAIvzN,EAAEG,CAAC,EAAEi0B,EAAE,IAAIzD,GAAG,EAAG6iM,GAAG,GAAI,MAAM96E,GAAI70F,EAAGzvB,EAAE,GAAGo/L,EAAG,EAAE,EAAE,EAAEppK,CAAC,IAAOsjE,EAAE7pE,EAAGzvB,EAAE,GAAG,EAAEs5F,EAAE,GAAGA,EAAE,GAAI,EAAC/sH,EAAE,EAAE,CAAC,EAAE+sH,EAAE,GAAGA,EAAE,GAAE,EAAG/sH,EAAE,EAAE,CAAC,EAAE,CACpO,SAAS6hL,IAAI7hL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA+D,IAA7DA,EAAE1xH,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,KAAMy/J,IAAK,CAAC,EAAEntL,EAAEI,EAAE,CAAC,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE4kK,EAAMD,EAAE,EAAEA,EAAE3kK,EAAE,OAAO2kK,IAAKl7G,EAAEzpD,EAAE2kK,CAAC,EAAE,EAAEnlK,EAAEQ,EAAE2kK,CAAC,EAAE,EAAE9kK,EAAEG,EAAE2kK,CAAC,EAAE,EAAEtlK,EAAEoqD,EAAE,EAAE5pD,EAAE,EAAED,EAAEP,EAAE,IAAIoqD,EAAE,GAAGpqD,GAAG0tH,EAAEt5F,EAAE,EAAEs5F,EAAE,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAE,EAAEtjE,EAAE,EAAEjqD,EAAE,CAAC,EAAEI,EAAE6pD,EAAE,EAAEjqD,EAAE,EAAEK,EAAE,EAAE+kK,CAAE,CACrO,SAASkuD,IAAI9yN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAuF,OAArFl7G,EAAEvG,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEj0B,EAAE0jD,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEp0B,EAAEoqD,EAAE,EAAEsjE,EAAEvtH,EAAE,EAAEK,EAAEkzN,IAAI1zN,EAAE0tH,CAAC,EAAKltH,GAAG,EAAUA,GAAE8kK,EAAEhnD,GAAIt9B,GAAI,IAAIjrB,GAAI23D,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,IAAI33D,GAAI/1D,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CAAC,EAAS,EAAE2zN,IAAI3zN,EAAE0tH,CAAC,EAAE,GAAG43C,EAAC,CACrO,SAASsuD,IAAIjzN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEpE,GAAI,IAAIulD,GAAI,MAAM,CAAC/qG,EAAE,IAAIA,EAAE,EAAE,IAAIshF,EAAIsvF,GAAG5wK,EAAE,EAAE,CAAC,GAAG,IAAIitD,GAAIjtD,EAAE,EAAE,EAAE,EAAC,EAAG,IAAI42D,IAAIz2D,EAAEyzB,CAAC,CAAC,EAAE4xB,GAAI,IAAIulD,GAAI,MAAM,CAAC/qG,EAAE,IAAIA,EAAE,EAAE,IAAIshF,EAAIuhC,GAAG7iH,EAAE,EAAE,CAAC,GAAG,IAAIitD,GAAIjtD,EAAE,EAAE,EAAE,EAAC,EAAG,IAAI62D,IAAI12D,EAAEyzB,CAAC,CAAC,EAAEg2B,EAAEvG,EAAGulE,GAAI5oH,GAAGmwB,GAAG,EAAG6iM,GAAG,EAAG,EAAE,EAAIppK,GAAG+oG,GAAI/oG,EAAEzpD,EAAEyzB,CAAC,CAAC,CACrO,SAASwrH,GAAIj/I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA8B,GAA5BA,EAAEs0K,IAAKozB,GAAK,EAACC,IAAKhnM,EAAE,GAAE,EAAGyzB,CAAC,EAAKp0B,EAAG,OAAAmsD,KAAMtI,EAAG7jD,EAAE,EAAE,EAAE,GAAI,IAAGA,EAAEolI,GAAIwqB,GAAI+3C,GAAI3nM,CAAC,CAAC,GAAGG,GAAGiqD,EAAEzpD,EAAE,GAAGX,CAAC,EAAE6jD,EAAGuG,GAAG,EAAEzpD,EAAE,GAAGypD,EAAE,GAAK,EAAI,EAAEw1F,GAAIj/I,EAAEX,EAAE,EAAI,EAAE,GAAG,GAAU6jD,EAAG1jD,EAAE,GAAG,EAAE,GAAGi0B,EAAE5zB,CAAC,EAAO,MAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,GAAE,EAAGkiI,EAAG,CAAC,CAAE,CACrO,SAASy5B,GAAIpvL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAW,GAATJ,EAAEQ,EAAE,EAAEyzB,CAAC,EAAKj0B,GAAe,GAAZH,EAAEG,EAAE,EAAEI,EAAEJ,EAAE,EAAKiqD,GAAG,MAAM,IAAIk7G,EAAE,EAAEA,EAAE/kK,EAAE,EAAE+kK,EAAkB,GAAf53C,EAAE7pE,EAAG7jD,EAAEslK,CAAC,EAAE,GAAG,EAAK53C,EAAE,GAAI,GAAEltH,GAAGqkD,GAAGuF,EAAEsjE,EAAE,GAAE,CAAE,EAAG,OAAOA,MAAS,KAAI43C,EAAE,EAAEA,EAAE/kK,EAAE,EAAE+kK,EAAkB,GAAf53C,EAAE7pE,EAAG7jD,EAAEslK,CAAC,EAAE,GAAG,EAAK5qG,EAAGgzD,EAAE,GAAE,CAAE,IAAIhzD,EAAGtQ,CAAC,EAAG,OAAOsjE,EAAK,OAAO,IAAI,CACrO,SAASmmG,GAAIlzN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAG4zB,EAAE,EAAG,MAAMiS,EAAI,IAAIuM,GAAI,mBAAmB,CAAC,EAAE,GAAGxe,GAAG,EAAG,OAAO0nL,GAAS,GAAG1nL,GAAG,GAAG02J,GAAInqL,EAAEm7M,EAAG,GAAGhxB,GAAInqL,EAAEizJ,EAAG,EAAG,OAAOjzJ,EAAE,GAAG,CAACmzN,IAAInzN,EAAE,CAAC,EAAE,CAAK,IAAJH,EAAE,EAAQ,CAACszN,IAAInzN,EAAEH,CAAC,GAAG,EAAEA,EAAE,OAAOmzJ,GAAI63B,IAAIhrL,EAAE4zB,CAAC,EAAEy/L,GAAI10E,GAAIx+I,EAAEH,CAAC,EAAE4zB,CAAC,CAAC,CAAC,CAAC,OAAOynL,IAAIl7M,EAAEyzB,CAAC,CAAC,CACtO,SAASyiK,IAAIl2L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGu6D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,EAAG,MAAO,GAAuC,GAA/BzzB,GAAG,MAAMyzB,GAAG,MAAsBzzB,EAAE,QAAQyzB,EAAE,OAAQ,MAAO,GAAM,IAAI5zB,EAAE,EAAEA,EAAEG,EAAE,OAAO,EAAEH,EAAiB,GAAd4pD,EAAEzpD,EAAEH,CAAC,EAAEL,EAAEi0B,EAAE5zB,CAAC,EAAK,EAAEk6D,EAAGtQ,CAAC,IAAIsQ,EAAGv6D,CAAC,GAAGiqD,GAAG,MAAMvF,GAAGuF,EAAEjqD,CAAC,GAAI,MAAO,GAAO,MAAO,EAAI,CACtO,SAAS4zN,IAAIpzN,EAAE,CAACynD,GAAK,EAAC,IAAIh0B,EAAE5zB,EAAE4pD,EAAwF,IAAtF,KAAK,EAAE/B,IAAI,KAAK,GAAGq0C,GAAK,EAACs+C,IAAK,KAAK,GAAG9yF,IAAG,EAAGC,KAAK,KAAK,EAAExnD,EAAEg4C,GAAI,KAAK,IAAI7sC,GAAG,EAAE6nK,GAAI,IAAI,EAAMvpH,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAM5pD,EAAE,IAAG4zB,EAAE,IAAIqhK,GAAI57E,EAAG9hE,EAAG8pJ,GAAG,CAAC,EAAE/8H,GAAI,GAAG,EAAE,CAACtkE,CAAC,CAAC,CAAC,EAAE+oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAG,CACtO,SAAS4/L,IAAIrzN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAACI,GAAGA,EAAE,EAAE,QAAQ,EAAG,OAAO,KAAqB,IAAhBX,EAAE,IAAIouH,IAAIh6F,EAAE,CAAC5zB,CAAC,EAAML,EAAE,IAAI04B,EAAIl4B,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEspC,GAAIzpC,GAAG2nD,GAAG,EAAG,IAAI/rB,GAAIwuB,CAAC,EAAG,EAAC,OAAAsjE,EAAE1tH,EAAE,EAAE0tH,EAAE,GAAGntH,EAAEP,EAAE,EAAEA,EAAE,EAAE,EAAEO,EAAE,EAAEA,EAAE,GAAGmtH,EAAE,GAAG43C,EAAEtlK,EAAE,EAAEA,EAAE,EAAE,EAAEslK,EAAE,EAAEA,EAAE,GAAUtlK,CAAC,CACtO,SAAS05L,IAAI/4L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAmC,IAAjCA,EAAEr7B,GAAItpI,EAAE,CAAC,EAAE6gE,GAAI8jG,EAAE,IAAIn2J,GAAG,EAAE3O,EAAE,KAASL,EAAEmlK,EAAEtlK,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,IAAOtjE,EAAEjqD,EAAEH,CAAC,EAAKoqD,EAAE,IAAIkhC,KAAMi0D,KAA3B,EAAEv/I,EAAqCo0B,EAAEyvB,EAAG0lE,EAAIn/D,GAAGygE,EAAG,EAAG6iD,GAAG,EAAG,EAAE,EAAK,EAAAt5I,IAAIqrE,EAAK,EAACmE,KAAMxvE,GAAG2vE,MAAgBvjG,GAAGqjD,EAAG0lE,EAAI/oH,EAAEsqH,EAAG,EAAE,EAAE,EAAE,GAAG1gE,CAAC,EAAE5pD,EAAE4pD,EAAE,CACtO,SAAS6pK,IAAItzN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEhlK,GAAGi9D,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEyzB,CAAC,EAAE,GAAG,GAAGijF,GAAI12G,EAAEyzB,CAAC,EAAK7zB,EAAE,EAAE,GAAGC,IAAG4pD,EAAEh2B,EAAEmxI,GAAGhlK,EAAE,EAAEA,EAAE,GAAG,EAAEmtH,EAAE63C,EAAE/kK,EAAKD,EAAE,GAAGglK,EAAE/kK,IAAGL,EAAE,IAAIwgG,GAAIpgG,EAAE,EAAEmtH,CAAC,EAAErf,GAAI1tG,EAAEypD,IAAIjqD,CAAC,GAAEmlK,EAAEC,EAAE/kK,EAAK8kK,GAAG/kK,EAAE,IAAGP,EAAE,IAAI2gG,GAAI2kE,EAAE/kK,EAAE,CAAC,EAAE+tG,GAAIlkD,EAAEzpD,EAAE,EAAE,MAAM,EAAE6tD,GAAI7tD,EAAE,EAAEypD,EAAEpqD,CAAC,GAAG,CACtO,SAASgxN,GAAIrwN,EAAE,CAAC,IAAIyzB,EAAE,GAAG,CAACzzB,EAAE,GAAGA,EAAE,GAAG,KAAMA,EAAE,EAAEA,EAAE,GAAGA,EAAE,CAAC,EAAEkmE,GAAIlmE,EAAEA,EAAE,CAAC,EAAEyzB,EAAEzzB,EAAE,MAAM,CAAC,GAAGA,EAAE,GAAG,KAAM,MAAO,GAAU,GAAGA,EAAE,GAAG,EAAG,MAAO,GAAWyzB,EAAEyvB,EAAGljD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,OAAGyzB,GAAGzzB,EAAE,GAAG,KAAK,IAAI,KAAK,GAAI,GAAE20K,GAAI30K,CAAC,EAASqwN,GAAIrwN,CAAC,GAAcyzB,EAAE,GAAE,CAAG,CACtO,SAAS8/L,IAAIvzN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAkE,GAAhEA,EAAE9kK,EAAE,CAAC8kK,IAAIA,EAAEl/D,GAAI,IAAI92D,GAAI,CAAC,GAAGi9E,GAAI+4C,EAAE+kB,IAAI,CAAC,EAAE8pC,IAAIxzN,EAAE,EAAEyzB,CAAC,EAAEs5F,EAAE0mG,IAAIzzN,EAAE,EAAEyzB,CAAC,EAAKs5F,EAAE,GAAE,GAAI,EAAG2mG,IAAIxwK,EAAG6pE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE43C,CAAC,MAAkB,KAAXtlK,EAAE,EAAE0tH,EAAE,GAAI,EAAKvtH,EAAEutH,EAAE,GAAI,EAACvtH,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,KAAK,EAAE,EAAEk0N,IAAIjqK,EAAEw9G,GAAItC,EAAEtlK,CAAC,CAAC,EAAGw2C,IAAI71C,EAAE,EAAE+sH,EAAEt5F,CAAC,EAAEkgM,IAAIlgM,CAAC,EAAEo4F,GAAI84C,CAAC,CAAC,CACvO,SAASivD,IAAI5zN,EAAE,CAAU,GAAT,KAAK,EAAEA,EAAKA,EAAE,EAAE,EAAE,IAAI2qF,GAAK,EAACi0D,IAAM,KAAK,EAAE5+I,EAAE,EAAE,KAAK,EAAEkjD,EAAG0lE,EAAI5oH,EAAE,EAAE,GAAGkqH,EAAK,EAAC6iD,GAAG,EAAG,EAAE,UAAU/sK,EAAE,EAAE,EAAE,GAAG4+I,GAAK,KAAK,EAAE5+I,EAAE,EAAE,KAAK,EAAEkjD,EAAG0lE,EAAI5oH,EAAE,EAAE,GAAGkqH,EAAK,EAAC6iD,GAAG,EAAG,EAAE,MAAO,OAAMrnI,EAAI,IAAImN,GAAI,QAAQ7yC,EAAE,2BAA2B,CAAC,CAAE,CACvO,SAAS6zN,IAAI7zN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEQ,EAAE,EAAEA,EAAE,EAAEyzB,EAAGzzB,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAER,EAAEQ,EAAE,CAAC,CAAC,EAAMyzB,EAA4CA,GAAGzzB,IAAG+5H,GAAI/5H,EAAEyzB,EAAE,EAAE,EAAEqnI,GAAI96J,EAAEyzB,EAAE,CAAC,EAAE5zB,GAAG4pD,EAAEh2B,EAAE,EAAEg2B,GAAQh2B,EAAE,IAAMqsI,GAAI9/J,EAAEH,GAAG,MAAMwiF,GAAIxiF,EAAE4zB,EAAE,EAAE,EAAE,KAAK5zB,CAAC,IAAhIk6H,GAAI/5H,EAAE,IAAI,EAAE86J,GAAI96J,EAAE,CAAC,EAAE8/J,GAAI9/J,EAAE,IAAI,EAAmG,CACvO,SAAS8zN,IAAI9zN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAE,CAAC,KAAMA,EAAE,EAAEA,EAAE,GAAE,CAAgD,GAA/CyzB,EAAEyvB,EAAIljD,EAAE,EAAcA,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAtBA,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAc,EAAE,EAAEH,EAAE4zB,EAAE,GAAI,EAAI83C,EAAG1rE,EAAE,EAAE,GAAIqjD,EAAGrjD,EAAE,EAAE,EAAE,GAAGwwG,KAAU,CAACrwG,EAAE,GAAGH,EAAE,GAAI,GAAE6oN,IAAI7oN,EAAE,MAAM,IAAI4zB,EAAE,GAAE,GAAI,KAAM,MAAO,GAAU,EAAEzzB,EAAE,CAAE,CAAC,MAAO,EAAK,KAAM,QAAOA,EAAE,EAAEA,EAAE,CAAE,CACvO,SAAS+zN,IAAG/zN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,KAAK,GAAGqnC,GAAI,EAACsO,GAAGx1C,CAAC,EAAEknC,GAAE,EAAG+kJ,GAAGjsL,CAAC,GAAG,KAAK,GAAGw1C,GAAG/hB,CAAC,EAAEw4J,GAAGx4J,CAAC,GAAGuvB,GAAG,KAAK,EAAE,GAAI,EAAC,GAAE,GAAI,KAAK,EAAE,GAAE,EAAG,GAAE,CAAE,EAAE,KAAK,EAAEokI,IAAG,KAAK,CAAC,EAAE,KAAK,EAAEA,IAAG,KAAK,CAAC,EAAEvnL,EAAEupG,GAAGllC,GAAG,CAACsG,EAAIrG,EAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAI,EAAC,GAAE,EAAG,KAAK,EAAE,GAAI,EAAC,GAAE,CAAE,EAAE,CAAC,EAAE,KAAK,EAAEtkE,EAAEm9J,IAAG,IAAI,CAAC,CACxO,SAASg3D,IAAGvgM,EAAE,CAAQ,CAAC8gG,KAAKA,GAAG0/F,OAAU,IAAIxqK,EAAEh2B,EAAE,QAAQ,kIAAkI,SAASzzB,EAAE,CAAC,OAAOs0H,IAAGt0H,CAAG,CAAC,CAAC,EAAE,MAAO,IAAIypD,EAAE,GAAG,CACxO,SAASyqK,IAAIl0N,EAAE,CAACgoH,GAAK,EAAC,IAAIv0F,EAAE5zB,EAAiF,IAA/E,KAAK,EAAEooH,IAAI,KAAK,EAAEC,IAAI,KAAK,GAAGhhE,MAAMC,KAAK,KAAK,GAAG40C,GAAK,EAACs+C,IAAK,KAAK,EAAEr6I,EAAEkzK,GAAI,IAAI,EAAMrzK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE,CAAC4zB,EAAE,GAAGq+C,IAAIwpF,IAAI,IAAI7wH,GAAIyuE,EAAG9hE,EAAG4pJ,GAAG,CAAC,EAAE78H,GAAI,GAAG,EAAE,CAAC1wC,CAAC,CAAC,CAAC,EAAEzzB,CAAC,EAAEyzB,EAAE,EAAE,IAAI+3F,GAAI/3F,EAAE,CAAC,CAAE,CACxO,SAAS0gM,IAAIn0N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAuC,IAArCvtH,EAAEQ,EAAE,EAAE,EAAE,OAAOypD,EAAEwa,EAAGmwJ,GAAGC,GAAI,GAAG70N,EAAE,EAAE,CAAC,EAAMutH,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEtjE,EAAEpqD,EAAE,CAAC,EAAE,IAAIutC,GAAI,IAAI/sC,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4pD,EAAEh2B,EAAE,EAAE,CAAC,EAAE,GAAGA,CAAC,EAAEg2B,EAAEh2B,EAAE,EAAE,CAAC,EAAE,GAAGA,CAAC,EAAE,OAAOg2B,CAAC,CACxO,SAAS6qK,IAAIt0N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAmB,IAAjBA,EAAE/vF,GAAG50E,EAAE,EAAE,MAAM,EAAMR,EAAE,IAAI04B,EAAIl4B,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAoC,IAAnCiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEutH,EAAE,IAAInjF,GAAIvqC,EAAEwnL,GAAIp9H,CAAC,EAAM5pD,EAAE,IAAIgxG,GAAGphC,GAAGpwE,EAAE,EAAE,GAAI,EAAC,IAAIiE,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,GAAGA,EAAE,EAAE,GAAGuV,GAAI+jF,EAAEt5F,EAAE,EAAE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE53C,CAAC,CAAC,OAAO43C,CAAC,CACxO,SAAS4vD,IAAIv0N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4C,GAA1CltH,EAAEqjD,EAAGoqB,GAAIttE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE+sH,EAAEltH,GAAG,KAAK,EAAEA,EAAE,OAAU4zB,GAAGs5F,EAAE,MAAMrnF,EAAI,IAAIs4B,GAAIvqC,EAAEs5F,CAAC,CAAC,EAAE,OAAAvtH,EAAEK,EAAE4zB,CAAC,EAAKs5F,GAAG,EAAGtjE,EAAE,MAAUA,EAAEwa,EAAG4zG,GAAGC,GAAI,IAAI/qD,EAAE,EAAE,EAAE,CAAC,EAAEqnB,GAAIv0I,EAAE,EAAE4pD,EAAE,EAAEh2B,CAAC,EAAEp0B,EAAE0tH,EAAEt5F,EAAE,EAAEp0B,EAAE,GAAG+0I,GAAIv0I,EAAE4zB,EAAE,EAAEg2B,EAAEh2B,EAAEp0B,CAAC,GAAE42L,GAAIj2L,EAAEypD,CAAC,EAAE4hK,IAAIrrN,EAAEyzB,EAAEj0B,CAAC,EAASA,CAAC,CACxO,SAASg1N,IAAK,CAACA,GAAI9vN,EAAI+vN,GAAIvxK,EAAGwpG,EAAItrG,GAAKtE,GAAG,EAAGC,IAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE23K,GAAIxxK,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE43K,GAAIzxK,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE63K,GAAI1xK,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE64J,GAAI6e,EAAG,EAAE7e,GAAI8e,EAAG,EAAE9e,GAAI+e,EAAG,EAAE/e,GAAIgf,EAAG,EAAEC,IAAI,IAAInhL,GAAIwlE,EAAG9hE,EAAGmzE,GAAG,CAAC,EAAE67C,GAAI,IAAI,EAAE,CAACquD,GAAIC,EAAG,CAAC,CAAC,CAAC,CACxO,SAAS91C,IAAI5+K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,KAAK,EAAE,IAAIksC,GAAI,KAAK,EAAEtY,EAAE,KAAK,EAAE,IAAI2kB,GAAI3kB,EAAE,GAAI,CAAA,EAAE5zB,EAAEG,EAAE,EAAE,IAAIm+F,KAAMqqD,GAAK,EAACxoJ,EAAE,EAAE,GAAGuzG,EAAG,EAAEvzG,EAAE,EAAG,KAAK,EAAEH,GAAG,CAAC4zB,EAAE,GAAE,EAAK,KAAK,EAAE,GAAMzzB,EAAE,EAAE,GAAGwzG,EAAG,EAAE3zG,EAAG,KAAK,EAAE,EAAE4zB,EAAE,GAAI,EAAC,GAAE,EAAG,GAAI,GAAEA,EAAE,GAAE,EAAG,KAAK,GAAI,GAAI,KAAK,EAAE,GAAQ,KAAK,EAAE,EAAM,CACzO,SAASk6K,IAAI3tM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAU,IAARQ,EAAEG,EAAE,EAAE,EAAMX,EAAE6jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,EAACp0B,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEG,EAAE,EAAE,GAAGiqD,EAAEjqD,EAAE,EAAEiqD,EAAE,IAAIz5B,GAAG,EAAGk/E,GAAG,EAAGzlD,EAAE,GAAE,IAAKq1C,IAAMmE,IAAK,CAACx5C,EAAE,GAAE,EAAG,EAAEvW,EAAImnC,EAAG5wB,EAAE,GAAGylD,EAAG,CAAC,CAAC,EAAErvG,EAAEqzC,EAAImnC,EAAG5wB,EAAE,GAAGylD,EAAG,CAAC,CAAC,EAAEzlD,EAAE,GAAI,IAAGq1C,EAAK,EAACmE,IAAK,CAACx5C,EAAE,KAAK,EAAE5pD,EAAG,CACzO,SAASi1N,IAAI90N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEQ,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGo4J,GAAG,EAAG,GAAG,EAAErmL,EAAE6jD,EAAGulE,GAAIh1F,EAAEshM,EAAG,EAAE,EAAE,EAAEv1N,EAAE0jD,EAAG0lE,EAAI5oH,EAAEm2J,EAAG,EAAE,EAAE,EAAK32J,IAAIu+F,GAAK,EAACh8B,KAAMviE,GAAGwiE,GAAQ3iE,IAAIy/F,EAAK,EAAC85C,MAAMv5I,EAAE21N,GAAIvhM,EAAE5zB,CAAC,EAAER,GAAGu5I,KAAMv5I,EAAE+qL,GAAIvqL,CAAC,KAAS4pD,EAAEwrK,IAAIxhM,CAAC,EAAEg2B,EAAE,EAAGpqD,EAAE+qL,GAAIvqL,CAAC,EAAIR,EAAE0kL,GAAIqG,GAAIvqL,CAAC,CAAC,GAAGspK,GAAI11I,EAAEshM,GAAI11N,CAAC,CAAC,CACzO,SAASwuN,IAAI7tN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkD,IAAhDA,EAAE/sH,EAAE,EAAEyzB,EAAE,GAAGA,EAAE,GAAGu0C,GAAI+kD,EAAE,IAAIx2G,GAAG,EAAE/W,EAAEutH,EAAE,EAAE,OAAO,EAAE,EAAMtjE,EAAE,EAAEA,EAAEjqD,EAAEiqD,IAAKpqD,GAAGw9D,GAAIpT,EAAEsjE,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEtjE,CAAC,EAAE,GAAG,GAAGpqD,EAAE,GAAGqnC,GAAIrnC,EAAE,EAAEo0B,EAAE,CAAC,EAAE,IAAI5zB,EAAEL,EAAEK,EAAEktH,EAAE,EAAE,OAAOltH,IAAKR,GAAGw9D,GAAIh9D,EAAEktH,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEltH,CAAC,EAAE,GAAG,GAAGR,EAAE,GAAGqnC,GAAIrnC,EAAE,EAAEo0B,EAAE,CAAC,CAAE,CACzO,SAASuyL,IAAIhmN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAsC,OAApCoqD,EAAEzpD,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEj0B,EAAEQ,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAK4pD,EAAE,GAAG,MAAMjqD,EAAE,GAAG,MAAMH,EAAEwyG,GAAIpoD,EAAE,EAAEjqD,EAAE,CAAC,EAAEH,EAAE,EAAE0mN,GAAI/lN,EAAEyzB,EAAE5zB,CAAC,EAAER,EAAE,GAAG0mN,GAAI/lN,EAAEH,EAAE4zB,CAAC,EAASp0B,GAAUoqD,EAAE,GAAG,MAAMs8J,GAAI/lN,EAAEyzB,EAAE5zB,CAAC,EAAS,IAAWL,EAAE,GAAG,MAAMumN,GAAI/lN,EAAEH,EAAE4zB,CAAC,EAAS,GAAS,CAAC,CACzO,SAASyhM,IAAIl1N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAKW,EAAE,MAAMH,EAAEG,EAAE,GAAE,EAAGX,EAAEW,EAAE,GAAI,EAAC,EAAEA,EAAE,EAAEA,EAAE,GAAGH,EAAEG,EAAE,GAAGH,EAAE4zB,CAAC,CAAC,EAAEg2B,EAAEzpD,EAAE,GAAG,EAAE,KAAKyzB,EAAE5zB,EAAER,CAAC,EAAKW,EAAE,GAAE,GAAIR,EAAEQ,EAAE,GAAGyzB,EAAE,IAAI,EAAMj0B,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,MAAvBQ,EAAE,GAAGypD,CAAC,GAA4BzpD,EAAE,GAAGypD,CAAC,IAAQ0zD,IAAIn9G,EAAEyzB,CAAC,EAAKzzB,EAAE,GAAE,IAAIR,EAAEQ,EAAE,GAAGyzB,EAAE,IAAI,EAAIj0B,GAAGA,EAAE,GAAI,GAAE,CACzO,SAASgqC,GAAIxpC,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4C,IAA1CA,EAAE06C,GAAIznK,EAAE,EAAE,GAAI,EAACyzB,CAAC,EAAEj0B,EAAE,IAAIwiB,GAAIniB,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMX,EAAEW,EAAE,EAAE,EAAEX,GAAG,GAAIoqD,EAAE5pD,EAAER,CAAC,EAAE0tH,EAAE,GAAGtjE,EAAE,GAAI,CAAA,GAAGyc,GAAI1mE,EAAEiqD,CAAC,EAAE,CAACo6I,IAAI7jM,EAAER,CAAC,GAAGyiE,GAAIjiE,EAAE,CAAC,GAAGqpC,GAAIrpC,EAAEyzB,EAAE,GAAI,EAACq5F,GAAI9sH,EAAE,EAAEyzB,GAAG42C,GAAG,EAAG+b,IAAK,KAAK,GAAG,EAAK,EAAE0mC,GAAI9sH,EAAEyzB,EAAE,GAAI,EAAC,EAAE,EAAEA,EAAE,KAAK,KAAK,GAAG,EAAK,CAAC,CAAC,CACzO,SAASy/H,IAAK,CAACA,GAAIxuJ,EAAI,IAAI1E,EAAEyzB,EAAwD,IAAtD0hM,GAAIlxJ,EAAGmxJ,GAAG5qJ,EAAI,GAAG,GAAG,EAAE,CAAC,EAAE6qJ,GAAIpxJ,EAAGmxJ,GAAG5qJ,EAAI,GAAG,GAAG,EAAE,CAAC,EAAExqE,EAAE,EAAMyzB,EAAE,EAAEA,GAAG,GAAGA,IAAK0hM,GAAI1hM,CAAC,EAAEy+H,GAAIlyJ,CAAC,EAAEq1N,GAAI5hM,CAAC,EAAEy+H,GAAI5gD,GAAItxG,EAAEyzB,CAAC,CAAC,EAAEzzB,EAAE+1J,GAAI/1J,EAAE,CAAC,EAAE,KAAKyzB,EAAE4hM,GAAI,OAAO5hM,IAAK0hM,GAAI1hM,CAAC,EAAEu/H,GAAImiE,GAAI1hM,EAAE,CAAC,EAAE0hM,GAAI,CAAC,CAAC,EAAEE,GAAI5hM,CAAC,EAAEu/H,GAAIqiE,GAAI5hM,EAAE,CAAC,GAAGowC,GAAK,EAACyxJ,GAAG,CAAG,CAC1O,SAASC,IAAIv1N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAG/sH,EAAE,IAAI4vF,GAAG,EAAGq2D,IAAa,IAAK5mJ,EAAEo0B,EAAE,EAAE,EAAE5zB,EAAE4zB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAK,EAAAA,EAAE,IAAGg2B,EAAEh2B,EAAE,EAAEs5F,EAAEtjE,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEjqD,EAAEH,GAAGoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAMjqD,EAAEutH,IAAoBt5F,EAAE,IAAGg2B,EAAEh2B,EAAE,EAAEs5F,EAAEtjE,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEjqD,EAAEiqD,EAAE,EAAE,EAAE5pD,EAAKL,EAAEutH,IAA4B,CAC1O,SAASyoG,IAAIx1N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE+rH,GAAIn4F,EAAE,0BAA0B,CAAC,EAAE5zB,EAAEqjD,EAAGm0F,GAAI1zB,GAAI4tC,GAAI5tC,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIqR,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAEm5I,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAG,EAAG+0C,GAAK,CAAA,CAAC,CAAC,EAAE,EAAE,EAAEn2E,GAAIxlD,EAAE,GAAI,EAAC,IAAI2R,GAAG,EAAEq6G,GAAIp4F,CAAC,CAAC,CAC1O,SAASgiM,IAAIz1N,EAAE,CAACi4D,GAAG,EAAG,IAAIxkC,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAV9kK,EAAE,IAAImhE,GAAQxhE,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAMutH,EAAE,IAAI70F,EAAIuxB,EAAE,CAAC,EAAEsjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE43C,EAAE3kK,EAAE,EAAEX,EAAE,CAAC,EAAEo0B,EAAEyvB,EAAGi4B,GAAIt7E,EAAE8kK,CAAC,EAAE,EAAE,EAAMlxI,IAAGA,EAAE,IAAIoR,EAAIukB,GAAIvpD,EAAE8kK,EAAElxI,CAAC,GAAEA,EAAE,GAAGp0B,CAAC,EAAG,OAAOQ,CAAC,CAC1O,SAAS61N,IAAI11N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4D,IAA1DvtH,EAAEi0B,EAAE,EAAE,EAAEzzB,EAAE,EAAEikE,EAAGmwJ,GAAGC,GAAI,GAAG70N,EAAE,EAAE,CAAC,EAAEQ,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGzwL,EAAE,GAAG,CAAC,EAAMutH,EAAEusC,GAAI7lI,EAAE,EAAE,CAAC,EAAEs5F,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,EAAE,EAAE/sH,EAAE,EAAEX,EAAE,CAAC,EAAE,IAAIutC,GAAI,IAAI6c,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAEg2B,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAEzpD,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAE,GAAGA,CAAC,EAAEG,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAE,GAAGA,CAAC,CAAE,CAC1O,SAAS81N,IAAI31N,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcqgL,GAAIrgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI8vG,GAAIrgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,aAAayqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,aAAayqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,WAAWyqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,WAAWyqB,GAAIzqB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB4nC,GAAI5nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CAC1O,SAASmiM,GAAI51N,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAcogL,GAAIpgL,CAAC,GAAEyzB,EAAE,IAAI88C,GAAI6vG,GAAIpgL,CAAC,CAAC,EAAEyzB,EAAE,GAAG,cAAc2qB,GAAI3qB,GAAGzzB,EAAE,GAAG,MAAM,CAAC,EAAEyzB,EAAE,GAAG,aAAa2qB,GAAI3qB,GAAGzzB,EAAE,GAAG,MAAM,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB0qB,GAAI1qB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB0qB,GAAI1qB,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,IAAWA,EAAE,EAAC,CAC1O,SAASoiM,IAAI71N,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAE,OAAA2rE,EAAGvrE,EAAE,GAAG,EAAE,GAAG65H,GAAI7N,GAAI9oE,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE+5H,GAAI/5H,EAAEH,CAAC,EAAEG,EAAE,EAAEypD,EAAE46H,GAAIrkL,EAAER,CAAC,EAAEglL,GAAIxkL,EAAEX,CAAC,EAAE+kL,GAAIpkL,EAAE+sH,CAAC,EAAEu3D,GAAItkL,EAAE,EAAK,EAAE48J,GAAI58J,EAAE,EAAI,EAAEqlL,GAAIrlL,EAAE2kK,CAAC,EAAE9H,GAAI78J,EAAE,EAAI,EAAE+6J,GAAI/6J,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEu7C,GAAIv7C,EAAE,CAAC,EAAEJ,EAAEm9K,GAAI/8K,EAAEyzB,EAAE,IAAI,EAAI7zB,GAAGA,EAAE,GAAI,EAACqlK,GAAIjlK,EAAE,EAAK,EAASA,CAAC,CAC1O,SAASkvK,IAAIlvK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAuB,OAArBQ,EAAEqjD,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAM5zB,IAAG4pD,EAAE,IAAI+vF,GAAI/lH,CAAC,EAAEj0B,GAAGi6I,GAAK,EAAC9zE,GAAK,KAAKlc,EAAE,GAAEpqD,EAAEm/D,GAAIh/D,EAAE,EAAEuD,EAAK,KAAK,IAAI,EAAE+tE,GAAItxE,EAAE01E,GAAI,EAAE,CAAC,CAAC,CAAC,EAAEyO,IAAIl6B,EAAEylH,IAAIlvK,EAAEX,CAAC,CAAC,GAAGsmE,GAAI,KAAKlc,EAAE,GAAG,QAAQ,GAAGuyB,IAAIvyB,EAAE,IAAI9jD,EAAG,EAAE4jD,GAAIvpD,EAAE,EAAE2lE,GAAI,KAAKlc,EAAE,EAAEA,CAAC,EAASA,EAAU,CAC3O,SAASqsK,IAAI91N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,IAAI6kC,EAAIhlC,EAAEk2N,IAAI/1N,EAAE,CAAC,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEH,EAAEG,EAAE,EAAEizC,GAAImnC,GAAGwuC,EAAI5oH,EAAE,GAAG0qB,GAAG,EAAG8vK,IAAG,CAAE,CAAC,EAAEx6L,EAAE,EAAEq6E,EAAGuuC,EAAI5oH,EAAE,GAAGgwB,GAAK,EAAC4gK,GAAK,CAAA,EAAE5wL,EAAE,GAAG,OAAOA,EAAE,EAAE,GAAGkzC,EAAIlzC,EAAE,CAAC,EAAE,EAAGA,EAAE,GAAGkzC,EAAIlzC,EAAE,CAAC,EAAIA,EAAE,GAAGkzC,EAAIlzC,EAAE,CAAC,EAAG68K,IAAI78K,CAAC,EAAEq0L,IAAIr0L,CAAC,EAAEg2N,IAAIh2N,CAAC,EAAE8iF,EAAI9iF,EAAE,GAAGwqB,GAAG,EAAGowK,IAAK56L,EAAE,CAAC,CAAC,CAC3O,SAASi2N,IAAIj2N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA0C,IAAxC6pD,EAAE,EAAE7pD,EAAEC,EAAM4zB,IAAGg2B,EAAE5pD,GAAGG,EAAE,EAAE,OAAO,GAAGJ,GAAG,IAAOP,EAAE,IAAI64B,EAAIl4B,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAwD,IAAvDG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEyjF,EAAItjF,GAAG8tB,GAAK,EAAC+/J,KAAMpyF,GAAK,EAACqqD,GAAK,EAAC9lJ,EAAE,EAAE,EAAEiqD,EAAMk7G,EAAEu6B,GAAI1/L,GAAGs/F,EAAG,EAAGsE,GAAG,EAAG,KAAKuhE,EAAE,MAAO53C,EAAE7pE,EAAGyhH,EAAE,KAAK,EAAE,EAAE53C,EAAE,EAAE,EAAEtjE,EAAEA,GAAG7pD,CAAC,CAAC,CAC3O,SAAS60J,GAAIz0J,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAKW,EAAE,MAAMX,EAAEW,EAAE,GAAE,EAAG+gL,GAAI/gL,EAAEyzB,EAAE5zB,CAAC,EAAE4pD,EAAEzpD,EAAE,GAAG,EAAE,KAAKH,EAAE4zB,EAAEp0B,CAAC,EAAKW,EAAE,GAAE,GAAIR,EAAEQ,EAAE,GAAGH,EAAE,IAAI,EAAEG,EAAE,OAAOR,EAAEQ,EAAE,GAAGH,EAAEL,CAAC,GAAOA,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAI,GAA3BQ,EAAE,GAAGypD,CAAC,GAA4BzpD,EAAE,GAAGypD,CAAC,IAAQs3H,GAAI/gL,EAAEyzB,EAAE5zB,CAAC,EAAKG,EAAE,GAAE,IAAIR,EAAEQ,EAAE,GAAGH,EAAE,IAAI,EAAIL,GAAGA,EAAE,GAAI,GAAE,CAC3O,SAAS02N,GAAIl2N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAY,OAAV+kK,EAAE3kK,EAAE,GAAGH,CAAC,EAAK8kK,GAAG9kK,GAAGktH,EAAE/sH,EAAE,EAAEyzB,CAAC,EAAE7zB,EAAE+kK,EAAE13F,GAAIjtE,EAAEyzB,EAAEzzB,EAAE,GAAGyzB,EAAE7zB,CAAC,CAAC,EAAEP,EAAE0tH,EAAE/sH,EAAE,GAAGyzB,EAAE7zB,EAAEP,CAAC,EAAKW,EAAE,GAAE,IAAIypD,EAAE5pD,EAAEL,EAAEQ,EAAE,GAAGypD,EAAE,IAAI,EAAE,CAACvG,EAAGyhH,EAAE,EAAE,EAAE,GAAI,IAAGnlK,EAAEQ,EAAE,GAAGJ,EAAEJ,CAAC,GAAKA,GAAGA,EAAE,MAAKyiE,GAAIjiE,EAAE,CAAC,GAAGqpC,GAAIrpC,EAAEA,EAAE,GAAG,EAAEH,EAAE8kK,EAAElxI,EAAE,EAAK,CAAC,EAASkxI,GAAc9kK,CAAE,CAC3O,SAASo7D,IAAIj7D,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAE5pD,EAAE,EAAE,GAAK,IAAIR,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEyzC,GAAImnC,GAAGp6E,EAAE,EAAE,GAAG,IAAI22D,GAAIn3D,EAAEi0B,CAAC,CAAC,CAAC,CAAC,EAAEj0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzC,GAAImnC,GAAGp6E,EAAE,EAAE,GAAG,IAAI22D,GAAIn3D,EAAEi0B,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOzzB,CAAC,CAC5O,SAASkwI,IAAIlwI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAqF,GAAnFQ,GAAG4zB,EAAEyvB,EAAGxH,GAAIg9F,EAAE,EAAE,CAAC,EAAE,IAAI1zD,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAGp0B,EAAE6jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGysD,KAAM,EAAE,EAAKt3K,EAAG,IAAIG,EAAE,IAAI04B,EAAI74B,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEu6D,EAAG6uD,EAAIn/D,EAAEwkG,EAAG,CAAC,IAAIl0F,EAAG/5D,CAAC,GAAGqzE,GAAI,IAAIstE,GAAIl3F,EAAE,CAAC,CAAC,GAAG8jD,GAAI1tG,EAAE4pD,EAAE,CAAC,EAAG,OAAO5pD,CAAC,CAC5O,SAAS01M,IAAIv1M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAAA3kK,EAAE,EAAEH,EAAE,CAAC,EAAU,KAAIL,EAAE,IAAIqxG,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAG,CAAwB,IAAvBiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEmlK,EAAEl7G,EAAE,EAAE,EAAMsjE,EAAE,IAAIlc,GAAGphC,GAAGm3G,GAAIjiB,CAAC,EAAE,EAAE,KAAK,IAAIrhK,EAAE,CAAC,EAAEo7I,GAAG3xB,CAAC,GAAI1tH,EAAE6jD,EAAGu7F,GAAG1xB,CAAC,EAAE,EAAE,EAAE1tH,EAAE,EAAE,GAAGo0B,IAAIzzB,EAAE,EAAEX,EAAE,CAAC,EAAE,IAAMk2M,IAAIv1M,EAAEyzB,EAAEkxI,CAAC,CAAC,CAAC3kK,EAAE,EAAEH,EAAE,CAAC,EAAE,GAAI,CAC5O,SAASg0L,IAAI7zL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkB,GAAhB6pD,EAAE09H,IAAInnL,EAAE,GAAG,GAAG,EAAKypD,GAAG,EAAGzpD,EAAE,GAAG,aAAUX,EAAE4wJ,GAAGjwJ,EAAE,EAAE,EAAKypD,GAAG,EAAGjqD,EAAEsrK,GAAI9qK,EAAEyzB,CAAC,EAAEzzB,EAAE,GAAGX,EAAEG,GAAG,EAAE,EAAE,CAAC,MAAM,CAAwB,IAAvButH,EAAE9oD,EAAGC,GAAGC,GAAI,EAAE1a,EAAE,EAAE,EAAE,CAAC,EAAM5pD,EAAE,EAAE8kK,EAAE,EAAE/kK,EAAE,EAAEC,GAAG,IAAIA,IAAI,EAAGA,GAAG4zB,EAAE,EAAEkxI,EAAG3kK,EAAE,GAAGH,IAAQktH,EAAEntH,GAAG,EAAEP,EAAEslK,GAAG,GAAG3kK,EAAE,GAAG+sH,CAAC,CAAE/sH,EAAE,IAAI,CAACyzB,CAAC,CAC5O,SAAS0iM,IAAIn2N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiD,IAA/CtjE,GAAG,CAACh2B,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIopC,GAAG92F,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAGp0B,EAAE,KAASG,EAAE,EAAEutH,EAAEtjE,EAAE,EAAEjqD,EAAEutH,EAAE,EAAEvtH,EAAsB,OAAnBK,EAAEqjD,EAAGwpG,EAAIjjG,EAAEjqD,CAAC,EAAE,GAAG,EAAS+/G,GAAI0vC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,CAAC,CAACR,IAAIA,EAAE,IAAIwlC,GAAKxlC,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEQ,EAAE,KAAK,CAAC,CAAE,OAAQR,IAAGgrE,GAAK,EAACA,GAAK,EAAC+b,GAAM,CAC5O,SAASkxH,GAAIt3M,EAAE,CAAC,IAAIyzB,EAAM,OAAJA,EAAE,EAASzzB,EAAC,CAAE,IAAK,KAAIyzB,EAAE,EAAE,MAAM,IAAK,KAAIA,EAAE,EAAE,MAAM,IAAK,KAAIA,EAAE,EAAE,MAAM,IAAK,KAAIA,EAAE,GAAG,MAAM,IAAK,KAAIA,EAAE,GAAG,MAAM,IAAK,KAAIA,EAAE,GAAG,MAAM,IAAK,IAAGA,EAAE,IAAI,MAAM,IAAK,IAAGA,EAAE,IAAI,MAAM,IAAK,IAAGA,EAAE,IAAI,MAAM,IAAK,IAAGA,EAAE6pI,EAAI,CAAC,OAAO7pI,CAAC,CAC5O,SAASkuJ,IAAI3hL,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGm6D,EAAG/5D,CAAC,IAAI+5D,EAAGtmC,CAAC,GAAGg2B,GAAGjqD,EAAE,CAAC47M,IAAIp7M,EAAEypD,EAAE5pD,CAAC,EAAE,MAAM,CAAC,IAAI8kK,EAAE,EAAEA,EAAEl7G,EAAEk7G,IAAI,CAAY,IAAX53C,EAAE,EAAE1tH,EAAEW,EAAE2kK,CAAC,EAAM/kK,EAAE,EAAEA,EAAEJ,EAAEI,IAAKmtH,EAAEhiB,GAAIA,GAAIgrD,GAAIl7B,GAAIx7H,EAAEo4K,EAAG,EAAE58C,GAAIpnG,EAAE7zB,CAAC,EAAE63K,EAAG,CAAC,EAAE58C,GAAIh7H,EAAE8kK,EAAE/kK,CAAC,EAAE63K,EAAG,CAAC,EAAE58C,GAAI5tB,GAAI8f,CAAC,EAAE0qD,EAAG,CAAC,EAAE53K,EAAE8kK,EAAE/kK,CAAC,EAAEqtG,GAAI8f,CAAC,EAAEA,EAAErb,GAAIqb,EAAE,EAAE,EAAEltH,EAAE8kK,EAAEnlK,CAAC,EAAEytG,GAAI8f,CAAC,CAAC,CAAC,CAC7O,SAASgpG,IAAI/1N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA2B,IAAzBD,EAAE,EAAED,EAAE,EAAEplK,EAAEQ,EAAE,EAAE2kK,EAAEnlK,EAAE,EAAE,KAASiqD,EAAEjqD,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGiqD,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAEh2B,GAAG5zB,EAAE,GAAG2lE,GAAI3lE,CAAC,EAAEA,EAAE,GAAGilK,EAAErxI,EAAE,EAAEs5F,EAAEt5F,EAAE,EAAEoxI,GAAGC,EAAE/3C,EAAE63C,GAAGE,EAAE/3C,EAAoD,OAAlDntH,EAAEmD,EAAK,KAAK,KAAK,IAAI4hK,EAAEC,EAAE,EAAEA,EAAEC,EAAEA,CAAC,EAAEA,EAAExlK,EAAE,GAAG,IAAIslK,EAAE,GAAMtlK,GAAG,EAAUO,EAASA,EAAEP,CAAC,CAC7O,SAASw5G,IAAI74G,EAAEyzB,EAAE,CAAIA,EAAE,GAAG,IAAG,MAAMzzB,EAAE,CAAC,EAAGA,EAAE,EAAEkzC,GAAKg/B,GAAIz+C,EAAE,GAAG,CAAC,EAAE4mD,EAAG5mD,EAAE,EAAE,EAAE,CAAC,EAAC,EAAKzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEkzC,GAAKg/B,GAAIz+C,EAAE,GAAG,CAAC,EAAE4mD,EAAG5mD,EAAE,EAAE,EAAE,CAAC,EAAC,CAAE,EAAG,MAAMzzB,EAAE,CAAC,EAAGA,EAAE,EAAEkzC,GAAKg/B,GAAIz+C,EAAE,GAAG,CAAC,EAAE4mD,EAAG5mD,EAAE,EAAE,EAAE,CAAC,EAAC,EAAKzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEkzC,GAAKg/B,GAAIz+C,EAAE,GAAG,CAAC,EAAE4mD,EAAG5mD,EAAE,EAAE,EAAE,CAAC,GAAG,EAAG,CAC7O,SAAS2iM,GAAIp2N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAS,IAAPi0B,EAAE,KAASg2B,EAAE,GAAG8xG,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,EAAE,CAACnkE,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,CAAE,CAAC,CAAC,EAAE0+I,GAAGj1F,CAAC,GAA4B,GAAxB5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEjqD,EAAEm2M,GAAI91M,CAAC,EAAK,CAAC4zB,EAAGA,EAAE4yE,GAAI7mG,CAAC,UAAUi0B,GAAG4yE,GAAI7mG,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CAC7O,SAAS2hD,GAAInhD,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAKW,EAAE,MAAMH,EAAEG,EAAE,EAAEX,EAAEW,EAAE,KAAK2/I,GAAI3/I,EAAEyzB,CAAC,EAAEg2B,EAAEzpD,EAAE,GAAG,EAAE,KAAKyzB,EAAE5zB,EAAER,CAAC,EAAKW,EAAE,MAAMR,EAAEQ,EAAE,GAAGyzB,EAAE,IAAI,EAAEzzB,EAAE,OAAOR,EAAEQ,EAAE,GAAGyzB,EAAEj0B,CAAC,GAAOA,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAI,GAA3BQ,EAAE,GAAGypD,CAAC,GAA4BzpD,EAAE,GAAGypD,CAAC,IAAQk2F,GAAI3/I,EAAEyzB,CAAC,EAAKzzB,EAAE,GAAE,IAAIR,EAAEQ,EAAE,GAAGyzB,EAAE,IAAI,EAAIj0B,GAAGA,EAAE,GAAI,GAAE,CAC7O,SAAS62N,IAAIr2N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAKW,EAAE,GAAE,GAAIX,EAAEW,EAAE,GAAI,EAAC,EAAEA,EAAE,EAAEA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,EAAE4pD,EAAEzpD,EAAE,GAAG,EAAE,KAAKH,EAAE4zB,EAAEp0B,CAAC,EAAKW,EAAE,GAAI,GAAER,EAAEQ,EAAE,GAAGH,EAAE,IAAI,EAAML,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,MAAvBQ,EAAE,GAAGypD,CAAC,GAA4BzpD,EAAE,GAAGypD,CAAC,IAAQ,EAAEzpD,EAAE,EAAEA,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,EAAKG,EAAE,OAAMR,EAAEQ,EAAE,GAAGH,EAAE,IAAI,EAAIL,GAAGA,EAAE,GAAI,GAAE,CAC/O,SAAS82N,IAAIt2N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAoB,IAAlBA,EAAEQ,EAAE,OAAOyzB,EAAE,KAASg2B,EAAE,EAAEA,EAAEjqD,EAAEiqD,IAAK5pD,GAAGmiH,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,GAAMwV,GAAI,gBAAgBiW,GAAIr1E,CAAC,CAAC,GAAG,GAAO4zB,IAAGA,EAAE,IAAIwiB,GAAIwT,EAAE,GAAG4R,GAAI5nC,EAAEzzB,EAAE,OAAO,EAAEypD,CAAC,CAAC,GAAEh2B,EAAE,GAAG,KAAK2nF,GAAI3nF,EAAE5zB,EAAEklG,EAAG,GAAStxE,GAAG2nF,GAAI3nF,EAAE5zB,EAAEklG,EAAG,EAAE,OAAOtxE,EAAEA,EAAE,EAAEzzB,CAAC,CAC7O,SAASu2N,IAAIv2N,EAAE,CAAC,IAAIyzB,EAAE,GAAG,CAACzzB,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,8CAA8C9yC,EAAE,CAAC,CAAC,EAAa,GAAXyzB,EAAEqgH,IAAI9zI,EAAE,CAAC,EAAKyzB,GAAG,KAAM,MAAMiS,EAAI,IAAIoN,GAAI,6CAA6C9yC,EAAE,EAAE,MAAMq5L,KAAKp9I,GAAIq9I,EAAE,EAAEA,GAAG,GAAGC,GAAG,CAAC,EAAE,OAAOr2I,EAAGzvB,EAAE,GAAG,CAAC,CAC9O,SAAS0wG,GAAInkI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAW,OAATA,EAAEW,EAAE,GAAE,EAAMX,GAAMA,EAAE,GAAE,IAAIG,EAAEw5E,GAAIh5E,EAAEX,CAAC,EAAKG,GAAGH,IAAGQ,EAAEG,EAAE,GAAE,EAAGypD,GAAGh2B,EAAEzzB,EAAE,GAAI,EAACyzB,GAAG,EAAEzzB,EAAE,GAAG,IAAI,EAAEA,EAAE,GAAI,EAAC,GAAGA,EAAE,GAAGyzB,EAAE,KAAK,IAAI,GAAGzzB,EAAE,GAAGkjD,EAAG1jD,EAAE,EAAE,EAAEK,CAAC,EAAI4pD,GAAGA,EAAE,KAAKzpD,EAAE,MAAMA,EAAE,MAAMH,EAAE,IAAIypC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAEH,EAAER,EAAEG,CAAC,CAAC,EAASA,GAAWH,CAAC,CAC9O,SAASm3N,IAAIx2N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAc,IAAZmtH,EAAE,EAAE1tH,EAAEW,EAAE,EAAE,EAAMypD,EAAE,EAAEA,EAAEpqD,EAAE,EAAE,OAAO,EAAEoqD,EAAwC,IAArCk7G,GAAG9nG,GAAIpT,EAAEpqD,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAEoqD,CAAC,EAAE,GAAG,GAAOjqD,EAAEiqD,EAAE,EAAEjqD,EAAEH,EAAE,EAAE,OAAO,EAAEG,EAAGI,GAAGi9D,GAAIr9D,EAAEH,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAEG,CAAC,EAAE,GAAG,GAAGK,EAAE0gJ,GAAIokB,EAAE,EAAE/kK,EAAE,CAAC,EAAE6zB,EAAE5zB,EAAEG,EAAE,EAAE2kK,EAAE,CAAC,EAAE/kK,EAAE,CAAC,EAAEmtH,GAAG/sH,EAAE,EAAE2kK,EAAE,CAAC,EAAE/kK,EAAE,CAAC,EAAE6zB,EAAEA,EAAG,OAAOs5F,CAAC,CAC/O,SAASmtF,IAAIl6M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,GAAG,CAAA62E,GAAIjjD,GAAGnG,GAAG,EAAG4jJ,GAAK,IAASrxK,EAAEmuM,IAAI9qJ,EAAG0lE,EAAIn1F,EAAEytH,GAAG,EAAE,GAAG,EAAEh+F,EAAG0lE,EAAI5oH,EAAEkxK,EAAG,EAAE,GAAG,CAAC,EAAEpuF,EAAIrvD,EAAEytH,IAAIrhJ,CAAC,EAAK,CAAA6+I,GAAG,IAAI7tC,GAAGphC,GAAGk3G,GAAIlzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,CAAC,GAAU,OAAOzD,EAAE,EAAG,CAAA,IAAK,GAAEijF,EAAIrvD,EAAEy9I,IAAKlgF,GAAG,EAAG0sD,GAAK,EAAC,MAAM,IAAK,GAAE56D,EAAIrvD,EAAEy9I,IAAKlgF,GAAG,EAAG4sD,GAAK,CAAC,CAAC,CAC/O,SAASwnE,IAAIplN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE42N,IAAIz2N,CAAC,EAAEA,EAAE,GAAGH,EAAE,IAAI4lC,GAAG4f,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAImK,IAAI/9B,CAAC,CAAC,EAAEA,GAAG62N,IAAI12N,EAAEkjD,EAAG0lE,EAAIn1F,EAAE,GAAGnG,GAAK,EAACqpM,GAAK,EAAC,GAAG,CAAC,EAAE54B,IAAI/9L,CAAC,EAAE42N,IAAI52N,CAAC,EAAE+uM,IAAI/uM,CAAC,EAAEi+L,IAAIj+L,CAAC,EAAE62N,IAAI72N,EAAEyzB,CAAC,EAAE4xB,GAAIksG,GAAI,IAAI3mD,GAAI,KAAKo+B,IAAGtuB,IAAG16G,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAIyW,GAAG,EAAE,IAAIC,GAAG,EAAE+c,EAAE,EAAE,GAAMzzB,EAAE,EAAE,IAAI,CAC/O,SAASs6M,KAAK,CAACp6F,GAAI,KAAK,KAAKswF,IAAKt0J,GAAK,EAACC,IAAG,EAAG,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,GAAM,KAAK,EAAE,EAAK,CAC/O,SAASujD,IAAK,CAACA,GAAIh7F,EAAI4xJ,GAAI,IAAI/9F,GAAIu+J,IAAI,CAAC,EAAEvgE,GAAI,IAAIh+F,GAAI,oBAAoB,CAAC,EAAEi+F,GAAI,IAAIj+F,GAAI,cAAc,CAAC,EAAEk+F,GAAI,IAAIl+F,GAAI,cAAc,CAAC,EAAEm+F,GAAI,IAAIn+F,GAAI,QAAQ,CAAC,EAAEo+F,GAAI,IAAIp+F,GAAI,WAAW,CAAC,EAAEq+F,GAAI,IAAIr+F,GAAI,WAAW,CAAC,EAAEs+F,GAAI,IAAIt+F,GAAI,eAAe,CAAC,CAAC,CAC/O,SAAS46J,IAAInzN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,GAAG,EAAG,OAAQzzB,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAGyzB,EAAE,EAAG,MAAMiS,EAAI,IAAIuM,GAAI,sBAAsB,CAAC,EAAS,GAAPzyC,EAAEi0B,GAAG,EAAKj0B,GAAGQ,EAAE,EAAG,OAAOA,EAAE,EAAE,EAAuB,GAArBH,EAAEG,EAAE,EAAER,CAAC,EAAEi0B,EAAE,IAAIA,EAAE,IAAOzzB,EAAE,EAAE,EAAE,CAAU,GAATypD,EAAEo+G,IAAI7nK,CAAC,EAAKR,EAAEiqD,EAAG,MAAO,GAAWA,GAAGjqD,EAAGK,EAAE,CAACA,EAAIA,EAAE,CAACA,CAAE,CAAC,OAAQA,EAAE4zB,IAAI,CAAC,CAChP,SAASsjM,IAAI/2N,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAE0jD,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAEjqD,EAAE6gF,GAAI5W,GAAIvmB,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEqjD,EAAGuG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEi8C,GAAIlmG,EAAE6uN,IAAInrK,EAAGrjD,EAAE,EAAE,EAAE,EAAEqjD,EAAGuG,EAAE,EAAE,EAAE,EAAEjqD,CAAC,CAAC,EAAE0jD,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEjqD,EAAE,EAAE0jD,EAAGuG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEjqD,EAAE,EAAE0jD,EAAGuG,EAAE,EAAE,EAAE,EAAE4a,GAAI5a,EAAE,EAAE,IAAI02C,GAAIngG,EAAEyzB,EAAEg2B,CAAC,CAAC,CAAC,CAChP,SAASutK,GAAIh3N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAQ,GAANP,EAAEo0B,EAAE,EAAKp0B,GAA0B,IAAvBQ,EAAEskI,GAAI9kI,CAAC,EAAEoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAPntH,EAAE6pD,EAAEsjE,CAAC,EAAKqzE,GAAIxgM,CAAC,GAAGC,IAAGL,GAAG,CAACI,EAAE,IAAIA,EAAE,EAAE,IAAIouE,GAAIqwC,GAAGz+G,EAAE,CAAC,GAAGA,EAAE,GAAG+kK,EAAEzhH,EAAGrjD,EAAE,GAAGo3N,GAAI53N,EAAEA,EAAE,GAAGA,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,CAAC,EAAKslK,EAAEnlK,EAAE,GAAG,OAAOw3N,GAAIh3N,EAAEkjD,EAAGwpG,EAAIltJ,EAAEmlK,CAAC,EAAE,EAAE,CAAC,EAAK,OAAOlxI,CAAC,CAChP,SAASyjM,EAAIl3N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEssE,GAAI4uC,EAAMnlK,EAAEiqD,EAAEzpD,CAAC,EAAMX,EAAEG,aAAa,MAAMA,EAAE,CAAC,EAAE,KAAQA,GAAG,CAACH,EAAG83N,EAAE33N,GAAO23N,GAAGxyD,EAAElxI,GAAGA,EAAE,UAAU,CAACkxI,IAAIA,EAAE5uC,GAAItiG,CAAC,GAAG+hG,IAAImvC,CAAC,GAAGwyD,EAAE,GAAGt3N,EAAE,CAAC4zB,IAAI0jM,EAAE,GAAG1yN,IAAKglD,EAAEzpD,CAAC,EAAEm3N,GAAE,QAAQpqG,EAAE,EAAEA,EAAE,UAAU,OAAO,EAAEA,EAAG,UAAUA,CAAC,EAAE,UAAUoqG,EAAE93N,IAAI83N,EAAE,GAAG93N,EAAE,CACjP,SAASq/I,GAAG1+I,EAAE,CAAO,QAAFyzB,EAAQ,CAACyvB,EAAG1N,GAAGx1C,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,GAAG,CAAW,GAAVA,EAAE,EAAE+1K,IAAG/1K,CAAC,EAAK,CAACA,EAAE,EAAG,MAAO,GAA0B,GAApBA,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,KAAK,EAAE,EAAKurE,EAAGvrE,EAAE,EAAE,EAAE,EAAE,CAAuD,GAAtDyzB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,EAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI2kC,IAAKosG,GAAI/wI,EAAE,EAAEA,EAAE,CAAC,EAAKyzB,EAAE,EAAG,KAAM,CAAC6f,GAAI7f,EAAE,CAAC,GAAGs9G,GAAI/wI,EAAE,EAAEkjD,EAAGsyD,IAAI/hF,EAAE,CAAC,EAAE,EAAE,CAAC,EAAGzzB,EAAE,EAAEyzB,EAAE,CAAC,CAAC,CAAC,MAAO,EAAI,CACjP,SAASgtH,GAAIzgJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6D,IAA3D1tH,EAAEo0B,GAAG,KAAK,EAAEzzB,EAAE,EAAE,GAAGyzB,CAAC,EAAEg2B,GAAG5pD,EAAEG,EAAE,EAAE,IAAIX,CAAC,EAAEQ,GAAQ,IAAI,OAAaktH,EAAE,EAAEA,EAAEtjE,EAAE,OAAOsjE,IAAY,GAAPvtH,EAAEiqD,EAAEsjE,CAAC,EAAK/sH,EAAE,EAAE,GAAGyzB,EAAEj0B,EAAE,GAAI,CAAA,EAAG,OAAGiqD,EAAE,QAAQ,GAAGA,EAAE,OAAO,EAAEy0B,IAAIl+E,EAAE,EAAEX,CAAC,GAAOoqD,EAAE,OAAOsjE,EAAE,CAAC,EAAE,EAAE/sH,EAAE,EAAE22G,GAAI32G,EAAE,CAAC,EAASR,EAAE,GAAI,EAAE,OAAO,IAAI,CACjP,SAAS43N,GAAIp3N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAsB,IAApBG,EAAE,EAAEi0B,EAAE,EAAE,GAAKp0B,EAAE,KAASoqD,EAAE,IAAIvxB,EAAIwvJ,GAAIj0J,CAAC,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAMzpD,EAAE,EAAEH,EAAE,CAAC,IAAGG,EAAE,EAAEH,EAAE,CAAC,EAAE,GAAKR,EAAE8oL,GAAItoL,EAAE4zB,CAAC,EAAK5zB,EAAE,EAAGL,GAAG43N,GAAIp3N,EAAEX,CAAC,EAAU,CAACA,EAAE,GAAGQ,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAGA,EAAE,EAAE,GAAKmpC,GAAIhpC,EAAE,EAAEH,CAAC,EAAEL,GAAG43N,GAAIp3N,EAAEX,CAAC,IAAI,OAAOG,CAAC,CACjP,SAAS4sN,IAAIpsN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,GAAG34B,GAAI,CAAC,EAAE,GAAM24B,EAAE,IAAG,EAAE4X,GAAIrhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,IAAI,EAAE+tC,GAAIxhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAG1wB,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAG,GAAG,EAAE4X,GAAIrhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,IAAI,EAAE+tC,GAAIxhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAGg2B,EAAE,GAAI,CACjP,SAAS+iK,IAAIxsN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAmD,GAAjDG,EAAE,IAAIqlC,EAAIxlC,EAAEg4N,IAAIr3N,EAAER,CAAC,EAAEi0B,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACysD,GAAK,EAAC,EAAE,EAAKljJ,EAAG,IAAIg2B,EAAE,IAAIvxB,EAAIzE,EAAE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEsQ,EAAG6uD,EAAI/oH,EAAEouJ,EAAG,CAAC,IAAIl0F,EAAG/5D,CAAC,IAAIX,EAAE0D,EAAK,KAAK,IAAI1D,EAAEg4N,IAAIx3N,EAAEL,CAAC,CAAC,GAAI,OAAAA,EAAE,EAAE,QAAQ,GAAGsjF,EAAI9iF,EAAEs3N,GAAIj4N,CAAC,EAASA,GAAG,GAAGG,EAAE,IAAI,CACjP,SAAS+3N,IAAIv3N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEP,EAAE6jD,EAAGo4B,GAAI7nD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEg2B,EAAEpqD,EAAE,EAAEG,EAAEiqD,EAAE,EAAE7pD,EAAEsjD,EAAGo4B,GAAIz7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEktH,EAAEntH,EAAE,EAAE+kK,EAAE53C,EAAE,EAAEvtH,IAAImrF,GAAK,EAAC2+D,IAAKxmE,EAAI9iF,GAAGkqH,EAAK,EAACkmF,IAAKltJ,EAAG0lE,EAAIn/D,EAAE2mJ,EAAG,EAAE,EAAE,CAAC,EAAEttH,EAAI9iF,GAAGkqH,EAAG,EAAGkmF,IAAK/wM,CAAC,EAAEslK,GAAGrb,GAAIxmE,EAAI9iF,GAAGkqH,IAAMmmF,IAAKntJ,EAAG0lE,EAAImE,EAAEsjF,EAAG,EAAE,EAAE,CAAC,EAAEvtH,EAAI9iF,GAAGkqH,EAAK,EAACmmF,IAAKzwM,CAAC,CAAC,CACjP,SAAS43N,IAAGx3N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgF,IAA9EA,EAAE4tG,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAEp2J,EAAER,EAAEW,EAAE,EAAE,OAAO,EAAER,EAAE,KAASiqD,EAAEzpD,EAAE,EAAEH,CAAC,EAAE4pD,EAAEjqD,EAAEiqD,EAAEA,EAAEA,EAAE,EAAG,GAAGA,EAAE,GAAGpqD,GAAGw+G,GAAGp0D,EAAE,EAAEh2B,CAAC,EAAG,OAACj0B,EAAgBA,EAAE,EAAEiqD,EAAE,EAAnBzpD,EAAE,EAAEH,CAAC,EAAE4pD,EAAE,EAAa9T,IAAG8T,EAAE,EAAEA,EAAE,CAAC,EAAE7iB,GAAG6iB,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEzpD,EAAE,EAAE,EAAEA,EAAE,EAAS,GAAM,MAAO,EAAK,CAClP,SAASyxG,GAAGzxG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAAt5F,GAAG,GAAG5zB,EAAEG,EAAE,EAAEypD,GAAG5pD,EAAEyvJ,KAAM,EAAE7lG,IAAI5pD,GAAG,UAAa4zB,EAAE,IAAIs5F,EAAEltH,GAAG4zB,EAAEp0B,EAAEW,EAAE,GAAGyzB,EAAE5zB,GAAG,GAAG4zB,EAAEj0B,EAAEQ,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAG,GAAGyzB,GAAUA,EAAE,IAAIs5F,EAAEtjE,EAAEstD,GAAI,EAAE13G,EAAEQ,GAAG4zB,EAAE,GAAGj0B,EAAEQ,EAAE,GAAGyzB,EAAE,GAAG5zB,GAAG,GAAG4zB,IAAOs5F,EAAEtjE,EAAEstD,GAAI,EAAE13G,EAAEoqD,EAAEqtD,GAAI,EAAEt3G,EAAEK,GAAG4zB,EAAE,IAAU6rC,GAAG9/D,EAAEs3G,GAAIz3G,EAAEy3G,GAAIiW,EAAEhW,EAAG,CAAC,CAClP,SAAS0gH,GAAIz3N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkD,IAAhD,KAAK,EAAE,IAAIloF,EAAI,KAAK,EAAE7kC,EAAEypD,EAAE0tD,GAAI33G,EAAE23G,GAAI1jF,EAAE4jF,GAAIx3G,EAAEw3G,GAAQ0V,EAAEusC,GAAIt5J,EAAE,CAAC,EAAE+sH,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,CAAC,EAAEtjE,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEpqD,EAAE,CAAC,EAAEG,EAAEuD,EAAK,KAAK,IAAIvD,EAAEH,EAAE,CAAC,EAAEo0B,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEp0B,EAAE,CAAC,EAAEQ,EAAEkD,EAAK,KAAK,IAAIlD,EAAER,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI+hE,GAAI3X,EAAEjqD,EAAEi0B,EAAEg2B,EAAE5pD,EAAEL,CAAC,CAAC,CAClP,SAASk4N,IAAI13N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAItlK,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMslK,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoD,IAA3C53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE53C,EAAE,IAAIpiC,GAAK,EAAC6+D,KAAMmuE,GAAI5qG,EAAEt5F,CAAC,EAAMg2B,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAI95D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEmlH,IAAI/uK,EAAE4zB,CAAC,CAAI,CAClP,SAASmkM,GAAI53N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,KAAK,EAAEzpD,EAAEypD,EAAEvG,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACo4J,GAAG,EAAG,GAAG,EAAEjyJ,EAAEyf,EAAImnC,EAAGuuC,EAAI5oH,EAAE2lL,EAAG,CAAC,CAAC,EAAE9lL,EAAEqzC,EAAImnC,EAAGuuC,EAAI5oH,EAAE63N,GAAG,CAAC,CAAC,EAAEpuK,IAAIsyC,GAAG,EAAGz6B,KAAM7X,GAAG8X,IAAK9X,GAAG4wF,GAAK,KAAK,EAAE5mH,EAAE5zB,EAAI,KAAK,EAAE,GAAG4zB,EAAE5zB,GAAI,KAAK,EAAEqzC,EAAImnC,EAAGuuC,EAAI5oH,EAAEktL,EAAG,CAAC,CAAC,EAAE,KAAK,EAAEh6I,EAAImnC,EAAGuuC,EAAI5oH,EAAEosL,EAAG,CAAC,CAAC,EAAE,KAAK,EAAEpsL,EAAE,EAAE,EAAE,MAAM,CAClP,SAAS83N,IAAI93N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA0E,IAAxEG,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAMH,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAEihH,GAAG,IAAI7jC,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,CAAC,EAAEtD,EAAE,EAAEyzB,EAAE,CAAC,EAAEihH,GAAG,IAAI7jC,GAAGphC,GAAGo3G,GAAIpzJ,CAAC,EAAE,EAAE,GAAE,EAAG,IAAInwB,EAAE,CAAC,CAAC,CAAE,CAClP,SAASy0N,IAAI/3N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4B,IAA1BvtH,EAAE,EAAEQ,EAAE,EAAE,IAAI6kC,EAAIpR,EAAE,IAAImW,GAAQmjF,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAuB,IAAtB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE1tH,EAAE,EAAEG,EAAMiqD,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIxnL,CAAC,EAAE,EAAE,KAAK,IAAIiE,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEzgB,GAAIvV,EAAE5zB,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE,GAAGp0B,CAAC,GAAG,KAAKupC,EAAI5oC,EAAE,EAAE,IAAIwqG,GAAI/2E,CAAC,CAAC,EAAEA,EAAE,EAAE,GAAE,EAAG,EAAEj0B,CAAC,CAAC,CAClP,SAASwvB,IAAK,CAACA,GAAItqB,EAAIszN,IAAI,IAAI1yJ,GAAI,EAAE,EAAE2yJ,IAAI,IAAI5yJ,IAAKr1C,GAAG,EAAG+pJ,IAAKi+C,GAAG,EAAEE,IAAI,IAAI7yJ,GAAImrH,GAAI,EAAE,EAAE2nC,IAAI,IAAI9yJ,GAAIurH,GAAIC,EAAG,EAAE6/B,GAAI,IAAIrrJ,GAAIm7I,GAAIjzE,EAAI,CAAC,CAAC,EAAE6qF,IAAI,IAAI/yJ,GAAIgzJ,IAAKjoJ,GAAG,EAAG,GAAI,EAAGkoJ,IAAIp4B,GAAIq4B,IAAIl+C,GAAIm+C,IAAIj+C,GAAIk+C,IAAIvsE,GAAIwsE,IAAI/7B,GAAIg8B,IAAIpvB,GAAIqvB,IAAIhtE,GAAIitE,KAAK3pM,GAAK,EAAC88I,KAAK8sD,IAAI3sD,GAAG,CAClP,SAAS4sD,IAAI/4N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG7kK,EAAE,EAAE,EAAE,GAAGurE,EAAG93C,EAAE,EAAE,IAAGzzB,EAAE,EAAE,GAAE,EAAG4kK,EAAE1hH,EAAGzvB,EAAE,EAAE,EAAE7zB,EAAEglK,EAAE,GAAE,EAAGvlK,EAAEO,GAAG,KAAK,EAAE2kE,GAAG3kE,CAAC,EAAEmtH,EAAE9vC,GAAIj9E,EAAE,EAAEX,CAAC,EAAEQ,EAAEG,EAAE,EAAE,EAAE+sH,CAAC,EAAKltH,IAAuB,IAApB4pD,EAAEvG,EAAGrjD,EAAE,EAAE,GAAG,EAAEglK,EAAEhlK,EAAE,EAAM8kK,EAAE,EAAEA,EAAEE,EAAE,EAAEF,EAAU,GAAPnlK,EAAEiqD,EAAEk7G,CAAC,EAAKnlK,EAAE,MAAMH,GAAGG,EAAE,GAAGolK,CAAC,EAAG,OAAAm0D,IAAI/4N,EAAE4kK,CAAC,EAAS,GAAQ,MAAO,EAAK,CAClP,SAASgyD,IAAI52N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIA,EAAE0jD,EAAGgwB,GAAGlzE,EAAE,GAAGwtF,GAAG,EAAG6vD,KAAM,EAAE,EAAE,KAAK79I,EAAE,MAAOiqD,EAAEvG,EAAG1jD,EAAE,KAAK,GAAG,EAAEK,GAAG4zB,EAAEu9E,GAAGvnD,EAAE,CAAC,EAAEh2B,EAAE,IAAIqrE,EAAK,EAAC+5C,GAAK,EAACplH,EAAE,GAAG2vE,EAAG,EAAE3vE,EAAE,GAAGw8G,EAAG,EAAEx8G,EAAE,GAAGwvE,EAAG,EAAE,KAAK8+G,IAAIG,IAAID,IAAID,KAAKtpG,GAAI14G,EAAEypD,EAAE5pD,EAAE,CAAC,GAAG+tF,GAAK,EAAC+wC,IAAK,CAAC,EAAEjmB,GAAI14G,EAAEypD,EAAE5pD,EAAE,CAAC,EAAE6+H,GAAI,CAAC,EAAEhmB,GAAI14G,EAAEypD,EAAE5pD,EAAE,CAAC,EAAE4+H,GAAI,CAAC,CAAE,CACnP,SAASjZ,IAAIxlH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE5pD,EAAEm5N,IAAIvlM,CAAC,EAAEwlM,IAAIj5N,EAAEyzB,EAAE5zB,CAAC,EAAE05M,IAAIv5M,EAAE,EAAEkjD,EAAG0lE,EAAI3K,GAAIxqF,EAAE,CAAC,GAAGy2F,IAAMgvG,GAAK,EAAC,GAAG,CAAC,EAAEC,IAAIn5N,CAAC,EAAE23M,IAAI33M,EAAEyzB,CAAC,EAAEg2B,EAAEwa,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE2lM,GAAIp5N,EAAEyzB,GAAGqrE,IAAM+5C,IAAKpvF,EAAE5pD,CAAC,EAAEu5N,GAAIp5N,EAAEyzB,EAAE2vE,GAAI35C,EAAE5pD,CAAC,EAAEu5N,GAAIp5N,EAAEyzB,EAAEw8G,GAAIxmF,EAAE5pD,CAAC,EAAEu5N,GAAIp5N,EAAEyzB,EAAEwvE,GAAIx5C,EAAE5pD,CAAC,EAAEG,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,IAAI,CACnP,SAASwvB,IAAK,CAACA,GAAI9qB,EAAI20N,KAAK7gI,GAAK,EAAC8pC,IAAKg3F,IAAI,IAAIz7J,GAAI07J,IAAIF,GAAG,EAAEG,IAAI,IAAI37J,GAAI47J,KAAKrpJ,GAAG,EAAG,GAAM,EAACm9D,EAAI,EAAE,EAAEmsF,IAAI,IAAI77J,GAAI87J,IAAIpsF,EAAI,EAAE,CAAC,EAAEA,EAAI,EAAE,EAAEqsF,IAAI,IAAI/7J,GAAIg8J,IAAItsF,EAAI,EAAE,CAAC,EAAEusF,IAAI,IAAIj8J,GAAIk8J,IAAI,EAAK,EAAEC,IAAI,IAAIn8J,GAAIo8J,IAAI,EAAI,EAAEC,IAAI,IAAIr8J,GAAIs8J,GAAI,EAAK,EAAEC,IAAI,IAAIv8J,GAAIw8J,IAAI,EAAE,CAAC,CACnP,SAASC,GAAIt6N,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAO4zB,EAAC,CAAE,IAAK,GAAE,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGwsG,GAAIxsG,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,CAAC,EAAE,OAAO,IAAK,GAAE,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAG4qE,GAAI5qE,EAAE,CAAC,EAAE,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGwsG,GAAIxsG,EAAE,EAAEkjD,EAAGrjD,EAAE,EAAE,CAAC,EAAE,MAAO,CAAC+0M,GAAI50M,EAAEyzB,EAAE5zB,CAAC,CAAC,CACnP,SAAS06N,GAAGv6N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGhzD,EAAGtmC,CAAC,IAAIsmC,EAAG/5D,CAAC,EAAG,MAAO,GAA2C,GAAnC,CAACurE,EAAG93C,EAAE,EAAE,IAAgBs5F,EAAE7pE,EAAGzvB,EAAE,EAAE,EAAKzzB,EAAE,GAAE,GAAI+sH,EAAE,MAAM,MAAO,GAAe,IAAT1tH,EAAE0tH,EAAE,GAAI,EAAKtjE,EAAEzpD,EAAE,GAAE,EAAGypD,EAAE,GAAI,GAAqB,GAAlB5pD,EAAE4pD,EAAE,GAAE,EAAGjqD,EAAEH,EAAE,GAAE,EAAM,EAAE06D,EAAGl6D,CAAC,IAAIk6D,EAAGv6D,CAAC,GAAGK,GAAG,MAAMqkD,GAAGrkD,EAAEL,CAAC,GAAI,MAAO,GAAO,MAAO,EAAI,CACpP,SAASg7N,IAAIx6N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA4J,IAA1JA,EAAE6jD,EAAGm0F,GAAIka,GAAIA,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIvkB,GAAG,EAAE,IAAIC,GAAG,EAAEu7I,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAAC+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAEn8H,EAAE,GAAG,IAAI+P,GAAG,EAAEvP,EAAE,EAAML,EAAEH,EAAE,GAAE,EAAGG,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEiqD,EAAE,GAAG,IAAIgxK,GAAIz6N,EAAEypD,EAAE5pD,GAAG,CAAE,CACpP,SAAS66N,IAAI16N,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAImvB,IAAI,IAAK,GAAE,OAAO,IAAIhC,IAAI,IAAK,GAAE,OAAO,IAAIF,IAAI,IAAK,GAAE,OAAO,IAAI+qC,IAAI,IAAK,GAAE,OAAO,IAAIg3C,IAAI,QAAQ,MAAMtpE,EAAI,IAAImN,GAAI,uDAAuD7yC,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CACpP,SAAS26N,IAAI36N,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIs4D,GAAI,IAAK,GAAE,OAAO,IAAI/qC,IAAI,IAAK,GAAE,OAAO,IAAIpB,IAAI,IAAK,GAAE,OAAO,IAAIE,IAAI,IAAK,GAAE,OAAO,IAAI+rC,IAAI,QAAQ,MAAM1yB,EAAI,IAAImN,GAAI,yDAAyD7yC,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CACtP,SAASouB,IAAK,CAACA,GAAI1pB,EAAIqlM,IAAI,IAAIlsI,GAAI+8J,IAAIrtF,EAAI,CAAC,CAAC,EAAE08D,IAAI,IAAIpsI,GAAIg9J,IAAI,CAAC,EAAEC,KAAKljI,GAAK,EAACoqC,IAAK4nE,IAAI,IAAI/rI,GAAIk9J,GAAID,GAAG,EAAEvtF,EAAI,CAAC,EAAEm8D,IAAI,IAAI7rI,GAAIm9J,GAAIztF,EAAI,CAAC,CAAC,EAAE0tF,KAAK7iI,GAAG,EAAGsqC,IAAKynE,IAAI,IAAItsI,GAAIq9J,IAAID,GAAG,EAAEE,KAAK3jI,GAAG,EAAG+5B,IAAK84E,IAAI,IAAIxsI,GAAIu9J,IAAID,GAAG,EAAEE,KAAKrjI,GAAK,EAAC85C,IAAKg4D,IAAI,IAAIjsI,GAAIy9J,IAAID,GAAG,CAAC,CACpP,SAASE,IAAIv7N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEA,EAAE,KAAOh2B,IAAIg2B,EAAEh2B,EAAE,GAAGgzE,GAAIzmG,EAAE,IAAI0wD,GAAIj9B,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,CAAC,CAAC,EAAE4mG,GAAIzmG,EAAE,IAAI0wD,GAAIj9B,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,CAAC,CAAC,EAAE4mG,GAAIzmG,EAAE,IAAI0wD,GAAIj9B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,CAAC,CAAC,EAAE4mG,GAAIzmG,EAAE,IAAI0wD,GAAIj9B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEg2B,EAAE,EAAE5pD,EAAE,CAAC,CAAC,CAAC,CACrP,SAAS46N,GAAIz6N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAQ,IAANo0B,EAAE,EAAE5zB,EAAMR,EAAE,GAAGk8J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC,IAAIjpC,GAAIzH,CAAC,EAAE,IAAI2H,GAAI3H,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEirH,GAAGr/I,CAAC,GAAIoqD,EAAEvG,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAEoqD,EAAE,GAAG,IAAIgxK,GAAIz6N,EAAEypD,EAAE5pD,CAAC,EAAE,GAAG4zB,EAAE,EAAE,IAAIk3D,GAAG,EAAG2+D,IAAM,IAAI9pJ,EAAE,IAAI04B,EAAIzE,EAAE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEiqD,GAAGh2B,GAAGg2B,EAAE,GAAG,IAAIgxK,GAAIz6N,EAAEypD,EAAE5pD,CAAC,CAAG,CACrP,SAAS27N,IAAIx7N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoG,GAAlGG,EAAE0jD,EAAGm0F,GAAIjf,IAAIkC,IAAIt6H,CAAC,CAAC,EAAE0qJ,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAG,EAAG+0C,IAAK,CAAC,CAAC,EAAE,EAAE,EAAE/xE,EAAEkoJ,GAAOnyM,EAAE,GAAE,GAAI,EAAyB,IAAtBK,EAAEL,EAAE,GAAE,EAAGi0B,EAAE4mD,EAAGx6E,EAAE,GAAI,CAAA,EAAQA,EAAE,GAAI,GAAER,EAAEo0B,EAAEA,EAAE4mD,EAAGx6E,EAAE,GAAI,CAAA,EAAE4pD,EAAE1mD,EAAK,KAAK,IAAI0mD,GAAG34B,GAAI2C,CAAC,EAAEA,GAAI3C,GAAIzxB,CAAC,EAAEA,GAAE,EAAG,OAAOoqD,CAAC,CACrP,SAASgyK,IAAIz7N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEtjE,EAAE,IAAI7c,GAAI+uB,GAAIlS,EAAEh2B,EAAEg2B,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAkD,KAA/C5pD,GAAGqyE,GAAIzoB,EAAE,GAAG,CAAC,EAAEvG,EAAG0gD,GAAIn6C,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGzpD,EAAE,EAAEH,EAAE,CAAC,EAAE,EAAMR,EAAEi6J,GAAIz5J,EAAE,EAAE,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,GAAIG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,GAAG,EAAE0tH,EAAEvtH,EAAE,EAAEQ,EAAE,EAAE+sH,EAAE,CAAC,GAAG,EAAElnB,GAAI7lG,EAAE,EAAER,CAAC,EAAEQ,EAAE,EAAE+sH,EAAE,CAAC,GAAG,EAAG/sH,EAAE,EAAE+sH,EAAE,CAAC,EAAE,EAAGpxD,GAAIlS,EAAEsjE,EAAEtjE,EAAE,EAAE,EAAEA,EAAE,CAAC,QAASA,EAAE,GAAG,EAAE,CACrP,SAASiyK,IAAG17N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGu6D,EAAGtmC,CAAC,IAAIsmC,EAAGvkB,GAAGx1C,CAAC,CAAC,EAAG,MAAO,GAAoD,GAA5C,CAACurE,EAAG93C,EAAE,EAAE,IAAgBg2B,EAAEvG,EAAGzvB,EAAE,EAAE,EAAEj0B,EAAEQ,EAAE,GAAI,EAAIR,GAAGiqD,EAAE,GAAE,GAAI,MAAO,GAAM,GAAG8hB,EAAG9hB,EAAE,EAAE,EAAE,CAAC,IAAI5pD,EAAE,EAAEA,EAAEL,EAAEK,IAAK,GAAG,CAACg+G,GAAG79G,EAAE,GAAGH,CAAC,EAAE4pD,EAAE,GAAG5pD,CAAC,CAAC,EAAG,MAAO,GAAO,MAAO,EAAI,KAAM,QAAOygM,IAAGtgM,EAAE,GAAE,EAAGypD,EAAE,GAAI,CAAA,CAAE,CACtP,SAASkyK,IAAI37N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGzpD,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAGA,EAAE,EAAE,QAAQ,EAAG23N,IAAK96J,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIm9F,KAAMu1C,GAAK,EAACilF,IAAK96J,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG2yI,EAAG,MAAO,KAAIlpF,EAAE,IAAIvxB,EAAIl4B,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEkuK,GAAI93N,EAAE4zB,CAAC,EAAGzzB,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CACtP,SAASy3J,IAAI57N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,GAAGG,EAAE,EAAE,QAAQ,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,mCAAmC,CAAC,EAAErf,GAAGopC,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGH,GAAGg9D,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAMyzB,EAAE,EAAE,GAAG5zB,EAAE,EAAE,IAAGG,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEH,EAAEG,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEyzB,EAAE,CACtP,SAASooM,IAAI77N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA+B,IAA7Bl7G,EAAE,IAAIuX,GAAI+rD,EAAEqqB,GAAG,IAAI1jG,GAAI1zC,EAAE,CAAC,CAAC,EAAMX,EAAE0tH,EAAE,EAAE,KAAK,GAAI,EAAC1tH,EAAE,GAAE,GAAI,CAAiB,GAAhBG,EAAE0jD,EAAG7jD,EAAE,KAAK,EAAE,EAAK,CAACG,EAAE,CAAC4lG,GAAI3xE,EAAE,4CAA4C,EAAE,KAAK,CAACkxI,EAAE3kK,EAAE,EAAER,EAAE,CAAC,EAAEK,EAAEqjD,EAAGi4B,GAAI1xB,EAAEk7G,CAAC,EAAE,EAAE,EAAM9kK,IAAGA,EAAE,IAAIglC,EAAIukB,GAAIK,EAAEk7G,EAAE9kK,CAAC,GAAEA,EAAE,GAAGL,CAAC,CAAC,CAAC,OAAOiqD,CAAC,CACtP,SAAS8pH,IAAIvzK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,GAAG/kK,EAA6B,IAA1BR,EAAEQ,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAIzxG,CAAC,EAAMslK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAG,EAAGC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,KAAK,EAAE,EAAE/kK,EAAE4sI,GAAI3sI,EAAEktH,EAAE,CAAC,EAAKntH,IAAGglK,EAAE3J,IAAIvuB,GAAI9sI,EAAEk8N,EAAG,EAAEroM,CAAC,EAAE+lC,GAAIx5D,EAAE,EAAE4kK,EAAEhlK,CAAC,EAAEJ,EAAEozL,MAAOhzL,EAAE,EAAEJ,GAAGmgK,GAAIiF,EAAEl4B,GAAI9sI,EAAEgzL,EAAG,CAAC,EAAEipB,GAAIj8M,EAAEglK,CAAC,EAAEkpD,GAAIluN,EAAEglK,CAAC,EAAI,CACtP,SAASm3D,IAAI/7N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkC,IAAhCnB,GAAIn4F,EAAE,uBAAuB,CAAC,EAAMs5F,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEivG,IAAIx8N,CAAC,EAAE,IAAIiqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE28N,IAAIx8N,CAAC,EAAGqsH,GAAIp4F,CAAC,CAAC,CACvP,SAAS67E,IAAItvG,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAuD,GAArDnlK,EAAEQ,EAAE,EAAE,CAACR,IAAIA,EAAE0jD,EAAGljD,EAAE,EAAE,EAAE,GAAI,EAAC,GAAE,EAAG,GAAE,EAAG,EAAE,GAAGwvG,GAAIhwG,EAAEi0B,EAAE5zB,CAAC,EAAKG,EAAE,EAAE,EAAE,MAAM,EAAgB,IAANypD,EAAEh2B,EAAE5zB,EAAMktH,EAAE/sH,EAAE,EAAE,EAAE,KAAK,KAAK+sH,EAAE,MAAO1tH,EAAE6jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAK1tH,GAAGG,IAAGmlK,EAAEj0B,GAAIrxI,CAAC,EAAKslK,EAAE,EAAE,GAAGtlK,EAAE,EAAE,GAAGoqD,EAAEyqG,GAAI70J,EAAE,EAAE,GAAGoqD,EAAEyqG,IAASyQ,EAAE,EAAE,IAAItlK,EAAE,EAAE,GAAGoqD,EAAEyqG,IAAM,CACvP,SAAS+nE,GAAIj8N,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,OAAAstH,EAAEltH,EAAEG,EAAE2kK,EAAEl7G,EAAEh2B,EAAEp0B,EAAE0D,EAAK,KAAK,MAAMgqH,EAAE43C,CAAC,EAAE/kK,EAAEP,EAAE2jK,GAAI4B,EAAEvlK,EAAE2jK,GAAI6B,EAAErlK,EAAEuD,EAAK,KAAK,IAAInD,CAAC,EAAEI,EAAE+kK,EAAEvlK,EAAEuD,EAAK,KAAK,IAAInD,CAAC,EAAE6zB,EAAEqxI,EAAEtlK,EAAEuD,EAAK,KAAK,IAAI6hK,CAAC,EAAE5kK,EAAEP,EAAED,EAAEuD,EAAK,KAAK,IAAI6hK,CAAC,EAAEnxI,EAASosH,GAAG3mC,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAC,IAAIpV,GAAIyvG,EAAEE,CAAC,EAAE,IAAI3vG,GAAI0vG,EAAErlK,CAAC,CAAC,CAAC,CAAC,CAAC,CACxP,SAASy8N,IAAIl8N,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEtlK,EAAEK,EAAEglK,EAAEpxI,EAAEp0B,EAAEwlK,EAAE,GAAGxlK,EAAEW,EAAE,EAAEX,EAAE,CAAC,EAAEslK,GAAGG,EAAE9kK,EAAE,EAAEX,EAAE,CAAC,EAAE6zC,EAAIlzC,EAAE,EAAE8kK,EAAE,CAAC,CAAC,EAAE5xH,EAAIlzC,EAAE,EAAEX,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,GAAGO,EAAE8/J,IAAIrgK,EAAEoqD,CAAC,EAAK7pD,IAAGmtH,GAAG63C,EAAE5kK,EAAE,EAAEJ,EAAE,CAAC,EAAEszC,EAAIlzC,EAAE,EAAE4kK,EAAE,CAAC,CAAC,EAAE1xH,EAAIlzC,EAAE,EAAEJ,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGJ,EAAEuD,EAAK,KAAK,IAAIvD,EAAEmlK,GAAG53C,EAAE1jD,GAAIrpE,EAAE,EAAEX,EAAEO,CAAC,EAAE,SAASilK,GAAGxlK,GAAG,OAAOG,CAAC,CACxP,SAAS28N,IAAIn8N,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEtlK,EAAEK,EAAEglK,EAAEpxI,EAAEp0B,EAAEwlK,EAAE,GAAGxlK,EAAEW,EAAE,EAAEX,EAAE,CAAC,EAAE0tH,GAAG+3C,EAAE9kK,EAAE,EAAEX,EAAE,CAAC,EAAE6zC,EAAIlzC,EAAE,EAAE8kK,EAAE,CAAC,CAAC,EAAE5xH,EAAIlzC,EAAE,EAAEX,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGO,EAAEywK,IAAIhxK,EAAEoqD,CAAC,EAAK7pD,IAAG+kK,GAAGC,EAAE5kK,EAAE,EAAEJ,EAAE,CAAC,EAAEszC,EAAIlzC,EAAE,EAAE4kK,EAAE,CAAC,CAAC,EAAE1xH,EAAIlzC,EAAE,EAAEJ,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,GAAGJ,EAAEuD,EAAK,KAAK,IAAIvD,EAAEmlK,GAAG53C,EAAE1jD,GAAIrpE,EAAE,EAAEX,EAAEO,CAAC,EAAE,SAASilK,GAAGxlK,GAAG,OAAOG,CAAC,CACxP,SAASipH,GAAIzoH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAyD,OAAvDA,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGmvL,GAAInvL,EAAE,EAAEyzB,CAAC,GAAMg2B,IAAkB5pD,EAAE4zB,EAAE,GAAI,EAAC83C,EAAG1rE,EAAE,CAAC,IAAIA,GAAG,MAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAK,EAACC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAGy8J,GAAIz8J,EAAE,EAAEyzB,CAAC,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAIg4E,IAAK0qE,GAAG,EAAGC,IAAKC,GAAG5iJ,EAAE,CAAC,GAAG0gK,GAAI1gK,EAAE,EAAEyzB,EAAE5zB,CAAC,IAAaA,EAAC,CACxP,SAAS09F,IAAK,CAACA,GAAI74F,EAAI21J,GAAI,IAAIxkG,GAAI,SAAS,CAAC,EAAEykG,GAAI,IAAIzkG,GAAI,WAAW,CAAC,EAAE0kG,GAAI,IAAI1kG,GAAI,UAAU,CAAC,EAAE2kG,GAAI,IAAI3kG,GAAI,QAAQ,CAAC,EAAE4kG,GAAI,IAAI5kG,GAAI,WAAW,CAAC,EAAE6kG,GAAI,IAAI7kG,GAAI,WAAW,CAAC,EAAE8kG,GAAI,IAAI9kG,GAAI,SAAS,CAAC,EAAE+kG,GAAI,IAAI/kG,GAAI,UAAU,CAAC,EAAEglG,GAAI,IAAIhlG,GAAI,aAAa,CAAC,CAAC,CACzP,SAASkxH,IAAI/mL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAc,GAAZlxI,EAAEzzB,EAAE,GAAGsgH,EAAG,EAAK7sF,IAAGkxI,EAAEpvH,GAAG45I,IAAK,CAAC17J,EAAE,IAAIA,EAAE,EAAE,IAAIskD,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGvgK,CAAC,GAAGA,EAAE,GAAG,kBAAkB,CAAC,EAAKkxI,GAAG,MAAK,CAAW,IAAV9kK,EAAE,IAAIglC,EAAQrlC,EAAE48N,GAAIz3D,EAAE,MAAM,EAAEtlK,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEQ,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE4pD,EAAE,OAAO5pD,CAAC,CAAE,OAAOwqE,KAAMA,GAAK,EAAC+b,EAAG,CACzP,SAASi2I,IAAIr8N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAAC6zB,EAAE,EAAG,MAAMiS,EAAI,IAAImN,GAAI,oCAAoC,CAAC,EAAe,IAAbxzC,EAAE,KAAKG,EAAE09E,GAAQzzB,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEk7G,EAAE9kK,EAAE,EAAED,EAAEC,EAAE,EAAKuuN,GAAIpuN,EAAE2kK,EAAElxI,CAAC,GAAG,CAAC26L,GAAIpuN,EAAEJ,EAAE6zB,CAAC,IAAGs5F,EAAEntH,EAAE,EAAE+kK,EAAE,EAAE9kK,EAAE,EAAKktH,EAAEvtH,IAAGA,EAAEutH,EAAE1tH,EAAEQ,IAAI,OAAOR,CAAC,CAC1P,SAASi9N,IAAIt8N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG,EAAA/sH,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAU,CAAAyzB,EAAE,EAAEj0B,EAAEg3N,IAAIx2N,CAAC,EAAEH,EAAEs3G,GAAI,EAAE,CAAY,IAAX1jF,EAAE,IAAIj0B,EAAEK,GAAOktH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAK,CAAA95E,GAAImnC,GAAGwuC,EAAIvpH,GAAG6rB,GAAG,EAAGugL,KAAK,CAAC,IAAYhiJ,EAAE8yK,IAAIv8N,EAAEX,CAAC,EAAE+gF,GAAItjB,GAAIz9D,EAAE,CAAC,EAAEoqD,CAAC,GAAE5pD,EAAE22N,IAAIx2N,CAAC,CAAC,OAAO,CAAC88G,IAAI98G,EAAEyzB,IAAIj0B,EAAEK,CAAC,GAAE,CAC1P,SAAS28N,IAAIx8N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAuE,IAArEosH,GAAIn4F,EAAE,iCAAiC,CAAC,EAAE5zB,EAAE,IAAIglC,EAAIrlC,EAAE,IAAIisI,GAAIzrI,EAAE,EAAE,CAAC,EAAQR,EAAE,EAAEA,EAAE,EAAE,MAAMiqD,GAAGyoB,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAMyxK,IAAIxnH,CAAC,IAAGswJ,IAAItwJ,CAAC,EAAE5pD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE4pD,EAAE67B,GAAI9lF,CAAC,GAAGK,EAAE,EAAE,QAAQ,GAAGijF,EAAI9iF,GAAGkqH,IAAMuyG,IAAK58N,CAAC,EAAEgsH,GAAIp4F,CAAC,CAAC,CAC1P,SAASotD,IAAI7gF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAkB,IAAhB1tH,EAAEW,EAAE,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAE,EAAMypD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAEK,EAAE,EAAEG,EAAE,IAAIosF,GAAG,EAAGyjD,KAAM7vI,EAAE,IAAI8+F,EAAK,EAACsE,IAAM5jG,EAAE,EAAEH,EAAGW,EAAE,GAAG8vI,IAAK9vI,EAAE,IAAI8+F,EAAG,EAAGmE,IAAMzjG,EAAE,EAAEH,EAAEW,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAIL,EAAE,EAAEH,GAAGW,EAAE,EAAE,EAAEH,EAAE,EAAE,GAAG,EAAGL,EAAE,EAAEutH,EAAE3sC,GAAI5gF,EAAEi0B,CAAC,EAAEs5F,GAAGltH,EAAE,EAAE,EAAEG,EAAE,CAAE,CAC1P,SAAS08N,IAAI18N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAgF,IAA9EnB,GAAI/rH,EAAE,4BAA4B,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE,EAAEp0B,EAAE,KAAKoqD,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAQ,CAACp0B,GAAGoqD,EAAE,GAAGA,EAAE,EAAE,GAAGsjE,EAAE7pE,EAAG0tF,GAAInnF,CAAC,EAAE,EAAE,EAAKxW,GAAImnC,GAAGwuC,EAAImE,GAAGs2D,KAAMynC,GAAK,CAAA,CAAC,IAAGzrN,EAAE0tH,EAAEvtH,EAAEutH,EAAE,EAAEvtH,EAAE,EAAE0jD,EAAG0lE,EAAImE,EAAEm5F,EAAG,EAAE,EAAE,EAAE,EAAE1mN,EAAE,EAAE,GAAGymN,IAAIjmN,EAAE6vK,GAAIxwK,CAAC,EAAE4nK,GAAIpnK,EAAE,CAAC,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CAC1P,SAAS88N,IAAI38N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAoG,IAAlGusH,GAAI/rH,EAAE,gDAAgD,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE,EAAEj0B,EAAE,KAAKiqD,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAQ,CAACj0B,GAAGiqD,EAAE,GAAGA,EAAE,EAAE,GAAGpqD,EAAE6jD,EAAG0tF,GAAInnF,CAAC,EAAE,EAAE,EAAExW,GAAImnC,GAAGwuC,EAAIvpH,GAAGgkL,GAAG,EAAGynC,GAAG,CAAE,CAAC,IAAItrN,EAAEH,GAAKG,GAAGo9N,IAAI58N,EAAE6/I,GAAG3mC,EAAG9hE,EAAGylL,IAAG,CAAC,EAAEC,IAAI,GAAG,EAAE,CAACt9N,CAAC,CAAC,CAAC,EAAEK,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CAC3P,SAAS6vN,IAAI1vN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEF,EAAE5kK,EAAEJ,EAAE6sI,GAAIm4B,EAAE,oBAAoB,EAAKhlK,IAAG6pD,EAAEg5F,GAAIhvH,GAAGzD,GAAG,EAAGkpK,GAAG,EAAGnsE,EAAE,CAACtjE,EAAKsjE,IAAGvtH,EAAE,IAAIshB,GAAIqoJ,GAAI11I,EAAEylK,GAAI15L,CAAC,GAAEmlK,EAAEzhH,EAAGulE,GAAIh1F,EAAEylK,EAAG,EAAE,GAAG,EAAEp0B,EAAEllK,EAAEP,EAAE,KAAOylK,IAAIzlK,GAAGwlK,EAAE9C,GAAG+C,EAAE7gG,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAIznB,GAAG+hH,EAAED,CAAC,IAAOxlK,IAAGQ,EAAE,IAAIy3D,IAAIwtG,EAAEH,CAAC,EAAE5sB,GAAI14I,EAAEQ,CAAC,GAAG,CAC1P,SAASk9N,IAAI/8N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,OAAAnlK,EAAE,KAAKklK,EAAE9kK,EAAE6kK,EAAE,MAAQm4D,OAAOl4D,EAAE,GAAGm4D,OAAOn4D,EAAE,GAAGo4D,MAAOp4D,EAAE,KAAGF,EAAE,KAAKG,EAAEyL,GAAI/8I,CAAC,EAAEs5F,EAAE0f,GAAIq4B,EAAEk4D,GAAG,EAAEn9N,EAAE,IAAIiiC,IAAIijI,CAAC,EAAE4mB,IAAI9rL,EAAE,EAAEktH,CAAC,EAAE43C,EAAEl4B,GAAIq4B,EAAEm4D,GAAG,EAAExzK,EAAE,IAAIjnB,IAAIuiI,CAAC,EAAE2mB,IAAIjiI,EAAE,EAAEk7G,CAAC,EAAEtlK,EAAEktI,GAAIu4B,EAAEo4D,EAAG,EAAE19N,EAAE,IAAImjC,IAAIoiI,CAAC,EAAEH,GAAGwyC,IAAI53M,EAAE,EAAEH,CAAC,EAAEA,GAAGwlK,EAAED,GAAEhlK,EAAEilK,EAASjlK,CAAC,CAC1P,SAASu9N,IAAGn9N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,IAAIzzB,EAAG,MAAO,GAAK,GAAGurE,EAAG93C,EAAE,GAAG,EAAE,CAAa,GAAZj0B,EAAE0jD,EAAGzvB,EAAE,GAAG,EAAKzzB,EAAE,EAAE,GAAGR,EAAE,EAAE,GAAGupE,GAAG/oE,CAAC,EAAE,GAAI,GAAE+oE,GAAGvpE,CAAC,EAAE,GAAI,EAAE,MAAO,GAAM,IAAIiqD,EAAEsf,GAAGvpE,CAAC,EAAE,GAAI,EAACiqD,EAAE,GAAI,GAAoB,GAAjB5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAK4wE,IAAGr6H,EAAEH,EAAE,EAAE,GAAI,CAAA,GAAGqjD,EAAGrjD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE,GAAE,EAAI,MAAO,GAAO,MAAO,EAAI,CAAC,MAAO,EAAK,CAC3P,SAASu9N,IAAIp9N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAAiqD,EAAEvG,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAER,EAAE0jD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEyzB,EAAEg2B,EAAE5pD,EAAEL,EAAKiqD,GAAG,GAAGjqD,GAAG,EAAGK,GAAG,EAAU4pD,GAAG,IAAIjqD,GAAG,GAAGi0B,EAAE,EAAE5zB,GAAG,GAAU4pD,GAAG,GAAGjqD,EAAE,GAAGi0B,GAAG,EAAE5zB,GAAG,GAAU4pD,GAAG,GAAGjqD,EAAE,GAAGi0B,GAAG,EAAE5zB,GAAG,GAAU4pD,EAAE,GAAGjqD,GAAG,GAAGi0B,GAAG,EAAE5zB,GAAG,IAAO4zB,GAAG,EAAE5zB,GAAG,GAAa,IAAI82D,GAAI42E,EAAI95G,CAAC,EAAE85G,EAAI1tI,CAAC,CAAC,CAAC,CAC3P,SAASw9N,IAAIr9N,EAAEyzB,EAAE,CAAC,OAAGzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAWzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAUzzB,EAAE,EAAEyzB,EAAE,EAAU,GAAWzzB,EAAE,EAAEyzB,EAAE,EAAU,EAAUzzB,EAAE,GAAGyzB,EAAE,EAAU8wC,GAAGvkE,EAAE,CAAC,EAAEukE,GAAG9wC,EAAE,CAAC,EAAUzzB,EAAE,IAAI40F,KAAM26B,KAAM97F,EAAE,GAAG+7F,GAAY,GAAWxvH,EAAE,GAAGwvH,IAAK/7F,EAAE,GAAG87F,GAAY,EAAS,CAAC,CAC3P,SAAS+tG,IAAIt9N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6E,OAA3E1tH,EAAEo0B,EAAE,EAAEp0B,EAAE,EAAE,GAAGo0B,EAAE,EAAGs5F,EAAE1tH,EAAE,EAAI0tH,EAAE1tH,EAAE,EAAGA,EAAE,EAAE,GAAGo0B,EAAE,EAAGg2B,EAAEpqD,EAAE,EAAIoqD,EAAEpqD,EAAE,EAAGG,EAAE2uL,IAAInuL,EAAE,EAAE+sH,EAAEtjE,CAAC,EAAKjqD,EAAE,GAAGA,EAAEmyM,IAAK9xM,EAAEq8N,IAAIl8N,EAAE,EAAEypD,EAAE,EAAEjqD,EAAEQ,EAAE,CAAC,EAAEy5J,IAAIz5J,EAAE,EAAEypD,EAAE,EAAE,CAAC5pD,CAAC,EAASA,EAAE,GAAUL,EAAE,GAAG,CAACA,EAAEmyM,IAAK9xM,EAAEs8N,IAAIn8N,EAAE,EAAEypD,EAAE,EAAE,CAACjqD,EAAEQ,EAAE,CAAC,EAAEy5J,IAAIz5J,EAAE,EAAEypD,EAAE,EAAE5pD,CAAC,EAASA,EAAE,GAAS,EAAK,CAC3P,SAASihM,IAAI9gM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA0C,IAAxCtlK,GAAGi0B,EAAEzzB,EAAE,GAAGA,EAAE,EAAE,EAAE,OAAOX,EAAE,EAAEW,EAAE,GAAGH,EAAEG,EAAE,EAAEyzB,EAAMqxI,EAAE,IAAI5sI,EAAIl4B,EAAE,CAAC,EAAE8kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,EAAE,EAAEF,EAAEC,EAAE,EAAEjlK,EAAEilK,EAAE,EAAE/hG,GAAI+hG,EAAEA,EAAE,EAAExlK,EAAEG,CAAC,EAAEujE,GAAI8hG,EAAEA,EAAE,EAAEp7G,EAAE5pD,CAAC,EAAE8iE,GAAIkiG,EAAEA,EAAE,EAAErlK,CAAC,EAAEojE,GAAIiiG,EAAE7kK,EAAE,CAAC,EAAE,EAAEX,EAAEslK,EAAEE,EAAE,EAAE93C,EAAE83C,EAAE,EAAEgoD,IAAIhoD,EAAE,IAAIzvG,GAAIuvG,EAAE53C,CAAC,EAAE,IAAI33D,GAAIwvG,EAAEhlK,CAAC,CAAC,CAAE,CAC3P,SAAS29N,IAAIv9N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG3kK,GAAG,KAAM,OAAO,KAA+G,IAA1G2kK,EAAE3kK,EAAE,OAAOR,GAAGmlK,EAAE,GAAG,EAAE,EAAE53C,EAAE9oD,EAAGu9G,GAAGg8C,GAAI,GAAGh+N,EAAE,GAAG,CAAC,EAAEmlK,EAAE,GAAG,IAAI53C,EAAE,EAAEvtH,CAAC,EAAEi+N,IAAKz7G,GAAI2iD,EAAE,EAAE3kK,EAAE,MAAM,EAAEA,EAAE,WAAW2kK,EAAE,CAAC,KAAS9kK,EAAE,EAAE4pD,EAAE,EAAE5pD,EAAEL,EAAE,EAAEK,EAAG4zB,EAAEgqM,GAAIvlH,GAAIl4G,EAAEypD,GAAG,CAAC,EAAEpqD,EAAEo+N,GAAIvlH,GAAIl4G,EAAEypD,GAAG,CAAC,EAAEsjE,EAAEltH,CAAC,GAAG4zB,GAAG,EAAEp0B,IAAI,IAAI,GAAG,OAAO0tH,CAAC,CAC3P,SAAS5yC,IAAIn6E,EAAE,CAAC,GAAGA,EAAE,KAAK,CAAC,IAAIyzB,EAAEzzB,EAAE,EAAEyzB,EAAE,GAAE,EAAIzzB,EAAE,EAAE,IAAIyzB,EAAE,EAAIA,EAAE,GAAE,EAA0BzzB,EAAE,EAAE,IAAIyzB,EAAE,KAAhCzzB,EAAE,EAAE,KAAKyzB,EAAE,GAAI,EAAC,IAAsBzzB,EAAE,EAAEyzB,EAAE,KAAK,KAAKzzB,EAAE,EAAEyzB,EAAE,KAAK,KAAK,MAAM,CAAC,IAAI5zB,EAAEG,EAAE,EAAMypD,EAAEzpD,EAAE,EAAEypD,EAAEA,EAAE,MAAM,GAAG,EAAEzpD,EAAE,EAAEiyL,GAAI,IAAI,CAACpyL,EAAEoyL,GAAI,IAAIxoI,CAAC,CAAC,CAAC,EAAEzpD,EAAE,EAAEiyL,GAAI,IAAI,CAACpyL,EAAEoyL,GAAI,IAAIxoI,CAAC,CAAC,CAAC,EAAEzpD,EAAE,EAAEypD,EAAEA,EAAE,OAAO,CAAC,CAAC,CAC5P,SAASi0K,IAAI19N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAS,IAAPA,EAAE,KAAS1tH,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,GAAjBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAKG,EAAE,EAAE,EAAE,EAAE,QAAQA,EAAE,EAAE,EAAE,EAAE,OAAO,CAAgB,IAAfiqD,EAAEjqD,EAAE,EAAEutH,EAAEq6F,IAAI5nN,CAAC,EAAMK,EAAEL,EAAE,EAAE0jD,EAAG6pE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEltH,EAAEL,EAAE,EAAE0jD,EAAG6pE,EAAE,EAAE,EAAE,EAAE,EAAEltH,IAAK4zB,EAAE5zB,CAAC,EAAE4zB,EAAEg2B,CAAC,IAAIA,EAAE5pD,GAAM4zB,EAAEg2B,CAAC,EAAEh2B,EAAEj0B,EAAE,CAAC,IAAG,EAAEi0B,EAAEj0B,EAAE,CAAC,EAAE,EAAEi0B,EAAEg2B,CAAC,EAAEjqD,EAAE,EAAEiqD,EAAE,CAAE,CAC5P,SAASk0K,GAAI39N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAc,IAAZJ,EAAE23G,GAAI1tD,EAAE4tD,GAAQx3G,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAMktH,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEntH,EAAEszC,EAAIlzC,EAAE,EAAEX,EAAE,CAAC,CAAC,EAAEslK,EAAE/kK,EAAEszC,EAAIlzC,EAAE,EAAEA,EAAE,EAAEX,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEG,EAAEuD,EAAK,KAAK,IAAIvD,EAAEI,CAAC,EAAE6pD,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEk7G,CAAC,EAAG,OAAOl7G,EAAEjqD,CAAC,CAC5P,SAASi0K,GAAIzzK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAIC,EAAoB,IAAXplK,EAAEo+N,GAAI59N,EAAEyzB,CAAC,EAAMkxI,EAAE,EAAEC,EAAEplK,EAAE,GAAI,EAACmlK,EAAEC,EAAE,EAAED,EAAqB,GAAlBtlK,EAAE6jD,EAAG1jD,EAAE,GAAGmlK,CAAC,EAAE,GAAG,EAAKtiF,GAAI54B,EAAEo5D,GAAIosC,GAAIjvJ,EAAEX,CAAC,CAAC,CAAC,GAAmB,GAAhB0tH,EAAE/J,GAAIisC,GAAIjvJ,EAAEX,CAAC,CAAC,EAAKQ,GAAG,MAAM,GAAGktH,GAAG,KAAM,OAAO1tH,UAAyBgjF,GAAIxiF,EAAEktH,CAAC,EAAG,OAAO1tH,EAA2B,OAAO,IAAI,CAC5P,SAASw0K,GAAI7zK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAIC,EAAoB,IAAXplK,EAAEq+N,GAAI79N,EAAEyzB,CAAC,EAAMkxI,EAAE,EAAEC,EAAEplK,EAAE,GAAI,EAACmlK,EAAEC,EAAE,EAAED,EAAqB,GAAlBtlK,EAAE6jD,EAAG1jD,EAAE,GAAGmlK,CAAC,EAAE,GAAG,EAAKtiF,GAAI54B,EAAEo5D,GAAIosC,GAAIjvJ,EAAEX,CAAC,CAAC,CAAC,GAAmB,GAAhB0tH,EAAE/J,GAAIisC,GAAIjvJ,EAAEX,CAAC,CAAC,EAAKQ,GAAG,MAAM,GAAGktH,GAAG,KAAM,OAAO1tH,UAAyBgjF,GAAIxiF,EAAEktH,CAAC,EAAG,OAAO1tH,EAA2B,OAAO,IAAI,CAC5P,SAASukI,IAAI5jI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkD,GAAhDmtH,EAAE,IAAI/qG,GAAI2iJ,EAAE8C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAEwrD,GAAG,EAAMtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAAE,IAAIp0B,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAGG,EAAEiqD,EAAEpqD,CAAC,EAAEslK,EAAE,GAAGnlK,EAAE,GAAI,CAAA,GAAG0mE,GAAI6mD,EAAEvtH,CAAC,MAAQ,KAAIH,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAGG,EAAEiqD,EAAEpqD,CAAC,EAAKslK,EAAE,GAAGnlK,EAAE,GAAI,CAAA,IAAGI,EAAEJ,EAAE,GAAI,EAAC0mE,GAAI6mD,EAAEltH,EAAEm9L,GAAIh9L,EAAEyzB,EAAEp0B,EAAE0tH,EAAE,EAAEntH,CAAC,EAAEA,CAAC,GAAI,OAAOu0I,GAAIpnB,CAAC,CAAC,CAC5P,SAAS+wG,IAAI99N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAgB,IAAdltH,EAAE,IAAIgnE,GAAI2+E,EAAE,EAAMhmJ,GAAGotF,GAAG,EAAGssB,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAGzmJ,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEw+E,GAAIh+E,EAAE4pD,EAAE,IAAI5kB,CAAG,EAAE,OAAAwgB,GAAIozD,GAAIkL,GAAI4tC,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIkQ,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIqsB,IAAI/I,CAAC,CAAC,EAAE,IAAIgJ,IAAI58B,CAAC,CAAC,EAASA,CAAC,CAC7P,SAASu9M,GAAIp9M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,IAAI1lK,EAAEo0B,EAAE,KAAKp0B,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAEwlK,EAAErlK,EAAE,EAAEA,EAAE,EAAE,EAAEulK,EAAEvlK,EAAE,EAAEA,EAAE,EAAE,EAAEI,EAAEI,EAAE,EAAE+sH,EAAEntH,EAAE,EAAEA,EAAE,EAAE,EAAE+kK,EAAE/kK,EAAE,EAAEA,EAAE,EAAE,EAAEglK,EAAEC,EAAE93C,EAAE+3C,EAAEC,EAAEJ,EAAEl7G,EAAE1mD,EAAK,KAAK,KAAK6hK,EAAEA,EAAEE,EAAEA,CAAC,EAAEF,GAAG5kK,EAAE,EAAEypD,EAAEq7G,GAAG9kK,EAAE,EAAEypD,EAAK5pD,GAAGglK,GAAGD,EAAEG,GAAGD,IAAOD,GAAGD,EAAEG,GAAGD,GAAEhiG,GAAItjE,EAAEqlK,EAAErlK,EAAE,EAAE,CAAC,EAAEujE,GAAIvjE,EAAEulK,EAAEvlK,EAAE,EAAE,CAAC,CAAE,CAC7P,SAASu+N,GAAI/9N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAG,CAAAzpD,EAAE,GAAYA,EAAE,GAAG,KAAY,KAAIyzB,EAAEzzB,EAAE,EAAE,OAAO,EAAEyzB,GAAG,EAAEA,GAAG,EAAG,IAAI5zB,EAAE,EAAEA,GAAG4zB,EAAE5zB,GAAG,GAAMG,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,GAAGG,EAAE,EAAEH,CAAC,IAAIG,EAAE,EAAEH,EAAE,CAAC,GAAGG,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,KAAG4pD,EAAEzpD,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,CAAC,EAAE4pD,EAAEA,EAAEzpD,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE4pD,GAAIzpD,EAAE,EAAE,GAAI,CAC7P,SAASg+N,IAAIh+N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAiB,IAAf73C,EAAEt5F,GAAG,EAAEgpJ,GAAID,GAAQn9K,EAAE0tH,EAAE,EAAE,KAAK,KAAK1tH,EAAE,GAAE,GAAsB,IAAjBG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAMO,EAAEsjD,EAAGgwB,GAAGlzE,EAAE,EAAE,EAAER,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGI,EAAE,GAAI,GAAoD,OAAjD+kK,EAAEzhH,EAAGtjD,EAAE,KAAK,EAAE,EAAE6pD,EAAEvG,EAAGyhH,EAAE,EAAE,EAAE,EAAEC,EAAE1hH,EAAGyhH,EAAE,EAAE,GAAG,EAAE9kK,EAAE+kK,EAAE,EAASplK,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAEiqD,EAAE,EAAE,GAAG5pD,EAAE,MAAM,IAAK,GAAE,IAAK,GAAE4pD,EAAE,EAAE,GAAG5pD,CAAE,CAAG,CAC9P,SAASo+N,IAAIj+N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAW,IAATD,EAAE,GAAGC,EAAE,EAAM93C,EAAE/sH,EAAE2kK,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAE,CAAiD,IAAhDtlK,EAAE0tH,EAAE43C,CAAC,EAAE9kK,EAAE,IAAIokG,IAAI2gE,GAAG,GAAG5kK,EAAE,CAAC,EAAEA,EAAE4kK,CAAC,EAAEnxI,GAAG+9D,KAAM+rC,KAAU9zE,EAAE,EAAEA,EAAEpqD,EAAE,OAAOoqD,IAAK,IAAIjqD,EAAEiqD,EAAE,EAAEjqD,EAAEH,EAAE,OAAOG,IAAKk3E,GAAIr3E,EAAEoqD,CAAC,GAAGygE,IAAM67E,MAAOrvH,GAAIr3E,EAAEG,CAAC,EAAEumM,EAAG,GAAGm4B,IAAIr+N,EAAER,EAAEoqD,CAAC,EAAEpqD,EAAEG,CAAC,CAAC,EAAE,GAAG,EAAEqlK,EAAG,EAAED,CAAC,CAAC,OAAOC,CAAC,CAC9P,SAASwb,GAAIrgL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAE,IAAI2wE,GAAIx0B,GAAIh8C,EAAE,EAAE,CAAC,EAAEH,EAAE,GAAG,IAAI27D,GAAI37D,GAAG4zB,EAAE8wC,GAAGvkE,CAAC,IAAI,EAAEyzB,EAAE,SAAS,EAAE,EAAC,EAAMzzB,EAAE,GAAE,GAAIH,EAAE,GAAG,gBAAgB07D,GAAI17D,EAAEG,EAAE,GAAE,CAAE,EAAKA,EAAE,GAAI,IAAEH,EAAE,GAAG,YAAY07D,GAAI17D,EAAEG,EAAE,GAAI,CAAA,GAAEH,EAAE,GAAG,KAAYG,EAAE,GAAE,IAAIH,EAAE,GAAG,aAAa07D,GAAI17D,EAAEG,EAAE,GAAE,CAAE,EAAEH,EAAE,GAAG,KAAWA,EAAE,CAAC,CAC9P,SAASs+N,GAAIn+N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,GAAGQ,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,IAAKmJ,GAAImiL,EAAE,EAAEC,GAAID,GAAG,EAAEE,GAAK,CAAA,EAA+B,IAA7Bt+N,EAAE,IAAI+7F,GAAK,EAACs+C,KAAMkkF,GAAIv+N,EAAEshE,EAAG,EAAMzhE,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,EAAEA,EAAE,EAAE,IAAIj0B,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEiqD,EAAE,EAAE4tD,GAAI,OAAAr3G,EAAE,EAAE,GAAGA,CAAC,EAASA,CAAC,CAC/P,SAASw+N,IAAIx+N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGt5F,EAAE,EAAEzzB,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,qEAAqE,CAAC,EAAQ,IAAN7yC,EAAE,EAAE,EAAMR,EAAE,EAAEA,EAAEQ,EAAE,EAAER,IAAKopC,EAAI5oC,EAAE,EAAE,CAAC,EAAkB,IAAhB+sH,EAAEt5F,EAAE,EAAE,EAAEzzB,EAAE,EAAEH,EAAEktH,EAAM1tH,EAAE,EAAEA,EAAE0tH,EAAE1tH,IAAKupC,EAAI5oC,EAAE,EAAEX,EAAEQ,CAAC,EAAE,GAAGG,EAAE,EAAG,IAAIypD,EAAE,EAAEA,EAAEzpD,EAAE,EAAEypD,IAAK7gB,EAAI5oC,EAAE,EAAE,CAAC,CAAG,CAC/P,SAASovM,IAAIpvM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA6B,GAA3BD,EAAEnxI,EAAEoxI,EAAE3hH,EAAG+hB,GAAGC,GAAGllE,EAAE,CAAC,EAAE4kK,CAAC,EAAE,EAAE,EAAK,CAACC,EAAG,MAAArlK,EAAEktI,GAAIk4B,EAAEguB,EAAG,EAAEjuB,EAAE,4CAA4CnlK,EAAEI,EAAE+kK,EAAE,WAAiBj/H,EAAI,IAAIsO,GAAIp0C,CAAC,CAAC,EAAEP,EAAEktI,GAAIq4B,EAAE,OAAO,EAAE/kK,EAAE,IAAIi3D,IAAI92D,EAAE6kK,CAAC,EAAEmsD,IAAInxN,EAAE,EAAEA,EAAE,EAAER,CAAC,EAAE0tH,EAAEwf,GAAIq4B,EAAEmJ,EAAG,EAAEtkH,EAAE,IAAInoB,IAAIthC,CAAC,EAAEmvM,IAAI1lJ,EAAE,EAAEsjE,CAAC,CAAC,CAC/P,SAASo3D,IAAInkL,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG6pD,GAAG,MAAe,GAATjqD,EAAEQ,EAAE,EAAEyzB,CAAC,EAAKj0B,GAAe,IAAZH,EAAEG,EAAE,EAAEI,EAAEJ,EAAE,EAAMmlK,EAAE,EAAEA,EAAE/kK,EAAE,EAAE+kK,EAAkB,GAAf53C,EAAE7pE,EAAG7jD,EAAEslK,CAAC,EAAE,GAAG,EAAK53C,EAAE,GAAE,GAAIltH,GAAGqkD,GAAGuF,EAAEsjE,EAAE,GAAE,CAAE,EAAG,OAAO43C,WAAUnlK,EAAEQ,EAAE,EAAEyzB,CAAC,EAAKj0B,GAAe,IAAZH,EAAEG,EAAE,EAAEI,EAAEJ,EAAE,EAAMmlK,EAAE,EAAEA,EAAE/kK,EAAE,EAAE+kK,EAAkB,GAAf53C,EAAE7pE,EAAG7jD,EAAEslK,CAAC,EAAE,GAAG,EAAK5qG,EAAGgzD,EAAE,GAAI,CAAA,IAAIhzD,EAAGtQ,CAAC,EAAG,OAAOk7G,EAAK,MAAO,EAAE,CAC/P,SAAS5Z,GAAI/qJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAyC,OAAvCK,EAAE4zB,GAAG,KAAKqmC,GAAGm7C,GAAIj1G,EAAE,EAAE,IAAI,CAAC,EAAEysD,GAAIzsD,EAAE,EAAEyzB,CAAC,EAAK83C,EAAG1rE,EAAE,GAAG,GAAGL,EAAE0jD,EAAGrjD,EAAE,GAAG,EAAEL,EAAE,GAAE,GAAI,KAAuBA,GAAU+rE,EAAG1rE,EAAE,GAAG,GAAG4pD,EAAEvG,EAAGrjD,EAAE,IAAI,EAAEL,EAAEiqD,EAAE,EAAIjqD,IAAIA,EAAE,IAAI,OAAei0B,GAAG,KAAKgtF,GAAIzgH,EAAE,EAAE,KAAKR,CAAC,EAAEi4H,GAAIz3H,EAAE,EAAEyzB,EAAEj0B,CAAC,IAAUA,GAAc,IAAK,CAC/P,SAASu3L,IAAI/2L,EAAE,CAACylN,GAAK,EAAC,IAAIhyL,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAoC,GAA/B3kK,GAAG,OAAiBR,EAAEQ,EAAE,OAAUR,EAAE,GAAG,GAAE,OAAO,KAA6C,IAAxCi0B,EAAEm8H,GAAI5vJ,CAAC,EAAEX,EAAEG,EAAE,EAAE,EAAEK,EAAEokE,EAAGu9G,GAAGg8C,GAAI,GAAGn+N,EAAE,GAAG,CAAC,EAAMoqD,EAAE,EAAEA,EAAEpqD,EAAEoqD,IAAI,CAAoD,GAAnDsjE,EAAE0xG,GAAIhrM,EAAEg2B,EAAE,CAAC,CAAC,EAAKsjE,GAAG,KAAe43C,EAAE85D,GAAIhrM,EAAEg2B,EAAE,EAAE,CAAC,CAAC,EAAKk7G,GAAG,IAAG,OAAO,KAAK9kK,EAAE4pD,CAAC,GAAGsjE,GAAG,EAAE43C,IAAI,IAAI,EAAE,CAAC,OAAO9kK,CAAC,CAC/P,SAAS+8L,IAAI58L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAuB,GAArBG,EAAE0jD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAK,CAACj0B,EAAmC,GAAhCA,EAAE,IAAIq1J,IAAI70J,EAAE,EAAEyzB,EAAE5zB,CAAC,EAAEi+E,GAAI99E,EAAE,EAAEyzB,EAAEj0B,CAAC,EAAKg0L,GAAI//J,CAAC,EAAGy5C,IAAIltE,EAAE,EAAEyzB,EAAE,EAAEA,EAAE,EAAEj0B,CAAC,MAAqC,QAA9BH,EAAEoqN,IAAIh2L,CAAC,EAAEg2B,EAAEvG,EAAG25D,GAAI78G,EAAE,EAAEX,CAAC,EAAE,GAAG,EAASA,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAEG,EAAE,EAAE,GAAK6xC,GAAIoY,EAAEh2B,EAAE,EAAEj0B,CAAC,EAAE,MAAM,IAAK,GAAE,IAAK,GAAEA,EAAE,EAAE,GAAK6xC,GAAIoY,EAAEh2B,EAAE,EAAEj0B,CAAC,CAAE,CAAG,OAAOA,CAAC,CAChQ,SAAS21I,IAAIn1I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkD,GAAhDD,EAAE,IAAI3iJ,GAAIpiB,EAAE6nK,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAEj0B,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAEwrD,GAAG,EAAMtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAAE,IAAIs5F,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAG1tH,EAAEG,EAAEutH,CAAC,EAAEntH,EAAE,GAAGP,EAAE,GAAI,CAAA,GAAG6mE,GAAIy+F,EAAEtlK,CAAC,MAAQ,KAAI0tH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAG1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAE,CAAE,IAAGulK,EAAEvlK,EAAE,GAAE,EAAG6mE,GAAIy+F,EAAEl7G,EAAEuzI,GAAIh9L,EAAEyzB,EAAEs5F,EAAE43C,EAAE,EAAEC,CAAC,EAAEA,CAAC,GAAI,OAAO6pB,GAAI9pB,EAAE9kK,CAAC,CAAC,CAChQ,SAAS6+N,IAAI1+N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAa,GAAXplK,EAAEQ,EAAE,EAAEyzB,EAAE,CAAC,EAAKj0B,GAAG,EAAG,OAAOA,EAAW,IAAJH,EAAE,EAAMslK,EAAE,IAAIzsI,EAAIzE,EAAE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAMl7G,EAAE,IAAIvxB,EAAI60F,EAAE,CAAC,EAAEtjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEm7G,EAAE/kK,EAAE,EAAE,EAAK4zB,GAAGmxI,IAAGhlK,EAAE8+N,IAAI1+N,EAAE4kK,CAAC,EAAEvlK,EAAE0D,EAAK,KAAK,IAAI1D,EAAEO,EAAE,CAAC,GAAI,OAAA4pL,IAAIxpL,EAAEyzB,EAAEp0B,CAAC,EAASA,CAAE,CACjQ,SAASs/N,IAAI3+N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIoqD,EAAE,EAAEA,EAAEzpD,EAAE,EAAE,OAAOypD,IAAI,CAAyC,IAAxCpqD,GAAGw9D,GAAIpT,EAAEzpD,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEypD,CAAC,EAAE,EAAE,GAAGjqD,EAAEiqD,EAAQjqD,EAAE,GAAGi0B,EAAE,IAAIopC,GAAIr9D,EAAE,EAAEQ,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAER,EAAE,CAAC,EAAE,EAAE,GAAGH,CAAC,EAAE,GAAGy2G,GAAI91G,EAAER,GAAGq9D,GAAIr9D,EAAE,EAAEQ,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAER,EAAE,CAAC,EAAE,EAAE,IAAI,EAAEA,EAAEq9D,GAAIr9D,EAAEQ,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAER,CAAC,EAAEH,CAAC,CAACQ,EAAE,EAAE,IAAIklC,GAAIllC,EAAE,EAAE,IAAIklC,EAAG,CACjQ,SAAS65L,IAAI5+N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAqF,IAAnFA,GAAGp7G,EAAEvG,EAAGzvB,EAAE,GAAGA,EAAE,EAAG,EAAC,CAAC,EAAE,IAAIuxD,GAAIv7B,EAAEvG,EAAG27B,GAAIp1B,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG7pD,EAAEw8N,GAAIv8N,EAAE,eAAe,EAAMR,EAAEO,EAAEmtH,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAAU,GAAPvtH,EAAEH,EAAE0tH,CAAC,EAAK+0F,GAAItiN,CAAC,EAAE,QAAQ,EAAuB,IAAXolK,EAAEmtD,IAAI/xN,EAAER,CAAC,EAAKolK,GAAG,KAAM,OAAO,KAAUr3D,GAAIs3D,EAAE3hH,EAAG0hH,EAAE,EAAE,CAAC,EAAG,OAAOC,CAAC,CACjQ,SAASsnD,IAAInsN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,IAAI5pD,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,GAAG34B,GAAI,CAAC,EAAE,GAAM24B,EAAE,IAAG,EAAE4X,GAAIrhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,IAAI,EAAE+tC,GAAIxhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAG1wB,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAG,GAAG,EAAE4X,GAAIrhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,IAAI,EAAE+tC,GAAIxhE,EAAE,EAAE,CAAC,GAAGyzB,EAAE,EAAE,KAAKA,EAAE,EAAE,GAAG1wB,EAAK,KAAK,IAAI,EAAE0mD,EAAE,CAAC,GAAI,CAClQ,SAAS8iK,IAAIvsN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAIQ,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,OAAO,IAAI,EAAMyzB,IAAIqrE,IAAM+5C,KAAMplH,GAAG2vE,IAAK6xD,GAAI/xG,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,GAAGm9F,GAAK,EAACu1C,GAAK,EAACuiB,GAAI/xG,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,EAAE2yI,EAAG,IAAOsiB,GAAI/xG,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,GAAGm9F,GAAG,EAAGw1C,KAAMsiB,GAAI/xG,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,EAAE0yI,EAAG,OAAQ,KAAIlzI,EAAE,IAAI0iH,GAAIliH,CAAC,EAAER,EAAE,GAAGA,EAAE,GAAIiqD,EAAEvG,EAAGwrH,GAAIlvK,CAAC,EAAE,EAAE,EAAEy1J,GAAIxrG,EAAE5pD,CAAC,CAAG,CAClQ,SAASg/N,IAAI7+N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA2F,IAAzFJ,EAAE+hG,GAAG,IAAIp+D,GAAInjC,CAAC,CAAC,EAAE2kK,EAAE,IAAIl5B,GAAIjsI,EAAEA,EAAE,EAAE,MAAM,EAAEH,EAAEkiG,GAAG,IAAIp+D,GAAI1P,CAAC,CAAC,EAAE7zB,EAAE,IAAI6rI,GAAIpsI,EAAEA,EAAE,EAAE,MAAM,EAAE0tH,EAAE,KAAW43C,EAAE,EAAE,GAAG/kK,EAAE,EAAE,IAAGC,GAAGqyE,GAAIyyF,EAAE,EAAE,CAAC,EAAEzhH,EAAGyhH,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,GAAGl7G,GAAGyoB,GAAItyE,EAAE,EAAE,CAAC,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,GAAMC,GAAG4pD,IAAGsjE,EAAEltH,EAAc,OAAOktH,CAAC,CAClQ,SAASze,GAAItuG,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA4F,OAA1FtlK,EAAEW,EAAE,EAAEksE,GAAIlsE,EAAE,EAAE,KAAK2kK,EAAE3kK,EAAE,EAAEksE,GAAI,GAAGrsE,EAAEkD,EAAK,KAAK,MAAM4hK,EAAE8hB,EAAG,EAAEpnL,GAAGQ,EAAE8kK,GAAG9kK,EAAE6mL,IAAIrnL,GAAGqnL,IAAI1mL,EAAE,EAAEX,EAAEW,EAAE,EAAE2kK,EAAKlxI,GAAG,GAAW1wB,EAAK,KAAK,MAAM/C,EAAE,EAAEq7M,IAAI5nL,CAAC,CAAC,GAAOj0B,EAAEQ,EAAE,GAAG,GAAGyzB,EAAE,IAAIs5F,EAAEhqH,EAAK,KAAK,MAAM/C,EAAE,EAAEs7M,IAAI7nL,CAAC,CAAC,EAAEg2B,EAAEjqD,EAAEutH,EAAEtjE,GAAG,aAAaA,GAAGkyI,IAAYlyI,EAAE,CACnQ,SAASq1K,IAAI9+N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAK6Y,IAAI5lI,EAAEyzB,CAAC,EAAEmyG,IAAI5lI,EAAEH,CAAC,GAAG4pD,EAAE+2H,GAAI3gL,GAAGi/F,EAAK,EAACsE,GAAG,EAAGpjG,EAAE,EAAEypD,EAAE,GAAE,EAAG,EAAEw+C,GAAI/kD,EAAGuG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEsjE,EAAEyzD,GAAI/sJ,EAAEwvE,EAAG,EAAEjjG,EAAE,EAAE+sH,EAAE,GAAI,EAAC,EAAE9kB,GAAI/kD,EAAG6pE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAOvtH,EAAEghL,GAAI3gL,GAAGi/F,IAAMmE,KAAMjjG,EAAE,EAAER,EAAE,KAAK,EAAEyoG,GAAI/kD,EAAG1jD,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEH,EAAEmhL,GAAI/sJ,EAAE2vE,EAAG,EAAEpjG,EAAE,EAAEX,EAAE,KAAK,EAAE4oG,GAAI/kD,EAAG7jD,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CACnQ,SAASwlL,IAAI7kL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG3kK,IAAGyzB,EAAEzzB,EAAE,GAAGsgH,EAAG,EAAK7sF,IAAGs5F,EAAEx3E,GAAG45I,IAAK,CAAC17J,EAAE,IAAIA,EAAE,EAAE,IAAIskD,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGvgK,CAAC,GAAGA,EAAE,GAAG,qBAAqB,CAAC,EAAKs5F,GAAG,OAAK,CAAW,IAAV43C,EAAE,IAAI9/H,EAAQ4kB,EAAE2yK,GAAIrvG,EAAE,MAAM,EAAEvtH,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE9kK,EAAE,OAAO8kK,CAAC,CAAG,OAAOt6F,KAAMA,GAAK,EAAC+b,EAAG,CACnQ,SAASonH,IAAIxtM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAU,IAARQ,EAAEG,EAAE,EAAE,EAAMX,EAAE6jD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGp0B,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAEG,EAAE,EAAE,EAAEK,EAAEqzC,EAAImnC,EAAG76E,EAAE,EAAE,GAAGizE,EAAG,CAAC,CAAC,EAAEjzE,EAAE,EAAE,GAAGiqD,EAAEjqD,EAAE,EAAEiqD,EAAE,IAAIz5B,GAAK,EAACk/E,GAAK,EAACzlD,EAAE,GAAI,IAAGq1C,EAAK,EAAC+5C,IAAK,CAACpvF,EAAE,GAAI,EAAC,EAAEvW,EAAImnC,EAAG5wB,EAAE,GAAGylD,EAAG,CAAC,CAAC,EAAEh8D,EAAImnC,EAAG5wB,EAAE,GAAGylD,EAAG,CAAC,CAAC,EAAEzlD,EAAE,OAAOq1C,IAAM+5C,IAAK,CAACpvF,EAAE,KAAK,EAAE,EAAG,CACpQ,SAASs1K,IAAI/+N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE6zB,EAAE,GAAKj0B,EAAE,KAAKH,EAAE,KAAKulK,EAAE,IAAIhlK,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAM6pD,EAAE,IAAIonD,GAAGphC,GAAGm3G,GAAIjiB,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIrhK,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAG,CAAgB,GAAf5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAOjqD,GAAGA,GAAGmlK,EAAE,CAAClxI,EAAE,GAAM,MAAMmxI,CAAC,CAAa,GAAZplK,EAAEmlK,EAAE53C,EAAEltH,EAAE,EAAE,EAAOR,GAAGA,GAAG0tH,EAAE,CAACt5F,EAAE,GAAM,MAAMmxI,CAAC,CAACvlK,EAAE0tH,CAAC,CAAE,OAAOt5F,CAAC,CACpQ,SAASqiH,IAAI91I,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAY,IAAVP,EAAE,GAAGslK,EAAE,GAAO53C,EAAE,EAAEA,EAAEt5F,EAAE,EAAE,SAAYj0B,GAAGq9D,GAAIkwD,EAAEt5F,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEs5F,CAAC,EAAE,GAAG,GAAM,EAAAvtH,EAAE,EAAEQ,EAAE,IAAnD+sH,IAAoEvtH,EAAE,GAAGQ,EAAE,IAAGX,EAAE,IAAIA,EAAE0tH,GAAG43C,EAAE53C,GAAG,OAAAntH,GAAGI,EAAE,EAAEA,EAAE,GAAG,EAAKX,GAAG,IAAGoqD,EAAEu1K,IAAIh/N,EAAEyzB,EAAEp0B,EAAEslK,CAAC,EAAE/kK,EAAEuqD,KAAK0S,GAAIpT,EAAEh2B,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEg2B,CAAC,EAAE,GAAG,IAAI6pK,IAAI7/L,EAAEg2B,EAAE5pD,CAAC,GAASD,CAAC,CACpQ,SAAS8vB,IAAK,CAACA,GAAIhrB,EAAIu6N,IAAI,IAAI55J,IAAKr1C,GAAK,EAAC4gK,IAAK,GAAG,EAAEsuC,IAAIxe,IAAIye,IAAI,IAAI75J,GAAI,EAAE,EAAE85J,IAAI,IAAI/5J,GAAI00G,GAAIolD,GAAG,EAAEE,IAAI,IAAIh6J,GAAImrH,GAAI,EAAE,EAAE8uC,IAAIle,GAAIme,IAAIllD,GAAImlD,IAAIjlD,GAAIklD,IAAIvzE,GAAIwzE,IAAI/iC,GAAIgjC,IAAIp2B,GAAIq2B,IAAIh0E,GAAIi0E,KAAKrwM,GAAK,EAAC8pM,KAAKwG,IAAItG,IAAIuG,IAAIjG,IAAIkG,IAAIhG,IAAIiG,IAAI/F,IAAIgG,IAAIj1B,GAAIk1B,IAAIC,IAAI7pD,GAAIqjD,IAAIyG,IAAI3G,IAAI4G,IAAIlG,GAAG,CACpQ,SAASmG,GAAIvgO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkF,IAAhF73C,GAAG1tH,EAAE,IAAIijB,GAAIjjB,GAAGypG,GAAIikB,GAAGj8F,GAAI2C,CAAC,EAAEA,EAAC,EAAGmxI,GAAG,CAAC73C,EAAE,IAAIA,EAAE,EAAE,IAAIh1C,IAAK0kC,GAAK,EAACs3E,IAAKC,GAAGjnE,CAAC,GAAGA,EAAE,GAAOntH,EAAE,EAAEA,EAAEC,EAAE,OAAOD,GAAG,EAAG8gK,GAAIkE,EAAE/kK,EAAED,EAAE,CAAC,EAAEC,EAAED,CAAC,CAAC,EAA2C,IAAzC6pD,GAAG,CAACzpD,EAAE,KAAKA,EAAE,GAAG,IAAImhF,EAAIq/I,GAAGxgO,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAQ2kK,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAGnlK,EAAE0+G,IAAIh7D,EAAGwpG,EAAIjjG,EAAEA,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAEA,EAAEjqD,EAAE0mE,GAAIzc,EAAEsjE,CAAC,CAAC,CACpQ,SAAS+vD,IAAI98K,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAwJ,IAAtJu7E,IAAI,KAAK,KAAK,IAAI/1C,CAAG,EAAE,KAAK,EAAEpR,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAEG,EAAEypD,GAAGzpD,EAAE,GAAGwlE,GAAIxlE,CAAC,EAAEA,EAAE,GAAG,KAAK,EAAE4lH,IAAIn8D,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAEm8D,IAAIn8D,EAAE,EAAE,KAAK,CAAC,EAAE48H,IAAI,KAAK,KAAK,EAAE,KAAK,CAAC,EAAE2pC,IAAI,IAAI,EAAM3wN,EAAE,KAAK,EAAE,EAAE,EAAE,GAAI,EAAC,GAAI,EAACA,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,KAAK,GAAG,EAAEG,EAAE,EAAE,EAAE,OAAO,GAAGihO,IAAI,KAAKjhO,CAAC,CAAE,CACrQ,SAASkhO,GAAI1gO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAACJ,EAAEi0B,EAAE,CAAC,EAAE,CAA4C,IAA3Cj0B,EAAEi0B,EAAE,CAAC,EAAE,GAAKs5F,EAAEtjE,EAAE,CAACsjE,IAAIA,EAAE,IAAI6zB,IAAKh4G,EAAImkF,EAAE,EAAEt5F,CAAC,EAAM7zB,EAAEP,EAAEo0B,EAAE,CAAC,EAAE,GAAE,EAAG7zB,EAAE,GAAI,GAAG+kK,EAAEzhH,EAAGtjD,EAAE,GAAE,EAAG,GAAG,EAAK,EAAA+kK,EAAE,GAAG9kK,GAAG8kK,EAAE,GAAG9kK,KAAY8kK,EAAE,GAAGlxI,GAAGitM,GAAI1gO,EAAE2kK,EAAE,EAAElxI,EAAEs5F,EAAEvtH,EAAEH,CAAC,EAAEslK,EAAE,GAAGlxI,GAAGitM,GAAI1gO,EAAE2kK,EAAE,EAAElxI,EAAEs5F,EAAEvtH,EAAEH,CAAC,EAAEupC,EAAImkF,EAAE,EAAE43C,CAAC,EAAEh9C,GAAIoF,EAAE,EAAE43C,EAAE,CAAC,GAAE,OAAO53C,CAAC,CAAC,OAAO,IAAI,CACrQ,SAASu2F,IAAItjN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJlxI,EAAE,EAAMj0B,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEK,EAAEs4I,GAAI,IAAIvtC,GAAI,KAAK,IAAI99C,GAAIrD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI37C,GAAG,EAAEjO,GAAG,EAAE4zB,EAAE,IAAIs5F,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE43C,EAAExsB,GAAI,IAAIvtC,GAAI,KAAK,IAAI99C,GAAIztD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI0O,GAAG,EAAE42J,GAAG,EAAElxI,EAAE,OAAOA,GAAG,CAAC,CACrQ,SAASktM,IAAI3gO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAsC,IAApCusH,GAAIn4F,EAAE,2BAA2B,CAAC,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAK6+H,IAAIzoL,CAAC,IAAGL,GAAGH,EAAE,IAAI41L,IAAIp1L,CAAC,EAAEijF,EAAIjjF,GAAGqqH,EAAK,EAAC6pF,IAAK10M,CAAC,EAAEuhO,IAAIvhO,CAAC,EAAEA,GAAGgmD,GAAIozD,GAAI84C,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIttD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIqT,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE8tN,IAAIrhO,CAAC,GAAGqsH,GAAIp4F,CAAC,CAAC,CACrQ,SAASqtM,IAAI9gO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA4B,IAA1BxlK,EAAEW,EAAE,EAAE,EAAE,EAAE+sH,EAAE7pE,EAAGghG,GAAGrkJ,EAAE,CAAC,EAAE,CAAC,EAAMglK,EAAE,EAAEA,EAAEhlK,EAAE,EAAEglK,IAAKD,EAAE1hH,EAAGghG,GAAGrkJ,EAAEglK,CAAC,EAAE,CAAC,EAAElpG,GAAIlS,EAAEsjE,EAAEtjE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEk7G,EAAE33F,GAAIoT,GAAI,IAAIhoC,GAAI20E,CAAC,EAAE63C,CAAC,EAAE,EAAG,EAAEhlK,EAAEotE,GAAI,IAAIysD,GAAIy8C,GAAI72K,CAAC,CAAC,EAAEG,CAAC,EAAE4gF,GAAIukF,EAAE/kK,CAAC,EAAE+7D,GAAIlS,EAAEk7G,EAAEl7G,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEsjE,EAAE63C,EAAEvlK,EAAEo0B,GAAG,EAAEylI,GAAI75J,CAAC,EAAEykL,GAAIzkL,CAAC,EAAEwmG,GAAIp8C,GAAGyoB,GAAIryE,EAAE,GAAG,CAAC,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAC,CAAE,CACrQ,SAASkhO,IAAI/gO,EAAE,CAACu9F,GAAK,EAAC,IAAI9pE,EAAE5zB,EAAE4pD,EAA6L,OAA3L5pD,EAAE+tG,GAAI+sD,GAAIzhD,EAAG9hE,EAAGgjH,GAAG,CAAC,EAAEhhD,EAAI,GAAG,EAAE,CAACwhD,EAAG,CAAC,CAAC,EAAK,EAAA2Q,GAAG/2C,GAAG30H,EAAEG,CAAC,CAAC,EAAE,IAAgByzB,EAAEm6E,GAAIysD,GAAInhD,EAAG9hE,EAAGgjH,GAAG,CAAC,EAAEhhD,EAAI,GAAG,EAAE,CAACkhD,GAAIC,EAAG,CAAC,CAAC,EAAKgR,GAAG/2C,GAAG/gG,EAAEzzB,CAAC,CAAC,EAAE,KAAgBypD,EAAEmkD,GAAI4sD,GAAIthD,EAAG9hE,EAAGgjH,GAAG,CAAC,EAAEhhD,EAAI,GAAG,EAAE,CAACqhD,GAAIC,EAAG,CAAC,CAAC,EAAK6Q,GAAG/2C,GAAG/qE,EAAEzpD,CAAC,CAAC,EAAE,GAA2B,CACrQ,SAASwkI,IAAIxkI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAc,OAAZK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAGL,EAAE+1C,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG,aAAa,CAAC,EAAKL,GAAG,OAAMiqD,EAAEqnB,GAAItxE,EAAE01E,GAAI,EAAE,CAAC,EAASzrB,GAAG,GAAGqqH,GAAI9zK,EAAEywG,GAAIzwG,EAAE84J,GAAIrlI,EAAE,IAAI,CAAC,EAAEj0B,CAAC,EAAEiqD,GAAG,EAAEqqH,GAAI9zK,EAAE,KAAKR,EAAE,OAAO,CAAC,CAAC,EAAEs0K,GAAI9zK,EAAER,EAAE,OAAO,EAAEiqD,CAAC,EAAEjqD,EAAE,OAAOiqD,EAAE,CAAC,CAAC,GAAU,IAAI,CACrQ,SAASu3K,IAAGvtM,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAG,CAAC,OAAOi0B,GAAG,KAAKw9C,GAAIC,GAAIz9C,CAAC,CAAC,OAAOzzB,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAG,OAAAH,EAAEG,EAAER,EAAEw8C,GAAIwtE,GAAG/1F,CAAC,CAAC,EAAE,KAAKg2B,GAAGnG,GAAG,EAAGy5I,GAAItpK,CAAC,IAAK,GAAEg2B,EAAE,SAAS,EAAE,GAAGisI,IAAIzmB,IAAG,GAAI1oH,GAAK,EAAC,sCAAsC/mD,GAAGK,CAAC,EAAS,IAAIL,EAAE,UAAUw8C,GAAIn8C,EAAE,EAAE,EAAE,IAAS,MAAM6lC,EAAI1lC,CAAC,CAAC,CAAC,CACtQ,SAASihO,IAAIjhO,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,OAAO,IAAI2sB,IAAI,IAAK,GAAE,OAAO,IAAIV,IAAI,IAAK,GAAE,OAAO,IAAI+8B,IAAI,IAAK,GAAE,OAAO,IAAIpwC,IAAI,IAAK,GAAE,OAAO,IAAIymE,IAAI,IAAK,GAAE,OAAO,IAAIxyD,IAAI,QAAQ,MAAM6Y,EAAI,IAAImN,GAAI,mDAAmD7yC,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAGA,EAAE,EAAE,CAAC,CAAE,CAAC,CACtQ,SAASkhO,GAAIlhO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAKoqD,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,IAAGA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,EAAE,GAAGo8C,GAAIpyE,EAAEg2B,EAAE,CAAC,GAAG,IAAIjqD,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAKiqD,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,IAAGA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,EAAE,GAAGo8C,GAAIhmG,EAAE4pD,EAAE,CAAC,EAAG,CACtQ,SAASkrH,GAAI30K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,EAAE,GAAG,OAAMA,EAAE,EAAEA,EAAE,GAAGA,EAAE,CAAC,EAAEkmE,GAAIlmE,EAAEA,EAAE,CAAC,EAAKA,EAAE,GAAG,OAAAX,EAAEW,EAAE,EAASX,EAAgD,GAA7Co0B,EAAEyvB,EAAGljD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,EAAER,EAAEi0B,EAAE,GAAI,EAACzzB,EAAE,EAAEyzB,EAAE5zB,EAAEG,EAAE,GAAGR,CAAC,EAAKK,EAAE,GAAI,EAAEG,EAAE,EAAEH,EAAEqmE,GAAIlmE,EAAEH,CAAC,MAAgB,KAATG,EAAE,EAAE,KAAW,CAACyzB,EAAE,OAAMoyC,GAAG7lE,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAKA,EAAE,GAAG,IAASypD,EAAEvG,EAAGljD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEyzB,EAAEg2B,EAAG,OAAOjqD,CAAC,CACtQ,SAAS2hO,IAAInhO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAe,GAAbl7G,EAAEh2B,EAAEj0B,EAAEiqD,EAAE,GAAI,EAAI02G,GAAIngK,EAAE,EAAER,CAAC,GAAG,GAAGA,EAAE,GAAE,GAAIs1I,GAAI90I,EAAER,EAAEiqD,EAAE,GAAE,CAAE,EAAG,MAAO,OAA4C,KAAhCk7G,EAAE8C,GAAIznK,EAAE,EAAE,GAAE,EAAGR,CAAC,EAAEK,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG,EAAMX,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAU,GAAP0tH,EAAEltH,EAAER,CAAC,EAAKslK,EAAE,GAAG53C,EAAE,GAAE,CAAE,EAAG,OAAG7oE,GAAG6oE,EAAEtjE,CAAC,EAAU,IAAWvG,EAAGi6I,GAAIn9L,EAAEX,EAAEo0B,CAAC,EAAE,EAAE,EAAS,IAAQ,OAAOyyC,GAAIlmE,EAAEyzB,CAAC,CAAC,CACtQ,SAAS2tM,IAAIphO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAiK,IAA/JnlK,EAAE,IAAIo/L,GAAI5+L,CAAC,EAAEq0B,GAAI70B,GAAGmrF,GAAK,EAAC6+D,GAAK,EAAC1mE,EAAItjF,GAAG0qH,EAAK,EAAC+jC,IAAKx6H,CAAC,EAAEqvD,EAAItjF,EAAEqoN,GAAIp+J,CAAC,EAAEq5B,EAAItjF,GAAG8tB,GAAK,EAAC6oI,KAAMp4D,GAAK,EAACva,GAAK,EAACV,EAAItjF,EAAE4wM,GAAI38K,EAAE,CAAC,EAAEqvD,EAAItjF,EAAE6wM,GAAI58K,EAAE,CAAC,EAAE4tM,IAAI5tM,EAAEj0B,CAAC,EAAEmlK,EAAE5hK,EAAK,KAAK,MAAMlD,EAAE,CAAC,EAAMktH,EAAE,IAAI70F,EAAI14B,EAAE,CAAC,EAAEutH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE1tH,EAAE,EAAE,EAAEslK,EAAE,OAAOnlK,CAAC,CACvQ,SAAS8hO,IAAIthO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA2C,IAAzCjlK,EAAEg1E,GAAG50E,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE4kK,EAAE,KAAKC,EAAE,KAASxlK,EAAE,IAAI6iH,GAAIliH,CAAC,EAAEX,EAAE,GAAGA,EAAE,GAAIG,EAAE0jD,EAAGwrH,GAAIrvK,CAAC,EAAE,EAAE,EAAEQ,GAAG8kK,EAAEzhH,EAAG0lE,EAAIppH,GAAG0qH,IAAMkmF,KAAM,EAAE,EAAGzrC,EAAOA,EAAE,EAAP,MAAUl7G,GAAGsjE,EAAE7pE,EAAG0lE,EAAIppH,EAAE6wM,EAAG,EAAE,EAAE,EAAGtjF,EAAOA,EAAE,EAAP,OAAa63C,GAAG/kK,GAAGglK,GAAGp7G,KAAGkyK,IAAI/7N,EAAE6zB,CAAC,EAAEmxI,EAAE/kK,EAAEglK,EAAEp7G,GAAE7pD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEJ,EAAEm8N,IAAI/7N,EAAE6zB,CAAC,CAAC,CACvQ,SAAS8tM,IAAIvhO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJlxI,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAMpqD,EAAE,IAAIwxG,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAAIG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAKW,GAAGR,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,IAAIs/F,EAAK,EAACmE,MAAM8pB,EAAEmO,GAAI17H,EAAE,CAAC,EAAE,EAAEmlK,EAAEzpC,GAAI17H,EAAE,CAAC,EAAE,EAAEi0B,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE1wB,EAAK,KAAK,IAAI4hK,EAAE53C,CAAC,CAAC,GAAI,OAAOt5F,CAAC,CACvQ,SAAS+tM,IAAIxhO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAEusH,GAAI/rH,EAAE,kBAAkB,CAAC,EAAEA,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,GAAK,EAACo0C,GAAK,EAACjqF,EAAEvG,EAAGulE,GAAIh1F,GAAG4lD,GAAG,EAAGC,KAAM,EAAE,EAAEt5E,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEk+L,GAAIh7I,EAAGulE,GAAIh1F,GAAGnF,GAAK,EAAC47K,GAAK,EAAC,GAAG,CAAC,EAAE1qM,EAAE66E,EAAGouC,GAAIh1F,GAAGzD,GAAK,EAACwgK,GAAG,CAAE,EAAEn7J,GAAIr1B,GAAG8wB,GAAItxB,CAAC,EAAEA,EAAG,EAACH,EAAE0qI,GAAItgF,CAAC,EAAEg4K,IAAIzhO,EAAEyzB,EAAEp0B,EAAEQ,CAAC,EAAEA,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,KAAMo0C,IAAK,CACvQ,SAASguF,GAAI1hO,EAAEyzB,EAAE5zB,EAAE,CAAC,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIu1D,GAAI3hC,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,CAAC,EAAE,IAAK,GAAE,OAAO,IAAI2hC,GAAIryD,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO,IAAI2hC,GAAI3hC,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEyzB,EAAE,CAAC,CAAC,EAAE,IAAK,GAAE,OAAO,IAAI2hC,GAAIryD,EAAK,KAAK,IAAI0wB,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAEyzB,EAAE,CAAC,CAAE,CAAC,OAAO,IAAI2hC,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,CAAC,CACxQ,SAASkuM,IAAI3hO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAsC,IAApCD,EAAEr7G,GAAGq1C,EAAG,EAAGmE,KAAMnE,EAAK,EAACsE,IAAK5jG,EAAE,GAAUI,EAAE6zB,EAAE5zB,CAAC,EAAE+kK,EAAE,EAAEC,EAAEjlK,EAAE,OAAOglK,EAAEC,EAAE,EAAED,EAAGD,EAAE/kK,EAAEglK,CAAC,EAAK,CAAAvhF,GAAIngC,EAAG0lE,EAAI+7C,GAAGr3I,KAAM6oI,KAAM,EAAE,CAAC,IAAYppC,EAAE43C,EAAE,EAAEI,EAAE,CAACyb,GAAI7b,EAAEG,CAAC,EAAE,GAAI,GAAE,CAAC,CAAC/3C,EAAKg4C,IAAG1lK,EAAE84M,GAAIprF,CAAC,EAAE/sH,EAAE,EAAE,IAAIq4M,GAAIh5M,EAAEoqD,EAAE,EAAEpqD,EAAE,OAAO,CAAC,GAAEG,EAAEA,EAAEoiO,IAAI5hO,EAAE2kK,EAAEG,EAAEC,CAAC,GAAE,OAAOvlK,CAAC,CACxQ,SAASk2M,GAAI11M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA2F,IAAzFh2B,EAAEmhD,GAAG,GAAG,CAAC50E,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE4oC,EAAInV,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAAKypD,EAAE,IAAI0S,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAE7gB,EAAInV,GAAG,CAAC5zB,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAIykC,GAAGxmH,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAI,OAAO21C,GAAG/hB,CAAC,EAAE,IAAIkqC,GAAGlqC,CAAC,CAAC,CACxQ,SAASgoL,GAAIz7M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA2F,IAAzFh2B,EAAEmhD,GAAG,GAAG,CAAC50E,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE4oC,EAAInV,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAAKypD,EAAE,IAAI0S,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAE7gB,EAAInV,GAAG,CAAC5zB,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAIykC,GAAGxmH,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAI,OAAO21C,GAAG/hB,CAAC,EAAE,IAAIkqC,GAAGlqC,CAAC,CAAC,CACxQ,SAASouM,IAAI7hO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,GAAGQ,GAAG,KAAM,OAAO,KAAqC,GAA3BypD,EAAE8kI,GAAIvuL,EAAE,EAAI,EAAER,EAAE43G,GAAI,OAAU/0B,GAAI54B,EAAE,OAAOA,EAAE,OAAOjqD,EAAEA,CAAC,EAAE43G,EAAG,GAAc,GAAXv3G,EAAE4pD,EAAE,OAAU5pD,GAAG,EAAE,CAAqC,GAApC4zB,GAAGuuF,GAAI,EAAEv4D,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAMh2B,GAAG,GAAI,OAAO25H,IAAS,GAAG35H,GAAG,GAAI,OAAO45H,GAAI,SAASxtJ,GAAG,EAAG,OAAOutJ,IAAK,OAAO85B,GAAIz9H,CAAC,CAAE,CACxQ,SAAS+iB,IAAIxsE,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,IAARi0B,EAAE,EAAE5zB,EAAE,EAAML,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAqJ,GAA5IiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEi0B,EAAEw5E,GAAIlC,GAAIt3E,EAAEquH,IAAIn+B,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIrD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIvvC,GAAG,CAAC,CAAC,CAAC,EAAEra,EAAEotG,GAAIlC,GAAIlrG,EAAEiiJ,IAAIn+B,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIrD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAItvC,GAAG,CAAC,CAAC,CAAC,EAAKsZ,EAAE,GAAG5zB,EAAE,EAAG,MAAO,GAAG,OAAG4zB,EAAE5zB,GAAG,EAAU,EAAS,CAAC,CACzQ,SAASiiO,IAAI9hO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAkJ,IAAhJ/4C,GAAI/rH,EAAE,YAAY,CAAC,EAAEozC,GAAImnC,GAAGquC,GAAIh1F,GAAG3I,GAAK,EAACi3M,IAAG,CAAE,CAAC,GAAGpuG,IAAKlqE,EAAE,IAAIzvB,IAAKowB,GAAK,EAAC,IAAI3X,GAAIhf,CAAC,EAAC,EAAGg2B,IAAIk7G,EAAEoN,IAAIt+I,CAAC,EAAEo6K,IAAIlpC,CAAC,EAAE8P,IAAIz0K,EAAEkjD,EAAG0lE,EAAI+7C,EAAEq9D,GAAG,EAAE,GAAG,CAAC,EAAEj1G,EAAEk1G,IAAIjiO,EAAE,EAAE2kK,CAAC,EAAMtlK,EAAE0tH,EAAE,GAAE,EAAG1tH,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAE6iO,IAAIliO,EAAE,EAAER,EAAEynK,GAAIpnK,EAAE,EAAEktH,EAAE,GAAI,CAAA,CAAC,EAAE43C,EAAEw9D,IAAIp1G,CAAC,EAAEq1G,IAAIz9D,CAAC,EAAE94C,GAAIhsH,CAAC,CAAC,CAC1Q,SAASwiO,IAAIriO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6C,GAA3CnB,GAAIn4F,EAAE,2BAA2B,CAAC,EAAE6uM,IAAItiO,CAAC,EAAKizC,GAAImnC,GAAGwuC,EAAI5oH,GAAGstB,GAAK,EAACi1M,IAAK,CAAA,CAAC,EAAE,CAAC,IAAI/iO,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA6B,IAApBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEK,EAAE,EAAMktH,EAAE,IAAI70F,EAAIuxB,EAAE,CAAC,EAAEsjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE1tH,EAAE,EAAEQ,IAAK2iO,IAAIxiO,CAAC,EAAEyiO,IAAIziO,EAAE,EAAI,EAAEyiO,IAAIziO,EAAE,EAAK,CAAC,CAAC6rH,GAAIp4F,CAAC,CAAC,CAC1Q,SAASivM,IAAI1iO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAQ,IAAN+kK,EAAE3kK,EAAE,EAAM+sH,GAAIltH,EAAE,EAAoBA,EAAE,GAAnBwqE,GAAK,EAACA,GAAG,EAAGkhC,KAAU,GAAE,EAAG,KAAKwhB,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAEtjE,EAAE,CAACnL,GAAIqlE,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI63G,EAAE,EAAE,CAAC,EAAE,IAAI7rI,GAAI,IAAIo8B,IAAIzhC,EAAEp0B,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIynD,KAAMC,KAAS0C,IAAG7pD,EAAEP,EAAE,KAAQksE,EAAG3rE,EAAE,CAAC,IAAGJ,EAAEuzL,GAAInzL,CAAC,EAAEJ,GAAG,OAAOI,EAAEJ,IAAGi0B,EAAE,GAAGyvB,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEO,CAAC,EAAG,CAC1Q,SAAS8wM,GAAI1wM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAIt5F,EAAmB,CAA+C,IAA9Cp0B,EAAEksE,EAAGvrE,EAAE,GAAG,EAAE,GAAGurE,EAAGvrE,EAAE,GAAG,EAAE,EAAE+sH,EAAE,CAAC1tH,GAAGksE,EAAGvrE,EAAE,GAAG,GAAG,EAAMypD,EAAE,IAAI0S,IAAK,CAAC1oC,EAAE,IAAIA,EAAE,EAAE,IAAIg5E,GAAIh5E,EAAE4qF,GAAG5qF,CAAC,GAAGA,EAAE,EAAC,EAAGg2B,EAAE,GAAGA,EAAE,EAAE,GAAE,GAA8B,GAAzB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEjqD,EAAE00L,GAAIr0L,CAAC,EAAKR,EAAEksE,EAAG/rE,EAAE,EAAE,EAAEutH,EAAExhD,EAAG/rE,EAAE,GAAG,EAAIA,EAAG,OAAOA,EAAG,OAAOH,GAAGo9G,GAAG,EAAGmyE,KAAMnyE,GAAG,EAAGikE,GAAI,KAAlO,QAAO,IAA4N,CAC1Q,SAASiiD,IAAI3iO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA2C,IAAzC/4C,GAAIn4F,EAAE,4BAA4B,CAAC,EAAEs5F,EAAE,EAAM1tH,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAqB,IAApBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEslK,EAAE,EAAMl7G,EAAE,IAAIvxB,EAAI14B,EAAE,CAAC,EAAEiqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAK5pD,EAAE,IAAI8qF,GAAK,EAAC0hC,MAAMvpC,EAAIjjF,GAAGytB,GAAG,EAAGs1M,IAAKr1F,EAAIxgB,CAAC,CAAC,EAAEjqC,EAAIjjF,EAAEgjO,GAAIt1F,EAAIo3B,CAAC,CAAC,EAAE,EAAEA,GAAG,EAAE53C,CAAC,CAAClB,GAAIp4F,CAAC,CAAC,CAC3Q,SAASqvM,IAAI9iO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAiD,IAA/CjlK,EAAE,IAAIw1D,GAAIv1D,EAAE4pD,CAAC,EAAE42B,GAAIzgF,EAAEsjD,EAAG0lE,EAAIn1F,GAAG4vJ,KAAMutC,KAAM,CAAC,CAAC,EAAM/rD,EAAEvL,GAAI7lI,EAAE,EAAE,CAAC,EAAEoxI,EAAE,GAAGA,EAAE,EAAE,GAAID,EAAE1hH,EAAG0tF,GAAIi0B,CAAC,EAAE,EAAE,EAAEzkF,GAAIwkF,EAAE,EAAEhlK,CAAC,EAAEimG,GAAI7lG,EAAE,EAAE4kK,CAAC,EAAE,IAAID,EAAErL,GAAI7lI,EAAE,EAAE,CAAC,EAAEkxI,EAAE,GAAGA,EAAE,EAAE,GAAG,CAAkB,IAAjB53C,EAAE7pE,EAAG0tF,GAAI+zB,CAAC,EAAE,GAAG,EAAMtlK,EAAEi6J,GAAIvsC,EAAE,EAAE,CAAC,EAAE1tH,EAAE,GAAGA,EAAE,EAAE,GAAIG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,CAAC,EAAE+gF,GAAI5gF,EAAEI,CAAC,EAAEimG,GAAI7lG,EAAE,EAAE+sH,CAAC,CAAC,CAAC,CAC3Q,SAAS+H,GAAI90H,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA8B,GAA5BA,EAAEs0K,IAAKozB,GAAG,EAAGC,IAAKhnM,EAAE,GAAE,EAAGyzB,CAAC,EAAKp0B,EAAE,CAAO,GAANmsD,GAAK,EAAI,CAACtI,EAAG7jD,EAAE,EAAE,EAAE,OAAMA,EAAEolI,GAAIwqB,GAAI+3C,GAAI3nM,CAAC,CAAC,EAAK,CAACA,GAAG,MAAMqmC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,GAAE,EAAGyuJ,EAAG,CAAC,EAAG1iL,GAAGiqD,EAAEzpD,EAAE,GAAGX,CAAC,EAAE6jD,EAAGuG,GAAG,EAAEzpD,EAAE,GAAGypD,EAAE,GAAK,EAAI,EAAEw1F,GAAIj/I,EAAEX,EAAE,EAAI,EAAE,GAAG,GAAG6jD,EAAG1jD,EAAE,GAAG,EAAE,GAAGi0B,EAAE5zB,CAAC,CAAC,KAAM,OAAM6lC,EAAI,IAAImN,GAAI6iH,GAAIjiI,EAAE,GAAI,EAACyuJ,EAAG,CAAC,CAAE,CAC3Q,SAASwR,IAAI1zL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4J,IAA1JltH,EAAE,IAAIglC,EAAIrlC,EAAE+xJ,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,CAAC,EAAE,IAAI4b,GAAG,EAAEvc,EAAEkyJ,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,CAAC,EAAE,IAAI6b,GAAG,EAAEkxG,EAAE+gC,IAAIjM,IAAI/9B,GAAIi/G,IAAG7pH,EAAG9hE,EAAG4rL,IAAG,CAAC,EAAE7+J,GAAI,IAAI,EAAE,CAAC3kE,EAAEH,CAAC,CAAC,CAAC,EAAE,IAAIyc,GAAG,CAAC,CAAC,EAAM2tC,EAAE,EAAEA,EAAEsjE,EAAE,OAAOtjE,IAAKsjE,EAAEtjE,CAAC,EAAEsjE,EAAEtjE,EAAE,CAAC,GAAG,EAAEh2B,GAAGmV,EAAI/oC,EAAE,IAAImgG,GAAI+sB,EAAEtjE,EAAE,CAAC,EAAEh2B,EAAEs5F,EAAEtjE,CAAC,EAAEh2B,CAAC,CAAC,EAAE,OAAO5zB,CAAC,CAC5Q,SAASojO,IAAIjjO,EAAEyzB,EAAE5zB,EAAE,CAAC+rH,GAAI/rH,EAAE,eAAe,CAAC,EAAEA,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,KAAMo0C,GAAK,EAAC1zI,EAAE,EAAEkjD,EAAGulE,GAAIh1F,GAAG4lD,GAAK,EAACC,GAAK,EAAC,EAAE,EAAEt5E,EAAE,EAAEkzC,EAAImnC,EAAGouC,GAAIh1F,GAAGnF,GAAK,EAAC07K,GAAK,CAAA,CAAC,EAAEhqM,EAAE,EAAEk+L,GAAIh7I,EAAGulE,GAAIh1F,EAAEy2K,EAAG,EAAE,GAAG,CAAC,EAAElqM,EAAE,EAAEqqL,IAAInnI,EAAGulE,GAAIh1F,EAAE22K,GAAG,EAAE,GAAG,CAAC,EAAEpqM,EAAE,EAAE00M,IAAIxxJ,EAAGulE,GAAIh1F,EAAEo2K,GAAG,EAAE,GAAG,CAAC,EAAE6H,IAAI1xM,CAAC,EAAEH,EAAE,GAAK4zB,GAAG2yG,GAAIvmI,EAAEsqI,GAAI12G,CAAC,GAAG6rE,KAAMo0C,IAAK,CAC5Q,SAASi8E,IAAI3vN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAEC,EAAEC,EAAEC,EAAE,GAAGjlK,EAA6B,IAA1BR,EAAEQ,EAAE,EAAE,OAAO4pD,EAAE,IAAIqnD,GAAIzxG,CAAC,EAAMslK,GAAGl7G,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,GAAGqC,GAAG,EAAGC,IAAK,IAAIijB,GAAIvlB,CAAC,EAAEk7G,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEnlK,EAAEgtI,GAAI3sI,EAAEktH,EAAE,CAAC,EAAIvtH,IAAWolK,EAAE3wB,IAAIj0I,GAAG6kK,GAAG3oH,KAAM4oH,EAAE,IAAIh4H,GAAIg4H,GAAKrxI,GAAGyvM,GAAIr+D,EAAEpxI,CAAC,EAAEoxI,GAAGrlK,CAAC,EAAEmgK,GAAIiF,EAAEl4B,GAAIltI,EAAEozL,EAAG,CAAC,EAAEipB,GAAIr8M,EAAEolK,CAAC,EAAEkpD,GAAItuN,EAAEolK,CAAC,EAAE0O,GAAItzK,EAAER,EAAEolK,CAAC,EAAI,CAC5Q,SAASlkF,GAAI1gF,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG,CAAC/sH,EAAE,EAAE,CAA+B,GAA9B+sH,EAAE,IAAIlqG,IAAI4Q,EAAE0yI,GAAI9mK,EAAEo0B,EAAE,EAAE,GAAGzzB,EAAEyzB,CAAC,EAAKp0B,GAAG,KAAK,CAAC,IAAIoqD,EAAE,IAAI0S,GAAI4vD,GAAI/rH,CAAC,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEjqD,EAAEkhF,GAAI7gF,CAAC,EAAE2sG,GAAIugB,EAAEvtH,CAAC,EAAE0mE,GAAI6mD,EAAEltH,CAAC,EAAE4zB,EAAE,EAAE,GAAGzzB,CAAC,GAAG,IAAI,CAACo7K,GAAIruD,CAAC,EAAE/sH,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,GAAKk7D,KAAMC,IAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEwQ,EAAE,GAAGA,EAAE,CAAC,EAAEf,GAAIhsH,CAAC,EAAE,GAAG,GAAG,CAAC,OAAOA,EAAE,CAAC,CAC5Q,SAASmjO,IAAInjO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,GAAGQ,GAAG,KAAM,OAAO,KAAqC,GAA3BypD,EAAE8kI,GAAIvuL,EAAE,EAAI,EAAER,EAAE43G,GAAI,OAAU/0B,GAAI54B,EAAE,OAAOA,EAAE,OAAOjqD,EAAEA,CAAC,EAAE43G,EAAG,GAAc,GAAXv3G,EAAE4pD,EAAE,OAAU5pD,GAAG,EAAE,CAAqC,GAApC4zB,GAAGuuF,GAAI,EAAEv4D,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAMh2B,GAAG,GAAI,OAAO65H,IAAS,GAAG75H,GAAG,GAAI,OAAO85H,GAAI,SAAS1tJ,GAAG,EAAG,OAAOytJ,IAAK,OAAO,IAAI5jH,GAAI+f,CAAC,CAAE,CAC5Q,SAAS25K,IAAGpjO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAA+F,OAA7F5pD,EAAEG,EAAE,EAAMH,EAAEA,EAAE,IAAiB4pD,EAAEzpD,EAAE,EAAMypD,EAAEA,EAAE,KAAiBh2B,EAAEzzB,EAAE,EAAMyzB,EAAEA,EAAE,IAAoBA,GAAG,GAAGg2B,GAAG,GAAG5pD,GAAG,EAAU,GAAM4zB,GAAG,GAAGg2B,GAAG,GAAG5pD,GAAG,EAAUo9J,GAAIp9J,CAAC,EAAK4zB,GAAG,GAAGg2B,GAAG,GAAG5pD,GAAG,EAAUo9J,GAAIxzG,CAAC,EAAE,GAAMh2B,GAAG,GAAGg2B,GAAG,GAAG5pD,GAAG,EAAUo9J,GAAIxpI,CAAC,EAAE,GAAU,EAAE,CAC7Q,SAAS4vM,IAAIrjO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAwD,IAAtDnB,GAAIn4F,EAAE,eAAe,CAAC,EAAE5zB,EAAEozC,GAAImnC,GAAGwuC,EAAI5oH,GAAGstB,KAAMg2M,GAAK,CAAA,CAAC,EAAM9jO,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0C,IAAjCiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEutH,EAAE,IAAI0e,GAAIhiF,EAAE,EAAE,CAAC,EAAQsjE,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAE1tH,GAAG6yE,GAAI66C,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAE7pE,EAAG6pE,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAM1tH,EAAE,IAAIsrF,KAAM2+D,MAAMi6E,GAAIlkO,EAAEQ,CAAC,EAAEylF,GAAIynC,CAAC,GAAIlB,GAAIp4F,CAAC,CAAC,CAC7Q,SAAS+vM,IAAIxjO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAkJ,GAAhJ+qI,GAAIvqI,EAAE,CAAC,EAAEm2G,GAAIn2G,EAAE,GAAGg5F,GAAG,EAAG8pC,KAAMn6E,GAAK,EAACC,GAAK,EAACutD,GAAIn2G,EAAE,EAAE+iI,GAAItvG,EAAE,CAAC,EAAE0iF,GAAIn2G,EAAE,EAAEgjI,GAAIvvG,EAAE,CAAC,EAAEzzB,EAAE,EAAE44M,GAAI54M,EAAE,EAAEyzB,CAAC,EAAEm4F,GAAI/rH,EAAE,iCAAiCG,EAAE,EAAE,EAAE,MAAM,EAAKyzB,EAAE,EAAE,EAAE,OAAO,EAAG,IAAIj0B,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEiqD,EAAE,GAAGh2B,EAAEwzI,GAAIpnK,EAAE,CAAC,CAAC,EAAGgsH,GAAIhsH,CAAC,CAAC,CAC7Q,SAAS4jO,GAAGzjO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAmB,IAAjBvtH,EAAEi0B,EAAE,EAAEzzB,EAAE,EAAEX,EAAE,KAASoqD,EAAEzpD,EAAE,EAAER,CAAC,GAAOiqD,EAAEA,EAAE,EAAE,CAAC,GAAGA,GAAGh2B,EAAE,CAAEp0B,EAAgBA,EAAE,EAAEo0B,EAAE,EAAnBzzB,EAAE,EAAER,CAAC,EAAEi0B,EAAE,EAAa,KAAK,CAACp0B,EAAEoqD,CAAC,CAAkB,IAAjBsjE,EAAEt5F,EAAE,EAAEzzB,EAAE,EAAEX,EAAE,KAASQ,EAAEG,EAAE,EAAE+sH,CAAC,GAAOltH,EAAEA,EAAE,EAAE,CAAC,GAAGA,GAAG4zB,EAAE,CAAEp0B,EAAgBA,EAAE,EAAEo0B,EAAE,EAAnBzzB,EAAE,EAAE+sH,CAAC,EAAEt5F,EAAE,EAAa,KAAK,CAACp0B,EAAEQ,CAAC,CAAE4zB,EAAE,EAAaA,EAAE,EAAE,EAAEA,EAAE,EAAlBzzB,EAAE,EAAEyzB,EAAE,EAAgBA,EAAE,EAAaA,EAAE,EAAE,EAAEA,EAAE,EAAlBzzB,EAAE,EAAEyzB,EAAE,EAAe,EAAEzzB,EAAE,EAAE,EAAEA,EAAE,CAAC,CAC9Q,SAAS0jO,IAAI1jO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAsC,IAApChlK,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE+sH,EAAE7vC,GAAI19E,EAAEu0J,GAAI4Q,EAAEznF,GAAI79E,EAAE00J,GAAQ6Q,EAAE,EAAEA,EAAE/kK,EAAE,EAAE+kK,EAAG,IAAIC,EAAE,EAAEA,EAAEpxI,EAAE,EAAEoxI,EAAMyN,GAAItyK,EAAE4kK,EAAEC,CAAC,IAAG93C,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAE63C,CAAC,EAAEplK,EAAEuD,EAAK,KAAK,IAAIvD,EAAEolK,CAAC,EAAED,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAEE,CAAC,EAAExlK,EAAE0D,EAAK,KAAK,IAAI1D,EAAEwlK,CAAC,GAAI,OAAAjlK,EAAEJ,EAAEutH,EAAE,EAAEtjE,EAAEpqD,EAAEslK,EAAE,EAAS,IAAIv/C,IAAImoB,EAAIxgB,CAAC,EAAEwgB,EAAIo3B,CAAC,EAAEp3B,EAAI3tI,CAAC,EAAE2tI,EAAI9jF,CAAC,CAAC,CAAC,CAC9Q,SAASk6K,GAAI3jO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAiE,IAA/DA,EAAE,IAAIosI,GAAIzrI,EAAE,CAAC,EAAEH,GAAGqyE,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAE6jD,EAAG7jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAASA,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIoqD,GAAGyoB,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAE6jD,EAAG7jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAGG,EAAE,IAAIwkG,GAAIv6C,EAAE,EAAE5pD,EAAE,EAAE4zB,CAAC,EAAEy+C,GAAI7yE,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEg/E,GAAIh/E,EAAEG,CAAC,EAAE0yE,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAEG,EAAE,EAAE,GAAMK,EAAE4pD,CAAE,CAC9Q,SAASm6K,IAAI5jO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA8B,IAA5BvtH,EAAE0jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG25G,KAAM,EAAE,EAAM92G,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAMtjE,EAAE,IAAIvxB,EAAI74B,EAAE,CAAC,EAAEoqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS,OAAAh2B,EAAEyvB,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEqgB,GAAIr2C,EAAEj0B,CAAC,EAASH,EAAE,IAAIQ,EAAE,IAAIq4B,EAAI74B,EAAE,CAAC,EAAEQ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS,OAAA4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEgqE,GAAIp2C,EAAEj0B,CAAC,EAASH,CAAE,CAAC,OAAO,IAAI,CAC9Q,SAASykO,IAAG9jO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEg8B,GAAI5lF,EAAE,EAAE,QAAO,CAAE,EAAK0sD,GAAI9C,EAAE,CAAC,EAAE,GAAGjqD,EAAEywK,GAAIhjE,GAAIyiF,GAAI9hC,GAAInkG,CAAC,EAAEwmH,EAAG,CAAC,EAAEzwK,GAAGywK,KAAMzwK,EAAE,IAAQA,EAAEytG,GAAIyiF,GAAIjmI,EAAEwmH,EAAG,CAAC,EAAKx8I,GAAG,GAAGj0B,EAAEuD,EAAK,KAAK,KAAKvD,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE67G,GAAIr7G,EAAE,GAAGR,EAAEulG,EAAG,GAAUtxE,GAAG,GAAGj0B,EAAEuD,EAAK,KAAK,KAAKvD,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE4yJ,GAAGpyJ,EAAER,EAAE,CAAC,IAAO4yJ,GAAGpyJ,EAAER,EAAE,CAAC,EAAEi0B,EAAE,GAAG2+H,GAAGpyJ,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAC/Q,SAASswM,IAAI/jO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAGu6D,EAAG6uD,EAAI5oH,GAAGstB,GAAG,EAAG02M,GAAG,CAAE,IAAIjqK,GAAIgjC,GAAK,EAACqmC,GAAK,EAAS,CAACpjI,EAAE,GAAG+5D,EAAG6uD,EAAI5oH,EAAE+iF,EAAG,CAAC,IAAIhpB,GAAIq2B,GAAK,EAACivC,GAAK,GAAC51E,EAAEvG,EAAG0lE,EAAI5oH,EAAEikO,EAAG,EAAE,GAAG,EAAEzkO,EAAEyzC,GAAImnC,GAAGwuC,EAAI5oH,EAAEkkO,EAAG,CAAC,CAAC,GAAGnqK,EAAG6uD,EAAI5oH,EAAE2xN,EAAG,CAAC,IAAI53J,GAAIqzB,KAAMuwC,GAAK,EAAClqG,EAAEyvB,EAAG0lE,EAAI5oH,EAAEmkO,GAAG,EAAE,EAAE,EAAE,EAAEtkO,EAAEG,EAAE,EAAE,EAAE,OAAc,CAACR,GAAGiqD,IAAI2mC,GAAK,EAACivC,MAAO5rG,GAAG,GAAGA,EAAE5zB,GAAE,CAC/Q,SAASukO,IAAIpkO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAM,IAAJA,EAAE,EAAOA,EAAEG,EAAE,EAAE,QAAe,EAAAkoG,KAAKrrC,GAAIh9D,EAAEG,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAG,EAAC,GAAhDA,IAAK,CAAqD,GAAGA,EAAE,GAAGA,EAAEG,EAAE,EAAE,OAAO,EAAG,OAAOH,EAAM,IAAJ4zB,EAAE,EAAOA,EAAEzzB,EAAE,EAAE,QAAe,EAAAkoG,KAAKrrC,GAAIppC,EAAEzzB,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEyzB,CAAC,EAAE,GAAG,IAAI,GAAhDA,IAAK,CAAqD,OAAGA,EAAE,GAAG5zB,EAAEG,EAAE,EAAE,OAAO,EAAUyzB,EAASzzB,EAAE,EAAE,OAAO,EAAE,CAAC,CAC/Q,SAASqkO,IAAIrkO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,GAAKyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAI3O,IAAI31N,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAEssM,GAAInsM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEgyI,GAAIhoK,EAAEzzB,EAAE,EAAEypD,CAAC,GAAGA,EAAEgzB,GAAIz8E,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAI,CAAA,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC/Q,SAASyvM,GAAIljO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,GAAKyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAIC,IAAIvkO,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAE2sM,GAAIxsM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEgyI,GAAIhoK,EAAEzzB,EAAE,EAAEypD,CAAC,GAAGA,EAAEizB,GAAI18E,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAI,CAAA,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAC/Q,SAASk6C,GAAI3tE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,GAAKyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAIE,IAAIxkO,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAEsuM,GAAInuM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEgyI,GAAIhoK,EAAEzzB,EAAE,GAAGypD,CAAC,GAAGA,EAAE8yB,GAAIv8E,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAI,CAAA,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CAChR,SAASgxM,GAAIhxM,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiB,GAAfvtH,EAAEo3I,GAAInjH,CAAC,EAAEs5F,EAAEt5F,EAAE,EAAKs5F,GAAG,MAAQvtH,EAAG,OAAOi0B,EAAE,GAAI,EAAC,KAAKj0B,EAAE,GAAI,EAAM,GAAG+rE,EAAG/rE,EAAE,GAAG,EAAE,CAAU,GAATiqD,EAAEjqD,EAAE,GAAI,EAAIiqD,IAAGpqD,EAAEoqD,EAAE,GAAI,EAAIpqD,GAAGo0B,EAAE,GAAE,CAAa,GAAZ5zB,EAAEqjD,EAAG1jD,EAAE,GAAG,EAAKK,EAAE,KAAM,GAAG,CAAC4zB,EAAE,EAAEp0B,EAAE,GAAGQ,EAAEktH,CAAC,CAAC,OAAO/sH,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAGyzB,EAAE,EAAE,SAAU,OAAMiS,EAAI1lC,CAAC,CAAC,CAAEyzB,EAAE,EAAEp0B,CAAC,CAAE,OAAOo0B,EAAE,CAAC,CAAC,OAAO,IAAI,CAC/Q,SAAS66L,IAAItuN,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIoR,EAAI+D,EAAInV,EAAE,IAAI+6B,GAAI,IAAI4G,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE4oC,EAAInV,EAAE,IAAI+6B,GAAI,IAAI4G,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE4oC,EAAInV,EAAE,IAAI+6B,GAAI,IAAI4G,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE4oC,EAAInV,EAAE,IAAI+6B,GAAI,IAAI4G,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAASyzB,CAAC,CAChR,SAASq1L,IAAI9oN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAA+B,GAA7BA,EAAEiiF,GAAIv7K,EAAE5zB,CAAC,EAAE4pD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEh2B,EAAKzzB,EAAE,EAAE+sH,EAAE,CAAC,GAAG,IAAI/sH,EAAE,EAAE+sH,EAAE,CAAC,GAAG,GAAG/sH,EAAE,EAAEyzB,EAAE,CAAC,EAAG,OAAOg2B,EAAc,IAAZzpD,EAAE,EAAE+sH,EAAE,CAAC,EAAE,GAAO1tH,EAAE,IAAIwxG,GAAGphC,GAAGk3G,GAAI55D,CAAC,EAAE,EAAE,KAAK,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAAmB,GAAfG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAK,IAAE,CAACsnG,GAAInnG,CAAC,GAAG,EAAE,CAACmnG,GAAInnG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,KAAKA,GAAGi0B,GAAY,OAAOq1L,IAAI9oN,EAAER,EAAEutH,EAAEtjE,CAAC,EAAE,OAAOA,CAAC,CAChR,SAASi7K,IAAI1kO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAEo0B,EAAE,EAAE,KAAK,KAAKp0B,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAEoqD,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAER,CAAC,EAAE,GAAG,EAAE,CAACiqD,IAAI48C,GAAID,GAAI5mG,CAAC,CAAC,GAAG6mG,GAAIC,GAAI9mG,CAAC,CAAC,EAAEmlO,IAAI3kO,EAAER,EAAEK,CAAC,EAAEumG,GAAI5mG,CAAC,GAAG6mG,GAAIC,GAAI9mG,CAAC,CAAC,EAAE0zG,GAAIlzG,EAAE,EAAER,CAAC,GAAG,MAAM0zG,GAAIlzG,EAAE,EAAEsmG,GAAI9mG,CAAC,CAAC,GAAG,MAAMolO,IAAI5kO,EAAER,EAAEK,EAAE,EAAK,EAAEqzG,GAAIlzG,EAAE,EAAER,CAAC,GAAG,MAAM0zG,GAAIlzG,EAAE,EAAEomG,GAAI5mG,CAAC,CAAC,GAAG,MAAMolO,IAAI5kO,EAAER,EAAEK,EAAE,EAAI,EAAG,CACjR,SAASglO,IAAI7kO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAIJ,EAAEQ,EAAE,GAAE,EAAGR,EAAE,GAAE,GAA2F,IAAtFiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEmlK,EAAE,IAAI6yC,GAAIr9J,GAAIwqH,EAAEl7G,CAAC,EAAE/iB,GAAIi+H,GAAG7lE,EAAG,EAAGsE,GAAG,EAAGtgB,EAAI6hF,GAAGz6C,EAAK,EAAC46G,KAAM10J,KAAM,GAAM,EAAK28C,EAAEt5F,EAAE,GAAI,EAACs5F,EAAE,GAAI,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,KAAK,EAAE,EAAEntH,EAAE,IAAI43M,GAAIr9J,GAAIv6C,EAAEP,CAAC,EAAEqnC,GAAI9mC,EAAEqjG,EAAG,EAAEngB,EAAIljF,EAAEklO,GAAI,EAAI,EAAEjlO,EAAE,IAAI0rH,GAAIzoC,EAAIjjF,EAAEilO,GAAI,EAAI,EAAEj7J,GAAIhqE,EAAE8kK,CAAC,EAAE76F,GAAIjqE,EAAED,CAAC,CAAG,CACjR,SAASmlO,IAAI/kO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAEnlK,EAAEkyL,IAAI1xL,EAAEyzB,EAAE5zB,CAAC,EAAER,EAAEqyL,IAAI1xL,EAAEH,EAAE4zB,CAAC,EAAEs5F,EAAE7pE,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAEkxI,EAAEzhH,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAKL,EAAEH,EAAG,IAAIk6H,IAAK/jC,GAAG,EAAGm6B,IAAK5C,EAAE43C,EAAEtlK,EAAEG,CAAC,EAAUH,EAAEG,EAAG,IAAI+5H,IAAK/jC,KAAMm6B,IAAKg1C,EAAE53C,EAAEvtH,EAAEH,CAAC,GAAUG,GAAG,GAAG,EAAE,CAACi0B,EAAE,GAAG,CAAC5zB,EAAE,IAAI4pD,EAAEh2B,EAAE,EAAE,CAAC,EAAE5zB,EAAE,EAAE,CAAC,KAAG,IAAI05H,IAAK/jC,GAAG,EAAGm6B,IAAK5C,EAAE43C,EAAE,CAAC,EAAE,IAAIprC,GAAI5J,GAAIg1C,EAAE53C,EAAE,CAAC,EAAE,CACjR,SAAS42E,IAAI3jM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAM,IAAJJ,EAAE,EAAMutH,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkD,IAAzC1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEvtH,GAAGH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEW,EAAE,EAAMypD,EAAE,IAAIonD,GAAGphC,GAAGm3G,GAAIvnL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIiE,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK5pD,EAAE,EAAE,EAAE,IAAI8qF,KAAM4+D,MAAM3pJ,EAAEC,EAAE,EAAE,EAAE8kK,EAAEzhH,EAAG0lE,EAAIhpH,GAAGsqH,EAAK,EAAC+jC,GAAK,EAAC,EAAE,EAAEzuJ,GAAGmlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAI,OAAOnlK,CAAC,CACjR,SAASg6M,IAAIx5M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA4D,IAA1DvlK,EAAE,IAAIwlC,EAAI+/H,EAAE,IAAIh4H,GAAImgF,EAAE,IAAIngF,GAAIo4L,IAAIhlO,EAAE4kK,EAAE73C,EAAEt5F,CAAC,EAAEwxM,IAAIjlO,EAAE4kK,EAAE73C,EAAEt5F,EAAE5zB,CAAC,EAAMD,EAAE,IAAIs4B,EAAIl4B,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAMJ,EAAE,IAAI04B,EAAIysI,EAAE,CAAC,EAAEnlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,GAAG,CAACi0B,GAAGg2B,EAAE,IAAI+rC,GAAG,EAAGo6B,MAAO+0C,EAAE,EAAEl7G,EAAE,EAAE,IAAIpqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEoqD,GAAS,OAAOpqD,CAAC,CACjR,SAASu5F,IAAK,CAACA,GAAIl0F,EAAIi4I,GAAI,IAAIpoF,GAAI,uCAAuC,CAAC,EAAEqoF,GAAI,IAAIroF,GAAI,uCAAuC,CAAC,EAAEsoF,GAAI,IAAItoF,GAAI,yCAAyC,CAAC,EAAEuoF,GAAI,IAAIvoF,GAAI,yCAAyC,CAAC,EAAEwoF,GAAI,IAAIxoF,GAAI,gBAAgB,CAAC,CAAC,CACjR,SAASmD,IAAI13D,EAAEyzB,EAAE,CAAC,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAOsvJ,IAAI/iL,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAO,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAOkxJ,IAAI3kL,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,EAAO,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAOwyF,IAAIjmH,EAAEkjD,EAAGzvB,EAAE,GAAG,CAAC,EAAO,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,OAAOyxM,IAAIllO,EAAEkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAO,GAAGA,EAAG,OAAO,KAAU,MAAMiS,EAAI,IAAImN,GAAIi0K,IAAIlF,GAAG,IAAIluK,GAAIwlE,EAAG9hE,EAAG8sB,GAAG,CAAC,EAAEC,GAAI,EAAE,EAAE,CAAC1wC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACjR,SAAS0xM,IAAInlO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVtlK,EAAE,IAAIutC,GAAQptC,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEiqD,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAIkS,GAAIt8D,EAAEoqD,EAAEpqD,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQ,GAAGA,EAAE,EAAE,EAAkC,IAA/Bo0B,EAAEu+C,IAAKnyE,EAAE,IAAIqqC,GAAI,EAAElqC,EAAE,EAAEH,GAAGG,EAAE,CAAC,EAAM2kK,EAAErL,GAAIj6J,EAAE,CAAC,EAAEslK,EAAE,GAAGA,EAAE,EAAE,GAAI53C,EAAE7pE,EAAG0tF,GAAI+zB,CAAC,EAAE,GAAG,EAAEolB,GAAIlkI,GAAID,GAAIE,GAAIH,GAAI,IAAI1b,GAAI,CAAC,EAAE,CAAC,EAAExW,CAAC,EAAEs5F,CAAC,CAAC,CAAG,CAClR,SAAS0iG,GAAIzvN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,IAAMyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAIc,GAAIplO,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAEwuM,GAAIruM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEgyI,GAAIhoK,EAAEzzB,EAAE,GAAGypD,CAAC,GAAGA,EAAE02B,GAAIngF,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAI,CAAA,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,GAAGyzB,EAAEA,CAAC,CAAC,CAAC,CAClR,SAASmqK,IAAI59L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,IAAIqsH,GAAK,IAAIj/I,GAAI72B,EAAE,CAAC,EAAG,CAAC,EAAEypD,EAAE,GAAI5pD,EAAE05J,GAAI9vG,CAAC,EAAEjqD,EAAE0jD,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAE4zB,EAAEyvB,EAAGrjD,EAAE,KAAK,EAAE,EAAEijF,EAAIrvD,GAAGy2F,EAAG,EAAG+jC,IAAKzuJ,CAAC,EAAEsjF,EAAItjF,EAAEm3K,GAAIljJ,CAAC,EAAEqvD,EAAItjF,EAAE6lO,IAAKj1J,GAAK,EAAC,GAAM,EAAC1pC,GAAIlnC,EAAE0jD,EAAG0lE,EAAIn1F,EAAEs5I,EAAG,EAAE,EAAE,CAAC,EAAEnkD,EAAIn1F,EAAEs5I,EAAG,EAAEjqF,EAAItjF,EAAE,GAAG8tB,GAAG,EAAG6oI,KAAMp4D,GAAG,EAAGykD,GAAG,EAAGt/F,EAAG0lE,EAAI3K,GAAIz+G,EAAE,CAAC,EAAEi/K,EAAG,EAAE,EAAE,EAAE,IAAIzuF,GAAG,EAAG61E,GAAG,CAAG,CACnR,SAASy/D,IAAItlO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAU,GAARP,EAAE,EAAE0tH,EAAE,EAAK/sH,EAAE,EAAG,IAAIJ,EAAE,IAAIs4B,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEP,GAAGslK,EAAE,EAAE,EAAE,YAAatlK,EAAE,EAAE,GAAGW,EAAE,EAAG,IAAIJ,EAAE,IAAIs4B,EAAIl4B,EAAE,EAAE,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEmtH,GAAG43C,EAAE,EAAE,EAAE,YAAa53C,EAAE,EAAE,OAAAvtH,EAAEggE,GAAGymC,GAAI8mB,EAAE1tH,CAAC,CAAC,EAAEoqD,GAAG5pD,EAAE4zB,GAAG,GAAG5zB,EAAE4zB,IAAI,GAAIj0B,GAAUiqD,CAAC,CACnR,SAASy9J,IAAIlnN,EAAE,CAACwtF,GAAG,EAAG,IAAI/5D,EAAE5zB,EAAE,GAAGG,EAAE,IAAI8+F,EAAK,EAAC85C,GAAG,EAAI,MAAMlzG,EAAI,IAAImN,GAAI,uCAAuC,CAAC,EAAE,OAAO7yC,EAAE,KAAM,CAAA,IAAK,GAAE,OAAOk9I,GAAI,IAAK,GAAE,OAAAzpH,EAAEzzB,EAAE,GAAGojG,EAAG,GAAGpjG,EAAE,GAAGijG,EAAG,EAAEpjG,EAAEG,EAAE,GAAG64I,EAAG,GAAG74I,EAAE,GAAGiwI,EAAG,EAASx8G,GAAG5zB,EAAEu9I,GAAID,GAAI,IAAK,GAAE,OAAOE,GAAI,IAAK,GAAE,OAAOC,GAAI,QAAQ,OAAO,IAAK,CAAC,CACnR,SAASioF,IAAIvlO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAoE,IAAlE/4C,GAAI/rH,EAAE,0BAA0B,CAAC,EAAEG,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGo0I,GAAG,EAAG,GAAG,EAAMriK,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMslK,EAAE,IAAIzsI,EAAI8sG,GAAGxlI,EAAE,CAAC,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAKhR,IAAI5mC,CAAC,IAAGtjE,EAAEvG,EAAG0lE,EAAImE,GAAG7C,IAAM0pC,KAAM,GAAG,EAAE,CAACnqG,EAAE,GAAG+7K,IAAIxlO,EAAEypD,CAAC,GAAIoiE,GAAIhsH,CAAC,CAAC,CACnR,SAASojN,GAAIjjN,EAAEyzB,EAAE5zB,EAAE,CAAO,OAANuzG,GAAK,EAAIC,GAAIrzG,EAAEyzB,CAAC,GAAG4/E,GAAIrzG,EAAEH,CAAC,EAAU,GAAa4lO,GAAI,IAAIrwK,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,EAAE5zB,CAAC,GAAG4lO,GAAI,IAAIrwK,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,EAAE5zB,CAAC,GAAG4lO,GAAI,IAAIrwK,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,EAAE5zB,CAAC,GAAG4lO,GAAI,IAAIrwK,GAAIp1D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAIo1D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,EAAE5zB,CAAC,CAAC,CACnR,SAAS6lO,GAAI1lO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAG,CAACW,EAAE,GAAE,GAAI,IAAIH,EAAE,EAAE4pD,EAAEzpD,EAAE,KAAKH,EAAE4pD,EAAE,EAAE5pD,EAAiB,GAAdR,EAAEk2C,GAAGv1C,EAAE,GAAGH,CAAC,CAAC,EAAKR,GAAG,KAAKo0B,GAAG,KAAK4uD,GAAIhjF,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAEo0B,GAAG,OAAOj0B,EAAEi0B,EAAE,OAAO,CAAC4uD,GAAIhjF,EAAE,OAAOA,EAAE,OAAOG,EAAEA,CAAC,EAAEi0B,CAAC,GAAGp0B,EAAE,QAAQo0B,EAAE,OAAO,IAAI,CAAC4uD,GAAI89B,GAAI1sF,CAAC,EAAE4uD,GAAIhjF,EAAEgoG,EAAG,GAAG,CAAChlB,GAAI89B,GAAI1sF,CAAC,GAAG4uD,GAAIhjF,EAAEo0B,CAAC,EAAG,MAAO,GAAO,MAAO,EAAK,CACnR,SAASm2B,IAAI5pD,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAwC,IAAtC73C,EAAE/sH,EAAE,EAAE,EAAE,OAAOJ,EAAEqkE,EAAG0hK,IAAG13C,IAAI,IAAIlhE,EAAE,EAAE,CAAC,EAAM43C,EAAE,EAAEA,EAAE53C,EAAE43C,IAAKtlK,EAAE6jD,EAAGo4B,GAAIt7E,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAEtlK,EAAE,EAAEslK,EAAE/kK,EAAE+kK,CAAC,EAAE0uD,IAAI7G,IAAIntN,CAAC,EAAEQ,EAAE4pD,CAAC,EAA2B,IAAzBm8K,IAAI5lO,EAAEJ,EAAEC,EAAE4zB,EAAEg2B,CAAC,EAAEm7G,EAAE,IAAI7/H,GAAQvlC,EAAE,EAAEA,EAAEI,EAAE,OAAOJ,IAAOI,EAAEJ,CAAC,GAAGg6D,GAAIorG,EAAE1hH,EAAGo4B,GAAIt7E,EAAE,EAAER,CAAC,EAAE,EAAE,EAAEI,EAAEJ,CAAC,CAAC,EAAKolK,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,IAAG9hF,EAAI9iF,GAAGkqH,EAAG,EAAGoC,IAAKs4C,CAAC,EAAE4gD,IAAIxlN,EAAEJ,CAAC,EAAE,CACpR,SAASimO,IAAI7lO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,IAAIG,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkC,GAAzBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAEmrI,GAAI/gF,CAAC,EAAKpqD,GAAMA,EAAE,IAAIsrF,KAAMi0D,IAAM,OAAO17F,EAAG0lE,EAAIvpH,GAAG6qH,EAAG,EAAG6iD,GAAG,EAAG,EAAE,EAAE,GAAG,IAAK,GAAE1tK,EAAE,EAAE,EAAEo0B,EAAE,EAAE,MAAM,IAAK,GAAEp0B,EAAE,EAAE,EAAEQ,EAAE,GAAGR,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,MAAM,IAAK,GAAEA,EAAE,EAAE,EAAEo0B,EAAE,EAAE,MAAM,IAAK,GAAEp0B,EAAE,EAAE,EAAEQ,EAAE,GAAGR,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAG,CAAI,CACpR,SAAS+yF,IAAK,CAACA,GAAI1tF,EAAI0zJ,GAAI,IAAI/lG,GAAIm7F,GAAI,CAAC,EAAE6K,GAAI,IAAIhmG,GAAI,UAAU,CAAC,EAAEimG,GAAI,IAAIjmG,GAAI,gBAAgB,CAAC,EAAEkmG,IAAI,IAAIlmG,GAAI,mBAAmB,CAAC,EAAEmmG,IAAI,IAAInmG,GAAI,yBAAyB,CAAC,EAAEomG,IAAI,IAAIpmG,GAAI,uBAAuB,CAAC,EAAEqmG,IAAI,IAAIrmG,GAAI,uBAAuB,CAAC,EAAEsmG,GAAI,IAAItmG,GAAI,cAAc,CAAC,CAAC,CACpR,SAASyzK,IAAI9lO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAgF,OAA9EnlK,EAAE0jD,EAAGulE,GAAIh1F,GAAG3D,GAAK,EAACywL,IAAK,EAAC,EAAE,EAAE,CAAC/gN,IAAIA,EAAE+tI,EAAI,CAAC,GAAGluI,EAAE6jD,EAAGulE,GAAI5oH,EAAE0gN,GAAG,EAAE,EAAE,EAAE,CAAClhN,IAAIA,EAAEkuI,EAAI,CAAC,GAAM/tI,EAAE,EAAEH,EAAE,EAAU,GAAWG,EAAE,EAAEH,EAAE,EAAU,EAAUW,EAAE,IAAGypD,EAAEmV,GAAInrC,EAAE,EAAE5zB,EAAE,CAAC,EAAK4pD,GAAG,IAAYA,EAAEmV,GAAInrC,EAAE,EAAE5zB,EAAE,CAAC,EAAK4pD,GAAG,IAAUA,GAAGsjE,EAAEt5F,EAAE,EAAEA,EAAE,EAAEkxI,EAAE9kK,EAAE,EAAEA,EAAE,EAAS++D,GAAImuD,EAAE43C,CAAC,EAAE,CACpR,SAAS65B,IAAIx+L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAiC,GAA/B,EAAE9kK,EAAE,EAAEJ,EAAEI,EAAE,GAAG,KAAK,EAAEA,EAAE,EAAE,OAAUyzB,EAAE7zB,EAAE,CAAmC,IAAlCilK,EAAE7kK,EAAE,EAAEA,EAAE,EAAEikE,EAAG8hK,IAAGC,IAAI,GAAG,EAAEpmO,EAAE,EAAE,EAAE,CAAC,EAAMP,EAAE,EAAEA,EAAEO,EAAE,EAAEP,EAAU,GAAPulK,EAAEC,EAAExlK,CAAC,EAAKulK,EAAe,IAAZn7G,EAAEm7G,EAAE,EAAEE,EAAEF,EAAE,EAAMD,EAAE,EAAEA,EAAEG,EAAE,EAAEH,EAAGnlK,EAAE0jD,EAAGuG,EAAEk7G,CAAC,EAAE,GAAG,EAAE53C,EAAE9vC,GAAIj9E,EAAER,EAAE,IAAI,EAAEK,EAAEG,EAAE,EAAE+sH,CAAC,EAAE,CAACltH,IAAIA,EAAEG,EAAE,EAAE+sH,CAAC,EAAE/sH,EAAE,GAAI,GAAEH,EAAE,GAAGL,CAAC,EAAI,MAAO,EAAI,KAAM,OAAO,EAAM,CACpR,SAASymO,IAAIjmO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAe,GAAbJ,EAAEK,EAAER,EAAEG,EAAE,GAAI,EAAI2gK,GAAIngK,EAAE,EAAEX,CAAC,GAAG,GAAGA,EAAE,GAAE,GAAkB,IAAdoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP43C,EAAEl7G,EAAEsjE,CAAC,EAAK7oE,GAAGygH,EAAEnlK,CAAC,GAAGutH,GAAGt5F,EAAG,MAAMiS,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,OAA0C,KAAhCljL,EAAE6nK,GAAIznK,EAAE,EAAE,GAAE,EAAGX,CAAC,EAAEoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP43C,EAAEl7G,EAAEsjE,CAAC,EAAKntH,EAAE,GAAG+kK,EAAE,GAAE,CAAE,EAAG,MAAMj/H,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAIhtJ,GAAIl5E,EAAEyzB,EAAE5zB,CAAC,CAAC,CACpR,SAAS22K,IAAIx2K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA4E,IAA1E9kK,EAAEqjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACusD,GAAK,EAAC,EAAE,EAAE1pD,EAAE7pE,EAAGgwB,IAAIwE,GAAG,EAAGyuJ,IAAKtmO,CAAC,EAAE,EAAE,EAAE8kK,EAAEzhH,EAAGgwB,GAAGkzJ,GAAIvmO,CAAC,EAAE,EAAE,EAAMR,EAAE0tH,EAAE,GAAE,EAAG1tH,EAAE,GAAI,GAAmB,GAAhBoqD,EAAEvG,EAAG7jD,EAAE,KAAK,EAAE,EAAK,CAAC6jD,EAAGgwB,GAAGlzE,EAAE,EAAEypD,CAAC,EAAE,EAAE,EAAE,KAAM,MAAO,GAAO,IAAIjqD,EAAEmlK,EAAE,GAAE,EAAGnlK,EAAE,GAAE,GAAqB,GAAhBiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAK,CAAC0jD,EAAGgwB,GAAGlzE,EAAE,EAAEypD,CAAC,EAAE,EAAE,EAAE,GAAI,EAAE,MAAO,GAAO,MAAO,EAAI,CACrR,SAAS48K,IAAIrmO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsC,IAApC/4C,GAAIn4F,EAAE,2BAA2B,CAAC,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAwC,IAA/BG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEslK,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAQmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE1xH,GAAImnC,GAAGwuC,EAAImE,GAAG7C,IAAM46G,IAAK,CAAC,GAAGruH,GAAIkuD,CAAC,EAAI94C,GAAIp4F,CAAC,CAAC,CACrR,SAAS0pJ,IAAIn9K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG7kK,EAAE,EAAE,EAAE,QAAQ,EAAG,OAAOomN,IAAIljK,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,GAAG,EAAEyzB,CAAC,EAA2C,IAAzCs5F,EAAEwyD,IAAIv/K,CAAC,EAAEJ,EAAE,EAAEglK,EAAE5kK,EAAE,EAAEX,EAAE0tH,EAAE83C,EAAE7kK,EAAE,EAAE2kK,GAAGC,EAAEvlK,GAAG,EAAEA,EAAQA,EAAE,EAAEulK,GAAE,CAAK,IAAJhlK,EAAE,EAAM6pD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAE7pD,IAAIJ,EAAEskI,GAAIjkI,EAAE8kK,EAAE,EAAK,EAAEnlK,EAAE,GAAMI,EAAE6zB,GAAGoxI,EAAEF,EAAEC,EAAED,GAAOtlK,EAAEslK,EAAEA,GAAGC,EAAEvlK,GAAG,EAAEA,CAAC,CAAC,OAAOwlK,CAAC,CACrR,SAASyF,IAAGtqK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAG,MAAMW,CAAC,GAAUmvJ,GAAI,EAACK,KAAMxvJ,EAAE,qBAA6BmvJ,GAAE,EAAGE,KAAMrvJ,GAAG,oBAA4BmvJ,GAAE,EAAGC,MAAG5vJ,EAAE,GAASQ,EAAE,IAAGR,EAAE,GAAKQ,EAAE,CAACA,GAAEypD,EAAE,EAAKzpD,GAAG6xE,KAAKpoB,EAAE+V,GAAGx/D,EAAE6xE,EAAG,EAAE7xE,GAAGypD,EAAEooB,IAAIhyE,EAAE,EAAKG,GAAG4xE,KAAK/xE,EAAE2/D,GAAGx/D,EAAE4xE,EAAG,EAAE5xE,GAAGH,EAAE+xE,IAAIn+C,EAAE+rC,GAAGx/D,CAAC,EAAEX,EAAEigE,GAAG7rC,EAAE5zB,EAAE4pD,CAAC,EAAEjqD,GAAG4zK,GAAG/zK,CAAC,EAASA,EAAC,CACtR,SAASinO,IAAItmO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAiC,IAA/BQ,EAAE,CAAC4zB,GAAG,CAACzzB,EAAE,EAAE,IAAIm+F,GAAG,EAAGoV,GAAK,EAACl0G,EAAE,EAAMG,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,GAAE,CAAE,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,GAAjBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAKiqD,EAAE,GAAE,IAAKq1C,EAAK,EAAC85C,IAAM,MAAMlzG,EAAI,IAAImN,GAAI,2FAA2F,CAAC,EAAE4W,EAAE,GAAGpqD,GAAG,EAAEs/K,IAAI3+K,EAAEypD,EAAE5pD,CAAC,CAAC,CAAC,CACtR,SAAS0mO,IAAIvmO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAc,OAAZvtH,EAAEi0B,EAAE,GAAGzzB,EAAE,CAAC,EAAKR,IAAGiqD,GAAG,CAACjqD,EAAE,IAAIA,EAAE,EAAE,IAAIu4E,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGx0L,CAAC,GAAGA,EAAE,GAAGK,EAAE01C,GAAG45I,GAAI1lI,EAAE+8K,EAAG,CAAC,EAAK3mO,GAAG,OAAMR,EAAEQ,EAAE,YAAY,GAAG,EAAEktH,EAAE1tH,GAAG,GAAGq5E,GAAI14E,EAAEyzB,EAAE,KAAK5zB,CAAC,EAAER,GAAG,EAAEyrJ,GAAI9qJ,EAAE,KAAKH,EAAE,OAAO,CAAC,CAAC,EAAEirJ,GAAI9qJ,EAAEH,EAAE,OAAO,EAAER,CAAC,EAAEQ,EAAE,OAAOR,EAAE,CAAC,CAAC,EAAKksE,EAAGwhD,EAAE,GAAG,IAAU7pE,EAAG6pE,EAAE,GAAG,EAAW,IAAI,CACtR,SAAS05G,IAAIzmO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAc,OAAZtjE,EAAEh2B,EAAE,GAAGzzB,EAAE,CAAC,EAAKypD,IAAG5pD,GAAG,CAAC4pD,EAAE,IAAIA,EAAE,EAAE,IAAIsuB,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGvqI,CAAC,GAAGA,EAAE,GAAGpqD,EAAEk2C,GAAG45I,GAAItvL,EAAE6mO,EAAG,CAAC,EAAKrnO,GAAG,OAAMG,EAAEH,EAAE,YAAY,GAAG,EAAE0tH,EAAEvtH,GAAG,GAAGk5E,GAAI14E,EAAEyzB,EAAE,KAAKp0B,CAAC,EAAEG,GAAG,EAAEsrJ,GAAI9qJ,EAAE,KAAKX,EAAE,OAAO,CAAC,CAAC,EAAEyrJ,GAAI9qJ,EAAEX,EAAE,OAAO,EAAEG,CAAC,EAAEH,EAAE,OAAOG,EAAE,CAAC,CAAC,EAAK+rE,EAAGwhD,EAAE,GAAG,IAAU7pE,EAAG6pE,EAAE,GAAG,EAAW,IAAI,CACtR,SAASmmD,GAAIlzK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIQ,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA2B,IAA1B4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,EAAE,KAASp0B,EAAEo0B,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAACp0B,EAAE,MAAOoqD,EAAEvG,EAAG7jD,EAAE,KAAK,EAAE,EAAEy9D,GAAIrT,EAAE,CAAC,GAAG,CAACh2B,EAAE,GAAGg2B,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAEg2B,GAAG,IAAIjqD,EAAEi0B,EAAE,EAAE,EAAE,GAAE,EAAG,KAAKj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEiqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,EAAEg2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,CAAE,CAAC,OAAOzzB,CAAC,CACvR,SAASgzK,GAAIhzK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIQ,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA2B,IAA1B4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,EAAE,KAASp0B,EAAEo0B,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAACp0B,EAAE,MAAOoqD,EAAEvG,EAAG7jD,EAAE,KAAK,EAAE,EAAEy9D,GAAIrT,EAAE,CAAC,GAAG,CAACh2B,EAAE,GAAGg2B,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAEg2B,GAAG,IAAIjqD,EAAEi0B,EAAE,EAAE,EAAE,GAAE,EAAG,KAAKj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEiqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,EAAEg2B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEh2B,EAAE,EAAE,EAAE,CAAE,CAAC,OAAOzzB,CAAC,CACvR,SAAS2mO,IAAI3mO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAmF,OAAjF5pD,EAAEqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEypD,EAAEvG,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEyzB,EAAE1wB,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAIlD,CAAC,EAAEkD,EAAK,KAAK,IAAI0mD,CAAC,CAAC,EAAK5pD,EAAE4zB,GAAGg2B,GAAG,CAACh2B,EAAU,IAAIkjC,GAAI42E,EAAI1tI,EAAE,CAAC,EAAE0tI,EAAI9jF,CAAC,CAAC,EAAK5pD,GAAG4zB,GAAGg2B,EAAEh2B,EAAU,IAAIkjC,GAAI42E,EAAI1tI,CAAC,EAAE0tI,EAAI9jF,EAAE,CAAC,CAAC,EAAK5pD,GAAG,CAAC4zB,GAAGg2B,GAAGh2B,EAAU,IAAIkjC,GAAI42E,EAAI1tI,EAAE,CAAC,EAAE0tI,EAAI9jF,CAAC,CAAC,EAAS,IAAIkN,GAAI42E,EAAI1tI,CAAC,EAAE0tI,EAAI9jF,EAAE,CAAC,CAAC,CAAC,CACvR,SAASgU,KAAK,CAAC,OAAAg+B,GAAG,EAAUyd,EAAG9hE,EAAGwvL,IAAG,CAAC,EAAExtH,EAAI,GAAG,EAAE,CAACytH,IAAIC,IAAI9nE,GAAI1a,GAAIyiF,IAAIC,GAAIC,GAAIhoE,GAAIioE,IAAIC,IAAIC,IAAIloE,GAAImoE,IAAIC,IAAIC,IAAIC,IAAIloE,GAAImoE,GAAIC,GAAIhpD,GAAIipD,IAAIC,GAAIC,IAAIC,IAAIC,IAAIC,GAAIC,IAAI1oE,GAAI+xC,IAAIL,IAAID,IAAIk3B,GAAIC,IAAIC,GAAIC,GAAIh3B,IAAIi3B,GAAIC,IAAIC,IAAIt3B,IAAIl4E,GAAIyvG,IAAIC,IAAIC,IAAIC,IAAIppE,GAAIqpE,GAAIC,IAAIC,GAAIC,IAAIC,GAAIC,IAAI/3B,IAAIv4E,GAAIuwG,GAAI33B,IAAI43B,GAAG,CAAC,CAAC,CACvR,SAASC,IAAIrpO,EAAEyzB,EAAE5zB,EAAE,CAACG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,IAAIk3D,GAAK,EAAC4+D,KAAM1pJ,EAAE,GAAG0pJ,IAAKrmG,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAG+jC,GAAG,EAAG,EAAE,GAAG/qG,EAAG0lE,EAAI/oH,EAAEouJ,EAAG,EAAE,EAAE,IAAIpoB,GAAIpyG,CAAC,EAAE,IAAIqrE,IAAM+5C,IAAKimF,IAAI9+N,EAAEyzB,EAAE5zB,CAAC,EAAEi/N,IAAI9+N,EAAEH,EAAE4zB,CAAC,GAAGA,EAAE,GAAG81H,IAAK1pJ,EAAE,GAAGypJ,GAAIzjB,GAAIpyG,CAAC,EAAE,IAAIqrE,EAAK,EAAC+5C,IAAM74I,EAAE,EAAE,EAAIA,EAAE,EAAE,EAAGH,EAAE,GAAG0pJ,IAAK91H,EAAE,GAAG61H,KAAMzjB,GAAIhmI,CAAC,EAAE,IAAIi/F,EAAK,EAAC+5C,IAAM74I,EAAE,EAAE,EAAIA,EAAE,EAAE,GAAI2hM,IAAI3hM,EAAEyzB,EAAE5zB,CAAC,CAAC,CACvR,SAASgnN,IAAI7mN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,OAAAA,EAAEskB,GAAIppL,CAAC,EAAEyzB,EAAEzzB,EAAE,EAAEJ,EAAE6zB,GAAG,KAAK7zB,GAAGylG,GAAIy/D,EAAE,WAAW9kK,EAAE,CAAC,EAAER,EAAEihD,GAAI,IAAI3pB,GAAI92B,EAAE,CAAC,CAAC,EAAE+sH,EAAE,CAACvtH,EAAKutH,IAAG63C,EAAE,IAAIrxI,GAAG+xE,GAAGw/D,EAAE,eAAeF,CAAC,EAAE/kK,EAAE,IAAI+iC,IAAIgiI,CAAC,EAAE7sB,GAAI,IAAIjhH,GAAI92B,EAAE,CAAC,EAAEH,CAAC,GAAER,EAAEohD,GAAIzgD,EAAE,CAAC,EAAE2kK,EAAE,CAACtlK,EAAKslK,IAAGE,EAAE,IAAItxI,GAAG+xE,GAAGw/D,EAAE,oBAAoBD,CAAC,EAAEp7G,EAAE,IAAI5mB,IAAIgiI,CAAC,EAAE9sB,GAAI/3I,EAAE,EAAEypD,CAAC,GAASq7G,CAAC,CACvR,SAASi+D,IAAG/iO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAuC,IAArCn7G,EAAE,GAAMh2B,EAAE,IAAI5zB,EAAE,EAAER,EAAE,IAAIm+E,IAAGx9E,EAAE,MAAM,EAAM2kK,EAAE3kK,EAAEJ,EAAE,EAAEglK,EAAED,EAAE,OAAO/kK,EAAEglK,EAAE,EAAEhlK,EAAGmtH,EAAE43C,EAAE/kK,CAAC,EAAE6pD,EAAEA,GAAG+0D,GAAIuO,CAAC,EAAE,IAAOvtH,GAAG++C,GAAIwuE,CAAC,EAAEA,EAAE,GAAGnkF,EAAIvpC,EAAE,EAAEm2C,GAAGh2C,CAAC,CAAC,EAAEi0B,GAAGj0B,EAAE,GAAI,EAACK,EAAEg7K,IAAGh7K,EAAEL,EAAE,IAAI,EAAE,OAAO0jD,EAAGA,EAAG20D,IAAI,IAAIjN,GAAI,KAAK4xG,GAAG,IAAI1vJ,IAAK5lB,GAAI,EAAC+kJ,GAAG5sL,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI4E,GAAGwvB,EAAE5zB,CAAC,CAAC,EAAE,IAAIqzB,IAAGlzB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CACxR,SAASspO,IAAItpO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAOG,EAAE,IAAIyzB,EAAE,GAAGzzB,EAAE,EAAE,GAAGqlK,IAAIrlK,EAAE,EAAE,EAAEyzB,EAAE,CAAC,KAAImV,EAAI5oC,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,MAAK+/D,IAAItsC,EAAE,CAAC,EAAGzzB,EAAE,EAAEyzB,EAAIzzB,EAAE,EAAEyzB,GAAMA,EAAE,IAAIy2D,GAAG,EAAGrqB,KAAM,CAACpsC,EAAE,GAAGA,EAAE,GAAGusC,IAAKvsC,EAAE,GAAGA,EAAE,GAAGy7G,IAAKz7G,EAAE,GAAGA,EAAE,GAAGqsC,IAAK,CAACrsC,EAAE,IAAQzzB,EAAE,GAAKA,EAAE,IAAGH,EAAE,IAAIuhE,GAAIphE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEyzB,EAAG,CACxR,SAAS0rB,GAAIn/C,EAAE,CAAC,IAAIyzB,EAAwE,GAAtEob,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,IAAItwB,IAAI,KAAK,EAAEve,EAAE,KAAK,EAAEkjD,EAAGljD,EAAE,GAAGA,EAAE,EAAG,EAAC,CAAC,EAAE,OAAU,KAAK,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,4DAA4D,CAAC,EAAE,KAAK,GAAGpf,EAAEyvB,EAAGxH,GAAI,KAAK,CAAC,EAAE,CAAC,EAAE,IAAIspC,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI20B,GAAI,KAAK,EAAE,IAAIrjB,EAAG,CACxR,SAASm2H,GAAIl7J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,GAAKyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAIhd,IAAItnN,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAEwsM,GAAIrsM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEvG,EAAGzvB,EAAE,EAAE,EAAE,GAAGzzB,EAAE,EAAEssM,GAAG7iJ,CAAC,GAAGA,EAAEomD,GAAI7vG,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAE,CAAE,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CACxR,SAAS81M,IAAIvpO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAGzzB,EAAE,IAAIA,EAAE,IAAI,IAAI,GAAKyzB,EAAE,CAAC,GAAG45K,GAAIrtM,EAAEyzB,CAAC,EAAE,MAAMiS,EAAI,IAAImN,GAAIyxL,GAAI9hD,IAAIxiL,CAAC,CAAC,CAAC,EAAEypD,EAAE,KAAOzpD,EAAE,KAAKypD,GAAG5pD,EAAEG,EAAE,IAAI,GAAGH,GAAG,EAAEgtM,GAAI7sM,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,GAAGA,EAAE,GAAGH,EAAE,KAAK4pD,CAAC,IAAMh2B,IAAIg2B,EAAEvG,EAAGzvB,EAAE,EAAE,EAAE,GAAGzzB,EAAE,EAAE8sM,GAAGrjJ,CAAC,GAAGA,EAAEqmD,GAAI9vG,EAAEyzB,EAAEg2B,CAAC,EAAIA,GAAGA,EAAE,GAAE,CAAE,MAAOzpD,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEyzB,EAAEA,CAAC,CAAC,CAAC,CACxR,SAAS0/H,GAAInzJ,EAAEyzB,EAAE,CAACy/H,GAAK,EAAC,IAAIrzJ,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA0B,OAArBpxI,EAAE,EAAEzzB,EAAE,IAAG2kK,EAAE3kK,EAAEA,EAAEyzB,EAAEA,EAAEkxI,GAAKlxI,EAAE,EAAE,GAAW+1M,IAAIxpO,EAAEyzB,CAAC,GAAEs5F,GAAG/sH,EAAE,EAAE,KAAK,EAAE4kK,EAAEpmB,GAAIx+I,EAAE+sH,CAAC,EAAE83C,EAAErmB,GAAI/qH,EAAEs5F,CAAC,EAAEtjE,EAAEggL,GAAIzpO,EAAEq+I,GAAIumB,EAAE73C,CAAC,CAAC,EAAEvtH,EAAEiqO,GAAIh2M,EAAE4qH,GAAIwmB,EAAE93C,CAAC,CAAC,EAAEntH,EAAEuzJ,GAAIyR,EAAEC,CAAC,EAAEhlK,EAAEszJ,GAAI1pG,EAAEjqD,CAAC,EAAEH,EAAE8zJ,GAAIs2E,GAAI7kE,EAAEn7G,CAAC,EAAEggL,GAAIjqO,EAAEqlK,CAAC,CAAC,EAAExlK,EAAEqqO,GAAIA,GAAIrqO,EAAEO,CAAC,EAAEC,CAAC,EAAER,EAAEg/I,GAAIh/I,EAAE0tH,CAAC,EAAEntH,EAAEy+I,GAAIz+I,EAAEmtH,GAAG,CAAC,EAAS28G,GAAIA,GAAI9pO,EAAEP,CAAC,EAAEQ,CAAC,EAAC,CACzR,SAAS8pO,IAAI3pO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA8C,IAA5C53C,EAAE+lD,GAAI9yK,EAAEH,CAAC,EAAE8kK,EAAE1gG,EAAGopD,GAAGC,GAAI,GAAG75F,EAAE,OAAO,EAAE,CAAC,EAAEg2B,EAAE,EAAMpqD,EAAE0tH,EAAE,KAAK1tH,EAAE,MAAOG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAE4zC,GAAImnC,GAAGwuC,EAAIppH,GAAG0qH,EAAK,EAACm7G,GAAG,CAAE,CAAC,IAAI1gE,EAAEl7G,GAAG,EAAEvG,EAAG0lE,EAAIppH,EAAEm3K,EAAG,EAAE,EAAE,GAAG,GAAGltH,EAAEh2B,EAAE,OAAQ,MAAMiS,EAAI,IAAIoN,GAAI,YAAYrf,EAAE,OAAO,uCAAuCg2B,EAAE,GAAG,CAAC,EAAE,OAAOk7G,CAAC,CACzR,SAASilE,IAAI5pO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAAC3kK,EAAE,GAAG,CAAuD,IAAtDX,GAAG,CAACW,EAAE,KAAKA,EAAE,GAAG,IAAIm0G,GAAIn0G,EAAEgrK,GAAGhrK,CAAC,GAAGA,EAAE,IAAI2kK,EAAE,IAAIjnH,GAAIr+C,EAAE,CAAC,EAAMG,EAAE,IAAI28D,GAAI98D,CAAC,EAAEG,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,GAAG,EAAEutH,EAAEtjE,EAAE,KAAK5pD,EAAEqjD,EAAG6pE,GAAG,KAAKtM,GAAIkkD,EAAE,EAAE,KAAKl7G,CAAC,EAAEguE,GAAIktC,EAAE,EAAE53C,EAAEtjE,CAAC,EAAE,GAAG,EAAI5pD,IAAIktH,GAAG,KAAKtM,GAAIkkD,EAAE,EAAE,KAAK9kK,CAAC,EAAE43H,GAAIktC,EAAE,EAAE53C,EAAEltH,CAAC,GAAGG,EAAE,GAAG2kK,CAAC,CAAC,OAAOzhH,EAAGq4D,GAAIv7G,EAAE,GAAGyzB,CAAC,EAAE,GAAG,CAAC,CACzR,SAASgiI,GAAIz1J,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiC,IAA9B/sH,EAAE,GAAG,MAAM05G,GAAI15G,CAAC,EAAEA,EAAE,GAAG,OAAU,CAACA,EAAE,EAAE,CAA4B,IAA3B+sH,EAAE,IAAIrvE,IAAK,EAAE19C,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAMR,EAAE,IAAIi1E,GAAIz0E,EAAE,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,MAAOiqD,EAAEvG,EAAGw2I,GAAIl6L,CAAC,EAAE,GAAG,EAAEH,EAAEoqD,EAAE,GAAI,EAAC5pD,EAAEqjD,EAAG7jD,GAAG,KAAKohH,GAAIsM,EAAE,EAAE,KAAKtjE,CAAC,EAAEguE,GAAI1K,EAAE,EAAE1tH,EAAEoqD,CAAC,EAAE,GAAG,EAAI5pD,IAAIR,GAAG,KAAKohH,GAAIsM,EAAE,EAAE,KAAKltH,CAAC,EAAE43H,GAAI1K,EAAE,EAAE1tH,EAAEQ,CAAC,GAAGG,EAAE,EAAE+sH,CAAC,CAAC,OAAO7pE,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CAC1R,SAASkrL,GAAI3+M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAgF,IAA9EuvB,IAAI1qI,EAAE+iE,GAAG3sH,EAAEA,EAAE,IAAI,EAAEL,CAAC,EAAE09G,IAAIzpF,EAAEs4J,IAAIlsL,CAAC,CAAC,EAAER,EAAEQ,EAAE,EAAIR,GAAGs/M,GAAI3+M,EAAEyzB,EAAEp0B,EAAE,cAAc,EAAK,EAAMslK,GAAG9kK,EAAE,GAAG,OAAOA,EAAE,EAAEokE,EAAG8/H,GAAGv5H,EAAI,GAAG,EAAE,EAAE,CAAC,GAAG3qE,EAAE,GAAGD,EAAE,EAAEglK,EAAED,EAAE,OAAO/kK,EAAEglK,EAAE,EAAEhlK,EAAGmtH,EAAE43C,EAAE/kK,CAAC,EAAE++M,GAAI3+M,EAAEyzB,EAAEs5F,EAAE,eAAe,EAAK,EAAE,QAAQ,UAAU,MAAM,QAAQ,SAAS,KAAK,OAAO,CAAC,CAC1R,SAASkwD,GAAIj9K,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAuE,IAArEA,EAAE6zB,EAAE,EAAEkxI,EAAE/kK,EAAE,OAAOmtH,EAAEt5F,EAAE,EAAE,GAAG7zB,EAAEC,EAAE,EAAE8kK,EAAE,EAAE9kK,CAAC,EAAEL,EAAEI,EAAEC,EAAE,EAAE8kK,EAAE,CAAC,EAAE53C,EAAEA,EAAE88G,IAAI7pO,EAAER,EAAEK,EAAE4pD,CAAC,EAAMpqD,EAAEQ,EAAE,EAAE8kK,EAAE,EAAE9kK,EAAER,EAAEslK,EAAEtlK,GAAG,EAAEA,GAAGQ,EAAE,EAAE,GAAIktH,EAAEA,EAAEt5F,EAAE,EAAE,GAAG7zB,EAAEP,EAAEQ,EAAE4pD,GAAG,CAACxW,GAAImnC,GAAGwuC,EAAIn1F,EAAE,GAAGy2F,EAAG,EAAG4/G,GAAK,CAAA,CAAC,GAAG,CAAC72L,GAAImnC,GAAGwuC,EAAIn1F,EAAE,GAAGy2F,IAAM6/G,GAAK,CAAA,CAAC,CAAC,EAAEh9G,EAAEA,EAAEt5F,EAAE,EAAE,GAAG7zB,EAAEP,EAAEQ,CAAC,EAAEktH,EAAEA,EAAE88G,IAAI7pO,EAAEJ,EAAEP,CAAC,EAAEQ,EAAE4pD,CAAC,EAAE,OAAAzgB,GAAIhpC,EAAE,EAAEyzB,CAAC,EAASs5F,CAAC,CAC1R,SAASi9G,GAAIhqO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,IAAIF,EAAEh5B,IAAI7rI,EAAE,CAAC,EAAE8kK,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAE,CAAQ,GAAPF,EAAEC,EAAEC,CAAC,EAAKjlK,IAAImyF,GAAG,EAAGytC,KAAM5/H,GAAG2/H,GAAgB,IAAX5/H,EAAEspI,GAAI07B,EAAE,CAAC,EAAMplK,EAAEI,EAAEP,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEkmN,IAAI9xL,EAAEg2B,CAAC,GAAGumH,GAAIvmH,EAAE,EAAI,EAAG,GAAG5pD,GAAG6/H,IAAK7/H,GAAG2/H,GAAgB,IAAXmlC,EAAEz7B,GAAI07B,EAAE,CAAC,EAAMplK,EAAEmlK,EAAEtlK,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEimN,IAAI7xL,EAAEg2B,CAAC,GAAGumH,GAAIvmH,EAAE,EAAI,CAAG,CAAC,CAC3R,SAASwgL,IAAIjqO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAgB,OAAd4zB,EAAE,KAAK5zB,EAAE,KAAYu1M,IAAIp1M,CAAC,EAAE,EAAG,CAAA,IAAK,GAAEyzB,GAAGqrE,IAAMsE,IAAKvjG,EAAEojG,GAAI,MAAM,IAAK,GAAExvE,GAAGqrE,EAAK,EAACmxC,IAAKpwI,EAAEg5I,GAAI,MAAM,IAAK,GAAEplH,GAAGqrE,EAAG,EAAGmE,IAAKpjG,EAAEujG,GAAI,MAAM,IAAK,GAAE3vE,GAAGqrE,EAAG,EAAG+5C,IAAKh5I,EAAEowI,EAAI,CAACz7G,GAAIx0B,EAAEkjD,EAAG+uB,GAAImgC,GAAIlvD,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,GAAI,EAACy0B,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE3zB,GAAIv0B,EAAEkjD,EAAG+uB,GAAIigC,GAAIhvD,EAAGgwB,GAAGlzE,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE,GAAI,EAACqoD,EAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAC3R,SAASgiL,IAAIlqO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAsB,GAApBvtH,EAAE0jD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAKR,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,QAAQ,EAAGQ,EAAE,EAAE,EAAE,MAAM,CAAK,IAAJ+sH,EAAE,EAAMtjE,EAAE,GAAG8xG,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC,IAAIjpC,GAAI17B,CAAC,EAAE,IAAI47B,GAAI57B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEk/I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEsjE,GAAGltH,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE4zB,EAAEyvB,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC68M,GAAK,EAAC,CAAC,EAAE9qO,EAAGo0B,EAAIA,EAAE,EAAJ,EAAMzzB,EAAE,EAAE,EAAE+sH,GAAGvtH,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,QAAQH,CAAC,CAAC,CAC5R,SAAS09M,IAAI/8M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,IAAIvxB,EAAIzE,EAAE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEilD,GAAIxrD,EAAGrjD,EAAE,EAAE,EAAE,EAAEwgF,GAAI5W,GAAIvmB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEj0B,EAAEwzN,IAAI9vK,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAEyvB,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEL,EAAE,IAAIQ,EAAE,EAAE,IAAM2uG,IAAIzrD,EAAGrjD,EAAE,EAAE,EAAE,EAAEugF,GAAI3W,GAAIvmB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEu5C,GAAIqT,GAAI5W,GAAIvmB,EAAGrjD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEqjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEj0B,CAAC,CAAC,CAAC,EAAEk6H,IAAI15H,EAAEyzB,CAAC,EAAEspL,IAAI/8M,EAAEH,CAAC,CAAE,CAC5R,SAASq1K,IAAIl1K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAItlK,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,GAAI,EAAC,IAAIjqD,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAMK,EAAE4pD,EAAE,EAAE,EAAE,GAAE,EAAG,KAAK5pD,EAAE,GAAE,GAAqB,IAAhB4zB,EAAEyvB,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAM8kK,EAAElxI,EAAE,EAAE,GAAE,EAAGkxI,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAK53C,EAAE,GAAGtjE,IAAGzgB,GAAIygB,EAAE,EAAEsjE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAK,CAC7R,SAASq9G,IAAIpqO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA+B,IAA7BA,EAAEI,EAAE,EAAE,EAAE,OAAOH,EAAE,EAAE4zB,EAAE7zB,EAAEJ,EAAE,EAAEI,EAAM+kK,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,OAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAS53C,EAAE,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAEA,EAAE,EAAE,GAAG,MAAM,IAAK,GAAE,IAAK,GAAEtjE,EAAEsjE,EAAE,EAAE,EAAE,OAAO1tH,EAAE0tH,EAAE,EAAE,EAAE,OAAOtjE,EAAE,GAAGpqD,EAAE,EAAG0tH,EAAE,EAAEt5F,IAAKg2B,EAAE,EAAGsjE,EAAE,EAAEltH,IAAKR,EAAE,EAAG0tH,EAAE,EAAEvtH,IAAMutH,EAAE,EAAEltH,GAAK,CAAEwqE,KAAMrC,GAAIhoE,EAAE,EAAE,IAAIgR,GAAG,CAAC,CAC7R,SAAS+2M,IAAI/nN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAEA,EAAE,KAAK4zB,EAAEyvB,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAS,GAARH,EAAE4zB,EAAE,EAAE,EAAKijD,GAAI72E,GAAGqqH,EAAK,EAACmmF,GAAG,EAAI,OAAOntJ,EAAG0lE,EAAI/oH,EAAEwwM,EAAG,EAAE,EAAE,EAAE,EAAE,GAAGxwM,EAAE,IAAI8qF,GAAG,EAAG0hC,KAAMqyB,GAAG,IAAI7tC,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIyD,EAAE,CAAC,CAAC,EAAGmwB,EAAEyvB,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGo3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIyD,EAAE,CAAC,CAAC,EAAE,EAAE,UAAUzD,EAAE,GAAGwsH,GAAK,OAAO,IAAK,OAASxsH,GAAGA,EAAE,IAAI8qF,KAAM0hC,KAAM,OAAOxsH,CAAC,CAC7R,SAASwqO,IAAIrqO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAgG,IAA9FF,EAAElxI,EAAE,EAAEs5F,EAAEt5F,EAAE,EAAE7zB,EAAEsjD,EAAGo4B,GAAIqpF,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEE,GAAGhoG,GAAI,EAAE8nG,EAAE,EAAE,MAAM,EAAEzhH,EAAGyhH,EAAE,EAAE,CAAC,EAAE,GAAG,GAAGC,EAAEmgC,GAAI/kM,EAAE+sH,EAAEntH,EAAEilK,CAAC,EAAMxlK,EAAE,EAAEA,EAAEslK,EAAE,EAAE,OAAOtlK,IAAKQ,GAAGg9D,GAAIx9D,EAAE,EAAEslK,EAAE,EAAE,MAAM,EAAEzhH,EAAGyhH,EAAE,EAAEtlK,EAAE,CAAC,EAAE,GAAG,GAAGG,GAAGq9D,GAAIx9D,EAAEslK,EAAE,EAAE,MAAM,EAAEzhH,EAAGyhH,EAAE,EAAEtlK,CAAC,EAAE,GAAG,GAAGoqD,EAAEs7I,GAAI/kM,EAAE+sH,EAAEltH,EAAEL,CAAC,EAAKiqD,EAAEm7G,IAAGhlK,EAAEC,EAAEglK,EAAErlK,EAAEolK,EAAEn7G,GAAGh2B,EAAE,EAAEoxI,EAAEpxI,EAAE,EAAE7zB,CAAC,CAC7R,SAASiqN,IAAI7pN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAiB,GAAfA,EAAE2uD,GAAIp4G,EAAE,EAAEyzB,EAAE,CAAC,EAAK,CAACg2B,EAAG,MAAM/jB,EAAI,IAAIoN,GAAI,uDAAuD,CAAC,GAAGi8H,IAAIt7I,EAAE,EAAEyvB,EAAGy7B,IAAI3+E,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,CAAC,GAAGs7I,IAAIt7I,EAAE,EAAEyvB,EAAGu7B,IAAIz+E,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK6vB,GAAG,EAAG7vB,EAAE,EAAE,IAAiBzzB,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEyvB,EAAGq/B,GAAIviF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE5zB,EAAEqjD,EAAGo/B,GAAItiF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAI5zB,IAAIG,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,EAAE,CAC9R,SAASs2J,GAAI/pL,EAAE,CAAC,GAAG,CAACA,EAAE,EAAE,GAAG,CAACA,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,IAAKmJ,GAAIquL,GAAE,EAAEA,IAAG,EAAE,mCAAmCruL,GAAIsuL,GAAE,EAAEA,IAAG,GAAG,cAAe,CAAA,EAAE,GAAGvqO,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,gDAAgD9yC,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,IAAIA,EAAE,EAAE,CAAC,CAAC,EAAE,OAAA2yE,GAAI3yE,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE2yE,GAAI3yE,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAASA,EAAE,CAAC,CAC9R,SAAS4oM,IAAI5oM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAwB,IAAtBA,EAAE,IAAI9mH,GAAI,IAAI5e,IAAIl/B,CAAC,CAAC,EAAM+sH,EAAE7T,EAAG9hE,EAAG00F,IAAG,CAAC,EAAEC,IAAI,GAAG,EAAE,CAACt4G,EAAE5zB,CAAC,CAAC,EAAE8kK,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAuC,IAApCtlK,EAAE0tH,EAAE43C,CAAC,EAAEtsD,GAAIusD,EAAE,EAAEvlK,GAAG+wE,GAAK,EAACC,GAAK,GAAE,KAAS7wE,EAAE,IAAImhJ,GAAIthJ,EAAE,CAAC,EAAE6oE,GAAI1oE,EAAE,CAAC,GAAG0oE,GAAI1oE,EAAE,CAAC,GAAIiqD,EAAEvG,EAAGglB,GAAI1oE,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAE,EAAE,EAAEiqD,EAAE,GAAGA,EAAE,GAAG2uD,GAAIwsD,EAAEvlK,GAAGoqD,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAG,OAAOjU,GAAGovH,CAAC,EAAE,IAAIz/E,GAAIy/E,CAAC,CAAC,CAC9R,SAAS4lE,IAAIxqO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAM,GAAJ6pD,EAAE,EAAKh2B,EAAE,GAAG,GAAG5zB,EAAE,GAAG,EAAE,CAACR,EAAEi6J,GAAI7lI,EAAE,CAAC,EAAEs5F,EAAEusC,GAAIz5J,EAAE,CAAC,EAAE8kK,EAAEzxH,EAAImnC,EAAGu2D,GAAIvxI,CAAC,CAAC,CAAC,EAAEO,EAAEszC,EAAImnC,EAAGu2D,GAAI7jB,CAAC,CAAC,CAAC,EAAEvtH,EAAE,GAAK,EAAE,CAAC,GAAGmlK,EAAE/kK,EAAEI,EAAE,GAAG2kK,EAAE/kK,EAAEI,EAAE,EAAG,MAAO,GAAQ2kK,EAAE/kK,EAAEI,EAAE,GAAG2kK,EAAE/kK,EAAEI,EAAE,GAAG,EAAEypD,EAAEk7G,GAAG/kK,GAAGP,EAAE,GAAGA,EAAE,EAAE,EAAGslK,EAAEzxH,EAAImnC,EAAGu2D,GAAIvxI,CAAC,CAAC,CAAC,EAAGO,GAAG+kK,GAAG53C,EAAE,GAAGA,EAAE,EAAE,EAAGntH,EAAEszC,EAAImnC,EAAGu2D,GAAI7jB,CAAC,CAAC,CAAC,EAAIvtH,EAAE,EAAM,OAAOA,EAAE,CAAC,OAAOiqD,CAAC,CAC9R,SAASm8K,IAAI5lO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAyD,IAAvDA,GAAGP,EAAE6jD,EAAGxH,GAAIg9F,EAAE,EAAE,CAAC,EAAE,IAAI1zD,GAAI3lF,EAAE6jD,EAAG27B,GAAIx/E,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAOslK,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAKlxI,EAAEs5F,EAAE,CAAC,IAAG09G,IAAI19G,EAAEt5F,EAAEs5F,EAAE,CAAC,EAAEtjE,CAAC,EAAE8jD,GAAI3tG,EAAEmtH,EAAE,CAAC,GAAMvtH,GAAG44M,GAAIp4M,EAAEyzB,GAAGqrE,EAAG,EAAGsE,IAAK,EAAEvjG,EAAE4pD,CAAC,EAAE2uJ,GAAIp4M,EAAEyzB,EAAEwvE,GAAI,EAAEpjG,EAAE4pD,CAAC,IAAO2uJ,GAAIp4M,EAAEyzB,GAAGqrE,EAAK,EAAC+5C,IAAK,EAAEh5I,EAAE4pD,CAAC,EAAE2uJ,GAAIp4M,EAAEyzB,EAAEw8G,GAAI,EAAEpwI,EAAE4pD,CAAC,EAAE,CAC/R,SAAS80D,IAAIv+G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAyD,GAAvDA,EAAE,IAAIwlC,EAAIw/B,GAAIrkE,EAAE,EAAE,IAAI65B,IAAIx6B,CAAC,CAAC,EAAEW,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAK9kE,EAAE,EAAE,QAAQ,EAAE,CAAqC,IAApCo0B,GAAGopC,GAAI,EAAEx9D,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAOQ,EAAE,EAAE4pD,EAAEpqD,EAAE,EAAE,OAAOQ,EAAE4pD,EAAE,EAAE5pD,EAAGL,GAAGq9D,GAAIh9D,EAAER,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAEQ,CAAC,EAAE,EAAE,GAAGL,GAAGi0B,GAAGgpL,IAAGhpL,EAAEj0B,CAAC,EAAE,GAAG+rE,EAAG93C,EAAE,EAAE,EAAG,MAAMiS,EAAIwd,EAAGzvB,EAAE,EAAE,CAAC,EAAE,GAAG83C,EAAG93C,EAAE,GAAG,EAAG,MAAMiS,EAAIwd,EAAGzvB,EAAE,GAAG,CAAC,CAAE,CAAC,CAChS,SAAS2/H,IAAIpzJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA6C,IAA3CW,EAAEA,GAAG,KAAKixE,IAAKngD,GAAI9wB,CAAC,EAAEA,GAAGH,EAAE,IAAIs2C,GAAI92C,EAAE,EAAEoqD,EAAE,EAAQA,EAAEh2B,EAAE,SAAQj0B,EAAEQ,EAAE,QAAQ,KAAKX,CAAC,EAAKG,GAAG,KAAUg8D,GAAI37D,EAAEG,EAAE,OAAOX,EAAEG,EAAEH,CAAC,CAAC,EAAEk8D,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAEpqD,EAAEG,EAAE,EAAqB,GAAnBg8D,GAAI37D,EAAEG,EAAE,OAAOX,CAAC,CAAC,EAAKoqD,EAAEh2B,EAAE,OAAO,CAAyB,IAAxB5zB,EAAE,GAAG,KAAK07D,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAQA,EAAEh2B,EAAE,QAAQ5zB,EAAE,GAAG41C,GAAI8lB,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAE5pD,EAAE,GAAG,GAAG,CAAC,OAAOA,EAAE,CAAC,CAChS,SAAS49L,IAAIz9L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAA2B,IAAzBi0B,EAAE,EAAEg2B,EAAEzpD,EAAE,OAAOR,EAAEiqD,EAAE,EAAE5pD,EAAE,EAAQA,EAAEL,GAAGi0B,GAAGuuF,GAAIniH,EAAE,EAAEG,EAAE,MAAM,EAAEA,EAAE,WAAWH,EAAE,CAAC,GAAGmiH,GAAIniH,EAAE,EAAEG,EAAE,MAAM,EAAE,IAAIA,EAAE,WAAWH,EAAE,CAAC,GAAGmiH,GAAIniH,EAAE,EAAEG,EAAE,MAAM,EAAE,IAAIA,EAAE,WAAWH,EAAE,CAAC,GAAGmiH,GAAIniH,EAAEG,EAAE,MAAM,EAAE,IAAIA,EAAE,WAAWH,CAAC,EAAE,GAAG4zB,SAASA,EAAEA,EAAE,EAAE5zB,GAAG,EAAE,KAAMA,EAAE4pD,GAAGh2B,EAAEA,EAAE,GAAGykF,GAAIl4G,EAAEH,GAAG,EAAE,OAAA4zB,EAAEA,EAAE,EAASA,CAAC,CAChS,SAASi3M,IAAI1qO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIgxG,GAAGphC,GAAGo3G,GAAI7mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK4zB,EAAE,EAAE,EAAE,IAAIk3D,GAAK,EAAC6+D,IAAM,MAAM9jH,EAAI,IAAIwO,GAAIy2L,GAAIpvC,GAAIv7L,CAAC,EAAE,6IAAgJ,CAAC,CAAG,CAChS,SAAS4qO,IAAI5qO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAM,IAAJnlK,EAAE,EAAMilK,EAAE,IAAI3sI,EAAIl4B,EAAE,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAqB,IAApBD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEF,EAAE,EAAMtlK,EAAE,IAAIwxG,GAAGphC,GAAGm3G,GAAIhiB,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIthK,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAAIG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAEylK,EAAE5pC,GAAI17H,EAAE,CAAC,EAAE,EAAEulK,EAAE7pC,GAAI17H,EAAE,CAAC,EAAE,EAAEmlK,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE5hK,EAAK,KAAK,IAAIgiK,EAAED,CAAC,CAAC,EAAEllK,EAAEmD,EAAK,KAAK,IAAInD,EAAE+kK,CAAC,CAAC,CAAC,OAAA53C,EAAEtjE,EAAE1mD,EAAK,KAAK,IAAI,EAAE0wB,EAAE5zB,CAAC,EAAED,EAASmtH,CAAC,CAChS,SAAS89G,GAAI7qO,EAAE,CAAC,IAAIyzB,EAAE,OAAAA,EAAE,IAAIwiB,GAAKj2C,EAAE,MAAUyzB,EAAE,GAAG,KAAQzzB,EAAE,MAAUyzB,EAAE,GAAG,KAAQzzB,EAAE,MAAUyzB,EAAE,GAAG,KAAQzzB,EAAE,IAAQyzB,EAAE,GAAG,KAAQzzB,EAAE,IAAQyzB,EAAE,GAAG,KAAQzzB,EAAE,IAAQyzB,EAAE,GAAG,KAAQzzB,EAAE,KAASyzB,EAAE,GAAG,KAAQzzB,EAAE,KAASyzB,EAAE,GAAG,KAAQzzB,EAAE,KAASyzB,EAAE,GAAG,KAAQzzB,EAAEs9J,KAAU7pI,EAAE,GAAG,KAAc2f,GAAI3f,EAAE,CAAC,CAAC,CAChS,SAASq3M,IAAI9qO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA+C,IAA7CusH,GAAIn4F,EAAE,oCAAoC,CAAC,EAAMg2B,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEk+D,GAAI3nH,EAAE,EAAEH,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEokE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI9kE,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE24H,GAAIx4H,EAAE,IAAI,EAAEQ,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE4mK,IAAI/qO,CAAC,EAAIA,EAAE,GAAGgrO,IAAIhrO,EAAE,EAAEA,CAAC,EAAE6rH,GAAIp4F,CAAC,CAAC,CACjS,SAASotM,IAAI7gO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAgG,GAA9Fn7G,EAAEzpD,EAAE,EAAEX,EAAEoqD,EAAE,EAAEsjE,EAAE1pC,GAAIngC,EAAG0lE,EAAIn/D,GAAGn8B,GAAG,EAAG6oI,GAAG,EAAG,EAAE,CAAC,EAAEt2J,EAAE,CAAC,CAACR,GAAG6jD,EAAG0lE,EAAIvpH,GAAG6qH,IAAMu0D,KAAM,EAAE,EAAE,IAAIzuF,GAAG,EAAG01E,GAAG,EAAM,EAAA34C,GAAGltH,GAAU,IAAI+kK,GAAGD,EAAG,IAAI3tI,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,IAAIw3B,GAAImtI,CAAC,GAAGC,EAAE,EAAE,MAAOhlK,GAAG6zB,EAAEyvB,EAAG0hH,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE1hH,EAAGzvB,EAAE,KAAK,GAAG,GAAM7zB,EAAE,IAAGJ,EAAEI,EAAE,EAAEu6C,GAAI36C,EAAE,IAAI,EAAEI,EAAE,EAAE,GAAKI,EAAE,EAAE,GAAM,CACjS,SAASirO,IAAIjrO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAW,IAATslK,EAAE,GAAGtlK,EAAE,EAAMmlK,EAAE5kK,EAAE6kK,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAE,CAAQ,IAAPjlK,EAAEglK,EAAEC,CAAC,EAAMxlK,EAAEO,EAAEmtH,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAA4C,IAAzCvtH,EAAEH,EAAE0tH,CAAC,EAAEt5F,EAAE,IAAIm9B,IAAIm0G,GAAG,GAAG/kK,EAAE,CAAC,EAAEA,EAAE+kK,CAAC,EAAEknC,IAAIzsM,CAAC,CAAC,EAAMK,EAAE,EAAEA,EAAEL,EAAE,EAAE,EAAE,OAAOK,IAAK,IAAI4pD,EAAE5pD,EAAE,EAAE4pD,EAAEjqD,EAAE,EAAE,EAAE,OAAOiqD,IAAKgpD,IAAIh/E,EAAEyvB,EAAGo4B,GAAI97E,EAAE,EAAEK,CAAC,EAAE,EAAE,EAAEqjD,EAAGo4B,GAAI97E,EAAE,EAAEiqD,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAEhqD,EAAI,EAAEslK,CAAC,CAAC,OAAOtlK,CAAC,CACjS,SAAS2nK,IAAIpnK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA+B,IAA7BA,EAAE7pE,EAAG0lE,EAAIn1F,GAAGzE,GAAG,EAAG8pM,IAAG,EAAG,GAAG,EAAMz5N,EAAEi6J,GAAI7lI,EAAE,EAAE,CAAC,EAAEp0B,EAAE,GAAGA,EAAE,EAAE,GAAoB,GAAhBG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,EAAE,EAAKW,EAAE,EAAER,EAAE,CAAC,GAAG,EAAE,CAAC,OAAOutH,EAAE,GAAG,IAAK,GAAE0zE,IAAIzgM,EAAER,CAAC,EAAE,MAAM,IAAK,GAAEi8N,IAAIz7N,EAAER,CAAC,CAAE,CAACQ,EAAE,EAAER,EAAE,CAAC,EAAE,CAAC,CAAE,IAAIiqD,EAAE6vG,GAAIt5J,EAAE,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAE6/H,GAAGzpL,EAAE,EAAE,EAAEA,EAAE,EAAI,EAAEypL,GAAGzpL,EAAE,EAAE,EAAEA,EAAE,EAAI,EAAEijF,EAAIrvD,GAAG4vJ,KAAMC,KAAKtjL,EAAE,CAAC,CAAC,CACjS,SAASynK,GAAIznK,EAAEyzB,EAAE,CAAC+3B,GAAG,EAAG,IAAI3rD,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAIo0B,EAAsBA,IAAIw0G,GAAK,EAACijG,OAAOz3M,GAAG03M,KAAK13M,GAAG23M,IAAK33M,GAAG43M,MAAMrrO,GAAGsrO,IAAY,IAAIC,GAAIvrO,EAAEyzB,CAAC,GAAOg2B,EAAEvG,EAAGzvB,EAAE,GAAG,EAAE5zB,EAAE4pD,EAAE,GAAE,EAAO5pD,IAAGgjH,GAAIosC,IAAK83C,GAAK,EAACC,IAAKvzK,CAAC,CAAC,EAAE5zB,EAAE4pD,EAAE,GAAI,GAACpqD,GAAG,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAIklC,IAAKllC,EAAE,GAAGL,EAAE0jD,EAAG4W,GAAGm7C,GAAI51G,EAAE,EAAEW,CAAC,CAAC,EAAE,IAAI,EAAE,CAACR,GAAGg6D,GAAIn6D,EAAEW,EAAER,EAAE,IAAI+rO,GAAIvrO,EAAEyzB,CAAC,CAAC,EAASj0B,GAA7OisD,GAA+O,CACjS,SAAS+/K,IAAIxrO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAiG,IAA/FjlK,EAAEsjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAE2W,EAAEzpC,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAC5qE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEilK,EAAE7kK,EAAE,EAAE,EAAE,EAAEH,EAAEqpI,GAAIlpI,EAAE,CAAC,EAAMR,EAAEK,EAAER,EAAE,EAAE0tH,EAAEvtH,EAAE,OAAOH,EAAE0tH,EAAE,EAAE1tH,EAAGoqD,EAAEjqD,EAAEH,CAAC,EAAEyqE,GAAIrgB,EAAE7pD,CAAC,EAAEg8D,GAAInS,EAAE,EAAE,IAAI2L,GAAIwvG,EAAEC,CAAC,CAAC,EAAKpxI,IAAGkxI,EAAEzhH,EAAG0lE,EAAIn/D,GAAGn8B,GAAG,EAAGyxH,KAAM,EAAE,EAAM4lB,IAAGA,EAAE,IAAIh4H,GAAIm2C,EAAIr5B,EAAEs1F,GAAI4lB,CAAC,GAAE9+D,GAAI8+D,EAAE,IAAIvvG,GAAIwvG,EAAEC,CAAC,CAAC,EAAG,CAClS,SAAS4mE,IAAIzrO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAiG,IAA/FrlK,EAAE0jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAE2W,EAAEzpC,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEqlK,EAAE7kK,EAAE,EAAE,EAAE,EAAEH,EAAEqpI,GAAIlpI,EAAE,CAAC,EAAM+sH,EAAEltH,EAAE8kK,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAGtlK,EAAE0tH,EAAE43C,CAAC,EAAE96F,GAAIxqE,EAAEG,CAAC,EAAEk8D,IAAIr8D,EAAE,EAAE,IAAI+1D,GAAIwvG,EAAEC,CAAC,CAAC,EAAKpxI,IAAGg2B,EAAEvG,EAAG0lE,EAAIvpH,GAAGiuB,GAAG,EAAGyxH,KAAM,EAAE,EAAMt1F,IAAGA,EAAE,IAAI9c,GAAIm2C,EAAIzjF,EAAE0/I,GAAIt1F,CAAC,GAAEo8C,GAAIp8C,EAAE,IAAI2L,GAAIwvG,EAAEC,CAAC,CAAC,EAAG,CAClS,SAAS6mE,IAAI1rO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAwG,IAAtG3kK,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACgvG,GAAK,EAAC,GAAG,EAAEl5N,EAAE,EAAE+kI,IAAI/kI,EAAE,CAAC,EAAEX,EAAE,IAAIutC,GAAIptC,EAAEqgJ,GAAG3mC,EAAG9hE,EAAGu0L,IAAG,CAAC,EAAEC,IAAI,GAAG,EAAE,CAACn4M,CAAC,CAAC,CAAC,EAAEs5F,EAAE,EAAQA,EAAEvtH,EAAE,EAAE,QAAQiqD,GAAGoT,GAAIkwD,EAAEvtH,EAAE,EAAE,MAAM,EAAE0jD,EAAG1jD,EAAE,EAAEutH,CAAC,EAAE,EAAE,GAAGtjE,EAAE,EAAEsjE,IAAIltH,EAAE,IAAIgsO,IAAIpiL,EAAEzpD,EAAE,EAAEA,EAAE,CAAC,EAAE2nH,GAAInoH,EAAEK,EAAE,CAAC,EAAE+oC,EAAI5oC,EAAE,EAAEH,CAAC,EAAEA,EAAE,IAAI8kK,EAAErL,GAAIj6J,EAAE,CAAC,EAAEi5G,GAAIqsD,EAAE9kK,CAAC,GAAG,OAAAG,EAAE,EAAE,IAAI4pC,GAAWvqC,CAAC,CAClS,SAASysO,IAAI9rO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAI53C,EAAE7pE,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,EAACs5F,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,GAAG,EAAEltH,EAAER,EAAE,EAAEynG,GAAIznG,EAAE,CAAC,EAAE,EAAKQ,EAAE,EAAMR,EAAE,GAAGslK,EAAEtlK,EAAE,EAAE,GAAE,EAAG,EAAKQ,EAAE8kK,IAAGnlK,GAAGK,EAAE8kK,GAAG,EAAEtlK,EAAE,EAAE,EAAEG,EAAEH,EAAE,EAAE,EAAEG,IAAQH,EAAE,EAAE,EAAEW,EAAE,EAAEH,EAAWyzG,GAAItzG,EAAE,CAAC,IAAGypD,EAAEs9G,GAAI1nK,EAAE,CAAC,EAAEoqD,EAAE,EAAE,IAAIpqD,EAAE,EAAE,EAAE,CAACoqD,EAAE,GAAGA,EAAE,EAAEA,EAAE,EAAEpqD,EAAE,EAAE,GAAI,EAAC,IAAIA,EAAE,EAAE,EAAEoqD,EAAE,EAAEA,EAAE,EAAEpqD,EAAE,EAAE,GAAI,EAAC,GAAI,CACnS,SAAS0sO,IAAI/rO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAsE,IAApEusH,GAAIn4F,EAAE,mDAAmD,CAAC,EAAE5zB,EAAE,GAAUL,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAE8yG,GAAIooB,GAAI5W,GAAIA,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIrD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIp2C,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE3T,EAAEA,EAAER,EAAE,GAAG,KAAKQ,GAAGijF,EAAI9iF,GAAGkqH,EAAK,EAACquF,MAAMnoI,GAAK,EAAC,GAAI,EAAGy7C,GAAIp4F,CAAC,CAAC,CACnS,SAASolL,IAAI74M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAmD,GAAjDnlK,EAAEK,EAAE,CAACL,IAAIA,EAAE,IAAImvC,IAAKi9E,GAAIpsH,EAAE,SAASQ,EAAE,EAAE,EAAE,MAAM,EAAKizC,GAAImnC,GAAGwuC,EAAIn1F,GAAGzE,KAAMspM,KAAK,CAAC,EAAS,IAANh1K,KAAUmG,EAAE,EAAEA,EAAEzpD,EAAE,EAAE,EAAE,OAAOypD,IAAKk7G,GAAGl7G,EAAE,GAAG,IAAI,IAAIA,IAAI,GAAWk7G,EAAO3oH,GAAIwtE,GAAGtmE,EAAGo4B,GAAIt7E,EAAE,EAAEypD,CAAC,EAAE,EAAE,CAAC,CAAC,EAAG,IAAIsjE,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE1tH,EAAE,GAAGo0B,EAAEwzI,GAAIznK,EAAE,CAAC,CAAC,EAAEqsH,GAAIrsH,CAAC,CAAC,CACpS,SAASwsO,IAAIhsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAgC,GAA9B4zB,EAAEyvB,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAKyzB,GAAG,EAAE,CAAC,GAAGA,GAAG5zB,EAAG,OAAO,IAAI82D,GAAI42E,EAAI,CAAC95G,EAAE,CAAC,EAAE85G,EAAI,CAAC95G,EAAE,CAAC,CAAC,EAAE,GAAGA,GAAG,CAAC5zB,EAAG,OAAO,IAAI82D,GAAI42E,EAAI,CAAC95G,CAAC,EAAE85G,EAAI1tI,EAAE,CAAC,CAAC,CAAE,CAAC,OAAGkD,EAAK,KAAK,IAAI0wB,CAAC,EAAE1wB,EAAK,KAAK,IAAIlD,CAAC,EAAM4zB,EAAE,EAAU,IAAIkjC,GAAI42E,EAAI,CAAC95G,CAAC,EAAE85G,EAAI1tI,CAAC,CAAC,EAAS,IAAI82D,GAAI42E,EAAI,CAAC95G,CAAC,EAAE85G,EAAI1tI,EAAE,CAAC,CAAC,EAAS,IAAI82D,GAAI42E,EAAI95G,EAAE,CAAC,EAAE85G,EAAI1tI,CAAC,CAAC,CAAC,CACrS,SAASosO,IAAIjsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAEA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,KAAM4jJ,GAAK,EAAC,GAAG,EAAEz9I,EAAEyvB,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGs5D,KAAM,GAAG,EAAK3jL,IAAImxF,GAAG,EAAG2sD,KAAM76D,EAAI9iF,EAAEkxK,GAAIzzB,EAAG,EAAE36D,EAAI9iF,EAAEwjL,IAAKhzF,GAAK,EAACuuC,GAAK,GAASl/H,GAAGg+I,IAAK/6D,EAAI9iF,EAAEkxK,GAAIzzB,EAAG,EAAE36D,EAAI9iF,EAAEwjL,IAAKhzF,GAAK,EAACwuC,GAAK,GAASvrG,IAAI+8D,GAAK,EAACuuC,KAAMj8C,EAAI9iF,EAAEkxK,GAAIvzB,EAAG,EAAE76D,EAAI9iF,EAAEwjL,GAAI1kD,EAAG,GAAUrrG,GAAGurG,KAAKl8C,EAAI9iF,EAAEkxK,GAAIrzB,EAAG,EAAE/6D,EAAI9iF,EAAEwjL,GAAI1kD,EAAG,EAAE,CACrS,SAAS3mE,IAAK,CAACA,GAAIzzD,EAAIwnO,GAAI,IAAIrxN,IAAIm4L,IAAItqG,GAAI,IAAItgD,IAAK0hC,GAAG,EAAGyuD,KAAM98C,GAAG,EAAGisI,GAAK,EAACz0B,IAAIrjG,GAAIlH,GAAI,IAAItgD,GAAImwF,GAAIqvF,EAAG,EAAEjvG,GAAIowG,EAAG,EAAE71B,IAAI9nD,GAAIA,GAAIrhG,GAAI6lD,GAAIlH,GAAI,IAAItgD,GAAIiwF,GAAI4uF,EAAG,EAAEtuG,GAAIkwG,EAAG,EAAErwF,EAAG,EAAEwvF,EAAG,EAAEE,EAAG,EAAE/0B,IAAIvjG,GAAIlH,GAAIA,GAAIA,GAAI,IAAItgD,GAAIkwF,GAAI0uF,EAAG,EAAExuF,GAAI6vF,EAAG,EAAE7vF,GAAI8vF,EAAG,EAAE3vG,GAAIswG,EAAG,EAAE71B,IAAIxjG,GAAIlH,GAAIA,GAAI,IAAItgD,GAAIowF,GAAI8vF,EAAG,EAAE9vF,GAAI4vF,EAAG,EAAEzvG,GAAIwwG,EAAG,CAAC,CACrS,SAASjjC,IAAK,CAACA,GAAIxhM,EAAIg1M,IAAIhxG,GAAIkH,GAAI,IAAIxnD,IAAK0hC,GAAK,EAAC6uC,KAAMl9B,GAAK,EAACytI,IAAG,EAAG3wF,GAAImvF,EAAG,EAAE/tB,IAAIvuD,GAAIA,GAAIrhG,GAAI6lD,GAAIlH,GAAI,IAAItgD,GAAIiwF,GAAI4uF,EAAG,EAAEtuG,GAAIkwG,EAAG,EAAErwF,EAAG,EAAEwvF,EAAG,EAAEE,EAAG,EAAEtuB,IAAIhqG,GAAIlH,GAAIA,GAAIA,GAAI,IAAItgD,GAAIkwF,GAAI0uF,EAAG,EAAExuF,GAAI6vF,EAAG,EAAE7vF,GAAI8vF,EAAG,EAAE3vG,GAAIswG,EAAG,EAAEpvB,IAAInxG,GAAIA,GAAI,IAAItgD,GAAImwF,GAAIqvF,EAAG,EAAEjvG,GAAIowG,EAAG,EAAEjvB,IAAIlqG,GAAIlH,GAAIA,GAAI,IAAItgD,GAAIowF,GAAI8vF,EAAG,EAAE9vF,GAAI4vF,EAAG,EAAEzvG,GAAIwwG,EAAG,CAAC,CACtS,SAASgD,IAAInsO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,GAAM,CAACpmB,GAAIlzE,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,GAAG,CAAC8sI,IAAIplC,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAEK,CAAC,IAAI,CAAC8mG,GAAIlzE,CAAC,IAAGA,EAAE,GAAGj0B,EAAEw3E,GAAGvjD,EAAE,EAAE,EAAE,IAAI2kB,GAAIv4C,CAAC,CAAC,EAAEgmG,GAAIpyE,EAAE,EAAE,IAAI2kB,GAAIv4C,CAAC,CAAC,EAAK4pD,GAAG,CAACzF,GAAIhkD,EAAE,EAAEH,CAAC,IAAGktH,EAAE7pE,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGyxH,KAAM,EAAE,EAAMhyB,IAAGA,EAAE,IAAIpgF,GAAIm2C,EAAIrvD,EAAEsrH,GAAIhyB,CAAC,GAAE1tH,EAAE,IAAI+4C,GAAIv4C,CAAC,EAAE87D,GAAIoxD,EAAE1tH,EAAE0tH,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE/jF,GAAIhpC,EAAE,EAAEX,CAAC,GAAG,CACrS,SAAS+sO,IAAIpsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,IAAIA,EAAE,IAAIgxG,GAAGphC,GAAGm3G,GAAI5mL,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK4zB,EAAE,EAAE,EAAE,IAAIk3D,GAAK,EAAC6+D,IAAM,MAAM9jH,EAAI,IAAIwO,GAAIy2L,GAAIpvC,GAAIv7L,CAAC,EAAE,mJAAsJ,CAAC,CAAG,CACtS,SAAS8zL,IAAI9zL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkB,GAAhBplK,EAAE2nL,IAAInnL,EAAE,GAAG,GAAG,EAAKR,GAAG,EAAGQ,EAAE,GAAGH,MAAM,CAAC,GAAGL,GAAG,EAAGmlK,EAAE1gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE9kE,EAAEyrK,GAAI9qK,EAAEyzB,CAAC,EAAKp0B,GAAG,GAAGslK,EAAE,CAAC,EAAE9kK,EAAE8kK,EAAE,CAAC,EAAE3kK,EAAE,KAAQ2kK,EAAE,CAAC,EAAE3kK,EAAE,GAAG2kK,EAAE,CAAC,EAAE9kK,OAA0C,KAAlC8kK,EAAE1gG,EAAGC,GAAGC,GAAI,EAAE3kE,EAAE,EAAE,EAAE,CAAC,EAAEutH,EAAEkjC,GAAGjwJ,EAAE,EAAE,EAAMypD,EAAE,EAAE7pD,EAAE,EAAEglK,EAAE,EAAEn7G,GAAG,IAAIA,IAAI,EAAGA,GAAGh2B,EAAGkxI,EAAEC,GAAG,EAAE/kK,EAAIG,EAAE,GAAGypD,IAAQk7G,EAAEC,GAAG,EAAE73C,EAAEntH,GAAG,GAAII,EAAE,GAAG2kK,CAAC,CAAC3kK,EAAE,IAAIyzB,CAAC,CACtS,SAAS6gK,IAAIt0L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAyB,IAAvB,KAAK,EAAE,IAAIloF,EAAIrlC,EAAE,EAAEiqD,EAAE,EAAMsjE,EAAE,IAAI70F,EAAIl4B,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEltH,GAAGwsO,IAAIhtO,CAAC,EAAEupC,EAAI,KAAK,EAAEvpC,CAAC,EAAEG,GAAGH,EAAE,EAAEoqD,GAAGpqD,EAAE,EAAK,KAAK,EAAE,EAAE,OAAO,IAAGA,EAAE6jD,EAAGo4B,GAAI,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE97E,GAAGH,EAAE,EAAEoqD,GAAGpqD,EAAE,GAAEG,GAAG,EAAEiqD,GAAG,EAAEh2B,EAAE,EAAGj0B,EAAEggE,GAAGz8D,EAAK,KAAK,KAAKvD,EAAEi0B,CAAC,CAAC,EAAIg2B,EAAE+V,GAAGz8D,EAAK,KAAK,KAAK0mD,EAAEh2B,CAAC,CAAC,EAAG,KAAK,EAAE,IAAIonD,GAAIr7E,EAAEiqD,CAAC,CAAC,CACvS,SAASmkK,IAAI5tN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAuL,IAArLslK,EAAEp7G,EAAKh2B,EAAE,GAAGA,EAAE,GAAGh0B,EAAEyjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAExzB,EAAER,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEolK,GAAO5kK,EAAEwzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEqxI,EAAEtlK,EAAKK,EAAE,GAAGA,EAAE,GAAGJ,EAAEyjD,EAAGgwD,GAAIlzG,EAAE,EAAEH,EAAE,CAAC,EAAE,EAAE,EAAE+kK,EAAEnlK,EAAE,EAAE,EAAE,EAAEqlK,GAAOF,EAAE/kK,EAAE,EAAE,EAAEuqN,EAAExlD,EAAE3kK,EAAEL,EAAEmD,EAAK,KAAK,IAAI,EAAE+hK,EAAED,CAAC,EAAEF,EAAEylD,EAAExqN,EAAED,EAAEM,EAAE0kK,EAAMI,EAAEF,EAAEE,EAAED,EAAE,EAAEC,EAAGh4C,EAAE7pE,EAAG7jD,EAAE,GAAG0lK,CAAC,EAAE,GAAG,EAAExlK,EAAEwtH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEptH,EAAEJ,EAAE,EAAEI,GAAGglK,CAAE,CACvS,SAAS9C,GAAI7hK,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAoD,IAAlDF,EAAE/kK,EAAE,EAAE,OAAOR,IAAIW,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,OAAO,GAAG,CAAC,GAAOs5F,EAAEvtH,EAAE,EAAEi0B,EAAE,OAAO,EAAEj0B,EAAEutH,EAAEt5F,EAAE,OAAOs5F,GAAG,EAAEA,GAAGvtH,EAAE,EAAE,GAAG,CAA8F,IAA7FmlK,EAAElxI,EAAEs5F,CAAC,EAAEntH,EAAE6pD,IAAIq1C,EAAG,EAAGsE,IAAK5jG,EAAEghL,GAAI7b,EAAEl7G,CAAC,EAAEggH,GAAG+W,GAAI7b,EAAEl7G,CAAC,CAAC,EAAEjqD,EAAEiqK,GAAG+W,GAAI7b,EAAEl7G,CAAC,CAAC,EAAE+2H,GAAI7b,EAAEl7G,CAAC,EAAEpqD,IAAIW,EAAE,EAAE2kK,EAAE,CAAC,EAAE/kK,EAAE,GAAE,GAAQklK,EAAEllK,EAAE,GAAI,EAACklK,EAAE,GAAE,GAAKD,EAAE3hH,EAAG4hH,EAAE,GAAE,EAAG,EAAE,EAAE9kK,EAAE,EAAE6kK,EAAE,CAAC,EAAED,IAAIj9C,GAAI9nH,EAAED,CAAC,CAAC,CAAC,CACvS,SAAS0sO,IAAItsO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAiK,IAA/JxlK,EAAE6zC,EAAImnC,EAAGr6E,EAAE,EAAE,GAAI,EAAC,GAAI,CAAA,CAAC,EAAE4kK,EAAE1xH,EAAImnC,EAAGwyF,IAAGp5I,EAAE,CAAC,CAAC,CAAC,EAAEg2B,EAAEujB,GAAIvD,GAAIzpE,EAAE,CAAC,EAAE4kK,EAAE/kK,CAAC,EAAEL,EAAEwtE,GAAIvD,GAAIh2C,EAAE,CAAC,EAAE5zB,EAAER,CAAC,EAAEwlK,EAAEzkF,GAAI32B,EAAEjqD,CAAC,EAAEwtE,GAAI63F,EAAE,GAAGD,EAAEvlK,EAAE,EAAE,KAAK,EAAEwlK,EAAE,KAAK,EAAE,IAAIhgI,EAAI8/H,EAAE,GAAK53C,EAAE/sH,EAAE,EAAE,GAAE,EAAG+sH,EAAE,KAAWA,EAAE,MAAMntH,EAAEszC,EAAImnC,EAAG0yC,EAAE,GAAE,CAAE,CAAC,EAAK43C,GAAG/kK,EAAEC,EAAEg3M,KAAK,KAAK,EAAE,GAAGh3M,CAAC,EAAE8kK,EAAE,IAAM,KAAK,EAAE,GAAG/kK,CAAC,EAAE+kK,GAAG,KAAK,EAAE,GAAG9kK,CAAC,CAAC,CACvS,SAAS0sO,IAAIvsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAa,GAAXgtO,IAAIxsO,EAAEA,EAAE,CAAC,EAAKA,EAAE,EAAE,EAAE,OAAO,EAAE,CAAU,IAAT6zC,GAAI7zC,EAAE,CAAC,EAAQo3N,GAAIp3N,EAAEkjD,EAAGyhF,EAAI,IAAIzsG,EAAIl4B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAEA,EAAE,EAAE,EAAE,EAAE,QAAO,CAA0C,IAAzCyzB,EAAEk0K,IAAI3nM,CAAC,EAAER,EAAEi0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,IAAIj0B,EAAE,CAACA,GAAOiqD,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAE5pD,EAAE,IAAIA,EAAE,GAAGL,GAAGq0C,GAAI7zC,EAAE,CAAC,CAAC,CAAC6zC,GAAI7zC,EAAE,CAAC,EAAE+vN,GAAI/vN,EAAEkjD,EAAGyhF,EAAI,IAAIzsG,EAAIl4B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAEysO,IAAIzsO,CAAC,CAAC,CAAC,CACxS,SAAS02N,IAAI12N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,IAAIvtH,EAAE0jD,EAAGgwB,GAAGlzE,EAAE,GAAGwtF,GAAK,EAAC0vD,GAAK,EAAC,EAAE,EAAE,GAAI,EAAC19I,EAAE,GAAI,GAA2E,OAAxEiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAEK,EAAEqjD,EAAGo4B,GAAI7xB,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAEpqD,EAAE,IAAI8lF,GAAI17B,EAAE,CAAC,EAAEue,GAAI3oE,EAAE,IAAIwX,GAAG,EAAS4c,EAAE,EAAC,CAAE,IAAK,GAAEklF,GAAI34G,EAAEX,EAAEQ,GAAG+tF,KAAM8wC,IAAK,CAAC,EAAE,MAAM,IAAK,GAAE3R,EAAEq3G,IAAI/kO,CAAC,EAAEs5G,GAAI34G,EAAE,IAAIy6H,GAAIp7H,EAAE,EAAE0tH,CAAC,EAAEltH,GAAG+tF,KAAM8wC,IAAK,CAAC,EAAE/lB,GAAI34G,EAAE,IAAIy6H,GAAIp7H,EAAE0tH,EAAE1tH,EAAE,EAAE,MAAM,EAAEQ,EAAE6+H,GAAI,CAAC,CAAE,CAAE,CACxS,SAAS9/E,IAAI5+C,EAAEyzB,EAAE,CAACotF,KAAM,IAAIhhH,EAAE4pD,EAAsB,GAApB5pD,EAAEm6I,GAAI98F,GAAG,EAAGzpB,EAAE,GAAE,CAAE,EAAK5zB,EAAE,CAAO,GAAN4pD,EAAE5pD,EAAE,EAAK0rE,EAAGvrE,EAAE,GAAG,EAAG,OAAO02H,IAAIxzE,EAAGljD,EAAE,EAAE,CAAC,EAAE+tD,GAAItE,GAAGgxC,GAAK,EAACugD,GAAG,GAAIjtF,GAAItE,EAAEsxF,EAAG,EAAEhtF,GAAItE,GAAGgxC,GAAG,EAAGugD,GAAG,EAAQ,GAAGzvE,EAAGvrE,EAAE,GAAG,EAAG,OAAO+tD,GAAItE,GAAGgxC,KAAMwgD,GAAK,EAAM,GAAG1vE,EAAGvrE,EAAE,GAAG,EAAG,OAAO+tD,GAAItE,GAAGgxC,GAAG,EAAGygD,KAAW,GAAG3vE,EAAGvrE,EAAE,GAAG,EAAG,OAAO+tD,GAAItE,GAAGgxC,GAAK,EAAC0gD,GAAK,CAAC,CAAC,MAAO,EAAI,CACxS,SAASuxF,IAAI1sO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAe,GAAbJ,EAAEK,EAAER,EAAEG,EAAE,GAAI,EAAI2gK,GAAIngK,EAAE,EAAEX,CAAC,GAAG,GAAGA,EAAE,MAAoB,IAAdoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP43C,EAAEl7G,EAAEsjE,CAAC,EAAK7oE,GAAGygH,EAAEnlK,CAAC,GAAGutH,GAAGt5F,EAAG,MAAMiS,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,OAA0C,KAAhCljL,EAAE6nK,GAAIznK,EAAE,EAAE,GAAI,EAACX,CAAC,EAAEoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP43C,EAAEl7G,EAAEsjE,CAAC,EAAKntH,EAAE,GAAG+kK,EAAE,IAAI,GAAG53C,GAAGt5F,EAAG,MAAMiS,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAI,OAAOhjL,EAAGi6I,GAAIn9L,EAAEyzB,EAAE5zB,CAAC,EAAE,EAAE,CAAC,CACxS,SAASqxC,IAAGuY,EAAEh2B,EAAE,CAAC,GAAGA,aAAa,OAAQ,GAAG,CAAsB,GAArBA,EAAE,iBAAiBg2B,EAAK,UAAU,UAAU,YAAa,EAAC,QAAQ,MAAM,GAAG,IAAI,KAAK,aAAa,EAAG,OAAO,IAAI5pD,EAAE4pD,EAAE,OAAO,iBAAiBh2B,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAIzzB,EAAEH,EAAE,GAAE,EAAG,OAAOG,GAAGA,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,OAAOH,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,MAAS,CAAE,CAAC,CACzS,SAAS0+I,IAAIv+I,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAe,GAAbtjE,EAAEh2B,GAAG,EAAEA,GAAG,GAAMg2B,GAAGzpD,EAAE,EAAG,OAAOA,EAAE,EAAE,GAAG6jE,KAAMu4G,KAAMv4G,GAAK,EAACovF,IAAuD,GAAlD5zJ,EAAEW,EAAE,EAAEypD,EAAEjqD,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAG90H,EAAE,EAAE,GAAG,CAAC,EAAE0nN,IAAIvnN,EAAEH,EAAEW,EAAE,EAAEypD,EAAEh2B,CAAC,EAAKzzB,EAAE,EAAE,EAAE,CAAC,IAAIH,EAAE,EAAEA,EAAE4pD,GAAGzpD,EAAE,EAAEH,CAAC,GAAG,EAAEA,IAAI,CAAC,GAAGA,EAAE4pD,GAAGh2B,EAAE,GAAGzzB,EAAE,EAAEH,CAAC,GAAG,GAAG4zB,EAAK,CAAC,IAAI5zB,EAAE,EAAEA,EAAER,GAAGG,EAAEK,CAAC,GAAG,GAAGA,IAAKL,EAAEK,CAAC,EAAE,EAAEA,GAAGR,GAAG,EAAEA,EAAE,EAAEG,EAAEK,CAAC,CAAC,CAAC,CAAC,OAAAktH,EAAE,IAAI5X,GAAIn1G,EAAE,EAAEX,EAAEG,CAAC,EAAEkpI,GAAI3b,CAAC,EAASA,CAAC,CACzS,SAAS4/G,IAAI3sO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAAA,EAAEklE,GAAI1kE,CAAC,EAAEH,EAAE,IAAI26B,IAAIh7B,CAAC,EAAEiqD,EAAE,IAAIhvB,IAAIj7B,CAAC,EAAEi0B,EAAE,IAAIoR,EAAI8iF,GAAIl0F,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAG2nH,GAAIl0F,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAUkjD,EAAGm0F,GAAI5+B,GAAIkL,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,CAAC,EAAE5zB,CAAC,EAAE4pD,CAAC,EAAEglG,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAACg1C,IAAKD,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzS,SAASoxG,IAAI5sO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA0B,GAAxB+kK,GAAGn5G,KAAMtI,EAAGzvB,EAAE,EAAE,EAAE,MAAS0sI,GAAIngK,EAAE,EAAEyzB,CAAC,GAAG,GAAGA,EAAE,GAAE,GAAIshH,GAAI/0I,EAAEyzB,EAAEg2B,EAAE8hB,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,EAAG,MAAMl0C,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,MAAwC,KAAhCljL,EAAE6nK,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAEj0B,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAI,CAAA,EAAG,MAAMqmC,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAIhtJ,GAAIl5E,EAAE00J,GAAI10J,EAAEyzB,EAAE5zB,CAAC,EAAE8kK,EAAEzhH,EAAGuG,EAAE,EAAE,EAAEksF,GAAIliH,EAAEg2B,CAAC,CAAC,CAAC,CACzS,SAAS02G,GAAIngK,EAAEyzB,EAAE,CAAC+3B,KAAM,IAAI3rD,EAAE4pD,EAAEjqD,EAAE,OAAGi0B,EAAE,GAAE,EAAW,GAAaA,EAAE,MAAM,GAAOA,IAAI+gM,GAAK,EAACC,KAAMhhM,GAAGihM,IAAKjhM,GAAGkhM,IAAKlhM,GAAGmhM,GAAY,IAAUp1N,EAAEQ,EAAE,GAAE,EAAMujJ,GAAI/jJ,EAAEi0B,CAAC,GAAG,EAAU,IAAW5zB,EAAE8zK,IAAKozB,GAAK,EAACC,IAAKxnM,EAAEi0B,CAAC,EAAM5zB,GAAoB4pD,EAAE5pD,EAAE,GAAI,GAAS4pD,EAAE,GAAGA,GAAG,KAAK81D,GAAI0vC,GAAI+3C,GAAInnM,CAAC,CAAC,GAAG,GAAzD,KAA0E,EAAM,CACzS,SAASgtO,IAAI7sO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAmJ,OAAjJ+kK,EAAEgxC,GAAIzyJ,EAAGwpG,GAAK,CAACj5H,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE7zB,EAAE+1M,GAAIzyJ,EAAGwpG,GAAK,CAACj5H,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAK4yE,GAAIs+D,CAAC,GAAGt+D,GAAIzmG,CAAC,GAAkB6kE,GAAI7kE,EAAE+kK,CAAC,EAAU,MAAK53C,EAAEiJ,GAAIviG,CAAC,EAAKs5F,GAAGltH,EAAU4pD,GAAOpqD,EAAE6jD,EAAGgwD,GAAIlzG,EAAE,EAAE+sH,CAAC,EAAE,EAAE,EAAK1tH,IAAGG,EAAEH,EAAE,EAAKG,GAAUA,EAAW,MAAI,CAC1S,SAASstO,IAAI9sO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAuE,OAArEA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGwiK,GAAK,EAAC,GAAG,EAAElkE,GAAIn4F,EAAE,yBAAyB5zB,EAAE,IAAI,CAAC,EAASA,EAAE,EAAC,CAAE,IAAK,GAAE63N,IAAI13N,GAAGm9F,GAAG,EAAGu1C,GAAG,EAAG,MAAM,IAAK,GAAEglF,IAAI13N,GAAGm9F,GAAG,EAAGw1C,GAAK,EAAC,MAAM,IAAK,GAAEo6F,IAAI/sO,GAAGm9F,GAAK,EAACu1C,GAAG,EAAG,MAAM,IAAK,GAAEq6F,IAAI/sO,GAAGm9F,GAAK,EAACw1C,GAAK,EAAC,MAAM,IAAK,GAAEq6F,IAAIhtO,GAAGm9F,GAAG,EAAGu1C,GAAK,EAAC,MAAM,IAAK,GAAEs6F,IAAIhtO,GAAGm9F,KAAMw1C,GAAK,CAAC,CAAC9mB,GAAIp4F,CAAC,CAAC,CAC1S,SAASgwJ,GAAIzjL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA2B,GAAzB6pD,EAAE7Q,IAAI/4C,EAAEG,EAAE,MAAM,EAAE+sH,EAAE/sH,EAAEypD,CAAC,EAAKsjE,EAAE,CAAC,EAAE,IAAIpiC,KAAMi0D,IAAqC,IAAxBv/I,EAAEs5C,IAAI94C,EAAEktH,EAAE,MAAM,EAAEntH,EAAE6zB,EAAE,EAAMj0B,EAAE,EAAEA,EAAEI,EAAE,EAAE,OAAOJ,IAAKmlK,GAAG9nG,GAAIr9D,EAAEI,EAAE,EAAE,MAAM,EAAEsjD,EAAGtjD,EAAE,EAAEJ,CAAC,EAAE,EAAE,IAAOK,EAAE8kK,EAAE,IAAI7lE,IAAMsE,IAAKuhE,EAAE,IAAI7lE,EAAK,EAACmE,MAAOhwD,GAAImnC,GAAGwuC,EAAI+7C,GAAGz6C,EAAG,EAAGm7G,GAAG,CAAE,CAAC,IAAGvvH,GAAIl2G,EAAEJ,EAAE0jD,EAAG0lE,EAAImE,EAAE1tH,CAAC,GAAG6qH,EAAK,EAAC+jC,GAAK,EAAC,EAAE,CAAC,EAAE5uJ,GAAGQ,EAAE,EAAE,GAAI,CAC1S,SAASotO,IAAIjtO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEA,EAAE,IAAIloF,EAAIhlC,EAAE4zB,EAAE,GAAGp0B,EAAE6jD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,GAAG,EAAER,EAAE,EAAEQ,EAAE,EAAER,EAAE,EAAEQ,EAAE,EAAEktH,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE1tH,EAAEQ,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,QAAQA,GAAG,OAAA4pD,GAAGoT,GAAI,EAAEkwD,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAGtjE,EAAE,EAAE,GAAKA,EAAE,EAAEvG,EAAGuG,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAAC,GAAI,EAAC,EAAE,EAAE,EAAE,EAAEjqD,EAAE0jD,EAAGo4B,GAAIyxC,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEvtH,EAAE,EAAE,GAAKA,EAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAAC,GAAI,EAAC,EAAE,EAAE,EAAE,EAASutH,CAAC,CAC1S,SAASmgH,IAAIltO,EAAE,CAAC,GAAGA,EAAE,GAAG,KAAM,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAEA,EAAE,EAAEm3H,IAAIn3H,CAAC,GAAGowE,GAAG,EAAGE,KAAMF,GAAG,EAAGC,IAAK,MAAM,IAAK,GAAErwE,EAAE,EAAEyyJ,GAAIne,IAAIt0I,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEquK,GAAIjqC,IAAIpkI,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEi/G,IAAIj/G,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,IAAIo3B,GAAI4nF,IAAIh/G,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE8qG,GAAIoU,IAAIl/G,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEutI,EAAIra,IAAIlzH,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE2iL,GAAIluC,IAAIz0I,CAAC,CAAC,CAAE,CAAE,OAAOA,EAAE,CAAC,CAC1S,SAASmtO,GAAIntO,EAAE,CAAC,GAAGA,EAAE,GAAG,KAAM,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAEA,EAAE,EAAEo3H,IAAIp3H,CAAC,GAAGowE,GAAG,EAAGE,KAAMF,GAAG,EAAGC,IAAK,MAAM,IAAK,GAAErwE,EAAE,EAAEyyJ,GAAIle,IAAIv0I,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEquK,GAAIhqC,IAAIrkI,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEo/G,IAAIp/G,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,IAAIo3B,GAAIioF,IAAIr/G,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE8qG,GAAIqU,IAAIn/G,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAEutI,EAAIpa,IAAInzH,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE2iL,GAAInuC,IAAIx0I,CAAC,CAAC,CAAE,CAAE,OAAOA,EAAE,CAAC,CAC1S,SAASikM,IAAIjkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAItlK,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,GAAE,EAAG,IAAIjqD,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAMK,EAAE4pD,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAAC5pD,EAAE,MAAuB,IAAhB4zB,EAAEyvB,EAAGrjD,EAAE,KAAK,EAAE,EAAM8kK,EAAElxI,EAAE,EAAE,GAAE,EAAGkxI,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAK53C,EAAE,GAAGtjE,IAAGzgB,GAAIygB,EAAE,EAAEsjE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAK,CAC3S,SAAShxC,IAAI/7E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAiB,GAAfA,EAAEvsD,GAAIp4G,EAAE,EAAEyzB,EAAE,CAAC,EAAK,CAACkxI,EAAG,MAAMj/H,EAAI,IAAIoN,GAAI,oDAAoD,CAAC,EAAU,IAARi6E,EAAE,GAAU1tH,GAAGoqD,EAAE,IAAIg2B,GAAK,IAAIlN,GAAK,IAAI96C,GAAIz3B,EAAE,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,IAAI03B,GAAI+xB,CAAC,GAAG0C,GAAI9sD,EAAE,EAAE,CAAC,GAAiC,GAA7BG,GAAGK,EAAE61E,GAAIr2E,EAAE,CAAC,EAAE6jD,EAAGrjD,EAAE,KAAK,EAAE,GAAMyxK,IAAI79I,EAAE,EAAEj0B,CAAC,EAAG46C,IAAIp6C,EAAE,EAAE,EAAEyzB,EAAE,EAAEj0B,CAAC,EAAEutH,EAAE,WAAaA,EAAG,KAAQ,CAC3S,SAASg+G,IAAI/qO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEG,EAAE0jD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG8/M,GAAG,EAAG,EAAE,EAAE/tO,EAAE6jD,EAAG0lE,EAAI5oH,EAAEqtO,EAAG,EAAE,EAAE,EAAExtO,EAAE,IAAIu1D,GAAIp1D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEyzB,EAAE,IAAI2kB,GAAIv4C,CAAC,EAAKL,EAAE,IAAIo8E,KAAM02D,OAAO7oF,EAAEvG,EAAG0lE,EAAI5oH,EAAEstO,EAAG,EAAE,CAAC,EAAKjuO,EAAE,IAAIq/F,KAAM++D,OAAOh0G,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAIA,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAIh2B,EAAE,EAAE1wB,EAAK,KAAK,IAAIlD,EAAE,EAAE4pD,EAAE,CAAC,EAAEh2B,EAAE,EAAE1wB,EAAK,KAAK,IAAIlD,EAAE,EAAE4pD,EAAE,CAAC,GAAE8jL,IAAIvtO,EAAEH,EAAE4zB,CAAC,CAAC,CAC3S,SAASgvM,IAAIziO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEvlK,EAAEi0B,EAAE,IAAIzb,IAAI,IAAIC,IAAI5Y,EAAE,GAAM,EAA2B,KAAxBA,EAAE,GAAMulK,EAAEnxI,EAAEg2I,GAAGzpK,EAAE,CAAC,EAAEA,EAAE,EAAMJ,EAAEglK,EAAE,GAAI,EAAChlK,EAAE,GAAI,GAA0C,IAAvC+kK,EAAEzhH,EAAGtjD,EAAE,GAAI,EAAC,EAAE,EAAEmlK,EAAE//B,GAAG2/B,EAAE,CAAC,EAAElxI,GAAG,IAAI2c,GAAG20H,CAAC,EAAMD,EAAE,IAAI5sI,EAAI6sI,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,EAAE,EAAKtlK,EAAE,GAAGqlK,CAAC,IAAGp7G,EAAEo7G,EAAEhlK,EAAEqjD,EAAG0lE,EAAIi8C,GAAG36C,EAAK,EAAC0pC,GAAK,EAAC,GAAG,EAAE7mC,EAAEt5F,EAAE5zB,EAAE,EAAEA,EAAE,EAAER,EAAEmuO,IAAI/jL,EAAEsjE,EAAEt5F,EAAE,EAAK,SAAWp0B,EAAE,CAC3S,SAASouO,IAAIztO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAuF,IAArF/4C,GAAI/rH,EAAE,wBAAwB,CAAC,EAAEG,EAAE,EAAEyzB,EAAEkxI,EAAE3kK,EAAE,EAAE,EAAEA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGwwC,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEl7G,EAAE,EAAMsjE,EAAE,IAAI70F,EAAIysI,CAAC,EAAE53C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEvtH,EAAE,EAAEiqD,EAAEzpD,EAAE,EAAEypD,CAAC,EAAE,GAAG,EAAEA,EAAE,IAAIpqD,EAAE,IAAI64B,EAAIysI,CAAC,EAAEtlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEq/N,IAAI1+N,EAAER,CAAC,EAAEmlK,EAAE,EAAE1gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CAC3S,SAAS6tO,IAAI1tO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEi0B,EAAE,GAAG2kF,GAAIp4G,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEyvB,EAAGq/B,GAAIviF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAE5zB,EAAEqjD,EAAGo/B,GAAItiF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAI5zB,IAAIG,EAAE,EAAEH,EAAE,CAAC,EAAE4zB,EAAE,KAAeg2B,EAAEvG,EAAGq/B,GAAIviF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAIg2B,GAAGA,GAAGzpD,EAAE,EAAEyzB,EAAE,EAAE,CAAC,GAAKg2B,EAAE,GAAGA,EAAE,GAAGh2B,EAAE,EAAE,GAAGg2B,EAAE,EAAE,GAAGh2B,EAAE,CAAC,EAAEj0B,EAAE0jD,EAAGo/B,GAAItiF,EAAE,EAAEyzB,EAAE,CAAC,EAAE,EAAE,EAAIj0B,GAAGQ,EAAE,EAAER,EAAE,CAAC,GAAGi0B,EAAE,GAAKj0B,EAAE,GAAGA,EAAE,GAAGi0B,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,GAAGj0B,CAAC,EAAE+xE,GAAIvxE,EAAE,EAAEyzB,EAAE,CAAC,EAAY,CAC5S,SAAS4tM,IAAIrhO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAAtlK,EAAEW,EAAE,EAAE2kK,EAAEzxH,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAG8nI,GAAG,CAAE,CAAC,EAAKuP,EAAE,IAAGA,EAAE,EAAE7hF,EAAI9iF,EAAEo1J,GAAIuP,CAAC,GAAElxI,EAAE,EAAE,EAAEkxI,EAAE53C,EAAEhqH,EAAK,KAAK,MAAM4hK,EAAE,CAAC,EAAEl7G,EAAE,IAAI+tJ,GAAI9wK,GAAI+iB,GAAGq1C,EAAK,EAACmE,GAAG,EAAG9oD,GAAIsP,EAAEh2B,CAAC,EAAEg2B,EAAE,EAAE,EAAEsjE,EAAEvtH,EAAE,IAAIg4M,GAAI9wK,GAAIlnC,EAAE4jG,EAAG,EAAEjpD,GAAI36C,EAAEi0B,CAAC,EAAEj0B,EAAE,EAAE,EAAEutH,EAAEjjD,GAAI9pE,EAAEypD,CAAC,EAAE5pD,EAAE,IAAI0rH,GAAIuzB,GAAIj/I,EAAEG,CAAC,EAAE8iF,EAAIjjF,EAAEk/I,GAAI,IAAI,EAAEl1E,GAAIhqE,EAAEL,CAAC,EAAEsqE,GAAIjqE,EAAER,CAAC,EAAEsuO,IAAIl6M,EAAEzzB,EAAEH,CAAC,EAAE4sN,IAAIzsN,EAAEH,CAAC,EAASA,CAAC,CAC5S,SAAS+tO,IAAI5tO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAAA,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACu0D,GAAK,EAAC,EAAE,EAAEhrJ,EAAE,IAAI20B,GAAOvoD,EAAE,IAAImwF,GAAG,EAAG21E,GAAG,IAAInlG,GAAI/sC,EAAEo6M,GAAG,EAAErtK,GAAI/sC,EAAEq6M,GAAG,IAAKjuO,EAAE,GAAGgmK,EAAG,GAAG5yH,GAAImnC,GAAGwuC,EAAI5oH,GAAGstB,KAAMygN,IAAK,CAAC,KAAGvtK,GAAI/sC,EAAEq6M,GAAG,EAAEjuO,EAAE,GAAGimK,EAAG,GAAGtlG,GAAI/sC,EAAEu6M,GAAG,GAAEnuO,EAAE,GAAG6lK,EAAG,GAAGllG,GAAI/sC,EAAEw6M,GAAG,EAAEpuO,EAAE,GAAGkmK,EAAG,GAAGvlG,GAAI/sC,EAAEy6M,GAAG,EAAEruO,EAAE,GAAG+lK,EAAG,GAAGplG,GAAI/sC,EAAE06M,GAAG,EAAEtuO,EAAE,GAAGmmK,EAAG,GAAGxlG,GAAI/sC,EAAE26M,GAAG,EAAEvuO,EAAE,GAAGomK,EAAG,GAAGzlG,GAAI/sC,EAAE46M,GAAG,EAAS56M,CAAC,CAC5S,SAAS+1M,IAAIxpO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAoC,OAAlCt7G,EAAEzpD,EAAE,EAAEX,EAAEo0B,EAAE,EAAEkxI,EAAEl7G,EAAEpqD,EAAEO,EAAEI,EAAE,GAAGyzB,EAAE,EAAE,GAAG,EAAKkxI,GAAG,GAAGE,EAAE9O,GAAIl7B,GAAI76H,EAAE,EAAE,CAAC,EAAEy3K,EAAG,EAAE58C,GAAIpnG,EAAE,EAAE,CAAC,EAAEgkJ,EAAG,CAAC,EAAE1S,EAAE93D,GAAI43D,CAAC,EAAEC,EAAE73D,GAAIyE,GAAImzD,EAAE,EAAE,CAAC,EAASC,GAAG,EAAE,IAAI7iB,GAAIriJ,EAAEmlK,CAAC,EAAE,IAAI5vD,GAAIv1G,EAAE,EAAEs5G,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC4wC,EAAED,CAAC,CAAC,CAAC,IAAEjlK,EAAEG,EAAE,EAAER,EAAEi0B,EAAE,EAAEs5F,EAAE9oD,EAAG4gD,GAAGsP,GAAI,GAAGwwC,EAAE,GAAG,CAAC,EAAE8c,IAAI5hL,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAE63C,EAAE,IAAIzvD,GAAIv1G,EAAE+kK,EAAE53C,CAAC,EAAE2b,GAAIk8B,CAAC,EAASA,EAAC,CAC7S,SAASiO,IAAI7yK,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE,GAAIo0B,EAAgB,CAAmB,GAAlBj0B,EAAEQ,EAAE,EAAE,GAAGH,EAAE,EAAE4zB,EAAE,CAAC,EAAKj0B,GAAG,EAAG,OAAAiqD,EAAE,EAAEw0B,GAAIxqD,EAAE5zB,EAAE,CAAC,EAAE4pD,EAAE,EAAE,GAAYh2B,EAAEp0B,EAAEG,EAAE,EAAE,EAAE,EAAEi0B,EAAE,EAAEp0B,CAAC,EAAEwzK,IAAI7yK,EAAEyzB,EAAE,EAAEp0B,CAAC,EAAEQ,EAAE4pD,CAAC,EAAKlW,GAAI9f,EAAE,EAAEp0B,CAAC,CAAC,IAAMk0C,GAAI9f,EAAE,EAAE,EAAEp0B,CAAC,CAAC,GAAGo0B,EAAE,EAAE,GAAKA,EAAE,EAAE,CAAC,EAAE,EAAE,GAAMA,EAAE,EAAE,CAAC,EAAE,EAAE,IAAW8f,GAAI9f,EAAE,EAAEp0B,CAAC,EAAE,EAAEA,CAAC,CAAC,EAAGo0B,EAAEo2G,GAAIp2G,EAAE,EAAEp0B,CAAC,EAAGk0C,GAAI9f,EAAE,EAAEp0B,CAAC,EAAE,EAAE,EAAEA,CAAC,CAAC,IAAIo0B,EAAEm2G,IAAIn2G,EAAE,EAAEp0B,CAAC,GAAI,KAA/P,QAAOQ,EAAyP,OAAO4zB,CAAC,CAC7S,SAAS66M,IAAItuO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEvtH,EAAEQ,EAAE,EAAEypD,EAAEzpD,EAAE,EAAEo/I,GAAIp/I,GAAGynF,GAAG,EAAGm0C,IAAKp8H,EAAE,EAAEiqD,EAAE,EAAE5pD,CAAC,EAAEu/I,GAAIp/I,EAAE87H,GAAIt8H,EAAE,EAAEA,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,CAAC,EAAEA,CAAC,EAAEktH,EAAEvtH,EAAE,EAAEiqD,EAAE,EAAEA,EAAE,EAAK5pD,EAAE,CAAC,EAAE,IAAGA,EAAE,CAAC,GAAGG,EAAE,EAAE+sH,GAAGltH,EAAE,CAAC,GAAKA,EAAE,CAAC,EAAE,IAAGA,EAAE,CAAC,GAAGG,EAAE,EAAE+sH,GAAGltH,EAAE,CAAC,GAAER,EAAE0D,EAAK,KAAK,IAAI,EAAEgqH,CAAC,EAAEltH,EAAE,CAAC,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,CAAC,EAAEktH,CAAC,EAAEqyB,GAAIp/I,EAAE67H,GAAIr8H,EAAE,EAAEiqD,EAAE,EAAE5pD,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAEktH,GAAG,EAAEltH,CAAC,EAAK4zB,GAAGooG,KAAK77H,EAAE,EAAE,EAAEX,EAAEW,EAAE,EAAE,EAAER,EAAE,EAAEiqD,EAAE,GAAGpqD,EAAE0tH,GAAG,EAAE,CAC7S,SAASwhH,KAAK,CAAC,KAAK,EAAEtqK,EAAG8pF,GAAGC,GAAI,IAAIlvD,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEh/B,EAAG8pF,GAAGC,GAAI,GAAG90C,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAEh/B,EAAG8pF,GAAGC,GAAI,GAAG90C,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE51C,GAAI,KAAK,EAAE8pD,EAAG,EAAE9pD,GAAI,KAAK,EAAEgqD,EAAG,EAAEhqD,GAAI,KAAK,EAAEgqD,EAAG,CAAC,CAC7S,SAAS05E,GAAI/wL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAoC,GAA/Bt5F,GAAG5zB,GAAGL,EAAEi0B,EAAEp0B,EAAEQ,IAAOL,EAAEK,EAAER,EAAEo0B,GAAEg2B,EAAE,EAAKzpD,EAAE,GAAG,KAAMA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG,EAAE,GAAG,CAAC,EAAEn0H,EAAE,EAAE,CAAC,EAAER,EAAEQ,EAAE,EAAE,CAAC,EAAEX,EAAEW,EAAE,EAAE,OAAS,CAAc,GAAbypD,EAAEzpD,EAAE,EAAE,OAAUA,EAAE,EAAEypD,EAAE,CAAC,EAAE,GAAGjqD,EAAE,CAACQ,EAAE,EAAEypD,EAAE,CAAC,EAAEpqD,EAAE,MAAM,CAAC0tH,EAAE9oD,EAAG4gD,GAAGsP,GAAI,GAAG1qE,EAAE,EAAE,GAAG,CAAC,EAAE2qF,GAAIp0I,EAAE,EAAE,EAAE+sH,EAAE,EAAEtjE,CAAC,EAAEzpD,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAEypD,EAAE,CAAC,GAAGjqD,IAAIQ,EAAE,EAAE,GAAMA,EAAE,EAAE,IAAOA,EAAE,EAAEypD,GAAG,EAAEjqD,EAAEQ,EAAE,EAAEypD,CAAC,EAAEpqD,EAAEW,EAAE,GAAG+9N,GAAI/9N,CAAC,CAAC,CAAC,CAC7S,SAASi5N,IAAIj5N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA4C,IAA1CA,EAAEnxI,EAAE,EAAEzzB,EAAE,EAAE,IAAI+0E,GAAI6vF,EAAE,EAAE,MAAM,EAAE5kK,EAAE,EAAE,IAAI+kC,GAAQ4/H,EAAE,IAAIzsI,EAAI0sI,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEtlK,EAAE,IAAIitK,GAAI,IAAI,EAAE1jI,EAAI5oC,EAAE,EAAEX,CAAC,EAAEm6D,GAAIx5D,EAAE,EAAE+sH,EAAE1tH,CAAC,EAAuB,IAArBW,EAAE,EAAE,IAAI+kC,GAAImoL,IAAIltN,EAAEyzB,CAAC,EAAMg2B,EAAE,EAAEA,EAAEm7G,EAAE,EAAE,OAAO,EAAEn7G,IAA0B,IAArB7pD,EAAEsjD,EAAGo4B,GAAI7nD,EAAE,EAAEg2B,CAAC,EAAE,GAAG,EAAMjqD,EAAEiqD,EAAE,EAAEjqD,EAAEolK,EAAE,EAAE,OAAOplK,IAAKulO,IAAI/kO,EAAEJ,EAAEsjD,EAAGo4B,GAAI7nD,EAAE,EAAEj0B,CAAC,EAAE,GAAG,EAAEK,CAAC,CAAG,CAC9S,SAAS+8N,IAAI58N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAAC6wI,GAAGh9G,CAAC,EAAE,CAA+E,IAA9E7zB,EAAEqnK,GAAIpnK,GAAG0rE,EAAG93C,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAACihH,GAAGjhH,EAAE,GAAE,CAAE,GAAGzzB,EAAE,EAAE,CAAC,EAAE4rH,GAAIhsH,EAAE4uO,IAAI,CAAC,EAAE7pE,EAAE,IAAIzoJ,IAAI6wG,EAAE,EAAM1tH,EAAEo0B,EAAE,GAAI,EAACp0B,EAAE,GAAE,GAAKoqD,EAAEvG,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAEslK,EAAEpJ,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAACwgG,EAAE,IAAI1kI,GAAIwpB,CAAC,CAAC,CAAC,CAAC,EAAEsjE,EAAEtjE,EAAE,EAAE,IAAIsjE,EAAEtjE,EAAE,EAAE,GAAG,IAAIjqD,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEsjF,EAAIr5B,GAAG45H,GAAK,EAACorD,IAAK1hH,CAAC,EAAElB,GAAIjsH,CAAC,EAAEg9N,IAAI58N,EAAE2kK,EAAE9kK,CAAC,CAAC,CAAC,CAC9S,SAASyyM,IAAItyM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAsB,IAApBC,EAAEw3G,GAAIstD,GAAGh6E,GAAG,EAAG0hC,IAAS7sH,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAEoqD,EAAE,EAAKpqD,GAAGgtH,KAAKU,EAAE1yC,EAAGuuC,EAAIn/D,GAAGygE,EAAK,EAACwkH,IAAG,CAAE,EAAK3hH,GAAG,MAAMltH,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,CAAC,EAAE4pD,EAAE,EAAE,EAAE5pD,EAAE2zE,GAAIxzE,EAAE,EAAEX,EAAEslK,CAAC,GAAOl7G,EAAE,EAAE,GAAG34B,GAAIi8F,CAAC,EAAEA,IAAIntH,EAAE4zE,GAAIxzE,EAAE,EAAEX,EAAEslK,CAAC,EAAEl7G,EAAE,EAAE,EAAE5pD,EAAED,EAAE6pD,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE5pD,EAAED,EAAE6pD,EAAE,EAAE,GAAG5pD,EAAE4pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEk7G,EAAEtlK,CAAE,CAC/S,SAASslO,IAAI3kO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAwK,IAAtKzlK,EAAEszN,GAAIl/L,EAAE,GAAM,EAAK,EAAEmxI,EAAE6hD,GAAIpnN,CAAC,EAAEylK,EAAE5xH,EAAImnC,EAAGouC,GAAIh1F,GAAGjJ,GAAK,EAACqvK,GAAG,CAAE,CAAC,EAAEr6L,EAAEmvO,IAAI/pE,EAAEE,EAAE9kK,EAAE,CAAC,EAAE6kK,EAAE,IAAI4yD,GAAIj4N,CAAC,EAAEs/I,GAAI+lB,EAAEpxI,CAAC,EAAE+lC,GAAIx5D,EAAE,EAAEyzB,EAAEoxI,CAAC,EAAEhlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEglK,EAAEjlK,GAAG,CAAC6zB,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIuhC,GAAGjvF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAOkxI,EAAE,IAAIxoG,GAAIv8D,CAAC,EAAE+kK,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGmvG,GAAIsS,CAAC,EAAE,GAAG,EAAEl7G,EAAEmlL,GAAI5uO,EAAE+sH,EAAE,GAAK,EAAE,CAAC,EAAEltH,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE4pD,EAAE,OAAOo7G,CAAC,CAChT,SAASs4C,IAAIn9M,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA6H,GAAzH7kK,EAAE,GAAGA,EAAE,EAAE,GAAGR,CAAC,EAAEH,EAAE6jD,EAAG1jD,EAAE,GAAG,CAAC,EAAE,EAAE,EAAK2/L,IAAIn/L,EAAEH,EAAER,EAAE,EAAK,IAAe0tH,EAAE7pE,EAAG1jD,EAAE,GAAGA,EAAE,GAAI,EAAC,CAAC,EAAE,EAAE,EAAK2/L,IAAIn/L,EAAEypD,EAAEsjE,EAAE,EAAI,IAAkBkyF,GAAIj/M,EAAER,CAAC,EAAG,MAAO,GAAK,IAAIqlK,EAAErlK,EAAE,GAAI,EAACqlK,EAAE,MAAuB,IAAhBD,EAAE1hH,EAAG2hH,EAAE,GAAI,EAAC,EAAE,EAAMjlK,EAAE6zB,EAAE,KAAK7zB,EAAE,GAAE,GAAqB,GAAhB+kK,EAAEzhH,EAAGtjD,EAAE,KAAK,EAAE,EAAKw/L,GAAIp/L,EAAE4kK,EAAED,CAAC,EAAG,MAAO,GAAO,MAAO,EAAK,CACjT,SAASkqE,IAAI7uO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEA,EAAEtxI,EAAE,EAAE,OAAOqxI,GAAGF,EAAE5kK,EAAE,GAAGH,CAAC,EAAEqjD,EAAG0hH,GAAG,EAAE5kK,EAAE,GAAG4kK,EAAE,GAAM,EAAI,EAAE3lB,GAAIj/I,EAAEH,EAAE,EAAK,EAAE,EAAE,GAAG,EAAE,IAAIR,EAAEylK,EAAE,GAAE,EAAGzlK,EAAE,GAAI,GAAE,CAAiB,IAAhBG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAMwlK,EAAE,EAAEA,EAAEE,EAAE,EAAEF,EAAyE,GAAtE93C,GAAGlwD,GAAIgoG,EAAEpxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEoxI,CAAC,EAAE,EAAE,GAAGjlK,EAAEmtH,EAAE,GAAE,EAAG43C,EAAE53C,EAAE,KAAKtjE,EAAEjqD,EAAE,GAAGmlK,EAAE,EAAK,EAAK/kK,GAAG,KAAK6pD,GAAG,KAAK,CAACvF,GAAGtkD,EAAE6pD,CAAC,EAAG,SAAS,EAAG,OAAOjqD,CAAC,CAAC,OAAO,IAAI,CACjT,SAASsvO,IAAI9uO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAsE,IAApEnlK,EAAE0jD,EAAGg8I,GAAIzrK,GAAGqrE,EAAG,EAAGmE,GAAG,EAAG,GAAE,EAAG,GAAE,EAAG,EAAE,EAAE5jG,EAAE6jD,EAAGg8I,GAAIzrK,EAAE2vE,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,EAAE,EAAMuhE,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiB,IAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAQ53C,EAAE,EAAE,EAAE,QAAQ,GAAGjjD,GAAI5mB,EAAGo4B,GAAIyxC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEvtH,CAAC,EAAE,KAAMutH,EAAE,EAAE,EAAE,QAAQ,GAAGljD,GAAI3mB,EAAGo4B,GAAIyxC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE1tH,CAAC,CAAE,CAACQ,GAAGijF,EAAIrvD,GAAGy2F,IAAMkmF,IAAK,IAAI,EAAE3mJ,GAAGq5B,EAAIrvD,GAAGy2F,EAAG,EAAGmmF,IAAK,IAAI,CAAC,CAClT,SAASsiB,GAAI3yN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAE,IAAI,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,OAAOwwK,GAAIxwK,CAAC,EAA6I,GAAtIypD,EAAEvG,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,EAAKyzB,IAAGm3C,IAAK,CAACnhB,EAAE,IAAIA,EAAE,EAAE,IAAIukB,GAAI83G,GAAGr8H,EAAE,CAAC,GAAGA,EAAE,IAAI2Z,GAAI3Z,EAAE,CAAC,EAAE4Z,GAAI5Z,EAAE,CAAC,EAAEwZ,GAAIxZ,EAAE,CAAC,EAAEyZ,GAAIzZ,EAAE,CAAC,GAAK5pD,EAAyC,IAAtCL,GAAG,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAASR,EAAE,EAAE,GAAGioN,GAAIjoN,EAAEA,EAAE,EAAE,CAAC,EAAG,OAAOiqD,CAAE,CAClT,SAASslL,IAAI/uO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAqC,IAAnCgsH,GAAIn4F,EAAE,0BAA0B,CAAC,EAAMp0B,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA2B,IAA1BG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEoqD,EAAE,IAAI5kB,EAAQ8/H,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAEsjD,EAAG0lE,EAAImE,GAAG7C,EAAK,EAAC8kH,GAAG,EAAG,EAAE,EAAEnvO,EAAEqjD,EAAG0lE,EAAImE,EAAEkiH,EAAG,EAAE,EAAE,GAAOrvO,GAAKC,KAAGqvO,IAAIniH,EAAEntH,EAAEC,CAAC,EAAID,GAAG+nH,GAAIl+D,EAAE7pD,CAAC,EAAIC,GAAG8nH,GAAIl+D,EAAE5pD,CAAC,GAAG8nH,GAAInoH,EAAE,EAAEiqD,CAAC,CAAC,CAACoiE,GAAIp4F,CAAC,CAAC,CACnT,SAASu5M,IAAIhtO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAY,IAAVC,EAAE,IAAI8kC,GAAQtlC,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA4B,IAA3BG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEO,EAAE,GAAK6pD,EAAE,EAAMk7G,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,OAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAS53C,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,EAAEtjE,EAAE,IAAK,GAAEonF,GAAIhxI,EAAEktH,CAAC,EAAE,MAAM,IAAK,GAAEu/F,IAAIv/F,EAAEt5F,CAAC,EAAE,QAAQ5zB,EAAE,GAAGA,EAAE,GAAGsvO,IAAItvO,EAAE4pD,EAAE7pD,EAAE,GAAM6zB,CAAC,EAAE7zB,EAAE,GAAM6pD,EAAE,CAAE,CAAE5pD,EAAE,GAAGA,EAAE,GAAGsvO,IAAItvO,EAAE4pD,EAAE7pD,EAAE,GAAK6zB,CAAC,CAAC,CAAC,CACnT,SAAS27M,IAAIpvO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAY,IAAVJ,EAAE,IAAIqlC,EAAQhlC,EAAE,EAAEA,GAAGG,EAAE,EAAEH,IAAK4pD,EAAE,IAAIoyD,GAAIpoF,CAAC,EAAEg2B,EAAE,EAAEzpD,EAAE,EAAEH,EAAEL,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEiqD,EAAE,IAAIk7G,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE3sC,GAAIjL,EAAE7pE,EAAGo4B,GAAI97E,EAAEQ,EAAE,EAAEA,EAAE,EAAE+sH,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAe,IAAb1tH,EAAE,IAAI64B,EAAI14B,CAAC,EAAQH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQO,EAAEsjD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEO,EAAE,EAAE,EAAE,QAAQ,GAAG62G,GAAIp3G,CAAC,EAAEo0B,EAAE,EAAE,EAAEwwC,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEwjD,GAAIl0F,EAAE,EAAEj0B,CAAC,CAAC,CACnT,SAAS8rJ,GAAItrJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJ9kK,EAAE,EAAM8kK,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAmC,IAAlC53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEqW,GAAIh7K,EAAE,EAAEA,EAAE,EAAE+sH,EAAE,CAAC,CAAC,EAAMvtH,EAAE,IAAImhJ,GAAI5zB,EAAE,CAAC,EAAE7kD,GAAI1oE,EAAE,CAAC,GAAG0oE,GAAI1oE,EAAE,CAAC,GAAIiqD,EAAEvG,EAAGglB,GAAI1oE,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAE,EAAE,EAAEH,EAAEq/C,GAAI1+C,EAAE+sH,GAAGtjE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAKpqD,EAAEW,EAAE,EAAE+sH,EAAE,CAAC,IAAGltH,GAAGg4I,GAAI73I,EAAE,EAAEX,CAAC,EAAE0xI,GAAI/wI,EAAE,EAAEutI,EAAIluI,CAAC,CAAC,GAAG,KAAM,CAACi0C,GAAItzC,EAAE,CAAC,GAAGsyJ,GAAItyJ,EAAE,EAAEkjD,EAAGoyD,GAAIt1G,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAOH,CAAC,CACnT,SAASymN,IAAItmN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4C,IAA1C1tH,GAAG,CAACo0B,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIspC,GAAGh3F,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAMj0B,EAAE,IAAI28D,IAAK,CAAC1oC,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIspC,GAAGh3F,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAGj0B,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,GAAG,CAACiqD,EAAE,IAAIA,EAAE,EAAE,IAAI03B,EAAIspC,GAAGhhE,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,GAAG,IAAIpqD,GAAGinN,IAAItmN,EAAEypD,EAAE,EAAK,GAAG,GAAG5pD,EAAY,IAATktH,EAAE1mB,GAAI5yE,CAAC,EAAQs5F,GAAG1tH,IAAI,CAAC0tH,EAAE,IAAIA,EAAE,EAAE,IAAI5rC,EAAIspC,GAAGsC,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAEA,EAAE1mB,GAAI0mB,CAAC,EAAG,OAAO1tH,CAAC,CACpT,SAASooN,GAAIznN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAGW,EAAE,GAAE,GAAIypD,EAAE,KAAKjqD,EAAEQ,EAAE,GAAI,EAACA,EAAE,GAAI,IAAGypD,EAAEzpD,EAAE,GAAGA,EAAE,GAAGyzB,CAAC,EAAE,IAAI,GAAG5zB,EAAEG,EAAE,GAAG,EAAEX,EAAEysL,GAAI9rL,EAAEyzB,CAAC,EAAE,KAAKA,EAAEj0B,CAAC,EAAKQ,EAAE,GAAI,GAAEX,GAAG,OAAMoqD,EAAEzpD,EAAE,GAAGX,EAAEoqD,CAAC,GAAMA,GAAgBA,EAAE,GAAG5pD,CAAC,EAAE4pD,EAAE,GAAI,GAA3BzpD,EAAE,GAAGH,CAAC,EAAuER,IAAOA,EAAEysL,GAAI9rL,EAAEyzB,CAAC,EAAKzzB,EAAE,GAAE,GAAIX,GAAG,OAAMoqD,EAAEzpD,EAAE,GAAGX,EAAE,IAAI,EAAIoqD,GAAGA,EAAE,MAAYpqD,EAAE,CACpT,SAASmsL,IAAIxrL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAsB,IAApBD,EAAE5kK,EAAE,EAAEyzB,EAAE,IAAImW,GAAIhqC,EAAE,EAAM6pD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAuC,IAAtC5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEo7G,EAAE,EAAErB,GAAI3jK,EAAE,EAAE,IAAIoI,GAAG,EAAM8kH,EAAEusC,GAAIz5J,EAAE,EAAE,CAAC,EAAEktH,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,GAAG,EAAKt5F,EAAE,EAAE,GAAGp0B,CAAC,IAAGG,EAAEK,EAAE,EAAE8kK,EAAEtlK,EAAE,EAAEwlK,EAAEF,EAAE,EAAEA,EAAE,EAAEC,GAAGC,EAAErlK,EAAE,EAAEolK,EAAED,EAAE,IAAIE,EAAEF,EAAE,EAAEA,EAAE,EAAEC,IAAI/kK,EAAE,EAAE,EAAEglK,EAAEpxI,EAAE,EAAE,GAAG5zB,EAAE4zB,CAAC,EAAE7zB,EAAEmD,EAAK,KAAK,IAAInD,EAAEC,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CAAC,OAAOD,CAAC,CACrT,SAASowF,IAAK,CAACA,GAAItrF,EAAI+gK,GAAI,IAAI7zG,GAAI,WAAW,CAAC,EAAE8zG,GAAI,IAAI9zG,GAAI,iBAAiB,CAAC,EAAE+zG,GAAI,IAAI/zG,GAAI,aAAa,CAAC,EAAEg0G,GAAI,IAAIh0G,GAAI,aAAa,CAAC,EAAEi0G,GAAI,IAAIj0G,GAAI,iBAAiB,CAAC,EAAEk0G,GAAI,IAAIl0G,GAAI,oBAAoB,CAAC,EAAEm0G,GAAI,IAAIn0G,GAAIklK,IAAI,CAAC,EAAE9wD,GAAI,IAAIp0G,GAAI,gBAAgB,CAAC,EAAEq0G,GAAI,IAAIr0G,GAAI,aAAa,CAAC,EAAEs0G,GAAI,IAAIt0G,GAAI,aAAa,CAAC,CAAC,CACrT,SAASm4E,GAAI/pI,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAA6D,IAA3DG,EAAE,IAAIqlC,EAAIpR,EAAE,IAAI+2E,IAAK,CAACxqG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,IAAQypD,EAAE,IAAIonD,GAAGphC,GAAGgsI,GAAIz7M,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAM8hB,EAAGmhF,GAAK,CAAC7sJ,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAI4gC,GAAG3iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,IAAGR,EAAEs2M,GAAIzyJ,EAAGwpG,GAAK,CAAC7sJ,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAI4gC,GAAG3iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE,GAAGp0B,CAAC,IAAIG,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEH,IAAS,OAAOG,CAAC,CACrT,SAAS++K,IAAIv+K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6D,IAA3D1tH,EAAE,IAAIuqC,GAAInW,EAAE,IAAI+2E,IAAK,CAACxqG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAG,EAAKR,EAAE,IAAIqxG,GAAGphC,GAAGgsI,GAAIz7M,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAM+rE,EAAGmhF,GAAK,CAACjjG,EAAE,IAAIA,EAAE,EAAE,IAAIm4B,GAAI4gC,GAAG/4D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,IAAGsjE,EAAE4oF,GAAIzyJ,EAAGwpG,GAAK,CAACjjG,EAAE,IAAIA,EAAE,EAAE,IAAIm4B,GAAI4gC,GAAG/4D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEh2B,EAAE,EAAE,GAAGs5F,CAAC,IAAIltH,EAAER,EAAE,EAAE,GAAG0tH,EAAE1tH,CAAC,EAAEQ,GAAG,OAAO,OAAOR,CAAC,CACtT,SAASgwO,IAAGrvO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAGiqD,EAAE,GAAGA,EAAEizJ,GAAG18M,EAAER,EAAE05G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC8kK,GAAIC,GAAIC,GAAIC,GAAIjxB,GAAIkxB,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEv8M,CAAC,EAAEg2B,EAAE,IAAIA,EAAEizJ,GAAG18M,EAAER,EAAE05G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAMg0I,GAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE/qL,CAAC,GAAMg2B,EAAE,EAAU,IAAM5pD,EAAE,EAAE4pD,EAAS,KAAaA,EAAE,GAAG5pD,EAAE,EAAE4pD,EAAE,EAAS,IAAY,EAAK,CACtT,SAASwmL,IAAGjwO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,OAAGiqD,EAAE,GAAGA,EAAEizJ,GAAG18M,EAAER,EAAE05G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC8kK,GAAIC,GAAIC,GAAIC,GAAIjxB,GAAIkxB,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEv8M,CAAC,EAAEg2B,EAAE,IAAIA,EAAEizJ,GAAG18M,EAAER,EAAE05G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAMg0I,GAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE/qL,CAAC,GAAMg2B,EAAE,EAAU,IAAM5pD,EAAE,EAAE4pD,EAAS,KAAaA,EAAE,GAAG5pD,EAAE,EAAE4pD,EAAE,EAAS,IAAY,EAAK,CACtT,SAASymL,IAAGlwO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAO,GAALD,EAAE,GAAMl7G,EAAE,EAAE,CAA8F,GAA1Fh2B,EAAE,CAAC,GAAGzzB,EAAE,SAAqB2kK,EAAEzsD,GAAIl4G,EAAEyzB,EAAE,CAAC,CAAC,EAAKkxI,GAAG,IAAIA,GAAG,MAAiB,EAAElxI,EAAE,CAAC,EAAEg2B,EAAE2oK,GAAGpyN,EAAEyzB,CAAC,EAAKg2B,EAAE,GAAG,MAAO,GAAMk7G,GAAG,KAAKl7G,EAAE,CAACA,EAAE,CAAC,OAAGk7G,GAAG,IAAIlxI,EAAE,CAAC,EAAE5zB,GAAG,GAAGL,EAAE,GAAG,IAAGI,EAAE,IAAIyjD,GAAGuhH,EAAEhlK,EAAE,EAAE,YAAW,EAAGu2I,GAAIA,GAAI,GAAGppB,EAAE63C,EAAE,IAAIvlK,EAAE,EAAEoqD,GAAGsjE,EAAEtjE,IAAIm7G,EAAE,IAAI,GAAG,KAAKn7G,EAAEsjE,EAAE,IAAI,IAAG1tH,EAAE,EAAEoqD,EAAS,EAAI,CACtT,SAAS0mL,IAAInwO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAM1mB,GAAIrmG,CAAC,IAAU+sH,EAAE7pE,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAG8/M,GAAG,EAAG,GAAG,EAAErzK,EAAG0uD,GAAIzoH,EAAEm2J,EAAG,CAAC,IAAIp8F,GAAIgkC,GAAG,EAAG/7B,GAAG,GAAImnG,GAAInpK,EAAEm2J,GAAIp0F,EAAG,EAAEtY,GAAGW,GAAK,EAAC,IAAI3X,GAAI4zD,GAAIrmG,CAAC,CAAC,GAAGX,EAAE,IAAIu0E,GAAKyyB,GAAIrmG,CAAC,EAAO,IAAIyyC,GAAI4zD,GAAIrmG,CAAC,CAAC,EAAnB,KAAqBA,CAAC,EAAER,EAAE4wO,IAAI3mL,EAAEpqD,EAAE,GAAM,EAAI,EAAEkuG,GAAIwf,GAAGnxC,GAAG,EAAG02D,GAAG,EAAGzyI,EAAEqjD,EAAG0lE,EAAIn1F,EAAE65M,EAAG,EAAE,CAAC,EAAEztO,EAAE,EAAEkD,EAAK,KAAK,IAAIvD,EAAE,EAAEK,EAAE,CAAC,EAAEA,EAAE,EAAEkD,EAAK,KAAK,IAAIvD,EAAE,EAAEK,EAAE,CAAC,EAAC,CACtT,SAASwwO,IAAIrwO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAImtH,EAAE7pE,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACuyG,GAAK,EAAC,EAAE,EAAE,GAAI,EAAC1vG,EAAE,GAAE,GAAI,CAAiB,OAAhB1tH,EAAE6jD,EAAG6pE,EAAE,KAAK,EAAE,EAAS7pE,EAAG0lE,EAAIvpH,GAAGiuB,GAAG,EAAG4jJ,KAAM,GAAG,EAAE,GAAG,IAAK,GAAEl5C,GAAI34H,EAAEo0B,CAAC,EAAE,MAAM,IAAK,GAAEukG,GAAI34H,EAAEQ,CAAC,CAAE,CAAC,IAAIL,EAAE,IAAIqxG,GAAGphC,GAAGk3G,GAAItnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIiE,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAK,EAAEiqD,EAAE,GAAKA,EAAE,KAAYk7G,EAAE,CAACl7G,EAAE,EAAE7pD,EAAEsjD,EAAG0lE,EAAIn/D,EAAEwwJ,GAAG,EAAE,EAAE,EAAEt1C,EAAE76F,GAAIrgB,EAAE7pD,CAAC,EAAEiqE,GAAIpgB,EAAE7pD,CAAC,EAAE,CAAC,CACtT,SAAS4sF,IAAK,CAACA,GAAI9nF,EAAIgzJ,GAAI,IAAIvyC,GAAIsjD,GAAI,GAAG3pE,EAAG,EAAG+5C,IAAKA,EAAG,EAAE8e,GAAI,IAAIxyC,GAAI42E,GAAI,EAAE9rD,GAAIA,EAAG,EAAE2nB,GAAI,IAAIzyC,GAAI22E,GAAI,EAAE14F,GAAIA,EAAG,EAAEy0D,GAAI,IAAI1yC,GAAI62E,GAAI,EAAE/4F,GAAIA,EAAG,EAAE60D,GAAI,IAAI3yC,GAAI,oBAAoB,EAAEliB,GAAI41C,EAAG,EAAEkf,GAAI,IAAI5yC,GAAI,oBAAoB,EAAE0zB,GAAIz1C,EAAG,EAAE40D,GAAI,IAAI7yC,GAAI,oBAAoB,EAAE8qB,GAAIhtC,EAAG,EAAEg1D,GAAI,IAAI9yC,GAAI,oBAAoB,EAAE/hB,GAAI6sC,EAAG,CAAC,CACtT,SAAS78B,IAAK,CAACA,GAAI1uG,EAAI8uM,IAAIt6F,EAAG9hE,EAAGkqI,GAAG,CAAC,EAAEgF,GAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,MAAM,OAAO,QAAQ,SAAS,UAAU,WAAW,YAAY,aAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAEvjL,EAAK,KAAK,IAAI,EAAE,GAAG,CAAC,CACtT,SAAS+7L,IAAI9+L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG/sH,EAAE,EAAE,QAAQ,EAAG,OAAO,IAAI22D,GAAI42E,EAAI,CAAC,EAAEA,EAAI,CAAC,CAAC,EAA0D,IAAxD1tI,GAAGg9D,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE+sH,EAAE,EAAE1tH,EAAEo0B,EAAE,EAAEg2B,EAAEh2B,EAAE,EAAE,EAAQs5F,EAAE/sH,EAAE,EAAE,OAAO,GAAGH,EAAE,EAAER,GAAG,EAAE0tH,EAAEltH,GAAGg9D,GAAIkwD,EAAE/sH,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE+sH,CAAC,EAAE,EAAE,GAAG,EAAM,IAAJvtH,EAAEutH,EAAQvtH,EAAEQ,EAAE,EAAE,OAAO,GAAGH,EAAE,EAAE4pD,GAAG,EAAEjqD,EAAEK,GAAGg9D,GAAIkwD,EAAE/sH,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE+sH,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,IAAIp2D,GAAI42E,EAAIxgB,CAAC,EAAEwgB,EAAI/tI,CAAC,CAAC,CAAC,CACvT,SAASsvM,IAAI9uM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAwE,IAAtE1lK,EAAEo0B,EAAE,EAAE,OAAOs5F,GAAGlwD,GAAIh9D,EAAE4zB,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAE5zB,CAAC,EAAE,GAAG,GAAG8kK,EAAE53C,EAAE,EAAE,EAAE,EAAE+3C,EAAE/3C,EAAE,EAAEg4C,EAAE,EAAMH,EAAE73C,EAAE,EAAE63C,GAAG73C,EAAE,EAAE63C,IAAI,CAAC,GAAGD,GAAG3kK,EAAE,EAAE4kK,CAAC,EAAG,OAAOA,EAAkB,IAAhBC,EAAE7kK,EAAE,EAAE4kK,CAAC,EAAEhlK,EAAE,KAASJ,EAAEK,EAAE,EAAEL,EAAEH,EAAEG,IAAKiqD,GAAGoT,GAAIr9D,EAAEi0B,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEj0B,CAAC,EAAE,GAAG,GAAGiqD,EAAE,GAAGm7G,GAAGn7G,EAAE,GAAGm7G,IAAIhlK,EAAE6pD,GAAK7pD,IAAIilK,EAAE9hK,EAAK,KAAK,IAAI8hK,EAAEjlK,EAAE,EAAE,EAAE,CAAC,GAAMilK,EAAEE,IAAGD,EAAEF,EAAEG,EAAEF,EAAE,CAAC,OAAOC,CAAC,CACxT,SAAS7E,IAAIjgK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA4F,GAA1FW,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEyzB,GAAGzzB,EAAE,EAAE,KAAK,KAAKA,EAAE,EAAEswO,IAAItwO,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,EAAE,OAAO0yL,GAAI1yL,CAAC,EAAEX,EAAEmzL,GAAIxyL,CAAC,EAAKA,EAAE,GAAGA,EAAE,EAAE,MAAM0lC,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,GAAK,EAACwpK,IAAK,CAAA,CAAC,EAAE,GAAGvwO,EAAE,EAAE,CAAC,IAAIypD,EAAE,EAAEA,EAAEzpD,EAAE,EAAE,EAAE,EAAE,OAAOypD,IAA0B,GAArBjqD,EAAE0jD,EAAG06D,GAAI59G,EAAE,EAAEypD,CAAC,EAAE,GAAG,EAAKzpD,EAAE,GAAGR,EAAE,EAAE,MAAMkmC,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,KAAMypK,IAAK,CAAA,CAAC,EAAExwO,EAAE,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO9kE,CAAC,CACxT,SAASoxO,IAAIzwO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,GAAGi0B,GAAG,MAAM,IAAIg2B,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIy5F,GAAG56K,EAAE,EAAE,CAAC,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAA4B,GAAvB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAEjqD,EAAEK,EAAE,GAAML,GAAQK,EAAE,KAAO,KAAM,OAAOA,MAAS,KAAI4pD,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIy5F,GAAG56K,EAAE,EAAE,CAAC,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGypD,EAAE,GAAGA,EAAE,EAAE,MAAwB,GAAjB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAK44B,GAAI5uD,GAAGj0B,EAAEK,EAAE,EAAEL,GAAQK,EAAE,GAAM,EAAE,OAAOA,EAAI,OAAO,IAAI,CACzT,SAASkqN,GAAI/pN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAS,OAAPA,EAAE,KAAY4zB,EAAE,EAAC,CAAE,IAAK,GAAEzzB,EAAE,EAAE,IAAIgwB,GAAG,EAAG0gN,GAAG,IAAK7wO,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG0wO,EAAG,EAAE,GAAG,GAAG,MAAM,IAAK,GAAE1wO,EAAE,EAAE,IAAIgwB,GAAK,EAAC2gN,GAAG,IAAK9wO,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG2wO,EAAG,EAAE,GAAG,GAAG,MAAM,IAAK,GAAE3wO,EAAE,EAAE,IAAIgwB,KAAM4gN,GAAK,IAAG/wO,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG4wO,EAAG,EAAE,GAAG,GAAG,MAAM,IAAK,GAAE5wO,EAAE,EAAE,IAAIgwB,GAAG,EAAG6gN,GAAG,IAAKhxO,EAAEqjD,EAAGljD,EAAE,EAAE,GAAG6wO,EAAG,EAAE,GAAG,EAAG,CAAC,OAAChxO,IAAIA,EAAEqjD,EAAGljD,EAAE,EAAE,IAAIgwB,GAAG,EAAG8gN,IAAG,EAAG,GAAG,GAAUjxO,CAAC,CAC1T,SAASkxO,IAAI/wO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAc,IAAZrxI,EAAE,EAAE,EAAEp0B,EAAEo0B,EAAE,EAAMqxI,EAAEonB,GAAIz4J,GAAGu+D,GAAG,EAAG0tC,GAAK,EAAC,GAAE,EAAGolC,EAAE,GAAE,GAAqB,IAAhBD,EAAE3hH,EAAG4hH,EAAE,KAAK,EAAE,EAAMtlK,EAAE,IAAI04B,EAAI2sI,EAAE,CAAC,EAAErlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEolK,EAAEn7G,EAAE,EAAE,EAAKh2B,GAAGmxI,IAAG73C,EAAE63C,EAAE,EAAK73C,EAAE,GAAG1tH,EAAE,IAAGslK,EAAEtlK,EAAE,EAAE,EAAKslK,GAAG9kK,EAAE,EAAE,EAAE,QAAQD,EAAE,IAAIi8G,GAAIh8G,CAAC,EAAED,EAAE,EAAE+kK,EAAE/7H,EAAI/oC,EAAE,EAAED,CAAC,EAAEo4H,GAAI4sC,EAAEhlK,CAAC,IAAOA,EAAEsjD,EAAGo4B,GAAIz7E,EAAE,EAAE8kK,CAAC,EAAE,EAAE,EAAE3sC,GAAI4sC,EAAEhlK,CAAC,GAAEmxO,IAAI/wO,EAAE4kK,EAAE/kK,CAAC,GAAK,CAC1T,SAASmqI,IAAIhqI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAU,IAARJ,EAAEK,EAAER,EAAE,EAAMslK,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEwE,GAAIp8C,GAAGz+F,GAAK,EAAC61I,IAAK52B,EAAI/tI,GAAG,CAAC,EAAEI,EAAEmqI,GAAIhd,CAAC,EAAEtjE,EAAE1mD,EAAK,KAAK,MAAMgqH,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEtjE,GAAGA,EAAE,EAAEooJ,GAAI,EAAEpoJ,EAAE,mBAAoBA,EAAEunL,IAAIhpK,GAAIpoE,EAAEI,EAAE,CAAC,EAAEypD,GAAGunL,KAAKvnL,EAAEwnL,IAAIjpK,GAAIpoE,EAAEI,EAAE,CAAC,EAAEypD,GAAGwnL,KAAKxnL,EAAEynL,IAAIlpK,GAAIpoE,EAAEI,EAAE,CAAC,EAAEypD,GAAGynL,KAAKlpK,GAAIpoE,EAAEI,EAAE,CAAC,EAAEX,EAAE2qI,IAAIhqI,EAAEJ,EAAEP,CAAC,EAAE,OAAOG,CAAC,CAC1T,SAASqkE,IAAK,CAACA,GAAIn/D,EAAI,IAAI1E,EAAiP,IAA/Om7M,GAAI,IAAIl5D,GAAI,EAAE,CAAC,EAAEqzE,GAAI,IAAIrzE,GAAI,EAAE,EAAE,EAAEgR,GAAI,IAAIhR,GAAI,EAAE,CAAC,EAAEm6B,GAAI,IAAIn6B,GAAI,GAAG,CAAC,EAAEo6B,IAAInjE,EAAG9hE,EAAGg+K,GAAG,CAAC,EAAE5qJ,EAAI,GAAG,EAAE,CAACyoF,GAAIkoD,GAAI,IAAIl5D,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAE,IAAIA,GAAI,EAAE,CAAC,EAAEqzE,EAAG,CAAC,EAAExqC,GAAI7mH,EAAGmxJ,GAAG5qJ,EAAI,GAAG,GAAG,EAAE,CAAC,EAAMxqE,EAAE,EAAEA,EAAE8qL,GAAI,OAAO9qL,IAAK8qL,GAAI9qL,CAAC,EAAEkyJ,GAAI5gD,GAAI,EAAEtxG,CAAC,CAAC,CAAE,CAC3T,SAASmxO,IAAInxO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAA0J,IAAxJD,EAAE,CAACrmH,GAAIqlE,GAAI3jH,EAAE,GAAE,EAAG,IAAI84B,GAAI,IAAI7oB,GAAG,CAAC,CAAC,EAAE,IAAI62C,GAAK,EAACC,GAAG,EAAGgmE,EAAE/sH,EAAEX,IAAI08F,GAAG,EAAGt6B,MAAOsrD,EAAExhD,EAAGwhD,EAAE,GAAG,EAAE+yB,GAAG58F,EAAG6pE,EAAE,GAAG,CAAC,EAAExhD,EAAGwhD,EAAE,GAAG,EAAE7pE,EAAG6pE,EAAE,GAAG,EAAE,EAAExhD,EAAGwhD,EAAE,EAAE,EAAE,IAAI38E,GAAG28E,CAAC,EAAE,IAAI18E,GAAG08E,CAAC,GAAO63C,EAAE73C,EAAE,KAAK63C,EAAE,GAAI,GAAGhlK,EAAEsjD,EAAG0hH,EAAE,KAAK,EAAE,EAAEhlK,EAAE,EAAE,EAAE6zB,EAAE,EAAEkxI,EAAG/kK,EAAE,EAAE,EAAE6zB,EAAE,GAAGg2B,EAAE,EAAE7pD,EAAE,EAAE,GAAG,EAAGJ,EAAGI,EAAE,EAAE,EAAE6zB,EAAE,EAAI7zB,EAAE,EAAE,EAAE6zB,EAAE,EAAEg2B,EAAE,EAAE7pD,EAAE,EAAE,EAAG6zB,EAAE,GAAG7zB,EAAE,EAAE,EAAEC,CAAE,CAC3T,SAASuxO,IAAIpxO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkE,IAAhEplK,GAAGiqD,EAAE,EAAEA,EAAE,GAAG,EAAErE,GAAI3xB,EAAE,CAAC,EAAEoyE,GAAIpyE,EAAE,EAAEj0B,CAAC,EAAE4lD,GAAIvlD,EAAE,CAAC,EAAEgmG,GAAIhmG,EAAE,EAAEL,CAAC,EAAEolK,EAAE,IAAIvpH,IAAQspH,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAStlK,EAAE6jD,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAE/kK,EAAEP,EAAE,EAAE+0M,GAAIxvC,EAAEnxI,EAAE7zB,CAAC,EAAEw0M,GAAIxvC,EAAE/kK,EAAED,CAAC,EAAE,IAAImtH,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEntH,EAAEP,EAAE,EAAE+0M,GAAIxvC,EAAEnxI,EAAE7zB,CAAC,EAAEw0M,GAAIxvC,EAAE/kK,EAAED,CAAC,EAAE,OAAAglK,EAAE,GAAG,EAAEA,EAAE,GAAG97C,IAAIr1F,EAAEzzB,EAAE,CAAC,EAAE4kK,EAAE,GAAG97C,IAAI9oH,EAAE,EAAEH,CAAC,EAAS+kK,CAAC,CAC3T,SAASmmD,IAAI/qN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAACl0B,GAAGh9G,CAAC,EAAE,CAAkF,IAAjFkxI,EAAEsC,GAAIpnK,GAAG0rE,EAAG93C,EAAE,EAAE,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAACihH,GAAGjhH,EAAE,GAAE,CAAE,GAAGzzB,EAAE,EAAE,CAAC,EAAE4rH,GAAI+4C,EAAE6pE,IAAI,CAAC,EAAEzhH,EAAE,IAAI3wG,IAAI/c,EAAE,KAASG,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEutH,EAAEwuC,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC4oD,EAAE,IAAI9sF,GAAIwpB,CAAC,CAAC,CAAC,CAAC,EAAKpqD,IAAGyjF,EAAIzjF,GAAGgkL,GAAK,EAACguD,KAAK5nL,CAAC,EAAEq5B,EAAIr5B,EAAE6nL,GAAIjyO,CAAC,EAAK4kJ,GAAIx6F,CAAC,GAAGw6F,GAAI5kJ,CAAC,IAAGyjF,EAAIzjF,EAAEkyO,GAAI9nL,CAAC,EAAEq5B,EAAIr5B,EAAE+nL,GAAInyO,CAAC,IAAGA,EAAEoqD,EAAEoiE,GAAI84C,CAAC,EAAEomD,IAAI/qN,EAAE+sH,EAAEltH,CAAC,CAAC,CAAC,CAC3T,SAASk/C,IAAI/+C,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAiF,IAA/E9kK,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE2kK,EAAE9kK,EAAE,EAAEG,EAAE,IAAIioF,GAAK,EAACs0C,IAAMooC,IAAI9kK,EAAE,EAAEG,EAAE,EAAE,GAAG,EAAGA,EAAE,GAAGw8H,KAAMmoC,GAAG9kK,EAAE,EAAEG,EAAE,EAAE,GAAOR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAsD,OAArDiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEutH,EAAEtjE,EAAE,GAAI,EAACpqD,EAAE,IAAI+7C,GAAI/7C,EAAE,EAAEslK,EAAEA,GAAG53C,EAAE,EAAE/sH,EAAE,EAASA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEX,EAAE,EAAEQ,EAAE,EAAE4zB,EAAE,EAAE,MAAM,IAAK,GAAEp0B,EAAE,EAAEQ,EAAE,EAAE4zB,EAAE,GAAG5zB,EAAE,EAAEktH,EAAE,GAAG,EAAE,MAAM,IAAK,GAAE1tH,EAAE,EAAEQ,EAAE,EAAEA,EAAE,EAAE4zB,EAAE,EAAEs5F,EAAE,CAAE,CAACtjE,EAAE,GAAGpqD,CAAC,CAAC,CAAC,CAC5T,SAAS2/C,IAAIh/C,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAiF,IAA/E9kK,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE2kK,EAAE9kK,EAAE,EAAEG,EAAE,IAAI6nF,GAAK,EAACq0C,IAAMyoC,IAAI9kK,EAAE,EAAEG,EAAE,EAAE,GAAG,EAAGA,EAAE,GAAGm8H,KAAMwoC,GAAG9kK,EAAE,EAAEG,EAAE,EAAE,GAAOR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAsD,OAArDiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEutH,EAAEtjE,EAAE,GAAI,EAACpqD,EAAE,IAAI+7C,GAAI/7C,EAAE,EAAEslK,EAAEA,GAAG53C,EAAE,EAAE/sH,EAAE,EAASA,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEX,EAAE,EAAEQ,EAAE,EAAE4zB,EAAE,EAAE,MAAM,IAAK,GAAEp0B,EAAE,EAAEQ,EAAE,EAAE4zB,EAAE,GAAG5zB,EAAE,EAAEktH,EAAE,GAAG,EAAE,MAAM,IAAK,GAAE1tH,EAAE,EAAEQ,EAAE,EAAEA,EAAE,EAAE4zB,EAAE,EAAEs5F,EAAE,CAAE,CAACtjE,EAAE,GAAGpqD,CAAC,CAAC,CAAC,CAC5T,SAASoyO,IAAIzxO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEklK,EAAEhlK,EAAE,EAAE,EAAEktH,EAAEltH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAER,EAAE6jD,EAAGgwD,GAAIrzG,EAAE,EAAE4zB,CAAC,EAAE,GAAG,EAAEh0B,EAAEJ,EAAE,EAAEM,EAAEN,EAAE,EAAEO,EAAE,IAAIw1D,GAAIyvG,EAAEplK,CAAC,EAAEqlK,EAAE,IAAI1vG,GAAI23D,EAAEptH,CAAC,EAAEH,EAAEqlK,EAAEhlK,EAAE,IAAIL,GAAGQ,EAAE,GAAGR,GAAGK,EAAE,EAAEA,EAAE,EAAEG,EAAE,EAAE4kK,EAAE,IAAIxvG,GAAI51D,EAAEC,CAAC,EAAEslK,EAAE,IAAI3vG,GAAI51D,EAAEG,CAAC,EAAE63E,GAAI/jD,EAAE,EAAEylF,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAC5qE,EAAEglK,CAAC,CAAC,CAAC,EAAED,EAAE9kK,EAAE,EAAE,EAAE,GAAE,EAAG,EAAK8kK,IAAGl7G,EAAE,IAAI2L,GAAI51D,EAAEK,EAAE,CAAC,EAAEgmG,GAAIpyE,EAAE,EAAEg2B,CAAC,GAAE+tB,GAAI/jD,EAAE,EAAEylF,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACu6F,EAAED,CAAC,CAAC,CAAC,CAAC,CAC5T,SAAS4sE,IAAI1xO,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIizN,EAAG,EAAE,gBAAgB,EAAE,uJAAuJ,EAAE,IAAI9wN,GAAG,CAAC,CAAC,EAAEqpH,EAAIlqI,EAAE2xO,GAAIC,GAAIvhD,GAAG,EAAEnmD,EAAIlqI,EAAE2xO,GAAIE,GAAI,EAAE,EAAE3nG,EAAIlqI,EAAE2xO,GAAIG,GAAIvkG,EAAI,CAAC,CAAC,EAAErD,EAAIlqI,EAAE2xO,GAAII,GAAIlhD,EAAG,CAAC,CAC9T,SAAS40B,IAAK,CAACA,GAAI/gN,EAAI,IAAI1E,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAuD,IAArDo/N,GAAIx6J,EAAGu9G,GAAGg8C,GAAI,GAAG,IAAI,GAAG,CAAC,EAAE9X,GAAIzhJ,EAAG4rF,GAAGC,GAAI,GAAG,GAAG,GAAG,CAAC,EAAMr8H,EAAE,EAAEA,EAAE,IAAIA,IAAKgrM,GAAIhrM,CAAC,EAAE,GAAG,IAAI5zB,EAAE,GAAGA,GAAG,GAAGA,IAAK4+N,GAAI5+N,CAAC,EAAEA,EAAE,IAAI,IAAI,GAAG,IAAI4pD,EAAE,GAAGA,GAAG,GAAGA,IAAKg1K,GAAIh1K,CAAC,EAAEA,EAAE,GAAG,IAAI,IAAI,GAAG,IAAIjqD,EAAE,IAAIA,GAAG,GAAGA,IAAKi/N,GAAIj/N,CAAC,EAAEA,EAAE,GAAG,IAAI,IAAI,GAAG,IAAIH,EAAE,EAAEA,EAAE,GAAGA,IAAIqmN,GAAIrmN,CAAC,EAAE,GAAGA,EAAE0lG,GAAI,IAAI/kG,EAAE,GAAGA,GAAG,GAAGA,IAAI0lN,GAAI1lN,CAAC,EAAE,GAAGA,EAAE,GAAG+kG,EAAG,CAC9T,SAASq6F,GAAIp/L,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAkG,OAAhGF,EAAElxI,EAAE,EAAEzzB,EAAE,EAAE,EAAEJ,EAAEC,EAAE,EAAEG,EAAE,EAAE,EAAE4kK,EAAEnxI,EAAE,EAAEzzB,EAAE,EAAE,EAAE6kK,EAAEhlK,EAAE,EAAEG,EAAE,EAAE,EAAEX,EAAEo0B,EAAE,EAAEzzB,EAAE,EAAE,EAAE+sH,EAAEltH,EAAE,EAAEG,EAAE,EAAE,EAAEypD,EAAEh2B,EAAE,EAAEzzB,EAAE,EAAE,EAAER,EAAEK,EAAE,EAAEG,EAAE,EAAE,EAAK2kK,EAAE/kK,EAAEmtH,GAAGntH,EAAE+kK,GAAGC,EAAEC,EAAErlK,GAAGqlK,EAAED,GAAuBhlK,EAAE+kK,EAAEtlK,GAAGslK,EAAE/kK,GAAGilK,EAAED,EAAEn7G,GAAGm7G,EAAEC,GAAuBF,EAAE/kK,EAAEmtH,GAAGntH,EAAE+kK,GAAGC,EAAEC,GAAGA,EAAED,EAAEn7G,EAA9E,GAAqG7pD,EAAE+kK,EAAEtlK,GAAGslK,EAAE/kK,GAAGglK,EAAEC,EAAErlK,GAAGqlK,EAAED,CAA2B,CAC/T,SAAS+uD,IAAI3zN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEG,EAAE0jD,EAAG0lE,EAAI5oH,GAAGstB,KAAM8/M,GAAK,EAAC,EAAE,EAAE/tO,EAAE6jD,EAAG0lE,EAAI5oH,EAAEqtO,EAAG,EAAE,EAAE,EAAExtO,EAAE,IAAIu1D,GAAIp1D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEyzB,EAAE,IAAI2kB,GAAIv4C,CAAC,EAAKL,EAAE,IAAIo8E,GAAK,EAAC02D,GAAG,IAAI7oF,EAAEvG,EAAG0lE,EAAI5oH,EAAEstO,EAAG,EAAE,CAAC,EAAKjuO,EAAE,IAAIq/F,GAAG,EAAG++D,GAAG,IAAIh0G,EAAE,GAAG,IAAIA,EAAE,EAAE,IAAIA,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAIh2B,EAAE,EAAE1wB,EAAK,KAAK,IAAIlD,EAAE,EAAE4pD,EAAE,CAAC,EAAEh2B,EAAE,EAAE1wB,EAAK,KAAK,IAAIlD,EAAE,EAAE4pD,EAAE,CAAC,GAAExW,GAAImnC,GAAGwuC,EAAI5oH,EAAEgyO,EAAG,CAAC,CAAC,GAAGC,IAAIjyO,EAAEH,EAAE4zB,CAAC,CAAC,CAChU,SAASy+M,IAAIlyO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,IAAIA,EAAEmhL,GAAI/sJ,GAAGqrE,IAAMmxC,KAAM,KAAK5wI,EAAE,GAAI,GAAGoqD,EAAEvG,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAEQ,EAAEqjD,EAAG0lE,EAAIn/D,GAAGygE,EAAG,EAAGysD,GAAK,EAAC,EAAE,EAAI92K,GAAGkqL,GAAIlkI,GAAID,GAAIE,GAAIH,GAAI,IAAI1b,GAAI,CAAC,EAAE,EAAG,EAAEjqC,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAC,EAAEzzB,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAIL,EAAEghL,GAAI/sJ,EAAEolH,EAAG,EAAE,GAAI,EAACr5I,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEK,EAAEqjD,EAAG0lE,EAAIn/D,GAAGygE,EAAK,EAACysD,GAAG,EAAG,EAAE,EAAI92K,GAAGkqL,GAAIlkI,GAAID,GAAIE,GAAIH,GAAI,IAAI1b,GAAI,CAAC,EAAE,EAAG,EAAEjqC,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAE,CAChU,SAAS0+M,GAAInyO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG,CAAC/sH,EAAE,EAAE,CAA+B,GAA9B+sH,EAAE,IAAIxqG,IAAIkR,EAAE0yI,GAAI9mK,EAAEo0B,EAAE,EAAE,GAAGzzB,EAAEyzB,CAAC,EAAKp0B,GAAG,KAAK,CAAC,IAAIoqD,EAAE,IAAI0S,GAAIgK,GAAInmE,CAAC,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEjqD,EAAE00L,GAAIr0L,CAAC,EAAE0rE,EAAG/rE,EAAE,EAAE,GAAGgtG,GAAIugB,EAAEolH,GAAIjvL,EAAG1jD,EAAE,EAAE,CAAC,CAAC,EAAE0mE,GAAI6mD,EAAEltH,CAAC,EAAE4zB,EAAE,EAAE,GAAGzzB,CAAC,GAAG,KAAKyzB,EAAE,EAAE,GAAE,GAAI,CAAY,CAACm4J,IAAI7+D,CAAC,EAAEquD,GAAIruD,CAAC,EAAE/sH,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,GAAKk7D,GAAK,EAACC,IAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEwQ,EAAE,GAAGA,EAAE,CAAC,EAAEf,GAAIhsH,CAAC,EAAE,GAAG,GAAG,CAAC,OAAOA,EAAE,CAAC,CAChU,SAASoyO,GAAIpyO,EAAE,CAAC,IAAIyzB,EAAE,GAAGzzB,EAAE,GAAG,GAAG,MAAM0lC,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,GAAG,EAAGsrK,IAAK,CAAC,EAAQ,OAAN5+M,EAAEzzB,EAAE,EAASyzB,EAAC,CAAE,IAAK,KAAIA,EAAE,GAAG,MAAM,IAAK,KAAIA,EAAE,GAAG,MAAM,IAAK,KAAIA,EAAE,EAAE,MAAM,IAAK,IAAG,IAAK,KAAI,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,KAAI,IAAK,KAAI,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,MAAM,QAAQ,MAAMiS,EAAI,IAAI0O,GAAIm9K,IAAKxqJ,GAAG,EAAGurK,GAAK,CAAA,CAAC,CAAE,CAAC,OAAO7+M,CAAC,CAChU,SAAS29E,IAAGpxG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGW,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAG,MAAO,IAAI,GAAGA,EAAE,GAAGsvJ,IAAKtvJ,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAG,MAAO,uBAAuB,GAAGA,EAAE,GAAG,GAAO,MAAO,IAAIoxG,IAAGy8C,GAAG7tJ,CAAC,CAAC,EAAW,IAATH,EAAEG,EAAEypD,EAAE,GAAS,EAAE5pD,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAG,CAAsC,GAArCL,EAAEw+I,GAAG28D,EAAG,EAAE96M,EAAE8vL,GAAG9vL,EAAEL,EAAE,EAAI,EAAEi0B,EAAE,GAAGgrB,IAAG21H,EAAE,EAAK,EAAEv0K,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAiB,IAAbR,EAAE,EAAEo0B,EAAE,OAAYp0B,EAAE,EAAEA,IAAKo0B,EAAE,IAAIA,EAAGg2B,EAAEh2B,EAAEg2B,CAAC,CAAC,OAAOA,CAAC,CACjU,SAAS8oL,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,OAAO,oBAAqB,MAAO,GAAM,IAAIvyO,EAAE,YAAgByzB,EAAE,OAAO,OAAO,IAAI,EAAE,GAAGA,EAAEzzB,CAAC,IAAI,OAAW,MAAO,GAAM,IAAIH,EAAE,OAAO,oBAAoB4zB,CAAC,EAAkE,MAA7D,EAAA5zB,EAAE,QAAQ,IAAgB4zB,EAAEzzB,CAAC,EAAE,GAAMyzB,EAAEzzB,CAAC,IAAI,KAAoB,OAAO,oBAAoByzB,CAAC,EAAE,QAAQ,EAA2B,CAClU,SAAS++M,IAAIxyO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAc,IAAZlxI,EAAE,GAAM5zB,EAAE,EAAML,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiC,IAAxBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEiqD,EAAE,EAAE5pD,IAAQktH,EAAE,IAAI70F,EAAIuxB,EAAE,CAAC,EAAEsjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE,CAACt5F,GAAG,CAACg9G,GAAGk2C,GAAItnL,CAAC,CAAC,IAAIo0B,EAAE,IAAOkxI,EAAE/2D,IAAK7R,GAAK,EAACs+C,IAAKnhC,EAAG9hE,EAAGgjG,GAAG,CAAC,EAAEhhC,EAAI,IAAI,EAAE,CAAC93C,GAAIC,EAAG,CAAC,CAAC,EAAM9tC,IAAG85E,GAAIo3D,EAAEljG,EAAG,EAAE8rC,GAAIo3D,EAAEjjG,EAAG,GAAE1hE,EAAE,EAAE,IAAI40J,IAAI+P,CAAC,EAAE3/H,GAAIhlC,EAAE,CAAC,EAAEglC,GAAIhlC,EAAE,CAAC,EAAEglC,GAAIhlC,EAAE,CAAC,EAAEglC,GAAIhlC,EAAE,CAAC,CAAC,CAClU,SAASyyO,IAAIzyO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA4K,IAA1Kr7G,EAAE5pD,EAAE,EAAEL,EAAEK,EAAE,EAAE8kK,EAAEzpC,GAAIznG,EAAE,CAAC,EAAE7zB,EAAEs7H,GAAIznG,EAAE,CAAC,EAAKg2B,GAAGh2B,EAAE,GAAGkxI,EAAE+8D,GAAI1hO,EAAE2kK,EAAEnlK,CAAC,EAAEI,EAAEk+M,IAAIrqL,EAAE,CAAC,IAAOkxI,EAAEm5C,IAAIrqL,EAAE,CAAC,EAAE7zB,EAAE8hO,GAAI1hO,EAAEJ,EAAEJ,CAAC,GAAEolK,EAAE,IAAInqH,GAAIhnB,EAAE,CAAC,EAAEkoC,GAAIipG,EAAED,EAAEC,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEjpG,GAAIipG,EAAEhlK,EAAEglK,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE73C,EAAEt5F,EAAE,GAAGg2B,EAAEq7G,EAAE,IAAI95H,IAAQ3rC,EAAE,EAAEA,EAAEulK,EAAE,EAAE,EAAE,EAAEvlK,EAAGwlK,EAAE,IAAIluG,GAAIzT,EAAGghG,GAAG0gB,EAAEvlK,CAAC,EAAE,CAAC,EAAE6jD,EAAGghG,GAAG0gB,EAAEvlK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE0tH,GAAG1tH,GAAG,GAAG,CAAC0tH,GAAG1tH,GAAGulK,EAAE,EAAE,EAAGE,EAAE,EAAED,EAAGj8H,EAAIk8H,EAAE,EAAED,CAAC,EAAE,OAAOC,CAAC,CACnU,SAAS4tE,IAAI1yO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgB,GAAdA,EAAEW,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAKp0B,GAAG,EAAG,OAAOA,EAAkD,GAAhDQ,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACqlN,GAAK,EAAC,EAAE,EAAElpL,EAAEvG,EAAG0lE,EAAIn1F,EAAEk/M,EAAG,EAAE,EAAE,EAAO9yO,GAAK4pD,IAAGjqD,EAAEK,EAAE,EAAE4pD,EAAE,EAAKjqD,GAAG,GAAG,OAAOA,EAAG,OAAOQ,EAAE,EAAE,GAAG,IAAK,GAAE,OAAO4+D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAInrC,EAAE,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO4+D,GAAInrC,EAAE,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAE,QAAQ,MAAM0lC,EAAI,IAAIoN,GAAI8/L,GAAG,CAAC,CAAE,CAAC,CACnU,SAASC,GAAI7yO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkE,GAA7D80I,IAAIlpH,KAAM,IAAIqlF,GAAGphC,GAAGk3G,GAAIlzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,EAAC,GAAItD,EAAE,GAAgB,CAACs5M,GAAI7lL,EAAE5zB,CAAC,EAAG,MAAO,GAAG,GAAG4wI,GAAGvtF,EAAGuG,EAAE,GAAGh2B,CAAC,EAAE,EAAE,CAAC,EAAG,MAAO,GAAM,IAAJj0B,EAAE,EAAMutH,EAAE7pE,EAAGuG,EAAE,GAAGh2B,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGs5F,EAAE,MAAsG,GAA/F1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAEntH,EAAEP,EAAE,EAAE,GAAGo0B,EAAEp0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEslK,EAAEkuE,GAAI7yO,EAAEJ,EAAEC,EAAE4pD,CAAC,EAAKk7G,GAAG,KAAcnlK,EAAEuD,EAAK,KAAK,IAAIvD,EAAEmlK,CAAC,EAAKnlK,EAAEQ,EAAE,EAAE,GAAG,MAAO,GAAI,OAAOR,EAAE,CAAC,CACnU,SAASkkF,IAAI1jF,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG5qG,EAAGtmC,CAAC,IAAIsmC,EAAG/5D,CAAC,EAAG,MAAO,GAAoD,GAA5C,CAACurE,EAAG93C,EAAE,EAAE,IAAgBg2B,EAAEvG,EAAGzvB,EAAE,EAAE,EAAEkxI,EAAE3kK,EAAE,GAAI,EAAIypD,EAAE,GAAI,GAAEk7G,GAAG,MAAO,GAAe,GAAT53C,EAAEtjE,EAAE,GAAE,EAAMzpD,EAAE,GAAE,GAAI,IAAIH,EAAE,EAAEA,EAAE8kK,EAAE,EAAE9kK,EAAsB,GAAnBL,EAAEQ,EAAE,GAAGH,CAAC,EAAER,EAAE0tH,EAAE,GAAI,EAAIvtH,GAAG,KAAKH,GAAG,KAAK,CAAC6kD,GAAG1kD,EAAEH,CAAC,EAAG,MAAO,OAAa,KAAIQ,EAAE,EAAEA,EAAE8kK,EAAE,EAAE9kK,EAAsB,GAAnBL,EAAEQ,EAAE,GAAGH,CAAC,EAAER,EAAE0tH,EAAE,GAAE,EAAMhzD,EAAGv6D,CAAC,IAAIu6D,EAAG16D,CAAC,EAAG,MAAO,GAAQ,MAAO,EAAI,CACnU,SAASyzO,IAAI9yO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG3kK,EAAE,EAAE,GAAU,GAAPA,EAAE,GAAE,EAAMyzB,GAAG,MAAM,IAAIp0B,EAAE,EAAEA,EAAEW,EAAE,EAAE,OAAO,EAAEX,EAAY,GAATQ,EAAEG,EAAE,EAAEX,CAAC,EAAKQ,GAAuB,IAApB4pD,EAAEvG,EAAGrjD,EAAE,EAAE,GAAG,EAAE8kK,EAAE9kK,EAAE,EAAMktH,EAAE,EAAEA,EAAE43C,EAAE,EAAE53C,EAAU,GAAPvtH,EAAEiqD,EAAEsjE,CAAC,EAAK7oE,GAAGzwB,EAAEj0B,EAAE,GAAI,CAAA,EAAG,MAAO,QAAc,KAAIH,EAAE,EAAEA,EAAEW,EAAE,EAAE,OAAO,EAAEX,EAAY,GAATQ,EAAEG,EAAE,EAAEX,CAAC,EAAKQ,GAAuB,IAApB4pD,EAAEvG,EAAGrjD,EAAE,EAAE,GAAG,EAAE8kK,EAAE9kK,EAAE,EAAMktH,EAAE,EAAEA,EAAE43C,EAAE,EAAE53C,EAAU,GAAPvtH,EAAEiqD,EAAEsjE,CAAC,EAAKhzD,EAAGtmC,CAAC,IAAIsmC,EAAGv6D,EAAE,GAAI,CAAA,EAAG,MAAO,IAAU,MAAO,EAAK,CACnU,SAASuzO,IAAI/yO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEnB,GAAI/rH,EAAE,+CAA+C,CAAC,EAAEG,EAAE,EAAE,EAAEypD,EAAEupL,IAAIv/M,CAAC,EAAEw/M,IAAIx/M,EAAEg2B,CAAC,EAAEypL,IAAIlzO,EAAEyzB,EAAEg2B,CAAC,EAAE0pL,IAAI1/M,CAAC,EAAEj0B,EAAE0jD,EAAG0lE,EAAIn1F,GAAGnG,GAAK,EAAC6oI,GAAK,EAAC,EAAE,EAAE92J,EAAEo0B,EAAE,EAAE2/M,KAAKv2K,GAAI,EAAEx9D,EAAE,EAAE,MAAM,EAAE6jD,EAAG7jD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGG,EAAEi0B,CAAC,EAAE2/M,IAAIlwL,EAAGo4B,GAAIj8E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAEG,EAAEi0B,CAAC,EAAEs5F,EAAEt5F,EAAE,EAAE4/M,KAAKx2K,GAAI,EAAEkwD,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAC,EAAGsmH,IAAInwL,EAAGo4B,GAAIyxC,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAElB,GAAIhsH,CAAC,CAAC,CACtU,SAAS49N,GAAIz9N,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAI,OAAOA,EAAE,IAAI,IAAI,GAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,KAAI,IAAK,KAAI,IAAK,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,GAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAI,OAAOA,EAAE,GAAG,IAAI,IAAI,GAAG,QAAS,MAAM0lC,EAAI,IAAIqQ,GAAI,qBAAqB,CAAC,CAAE,CAAC,CACtU,SAASu9L,IAAItzO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6E,IAA3EnB,GAAI/rH,EAAE,wBAAwB,CAAC,EAAEG,EAAE,EAAEkzC,EAAImnC,EAAGuuC,EAAIn1F,GAAGzE,GAAK,EAACkpM,IAAG,CAAE,CAAC,EAAE14N,EAAE,IAAIotC,GAAQmgF,EAAEusC,GAAI7lI,EAAE,EAAE,CAAC,EAAEs5F,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,EAAE,EAAE95E,GAAImnC,GAAGwuC,EAAIvpH,GAAGgkL,GAAK,EAACynC,GAAK,CAAA,CAAC,GAAInvJ,GAAIn8D,EAAEH,EAAEG,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQiqD,GAAGyoB,GAAI1yE,EAAE,GAAG,CAAC,EAAE0jD,EAAG1jD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG+zO,IAAIvzO,EAAEypD,CAAC,EAAE,CAAC5pD,EAAE,GAAGmgK,GAAIngK,EAAE,CAAC,EAAE2zO,GAAIxzO,EAAEypD,EAAE,EAAEvW,EAAImnC,EAAGuuC,EAAIn/D,GAAG45H,GAAK,EAACorD,GAAK,CAAA,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC5uO,EAAE,GAAGmgK,GAAIngK,EAAE,CAAC,EAAEgsH,GAAIhsH,CAAC,CAAC,CACvU,SAASwnF,IAAK,CAACA,GAAI3iF,EAAI05J,IAAI,IAAIrvG,GAAI,SAAS,CAAC,EAAEsvG,IAAI,IAAItvG,GAAI,eAAe,CAAC,EAAEuvG,IAAI,IAAIvvG,GAAI,YAAY,CAAC,EAAEwvG,IAAI,IAAIxvG,GAAI,SAAS,CAAC,EAAEyvG,GAAI,IAAIzvG,GAAI,yBAAyB,CAAC,EAAE0vG,IAAI,IAAI1vG,GAAI,sBAAsB,CAAC,EAAE2vG,IAAI,IAAI3vG,GAAI,mBAAmB,CAAC,EAAE4vG,IAAI,IAAI5vG,GAAI,iCAAiC,CAAC,EAAE6vG,IAAI,IAAI7vG,GAAI,2BAA2B,CAAC,CAAC,CACxU,SAASy+K,IAAIxtO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAgC,IAA9BhlK,EAAEo0M,GAAIh0M,EAAEH,CAAC,EAAE+kK,EAAEovC,GAAIvgL,EAAE5zB,CAAC,EAAEL,EAAE,GAAcI,GAAKglK,IAAMn7G,GAAGg9I,IAAI7mM,EAAEglK,EAAE/kK,CAAC,IAAGktH,EAAEinF,GAAIp0M,EAAEC,CAAC,EAAE8kK,EAAEqvC,GAAIpvC,EAAE/kK,CAAC,EAAEyuJ,GAAI76H,CAAC,EAAE66H,GAAItuJ,CAAC,EAAEX,EAAEO,EAAE,EAAE2jO,GAAI3jO,EAAE,EAAK,EAAE2jO,GAAI3+D,EAAE,EAAK,EAAK/kK,GAAG0qM,GAAI92K,EAAEmxI,EAAE,EAAEvlK,CAAC,EAAEo0B,EAAE,EAAEmxI,EAAE,EAAE2lC,GAAIvqM,EAAEJ,EAAE,EAAE,EAAEP,CAAC,EAAEW,EAAE,EAAEJ,EAAE,IAAO2qM,GAAIvqM,EAAEJ,EAAE,EAAEP,CAAC,EAAEW,EAAE,EAAEJ,EAAE,EAAE2qM,GAAI92K,EAAEmxI,EAAE,EAAE,EAAEvlK,CAAC,EAAEo0B,EAAE,EAAEmxI,EAAE,GAAE5sC,GAAIp4H,EAAE,IAAI,EAAEo4H,GAAI4sC,EAAE,IAAI,EAAEhlK,EAAEmtH,EAAE63C,EAAED,EAAEnlK,EAAE,GAAiB,OAAOA,CAAC,CACxU,SAASi0O,IAAIzzO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkB,IAAhBJ,EAAE,GAAMH,EAAE,GAAUslK,EAAE,IAAIzsI,EAAIuxB,EAAE,CAAC,EAAEk7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE5qG,EAAG6uD,EAAImE,GAAG7C,EAAK,EAAC+jC,GAAK,CAAA,IAAIl0F,EAAGl6D,CAAC,IAAIktH,EAAE,EAAE,EAAE,QAAQ,EAAEA,EAAE,EAAE,EAAE,QAAQ,IAAIvtH,EAAE,IAAOH,EAAE,IAAO,OAAAO,EAAE,EAAEJ,GAAGA,EAAEH,EAAGO,EAAEC,EAAE,IAAIi/F,IAAM+5C,IAAK,CAAC74I,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEh2B,EAAEzzB,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAGpqD,GAAGG,EAAEH,EAAGO,EAAEI,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAGjqD,GAAGH,IAAIO,EAAEC,EAAE,IAAIi/F,EAAG,EAAG+5C,IAAK,EAAEplH,EAAE,GAAU7zB,CAAC,CACxU,SAASo4K,GAAIh4K,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAEglK,EAAEC,EAA6H,IAA3HjlK,EAAE,EAAE6zB,GAAG,OAAO7zB,GAAGu1K,GAAI1hJ,EAAE,aAAa,GAAG5zB,GAAG,OAAOD,GAAGu1K,GAAIt1K,CAAC,GAAG4pD,GAAG,OAAO7pD,GAAGu1K,GAAI1rH,CAAC,GAAGsjE,GAAG,OAAOntH,GAAGu1K,GAAIpoD,CAAC,GAAG43C,GAAG,OAAO/kK,GAAGu1K,GAAIxQ,CAAC,GAAOC,EAAE,EAAEC,EAAExlK,EAAE,OAAOulK,EAAEC,EAAED,IAAKhlK,GAAGu1K,GAAI91K,EAAEulK,CAAC,CAAC,EAAE5kK,EAAGJ,GAAG,IAAMA,GAAG,KAAMJ,EAAGI,GAAG,GAAKA,GAAG,IAAK,KAAK,EAAEA,EAAE,KAAK,EAAE6zB,GAAG,KAAK,MAAM3C,GAAI2C,CAAC,EAAEA,GAAG,KAAK,EAAE5zB,EAAE,KAAK,EAAE4pD,EAAE,KAAK,EAAEpqD,EAAE,KAAK,EAAE0tH,EAAE,KAAK,EAAE43C,CAAC,CACxU,SAASuqD,GAAIlvN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAS,OAAPA,EAAE,KAAYi0B,EAAE,EAAG,CAAA,IAAK,GAAEj0B,GAAG8yG,GAAG,EAAGk0D,KAAK,MAAM,IAAK,GAAEhnK,GAAG8yG,GAAK,EAACi0D,IAAK,CAAQ,OAAP98G,EAAE,KAAY5pD,EAAE,EAAG,CAAA,IAAK,GAAE4pD,GAAG6oD,GAAG,EAAGm0D,KAAK,MAAM,IAAK,GAAEh9G,GAAG6oD,KAAMo0D,KAAK,MAAM,IAAK,GAAEj9G,GAAG6oD,GAAK,EAACq0D,KAAK,MAAM,IAAK,GAAEl9G,GAAG6oD,GAAG,EAAGs0D,IAAK,CAAC,OAASpnK,GAAKiqD,EAAE03C,GAAGnhG,EAAE,EAAE,IAAI+wB,IAAG,IAAI2iB,GAAIwlE,EAAG9hE,EAAGs8L,IAAG,CAAC,EAAEvvK,GAAI,IAAI,EAAE,CAACjhB,EAAG1N,GAAGh2C,CAAC,EAAE,GAAG,EAAE0jD,EAAG1N,GAAGiU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG4gB,KAAMA,KAAM+b,GAAI,CACzU,SAASutJ,IAAI3zO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAyD,OAAvDh2B,EAAEyvB,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACggN,GAAK,EAAC,CAAC,EAAExqJ,EAAI9iF,EAAEstO,GAAI,IAAIl4K,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,CAAC,EAASyvB,EAAG0lE,EAAI5oH,EAAEqtL,EAAG,EAAE,GAAG,EAAE,GAAG,IAAK,GAAEvqG,EAAI9iF,EAAEqtL,IAAKpyF,GAAG,EAAGmqD,GAAG,EAAG,MAAM,IAAK,GAAEtiE,EAAI9iF,EAAEqtL,IAAKpyF,KAAMoqD,KAAM,MAAM,IAAK,GAAEviE,EAAI9iF,EAAEqtL,IAAKpyF,GAAK,EAACiqD,GAAK,EAAC,MAAM,IAAK,GAAEpiE,EAAI9iF,EAAEqtL,IAAKpyF,GAAG,EAAGkqD,GAAG,CAAG,EAAMnlJ,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAK,EAACA,GAAK,EAACkhC,KAAU,GAAGg2D,EAAG,IAAG1hK,EAAEqjD,EAAG0lE,EAAI5oH,EAAEuhK,EAAG,EAAE,CAAC,EAAE93G,EAAE5pD,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE4pD,EAAE,CACzU,SAASu1H,IAAIh/K,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAmB,GAAlB,KAAK,EAAEQ,EAAE,KAAK,EAAEL,EAAKQ,GAAGyzB,EAAE,OAAQ,MAAMiS,EAAI,IAAIwM,GAAI,gDAAgD,CAAC,EAAE,KAAK,EAAEze,EAAEzzB,CAAC,EAAE,KAAK,EAAE,IAAI+kF,GAAIt7B,CAAC,EAAEuzD,GAAI,KAAK,EAAE,KAAK,GAAGle,EAAG,EAAGmE,GAAG,EAAG,KAAK,EAAE,IAAIle,GAAIt7B,CAAC,EAAEuzD,GAAI,KAAK,EAAE,KAAK,EAAE5Z,EAAG,EAAE,KAAK,EAAE,IAAIyJ,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAACxtG,GAAGG,EAAE,GAAG,CAACA,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,IAAImrF,GAAK,EAACi0D,IAAK,KAAK,GAAGwpE,IAAI,KAAKpoN,EAAEyzB,EAAE,MAAM,CAAC,CACzU,SAASsgG,IAAI/zH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAEtlK,EAAE,CAACW,EAAE,EAAE,IAAI0+F,GAAG,EAAGu/D,GAAK,EAAClxC,EAAE/sH,EAAE,EAAE,GAAGg+J,EAAG,EAAEh+J,EAAE,EAAE,IAAI+tL,IAAIhhE,EAAE1tH,EAAEW,EAAE,CAAC,EAAIA,EAAE,GAAGunH,GAAIvnH,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEqxC,GAAIrxC,EAAE,GAAGynF,GAAK,EAACo0C,IAAK77H,EAAE,CAAC,EAAMyzB,IAAGg2B,EAAE,IAAIurI,GAAI,EAAE31L,EAAEW,EAAE,CAAC,EAAEypD,EAAE,EAAE,EAAEzpD,EAAE,EAAE89E,GAAI99E,EAAE,GAAG8+F,EAAK,EAAC+5C,IAAKpvF,CAAC,EAAEjqD,EAAE,IAAIw1L,GAAI,EAAE31L,EAAEW,EAAE,CAAC,EAAER,EAAE,EAAE,EAAEQ,EAAE,EAAE89E,GAAI99E,EAAE,EAAEiwI,GAAIzwI,CAAC,EAAEmlK,EAAE,IAAIqwB,GAAI,EAAE31L,EAAEW,EAAE,CAAC,EAAE2kK,EAAE,EAAE,EAAE3kK,EAAE,EAAE89E,GAAI99E,EAAE,EAAEijG,GAAI0hE,CAAC,EAAE9kK,EAAE,IAAIm1L,GAAI,EAAE31L,EAAEW,EAAE,CAAC,EAAEH,EAAE,EAAE,EAAEG,EAAE,EAAE89E,GAAI99E,EAAE,EAAEojG,GAAIvjG,CAAC,EAAE,CAC1U,SAAS+zO,IAAI5zO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAiC,OAA/Bh2B,EAAEyvB,EAAG0lE,EAAI5oH,EAAE,GAAGstB,KAAMo0I,GAAK,EAAC,GAAG,EAASjuI,EAAE,EAAC,CAAE,IAAK,GAAE5zB,EAAEg0O,IAAI7zO,CAAC,EAAE,MAAM,IAAK,GAAEH,GAAG4pD,EAAE,IAAI5kB,EAAIwgB,GAAIs+D,GAAIlL,GAAI84C,GAAIA,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIuV,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIf,GAAG,EAAE,IAAIgpB,IAAI+rB,CAAC,CAAC,EAAEA,GAAG,MAAM,QAAQ,MAAM/jB,EAAI,IAAIoN,GAAI,gCAAgCrf,EAAE,SAAS,CAAC,CAAE,CAACqgN,IAAI9zO,EAAEH,CAAC,EAAEk4I,GAAI,IAAIjhH,GAAI92B,EAAE,CAAC,EAAE,IAAIw9B,IAAIx9B,CAAC,CAAC,CAAC,CAC1U,SAAS+zO,IAAI/zO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAgF,OAA9EA,EAAE,IAAIyJ,GAAMmqB,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEssM,EAAE,EAAE,EAAE,CAAC,EAAE/gI,EAAG93C,EAAE,GAAG,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEg0O,EAAE,EAAE,EAAE,CAAC,EAAKzoK,EAAG93C,EAAE,GAAG,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAE0iH,EAAE,EAAE,EAAE,CAAC,EAAS7iH,IAAE0rE,EAAG93C,EAAE,EAAE,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEwiH,EAAE,EAAE,EAAE,CAAC,EAAKj3C,EAAG93C,EAAE,GAAG,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyqH,EAAE,EAAE,EAAE,CAAC,EAAS5qH,GAAK0rE,EAAG93C,EAAE,GAAG,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAE4iH,EAAE,EAAE,EAAE,CAAC,EAAS/iH,IAAE0rE,EAAG93C,EAAE,GAAG,GAAGqrH,GAAIj/I,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEqmH,EAAE,EAAE,EAAE,CAAC,EAASxmH,GAAC,CAC1U,SAASirB,IAAK,CAACA,GAAIpmB,EAAIm4M,GAAI,IAAIx3I,IAAKr1C,GAAG,EAAGwwL,IAAKjzE,EAAI,CAAC,CAAC,EAAEs+B,GAAI,IAAIxmG,GAAImrH,GAAI,EAAE,EAAEyjD,IAAI,IAAI5uK,GAAI6uK,IAAI,CAAC,EAAEC,IAAI,IAAI9uK,GAAIurH,GAAIC,EAAG,EAAEid,IAAI,IAAIzoI,GAAIqrH,GAAInjD,EAAI,CAAC,CAAC,EAAE6mG,IAAI,IAAI/uK,GAAIgzJ,IAAKjoJ,GAAG,EAAG,GAAI,EAAGikK,IAAI,IAAI/uK,GAAI,EAAE,EAAEgvK,IAAI,IAAIjvK,GAAI00G,GAAIs6D,GAAG,EAAEE,IAAItpC,GAAIupC,IAAIzlF,GAAI0lF,IAAI,IAAIpvK,GAAI6lI,GAAI,EAAK,EAAE62B,IAAIx4B,GAAImrC,IAAIxoF,GAAIyoF,IAAIt6D,GAAIu6D,IAAIj4C,GAAIk4C,IAAIjpF,GAAIo2E,KAAKp3M,GAAG,EAAGu5L,KAAK5gH,GAAIkhH,IAAI74C,GAAIy4C,IAAIv4C,GAAI64C,IAAImwB,IAAIvwB,GAAG,CAC5U,SAASwwB,IAAI/0O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAY,IAAVA,EAAE,IAAI05I,IAAQqrB,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK53C,EAAE,IAAIpiC,GAAK,EAACi0D,KAAgC,IAAjB28E,IAAI37N,EAAEmtH,EAAE,IAAI3xE,EAAG,EAAM/7C,EAAE,IAAIwxG,GAAGphC,GAAGo3G,GAAI95D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAAmB,GAAfG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAK,EAAAG,EAAE,EAAE,EAAE,GAAGo/I,IAAKp/I,EAAE,EAAE,EAAE,GAAGo/I,IAAc,IAAIn1F,EAAE6vG,GAAI95J,EAAE,EAAE,CAAC,EAAEiqD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,CAAC,EAAEh2B,EAAE5zB,EAAE4mG,GAAI7mG,EAAE,IAAI8wD,GAAIj9B,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAI,OAAO7zB,CAAC,CAC5U,SAASgvB,IAAK,CAACA,GAAIlqB,EAAI+6L,IAAI,IAAIx8J,GAAI+xM,EAAG,EAAEC,KAAKtsL,KAAMC,IAAKg3I,IAAI,IAAI/hI,GAAIq3K,GAAID,GAAG,EAAEE,KAAK96I,GAAK,EAACq3B,IAAK0tF,IAAI,IAAIvhJ,GAAIu3K,IAAID,GAAG,EAAEE,KAAKv7I,GAAK,EAACyhD,IAAK+jE,IAAI,IAAIzhJ,GAAIy3K,IAAID,GAAG,EAAE71B,IAAI,IAAI3hJ,GAAI03K,GAAI,IAAI,EAAEC,KAAK97I,GAAG,EAAGq4B,IAAK2tF,IAAI,IAAI7hJ,GAAI43K,GAAID,GAAG,EAAEE,KAAKrtL,GAAG,EAAGC,IAAK03J,IAAI,IAAIniJ,GAAI83K,IAAID,GAAG,EAAEx1B,IAAI,IAAIriJ,GAAI+3K,KAAKxlK,KAAM,GAAO,EAAC0vH,IAAI,IAAIjiI,GAAIg4K,IAAItoG,EAAI,EAAE,CAAC,EAAEyyD,IAAI,IAAIniI,GAAIi4K,IAAI,EAAI,EAAEC,IAAIjkH,EAAG,CAC5U,SAAS1lB,IAAIpsG,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG/sH,EAAE,GAAG,KAAiE,GAApDA,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGjwL,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEA,EAAE,EAAE,CAAC,EAAE,GAAS02E,GAAI12E,EAAE,GAAGstB,GAAK,EAAC0oN,GAAK,EAAwB,IAAtBvsL,EAAEvG,EAAG0lE,EAAI5oH,EAAE,EAAEg2O,EAAG,EAAE,EAAE,EAAMn2O,EAAE4pD,EAAE,GAAI,EAAC5pD,EAAE,GAAI,GAAG4zB,EAAEyvB,EAAGrjD,EAAE,GAAE,EAAG,EAAE,EAAE,EAAE4zB,EAAE,GAAGA,EAAEzzB,EAAE,EAAE,SAASA,EAAE,EAAEyzB,CAAC,EAAE,QAA2D,KAA9Cs5F,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ4X,EAAI5X,CAAC,EAAEvtH,EAAE,EAAQutH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE/sH,EAAE,EAAER,GAAG,EAAEu/N,IAAI1/N,CAAC,CAAG,CAC/U,SAAS0uN,IAAI/tN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAQ,OAANG,EAAEQ,EAAE,EAASyzB,EAAG,CAAA,IAAK,GAAE,CAACzzB,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,KAAK,CAAC,IAAK,GAAE,CAACA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,KAAK,CAAC,IAAK,GAAE,CAACA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,KAAK,CAAC,IAAK,GAAE,CAACA,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAE,KAAK,CAAC,IAAK,GAAE,CAACA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAGA,EAAE,GAAGR,GAAKQ,EAAE,EAAG,IAAIypD,EAAE,IAAI0S,GAAIn8D,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGpqD,EAAE6jD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAE5pD,EAAEmsH,GAAI3sH,CAAC,EAAEw6H,GAAIh6H,EAAE4zB,CAAC,CAAG,CAC/U,SAASo2M,IAAI7pO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAU,IAARH,EAAE,GAAUutH,EAAEt5F,EAAEkxI,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAGtlK,EAAE0tH,EAAE43C,CAAC,EAAE1xH,IAAKm9B,GAAK,EAAC,EAAA/wE,EAAE,EAAc,GAAE,CAAC6jD,EAAGo4B,GAAIt7E,EAAE,EAAEX,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAIG,EAAEA,GAAGolK,EAAEvlK,EAAE,EAAEwlK,EAAE3hH,EAAGo4B,GAAIt7E,EAAE,EAAE4kK,EAAE,CAAC,EAAE,GAAG,EAAEE,EAAED,EAAE,EAAEE,EAAEpsH,IAAI94C,EAAEilK,EAAE,MAAM,EAAErlK,EAAEqlK,EAAEC,CAAC,EAAE,CAAC,EAAEtlK,EAAE,IAAIkrF,GAAG,EAAGi0D,IAAMkmB,EAAEC,CAAC,EAAE4kE,IAAItqO,EAAEylK,EAAEC,CAAC,EAAEllK,GAAGi/F,EAAK,EAACmE,KAAMnE,EAAG,EAAGsE,GAAI,EAAGyhE,EAAE,EAAE,GAAGC,EAAEjlK,CAAC,EAAEF,EAAEs9K,GAAIj9K,EAAE6kK,EAAEhlK,EAAE4pD,CAAC,EAAEg6H,GAAI5e,EAAE,EAAEA,EAAE,EAAEhlK,CAAC,EAAEF,IAAI,OAAOH,CAAC,CAChV,SAASy2O,IAAIj2O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4C,IAA1C1tH,GAAG,CAACo0B,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIspC,GAAGh3F,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAMj0B,EAAE,IAAI28D,IAAK,CAAC1oC,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIspC,GAAGh3F,EAAE,GAAG,EAAE,GAAGA,EAAE,IAAIj0B,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAKiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,EAAKu6D,EAAG0uD,GAAIh/D,GAAGz5B,KAAMslK,GAAK,CAAA,IAAIv7H,GAAIgjC,GAAG,EAAGsmC,GAAK,IAAEtW,EAAE7pE,EAAGulE,GAAIh1F,EAAE21I,EAAG,EAAE,GAAG,EAAEvpK,EAAEqjD,EAAGulE,GAAIh/D,EAAE2/G,EAAG,EAAE,GAAG,GAAGr8C,GAAGltH,GAAKktH,GAAG+sB,GAAI/sB,EAAEltH,CAAC,KAAK,CAAC4pD,EAAE,IAAIA,EAAE,EAAE,IAAI03B,EAAIspC,GAAGhhE,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,GAAG,IAAIpqD,GAAG42O,IAAIj2O,EAAEypD,CAAC,IAAI,OAAOpqD,CAAC,CAChV,SAAS82M,IAAIn2M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAU,IAARl7G,EAAE,EAAEk7G,EAAE,EAAM53C,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEvtH,EAAE0jD,EAAGm0F,GAAI1zB,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIztD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAImX,EAAG,EAAEk0I,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAAC+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAE37H,EAAE,KAAQ4pD,GAAGk7G,GAAG9kK,GAAGi/F,EAAG,EAAG+5C,IAAKpvF,GAAGjqD,EAAE,GAAE,GAAWmlK,EAAEl7G,IAAG5pD,GAAGi/F,EAAK,EAACmxC,IAAK00B,GAAGnlK,EAAE,GAAI,GAACi0B,EAAE5zB,EAAEwlD,GAAIozD,GAAIj5G,EAAE,GAAI,EAAC,IAAI2W,GAAG,EAAE,IAAI0nB,IAAIpK,CAAC,CAAC,CAAE,CACjV,SAASgjM,IAAIz2N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAiI,IAA/HI,EAAE,EAAE,IAAI+zN,IAAG,IAAIrgL,IAAKorD,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAC,EAAG,IAAIvvD,IAAKk6C,GAAK,EAACsrB,EAAG9hE,EAAGonF,GAAG,CAAC,EAAEplB,EAAI,IAAI,EAAE,CAACqlB,GAAIC,GAAIC,EAAG,CAAC,EAAG,CAAA,EAAM5R,EAAE7T,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAE0hE,EAAE,EAAE/kK,EAAEmtH,EAAE,OAAO43C,EAAE/kK,EAAE,EAAE+kK,EAAU,IAAPtlK,EAAE0tH,EAAE43C,CAAC,EAAM9kK,EAAEq5G,EAAG9hE,EAAGonF,GAAG,CAAC,EAAEplB,EAAI,IAAI,EAAE,CAACqlB,GAAIC,GAAIC,EAAG,CAAC,EAAEl1E,EAAE,EAAEjqD,EAAEK,EAAE,OAAO4pD,EAAEjqD,EAAE,EAAEiqD,EAAGh2B,EAAE5zB,EAAE4pD,CAAC,EAAEqrJ,IAAG90M,EAAE,EAAEX,EAAEo0B,EAAE,IAAIoR,CAAG,CAAG,CACnV,SAASilL,IAAI9pN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAkK,GAAhK/3C,EAAE7pE,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAE,IAAIm+F,GAAG,EAAGqV,GAAK,EAAC3zG,EAAEG,EAAE,EAAE,GAAGyoJ,EAAG,EAAEh/F,EAAEzpD,EAAE,EAAE,GAAG0oJ,EAAG,EAAEkc,EAAE5kK,EAAE,EAAE,GAAG2oJ,EAAG,EAAEmc,EAAE9kK,EAAE,EAAE,IAAI0+F,GAAK,EAACo/D,GAAG,EAAG+G,EAAE,CAAChlK,GAAG,CAAC4pD,IAAIm7G,GAAG73C,EAAE,GAAI,GAAE,GAAG++G,IAAI9rO,EAAEyzB,CAAC,EAAEj0B,EAAE,KAAKI,EAAE,KAAQ+kK,EAAE,CAA+B,IAA9BtlK,EAAE0tH,EAAE,GAAE,EAAGvtH,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEO,EAAEJ,EAAQH,EAAE,GAAE,GAAIO,EAAEsjD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAEG,EAAE,EAAE,EAAE,EAAEI,EAAE,EAAE,EAAE,EAAEilK,GAAG,CAACrlK,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAIslK,IAAGq3C,IAAIpvF,CAAC,EAAK43C,IAAGnlK,EAAE,EAAE,EAAE,EAAEI,EAAE,EAAE,EAAE,GAAG,CACpV,SAASoqN,IAAIhqN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAkK,GAAhK/3C,EAAE7pE,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAE,IAAIm+F,GAAG,EAAGqV,GAAK,EAAC3zG,EAAEG,EAAE,EAAE,GAAGyoJ,EAAG,EAAEh/F,EAAEzpD,EAAE,EAAE,GAAG0oJ,EAAG,EAAE9oJ,EAAEI,EAAE,EAAE,GAAG2oJ,EAAG,EAAEmc,EAAE9kK,EAAE,EAAE,IAAI0+F,GAAK,EAACo/D,GAAG,EAAG8G,EAAE,CAAC/kK,GAAG,CAAC4pD,IAAI7pD,GAAGmtH,EAAE,GAAI,GAAE,GAAGmpH,IAAIl2O,EAAEyzB,CAAC,EAAEoxI,EAAE,KAAKrlK,EAAE,KAAQmlK,EAAE,CAA+B,IAA9BtlK,EAAE0tH,EAAE,GAAE,EAAG83C,EAAE3hH,EAAG7jD,EAAE,GAAI,EAAC,GAAG,EAAEG,EAAEqlK,EAAQxlK,EAAE,GAAE,GAAIG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAEwlK,EAAE,EAAE,EAAE,EAAErlK,EAAE,EAAE,EAAE,EAAEolK,GAAG,CAACC,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAIC,IAAGs3C,IAAIrvF,CAAC,EAAK43C,IAAGE,EAAE,EAAE,EAAE,EAAErlK,EAAE,EAAE,EAAE,GAAG,CACpV,SAAS22O,IAAIn2O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAQ,GAANrlK,EAAEi0B,EAAE,EAAKA,EAAE,GAAG,EAAG,MAAO,GAA8B,GAAnBA,EAAE,EAAE5zB,EAAE,EAAE+oC,EAAI/oC,EAAE,EAAE4zB,CAAC,EAAKj0B,IAAImrF,GAAK,EAAC2+D,KAAM9pJ,GAAG+pJ,IAAK,IAAIx8B,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAM83C,GAAGp7G,EAAE,IAAIvxB,EAAK,IAAIkD,GAAI/7B,CAAC,EAAG,EAAE,CAAC,EAAE,IAAIg8B,GAAIouB,CAAC,GAAGye,GAAI28F,EAAE,CAAC,GAAoC,GAAhCD,EAAE1hH,EAAGyhF,EAAIkgC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEF,EAAEC,EAAE,EAAEhlK,EAAE+kK,EAAE,EAAKlxI,EAAE,GAAGkxI,EAAE,IAAM/kK,GAAG0pJ,IAAK1pJ,GAAG2pJ,KAAQ4sF,IAAIn2O,EAAE2kK,EAAE9kK,CAAC,EAAG,MAAO,GAAU,MAAO,EAAI,CACpV,SAASu2O,GAAIp2O,EAAE,CAAC,IAAIyzB,EAAE,OAAIzzB,EAAE,GAAG,GAAc41N,GAAI51N,CAAC,GAAEyzB,EAAE,IAAI88C,GAAIqlJ,GAAI51N,CAAC,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB2qB,GAAI3qB,GAAGzzB,EAAE,GAAGs9J,KAAM,CAAC,EAAE7pI,EAAE,GAAG,eAAe2qB,GAAI3qB,GAAGzzB,EAAE,GAAGykL,KAAM,CAAC,EAAEhxJ,EAAE,GAAG,gBAAgB2qB,GAAI3qB,GAAGzzB,EAAE,GAAG+6H,KAAM,CAAC,EAAEtnG,EAAE,GAAG,0BAA0B4nC,GAAI5nC,EAAEzzB,EAAE,CAAC,EAAEyzB,EAAE,GAAG,iBAAiB2qB,GAAI3qB,GAAGzzB,EAAE,GAAGukL,KAAM,CAAC,EAAE9wJ,EAAE,GAAG,cAAc2qB,GAAI3qB,GAAGzzB,EAAE,GAAG2zG,KAAM,CAAC,EAAElgF,EAAE,GAAG,IAAWA,EAAE,EAAC,CACpV,SAASuiM,IAAIh2N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAkH,IAAhHvlK,EAAEkkO,IAAI1jO,EAAE,CAAC,EAAE+sH,EAAE7pE,EAAG0lE,EAAI5oH,EAAE,GAAGwqB,GAAG,EAAGwvK,IAAK,EAAC,GAAG,EAAEr1B,EAAE53C,EAAE,EAAEA,EAAE,EAAEntH,EAAEmtH,EAAE,EAAEA,EAAE,EAAE83C,EAAErlK,EAAE,EAAE,EAAEQ,EAAE,EAAE2kK,EAAEC,EAAEplK,EAAE,EAAE,EAAEQ,EAAE,EAAEJ,EAAEi0B,IAAI7zB,EAAE,EAAE,IAAIo1D,GAAIyvG,EAAED,CAAC,CAAC,EAAMG,EAAE,IAAI7sI,EAAIl4B,EAAE,CAAC,EAAE+kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,GAAG,EAAEtxI,EAAEqxI,EAAE,EAAEtlK,EAAE,EAAE,EAAEK,EAAEilK,EAAE,EAAEtlK,EAAE,EAAE,EAAEiqD,EAAE22B,GAAInJ,IAAI,IAAI7hB,GAAI3hC,EAAE5zB,CAAC,EAAEilK,EAAE,EAAEA,EAAE,CAAC,EAAE93F,GAAIkK,GAAIzN,GAAIlE,GAAIu/F,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAI,CAAC,EAAEzlK,EAAEomE,GAAIq/F,EAAE,CAAC,EAAE5sH,IAAI4sH,EAAE,EAAEzkF,GAAI52B,EAAEpqD,CAAC,CAAC,CAAE,CACtV,SAASg3O,IAAIr2O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkF,IAAhFA,EAAEqkE,EAAG8pF,GAAGvjF,EAAI,KAAKs0B,EAAK,EAACoa,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,GAAG,OAAO,EAAE,CAAC,EAAM5jG,EAAE65G,EAAG9hE,EAAGshG,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAACC,GAAIC,GAAIz1C,GAAI6sC,GAAIhtC,EAAG,CAAC,EAAE8pB,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAAGvtH,EAAEH,EAAE0tH,CAAC,EAAEntH,EAAEJ,EAAE,CAAC,EAAEykE,EAAG8pF,GAAGC,GAAI,GAAGhuJ,EAAE,EAAER,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,OAAAswM,IAAIlwM,EAAEI,EAAE64I,EAAG,EAAEi3D,IAAIlwM,EAAEI,EAAEiwI,EAAG,EAAEuzD,GAAI5jM,EAAEI,EAAE64I,GAAIplH,EAAE5zB,EAAE4pD,CAAC,EAAE+5I,GAAI5jM,EAAEI,EAAEojG,GAAI3vE,EAAE5zB,EAAE4pD,CAAC,EAAE+5I,GAAI5jM,EAAEI,EAAEiwI,GAAIx8G,EAAE5zB,EAAE4pD,CAAC,EAAE+5I,GAAI5jM,EAAEI,EAAEijG,GAAIxvE,EAAE5zB,EAAE4pD,CAAC,EAAS7pD,CAAC,CACtV,SAASkmN,IAAI9lN,EAAEyzB,EAAE5zB,EAAE,CAAC,GAAGukD,GAAIpkD,EAAE,EAAEyzB,CAAC,GAAG,GAAGuwB,GAAId,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE5zB,CAAC,EAAG,MAAO,QAAQ25D,GAAIx5D,EAAE,EAAEyzB,EAAE,IAAImW,EAAG,EAAE,GAAGwa,GAAIpkD,EAAE,EAAEH,CAAC,GAAG,GAAGmkD,GAAId,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE4zB,CAAC,EAAG,MAAO,QAAS+lC,GAAIx5D,EAAE,EAAEH,EAAE,IAAI+pC,EAAG,EAAE,GAAGwa,GAAIpkD,EAAE,EAAEyzB,CAAC,GAAG,GAAGuwB,GAAId,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE5zB,CAAC,EAAG,MAAO,QAAS25D,GAAIx5D,EAAE,EAAEyzB,EAAE,IAAImW,EAAG,EAAE,GAAGwa,GAAIpkD,EAAE,EAAEH,CAAC,GAAG,GAAGmkD,GAAId,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE4zB,CAAC,EAAG,MAAO,QAAQ+lC,GAAIx5D,EAAE,EAAEH,EAAE,IAAI+pC,EAAG,EAAE,MAAO,EAAC,CACtV,SAAS0sM,GAAIt2O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,GAAG/kK,GAAG,MAAoB,IAAdL,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAM2kK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAP53C,EAAEvtH,EAAEmlK,CAAC,EAAK53C,EAAE,GAAE,GAAIt5F,EAAG,OAAOi6I,GAAI1tK,EAAE+sH,EAAEtjE,CAAC,EAAI,OAAApqD,GAAGmsD,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAGyvB,EAAGrjD,EAAE,EAAE,EAAE81I,GAAIliH,EAAE5zB,CAAC,GAAMoiE,GAAIjiE,EAAE,CAAC,GAAG4kK,EAAE,CAAC/qG,GAAI75D,EAAEyzB,CAAC,EAAEg2B,EAAEilI,GAAI1uL,EAAEX,EAAEoqD,CAAC,EAAE7pD,EAAE6zB,EAAE,GAAI,EAACq5F,GAAI9sH,EAAE,EAAEyzB,EAAE,KAAK5zB,EAAEo1I,GAAIj1I,EAAEyzB,EAAE5zB,EAAE0rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,EAAEgrF,CAAC,EAAE93C,GAAI9sH,EAAE,EAAEyzB,EAAEA,EAAE,GAAE,EAAG5zB,EAAE,GAAG+kK,CAAC,EAAEn7G,EAAEA,EAAE,GAAG7pD,CAAC,EAAG6pD,EAAE7pD,GAAQ6pD,EAAEilI,GAAI1uL,EAAEX,EAAEoqD,CAAC,EAASA,CAAC,CACtV,SAAS8sL,IAAIv2O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAK/sH,EAAE,IAAI+9F,GAAG,EAAGxa,KAAMvjF,EAAE,GAAGwjF,KAAYhkF,EAAEQ,EAAE,EAAE,EAAE,EAAE4mG,GAAI1jD,EAAG25D,GAAI78G,EAAE,GAAG8+F,EAAK,EAAC+5C,GAAG,EAAG,GAAG,CAAC,EAAE74I,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAE,EAAE,EAAE4mG,GAAI1jD,EAAG25D,GAAI78G,EAAE,EAAEiwI,EAAG,EAAE,GAAG,CAAC,EAAEjwI,EAAE,EAAEypD,EAAEvG,EAAG25D,GAAI78G,EAAE,EAAEojG,EAAG,EAAE,GAAG,EAAE2pB,EAAE7pE,EAAG25D,GAAI78G,EAAE,EAAEijG,EAAG,EAAE,GAAG,EAAE5jG,EAAE0D,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAEjqD,CAAC,EAAEH,EAAE0D,EAAK,KAAK,IAAI1D,EAAE0tH,EAAE,EAAE,EAAEvtH,CAAC,EAAEK,EAAEkD,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAEh2B,CAAC,EAAE5zB,EAAEkD,EAAK,KAAK,IAAIlD,EAAEktH,EAAE,EAAE,EAAEt5F,CAAC,EAAEg2B,EAAE,EAAE,EAAEpqD,EAAE0tH,EAAE,EAAE,EAAE1tH,EAAEoqD,EAAE,EAAE,EAAE5pD,EAAEktH,EAAE,EAAE,EAAEltH,EAAC,CACvV,SAAS22O,IAAIx2O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAsC,IAApCn5C,GAAIn4F,EAAE,2BAA2B,CAAC,EAAM7zB,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAMilK,EAAE,IAAI3sI,EAAIysI,EAAE,CAAC,EAAEE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAME,EAAE,IAAI7sI,EAAI0sI,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoC,IAA3BD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAEh4C,EAAEmc,GAAI47B,EAAE,CAAC,EAAMr7G,EAAEsjE,EAAEvtH,EAAE,EAAEH,EAAEoqD,EAAE,OAAOjqD,EAAEH,EAAE,EAAEG,EAAGK,EAAE4pD,EAAEjqD,CAAC,EAAEyzC,GAAImnC,GAAGwuC,EAAI/oH,GAAGqqH,EAAK,EAAC09D,GAAK,CAAA,CAAC,GAAG5X,GAAInwK,EAAE,EAAK,EAAKgsH,GAAIp4F,CAAC,CAAC,CACvV,SAASwoI,KAAK,CAAC,KAAK,EAAE,IAAIj7F,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIA,GAAI,KAAK,EAAE,IAAIj8B,GAAI,KAAK,EAAE,IAAIA,GAAIgwF,GAAIqG,GAAG,IAAIt8G,IAAI,IAAIC,GAAG,EAAEg2G,GAAI0hH,IAAG,IAAI/2N,IAAI,IAAIC,GAAG,EAAEo1G,GAAI2hH,IAAG,IAAI92N,IAAI,IAAIC,GAAG,EAAEk1G,GAAI4hH,IAAG,IAAI52N,IAAI,IAAIC,GAAG,EAAE+0G,GAAI6hH,IAAG,IAAI32N,IAAI,IAAIC,GAAG,EAAE60G,GAAI8hH,IAAG,IAAI73N,IAAI,IAAIC,GAAG,EAAE81G,GAAI+hH,IAAG,IAAI53N,IAAI,IAAIC,GAAG,EAAE41G,GAAIgiH,IAAG,IAAI33N,IAAI,IAAIC,GAAG,EAAE01G,GAAIiiH,IAAG,IAAI13N,IAAI,IAAIC,GAAG,EAAEw1G,GAAIkiH,IAAG,IAAIz3N,IAAI,IAAIC,GAAG,CAAC,CACxV,SAAS+tG,IAAIxtH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAA1tH,EAAE,EAAEo0B,EAAEmjH,GAAI52I,CAAC,EAAIyzB,EAAE,GAAE,IAAKp0B,GAAG,GAAIW,EAAE,GAAGukL,KAAUllL,GAAG,GAAMksE,EAAGvrE,EAAE,EAAE,GAAGH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAER,EAAE++L,GAAI1+L,CAAC,EAAGA,EAAE,GAAGwwG,KAAUhxG,GAAG,IAAOG,IAAGi6G,GAAI8d,GAAI/3H,CAAC,CAAC,EAAEH,GAAG,EAAE0tH,EAAEvtH,EAAE,GAAGutH,EAAE,GAAGA,GAAG,MAAM1tH,GAAG,IAAKG,EAAE,GAAG6wG,KAAUhxG,GAAG,KAAKQ,EAAE,GAAG+5E,KAAUv6E,GAAGolL,IAAKplL,GAAGi+J,IAAY/xF,EAAG93C,EAAE,GAAG,EAAGp0B,GAAG,KAASoqD,EAAEh2B,EAAE,GAAE,EAAKg2B,GAAIA,EAAE,EAAE,IAAQpqD,GAAG,MAAOW,EAAE,GAAG,MAAUX,GAAG,KAAYA,CAAC,CACxV,SAASuvJ,GAAG5uJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA2B,IAAzB/sH,EAAEA,GAAG,KAAKixE,IAAKngD,GAAI9wB,CAAC,EAAEA,GAAOR,EAAE,EAAEA,EAAEi0B,EAAE,OAAOj0B,IAAKi0B,EAAEj0B,CAAC,EAAEwhO,IAAGvtM,EAAEj0B,CAAC,CAAC,EAAoB,IAAlBK,EAAE,IAAIs2C,GAAI42E,EAAE,EAAEtjE,EAAE,EAAQA,EAAEh2B,EAAE,SAAQp0B,EAAEW,EAAE,QAAQ,KAAK+sH,CAAC,EAAK1tH,GAAG,KAAUQ,EAAE,GAAG,GAAG2+D,GAAIx+D,GAAG,KAAKixE,IAAKngD,GAAI9wB,CAAC,EAAEA,GAAG+sH,EAAE1tH,CAAC,EAAEk8D,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAEsjE,EAAE1tH,EAAE,EAAsB,GAApBgpI,IAAIxoI,EAAEG,EAAE+sH,EAAE/sH,EAAE,MAAM,EAAKypD,EAAEh2B,EAAE,OAAO,CAAyB,IAAxB5zB,EAAE,GAAG,KAAK07D,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAQA,EAAEh2B,EAAE,QAAQ5zB,EAAE,GAAG41C,GAAI8lB,GAAI17D,EAAE4zB,EAAEg2B,GAAG,CAAC,EAAE5pD,EAAE,GAAG,GAAG,CAAC,OAAOA,EAAE,CAAC,CACzV,SAASgqK,IAAI7pK,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAA0B,IAAxBA,EAAE,IAAI01E,GAAI/0E,EAAE,EAAE,EAAE,MAAM,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAqD,OAApDiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEK,EAAEqjD,EAAG0lE,EAAIn/D,GAAGn8B,GAAG,EAAG4jJ,GAAG,EAAG,GAAG,EAAEz9I,EAAE,KAAY5zB,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE4zB,GAAGm7D,KAAM0vC,IAAK,MAAM,IAAK,GAAE,IAAK,GAAE7qG,GAAGm7D,KAAMyvC,GAAK,CAAI5qG,GAAGqvD,EAAIr5B,GAAGygE,IAAMgtH,KAAMtoJ,GAAG,EAAG0vC,GAAG,EAAG7qG,GAAG4qG,GAAI2rG,GAAIvgL,EAAE5pD,GAAGmyF,GAAG,EAAGytC,GAAG,EAAGhsG,GAAG6qG,IAAK0rG,GAAIvgL,EAAE5pD,GAAGmyF,KAAM0tC,MAAWrgI,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEoqD,CAAE,CAAC,OAAOpqD,CAAC,CACzV,SAAS49G,GAAIj9G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAM,IAAJC,EAAE,EAAMD,EAAE,IAAIs4B,EAAIzE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAuC,IAAtC+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEo7K,GAAIh7K,EAAE,EAAEA,EAAE,EAAE2kK,EAAE,CAAC,CAAC,EAAE53C,EAAE,EAAMvtH,EAAE,IAAImhJ,GAAIgkB,EAAE,CAAC,EAAEz8F,GAAI1oE,EAAE,CAAC,GAAG0oE,GAAI1oE,EAAE,CAAC,GAAIiqD,EAAEvG,EAAGglB,GAAI1oE,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAE,EAAE,EAAKu/G,IAAIt1D,CAAC,GAAGpqD,EAAEq/C,GAAI1+C,EAAE2kK,GAAGl7G,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAKpqD,EAAEW,EAAE,EAAE2kK,EAAE,CAAC,IAAG9kK,GAAGg4I,GAAI73I,EAAE,EAAEX,CAAC,EAAE0xI,GAAI/wI,EAAE,EAAEutI,EAAIluI,CAAC,CAAC,IAAQ,EAAE0tH,EAAc,IAAXltH,GAAGG,EAAE,EAAE,EAAE+sH,EAAQ,CAACz5E,GAAItzC,EAAE,CAAC,GAAGsyJ,GAAItyJ,EAAE,EAAEkjD,EAAGoyD,GAAIt1G,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAOH,CAAC,CACzV,SAASs3O,IAAIn3O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAGG,EAAE,GAAGonG,IAAKvnG,EAAE0/G,GAAI0vC,IAAK83C,KAAMC,IAAKvzK,CAAC,CAAC,EAASzzB,EAAE,EAAEH,GAAG,GAAG4zB,IAAI+gM,GAAK,EAACC,KAAMhhM,IAAI+gM,KAAME,KAAMjhM,IAAI+gM,GAAG,EAAGG,KAAMlhM,IAAI+gM,GAAG,EAAGI,IAAK/0N,GAAG,GAAOG,EAAE,IAAIA,EAAE,EAAE,GAAGyzB,CAAC,GAAGzzB,EAAE,EAAE,GAAGykI,GAAIwqB,IAAK83C,GAAG,EAAGC,IAAKvzK,CAAC,CAAC,CAAC,GAAGzzB,EAAE,EAAE,GAAG2zK,IAAKozB,GAAK,EAACC,IAAKhnM,EAAE,EAAEyzB,CAAC,CAAC,GAAW,GAAQzzB,EAAE,GAAM0lO,IAAK3+B,KAAM/mM,EAAE,GAAGgjH,GAAIisC,GAAI+3C,GAAIvzK,CAAC,CAAC,CAAC,GAAG5zB,EAAE0/G,GAAI0vC,GAAI+3C,GAAIvzK,CAAC,CAAC,EAASzzB,EAAE,EAAEH,GAAG,EAAEA,GAAG,GAAU,EAAK,CACzV,SAASu3O,IAAIp3O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,OAAA/3C,EAAE7pE,EAAGulE,GAAI5oH,GAAGmwB,GAAK,EAACiqJ,GAAK,EAAC,CAAC,EAAEr6K,EAAEmtH,EAAE,EAAE83C,EAAE93C,EAAE,EAAE/sH,EAAER,EAAEuD,EAAK,KAAK,MAAM8hK,EAAEjlK,CAAC,EAAEJ,EAAE,IAAIA,GAAGqyM,IAAKryM,GAAGi0B,EAAEj0B,EAAEqyM,KAAMryM,GAAGqyM,IAAKltC,EAAEzhH,EAAGulE,GAAIh/D,EAAEwwH,EAAG,EAAE,CAAC,EAAErV,EAAED,EAAE,EAAEG,EAAEH,EAAE,EAAE3kK,EAAEX,EAAE0D,EAAK,KAAK,MAAM+hK,EAAEF,CAAC,EAAEvlK,EAAE,IAAIA,GAAGwyM,IAAKxyM,GAAGo0B,EAAEp0B,EAAEwyM,KAAMxyM,GAAGwyM,IAAY1qI,GAAI,EAAC0yF,GAAG,KAAO,EAAE92J,EAAK,KAAK,IAAIvD,EAAEH,CAAC,GAAG,OAASG,GAAGH,GAAG,MAAMG,CAAC,GAAG,MAAMH,CAAC,EAAE,EAAEG,EAAEH,EAAE,GAAGG,EAAEH,EAAE,EAAE6/D,GAAG,MAAM1/D,CAAC,EAAE,MAAMH,CAAC,CAAC,CAAC,CAC1V,SAASg4O,GAAIr3O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVA,EAAE,IAAI5/H,GAAQ0kB,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASh2B,EAAEyvB,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE+P,GAAImrG,EAAElxI,EAAE,IAAIoR,CAAG,EAAE,IAAIrlC,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiC,IAAxBi0B,EAAEyvB,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEi0B,EAAE,EAAE4jF,GAAQ0V,EAAEt5F,EAAE,EAAE,GAAI,EAACs5F,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAE7pE,EAAG4W,GAAGm7C,GAAI0vD,EAAE,EAAEtlK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAGo0B,CAAC,EAAG,IAAI5zB,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAEyvB,EAAG4W,GAAGm7C,GAAI0vD,EAAE,EAAElxI,CAAC,CAAC,EAAE,EAAE,EAAEwwK,IAAIjkM,CAAC,CAAC,CAC3V,SAASs3O,GAAIt3O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVA,EAAE,IAAI5/H,GAAQ0kB,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASh2B,EAAEyvB,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE+P,GAAImrG,EAAElxI,EAAE,IAAIoR,CAAG,EAAE,IAAIrlC,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiC,IAAxBi0B,EAAEyvB,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEi0B,EAAE,EAAE4jF,GAAQ0V,EAAEt5F,EAAE,EAAE,GAAI,EAACs5F,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAE7pE,EAAG4W,GAAGm7C,GAAI0vD,EAAE,EAAEtlK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAGo0B,CAAC,EAAG,IAAI5zB,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAEyvB,EAAG4W,GAAGm7C,GAAI0vD,EAAE,EAAElxI,CAAC,CAAC,EAAE,EAAE,EAAEyhJ,IAAIl1K,CAAC,CAAC,CAC3V,SAASu3O,IAAIv3O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAiD,IAA/C6wM,IAAIlwM,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAE11B,IAAIN,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAE5zB,CAAC,EAAEm0B,IAAIP,EAAEzzB,EAAE,EAAEyzB,EAAE,EAAEg2B,CAAC,EAAMpqD,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,OAAjBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAASG,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE6yK,GAAIryK,EAAEyzB,EAAE,EAAEj0B,EAAE,EAAE,EAAE,EAAEi0B,EAAE,EAAEj0B,EAAE,EAAE,EAAEi0B,EAAE,EAAE,CAAC,EAAE,MAAM,IAAK,GAAE4+I,GAAIryK,EAAEyzB,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEj0B,EAAE,EAAE,EAAEQ,EAAE,EAAE,EAAEyzB,EAAE,EAAEj0B,EAAE,EAAE,CAAC,EAAE,MAAM,IAAK,GAAE6yK,GAAIryK,EAAEyzB,EAAE,EAAEj0B,EAAE,EAAE,EAAEi0B,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEj0B,EAAE,EAAE,EAAEQ,EAAE,EAAE,CAAC,EAAE,MAAM,QAAQqyK,GAAIryK,EAAE,EAAEyzB,EAAE,EAAEj0B,EAAE,EAAE,EAAEi0B,EAAE,EAAE,EAAEA,EAAE,EAAEj0B,EAAE,EAAE,CAAC,CAAE,CAAE,CAC3V,SAAS+yK,GAAI9+I,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAAC,GAAGC,GAAG4zB,EAAE,EAAG,MAAMiS,EAAI,IAAI+C,EAAG,EAAE7oC,EAAEC,GAAG,EAAE8kK,EAAE9kK,EAAE,GAAGktH,EAAEzb,GAAI,EAAErE,GAAIqE,GAAIqzD,EAAE,CAAC,CAAC,CAAC,EAAEtlK,EAAGo0B,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEilI,GAAIpxG,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEmtH,CAAC,EAAIt5F,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEi7H,GAAIpnG,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAE8iG,GAAIqqB,CAAC,CAAC,EAAGA,EAAEzb,GAAIyb,EAAE,CAAC,EAAEvtH,EAAGi0B,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEilI,GAAIpxG,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEmtH,CAAC,EAAIt5F,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAEi7H,GAAIpnG,EAAE,EAAEg2B,CAAC,EAAE7pD,CAAC,EAAE8iG,GAAIqqB,CAAC,CAAC,CAAE,OAAO/sH,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAS0lC,EAAI,IAAIwM,GAAImwJ,GAAI5uK,EAAE,EAAE,IAAIA,EAAE,EAAE6uK,GAAIziM,EAAE41C,GAAIgU,EAAE84I,EAAG,CAAC,EAAa78J,EAAI1lC,CAAC,CAAC,CAAC,CAC5V,SAASwzO,GAAIxzO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAKt5F,IAAGp0B,EAAE6zC,EAAImnC,EAAGuuC,EAAIn1F,GAAG4vJ,GAAK,EAACm0D,GAAG,CAAE,CAAC,EAAE/tL,EAAEsjE,EAAEltH,EAAEqzC,EAAImnC,EAAGuuC,EAAIn1F,EAAEg7M,EAAG,CAAC,CAAC,EAAE,EAAE3rJ,EAAIrvD,EAAEyyL,GAAI34E,EAAItgC,GAAIxnB,GAAI1iF,EAAK,KAAK,MAAM1D,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEyjF,EAAIrvD,EAAE0yL,IAAI54E,EAAItgC,GAAIxnB,GAAI1iF,EAAK,KAAK,MAAMgqH,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEt5F,EAAE,EAAE,GAAG,GAAG+/M,GAAIxzO,EAAEkjD,EAAGkoB,IAAI5rE,EAAE85J,GAAK,IAAIr5H,GAAIxM,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAIyM,GAAI1gC,CAAC,EAAC,EAAG,EAAE,EAAEK,EAAEqzC,EAAImnC,EAAGuuC,EAAIn1F,EAAEg7M,EAAG,CAAC,CAAC,EAAEzuO,EAAE,EAAEypD,EAAEvW,EAAImnC,EAAGuuC,EAAIn1F,EAAEgkN,EAAG,CAAC,CAAC,CAAC,EAAE7uH,EAAIn1F,EAAE89M,EAAG,GAAG,MAAMiC,GAAIxzO,EAAEkjD,EAAG0lE,EAAIn1F,EAAE89M,EAAG,EAAE,EAAE,EAAE1xO,EAAE4pD,CAAC,EAAE,CAC5V,SAASs/H,IAAI/oL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAgI,IAA9HnlK,EAAEq+G,GAAIxqF,EAAE,CAAC,EAAEj0B,EAAE0zC,EAAImnC,EAAGuuC,EAAIhpH,GAAG0tB,GAAG,EAAG2/J,GAAK,CAAA,CAAC,EAAE,EAAEpoB,EAAE3xH,EAAImnC,EAAGuuC,EAAIhpH,EAAEstL,EAAG,CAAC,CAAC,EAAEtoB,EAAE7hK,EAAK,KAAK,IAAIvD,EAAEqlK,CAAC,EAAExlK,EAAE4kE,EAAG8pF,GAAGC,GAAI,GAAGv6H,EAAE,EAAEA,EAAE,EAAE,EAAE,GAAG,CAAC,EAAEg2B,EAAE,CAACm7G,EAAE/kK,EAAE,EAAM8kK,EAAElxI,EAAE,EAAE,GAAE,EAAGkxI,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAEl7G,GAAGzpD,EAAE,EAAE+sH,EAAE,EAAE,CAAC,EAAE63C,EAAEvlK,EAAEQ,GAAG,EAAE4pD,EAA6B,IAA3BA,GAAGzpD,EAAE,EAAEyzB,EAAE,EAAE,EAAE,CAAC,EAAEmxI,EAAEvlK,EAAEQ,GAAG,EAAE4pD,EAAMs7G,EAAE,IAAI7sI,EAAIzE,EAAE,CAAC,EAAEsxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAEt7G,GAAGzpD,EAAE,EAAE8kK,EAAE,EAAE,CAAC,EAAEF,EAAEvlK,EAAEQ,GAAG,EAAE4pD,EAAE,OAAOpqD,CAAC,CAC7V,SAAS+yM,IAAIpyM,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAwB,IAAtBA,EAAE,IAAIjnH,GAAI,IAAI7e,IAAIj/B,CAAC,CAAC,EAAM2kK,EAAEzrD,EAAG9hE,EAAGi2E,GAAG,CAAC,EAAEC,GAAI,GAAG,EAAE,CAAC75F,EAAE5zB,CAAC,CAAC,EAAED,EAAE,EAAEglK,EAAED,EAAE,OAAO/kK,EAAEglK,EAAE,EAAEhlK,EAAU,IAAPmtH,EAAE43C,EAAE/kK,CAAC,EAAMklK,EAAEgO,GAAI/lD,EAAEtjE,CAAC,EAAE,GAAI,EAACq7G,EAAE,GAAE,GAAqB,IAAhBD,EAAE3hH,EAAG4hH,EAAE,GAAE,EAAG,EAAE,EAAMzlK,EAAE,IAAIshJ,GAAIkkB,EAAE,CAAC,EAAE38F,GAAI7oE,EAAE,CAAC,GAAG6oE,GAAI7oE,EAAE,CAAC,GAAIG,EAAE0jD,EAAGglB,GAAI7oE,EAAE,CAAC,EAAEslI,EAAItlI,EAAE,CAAC,EAAEslI,EAAItlI,EAAE,CAAC,EAAE,EAAE,EAAMsnG,GAAInnG,CAAC,IAAG64G,GAAI0sD,EAAE,EAAEF,GAAGz0F,GAAG,EAAGC,GAAG,GAAI,KAAK0uC,IAAIv/G,CAAC,GAAG44G,GAAI2sD,EAAEF,GAAGrlK,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,GAAK,OAAOg2C,GAAGuvH,CAAC,EAAE,IAAI5/E,GAAI4/E,CAAC,CAAC,CAC7V,SAAS2yE,IAAI13O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAoD,GAAlDA,EAAE6jD,EAAGulE,GAAIzoH,GAAGgwB,GAAG,EAAG2nN,GAAG,EAAG,EAAE,EAAE,EAAEz0L,EAAGulE,GAAIh1F,EAAEkkN,EAAG,EAAE,EAAE,EAAE,EAAKt4O,GAAG,EAAG,OAAOA,EAA0C,GAAxCQ,EAAEqjD,EAAGulE,GAAIzoH,EAAE43O,EAAG,EAAE,EAAE,EAAEnuL,EAAEvG,EAAGulE,GAAIh1F,EAAEmkN,EAAG,EAAE,EAAE,EAAO/3O,GAAK4pD,IAAGjqD,EAAEK,EAAE,EAAE4pD,EAAE,EAAKjqD,GAAG,GAAG,OAAOA,EAAG,OAAO0jD,EAAGulE,GAAIzoH,EAAE23O,EAAG,EAAE,EAAE,EAAE,GAAG,IAAK,GAAE,OAAO/4K,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAI5+D,EAAE,EAAEyzB,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO4+D,GAAInrC,EAAE,EAAEzzB,EAAE,CAAC,EAAE,QAAQ,MAAM0lC,EAAI,IAAIoN,GAAI8/L,GAAG,CAAC,CAAE,CAAC,CAC7V,SAASxN,GAAIplO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAIzpD,EAAE,GAAG,GAAcgkN,GAAIhkN,CAAC,GAAEyzB,EAAE,IAAI+8C,GAAIqnK,GAAG,EAAEh4O,EAAEG,EAAE,EAAMH,EAA4I27D,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAG5zB,CAAC,EAAE,GAAG,GAArK,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAMA,EAAE,EAAE,EAAE,IAAGypD,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGkjD,EAAGwpG,EAAI1sJ,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAACypD,GAAG+R,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAGg2B,CAAC,EAAE,GAAG,IAAsC+R,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,IAAK5qB,EAAE,GAAG,KAAKA,GAAGzzB,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,GAAG,EAASyzB,EAAE,EAAC,CAC7V,SAAS8wM,IAAIvkO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAIzpD,EAAE,GAAG,GAAcgkN,GAAIhkN,CAAC,GAAEyzB,EAAE,IAAI+8C,GAAIsnK,GAAG,EAAEj4O,EAAEG,EAAE,EAAMH,EAA4I27D,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAG5zB,CAAC,EAAE,GAAG,GAArK,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAMA,EAAE,EAAE,EAAE,IAAGypD,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGkjD,EAAGwpG,EAAI1sJ,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAACypD,GAAG+R,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAGg2B,CAAC,EAAE,GAAG,IAAsC+R,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,GAAImd,GAAInd,IAAK5qB,EAAE,GAAG,KAAKA,GAAGzzB,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,CAAC,EAAE,GAAG,EAAEA,EAAE,CAAC,EAAE,GAAG,EAASyzB,EAAE,EAAC,CAC7V,SAASy1I,GAAIlpK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG6zB,GAAG,MAAMA,EAAE,QAAQ,EAAG,OAAO,KAA0B,GAArBj0B,EAAE0jD,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAK,CAACj0B,EAAE,CAAC,IAAIiqD,GAAGk7G,EAAG,IAAI3tI,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,IAAIw3B,GAAImtI,CAAC,GAAGl7G,EAAE,EAAE,GAAE,GAA2D,GAAtD5pD,GAAGR,EAAE6jD,EAAGuG,EAAE,EAAE,GAAE,EAAG,EAAE,EAAEvG,EAAG7jD,EAAE,GAAE,EAAG,GAAG,GAAG0tH,EAAEltH,EAAE,EAAED,EAAE6zB,EAAE,OAAU4uD,GAAI0qC,EAAE,OAAOA,EAAE,OAAOntH,EAAEA,CAAC,EAAE6zB,CAAC,IAAIA,EAAE,QAAQs5F,EAAE,QAAQ7U,GAAI6U,EAAEA,EAAE,OAAOt5F,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAGj0B,EAAG,OAAO,KAAKA,EAAEK,CAAC,CAAIL,GAAG+pD,GAAIvpD,EAAE,EAAEyzB,EAAEj0B,CAAC,CAAC,CAAC,OAAOA,CAAC,CAC/V,SAASu4O,IAAI/3O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAwR,OAAtRQ,EAAE,IAAIuI,IAAIqhD,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAEH,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAACg1C,IAAKD,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEh8H,EAAEiqD,EAAE,KAAKA,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE5zB,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAACqiB,GAAID,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEn8H,EAAEoqD,EAAE,KAAQjqD,EAAEH,EAAU,GAAMG,GAAGH,EAAU,EAAS,CAAC,CAChW,SAAS24O,IAAIh4O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAMitB,GAAI12E,GAAGstB,GAAG,EAAGq3K,GAAK,IAASl7I,EAAEvG,EAAG0lE,EAAI5oH,EAAE2kM,EAAG,EAAE,EAAE,EAAK,CAAAl7I,EAAE,OAAa5pD,GAAG4zB,EAAEyvB,EAAGxH,GAAI0+G,EAAE,EAAE,CAAC,EAAE,IAAIp1E,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAGg2B,EAAE,IAAI8zC,GAAK,EAACo9D,GAAK,EAACptD,GAAI1tG,EAAE86J,EAAG,EAAEptD,GAAI1tG,EAAE+6J,EAAG,EAAEnxG,EAAE,GAAGoxG,EAAG,GAAGttD,GAAI1tG,EAAEg7J,EAAG,EAAEpxG,EAAE,GAAG4wG,EAAG,EAAE9sD,GAAI1tG,EAAE26J,EAAG,EAAE/wG,EAAE,GAAG6wG,EAAG,EAAE/sD,GAAI1tG,EAAE46J,EAAG,EAAEhxG,EAAE,GAAG8wG,EAAG,GAAGhtD,GAAI1tG,EAAE66J,EAAG,EAAEjxG,EAAE,GAAG+wG,EAAG,EAAEjtD,GAAI1tG,EAAEw6J,EAAG,EAAE5wG,EAAE,GAAGgxG,EAAG,EAAEltD,GAAI1tG,EAAEy6J,EAAG,EAAE7wG,EAAE,GAAGixG,EAAG,GAAGntD,GAAI1tG,EAAE06J,EAAG,EAAEz3E,EAAI9iF,EAAE2kM,GAAI9kM,CAAC,GAAC,CAChW,SAASo4O,IAAIj4O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAwE,IAAtEnlK,EAAE0jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACwuD,GAAG,EAAG,EAAE,EAAEjvH,EAAEzpD,EAAE,EAAEH,GAAGg9D,GAAI,EAAEpT,EAAE,EAAE,MAAM,EAAEvG,EAAGuG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAOsjE,EAAE,IAAI70F,EAAI14B,EAAE,CAAC,EAAEutH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAKhzD,EAAG16D,CAAC,IAAI06D,EAAG6uD,EAAI/oH,EAAEouJ,EAAG,CAAC,EAAE,CAAI5uJ,EAAE,IAAIy/F,EAAG,EAAG+5C,KAAM74I,EAAE,EAAER,EAAE,GAAGknC,GAAIrnC,EAAE4wI,EAAG,EAAK5wI,EAAE,IAAGslK,EAAEtlK,EAAE,EAAE,EAAEo0B,EAAEp0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEslK,EAAElxI,IAAWp0B,EAAE,GAAG4wI,IAAKzwI,EAAE,EAAEQ,EAAE,IAAG0mC,GAAIrnC,EAAEw5I,EAAG,EAAKx5I,EAAE,IAAGslK,EAAEtlK,EAAE,EAAE,EAAEo0B,EAAEp0B,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEslK,EAAElxI,KAAI,KAAK,CAAE,OAAOj0B,CAAC,CAChW,SAASw/N,IAAIh/N,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAM,GAAJN,EAAEQ,EAAKA,EAAE4pD,EAA4L,IAAzLs7G,GAAGtlK,EAAE,IAAI6sK,GAAItsK,EAAE,CAAC,EAAEL,EAAE,IAAI2sK,GAAItsK,EAAE,CAAC,EAAEykD,GAAGhlD,EAAE,EAAEO,EAAE,CAAC,EAAEP,EAAE,EAAEO,EAAE,EAAEP,EAAE,EAAEE,EAAEi5G,GAAIn5G,CAAC,EAAEglD,GAAG9kD,EAAE,EAAEK,EAAE,CAAC,EAAEL,EAAE,EAAEF,EAAEm5G,GAAIj5G,CAAC,EAAE,IAAIg3D,GAAIl3D,EAAEE,CAAC,GAAGmlK,EAAE5hH,EAAG6hH,EAAE,EAAE,GAAG,EAAEF,EAAE3hH,EAAG6hH,EAAE,EAAE,GAAG,EAAEvlK,GAAGq9D,GAAIx9D,EAAEo0B,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEp0B,CAAC,EAAE,GAAG,GAAG0tH,EAAEqkH,IAAIpxO,EAAE8kK,EAAED,EAAErlK,CAAC,EAAMolK,EAAE/kK,EAAE,EAAE+kK,GAAGn7G,EAAEm7G,IAAKD,GAAG9nG,GAAI+nG,EAAEnxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEmxI,CAAC,EAAE,GAAG,GAAGhlK,EAAEwxO,IAAIpxO,EAAE8kK,EAAED,EAAEF,CAAC,EAAK43B,IAAI53B,EAAE/kK,EAAEJ,EAAEutH,CAAC,IAAGvtH,EAAEmlK,EAAE53C,EAAEntH,GAAI,OAAOP,CAAC,CAChW,SAASuvO,GAAI5uO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,GAAG,EAAEv5F,EAAG93C,EAAE,GAAG,GAAG83C,EAAG93C,EAAE,GAAG,GAAG83C,EAAG93C,EAAE,GAAG,GAAI,MAAMiS,EAAI,IAAImN,GAAI,+DAA+D,CAAC,EAAE,OAAAk6E,EAAE/sH,EAAE,EAAE,EAAEJ,EAAE6zB,EAAE,EAAEg2B,EAAEsjE,EAAE83C,EAAEpxI,EAAE,EAAEj0B,EAAEutH,EAAE63C,EAAEhlK,EAAE6zB,EAAE,EAAEzzB,EAAE,EAAE8kK,EAAED,EAAEpxI,EAAE,EAAEzzB,EAAE,EAAEX,EAAE,IAAIstC,GAAIk5D,GAAIxmG,EAAE,IAAI+1D,GAAIx1D,EAAEilK,CAAC,CAAC,EAAEh/D,GAAIxmG,EAAE,IAAI+1D,GAAIx1D,EAAEklK,CAAC,CAAC,EAAEj/D,GAAIxmG,EAAE,IAAI+1D,GAAIwvG,EAAEE,CAAC,CAAC,EAAEj/D,GAAIxmG,EAAE,IAAI+1D,GAAIwvG,EAAEC,CAAC,CAAC,EAAEF,EAAE,IAAI8yD,GAAIp4N,CAAC,EAAEy/I,GAAI6lB,EAAElxI,CAAC,EAAE5zB,GAAG25D,GAAIx5D,EAAE,EAAEyzB,EAAEkxI,CAAC,EAASA,CAAC,CACjW,SAASxa,GAAInqJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAiB,IAAf1lK,EAAE,IAAI+1D,GAAI3hC,EAAE5zB,CAAC,EAAMglK,EAAE,IAAI3sI,EAAIl4B,EAAE,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoC,IAA3BD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEzkF,GAAIwkF,EAAE,EAAEvlK,CAAC,EAAM0lK,EAAE,IAAI7sI,EAAI0sI,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAMvlK,EAAE,IAAI04B,EAAI4sI,EAAE,CAAC,EAAEtlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA8E,IAArEiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAE4wI,GAAI3mF,EAAE,EAAEpqD,CAAC,EAAE0tH,EAAE7pE,EAAG0lE,EAAIn/D,GAAGn8B,GAAG,EAAGyxH,GAAK,EAAC,EAAE,EAAIhyB,GAAGqjB,GAAIrjB,EAAE1tH,CAAC,EAAMO,EAAE,IAAIs4B,EAAIuxB,EAAE,CAAC,EAAE7pD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEwgF,GAAIukF,EAAE,EAAEtlK,CAAC,CAAK,CACjW,SAAS64O,IAAIl4O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAiB,IAAf1lK,EAAE,IAAI+1D,GAAI3hC,EAAE5zB,CAAC,EAAMglK,EAAE,IAAI3sI,EAAIl4B,EAAE,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoC,IAA3BD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEzkF,GAAIwkF,EAAE,EAAEvlK,CAAC,EAAM0lK,EAAE,IAAI7sI,EAAI0sI,EAAE,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAMvlK,EAAE,IAAI04B,EAAI4sI,EAAE,CAAC,EAAEtlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA8E,IAArEiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAE4wI,GAAI3mF,EAAE,EAAEpqD,CAAC,EAAE0tH,EAAE7pE,EAAG0lE,EAAIn/D,GAAGn8B,GAAG,EAAGyxH,GAAK,EAAC,EAAE,EAAIhyB,GAAGqjB,GAAIrjB,EAAE1tH,CAAC,EAAMO,EAAE,IAAIs4B,EAAIuxB,EAAE,CAAC,EAAE7pD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEwgF,GAAIukF,EAAE,EAAEtlK,CAAC,CAAK,CACjW,SAAS84O,IAAIn4O,EAAE,CAAC,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAIyO,GAAI,2BAA2B,CAAC,EAAO,IAAI,CAACn0C,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAIyO,GAAI,2BAA2B,CAAC,EAAqC,GAA9B,CAACn0C,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAM,EAAEA,EAAE,EAAE,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAG,IAAK,MAAM0lC,EAAI,IAAIyO,GAAI,+BAA+B,CAAC,CAAG,CACjW,SAASikM,IAAIp4O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAyB,IAAvBA,EAAE,EAAEzlK,EAAE,IAAIslC,GAAIosG,GAAI1xI,EAAEo0B,CAAC,EAAQp0B,EAAE,GAAGA,EAAE,GAA0K,IAAvKO,EAAEsjD,EAAGoyD,GAAIj2G,CAAC,EAAE,GAAG,EAAEulK,EAAE,EAAEC,EAAE3hH,EAAG0lE,EAAIn1F,EAAE,GAAGnG,GAAG,EAAG+qN,GAAK,EAAC,GAAG,EAAEtrH,EAAE75E,EAAImnC,EAAGuuC,EAAIn1F,EAAE,EAAE6kN,EAAG,CAAC,CAAC,EAAE3zE,EAAEzxH,EAAImnC,EAAGuuC,EAAIn1F,EAAE,EAAE8kN,GAAG,CAAC,CAAC,EAAK1zE,IAAIryE,GAAG,EAAGqtC,MAAM+kC,GAAG73C,EAAEkxG,IAAIr+N,EAAE,EAAEilK,CAAC,EAAED,GAAGD,EAAEsmE,IAAIrrO,EAAE,CAAC,GAAEklK,GAAGkhC,IAAIpmM,EAAE,EAAEA,EAAE,CAAC,EAAEglK,EAAMplK,EAAE,IAAI04B,EAAIt4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEK,EAAEqjD,EAAGo4B,GAAIt7E,EAAE,EAAEypD,EAAE,CAAC,EAAE,GAAG,EAAE5pD,EAAE,IAAIilK,GAAGqmD,GAAInrN,EAAEH,CAAC,GAAI,OAAOilK,CAAC,CACjW,SAASqF,IAAInqK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAgL,IAA9K3qN,EAAEg0B,EAAE,OAAO7zB,EAAEH,EAAEuiH,GAAI,EAAEvuF,EAAE,MAAM,EAAKA,EAAE,WAAW,CAAC,GAAG,IAAIqxI,EAAE,GAAGC,EAAE,EAAE,EAAEtlK,IAAOqlK,EAAE,EAAEC,EAAE,GAAE1lK,GAAGm5O,GAAG,EAAGC,KAAK,EAAE,EAAEj5O,EAAEC,EAAEJ,EAAE,EAAE+qN,EAAE3qN,EAAEJ,EAAE+qN,GAAG,GAAG,EAAE5qN,EAAEmlK,EAAE1gG,EAAG4gD,GAAGsP,GAAI,GAAG30H,EAAE,GAAG,CAAC,EAAEK,EAAE64O,IAAI,CAAC,EAAE3rH,EAAE,EAAEptH,EAAEolK,GAAGqlD,GAAG,EAAE/qN,EAAE+qN,GAAOnqN,EAAE8kK,EAAE9kK,EAAEL,EAAEK,EAAEN,EAAEA,EAAEM,EAAEZ,EAAGoqD,EAAE09I,GAAI1zK,EAAE,OAAOxzB,EAAEN,EAAEM,CAAC,EAAE8zJ,GAAI72E,EAAG,EAAE0nF,GAAG1R,GAAG,EAAGwuB,GAAI/c,EAAEA,EAAE53C,EAAEltH,CAAC,GAAG+kK,GAAGwpB,IAAIzpB,EAAE53C,EAAEtjE,CAAC,EAAEk7G,EAAE53C,GAAG,EAAE63C,EAAEC,EAAE93C,EAAE/sH,EAAE,EAAE8kK,EAAE9kK,EAAE,EAAE6kK,EAAE7kK,EAAE,EAAE2kK,EAAEj8B,GAAI1oI,CAAC,CAAC,CAClW,SAAS24O,IAAI34O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAuF,GAAtF/sH,EAAE,EAAEypD,EAAE,GAAE,EAAG,EAAEzpD,EAAE,EAAEypD,EAAE,GAAI,EAAC,EAAKjqD,IAAGQ,EAAE,GAAGR,EAAE,GAAE,EAAG,EAAEQ,EAAE,GAAGR,EAAE,GAAI,EAAC,GAAEQ,EAAE,EAAEyzB,EAAE,GAAE,EAAG,EAAEzzB,EAAE,EAAEyzB,EAAE,GAAI,EAAC,EAAK,CAACj0B,EAAGK,EAAGG,EAAE,GAAG+sH,EAAEt5F,EAAE,GAAI,EAAC,EAAIzzB,EAAE,GAAGypD,EAAE,GAAE,EAAG,EAAEsjE,MAAQ,QAAOvtH,EAAE,GAAE,EAAG,EAAG,CAAA,IAAK,GAAE,IAAK,GAAEQ,EAAE,GAAGR,EAAE,GAAI,EAAC,EAAEutH,EAAE1tH,EAAE,EAAE0tH,EAAE,MAAM,IAAK,GAAE/sH,EAAE,GAAG+sH,EAAE1tH,EAAE,EAAE0tH,EAAEt5F,EAAE,GAAE,EAAG,EAAE,MAAM,IAAK,GAAEzzB,EAAE,GAAGR,EAAE,GAAI,EAAC,EAAEutH,EAAE/sH,EAAE,GAAG+sH,EAAE1tH,EAAE,EAAE0tH,EAAEt5F,EAAE,GAAE,EAAG,EAAE,MAAM,IAAK,GAAEzzB,EAAE,GAAGR,EAAE,GAAI,EAAC,EAAEutH,EAAE/sH,EAAE,GAAGR,EAAE,GAAE,EAAG,EAAEutH,EAAE1tH,EAAE,EAAE0tH,CAAE,CAAE,CACpW,SAAS3wC,IAAIp8E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAsN,IAApN,KAAK,EAAE,IAAI5kB,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE7kC,EAAE,KAAK,EAAEyzB,EAAEwoK,IAAI,IAAI,EAAE7L,IAAI,IAAI,EAAE,KAAK,EAAE,KAAM,KAAK,EAAEpwL,EAAE,EAAE,EAAI,KAAK,EAAEkjD,EAAG,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAG,KAAK,EAAE,EAAE,QAAQ,EAAG,KAAK,EAAEljD,EAAE,EAAE,EAAI,KAAK,EAAEkjD,EAAGo4B,GAAI,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAO7xB,EAAEvG,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG29F,GAAG,EAAG,EAAE,EAAE,GAAI,EAACp+J,EAAE,MAAuB,GAAhB5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAKitB,GAAI72E,GAAGytB,KAAMsrN,KAAM,CAAC,KAAK,EAAE11L,EAAG0lE,EAAI/oH,EAAE+4O,EAAG,EAAE,GAAG,EAAE,KAAK,CAAE,CACpW,SAASC,GAAI74O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA0G,IAAxGp7G,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEp0B,EAAE6jD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAEL,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEs5F,EAAE7pE,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE4pD,EAAE,EAAE,GAAG5pD,EAAE4pD,CAAC,EAAEsjE,EAAE,EAAE,GAAGt5F,EAAEs5F,CAAC,EAAM83C,EAAExlK,EAAE,EAAE,GAAE,EAAG,KAAKwlK,EAAE,GAAI,GAAGD,EAAE1hH,EAAG2hH,EAAE,GAAE,EAAG,EAAE,EAAEp7G,EAAE,EAAE,GAAGm7G,EAAEn7G,CAAC,EAAEzgB,GAAIka,EAAGgwD,GAAIlzG,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAEnxI,CAAC,EAAEgxB,GAAGvB,EAAGgwD,GAAIlzG,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAEplK,CAAC,EAAE,IAAII,EAAEJ,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGI,EAAE,GAAI,GAAG+kK,EAAEzhH,EAAGtjD,EAAE,KAAK,EAAE,EAAEmtH,EAAE,EAAE,GAAG43C,EAAE53C,CAAC,EAAE/jF,GAAIka,EAAGgwD,GAAIlzG,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAE9kK,CAAC,EAAE4kD,GAAGvB,EAAGgwD,GAAIlzG,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAEtlK,CAAC,CAAE,CACpW,SAAS0mN,GAAI/lN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA0G,IAAxGp7G,EAAEvG,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEp0B,EAAE6jD,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAEL,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAEs5F,EAAE7pE,EAAGgwD,GAAIlzG,EAAE,EAAEH,CAAC,EAAE,EAAE,EAAE4pD,EAAE,EAAE,GAAG5pD,EAAE4pD,CAAC,EAAEsjE,EAAE,EAAE,GAAGt5F,EAAEs5F,CAAC,EAAM83C,EAAExlK,EAAE,EAAE,GAAE,EAAG,KAAKwlK,EAAE,GAAI,GAAGD,EAAE1hH,EAAG2hH,EAAE,GAAE,EAAG,EAAE,EAAEp7G,EAAE,EAAE,GAAGm7G,EAAEn7G,CAAC,EAAEzgB,GAAIka,EAAGgwD,GAAIlzG,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAEnxI,CAAC,EAAEgxB,GAAGvB,EAAGgwD,GAAIlzG,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAEplK,CAAC,EAAE,IAAII,EAAEJ,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGI,EAAE,GAAI,GAAG+kK,EAAEzhH,EAAGtjD,EAAE,KAAK,EAAE,EAAEmtH,EAAE,EAAE,GAAG43C,EAAE53C,CAAC,EAAE/jF,GAAIka,EAAGgwD,GAAIlzG,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAE9kK,CAAC,EAAE4kD,GAAGvB,EAAGgwD,GAAIlzG,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAEtlK,CAAC,CAAE,CACpW,SAASy5O,IAAI94O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAmD,OAAjDosH,GAAIn4F,EAAE,2BAA2B,CAAC,EAAEg2B,EAAE,IAAImuK,GAAI53N,CAAC,EAASkjD,EAAG0lE,EAAI5oH,GAAGstB,KAAMyrN,KAAM,GAAG,EAAE,GAAG,IAAK,GAAEv5O,EAAE,IAAI+Y,GAAI,IAAK,GAAE/Y,EAAE,IAAIqY,GAAI,MAAM,QAAQrY,EAAE,IAAIgZ,EAAI,CAA+C,GAA9C3Y,EAAEL,EAAE,GAAGQ,EAAEypD,CAAC,EAAExW,GAAImnC,GAAGwuC,EAAI5oH,EAAEg5O,GAAG,CAAC,CAAC,IAAIn5O,EAAEo5O,IAAIj5O,EAAEH,CAAC,GAAM,CAACL,EAAE,MAAMk3E,GAAI12E,EAAEk5O,EAAG,EAAG,OAAOh2L,EAAG0lE,EAAI5oH,EAAEk5O,EAAG,EAAE,GAAG,EAAE,GAAG,IAAK,GAAEr5O,EAAE4uN,IAAIhlK,EAAE5pD,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAEw8M,IAAI5yJ,EAAE5pD,CAAC,CAAE,CAAE,GAAGA,EAAE,GAAE,EAAG,CAACgsH,GAAIp4F,CAAC,EAAE,MAAM,CAAC0lN,IAAIn5O,EAAEH,CAAC,EAAEgsH,GAAIp4F,CAAC,CAAC,CACpW,SAASy9L,IAAIlxN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAuI,GAArIF,EAAE,KAAKE,EAAEtxI,EAAEqxI,EAAEvvB,IAAIv1I,EAAEk0I,IAAIr0I,CAAC,EAAEklK,CAAC,EAAEpF,GAAImF,EAAEp4B,GAAIq4B,EAAE6tB,EAAG,CAAC,EAAE7lE,EAAEwf,GAAIw4B,EAAEksD,GAAG,EAAExnK,EAAE,IAAIsN,IAAI/2D,EAAE8kK,CAAC,EAAE8pD,IAAInlK,EAAE,EAAEA,EAAE,EAAEsjE,CAAC,EAAE43C,EAAEp4B,GAAIw4B,EAAE4+C,EAAG,EAAEnkN,EAAE,IAAIw3D,IAAIh3D,EAAE8kK,CAAC,EAAE+pD,IAAIrvN,EAAE,EAAEA,EAAE,EAAEmlK,CAAC,GAAM,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIljF,GAAI4gC,GAAGsiD,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAIljF,GAAI4gC,GAAGsiD,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAAzlK,EAAEqtI,GAAIq4B,EAAE6tB,EAAG,EAAEhzL,EAAEw5O,IAAI/5O,EAAEulK,EAAEhlK,EAAEy5O,GAAU3zM,EAAI,IAAIsO,GAAI4wH,CAAC,CAAC,EAAE,OAAAi3C,GAAI92C,EAAED,CAAC,EAAEw0E,IAAIt5O,EAAE+kK,EAAED,CAAC,EAAED,EAAEyO,GAAItzK,EAAE+kK,EAAED,CAAC,EAASD,CAAC,CACpW,SAAS2nE,IAAIxsO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAsC,IAApCJ,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAM+sH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEvtH,EAAEH,EAAE,CAAC,GAAGA,EAAE,EAAE,EAAE,EAAE,OAAe,IAARslK,EAAE/iE,GAAGnuE,CAAC,EAAQkxI,EAAE,GAAG,GAAoD,IAAjDtlK,EAAE6jD,EAAGyhH,EAAE,GAAG,EAAE,MAAMzyF,GAAIyyF,EAAE,GAAG,CAAC,EAAE/gE,GAAI+gE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAMl7G,EAAEiiG,GAAG,IAAIxzH,EAAI74B,EAAE,EAAE,CAAC,CAAC,EAAEoqD,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,GAAG,EAAE7pD,EAAEC,EAAE,EAAED,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAEP,EAAE,EAAEQ,EAAE,CAAC,EAAE,EAAEL,EAAEI,EAAE,CAAC,EAAEJ,EAAEI,EAAE,CAAC,GAAG,GAAI+7D,GAAIgpG,EAAE/kK,EAAE+kK,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAS,CACtW,SAAS40E,IAAIv5O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAc,IAAZjlK,EAAEk0J,GAAIv0J,EAAE09E,GAAQynF,EAAE,IAAIzsI,EAAIl4B,EAAE,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAStlK,EAAE6jD,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEnlK,EAAEuD,EAAK,KAAK,IAAIvD,EAAEH,EAAE,CAAC,EAAEQ,EAAEkD,EAAK,KAAK,IAAIlD,EAAER,EAAE,CAAC,EAA6B,IAA3Bo0B,EAAEwwC,EAAG4gD,GAAGsP,GAAI,GAAGt0H,EAAEL,EAAE,EAAE,GAAG,CAAC,EAAMutH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE1tH,EAAE,GAAGG,EAAE,EAAEi0B,EAAEp0B,EAAE,CAAC,EAAM,GAAJoqD,EAAE,EAAKzpD,EAAE,GAAG,KAAM,IAAI4kK,EAAE5kK,EAAE,EAAE6kK,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,IAAOllK,EAAEglK,EAAEC,CAAC,EAAEpxI,EAAEg2B,GAAG,GAAG7pD,EAAK6zB,EAAE,QAAQg2B,GAAnC,EAAEo7G,EAAoB,CAAwB,OAAOpxI,CAAC,CACtW,SAAS+lN,IAAIx5O,EAAE,CAAC,OAAOA,EAAE,GAAG,IAAK,GAAE,IAAK,GAAG,MAAO,GAAK,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAG,MAAO,GAAM,IAAK,GAAG,OAAOkjD,EAAGiqL,GAAIntO,CAAC,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,IAAK,GAAE,IAAK,GAAE,CAAC,GAAGA,EAAE,GAAG,GAAI,MAAO,GAAW,OAAOA,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAG,OAAOy6D,GAAIz6D,EAAE,EAAEA,EAAE,CAAC,EAAE,IAAK,GAAE,IAAK,GAAG,OAAOA,EAAE,GAAGA,EAAE,EAAE,QAAS,OAAOA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKkkD,GAAGlkD,EAAE,EAAEA,EAAE,CAAC,CAAE,CAAE,CAAC,QAAS,MAAO,EAAM,CAAC,CACtW,SAASy5O,IAAIz5O,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIg7N,EAAG,EAAE,WAAW,EAAE,0IAA0I,EAAE,IAAI94N,GAAG,CAAC,CAAC,EAAEspH,EAAIlqI,EAAE05O,GAAI9H,GAAI/3D,GAAG,EAAE3vC,EAAIlqI,EAAE05O,GAAIC,GAAIr2I,GAAI02E,EAAG,CAAC,EAAE9vC,EAAIlqI,EAAE05O,GAAIE,IAAIt2I,GAAI42E,GAAG,CAAC,EAAEhwC,EAAIlqI,EAAE05O,GAAIG,GAAIv2I,GAAI82E,GAAG,CAAC,EAAElwC,EAAIlqI,EAAE05O,GAAII,GAAIx2I,GAAIg3E,GAAG,CAAC,EAAEpwC,EAAIlqI,EAAE05O,GAAIK,GAAIz2I,GAAIk3E,GAAG,CAAC,CAAC,CACzW,SAAS1tC,GAAG9sI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA0H,GAAxHl7G,EAAEwjD,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE0O,EAAE13D,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAIl2J,GAAG,KAAK,EAAE0kE,GAAG1kE,CAAC,EAAEo2J,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE52J,EAAE66J,GAAGl6J,EAAEyzB,EAAEg2B,CAAC,EAAOpqD,GAAGslK,GAAGtlK,EAAE,GAAGw+G,GAAGh+G,EAAER,EAAE,CAAC,EAAG,OAAOQ,EAAc,GAAZktH,EAAE+oC,GAAG91J,EAAEH,EAAE8kK,CAAC,EAAK53C,EAAG,MAAMrnF,EAAI,IAAImN,GAAI,0BAA0BhzC,CAAC,CAAC,EAAoB,OAAlBL,EAAE,IAAIugH,GAAGtsF,EAAEg2B,EAAE5pD,EAAE8kK,CAAC,EAAKtlK,GAAGokO,GAAGzjO,EAAEX,CAAC,EAAE4wM,GAAGjwM,EAAER,EAAEH,CAAC,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAYA,EAAE,IAAO4wM,GAAGjwM,EAAER,EAAE,IAAI,EAAEwwM,IAAGhwM,CAAC,EAAS,KAAK,CAC1W,SAASg6O,IAAIh6O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEklK,EAAEhlK,EAAE,EAAE,EAAEktH,EAAEltH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAER,EAAE6jD,EAAGgwD,GAAIrzG,EAAE,EAAE4zB,CAAC,EAAE,GAAG,EAAEh0B,EAAEJ,EAAE,EAAEM,EAAEN,EAAE,EAAEA,EAAE,EAAGO,EAAE,IAAIw1D,GAAI23D,EAAEttH,CAAC,EAAIG,EAAE,IAAIw1D,GAAIyvG,EAAEplK,CAAC,EAAGJ,EAAE,EAAGylK,EAAE,IAAI1vG,GAAIyvG,EAAEllK,CAAC,EAAImlK,EAAE,IAAI1vG,GAAI23D,EAAEptH,CAAC,EAAGH,EAAEqlK,EAAEhlK,EAAE,IAAIL,GAAGQ,EAAE,GAAGR,GAAGK,EAAE,EAAEA,EAAE,EAAEG,EAAE,EAAE4kK,EAAE,IAAIxvG,GAAI51D,EAAEC,CAAC,EAAEslK,EAAE,IAAI3vG,GAAI51D,EAAEG,CAAC,EAAE63E,GAAI/jD,EAAE,EAAEylF,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAC5qE,EAAEglK,CAAC,CAAC,CAAC,EAAED,EAAE9kK,EAAE,EAAE,EAAE,GAAI,EAAC,EAAK8kK,IAAGl7G,EAAE,IAAI2L,GAAI51D,EAAEK,EAAE,CAAC,EAAEgmG,GAAIpyE,EAAE,EAAEg2B,CAAC,GAAE+tB,GAAI/jD,EAAE,EAAEylF,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACu6F,EAAED,CAAC,CAAC,CAAC,CAAC,CAC1W,SAASmyD,GAAIj3N,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAI6zB,EAAoB,GAAG5zB,GAAG,GAAG,CAAoB,GAAnB4pD,EAAEqgG,GAAIr2H,EAAE,GAAI,EAAC,GAAG5zB,CAAC,EAAK0rE,EAAG9hB,EAAE,EAAE,EAAG,OAAOvG,EAAGuG,EAAE,EAAE,EAAyB,IAAlBsjE,EAAE7pE,EAAGzvB,EAAE,GAAGg2B,CAAC,EAAE,GAAG,EAAMk7G,EAAE,EAAE/kK,EAAEmtH,EAAE,GAAE,EAAG43C,EAAE/kK,EAAE,EAAE+kK,EAAG,GAAG5qG,EAAGgzD,EAAE,GAAG43C,CAAC,CAAC,IAAI5qG,EAAG/5D,CAAC,IAAGR,EAAEutH,EAAE,GAAG43C,CAAC,EAAKp5F,EAAG/rE,EAAE,EAAE,IAAGH,EAAE6jD,EAAG1jD,EAAE,EAAE,EAAMH,EAAE,GAAGgxG,KAAS,OAAOhxG,EAAK,MAAMqmC,EAAI,IAAIoN,GAAI,8CAA8C,CAAC,CAAE,KAAM,QAAOyrJ,GAAIr7I,EAAG4mG,GAAI9pJ,EAAE,GAAI,EAACH,CAAC,EAAE,EAAE,CAAC,MAA5T,QAAO,IAAwT,CAC1W,SAASywO,IAAItwO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAA2B,IAAzBoqD,EAAEzpD,EAAE,OAAOyzB,EAAE,IAAIwiB,GAAI52C,EAAE,EAAQA,EAAEoqD,GAAgB,GAAb5pD,EAAEq4G,GAAIl4G,EAAEX,GAAG,EAAK,EAAAQ,GAAG,GAAGA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAY,IAAGA,GAAG,GAAG,CAAC,KAAMR,EAAEoqD,IAAG5pD,EAAEq4G,GAAIl4G,EAAEX,GAAG,EAAK,EAAAQ,GAAG,IAAIA,GAAG,MAAb,CAAsB,QAAQ,CAAIA,GAAG,IAAIR,EAAEoqD,GAAOjqD,GAAGwiH,GAAI3iH,EAAEW,EAAE,MAAM,EAAEA,EAAE,WAAWX,CAAC,KAAK,IAAIG,GAAG,GAAGA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAI47G,GAAI3nF,EAAEj0B,EAAEulG,EAAG,EAAE,EAAE1lG,IAAOo0B,EAAE,GAAG,KAAK2nF,GAAI3nF,EAAEj0B,EAAEulG,EAAG,EAAE,EAAE1lG,GAAQ+7G,GAAI3nF,EAAE5zB,EAAEklG,EAAG,EAAE,OAAOtxE,EAAE,CAAC,CAC1W,SAASwmN,IAAIj6O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAE,IAAIiqD,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0D,GAAjD5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE+sB,GAAGx2E,EAAE,EAAEH,EAAEA,CAAC,EAAE22E,GAAGx2E,EAAE,EAAEH,EAAEA,CAAC,EAAEL,EAAEuqI,GAAIlqI,CAAC,EAAKL,EAAE,EAAE,QAAQ,EAAqG,IAAhGQ,EAAE,GAAGA,EAAE,EAAE,GAAGR,CAAC,EAAEg3E,GAAGx2E,EAAE,EAAEH,GAAGg9D,GAAI,EAAEr9D,EAAE,EAAE,MAAM,EAAE0jD,EAAG1jD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAG,EAACg3E,GAAGx2E,EAAE,EAAEH,EAAEqjD,EAAGo4B,GAAI97E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAQswK,GAAItwK,CAAC,EAAE,EAAE,QAAQ,GAAGA,EAAEswK,GAAItwK,CAAC,EAAIQ,EAAE,GAAGA,EAAE,EAAE,GAAGR,CAAC,EAAEg3E,GAAGx2E,EAAE,EAAEH,GAAGg9D,GAAI,EAAEr9D,EAAE,EAAE,MAAM,EAAE0jD,EAAG1jD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAG,EAACg3E,GAAGx2E,EAAE,EAAEH,EAAEqjD,EAAGo4B,GAAI97E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAI,CAC5W,SAASw5N,IAAIh5N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAM,IAAJhlK,EAAE,EAAM8kK,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAI53C,EAAE,IAAIA,EAAE,EAAE,EAAEltH,KAAmD,IAA9C4zB,EAAE21E,GAAG+3E,GAAI,CAAC32G,EAAIylH,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAACpwL,EAAEA,CAAC,EAAE,CAAC,EAAEglK,EAAE7kK,EAAE,EAAMR,EAAE,EAAEA,EAAEqlK,EAAE,EAAE,OAAOrlK,IAA0C,GAArCI,GAAGi9D,GAAIr9D,EAAEqlK,EAAE,EAAE,MAAM,EAAE3hH,EAAG2hH,EAAE,EAAErlK,CAAC,EAAE,GAAG,GAAMI,EAAE,EAAG,IAAIP,EAAEG,EAAE,EAAEH,EAAEwlK,EAAE,EAAE,OAAOxlK,IAAKulK,GAAG/nG,GAAIx9D,EAAEwlK,EAAE,EAAE,MAAM,EAAE3hH,EAAG2hH,EAAE,EAAExlK,CAAC,EAAE,GAAG,GAAMulK,EAAE,IAAGn7G,EAAE+zJ,IAAI59M,EAAEglK,CAAC,EAAEnxI,EAAE7zB,EAAE,EAAE,CAAC,EAAEglK,EAAE,EAAE,CAAC,EAAEn7G,EAAEh2B,EAAEmxI,EAAE,EAAE,CAAC,EAAEhlK,EAAE,EAAE,CAAC,EAAE6pD,GAAK,OAAOh2B,CAAC,CAC9W,SAASymN,GAAGl6O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE,OAAAA,EAAE,IAAIpqE,IAAGlvB,EAAE5zB,CAAC,EAAMG,EAAE,EAAiDypD,GAA2HjqD,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,EAAEj0B,EAAE,EAAEutH,EAAE,EAAEtjE,EAAE,EAAEsjE,EAAE,EAAEtjE,EAAE,EAAEsjE,EAAE,EAAEtjE,EAAEsjE,EAAE,EAAEtjE,EAAGA,EAAE,EAA4BA,EAAE,EAAE,EAAEsjE,EAA/B7pE,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE,EAAEs5F,EAActjE,EAAE,EAAWA,EAAE,EAAE,EAAEsjE,EAAd/sH,EAAE,EAAE+sH,EAAatjE,EAAE,EAAEsjE,EAAEtjE,EAAE,EAAEsjE,IAAxP/sH,EAAE,EAAE,EAAE+sH,EAAEA,EAAE,EAAE/sH,EAAE,EAAEA,EAAE,EAAE+sH,EAAEvtH,EAAE0jD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAMj0B,GAAqC,EAAEA,EAAE,EAAEH,EAAEG,EAAE,EAAEH,EAAE,EAAE0tH,EAAEA,EAAE,EAAE1tH,EAAEG,EAAE,EAAEutH,IAA9DvzD,GAAIx5D,EAAE,EAAEyzB,EAAEj0B,EAAE,IAAI4rH,GAAG2B,CAAC,CAAC,EAAE,EAAE/sH,EAAE,KAA9HA,EAAE,EAAEA,EAAE,EAAE+sH,EAAEvzD,GAAIx5D,EAAE,EAAEyzB,EAAE,IAAI23F,GAAG2B,CAAC,CAAC,EAAE,EAAE/sH,EAAE,GAAwQ,EAAEA,EAAE,EAAS+sH,CAAC,CAC/W,SAASqvG,GAAIp8N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA0D,IAAxD/kK,EAAE,IAAI,OAAO4zB,EAAE,GAAG,EAAE7zB,EAAEqkE,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,EAAE/gB,EAAE,EAAEm7G,EAAE5kK,EAAEX,EAAE,OAA6B,GAAZslK,EAAE9kK,EAAE,KAAK+kK,CAAC,EAAKD,GAAG,MAAMC,GAAG,GAAG,CAAChlK,EAAE6pD,CAAC,EAAEm7G,EAAE,KAAK,MAAM73C,EAAE43C,EAAE,MAAM/kK,EAAE6pD,CAAC,EAAEm7G,EAAE,OAAO,EAAE73C,CAAC,EAAE63C,EAAEpmG,GAAIomG,EAAE73C,EAAE43C,EAAE,CAAC,EAAE,OAAOC,EAAE,MAAM,EAAE/kK,EAAE,UAAU,EAAKR,GAAGulK,IAAGhlK,EAAE6pD,CAAC,EAAEm7G,EAAE,OAAO,EAAE,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAAC,GAAEvlK,EAAEulK,EAAE,EAAEn7G,EAAG,GAAGzpD,EAAE,OAAO,EAAE,CAAY,IAAXR,EAAEI,EAAE,OAAaJ,EAAE,GAAGI,EAAEJ,EAAE,CAAC,GAAG,IAAI,EAAEA,EAAEA,EAAEI,EAAE,SAASA,EAAE,OAAOJ,EAAE,CAAC,OAAOI,CAAC,CAC/W,SAASg+N,GAAI59N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA0B,IAAxBA,EAAE/4C,GAAIt4F,CAAC,EAAEmxI,EAAE,KAAKplK,EAAE,GAAUmlK,EAAE,EAAEE,EAAE1+F,GAAI2+F,EAAE,CAAC,EAAE,EAAEH,EAAEE,EAAE,EAAEF,EAAG53C,EAAE7pE,EAAGi3L,GAAIr1E,EAAEH,GAAGtlK,EAAE6jD,EAAGwpG,EAAIvmF,GAAI2+F,EAAE,CAAC,EAAEH,CAAC,EAAE,EAAE,EAAE/kK,EAAEP,EAAE,EAAEksE,EAAG3rE,EAAE,EAAE,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAG68G,GAAK,EAACmyE,MAAO,EAAE,EAAE/uL,EAAE+9N,GAAI59N,EAAE+sH,CAAC,EAAMltH,EAAE,GAAI,IAAM+kK,GAAgBplK,IAAGA,EAAE,GAAKolK,EAAE,IAAIr4D,GAAIq4D,CAAC,GAAEA,EAAE,GAAG/kK,CAAC,GAA1C+kK,EAAE/kK,GAAuD,OAAX4pD,EAAE4nK,IAAIrxN,EAAEyzB,CAAC,EAAKg2B,EAAE,GAAE,EAAYm7G,IAAGv6F,GAAG,EAAGA,GAAK,EAAC+b,IAAgBw+E,GAAiBplK,IAAIolK,EAAE,IAAIr4D,GAAIq4D,CAAC,GAAGA,EAAE,GAAGn7G,CAAC,EAASm7G,GAAxCn7G,CAA2C,CAC/W,SAASo0K,GAAI79N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA0B,IAAxBA,EAAE/4C,GAAIt4F,CAAC,EAAEmxI,EAAE,KAAKn7G,EAAE,GAAUk7G,EAAE,EAAEE,EAAE1+F,GAAI2+F,EAAE,CAAC,EAAE,EAAEH,EAAEE,EAAE,EAAEF,EAAGtlK,EAAE6jD,EAAGi3L,GAAIr1E,EAAEH,GAAGnlK,EAAE0jD,EAAGwpG,EAAIvmF,GAAI2+F,EAAE,CAAC,EAAEH,CAAC,EAAE,EAAE,EAAE/kK,EAAEJ,EAAE,EAAE+rE,EAAG3rE,EAAE,EAAE,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAG68G,GAAK,EAACmyE,MAAO,EAAE,EAAE/uL,EAAEg+N,GAAI79N,EAAEX,CAAC,EAAMQ,EAAE,GAAI,IAAM+kK,GAAgBn7G,IAAGA,EAAE,GAAKm7G,EAAE,IAAIr4D,GAAIq4D,CAAC,GAAEA,EAAE,GAAG/kK,CAAC,GAA1C+kK,EAAE/kK,GAAuD,OAAXktH,EAAEopG,IAAIn2N,EAAEyzB,CAAC,EAAKs5F,EAAE,GAAE,EAAY63C,IAAGv6F,GAAG,EAAGA,GAAK,EAAC+b,IAAgBw+E,GAAiBn7G,IAAIm7G,EAAE,IAAIr4D,GAAIq4D,CAAC,GAAGA,EAAE,GAAG73C,CAAC,EAAS63C,GAAxC73C,CAA2C,CAC/W,SAASqtH,GAAIp6O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG2rE,EAAG93C,EAAE,EAAE,EAAG,OAAOi6I,GAAI1tK,EAAEyzB,EAAE5zB,CAAC,EAAmC,IAA5B8kK,EAAE,KAAKtlK,EAAE,KAAKoqD,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAPvtH,EAAEiqD,EAAEsjE,CAAC,EAAK7oE,GAAGzwB,EAAEj0B,EAAE,GAAI,CAAA,IAAGH,EAAEG,EAAE,GAAE,EAAM+rE,EAAGlsE,EAAE,EAAE,GAAI6jD,EAAG7jD,EAAE,EAAE,EAAE,GAAGgxG,IAAQ,CAACs0D,EAAEnlK,EAAE,KAAK,CAAG,OAAGmlK,IAAM1iG,GAAIjiE,EAAE,CAAC,IAAGJ,EAAEP,EAAE,GAAE,EAAGytH,GAAI9sH,EAAE,EAAEX,EAAEo0B,EAAE,KAAKwhH,GAAIj1I,EAAEX,EAAEo0B,EAAE83C,EAAGlsE,EAAE,EAAE,IAAI6jD,EAAG7jD,EAAE,EAAE,EAAE,GAAGu6E,KAAM,CAAC,EAAE,EAAI,EAAEkzC,GAAI9sH,EAAEX,EAAE,GAAI,EAAC,EAAE,EAAEA,EAAEo0B,EAAEp0B,EAAE,GAAE,EAAG,GAAG,EAAI,EAAEQ,EAAEA,EAAE,GAAGD,CAAC,EAAGC,EAAED,GAAGC,EAAEu6O,GAAIp6O,EAAE2kK,EAAE9kK,CAAC,GAASA,CAAE,CAC/W,SAASw6O,IAAIr6O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEiqD,EAAEzpD,EAAE,EAAEy7E,GAAK,EAAIz7E,EAAE,EAAE,GAAE,GAAIkkD,GAAGlkD,EAAE,EAAE07E,GAAG,EAAGl8E,EAAEiqD,EAAE,GAAOjqD,EAAE8tN,GAAIttN,EAAE,CAAC,EAAKA,EAAE,EAAE,IAAI47E,GAAG,EAAGy2D,GAAK,GAAE,CAACryI,EAAE,EAAE,IAAI0+F,GAAK,EAACk/D,GAAG,IAAIp+J,EAAEuD,EAAK,KAAK,IAAIvD,EAAE8tN,GAAIpqK,EAAG25D,GAAI78G,EAAE,GAAG8+F,EAAK,EAAC+5C,GAAG,EAAG,GAAG,CAAC,CAAC,EAAEr5I,EAAEuD,EAAK,KAAK,IAAIvD,EAAE8tN,GAAIpqK,EAAG25D,GAAI78G,EAAE,EAAEiwI,EAAG,EAAE,GAAG,CAAC,CAAC,GAAEx8G,EAAEw2I,IAAIjqK,CAAC,EAAIyzB,IAAIj0B,EAAEuD,EAAK,KAAK,IAAIvD,EAAEi0B,EAAE,CAAC,IAAGwf,GAAImnC,GAAGp6E,EAAE,EAAE,GAAI,EAAC,IAAIgwB,GAAK,EAACyqJ,GAAG,CAAE,CAAC,EAAGhxH,EAAE,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAE,EAAEjqD,CAAC,EAAIiqD,EAAE,EAAEjqD,EAAGK,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAEA,EAAE,EAAEL,EAAEguN,GAAIxtN,EAAE,CAAC,CAAC,CAChX,SAASs6O,IAAIt6O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAc,GAAZhlK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAGD,EAAE21C,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG,aAAa,CAAC,EAAKD,GAAG,MAAK,CAAW,IAAVglK,EAAE,IAAI//H,EAAQxlC,EAAE+8N,GAAIx8N,EAAE,KAAK,EAAEmtH,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAAGvtH,EAAEH,EAAE0tH,CAAC,EAAEtjE,EAAEjqD,EAAE,YAAY,GAAG,EAAEqlK,EAAEp7G,GAAG,GAAGivB,GAAI14E,EAAEyzB,EAAE,GAAI,EAACj0B,CAAC,EAAEiqD,GAAG,EAAEqhG,GAAI9qJ,EAAE,KAAKR,EAAE,OAAO,CAAC,CAAC,EAAEsrJ,GAAI9qJ,EAAER,EAAE,OAAO,EAAEiqD,CAAC,EAAEjqD,EAAE,OAAOiqD,EAAE,CAAC,CAAC,EAAE8hB,EAAGs5F,EAAE,GAAG,GAAGj8H,EAAIg8H,EAAE1hH,EAAG2hH,EAAE,GAAG,CAAC,EAAE,OAAOD,CAAC,CAAE,OAAOv6F,GAAK,EAACA,GAAG,EAAG+b,EAAG,CAChX,SAAS87I,IAAIliO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA2B,IAAzBj5C,GAAI/rH,EAAE06O,IAAI,CAAC,EAAEv6O,EAAE,GAAGyzB,CAAC,EAAEp0B,EAAE,EAAQW,EAAE,GAAGX,CAAC,GAAE,CAAC,IAAIwlK,EAAE,IAAI3sI,EAAIzE,EAAE,CAAC,EAAEoxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBjlK,EAAEsjD,EAAGyhF,EAAIkgC,CAAC,EAAE,GAAG,EAAMF,EAAE,GAAGpJ,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC1wC,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEirH,GAAGimB,CAAC,GAAI53C,EAAE7pE,EAAGu7F,GAAGkmB,CAAC,EAAE,GAAG,EAAK53C,GAAGntH,IAAGJ,EAAEQ,EAAE,GAAG+sH,EAAEntH,CAAC,EAAIJ,GAAG4gF,GAAIxgF,EAAE,EAAEJ,CAAC,GAAI,IAAIolK,EAAE,IAAI1sI,EAAIzE,EAAE,CAAC,EAAEmxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,GAAG,EAAEn7G,EAAE7pD,EAAE,EAAEgnN,IAAIn9J,EAAE,CAACzpD,EAAE,EAAE,CAACA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEogF,GAAIxgF,EAAE,EAAE6pD,CAAC,EAAEqT,GAAIrT,CAAC,EAAEzpD,EAAE,GAAI,EAAC,EAAEX,CAAC,CAACwsH,GAAIhsH,CAAC,CAAC,CACjX,SAAS26O,IAAIx6O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAwC,GAAtCA,EAAE06C,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAEg2B,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAEwrD,GAAK,EAAItI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,GAAI,IAAIp0B,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAU,GAAPG,EAAEiqD,EAAEpqD,CAAC,EAAK0tH,EAAE,GAAGvtH,EAAE,IAAI,GAAM0kD,GAAG1kD,EAAEK,CAAC,EAAG,OAAA4nN,GAAIznN,EAAEX,CAAC,EAAS,WAAgBQ,GAAG,MAAM,IAAIR,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAU,GAAPG,EAAEiqD,EAAEpqD,CAAC,EAAK0tH,EAAE,GAAGvtH,EAAE,GAAE,CAAE,GAAM0kD,GAAGrkD,EAAEL,EAAE,GAAE,CAAE,EAAG,OAAAioN,GAAIznN,EAAEX,CAAC,EAAS,OAAa,KAAIA,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAU,GAAPG,EAAEiqD,EAAEpqD,CAAC,EAAK0tH,EAAE,GAAGvtH,EAAE,GAAI,CAAA,GAAMA,EAAE,GAAI,GAAE,KAAM,OAAAioN,GAAIznN,EAAEX,CAAC,EAAS,GAAQ,MAAO,EAAK,CACjX,SAASo7O,IAAIz6O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAiG,IAA/F/sH,EAAE,GAAG,MAAMA,EAAE,EAAE,OAAOyzB,EAAE,EAAE,OAAQzzB,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGx8J,EAAE,EAAE,OAAO,GAAG,CAAC,EAAGogB,GAAI7zC,EAAE,CAAC,EAAEA,EAAE,EAAE,IAAI6kC,EAAI4kB,EAAE,EAAMsjE,EAAE,IAAI70F,EAAIzE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEvtH,EAAE,EAAEiqD,IAAc,IAAV5pD,EAAE,IAAI+sC,GAAQvtC,EAAE,IAAI64B,EAAIzE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMW,EAAE,EAAER,EAAE,CAAC,IAAG+vN,IAAIvvN,EAAER,CAAC,EAAEK,EAAE,GAAG,IAAIqyE,GAAIryE,EAAE,GAAG,CAAC,EAAEqjD,EAAGrjD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAI,EAACG,EAAE,EAAE,EAAE,OAAO07D,IAAI77D,EAAEG,EAAE,CAAC,EAAE47D,GAAI/7D,EAAEG,EAAE,CAAC,EAAEA,EAAE,EAAE,IAAI6kC,GAAK,OAAOhlC,CAAC,CAClX,SAAS66O,IAAI16O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAyG,IAAvGotH,EAAE7pE,EAAGwpG,EAAIj5H,EAAE,CAAC,EAAE,EAAE,EAAEqvC,GAAIiqD,EAAE,CAAC,EAAEhqD,GAAIgqD,EAAE,CAAC,EAAEg4C,EAAE,IAAIlgI,EAAIkgI,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEh4C,EAAE43C,EAAE53C,EAAE1tH,EAAE,IAAIsoG,GAAI3nG,EAAE,EAAE+sH,EAAE,EAAEA,EAAE,GAAGn0B,GAAK,EAACmkD,GAAG,EAAOt9I,EAAE,EAAEA,EAAEg0B,EAAE,EAAEh0B,IAAKE,EAAEujD,EAAGwpG,EAAIj5H,EAAEh0B,CAAC,EAAE,EAAE,EAAEG,EAAE+6O,GAAI36O,EAAE28I,GAAIh9I,EAAEglK,EAAEtlK,EAAE0lK,EAAEllK,CAAC,EAAE+kK,EAAE+1E,GAAI36O,EAAE48I,GAAIj9I,EAAEglK,EAAEtlK,EAAE0lK,EAAEllK,CAAC,EAAEglK,EAAE81E,GAAI36O,EAAE68I,GAAIl9I,EAAEglK,EAAEtlK,EAAE0lK,EAAEllK,CAAC,EAAEilK,EAAE61E,GAAI36O,EAAE88I,GAAIn9I,EAAEglK,EAAEtlK,EAAE0lK,EAAEllK,CAAC,EAAEL,EAAEo7O,IAAI56O,EAAEJ,EAAEglK,EAAEC,EAAEC,EAAEnlK,EAAEglK,EAAEl7G,CAAC,EAAEqZ,GAAInjE,EAAEH,EAAE,CAAC,EAAEujE,GAAIpjE,EAAEH,EAAE,CAAC,EAAEg2B,IAAIh2B,EAAEu9I,EAAG,EAAE19I,EAAEG,EAAEmlK,EAAEhlK,EAAEolK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEplK,EAAE,OAAON,CAAC,CAClX,SAASw7O,IAAI76O,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIo8N,EAAG,EAAE,2BAA2B,EAAE,6GAA6G,EAAE,IAAIj9N,GAAG,CAAC,CAAC,EAAEqsH,EAAIlqI,EAAE86O,GAAI9F,GAAI1xI,GAAIk8F,GAAG,CAAC,EAAEt1D,EAAIlqI,EAAE86O,GAAIlJ,GAAIlyC,GAAG,EAAEx1D,EAAIlqI,EAAE86O,GAAIjJ,GAAI,CAAC,EAAE3nG,EAAIlqI,EAAE86O,GAAI5F,GAAI5xI,GAAIq8F,GAAG,CAAC,EAAEz1D,EAAIlqI,EAAE86O,GAAIjF,IAAIvyI,GAAIu8F,GAAG,CAAC,EAAE31D,EAAIlqI,EAAE86O,GAAIhF,IAAIxyI,GAAIy8F,GAAG,CAAC,EAAE71D,EAAIlqI,EAAE86O,GAAIC,IAAK3qK,GAAG,EAAG,IAAO,CAClX,SAASi6E,IAAIrqJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAiB,IAAfstH,EAAE3/C,GAAI35C,EAAE,EAAE5zB,EAAE4pD,CAAC,EAAMq7G,EAAE,IAAI5sI,EAAIzE,EAAE,CAAC,EAAEqxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA4B,IAA3BD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,EAAE,EAAE1kF,GAAIykF,EAAE,EAAE93C,CAAC,EAAMttH,EAAE,IAAIy4B,EAAI2sI,EAAE,CAAC,EAAEplK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBslK,EAAE7hH,EAAGyhF,EAAIllI,CAAC,EAAE,EAAE,EAAMJ,EAAE,IAAI64B,EAAI6sI,EAAE,CAAC,EAAE1lK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA8E,IAArEG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE+wI,GAAI5wI,EAAE,EAAEutH,CAAC,EAAE43C,EAAEzhH,EAAG0lE,EAAIppH,GAAG8tB,GAAG,EAAGyxH,GAAK,EAAC,EAAE,EAAI4lB,GAAGv0B,GAAIu0B,EAAE53C,CAAC,EAAM63C,EAAE,IAAI1sI,EAAI14B,EAAE,CAAC,EAAEolK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAExkF,GAAIxgF,EAAE,EAAEmtH,CAAC,EAAInkF,EAAI5oC,EAAE,EAAE6kK,CAAC,EAAEA,EAAE,EAAE7kK,CAAC,CAAC,CACnX,SAASg7O,IAAIh7O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAqG,GAAnGnB,GAAIn4F,EAAE,gDAAgD,CAAC,EAAE2wC,KAAKpd,KAAM,IAAI89D,GAAI9kH,EAAE,GAAK,GAAK,IAAI8P,GAAG,EAAG,EAAIozC,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGu0D,GAAG,EAAG,EAAE,EAAE,IAAIzuF,GAAK,EAAC01E,GAAK,EAAwE,IAAtErmK,EAAE6jD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC2tN,GAAK,EAAC,EAAE,EAAEz7O,EAAEH,EAAE,IAAI8+F,KAAMqqD,KAAMz7B,EAAE95E,GAAImnC,GAAGwuC,EAAI5oH,EAAEk7O,GAAG,CAAC,CAAC,EAAMzxL,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEpE,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIkQ,GAAG,EAAE,IAAIu7E,IAAIjsF,EAAEG,EAAEutH,CAAC,CAAC,EAAGlB,GAAIp4F,CAAC,CAAC,CACnX,SAASixG,IAAI1kI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAc,GAAZ9kK,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAG8kK,EAAEpvH,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,KAAMs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG6jN,EAAG,CAAC,EAAK/+C,GAAG,MAAsI,OAAhInlK,EAAEsxE,GAAI6zF,EAAEzvF,GAAI,EAAE,CAAC,EAAEzrB,EAAEh2B,EAAE,GAAE,EAAMj0B,GAAG,IAAIutH,EAAEtc,GAAIzwG,EAAE84J,GAAIrvG,CAAC,CAAC,EAAEpqD,EAAEslK,GAAUnlK,GAAG,GAAGutH,EAAE,KAAK1tH,EAAEslK,EAAE,OAAO,CAAC,IAAO53C,EAAE43C,EAAE,OAAO,EAAEnlK,CAAC,EAAEH,EAAEslK,EAAE,OAAOnlK,EAAE,CAAC,GAAS+/G,GAAI0vC,GAAIjvJ,EAAEyzB,CAAC,CAAC,EAAC,CAAE,IAAK,GAAE,IAAK,GAAG,OAAO+/I,IAAIxzK,EAAEypD,EAAEsjE,EAAE1tH,CAAC,EAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAG,OAAOu0K,IAAI5zK,EAAEypD,EAAEsjE,EAAE1tH,CAAC,CAAE,CAAG,OAAO,IAAI,CACnX,SAAS87O,GAAIn7O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA0B,GAAxB53C,GAAGvhE,GAAK,EAACtI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,GAAO0sI,GAAIngK,EAAE,EAAEyzB,CAAC,GAAG,GAAGA,EAAE,GAAE,GAAIshH,GAAI/0I,EAAEyzB,EAAE5zB,EAAE0rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,EAAG,MAAO,OAA4C,KAAhC+qF,EAAE8C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAMX,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAU,GAAPG,EAAEiqD,EAAEpqD,CAAC,EAAKslK,EAAE,GAAGnlK,EAAE,GAAE,CAAE,EAAG,OAAGutH,EAAE7oE,GAAG1kD,EAAEK,CAAC,EAAEA,GAAG,KAAKL,EAAE,GAAE,GAAI,KAAK0kD,GAAGrkD,EAAEL,EAAE,GAAI,CAAA,GAAU,IAAW0jD,EAAGi6I,GAAIn9L,EAAEX,EAAE0tH,EAAE7pE,EAAGrjD,EAAE,EAAE,EAAE81I,GAAIliH,EAAE5zB,CAAC,CAAC,EAAE,EAAE,EAAS,IAAQ,OAAOqmE,GAAIlmE,EAAE+sH,EAAE7pE,EAAGrjD,EAAE,EAAE,EAAE81I,GAAIliH,EAAE5zB,CAAC,CAAC,CAAC,CACnX,SAASu7O,GAAIp7O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGI,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,IAAKmJ,GAAIo/L,EAAE,EAAEhd,GAAIgd,GAAG,EAAE/c,GAAK,CAAA,EAA+B,IAA7Bt+N,EAAE,IAAI+7F,GAAK,EAACs+C,KAAM/jC,GAAIt2G,EAAEshE,EAAG,EAAMzhE,EAAE,IAAIq4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4zB,EAAE,EAAE,EAAE,IAAIs5F,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAiC,IAAxB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE1tH,EAAE,EAAEg4G,GAAQ73G,EAAEH,EAAE,EAAE,GAAE,EAAGG,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAE,EAAEiqD,EAAE,EAAE,EAAU,IAAP6xL,IAAIt7O,CAAC,EAAMJ,EAAE,IAAIs4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAE,GAAK,OAAO3kK,CAAC,CACpX,SAASu7O,IAAIv7O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA4C,IAA1CD,EAAE,IAAI0jD,IAAIroN,CAAC,EAAEH,EAAE,IAAI+sC,GAAI+uB,GAAI97D,EAAE4zB,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQA,EAAE,GAAG,GAAE,CAA0D,IAAzD4pD,EAAEvG,EAAGrjD,EAAE,GAAG,EAAE,MAAMqyE,GAAIryE,EAAE,GAAG,CAAC,EAAE+jG,GAAI/jG,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE4pD,EAAE,EAAE,EAAE,EAAMsjE,EAAE,IAAI70F,EAAIuxB,EAAE,CAAC,EAAEsjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE2uF,IAAI/2C,EAAEnlK,CAAC,EAAEolK,EAAEplK,EAAE,EAAEolK,EAAE,EAAE,GAAG,GAAIjpG,GAAI97D,EAAE+kK,EAAE/kK,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQ,IAAIR,EAAE,IAAI64B,EAAIuxB,EAAE,CAAC,EAAEpqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEq8M,IAAI/2C,EAAEnlK,CAAC,EAAEI,EAAEJ,EAAE,EAAEI,EAAE,EAAE,GAAG,GAAI+7D,GAAI97D,EAAED,EAAEC,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAQ,CAAC,OAAO8kK,CAAC,CACpX,SAAS62E,IAAIx7O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgC,GAA9BoqD,EAAEvW,EAAImnC,EAAGouC,GAAIzoH,GAAGgwB,KAAMyrN,IAAK,CAAA,CAAC,EAAKhyL,GAAG,EAAmF,IAAzEiZ,GAAI1iE,EAAEypD,EAAEzpD,EAAE,EAAEypD,EAAEzpD,EAAE,CAAC,EAAEH,EAAEu/D,IAAGiiC,KAAI,CAACrhG,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,IAAIogB,GAAG,CAAC,EAAM/gB,EAAE,GAAGk8J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,EAAE,CAACnkE,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGA,EAAE,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIyhC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAGH,CAAC,CAAC,CAAC,CAAC,EAAE6+I,GAAGr/I,CAAC,GAAIG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,GAAG,EAAEG,EAAE,GAAGiqD,EAAEjqD,EAAE,GAAI,EAACiqD,EAAEjqD,EAAE,GAAE,CAAE,EAAEA,EAAE,GAAGiqD,EAAEjqD,EAAE,GAAI,EAACiqD,EAAEjqD,EAAE,GAAI,CAAA,EAAEi0B,EAAEyvB,EAAG1jD,EAAE,GAAGk8O,GAAG,EAAE,CAAC,EAAKjoN,IAAGA,EAAE,GAAGg2B,EAAEh2B,EAAE,GAAGg2B,EAAG,CACpX,SAASkyL,IAAI37O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,IAAIh4C,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoC,IAA3B1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEg4C,EAAEz7B,GAAIjqI,EAAE,CAAC,EAAMulK,EAAEG,EAAEF,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAU,OAAPjlK,EAAEglK,EAAEC,CAAC,EAAS3hH,EAAG0lE,EAAIhpH,GAAG0tB,GAAG,EAAG4jJ,GAAK,EAAC,GAAG,EAAE,EAAG,CAAA,IAAK,GAAEk7D,IAAIxsO,CAAC,EAAEo4H,GAAIp4H,EAAE6zB,CAAC,EAAE6pK,IAAI19L,EAAE,GAAK6pD,CAAC,EAAE,MAAM,IAAK,GAAEihL,IAAI9qO,CAAC,EAAEo4H,GAAIp4H,EAAEC,CAAC,EAAEy9L,IAAI19L,EAAE,GAAMJ,CAAC,CAAE,CAAoB,IAAjBmlK,EAAE,IAAIl5B,GAAIzrI,EAAE,EAAE,CAAC,EAAQ2kK,EAAE,EAAEA,EAAE,EAAE,GAAI,IAAGzyF,GAAIyyF,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEzhH,EAAGyhH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAGr/E,GAAIq/E,CAAC,CAAE,CACrX,SAASnuD,IAAIx2G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAc,GAAZC,EAAE4zB,EAAE,GAAGzzB,EAAE,CAAC,EAAKH,IAAGD,EAAE21C,GAAG45I,IAAK,CAACtvL,EAAE,IAAIA,EAAE,EAAE,IAAIk4E,IAAK0kC,GAAK,EAACs3E,IAAKC,GAAGn0L,CAAC,GAAGA,EAAE,GAAG+7O,GAAG,CAAC,EAAKh8O,GAAG,MAAK,CAAW,IAAV6pD,EAAE,IAAI5kB,EAAQxlC,EAAE+8N,GAAIx8N,EAAE,KAAK,EAAEmtH,EAAE,EAAE43C,EAAEtlK,EAAE,OAAO0tH,EAAE43C,EAAE,EAAE53C,EAAGvtH,EAAEH,EAAE0tH,CAAC,EAAE1qC,GAAI7iF,EAAE,SAAS,EAAEopC,EAAI6gB,EAAE,MAAMgnD,GAAIzwG,EAAE84J,GAAIrlI,EAAE,GAAE,CAAE,CAAC,CAAC,EAAE4uD,GAAI7iF,EAAE,SAAS,EAAGiqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE,KAAW44B,GAAI7iF,EAAE4tM,EAAG,EAAExkK,EAAI6gB,EAAEgnD,GAAIzwG,EAAE84J,GAAIrlI,EAAE,GAAI,CAAA,CAAC,CAAC,EAAGg2B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEjqD,EAAQ,OAAOiqD,CAAC,CAAE,OAAO4gB,GAAK,EAACA,GAAG,EAAG+b,EAAG,CACrX,SAASy1J,IAAI77O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA8S,OAA5SQ,EAAE,IAAImJ,IAAIygD,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAEH,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,KAAMg1C,IAAKD,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEh8H,EAAEiqD,EAAE,GAAE,EAAGA,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE5zB,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAACqiB,GAAID,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEn8H,EAAEoqD,EAAE,GAAE,EAAGjqD,EAAEA,GAAG,EAAE,EAAE,EAAEH,EAAEA,GAAG,EAAE,EAAE,EAAKG,EAAEH,EAAU,GAAMG,GAAGH,EAAU,EAAS,CAAC,CACtX,SAASy8O,IAAI97O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAA8C,IAA5CJ,EAAE3kK,EAAE,EAAER,EAAEyzC,GAAImnC,GAAGwuC,EAAI+7C,GAAGr3I,GAAK,EAACkuL,GAAG,CAAE,CAAC,EAAE32C,EAAE,EAAEp7G,EAAE,EAAMm7G,EAAE,IAAI1sI,EAAIl4B,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAE73C,EAAEpmB,GAAI/mG,CAAC,EAAEP,EAAE0tH,GAAGvtH,GAAGyzC,GAAImnC,GAAGwuC,EAAIhpH,EAAE8oH,EAAG,CAAC,CAAC,EAAEq8C,EAAEnlK,EAAE,EAAE,EAAEmtH,GAAG1tH,EAAE,EAAEoqD,EAAEsjE,GAAG,CAAC1tH,EAAE,EAAEwlK,EAAE5mD,GAAI8mD,CAAC,EAAE,GAAGJ,EAAE,EAAEl7G,EAAE,EAAEo7G,EAAE,IAAIhlK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEktH,EAAEpmB,GAAIlzE,CAAC,EAAEp0B,EAAE0tH,GAAGvtH,GAAGyzC,GAAImnC,GAAGwuC,EAAIn1F,EAAEi1F,EAAG,CAAC,CAAC,EAAEo8C,EAAErxI,EAAE,EAAE,EAAEs5F,GAAG1tH,EAAE,EAAEwlK,EAAE93C,GAAG,CAAC1tH,EAAE,EAAEoqD,EAAEw0D,GAAI6mD,CAAC,EAAE,GAAGH,EAAE,EAAEE,EAAE,EAAEp7G,EAAE,OAAOo7G,EAAEp7G,CAAC,CACtX,SAASsyL,GAAI/7O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,KAAK,EAAEzpD,EAAE,KAAK,EAAEkjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACw4E,GAAG,EAAG,GAAG,EAAE,KAAK,EAAEz+H,EAAGopD,GAAGC,GAAI,GAAG75F,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGmxG,GAAG5qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGopD,GAAGC,GAAI,GAAG75F,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGmxG,GAAG5qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGopD,GAAGC,GAAI,GAAG75F,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGmxG,GAAG5qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGmxG,GAAG5qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE,KAAK,EAAEwwC,EAAGoxG,GAAG7qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE85B,GAAI,KAAK,GAAG6iB,KAAM,GAAO,EAAC,KAAK,EAAEnM,EAAGoxG,GAAG7qG,EAAI,IAAI/2C,EAAE,EAAE,CAAC,EAAE85B,GAAI,KAAK,EAAE,EAAI,EAAE,KAAK,EAAE1tD,EAAE,KAAK,EAAE4pD,CAAC,CACtX,SAASuyL,IAAIh8O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAAAlxI,EAAE,GAAI,EAAS,GAAGyvB,EAAGzvB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAIm5D,GAAK,EAACg5D,IAAMipD,IAAI7uM,EAAEyzB,CAAC,MAAO,KAAIg2B,EAAEh2B,EAAE,GAAI,EAACg2B,EAAE,GAAE,GAAI,CAAkB,OAAjB5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,GAAG,EAAS5pD,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE8gM,GAAI3gM,EAAEH,EAAEipL,IAAI9oL,EAAEH,CAAC,CAAC,EAAE,MAAM,IAAK,GAAE8gM,GAAI3gM,EAAEH,GAAGktH,EAAEltH,EAAE,EAAEA,EAAE,EAAE,EAAE8kK,GAAG53C,EAAE,GAAG,EAAE,EAAEltH,EAAE,EAAE8kK,EAAG,EAAC,MAAM,IAAK,GAAEg8B,GAAI3gM,EAAEH,EAAEgzJ,IAAI7yJ,EAAEH,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEstL,IAAIttL,CAAC,EAAE8gM,GAAI3gM,EAAEH,GAAGR,EAAE+tL,GAAIvtL,CAAC,EAAER,EAAEQ,EAAE,EAAEA,EAAE,EAAC,EAAG,MAAM,IAAK,GAAEstL,IAAIttL,CAAC,EAAE8gM,GAAI3gM,EAAEH,GAAGL,EAAE4tL,GAAIvtL,CAAC,EAAEL,EAAEK,EAAE,EAAEA,EAAE,EAAC,CAAG,CAACk+M,IAAIl+M,EAAE,CAAC,CAAC,CAAE,CACvX,SAASo8O,IAAIj8O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAAA6zB,EAAE,EAAmB,KAATA,EAAE,EAAE,GAASg2B,EAAEh2B,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAACg2B,EAAE,GAAE,GAAI,CAAiB,GAAhB5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAKh2B,EAAE,GAAGA,EAAE,EAAE,EAAE,GAAE,GAAI,EAAE,CAACs5F,EAAEt5F,EAAE,EAAE,EAAEkxI,EAAElxI,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE7zB,EAAE,IAAIw1D,GAAI23D,GAAG43C,EAAE53C,GAAG,EAAEt5F,EAAE,CAAC,EAAEoyE,GAAI3iD,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAG,GAAI,EAAC,GAAE,EAAG,EAAE,EAAE,EAAE7zB,CAAC,EAAE,QAAQ,CAAsB,GAArBJ,EAAE0jD,EAAGgwD,GAAIz/E,EAAE,EAAE5zB,CAAC,EAAE,GAAG,EAAKL,EAAE,GAAGA,EAAE,EAAE,CAACw6O,IAAIh6O,EAAEH,EAAE4zB,CAAC,EAAE,QAAQ,CAACp0B,EAAEW,EAAE,IAAI4zF,GAAK,EAACktC,MAAOthI,EAAE,GAAGA,EAAE,IAAI+1N,IAAIv1N,EAAEyzB,CAAC,GAAGA,EAAE,EAAE,EAAE,MAAM,EAAEp0B,EAAE68O,IAAIr8O,EAAE4zB,CAAC,EAAEg+M,IAAIzxO,EAAEH,EAAE4zB,CAAC,CAAC,CAACA,EAAE,GAAGskH,GAAItkH,EAAE,EAAE,IAAIplB,GAAG,EAAC,CACxX,SAASujM,GAAI5xM,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAgO,IAA9NqlK,EAAE1lK,EAAEslK,GAAGl7G,EAAEjqD,GAAG,EAAEulK,EAAEqlD,EAAEvqN,EAAEkD,EAAK,KAAK,IAAI4hK,CAAC,EAAEplK,EAAEM,EAAEkD,EAAK,KAAK,IAAI4hK,CAAC,EAAEw3E,EAAE/xB,EAAE32L,EAAE,EAAE,EAAE/zB,EAAEH,EAAEk0B,EAAE,EAAE,EAAEqvC,GAAIrvC,EAAE0oN,CAAC,EAAEp5K,GAAItvC,EAAE/zB,CAAC,EAAEolK,EAAE9kK,EAAE,EAAE,GAAGyzB,CAAC,EAAExzB,EAAE,EAAE8C,EAAK,KAAK,KAAKlD,EAAEA,EAAEG,EAAE,CAAC,EAAKC,EAAET,EAAEiqD,GAAGhqD,EAAEQ,EAAE6kK,EAAE/3C,GAAGtjE,EAAEjqD,EAAES,GAAG,IAAOR,GAAGD,EAAEiqD,GAAGq7G,EAAE/3C,EAAEtjE,GAAE9pD,EAAEoqI,GAAIt2G,CAAC,EAAKzzB,EAAE,IAAGA,EAAE,EAAE,GAAGA,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGL,CAAC,GAAMilK,EAAE,IAAI1sI,EAAIv4B,CAAC,EAAEilK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEC,EAAE7kK,EAAE,EAAE,GAAGJ,CAAC,EAAEgyM,GAAI5xM,EAAEJ,EAAEC,EAAEG,EAAE,EAAE+sH,EAAEA,EAAEttH,EAAEolK,EAAExlK,CAAC,EAAE0tH,GAAGttH,EAAEolK,CAAE,CACxX,SAASu3E,IAAGp8O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAmB,OAAjBA,EAAE5pD,EAAE,EAAE,SAAQ,EAAU4zB,EAAG,CAAA,IAAK,GAAE+nC,GAAIx7D,EAAEk5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE/gB,CAAC,CAAC,EAAE,MAAM,IAAK,GAAE+R,GAAIx7D,EAAEk5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC8kK,GAAIC,GAAIC,GAAIC,GAAIjxB,GAAIkxB,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEvmL,CAAC,CAAC,EAAE,MAAM,IAAK,GAAE+R,GAAIx7D,EAAEk5G,EAAG9hE,EAAGw5H,GAAG,CAAC,EAAEpmG,EAAI,EAAE,EAAE,CAAC,MAAM,MAAM,MAAM,MAAMg0I,GAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE/0J,CAAC,CAAC,EAAE,MAAM,QAAQ2oG,GAAGpyJ,EAAEypD,EAAE,EAAEh2B,CAAC,CAAE,CAAC,CACzX,SAAS4oN,GAAIr8O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA6B,GAA3BnB,GAAIn4F,EAAE,kBAAkB,CAAC,EAAKzzB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC6rH,GAAIp4F,CAAC,EAAE,MAAM,CAAC,IAAIp0B,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEG,EAAE,EAAE,EAA4D,IAA1DutH,EAAE/sH,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG+sH,GAAGuvH,IAAIt8O,CAAC,EAAEu8O,IAAIv8O,CAAC,EAAEusO,IAAIvsO,CAAC,EAAEH,EAAE8jL,IAAI3jL,CAAC,EAAEypD,EAAE,EAAU5pD,GAAG4pD,EAAEzpD,EAAE,GAAGw8O,IAAIx8O,EAAEH,EAAEw8N,IAAIr8N,EAAEH,CAAC,CAAC,EAAEA,EAAE8jL,IAAI3jL,CAAC,EAAE,EAAEypD,EAAEsjE,GAAGssF,IAAIr5M,CAAC,EAAEA,EAAE,EAAE09N,IAAI19N,EAAEu5O,IAAIv5O,CAAC,CAAC,EAAEu5O,IAAIv5O,CAAC,EAAEA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIp4F,CAAC,CAAC,CACzX,SAASgpN,IAAIz8O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAiD,IAA/CnlK,EAAE,IAAIw1D,GAAIv1D,EAAE4pD,CAAC,EAAE42B,GAAIzgF,EAAEsjD,EAAG0lE,EAAIn1F,GAAGyuI,GAAK,EAACK,GAAG,EAAG,CAAC,CAAC,EAAMwC,EAAE,IAAI7sI,EAAIzE,EAAE,CAAC,EAAEsxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,GAAG,EAAE3kF,GAAI0kF,EAAE,EAAEllK,CAAC,EAAEgpC,EAAI5oC,EAAE,EAAE8kK,CAAC,EAAE,IAAIH,EAAE,IAAIzsI,EAAIzE,EAAE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,IAAjB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAMtlK,EAAE,IAAI64B,EAAI60F,EAAE,CAAC,EAAE1tH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAE+gF,GAAI5gF,EAAE,EAAEI,CAAC,EAAEgpC,EAAI5oC,EAAE,EAAE+sH,CAAC,CAAC,CAAC,IAAI83C,EAAE,IAAI3sI,EAAIzE,EAAE,CAAC,EAAEoxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,GAAG,EAAEzkF,GAAIwkF,EAAE,EAAEhlK,CAAC,EAAEgpC,EAAI5oC,EAAE,EAAE4kK,CAAC,CAAE,CACzX,SAAS83E,GAAI18O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,IAAIhlK,EAAE,IAAIs4B,EAAIzE,EAAE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAMJ,EAAE,IAAImhJ,GAAIgkB,EAAE,CAAC,EAAEz8F,GAAI1oE,EAAE,CAAC,GAAG0oE,GAAI1oE,EAAE,CAAC,GAAIiqD,EAAEvG,EAAGglB,GAAI1oE,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAE,EAAE,EAAEK,EAAE4pD,EAAE,GAAGk7G,EAAEl7G,EAAE,EAAEA,EAAE,EAAEpqD,EAAEQ,EAAE,EAAK4zB,GAAGp0B,IAAYulK,EAAE1hH,EAAG0lE,EAAIn/D,GAAGn8B,GAAK,EAAC4iJ,GAAG,EAAG,EAAE,EAAE,EAAEtL,EAAE,IAAIA,EAAE,GAAG73C,EAAE1tH,EAAE,EAAKW,EAAE,EAAE+sH,CAAC,GAAG,IAAMtjE,EAAE,GAAG5pD,GAAGG,EAAE,EAAE+sH,CAAC,GAAG63C,EAAE,EAAE5kK,EAAE,EAAE+sH,CAAC,GAAG,GAAG/sH,EAAE,EAAE+sH,CAAC,EAAE,GAAGlnB,GAAI7lG,EAAE,EAAEX,CAAC,IAAOW,EAAE,EAAE+sH,CAAC,GAAG63C,EAAE,EAAE5kK,EAAE,EAAE+sH,CAAC,GAAG,GAAG/sH,EAAE,EAAE+sH,CAAC,EAAE,GAAGlnB,GAAI7lG,EAAE,EAAEX,CAAC,IAAK,CACzX,SAASksL,IAAIvrL,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAsC,IAApCD,EAAE,IAAI7mH,GAAIoF,EAAG1N,GAAG,IAAIltC,GAAG,EAAE,EAAE,CAAC,EAAEs8J,EAAEvtD,GAAQx3G,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA0B,IAAzB4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE+kK,EAAEnxI,EAAE,EAAE,EAAQkxI,EAAE,EAAE,GAAG,IAAG/kK,EAAEsjD,EAAG8yD,IAAI22C,IAAIgY,EAAE,CAAC,CAAC,EAAE,GAAG,EAAK/kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEglK,IAAGpzF,GAAImzF,EAAE,EAAE/kK,CAAC,GAAG,KAAiB,IAAImtH,GAAGvtH,EAAE,IAAIigF,GAAK,IAAIlN,GAAK,IAAI96C,GAAIktI,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,IAAIjtI,GAAIl4B,CAAC,GAAG2sD,GAAI4gE,EAAE,EAAE,CAAC,GAAI1tH,GAAGoqD,EAAEisB,GAAIq3C,EAAE,CAAC,EAAE7pE,EAAGuG,EAAE,GAAI,EAAC,GAAG,GAAGo8C,GAAIxmG,EAAE,EAAEo0B,CAAC,EAAEoyE,GAAIpyE,EAAE,EAAEp0B,CAAC,EAAEg5G,GAAIssD,EAAE,EAAElxI,GAAG28C,GAAG,EAAGC,GAAK,GAAE,IAAI,CAAC,CAC1X,SAASm8F,IAAIxsK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAwB,IAAtBzlK,EAAE,IAAI01E,GAAIthD,EAAE,EAAE,MAAM,EAAMmxI,EAAE,IAAI1sI,EAAIzE,CAAC,EAAEmxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS73C,EAAE7pE,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEh8H,EAAIvpC,EAAEW,EAAE,EAAE+sH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAoB,IAAlB4vH,IAAI38O,EAAEX,EAAEQ,CAAC,EAAEilK,EAAE,KAAWA,EAAE83E,IAAIv9O,CAAC,GAAGw9O,IAAI78O,EAAEkjD,EAAG4hH,EAAE,EAAE,GAAG,EAAE5hH,EAAG4hH,EAAE,EAAE,GAAG,EAAEzlK,CAAC,EAAyB,IAAvBo0B,EAAE,EAAEwwC,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAM3kE,EAAE,IAAI04B,EAAI74B,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAMmlK,EAAEl7G,EAAE,EAAE7pD,EAAE,EAAEilK,EAAEF,EAAE,OAAO/kK,EAAEilK,EAAE,EAAEjlK,EAAGmtH,EAAE43C,EAAE/kK,CAAC,EAAE6zB,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEs5F,EAAE/sH,EAAE,EAAE+sH,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE3gD,GAAI3iB,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAG,CAC1X,SAASqzL,GAAI98O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAG,GAAGksE,EAAGvrE,EAAE,EAAE,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,GAAI,EAAC00I,GAAG10I,EAAE,GAAE,CAAE,GAAG,CAAK,GAAJR,EAAEi0B,EAAK,EAAEj0B,EAAE,CAAe,IAAd,EAAEA,EAAEH,EAAE,IAAIic,IAAQmuC,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEpqD,EAAEk8J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC9kE,EAAE,IAAI4gC,GAAIpgC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOi9O,GAAIz9O,EAAEG,CAAC,CAAC,CAAC,GAAGA,EAAE,EAAE,CAAW,IAAVH,EAAE,IAAIkc,IAAQkuC,EAAEzpD,EAAE,GAAI,EAACypD,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEpqD,EAAEk8J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC9kE,EAAE,IAAI4gC,GAAIpgC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG0rE,EAAGlsE,EAAE,EAAE,EAAE6jD,EAAG7jD,EAAE,EAAE,EAAE,GAAE,EAAGq1I,GAAGr1I,EAAE,GAAI,CAAA,GAAI,OAAOy9O,GAAIz9O,EAAEG,CAAC,CAAE,CAAC,CAAC,OAAO0jD,EAAGkoB,GAAGprE,EAAE,GAAE,CAAE,EAAE,EAAE,CAAC,CAC1X,SAAS0+F,IAAK,CAACA,GAAIh6F,EAAI+4J,GAAI,IAAItnG,GAAI,uBAAuB,CAAC,EAAEunG,GAAI,IAAIvnG,GAAI,oCAAoC,CAAC,EAAEwnG,GAAI,IAAIxnG,GAAI,kBAAkB,CAAC,EAAEynG,GAAI,IAAIznG,GAAI,+BAA+B,CAAC,EAAE0nG,GAAI,IAAI1nG,GAAI,iBAAiB,CAAC,EAAE2nG,GAAI,IAAI3nG,GAAI,uBAAuB,CAAC,EAAE4nG,GAAI,IAAI5nG,GAAI,8BAA8B,CAAC,EAAE6nG,GAAI,IAAI7nG,GAAI,4BAA4B,CAAC,EAAE8nG,GAAI,IAAI9nG,GAAI,eAAe,CAAC,CAAC,CAC1X,SAASi0E,GAAIpqI,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,GAAInxI,EAAmB,CAAwC,GAAvC5zB,GAAGR,EAAEo0B,EAAE,GAAI,EAAEp0B,EAAOy5J,GAAIz5J,CAAC,EAAE,GAAE,EAAG,GAAGA,CAAC,EAArB,MAA2BQ,EAAE,CAAqB,IAApBupD,GAAIppD,EAAEyzB,EAAE5zB,CAAC,EAAEL,EAAEi0B,EAAE,GAAE,EAAO7zB,EAAE,EAAEglK,GAAGplK,EAAE,GAAG,MAAMk6G,GAAIl6G,CAAC,EAAEA,EAAE,GAAG,OAAOI,EAAEglK,EAAE,EAAEhlK,EAAG+kK,GAAGl7G,GAAGjqD,EAAE,GAAG,MAAMk6G,GAAIl6G,CAAC,EAAEA,EAAE,GAAGI,GAAG,GAAGA,EAAE6pD,EAAE,OAAOA,EAAE7pD,CAAC,EAAE,MAAS+kK,EAAE,GAAI,GAAE,CAACA,EAAE,GAAI,IAAKp5F,EAAGo5F,EAAE,GAAG,EAAGk4B,IAAI78L,EAAEkjD,EAAGyhH,EAAE,EAAE,EAAElxI,EAAE5zB,CAAC,GAAOktH,EAAE7pE,EAAGyhH,EAAE,EAAE,EAAG53C,EAAE,GAAG1c,IAASwlG,IAAI71M,EAAE+sH,EAAEt5F,EAAE5zB,CAAC,IAAI4zB,EAAE,GAAI,GAAEyvB,EAAGrjD,EAAE,EAAE,EAAE,GAAGqjD,EAAGzvB,EAAE,EAAE,EAAE,GAAE,CAAE,CAAC,CAAC,OAAO5zB,CAAC,KAA5U,QAAO,IAAsU,CAC1X,SAAS28O,IAAIx8O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE,GAAG,CAACo0B,EAAE,EAAG,MAAMiS,EAAI,IAAImN,GAAI,mCAAmC,CAAC,EAAE,GAAGhzC,EAAE,EAAG,MAAM6lC,EAAI,IAAImN,GAAI,0CAA0C,CAAC,EAAkF,IAAhFpf,EAAE,EAAE,GAAM03C,GAAInrE,EAAE,EAAEyzB,CAAC,EAAE5zB,EAAE,EAAE,GAAKmpC,GAAIhpC,EAAE,EAAEH,CAAC,EAAE4pD,EAAE5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEuuN,GAAIpuN,EAAEH,EAAE,EAAE4zB,CAAC,IAAIg2B,EAAE,CAACA,GAAOpqD,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAE+uN,GAAIpuN,EAAER,EAAEi0B,CAAC,IAAIj0B,EAAE,GAAGiqD,GAAGzpD,EAAE,EAAE,EAAE6zC,GAAI7zC,EAAE,CAAC,EAAE+vN,GAAI/vN,EAAEkjD,EAAGyhF,EAAI,IAAIzsG,EAAIl4B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAEysO,IAAIzsO,CAAC,CAAC,CAC5X,SAAS++M,IAAI/+M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA8B,GAA5BA,EAAEzhH,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAG6oI,GAAK,EAAC,EAAE,EAAOwO,IAAI5mE,KAAMxa,KAAMohF,GAAGnhF,GAAgE,IAAnDhkF,EAAG,IAAI41D,GAAI3hC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAMs5F,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAK1tH,EAAE,IAAIsrF,GAAK,EAACi0D,MAAe/+I,EAAEqjD,EAAG0lE,EAAIvpH,GAAG6qH,EAAK,EAAC6iD,GAAG,EAAG,EAAE,EAAK,EAAAltK,IAAIi/F,EAAK,EAACsE,KAAMvjG,GAAGojG,MAAcx5C,EAAEvW,EAAImnC,EAAGuuC,EAAIvpH,EAAE6rJ,EAAG,CAAC,CAAC,EAAEyZ,GAAGphF,KAAM95B,GAAGjqD,GAAGH,EAAE,EAAE,EAAEoqD,EAAEvG,EAAG0lE,EAAIvpH,EAAE8qO,EAAG,EAAE,CAAC,EAAE,EAAEj9D,GAAI7tK,EAAE,GAAM,EAAI,GAAE,CAC5X,SAAS09O,IAAI/8O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAgD,GAA9C25J,IAAIp5J,EAAEyzB,EAAE5zB,CAAC,EAAER,EAAEo0B,EAAE5zB,CAAC,EAAEJ,EAAEgqD,GAAGq1C,EAAK,EAACmE,KAAMnE,EAAG,EAAGsE,IAAQt2B,IAAIr5C,EAAE,OAAO5zB,EAAE4pD,CAAC,EAAE,CAAmD,IAAlDjqD,EAAEi0B,EAAEg2B,EAAE5pD,EAAE,EAAEA,EAAE,CAAC,EAAEkiJ,GAAI/hJ,EAAER,EAAEiqD,GAAGuoC,GAAG,EAAG0tC,KAAM1tC,GAAK,EAACytC,GAAI,EAAM7/H,EAAEP,EAAEwlK,EAAE,EAAEE,EAAEnlK,EAAE,OAAOilK,EAAEE,EAAE,EAAEF,EAAG93C,EAAEntH,EAAEilK,CAAC,EAAEo6B,GAAIj/L,EAAE+sH,EAAEttH,CAAC,EAAqC,IAAnCsiJ,GAAI/hJ,EAAEX,EAAEoqD,GAAGuoC,GAAK,EAACytC,KAAMztC,GAAK,EAAC0tC,GAAI,EAAMilC,EAAEnlK,EAAEolK,EAAE,EAAEE,EAAEH,EAAE,OAAOC,EAAEE,EAAE,EAAEF,EAAG73C,EAAE43C,EAAEC,CAAC,EAAI73C,EAAE,GAAGkyE,GAAIj/L,EAAE+sH,EAAEg3D,GAAItkL,CAAC,CAAC,CAAE,KAAM,KAAIklK,EAAEtlK,EAAEulK,EAAE,EAAEE,EAAEH,EAAE,OAAOC,EAAEE,EAAE,EAAEF,EAAG73C,EAAE43C,EAAEC,CAAC,EAAEq6B,GAAIj/L,EAAE+sH,EAAEttH,CAAC,EAAG,MAAO,EAAK,CAC5X,SAASmiO,IAAI5hO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEjlK,EAAE4gL,GAAI/sJ,EAAE5zB,CAAC,GAAGA,IAAIi/F,EAAK,EAACmxC,KAAMpwI,GAAGojG,MAAOrjG,EAAE2rE,EAAG3rE,EAAE,GAAG,EAAEkgJ,GAAG58F,EAAGtjD,EAAE,GAAG,CAAC,EAAE2rE,EAAG3rE,EAAE,GAAG,EAAEsjD,EAAGtjD,EAAE,GAAG,EAAE,EAAE2rE,EAAG3rE,EAAE,EAAE,EAAE,IAAIwwC,GAAGxwC,CAAC,EAAE,IAAIywC,GAAGzwC,CAAC,GAAGmtH,EAAE,GAAM,EAAW,KAARvtH,EAAE,GAAUH,EAAE,EAAEA,EAAEO,EAAE,GAAE,EAAG,EAAEP,IAAKulK,EAAE1hH,EAAGtjD,EAAE,GAAGP,CAAC,EAAE,EAAE,EAAEslK,EAAEzhH,EAAGtjD,EAAE,GAAGP,EAAE,CAAC,EAAE,EAAE,EAAK+iN,IAAIpiN,EAAE4kK,EAAED,EAAEl7G,CAAC,IAAGsjE,EAAE,GAAKsZ,GAAIrmI,EAAE,EAAEkjD,EAAGtjD,EAAE,GAAGP,CAAC,EAAE,EAAE,EAAE6jD,EAAGtjD,EAAE,GAAGP,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEwlK,EAAE3hH,EAAGtjD,EAAE,GAAGP,EAAE,CAAC,EAAE,EAAE,EAAEO,EAAE,GAAGP,EAAE,EAAE6jD,EAAGtjD,EAAE,GAAGP,CAAC,EAAE,EAAE,CAAC,EAAEO,EAAE,GAAGP,EAAEwlK,CAAC,EAAErlK,EAAE,UAAaA,GAAG,OAAOutH,CAAC,CAC5X,SAASiwH,IAAIh9O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAE,GAAGsiE,GAAIjiE,EAAE,CAAC,GAAG,GAAGyzB,GAAG5zB,IAAGL,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAEP,EAAED,EAAEK,CAAC,EAAEktH,EAAEttH,EAAE,GAAI,EAAI0gK,GAAIngK,EAAE,EAAE+sH,CAAC,GAAE,CAAiC,IAAhCptH,EAAE8nK,GAAIznK,EAAE,EAAE,GAAI,EAAC+sH,CAAC,EAAEntH,EAAE,GAAG+kK,EAAE,GAAGl7G,EAAE,EAAMm7G,EAAE,EAAEE,EAAErxI,EAAE5zB,EAAE4zB,EAAE5zB,EAAE+kK,GAAGE,EAAE,EAAEF,EAAMA,GAAG/kK,EAAG8kK,EAAEl7G,KAASpqD,EAAEG,EAAEolK,CAAC,EAAEC,EAAEllK,EAAE,GAAGN,EAAE,GAAI,CAAA,EAAEulK,GAAGnxI,IAAI7zB,EAAEglK,GAAGE,GAAG,CAACD,EAAEp7G,EAAE,EAAEA,GAAGo7G,GAAG,EAAEp7G,GAAG,OAAAs7G,EAAE7hH,EAAG+gI,GAAIjkL,EAAEyzB,EAAE5zB,CAAC,EAAE,EAAE,EAAE8kK,GAAG/kK,GAAGypC,GAAIrpC,EAAE,IAAIu0G,GAAIv0G,EAAE,EAAE,EAAE+sH,EAAEwgB,EAAIo3B,CAAC,EAAEllK,EAAE,GAAE,EAAGG,CAAC,CAAC,EAASmlK,CAAC,MAAQ,QAAO7hH,EAAGghI,GAAIlkL,EAAEyzB,EAAE5zB,CAAC,EAAE,EAAE,EAAE,OAAOqjD,EAAG+gI,GAAIjkL,EAAEyzB,EAAE5zB,CAAC,EAAE,EAAE,CAAC,CAC7X,SAASo9O,IAAIj9O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAgE,IAA9DgsH,GAAIn4F,EAAE,wBAAwB,CAAC,EAAE7zB,EAAEsjD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC4vN,IAAG,EAAG,GAAG,EAAMzzL,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE0tH,EAAE7pE,EAAG0lE,EAAIppH,EAAE22J,EAAG,EAAE,EAAE,EAAEwO,EAAEnlK,EAAE,EAAKutH,IAAIhvB,GAAG,EAAGza,KAAMypC,GAAGxpC,IAAKwpC,GAAGvpC,IAAKnZ,GAAK,EAACrC,GAAI28F,EAAEiV,GAAG,GAAU7sD,GAAGhrD,IAAKgrD,GAAG/qD,KAAKqI,GAAG,EAAGrC,GAAI28F,EAAE8U,GAAG,EAAEolB,IAAIl6B,CAAC,EAAE/kK,IAAIgzF,GAAG,EAAGw8B,KAAMpnD,GAAI28F,EAAE+U,GAAG,GAAEl6K,EAAE,EAAE,GAAK4mL,GAAI5mL,CAAC,EAAGqsH,GAAIp4F,CAAC,CAAC,CAC9X,SAAS0pN,IAAIn9O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAsB,IAApBA,EAAE,IAAImlC,GAAItR,EAAE,IAAIsW,GAAQgjF,EAAE/sH,EAAE,GAAI,EAAC+sH,EAAE,GAAE,GAAKvtH,EAAE0jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAE43C,EAAE3yF,GAAIjsB,GAAI,IAAI7b,GAAI1qC,CAAC,EAAEi0B,CAAC,EAAEgtF,GAAI7gH,EAAE,EAAEJ,EAAEmlK,CAAC,EAAE,IAAItlK,EAAEW,EAAE,GAAI,EAACX,EAAE,GAAE,GAAqB,IAAhBG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAMoqD,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIrnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAI8D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK,CAAAk9C,GAAI9mG,CAAC,GAAYkqL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAIlnC,EAAK,KAAK,IAAI,EAAEmgD,EAAG0lE,EAAI/oH,GAAGytB,GAAK,EAAC8vN,IAAG,EAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEl6L,EAAGgwD,GAAItzG,EAAEC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAEqjD,EAAGgwD,GAAItzG,EAAEC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAG,OAAO4zB,CAAC,CAC9X,SAASnE,KAAK,CAACA,IAAI5qB,EAAImpO,IAAInlI,GAAI,IAAItgD,IAAK0hC,GAAK,EAAC0uD,KAAM/8C,KAAM8sI,MAAMuF,IAAIplI,GAAI,IAAItgD,GAAImwF,GAAImvF,EAAG,EAAEsG,IAAIp+H,GAAIlH,GAAI,IAAItgD,GAAImwF,GAAIqvF,EAAG,EAAEjvG,GAAIowG,EAAG,EAAEkF,IAAIr+H,GAAIlH,GAAIA,GAAI,IAAItgD,GAAImwF,GAAI+uF,GAAG,EAAE9uF,GAAIgwF,GAAG,EAAE7vG,GAAIiwG,GAAG,EAAEsF,IAAI9iF,GAAIA,GAAIrhG,GAAI6lD,GAAIlH,GAAI,IAAItgD,GAAIiwF,GAAI4uF,EAAG,EAAEtuG,GAAIkwG,EAAG,EAAErwF,EAAG,EAAEwvF,EAAG,EAAEE,EAAG,EAAEiG,IAAIv+H,GAAI,IAAIxnD,GAAIuwE,GAAIgwG,GAAG,EAAEyF,IAAIx+H,GAAIlH,GAAIA,GAAIA,GAAI,IAAItgD,GAAIkwF,GAAI0uF,EAAG,EAAExuF,GAAI6vF,EAAG,EAAE7vF,GAAI8vF,EAAG,EAAE3vG,GAAIswG,EAAG,EAAEoF,IAAIz+H,GAAIlH,GAAIA,GAAI,IAAItgD,GAAIowF,GAAI8vF,EAAG,EAAE9vF,GAAI4vF,EAAG,EAAEzvG,GAAIwwG,EAAG,CAAC,CAC9X,SAASkU,IAAGr9O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAsC,IAApCH,EAAE+N,IAAGl/I,CAAC,EAAEk/I,IAAG3yK,CAAC,EAAE+sH,EAAExb,IAAG99E,EAAEmxI,CAAC,EAAEhlK,EAAE0/D,GAAG,EAAE,EAAE,CAAC,EAAQslG,GAAG,IAAGD,EAAE0iC,IAAGrnM,EAAE+sH,CAAC,EAAK,EAAA43C,IAAGC,EAAE,GAAIhlK,EAAE,GAAG,GAAGglK,EAAaA,EAAE,GAAIhlK,EAAE,GAAG,GAAGglK,EAAE,GAAehlK,EAAE,GAAG,GAAGglK,EAAE,GAAiB5kK,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,MAAU6kK,EAAE93C,EAAE,EAAE+3C,EAAE/3C,EAAE,EAAEg4C,EAAEh4C,EAAE,EAAEA,EAAE,EAAE+3C,IAAI,EAAE/3C,EAAE,EAAE83C,IAAI,GAAGC,EAAE,IAAI,GAAG/3C,EAAE,EAAEg4C,IAAI,GAAGF,EAAE,IAAI,GAAG,EAAED,EAAE,OAAA/kK,GAAGuzK,GAAGxzK,CAAC,EAAKP,IAAMoqD,GAAG2qH,GAAGvmB,GAAG7tJ,CAAC,EAAER,IAAI40K,GAAGhG,IAAGgG,IAAIjlB,GAAI,EAACI,IAAE,IAAS6kB,GAAG90G,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,GAAUJ,CAAC,CAC/X,SAAS+vJ,IAAI3vJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAyC,IAAvCF,EAAE5kK,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE7zB,EAAE6zB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAMkxI,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAyB,IAAxB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAEzlK,EAAE,EAAMG,EAAE,GAAG+7J,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC,IAAIjpC,GAAI6xF,CAAC,EAAE,IAAI3xF,GAAI2xF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE2xB,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAKiqD,EAAE,EAAE,GAAGh2B,EAAE,IAAGqxI,GAAGz4F,IAAIrsE,EAAEypD,EAAE,CAAC,EAAE,EAAE,EAAEpqD,GAAGQ,EAAEilK,EAAEzlK,EAAEwlK,EAAE93C,EAAE,EAAE83C,IAAI/lE,IAAMsE,IAAKvjG,EAAE+kK,EAAG5kK,EAAE,EAAE+sH,EAAE,CAAC,EAAE/sH,EAAE,EAAEH,EAAIG,EAAE,EAAE+sH,EAAE,CAAC,EAAE/sH,EAAE,GAAGJ,EAAEC,GAAIglK,GAAG5hE,KAAMpjG,EAAE+kK,EAAG5kK,EAAE,EAAE+sH,EAAE,CAAC,EAAE/sH,EAAE,EAAEH,EAAIG,EAAE,EAAE+sH,EAAE,CAAC,EAAE/sH,EAAE,GAAGJ,EAAEC,GAAI,CAAC,CAC/X,SAASsnM,GAAInnM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG3kK,GAAG,KAAM,MAAM0lC,EAAI,IAAIqQ,GAAIk7B,EAAG,CAAC,EAAqG,IAAnG5xE,EAAEW,EAAE,OAAO+sH,EAAE1tH,EAAE,IAAI2iH,GAAI,EAAEhiH,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAG,KAAKgiH,GAAI,EAAEhiH,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAG,KAAK,EAAE,EAAMypD,EAAEsjE,EAAEtjE,EAAEpqD,EAAEoqD,IAAK,GAAG4pI,KAAKrxE,GAAIv4D,EAAEzpD,EAAE,MAAM,EAAEA,EAAE,WAAWypD,CAAC,EAAG,GAAE,GAAI,MAAM/jB,EAAI,IAAIqQ,GAAI+tK,GAAI9jN,EAAE,GAAG,CAAC,EAA0B,GAAvB2kK,EAAE,SAAS3kK,EAAE,EAAE,EAAER,EAAEmlK,EAAElxI,EAAK,MAAMkxI,CAAC,EAAG,MAAMj/H,EAAI,IAAIqQ,GAAI+tK,GAAI9jN,EAAE,GAAG,CAAC,EAAO,GAAGR,GAAGmlK,EAAE9kK,EAAG,MAAM6lC,EAAI,IAAIqQ,GAAI+tK,GAAI9jN,EAAE,GAAG,CAAC,EAAE,OAAO2kK,CAAC,CAChY,SAASw0D,IAAIn5N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAV53C,EAAE,IAAIngF,GAAQvtC,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEw1B,GAAIr1B,EAAEA,EAAE,EAAE,EAAE,MAAM,EAAEs1B,GAAIt1B,EAAEA,EAAE,EAAE,EAAE,MAAM,EAAKA,EAAE,GAAG,IAAGA,EAAE,EAAE,EAAEm8D,GAAIoxD,EAAEvtH,EAAEutH,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAG,KAAMA,EAAE,GAAG,GAA4D,IAAzDvtH,EAAE0jD,EAAG6pE,EAAE,GAAG,EAAE,MAAM76C,GAAI66C,EAAE,GAAG,CAAC,EAAEnpB,GAAImpB,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAEtjE,EAAEjqD,EAAE,EAAE,EAAMK,EAAE,IAAIq4B,EAAI14B,EAAE,CAAC,EAAEK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE8kK,EAAElxI,EAAE,EAAEsB,GAAI4vI,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE,EAAEl7G,CAAC,CAAC,EAAE30B,GAAI6vI,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAIhpG,GAAIoxD,EAAE43C,EAAE53C,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAS,CAChY,SAASuwH,IAAIt9O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAImtH,EAAE,IAAI70F,EAAIl4B,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiL,IAAhL1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEtjE,EAAEksJ,GAAIzyJ,EAAGwpG,GAAK,CAACrtJ,EAAE,IAAIA,EAAE,EAAE,IAAIuiF,GAAI4gC,GAAGnjH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEslK,EAAEl7G,EAAE,EAAE7pD,EAAE6pD,EAAE,EAAEjqD,EAAE0jD,EAAGwpG,GAAK,CAACrtJ,EAAE,IAAIA,EAAE,EAAE,IAAI8hF,EAAIsvF,GAAGpxK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE8jE,GAAI3jE,EAAEA,EAAE,EAAEmlK,EAAEnlK,EAAE,EAAEI,CAAC,EAAEojE,GAAIxjE,EAAEA,EAAE,EAAEmlK,EAAEnlK,EAAE,EAAEI,CAAC,EAAMC,EAAE,IAAIs8D,IAAK,CAAC38D,EAAE,IAAIA,EAAE,EAAE,IAAIwuE,GAAI83G,GAAGtmL,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGK,EAAE,GAAGA,EAAE,EAAE,MAAO4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,GAAG,EAAE0iE,GAAI9uC,EAAEA,EAAE,EAAEkxI,EAAElxI,EAAE,EAAE7zB,CAAC,EAAE4yJ,GAAItvG,EAAGulE,GAAIppH,GAAG2wB,GAAG,EAAG6iM,KAAM,EAAE,EAAEluD,EAAE/kK,CAAC,CAAC,CAAC,CAChY,SAAS29O,GAAIv9O,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,EAAG,CAAA,IAAK,KAAI,OAAOw9O,GAAIC,GAAI,EAAI,EAAE,IAAK,IAAG,OAAOD,GAAIC,GAAI,EAAK,EAAE,IAAK,KAAI,OAAOD,GAAIE,GAAI,EAAI,EAAE,IAAK,IAAG,OAAOF,GAAIE,GAAI,EAAK,EAAE,IAAK,KAAI,OAAOF,GAAIG,GAAI,EAAI,EAAE,IAAK,IAAG,OAAOH,GAAIG,GAAI,EAAK,EAAE,IAAK,IAAG,OAAOH,GAAII,GAAI,EAAI,EAAE,IAAK,IAAG,OAAOJ,GAAII,GAAI,EAAK,EAAE,IAAK,KAAI,OAAOJ,GAAIK,GAAI,EAAI,EAAE,IAAK,IAAG,OAAOL,GAAIK,GAAI,EAAK,EAAE,QAAQ,MAAMn4M,EAAI,IAAIgL,IAAIjd,EAAEzzB,EAAE89O,IAAIrqN,EAAE,SAAS,EAAE,EAAC,CAAE,CAAE,CAAC,CAChY,SAASsqN,IAAI/9O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAgI,OAA9HG,EAAE0jD,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEyzB,EAAE,IAAImrK,GAAI5+L,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAEyzB,CAAC,EAAEA,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI,EAAEvD,EAAE,EAAE,CAAC,EAAEi0B,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI,EAAEvD,EAAE,EAAE,CAAC,EAAEi0B,EAAE,EAAE,EAAEj0B,EAAE,EAAE,EAAEi0B,EAAE,EAAE,EAAEj0B,EAAE,EAAE,EAAS0jD,EAAG0lE,EAAIppH,GAAG0qH,EAAK,EAAC6iD,GAAK,EAAC,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEt5I,EAAE,EAAE,GAAG,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,GAAG,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,GAAG,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,GAAG,CAAE,CAAC,OAAAg2B,EAAE,IAAI+tJ,GAAIr9J,GAAIsP,EAAEh2B,CAAC,EAAE5zB,EAAE,IAAI0rH,GAAIlsH,EAAE6jD,EAAGo4B,GAAI97E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEqqE,GAAIhqE,EAAER,CAAC,EAAEyqE,GAAIjqE,EAAE4pD,CAAC,EAAE22B,GAAItjB,GAAIrT,EAAE,CAAC,EAAEpqD,EAAE,CAAC,EAAE+gF,GAAItjB,GAAIrT,EAAE,CAAC,EAAEpqD,EAAE,CAAC,EAASo0B,CAAC,CAClY,SAAS07M,IAAInvO,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAIK,IAAI,CAAC4pD,IAAIzpD,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,OAAO,GAAG,IAAIyzB,GAAG,GAAGyvB,EAAGljD,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI2qF,GAAG,EAAG6+D,IAAMmuE,GAAIz0K,EAAGljD,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,GAAGm9F,GAAK,EAACu1C,GAAG,EAAWjpF,IAAI,CAAC5pD,IAAIG,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,OAAO,GAAG,IAAIyzB,GAAG,GAAGyvB,EAAGljD,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI2qF,GAAG,EAAG6+D,IAAMmuE,GAAIz0K,EAAGljD,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAGm9F,GAAK,EAACw1C,GAAG,GAAY3yI,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,OAAO,IAAI,GAAG23N,GAAIz0K,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,GAAGm9F,GAAK,EAACu1C,GAAG,EAAGilF,GAAIz0K,EAAGqyD,GAAIv1G,CAAC,EAAE,EAAE,EAAE2yI,EAAG,GAAO2uF,IAAIthO,EAAER,CAAC,EAAE82I,GAAIt2I,CAAC,CAAC,CAClY,SAASg+O,IAAIh+O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJtlK,EAAE,EAAMG,EAAE,IAAI28D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAGR,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,EAAEutH,EAAE,IAAI,CAACtjE,EAAE,IAAIA,EAAE,EAAE,IAAI03B,EAAIuhC,GAAGj5D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAIsjE,EAAE7pE,EAAGwpG,GAAK,CAACjjG,EAAE,IAAIA,EAAE,EAAE,IAAI03B,EAAIuhC,GAAGj5D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAGk7G,EAAE,IAAIiR,GAAIv2K,IAAIo0B,EAAEs5F,CAAC,EAAE+xB,GAAI6lB,EAAEl7G,CAAC,EAAEq5B,EAAI6hF,GAAG0e,GAAG,EAAG46D,IAAKx0L,CAAC,EAAEk7G,EAAE,EAAE,EAAEl7G,EAAE,EAAEA,EAAE,EAAE,EAAEk7G,EAAE,EAAE,EAAE5hK,EAAK,KAAK,IAAI0mD,EAAE,EAAE,CAAC,EAAEk7G,EAAE,EAAE,EAAEl7G,EAAE,EAAEA,EAAE,EAAE,EAAEk7G,EAAE,EAAE,EAAE5hK,EAAK,KAAK,IAAI0mD,EAAE,EAAE,CAAC,EAAEo8C,GAAIpyE,EAAE,EAAEkxI,CAAC,EAAElkD,GAAI5gH,EAAE,EAAE4pD,EAAEk7G,CAAC,CAAE,CAClY,SAASu5E,IAAIl+O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEoqD,EAAEvG,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAK,EAAC,EAAE,EAAE5uJ,EAAE6jD,EAAGulE,GAAIh/D,GAAGn8B,GAAK,EAAC8/M,GAAG,EAAG,GAAG,EAAE,IAAIxxJ,GAAG,EAAGC,GAAK,EAAK77E,EAAE,IAAGR,EAAE0jD,EAAG0lE,EAAI5oH,EAAEy+K,EAAG,EAAE,EAAE,EAAEhrJ,EAAE,IAAI2hC,GAAIp1D,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAKR,EAAE,IAAIwwF,GAAK,EAAC01E,GAAG,GAAIyD,GAAI1/G,EAAE0sG,IAAKp4D,GAAG,EAAGva,GAAK,EAAC26J,GAAI10L,EAAEh2B,EAAE,EAAEA,EAAE,EAAE,GAAM,EAAI,GAAOwf,GAAImnC,GAAGquC,GAAIh/D,EAAEuoL,EAAG,CAAC,CAAC,GAAGmM,GAAI10L,EAAEh2B,EAAE,EAAEA,EAAE,EAAE,GAAK,EAAI,GAAGp0B,EAAE8pK,GAAI1/G,EAAE2jL,GAAIzxJ,GAAIE,EAAG,CAAC,EAAEstF,GAAI1/G,EAAE2jL,IAAKvtO,EAAEqjD,EAAGxH,GAAIy2F,EAAE,EAAE,CAAC,EAAE,IAAIntD,GAAInlF,EAAEqjD,EAAG27B,GAAIh/E,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAC,CAAE,CACnY,SAASm8M,GAAGh8M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAGt5F,EAAE,CAAC,GAAGzzB,EAAE,OAAQ,OAAAH,EAAE,EAAE,EAAS,GAAK,OAAOq4G,GAAIl4G,EAAEyzB,EAAE,CAAC,CAAC,EAAC,CAAE,IAAK,IAAGj0B,EAAE,EAAE,MAAM,IAAK,IAAGA,EAAE,GAAG,MAAM,QAAQ,OAAAK,EAAE,EAAE,EAAS,EAAK,CAAyB,GAAxB,EAAE4zB,EAAE,CAAC,EAAEp0B,EAAEo0B,EAAE,CAAC,EAAEs5F,EAAEqlG,GAAGpyN,EAAEyzB,CAAC,EAAKs5F,GAAG,GAAGt5F,EAAE,CAAC,GAAGp0B,EAAG,MAAO,GAAM,GAAGo0B,EAAE,CAAC,EAAEzzB,EAAE,QAAQk4G,GAAIl4G,EAAEyzB,EAAE,CAAC,CAAC,GAAG,GAAG,CAAgC,GAA/Bg2B,EAAEsjE,EAAE,GAAG,EAAEt5F,EAAE,CAAC,EAAEp0B,EAAEo0B,EAAE,CAAC,EAAEs5F,EAAEqlG,GAAGpyN,EAAEyzB,CAAC,EAAKs5F,GAAG,GAAGt5F,EAAE,CAAC,GAAGp0B,EAAG,MAAO,GAAMoqD,GAAGsjE,CAAC,MAAMtjE,EAAEsjE,EAAEtjE,EAAE,IAAIh2B,EAAE,CAAC,EAAEp0B,GAAG,EAAGoqD,GAAG,GAAKA,EAAEA,EAAE,KAAKA,EAAE,IAAI,GAAG,GAAI,OAAAA,GAAGjqD,EAAEK,EAAE,EAAE,CAAC4pD,EAAS,EAAI,CACpY,SAASm3K,IAAI5gO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAY,IAAV73C,EAAE,IAAIloF,EAAQ4kB,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAI7mL,EAAE,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEk9C,GAAI9mG,CAAC,GAAG+oC,EAAImkF,EAAE,IAAI8zB,IAAIhhJ,EAAE2qJ,IAAIxqJ,EAAEH,EAAE,CAAC,EAAE2qJ,IAAIxqJ,EAAEH,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI+kK,GAAGvlK,EAAG,IAAI23B,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAE,EAAG,GAAI,EAAC,IAAIw3B,GAAIn4B,CAAC,GAAGulK,EAAE,EAAE,GAAE,GAAKD,GAAGlxI,EAAEyvB,EAAG0hH,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE1hH,EAAGzvB,EAAE,GAAI,EAAC,GAAG,GAAGkxI,EAAE,EAAE,EAAE,EAAE,IAAI/kK,GAAGJ,EAAG,IAAIw3B,GAAIh3B,EAAE,CAAC,EAAG,EAAE,KAAK,GAAI,EAAC,IAAIw3B,GAAIh4B,CAAC,GAAGI,EAAE,EAAE,MAAO+kK,GAAGlxI,EAAEyvB,EAAGtjD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAEsjD,EAAGzvB,EAAE,GAAI,EAAC,GAAG,GAAGkxI,EAAE,EAAE,GAAG,GAAG/7H,EAAI5oC,EAAE,EAAEu7O,IAAIv7O,EAAE2kK,CAAC,CAAC,CAAE,CACpY,SAASy5E,IAAIp+O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAW,IAATtlK,EAAEqlE,GAAI1kE,CAAC,EAAMR,EAAE,IAAI28D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGR,EAAE,GAAGA,EAAE,EAAE,GAAI,GAA4E,GAAzEiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,EAAE,EAAEmlK,EAAEgxC,GAAIzyJ,EAAGwpG,GAAK,CAACjjG,EAAE,IAAIA,EAAE,EAAE,IAAIm4B,GAAI4gC,GAAG/4D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAK,CAACgb,GAAIkgG,EAAEtlK,CAAC,EAAG,MAAO,GAAM,IAAIQ,EAAE,IAAIs8D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAACH,EAAE,GAAGA,EAAE,EAAE,GAAE,GAA8E,GAAzE4zB,EAAEyvB,EAAGmvG,GAAIxyJ,CAAC,EAAE,EAAE,EAAEktH,EAAE4oF,GAAIzyJ,EAAGwpG,GAAK,CAACj5H,EAAE,IAAIA,EAAE,EAAE,IAAImuD,GAAI4gC,GAAG/uF,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAK,CAACgxC,GAAIsoD,EAAE1tH,CAAC,EAAG,MAAO,GAAM,MAAO,EAAK,CACrY,SAASg/O,IAAIr+O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA4D,IAA1DA,EAAE,IAAI+sC,GAAIlZ,EAAE6lI,GAAIt5J,EAAE,CAAC,EAAE2kK,EAAE,KAAK9kK,EAAEqjD,EAAG0tF,GAAIn9G,CAAC,EAAE,CAAC,EAAEj0B,EAAE0jD,EAAG0tF,GAAIn9G,CAAC,EAAE,CAAC,EAAQA,EAAE,GAAGA,EAAE,EAAE,GAAGkxI,EAAE9kK,EAAEA,EAAEL,EAAEA,EAAE0jD,EAAG0tF,GAAIn9G,CAAC,EAAE,CAAC,EAAEp0B,EAAE40J,IAAI5zE,GAAI,IAAIjrB,GAAIuvG,EAAE,EAAEA,EAAE,CAAC,EAAE9kK,CAAC,CAAC,EAAEktH,EAAEknC,IAAI5zE,GAAI,IAAIjrB,GAAI51D,EAAE,EAAEA,EAAE,CAAC,EAAEK,CAAC,CAAC,EAAE4pD,EAAE,GAAGA,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAE1mD,EAAK,KAAK,IAAI1D,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEoqD,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAE1mD,EAAK,KAAK,IAAIgqH,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAE1tH,EAAE,EAAE4mG,GAAI5mG,EAAE,CAAC,EAAEoqD,EAAEpqD,EAAE,EAAE4mG,GAAI5mG,EAAE,CAAC,EAAEoqD,EAAEsjE,EAAE,EAAE9mB,GAAI8mB,EAAE,CAAC,EAAEtjE,EAAEsjE,EAAE,EAAE9mB,GAAI8mB,EAAE,CAAC,EAAEtjE,EAAEo8C,GAAIjmG,EAAEwgF,GAAI/gF,EAAEQ,CAAC,CAAC,EAAEgmG,GAAIjmG,EAAEwgF,GAAI2sC,EAAEltH,CAAC,CAAC,EAAE,OAAOD,CAAC,CACtY,SAAS48E,GAAIx8E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,OAAAmtH,EAAE/sH,EAAE,GAAE,EAAGJ,EAAEI,EAAE,GAAE,EAAGR,EAAE,KAAQI,EAAQ6zB,GAAI,EAAAwjM,GAAIj3N,EAAEyzB,EAAE5zB,CAAC,EAAE,GAAG+5E,KAASnwB,EAAEikH,GAAI9tK,EAAE,GAAE,EAAGI,EAAEypD,CAAC,EAAEzpD,EAAE,GAAG,IAAI,EAAER,EAAEi0B,EAAE,GAAI,GAAM7zB,EAAE,MAAamtH,IAAIntH,EAAEmtH,EAAE,GAAE,GAAMt5F,IAAIj0B,EAAEi0B,EAAE,OAAM7zB,GAAGJ,GAAKI,GAAGA,EAAE,GAAGI,CAAC,EAAE2kK,EAAE3kK,EAAE,GAAE,EAAGA,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAED,GAAGJ,GAAKA,GAAGA,EAAE,GAAGQ,CAAC,EAAKA,EAAE,GAAI,GAAEA,EAAE,GAAE,IAAS+sH,GAAG43C,GAAG,GAAGA,GAAG9kK,IAAGR,EAAE,IAAI+0G,GAAIp0G,EAAE,EAAE2kK,EAAE53C,EAAE,IAAI,EAAGtjE,EAAQA,EAAE,GAAGpqD,CAAC,EAAXoqD,EAAEpqD,GAAcQ,GAAG,IAAGR,EAAE,IAAI+0G,GAAIp0G,EAAE,EAAEH,EAAE8kK,GAAG9kK,EAAEktH,EAAE,KAAKt5F,CAAC,EAAGg2B,EAAQA,EAAE,GAAGpqD,CAAC,EAAXoqD,EAAEpqD,IAAmBoqD,CAAC,CACtY,SAAS0jK,IAAIntN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAGzpD,EAAE,GAAG,KAAK,CAA6C,GAA5CypD,EAAE,IAAIzT,GAAOh2C,EAAE,GAAG,OAAMq7D,GAAI5R,EAAEzpD,EAAE,CAAC,EAAEypD,EAAE,GAAG,KAAQzpD,EAAE,EAAE,IAAQ,CAA4H,IAAvHA,EAAE,EAAE,KAASA,EAAE,GAAG,OAAMsmH,IAAItmH,EAAE,CAAC,IAAIypD,EAAE,GAAG,MAAQ4R,GAAI5R,EAAEzpD,EAAE,CAAC,GAAKA,EAAE,GAAG,OAAMypD,EAAE,GAAG,IAAI4R,GAAI5R,EAAEzpD,EAAE,CAAC,GAAGA,EAAE,EAAE,KAASypD,EAAE,GAAG,KAAWh2B,EAAE,EAAE5zB,EAAEG,EAAE,EAAE,OAAOyzB,EAAE5zB,EAAE4zB,IAAKA,GAAG,IAAIg2B,EAAE,GAAG,KAAO4R,GAAI5R,EAAEzpD,EAAE,EAAEyzB,CAAC,CAAC,EAAKzzB,EAAE,GAAG,OAAMypD,EAAE,GAAG,IAAI4R,GAAI5R,EAAEzpD,EAAE,CAAC,EAAE,MAAMq7D,GAAI5R,EAAEzpD,EAAE,CAAC,EAAKA,EAAE,GAAG,OAAMypD,EAAE,GAAG,IAAI4R,GAAI5R,EAAEzpD,EAAE,CAAC,GAAEA,EAAE,EAAEypD,EAAE,CAAC,CAAC,OAAOzpD,EAAE,CAAC,CACtY,SAASgrO,IAAIhrO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAInlK,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEH,EAAEupH,EAAIn/D,GAAGygE,EAAK,EAAC+jC,GAAG,EAAM1iF,EAAGlsE,EAAE,EAAE,IAAG0tH,EAAE7pE,EAAG7jD,EAAE,EAAE,EAAEslK,EAAE25E,IAAI7qN,EAAEg2B,EAAEsjE,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE43C,EAAE,EAAE53C,EAAE,EAAE,EAAE43C,EAAE,EAAEj+H,GAAIqmF,EAAE7pE,EAAG0lE,EAAIn/D,EAAEsjH,EAAG,EAAE,EAAE,CAAC,GAAGltK,EAAE,IAAIu1D,GAAI3hC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAKyvB,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGu0D,KAAM,EAAE,EAAE,IAAIzuF,GAAG,EAAG01E,GAAK,GAAE5iF,EAAI9iF,GAAGstB,GAAG,EAAG6oI,KAAMp4D,GAAK,EAACva,GAAG,EAAGtgC,EAAG0lE,EAAI3K,GAAIj+G,CAAC,EAAEy+K,EAAG,EAAE,EAAE,EAAE,GAAG5Y,EAAG,EAAE04E,IAAIv+O,EAAEH,EAAE,EAAK,GAAO0+O,IAAIv+O,EAAEH,EAAE,EAAI,CAAE,CACvY,SAAS2+O,IAAIx+O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAgO,GAA9NgsH,GAAI/rH,EAAE,sBAAsBG,EAAE,EAAE,CAAC,EAAEypD,EAAEh2B,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC6qB,GAAIqlE,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIqF,GAAI,IAAIhgB,GAAG,CAAC,CAAC,EAAE,IAAIguC,GAAG,EAAGC,GAAK,EAACnnD,EAAE6zB,EAAE,EAAE,EAAE,QAAQ,GAAGyvB,EAAGo4B,GAAI7nD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAEp0B,EAAE06D,EAAG6uD,EAAIn1F,GAAGnG,GAAG,EAAG02M,GAAG,CAAE,IAAIjqK,GAAIgjC,GAAG,EAAGqmC,GAAK,EAAI35E,GAAG7pD,GAAG,CAACP,EAAE,CAACwsH,GAAIhsH,CAAC,EAAE,MAAM,CAACL,EAAEksO,IAAI1rO,EAAEyzB,CAAC,EAAEs5F,GAAG43C,EAAEzhH,EAAGghG,GAAG1kJ,EAAE,CAAC,EAAE,GAAG,EAAEmlK,EAAE,EAAE,GAAE,EAAGA,EAAE,EAAE,GAAE,EAAG,IAAI/lI,IAAI5+B,CAAC,EAAE,IAAI6+B,IAAI7+B,CAAC,EAAE,IAAI2+B,IAAI3+B,CAAC,GAAG03K,IAAIl4K,EAAEutH,CAAC,EAAEyyD,IAAIx/K,CAAC,EAAE6rH,GAAIhsH,CAAC,CAAC,CACvY,SAAS4+O,IAAGz+O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAsI,GAApIA,EAAEqtG,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAItiI,GAAG,KAAK,EAAE8wC,GAAG9wC,CAAC,EAAEwiI,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAEz2J,EAAEytG,GAAI8oD,GAAIC,GAAIx0C,GAAIvU,GAAI8oD,GAAIl2J,GAAG,KAAK,EAAE0kE,GAAG1kE,CAAC,EAAEo2J,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE0O,EAAE7O,GAAG91J,EAAEyzB,EAAE7zB,CAAC,EAAEmtH,EAAEmtC,GAAGl6J,EAAEH,EAAEL,CAAC,EAAOmlK,GAAGnlK,GAAGmlK,EAAE,GAAG9mD,GAAGh+G,EAAE8kK,EAAE,CAAC,EAAG,OAAO9kK,EAAO,GAAKktH,GAAG,CAACtjE,EAAG,MAAM/jB,EAAI,IAAImN,GAAI,wBAAwBhzC,CAAC,CAAC,EAAE,OAAE8kK,GAAG8+D,GAAGzjO,EAAE2kK,CAAC,EAAI53C,GAAG02G,GAAGzjO,EAAE+sH,CAAC,EAAE1tH,EAAE,IAAI0gH,GAAGlgH,EAAEL,EAAEi0B,EAAE7zB,CAAC,EAAEqwM,GAAGjwM,EAAEX,EAAE0tH,CAAC,EAAKA,IAAGA,EAAE,EAAE,KAAKA,EAAE,EAAE,MAAQ43C,IAAGA,EAAE,EAAE,KAAKA,EAAE,EAAE,MAAKqrC,IAAGhwM,CAAC,EAAU2kK,EAAOA,EAAE,EAAP,IAAQ,CACxY,SAASy2C,IAAIp7M,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAItlK,EAAE,EAAEA,EAAEo0B,EAAEp0B,IAAI,CAAK,IAAJoqD,EAAE,EAAMk7G,EAAEtlK,EAAE,EAAEslK,EAAElxI,EAAEkxI,IAAKl7G,EAAEshD,GAAIA,GAAIgrD,GAAIl7B,GAAI76H,EAAEX,CAAC,EAAEo4K,EAAG,EAAE58C,GAAI76H,EAAE2kK,CAAC,EAAE8S,EAAG,CAAC,EAAE58C,GAAIh7H,EAAER,EAAEslK,CAAC,EAAE8S,EAAG,CAAC,EAAE58C,GAAI5tB,GAAIxjD,CAAC,EAAEguH,EAAG,CAAC,EAAE53K,EAAER,EAAEslK,CAAC,EAAE13D,GAAIxjD,CAAC,EAAEA,EAAEioD,GAAIjoD,EAAE,EAAE,EAAE5pD,EAAER,EAAEo0B,CAAC,EAAEw5E,GAAIxjD,CAAC,CAAC,CAAmB,IAAlB26G,IAAIvkK,EAAEA,EAAE4zB,GAAG,CAAC,EAAEg2B,EAAE,EAAMjqD,EAAE,EAAEutH,EAAE,EAAEvtH,EAAEi0B,EAAE,EAAEj0B,EAAEutH,IAAKtjE,EAAEshD,GAAIA,GAAIgrD,GAAIl7B,GAAI76H,EAAER,CAAC,EAAEi4K,EAAG,EAAE58C,GAAI76H,EAAER,CAAC,EAAEi4K,EAAG,CAAC,EAAE58C,GAAIh7H,EAAEktH,CAAC,EAAE0qD,EAAG,CAAC,EAAE58C,GAAI5tB,GAAIxjD,CAAC,EAAEguH,EAAG,CAAC,EAAE53K,EAAEktH,CAAC,EAAE9f,GAAIxjD,CAAC,EAAEA,EAAEioD,GAAIjoD,EAAE,EAAE,EAAE,EAAEsjE,EAAEtjE,EAAEshD,GAAIthD,EAAEoxE,GAAIh7H,EAAEktH,CAAC,EAAE0qD,EAAG,CAAC,EAAE53K,EAAEktH,CAAC,EAAE9f,GAAIxjD,CAAC,EAAEA,EAAEioD,GAAIjoD,EAAE,EAAE,EAAE,OAAO5pD,CAAC,CACxY,SAAS6+O,IAAI1+O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG,CAAAp0B,GAAGh9G,CAAC,EAA8F,KAApF7zB,EAAEszC,EAAImnC,EAAGytG,GAAIjoL,EAAE,GAAGytB,GAAK,EAACy/J,GAAG,CAAE,CAAC,EAAEnoB,EAAE1hH,EAAG4kI,GAAIjoL,EAAE,EAAE8+O,EAAG,EAAE,GAAG,EAAE,CAAC/5E,IAAIA,EAAE,IAAI74H,IAAK0d,EAAE5pD,EAAE,EAAEL,EAAE,KAASmlK,EAAElxI,EAAE,GAAI,EAACkxI,EAAE,GAAE,GAAK53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAEE,EAAE,EAAMrlK,GAAcqlK,EAAEjlK,EAAEilK,GAAGrlK,EAAE,EAAE,GAAtBqlK,EAAED,EAAE,EAAoBvlK,EAAE2yE,GAAIjsB,GAAI,IAAI7b,GAAI6iF,CAAC,EAAE/sH,EAAE,CAAC,EAAEw5D,GAAIx5D,EAAE,EAAE+sH,EAAE1tH,CAAC,EAAE0qL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAI,CAAC,EAAEu1B,GAAGz8D,EAAK,KAAK,KAAK8hK,CAAC,CAAC,CAAC,EAAEp7G,CAAC,EAAEpqD,CAAC,CAAC,EAAEG,EAAEutH,EAAEtjE,EAAEpqD,EAAE0qL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAI,CAAC,EAAEu1B,GAAGz8D,EAAK,KAAK,KAAK6hK,EAAE,EAAEplK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAEiqD,CAAC,EAAE5pD,EAAE,CAAC,CAAC,EAAC,CACxY,SAAS++O,IAAI5+O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAmD,OAAjDA,EAAE,GAAMslK,EAAE1lK,EAAEQ,EAAE,EAAEglK,EAAEhlK,EAAE,EAAE4zB,EAAE,GAAGmxI,EAAE9gC,GAAIjkI,EAAEklK,EAAE,EAAK,EAAEH,EAAE,GAAMn7G,EAAE,EAAEk7G,EAAEI,EAAU,IAAMD,GAAGllK,EAAEkkI,GAAIr6E,EAAEs7G,EAAE,EAAK,EAAEnlK,EAAE,GAAMilK,EAAEF,EAAEG,GAAGrxI,EAAE,IAAG82H,GAAI1qJ,EAAER,EAAEQ,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAK0qJ,GAAI9gG,EAAEpqD,EAAEQ,EAAE,CAAC,EAAEmxL,GAAIvnI,EAAE5pD,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE8kK,CAAC,EAAEl7G,EAAE,EAAE,GAAK0+G,GAAItoK,EAAE,EAAE4pD,CAAC,EAAEhqD,EAAE,GAAQD,IAAGo8J,GAAInoI,EAAEg2B,CAAC,EAAEA,EAAE,EAAEh2B,EAAKzzB,EAAE,EAAE,OAAO+sH,IAAGkhF,IAAKpxI,GAAIkwD,EAAE/sH,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE+sH,CAAC,EAAE,GAAG,GAAGtjE,CAAC,GAAGoT,GAAIkwD,EAAE/sH,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE+sH,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,QAAQ,GAAGrW,GAAI12G,EAAE+sH,CAAC,KAAWttH,EAAC,CACxY,SAASo/O,IAAI7+O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyG,GAAvG/4C,GAAIn4F,EAAE,0BAA0B,CAAC,EAAEj0B,EAAE,IAAIk6E,GAAGr0B,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIkR,GAAG,EAAE,IAAIwrB,IAAIl9B,CAAC,CAAC,EAAKA,EAAE,GAAG,EAA8K,KAApKmlK,EAAEzhH,EAAGm0F,GAAI/c,KAAKj7H,EAAEG,EAAE,EAAE,IAAIorG,GAAI,MAAOvrG,IAAGG,EAAE,EAAE,IAAI+hD,GAAG/hD,EAAEA,EAAE,CAAC,IAAM,IAAI,EAAC,EAAGkrJ,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAK,EAAC+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAE/xE,EAAEk7G,EAAE,GAAE,EAAG9kK,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAQA,EAAE,MAAMsjE,EAAE7pE,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAEo7K,IAAI3hL,EAAGgwB,GAAG1zE,EAAEK,CAAC,EAAE,EAAE,EAAEqjD,EAAGgwB,GAAG1zE,EAAEutH,CAAC,EAAE,EAAE,CAAC,EAAEltH,EAAEktH,EAAElB,GAAIp4F,CAAC,EAAC,CAC1Y,SAASqrN,IAAI9+O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGpxI,EAAE,GAAG,EAAE,CAA8K,IAA7KA,EAAE,EAAE,EAAEs5F,EAAEltH,EAAMktH,IAAGvtH,EAAE,IAAIqlC,EAAIxlC,GAAGoqD,EAAEvG,EAAGxH,GAAIg9F,EAAE,EAAE,CAAC,EAAE,IAAI1zD,GAAIv7B,EAAEvG,EAAG27B,GAAIp1B,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAGsjE,EAAE,IAAIp2D,GAAIn3D,EAAEH,CAAC,GAAE6jD,EAAG6pE,EAAE,EAAE,EAAE,EAAE,GAAGt5F,CAAC,EAAEA,EAAE,IAAIk3D,GAAG,EAAGi0D,KAAM17F,EAAG6pE,EAAE,EAAE,EAAE,EAAE,GAAG7pE,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAG6iD,GAAK,EAAC,EAAE,CAAC,EAAMntK,EAAE,IAAIs4B,EAAIzE,EAAE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAMilK,EAAE,GAAGtJ,GAAGriD,EAAG9hE,EAAGozK,GAAG,CAAC,EAAErmJ,GAAI,GAAG,EAAE,CAAC,IAAIjpC,GAAIypI,CAAC,EAAE,IAAIvpI,GAAIupI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEjmB,GAAGmmB,CAAC,GAAID,EAAE1hH,EAAGu7F,GAAGomB,CAAC,EAAE,EAAE,EAAEi6E,IAAI9+O,EAAE4kK,EAAE,EAAE73C,CAAC,EAAG,OAAOA,CAAC,CAAC,OAAO,IAAI,CAC3Y,SAAS+3D,GAAI9kL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG/sH,EAAE,IAAI,GAAGA,EAAE,IAAa,GAAT+sH,EAAE/sH,EAAE,GAAG,EAAK+sH,EAAE,GAAqB,GAAlBvtH,EAAE0jD,EAAGljD,EAAE,GAAG,EAAE,IAAI,EAAKyzB,GAAG,MAAM,IAAIp0B,EAAE,EAAEA,EAAE0tH,EAAE,EAAE1tH,EAAU,GAAPQ,EAAEL,EAAEH,CAAC,EAAKQ,EAAE,GAAG,KAAM,OAAOA,MAAS,KAAIR,EAAE,EAAEA,EAAE0tH,EAAE,EAAE1tH,EAAU,GAAPQ,EAAEL,EAAEH,CAAC,EAAKgjF,GAAI5uD,EAAE5zB,EAAE,CAAC,EAAG,OAAOA,WAAc4zB,GAAG,MAAM,IAAIg2B,EAAE,IAAI0S,GAAIn8D,EAAE,EAAE,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAsB,GAAjB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAK5pD,EAAE,GAAG,KAAM,OAAOA,MAAS,KAAI4pD,EAAE,IAAI0S,GAAIn8D,EAAE,EAAE,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAsB,GAAjB5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAK44B,GAAI5uD,EAAE5zB,EAAE,CAAC,EAAG,OAAOA,EAAM,OAAO,IAAI,CAC3Y,SAASk/O,IAAI/+O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA2B,GAAzBA,EAAExqF,GAAGwuC,EAAIn1F,GAAGzE,GAAG,EAAGopM,IAAK,CAAA,EAAKxzD,GAAG,OAAO9zI,GAAI8zI,CAAC,EAAEA,GAAG,CAAoB,IAAnB8wD,IAAI11N,EAAEyzB,CAAC,EAAEj0B,EAAE,IAAIqlC,EAAQjlC,EAAE05J,GAAI7lI,EAAE,EAAE,CAAC,EAAE7zB,EAAE,GAAGA,EAAE,EAAE,GAAImtH,EAAE7pE,EAAG0tF,GAAIhxI,CAAC,EAAE,EAAE,EAAEC,EAAE8pN,GAAI3pN,EAAE+sH,EAAE,IAAI,EAAKltH,IAAGi/I,GAAIj/I,EAAE4zB,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEK,GAAqB,GAAlBG,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAQR,EAAE,EAAE,OAAO,EAAG,IAAIiqD,EAAE,IAAIvxB,EAAI14B,CAAC,EAAEiqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA8B,IAArB5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEpqD,EAAE,EAAMslK,EAAErL,GAAIz5J,EAAE,EAAE,CAAC,EAAE8kK,EAAE,GAAGA,EAAE,EAAE,GAAI53C,EAAE7pE,EAAG0tF,GAAI+zB,CAAC,EAAE,EAAE,EAAE53C,EAAE,EAAE1tH,IAAM,OAAOG,CAAC,CAAC,OAAOqgJ,GAAG3mC,EAAG9hE,EAAG4nM,IAAG,CAAC,EAAEliB,IAAI,IAAI,EAAE,CAACrpM,CAAC,CAAC,CAAC,CAAC,CAC5Y,SAASkzL,IAAI3mN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEQ,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEx/O,EAAEu0I,IAAIh0I,EAAEwwK,GAAI/8I,CAAC,EAAEj0B,CAAC,EAAEqhK,GAAIphK,EAAEitI,GAAIltI,EAAEozL,EAAG,CAAC,EAAEjzL,GAAE,KAAKM,EAAET,EAAE4qN,EAAE39E,GAAIxsI,EAAEi/O,GAAG,EAAE3/O,EAAE,IAAI8hC,IAAI5hC,CAAC,EAAE2jN,IAAI7jN,EAAE,EAAE6qN,CAAC,EAAE+xB,EAAE1vG,GAAIxsI,EAAE,UAAU,EAAEP,EAAE,IAAI+hC,IAAIhiC,CAAC,EAAE0jN,IAAIzjN,EAAE,EAAEy8O,CAAC,EAAEp8O,EAAEwsI,GAAItsI,EAAEi9N,EAAG,EAAE+hB,EAAE,IAAIr9M,IAAIniC,CAAC,EAAE03M,IAAI8nC,EAAE,EAAEl/O,CAAC,EAAE+kK,EAAEp4B,GAAIltI,EAAE2/O,GAAG,EAAE9/O,EAAE,IAAI43D,IAAIj3D,EAAEP,CAAC,EAAEqgF,IAAIzgF,EAAE,EAAEA,EAAE,EAAEylK,CAAC,EAAEC,EAAEr4B,GAAIltI,EAAE4/O,GAAG,EAAEryH,EAAE,IAAI71D,IAAIl3D,EAAEP,CAAC,EAAEwgF,IAAI8sC,EAAE,EAAEA,EAAE,EAAEg4C,CAAC,EAAEH,EAAEr4B,GAAI/sI,EAAE6/O,GAAG,EAAE16E,EAAE,IAAIxtG,IAAIt3D,EAAEJ,CAAC,EAAEgpM,IAAI9jC,EAAE,EAAEA,EAAE,EAAEC,CAAC,EAAEC,EAAEt4B,GAAI/sI,EAAE8/O,GAAG,EAAE1/O,EAAE,IAAIw3D,IAAI3N,EAAEhqD,CAAC,EAAEipM,IAAI9oM,EAAE,EAAEA,EAAE,EAAEilK,CAAC,CAAC,CAC5Y,SAAS06E,GAAIv/O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAS,OAAPA,EAAE,KAAYlxI,EAAE,EAAG,CAAA,IAAK,GAAE,IAAIj0B,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAKyzC,GAAImnC,GAAGwuC,EAAIn/D,GAAGygE,EAAG,EAAGs1H,GAAK,CAAA,CAAC,EAAG,OAAO/1L,EAAGk7G,EAAE,IAAI6yC,GAAI10H,EAAI6hF,GAAGz6C,EAAK,EAACs1H,KAAMpvK,GAAG,EAAG,GAAM,EAAC,MAAM,IAAK,GAAE,IAAI28C,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAK95E,GAAImnC,GAAGwuC,EAAIvpH,GAAG6qH,EAAK,EAACu1H,GAAG,CAAE,CAAC,EAAG,OAAOpgP,EAAGslK,EAAE,IAAI6yC,GAAI10H,EAAI6hF,GAAGz6C,EAAK,EAACu1H,KAAMrvK,GAAK,EAAC,GAAI,CAAG,CAAC,OAAGu0F,IAAGxqH,GAAIwqH,EAAE3kK,CAAC,EAAE0mC,GAAIi+H,EAAE9kK,CAAC,EAAEi+L,IAAIn5B,EAAE,EAAE3kK,EAAE,EAAEH,CAAC,GAAS8kK,CAAC,CAC7Y,SAAS0yD,IAAIr3N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAiB,IAAfA,EAAE,GAAG53C,EAAE,IAAIngF,GAAQ6c,EAAE,IAAIk3F,GAAI3gJ,EAAE,CAAC,EAAEkoE,GAAIze,EAAE,CAAC,GAAGye,GAAIze,EAAE,CAAC,GAAG,CAAiN,IAAhN5pD,EAAEqjD,EAAGglB,GAAIze,EAAE,CAAC,EAAEk7E,EAAIl7E,EAAE,CAAC,EAAEk7E,EAAIl7E,EAAE,CAAC,EAAE,EAAE,EAAEk7G,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAEzxH,EAAImnC,EAAGuuC,EAAI/oH,GAAGytB,GAAG,EAAG8nI,GAAK,CAAA,CAAC,CAAC,EAAEv1J,EAAE,GAAGG,EAAEqlD,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI2N,GAAG,EAAE,IAAIsuB,IAAIixF,CAAC,CAAC,EAAE1nE,GAAIs+D,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI4N,GAAG,EAAE,IAAIsuB,IAAIgxF,CAAC,CAAC,EAAM1tH,EAAEi6J,GAAIvsC,EAAE,CAAC,EAAE1tH,EAAE,GAAGA,EAAE,EAAE,GAAIG,EAAE0jD,EAAG0tF,GAAIvxI,CAAC,EAAE,EAAE,EAAEq3E,GAAIl3E,GAAG0qH,EAAK,EAACmiG,GAAG,GAAIvpI,EAAItjF,EAAE6sN,GAAIxsN,CAAC,EAAE8nH,GAAIl0F,EAAEs5F,CAAC,EAAE3nE,GAAI2nE,CAAC,CAAC,CAAC,OAAO43C,CAAC,CAC9Y,SAAS+6E,IAAI1/O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEP,EAAE,IAAIu/L,GAAI5+L,CAAC,EAAEq0B,GAAIh1B,GAAGsrF,GAAG,EAAG4+D,GAAK,EAACzmE,EAAIzjF,GAAGiuB,GAAG,EAAG6oI,KAAMp4D,GAAK,EAACva,GAAG,EAAGV,EAAIzjF,GAAG6qH,IAAM+jC,IAAKx6H,EAAE,EAAE,CAAC,EAAEs5F,EAAE,IAAIyqF,GAAI10H,EAAIiqC,EAAEkhC,GAAIx6H,EAAE,CAAC,EAAEiT,GAAIqmF,EAAEvtH,CAAC,EAAE26C,GAAI4yE,EAAE1tH,CAAC,EAAEyjF,EAAIrvD,EAAE,EAAEkjJ,GAAIt3K,CAAC,EAAEslK,EAAE,IAAIi6B,GAAI5+L,CAAC,EAAEq0B,GAAIswI,EAAEpb,EAAG,EAAEzmE,EAAI6hF,EAAExO,GAAI3yE,EAAG,EAAEV,EAAI6hF,EAAE1W,GAAIx6H,EAAE,EAAE,CAAC,EAAE7zB,EAAE,IAAI43M,GAAI10H,EAAIljF,EAAEquJ,GAAIx6H,EAAE,CAAC,EAAEiT,GAAI9mC,EAAEJ,CAAC,EAAE26C,GAAIv6C,EAAE+kK,CAAC,EAAE7hF,EAAIrvD,EAAE,EAAEkjJ,GAAIhS,CAAC,EAAE96F,GAAIp2C,EAAEs5F,CAAC,EAAEjjD,GAAIr2C,EAAE7zB,CAAC,EAAE+tG,GAAI,EAAE9tG,EAAE,EAAE,MAAM,EAAEguD,GAAIhuD,EAAE,EAAE,EAAER,CAAC,EAAEoqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEk7G,EAAE7hF,EAAIzjF,EAAEsgP,GAAIpyG,EAAI,CAAC,CAAC,EAAEzqD,EAAI6hF,EAAEg7E,GAAIpyG,EAAI,CAAC,CAAC,CAAC,CAC9Y,SAASqyG,GAAI5/O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAED,EAAEnlK,EAAEiqD,EAAE,EAAEA,EAAE,EAAK,CAAAzF,GAAIhkD,EAAE,EAAEypD,CAAC,IAAUm7G,EAAED,EAAE9kK,EAAE,GAAG8kK,EAAE9kK,EAAE,EAAED,EAAE,GAASC,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,IAAGD,EAAEA,GAAGmD,EAAK,KAAK,IAAI4hK,EAAEzxH,EAAImnC,EAAG9E,GAAI11E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEwoM,IAAKtlM,EAAK,KAAK,IAAI4hK,EAAEzxH,EAAImnC,EAAG9E,GAAI11E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEwoM,IAAKzoM,EAAEA,GAAGmD,EAAK,KAAK,IAAI4hK,EAAEzxH,EAAImnC,EAAG7E,GAAI31E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEwoM,IAAKtlM,EAAK,KAAK,IAAI4hK,EAAEzxH,EAAImnC,EAAG7E,GAAI31E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEwoM,MAAQzjC,GAAGhlK,KAAGmtH,EAAE7pE,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGyxH,GAAK,EAAC,EAAE,EAAMhyB,IAAGA,EAAE,IAAIpgF,GAAIm2C,EAAIrvD,EAAEsrH,GAAIhyB,CAAC,GAAE1tH,EAAE,IAAI+4C,GAAIqR,CAAC,EAAEkS,GAAIoxD,EAAE1tH,EAAE0tH,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE/jF,GAAIhpC,EAAE,EAAEX,CAAC,GAAE,CAC9Y,SAASwgP,IAAI7/O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGytD,IAAItyN,EAAEyzB,EAAE5zB,EAAE4pD,CAAC,EAAG,MAAO,GAAU,IAAIsjE,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkE,OAAjE1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE43C,EAAE,GAAM/kK,EAAEI,EAAE,EAAEyzB,EAAE,EAAE5zB,EAAE+kK,EAAEhlK,EAAE6zB,EAAE,EAAEoxI,EAAE7kK,EAAE,EAAEyzB,EAAE,EAAEg2B,EAAEjqD,EAAEqlK,EAAEpxI,EAAE,EAASp0B,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEslK,EAAEuT,GAAIl4K,EAAEJ,EAAEP,EAAE,EAAE,EAAE,EAAEO,EAAEP,EAAE,EAAE,EAAEwlK,EAAE,CAAC,EAAE,MAAM,IAAK,GAAEF,EAAEuT,GAAIl4K,EAAE4kK,EAAEC,EAAExlK,EAAE,EAAE,EAAEW,EAAE,EAAE,EAAE6kK,EAAExlK,EAAE,EAAE,CAAC,EAAE,MAAM,IAAK,GAAEslK,EAAEuT,GAAIl4K,EAAEJ,EAAEP,EAAE,EAAE,EAAEG,EAAEI,EAAEP,EAAE,EAAE,EAAEW,EAAE,EAAE,CAAC,EAAE,MAAM,QAAQ2kK,EAAEuT,GAAIl4K,EAAE,EAAE6kK,EAAExlK,EAAE,EAAE,EAAEO,EAAE,EAAEilK,EAAExlK,EAAE,EAAE,CAAC,CAAE,CAAC,GAAGslK,EAAG,MAAO,EAAK,CAAE,MAAO,EAAK,CAC/Y,SAASm7E,IAAI9/O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,IAAI93C,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAM63C,EAAE,IAAI1sI,EAAI74B,EAAE,CAAC,EAAEulK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA+B,IAA9BhlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEC,EAAE,IAAIhgI,EAAI8/H,EAAE,EAAMl7G,EAAE,IAAIonD,GAAGphC,GAAGm3G,GAAIhnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAI0D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK,EAAAk9C,GAAI9mG,CAAC,GAAG,CAAC8mG,GAAI9mG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,KAAYL,EAAE0jD,EAAG0lE,EAAI/oH,GAAGytB,GAAK,EAACyyN,GAAG,EAAG,EAAE,EAAE,EAAKvgP,EAAEmlK,IAAGA,EAAEnlK,EAAEqlK,EAAE,EAAE5gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,GAAE3kE,GAAGmlK,GAAG/7H,EAAIi8H,EAAE,IAAIluG,GAAI92D,EAAE,EAAE,EAAEA,CAAC,CAAC,GAAEwqE,GAAK,EAACrC,GAAI68F,EAAE7kK,EAAE,CAAC,EAAE0tG,GAAI1tG,EAAE,EAAEJ,EAAE,EAAEilK,CAAC,CAAC,CAAE,CAC/Y,SAASm7E,IAAIhgP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,IAAI93C,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAM63C,EAAE,IAAI1sI,EAAI74B,EAAE,CAAC,EAAEulK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA+B,IAA9BhlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEC,EAAE,IAAIhgI,EAAI8/H,EAAE,EAAMl7G,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIjnL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAI0D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAK,EAAAk9C,GAAI9mG,CAAC,GAAG,CAAC8mG,GAAI9mG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,KAAYL,EAAE0jD,EAAG0lE,EAAI/oH,GAAGytB,GAAK,EAACyyN,GAAG,EAAG,EAAE,EAAE,EAAKvgP,EAAEmlK,IAAGA,EAAEnlK,EAAEqlK,EAAE,EAAE5gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,GAAE3kE,GAAGmlK,GAAG/7H,EAAIi8H,EAAE,IAAIluG,GAAI92D,EAAE,EAAE,EAAEA,CAAC,CAAC,GAAEwqE,GAAK,EAACrC,GAAI68F,EAAE7kK,EAAE,CAAC,EAAE0tG,GAAI1tG,EAAE,EAAEJ,EAAE,EAAEilK,CAAC,CAAC,CAAE,CAC/Y,SAASo7E,IAAIjgP,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIwhO,EAAG,EAAE,SAAS,EAAE,wEAAwE,EAAE,IAAIpgO,GAAG,CAAC,CAAC,EAAEoqH,EAAIlqI,EAAEkgP,GAAItO,GAAIxxB,GAAG,EAAEl2E,EAAIlqI,EAAEkgP,GAAIrO,GAAI,EAAE,EAAE3nG,EAAIlqI,EAAEkgP,GAAIC,GAAI5yG,EAAI,CAAC,CAAC,EAAErD,EAAIlqI,EAAEkgP,GAAIE,GAAI98I,GAAIm9G,GAAG,CAAC,EAAEv2E,EAAIlqI,EAAEkgP,GAAIrG,GAAIv2I,GAAIq9G,GAAG,CAAC,EAAEz2E,EAAIlqI,EAAEkgP,GAAIG,GAAI/8I,GAAIs9G,GAAG,CAAC,EAAE12E,EAAIlqI,EAAEkgP,GAAInO,GAAIjxB,GAAG,EAAE52E,EAAIlqI,EAAEkgP,GAAII,GAAIh9I,GAAIy9G,GAAG,CAAC,EAAE72E,EAAIlqI,EAAEkgP,GAAIpG,GAAIx2I,GAAI09G,GAAG,CAAC,EAAE92E,EAAIlqI,EAAEkgP,GAAIK,IAAIj9I,GAAI29G,EAAG,CAAC,EAAE/2E,EAAIlqI,EAAEkgP,GAAIM,GAAIl9I,GAAI69G,GAAG,CAAC,CAAC,CAChZ,SAASs/B,IAAIzgP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAwB,GAAtBrlK,EAAEQ,EAAE,EAAE+sH,EAAEvtH,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAAKutH,GAAG,GAAG1tH,GAAG,EAAG,OAAOy/F,EAAG,EAAG85C,GAAoC,OAAhCgsB,EAAE5kK,EAAE,EAAE,EAAE6kK,EAAE7kK,EAAE,EAAE,EAAE2kK,EAAE3kK,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAE,EAASyzB,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,GAAGmxI,EAAE,EAAG,OAAO9lE,EAAK,EAACmE,GAAS,GAAG2hE,EAAED,EAAE53C,EAAG,OAAOjuB,EAAK,EAACsE,GAAI,MAAM,IAAK,GAAE,IAAK,GAAE,GAAGyhE,EAAE,EAAG,OAAO/lE,IAAM+5C,GAAS,GAAGgsB,EAAEhlK,EAAER,EAAG,OAAOy/F,EAAK,EAACmxC,EAAI,CAAC,OAAArwI,GAAGglK,EAAED,EAAE,GAAG53C,EAAEtjE,GAAGo7G,EAAEhlK,EAAE,GAAGR,EAASO,EAAE6pD,GAAG,GAAG7pD,EAAE6pD,GAAG,GAAGq1C,EAAK,EAACmE,IAAKrjG,EAAE6pD,GAAG,GAAG7pD,EAAE6pD,GAAG,GAAGq1C,EAAK,EAACsE,IAAK35C,EAAE,IAAKq1C,EAAG,EAAG+5C,KAAM/5C,EAAK,EAACmxC,GAAI,CACjZ,SAASywG,IAAI1gP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAgD,IAA9CJ,EAAE,GAAMglK,EAAE3xH,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAG,EAAG8+J,GAAG,CAAE,CAAC,EAAEzsL,EAAEm6J,GAAI+K,EAAMrlK,EAAE,IAAI04B,EAAIzE,EAAE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAwE,IAA/DiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEolK,EAAE,IAAI1sI,EAAIuxB,EAAE,CAAC,EAAEpqD,EAAE6jD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEE,EAAEzvD,GAAIr1G,EAAE,EAAEX,EAAE,CAAC,CAAC,EAAQulK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQD,EAAEzhH,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEG,EAAE1vD,GAAIr1G,EAAE,EAAE2kK,EAAE,CAAC,CAAC,EAAKG,GAAGC,IAAGtlK,EAAE4pE,GAAIrpE,EAAE,EAAEX,EAAEslK,CAAC,EAAE53C,EAAE1tH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEylK,EAAE,EAAErlK,EAAEG,EAAE+kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEI,EAAE,EAAKh4C,EAAEntH,EAAED,IAAGM,EAAE6kK,EAAE,EAAEC,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,EAAED,EAAE,EAAEA,EAAE,GAAG7kK,EAAE8kK,EAAE,EAAE9kK,EAAE6kK,EAAE,EAAEC,EAAEllK,EAAE,KAAMR,EAAEslK,EAAEG,EAAEC,EAAG,OAAOllK,CAAC,CAClZ,SAAS8gP,IAAI3gP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAY,IAAVA,EAAE,IAAI5jG,GAAQyjG,EAAEnxI,EAAE,GAAE,EAAGmxI,EAAE,GAAI,GAAoB,IAAjBD,EAAEzhH,EAAG0hH,EAAE,GAAI,EAAC,GAAG,EAAME,EAAE,IAAI5sI,EAAIysI,EAAE,GAAE,CAAE,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,GAAG,EAAK/qG,EAAG8qG,EAAE,IAAI70I,GAAK,EAAC4wN,GAAG,CAAE,IAAI7mL,GAAIoiC,GAAG,EAAGunC,GAAK,IAAEi1G,IAAI5zE,EAAEF,EAAE,GAAMp7G,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAEuvF,GAAIt8M,EAAE+kK,CAAC,GAAI,IAAInlK,EAAEC,EAAE,GAAI,EAACD,EAAE,GAAE,GAAsB,IAAjB+kK,EAAEzhH,EAAGtjD,EAAE,GAAI,EAAC,GAAG,EAAMklK,EAAE,IAAI5sI,EAAIysI,EAAE,GAAI,CAAA,EAAEG,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,GAAG,EAAK/qG,EAAG8qG,EAAE,IAAI70I,GAAG,EAAG4wN,GAAK,CAAA,IAAI7mL,GAAIoiC,GAAG,EAAGsnC,GAAK,IAAEk1G,IAAI5zE,EAAEF,EAAE,GAAKp7G,EAAEjqD,EAAEH,EAAE0tH,CAAC,EAAEuvF,GAAIt8M,EAAE+kK,CAAC,EAAI,CACnZ,SAAS87E,IAAI7gP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,IAAI73C,EAAE,IAAI5wD,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAG+sH,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAmB,IAAhB1tH,EAAE6jD,EAAGmvG,GAAItlC,CAAC,EAAE,EAAE,EAAMvtH,EAAE,IAAIqxG,GAAGphC,GAAGgsI,GAAIp8M,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIiE,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAK,CAAC42N,GAAI3sK,CAAC,GAAG,CAAC2sK,GAAI3sK,CAAC,GAAG,CAAC++D,GAAI/+D,CAAC,IAAG7pD,EAAEsjD,EAAG4W,GAAGm7C,GAAIp1G,EAAE,EAAER,CAAC,CAAC,EAAE,EAAE,EAAEulK,EAAE1hH,EAAGgwD,GAAIrzG,EAAE81M,GAAIzyJ,EAAGwpG,GAAK,CAACjjG,EAAE,IAAIA,EAAE,EAAE,IAAIm4B,GAAI4gC,GAAG/4D,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAO7pD,GAAKglK,IAAGD,EAAE,IAAI36C,GAAIpqH,EAAEglK,CAAC,EAAE9hF,EAAI6hF,GAAG0e,GAAG,EAAG46D,IAAKx0L,CAAC,EAAEq1F,GAAI6lB,EAAEl7G,CAAC,EAAEo8C,GAAIjmG,EAAE,EAAE+kK,CAAC,EAAE9+D,GAAI++D,EAAE,EAAED,CAAC,EAAE9+D,GAAIpyE,EAAE,EAAEkxI,CAAC,GAAK,CACpZ,SAASuxE,IAAIl2O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,IAAIhlK,EAAEsjD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAG7zB,EAAE,GAAE,GAAK+kK,EAAEzhH,EAAGtjD,EAAE,GAAE,EAAG,GAAG,EAAEJ,EAAEmlK,EAAE,EAAE99D,IAAI89D,EAAE,CAAC,EAAE,EAAKnlK,EAAE,EAAMmlK,EAAE,GAAGC,EAAED,EAAE,EAAE,GAAI,EAAC,EAAKnlK,EAAEolK,IAAM5kK,EAAE,GAAG2kK,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG53C,GAAGvtH,EAAEolK,GAAG,EAAED,EAAE,EAAE,EAAE53C,EAAE43C,EAAE,EAAE,EAAE53C,IAAOltH,EAAEqjD,EAAGo4B,GAAIqpF,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAI,EAAC,EAAEl7G,GAAG5pD,EAAE+kK,GAAG,EAAED,EAAE,EAAE,EAAE5hK,EAAK,KAAK,IAAI,EAAE0mD,CAAC,EAAEk7G,EAAE,EAAE,EAAEnlK,EAAEiqD,EAAEm7G,KAASD,EAAE,EAAE,EAAE3kK,EAAE,EAAER,EAAW8zG,GAAItzG,EAAE,CAAC,IAAGX,EAAE0nK,GAAIpC,EAAE,CAAC,EAAEtlK,EAAE,EAAE,IAAIslK,EAAE,EAAE,EAAE,CAACtlK,EAAE,GAAGA,EAAE,EAAEA,EAAE,EAAEslK,EAAE,EAAE,GAAE,EAAG,IAAIA,EAAE,EAAE,EAAEtlK,EAAE,EAAEA,EAAE,EAAEslK,EAAE,EAAE,KAAK,GAAI,CACrZ,SAASzpD,IAAGl7G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE,OAAO6tJ,GAAG1tJ,CAAC,GAAG,IAAK,GAAE,OAAOo6D,GAAG3mC,CAAC,EAAE,IAAK,GAAE,OAAOymC,GAAGzmC,CAAC,EAAE,IAAK,GAAE,OAAOumC,GAAGvmC,CAAC,EAAE,IAAK,GAAE,OAAO,MAAM,QAAQA,CAAC,IAAI5zB,EAAE6tJ,GAAGj6H,CAAC,EAAE,EAAE5zB,GAAG,IAAIA,GAAG,KAAK,IAAK,IAAG,OAAO4zB,GAAG,MAAM,OAAOA,IAAIwjF,GAAI,IAAK,IAAG,OAAOxjF,GAAG,OAAO,OAAOA,IAAIujF,IAAK,OAAOvjF,GAAGwjF,IAAK,IAAK,GAAE,OAAOzrC,GAAG/3C,EAAEzzB,EAAE,gBAAgB,EAAE,IAAK,GAAE,OAAO,GAAGyzB,CAAC,GAAKA,EAAE,KAAKhvB,GAAK,IAAK,GAAE,OAAO,GAAGgvB,CAAC,GAAKA,EAAE,KAAKhvB,IAAM+mE,GAAG/3C,EAAEzzB,EAAE,gBAAgB,EAAE,QAAQ,MAAO,EAAK,CAAC,CACtZ,SAASgzN,IAAIhzN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA6P,OAA3PoqD,EAAE1mD,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAI/C,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,CAAC,CAAC,EAAEp0B,EAAE0D,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAI/C,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAEyzB,EAAE,CAAC,CAAC,EAAE5zB,EAAEkD,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAK5zB,EAAEG,EAAE,EAAE,EAAEyzB,EAAE,EAAE,IAAYj0B,EAAEuD,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAKj0B,EAAEQ,EAAE,EAAE,EAAEyzB,EAAE,EAAE,GAAU,EAAK5zB,GAAG,GAAGL,GAAG,EAAU,EAAKK,GAAG,EAAUR,EAAEG,EAAE,EAAKA,GAAG,EAAUiqD,EAAE5pD,EAAE,EAASkD,EAAK,KAAK,IAAI0mD,EAAE5pD,EAAER,EAAEG,CAAC,EAAE,CAAC,CACvZ,SAASshP,IAAI9gP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAoB,OAAlBnlK,EAAEs8J,GAAI97J,CAAC,EAAE2kK,EAAE7I,GAAIroI,CAAC,EAAKj0B,GAAGmlK,EAAM3kK,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,IAAIyzB,EAAE,EAAE,GAAWzzB,EAAE,EAAEyzB,EAAE,EAAE,GAAGzzB,EAAE,EAAEyzB,EAAE,EAAE,EAAE,GAAEg2B,EAAEzpD,EAAE,EAAEyzB,EAAE,EAAE5zB,GAAGG,EAAE,EAAE,EAAEA,EAAE,EAAE+C,EAAK,KAAK,OAAO/C,EAAE,EAAE,GAAG+gP,GAAG,EAAE,IAAIttN,EAAE,EAAE,EAAEA,EAAE,EAAE1wB,EAAK,KAAK,OAAO0wB,EAAE,EAAE,GAAGstN,GAAG,EAAE,GAAMlhP,EAAE4pD,EAAE,EAAUjqD,EAAUK,EAAE4pD,EAAE,EAAU,CAACjqD,GAAOH,GAAG,CAACW,EAAE,IAAIA,EAAE,EAAE+7J,GAAI/7J,EAAE,CAAC,GAAGA,EAAE,GAAG+sH,GAAG,CAACt5F,EAAE,IAAIA,EAAE,EAAEsoI,GAAItoI,EAAE,CAAC,GAAGA,EAAE,GAAGg2B,EAAE,EAAGpqD,EAAE2zJ,GAAI3zJ,EAAE2hP,IAAI,CAACv3L,CAAC,CAAC,EAAGA,EAAE,IAAIsjE,EAAEimC,GAAIjmC,EAAEi0H,IAAIv3L,CAAC,CAAC,GAAU2pI,IAAI/zL,EAAE0tH,CAAC,IAAevtH,EAAEmlK,EAAE,GAAG,CAAC,CACxZ,SAAS43D,IAAIv8N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAc,IAAZP,EAAE,EAAEslK,EAAE,EAAE/kK,EAAE,EAAMJ,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAKi0B,GAAGg2B,IAAYsjE,EAAE/sH,EAAE,EAAEyzB,EAAE,CAAC,EAAEg2B,EAAE,CAAC,EAAEpqD,GAAG0tH,EAAEltH,EAAE0gJ,GAAI9sH,EAAE,EAAEg2B,EAAE,CAAC,EAAE5pD,EAAE,GAAGG,EAAE,IAAI0pF,GAAK,EAACwzC,MAAOynC,GAAG53C,GAAGtjE,EAAE,EAAE,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAEg2B,EAAE,CAAC,GAAGh2B,EAAE,EAAE,EAAEg2B,EAAE,EAAE,GAAG5pD,IAAIA,EAAE,GAAGG,EAAE,IAAI0pF,GAAK,EAACuzC,MAAOr9H,GAAGmtH,GAAGtjE,EAAE,EAAE,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAEg2B,EAAE,CAAC,GAAGh2B,EAAE,EAAE,EAAEg2B,EAAE,EAAE,GAAG5pD,KAAI,OAAOG,EAAE,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO,IAAIo1D,GAAIuvG,EAAEtlK,EAAEo0B,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO,IAAI2hC,GAAI3hC,EAAE,EAAE,EAAE7zB,EAAEP,CAAC,EAAE,QAAQ,OAAO,IAAI+1D,GAAIuvG,EAAEtlK,EAAEO,EAAEP,CAAC,CAAE,CAAC,CACxZ,SAAS4hP,IAAIjhP,EAAEyzB,EAAE,CAACjH,GAAK,EAAC,IAAI3sB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA8C,GAA5CA,EAAE7pE,EAAG0lE,EAAI5oH,EAAE,GAAGstB,GAAG,EAAG6oI,GAAK,EAAC,EAAE,EAAE92J,EAAEW,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAKp0B,GAAG,GAAG,EAAE0tH,IAAIhvB,GAAG,EAAGza,KAAMypC,GAAGxpC,IAAKwpC,GAAGvpC,IAAM,MAAO,GAAE,GAAGupC,IAAIhvB,GAAG,EAAGza,MAAMzjF,EAAEqjD,EAAG0lE,EAAI5oH,EAAE2yO,EAAG,EAAE,EAAE,EAAElpL,EAAEvG,EAAG0lE,EAAIn1F,EAAEk/M,EAAG,EAAE,EAAE,EAAO9yO,GAAK4pD,IAAGjqD,EAAEK,EAAE,EAAE4pD,EAAE,EAAKjqD,GAAG,IAAG,OAAOA,EAAI,OAAOQ,EAAE,EAAE,EAAG,CAAA,IAAK,GAAE,OAAO4+D,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAI5+D,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOmrC,GAAInrC,EAAE,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAO4+D,GAAInrC,EAAE,EAAE,EAAEzzB,EAAE,EAAE,CAAC,EAAE,QAAQ,MAAM0lC,EAAI,IAAIoN,GAAI8/L,GAAG,CAAC,CAAE,CAAC,CACxZ,SAASsO,IAAIlhP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAuL,IAArLltH,GAAG,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAI83G,GAAG9lL,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,EAAE+sH,EAAE,IAAIh4C,GAAIl1E,CAAC,EAAE+oC,EAAImkF,EAAE,IAAI33D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEqlD,GAAI,IAAIulD,GAAI,MAAM,CAAC5qG,EAAE,IAAIA,EAAE,EAAE,IAAIguE,GAAI83G,GAAG9lL,EAAE,CAAC,GAAG,IAAI8sD,GAAI9sD,EAAE,EAAE,EAAE,IAAI,IAAIihC,IAAI8rF,CAAC,CAAC,EAAEnkF,EAAImkF,EAAE,IAAI33D,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEyzB,EAAE,EAAQA,EAAEs5F,EAAE,EAAE,OAAO,GAAGtjE,GAAGoT,GAAIppC,EAAE,EAAEs5F,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEt5F,EAAE,CAAC,EAAE,CAAC,GAAGj0B,GAAGq9D,GAAIppC,EAAEs5F,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEt5F,CAAC,EAAE,CAAC,GAAGp0B,GAAGw9D,GAAIppC,EAAE,EAAEs5F,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEt5F,EAAE,CAAC,EAAE,CAAC,GAAGg2B,EAAE,GAAGjqD,EAAE,GAAGA,EAAE,GAAGH,EAAE,GAAGoqD,EAAE,GAAGjqD,EAAE,GAAGA,EAAE,GAAGH,EAAE,EAAEq3G,GAAIqW,EAAEt5F,CAAC,EAAE,EAAEA,EAAE,OAAOs5F,CAAC,CACxZ,SAASo0H,IAAInhP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA8I,IAA5IC,EAAEkyE,IAAIrsB,IAAIF,IAAIC,IAAI,IAAI9a,GAAIlX,CAAC,EAAE,IAAI+3F,GAAI/3F,EAAE,CAAC,CAAC,EAAEq4D,GAAG,EAAE9rF,EAAE,CAAC,EAAEyzB,EAAE,EAAE,EAAE,QAAQ,GAAGw5H,IAAI/pG,EAAGo4B,GAAI7nD,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE5zB,CAAC,EAAED,EAAE,IAAIqlC,GAAIu0B,GAAIx5D,EAAE,EAAEH,EAAED,CAAC,EAAEmtH,EAAE,IAAInjF,GAAI+6H,EAAE,IAAI/6H,GAAQvqC,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE2pC,GAAI+jF,EAAEvtH,EAAE,CAAC,EAAEwpC,GAAI27H,EAAEnlK,EAAE,CAAC,EAAEiqD,EAAEsjE,EAAE,EAAE,GAAI,EAAC43C,EAAE,EAAE,GAAI,EAAIl7G,EAAE,GAAGsnH,GAAInxK,EAAE,IAAMm8F,GAAK,EAACz6B,GAAG,EAAGyvG,GAAInxK,EAAE,GAAM2hE,EAAG,GAAU9X,EAAE,IAAGsnH,GAAInxK,EAAE,IAAOm8F,GAAK,EAACz6B,GAAG,EAAGyvG,GAAInxK,EAAE,GAAK2hE,EAAG,GAAE8C,GAAI5wC,EAAE,EAAE,IAAI28B,IAAIpwD,EAAEH,CAAC,CAAC,EAAE25D,GAAIx5D,EAAE,EAAEyzB,EAAE5zB,CAAC,CAAC,CACzZ,SAASuhP,KAAK,CAACA,IAAI18O,EAAI,IAAI1E,EAAkT,IAAhTqhP,IAAInoI,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEmtH,GAAIr9K,EAAG4gD,GAAGsP,GAAI,GAAG,GAAG,GAAG,CAAC,EAAEotH,IAAIroI,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAEqtH,IAAIv9K,EAAGq9G,GAAGgF,GAAI,GAAG,GAAG,GAAG,CAAC,EAAMtmL,EAAE,EAAEA,GAAG,GAAGA,IAAKshP,GAAIthP,CAAC,EAAEw/D,GAAGz8D,EAAK,KAAK,IAAI/C,EAAEqhP,IAAIrhP,CAAC,CAAC,CAAC,EAAEwhP,IAAIxhP,CAAC,EAAE2zM,GAAI1vH,GAAIq9J,GAAIthP,CAAC,CAAC,CAAE,CAC1Z,SAASyhP,IAAIzhP,EAAE,CAAC,IAAIyzB,EAAE,IAAI,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,EAAG,MAAM0lC,EAAI,IAAImN,GAAI6uM,KAAK,CAAC1hP,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIsvF,GAAGzwK,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,CAAC,EAAE,OAAAyzB,EAAE,IAAIkZ,GAAM6hI,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAGykD,GAAGhxB,EAAEkuN,IAAI3hP,EAAEwuK,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAK,CAAC,EAAIwuK,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAGykD,GAAGhxB,EAAEkuN,IAAI3hP,EAAEwuK,GAAItrH,EAAGwpG,GAAK,CAAC1sJ,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAI,CAAC,EAASyzB,CAAC,CAC1Z,SAASmuN,IAAI5hP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAgG,IAA9Ft5F,EAAE,EAAGj0B,EAAEQ,EAAE,EAAE,IAAIg1F,KAAM+6B,IAAK62D,GAAInzJ,EAAE,CAAC,EAAEozJ,GAAIpzJ,EAAE,CAAC,EAAIj0B,EAAEQ,EAAE,EAAE,IAAIg1F,GAAK,EAACg7B,IAAK42D,GAAInzJ,EAAE,CAAC,EAAEozJ,GAAIpzJ,EAAE,CAAC,EAAGp0B,EAAE,GAAUoqD,EAAE,IAAIonD,GAAGphC,GAAGjwE,EAAE,EAAE,GAAI,EAAC,IAAI8D,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAgD,GAA5C5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEsjE,EAAE95E,GAAIjzC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAK,GAACs5F,GAAG,CAACpmB,GAAI9mG,CAAC,GAAGA,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAe,EAAAozC,GAAIjzC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAGwf,GAAIjzC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAYp0B,EAAE,GAAQ2kD,GAAIhkD,EAAE,EAAEA,EAAE,EAAE,EAAEsjM,IAAIzjM,EAAE4zB,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAAA,EAAE,EAAE,GAAKA,EAAE,EAAE5zB,EAAS4zB,EAAG,OAAAA,EAAE,EAAEp0B,EAAEo0B,EAAE,EAAE,KAAYA,CAAC,CAC3Z,SAASouN,IAAI7hP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAoD,IAAlDz6F,GAAG,EAAGrC,GAAIhoE,EAAE,IAAI0gB,GAAG,EAAEikJ,EAAE,IAAIl5B,GAAIzrI,EAAE,CAAC,EAAE8kK,EAAE,IAAIjgI,EAAIxlC,EAAE,EAAQslK,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAI53C,GAAG76C,GAAIyyF,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEzhH,EAAGyhH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAMG,EAAE,EAAE,QAAQ,GAAGx4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAE1tH,EAAE,GAAGwlK,EAAE,IAAIhM,GAAIiM,CAAC,EAAEF,EAAEt4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAEntH,EAAEkiP,GAAIj9E,EAAEpxI,EAAE,IAAIuY,GAAInsC,EAAE4pD,EAAEjqD,EAAEolK,CAAC,EAAExkF,GAAItjB,GAAI+nG,EAAE,CAAC,EAAEjlK,CAAC,EAAEklK,EAAE,EAAE7gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE9kE,EAAE,EAAEylK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAED,EAAEC,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE/3C,EAAE1tH,EAAEitG,GAAIu4D,CAAC,EAAEx4D,GAAIw4D,CAAC,EAAEv4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,IAAO+3C,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE/3C,EAAE1tH,GAAGitG,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,GAAG,OAAO+3C,CAAC,CAC3Z,SAASi9E,GAAI/hP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAW,GAATn7G,EAAE5pD,EAAE,GAAE,EAAM4pD,GAAG,EAAG,MAAO,GAAW,GAAGzpD,EAAE,GAAI,EAA6E,GAA3EJ,EAAEI,EAAE,GAAE,EAAG+qL,GAAI/qL,EAAEyzB,EAAE5zB,CAAC,EAAEktH,EAAEtjE,GAAG,EAAEzpD,EAAE,GAAG,EAAE,KAAKH,EAAE,GAAE,EAAG,KAAK4zB,EAAE7zB,CAAC,EAAEI,EAAE,GAAG,EAAE,KAAKH,EAAE4zB,EAAE7zB,CAAC,EAAKI,EAAE,GAAE,EAAG,CAA+B,IAA9B2kK,EAAEl7G,EAAE,IAAI,KAAK,IAAI5O,GAAI4O,CAAC,EAAEpqD,EAAEo0B,EAAEg2B,EAAMjqD,EAAEi0B,EAAEj0B,EAAEH,EAAE,EAAEG,EAAGolK,EAAE5kK,EAAE,GAAGR,CAAC,EAAEmlK,EAAE3kK,EAAE,GAAG4kK,EAAED,CAAC,EAAEA,EAAEA,EAAMA,GAAgBA,EAAE,GAAG53C,CAAC,EAAE43C,EAAE,GAAI,GAA3B3kK,EAAE,GAAG+sH,CAAC,CAAsB,MAAM/sH,EAAE,GAAG+sH,CAAC,UAAQg+D,GAAI/qL,EAAEyzB,EAAE5zB,CAAC,EAAKG,EAAE,GAAI,EAAC,CAA+B,IAA9B2kK,EAAEl7G,EAAE,IAAI,KAAK,IAAI5O,GAAI4O,CAAC,EAAEpqD,EAAEo0B,EAAEg2B,EAAMjqD,EAAEi0B,EAAEj0B,EAAEH,EAAE,EAAEG,EAAGmlK,EAAE3kK,EAAE,GAAGA,EAAE,GAAGR,CAAC,EAAEmlK,CAAC,EAAIA,GAAGA,EAAE,IAAI,CAAE,MAAO,EAAK,CAC3Z,SAASq9E,IAAIhiP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,OAAG3kK,EAAE,GAAE,GAAIR,EAAE,KAAKH,EAAEW,EAAE,GAAE,EAAGypD,EAAEzpD,EAAE,GAAG,EAAE2kK,GAAG53C,EAAE/sH,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,EAAEktH,GAAGltH,EAAE4zB,EAAEp0B,CAAC,EAAKW,EAAE,GAAI,GAAE,EAAEA,EAAE,GAAE,GAAM2kK,EAAEzgH,GAAGygH,EAAE9kK,CAAC,EAAEk6D,EAAG4qG,CAAC,IAAI5qG,EAAGl6D,CAAC,KAAM8kK,IAAInlK,EAAEQ,EAAE,GAAG2kK,EAAEnlK,CAAC,GAAGA,EAAEQ,EAAE,GAAGH,EAAEL,CAAC,GAAMA,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAE,GAAzBQ,EAAE,GAAGypD,CAAC,EAAuEk7G,IAAOA,GAAG53C,EAAE/sH,EAAE,GAAGyzB,EAAEzzB,EAAE,GAAGyzB,EAAE5zB,CAAC,CAAC,EAAEktH,GAAM/sH,EAAE,GAAE,GAAI,EAAEA,EAAE,GAAI,GAAI2kK,EAAEzgH,GAAGygH,EAAE9kK,CAAC,EAAEk6D,EAAG4qG,CAAC,IAAI5qG,EAAGl6D,CAAC,KAAIL,EAAE,KAAOmlK,IAAInlK,EAAEQ,EAAE,GAAG2kK,EAAE,IAAI,GAAGnlK,EAAEQ,EAAE,GAAGH,EAAEL,CAAC,EAAIA,GAAGA,EAAE,GAAI,GAAQmlK,EAAE,CAC3Z,SAASs9E,GAAIjiP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAkG,GAAhG7kK,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGyuI,GAAK,EAACG,GAAG,EAAG,GAAG,EAAEu6C,IAAInpL,CAAC,EAAEzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI0wB,EAAE,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,EAAE,OAAO,GAAG,EAAK,CAACwf,GAAImnC,GAAGwuC,EAAIn1F,GAAG3I,GAAG,EAAGypN,KAAK,CAAC,EAAoB,IAAjB1vE,EAAE7kK,EAAE,EAAE,EAAE,EAAE,OAAWJ,EAAE,IAAIs4B,EAAIzE,EAAE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAEglK,EAAED,EAAE,EAAEC,EAAE,EAAEv2D,GAAIruG,EAAE,CAAC,EAAE6kK,EAAED,EAAE,EAAEv2D,GAAIruG,EAAE,CAAC,EAAE6kK,EAAS,IAANhlK,EAAE4zB,EAAE,EAAMp0B,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAgD,GAAvCG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAEvG,EAAG0lE,EAAIppH,EAAEs1O,GAAG,EAAE,EAAE,EAAE,EAAKrrL,EAAE,EAAE,CAAC,IAAIsjE,EAAE,EAAEA,EAAEtjE,EAAEsjE,IAAKnkF,EAAI/oC,EAAE,IAAIw5G,IAAI75G,CAAC,CAAC,EAAE4kM,IAAI5kM,CAAC,CAAC,CAAE,CAC5Z,SAASm4N,GAAI33N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG3kK,EAAE,IAAI2qF,GAAG,EAAG6+D,MAAM3pJ,EAAEy+C,GAAIqlE,GAAIzgE,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAAC29F,GAAG,EAAG,EAAE,EAAE,GAAE,EAAG,IAAI/uL,GAAI,IAAIvoB,GAAG,CAAC,CAAC,EAAE,IAAIu2C,GAAK,EAACC,GAAG,EAAGtzB,GAAG0pE,GAAK,EAACy1C,IAAK9vD,EAAI9iF,EAAEk1J,GAAIr1J,CAAC,EAAKA,IAAIs9F,GAAK,EAACw1C,KAAiL,IAA3KlpF,EAAEvG,EAAG0lE,EAAI5oH,EAAEiuJ,EAAG,EAAE,EAAE,EAAE0W,EAAEzxH,EAAImnC,EAAGuuC,EAAIn/D,GAAGn8B,GAAK,EAAC8nI,GAAG,CAAE,CAAC,EAAEroC,EAAE,EAAKltH,GAAG6yI,GAAK3lB,EAAE/sH,EAAE,EAAE,EAAE+C,EAAK,KAAK,KAAK4hK,EAAE,CAAC,EAAU9kK,GAAG+yI,KAAK5yI,EAAE,EAAE,GAAGkzC,EAAImnC,EAAGuuC,EAAI3K,GAAIj+G,CAAC,EAAEwsL,EAAG,CAAC,CAAC,EAAEz/D,GAAG/sH,EAAE,EAAE,EAAE+C,EAAK,KAAK,KAAK4hK,CAAC,GAAG,GAAMtlK,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEutH,CAAI,CAC5Z,SAASn8F,IAAK,CAACA,GAAIlsB,EAAI4mD,GAAK,EAAC42L,IAAI,IAAIj4N,IAAIivF,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAE33K,EAAI,IAAI,EAAE,CAAC0uC,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAEC,GAAI,IAAI,EAAE,CAAC,IAAI/hM,GAAIgiM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAEnpI,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAE33K,EAAI,IAAI,EAAE,CAAC0uC,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAEC,GAAI,IAAI,EAAE,CAAC,IAAI/hM,GAAIiiM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAEppI,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAE33K,EAAI,IAAI,EAAE,CAAC0uC,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAEC,GAAI,IAAI,EAAE,CAAC,IAAI/hM,GAAIkiM,GAAG,CAAC,CAAC,EAAErpI,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAEC,GAAI,IAAI,EAAE,CAAC,IAAI/hM,GAAIiiM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI1+K,GAAI,IAAI,EAAEs1C,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAE33K,EAAI,IAAI,EAAE,CAAC0uC,EAAG9hE,EAAG+qM,GAAG,CAAC,EAAEC,GAAI,IAAI,EAAE,CAAC,IAAI/hM,GAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIujB,GAAI,GAAG,EAAE,IAAIA,GAAI,GAAG,EAAE,IAAIA,GAAI,GAAG,EAAE,IAAIA,GAAI,GAAG,EAAE,IAAIA,GAAI4+K,GAAG,CAAC,CAC5Z,SAAStuD,GAAIl0L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE,OAAKG,EAAE,GAAGA,EAAE,EAAE,GAAE,IAAIH,EAAEqjD,EAAGljD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAEkjD,EAAG81B,GAAIh5E,EAAEH,CAAC,EAAE,GAAG,EAAKG,EAAE,GAAGH,IAAIG,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEH,EAAEG,EAAE,CAAC,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAG,EAAGA,EAAE,IAAI,IAAI,KAAKA,EAAE,GAAG,GAAE,GAAIuuJ,GAAI,IAAIl6C,GAAIr0G,EAAE,GAAG,EAAE,GAAGH,EAAEG,EAAE,EAAE2gL,GAAIr6G,GAAIpjB,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAUurE,EAAGvrE,EAAE,GAAG,EAAE,GAAMA,EAAE,IAAI,IAAI,KAAKA,EAAE,GAAG,GAAI,IAAEyzB,EAAEzzB,EAAE,EAAEurE,EAAG93C,EAAE,EAAE,IAAIA,GAAGgpF,GAAG,EAAGmyE,KAAMrjH,EAAG1rE,EAAE,EAAE,IAAIA,GAAG48G,GAAK,EAACmyE,KAAMrgC,GAAI,IAAIl6C,GAAIr0G,EAAE,GAAG,EAAE,GAAGH,EAAE4zB,EAAEktJ,GAAIx6G,GAAIjjB,EAAGljD,EAAE,GAAG,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,KAAYA,EAAE,CAAC,CAC7Z,SAASyiP,IAAIziP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAmC,IAAjCl5C,GAAIn4F,EAAE,wBAAwB,CAAC,EAAMj0B,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAMmlK,EAAE,IAAIzsI,EAAIuxB,EAAE,CAAC,EAAEk7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK1xH,GAAImnC,GAAGwuC,EAAImE,GAAGz/F,GAAG,EAAGo1N,GAAK,CAAA,CAAC,GAAG31H,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAiB,IAAhB+3C,EAAE,EAAED,EAAE,EAAEhlK,EAAE,EAAER,EAAE,EAAMulK,EAAE,IAAI1sI,EAAI60F,EAAE,CAAC,EAAE63C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,OAAhBhlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAShlK,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,EAAEklK,EAAE,MAAM,IAAK,GAAE,EAAED,EAAE,MAAM,IAAK,GAAE,EAAEhlK,EAAE,MAAM,IAAK,GAAE,EAAER,CAAE,CAAEylK,GAAG,GAAGjlK,GAAG,GAAG8iP,IAAI3iP,EAAE+sH,EAAE1tH,GAAGwlK,CAAC,CAAC,CAAGh5C,GAAIp4F,CAAC,CAAC,CAC9Z,SAASmvN,IAAI5iP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA4C,IAA1Cj5C,GAAIn4F,EAAE,iCAAiC,CAAC,EAAMs5F,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA2C,IAA1C1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE83C,EAAE,GAAGhlK,EAAE,IAAIglC,EAAI+/H,EAAEt7B,GAAIjqI,EAAE,CAAC,EAAMG,EAAE,EAAEA,EAAEolK,EAAE,OAAOplK,IAAKiqD,EAAEvG,EAAG0lE,EAAIg8C,EAAEplK,CAAC,GAAG0qH,EAAK,EAACs5D,GAAG,EAAG,GAAG,EAAK3e,GAAG,GAAIp7G,IAAI+mC,GAAK,EAACuuC,MAAO8lC,EAAErlK,GAAWiqD,IAAI+mC,GAAK,EAACuuC,MAAM/G,GAAI4sC,EAAEplK,CAAC,EAAE,IAAI,EAAE+qM,GAAI3lC,EAAEplK,CAAC,EAAEqlK,IAAIxlK,CAAC,GAAGoqD,IAAI+mC,GAAG,EAAGwuC,KAAMp2F,EAAI/oC,EAAE+kK,EAAEplK,CAAC,CAAC,EAAE,IAAII,EAAE,IAAIs4B,EAAIr4B,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEo4H,GAAI2sC,EAAE,IAAI,EAAE3sC,GAAI2sC,EAAEtlK,CAAC,CAAE,CAACwsH,GAAIp4F,CAAC,CAAC,CAC9Z,SAASovN,IAAI7iP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAyD,IAAvDl5C,GAAI/rH,EAAE,oBAAoB,CAAC,EAAE26N,IAAIx6N,EAAEyzB,CAAC,EAAE7zB,EAAE,IAAI6rI,GAAIh4G,EAAE,EAAE,CAAC,EAAQ7zB,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAuD,GAArD+kK,GAAGzyF,GAAItyE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGilK,EAAEF,EAAE,EAAKE,EAAE,EAAE,QAAQ,EAAwC,IAA5Bp7G,EAAE,KAAKjqD,EAAE,KAAKH,EAAE,KAAK0tH,EAAE,KAAS63C,EAAE,EAAEA,EAAEC,EAAE,EAAE,OAAOD,IAAKn7G,GAAGoT,GAAI+nG,EAAEC,EAAE,EAAE,MAAM,EAAE3hH,EAAG2hH,EAAE,EAAED,CAAC,EAAE,EAAE,GAAGplK,EAAEiqD,EAAE,EAAKjqD,IAAImrF,GAAG,EAAG2+D,KAAMv8B,GAAGu8B,KAAKwb,EAAEg+E,IAAIr5L,EAAEpqD,CAAC,EAAKylK,EAAE,IAAGgqE,IAAIrlL,EAAEpqD,EAAEylK,EAAE,EAAEA,EAAE,CAAC,EAAEjoG,GAAI+nG,EAAEC,EAAE,EAAE,MAAM,EAAEhmH,GAAIgmH,EAAE,EAAED,EAAE,CAAC,EAAE,EAAEA,EAAEn7G,EAAEpqD,EAAEG,EAAEutH,IAAG1tH,EAAEoqD,EAAEsjE,EAAEvtH,EAAGqsH,GAAIhsH,CAAC,CAAC,CAC/Z,SAASkjP,IAAI/iP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEiqD,EAAE6kD,GAAItuG,EAAE,EAAE,CAAC,GAAG,EAAE,CAACizC,GAAImnC,GAAGwuC,EAAIn1F,EAAE,GAAGy2F,EAAG,EAAG4/G,GAAK,CAAA,CAAC,GAAG,CAAC72L,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEs2M,EAAG,CAAC,CAAC,GAAGhwK,EAAG6uD,EAAIn1F,EAAE,GAAGnG,GAAK,EAAC+qN,GAAG,CAAE,IAAIt+K,GAAIy4B,GAAG,EAAGqtC,GAAK,EAACpsG,EAAE,EAAE,GAAGA,EAAE,EAAEg2B,CAAC,EAAGA,EAAExW,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEq2M,EAAG,CAAC,CAAC,EAAG7sD,GAAIj9K,EAAEyzB,EAAEg2B,EAAE,EAAI,EAAExW,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEs2M,EAAG,CAAC,CAAC,GAAGjnJ,EAAIrvD,EAAE,EAAEs2M,IAAK35J,GAAK,EAAC,GAAK,EAAMn9B,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEq2M,EAAG,CAAC,CAAC,IAAGhnJ,EAAIrvD,EAAE,EAAEq2M,IAAK15J,GAAK,EAAC,GAAK,EAAG0S,EAAIrvD,EAAE,EAAEs2M,GAAI,EAAI,GAAElqO,EAAEu4O,IAAIp4O,EAAEyzB,CAAC,EAAE,EAAE,CAAQ,GAAPwvI,GAAIjjK,CAAC,EAAKH,GAAG,EAAG,MAAO,GAAE4pD,EAAE,CAACA,EAAEjqD,EAAEK,EAAEo9K,GAAIj9K,EAAEyzB,EAAEg2B,EAAE,EAAK,EAAE5pD,EAAEu4O,IAAIp4O,EAAEyzB,CAAC,CAAC,OAAOj0B,EAAEK,GAAG,OAAOL,CAAC,CAC/Z,SAASwjP,IAAIhjP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEiqD,EAAE6kD,GAAItuG,EAAE,EAAE,CAAC,GAAG,EAAE,CAACizC,GAAImnC,GAAGwuC,EAAIn1F,EAAE,GAAGy2F,EAAG,EAAG4/G,GAAK,CAAA,CAAC,GAAG,CAAC72L,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEs2M,EAAG,CAAC,CAAC,GAAGhwK,EAAG6uD,EAAIn1F,EAAE,GAAGnG,GAAK,EAAC+qN,GAAG,CAAE,IAAIt+K,GAAIy4B,GAAG,EAAGqtC,GAAK,EAACpsG,EAAE,EAAE,GAAGA,EAAE,EAAEg2B,CAAC,EAAGA,EAAExW,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEq2M,EAAG,CAAC,CAAC,EAAG7sD,GAAIj9K,EAAEyzB,EAAEg2B,EAAE,EAAI,EAAExW,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEs2M,EAAG,CAAC,CAAC,GAAGjnJ,EAAIrvD,EAAE,EAAEs2M,IAAK35J,GAAK,EAAC,GAAK,EAAMn9B,GAAImnC,GAAGwuC,EAAIn1F,EAAE,EAAEq2M,EAAG,CAAC,CAAC,IAAGhnJ,EAAIrvD,EAAE,EAAEq2M,IAAK15J,GAAK,EAAC,GAAK,EAAG0S,EAAIrvD,EAAE,EAAEs2M,GAAI,EAAI,GAAElqO,EAAEsrN,GAAInrN,EAAEyzB,CAAC,EAAE,EAAE,CAAQ,GAAPwvI,GAAIjjK,CAAC,EAAKH,GAAG,EAAG,MAAO,GAAE4pD,EAAE,CAACA,EAAEjqD,EAAEK,EAAEo9K,GAAIj9K,EAAEyzB,EAAEg2B,EAAE,EAAK,EAAE5pD,EAAEsrN,GAAInrN,EAAEyzB,CAAC,CAAC,OAAOj0B,EAAEK,GAAG,OAAOL,CAAC,CAC/Z,SAASqsL,IAAI7rL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAE,GAAG8zB,GAAG5zB,EAAG,MAAO,GAAyC,GAA/B4zB,EAAEujM,GAAIh3N,EAAEyzB,CAAC,EAAE5zB,EAAEm3N,GAAIh3N,EAAEH,CAAC,EAAE4pD,EAAE22I,GAAI3sK,CAAC,EAAKg2B,EAAE,CAAU,GAATo7G,EAAEu7B,GAAIvgM,CAAC,EAAKglK,GAAGp7G,EAAG,OAAIo7G,GAAqBjlK,EAAE6pD,EAAE,GAAE,EAAG9pD,EAAEklK,EAAE,GAAI,EAAQjlK,GAAGD,GAAGC,GAAG,MAA7C,GAAsI,GAA9EmtH,GAAG,CAACt5F,EAAE,IAAIA,EAAE,EAAE,IAAIu6C,GAAIqwC,GAAG5qF,EAAE,CAAC,GAAGA,EAAE,GAAGp0B,EAAE0tH,EAAE,EAAEg4C,GAAG,CAACllK,EAAE,IAAIA,EAAE,EAAE,IAAImuE,GAAIqwC,GAAGx+G,EAAE,CAAC,GAAGA,EAAE,GAAMR,GAAG0lK,EAAE,GAAG,IAAIH,EAAE,EAAEA,EAAEvlK,EAAE,EAAEulK,EAAuC,GAApCplK,EAAE0jD,EAAGwpG,EAAI3/B,EAAE63C,CAAC,EAAE,EAAE,EAAEE,EAAE5hH,EAAGwpG,EAAIqY,EAAEH,CAAC,EAAE,EAAE,EAAK,CAACinB,IAAI7rL,EAAER,EAAEslK,CAAC,EAAG,MAAO,GAAQ,MAAO,EAAK,KAAM,QAAAH,EAAElxI,EAAE,EAAEh0B,EAAEI,EAAE,EAAS8kK,GAAGllK,CAAG,CAC/Z,SAAS2iJ,IAAIpiJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,GAAG3E,GAAIngK,EAAE,EAAEyzB,CAAC,EAAE,CAAsD,IAArDqxI,EAAE2C,GAAIznK,EAAE,EAAE,GAAI,EAACyzB,CAAC,EAAEp0B,EAAE6jD,EAAGljD,EAAE,EAAE,GAAG,EAAE6kK,EAAE,KAAKjlK,EAAE,GAAG+kK,EAAE,GAAGnlK,EAAE,EAAMolK,EAAE,EAAEA,EAAE5kK,EAAE,EAAE,EAAE4kK,EAAG73C,EAAE1tH,EAAEulK,CAAC,EAAKE,EAAE,GAAG/3C,EAAE,GAAE,CAAE,IAAGvtH,GAAGK,IAAID,EAAEglK,GAAMplK,GAAGiqD,IAAGk7G,EAAEC,EAAEC,EAAE93C,EAAE,GAAI,GAAC,EAAEvtH,GAAG,GAAGI,GAAG,GAAI,MAAM8lC,EAAI,IAAIwM,GAAIuvK,GAAI5hN,EAAEohF,GAAIzhF,CAAC,CAAC,EAAE,GAAGmlK,GAAG,GAAI,MAAMj/H,EAAI,IAAIwM,GAAIwvK,GAAIj4J,EAAEw3B,GAAIzhF,CAAC,CAAC,EAAE,OAAAykL,GAAIjkL,EAAEJ,EAAE+kK,CAAC,EAAE1iG,GAAIjiE,EAAE,CAAC,GAAGqpC,GAAIrpC,EAAE8sH,GAAI9sH,EAAE,EAAEyzB,EAAE85G,EAAI9jF,CAAC,EAAEo7G,EAAEhlK,EAAE,EAAI,CAAC,EAASglK,CAAC,KAAM,OAAMn/H,EAAI,IAAImN,GAAI,iDAAiD,CAAC,CAAE,CAC/Z,SAASyrM,IAAIt+O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA2F,OAAzFA,EAAE,IAAIw4C,GAAI3kB,EAAE,CAAC,EAAE7zB,EAAE,GAAG6zB,EAAE,EAAE,EAAE,EAAE7zB,EAAE,GAAG6zB,EAAE,EAAE,EAAE,EAAEkxI,EAAEzxH,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAK,EAACmqL,GAAK,CAAA,CAAC,EAAEp4M,EAAEW,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAER,EAAEQ,EAAE,EAASkjD,EAAG0lE,EAAIn1F,GAAGy2F,IAAM6iD,GAAK,EAAC,EAAE,EAAE,EAAC,CAAE,IAAK,GAAEntK,EAAE,GAAGmtH,EAAE,EAAEvtH,EAAE,EAAEK,EAAE,EAAED,EAAE,EAAE,CAAC6pD,EAAEk7G,EAAElxI,EAAE,EAAE,EAAE,EAAEs5F,EAAE,EAAE43C,EAAEnlK,EAAE,GAAG,MAAM,IAAK,GAAEI,EAAE,EAAEP,EAAE,EAAE0tH,EAAE,EAAEA,EAAE,EAAE43C,EAAE/kK,EAAE,GAAGmtH,EAAE,EAAEvtH,EAAE,EAAEiqD,EAAE,EAAEh2B,EAAE,EAAE,EAAEp0B,EAAE,EAAE0tH,EAAE,EAAE43C,EAAEnlK,EAAE,EAAE,MAAM,IAAK,GAAEI,EAAE,GAAGmtH,EAAE,EAAEvtH,EAAE,EAAEK,EAAE,EAAED,EAAE,EAAEP,EAAE,EAAE0tH,EAAE,EAAEA,EAAE,EAAE43C,EAAElxI,EAAE,EAAE,EAAEp0B,EAAE,EAAE0tH,EAAE,EAAE43C,EAAEnlK,EAAE,EAAE,MAAM,IAAK,GAAEI,EAAE,EAAE,CAACC,EAAE8kK,EAAE/kK,EAAE,GAAGmtH,EAAE,EAAEvtH,EAAE,EAAEiqD,EAAE,EAAEh2B,EAAE,EAAE,EAAE,EAAEs5F,EAAE,EAAE43C,EAAEnlK,EAAE,EAAG,CAAC,OAAOI,CAAC,CACha,SAASqjP,IAAIjjP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAAtjE,EAAE,IAAI2zG,GAAIte,GAAIr1F,EAAEzpD,CAAC,EAAE+5D,EAAG6uD,EAAIn/D,GAAGn8B,GAAG,EAAGo4J,GAAK,CAAA,IAAI3rH,GAAIgiC,GAAK,EAACs+C,GAAG,GAAIv3D,EAAIr5B,EAAEi8H,GAAID,GAAIh8H,CAAC,CAAC,EAAKm/D,EAAIn/D,GAAGu3F,GAAG,EAAGC,GAAK,GAAE,OAAMl0B,EAAE7pE,EAAGy+J,IAAI3hN,CAAC,EAAE,GAAG,EAAE8iF,EAAIr5B,EAAEw3F,GAAI/lF,GAAG6xD,EAAE,GAAGk0B,EAAG,CAAC,CAAC,GAAEn+D,EAAIr5B,GAAGygE,EAAG,EAAG+jC,IAAKjuJ,CAAC,EAAE8iF,EAAIr5B,EAAEg1H,IAAKhrJ,EAAEyvB,EAAGxH,GAAI8pH,EAAE,EAAE,CAAC,EAAE,IAAIxgF,GAAIvxD,EAAEyvB,EAAG27B,GAAIprD,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAG,EAACj0B,EAAE0jP,KAAM78I,GAAIrmG,CAAC,IAAQoqD,GAAG,EAAG,IAAI3X,GAAI4zD,GAAIrmG,CAAC,CAAC,GAAGoqD,GAAK,EAAC,IAAIwpB,GAAKyyB,GAAIrmG,CAAC,EAAO,IAAIyyC,GAAI4zD,GAAIrmG,CAAC,CAAC,EAAnB,KAAqBA,CAAC,GAAGuhE,EAAG,EAAEliE,EAAE6jD,EAAG0lE,EAAIn/D,EAAE05L,GAAG,EAAE,GAAG,EAAEtjP,EAAE4pD,EAAE,EAAE+sE,IAAI32H,EAAER,CAAC,EAAEm3H,IAAI32H,EAAEL,CAAC,EAASiqD,CAAC,CACha,SAASkkL,IAAI3tO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEiqD,EAAEh2B,EAAE,EAAE,EAAEj0B,EAAEK,EAAE,EAAE,EAAK4pD,EAAE,IAAIkhC,GAAG,EAAG2+D,KAAMxmE,EAAI9iF,GAAGkqH,EAAK,EAACkmF,IAAKltJ,EAAG0lE,EAAIn/D,EAAE2mJ,EAAG,EAAE,EAAE,CAAC,EAAEttH,EAAI9iF,EAAEqwM,GAAIntJ,EAAG0lE,EAAIn/D,EAAE4mJ,EAAG,EAAE,EAAE,CAAC,EAAEvtH,EAAI9iF,EAAEojP,GAAIhpK,GAAGwuC,EAAIn/D,EAAE25L,EAAG,CAAC,CAAC,GAAU35L,EAAE,GAAG+/F,IAAK1mE,EAAI9iF,GAAGkqH,EAAG,EAAGkmF,IAAKltJ,EAAG0lE,EAAIn/D,EAAE2mJ,EAAG,EAAE,EAAE,CAAC,EAAEttH,EAAI9iF,EAAEqwM,GAAIntJ,EAAG0lE,EAAIn/D,EAAE4mJ,EAAG,EAAE,EAAE,CAAC,EAAEvtH,EAAI9iF,EAAEojP,IAAKhzK,GAAK,EAAC,GAAI,GAAW5wE,EAAE,GAAGgqJ,IAAK1mE,EAAI9iF,GAAGkqH,EAAG,EAAGkmF,IAAKltJ,EAAG0lE,EAAIppH,EAAE4wM,EAAG,EAAE,EAAE,CAAC,EAAEttH,EAAI9iF,EAAEqwM,GAAIntJ,EAAG0lE,EAAIppH,EAAE6wM,EAAG,EAAE,EAAE,CAAC,EAAEvtH,EAAI9iF,EAAEojP,IAAKhzK,GAAK,EAAC,GAAI,IAAQ0S,EAAI9iF,GAAGkqH,EAAK,EAACkmF,IAAK38K,EAAE,CAAC,EAAEqvD,EAAI9iF,EAAEqwM,GAAIxwM,EAAE,CAAC,EAAE,CACha,SAASy8O,IAAIt8O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAwB,IAAtB3kK,EAAE,EAAE,IAAI2kC,GAAI8kB,EAAE,IAAI7c,GAAQmgF,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE26D,GAAIroL,CAAC,EAAE,EAAE,QAAQ,GAAIs8D,GAAIlS,EAAEpqD,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQ,KAAMA,EAAE,GAAG,GAAGpqD,EAAE6jD,EAAGuG,EAAE,GAAG,EAAE,MAAMyoB,GAAIzoB,EAAE,GAAG,CAAC,EAAEm6C,GAAIn6C,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAKi+H,GAAIroL,CAAC,EAAE,EAAE,QAAQ,IAAYo0B,EAAEyvB,EAAGo4B,GAAIosG,GAAIroL,CAAC,EAAE,CAAC,EAAE,GAAG,EAAEQ,EAAER,EAAE,EAAE,EAAE,EAAE,OAAO,EAAEslK,EAAEwjB,GAAI10J,EAAEp0B,CAAC,EAAIuzE,GAAF/yE,EAAM8kK,EAAE,EAASA,EAAE,EAATlxI,CAAC,EAAai0J,GAAI/iB,CAAC,EAAE,EAAE,QAAQ,GAAIhpG,GAAIlS,EAAEk7G,EAAEl7G,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQjqD,EAAE,IAAIm3D,GAAIt3D,EAAEo0B,CAAC,EAAEs9G,GAAI/wI,EAAE,EAAER,CAAC,EAAEqzE,GAAI7yE,EAAE,EAAE,EAAEX,CAAC,EAAE,CACja,SAASuyK,IAAI5xK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,OAAA6pD,EAAE1mD,EAAK,KAAK,IAAI0wG,GAAIzzG,EAAE,CAAC,EAAE,EAAEyzG,GAAIhgF,EAAE,CAAC,EAAE,CAAC,EAAEkxI,EAAE5hK,EAAK,KAAK,IAAI0wG,GAAIzzG,EAAE,CAAC,EAAE,EAAEyzG,GAAIhgF,EAAE,CAAC,EAAE,CAAC,EAAEj0B,EAAE,EAAEI,EAAE,EAAEC,EAAE,EAAEktH,EAAE,EAAKtjE,EAAEzpD,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAE,IAAGj0B,EAAEuD,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAI/C,EAAE,EAAE,GAAGyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,EAAE5zB,EAAE,EAAEL,EAAEiqD,GAAKk7G,EAAE3kK,EAAE,EAAE,EAAE,EAAEyzB,EAAE,EAAE,EAAE,IAAG7zB,EAAEmD,EAAK,KAAK,IAAIA,EAAK,KAAK,IAAI/C,EAAE,EAAE,GAAGyzB,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEyzB,EAAE,EAAE,CAAC,CAAC,EAAEs5F,EAAE,EAAEntH,EAAE+kK,GAAEtlK,EAAE0D,EAAK,KAAK,IAAIlD,EAAEktH,CAAC,GAAU,EAAE1tH,GAAG0D,EAAK,KAAK,KAAK0mD,EAAEA,EAAEk7G,EAAEA,CAAC,CAAC,CACja,SAAS0+E,IAAIrjP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAoL,IAAlL8jP,GAAItjP,EAAEA,EAAE,EAAEA,EAAE,GAAG41F,KAAM26B,IAAK,GAAKvwH,EAAE,EAAEA,EAAE,CAAC,EAAEsjP,GAAItjP,EAAEA,EAAE,EAAEA,EAAE,EAAEuwH,GAAI,GAAMvwH,EAAE,EAAEA,EAAE,CAAC,EAAEsjP,GAAItjP,EAAEA,EAAE,EAAEA,EAAE,EAAEwwH,GAAI,GAAKxwH,EAAE,EAAEA,EAAE,CAAC,EAAEsjP,GAAItjP,EAAEA,EAAE,EAAEA,EAAE,EAAEwwH,GAAI,GAAMxwH,EAAE,EAAEA,EAAE,CAAC,EAAEujP,IAAIvjP,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEypD,EAAE,IAAIgiF,GAAIzrI,EAAE,EAAE,CAAC,EAAQypD,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAqE,IAAnEh2B,GAAGy+C,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAGjqD,EAAE,IAAIisI,GAAIzrI,EAAE,EAAEypD,EAAE,CAAC,EAAQjqD,EAAE,EAAEA,EAAE,EAAE,MAAMK,GAAGqyE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAGgkP,IAAI/vN,EAAE5zB,CAAC,EAAG4jP,IAAIzjP,EAAE,EAAEkjD,EAAG0lE,EAAI5oH,EAAE,GAAGkqH,EAAK,EAACgvG,GAAG,EAAG,GAAG,CAAC,EAAEwqB,IAAI1jP,EAAE,CAAC,CAAC,CACja,SAAS2jP,GAAI3jP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAE,GAAGh2B,GAAG,MAAe,GAATg2B,EAAE07I,GAAInlM,CAAC,EAAKypD,EAAG,GAAIA,EAAE,EAAE,EAAM,CAAC,GAAGA,GAAG03H,GAAK,OAAOnnH,GAAGvmC,CAAC,EAAO,GAAGg2B,GAAGo7D,GAAI,OAAOt5C,EAAG93C,EAAE,EAAE,EAAO,GAAGg2B,GAAG23H,GAAI,OAAO71G,EAAG93C,EAAE,GAAG,EAAO,GAAGg2B,GAAG+3H,GAAI,OAAOj2G,EAAG93C,EAAE,GAAG,EAAO,GAAGg2B,GAAGomG,GAAI,OAAOtkF,EAAG93C,EAAE,GAAG,EAAO,GAAGg2B,GAAGskG,GAAI,OAAO7zF,GAAGzmC,CAAC,EAAO,GAAGg2B,GAAG83H,GAAK,OAAOh2G,EAAG93C,EAAE,GAAG,EAAO,GAAGg2B,GAAG63H,GAAI,OAAO/1G,EAAG93C,EAAE,GAAG,CAAE,KAAM,QAAOi4B,KAAM7rD,EAAEqjD,EAAGgwD,GAAIvnD,GAAIlC,CAAC,EAAE,EAAE,EAAE,CAAC5pD,GAAGA,EAAE,GAAG4zB,CAAC,UAAW83C,EAAG93C,EAAE,EAAE,EAAG,OAAOzzB,EAAE,GAAGkjD,EAAGzvB,EAAE,EAAE,CAAC,EAAG,MAAO,EAAK,CACja,SAASmwN,IAAK,CAACA,GAAIl/O,EAAI,IAAI1E,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAuD,IAArDghD,GAAIqjB,EAAGu9G,GAAGg8C,GAAI,GAAG,IAAI,GAAG,CAAC,EAAEqmB,GAAI5/K,EAAG4rF,GAAGC,GAAI,GAAG,GAAG,GAAG,CAAC,EAAMr8H,EAAE,EAAEA,EAAE,IAAIA,IAAKmtB,GAAIntB,CAAC,EAAE,GAAG,IAAI5zB,EAAE,GAAGA,GAAG,GAAGA,IAAK+gD,GAAI/gD,CAAC,EAAEA,EAAE,IAAI,IAAI,GAAG,IAAI4pD,EAAE,IAAIA,GAAG,GAAGA,IAAK7I,GAAI6I,CAAC,EAAEA,EAAE,GAAG,IAAI,IAAI,GAAG,IAAIjqD,EAAE,GAAGA,GAAG,GAAGA,IAAKohD,GAAIphD,CAAC,EAAEA,EAAE,GAAG,IAAI,IAAI,GAAyB,IAAtBohD,GAAI,EAAE,EAAE,GAAGA,GAAI,EAAE,EAAE,GAAOvhD,EAAE,EAAEA,GAAG,GAAGA,IAAIwkP,GAAIxkP,CAAC,EAAE,GAAGA,EAAE0lG,GAAI,IAAIgoB,EAAE,GAAGntH,EAAE,EAAEmtH,GAAG,GAAG,EAAEA,EAAEntH,IAAIikP,GAAI92H,CAAC,EAAE,GAAGntH,EAAEmlG,GAAI,IAAI/kG,EAAE,GAAG2kK,EAAE,EAAE3kK,GAAG,GAAG,EAAEA,EAAE2kK,IAAIk/E,GAAI7jP,CAAC,EAAE,GAAG2kK,EAAE5/D,GAAI8+I,GAAI,EAAE,EAAE,GAAGA,GAAI,EAAE,EAAE,EAAE,CACja,SAASC,IAAI9jP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,GAAGO,EAAE,GAAE,EAAI,OAAO,IAAIo7C,GAAY,IAARwpH,EAAE,EAAEE,EAAE,EAAMtlK,EAAEQ,EAAE,KAAKR,EAAE,MAAOiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEH,EAAEoqD,EAAE,EAAEm7G,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEvlK,EAAE,CAAC,EAAEylK,GAAGzlK,EAAE,EAAEA,EAAE,EAAoG,IAAlGulK,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAE7hK,EAAK,KAAK,KAAK+hK,CAAC,EAAE5xH,EAAImnC,EAAGuuC,EAAI1lE,EAAGljD,EAAE,GAAE,EAAG,KAAK,EAAE,GAAGstB,GAAG,EAAGq4J,IAAK,CAAC,CAAC,EAAE5gB,EAAE,EAAEtlK,EAAE,EAAEG,EAAE,EAAEC,EAAE4zB,EAAMkxI,EAAE3kK,EAAE,GAAE,EAAG2kK,EAAE,GAAE,GAAK53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAEE,EAAE93C,EAAE,EAAKg4C,EAAEF,EAAE,EAAED,IAAGG,EAAE,EAAEtlK,GAAGG,EAAE6zB,EAAE7zB,EAAE,GAAEuqJ,GAAIp9B,EAAEg4C,EAAEtlK,CAAC,EAAEI,EAAEkD,EAAK,KAAK,IAAIlD,EAAEklK,EAAEF,EAAE,CAAC,EAAEjlK,EAAEmD,EAAK,KAAK,IAAInD,EAAEilK,EAAE,CAAC,EAAEE,GAAGF,EAAE,EAAEpxI,EAAE,OAAO,IAAI2hC,GAAIv1D,EAAE4zB,EAAEh0B,EAAEG,EAAE6zB,CAAC,CAAC,CACpa,SAAS8vN,IAAIvjP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,IAAI/3C,EAAE,IAAI70F,EAAIzE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAuB,GAAtB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEntH,EAAEP,EAAE,EAAKQ,EAAE,EAAE,GAAGD,CAAC,EAAGglK,GAAGhvE,GAAK,EAAC26B,YAAa9mE,EAAE,EAAE,GAAG7pD,CAAC,EAAGglK,GAAGhvE,GAAG,EAAG46B,QAAU,OAAM9qF,EAAI,IAAImN,GAAI,8CAA8C,CAAC,EAAQ,GAANgyH,EAAExlK,EAAE,EAAKQ,EAAE,EAAE,GAAGglK,CAAC,EAAGC,GAAGlvE,GAAK,EAAC26B,YAAa9mE,EAAE,EAAE,GAAGo7G,CAAC,EAAGC,GAAGlvE,KAAM46B,QAAU,OAAM9qF,EAAI,IAAImN,GAAI,8CAA8C,CAAC,EAAE8xH,EAAE,IAAIymD,IAAI/rN,EAAEulK,EAAEE,CAAC,EAAEtrG,GAAIx5D,EAAE,EAAEX,EAAEslK,CAAC,EAAEnlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEmlK,CAAC,CAAC,CACpa,SAASqwD,GAAIh1N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAAC8kE,GAAI1kE,CAAC,EAAG,MAAM0lC,EAAI,IAAIoN,GAAIwqK,GAAG,CAAC,EAAuB,GAArB7zJ,EAAEib,GAAI1kE,CAAC,EAAEX,EAAEoqD,EAAE,EAAEjqD,EAAEiqD,EAAE,EAAKpqD,GAAG,GAAGG,GAAG,EAAG,OAAOs/F,EAAK,EAAC85C,GAAgB,OAAZ+rB,EAAE3kK,EAAE,EAAEJ,EAAEI,EAAE,EAASyzB,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE,GAAGkxI,EAAE,EAAG,OAAO7lE,EAAG,EAAGmE,GAAS,GAAG0hE,EAAE3kK,EAAE,EAAEX,EAAG,OAAOy/F,EAAG,EAAGsE,GAAI,MAAM,IAAK,GAAE,IAAK,GAAE,GAAGxjG,EAAE,EAAG,OAAOk/F,EAAG,EAAG+5C,GAAS,GAAGj5I,EAAEI,EAAE,EAAER,EAAG,OAAOs/F,EAAG,EAAGmxC,EAAI,CAAC,OAAAljB,GAAG43C,EAAE3kK,EAAE,EAAE,GAAGX,EAAEQ,GAAGD,EAAEI,EAAE,EAAE,GAAGR,EAASutH,EAAEltH,GAAG,GAAGktH,EAAEltH,GAAG,GAAGi/F,EAAK,EAACmE,IAAK8pB,EAAEltH,GAAG,GAAGktH,EAAEltH,GAAG,GAAGi/F,EAAK,EAACsE,IAAKvjG,EAAE,IAAKi/F,EAAG,EAAG+5C,KAAM/5C,EAAK,EAACmxC,GAAI,CACpa,SAASmT,IAAIpjJ,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAA6D,GAA3D1tH,EAAE0rG,GAAI8vB,GAAIpnG,EAAE,CAAC,EAAEgkJ,EAAG,EAAE58C,GAAIpxE,EAAE,CAAC,EAAEguH,EAAG,CAAC,EAAEz3K,EAAE,CAAC,EAAEitG,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,EAAKQ,GAAGL,EAAE,CAAC,IAAIutH,EAAE,EAAEA,EAAEvtH,EAAEutH,IAAK1tH,EAAE0rG,GAAI1rG,EAAE0rG,GAAI8vB,GAAIpnG,EAAEs5F,CAAC,EAAE0qD,EAAG,EAAE58C,GAAIpxE,EAAEsjE,CAAC,EAAE0qD,EAAG,CAAC,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,EAAE,KAAK0tH,EAAEltH,EAAEktH,IAAK1tH,EAAE0rG,GAAI1rG,EAAEw7H,GAAIpnG,EAAEs5F,CAAC,EAAE0qD,EAAG,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,CAAE,KAAK,CAAC,IAAI0tH,EAAE,EAAEA,EAAEltH,EAAEktH,IAAK1tH,EAAE0rG,GAAI1rG,EAAE0rG,GAAI8vB,GAAIpnG,EAAEs5F,CAAC,EAAE0qD,EAAG,EAAE58C,GAAIpxE,EAAEsjE,CAAC,EAAE0qD,EAAG,CAAC,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,EAAE,KAAK0tH,EAAEvtH,EAAEutH,IAAK1tH,EAAE0rG,GAAI1rG,EAAEw7H,GAAIpxE,EAAEsjE,CAAC,EAAE0qD,EAAG,CAAC,EAAEz3K,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAEA,EAAEmyG,GAAInyG,EAAE,EAAE,CAAE,CAACktD,GAAIltD,EAAE,CAAC,GAAG,IAAIW,EAAE+sH,CAAC,EAAE9f,GAAI5tG,CAAC,EAAE,CACra,SAAS0kP,GAAI/jP,EAAE,CAACymE,GAAG,EAAG,IAAIhzC,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,GAAG/sH,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAE,MAAM0lC,EAAI,IAAImN,GAAI,4CAA4C7yC,EAAE,CAAC,CAAC,EAAoL,IAAlLX,EAAEW,EAAE+9N,GAAI1+N,CAAC,EAAE2kP,GAAI3kP,CAAC,EAAEoqD,EAAEpqD,EAAE,EAAE,OAAO,EAAEA,EAAE,EAAE,CAAC,GAAG,IAAIoqD,GAAG,GAAG5pD,EAAER,EAAE,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAEQ,GAAGokP,KAAMx6L,GAAG,GAAGjqD,EAAS,IAAIgnI,GAAI,CAAC,EAAGhnI,EAAE,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAG1qE,EAAE,GAAG,CAAC,EAAEsjE,EAAE,EAAK1tH,EAAE,EAAE,CAAC,EAAE,IAAGG,EAAE,EAAEutH,GAAG,EAAE,EAAEvtH,EAAE,EAAEutH,GAAG,EAAE1tH,EAAE,EAAE,CAAC,EAAE,GAAMo0B,EAAE,EAAEA,EAAEp0B,EAAE,EAAE,OAAO,EAAEo0B,GAAG,EAAGj0B,EAAE,EAAEutH,GAAG,EAAE1tH,EAAE,EAAEo0B,CAAC,EAAE,EAAEj0B,EAAE,EAAEutH,GAAG,EAAE1tH,EAAE,EAAEo0B,EAAE,CAAC,EAAE,EAAE,OAAG5zB,GAAGokP,KAAKzkP,EAAE,EAAEutH,GAAG,EAAEltH,EAAE,EAAEL,EAAE,EAAEutH,CAAC,EAAEk3H,IAAIzkP,EAAE,EAAE,GAAYA,CAAC,CACra,SAAS0kP,GAAIlkP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAW,GAATp7G,EAAE5pD,EAAE,GAAE,EAAM4pD,GAAG,EAAG,MAAO,GAAW,GAAGzpD,EAAE,GAAE,EAA+E,GAA3E4kK,EAAE5kK,EAAE,GAAI,EAACu8M,GAAIv8M,EAAEyzB,EAAE5zB,CAAC,EAAEktH,EAAEtjE,GAAG,EAAEzpD,EAAE,GAAG,EAAE,KAAKH,EAAE,KAAK,GAAI,EAAC4zB,EAAEmxI,CAAC,EAAE5kK,EAAE,GAAG,EAAE,KAAKH,EAAE4zB,EAAEmxI,CAAC,EAAK5kK,EAAE,GAAI,EAAC,CAA+B,IAA9B2kK,EAAEl7G,EAAE,IAAI,KAAK,IAAI5O,GAAI4O,CAAC,EAAEpqD,EAAEo0B,EAAEg2B,EAAMjqD,EAAEi0B,EAAEj0B,EAAEH,EAAE,EAAEG,EAAGqlK,EAAE7kK,EAAE,EAAER,CAAC,EAAEmlK,EAAE3kK,EAAE,GAAG6kK,EAAEF,CAAC,EAAEA,EAAE3kK,EAAE,GAAG6kK,EAAEF,CAAC,EAAMA,GAAgBA,EAAE,GAAG53C,CAAC,EAAE43C,EAAE,MAAvB3kK,EAAE,GAAG+sH,CAAC,CAAsB,MAAM/sH,EAAE,GAAG+sH,CAAC,UAAQwvF,GAAIv8M,EAAEyzB,EAAE5zB,CAAC,EAAKG,EAAE,KAAK,CAA+B,IAA9B2kK,EAAEl7G,EAAE,IAAI,KAAK,IAAI5O,GAAI4O,CAAC,EAAEpqD,EAAEo0B,EAAEg2B,EAAMjqD,EAAEi0B,EAAEj0B,EAAEH,EAAE,EAAEG,EAAGI,EAAEI,EAAE,EAAER,CAAC,EAAEmlK,EAAE3kK,EAAE,GAAGJ,EAAE+kK,CAAC,EAAIA,GAAGA,EAAE,IAAI,CAAE,MAAO,EAAK,CACva,SAASw/E,GAAInkP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAImtH,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,GAAK,CAACtjE,GAAGjqD,EAAE,IAAIg2F,GAAK,EAACo6B,OAAMhwH,EAAEJ,EAAE,EAAKI,EAAE,EAAE,GAAGJ,EAAE,EAAE,IAAGq1B,GAAIj1B,EAAEA,EAAE,EAAEJ,EAAE,CAAC,EAAEA,EAAE,IAAIg2F,GAAG,EAAGo6B,KAAMj7F,IAAI/0B,EAAEA,EAAE,EAAEJ,EAAE,CAAC,EAAEI,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAI+7D,GAAIloC,EAAE7zB,EAAE6zB,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAU,IAAIp0B,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,GAAK,CAACoqD,GAAGjqD,EAAE,IAAIg2F,GAAK,EAACo6B,OAAM+0C,EAAEnlK,EAAE,EAAKmlK,EAAE,EAAE,GAAGnlK,EAAE,EAAE,IAAGs1B,GAAI6vI,EAAEA,EAAE,EAAEnlK,EAAE,CAAC,EAAEA,EAAE,IAAIg2F,GAAK,EAACo6B,KAAMh7F,IAAI+vI,EAAEA,EAAE,EAAEnlK,EAAE,CAAC,EAAEmlK,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAIhpG,GAAI97D,EAAE8kK,EAAE9kK,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAU,CACxa,SAASukP,IAAIpkP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA4E,IAA1Ej5C,GAAI/rH,EAAE,2BAA2B,CAAC,EAAEmlC,GAAIhlC,EAAE,CAAC,EAAEglC,GAAIhlC,EAAE,CAAC,EAAE2kK,EAAE,KAAKtlK,EAAEi6J,GAAI7lI,EAAE,EAAE,CAAC,EAAQ,CAACkxI,GAAGtlK,EAAE,GAAGA,EAAE,EAAE,GAAGulK,EAAE1hH,EAAG0tF,GAAIvxI,CAAC,EAAE,EAAE,EAAE4zC,GAAImnC,GAAGwuC,EAAIg8C,GAAGye,GAAK,EAACynC,GAAK,CAAA,CAAC,IAAInmD,EAAEC,GAAyC,IAAtChlK,EAAE,IAAIgtC,GAAI+uB,GAAI/7D,EAAE+kK,EAAE/kK,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEykP,IAAIrkP,EAAEJ,CAAC,EAAMilK,EAAEvL,GAAI7lI,EAAE,EAAE,CAAC,EAAEoxI,EAAE,GAAGA,EAAE,EAAE,GAAID,EAAE1hH,EAAG0tF,GAAIi0B,CAAC,EAAE,EAAE,EAAE93C,EAAEx3E,GAAGqzE,EAAIg8C,GAAGye,GAAG,EAAGihE,GAAK,CAAA,EAAE9kP,EAAE+7G,GAAIv7G,EAAE,EAAE+sH,CAAC,GAAG,KAAK7pE,EAAGq4D,GAAIv7G,EAAE,EAAE+sH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEjqC,EAAI8hF,EAAE2/E,GAAIh3G,EAAI/tI,CAAC,CAAC,EAAEiqD,EAAE,GAAG8xD,GAAIv7G,EAAE,EAAE+sH,CAAC,GAAG,KAAK7pE,EAAGq4D,GAAIv7G,EAAE,EAAE+sH,CAAC,EAAE,EAAE,EAAE,EAAE,GAAGjqC,EAAI8hF,EAAE4/E,IAAIj3G,EAAI9jF,CAAC,CAAC,EAAEoiE,GAAIhsH,CAAC,CAAC,CACxa,SAAS4kP,IAAIzkP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAa,IAAXolK,EAAE6xC,IAAI52M,EAAEH,CAAC,EAAMD,EAAE,EAAEA,EAAE6zB,EAAE7zB,IAAI,CAAoE,IAAnEy+E,GAAI7+E,EAAEK,CAAC,EAAEJ,EAAE,IAAIolC,EAAIllC,GAAGuyE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAOo7G,EAAEE,EAAEnlK,EAAEilK,EAAE7kK,EAAE,EAAE6kK,IAAKF,EAAEhlK,EAAEA,GAAGuyE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEvG,EAAGuG,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAG7gB,EAAInpC,EAAE,IAAI6sO,IAAI3nE,EAAEhlK,EAAEE,CAAC,CAAC,EAAE,IAAIilK,EAAEC,EAAEnlK,EAAEklK,EAAE9kK,EAAE,EAAE8kK,IAAK5yF,GAAIzoB,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEq7G,EAAEC,EAAEnlK,GAAG0lF,GAAI77B,CAAC,EAAE,IAAIsjE,EAAE,IAAI70F,EAAIz4B,CAAC,EAAEstH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE1uC,GAAI50B,EAAEpqD,CAAC,EAAE,GAAGO,EAAE6zB,EAAE,EAAG,IAAImxI,EAAEG,EAAEnlK,EAAEglK,EAAE5kK,EAAE,EAAE4kK,IAAK1yF,GAAIzoB,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAG,CAAC,CAC1a,SAASi7L,KAAK,CAACj+K,KAAM,IAAIzmE,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,GAAGslP,GAAI,OAAOA,GAA6G,IAAzG3kP,EAAS,IAAIwmI,GAAI,CAAC,EAAGo+G,GAAI5kP,EAAEiqJ,GAAI46F,GAAI,EAAI,CAAC,EAAEC,GAAI9kP,EAAEiqJ,GAAI,IAAI,EAAI,CAAC,EAAE66F,GAAI9kP,EAAEiqJ,GAAI,IAAI,EAAI,CAAC,EAAE5qJ,EAAS,IAAImnI,GAAI,CAAC,EAAO/8E,EAAE,EAAEA,EAAE,GAAGA,IAAKsnI,GAAI1xL,EAAEoqD,EAAEA,CAAC,EAAE,OAAAh2B,EAAS,IAAI+yG,GAAI,CAAC,EAAGo+G,GAAInxN,EAAEw2H,GAAI,IAAI,EAAI,CAAC,EAAE8mC,GAAIt9J,EAAE,KAAK,IAAI,EAAEs9J,GAAIt9J,EAAE,MAAM,KAAK,EAAEj0B,EAAS,IAAIgnE,GAAI,CAAC,EAAGmsH,GAAInzL,EAAEQ,CAAC,EAAE2yL,GAAInzL,EAAEkoN,EAAG,EAAE7nN,EAAS,IAAI2mE,GAAI,CAAC,EAAG3mE,EAAE,GAAGqtG,GAAI7tG,EAAE4qJ,GAAI,IAAI,EAAI,CAAC,CAAC,EAAEpqJ,EAAE,GAAG4zB,CAAC,EAAE5zB,EAAS,IAAIo0E,GAAI,EAAEp0E,CAAC,EAAGA,EAAS,IAAIstG,GAAI3tG,EAAEK,CAAC,EAAG8kP,GAAI9kP,EAAS8kP,EAAG,CAC1a,SAASI,IAAI/kP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAA2B,GAAzB4zB,EAAE8hB,GAAGkzE,GAAIzoH,GAAGgwB,GAAK,EAACg1N,GAAK,CAAA,EAAK,CAAA/7E,IAAIx1I,EAAEzzB,CAAC,GAAa,CAACyiJ,GAAIziJ,EAAEopK,EAAG,KAAK,CAACppK,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,GAAG,GAAGizC,GAAImnC,GAAGquC,GAAIzoH,EAAEkwN,EAAG,CAAC,CAAC,GAAI,GAAGz8L,GAAG,MAAMquL,GAAIruL,CAAC,EAAE,QAAQ,GAAG,GAAG,CAACw1I,IAAIg8E,GAAIjlP,CAAC,EAAG,MAAAH,EAAE27D,GAAIA,GAAI,IAAIgV,GAAI,0CAA0C,EAAEy0K,EAAG,EAAE,yBAAyB,EAAEC,GAAIllP,EAAEH,CAAC,EAAQ6lC,EAAI,IAAIwO,GAAIr0C,EAAE,CAAC,CAAC,MAAQ,OAAAA,EAAE27D,GAAIA,GAAI,IAAIgV,GAAI,oBAAoB,EAAE/8C,CAAC,EAAE,kBAAkB,EAAEyxN,GAAIllP,EAAEH,CAAC,EAAQ6lC,EAAI,IAAIwO,GAAIr0C,EAAE,CAAC,CAAC,CAAG,CAC5a,SAAS2tN,GAAIxtN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAc,GAAZI,EAAEG,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAKA,EAAE,GAAG,EAA2B,IAAxBP,EAAEI,EAAE,EAAE4zB,EAAE,EAAEsxI,EAAEllK,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,EAAMs5F,EAAE/sH,EAAE,EAAEJ,EAAE,EAAEilK,EAAE93C,EAAE,OAAOntH,EAAEilK,EAAE,EAAEjlK,EAAGJ,EAAEutH,EAAEntH,CAAC,EAAE8vG,GAAIlwG,EAAEC,EAAEslK,CAAC,OAAQt7G,EAAE+2I,IAAIxgM,EAAE,EAAK,EAAE0vG,GAAI1vG,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,CAAC,CAAC,EAAEimD,GAAI1vG,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEq7G,EAAEjlK,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,EAAKg2B,EAAE,CAAC,EAAE,IAAGq7G,GAAGr7G,EAAE,CAAC,EAAEzpD,EAAE,EAAEypD,EAAE,CAAC,GAAGzpD,EAAE,GAAEypD,EAAE,CAAC,EAAE,IAAIq7G,GAAGr7G,EAAE,CAAC,EAAEzpD,EAAE,GAAGypD,EAAE,CAAC,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAE,CAAC,EAAEq7G,CAAC,EAAEp1D,GAAI1vG,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAE4zB,EAAE,EAAEg2B,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAEq7G,GAAG,EAAEr7G,EAAE,CAAC,CAAC,EAAE,IAAIpqD,EAAEW,EAAE,EAAE2kK,EAAE,EAAEC,EAAEvlK,EAAE,OAAOslK,EAAEC,EAAE,EAAED,EAAGnlK,EAAEH,EAAEslK,CAAC,EAAEp5F,EAAG/rE,EAAE,GAAG,GAAG0jD,EAAG1jD,EAAE,GAAG,EAAE,GAAE,CAAG,CAC7a,SAAS2lP,IAAInlP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAkB,IAAhBA,EAAE,IAAInqJ,IAAImqJ,EAAE,EAAE,EAAM/3C,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE+3C,EAAE,GAAGzlK,EAAE,EAAE,EAAE,OAAsF,IAA/EoqD,EAAE,EAAEjqD,EAAE,EAAEslK,EAAE,EAAE7gG,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE4kK,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE7gG,EAAG4gD,GAAGsP,GAAI,GAAG2wC,EAAE,EAAE,GAAG,CAAC,EAAMjlK,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkD,IAAzC4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,EAAEg2B,IAAIq7G,EAAE,EAAErxI,EAAE,CAAC,EAAEj0B,IAAIqlK,EAAE,EAAMjlK,EAAE,IAAIs4B,EAAIzE,EAAE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAEC,IAAIE,EAAE,EAAEH,EAAE,CAAC,EAAEE,IAAK,OAAAC,EAAE,EAAE,IAAI/kI,IAAI+kI,CAAC,EAAEA,EAAE,EAAElwF,GAAGkwF,EAAE,CAAC,EAAEg7E,IAAIh7E,EAAE9kK,CAAC,EAAE8kK,EAAE,EAAElwF,GAAGkwF,EAAE,CAAC,EAAEk7E,IAAIl7E,EAAE9kK,CAAC,EAAS8kK,CAAC,CAC7a,SAAS2iB,IAAIznL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA4Q,IAA1QA,EAAE6jD,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEX,CAAC,EAAEW,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,GAAGzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,EAAEQ,EAAE,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,EAAMypD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEjqD,GAAGK,EAAE,EAAEG,EAAE,EAAER,EAAEQ,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAOA,EAAE,IAAIA,EAAE,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,EAAE,QAAQ2mM,GAAI3mM,EAAE,CAAC,CAAC,CAC7a,SAASiiO,IAAIjiO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA2B,GAAzBD,EAAEzqF,GAAGwuC,EAAIn1F,GAAG3I,GAAK,EAACspN,IAAK,CAAA,EAAKvvE,GAAG,OAAO/zI,GAAI+zI,CAAC,EAAEA,GAAG,CAAuD,IAAtDC,EAAE7gG,EAAGk9G,GAAI8O,GAAI,GAAGx8J,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEs5F,EAAEonG,IAAI1gM,CAAC,EAAEj0B,EAAE,IAAIotC,GAAQg4H,EAAE,IAAI1sI,EAAIzE,EAAE,CAAC,EAAEmxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAEzhH,EAAGyhF,EAAIigC,CAAC,EAAE,GAAG,EAAE/kK,EAAE6gO,GAAI1gO,EAAE2kK,EAAE,KAAK,KAAKG,EAAE/3C,CAAC,EAAKltH,IAAGi/I,GAAIj/I,EAAE4zB,CAAC,EAAEkoC,GAAIn8D,EAAEK,EAAEL,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAG,GAAGA,EAAE,EAAE,EAAG,IAAIiqD,EAAE6vG,GAAI95J,EAAE,CAAC,EAAEiqD,EAAE,GAAGA,EAAE,EAAE,GAAyB,IAArB5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,GAAG,EAAEpqD,EAAE,EAAMO,EAAE,IAAIs4B,EAAIr4B,EAAE,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAE+kK,EAAE,EAAEtlK,IAAM,OAAOG,CAAC,CAAC,OAAOqgJ,GAAG3mC,EAAG9hE,EAAGguM,IAAG,CAAC,EAAEtoB,IAAI,IAAI,EAAE,CAACrpM,CAAC,CAAC,CAAC,CAAC,CAC9a,SAASimF,GAAI15G,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAAC3kK,EAAE,EAAE,CAA+B,GAA9B2kK,EAAE,IAAIniJ,GAAIiR,EAAE0yI,GAAIp5C,EAAEt5F,EAAE,EAAE,GAAGzzB,EAAEyzB,CAAC,EAAKs5F,GAAG,KAAK,CAAC,IAAItjE,EAAE,IAAI0S,GAAI4vD,GAAI/rH,CAAC,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,MAAO5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAE+iD,GAAIm4D,EAAEjrD,GAAI75G,CAAC,CAAC,EAAE4zB,EAAE,EAAE,GAAGzzB,CAAC,GAAG,KAAKyzB,EAAE,EAAE,GAAI,GAAE,CAAY,CAAO,IAANj0B,EAAEmlK,EAAE,EAAMtlK,GAAG,CAACW,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGX,EAAE,GAAGA,EAAE,EAAE,GAAI,EAAC,EAAEG,EAAGi2B,IAAIytB,EAAGmvG,GAAIhzJ,CAAC,EAAE,GAAG,EAAEG,CAAC,EAAEgtG,GAAIm4D,GAAG,CAAC3kK,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAGA,EAAE,IAAIo7K,GAAIzW,CAAC,EAAE3kK,EAAE,EAAE,IAAIwyK,IAAIxyK,EAAE2kK,CAAC,EAAE3kK,EAAE,EAAEkjD,EAAGyhH,EAAE,EAAE,GAAG,EAAE3kK,EAAE,GAAG,OAAOA,EAAE,EAAEqzH,IAAKrzH,EAAE,EAAE,KAAKgsH,GAAIhsH,CAAC,EAAE,GAAG,EAAE,CAAC,OAAOA,EAAE,CAAC,CAC9a,SAASytN,GAAIztN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAc,GAAZ8pD,EAAEzpD,EAAE,EAAEH,EAAEG,EAAE,EAAKA,EAAE,GAAG,EAAGyzB,EAAE8sK,IAAIvgM,EAAE,EAAK,EAAE2vG,GAAI3vG,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,CAAC,CAAC,EAAEk8E,GAAI3vG,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEsxI,EAAEt7G,EAAE,EAAE5pD,EAAE,EAAEA,EAAE,EAAEilK,EAAEC,EAAKtxI,EAAE,CAAC,EAAE,IAAGA,EAAE,CAAC,GAAGzzB,EAAE,EAAE8kK,GAAGrxI,EAAE,CAAC,GAAEA,EAAE,CAAC,EAAE,IAAIqxI,GAAGrxI,EAAE,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE,CAAC,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,CAAC,EAAEqxI,CAAC,EAAEn1D,GAAI3vG,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAE5pD,EAAE,EAAE4zB,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAEqxI,GAAG,EAAErxI,EAAE,CAAC,CAAC,MAA+B,KAAxB9zB,EAAE8pD,EAAE,EAAE5pD,EAAE,EAAEJ,EAAEgqD,EAAE,EAAE5pD,EAAE,EAAEA,EAAE,EAAMktH,EAAE/sH,EAAE,EAAEJ,EAAE,EAAEilK,EAAE93C,EAAE,OAAOntH,EAAEilK,EAAE,EAAEjlK,EAAGJ,EAAEutH,EAAEntH,CAAC,EAAE+vG,GAAInwG,EAAEG,EAAEF,CAAC,EAAG,IAAIJ,EAAEW,EAAE,EAAE2kK,EAAE,EAAEC,EAAEvlK,EAAE,OAAOslK,EAAEC,EAAE,EAAED,EAAGnlK,EAAEH,EAAEslK,CAAC,EAAEp5F,EAAG/rE,EAAE,GAAG,GAAG0jD,EAAG1jD,EAAE,GAAG,EAAE,GAAE,CAAG,CAC/a,SAAS6lP,IAAIrlP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAoD,IAAlDA,EAAE5gG,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE4kK,EAAE,IAAIh7H,GAAI6f,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiC,IAAhCG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEwlK,EAAEp7G,GAAG,EAAEm7G,EAAE,EAAE,GAAI,EAAKhlK,EAAE,IAAIs4B,EAAI14B,EAAE,CAAC,EAAEI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBmtH,EAAE7pE,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAMC,EAAE,IAAIgxG,GAAGphC,GAAGo3G,GAAI95D,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAE,GAAGnxI,EAAEmxI,CAAC,EAAG,IAAID,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAM9kK,EAAE,IAAIgxG,GAAGphC,GAAGm3G,GAAI75D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAI4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAE,GAAGnxI,CAAC,GAAG,IAAM,CAAC,OAAOoxI,CAAC,CAC/a,SAAS9vB,GAAI/0I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAwC,GAAtCA,EAAE6nK,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEj0B,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAEwrD,GAAK,EAAItI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,GAAE,IAAIs5F,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAI,CAAA,GAAG6kD,GAAG7kD,EAAEQ,CAAC,EAAG,MAAO,WAAeA,GAAG,KAAK,CAAC,IAAI8kK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAPtlK,EAAEG,EAAEmlK,CAAC,EAAK/kK,EAAE,GAAGP,EAAE,GAAI,CAAA,GAAG6kD,GAAGrkD,EAAER,EAAE,GAAE,CAAE,EAAG,MAAO,GAAM,GAAGoqD,GAAG,IAAIsjE,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAE,CAAE,GAAG06D,EAAGl6D,CAAC,IAAIk6D,EAAGgf,GAAI/4E,EAAEkjD,EAAG7jD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAG,MAAO,GAAO,KAAM,KAAI0tH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAKntH,EAAE,GAAGP,EAAE,GAAI,CAAA,GAAGA,EAAE,GAAI,GAAE,KAAM,MAAO,GAAQ,MAAO,EAAK,CAChb,SAASimP,IAAItlP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkC,GAAhCA,EAAE6C,GAAIznK,EAAE,EAAE,GAAI,EAACyzB,CAAC,EAAEs5F,EAAE7pE,EAAGljD,EAAE,EAAE,GAAG,EAAKmgK,GAAIngK,EAAE,EAAEyzB,CAAC,EAAE,CAAC,GAAGA,EAAE,GAAI,IAAEp0B,EAAE41I,GAAIj1I,EAAEyzB,EAAEg2B,EAAE8hB,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,EAAKv6E,GAAG,GAAGA,GAAGQ,GAAG,MAAM6lC,EAAI,IAAImN,GAAIiwI,EAAG,CAAC,EAAO,IAAJtjL,EAAE,EAAMI,EAAE,EAAEA,EAAEI,EAAE,EAAE,EAAEJ,EAAU,GAAP+kK,EAAE53C,EAAEntH,CAAC,EAAKglK,EAAE,GAAGD,EAAE,GAAE,CAAE,EAAE,CAAC,GAAGnlK,GAAGK,EAAG,OAAOqjD,EAAGi6I,GAAIn9L,EAAEJ,GAAG4rD,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,KAAKyvB,EAAGuG,EAAE,EAAE,EAAEksF,GAAIliH,EAAEg2B,CAAC,EAAC,EAAG,EAAE,EAAE,EAAEjqD,CAAC,CAAE,MAAMkmC,EAAI,IAAIwM,GAAI8uC,GAAInhF,EAAEohF,GAAIzhF,CAAC,CAAC,CAAC,KAAK,CAAC,IAAII,EAAE,EAAEA,EAAEI,EAAE,EAAE,EAAEJ,EAAU,GAAP+kK,EAAE53C,EAAEntH,CAAC,EAAKglK,EAAE,GAAGD,EAAE,IAAI,EAAG,OAAOn5G,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAACkxI,EAAEA,EAAE,KAAM,OAAO,IAAI,CAAC,CACjb,SAASuzC,IAAIl4M,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJA,EAAE9kK,EAAMktH,EAAE,IAAI70F,EAAIzE,EAAE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA+B,GAA9B1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEvtH,EAAE0jD,EAAG7jD,EAAE,EAAE,EAAE,EAAK0zJ,GAAG/yJ,EAAE,EAAE,EAAER,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAGuzJ,GAAGvzJ,EAAE,EAAE,EAAEQ,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG+yJ,GAAG/yJ,EAAE,EAAE,EAAER,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAGuzJ,GAAGvzJ,EAAE,EAAE,EAAEQ,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG+yJ,GAAGvzJ,EAAE,EAAE,EAAEQ,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAGypD,EAAE,EAAE,GAAGspG,GAAGvzJ,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEQ,EAAE,EAAE,CAAC,GAAG,GAAGypD,EAAE,EAAE,GAAGspG,GAAGvzJ,EAAE,EAAE,EAAEQ,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAGypD,EAAE,EAAE,GAAGspG,GAAGvzJ,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEQ,EAAE,EAAE,CAAC,GAAG,GAAGypD,EAAE,EAAE,EAAE,CAACk7G,EAAE,EAAE,KAAK,OAAOA,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE0pD,IAAIruN,EAAER,EAAEiqD,CAAC,CAAC,EAAEk7G,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAEuzC,IAAIl4M,EAAEX,EAAEslK,EAAEl7G,CAAC,CAAC,CAAC,CAAC,OAAOk7G,CAAC,CAClb,SAASiuD,GAAI5yN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGI,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,qEAAqE,CAAC,EAAuG,IAArGrzC,GAAG0yE,GAAIlyE,EAAE,GAAG,CAAC,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,CAAC,GAAGmjE,GAAI1vC,EAAEj0B,EAAE,EAAEA,EAAE,CAAC,EAAEI,EAAE,IAAI40E,IAAK,CAAC/gD,EAAE,IAAIA,EAAE,EAAE,IAAIu6C,GAAI83G,GAAGryJ,EAAE,CAAC,GAAGA,EAAE,EAAG,EAACs5F,EAAEusC,GAAIt5J,EAAE,CAAC,EAAQ+sH,EAAE,EAAE/sH,EAAE,EAAE,GAAG2kK,EAAEzhH,EAAG0tF,GAAI7jB,CAAC,EAAE,CAAC,EAAKntH,EAAE,GAAGA,EAAE,EAAE,GAAE,EAAIC,EAAEqjD,EAAGmvG,GAAIzyJ,CAAC,EAAE,GAAG,GAAOC,GAAGq8C,GAAK,EAACuN,EAAE,IAAIpoC,GAAIooC,GAAG6lI,IAAI1vL,EAAEC,CAAC,GAAE0iE,GAAI1iE,EAAE8kK,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAM/kK,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAIyyJ,GAAIzyJ,CAAC,EAAEm1M,GAAIn1M,CAAC,EAAEP,GAAG6yE,GAAIlyE,EAAE,GAAG,CAAC,EAAEkjD,EAAGljD,EAAE,EAAE,EAAE,EAAE,CAAC,GAAGgjE,GAAIvvC,EAAEp0B,EAAE,EAAEA,EAAE,CAAC,CAAC,CAClb,SAASkmP,IAAIvlP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAM,IAAJhlK,EAAE,EAAML,EAAE,IAAI04B,GAAK2kC,GAAI,EAAE78D,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEiqD,EAAE,EAAE5pD,IAAoE,IAAhE4zB,IAAIqrE,EAAG,EAAG+5C,IAAK7wE,GAAIhoE,EAAE,IAAI+W,GAAG,EAAEixD,GAAIhoE,EAAE,IAAIgX,GAAG,EAAE2tJ,EAAE,EAAEE,EAAE7kK,EAAE,EAAE,OAAO,EAAQ2kK,EAAEE,GAAG93C,GAAGlwD,GAAI8nG,EAAE3kK,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE2kK,CAAC,EAAE,GAAG,GAAGC,GAAG/nG,GAAIgoG,EAAE7kK,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE6kK,CAAC,EAAE,GAAG,GAAGxlK,EAAEo0B,GAAGolH,GAAI9rB,EAAE,EAAEA,EAAE,EAAEntH,EAAE6zB,GAAGolH,GAAI+rB,EAAE,EAAEA,EAAE,EAAExvD,GAAI2X,EAAEt5F,GAAG24D,GAAK,EAAC0jD,IAAKzwI,CAAC,EAAE+1G,GAAIwvD,EAAEnxI,EAAEo8G,GAAIjwI,CAAC,EAAE,EAAE+kK,EAAE,EAAEE,EAAEF,GAAGE,GAAGzvD,IAAKv4C,GAAI8nG,EAAE3kK,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAE2kK,CAAC,EAAE,GAAG,GAAGlxI,GAAG24D,KAAMwjD,IAAK,IAAI,CAAC,CACpb,SAAS41G,IAAIxlP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAwR,OAAtRulK,EAAE9kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE+kK,EAAE/kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEL,EAAE8zB,EAAE,EAAEA,EAAE,EAAE,EAAE22L,EAAE32L,EAAE,EAAEA,EAAE,EAAE,EAAEkxI,EAAE,IAAIvvG,GAAIz1D,EAAEyqN,CAAC,EAAExlD,EAAE1hH,EAAGulE,GAAIh1F,GAAGzD,KAAMiqJ,GAAK,EAAC,CAAC,EAAErV,EAAE,EAAEA,EAAE,EAAEE,EAAEF,EAAE,EAAEA,EAAE,EAAEG,EAAE1lK,GAAGslK,EAAE,EAAEC,EAAE,IAAID,EAAE,EAAEC,EAAE,GAAGn7G,EAAEk7G,EAAE,EAAEtlK,EAAEslK,EAAE,EAAE1kK,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAEN,EAAEM,EAAE,EAAEA,EAAE,EAAE,EAAED,EAAE,IAAIw1D,GAAIn1D,EAAEV,CAAC,EAAEslK,EAAE3hH,EAAGulE,GAAI5oH,EAAEo6K,EAAG,EAAE,CAAC,EAAEpV,EAAE,EAAEA,EAAE,EAAEC,EAAED,EAAE,EAAEA,EAAE,EAAEE,EAAEh4C,GAAGntH,EAAE,EAAEilK,EAAE,IAAIjlK,EAAE,EAAEilK,EAAE,GAAGrlK,EAAEI,EAAE,EAAEmtH,EAAEntH,EAAE,EAAEH,GAAGgqD,EAAEjqD,IAAIutH,EAAE1tH,GAAMulK,EAAE,EAAEnlK,GAAGklK,EAAE,EAAEllK,GAAGA,EAAEmlK,EAAE,GAAGnlK,EAAEklK,EAAE,EAAU,GAAc,EAAAE,EAAE,EAAEplK,GAAGG,EAAE,EAAEH,GAAGA,EAAEolK,EAAE,GAAGplK,EAAEG,EAAE,EAA2B,CACpb,SAASslO,IAAIllO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAuB,GAArBslK,EAAE7hH,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAK,CAACsxI,EAAG,MAAMr/H,EAAI,IAAIsO,GAAI,8BAA8B,CAAC,EAAE,OAAA4wH,EAAE/3B,GAAIk4B,CAAC,EAAE1lK,EAAEohD,IAAK,CAAChtB,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIsvF,GAAGh9I,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAC,EAAGkxI,EAAE,CAACtlK,EAAKslK,IAAGllK,EAAE,IAAI8zB,GAAG1zB,EAAE,IAAIugG,IAAIpgG,EAAE4kK,EAAEnlK,CAAC,EAAEw8D,KAAK,CAACxoC,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIsvF,GAAGh9I,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG5zB,CAAC,EAAEylG,GAAGy/D,EAAE0gF,IAAIhmP,CAAC,GAAED,EAAEijJ,GAAIhvH,GAAGzD,GAAG,EAAG6iM,KAASrzN,IAAGqlK,EAAE3hH,EAAGulE,GAAIh1F,EAAEo/L,EAAG,EAAE,EAAE,EAAE9lG,EAAE,CAAC83C,GAAGnkH,IAAImkH,CAAC,EAAEjlK,EAAE,CAACmtH,EAAKntH,IAAGklK,EAAE,IAAIvxI,GAAGk2B,EAAE,IAAInnB,IAAIwiI,CAAC,EAAE/sB,GAAI8sB,EAAEp7G,CAAC,EAAE67C,GAAGy/D,EAAE,iBAAiBD,CAAC,IAAGz/D,GAAI0/D,EAAE,YAAY/uC,GAAIviG,CAAC,EAAE,CAAC,EAAS,IAAI,CACpb,SAASiyN,GAAI1lP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,KAAK,EAAE7kK,EAAE,KAAK,EAAEyzB,EAAE,KAAK,EAAE5zB,EAAE,KAAK,EAAEggJ,GAAG3mC,EAAG9hE,EAAGuuM,IAAG,CAAC,EAAExhL,GAAI,IAAI,EAAE,CAAC,IAAI3V,GAAIxuD,EAAEyzB,CAAC,EAAE,IAAI+6B,GAAI/6B,EAAE5zB,CAAC,EAAE,IAAI2uD,GAAI3uD,EAAEG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE6/I,GAAG3mC,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACxqE,EAAEyzB,EAAE5zB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG4pD,EAAE42B,GAAI5W,GAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAEjqE,EAAE6gF,GAAI5W,GAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAEpqE,EAAEghF,GAAI5W,GAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAEsjD,EAAEtjE,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAGA,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAGk7G,EAAEnlK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAGA,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAGI,EAAE,GAAG6pD,EAAE,EAAEpqD,EAAE,EAAEoqD,EAAE,EAAEpqD,EAAE,GAAGulK,GAAGplK,EAAE,EAAEutH,EAAEtjE,EAAE,EAAEk7G,GAAG/kK,EAAEilK,GAAGp7G,EAAE,EAAEk7G,EAAEnlK,EAAE,EAAEutH,GAAGntH,EAAE,IAAIw1D,GAAIwvG,EAAEC,CAAC,EAAE,CACvb,SAAS+gF,IAAI5lP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAA4B,GAA1BolK,EAAE,IAAI/yH,GAAGhyC,EAAE,CAAC,EAAEslG,GAAG7xE,EAAEmhK,GAAI7vB,CAAC,EAAKllK,GAAG,EAAGG,EAAE,EAAOgrH,GAAIhrH,EAAE,CAAC,EAAZ,MAAe,EAAE,GAAE,EAAgC,IAA5B6kK,EAAE,IAAItxI,GAAG+xE,GAAG7xE,EAAE,OAAOoxI,CAAC,EAAEF,EAAE,EAAMhlK,EAAE,IAAIk4B,IAAM73B,EAAE,EAAOgrH,GAAIhrH,EAAE,CAAC,EAAZ,MAAe,EAAE,GAAE,CAAE,EAAEL,EAAE,EAAE,MAAOF,EAAE81C,GAAG51C,EAAE,EAAE,GAAE,CAAE,EAAEmlK,EAAE,IAAI9yH,GAAGvyC,CAAC,EAAEs4G,GAAG8sD,EAAEF,CAAC,EAAE3sD,GAAG6sD,EAAEF,EAAEG,CAAC,EAAE,EAAEH,EAA+C,GAAzCl7G,IAAGm7G,EAAE,IAAIvxI,GAAGrzB,EAAE,CAAC,EAAEslG,GAAG7xE,EAAE,gBAAgBmxI,CAAC,GAAK,CAAC55C,GAAIhrH,EAAE,CAAC,EAAE,EAAE,GAAI,EAA2B,IAAzB+sH,EAAE,IAAIx5F,GAAG+xE,GAAG7xE,EAAEs6I,GAAIhhD,CAAC,EAAE43C,EAAE,EAAMtlK,EAAE,IAAIw4B,GAAImzF,GAAIhrH,EAAE,CAAC,EAAE,EAAE,GAAE,CAAE,EAAEX,EAAE,EAAE,GAAE,GAAKG,EAAE0jD,EAAG7jD,EAAE,EAAE,GAAE,EAAG,IAAI,EAAEO,EAAE,IAAIixC,GAAGknE,GAAGgV,EAAE43C,CAAC,EAAE3sD,GAAG+U,EAAE43C,EAAE/kK,CAAC,EAAEgmP,IAAIpmP,EAAEI,EAAEC,EAAE4pD,CAAC,EAAE,EAAEk7G,CAAG,CACvb,SAASqL,GAAIhwK,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsM,IAApMtlK,EAAEW,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAE6pE,GAAI7pE,EAAE,IAAI,EAAE8pE,GAAI9pE,EAAE,IAAI,EAAEyzB,GAAGwf,GAAImnC,GAAGwuC,EAAImE,GAAG7C,EAAG,EAAGs1H,GAAK,CAAA,CAAC,EAAE31K,GAAI7pE,EAAEu/O,GAAIxyH,EAAE,GAAG/6B,GAAK,EAAC0tC,KAAM5gC,EAAK,EAACsE,GAAG,CAAE,EAAEv5B,GAAI7pE,EAAE+sH,CAAC,EAAEt5F,GAAGwf,GAAImnC,GAAGwuC,EAAIvpH,GAAG6qH,EAAG,EAAGu1H,GAAK,CAAA,CAAC,EAAE31K,GAAI9pE,EAAEu/O,GAAIlgP,EAAE,GAAG2yF,GAAK,EAACytC,KAAM3gC,EAAG,EAAGmE,IAAK,EAAEn5B,GAAI9pE,EAAEX,CAAC,EAAMoqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEjqD,EAAE0jD,EAAG0lE,EAAI/oH,GAAGytB,GAAG,EAAGo/L,GAAK,EAAC,GAAG,EAAEltN,IAAI28F,GAAK,EAACunC,IAAK5gD,EAAIjjF,EAAE6sN,GAAIjpF,EAAG,EAAEjkI,GAAGikI,IAAK3gD,EAAIjjF,EAAE6sN,GAAIhpF,EAAG,EAAEihC,EAAE1xH,GAAImnC,GAAGwuC,EAAI5oH,GAAGkqH,EAAG,EAAG09D,GAAK,CAAA,CAAC,EAAE9kG,EAAI9iF,EAAE4nL,IAAKx3G,GAAG,EAAG,CAAAu0F,EAAY,EAAG3kK,EAAE,EAAEi1K,GAAIj1K,EAAE,CAAC,CAAC,CACxb,SAASgyK,IAAIhyK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAM,IAAJ6pD,EAAE,EAAMpqD,EAAE,IAAI88D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAGX,EAAE,GAAGA,EAAE,EAAE,MAAOG,EAAE0jD,EAAGmvG,GAAIhzJ,CAAC,EAAE,EAAE,EAAE0tH,EAAE,IAAI,CAACvtH,EAAE,IAAIA,EAAE,EAAE,IAAI2hF,EAAIuhC,GAAGljH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,GAAG,IAAIutH,EAAE7pE,EAAGwpG,GAAK,CAACltJ,EAAE,IAAIA,EAAE,EAAE,IAAI2hF,EAAIuhC,GAAGljH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAGmlK,EAAE,IAAI7oD,IAAIiR,CAAC,EAAE+xB,GAAI6lB,EAAEnlK,CAAC,EAAEsjF,EAAI6hF,GAAGzC,GAAG,EAAGC,IAAK3iK,CAAC,EAAEmlK,EAAE,EAAEl7G,IAAIk7G,EAAE,EAAE,EAAEnlK,EAAE,EAAEA,EAAE,EAAE,EAAEmlK,EAAE,EAAE,EAAEnlK,EAAE,EAAEA,EAAE,EAAE,EAAEmlK,EAAE,EAAE,EAAE5hK,EAAK,KAAK,IAAIvD,EAAE,EAAE,CAAC,EAAEmlK,EAAE,EAAE,EAAE5hK,EAAK,KAAK,IAAIvD,EAAE,EAAE,CAAC,EAAEopC,EAAInV,EAAE,EAAEkxI,CAAC,EAAElkD,GAAI5gH,EAAE,EAAEL,EAAEmlK,CAAC,EAAE/kK,EAAEsjD,EAAGulE,GAAIjpH,GAAGsrB,KAAM0pN,IAAK,EAAC,EAAE,EAAE50O,IAAIm+F,GAAK,EAAC/7B,MAAOpiE,EAAEmiE,GAAK,CAC1b,SAAS8jL,IAAI7lP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAEvqN,EAAEmyE,GAAI,IAAI9nC,GAAIlqC,EAAE,CAAC,EAAE4kK,EAAE5kK,EAAE,EAAEyzB,EAAE,EAAE,EAAE,CAAC,EAAEh0B,EAAEO,EAAE,EAAEyzB,EAAE,EAAE,EAAE,CAAC,EAAE7zB,EAAE6zB,EAAE,EAAEsxI,EAAEtxI,EAAE,EAAEkxI,EAAE/kK,EAAE,EAAE,EAAEklK,EAAEC,EAAE,EAAE,EAAEH,EAAE,IAAID,GAAG/kK,EAAE,EAAE,GAAGH,EAAE,IAAIqlK,GAAGC,EAAE,EAAE,GAAGF,EAAErlG,GAAGz8D,EAAK,KAAK,IAAI,EAAE4hK,EAAEG,CAAC,CAAC,EAAE/3C,EAAEvtD,GAAGz8D,EAAK,KAAK,IAAI,EAAE+hK,EAAEH,CAAC,CAAC,EAAEhlK,GAAGM,EAAE8C,EAAK,KAAK,IAAI,EAAEmgD,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGyyN,KAAM,EAAE,EAAE,CAAC,EAAE31B,EAAEh1E,GAAI3hH,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAExzB,EAAEmqN,GAAG5qN,EAAEuqL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAItqC,CAAC,EAAEotH,CAAC,EAAEltH,CAAC,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEp0B,EAAE0qL,GAAIlkI,GAAID,GAAID,GAAIG,GAAI,IAAI7b,GAAItqC,CAAC,EAAEklK,CAAC,EAAEhlK,CAAC,EAAEqjD,EAAGgwD,GAAIlzG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEg2B,EAAE,IAAIwJ,IAAIzzD,EAAEH,CAAC,EAAEW,EAAE,EAAEyzB,EAAE,CAAC,EAAEg2B,CAAC,CAC1b,SAASozL,IAAI78O,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA0C,IAAxC73C,EAAE,IAAI+4H,IAAI9lP,EAAEyzB,EAAE5zB,CAAC,EAAED,EAAE,IAAI6rI,GAAIhiF,EAAE,CAAC,EAAEjqD,EAAE,GAAYI,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAE+kK,GAAGzyF,GAAItyE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,GAAM+kK,GAAGlxI,GAAGkxI,GAAG9kK,EAAGylF,GAAI1lF,CAAC,EAAU,CAACJ,GAAG0zC,EAAIk5B,GAAIu4F,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEzxH,EAAIk5B,GAAI2gD,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG76C,GAAItyE,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEy+E,GAAIz+E,EAAEmtH,CAAC,EAAEvtH,EAAE,IAAemlK,EAAE,GAAGA,EAAE,EAAE,GAAE,EAAG,IAAGtlK,GAAG,CAACslK,EAAE,IAAIA,EAAE,EAAE,IAAI9/H,GAAK8/H,EAAE,GAAG,GAAGlxI,CAAC,EAAEmxI,GAAG,CAACD,EAAE,IAAIA,EAAE,EAAE,IAAI9/H,GAAK8/H,EAAE,GAAG,GAAG9kK,CAAC,GAAKR,GAAGulK,MAAI,CAACD,EAAE,IAAIA,EAAE,EAAE,IAAI9/H,GAAK8/H,EAAE,GAAG,GAAG53C,CAAC,EAAE,EAAEA,EAAE,IAAIvtH,IAAIiqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEsjE,EAAO,CAC3b,SAASivG,IAAIh8N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,GAAGqY,GAAI5e,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC6oI,GAAG,EAAG,EAAE,CAAC,EAAG,IAAIt2J,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4zB,EAAE,IAAIqrE,EAAG,EAAG85C,MAAOnvF,EAAEvG,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACysD,GAAG,EAAG,EAAE,EAAEltH,EAAE/iB,GAAIjT,EAAEyvB,EAAG0lE,EAAIn/D,EAAEsjH,EAAG,EAAE,EAAE,CAAC,EAAEt5I,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAO,EAAEiT,GAAIjT,EAAE2vE,EAAG,EAAE18D,GAAIjT,EAAEwvE,EAAG,OAAQ,CAAC,IAAIpjG,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAE4pD,EAAEvG,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACysD,GAAG,EAAG,EAAE,EAAEltH,EAAE/iB,GAAIjT,EAAEyvB,EAAG0lE,EAAIn/D,EAAEsjH,EAAG,EAAE,EAAE,CAAC,EAAEt5I,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAO,EAAEiT,GAAIjT,GAAGqrE,EAAK,EAACsE,GAAG,EAAG18D,GAAIjT,GAAGqrE,EAAG,EAAGmE,GAAK,EAACngB,EAAI9iF,EAAEm2J,IAAKp4D,GAAK,EAACykD,GAAG,CAAE,CAAC,CAC5b,SAASujG,GAAI/lP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAE,OAAOzpD,EAAC,CAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAGypD,EAAE,KAAK,OAAO,aAAazpD,EAAE+kG,EAAG,EAAE,MAAM,IAAK,IAAGt7C,EAAE,MAAM,MAAM,IAAK,IAAGA,EAAE,MAAM,MAAM,IAAK,IAAGA,EAAE,MAAM,MAAM,IAAK,GAAEA,EAAE,MAAM,MAAM,IAAK,IAAGA,EAAE,MAAM,MAAM,QAAWzpD,EAAE,IAAIH,GAAG4zB,EAAEzzB,IAAI,EAAE,IAAIyzB,EAAE,SAAS,EAAE,GAAGg2B,EAAE,MAAM+U,GAAI3+D,EAAEA,EAAE,OAAO,EAAEA,EAAE,MAAM,GAAUG,GAAG45E,IAAK/5E,GAAG4zB,EAAEzzB,IAAI,EAAE,IAAIyzB,EAAE,SAAS,EAAE,GAAGg2B,EAAE,MAAM+U,GAAI3+D,EAAEA,EAAE,OAAO,EAAEA,EAAE,MAAM,GAAO4pD,EAAE,GAAG,OAAO,aAAazpD,EAAE+kG,EAAG,CAAE,CAAC,OAAOt7C,CAAC,CAC5b,SAASggL,GAAIzpO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAc,GAAZ/3C,EAAE/sH,EAAE,EAAEJ,EAAE6zB,EAAE,EAAK7zB,GAAG,EAAG,OAAOI,EAAE,GAAG+sH,GAAG,EAAG,OAAOt5F,EAAE,GAAG,EAAEA,EAAE,IAAI0hF,GAAI,CAAC1hF,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAc,GAAZp0B,EAAEW,EAAE,EAAE2kK,EAAElxI,EAAE,EAAKp0B,EAAEslK,GAAG,EAAG,OAAA9kK,EAAEg7H,GAAI76H,EAAE,EAAE,CAAC,EAAEy3K,EAAG,EAAEhuH,EAAEoxE,GAAIpnG,EAAE,EAAE,CAAC,EAAEgkJ,EAAG,EAAE1qD,EAAE,IAAIltH,EAAE+tJ,GAAI/tJ,CAAC,GAAGD,EAAE,IAAI6pD,EAAEmkG,GAAInkG,CAAC,GAAUyoG,GAAIg0B,GAAIrmL,EAAE4pD,CAAC,CAAC,EAAiC,GAA/BjqD,EAAEH,GAAGslK,EAAEtlK,EAAEslK,EAAE,EAAE,GAAG6S,GAAIx3K,EAAE,EAAEyzB,EAAE,EAAEp0B,CAAC,EAAKG,GAAG,GAAIslK,EAAE,CAACllK,EAAEilK,EAAE93C,GAAGntH,EAAEugJ,GAAI1sH,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAEX,CAAC,EAAE8jJ,GAAI1vH,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAEX,CAAC,UAAOylK,EAAE/3C,EAAKA,GAAGntH,EAAE,CAAC,GAAGJ,GAAG,EAAG,OAAOqkE,GAAK,EAACovF,GAAI4R,EAAE1kB,GAAIngJ,EAAE,EAAEX,EAAEo0B,EAAE,EAAEkxI,CAAC,CAAC,MAAME,EAAE1hB,GAAInjJ,EAAE,EAAEX,EAAEo0B,EAAE,EAAEkxI,CAAC,EAAG,OAAAC,EAAE,IAAIzvD,GAAI2vD,EAAED,EAAE,OAAOA,CAAC,EAAEn8B,GAAIk8B,CAAC,EAASA,CAAC,CAC7b,SAASohF,GAAIhmP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAgC,IAA9B,KAAK,EAAE,IAAIloF,EAAI,KAAK,EAAE,IAAIA,EAAQhlC,EAAEG,EAAE,EAAE,EAAEH,EAAE,EAAEA,IAAKm3E,GAAGh3E,EAAE,EAAEkjD,EAAGghG,GAAGlkJ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAGA,EAAE,EAAE,EAAG,MAAM0lC,EAAI,IAAImN,GAAI,wDAAwD,CAAC,EAA4F,IAArF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAK,KAAK,EAAE,GAAM2rL,IAAI,KAAKx+N,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE+sH,EAAE,IAAIloF,EAAIxlC,EAAE,IAAI64B,EAAI,KAAK,CAAC,EAAMzE,EAAE,EAAEA,EAAE,KAAK,EAAE,EAAEA,IAAKmV,EAAImkF,EAAE1yC,EAAGsqD,EAAItlI,CAAC,CAAC,CAAC,EAAE,IAAIG,EAAE85J,GAAIt5J,EAAE,CAAC,EAAER,EAAE,GAAGA,EAAE,EAAE,GAAIiqD,EAAEvG,EAAG0tF,GAAIpxI,CAAC,EAAE,CAAC,EAAEopC,EAAImkF,EAAE1yC,EAAGsqD,EAAItlI,CAAC,CAAC,CAAC,EAAEupC,EAAI,KAAK,EAAE,IAAI2qF,IAAI9pE,EAAEsjE,CAAC,CAAC,EAAElwD,GAAI,EAAEkwD,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAE,OAAO,EAAE,CAAC,CAAG,CAC7b,SAASggH,IAAI/sO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,IAAIxlK,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMslK,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAmN,IAA1M53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK53C,EAAE,IAAIpiC,GAAG,EAAG6+D,MAAM5pJ,GAAGglK,EAAE1hH,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGm3G,GAAI75D,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIzpH,EAAE,CAAC,CAAC,EAAE,EAAE,EAAEuhK,EAAE3hH,EAAGu7F,GAAG,IAAI5tC,GAAGphC,GAAGo3G,GAAI95D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC2vC,GAAImnC,GAAGwuC,EAAIg8C,GAAG16C,EAAK,EAAC09D,GAAG,CAAE,CAAC,GAAG,CAAC30I,GAAImnC,GAAGwuC,EAAIi8C,EAAE+iB,EAAG,CAAC,CAAC,EAAGn0J,EAAEu9I,IAAIv9I,CAAC,GAAEkkM,GAAI5qG,EAAEntH,CAAC,GAAM6pD,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAI95D,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAE7pD,EAAEqzC,GAAImnC,GAAGwuC,EAAI/oH,GAAGqqH,EAAG,EAAG09D,IAAK,CAAC,EAAE5W,IAAIv9I,CAAC,EAAEA,EAAEm7I,IAAI/uK,EAAED,CAAC,CAAI,CAC9b,SAASojN,IAAIhjN,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE,GAAG9kK,EAAE,GAAG4zB,EAAE,GAAG5zB,EAAE,GAAG4zB,EAAE,GAAGA,EAAE,EAAE,IAAK5zB,EAAE,GAAG4zB,EAAE,EAAE,KAAK5zB,EAAE,EAAE,CAAmC,GAAlCktH,EAAE7pE,EAAGo4B,GAAI7nD,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAKs5F,EAAE,EAAEA,EAAE,EAAEltH,EAAE,EAAEL,GAAGiqD,IAAIpqD,EAAE6jD,EAAGo4B,GAAI7nD,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEp0B,EAAE,EAAEW,EAAE,EAAEH,EAAE,GAAGG,EAAE,GAAGA,EAAE,EAAE,EAAE,QAAQ,GAAI,OAAAunL,GAAI9zJ,EAAE5zB,CAAC,EAAS,GAAU,GAAG4zB,EAAE,EAAE5zB,EAAE,GAAG4pD,IAAIh2B,EAAE,EAAEA,EAAE,EAAE5zB,EAAE,EAAEL,GAAGQ,EAAE,GAAGA,EAAE,EAAE,EAAE,QAAQ,GAAI,OAAA4oC,EAAInV,EAAE,EAAE5zB,CAAC,EAAE8kK,EAAEzhH,EAAGo4B,GAAI7nD,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEmV,EAAInV,EAAE,EAAE,IAAI0hG,GAAI1hG,EAAE,EAAEkxI,EAAE,EAAEA,EAAE,EAAElxI,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE+zJ,GAAItkI,EAAGo4B,GAAI7nD,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE5zB,CAAC,EAAE4nL,IAAIh0J,EAAE5zB,CAAC,EAAS,EAAK,CAAC,MAAO,EAAK,CAC/b,SAASomP,IAAIjmP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAG/sH,EAAE,GAAE,GAAIR,EAAE,KAAKH,EAAEW,EAAE,GAAI,EAACypD,EAAEzpD,EAAE,GAAG,EAAE+sH,EAAEokC,GAAInxJ,EAAEyzB,EAAE5zB,CAAC,EAAEA,EAAE4zB,EAAEp0B,CAAC,EAAKW,EAAE,GAAI,GAAE,EAAEA,EAAE,GAAE,GAAI+sH,GAAG,KAAK7oE,GAAG6oE,EAAEltH,CAAC,EAAEk6D,EAAGgzD,CAAC,IAAIhzD,EAAGl6D,CAAC,IAAIktH,GAAG,OAAOvtH,EAAEQ,EAAE,GAAG+sH,EAAEvtH,CAAC,GAAGA,EAAEQ,EAAE,GAAGH,EAAEL,CAAC,EAAEQ,EAAE,OAAOR,EAAEQ,EAAE,GAAG+sH,EAAEltH,EAAEL,CAAC,GAAOA,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAI,GAA3BQ,EAAE,GAAGypD,CAAC,IAA4BzpD,EAAE,GAAE,IAAKR,EAAEQ,EAAE,GAAG+sH,EAAEltH,EAAEL,CAAC,GAAOA,GAAgBA,EAAE,GAAGiqD,CAAC,EAAEjqD,EAAE,GAAE,GAAzBQ,EAAE,GAAGypD,CAAC,GAA8BsjE,IAAOA,EAAEokC,GAAInxJ,EAAEyzB,EAAE5zB,CAAC,EAAKG,EAAE,GAAE,GAAI,EAAEA,EAAE,GAAI,GAAE+sH,GAAG,KAAK7oE,GAAG6oE,EAAEltH,CAAC,EAAEk6D,EAAGgzD,CAAC,IAAIhzD,EAAGl6D,CAAC,KAAIL,EAAE,KAAKutH,GAAG,OAAOvtH,EAAEQ,EAAE,GAAG+sH,EAAE,IAAI,GAAGvtH,EAAEQ,EAAE,GAAGH,EAAEL,CAAC,EAAIA,GAAGA,EAAE,GAAI,GAAQutH,EAAE,CAC/b,SAASrhD,GAAG1rE,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEnxI,GAAG,GAAMzzB,EAAE,EAAE,SAAU,GAAEyzB,IAAGg2B,EAAE,IAAI1mD,EAAK,KAAK/C,EAAE,EAAE,QAAS,CAAA,EAAEypD,EAAE,QAAQA,EAAE,QAAO,EAAG,CAAC,EAAEk7G,EAAE3kK,EAAE,EAAE,kBAAiB,EAAGypD,EAAE,kBAAmB,EAAIk7G,EAAE,IAAG/kK,EAAE+kK,EAAE,GAAG,EAAEC,EAAED,EAAE,GAAGnlK,EAAEQ,EAAE,EAAE,QAAS,EAACH,EAAEG,EAAE,EAAE,SAAU,EAACH,EAAED,GAAG,IAAI,EAAEJ,EAAEH,EAAE,IAAI0D,EAAK,KAAK/C,EAAE,EAAE,YAAW,EAAGA,EAAE,EAAE,SAAQ,EAAGR,EAAEi0B,EAAE7zB,EAAEI,EAAE,EAAE,WAAY,EAAC4kK,EAAE5kK,EAAE,EAAE,WAAU,EAAGA,EAAE,EAAE,gBAAe,CAAE,EAAEA,EAAE,EAAE,QAAQX,EAAE,QAAO,CAAE,IAAG0tH,EAAE/sH,EAAE,EAAE,QAAS,EAACA,EAAE,EAAE,QAAQ+sH,EAAE,IAAO,EAAE/sH,EAAE,EAAE,SAAU,GAAEyzB,GAAGzzB,EAAE,EAAE,QAAQ+sH,CAAC,CAAC,CACnc,SAASm5H,IAAIlmP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAsC,GAApCnB,GAAIn4F,EAAE,2BAA2B,CAAC,EAAKzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC6rH,GAAIp4F,CAAC,EAAE,MAAM,CAA8G,GAA7Gj0B,EAAE,IAAIo4N,GAAI53N,CAAC,EAAE+sH,GAAGvtH,EAAE,GAAG,OAAOA,EAAE,EAAEukK,GAAIvkK,EAAE,IAAI4Y,EAAG,GAAG86B,EAAI1zC,EAAE,CAAC,EAAEA,EAAE,GAAGK,EAAEktH,GAAGvtH,EAAE,GAAG,OAAOA,EAAE,EAAEukK,GAAIvkK,EAAE,IAAI4Y,EAAG,GAAG86B,EAAI1zC,EAAE,CAAC,GAAMA,EAAE,EAAEK,EAAE,CAACgsH,GAAIp4F,CAAC,EAAE,MAAM,CAAC,OAAOyvB,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGyrN,GAAK,EAAC,GAAG,EAAE,EAAG,CAAA,IAAK,GAAE15O,EAAE,IAAIkZ,GAAI,MAAM,IAAK,GAAElZ,EAAE,IAAIwY,GAAI,MAAM,QAAQxY,EAAE,IAAImZ,EAAI,CAAa,GAAZixC,EAAEpqD,EAAE,GAAGW,EAAER,CAAC,EAAK,CAACH,EAAE,GAAI,EAAE,OAAO6jD,EAAG0lE,EAAI5oH,EAAEk5O,EAAG,EAAE,GAAG,EAAE,EAAC,CAAE,IAAK,GAAEzvL,EAAEglK,IAAIjvN,EAAEiqD,CAAC,EAAE,MAAM,IAAK,GAAEA,EAAE4yJ,IAAI78M,EAAEiqD,CAAC,CAAE,CAAE08L,IAAInmP,EAAER,EAAEiqD,CAAC,EAAEoiE,GAAIp4F,CAAC,CAAC,CACnc,SAAS2yN,IAAIpmP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA0B,GAAxBu7H,IAAI56H,EAAE,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,GAAI,EAAIkzC,EAAImnC,EAAGuuC,EAAIn1F,EAAE,GAAGnG,GAAG,EAAGgrN,GAAG,CAAE,CAAC,GAAG,GAAGplM,EAAImnC,EAAGuuC,EAAIn1F,EAAE,EAAE6kN,EAAG,CAAC,CAAC,GAAG,EAAuG,IAApGz4O,EAAE8xM,GAAI53I,EAAG6uD,EAAIn1F,EAAE,EAAE4kN,EAAG,CAAC,IAAIt+K,GAAIy4B,GAAG,EAAGqtC,GAAG,GAAI/8C,EAAIrvD,EAAE,GAAGy2F,EAAK,EAAC4/G,KAAM15J,GAAG,EAAG,KAAO/wE,EAAE6jD,EAAG0lE,EAAIn1F,EAAE,EAAE4yN,EAAG,EAAE,EAAE,EAAE,EAAM7mP,EAAE,EAAEA,EAAEH,IAAOoqD,EAAEs5L,IAAI/iP,EAAEyzB,CAAC,EAAK,EAAAg2B,EAAE5pD,IAAGA,EAAE4pD,EAAE05G,IAAInjK,CAAC,EAAKH,GAAG,KAAzCL,IAAgB,KAA8I,KAApGK,EAAEq9E,GAAInjB,EAAG6uD,EAAIn1F,EAAE,EAAE4kN,EAAG,CAAC,IAAIt+K,GAAIy4B,GAAG,EAAGqtC,MAAO/8C,EAAIrvD,EAAE,GAAGy2F,EAAG,EAAG4/G,KAAM15J,GAAG,EAAG,GAAM,EAAC/wE,EAAE6jD,EAAG0lE,EAAIn1F,EAAE,EAAE4yN,EAAG,EAAE,EAAE,EAAE,EAAM7mP,EAAE,EAAEA,EAAEH,IAAOoqD,EAAEu5L,IAAIhjP,EAAEyzB,CAAC,EAAK,EAAAg2B,EAAE5pD,IAAGA,EAAE4pD,EAAE05G,IAAInjK,CAAC,EAAKH,GAAG,KAAzCL,IAAgB,CAAqC,CACpc,SAASkvN,IAAI1uN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAwB,IAAtB73C,EAAE,IAAIloF,EAAI8/H,EAAE,EAAE9kK,EAAE,EAAED,EAAE,EAAQ+kK,EAAElxI,EAAE,EAAE,OAAO,GAAG5zB,EAAEG,EAAE,GAAE,GAAG,CAAsB,IAArBypD,EAAEvG,EAAGljD,EAAE,GAAGH,CAAC,EAAE,EAAE,EAAE,EAAED,GAASi9D,GAAI8nG,EAAE,EAAElxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAEl7G,GAAG,EAAEk7G,EAAiM,IAA/LC,EAAE,EAAEvlK,EAAEoqD,GAAGoT,GAAI8nG,EAAElxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,CAAC,EAAE,EAAE,GAAG,EAAEnlK,GAAGq9D,GAAI8nG,EAAE,EAAElxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAEl7G,EAAEpqD,EAAEG,GAAG,EAAEolK,EAAEh8H,EAAImkF,GAAGlwD,GAAI8nG,EAAEC,EAAEnxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,EAAEC,CAAC,EAAE,EAAE,IAAIhlK,IAAIi9D,GAAI8nG,EAAEC,EAAEnxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,EAAEC,CAAC,EAAE,EAAE,GAAG,EAAEn7G,EAAE,EAAE5pD,EAAQA,EAAEG,EAAE,GAAE,GAAIkjD,EAAGljD,EAAE,GAAGH,CAAC,EAAE,EAAE,EAAE,EAAED,IAAIi9D,GAAI8nG,EAAEC,EAAEnxI,EAAE,EAAE,MAAM,EAAEyvB,EAAGzvB,EAAE,EAAEkxI,EAAEC,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE/kK,EAAE8kK,GAAG,EAAEC,CAAC,CAAC,OAAO73C,CAAC,CACrc,SAASu5H,GAAItmP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAG,CAAC3kK,EAAE,EAAE,CAA+B,GAA9B2kK,EAAE,IAAIhiJ,IAAI8Q,EAAE0yI,GAAI9mK,EAAEo0B,EAAE,EAAE,GAAGzzB,EAAEyzB,CAAC,EAAKp0B,GAAG,KAAK,CAAC,IAAIoqD,EAAE,IAAI0S,GAAI4vD,GAAI/rH,CAAC,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAE+iD,GAAIm4D,EAAE2hF,GAAIzmP,CAAC,CAAC,EAAE4zB,EAAE,EAAE,GAAGzzB,CAAC,GAAG,KAAKyzB,EAAE,EAAE,MAAM,CAAY,CAAO,IAANs5F,EAAE43C,EAAE,EAAMnlK,GAAG,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAImpC,GAAGtqH,EAAE,GAAG,EAAE,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGR,EAAE,GAAGA,EAAE,EAAE,GAAE,EAAG,EAAEutH,EAAG7pE,EAAGmvG,GAAI7yJ,CAAC,EAAE,GAAG,EAAEgtG,GAAIm4D,GAAG,CAAC3kK,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAImpC,GAAGtqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAGo7K,GAAIzW,CAAC,EAAE3kK,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,GAAKk7D,GAAG,EAAGC,IAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEooD,EAAE,GAAGA,EAAE,CAAC,EAAE3kK,EAAE,EAAEkjD,EAAGyhH,EAAE,EAAE,GAAG,EAAE3kK,EAAE,GAAG,OAAOA,EAAE,EAAEqmK,KAAKr6C,GAAIhsH,CAAC,EAAE,GAAG,GAAG,CAAC,OAAOA,EAAE,CAAC,CACtc,SAASi1I,GAAIj1I,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA4C,GAA1CA,EAAE6C,GAAIznK,EAAE,EAAE,KAAKyzB,CAAC,EAAE7zB,EAAE,EAAEJ,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAEwrD,GAAK,EAAItI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,GAAI,IAAIs5F,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAK63C,EAAE,GAAGvlK,EAAE,GAAI,CAAA,EAAE,CAAC,GAAG6kD,GAAG7kD,EAAEQ,CAAC,EAAG,OAAOD,EAAE,EAAEA,CAAC,UAAWC,GAAG,KAAK,CAAC,IAAI8kK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAPtlK,EAAEG,EAAEmlK,CAAC,EAAKC,EAAE,GAAGvlK,EAAE,GAAE,CAAE,EAAE,CAAC,GAAG6kD,GAAGrkD,EAAER,EAAE,GAAE,CAAE,EAAG,OAAOO,EAAE,EAAEA,CAAC,CAAE,GAAG6pD,GAAO,IAAJ7pD,EAAE,EAAMmtH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAK63C,EAAE,GAAGvlK,EAAE,GAAI,CAAA,EAAE,CAAC,GAAG06D,EAAGl6D,CAAC,IAAIk6D,EAAGgf,GAAI/4E,EAAEkjD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,CAAC,CAAC,EAAG,OAAOO,EAAE,EAAEA,CAAC,EAAG,KAAM,KAAImtH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAP1tH,EAAEG,EAAEutH,CAAC,EAAK63C,EAAE,GAAGvlK,EAAE,GAAE,CAAE,EAAE,CAAC,GAAGA,EAAE,MAAM,KAAM,OAAOO,EAAE,EAAEA,CAAC,CAAG,MAAO,EAAE,CACtc,SAAS2mP,IAAIvmP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAA8D,IAA5D4qE,GAAG,EAAGrC,GAAIhoE,EAAE,IAAIwgB,GAAG,EAAEusG,EAAEnrB,GAAG5hG,CAAC,EAAEP,EAAE,IAAIolC,EAAIkgI,EAAE,IAAIlgI,EAAI8/H,EAAE,KAAK/kK,EAAE,EAAQmtH,EAAE,GAAG,GAAG1tH,EAAE6jD,EAAG6pE,EAAE,GAAG,EAAE,MAAM76C,GAAI66C,EAAE,GAAG,CAAC,EAAEnpB,GAAImpB,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAK,CAAC43C,GAAGr4D,GAAIq4D,CAAC,EAAEt4D,GAAIs4D,CAAC,EAAE,EAAEr4D,GAAIjtG,CAAC,EAAEgtG,GAAIhtG,CAAC,GAAGslK,EAAEtlK,EAAEI,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEJ,IAAOO,GAAG0sG,GAAIjtG,CAAC,EAAEgtG,GAAIhtG,CAAC,EAAE0lK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE1lK,EAAK0lK,EAAE,EAAE,OAAO,IAAInlK,EAAE0sG,GAAIq4D,CAAC,EAAEt4D,GAAIs4D,CAAC,EAAE,GAAG53C,EAAE,GAAG,KAAI+3C,EAAE,IAAIjM,GAAIkM,CAAC,EAAEF,EAAEv4D,GAAIq4D,CAAC,EAAEt4D,GAAIs4D,CAAC,EAAEC,EAAEk9E,GAAIh9E,EAAErxI,EAAE,IAAIuY,GAAInsC,EAAE4pD,EAAEjqD,EAAEqlK,CAAC,EAAEzkF,GAAItjB,GAAIgoG,EAAE,CAAC,EAAEF,CAAC,EAAED,EAAEG,EAAErlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEqlK,EAAEllK,EAAE,EAAEmlK,EAAE,EAAE9gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,IAAI,OAAAwjD,GAAIloH,EAAEslK,CAAC,EAAStlK,CAAC,CACvc,SAAS+mP,IAAIxmP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAE,GAAGJ,EAAE,GAAG4zB,CAAC,IAAGoxI,GAAGplK,EAAEg0B,EAAGh0B,EAAOyjD,EAAGuG,EAAE,EAAE,EAAE,GAAGhqD,CAAC,EAAlB,MAAwBolK,GAAuB,GAApB5kK,EAAEJ,EAAE,GAAG4zB,EAAEzzB,EAAE,CAAC,EAAEL,EAAE8zB,EAAE,EAAK9zB,EAAE,GAAGA,GAAG,GAA0B,GAAtBmlK,EAAE5hH,EAAGjjD,EAAE,EAAE,EAAE8kK,EAAE7hH,EAAG2hH,EAAE,EAAE,EAAKC,EAAE,GAAE,EAAIC,EAAE,GAAI,MAAqB,KAAfh4C,EAAE,CAAC,CAACwxE,GAAI9qK,CAAC,EAAEp0B,EAAE,EAAMslK,EAAE3kK,EAAE,EAAE8kK,EAAE,GAAI,EAACA,EAAE,KAAKH,EAAE,GAAE,GAAKC,EAAE1hH,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEnlK,EAAE0jD,EAAGi4B,GAAIn7E,EAAE4kK,CAAC,EAAE,EAAE,EAAMplK,GAAsCutH,GAAGntH,EAAEmlK,EAAE,GAAGvlK,CAAC,EAAEI,GAAG,GAAGmlK,EAAE,GAAG1lK,EAAEG,CAAC,EAAEH,GAAGO,GAAGmlK,EAAE,GAAG1lK,EAAEG,CAAC,GAAOulK,EAAE,GAAG1lK,EAAEG,CAAC,EAAE,EAAEH,GAA9FW,EAAE,GAAG,CAAC+sH,IAAGg4C,EAAE,GAAG1lK,EAAEulK,CAAC,EAAE,EAAEvlK,QAAsFY,GAAG,KAAM4kK,EAAE,GAAG,IAAI,GAAOrlK,EAAE27E,GAAIn7E,EAAEC,CAAC,EAAET,GAAG,KAAKQ,EAAE,GAAG,CAACu+L,GAAI9qK,CAAC,GAAGoxI,EAAE,GAAG5kK,CAAC,EAAE4kK,EAAE,GAAGrlK,CAAC,EAAK,CACvc,SAASinP,IAAIzmP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAY,IAAV/kK,EAAE,IAAIiP,IAAQtP,EAAE,IAAIqxG,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,GAAE,EAAG,IAAInwB,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAmB,GAAfiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAK,CAAAmnG,GAAIl9C,CAAC,IAAYk7G,EAAEl7G,EAAE,EAAE,EAAK6vJ,GAAI30C,EAAE/4E,EAAG,GAAE,CAAoB,GAAnBg5E,EAAEiuE,GAAI7yO,EAAE2kK,EAAE/4E,GAAID,EAAG,EAAKi5E,GAAG,GAAI,SAAS/kK,EAAE,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,EAAE+kK,CAAC,EAAE,CAAC/kK,EAAE,IAAIA,EAAE,EAAE,IAAIglC,GAAK+D,EAAI/oC,EAAE,EAAE8kK,CAAC,CAAC,CAAE,IAAI53C,EAAE,IAAIlc,GAAGphC,GAAGo3G,GAAIpzJ,CAAC,EAAE,EAAE,GAAE,EAAG,IAAInwB,EAAE,CAAC,EAAEo7I,GAAG3xB,CAAC,GAAmB,GAAf1tH,EAAE6jD,EAAGu7F,GAAG1xB,CAAC,EAAE,EAAE,EAAK,CAAApmB,GAAItnG,CAAC,IAAYO,EAAEP,EAAE,EAAE,EAAKi6M,GAAI15M,EAAE+rF,EAAG,GAAE,CAAoB,GAAnBi5E,EAAEiuE,GAAI7yO,EAAEJ,EAAE+rF,GAAIC,EAAG,EAAKg5E,GAAG,GAAI,SAAS/kK,EAAE,EAAEkD,EAAK,KAAK,IAAIlD,EAAE,EAAE+kK,CAAC,EAAE,CAAC/kK,EAAE,IAAIA,EAAE,EAAE,IAAIglC,GAAK+D,EAAI/oC,EAAE,EAAED,CAAC,CAAC,CAAE,OAAOC,CAAC,CACxc,SAASmhP,IAAIhhP,EAAE,CAACkzJ,GAAG,EAAG,IAAIz/H,EAAE5zB,EAAE4pD,EAAEjqD,EAAU,GAARi0B,EAAE+rC,GAAGx/D,CAAC,EAAKA,EAAEq1N,GAAI,OAAQ,OAAOA,GAAI5hM,CAAC,EAAO,GAAGzzB,GAAG,GAAI,OAAOkzN,IAAKrvJ,GAAK,EAACyxJ,IAAK7hM,CAAC,EAAO,GAAGzzB,GAAGiwK,GAAK,OAAO5xB,GAAI60E,GAAIiC,GAAI,CAAC,EAAE1hM,CAAC,EAAEA,CAAC,EAAE,GAAGzzB,EAAE,IAAS,MAAM0lC,EAAI,IAAIuM,GAAI,sBAAsB,CAAC,EAAE,GAAGjyC,GAAGk9E,GAAK,OAAOmhE,GAAI60E,GAAIiC,GAAI,CAAC,EAAE1hM,CAAC,EAAEA,CAAC,EAAiD,IAA/Cg2B,EAAEypK,GAAIiC,GAAI,CAAC,EAAEj4I,EAAG,EAAE19E,EAAEiqD,EAAE5pD,EAAE4lF,GAAIzlF,EAAEk9E,EAAG,EAAEzpD,EAAE+rC,GAAGx/D,EAAEk9E,EAAG,EAAQ3wB,GAAI1sD,EAAEq9E,EAAG,EAAE,GAAG19E,EAAEwzJ,GAAIxzJ,EAAEiqD,CAAC,EAAE5pD,EAAEqmL,GAAIrmL,EAAEq9E,EAAG,EAAmD,IAAjD19E,EAAEwzJ,GAAIxzJ,EAAE0zN,GAAIiC,GAAI,CAAC,EAAE1hM,CAAC,CAAC,EAAEj0B,EAAE6+I,GAAI7+I,EAAE09E,EAAG,EAAEr9E,EAAE4lF,GAAIzlF,EAAEk9E,EAAG,EAAQ3wB,GAAI1sD,EAAEq9E,EAAG,EAAE,GAAG19E,EAAE6+I,GAAI7+I,EAAE09E,EAAG,EAAEr9E,EAAEqmL,GAAIrmL,EAAEq9E,EAAG,EAAE,OAAA19E,EAAE6+I,GAAI7+I,EAAEi0B,CAAC,EAASj0B,CAAC,CAC3c,SAASknP,IAAI1mP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAA6G,IAA3Gj5C,GAAIn4F,EAAE,0CAA0C,CAAC,EAAE7zB,EAAE,IAAIilC,EAAIggI,EAAE,IAAIhgI,EAAI4kB,EAAEvW,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAG0/J,GAAK,CAAA,CAAC,EAAEntL,EAAE4pD,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA+D,IAA9DG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEO,EAAE,EAAEqkE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE0gG,EAAE,EAAE5gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAMwgG,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK53C,EAAE,IAAIpiC,KAAMi0D,MAAMgmB,EAAE1hH,EAAG0lE,EAAImE,GAAG7C,EAAG,EAAG6iD,KAAM,EAAE,EAAEnI,IAAI9lE,EAAG,EAAG+5C,IAAMj5I,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEmtH,EAAQ63C,GAAG30B,KAAM40B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE93C,IAASkpG,IAAIr2N,EAAE,GAAKC,CAAC,EAAEo2N,IAAIpxD,EAAE,GAAMhlK,CAAC,CAAC,CAACgsH,GAAIp4F,CAAC,CAAC,CAC3c,SAASkzN,IAAI3mP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEgsH,GAAIn4F,EAAE,kCAAkC,CAAC,EAAE7zB,EAAEI,EAAE,EAAKJ,EAAE,EAAE,QAAQ,IAAG6pD,GAAGoT,GAAI,EAAEj9D,EAAE,EAAE,MAAM,EAAEsjD,EAAGtjD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGmtH,EAAE7pE,EAAGo4B,GAAI17E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAEC,EAAE,IAAIg8G,GAAI77G,CAAC,EAAEX,EAAE,IAAIw8G,GAAI77G,CAAC,EAAE27O,IAAI37O,EAAEypD,EAAEsjE,EAAEltH,EAAER,CAAC,EAAEQ,EAAE,EAAE,EAAE,QAAQ,IAAI8tG,GAAI,EAAE/tG,EAAE,EAAE,MAAM,EAAEiuD,GAAIjuD,EAAE,EAAE,EAAEC,CAAC,GAAGR,EAAE,EAAE,EAAE,QAAQ,IAAIO,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEP,IAAWq3E,GAAI12E,GAAGkqH,EAAG,EAAGuyG,OAAOj9N,EAAE,IAAIq8G,GAAI77G,CAAC,EAAE2kK,EAAE,IAAI9oD,GAAI77G,CAAC,EAAEqwO,IAAIrwO,EAAER,EAAEmlK,CAAC,EAAEnlK,EAAE,EAAE,EAAE,QAAQ,IAAImuG,GAAI,EAAE/tG,EAAE,EAAE,MAAM,EAAEiuD,GAAIjuD,EAAE,EAAE,EAAEJ,CAAC,GAAGmlK,EAAE,EAAE,EAAE,QAAQ,IAAI/kK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE+kK,IAAQ94C,GAAIp4F,CAAC,CAAC,CAC3c,SAAS4/M,IAAIrzO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,IAAIjlK,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAK+kK,EAAE,IAAIh6E,GAAG,EAAGi0D,MAAep/I,EAAE0jD,EAAG0lE,EAAI+7C,GAAGz6C,EAAK,EAAC6iD,GAAK,EAAC,EAAE,EAAKvtK,IAAIs/F,IAAMsE,KAAM5jG,GAAGyjG,IAAK,IAAIx5C,EAAE,IAAIonD,GAAGphC,GAAGk3G,GAAIhiB,CAAC,EAAE,EAAE,KAAK,IAAIrhK,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAEh2B,EAAE5zB,EAAE,EAAK4zB,EAAE,GAAG,IAAYmxI,EAAE/kK,EAAE,EAAK+kK,EAAE,GAAGD,IAAGtlK,GAAG6yE,GAAIz+C,EAAE,GAAG,CAAC,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,GAAGp0B,EAAE,EAAE87H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACo6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,GAAEC,EAAEhlK,EAAE,EAAKglK,EAAE,GAAGF,IAAG53C,GAAG76C,GAAIz+C,EAAE,GAAG,CAAC,EAAEyvB,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,GAAGs5F,EAAE,EAAEoO,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACq6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,GAAK,CAC5c,SAAS+hF,IAAI5mP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAyD,IAAvDgsH,GAAIn4F,EAAE,uBAAuBm1F,EAAI5oH,GAAGstB,GAAG,EAAG+qN,GAAK,EAAC,CAAC,EAAE74O,EAAE,EAAMiqD,EAAE,IAAIvxB,EAAIl4B,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkD,IAAjD5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7pD,EAAEJ,GAAG,EAAE,EAAEA,EAAE,EAAEmlK,EAAEzhH,EAAGo4B,GAAIt7E,EAAE,EAAEJ,CAAC,EAAE,EAAE,EAAMmtH,EAAE,IAAI70F,EAAIr4B,EAAE,CAAC,EAAEktH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAKhzD,EAAG6uD,EAAIvpH,EAAE82J,EAAG,CAAC,IAAIp8F,GAAIgkC,GAAK,EAACza,GAAK,GAAEvpB,EAAG6uD,EAAIvpH,EAAE82J,EAAG,CAAC,IAAIp8F,EAAGypB,EAAG,IAAGnZ,GAAK,EAACrC,GAAI3oE,EAAE,EAAE,IAAIgvJ,IAAIsW,EAAEsnC,IAAI5sM,CAAC,CAAC,CAAC,EAAE+lG,GAAI3xE,EAAE,QAAQp0B,EAAE,WAAWA,EAAE,CAAC,GAAGgrE,GAAK,EAACrC,GAAInoE,EAAE,EAAE,IAAI8jK,IAAIgB,EAAEzhH,EAAG0lE,EAAI5oH,EAAEq4O,EAAG,EAAE,GAAG,EAAEn1L,EAAG0lE,EAAI5oH,EAAE6mP,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEzhJ,GAAI3xE,EAAE,SAASj0B,EAAE,KAAKK,CAAC,EAAE,EAAEL,CAAC,CAACqsH,GAAIp4F,CAAC,CAAC,CAC5c,SAASqzN,IAAI9mP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAA8H,GAA5HA,EAAE4jP,IAAIxvN,CAAC,EAAE4xB,GAAI,IAAIulD,GAAI,MAAM,CAACn3E,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIyhC,GAAGnvF,EAAE,EAAE,CAAC,GAAG,IAAIq5B,GAAIr5B,EAAE,EAAE,EAAE,EAAC,EAAG,IAAI6H,IAAIj8B,CAAC,CAAC,EAAEG,EAAE0jD,EAAG0lE,EAAIvpH,GAAG6qH,EAAK,EAACu0D,GAAG,EAAG,EAAE,EAAEsoE,IAAItzN,EAAEj0B,CAAC,EAAKA,EAAE,IAAIwwF,GAAK,EAAC01E,GAAG,EAAI,IAAIj8G,EAAE,IAAI0S,IAAK,CAAC1oC,EAAE,IAAIA,EAAE,EAAE,IAAI0tD,EAAIyhC,GAAGnvF,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAACg2B,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAEu9L,IAAIhnP,EAAEyzB,EAAEp0B,EAAEQ,CAAC,EAAG,OAAAqjD,EAAGulE,GAAIh1F,GAAGnG,GAAK,EAAC8/M,GAAG,EAAG,GAAG,EAAE,GAAI,GAAE,GAAG+C,IAAI18M,EAAEp0B,CAAC,EAAE4zC,GAAImnC,GAAGwuC,EAAIvpH,EAAE4nP,GAAG,CAAC,CAAC,GAAGznP,EAAE,GAAG0mK,EAAG,EAAExvF,GAAIr3E,EAAE6nP,EAAG,GAAGx1M,IAAI,IAAIs4I,GAAI92I,EAAImnC,EAAGuuC,EAAIvpH,EAAE6nP,EAAG,CAAC,CAAC,CAAC,EAAE7nP,CAAC,EAAE06D,EAAG0uD,GAAIh1F,EAAEuwM,EAAG,CAAC,IAAIjqK,GAAIgjC,GAAG,EAAGqmC,GAAK,EAAC+jH,IAAInnP,EAAEyzB,EAAEp0B,CAAC,EAAE+nP,IAAIpnP,EAAEyzB,EAAEp0B,CAAC,EAASA,CAAC,CAC7c,SAASwyN,GAAI7xN,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAiU,GAA/T,KAAK,EAAE,IAAIloF,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIA,EAAI,KAAK,EAAE,IAAIs8B,GAAI,KAAK,EAAE,IAAIx0B,GAAI,KAAK,EAAE,IAAI1H,GAAI,KAAK,EAAE,IAAIJ,EAAI,KAAK,EAAE,IAAIA,EAAI+D,EAAI,KAAK,EAAE5oC,CAAC,EAAE4oC,EAAI,KAAK,EAAEnV,CAAC,EAAE,KAAK,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE1wB,EAAK,KAAK,IAAI/C,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,EAAE0jD,EAAG0lE,EAAIn/D,GAAGn8B,GAAK,EAACyxH,GAAG,EAAG,EAAE,EAAKv/I,EAAG,IAAIutH,EAAEusC,GAAI95J,EAAE,CAAC,EAAEutH,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,CAAC,EAAE6sC,GAAIv6J,EAAE,EAAEW,EAAE,CAAC,GAAG6lG,GAAI,KAAK,EAAExmG,CAAC,EAAKQ,GAAG+oC,EAAI,KAAK,EAAE/oC,CAAC,EAAE+oC,EAAI,KAAK,EAAE6gB,CAAC,CAAC,CAC7c,SAAS49L,IAAIrnP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAsF,IAApFF,EAAE,IAAIjxD,GAAI,IAAIj5E,IAAI96B,CAAC,CAAC,EAAE8kK,EAAE1gG,EAAGk9G,GAAI8O,GAAI,GAAGjwL,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE8zC,GAAI6wH,EAAEA,EAAE,MAAM,EAAE9kK,EAAE4zB,EAAE,CAAC,EAAE,EAAMmxI,EAAE,IAAI1sI,EAAIl4B,EAAE,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,GAAG,EAAEhlK,EAAE,GAAG6zB,EAAE,IAAI5zB,EAAED,EAAE,CAAC,EAAEs9E,IAAK4mE,GAAIy5D,GAAI14C,EAAEjlK,CAAC,CAAC,EAAE,KAAMilK,EAAE,EAAE,EAAE,QAAQ,GAAgC,IAA7BC,EAAE5hH,EAAG2uG,GAAIgT,CAAC,EAAE,GAAG,EAAEF,EAAEG,EAAE,CAAC,EAAE,GAASzlK,EAAEuxE,IAAG,IAAIluB,GAAG1iD,EAAE,EAAE8kK,CAAC,EAAE,CAAC,EAAEzlK,EAAE,GAAIG,EAAE0jD,EAAG40E,GAAGz4H,CAAC,EAAE,GAAG,EAAE0lK,EAAEs+B,IAAI7jM,EAAEslK,CAAC,EAAK,CAAAH,EAAEI,EAAE,CAAC,IAAYruF,GAAIl3E,GAAG0rB,GAAK,EAAC2gL,GAAG,EAAI9+E,EAAE75E,EAAImnC,EAAGuuC,EAAIppH,EAAEqsM,EAAG,CAAC,CAAC,EAAI9+E,EAAE/sH,EAAE,EAAGypD,EAAE5pD,EAAEilK,EAAE,CAAC,EAAE/3C,EAAKtjE,EAAE5pD,EAAEklK,EAAE,CAAC,IAAGllK,EAAEklK,EAAE,CAAC,EAAEt7G,EAAEs3G,IAAI8D,EAAEE,CAAC,EAAEjhB,GAAIy5D,GAAI14C,EAAEE,CAAC,CAAC,GAAI,CAC9c,SAASuiF,IAAItnP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAS,IAAPtlK,EAAE,GAASutH,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA8B,IAA7B1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAE63C,EAAEvtD,GAAIwtD,EAAE,KAASjlK,EAAE,IAAIs4B,EAAI74B,EAAE,CAAC,EAAEO,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAuG,GAA9F+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEklK,EAAE5xH,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEzxH,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEl7G,EAAEvW,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEzxH,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKG,EAAEF,GAAGn7G,EAAEm7G,EAAGC,EAAEF,EAAEC,EAAE1xH,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEzxH,EAAIzf,EAAE,EAAEkxI,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,MAAM,CAACnlK,EAAE,GAAMK,EAAE,GAAGulG,GAAIvlG,EAAE,+BAA+B8kK,EAAE,iCAAiCE,CAAC,EAAE,KAAK,CAAE,GAAG,CAACrlK,EAAG,KAAM,CAAC,OAAAK,EAAE,GAAGulG,GAAIvlG,EAAE4zB,EAAE,iBAAiBj0B,CAAC,EAASA,CAAC,CAC9c,SAASwlO,IAAIhlO,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAO,IAALF,EAAE,GAAOE,EAAE,IAAI3sI,EAAIl4B,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,GAAG,EAAED,EAAE,EAAED,IAAInlK,EAAEytG,GAAIs+B,GAAIvnB,GAAIL,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI83G,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI9pJ,GAAG,EAAE,IAAIC,GAAG,CAAC,EAAE,CAAC,EAAE1b,EAAE4tG,GAAIs+B,GAAIvnB,GAAIL,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAI83G,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI5pJ,GAAG,EAAE,IAAIC,GAAG,CAAC,EAAE,CAAC,EAAE8xG,EAAEvtH,EAAEI,EAAEP,EAAMoqD,IAAGsjE,EAAE9f,GAAIs+B,GAAIvnB,GAAI,IAAIpZ,GAAI,KAAK,IAAI99C,GAAI83G,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI1pJ,GAAG,CAAC,EAAE,CAAC,EAAEtb,EAAEqtG,GAAIs+B,GAAIvnB,GAAI,IAAIpZ,GAAI,KAAK,IAAI99C,GAAI83G,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIzpJ,GAAG,CAAC,EAAE,CAAC,GAAEypJ,EAAE,EAAE73C,EAAE63C,EAAE,EAAEplK,EAAEolK,EAAE,EAAEhlK,EAAEglK,EAAE,EAAEvlK,EAAEO,GAAG,EAAG+7D,GAAI97D,EAAE+kK,EAAE/kK,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQktH,GAAG,GAAIpxD,GAAIloC,EAAEmxI,EAAEnxI,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAQ,CAC9c,SAAS8zN,IAAIvnP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGhlK,EAAE,EAAE,GAAG4zB,EAAE,EAAyQ,KAA/Pj0B,EAAE,IAAIo/L,GAAI5+L,CAAC,EAAEq0B,GAAI70B,GAAGmrF,GAAG,EAAG2+D,GAAK,EAACxmE,EAAItjF,GAAG0qH,EAAK,EAAC+jC,IAAKpuJ,CAAC,EAAEijF,EAAItjF,GAAG8tB,GAAK,EAAC6oI,KAAMp4D,GAAK,EAACva,GAAG,EAAG/5B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEjqD,EAAEutH,EAAE,IAAIyqF,GAAIr9J,GAAI4yE,EAAEvtH,CAAC,EAAEknC,GAAIqmF,GAAGjuB,EAAK,EAACmE,GAAK,EAAC0hE,EAAE,IAAI6yC,GAAIr9J,GAAIwqH,EAAEnlK,CAAC,EAAEknC,GAAIi+H,EAAEvhE,EAAG,EAAEyhE,EAAEhlK,EAAE,EAAEiqE,GAAIjqE,EAAEktH,CAAC,EAAE1tH,EAAE,IAAIksH,GAAIuzB,GAAIz/I,EAAEQ,CAAC,EAAEijF,EAAIzjF,EAAE0/I,GAAI,IAAI,EAAEl1E,GAAIxqE,EAAEslK,CAAC,EAAE76F,GAAIzqE,EAAEwlK,CAAC,EAAED,EAAE,IAAIn5B,GAAI5rI,EAAE,EAAE,CAAC,EAAQ+kK,EAAE,EAAEA,EAAE,EAAE,MAAMhlK,GAAGsyE,GAAI0yF,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE1hH,EAAG0hH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAM7qG,EAAG6uD,EAAIhpH,EAAE8sN,EAAG,CAAC,IAAI3yJ,GAAIoiC,GAAG,EAAGsnC,GAAK,IAAE3gD,EAAIljF,EAAEysN,GAAIxsN,CAAC,EAAEylF,GAAIs/E,CAAC,EAAEh8H,EAAIvpC,EAAE,EAAEO,CAAC,GAAG23N,IAAI/3N,EAAEutH,EAAE43C,CAAC,EAAC,CAC/c,SAAS6iF,IAAIxnP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGhlK,EAAE,EAAE,GAAG4zB,EAAE,EAA8Q,IAApQj0B,EAAE,IAAIo/L,GAAI5+L,CAAC,EAAEq0B,GAAI70B,GAAGmrF,GAAK,EAAC2+D,GAAG,EAAGxmE,EAAItjF,GAAG0qH,EAAK,EAAC+jC,IAAKpuJ,CAAC,EAAEijF,EAAItjF,GAAG8tB,GAAK,EAAC6oI,KAAMp4D,GAAG,EAAGva,GAAG,EAAG/5B,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEjqD,EAAEutH,EAAE,IAAIyqF,GAAIr9J,GAAI4yE,EAAEvtH,CAAC,EAAEknC,GAAIqmF,GAAGjuB,EAAG,EAAGmE,GAAK,EAAC0hE,EAAE,IAAI6yC,GAAIr9J,GAAIwqH,EAAEnlK,CAAC,EAAEknC,GAAIi+H,EAAEvhE,EAAG,EAAEt5B,GAAIjqE,EAAEktH,CAAC,EAAE1tH,EAAE,IAAIksH,GAAIuzB,GAAIz/I,EAAEQ,CAAC,EAAEijF,EAAIzjF,EAAE0/I,GAAI,IAAI,EAAEl1E,GAAIxqE,EAAEslK,CAAC,EAAE76F,GAAIzqE,EAAEo0B,CAAC,EAAE8jM,IAAI/3N,EAAEutH,EAAE43C,CAAC,EAAEC,EAAE,IAAIn5B,GAAI5rI,EAAE,EAAE,CAAC,EAAQ+kK,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAIhlK,GAAGsyE,GAAI0yF,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAE1hH,EAAG0hH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGC,EAAE3hH,EAAG0lE,EAAIhpH,EAAE8sN,EAAG,EAAE,GAAG,EAAK7nD,IAAI1oE,GAAG,EAAGsnC,MAAM/sD,GAAI92E,EAAEysN,EAAG,GAAGvpI,EAAIljF,EAAEysN,GAAIxsN,CAAC,EAAEylF,GAAIs/E,CAAC,EAAEh8H,EAAIvpC,EAAE,EAAEO,CAAC,EAAG,CACzd,SAAS6nP,IAAIznP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAA0F,IAAxFqlK,EAAE,IAAIlgI,EAAItlC,EAAE63I,GAAG3tF,CAAC,EAAE2gK,EAAE32L,EAAEzzB,EAAE,EAAE8kK,EAAE,EAAEnlK,EAAE,EAAEN,EAAE,IAAIuqC,GAAImjF,EAAE,IAAInjF,GAAI+6H,EAAE,IAAI9/H,EAAIs3M,EAAE,EAAEz8O,EAAE,EAAED,EAAE,EAAEQ,EAAE,EAAE2kK,EAAE,EAAEC,EAAE,EAAQtlK,EAAE,EAAE,GAAI,GAAE,GAAGK,EAAEqmL,IAAI1mL,EAAEC,EAAEutH,CAAC,EAAKntH,IAAGL,EAAE,EAAE,GAAGK,CAAC,GAAG,KAAK+kK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE/kK,EAAEP,EAAE,EAAE,GAAGO,EAAEP,CAAC,EAAEM,EAAEK,EAAE,EAAEJ,EAAE,CAAC,EAAEu8O,GAAGn8O,EAAE,EAAEJ,EAAE,CAAC,EAAED,EAAEK,EAAE,EAAE8kK,EAAE9kK,EAAE,EAAEJ,EAAE,CAAC,EAAEF,GAAGolK,EAAE9kK,EAAE,EAAE6kK,GAAGllK,EAAEK,EAAE,EAAEC,GAAGD,EAAE,EAAEJ,EAAE,CAAC,IAAK,CAACA,GAAGL,EAAE,EAAE,GAAE,GAAI,GAAG48O,GAAG/xB,GAAGpqN,EAAE,EAAEJ,EAAE,CAAC,EAAED,EAAEK,EAAE,GAAGN,GAAGG,EAAEuqN,KAAGrlD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEJ,EAAEA,EAAE,IAAI9/H,EAAI4f,GAAGsoE,EAAE1tH,CAAC,EAAEA,EAAE,EAAE,GAAE,EAAGulK,GAAGC,EAAEplK,EAAEsD,EAAK,KAAK,IAAItD,EAAEmlK,EAAE5kK,EAAE,EAAEC,CAAC,EAAE2kK,GAAGllK,EAAEy8O,EAAEz8O,EAAEA,EAAE,EAAEmlK,EAAE,EAAE5kK,EAAE,GAAG,OAAO,IAAI02D,GAAIl3D,EAAEslK,CAAC,CAAC,CACpd,SAASmS,IAAIl3K,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,IAAII,GAAG+kK,EAAG,IAAI5tI,GAAIh3B,EAAE,EAAE,CAAC,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,IAAIw3B,GAAIotI,CAAC,GAAG/kK,EAAE,EAAE,GAAI,GAAG4zB,GAAGkxI,EAAEzhH,EAAGrjD,EAAE,EAAE,GAAI,EAAC,EAAE,EAAEqjD,EAAGyhH,EAAE,KAAK,GAAG,GAAGnlK,EAAEi0B,EAAE,EAAEj0B,GAAG,OAAOA,EAAE,IAAIiqD,EAAE2xB,IAAIp7E,EAAE,EAAER,CAAC,EAAE,CAACiqD,GAAGjqD,EAAE,QAAQ,IAAIiqD,EAAE02H,IAAIngL,CAAC,GAAKypD,GAAG,CAAC6/H,GAAG7/H,EAAE,EAAEh2B,EAAE,EAAK,GAAGoyE,GAAIp8C,EAAE,EAAEh2B,CAAC,EAAE,IAAIs5F,EAAEusC,GAAIt5J,EAAE,EAAE,CAAC,EAAE+sH,EAAE,GAAGA,EAAE,EAAE,GAAI1tH,EAAE6jD,EAAG0tF,GAAI7jB,CAAC,EAAE,GAAG,EAAE83C,EAAE7qB,GAAIh6I,EAAE,EAAEX,EAAE,CAAC,EAAEI,EAAEu6I,GAAIh6I,EAAE,EAAEX,EAAE,CAAC,EAAIwlK,GAAKplK,GAAGomG,GAAIg/D,EAAE,EAAE,IAAIluG,GAAIl3D,EAAEJ,EAAE,CAAC,CAAC,EAAW,IAAT+lD,GAAIplD,EAAE,CAAC,EAAM+kK,EAAEzL,GAAIt5J,EAAE,EAAE,CAAC,EAAE+kK,EAAE,GAAGA,EAAE,EAAE,GAAID,EAAE5hH,EAAG0tF,GAAIm0B,CAAC,EAAE,GAAG,EAAEtxI,EAAEynD,IAAIl7E,EAAE,EAAE8kK,EAAE,CAAC,EAAEllK,EAAEo6I,GAAIh6I,EAAE,EAAE8kK,EAAE,CAAC,EAAIrxI,GAAK7zB,GAAG0pD,IAAI71B,EAAE7zB,EAAEklK,EAAE,CAAC,EAAE1/G,GAAIplD,EAAE,CAAC,CAAC,CACrd,SAAS0nP,IAAI1nP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEJ,EAAE,IAAIi0B,GAAGtzB,CAAC,EAAE+sH,EAAE,IAAImgF,IAAI1tM,GAAGy5I,GAAGlsB,EAAE,CAAC,EAAEksB,GAAGlsB,EAAE,CAAC,EAAE/nF,GAAI+nF,EAAE,CAAC,EAAEksB,GAAGlsB,EAAE,CAAC,EAAEksB,GAAGlsB,EAAE,CAAC,EAAE/nF,GAAI+nF,EAAE,CAAC,EAAE/nF,GAAI+nF,EAAE,CAAC,EAAE/nF,GAAI+nF,EAAE,CAAC,EAAEttH,EAAEkzM,IAAI5lF,EAAE1tH,EAAE,IAAI,EAAE+vM,IAAIriF,EAAE1tH,CAAC,EAAEI,GAAMg0B,IAAGmxI,EAAE,IAAItxI,GAAGG,CAAC,EAAEkxI,EAAEgjF,IAAI/iF,CAAC,EAAEm/C,GAAIvkN,EAAE05G,EAAG9hE,EAAGmvK,IAAG,CAAC,EAAEpiJ,GAAI,IAAI,EAAE,CAACwgG,CAAC,CAAC,CAAC,GAAEI,EAAE,GAAMD,EAAE,GAASjlK,IAAG+kK,EAAE,IAAItxI,GAAGzzB,CAAC,EAAE+nP,MAAOhjF,EAAE,IAAIG,EAAEnvC,GAAGgvC,EAAEgjF,EAAG,EAAE,GAAI,EAAC,GAAGC,OAAOjjF,EAAE,IAAIE,EAAElvC,GAAGgvC,EAAEijF,GAAG,EAAE,GAAE,EAAG,IAAGhjF,EAAE7qH,IAAIu6G,IAAI,IAAI5lH,GAAIo2H,CAAC,EAAED,CAAC,EAAEuhD,IAAI,IAAIjoM,IAAI5e,EAAEqlK,CAAC,EAAE+iF,MAAOvoP,EAAE,GAAGimG,GAAGjmG,EAAEuoP,GAAI,IAAI,GAAK7iF,GAAGD,KAAGllK,EAAE,IAAIixC,GAAG+0M,IAAI/gF,EAAEjlK,EAAEmlK,EAAED,CAAC,EAAEx/D,GAAGjmG,EAAEuoP,GAAIhoP,CAAC,GAAE6pD,EAAE,IAAItnB,IAAI4qF,CAAC,EAAE2nD,IAAI,IAAIjxG,GAAIjkE,CAAC,EAAEiqD,CAAC,CAAC,CACrd,SAASqhJ,IAAG9qM,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAqD,IAAnD/3C,EAAE,IAAI4jF,IAAG/rC,EAAE1rD,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE30H,EAAE,GAAGH,EAAE,EAAEoqD,EAAE,EAAM7pD,EAAE,EAAEA,EAAEI,EAAE,EAAE,EAAE,OAAO,EAAEJ,EAAwB,GAArBilK,EAAE3hH,EAAGo4B,GAAIt7E,EAAE,EAAEJ,CAAC,EAAE,GAAG,EAAKilK,EAAE,EAAE,GAA+B,GAAzBrlK,EAAE,GAAGqlK,EAAE,IAAGrlK,EAAEI,EAAEP,EAAEulK,EAAE,CAAC,EAAEn7G,EAAE,GAAKjqD,GAAG,EAAE,CAAO,GAANmlK,EAAEE,EAAE,EAAKjlK,GAAGJ,IAAGmlK,GAAGl7G,IAAOk7G,GAAG,GAAG,MAAO,GAAG,GAAG,CAACmjF,IAAGr0N,EAAEmxI,EAAEC,EAAEF,EAAE53C,CAAC,EAAE,CAACntH,EAAEJ,EAAE,EAAEolK,EAAE,CAAC,EAAEvlK,EAAE,QAAQ,CAAC,SAAMG,EAAE,GAAM,CAACsoP,IAAGr0N,EAAEmxI,EAAEC,EAAE,EAAE93C,CAAC,EAAG,MAAO,OAAQ,CAAM,GAALvtH,EAAE,GAAM04G,GAAI2sD,EAAE,EAAE,CAAC,GAAG,IAAmB,GAAfC,EAAEF,EAAE,CAAC,EAAE7S,IAAGt+H,EAAEmxI,CAAC,EAAKA,EAAE,CAAC,EAAEE,EAAG,iBAAkBj4C,IAAIp5F,EAAEoxI,EAAE,EAAED,EAAE,CAAC,CAAC,EAAE,CAACA,EAAE,CAAC,GAAGC,EAAE,EAAE,OAAO,QAAQ,CAAC,MAAO,EAAC,CAAE,OAAIkjF,IAAGh7H,EAAEltH,CAAC,EAAmB+kK,EAAE,CAAC,EAAZ,CAAa,CACtd,SAAS+lD,GAAI3qN,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAACI,EAAE,EAAE,CAAyC,GAAxCJ,EAAE,IAAI6iB,GAAIkiJ,EAAE,IAAIliJ,GAAIgR,EAAE0yI,GAAIp5C,EAAEt5F,EAAE,EAAE,GAAGzzB,EAAEyzB,CAAC,EAAKs5F,GAAG,KAAK,CAAC,IAAI1tH,EAAE,IAAI88D,GAAI4vD,GAAI/rH,CAAC,CAAC,EAAEX,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGG,EAAE0jD,EAAGmvG,GAAIhzJ,CAAC,EAAE,EAAE,EAAEmtG,GAAI5sG,EAAE+qN,GAAInrN,CAAC,CAAC,EAAEi0B,EAAE,EAAE,GAAGzzB,CAAC,GAAG,KAAKyzB,EAAE,EAAE,GAAE,GAAI,CAAY,CAAC,IAAIg2B,GAAG,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGypD,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,GAAG,EAAE8hB,EAAG1rE,EAAE,EAAE,GAAGqmE,GAAIy+F,EAAEzhH,EAAGrjD,EAAE,EAAE,CAAC,EAAEu7K,GAAIzW,CAAC,EAAE3kK,EAAE,EAAE,IAAIqkG,IAAIrkG,GAAGkjD,EAAGwpG,EAAItrG,GAAKk7D,GAAK,EAACC,IAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEooD,EAAE,GAAGA,EAAE,CAAC,EAAEn4D,GAAI5sG,EAAEI,EAAE,CAAC,EAAEo7K,GAAIx7K,CAAC,EAAEI,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,EAAIm7D,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE38G,EAAE,GAAGA,EAAE,CAAC,EAAEosH,GAAIhsH,CAAC,EAAE,GAAG,EAAE,CAAC,OAAOA,EAAE,CAAC,CACtd,SAASqsO,IAAIrsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAA0G,IAAxGotH,EAAE/sH,EAAE,EAAEypD,EAAEwa,EAAG4gD,GAAGsP,GAAI,GAAGpH,EAAE,GAAG,CAAC,EAAEvtH,EAAEykE,EAAG4gD,GAAGsP,GAAI,GAAGpH,EAAE,GAAG,CAAC,EAAEltH,EAAEG,EAAE,EAAEyzB,EAAEwwC,EAAG4gD,GAAGsP,GAAI,GAAGt0H,EAAE,GAAG,CAAC,EAAER,EAAE4kE,EAAG4gD,GAAGsP,GAAI,GAAGt0H,EAAE,GAAG,CAAC,EAAM+kK,EAAE,EAAEA,EAAE73C,EAAE63C,IAAI,CAAK,IAAJE,EAAE,EAAQA,EAAEjlK,GAAG,CAACyyK,GAAItyK,EAAE4kK,EAAEE,CAAC,GAAG,EAAEA,EAAEr7G,EAAEm7G,CAAC,EAAEE,CAAC,CAAC,IAAID,EAAE,EAAEA,EAAE93C,EAAE83C,IAAI,CAAO,IAANC,EAAEjlK,EAAE,EAAQilK,GAAG,GAAG,CAACwN,GAAItyK,EAAE6kK,EAAEC,CAAC,GAAG,EAAEA,EAAEtlK,EAAEqlK,CAAC,EAAEC,CAAC,CAAC,IAAIrlK,EAAE,EAAEA,EAAEI,EAAEJ,IAAI,CAAK,IAAJklK,EAAE,EAAQA,EAAE53C,GAAG,CAACulD,GAAItyK,EAAE2kK,EAAEllK,CAAC,GAAG,EAAEklK,EAAElxI,EAAEh0B,CAAC,EAAEklK,CAAC,CAAC,IAAIhlK,EAAE,EAAEA,EAAEE,EAAEF,IAAI,CAAO,IAANglK,EAAE53C,EAAE,EAAQ43C,GAAG,GAAG,CAAC2N,GAAItyK,EAAE2kK,EAAEhlK,CAAC,GAAG,EAAEglK,EAAEtlK,EAAEM,CAAC,EAAEglK,CAAC,CAAC,IAAI/kK,EAAE,EAAEA,EAAEmtH,EAAEntH,IAAK,IAAImlK,EAAE,EAAEA,EAAEllK,EAAEklK,IAAKnlK,EAAEP,EAAE0lK,CAAC,GAAGnlK,EAAE6zB,EAAEsxI,CAAC,GAAGA,EAAEvlK,EAAEI,CAAC,GAAGmlK,EAAEt7G,EAAE7pD,CAAC,GAAG2yK,GAAIvyK,EAAEJ,EAAEmlK,EAAE,GAAM,EAAI,CAAG,CACvd,SAASo/B,GAAInkM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEC,EAAEozC,GAAImnC,GAAGwuC,EAAI5oH,GAAG8qB,KAAM2pN,KAAK,CAAC,EAAEp1O,EAAEW,EAAE,EAAE,EAAE,EAAE2kK,EAAE3kK,EAAE,EAAE,EAAE,EAAKH,GAAGktH,EAAE//C,GAAIqT,GAAI,IAAIjrB,GAAIuvG,EAAE,EAAEA,EAAE,CAAC,EAAEtlK,CAAC,EAAE,EAAG,EAAEO,EAAEotE,GAAIvD,GAAIzpE,EAAE,CAAC,EAAE,EAAG,EAAEyzB,EAAE4sD,GAAID,GAAI,IAAIhrB,GAAI/1D,EAAE,EAAEA,EAAE,CAAC,EAAE0tH,CAAC,EAAEntH,CAAC,EAAEu3E,GAAIn3E,EAAE,EAAEyzB,CAAC,IAAOj0B,EAAE0zC,EAAImnC,EAAGuuC,EAAI5oH,EAAE,EAAEi0O,GAAG,CAAC,CAAC,EAAExqL,EAAEzpD,EAAE,EAAKX,EAAE,GAAGslK,EAAE,EAAMtlK,EAAE,GAAGslK,EAAE,GAAGl7G,EAAE,EAAEk7G,EAAE,GAAGtlK,EAAE,EAAEslK,EAAE,GAAG,EAAEnlK,EAAEiqD,EAAE,EAAEk7G,EAAE,GAAGtlK,EAAE,EAAEslK,EAAE,GAAG,EAAEnlK,EAAEQ,EAAE,EAAE,IAAOypD,EAAE,EAAEk7G,EAAE,GAAGtlK,EAAE,EAAEslK,EAAE,GAAG,EAAEnlK,EAAEiqD,EAAE,EAAEpqD,EAAE,GAAGslK,EAAE,EAAEtlK,EAAE,GAAG,EAAEG,GAAWH,EAAE,GAAGslK,EAAE,GAAGl7G,EAAE,EAAEpqD,EAAE,GAAGslK,EAAE,EAAEtlK,EAAE,GAAG,EAAEG,EAAEiqD,EAAE,EAAEk7G,EAAE,GAAGtlK,EAAE,EAAEslK,EAAE,GAAG,EAAEnlK,IAAOiqD,EAAE,EAAEpqD,EAAE,GAAGslK,EAAE,EAAEtlK,EAAE,GAAG,EAAEG,EAAEiqD,EAAE,EAAEpqD,EAAE,GAAGslK,EAAE,EAAEtlK,EAAE,GAAG,EAAEG,EAAEQ,EAAE,EAAE,GAAI,CACvd,SAASuuL,GAAIvuL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGI,GAAG,KAAM,OAAO,KAAgB,GAAXX,EAAEW,EAAE,OAAUX,GAAG,EAAG,MAAO,GAAwF,IAArFO,EAAEqkE,EAAG4rF,GAAGC,GAAI,GAAGzwJ,EAAE,GAAG,CAAC,EAAEqkJ,GAAI,EAAErkJ,EAAEW,EAAE,MAAM,EAAE0jJ,GAAI,EAAErkJ,EAAEO,EAAE,MAAM,EAAEq4G,IAAIj4G,EAAE,EAAEX,EAAEO,EAAE,CAAC,EAAEC,EAAE,KAAK8kK,EAAElxI,EAAMj0B,EAAE,EAAEutH,EAAE,EAAEvtH,EAAEH,EAAEG,IAAKiqD,EAAE7pD,EAAEJ,CAAC,EAAEwoP,IAAK,EAAIv+L,GAAG,IAAKw+L,EAAIx+L,CAAC,EAAE,EAAUk7G,GAAG,CAAC9kK,IAAIA,EAAE,IAAI0wE,GAAIvwE,CAAC,GAAGkrH,IAAIrrH,EAAEL,EAAEutH,GAAG,IAAO43C,EAAElxI,EAAKg2B,GAAG,KAAI,CAAC5pD,IAAIA,EAAE,IAAI0wE,GAAIvwE,CAAC,GAAG4hH,IAAI/hH,EAAEL,EAAEutH,EAAEvtH,EAAEutH,EAAE,EAAE,GAAuB,IAAS43C,EAAE,GAAO,OAAGA,EAAO9kK,GAA+BR,EAAEQ,EAAE,EAAE,OAAcR,EAAE,EAAEm/D,GAAI3+D,EAAE,EAAE,EAAER,EAAE,CAAC,EAAE,IAA5DW,EAAE,OAAO,EAAEX,EAAE,CAAC,EAA+DQ,EAAIA,EAAE,EAAJG,CAAM,CACxd,SAASkoP,IAAIloP,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIypO,EAAG,EAAE,WAAW,EAAE,uGAAuG,EAAE,IAAIt+O,GAAG,CAAC,CAAC,EAAEqgI,EAAIlqI,EAAEmoP,GAAIC,GAAI9kJ,GAAIq2F,GAAG,CAAC,EAAEzvD,EAAIlqI,EAAEmoP,GAAIE,GAAI/kJ,GAAIu2F,EAAG,CAAC,EAAE3vD,EAAIlqI,EAAEmoP,GAAIpW,GAAIzuI,GAAIy2F,GAAG,CAAC,EAAE7vD,EAAIlqI,EAAEmoP,GAAIvW,GAAItuI,GAAI02F,GAAG,CAAC,EAAE9vD,EAAIlqI,EAAEmoP,GAAIz4C,IAAIpsG,GAAI22F,GAAG,CAAC,EAAE/vD,EAAIlqI,EAAEmoP,GAAIv4C,IAAItsG,GAAI62F,GAAG,CAAC,EAAEjwD,EAAIlqI,EAAEmoP,GAAI34C,IAAIlsG,GAAI+2F,GAAG,CAAC,EAAEnwD,EAAIlqI,EAAEmoP,GAAIt4C,IAAIvsG,GAAIi3F,GAAG,CAAC,EAAErwD,EAAIlqI,EAAEmoP,GAAInvE,IAAI11E,GAAIm3F,GAAG,CAAC,EAAEvwD,EAAIlqI,EAAEmoP,GAAIjvE,IAAI51E,GAAIo3F,EAAG,CAAC,EAAExwD,EAAIlqI,EAAEmoP,GAAI/uE,IAAI91E,GAAIq3F,GAAG,CAAC,EAAEzwD,EAAIlqI,EAAEmoP,GAAI7uE,IAAIh2E,GAAIs3F,EAAG,CAAC,CAAC,CAC3d,SAAS0tD,GAAItoP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAqE,GAAnE1lK,EAAE,IAAIu/L,GAAI5+L,CAAC,EAAEq0B,GAAIh1B,GAAGsrF,KAAM4+D,GAAK,EAACzmE,EAAIzjF,GAAGiuB,KAAM6oI,KAAMp4D,KAAMva,GAAK,EAAChkF,EAAE,EAAKi0B,EAAE,CAAsF,IAArFs5F,EAAE,IAAIyqF,GAAI10H,EAAIiqC,GAAG7C,EAAG,EAAG+jC,IAAKx6H,CAAC,EAAEqvD,EAAIzjF,EAAE4uJ,GAAIx6H,EAAE,CAAC,EAAEiT,GAAIqmF,GAAGjuB,EAAG,EAAGmE,KAAM9oD,GAAI4yE,EAAE1tH,CAAC,EAAE0lK,EAAE77B,GAAIz1G,EAAE,CAAC,EAAMmxI,EAAEG,EAAEF,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAGjlK,EAAEglK,EAAEC,CAAC,EAAE/6F,GAAIlqE,EAAEmtH,CAAC,EAAEjqC,EAAIrvD,EAAEkjJ,GAAIt3K,CAAC,EAAE,EAAEG,CAAC,CAAC,GAAGK,EAAE,CAAsF,IAArF8kK,EAAE,IAAI6yC,GAAI10H,EAAIzjF,GAAG6qH,EAAG,EAAG+jC,IAAKpuJ,EAAE,CAAC,EAAEijF,EAAI6hF,EAAE1W,GAAIpuJ,CAAC,EAAE6mC,GAAIi+H,GAAG7lE,IAAMsE,GAAK,EAACjpD,GAAIwqH,EAAEtlK,CAAC,EAAE0lK,EAAE77B,GAAIrpI,EAAE,CAAC,EAAM+kK,EAAEG,EAAEF,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAGjlK,EAAEglK,EAAEC,CAAC,EAAEh7F,GAAIjqE,EAAE+kK,CAAC,EAAE7hF,EAAIjjF,EAAE82K,GAAIt3K,CAAC,EAAE,EAAEG,CAAC,CAAC,OAAAsjF,EAAIzjF,GAAG6qH,EAAK,EAACy1H,IAAKpyG,EAAI/tI,CAAC,CAAC,EAAEiqD,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEpqD,EAASA,CAAC,CAC3d,SAASixB,IAAK,CAACA,GAAI5rB,EAAIs4M,IAAI9jG,EAAG9hE,EAAGy4G,GAAG,CAAC,EAAEC,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAEmnB,IAAI,IAAI,OAAO;AAAA,OAAc,EAAE,GAAG,CAACmnC,GAAIllG,EAAG9hE,EAAGmxM,IAAG,CAAC,EAAEpkL,GAAI,KAAK,EAAE,CAAC,IAAIvgC,IAAKqjC,GAAI,EAACsoH,GAAG,+BAA+B7xG,IAAI9oC,KAAKA,KAAKC,IAAI,EAAC,EAAG,IAAIjR,GAAI2rJ,GAAG,8BAA8B7xG,GAAS7oC,EAAI,CAAA,CAAC,EAAE,IAAIjR,GAAI2rJ,GAAG,wBAAwB7xG,GAAS7oC,EAAE,CAAE,CAAC,EAAE,IAAIjR,GAAI2rJ,GAAG,qBAAqB7xG,GAAS7oC,EAAE,CAAE,CAAC,EAAE,IAAIjR,GAAI2rJ,GAAG,aAAa7xG,GAAS7oC,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC,OAAO70C,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAK,CAACurE,EAAGvrE,EAAE,EAAE,EAAE,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,CAC3d,SAASwoP,IAAIxoP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAsC,GAApCiqD,EAAEg/L,IAAK,CAACzoP,EAAE,IAAIA,EAAE,EAAE+7J,GAAI/7J,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAKA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAIA,EAAE,EAAE,EAAG,OAAOypD,EAAwF,GAAtFh2B,EAAEqoI,GAAI97J,CAAC,EAAE,EAAE,EAAE,EAAEH,EAAEG,EAAE,EAAER,GAAGiqD,EAAE,OAAO,EAAE1mD,EAAK,KAAK,IAAIy8D,GAAGx/D,EAAE,CAAC,CAAC,EAAE,IAAIm2C,IAAK1iB,GAAG,IAAIj0B,EAAE,GAAG,KAAUQ,EAAE,EAAE,EAAiB,GAAdH,GAAG4pD,EAAE,OAAOh2B,EAAK5zB,GAAG,EAAE,CAAW,IAAVL,EAAE,GAAG,KAAUK,EAAE6oP,GAAI,OAAO7oP,GAAG6oP,GAAI,OAAQh+I,IAAIlrG,EAAEkpP,EAAG,EAAE1qK,IAAIx+E,EAAEkpP,GAAIlpL,GAAG3/D,CAAC,CAAC,EAAE27D,GAAIh8D,EAAEiqD,EAAE,OAAOh2B,CAAC,CAAC,CAAC,MAAM5zB,EAAE4zB,EAAE5zB,EAAE27D,GAAIh8D,EAAEg/D,GAAI/U,EAAEh2B,EAAE+rC,GAAG3/D,CAAC,CAAC,CAAC,EAAEL,EAAE,GAAG,IAAIg8D,GAAIh8D,EAAEq7D,GAAIpR,EAAE+V,GAAG3/D,CAAC,CAAC,CAAC,MAAO,CAAoB,IAAnB27D,GAAIh8D,EAAEiqD,EAAE,OAAOh2B,CAAC,CAAC,EAAO5zB,EAAE,CAAC6oP,GAAI,OAAO7oP,GAAG6oP,GAAI,OAAQh+I,IAAIlrG,EAAEkpP,EAAG,EAAE1qK,IAAIx+E,EAAEkpP,GAAIlpL,GAAG,CAAC3/D,CAAC,CAAC,CAAC,CAAC,OAAOL,EAAE,CAAC,CAC7d,SAASmpP,GAAI3oP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAA4F,OAA1FnlK,EAAEygF,GAAI,IAAIjrB,GAAIv1D,EAAE,EAAEA,EAAE,CAAC,EAAEG,CAAC,EAAE4kK,EAAEhlK,EAAE,EAAE6zB,EAAE,EAAE7zB,EAAE,EAAE6zB,EAAE,EAAEoxI,EAAEpxI,EAAE,EAAEg2B,EAAE,EAAEh2B,EAAE,EAAEg2B,EAAE,EAAEq7G,GAAGllK,EAAE,EAAE6pD,EAAE,EAAE7pD,EAAE,EAAE6pD,EAAE,GAAGo7G,EAAEE,EAAEH,EAAEC,EAAKA,GAAG,EAAMD,GAAG,GAAGplK,EAAE4gF,GAAI,IAAIhrB,GAAIv1D,EAAE,EAAEA,EAAE,CAAC,EAAEmtE,GAAI,IAAI5X,GAAI3L,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAG,CAAC,EAAEpqD,EAAEkhJ,GAAIvgJ,EAAER,CAAC,EAAEutH,EAAEwzB,GAAIngE,GAAI,IAAIhrB,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,CAAC,EAAEj0B,CAAC,EAAEmlK,EAAE5hK,EAAK,KAAK,KAAK0mD,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAOpqD,EAAE0tH,GAAG1tH,GAAGslK,EAAU,IAAIvvG,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAK+sH,GAAG43C,EAAUvkF,GAAI,IAAIhrB,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,CAAC,EAAS,MAAiB,KAAkBqxI,GAAG,GAAGA,GAAG,GAAGC,GAAG,GAAGA,GAAG,EAAE3kF,GAAI,IAAIhrB,GAAIp1D,EAAE,EAAEA,EAAE,CAAC,EAAEgtE,GAAI,IAAI5X,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,EAAEqxI,CAAC,CAAC,EAAE,IAAK,CAC9d,SAASmtE,IAAIjyO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA0L,GAAxLl7G,EAAEvG,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACs7N,GAAK,EAAC,EAAE,EAAE/oP,EAAE,EAAE4zB,EAAE,IAAIg2B,EAAE,IAAI4xC,GAAK,EAACwpD,GAAK,EAAE7kJ,EAAE,EAAE,IAAIH,EAAE,EAAE4zB,EAAE,GAAG,EAAGg2B,EAAE,GAAGq7F,EAAG,IAAI9kJ,EAAE,EAAE,GAAGH,EAAE,EAAE4zB,EAAE,IAAI5zB,EAAE,EAAE4zB,EAAE,IAAIg2B,EAAE,IAAI4xC,GAAG,EAAGqpD,GAAG,EAAI1kJ,EAAE,EAAE,IAAIH,EAAE,EAAE4zB,EAAE,GAAG,EAAGg2B,EAAE,GAAGk7F,EAAG,IAAI3kJ,EAAE,EAAE,GAAGH,EAAE,EAAE4zB,EAAE,IAAOyvB,EAAG0lE,EAAI5oH,GAAGkqH,IAAMu0D,KAAM,EAAE,EAAE,IAAIzuF,KAAM01E,GAAK,IAAG7lK,EAAE,EAAE4zB,EAAE,GAAG5zB,EAAE,EAAE4zB,EAAE,GAAI,IAAIkxI,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK53C,EAAE,IAAIpiC,GAAK,EAACi0D,MAAMp/I,EAAE0jD,EAAG0lE,EAAImE,EAAEggD,EAAG,EAAE,EAAE,EAAEvtK,IAAIs/F,EAAG,EAAGsE,IAAM2pB,EAAE,EAAE,GAAGltH,EAAE,EAAE4zB,EAAE,EAAGj0B,GAAGywI,KAAMljB,EAAE,EAAE,GAAGltH,EAAE,EAAE4zB,EAAE,IAAKp0B,EAAEW,EAAE,EAAEA,EAAE,EAAE,EAAEH,EAAE,EAAER,EAAE,EAAEA,EAAE,EAAEW,EAAE,EAAE,EAAEH,EAAE,EAAER,EAAE,EAAEA,EAAE,CAAC,CAC/d,SAASkuO,IAAIvtO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAA0L,GAAxLl7G,EAAEvG,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACs7N,GAAK,EAAC,EAAE,EAAE/oP,EAAE,EAAE4zB,EAAE,IAAIg2B,EAAE,IAAI4xC,GAAK,EAACwpD,GAAK,EAAE7kJ,EAAE,EAAE,IAAIH,EAAE,EAAE4zB,EAAE,GAAG,EAAGg2B,EAAE,GAAGq7F,EAAG,IAAI9kJ,EAAE,EAAE,GAAGH,EAAE,EAAE4zB,EAAE,IAAI5zB,EAAE,EAAE4zB,EAAE,IAAIg2B,EAAE,IAAI4xC,GAAG,EAAGqpD,GAAG,EAAI1kJ,EAAE,EAAE,IAAIH,EAAE,EAAE4zB,EAAE,GAAG,EAAGg2B,EAAE,GAAGk7F,EAAG,IAAI3kJ,EAAE,EAAE,GAAGH,EAAE,EAAE4zB,EAAE,IAAOyvB,EAAG0lE,EAAI5oH,GAAGkqH,IAAMu0D,KAAM,EAAE,EAAE,IAAIzuF,KAAM01E,GAAK,IAAG7lK,EAAE,EAAE4zB,EAAE,GAAG5zB,EAAE,EAAE4zB,EAAE,GAAI,IAAIs5F,EAAE,IAAI70F,EAAIl4B,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAK1tH,EAAE,IAAIsrF,GAAK,EAACi0D,MAAMp/I,EAAE0jD,EAAG0lE,EAAIvpH,EAAE0tK,EAAG,EAAE,EAAE,EAAEvtK,IAAIs/F,EAAG,EAAGsE,IAAM/jG,EAAE,EAAE,GAAGQ,EAAE,EAAE4zB,EAAE,EAAGj0B,GAAGywI,KAAM5wI,EAAE,EAAE,GAAGQ,EAAE,EAAE4zB,EAAE,IAAKkxI,EAAE3kK,EAAE,EAAEA,EAAE,EAAE,EAAEH,EAAE,EAAE8kK,EAAE,EAAEA,EAAE,EAAE3kK,EAAE,EAAE,EAAEH,EAAE,EAAE8kK,EAAE,EAAEA,EAAE,CAAC,CAC/d,SAASkkF,IAAI7oP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAW,IAATtxI,EAAEgiM,IAAIz1N,CAAC,EAAM6kK,GAAGF,EAAG,IAAI7tI,GAAIrD,CAAC,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,IAAIsD,GAAI4tI,CAAC,GAAGE,EAAE,EAAE,MAAM,CAAkF,IAAjFD,GAAGplK,EAAE0jD,EAAG2hH,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE3hH,EAAG1jD,EAAE,GAAE,EAAG,EAAE,GAAGslK,EAAE,EAAEC,EAAE,EAAED,EAAEF,EAAE,EAAE,EAAEG,EAAEH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5kK,EAAE,EAAE4kK,EAAE,CAAC,EAAE,EAAE/kK,EAAE+kK,GAASvlK,EAAEW,EAAE,EAAEH,EAAE,CAAC,IAAI+kK,GAAGn7G,EAAEorI,IAAIh1L,EAAER,CAAC,EAAEO,EAAE,EAAEI,EAAE,IAAIg1F,GAAG,EAAGg7B,IAAMpwH,EAAE6pD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAI7pD,EAAE6pD,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAGsjE,EAAE75E,EAAIlzC,EAAE,EAAEH,EAAE,CAAC,CAAC,EAAED,EAAEI,EAAE,EAAEX,EAAE,CAAC,EAAE0tH,EAAE+3C,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAEzlK,EAAE,EAAE,EAAE0tH,CAAC,EAAEg4C,EAAEhiK,EAAK,KAAK,IAAIgiK,EAAEh4C,EAAE1tH,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEQ,EAAER,EAAEQ,EAAE+kK,EAAE,GAAG5kK,EAAE,EAAEH,EAAE,CAAC,EAAEqzC,EAAIlzC,EAAE,EAAEH,EAAE,CAAC,CAAC,EAAEilK,EAAEjlK,EAAEG,EAAE,EAAEH,EAAE,CAAC,QAAQA,GAAG+kK,GAAG5kK,EAAE,EAAE4kK,EAAE,CAAC,EAAEE,EAAEC,CAAC,CAAC,CAC/d,SAASv/F,GAAIxlE,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAoC,IAAlC/kK,EAAE,EAAE,GAAM8kK,EAAE3tD,GAAIv3G,EAAEy3G,GAAI0tD,EAAE5tD,GAAIytD,EAAEvtD,GAAQ5tD,EAAEzpD,EAAE,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGypD,EAAE,GAAI,GAA8H,IAA3H5pD,EAAEqjD,EAAGuG,EAAE,KAAK,GAAG,EAAEjqD,EAAEK,EAAE,EAAEilK,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAEtlK,EAAE,CAAC,EAAEI,EAAEmD,EAAK,KAAK,IAAInD,EAAEJ,EAAE,EAAEA,EAAE,CAAC,EAAEulK,EAAEhiK,EAAK,KAAK,IAAIgiK,EAAEvlK,EAAE,CAAC,EAAEolK,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEplK,EAAE,EAAEA,EAAE,CAAC,EAAMutH,EAAE,IAAI70F,EAAIr4B,EAAE,CAAC,EAAEktH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEt5F,EAAEp0B,EAAE,EAAKo0B,EAAE,GAAGoxI,EAAErlK,EAAE,EAAEH,EAAE,EAAE,EAAEslK,EAAEE,EAAExlK,EAAE,EAAE0lK,EAAEhiK,EAAK,KAAK,IAAIgiK,EAAEF,CAAC,EAAED,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAED,CAAC,IAAOE,EAAErlK,EAAE,EAAEH,EAAE,EAAE,EAAEslK,EAAEE,EAAExlK,EAAE,EAAEylK,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAED,CAAC,EAAEjlK,EAAEmD,EAAK,KAAK,IAAInD,EAAE+kK,CAAC,GAAI3kK,EAAE,EAAE,IAAIo1D,GAAIx1D,EAAEklK,EAAEF,EAAEG,CAAC,EAAE/kK,EAAE,EAAE,IAAIo1D,GAAI0vG,EAAE9kK,EAAE,EAAE,EAAE+kK,EAAE/kK,EAAE,EAAE,CAAC,CAAC,CACje,SAAS8oP,IAAI9oP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA2D,IAAzDA,EAAE,IAAIjgI,EAAIggI,EAAE,IAAIp9B,GAAI,EAAE5nI,CAAC,EAAER,EAAE,EAAEu8J,GAAIiJ,EAAE,IAAIgR,GAAI,EAAE,EAAEhR,EAAEhlK,CAAC,CAAC,EAAEL,EAAE,EAAMolK,EAAE,IAAIzoG,GAAIn8D,CAAC,EAAE4kK,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAKhlK,EAAEsjD,EAAGmvG,GAAIuS,CAAC,EAAE,EAAE,EAAEn7G,EAAEvG,EAAGo4B,GAAIupF,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEF,EAAEnlK,EAAEI,EAAE,GAAGsjD,EAAGo4B,GAAIupF,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEhlK,GAAM8kK,EAAElxI,IAAGj0B,EAAE,EAAEH,GAAGwlK,EAAE,EAAEhlK,EAAEilK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAED,EAAEA,EAAE,IAAIp9B,GAAIpoI,EAAEQ,CAAC,EAAE4pD,EAAE,IAAIosH,GAAI,EAAEhR,EAAE,EAAEA,EAAEhlK,CAAC,EAAE+7J,GAAIiJ,EAAEp7G,CAAC,EAAEjqD,EAAE,GAAKiqD,EAAE,EAAE,EAAE,QAAQ,GAAG7pD,EAAE,GAAG6pD,EAAE,GAAG7pD,EAAE,GAAG6pD,EAAE,GAAGA,EAAE,EAAE,IAAK7pD,EAAE,GAAG6pD,EAAE,EAAE,KAAK7pD,EAAE,EAAG2nL,GAAI99H,EAAE7pD,CAAC,GAAOmtH,EAAE,IAAI8oD,GAAIpsH,EAAE,EAAEA,EAAE,EAAE5pD,EAAEglK,EAAE,EAAEA,EAAEhlK,CAAC,EAAE+7J,GAAIiJ,EAAE93C,CAAC,EAAEw6D,GAAIx6D,EAAEntH,CAAC,GAAEJ,EAAEI,EAAE,EAAEA,EAAE,EAAE,OAAAklK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAED,EAASC,CAAC,CACle,SAAS+tC,GAAI7yM,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,CAACI,EAAE,EAAE,CAAqD,GAApDA,EAAE,EAAE,KAAKJ,EAAE,IAAI8jC,IAAI1jC,CAAC,EAAEyzB,EAAE,IAAI/Q,IAAI7iB,EAAEsmK,GAAIxB,EAAE9kK,EAAE,EAAE,GAAGG,EAAEH,CAAC,EAAK8kK,GAAG,KAAK,CAAC,IAAI53C,EAAE,IAAI5wD,GAAI4vD,GAAI/rH,CAAC,CAAC,EAAE+sH,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAGmvG,GAAItlC,CAAC,EAAE,EAAE,EAAEvgB,GAAI5sG,EAAEizM,GAAIxzM,CAAC,CAAC,EAAEQ,EAAE,EAAE,GAAGG,CAAC,GAAG,KAAKH,EAAE,EAAE,GAAE,GAAI,CAAY,CAAC,IAAIL,GAAG,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIopC,GAAGvqH,EAAE,GAAG,EAAE,GAAG,IAAIm8D,GAAIn8D,EAAE,CAAC,GAAGR,EAAE,GAAGA,EAAE,EAAE,MAAOiqD,EAAEvG,EAAGmvG,GAAI7yJ,CAAC,EAAE,GAAG,EAAE+rE,EAAG9hB,EAAE,GAAG,GAAGyc,GAAIzyC,EAAEyvB,EAAGuG,EAAE,EAAE,CAAC,EAAE2xH,GAAI3nJ,CAAC,EAAEzzB,EAAE,EAAE,IAAIokG,IAAIpkG,GAAGkjD,EAAGwpG,EAAItrG,GAAKk7D,KAAMC,IAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE9oF,EAAE,GAAGA,EAAE,CAAC,EAAE+4E,GAAI5sG,EAAEI,EAAE,CAAC,EAAEo7K,GAAIx7K,CAAC,EAAEI,EAAE,EAAE,IAAIi+D,IAAK/a,EAAGwpG,EAAItrG,EAAIm7D,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE38G,EAAE,GAAGA,EAAE,CAAC,EAAEosH,GAAIhsH,CAAC,EAAE,GAAG,EAAE,CAAC,OAAOA,EAAE,CAAC,CACne,SAAS+oP,IAAI/oP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAA8J,OAA5JD,EAAE,GAAMllK,EAAEu9K,IAAIt9K,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,EAAE5zB,EAAE,EAAE,CAAC,EAAEklK,EAAEvlK,GAAGK,EAAE,EAAE,EAAED,EAAEmtH,GAAMg4C,EAAEt7G,EAAE,IAAgBm7G,EAAEvlK,GAAGW,EAAE,EAAE,OAAO,GAAG+kK,IAAIloG,GAAIx9D,EAAEW,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEX,CAAC,EAAE,GAAG,GAAG,EAAEwlK,GAAGF,EAAE7gC,GAAIr6E,EAAEs7G,EAAE,EAAK,EAAEJ,EAAE,GAAME,EAAEpxI,EAAE,GAAG,CAACmxI,GAAU,KAASA,GAAGC,GAAGpxI,EAAE,KAAMmxI,GAAGC,EAAEpxI,EAAE,GAAG5zB,EAAE,EAAEglK,EAAEta,GAAI1qJ,EAAEumN,IAAIvmN,EAAEglK,CAAC,CAAC,IAAOuY,IAAIv9K,EAAE,EAAED,CAAC,EAAEC,EAAE,EAAE,IAAK0qJ,GAAI9gG,EAAEjqD,GAAGK,EAAE,EAAEA,EAAE,EAAE,EAAEmxL,GAAIvnI,EAAE5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE4zB,EAAE,CAAC,EAAEmoI,GAAInoI,EAAEg2B,CAAC,EAAKzpD,EAAE,EAAE,OAAOX,IAAG4uM,IAAKpxI,GAAIx9D,EAAEW,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEX,CAAC,EAAE,GAAG,GAAGoqD,CAAC,GAAGoT,GAAIx9D,EAAEW,EAAE,EAAE,MAAM,EAAEkjD,EAAGljD,EAAE,EAAEX,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,QAAQ,GAAGq3G,GAAI12G,EAAEX,CAAC,GAAEylK,EAAE,IAAYA,EAAC,CACre,SAAS9nF,GAAIh9E,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAmD,GAAjDA,EAAE4C,GAAIznK,EAAE,EAAE,GAAI,EAACyzB,CAAC,EAAEj0B,EAAE,EAAEH,EAAE6jD,EAAGljD,EAAE,EAAE,GAAG,EAAEJ,EAAE,KAAK4rD,GAAK,EAAItI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,GAAE,IAAIkxI,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAP53C,EAAE1tH,EAAEslK,CAAC,EAAKE,EAAE,GAAG93C,EAAE,GAAE,CAAE,EAAE,CAAC,GAAG7oE,GAAG6oE,EAAEltH,CAAC,EAAE,CAACD,EAAEmtH,EAAE,KAAK,CAAC,EAAEvtH,CAAC,UAAWK,GAAG,MAAM,IAAI8kK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAP53C,EAAE1tH,EAAEslK,CAAC,EAAKE,EAAE,GAAG93C,EAAE,IAAI,EAAE,CAAC,GAAG7oE,GAAGrkD,EAAEktH,EAAE,GAAE,CAAE,EAAE,CAACntH,EAAEmtH,EAAE,KAAK,CAAC,EAAEvtH,CAAC,MAAQ,KAAImlK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAP53C,EAAE1tH,EAAEslK,CAAC,EAAKE,EAAE,GAAG93C,EAAE,GAAE,CAAE,EAAE,CAAC,GAAGA,EAAE,GAAE,GAAI,KAAK,CAACntH,EAAEmtH,EAAE,KAAK,CAAC,EAAEvtH,CAAC,CAAG,OAAGI,IAAMqiE,GAAIjiE,EAAE,CAAC,IAAG4kK,EAAEnxI,EAAE,GAAI,EAAC,IAAIu5F,GAAIhtH,EAAE,EAAE,EAAEyzB,EAAE5zB,EAAE,KAAKL,EAAE,EAAI,EAAEstH,GAAI9sH,EAAEyzB,EAAE,KAAK,EAAE,EAAEA,EAAE5zB,EAAE4zB,EAAE,GAAE,EAAG,GAAG,EAAI,EAAEg2B,EAAEA,EAAE,GAAGm7G,CAAC,EAAGn7G,EAAEm7G,GAAGn7G,EAAE2wL,GAAIp6O,EAAEJ,EAAE6pD,CAAC,GAASA,CAAC,CACre,SAASkxL,GAAI36O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAkC,OAAhCN,EAAE,EAAEM,EAAE,EAAEL,EAAEJ,EAAE,EAAEmlK,EAAEnlK,EAAE,EAAEqlK,EAAEhlK,EAAE,EAAEJ,EAAEI,EAAE,EAAS4zB,EAAE,EAAG,CAAA,IAAK,GAAE9zB,EAAE8pD,EAAE,EAAEA,EAAE,EAAEsjE,EAAE/sH,EAAE,EAAGC,EAAE+6M,IAAIr7M,EAAEN,EAAEoqD,EAAEsjE,CAAC,EAAI9sH,EAAEwpD,EAAE,EAAGs7G,EAAEhiK,EAAK,KAAK,IAAInD,EAAED,EAAEF,CAAC,EAAEmlK,EAAE7hK,EAAK,KAAK,IAAI4hK,EAAE1kK,EAAE4kK,CAAC,EAAE,MAAM,IAAK,GAAE5kK,EAAEwpD,EAAE,EAAEA,EAAE,EAAEsjE,EAAE/sH,EAAE,EAAGL,EAAEo7M,IAAI96M,EAAEZ,EAAEoqD,EAAEsjE,CAAC,EAAIptH,EAAE8pD,EAAE,EAAGs7G,EAAEhiK,EAAK,KAAK,IAAInD,EAAED,EAAEF,CAAC,EAAEmlK,EAAE7hK,EAAK,KAAK,IAAI4hK,EAAE1kK,EAAE4kK,CAAC,EAAE,MAAM,IAAK,GAAEllK,EAAEC,EAAEmtH,EAAE9sH,EAAE,EAAE8kK,EAAEnlK,EAAEmtH,EAAEttH,EAAEmlK,EAAE7hK,EAAK,KAAK,IAAI4hK,EAAEE,CAAC,EAAE,MAAM,IAAK,GAAEllK,EAAE,EAAEM,EAAE0kK,EAAE53C,EAAEg4C,EAAEhiK,EAAK,KAAK,IAAInD,EAAEH,CAAC,EAAEmlK,EAAED,EAAE53C,EAAE83C,EAAE,MAAM,QAAQ,MAAMn/H,EAAI,IAAImN,GAAI,yBAAyB,CAAC,CAAE,CAAC,OAAAiyH,EAAE,IAAIl9D,GAAI5nG,EAAE,EAAE+kK,EAAEH,EAAEnxI,EAAE9zB,EAAEM,CAAC,EAAS6kK,CAAC,CACte,SAASkkF,IAAIhpP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAwD,GAAtDJ,EAAE3kK,EAAE,EAAE8kK,EAAE5hH,EAAG0lE,EAAI5oH,GAAGkqH,IAAM8kH,KAAM,EAAE,EAAEv7M,EAAEyvB,EAAG0lE,EAAI5oH,EAAEivO,EAAG,EAAE,EAAE,EAAK,GAACnqE,GAAG,CAACrxI,GAAkE,IAAxDp0B,EAAE6zC,EAAImnC,EAAGytG,GAAI9nL,GAAGstB,GAAG,EAAG27N,GAAG,CAAE,CAAC,EAAEl8H,EAAE75E,EAAImnC,EAAGytG,GAAI9nL,EAAEkpP,GAAG,CAAC,CAAC,EAAEnkF,EAAE,EAAKD,EAAE,CAAK,IAAJF,EAAE,EAAMplK,EAAEslK,EAAE,GAAI,EAACtlK,EAAE,MAAOiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEolK,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEn7G,EAAE,EAAE,CAAC,EAAEs7G,GAAGt7G,EAAE,EAAE,EAAEs7G,GAAG1lK,GAAGylK,EAAE,KAAK,GAAGH,EAAE,GAAGC,EAAE73C,CAAC,CAAK,GAAJltH,EAAE,EAAK4zB,EAAE,CAAK,IAAJmxI,EAAE,EAAMplK,EAAEi0B,EAAE,GAAI,EAACj0B,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,EAAE,EAAEolK,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEn7G,EAAE,EAAE,CAAC,EAAE5pD,GAAG4pD,EAAE,EAAE,EAAE5pD,GAAGR,GAAGo0B,EAAE,GAAI,EAAC,GAAGkxI,EAAE,GAAGC,EAAE73C,CAAC,CAACntH,EAAEmD,EAAK,KAAK,IAAIgiK,EAAEllK,CAAC,EAAKD,EAAEI,EAAE,EAAE,IAAG6kK,GAAGjlK,EAAEI,EAAE,EAAE,GAAG,EAAE2kK,EAAE,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE,EAAEE,CAAC,EAAEF,EAAE,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE,EAAEE,CAAC,GAAE,CACve,SAAS8iF,IAAI3nP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA+B,IAA7BP,EAAE,IAAIqoI,IAAIpnE,IAAIjhE,GAAGwhH,KAAM+uD,MAAUnmH,GAAGjqD,EAAEuiK,GAAG/hK,EAAEikE,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI5zC,GAAI,IAAI8c,GAAK,IAAIqP,GAAG/iD,EAAER,CAAC,EAAG,CAAC,CAAC,GAAGiqD,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAK5pD,GAAGqyE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAElU,GAAGkU,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,CAAC,GAAGsjE,EAAE0pE,GAAIx5I,GAAIp9C,CAAC,EAAKktH,IAAGt5F,EAAEmiG,GAAG51H,EAAEH,CAAC,EAAE4zB,EAAE,KAAMkxI,EAAElxI,EAAE,GAAI,EAAC,EAAGA,EAAE,GAAI,EAAEkxI,EAAE,GAAGlxI,EAAE,GAAE,EAAG,EAAGA,EAAE,GAAI,EAAEkxI,EAAE,GAAGlxI,EAAE,GAAE,EAAG,EAAIkxI,EAAElxI,EAAE,KAAM7zB,EAAE82L,GAAI3pE,EAAE43C,CAAC,EAAK/kK,GAAG,QAAOmuD,GAAIg/D,EAAE,GAAGtyB,KAAMugD,GAAK,GAAEjtF,GAAIg/D,EAAE,EAAEguB,EAAG,IAAI+2B,GAAIpe,GAAIr0J,EAAEorH,EAAE,EAAEsC,EAAEntH,CAAC,EAAEmuD,GAAIg/D,EAAE,EAAEkuB,EAAG,GAAG62B,GAAIpe,GAAIr0J,EAAEgnH,EAAE,EAAE0G,EAAEntH,CAAC,EAAEmuD,GAAIg/D,EAAE,EAAEmuB,EAAG,GAAG42B,GAAIpe,GAAIr0J,EAAEujH,EAAE,EAAEmK,EAAEntH,CAAC,EAAEmuD,GAAIg/D,EAAE,EAAEouB,EAAG,GAAG22B,GAAIpe,GAAIr0J,EAAEqjH,EAAE,EAAEqK,EAAEntH,CAAC,IAAI,OAAOP,CAAC,CACxe,SAAS8pP,GAAInpP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAkC,GAAhChlK,EAAE6nK,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEp0B,EAAE6jD,EAAGljD,EAAE,EAAE,GAAG,EAAKmgK,GAAIngK,EAAE,EAAEyzB,CAAC,EAAE,CAAK,IAAJj0B,EAAE,EAAMmlK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAP53C,EAAE1tH,EAAEslK,CAAC,EAAK/kK,EAAE,GAAGmtH,EAAE,GAAE,CAAE,EAAE,CAAC,GAAGvtH,GAAGK,EAAS,OAAN2rD,KAAStI,EAAGzvB,EAAE,EAAE,EAAE,KAAas5F,GAAO63C,EAAE73C,EAAE,GAAI,EAAC63C,GAAG,MAAMn7G,GAAG8hB,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAUgrF,EAAEo4B,GAAIh9L,EAAEyzB,EAAEkxI,EAAEnlK,EAAEolK,CAAC,GAAUA,GAAG,EAAEplK,CAAC,CAAE,MAAMkmC,EAAI,IAAIwM,GAAI8uC,GAAInhF,EAAEohF,GAAIzhF,CAAC,CAAC,CAAC,KAAK,CAAK,IAAJA,EAAE,EAAMmlK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAE,CAAQ,GAAP53C,EAAE1tH,EAAEslK,CAAC,EAAK/kK,EAAE,GAAGmtH,EAAE,GAAE,CAAE,EAAS,OAANvhE,GAAK,EAAItI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAWs5F,GAAO63C,EAAE73C,EAAE,KAAK63C,GAAG,MAAMn7G,GAAG8hB,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAUgrF,EAAEo4B,GAAIh9L,EAAEyzB,EAAEkxI,EAAEnlK,EAAEolK,CAAC,GAAUA,GAAG,EAAEplK,CAAC,CAAC,OAAOi0B,EAAE,GAAE,CAAE,CAAC,CACxe,SAAS21N,GAAIppP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAgB,GAAdrlK,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAKmgK,GAAIngK,EAAE,EAAEyzB,CAAC,EAAG,OAAO+3B,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAG,IAAI60E,GAAI70E,EAAEzzB,CAAC,EAAE,IAAIi5D,GAAIxlC,EAAEzzB,CAAC,EAA6B,IAAtB4kK,EAAE6C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAE,EAAMk7G,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAE,CAAiB,GAAhBtlK,EAAEG,EAAEmlK,CAAC,EAAE53C,EAAE1tH,EAAE,GAAI,EAAIulK,EAAE,GAAG73C,CAAC,EAAE,CAAO,GAANvhE,KAAStI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAAE,OAAOp0B,EAAO,GAAG0tH,IAAIynG,GAAK,EAACC,KAAM1nG,GAAG2nG,GAAI,CAAwB,IAAvB90N,EAAE,IAAI4wE,GAAIU,GAAI7xE,EAAE,GAAI,CAAA,CAAC,EAAQ,EAAEslK,EAAE3kK,EAAE,GAAGX,EAAEG,EAAEmlK,CAAC,EAAE53C,EAAE1tH,EAAE,GAAI,GAAE0tH,GAAG0nG,IAAK1nG,GAAG2nG,KAAMl5J,GAAI57D,EAAEsxE,GAAI7xE,EAAE,GAAI,CAAA,CAAC,EAAE,OAAO6iF,GAAIh/B,EAAGzvB,EAAE,GAAI,EAAC,GAAG,EAAE7zB,EAAE,CAAC,CAAC,KAAM,QAAAilK,EAAExlK,EAAE,GAAI,EAACwlK,GAAG,MAAMhlK,GAAG0rE,EAAG93C,EAAE,EAAE,GAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAUirF,EAAEm4B,GAAIh9L,EAAEyzB,EAAEkxI,EAAEl7G,EAAEo7G,CAAC,GAAUA,CAAE,CAAC,EAAEp7G,CAAC,CAAC,OAAOh2B,EAAE,GAAE,CAAG,CACxe,SAASqwG,GAAI9jI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAiG,IAA/F1lK,EAAE,EAAE0tH,EAAE/sH,EAAE,EAAER,EAAE,EAAEiqD,EAAE,EAAE7pD,EAAE,EAAEmlK,EAAE,EAAED,EAAE,EAAKjlK,IAAGG,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEv7B,EAAI5oC,EAAE,EAAE,IAAIm1H,GAAIn1H,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,GAAE2kK,EAAE,EAAME,EAAE,IAAI3sI,EAAIl4B,EAAE,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAKxlK,EAAEulK,EAAE,GAAGD,EAAE,EAAE3kK,EAAE,EAAE,GAAGyzB,GAAG7zB,EAAE,IAAGP,EAAE,EAAE0tH,GAAGntH,EAAEI,EAAE,EAAER,EAAEuD,EAAK,KAAK,IAAIvD,EAAEulK,CAAC,EAAEt7G,GAAG7pD,EAAEI,EAAE,EAAEJ,EAAE,EAAEmlK,EAAE,EAAKllK,IAAG,EAAEilK,EAAEl8H,EAAI5oC,EAAE,EAAE,IAAIm1H,GAAIn1H,EAAE,EAAE+sH,EAAE/sH,EAAE,CAAC,CAAC,GAAE2kK,EAAE,GAAEI,GAAGH,EAAE,GAAGD,EAAE,EAAE3kK,EAAE,EAAE,GAAGJ,EAAEmD,EAAK,KAAK,IAAInD,EAAEglK,EAAE,CAAC,EAAE/kK,GAAG2nL,GAAItkI,EAAGo4B,GAAIt7E,EAAE,EAAE8kK,CAAC,EAAE,GAAG,EAAEF,CAAC,EAAEvlK,GAAGulK,EAAE,GAAGD,EAAE,EAAE3kK,EAAE,EAAE,GAAG,EAAE2kK,EAAE,OAAAnlK,EAAEuD,EAAK,KAAK,IAAIvD,EAAEulK,CAAC,EAAEt7G,GAAG7pD,EAAKC,IAAGG,EAAE,EAAER,EAAEQ,EAAE,EAAEypD,EAAEk9I,GAAI3mM,EAAE,CAAC,GAAS,IAAIohE,GAAIphE,EAAE,EAAEA,EAAE,EAAER,EAAEiqD,CAAC,CAAC,CACze,SAAS2qF,GAAIp0I,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC8jD,GAAK,EAAC,IAAIjkD,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAA8N,GAA5Nw2G,GAAIj2G,EAAE,KAAK,EAAEi2G,GAAIp2G,EAAE,MAAM,EAAEklK,EAAEv7C,GAAGxpH,CAAC,EAAEJ,EAAE4pH,GAAG3pH,CAAC,EAAEikG,IAAKihE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAEjhE,IAAKlkG,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAEklK,EAAEC,EAAE,EAAEh4C,EAAEntH,EAAE,EAAEkkG,GAAKghE,EAAE,EAAE,EAAMA,GAAG/3C,GAAGA,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAEttH,EAAEO,EAAE,OAAO4kK,EAAE/kK,EAAE,OAAU4zB,EAAE,GAAGg2B,EAAE,GAAGjqD,EAAE,GAAGi0B,EAAEj0B,EAAEC,GAAGgqD,EAAEjqD,EAAEolK,EAAG,MAAMl/H,EAAI,IAAI+B,EAAG,EAAE,GAAI,EAAAq9H,EAAE,EAAE,IAAOC,GAAGnlK,EAAmB,GAAhBilK,EAAE5U,GAAGjwJ,CAAC,EAAEX,EAAE4wJ,GAAGpwJ,CAAC,EAAKk6D,EAAG/5D,CAAC,IAAI+5D,EAAGl6D,CAAC,GAAG4zB,EAAEg2B,EAAQ,IAALh2B,GAAGj0B,EAAMmlK,EAAEl7G,EAAEjqD,EAAEmlK,KAAIl7G,GAAIoc,GAAGxmE,EAAEslK,EAAEE,EAAE,EAAEpxI,CAAC,CAAC,MAAQ,KAAIkxI,EAAEl7G,EAAEjqD,EAAEiqD,EAAEk7G,GAAI9+F,GAAGxmE,EAAEoqD,IAAIo7G,EAAEpxI,GAAG,CAAC,OAASj0B,EAAE,GAAG4iG,GAAIpiG,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,EAAI,CAAC,CAC3e,SAASg5O,IAAK,CAACA,GAAI9zO,EAAIg0O,IAAIx/H,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC4/B,GAAI,WAAWzvG,GAAI,WAAW,UAAU,WAAWA,GAAI,UAAUq2J,GAAI,UAAU,UAAU,UAAU,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,MAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,MAAU,UAAUr2J,GAAI,WAAW,WAAW,WAAW,QAAQ,CAAC,EAAEm0L,IAAIv/H,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAC3e,SAASquG,IAAIxiO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAIJ,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAMutH,EAAE,IAAI70F,EAAI8sG,GAAGv7E,EAAE,CAAC,CAAC,EAAEsjE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,GAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAK8mC,IAAIx0J,CAAC,IAAGQ,EAAEqjD,EAAG0lE,EAAIvpH,GAAG6qH,EAAK,EAAC0pC,GAAK,EAAC,GAAG,EAAK,CAAC/zJ,EAAE,GAAKA,EAAE,GAAa,IAAV4zB,EAAE5zB,EAAED,EAAEC,EAAE,EAAQD,GAAG4tO,IAAI5tO,EAAE,EAAEA,EAAE,EAAE,GAAM,EAAI,EAAE0uJ,GAAI76H,EAAE,CAAC,EAAE66H,GAAI1uJ,EAAE,CAAC,EAAE0uJ,GAAI1uJ,EAAE,CAAC,EAAE0uJ,GAAI1uJ,EAAE,CAAC,EAAEkqE,GAAIlqE,EAAE,EAAE6zB,EAAE,EAAE,CAAC,EAAEq2C,GAAIr2C,EAAE,EAAE,IAAI,EAAEukG,GAAIvkG,EAAE,EAAE,IAAI,EAAEukG,GAAIp4H,EAAE,EAAE,IAAI,EAAEo4H,GAAIp4H,EAAE,EAAE,IAAI,EAAEo4H,GAAIp4H,EAAE,EAAE,IAAI,EAAE+kK,EAAE,IAAI1zB,GAAIx9G,EAAE,EAAE7zB,EAAE,EAAE6zB,EAAE,EAAE7zB,EAAE,EAAEA,EAAE,CAAC,EAAE+kK,EAAE,EAAElxI,EAAE,EAAEkxI,EAAE,EAAElxI,EAAE,EAAEkxI,EAAE,EAAElxI,EAAE,EAAEkxI,EAAE,EAAE/kK,EAAE,EAAE+kK,EAAE,EAAElxI,EAAE,EAAEkxI,EAAE,EAAE/kK,EAAE,EAAEkjF,EAAIrvD,EAAE,EAAEmgI,GAAI+Q,CAAC,EAAE7hF,EAAIljF,EAAE,EAAEg0J,GAAI+Q,CAAC,EAAE/kK,EAAEA,EAAE,EAAE6zB,EAAEkxI,CAAM,CAC3e,SAASigF,GAAI5kP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAA4B,GAA1BA,EAAE7pE,EAAGzvB,EAAE,GAAG,EAAEsqM,GAAI/9N,CAAC,EAAE+9N,GAAIhxG,CAAC,EAAKA,EAAE,GAAG,KAAqB,IAAT/sH,EAAE,EAAE,GAAQA,EAAE,GAAG,KAAK,CAACA,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAGpH,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEqnB,GAAIrnB,EAAE,EAAE,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAE,EAAE,MAAM,EAAE,MAAM,CAA4C,IAA3C1tH,EAAE4kE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,OAAO+sH,EAAE,EAAE,OAAO,GAAG,CAAC,EAAMltH,EAAE,EAAE4pD,EAAE,EAAEjqD,EAAE,EAAEK,EAAEG,EAAE,EAAE,QAAQypD,EAAEsjE,EAAE,EAAE,QAAYltH,GAAGG,EAAE,EAAE,QAAQX,EAAEG,GAAG,EAAEutH,EAAE,EAAEtjE,GAAG,EAAEpqD,EAAEG,GAAG,EAAEutH,EAAE,EAAEtjE,GAAG,GAAUA,GAAGsjE,EAAE,EAAE,QAAQ1tH,EAAEG,GAAG,EAAEQ,EAAE,EAAEH,GAAG,EAAER,EAAEG,GAAG,EAAEQ,EAAE,EAAEH,GAAG,GAAUktH,EAAE,EAAEtjE,CAAC,EAAEzpD,EAAE,EAAEH,CAAC,GAAGktH,EAAE,EAAEtjE,CAAC,IAAIzpD,EAAE,EAAEH,CAAC,GAAGktH,EAAE,EAAEtjE,EAAE,CAAC,EAAEzpD,EAAE,EAAEH,EAAE,CAAC,GAAGR,EAAEG,GAAG,EAAEutH,EAAE,EAAEtjE,GAAG,EAAEpqD,EAAEG,GAAG,EAAEutH,EAAE,EAAEtjE,GAAG,IAAOpqD,EAAEG,GAAG,EAAEQ,EAAE,EAAEH,GAAG,EAAER,EAAEG,GAAG,EAAEQ,EAAE,EAAEH,GAAG,GAAGG,EAAE,EAAEX,EAAC,CACjf,SAASyjP,IAAI9iP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA8J,OAA5JjlK,EAAEozC,GAAImnC,GAAGwuC,EAAI5oH,GAAGkqH,EAAG,EAAGk5H,GAAG,CAAE,CAAC,EAAEz+E,EAAE1xH,GAAImnC,GAAGwuC,EAAIn1F,EAAE2vN,EAAG,CAAC,CAAC,EAAE35L,EAAEvG,EAAG0lE,EAAI5oH,EAAEowM,EAAG,EAAE,EAAE,EAAExwM,EAAEsjD,EAAG0lE,EAAIn1F,EAAE28K,EAAG,EAAE,EAAE,EAAE5wM,EAAE0jD,EAAG0lE,EAAI5oH,EAAEqwM,EAAG,EAAE,EAAE,EAAEzrC,EAAE1hH,EAAG0lE,EAAIn1F,EAAE48K,EAAG,EAAE,EAAE,EAAExrC,EAAE,CAAC,CAACp7G,GAAGA,GAAG7pD,EAAEklK,EAAE,CAAC,CAACtlK,GAAGA,GAAGolK,EAAK,CAAC/kK,GAAG,CAAC8kK,EAAU,IAAIt5E,GAAInoC,EAAGyhF,EAAI,IAAIzsG,EAAIl4B,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAGkjD,EAAGyhF,EAAI,IAAIzsG,EAAIzE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAEoxI,EAAEC,CAAC,GAAEzlK,GAAG,CAAC4zC,GAAImnC,GAAGwuC,EAAI5oH,EAAEojP,EAAG,CAAC,CAAC,GAAGnwM,GAAImnC,GAAGwuC,EAAI5oH,EAAEg+M,EAAG,CAAC,CAAC,KAAK,CAAC/qK,GAAImnC,GAAGwuC,EAAIn1F,EAAE2vN,EAAG,CAAC,CAAC,GAAGnwM,GAAImnC,GAAGwuC,EAAIn1F,EAAEuqL,EAAG,CAAC,CAAC,GAAGjxF,GAAG,CAAC95E,GAAImnC,GAAGwuC,EAAI5oH,EAAEojP,EAAG,CAAC,CAAC,GAAG,CAACnwM,GAAImnC,GAAGwuC,EAAI5oH,EAAEg+M,EAAG,CAAC,CAAC,KAAK,CAAC/qK,GAAImnC,GAAGwuC,EAAIn1F,EAAE2vN,EAAG,CAAC,CAAC,GAAG,CAACnwM,GAAImnC,GAAGwuC,EAAIn1F,EAAEuqL,EAAG,CAAC,CAAC,GAAU,IAAI3yH,GAAIw5E,GAAGxlK,GAAGylK,GAAG/3C,EAAE83C,EAAEC,CAAC,EAAC,CAClf,SAAS2wC,IAAIz1M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAwB,IAAtB6pD,EAAE,EAAE5pD,EAAE,EAAED,EAAE,IAAIgtC,GAAInZ,EAAE,EAAMkxI,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAK53C,EAAE,EAAE,EAAE,QAAQ,EAAGpxD,GAAI/7D,EAAEmtH,EAAEntH,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAO6pD,EAAE1mD,EAAK,KAAK,IAAI0mD,EAAEsjE,EAAE,CAAC,EAAEltH,GAAGktH,EAAE,GAAGt5F,EAAE,EAAEzzB,EAAE,EAAE,IAAG,EAAEyzB,EAA0D,IAAxD41J,IAAGrpL,EAAE,EAAEJ,CAAC,EAAEI,EAAE,EAAEH,EAAEG,EAAE,EAAEypD,EAAEzpD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEm3G,GAAIn3G,EAAE,EAAEm3G,GAAQ93G,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEW,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAER,EAAE,CAAC,EAAEQ,EAAE,GAAGR,EAAE,EAAEQ,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAOA,EAAE,IAAIA,EAAE,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,EAAE,QAAQ2mM,GAAI3mM,EAAE,CAAC,CAAC,CACnf,SAASwkO,IAAIxkO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,OAAIQ,EAAE,GAAG,GAAc6lL,GAAI7lL,CAAC,GAAEyzB,EAAE,IAAI+8C,GAAI64K,GAAG,EAAE5/L,EAAEzpD,EAAE,EAAMypD,EAA4I+R,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAGg2B,CAAC,EAAE,GAAG,GAArK,CAACzpD,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAMA,EAAE,EAAE,EAAE,IAAGR,GAAG,CAACQ,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIuhC,GAAG1iH,EAAE,EAAE,CAAC,GAAGkjD,EAAGwpG,EAAI1sJ,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAACR,GAAGg8D,GAAIA,IAAK/nC,EAAE,GAAG,KAAKA,GAAGj0B,CAAC,EAAE,GAAG,IAAsCK,GAAG,CAACG,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAG,EAAEA,EAAE,EAAE,GAAG,IAAI,CAACA,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAI4gC,GAAGxiH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,GAAG,KAAKH,EAAG4zB,EAAE,GAAG,KAASA,EAAE,GAAG,IAAO+nC,GAAI/nC,EAAE87C,GAAG,IAAIj6B,GAAG,IAAI6mB,GAAIn8D,EAAE,CAAC,CAAC,CAAC,EAAEH,IAAI4zB,EAAE,GAAG,KAAOA,EAAE,GAAGq9L,GAAIjxN,IAAI4zB,EAAE,GAAG,KAAO+nC,GAAI/nC,EAAE87C,GAAG,IAAIj6B,GAAG,IAAI6mB,GAAIn8D,EAAE,CAAC,CAAC,CAAC,EAAEH,IAAI4zB,EAAE,GAAG,KAAcA,EAAE,EAAC,CACnf,SAAS61N,GAAItpP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGI,EAAE,EAAE,CAAuK,GAAtK2kK,EAAE3kK,EAAE,EAAE,KAAKJ,EAAE,KAAQ+kK,GAAG,KAAMlxI,EAAE,GAAG,GAAGkxI,GAAO53C,EAAE/sH,EAAE,EAAE,GAAI,EAAI+sH,GAAG,OAAM1tH,EAAE4/D,GAAI8tD,EAAE73C,GAAI,EAAE,CAAC,EAAK71E,GAAG,IAAIO,EAAEmtH,EAAE,OAAO1tH,CAAC,EAAEo0B,EAAE,GAAG,GAAG+qC,GAAIuuD,GAAG,KAAK97C,IAAKngD,GAAIi8F,CAAC,EAAEA,GAAG,EAAE1tH,CAAC,GAAOo0B,EAAE,GAAG,GAAGs5F,IAAS/sH,EAAE,GAAGA,EAAE,EAAE,GAAG,EAAE,CAAiB,IAAhBR,EAAE,GAAKi0B,EAAE,GAAG,IAAQg2B,EAAE,IAAI0S,GAAIn8D,EAAE,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,MAAO5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEjqD,EAAGA,EAAE,GAAQi0B,EAAE,GAAGgiB,GAAO6zM,GAAIzpP,EAAE4zB,CAAC,EAAEA,EAAE,GAAG,GAAG,CAAC7zB,GAAG,OAAO6zB,EAAE,GAAG,GAAG7zB,EAAI,MAASI,EAAE,GAAG2kK,EAAE3kK,EAAE,EAAE,GAAG2kK,GAAG,OAAOlxI,EAAE,GAAG,GAAGkxI,KAAUlxI,EAAE,GAAG,IAAOzzB,EAAE,GAAGyzB,EAAE,GAAG,UAAU61N,GAAItpP,EAAE,EAAEyzB,CAAC,GAAUzzB,EAAE,IAAGyzB,EAAE,GAAG,YAAY61N,GAAItpP,EAAE,EAAEyzB,CAAC,GAAI,CACnf,SAASm0L,IAAI5nN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEsK,EAAEC,GAAEC,GAAEC,GAAEC,GAAmO,IAAjO1K,EAAEj/O,EAAE,EAAEupP,EAAE91N,EAAE,EAAE5zB,EAAEqgE,GAAI++K,EAAE,EAAEj/O,EAAE,CAAC,EAAEypD,EAAEyW,GAAIqpL,EAAE,EAAE91N,EAAE,CAAC,EAAE/zB,EAAEwjD,EAAGgpI,GAAIlsL,GAAGgyF,KAAMytC,KAAM,KAAK,KAAK,EAAE,EAAEiqH,GAAExmM,EAAGgpI,GAAIlsL,EAAE0/H,EAAG,EAAE,GAAE,EAAG,GAAE,EAAG,EAAE,EAAE3/H,EAAEmjD,EAAGgpI,GAAIz4J,EAAEgsG,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,EAAE,EAAEkqH,GAAEzmM,EAAGgpI,GAAIz4J,EAAEisG,EAAG,EAAE,KAAK,KAAK,EAAE,EAAEngI,EAAE2pI,GAAIxpI,EAAE,CAAC,EAAE8pP,GAAEtgH,GAAIwgH,GAAE,CAAC,EAAEvN,EAAEjzG,GAAInpI,EAAE,CAAC,EAAE0pP,GAAEvgH,GAAIygH,GAAE,CAAC,EAAEp/C,GAAIvqM,EAAEypD,EAAE8/L,CAAC,EAAMx8H,EAAEovH,EAAEt3E,EAAE,EAAEllK,EAAEotH,EAAE,OAAO83C,EAAEllK,EAAE,EAAEklK,EAAGrlK,EAAEutH,EAAE83C,CAAC,EAAE/6F,GAAItqE,EAAEE,CAAC,EAAE,IAAIilK,EAAE8kF,GAAE3kF,EAAE,EAAE7kK,EAAE0kK,EAAE,OAAOG,EAAE7kK,EAAE,EAAE6kK,EAAGtlK,EAAEmlK,EAAEG,CAAC,EAAEj7F,GAAIrqE,EAAEkqP,EAAC,EAAa,IAAXn/C,GAAI92K,EAAE5zB,EAAEo/O,CAAC,EAAMr/O,EAAEL,EAAEwlK,EAAE,EAAEqlD,EAAExqN,EAAE,OAAOmlK,EAAEqlD,EAAE,EAAErlD,EAAGvlK,EAAEI,EAAEmlK,CAAC,EAAEj7F,GAAItqE,EAAEO,CAAC,EAAE,IAAIV,EAAEmqP,GAAE5kF,EAAE,EAAEnlK,EAAEJ,EAAE,OAAOulK,EAAEnlK,EAAE,EAAEmlK,EAAGplK,EAAEH,EAAEulK,CAAC,EAAE/6F,GAAIrqE,EAAEmqP,EAAC,CAAE,CACpf,SAASC,IAAI5pP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAyC,GAAvCxlK,EAAEomL,GAAIh8H,CAAC,EAAEk7G,EAAE1xH,GAAImnC,GAAGwuC,EAAIn/D,GAAGn8B,KAAMu8N,IAAK,CAAA,CAAC,GAAMllF,GAAG1xH,GAAImnC,GAAGwuC,EAAI5oH,EAAE0iP,EAAG,CAAC,CAAC,IAAI,CAAC5gL,GAAI5e,EAAG0lE,EAAI5oH,EAAEm2J,EAAG,EAAE,EAAE,CAAC,EAAG32J,EAAE4qL,GAAI/qL,CAAC,EAAEO,EAAE2/O,GAAIv/O,EAAEH,EAAEA,IAAImyF,GAAK,EAAC0tC,IAAKlgI,EAAEukL,GAAIvkL,CAAC,CAAC,MAAwL,QAAjLI,EAAE,IAAI43M,GAAIr9J,GAAIv6C,EAAEI,CAAC,EAAKyzB,GAAGoxI,EAAEjlK,EAAE,EAAEilK,EAAE,EAAEpxI,EAAE,EAAEzzB,EAAE,EAAE,EAAE6kK,EAAE,EAAEpxI,EAAE,EAAEzzB,EAAE,EAAE,EAAE4mN,IAAI/hD,EAAE,EAAE,EAAE7kK,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE0mC,GAAI9mC,EAAE6gP,IAAI7gP,EAAEP,CAAC,CAAC,IAAOG,EAAE4qL,GAAI/qL,CAAC,EAAEqnC,GAAI9mC,EAAEC,IAAImyF,KAAM0tC,IAAKlgI,EAAEukL,GAAIvkL,CAAC,CAAC,GAAEutH,EAAE7pE,EAAG0lE,EAAIn/D,GAAGygE,EAAK,EAACu0D,GAAG,EAAG,EAAE,EAAE7Z,EAAEhlK,EAAE,EAASP,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,IAAGulK,IAAI9lE,IAAM+5C,KAAM+rB,GAAG30B,KAAMljB,EAAE,IAAI/8B,GAAK,EAAC81E,GAAK,EAAC,MAAM,IAAK,GAAE,IAAK,IAAGlB,IAAI9lE,EAAG,EAAGsE,KAAMwhE,GAAG3hE,KAAM8pB,EAAE,IAAI/8B,GAAK,EAAC81E,GAAK,CAAC,CAAE,OAAOlmK,CAAC,CACvf,SAAS2iN,GAAIviN,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,OAAG9hK,EAAK,KAAK,IAAI0wB,EAAE,EAAEA,EAAE,CAAC,EAAE40K,IAAKtlM,EAAK,KAAK,IAAIlD,EAAE,EAAEA,EAAE,CAAC,EAAEwoM,GAAY,GAAE5+I,EAAE+gL,IAAIxqO,EAAEyzB,EAAE,EAAE5zB,EAAE,CAAC,EAAEL,EAAEgrO,IAAIxqO,EAAEH,EAAE,EAAE4zB,EAAE,CAAC,EAAEp0B,EAAEoqD,GAAG,IAAIjqD,GAAG,GAAGutH,EAAE,EAAK1tH,GAAMoqD,GAAG,KAAI,IAAI8vE,IAAK/jC,GAAK,EAACo6B,IAAK/vH,EAAE4zB,EAAE,CAAC,EAAE,EAAEs5F,GAAKvtH,GAAG,KAAI,IAAI+5H,IAAK/jC,GAAG,EAAGo6B,IAAKn8F,EAAE5zB,EAAE,CAAC,EAAE,EAAEktH,KAAQ43C,EAAE57C,GAAIt1F,EAAE,EAAE5zB,EAAE,EAAEA,EAAE,CAAC,EAAE8kK,GAAG57C,GAAIlpH,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,CAAC,EAAE7zB,EAAEmpH,GAAIlpH,EAAE,EAAE4zB,EAAE,EAAEA,EAAE,CAAC,EAAE7zB,GAAGmpH,GAAIt1F,EAAE,EAAE5zB,EAAE,EAAEA,EAAE,CAAC,EAAE+kK,EAAEn7G,EAAE,GAAGk7G,EAAEE,EAAErlK,EAAE,GAAGI,EAAKglK,EAAEC,EAAG,IAAItrC,IAAK/jC,KAAMm6B,IAAKl8F,EAAE5zB,EAAEglK,EAAED,CAAC,EAAUA,EAAEC,EAAG,IAAItrC,IAAK/jC,GAAG,EAAGm6B,IAAK9vH,EAAE4zB,EAAEmxI,EAAEC,CAAC,EAAUD,EAAE,GAAGC,EAAE,IAAG,IAAItrC,IAAK/jC,KAAMm6B,IAAKl8F,EAAE5zB,EAAE,CAAC,EAAE,IAAI05H,GAAI5J,GAAI9vH,EAAE4zB,EAAE,CAAC,IAAUs5F,EAAC,CACvf,SAAS+8H,IAAI9pP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,IAAI53C,EAAE,IAAI+oD,GAAK,IAAIj/I,GAAI72B,EAAE,EAAE,CAAC,EAAG,CAAC,EAAE+sH,EAAE,GAAG,CAA2B,GAA1B1tH,EAAEk6J,GAAIxsC,CAAC,EAAEvtH,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAKo0B,GAAG,GAAG,GAAGj0B,EAAE,GAAE,IAAKu8F,GAAG,EAAGt6B,KAAMjiE,EAAE,GAAE,GAAIkiE,GAAK,iBAAkBliE,EAAE,OAAOu8F,GAAK,EAACz6B,KAAM9hE,EAAE,GAAI,GAAE+hE,GAAK,SAAmE,OAAzD9X,EAAEvG,EAAGA,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAEslK,EAAEzhH,EAAGA,EAAG7jD,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAEQ,EAAE8kK,EAAE,EAASnlK,EAAE,GAAE,EAAG,EAAC,CAAE,IAAK,GAAEiqD,EAAE,EAAE,EAAEzpD,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAE1mD,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAE5pD,CAAC,EAAE,MAAM,IAAK,GAAE4pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5pD,EAAE4pD,EAAE,EAAE,EAAE1mD,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAE5pD,CAAC,EAAE,MAAM,IAAK,GAAE4pD,EAAE,EAAE,EAAEzpD,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAE1mD,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAE5pD,CAAC,EAAE,MAAM,IAAK,GAAE4pD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5pD,EAAE4pD,EAAE,EAAE,EAAE1mD,EAAK,KAAK,IAAI,EAAE0mD,EAAE,EAAE,EAAE5pD,CAAC,CAAE,CAAC,CAAC,CAC1f,SAAS+iM,IAAI5iM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAuG,IAArG0kK,EAAE1gG,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEmxI,EAAE3gG,EAAGolF,GAAGjwC,EAAI,IAAI3lF,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE7zB,EAAEqkE,EAAGopD,GAAGC,GAAI,GAAG75F,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAMqxI,EAAE9kK,EAAE,EAAE+kK,EAAE,EAAEtlK,EAAEqlK,EAAE,OAAOC,EAAEtlK,EAAE,EAAEslK,EAAE,CAAY,IAAXF,EAAEC,EAAEC,CAAC,EAAE9kK,EAAE,EAAM8sH,EAAE,IAAI70F,EAAI2sI,EAAE,CAAC,EAAE93C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEtjE,EAAEwW,GAAIzgE,EAAE,CAAC,EAAE,EAAEmlK,EAAEl7G,CAAC,EAAE9pD,EAAEuzC,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,KAAMm0I,IAAK,CAAC,EAAEkD,EAAEl7G,CAAC,EAAE,GAAK7pD,EAAE6pD,CAAC,IAAI9pD,EAAE0pE,GAAIrpE,EAAE,EAAEJ,EAAE6pD,CAAC,EAAEjqD,CAAC,GAAGS,EAAE8C,EAAK,KAAK,IAAI9C,EAAET,EAAE,EAAE,EAAE,EAAEG,CAAC,EAAE,IAAIN,EAAE,IAAI64B,EAAI2sI,EAAE,CAAC,EAAExlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAES,EAAET,EAAE,EAAE,EAAEK,EAAEL,EAAE,EAAEK,EAAE,EAAE,EAAEI,EAAET,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEolK,EAAE1kG,GAAIrgE,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEL,EAAE,EAAEI,EAAEsgE,GAAIrgE,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEL,CAAE,CAAC,CAC1f,SAAS82M,IAAIt2M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,IAAIt7G,EAAE,IAAIonD,GAAGphC,GAAGgsI,GAAIhoL,CAAC,EAAE,EAAE,KAAK,IAAInwB,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAM8hB,EAAGmhF,GAAK,CAAC7sJ,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAI4gC,GAAG3iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAG,IAAGD,EAAE+1M,GAAIzyJ,EAAGwpG,GAAK,CAAC7sJ,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAI4gC,GAAG3iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAMu2N,GAAIv2N,CAAC,IAAGktH,EAAEt5F,EAAE,EAAEA,EAAE,EAAE,EAAEkxI,EAAElxI,EAAE,EAAEA,EAAE,EAAE,EAAEoxI,EAAEjlK,EAAE,EAAEA,EAAE,EAAE,EAAEklK,EAAEllK,EAAE,EAAEA,EAAE,EAAE,EAAEmlK,EAAE,IAAI3pH,GAAI2pH,EAAE,EAAEF,EAAE93C,EAAEg4C,EAAE,EAAED,EAAEH,EAAEtlK,EAAE,IAAI+1D,GAAI2vG,EAAE,EAAEA,EAAE,CAAC,EAAEurC,GAAIjxM,EAAEo0B,EAAE,EAAEA,EAAE,CAAC,EAAEsxI,EAAE,GAAG1lK,EAAE,EAAE0lK,EAAE,GAAG1lK,EAAE,EAAE0tH,EAAE83C,EAAEE,EAAE,EAAEJ,EAAEG,EAAEC,EAAE,EAAEH,EAAE,IAAIxvG,GAAI2vG,EAAE,EAAEA,EAAE,CAAC,EAAEurC,GAAI1rC,EAAEhlK,EAAE,EAAEA,EAAE,CAAC,EAAEmlK,EAAE,GAAGH,EAAE,EAAEG,EAAE,GAAGH,EAAE,EAAEC,EAAE93C,EAAEg4C,EAAE,EAAED,EAAEH,EAAEI,EAAE,EAAEvlK,EAAEmzN,GAAI9yN,EAAE,GAAK,EAAI,EAAEujE,GAAI5jE,EAAEutH,CAAC,EAAE1pD,GAAI7jE,EAAEmlK,CAAC,EAAE1hG,GAAIzjE,EAAEqlK,CAAC,EAAE3hG,GAAI1jE,EAAEslK,CAAC,EAAEwxC,IAAIt2M,EAAEJ,CAAC,GAAI,CAC3f,SAASmqP,IAAI/pP,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAI1iK,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIsrO,EAAG,EAAE,sBAAsB,EAAE,2JAA2J,EAAE,IAAIpsO,GAAG,CAAC,CAAC,EAAEssH,EAAIlqI,EAAEgqP,GAAIhV,GAAI1xI,GAAI47G,EAAG,CAAC,EAAEh1E,EAAIlqI,EAAEgqP,GAAI5U,IAAI9xI,GAAI67G,EAAG,CAAC,EAAEj1E,EAAIlqI,EAAEgqP,GAAI1U,IAAIhyI,GAAI+7G,EAAG,CAAC,EAAEn1E,EAAIlqI,EAAEgqP,GAAIzU,GAAIjyI,GAAIi8G,GAAG,CAAC,EAAEr1E,EAAIlqI,EAAEgqP,GAAIvU,GAAInyI,GAAIm8G,EAAG,CAAC,EAAEv1E,EAAIlqI,EAAEgqP,GAAIpY,GAAIjyB,GAAG,EAAEz1E,EAAIlqI,EAAEgqP,GAAInY,GAAI,CAAC,EAAE3nG,EAAIlqI,EAAEgqP,GAAI9U,GAAI5xI,GAAIw8G,GAAG,CAAC,EAAE51E,EAAIlqI,EAAEgqP,GAAIrU,IAAIryI,GAAIy8G,GAAG,CAAC,EAAE71E,EAAIlqI,EAAEgqP,GAAIpU,IAAItyI,GAAI28G,GAAG,CAAC,EAAE/1E,EAAIlqI,EAAEgqP,GAAIjP,IAAK3qK,KAAM,IAAO,CAC3f,SAAS65K,IAAIjqP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAoE,IAAlEl5C,GAAIn4F,EAAE,wBAAwB,CAAC,EAAEqxI,EAAE5hH,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAGw4E,GAAG,EAAG,GAAG,EAAE/9B,EAAE,EAAMtlK,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAoC,IAAnCoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE0tH,EAAEtjE,EAAE,EAAEsjE,EAAE,EAAE,EAAEltH,EAAE,KAAS+kK,EAAE,IAAI1sI,EAAIuxB,EAAE,CAAC,EAAEm7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAI/kK,IAAIktH,EAAE,GAAGzjD,GAAI1pE,EAAEC,EAAEilK,EAAE,CAAC,GAAG/3C,EAAE,GAAGntH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEC,EAAED,EAAE+kK,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAE53C,EAAE,CAAC,CAAC,CAAC,IAAIvtH,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAkD,IAAzCiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEutH,EAAEtjE,EAAE,EAAEo7G,GAAGF,EAAE53C,EAAE,GAAG,EAAEltH,EAAE,KAAS+kK,EAAE,IAAI1sI,EAAIuxB,EAAE,CAAC,EAAEm7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAI/kK,IAAIglK,GAAGv7F,GAAI1pE,EAAEC,EAAEilK,EAAE,CAAC,GAAGD,GAAGjlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEilK,EAAEA,GAAGjlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEC,EAAED,EAAGisH,GAAIp4F,CAAC,CAAC,CAC7f,SAASy2N,IAAIlqP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,GAAGr7G,EAAE,GAAI,GAAE,EAAG,MAAO,GAAoD,GAA9C7pD,GAAG4rD,GAAK,EAACtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,GAAEs5F,EAAEntH,EAAE6pD,EAAE,IAAI3O,GAAI2O,EAAE,GAAE,CAAE,EAAK02G,GAAIngK,EAAE,EAAEyzB,CAAC,GAAG,GAAGA,EAAE,GAAI,EAAE,IAAIoxI,EAAEp7G,EAAE,KAAKo7G,EAAE,GAAE,GAAKD,EAAEC,EAAE,GAAE,EAAO9vB,GAAI/0I,EAAEyzB,EAAEmxI,EAAEr5F,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,IAAGv6E,EAAEs2I,GAAIliH,EAAEmxI,CAAC,EAAE73C,EAAE,GAAG1tH,CAAC,WAAY,CAACO,EAAG,IAAIilK,EAAEp7G,EAAE,GAAI,EAACo7G,EAAE,GAAI,GAAGD,EAAEC,EAAE,GAAI,EAACxlK,EAAEs2I,GAAIliH,EAAEmxI,CAAC,EAAE73C,EAAE,GAAG1tH,CAAC,MAAQ,CAAiC,IAAhCylK,EAAE2C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEj0B,EAAE0jD,EAAGljD,EAAE,EAAE,GAAG,EAAM2kK,EAAE,EAAEA,EAAE3kK,EAAE,EAAE,EAAE2kK,EAAU,GAAPtlK,EAAEG,EAAEmlK,CAAC,EAAKG,EAAE,GAAGzlK,EAAE,IAAI,EAAG,MAAMqmC,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAG,GAAGz8K,EAAE,KAAK,EAAG,MAAM/jB,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAMtmO,IAAGP,EAAEs2I,GAAIliH,EAAEg2B,EAAE,GAAE,EAAG,GAAE,CAAE,EAAEsjE,EAAE,GAAG1tH,CAAC,EAAE,CAAC,OAAOwyK,GAAI7xK,EAAE00J,GAAI10J,EAAEyzB,EAAE5zB,CAAC,EAAEktH,CAAC,CAAC,CAC7f,SAASzH,IAAItlH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAqE,IAAnE85J,IAAI1lI,EAAE,EAAE,CAAC,EAAE4xB,GAAIozD,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIrc,GAAG,EAAE,IAAIC,GAAG,EAAMhY,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,OAAjBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAASG,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEK,EAAEqjD,EAAGo4B,GAAI97E,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAEg1B,GAAIh1B,EAAE0jD,EAAG+uB,GAAImgC,GAAIlvD,EAAGgwB,GAAG1zE,EAAE,EAAEK,CAAC,EAAE,EAAE,EAAE,KAAKqoD,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE3zB,GAAI/0B,EAAE0jD,EAAG+uB,GAAIigC,GAAIhvD,EAAGgwB,GAAG1zE,EAAE,EAAEK,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGqoD,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,IAAK,GAAEuB,EAAEu0I,GAAIx+L,CAAC,EAAEg1B,GAAIh1B,EAAE0jD,EAAG+uB,GAAImgC,GAAIlvD,EAAGgwB,GAAG1zE,EAAE,EAAEiqD,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAI,EAACvB,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE3zB,GAAI/0B,EAAE0jD,EAAG+uB,GAAIigC,GAAIhvD,EAAGgwB,GAAG1zE,EAAE,EAAEiqD,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAKvB,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,IAAK,GAAE0iK,IAAI5qN,EAAER,CAAC,EAAE,MAAM,IAAK,GAAEyqO,IAAIzqO,CAAC,EAAE,MAAM,IAAK,GAAE6qO,IAAIrqO,EAAER,CAAC,CAAE,CAACy5J,IAAIz5J,CAAC,CAAC,CAACQ,EAAE,EAAE,IAAI,CAC9f,SAASmqP,GAAInqP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAqD,OAAnDp7G,EAAEzpD,EAAE,EAAE,IAAIo1F,GAAK,EAACg7B,IAAKjZ,GAAIE,GAAIstD,EAAEi9E,IAAI5hP,EAAE,IAAIuzD,IAAI9/B,EAAE5zB,CAAC,CAAC,EAAK,CAAC8kK,EAAE,GAAGA,EAAE,GAAG9+D,GAAI7lG,EAAE,EAAE2kK,CAAC,EAASl7G,GAAUk7G,EAAE,GAAGnlK,EAAEmlK,EAAE,EAAE,EAAE/kK,EAAE+kK,EAAE,EAAE,EAAK9kK,GAAG+kK,EAAE5kK,EAAE,EAAE,IAAIg1F,GAAG,EAAG+6B,IAAKnwH,EAAEJ,EAAEH,EAAEW,EAAE,EAAE,GAAG+vH,GAAIvwH,EAAEI,EAAEmtH,EAAE/sH,EAAE,EAAE,EAAEX,EAAE,EAAE,CAAC,EAAEwlK,EAAE3xH,EAAIlzC,EAAE,EAAE,EAAE+sH,EAAE,CAAC,CAAC,EAAE75E,EAAIlzC,EAAE,EAAE,EAAEX,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE6zC,EAAIlzC,EAAE,EAAE,EAAE4kK,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAOA,EAAE5kK,EAAE,EAAE,IAAIg1F,GAAK,EAACg7B,IAAKpwH,EAAEJ,EAAEH,EAAEW,EAAE,EAAE,GAAGgwH,GAAIxwH,EAAEI,EAAEilK,EAAE3xH,EAAIlzC,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEX,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE6zC,EAAIlzC,EAAE,EAAE,EAAEX,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE6zC,EAAIlzC,EAAE,EAAE,EAAE4kK,EAAE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAE5kK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAER,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG4wE,KAAM,IAAMpwE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEJ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAYilK,GAASp7G,CAAC,CAC9f,SAASu+E,GAAIhoI,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG1E,GAAIngK,EAAE,EAAEyzB,CAAC,EAAG7zB,GAAG4rD,GAAK,EAACtI,EAAGzvB,EAAE,EAAE,EAAE,KAAK,IAAI60E,GAAI70E,EAAEzzB,CAAC,EAAE,IAAIi5D,GAAIxlC,EAAEzzB,CAAC,GAAGwpC,GAAI5pC,EAAE,EAAEA,EAAE,CAAC,EAAEirE,GAAIjrE,EAAEsjD,EAAGrjD,EAAE,EAAE,CAAC,MAAM,CAAiC,IAAhCglK,EAAE4C,GAAIznK,EAAE,EAAE,GAAE,EAAGyzB,CAAC,EAAEg2B,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAmB,GAAhBvtH,EAAEiqD,EAAEsjE,CAAC,EAAE1tH,EAAEG,EAAE,GAAE,EAAMqlK,EAAE,GAAGxlK,CAAC,EAAE,CAAC,GAAGA,IAAIm1N,KAAMC,KAAMp1N,GAAGq1N,GAAI,CAAiC,IAAhC9vD,EAAE65B,GAAIz+L,EAAEyzB,EAAE5zB,CAAC,EAAE8kK,EAAE53C,EAAE63C,EAAE6iD,GAAIznN,EAAE+sH,CAAC,EAAE,EAAEA,EAAQA,EAAE/sH,EAAE,GAAGR,EAAEiqD,EAAEsjE,CAAC,EAAE1tH,EAAEG,EAAE,KAAKH,GAAGo1N,IAAKp1N,GAAGq1N,GAAIjN,GAAIznN,EAAE+sH,CAAC,EAAE,EAAEA,EAAE63C,GAAG1hH,EAAGi6I,GAAIn9L,EAAE2kK,EAAEhvB,GAAIliH,EAAE5zB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM4+L,GAAIz+L,EAAEyzB,EAAE5zB,CAAC,EAAE4nN,GAAIznN,EAAE+sH,CAAC,EAAE7pE,EAAGi6I,GAAIn9L,EAAE+sH,GAAGvhE,GAAG,EAAGtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,EAACyvB,EAAGrjD,EAAE,EAAE,EAAE81I,GAAIliH,EAAE5zB,CAAC,EAAG,EAAC,EAAE,EAAE,MAAM,CAAE4+L,GAAIz+L,EAAEyzB,EAAE5zB,CAAC,GAAGqmE,GAAIlmE,GAAGwrD,KAAMtI,EAAGzvB,EAAE,EAAE,EAAE,GAAE,EAAGyvB,EAAGrjD,EAAE,EAAE,EAAE81I,GAAIliH,EAAE5zB,CAAC,EAAC,CAAE,CAAC,CAC9f,SAAS43G,IAAIz3G,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,OAAI3gH,GAAGrkD,EAAEG,EAAE,CAAC,IAAGA,EAAE,EAAEH,EAAER,EAAE,IAAIgK,IAAI0jH,EAAE7pE,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,EAAE,CAAC,EAAER,CAAC,EAAEovJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAG,EAAGg1C,IAAKD,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEx7H,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAKA,EAAE,EAAE,GAAKR,EAAEutH,EAAE,IAAIpkC,GAAK,EAACimD,GAAK,EAACnlF,EAAEsjE,EAAE,GAAG+hB,EAAG,EAAEtvI,GAAG,CAACiqD,IAAIzpD,EAAE,EAAE,IAAO,CAACR,GAAGiqD,IAAIzpD,EAAE,EAAE,IAAOR,EAAEutH,EAAE,GAAG8hB,EAAG,EAAEplF,EAAEsjE,EAAE,GAAGgiB,EAAG,EAAEvvI,GAAG,CAACiqD,IAAIzpD,EAAE,EAAE,IAAO,CAACR,GAAGiqD,IAAIzpD,EAAE,EAAE,KAAO6kK,EAAE3hH,EAAGljD,EAAE,EAAE,GAAGyzB,EAAE5zB,CAAC,EAAE,EAAE,EAAED,EAAEsjD,EAAG2hH,EAAE,EAAE,EAAE,EAAE,EAAED,EAAE1hH,EAAG2hH,EAAE,EAAE,EAAE,EAAE,EAAEF,EAAE,GAAM/kK,EAAE,EAAEI,EAAE,IAAI2kK,EAAE,IAAM3kK,EAAE,IAAI2kK,EAAE,IAAMC,EAAE,EAAE5kK,EAAE,IAAI2kK,EAAE,IAAM3kK,EAAE,IAAI2kK,EAAE,IAAaA,EAAEltD,IAAIz3G,EAAE6kK,EAAEhlK,CAAC,EAAEglK,CAAC,CAChgB,SAASulF,IAAIpqP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEA,EAAEQ,EAAE,EAAEy7E,GAAK,EAAIz7E,EAAE,EAAE,GAAE,GAAIkkD,GAAGlkD,EAAE,EAAE07E,GAAG,EAAGjoD,EAAEj0B,EAAE,GAAOi0B,EAAE85L,GAAIvtN,EAAE,CAAC,EAAKA,EAAE,EAAE,IAAI47E,GAAG,EAAGy2D,GAAG,GAAI,CAACryI,EAAE,EAAE,IAAI0+F,GAAK,EAACk/D,GAAG,IAAInqI,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE85L,GAAIrqK,EAAG25D,GAAI78G,EAAE,GAAG8+F,EAAG,EAAGsE,KAAM,GAAG,CAAC,CAAC,EAAE3vE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE85L,GAAIrqK,EAAG25D,GAAI78G,EAAE,EAAEijG,EAAG,EAAE,GAAG,CAAC,CAAC,GAAEpjG,EAAEoqK,IAAIjqK,CAAC,EAAIH,IAAI4zB,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE5zB,EAAE,CAAC,GAAMG,EAAE,EAAE,GAAGoyI,EAAG,IAAMpyI,EAAE,IAAI+9F,KAAMxa,KAAMvjF,EAAE,GAAGwjF,MAAK/vD,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEmzE,GAAI1jD,EAAG25D,GAAI78G,EAAE,GAAG8+F,EAAG,EAAGsE,GAAG,EAAG,GAAG,CAAC,CAAC,EAAE3vE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAEmzE,GAAI1jD,EAAG25D,GAAI78G,EAAE,EAAEijG,EAAG,EAAE,GAAG,CAAC,CAAC,IAAIhwD,GAAImnC,GAAGp6E,EAAE,EAAE,GAAI,EAAC,IAAIgwB,GAAK,EAACyqJ,GAAK,CAAA,CAAC,EAAGj7K,EAAE,EAAEuD,EAAK,KAAK,IAAIvD,EAAE,EAAEi0B,CAAC,EAAIj0B,EAAE,EAAEi0B,EAAGg2B,EAAEzpD,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAEA,EAAE,EAAEh2B,EAAEg6L,GAAIztN,EAAE,CAAC,CAAC,CACngB,SAASqqP,IAAIrqP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAE,IAAI6kK,EAAE,EAAEA,EAAErxI,EAAE,OAAOqxI,IAAI,CAAC,IAAIH,EAAE3kK,EAAE,GAAE,EAAG2kK,EAAE,GAAI,GAAGtlK,EAAE6jD,EAAGyhH,EAAE,GAAE,EAAG,GAAG,EAAEtlK,EAAE,GAAGylK,EAAErxI,CAAC,EAAE,IAAIsxI,EAAE,EAAEA,EAAEtxI,EAAEqxI,CAAC,EAAE,OAAOC,IAAI,CAAC,IAAInlK,EAAEI,EAAE,GAAE,EAAGJ,EAAE,GAAI,GAAGP,EAAE6jD,EAAGtjD,EAAE,GAAE,EAAG,GAAG,EAAEP,EAAE,GAAGylK,EAAEC,EAAEtxI,CAAC,EAAc,IAAZxzB,EAAEwzB,EAAEqxI,CAAC,EAAEC,CAAC,EAAE,EAAMtlK,EAAE,EAAEA,EAAEQ,EAAE,EAAE,OAAOR,IAAI,CAAC,IAAImlK,EAAE5kK,EAAE,KAAK4kK,EAAE,GAAE,GAAKvlK,EAAE6jD,EAAG0hH,EAAE,GAAI,EAAC,GAAG,EAAEvlK,EAAE,GAAGylK,EAAEC,EAAEtlK,EAAEg0B,CAAC,EAA0C,IAAxC9zB,GAAGk9D,GAAIp9D,EAAEQ,EAAE,EAAE,MAAM,EAAEijD,EAAGjjD,EAAE,EAAER,CAAC,EAAE,EAAE,GAAGI,EAAE,EAAML,EAAE,IAAImhJ,GAAIhhJ,EAAE,CAAC,EAAEuoE,GAAI1oE,EAAE,CAAC,GAAG0oE,GAAI1oE,EAAE,CAAC,GAAwC,IAApCiqD,EAAEvG,EAAGglB,GAAI1oE,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAEmlI,EAAInlI,EAAE,CAAC,EAAE,EAAE,EAAMqlK,EAAE7kK,EAAE,KAAK6kK,EAAE,GAAE,GAAKxlK,EAAE6jD,EAAG2hH,EAAE,KAAK,GAAG,EAAExlK,EAAE,GAAGylK,EAAEC,EAAEtlK,EAAEI,IAAI4pD,EAAEh2B,CAAC,CAAG,CAAC,CAAC,CAAC,IAAIs5F,EAAE/sH,EAAE,KAAK+sH,EAAE,GAAE,GAAK1tH,EAAE6jD,EAAG6pE,EAAE,KAAK,GAAG,EAAE1tH,EAAE,GAAE,CAAG,CACrgB,SAASirP,IAAItqP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAiR,IAA/QI,EAAE,EAAEkzC,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAK,EAAC0/J,GAAG,CAAE,CAAC,EAAEhtL,EAAE,EAAEkzC,EAAImnC,EAAGuuC,EAAIn1F,EAAEw5J,EAAG,CAAC,CAAC,EAAEjtL,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,EAAE82N,EAAG,EAAE,GAAG,EAAEvqP,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,EAAE+2N,EAAG,EAAE,GAAG,EAAE1oD,IAAIruK,CAAC,EAAEkxI,EAAEzhH,EAAGm0F,GAAI1zB,GAAIA,GAAI4tC,GAAIA,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIxlB,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAE,IAAIC,GAAG,EAAEs8I,GAAI,IAAIplJ,GAAI,IAAID,GAAI,IAAIgB,GAAI6yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,GAAG,EAAG+0C,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,EAAMh8H,EAAEmlK,EAAE,GAAI,EAACnlK,EAAE,GAAI,GAAGK,EAAEqjD,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEutH,EAAE7pE,EAAG0lE,EAAI/oH,GAAGqqH,IAAMugI,GAAK,EAAC,EAAE,EAAE19H,EAAE,GAAG,IAAI/wF,IAAIh8B,CAAC,CAAC,EAAE8iF,EAAIjjF,EAAE4qP,GAAI,IAAI,EAAE,IAAIhhM,EAAEk7G,EAAE,GAAI,EAACl7G,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGuG,EAAE,GAAI,EAAC,EAAE,EAAE7pD,EAAEsjD,EAAG0lE,EAAI/oH,GAAGqqH,EAAG,EAAGwgI,MAAM,EAAE,EAAErrP,EAAE6jD,EAAG0lE,EAAI/oH,EAAE8qP,EAAG,EAAE,EAAE,EAAEC,IAAI5qP,EAAEX,EAAEO,CAAC,EAAEkjF,EAAIjjF,EAAE8qP,GAAI,IAAI,CAAE,CACvgB,SAASpqI,IAAIvgH,EAAE,CAACA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,GAAMA,EAAE,GAAG,EAAK,CACxgB,SAAS6qP,GAAI7qP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAA6P,MAAxP,EAAA5kK,EAAE,IAAI2qF,GAAK,EAAC0hC,KAAsBrsH,EAAE,EAAE,EAAE,QAAQ,IAAgBX,EAAE6jD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG6oI,KAAM,EAAE,EAAK92J,IAAI0+F,GAAG,EAAGva,OAAmBhkF,GAAGoyF,GAAG,GAAK5xF,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAK,EAACA,GAAG,EAAGkhC,KAAU,GAAGwjF,EAAG,EAAGtlI,EAAEvG,EAAG0lE,EAAI5oH,EAAE+uL,EAAG,EAAE,GAAG,EAAItlI,EAAEvG,EAAG0lE,EAAI3K,GAAIj+G,CAAC,EAAEgvL,EAAG,EAAE,GAAG,EAAGvlI,GAAMjqD,GAAG8xI,KAAqB,EAAE9xI,GAAGoiE,IAAKpiE,GAAGqiE,MAAMkrD,EAAE75E,EAAImnC,EAAGytG,GAAI9nL,EAAE+sL,EAAG,CAAC,CAAC,EAAEt5J,EAAEyvB,EAAG0lE,EAAI5oH,EAAE2+O,EAAG,EAAE,GAAG,EAAE,CAAClrN,IAAIA,EAAE,IAAIosD,GAAIktC,EAAEA,EAAEA,EAAEA,CAAC,GAAG63C,EAAE4b,GAAIxgL,GAAG8+F,EAAK,EAACmE,GAAG,EAAGrjG,EAAE6zB,EAAE,EAAEA,EAAE,GAAGmxI,EAAE,GAAI,EAAC,GAAG73C,EAAKntH,EAAEI,EAAE,EAAE,IAAgBH,EAAE2gL,GAAIxgL,EAAEojG,EAAG,EAAEuhE,EAAElxI,EAAE,EAAEA,EAAE,GAAG5zB,EAAE,GAAE,EAAG,GAAGktH,EAAK43C,EAAE3kK,EAAE,EAAE,IAA4B,CACzgB,SAAS0pO,GAAI1pO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAc,GAAZotH,EAAE/sH,EAAE,EAAEJ,EAAE6zB,EAAE,EAAKs5F,GAAG,EAAG,OAAOt5F,EAAE,GAAG7zB,GAAG,EAAG,OAAOI,EAAc,GAAZX,EAAEW,EAAE,EAAE2kK,EAAElxI,EAAE,EAAKp0B,EAAEslK,GAAG,EAAuC,OAApC9kK,EAAEg7H,GAAI76H,EAAE,EAAE,CAAC,EAAEy3K,EAAG,EAAEhuH,EAAEoxE,GAAIpnG,EAAE,EAAE,CAAC,EAAEgkJ,EAAG,EAAK1qD,GAAGntH,GAAGilK,EAAE95D,GAAIlrG,EAAE4pD,CAAC,EAAE9pD,EAAEstG,GAAI43D,CAAC,EAAEplK,EAAEwtG,GAAIyE,GAAImzD,EAAE,EAAE,CAAC,EAASplK,GAAG,EAAE,IAAIwiJ,GAAIl1B,EAAEptH,CAAC,EAAE,IAAIw1G,GAAI4X,EAAE,EAAE7T,EAAG9hE,EAAGytE,GAAG,CAAC,EAAEsP,GAAI,GAAG,GAAG,CAACx0H,EAAEF,CAAC,CAAC,CAAC,GAASyyJ,GAAInlC,EAAE,EAAEm5D,GAAIz8H,EAAE5pD,CAAC,EAAEqmL,GAAIrmL,EAAE4pD,CAAC,CAAC,EAAO,GAAGsjE,GAAGntH,EAAGmlK,EAAEh4C,EAAE+3C,EAAEzlK,GAAGslK,EAAExhB,GAAInjJ,EAAE,EAAEX,EAAEo0B,EAAE,EAAEkxI,CAAC,EAAExhB,GAAI1vH,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAEX,CAAC,MAAM,CAAgC,GAA/BG,EAAEH,GAAGslK,EAAEtlK,EAAEslK,EAAE,EAAE,GAAG6S,GAAIx3K,EAAE,EAAEyzB,EAAE,EAAEp0B,CAAC,EAAKG,GAAG,EAAG,OAAOqkE,KAAMovF,GAAOzzJ,GAAG,GAAGulK,EAAEh4C,EAAE+3C,EAAE3kB,GAAIngJ,EAAE,EAAEX,EAAEo0B,EAAE,EAAEkxI,CAAC,IAAOI,EAAEnlK,EAAEklK,EAAE3kB,GAAI1sH,EAAE,EAAEkxI,EAAE3kK,EAAE,EAAEX,CAAC,EAAE,CAAC,OAAAulK,EAAE,IAAIzvD,GAAI4vD,EAAED,EAAE,OAAOA,CAAC,EAAEp8B,GAAIk8B,CAAC,EAASA,CAAC,CAC3gB,SAASkmF,GAAI9qP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,CAAC,IAAI43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,OAAAqlK,EAAE7xH,GAAImnC,GAAGwuC,EAAIn1F,GAAGnG,GAAG,EAAGy9N,IAAG,CAAE,CAAC,EAAEhmF,EAAE,KAAK1lK,IAAI2yF,GAAG,EAAGytC,KAAMh2E,EAAE,EAAE,GAAG5pD,EAAGklK,EAAEt7G,EAAE,EAAGpqD,GAAGqgI,IAAKj2E,EAAE,EAAE,GAAG5pD,IAAIklK,EAAEt7G,EAAE,GAAGm7G,EAAE73C,EAAK,CAAC63C,GAAG,CAACE,GAAKC,GAAGF,GAAG/lE,IAAM85C,IAAKmsB,EAAGF,EAAEE,EAAE,EAAGjjG,GAAI5e,EAAG0lE,EAAI/oH,EAAEs2J,EAAG,EAAE,EAAE,CAAC,IAAI0O,EAAExlK,GAAGogI,GAAIx8B,GAAIG,IAAKxjG,EAAEorP,IAAIhrP,EAAEyzB,EAAE5zB,EAAER,EAAEwlK,EAAEp7G,CAAC,EAAEk7G,EAAE9lB,IAAK5gC,GAAIp+G,CAAC,EAAE4pD,EAAG,EAAIpqD,GAAGogI,IAAK51D,GAAI86F,EAAEzhH,EAAGo4B,GAAI17E,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEkqE,GAAI66F,EAAEnlK,CAAC,IAAOqqE,GAAI86F,EAAEnlK,CAAC,EAAEsqE,GAAI66F,EAAEzhH,EAAGo4B,GAAI17E,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAEglK,EAAE,IAAIwd,IAAI34H,EAAEk7G,EAAE/kK,EAAEsjD,EAAG0lE,EAAIhpH,GAAGsqH,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAE5uJ,EAAE,CAAC0lK,CAAC,IAAOn8H,EAAIg8H,EAAE,EAAEn7G,CAAC,EAAEhqD,EAAEsD,EAAK,KAAK,IAAImwC,EAAImnC,EAAGuuC,EAAIg8C,EAAE,EAAExP,EAAG,CAAC,CAAC,EAAEliH,EAAImnC,EAAGuuC,EAAIn/D,EAAE2rG,EAAG,CAAC,CAAC,CAAC,EAAEtyE,EAAI8hF,EAAE,EAAExP,GAAI31J,CAAC,GAAE+2E,GAAGx2E,EAAE,EAAEypD,EAAE,IAAIwhC,GAAI25E,EAAE,EAAEnxI,EAAEp0B,CAAC,CAAC,EAASulK,CAAC,CAC3gB,SAASjsF,GAAI34E,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAuC,GAArCD,EAAE,KAAO7kK,EAAE,IAAI6kK,EAAE3hH,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,GAAM,CAACoxI,EAAE,CAAkB,GAAjBxlK,EAAEW,EAAE,EAAE,GAAI,EAAC8kK,EAAEzlK,EAAE,EAAK,CAACW,EAAE,GAAG0jD,GAAI1jD,EAAE,CAAC,GAAG8kK,EAAE,CAA0C,IAAzCllK,EAAE,IAAImlC,GAAM/kC,EAAE,GAAG28D,GAAG/8D,EAAEI,EAAE,CAAC,EAAE4kK,EAAEhlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAM+kK,EAAEC,EAAED,EAAEG,EAAE,EAAEH,EAAGl7G,EAAEvG,EAAGwpG,EAAIrtJ,EAAEslK,CAAC,EAAE,GAAG,EAAEnlK,EAAEshL,GAAI9gL,EAAE,EAAEypD,CAAC,EAAE,GAAI,EAAC5pD,EAAEqjD,EAAG1jD,GAAG,KAAKihH,GAAI7gH,EAAE,EAAE,KAAK6pD,CAAC,EAAEguE,GAAI73H,EAAE,EAAEJ,EAAEiqD,CAAC,EAAE,GAAG,EAAI5pD,GAAGA,GAAG4pD,IAAIjqD,GAAG,KAAKihH,GAAI7gH,EAAE,EAAE,KAAKC,CAAC,EAAE43H,GAAI73H,EAAE,EAAEJ,EAAEK,CAAC,GAAG,GAAGD,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGklK,EAAG,IAAI/3C,EAAE,EAAEA,EAAE63C,EAAE,EAAE73C,EAAGtjE,EAAEvG,EAAGwpG,EAAIrtJ,EAAE0tH,CAAC,EAAE,GAAG,EAAEvtH,EAAEshL,GAAI9gL,EAAE,EAAEypD,CAAC,EAAE,GAAI,EAAC5pD,EAAEqjD,EAAG1jD,GAAG,KAAKihH,GAAI7gH,EAAE,EAAE,KAAK6pD,CAAC,EAAEguE,GAAI73H,EAAE,EAAEJ,EAAEiqD,CAAC,EAAE,GAAG,EAAI5pD,GAAGA,GAAG4pD,IAAIjqD,GAAG,KAAKihH,GAAI7gH,EAAE,EAAE,KAAKC,CAAC,EAAE43H,GAAI73H,EAAE,EAAEJ,EAAEK,CAAC,GAAIG,EAAE,EAAEJ,CAAC,CAACilK,EAAE3hH,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,CAAC,CAAC,OAAOoxI,CAAC,CAC3gB,SAASmmF,IAAIhrP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,OAAA/3C,EAAE,KAAK63C,EAAEn7G,IAAIuoC,GAAK,EAACytC,IAAKpgI,EAAE,EAAEA,EAAE,EAAEO,EAAE6lL,GAAIhyJ,CAAC,EAAKmxI,EAAE,GAAG/kK,GAAGktH,EAAE7pE,EAAGgwD,GAAIlzG,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAM73C,IAAGA,EAAEk+H,GAAIrmF,EAAE1hH,EAAG0lE,EAAI/oH,GAAGytB,GAAG,EAAG6oI,GAAG,EAAG,EAAE,EAAE32J,EAAEs8O,IAAIl3E,CAAC,EAAE,KAAKA,EAAE,EAAEA,EAAE,EAAEhlK,EAAE6zB,CAAC,EAAEqvD,EAAIiqC,GAAG7C,EAAG,EAAG+jC,IAAK2W,CAAC,EAAEprG,GAAIx5D,EAAE,EAAE4kK,EAAE73C,CAAC,KAAQA,EAAEk+H,IAAKpmF,EAAE,IAAIv7J,GAAIw7J,EAAE5xH,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,KAAMm0I,GAAK,CAAA,CAAC,EAAE,EAAEqQ,GAAIjN,EAAE4yC,GAAI3yC,CAAC,EAAED,GAAG3hH,EAAG0lE,EAAI/oH,EAAEs2J,EAAG,EAAE,EAAE,EAAE32J,EAAEiqD,GAAGg2E,GAAI,GAAG,EAAE,KAAK,IAAIrkF,GAAI,IAAIga,GAAI,EAAE,CAAC,EAAEx1D,EAAE6zB,CAAC,EAAEkxI,EAAE4yC,IAAIxqF,EAAEltH,EAAE4pD,CAAC,EAAEq5B,EAAIiqC,GAAG7C,EAAG,EAAG+jC,IAAK0W,CAAC,EAAEnrG,GAAIx5D,EAAE,EAAE2kK,EAAE53C,CAAC,GAAE7pE,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACu0D,GAAK,EAAC,EAAE,EAAE,IAAIzuF,GAAK,EAAC01E,GAAK,EAAC5jG,GAAI5e,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAG6oI,GAAG,EAAG,EAAE,CAAC,EAAErzE,EAAIrvD,EAAE0iI,IAAKp4D,GAAG,EAAGykD,GAAG,EAAG1/D,EAAIrvD,EAAE0iI,IAAKp4D,KAAMh8B,KAAagrD,CAAC,CAC5gB,SAASm+H,IAAIlrP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAEx+F,GAAIn4F,EAAE,0BAA0B,CAAC,EAAEmxI,EAAE1xH,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAG4/J,GAAG,CAAE,CAAC,EAAErtL,EAAEqzC,EAAImnC,EAAGuuC,EAAI5oH,EAAEgtL,EAAG,CAAC,CAAC,EAAEvjI,EAAEvW,EAAImnC,EAAGuuC,EAAI5oH,EAAEitL,EAAG,CAAC,CAAC,EAAEloB,EAAE,IAAIzrD,GAAI,EAAEz5G,CAAC,EAAEuqN,EAAE,EAAEr9F,EAAE,IAAI0e,GAAIzrI,EAAE,EAAE,CAAC,EAAE2kK,EAAE,KAAKE,EAAE,KAAKjlK,EAAE,KAAKklK,EAAE,KAAK,GAAGD,EAAE93C,EAAE,EAAEA,EAAE,EAAE,GAAE,GAAI76C,GAAI66C,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE7pE,EAAG6pE,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK+3C,EAAGD,EAAOA,EAAE,EAAP,KAAYF,IAAGwmF,GAAIxmF,EAAEylD,CAAC,EAAEA,GAAGzlD,EAAE,EAAE,GAAE1kK,EAAG0kK,EAAIylD,EAAE3gK,EAAJ2gK,EAAMzqN,EAAEyrP,GAAIrmF,EAAE/kK,EAAEJ,EAAEklK,EAAE7kK,CAAC,EAAET,EAAE,CAACmlK,GAAGpqG,GAAG36D,GAAGu4D,GAAK,EAAC+zK,GAAK,EAAC7sO,EAAE,CAACwlK,GAAGtqG,GAAGuqG,GAAG3sG,GAAK,EAAC+zK,GAAG,EAAMvsO,EAAE,GAAGF,GAAGE,EAAE,GAAGE,EAAI8kK,IAAIllK,GAAGgqD,GAAKo7G,IAAIplK,GAAGgqD,GAAGhqD,EAAEmlK,GAAG,CAACplK,GAAG,CAACH,IAAII,EAAEmlK,GAAGwlD,GAAG3qN,GAAO,CAACD,GAAG,CAACH,IAAI+qN,GAAGxlD,GAAGD,EAAEE,EAAEjlK,EAAEklK,QAAQD,GAAG7kK,EAAE,EAAE,EAAEoqN,EAAEv+F,GAAIp4F,CAAC,CAAC,CAC5gB,SAAS+pJ,IAAK,CAACA,GAAI94K,EAAI,IAAI1E,EAAEgrN,IAAI,IAAI99K,IAAIm+M,IAAIpnL,EAAG2sG,GAAGpmG,EAAI,EAAE,EAAE,EAAE,CAAC,EAAE8gL,IAAIzmH,GAAIyrC,GAAI,GAAG,EAAE,EAAEA,GAAI,EAAE,EAAE,CAAC,EAAEi7E,IAAI1mH,GAAIyrC,GAAI,GAAG,GAAG,EAAEA,GAAI,GAAG,EAAE,CAAC,EAAEk7E,IAAIl7E,GAAI,GAAG,EAAE,EAAEm7E,IAAI5mH,GAAIymH,IAAI,CAAC,EAAEI,IAAI7mH,GAAI0mH,IAAIC,GAAG,EAAEG,IAAI9mH,GAAIA,GAAI,EAAEyrC,GAAI,EAAE,CAAC,CAAC,EAAEA,GAAI,GAAG,EAAE,CAAC,EAAEs7E,IAAI/mH,GAAIA,GAAI2mH,IAAIl7E,GAAI,GAAG,EAAE,CAAC,EAAEA,GAAI,GAAG,GAAG,CAAC,EAAEu7E,IAAIhnH,GAAI4mH,IAAIxyD,GAAI,WAAW,CAAC,EAAE6yD,IAAIjnH,GAAI6mH,IAAIr9D,GAAI,WAAW,CAAC,EAAE4K,GAAI8yD,GAAG,EAAE19D,GAAI09D,GAAG,EAAElnH,GAAIgnH,IAAI5yD,GAAI,UAAU,CAAC,EAAEp0D,GAAIinH,IAAIz9D,GAAI,UAAU,CAAC,EAAE29D,IAAI/yD,GAAI,MAAM,EAAEgzD,IAAI59D,GAAI,MAAM,EAAE1pF,GAAIs0F,GAAI,KAAK,EAAEr0F,GAAIypF,GAAI,KAAK,EAAEruL,EAAE,IAAI4pC,GAAI5pC,EAAE,EAAE,GAAG,MAAMA,CAAC,EAAEA,EAAE,EAAE,GAAG,MAAMA,CAAC,EAAEA,EAAE,EAAE,GAAG,UAAUA,CAAC,EAAEumH,IAAKl8C,GAAG,EAAG,IAAIh0B,GAAIr2C,CAAC,EAAE,CAC5gB,SAASuzO,IAAIvzO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA2C,GAAzChiF,EAAIrvD,GAAG4vJ,KAAMo0D,IAAK,CAAC,EAAE73O,EAAEsjD,EAAG0lE,EAAIn1F,EAAE+9M,EAAG,EAAE,EAAE,EAAK/9M,EAAE,EAAE,GAAG,EAAM7zB,GAAGilK,EAAE3xH,EAAImnC,EAAGuuC,EAAIhpH,EAAE43O,EAAG,CAAC,CAAC,EAAEx3O,EAAE,EAAE+5I,GAAIn6I,EAAE6zB,CAAC,EAAEqvD,EAAIrvD,EAAE+jN,GAAI3yE,CAAC,GAAO/hF,EAAIrvD,EAAE+jN,GAAI,CAAC,MAAO,CAAC,IAAI/tL,GAAGpqD,EAAEi6J,GAAK,IAAIr5H,GAAIxM,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAIyM,GAAI7gC,CAAC,GAAGm/C,GAAIiL,EAAE,CAAC,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE8pL,IAAIvzO,EAAEH,CAAC,EAAE8kK,EAAEzhH,EAAGkoB,IAAI2hD,EAAEusC,GAAK,IAAIr5H,GAAIxM,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAIyM,GAAI6sF,CAAC,EAAG,EAAC,EAAE,EAAE+3C,EAAE5hH,EAAGmuB,KAAI7xE,EAAE85J,GAAK,IAAIr5H,GAAIxM,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAIyM,GAAI1gC,CAAC,EAAG,EAAC,EAAE,EAAEolK,GAAG1xH,EAAImnC,EAAGuuC,EAAIk8C,EAAE0yE,EAAG,CAAC,CAAC,EAAEtkM,EAAImnC,EAAGuuC,EAAI+7C,EAAE6yE,EAAG,CAAC,CAAC,GAAG,EAAK53O,GAAGilK,EAAE3xH,EAAImnC,EAAGuuC,EAAIhpH,EAAE43O,EAAG,CAAC,CAAC,EAAEx3O,EAAE,EAAE+5I,GAAIn6I,EAAE6zB,CAAC,EAAEqvD,EAAIrvD,EAAE+jN,GAAI3yE,CAAC,EAAE/hF,EAAIrvD,EAAEgkN,GAAIvkM,EAAImnC,EAAGuuC,EAAIn1F,EAAE+jN,EAAG,CAAC,CAAC,EAAE5yE,CAAC,EAAEsnF,IAAIlsP,EAAEyzB,CAAC,GAAOqvD,EAAIrvD,EAAE+jN,GAAI5yE,CAAC,CAAE,CAAC,CAC7gB,SAASunF,GAAInsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEglK,EAAE,EAAEhlK,EAAE,EAAEC,EAAEo0H,GAAIh0H,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEX,EAAEW,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAEypD,EAAEzpD,EAAE,EAAER,EAAEQ,EAAE,EAAE,EAAE,CAAK,IAAJP,EAAE,EAAMolK,EAAE,IAAI3sI,EAAIl4B,EAAE,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEE,EAAEqnF,IAAIpsP,EAAE4kK,CAAC,EAAE/kK,EAAE,IAAMG,EAAE,IAAIoyF,GAAK,EAACimE,KAAMr4J,EAAE,GAAGs4J,MAAOz4J,EAAEozC,GAAImnC,GAAG2qF,EAAE,CAAC,CAAC,GAAM7hH,EAAG6hH,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGllK,GAAG,EAAEJ,EAAEG,EAAEo0H,GAAIh0H,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEA,EAAE,EAAEA,EAAE,EAAEkjD,EAAG6hH,EAAE,EAAE,EAAE,EAAE,EAAEplK,GAAGN,EAAEW,EAAE,EAAEX,EAAEW,EAAE,EAAEkjD,EAAG6hH,EAAE,EAAE,EAAE,EAAE,EAAEh4C,EAAE/sH,EAAE,EAAEypD,EAAEu7E,GAAGhlI,EAAE,CAAC,EAAER,EAAEwlI,GAAGhlI,EAAE,CAAC,IAAOA,EAAE,EAAEg0H,GAAIp0H,EAAEA,EAAE,MAAM,EAAEI,EAAE,EAAEX,EAAEW,EAAE,GAAGw1C,GAAGiU,CAAC,EAAEA,EAAE,IAAI07B,GAAI17B,CAAC,EAAE83C,GAAG,IAAIrpE,EAAIuxB,CAAC,CAAC,GAAGzpD,EAAE,GAAGw1C,GAAGh2C,CAAC,EAAEA,EAAE,IAAI2lF,GAAI3lF,CAAC,EAAE+hG,GAAG,IAAIrpE,EAAI14B,CAAC,CAAC,GAAGQ,EAAE,EAAE+sH,GAAG,EAAE43C,EAAEG,EAAErlK,GAAG,GAAGwzC,GAAImnC,GAAG3mD,EAAE,GAAG,IAAIkjC,GAAI42E,EAAI5tI,CAAC,EAAE4tI,EAAIo3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOG,EAAE,CAC/gB,SAASunF,IAAIrsP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEsK,EAAEC,GAAEC,GAAEC,GAA4H,OAA1H38H,EAAE/sH,EAAE,EAAE+kK,EAAEtxI,EAAE,EAAEkxI,EAAE53C,IAAIn0B,KAAMgkD,KAAM7vB,GAAG+vB,GAAIr9I,EAAEslK,GAAGnoB,IAAKmoB,GAAGjoB,GAAIl9I,EAAEmtH,GAAG4vB,IAAK5vB,GAAG8vB,GAAIl9I,EAAEolK,GAAGpoB,IAAKooB,GAAGloB,GAAI+nB,EAAE73C,GAAG4vB,IAAK5vB,GAAG6vB,GAAI38I,EAAE8kK,GAAGpoB,IAAKooB,GAAGnoB,GAAO+nB,GAAGllK,EAAUO,EAAE,GAAG88I,GAAI98I,EAAEyzB,EAAU7zB,GAAGD,EAAUK,EAAE,GAAG68I,GAAI78I,EAAEyzB,EAAUmxI,GAAG3kK,GAAM8sH,GAAG4vB,IAAKmoB,EAAE9kK,EAAE6kK,EAAEpxI,IAAOqxI,EAAErxI,EAAEoxI,EAAE7kK,GAAEX,GAAG+qN,EAAEvqN,EAAE,EAAEA,EAAE,EAAEN,EAAEulK,EAAE,EAAEr7G,EAAE,EAAE0yL,EAAEp5O,EAAK,KAAK,IAAIqnN,EAAE7qN,CAAC,EAAEG,EAAEy8O,EAAEp5O,EAAK,KAAK,IAAIlD,EAAE,EAAEilK,EAAE,CAAC,EAAE/kK,EAAE+kK,EAAE,EAAEr7G,EAAE,EAAE5pD,EAAE,EAAEE,EAAEL,GAAGF,GAAGy/O,EAAEp/O,EAAE,EAAEA,EAAE,EAAE0pP,EAAE1kF,EAAE,EAAEp7G,EAAE,EAAE+/L,GAAEzmP,EAAK,KAAK,IAAIk8O,EAAEsK,CAAC,EAAEE,GAAED,GAAEzmP,EAAK,KAAK,IAAIlD,EAAE,EAAEglK,EAAE,CAAC,EAAE6kF,GAAE7kF,EAAE,EAAEp7G,EAAE,EAAE5pD,EAAE,EAAE4pP,GAAEC,IAAUrqP,GAAGG,EAAEQ,EAAE,GAAG28I,GAAI38I,EAAEyzB,EAAEzzB,EAAE,GAAG48I,GAAI58I,EAAEyzB,GAASzzB,CAAC,CAC/gB,SAASu8O,IAAIv8O,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAmB,IAAjBD,EAAE7kK,EAAE,EAAE,EAAE,EAAE,OAAW+sH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE1tH,EAAE,EAAE,GAAkF,IAA5EW,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG0wC,EAAE,GAAG,CAAC,EAAE7kK,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG0wC,EAAE,GAAG,CAAC,EAAE7kK,EAAE,EAAE,IAAI6kC,EAAIrlC,EAAE,EAAEslK,EAAE,IAAIjgI,EAAQjlC,EAAE,IAAIs4B,EAAIl4B,EAAE,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAE+kK,EAAE,EAAEnlK,IAAImlK,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG/7H,EAAI5oC,EAAE,EAAE2kK,CAAC,EAAEh9C,GAAIm9C,EAAEH,EAAE,CAAC,EAAM,IAAJlxI,EAAE,EAAMg2B,EAAE,IAAIvxB,EAAI4sI,CAAC,EAAEr7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAE5pD,EAAE,EAAE4zB,IAAI5zB,EAAE,EAAE,GAAM+kK,EAAEE,EAAE,EAAE,OAAU9kK,EAAE,GAAG,MAAMA,EAAE,EAAE,OAAO4kK,GAAG5kK,EAAE,EAAEikE,EAAG8pF,GAAGC,GAAI,GAAG4W,EAAE,GAAG,CAAC,EAAE5kK,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGrrB,EAAE,GAAG,CAAC,GAAO/wH,GAAI7zC,EAAE,CAAC,EAAEA,EAAE,EAAE8kK,EAAE9kK,EAAE,EAAE,IAAImyE,GAAIzU,GAAG19D,EAAE,EAAE,EAAE,MAAM,CAAC,EAAEA,EAAE,EAAE,CAAC,CAClhB,SAASssP,IAAItsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG,EAAApxI,EAAE,EAAE,EAAE,QAAQ,GAAuI,KAA7HzzB,EAAE,EAAEyzB,EAAEzzB,EAAE,EAAEkjD,EAAG0lE,EAAI5oH,EAAE,GAAGkrB,GAAK,EAACwgL,IAAK,EAAC,GAAG,EAAE1rM,EAAE,EAAEkjD,EAAG0lE,EAAI5oH,EAAE,EAAE4rM,GAAG,EAAE,EAAE,EAAE,EAAE5rM,EAAE,EAAEkzC,EAAImnC,EAAGuuC,EAAI5oH,EAAE,EAAE2rM,GAAG,CAAC,CAAC,EAAE3rM,EAAE,EAAEkzC,EAAImnC,EAAGuuC,EAAI5oH,EAAE,EAAE6rM,EAAG,CAAC,CAAC,EAAE/yF,IAAG94G,EAAE,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAE06O,GAAGl6O,EAAE,EAAEypD,EAAE,EAAEA,EAAE,IAAI,EAAEywL,GAAGl6O,EAAE,EAAEypD,EAAE,EAAEA,EAAE,IAAI,EAA4D,IAA1Dk7G,EAAE3kK,EAAE,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAEopG,GAAG2kD,GAAG,CAACvjF,EAAIwjF,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC2W,EAAEA,CAAC,EAAE,CAAC,EAAMC,EAAE,IAAI1sI,EAAIl4B,EAAE,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,GAAG,EAAEyiF,IAAIrnP,EAAEJ,EAAEI,EAAE,EAAEJ,EAAE,CAAC,CAAC,EAA2C,IAAzCI,EAAE,EAAEopG,GAAG2kD,GAAG,CAACvjF,EAAIwjF,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC2W,EAAEA,CAAC,EAAE,CAAC,EAAMtlK,EAAE,EAAEA,EAAEslK,EAAE,EAAEtlK,EAAG,IAAI0tH,EAAE,EAAEA,EAAE43C,EAAE,EAAE53C,EAAGltH,EAAEG,EAAE,EAAEX,CAAC,EAAE0tH,CAAC,EAAE83C,EAAE,GAAGhlK,EAAEA,GAAGG,EAAE,EAAEX,CAAC,EAAE0tH,CAAC,EAAE83C,EAAG,CAClhB,SAASm/E,GAAIhkP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,GAAG,EAAAQ,EAAE,GAAG,MAAMA,EAAE,EAAE,QAAQ,IAAY,CAAAA,EAAE,EAAiB,KAARyzB,EAAE,EAAEj0B,EAAE,EAAQA,EAAEQ,EAAE,EAAE,QAAO,CAAiE,IAA7DyzB,GAAGj0B,GAAGQ,EAAE,EAAEyzB,CAAC,EAAEzzB,EAAE,EAAER,GAAG,EAAEQ,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAER,GAAG,GAAOA,GAAG,EAAEK,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAQj0B,EAAEQ,EAAE,EAAE,QAAW,EAAAH,EAAE,EAAEG,EAAE,EAAER,CAAC,IAAQ,GAAGK,EAAE,GAAGG,EAAE,EAAER,CAAC,EAAGQ,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAER,EAAE,CAAC,EAAEK,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,GAAG,UAAUK,GAAGG,EAAE,EAAER,EAAE,CAAC,EAAGA,GAAG,UAAUK,EAAEG,EAAE,EAAER,EAAE,CAAC,EAAGQ,EAAE,EAAEyzB,EAAE,CAAC,EAAEzzB,EAAE,EAAER,EAAE,CAAC,EAAEK,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAEj0B,GAAG,MAAO,OAAMkmC,EAAI,IAAIgL,GAAG,2CAA2C1wC,EAAE,EAAEyzB,CAAC,EAAE,IAAIzzB,EAAE,EAAEyzB,EAAE,CAAC,EAAE,MAAMzzB,EAAE,EAAER,CAAC,EAAE,IAAIQ,EAAE,EAAER,EAAE,CAAC,EAAE,GAAG,CAAC,EAAGi0B,GAAG,CAAC,CAAIA,GAAGzzB,EAAE,EAAE,SAAQypD,EAAEwa,EAAG4gD,GAAGsP,GAAI,GAAG1gG,EAAE,GAAG,CAAC,EAAE2gH,GAAIp0I,EAAE,EAAE,EAAEypD,EAAE,EAAEh2B,CAAC,EAAEzzB,EAAE,EAAEypD,GAAEzpD,EAAE,EAAE,GAAI,CACthB,SAAS29L,IAAI39L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAImtH,EAAE/b,GAAGhxG,EAAE,CAAC,EAAE,GAAI,EAAC+sH,EAAE,MAAM,CAAiB,GAAhB1tH,EAAE6jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAK1tH,EAAE,EAAE,EAAE,OAAO,EAAwE,IAArEoqD,EAAE,IAAI07B,GAAIjiC,EAAGgwB,GAAGlzE,EAAE,EAAEX,CAAC,EAAE,EAAE,CAAC,EAAEgrE,GAAG,EAAGrC,GAAIve,EAAE,IAAI1uB,GAAItH,CAAC,CAAC,EAAEj0B,EAAE,IAAIisI,GAAIpsI,EAAE,EAAE,CAAC,EAAQG,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAC,CAAqD,OAApDK,GAAGqyE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAE0jD,EAAG1jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGmlK,EAAE,GAAUzhH,EAAG0lE,EAAI/oH,GAAGytB,GAAG,EAAGo/L,GAAG,EAAG,GAAG,EAAE,EAAC,CAAE,IAAK,GAAE/nD,EAAEl7G,EAAE,EAAE,OAAO,EAAE,MAAM,IAAK,GAAEk7G,EAAEqwC,IAAIvrJ,CAAC,EAAE,MAAM,IAAK,GAAEk7G,EAAE,CAAE,CAAIA,GAAG,KAAI/kK,GAAGi9D,GAAI8nG,EAAEl7G,EAAE,EAAE,MAAM,EAAEvG,EAAGuG,EAAE,EAAEk7G,CAAC,EAAE,GAAG,GAAG/7H,EAAIhpC,EAAE,EAAE,EAAEC,CAAC,EAAEqjD,EAAG0lE,EAAI3K,GAAIr+G,EAAE,EAAE,EAAE,CAAC,GAAGsqH,EAAG,EAAGu0D,GAAG,EAAG,EAAE,EAAE,IAAIzuF,GAAG,EAAGi2E,GAAG,EAAG/iH,EAAG0lE,EAAI3K,GAAIr+G,EAAE,EAAE,EAAE,CAAC,EAAE6+K,EAAG,EAAE,EAAE,EAAE,GAAGzY,EAAG,EAAE1gF,GAAI9lF,CAAC,EAAEsjF,EAAIjjF,EAAEolN,IAAI5lN,CAAC,EAAE,CAAEwqE,GAAIxqE,EAAE,IAAI,EAAEyqE,GAAIzqE,EAAE,IAAI,CAAC,CAAC,CACvhB,SAASktP,IAAIvsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAkd,OAAhdQ,EAAE,IAAI2I,IAAIihD,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAI9sD,EAAE,EAAE,EAAE,CAAC,EAAEH,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,EAAE3yB,KAAMg1C,IAAKD,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEh8H,EAAEiqD,EAAE,GAAI,EAACjqD,EAAEA,GAAG,EAAE,EAAE,EAAEA,GAAG,GAAGi7D,GAAIi1H,GAAIxsI,EAAGm0F,GAAI1zB,GAAIl6D,EAAE,GAAE,EAAG,IAAIhhD,GAAG,EAAEogK,IAAI/9D,GAAI,CAAC,EAAE,IAAI1kG,EAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI5G,EAAE,GAAGiqD,EAAEvG,EAAGm0F,GAAI5+B,GAAI,IAAI7N,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE5zB,CAAC,EAAE4uJ,GAAI,IAAI3oJ,GAAI,IAAIC,GAAI,IAAIO,GAAI,IAAIC,GAAI2yG,EAAG9hE,EAAGkkF,GAAG,CAAC,EAAEliB,EAAI,IAAI,EAAE,CAACqiB,GAAID,EAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAEn8H,EAAEoqD,EAAE,GAAI,EAACpqD,EAAEA,GAAG,EAAE,EAAE,EAAEA,GAAG,GAAGo7D,GAAIi1H,GAAIxsI,EAAGm0F,GAAI1zB,GAAIl6D,EAAE,GAAE,EAAG,IAAI/gD,GAAG,EAAEmgK,IAAI/9D,GAAI,CAAC,EAAE,IAAI1kG,EAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI/G,EAAE,GAAMG,EAAEH,EAAU,GAAMG,GAAGH,EAAU,EAAS,CAAC,CAC1hB,SAAS2zO,IAAIhzO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAY,GAAVmlK,EAAE,IAAI//H,EAAO,CAAC6xC,GAAI12E,GAAGkqH,EAAK,EAACsiI,GAAK,EAAE,OAAO5nF,EAAE,IAAIn7G,EAAEvG,EAAG0lE,EAAI5oH,EAAEwsP,EAAG,EAAE,EAAE,EAAE,GAAI,EAAC/iM,EAAE,GAAI,GAAGh2B,EAAEyvB,EAAGuG,EAAE,GAAE,EAAG,EAAE,EAAEgjM,IAAIh5N,EAAEzzB,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEnxI,EAAE,IAAIp0B,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMslK,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAK53C,EAAE,IAAIpiC,GAAK,EAACi0D,MAAeh/I,EAAEsjD,EAAG0lE,EAAImE,EAAEsiG,EAAG,EAAE,EAAE,EAAIzvN,IAAIilK,EAAE,IAAI2yC,GAAIr9J,GAAI0qH,EAAE93C,CAAC,EAAE+3C,EAAE5hH,EAAG0lE,EAAImE,EAAEggD,EAAG,EAAE,EAAE,EAAErmI,GAAIm+H,EAAEC,CAAC,EAAEC,EAAE7hH,EAAGo4B,GAAI17E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEH,EAAE,IAAI8rH,GAAI1hD,GAAIpqE,EAAEolK,CAAC,EAAE/6F,GAAIrqE,EAAEslK,CAAC,IAAc,IAAIllK,EAAE,IAAIq4B,EAAI0sI,CAAC,EAAE/kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEm4H,GAAIvkG,EAAEyvB,EAAGo4B,GAAIt7E,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO4kK,CAAC,CAC5hB,SAASqwD,IAAIj1N,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAiD,IAA/CtxI,EAAEixC,GAAI1kE,CAAC,EAAEX,EAAE4zC,GAAImnC,GAAGquC,GAAIh1F,GAAGnG,KAAMkuL,IAAK,CAAC,EAAE32C,EAAE,EAAErlK,EAAE,EAAMolK,EAAE,IAAIzoG,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAAC4kK,EAAE,GAAGA,EAAE,EAAE,MAAOhlK,EAAEsjD,EAAGmvG,GAAIuS,CAAC,EAAE,EAAE,EAAED,EAAEn8C,GAAI5oH,CAAC,EAAEmtH,EAAE43C,GAAGtlK,GAAG4zC,GAAImnC,GAAGquC,GAAI7oH,EAAE8oH,EAAG,CAAC,CAAC,EAAEq8C,EAAE4wC,GAAIzyJ,EAAGwpG,GAAK,CAAC9sJ,EAAE,IAAIA,EAAE,EAAE,IAAIgiF,GAAI4gC,GAAG5iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE+kK,GAAG53C,EAAE,EAAEvtH,EAAEmlK,GAAG,CAAC53C,EAAE,EAAE83C,EAAEx+D,GAAI0+D,CAAC,GAAGtxI,GAAGsxI,GAAGtxI,EAAE,EAAEj0B,EAAE,EAAEqlK,EAAE,IAAIp7G,EAAE,IAAI0S,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAI4hF,GAAIykC,GAAGrmH,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAG,EAACypD,EAAE,GAAGA,EAAE,EAAE,MAAO5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEk7G,EAAEn8C,GAAI3oH,CAAC,EAAEktH,EAAE43C,GAAGtlK,GAAG4zC,GAAImnC,GAAGquC,GAAI5oH,EAAE6oH,EAAG,CAAC,CAAC,EAAEo8C,EAAE6wC,GAAIzyJ,EAAGwpG,GAAK,CAAC7sJ,EAAE,IAAIA,EAAE,EAAE,IAAI+hF,GAAI4gC,GAAG3iH,EAAE,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE8kK,GAAG53C,EAAE,EAAE83C,EAAEF,GAAG,CAAC53C,EAAE,EAAEvtH,EAAE6mG,GAAIy+D,CAAC,GAAGrxI,GAAGqxI,GAAGrxI,EAAE,EAAEoxI,EAAE,EAAErlK,EAAE,OAAOqlK,EAAErlK,CAAC,CAC7hB,SAASktP,IAAI1sP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAA4B,GAA1BmsH,GAAIn4F,EAAE,iBAAiB,CAAC,EAAKzzB,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC6rH,GAAIp4F,CAAC,EAAE,MAAM,CAAiE,IAAhEp0B,EAAE,IAAIosI,GAAIzrI,EAAE,EAAE,CAAC,EAAE+sH,GAAG76C,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,IAAI,EAAE6jD,EAAG7jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAASA,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAqD,IAAnDG,EAAEutH,EAAEA,GAAG76C,GAAI7yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE6jD,EAAG7jD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAOO,EAAE,IAAIs4B,EAAI14B,EAAE,CAAC,EAAEI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAMilK,EAAE,IAAI3sI,EAAIysI,EAAE,CAAC,EAAEE,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAMp7G,EAAE,IAAIvxB,EAAI0sI,EAAE,CAAC,EAAEn7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEs7G,EAAEllK,EAAE,EAAEilK,EAAEC,EAAE,EAAE,EAAED,GAAGtlK,GAAGslK,GAAG/3C,GAAGs0G,IAAIxhO,GAAGJ,EAAE,IAAIm/L,GAAI5+L,CAAC,EAAEq0B,GAAI50B,GAAGkrF,GAAK,EAAC2+D,GAAK,EAACxmE,EAAIrjF,GAAGyqH,IAAM+jC,IAAKpuJ,CAAC,EAAEijF,EAAIrjF,GAAG6tB,KAAM6oI,KAAMp4D,GAAG,EAAGva,KAAMw0C,GAAIv4H,EAAEstH,CAAC,EAAEttH,EAAG,EAAIosH,GAAIp4F,CAAC,CAAC,CAC9hB,SAASigM,IAAI1zN,EAAEyzB,EAAE,CAAK,IAAA5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAA6E,GAAzEklK,EAAElxI,EAAE,GAAG,MAAM,CAACA,EAAE,EAAEkxI,GAAG/4C,GAAIn4F,EAAE8mN,IAAI,CAAC,EAAE16O,EAAEqjD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACyiI,GAAK,EAAC,EAAE,EAAE5/H,EAAE,EAAEltH,EAAE,GAAE,EAAM4zB,EAAE,EAAmE,IAAhE2xE,GAAI3xE,EAAE,kCAAkC5zB,EAAE,KAAK,WAAW,EAAEJ,EAAE,EAAMslK,EAAEllK,EAAE,GAAI,EAACklK,EAAE,GAAI,GAAGF,EAAE3hH,EAAG6hH,EAAE,GAAE,EAAG,EAAE,EAAEt7G,GAAGhqD,EAAE,GAAG,IAAI,IAAIA,IAAI2lG,GAAI3xE,EAAE,WAAWg2B,EAAE,KAAKzN,GAAIwtE,GAAGq7C,CAAC,CAAC,CAAC,EAAO,IAAIC,EAAEjlK,EAAE,GAAI,EAACilK,EAAE,GAAI,GAAGD,EAAE3hH,EAAG4hH,EAAE,KAAK,EAAE,EAAED,EAAE,GAAG7kK,EAAEinK,GAAIxzI,EAAEs5F,CAAC,CAAC,EAAM,IAAI1tH,EAAE,IAAI64B,EAAIl4B,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEsoH,GAAI3nH,EAAE,EAAER,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAEykE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIygG,EAAE,IAAI1sI,EAAIl4B,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAE5sC,GAAIp4H,EAAE,IAAI,EAAEI,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEwgG,GAAG94C,GAAIp4F,CAAC,CAAC,CAC/hB,SAASovK,IAAI7iM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEsK,EAAEC,GAAE//L,EAAEvW,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAK,EAACs/N,IAAK,CAAA,CAAC,EAAE3N,EAAE/7L,EAAG0lE,EAAIn1F,EAAE4yN,EAAG,EAAE,EAAE,EAAE,EAAEthF,EAAE,EAAEvlK,EAAE,EAAE+pP,EAAE,GAAGtK,EAAEx/O,EAAE,GAAMG,EAAE,EAAEmtH,EAAE7vC,GAAI,EAAE,CAAmB,IAAlB79E,EAAEO,GAAG,EAAEklK,EAAEllK,GAAG,EAAE4pP,GAAE,EAAMp/B,EAAEpqN,EAAE,EAAEm8O,EAAE,EAAEp8O,EAAEqqN,EAAE,OAAO+xB,EAAEp8O,EAAE,EAAEo8O,EAAGx8O,EAAEyqN,EAAE+xB,CAAC,EAAEx8O,EAAE,EAAE,KAAKktP,IAAI7sP,EAAEL,EAAEN,EAAEylK,EAAEr7G,CAAC,EAAE+/L,IAAGzmP,EAAK,KAAK,IAAIpD,EAAE,CAAC,EAAE,GAAGglK,EAAE+7E,IAAI1gP,EAAEyzB,CAAC,QAAQkxI,GAAG,IAAI1kK,EAAED,EAAE,EAAET,EAAE,EAAEG,EAAEO,EAAE,OAAOV,EAAEG,EAAE,EAAEH,EAAqB,GAAlBI,EAAEM,EAAEV,CAAC,EAAEM,EAAEw1G,GAAI11G,CAAC,EAAE,EAAKE,GAAG,EAAG,IAAIglK,EAAE,IAAI3sI,EAAIv4B,EAAE,CAAC,EAAEklK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAED,EAAE,EAAE,GAAG/kK,EAAOD,GAAG,GAAGA,GAAG,GAAG,EAAEmlK,EAAKA,GAAG,IAAIykF,GAAEz8H,GAAG,CAACg4C,EAAEk6E,IAAIr/O,EAAE,EAAEmtH,EAAE7vC,IAAYt9E,GAAG,GAAGA,EAAE,EAAEmtH,EAAEy8H,KAAO5pP,EAAE,EAAEmtH,EAAEy8H,MAAQ/pP,EAAE+pP,IAAGz8H,GAAGA,EAAEy8H,GAAED,EAAEx8H,EAAEy8H,GAAE/pP,GAAG,EAAED,EAAE,OAAO,EAAEC,GAAGD,GAAG,GAAG,CAC/hB,SAASstP,GAAI9sP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAY,IAAVA,EAAE,IAAIolC,GAAQ1lC,EAAEW,EAAE,EAAE,KAAK,KAAKX,EAAE,GAAE,GAAKoqD,EAAEvG,EAAG7jD,EAAE,KAAK,GAAG,EAAEm6D,GAAI75D,EAAE8pD,EAAE5pD,EAAE,GAAG4pD,CAAC,CAAC,EAAyG,IAAvGsjE,GAAGv3E,GAAGx1C,CAAC,EAAEA,EAAE,IAAImlF,GAAInlF,CAAC,EAAEuhG,GAAGvhG,EAAE,EAAE,GAAE,EAAG,GAAE,CAAE,GAAGgoE,GAAI+kD,EAAE,IAAIhzF,IAAIp6B,CAAC,CAAC,EAAEglK,EAAEvtB,GAAGrqB,CAAC,EAAEntH,EAAE,IAAI2oE,GAAI90C,CAAC,EAAEh0B,EAAE,IAAIslC,GAAI07E,GAAIhhH,EAAE,EAAEg0B,EAAE7zB,CAAC,EAAQ+kK,EAAE,EAAE,MAAM,GAAE,CAAsB,IAArBC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAStlK,EAAEmlK,EAAE,EAAE,GAAI,EAAC,GAAE,EAAGnlK,EAAE,GAAI,GAAoB,GAAjBiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAK0zC,EAAImnC,EAAGvgB,GAAGm7C,GAAIt1G,EAAE,EAAE8pD,CAAC,CAAC,CAAC,CAAC,GAAG0tD,GAAI,CAAC,GAAG/yD,GAAI3kD,EAAEgqD,EAAE,CAAC,GAAG,CAACrF,GAAI3kD,EAAEgqD,EAAE,CAAC,EAAE,CAACo7G,EAAEp7G,EAAE,EAAEq7G,EAAEr7G,EAAE,EAAEm7G,EAAEn7G,EAAE,KAAK,CAAC,GAAGrF,GAAI3kD,EAAEgqD,EAAE,CAAC,GAAM,CAACrF,GAAI3kD,EAAEgqD,EAAE,CAAC,EAAE,CAACo7G,EAAEp7G,EAAE,EAAEq7G,EAAEr7G,EAAE,EAAEm7G,EAAEn7G,EAAE,KAAK,CAAE,CAAE,GAAG,CAACm7G,EAAG,MAAMG,EAAE,IAAIx8F,GAAIs8F,CAAC,EAAEj8H,EAAIsa,EAAG4W,GAAGm7C,GAAIx1G,EAAE,EAAEqlK,CAAC,CAAC,EAAE,GAAG,EAAE,EAAEC,CAAC,EAAEtkD,GAAIhhH,EAAE,EAAEolK,EAAEE,CAAC,EAAEJ,EAAE,EAAE,GAAGC,CAAC,GAAG,IAAI,CAAC,OAAOhlK,CAAC,CAChiB,SAASmtP,IAAI/sP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAA0I,IAAxImsH,GAAI/rH,EAAE,4BAA4B,CAAC,EAAEilK,EAAErxI,EAAE,EAAEoxI,EAAEC,EAAE,EAAE,OAAO9kK,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGprB,EAAE,GAAG,CAAC,EAAE7kK,EAAE,EAAEikE,EAAGk9G,GAAI8O,GAAI,GAAGprB,EAAE,GAAG,CAAC,EAAE7kK,EAAE,EAAE,IAAI6kC,EAAIkoF,EAAE,EAAM63C,EAAE,IAAI1sI,EAAI4sI,CAAC,EAAEF,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEhlK,EAAE,EAAEmtH,EAAE0jB,GAAGm2C,GAAIhnL,CAAC,CAAC,GAAGgpC,EAAI5oC,EAAE,EAAEJ,CAAC,EAAE,EAAEmtH,EAAE,IAAIttH,EAAE,IAAIy4B,EAAIl4B,EAAE,CAAC,EAAEP,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASslK,EAAE7hH,EAAGyhF,EAAIllI,CAAC,EAAE,EAAE,EAAE4qN,GAAIrqN,EAAE+kK,CAAC,EAAE,IAAI1lK,EAAE,EAAEA,EAAEwlK,EAAExlK,IAASW,EAAE,EAAEX,CAAC,IAAGslK,GAAG9nG,GAAIx9D,EAAEylK,EAAE,EAAE,MAAM,EAAE5hH,EAAG4hH,EAAE,EAAEzlK,CAAC,EAAE,EAAE,GAAGgrN,GAAIrqN,EAAE2kK,CAAC,GAAG,IAAInlK,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEwwK,GAAIvmH,EAAE,EAAI,EAAEq5B,EAAIrvD,GAAGy2F,EAAK,EAAC8iI,KAAM58K,KAAM,KAAOpwE,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CACjiB,SAASotP,IAAIjtP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAA2B,IAAzBI,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAM1a,EAAE6vG,GAAI7lI,EAAE,EAAE,CAAC,EAAEg2B,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,EAAE,EAAK5pD,EAAE,EAAE,GAAG,IAAGijF,EAAIjjF,GAAGwjL,GAAK,EAACynC,KAAM16I,GAAK,EAAC,GAAM,EAACxnC,EAAI5oC,EAAE,EAAEH,CAAC,GAAG,OAAOG,EAAE,EAAE,EAAE,QAAQ,IAAK,GAAER,EAAE,IAAIo2K,GAAI,EAAEniJ,EAAE,YAAY,EAAEqvD,EAAItjF,GAAG6jL,GAAK,EAACynC,KAAM16I,GAAK,EAAC,GAAI,EAAG0S,EAAItjF,EAAE0tP,GAAI,EAAI,EAAErnJ,GAAIpyE,EAAE,EAAEj0B,CAAC,EAAE,MAAM,IAAK,GAAE,MAAM,QAAoC,IAA5BH,EAAE,IAAIu2K,GAAI,EAAEniJ,EAAE,YAAY,EAAMkxI,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAE,IAAIoqH,GAAI3qH,EAAE0tH,CAAC,EAAEjqC,EAAIljF,GAAGyjL,GAAK,EAAC6pE,KAAM98K,GAAK,EAAC,GAAI,EAAGy1B,GAAIxmG,EAAE,EAAE,EAAEO,CAAC,EAAEimG,GAAIxmG,EAAE,EAAEO,CAAC,EAAEimG,GAAIknB,EAAE,EAAEntH,CAAC,EAAEkjF,EAAIiqC,EAAE+9F,GAAI,EAAK,EAAEhoI,EAAIzjF,GAAGgkL,GAAK,EAACynC,KAAM16I,GAAK,EAAC,GAAM,EAAC0S,EAAIzjF,EAAE6tP,GAAI,EAAI,EAAErnJ,GAAIpyE,EAAE,EAAEp0B,CAAC,CAAE,CAAC,CACniB,SAAS0zN,IAAI/yN,EAAEyzB,EAAE,CAAC2/E,GAAG,EAAG,IAAIvzG,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAyH,OAAvHtlK,EAAEo0B,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,GAAGR,EAAEQ,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,GAAGs5F,EAAE/sH,EAAE,GAAGyzB,EAAE,EAAEA,EAAE,GAAG5zB,EAAE4zB,EAAE,GAAGzzB,EAAE,EAAEA,EAAE,GAAGypD,EAAE1mD,EAAK,KAAK,IAAIvD,EAAEH,CAAC,EAAEslK,EAAE5hK,EAAK,KAAK,IAAIgqH,EAAEltH,CAAC,EAAEsnE,KAAK0yF,GAAGszF,EAAG,GAAMpqP,EAAK,KAAK,IAAI0mD,CAAC,GAAG0jM,IAAK1jM,GAAG,GAAG,MAAMA,CAAC,GAAG,MAAM,CAAC,EAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEyV,GAAG,MAAMzV,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAQowG,GAAGszF,EAAG,GAAGpqP,EAAK,KAAK,IAAI4hK,CAAC,GAAGwoF,IAAKxoF,GAAG,GAAG,MAAMA,CAAC,GAAG,MAAM,CAAC,EAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEzlG,GAAG,MAAMylG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAW5hK,EAAK,KAAK,IAAI4hK,EAAEl7G,CAAC,GAAEowG,GAAGszF,EAAG,GAAMpqP,EAAK,KAAK,IAAI0mD,CAAC,GAAG0jM,IAAK1jM,GAAG,GAAG,MAAMA,CAAC,GAAG,MAAM,CAAC,EAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEyV,GAAG,MAAMzV,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,EAAU1mD,EAAK,KAAK,KAAK4hK,EAAEA,EAAEl7G,EAAEA,CAAC,EAAS,CAAC1mD,EAAK,KAAK,KAAK4hK,EAAEA,EAAEl7G,EAAEA,CAAC,EAAC,CACniB,SAASkpI,GAAI3yL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,GAAIlxI,EAA6B,IAApB,CAACzzB,EAAE,IAAIA,EAAE,EAAE,IAAI8pC,IAAQ9pC,EAAE,GAAG,EAAE,CAAC2oC,GAAI3oC,EAAE,EAAEyzB,CAAC,EAAE,MAAM,CAAC,GAAGA,EAAE,GAAG,EAAE,CAAC,IAAIj0B,EAAE,EAAEA,EAAEi0B,EAAE,KAAKj0B,IAAImzL,GAAI3yL,EAAEyzB,EAAE,GAAGj0B,CAAC,CAAC,EAAE,MAAM,CAAkB,GAAjBmlK,EAAE3kK,EAAE,EAAE,EAAE,EAAE,OAAU2kK,GAAG,EAAE,CAACh8H,GAAI3oC,EAAE,EAAEyzB,CAAC,EAAE,MAAM,CAAwB,GAAvBs5F,EAAE7pE,EAAG06D,GAAI59G,EAAE,EAAE2kK,EAAE,CAAC,EAAE,GAAG,EAAK,GAAG53C,EAAE,GAAG,GAAGA,EAAE,GAAG,MAAMt5F,EAAE,GAAG,GAAGA,EAAE,GAAG,KAAK,CAACkV,GAAI3oC,EAAE,EAAEyzB,CAAC,EAAE,MAAM,CAACp0B,EAAEo0B,EAAE,GAAG,EAAE,EAAEA,EAAE,GAAI,EAAC,OAAUs5F,EAAE,GAAG,GAAGltH,EAAE,IAAIo2C,GAAIwT,EAAEsjE,EAAE,KAAKtjE,GAAGmwB,GAAIve,GAAIx7D,EAAE0lL,GAAI97H,CAAC,CAAC,EAAE2xD,GAAIv7G,EAAE4pD,EAAEs7C,EAAG,EAAEgoB,EAAS,IAAI7b,GAAI,GAAG,KAAK,CAAC,EAAG2E,IAAI71G,EAAE,EAAE+sH,EAAE43C,EAAE,CAAC,IAAO9kK,GAAGktH,EAAE,GAAE,EAAG,OAAO1tH,EAAE,IAAI42C,IAAKolB,GAAIx7D,EAAEktH,EAAE,IAAI,GAAKt5F,EAAE,GAAG,GAAGg2B,EAAEh2B,EAAE,GAAI,EAACg2B,GAAGmwB,GAAIve,GAAIx7D,EAAE0lL,GAAI97H,CAAC,CAAC,EAAE2xD,GAAIv7G,EAAE4pD,EAAEs7C,EAAG,GAAO1pC,GAAIx7D,EAAE4zB,EAAE,GAAI,CAAA,EAAEyvB,EAAG6pE,EAAE,GAAG,EAAE,EAAEltH,EAAE,EAAC,CACniB,SAASutP,IAAIptP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,OAAGW,EAAE,GAAG,KAAaA,EAAE,EAAKA,EAAE,EAAE,IAAIA,EAAE,EAAEqtP,IAAI5nK,GAAIzlF,EAAE,CAAC,EAAEw/D,GAAGx/D,EAAE,CAAC,CAAC,EAASA,EAAE,IAAER,EAAEipP,IAAK,CAACzoP,EAAE,IAAIA,EAAE,EAAE+7J,GAAI/7J,EAAE,CAAC,GAAGA,EAAE,GAAG,CAAC,EAAKA,EAAE,GAAG,EAAUR,GAAEi0B,GAAG,CAACzzB,EAAE,IAAIA,EAAE,EAAE+7J,GAAI/7J,EAAE,CAAC,GAAGA,EAAE,GAAG,EAAE,EAAE,EAAE,EAAEH,EAAEL,EAAE,OAAOiqD,EAAE,CAACzpD,EAAE,EAAEH,EAAE4zB,EAAEp0B,EAAE,IAAI62C,GAAI72C,EAAE,GAAG,GAAGG,EAAKQ,EAAE,EAAE,GAAGypD,GAAG,GAAOA,GAAG,EAAGmuE,GAAIv4H,EAAEQ,EAAE2/D,GAAGx/D,EAAE,CAAC,EAAE,GAAuB,GAAOX,EAAE,EAAEm/D,GAAIn/D,EAAE,EAAE,EAAEo0B,EAAE,CAAC,EAAE,KAAKonC,GAAIx7D,EAAE,EAAEo0B,EAAE,CAAC,EAAEmkG,GAAIv4H,EAAEo0B,EAAE,EAAE63C,GAAIo9K,GAAI,EAAE,CAAClpL,GAAG/V,CAAC,EAAE,CAAC,CAAC,IAAW5pD,EAAE4zB,GAAG,IAAGmkG,GAAIv4H,EAAEo0B,EAAE,GAAuB,EAAE,EAAE5zB,GAAE+3H,GAAIv4H,EAAEQ,EAAE,GAAuB,EAAE4pD,EAAE,GAAGmuE,GAAIv4H,EAAE,EAAEQ,EAAE,GAAuB,EAAE+3H,GAAIv4H,EAAE,EAAEQ,EAAE,GAAGsxG,GAAI1rB,GAAIh8B,CAAC,CAAC,CAAC,GAAEzpD,EAAE,EAAEX,EAAE,EAASW,EAAE,GAAC,CACriB,SAASmmP,IAAInmP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE,GAAG,CAAAvqN,EAAE,KAAgD,KAAnC8kK,EAAE,EAAEI,EAAE,EAAEt7G,EAAE5pD,EAAE,KAAKF,EAAEujD,EAAGuG,EAAE,KAAK,EAAE,EAAE,EAAQk7G,EAAElxI,EAAE,GAAE,CAAmD,GAA/CkxI,GAAGhlK,IAAGolK,EAAE,EAAEt7G,EAAE,KAAM9pD,EAAEujD,EAAGuG,EAAE,KAAK,EAAE,EAAE,EAAI9pD,EAAE8zB,EAAE,EAAE,GAAMkxI,GAAGI,GAAqD,IAAlDqlD,EAAElnK,EAAGo4B,GAAIt7E,EAAE,EAAE2kK,CAAC,EAAE,EAAE,EAAEllK,EAAEyjD,EAAGo4B,GAAIt7E,EAAE,EAAE+kK,CAAC,EAAE,EAAE,EAAE9kK,EAAE+kI,GAAGolF,EAAE,CAAC,EAAMtlD,EAAE,IAAI5sI,EAAIj4B,CAAC,EAAE6kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA+C,GAAtCD,EAAE3hH,EAAGyhF,EAAImgC,CAAC,EAAE,EAAE,EAAEylC,GAAI1lC,EAAEplK,EAAE,EAAE,EAAE,OAAOA,CAAC,EAAKslK,GAAG,EAAgB,IAAbh4C,EAAEiY,GAAG4hD,GAAI/hB,CAAC,CAAC,EAAMxlK,EAAE,IAAI64B,EAAI60F,CAAC,EAAE1tH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE2wK,GAAIxwK,EAAE,EAAI,EAAEsjF,EAAI9iF,GAAGkqH,IAAM8iI,KAAM58K,GAAG,EAAG,GAAM,EAACk9K,IAAIttP,EAAER,EAAE,CAAC,EAAK,EAAEulK,EAAE,EAAEJ,CAAC,CAAkB,IAAjB/kK,EAAE,IAAI6rI,GAAIzrI,EAAE,EAAE,CAAC,EAAQJ,EAAE,EAAEA,EAAE,EAAE,GAAI,GAAEglK,GAAG1yF,GAAItyE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAEsjD,EAAGtjD,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGglK,EAAE,EAAE,EAAE,QAAQ,GAAGt/E,GAAI1lF,CAAC,EAAE,CACriB,SAAS6lH,IAAIzlH,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAA8I,IAA5IqtH,EAAEt5F,EAAE,EAAEoxI,EAAE93C,EAAE,EAAEntH,EAAEmtH,EAAE,EAAEtjE,EAAEvW,EAAImnC,EAAGm+G,GAAIzrE,GAAGz/F,GAAK,EAACm0I,GAAK,CAAA,CAAC,EAAEjiK,EAAE0zC,EAAImnC,EAAGm+G,GAAIzrE,EAAEy/D,EAAG,CAAC,CAAC,EAAE5nB,EAAE1xH,EAAImnC,EAAGm+G,GAAIzrE,EAAE+/D,EAAG,CAAC,CAAC,EAAEnoB,EAAE,IAAI74H,GAAIy2D,GAAIoiE,EAAE/kK,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEmlK,EAAEsxE,IAAI5iN,EAAEg2B,EAAEjqD,EAAEolK,CAAC,EAAMrlK,EAAE,IAAI24B,EAAIzE,EAAE,CAAC,EAAEl0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,IAAjB6qN,EAAElnK,EAAGyhF,EAAIplI,CAAC,EAAE,GAAG,EAAMI,EAAEyqN,EAAE,EAAE,EAAE,KAAK,KAAKzqN,EAAE,GAAI,GAAGF,EAAEyjD,EAAGvjD,EAAE,GAAE,EAAG,GAAG,EAAEN,EAAEI,EAAE,EAAEqlK,EAAE62C,IAAIl8M,CAAC,EAAEI,GAAGs8O,EAAE,IAAIxvM,GAAIkuK,IAAIp7M,EAAEA,EAAE,EAAEslK,EAAEo3E,CAAC,EAAEh6B,IAAI1iN,EAAEqlK,EAAEC,EAAEo3E,CAAC,EAAEthC,IAAIp7M,EAAEA,EAAE,EAAEslK,EAAEo3E,CAAC,EAAEA,GAAGt8O,EAAEG,EAAE,GAAGP,EAAEqlK,EAAEjlK,CAAC,EAAEulD,GAAI/lD,EAAE,CAAC,EAAEolD,GAAGplD,EAAE,EAAEQ,CAAC,EAAEwlD,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIjtD,EAAE,EAAE,CAAC,EAAE,IAAI4wD,IAAIo0G,EAAEF,CAAC,CAAC,EAAE1kK,EAAEmqN,EAAE,EAAKnqN,IAAGk6M,IAAIiQ,EAAEnqN,EAAE8kK,EAAEvlK,CAAC,EAAEE,EAAE,IAAI04C,GAAIn4C,EAAE,CAAC,EAAEu0L,GAAI3vB,EAAEF,EAAEjlK,CAAC,EAAE0gF,GAAI1gF,EAAEO,EAAE,CAAC,EAAEu0L,GAAI3vB,EAAEF,EAAEjlK,CAAC,EAAE,CAAC6iG,GAAI3iG,EAAE+kK,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CACtiB,SAAS4oF,IAAIvtP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAA+B,GAA7BG,EAAE0jD,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGk9N,GAAG,EAAG,GAAG,EAAKhrP,IAAIowF,GAAG,EAAGq2D,IAA8I,QAAjIr6B,GAAI/rH,EAAE,wBAAwB,CAAC,EAAEG,EAAE,EAAEyzB,EAAEp0B,EAAE,IAAI+uJ,IAAI3kG,EAAE,IAAIyqK,KAAK70N,EAAE,EAAEo0B,EAAEp0B,EAAE,EAAE6jD,EAAG0lE,EAAIvpH,EAAE,EAAEqiK,EAAG,EAAE,GAAG,EAAE8wE,IAAInzO,CAAC,EAAEmuP,IAAInuP,CAAC,EAAEu0O,IAAIv0O,CAAC,EAAEA,EAAE,EAAG,EAACq4C,IAAI+R,EAAEzpD,EAAE,CAAC,EAASkjD,EAAG0lE,EAAIn1F,EAAEg6N,GAAG,EAAE,GAAG,EAAE,GAAG,IAAK,GAAEh2M,IAAIgS,EAAE,IAAI+3G,IAAIxhK,EAAE,CAAC,CAAC,EAAE,MAAM,QAAQy3C,IAAIgS,GAAGu+D,GAAK,EAACG,IAAG,CAAG,CAAC,OAAO3oH,EAAE,EAAC,CAAE,IAAK,GAAE2+N,GAAI10K,CAAC,EAAE,MAAM,IAAK,GAAE00K,GAAII,GAAI90K,GAAGsyC,GAAK,EAACx6B,GAAG,CAAE,EAAE,MAAM,IAAK,GAAE48J,GAAI5mL,IAAIgnL,GAAIJ,GAAI10K,CAAC,GAAGsyC,GAAG,EAAGx6B,KAAM,IAAI9sD,GAAG,CAAC,EAAE,MAAM,IAAK,GAAE0pN,GAAI5mL,IAAIgnL,GAAIJ,GAAI10K,CAAC,GAAGsyC,GAAK,EAACx6B,GAAG,EAAG,IAAIpkC,IAAI99B,CAAC,CAAC,CAAC,EAAE,MAAM,IAAK,GAAE8+N,GAAI3mL,IAAIiS,EAAExB,GAAG,CAAC,CAAE,CAACs2K,GAAI90K,GAAGsyC,KAAMz6B,GAAK,EAAC7X,EAAE,EAAE,GAAKikM,IAAIruP,CAAC,EAAEwsH,GAAIhsH,CAAC,EAAC,CACviB,SAAS+6O,IAAI56O,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE,CAAC,IAAI/kK,EAAEglK,EAAEC,EAAEC,EAAgD,OAA9CllK,EAAEigJ,GAAG3mC,EAAG9hE,EAAGu2M,IAAG,CAAC,EAAExpL,GAAI,IAAI,EAAE,CAAC1wC,EAAE5zB,EAAE4pD,EAAEjqD,CAAC,CAAC,CAAC,EAAEslK,EAAE,KAAY9kK,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE8kK,EAAEjlB,GAAG3mC,EAAG9hE,EAAGw2M,IAAG,CAAC,EAAEzpL,GAAI,IAAI,EAAE,CAAC,IAAI1mD,GAAI,IAAIF,GAAI,IAAIC,EAAG,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEsnJ,EAAEjlB,GAAG3mC,EAAG9hE,EAAGw2M,IAAG,CAAC,EAAEzpL,GAAI,IAAI,EAAE,CAAC,IAAI3mD,GAAI,IAAID,GAAI,IAAIE,EAAG,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEqnJ,EAAEjlB,GAAG3mC,EAAG9hE,EAAGw2M,IAAG,CAAC,EAAEzpL,GAAI,IAAI,EAAE,CAAC,IAAI5mD,GAAI,IAAIE,GAAI,IAAID,EAAG,CAAC,CAAC,CAAE,CAAC,IAAIqnJ,EAAE,IAAI3sI,EAAI4sI,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,GAAG,EAAEjlK,EAAE,EAAE,OAAO,IAAIA,EAAEglK,EAAE,GAAGhlK,EAAEI,EAAE,EAAE2kK,CAAC,GAAG,OAAG/kK,EAAE,EAAE,QAAQ,EAAUsjD,EAAGo4B,GAAI17E,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAKA,EAAE,EAAE,QAAQ,EAAUysP,KAAKxvL,GAAI,EAAEj9D,EAAE,EAAE,MAAM,EAAEsjD,EAAGtjD,EAAE,EAAE,CAAC,EAAE,GAAG,IAAIi9D,GAAI,EAAEj9D,EAAE,EAAE,MAAM,EAAEsjD,EAAGtjD,EAAE,EAAE,CAAC,EAAE,GAAG,GAAGmtH,EAAE1tH,CAAC,EAAS,IAAI,CAC1iB,SAAS6xJ,IAAIlxJ,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAmB,IAAjB1oD,GAAIrkE,EAAE,EAAE,IAAIuJ,GAAG,EAAM1J,EAAE,IAAIq4B,EAAIl4B,EAAE,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAE4pD,EAAE42B,GAAI5W,GAAIvmB,EAAGljD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAKu9H,KAAKjkC,EAAE7pE,EAAGljD,EAAE,EAAE,EAAE,EAAE,EAAEX,EAAE6jD,EAAGzvB,EAAE,EAAE,EAAE,EAAE,EAAK1wB,EAAK,KAAK,IAAI0mD,EAAE,CAAC,GAAG1mD,EAAK,KAAK,IAAI0mD,EAAE,CAAC,GAAGA,EAAE,EAAE,EAAEpqD,EAAE,EAAEA,EAAE,EAAE0tH,EAAE,GAAG1tH,EAAE,EAAE0tH,EAAE,EAAEA,EAAE,GAAGrnB,GAAIj8C,EAAE1mD,EAAK,KAAK,IAAIgqH,EAAE,GAAG1tH,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAG0tH,EAAE,EAAEA,EAAE,EAAE,CAAC,IAAOtjE,EAAE,EAAE,EAAEpqD,EAAE,EAAEA,EAAE,EAAE0tH,EAAE,GAAG1tH,EAAE,EAAE0tH,EAAE,EAAEA,EAAE,GAAGrnB,GAAIj8C,EAAE1mD,EAAK,KAAK,IAAIgqH,EAAE,GAAG1tH,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAG0tH,EAAE,EAAEA,EAAE,EAAE,CAAC,IAAQrnB,GAAIj8C,EAAEmoH,IAAI1uH,EAAGljD,EAAE,EAAE,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEj0B,EAAEuD,EAAK,KAAK,KAAK0mD,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEjqD,EAAEy4M,IAAIhnD,GAAIx9H,EAAEj0B,EAAEiqD,CAAC,EAAEi8C,GAAIj8C,EAAEjqD,CAAC,EAAEkvG,GAAIxrD,EAAGzvB,EAAE,EAAE,EAAE,EAAEg2B,CAAC,EAAE4a,GAAI5wC,EAAE,EAAE,IAAI8G,GAAIkvB,CAAC,CAAC,EAAEvG,EAAG+tG,GAAI,EAAE,EAAE,EAAExN,GAAIwN,GAAIF,IAAIt9H,CAAC,CAAE,CAC9iB,SAASo6N,IAAI7tP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAsB,IAApBK,EAAE,EAAE,IAAI+pC,GAAI66H,EAAE,EAAEplK,EAAE,EAAMutH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAMntH,EAAE,IAAIs4B,EAAI74B,EAAE,CAAC,EAAEO,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAyB,IAAxB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAEC,IAAQn7G,EAAE,IAAIonD,GAAGphC,GAAGo3G,GAAIliB,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIrhK,EAAE,CAAC,EAAEo7I,GAAGj1F,CAAC,GAAI5pD,EAAEqjD,EAAGu7F,GAAGh1F,CAAC,EAAE,EAAE,EAAE5pD,EAAE,EAAEL,IAAa,IAATi0B,EAAEo3N,GAAIlmF,CAAC,EAAMI,EAAE,IAAI7sI,EAAIysI,EAAE,CAAC,EAAEI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAKtxI,IAAG9zB,EAAEmlK,EAAE,EAAE,EAAKnlK,GAAGoD,EAAK,KAAK,MAAMpD,CAAC,IAAGklK,EAAEllK,EAAE08D,GAAIopB,GAAI1iF,EAAK,KAAK,MAAMpD,CAAC,CAAC,CAAC,EAAEmlK,EAAE,EAAE,GAAGD,IAAGplK,EAAEqlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKrlK,GAAGsD,EAAK,KAAK,MAAMtD,CAAC,IAAGolK,EAAEplK,EAAE48D,GAAIopB,GAAI1iF,EAAK,KAAK,MAAMtD,CAAC,CAAC,CAAC,EAAEqlK,EAAE,EAAE,GAAGD,EAAG,CAAE7kK,EAAE,EAAE4kK,EAAE5kK,EAAE,EAAER,EAAEQ,EAAE,EAAEikE,EAAG6pL,IAAG3pL,GAAI,IAAIygG,EAAE,EAAE,CAAC,EAAE5kK,EAAE,EAAEikE,EAAG8pL,IAAG5pL,GAAI,IAAI3kE,EAAE,EAAE,CAAC,EAAEQ,EAAE,EAAE,EAAE,GAAE,CAAE,CAC/iB,SAAS4qE,GAAI5qE,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAE,GAAG5kK,EAAE,KAAe,GAATJ,EAAEI,EAAE,GAAI,EAAIA,EAAE,EAAE,EAAE,CAAkD,GAAjDyzB,EAAE,IAAIylC,GAAIl5D,EAAE,EAAEA,EAAE,CAAC,EAAEH,EAAEG,EAAE,EAAEX,EAAEQ,EAAE,IAAI,KAAK,IAAIg7C,GAAIh7C,CAAC,EAAKG,EAAE,GAAI,EAAE,IAAIypD,EAAE,EAAEA,EAAEzpD,EAAE,EAAE,EAAEypD,EAAGsjE,EAAE/sH,EAAE,EAAEypD,CAAC,EAAEpqD,EAAEW,EAAE,GAAG+sH,EAAE1tH,CAAC,EAA+D,GAA5DugJ,GAAI5/I,CAAC,EAAER,EAAEK,GAAG,EAAEG,EAAE,GAAG,EAAE0sJ,EAAIj5H,EAAE,CAAC,EAAE,KAAK,EAAE7zB,CAAC,EAAEI,EAAE,GAAG,EAAEyzB,EAAE,KAAK,GAAG7zB,CAAC,EAAKI,EAAE,GAAE,EAAG,CAAC,IAAIypD,EAAE,IAAIgrB,GAAIhhD,CAAC,EAAEg2B,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGpqD,EAAEW,EAAE,GAAG05L,GAAIjwI,CAAC,EAAEpqD,CAAC,EAAMA,GAAgBA,EAAE,GAAGG,CAAC,EAAEH,EAAE,GAAE,GAAzBW,EAAE,GAAGR,CAAC,CAAsB,MAAUH,GAAgBA,EAAE,GAAGG,CAAC,EAAEH,EAAE,GAAI,GAA3BW,EAAE,GAAGR,CAAC,CAAuB,MAAMogJ,GAAI5/I,CAAC,EAAEA,EAAE,GAAGA,EAAE,GAAG,GAAGqqE,GAAG,EAAG+b,IAAK,KAAK,GAAGxmF,CAAC,CAAC,UAAWI,EAAE,KAAM,GAAGA,EAAE,EAAE,EAAE,CAA4C,IAA3C2kK,EAAE3kK,EAAE,EAAE4kK,EAAE5kK,EAAE,EAAE4/I,GAAI5/I,CAAC,EAAEX,EAAEulK,EAAE,IAAI,KAAK,IAAI/pH,GAAI+pH,CAAC,EAAMn7G,EAAE,EAAEA,EAAEm7G,EAAE,EAAEn7G,EAAGsjE,EAAE43C,EAAEl7G,CAAC,EAAEpqD,EAAEW,EAAE,GAAG+sH,EAAE1tH,CAAC,EAAIA,GAAGA,EAAE,GAAI,CAAA,MAAMugJ,GAAI5/I,CAAC,OAAQ4/I,GAAI5/I,CAAC,CAAE,CAC/iB,SAASguP,GAAIhuP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAmE,IAAjEsH,IAAI,IAAI,EAAExsK,IAAI+1F,GAAG,EAAG26B,IAAKvnF,GAAI,KAAK,EAAEhpC,CAAC,EAAEgpC,GAAI,KAAK,EAAEhpC,CAAC,EAAE6kK,EAAE1tD,GAAIytD,EAAEvtD,GAAQ0V,EAAEt5F,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGs5F,EAAE,GAAI,GAAGvtH,EAAE0jD,EAAG6pE,EAAE,GAAI,EAAC,EAAE,EAAE43C,EAAEzhH,EAAG1jD,EAAE,EAAE,GAAG,EAAEiqD,EAAEvG,EAAG1jD,EAAE,EAAE,EAAE,EAAEI,EAAE6pD,EAAE,EAAE7pD,GAAGI,IAAIJ,EAAE6pD,EAAE,GAAGk7G,GAAGp0C,GAAIvnF,GAAI,KAAK,EAAEppC,CAAC,EAAEopC,GAAI,KAAK,EAAEppC,CAAC,EAAEmlK,GAAGjmE,EAAG,EAAG69E,IAAK,GAAG/8K,EAAE,CAAC,EAAEszC,EAAImnC,EAAGuuC,EAAIhpH,GAAGsqH,EAAK,EAAC0yD,GAAG,CAAE,CAAC,EAAEzhD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAC5qE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEilK,EAAE9hK,EAAK,KAAK,IAAI8hK,EAAEE,CAAC,EAAEH,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEG,CAAC,EAAgH,IAA9GD,GAAGhmE,EAAG,EAAG69E,IAAK,GAAG38K,EAAE,CAAC,EAAEkzC,EAAImnC,EAAGuuC,EAAI5oH,GAAGkqH,EAAK,EAAC0yD,GAAK,CAAA,CAAC,EAAEzhD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACxqE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEwiN,IAAI,KAAK19C,EAAED,EAAED,CAAC,EAAMvlK,EAAEo0B,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGp0B,EAAE,GAAI,GAAGG,EAAE0jD,EAAG7jD,EAAE,GAAE,EAAG,EAAE,EAAE8nN,IAAI,KAAKjkK,EAAG1jD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAK,CAChjB,SAAS2mL,IAAGnmL,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEsK,EAAEC,GAAEC,GAAEC,GAAEC,GAAEsE,GAAEC,GAAE,OAAAruP,EAAEG,EAAE,EAAE,KAAKypD,EAAEzpD,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAK,EAAER,EAAEQ,EAAE,GAAG,EAAE,KAAKX,EAAEW,EAAE,GAAG,IAAIA,EAAE,EAAE,MAAM,EAAE+sH,GAAG/sH,EAAE,EAAE,UAAU,EAAE2kK,EAAElxI,EAAE,EAAE,KAAK7zB,EAAE6zB,EAAE,GAAG,IAAIA,EAAE,EAAE,KAAK,EAAEmxI,EAAEnxI,EAAE,GAAG,EAAE,KAAKoxI,EAAEpxI,EAAE,GAAG,IAAIA,EAAE,EAAE,MAAM,EAAEqxI,GAAGrxI,EAAE,EAAE,UAAU,EAAEg2N,GAAE5pP,EAAE8kK,EAAE+kF,GAAEjgM,EAAEk7G,EAAEglF,GAAEnqP,EAAEmlK,EAAEspF,GAAE5uP,EAAEslK,EAAEupF,GAAEnhI,EAAE43C,EAAK/kK,GAAG,IAAG8pP,IAAG7pP,EAAED,EAAE+pP,IAAGlgM,EAAE7pD,EAAEquP,IAAGzuP,EAAEI,EAAEsuP,IAAG7uP,EAAEO,GAAKglK,GAAG,IAAG+kF,IAAG9pP,EAAE+kK,EAAEqpF,IAAGxkM,EAAEm7G,EAAEspF,IAAG1uP,EAAEolK,GAAKC,GAAG,IAAGopF,IAAGpuP,EAAEglK,EAAEqpF,IAAGzkM,EAAEo7G,GAAEC,GAAG,IAAIopF,IAAGruP,EAAEilK,GAAGrlK,EAAEgqP,GAAE3yI,GAAIn3G,GAAG+pP,GAAE,MAAM,GAAG3kF,EAAEtlK,EAAEE,EAAEyqN,EAAEq/B,IAAG,GAAGlqP,EAAEmqP,IAAG,EAAEvN,GAAGwN,GAAE,SAAS,EAAEjqP,GAAGuuP,GAAE,KAAK,GAAGhuP,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEu/O,EAAE0K,IAAG,GAAGJ,EAAE0E,IAAG,EAAEzE,IAAG0E,GAAE,OAAO,EAAEnuP,EAAEk/O,EAAEsK,EAAEC,GAAEvpP,GAAG8kK,GAAG,GAAGA,GAAGjuD,GAAI/2G,GAAGE,GAAG,GAAGA,GAAG62G,GAAI/2G,GAAGg3G,GAAWz3C,GAAGylG,EAAE9kK,EAAEF,CAAC,CAAC,CACljB,SAASouP,IAAInuP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAsB,GAApBA,EAAEzhH,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAK2kK,EAAE,EAAE,EAAE,QAAQ,GAAGA,EAAE,EAAE,EAAE,QAAQ,EAAG,MAAMj/H,EAAI,IAAIoN,GAAI,2FAA2F,CAAC,EAAE,GAAG6xH,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAO,IAANtlK,EAAE83G,GAAQt3G,EAAE,IAAIq4B,EAAIysI,EAAE,CAAC,EAAE9kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEktH,EAAEt5F,EAAE,EAAE,EAAEg2B,EAAEvG,EAAG0lE,EAAImE,GAAGz/F,GAAG,EAAG8gO,KAAM,GAAG,EAAE/uP,EAAE0D,EAAK,KAAK,IAAI1D,EAAE0tH,EAAE,EAAE,EAAEtjE,EAAE,CAAC,EAAE,OAAO,IAAIz4B,GAAGwkB,GAAGn2C,CAAC,CAAC,CAAC,CAAC,GAAGslK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAO,IAANnlK,EAAE63G,GAAQx3G,EAAE,IAAIq4B,EAAIysI,EAAE,CAAC,EAAE9kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,EAAE,EAAEktH,EAAEt5F,EAAE,EAAE,EAAEg2B,EAAEvG,EAAG0lE,EAAImE,GAAGz/F,GAAK,EAAC8gO,GAAG,EAAG,GAAG,EAAE5uP,EAAEuD,EAAK,KAAK,IAAIvD,EAAEutH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEtjE,EAAE,CAAC,EAAE,OAAO,IAAIz4B,GAAGwkB,GAAGh2C,CAAC,CAAC,CAAC,CAAC,OAAO4qB,KAAKA,GAAI,EAACmlB,EAAE,CACljB,SAAS8+M,IAAIruP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAGI,EAAE,GAAE,EAAG,CAAC,GAAGA,EAAE,EAAE,EAAG,GAAGA,EAAE,GAAGyzB,CAAC,GAAG,GAAGzzB,EAAE,KAAK,CAAsF,GAArFR,EAAE0jD,EAAGzvB,EAAE,EAAE,EAAEg2B,EAAEjqD,EAAE,GAAI,EAACI,EAAE6pD,GAAGzpD,EAAE,IAAIA,EAAE,GAAE,EAAGR,EAAE,GAAGA,EAAE,KAAKQ,EAAE,GAAE,CAAE,GAAGA,EAAE,KAAK,GAAGR,EAAE,GAAE,GAAIQ,EAAE,GAAE,GAAOA,EAAE,MAAM,CAACJ,GAAG,CAAC6pD,GAAKjqD,EAAE,GAAE,GAAI,IAAIH,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAyB,GAAtBQ,EAAEG,EAAE,GAAGkjD,EAAGljD,EAAE,EAAEX,CAAC,EAAE,EAAE,CAAC,EAAK06D,EAAGl6D,CAAC,IAAIk6D,EAAGtmC,CAAC,EAAG,MAAO,GAAO,OAAO7zB,CAAC,SAASI,EAAE,GAAI,GAAE,CAACA,EAAE,GAAE,EAAG,CAAmC,GAAlC+sH,EAAE7pE,EAAGzvB,EAAE,EAAE,EAAE,GAAG8qK,GAAIr7I,EAAGljD,EAAE,GAAE,EAAG,EAAE,CAAC,CAAC,EAAK+5D,EAAGgzD,CAAC,IAAIhzD,EAAG/5D,EAAE,CAAC,EAAG,MAAO,GAAU,GAAG+sH,GAAG,MAAM,CAAC7pE,EAAG6pE,EAAE,EAAE,EAAE,GAAI,EAAE,MAAO,EAAM,MAAO,OAAO,GAAkB,GAAX43C,EAAElkF,GAAIzgF,EAAEyzB,CAAC,EAAKzzB,EAAE,MAAM,CAAC2kK,GAAG,IAAItlK,EAAE,EAAEA,EAAEW,EAAE,EAAE,EAAEX,EAAyB,GAAtBG,EAAEQ,EAAE,GAAGkjD,EAAGljD,EAAE,EAAEX,CAAC,EAAE,EAAE,CAAC,EAAK06D,EAAGv6D,CAAC,IAAIu6D,EAAGtmC,CAAC,EAAG,MAAO,GAAO,OAAOkxI,CAAC,KAAM,QAAOlkF,GAAIzgF,EAAEyzB,CAAC,CAAE,CACnjB,SAASgsJ,IAAIz/K,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAA4B,IAA1BF,EAAE,IAAIhgI,EAAIkgI,EAAE,IAAIn7H,GAAImjF,EAAEt5F,EAAE,EAAMj0B,EAAE,EAAEA,EAAEutH,EAAE,EAAE,OAAOvtH,IAAI,CAA8D,IAA7DolK,GAAG/nG,GAAIr9D,EAAEutH,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEvtH,CAAC,EAAE,EAAE,GAAG,EAAEqlK,EAAE,EAAE5gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAM9kE,EAAE,EAAEA,EAAEulK,EAAE,EAAE,OAAOvlK,IAAKslK,EAAE3kK,EAAE,EAAER,CAAC,EAAEH,CAAC,EAAEslK,EAAE,EAAEtlK,EAAEslK,EAAE,IAAIh6E,KAAM4+D,MAAOsb,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEF,GAAQ7uD,GAAI5yD,EAAGo4B,GAAI7nD,EAAE,EAAEj0B,CAAC,EAAE,EAAE,EAAE,EAAEH,EAAEslK,CAAC,EAAEA,EAAE,EAAE,EAAE1gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEwjD,GAAIg9C,EAAE,EAAEzhH,EAAGA,EAAGo4B,GAAIt7E,EAAE,EAAER,CAAC,EAAE,EAAE,EAAE,GAAGH,CAAC,EAAE,EAAE,CAAC,EAAEgkF,GAAIngC,EAAG0lE,EAAI+7C,GAAGr3I,GAAK,EAAC6oI,GAAK,EAAC,EAAE,CAAC,GAAGrzE,EAAI6hF,EAAExO,IAAKp4D,GAAK,EAACza,GAAK,EAAC,IAAI75B,EAAE,IAAIvxB,EAAI2sI,CAAC,EAAEp7G,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEq7G,EAAEmzE,IAAIp4O,CAAC,EAAEklK,EAAE,EAAE,GAAGD,EAAEC,CAAC,EAAEA,EAAE,EAAE,GAAGllK,EAAEklK,CAAC,CAAE,CAAC,IAAInlK,EAAEmlK,EAAE,EAAE,KAAK,KAAKnlK,EAAE,GAAE,GAAK+kK,EAAEzhH,EAAGtjD,EAAE,KAAK,EAAE,EAAEyqE,GAAG,EAAGrC,GAAI28F,EAAE,GAAGn4I,GAAG,EAAGotJ,IAAK,EAACjV,EAAE,EAAE,GAAKyhB,GAAIzhB,CAAC,CAAE,CACvjB,SAAS8nF,IAAIzsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAA+F,GAA7FD,EAAE3hH,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG6iD,GAAG,EAAG,EAAE,EAAEtjH,EAAEvG,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE6kK,IAAI/lE,IAAM+5C,IAAKnyG,GAAI+iB,EAAEwmF,EAAG,EAAE40B,GAAG50B,IAAKvpG,GAAI+iB,EAAEovF,EAAG,EAAK31F,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAG8/M,GAAG,EAAG,GAAG,EAAE,IAAIxxJ,GAAK,EAACC,GAAK,EAAC,CAAuF,GAAtFj8E,EAAEszC,EAAImnC,EAAGuuC,EAAI5oH,EAAE4sL,EAAG,CAAC,CAAC,EAAEhoB,EAAE1xH,EAAImnC,EAAGuuC,EAAI5oH,EAAE6sL,EAAG,CAAC,CAAC,EAAE9/D,EAAE75E,EAAImnC,EAAGuuC,EAAI5oH,EAAE0sL,EAAG,CAAC,CAAC,EAAE/nB,EAAEzhH,EAAG0lE,EAAIn1F,EAAEwnN,EAAG,EAAE,EAAE,EAAKt2E,EAAE,IAAIxmE,KAAMoV,KAA2B,IAApB1zG,EAAE+kK,EAAEE,EAAE9kK,EAAE,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAMpqD,EAAE,IAAI64B,EAAIuxB,EAAE,CAAC,EAAEpqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEK,EAAEL,EAAE,EAAE,EAAEslK,EAAEtlK,EAAE,EAAE,EAAE,EAAEK,GAAGL,EAAE,EAAE,EAAEutH,UAAW43C,EAAE,GAAGnxD,EAAG,EAAG,IAAIn0G,EAAE,IAAI64B,EAAIuxB,EAAE,CAAC,EAAEpqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEI,EAAEI,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAG67E,IAAI,IAAInrG,IAAK6sB,GAAK,EAAC,IAAI89D,GAAIrxF,EAAE,GAAM,GAAM,IAAI1nB,EAAG,IAAI,IAAIw/E,GAAI,KAAKvrF,EAAE,EAAK,CAAC,CAAC,CAAC,CACzjB,SAAS8zO,IAAI9zO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGpxI,EAAE,EAAE,QAAQ,EAAuE,KAA7D42C,GAAG,EAAGpC,GAAIx0C,EAAE,EAAEA,EAAE,EAAE,OAAO,IAAI,EAAEj0B,EAAE,IAAI04B,EAAIzE,CAAC,EAAEg2B,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAQA,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQK,EAAEqjD,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAKo6J,GAAInwG,EAAE,EAAE,EAAE5pD,EAAE,EAAE,CAAC,GAAG,EAAEmyL,GAAIz2G,IAAI9xB,EAAE,CAAC,EAAE,EAAE5pD,EAAE,EAAE,CAAC,GAAGmyL,GAAIz2G,IAAI17E,EAAE,CAAC,EAAE,EAAE4pD,EAAE,EAAE,CAAC,GAAIA,GAAGk+D,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAE8nH,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAE8nH,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAE4kD,GAAGgF,EAAE,EAAE5pD,EAAE,CAAC,EAAE8nH,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAE8nH,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAER,EAAE0D,EAAK,KAAK,IAAI0mD,EAAE,EAAE,EAAE5pD,EAAE,EAAE,CAAC,EAAEktH,EAAEhqH,EAAK,KAAK,IAAI0mD,EAAE,EAAE,EAAE5pD,EAAE,EAAE,CAAC,EAAE8kK,EAAE5hK,EAAK,KAAK,IAAI0mD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAED,EAAE+kK,EAAEtlK,EAAEulK,EAAE7hK,EAAK,KAAK,IAAI0mD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE5pD,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEglK,EAAED,EAAE73C,EAAEnnB,IAAIn8C,EAAE,EAAEpqD,EAAE0tH,EAAEntH,EAAEilK,CAAC,EAAEjgC,IAAIn7E,EAAE,EAAE5pD,EAAE,CAAC,EAAE,CAAC4pD,EAAE,IAAIA,EAAE,EAAE5pD,EAAE,GAAG8nH,GAAIl+D,EAAE,EAAE5pD,EAAE,CAAC,EAAE+oC,EAAI6gB,EAAE,EAAE5pD,CAAC,EAAE4pD,IAAQ03L,IAAInhP,EAAEypD,CAAC,EAAEA,EAAE5pD,GAAGshP,IAAInhP,EAAEypD,CAAC,EAAC,CACzjB,SAAS6kM,IAAItuP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAgL,GAA9KD,EAAE3kK,EAAE,EAAK2kK,IAAI7lE,EAAK,EAAC85C,KAAMnlH,IAAIsqE,KAAMh8B,KAAMtuC,IAAIsqE,GAAG,EAAG/7B,MAAM2iG,EAAE87E,IAAIzgP,EAAEH,CAAC,EAAE6mC,GAAI1mC,EAAE2kK,CAAC,EAAE,EAAG3kK,EAAE,EAAoBA,EAAE,GAAnBqqE,GAAG,EAAGA,GAAG,EAAGkhC,KAAU,IAAIj+E,GAAK,EAACmqL,GAAK,GAAE9yC,GAAG/rB,KAAM54I,EAAE,EAAE,GAAG,GAAGA,EAAE,EAAE,GAAG,IAAI8iF,EAAI9iF,EAAEy3M,GAAI1J,IAAI/tM,EAAE2kK,CAAC,CAAC,GAAKlxI,IAAIsqE,KAAMxa,IAAK,CAAK,OAAJqhF,EAAE,EAASD,EAAE,EAAC,CAAE,IAAK,GAAE,IAAK,GAAEtlK,EAAEW,EAAE,EAAE,EAAE,EAAEX,EAAE,IAAIulK,EAAE5kK,EAAE,EAAE,EAAEX,GAAG,MAAM,IAAK,GAAE,IAAK,GAAEG,EAAEQ,EAAE,EAAE,EAAE,EAAER,EAAE,IAAIolK,EAAE5kK,EAAE,EAAE,EAAER,EAAG,CAACsjF,EAAI9iF,GAAGkqH,EAAG,EAAGghC,IAAK0Z,CAAC,CAAC,CAAa,GAAZhlK,EAAEI,EAAE,EAAE+sH,EAAE/sH,EAAE,EAAKypD,EAAGsjE,EAAE,EAAEtjE,EAAE,EAAEsjE,EAAE,EAAEtjE,EAAE,EAAEzpD,EAAE,EAAE,WAAayzB,GAAGsuC,IAAKtuC,GAAGuuC,IAAK2iG,GAAG/rB,GAAK,OAAO+rB,EAAE,EAAC,CAAE,IAAK,GAAE53C,EAAE,EAAEntH,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEmtH,EAAE,EAAEntH,EAAE,EAAEmtH,EAAE,EAAEntH,EAAE,EAAE,EAAE,MAAM,IAAK,GAAEmtH,EAAE,EAAEntH,EAAE,EAAE,EAAEmtH,EAAE,EAAEntH,EAAE,EAAE,MAAM,IAAK,GAAEmtH,EAAE,EAAEntH,EAAE,EAAE,CAAE,MAAOmtH,EAAE,EAAEntH,EAAE,EAAE,EAAEmtH,EAAE,EAAEntH,EAAE,EAAE,CAAE,CAC7jB,SAAS2uP,GAAIvuP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAG7kK,EAAE,GAAE,EAAsB,GAAlB6kK,EAAE7kK,EAAE,KAAKJ,EAAEI,EAAE,GAAE,EAAM6kK,EAAE,EAAmH,GAAhHpxI,EAAE,IAAI8zI,GAAIvnK,EAAE,GAAI,CAAA,EAAEH,EAAEglK,EAAExlK,EAAEQ,EAAE,IAAI,KAAK,IAAIg7C,GAAIh7C,CAAC,EAAE88E,GAAI38E,EAAEH,EAAE4zB,EAAE,CAAC,EAAEj0B,EAAEK,GAAG,EAAEG,EAAE,GAAG,EAAE0sJ,EAAIj5H,EAAE,CAAC,EAAE,KAAK,EAAE7zB,CAAC,EAAEI,EAAE,GAAG,EAAEyzB,EAAE,KAAK,GAAG7zB,CAAC,EAAKI,EAAE,GAAE,EAAG,CAAC,IAAIypD,EAAE,IAAI0S,GAAI1oC,CAAC,EAAEg2B,EAAE,GAAGA,EAAE,EAAE,GAAE,GAAKpqD,EAAEW,EAAE,GAAGqyJ,GAAI5oG,CAAC,EAAEpqD,CAAC,EAAMA,GAAgBA,EAAE,GAAGG,CAAC,EAAEH,EAAE,GAAE,GAAzBW,EAAE,GAAGR,CAAC,CAAsB,MAAUH,GAAgBA,EAAE,GAAGG,CAAC,EAAEH,EAAE,MAAvBW,EAAE,GAAGR,CAAC,OAA6Bm9E,GAAI38E,EAAEA,EAAE,KAAKA,EAAE,GAAE,CAAE,EAAEA,EAAE,GAAGA,EAAE,GAAG,GAAGqqE,GAAK,EAAC+b,IAAK,KAAK,GAAGxmF,CAAC,CAAC,UAAWI,EAAE,GAAE,EAAa,GAAT6kK,EAAE7kK,EAAE,GAAE,EAAM6kK,EAAE,EAAE,CAAiD,IAAhDF,EAAE3kK,EAAE,GAAE,EAAG4kK,EAAEC,EAAEloF,GAAI38E,EAAE6kK,EAAEF,CAAC,EAAEtlK,EAAEulK,EAAE,IAAI,KAAK,IAAI/pH,GAAI+pH,CAAC,EAAMn7G,EAAE,EAAEA,EAAEm7G,EAAE,EAAEn7G,EAAGsjE,EAAE43C,EAAEl7G,CAAC,EAAEpqD,EAAEW,EAAE,GAAG+sH,EAAE1tH,CAAC,EAAIA,GAAGA,EAAE,IAAI,MAAMs9E,GAAI38E,EAAEA,EAAE,GAAI,EAACA,EAAE,IAAI,OAAQ28E,GAAI38E,EAAEA,EAAE,KAAKA,EAAE,GAAE,CAAE,CAAE,CAC7jB,SAAS28O,IAAI38O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAE,IAAIklK,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAStlK,EAAE6jD,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEtlK,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAS,IAAPO,EAAE,KAASmtH,EAAE,IAAI70F,EAAIzE,CAAC,EAAEs5F,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAmC,GAA1B1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE+3C,EAAEzlK,EAAE,EAAE,CAAC,EAAK,EAAAQ,GAAGilK,EAAE,IAAIn6E,KAAM0hC,KAAe,KAAI5sH,EAAEyjD,EAAG0lE,EAAIk8C,GAAG56C,EAAK,EAACC,GAAK,EAAC,EAAE,EAAE,GAAI,EAAC1qH,EAAE,GAAE,GAAKslK,EAAE7hH,EAAGzjD,EAAE,GAAI,EAAC,EAAE,GAAK,CAACI,GAAGklK,EAAE,IAAIp6E,GAAG,EAAG0hC,QAAO,CAAChtH,EAAE,IAAIA,EAAE,EAAE,IAAIwlC,GAAKxlC,EAAE,GAAG,GAAGW,EAAE,EAAE+kK,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,EAAE/kK,EAAE,EAAE+kK,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,GAAG,GAAG,CAACllK,GAAGilK,EAAE,IAAIn6E,GAAK,EAAC0hC,IAAK,CAAC,GAAGzsH,EAAG,IAAIilK,EAAE3hH,EAAGgwB,GAAGlzE,EAAE,EAAEJ,CAAC,EAAE,EAAE,EAAE,KAAKilK,EAAE,GAAI,GAAmB,IAAhBD,EAAE1hH,EAAG2hH,EAAE,GAAE,EAAG,EAAE,EAAMrlK,EAAE0jD,EAAGgwB,GAAGlzE,EAAE,EAAE8kK,CAAC,EAAE,EAAE,EAAE,GAAE,EAAGtlK,EAAE,GAAE,GAAKiqD,EAAEvG,EAAG1jD,EAAE,GAAI,EAAC,EAAE,EAAEqiG,IAAI7hG,EAAE,EAAE4kK,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,GAAG5kK,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,EAAEzpD,EAAE,EAAEypD,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAI7pD,EAAEklK,CAAC,EAAE,CAC/jB,SAASzjB,IAAIrhJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAgB,IAAdhlK,EAAE,EAAEglK,EAAE,IAAIhgI,EAAQ8/H,EAAE,IAAIzsI,EAAIzE,CAAC,EAAEkxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA0D,OAAzD53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEqW,GAAIh7K,EAAE,EAAEA,EAAE,EAAE+sH,EAAE,CAAC,CAAC,EAAE83C,EAAE,EAAE5gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAS4oD,EAAE,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEtjE,EAAEvG,EAAG0lE,EAAImE,GAAG7C,EAAG,EAAGysD,GAAG,EAAG,EAAE,EAAEtyG,GAAI5a,EAAE,EAAE,IAAItqB,IAAI0lI,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEv8F,IAAIysG,GAAIpxD,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIigE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI3tF,IAAI2tF,CAAC,CAAC,CAAC,EAAE,IAAI1tF,IAAIwlI,CAAC,CAAC,EAAE,MAAM,IAAK,GAAErlK,EAAE0jD,EAAG0lE,EAAImE,GAAG7C,EAAG,EAAG+jC,GAAG,EAAG,EAAE,EAAErlH,EAAIi8H,EAAE,IAAIluG,GAAIn3D,EAAE+tI,EAAIxgB,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI63C,EAAE,IAAI1sI,EAAI2sI,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEvlK,EAAEq/C,GAAI1+C,EAAEkjD,EAAGtjD,EAAE,EAAE,EAAE,CAAC,EAAKP,EAAEW,EAAE,EAAE+sH,EAAE,CAAC,IAAGltH,GAAGg4I,GAAI73I,EAAE,EAAEX,CAAC,EAAE6jD,EAAGtjD,EAAE,EAAE,EAAE,EAAE,EAAEmxI,GAAI/wI,EAAE,EAAEutI,EAAIluI,CAAC,CAAC,GAAG,KAAM,CAACi0C,GAAItzC,EAAE,CAAC,GAAGsyJ,GAAItyJ,EAAE,EAAEkjD,EAAGoyD,GAAIt1G,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAOH,CAAC,CAC/jB,SAAS2uP,IAAIxuP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAqK,IAAnKtlD,EAAE,IAAI1sH,GAAI8K,EAAGulE,GAAIzoH,GAAG8vB,GAAK,EAACkxL,IAAK,EAAC,CAAC,CAAC,EAAEl8C,EAAE,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAE,EAAEjlK,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEilK,EAAE,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAE,EAAEjlK,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEL,EAAE66E,EAAGouC,GAAIzoH,EAAE6gN,GAAG,CAAC,GAAGrhN,GAAG,OAAOsxB,GAAItxB,CAAC,EAAEA,GAAI,MAAKA,EAAE,KAAKmlK,EAAE,IAAI9/H,EAAQllC,EAAE,IAAIw8D,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAGL,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGF,EAAEyjD,EAAGmvG,GAAI1yJ,CAAC,EAAE,EAAE,EAAEotH,EAAE,IAAIz1C,IAAI73E,CAAC,EAAEklK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE53C,EAAuB,OAArBg4C,EAAE7hH,EAAGulE,GAAIzoH,EAAEihN,EAAG,EAAE,GAAG,EAASl8C,EAAE,EAAC,CAAE,IAAK,GAAEqlD,EAAEy3B,IAAIl9E,EAAElxI,EAAEqxI,EAAE,EAAEA,EAAE,GAAGF,EAAEn7G,EAAE34B,GAAItxB,CAAC,EAAIolK,EAAC,EAAG,MAAM,IAAK,GAAEwlD,EAAEm8B,IAAI5hF,EAAElxI,EAAEqxI,EAAE,EAAEA,EAAE,GAAGD,EAAEp7G,EAAE34B,GAAItxB,CAAC,EAAIqlK,IAAI,MAAM,QAAQulD,EAAEqkC,IAAI9pF,EAAElxI,EAAEqxI,EAAE,EAAEA,EAAE,GAAGllK,EAAE6pD,EAAE34B,GAAItxB,CAAC,EAAII,GAAI,CAACP,EAAE,IAAIw5J,GAAIuxD,CAAC,EAAEnqN,EAAE6hP,GAAIziP,EAAEo0B,EAAE5zB,EAAEilK,EAAE,EAAEA,EAAE,EAAEr7G,GAAG34B,GAAItxB,CAAC,EAAEA,EAAC,EAAG2+O,GAAIn+O,EAAEC,EAAE,EAAEA,EAAE,EAAE,GAAM,EAAI,CAAC,CACnkB,SAAS42N,IAAI72N,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEQ,EAAE4zB,EAAE,EAAEp0B,EAAE,IAAI8lF,GAAItlF,EAAE,CAAC,EAAEL,EAAE,EAAEiqD,EAAE5pD,EAAE,EAAE4pD,EAAE,EAAEwa,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEq0C,GAAIt1D,EAAGunH,GAAGzqK,EAAE,GAAG8+F,IAAM+5C,KAAMjrD,GAAG,EAAG6wC,GAAG,EAAG,EAAE,EAAE5+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAIoW,IAAI6zC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAE64I,GAAIna,EAAG,EAAE,EAAE,EAAE7+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAImW,IAAI8zC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAE64I,GAAIla,EAAG,EAAE,EAAE,EAAE9+H,CAAC,EAAE24G,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEojG,GAAIq7B,EAAG,EAAE,EAAE,EAAE5+H,CAAC,EAAE24G,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEojG,GAAIs7B,EAAG,EAAE,EAAE,EAAE7+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAIqW,IAAI4zC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEojG,GAAIu7B,EAAG,EAAE,EAAE,EAAE9+H,CAAC,EAAE24G,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEiwI,GAAIxR,EAAG,EAAE,EAAE,EAAE5+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAIsW,IAAI2zC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEiwI,GAAIvR,EAAG,EAAE,EAAE,EAAE7+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAIuW,IAAI0zC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEiwI,GAAItR,EAAG,EAAE,EAAE,EAAE9+H,CAAC,EAAE24G,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEijG,GAAIw7B,EAAG,EAAE,EAAE,EAAE5+H,CAAC,EAAEL,EAAEslM,GAAIzlM,EAAEG,EAAE,IAAImX,IAAI8yC,CAAC,EAAE+uD,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEijG,GAAIy7B,EAAG,EAAE,EAAE,EAAE7+H,CAAC,EAAE24G,GAAIt1D,EAAGunH,GAAGzqK,EAAE,EAAEijG,GAAI07B,EAAG,EAAE,EAAE,EAAE9+H,CAAC,CAAC,CACzkB,SAAS6uP,IAAI1uP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAwD,IAAtD2rH,GAAIn4F,EAAE,yBAAyB,CAAC,EAAEoxI,EAAE1tD,GAAIytD,EAAEvtD,GAAI73G,EAAE,GAAUmlK,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA2C,GAAlC53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAEmtH,EAAE,EAAEntH,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAKmtH,EAAE,EAAE,EAAE,QAAQ,EAAmB,KAAPvtH,EAAE,GAASulK,EAAE,IAAI7sI,EAAI60F,EAAE,CAAC,EAAEg4C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAEplK,EAAEmlK,EAAE,EAAErlK,EAAEqlK,EAAE,EAAEllK,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAED,EAAE,EAAEF,EAAE,EAAEA,EAAE,CAAC,EAAEgqD,EAAEvG,EAAGo4B,GAAIyxC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE9sH,EAAEwpD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,IAAIkhC,KAAMi0D,MAAO3+I,GAAGijD,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAACqxN,GAAK,EAAC,GAAG,EAAE,GAAGt/O,EAAE6jD,EAAGo4B,GAAIyxC,EAAE,EAAEA,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAEltH,EAAER,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,GAAGu/I,KAAM/+I,GAAGqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAGqxN,GAAK,EAAC,GAAG,EAAE,GAAG/+O,EAAE,EAAEC,EAAEI,EAAE4kK,EAAE9hK,EAAK,KAAK,IAAI8hK,EAAE5kK,CAAC,EAAE2kK,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAE/kK,CAAC,EAAML,IAAGqlK,EAAE,EAAED,EAAE,GAAE5kK,EAAE,EAAE,EAAE4kK,EAAEC,EAAE7kK,EAAE,EAAE,GAAG6kK,EAAEh5C,GAAIp4F,CAAC,CAAC,CAC1kB,SAAS03N,GAAInrP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAU,IAARF,EAAE,EAAE0tH,EAAE,EAAM63C,EAAE,IAAI1sI,EAAIl4B,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAEzhH,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEvlK,EAAE0D,EAAK,KAAK,IAAI1D,EAAEslK,EAAE,EAAE,CAAC,EAAE53C,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAE43C,EAAE,EAAE,CAAC,EAAE,IAAI/kK,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA8C,OAA7C+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEC,EAAEqjD,EAAG0lE,EAAI+7C,GAAGr3I,GAAK,EAAC+/J,GAAK,EAAC,GAAG,EAASxtL,EAAE,GAAG,IAAK,GAAEF,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,MAAM,IAAK,GAAEA,EAAE,GAAI,MAAM,QAAgB,IAAR8pD,EAAE,EAAEq7G,EAAE,EAAMrlK,EAAE,IAAIy4B,EAAIysI,EAAE,CAAC,EAAEllK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASslK,EAAE7hH,EAAGyhF,EAAIllI,CAAC,EAAE,EAAE,EAAEslK,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAEt7G,EAAEs7G,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAED,EAAEr7G,EAAEq7G,GAAG,EAAGnlK,EAAE,GAAMA,EAAEmlK,GAAGr7G,EAAEq7G,EAAI,CAACslD,EAAEpqN,EAAE,EAAE6kK,EAAEF,EAAE,EAAE,EAAEplK,GAAG6qN,EAAE,EAAEvlD,GAAGllK,EAAEA,EAAE,GAAKJ,GAAGwtH,EAAE,GAAGptH,EAAE,IAAMA,EAAE,KAAMJ,GAAGF,EAAE,GAAG,GAAIM,IAAIH,EAAEmlK,EAAE,EAAE,EAAEplK,EAAEC,IAAID,EAAEC,GAAGS,EAAE0kK,EAAE,EAAE,EAAEplK,EAAE6qN,EAAE,EAAEnqN,EAAE4kK,IAAItlK,EAAE6qN,EAAE,EAAEnqN,EAAE4kK,GAAGF,EAAE,EAAE,EAAElxI,EAAEl0B,CAAC,CAAC,CAC3kB,SAASkvP,IAAIzuP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAA4E,IAA1EzlD,EAAE1gG,EAAG8pF,GAAGC,GAAI,GAAGhuJ,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE+kK,EAAE,IAAInxD,GAAI,IAAInzF,GAAG,EAAEsqL,GAAIhmC,EAAE/kK,CAAC,EAAE4kK,EAAE,EAAE3kK,EAAE,IAAI4kC,EAAUkgI,EAAE,EAAE,EAAE,QAAQ,GAA6C,GAA1Ch4C,EAAE7pE,EAAG6hH,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAKzpF,GAAIypF,EAAE,EAAE,CAAC,EAAE,GAAG,EAAKH,EAAE,GAAGt4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAE,EAAE43C,EAAE,CAAC,EAAE,CAAK,IAAJtlK,EAAE,EAAQA,EAAEY,EAAE,EAAE,OAAO,GAAGqsG,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAE,EAAE43C,EAAEtlK,CAAC,GAAG,EAAEA,EAAEM,EAAE,IAAI86H,GAAIx6H,EAAE,EAAEZ,EAAE,CAAC,EAAEylK,EAAE,IAAIjM,GAAIl5J,CAAC,EAAEklK,EAAEv4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAEntH,EAAEkiP,GAAIh9E,EAAErxI,EAAE,IAAIuY,GAAInsC,EAAE4pD,EAAEjqD,EAAEqlK,CAAC,EAAEzkF,GAAItjB,GAAIgoG,EAAE,CAAC,EAAEllK,CAAC,EAAEkkJ,GAAIy5D,GAAIx4C,EAAED,CAAC,CAAC,EAAErlK,EAAE,IAAIg7H,GAAIx6H,EAAEZ,EAAE,EAAEY,EAAE,EAAE,MAAM,EAAE8qM,GAAIhmC,EAAEtlK,CAAC,EAAEQ,EAAE,EAAEgkE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEygG,EAAE,EAAEt3G,IAAIq3G,EAAEA,EAAE,OAAO,CAAC,CAAC,MAAMylD,EAAErlD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAKzpF,GAAIypF,EAAE,EAAE,CAAC,EAAEqlD,GAAG,MAAMt4D,GAAIiT,EAAE,CAAC,EAAEH,EAAE,IAAID,EAAEC,CAAC,EAAED,EAAEC,EAAE,CAAC,GAAGD,EAAEC,CAAC,GAAGt4D,GAAIygB,CAAC,EAAE1gB,GAAI0gB,CAAC,EAAE,EAAE63C,EAAE3kK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE8sH,EAAG,OAAO9sH,CAAC,CAC3kB,SAAS+5M,IAAIh6M,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAA+B,GAA7BoqD,EAAEvG,EAAG0lE,EAAI5oH,GAAGstB,GAAK,EAAC4jJ,GAAK,EAAC,GAAG,EAAKznH,IAAIunC,GAAK,EAAC2sD,KAAM,IAAI99I,EAAE,IAAIgxG,GAAGphC,GAAGm3G,GAAI5mL,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIsD,EAAE,CAAC,EAAEo7I,GAAG7+I,CAAC,GAAmB,GAAf4zB,EAAEyvB,EAAGu7F,GAAG5+I,CAAC,EAAE,EAAE,EAAK,CAAC8+I,IAAIlrH,CAAC,EAAG,MAAMiS,EAAI,IAAIwO,GAAIy2L,GAAIpvC,GAAIv7L,CAAC,EAAE,0IAA6I,CAAC,UAAYypD,GAAGo0F,IAAK,IAAIx+I,EAAE,IAAIwxG,GAAGphC,GAAGo3G,GAAI7mL,CAAC,EAAE,EAAE,KAAK,IAAIsD,EAAE,CAAC,EAAEo7I,GAAGr/I,CAAC,GAAmB,GAAfG,EAAE0jD,EAAGu7F,GAAGp/I,CAAC,EAAE,EAAE,EAAK,CAACs/I,IAAIn/I,CAAC,EAAG,MAAMkmC,EAAI,IAAIwO,GAAIy2L,GAAIpvC,GAAIv7L,CAAC,EAAE,wIAA2I,CAAC,EAAI,CAC9kB,SAAS2uP,IAAI3uP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAA0G,IAAxGisH,GAAIn4F,EAAE,sBAAsB,CAAC,EAAEg2B,EAAEvW,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAGk/J,GAAG,CAAE,CAAC,EAAEhtL,EAAE0zC,EAAImnC,EAAGuuC,EAAI5oH,EAAE0sL,EAAG,CAAC,CAAC,EAAE9nB,EAAE1hH,EAAG0lE,EAAI5oH,EAAE0lL,EAAG,EAAE,GAAG,EAAM9lL,EAAE,IAAIs4B,EAAIl4B,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0C,IAAjC+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEklK,EAAE,IAAIr5B,GAAIk5B,EAAE,EAAE,CAAC,EAAQG,EAAE,EAAEA,EAAE,EAAE,MAAMD,GAAG3yF,GAAI4yF,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE5hH,EAAG4hH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAMD,EAAE,IAAIl6E,KAAM6+D,MAAMub,EAAE7hH,EAAG0lE,EAAIi8C,GAAG36C,IAAM+jC,KAAM,EAAE,EAAEtuJ,EAAEuzC,EAAImnC,EAAGuuC,EAAIm8C,EAAE3P,EAAG,CAAC,CAAC,EAAEroC,EAAEhzD,EAAG6uD,EAAIi8C,EAAE3P,EAAG,CAAC,IAAIn7F,GAAIojC,GAAK,EAACw1C,GAAK,EAAC9yI,EAAE,IAAIu4C,GAAIysH,EAAE,CAAC,EAAE93C,IAAIltH,EAAE,GAAGF,EAAE8pD,GAAGpqD,EAAE,IAAI+1D,GAAIyvG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEllK,EAAE8pD,CAAC,EAAEhqD,EAAEyjD,EAAG0lE,EAAIi8C,EAAEgjD,EAAG,EAAE,EAAE,EAAEjjD,IAAI7oE,GAAK,EAACt6B,KAAMmjG,GAAGljG,GAAIyvK,IAAI1xO,EAAEI,EAAEL,EAAEH,EAAE0tH,EAAE63C,CAAC,EAAEuZ,IAAI1+K,EAAEI,EAAEL,EAAEH,CAAC,EAAEsoH,GAAIo9C,EAAE,EAAEtlK,CAAC,EAAE8jO,GAAI1+D,EAAE9qG,EAAG6uD,EAAI5oH,EAAE0hK,EAAG,CAAC,IAAI3nG,GAAIwiC,KAAMw2C,IAAK,EAAEztD,GAAIw/E,CAAC,GAAIj5C,GAAIp4F,CAAC,CAAC,CAC/kB,SAASm7N,IAAI5uP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAY,IAAVr/O,EAAE,IAAIilC,EAAQxlC,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAMslK,EAAE,IAAIzsI,EAAI14B,EAAE,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAwB,IAAvB53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEE,EAAE,KAASnlK,EAAEwpI,GAAInc,EAAE,CAAC,EAAEhtH,EAAE,EAAEk/O,EAAEv/O,EAAE,OAAOK,EAAEk/O,EAAE,EAAEl/O,EAAGo8O,EAAEz8O,EAAEK,CAAC,EAAMm8E,GAAIigK,EAAE,EAAE,EAAEt8O,CAAC,IAAGN,EAAEurP,GAAI9qP,EAAEyzB,EAAE5zB,EAAEs8O,EAAEA,EAAE,GAAGnqJ,GAAG,EAAG0tC,IAAKmlC,CAAC,EAAEtlK,GAAGslK,IAAIjlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEL,GAAQA,EAAE,IAAIslK,EAAEtlK,IAAW,IAAPqlK,EAAE,KAASjlK,EAAEupI,GAAInc,EAAE,CAAC,EAAE9sH,EAAE,EAAEmqN,EAAEzqN,EAAE,OAAOM,EAAEmqN,EAAE,EAAEnqN,EAAGR,EAAEE,EAAEM,CAAC,EAAMi8E,GAAIz8E,EAAE,EAAE,EAAEI,CAAC,IAAGN,EAAEurP,GAAI9qP,EAAEyzB,EAAE5zB,EAAEJ,EAAEA,EAAE,GAAGuyF,GAAG,EAAGytC,IAAKmlC,CAAC,EAAErlK,GAAGqlK,IAAIhlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEL,GAAQA,EAAE,IAAIqlK,EAAErlK,GAAI,CAAE,IAAIwlK,EAAE,IAAI7sI,EAAIt4B,CAAC,EAAEmlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,GAAG,EAAE7kG,GAAIzsC,EAAE,EAAEqxI,EAAE,EAAE,CAAC,GAAG,IAAIl8H,EAAInV,EAAE,EAAEqxI,EAAE,CAAC,EAAEA,EAAE,IAAIr7G,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEq7G,EAAQ,CAChlB,SAAS+pF,IAAI7uP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAkD,IAAhDx+F,GAAI/rH,EAAE,6BAA6B,CAAC,EAAEilK,EAAE,IAAIjgI,EAAQplC,EAAE,IAAIy4B,EAAIzE,EAAE,CAAC,EAAEh0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0C,IAAjCslK,EAAE7hH,EAAGyhF,EAAIllI,CAAC,EAAE,EAAE,EAAEslK,EAAE,EAAE,EAAEplK,EAAE40M,GAAIxvC,CAAC,EAAE,EAAMF,EAAEqnB,GAAInnB,GAAG/yE,KAAM0tC,KAAM,GAAI,EAACmlC,EAAE,GAAI,GAAmB,IAAhBD,EAAE1hH,EAAG2hH,EAAE,GAAE,EAAG,EAAE,EAAMxlK,EAAE,IAAI64B,EAAI0sI,EAAE,CAAC,EAAEvlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEY,EAAEwpD,EAAE,EAAE,EAAKxpD,GAAG8kK,IAAGqlD,EAAE7V,GAAIt0M,CAAC,EAAE,EAAEmqN,EAAEzqN,IAAImlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEr7G,IAAW,IAAIsjE,EAAE,IAAI70F,EAAI4sI,CAAC,EAAE/3C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAStjE,EAAEvG,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEijD,GAAIvmH,EAAE,EAAI,EAAyB,IAAvBq7G,EAAE,EAAE7gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAMvkE,EAAE,IAAIs4B,EAAIzE,EAAE,CAAC,EAAE7zB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAE+kK,EAAE,EAAE,GAAGsjD,IAAIjoN,EAAE2kK,EAAEG,CAAC,EAAE,IAAItlK,EAAE,IAAI04B,EAAI4sI,CAAC,EAAEtlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEwwK,GAAIvmH,EAAE,EAAI,EAAEq7G,EAAE,EAAE7gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE0nD,GAAIhsH,CAAC,CAAC,CACjlB,SAASivP,IAAG9uP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAO,OAALD,EAAE,GAAMnxI,EAAE,QAAQ,EAAUzzB,EAAE,GAAGqjH,GAAIo4C,GAAI,GAAG,EAAE,GAAEoJ,EAAEi9C,GAAIruL,CAAC,EAAE4uD,GAAIwiF,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,IAAIA,EAAEA,EAAE,OAAO,CAAC,GAAGA,EAAEA,EAAE,QAAQ,WAAW,EAAE,EAAE93C,EAAE83C,EAAE,QAAQ,GAAG,EAAK93C,GAAG,IAAIA,EAAE83C,EAAE,QAAQ,GAAG,EAAK93C,GAAG,IAAI63C,EAAEC,EAAEA,EAAE,KAAQD,EAAEk9C,GAAIj9C,EAAE,OAAO93C,EAAE,CAAC,CAAC,EAAE83C,EAAEi9C,GAAIj9C,EAAE,OAAO,EAAE93C,CAAC,CAAC,KAAQltH,EAAEglK,EAAE,QAAQ,IAAI93C,CAAC,EAAE63C,EAAEC,EAAE,OAAO93C,EAAE,EAAEltH,GAAGktH,EAAE,EAAE,EAAE83C,EAAEi9C,GAAIj9C,EAAE,OAAO,EAAE93C,CAAC,CAAC,GAAEA,EAAE9tD,GAAI4lG,EAAE3vF,GAAI,EAAE,CAAC,EAAE63C,GAAG,KAAK83C,EAAEA,EAAE,OAAO93C,EAAE,CAAC,IAAI83C,EAAE,QAAQ,GAAGxiF,GAAIwiF,EAAE,oBAAoB,KAAKA,EAAEpJ,IAAKkJ,EAAE7zF,GAAI8zF,EAAE1vF,GAAI,EAAE,CAAC,EAAE11E,EAAEmjF,GAAIiiF,EAAE1vF,GAAI,EAAE,EAAEyvF,EAAE,CAAC,EAAE/kK,EAAE,GAAG6pD,EAAE,GAAGpqD,EAAEgkH,GAAOshD,GAAG,IAAInlK,GAAG,KAAIH,EAAEulK,EAAE,OAAO,EAAEplK,CAAC,EAAEI,EAAEo1E,IAAG4vF,EAAE,OAAOplK,EAAE,EAAEmlK,GAAGnlK,EAAE,EAAE,CAAC,EAAEiqD,EAAEurB,IAAG4vF,EAAE,OAAOD,EAAE,CAAC,CAAC,GAAS3kK,EAAE,GAAGX,EAAEwlK,EAAEjlK,EAAE6pD,CAAC,EAAC,CACllB,SAASkmI,GAAG3vL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG6zB,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAG,MAAMiS,EAAI,IAAIuM,GAAI,gBAAgB,CAAC,EAAE,GAAGjyC,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAG,OAAAH,IAAIu0K,GAAG90G,GAAG,EAAE,EAAE,CAAC,GAAUA,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG7rC,EAAE,GAAG67H,IAAK77H,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAG,OAAO+0J,IAAGxoL,EAAEH,CAAC,EAAsE,GAApED,EAAE,GAAS6zB,EAAE,GAAG,KAAOA,EAAEo6H,GAAGp6H,CAAC,EAAE7zB,EAAE,CAACA,GAAEmtH,EAAEq2G,IAAG3vM,CAAC,EAAEp0B,EAAE,GAAMG,EAAE,GAAMiqD,EAAE,GAASzpD,EAAE,GAAGsvJ,IAAKtvJ,EAAE,GAAG,GAAGA,EAAE,GAAG,EAAiB,GAAdR,EAAE,GAAKH,EAAE,GAAQ0tH,GAAG,GAAI/sH,EAAEq/D,KAAI8vF,GAAI,EAACC,IAAI,EAAC3lG,EAAE,GAAK7pD,EAAE,CAACA,MAAO,QAAA+kK,EAAElzD,GAAGzxG,EAAE+sH,CAAC,EAAEntH,GAAGwzK,GAAGzO,CAAC,EAAE9kK,IAAIu0K,GAAG90G,GAAG,EAAE,EAAE,CAAC,GAAUqlG,OAAW3kK,EAAE,GAAG,KAAOX,EAAE,GAAKW,EAAE6tJ,GAAG7tJ,CAAC,EAAEypD,EAAE,GAAK7pD,EAAE,CAACA,GAAE,OAAGmtH,GAAG,GAAWmnD,IAAGl0K,EAAE+sH,EAAEntH,EAAEP,EAAEQ,CAAC,EAAK+xJ,GAAG5xJ,EAAEyzB,CAAC,EAAE,GAAG5zB,IAAIR,EAAG+0K,GAAGvmB,GAAG7tJ,CAAC,EAAIo0K,GAAG90G,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,GAAWs/D,GAAG,EAAE,EAAE,CAAC,GAAS+9K,IAAG5zL,EAAEzpD,EAAEs/D,GAAGt/D,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAEyzB,EAAE7zB,EAAEP,EAAEG,EAAEK,CAAC,CAAC,CACllB,SAAS+4M,GAAI54M,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAE,GAAGK,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,EAAG,MAAM0lC,EAAI,IAAIoN,GAAI,YAAY9yC,EAAE,EAAE,wCAA2CA,EAAE,EAAE,CAAC,CAAC,EAA6B,IAA3B6kK,EAAE3hH,EAAGxH,GAAI17C,EAAE,CAAC,EAAE,CAAC,EAAEP,EAAEm1E,GAAG50E,EAAE,CAAC,EAAMX,EAAEwlK,EAAEF,EAAE,EAAEC,EAAEvlK,EAAE,OAAOslK,EAAEC,EAAE,EAAED,EAAGl7G,EAAEpqD,EAAEslK,CAAC,EAAEG,EAAE5hH,EAAGwwB,GAAI1zE,EAAEypD,EAAE,CAAC,EAAE,GAAG,EAAEq7G,EAAEl8H,EAAInpC,EAAEyjD,EAAG4zB,IAAI92E,EAAE8kK,CAAC,EAAE,GAAG,CAAC,EAAGrlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE,KAAgI,IAArHE,EAAE,IAAIyoD,GAAI/C,GAAIs+D,GAAIlL,GAAIkL,GAAI,IAAI/Y,GAAI,KAAK,IAAI99C,GAAIrtD,EAAE,EAAE,CAAC,EAAE,IAAI4e,GAAG,EAAE,IAAIsiB,IAAIlN,CAAC,CAAC,EAAE,IAAInV,GAAG,EAAE,IAAIsiB,IAAIjhC,CAAC,CAAC,EAAE6gE,GAAI7gE,EAAEK,EAAE,CAAC,EAAEH,EAAE,IAAIglC,EAAQrlC,EAAEqlK,EAAE93C,EAAE,EAAEntH,EAAEJ,EAAE,OAAOutH,EAAEntH,EAAE,EAAEmtH,EAAGtjE,EAAEjqD,EAAEutH,CAAC,EAAEpF,GAAI9nH,EAAEsvK,IAAInvK,EAAE0qH,GAAGxnE,EAAGwwB,GAAI/zE,EAAE8pD,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAEs7G,EAAE7hH,EAAGo4B,GAAI77E,EAAEgqD,EAAE,CAAC,EAAE,GAAG,EAAIs7G,IAAIllK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEklK,GAAQ,OAAAp9C,GAAI9nH,EAAEsvK,IAAInvK,EAAE0qH,GAAGxnE,EAAGwwB,GAAI/zE,EAAEklK,EAAEA,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAShlK,CAAC,CACllB,SAASkvP,IAAI/uP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAA6E,IAA3Ex+F,GAAI/rH,EAAE,6BAA6B,CAAC,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEP,EAAE,IAAIolC,EAAIggI,EAAEpxI,EAAE,EAAE,EAAE,OAAWmxI,EAAE,IAAI1sI,EAAIzE,EAAE,CAAC,EAAEmxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEluF,GAAI92E,GAAGsqH,IAAM67E,OAAQlhC,EAAE9hK,EAAK,KAAK,IAAI8hK,EAAE3hH,EAAG0lE,EAAIhpH,EAAEmmM,EAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI9lM,EAAE,IAAIi4B,EAAIzE,EAAE,CAAC,EAAExzB,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAsC,IAA7BN,EAAEujD,EAAGyhF,EAAI1kI,CAAC,EAAE,EAAE,EAAE8sH,EAAEu9F,IAAItqN,EAAEL,EAAEklK,CAAC,EAAME,EAAEmnB,GAAIvsL,GAAGqyF,GAAG,EAAG0tC,GAAG,EAAG,GAAE,EAAGqlC,EAAE,GAAI,GAAmB,IAAhBD,EAAE5hH,EAAG6hH,EAAE,GAAE,EAAG,EAAE,EAAM1lK,EAAE,IAAI64B,EAAI4sI,EAAE,CAAC,EAAEzlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAE+qN,EAAE3gK,EAAE,EAAE,EAAEk7G,EAAE2lD,IAAItqN,EAAEoqN,EAAEvlD,CAAC,EAAEF,EAAE53C,IAAIttH,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEgqD,GAAU,IAAIjqD,EAAE,IAAI04B,EAAIz4B,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAAEwwK,GAAIvmH,EAAE,EAAI,EAAEq5B,EAAIrvD,GAAGy2F,EAAG,EAAG8iI,KAAM58K,GAAK,EAAC,GAAM,EAAC3wE,EAAE,EAAEwkE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAE0nD,GAAIhsH,CAAC,CAAC,CACtlB,SAAS2jP,IAAIxjP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,GAAG,EAAAI,EAAE,EAAEyzB,EAAE,GAAGA,EAAE,EAAEzzB,EAAE,GAAkB,KAARH,EAAE,EAAE4pD,EAAE,EAAMsjE,EAAE/sH,EAAE,EAAE,EAAE,KAAK,GAAI,EAAC+sH,EAAE,GAAI,GAAGvtH,EAAE0jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,EAAEgvD,GAAI5gD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEi0B,EAAE,EAAEA,EAAE,CAAC,GAAG,EAAE5zB,EAAE,IAAI8kK,EAAE3kK,EAAE,EAAE,EAAE,KAAK,GAAI,EAAC2kK,EAAE,GAAI,GAAGnlK,EAAE0jD,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAEoX,GAAI5gD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEi0B,EAAE,EAAEA,EAAE,CAAC,GAAG,EAAE5zB,EAAE,IAAID,EAAE6zB,EAAE,EAAE,EAAE,GAAE,EAAG,GAAE,EAAG7zB,EAAE,MAAOJ,EAAE0jD,EAAGtjD,EAAE,GAAI,EAAC,EAAE,EAAEm8K,GAAI5gD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEQ,EAAE,EAAEA,EAAE,CAAC,GAAG,EAAEypD,EAAE,IAAIpqD,EAAEo0B,EAAE,EAAE,EAAE,GAAE,EAAG,GAAE,EAAGp0B,EAAE,MAAOG,EAAE0jD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,EAAE08K,GAAI5gD,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAAChrE,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEQ,EAAE,EAAEA,EAAE,CAAC,GAAG,EAAEypD,EAAK5pD,EAAE4pD,EAAG,IAAIq3F,GAAI9gJ,EAAEyzB,EAAEg2B,EAAE5pD,CAAC,EAAU4pD,EAAE5pD,EAAG,IAAIihJ,GAAIrtH,EAAEzzB,EAAEH,EAAE4pD,CAAC,GAAO,IAAIq3F,GAAIrtH,EAAEzzB,EAAE,CAAC,EAAE,IAAI8gJ,GAAI9gJ,EAAEyzB,EAAE,CAAC,GAAE,CACtlB,SAASgtM,IAAIzgO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAA4G,IAA1Gv3E,EAAEnxI,EAAE,EAAEj0B,EAAEimE,GAAIzlE,EAAE,CAAC,EAAE8kK,EAAE93F,GAAIkK,GAAIzN,GAAIlE,GAAIvlE,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAI,EAAEH,EAAEL,EAAE,EAAEslK,EAAE,EAAEr7G,EAAEjqD,EAAE,EAAEslK,EAAE,EAAE/3C,EAAEt5F,EAAE,EAAE5zB,EAAEktH,EAAE,EAAEltH,EAAE4pD,EAAEsjE,EAAE,EAAEtjE,EAAM7pD,EAAE,IAAIs4B,EAAI0sI,CAAC,EAAEhlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAsE,OAArE+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,GAAG,EAAEmlK,EAAEJ,EAAE,EAAEllK,EAAEI,EAAEklK,EAAE,EAAEqlD,EAAE3gK,EAAEs7G,EAAE,EAAEplK,EAAE6/D,GAAG//D,EAAEO,EAAE,CAAC,EAAET,EAAEigE,GAAG4qJ,EAAEpqN,EAAE,CAAC,EAAEX,EAAEslK,EAAE,EAAStlK,EAAE,EAAC,CAAE,IAAK,GAAEwlK,GAAGl8E,GAAG,EAAGimD,IAAK,MAAM,IAAK,GAAEi2B,GAAGl8E,KAAMkmD,IAAK,MAAM,IAAK,GAAEg2B,GAAGl8E,GAAK,EAACmmD,IAAK,MAAM,QAAQ+1B,GAAGl8E,GAAK,EAAComD,GAAK,CAAI1vI,EAAE,GAAG88O,EAAE38K,IAAI4qJ,EAAEzlD,EAAE,GAAG3kK,EAAE,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAE,IAAImrF,GAAI05E,EAAEt3B,EAAIhuI,CAAC,EAAEguI,EAAI4uG,CAAC,CAAC,CAAC,EAAE98O,IAAI0pF,KAAM0lD,IAAK4jC,GAAIryK,EAAE,EAAET,EAAEI,EAAEw8O,CAAC,EAAE9pE,GAAIryK,EAAEL,EAAEJ,EAAES,EAAE,EAAE,EAAEm8O,CAAC,IAAOl8O,EAAEu/D,IAAI//D,EAAEklK,EAAE,GAAG3kK,EAAE,CAAC,EAAE4oC,EAAI5oC,EAAE,EAAE,IAAImrF,GAAI05E,EAAEt3B,EAAI5tI,CAAC,EAAE4tI,EAAIttI,CAAC,CAAC,CAAC,EAAEZ,IAAI0pF,GAAG,EAAGulD,IAAK+jC,GAAIryK,EAAEL,EAAE,EAAEM,EAAEV,CAAC,EAAE8yK,GAAIryK,EAAEL,EAAEJ,EAAEU,EAAED,EAAE,EAAE,CAAC,EAAE,CAAC,CACvlB,SAASi5O,IAAIj5O,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAA6B,IAA3BglK,EAAE,IAAIlgI,EAAIrlC,EAAE,IAAIqlC,EAAI5kC,EAAE,KAAS0kK,EAAElxI,EAAE,GAAI,EAACkxI,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,KAAK,EAAE,EAAEtlK,EAAE,IAAIm/B,IAAIuuF,EAAE,CAAC,EAAEvtH,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEH,EAAKY,IAAGZ,EAAE,EAAEY,EAAEA,EAAE,EAAEZ,GAAEY,EAAEZ,EAAW,IAATK,EAAE2lP,IAAIrlP,CAAC,EAAM6kK,EAAE,EAAEA,EAAErlK,EAAE,EAAE,OAAO,EAAEqlK,EAAE,CAA+D,IAA9DplK,EAAE,KAAK2qN,EAAEx3G,IAAK/1C,GAAI,EAAEr9D,EAAE,EAAE,MAAM,EAAE0jD,EAAG1jD,EAAE,EAAE,CAAC,EAAE,GAAG,EAAC,EAAGK,EAAE,KAAK4pD,EAAE0tD,GAAQ2tD,EAAE,EAAEA,EAAE9kK,EAAE,EAAE,EAAE,OAAO,EAAE8kK,EAAGvlK,EAAE6qN,EAAErnN,EAAK,KAAK,IAAIqnN,EAAE,EAAEtlD,CAAC,EAAE/hK,EAAK,KAAK,IAAI+hK,EAAErlK,EAAE,CAAC,EAAE,EAAEE,EAAEF,EAAEsD,EAAK,KAAK,IAAI+hK,EAAErlK,EAAE,CAAC,EAAEF,EAAE,EAAKI,EAAEJ,GAAGqlK,EAAEnlK,EAAEG,EAAED,IAAOilK,EAAEwlD,EAAExqN,EAAEL,GAAE48O,GAAGp8O,EAAEmzC,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,GAAG,EAAG0hO,IAAK,CAAA,CAAC,EAAEtvP,EAAEolK,CAAC,EAAE/hK,EAAK,KAAK,IAAInD,EAAEG,CAAC,GAAMo8O,EAAE1yL,IAAGA,EAAE0yL,EAAEt8O,EAAE+kK,EAAE/kK,EAAE,EAAEilK,GAAOslD,GAAGtlD,GAAGslD,EAAE,IAAG3qN,EAAE2qN,EAAEA,EAAEz3G,IAAIy3G,CAAC,GAAMvqN,IAAG+oC,EAAIm8H,EAAEx3B,EAAI1tI,EAAE,CAAC,CAAC,EAAEA,EAAE,EAAE,GAAK6jL,IAAI7jL,CAAC,EAAE,CAAC,OAAAwqE,KAAMpC,GAAI88F,EAAE,EAAEA,EAAE,EAAE,OAAO,IAAI,EAASA,CAAC,CACvlB,SAASzxC,IAAItzH,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAmH,IAAjHpxI,EAAE,IAAIjR,GAAI3iB,EAAE,IAAI2iB,GAAIoiJ,EAAEviF,GAAIknI,IAAK/pN,EAAEslL,GAAI9kL,EAAE,EAAEw9G,EAAG,EAAGh+G,EAAO+1C,GAAG45I,IAAK,CAAC3vL,EAAE,IAAIA,EAAE,EAAE,IAAIu4E,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGx0L,CAAC,GAAGA,EAAE,GAAGm+M,EAAG,CAAC,EAA5D,KAA6D,EAAO/9M,EAAE,EAAEA,EAAEI,EAAE,EAAE,EAAEJ,EAAG+kK,EAAEzhH,EAAGljD,EAAE,EAAEJ,CAAC,EAAE,GAAG,EAAK2rE,EAAGo5F,EAAE,EAAE,GAAG53C,EAAE7pE,EAAGyhH,EAAE,EAAE,EAAG53C,EAAE,GAAG1c,IAAU,EAAA0c,EAAE,GAAGpZ,KAAS,CAACixD,IAAIvlK,EAAEylL,GAAI/3D,EAAEvP,EAAG,GAAIn+G,EAAOk2C,GAAG45I,IAAK,CAAC9vL,EAAE,IAAIA,EAAE,EAAE,IAAI04E,IAAK0kC,GAAK,EAACs3E,IAAKC,GAAG30L,CAAC,GAAGA,EAAE,GAAGqkN,EAAG,CAAC,EAA5D,OAAgE,QAAQx9I,GAAIzyC,EAAEs5F,CAAC,GAAG83C,EAAE05B,GAAIxxE,CAAC,EAAI83C,GAAIA,EAAE,GAAGx0D,KAAW,EAAA0c,EAAE,GAAGpZ,KAAS,CAACixD,IAAIn7G,EAAEq7H,GAAI/3D,EAAEvP,EAAG,GAAI/zD,EAAOlU,GAAG45I,IAAK,CAAC1lI,EAAE,IAAIA,EAAE,EAAE,IAAIsuB,IAAK0kC,GAAG,EAAGs3E,IAAKC,GAAGvqI,CAAC,GAAGA,EAAE,GAAGi6J,EAAG,CAAC,EAA5D,OAAgE,QAAQx9I,GAAIrmE,EAAEktH,CAAC,KAAQvhE,KAAStI,EAAGyhH,EAAE,EAAE,EAAE,GAAE,IAAQA,EAAE,GAAE,IAAIz+F,GAAIzyC,EAAEkxI,CAAC,EAAEz+F,GAAIrmE,EAAE8kK,CAAC,KAAKyW,GAAI3nJ,CAAC,EAAE2nJ,GAAIv7K,CAAC,EAAEG,EAAE,EAAEkjD,EAAGzvB,EAAE,EAAE,GAAG,EAAEyvB,EAAGrjD,EAAE,EAAE,GAAG,CAAC,CACvlB,SAAS+pL,IAAI5pL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAIQ,EAAEmqN,EAAE7qN,EAA4H,IAA1HqlK,EAAE+gD,IAAIlyL,CAAC,EAAE22L,EAAElnK,EAAG0lE,EAAIn1F,GAAGnG,GAAK,EAACqkM,GAAK,EAAC,GAAG,EAAEvH,IAAIh9H,KAAMswC,KAAMqa,GAAI6sB,EAAE,IAAIn6J,GAAG,EAAElL,EAAE2jD,EAAG0lE,EAAIn1F,EAAEsvD,EAAG,EAAE,GAAG,EAAEg1D,GAAI6sB,EAAE,IAAIhqI,IAAIr7B,CAAC,CAAC,EAAEU,EAAE,EAAE4kK,EAAE,IAAIhgI,EAAQxlC,EAAE,IAAI6iH,GAAI0iD,CAAC,EAAEvlK,EAAE,GAAGA,EAAE,GAAIG,EAAE0jD,EAAGwrH,GAAIrvK,CAAC,EAAE,EAAE,EAAEm0N,IAAIxzN,EAAE,EAAER,CAAC,EAAEulK,EAAE7hH,EAAG0lE,EAAIppH,GAAG0qH,IAAMyiI,KAAM,EAAE,EAAE1sP,GAAG8kK,EAAE,GAAI,EAACt7G,EAAEs7G,EAAE,GAAE,EAAGn8H,EAAIi8H,EAAE,IAAIluG,GAAIn3D,EAAEiqD,CAAC,CAAC,EAAqF,IAAnFmiE,GAAI/rH,EAAE,gCAAgCI,CAAC,EAAMR,EAAEyjD,EAAGA,EAAGo4B,GAAIupF,EAAEA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAQplK,EAAE,GAAE,GAAI,IAAIG,EAAE,IAAIs4B,EAAI2sI,CAAC,EAAEjlK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAmD,IAA1C+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAEmlK,EAAE7hH,EAAGyhH,EAAE,EAAE,EAAE,EAAE53C,EAAE7pE,EAAGyhH,EAAE,EAAE,EAAE,EAAQI,EAAE,MAAsB,GAAhBD,EAAE5hH,EAAG6hH,EAAE,GAAI,EAAC,EAAE,EAAKx5F,EAAGu5F,EAAE,GAAG,EAAE,CAAC,GAAI/3C,EAAE,EAAmC,MAAhC+3C,EAAE,GAAG/3C,EAAEk6C,GAAIpnK,EAAE,CAAC,CAAC,EAAM,KAAiB,MAAMilK,EAAE,GAAG/3C,EAAEk6C,GAAIpnK,EAAE,CAAC,CAAC,EAASgsH,GAAIhsH,CAAC,CAAC,CACxlB,SAASovP,IAAIx7N,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAmD,GAAjDH,EAAE/kK,EAAE,OAAO,EAAED,GAAGoiH,GAAI4iD,EAAE/kK,EAAE,MAAM,EAAEA,EAAE,WAAW+kK,CAAC,GAAMhlK,GAAG,IAAqB,GAAjB+kK,EAAE1lG,GAAIp/D,EAAEq1E,GAAI,EAAE,CAAC,EAAKyvF,GAAG,EAAG,OAAAtlK,EAAE4nL,IAAIxzJ,EAAE5zB,EAAE,OAAO,EAAE8kK,EAAE,CAAC,CAAC,EAAEG,EAAEjlK,EAAE,OAAO8kK,EAAE,EAAEC,GAAGD,EAAE,EAAE,EAASuqF,IAAIz7N,EAAEqxI,EAAEzlK,CAAC,MAAO,CAAyC,GAAxCoqD,EAAE,GAAG0lM,KAAK,OAAOA,IAAI,IAAI,OAAO,KAAK,GAAMA,IAAI,KAAK,OAAO,aAAavvP,CAAC,CAAC,IAAG6pD,EAAEk5B,GAAI9iF,EAAEq1E,GAAI,EAAE,EAAE0vF,EAAE,CAAC,EAAKn7G,GAAG,GAAE,CAACjqD,EAAE0jD,EAAG87F,GAAIvrH,EAAE+hI,IAAI/hI,EAAE5zB,EAAE,OAAO,EAAE4pD,EAAE,CAAC,CAAC,EAAE,EAAK,EAAE,EAAE,EAAEo7G,EAAE,EAAE,GAAG,CAACA,EAAEsiC,GAAItnM,EAAE,OAAO4pD,EAAE,CAAC,EAAEsqG,GAAI72E,EAAG,CAAC,OAAOl9E,EAAE,CAAU,MAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,GAAG+sH,EAAE/sH,EAAQ0lC,EAAI,IAAI8oH,GAAIzhC,CAAC,CAAC,GAAarnF,EAAI1lC,CAAC,CAAC,CAAC,GAAG6kK,EAAErlK,EAAE,KAAM,OAAAulK,EAAEvlK,EAAE,GAAGqlK,CAAC,EAAEt5F,EAAGw5F,EAAE,EAAE,IAAIA,EAAE7hH,EAAG6hH,EAAE,EAAE,EAAE,MAAa7hH,EAAG6hH,EAAE,EAAE,CAAE,CAAE,GAAGt7G,EAAE,EAAG,OAAOvG,EAAG87F,GAAIvrH,EAAE+hI,IAAI/hI,EAAE5zB,EAAE,OAAO,CAAC,CAAC,EAAE,EAAK,EAAE,EAAE,CAAE,CAAC,OAAO,IAAI,CACxlB,SAAS8zK,GAAI3zK,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,GAAGvhB,GAAI9vH,EAAE5zB,CAAC,GAAG,EAAG,OAAOA,EAAE,OAAO0/G,GAAI0vC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAG,CAAA,IAAK,GAAE,CAAC,GAAGwiF,GAAI,GAAGy+F,GAAI9gL,EAAEH,EAAE,IAAI,EAAE,GAAI,CAAA,EAAE,CAAgD,GAA/CD,EAAEojH,GAAIisC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAE8kK,EAAE9hD,GAAIosC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAEglK,EAAE4O,GAAIzzK,EAAEyzB,EAAE7zB,EAAE+kK,CAAC,EAAKE,EAAG,OAAOA,EAAa,IAAXrlK,EAAEo+N,GAAI59N,EAAEyzB,CAAC,EAAMs5F,EAAE,EAAE+3C,EAAEtlK,EAAE,GAAI,EAACutH,EAAE+3C,EAAE,EAAE/3C,EAAqB,GAAlB83C,EAAE3hH,EAAG1jD,EAAE,GAAGutH,CAAC,EAAE,GAAG,EAAK24G,GAAInvH,GAAI04C,GAAIjvJ,EAAE6kK,CAAC,CAAC,EAAEjlK,CAAC,EAAG,OAAOilK,CAAG,CAAC,OAAO,IAAI,CAAC,IAAK,GAAE,CAAC,GAAGxiF,GAAI,GAAGy+F,GAAI9gL,EAAEH,EAAE,GAAE,CAAE,EAAE,IAAI,EAAE,CAAC,IAAI4pD,EAAE5pD,EAAE4pD,EAAEA,EAAE66E,IAAI2qB,GAAIjvJ,EAAEypD,CAAC,CAAC,EAAkD,GAA/Cm7G,EAAE5hD,GAAIisC,GAAIjvJ,EAAEypD,CAAC,CAAC,EAAEk7G,EAAE9hD,GAAIosC,GAAIjvJ,EAAEypD,CAAC,CAAC,EAAEo7G,EAAEgP,GAAI7zK,EAAEyzB,EAAEmxI,EAAED,CAAC,EAAKE,EAAG,OAAOA,EAAmB,GAAhBjlK,EAAEojH,GAAIisC,GAAIjvJ,EAAEH,CAAC,CAAC,EAAKwiF,GAAI89B,GAAIvgH,CAAC,EAAG,OAAOgzM,GAAI5yM,EAAEyzB,CAAC,EAAkB,IAAXp0B,EAAEw+N,GAAI79N,EAAEyzB,CAAC,EAAMs5F,EAAE,EAAE+3C,EAAEzlK,EAAE,GAAI,EAAC0tH,EAAE+3C,EAAE,EAAE/3C,EAAqB,GAAlB83C,EAAE3hH,EAAG7jD,EAAE,GAAG0tH,CAAC,EAAE,GAAG,EAAK24G,GAAInvH,GAAI04C,GAAIjvJ,EAAE6kK,CAAC,CAAC,EAAEjlK,CAAC,EAAG,OAAOilK,CAAI,CAAC,OAAO,IAAI,CAAC,QAAS,OAAO,IAAK,CAAC,CACxlB,SAAS/5F,IAAI9qE,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAE,GAAGhlK,EAAE,GAAE,GAAI,EAAG,MAAO,GAAoD,GAA9C8kK,GAAGn5G,GAAK,EAACtI,EAAGzvB,EAAE,EAAE,EAAE,GAAI,GAAEp0B,EAAEslK,EAAE9kK,EAAE,IAAIi7C,GAAIj7C,EAAE,GAAI,CAAA,EAAKsgK,GAAIngK,EAAE,EAAEyzB,CAAC,GAAG,GAAGA,EAAE,GAAE,EAAI,IAAImxI,EAAE/kK,EAAE,GAAE,EAAG+kK,EAAE,MAAOhlK,EAAEglK,EAAE,GAAE,EAAO7vB,GAAI/0I,EAAEyzB,EAAE7zB,EAAE2rE,EAAG93C,EAAE,EAAE,IAAIyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGmmD,KAAM,CAAC,IAAGp6E,EAAEm2I,GAAIliH,EAAE7zB,CAAC,EAAEP,EAAE,GAAGG,CAAC,GAAGH,EAAE,GAAGG,CAAC,WAAY,CAACmlK,EAAG,IAAIC,EAAE/kK,EAAE,GAAI,EAAC+kK,EAAE,GAAI,GAAGhlK,EAAEglK,EAAE,GAAI,EAACplK,EAAEm2I,GAAIliH,EAAE7zB,CAAC,EAAEP,EAAE,GAAGG,CAAC,MAAQ,CAAC,GAAGK,EAAE,GAAE,EAAG,EAAG,MAAM6lC,EAAI,IAAImN,GAAIqzL,EAAG,CAAC,EAAkC,IAAhCrhE,EAAE4C,GAAIznK,EAAE,EAAE,GAAI,EAACyzB,CAAC,EAAEg2B,EAAEvG,EAAGljD,EAAE,EAAE,GAAG,EAAM+sH,EAAE,EAAEA,EAAE/sH,EAAE,EAAE,EAAE+sH,EAAU,GAAPvtH,EAAEiqD,EAAEsjE,CAAC,EAAK83C,EAAE,GAAGrlK,EAAE,GAAE,CAAE,EAAE,CAAC,GAAGK,EAAE,GAAG8kK,EAAEnlK,EAAEA,EAAE,GAAE,CAAE,EAAG,MAAO,GAAW,IAAIolK,EAAE/kK,EAAE,GAAE,EAAG+kK,EAAE,GAAE,GAAKhlK,EAAEglK,EAAE,GAAE,EAAG1hH,EAAGi6I,GAAIn9L,EAAE+sH,EAAE43C,EAAEzhH,EAAGtjD,EAAE,EAAE,EAAE+1I,GAAIliH,EAAE7zB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAO,EAAK,CAAM+kK,IAAGnlK,EAAEm2I,GAAIliH,EAAE5zB,EAAE,KAAK,IAAI,EAAER,EAAE,GAAGG,CAAC,EAAE,CAAC,OAAOgtG,GAAIxsG,EAAEX,CAAC,CAAC,CACxlB,SAAS+vP,IAAIpvP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAY,IAAVA,EAAE,IAAIj4H,GAAQ+3H,GAAGC,EAAG,IAAI5tI,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAI,EAAC,GAAI,EAAC,IAAIw3B,GAAIotI,CAAC,GAAGD,EAAE,EAAE,GAAE,GAAKtlK,GAAGG,EAAE0jD,EAAGyhH,EAAE,EAAE,KAAK,EAAE,EAAEzhH,EAAG1jD,EAAE,KAAK,GAAG,GAAGH,EAAE,GAAG,GAAIs8D,GAAIkpG,EAAExlK,EAAEwlK,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAQ,KAAMA,EAAE,GAAG,GAAuE,IAApExlK,EAAE6jD,EAAG2hH,EAAE,GAAG,EAAE,MAAM3yF,GAAI2yF,EAAE,GAAG,CAAC,EAAEjhE,GAAIihE,EAAEA,EAAE,EAAE,CAAC,GAAG,GAAG,EAAExlK,EAAE,GAAG,OAAOA,EAAE,EAAE,GAAOoqD,EAAE,IAAIvxB,EAAI74B,EAAE,CAAC,EAAEoqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAE5pD,EAAE,EAAE,GAAG,KAAMA,EAAE,EAAE,EAAEqzC,EAAI7zC,EAAE,CAAC,EAAEQ,EAAE,EAAG4zB,EAAE,IAAI2hE,GAAK,EAAC+6B,IAAMtwH,EAAE,EAAE,EAAEkD,EAAK,KAAK,IAAImwC,EAAIrzC,EAAE,EAAE,CAAC,EAAEqzC,EAAI7zC,EAAE,CAAC,EAAEQ,EAAE,CAAC,EAAIA,EAAE,EAAE,EAAEkD,EAAK,KAAK,IAAImwC,EAAIrzC,EAAE,EAAE,CAAC,EAAEqzC,EAAI7zC,EAAE,CAAC,EAAEQ,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAG,GAAGgmG,GAAIg/D,EAAEhlK,EAAE,CAAC,EAAG,IAAIktH,GAAGntH,EAAG,IAAIo3B,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAE,EAAG,KAAK,IAAIw3B,GAAI53B,CAAC,GAAGmtH,EAAE,EAAE,GAAI,GAAG1tH,GAAGG,EAAE0jD,EAAG6pE,EAAE,EAAE,GAAI,EAAC,EAAE,EAAE7pE,EAAG1jD,EAAE,GAAI,EAAC,GAAG,GAAGi0B,EAAE,EAAEp0B,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAE,CAC1lB,SAASgkL,IAAK,CAACA,GAAI3+K,EAAIu5O,GAAI,IAAIh7M,GAAIm/H,GAAG,EAAe,IAAItkG,GAAI,QAAQyvE,EAAI,CAAC,CAAC,EAAEg3G,GAAI,IAAIzmL,GAAI,MAAMyvE,EAAI,CAAC,CAAC,EAAEi3G,IAAI,IAAI1mL,GAAIm5D,IAAIsW,EAAI,CAAC,CAAC,EAAEu9E,GAAI,IAAIhtJ,GAAI,QAAQsS,GAAG,EAAG,KAAQkhK,GAAI,IAAIxzK,GAAI,eAAe,IAAI,EAAEuzK,IAAI,IAAIvzK,GAAI,gBAAgB,IAAI,EAAE0zK,GAAI,IAAI1zK,GAAI,cAAc,IAAI,EAAEyzK,GAAI,IAAIzzK,GAAI,eAAe,IAAI,EAAEovL,GAAI,IAAIpvL,GAAI,QAAQ,EAAK,EAAE,IAAIA,GAAI,QAAQyvE,EAAI,CAAC,CAAC,EAAE+1C,IAAI,IAAIxlH,GAAI,kBAAkB,IAAIlxB,EAAG,EAAEs5K,GAAI,IAAIpoJ,GAAI,QAAQyvE,EAAI,CAAC,CAAC,EAAE44E,IAAI,IAAIroJ,GAAI,QAAQyvE,EAAI,CAAC,CAAC,EAAEkhG,GAAI,IAAI3wK,GAAI,cAAc,CAAC,EAAEwmL,GAAI,IAAIxmL,GAAI,KAAK,EAAE,EAAEuxL,GAAI,IAAIvxL,GAAI,WAAWyvE,EAAI,CAAC,CAAC,EAAEiqG,GAAI,IAAI15K,GAAI,SAAS,CAAC,EAAE25K,GAAI,IAAI35K,GAAI,WAAW,CAAC,EAAE8yJ,GAAI,IAAI3tL,GAAIu/H,GAAG,EAAEmuD,GAAI,IAAI1tL,GAAIy/H,GAAG,CAAC,CAC3lB,SAAS4sF,IAAItvP,EAAEyzB,EAAE5zB,EAAE4pD,EAAE,CAAC,IAAIjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAc,IAAZklK,EAAEhlK,EAAE4zB,EAAE,EAAE,EAAE,EAAMh0B,EAAE,IAAIy4B,EAAIzE,EAAE,CAAC,EAAEh0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAyL,GAAxLslK,EAAE7hH,EAAGyhF,EAAIllI,CAAC,EAAE,EAAE,EAAED,EAAE27H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACu6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAKtxI,EAAE,IAAIk3D,GAAG,EAAG4+D,MAAMob,EAAEzhH,EAAG0lE,EAAIm8C,GAAG76C,IAAM+jC,GAAK,EAAC,EAAE,EAAEzuJ,EAAE,EAAE27H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACm6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAElxI,EAAE,EAAE,EAAEj0B,EAAE,GAAEutH,EAAE,IAAI33D,GAAI,EAAE51D,EAAE,CAAC,EAAKulK,EAAE,IAAIjmE,EAAK,EAACsE,IAAM2pB,EAAE,EAAE83C,UAAUE,EAAE,GAAG9hE,GAAK8pB,EAAE,EAAEltH,MAAO,UAAkC,GAAzBF,EAAEoD,EAAK,KAAK,IAAIvD,EAAE,EAAEutH,EAAE,CAAC,EAAK,EAAAptH,GAAG8pD,GAAG,CAACwlJ,IAAIx7K,CAAC,GAA0C,IAA9Bp0B,EAAE0lK,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAO,EAAMH,EAAE,IAAIjkB,GAAIokB,EAAE,CAAC,EAAE78F,GAAI08F,EAAE,CAAC,GAAG18F,GAAI08F,EAAE,CAAC,GAAIhlK,EAAEsjD,EAAGglB,GAAI08F,EAAE,CAAC,EAAEjgC,EAAIigC,EAAE,CAAC,EAAEjgC,EAAIigC,EAAE,CAAC,EAAE,EAAE,EAAEE,EAAEllK,EAAE,GAAGmlK,EAAEnlK,EAAE,EAAEA,EAAE,EAAEmD,EAAK,KAAK,IAAIo4H,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACs6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE/3C,EAAE,CAAC,EAAE,GAAGo/G,IAAInsO,EAAEJ,EAAEmtH,EAAE1tH,EAAE0lK,CAAC,CAAE,CAAC,CAC5lB,SAASw6B,IAAIv/L,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAoC,GAAlCvtH,EAAE,IAAIisI,GAAIzrI,EAAE,EAAE,CAAC,EAAEypD,EAAE,IAAIgiF,GAAIzrI,EAAE,EAAE,CAAC,EAAKA,EAAE,EAAG,IAAIH,EAAE,EAAEA,EAAEG,EAAE,EAAEH,IAAKqyE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,MAAQ,KAAIK,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,IAAKqyE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE8lF,GAAI9lF,CAAC,EAAoD,IAAjDi0B,EAAEyf,GAAKg/B,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE66E,EAAG76E,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,CAAC,EAAC,EAASQ,EAAE,EAAEyzB,EAAEojL,IAAI,CAAS,IAARx3M,EAAEo0B,EAAEs5F,EAAE,EAAQhqH,EAAK,KAAK,IAAI0wB,EAAEp0B,CAAC,EAAEw3M,IAAK,EAAE9pF,EAAEt5F,EAAEyf,GAAKg/B,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE66E,EAAG76E,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,CAAC,EAAC,EAAG0yE,GAAIzoB,EAAE,EAAEA,EAAE,EAAE,GAAE,CAAE,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAKsjE,EAAE/sH,EAAE,IAAGkyE,GAAI1yE,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEilP,IAAIzkP,EAAEA,EAAE,EAAE+sH,EAAE1tH,EAAEoqD,EAAEjqD,CAAC,EAAE0yE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,GAAE0yE,GAAIzoB,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,GAAG,CAACzpD,EAAE,EAAG,IAAIH,EAAE,EAAEA,EAAEG,EAAE,EAAE,EAAEH,IAAKqyE,GAAI1yE,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE8lF,GAAI9lF,CAAC,EAAGQ,EAAE,EAAE,GAAKA,EAAE,EAAE,EAAI,CAC/lB,SAASioI,IAAK,CAACA,GAAIvjI,EAAI4mO,KAAKxuL,KAAMC,IAAK,EAAEouL,IAAIjoL,EAAGwpG,EAAItrG,EAAIrE,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEquL,GAAIloL,EAAGwpG,EAAItrG,EAAIrE,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEsuL,IAAInoL,EAAGwpG,EAAItrG,EAAIrE,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEwyM,GAAIxyM,GAAI,GAAGmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEyyM,GAAIzyM,GAAI,GAAGmrF,GAAIhlF,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE0yM,GAAI1yM,GAAI,GAAGmuL,IAAIhoL,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAEmG,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE2yM,GAAIxsM,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE4yM,GAAIzsM,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE6yM,GAAI1sM,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE8yM,GAAI3sM,EAAGwpG,EAAItrG,EAAIrE,GAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE+yM,IAAI/yM,GAAI,EAAEgzM,IAAIhzM,GAAI,EAAEizM,IAAIjzM,GAAI,EAAEkzM,IAAIlzM,GAAI,EAAEmzM,IAAInzM,GAAI,EAAEozM,IAAIpzM,GAAI,EAAEqzM,IAAIrzM,GAAI,EAAEszM,IAAItzM,GAAI,EAAEuzM,IAAIvzM,GAAI,EAAEwzM,IAAIxzM,GAAI,GAAGyzM,IAAIzzM,GAAI,EAAE,CAChmB,SAAS2yG,IAAI1vJ,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEO,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEypD,EAAE,EAAEh2B,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE9zB,EAAE,IAAImlK,EAAEjlK,EAAE,GAAI,EAACilK,EAAE,GAAI,GAAE,CAAkD,GAAjDD,EAAE3hH,EAAG4hH,EAAE,KAAK,EAAE,EAAEH,EAAEE,EAAE,IAAI/lE,EAAK,EAAC+5C,KAAMgsB,EAAE,GAAG50B,GAAIxwI,EAAE,EAAKklK,EAAE,CAA6B,GAA5BI,EAAE7hH,EAAG0lE,EAAIi8C,GAAG36C,EAAG,EAAGysD,GAAG,EAAG,EAAE,EAAK,CAAC5R,EAAG,SAAStlK,GAAGg0O,IAAIzzO,EAAEypD,EAAEo7G,EAAEE,CAAC,CAAC,KAAK,CAAC,IAAIH,EAAE,IAAI1sI,EAAI2sI,EAAE,CAAC,EAAED,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA+B,GAAtBhlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEplK,EAAEI,EAAE,EAAKJ,EAAE,EAAE,GAAGi0B,EAAE,EAAE,CAACmV,EAAI5oC,EAAE,EAAE6kK,CAAC,EAAE,SAASllK,CAAC,MAAMF,GAAGO,EAAE,EAAER,EAAE,CAAC,EAAG,IAAIutH,EAAE,IAAI70F,EAAI2sI,EAAE,CAAC,EAAE93C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA+B,GAAtB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAEvtH,EAAEH,EAAE,EAAKG,EAAE,EAAE,GAAGi0B,EAAE,EAAE,CAACmV,EAAI5oC,EAAE,EAAE6kK,CAAC,EAAE,SAASllK,CAAC,MAAMF,GAAGO,EAAE,EAAER,EAAE,CAAC,CAAG,CAAIqlK,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAO,GAAG7kK,EAAE,EAAE6kK,EAAE,CAAC,EAAEplK,GAAGolK,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,QAAQ7kK,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAE6kK,EAAE,CAAC,CAAC,EAAE7kK,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAEA,EAAE,EAAE6kK,EAAE,CAAC,CAAC,GAAOF,IAAI3kK,EAAE,EAAE6kK,EAAE,CAAC,EAAEplK,EAAE,CAAC,CAClmB,SAAS2gH,IAAIpgH,EAAE,CAACA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,EAAE,GAAMA,EAAE,EAAE,EAAK,CAClmB,SAASywP,IAAIzwP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAsD,IAApDnB,GAAI/rH,EAAE,yBAAyBG,EAAE,EAAE,IAAI,CAAC,EAAE+sH,EAAEiY,GAAGvxG,EAAE,CAAC,EAAMp0B,EAAE,IAAI64B,EAAIzE,EAAE,CAAC,EAAEp0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEsoH,GAAIoF,EAAEvtH,EAAE,CAAC,EAA+B,GAA7BiqD,EAAEvG,EAAG0lE,EAAIn1F,GAAGnG,KAAMojO,IAAK,EAAC,GAAG,EAAKjnM,IAAI+kC,GAAK,EAAC+/B,IAAM,OAAOrrE,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAE,EAAG,CAAA,IAAK,GAAEr5C,GAAI54G,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAE6iE,GAAIn8J,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAK/sH,EAAE,IAAI27F,GAAG,EAAGm3B,KAAM88D,GAAIn8J,EAAEs5F,CAAC,EAAEmf,GAAIz4G,EAAEs5F,CAAC,IAAOmf,GAAIz4G,EAAEs5F,CAAC,EAAE6iE,GAAIn8J,EAAEs5F,CAAC,EAAE,SAAU/sH,EAAE,IAAI27F,KAAMm3B,IAAM,OAAO5vE,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAE,GAAG,IAAK,GAAEr5C,GAAI54G,EAAEs5F,CAAC,EAAEmf,GAAIz4G,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAE6iE,GAAIn8J,EAAEs5F,CAAC,EAAEsf,GAAI54G,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAEsf,GAAI54G,EAAEs5F,CAAC,EAAE6iE,GAAIn8J,EAAEs5F,CAAC,CAAE,KAAO,QAAO7pE,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAE,EAAG,CAAA,IAAK,GAAEr5C,GAAI54G,EAAEs5F,CAAC,EAAEmf,GAAIz4G,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAEsf,GAAI54G,EAAEs5F,CAAC,EAAE6iE,GAAIn8J,EAAEs5F,CAAC,EAAE,MAAM,IAAK,GAAE6iE,GAAIn8J,EAAEs5F,CAAC,EAAEsf,GAAI54G,EAAEs5F,CAAC,CAAE,CAAGlB,GAAIhsH,CAAC,CAAC,CACvmB,SAASqzO,IAAIlzO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAA8F,IAA5F2kK,EAAE,IAAI7jG,GAAI8jG,EAAE,IAAI9jG,GAAIphE,EAAE,IAAIohE,GAAI9gE,EAAE,IAAI8gE,GAAInhE,EAAEszC,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAG,EAAG8+J,GAAK,CAAA,CAAC,EAAE/sL,EAAE6zC,EAAImnC,EAAGuuC,EAAIn1F,EAAEguI,EAAG,CAAC,CAAC,EAAMkD,EAAE,IAAIzsI,EAAIr4B,CAAC,EAAE8kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAqD,GAA5C53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEG,EAAE5hH,EAAG0lE,EAAImE,GAAG7C,EAAK,EAAC6iD,GAAK,EAAC,EAAE,EAAKjI,IAAIhmE,EAAK,EAAC+5C,IAAkB,IAAZgsB,EAAE,EAAE,GAAG93C,EAAE83C,CAAC,EAAMrlK,EAAE,IAAIqxG,GAAGphC,GAAGm3G,GAAI75D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEwpC,GAAI47H,EAAEn7G,EAAE,EAAE,CAAC,UAAWq7G,GAAG70B,GAAiB,IAAZhwI,EAAE,EAAE,GAAG8sH,EAAE9sH,CAAC,EAAMT,EAAE,IAAIqxG,GAAGphC,GAAGm3G,GAAI75D,CAAC,EAAE,EAAE,GAAI,EAAC,IAAIzpH,EAAE,CAAC,EAAEo7I,GAAGl/I,CAAC,GAAIiqD,EAAEvG,EAAGu7F,GAAGj/I,CAAC,EAAE,EAAE,EAAEwpC,GAAIrpC,EAAE8pD,EAAE,EAAE,CAAC,EAAOm7G,EAAE,EAAE,GAAE,GAAI,IAAGG,EAAE,IAAIzrD,GAAI,EAAEj6G,CAAC,EAAEI,EAAE2rP,GAAIrmF,EAAEtxI,EAAEmxI,EAAEC,EAAE,CAACjlK,EAAE6zB,EAAE,EAAE,CAAC,EAAKh0B,EAAE,IAAGO,EAAE,EAAEJ,GAAGH,EAAE,GAAGJ,EAAEo0B,EAAE,EAAE,GAAGzzB,EAAE,EAAEyzB,EAAE,EAAE,GAAGzzB,EAAE,IAAML,EAAE,EAAE,GAAE,GAAI,IAAGolK,EAAE,IAAIzrD,GAAI,EAAEj6G,CAAC,EAAEI,EAAE2rP,GAAIrmF,EAAEtxI,EAAE9zB,EAAEM,EAAEwzB,EAAE,EAAE,EAAE7zB,EAAE6zB,EAAE,EAAE,CAAC,EAAEh0B,EAAE,IAAIg0B,EAAE,EAAE,GAAG7zB,GAAGH,EAAE,GAAGJ,GAAG,CAC1mB,SAASsxP,GAAI3wP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAEA,EAAEW,EAAE,EAAKyzB,GAAG,MAAMzzB,EAAE,EAAE,KAAKujE,GAAIvjE,EAAE,IAAI,IAAOA,EAAE,GAAG8wB,GAAI2C,CAAC,EAAEA,GAAGg2B,EAAEwV,GAAIxrC,EAAEyhD,GAAI,EAAE,CAAC,EAAKzrB,GAAG,IAAIjqD,EAAEi0B,EAAE,OAAO,EAAEg2B,CAAC,EAAEwV,GAAIxrC,EAAEyhD,GAAI,EAAE,CAAC,GAAG,IAAI,CAACmN,GAAI7iF,EAAEy6D,EAAG,GAAG,CAACooB,GAAI7iF,EAAEoxP,EAAG,GAAG,CAACvuK,GAAI7iF,EAAEqxP,EAAG,GAAG,CAACxuK,GAAI7iF,EAAEsxP,EAAG,GAAG,CAACzuK,GAAI7iF,EAAEuxP,EAAG,GAAG,CAAC1uK,GAAI7iF,EAAEwxP,EAAG,GAAG,CAAC3uK,GAAI7iF,EAAEyxP,EAAG,GAAG,CAAC5uK,GAAI7iF,EAAE0xP,EAAG,IAAI1xP,EAAE2xP,KAAKtxP,EAAEixE,GAAIr9C,EAAEyhD,GAAI,EAAE,CAAC,EAAEr1E,GAAG,KAAKL,GAAG,GAAGi0B,EAAE,OAAO5zB,EAAE,CAAC,GAAG0jE,GAAIvjE,EAAER,CAAC,IAAOA,EAAEi0B,EAAKwrC,GAAIxrC,EAAEyhD,GAAI,EAAE,CAAC,GAAG,KAAIzrB,EAAEwV,GAAIxrC,EAAEyhD,GAAI,EAAE,CAAC,EAAEzrB,GAAG,KAAKjqD,EAAEi0B,EAAE,OAAO,EAAEg2B,CAAC,GAAM,CAAC44B,GAAI7iF,EAAEy6D,EAAG,GAAG,CAACooB,GAAI7iF,EAAEoxP,EAAG,GAAG,CAACvuK,GAAI7iF,EAAEqxP,EAAG,GAAG,CAACxuK,GAAI7iF,EAAEsxP,EAAG,GAAG,CAACzuK,GAAI7iF,EAAEuxP,EAAG,GAAG,CAAC1uK,GAAI7iF,EAAEwxP,EAAG,GAAG,CAAC3uK,GAAI7iF,EAAEyxP,EAAG,GAAG,CAAC5uK,GAAI7iF,EAAE0xP,EAAG,GAAG1xP,EAAE2xP,IAAI1nM,GAAG,KAAKjqD,GAAG,GAAGi0B,EAAE,OAAOg2B,CAAC,IAAQjqD,EAAEi0B,GAAG8vC,GAAIvjE,EAAER,CAAC,EAAEA,GAAGi0B,IAAIzzB,EAAE,EAAEA,EAAE,KAAKA,EAAE,GAAG,GAAQ,EAAAA,EAAE,GAAG,IAAOspC,GAAItpC,EAAE,IAAIo0G,GAAIp0G,EAAE,EAAE,EAAEX,EAAEo0B,CAAC,CAAC,CAAC,CAC5mB,SAAS29N,IAAIpxP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAiB,GAAfO,EAAEwzB,EAAE,EAAE,EAAE,OAAU,EAAAxzB,EAAE,GAAqC,KAA3BR,EAAEwkE,EAAG4gD,GAAGsP,GAAI,GAAGl0H,EAAE,GAAG,CAAC,EAAE6kK,EAAE,EAAMD,EAAE,IAAI3sI,EAAIzE,EAAE,CAAC,EAAEoxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEplK,EAAEqlK,GAAG,EAAEF,EAAE,EAAE,EAAE,OAAwB,IAAjBG,EAAE,IAAIt5B,GAAIh4G,EAAE,EAAE,CAAC,EAAMg2B,EAAE,EAAEA,EAAExpD,EAAE,EAAEwpD,IAA2E,IAAtE5pD,GAAGqyE,GAAI6yF,EAAE,EAAEA,EAAE,EAAE,GAAI,CAAA,EAAE7hH,EAAG6hH,EAAE,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAE,GAAGplK,EAAE,IAAIu4B,EAAIr4B,EAAE,CAAC,EAAER,EAAE,EAAEslK,EAAE,EAAM/kK,EAAE,EAAEA,EAAEH,EAAEgqD,EAAE,CAAC,EAAE7pD,IAAqB,GAAhBF,EAAEwjD,EAAGyhF,EAAIhlI,CAAC,EAAE,EAAE,EAAKC,GAAGH,EAAEgqD,EAAE,CAAC,EAAE,GAAGu9J,GAAIhnN,EAAEN,EAAE+pD,EAAE,EAAEA,CAAC,EAAE,CAAmF,IAAlFsjE,EAAEttH,EAAEgqD,CAAC,EAAE,EAAEu9J,GAAIhnN,EAAEN,EAAE+pD,EAAE,EAAEA,CAAC,IAAIsjE,EAAE/sH,EAAE,EAAE,EAAEkjD,EAAGA,EAAGA,EAAGo4B,GAAIt7E,EAAE,EAAE,EAAEN,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAASilK,GAAG/kK,GAAE,CAAqB,GAApBu8O,EAAEj5L,EAAGo4B,GAAIz7E,EAAE,EAAE8kK,CAAC,EAAE,EAAE,EAAK,CAACqiD,GAAIhnN,EAAEm8O,EAAE1yL,EAAE,EAAEA,CAAC,EAAG,IAAIlqD,EAAE2jD,EAAGo4B,GAAIt7E,EAAE,EAAE,EAAEm8O,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,EAAG58O,EAAE,GAAE,GAAK6qN,EAAElnK,EAAG3jD,EAAE,GAAE,EAAG,EAAE,EAAEC,EAAEQ,EAAE,EAAE,EAAEkjD,EAAGknK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG5qN,EAAEH,GAAGG,EAAEutH,IAAI/jF,GAAIhpC,EAAE,EAAEkjD,EAAGknK,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEzlD,CAAC,CAACtlK,EAAE0tH,CAAC,EAAG,CAC9mB,SAAS2pE,GAAIjjK,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAsC,GAAjC5pD,GAAG,MAAMwiF,GAAIxiF,EAAEoxE,EAAG,GAAkBpxE,EAAE,QAAQ,GAAG4zB,EAAE,IAAIonE,KAAMy8D,IAAM,OAAO,KAAK,OAAO7jI,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,OAAO65E,GAAIztG,EAAEozL,EAAG,GAAG7iH,GAAK,EAACE,IAAKg9B,GAAIztG,EAAEqzL,EAAG,GAAG9iH,GAAK,EAACC,IAAK,KAAK,IAAK,GAAE,GAAG,CAAC,OAAOk9D,EAAI45D,GAAItnM,EAAEk0J,GAAI72E,EAAG,CAAC,CAAC,OAAOl9E,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO,KAAU,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,IAAK,GAAE,GAAG,CAAC,OAAOknL,GAAIrnL,CAAC,CAAC,OAAOG,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,GAAG,EAAG,OAAO,KAAU,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,IAAK,GAAE,OAAOH,EAAE,IAAK,GAAE,OAAAs7K,IAAI1nJ,CAAC,EAASs+L,IAAIt+L,EAAE5zB,CAAC,EAAE,IAAK,GAAE,OAAAs7K,IAAI1nJ,CAAC,EAASmrM,IAAInrM,EAAEA,EAAE,EAAE5zB,CAAC,EAAE,IAAK,GAAE,GAAG,CAAC,OAAA4pD,EAAE8sK,IAAI9iM,CAAC,EAAEg2B,EAAE,GAAG5pD,CAAC,EAAS4pD,CAAC,OAAOzpD,EAAE,CAAU,GAATA,EAAEsuK,GAAItuK,CAAC,EAAKurE,EAAGvrE,EAAE,EAAE,EAAG,OAAO,KAAU,MAAM0lC,EAAI1lC,CAAC,CAAC,CAAC,QAAQ,MAAM0lC,EAAI,IAAIoN,GAAI,0CAA0C,CAAC,CAAE,CAAC,CAC9mB,SAASu+M,IAAIrxP,EAAE,CAACklI,GAAK,EAAC,IAAIzxG,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAY,IAAVA,EAAE,IAAI95H,IAAQhrC,EAAE,IAAIq4B,EAAIl4B,CAAC,EAAEH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,GAAG,CAAC8kK,EAAE,GAAGlxI,EAAE,GAAGkxI,EAAE,EAAE,KAAKA,EAAE,EAAElxI,IAAM,CAACkxI,EAAE,GAAGlxI,EAAE,GAAGkxI,EAAE,EAAE,KAAGA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAElxI,IAAG,CAACkxI,EAAE,GAAGlxI,EAAE,GAAGkxI,EAAE,EAAE,KAAKA,EAAE,EAAElxI,IAAI,CAACkxI,EAAE,GAAGlxI,EAAE,GAAGkxI,EAAE,EAAE,KAAKA,EAAE,EAAElxI,GAAG,OAAAg2B,EAAE,IAAIoxI,IAAK3wG,GAAK,EAACrqB,GAAG,EAAG6pE,GAAI1pI,EAAEszJ,IAAI,IAAI5/G,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAAC1a,CAAC,CAAC,CAAC,CAAC,EAAEsjE,EAAE,IAAI8tE,GAAI/6H,EAAG,EAAE4pE,GAAI1pI,EAAEqzJ,IAAI,IAAI3/G,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAAC4oD,CAAC,CAAC,CAAC,CAAC,EAAEvtH,EAAE,IAAIq7L,GAAI76H,EAAG,EAAE0pE,GAAI1pI,EAAEwzJ,IAAI,IAAI9/G,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAAC3kE,CAAC,CAAC,CAAC,CAAC,EAAEH,EAAE,IAAIw7L,GAAI3rD,EAAG,EAAExF,GAAI1pI,EAAEuzJ,IAAI,IAAI7/G,GAAIwlE,EAAG9hE,EAAG6mI,GAAG,CAAC,EAAE95G,GAAI,IAAI,EAAE,CAAC9kE,CAAC,CAAC,CAAC,CAAC,EAAEskO,GAAIl6K,EAAE,EAAEoW,EAAG,EAAE8jK,GAAInkO,EAAE,EAAEwgE,EAAG,EAAE2jK,GAAItkO,EAAE,EAAE6vI,EAAG,EAAEy0F,GAAI52G,EAAE,EAAEjtD,EAAG,EAAE6kG,EAAE,EAAE,EAAE1gG,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEwjD,GAAIg9C,EAAE,EAAEl7G,EAAE,CAAC,EAAEk+D,GAAIg9C,EAAE,EAAE8E,GAAGjqK,EAAE,CAAC,CAAC,EAAEmoH,GAAIg9C,EAAE,EAAEtlK,EAAE,CAAC,EAAEsoH,GAAIg9C,EAAE,EAAE8E,GAAG18C,EAAE,CAAC,CAAC,EAAS43C,CAAC,CAC/mB,SAAS2sF,GAAItxP,EAAE,CAAC,IAAIyzB,EAAE,OAAOzzB,EAAE,EAAG,CAAA,IAAK,GAAE,CAAC,GAAGA,EAAE,GAAE,EAAI,OAAOA,EAAE,GAAG,GAAG,KAAK,CAAC,IAAK,GAAE,CAAC,GAAGA,EAAE,GAAI,EAAE,OAAOA,EAAE,GAAG,GAAG,KAAK,CAAC,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAG,OAAOA,EAAE,EAAE,GAAG,QAAS,MAAO,EAAM,CAAU,OAATyzB,EAAEzzB,EAAE,GAAI,EAAQA,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOyzB,GAAG,MAAMwf,GAAImnC,GAAG3mD,CAAC,CAAC,GAAGknC,GAAI36D,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOyzB,GAAG,MAAMyvB,EAAGzvB,EAAE,GAAG,EAAE,GAAGw5E,GAAIjtG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,OAAOyzB,GAAG,MAAMyvB,EAAGzvB,EAAE,GAAG,EAAE,IAAIw5E,GAAIjtG,EAAE,CAAC,EAAE+kG,IAAK,IAAK,GAAE,OAAOtxE,GAAG,MAAMknC,GAAIzX,EAAGzvB,EAAE,GAAG,EAAE,EAAEzzB,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOyzB,GAAG,MAAMyvB,EAAGzvB,EAAE,EAAE,EAAE,GAAGw5E,GAAIjtG,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOyzB,GAAG,MAAMyvB,EAAGzvB,EAAE,GAAG,EAAE,GAAGw5E,GAAIjtG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,OAAOyzB,GAAG,MAAMyf,EAAImnC,EAAG5mD,CAAC,CAAC,GAAGzzB,EAAE,EAAE,IAAK,GAAE,OAAOyzB,GAAG,MAAMyvB,EAAGzvB,EAAE,GAAG,EAAE,GAAGzzB,EAAE,EAAE,QAAQ,OAAOyzB,GAAG,KAAKzzB,EAAE,GAAG,KAAK,CAACkkD,GAAGzwB,EAAEzzB,EAAE,CAAC,CAAE,CAAC,CAC/mB,SAASm6O,GAAIn6O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,OAAG/sH,EAAE,GAAI,GAAEA,EAAE,GAAI,IAAE+sH,EAAErZ,GAAI1zG,EAAEkjD,EAAGrjD,EAAE,EAAE,CAAC,EAAKk6D,EAAGgzD,CAAC,IAAIhzD,EAAGl6D,CAAC,IAAGG,EAAE,GAAGyzB,CAAC,EAAEzzB,EAAE,GAAGyzB,EAAE84H,IAAIvsJ,EAAEyzB,EAAEs5F,CAAC,CAAC,EAAK/sH,EAAE,GAAE,IAAIX,GAAGG,EAAE0jD,EAAGrjD,EAAE,EAAE,EAAEG,EAAE,KAAKA,EAAE,GAAI,EAACR,EAAE,GAAGQ,EAAE,EAAEu+L,GAAIr7I,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAE,CAAE,EAAE,EAAE,CAAC,EAAE,EAAEkjD,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAE,CAAE,EAAE,GAAI,EAAC,EAAE,EAAE,GAAE,EAAG,IAAI,EAAER,EAAE,GAAGQ,EAAE,EAAEujJ,GAAI/jJ,EAAE,GAAE,EAAG++L,GAAIr7I,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAI,CAAA,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,EAAER,EAAE,GAAGQ,EAAE,EAAE,GAAGA,EAAE,GAAI,EAAC,KAAK,IAAI,GAAG,CAACkjD,EAAG6pE,EAAE,EAAE,EAAE,GAAE,IAAK1tH,GAAGoqD,EAAEvG,EAAG6pE,EAAE,EAAE,EAAE/sH,EAAE,GAAI,EAACA,EAAE,GAAE,EAAGypD,EAAE,GAAGzpD,EAAE,EAAEu+L,GAAIr7I,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAE,CAAE,EAAE,EAAE,CAAC,EAAE,EAAEkjD,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAE,CAAE,EAAE,GAAI,EAAC,EAAE,EAAE,GAAE,EAAGX,CAAC,EAAEoqD,EAAE,GAAGzpD,EAAE,EAAEujJ,GAAI95F,EAAE,KAAK80I,GAAIr7I,EAAG4mG,GAAI79B,GAAIjsH,EAAE,CAAC,EAAEA,EAAE,GAAE,CAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAKX,CAAC,EAAEoqD,EAAE,GAAGzpD,EAAE,EAAE,GAAGA,EAAE,GAAI,EAAC,KAAKX,CAAC,IAAMA,GAAGA,EAAE,GAAI,GAAC4iE,GAAIjiE,EAAE,CAAC,GAAGA,EAAE,GAAGA,EAAE,GAAG,EAAEH,EAAEktH,EAAEt5F,EAAE,EAAK,CAAC,EAASs5F,GAAUltH,CAAC,CAChnB,SAASytP,IAAIttP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAyI,IAAvI8kK,EAAE3xH,EAAImnC,EAAGuuC,EAAI5oH,GAAGstB,KAAMm/J,GAAK,CAAA,CAAC,EAAEhjI,EAAEvW,EAAImnC,EAAGuuC,EAAI5oH,EAAEuxP,GAAG,CAAC,CAAC,EAAExsF,EAAE,IAAIjkJ,GAAIgiE,EAAIiiF,EAAE0nB,GAAI5nB,EAAEp7G,CAAC,EAAEm7G,EAAEnxI,EAAEl0B,EAAEqlK,EAAE,EAAE3kK,EAAE2kK,EAAE,EAAE,EAAEu3E,EAAEv3E,EAAE,EAAE,EAAEwlD,EAAEnqJ,GAAIhgE,EAAE,CAAC,EAAEP,EAAEugE,GAAIk8K,EAAE,CAAC,EAAE38O,EAAE,IAAIqlC,EAAQigI,EAAEslD,EAAEtlD,GAAGplK,EAAEolK,IAAKH,EAAE,IAAIi6B,GAAI5+L,CAAC,EAAEq0B,GAAIswI,GAAGh6E,GAAK,EAAC2+D,GAAG,EAAGxmE,EAAI6hF,GAAGz6C,EAAG,EAAG+jC,IAAK2W,CAAC,EAAE9hF,EAAI6hF,EAAExO,IAAKp4D,GAAG,EAAGva,GAAG,EAAGV,EAAI6hF,EAAEsqB,GAAIlqB,CAAC,EAAEtlK,EAAEyjD,EAAGo4B,GAAIt7E,EAAE,EAAE8kK,CAAC,EAAE,EAAE,EAAEA,GAAGslD,EAAE7f,GAAI5lC,EAAEllK,EAAE,EAAE,EAAE,OAAOI,EAAEJ,CAAC,EAAEu4H,GAAI2sC,EAAEllK,CAAC,EAAEM,EAAEmzC,EAAImnC,EAAGuuC,EAAIg8C,EAAExP,EAAG,CAAC,CAAC,EAAKr1J,EAAE,IAAGA,EAAE,EAAE+iF,EAAI8hF,EAAExP,GAAIr1J,CAAC,GAAE4kK,EAAE,EAAE,EAAE5kK,EAAEJ,EAAEoD,EAAK,KAAK,MAAMhD,EAAE,CAAC,EAAEgtH,EAAE,IAAIyqF,GAAI9wK,GAAIqmF,GAAGjuB,EAAK,EAACmE,GAAK,EAAC9oD,GAAI4yE,EAAE43C,CAAC,EAAE53C,EAAE,EAAE,EAAEptH,EAAEC,EAAE,IAAI43M,GAAI9wK,GAAI9mC,EAAEwjG,EAAG,EAAEjpD,GAAIv6C,EAAE+kK,CAAC,EAAE/kK,EAAE,EAAE,EAAED,EAAEmqE,GAAI86F,EAAE73C,CAAC,EAAE1tH,EAAE,IAAIksH,GAAIuzB,GAAIz/I,EAAEulK,CAAC,EAAE9hF,EAAIzjF,EAAE0/I,GAAI,IAAI,EAAEl1E,GAAIxqE,EAAEO,CAAC,EAAEkqE,GAAIzqE,EAAEE,CAAC,EAAE4wM,IAAIxrC,EAAEC,EAAEvlK,CAAC,EAAEG,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEH,EAAEulK,EAAEvlK,EAAE,OAAOG,CAAC,CACjnB,SAAS+jO,GAAIvjO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAgH,IAA9GE,EAAEsjD,EAAGg8I,GAAIl/L,GAAG8+F,EAAK,EAACmE,GAAG,EAAG,KAAK,GAAI,EAAC,EAAE,EAAE,EAAExjG,EAAEyjD,EAAGg8I,GAAIl/L,EAAEojG,EAAG,EAAE,GAAI,EAAC,GAAE,EAAG,EAAE,EAAE,EAAEuhE,EAAE/kK,EAAE,EAAE,OAAOF,EAAEw7H,GAAIh4E,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAQ2kK,KAAI,GAAE,CAA8J,IAA7J1kK,GAAG48D,GAAI,EAAEj9D,EAAE,EAAE,MAAM,EAAEsjD,EAAGtjD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGJ,GAAGq9D,GAAI,EAAEp9D,EAAE,EAAE,MAAM,EAAEyjD,EAAGzjD,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG08O,EAAE38O,EAAE,EAAE,EAAEH,EAAE6gE,GAAIi8K,EAAE38O,EAAE,CAAC,EAAEysI,IAAIhsI,EAAET,EAAE,EAAEH,CAAC,EAAEwqE,GAAIrqE,EAAE,IAAI,EAAEsqE,GAAItqE,EAAE,IAAI,EAAEG,EAAEM,EAAE,EAAEwzB,GAAGoyE,GAAIlmG,EAAE,IAAIy4C,GAAI14C,CAAC,CAAC,EAAM+pD,EAAE6vG,GAAI95J,EAAE,EAAE,CAAC,EAAEiqD,EAAE,GAAGA,EAAE,EAAE,GAAI5pD,EAAEqjD,EAAG0tF,GAAInnF,CAAC,EAAE,CAAC,EAAEo8C,GAAIlmG,EAAE,IAAIy4C,GAAIv4C,CAAC,CAAC,EAAQ,IAANN,EAAEU,EAAE,EAAM8kK,EAAE,IAAI7sI,EAAI14B,EAAE,CAAC,EAAEulK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAExlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEulK,EAAkD,GAAhDslD,EAAElnK,EAAG0lE,EAAI3oH,GAAGqtB,GAAK,EAACyxH,GAAK,EAAC,EAAE,EAAEhyB,EAAE7pE,EAAG0lE,EAAIppH,EAAEu/I,EAAG,EAAE,EAAE,EAAKhyB,EAAiC,IAA1Bq9F,IAAGA,EAAE,IAAIz9K,GAAIm2C,EAAI7iF,EAAE8+I,GAAIqrE,CAAC,GAAMvlD,EAAEvL,GAAIvsC,EAAE,CAAC,EAAE83C,EAAE,GAAGA,EAAE,EAAE,GAAID,EAAE1hH,EAAG0tF,GAAIi0B,CAAC,EAAE,CAAC,EAAEh/D,GAAIukH,EAAE,IAAIhyK,GAAIwsH,CAAC,CAAC,CAAG,CAAC,CAClnB,SAAS2gC,IAAIvlM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAiD,GAA/CI,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE7zB,EAAEsjD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAK7zB,EAAE,GAAE,EAAG,CAACC,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,CAAmD,IAAlD+kK,EAAE5kK,EAAE,EAAE,IAAIm+F,GAAK,EAACoV,GAAG,EAAGwZ,EAAE,EAAE43C,EAAE/kK,EAAE,GAAI,EAACilK,EAAE,KAAKC,EAAE,EAAEC,EAAE,EAAQJ,EAAE,GAAI,GAAEl7G,EAAEvG,EAAGyhH,EAAE,GAAI,EAAC,GAAG,EAAEnlK,EAAE0zC,EAAImnC,EAAG5wB,EAAE,EAAE,IAAI+oB,GAAK,EAACC,GAAK,CAAA,CAAC,EAAEpzE,EAAEoqD,EAAE,EAAE,GAAI,EAAC,EAAEzpD,EAAE,EAAE,IAAI47E,GAAG,EAAGC,GAAK,GAAEiuI,IAAI9pN,EAAEyzB,CAAC,EAAMoxI,GAAgEplK,EAAEslK,EAAEF,EAAE,EAAE,EAAE7kK,EAAE,EAAEypD,EAAE,EAAE,EAAEsjE,EAAEhqH,EAAK,KAAK,IAAIgqH,GAAG5lD,GAAE,EAAG0yF,GAAG3F,EAAG,EAAEnxJ,EAAK,KAAK,IAAI+hK,EAAEtlK,CAAC,GAAG00J,IAAK4Q,GAAGtlK,GAAG,MAAMslK,CAAC,GAAG,MAAMtlK,CAAC,EAAE,EAAEC,GAAGD,EAAEslK,GAAE,GAA1K9kK,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAI+sH,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAEu4C,IAAItlK,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAEjqD,CAAC,CAAC,GAA0HqlK,EAAEp7G,EAAEq7G,EAAEtlK,EAAEulK,EAAE1lK,EAAOW,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAGP,EAAEslK,EAAE/kK,EAAE,EAAE,EAAE4kK,IAAInlK,GAAGolK,EAAE,EAAE,GAAG93C,EAAEhqH,EAAK,KAAK,IAAIgqH,GAAG5lD,GAAI,EAAC0yF,GAAG3F,EAAG,EAAEnxJ,EAAK,KAAK,IAAI+hK,EAAE,CAAC,GAAG5Q,IAAK4Q,GAAG,GAAG,MAAMA,CAAC,GAAG,MAAM,CAAC,EAAE,EAAErlK,GAAG,EAAEqlK,GAAI,GAACjlK,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEktH,CAAC,CACpnB,SAAS44E,IAAI3lM,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAiD,GAA/CI,EAAEqjD,EAAG25D,GAAI78G,EAAE,EAAEyzB,CAAC,EAAE,GAAG,EAAE7zB,EAAEsjD,EAAGA,EAAGgwB,GAAGlzE,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAK7zB,EAAE,GAAE,EAAG,CAACC,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,MAAM,CAAiF,IAAhF+kK,EAAE5kK,EAAE,EAAE,IAAIm+F,GAAK,EAACoV,GAAG,EAAGwZ,EAAE,EAAE/sH,EAAE,EAAE,IAAI47E,GAAK,EAACC,GAAG,GAAImuI,IAAIhqN,EAAEyzB,CAAC,EAAEkxI,EAAE/kK,EAAE,GAAE,EAAGilK,EAAE,KAAKE,EAAE,EAAED,EAAE,EAAQH,EAAE,GAAI,GAAEl7G,EAAEvG,EAAGyhH,EAAE,GAAE,EAAG,GAAG,EAAEtlK,EAAE6zC,EAAImnC,EAAG5wB,EAAE,EAAE,IAAI+oB,GAAK,EAACC,GAAG,CAAE,CAAC,EAAEjzE,EAAEiqD,EAAE,EAAE,GAAI,EAAC,EAAMo7G,GAAgEplK,EAAEqlK,EAAED,EAAE,EAAE,EAAE7kK,EAAE,EAAEypD,EAAE,EAAE,EAAEsjE,EAAEhqH,EAAK,KAAK,IAAIgqH,GAAG5lD,GAAE,EAAG0yF,GAAG3F,EAAG,EAAEnxJ,EAAK,KAAK,IAAIgiK,EAAE1lK,CAAC,GAAG60J,IAAK6Q,GAAG1lK,GAAG,MAAM0lK,CAAC,GAAG,MAAM1lK,CAAC,EAAE,EAAEI,GAAGJ,EAAE0lK,GAAE,GAA1K/kK,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAI+sH,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAEu4C,IAAItlK,EAAE,EAAE,EAAEypD,EAAE,EAAE,EAAEpqD,CAAC,CAAC,GAA0HwlK,EAAEp7G,EAAEs7G,EAAE1lK,EAAEylK,EAAEtlK,EAAOQ,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAGP,EAAEqlK,EAAE9kK,EAAE,EAAE,EAAE4kK,IAAInlK,GAAGolK,EAAE,EAAE,GAAG93C,EAAEhqH,EAAK,KAAK,IAAIgqH,GAAG5lD,GAAI,EAAC0yF,GAAG3F,EAAG,EAAEnxJ,EAAK,KAAK,IAAIgiK,EAAE,CAAC,GAAG7Q,IAAK6Q,GAAG,GAAG,MAAMA,CAAC,GAAG,MAAM,CAAC,EAAE,EAAEtlK,GAAG,EAAEslK,GAAI,GAACllK,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEktH,CAAC,CACpnB,SAAS+4H,IAAI9lP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAkE,IAAhE,KAAK,EAAEI,EAAE2kK,EAAElxI,EAAE,EAAE,OAAO7zB,EAAEC,EAAE,EAAE,OAAO,KAAK,EAAEokE,EAAGopD,GAAGC,GAAI,GAAGq3C,EAAE/kK,EAAE,EAAE,CAAC,EAAMmtH,EAAE,EAAEA,EAAE43C,EAAE53C,IAAK,KAAK,EAAEA,CAAC,EAAEt5F,EAAE,EAAEs5F,CAAC,EAAE,IAAI1tH,EAAE,EAAEA,EAAEO,EAAEP,IAAK,KAAK,EAAEslK,EAAEtlK,CAAC,EAAEQ,EAAE,EAAER,CAAC,EAAE,GAAGo0B,EAAE,GAA+B,GAA5B,KAAK,EAAEmuE,GAAGnuE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG5zB,CAAC,EAAKA,EAAE,EAAG,IAAIL,EAAEK,EAAE,EAAE,GAAI,EAACL,EAAE,GAAI,GAAGiqD,EAAEvG,EAAG1jD,EAAE,GAAE,EAAG,GAAG,EAAKiqD,GAAGh2B,IAAiB,KAAK,EAAE,GAAGg2B,CAAC,EAAE,EAAEA,EAAE,EAAE,KAAK,EAAE,GAAGA,CAAC,QAAY5pD,EAAE,IAAG,KAAK,EAAE+hG,GAAG/hG,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG4zB,CAAC,GAAE,KAAK,EAAEA,EAAE,EAAE5zB,EAAE,EAAE,KAAK,EAAE4zB,EAAE,EAAE5zB,EAAE,EAAE,KAAK,EAAE,EAAEw5J,GAAI,KAAK,KAAK,EAAE,KAAK,CAAC,EAAEjtF,GAAI34C,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM24C,GAAIvsE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAKw5J,GAAI,MAAMnmH,EAAIk5B,GAAI34C,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEyf,EAAIk5B,GAAIvsE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAEusE,GAAI34C,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK4lI,GAAI,KAAKjtF,GAAI34C,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE24C,GAAIvsE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAMw5J,GAAI,KAAKjtF,GAAIvsE,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACrnB,SAAS2xP,IAAIxxP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAuB,IAArB9kK,EAAE,EAAE,IAAI47G,IAAIqsD,IAAI7tB,EAAE,CAAC,EAAM3wF,EAAE,IAAIvxB,EAAIzE,EAAE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAmE,IAAlE5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,GAAG,EAAEk7G,EAAE,IAAImwB,GAAI57E,EAAG9hE,EAAG8pJ,GAAG,CAAC,EAAE/8H,GAAI,GAAG,EAAE,CAAA,CAAE,CAAC,EAAEv7B,EAAI5oC,EAAE,EAAE,EAAE2kK,CAAC,EAAMC,EAAE,IAAI1sI,EAAIr4B,EAAE,CAAC,EAAE+kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,GAAG,EAAEC,EAAE,IAAIxyF,GAAIryE,EAAEJ,CAAC,EAAE6xP,GAAI5sF,EAAE3hH,EAAG0lE,EAAI/oH,EAAE,GAAGqqH,EAAG,EAAGusD,GAAG,EAAG,EAAE,CAAC,EAAMryH,GAAIpkD,EAAE,EAAEH,CAAC,IAAG25D,GAAIx5D,EAAE,EAAEH,EAAE,IAAIu1D,GAAIx1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE45D,GAAIx5D,EAAE,EAAEH,EAAEglK,CAAC,GAAEj8H,EAAI5oC,EAAE,EAAE,EAAE6kK,CAAC,EAAE/5B,GAAI65B,EAAEE,CAAC,EAAE,IAAI93C,EAAE,IAAI70F,EAAIr4B,EAAE,CAAC,EAAEktH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE83C,EAAE,IAAIxyF,GAAIryE,EAAEX,EAAE,GAAI,CAAA,EAAEm6D,GAAIx5D,EAAE,EAAEX,EAAE,IAAIs3D,GAAIguG,EAAEE,CAAC,CAAC,EAAE4sF,GAAI5sF,EAAE3hH,EAAG0lE,EAAI/oH,EAAE,GAAGqqH,IAAMusD,KAAM,EAAE,CAAC,EAAKp3K,EAAE,OAAMylK,EAAE,IAAIxyF,GAAItyE,EAAEX,EAAE,GAAE,EAAG,CAAC,EAAEoyP,GAAI3sF,EAAE5hH,EAAG0lE,EAAI/oH,EAAE,EAAE42K,EAAG,EAAE,EAAE,CAAC,EAAEj3K,EAAE,IAAIs1L,GAAI57E,EAAG9hE,EAAG8pJ,GAAG,CAAC,EAAE/8H,GAAI,GAAG,EAAE,CAAE,CAAA,CAAC,EAAE2mE,GAAItrI,EAAEslK,CAAC,EAAEtuF,GAAGx2E,EAAE,EAAEX,EAAE,GAAE,EAAG,IAAIs3D,GAAIguG,EAAEG,CAAC,CAAC,EAAG,CAAC,OAAO9kK,EAAE,CAAC,CACtnB,SAAS0xP,IAAI1xP,EAAE,CAAC,IAAIyzB,EAAE,KAAK,EAAEzzB,EAAEyzB,GAAGk3D,GAAK,EAACuuB,EAAG9hE,EAAGiyG,GAAG,CAAC,EAAEjwC,EAAI,IAAI,EAAE,CAACiT,GAAIi9B,GAAI1K,GAAI2K,GAAIC,GAAIC,EAAG,CAAC,GAAG,OAAO,KAAK,EAAErgD,GAAGijF,GAAG,CAAC7hH,EAAI8hH,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC74J,EAAEA,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE21E,GAAGijF,GAAG,CAAC7hH,EAAI8hH,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC74J,EAAEA,CAAC,EAAE,CAAC,EAAEm6F,GAAI,KAAKvB,IAAK/+F,KAAM8+J,IAAKc,EAAG,EAAE5f,GAAI,KAAKjhD,GAAIi9B,GAAImjC,GAAIQ,EAAG,EAAEt/D,GAAI,KAAKtB,GAAIk9B,GAAIkjC,EAAG,EAAE9+D,GAAI,KAAKtB,GAAIuyB,GAAI6tC,EAAG,EAAEnf,GAAI,KAAKjhD,GAAIm9B,GAAI4iC,GAAIc,EAAG,EAAEt/D,GAAI,KAAK07B,GAAImY,GAAIurB,EAAG,EAAEr/D,GAAI,KAAK27B,GAAIC,GAAIkY,EAAG,EAAE9zC,GAAI,KAAK27B,GAAI1K,GAAI6iB,EAAG,EAAE6L,GAAI,KAAKhkB,GAAIE,GAAIijC,GAAIQ,EAAG,EAAEnnH,IAAI,KAAKyjF,GAAIkY,EAAG,EAAE9zC,GAAI,KAAK47B,GAAI3K,GAAI6iB,EAAG,EAAE9zC,GAAI,KAAK47B,GAAIC,GAAImjC,EAAG,EAAE7mH,IAAI,KAAK84E,GAAImuC,EAAG,EAAEzf,GAAI,KAAK1uB,GAAI4K,GAAIqjC,GAAID,EAAG,EAAEh/D,GAAI,KAAK47B,GAAIiY,GAAIA,EAAG,EAAE7zC,GAAI,KAAK67B,GAAIgY,GAAIurB,EAAG,EAAE1f,GAAI,KAAK7jB,GAAIp9B,GAAIogE,GAAIQ,EAAG,EAAE3f,GAAI,KAAK7jB,GAAID,GAAIijC,GAAIQ,EAAG,EAAE3f,GAAI,KAAK7jB,GAAIH,GAAImjC,GAAIQ,EAAG,CAAC,CACtnB,SAAS0kE,IAAI3xP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAW,GAATr9F,EAAEltH,EAAE,GAAE,EAAM0rE,EAAGwhD,EAAE,EAAE,GAAI7pE,EAAG6pE,EAAE,EAAE,EAAE,GAAGnzC,KAASmrF,EAAE7hH,EAAGrjD,EAAE,KAAK,EAAE,EAAEI,EAAE+4E,GAAIh5E,EAAE,EAAE+kK,CAAC,EAAK9kK,GAAG8kK,GAAE,CAAuC,GAAtCF,EAAElvB,GAAI5oB,EAAE9sH,CAAC,EAAEgtE,GAAIjtE,EAAEyzB,EAAEomF,GAAI75G,EAAEyzB,EAAEoxI,CAAC,CAAC,EAAEC,EAAE,KAAQ7iG,GAAIjiE,EAAE,CAAC,IAAGypD,EAAEkqH,IAAKozB,GAAK,EAACC,IAAKhnM,EAAE,EAAE,GAAI,EAAC+sH,CAAC,EAAKtjE,GAAGqgG,GAAI9pJ,EAAE,EAAE,GAAI,EAACA,EAAE,CAAC,GAAE,CAAqC,IAApCoqN,EAAE3iD,GAAIznK,EAAE,EAAE,GAAE,EAAG+sH,CAAC,EAAE43C,EAAE,EAAEtlK,EAAE6jD,EAAGljD,EAAE,EAAE,GAAG,EAAMJ,EAAE,EAAEA,EAAE6zB,EAAE,EAAE7zB,EAAGJ,EAAEH,EAAEO,CAAC,EAAEwqN,EAAE,GAAG5qN,EAAE,GAAE,CAAE,GAAG,EAAEmlK,EAAEG,EAAE,IAAI93C,GAAIhtH,EAAE,EAAE,EAAEypD,EAAEs7G,EAAE9kK,EAAE0kK,EAAE,EAAK,EAAEG,EAAE,GAAG,IAAIntC,GAAI33H,EAAE,EAAE,EAAEA,EAAE,EAAEH,EAAEglK,EAAEpxI,EAAE,EAAK,CAAC,CAAC,CAAE,OAAA9zB,EAAEujD,EAAG6pE,EAAE,EAAE,EAAEttH,EAAE8+L,GAAI5+L,CAAC,EAAKF,GAAGqlK,EAAEC,EAAE,GAAG/kK,EAAE,EAAEujJ,GAAIwhB,EAAE,KAAKtlK,CAAC,EAAE,KAAKqlK,CAAC,EAAEA,EAAE5hH,EAAGjjD,EAAE,EAAE,EAAE,GAAGD,EAAE,EAAEujJ,GAAItjJ,EAAE,GAAI,EAACR,CAAC,EAAE,KAAKqlK,CAAC,GAAWnlK,EAAE,GAAG0wG,KAASu0D,EAAE,GAAGrhB,GAAIvjJ,EAAE,EAAE,KAAKL,CAAC,EAAEmlK,EAAEC,EAAE,GAAG/kK,EAAE,EAAE4kK,EAAE,KAAK,IAAI,EAAE,CAAC1hH,EAAGjjD,EAAE,EAAE,EAAE,GAAE,IAAK6kK,EAAE5hH,EAAGjjD,EAAE,EAAE,EAAE,GAAGD,EAAE,EAAE4kK,EAAE,KAAKE,CAAC,IAAKA,GAAGA,EAAE,GAAI,EAAQD,CAAC,CAAE,OAAOhlK,CAAC,CACtnB,SAAS+xP,IAAI5xP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAE,IAAIP,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,EAAE,EAAEG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAwC,IAAtCI,EAAE,IAAIw1D,GAAI+hD,GAAIA,EAAG,EAAE1jF,EAAE,IAAI2hC,GAAIiiD,GAAIA,EAAG,EAAM5tD,EAAE,IAAIvxB,EAAIl4B,EAAE,EAAE,CAAC,EAAEypD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAE7pD,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE,IAAI8kK,EAAEnqD,GAAGx6G,EAAE,CAAC,EAAE,EAAE,GAAE,EAAG2kK,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAE9kK,EAAEqjD,EAAG6pE,EAAE,EAAE,EAAE,EAAEntH,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAEmD,EAAK,KAAK,IAAInD,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE4zB,EAAE,EAAE1wB,EAAK,KAAK,IAAI0wB,EAAE,EAAE5zB,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAEo3E,GAAI,IAAIhiB,GAAIx1D,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEI,EAAE,EAAEqgF,GAAI,IAAIjrB,GAAI3hC,EAAE,EAAEA,EAAE,CAAC,EAAE7zB,CAAC,EAAEI,EAAE,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,EAAE,EAAEikE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACxnB,SAAS0tL,IAAI7xP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAwD,IAAtDyyG,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIp0C,EAAG,CAAC,CAAC,EAAElwB,EAAE,IAAIszB,GAAGnzB,CAAC,EAAMypD,EAAE,EAAEA,EAAE5pD,EAAE,EAAE,OAAO,EAAE4pD,EAAGh2B,EAAEskF,GAAGl4G,EAAE4pD,CAAC,EAAE,GAAE,EAAG,EAAE44B,GAAI5uD,EAAE,SAAS,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIp3C,GAAG,CAAC,CAAC,EAAEs1D,GAAI5uD,EAAE,OAAO,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIx5C,GAAG,CAAC,CAAC,EAAE03D,GAAI5uD,EAAE,QAAQ,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIp5C,GAAG,CAAC,CAAC,EAAEs3D,GAAI5uD,EAAE,QAAQ,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIl1C,GAAG,CAAC,CAAC,EAAEozD,GAAI5uD,EAAE,QAAQ,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIh2C,GAAG,CAAC,CAAC,EAAEk0D,GAAI5uD,EAAE,OAAO,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAI15C,IAAI,IAAIJ,GAAG,CAAC,CAAC,EAAEg4D,GAAI5uD,EAAE,cAAc,GAAG4uD,GAAI5uD,EAAE,iBAAiB,EAAEyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAIx1C,GAAG,CAAC,CAAC,EAAE0zD,GAAI5uD,EAAE,aAAa,GAAGyoI,GAAIj/G,GAAIi8D,EAAG9hE,EAAG+kH,GAAG,CAAC,EAAEh4F,GAAI,IAAI,EAAE,CAAC,IAAI50C,GAAG,CAAC,CAAC,CAAE,CACxnB,SAASgvN,IAAIv+O,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAyD,GAAvDwlK,EAAE,IAAI3sH,GAAIp4C,EAAE,CAAC,EAAET,EAAEk0B,EAAE,EAAEsxI,EAAE,EAAEJ,EAAElxI,EAAE,EAAEsxI,EAAE,EAAE9kK,EAAEwzB,EAAE,EAAEsxI,EAAE,EAAE1lK,EAAEo0B,EAAE,EAAEsxI,EAAE,EAAKllK,EAA8C,IAA3CL,EAAEu6D,EAAG6uD,EAAI5oH,GAAGstB,GAAK,EAAC6oI,GAAG,CAAE,IAAIp8F,GAAIgkC,GAAG,EAAGva,GAAG,EAAO7jF,EAAE,IAAIu4B,EAAIl4B,EAAE,CAAC,EAAEL,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,OAAhBF,EAAEyjD,EAAGyhF,EAAIhlI,CAAC,EAAE,EAAE,EAASF,EAAE,EAAE,EAAG,CAAA,IAAK,GAAED,IAAIC,EAAE,EAAE,GAAGF,GAAG,MAAM,IAAK,GAAEE,EAAE,EAAE,GAAGQ,EAAET,IAAIC,EAAE,EAAE,GAAGklK,GAAG,MAAM,IAAK,GAAEnlK,IAAIC,EAAE,EAAE,GAAGF,GAAGE,EAAE,EAAE,GAAGJ,EAAE,MAAM,IAAK,GAAEG,IAAIC,EAAE,EAAE,GAAGklK,EAAG,CAAG,IAAIC,EAAE,IAAI1sI,EAAIl4B,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAEC,EAAEjlK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEklK,EAAEllK,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEwqN,EAAEvlD,EAAEE,EAAE,EAAEh4C,EAAE+3C,EAAEC,EAAE,EAAKqlD,EAAEr9F,GAAG,IAAMq9F,EAAEr9F,EAAE,GAAG+3C,GAAG,GAAGllK,EAAE,EAAE,GAAGK,EAAEL,EAAE,EAAE,GAAGP,EAAE0tH,GAAUq9F,EAAEr9F,EAAE,GAAG83C,GAAG,IAAGjlK,EAAE,EAAE,GAAGK,EAAEmqN,EAAExqN,EAAE,EAAE,GAAGP,IAAIW,EAAE,EAAE,EAAEyzB,EAAE,EAAEzzB,EAAE,EAAE,EAAEyzB,EAAE,EAAEqvD,EAAI9iF,GAAGstB,GAAK,EAAC8/M,KAAMxxJ,GAAG,EAAGnyB,EAAEvG,EAAGxH,GAAIy2F,EAAE,EAAE,CAAC,EAAE,IAAIntD,GAAIv7B,EAAEvG,EAAG27B,GAAIp1B,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAC,CAAE,CAC9nB,SAASqoM,IAAI9xP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE,CAAC,IAAI0tH,EAAE,GAAG,EAAEt5F,GAAG,MAAM,CAACixE,GAAIjxE,EAAEu4N,IAAIC,GAAG,GAAI,MAAMvmN,EAAI,IAAImN,GAAI,mBAAmBpf,CAAC,CAAC,EAAE,GAAG,CAACzzB,GAAG,EAAEH,GAAG,MAAMo/D,GAAIp/D,EAAEq1E,GAAI,EAAE,CAAC,GAAG,IAAIr1E,EAAE,OAAO,IAAImiH,GAAI,EAAEniH,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,GAAG,KAAM,MAAM6lC,EAAI,IAAImN,GAAI,uBAAuBhzC,CAAC,CAAC,EAAE,GAAGG,GAAG,EAAEyzB,GAAG,MAAMkwB,GAAI4iE,GAAI9yF,EAAE,YAAW,CAAE,IAAI,EAAE5zB,GAAG,MAAM,CAAC6kG,GAAI7kG,EAAE8kG,GAAIC,EAAG,GAAI,MAAMl/D,EAAI,IAAImN,GAAIk/M,IAAIlyP,CAAC,CAAC,EAAE,GAAGG,GAAGyzB,GAAG,MAAMkwB,GAAI4iE,GAAI9yF,EAAE,aAAa,GAAG,CAAC4jL,IAAIx3M,CAAC,EAAG,MAAM6lC,EAAI,IAAImN,GAAIk/M,IAAIlyP,CAAC,CAAC,EAAE,GAAG,CAAC6oL,IAAIj/H,CAAC,EAAG,MAAM/jB,EAAI,IAAImN,GAAI,mBAAmB4W,CAAC,CAAC,EAAE,GAAG,CAACo0H,IAAIr+K,CAAC,EAAG,MAAAutH,EAAEvtH,GAAG,KAAK,yBAAyB,oBAAoBg8K,IAAIh8K,CAAC,EAAQkmC,EAAI,IAAImN,GAAIk6E,CAAC,CAAC,EAAE,GAAG,EAAE1tH,GAAG,MAAM4/D,GAAI5/D,EAAE61E,GAAI,EAAE,CAAC,GAAG,IAAK,MAAMxvC,EAAI,IAAImN,GAAI,kBAAkBxzC,CAAC,CAAC,CAAE,CAC/nB,SAAS2yP,IAAIhyP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAA8F,IAA5FqsH,GAAIn4F,EAAE,uBAAuB,CAAC,EAAEA,EAAE,GAAKzzB,GAAGomI,GAAI3yG,EAAE02G,GAAInqI,CAAC,GAAGs/F,GAAK,EAACo0C,GAAG,EAAGixB,EAAEgtC,GAAI/xM,EAAE+xM,GAAItyM,EAAE6uM,IAAInhF,EAAEmhF,IAAQppC,EAAE,IAAI3oG,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAG8kK,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGF,EAAE1hH,EAAGmvG,GAAIyS,CAAC,EAAE,EAAE,EAAEnlK,EAAEilK,EAAE,EAAE3kK,EAAE2kK,EAAE,EAAErlK,EAAEqlK,EAAE,EAAEn7G,EAAEm7G,EAAE,EAAEplK,EAAE0jD,EAAGulE,GAAIm8C,GAAG50I,KAAMiiO,GAAK,EAAC,GAAG,EAAEttF,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAEhlK,EAAEH,EAAE,CAAC,EAAEI,EAAEmD,EAAK,KAAK,IAAInD,EAAEK,EAAET,EAAE,CAAC,EAAEH,EAAE0D,EAAK,KAAK,IAAI1D,EAAEM,EAAEJ,EAAEC,EAAE,CAAC,EAAEutH,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAE9sH,EAAEwpD,EAAEjqD,EAAE,CAAC,EAAsD,IAApDC,EAAEyjD,EAAGulE,GAAIzoH,GAAGgwB,GAAK,EAAC+pJ,GAAK,EAAC,GAAG,EAAEhV,EAAE,IAAI3vG,GAAIuvG,EAAEllK,EAAE,EAAEG,EAAEH,EAAE,CAAC,EAAMolK,EAAE,IAAI1oG,IAAK,CAACn8D,EAAE,IAAIA,EAAE,EAAE,IAAImhF,EAAIspC,GAAGzqH,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAC,EAAG6kK,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAGD,EAAE1hH,EAAGmvG,GAAIwS,CAAC,EAAE,EAAE,EAAE/hG,GAAI8hG,EAAEA,EAAE,EAAEG,EAAE,CAAC,EAAEhiG,GAAI6hG,EAAEA,EAAE,EAAEG,EAAE,CAAC,EAAEqlD,EAAE/qN,EAAEslK,GAAGllK,EAAE,EAAEA,EAAE,GAAGI,EAAEktH,EAAEntH,GAAGH,EAAE,EAAEA,EAAE,GAAGkjE,GAAI3iE,EAAEoqN,CAAC,EAAExnJ,GAAI5iE,EAAEH,CAAC,EAAE4zB,EAAE,GAAKzzB,GAAGomI,GAAI3yG,EAAE02G,GAAInqI,CAAC,GAAGs/F,GAAK,EAACo0C,GAAG,CAAE,CAChoB,SAAS+4F,IAAIzsO,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAY,IAAVp7G,EAAE,IAAI5kB,EAAQkoF,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAA+C,IAA9CvtH,EAAE0jD,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAE83C,EAAE,EAAErlK,EAAE,EAAE,EAAEykE,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAMtkE,EAAE,IAAIq4B,EAAIwvJ,GAAIloL,CAAC,CAAC,EAAEK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAK4zB,EAAE,IAAGmV,EAAIppC,EAAE,EAAEi0B,CAAC,EAAE,EAAEoxI,GAAGA,GAAG,IAAIp7G,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEjqD,EAAO,CAAC,IAAIH,EAAE,IAAI64B,EAAIuxB,CAAC,EAAEpqD,EAAE,EAAEA,EAAE,EAAE,EAAE,QAA0B,IAAjBG,EAAE0jD,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAQG,EAAE,EAAE,EAAE,QAAQ,GAAE,CAAsD,IAArDolK,EAAE1hH,EAAGyhF,EAAI,IAAIzsG,EAAI14B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAEQ,EAAE,EAAE4kK,EAAE,CAAC,EAAEA,EAAE,EAAED,EAAEC,EAAE,EAAEhlK,EAAEglK,EAAE,EAAM/kK,EAAE,IAAIq4B,EAAIwvJ,GAAIloL,CAAC,CAAC,EAAEK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS4zB,EAAEyvB,EAAGyhF,EAAI9kI,CAAC,EAAE,GAAG,EAAEqkD,GAAGzwB,EAAEmxI,CAAC,IAAInxI,EAAE,EAAEkxI,GAAGlxI,EAAE,GAAG7zB,GAAG6zB,EAAE,EAAGzzB,EAAE,EAAE4kK,EAAE,CAAC,GAAG5kK,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAIzzB,EAAE,EAAE4kK,EAAE,CAAC,GAAG5kK,EAAE,EAAEyzB,EAAE,CAAC,EAAEA,EAAE,EAAGj0B,GAAGmlK,EAAElxI,EAAE,GAAGj0B,EAAGQ,EAAE,EAAE4kK,EAAE,CAAC,GAAGnxI,EAAE,EAAIzzB,EAAE,EAAE4kK,EAAE,CAAC,GAAGnxI,EAAE,EAAGA,EAAE,GAAGj0B,EAAGQ,EAAE,EAAE4kK,EAAE,CAAC,GAAGnxI,EAAE,EAAIzzB,EAAE,EAAE4kK,EAAE,CAAC,GAAGnxI,EAAE,GAAIo/C,GAAI8xF,EAAE,EAAEC,CAAC,EAAE/xF,GAAIjzE,EAAE,EAAEglK,CAAC,EAAED,GAAGnlK,EAAGA,EAAEolK,EAAE,EAAIplK,EAAEolK,EAAE,CAAE,CAAE,CACnoB,SAAS6xB,GAAIz2L,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAE,GAAG8zB,GAAG,MAAMA,EAAE,QAAQ,EAAG,OAAO,KAAyB,GAApBp0B,EAAE6jD,EAAGq4D,GAAIv7G,EAAE,EAAEyzB,CAAC,EAAE,EAAE,EAAK,CAACp0B,EAAE,CAAC,IAAIG,GAAGC,EAAG,IAAIu3B,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAE,EAAG,GAAE,EAAG,IAAIw3B,GAAI/3B,CAAC,GAAGD,EAAE,EAAE,MAA4D,GAArDK,GAAGktH,EAAE7pE,EAAG1jD,EAAE,EAAE,GAAE,EAAG,EAAE,EAAE0jD,EAAG6pE,EAAE,GAAE,EAAG,EAAE,GAAG43C,EAAE9kK,EAAE,EAAEF,EAAE8zB,EAAE,OAAU4uD,GAAIsiF,EAAE,OAAOA,EAAE,OAAOhlK,EAAEA,CAAC,EAAE8zB,CAAC,IAAIA,EAAE,QAAQkxI,EAAE,QAAQzsD,GAAIysD,EAAEA,EAAE,OAAOlxI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAGp0B,EAAG,OAAO,KAAKA,EAAEQ,CAAC,CAAE,GAAG,CAACR,GAAG,IAAIoqD,GAAGs7G,EAAG,IAAI/tI,GAAIh3B,EAAE,CAAC,EAAG,EAAE,GAAE,EAAG,GAAE,EAAG,IAAIw3B,GAAIutI,CAAC,GAAGt7G,EAAE,EAAE,GAAI,GAA6C,GAA1C5pD,GAAGktH,EAAE7pE,EAAGuG,EAAE,EAAE,GAAE,EAAG,EAAE,EAAEvG,EAAG6pE,EAAE,KAAK,EAAE,GAAG+3C,EAAEjlK,EAAE,EAAKilK,GAAG,MAAM,IAAIllK,EAAEklK,EAAEF,EAAE,EAAEC,EAAEjlK,EAAE,OAAOglK,EAAEC,EAAE,EAAED,EAAqB,GAAlBD,EAAE/kK,EAAEglK,CAAC,EAAEjlK,EAAE8zB,EAAE,OAAU4uD,GAAIsiF,EAAE,OAAOA,EAAE,OAAOhlK,EAAEA,CAAC,EAAE8zB,CAAC,IAAIA,EAAE,QAAQkxI,EAAE,QAAQzsD,GAAIysD,EAAEA,EAAE,OAAOlxI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAGp0B,EAAG,OAAO,KAAKA,EAAEQ,CAAC,GAAOR,GAAGkqD,GAAIvpD,EAAE,EAAEyzB,EAAEp0B,CAAC,CAAC,CAAC,OAAOA,CAAC,CACroB,SAAS28G,IAAGh8G,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAoB,IAAlBltH,EAAE,IAAIs2C,GAAI42E,EAAE,GAAU1tH,EAAE,EAAEA,EAAEo0B,EAAE,OAAOp0B,IAAI,CAAqC,GAApCoqD,GAAGu4D,GAAI3iH,EAAEo0B,EAAE,MAAM,EAAEA,EAAE,WAAWp0B,CAAC,GAAMoqD,GAAG,GAAG,CAA8B,IAA7BuxI,GAAGh7L,EAAEH,EAAE,CAAC,EAAEA,EAAE,GAAG,IAAIm7L,GAAGh7L,EAAEH,EAAE,CAAC,EAAQR,EAAE,EAAEo0B,EAAE,SAASuuF,GAAI3iH,EAAE,EAAEo0B,EAAE,MAAM,EAAEA,EAAE,WAAWp0B,EAAE,CAAC,GAAG,KAAK,EAAEA,EAAE,QAAQ,CAAC,GAAG0tH,EAAE,CAAItjE,GAAG,GAAOpqD,EAAE,EAAEo0B,EAAE,SAASuuF,GAAI3iH,EAAE,EAAEo0B,EAAE,MAAM,EAAEA,EAAE,WAAWp0B,EAAE,CAAC,GAAG,KAAKQ,EAAE,GAAG,OAAO,aAAa4pD,CAAC,EAAE,EAAEpqD,GAAO0tH,EAAE,GAAYltH,EAAE,GAAG,OAAO,aAAa4pD,CAAC,EAAE,QAAQ,CAAC,GAAGwV,GAAI,sBAAsBiW,GAAIzrB,CAAC,CAAC,EAAE,EAAE,CAACuxI,GAAGh7L,EAAEH,EAAE,CAAC,EAAEA,EAAE,GAAG,OAAO,aAAa4pD,CAAC,EAAEjqD,EAAE+zL,IAAG9/J,EAAEp0B,CAAC,EAAE27L,GAAGh7L,EAAEH,EAAEL,CAAC,EAAEH,GAAGG,EAAE,EAAE,QAAQ,CAAIiqD,GAAG,GAAOpqD,EAAE,EAAEo0B,EAAE,SAASuuF,GAAI3iH,EAAE,EAAEo0B,EAAE,MAAM,EAAEA,EAAE,WAAWp0B,EAAE,CAAC,GAAG,KAAKQ,EAAE,GAAG,IAAI,EAAER,GAAO0tH,EAAE,GAAWltH,EAAE,GAAG,OAAO,aAAa4pD,CAAC,CAAE,CAACuxI,GAAGh7L,EAAEH,EAAE,CAAC,EAAEo7M,IAAGj7M,CAAC,CAAC,CACvoB,SAASkyP,IAAIlyP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAoF,GAAlFqsH,GAAI/rH,EAAE,2BAA2B,CAAC,EAAEG,EAAE,EAAEyzB,EAAEl0B,EAAE2jD,EAAG0lE,EAAIn1F,GAAGnG,GAAK,EAAC+4N,GAAK,EAAC,EAAE,EAAE,EAAE,EAAEj8B,EAAEpqN,EAAE,EAAE,EAAKoqN,EAAE,EAAE,OAAO,EAAE,CAACv+F,GAAIhsH,CAAC,EAAE,MAAM,CAAmB,IAAlBR,EAAEo7O,IAAIz6O,EAAEoqN,CAAC,EAAEnqN,EAAE,KAAST,EAAE85J,GAAIj6J,EAAE,CAAC,EAAEG,EAAE,GAAGA,EAAE,EAAE,GAAG,CAA8G,IAA7GiqD,EAAEvG,EAAG0tF,GAAIpxI,CAAC,EAAE,EAAE,EAAEmlK,EAAEplK,EAAEigE,GAAGz8D,EAAK,KAAK,KAAK0mD,EAAE,GAAE,CAAE,CAAC,EAAEsjE,EAAEowH,IAAI1zL,CAAC,EAAE4yL,GAAI1kM,GAAIE,IAAID,GAAI6zC,GAAIshC,CAAC,EAAE43C,CAAC,EAAE1kK,CAAC,EAAE,EAAI,EAAEgnK,GAAIpnK,EAAE,CAAC,CAAC,EAAEklK,EAAE/kK,EAAE,EAAE,EAAML,EAAE,IAAIu4B,EAAI60F,EAAE,CAAC,EAAEptH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAkB,IAAjBF,EAAEyjD,EAAGyhF,EAAIhlI,CAAC,EAAE,GAAG,EAAQolK,EAAE,EAAE,QAAQtlK,EAAE,GAAGiuG,GAAIq3D,EAAEA,EAAE,EAAE,OAAO,IAAIlpD,GAAI77G,EAAE,CAAC,CAAC,EAAE6kK,EAAE3hH,EAAGzjD,EAAE,EAAE,EAAE,EAAEu4H,GAAI6sC,EAAE3hH,EAAGo4B,GAAIypF,EAAEtlK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAGJ,EAAE,EAAE,EAA2C,IAAxCY,EAAEgkE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE8kK,EAAE,EAAMF,EAAE,IAAI1sI,EAAIl4B,EAAE,EAAE,CAAC,EAAE4kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAShlK,EAAEsjD,EAAGyhF,EAAIigC,CAAC,EAAE,EAAE,EAAE3kK,EAAE6kK,GAAG,EAAEllK,EAAE,EAAE,EAAE,MAAQ,CAACwqN,EAAE,EAAEnmJ,EAAGC,GAAGC,GAAI,EAAE,EAAE,EAAE,CAAC,EAAEnkE,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CAC7oB,SAASsyP,IAAInyP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAM,IAAJlxI,EAAE,EAAMp0B,EAAE,IAAI64B,EAAIl4B,EAAE,EAAE,CAAC,EAAEX,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASoqD,EAAEvG,EAAGyhF,EAAItlI,CAAC,EAAE,GAAG,EAAEoqD,EAAE,EAAE,EAAEA,EAAE,EAAE,EAA6L,IAA3Ls7J,IAAI/kN,EAAE,CAAC,EAAEupL,GAAIvpL,EAAEA,EAAE,CAAC,EAAEgzK,GAAIhzK,EAAE,CAAC,EAAE2zC,GAAI3zC,EAAE,CAAC,EAAEH,GAAGk8F,GAAG,EAAGz6B,IAAK85K,GAAIpgL,GAAIs7C,GAAI8kI,GAAIpgL,GAAIs7C,GAAI8kI,GAAI9kI,GAAIt2G,EAAE,EAAEH,CAAC,CAAC,EAAEgkL,IAAIhkL,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAEy2G,GAAIt2G,EAAE,EAAEshE,EAAG,EAAE6jH,GAAInlL,EAAEA,EAAE,CAAC,EAAE4+M,IAAI5+M,EAAE,CAAC,EAAE8pP,IAAI9pP,EAAE,CAAC,EAAEg+N,IAAIh+N,EAAE,CAAC,EAAE+kN,IAAI/kN,EAAE,CAAC,EAAEupL,GAAIvpL,EAAEA,EAAE,CAAC,EAAEgzK,GAAIhzK,EAAE,CAAC,EAAM+sH,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAStjE,EAAEvG,EAAGyhF,EAAI5X,CAAC,EAAE,GAAG,EAAEt5F,GAAG1wB,EAAK,KAAK,IAAI0mD,EAAE,CAAC,EAAE,IAAIk7G,EAAE,IAAIzsI,EAAIl4B,EAAE,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASl7G,EAAEvG,EAAGyhF,EAAIggC,CAAC,EAAE,GAAG,EAAEl7G,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAgI,IAA9H5pD,EAAE4hE,GAAI25K,GAAIpgL,GAAIs7C,GAAI8kI,GAAIpgL,GAAIs7C,GAAI8kI,GAAIznM,GAAI2iE,GAAIt2G,EAAE,EAAEH,CAAC,CAAC,CAAC,EAAEgkL,IAAIhkL,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAEy2G,GAAIt2G,EAAE,EAAEshE,EAAG,EAAE6jH,GAAInlL,EAAEA,EAAE,CAAC,EAAE4+M,IAAI5+M,EAAE,CAAC,EAAE8pP,IAAI9pP,EAAE,CAAC,EAAEg+N,IAAIh+N,EAAE,CAAC,EAAE2zC,GAAI3zC,EAAE,CAAC,EAAMR,EAAE,IAAI04B,EAAIl4B,EAAE,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,GAAG,EAAEi0B,GAAG1wB,EAAK,KAAK,IAAI0mD,EAAE,CAAC,EAAE,OAAOh2B,CAAC,CAC/oB,SAAS2+N,IAAIpyP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAM,GAAJD,EAAEnxI,EAAK,EAAAmxI,EAAE,GAAG,MAAM5kK,EAAE,GAAG,MAA+F,KAAnF+9N,GAAI/9N,CAAC,EAAEgkP,GAAIhkP,CAAC,EAAE+9N,GAAIn5D,CAAC,EAAEo/E,GAAIp/E,CAAC,EAAE/kK,EAAEokE,EAAG4gD,GAAGsP,GAAI,GAAGn0H,EAAE,EAAE,OAAO4kK,EAAE,EAAE,OAAO,GAAG,CAAC,EAAEC,EAAE,EAAEp7G,EAAE,EAAEsjE,EAAE,EAAQtjE,EAAEzpD,EAAE,EAAE,QAAQ+sH,EAAE63C,EAAE,EAAE,QAAgD,GAAxCplK,EAAEQ,EAAE,EAAEypD,CAAC,EAAEpqD,EAAEW,EAAE,EAAEypD,EAAE,CAAC,EAAEk7G,EAAEC,EAAE,EAAE73C,CAAC,EAAEntH,EAAEglK,EAAE,EAAE73C,EAAE,CAAC,EAAK1tH,EAAEslK,EAAGl7G,GAAG,UAAUpqD,GAAGslK,GAAGnlK,GAAGI,EAAM+kK,GAAGnlK,GAAGH,GAAGO,GAAGC,EAAEglK,GAAG,EAAErlK,EAAEK,EAAEglK,GAAG,EAAExlK,EAAEoqD,GAAG,GAAUk7G,GAAGnlK,GAAGK,EAAEglK,GAAG,EAAErlK,EAAEK,EAAEglK,GAAG,EAAEjlK,EAAEI,EAAE,EAAEypD,CAAC,EAAE7pD,EAAE,EAAEmtH,GAAG,GAAU1tH,GAAGO,GAAGC,EAAEglK,GAAG,EAAEF,EAAE9kK,EAAEglK,GAAG,EAAExlK,EAAEoqD,GAAG,IAAO5pD,EAAEglK,GAAG,EAAEF,EAAE9kK,EAAEglK,GAAG,EAAEjlK,EAAEI,EAAE,EAAEypD,CAAC,EAAE7pD,EAAE,WAAWA,EAAEJ,EAAGutH,GAAG,MAAO,OAAMrnF,EAAI,IAAIgL,GAAG,6CAA6C1wC,EAAE,EAAEypD,CAAC,EAAE,IAAIzpD,EAAE,EAAEypD,EAAE,CAAC,EAAE,QAAQm7G,EAAE,EAAE73C,CAAC,EAAE,IAAI63C,EAAE,EAAE73C,EAAE,CAAC,EAAE,GAAG,CAAC,EAAG,KAAMtjE,EAAEzpD,EAAE,EAAE,QAAQH,EAAEglK,GAAG,EAAE7kK,EAAE,EAAEypD,GAAG,EAAE5pD,EAAEglK,GAAG,EAAE7kK,EAAE,EAAEypD,GAAG,EAAEzpD,EAAE,EAAEikE,EAAG4gD,GAAGsP,GAAI,GAAG0wC,EAAE,GAAG,CAAC,EAAEzwB,GAAIv0I,EAAE,EAAEG,EAAE,EAAE,EAAE6kK,CAAC,EAAC,CAChpB,SAASwtF,IAAIryP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAoC,IAAlClxI,EAAE,IAAIoR,EAAI7kC,EAAE,EAAE,IAAI6kC,EAAI7kC,EAAE,EAAE,IAAI6kC,EAAQkoF,EAAE,IAAI+oD,GAAK,IAAIj/I,GAAI72B,EAAE,EAAE,CAAC,EAAG,CAAC,EAAE+sH,EAAE,GAAI1tH,EAAEk6J,GAAIxsC,CAAC,EAAEnkF,EAAInV,EAAEyvB,EAAGA,EAAG7jD,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEgiE,GAAIne,EAAG7jD,EAAE,GAAE,EAAG,GAAG,EAAE,GAAE,CAAE,EAAEupC,EAAI5oC,EAAE,EAAEkjD,EAAG7jD,EAAE,GAAE,EAAG,EAAE,CAAC,EAAEupC,EAAI5oC,EAAE,EAAEkjD,EAAG7jD,EAAE,GAAI,EAAC,EAAE,CAAC,EAA6I,IAA3IkqL,GAAIvpL,EAAEA,EAAE,CAAC,EAAEupL,GAAIvpL,EAAEA,EAAE,CAAC,EAAEA,EAAE,EAAE,IAAIozN,IAAIpzN,EAAE,CAAC,EAAEi4C,IAAIj4C,EAAE,GAAGonD,GAAK,EAACC,IAAK,EAAC89H,GAAInlL,EAAEA,EAAE,CAAC,EAAEmlL,GAAInlL,EAAEA,EAAE,CAAC,EAAE2nH,GAAIl0F,EAAEzzB,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,IAAIo1D,GAAI+hD,GAAIA,EAAG,EAAEn3G,EAAE,EAAE,IAAIo1D,GAAIiiD,GAAIA,EAAG,EAAM5tD,EAAE,IAAIvxB,EAAIzE,CAAC,EAAEg2B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS5pD,EAAEqjD,EAAGyhF,EAAIl7E,CAAC,EAAE,EAAE,EAAEzpD,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEG,EAAE,EAAE,EAAE+C,EAAK,KAAK,IAAI/C,EAAE,EAAE,EAAEH,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEm4C,GAAIh4C,EAAE,EAAE,IAAI6K,GAAG,EAAE85J,EAAE,EAAE,GAAGnlK,EAAE2yP,IAAInyP,CAAC,EAAE,EAAE2kK,SAASA,EAAE,GAAGnlK,EAAEs6J,KAAM6K,EAAE,IAAI3sH,GAAIh4C,EAAE,EAAE,IAAI8K,GAAG,EAAEqnP,IAAInyP,CAAC,EAAEq2G,IAAIr2G,EAAE,CAAC,EAAE4xP,IAAI5xP,EAAE,CAAC,CAAC,CACjpB,SAASsyP,IAAItyP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE,GAAIn3K,GAAImnC,GAAGwuC,EAAI/oH,GAAGytB,GAAG,EAAGkuL,GAAK,CAAA,CAAC,EAAU,IAAI72C,EAAE,IAAIzsI,EAAIr4B,EAAE,CAAC,EAAE8kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAoC,IAA3B53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAEI,EAAE77B,GAAInc,EAAE,CAAC,EAAM63C,EAAEG,EAAEF,EAAE,EAAEC,EAAEF,EAAE,OAAOC,EAAEC,EAAE,EAAED,EAAGjlK,EAAEglK,EAAEC,CAAC,EAAExlK,EAAEO,EAAE,EAAE,GAAGC,EAAEL,EAAEH,GAAG4zC,GAAImnC,GAAGwuC,EAAIhpH,EAAE8oH,EAAG,CAAC,CAAC,EAAKlpH,IAAGG,EAAEC,EAAE,EAAEH,EAAEyjD,EAAGgwD,GAAIlzG,EAAE,EAAEL,CAAC,EAAE,EAAE,EAAMF,IAAGA,EAAEwrP,GAAItrP,GAAGo+F,GAAK,EAACh8B,IAAKpiE,EAAE,EAAE,GAAG,KAAK,KAAKA,EAAE,EAAEujD,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAEjyJ,CAAC,EAAEqvD,EAAIrjF,GAAGyqH,EAAG,EAAG+jC,IAAKtuJ,CAAC,EAAE65D,GAAIx5D,EAAE,EAAEL,EAAEF,CAAC,EAAEmpC,EAAInV,EAAE,EAAEh0B,CAAC,GAAE2qN,EAAExqN,EAAE,EAAEK,EAAEijD,EAAGgwD,GAAIlzG,EAAE,EAAEoqN,CAAC,EAAE,EAAE,EAAMnqN,IAAGA,EAAEgrP,GAAI7gC,GAAGrsH,GAAK,EAACh8B,IAAKqoJ,EAAE,EAAE,EAAE,KAAK,KAAKA,EAAE,EAAElnK,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAEjyJ,CAAC,EAAEqvD,EAAI7iF,GAAGiqH,EAAG,EAAG+jC,IAAKm8D,CAAC,EAAE5wJ,GAAIx5D,EAAE,EAAEoqN,EAAEnqN,CAAC,EAAE2oC,EAAInV,EAAE,EAAExzB,CAAC,GAAEwpD,EAAEo1F,GAAIj/I,CAAC,EAAEiqE,GAAIpgB,EAAEvG,EAAGo4B,GAAI77E,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEqqE,GAAIrgB,EAAEvG,EAAGo4B,GAAIr7E,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEu2E,GAAGx2E,EAAE,EAAEJ,EAAE,IAAIqrF,GAAIxhC,EAAEh2B,GAAGu+D,GAAK,EAAC0tC,GAAG,CAAE,EAAEx8E,EAAG0lE,EAAIn1F,GAAGy2F,EAAG,EAAGu0D,GAAK,EAAC,EAAE,EAAE,IAAIzuF,GAAG,EAAG01E,GAAK,EAAG,CACjpB,SAAS6sF,IAAIvyP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAsH,IAApHisH,GAAI/rH,EAAE,wBAAwB,CAAC,EAAE4pD,EAAEvG,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGsrN,GAAG,EAAG,GAAG,EAAE/xE,IAAIpzI,CAAC,EAAEj0B,EAAEs+N,IAAIrqM,EAAEg2B,CAAC,EAAEzpD,EAAE,EAAEikE,EAAG8pF,GAAGC,GAAI,GAAGv6H,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAMkxI,GAAG/3E,GAAG,EAAGssB,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,GAAG+e,EAAE,EAAEplK,EAAEklK,EAAE,OAAOE,EAAEplK,EAAE,EAAEolK,EAAU,GAAPxlK,EAAEslK,EAAEE,CAAC,GAAMxlK,GAAGwmJ,IAAKxmJ,GAAGymJ,IAAKzmJ,GAAGumJ,KAAM,CAAC1iG,EAAG6K,GAAIvuD,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAE,EAAG,CAACgqK,IAAIrpK,EAAEyzB,CAAC,EAAE,KAAK,CAAE,IAAI7zB,EAAEs5G,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAEgf,EAAE,EAAEnlK,EAAEC,EAAE,OAAOklK,EAAEnlK,EAAE,EAAEmlK,EAAGzlK,EAAEO,EAAEklK,CAAC,EAAEzlK,GAAGwmJ,IAAKxmJ,GAAGymJ,IAAKzmJ,GAAGumJ,IAAKo2F,IAAIh8O,EAAEkjD,EAAG6K,GAAIvuD,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI0tH,EAAE7T,EAAG9hE,EAAGouG,GAAG,CAAC,EAAEpsC,EAAI,IAAI,EAAE,CAACqsC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAG,CAAC,EAAE8e,EAAE,EAAEG,EAAEh4C,EAAE,OAAO63C,EAAEG,EAAE,EAAEH,EAAGvlK,EAAE0tH,EAAE63C,CAAC,GAAGvlK,GAAGwmJ,IAAKxmJ,GAAGymJ,IAAKzmJ,GAAGumJ,KAAMo2F,IAAIh8O,EAAEkjD,EAAG6K,GAAIvuD,EAAE,EAAEH,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAEW,EAAE,EAAE,KAAK6rH,GAAIhsH,CAAC,CAAC,CACjpB,SAAS2yP,IAAIxyP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAE,OAAO/kK,EAAE,EAAE,EAAC,CAAE,IAAK,GAAqH,GAAnHypD,EAAEvG,EAAG0lE,EAAI5oH,GAAGkqH,EAAG,EAAG+jC,GAAK,EAAC,EAAE,EAAEpuJ,EAAEqjD,EAAG0lE,EAAIn/D,EAAEgpM,GAAG,EAAE,EAAE,EAAG5yP,EAAcozC,GAAImnC,GAAGwuC,EAAIn/D,EAAEm+H,EAAG,CAAC,CAAC,IAAI/nL,EAAEo1K,GAAIp1K,CAAC,GAAxCA,EAAE,IAAI8sC,GAAqCi4H,EAAE1hH,EAAG0lE,EAAI5oH,EAAEowM,EAAG,EAAE,EAAE,EAAKxrC,EAAE,CAA6C,GAA5CC,EAAE1pC,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACo6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAKnxI,GAAGoxI,EAAE,EAAG,OAAOA,EAAE,EAAElpG,GAAI97D,EAAEglK,EAAEhlK,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,CAAqB,GAApBilK,EAAE5hH,EAAG0lE,EAAI5oH,EAAEqwM,EAAG,EAAE,EAAE,EAAKvrC,EAAE,CAA6C,GAA5CC,EAAE5pC,GAAIjiB,EAAG9hE,EAAGgkF,GAAG,CAAC,EAAE5wD,EAAI,EAAE,EAAE,CAACs6F,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAKC,EAAE,GAAGtxI,EAAG,OAAOsxI,EAAE,EAAEppG,GAAI97D,EAAEklK,EAAEllK,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,GAAG,EAAE,CAA0C,IAAzCD,EAAE05J,GAAIz5J,EAAE,CAAC,EAAEktH,EAAE7pE,EAAG0tF,GAAIhxI,CAAC,EAAE,CAAC,EAAE+kK,EAAEzhH,EAAG0tF,GAAIhxI,CAAC,EAAE,CAAC,EAAQ+kK,EAAE,EAAElxI,GAAG7zB,EAAE,GAAGA,EAAE,EAAE,GAAGmtH,EAAE43C,EAAEA,EAAEzhH,EAAG0tF,GAAIhxI,CAAC,EAAE,CAAC,EAAE,OAAOmtH,EAAE,GAAGt5F,EAAEs5F,EAAE,IAAI43C,EAAE,EAAE53C,EAAE,IAAI43C,EAAE,EAAE53C,EAAE,EAAE,CAAC,MAAM,IAAK,GAAoD,OAAlD1tH,EAAE6jD,EAAG0lE,EAAI1lE,EAAGo4B,GAAIt7E,EAAE,EAAE,CAAC,EAAE,EAAE,GAAGkqH,IAAM+jC,GAAK,EAAC,EAAE,EAAEzuJ,EAAEH,EAAE,EAASA,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,OAAOG,EAAE,EAAE,EAAE,IAAK,GAAE,OAAOA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAE,CAAC,CAAC,OAAO+0M,GAAIv0M,CAAC,EAAE,CAAC,CACjpB,SAASwtP,IAAIxtP,EAAE,CAAC,IAAIyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAE,IAAI/3C,EAAE,IAAI70F,EAAIl4B,EAAE,EAAE,CAAC,EAAE+sH,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyB,IAAhB1tH,EAAE6jD,EAAGyhF,EAAI5X,CAAC,EAAE,EAAE,EAAMntH,EAAE,IAAIs4B,EAAI74B,EAAE,CAAC,EAAEO,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiB,GAAhB+kK,EAAEzhH,EAAGyhF,EAAI/kI,CAAC,EAAE,EAAE,EAAKqzC,GAAImnC,GAAGwuC,EAAI+7C,GAAGr3I,KAAMolO,GAAK,CAAA,CAAC,GAAM,CAACjiH,GAAGk2C,GAAIhiB,CAAC,CAAC,EAAE,CAACl7G,EAAEvG,EAAG4nE,IAAG67D,GAAIhiB,CAAC,CAAC,EAAE,EAAE,EAAEE,EAAEp7G,EAAE,EAAE,EAAEo7G,GAAGF,IAAIE,EAAEp7G,EAAE,EAAE,GAAGq7G,EAAE,IAAInuG,GAAIkuG,EAAExkF,GAAI5W,GAAIk7F,EAAE,CAAC,EAAEE,EAAE,CAAC,CAAC,EAAErrG,GAAIx5D,EAAE,EAAE2kK,EAAEG,CAAC,EAAE,QAAQ,CAAEtlK,EAAE,IAAI4hE,GAAIujG,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAElxI,EAAEs+C,IAAIrsB,IAAIF,IAAIC,IAAI,IAAI9a,GAAIg6H,CAAC,EAAEnlK,CAAC,EAAEqsF,GAAG,EAAE7rF,EAAE,CAAC,EAAE8xE,IAAIvsB,IAAI+1G,IAAI,IAAI7wH,GAAIyuE,EAAG9hE,EAAG4pJ,GAAG,CAAC,EAAE78H,GAAI,GAAG,EAAE,CAAC1wC,CAAC,CAAC,CAAC,EAAEA,CAAC,EAAEzzB,EAAE,CAAC,EAAE4kK,EAAE,IAAI3/H,GAAIu0B,GAAIx5D,EAAE,EAAEyzB,EAAEmxI,CAAC,EAAE/kK,EAAE60I,GAAG,IAAI7jC,GAAGphC,GAAGm3G,GAAIjiB,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIrhK,EAAE,CAAC,CAAC,EAAEoxI,GAAG,IAAI7jC,GAAGphC,GAAGo3G,GAAIliB,CAAC,EAAE,EAAE,GAAE,EAAG,IAAIrhK,EAAE,CAAC,CAAC,EAAEzD,EAAE,EAAEkxK,GAAInM,EAAE,IAAM7oE,GAAK,EAACz6B,GAAG,EAAGzhE,EAAE,GAAGkxK,GAAInM,EAAE,IAAM7oE,GAAG,EAAGx6B,GAAK,EAACojG,EAAE,IAAIh6E,GAAK,EAACi0D,KAAM15G,IAAI0/H,CAAC,EAAEprG,GAAIx5D,EAAE,EAAE2kK,EAAElxI,CAAC,CAAC,CAAE,CACrpB,SAASk/N,IAAI3yP,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAoH,OAAlHn5C,GAAI/rH,EAAE,2BAA2B,CAAC,EAAEG,EAAE,EAAEyzB,EAAEm/N,IAAI5yP,CAAC,EAAEA,EAAE,EAAEkjD,EAAG0lE,EAAIn1F,GAAGnG,GAAG,EAAGulO,GAAG,EAAG,GAAG,EAAEhuF,EAAE3hH,EAAG0lE,EAAI5oH,EAAE,EAAE8yP,GAAG,EAAE,EAAE,EAAE,EAAEzzP,EAAE,IAAIwR,IAAW7Q,EAAE,EAAE,GAAG,IAAK,GAAE,IAAK,GAAEmsP,GAAInsP,EAAEX,CAAC,EAAE,MAAM,IAAK,GAA+B,IAA7BW,EAAE,GAAGoyF,GAAK,EAACumE,IAAKwzF,GAAInsP,EAAEX,CAAC,EAAEO,EAAE,EAAM+kK,EAAE,IAAIzsI,EAAIl4B,EAAE,CAAC,EAAE2kK,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAS53C,EAAE7pE,EAAGyhF,EAAIggC,CAAC,EAAE,EAAE,EAAE/kK,EAAEmD,EAAK,KAAK,IAAInD,EAAEmtH,EAAE,CAAC,EAAKntH,EAAEI,EAAE,IAAGA,EAAE,EAAEq4J,GAAI8zF,GAAInsP,EAAEX,CAAC,GAAE,MAAM,IAAK,GAA+B,IAA7BW,EAAE,GAAGoyF,GAAK,EAACumE,IAAKwzF,GAAInsP,EAAEX,CAAC,EAAEulK,EAAE,EAAMplK,EAAE,IAAI04B,EAAIl4B,EAAE,CAAC,EAAER,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASiqD,EAAE4wB,EAAGsqD,EAAInlI,CAAC,CAAC,EAAEolK,EAAE7hK,EAAK,KAAK,IAAI6hK,GAAG9zI,GAAI24B,CAAC,EAAEA,EAAC,EAAMm7G,EAAE5kK,EAAE,IAAGA,EAAE,EAAEs4J,GAAI6zF,GAAInsP,EAAEX,CAAC,GAAE,MAAM,IAAK,GAAE0lK,EAAEvlG,GAAGz8D,EAAK,KAAK,KAAK/C,EAAE,EAAE,OAAO6kK,EAAE,GAAG,CAAC,EAAEsnF,GAAInsP,EAAE,IAAIs8B,IAAIyoI,CAAC,CAAC,EAAE,MAAM,IAAK,GAAED,EAAEtlG,GAAGz8D,EAAK,KAAK,KAAK/C,EAAE,EAAE6kK,EAAE,GAAG,CAAC,EAAEsnF,GAAInsP,EAAE,IAAIu8B,IAAIuoI,CAAC,CAAC,EAAE,MAAM,QAAQqnF,GAAInsP,EAAEX,CAAC,CAAE,CAAC+vO,IAAIpvO,EAAEyzB,CAAC,EAAEo4F,GAAIhsH,CAAC,CAAC,CACvpB,SAASgsO,IAAI7rO,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE,KAAK,EAAE/sH,EAAE,KAAK,EAAEm4M,GAAIn4M,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAEkjD,EAAGo4B,GAAIz7E,EAAEo+G,GAAI,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAKz+G,EAAE0jD,EAAG0lE,EAAI5oH,GAAGkqH,EAAK,EAACu0D,GAAG,EAAG,EAAE,EAAE,KAAK,EAAEj/K,EAAE,IAAIwwF,GAAK,EAAC01E,GAAK,EAAC,KAAK,EAAE,IAAI7gI,EAAI,KAAK,EAAE,IAAImrJ,IAAI,KAAK,CAAC,EAAEjjE,EAAE7pE,EAAG0lE,EAAI,KAAK,EAAEswG,EAAG,EAAE,GAAG,EAAE,KAAK,EAAEzsD,IAAIh5I,EAAEs5F,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI4J,IAAI,IAAI,EAAEt3H,EAAEwgJ,GAAG3mC,EAAG9hE,EAAG27M,IAAG,CAAC,EAAE5uL,GAAI,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAK1wC,IAAI+gE,GAAG,EAAG8sC,KAAM,CAACruF,GAAImnC,GAAGwuC,EAAI5oH,GAAGstB,GAAG,EAAG0lO,GAAG,CAAE,CAAC,GAAGvpM,EAAE,IAAI6uJ,GAAI,KAAK,CAAC,EAAEj5M,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEoqD,EAAE,KAAK,EAAE,IAAI2jF,GAAI3jF,EAAEsjE,EAAE7pE,EAAG,KAAK,EAAE,GAAG,CAAC,GAAUzvB,GAAG6tG,IAAKruF,GAAImnC,GAAGwuC,EAAI5oH,GAAGstB,KAAM0lO,IAAK,CAAC,GAAGvpM,EAAE,IAAI6uJ,GAAI,KAAK,CAAC,EAAEj5M,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEoqD,EAAE,KAAK,EAAE,IAAIk4G,IAAIl4G,EAAEsjE,EAAE7pE,EAAG,KAAK,EAAE,GAAG,CAAC,GAAO,KAAK,EAAE,IAAI2N,IAAIp9B,EAAE,IAAI,EAAEmV,EAAIvpC,EAAE,KAAK,CAAC,EAAEgrP,IAAIhrP,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE4zP,IAAI,KAAK,CAAC,CAAC,CACvpB,SAAS/G,IAAIlsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAA6F,IAA3F+kK,EAAE5hH,EAAGkoB,IAAI2hD,EAAEusC,GAAK,IAAIr5H,GAAIxM,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAIyM,GAAI6sF,CAAC,EAAC,EAAG,EAAE,EAAEptH,EAAEmlK,EAAE5hH,EAAG0lE,EAAIk8C,GAAGue,GAAK,EAACiuD,GAAG,EAAG,EAAE,EAAE,KAAK9xO,EAAE,EAAUslK,GAAKnlK,GAAE,CAAiB,IAAhBC,EAAE,EAAEG,EAAE,EAAEF,EAAEilK,EAAEr7G,EAAE9pD,EAAMglK,EAAE,EAAEA,EAAEnlK,EAAEmlK,IAAK9kK,EAAEokJ,GAAIpkJ,CAAC,EAAE4pD,EAAEw6F,GAAIx6F,CAAC,EAAE1pD,GAAGmzC,EAAImnC,EAAGuuC,EAAI/oH,GAAGwjL,GAAG,EAAGo0D,IAAK,CAAC,EAAE73O,GAAGszC,EAAImnC,EAAGuuC,EAAIn/D,EAAEguL,EAAG,CAAC,CAAC,EAAiF,GAA/E/3O,EAAEwzC,EAAImnC,EAAGuuC,EAAIjpH,GAAG0jL,GAAK,EAACm0D,GAAG,CAAE,CAAC,EAAE2E,EAAEjpM,EAAImnC,EAAGuuC,EAAIk8C,EAAE0yE,EAAG,CAAC,CAAC,EAAEzyE,EAAEhrB,GAAI+qB,EAAEnlK,CAAC,EAAEF,EAAEC,EAAEE,EAAEI,EAAE,EAAE+kK,EAAEo3E,EAAEp8O,EAAK,EAAEN,EAAE,CAAS,IAARmlK,EAAEnxI,EAAEoxI,EAAE,EAAUD,GAAGA,GAAGn7G,GAAG,EAAEo7G,EAAED,EAAE1hH,EAAG0lE,EAAIg8C,EAAE4sE,EAAG,EAAE,EAAE,EAAE,GAAG5sE,EAAa,IAAVrlK,EAAEE,EAAEolK,EAAED,EAAEnxI,EAAQmxI,GAAGn7G,GAAG2gK,EAAEl3K,EAAImnC,EAAGuuC,EAAIg8C,EAAE4yE,EAAG,CAAC,CAAC,EAAE/3O,EAAEqjF,EAAI8hF,EAAE4yE,GAAIptB,CAAC,EAAEnqN,EAAEizC,EAAImnC,EAAGuuC,EAAIg8C,EAAE6yE,EAAG,CAAC,CAAC,EAAEh4O,EAAEqjF,EAAI8hF,EAAE6yE,GAAIx3O,CAAC,EAAER,GAAGF,EAAEqlK,EAAE1hH,EAAG0lE,EAAIg8C,EAAE4sE,EAAG,EAAE,EAAE,MAAQ,OAAO,CAAC,EAAEhyO,EAAEslK,EAAE,EAAE,GAAG,EAAGA,EAAEg4E,GAAI,IAAI78M,GAAIxM,CAAC,EAAEj0B,CAAC,EAAIslK,EAAE5hH,EAAGkoB,IAAI/rE,EAAEi6J,GAAK,IAAIr5H,GAAI6kI,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,IAAI5kI,GAAI7gC,CAAC,EAAC,EAAG,EAAE,EAAGM,EAAEmlK,EAAE5hH,EAAG0lE,EAAIk8C,EAAEwsE,EAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CACzpB,SAAS8a,IAAIpsP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAua,IAArallK,EAAE,GAAKJ,EAAE,EAAEolK,EAAE5kK,EAAE,EAAEyzB,EAAE,CAAC,EAAEoxI,EAAEpxI,EAAE,EAAE,EAAEzzB,EAAE,EAAEH,EAAEG,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAC,EAAEqiF,GAAI91G,EAAE,EAAE4kK,EAAEr3B,EAAIrqF,EAAGo4B,GAAIt7E,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE/kK,CAAC,CAAC,EAAEi2G,GAAI91G,EAAE,EAAE4kK,EAAE1xH,EAAImnC,EAAGiB,GAAIt7E,EAAE,EAAE4kK,CAAC,CAAC,CAAC,EAAEC,EAAEhlK,EAAEG,EAAE,CAAC,EAAE,EAAE4kK,EAAKA,GAAG5kK,EAAE,GAAG,EAAEA,EAAE,EAAE4oC,EAAI5oC,EAAE,EAAEutI,EAAI,CAAC,CAAC,EAAE3kG,EAAI5oC,EAAE,EAAE6kK,CAAC,IAAOp7G,EAAEzpD,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAC,EAAEqiF,GAAI91G,EAAE,EAAE4kK,EAAEr3B,EAAIrqF,EAAGo4B,GAAIt7E,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEn7G,CAAC,CAAC,EAAEqsD,GAAI91G,EAAE,EAAE4kK,EAAE1xH,EAAImnC,EAAGiB,GAAIt7E,EAAE,EAAE4kK,CAAC,CAAC,CAAC,EAAEC,EAAEp7G,EAAEzpD,EAAE,CAAC,IAAGA,EAAE,IAAIoyF,GAAK,EAACimE,MAAOn1G,EAAGo4B,GAAIt7E,EAAE,EAAE4kK,CAAC,EAAE,EAAE,EAAE,EAAE5kK,EAAE,GAAGkjD,EAAGo4B,GAAIt7E,EAAE,EAAE4kK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE5kK,EAAE,IAAIA,EAAE,GAAGs4J,KAAMplH,EAAImnC,EAAGiB,GAAIt7E,EAAE,EAAE4kK,CAAC,CAAC,CAAC,EAAE5kK,EAAE,GAAGkzC,EAAImnC,EAAGiB,GAAIt7E,EAAE,EAAE4kK,EAAE,CAAC,CAAC,CAAC,EAAE5kK,EAAE,MAAMJ,EAAE,IAAWmtH,EAAE,IAAIlc,GAAGphC,GAAGm3G,GAAInzJ,CAAC,EAAE,EAAE,GAAI,EAAC,IAAInwB,EAAE,CAAC,EAAEo7I,GAAG3xB,CAAC,GAAI1tH,EAAE6jD,EAAGu7F,GAAG1xB,CAAC,EAAE,EAAE,EAAE43C,EAAEtlK,EAAE,EAAE,EAAKW,EAAE,EAAE2kK,EAAE,CAAC,GAAGC,IAAGE,EAAEsnF,IAAIpsP,EAAE2kK,CAAC,EAAEnlK,EAAEA,EAAE0jD,EAAG4hH,EAAE,EAAE,EAAE,EAAE,EAAEllK,EAAEA,GAAGqzC,GAAImnC,GAAG0qF,EAAE,CAAC,CAAC,GAAG,OAAA9kK,EAAE,EAAEyzB,EAAE,CAAC,EAAEmxI,EAAEplK,EAAEA,EAAEQ,EAAE,EAAEyzB,EAAE,CAAC,EAAE,CAAC,EAAS,IAAIkjC,GAAI42E,EAAI/tI,CAAC,GAAG4wE,GAAK,EAAC,EAAAxwE,EAAY,CAAE,CAC1pB,SAASwrP,GAAIprP,EAAEyzB,EAAE5zB,EAAE4pD,EAAEjqD,EAAE,CAAC,IAAIH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAmM,IAAjMulK,EAAE,IAAI//H,GAAIgoF,EAAE,IAAIloF,EAAIoqL,IAAIjvN,EAAEH,EAAEG,EAAE,EAAE,GAAI,EAAC+sH,EAAE+3C,CAAC,EAAEmqD,IAAIjvN,EAAEypD,EAAEzpD,EAAE,EAAE,KAAK+sH,EAAE+3C,CAAC,EAAE9kK,EAAE,EAAE,IAAKC,EAAEu7N,IAAIjqE,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIigE,EAAE,EAAE,CAAC,EAAE,IAAIhxG,GAAG,CAAC,EAAEquM,EAAEoR,IAAIjqE,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIigE,EAAE,EAAE,CAAC,EAAE,IAAI/wG,GAAG,CAAC,EAAEjZ,EAAK,KAAK,IAAI9C,EAAEmqN,CAAC,GAAG/qN,EAAE,EAAMslK,EAAE,EAAEA,EAAE53C,EAAE,EAAE,OAAO,EAAE43C,IAA0C,IAArC/kK,GAAGi9D,GAAI8nG,EAAE53C,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAE43C,CAAC,EAAE,GAAG,GAAOhlK,EAAEglK,EAAE,EAAEhlK,EAAEotH,EAAE,EAAE,OAAOptH,IAAKN,GAAGkjN,GAAIviN,EAAEJ,GAAGi9D,GAAIl9D,EAAEotH,EAAE,EAAE,MAAM,EAAE7pE,EAAG6pE,EAAE,EAAEptH,CAAC,EAAE,GAAG,IAAiI,IAA5HolK,EAAE7hH,EAAG0lE,EAAIn1F,GAAGy2F,EAAK,EAACgvG,GAAK,EAAC,GAAG,EAAE75N,GAAG,IAAIE,EAAEi6M,IAAIzsF,EAAE,GAAKg4C,CAAC,EAAE,CAAC/kK,EAAE,IAAIA,EAAE,EAAE,IAAIggC,IAAIhgC,CAAC,GAAGyzL,IAAIzzL,EAAE,EAAET,EAAEwtH,EAAE/sH,EAAE,CAAC,GAAau5M,IAAIxsF,EAAEg4C,CAAC,EAAEmuF,IAAInmI,CAAC,EAAEttH,EAAE,GAAOolK,EAAE,IAAI3sI,EAAI60F,CAAC,EAAE83C,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,GAAG,EAAK,EAAA9hK,EAAK,KAAK,IAAI6hK,EAAE,EAAEA,EAAE,CAAC,EAAEyjC,MAAc5oM,EAAEsD,EAAK,KAAK,IAAItD,EAAEmlK,EAAE,CAAC,EAAE5kK,EAAE,EAAE,GAAG4kK,EAAEplK,EAAEQ,EAAE,CAAC,GAAE,OAAAA,EAAE,EAAE,EAAE,EAAE,GAAE,EAAUP,EAAE,CAAC,CAC3pB,SAAS+zN,IAAIxzN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAEltH,EAAEqzC,EAAImnC,EAAGuuC,EAAIn1F,GAAGnG,GAAK,EAACm0I,GAAG,CAAE,CAAC,EAAE5hK,EAAE,GAAGijF,EAAIrvD,EAAEguI,GAAI,CAAC,EAAEh4G,EAAEvG,EAAG0lE,EAAIn1F,EAAEiyJ,EAAG,EAAE,GAAG,EAAEj8H,IAAIsyC,KAAMs+C,KAAMv3D,EAAIrvD,EAAEiyJ,GAAID,GAAIhyJ,CAAC,CAAC,EAAEj0B,EAAE0jD,EAAG0lE,EAAIn1F,EAAE0/N,GAAG,EAAE,EAAE,EAAE3zP,EAAE,GAAG,EAAEsjF,EAAIrvD,GAAGy2F,IAAMgvG,IAAK,IAAI3yC,EAAG,EAAEzjG,EAAIrvD,GAAGy2F,EAAG,EAAGgvG,IAAK,IAAI3hF,GAAI/3I,EAAE,CAAC,CAAC,EAAEH,EAAE+6E,GAAGwuC,EAAIn1F,EAAE2/N,EAAG,CAAC,EAAE/zP,GAAG,MAAMyjF,EAAIrvD,EAAE2/N,IAAKhjL,GAAK,EAACrW,EAAG6uD,EAAIn1F,EAAEiuI,EAAG,CAAC,IAAI3nG,GAAIwiC,GAAG,EAAGy2C,KAAgB,EAAG3tF,GAAI,IAAIulD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIoH,GAAI76B,CAAC,CAAC,EAAEqlD,GAAIksG,GAAI,IAAI3mD,GAAI,KAAK,IAAI99C,GAAIr5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI/oB,EAAG,EAAE,IAAIowB,GAAI96B,CAAC,CAAC,EAAE+sH,EAAE,IAAI2kI,IAAIj+N,CAAC,EAAEqvD,EAAIrvD,GAAGy2F,EAAG,EAAGw4E,IAAK31E,CAAC,EAAEwd,GAAIvqI,EAAE,CAAC,EAAEm2G,GAAIn2G,EAAE,GAAG8pF,GAAG,EAAGuuD,IAAKn1F,EAAG0lE,EAAIn1F,EAAE4/N,EAAG,EAAE,GAAG,CAAC,EAAEl9I,GAAIn2G,EAAE,EAAEs4I,GAAIp1F,EAAG0lE,EAAIn1F,EAAE6/N,GAAG,EAAE,GAAG,CAAC,EAAEn9I,GAAIn2G,EAAE,EAAEu4I,GAAIr1F,EAAG0lE,EAAIn1F,EAAEk+L,EAAG,EAAE,GAAG,CAAC,EAAEx7G,GAAIn2G,EAAE,EAAEw4I,GAAIt1F,EAAG0lE,EAAIn1F,EAAE8/N,EAAG,EAAE,GAAG,CAAC,EAAEp9I,GAAIn2G,EAAE,EAAE24H,GAAI2yC,IAAIpoH,EAAG0lE,EAAIn1F,EAAEiuI,EAAG,EAAE,GAAG,CAAC,CAAC,EAAEnhG,IAAIvgE,EAAE,EAAEwzP,IAAI//N,CAAC,CAAC,EAAEqvD,EAAIrvD,EAAEk5N,GAAI/zC,GAAI54M,EAAE,EAAEyzB,CAAC,CAAC,CAAC,CAC5pB,SAAS49J,IAAIrxL,EAAEyzB,EAAE5zB,EAAE,CAAC,IAAI4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAAEz8O,EAAEK,EAAEk/O,EAAEsK,EAAE,OAAGxkF,EAAE/kK,EAAE,EAAEyzB,CAAC,EAAEh0B,EAAEO,EAAE,EAAEH,CAAC,EAAGF,EAAEujD,EAAG0lE,EAAIm8C,GAAG76C,EAAK,EAACC,GAAG,EAAG,EAAE,EAAE,CAAC,CAACxqH,GAAGA,EAAE,GAAI,GAAE,GAAGA,EAAE,GAAGF,CAAC,IAAKQ,EAAE8kK,EAAE,IAAIp6E,GAAK,EAAC2+D,KAAM7pJ,EAAE,GAAG6pJ,GAAI8gE,EAAElnK,EAAG0lE,EAAIm8C,EAAE2T,EAAG,EAAE,EAAE,EAAEn5K,EAAE2jD,EAAG0lE,EAAInpH,EAAEi5K,EAAG,EAAE,EAAE,EAAEyjE,EAAE/xB,GAAG7qN,EAAEG,EAAE,CAAC,CAAC0qN,GAAGA,GAAGrlD,GAAG,CAAC,CAACxlK,GAAGA,GAAGE,EAAEM,EAAE6hM,GAAI78B,GAAGjmE,EAAK,EAAC+5C,GAAG,EAAGomG,EAAEr9C,GAAIniM,EAAEwwI,EAAG,EAAEvwI,EAAEA,GAAGkiM,GAAI78B,EAAE90B,EAAG,GAAG2xD,GAAIniM,EAAEo5I,EAAG,GAAG0wG,EAAE7pP,GAAGy8O,GAAGp8O,GAAGk/O,EAAEh/O,GAAGspP,IAAIxkF,EAAE,IAAIp6E,GAAK,EAAC4+D,KAAM9pJ,EAAE,GAAG4sH,IAAK5sH,EAAE,IAAIkrF,GAAG,EAAG4+D,KAAMwb,EAAE,GAAG14C,GAAY,IAAMw4C,EAAE7kK,EAAE,EAAEyzB,CAAC,EAAEp0B,EAAEW,EAAE,EAAEH,CAAC,EAAEL,EAAE2yM,IAAInyM,EAAE,EAAE6kK,EAAExlK,GAAGy/F,EAAG,EAAGmE,GAAK,EAACrjG,EAAEuyM,IAAInyM,EAAE,EAAE6kK,EAAExlK,EAAE+jG,EAAG,EAAEimI,IAAIrpO,EAAE,EAAE6kK,EAAExlK,CAAC,EAAEulK,EAAE2T,IAAIv4K,EAAE,EAAE6kK,EAAExlK,CAAC,EAAE6jD,EAAG1jD,EAAE,EAAE,EAAE,EAAE,EAAE0jD,EAAGtjD,EAAE,EAAE,EAAE,EAAE,EAAEI,EAAE,EAAE,EAAE2kK,EAAE4T,IAAIv4K,EAAE,EAAEX,EAAEwlK,CAAC,EAAE3hH,EAAG1jD,EAAE,EAAE,EAAE,EAAE,EAAE0jD,EAAGtjD,EAAE,EAAE,EAAE,EAAE,EAAEI,EAAE,EAAE,EAAKA,EAAE,IAAG8kK,EAAE5hH,EAAG0lE,EAAIi8C,EAAE5W,EAAG,EAAE,EAAE,EAAElhC,EAAE7pE,EAAG0lE,EAAIvpH,EAAE4uJ,EAAG,EAAE,EAAE,EAAExkG,EAAEk/I,IAAI3oM,EAAE,EAAE8kK,EAAE/3C,CAAC,EAAE63C,GAAG1hH,EAAGuG,EAAE,EAAE,EAAE,EAAE,EAAEk7G,GAAGzhH,EAAGuG,EAAE,EAAE,EAAE,EAAE,GAASm7G,EAAED,EAAC,CAC5pB,SAASsuE,IAAIjzO,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAA8G,IAA5GJ,EAAEqjD,EAAG0lE,EAAI5oH,GAAGstB,GAAG,EAAG6oI,GAAG,EAAG,EAAE,EAAEppC,EAAE/sH,EAAE,EAAEX,EAAEW,EAAE,EAAE2kK,EAAE53C,EAAE,EAAE1tH,EAAE,EAAEA,EAAE,EAAEO,EAAE,EAAEP,EAAE,EAAEW,EAAE,EAAE,EAAE6kK,EAAE93C,EAAE,EAAE1tH,EAAE,EAAEA,EAAE,EAAEW,EAAE,EAAE,EAAE4kK,EAAE,IAAI//H,EAAIigI,EAAE,IAAIjgI,EAAQrlC,EAAE,IAAI04B,EAAIzE,CAAC,EAAEj0B,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAQ,CAAiB,OAAhBiqD,EAAEvG,EAAGyhF,EAAInlI,CAAC,EAAE,EAAE,EAASK,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE,IAAK,GAAEqqO,IAAIzgL,CAAC,EAAE,MAAM,IAAK,GAAEs7G,EAAE7hH,EAAG0lE,EAAIn/D,EAAE0gL,EAAG,EAAE,CAAC,EAAE1qO,EAAGslK,EAAIA,EAAE,EAAJ,EAAMt7G,EAAE,EAAE,EAAEk7G,EAAEzxH,EAAImnC,EAAGuuC,EAAIn/D,GAAGygE,IAAMghC,GAAK,CAAA,CAAC,EAAEzrJ,EAAEytK,GAAIzjH,EAAE,GAAK,EAAK,EAAE,MAAM,IAAK,GAAE9pD,EAAEujD,EAAG0lE,EAAIn/D,EAAE0gL,EAAG,EAAE,CAAC,EAAElqO,EAAGN,EAAIA,EAAE,EAAJ,EAAM8pD,EAAE,EAAE,EAAEvW,EAAImnC,EAAGuuC,EAAIn/D,GAAGygE,EAAG,EAAGghC,GAAG,CAAE,CAAC,EAAEjrJ,EAAEitK,GAAIzjH,EAAE,GAAK,EAAK,EAAEsjE,EAAE,EAAEhqH,EAAK,KAAK,IAAIgqH,EAAE,EAAEtjE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAOvG,EAAG0lE,EAAIn/D,GAAGygE,EAAG,EAAG6iD,GAAG,EAAG,EAAE,EAAE,EAAG,CAAA,IAAK,GAAEtjH,EAAE,EAAE,EAAE7pD,EAAEglK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEn7G,EAAE,MAAM,IAAK,GAAEA,EAAE,EAAE,EAAEo7G,EAAEC,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAEr7G,CAAE,CAAC,CAAC,OAAO5pD,EAAE,EAAG,CAAA,IAAK,GAAE,IAAK,GAAE+hL,IAAIhd,EAAE5kK,CAAC,EAAE4hL,IAAI9c,EAAE9kK,CAAC,EAAE,MAAM,IAAK,GAAE8hL,IAAIld,EAAE5kK,CAAC,EAAE8hL,IAAIhd,EAAE9kK,CAAC,CAAE,CAAC,CAC9pB,SAASohJ,IAAIphJ,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAiC,IAA/BD,EAAE,IAAIhgI,EAAIigI,EAAE,IAAIngI,GAAItlC,EAAE,KAAKG,EAAE,EAAMiqD,EAAE,EAAEA,EAAEh2B,EAAE,OAAO,EAAEg2B,EAAmF,OAAhF5pD,EAAE4zB,EAAEg2B,CAAC,EAAEgvH,IAAIp5K,EAAEQ,CAAC,IAAIL,EAAE+xL,GAAIvxL,EAAE8kK,EAAED,EAAE1hE,GAAI3jG,CAAC,GAAGk3E,GAAI72E,GAAGqqH,EAAK,EAACwuD,GAAG,IAAKr5K,EAAE6jD,EAAG0lE,EAAI/oH,EAAE64K,EAAG,EAAE,EAAE,GAAU74K,EAAE,EAAE,EAAC,CAAE,IAAK,GAAE,IAAID,EAAEklE,GAAGq8B,GAAGq/E,GAAI3gL,GAAGi/F,EAAK,EAAC+5C,GAAG,EAAG,IAAI3/H,EAAG,CAAC,EAAEi1I,GAAGvuJ,CAAC,GAAImtH,EAAE7pE,EAAGgrG,GAAGtuJ,CAAC,EAAE,EAAE,EAAEI,EAAE,EAAE+sH,EAAE,CAAC,EAAEvtH,IAAIqlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE93C,EAAqB,IAAnBvtH,EAAE+xL,GAAIvxL,EAAE8kK,EAAED,EAAE1hE,GAAI3jG,CAAC,EAAMolK,EAAE9/F,GAAGq8B,GAAGq/E,GAAI3gL,EAAEowI,EAAG,EAAE,IAAI/2H,EAAG,CAAC,EAAEi1I,GAAGyW,CAAC,GAAI73C,EAAE7pE,EAAGgrG,GAAG0W,CAAC,EAAE,EAAE,EAAE5kK,EAAE,EAAE+sH,EAAE,CAAC,EAAEvtH,IAAIqlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE93C,EAAE,MAAM,IAAK,GAAMyzD,GAAI3gL,EAAEqjG,GAAG,EAAE,GAAI,IAAE6pB,EAAE7pE,EAAGs9H,GAAI3gL,EAAEqjG,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAEljG,EAAE,EAAE+sH,EAAE,CAAC,EAAEvtH,IAAIqlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE93C,GAAEyzD,GAAI3gL,EAAEsjG,EAAG,EAAE,GAAE,GAAI4tC,GAAI+zB,EAAEjlK,CAAC,EAAE,MAAM,IAAK,GAAE,IAAI8kK,EAAE6b,GAAI3gL,GAAGi/F,EAAG,EAAGmE,KAAM,GAAI,EAAC0hE,EAAE,GAAI,GAAG53C,EAAE7pE,EAAGyhH,EAAE,GAAE,EAAG,EAAE,EAAE3kK,EAAE,EAAE+sH,EAAE,CAAC,EAAEvtH,IAAIqlK,EAAE,EAAEA,EAAE,EAAE,MAAM,EAAE93C,EAAEyzD,GAAI3gL,EAAEujG,EAAG,EAAE,GAAG,IAAIpwC,IAAI8xG,EAAEjlK,CAAC,CAAC,CAAE,CAAE,OAAA0xL,GAAIvxL,EAAE8kK,EAAED,EAAE1hE,GAAI3jG,CAAC,EAASqlK,CAAC,CAC9pB,SAAS4uF,IAAIzzP,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAAEM,EAAEmqN,EAAE7qN,EAAE48O,EAA0B,IAAxBv3E,EAAEztD,GAAI0tD,EAAE1tD,GAAIwtD,EAAEttD,GAAIz3G,EAAEy3G,GAAQ0tD,EAAE,IAAI7sI,EAAIzE,EAAE,CAAC,EAAEsxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASD,EAAE5hH,EAAGyhF,EAAIogC,CAAC,EAAE,EAAE,EAAEvlK,EAAE0jD,EAAGA,EAAGgwD,GAAIlzG,EAAE,EAAE8kK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEjiG,GAAIrjE,EAAEslK,EAAE,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEF,EAAE7hK,EAAK,KAAK,IAAI6hK,EAAEplK,EAAE,CAAC,EAAEqlK,EAAE9hK,EAAK,KAAK,IAAI8hK,EAAErlK,EAAE,CAAC,EAAEmlK,EAAE5hK,EAAK,KAAK,IAAI4hK,EAAEnlK,EAAE,EAAEA,EAAE,CAAC,EAAEI,EAAEmD,EAAK,KAAK,IAAInD,EAAEJ,EAAE,EAAEA,EAAE,CAAC,EAAuG,IAArGC,EAAEyjD,EAAGulE,GAAIzoH,EAAE,GAAG0uB,GAAK,EAACkxL,IAAG,EAAG,GAAG,EAAEu+B,GAAIn+O,EAAE,EAAE2kK,EAAEC,GAAGnlK,EAAE,EAAEA,EAAE,GAAGG,EAAEilK,GAAGplK,EAAE,EAAEA,EAAE,GAAG,GAAK,EAAI,EAAEylL,GAAIllL,EAAE,EAAE,CAAC4kK,EAAEnlK,EAAE,EAAE,CAAColK,EAAEplK,EAAE,CAAC,EAAMgqD,EAAE,IAAI0S,GAAIiqD,IAAIpmH,EAAE,CAAC,CAAC,EAAEypD,EAAE,GAAGA,EAAE,EAAE,GAAI,GAAG5pD,EAAEqjD,EAAGmvG,GAAI5oG,CAAC,EAAE,EAAE,EAAEsjE,EAAE4lG,GAAI9yN,EAAE,GAAK,EAAI,EAAEF,EAAEymG,GAAIvmG,CAAC,EAAEuqN,EAAE9jH,GAAIzmG,CAAC,EAAEI,EAAE,IAAIm1D,GAAIz1D,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEN,EAAE,IAAI+1D,GAAIg1J,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAE7qN,EAAE8gF,GAAI,IAAIjrB,GAAI/1D,EAAE,EAAEA,EAAE,CAAC,EAAEY,CAAC,EAAEqwM,GAAI/wM,EAAEI,EAAE,EAAEA,EAAE,CAAC,EAAEygF,GAAIngF,EAAEV,CAAC,EAAE48O,EAAE97J,GAAI,IAAIjrB,GAAIn1D,EAAE,EAAEA,EAAE,CAAC,EAAEZ,CAAC,EAAEixM,GAAI6rC,EAAE/xB,EAAE,EAAEA,EAAE,CAAC,EAAEhqI,GAAI/gF,EAAE88O,CAAC,EAAEh5K,GAAI4pD,EAAE9sH,EAAE,EAAEA,EAAE,CAAC,EAAE+iE,GAAI+pD,EAAE1tH,EAAE,EAAEA,EAAE,CAAC,CAAE,CAC9pB,SAASo0N,IAAIzzN,EAAEyzB,EAAE,CAAC,IAAI5zB,EAAE4pD,EAAEjqD,EAAEH,EAAE0tH,EAAE43C,EAAE/kK,EAAEglK,EAAEC,EAAEC,EAAEC,EAAEtlK,EAAEE,EAA6J,GAA3JK,EAAE,EAAEA,EAAE,EAAEL,EAAEy6E,GAAGwuC,EAAIn1F,GAAGnG,GAAG,EAAGomO,IAAG,CAAE,EAAEj0P,EAAEE,GAAG,OAAOmxB,GAAInxB,CAAC,EAAEA,GAAGN,EAAE6jD,EAAG0lE,EAAIn1F,GAAGy2F,IAAMu0D,GAAK,EAAC,EAAE,EAAE,IAAIzuF,GAAG,EAAG01E,KAAMlmK,EAAE0jD,EAAG0lE,EAAIn1F,EAAE0iI,EAAG,EAAE,EAAE,EAAEt2J,EAAE,EAAEL,IAAIu+F,GAAG,EAAGza,KAAM9jF,GAAG+jF,IAAK/jF,GAAGgkF,IAAQ/jF,IAAII,GAAG,CAACR,GAAG,CAAC,IAAIylK,EAAE,IAAI5sI,EAAIzE,EAAE,CAAC,EAAEqxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAASF,EAAE1hH,EAAGyhF,EAAImgC,CAAC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAY,IAAVG,EAAE,IAAIlgI,EAAQggI,EAAE,IAAI3sI,EAAIzE,EAAE,CAAC,EAAEoxI,EAAE,EAAEA,EAAE,EAAE,EAAE,QAAyC,GAAhCD,EAAE1hH,EAAGyhF,EAAIkgC,CAAC,EAAE,EAAE,EAAEp7G,EAAEq1L,IAAI9+O,EAAE4kK,EAAE,IAAI,EAAKn7G,EAAE,CAAuE,IAAtE7pD,EAAE,IAAIw9J,GAAIte,GAAIl/I,EAAE6zB,CAAC,EAAEqvD,EAAIljF,EAAE62K,GAAIvzH,EAAGuG,EAAE,EAAE,EAAE,CAAC,EAAE89D,GAAI3nH,EAAE,EAAE6zB,EAAE,CAAC,EAAEqvD,EAAIljF,EAAE0tO,GAAI,IAAI,EAAM3oE,EAAEzhH,EAAGuG,EAAE,EAAE,EAAE,EAAE,GAAE,EAAGk7G,EAAE,GAAE,GAAK53C,EAAE7pE,EAAGyhH,EAAE,GAAI,EAAC,EAAE,EAAE/7H,EAAIhpC,EAAE,EAAEmtH,CAAC,EAAEA,EAAE,EAAEntH,EAAEmlK,EAAE,GAAGnlK,CAAC,CAAC,CAAEP,IAAI06D,EAAG6uD,EAAIn1F,EAAEkgO,EAAG,CAAC,IAAI55L,GAAIuwB,GAAG,EAAGuyC,GAAG,EAAI78H,EAAE,EAAEA,EAAE,EAAIA,EAAE,EAAEA,EAAE,EAAG,MAAM+kK,EAAE,IAAIrxH,GAAIwlE,EAAG9hE,EAAGu0L,IAAG,CAAC,EAAEC,IAAI,GAAG,EAAE,CAACn4M,CAAC,CAAC,CAAC,EAAE,OAAAsmC,EAAG6uD,EAAIn1F,EAAEkgO,EAAG,CAAC,IAAI55L,GAAIuwB,KAAMqyC,GAAK,IAAGtyD,GAAG,EAAG06F,EAAE,GAAG,IAAIr5J,GAAG,GAAUq5J,CAAC,CAC/pB,SAAS6uF,IAAI5zP,EAAE,CAACmpD,GAAInpD,EAAE,IAAI47M,GAAIziK,GAAIJ,GAAIG,GAAIJ,GAAIG,GAAID,GAAI,IAAIt6B,GAAIm1O,EAAG,EAAE,cAAc,EAAE,uOAAuO,EAAE,IAAIt3O,GAAG,EAAEu3O,GAAG,EAAEn4K,IAAK+jB,GAAK,EAACm3D,GAAG,CAAE,CAAC,CAAC,EAAE3sB,EAAIlqI,EAAE6zP,GAAIjiB,GAAI5Z,GAAG,EAAE9tF,EAAIlqI,EAAE6zP,GAAIhiB,GAAI,EAAE,EAAE3nG,EAAIlqI,EAAE6zP,GAAI9hB,GAAIlhD,EAAG,EAAE3mD,EAAIlqI,EAAE6zP,GAAI1T,GAAI5yG,EAAI,CAAC,CAAC,EAAErD,EAAIlqI,EAAE6zP,GAAIE,IAAK3jL,GAAG,EAAG,GAAM,EAAC85D,EAAIlqI,EAAE6zP,GAAI9Y,GAAIz3I,GAAIg1H,GAAG,CAAC,EAAEpuF,EAAIlqI,EAAE6zP,GAAIha,GAAIv2I,GAAIi1H,GAAG,CAAC,EAAEruF,EAAIlqI,EAAE6zP,GAAI/Z,GAAIx2I,GAAIk1H,GAAG,CAAC,EAAEtuF,EAAIlqI,EAAE6zP,GAAIxT,GAAI/8I,GAAIm1H,GAAG,CAAC,EAAEvuF,EAAIlqI,EAAE6zP,GAAIG,GAAI1wJ,GAAIo1H,GAAG,CAAC,EAAExuF,EAAIlqI,EAAE6zP,GAAII,GAAI3wJ,GAAIq1H,GAAG,CAAC,EAAEzuF,EAAIlqI,EAAE6zP,GAAIK,GAAI5wJ,GAAIs1H,GAAG,CAAC,EAAE1uF,EAAIlqI,EAAE6zP,GAAI5nF,IAAI3oE,GAAIu1H,GAAG,CAAC,EAAE3uF,EAAIlqI,EAAE6zP,GAAIznF,IAAI9oE,GAAIw1H,GAAG,CAAC,CAAC,CAC/pB,SAASve,IAAIv6M,EAAE,CAAIA,EAAE,IAASA,EAAE,EAAE,GAAKA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,EAAE,EAAEujK,GAAIvjK,EAAE,EAAE,EAAE,EAAEujK,GAAIvjK,EAAE,EAAE,EAAE,EAAEsjK,GAAItjK,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,EAAE,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEsjK,GAAItjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,CAAC,EAAEujK,GAAIvjK,EAAE,EAAE,EAAE,EAAEsjK,GAAItjK,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE+qK,GAAI/qK,EAAE,E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EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAAIjrK,EAAE,EAAE,EAAEA,EAAE,EAAEirK,GAA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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js b/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js deleted file mode 100644 index d322d2e..0000000 --- a/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js +++ /dev/null @@ -1,267 +0,0 @@ -import{ac as ze,ad as Ne,ae as Ve,af as Pe,ag as yn,ah as Gt,ai as kn,aj as nt,c as xt,s as pn,g as Tn,v as vn,x as xn,b as bn,a as wn,m as Cn,z as Dn,n as Mn,l as ae,h as Ht,i as Sn,j as _n,y as Un}from"./index-jpNTxDe4.js";import{h as me,g as de}from"./index-2K3MavtT.js";import{b as Yn,t as De,c as Fn,a as Ln,l as En}from"./linear-WA_JRKe7.js";import{i as An}from"./init-Hi12RPRh.js";function In(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Wn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function On(t){return t}var Nt=1,Qt=2,oe=3,zt=4,Me=1e-6;function Hn(t){return"translate("+t+",0)"}function zn(t){return"translate(0,"+t+")"}function Nn(t){return e=>+t(e)}function Vn(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Pn(){return!this.__axis}function Re(t,e){var n=[],r=null,i=null,s=6,o=6,y=3,M=typeof window<"u"&&window.devicePixelRatio>1?0:.5,p=t===Nt||t===zt?-1:1,D=t===zt||t===Qt?"x":"y",_=t===Nt||t===oe?Hn:zn;function w(b){var P=r??(e.ticks?e.ticks.apply(e,n):e.domain()),g=i??(e.tickFormat?e.tickFormat.apply(e,n):On),Y=Math.max(s,0)+y,H=e.range(),O=+H[0]+M,N=+H[H.length-1]+M,V=(e.bandwidth?Vn:Nn)(e.copy(),M),j=b.selection?b.selection():b,x=j.selectAll(".domain").data([null]),E=j.selectAll(".tick").data(P,e).order(),T=E.exit(),l=E.enter().append("g").attr("class","tick"),f=E.select("line"),m=E.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),E=E.merge(l),f=f.merge(l.append("line").attr("stroke","currentColor").attr(D+"2",p*s)),m=m.merge(l.append("text").attr("fill","currentColor").attr(D,p*Y).attr("dy",t===Nt?"0em":t===oe?"0.71em":"0.32em")),b!==j&&(x=x.transition(b),E=E.transition(b),f=f.transition(b),m=m.transition(b),T=T.transition(b).attr("opacity",Me).attr("transform",function(c){return isFinite(c=V(c))?_(c+M):this.getAttribute("transform")}),l.attr("opacity",Me).attr("transform",function(c){var v=this.parentNode.__axis;return _((v&&isFinite(v=v(c))?v:V(c))+M)})),T.remove(),x.attr("d",t===zt||t===Qt?o?"M"+p*o+","+O+"H"+M+"V"+N+"H"+p*o:"M"+M+","+O+"V"+N:o?"M"+O+","+p*o+"V"+M+"H"+N+"V"+p*o:"M"+O+","+M+"H"+N),E.attr("opacity",1).attr("transform",function(c){return _(V(c)+M)}),f.attr(D+"2",p*s),m.attr(D,p*Y).text(g),j.filter(Pn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Qt?"start":t===zt?"end":"middle"),j.each(function(){this.__axis=V})}return w.scale=function(b){return arguments.length?(e=b,w):e},w.ticks=function(){return n=Array.from(arguments),w},w.tickArguments=function(b){return arguments.length?(n=b==null?[]:Array.from(b),w):n.slice()},w.tickValues=function(b){return arguments.length?(r=b==null?null:Array.from(b),w):r&&r.slice()},w.tickFormat=function(b){return arguments.length?(i=b,w):i},w.tickSize=function(b){return arguments.length?(s=o=+b,w):s},w.tickSizeInner=function(b){return arguments.length?(s=+b,w):s},w.tickSizeOuter=function(b){return arguments.length?(o=+b,w):o},w.tickPadding=function(b){return arguments.length?(y=+b,w):y},w.offset=function(b){return arguments.length?(M=+b,w):M},w}function Rn(t){return Re(Nt,t)}function Bn(t){return Re(oe,t)}const Zn=Math.PI/180,Xn=180/Math.PI,Rt=18,Be=.96422,Ze=1,Xe=.82521,qe=4/29,bt=6/29,je=3*bt*bt,qn=bt*bt*bt;function Ge(t){if(t instanceof ot)return new ot(t.l,t.a,t.b,t.opacity);if(t instanceof lt)return Qe(t);t instanceof Ve||(t=yn(t));var e=te(t.r),n=te(t.g),r=te(t.b),i=Jt((.2225045*e+.7168786*n+.0606169*r)/Ze),s,o;return e===n&&n===r?s=o=i:(s=Jt((.4360747*e+.3850649*n+.1430804*r)/Be),o=Jt((.0139322*e+.0971045*n+.7141733*r)/Xe)),new ot(116*i-16,500*(s-i),200*(i-o),t.opacity)}function jn(t,e,n,r){return arguments.length===1?Ge(t):new ot(t,e,n,r??1)}function ot(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}ze(ot,jn,Ne(Pe,{brighter(t){return new ot(this.l+Rt*(t??1),this.a,this.b,this.opacity)},darker(t){return new ot(this.l-Rt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Be*Kt(e),t=Ze*Kt(t),n=Xe*Kt(n),new Ve($t(3.1338561*e-1.6168667*t-.4906146*n),$t(-.9787684*e+1.9161415*t+.033454*n),$t(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Jt(t){return t>qn?Math.pow(t,1/3):t/je+qe}function Kt(t){return t>bt?t*t*t:je*(t-qe)}function $t(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function te(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Gn(t){if(t instanceof lt)return new lt(t.h,t.c,t.l,t.opacity);if(t instanceof ot||(t=Ge(t)),t.a===0&&t.b===0)return new lt(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const o=i(s),y=i.ceil(s);return s-o(e(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,y)=>{const M=[];if(s=i.ceil(s),y=y==null?1:Math.floor(y),!(s0))return M;let p;do M.push(p=new Date(+s)),e(s,y),t(s);while(ptt(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,y)=>{if(o>=o)if(y<0)for(;++y<=0;)for(;e(o,-1),!s(o););else for(;--y>=0;)for(;e(o,1),!s(o););}),n&&(i.count=(s,o)=>(ee.setTime(+s),ne.setTime(+o),t(ee),t(ne),Math.floor(n(ee,ne))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?o=>r(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const Bt=tt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Bt.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?tt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Bt);Bt.range;const ut=1e3,it=ut*60,ft=it*60,ht=ft*24,ge=ht*7,Se=ht*30,re=ht*365,vt=tt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ut)},(t,e)=>(e-t)/ut,t=>t.getUTCSeconds());vt.range;const Lt=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ut)},(t,e)=>{t.setTime(+t+e*it)},(t,e)=>(e-t)/it,t=>t.getMinutes());Lt.range;const $n=tt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*it)},(t,e)=>(e-t)/it,t=>t.getUTCMinutes());$n.range;const Et=tt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ut-t.getMinutes()*it)},(t,e)=>{t.setTime(+t+e*ft)},(t,e)=>(e-t)/ft,t=>t.getHours());Et.range;const tr=tt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ft)},(t,e)=>(e-t)/ft,t=>t.getUTCHours());tr.range;const gt=tt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*it)/ht,t=>t.getDate()-1);gt.range;const ye=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/ht,t=>t.getUTCDate()-1);ye.range;const er=tt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/ht,t=>Math.floor(t/ht));er.range;function kt(t){return tt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*it)/ge)}const Ct=kt(0),Zt=kt(1),nr=kt(2),rr=kt(3),Dt=kt(4),ir=kt(5),sr=kt(6);Ct.range;Zt.range;nr.range;rr.range;Dt.range;ir.range;sr.range;function pt(t){return tt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/ge)}const Je=pt(0),Xt=pt(1),ar=pt(2),or=pt(3),Mt=pt(4),cr=pt(5),lr=pt(6);Je.range;Xt.range;ar.range;or.range;Mt.range;cr.range;lr.range;const At=tt(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());At.range;const ur=tt(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());ur.range;const mt=tt(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());mt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});mt.range;const yt=tt(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());yt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:tt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});yt.range;function fr(t,e,n,r,i,s){const o=[[vt,1,ut],[vt,5,5*ut],[vt,15,15*ut],[vt,30,30*ut],[s,1,it],[s,5,5*it],[s,15,15*it],[s,30,30*it],[i,1,ft],[i,3,3*ft],[i,6,6*ft],[i,12,12*ft],[r,1,ht],[r,2,2*ht],[n,1,ge],[e,1,Se],[e,3,3*Se],[t,1,re]];function y(p,D,_){const w=DY).right(o,w);if(b===o.length)return t.every(De(p/re,D/re,_));if(b===0)return Bt.every(Math.max(De(p,D,_),1));const[P,g]=o[w/o[b-1][2]53)return null;"w"in u||(u.w=1),"Z"in u?(I=se(Ut(u.y,0,1)),Q=I.getUTCDay(),I=Q>4||Q===0?Xt.ceil(I):Xt(I),I=ye.offset(I,(u.V-1)*7),u.y=I.getUTCFullYear(),u.m=I.getUTCMonth(),u.d=I.getUTCDate()+(u.w+6)%7):(I=ie(Ut(u.y,0,1)),Q=I.getDay(),I=Q>4||Q===0?Zt.ceil(I):Zt(I),I=gt.offset(I,(u.V-1)*7),u.y=I.getFullYear(),u.m=I.getMonth(),u.d=I.getDate()+(u.w+6)%7)}else("W"in u||"U"in u)&&("w"in u||(u.w="u"in u?u.u%7:"W"in u?1:0),Q="Z"in u?se(Ut(u.y,0,1)).getUTCDay():ie(Ut(u.y,0,1)).getDay(),u.m=0,u.d="W"in u?(u.w+6)%7+u.W*7-(Q+5)%7:u.w+u.U*7-(Q+6)%7);return"Z"in u?(u.H+=u.Z/100|0,u.M+=u.Z%100,se(u)):ie(u)}}function T(k,C,L,u){for(var X=0,I=C.length,Q=L.length,K,st;X=Q)return-1;if(K=C.charCodeAt(X++),K===37){if(K=C.charAt(X++),st=j[K in _e?C.charAt(X++):K],!st||(u=st(k,L,u))<0)return-1}else if(K!=L.charCodeAt(u++))return-1}return u}function l(k,C,L){var u=p.exec(C.slice(L));return u?(k.p=D.get(u[0].toLowerCase()),L+u[0].length):-1}function f(k,C,L){var u=b.exec(C.slice(L));return u?(k.w=P.get(u[0].toLowerCase()),L+u[0].length):-1}function m(k,C,L){var u=_.exec(C.slice(L));return u?(k.w=w.get(u[0].toLowerCase()),L+u[0].length):-1}function c(k,C,L){var u=H.exec(C.slice(L));return u?(k.m=O.get(u[0].toLowerCase()),L+u[0].length):-1}function v(k,C,L){var u=g.exec(C.slice(L));return u?(k.m=Y.get(u[0].toLowerCase()),L+u[0].length):-1}function a(k,C,L){return T(k,e,C,L)}function A(k,C,L){return T(k,n,C,L)}function h(k,C,L){return T(k,r,C,L)}function B(k){return o[k.getDay()]}function Z(k){return s[k.getDay()]}function J(k){return M[k.getMonth()]}function d(k){return y[k.getMonth()]}function S(k){return i[+(k.getHours()>=12)]}function U(k){return 1+~~(k.getMonth()/3)}function F(k){return o[k.getUTCDay()]}function W(k){return s[k.getUTCDay()]}function G(k){return M[k.getUTCMonth()]}function R(k){return y[k.getUTCMonth()]}function dt(k){return i[+(k.getUTCHours()>=12)]}function q(k){return 1+~~(k.getUTCMonth()/3)}return{format:function(k){var C=x(k+="",N);return C.toString=function(){return k},C},parse:function(k){var C=E(k+="",!1);return C.toString=function(){return k},C},utcFormat:function(k){var C=x(k+="",V);return C.toString=function(){return k},C},utcParse:function(k){var C=E(k+="",!0);return C.toString=function(){return k},C}}}var _e={"-":"",_:" ",0:"0"},et=/^\s*\d+/,gr=/^%/,yr=/[\\^$*+?|[\]().{}]/g;function z(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function pr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Tr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function vr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function xr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function br(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ue(t,e,n){var r=et.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ye(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function wr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Cr(t,e,n){var r=et.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Dr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Fe(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Mr(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Le(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Sr(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function _r(t,e,n){var r=et.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Ur(t,e,n){var r=et.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Yr(t,e,n){var r=et.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Fr(t,e,n){var r=gr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Lr(t,e,n){var r=et.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Er(t,e,n){var r=et.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Ee(t,e){return z(t.getDate(),e,2)}function Ar(t,e){return z(t.getHours(),e,2)}function Ir(t,e){return z(t.getHours()%12||12,e,2)}function Wr(t,e){return z(1+gt.count(mt(t),t),e,3)}function Ke(t,e){return z(t.getMilliseconds(),e,3)}function Or(t,e){return Ke(t,e)+"000"}function Hr(t,e){return z(t.getMonth()+1,e,2)}function zr(t,e){return z(t.getMinutes(),e,2)}function Nr(t,e){return z(t.getSeconds(),e,2)}function Vr(t){var e=t.getDay();return e===0?7:e}function Pr(t,e){return z(Ct.count(mt(t)-1,t),e,2)}function $e(t){var e=t.getDay();return e>=4||e===0?Dt(t):Dt.ceil(t)}function Rr(t,e){return t=$e(t),z(Dt.count(mt(t),t)+(mt(t).getDay()===4),e,2)}function Br(t){return t.getDay()}function Zr(t,e){return z(Zt.count(mt(t)-1,t),e,2)}function Xr(t,e){return z(t.getFullYear()%100,e,2)}function qr(t,e){return t=$e(t),z(t.getFullYear()%100,e,2)}function jr(t,e){return z(t.getFullYear()%1e4,e,4)}function Gr(t,e){var n=t.getDay();return t=n>=4||n===0?Dt(t):Dt.ceil(t),z(t.getFullYear()%1e4,e,4)}function Qr(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+z(e/60|0,"0",2)+z(e%60,"0",2)}function Ae(t,e){return z(t.getUTCDate(),e,2)}function Jr(t,e){return z(t.getUTCHours(),e,2)}function Kr(t,e){return z(t.getUTCHours()%12||12,e,2)}function $r(t,e){return z(1+ye.count(yt(t),t),e,3)}function tn(t,e){return z(t.getUTCMilliseconds(),e,3)}function ti(t,e){return tn(t,e)+"000"}function ei(t,e){return z(t.getUTCMonth()+1,e,2)}function ni(t,e){return z(t.getUTCMinutes(),e,2)}function ri(t,e){return z(t.getUTCSeconds(),e,2)}function ii(t){var e=t.getUTCDay();return e===0?7:e}function si(t,e){return z(Je.count(yt(t)-1,t),e,2)}function en(t){var e=t.getUTCDay();return e>=4||e===0?Mt(t):Mt.ceil(t)}function ai(t,e){return t=en(t),z(Mt.count(yt(t),t)+(yt(t).getUTCDay()===4),e,2)}function oi(t){return t.getUTCDay()}function ci(t,e){return z(Xt.count(yt(t)-1,t),e,2)}function li(t,e){return z(t.getUTCFullYear()%100,e,2)}function ui(t,e){return t=en(t),z(t.getUTCFullYear()%100,e,2)}function fi(t,e){return z(t.getUTCFullYear()%1e4,e,4)}function hi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Mt(t):Mt.ceil(t),z(t.getUTCFullYear()%1e4,e,4)}function mi(){return"+0000"}function Ie(){return"%"}function We(t){return+t}function Oe(t){return Math.floor(+t/1e3)}var Tt,qt;di({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"]});function di(t){return Tt=dr(t),qt=Tt.format,Tt.parse,Tt.utcFormat,Tt.utcParse,Tt}function gi(t){return new Date(t)}function yi(t){return t instanceof Date?+t:+new Date(+t)}function nn(t,e,n,r,i,s,o,y,M,p){var D=Fn(),_=D.invert,w=D.domain,b=p(".%L"),P=p(":%S"),g=p("%I:%M"),Y=p("%I %p"),H=p("%a %d"),O=p("%b %d"),N=p("%B"),V=p("%Y");function j(x){return(M(x)4&&(b+=7),w.add(b,n));return P.diff(g,"week")+1},y.isoWeekday=function(p){return this.$utils().u(p)?this.day()||7:this.day(this.day()%7?p:p-7)};var M=y.startOf;y.startOf=function(p,D){var _=this.$utils(),w=!!_.u(D)||D;return _.p(p)==="isoweek"?w?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):M.bind(this)(p,D)}}})})(rn);var pi=rn.exports;const Ti=de(pi);var sn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(me,function(){var n={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"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,s=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,y={},M=function(g){return(g=+g)+(g>68?1900:2e3)},p=function(g){return function(Y){this[g]=+Y}},D=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(Y){if(!Y||Y==="Z")return 0;var H=Y.match(/([+-]|\d\d)/g),O=60*H[1]+(+H[2]||0);return O===0?0:H[0]==="+"?-O:O}(g)}],_=function(g){var Y=y[g];return Y&&(Y.indexOf?Y:Y.s.concat(Y.f))},w=function(g,Y){var H,O=y.meridiem;if(O){for(var N=1;N<=24;N+=1)if(g.indexOf(O(N,0,Y))>-1){H=N>12;break}}else H=g===(Y?"pm":"PM");return H},b={A:[o,function(g){this.afternoon=w(g,!1)}],a:[o,function(g){this.afternoon=w(g,!0)}],S:[/\d/,function(g){this.milliseconds=100*+g}],SS:[i,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[s,p("seconds")],ss:[s,p("seconds")],m:[s,p("minutes")],mm:[s,p("minutes")],H:[s,p("hours")],h:[s,p("hours")],HH:[s,p("hours")],hh:[s,p("hours")],D:[s,p("day")],DD:[i,p("day")],Do:[o,function(g){var Y=y.ordinal,H=g.match(/\d+/);if(this.day=H[0],Y)for(var O=1;O<=31;O+=1)Y(O).replace(/\[|\]/g,"")===g&&(this.day=O)}],M:[s,p("month")],MM:[i,p("month")],MMM:[o,function(g){var Y=_("months"),H=(_("monthsShort")||Y.map(function(O){return O.slice(0,3)})).indexOf(g)+1;if(H<1)throw new Error;this.month=H%12||H}],MMMM:[o,function(g){var Y=_("months").indexOf(g)+1;if(Y<1)throw new Error;this.month=Y%12||Y}],Y:[/[+-]?\d+/,p("year")],YY:[i,function(g){this.year=M(g)}],YYYY:[/\d{4}/,p("year")],Z:D,ZZ:D};function P(g){var Y,H;Y=g,H=y&&y.formats;for(var O=(g=Y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(l,f,m){var c=m&&m.toUpperCase();return f||H[m]||n[m]||H[c].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,a,A){return a||A.slice(1)})})).match(r),N=O.length,V=0;V-1)return new Date((B==="X"?1e3:1)*h);var J=P(B)(h),d=J.year,S=J.month,U=J.day,F=J.hours,W=J.minutes,G=J.seconds,R=J.milliseconds,dt=J.zone,q=new Date,k=U||(d||S?1:q.getDate()),C=d||q.getFullYear(),L=0;d&&!S||(L=S>0?S-1:q.getMonth());var u=F||0,X=W||0,I=G||0,Q=R||0;return dt?new Date(Date.UTC(C,L,k,u,X,I,Q+60*dt.offset*1e3)):Z?new Date(Date.UTC(C,L,k,u,X,I,Q)):new Date(C,L,k,u,X,I,Q)}catch{return new Date("")}}(j,T,x),this.init(),c&&c!==!0&&(this.$L=this.locale(c).$L),m&&j!=this.format(T)&&(this.$d=new Date("")),y={}}else if(T instanceof Array)for(var v=T.length,a=1;a<=v;a+=1){E[1]=T[a-1];var A=H.apply(this,E);if(A.isValid()){this.$d=A.$d,this.$L=A.$L,this.init();break}a===v&&(this.$d=new Date(""))}else N.call(this,V)}}})})(sn);var vi=sn.exports;const xi=de(vi);var an={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(me,function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(o){var y=this,M=this.$locale();if(!this.isValid())return s.bind(this)(o);var p=this.$utils(),D=(o||"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(_){switch(_){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return M.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return M.ordinal(y.week(),"W");case"w":case"ww":return p.s(y.week(),_==="w"?1:2,"0");case"W":case"WW":return p.s(y.isoWeek(),_==="W"?1:2,"0");case"k":case"kk":return p.s(String(y.$H===0?24:y.$H),_==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return _}});return s.bind(this)(D)}}})})(an);var bi=an.exports;const wi=de(bi);var le=function(){var t=function(T,l,f,m){for(f=f||{},m=T.length;m--;f[T[m]]=l);return f},e=[1,3],n=[1,5],r=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],i=[1,15],s=[1,16],o=[1,17],y=[1,18],M=[1,19],p=[1,20],D=[1,21],_=[1,22],w=[1,23],b=[1,24],P=[1,25],g=[1,26],Y=[1,27],H=[1,29],O=[1,31],N=[1,34],V=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],j={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,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],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(l,f,m,c,v,a,A){var h=a.length-1;switch(v){case 2:return a[h-1];case 3:this.$=[];break;case 4:a[h-1].push(a[h]),this.$=a[h-1];break;case 5:case 6:this.$=a[h];break;case 7:case 8:this.$=[];break;case 9:c.setDateFormat(a[h].substr(11)),this.$=a[h].substr(11);break;case 10:c.enableInclusiveEndDates(),this.$=a[h].substr(18);break;case 11:c.TopAxis(),this.$=a[h].substr(8);break;case 12:c.setAxisFormat(a[h].substr(11)),this.$=a[h].substr(11);break;case 13:c.setTickInterval(a[h].substr(13)),this.$=a[h].substr(13);break;case 14:c.setExcludes(a[h].substr(9)),this.$=a[h].substr(9);break;case 15:c.setIncludes(a[h].substr(9)),this.$=a[h].substr(9);break;case 16:c.setTodayMarker(a[h].substr(12)),this.$=a[h].substr(12);break;case 17:c.setDiagramTitle(a[h].substr(6)),this.$=a[h].substr(6);break;case 18:this.$=a[h].trim(),c.setAccTitle(this.$);break;case 19:case 20:this.$=a[h].trim(),c.setAccDescription(this.$);break;case 21:c.addSection(a[h].substr(8)),this.$=a[h].substr(8);break;case 23:c.addTask(a[h-1],a[h]),this.$="task";break;case 27:this.$=a[h-1],c.setClickEvent(a[h-1],a[h],null);break;case 28:this.$=a[h-2],c.setClickEvent(a[h-2],a[h-1],a[h]);break;case 29:this.$=a[h-2],c.setClickEvent(a[h-2],a[h-1],null),c.setLink(a[h-2],a[h]);break;case 30:this.$=a[h-3],c.setClickEvent(a[h-3],a[h-2],a[h-1]),c.setLink(a[h-3],a[h]);break;case 31:this.$=a[h-2],c.setClickEvent(a[h-2],a[h],null),c.setLink(a[h-2],a[h-1]);break;case 32:this.$=a[h-3],c.setClickEvent(a[h-3],a[h-1],a[h]),c.setLink(a[h-3],a[h-2]);break;case 33:this.$=a[h-1],c.setLink(a[h-1],a[h]);break;case 34:case 40:this.$=a[h-1]+" "+a[h];break;case 35:case 36:case 38:this.$=a[h-2]+" "+a[h-1]+" "+a[h];break;case 37:case 39:this.$=a[h-3]+" "+a[h-2]+" "+a[h-1]+" "+a[h];break;case 41:c.parseDirective("%%{","open_directive");break;case 42:c.parseDirective(a[h],"type_directive");break;case 43:a[h]=a[h].trim().replace(/'/g,'"'),c.parseDirective(a[h],"arg_directive");break;case 44:c.parseDirective("}%%","close_directive","gantt");break}},table:[{3:1,4:2,5:e,30:4,40:n},{1:[3]},{3:6,4:2,5:e,30:4,40:n},t(r,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:i,13:s,14:o,15:y,16:M,17:p,18:D,19:_,20:w,21:b,23:P,25:g,26:Y,27:28,28:H,30:4,35:O,40:n},{32:32,33:[1,33],43:N},t([33,43],[2,42]),t(r,[2,8],{1:[2,2]}),t(r,[2,4]),{4:30,10:35,12:i,13:s,14:o,15:y,16:M,17:p,18:D,19:_,20:w,21:b,23:P,25:g,26:Y,27:28,28:H,30:4,35:O,40:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),t(r,[2,12]),t(r,[2,13]),t(r,[2,14]),t(r,[2,15]),t(r,[2,16]),t(r,[2,17]),{22:[1,36]},{24:[1,37]},t(r,[2,20]),t(r,[2,21]),t(r,[2,22]),{29:[1,38]},t(r,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},t(r,[2,5]),t(r,[2,18]),t(r,[2,19]),t(r,[2,23]),t(r,[2,27],{37:[1,44],38:[1,45]}),t(r,[2,33],{36:[1,46]}),t(V,[2,25]),{32:47,43:N},{43:[2,43]},t(r,[2,28],{38:[1,48]}),t(r,[2,29]),t(r,[2,31],{37:[1,49]}),{11:[1,50]},t(r,[2,30]),t(r,[2,32]),t(V,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(l,f){if(f.recoverable)this.trace(l);else{var m=new Error(l);throw m.hash=f,m}},parse:function(l){var f=this,m=[0],c=[],v=[null],a=[],A=this.table,h="",B=0,Z=0,J=2,d=1,S=a.slice.call(arguments,1),U=Object.create(this.lexer),F={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(F.yy[W]=this.yy[W]);U.setInput(l,F.yy),F.yy.lexer=U,F.yy.parser=this,typeof U.yylloc>"u"&&(U.yylloc={});var G=U.yylloc;a.push(G);var R=U.options&&U.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(){var rt;return rt=c.pop()||U.lex()||d,typeof rt!="number"&&(rt instanceof Array&&(c=rt,rt=c.pop()),rt=f.symbols_[rt]||rt),rt}for(var q,k,C,L,u={},X,I,Q,K;;){if(k=m[m.length-1],this.defaultActions[k]?C=this.defaultActions[k]:((q===null||typeof q>"u")&&(q=dt()),C=A[k]&&A[k][q]),typeof C>"u"||!C.length||!C[0]){var st="";K=[];for(X in A[k])this.terminals_[X]&&X>J&&K.push("'"+this.terminals_[X]+"'");U.showPosition?st="Parse error on line "+(B+1)+`: -`+U.showPosition()+` -Expecting `+K.join(", ")+", got '"+(this.terminals_[q]||q)+"'":st="Parse error on line "+(B+1)+": Unexpected "+(q==d?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(st,{text:U.match,token:this.terminals_[q]||q,line:U.yylineno,loc:G,expected:K})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+q);switch(C[0]){case 1:m.push(q),v.push(U.yytext),a.push(U.yylloc),m.push(C[1]),q=null,Z=U.yyleng,h=U.yytext,B=U.yylineno,G=U.yylloc;break;case 2:if(I=this.productions_[C[1]][1],u.$=v[v.length-I],u._$={first_line:a[a.length-(I||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(I||1)].first_column,last_column:a[a.length-1].last_column},R&&(u._$.range=[a[a.length-(I||1)].range[0],a[a.length-1].range[1]]),L=this.performAction.apply(u,[h,Z,B,F.yy,C[1],v,a].concat(S)),typeof L<"u")return L;I&&(m=m.slice(0,-1*I*2),v=v.slice(0,-1*I),a=a.slice(0,-1*I)),m.push(this.productions_[C[1]][0]),v.push(u.$),a.push(u._$),Q=A[m[m.length-2]][m[m.length-1]],m.push(Q);break;case 3:return!0}}return!0}},x=function(){var T={EOF:1,parseError:function(f,m){if(this.yy.parser)this.yy.parser.parseError(f,m);else throw new Error(f)},setInput:function(l,f){return this.yy=f||this.yy||{},this._input=l,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},input:function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var f=l.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},unput:function(l){var f=l.length,m=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var c=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),m.length-1&&(this.yylineno-=m.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:m?(m.length===c.length?this.yylloc.first_column:0)+c[c.length-m.length].length-m[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(l){this.unput(this.match.slice(l))},pastInput:function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var l=this.pastInput(),f=new Array(l.length+1).join("-");return l+this.upcomingInput()+` -`+f+"^"},test_match:function(l,f){var m,c,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))),c=l[0].match(/(?:\r\n?|\n).*/g),c&&(this.yylineno+=c.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:c?c[c.length-1].length-c[c.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+l[0].length},this.yytext+=l[0],this.match+=l[0],this.matches=l,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(l[0].length),this.matched+=l[0],m=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var a in v)this[a]=v[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var l,f,m,c;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),a=0;af[0].length)){if(f=m,c=a,this.options.backtrack_lexer){if(l=this.test_match(m,v[a]),l!==!1)return l;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(l=this.test_match(f,v[c]),l!==!1?l:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(f,m,c,v){switch(c){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:break;case 13:break;case 14:break;case 15:return 11;case 16:break;case 17:break;case 18:break;case 19:this.begin("href");break;case 20:this.popState();break;case 21:return 38;case 22:this.begin("callbackname");break;case 23:this.popState();break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 26:this.popState();break;case 27:return 37;case 28:this.begin("click");break;case 29:this.popState();break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/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,/^(?:%[^\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,/^(?:\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:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return T}();j.lexer=x;function E(){this.yy={}}return E.prototype=j,j.Parser=E,new E}();le.parser=le;const Ci=le;nt.extend(Ti);nt.extend(xi);nt.extend(wi);let at="",ke="",pe,Te="",It=[],Wt=[],ve={},xe=[],jt=[],St="",be="";const on=["active","done","crit","milestone"];let we=[],Ot=!1,Ce=!1,ue=0;const Di=function(t,e,n){Cn.parseDirective(this,t,e,n)},Mi=function(){xe=[],jt=[],St="",we=[],Vt=0,he=void 0,Pt=void 0,$=[],at="",ke="",be="",pe=void 0,Te="",It=[],Wt=[],Ot=!1,Ce=!1,ue=0,ve={},Dn()},Si=function(t){ke=t},_i=function(){return ke},Ui=function(t){pe=t},Yi=function(){return pe},Fi=function(t){Te=t},Li=function(){return Te},Ei=function(t){at=t},Ai=function(){Ot=!0},Ii=function(){return Ot},Wi=function(){Ce=!0},Oi=function(){return Ce},Hi=function(t){be=t},zi=function(){return be},Ni=function(){return at},Vi=function(t){It=t.toLowerCase().split(/[\s,]+/)},Pi=function(){return It},Ri=function(t){Wt=t.toLowerCase().split(/[\s,]+/)},Bi=function(){return Wt},Zi=function(){return ve},Xi=function(t){St=t,xe.push(t)},qi=function(){return xe},ji=function(){let t=He();const e=10;let n=0;for(;!t&&n=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase())?!0:n.includes(t.format(e.trim()))},ln=function(t,e,n,r){if(!n.length||t.manualEndTime)return;let i;t.startTime instanceof Date?i=nt(t.startTime):i=nt(t.startTime,e,!0),i=i.add(1,"d");let s;t.endTime instanceof Date?s=nt(t.endTime):s=nt(t.endTime,e,!0);const[o,y]=Gi(i,s,e,n,r);t.endTime=o.toDate(),t.renderEndTime=y},Gi=function(t,e,n,r,i){let s=!1,o=null;for(;t<=e;)s||(o=e.toDate()),s=cn(t,n,r,i),s&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,o]},fe=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(i!==null){let o=null;if(i[1].split(" ").forEach(function(y){let M=_t(y);M!==void 0&&(o?M.endTime>o.endTime&&(o=M):o=M)}),o)return o.endTime;{const y=new Date;return y.setHours(0,0,0,0),y}}let s=nt(n,e.trim(),!0);if(s.isValid())return s.toDate();{ae.debug("Invalid date:"+n),ae.debug("With date format:"+e.trim());const o=new Date(n);if(o===void 0||isNaN(o.getTime())||o.getFullYear()<-1e4||o.getFullYear()>1e4)throw new Error("Invalid date:"+n);return o}},un=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},fn=function(t,e,n,r=!1){n=n.trim();let i=nt(n,e.trim(),!0);if(i.isValid())return r&&(i=i.add(1,"d")),i.toDate();let s=nt(t);const[o,y]=un(n);if(!Number.isNaN(o)){const M=s.add(o,y);M.isValid()&&(s=M)}return s.toDate()};let Vt=0;const wt=function(t){return t===void 0?(Vt=Vt+1,"task"+Vt):t},Qi=function(t,e){let n;e.substr(0,1)===":"?n=e.substr(1,e.length):n=e;const r=n.split(","),i={};gn(r,i,on);for(let o=0;o{window.open(n,"_self")}),ve[r]=n)}),mn(t,"clickable")},mn=function(t,e){t.split(",").forEach(function(n){let r=_t(n);r!==void 0&&r.classes.push(e)})},es=function(t,e,n){if(xt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{Un.runFunc(e,...r)})},dn=function(t,e){we.push(function(){const n=document.querySelector(`[id="${t}"]`);n!==null&&n.addEventListener("click",function(){e()})},function(){const n=document.querySelector(`[id="${t}-text"]`);n!==null&&n.addEventListener("click",function(){e()})})},ns=function(t,e,n){t.split(",").forEach(function(r){es(r,e,n)}),mn(t,"clickable")},rs=function(t){we.forEach(function(e){e(t)})},is={parseDirective:Di,getConfig:()=>xt().gantt,clear:Mi,setDateFormat:Ei,getDateFormat:Ni,enableInclusiveEndDates:Ai,endDatesAreInclusive:Ii,enableTopAxis:Wi,topAxisEnabled:Oi,setAxisFormat:Si,getAxisFormat:_i,setTickInterval:Ui,getTickInterval:Yi,setTodayMarker:Fi,getTodayMarker:Li,setAccTitle:pn,getAccTitle:Tn,setDiagramTitle:vn,getDiagramTitle:xn,setDisplayMode:Hi,getDisplayMode:zi,setAccDescription:bn,getAccDescription:wn,addSection:Xi,getSections:qi,getTasks:ji,addTask:Ki,findTaskById:_t,addTaskOrg:$i,setIncludes:Vi,getIncludes:Pi,setExcludes:Ri,getExcludes:Bi,setClickEvent:ns,setLink:ts,getLinks:Zi,bindFunctions:rs,parseDuration:un,isInvalidDate:cn};function gn(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const s="^\\s*"+i+"\\s*$",o=new RegExp(s);t[0].match(o)&&(e[i]=!0,t.shift(1),r=!0)})}const ss=function(){ae.debug("Something is calling, setConf, remove the call")},as=(t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((s,o)=>s.startTime-o.startTime||s.order-o.order),i=0;for(const s of r)for(let o=0;o=n[o]){n[o]=s.endTime,s.order=o+e,o>i&&(i=o);break}return i};let ct;const os=function(t,e,n,r){const i=xt().gantt,s=xt().securityLevel;let o;s==="sandbox"&&(o=Ht("#i"+e));const y=s==="sandbox"?Ht(o.nodes()[0].contentDocument.body):Ht("body"),M=s==="sandbox"?o.nodes()[0].contentDocument:document,p=M.getElementById(e);ct=p.parentElement.offsetWidth,ct===void 0&&(ct=1200),i.useWidth!==void 0&&(ct=i.useWidth);const D=r.db.getTasks();let _=[];for(const T of D)_.push(T.type);_=E(_);const w={};let b=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const T={};for(const f of D)T[f.section]===void 0?T[f.section]=[f]:T[f.section].push(f);let l=0;for(const f of Object.keys(T)){const m=as(T[f],l)+1;l+=m,b+=m*(i.barHeight+i.barGap),w[f]=m}}else{b+=D.length*(i.barHeight+i.barGap);for(const T of _)w[T]=D.filter(l=>l.type===T).length}p.setAttribute("viewBox","0 0 "+ct+" "+b);const P=y.select(`[id="${e}"]`),g=ki().domain([Wn(D,function(T){return T.startTime}),In(D,function(T){return T.endTime})]).rangeRound([0,ct-i.leftPadding-i.rightPadding]);function Y(T,l){const f=T.startTime,m=l.startTime;let c=0;return f>m?c=1:fd.order))].map(d=>T.find(S=>S.order===d));P.append("g").selectAll("rect").data(h).enter().append("rect").attr("x",0).attr("y",function(d,S){return S=d.order,S*l+f-2}).attr("width",function(){return a-i.rightPadding/2}).attr("height",l).attr("class",function(d){for(const[S,U]of _.entries())if(d.type===U)return"section section"+S%i.numberSectionStyles;return"section section0"});const B=P.append("g").selectAll("rect").data(T).enter(),Z=r.db.getLinks();if(B.append("rect").attr("id",function(d){return d.id}).attr("rx",3).attr("ry",3).attr("x",function(d){return d.milestone?g(d.startTime)+m+.5*(g(d.endTime)-g(d.startTime))-.5*c:g(d.startTime)+m}).attr("y",function(d,S){return S=d.order,S*l+f}).attr("width",function(d){return d.milestone?c:g(d.renderEndTime||d.endTime)-g(d.startTime)}).attr("height",c).attr("transform-origin",function(d,S){return S=d.order,(g(d.startTime)+m+.5*(g(d.endTime)-g(d.startTime))).toString()+"px "+(S*l+f+.5*c).toString()+"px"}).attr("class",function(d){const S="task";let U="";d.classes.length>0&&(U=d.classes.join(" "));let F=0;for(const[G,R]of _.entries())d.type===R&&(F=G%i.numberSectionStyles);let W="";return d.active?d.crit?W+=" activeCrit":W=" active":d.done?d.crit?W=" doneCrit":W=" done":d.crit&&(W+=" crit"),W.length===0&&(W=" task"),d.milestone&&(W=" milestone "+W),W+=F,W+=" "+U,S+W}),B.append("text").attr("id",function(d){return d.id+"-text"}).text(function(d){return d.task}).attr("font-size",i.fontSize).attr("x",function(d){let S=g(d.startTime),U=g(d.renderEndTime||d.endTime);d.milestone&&(S+=.5*(g(d.endTime)-g(d.startTime))-.5*c),d.milestone&&(U=S+c);const F=this.getBBox().width;return F>U-S?U+F+1.5*i.leftPadding>a?S+m-5:U+m+5:(U-S)/2+S+m}).attr("y",function(d,S){return S=d.order,S*l+i.barHeight/2+(i.fontSize/2-2)+f}).attr("text-height",c).attr("class",function(d){const S=g(d.startTime);let U=g(d.endTime);d.milestone&&(U=S+c);const F=this.getBBox().width;let W="";d.classes.length>0&&(W=d.classes.join(" "));let G=0;for(const[dt,q]of _.entries())d.type===q&&(G=dt%i.numberSectionStyles);let R="";return d.active&&(d.crit?R="activeCritText"+G:R="activeText"+G),d.done?d.crit?R=R+" doneCritText"+G:R=R+" doneText"+G:d.crit&&(R=R+" critText"+G),d.milestone&&(R+=" milestoneText"),F>U-S?U+F+1.5*i.leftPadding>a?W+" taskTextOutsideLeft taskTextOutside"+G+" "+R:W+" taskTextOutsideRight taskTextOutside"+G+" "+R+" width-"+F:W+" taskText taskText"+G+" "+R+" width-"+F}),xt().securityLevel==="sandbox"){let d;d=Ht("#i"+e);const S=d.nodes()[0].contentDocument;B.filter(function(U){return Z[U.id]!==void 0}).each(function(U){var F=S.querySelector("#"+U.id),W=S.querySelector("#"+U.id+"-text");const G=F.parentNode;var R=S.createElement("a");R.setAttribute("xlink:href",Z[U.id]),R.setAttribute("target","_top"),G.appendChild(R),R.appendChild(F),R.appendChild(W)})}}function N(T,l,f,m,c,v,a,A){const h=v.reduce((F,{startTime:W})=>F?Math.min(F,W):W,0),B=v.reduce((F,{endTime:W})=>F?Math.max(F,W):W,0),Z=r.db.getDateFormat();if(!h||!B)return;const J=[];let d=null,S=nt(h);for(;S.valueOf()<=B;)r.db.isInvalidDate(S,Z,a,A)?d?d.end=S:d={start:S,end:S}:d&&(J.push(d),d=null),S=S.add(1,"d");P.append("g").selectAll("rect").data(J).enter().append("rect").attr("id",function(F){return"exclude-"+F.start.format("YYYY-MM-DD")}).attr("x",function(F){return g(F.start)+f}).attr("y",i.gridLineStartPadding).attr("width",function(F){const W=F.end.add(1,"day");return g(W)-g(F.start)}).attr("height",c-l-i.gridLineStartPadding).attr("transform-origin",function(F,W){return(g(F.start)+f+.5*(g(F.end)-g(F.start))).toString()+"px "+(W*T+.5*c).toString()+"px"}).attr("class","exclude-range")}function V(T,l,f,m){let c=Bn(g).tickSize(-m+l+i.gridLineStartPadding).tickFormat(qt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));const a=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(a!==null){const A=a[1];switch(a[2]){case"minute":c.ticks(Lt.every(A));break;case"hour":c.ticks(Et.every(A));break;case"day":c.ticks(gt.every(A));break;case"week":c.ticks(Ct.every(A));break;case"month":c.ticks(At.every(A));break}}if(P.append("g").attr("class","grid").attr("transform","translate("+T+", "+(m-50)+")").call(c).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let A=Rn(g).tickSize(-m+l+i.gridLineStartPadding).tickFormat(qt(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(a!==null){const h=a[1];switch(a[2]){case"minute":A.ticks(Lt.every(h));break;case"hour":A.ticks(Et.every(h));break;case"day":A.ticks(gt.every(h));break;case"week":A.ticks(Ct.every(h));break;case"month":A.ticks(At.every(h));break}}P.append("g").attr("class","grid").attr("transform","translate("+T+", "+l+")").call(A).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function j(T,l){let f=0;const m=Object.keys(w).map(c=>[c,w[c]]);P.append("g").selectAll("text").data(m).enter().append(function(c){const v=c[0].split(_n.lineBreakRegex),a=-(v.length-1)/2,A=M.createElementNS("http://www.w3.org/2000/svg","text");A.setAttribute("dy",a+"em");for(const[h,B]of v.entries()){const Z=M.createElementNS("http://www.w3.org/2000/svg","tspan");Z.setAttribute("alignment-baseline","central"),Z.setAttribute("x","10"),h>0&&Z.setAttribute("dy","1em"),Z.textContent=B,A.appendChild(Z)}return A}).attr("x",10).attr("y",function(c,v){if(v>0)for(let a=0;a` - .mermaid-main-font { - font-family: "trebuchet ms", verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - .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-size: ${t.ganttFontSize}; - // text-height: 14px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${t.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - 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: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - - // .taskText:not([font-size]) { - // font-size: ${t.ganttFontSize}; - // } - - .taskTextOutsideRight { - fill: ${t.taskTextDarkColor}; - text-anchor: start; - // font-size: ${t.ganttFontSize}; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - .taskTextOutsideLeft { - fill: ${t.taskTextDarkColor}; - text-anchor: end; - // font-size: ${t.ganttFontSize}; - } - - /* 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; - } - - - /* 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; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor} ; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } -`,us=ls,gs={parser:Ci,db:is,renderer:cs,styles:us};export{gs as diagram}; -//# sourceMappingURL=ganttDiagram-7ce12d6b-bNEEGiE3.js.map diff --git a/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js.map b/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js.map deleted file mode 100644 index 88aaaac..0000000 --- a/excalidraw/excalidraw-app/build/assets/ganttDiagram-7ce12d6b-bNEEGiE3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ganttDiagram-7ce12d6b-bNEEGiE3.js","sources":["../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-axis/src/identity.js","../../../node_modules/d3-axis/src/axis.js","../../../node_modules/d3-color/src/math.js","../../../node_modules/d3-color/src/lab.js","../../../node_modules/d3-interpolate/src/hcl.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/dayjs/plugin/isoWeek.js","../../../node_modules/dayjs/plugin/customParseFormat.js","../../../node_modules/dayjs/plugin/advancedFormat.js","../../../node_modules/mermaid/dist/ganttDiagram-7ce12d6b.js"],"sourcesContent":["export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={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\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"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(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport dayjs from \"dayjs\";\nimport dayjsIsoWeek from \"dayjs/plugin/isoWeek.js\";\nimport dayjsCustomParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport dayjsAdvancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport { c as getConfig, s as setAccTitle, g as getAccTitle, r as setDiagramTitle, t as getDiagramTitle, b as setAccDescription, a as getAccDescription, m as mermaidAPI, v as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from \"./mermaid-b0ad2de1.js\";\nimport { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeWeek, timeDay, timeHour, timeMinute, axisTop } from \"d3\";\nimport \"ts-dedent\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 21], $Va = [1, 22], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 31], $Vi = [1, 34], $Vj = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"directive\": 4, \"gantt\": 5, \"document\": 6, \"EOF\": 7, \"line\": 8, \"SPACE\": 9, \"statement\": 10, \"NL\": 11, \"dateFormat\": 12, \"inclusiveEndDates\": 13, \"topAxis\": 14, \"axisFormat\": 15, \"tickInterval\": 16, \"excludes\": 17, \"includes\": 18, \"todayMarker\": 19, \"title\": 20, \"acc_title\": 21, \"acc_title_value\": 22, \"acc_descr\": 23, \"acc_descr_value\": 24, \"acc_descr_multiline_value\": 25, \"section\": 26, \"clickStatement\": 27, \"taskTxt\": 28, \"taskData\": 29, \"openDirective\": 30, \"typeDirective\": 31, \"closeDirective\": 32, \":\": 33, \"argDirective\": 34, \"click\": 35, \"callbackname\": 36, \"callbackargs\": 37, \"href\": 38, \"clickStatementDebug\": 39, \"open_directive\": 40, \"type_directive\": 41, \"arg_directive\": 42, \"close_directive\": 43, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"gantt\", 7: \"EOF\", 9: \"SPACE\", 11: \"NL\", 12: \"dateFormat\", 13: \"inclusiveEndDates\", 14: \"topAxis\", 15: \"axisFormat\", 16: \"tickInterval\", 17: \"excludes\", 18: \"includes\", 19: \"todayMarker\", 20: \"title\", 21: \"acc_title\", 22: \"acc_title_value\", 23: \"acc_descr\", 24: \"acc_descr_value\", 25: \"acc_descr_multiline_value\", 26: \"section\", 28: \"taskTxt\", 29: \"taskData\", 33: \":\", 35: \"click\", 36: \"callbackname\", 37: \"callbackargs\", 38: \"href\", 40: \"open_directive\", 41: \"type_directive\", 42: \"arg_directive\", 43: \"close_directive\" },\n productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 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], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 2:\n return $$[$0 - 1];\n case 3:\n this.$ = [];\n break;\n case 4:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 5:\n case 6:\n this.$ = $$[$0];\n break;\n case 7:\n case 8:\n this.$ = [];\n break;\n case 9:\n yy.setDateFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 10:\n yy.enableInclusiveEndDates();\n this.$ = $$[$0].substr(18);\n break;\n case 11:\n yy.TopAxis();\n this.$ = $$[$0].substr(8);\n break;\n case 12:\n yy.setAxisFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 13:\n yy.setTickInterval($$[$0].substr(13));\n this.$ = $$[$0].substr(13);\n break;\n case 14:\n yy.setExcludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 15:\n yy.setIncludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 16:\n yy.setTodayMarker($$[$0].substr(12));\n this.$ = $$[$0].substr(12);\n break;\n case 17:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 19:\n case 20:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 21:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 23:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 27:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0], null);\n break;\n case 28:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 29:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 30:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setLink($$[$0 - 3], $$[$0]);\n break;\n case 31:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0], null);\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n break;\n case 32:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n break;\n case 33:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 34:\n case 40:\n this.$ = $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 35:\n case 36:\n case 38:\n this.$ = $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 37:\n case 39:\n this.$ = $$[$0 - 3] + \" \" + $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 41:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 42:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 43:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 44:\n yy.parseDirective(\"}%%\", \"close_directive\", \"gantt\");\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 30: 4, 40: $V1 }, { 1: [3] }, { 3: 6, 4: 2, 5: $V0, 30: 4, 40: $V1 }, o($V2, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, { 32: 32, 33: [1, 33], 43: $Vi }, o([33, 43], [2, 42]), o($V2, [2, 8], { 1: [2, 2] }), o($V2, [2, 4]), { 4: 30, 10: 35, 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 9]), o($V2, [2, 10]), o($V2, [2, 11]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, o($V2, [2, 20]), o($V2, [2, 21]), o($V2, [2, 22]), { 29: [1, 38] }, o($V2, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, o($V2, [2, 5]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 23]), o($V2, [2, 27], { 37: [1, 44], 38: [1, 45] }), o($V2, [2, 33], { 36: [1, 46] }), o($Vj, [2, 25]), { 32: 47, 43: $Vi }, { 43: [2, 43] }, o($V2, [2, 28], { 38: [1, 48] }), o($V2, [2, 29]), o($V2, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, o($V2, [2, 30]), o($V2, [2, 32]), o($Vj, [2, 26])],\n defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 40;\n case 1:\n this.begin(\"type_directive\");\n return 41;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 33;\n case 3:\n this.popState();\n this.popState();\n return 43;\n case 4:\n return 42;\n case 5:\n this.begin(\"acc_title\");\n return 21;\n case 6:\n this.popState();\n return \"acc_title_value\";\n case 7:\n this.begin(\"acc_descr\");\n return 23;\n case 8:\n this.popState();\n return \"acc_descr_value\";\n case 9:\n this.begin(\"acc_descr_multiline\");\n break;\n case 10:\n this.popState();\n break;\n case 11:\n return \"acc_descr_multiline_value\";\n case 12:\n break;\n case 13:\n break;\n case 14:\n break;\n case 15:\n return 11;\n case 16:\n break;\n case 17:\n break;\n case 18:\n break;\n case 19:\n this.begin(\"href\");\n break;\n case 20:\n this.popState();\n break;\n case 21:\n return 38;\n case 22:\n this.begin(\"callbackname\");\n break;\n case 23:\n this.popState();\n break;\n case 24:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 25:\n return 36;\n case 26:\n this.popState();\n break;\n case 27:\n return 37;\n case 28:\n this.begin(\"click\");\n break;\n case 29:\n this.popState();\n break;\n case 30:\n return 35;\n case 31:\n return 5;\n case 32:\n return 12;\n case 33:\n return 13;\n case 34:\n return 14;\n case 35:\n return 15;\n case 36:\n return 16;\n case 37:\n return 18;\n case 38:\n return 17;\n case 39:\n return 19;\n case 40:\n return \"date\";\n case 41:\n return 20;\n case 42:\n return \"accDescription\";\n case 43:\n return 26;\n case 44:\n return 28;\n case 45:\n return 29;\n case 46:\n return 33;\n case 47:\n return 7;\n case 48:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/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, /^(?:%[^\\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, /^(?:\\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],\n conditions: { \"acc_descr_multiline\": { \"rules\": [10, 11], \"inclusive\": false }, \"acc_descr\": { \"rules\": [8], \"inclusive\": false }, \"acc_title\": { \"rules\": [6], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"callbackargs\": { \"rules\": [26, 27], \"inclusive\": false }, \"callbackname\": { \"rules\": [23, 24, 25], \"inclusive\": false }, \"href\": { \"rules\": [20, 21], \"inclusive\": false }, \"click\": { \"rules\": [29, 30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst ganttParser = parser;\ndayjs.extend(dayjsIsoWeek);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsAdvancedFormat);\nlet dateFormat = \"\";\nlet axisFormat = \"\";\nlet tickInterval = void 0;\nlet todayMarker = \"\";\nlet includes = [];\nlet excludes = [];\nlet links = {};\nlet sections = [];\nlet tasks = [];\nlet currentSection = \"\";\nlet displayMode = \"\";\nconst tags = [\"active\", \"done\", \"crit\", \"milestone\"];\nlet funs = [];\nlet inclusiveEndDates = false;\nlet topAxis = false;\nlet lastOrder = 0;\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst clear = function() {\n sections = [];\n tasks = [];\n currentSection = \"\";\n funs = [];\n taskCnt = 0;\n lastTask = void 0;\n lastTaskID = void 0;\n rawTasks = [];\n dateFormat = \"\";\n axisFormat = \"\";\n displayMode = \"\";\n tickInterval = void 0;\n todayMarker = \"\";\n includes = [];\n excludes = [];\n inclusiveEndDates = false;\n topAxis = false;\n lastOrder = 0;\n links = {};\n clear$1();\n};\nconst setAxisFormat = function(txt) {\n axisFormat = txt;\n};\nconst getAxisFormat = function() {\n return axisFormat;\n};\nconst setTickInterval = function(txt) {\n tickInterval = txt;\n};\nconst getTickInterval = function() {\n return tickInterval;\n};\nconst setTodayMarker = function(txt) {\n todayMarker = txt;\n};\nconst getTodayMarker = function() {\n return todayMarker;\n};\nconst setDateFormat = function(txt) {\n dateFormat = txt;\n};\nconst enableInclusiveEndDates = function() {\n inclusiveEndDates = true;\n};\nconst endDatesAreInclusive = function() {\n return inclusiveEndDates;\n};\nconst enableTopAxis = function() {\n topAxis = true;\n};\nconst topAxisEnabled = function() {\n return topAxis;\n};\nconst setDisplayMode = function(txt) {\n displayMode = txt;\n};\nconst getDisplayMode = function() {\n return displayMode;\n};\nconst getDateFormat = function() {\n return dateFormat;\n};\nconst setIncludes = function(txt) {\n includes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getIncludes = function() {\n return includes;\n};\nconst setExcludes = function(txt) {\n excludes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getExcludes = function() {\n return excludes;\n};\nconst getLinks = function() {\n return links;\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 10;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks = rawTasks;\n return tasks;\n};\nconst isInvalidDate = function(date, dateFormat2, excludes2, includes2) {\n if (includes2.includes(date.format(dateFormat2.trim()))) {\n return false;\n }\n if (date.isoWeekday() >= 6 && excludes2.includes(\"weekends\")) {\n return true;\n }\n if (excludes2.includes(date.format(\"dddd\").toLowerCase())) {\n return true;\n }\n return excludes2.includes(date.format(dateFormat2.trim()));\n};\nconst checkTaskDates = function(task, dateFormat2, excludes2, includes2) {\n if (!excludes2.length || task.manualEndTime) {\n return;\n }\n let startTime;\n if (task.startTime instanceof Date) {\n startTime = dayjs(task.startTime);\n } else {\n startTime = dayjs(task.startTime, dateFormat2, true);\n }\n startTime = startTime.add(1, \"d\");\n let originalEndTime;\n if (task.endTime instanceof Date) {\n originalEndTime = dayjs(task.endTime);\n } else {\n originalEndTime = dayjs(task.endTime, dateFormat2, true);\n }\n const [fixedEndTime, renderEndTime] = fixTaskDates(\n startTime,\n originalEndTime,\n dateFormat2,\n excludes2,\n includes2\n );\n task.endTime = fixedEndTime.toDate();\n task.renderEndTime = renderEndTime;\n};\nconst fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {\n let invalid = false;\n let renderEndTime = null;\n while (startTime <= endTime) {\n if (!invalid) {\n renderEndTime = endTime.toDate();\n }\n invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);\n if (invalid) {\n endTime = endTime.add(1, \"d\");\n }\n startTime = startTime.add(1, \"d\");\n }\n return [endTime, renderEndTime];\n};\nconst getStartDate = function(prevTime, dateFormat2, str) {\n str = str.trim();\n const re = /^after\\s+([\\d\\w- ]+)/;\n const afterStatement = re.exec(str.trim());\n if (afterStatement !== null) {\n let latestEndingTask = null;\n afterStatement[1].split(\" \").forEach(function(id) {\n let task = findTaskById(id);\n if (task !== void 0) {\n if (!latestEndingTask) {\n latestEndingTask = task;\n } else {\n if (task.endTime > latestEndingTask.endTime) {\n latestEndingTask = task;\n }\n }\n }\n });\n if (!latestEndingTask) {\n const dt = /* @__PURE__ */ new Date();\n dt.setHours(0, 0, 0, 0);\n return dt;\n } else {\n return latestEndingTask.endTime;\n }\n }\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n return mDate.toDate();\n } else {\n log.debug(\"Invalid date:\" + str);\n log.debug(\"With date format:\" + dateFormat2.trim());\n const d = new Date(str);\n if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously\n // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.\n // This can cause virtually infinite loops while rendering, so for the\n // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as\n // invalid.\n d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {\n throw new Error(\"Invalid date:\" + str);\n }\n return d;\n }\n};\nconst parseDuration = function(str) {\n const statement = /^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());\n if (statement !== null) {\n return [Number.parseFloat(statement[1]), statement[2]];\n }\n return [NaN, \"ms\"];\n};\nconst getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {\n str = str.trim();\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n if (inclusive) {\n mDate = mDate.add(1, \"d\");\n }\n return mDate.toDate();\n }\n let endTime = dayjs(prevTime);\n const [durationValue, durationUnit] = parseDuration(str);\n if (!Number.isNaN(durationValue)) {\n const newEndTime = endTime.add(durationValue, durationUnit);\n if (newEndTime.isValid()) {\n endTime = newEndTime;\n }\n }\n return endTime.toDate();\n};\nlet taskCnt = 0;\nconst parseId = function(idStr) {\n if (idStr === void 0) {\n taskCnt = taskCnt + 1;\n return \"task\" + taskCnt;\n }\n return idStr;\n};\nconst compileData = function(prevTask, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n let endTimeData = \"\";\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = prevTask.endTime;\n endTimeData = data[0];\n break;\n case 2:\n task.id = parseId();\n task.startTime = getStartDate(void 0, dateFormat, data[0]);\n endTimeData = data[1];\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = getStartDate(void 0, dateFormat, data[1]);\n endTimeData = data[2];\n break;\n }\n if (endTimeData) {\n task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);\n task.manualEndTime = dayjs(endTimeData, \"YYYY-MM-DD\", true).isValid();\n checkTaskDates(task, dateFormat, excludes, includes);\n }\n return task;\n};\nconst parseData = function(prevTaskId, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = {\n type: \"prevTaskEnd\",\n id: prevTaskId\n };\n task.endTime = {\n data: data[0]\n };\n break;\n case 2:\n task.id = parseId();\n task.startTime = {\n type: \"getStartDate\",\n startData: data[0]\n };\n task.endTime = {\n data: data[1]\n };\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = {\n type: \"getStartDate\",\n startData: data[1]\n };\n task.endTime = {\n data: data[2]\n };\n break;\n }\n return task;\n};\nlet lastTask;\nlet lastTaskID;\nlet rawTasks = [];\nconst taskDb = {};\nconst addTask = function(descr, data) {\n const rawTask = {\n section: currentSection,\n type: currentSection,\n processed: false,\n manualEndTime: false,\n renderEndTime: null,\n raw: { data },\n task: descr,\n classes: []\n };\n const taskInfo = parseData(lastTaskID, data);\n rawTask.raw.startTime = taskInfo.startTime;\n rawTask.raw.endTime = taskInfo.endTime;\n rawTask.id = taskInfo.id;\n rawTask.prevTaskId = lastTaskID;\n rawTask.active = taskInfo.active;\n rawTask.done = taskInfo.done;\n rawTask.crit = taskInfo.crit;\n rawTask.milestone = taskInfo.milestone;\n rawTask.order = lastOrder;\n lastOrder++;\n const pos = rawTasks.push(rawTask);\n lastTaskID = rawTask.id;\n taskDb[rawTask.id] = pos - 1;\n};\nconst findTaskById = function(id) {\n const pos = taskDb[id];\n return rawTasks[pos];\n};\nconst addTaskOrg = function(descr, data) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n const taskInfo = compileData(lastTask, data);\n newTask.startTime = taskInfo.startTime;\n newTask.endTime = taskInfo.endTime;\n newTask.id = taskInfo.id;\n newTask.active = taskInfo.active;\n newTask.done = taskInfo.done;\n newTask.crit = taskInfo.crit;\n newTask.milestone = taskInfo.milestone;\n lastTask = newTask;\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n const task = rawTasks[pos];\n let startTime = \"\";\n switch (rawTasks[pos].raw.startTime.type) {\n case \"prevTaskEnd\": {\n const prevTask = findTaskById(task.prevTaskId);\n task.startTime = prevTask.endTime;\n break;\n }\n case \"getStartDate\":\n startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);\n if (startTime) {\n rawTasks[pos].startTime = startTime;\n }\n break;\n }\n if (rawTasks[pos].startTime) {\n rawTasks[pos].endTime = getEndDate(\n rawTasks[pos].startTime,\n dateFormat,\n rawTasks[pos].raw.endTime.data,\n inclusiveEndDates\n );\n if (rawTasks[pos].endTime) {\n rawTasks[pos].processed = true;\n rawTasks[pos].manualEndTime = dayjs(\n rawTasks[pos].raw.endTime.data,\n \"YYYY-MM-DD\",\n true\n ).isValid();\n checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);\n }\n }\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst setLink = function(ids, _linkStr) {\n let linkStr = _linkStr;\n if (getConfig().securityLevel !== \"loose\") {\n linkStr = sanitizeUrl(_linkStr);\n }\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n window.open(linkStr, \"_self\");\n });\n links[id] = linkStr;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n rawTask.classes.push(className);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n utils.runFunc(functionName, ...argList);\n });\n }\n};\nconst pushFun = function(id, callbackFunction) {\n funs.push(\n function() {\n const elem = document.querySelector(`[id=\"${id}\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n },\n function() {\n const elem = document.querySelector(`[id=\"${id}-text\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n }\n );\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst ganttDb = {\n parseDirective,\n getConfig: () => getConfig().gantt,\n clear,\n setDateFormat,\n getDateFormat,\n enableInclusiveEndDates,\n endDatesAreInclusive,\n enableTopAxis,\n topAxisEnabled,\n setAxisFormat,\n getAxisFormat,\n setTickInterval,\n getTickInterval,\n setTodayMarker,\n getTodayMarker,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setDisplayMode,\n getDisplayMode,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n findTaskById,\n addTaskOrg,\n setIncludes,\n getIncludes,\n setExcludes,\n getExcludes,\n setClickEvent,\n setLink,\n getLinks,\n bindFunctions,\n parseDuration,\n isInvalidDate\n};\nfunction getTaskTags(data, task, tags2) {\n let matchFound = true;\n while (matchFound) {\n matchFound = false;\n tags2.forEach(function(t) {\n const pattern = \"^\\\\s*\" + t + \"\\\\s*$\";\n const regex = new RegExp(pattern);\n if (data[0].match(regex)) {\n task[t] = true;\n data.shift(1);\n matchFound = true;\n }\n });\n }\n}\nconst setConf = function() {\n log.debug(\"Something is calling, setConf, remove the call\");\n};\nconst getMaxIntersections = (tasks2, orderOffset) => {\n let timeline = [...tasks2].map(() => -Infinity);\n let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);\n let maxIntersections = 0;\n for (const element of sorted) {\n for (let j = 0; j < timeline.length; j++) {\n if (element.startTime >= timeline[j]) {\n timeline[j] = element.endTime;\n element.order = j + orderOffset;\n if (j > maxIntersections) {\n maxIntersections = j;\n }\n break;\n }\n }\n }\n return maxIntersections;\n};\nlet w;\nconst draw = function(text, id, version, diagObj) {\n const conf = getConfig().gantt;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const elem = doc.getElementById(id);\n w = elem.parentElement.offsetWidth;\n if (w === void 0) {\n w = 1200;\n }\n if (conf.useWidth !== void 0) {\n w = conf.useWidth;\n }\n const taskArray = diagObj.db.getTasks();\n let categories = [];\n for (const element of taskArray) {\n categories.push(element.type);\n }\n categories = checkUnique(categories);\n const categoryHeights = {};\n let h = 2 * conf.topPadding;\n if (diagObj.db.getDisplayMode() === \"compact\" || conf.displayMode === \"compact\") {\n const categoryElements = {};\n for (const element of taskArray) {\n if (categoryElements[element.section] === void 0) {\n categoryElements[element.section] = [element];\n } else {\n categoryElements[element.section].push(element);\n }\n }\n let intersections = 0;\n for (const category of Object.keys(categoryElements)) {\n const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;\n intersections += categoryHeight;\n h += categoryHeight * (conf.barHeight + conf.barGap);\n categoryHeights[category] = categoryHeight;\n }\n } else {\n h += taskArray.length * (conf.barHeight + conf.barGap);\n for (const category of categories) {\n categoryHeights[category] = taskArray.filter((task) => task.type === category).length;\n }\n }\n elem.setAttribute(\"viewBox\", \"0 0 \" + w + \" \" + h);\n const svg = root.select(`[id=\"${id}\"]`);\n const timeScale = scaleTime().domain([\n min(taskArray, function(d) {\n return d.startTime;\n }),\n max(taskArray, function(d) {\n return d.endTime;\n })\n ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);\n function taskCompare(a, b) {\n const taskA = a.startTime;\n const taskB = b.startTime;\n let result = 0;\n if (taskA > taskB) {\n result = 1;\n } else if (taskA < taskB) {\n result = -1;\n }\n return result;\n }\n taskArray.sort(taskCompare);\n makeGant(taskArray, w, h);\n configureSvgSize(svg, h, w, conf.useMaxWidth);\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", w / 2).attr(\"y\", conf.titleTopMargin).attr(\"class\", \"titleText\");\n function makeGant(tasks2, pageWidth, pageHeight) {\n const barHeight = conf.barHeight;\n const gap = barHeight + conf.barGap;\n const topPadding = conf.topPadding;\n const leftPadding = conf.leftPadding;\n const colorScale = scaleLinear().domain([0, categories.length]).range([\"#00B9FA\", \"#F95002\"]).interpolate(interpolateHcl);\n drawExcludeDays(\n gap,\n topPadding,\n leftPadding,\n pageWidth,\n pageHeight,\n tasks2,\n diagObj.db.getExcludes(),\n diagObj.db.getIncludes()\n );\n makeGrid(leftPadding, topPadding, pageWidth, pageHeight);\n drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);\n vertLabels(gap, topPadding);\n drawToday(leftPadding, topPadding, pageWidth, pageHeight);\n }\n function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {\n const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];\n const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));\n svg.append(\"g\").selectAll(\"rect\").data(uniqueTasks).enter().append(\"rect\").attr(\"x\", 0).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad - 2;\n }).attr(\"width\", function() {\n return w2 - conf.rightPadding / 2;\n }).attr(\"height\", theGap).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n return \"section section\" + i % conf.numberSectionStyles;\n }\n }\n return \"section section0\";\n });\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(theArray).enter();\n const links2 = diagObj.db.getLinks();\n rectangles.append(\"rect\").attr(\"id\", function(d) {\n return d.id;\n }).attr(\"rx\", 3).attr(\"ry\", 3).attr(\"x\", function(d) {\n if (d.milestone) {\n return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n return timeScale(d.startTime) + theSidePad;\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad;\n }).attr(\"width\", function(d) {\n if (d.milestone) {\n return theBarHeight;\n }\n return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);\n }).attr(\"height\", theBarHeight).attr(\"transform-origin\", function(d, i) {\n i = d.order;\n return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + \"px \" + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + \"px\";\n }).attr(\"class\", function(d) {\n const res = \"task\";\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskClass = \"\";\n if (d.active) {\n if (d.crit) {\n taskClass += \" activeCrit\";\n } else {\n taskClass = \" active\";\n }\n } else if (d.done) {\n if (d.crit) {\n taskClass = \" doneCrit\";\n } else {\n taskClass = \" done\";\n }\n } else {\n if (d.crit) {\n taskClass += \" crit\";\n }\n }\n if (taskClass.length === 0) {\n taskClass = \" task\";\n }\n if (d.milestone) {\n taskClass = \" milestone \" + taskClass;\n }\n taskClass += secNum;\n taskClass += \" \" + classStr;\n return res + taskClass;\n });\n rectangles.append(\"text\").attr(\"id\", function(d) {\n return d.id + \"-text\";\n }).text(function(d) {\n return d.task;\n }).attr(\"font-size\", conf.fontSize).attr(\"x\", function(d) {\n let startX = timeScale(d.startTime);\n let endX = timeScale(d.renderEndTime || d.endTime);\n if (d.milestone) {\n startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return startX + theSidePad - 5;\n } else {\n return endX + theSidePad + 5;\n }\n } else {\n return (endX - startX) / 2 + startX + theSidePad;\n }\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;\n }).attr(\"text-height\", theBarHeight).attr(\"class\", function(d) {\n const startX = timeScale(d.startTime);\n let endX = timeScale(d.endTime);\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskType = \"\";\n if (d.active) {\n if (d.crit) {\n taskType = \"activeCritText\" + secNum;\n } else {\n taskType = \"activeText\" + secNum;\n }\n }\n if (d.done) {\n if (d.crit) {\n taskType = taskType + \" doneCritText\" + secNum;\n } else {\n taskType = taskType + \" doneText\" + secNum;\n }\n } else {\n if (d.crit) {\n taskType = taskType + \" critText\" + secNum;\n }\n }\n if (d.milestone) {\n taskType += \" milestoneText\";\n }\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return classStr + \" taskTextOutsideLeft taskTextOutside\" + secNum + \" \" + taskType;\n } else {\n return classStr + \" taskTextOutsideRight taskTextOutside\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n } else {\n return classStr + \" taskText taskText\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n });\n const securityLevel2 = getConfig().securityLevel;\n if (securityLevel2 === \"sandbox\") {\n let sandboxElement2;\n sandboxElement2 = select(\"#i\" + id);\n const doc2 = sandboxElement2.nodes()[0].contentDocument;\n rectangles.filter(function(d) {\n return links2[d.id] !== void 0;\n }).each(function(o) {\n var taskRect = doc2.querySelector(\"#\" + o.id);\n var taskText = doc2.querySelector(\"#\" + o.id + \"-text\");\n const oldParent = taskRect.parentNode;\n var Link = doc2.createElement(\"a\");\n Link.setAttribute(\"xlink:href\", links2[o.id]);\n Link.setAttribute(\"target\", \"_top\");\n oldParent.appendChild(Link);\n Link.appendChild(taskRect);\n Link.appendChild(taskText);\n });\n }\n }\n function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {\n const minTime = tasks2.reduce(\n (min2, { startTime }) => min2 ? Math.min(min2, startTime) : startTime,\n 0\n );\n const maxTime = tasks2.reduce((max2, { endTime }) => max2 ? Math.max(max2, endTime) : endTime, 0);\n const dateFormat2 = diagObj.db.getDateFormat();\n if (!minTime || !maxTime) {\n return;\n }\n const excludeRanges = [];\n let range = null;\n let d = dayjs(minTime);\n while (d.valueOf() <= maxTime) {\n if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {\n if (!range) {\n range = {\n start: d,\n end: d\n };\n } else {\n range.end = d;\n }\n } else {\n if (range) {\n excludeRanges.push(range);\n range = null;\n }\n }\n d = d.add(1, \"d\");\n }\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(excludeRanges).enter();\n rectangles.append(\"rect\").attr(\"id\", function(d2) {\n return \"exclude-\" + d2.start.format(\"YYYY-MM-DD\");\n }).attr(\"x\", function(d2) {\n return timeScale(d2.start) + theSidePad;\n }).attr(\"y\", conf.gridLineStartPadding).attr(\"width\", function(d2) {\n const renderEnd = d2.end.add(1, \"day\");\n return timeScale(renderEnd) - timeScale(d2.start);\n }).attr(\"height\", h2 - theTopPad - conf.gridLineStartPadding).attr(\"transform-origin\", function(d2, i) {\n return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + \"px \" + (i * theGap + 0.5 * h2).toString() + \"px\";\n }).attr(\"class\", \"exclude-range\");\n }\n function makeGrid(theSidePad, theTopPad, w2, h2) {\n let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n const reTickInterval = /^([1-9]\\d*)(minute|hour|day|week|month)$/;\n const resultTickInterval = reTickInterval.exec(\n diagObj.db.getTickInterval() || conf.tickInterval\n );\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n switch (interval) {\n case \"minute\":\n bottomXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n bottomXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n bottomXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n bottomXAxis.ticks(timeWeek.every(every));\n break;\n case \"month\":\n bottomXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + (h2 - 50) + \")\").call(bottomXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10).attr(\"dy\", \"1em\");\n if (diagObj.db.topAxisEnabled() || conf.topAxis) {\n let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n switch (interval) {\n case \"minute\":\n topXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n topXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n topXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n topXAxis.ticks(timeWeek.every(every));\n break;\n case \"month\":\n topXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + theTopPad + \")\").call(topXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10);\n }\n }\n function vertLabels(theGap, theTopPad) {\n let prevGap = 0;\n const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);\n svg.append(\"g\").selectAll(\"text\").data(numOccurances).enter().append(function(d) {\n const rows = d[0].split(common.lineBreakRegex);\n const dy = -(rows.length - 1) / 2;\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"dy\", dy + \"em\");\n for (const [j, row] of rows.entries()) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttribute(\"alignment-baseline\", \"central\");\n tspan.setAttribute(\"x\", \"10\");\n if (j > 0) {\n tspan.setAttribute(\"dy\", \"1em\");\n }\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }).attr(\"x\", 10).attr(\"y\", function(d, i) {\n if (i > 0) {\n for (let j = 0; j < i; j++) {\n prevGap += numOccurances[i - 1][1];\n return d[1] * theGap / 2 + prevGap * theGap + theTopPad;\n }\n } else {\n return d[1] * theGap / 2 + theTopPad;\n }\n }).attr(\"font-size\", conf.sectionFontSize).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d[0] === category) {\n return \"sectionTitle sectionTitle\" + i % conf.numberSectionStyles;\n }\n }\n return \"sectionTitle\";\n });\n }\n function drawToday(theSidePad, theTopPad, w2, h2) {\n const todayMarker2 = diagObj.db.getTodayMarker();\n if (todayMarker2 === \"off\") {\n return;\n }\n const todayG = svg.append(\"g\").attr(\"class\", \"today\");\n const today = /* @__PURE__ */ new Date();\n const todayLine = todayG.append(\"line\");\n todayLine.attr(\"x1\", timeScale(today) + theSidePad).attr(\"x2\", timeScale(today) + theSidePad).attr(\"y1\", conf.titleTopMargin).attr(\"y2\", h2 - conf.titleTopMargin).attr(\"class\", \"today\");\n if (todayMarker2 !== \"\") {\n todayLine.attr(\"style\", todayMarker2.replace(/,/g, \";\"));\n }\n }\n function checkUnique(arr) {\n const hash = {};\n const result = [];\n for (let i = 0, l = arr.length; i < l; ++i) {\n if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {\n hash[arr[i]] = true;\n result.push(arr[i]);\n }\n }\n return result;\n }\n};\nconst ganttRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .mermaid-main-font {\n font-family: \"trebuchet ms\", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${options.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${options.sectionBkgColor};\n }\n\n .section2 {\n fill: ${options.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${options.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${options.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${options.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${options.fontFamily};\n fill: ${options.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${options.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${options.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${options.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${options.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${options.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${options.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${options.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${options.taskBkgColor};\n stroke: ${options.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${options.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${options.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${options.activeTaskBkgColor};\n stroke: ${options.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${options.doneTaskBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`;\nconst ganttStyles = getStyles;\nconst diagram = {\n parser: ganttParser,\n db: ganttDb,\n renderer: ganttRenderer,\n styles: ganttStyles\n};\nexport {\n diagram\n};\n"],"names":["max","values","valueof","value","index","min","identity","x","top","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","entering","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","k","transform","context","format","spacing","range","range0","range1","position","selection","path","tick","tickExit","tickEnter","line","text","p","_","axisTop","axisBottom","radians","degrees","K","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","o","Lab","Hcl","hcl2lab","Rgb","rgbConvert","r","rgb2lrgb","g","b","xyz2lab","z","lab","l","a","opacity","define","extend","Color","lab2xyz","lrgb2rgb","hclConvert","h","hcl","c","hue","start","end","colorHcl","color","t","interpolateHcl","nice","domain","interval","i0","i1","x0","x1","timeInterval","floori","offseti","count","field","date","d0","d1","step","stop","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","i","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","ticks","reverse","tickInterval","target","bisector","tickStep","timeTicks","timeTickInterval","localDate","utcDate","newDate","m","formatLocale","locale","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","string","j","n","pad","pads","newParse","Z","parseSpecifier","parse","f","numberRe","percentRe","requoteRe","fill","width","sign","length","requote","s","names","name","dISO","dow","UTCdISO","timeFormat","defaultLocale","definition","calendar","continuous","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","copy","time","initRange","timeWeek","timeSecond","e","module","this","u","M","Y","v","D","parser","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","ganttParser","dayjs","dayjsIsoWeek","dayjsCustomParseFormat","dayjsAdvancedFormat","dateFormat","axisFormat","todayMarker","includes","excludes","links","sections","tasks","currentSection","displayMode","tags","funs","inclusiveEndDates","topAxis","lastOrder","parseDirective","statement","type","mermaidAPI","clear","taskCnt","lastTask","lastTaskID","rawTasks","clear$1","setAxisFormat","txt","getAxisFormat","setTickInterval","getTickInterval","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","setDisplayMode","getDisplayMode","getDateFormat","setIncludes","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","isInvalidDate","dateFormat2","excludes2","includes2","checkTaskDates","task","startTime","originalEndTime","fixedEndTime","renderEndTime","fixTaskDates","endTime","invalid","getStartDate","prevTime","afterStatement","latestEndingTask","id","findTaskById","dt","mDate","log","parseDuration","getEndDate","inclusive","durationValue","durationUnit","newEndTime","parseId","idStr","compileData","prevTask","dataStr","ds","data","getTaskTags","endTimeData","parseData","prevTaskId","taskDb","addTask","descr","rawTask","taskInfo","pos","addTaskOrg","newTask","compileTask","allProcessed","setLink","ids","_linkStr","linkStr","getConfig","sanitizeUrl","pushFun","setClass","className","setClickFun","functionName","functionArgs","argList","item","utils","callbackFunction","elem","setClickEvent","bindFunctions","element","fun","ganttDb","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","setAccDescription","getAccDescription","tags2","matchFound","pattern","regex","setConf","getMaxIntersections","tasks2","orderOffset","timeline","sorted","maxIntersections","w","draw","version","diagObj","conf","securityLevel","sandboxElement","select","root","doc","taskArray","categories","checkUnique","categoryHeights","categoryElements","intersections","category","categoryHeight","svg","timeScale","scaleTime","taskCompare","taskA","taskB","result","makeGant","configureSvgSize","pageWidth","pageHeight","barHeight","gap","topPadding","leftPadding","colorScale","scaleLinear","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","w2","uniqueTasks","id2","rectangles","links2","res","classStr","secNum","taskClass","startX","endX","textWidth","taskType","sandboxElement2","doc2","taskRect","taskText","oldParent","Link","h2","minTime","min2","maxTime","max2","excludeRanges","d2","renderEnd","bottomXAxis","resultTickInterval","every","topXAxis","prevGap","numOccurances","rows","common","dy","svgLabel","row","tspan","todayMarker2","todayG","today","todayLine","arr","ganttRenderer","getStyles","options","ganttStyles","diagram"],"mappings":"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","x_google_ignoreList":[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]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js b/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js deleted file mode 100644 index ce7627c..0000000 --- a/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js +++ /dev/null @@ -1,65 +0,0 @@ -import{c as A,s as Ae,g as Oe,a as Se,b as Ie,v as Ge,x as Pe,m as Ne,l as G,j as V,z as He,a9 as pe,h as De,y as Ve,aa as ze,ab as je}from"./index-jpNTxDe4.js";import"./index-2K3MavtT.js";var me=function(){var r=function(B,l,u,b){for(u=u||{},b=B.length;b--;u[B[b]]=l);return u},a=[1,4],o=[1,7],h=[1,5],c=[1,9],n=[1,6],f=[2,6],p=[1,16],v=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],y=[8,14,20,22,24,25,27,29,32,37,40],m=[8,13,14,20,22,24,25,27,29,32,37,40],d=[1,26],_=[6,8,14,50,55],s=[8,14,55],C=[1,53],w=[1,52],H=[8,14,30,33,35,38,55],x=[1,67],g=[1,68],k=[1,69],P=[8,14,33,35,42,55],ae={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(l,u,b,i,E,e,W){var t=e.length-1;switch(E){case 3:return e[t];case 4:return e[t-1];case 5:return i.setDirection(e[t-3]),e[t-1];case 7:i.setOptions(e[t-1]),this.$=e[t];break;case 8:e[t-1]+=e[t],this.$=e[t-1];break;case 10:this.$=[];break;case 11:e[t-1].push(e[t]),this.$=e[t-1];break;case 12:this.$=e[t-1];break;case 17:this.$=e[t].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=e[t].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(e[t].substr(8)),this.$=e[t].substr(8);break;case 22:i.checkout(e[t]);break;case 23:i.branch(e[t]);break;case 24:i.branch(e[t-2],e[t]);break;case 25:i.cherryPick(e[t],"",void 0);break;case 26:i.cherryPick(e[t-2],"",e[t]);break;case 27:case 29:i.cherryPick(e[t-2],"","");break;case 28:i.cherryPick(e[t],"",e[t-2]);break;case 30:i.merge(e[t],"","","");break;case 31:i.merge(e[t-2],e[t],"","");break;case 32:i.merge(e[t-2],"",e[t],"");break;case 33:i.merge(e[t-2],"","",e[t]);break;case 34:i.merge(e[t-4],e[t],"",e[t-2]);break;case 35:i.merge(e[t-4],"",e[t],e[t-2]);break;case 36:i.merge(e[t-4],"",e[t-2],e[t]);break;case 37:i.merge(e[t-4],e[t-2],e[t],"");break;case 38:i.merge(e[t-4],e[t-2],"",e[t]);break;case 39:i.merge(e[t-4],e[t],e[t-2],"");break;case 40:i.merge(e[t-6],e[t-4],e[t-2],e[t]);break;case 41:i.merge(e[t-6],e[t],e[t-4],e[t-2]);break;case 42:i.merge(e[t-6],e[t-4],e[t],e[t-2]);break;case 43:i.merge(e[t-6],e[t-2],e[t-4],e[t]);break;case 44:i.merge(e[t-6],e[t],e[t-2],e[t-4]);break;case 45:i.merge(e[t-6],e[t-2],e[t],e[t-4]);break;case 46:i.commit(e[t]);break;case 47:i.commit("","",i.commitType.NORMAL,e[t]);break;case 48:i.commit("","",e[t],"");break;case 49:i.commit("","",e[t],e[t-2]);break;case 50:i.commit("","",e[t-2],e[t]);break;case 51:i.commit("",e[t],i.commitType.NORMAL,"");break;case 52:i.commit("",e[t-2],i.commitType.NORMAL,e[t]);break;case 53:i.commit("",e[t],i.commitType.NORMAL,e[t-2]);break;case 54:i.commit("",e[t-2],e[t],"");break;case 55:i.commit("",e[t],e[t-2],"");break;case 56:i.commit("",e[t-4],e[t-2],e[t]);break;case 57:i.commit("",e[t-4],e[t],e[t-2]);break;case 58:i.commit("",e[t-2],e[t-4],e[t]);break;case 59:i.commit("",e[t],e[t-4],e[t-2]);break;case 60:i.commit("",e[t],e[t-2],e[t-4]);break;case 61:i.commit("",e[t-2],e[t],e[t-4]);break;case 62:i.commit(e[t],"",i.commitType.NORMAL,"");break;case 63:i.commit(e[t],"",i.commitType.NORMAL,e[t-2]);break;case 64:i.commit(e[t-2],"",i.commitType.NORMAL,e[t]);break;case 65:i.commit(e[t-2],"",e[t],"");break;case 66:i.commit(e[t],"",e[t-2],"");break;case 67:i.commit(e[t],e[t-2],i.commitType.NORMAL,"");break;case 68:i.commit(e[t-2],e[t],i.commitType.NORMAL,"");break;case 69:i.commit(e[t-4],"",e[t-2],e[t]);break;case 70:i.commit(e[t-4],"",e[t],e[t-2]);break;case 71:i.commit(e[t-2],"",e[t-4],e[t]);break;case 72:i.commit(e[t],"",e[t-4],e[t-2]);break;case 73:i.commit(e[t],"",e[t-2],e[t-4]);break;case 74:i.commit(e[t-2],"",e[t],e[t-4]);break;case 75:i.commit(e[t-4],e[t],e[t-2],"");break;case 76:i.commit(e[t-4],e[t-2],e[t],"");break;case 77:i.commit(e[t-2],e[t],e[t-4],"");break;case 78:i.commit(e[t],e[t-2],e[t-4],"");break;case 79:i.commit(e[t],e[t-4],e[t-2],"");break;case 80:i.commit(e[t-2],e[t-4],e[t],"");break;case 81:i.commit(e[t-4],e[t],i.commitType.NORMAL,e[t-2]);break;case 82:i.commit(e[t-4],e[t-2],i.commitType.NORMAL,e[t]);break;case 83:i.commit(e[t-2],e[t],i.commitType.NORMAL,e[t-4]);break;case 84:i.commit(e[t],e[t-2],i.commitType.NORMAL,e[t-4]);break;case 85:i.commit(e[t],e[t-4],i.commitType.NORMAL,e[t-2]);break;case 86:i.commit(e[t-2],e[t-4],i.commitType.NORMAL,e[t]);break;case 87:i.commit(e[t-6],e[t-4],e[t-2],e[t]);break;case 88:i.commit(e[t-6],e[t-4],e[t],e[t-2]);break;case 89:i.commit(e[t-6],e[t-2],e[t-4],e[t]);break;case 90:i.commit(e[t-6],e[t],e[t-4],e[t-2]);break;case 91:i.commit(e[t-6],e[t-2],e[t],e[t-4]);break;case 92:i.commit(e[t-6],e[t],e[t-2],e[t-4]);break;case 93:i.commit(e[t-4],e[t-6],e[t-2],e[t]);break;case 94:i.commit(e[t-4],e[t-6],e[t],e[t-2]);break;case 95:i.commit(e[t-2],e[t-6],e[t-4],e[t]);break;case 96:i.commit(e[t],e[t-6],e[t-4],e[t-2]);break;case 97:i.commit(e[t-2],e[t-6],e[t],e[t-4]);break;case 98:i.commit(e[t],e[t-6],e[t-2],e[t-4]);break;case 99:i.commit(e[t],e[t-4],e[t-2],e[t-6]);break;case 100:i.commit(e[t-2],e[t-4],e[t],e[t-6]);break;case 101:i.commit(e[t],e[t-2],e[t-4],e[t-6]);break;case 102:i.commit(e[t-2],e[t],e[t-4],e[t-6]);break;case 103:i.commit(e[t-4],e[t-2],e[t],e[t-6]);break;case 104:i.commit(e[t-4],e[t],e[t-2],e[t-6]);break;case 105:i.commit(e[t-2],e[t-4],e[t-6],e[t]);break;case 106:i.commit(e[t],e[t-4],e[t-6],e[t-2]);break;case 107:i.commit(e[t-2],e[t],e[t-6],e[t-4]);break;case 108:i.commit(e[t],e[t-2],e[t-6],e[t-4]);break;case 109:i.commit(e[t-4],e[t-2],e[t-6],e[t]);break;case 110:i.commit(e[t-4],e[t],e[t-6],e[t-2]);break;case 111:this.$="";break;case 112:this.$=e[t];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(e[t],"type_directive");break;case 120:e[t]=e[t].trim().replace(/'/g,'"'),i.parseDirective(e[t],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph");break}},table:[{3:1,4:2,5:3,6:a,8:o,14:h,46:8,50:c,55:n},{1:[3]},{3:10,4:2,5:3,6:a,8:o,14:h,46:8,50:c,55:n},{3:11,4:2,5:3,6:a,8:o,14:h,46:8,50:c,55:n},{7:12,8:f,9:[1,13],10:[1,14],11:15,14:p},r(v,[2,124]),r(v,[2,125]),r(v,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:f,11:15,14:p},{9:[1,21]},r(y,[2,10],{12:22,13:[1,23]}),r(m,[2,9]),{9:[1,25],48:24,53:d},r([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:f,11:15,14:p},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},r(m,[2,8]),r(_,[2,116]),{49:45,52:[1,46]},r(_,[2,121]),{1:[2,4]},{8:[1,47]},r(y,[2,11]),{4:48,8:o,14:h,55:n},r(y,[2,13]),r(s,[2,14]),r(s,[2,15]),r(s,[2,16]),{21:[1,49]},{23:[1,50]},r(s,[2,19]),r(s,[2,20]),r(s,[2,21]),{28:51,34:C,54:w},r(s,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:C,54:w},{33:[1,61],35:[1,62]},{28:63,34:C,54:w},{48:64,53:d},{53:[2,120]},{1:[2,5]},r(y,[2,12]),r(s,[2,17]),r(s,[2,18]),r(s,[2,22]),r(H,[2,122]),r(H,[2,123]),r(s,[2,46]),{34:[1,65]},{39:66,43:x,44:g,45:k},{34:[1,70]},{34:[1,71]},r(s,[2,112]),r(s,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},r(s,[2,23],{30:[1,78]}),r(_,[2,117]),r(s,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),r(s,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),r(P,[2,113]),r(P,[2,114]),r(P,[2,115]),r(s,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),r(s,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:x,44:g,45:k},{34:[1,93]},r(s,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:x,44:g,45:k},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:x,44:g,45:k},{34:[1,106]},{34:[1,107]},{39:108,43:x,44:g,45:k},{34:[1,109]},r(s,[2,31],{35:[1,111],38:[1,110]}),r(s,[2,32],{33:[1,113],35:[1,112]}),r(s,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},r(s,[2,24]),r(s,[2,49],{33:[1,120],42:[1,121]}),r(s,[2,53],{38:[1,122],42:[1,123]}),r(s,[2,63],{33:[1,125],38:[1,124]}),r(s,[2,50],{33:[1,126],42:[1,127]}),r(s,[2,55],{35:[1,128],42:[1,129]}),r(s,[2,66],{33:[1,131],35:[1,130]}),r(s,[2,52],{38:[1,132],42:[1,133]}),r(s,[2,54],{35:[1,134],42:[1,135]}),r(s,[2,67],{35:[1,137],38:[1,136]}),r(s,[2,64],{33:[1,139],38:[1,138]}),r(s,[2,65],{33:[1,141],35:[1,140]}),r(s,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:x,44:g,45:k},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:x,44:g,45:k},r(s,[2,26]),r(s,[2,27]),r(s,[2,28]),r(s,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:x,44:g,45:k},{34:[1,153]},{39:154,43:x,44:g,45:k},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:x,44:g,45:k},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:x,44:g,45:k},{34:[1,167]},{39:168,43:x,44:g,45:k},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:x,44:g,45:k},{34:[1,173]},r(s,[2,37],{35:[1,174]}),r(s,[2,38],{38:[1,175]}),r(s,[2,36],{33:[1,176]}),r(s,[2,39],{35:[1,177]}),r(s,[2,34],{38:[1,178]}),r(s,[2,35],{33:[1,179]}),r(s,[2,60],{42:[1,180]}),r(s,[2,73],{33:[1,181]}),r(s,[2,61],{42:[1,182]}),r(s,[2,84],{38:[1,183]}),r(s,[2,74],{33:[1,184]}),r(s,[2,83],{38:[1,185]}),r(s,[2,59],{42:[1,186]}),r(s,[2,72],{33:[1,187]}),r(s,[2,58],{42:[1,188]}),r(s,[2,78],{35:[1,189]}),r(s,[2,71],{33:[1,190]}),r(s,[2,77],{35:[1,191]}),r(s,[2,57],{42:[1,192]}),r(s,[2,85],{38:[1,193]}),r(s,[2,56],{42:[1,194]}),r(s,[2,79],{35:[1,195]}),r(s,[2,80],{35:[1,196]}),r(s,[2,86],{38:[1,197]}),r(s,[2,70],{33:[1,198]}),r(s,[2,81],{38:[1,199]}),r(s,[2,69],{33:[1,200]}),r(s,[2,75],{35:[1,201]}),r(s,[2,76],{35:[1,202]}),r(s,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:x,44:g,45:k},{34:[1,206]},{34:[1,207]},{39:208,43:x,44:g,45:k},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:x,44:g,45:k},{34:[1,214]},{39:215,43:x,44:g,45:k},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:x,44:g,45:k},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:x,44:g,45:k},{34:[1,228]},{39:229,43:x,44:g,45:k},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:x,44:g,45:k},r(s,[2,40]),r(s,[2,42]),r(s,[2,41]),r(s,[2,43]),r(s,[2,45]),r(s,[2,44]),r(s,[2,101]),r(s,[2,102]),r(s,[2,99]),r(s,[2,100]),r(s,[2,104]),r(s,[2,103]),r(s,[2,108]),r(s,[2,107]),r(s,[2,106]),r(s,[2,105]),r(s,[2,110]),r(s,[2,109]),r(s,[2,98]),r(s,[2,97]),r(s,[2,96]),r(s,[2,95]),r(s,[2,93]),r(s,[2,94]),r(s,[2,92]),r(s,[2,91]),r(s,[2,90]),r(s,[2,89]),r(s,[2,87]),r(s,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(l,u){if(u.recoverable)this.trace(l);else{var b=new Error(l);throw b.hash=u,b}},parse:function(l){var u=this,b=[0],i=[],E=[null],e=[],W=this.table,t="",Z=0,be=0,Re=2,ge=1,Ce=e.slice.call(arguments,1),L=Object.create(this.lexer),q={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(q.yy[ne]=this.yy[ne]);L.setInput(l,q.yy),q.yy.lexer=L,q.yy.parser=this,typeof L.yylloc>"u"&&(L.yylloc={});var oe=L.yylloc;e.push(oe);var Le=L.options&&L.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Me(){var j;return j=i.pop()||L.lex()||ge,typeof j!="number"&&(j instanceof Array&&(i=j,j=i.pop()),j=u.symbols_[j]||j),j}for(var S,Y,D,le,U={},$,z,de,ee;;){if(Y=b[b.length-1],this.defaultActions[Y]?D=this.defaultActions[Y]:((S===null||typeof S>"u")&&(S=Me()),D=W[Y]&&W[Y][S]),typeof D>"u"||!D.length||!D[0]){var he="";ee=[];for($ in W[Y])this.terminals_[$]&&$>Re&&ee.push("'"+this.terminals_[$]+"'");L.showPosition?he="Parse error on line "+(Z+1)+`: -`+L.showPosition()+` -Expecting `+ee.join(", ")+", got '"+(this.terminals_[S]||S)+"'":he="Parse error on line "+(Z+1)+": Unexpected "+(S==ge?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(he,{text:L.match,token:this.terminals_[S]||S,line:L.yylineno,loc:oe,expected:ee})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+S);switch(D[0]){case 1:b.push(S),E.push(L.yytext),e.push(L.yylloc),b.push(D[1]),S=null,be=L.yyleng,t=L.yytext,Z=L.yylineno,oe=L.yylloc;break;case 2:if(z=this.productions_[D[1]][1],U.$=E[E.length-z],U._$={first_line:e[e.length-(z||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(z||1)].first_column,last_column:e[e.length-1].last_column},Le&&(U._$.range=[e[e.length-(z||1)].range[0],e[e.length-1].range[1]]),le=this.performAction.apply(U,[t,be,Z,q.yy,D[1],E,e].concat(Ce)),typeof le<"u")return le;z&&(b=b.slice(0,-1*z*2),E=E.slice(0,-1*z),e=e.slice(0,-1*z)),b.push(this.productions_[D[1]][0]),E.push(U.$),e.push(U._$),de=W[b[b.length-2]][b[b.length-1]],b.push(de);break;case 3:return!0}}return!0}},Te=function(){var B={EOF:1,parseError:function(u,b){if(this.yy.parser)this.yy.parser.parseError(u,b);else throw new Error(u)},setInput:function(l,u){return this.yy=u||this.yy||{},this._input=l,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},input:function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var u=l.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),l},unput:function(l){var u=l.length,b=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var i=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 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:b?(b.length===i.length?this.yylloc.first_column:0)+i[i.length-b.length].length-b[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(l){this.unput(this.match.slice(l))},pastInput:function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var l=this.pastInput(),u=new Array(l.length+1).join("-");return l+this.upcomingInput()+` -`+u+"^"},test_match:function(l,u){var b,i,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))),i=l[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+l[0].length},this.yytext+=l[0],this.match+=l[0],this.matches=l,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(l[0].length),this.matched+=l[0],b=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),b)return b;if(this._backtrack){for(var e in E)this[e]=E[e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var l,u,b,i;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),e=0;eu[0].length)){if(u=b,i=e,this.options.backtrack_lexer){if(l=this.test_match(b,E[e]),l!==!1)return l;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(l=this.test_match(u,E[i]),l!==!1?l:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var u=this.next();return u||this.lex()},begin:function(u){this.conditionStack.push(u)},popState:function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},pushState:function(u){this.begin(u)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(u,b,i,E){switch(i){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:break;case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:return 10;case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 34:this.popState();break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 38:this.popState();break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};return B}();ae.lexer=Te;function ce(){this.yy={}}return ce.prototype=ae,ae.Parser=ce,new ce}();me.parser=me;const Be=me;let te=A().gitGraph.mainBranchName,qe=A().gitGraph.mainBranchOrder,R={},O=null,Q={};Q[te]={name:te,order:qe};let T={};T[te]=O;let M=te,xe="LR",F=0;function fe(){return je({length:7})}const Ye=function(r,a,o){Ne.parseDirective(this,r,a,o)};function Ke(r,a){const o=Object.create(null);return r.reduce((h,c)=>{const n=a(c);return o[n]||(o[n]=!0,h.push(c)),h},[])}const Fe=function(r){xe=r};let ye={};const Ue=function(r){G.debug("options str",r),r=r&&r.trim(),r=r||"{}";try{ye=JSON.parse(r)}catch(a){G.error("error while parsing gitGraph options",a.message)}},We=function(){return ye},Je=function(r,a,o,h){G.debug("Entering commit:",r,a,o,h),a=V.sanitizeText(a,A()),r=V.sanitizeText(r,A()),h=V.sanitizeText(h,A());const c={id:a||F+"-"+fe(),message:r,seq:F++,type:o||X.NORMAL,tag:h||"",parents:O==null?[]:[O.id],branch:M};O=c,R[c.id]=c,T[M]=c.id,G.debug("in pushCommit "+c.id)},Qe=function(r,a){if(r=V.sanitizeText(r,A()),T[r]===void 0)T[r]=O!=null?O.id:null,Q[r]={name:r,order:a?parseInt(a,10):null},Ee(r),G.debug("in createBranch");else{let o=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 '+r+'")');throw o.hash={text:"branch "+r,token:"branch "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+r+'"']},o}},Xe=function(r,a,o,h){r=V.sanitizeText(r,A()),a=V.sanitizeText(a,A());const c=R[T[M]],n=R[T[r]];if(M===r){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},p}else if(c===void 0||!c){let p=new Error('Incorrect usage of "merge". Current branch ('+M+")has no commits");throw p.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},p}else if(T[r]===void 0){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw p.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+r]},p}else if(n===void 0||!n){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw p.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},p}else if(c===n){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},p}else if(a&&R[a]!==void 0){let p=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw p.hash={text:"merge "+r+a+o+h,token:"merge "+r+a+o+h,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+r+" "+a+"_UNIQUE "+o+" "+h]},p}const f={id:a||F+"-"+fe(),message:"merged branch "+r+" into "+M,seq:F++,parents:[O==null?null:O.id,T[r]],branch:M,type:X.MERGE,customType:o,customId:!!a,tag:h||""};O=f,R[f.id]=f,T[M]=f.id,G.debug(T),G.debug("in mergeBranch")},Ze=function(r,a,o){if(G.debug("Entering cherryPick:",r,a,o),r=V.sanitizeText(r,A()),a=V.sanitizeText(a,A()),o=V.sanitizeText(o,A()),!r||R[r]===void 0){let n=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw n.hash={text:"cherryPick "+r+" "+a,token:"cherryPick "+r+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}let h=R[r],c=h.branch;if(h.type===X.MERGE){let n=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw n.hash={text:"cherryPick "+r+" "+a,token:"cherryPick "+r+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}if(!a||R[a]===void 0){if(c===M){let p=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw p.hash={text:"cherryPick "+r+" "+a,token:"cherryPick "+r+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},p}const n=R[T[M]];if(n===void 0||!n){let p=new Error('Incorrect usage of "cherry-pick". Current branch ('+M+")has no commits");throw p.hash={text:"cherryPick "+r+" "+a,token:"cherryPick "+r+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},p}const f={id:F+"-"+fe(),message:"cherry-picked "+h+" into "+M,seq:F++,parents:[O==null?null:O.id,h.id],branch:M,type:X.CHERRY_PICK,tag:o??"cherry-pick:"+h.id};O=f,R[f.id]=f,T[M]=f.id,G.debug(T),G.debug("in cherryPick")}},Ee=function(r){if(r=V.sanitizeText(r,A()),T[r]===void 0){let a=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+r+'")');throw a.hash={text:"checkout "+r,token:"checkout "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+r+'"']},a}else{M=r;const a=T[M];O=R[a]}};function ke(r,a,o){const h=r.indexOf(a);h===-1?r.push(o):r.splice(h,1,o)}function ve(r){const a=r.reduce((c,n)=>c.seq>n.seq?c:n,r[0]);let o="";r.forEach(function(c){c===a?o+=" *":o+=" |"});const h=[o,a.id,a.seq];for(let c in T)T[c]===a.id&&h.push(c);if(G.debug(h.join(" ")),a.parents&&a.parents.length==2){const c=R[a.parents[0]];ke(r,a,c),r.push(R[a.parents[1]])}else{if(a.parents.length==0)return;{const c=R[a.parents];ke(r,a,c)}}r=Ke(r,c=>c.id),ve(r)}const $e=function(){G.debug(R);const r=we()[0];ve([r])},et=function(){R={},O=null;let r=A().gitGraph.mainBranchName,a=A().gitGraph.mainBranchOrder;T={},T[r]=null,Q={},Q[r]={name:r,order:a},M=r,F=0,He()},tt=function(){return Object.values(Q).map((a,o)=>a.order!==null?a:{...a,order:parseFloat(`0.${o}`,10)}).sort((a,o)=>a.order-o.order).map(({name:a})=>({name:a}))},rt=function(){return T},it=function(){return R},we=function(){const r=Object.keys(R).map(function(a){return R[a]});return r.forEach(function(a){G.debug(a.id)}),r.sort((a,o)=>a.seq-o.seq),r},st=function(){return M},at=function(){return xe},ct=function(){return O},X={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},nt={parseDirective:Ye,getConfig:()=>A().gitGraph,setDirection:Fe,setOptions:Ue,getOptions:We,commit:Je,branch:Qe,merge:Xe,cherryPick:Ze,checkout:Ee,prettyPrint:$e,clear:et,getBranchesAsObjArray:tt,getBranches:rt,getCommits:it,getCommitsArray:we,getCurrentBranch:st,getDirection:at,getHead:ct,setAccTitle:Ae,getAccTitle:Oe,getAccDescription:Se,setAccDescription:Ie,setDiagramTitle:Ge,getDiagramTitle:Pe,commitType:X};let J={};const N={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},K=8;let I={},re={},ie=[],se=0;const ot=()=>{I={},re={},J={},se=0,ie=[]},lt=r=>{const a=document.createElementNS("http://www.w3.org/2000/svg","text");let o=[];typeof r=="string"?o=r.split(/\\n|\n|/gi):Array.isArray(r)?o=r:o=[];for(const h of o){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),c.setAttribute("class","row"),c.textContent=h.trim(),a.appendChild(c)}return a},_e=(r,a,o)=>{const h=pe().gitGraph,c=r.append("g").attr("class","commit-bullets"),n=r.append("g").attr("class","commit-labels");let f=0;Object.keys(a).sort((y,m)=>a[y].seq-a[m].seq).forEach(y=>{const m=a[y],d=I[m.branch].pos,_=f+10;if(o){let s,C=m.customType!==void 0&&m.customType!==""?m.customType:m.type;switch(C){case N.NORMAL:s="commit-normal";break;case N.REVERSE:s="commit-reverse";break;case N.HIGHLIGHT:s="commit-highlight";break;case N.MERGE:s="commit-merge";break;case N.CHERRY_PICK:s="commit-cherry-pick";break;default:s="commit-normal"}if(C===N.HIGHLIGHT){const w=c.append("rect");w.attr("x",_-10),w.attr("y",d-10),w.attr("height",20),w.attr("width",20),w.attr("class",`commit ${m.id} commit-highlight${I[m.branch].index%K} ${s}-outer`),c.append("rect").attr("x",_-6).attr("y",d-6).attr("height",12).attr("width",12).attr("class",`commit ${m.id} commit${I[m.branch].index%K} ${s}-inner`)}else if(C===N.CHERRY_PICK)c.append("circle").attr("cx",_).attr("cy",d).attr("r",10).attr("class",`commit ${m.id} ${s}`),c.append("circle").attr("cx",_-3).attr("cy",d+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${m.id} ${s}`),c.append("circle").attr("cx",_+3).attr("cy",d+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${m.id} ${s}`),c.append("line").attr("x1",_+3).attr("y1",d+1).attr("x2",_).attr("y2",d-5).attr("stroke","#fff").attr("class",`commit ${m.id} ${s}`),c.append("line").attr("x1",_-3).attr("y1",d+1).attr("x2",_).attr("y2",d-5).attr("stroke","#fff").attr("class",`commit ${m.id} ${s}`);else{const w=c.append("circle");if(w.attr("cx",_),w.attr("cy",d),w.attr("r",m.type===N.MERGE?9:10),w.attr("class",`commit ${m.id} commit${I[m.branch].index%K}`),C===N.MERGE){const H=c.append("circle");H.attr("cx",_),H.attr("cy",d),H.attr("r",6),H.attr("class",`commit ${s} ${m.id} commit${I[m.branch].index%K}`)}C===N.REVERSE&&c.append("path").attr("d",`M ${_-5},${d-5}L${_+5},${d+5}M${_-5},${d+5}L${_+5},${d-5}`).attr("class",`commit ${s} ${m.id} commit${I[m.branch].index%K}`)}}if(re[m.id]={x:f+10,y:d},o){if(m.type!==N.CHERRY_PICK&&(m.customId&&m.type===N.MERGE||m.type!==N.MERGE)&&h.showCommitLabel){const w=n.append("g"),H=w.insert("rect").attr("class","commit-label-bkg"),x=w.append("text").attr("x",f).attr("y",d+25).attr("class","commit-label").text(m.id);let g=x.node().getBBox();if(H.attr("x",f+10-g.width/2-2).attr("y",d+13.5).attr("width",g.width+2*2).attr("height",g.height+2*2),x.attr("x",f+10-g.width/2),h.rotateCommitLabel){let k=-7.5-(g.width+10)/25*9.5,P=10+g.width/25*8.5;w.attr("transform","translate("+k+", "+P+") rotate(-45, "+f+", "+d+")")}}if(m.tag){const w=n.insert("polygon"),H=n.append("circle"),x=n.append("text").attr("y",d-16).attr("class","tag-label").text(m.tag);let g=x.node().getBBox();x.attr("x",f+10-g.width/2);const k=g.height/2,P=d-19.2;w.attr("class","tag-label-bkg").attr("points",` - ${f-g.width/2-4/2},${P+2} - ${f-g.width/2-4/2},${P-2} - ${f+10-g.width/2-4},${P-k-2} - ${f+10+g.width/2+4},${P-k-2} - ${f+10+g.width/2+4},${P+k+2} - ${f+10-g.width/2-4},${P+k+2}`),H.attr("cx",f-g.width/2+4/2).attr("cy",P).attr("r",1.5).attr("class","tag-hole")}}f+=50,f>se&&(se=f)})},ht=(r,a,o)=>Object.keys(o).filter(n=>o[n].branch===a.branch&&o[n].seq>r.seq&&o[n].seq0,ue=(r,a,o=0)=>{const h=r+Math.abs(r-a)/2;if(o>5)return h;if(ie.every(f=>Math.abs(f-h)>=10))return ie.push(h),h;const n=Math.abs(r-a);return ue(r,a-n/5,o+1)},mt=(r,a,o,h)=>{const c=re[a.id],n=re[o.id],f=ht(a,o,h);let p="",v="",y=0,m=0,d=I[o.branch].index,_;if(f){p="A 10 10, 0, 0, 0,",v="A 10 10, 0, 0, 1,",y=10,m=10,d=I[o.branch].index;const s=c.yn.y&&(p="A 20 20, 0, 0, 0,",y=20,m=20,d=I[a.branch].index,_=`M ${c.x} ${c.y} L ${n.x-y} ${c.y} ${p} ${n.x} ${c.y-m} L ${n.x} ${n.y}`),c.y===n.y&&(d=I[a.branch].index,_=`M ${c.x} ${c.y} L ${c.x} ${n.y-y} ${p} ${c.x+m} ${n.y} L ${n.x} ${n.y}`);r.append("path").attr("d",_).attr("class","arrow arrow"+d%K)},ut=(r,a)=>{const o=r.append("g").attr("class","commit-arrows");Object.keys(a).forEach(h=>{const c=a[h];c.parents&&c.parents.length>0&&c.parents.forEach(n=>{mt(o,a[n],c,a)})})},pt=(r,a)=>{const o=pe().gitGraph,h=r.append("g");a.forEach((c,n)=>{const f=n%K,p=I[c.name].pos,v=h.append("line");v.attr("x1",0),v.attr("y1",p),v.attr("x2",se),v.attr("y2",p),v.attr("class","branch branch"+f),ie.push(p);let y=c.name;const m=lt(y),d=h.insert("rect"),s=h.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+f);s.node().appendChild(m);let C=m.getBBox();d.attr("class","branchLabelBkg label"+f).attr("rx",4).attr("ry",4).attr("x",-C.width-4-(o.rotateCommitLabel===!0?30:0)).attr("y",-C.height/2+8).attr("width",C.width+18).attr("height",C.height+4),s.attr("transform","translate("+(-C.width-14-(o.rotateCommitLabel===!0?30:0))+", "+(p-C.height/2-1)+")"),d.attr("transform","translate(-19, "+(p-C.height/2)+")")})},ft=function(r,a,o,h){ot();const c=pe(),n=c.gitGraph;G.debug("in gitgraph renderer",r+` -`,"id:",a,o),J=h.db.getCommits();const f=h.db.getBranchesAsObjArray();let p=0;f.forEach((y,m)=>{I[y.name]={pos:p,index:m},p+=50+(n.rotateCommitLabel?40:0)});const v=De(`[id="${a}"]`);_e(v,J,!1),n.showBranches&&pt(v,f),ut(v,J),_e(v,J,!0),Ve.insertTitle(v,"gitTitleText",n.titleTopMargin,h.db.getDiagramTitle()),ze(void 0,v,n.diagramPadding,n.useMaxWidth??c.useMaxWidth)},bt={draw:ft},gt=r=>` - .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(a=>` - .branch-label${a} { fill: ${r["gitBranchLabel"+a]}; } - .commit${a} { stroke: ${r["git"+a]}; fill: ${r["git"+a]}; } - .commit-highlight${a} { stroke: ${r["gitInv"+a]}; fill: ${r["gitInv"+a]}; } - .label${a} { fill: ${r["git"+a]}; } - .arrow${a} { stroke: ${r["git"+a]}; } - `).join(` -`)} - - .branch { - stroke-width: 1; - stroke: ${r.lineColor}; - stroke-dasharray: 2; - } - .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};} - .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; } - .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};} - .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; } - .tag-hole { fill: ${r.textColor}; } - - .commit-merge { - stroke: ${r.primaryColor}; - fill: ${r.primaryColor}; - } - .commit-reverse { - stroke: ${r.primaryColor}; - fill: ${r.primaryColor}; - stroke-width: 3; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${r.primaryColor}; - fill: ${r.primaryColor}; - } - - .arrow { stroke-width: 8; stroke-linecap: round; fill: none} - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${r.textColor}; - } -`,dt=gt,xt={parser:Be,db:nt,renderer:bt,styles:dt};export{xt as diagram}; -//# sourceMappingURL=gitGraphDiagram-1e960c50-nR2fIRcx.js.map diff --git a/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js.map b/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js.map deleted file mode 100644 index ee2457b..0000000 --- a/excalidraw/excalidraw-app/build/assets/gitGraphDiagram-1e960c50-nR2fIRcx.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"gitGraphDiagram-1e960c50-nR2fIRcx.js","sources":["../../../node_modules/mermaid/dist/gitGraphDiagram-1e960c50.js"],"sourcesContent":["import { c as getConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, r as setDiagramTitle, t as getDiagramTitle, m as mermaidAPI, l as log, e as common, v as clear$2, y as random, z as getConfig$1, u as utils, A as setupGraphViewbox } from \"./mermaid-b0ad2de1.js\";\nimport { select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 7], $V2 = [1, 5], $V3 = [1, 9], $V4 = [1, 6], $V5 = [2, 6], $V6 = [1, 16], $V7 = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], $V8 = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $V9 = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $Va = [1, 26], $Vb = [6, 8, 14, 50, 55], $Vc = [8, 14, 55], $Vd = [1, 53], $Ve = [1, 52], $Vf = [8, 14, 30, 33, 35, 38, 55], $Vg = [1, 67], $Vh = [1, 68], $Vi = [1, 69], $Vj = [8, 14, 33, 35, 42, 55];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"directive\": 5, \"GG\": 6, \"document\": 7, \"EOF\": 8, \":\": 9, \"DIR\": 10, \"options\": 11, \"body\": 12, \"OPT\": 13, \"NL\": 14, \"line\": 15, \"statement\": 16, \"commitStatement\": 17, \"mergeStatement\": 18, \"cherryPickStatement\": 19, \"acc_title\": 20, \"acc_title_value\": 21, \"acc_descr\": 22, \"acc_descr_value\": 23, \"acc_descr_multiline_value\": 24, \"section\": 25, \"branchStatement\": 26, \"CHECKOUT\": 27, \"ref\": 28, \"BRANCH\": 29, \"ORDER\": 30, \"NUM\": 31, \"CHERRY_PICK\": 32, \"COMMIT_ID\": 33, \"STR\": 34, \"COMMIT_TAG\": 35, \"EMPTYSTR\": 36, \"MERGE\": 37, \"COMMIT_TYPE\": 38, \"commitType\": 39, \"COMMIT\": 40, \"commit_arg\": 41, \"COMMIT_MSG\": 42, \"NORMAL\": 43, \"REVERSE\": 44, \"HIGHLIGHT\": 45, \"openDirective\": 46, \"typeDirective\": 47, \"closeDirective\": 48, \"argDirective\": 49, \"open_directive\": 50, \"type_directive\": 51, \"arg_directive\": 52, \"close_directive\": 53, \"ID\": 54, \";\": 55, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"GG\", 8: \"EOF\", 9: \":\", 10: \"DIR\", 13: \"OPT\", 14: \"NL\", 20: \"acc_title\", 21: \"acc_title_value\", 22: \"acc_descr\", 23: \"acc_descr_value\", 24: \"acc_descr_multiline_value\", 25: \"section\", 27: \"CHECKOUT\", 29: \"BRANCH\", 30: \"ORDER\", 31: \"NUM\", 32: \"CHERRY_PICK\", 33: \"COMMIT_ID\", 34: \"STR\", 35: \"COMMIT_TAG\", 36: \"EMPTYSTR\", 37: \"MERGE\", 38: \"COMMIT_TYPE\", 40: \"COMMIT\", 42: \"COMMIT_MSG\", 43: \"NORMAL\", 44: \"REVERSE\", 45: \"HIGHLIGHT\", 50: \"open_directive\", 51: \"type_directive\", 52: \"arg_directive\", 53: \"close_directive\", 54: \"ID\", 55: \";\" },\n productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n return $$[$0];\n case 4:\n return $$[$0 - 1];\n case 5:\n yy.setDirection($$[$0 - 3]);\n return $$[$0 - 1];\n case 7:\n yy.setOptions($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 8:\n $$[$0 - 1] += $$[$0];\n this.$ = $$[$0 - 1];\n break;\n case 10:\n this.$ = [];\n break;\n case 11:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 12:\n this.$ = $$[$0 - 1];\n break;\n case 17:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 18:\n case 19:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 20:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 22:\n yy.checkout($$[$0]);\n break;\n case 23:\n yy.branch($$[$0]);\n break;\n case 24:\n yy.branch($$[$0 - 2], $$[$0]);\n break;\n case 25:\n yy.cherryPick($$[$0], \"\", void 0);\n break;\n case 26:\n yy.cherryPick($$[$0 - 2], \"\", $$[$0]);\n break;\n case 27:\n case 29:\n yy.cherryPick($$[$0 - 2], \"\", \"\");\n break;\n case 28:\n yy.cherryPick($$[$0], \"\", $$[$0 - 2]);\n break;\n case 30:\n yy.merge($$[$0], \"\", \"\", \"\");\n break;\n case 31:\n yy.merge($$[$0 - 2], $$[$0], \"\", \"\");\n break;\n case 32:\n yy.merge($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 33:\n yy.merge($$[$0 - 2], \"\", \"\", $$[$0]);\n break;\n case 34:\n yy.merge($$[$0 - 4], $$[$0], \"\", $$[$0 - 2]);\n break;\n case 35:\n yy.merge($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 36:\n yy.merge($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 37:\n yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 38:\n yy.merge($$[$0 - 4], $$[$0 - 2], \"\", $$[$0]);\n break;\n case 39:\n yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 40:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 41:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 42:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 43:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 44:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 45:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 46:\n yy.commit($$[$0]);\n break;\n case 47:\n yy.commit(\"\", \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 48:\n yy.commit(\"\", \"\", $$[$0], \"\");\n break;\n case 49:\n yy.commit(\"\", \"\", $$[$0], $$[$0 - 2]);\n break;\n case 50:\n yy.commit(\"\", \"\", $$[$0 - 2], $$[$0]);\n break;\n case 51:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 52:\n yy.commit(\"\", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 53:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 54:\n yy.commit(\"\", $$[$0 - 2], $$[$0], \"\");\n break;\n case 55:\n yy.commit(\"\", $$[$0], $$[$0 - 2], \"\");\n break;\n case 56:\n yy.commit(\"\", $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 57:\n yy.commit(\"\", $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 58:\n yy.commit(\"\", $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 59:\n yy.commit(\"\", $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 60:\n yy.commit(\"\", $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 61:\n yy.commit(\"\", $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 62:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, \"\");\n break;\n case 63:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 64:\n yy.commit($$[$0 - 2], \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 65:\n yy.commit($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 66:\n yy.commit($$[$0], \"\", $$[$0 - 2], \"\");\n break;\n case 67:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, \"\");\n break;\n case 68:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 69:\n yy.commit($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 70:\n yy.commit($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 71:\n yy.commit($$[$0 - 2], \"\", $$[$0 - 4], $$[$0]);\n break;\n case 72:\n yy.commit($$[$0], \"\", $$[$0 - 4], $$[$0 - 2]);\n break;\n case 73:\n yy.commit($$[$0], \"\", $$[$0 - 2], $$[$0 - 4]);\n break;\n case 74:\n yy.commit($$[$0 - 2], \"\", $$[$0], $$[$0 - 4]);\n break;\n case 75:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 76:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 77:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], \"\");\n break;\n case 78:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], \"\");\n break;\n case 79:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], \"\");\n break;\n case 80:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], \"\");\n break;\n case 81:\n yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 82:\n yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 83:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 84:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 85:\n yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 86:\n yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);\n break;\n case 87:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 88:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 89:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 90:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 91:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 92:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 93:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);\n break;\n case 94:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);\n break;\n case 95:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);\n break;\n case 96:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 97:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);\n break;\n case 98:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 99:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 100:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);\n break;\n case 101:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 102:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 103:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);\n break;\n case 104:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 105:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);\n break;\n case 106:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 107:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 108:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 109:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);\n break;\n case 110:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 111:\n this.$ = \"\";\n break;\n case 112:\n this.$ = $$[$0];\n break;\n case 113:\n this.$ = yy.commitType.NORMAL;\n break;\n case 114:\n this.$ = yy.commitType.REVERSE;\n break;\n case 115:\n this.$ = yy.commitType.HIGHLIGHT;\n break;\n case 118:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 119:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 120:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 121:\n yy.parseDirective(\"}%%\", \"close_directive\", \"gitGraph\");\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 7: 12, 8: $V5, 9: [1, 13], 10: [1, 14], 11: 15, 14: $V6 }, o($V7, [2, 124]), o($V7, [2, 125]), o($V7, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: $V5, 11: 15, 14: $V6 }, { 9: [1, 21] }, o($V8, [2, 10], { 12: 22, 13: [1, 23] }), o($V9, [2, 9]), { 9: [1, 25], 48: 24, 53: $Va }, o([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: $V5, 11: 15, 14: $V6 }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, o($V9, [2, 8]), o($Vb, [2, 116]), { 49: 45, 52: [1, 46] }, o($Vb, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, o($V8, [2, 11]), { 4: 48, 8: $V1, 14: $V2, 55: $V4 }, o($V8, [2, 13]), o($Vc, [2, 14]), o($Vc, [2, 15]), o($Vc, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, o($Vc, [2, 19]), o($Vc, [2, 20]), o($Vc, [2, 21]), { 28: 51, 34: $Vd, 54: $Ve }, o($Vc, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: $Vd, 54: $Ve }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: $Vd, 54: $Ve }, { 48: 64, 53: $Va }, { 53: [2, 120] }, { 1: [2, 5] }, o($V8, [2, 12]), o($Vc, [2, 17]), o($Vc, [2, 18]), o($Vc, [2, 22]), o($Vf, [2, 122]), o($Vf, [2, 123]), o($Vc, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 70] }, { 34: [1, 71] }, o($Vc, [2, 112]), o($Vc, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, o($Vc, [2, 23], { 30: [1, 78] }), o($Vb, [2, 117]), o($Vc, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), o($Vc, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), o($Vj, [2, 113]), o($Vj, [2, 114]), o($Vj, [2, 115]), o($Vc, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), o($Vc, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 93] }, o($Vc, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 109] }, o($Vc, [2, 31], { 35: [1, 111], 38: [1, 110] }), o($Vc, [2, 32], { 33: [1, 113], 35: [1, 112] }), o($Vc, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, o($Vc, [2, 24]), o($Vc, [2, 49], { 33: [1, 120], 42: [1, 121] }), o($Vc, [2, 53], { 38: [1, 122], 42: [1, 123] }), o($Vc, [2, 63], { 33: [1, 125], 38: [1, 124] }), o($Vc, [2, 50], { 33: [1, 126], 42: [1, 127] }), o($Vc, [2, 55], { 35: [1, 128], 42: [1, 129] }), o($Vc, [2, 66], { 33: [1, 131], 35: [1, 130] }), o($Vc, [2, 52], { 38: [1, 132], 42: [1, 133] }), o($Vc, [2, 54], { 35: [1, 134], 42: [1, 135] }), o($Vc, [2, 67], { 35: [1, 137], 38: [1, 136] }), o($Vc, [2, 64], { 33: [1, 139], 38: [1, 138] }), o($Vc, [2, 65], { 33: [1, 141], 35: [1, 140] }), o($Vc, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 26]), o($Vc, [2, 27]), o($Vc, [2, 28]), o($Vc, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 153] }, { 39: 154, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 167] }, { 39: 168, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 173] }, o($Vc, [2, 37], { 35: [1, 174] }), o($Vc, [2, 38], { 38: [1, 175] }), o($Vc, [2, 36], { 33: [1, 176] }), o($Vc, [2, 39], { 35: [1, 177] }), o($Vc, [2, 34], { 38: [1, 178] }), o($Vc, [2, 35], { 33: [1, 179] }), o($Vc, [2, 60], { 42: [1, 180] }), o($Vc, [2, 73], { 33: [1, 181] }), o($Vc, [2, 61], { 42: [1, 182] }), o($Vc, [2, 84], { 38: [1, 183] }), o($Vc, [2, 74], { 33: [1, 184] }), o($Vc, [2, 83], { 38: [1, 185] }), o($Vc, [2, 59], { 42: [1, 186] }), o($Vc, [2, 72], { 33: [1, 187] }), o($Vc, [2, 58], { 42: [1, 188] }), o($Vc, [2, 78], { 35: [1, 189] }), o($Vc, [2, 71], { 33: [1, 190] }), o($Vc, [2, 77], { 35: [1, 191] }), o($Vc, [2, 57], { 42: [1, 192] }), o($Vc, [2, 85], { 38: [1, 193] }), o($Vc, [2, 56], { 42: [1, 194] }), o($Vc, [2, 79], { 35: [1, 195] }), o($Vc, [2, 80], { 35: [1, 196] }), o($Vc, [2, 86], { 38: [1, 197] }), o($Vc, [2, 70], { 33: [1, 198] }), o($Vc, [2, 81], { 38: [1, 199] }), o($Vc, [2, 69], { 33: [1, 200] }), o($Vc, [2, 75], { 35: [1, 201] }), o($Vc, [2, 76], { 35: [1, 202] }), o($Vc, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 214] }, { 39: 215, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 228] }, { 39: 229, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 40]), o($Vc, [2, 42]), o($Vc, [2, 41]), o($Vc, [2, 43]), o($Vc, [2, 45]), o($Vc, [2, 44]), o($Vc, [2, 101]), o($Vc, [2, 102]), o($Vc, [2, 99]), o($Vc, [2, 100]), o($Vc, [2, 104]), o($Vc, [2, 103]), o($Vc, [2, 108]), o($Vc, [2, 107]), o($Vc, [2, 106]), o($Vc, [2, 105]), o($Vc, [2, 110]), o($Vc, [2, 109]), o($Vc, [2, 98]), o($Vc, [2, 97]), o($Vc, [2, 96]), o($Vc, [2, 95]), o($Vc, [2, 93]), o($Vc, [2, 94]), o($Vc, [2, 92]), o($Vc, [2, 91]), o($Vc, [2, 90]), o($Vc, [2, 89]), o($Vc, [2, 87]), o($Vc, [2, 88])],\n defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 50;\n case 1:\n this.begin(\"type_directive\");\n return 51;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 9;\n case 3:\n this.popState();\n this.popState();\n return 53;\n case 4:\n return 52;\n case 5:\n this.begin(\"acc_title\");\n return 20;\n case 6:\n this.popState();\n return \"acc_title_value\";\n case 7:\n this.begin(\"acc_descr\");\n return 22;\n case 8:\n this.popState();\n return \"acc_descr_value\";\n case 9:\n this.begin(\"acc_descr_multiline\");\n break;\n case 10:\n this.popState();\n break;\n case 11:\n return \"acc_descr_multiline_value\";\n case 12:\n return 14;\n case 13:\n break;\n case 14:\n break;\n case 15:\n return 6;\n case 16:\n return 40;\n case 17:\n return 33;\n case 18:\n return 38;\n case 19:\n return 42;\n case 20:\n return 43;\n case 21:\n return 44;\n case 22:\n return 45;\n case 23:\n return 35;\n case 24:\n return 29;\n case 25:\n return 30;\n case 26:\n return 37;\n case 27:\n return 32;\n case 28:\n return 27;\n case 29:\n return 10;\n case 30:\n return 10;\n case 31:\n return 9;\n case 32:\n return \"CARET\";\n case 33:\n this.begin(\"options\");\n break;\n case 34:\n this.popState();\n break;\n case 35:\n return 13;\n case 36:\n return 36;\n case 37:\n this.begin(\"string\");\n break;\n case 38:\n this.popState();\n break;\n case 39:\n return 34;\n case 40:\n return 31;\n case 41:\n return 54;\n case 42:\n return 8;\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:gitGraph\\b)/i, /^(?:commit(?=\\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\\b)/i, /^(?:REVERSE\\b)/i, /^(?:HIGHLIGHT\\b)/i, /^(?:tag:)/i, /^(?:branch(?=\\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\\s|$))/i, /^(?:cherry-pick(?=\\s|$))/i, /^(?:checkout(?=\\s|$))/i, /^(?:LR\\b)/i, /^(?:BT\\b)/i, /^(?::)/i, /^(?:\\^)/i, /^(?:options\\r?\\n)/i, /^(?:[ \\r\\n\\t]+end\\b)/i, /^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i, /^(?:[\"][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[0-9]+(?=\\s|$))/i, /^(?:\\w([-\\./\\w]*[-\\w])?)/i, /^(?:$)/i, /^(?:\\s+)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [10, 11], \"inclusive\": false }, \"acc_descr\": { \"rules\": [8], \"inclusive\": false }, \"acc_title\": { \"rules\": [6], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"options\": { \"rules\": [34, 35], \"inclusive\": false }, \"string\": { \"rules\": [38, 39], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst gitGraphParser = parser;\nlet mainBranchName = getConfig().gitGraph.mainBranchName;\nlet mainBranchOrder = getConfig().gitGraph.mainBranchOrder;\nlet commits = {};\nlet head = null;\nlet branchesConfig = {};\nbranchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };\nlet branches = {};\nbranches[mainBranchName] = head;\nlet curBranch = mainBranchName;\nlet direction = \"LR\";\nlet seq = 0;\nfunction getId() {\n return random({ length: 7 });\n}\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nfunction uniqBy(list, fn) {\n const recordMap = /* @__PURE__ */ Object.create(null);\n return list.reduce((out, item) => {\n const key = fn(item);\n if (!recordMap[key]) {\n recordMap[key] = true;\n out.push(item);\n }\n return out;\n }, []);\n}\nconst setDirection = function(dir) {\n direction = dir;\n};\nlet options = {};\nconst setOptions = function(rawOptString) {\n log.debug(\"options str\", rawOptString);\n rawOptString = rawOptString && rawOptString.trim();\n rawOptString = rawOptString || \"{}\";\n try {\n options = JSON.parse(rawOptString);\n } catch (e) {\n log.error(\"error while parsing gitGraph options\", e.message);\n }\n};\nconst getOptions = function() {\n return options;\n};\nconst commit = function(msg, id, type, tag) {\n log.debug(\"Entering commit:\", msg, id, type, tag);\n id = common.sanitizeText(id, getConfig());\n msg = common.sanitizeText(msg, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n const commit2 = {\n id: id ? id : seq + \"-\" + getId(),\n message: msg,\n seq: seq++,\n type: type ? type : commitType$1.NORMAL,\n tag: tag ? tag : \"\",\n parents: head == null ? [] : [head.id],\n branch: curBranch\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(\"in pushCommit \" + commit2.id);\n};\nconst branch = function(name, order) {\n name = common.sanitizeText(name, getConfig());\n if (branches[name] === void 0) {\n branches[name] = head != null ? head.id : null;\n branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null };\n checkout(name);\n log.debug(\"in createBranch\");\n } else {\n let error = new Error(\n 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using \"checkout ' + name + '\")'\n );\n error.hash = {\n text: \"branch \" + name,\n token: \"branch \" + name,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"checkout ' + name + '\"']\n };\n throw error;\n }\n};\nconst merge = function(otherBranch, custom_id, override_type, custom_tag) {\n otherBranch = common.sanitizeText(otherBranch, getConfig());\n custom_id = common.sanitizeText(custom_id, getConfig());\n const currentCommit = commits[branches[curBranch]];\n const otherCommit = commits[branches[otherBranch]];\n if (curBranch === otherBranch) {\n let error = new Error('Incorrect usage of \"merge\". Cannot merge a branch to itself');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"commit\"]\n };\n throw error;\n } else if (branches[otherBranch] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") does not exist\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch \" + otherBranch]\n };\n throw error;\n } else if (otherCommit === void 0 || !otherCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"commit\"']\n };\n throw error;\n } else if (currentCommit === otherCommit) {\n let error = new Error('Incorrect usage of \"merge\". Both branches have same head');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (custom_id && commits[custom_id] !== void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Commit with id:' + custom_id + \" already exists, use different custom Id\"\n );\n error.hash = {\n text: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n token: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\n \"merge \" + otherBranch + \" \" + custom_id + \"_UNIQUE \" + override_type + \" \" + custom_tag\n ]\n };\n throw error;\n }\n const commit2 = {\n id: custom_id ? custom_id : seq + \"-\" + getId(),\n message: \"merged branch \" + otherBranch + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, branches[otherBranch]],\n branch: curBranch,\n type: commitType$1.MERGE,\n customType: override_type,\n customId: custom_id ? true : false,\n tag: custom_tag ? custom_tag : \"\"\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in mergeBranch\");\n};\nconst cherryPick = function(sourceId, targetId, tag) {\n log.debug(\"Entering cherryPick:\", sourceId, targetId, tag);\n sourceId = common.sanitizeText(sourceId, getConfig());\n targetId = common.sanitizeText(targetId, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n if (!sourceId || commits[sourceId] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit id should exist and provided'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n let sourceCommit = commits[sourceId];\n let sourceCommitBranch = sourceCommit.branch;\n if (sourceCommit.type === commitType$1.MERGE) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit should not be a merge commit'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n if (!targetId || commits[targetId] === void 0) {\n if (sourceCommitBranch === curBranch) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit is already on current branch'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const currentCommit = commits[branches[curBranch]];\n if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"cherry-pick\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const commit2 = {\n id: seq + \"-\" + getId(),\n message: \"cherry-picked \" + sourceCommit + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, sourceCommit.id],\n branch: curBranch,\n type: commitType$1.CHERRY_PICK,\n tag: tag ?? \"cherry-pick:\" + sourceCommit.id\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in cherryPick\");\n }\n};\nconst checkout = function(branch2) {\n branch2 = common.sanitizeText(branch2, getConfig());\n if (branches[branch2] === void 0) {\n let error = new Error(\n 'Trying to checkout branch which is not yet created. (Help try using \"branch ' + branch2 + '\")'\n );\n error.hash = {\n text: \"checkout \" + branch2,\n token: \"checkout \" + branch2,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"branch ' + branch2 + '\"']\n };\n throw error;\n } else {\n curBranch = branch2;\n const id = branches[curBranch];\n head = commits[id];\n }\n};\nfunction upsert(arr, key, newVal) {\n const index = arr.indexOf(key);\n if (index === -1) {\n arr.push(newVal);\n } else {\n arr.splice(index, 1, newVal);\n }\n}\nfunction prettyPrintCommitHistory(commitArr) {\n const commit2 = commitArr.reduce((out, commit3) => {\n if (out.seq > commit3.seq) {\n return out;\n }\n return commit3;\n }, commitArr[0]);\n let line = \"\";\n commitArr.forEach(function(c) {\n if (c === commit2) {\n line += \"\t*\";\n } else {\n line += \"\t|\";\n }\n });\n const label = [line, commit2.id, commit2.seq];\n for (let branch2 in branches) {\n if (branches[branch2] === commit2.id) {\n label.push(branch2);\n }\n }\n log.debug(label.join(\" \"));\n if (commit2.parents && commit2.parents.length == 2) {\n const newCommit = commits[commit2.parents[0]];\n upsert(commitArr, commit2, newCommit);\n commitArr.push(commits[commit2.parents[1]]);\n } else if (commit2.parents.length == 0) {\n return;\n } else {\n const nextCommit = commits[commit2.parents];\n upsert(commitArr, commit2, nextCommit);\n }\n commitArr = uniqBy(commitArr, (c) => c.id);\n prettyPrintCommitHistory(commitArr);\n}\nconst prettyPrint = function() {\n log.debug(commits);\n const node = getCommitsArray()[0];\n prettyPrintCommitHistory([node]);\n};\nconst clear$1 = function() {\n commits = {};\n head = null;\n let mainBranch = getConfig().gitGraph.mainBranchName;\n let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder;\n branches = {};\n branches[mainBranch] = null;\n branchesConfig = {};\n branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };\n curBranch = mainBranch;\n seq = 0;\n clear$2();\n};\nconst getBranchesAsObjArray = function() {\n const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => {\n if (branchConfig.order !== null) {\n return branchConfig;\n }\n return {\n ...branchConfig,\n order: parseFloat(`0.${i}`, 10)\n };\n }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name }));\n return branchesArray;\n};\nconst getBranches = function() {\n return branches;\n};\nconst getCommits = function() {\n return commits;\n};\nconst getCommitsArray = function() {\n const commitArr = Object.keys(commits).map(function(key) {\n return commits[key];\n });\n commitArr.forEach(function(o) {\n log.debug(o.id);\n });\n commitArr.sort((a, b) => a.seq - b.seq);\n return commitArr;\n};\nconst getCurrentBranch = function() {\n return curBranch;\n};\nconst getDirection = function() {\n return direction;\n};\nconst getHead = function() {\n return head;\n};\nconst commitType$1 = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst gitGraphDb = {\n parseDirective,\n getConfig: () => getConfig().gitGraph,\n setDirection,\n setOptions,\n getOptions,\n commit,\n branch,\n merge,\n cherryPick,\n checkout,\n //reset,\n prettyPrint,\n clear: clear$1,\n getBranchesAsObjArray,\n getBranches,\n getCommits,\n getCommitsArray,\n getCurrentBranch,\n getDirection,\n getHead,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commitType: commitType$1\n};\nlet allCommitsDict = {};\nconst commitType = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst THEME_COLOR_LIMIT = 8;\nlet branchPos = {};\nlet commitPos = {};\nlet lanes = [];\nlet maxPos = 0;\nconst clear = () => {\n branchPos = {};\n commitPos = {};\n allCommitsDict = {};\n maxPos = 0;\n lanes = [];\n};\nconst drawText = (txt) => {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n let rows = [];\n if (typeof txt === \"string\") {\n rows = txt.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(txt)) {\n rows = txt;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n tspan.setAttribute(\"class\", \"row\");\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n};\nconst drawCommits = (svg, commits2, modifyGraph) => {\n const gitGraphConfig = getConfig$1().gitGraph;\n const gBullets = svg.append(\"g\").attr(\"class\", \"commit-bullets\");\n const gLabels = svg.append(\"g\").attr(\"class\", \"commit-labels\");\n let pos = 0;\n const keys = Object.keys(commits2);\n const sortedKeys = keys.sort((a, b) => {\n return commits2[a].seq - commits2[b].seq;\n });\n sortedKeys.forEach((key) => {\n const commit2 = commits2[key];\n const y = branchPos[commit2.branch].pos;\n const x = pos + 10;\n if (modifyGraph) {\n let typeClass;\n let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== \"\" ? commit2.customType : commit2.type;\n switch (commitSymbolType) {\n case commitType.NORMAL:\n typeClass = \"commit-normal\";\n break;\n case commitType.REVERSE:\n typeClass = \"commit-reverse\";\n break;\n case commitType.HIGHLIGHT:\n typeClass = \"commit-highlight\";\n break;\n case commitType.MERGE:\n typeClass = \"commit-merge\";\n break;\n case commitType.CHERRY_PICK:\n typeClass = \"commit-cherry-pick\";\n break;\n default:\n typeClass = \"commit-normal\";\n }\n if (commitSymbolType === commitType.HIGHLIGHT) {\n const circle = gBullets.append(\"rect\");\n circle.attr(\"x\", x - 10);\n circle.attr(\"y\", y - 10);\n circle.attr(\"height\", 20);\n circle.attr(\"width\", 20);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`\n );\n gBullets.append(\"rect\").attr(\"x\", x - 6).attr(\"y\", y - 6).attr(\"height\", 12).attr(\"width\", 12).attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`\n );\n } else if (commitSymbolType === commitType.CHERRY_PICK) {\n gBullets.append(\"circle\").attr(\"cx\", x).attr(\"cy\", y).attr(\"r\", 10).attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x - 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x + 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x + 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x - 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n } else {\n const circle = gBullets.append(\"circle\");\n circle.attr(\"cx\", x);\n circle.attr(\"cy\", y);\n circle.attr(\"r\", commit2.type === commitType.MERGE ? 9 : 10);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n if (commitSymbolType === commitType.MERGE) {\n const circle2 = gBullets.append(\"circle\");\n circle2.attr(\"cx\", x);\n circle2.attr(\"cy\", y);\n circle2.attr(\"r\", 6);\n circle2.attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n if (commitSymbolType === commitType.REVERSE) {\n const cross = gBullets.append(\"path\");\n cross.attr(\"d\", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n }\n }\n commitPos[commit2.id] = { x: pos + 10, y };\n if (modifyGraph) {\n const px = 4;\n const py = 2;\n if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {\n const wrapper = gLabels.append(\"g\");\n const labelBkg = wrapper.insert(\"rect\").attr(\"class\", \"commit-label-bkg\");\n const text = wrapper.append(\"text\").attr(\"x\", pos).attr(\"y\", y + 25).attr(\"class\", \"commit-label\").text(commit2.id);\n let bbox = text.node().getBBox();\n labelBkg.attr(\"x\", pos + 10 - bbox.width / 2 - py).attr(\"y\", y + 13.5).attr(\"width\", bbox.width + 2 * py).attr(\"height\", bbox.height + 2 * py);\n text.attr(\"x\", pos + 10 - bbox.width / 2);\n if (gitGraphConfig.rotateCommitLabel) {\n let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;\n let r_y = 10 + bbox.width / 25 * 8.5;\n wrapper.attr(\n \"transform\",\n \"translate(\" + r_x + \", \" + r_y + \") rotate(-45, \" + pos + \", \" + y + \")\"\n );\n }\n }\n if (commit2.tag) {\n const rect = gLabels.insert(\"polygon\");\n const hole = gLabels.append(\"circle\");\n const tag = gLabels.append(\"text\").attr(\"y\", y - 16).attr(\"class\", \"tag-label\").text(commit2.tag);\n let tagBbox = tag.node().getBBox();\n tag.attr(\"x\", pos + 10 - tagBbox.width / 2);\n const h2 = tagBbox.height / 2;\n const ly = y - 19.2;\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${pos - tagBbox.width / 2 - px / 2},${ly + py}\n ${pos - tagBbox.width / 2 - px / 2},${ly - py}\n ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}\n ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}\n ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}\n ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`\n );\n hole.attr(\"cx\", pos - tagBbox.width / 2 + px / 2).attr(\"cy\", ly).attr(\"r\", 1.5).attr(\"class\", \"tag-hole\");\n }\n }\n pos += 50;\n if (pos > maxPos) {\n maxPos = pos;\n }\n });\n};\nconst hasOverlappingCommits = (commit1, commit2, allCommits) => {\n const keys = Object.keys(allCommits);\n const overlappingComits = keys.filter((key) => {\n return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;\n });\n return overlappingComits.length > 0;\n};\nconst findLane = (y1, y2, depth = 0) => {\n const candidate = y1 + Math.abs(y1 - y2) / 2;\n if (depth > 5) {\n return candidate;\n }\n let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);\n if (ok) {\n lanes.push(candidate);\n return candidate;\n }\n const diff = Math.abs(y1 - y2);\n return findLane(y1, y2 - diff / 5, depth + 1);\n};\nconst drawArrow = (svg, commit1, commit2, allCommits) => {\n const p1 = commitPos[commit1.id];\n const p2 = commitPos[commit2.id];\n const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);\n let arc = \"\";\n let arc2 = \"\";\n let radius = 0;\n let offset = 0;\n let colorClassNum = branchPos[commit2.branch].index;\n let lineDef;\n if (overlappingCommits) {\n arc = \"A 10 10, 0, 0, 0,\";\n arc2 = \"A 10 10, 0, 0, 1,\";\n radius = 10;\n offset = 10;\n colorClassNum = branchPos[commit2.branch].index;\n const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);\n if (p1.y < p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n arc = \"A 20 20, 0, 0, 0,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit2.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n if (p1.y > p2.y) {\n arc = \"A 20 20, 0, 0, 0,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n }\n if (p1.y === p2.y) {\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n svg.append(\"path\").attr(\"d\", lineDef).attr(\"class\", \"arrow arrow\" + colorClassNum % THEME_COLOR_LIMIT);\n};\nconst drawArrows = (svg, commits2) => {\n const gArrows = svg.append(\"g\").attr(\"class\", \"commit-arrows\");\n Object.keys(commits2).forEach((key) => {\n const commit2 = commits2[key];\n if (commit2.parents && commit2.parents.length > 0) {\n commit2.parents.forEach((parent) => {\n drawArrow(gArrows, commits2[parent], commit2, commits2);\n });\n }\n });\n};\nconst drawBranches = (svg, branches2) => {\n const gitGraphConfig = getConfig$1().gitGraph;\n const g = svg.append(\"g\");\n branches2.forEach((branch2, index) => {\n const adjustIndexForTheme = index % THEME_COLOR_LIMIT;\n const pos = branchPos[branch2.name].pos;\n const line = g.append(\"line\");\n line.attr(\"x1\", 0);\n line.attr(\"y1\", pos);\n line.attr(\"x2\", maxPos);\n line.attr(\"y2\", pos);\n line.attr(\"class\", \"branch branch\" + adjustIndexForTheme);\n lanes.push(pos);\n let name = branch2.name;\n const labelElement = drawText(name);\n const bkg = g.insert(\"rect\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\" + adjustIndexForTheme);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n bkg.attr(\"class\", \"branchLabelBkg label\" + adjustIndexForTheme).attr(\"rx\", 4).attr(\"ry\", 4).attr(\"x\", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr(\"y\", -bbox.height / 2 + 8).attr(\"width\", bbox.width + 18).attr(\"height\", bbox.height + 4);\n label.attr(\n \"transform\",\n \"translate(\" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + \", \" + (pos - bbox.height / 2 - 1) + \")\"\n );\n bkg.attr(\"transform\", \"translate(-19, \" + (pos - bbox.height / 2) + \")\");\n });\n};\nconst draw = function(txt, id, ver, diagObj) {\n clear();\n const conf = getConfig$1();\n const gitGraphConfig = conf.gitGraph;\n log.debug(\"in gitgraph renderer\", txt + \"\\n\", \"id:\", id, ver);\n allCommitsDict = diagObj.db.getCommits();\n const branches2 = diagObj.db.getBranchesAsObjArray();\n let pos = 0;\n branches2.forEach((branch2, index) => {\n branchPos[branch2.name] = { pos, index };\n pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);\n });\n const diagram2 = select(`[id=\"${id}\"]`);\n drawCommits(diagram2, allCommitsDict, false);\n if (gitGraphConfig.showBranches) {\n drawBranches(diagram2, branches2);\n }\n drawArrows(diagram2, allCommitsDict);\n drawCommits(diagram2, allCommitsDict, true);\n utils.insertTitle(\n diagram2,\n \"gitTitleText\",\n gitGraphConfig.titleTopMargin,\n diagObj.db.getDiagramTitle()\n );\n setupGraphViewbox(\n void 0,\n diagram2,\n gitGraphConfig.diagramPadding,\n gitGraphConfig.useMaxWidth ?? conf.useMaxWidth\n );\n};\nconst gitGraphRenderer = {\n draw\n};\nconst getStyles = (options2) => `\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(\n (i) => `\n .branch-label${i} { fill: ${options2[\"gitBranchLabel\" + i]}; }\n .commit${i} { stroke: ${options2[\"git\" + i]}; fill: ${options2[\"git\" + i]}; }\n .commit-highlight${i} { stroke: ${options2[\"gitInv\" + i]}; fill: ${options2[\"gitInv\" + i]}; }\n .label${i} { fill: ${options2[\"git\" + i]}; }\n .arrow${i} { stroke: ${options2[\"git\" + i]}; }\n `\n).join(\"\\n\")}\n\n .branch {\n stroke-width: 1;\n stroke: ${options2.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}\n .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}\n .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }\n .tag-hole { fill: ${options2.textColor}; }\n\n .commit-merge {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n .commit-reverse {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options2.textColor};\n }\n`;\nconst gitGraphStyles = getStyles;\nconst diagram = {\n parser: gitGraphParser,\n db: gitGraphDb,\n renderer: gitGraphRenderer,\n styles: gitGraphStyles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","gitGraphParser","mainBranchName","getConfig","mainBranchOrder","commits","head","branchesConfig","branches","curBranch","direction","seq","getId","random","parseDirective","statement","context","type","mermaidAPI","uniqBy","list","fn","recordMap","out","item","key","setDirection","dir","options","setOptions","rawOptString","log","e","getOptions","commit","msg","id","tag","common","commit2","commitType$1","branch","name","order","checkout","merge","otherBranch","custom_id","override_type","custom_tag","currentCommit","otherCommit","cherryPick","sourceId","targetId","sourceCommit","sourceCommitBranch","branch2","upsert","arr","newVal","prettyPrintCommitHistory","commitArr","commit3","line","label","newCommit","nextCommit","prettyPrint","node","getCommitsArray","clear$1","mainBranch","mainBranchOrder2","clear$2","getBranchesAsObjArray","branchConfig","b","getBranches","getCommits","getCurrentBranch","getDirection","getHead","gitGraphDb","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","allCommitsDict","commitType","THEME_COLOR_LIMIT","branchPos","commitPos","lanes","maxPos","clear","drawText","txt","svgLabel","rows","row","tspan","drawCommits","svg","commits2","modifyGraph","gitGraphConfig","getConfig$1","gBullets","gLabels","pos","a","y","x","typeClass","commitSymbolType","circle","circle2","wrapper","labelBkg","text","bbox","r_x","r_y","rect","hole","tagBbox","h2","ly","hasOverlappingCommits","commit1","allCommits","findLane","y1","y2","depth","candidate","lane","diff","drawArrow","p1","p2","overlappingCommits","arc","arc2","radius","offset","colorClassNum","lineDef","lineY","drawArrows","gArrows","parent","drawBranches","branches2","g","adjustIndexForTheme","labelElement","bkg","draw","ver","diagObj","conf","diagram2","select","utils","setupGraphViewbox","gitGraphRenderer","getStyles","options2","gitGraphStyles","diagram"],"mappings":"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AAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,C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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js b/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js deleted file mode 100644 index a1f24ee..0000000 --- a/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! image-blob-reduce 3.0.1 https://github.com/nodeca/image-blob-reduce @license MIT */var $=function(I){for(var d,h=1;h=0,wasm:a.indexOf("wasm")>=0};c.call(this,n),this.features={js:n.js,wasm:n.wasm&&this.has_wasm()},this.use(r),this.use(t)}g(e,c),e.prototype.resizeAndUnsharp=function(a,n){var s=this.resize(a,n);return a.unsharpAmount&&this.unsharp_mask(s,a.toWidth,a.toHeight,a.unsharpAmount,a.unsharpRadius,a.unsharpThreshold),s},h.exports=e},{"./mm_resize":4,"./mm_unsharp_mask":9,inherits:19,multimath:20}],2:[function(d,h,x){function g(t){return t<0?0:t>255?255:t}function c(t,e,i,a,n,s){var f,u,l,y,m,b,B,C,F,O,E,k=0,R=0;for(F=0;F0;B--)E=s[m++],y=y+E*t[C+3]|0,l=l+E*t[C+2]|0,u=u+E*t[C+1]|0,f=f+E*t[C]|0,C=C+4|0;e[R+3]=g(y+8192>>14),e[R+2]=g(l+8192>>14),e[R+1]=g(u+8192>>14),e[R]=g(f+8192>>14),R=R+a*4|0}R=(F+1)*4|0,k=(F+1)*i*4|0}}function r(t,e,i,a,n,s){var f,u,l,y,m,b,B,C,F,O,E,k=0,R=0;for(F=0;F0;B--)E=s[m++],y=y+E*t[C+3]|0,l=l+E*t[C+2]|0,u=u+E*t[C+1]|0,f=f+E*t[C]|0,C=C+4|0;e[R+3]=g(y+8192>>14),e[R+2]=g(l+8192>>14),e[R+1]=g(u+8192>>14),e[R]=g(f+8192>>14),R=R+a*4|0}R=(F+1)*4|0,k=(F+1)*i*4|0}}h.exports={convolveHorizontally:c,convolveVertically:r}},{}],3:[function(d,h,x){h.exports="AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEXA2AAAGAGf39/f39/AGAHf39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMEAwABAgYGAX8AQQALB1cFEV9fd2FzbV9jYWxsX2N0b3JzAAAIY29udm9sdmUAAQpjb252b2x2ZUhWAAIMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAK7AMDAwABC8YDAQ9/AkAgA0UNACAERQ0AA0AgDCENQQAhE0EAIQcDQCAHQQJqIQYCfyAHQQF0IAVqIgcuAQIiFEUEQEGAwAAhCEGAwAAhCUGAwAAhCkGAwAAhCyAGDAELIBIgBy4BAGohCEEAIQsgFCEHQQAhDiAGIQlBACEPQQAhEANAIAUgCUEBdGouAQAiESAAIAhBAnRqKAIAIgpBGHZsIBBqIRAgCkH/AXEgEWwgC2ohCyAKQRB2Qf8BcSARbCAPaiEPIApBCHZB/wFxIBFsIA5qIQ4gCEEBaiEIIAlBAWohCSAHQQFrIgcNAAsgC0GAQGshCCAOQYBAayEJIA9BgEBrIQogEEGAQGshCyAGIBRqCyEHIAEgDUECdGogCUEOdSIGQf8BIAZB/wFIGyIGQQAgBkEAShtBCHRBgP4DcSAKQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EQdEGAgPwHcSALQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobcjYCACADIA1qIQ0gE0EBaiITIARHDQALIAxBAWoiDCACbCESIAMgDEcNAAsLCx4AQQAgAiADIAQgBSAAEAEgAkEAIAQgBSAGIAEQAQs="},{}],4:[function(d,h,x){h.exports={name:"resize",fn:d("./resize"),wasm_fn:d("./resize_wasm"),wasm_src:d("./convolve_wasm_base64")}},{"./convolve_wasm_base64":3,"./resize":5,"./resize_wasm":8}],5:[function(d,h,x){var g=d("./resize_filter_gen"),c=d("./convolve").convolveHorizontally,r=d("./convolve").convolveVertically;function t(e,i,a){for(var n=3,s=i*a*4|0;n"u"?3:i.quality,F=i.alpha||!1,O=g(C,n,f,l,m),E=g(C,s,u,y,b),k=new Uint8Array(f*s*4);return c(a,k,n,s,f,O),r(k,B,s,f,u,E),F||t(B,f,u),B}},{"./convolve":2,"./resize_filter_gen":6}],6:[function(d,h,x){var g=d("./resize_filter_info"),c=14;function r(t){return Math.round(t*((1<>1]+=r(1-P),o=0;o0&&E[p]===0;)p--;if(_=B+o,v=p-o+1,U[Q++]=_,U[Q++]=v,!M)U.set(E.subarray(o,p+1),Q),Q+=v;else for(D=o;D<=p;D++)U[Q++]=E[D]}else U[Q++]=0,U[Q++]=0}return U}},{"./resize_filter_info":7}],7:[function(d,h,x){h.exports=[{win:.5,filter:function(c){return c>=-.5&&c<.5?1:0}},{win:1,filter:function(c){if(c<=-1||c>=1)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*(.54+.46*Math.cos(r/1))}},{win:2,filter:function(c){if(c<=-2||c>=2)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*Math.sin(r/2)/(r/2)}},{win:3,filter:function(c){if(c<=-3||c>=3)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*Math.sin(r/3)/(r/3)}}]},{}],8:[function(d,h,x){var g=d("./resize_filter_gen");function c(i,a,n){for(var s=3,f=a*n*4|0;s>8&255}}h.exports=function(a){var n=a.src,s=a.width,f=a.height,u=a.toWidth,l=a.toHeight,y=a.scaleX||a.toWidth/a.width,m=a.scaleY||a.toHeight/a.height,b=a.offsetX||0,B=a.offsetY||0,C=a.dest||new Uint8Array(u*l*4),F=typeof a.quality>"u"?3:a.quality,O=a.alpha||!1,E=g(F,s,u,y,b),k=g(F,f,l,m,B),R=0,D=this.__align(R+Math.max(n.byteLength,C.byteLength)),S=this.__align(D+f*u*4),P=this.__align(S+E.byteLength),G=P+k.byteLength,o=this.__instance("resize",G),p=new Uint8Array(this.__memory.buffer),_=new Uint32Array(this.__memory.buffer),v=new Uint32Array(n.buffer);_.set(v),e(E,p,S),e(k,p,P);var w=o.exports.convolveHV||o.exports._convolveHV;w(S,P,D,s,f,u,l);var U=new Uint32Array(C.buffer);return U.set(new Uint32Array(this.__memory.buffer,0,l*u)),O||c(C,u,l),C}},{"./resize_filter_gen":6}],9:[function(d,h,x){h.exports={name:"unsharp_mask",fn:d("./unsharp_mask"),wasm_fn:d("./unsharp_mask_wasm"),wasm_src:d("./unsharp_mask_wasm_base64")}},{"./unsharp_mask":10,"./unsharp_mask_wasm":11,"./unsharp_mask_wasm_base64":12}],10:[function(d,h,x){var g=d("glur/mono16");function c(r,t,e){for(var i=t*e,a=new Uint16Array(i),n,s,f,u,l=0;l=s&&n>=f?n:s>=f&&s>=n?s:f,a[l]=u<<8;return a}h.exports=function(t,e,i,a,n,s){var f,u,l,y,m;if(!(a===0||n<.5)){n>2&&(n=2);var b=c(t,e,i),B=new Uint16Array(b);g(B,e,i,n);for(var C=a/100*4096+.5|0,F=s<<8,O=e*i,E=0;E=F&&(u=f+(C*y+2048>>12),u=u>65280?65280:u,u=u<0?0:u,f=f!==0?f:1,l=(u<<12)/f|0,m=E*4,t[m]=t[m]*l+2048>>12,t[m+1]=t[m+1]*l+2048>>12,t[m+2]=t[m+2]*l+2048>>12)}}},{"glur/mono16":18}],11:[function(d,h,x){h.exports=function(c,r,t,e,i,a){if(!(e===0||i<.5)){i>2&&(i=2);var n=r*t,s=n*4,f=n*2,u=n*2,l=Math.max(r,t)*4,y=8*4,m=0,b=s,B=b+f,C=B+u,F=C+u,O=F+l,E=this.__instance("unsharp_mask",s+f+u*2+l+y,{exp:Math.exp}),k=new Uint32Array(c.buffer),R=new Uint32Array(this.__memory.buffer);R.set(k);var D=E.exports.hsv_v16||E.exports._hsv_v16;D(m,b,r,t),D=E.exports.blurMono16||E.exports._blurMono16,D(b,B,C,F,O,r,t,i),D=E.exports.unsharp||E.exports._unsharp,D(m,m,b,B,r,t,e,a),k.set(new Uint32Array(this.__memory.buffer,0,n))}}},{}],12:[function(d,h,x){h.exports="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"},{}],13:[function(d,h,x){var g=100;function c(r,t){this.create=r,this.available=[],this.acquired={},this.lastId=1,this.timeoutId=0,this.idle=t||2e3}c.prototype.acquire=function(){var r=this,t;return this.available.length!==0?t=this.available.pop():(t=this.create(),t.id=this.lastId++,t.release=function(){return r.release(t)}),this.acquired[t.id]=t,t},c.prototype.release=function(r){var t=this;delete this.acquired[r.id],r.lastUsed=Date.now(),this.available.push(r),this.timeoutId===0&&(this.timeoutId=setTimeout(function(){return t.gc()},g))},c.prototype.gc=function(){var r=this,t=Date.now();this.available=this.available.filter(function(e){return t-e.lastUsed>r.idle?(e.destroy(),!1):!0}),this.available.length!==0?this.timeoutId=setTimeout(function(){return r.gc()},g):this.timeoutId=0},h.exports=c},{}],14:[function(d,h,x){var g=2;h.exports=function(r,t,e,i,a,n){var s=e/r,f=i/t,u=(2*n+g+1)/a;if(u>.5)return[[e,i]];var l=Math.ceil(Math.log(Math.min(s,f))/Math.log(u));if(l<=1)return[[e,i]];for(var y=[],m=0;m=e.toWidth&&(m=e.toWidth-f),u=y-e.destTileBorder,u<0&&(u=0),b=y+s+e.destTileBorder-u,u+b>=e.toHeight&&(b=e.toHeight-u),C={toX:f,toY:u,toWidth:m,toHeight:b,toInnerX:l,toInnerY:y,toInnerWidth:n,toInnerHeight:s,offsetX:f/i-c(f/i),offsetY:u/a-c(u/a),scaleX:i,scaleY:a,x:c(f/i),y:c(u/a),width:r(m/i),height:r(b/a)},B.push(C);return B}},{}],16:[function(d,h,x){function g(c){return Object.prototype.toString.call(c)}h.exports.isCanvas=function(r){var t=g(r);return t==="[object HTMLCanvasElement]"||t==="[object OffscreenCanvas]"||t==="[object Canvas]"},h.exports.isImage=function(r){return g(r)==="[object HTMLImageElement]"},h.exports.isImageBitmap=function(r){return g(r)==="[object ImageBitmap]"},h.exports.limiter=function(r){var t=0,e=[];function i(){t"u")return!1;var t=r(100,100);return createImageBitmap(t,0,0,100,100,{resizeWidth:10,resizeHeight:10,resizeQuality:"high"}).then(function(e){var i=e.width===10;return e.close(),t=null,i})}).catch(function(){return!1})},h.exports.worker_offscreen_canvas_support=function(){return new Promise(function(r,t){if(typeof OffscreenCanvas>"u"){r(!1);return}function e(n){if(typeof createImageBitmap>"u"){n.postMessage(!1);return}Promise.resolve().then(function(){var s=new OffscreenCanvas(10,10),f=s.getContext("2d");return f.rect(0,0,1,1),createImageBitmap(s,0,0,1,1)}).then(function(){return n.postMessage(!0)},function(){return n.postMessage(!1)})}var i=btoa("(".concat(e.toString(),")(self);")),a=new Worker("data:text/javascript;base64,".concat(i));a.onmessage=function(n){return r(n.data)},a.onerror=t}).then(function(r){return r},function(){return!1})},h.exports.can_use_canvas=function(r){var t=!1;try{var e=r(2,1),i=e.getContext("2d"),a=i.createImageData(2,1);a.data[0]=12,a.data[1]=23,a.data[2]=34,a.data[3]=255,a.data[4]=45,a.data[5]=56,a.data[6]=67,a.data[7]=255,i.putImageData(a,0,0),a=null,a=i.getImageData(0,0,2,1),a.data[0]===12&&a.data[1]===23&&a.data[2]===34&&a.data[3]===255&&a.data[4]===45&&a.data[5]===56&&a.data[6]===67&&a.data[7]===255&&(t=!0)}catch{}return t},h.exports.cib_can_use_region=function(){return new Promise(function(r){if(typeof createImageBitmap>"u"){r(!1);return}var t=new Image;t.src="data:image/jpeg;base64,/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRcZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRAf/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z",t.onload=function(){createImageBitmap(t,0,0,t.width,t.height).then(function(e){e.width===t.width&&e.height===t.height?r(!0):r(!1)},function(){return r(!1)})},t.onerror=function(){return r(!1)}})}},{}],17:[function(d,h,x){h.exports=function(){var g=d("./mathlib"),c;onmessage=function(t){var e=t.data.opts,i=!1;if(!e.src&&e.srcBitmap){var a=new OffscreenCanvas(e.width,e.height),n=a.getContext("2d",{alpha:!!e.alpha});n.drawImage(e.srcBitmap,0,0),e.src=n.getImageData(0,0,e.width,e.height).data,a.width=a.height=0,a=null,e.srcBitmap.close(),e.srcBitmap=null,i=!0}c||(c=new g(t.data.features));var s=c.resizeAndUnsharp(e);if(i){var f=new ImageData(new Uint8ClampedArray(s),e.toWidth,e.toHeight),u=new OffscreenCanvas(e.toWidth,e.toHeight),l=u.getContext("2d",{alpha:!!e.alpha});l.putImageData(f,0,0),createImageBitmap(u).then(function(y){postMessage({bitmap:y},[y])})}else postMessage({data:s},[s.buffer])}}},{"./mathlib":1}],18:[function(d,h,x){var g,c,r,t,e,i,a,n;function s(l){l<.5&&(l=.5);var y=Math.exp(.726*.726)/l,m=Math.exp(-y),b=Math.exp(-2*y),B=(1-m)*(1-m)/(1+2*y*m-b);return g=B,c=B*(y-1)*m,r=B*(y+1)*m,t=-B*b,e=2*m,i=-b,a=(g+c)/(1-e-i),n=(r+t)/(1-e-i),new Float32Array([g,c,r,t,e,i,a,n])}function f(l,y,m,b,B,C){var F,O,E,k,R,D,S,P,G,o,p,_,v,w;for(G=0;G=0;o--)E=O*p+F*_+k*v+R*w,R=k,k=E,F=O,O=l[D],y[S]=m[P]+k,D--,P--,S-=C}}function u(l,y,m,b){if(b){var B=new Uint16Array(l.length),C=new Float32Array(Math.max(y,m)),F=s(b);f(l,B,C,F,y,m),f(B,l,C,F,m,y)}}h.exports=u},{}],19:[function(d,h,x){typeof Object.create=="function"?h.exports=function(c,r){r&&(c.super_=r,c.prototype=Object.create(r.prototype,{constructor:{value:c,enumerable:!1,writable:!0,configurable:!0}}))}:h.exports=function(c,r){if(r){c.super_=r;var t=function(){};t.prototype=r.prototype,c.prototype=new t,c.prototype.constructor=c}}},{}],20:[function(d,h,x){var g=d("object-assign"),c=d("./lib/base64decode"),r=d("./lib/wa_detect"),t={js:!0,wasm:!0};function e(i){if(!(this instanceof e))return new e(i);var a=g({},t,i||{});if(this.options=a,this.__cache={},this.__init_promise=null,this.__modules=a.modules||{},this.__memory=null,this.__wasm={},this.__isLE=new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]===1,!this.options.js&&!this.options.wasm)throw new Error('mathlib: at least "js" or "wasm" should be enabled')}e.prototype.has_wasm=r,e.prototype.use=function(i){return this.__modules[i.name]=i,this.options.wasm&&this.has_wasm()&&i.wasm_fn?this[i.name]=i.wasm_fn:this[i.name]=i.fn,this},e.prototype.init=function(){if(this.__init_promise)return this.__init_promise;if(!this.options.js&&this.options.wasm&&!this.has_wasm())return Promise.reject(new Error(`mathlib: only "wasm" was enabled, but it's not supported`));var i=this;return this.__init_promise=Promise.all(Object.keys(i.__modules).map(function(a){var n=i.__modules[a];return!i.options.wasm||!i.has_wasm()||!n.wasm_fn||i.__wasm[a]?null:WebAssembly.compile(i.__base64decode(n.wasm_src)).then(function(s){i.__wasm[a]=s})})).then(function(){return i}),this.__init_promise},e.prototype.__base64decode=c,e.prototype.__reallocate=function(a){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(a/(64*1024))}),this.__memory;var n=this.__memory.buffer.byteLength;return n>2),a=0,n=0,s=0;s>16&255,i[n++]=a>>8&255,i[n++]=a&255),a=a<<6|g.indexOf(t.charAt(s));var f=e%4*6;return f===0?(i[n++]=a>>16&255,i[n++]=a>>8&255,i[n++]=a&255):f===18?(i[n++]=a>>10&255,i[n++]=a>>2&255):f===12&&(i[n++]=a>>4&255),i}},{}],22:[function(d,h,x){var g;h.exports=function(){if(typeof g<"u"||(g=!1,typeof WebAssembly>"u"))return g;try{var r=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),t=new WebAssembly.Module(r),e=new WebAssembly.Instance(t,{});return e.exports.test(4)!==0&&(g=!0),g}catch{}return g}},{}],23:[function(d,h,x){var g=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function t(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function e(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var a={},n=0;n<10;n++)a["_"+String.fromCharCode(n)]=n;var s=Object.getOwnPropertyNames(a).map(function(u){return a[u]});if(s.join("")!=="0123456789")return!1;var f={};return"abcdefghijklmnopqrst".split("").forEach(function(u){f[u]=u}),Object.keys(Object.assign({},f)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}h.exports=e()?Object.assign:function(i,a){for(var n,s=t(i),f,u=1;uo.length)&&(p=o.length);for(var _=0,v=new Array(p);_=0)}catch{}var C=1;typeof navigator<"u"&&(C=Math.min(navigator.hardwareConcurrency||1,4));var F={tile:1024,concurrency:C,features:["js","wasm","ww"],idle:2e3,createCanvas:function(p,_){var v=document.createElement("canvas");return v.width=p,v.height=_,v}},O={quality:3,alpha:!1,unsharpAmount:0,unsharpRadius:0,unsharpThreshold:0},E=!1,k=!1,R=!1,D=!1,S=!1;function P(){return{value:n(l),destroy:function(){if(this.value.terminate(),typeof window<"u"){var p=window.URL||window.webkitURL||window.mozURL||window.msURL;p&&p.revokeObjectURL&&this.value.objectURL&&p.revokeObjectURL(this.value.objectURL)}}}}function G(o){if(!(this instanceof G))return new G(o);this.options=a({},F,o||{});var p="lk_".concat(this.options.concurrency);this.__limit=b[p]||u.limiter(this.options.concurrency),b[p]||(b[p]=this.__limit),this.features={js:!1,wasm:!1,cib:!1,ww:!1},this.__workersPool=null,this.__requested_features=[],this.__mathlib=null}G.prototype.init=function(){var o=this;if(this.__initPromise)return this.__initPromise;if(typeof ImageData<"u"&&typeof Uint8ClampedArray<"u")try{new ImageData(new Uint8ClampedArray(400),10,10),E=!0}catch{}typeof ImageBitmap<"u"&&(ImageBitmap.prototype&&ImageBitmap.prototype.close?k=!0:this.debug("ImageBitmap does not support .close(), disabled"));var p=this.options.features.slice();if(p.indexOf("all")>=0&&(p=["cib","wasm","js","ww"]),this.__requested_features=p,this.__mathlib=new s(p),p.indexOf("ww")>=0&&typeof window<"u"&&"Worker"in window)try{var _=d("webworkify")(function(){});_.terminate(),this.features.ww=!0;var v="wp_".concat(JSON.stringify(this.options));b[v]?this.__workersPool=b[v]:(this.__workersPool=new f(P,this.options.idle),b[v]=this.__workersPool)}catch{}var w=this.__mathlib.init().then(function(j){a(o.features,j.features)}),U;k?U=u.cib_support(this.options.createCanvas).then(function(j){if(o.features.cib&&p.indexOf("cib")<0){o.debug("createImageBitmap() resize supported, but disabled by config");return}p.indexOf("cib")>=0&&(o.features.cib=j)}):U=Promise.resolve(!1),R=u.can_use_canvas(this.options.createCanvas);var Q;k&&E&&p.indexOf("ww")!==-1?Q=u.worker_offscreen_canvas_support():Q=Promise.resolve(!1),Q=Q.then(function(j){D=j});var M=u.cib_can_use_region().then(function(j){S=j});return this.__initPromise=Promise.all([w,U,Q,M]).then(function(){return o}),this.__initPromise},G.prototype.__invokeResize=function(o,p){var _=this;return p.__mathCache=p.__mathCache||{},Promise.resolve().then(function(){return _.features.ww?new Promise(function(v,w){var U=_.__workersPool.acquire();p.cancelToken&&p.cancelToken.catch(function(M){return w(M)}),U.value.onmessage=function(M){U.release(),M.data.err?w(M.data.err):v(M.data)};var Q=[];o.src&&Q.push(o.src.buffer),o.srcBitmap&&Q.push(o.srcBitmap),U.value.postMessage({opts:o,features:_.__requested_features,preload:{wasm_nodule:_.__mathlib.__}},Q)}):{data:_.__mathlib.resizeAndUnsharp(o,p.__mathCache)}})},G.prototype.__extractTileData=function(o,p,_,v,w){if(this.features.ww&&D&&(u.isCanvas(p)||S))return this.debug("Create tile for OffscreenCanvas"),createImageBitmap(v.srcImageBitmap||p,o.x,o.y,o.width,o.height).then(function(M){return w.srcBitmap=M,w});if(u.isCanvas(p))return v.srcCtx||(v.srcCtx=p.getContext("2d",{alpha:!!_.alpha})),this.debug("Get tile pixel data"),w.src=v.srcCtx.getImageData(o.x,o.y,o.width,o.height).data,w;this.debug("Draw tile imageBitmap/image to temporary canvas");var U=this.options.createCanvas(o.width,o.height),Q=U.getContext("2d",{alpha:!!_.alpha});return Q.globalCompositeOperation="copy",Q.drawImage(v.srcImageBitmap||p,o.x,o.y,o.width,o.height,0,0,o.width,o.height),this.debug("Get tile pixel data"),w.src=Q.getImageData(0,0,o.width,o.height).data,U.width=U.height=0,w},G.prototype.__landTileData=function(o,p,_){var v;if(this.debug("Convert raw rgba tile result to ImageData"),p.bitmap)return _.toCtx.drawImage(p.bitmap,o.toX,o.toY),null;if(E)v=new ImageData(new Uint8ClampedArray(p.data),o.toWidth,o.toHeight);else if(v=_.toCtx.createImageData(o.toWidth,o.toHeight),v.data.set)v.data.set(p.data);else for(var w=v.data.length-1;w>=0;w--)v.data[w]=p.data[w];return this.debug("Draw tile"),B?_.toCtx.putImageData(v,o.toX,o.toY,o.toInnerX-o.toX,o.toInnerY-o.toY,o.toInnerWidth+1e-5,o.toInnerHeight+1e-5):_.toCtx.putImageData(v,o.toX,o.toY,o.toInnerX-o.toX,o.toInnerY-o.toY,o.toInnerWidth,o.toInnerHeight),null},G.prototype.__tileAndResize=function(o,p,_){var v=this,w={srcCtx:null,srcImageBitmap:null,isImageBitmapReused:!1,toCtx:null},U=function(M){return v.__limit(function(){if(_.canceled)return _.cancelToken;var j={width:M.width,height:M.height,toWidth:M.toWidth,toHeight:M.toHeight,scaleX:M.scaleX,scaleY:M.scaleY,offsetX:M.offsetX,offsetY:M.offsetY,quality:_.quality,alpha:_.alpha,unsharpAmount:_.unsharpAmount,unsharpRadius:_.unsharpRadius,unsharpThreshold:_.unsharpThreshold};return v.debug("Invoke resize math"),Promise.resolve(j).then(function(T){return v.__extractTileData(M,o,_,w,T)}).then(function(T){return v.debug("Invoke resize math"),v.__invokeResize(T,_)}).then(function(T){return _.canceled?_.cancelToken:(w.srcImageData=null,v.__landTileData(M,T,w))})})};return Promise.resolve().then(function(){if(w.toCtx=p.getContext("2d",{alpha:!!_.alpha}),u.isCanvas(o))return null;if(u.isImageBitmap(o))return w.srcImageBitmap=o,w.isImageBitmapReused=!0,null;if(u.isImage(o))return k?(v.debug("Decode image via createImageBitmap"),createImageBitmap(o).then(function(Q){w.srcImageBitmap=Q}).catch(function(Q){return null})):null;throw new Error('Pica: ".from" should be Image, Canvas or ImageBitmap')}).then(function(){if(_.canceled)return _.cancelToken;v.debug("Calculate tiles");var Q=m({width:_.width,height:_.height,srcTileSize:v.options.tile,toWidth:_.toWidth,toHeight:_.toHeight,destTileBorder:_.__destTileBorder}),M=Q.map(function(T){return U(T)});function j(T){T.srcImageBitmap&&(T.isImageBitmapReused||T.srcImageBitmap.close(),T.srcImageBitmap=null)}return v.debug("Process tiles"),Promise.all(M).then(function(){return v.debug("Finished!"),j(w),p},function(T){throw j(w),T})})},G.prototype.__processStages=function(o,p,_,v){var w=this;if(v.canceled)return v.cancelToken;var U=o.shift(),Q=g(U,2),M=Q[0],j=Q[1],T=o.length===0;v=a({},v,{toWidth:M,toHeight:j,quality:T?v.quality:Math.min(1,v.quality)});var z;return T||(z=this.options.createCanvas(M,j)),this.__tileAndResize(p,T?_:z,v).then(function(){return T?_:(v.width=M,v.height=j,w.__processStages(o,z,_,v))}).then(function(J){return z&&(z.width=z.height=0),J})},G.prototype.__resizeViaCreateImageBitmap=function(o,p,_){var v=this,w=p.getContext("2d",{alpha:!!_.alpha});return this.debug("Resize via createImageBitmap()"),createImageBitmap(o,{resizeWidth:_.toWidth,resizeHeight:_.toHeight,resizeQuality:u.cib_quality_name(_.quality)}).then(function(U){if(_.canceled)return _.cancelToken;if(!_.unsharpAmount)return w.drawImage(U,0,0),U.close(),w=null,v.debug("Finished!"),p;v.debug("Unsharp result");var Q=v.options.createCanvas(_.toWidth,_.toHeight),M=Q.getContext("2d",{alpha:!!_.alpha});M.drawImage(U,0,0),U.close();var j=M.getImageData(0,0,_.toWidth,_.toHeight);return v.__mathlib.unsharp_mask(j.data,_.toWidth,_.toHeight,_.unsharpAmount,_.unsharpRadius,_.unsharpThreshold),w.putImageData(j,0,0),Q.width=Q.height=0,j=M=Q=w=null,v.debug("Finished!"),p})},G.prototype.resize=function(o,p,_){var v=this;this.debug("Start resize...");var w=a({},O);if(isNaN(_)?_&&(w=a(w,_)):w=a(w,{quality:_}),w.toWidth=p.width,w.toHeight=p.height,w.width=o.naturalWidth||o.width,w.height=o.naturalHeight||o.height,p.width===0||p.height===0)return Promise.reject(new Error("Invalid output size: ".concat(p.width,"x").concat(p.height)));w.unsharpRadius>2&&(w.unsharpRadius=2),w.canceled=!1,w.cancelToken&&(w.cancelToken=w.cancelToken.then(function(Q){throw w.canceled=!0,Q},function(Q){throw w.canceled=!0,Q}));var U=3;return w.__destTileBorder=Math.ceil(Math.max(U,2.5*w.unsharpRadius|0)),this.init().then(function(){if(w.canceled)return w.cancelToken;if(v.features.cib)return v.__resizeViaCreateImageBitmap(o,p,w);if(!R){var Q=new Error("Pica: cannot use getImageData on canvas, make sure fingerprinting protection isn't enabled");throw Q.code="ERR_GET_IMAGE_DATA",Q}var M=y(w.width,w.height,w.toWidth,w.toHeight,v.options.tile,w.__destTileBorder);return v.__processStages(M,o,p,w)})},G.prototype.resizeBuffer=function(o){var p=this,_=a({},O,o);return this.init().then(function(){return p.__mathlib.resizeAndUnsharp(_)})},G.prototype.toBlob=function(o,p,_){return p=p||"image/png",new Promise(function(v){if(o.toBlob){o.toBlob(function(j){return v(j)},p,_);return}if(o.convertToBlob){v(o.convertToBlob({type:p,quality:_}));return}for(var w=atob(o.toDataURL(p,_).split(",")[1]),U=w.length,Q=new Uint8Array(U),M=0;M0;e--)t="0"+t;return"0x"+t}function h(r){try{return unescape(encodeURIComponent(r))}catch{return r}}function x(r){try{return decodeURIComponent(escape(r))}catch{return r}}function g(r){return Object.prototype.toString.call(r)==="[object Uint8Array]"}function c(r,t,e){this.input=r.subarray(t,e),this.start=t;var i=String.fromCharCode.apply(null,this.input.subarray(0,4));if(i!=="II*\0"&&i!=="MM\0*")throw I("invalid TIFF signature","EBADDATA");this.big_endian=i[0]==="M"}c.prototype.each=function(r){this.aborted=!1;var t=this.read_uint32(4);for(this.ifds_to_read=[{id:0,offset:t}];this.ifds_to_read.length>0&&!this.aborted;){var e=this.ifds_to_read.shift();e.offset&&this.scan_ifd(e.id,e.offset,r)}},c.prototype.filter=function(r){var t={};t.ifd0={id:0,entries:[]},this.each(function(n){r(n)===!1&&!n.is_subifd_link||n.is_subifd_link&&n.count!==1&&n.format!==4||(t["ifd"+n.ifd]||(t["ifd"+n.ifd]={id:n.ifd,entries:[]}),t["ifd"+n.ifd].entries.push(n))}),delete t.ifd1;var e=8;Object.keys(t).forEach(function(n){e+=2,t[n].entries.forEach(function(s){e+=12+(s.data_length>4?Math.ceil(s.data_length/2)*2:0)}),e+=4}),this.output=new Uint8Array(e),this.output[0]=this.output[1]=(this.big_endian?"M":"I").charCodeAt(0),this.write_uint16(2,42);var i=8,a=this;if(this.write_uint32(4,i),Object.keys(t).forEach(function(n){t[n].written_offset=i;var s=i,f=s+2+t[n].entries.length*12+4;i=f,a.write_uint16(s,t[n].entries.length),t[n].entries.sort(function(l,y){return l.tag-y.tag}).forEach(function(l,y){var m=s+2+y*12;a.write_uint16(m,l.tag),a.write_uint16(m+2,l.format),a.write_uint32(m+4,l.count),l.is_subifd_link?t["ifd"+l.tag]&&(t["ifd"+l.tag].link_offset=m+8):l.data_length<=4?a.output.set(a.input.subarray(l.data_offset-a.start,l.data_offset-a.start+4),m+8):(a.write_uint32(m+8,i),a.output.set(a.input.subarray(l.data_offset-a.start,l.data_offset-a.start+l.data_length),i),i+=Math.ceil(l.data_length/2)*2)});var u=t["ifd"+(t[n].id+1)];u&&(u.link_offset=f-4)}),Object.keys(t).forEach(function(n){t[n].written_offset&&t[n].link_offset&&a.write_uint32(t[n].link_offset,t[n].written_offset)}),this.output.length!==i)throw I("internal error: incorrect buffer size allocated");return this.output},c.prototype.read_uint16=function(r){var t=this.input;if(r+2>t.length)throw I("unexpected EOF","EBADDATA");return this.big_endian?t[r]*256+t[r+1]:t[r]+t[r+1]*256},c.prototype.read_uint32=function(r){var t=this.input;if(r+4>t.length)throw I("unexpected EOF","EBADDATA");return this.big_endian?t[r]*16777216+t[r+1]*65536+t[r+2]*256+t[r+3]:t[r]+t[r+1]*256+t[r+2]*65536+t[r+3]*16777216},c.prototype.write_uint16=function(r,t){var e=this.output;this.big_endian?(e[r]=t>>>8&255,e[r+1]=t&255):(e[r]=t&255,e[r+1]=t>>>8&255)},c.prototype.write_uint32=function(r,t){var e=this.output;this.big_endian?(e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255):(e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24&255)},c.prototype.is_subifd_link=function(r,t){return r===0&&t===34665||r===0&&t===34853||r===34665&&t===40965},c.prototype.exif_format_length=function(r){switch(r){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},c.prototype.exif_format_read=function(r,t){var e;switch(r){case 1:case 2:return e=this.input[t],e;case 6:return e=this.input[t],e|(e&128)*33554430;case 3:return e=this.read_uint16(t),e;case 8:return e=this.read_uint16(t),e|(e&32768)*131070;case 4:return e=this.read_uint32(t),e;case 9:return e=this.read_uint32(t),e|0;case 5:case 10:case 11:case 12:return null;case 7:return null;default:return null}},c.prototype.scan_ifd=function(r,t,e){var i=this.read_uint16(t);t+=2;for(var a=0;athis.input.length)throw I("unexpected EOF","EBADDATA");for(var b=[],B=y,C=0;C0&&(this.ifds_to_read.push({id:n,offset:b[0]}),m=!0);var O={is_big_endian:this.big_endian,ifd:r,tag:n,format:s,count:f,entry_offset:t+this.start,data_length:l,data_offset:y+this.start,value:b,is_subifd_link:m};if(e(O)===!1){this.aborted=!0;return}t+=12}r===0&&this.ifds_to_read.push({id:1,offset:this.read_uint32(t)})},A.exports.is_jpeg=function(r){return r.length>=4&&r[0]===255&&r[1]===216&&r[2]===255},A.exports.jpeg_segments_each=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_segment), Function expected","EINVAL");if(!A.exports.is_jpeg(r))throw I("Unknown file format","ENOTJPEG");for(var e=0,i=r.length,a=!1;;){var n,s;if(e+1>=i)throw I("Unexpected EOF","EBADDATA");var f=r[e],u=r[e+1];if(f===255&&u===255)n=255,s=1;else if(f===255&&u!==0){if(n=u,s=2,!(208<=n&&n<=217||n===1)){if(e+3>=i)throw I("Unexpected EOF","EBADDATA");if(s+=r[e+2]*256+r[e+3],s<2)throw I("Invalid segment length","EBADDATA");if(e+s-1>=i)throw I("Unexpected EOF","EBADDATA")}a&&(n>=208&&n<=215||(a=!1)),n===218&&(a=!0)}else if(a)for(var l=e+1;;l++){if(l>=i)throw I("Unexpected EOF","EBADDATA");if(r[l]===255){if(l+1>=i)throw I("Unexpected EOF","EBADDATA");if(r[l+1]!==0){n=0,s=l-e;break}}}else throw I("Unexpected byte at segment start: "+d(f)+" (offset "+d(e)+")","EBADDATA");if(t({code:n,offset:e,length:s})===!1||n===217)break;e+=s}},A.exports.jpeg_segments_filter=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_segment), Function expected","EINVAL");var e=[],i=0;A.exports.jpeg_segments_each(r,function(s){var f=t(s);if(g(f))e.push({data:f}),i+=f.length;else if(Array.isArray(f))f.filter(g).forEach(function(l){e.push({data:l}),i+=l.length});else if(f!==!1){var u={start:s.offset,end:s.offset+s.length};e.length>0&&e[e.length-1].end===u.start?e[e.length-1].end=u.end:e.push(u),i+=s.length}});var a=new Uint8Array(i),n=0;return e.forEach(function(s){var f=s.data||r.subarray(s.start,s.end);a.set(f,n),n+=f.length}),a},A.exports.jpeg_exif_tags_each=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_exif_entry), Function expected","EINVAL");A.exports.jpeg_segments_each(r,function(e){if(e.code===218)return!1;if(e.code===225&&e.length>=10&&r[e.offset+4]===69&&r[e.offset+5]===120&&r[e.offset+6]===105&&r[e.offset+7]===102&&r[e.offset+8]===0&&r[e.offset+9]===0)return new c(r,e.offset+10,e.offset+e.length).each(t),!1})},A.exports.jpeg_exif_tags_filter=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_exif_entry), Function expected","EINVAL");var e=!1;return A.exports.jpeg_segments_filter(r,function(i){if(!e&&(i.code===218&&(e=!0),i.code===225&&i.length>=10&&r[i.offset+4]===69&&r[i.offset+5]===120&&r[i.offset+6]===105&&r[i.offset+7]===102&&r[i.offset+8]===0&&r[i.offset+9]===0)){var a=new c(r,i.offset+10,i.offset+i.length).filter(t);if(!a)return!1;var n=new Uint8Array(10);return n.set(r.slice(i.offset,i.offset+10)),n[2]=a.length+8>>>8&255,n[3]=a.length+8&255,e=!0,[n,a]}})},A.exports.jpeg_add_comment=function(r,t){var e=!1,i=0;return A.exports.jpeg_segments_filter(r,function(a){if(i++,!(i===1&&a.code===216)&&!(i===2&&a.code===224)&&!e){t=h(t);var n=new Uint8Array(5+t.length),s=0;return n[s++]=255,n[s++]=254,n[s++]=t.length+3>>>8&255,n[s++]=t.length+3&255,t.split("").forEach(function(f){n[s++]=f.charCodeAt(0)&255}),n[s++]=0,e=!0,[n,r.subarray(a.offset,a.offset+a.length)]}})}});function Z(A){return this._getUint8Array(A.blob).then(function(I){if(A.is_jpeg=Y.is_jpeg(I),!A.is_jpeg)return Promise.resolve(A);A.orig_blob=A.blob;try{var d,h;if(Y.jpeg_exif_tags_each(I,function(g){if(g.ifd===0&&g.tag===274&&Array.isArray(g.value))return A.orientation=g.value[0]||1,d=g.is_big_endian,h=g.data_offset,!1}),h){var x=d?new Uint8Array([0,1]):new Uint8Array([1,0]);A.blob=new Blob([I.slice(0,h),x,I.slice(h+2)],{type:"image/jpeg"})}}catch{}return A})}function K(A){if(!A.is_jpeg)return Promise.resolve(A);var I=A.orientation-1;if(!I)return Promise.resolve(A);var d;I&4?d=this.pica.options.createCanvas(A.out_canvas.height,A.out_canvas.width):d=this.pica.options.createCanvas(A.out_canvas.width,A.out_canvas.height);var h=d.getContext("2d");return h.save(),I&1&&h.transform(-1,0,0,1,d.width,0),I&2&&h.transform(-1,0,0,-1,d.width,d.height),I&4&&h.transform(0,1,1,0,0,0),h.drawImage(A.out_canvas,0,0),h.restore(),A.out_canvas.width=A.out_canvas.height=0,A.out_canvas=d,Promise.resolve(A)}function V(A){return A.is_jpeg?Promise.all([this._getUint8Array(A.blob),this._getUint8Array(A.out_blob)]).then(function(I){var d=I[0],h=I[1];if(!Y.is_jpeg(d))return Promise.resolve(A);var x=[];return Y.jpeg_segments_each(d,function(g){if(g.code===218)return!1;x.push(g)}),x=x.filter(function(g){return g.code===226?!1:g.code>=224&&g.code<240||g.code===254}).map(function(g){return d.slice(g.offset,g.offset+g.length)}),A.out_blob=new Blob([h.slice(0,2)].concat(x).concat([h.slice(20)]),{type:"image/jpeg"}),A}):Promise.resolve(A)}function at(A){A.before("_blob_to_image",Z),A.after("_transform",K),A.after("_create_blob",V)}var it=Z,nt=K,ot=V,st=at,At={jpeg_patch_exif:it,jpeg_rotate_canvas:nt,jpeg_attach_orig_segments:ot,assign:st};function L(A){if(!(this instanceof L))return new L(A);A=A||{},this.pica=A.pica||X({}),this.initialized=!1,this.utils=W}L.prototype.use=function(A){var I=[this].concat(Array.prototype.slice.call(arguments,1));return A.apply(A,I),this};L.prototype.init=function(){this.use(At.assign)};L.prototype.toBlob=function(A,I){var d=W.assign({max:1/0},I),h={blob:A,opts:d};return this.initialized||(this.init(),this.initialized=!0),Promise.resolve(h).then(this._blob_to_image).then(this._calculate_size).then(this._transform).then(this._cleanup).then(this._create_blob).then(function(x){return x.out_canvas.width=x.out_canvas.height=0,x.out_blob})};L.prototype.toCanvas=function(A,I){var d=W.assign({max:1/0},I),h={blob:A,opts:d};return this.initialized||(this.init(),this.initialized=!0),Promise.resolve(h).then(this._blob_to_image).then(this._calculate_size).then(this._transform).then(this._cleanup).then(function(x){return x.out_canvas})};L.prototype.before=function(A,I){if(!this[A])throw new Error('Method "'+A+'" does not exist');if(typeof I!="function")throw new Error('Invalid argument "fn", function expected');var d=this[A],h=this;return this[A]=function(x){return I.call(h,x).then(function(g){return d.call(h,g)})},this};L.prototype.after=function(A,I){if(!this[A])throw new Error('Method "'+A+'" does not exist');if(typeof I!="function")throw new Error('Invalid argument "fn", function expected');var d=this[A],h=this;return this[A]=function(x){return d.call(h,x).then(function(g){return I.call(h,g)})},this};L.prototype._blob_to_image=function(A){var I=window.URL||window.webkitURL||window.mozURL||window.msURL;return A.image=document.createElement("img"),A.image_url=I.createObjectURL(A.blob),A.image.src=A.image_url,new Promise(function(d,h){A.image.onerror=function(){h(new Error("ImageBlobReduce: failed to create Image() from blob"))},A.image.onload=function(){d(A)}})};L.prototype._calculate_size=function(A){var I=A.opts.max/Math.max(A.image.width,A.image.height);return I>1&&(I=1),A.transform_width=Math.max(Math.round(A.image.width*I),1),A.transform_height=Math.max(Math.round(A.image.height*I),1),A.scale_factor=I,Promise.resolve(A)};L.prototype._transform=function(A){A.out_canvas=this.pica.options.createCanvas(A.transform_width,A.transform_height),A.transform_width=null,A.transform_height=null;var I={alpha:A.blob.type==="image/png"};return this.utils.assign(I,this.utils.pick_pica_resize_options(A.opts)),this.pica.resize(A.image,A.out_canvas,I).then(function(){return A})};L.prototype._cleanup=function(A){A.image.src="",A.image=null;var I=window.URL||window.webkitURL||window.mozURL||window.msURL;return I.revokeObjectURL&&I.revokeObjectURL(A.image_url),A.image_url=null,Promise.resolve(A)};L.prototype._create_blob=function(A){return this.pica.toBlob(A.out_canvas,A.blob.type).then(function(I){return A.out_blob=I,A})};L.prototype._getUint8Array=function(A){return A.arrayBuffer?A.arrayBuffer().then(function(I){return new Uint8Array(I)}):new Promise(function(I,d){var h=new FileReader;h.readAsArrayBuffer(A),h.onload=function(){I(new Uint8Array(h.result))},h.onerror=function(){d(new Error("ImageBlobReduce: failed to load data from input blob")),h.abort()},h.onabort=function(){d(new Error("ImageBlobReduce: failed to load data from input blob (aborted)"))}})};L.pica=X;var ft=L;export{ft as default}; -//# sourceMappingURL=image-blob-reduce.esm-kuDQZwjv.js.map diff --git a/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js.map b/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js.map deleted file mode 100644 index 47ed656..0000000 --- a/excalidraw/excalidraw-app/build/assets/image-blob-reduce.esm-kuDQZwjv.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"image-blob-reduce.esm-kuDQZwjv.js","sources":["../../../node_modules/image-blob-reduce/dist/image-blob-reduce.esm.mjs"],"sourcesContent":["\n/*! image-blob-reduce 3.0.1 https://github.com/nodeca/image-blob-reduce @license MIT */\nvar assign$1 = function assign(to) {\n var from;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) to[key] = from[key];\n }\n }\n\n return to;\n};\n\n\nfunction pick(from, props) {\n var to = {};\n\n props.forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(from, key)) to[key] = from[key];\n });\n\n return to;\n}\n\n\nfunction pick_pica_resize_options(from) {\n return pick(from, [\n 'alpha',\n 'unsharpAmount',\n 'unsharpRadius',\n 'unsharpThreshold',\n 'cancelToken'\n ]);\n}\n\n\nvar pick_1 = pick;\nvar pick_pica_resize_options_1 = pick_pica_resize_options;\n\nvar utils = {\n\tassign: assign$1,\n\tpick: pick_1,\n\tpick_pica_resize_options: pick_pica_resize_options_1\n};\n\nfunction createCommonjsModule(fn) {\n var module = { exports: {} };\n\treturn fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire (target) {\n\tthrow new Error('Could not dynamically require \"' + target + '\". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.');\n}\n\n/*!\n\npica\nhttps://github.com/nodeca/pica\n\n*/\n\nvar pica = createCommonjsModule(function (module, exports) {\n(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i= 0,\n wasm: __requested_features.indexOf('wasm') >= 0\n };\n Multimath.call(this, features);\n this.features = {\n js: features.js,\n wasm: features.wasm && this.has_wasm()\n };\n this.use(mm_unsharp_mask);\n this.use(mm_resize);\n}\n\ninherits(MathLib, Multimath);\n\nMathLib.prototype.resizeAndUnsharp = function resizeAndUnsharp(options, cache) {\n var result = this.resize(options, cache);\n\n if (options.unsharpAmount) {\n this.unsharp_mask(result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold);\n }\n\n return result;\n};\n\nmodule.exports = MathLib;\n\n},{\"./mm_resize\":4,\"./mm_unsharp_mask\":9,\"inherits\":19,\"multimath\":20}],2:[function(_dereq_,module,exports){\n//var FIXED_FRAC_BITS = 14;\n\nfunction clampTo8(i) {\n return i < 0 ? 0 : i > 255 ? 255 : i;\n} // Convolve image in horizontal directions and transpose output. In theory,\n// transpose allow:\n//\n// - use the same convolver for both passes (this fails due different\n// types of input array and temporary buffer)\n// - making vertical pass by horisonltal lines inprove CPU cache use.\n//\n// But in real life this doesn't work :)\n//\n\n\nfunction convolveHorizontally(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Bring this value back in range. All of the filter scaling factors\n // are in fixed point with FIXED_FRAC_BITS bits of fractional part.\n //\n // (!) Add 1/2 of value before clamping to get proper rounding. In other\n // case brightness loss will be noticeable if you resize image with white\n // border and place it on white background.\n //\n\n\n dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n} // Technically, convolvers are the same. But input array and temporary\n// buffer can be of different type (especially, in old browsers). So,\n// keep code in separate functions to avoid deoptimizations & speed loss.\n\n\nfunction convolveVertically(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Bring this value back in range. All of the filter scaling factors\n // are in fixed point with FIXED_FRAC_BITS bits of fractional part.\n //\n // (!) Add 1/2 of value before clamping to get proper rounding. In other\n // case brightness loss will be noticeable if you resize image with white\n // border and place it on white background.\n //\n\n\n dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n}\n\nmodule.exports = {\n convolveHorizontally: convolveHorizontally,\n convolveVertically: convolveVertically\n};\n\n},{}],3:[function(_dereq_,module,exports){\n/* eslint-disable max-len */\n\nmodule.exports = 'AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEXA2AAAGAGf39/f39/AGAHf39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMEAwABAgYGAX8AQQALB1cFEV9fd2FzbV9jYWxsX2N0b3JzAAAIY29udm9sdmUAAQpjb252b2x2ZUhWAAIMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAK7AMDAwABC8YDAQ9/AkAgA0UNACAERQ0AA0AgDCENQQAhE0EAIQcDQCAHQQJqIQYCfyAHQQF0IAVqIgcuAQIiFEUEQEGAwAAhCEGAwAAhCUGAwAAhCkGAwAAhCyAGDAELIBIgBy4BAGohCEEAIQsgFCEHQQAhDiAGIQlBACEPQQAhEANAIAUgCUEBdGouAQAiESAAIAhBAnRqKAIAIgpBGHZsIBBqIRAgCkH/AXEgEWwgC2ohCyAKQRB2Qf8BcSARbCAPaiEPIApBCHZB/wFxIBFsIA5qIQ4gCEEBaiEIIAlBAWohCSAHQQFrIgcNAAsgC0GAQGshCCAOQYBAayEJIA9BgEBrIQogEEGAQGshCyAGIBRqCyEHIAEgDUECdGogCUEOdSIGQf8BIAZB/wFIGyIGQQAgBkEAShtBCHRBgP4DcSAKQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EQdEGAgPwHcSALQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobcjYCACADIA1qIQ0gE0EBaiITIARHDQALIAxBAWoiDCACbCESIAMgDEcNAAsLCx4AQQAgAiADIAQgBSAAEAEgAkEAIAQgBSAGIAEQAQs=';\n\n},{}],4:[function(_dereq_,module,exports){\n\nmodule.exports = {\n name: 'resize',\n fn: _dereq_('./resize'),\n wasm_fn: _dereq_('./resize_wasm'),\n wasm_src: _dereq_('./convolve_wasm_base64')\n};\n\n},{\"./convolve_wasm_base64\":3,\"./resize\":5,\"./resize_wasm\":8}],5:[function(_dereq_,module,exports){\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nvar convolveHorizontally = _dereq_('./convolve').convolveHorizontally;\n\nvar convolveVertically = _dereq_('./convolve').convolveVertically;\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nmodule.exports = function resize(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0;\n var offsetY = options.offsetY || 0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var quality = typeof options.quality === 'undefined' ? 3 : options.quality;\n var alpha = options.alpha || false;\n var filtersX = createFilters(quality, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(quality, srcH, destH, scaleY, offsetY);\n var tmp = new Uint8Array(destW * srcH * 4); // To use single function we need src & tmp of the same type.\n // But src can be CanvasPixelArray, and tmp - Uint8Array. So, keep\n // vertical and horizontal passes separately to avoid deoptimization.\n\n convolveHorizontally(src, tmp, srcW, srcH, destW, filtersX);\n convolveVertically(tmp, dest, srcH, destW, destH, filtersY); // That's faster than doing checks in convolver.\n // !!! Note, canvas data is not premultipled. We don't need other\n // alpha corrections.\n\n if (!alpha) resetAlpha(dest, destW, destH);\n return dest;\n};\n\n},{\"./convolve\":2,\"./resize_filter_gen\":6}],6:[function(_dereq_,module,exports){\n\nvar FILTER_INFO = _dereq_('./resize_filter_info'); // Precision of fixed FP values\n\n\nvar FIXED_FRAC_BITS = 14;\n\nfunction toFixedPoint(num) {\n return Math.round(num * ((1 << FIXED_FRAC_BITS) - 1));\n}\n\nmodule.exports = function resizeFilterGen(quality, srcSize, destSize, scale, offset) {\n var filterFunction = FILTER_INFO[quality].filter;\n var scaleInverted = 1.0 / scale;\n var scaleClamped = Math.min(1.0, scale); // For upscale\n // Filter window (averaging interval), scaled to src image\n\n var srcWindow = FILTER_INFO[quality].win / scaleClamped;\n var destPixel, srcPixel, srcFirst, srcLast, filterElementSize, floatFilter, fxpFilter, total, pxl, idx, floatVal, filterTotal, filterVal;\n var leftNotEmpty, rightNotEmpty, filterShift, filterSize;\n var maxFilterElementSize = Math.floor((srcWindow + 1) * 2);\n var packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);\n var packedFilterPtr = 0;\n var slowCopy = !packedFilter.subarray || !packedFilter.set; // For each destination pixel calculate source range and built filter values\n\n for (destPixel = 0; destPixel < destSize; destPixel++) {\n // Scaling should be done relative to central pixel point\n srcPixel = (destPixel + 0.5) * scaleInverted + offset;\n srcFirst = Math.max(0, Math.floor(srcPixel - srcWindow));\n srcLast = Math.min(srcSize - 1, Math.ceil(srcPixel + srcWindow));\n filterElementSize = srcLast - srcFirst + 1;\n floatFilter = new Float32Array(filterElementSize);\n fxpFilter = new Int16Array(filterElementSize);\n total = 0.0; // Fill filter values for calculated range\n\n for (pxl = srcFirst, idx = 0; pxl <= srcLast; pxl++, idx++) {\n floatVal = filterFunction((pxl + 0.5 - srcPixel) * scaleClamped);\n total += floatVal;\n floatFilter[idx] = floatVal;\n } // Normalize filter, convert to fixed point and accumulate conversion error\n\n\n filterTotal = 0;\n\n for (idx = 0; idx < floatFilter.length; idx++) {\n filterVal = floatFilter[idx] / total;\n filterTotal += filterVal;\n fxpFilter[idx] = toFixedPoint(filterVal);\n } // Compensate normalization error, to minimize brightness drift\n\n\n fxpFilter[destSize >> 1] += toFixedPoint(1.0 - filterTotal); //\n // Now pack filter to useable form\n //\n // 1. Trim heading and tailing zero values, and compensate shitf/length\n // 2. Put all to single array in this format:\n //\n // [ pos shift, data length, value1, value2, value3, ... ]\n //\n\n leftNotEmpty = 0;\n\n while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) {\n leftNotEmpty++;\n }\n\n if (leftNotEmpty < fxpFilter.length) {\n rightNotEmpty = fxpFilter.length - 1;\n\n while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) {\n rightNotEmpty--;\n }\n\n filterShift = srcFirst + leftNotEmpty;\n filterSize = rightNotEmpty - leftNotEmpty + 1;\n packedFilter[packedFilterPtr++] = filterShift; // shift\n\n packedFilter[packedFilterPtr++] = filterSize; // size\n\n if (!slowCopy) {\n packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);\n packedFilterPtr += filterSize;\n } else {\n // fallback for old IE < 11, without subarray/set methods\n for (idx = leftNotEmpty; idx <= rightNotEmpty; idx++) {\n packedFilter[packedFilterPtr++] = fxpFilter[idx];\n }\n }\n } else {\n // zero data, write header only\n packedFilter[packedFilterPtr++] = 0; // shift\n\n packedFilter[packedFilterPtr++] = 0; // size\n }\n }\n\n return packedFilter;\n};\n\n},{\"./resize_filter_info\":7}],7:[function(_dereq_,module,exports){\n\nmodule.exports = [{\n // Nearest neibor (Box)\n win: 0.5,\n filter: function filter(x) {\n return x >= -0.5 && x < 0.5 ? 1.0 : 0.0;\n }\n}, {\n // Hamming\n win: 1.0,\n filter: function filter(x) {\n if (x <= -1.0 || x >= 1.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * (0.54 + 0.46 * Math.cos(xpi / 1.0));\n }\n}, {\n // Lanczos, win = 2\n win: 2.0,\n filter: function filter(x) {\n if (x <= -2.0 || x >= 2.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 2.0) / (xpi / 2.0);\n }\n}, {\n // Lanczos, win = 3\n win: 3.0,\n filter: function filter(x) {\n if (x <= -3.0 || x >= 3.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 3.0) / (xpi / 3.0);\n }\n}];\n\n},{}],8:[function(_dereq_,module,exports){\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nfunction asUint8Array(src) {\n return new Uint8Array(src.buffer, 0, src.byteLength);\n}\n\nvar IS_LE = true; // should not crash everything on module load in old browsers\n\ntry {\n IS_LE = new Uint32Array(new Uint8Array([1, 0, 0, 0]).buffer)[0] === 1;\n} catch (__) {}\n\nfunction copyInt16asLE(src, target, target_offset) {\n if (IS_LE) {\n target.set(asUint8Array(src), target_offset);\n return;\n }\n\n for (var ptr = target_offset, i = 0; i < src.length; i++) {\n var data = src[i];\n target[ptr++] = data & 0xFF;\n target[ptr++] = data >> 8 & 0xFF;\n }\n}\n\nmodule.exports = function resize_wasm(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0.0;\n var offsetY = options.offsetY || 0.0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var quality = typeof options.quality === 'undefined' ? 3 : options.quality;\n var alpha = options.alpha || false;\n var filtersX = createFilters(quality, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(quality, srcH, destH, scaleY, offsetY); // destination is 0 too.\n\n var src_offset = 0; // buffer between convolve passes\n\n var tmp_offset = this.__align(src_offset + Math.max(src.byteLength, dest.byteLength));\n\n var filtersX_offset = this.__align(tmp_offset + srcH * destW * 4);\n\n var filtersY_offset = this.__align(filtersX_offset + filtersX.byteLength);\n\n var alloc_bytes = filtersY_offset + filtersY.byteLength;\n\n var instance = this.__instance('resize', alloc_bytes); //\n // Fill memory block with data to process\n //\n\n\n var mem = new Uint8Array(this.__memory.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer); // 32-bit copy is much faster in chrome\n\n var src32 = new Uint32Array(src.buffer);\n mem32.set(src32); // We should guarantee LE bytes order. Filters are not big, so\n // speed difference is not significant vs direct .set()\n\n copyInt16asLE(filtersX, mem, filtersX_offset);\n copyInt16asLE(filtersY, mem, filtersY_offset); //\n // Now call webassembly method\n // emsdk does method names with '_'\n\n var fn = instance.exports.convolveHV || instance.exports._convolveHV;\n fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH); //\n // Copy data back to typed array\n //\n // 32-bit copy is much faster in chrome\n\n var dest32 = new Uint32Array(dest.buffer);\n dest32.set(new Uint32Array(this.__memory.buffer, 0, destH * destW)); // That's faster than doing checks in convolver.\n // !!! Note, canvas data is not premultipled. We don't need other\n // alpha corrections.\n\n if (!alpha) resetAlpha(dest, destW, destH);\n return dest;\n};\n\n},{\"./resize_filter_gen\":6}],9:[function(_dereq_,module,exports){\n\nmodule.exports = {\n name: 'unsharp_mask',\n fn: _dereq_('./unsharp_mask'),\n wasm_fn: _dereq_('./unsharp_mask_wasm'),\n wasm_src: _dereq_('./unsharp_mask_wasm_base64')\n};\n\n},{\"./unsharp_mask\":10,\"./unsharp_mask_wasm\":11,\"./unsharp_mask_wasm_base64\":12}],10:[function(_dereq_,module,exports){\n\nvar glur_mono16 = _dereq_('glur/mono16');\n\nfunction hsv_v16(img, width, height) {\n var size = width * height;\n var out = new Uint16Array(size);\n var r, g, b, max;\n\n for (var i = 0; i < size; i++) {\n r = img[4 * i];\n g = img[4 * i + 1];\n b = img[4 * i + 2];\n max = r >= g && r >= b ? r : g >= b && g >= r ? g : b;\n out[i] = max << 8;\n }\n\n return out;\n}\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n var v1, v2, vmul;\n var diff, iTimes4;\n\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var brightness = hsv_v16(img, width, height);\n var blured = new Uint16Array(brightness); // copy, because blur modify src\n\n glur_mono16(blured, width, height, radius);\n var amountFp = amount / 100 * 0x1000 + 0.5 | 0;\n var thresholdFp = threshold << 8;\n var size = width * height;\n /* eslint-disable indent */\n\n for (var i = 0; i < size; i++) {\n v1 = brightness[i];\n diff = v1 - blured[i];\n\n if (Math.abs(diff) >= thresholdFp) {\n // add unsharp mask to the brightness channel\n v2 = v1 + (amountFp * diff + 0x800 >> 12); // Both v1 and v2 are within [0.0 .. 255.0] (0000-FF00) range, never going into\n // [255.003 .. 255.996] (FF01-FFFF). This allows to round this value as (x+.5)|0\n // later without overflowing.\n\n v2 = v2 > 0xff00 ? 0xff00 : v2;\n v2 = v2 < 0x0000 ? 0x0000 : v2; // Avoid division by 0. V=0 means rgb(0,0,0), unsharp with unsharpAmount>0 cannot\n // change this value (because diff between colors gets inflated), so no need to verify correctness.\n\n v1 = v1 !== 0 ? v1 : 1; // Multiplying V in HSV model by a constant is equivalent to multiplying each component\n // in RGB by the same constant (same for HSL), see also:\n // https://beesbuzz.biz/code/16-hsv-color-transforms\n\n vmul = (v2 << 12) / v1 | 0; // Result will be in [0..255] range because:\n // - all numbers are positive\n // - r,g,b <= (v1/256)\n // - r,g,b,(v1/256),(v2/256) <= 255\n // So highest this number can get is X*255/X+0.5=255.5 which is < 256 and rounds down.\n\n iTimes4 = i * 4;\n img[iTimes4] = img[iTimes4] * vmul + 0x800 >> 12; // R\n\n img[iTimes4 + 1] = img[iTimes4 + 1] * vmul + 0x800 >> 12; // G\n\n img[iTimes4 + 2] = img[iTimes4 + 2] * vmul + 0x800 >> 12; // B\n }\n }\n};\n\n},{\"glur/mono16\":18}],11:[function(_dereq_,module,exports){\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var pixels = width * height;\n var img_bytes_cnt = pixels * 4;\n var hsv_bytes_cnt = pixels * 2;\n var blur_bytes_cnt = pixels * 2;\n var blur_line_byte_cnt = Math.max(width, height) * 4; // float32 array\n\n var blur_coeffs_byte_cnt = 8 * 4; // float32 array\n\n var img_offset = 0;\n var hsv_offset = img_bytes_cnt;\n var blur_offset = hsv_offset + hsv_bytes_cnt;\n var blur_tmp_offset = blur_offset + blur_bytes_cnt;\n var blur_line_offset = blur_tmp_offset + blur_bytes_cnt;\n var blur_coeffs_offset = blur_line_offset + blur_line_byte_cnt;\n\n var instance = this.__instance('unsharp_mask', img_bytes_cnt + hsv_bytes_cnt + blur_bytes_cnt * 2 + blur_line_byte_cnt + blur_coeffs_byte_cnt, {\n exp: Math.exp\n }); // 32-bit copy is much faster in chrome\n\n\n var img32 = new Uint32Array(img.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer);\n mem32.set(img32); // HSL\n\n var fn = instance.exports.hsv_v16 || instance.exports._hsv_v16;\n fn(img_offset, hsv_offset, width, height); // BLUR\n\n fn = instance.exports.blurMono16 || instance.exports._blurMono16;\n fn(hsv_offset, blur_offset, blur_tmp_offset, blur_line_offset, blur_coeffs_offset, width, height, radius); // UNSHARP\n\n fn = instance.exports.unsharp || instance.exports._unsharp;\n fn(img_offset, img_offset, hsv_offset, blur_offset, width, height, amount, threshold); // 32-bit copy is much faster in chrome\n\n img32.set(new Uint32Array(this.__memory.buffer, 0, pixels));\n};\n\n},{}],12:[function(_dereq_,module,exports){\n/* eslint-disable max-len */\n\nmodule.exports = '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';\n\n},{}],13:[function(_dereq_,module,exports){\n\nvar GC_INTERVAL = 100;\n\nfunction Pool(create, idle) {\n this.create = create;\n this.available = [];\n this.acquired = {};\n this.lastId = 1;\n this.timeoutId = 0;\n this.idle = idle || 2000;\n}\n\nPool.prototype.acquire = function () {\n var _this = this;\n\n var resource;\n\n if (this.available.length !== 0) {\n resource = this.available.pop();\n } else {\n resource = this.create();\n resource.id = this.lastId++;\n\n resource.release = function () {\n return _this.release(resource);\n };\n }\n\n this.acquired[resource.id] = resource;\n return resource;\n};\n\nPool.prototype.release = function (resource) {\n var _this2 = this;\n\n delete this.acquired[resource.id];\n resource.lastUsed = Date.now();\n this.available.push(resource);\n\n if (this.timeoutId === 0) {\n this.timeoutId = setTimeout(function () {\n return _this2.gc();\n }, GC_INTERVAL);\n }\n};\n\nPool.prototype.gc = function () {\n var _this3 = this;\n\n var now = Date.now();\n this.available = this.available.filter(function (resource) {\n if (now - resource.lastUsed > _this3.idle) {\n resource.destroy();\n return false;\n }\n\n return true;\n });\n\n if (this.available.length !== 0) {\n this.timeoutId = setTimeout(function () {\n return _this3.gc();\n }, GC_INTERVAL);\n } else {\n this.timeoutId = 0;\n }\n};\n\nmodule.exports = Pool;\n\n},{}],14:[function(_dereq_,module,exports){\n// min size = 1 can consume large amount of memory\n\nvar MIN_INNER_TILE_SIZE = 2;\n\nmodule.exports = function createStages(fromWidth, fromHeight, toWidth, toHeight, srcTileSize, destTileBorder) {\n var scaleX = toWidth / fromWidth;\n var scaleY = toHeight / fromHeight; // derived from createRegions equation:\n // innerTileWidth = pixelFloor(srcTileSize * scaleX) - 2 * destTileBorder;\n\n var minScale = (2 * destTileBorder + MIN_INNER_TILE_SIZE + 1) / srcTileSize; // refuse to scale image multiple times by less than twice each time,\n // it could only happen because of invalid options\n\n if (minScale > 0.5) return [[toWidth, toHeight]];\n var stageCount = Math.ceil(Math.log(Math.min(scaleX, scaleY)) / Math.log(minScale)); // no additional resizes are necessary,\n // stageCount can be zero or be negative when enlarging the image\n\n if (stageCount <= 1) return [[toWidth, toHeight]];\n var result = [];\n\n for (var i = 0; i < stageCount; i++) {\n var width = Math.round(Math.pow(Math.pow(fromWidth, stageCount - i - 1) * Math.pow(toWidth, i + 1), 1 / stageCount));\n var height = Math.round(Math.pow(Math.pow(fromHeight, stageCount - i - 1) * Math.pow(toHeight, i + 1), 1 / stageCount));\n result.push([width, height]);\n }\n\n return result;\n};\n\n},{}],15:[function(_dereq_,module,exports){\n/*\n * pixelFloor and pixelCeil are modified versions of Math.floor and Math.ceil\n * functions which take into account floating point arithmetic errors.\n * Those errors can cause undesired increments/decrements of sizes and offsets:\n * Math.ceil(36 / (36 / 500)) = 501\n * pixelCeil(36 / (36 / 500)) = 500\n */\n\nvar PIXEL_EPSILON = 1e-5;\n\nfunction pixelFloor(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.floor(x);\n}\n\nfunction pixelCeil(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.ceil(x);\n}\n\nmodule.exports = function createRegions(options) {\n var scaleX = options.toWidth / options.width;\n var scaleY = options.toHeight / options.height;\n var innerTileWidth = pixelFloor(options.srcTileSize * scaleX) - 2 * options.destTileBorder;\n var innerTileHeight = pixelFloor(options.srcTileSize * scaleY) - 2 * options.destTileBorder; // prevent infinite loop, this should never happen\n\n if (innerTileWidth < 1 || innerTileHeight < 1) {\n throw new Error('Internal error in pica: target tile width/height is too small.');\n }\n\n var x, y;\n var innerX, innerY, toTileWidth, toTileHeight;\n var tiles = [];\n var tile; // we go top-to-down instead of left-to-right to make image displayed from top to\n // doesn in the browser\n\n for (innerY = 0; innerY < options.toHeight; innerY += innerTileHeight) {\n for (innerX = 0; innerX < options.toWidth; innerX += innerTileWidth) {\n x = innerX - options.destTileBorder;\n\n if (x < 0) {\n x = 0;\n }\n\n toTileWidth = innerX + innerTileWidth + options.destTileBorder - x;\n\n if (x + toTileWidth >= options.toWidth) {\n toTileWidth = options.toWidth - x;\n }\n\n y = innerY - options.destTileBorder;\n\n if (y < 0) {\n y = 0;\n }\n\n toTileHeight = innerY + innerTileHeight + options.destTileBorder - y;\n\n if (y + toTileHeight >= options.toHeight) {\n toTileHeight = options.toHeight - y;\n }\n\n tile = {\n toX: x,\n toY: y,\n toWidth: toTileWidth,\n toHeight: toTileHeight,\n toInnerX: innerX,\n toInnerY: innerY,\n toInnerWidth: innerTileWidth,\n toInnerHeight: innerTileHeight,\n offsetX: x / scaleX - pixelFloor(x / scaleX),\n offsetY: y / scaleY - pixelFloor(y / scaleY),\n scaleX: scaleX,\n scaleY: scaleY,\n x: pixelFloor(x / scaleX),\n y: pixelFloor(y / scaleY),\n width: pixelCeil(toTileWidth / scaleX),\n height: pixelCeil(toTileHeight / scaleY)\n };\n tiles.push(tile);\n }\n }\n\n return tiles;\n};\n\n},{}],16:[function(_dereq_,module,exports){\n\nfunction objClass(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nmodule.exports.isCanvas = function isCanvas(element) {\n var cname = objClass(element);\n return cname === '[object HTMLCanvasElement]'\n /* browser */\n || cname === '[object OffscreenCanvas]' || cname === '[object Canvas]'\n /* node-canvas */\n ;\n};\n\nmodule.exports.isImage = function isImage(element) {\n return objClass(element) === '[object HTMLImageElement]';\n};\n\nmodule.exports.isImageBitmap = function isImageBitmap(element) {\n return objClass(element) === '[object ImageBitmap]';\n};\n\nmodule.exports.limiter = function limiter(concurrency) {\n var active = 0,\n queue = [];\n\n function roll() {\n if (active < concurrency && queue.length) {\n active++;\n queue.shift()();\n }\n }\n\n return function limit(fn) {\n return new Promise(function (resolve, reject) {\n queue.push(function () {\n fn().then(function (result) {\n resolve(result);\n active--;\n roll();\n }, function (err) {\n reject(err);\n active--;\n roll();\n });\n });\n roll();\n });\n };\n};\n\nmodule.exports.cib_quality_name = function cib_quality_name(num) {\n switch (num) {\n case 0:\n return 'pixelated';\n\n case 1:\n return 'low';\n\n case 2:\n return 'medium';\n }\n\n return 'high';\n};\n\nmodule.exports.cib_support = function cib_support(createCanvas) {\n return Promise.resolve().then(function () {\n if (typeof createImageBitmap === 'undefined') {\n return false;\n }\n\n var c = createCanvas(100, 100);\n return createImageBitmap(c, 0, 0, 100, 100, {\n resizeWidth: 10,\n resizeHeight: 10,\n resizeQuality: 'high'\n }).then(function (bitmap) {\n var status = bitmap.width === 10; // Branch below is filtered on upper level. We do not call resize\n // detection for basic ImageBitmap.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap\n // old Crome 51 has ImageBitmap without .close(). Then this code\n // will throw and return 'false' as expected.\n //\n\n bitmap.close();\n c = null;\n return status;\n });\n })[\"catch\"](function () {\n return false;\n });\n};\n\nmodule.exports.worker_offscreen_canvas_support = function worker_offscreen_canvas_support() {\n return new Promise(function (resolve, reject) {\n if (typeof OffscreenCanvas === 'undefined') {\n // if OffscreenCanvas is present, we assume browser supports Worker and built-in Promise as well\n resolve(false);\n return;\n }\n\n function workerPayload(self) {\n if (typeof createImageBitmap === 'undefined') {\n self.postMessage(false);\n return;\n }\n\n Promise.resolve().then(function () {\n var canvas = new OffscreenCanvas(10, 10); // test that 2d context can be used in worker\n\n var ctx = canvas.getContext('2d');\n ctx.rect(0, 0, 1, 1); // test that cib can be used to return image bitmap from worker\n\n return createImageBitmap(canvas, 0, 0, 1, 1);\n }).then(function () {\n return self.postMessage(true);\n }, function () {\n return self.postMessage(false);\n });\n }\n\n var code = btoa(\"(\".concat(workerPayload.toString(), \")(self);\"));\n var w = new Worker(\"data:text/javascript;base64,\".concat(code));\n\n w.onmessage = function (ev) {\n return resolve(ev.data);\n };\n\n w.onerror = reject;\n }).then(function (result) {\n return result;\n }, function () {\n return false;\n });\n}; // Check if canvas.getContext('2d').getImageData can be used,\n// FireFox randomizes the output of that function in `privacy.resistFingerprinting` mode\n\n\nmodule.exports.can_use_canvas = function can_use_canvas(createCanvas) {\n var usable = false;\n\n try {\n var canvas = createCanvas(2, 1);\n var ctx = canvas.getContext('2d');\n var d = ctx.createImageData(2, 1);\n d.data[0] = 12;\n d.data[1] = 23;\n d.data[2] = 34;\n d.data[3] = 255;\n d.data[4] = 45;\n d.data[5] = 56;\n d.data[6] = 67;\n d.data[7] = 255;\n ctx.putImageData(d, 0, 0);\n d = null;\n d = ctx.getImageData(0, 0, 2, 1);\n\n if (d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255) {\n usable = true;\n }\n } catch (err) {}\n\n return usable;\n}; // Check if createImageBitmap(img, sx, sy, sw, sh) signature works correctly\n// with JPEG images oriented with Exif;\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n// TODO: remove after it's fixed in chrome for at least 2 releases\n\n\nmodule.exports.cib_can_use_region = function cib_can_use_region() {\n return new Promise(function (resolve) {\n if (typeof createImageBitmap === 'undefined') {\n resolve(false);\n return;\n }\n\n var image = new Image();\n image.src = 'data:image/jpeg;base64,' + '/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAA' + 'AABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9' + 'sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRc' + 'ZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoa' + 'GhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRA' + 'f/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAA' + 'IQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAA' + 'AAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIB' + 'AT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAA' + 'AAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAA' + 'AAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQ' + 'QAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';\n\n image.onload = function () {\n createImageBitmap(image, 0, 0, image.width, image.height).then(function (bitmap) {\n if (bitmap.width === image.width && bitmap.height === image.height) {\n resolve(true);\n } else {\n resolve(false);\n }\n }, function () {\n return resolve(false);\n });\n };\n\n image.onerror = function () {\n return resolve(false);\n };\n });\n};\n\n},{}],17:[function(_dereq_,module,exports){\n\nmodule.exports = function () {\n var MathLib = _dereq_('./mathlib');\n\n var mathLib;\n /* eslint-disable no-undef */\n\n onmessage = function onmessage(ev) {\n var tileOpts = ev.data.opts;\n var returnBitmap = false;\n\n if (!tileOpts.src && tileOpts.srcBitmap) {\n var canvas = new OffscreenCanvas(tileOpts.width, tileOpts.height);\n var ctx = canvas.getContext('2d', {\n alpha: Boolean(tileOpts.alpha)\n });\n ctx.drawImage(tileOpts.srcBitmap, 0, 0);\n tileOpts.src = ctx.getImageData(0, 0, tileOpts.width, tileOpts.height).data;\n canvas.width = canvas.height = 0;\n canvas = null;\n tileOpts.srcBitmap.close();\n tileOpts.srcBitmap = null;\n returnBitmap = true;\n }\n\n if (!mathLib) mathLib = new MathLib(ev.data.features); // Use multimath's sync auto-init. Avoid Promise use in old browsers,\n // because polyfills are not propagated to webworker.\n\n var data = mathLib.resizeAndUnsharp(tileOpts);\n\n if (returnBitmap) {\n var toImageData = new ImageData(new Uint8ClampedArray(data), tileOpts.toWidth, tileOpts.toHeight);\n\n var _canvas = new OffscreenCanvas(tileOpts.toWidth, tileOpts.toHeight);\n\n var _ctx = _canvas.getContext('2d', {\n alpha: Boolean(tileOpts.alpha)\n });\n\n _ctx.putImageData(toImageData, 0, 0);\n\n createImageBitmap(_canvas).then(function (bitmap) {\n postMessage({\n bitmap: bitmap\n }, [bitmap]);\n });\n } else {\n postMessage({\n data: data\n }, [data.buffer]);\n }\n };\n};\n\n},{\"./mathlib\":1}],18:[function(_dereq_,module,exports){\n// Calculate Gaussian blur of an image using IIR filter\n// The method is taken from Intel's white paper and code example attached to it:\n// https://software.intel.com/en-us/articles/iir-gaussian-blur-filter\n// -implementation-using-intel-advanced-vector-extensions\n\nvar a0, a1, a2, a3, b1, b2, left_corner, right_corner;\n\nfunction gaussCoef(sigma) {\n if (sigma < 0.5) {\n sigma = 0.5;\n }\n\n var a = Math.exp(0.726 * 0.726) / sigma,\n g1 = Math.exp(-a),\n g2 = Math.exp(-2 * a),\n k = (1 - g1) * (1 - g1) / (1 + 2 * a * g1 - g2);\n\n a0 = k;\n a1 = k * (a - 1) * g1;\n a2 = k * (a + 1) * g1;\n a3 = -k * g2;\n b1 = 2 * g1;\n b2 = -g2;\n left_corner = (a0 + a1) / (1 - b1 - b2);\n right_corner = (a2 + a3) / (1 - b1 - b2);\n\n // Attempt to force type to FP32.\n return new Float32Array([ a0, a1, a2, a3, b1, b2, left_corner, right_corner ]);\n}\n\nfunction convolveMono16(src, out, line, coeff, width, height) {\n // takes src image and writes the blurred and transposed result into out\n\n var prev_src, curr_src, curr_out, prev_out, prev_prev_out;\n var src_index, out_index, line_index;\n var i, j;\n var coeff_a0, coeff_a1, coeff_b1, coeff_b2;\n\n for (i = 0; i < height; i++) {\n src_index = i * width;\n out_index = i;\n line_index = 0;\n\n // left to right\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[6];\n prev_out = prev_prev_out;\n\n coeff_a0 = coeff[0];\n coeff_a1 = coeff[1];\n coeff_b1 = coeff[4];\n coeff_b2 = coeff[5];\n\n for (j = 0; j < width; j++) {\n curr_src = src[src_index];\n\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n prev_src = curr_src;\n\n line[line_index] = prev_out;\n line_index++;\n src_index++;\n }\n\n src_index--;\n line_index--;\n out_index += height * (width - 1);\n\n // right to left\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[7];\n prev_out = prev_prev_out;\n curr_src = prev_src;\n\n coeff_a0 = coeff[2];\n coeff_a1 = coeff[3];\n\n for (j = width - 1; j >= 0; j--) {\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n\n prev_src = curr_src;\n curr_src = src[src_index];\n\n out[out_index] = line[line_index] + prev_out;\n\n src_index--;\n line_index--;\n out_index -= height;\n }\n }\n}\n\n\nfunction blurMono16(src, width, height, radius) {\n // Quick exit on zero radius\n if (!radius) { return; }\n\n var out = new Uint16Array(src.length),\n tmp_line = new Float32Array(Math.max(width, height));\n\n var coeff = gaussCoef(radius);\n\n convolveMono16(src, out, tmp_line, coeff, width, height);\n convolveMono16(out, src, tmp_line, coeff, height, width);\n}\n\nmodule.exports = blurMono16;\n\n},{}],19:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n\n},{}],20:[function(_dereq_,module,exports){\n\n\nvar assign = _dereq_('object-assign');\nvar base64decode = _dereq_('./lib/base64decode');\nvar hasWebAssembly = _dereq_('./lib/wa_detect');\n\n\nvar DEFAULT_OPTIONS = {\n js: true,\n wasm: true\n};\n\n\nfunction MultiMath(options) {\n if (!(this instanceof MultiMath)) return new MultiMath(options);\n\n var opts = assign({}, DEFAULT_OPTIONS, options || {});\n\n this.options = opts;\n\n this.__cache = {};\n\n this.__init_promise = null;\n this.__modules = opts.modules || {};\n this.__memory = null;\n this.__wasm = {};\n\n this.__isLE = ((new Uint32Array((new Uint8Array([ 1, 0, 0, 0 ])).buffer))[0] === 1);\n\n if (!this.options.js && !this.options.wasm) {\n throw new Error('mathlib: at least \"js\" or \"wasm\" should be enabled');\n }\n}\n\n\nMultiMath.prototype.has_wasm = hasWebAssembly;\n\n\nMultiMath.prototype.use = function (module) {\n this.__modules[module.name] = module;\n\n // Pin the best possible implementation\n if (this.options.wasm && this.has_wasm() && module.wasm_fn) {\n this[module.name] = module.wasm_fn;\n } else {\n this[module.name] = module.fn;\n }\n\n return this;\n};\n\n\nMultiMath.prototype.init = function () {\n if (this.__init_promise) return this.__init_promise;\n\n if (!this.options.js && this.options.wasm && !this.has_wasm()) {\n return Promise.reject(new Error('mathlib: only \"wasm\" was enabled, but it\\'s not supported'));\n }\n\n var self = this;\n\n this.__init_promise = Promise.all(Object.keys(self.__modules).map(function (name) {\n var module = self.__modules[name];\n\n if (!self.options.wasm || !self.has_wasm() || !module.wasm_fn) return null;\n\n // If already compiled - exit\n if (self.__wasm[name]) return null;\n\n // Compile wasm source\n return WebAssembly.compile(self.__base64decode(module.wasm_src))\n .then(function (m) { self.__wasm[name] = m; });\n }))\n .then(function () { return self; });\n\n return this.__init_promise;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Methods below are for internal use from plugins\n\n\n// Simple decode base64 to typed array. Useful to load embedded webassembly\n// code. You probably don't need to call this method directly.\n//\nMultiMath.prototype.__base64decode = base64decode;\n\n\n// Increase current memory to include specified number of bytes. Do nothing if\n// size is already ok. You probably don't need to call this method directly,\n// because it will be invoked from `.__instance()`.\n//\nMultiMath.prototype.__reallocate = function mem_grow_to(bytes) {\n if (!this.__memory) {\n this.__memory = new WebAssembly.Memory({\n initial: Math.ceil(bytes / (64 * 1024))\n });\n return this.__memory;\n }\n\n var mem_size = this.__memory.buffer.byteLength;\n\n if (mem_size < bytes) {\n this.__memory.grow(Math.ceil((bytes - mem_size) / (64 * 1024)));\n }\n\n return this.__memory;\n};\n\n\n// Returns instantinated webassembly item by name, with specified memory size\n// and environment.\n// - use cache if available\n// - do sync module init, if async init was not called earlier\n// - allocate memory if not enougth\n// - can export functions to webassembly via \"env_extra\",\n// for example, { exp: Math.exp }\n//\nMultiMath.prototype.__instance = function instance(name, memsize, env_extra) {\n if (memsize) this.__reallocate(memsize);\n\n // If .init() was not called, do sync compile\n if (!this.__wasm[name]) {\n var module = this.__modules[name];\n this.__wasm[name] = new WebAssembly.Module(this.__base64decode(module.wasm_src));\n }\n\n if (!this.__cache[name]) {\n var env_base = {\n memoryBase: 0,\n memory: this.__memory,\n tableBase: 0,\n table: new WebAssembly.Table({ initial: 0, element: 'anyfunc' })\n };\n\n this.__cache[name] = new WebAssembly.Instance(this.__wasm[name], {\n env: assign(env_base, env_extra || {})\n });\n }\n\n return this.__cache[name];\n};\n\n\n// Helper to calculate memory aligh for pointers. Webassembly does not require\n// this, but you may wish to experiment. Default base = 8;\n//\nMultiMath.prototype.__align = function align(number, base) {\n base = base || 8;\n var reminder = number % base;\n return number + (reminder ? base - reminder : 0);\n};\n\n\nmodule.exports = MultiMath;\n\n},{\"./lib/base64decode\":21,\"./lib/wa_detect\":22,\"object-assign\":23}],21:[function(_dereq_,module,exports){\n\n\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n\nmodule.exports = function base64decode(str) {\n var input = str.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length;\n\n var out = new Uint8Array((max * 3) >> 2);\n\n // Collect by 6*4 bits (3 bytes)\n\n var bits = 0;\n var ptr = 0;\n\n for (var idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n }\n\n bits = (bits << 6) | BASE64_MAP.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n var tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n } else if (tailbits === 18) {\n out[ptr++] = (bits >> 10) & 0xFF;\n out[ptr++] = (bits >> 2) & 0xFF;\n } else if (tailbits === 12) {\n out[ptr++] = (bits >> 4) & 0xFF;\n }\n\n return out;\n};\n\n},{}],22:[function(_dereq_,module,exports){\n\n\nvar wa;\n\n\nmodule.exports = function hasWebAssembly() {\n // use cache if called before;\n if (typeof wa !== 'undefined') return wa;\n\n wa = false;\n\n if (typeof WebAssembly === 'undefined') return wa;\n\n // If WebAssenbly is disabled, code can throw on compile\n try {\n // https://github.com/brion/min-wasm-fail/blob/master/min-wasm-fail.in.js\n // Additional check that WA internals are correct\n\n /* eslint-disable comma-spacing, max-len */\n var bin = new Uint8Array([ 0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11 ]);\n var module = new WebAssembly.Module(bin);\n var instance = new WebAssembly.Instance(module, {});\n\n // test storing to and loading from a non-zero location via a parameter.\n // Safari on iOS 11.2.5 returns 0 unexpectedly at non-zero locations\n if (instance.exports.test(4) !== 0) wa = true;\n\n return wa;\n } catch (__) {}\n\n return wa;\n};\n\n},{}],23:[function(_dereq_,module,exports){\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}],24:[function(_dereq_,module,exports){\nvar bundleFn = arguments[3];\nvar sources = arguments[4];\nvar cache = arguments[5];\n\nvar stringify = JSON.stringify;\n\nmodule.exports = function (fn, options) {\n var wkey;\n var cacheKeys = Object.keys(cache);\n\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n var exp = cache[key].exports;\n // Using babel as a transpiler to use esmodule, the export will always\n // be an object with the default export as a property of it. To ensure\n // the existing api and babel esmodule exports are both supported we\n // check for both\n if (exp === fn || exp && exp.default === fn) {\n wkey = key;\n break;\n }\n }\n\n if (!wkey) {\n wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n var wcache = {};\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n wcache[key] = key;\n }\n sources[wkey] = [\n 'function(require,module,exports){' + fn + '(self); }',\n wcache\n ];\n }\n var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n\n var scache = {}; scache[wkey] = wkey;\n sources[skey] = [\n 'function(require,module,exports){' +\n // try to call default if defined to also support babel esmodule exports\n 'var f = require(' + stringify(wkey) + ');' +\n '(f.default ? f.default : f)(self);' +\n '}',\n scache\n ];\n\n var workerSources = {};\n resolveSources(skey);\n\n function resolveSources(key) {\n workerSources[key] = true;\n\n for (var depPath in sources[key][1]) {\n var depKey = sources[key][1][depPath];\n if (!workerSources[depKey]) {\n resolveSources(depKey);\n }\n }\n }\n\n var src = '(' + bundleFn + ')({'\n + Object.keys(workerSources).map(function (key) {\n return stringify(key) + ':['\n + sources[key][0]\n + ',' + stringify(sources[key][1]) + ']'\n ;\n }).join(',')\n + '},{},[' + stringify(skey) + '])'\n ;\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n var blob = new Blob([src], { type: 'text/javascript' });\n if (options && options.bare) { return blob; }\n var workerUrl = URL.createObjectURL(blob);\n var worker = new Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n},{}],\"/index.js\":[function(_dereq_,module,exports){\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = _dereq_('object-assign');\n\nvar webworkify = _dereq_('webworkify');\n\nvar MathLib = _dereq_('./lib/mathlib');\n\nvar Pool = _dereq_('./lib/pool');\n\nvar utils = _dereq_('./lib/utils');\n\nvar worker = _dereq_('./lib/worker');\n\nvar createStages = _dereq_('./lib/stepper');\n\nvar createRegions = _dereq_('./lib/tiler'); // Deduplicate pools & limiters with the same configs\n// when user creates multiple pica instances.\n\n\nvar singletones = {};\nvar NEED_SAFARI_FIX = false;\n\ntry {\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n NEED_SAFARI_FIX = navigator.userAgent.indexOf('Safari') >= 0;\n }\n} catch (e) {}\n\nvar concurrency = 1;\n\nif (typeof navigator !== 'undefined') {\n concurrency = Math.min(navigator.hardwareConcurrency || 1, 4);\n}\n\nvar DEFAULT_PICA_OPTS = {\n tile: 1024,\n concurrency: concurrency,\n features: ['js', 'wasm', 'ww'],\n idle: 2000,\n createCanvas: function createCanvas(width, height) {\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n return tmpCanvas;\n }\n};\nvar DEFAULT_RESIZE_OPTS = {\n quality: 3,\n alpha: false,\n unsharpAmount: 0,\n unsharpRadius: 0.0,\n unsharpThreshold: 0\n};\nvar CAN_NEW_IMAGE_DATA = false;\nvar CAN_CREATE_IMAGE_BITMAP = false;\nvar CAN_USE_CANVAS_GET_IMAGE_DATA = false;\nvar CAN_USE_OFFSCREEN_CANVAS = false;\nvar CAN_USE_CIB_REGION_FOR_IMAGE = false;\n\nfunction workerFabric() {\n return {\n value: webworkify(worker),\n destroy: function destroy() {\n this.value.terminate();\n\n if (typeof window !== 'undefined') {\n var url = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n if (url && url.revokeObjectURL && this.value.objectURL) {\n url.revokeObjectURL(this.value.objectURL);\n }\n }\n }\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// API methods\n\n\nfunction Pica(options) {\n if (!(this instanceof Pica)) return new Pica(options);\n this.options = assign({}, DEFAULT_PICA_OPTS, options || {});\n var limiter_key = \"lk_\".concat(this.options.concurrency); // Share limiters to avoid multiple parallel workers when user creates\n // multiple pica instances.\n\n this.__limit = singletones[limiter_key] || utils.limiter(this.options.concurrency);\n if (!singletones[limiter_key]) singletones[limiter_key] = this.__limit; // List of supported features, according to options & browser/node.js\n\n this.features = {\n js: false,\n // pure JS implementation, can be disabled for testing\n wasm: false,\n // webassembly implementation for heavy functions\n cib: false,\n // resize via createImageBitmap (only FF at this moment)\n ww: false // webworkers\n\n };\n this.__workersPool = null; // Store requested features for webworkers\n\n this.__requested_features = [];\n this.__mathlib = null;\n}\n\nPica.prototype.init = function () {\n var _this = this;\n\n if (this.__initPromise) return this.__initPromise; // Test if we can create ImageData without canvas and memory copy\n\n if (typeof ImageData !== 'undefined' && typeof Uint8ClampedArray !== 'undefined') {\n try {\n /* eslint-disable no-new */\n new ImageData(new Uint8ClampedArray(400), 10, 10);\n CAN_NEW_IMAGE_DATA = true;\n } catch (__) {}\n } // ImageBitmap can be effective in 2 places:\n //\n // 1. Threaded jpeg unpack (basic)\n // 2. Built-in resize (blocked due problem in chrome, see issue #89)\n //\n // For basic use we also need ImageBitmap wo support .close() method,\n // see https://developer.mozilla.org/ru/docs/Web/API/ImageBitmap\n\n\n if (typeof ImageBitmap !== 'undefined') {\n if (ImageBitmap.prototype && ImageBitmap.prototype.close) {\n CAN_CREATE_IMAGE_BITMAP = true;\n } else {\n this.debug('ImageBitmap does not support .close(), disabled');\n }\n }\n\n var features = this.options.features.slice();\n\n if (features.indexOf('all') >= 0) {\n features = ['cib', 'wasm', 'js', 'ww'];\n }\n\n this.__requested_features = features;\n this.__mathlib = new MathLib(features); // Check WebWorker support if requested\n\n if (features.indexOf('ww') >= 0) {\n if (typeof window !== 'undefined' && 'Worker' in window) {\n // IE <= 11 don't allow to create webworkers from string. We should check it.\n // https://connect.microsoft.com/IE/feedback/details/801810/web-workers-from-blob-urls-in-ie-10-and-11\n try {\n var wkr = _dereq_('webworkify')(function () {});\n\n wkr.terminate();\n this.features.ww = true; // pool uniqueness depends on pool config + webworker config\n\n var wpool_key = \"wp_\".concat(JSON.stringify(this.options));\n\n if (singletones[wpool_key]) {\n this.__workersPool = singletones[wpool_key];\n } else {\n this.__workersPool = new Pool(workerFabric, this.options.idle);\n singletones[wpool_key] = this.__workersPool;\n }\n } catch (__) {}\n }\n }\n\n var initMath = this.__mathlib.init().then(function (mathlib) {\n // Copy detected features\n assign(_this.features, mathlib.features);\n });\n\n var checkCibResize;\n\n if (!CAN_CREATE_IMAGE_BITMAP) {\n checkCibResize = Promise.resolve(false);\n } else {\n checkCibResize = utils.cib_support(this.options.createCanvas).then(function (status) {\n if (_this.features.cib && features.indexOf('cib') < 0) {\n _this.debug('createImageBitmap() resize supported, but disabled by config');\n\n return;\n }\n\n if (features.indexOf('cib') >= 0) _this.features.cib = status;\n });\n }\n\n CAN_USE_CANVAS_GET_IMAGE_DATA = utils.can_use_canvas(this.options.createCanvas);\n var checkOffscreenCanvas;\n\n if (CAN_CREATE_IMAGE_BITMAP && CAN_NEW_IMAGE_DATA && features.indexOf('ww') !== -1) {\n checkOffscreenCanvas = utils.worker_offscreen_canvas_support();\n } else {\n checkOffscreenCanvas = Promise.resolve(false);\n }\n\n checkOffscreenCanvas = checkOffscreenCanvas.then(function (result) {\n CAN_USE_OFFSCREEN_CANVAS = result;\n }); // we use createImageBitmap to crop image data and pass it to workers,\n // so need to check whether function works correctly;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n\n var checkCibRegion = utils.cib_can_use_region().then(function (result) {\n CAN_USE_CIB_REGION_FOR_IMAGE = result;\n }); // Init math lib. That's async because can load some\n\n this.__initPromise = Promise.all([initMath, checkCibResize, checkOffscreenCanvas, checkCibRegion]).then(function () {\n return _this;\n });\n return this.__initPromise;\n}; // Call resizer in webworker or locally, depending on config\n\n\nPica.prototype.__invokeResize = function (tileOpts, opts) {\n var _this2 = this;\n\n // Share cache between calls:\n //\n // - wasm instance\n // - wasm memory object\n //\n opts.__mathCache = opts.__mathCache || {};\n return Promise.resolve().then(function () {\n if (!_this2.features.ww) {\n // not possible to have ImageBitmap here if user disabled WW\n return {\n data: _this2.__mathlib.resizeAndUnsharp(tileOpts, opts.__mathCache)\n };\n }\n\n return new Promise(function (resolve, reject) {\n var w = _this2.__workersPool.acquire();\n\n if (opts.cancelToken) opts.cancelToken[\"catch\"](function (err) {\n return reject(err);\n });\n\n w.value.onmessage = function (ev) {\n w.release();\n if (ev.data.err) reject(ev.data.err);else resolve(ev.data);\n };\n\n var transfer = [];\n if (tileOpts.src) transfer.push(tileOpts.src.buffer);\n if (tileOpts.srcBitmap) transfer.push(tileOpts.srcBitmap);\n w.value.postMessage({\n opts: tileOpts,\n features: _this2.__requested_features,\n preload: {\n wasm_nodule: _this2.__mathlib.__\n }\n }, transfer);\n });\n });\n}; // this function can return promise if createImageBitmap is used\n\n\nPica.prototype.__extractTileData = function (tile, from, opts, stageEnv, extractTo) {\n if (this.features.ww && CAN_USE_OFFSCREEN_CANVAS && ( // createImageBitmap doesn't work for images (Image, ImageBitmap) with Exif orientation in Chrome,\n // can use canvas because canvas doesn't have orientation;\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n utils.isCanvas(from) || CAN_USE_CIB_REGION_FOR_IMAGE)) {\n this.debug('Create tile for OffscreenCanvas');\n return createImageBitmap(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height).then(function (bitmap) {\n extractTo.srcBitmap = bitmap;\n return extractTo;\n });\n } // Extract tile RGBA buffer, depending on input type\n\n\n if (utils.isCanvas(from)) {\n if (!stageEnv.srcCtx) stageEnv.srcCtx = from.getContext('2d', {\n alpha: Boolean(opts.alpha)\n }); // If input is Canvas - extract region data directly\n\n this.debug('Get tile pixel data');\n extractTo.src = stageEnv.srcCtx.getImageData(tile.x, tile.y, tile.width, tile.height).data;\n return extractTo;\n } // If input is Image or decoded to ImageBitmap,\n // draw region to temporary canvas and extract data from it\n //\n // Note! Attempt to reuse this canvas causes significant slowdown in chrome\n //\n\n\n this.debug('Draw tile imageBitmap/image to temporary canvas');\n var tmpCanvas = this.options.createCanvas(tile.width, tile.height);\n var tmpCtx = tmpCanvas.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n tmpCtx.globalCompositeOperation = 'copy';\n tmpCtx.drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);\n this.debug('Get tile pixel data');\n extractTo.src = tmpCtx.getImageData(0, 0, tile.width, tile.height).data; // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n return extractTo;\n};\n\nPica.prototype.__landTileData = function (tile, result, stageEnv) {\n var toImageData;\n this.debug('Convert raw rgba tile result to ImageData');\n\n if (result.bitmap) {\n stageEnv.toCtx.drawImage(result.bitmap, tile.toX, tile.toY);\n return null;\n }\n\n if (CAN_NEW_IMAGE_DATA) {\n // this branch is for modern browsers\n // If `new ImageData()` & Uint8ClampedArray suported\n toImageData = new ImageData(new Uint8ClampedArray(result.data), tile.toWidth, tile.toHeight);\n } else {\n // fallback for `node-canvas` and old browsers\n // (IE11 has ImageData but does not support `new ImageData()`)\n toImageData = stageEnv.toCtx.createImageData(tile.toWidth, tile.toHeight);\n\n if (toImageData.data.set) {\n toImageData.data.set(result.data);\n } else {\n // IE9 don't have `.set()`\n for (var i = toImageData.data.length - 1; i >= 0; i--) {\n toImageData.data[i] = result.data[i];\n }\n }\n }\n\n this.debug('Draw tile');\n\n if (NEED_SAFARI_FIX) {\n // Safari draws thin white stripes between tiles without this fix\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth + 1e-5, tile.toInnerHeight + 1e-5);\n } else {\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth, tile.toInnerHeight);\n }\n\n return null;\n};\n\nPica.prototype.__tileAndResize = function (from, to, opts) {\n var _this3 = this;\n\n var stageEnv = {\n srcCtx: null,\n srcImageBitmap: null,\n isImageBitmapReused: false,\n toCtx: null\n };\n\n var processTile = function processTile(tile) {\n return _this3.__limit(function () {\n if (opts.canceled) return opts.cancelToken;\n var tileOpts = {\n width: tile.width,\n height: tile.height,\n toWidth: tile.toWidth,\n toHeight: tile.toHeight,\n scaleX: tile.scaleX,\n scaleY: tile.scaleY,\n offsetX: tile.offsetX,\n offsetY: tile.offsetY,\n quality: opts.quality,\n alpha: opts.alpha,\n unsharpAmount: opts.unsharpAmount,\n unsharpRadius: opts.unsharpRadius,\n unsharpThreshold: opts.unsharpThreshold\n };\n\n _this3.debug('Invoke resize math');\n\n return Promise.resolve(tileOpts).then(function (tileOpts) {\n return _this3.__extractTileData(tile, from, opts, stageEnv, tileOpts);\n }).then(function (tileOpts) {\n _this3.debug('Invoke resize math');\n\n return _this3.__invokeResize(tileOpts, opts);\n }).then(function (result) {\n if (opts.canceled) return opts.cancelToken;\n stageEnv.srcImageData = null;\n return _this3.__landTileData(tile, result, stageEnv);\n });\n });\n }; // Need to normalize data source first. It can be canvas or image.\n // If image - try to decode in background if possible\n\n\n return Promise.resolve().then(function () {\n stageEnv.toCtx = to.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n if (utils.isCanvas(from)) return null;\n\n if (utils.isImageBitmap(from)) {\n stageEnv.srcImageBitmap = from;\n stageEnv.isImageBitmapReused = true;\n return null;\n }\n\n if (utils.isImage(from)) {\n // try do decode image in background for faster next operations;\n // if we're using offscreen canvas, cib is called per tile, so not needed here\n if (!CAN_CREATE_IMAGE_BITMAP) return null;\n\n _this3.debug('Decode image via createImageBitmap');\n\n return createImageBitmap(from).then(function (imageBitmap) {\n stageEnv.srcImageBitmap = imageBitmap;\n }) // Suppress error to use fallback, if method fails\n // https://github.com/nodeca/pica/issues/190\n\n /* eslint-disable no-unused-vars */\n [\"catch\"](function (e) {\n return null;\n });\n }\n\n throw new Error('Pica: \".from\" should be Image, Canvas or ImageBitmap');\n }).then(function () {\n if (opts.canceled) return opts.cancelToken;\n\n _this3.debug('Calculate tiles'); //\n // Here we are with \"normalized\" source,\n // follow to tiling\n //\n\n\n var regions = createRegions({\n width: opts.width,\n height: opts.height,\n srcTileSize: _this3.options.tile,\n toWidth: opts.toWidth,\n toHeight: opts.toHeight,\n destTileBorder: opts.__destTileBorder\n });\n var jobs = regions.map(function (tile) {\n return processTile(tile);\n });\n\n function cleanup(stageEnv) {\n if (stageEnv.srcImageBitmap) {\n if (!stageEnv.isImageBitmapReused) stageEnv.srcImageBitmap.close();\n stageEnv.srcImageBitmap = null;\n }\n }\n\n _this3.debug('Process tiles');\n\n return Promise.all(jobs).then(function () {\n _this3.debug('Finished!');\n\n cleanup(stageEnv);\n return to;\n }, function (err) {\n cleanup(stageEnv);\n throw err;\n });\n });\n};\n\nPica.prototype.__processStages = function (stages, from, to, opts) {\n var _this4 = this;\n\n if (opts.canceled) return opts.cancelToken;\n\n var _stages$shift = stages.shift(),\n _stages$shift2 = _slicedToArray(_stages$shift, 2),\n toWidth = _stages$shift2[0],\n toHeight = _stages$shift2[1];\n\n var isLastStage = stages.length === 0;\n opts = assign({}, opts, {\n toWidth: toWidth,\n toHeight: toHeight,\n // only use user-defined quality for the last stage,\n // use simpler (Hamming) filter for the first stages where\n // scale factor is large enough (more than 2-3)\n quality: isLastStage ? opts.quality : Math.min(1, opts.quality)\n });\n var tmpCanvas;\n\n if (!isLastStage) {\n // create temporary canvas\n tmpCanvas = this.options.createCanvas(toWidth, toHeight);\n }\n\n return this.__tileAndResize(from, isLastStage ? to : tmpCanvas, opts).then(function () {\n if (isLastStage) return to;\n opts.width = toWidth;\n opts.height = toHeight;\n return _this4.__processStages(stages, tmpCanvas, to, opts);\n }).then(function (res) {\n if (tmpCanvas) {\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n tmpCanvas.width = tmpCanvas.height = 0;\n }\n\n return res;\n });\n};\n\nPica.prototype.__resizeViaCreateImageBitmap = function (from, to, opts) {\n var _this5 = this;\n\n var toCtx = to.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n this.debug('Resize via createImageBitmap()');\n return createImageBitmap(from, {\n resizeWidth: opts.toWidth,\n resizeHeight: opts.toHeight,\n resizeQuality: utils.cib_quality_name(opts.quality)\n }).then(function (imageBitmap) {\n if (opts.canceled) return opts.cancelToken; // if no unsharp - draw directly to output canvas\n\n if (!opts.unsharpAmount) {\n toCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n }\n\n _this5.debug('Unsharp result');\n\n var tmpCanvas = _this5.options.createCanvas(opts.toWidth, opts.toHeight);\n\n var tmpCtx = tmpCanvas.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n tmpCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n var iData = tmpCtx.getImageData(0, 0, opts.toWidth, opts.toHeight);\n\n _this5.__mathlib.unsharp_mask(iData.data, opts.toWidth, opts.toHeight, opts.unsharpAmount, opts.unsharpRadius, opts.unsharpThreshold);\n\n toCtx.putImageData(iData, 0, 0); // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n iData = tmpCtx = tmpCanvas = toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n });\n};\n\nPica.prototype.resize = function (from, to, options) {\n var _this6 = this;\n\n this.debug('Start resize...');\n var opts = assign({}, DEFAULT_RESIZE_OPTS);\n\n if (!isNaN(options)) {\n opts = assign(opts, {\n quality: options\n });\n } else if (options) {\n opts = assign(opts, options);\n }\n\n opts.toWidth = to.width;\n opts.toHeight = to.height;\n opts.width = from.naturalWidth || from.width;\n opts.height = from.naturalHeight || from.height; // Prevent stepper from infinite loop\n\n if (to.width === 0 || to.height === 0) {\n return Promise.reject(new Error(\"Invalid output size: \".concat(to.width, \"x\").concat(to.height)));\n }\n\n if (opts.unsharpRadius > 2) opts.unsharpRadius = 2;\n opts.canceled = false;\n\n if (opts.cancelToken) {\n // Wrap cancelToken to avoid successive resolve & set flag\n opts.cancelToken = opts.cancelToken.then(function (data) {\n opts.canceled = true;\n throw data;\n }, function (err) {\n opts.canceled = true;\n throw err;\n });\n }\n\n var DEST_TILE_BORDER = 3; // Max possible filter window size\n\n opts.__destTileBorder = Math.ceil(Math.max(DEST_TILE_BORDER, 2.5 * opts.unsharpRadius | 0));\n return this.init().then(function () {\n if (opts.canceled) return opts.cancelToken; // if createImageBitmap supports resize, just do it and return\n\n if (_this6.features.cib) {\n return _this6.__resizeViaCreateImageBitmap(from, to, opts);\n }\n\n if (!CAN_USE_CANVAS_GET_IMAGE_DATA) {\n var err = new Error('Pica: cannot use getImageData on canvas, ' + \"make sure fingerprinting protection isn't enabled\");\n err.code = 'ERR_GET_IMAGE_DATA';\n throw err;\n } //\n // No easy way, let's resize manually via arrays\n //\n\n\n var stages = createStages(opts.width, opts.height, opts.toWidth, opts.toHeight, _this6.options.tile, opts.__destTileBorder);\n return _this6.__processStages(stages, from, to, opts);\n });\n}; // RGBA buffer resize\n//\n\n\nPica.prototype.resizeBuffer = function (options) {\n var _this7 = this;\n\n var opts = assign({}, DEFAULT_RESIZE_OPTS, options);\n return this.init().then(function () {\n return _this7.__mathlib.resizeAndUnsharp(opts);\n });\n};\n\nPica.prototype.toBlob = function (canvas, mimeType, quality) {\n mimeType = mimeType || 'image/png';\n return new Promise(function (resolve) {\n if (canvas.toBlob) {\n canvas.toBlob(function (blob) {\n return resolve(blob);\n }, mimeType, quality);\n return;\n }\n\n if (canvas.convertToBlob) {\n resolve(canvas.convertToBlob({\n type: mimeType,\n quality: quality\n }));\n return;\n } // Fallback for old browsers\n\n\n var asString = atob(canvas.toDataURL(mimeType, quality).split(',')[1]);\n var len = asString.length;\n var asBuffer = new Uint8Array(len);\n\n for (var i = 0; i < len; i++) {\n asBuffer[i] = asString.charCodeAt(i);\n }\n\n resolve(new Blob([asBuffer], {\n type: mimeType\n }));\n });\n};\n\nPica.prototype.debug = function () {};\n\nmodule.exports = Pica;\n\n},{\"./lib/mathlib\":1,\"./lib/pool\":13,\"./lib/stepper\":14,\"./lib/tiler\":15,\"./lib/utils\":16,\"./lib/worker\":17,\"object-assign\":23,\"webworkify\":24}]},{},[])(\"/index.js\")\n});\n});\n\nvar image_traverse = createCommonjsModule(function (module) {\n\n//////////////////////////////////////////////////////////////////////////\n// Helpers\n//\nfunction error(message, code) {\n var err = new Error(message);\n err.code = code;\n return err;\n}\n\n\n// Convert number to 0xHH string\n//\nfunction to_hex(number) {\n var n = number.toString(16).toUpperCase();\n for (var i = 2 - n.length; i > 0; i--) n = '0' + n;\n return '0x' + n;\n}\n\n\nfunction utf8_encode(str) {\n try {\n return unescape(encodeURIComponent(str));\n } catch (_) {\n return str;\n }\n}\n\n\nfunction utf8_decode(str) {\n try {\n return decodeURIComponent(escape(str));\n } catch (_) {\n return str;\n }\n}\n\n\n// Check if input is a Uint8Array\n//\nfunction is_uint8array(bin) {\n return Object.prototype.toString.call(bin) === '[object Uint8Array]';\n}\n\n\n//////////////////////////////////////////////////////////////////////////\n// Exif parser\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - exif_start: Number - start of TIFF header (after Exif\\0\\0)\n// - exif_end: Number - end of Exif segment\n// - on_entry: Number - callback\n//\nfunction ExifParser(jpeg_bin, exif_start, exif_end) {\n // Uint8Array, exif without signature (which isn't included in offsets)\n this.input = jpeg_bin.subarray(exif_start, exif_end);\n\n // offset correction for `on_entry` callback\n this.start = exif_start;\n\n // Check TIFF header (includes byte alignment and first IFD offset)\n var sig = String.fromCharCode.apply(null, this.input.subarray(0, 4));\n\n if (sig !== 'II\\x2A\\0' && sig !== 'MM\\0\\x2A') {\n throw error('invalid TIFF signature', 'EBADDATA');\n }\n\n // true if motorola (big endian) byte alignment, false if intel\n this.big_endian = sig[0] === 'M';\n}\n\n\nExifParser.prototype.each = function (on_entry) {\n // allow premature exit\n this.aborted = false;\n\n var offset = this.read_uint32(4);\n\n this.ifds_to_read = [ {\n id: 0,\n offset: offset\n } ];\n\n while (this.ifds_to_read.length > 0 && !this.aborted) {\n var i = this.ifds_to_read.shift();\n if (!i.offset) continue;\n this.scan_ifd(i.id, i.offset, on_entry);\n }\n};\n\n\nExifParser.prototype.filter = function (on_entry) {\n var ifds = {};\n\n // make sure IFD0 always exists\n ifds.ifd0 = { id: 0, entries: [] };\n\n this.each(function (entry) {\n if (on_entry(entry) === false && !entry.is_subifd_link) return;\n if (entry.is_subifd_link && entry.count !== 1 && entry.format !== 4) return; // filter out bogus links\n\n if (!ifds['ifd' + entry.ifd]) {\n ifds['ifd' + entry.ifd] = { id: entry.ifd, entries: [] };\n }\n\n ifds['ifd' + entry.ifd].entries.push(entry);\n });\n\n // thumbnails are not supported just yet, so delete all information related to it\n delete ifds.ifd1;\n\n // Calculate output size\n var length = 8;\n Object.keys(ifds).forEach(function (ifd_no) {\n length += 2;\n\n ifds[ifd_no].entries.forEach(function (entry) {\n length += 12 + (entry.data_length > 4 ? Math.ceil(entry.data_length / 2) * 2 : 0);\n });\n\n length += 4;\n });\n\n this.output = new Uint8Array(length);\n this.output[0] = this.output[1] = (this.big_endian ? 'M' : 'I').charCodeAt(0);\n this.write_uint16(2, 0x2A);\n\n var offset = 8;\n var self = this;\n this.write_uint32(4, offset);\n\n Object.keys(ifds).forEach(function (ifd_no) {\n ifds[ifd_no].written_offset = offset;\n\n var ifd_start = offset;\n var ifd_end = ifd_start + 2 + ifds[ifd_no].entries.length * 12 + 4;\n offset = ifd_end;\n\n self.write_uint16(ifd_start, ifds[ifd_no].entries.length);\n\n ifds[ifd_no].entries.sort(function (a, b) {\n // IFD entries must be in order of increasing tag IDs\n return a.tag - b.tag;\n }).forEach(function (entry, idx) {\n var entry_offset = ifd_start + 2 + idx * 12;\n\n self.write_uint16(entry_offset, entry.tag);\n self.write_uint16(entry_offset + 2, entry.format);\n self.write_uint32(entry_offset + 4, entry.count);\n\n if (entry.is_subifd_link) {\n // filled in later\n if (ifds['ifd' + entry.tag]) ifds['ifd' + entry.tag].link_offset = entry_offset + 8;\n } else if (entry.data_length <= 4) {\n self.output.set(\n self.input.subarray(entry.data_offset - self.start, entry.data_offset - self.start + 4),\n entry_offset + 8\n );\n } else {\n self.write_uint32(entry_offset + 8, offset);\n self.output.set(\n self.input.subarray(entry.data_offset - self.start, entry.data_offset - self.start + entry.data_length),\n offset\n );\n offset += Math.ceil(entry.data_length / 2) * 2;\n }\n });\n\n var next_ifd = ifds['ifd' + (ifds[ifd_no].id + 1)];\n if (next_ifd) next_ifd.link_offset = ifd_end - 4;\n });\n\n Object.keys(ifds).forEach(function (ifd_no) {\n if (ifds[ifd_no].written_offset && ifds[ifd_no].link_offset) {\n self.write_uint32(ifds[ifd_no].link_offset, ifds[ifd_no].written_offset);\n }\n });\n\n if (this.output.length !== offset) throw error('internal error: incorrect buffer size allocated');\n\n return this.output;\n};\n\n\nExifParser.prototype.read_uint16 = function (offset) {\n var d = this.input;\n if (offset + 2 > d.length) throw error('unexpected EOF', 'EBADDATA');\n\n return this.big_endian ?\n d[offset] * 0x100 + d[offset + 1] :\n d[offset] + d[offset + 1] * 0x100;\n};\n\n\nExifParser.prototype.read_uint32 = function (offset) {\n var d = this.input;\n if (offset + 4 > d.length) throw error('unexpected EOF', 'EBADDATA');\n\n return this.big_endian ?\n d[offset] * 0x1000000 + d[offset + 1] * 0x10000 + d[offset + 2] * 0x100 + d[offset + 3] :\n d[offset] + d[offset + 1] * 0x100 + d[offset + 2] * 0x10000 + d[offset + 3] * 0x1000000;\n};\n\n\nExifParser.prototype.write_uint16 = function (offset, value) {\n var d = this.output;\n\n if (this.big_endian) {\n d[offset] = (value >>> 8) & 0xFF;\n d[offset + 1] = value & 0xFF;\n } else {\n d[offset] = value & 0xFF;\n d[offset + 1] = (value >>> 8) & 0xFF;\n }\n};\n\n\nExifParser.prototype.write_uint32 = function (offset, value) {\n var d = this.output;\n\n if (this.big_endian) {\n d[offset] = (value >>> 24) & 0xFF;\n d[offset + 1] = (value >>> 16) & 0xFF;\n d[offset + 2] = (value >>> 8) & 0xFF;\n d[offset + 3] = value & 0xFF;\n } else {\n d[offset] = value & 0xFF;\n d[offset + 1] = (value >>> 8) & 0xFF;\n d[offset + 2] = (value >>> 16) & 0xFF;\n d[offset + 3] = (value >>> 24) & 0xFF;\n }\n};\n\n\nExifParser.prototype.is_subifd_link = function (ifd, tag) {\n return (ifd === 0 && tag === 0x8769) || // SubIFD\n (ifd === 0 && tag === 0x8825) || // GPS Info\n (ifd === 0x8769 && tag === 0xA005); // Interop IFD\n};\n\n\n// Returns byte length of a single component of a given format\n//\nExifParser.prototype.exif_format_length = function (format) {\n switch (format) {\n case 1: // byte\n case 2: // ascii\n case 6: // sbyte\n case 7: // undefined\n return 1;\n\n case 3: // short\n case 8: // sshort\n return 2;\n\n case 4: // long\n case 9: // slong\n case 11: // float\n return 4;\n\n case 5: // rational\n case 10: // srational\n case 12: // double\n return 8;\n\n default:\n // unknown type\n return 0;\n }\n};\n\n\n// Reads Exif data\n//\nExifParser.prototype.exif_format_read = function (format, offset) {\n var v;\n\n switch (format) {\n case 1: // byte\n case 2: // ascii\n v = this.input[offset];\n return v;\n\n case 6: // sbyte\n v = this.input[offset];\n return v | (v & 0x80) * 0x1fffffe;\n\n case 3: // short\n v = this.read_uint16(offset);\n return v;\n\n case 8: // sshort\n v = this.read_uint16(offset);\n return v | (v & 0x8000) * 0x1fffe;\n\n case 4: // long\n v = this.read_uint32(offset);\n return v;\n\n case 9: // slong\n v = this.read_uint32(offset);\n return v | 0;\n\n case 5: // rational\n case 10: // srational\n case 11: // float\n case 12: // double\n return null; // not implemented\n\n case 7: // undefined\n return null; // blob\n\n default:\n // unknown type\n return null;\n }\n};\n\n\nExifParser.prototype.scan_ifd = function (ifd_no, offset, on_entry) {\n var entry_count = this.read_uint16(offset);\n\n offset += 2;\n\n for (var i = 0; i < entry_count; i++) {\n var tag = this.read_uint16(offset);\n var format = this.read_uint16(offset + 2);\n var count = this.read_uint32(offset + 4);\n\n var comp_length = this.exif_format_length(format);\n var data_length = count * comp_length;\n var data_offset = data_length <= 4 ? offset + 8 : this.read_uint32(offset + 8);\n var is_subifd_link = false;\n\n if (data_offset + data_length > this.input.length) {\n throw error('unexpected EOF', 'EBADDATA');\n }\n\n var value = [];\n var comp_offset = data_offset;\n\n for (var j = 0; j < count; j++, comp_offset += comp_length) {\n var item = this.exif_format_read(format, comp_offset);\n if (item === null) {\n value = null;\n break;\n }\n value.push(item);\n }\n\n if (Array.isArray(value) && format === 2) {\n try {\n value = utf8_decode(String.fromCharCode.apply(null, value));\n } catch (_) {\n value = null;\n }\n\n if (value && value[value.length - 1] === '\\0') value = value.slice(0, -1);\n }\n\n if (this.is_subifd_link(ifd_no, tag)) {\n if (Array.isArray(value) && Number.isInteger(value[0]) && value[0] > 0) {\n this.ifds_to_read.push({\n id: tag,\n offset: value[0]\n });\n is_subifd_link = true;\n }\n }\n\n var entry = {\n is_big_endian: this.big_endian,\n ifd: ifd_no,\n tag: tag,\n format: format,\n count: count,\n entry_offset: offset + this.start,\n data_length: data_length,\n data_offset: data_offset + this.start,\n value: value,\n is_subifd_link: is_subifd_link\n };\n\n if (on_entry(entry) === false) {\n this.aborted = true;\n return;\n }\n\n offset += 12;\n }\n\n if (ifd_no === 0) {\n this.ifds_to_read.push({\n id: 1,\n offset: this.read_uint32(offset)\n });\n }\n};\n\n\n// Check whether input is a JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n//\n// Returns true if it is and false otherwise\n//\nmodule.exports.is_jpeg = function (jpeg_bin) {\n return jpeg_bin.length >= 4 && jpeg_bin[0] === 0xFF && jpeg_bin[1] === 0xD8 && jpeg_bin[2] === 0xFF;\n};\n\n\n// Call an iterator on each segment in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_segment: Function - callback executed on each JPEG marker segment\n// - segment: Object\n// - code: Number - marker type (2nd byte, e.g. 0xE0 for APP0)\n// - offset: Number - offset of the first byte (0xFF) relative to `jpeg_bin` start\n// - length: Number - length of the entire marker segment including first two bytes and length\n// - 2 for standalone markers\n// - 4+length for markers with data\n//\n// Iteration stops when `EOI` (0xFFD9) marker is reached or if `on_segment`\n// function returns `false`.\n//\nmodule.exports.jpeg_segments_each = function (jpeg_bin, on_segment) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_segment !== 'function') {\n throw error('Invalid argument (on_segment), Function expected', 'EINVAL');\n }\n\n if (!module.exports.is_jpeg(jpeg_bin)) {\n throw error('Unknown file format', 'ENOTJPEG');\n }\n\n var offset = 0, length = jpeg_bin.length, inside_scan = false;\n\n for (;;) {\n var segment_code, segment_length;\n\n if (offset + 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n var byte1 = jpeg_bin[offset];\n var byte2 = jpeg_bin[offset + 1];\n\n if (byte1 === 0xFF && byte2 === 0xFF) {\n // padding\n segment_code = 0xFF;\n segment_length = 1;\n\n } else if (byte1 === 0xFF && byte2 !== 0) {\n // marker\n segment_code = byte2;\n segment_length = 2;\n\n if ((0xD0 <= segment_code && segment_code <= 0xD9) || segment_code === 0x01) ; else {\n if (offset + 3 >= length) throw error('Unexpected EOF', 'EBADDATA');\n segment_length += jpeg_bin[offset + 2] * 0x100 + jpeg_bin[offset + 3];\n if (segment_length < 2) throw error('Invalid segment length', 'EBADDATA');\n if (offset + segment_length - 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n }\n\n if (inside_scan) {\n if (segment_code >= 0xD0 && segment_code <= 0xD7) ; else {\n inside_scan = false;\n }\n }\n\n if (segment_code === 0xDA /* SOS */) inside_scan = true;\n } else if (inside_scan) {\n // entropy-encoded segment\n for (var pos = offset + 1; ; pos++) {\n // scan until we find FF\n if (pos >= length) throw error('Unexpected EOF', 'EBADDATA');\n if (jpeg_bin[pos] === 0xFF) {\n if (pos + 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n if (jpeg_bin[pos + 1] !== 0) {\n segment_code = 0;\n segment_length = pos - offset;\n break;\n }\n }\n }\n } else {\n throw error('Unexpected byte at segment start: ' + to_hex(byte1) +\n ' (offset ' + to_hex(offset) + ')', 'EBADDATA');\n }\n\n if (on_segment({ code: segment_code, offset: offset, length: segment_length }) === false) break;\n if (segment_code === 0xD9 /* EOI */) break;\n offset += segment_length;\n }\n};\n\n\n// Replace or remove segments in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_segment: Function - callback executed on each JPEG marker segment\n// - segment: Object\n// - code: Number - marker type (2nd byte, e.g. 0xE0 for APP0)\n// - offset: Number - offset of the first byte (0xFF) relative to `jpeg_bin` start\n// - length: Number - length of the entire marker segment including first two bytes and length\n// - 2 for standalone markers\n// - 4+length for markers with data\n//\n// `on_segment` function should return one of the following:\n// - `false` - segment is removed from the output\n// - Uint8Array - segment is replaced with the new data\n// - [ Uint8Array ] - segment is replaced with the new data\n// - anything else - segment is copied to the output as is\n//\n// Any data after `EOI` (0xFFD9) marker is removed.\n//\nmodule.exports.jpeg_segments_filter = function (jpeg_bin, on_segment) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_segment !== 'function') {\n throw error('Invalid argument (on_segment), Function expected', 'EINVAL');\n }\n\n var ranges = [];\n var out_length = 0;\n\n module.exports.jpeg_segments_each(jpeg_bin, function (segment) {\n var new_segment = on_segment(segment);\n\n if (is_uint8array(new_segment)) {\n ranges.push({ data: new_segment });\n out_length += new_segment.length;\n } else if (Array.isArray(new_segment)) {\n new_segment.filter(is_uint8array).forEach(function (s) {\n ranges.push({ data: s });\n out_length += s.length;\n });\n } else if (new_segment !== false) {\n var new_range = { start: segment.offset, end: segment.offset + segment.length };\n\n if (ranges.length > 0 && ranges[ranges.length - 1].end === new_range.start) {\n ranges[ranges.length - 1].end = new_range.end;\n } else {\n ranges.push(new_range);\n }\n\n out_length += segment.length;\n }\n });\n\n var result = new Uint8Array(out_length);\n var offset = 0;\n\n ranges.forEach(function (range) {\n var data = range.data || jpeg_bin.subarray(range.start, range.end);\n result.set(data, offset);\n offset += data.length;\n });\n\n return result;\n};\n\n\n// Call an iterator on each Exif entry in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_entry: Function - callback executed on each Exif entry\n// - entry: Object\n// - is_big_endian: Boolean - whether Exif uses big or little endian byte alignment\n// - ifd: Number - IFD identifier (0 for IFD0, 1 for IFD1, 0x8769 for SubIFD,\n// 0x8825 for GPS Info, 0xA005 for Interop IFD)\n// - tag: Number - exif entry tag (0x0110 - camera name, 0x0112 - orientation, etc. - see Exif spec)\n// - format: Number - exif entry format (1 - byte, 2 - ascii, 3 - short, etc. - see Exif spec)\n// - count: Number - number of components of the given format inside data\n// (usually 1, or string length for ascii format)\n// - entry_offset: Number - start of Exif entry (entry length is always 12, so not included)\n// - data_offset: Number - start of data attached to Exif entry (will overlap with entry if length <= 4)\n// - data_length: Number - length of data attached to Exif entry\n// - value: Array|String|Null - our best attempt at parsing data (not all formats supported right now)\n// - is_subifd_link: Boolean - whether this entry is recognized to be a link to subifd (can't filter these out)\n//\n// Iteration stops early if iterator returns `false`.\n//\n// If Exif wasn't found anywhere (before start of the image data, SOS),\n// iterator is never executed.\n//\nmodule.exports.jpeg_exif_tags_each = function (jpeg_bin, on_exif_entry) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_exif_entry !== 'function') {\n throw error('Invalid argument (on_exif_entry), Function expected', 'EINVAL');\n }\n\n /* eslint-disable consistent-return */\n module.exports.jpeg_segments_each(jpeg_bin, function (segment) {\n if (segment.code === 0xDA /* SOS */) return false;\n\n // look for APP1 segment and compare header with 'Exif\\0\\0'\n if (segment.code === 0xE1 && segment.length >= 10 &&\n jpeg_bin[segment.offset + 4] === 0x45 && jpeg_bin[segment.offset + 5] === 0x78 &&\n jpeg_bin[segment.offset + 6] === 0x69 && jpeg_bin[segment.offset + 7] === 0x66 &&\n jpeg_bin[segment.offset + 8] === 0x00 && jpeg_bin[segment.offset + 9] === 0x00) {\n\n new ExifParser(jpeg_bin, segment.offset + 10, segment.offset + segment.length).each(on_exif_entry);\n return false;\n }\n });\n};\n\n\n// Remove Exif entries in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_entry: Function - callback executed on each Exif entry\n// - entry: Object\n// - is_big_endian: Boolean - whether Exif uses big or little endian byte alignment\n// - ifd: Number - IFD identifier (0 for IFD0, 1 for IFD1, 0x8769 for SubIFD,\n// 0x8825 for GPS Info, 0xA005 for Interop IFD)\n// - tag: Number - exif entry tag (0x0110 - camera name, 0x0112 - orientation, etc. - see Exif spec)\n// - format: Number - exif entry format (1 - byte, 2 - ascii, 3 - short, etc. - see Exif spec)\n// - count: Number - number of components of the given format inside data\n// (usually 1, or string length for ascii format)\n// - entry_offset: Number - start of Exif entry (entry length is always 12, so not included)\n// - data_offset: Number - start of data attached to Exif entry (will overlap with entry if length <= 4)\n// - data_length: Number - length of data attached to Exif entry\n// - value: Array|String|Null - our best attempt at parsing data (not all formats supported right now)\n// - is_subifd_link: Boolean - whether this entry is recognized to be a link to subifd (can't filter these out)\n//\n// This function removes following from Exif:\n// - all entries where iterator returned false (except subifd links which are mandatory)\n// - IFD1 and thumbnail image (the purpose of this function is to reduce file size,\n// so thumbnail is usually the first thing to go)\n// - all other data that isn't in IFD0, SubIFD, GPSIFD, InteropIFD\n// (theoretically possible proprietary extensions, I haven't seen any of these yet)\n//\n// Changing data inside Exif entries is NOT supported yet (modifying `entry` object inside callback may break stuff).\n//\n// If Exif wasn't found anywhere (before start of the image data, SOS),\n// iterator is never executed, and original JPEG is returned as is.\n//\nmodule.exports.jpeg_exif_tags_filter = function (jpeg_bin, on_exif_entry) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_exif_entry !== 'function') {\n throw error('Invalid argument (on_exif_entry), Function expected', 'EINVAL');\n }\n\n var stop_search = false;\n\n return module.exports.jpeg_segments_filter(jpeg_bin, function (segment) {\n if (stop_search) return;\n if (segment.code === 0xDA /* SOS */) stop_search = true;\n\n // look for APP1 segment and compare header with 'Exif\\0\\0'\n if (segment.code === 0xE1 && segment.length >= 10 &&\n jpeg_bin[segment.offset + 4] === 0x45 && jpeg_bin[segment.offset + 5] === 0x78 &&\n jpeg_bin[segment.offset + 6] === 0x69 && jpeg_bin[segment.offset + 7] === 0x66 &&\n jpeg_bin[segment.offset + 8] === 0x00 && jpeg_bin[segment.offset + 9] === 0x00) {\n\n var new_exif = new ExifParser(jpeg_bin, segment.offset + 10, segment.offset + segment.length)\n .filter(on_exif_entry);\n if (!new_exif) return false;\n\n var header = new Uint8Array(10);\n\n header.set(jpeg_bin.slice(segment.offset, segment.offset + 10));\n header[2] = ((new_exif.length + 8) >>> 8) & 0xFF;\n header[3] = (new_exif.length + 8) & 0xFF;\n\n stop_search = true;\n return [ header, new_exif ];\n }\n });\n};\n\n\n// Inserts a custom comment marker segment into JPEG file.\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - comment: String\n//\n// Comment is inserted after first two bytes (FFD8, SOI).\n//\n// If JFIF (APP0) marker exists immediately after SOI (as mandated by the JFIF\n// spec), we insert comment after it instead.\n//\nmodule.exports.jpeg_add_comment = function (jpeg_bin, comment) {\n var comment_inserted = false, segment_count = 0;\n\n return module.exports.jpeg_segments_filter(jpeg_bin, function (segment) {\n segment_count++;\n if (segment_count === 1 && segment.code === 0xD8 /* SOI */) return;\n if (segment_count === 2 && segment.code === 0xE0 /* APP0 */) return;\n\n if (comment_inserted) return;\n comment = utf8_encode(comment);\n\n // comment segment\n var csegment = new Uint8Array(5 + comment.length);\n var offset = 0;\n\n csegment[offset++] = 0xFF;\n csegment[offset++] = 0xFE;\n csegment[offset++] = ((comment.length + 3) >>> 8) & 0xFF;\n csegment[offset++] = (comment.length + 3) & 0xFF;\n\n comment.split('').forEach(function (c) {\n csegment[offset++] = c.charCodeAt(0) & 0xFF;\n });\n\n csegment[offset++] = 0;\n comment_inserted = true;\n\n return [ csegment, jpeg_bin.subarray(segment.offset, segment.offset + segment.length) ];\n });\n};\n});\n\nfunction jpeg_patch_exif(env) {\n return this._getUint8Array(env.blob).then(function (data) {\n env.is_jpeg = image_traverse.is_jpeg(data);\n\n if (!env.is_jpeg) return Promise.resolve(env);\n\n env.orig_blob = env.blob;\n\n try {\n var exif_is_big_endian, orientation_offset;\n\n /* eslint-disable consistent-return */\n image_traverse.jpeg_exif_tags_each(data, function (entry) {\n if (entry.ifd === 0 && entry.tag === 0x112 && Array.isArray(entry.value)) {\n env.orientation = entry.value[0] || 1;\n exif_is_big_endian = entry.is_big_endian;\n orientation_offset = entry.data_offset;\n return false;\n }\n });\n\n if (orientation_offset) {\n var orientation_patch = exif_is_big_endian ?\n new Uint8Array([ 0, 1 ]) :\n new Uint8Array([ 1, 0 ]);\n\n env.blob = new Blob([\n data.slice(0, orientation_offset),\n orientation_patch,\n data.slice(orientation_offset + 2)\n ], { type: 'image/jpeg' });\n }\n } catch (_) {}\n\n return env;\n });\n}\n\n\nfunction jpeg_rotate_canvas(env) {\n if (!env.is_jpeg) return Promise.resolve(env);\n\n var orientation = env.orientation - 1;\n if (!orientation) return Promise.resolve(env);\n\n var canvas;\n\n if (orientation & 4) {\n canvas = this.pica.options.createCanvas(env.out_canvas.height, env.out_canvas.width);\n } else {\n canvas = this.pica.options.createCanvas(env.out_canvas.width, env.out_canvas.height);\n }\n\n var ctx = canvas.getContext('2d');\n\n ctx.save();\n\n if (orientation & 1) ctx.transform(-1, 0, 0, 1, canvas.width, 0);\n if (orientation & 2) ctx.transform(-1, 0, 0, -1, canvas.width, canvas.height);\n if (orientation & 4) ctx.transform(0, 1, 1, 0, 0, 0);\n\n ctx.drawImage(env.out_canvas, 0, 0);\n ctx.restore();\n\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n env.out_canvas.width = env.out_canvas.height = 0;\n\n env.out_canvas = canvas;\n\n return Promise.resolve(env);\n}\n\n\nfunction jpeg_attach_orig_segments(env) {\n if (!env.is_jpeg) return Promise.resolve(env);\n\n return Promise.all([\n this._getUint8Array(env.blob),\n this._getUint8Array(env.out_blob)\n ]).then(function (res) {\n var data = res[0];\n var data_out = res[1];\n\n if (!image_traverse.is_jpeg(data)) return Promise.resolve(env);\n\n var segments = [];\n\n image_traverse.jpeg_segments_each(data, function (segment) {\n if (segment.code === 0xDA /* SOS */) return false;\n segments.push(segment);\n });\n\n segments = segments\n .filter(function (segment) {\n // Drop ICC_PROFILE\n //\n if (segment.code === 0xE2) return false;\n\n // Keep all APPn segments excluding APP2 (ICC_PROFILE),\n // remove others because most of them depend on image data (DCT and such).\n //\n // APP0 - JFIF, APP1 - Exif, the rest are photoshop metadata and such\n //\n // See full list at https://www.w3.org/Graphics/JPEG/itu-t81.pdf (table B.1 on page 32)\n //\n if (segment.code >= 0xE0 && segment.code < 0xF0) return true;\n\n // Keep comments\n //\n if (segment.code === 0xFE) return true;\n\n return false;\n })\n .map(function (segment) {\n return data.slice(segment.offset, segment.offset + segment.length);\n });\n\n env.out_blob = new Blob(\n // intentionally omitting expected JFIF segment (offset 2 to 20)\n [ data_out.slice(0, 2) ].concat(segments).concat([ data_out.slice(20) ]),\n { type: 'image/jpeg' }\n );\n\n return env;\n });\n}\n\n\nfunction assign(reducer) {\n reducer.before('_blob_to_image', jpeg_patch_exif);\n reducer.after('_transform', jpeg_rotate_canvas);\n reducer.after('_create_blob', jpeg_attach_orig_segments);\n}\n\n\nvar jpeg_patch_exif_1 = jpeg_patch_exif;\nvar jpeg_rotate_canvas_1 = jpeg_rotate_canvas;\nvar jpeg_attach_orig_segments_1 = jpeg_attach_orig_segments;\nvar assign_1 = assign;\n\nvar jpeg_plugins = {\n\tjpeg_patch_exif: jpeg_patch_exif_1,\n\tjpeg_rotate_canvas: jpeg_rotate_canvas_1,\n\tjpeg_attach_orig_segments: jpeg_attach_orig_segments_1,\n\tassign: assign_1\n};\n\nfunction ImageBlobReduce(options) {\n if (!(this instanceof ImageBlobReduce)) return new ImageBlobReduce(options);\n\n options = options || {};\n\n this.pica = options.pica || pica({});\n this.initialized = false;\n\n this.utils = utils;\n}\n\n\nImageBlobReduce.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\nImageBlobReduce.prototype.init = function () {\n this.use(jpeg_plugins.assign);\n};\n\n\nImageBlobReduce.prototype.toBlob = function (blob, options) {\n var opts = utils.assign({ max: Infinity }, options);\n var env = {\n blob: blob,\n opts: opts\n };\n\n if (!this.initialized) {\n this.init();\n this.initialized = true;\n }\n\n return Promise.resolve(env)\n .then(this._blob_to_image)\n .then(this._calculate_size)\n .then(this._transform)\n .then(this._cleanup)\n .then(this._create_blob)\n .then(function (_env) {\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n _env.out_canvas.width = _env.out_canvas.height = 0;\n\n return _env.out_blob;\n });\n};\n\n\nImageBlobReduce.prototype.toCanvas = function (blob, options) {\n var opts = utils.assign({ max: Infinity }, options);\n var env = {\n blob: blob,\n opts: opts\n };\n\n if (!this.initialized) {\n this.init();\n this.initialized = true;\n }\n\n return Promise.resolve(env)\n .then(this._blob_to_image)\n .then(this._calculate_size)\n .then(this._transform)\n .then(this._cleanup)\n .then(function (_env) { return _env.out_canvas; });\n};\n\n\nImageBlobReduce.prototype.before = function (method_name, fn) {\n if (!this[method_name]) throw new Error('Method \"' + method_name + '\" does not exist');\n if (typeof fn !== 'function') throw new Error('Invalid argument \"fn\", function expected');\n\n var old_fn = this[method_name];\n var self = this;\n\n this[method_name] = function (env) {\n return fn.call(self, env).then(function (_env) {\n return old_fn.call(self, _env);\n });\n };\n\n return this;\n};\n\n\nImageBlobReduce.prototype.after = function (method_name, fn) {\n if (!this[method_name]) throw new Error('Method \"' + method_name + '\" does not exist');\n if (typeof fn !== 'function') throw new Error('Invalid argument \"fn\", function expected');\n\n var old_fn = this[method_name];\n var self = this;\n\n this[method_name] = function (env) {\n return old_fn.call(self, env).then(function (_env) {\n return fn.call(self, _env);\n });\n };\n\n return this;\n};\n\n\nImageBlobReduce.prototype._blob_to_image = function (env) {\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n env.image = document.createElement('img');\n env.image_url = URL.createObjectURL(env.blob);\n env.image.src = env.image_url;\n\n return new Promise(function (resolve, reject) {\n env.image.onerror = function () { reject(new Error('ImageBlobReduce: failed to create Image() from blob')); };\n env.image.onload = function () { resolve(env); };\n });\n};\n\n\nImageBlobReduce.prototype._calculate_size = function (env) {\n //\n // Note, if your need not \"symmetric\" resize logic, you MUST check\n // `env.orientation` (set by plugins) and swap width/height appropriately.\n //\n var scale_factor = env.opts.max / Math.max(env.image.width, env.image.height);\n\n if (scale_factor > 1) scale_factor = 1;\n\n env.transform_width = Math.max(Math.round(env.image.width * scale_factor), 1);\n env.transform_height = Math.max(Math.round(env.image.height * scale_factor), 1);\n\n // Info for user plugins, to check if scaling applied\n env.scale_factor = scale_factor;\n\n return Promise.resolve(env);\n};\n\n\nImageBlobReduce.prototype._transform = function (env) {\n env.out_canvas = this.pica.options.createCanvas(env.transform_width, env.transform_height);\n\n // Dim env temporary vars to prohibit use and avoid confusion when orientation\n // changed. You should take real size from canvas.\n env.transform_width = null;\n env.transform_height = null;\n\n // By default use alpha for png only\n var pica_opts = { alpha: env.blob.type === 'image/png' };\n\n // Extract pica options if been passed\n this.utils.assign(pica_opts, this.utils.pick_pica_resize_options(env.opts));\n\n return this.pica\n .resize(env.image, env.out_canvas, pica_opts)\n .then(function () { return env; });\n};\n\n\nImageBlobReduce.prototype._cleanup = function (env) {\n env.image.src = '';\n env.image = null;\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n if (URL.revokeObjectURL) URL.revokeObjectURL(env.image_url);\n\n env.image_url = null;\n\n return Promise.resolve(env);\n};\n\n\nImageBlobReduce.prototype._create_blob = function (env) {\n return this.pica.toBlob(env.out_canvas, env.blob.type)\n .then(function (blob) {\n env.out_blob = blob;\n return env;\n });\n};\n\n\nImageBlobReduce.prototype._getUint8Array = function (blob) {\n if (blob.arrayBuffer) {\n return blob.arrayBuffer().then(function (buf) {\n return new Uint8Array(buf);\n });\n }\n\n return new Promise(function (resolve, reject) {\n var fr = new FileReader();\n\n fr.readAsArrayBuffer(blob);\n\n fr.onload = function () { resolve(new Uint8Array(fr.result)); };\n fr.onerror = function () {\n reject(new Error('ImageBlobReduce: failed to load data from input blob'));\n fr.abort();\n };\n fr.onabort = function () {\n reject(new Error('ImageBlobReduce: failed to load data from input blob (aborted)'));\n };\n });\n};\n\n\nImageBlobReduce.pica = pica;\n\nvar imageBlobReduce = ImageBlobReduce;\n\nexport default imageBlobReduce;\n"],"names":["assign$1","to","from","s","key","pick","props","pick_pica_resize_options","pick_1","pick_pica_resize_options_1","utils","createCommonjsModule","fn","module","commonjsRequire","target","pica","exports","f","r","e","n","t","o","i","c","u","a","p","_dereq_","inherits","Multimath","mm_unsharp_mask","mm_resize","MathLib","requested_features","__requested_features","features","options","cache","result","clampTo8","convolveHorizontally","src","dest","srcW","srcH","destW","filters","g","b","filterPtr","filterShift","filterSize","srcPtr","srcY","destX","filterVal","srcOffset","destOffset","convolveVertically","createFilters","resetAlpha","dst","width","height","ptr","len","destH","scaleX","scaleY","offsetX","offsetY","quality","alpha","filtersX","filtersY","tmp","FILTER_INFO","FIXED_FRAC_BITS","toFixedPoint","num","srcSize","destSize","scale","offset","filterFunction","scaleInverted","scaleClamped","srcWindow","destPixel","srcPixel","srcFirst","srcLast","filterElementSize","floatFilter","fxpFilter","total","pxl","idx","floatVal","filterTotal","leftNotEmpty","rightNotEmpty","maxFilterElementSize","packedFilter","packedFilterPtr","slowCopy","x","xpi","asUint8Array","IS_LE","copyInt16asLE","target_offset","data","src_offset","tmp_offset","filtersX_offset","filtersY_offset","alloc_bytes","instance","mem","mem32","src32","dest32","glur_mono16","hsv_v16","img","size","out","max","amount","radius","threshold","v1","v2","vmul","diff","iTimes4","brightness","blured","amountFp","thresholdFp","pixels","img_bytes_cnt","hsv_bytes_cnt","blur_bytes_cnt","blur_line_byte_cnt","blur_coeffs_byte_cnt","img_offset","hsv_offset","blur_offset","blur_tmp_offset","blur_line_offset","blur_coeffs_offset","img32","GC_INTERVAL","Pool","create","idle","_this","resource","_this2","_this3","now","MIN_INNER_TILE_SIZE","fromWidth","fromHeight","toWidth","toHeight","srcTileSize","destTileBorder","minScale","stageCount","PIXEL_EPSILON","pixelFloor","nearest","pixelCeil","innerTileWidth","innerTileHeight","y","innerX","innerY","toTileWidth","toTileHeight","tiles","tile","objClass","obj","element","cname","concurrency","active","queue","roll","resolve","reject","err","createCanvas","bitmap","status","workerPayload","self","canvas","ctx","code","w","ev","usable","d","image","mathLib","tileOpts","returnBitmap","toImageData","_canvas","_ctx","a0","a1","a2","a3","b1","b2","left_corner","right_corner","gaussCoef","sigma","g1","g2","k","convolveMono16","line","coeff","prev_src","curr_src","curr_out","prev_out","prev_prev_out","src_index","out_index","line_index","j","coeff_a0","coeff_a1","coeff_b1","coeff_b2","blurMono16","tmp_line","ctor","superCtor","TempCtor","assign","base64decode","hasWebAssembly","DEFAULT_OPTIONS","MultiMath","opts","name","m","bytes","mem_size","memsize","env_extra","env_base","number","base","reminder","BASE64_MAP","str","input","bits","tailbits","wa","bin","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","source","symbols","bundleFn","sources","stringify","wkey","cacheKeys","l","exp","wcache","skey","scache","workerSources","resolveSources","depPath","depKey","URL","blob","workerUrl","worker","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","_i","_arr","_n","_d","_s","_e","webworkify","createStages","createRegions","singletones","NEED_SAFARI_FIX","DEFAULT_PICA_OPTS","tmpCanvas","DEFAULT_RESIZE_OPTS","CAN_NEW_IMAGE_DATA","CAN_CREATE_IMAGE_BITMAP","CAN_USE_CANVAS_GET_IMAGE_DATA","CAN_USE_OFFSCREEN_CANVAS","CAN_USE_CIB_REGION_FOR_IMAGE","workerFabric","url","Pica","limiter_key","wkr","wpool_key","initMath","mathlib","checkCibResize","checkOffscreenCanvas","checkCibRegion","transfer","stageEnv","extractTo","tmpCtx","processTile","imageBitmap","regions","jobs","cleanup","stages","_this4","_stages$shift","_stages$shift2","isLastStage","res","_this5","toCtx","iData","_this6","DEST_TILE_BORDER","_this7","mimeType","asString","asBuffer","image_traverse","error","message","to_hex","utf8_encode","utf8_decode","is_uint8array","ExifParser","jpeg_bin","exif_start","exif_end","sig","on_entry","ifds","entry","length","ifd_no","ifd_start","ifd_end","entry_offset","next_ifd","value","ifd","tag","format","v","entry_count","count","comp_length","data_length","data_offset","is_subifd_link","comp_offset","item","on_segment","inside_scan","segment_code","segment_length","byte1","byte2","pos","ranges","out_length","segment","new_segment","new_range","range","on_exif_entry","stop_search","new_exif","header","comment","comment_inserted","segment_count","csegment","jpeg_patch_exif","env","exif_is_big_endian","orientation_offset","orientation_patch","jpeg_rotate_canvas","orientation","jpeg_attach_orig_segments","data_out","segments","reducer","jpeg_patch_exif_1","jpeg_rotate_canvas_1","jpeg_attach_orig_segments_1","assign_1","jpeg_plugins","ImageBlobReduce","plugin","args","_env","method_name","old_fn","scale_factor","pica_opts","buf","fr","imageBlobReduce"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index-2K3MavtT.js b/excalidraw/excalidraw-app/build/assets/index-2K3MavtT.js deleted file mode 100644 index 8c2b499..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-2K3MavtT.js +++ /dev/null @@ -1,372 +0,0 @@ -var DA=Object.defineProperty;var OA=(e,t,n)=>t in e?DA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var M=(e,t,n)=>(OA(e,typeof t!="symbol"?t+"":t,n),n);function NA(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var ph=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function rc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var y5={exports:{}},y1={},v5={exports:{}},Te={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Ud=Symbol.for("react.element"),FA=Symbol.for("react.portal"),$A=Symbol.for("react.fragment"),BA=Symbol.for("react.strict_mode"),zA=Symbol.for("react.profiler"),HA=Symbol.for("react.provider"),UA=Symbol.for("react.context"),WA=Symbol.for("react.forward_ref"),VA=Symbol.for("react.suspense"),GA=Symbol.for("react.memo"),jA=Symbol.for("react.lazy"),Gw=Symbol.iterator;function YA(e){return e===null||typeof e!="object"?null:(e=Gw&&e[Gw]||e["@@iterator"],typeof e=="function"?e:null)}var E5={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w5=Object.assign,b5={};function ic(e,t,n){this.props=e,this.context=t,this.refs=b5,this.updater=n||E5}ic.prototype.isReactComponent={};ic.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ic.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function _5(){}_5.prototype=ic.prototype;function zy(e,t,n){this.props=e,this.context=t,this.refs=b5,this.updater=n||E5}var Hy=zy.prototype=new _5;Hy.constructor=zy;w5(Hy,ic.prototype);Hy.isPureReactComponent=!0;var jw=Array.isArray,x5=Object.prototype.hasOwnProperty,Uy={current:null},S5={key:!0,ref:!0,__self:!0,__source:!0};function k5(e,t,n){var r,i={},o=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)x5.call(t,r)&&!S5.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,B=$[N];if(0>>1;Ni(j,R))Xi(ee,j)?($[N]=ee,$[X]=R,N=X):($[N]=j,$[W]=R,N=W);else if(Xi(ee,R))$[N]=ee,$[X]=R,N=X;else break e}}return Y}function i($,Y){var R=$.sortIndex-Y.sortIndex;return R!==0?R:$.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var l=[],c=[],u=1,d=null,h=3,m=!1,g=!1,p=!1,v=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w($){for(var Y=n(c);Y!==null;){if(Y.callback===null)r(c);else if(Y.startTime<=$)r(c),Y.sortIndex=Y.expirationTime,t(l,Y);else break;Y=n(c)}}function x($){if(p=!1,w($),!g)if(n(l)!==null)g=!0,q(C);else{var Y=n(c);Y!==null&&U(x,Y.startTime-$)}}function C($,Y){g=!1,p&&(p=!1,y(T),T=-1),m=!0;var R=h;try{for(w(Y),d=n(l);d!==null&&(!(d.expirationTime>Y)||$&&!F());){var N=d.callback;if(typeof N=="function"){d.callback=null,h=d.priorityLevel;var B=N(d.expirationTime<=Y);Y=e.unstable_now(),typeof B=="function"?d.callback=B:d===n(l)&&r(l),w(Y)}else r(l);d=n(l)}if(d!==null)var z=!0;else{var W=n(c);W!==null&&U(x,W.startTime-Y),z=!1}return z}finally{d=null,h=R,m=!1}}var S=!1,I=null,T=-1,L=5,A=-1;function F(){return!(e.unstable_now()-A$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):L=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function($){switch(h){case 1:case 2:case 3:var Y=3;break;default:Y=h}var R=h;h=Y;try{return $()}finally{h=R}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,Y){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var R=h;h=$;try{return Y()}finally{h=R}},e.unstable_scheduleCallback=function($,Y,R){var N=e.unstable_now();switch(typeof R=="object"&&R!==null?(R=R.delay,R=typeof R=="number"&&0N?($.sortIndex=R,t(c,$),n(l)===null&&$===n(c)&&(p?(y(T),T=-1):p=!0,U(x,R-N))):($.sortIndex=B,t(l,$),g||m||(g=!0,q(C))),$},e.unstable_shouldYield=F,e.unstable_wrapCallback=function($){var Y=h;return function(){var R=h;h=Y;try{return $.apply(this,arguments)}finally{h=R}}}})(M5);T5.exports=M5;var oL=T5.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var A5=_,ir=oL;function Q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_0=Object.prototype.hasOwnProperty,sL=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Kw={},Zw={};function aL(e){return _0.call(Zw,e)?!0:_0.call(Kw,e)?!1:sL.test(e)?Zw[e]=!0:(Kw[e]=!0,!1)}function lL(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function cL(e,t,n,r){if(t===null||typeof t>"u"||lL(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Cn(e,t,n,r,i,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var Jt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Jt[e]=new Cn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Jt[t]=new Cn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Jt[e]=new Cn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Jt[e]=new Cn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Jt[e]=new Cn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Jt[e]=new Cn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Jt[e]=new Cn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Jt[e]=new Cn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Jt[e]=new Cn(e,5,!1,e.toLowerCase(),null,!1,!1)});var Gy=/[\-:]([a-z])/g;function jy(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Gy,jy);Jt[t]=new Cn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Gy,jy);Jt[t]=new Cn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Gy,jy);Jt[t]=new Cn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Jt[e]=new Cn(e,1,!1,e.toLowerCase(),null,!1,!1)});Jt.xlinkHref=new Cn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Jt[e]=new Cn(e,1,!1,e.toLowerCase(),null,!0,!0)});function Yy(e,t,n,r){var i=Jt.hasOwnProperty(t)?Jt[t]:null;(i!==null?i.type!==0:r||!(2a||i[s]!==o[a]){var l=` -`+i[s].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=s&&0<=a);break}}}finally{$g=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?iu(e):""}function uL(e){switch(e.tag){case 5:return iu(e.type);case 16:return iu("Lazy");case 13:return iu("Suspense");case 19:return iu("SuspenseList");case 0:case 2:case 15:return e=Bg(e.type,!1),e;case 11:return e=Bg(e.type.render,!1),e;case 1:return e=Bg(e.type,!0),e;default:return""}}function I0(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case nl:return"Fragment";case tl:return"Portal";case x0:return"Profiler";case Ky:return"StrictMode";case S0:return"Suspense";case k0:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case R5:return(e.displayName||"Context")+".Consumer";case P5:return(e._context.displayName||"Context")+".Provider";case Zy:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Xy:return t=e.displayName||null,t!==null?t:I0(e.type)||"Memo";case Eo:t=e._payload,e=e._init;try{return I0(e(t))}catch{}}return null}function dL(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return I0(t);case 8:return t===Ky?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function is(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function O5(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function hL(e){var t=O5(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Eh(e){e._valueTracker||(e._valueTracker=hL(e))}function N5(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=O5(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Qf(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function C0(e,t){var n=t.checked;return ft({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qw(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=is(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function F5(e,t){t=t.checked,t!=null&&Yy(e,"checked",t,!1)}function T0(e,t){F5(e,t);var n=is(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?M0(e,t.type,n):t.hasOwnProperty("defaultValue")&&M0(e,t.type,is(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Qw(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function M0(e,t,n){(t!=="number"||Qf(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ou=Array.isArray;function bl(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=wh.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Yu(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Eu={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fL=["Webkit","ms","Moz","O"];Object.keys(Eu).forEach(function(e){fL.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Eu[t]=Eu[e]})});function H5(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Eu.hasOwnProperty(e)&&Eu[e]?(""+t).trim():t+"px"}function U5(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=H5(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var mL=ft({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function P0(e,t){if(t){if(mL[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Q(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Q(62))}}function R0(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var D0=null;function qy(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var O0=null,_l=null,xl=null;function t3(e){if(e=Gd(e)){if(typeof O0!="function")throw Error(Q(280));var t=e.stateNode;t&&(t=_1(t),O0(e.stateNode,e.type,t))}}function W5(e){_l?xl?xl.push(e):xl=[e]:_l=e}function V5(){if(_l){var e=_l,t=xl;if(xl=_l=null,t3(e),t)for(e=0;e>>=0,e===0?32:31-(kL(e)/IL|0)|0}var bh=64,_h=4194304;function su(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function nm(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,s=n&268435455;if(s!==0){var a=s&~i;a!==0?r=su(a):(o&=s,o!==0&&(r=su(o)))}else s=n&~i,s!==0?r=su(s):o!==0&&(r=su(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Wd(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Wr(t),e[t]=n}function AL(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=bu),u3=" ",d3=!1;function ux(e,t){switch(e){case"keyup":return i9.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function dx(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var rl=!1;function s9(e,t){switch(e){case"compositionend":return dx(t);case"keypress":return t.which!==32?null:(d3=!0,u3);case"textInput":return e=t.data,e===u3&&d3?null:e;default:return null}}function a9(e,t){if(rl)return e==="compositionend"||!ov&&ux(e,t)?(e=lx(),gf=nv=Po=null,rl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=g3(n)}}function gx(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?gx(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function px(){for(var e=window,t=Qf();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Qf(e.document)}return t}function sv(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function p9(e){var t=px(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&gx(n.ownerDocument.documentElement,n)){if(r!==null&&sv(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=p3(n,o);var s=p3(n,r);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,il=null,H0=null,xu=null,U0=!1;function y3(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;U0||il==null||il!==Qf(r)||(r=il,"selectionStart"in r&&sv(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),xu&&Ju(xu,r)||(xu=r,r=om(H0,"onSelect"),0al||(e.current=K0[al],K0[al]=null,al--)}function Ze(e,t){al++,K0[al]=e.current,e.current=t}var os={},fn=ys(os),Fn=ys(!1),la=os;function $l(e,t){var n=e.type.contextTypes;if(!n)return os;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $n(e){return e=e.childContextTypes,e!=null}function am(){rt(Fn),rt(fn)}function S3(e,t,n){if(fn.current!==os)throw Error(Q(168));Ze(fn,t),Ze(Fn,n)}function kx(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Q(108,dL(e)||"Unknown",i));return ft({},n,r)}function lm(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||os,la=fn.current,Ze(fn,e),Ze(Fn,Fn.current),!0}function k3(e,t,n){var r=e.stateNode;if(!r)throw Error(Q(169));n?(e=kx(e,t,la),r.__reactInternalMemoizedMergedChildContext=e,rt(Fn),rt(fn),Ze(fn,e)):rt(Fn),Ze(Fn,n)}var $i=null,x1=!1,Jg=!1;function Ix(e){$i===null?$i=[e]:$i.push(e)}function T9(e){x1=!0,Ix(e)}function vs(){if(!Jg&&$i!==null){Jg=!0;var e=0,t=Ue;try{var n=$i;for(Ue=1;e>=s,i-=s,zi=1<<32-Wr(t)+i|n<T?(L=I,I=null):L=I.sibling;var A=h(y,I,w[T],x);if(A===null){I===null&&(I=L);break}e&&I&&A.alternate===null&&t(y,I),E=o(A,E,T),S===null?C=A:S.sibling=A,S=A,I=L}if(T===w.length)return n(y,I),lt&&Is(y,T),C;if(I===null){for(;TT?(L=I,I=null):L=I.sibling;var F=h(y,I,A.value,x);if(F===null){I===null&&(I=L);break}e&&I&&F.alternate===null&&t(y,I),E=o(F,E,T),S===null?C=F:S.sibling=F,S=F,I=L}if(A.done)return n(y,I),lt&&Is(y,T),C;if(I===null){for(;!A.done;T++,A=w.next())A=d(y,A.value,x),A!==null&&(E=o(A,E,T),S===null?C=A:S.sibling=A,S=A);return lt&&Is(y,T),C}for(I=r(y,I);!A.done;T++,A=w.next())A=m(I,y,T,A.value,x),A!==null&&(e&&A.alternate!==null&&I.delete(A.key===null?T:A.key),E=o(A,E,T),S===null?C=A:S.sibling=A,S=A);return e&&I.forEach(function(P){return t(y,P)}),lt&&Is(y,T),C}function v(y,E,w,x){if(typeof w=="object"&&w!==null&&w.type===nl&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case vh:e:{for(var C=w.key,S=E;S!==null;){if(S.key===C){if(C=w.type,C===nl){if(S.tag===7){n(y,S.sibling),E=i(S,w.props.children),E.return=y,y=E;break e}}else if(S.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Eo&&P3(C)===S.type){n(y,S.sibling),E=i(S,w.props),E.ref=Ac(y,S,w),E.return=y,y=E;break e}n(y,S);break}else t(y,S);S=S.sibling}w.type===nl?(E=na(w.props.children,y.mode,x,w.key),E.return=y,y=E):(x=xf(w.type,w.key,w.props,null,y.mode,x),x.ref=Ac(y,E,w),x.return=y,y=x)}return s(y);case tl:e:{for(S=w.key;E!==null;){if(E.key===S)if(E.tag===4&&E.stateNode.containerInfo===w.containerInfo&&E.stateNode.implementation===w.implementation){n(y,E.sibling),E=i(E,w.children||[]),E.return=y,y=E;break e}else{n(y,E);break}else t(y,E);E=E.sibling}E=ap(w,y.mode,x),E.return=y,y=E}return s(y);case Eo:return S=w._init,v(y,E,S(w._payload),x)}if(ou(w))return g(y,E,w,x);if(kc(w))return p(y,E,w,x);Mh(y,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,E!==null&&E.tag===6?(n(y,E.sibling),E=i(E,w),E.return=y,y=E):(n(y,E),E=sp(w,y.mode,x),E.return=y,y=E),s(y)):n(y,E)}return v}var zl=Dx(!0),Ox=Dx(!1),jd={},bi=ys(jd),rd=ys(jd),id=ys(jd);function Vs(e){if(e===jd)throw Error(Q(174));return e}function gv(e,t){switch(Ze(id,t),Ze(rd,e),Ze(bi,jd),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:L0(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=L0(t,e)}rt(bi),Ze(bi,t)}function Hl(){rt(bi),rt(rd),rt(id)}function Nx(e){Vs(id.current);var t=Vs(bi.current),n=L0(t,e.type);t!==n&&(Ze(rd,e),Ze(bi,n))}function pv(e){rd.current===e&&(rt(bi),rt(rd))}var ut=ys(0);function mm(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ep=[];function yv(){for(var e=0;en?n:4,e(!0);var r=tp.transition;tp.transition={};try{e(!1),t()}finally{Ue=n,tp.transition=r}}function Qx(){return _r().memoizedState}function P9(e,t,n){var r=Zo(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Jx(e))eS(t,n);else if(n=Ax(e,t,n,r),n!==null){var i=Sn();Vr(n,e,r,i),tS(n,t,r)}}function R9(e,t,n){var r=Zo(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Jx(e))eS(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,a=o(s,n);if(i.hasEagerState=!0,i.eagerState=a,Zr(a,s)){var l=t.interleaved;l===null?(i.next=i,fv(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=Ax(e,t,i,r),n!==null&&(i=Sn(),Vr(n,e,r,i),tS(n,t,r))}}function Jx(e){var t=e.alternate;return e===ht||t!==null&&t===ht}function eS(e,t){Su=gm=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function tS(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Jy(e,n)}}var pm={readContext:br,useCallback:nn,useContext:nn,useEffect:nn,useImperativeHandle:nn,useInsertionEffect:nn,useLayoutEffect:nn,useMemo:nn,useReducer:nn,useRef:nn,useState:nn,useDebugValue:nn,useDeferredValue:nn,useTransition:nn,useMutableSource:nn,useSyncExternalStore:nn,useId:nn,unstable_isNewReconciler:!1},D9={readContext:br,useCallback:function(e,t){return ui().memoizedState=[e,t===void 0?null:t],e},useContext:br,useEffect:D3,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ef(4194308,4,Yx.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ef(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ef(4,2,e,t)},useMemo:function(e,t){var n=ui();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ui();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=P9.bind(null,ht,e),[r.memoizedState,e]},useRef:function(e){var t=ui();return e={current:e},t.memoizedState=e},useState:R3,useDebugValue:_v,useDeferredValue:function(e){return ui().memoizedState=e},useTransition:function(){var e=R3(!1),t=e[0];return e=L9.bind(null,e[1]),ui().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ht,i=ui();if(lt){if(n===void 0)throw Error(Q(407));n=n()}else{if(n=t(),Wt===null)throw Error(Q(349));ua&30||Bx(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,D3(Hx.bind(null,r,o,e),[e]),r.flags|=2048,ad(9,zx.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=ui(),t=Wt.identifierPrefix;if(lt){var n=Hi,r=zi;n=(r&~(1<<32-Wr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=od++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[pi]=t,e[nd]=r,uS(e,t,!1,!1),t.stateNode=e;e:{switch(s=R0(n,r),n){case"dialog":Qe("cancel",e),Qe("close",e),i=r;break;case"iframe":case"object":case"embed":Qe("load",e),i=r;break;case"video":case"audio":for(i=0;iWl&&(t.flags|=128,r=!0,Lc(o,!1),t.lanes=4194304)}else{if(!r)if(e=mm(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Lc(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!lt)return rn(t),null}else 2*_t()-o.renderingStartTime>Wl&&n!==1073741824&&(t.flags|=128,r=!0,Lc(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(n=o.last,n!==null?n.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=_t(),t.sibling=null,n=ut.current,Ze(ut,r?n&1|2:n&1),t):(rn(t),null);case 22:case 23:return Tv(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Xn&1073741824&&(rn(t),t.subtreeFlags&6&&(t.flags|=8192)):rn(t),null;case 24:return null;case 25:return null}throw Error(Q(156,t.tag))}function U9(e,t){switch(lv(t),t.tag){case 1:return $n(t.type)&&am(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Hl(),rt(Fn),rt(fn),yv(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return pv(t),null;case 13:if(rt(ut),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Q(340));Bl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return rt(ut),null;case 4:return Hl(),null;case 10:return hv(t.type._context),null;case 22:case 23:return Tv(),null;case 24:return null;default:return null}}var Lh=!1,cn=!1,W9=typeof WeakSet=="function"?WeakSet:Set,ae=null;function dl(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){yt(e,t,r)}else n.current=null}function s2(e,t,n){try{n()}catch(r){yt(e,t,r)}}var W3=!1;function V9(e,t){if(W0=rm,e=px(),sv(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var s=0,a=-1,l=-1,c=0,u=0,d=e,h=null;t:for(;;){for(var m;d!==n||i!==0&&d.nodeType!==3||(a=s+i),d!==o||r!==0&&d.nodeType!==3||(l=s+r),d.nodeType===3&&(s+=d.nodeValue.length),(m=d.firstChild)!==null;)h=d,d=m;for(;;){if(d===e)break t;if(h===n&&++c===i&&(a=s),h===o&&++u===r&&(l=s),(m=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=m}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(V0={focusedElem:e,selectionRange:n},rm=!1,ae=t;ae!==null;)if(t=ae,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ae=e;else for(;ae!==null;){t=ae;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var p=g.memoizedProps,v=g.memoizedState,y=t.stateNode,E=y.getSnapshotBeforeUpdate(t.elementType===t.type?p:Dr(t.type,p),v);y.__reactInternalSnapshotBeforeUpdate=E}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Q(163))}}catch(x){yt(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,ae=e;break}ae=t.return}return g=W3,W3=!1,g}function ku(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&s2(t,n,o)}i=i.next}while(i!==r)}}function I1(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function a2(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function fS(e){var t=e.alternate;t!==null&&(e.alternate=null,fS(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[pi],delete t[nd],delete t[Y0],delete t[I9],delete t[C9])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function mS(e){return e.tag===5||e.tag===3||e.tag===4}function V3(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||mS(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function l2(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=sm));else if(r!==4&&(e=e.child,e!==null))for(l2(e,t,n),e=e.sibling;e!==null;)l2(e,t,n),e=e.sibling}function c2(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(c2(e,t,n),e=e.sibling;e!==null;)c2(e,t,n),e=e.sibling}var Yt=null,Nr=!1;function ho(e,t,n){for(n=n.child;n!==null;)gS(e,t,n),n=n.sibling}function gS(e,t,n){if(wi&&typeof wi.onCommitFiberUnmount=="function")try{wi.onCommitFiberUnmount(v1,n)}catch{}switch(n.tag){case 5:cn||dl(n,t);case 6:var r=Yt,i=Nr;Yt=null,ho(e,t,n),Yt=r,Nr=i,Yt!==null&&(Nr?(e=Yt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Yt.removeChild(n.stateNode));break;case 18:Yt!==null&&(Nr?(e=Yt,n=n.stateNode,e.nodeType===8?Qg(e.parentNode,n):e.nodeType===1&&Qg(e,n),qu(e)):Qg(Yt,n.stateNode));break;case 4:r=Yt,i=Nr,Yt=n.stateNode.containerInfo,Nr=!0,ho(e,t,n),Yt=r,Nr=i;break;case 0:case 11:case 14:case 15:if(!cn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&s2(n,t,s),i=i.next}while(i!==r)}ho(e,t,n);break;case 1:if(!cn&&(dl(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){yt(n,t,a)}ho(e,t,n);break;case 21:ho(e,t,n);break;case 22:n.mode&1?(cn=(r=cn)||n.memoizedState!==null,ho(e,t,n),cn=r):ho(e,t,n);break;default:ho(e,t,n)}}function G3(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new W9),t.forEach(function(r){var i=J9.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Tr(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~o}if(r=i,r=_t()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*j9(r/1960))-r,10e?16:e,Ro===null)var r=!1;else{if(e=Ro,Ro=null,Em=0,Re&6)throw Error(Q(331));var i=Re;for(Re|=4,ae=e.current;ae!==null;){var o=ae,s=o.child;if(ae.flags&16){var a=o.deletions;if(a!==null){for(var l=0;l_t()-Iv?ta(e,0):kv|=n),Bn(e,t)}function xS(e,t){t===0&&(e.mode&1?(t=_h,_h<<=1,!(_h&130023424)&&(_h=4194304)):t=1);var n=Sn();e=qi(e,t),e!==null&&(Wd(e,t,n),Bn(e,n))}function Q9(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),xS(e,n)}function J9(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Q(314))}r!==null&&r.delete(t),xS(e,n)}var SS;SS=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Fn.current)Rn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Rn=!1,z9(e,t,n);Rn=!!(e.flags&131072)}else Rn=!1,lt&&t.flags&1048576&&Cx(t,um,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wf(e,t),e=t.pendingProps;var i=$l(t,fn.current);kl(t,n),i=Ev(null,t,r,e,i,n);var o=wv();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$n(r)?(o=!0,lm(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,mv(t),i.updater=S1,t.stateNode=i,i._reactInternals=t,J0(t,r,e,n),t=n2(null,t,r,!0,o,n)):(t.tag=0,lt&&o&&av(t),En(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wf(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=tP(r),e=Dr(r,e),i){case 0:t=t2(null,t,r,e,n);break e;case 1:t=z3(null,t,r,e,n);break e;case 11:t=$3(null,t,r,e,n);break e;case 14:t=B3(null,t,r,Dr(r.type,e),n);break e}throw Error(Q(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dr(r,i),t2(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dr(r,i),z3(e,t,r,i,n);case 3:e:{if(aS(t),e===null)throw Error(Q(387));r=t.pendingProps,o=t.memoizedState,i=o.element,Lx(e,t),fm(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Ul(Error(Q(423)),t),t=H3(e,t,r,n,i);break e}else if(r!==i){i=Ul(Error(Q(424)),t),t=H3(e,t,r,n,i);break e}else for(qn=jo(t.stateNode.containerInfo.firstChild),tr=t,lt=!0,Br=null,n=Ox(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Bl(),r===i){t=Qi(e,t,n);break e}En(e,t,r,n)}t=t.child}return t;case 5:return Nx(t),e===null&&X0(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,G0(r,i)?s=null:o!==null&&G0(r,o)&&(t.flags|=32),sS(e,t),En(e,t,s,n),t.child;case 6:return e===null&&X0(t),null;case 13:return lS(e,t,n);case 4:return gv(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=zl(t,null,r,n):En(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dr(r,i),$3(e,t,r,i,n);case 7:return En(e,t,t.pendingProps,n),t.child;case 8:return En(e,t,t.pendingProps.children,n),t.child;case 12:return En(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,Ze(dm,r._currentValue),r._currentValue=s,o!==null)if(Zr(o.value,s)){if(o.children===i.children&&!Fn.current){t=Qi(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){s=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Wi(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),q0(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(Q(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),q0(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}En(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,kl(t,n),i=br(i),r=r(i),t.flags|=1,En(e,t,r,n),t.child;case 14:return r=t.type,i=Dr(r,t.pendingProps),i=Dr(r.type,i),B3(e,t,r,i,n);case 15:return iS(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dr(r,i),wf(e,t),t.tag=1,$n(r)?(e=!0,lm(t)):e=!1,kl(t,n),Rx(t,r,i),J0(t,r,i,n),n2(null,t,r,!0,e,n);case 19:return cS(e,t,n);case 22:return oS(e,t,n)}throw Error(Q(156,t.tag))};function kS(e,t){return q5(e,t)}function eP(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mr(e,t,n,r){return new eP(e,t,n,r)}function Av(e){return e=e.prototype,!(!e||!e.isReactComponent)}function tP(e){if(typeof e=="function")return Av(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Zy)return 11;if(e===Xy)return 14}return 2}function Xo(e,t){var n=e.alternate;return n===null?(n=mr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function xf(e,t,n,r,i,o){var s=2;if(r=e,typeof e=="function")Av(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case nl:return na(n.children,i,o,t);case Ky:s=8,i|=8;break;case x0:return e=mr(12,n,t,i|2),e.elementType=x0,e.lanes=o,e;case S0:return e=mr(13,n,t,i),e.elementType=S0,e.lanes=o,e;case k0:return e=mr(19,n,t,i),e.elementType=k0,e.lanes=o,e;case D5:return T1(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case P5:s=10;break e;case R5:s=9;break e;case Zy:s=11;break e;case Xy:s=14;break e;case Eo:s=16,r=null;break e}throw Error(Q(130,e==null?e:typeof e,""))}return t=mr(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function na(e,t,n,r){return e=mr(7,e,r,t),e.lanes=n,e}function T1(e,t,n,r){return e=mr(22,e,r,t),e.elementType=D5,e.lanes=n,e.stateNode={isHidden:!1},e}function sp(e,t,n){return e=mr(6,e,null,t),e.lanes=n,e}function ap(e,t,n){return t=mr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function nP(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Hg(0),this.expirationTimes=Hg(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Hg(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Lv(e,t,n,r,i,o,s,a,l){return e=new nP(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=mr(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},mv(o),e}function rP(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(MS)}catch(e){console.error(e)}}MS(),C5.exports=or;var nr=C5.exports;const lP=rc(nr);var AS,J3=nr;AS=J3.createRoot,J3.hydrateRoot;const LS=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(e){if(e=Math.trunc(e)||0,e<0&&(e+=this.length),!(e<0||e>=this.length))return this[e]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...e){this.innerHTML="",this.append(...e)})};function cP(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cd(e){"@babel/helpers - typeof";return cd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cd(e)}function uP(e,t){if(cd(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(cd(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dP(e){var t=uP(e,"string");return cd(t)==="symbol"?t:String(t)}function eb(e,t){for(var n=0;n0){var a=i.maxAge-0;if(isNaN(a))throw new Error("maxAge should be a Number");s+="; Max-Age="+Math.floor(a)}if(i.domain){if(!tb.test(i.domain))throw new TypeError("option domain is invalid");s+="; Domain="+i.domain}if(i.path){if(!tb.test(i.path))throw new TypeError("option path is invalid");s+="; Path="+i.path}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires="+i.expires.toUTCString()}if(i.httpOnly&&(s+="; HttpOnly"),i.secure&&(s+="; Secure"),i.sameSite){var l=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s},nb={create:function(t,n,r,i){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+r*60*1e3)),i&&(o.domain=i),document.cookie=pP(t,encodeURIComponent(n),o)},read:function(t){for(var n=t+"=",r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),o=i.split("&"),s=0;s0){var l=o[s].substring(0,a);l===t.lookupQuerystring&&(n=o[s].substring(a+1))}}}return n}},Rc=null,rb=function(){if(Rc!==null)return Rc;try{Rc=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Rc=!1}return Rc},EP={name:"localStorage",lookup:function(t){var n;if(t.lookupLocalStorage&&rb()){var r=window.localStorage.getItem(t.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupLocalStorage&&rb()&&window.localStorage.setItem(n.lookupLocalStorage,t)}},Dc=null,ib=function(){if(Dc!==null)return Dc;try{Dc=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Dc=!1}return Dc},wP={name:"sessionStorage",lookup:function(t){var n;if(t.lookupSessionStorage&&ib()){var r=window.sessionStorage.getItem(t.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupSessionStorage&&ib()&&window.sessionStorage.setItem(n.lookupSessionStorage,t)}},bP={name:"navigator",lookup:function(t){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},_P={name:"htmlTag",lookup:function(t){var n,r=t.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},xP={name:"path",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof r[t.lookupFromPathIndex]!="string")return;n=r[t.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},SP={name:"subdomain",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi);r instanceof Array&&(typeof t.lookupFromSubdomainIndex=="number"?n=r[t.lookupFromSubdomainIndex].replace("http://","").replace("https://","").replace(".",""):n=r[0].replace("http://","").replace("https://","").replace(".",""))}return n}};function kP(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}}var RS=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};cP(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return hP(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=gP(r,this.options||{},kP()),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(yP),this.addDetector(vP),this.addDetector(EP),this.addDetector(wP),this.addDetector(bP),this.addDetector(_P),this.addDetector(xP),this.addDetector(SP)}},{key:"addDetector",value:function(n){this.detectors[n.name]=n}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(o){if(r.detectors[o]){var s=r.detectors[o].lookup(r.options);s&&typeof s=="string"&&(s=[s]),s&&(i=i.concat(s))}}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(o){i.detectors[o]&&i.detectors[o].cacheUserLanguage(n,i.options)}))}}]),e}();RS.type="languageDetector";var IP={VITE_APP_BACKEND_V2_GET_URL:"https://json.excalidraw.com/api/v2/",VITE_APP_BACKEND_V2_POST_URL:"https://json.excalidraw.com/api/v2/post/",VITE_APP_LIBRARY_URL:"https://libraries.excalidraw.com",VITE_APP_LIBRARY_BACKEND:"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries",VITE_APP_PLUS_LP:"https://plus.excalidraw.com",VITE_APP_PLUS_APP:"https://app.excalidraw.com",VITE_APP_AI_BACKEND:"https://oss-ai.excalidraw.com",VITE_APP_WS_SERVER_URL:"https://oss-collab.excalidraw.com",VITE_APP_FIREBASE_CONFIG:'{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","authDomain":"excalidraw-room-persistence.firebaseapp.com","databaseURL":"https://excalidraw-room-persistence.firebaseio.com","projectId":"excalidraw-room-persistence","storageBucket":"excalidraw-room-persistence.appspot.com","messagingSenderId":"654800341332","appId":"1:654800341332:web:4a692de832b55bd57ce0c1"}',VITE_APP_DISABLE_TRACKING:"",VITE_APP_GIT_SHA:"",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const CP=["ai"],Ae=(e,t,n,r)=>{try{typeof window>"u"||IP.VITE_WORKER_ID;return}catch(i){console.error("error during analytics",i)}},TP="#ffffff",MP="#000000",AP=["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],LP=["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],PP=["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],RP=["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],DP=["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],OP=["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],NP=["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],FP=["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],$P=["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],BP=["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],zP=["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],HP=["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],UP=["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"],Ut={white:TP,black:MP,gray:AP,red:LP,pink:PP,grape:RP,violet:DP,indigo:OP,blue:NP,cyan:FP,teal:$P,green:BP,lime:zP,yellow:HP,orange:UP},WP=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),VP=5,Qa=5,GP=4,lu=4,cu=1,Mr=[0,2,4,6,8],Ar=(e,t)=>t.map(n=>Ut[e][n]),ve={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:Ar("gray",Mr),red:Ar("red",Mr),pink:Ar("pink",Mr),grape:Ar("grape",Mr),violet:Ar("violet",Mr),blue:Ar("blue",Mr),cyan:Ar("cyan",Mr),teal:Ar("teal",Mr),green:Ar("green",Mr),yellow:Ar("yellow",Mr),orange:Ar("orange",Mr),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},DS=WP(ve,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),OS=[ve.black,ve.red[lu],ve.green[lu],ve.blue[lu],ve.yellow[lu]],NS=[ve.transparent,ve.red[cu],ve.green[cu],ve.blue[cu],ve.yellow[cu]],FS=[ve.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],jP={transparent:ve.transparent,white:ve.white,gray:ve.gray,black:ve.black,bronze:ve.bronze,...DS},YP={transparent:ve.transparent,white:ve.white,gray:ve.gray,black:ve.black,bronze:ve.bronze,...DS},KP=e=>[ve.cyan[e],ve.blue[e],ve.violet[e],ve.grape[e],ve.pink[e],ve.green[e],ve.teal[e],ve.yellow[e],ve.orange[e],ve.red[e]],ZP=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`,XP="invert(93%) hue-rotate(180deg)",qP="302px",$S={themeFilter:XP,rightSidebarWidth:qP},ki=/Mac|iPod|iPhone|iPad/.test(navigator.platform),BS=/^Win/.test(navigator.platform),R1="netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,QP=navigator.userAgent.indexOf("Chrome")!==-1;!QP&&navigator.userAgent.indexOf("Safari");const JP=/iPad|iPhone/.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,eR=()=>{var e,t;return((t=(e=navigator.brave)==null?void 0:e.isBrave)==null?void 0:t.name)==="isBrave"},m2=typeof window<"u"&&"ResizeObserver"in window,Vi="Excalidraw",Ts=10,Sf=8,tR=5,ob=1,nR=30,ss=Math.PI/12,rR="red",Be={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},xs={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},Ms={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"};var Z=(e=>(e.COPY="copy",e.PASTE="paste",e.CUT="cut",e.KEYDOWN="keydown",e.KEYUP="keyup",e.MOUSE_MOVE="mousemove",e.RESIZE="resize",e.UNLOAD="unload",e.FOCUS="focus",e.BLUR="blur",e.DRAG_OVER="dragover",e.DROP="drop",e.GESTURE_END="gestureend",e.BEFORE_UNLOAD="beforeunload",e.GESTURE_START="gesturestart",e.GESTURE_CHANGE="gesturechange",e.POINTER_MOVE="pointermove",e.POINTER_DOWN="pointerdown",e.POINTER_UP="pointerup",e.STATE_CHANGE="statechange",e.WHEEL="wheel",e.TOUCH_START="touchstart",e.TOUCH_END="touchend",e.HASHCHANGE="hashchange",e.VISIBILITY_CHANGE="visibilitychange",e.SCROLL="scroll",e.EXCALIDRAW_LINK="excalidraw-link",e.MENU_ITEM_SELECT="menu.itemSelect",e.MESSAGE="message",e.FULLSCREENCHANGE="fullscreenchange",e))(Z||{});const Dh={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},zS={SHAPE_ACTIONS_MENU:"App-menu__left"},Xt={Virgil:1,Helvetica:2,Cascadia:3,Assistant:4},Tt={LIGHT:"light",DARK:"dark"},vt={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},sb="Segoe UI Emoji",Ov=1,Xr=20,oo=Xt.Virgil,D1="left",_m="top",HS="{version}",ud=2,Oh="#ffffff",iR="#1e1e1e",oR="#a2f1a6",Cl=20,Nv={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},sR=["text/plain","text/html"],de={json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json","excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...Nv},lp={png:"png",svg:"svg",clipboard:"clipboard"},yr={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Fv=window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,aR=500,lR=300,cR=500,uR=1e4,dR=3e4,hR=100,dd=.1,US=.1,fR=300,ab=6e4,lb=3e3,$v=$S.themeFilter,g2={addLibrary:"addLibrary"},p2={addLibrary:"addLibrary"},cb={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},mR=730,gR=1e3,pR=500,yR=1229,vR=parseInt($S.rightSidebarWidth),Oc=2,Bv=[1,2,3],ac=10,ER=1440,ub=2*1024*1024,Ke="http://www.w3.org/2000/svg",WS=128,O1={excalidraw:2,excalidrawLibrary:2},Nt=5,wR=.7,bR=11,Qn={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},hd={LEFT:"left",CENTER:"center",RIGHT:"right"},_R=20,cp=.25,xR=32,Vt={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Do="__precedingElement__",VS={architect:0,artist:1,cartoonist:2},up={thin:1,bold:2,extraBold:4},dt={strokeColor:ve.black,backgroundColor:ve.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:VS.artist,opacity:100,locked:!1},zv="library",Tl={name:"default",defaultTab:zv},GS=new Set(["iframe","embeddable","image"]),zt={selection:"selection",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},qo={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},jS="Untitled",SR=Bv.includes(devicePixelRatio)?devicePixelRatio:1,qr=()=>({showWelcomeScreen:!1,theme:Tt.LIGHT,collaborators:new Map,currentChartType:"bar",currentItemBackgroundColor:dt.backgroundColor,currentItemEndArrowhead:"arrow",currentItemFillStyle:dt.fillStyle,currentItemFontFamily:oo,currentItemFontSize:Xr,currentItemOpacity:dt.opacity,currentItemRoughness:dt.roughness,currentItemStartArrowhead:null,currentItemStrokeColor:dt.strokeColor,currentItemRoundness:"round",currentItemStrokeStyle:dt.strokeStyle,currentItemStrokeWidth:dt.strokeWidth,currentItemTextAlign:D1,cursorButton:"up",activeEmbeddable:null,draggingElement:null,editingElement:null,editingGroupId:null,editingLinearElement:null,activeTool:{type:"selection",customType:null,locked:dt.locked,lastActiveTool:null},penMode:!1,penDetected:!1,errorMessage:null,exportBackground:!0,exportScale:SR,exportEmbedScene:!1,exportWithDarkMode:!1,fileHandle:null,gridSize:null,isBindingEnabled:!0,defaultSidebarDockedPreference:!1,isLoading:!1,isResizing:!1,isRotating:!1,lastPointerDownWith:"mouse",multiElement:null,name:null,contextMenu:null,openMenu:null,openPopup:null,openSidebar:null,openDialog:null,pasteDialog:{shown:!1,data:null},previousSelectedElementIds:{},resizingElement:null,scrolledOutside:!1,scrollX:0,scrollY:0,selectedElementIds:{},selectedGroupIds:{},selectedElementsAreBeingDragged:!1,selectionElement:null,shouldCacheIgnoreZoom:!1,showStats:!1,startBoundElement:null,suggestedBindings:[],frameRendering:{enabled:!0,clip:!0,name:!0,outline:!0},frameToHighlight:null,editingFrame:null,elementsToHighlight:null,toast:null,viewBackgroundColor:ve.white,zenModeEnabled:!1,zoom:{value:1},viewModeEnabled:!1,pendingImageElementId:null,showHyperlinkPopup:!1,selectedLinearElement:null,snapLines:[],originSnapOffset:{x:0,y:0},objectsSnapModeEnabled:!1,userToFollow:null,followedBy:new Set}),kR=(e=>e)({showWelcomeScreen:{browser:!0,export:!1,server:!1},theme:{browser:!0,export:!1,server:!1},collaborators:{browser:!1,export:!1,server:!1},currentChartType:{browser:!0,export:!1,server:!1},currentItemBackgroundColor:{browser:!0,export:!1,server:!1},currentItemEndArrowhead:{browser:!0,export:!1,server:!1},currentItemFillStyle:{browser:!0,export:!1,server:!1},currentItemFontFamily:{browser:!0,export:!1,server:!1},currentItemFontSize:{browser:!0,export:!1,server:!1},currentItemRoundness:{browser:!0,export:!1,server:!1},currentItemOpacity:{browser:!0,export:!1,server:!1},currentItemRoughness:{browser:!0,export:!1,server:!1},currentItemStartArrowhead:{browser:!0,export:!1,server:!1},currentItemStrokeColor:{browser:!0,export:!1,server:!1},currentItemStrokeStyle:{browser:!0,export:!1,server:!1},currentItemStrokeWidth:{browser:!0,export:!1,server:!1},currentItemTextAlign:{browser:!0,export:!1,server:!1},cursorButton:{browser:!0,export:!1,server:!1},activeEmbeddable:{browser:!1,export:!1,server:!1},draggingElement:{browser:!1,export:!1,server:!1},editingElement:{browser:!1,export:!1,server:!1},editingGroupId:{browser:!0,export:!1,server:!1},editingLinearElement:{browser:!1,export:!1,server:!1},activeTool:{browser:!0,export:!1,server:!1},penMode:{browser:!0,export:!1,server:!1},penDetected:{browser:!0,export:!1,server:!1},errorMessage:{browser:!1,export:!1,server:!1},exportBackground:{browser:!0,export:!1,server:!1},exportEmbedScene:{browser:!0,export:!1,server:!1},exportScale:{browser:!0,export:!1,server:!1},exportWithDarkMode:{browser:!0,export:!1,server:!1},fileHandle:{browser:!1,export:!1,server:!1},gridSize:{browser:!0,export:!0,server:!0},height:{browser:!1,export:!1,server:!1},isBindingEnabled:{browser:!1,export:!1,server:!1},defaultSidebarDockedPreference:{browser:!0,export:!1,server:!1},isLoading:{browser:!1,export:!1,server:!1},isResizing:{browser:!1,export:!1,server:!1},isRotating:{browser:!1,export:!1,server:!1},lastPointerDownWith:{browser:!0,export:!1,server:!1},multiElement:{browser:!1,export:!1,server:!1},name:{browser:!0,export:!1,server:!1},offsetLeft:{browser:!1,export:!1,server:!1},offsetTop:{browser:!1,export:!1,server:!1},contextMenu:{browser:!1,export:!1,server:!1},openMenu:{browser:!0,export:!1,server:!1},openPopup:{browser:!1,export:!1,server:!1},openSidebar:{browser:!0,export:!1,server:!1},openDialog:{browser:!1,export:!1,server:!1},pasteDialog:{browser:!1,export:!1,server:!1},previousSelectedElementIds:{browser:!0,export:!1,server:!1},resizingElement:{browser:!1,export:!1,server:!1},scrolledOutside:{browser:!0,export:!1,server:!1},scrollX:{browser:!0,export:!1,server:!1},scrollY:{browser:!0,export:!1,server:!1},selectedElementIds:{browser:!0,export:!1,server:!1},selectedGroupIds:{browser:!0,export:!1,server:!1},selectedElementsAreBeingDragged:{browser:!1,export:!1,server:!1},selectionElement:{browser:!1,export:!1,server:!1},shouldCacheIgnoreZoom:{browser:!0,export:!1,server:!1},showStats:{browser:!0,export:!1,server:!1},startBoundElement:{browser:!1,export:!1,server:!1},suggestedBindings:{browser:!1,export:!1,server:!1},frameRendering:{browser:!1,export:!1,server:!1},frameToHighlight:{browser:!1,export:!1,server:!1},editingFrame:{browser:!1,export:!1,server:!1},elementsToHighlight:{browser:!1,export:!1,server:!1},toast:{browser:!1,export:!1,server:!1},viewBackgroundColor:{browser:!0,export:!0,server:!0},width:{browser:!1,export:!1,server:!1},zenModeEnabled:{browser:!0,export:!1,server:!1},zoom:{browser:!0,export:!1,server:!1},viewModeEnabled:{browser:!1,export:!1,server:!1},pendingImageElementId:{browser:!1,export:!1,server:!1},showHyperlinkPopup:{browser:!1,export:!1,server:!1},selectedLinearElement:{browser:!0,export:!1,server:!1},snapLines:{browser:!1,export:!1,server:!1},originSnapOffset:{browser:!1,export:!1,server:!1},objectsSnapModeEnabled:{browser:!0,export:!1,server:!1},userToFollow:{browser:!1,export:!1,server:!1},followedBy:{browser:!1,export:!1,server:!1}}),Hv=(e,t)=>{const n={};for(const r of Object.keys(e)){const i=kR[r];if(i!=null&&i[t]){const o=e[r];n[r]=o}}return n},YS=e=>Hv(e,"browser"),KS=e=>Hv(e,"export"),IR=e=>Hv(e,"server"),mi=({activeTool:e})=>e.type==="eraser",Vl=({activeTool:e})=>e.type==="hand",CR="modulepreload",TR=function(e){return"/"+e},db={},ie=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){const o=document.getElementsByTagName("link");i=Promise.all(n.map(s=>{if(s=TR(s),s in db)return;db[s]=!0;const a=s.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!r)for(let d=o.length-1;d>=0;d--){const h=o[d];if(h.href===s&&(!a||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${l}`))return;const u=document.createElement("link");if(u.rel=a?"stylesheet":CR,a||(u.as="script",u.crossOrigin=""),u.href=s,document.head.appendChild(u),a)return new Promise((d,h)=>{u.addEventListener("load",d),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${s}`)))})}))}return i.then(()=>t()).catch(o=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=o,window.dispatchEvent(s),!s.defaultPrevented)throw o})},MR=(e,t)=>{const n=e[t];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((r,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+t)))})},ZS={paste:"Paste",pasteAsPlaintext:"Paste as plaintext",pasteCharts:"Paste charts",selectAll:"Select all",multiSelect:"Add element to selection",moveCanvas:"Move canvas",cut:"Cut",copy:"Copy",copyAsPng:"Copy to clipboard as PNG",copyAsSvg:"Copy to clipboard as SVG",copyText:"Copy to clipboard as text",copySource:"Copy source to clipboard",convertToCode:"Convert to code",bringForward:"Bring forward",sendToBack:"Send to back",bringToFront:"Bring to front",sendBackward:"Send backward",delete:"Delete",copyStyles:"Copy styles",pasteStyles:"Paste styles",stroke:"Stroke",background:"Background",fill:"Fill",strokeWidth:"Stroke width",strokeStyle:"Stroke style",strokeStyle_solid:"Solid",strokeStyle_dashed:"Dashed",strokeStyle_dotted:"Dotted",sloppiness:"Sloppiness",opacity:"Opacity",textAlign:"Text align",edges:"Edges",sharp:"Sharp",round:"Round",arrowheads:"Arrowheads",arrowhead_none:"None",arrowhead_arrow:"Arrow",arrowhead_bar:"Bar",arrowhead_circle:"Circle",arrowhead_circle_outline:"Circle (outline)",arrowhead_triangle:"Triangle",arrowhead_triangle_outline:"Triangle (outline)",arrowhead_diamond:"Diamond",arrowhead_diamond_outline:"Diamond (outline)",fontSize:"Font size",fontFamily:"Font family",addWatermark:'Add "Made with Excalidraw"',handDrawn:"Hand-drawn",normal:"Normal",code:"Code",small:"Small",medium:"Medium",large:"Large",veryLarge:"Very large",solid:"Solid",hachure:"Hachure",zigzag:"Zigzag",crossHatch:"Cross-hatch",thin:"Thin",bold:"Bold",left:"Left",center:"Center",right:"Right",extraBold:"Extra bold",architect:"Architect",artist:"Artist",cartoonist:"Cartoonist",fileTitle:"File name",colorPicker:"Color picker",canvasColors:"Used on canvas",canvasBackground:"Canvas background",drawingCanvas:"Drawing canvas",layers:"Layers",actions:"Actions",language:"Language",liveCollaboration:"Live collaboration...",duplicateSelection:"Duplicate",untitled:"Untitled",name:"Name",yourName:"Your name",madeWithExcalidraw:"Made with Excalidraw",group:"Group selection",ungroup:"Ungroup selection",collaborators:"Collaborators",showGrid:"Show grid",addToLibrary:"Add to library",removeFromLibrary:"Remove from library",libraryLoadingMessage:"Loading library…",libraries:"Browse libraries",loadingScene:"Loading scene…",align:"Align",alignTop:"Align top",alignBottom:"Align bottom",alignLeft:"Align left",alignRight:"Align right",centerVertically:"Center vertically",centerHorizontally:"Center horizontally",distributeHorizontally:"Distribute horizontally",distributeVertically:"Distribute vertically",flipHorizontal:"Flip horizontal",flipVertical:"Flip vertical",viewMode:"View mode",share:"Share",showStroke:"Show stroke color picker",showBackground:"Show background color picker",toggleTheme:"Toggle theme",personalLib:"Personal Library",excalidrawLib:"Excalidraw Library",decreaseFontSize:"Decrease font size",increaseFontSize:"Increase font size",unbindText:"Unbind text",bindText:"Bind text to the container",createContainerFromText:"Wrap text in a container",link:{edit:"Edit link",editEmbed:"Edit link & embed",create:"Create link",createEmbed:"Create link & embed",label:"Link",labelEmbed:"Link & embed",empty:"No link is set"},lineEditor:{edit:"Edit line",exit:"Exit line editor"},elementLock:{lock:"Lock",unlock:"Unlock",lockAll:"Lock all",unlockAll:"Unlock all"},statusPublished:"Published",sidebarLock:"Keep sidebar open",selectAllElementsInFrame:"Select all elements in frame",removeAllElementsFromFrame:"Remove all elements from frame",eyeDropper:"Pick color from canvas",textToDiagram:"Text to diagram",prompt:"Prompt",followUs:"Follow us",discordChat:"Discord chat"},XS={noItems:"No items added yet...",hint_emptyLibrary:"Select an item on canvas to add it here, or install a library from the public repository, below.",hint_emptyPrivateLibrary:"Select an item on canvas to add it here."},qS={clearReset:"Reset the canvas",exportJSON:"Export to file",exportImage:"Export image...",export:"Save to...",copyToClipboard:"Copy to clipboard",save:"Save to current file",saveAs:"Save as",load:"Open",getShareableLink:"Get shareable link",close:"Close",selectLanguage:"Select language",scrollBackToContent:"Scroll back to content",zoomIn:"Zoom in",zoomOut:"Zoom out",resetZoom:"Reset zoom",menu:"Menu",done:"Done",edit:"Edit",undo:"Undo",redo:"Redo",resetLibrary:"Reset library",createNewRoom:"Create new room",fullScreen:"Full screen",darkMode:"Dark mode",lightMode:"Light mode",zenMode:"Zen mode",objectsSnapMode:"Snap to objects",exitZenMode:"Exit zen mode",cancel:"Cancel",clear:"Clear",remove:"Remove",embed:"Toggle embedding",publishLibrary:"Publish",submit:"Submit",confirm:"Confirm",embeddableInteractionButton:"Click to interact"},QS={clearReset:"This will clear the whole canvas. Are you sure?",couldNotCreateShareableLink:"Couldn't create shareable link.",couldNotCreateShareableLinkTooBig:"Couldn't create shareable link: the scene is too big",couldNotLoadInvalidFile:"Couldn't load invalid file",importBackendFailed:"Importing from backend failed.",cannotExportEmptyCanvas:"Cannot export empty canvas.",couldNotCopyToClipboard:"Couldn't copy to clipboard.",decryptFailed:"Couldn't decrypt data.",uploadedSecurly:"The upload has been secured with end-to-end encryption, which means that Excalidraw server and third parties can't read the content.",loadSceneOverridePrompt:"Loading external drawing will replace your existing content. Do you wish to continue?",collabStopOverridePrompt:`Stopping the session will overwrite your previous, locally stored drawing. Are you sure? - -(If you want to keep your local drawing, simply close the browser tab instead.)`,errorAddingToLibrary:"Couldn't add item to the library",errorRemovingFromLibrary:"Couldn't remove item from the library",confirmAddLibrary:"This will add {{numShapes}} shape(s) to your library. Are you sure?",imageDoesNotContainScene:"This image does not seem to contain any scene data. Have you enabled scene embedding during export?",cannotRestoreFromImage:"Scene couldn't be restored from this image file",invalidSceneUrl:"Couldn't import scene from the supplied URL. It's either malformed, or doesn't contain valid Excalidraw JSON data.",resetLibrary:"This will clear your library. Are you sure?",removeItemsFromsLibrary:"Delete {{count}} item(s) from library?",invalidEncryptionKey:"Encryption key must be of 22 characters. Live collaboration is disabled.",collabOfflineWarning:`No internet connection available. -Your changes will not be saved!`},JS={unsupportedFileType:"Unsupported file type.",imageInsertError:"Couldn't insert image. Try again later...",fileTooBig:"File is too big. Maximum allowed size is {{maxSize}}.",svgImageInsertError:"Couldn't insert SVG image. The SVG markup looks invalid.",failedToFetchImage:"Failed to fetch image.",cannotResolveCollabServer:"Couldn't connect to the collab server. Please reload the page and try again.",importLibraryError:"Couldn't load library",saveLibraryError:"Couldn't save library to storage. Please save your library to a file locally to make sure you don't lose changes.",collabSaveFailed:"Couldn't save to the backend database. If problems persist, you should save your file locally to ensure you don't lose your work.",collabSaveFailed_sizeExceeded:"Couldn't save to the backend database, the canvas seems to be too big. You should save the file locally to ensure you don't lose your work.",imageToolNotSupported:"Images are disabled.",brave_measure_text_error:{line1:"Looks like you are using Brave browser with the Aggressively Block Fingerprinting setting enabled.",line2:"This could result in breaking the Text Elements in your drawings.",line3:"We strongly recommend disabling this setting. You can follow these steps on how to do so.",line4:"If disabling this setting doesn't fix the display of text elements, please open an issue on our GitHub, or write us on Discord"},libraryElementTypeError:{embeddable:"Embeddable elements cannot be added to the library.",iframe:"IFrame elements cannot be added to the library.",image:"Support for adding images to the library coming soon!"},asyncPasteFailedOnRead:"Couldn't paste (couldn't read from system clipboard).",asyncPasteFailedOnParse:"Couldn't paste.",copyToSystemClipboardFailed:"Couldn't copy to clipboard."},ek={selection:"Selection",image:"Insert image",rectangle:"Rectangle",diamond:"Diamond",ellipse:"Ellipse",arrow:"Arrow",line:"Line",freedraw:"Draw",text:"Text",library:"Library",lock:"Keep selected tool active after drawing",penMode:"Pen mode - prevent touch",link:"Add / Update link for a selected shape",eraser:"Eraser",frame:"Frame tool",magicframe:"Wireframe to code",embeddable:"Web Embed",laser:"Laser pointer",hand:"Hand (panning tool)",extraTools:"More tools",mermaidToExcalidraw:"Mermaid to Excalidraw",magicSettings:"AI settings"},tk={canvasActions:"Canvas actions",selectedShapeActions:"Selected shape actions",shapes:"Shapes"},nk={canvasPanning:"To move canvas, hold mouse wheel or spacebar while dragging, or use the hand tool",linearElement:"Click to start multiple points, drag for single line",freeDraw:"Click and drag, release when you're finished",text:"Tip: you can also add text by double-clicking anywhere with the selection tool",embeddable:"Click-drag to create a website embed",text_selected:"Double-click or press ENTER to edit text",text_editing:"Press Escape or CtrlOrCmd+ENTER to finish editing",linearElementMulti:"Click on last point or press Escape or Enter to finish",lockAngle:"You can constrain angle by holding SHIFT",resize:`You can constrain proportions by holding SHIFT while resizing, -hold ALT to resize from the center`,resizeImage:`You can resize freely by holding SHIFT, -hold ALT to resize from the center`,rotate:"You can constrain angles by holding SHIFT while rotating",lineEditor_info:"Hold CtrlOrCmd and Double-click or press CtrlOrCmd + Enter to edit points",lineEditor_pointSelected:`Press Delete to remove point(s), -CtrlOrCmd+D to duplicate, or drag to move`,lineEditor_nothingSelected:`Select a point to edit (hold SHIFT to select multiple), -or hold Alt and click to add new points`,placeImage:"Click to place the image, or click and drag to set its size manually",publishLibrary:"Publish your own library",bindTextToElement:"Press enter to add text",deepBoxSelect:"Hold CtrlOrCmd to deep select, and to prevent dragging",eraserRevert:"Hold Alt to revert the elements marked for deletion",firefox_clipboard_write:'This feature can likely be enabled by setting the "dom.events.asyncClipboard.clipboardItem" flag to "true". To change the browser flags in Firefox, visit the "about:config" page.',disableSnapping:"Hold CtrlOrCmd to disable snapping"},rk={cannotShowPreview:"Cannot show preview",canvasTooBig:"The canvas may be too big.",canvasTooBigTip:"Tip: try moving the farthest elements a bit closer together."},ik={headingMain:"Encountered an error. Try .",clearCanvasMessage:"If reloading doesn't work, try .",clearCanvasCaveat:" This will result in loss of work ",trackedToSentry:"The error with identifier {{eventId}} was tracked on our system.",openIssueMessage:"We were very cautious not to include your scene information on the error. If your scene is not private, please consider following up on our . Please include information below by copying and pasting into the GitHub issue.",sceneContent:"Scene content:"},ok={or:"Or"},sk={desc_intro:"Invite people to collaborate on your drawing.",desc_privacy:"Don't worry, the session is end-to-end encrypted, and fully private. Not even our server can see what you draw.",button_startSession:"Start session",button_stopSession:"Stop session",desc_inProgressIntro:"Live-collaboration session is now in progress.",desc_shareLink:"Share this link with anyone you want to collaborate with:",desc_exitSession:"Stopping the session will disconnect you from the room, but you'll be able to continue working with the scene, locally. Note that this won't affect other people, and they'll still be able to collaborate on their version.",shareTitle:"Join a live collaboration session on Excalidraw"},ak={title:"Error"},lk={disk_title:"Save to disk",disk_details:"Export the scene data to a file from which you can import later.",disk_button:"Save to file",link_title:"Shareable link",link_details:"Export as a read-only link.",link_button:"Export to Link",excalidrawplus_description:"Save the scene to your Excalidraw+ workspace.",excalidrawplus_button:"Export",excalidrawplus_exportError:"Couldn't export to Excalidraw+ at this moment..."},ck={blog:"Read our blog",click:"click",deepSelect:"Deep select",deepBoxSelect:"Deep select within box, and prevent dragging",curvedArrow:"Curved arrow",curvedLine:"Curved line",documentation:"Documentation",doubleClick:"double-click",drag:"drag",editor:"Editor",editLineArrowPoints:"Edit line/arrow points",editText:"Edit text / add label",github:"Found an issue? Submit",howto:"Follow our guides",or:"or",preventBinding:"Prevent arrow binding",tools:"Tools",shortcuts:"Keyboard shortcuts",textFinish:"Finish editing (text editor)",textNewLine:"Add new line (text editor)",title:"Help",view:"View",zoomToFit:"Zoom to fit all elements",zoomToSelection:"Zoom to selection",toggleElementLock:"Lock/unlock selection",movePageUpDown:"Move page up/down",movePageLeftRight:"Move page left/right"},uk={title:"Clear canvas"},dk={title:"Publish library",itemName:"Item name",authorName:"Author name",githubUsername:"GitHub username",twitterUsername:"Twitter username",libraryName:"Library name",libraryDesc:"Library description",website:"Website",placeholder:{authorName:"Your name or username",libraryName:"Name of your library",libraryDesc:"Description of your library to help people understand its usage",githubHandle:"GitHub handle (optional), so you can edit the library once submitted for review",twitterHandle:"Twitter username (optional), so we know who to credit when promoting over Twitter",website:"Link to your personal website or elsewhere (optional)"},errors:{required:"Required",website:"Enter a valid URL"},noteDescription:"Submit your library to be included in the public library repository for other people to use in their drawings.",noteGuidelines:"The library needs to be manually approved first. Please read the guidelines before submitting. You will need a GitHub account to communicate and make changes if requested, but it is not strictly required.",noteLicense:"By submitting, you agree the library will be published under the MIT License, which in short means anyone can use them without restrictions.",noteItems:"Each library item must have its own name so it's filterable. The following library items will be included:",atleastOneLibItem:"Please select at least one library item to get started",republishWarning:"Note: some of the selected items are marked as already published/submitted. You should only resubmit items when updating an existing library or submission."},hk={title:"Library submitted",content:"Thank you {{authorName}}. Your library has been submitted for review. You can track the status here"},fk={resetLibrary:"Reset library",removeItemsFromLib:"Remove selected items from library"},mk={header:"Export image",label:{withBackground:"Background",onlySelected:"Only selected",darkMode:"Dark mode",embedScene:"Embed scene",scale:"Scale",padding:"Padding"},tooltip:{embedScene:`Scene data will be saved into the exported PNG/SVG file so that the scene can be restored from it. -Will increase exported file size.`},title:{exportToPng:"Export to PNG",exportToSvg:"Export to SVG",copyPngToClipboard:"Copy PNG to clipboard"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copy to clipboard"}},gk={tooltip:"Your drawings are end-to-end encrypted so Excalidraw's servers will never see them.",link:"Blog post on end-to-end encryption in Excalidraw"},pk={angle:"Angle",element:"Element",elements:"Elements",height:"Height",scene:"Scene",selected:"Selected",storage:"Storage",title:"Stats for nerds",total:"Total",version:"Version",versionCopy:"Click to copy",versionNotAvailable:"Version not available",width:"Width"},yk={addedToLibrary:"Added to library",copyStyles:"Copied styles.",copyToClipboard:"Copied to clipboard.",copyToClipboardAsPng:`Copied {{exportSelection}} to clipboard as PNG -({{exportColorScheme}})`,fileSaved:"File saved.",fileSavedToFilename:"Saved to {filename}",canvas:"canvas",selection:"selection",pasteAsSingleElement:`Use {{shortcut}} to paste as a single element, -or paste into an existing text editor`,unableToEmbed:"Embedding this url is currently not allowed. Raise an issue on GitHub to request the url whitelisted",unrecognizedLinkFormat:"The link you embedded does not match the expected format. Please try to paste the 'embed' string provided by the source site"},vk={transparent:"Transparent",black:"Black",white:"White",red:"Red",pink:"Pink",grape:"Grape",violet:"Violet",gray:"Gray",blue:"Blue",cyan:"Cyan",teal:"Teal",green:"Green",yellow:"Yellow",orange:"Orange",bronze:"Bronze"},Ek={app:{center_heading:"All your data is saved locally in your browser.",center_heading_plus:"Did you want to go to the Excalidraw+ instead?",menuHint:"Export, preferences, languages, ..."},defaults:{menuHint:"Export, preferences, and more...",center_heading:"Diagrams. Made. Simple.",toolbarHint:"Pick a tool & Start drawing!",helpHint:"Shortcuts & help"}},wk={mostUsedCustomColors:"Most used custom colors",colors:"Colors",shades:"Shades",hexCode:"Hex code",noShades:"No shades available for this color"},bk={action:{exportToImage:{title:"Export as image",button:"Export as image",description:"Export the scene data as an image from which you can import later."},saveToDisk:{title:"Save to disk",button:"Save to disk",description:"Export the scene data to a file from which you can import later."},excalidrawPlus:{title:"Excalidraw+",button:"Export to Excalidraw+",description:"Save the scene to your Excalidraw+ workspace."}},modal:{loadFromFile:{title:"Load from file",button:"Load from file",description:"Loading from a file will replace your existing content.

    You can back up your drawing first using one of the options below."},shareableLink:{title:"Load from link",button:"Replace my content",description:"Loading external drawing will replace your existing content.

    You can back up your drawing first by using one of the options below."}}},_k={title:"Mermaid to Excalidraw",button:"Insert",description:"Currently only Flowchart, Sequence, and Class Diagrams are supported. The other types will be rendered as image in Excalidraw.",syntax:"Mermaid Syntax",preview:"Preview"},xk={search:{placeholder:"Quick search",empty:"No users found"},hint:{text:"Click on user to follow",followStatus:"You're currently following this user",inCall:"User is in a voice call",micMuted:"User's microphone is muted",isSpeaking:"User is speaking"}},Uv={labels:ZS,library:XS,buttons:qS,alerts:QS,errors:JS,toolBar:ek,headings:tk,hints:nk,canvasError:rk,errorSplash:ik,shareDialog:ok,roomDialog:sk,errorDialog:ak,exportDialog:lk,helpDialog:ck,clearCanvasDialog:uk,publishDialog:dk,publishSuccessDialog:hk,confirmDialog:fk,imageExportDialog:mk,encrypted:gk,stats:pk,toast:yk,colors:vk,welcomeScreen:Ek,colorPicker:wk,overwriteConfirm:bk,mermaid:_k,userList:xk},AR=Object.freeze(Object.defineProperty({__proto__:null,alerts:QS,buttons:qS,canvasError:rk,clearCanvasDialog:uk,colorPicker:wk,colors:vk,confirmDialog:fk,default:Uv,encrypted:gk,errorDialog:ak,errorSplash:ik,errors:JS,exportDialog:lk,headings:tk,helpDialog:ck,hints:nk,imageExportDialog:mk,labels:ZS,library:XS,mermaid:_k,overwriteConfirm:bk,publishDialog:dk,publishSuccessDialog:hk,roomDialog:sk,shareDialog:ok,stats:pk,toast:yk,toolBar:ek,userList:xk,welcomeScreen:Ek},Symbol.toStringTag,{value:"Module"})),Sk=100,kk=36,Ik={"ar-SA":94,"az-AZ":17,"bg-BG":71,"bn-BD":52,"ca-ES":83,"cs-CZ":86,"da-DK":61,"de-DE":100,"el-GR":80,en:Sk,"es-ES":96,"eu-ES":97,"fa-IR":84,"fi-FI":76,"fr-FR":99,"gl-ES":86,"he-IL":77,"hi-IN":76,"hu-HU":76,"id-ID":91,"it-IT":98,"ja-JP":90,kaa:kk,"kab-KAB":76,"kk-KZ":18,"km-KH":83,"ko-KR":100,"ku-TR":87,"lt-LT":48,"lv-LV":77,"mr-IN":98,"my-MM":35,"nb-NO":93,"nl-NL":75,"nn-NO":67,"oc-FR":92,"pa-IN":78,"pl-PL":99,"pt-BR":91,"pt-PT":83,"ro-RO":99,"ru-RU":92,"si-LK":7,"sk-SK":100,"sl-SI":100,"sv-SE":100,"ta-IN":81,"th-TH":44,"tr-TR":87,"uk-UA":93,"vi-VN":49,"zh-CN":100,"zh-HK":22,"zh-TW":100},LR=Object.freeze(Object.defineProperty({__proto__:null,default:Ik,en:Sk,kaa:kk},Symbol.toStringTag,{value:"Module"}));let PR=0;function RR(e,t){const n=`atom${++PR}`,r={toString:()=>n};return typeof e=="function"?r.read=e:(r.init=e,r.read=i=>i(r),r.write=(i,o,s)=>o(r,typeof s=="function"?s(i(r)):s)),t&&(r.write=t),r}var Kn={VITE_APP_BACKEND_V2_GET_URL:"https://json.excalidraw.com/api/v2/",VITE_APP_BACKEND_V2_POST_URL:"https://json.excalidraw.com/api/v2/post/",VITE_APP_LIBRARY_URL:"https://libraries.excalidraw.com",VITE_APP_LIBRARY_BACKEND:"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries",VITE_APP_PLUS_LP:"https://plus.excalidraw.com",VITE_APP_PLUS_APP:"https://app.excalidraw.com",VITE_APP_AI_BACKEND:"https://oss-ai.excalidraw.com",VITE_APP_WS_SERVER_URL:"https://oss-collab.excalidraw.com",VITE_APP_FIREBASE_CONFIG:'{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","authDomain":"excalidraw-room-persistence.firebaseapp.com","databaseURL":"https://excalidraw-room-persistence.firebaseio.com","projectId":"excalidraw-room-persistence","storageBucket":"excalidraw-room-persistence.appspot.com","messagingSenderId":"654800341332","appId":"1:654800341332:web:4a692de832b55bd57ce0c1"}',VITE_APP_DISABLE_TRACKING:"",VITE_APP_GIT_SHA:"",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const as=Symbol(),y2=e=>!!e[as],Nh=e=>!e[as].c,Nc=e=>{var t;const{b:n,c:r}=e[as];r&&(r(),(t=OR.get(n))==null||t())},kf=(e,t)=>{const n=e[as].o,r=t[as].o;return n===r||e===r||y2(n)&&kf(n,t)},v2=(e,t)=>{const n={b:e,o:t,c:null},r=new Promise(i=>{n.c=()=>{n.c=null,i()},t.finally(n.c)});return r[as]=n,r},DR=e=>v2(e[as].b,e[as].o),OR=new WeakMap,Fh=e=>"init"in e,fd="r",xm="w",md="c",Sm="s",hb="h",NR="n",FR="l",$R="a",BR="m",Ck=e=>{const t=new WeakMap,n=new WeakMap,r=new Map;let i,o;if((Kn&&"production")!=="production"&&(i=new Set,o=new Set),e)for(const[R,N]of e){const B={v:N,r:0,y:!0,d:new Map};(Kn&&"production")!=="production"&&(Object.freeze(B),Fh(R)||console.warn("Found initial value for derived atom which can cause unexpected behavior",R)),t.set(R,B)}const s=new WeakMap,a=(R,N,B)=>{let z=s.get(N);z||(z=new Map,s.set(N,z)),B.then(()=>{z.get(R)===B&&(z.delete(R),z.size||s.delete(N))}),z.set(R,B)},l=R=>{const N=new Set,B=s.get(R);return B&&(s.delete(R),B.forEach((z,W)=>{Nc(z),N.add(W)})),N},c=new WeakMap,u=R=>{let N=c.get(R);return N||(N=new Map,c.set(R,N)),N},d=(R,N)=>{if(R){const B=u(R);let z=B.get(N);return z||(z=d(R.p,N),z&&"p"in z&&Nh(z.p)&&(z=void 0),z&&B.set(N,z)),z}return t.get(N)},h=(R,N,B)=>{if((Kn&&"production")!=="production"&&Object.freeze(B),R)u(R).set(N,B);else{const z=t.get(N);t.set(N,B),r.has(N)||r.set(N,z)}},m=(R,N=new Map,B)=>{if(!B)return N;const z=new Map;let W=!1;return B.forEach(j=>{var X;const ee=((X=d(R,j))==null?void 0:X.r)||0;z.set(j,ee),N.get(j)!==ee&&(W=!0)}),N.size===z.size&&!W?N:z},g=(R,N,B,z,W)=>{const j=d(R,N);if(j){if(W&&(!("p"in j)||!kf(j.p,W)))return j;"p"in j&&Nc(j.p)}const X={v:B,r:(j==null?void 0:j.r)||0,y:!0,d:m(R,j==null?void 0:j.d,z)};let ee=!(j!=null&&j.y);return!j||!("v"in j)||!Object.is(j.v,B)?(ee=!0,++X.r,X.d.has(N)&&(X.d=new Map(X.d).set(N,X.r))):X.d!==j.d&&(X.d.size!==j.d.size||!Array.from(X.d.keys()).every(xe=>j.d.has(xe)))&&(ee=!0,Promise.resolve().then(()=>{G(R)})),j&&!ee?j:(h(R,N,X),X)},p=(R,N,B,z,W)=>{const j=d(R,N);if(j){if(W&&(!("p"in j)||!kf(j.p,W)))return j;"p"in j&&Nc(j.p)}const X={e:B,r:((j==null?void 0:j.r)||0)+1,y:!0,d:m(R,j==null?void 0:j.d,z)};return h(R,N,X),X},v=(R,N,B,z)=>{const W=d(R,N);if(W&&"p"in W){if(kf(W.p,B)&&!Nh(W.p))return W.y?W:{...W,y:!0};Nc(W.p)}a(R,N,B);const j={p:B,r:((W==null?void 0:W.r)||0)+1,y:!0,d:m(R,W==null?void 0:W.d,z)};return h(R,N,j),j},y=(R,N,B,z)=>{if(B instanceof Promise){const W=v2(B,B.then(j=>{g(R,N,j,z,W)}).catch(j=>{if(j instanceof Promise)return y2(j)?j.then(()=>{w(R,N,!0)}):j;p(R,N,j,z,W)}));return v(R,N,W,z)}return g(R,N,B,z)},E=(R,N)=>{const B=d(R,N);if(B){const z={...B,y:!1};h(R,N,z)}else(Kn&&"production")!=="production"&&console.warn("[Bug] could not invalidate non existing atom",N)},w=(R,N,B)=>{if(!B){const W=d(R,N);if(W){if(W.y&&"p"in W&&!Nh(W.p))return W;if(W.d.forEach((j,X)=>{if(X!==N)if(!n.has(X))w(R,X);else{const ee=d(R,X);ee&&!ee.y&&w(R,X)}}),Array.from(W.d).every(([j,X])=>{const ee=d(R,j);return ee&&!("p"in ee)&&ee.r===X}))return W.y?W:{...W,y:!0}}}const z=new Set;try{const W=N.read(j=>{z.add(j);const X=j===N?d(R,j):w(R,j);if(X){if("e"in X)throw X.e;if("p"in X)throw X.p;return X.v}if(Fh(j))return j.init;throw new Error("no atom init")});return y(R,N,W,z)}catch(W){if(W instanceof Promise){const j=y2(W)&&Nh(W)?DR(W):v2(W,W);return v(R,N,j,z)}return p(R,N,W,z)}},x=(R,N)=>w(N,R),C=(R,N)=>{let B=n.get(N);return B||(B=P(R,N)),B},S=(R,N)=>!N.l.size&&(!N.t.size||N.t.size===1&&N.t.has(R)),I=(R,N)=>{const B=n.get(N);B&&S(N,B)&&O(R,N)},T=(R,N)=>{const B=n.get(N);B==null||B.t.forEach(z=>{z!==N&&(E(R,z),T(R,z))})},L=(R,N,B)=>{let z=!0;const W=(ee,xe)=>{const Fe=w(R,ee);if("e"in Fe)throw Fe.e;if("p"in Fe){if(xe!=null&&xe.unstable_promise)return Fe.p.then(()=>{const Se=d(R,ee);return Se&&"p"in Se&&Se.p===Fe.p?new Promise(Me=>setTimeout(Me)).then(()=>W(ee,xe)):W(ee,xe)});throw(Kn&&"production")!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ee),Fe.p}if("v"in Fe)return Fe.v;throw(Kn&&"production")!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ee),new Error("no value found")},j=(ee,xe)=>{let Fe;if(ee===N){if(!Fh(ee))throw new Error("atom not writable");l(ee).forEach(it=>{it!==R&&y(it,ee,xe)});const Me=d(R,ee),Et=y(R,ee,xe);Me!==Et&&T(R,ee)}else Fe=L(R,ee,xe);return z||G(R),Fe},X=N.write(W,j,B);return z=!1,X},A=(R,N,B)=>{const z=L(B,R,N);return G(B),z},F=R=>!!R.write,P=(R,N,B)=>{const z={t:new Set(B&&[B]),l:new Set};if(n.set(N,z),(Kn&&"production")!=="production"&&o.add(N),w(void 0,N).d.forEach((j,X)=>{const ee=n.get(X);ee?ee.t.add(N):X!==N&&P(R,X,N)}),F(N)&&N.onMount){const j=ee=>A(N,ee,R),X=N.onMount(j);R=void 0,X&&(z.u=X)}return z},O=(R,N)=>{var B;const z=(B=n.get(N))==null?void 0:B.u;z&&z(),n.delete(N),(Kn&&"production")!=="production"&&o.delete(N);const W=d(R,N);W?("p"in W&&Nc(W.p),W.d.forEach((j,X)=>{if(X!==N){const ee=n.get(X);ee&&(ee.t.delete(N),S(X,ee)&&O(R,X))}})):(Kn&&"production")!=="production"&&console.warn("[Bug] could not find atom state to unmount",N)},V=(R,N,B,z)=>{const W=new Set(B.d.keys());z==null||z.forEach((j,X)=>{if(W.has(X)){W.delete(X);return}const ee=n.get(X);ee&&(ee.t.delete(N),S(X,ee)&&O(R,X))}),W.forEach(j=>{const X=n.get(j);X?X.t.add(N):n.has(N)&&P(R,j,N)})},G=R=>{if(R){u(R).forEach((B,z)=>{const W=t.get(z);if(B!==W){const j=n.get(z);j==null||j.l.forEach(X=>X(R))}});return}for(;r.size;){const N=Array.from(r);r.clear(),N.forEach(([B,z])=>{const W=d(void 0,B);if(W&&W.d!==(z==null?void 0:z.d)&&V(void 0,B,W,z==null?void 0:z.d),z&&!z.y&&(W!=null&&W.y))return;const j=n.get(B);j==null||j.l.forEach(X=>X())})}(Kn&&"production")!=="production"&&i.forEach(N=>N())},q=R=>{u(R).forEach((B,z)=>{const W=t.get(z);(!W||B.r>W.r||B.y!==W.y||B.r===W.r&&B.d!==W.d)&&(t.set(z,B),B.d!==(W==null?void 0:W.d)&&V(R,z,B,W==null?void 0:W.d))})},U=(R,N)=>{N&&q(N),G(void 0)},$=(R,N,B)=>{const W=C(B,R).l;return W.add(N),()=>{W.delete(N),I(B,R)}},Y=(R,N)=>{for(const[B,z]of R)Fh(B)&&(y(N,B,z),T(N,B));G(N)};return(Kn&&"production")!=="production"?{[fd]:x,[xm]:A,[md]:U,[Sm]:$,[hb]:Y,[NR]:R=>(i.add(R),()=>{i.delete(R)}),[FR]:()=>o.values(),[$R]:R=>t.get(R),[BR]:R=>n.get(R)}:{[fd]:x,[xm]:A,[md]:U,[Sm]:$,[hb]:Y}},zR=e=>{const t=Ck(e),n=s=>{const a=t[fd](s);if("e"in a)throw a.e;if(!("p"in a))return a.v},r=s=>new Promise((a,l)=>{const c=t[fd](s);"e"in c?l(c.e):"p"in c?a(c.p.then(()=>r(s))):a(c.v)});return{get:n,asyncGet:r,set:(s,a)=>t[xm](s,a),sub:(s,a)=>t[Sm](s,a),SECRET_INTERNAL_store:t}},Tk=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:Ck(e)}),dp=new Map,Wv=e=>(dp.has(e)||dp.set(e,_.createContext(Tk())),dp.get(e)),Vv=({children:e,initialValues:t,scope:n,unstable_createStore:r,unstable_enableVersionedWrite:i})=>{const[o,s]=_.useState({});_.useEffect(()=>{const c=a.current;c.w&&(c.s[md](null,o),delete o.p,c.v=o)},[o]);const a=_.useRef();if(!a.current){const c=Tk(t,r);if(i){let u=0;c.w=d=>{s(h=>{const m=u?h:{p:h};return d(m),m})},c.v=o,c.r=d=>{++u,d(),--u}}a.current=c}const l=Wv(n);return _.createElement(l.Provider,{value:a.current},e)};function mt(e,t){return RR(e,t)}function Gl(e,t){const n=Wv(t),r=_.useContext(n),{s:i,v:o}=r,s=h=>{const m=i[fd](e,h);if((Kn&&"production")!=="production"&&!m.y)throw new Error("should not be invalidated");if("e"in m)throw m.e;if("p"in m)throw m.p;if("v"in m)return m.v;throw new Error("no atom value")},[[a,l,c],u]=_.useReducer((h,m)=>{const g=s(m);return Object.is(h[1],g)&&h[2]===e?h:[m,g,e]},o,h=>{const m=s(h);return[h,m,e]});let d=l;return c!==e&&(u(a),d=s(a)),_.useEffect(()=>{const{v:h}=r;h&&i[md](e,h);const m=i[Sm](e,u,h);return u(h),m},[i,e,r]),_.useEffect(()=>{i[md](e,a)}),_.useDebugValue(d),d}function lc(e,t){const n=Wv(t),{s:r,w:i}=_.useContext(n);return _.useCallback(s=>{if((Kn&&"production")!=="production"&&!("write"in e))throw new Error("not writable atom");const a=l=>r[xm](e,s,l);return i?i(a):a()},[r,i,e])}function ze(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[Gl(e,t),lc(e,t)]}const en=Symbol(),_i=zR(),HR=(e,t)=>{const[n,r]=ze(e);return _.useLayoutEffect(()=>{r(typeof t=="function"?t():t)},[]),[n,r]},UR=85,Es={code:"en",label:"English"},Gv=[Es,...[{code:"ar-SA",label:"العربية",rtl:!0},{code:"bg-BG",label:"Български"},{code:"ca-ES",label:"Català"},{code:"cs-CZ",label:"Česky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"Ελληνικά"},{code:"es-ES",label:"Español"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"فارسی",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Français"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"עברית",rtl:!0},{code:"hi-IN",label:"हिन्दी"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"日本語"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"Қазақ тілі"},{code:"ko-KR",label:"한국어"},{code:"ku-TR",label:"Kurdî"},{code:"lt-LT",label:"Lietuvių"},{code:"lv-LV",label:"Latviešu"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokmål"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"ਪੰਜਾਬੀ"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Português Brasileiro"},{code:"pt-PT",label:"Português"},{code:"ro-RO",label:"Română"},{code:"ru-RU",label:"Русский"},{code:"sk-SK",label:"Slovenčina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Slovenščina"},{code:"tr-TR",label:"Türkçe"},{code:"uk-UA",label:"Українська"},{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"vi-VN",label:"Tiếng Việt"},{code:"mr-IN",label:"मराठी"}].filter(e=>Ik[e.code]>=UR).sort((e,t)=>e.label>t.label?1:-1)],Mk="__test__";let fl=Es,If={};const Ak=async e=>{if(fl=e,document.documentElement.dir=fl.rtl?"rtl":"ltr",document.documentElement.lang=fl.code,e.code.startsWith(Mk))If={};else try{If=await MR(Object.assign({"./locales/ar-SA.json":()=>ie(()=>import("./locales/ar-SA.json-SV43LhYq.js"),__vite__mapDeps([])),"./locales/az-AZ.json":()=>ie(()=>import("./locales/az-AZ.json-oLcB2OJI.js"),__vite__mapDeps([])),"./locales/bg-BG.json":()=>ie(()=>import("./locales/bg-BG.json-pnAjs09s.js"),__vite__mapDeps([])),"./locales/bn-BD.json":()=>ie(()=>import("./locales/bn-BD.json-xZvqmnH0.js"),__vite__mapDeps([])),"./locales/ca-ES.json":()=>ie(()=>import("./locales/ca-ES.json-YA_IC9xZ.js"),__vite__mapDeps([])),"./locales/cs-CZ.json":()=>ie(()=>import("./locales/cs-CZ.json-xA16rUn9.js"),__vite__mapDeps([])),"./locales/da-DK.json":()=>ie(()=>import("./locales/da-DK.json-IEeMktGi.js"),__vite__mapDeps([])),"./locales/de-DE.json":()=>ie(()=>import("./locales/de-DE.json-i3JZdkyf.js"),__vite__mapDeps([])),"./locales/el-GR.json":()=>ie(()=>import("./locales/el-GR.json-HpHJuTAr.js"),__vite__mapDeps([])),"./locales/en.json":()=>ie(()=>Promise.resolve().then(()=>AR),void 0),"./locales/es-ES.json":()=>ie(()=>import("./locales/es-ES.json-B52Lj-PT.js"),__vite__mapDeps([])),"./locales/eu-ES.json":()=>ie(()=>import("./locales/eu-ES.json-n0P55DpS.js"),__vite__mapDeps([])),"./locales/fa-IR.json":()=>ie(()=>import("./locales/fa-IR.json-Gtl9UWDE.js"),__vite__mapDeps([])),"./locales/fi-FI.json":()=>ie(()=>import("./locales/fi-FI.json-J5M8FnGK.js"),__vite__mapDeps([])),"./locales/fr-FR.json":()=>ie(()=>import("./locales/fr-FR.json-lfZo79tg.js"),__vite__mapDeps([])),"./locales/gl-ES.json":()=>ie(()=>import("./locales/gl-ES.json--WW2Ul2N.js"),__vite__mapDeps([])),"./locales/he-IL.json":()=>ie(()=>import("./locales/he-IL.json-4DiMSwaz.js"),__vite__mapDeps([])),"./locales/hi-IN.json":()=>ie(()=>import("./locales/hi-IN.json-nhvtlCpV.js"),__vite__mapDeps([])),"./locales/hu-HU.json":()=>ie(()=>import("./locales/hu-HU.json-bmZtU8U3.js"),__vite__mapDeps([])),"./locales/id-ID.json":()=>ie(()=>import("./locales/id-ID.json-XxPjS0Nx.js"),__vite__mapDeps([])),"./locales/it-IT.json":()=>ie(()=>import("./locales/it-IT.json-rBd68gJl.js"),__vite__mapDeps([])),"./locales/ja-JP.json":()=>ie(()=>import("./locales/ja-JP.json-2da-VeKb.js"),__vite__mapDeps([])),"./locales/kaa.json":()=>ie(()=>import("./locales/kaa.json-SGqCLwRa.js"),__vite__mapDeps([])),"./locales/kab-KAB.json":()=>ie(()=>import("./locales/kab-KAB.json-S8YedR0v.js"),__vite__mapDeps([])),"./locales/kk-KZ.json":()=>ie(()=>import("./locales/kk-KZ.json-3Sz1_kBi.js"),__vite__mapDeps([])),"./locales/km-KH.json":()=>ie(()=>import("./locales/km-KH.json-KP5HxHUN.js"),__vite__mapDeps([])),"./locales/ko-KR.json":()=>ie(()=>import("./locales/ko-KR.json-brzJvi-h.js"),__vite__mapDeps([])),"./locales/ku-TR.json":()=>ie(()=>import("./locales/ku-TR.json-3BiS76lb.js"),__vite__mapDeps([])),"./locales/lt-LT.json":()=>ie(()=>import("./locales/lt-LT.json-VZNCnPUp.js"),__vite__mapDeps([])),"./locales/lv-LV.json":()=>ie(()=>import("./locales/lv-LV.json-5aVXkl-5.js"),__vite__mapDeps([])),"./locales/mr-IN.json":()=>ie(()=>import("./locales/mr-IN.json-uScRhQ9i.js"),__vite__mapDeps([])),"./locales/my-MM.json":()=>ie(()=>import("./locales/my-MM.json-Rvx7mHUJ.js"),__vite__mapDeps([])),"./locales/nb-NO.json":()=>ie(()=>import("./locales/nb-NO.json-Jc97XkYt.js"),__vite__mapDeps([])),"./locales/nl-NL.json":()=>ie(()=>import("./locales/nl-NL.json-lulb62bF.js"),__vite__mapDeps([])),"./locales/nn-NO.json":()=>ie(()=>import("./locales/nn-NO.json-19EVdr9m.js"),__vite__mapDeps([])),"./locales/oc-FR.json":()=>ie(()=>import("./locales/oc-FR.json-mgdR7xZo.js"),__vite__mapDeps([])),"./locales/pa-IN.json":()=>ie(()=>import("./locales/pa-IN.json-6nU3HEBq.js"),__vite__mapDeps([])),"./locales/percentages.json":()=>ie(()=>Promise.resolve().then(()=>LR),void 0),"./locales/pl-PL.json":()=>ie(()=>import("./locales/pl-PL.json-e9P_Yfh8.js"),__vite__mapDeps([])),"./locales/pt-BR.json":()=>ie(()=>import("./locales/pt-BR.json-SvBckatZ.js"),__vite__mapDeps([])),"./locales/pt-PT.json":()=>ie(()=>import("./locales/pt-PT.json-kkhuggAD.js"),__vite__mapDeps([])),"./locales/ro-RO.json":()=>ie(()=>import("./locales/ro-RO.json-IuXq2Sgz.js"),__vite__mapDeps([])),"./locales/ru-RU.json":()=>ie(()=>import("./locales/ru-RU.json-AKny6SqI.js"),__vite__mapDeps([])),"./locales/si-LK.json":()=>ie(()=>import("./locales/si-LK.json-htW_YYt1.js"),__vite__mapDeps([])),"./locales/sk-SK.json":()=>ie(()=>import("./locales/sk-SK.json-9kwfDB_I.js"),__vite__mapDeps([])),"./locales/sl-SI.json":()=>ie(()=>import("./locales/sl-SI.json-ASsZh3wt.js"),__vite__mapDeps([])),"./locales/sv-SE.json":()=>ie(()=>import("./locales/sv-SE.json-lo_GRO0H.js"),__vite__mapDeps([])),"./locales/ta-IN.json":()=>ie(()=>import("./locales/ta-IN.json-heb0CKI9.js"),__vite__mapDeps([])),"./locales/th-TH.json":()=>ie(()=>import("./locales/th-TH.json-28RYlLeB.js"),__vite__mapDeps([])),"./locales/tr-TR.json":()=>ie(()=>import("./locales/tr-TR.json-EHF5lOjE.js"),__vite__mapDeps([])),"./locales/uk-UA.json":()=>ie(()=>import("./locales/uk-UA.json-opPb2znK.js"),__vite__mapDeps([])),"./locales/vi-VN.json":()=>ie(()=>import("./locales/vi-VN.json-lNqxPgt2.js"),__vite__mapDeps([])),"./locales/zh-CN.json":()=>ie(()=>import("./locales/zh-CN.json-I6DzD4ui.js"),__vite__mapDeps([])),"./locales/zh-HK.json":()=>ie(()=>import("./locales/zh-HK.json-0R3Wdr1t.js"),__vite__mapDeps([])),"./locales/zh-TW.json":()=>ie(()=>import("./locales/zh-TW.json-b9fBzTxw.js"),__vite__mapDeps([]))}),`./locales/${fl.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),If=Uv}_i.set(Lk,e.code)},Yd=()=>fl,fb=(e,t)=>{for(let n=0;n{if(fl.code.startsWith(Mk))return`‪[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]‬`;const r=e.split(".");let i=fb(If,r)||fb(Uv,r)||n;if(i===void 0){const o=`Can't find translation for ${e}`;return console.warn(o),""}if(t)for(const o in t)i=i.replace(`{{${o}}}`,String(t[o]));return i},Lk=mt(Es.code),xt=()=>{const e=Gl(Lk,en);return{t:b,langCode:e}};function Pk(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t{const[e,t]=_.useState(null),n=_.useCallback(r=>t(r),[]);return[e,n]};function E2(e,t,n){if(e&&e.length){const[r,i]=t,o=Math.PI/180*n,s=Math.cos(o),a=Math.sin(o);for(const l of e){const[c,u]=l;l[0]=(c-r)*s-(u-i)*a+r,l[1]=(c-r)*a+(u-i)*s+i}}}function WR(e,t,n){const r=[];e.forEach(i=>r.push(...i)),E2(r,t,n)}function VR(e,t){return e[0]===t[0]&&e[1]===t[1]}function GR(e,t,n,r=1){const i=n,o=Math.max(t,.1),s=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,a=[0,0];if(i)for(const c of s)E2(c,a,i);const l=jR(s,o,r);if(i){for(const c of s)E2(c,a,-i);WR(l,a,-i)}return l}function jR(e,t,n){const r=[];for(const c of e){const u=[...c];VR(u[0],u[u.length-1])||u.push([u[0][0],u[0][1]]),u.length>2&&r.push(u)}const i=[];t=Math.max(t,.1);const o=[];for(const c of r)for(let u=0;uc.yminu.ymin?1:c.xu.x?1:c.ymax===u.ymax?0:(c.ymax-u.ymax)/Math.abs(c.ymax-u.ymax)),!o.length)return i;let s=[],a=o[0].ymin,l=0;for(;s.length||o.length;){if(o.length){let c=-1;for(let d=0;da);d++)c=d;o.splice(0,c+1).forEach(d=>{s.push({s:a,edge:d})})}if(s=s.filter(c=>!(c.edge.ymax<=a)),s.sort((c,u)=>c.edge.x===u.edge.x?0:(c.edge.x-u.edge.x)/Math.abs(c.edge.x-u.edge.x)),(n!==1||l%t===0)&&s.length>1)for(let c=0;c=s.length)break;const d=s[c].edge,h=s[u].edge;i.push([[Math.round(d.x),a],[Math.round(h.x),a]])}a+=n,s.forEach(c=>{c.edge.x=c.edge.x+n*c.edge.islope}),l++}return i}function Kd(e,t){var n;const r=t.hachureAngle+90;let i=t.hachureGap;i<0&&(i=t.strokeWidth*4),i=Math.max(i,.1);let o=1;return t.roughness>=1&&(((n=t.randomizer)===null||n===void 0?void 0:n.next())||Math.random())>.7&&(o=i),GR(e,i,r,o||1)}class jv{constructor(t){this.helper=t}fillPolygons(t,n){return this._fillPolygons(t,n)}_fillPolygons(t,n){const r=Kd(t,n);return{type:"fillSketch",ops:this.renderLines(r,n)}}renderLines(t,n){const r=[];for(const i of t)r.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],n));return r}}function N1(e){const t=e[0],n=e[1];return Math.sqrt(Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2))}class YR extends jv{fillPolygons(t,n){let r=n.hachureGap;r<0&&(r=n.strokeWidth*4),r=Math.max(r,.1);const i=Object.assign({},n,{hachureGap:r}),o=Kd(t,i),s=Math.PI/180*n.hachureAngle,a=[],l=r*.5*Math.cos(s),c=r*.5*Math.sin(s);for(const[d,h]of o)N1([d,h])&&a.push([[d[0]-l,d[1]+c],[...h]],[[d[0]+l,d[1]-c],[...h]]);return{type:"fillSketch",ops:this.renderLines(a,n)}}}class KR extends jv{fillPolygons(t,n){const r=this._fillPolygons(t,n),i=Object.assign({},n,{hachureAngle:n.hachureAngle+90}),o=this._fillPolygons(t,i);return r.ops=r.ops.concat(o.ops),r}}class ZR{constructor(t){this.helper=t}fillPolygons(t,n){n=Object.assign({},n,{hachureAngle:0});const r=Kd(t,n);return this.dotsOnLines(r,n)}dotsOnLines(t,n){const r=[];let i=n.hachureGap;i<0&&(i=n.strokeWidth*4),i=Math.max(i,.1);let o=n.fillWeight;o<0&&(o=n.strokeWidth/2);const s=i/4;for(const a of t){const l=N1(a),c=l/i,u=Math.ceil(c)-1,d=l-u*i,h=(a[0][0]+a[1][0])/2-i/4,m=Math.min(a[0][1],a[1][1]);for(let g=0;g{const a=N1(s),l=Math.floor(a/(r+i)),c=(a+i-l*(r+i))/2;let u=s[0],d=s[1];u[0]>d[0]&&(u=s[1],d=s[0]);const h=Math.atan((d[1]-u[1])/(d[0]-u[0]));for(let m=0;m{const s=N1(o),a=Math.round(s/(2*n));let l=o[0],c=o[1];l[0]>c[0]&&(l=o[1],c=o[0]);const u=Math.atan((c[1]-l[1])/(c[0]-l[0]));for(let d=0;du%2?c+n:c+t);o.push({key:"C",data:l}),t=l[4],n=l[5];break}case"Q":o.push({key:"Q",data:[...a]}),t=a[2],n=a[3];break;case"q":{const l=a.map((c,u)=>u%2?c+n:c+t);o.push({key:"Q",data:l}),t=l[2],n=l[3];break}case"A":o.push({key:"A",data:[...a]}),t=a[5],n=a[6];break;case"a":t+=a[5],n+=a[6],o.push({key:"A",data:[a[0],a[1],a[2],a[3],a[4],t,n]});break;case"H":o.push({key:"H",data:[...a]}),t=a[0];break;case"h":t+=a[0],o.push({key:"H",data:[t]});break;case"V":o.push({key:"V",data:[...a]}),n=a[0];break;case"v":n+=a[0],o.push({key:"V",data:[n]});break;case"S":o.push({key:"S",data:[...a]}),t=a[2],n=a[3];break;case"s":{const l=a.map((c,u)=>u%2?c+n:c+t);o.push({key:"S",data:l}),t=l[2],n=l[3];break}case"T":o.push({key:"T",data:[...a]}),t=a[0],n=a[1];break;case"t":t+=a[0],n+=a[1],o.push({key:"T",data:[t,n]});break;case"Z":case"z":o.push({key:"Z",data:[]}),t=r,n=i;break}return o}function Fk(e){const t=[];let n="",r=0,i=0,o=0,s=0,a=0,l=0;for(const{key:c,data:u}of e){switch(c){case"M":t.push({key:"M",data:[...u]}),[r,i]=u,[o,s]=u;break;case"C":t.push({key:"C",data:[...u]}),r=u[4],i=u[5],a=u[2],l=u[3];break;case"L":t.push({key:"L",data:[...u]}),[r,i]=u;break;case"H":r=u[0],t.push({key:"L",data:[r,i]});break;case"V":i=u[0],t.push({key:"L",data:[r,i]});break;case"S":{let d=0,h=0;n==="C"||n==="S"?(d=r+(r-a),h=i+(i-l)):(d=r,h=i),t.push({key:"C",data:[d,h,...u]}),a=u[0],l=u[1],r=u[2],i=u[3];break}case"T":{const[d,h]=u;let m=0,g=0;n==="Q"||n==="T"?(m=r+(r-a),g=i+(i-l)):(m=r,g=i);const p=r+2*(m-r)/3,v=i+2*(g-i)/3,y=d+2*(m-d)/3,E=h+2*(g-h)/3;t.push({key:"C",data:[p,v,y,E,d,h]}),a=m,l=g,r=d,i=h;break}case"Q":{const[d,h,m,g]=u,p=r+2*(d-r)/3,v=i+2*(h-i)/3,y=m+2*(d-m)/3,E=g+2*(h-g)/3;t.push({key:"C",data:[p,v,y,E,m,g]}),a=d,l=h,r=m,i=g;break}case"A":{const d=Math.abs(u[0]),h=Math.abs(u[1]),m=u[2],g=u[3],p=u[4],v=u[5],y=u[6];d===0||h===0?(t.push({key:"C",data:[r,i,v,y,v,y]}),r=v,i=y):(r!==v||i!==y)&&($k(r,i,v,y,d,h,m,g,p).forEach(function(w){t.push({key:"C",data:w})}),r=v,i=y);break}case"Z":t.push({key:"Z",data:[]}),r=o,i=s;break}n=c}return t}function nD(e){return Math.PI*e/180}function Fc(e,t,n){const r=e*Math.cos(n)-t*Math.sin(n),i=e*Math.sin(n)+t*Math.cos(n);return[r,i]}function $k(e,t,n,r,i,o,s,a,l,c){const u=nD(s);let d=[],h=0,m=0,g=0,p=0;if(c)[h,m,g,p]=c;else{[e,t]=Fc(e,t,-u),[n,r]=Fc(n,r,-u);const P=(e-n)/2,O=(t-r)/2;let V=P*P/(i*i)+O*O/(o*o);V>1&&(V=Math.sqrt(V),i=V*i,o=V*o);const G=a===l?-1:1,q=i*i,U=o*o,$=q*U-q*O*O-U*P*P,Y=q*O*O+U*P*P,R=G*Math.sqrt(Math.abs($/Y));g=R*i*O/o+(e+n)/2,p=R*-o*P/i+(t+r)/2,h=Math.asin(parseFloat(((t-p)/o).toFixed(9))),m=Math.asin(parseFloat(((r-p)/o).toFixed(9))),em&&(h=h-Math.PI*2),!l&&m>h&&(m=m-Math.PI*2)}let v=m-h;if(Math.abs(v)>Math.PI*120/180){const P=m,O=n,V=r;l&&m>h?m=h+Math.PI*120/180*1:m=h+Math.PI*120/180*-1,n=g+i*Math.cos(m),r=p+o*Math.sin(m),d=$k(n,r,O,V,i,o,s,0,l,[m,P,g,p])}v=m-h;const y=Math.cos(h),E=Math.sin(h),w=Math.cos(m),x=Math.sin(m),C=Math.tan(v/4),S=4/3*i*C,I=4/3*o*C,T=[e,t],L=[e+S*E,t-I*y],A=[n+S*x,r-I*w],F=[n,r];if(L[0]=2*T[0]-L[0],L[1]=2*T[1]-L[1],c)return[L,A,F].concat(d);{d=[L,A,F].concat(d);const P=[];for(let O=0;O2){const i=[];for(let o=0;oMath.PI*2&&(m=0,g=Math.PI*2);const p=Math.PI*2/l.curveStepCount,v=Math.min(p/2,(g-m)/2),y=wb(v,c,u,d,h,m,g,1,l);if(!l.disableMultiStroke){const E=wb(v,c,u,d,h,m,g,1.5,l);y.push(...E)}return s&&(a?y.push(...Ji(c,u,c+d*Math.cos(m),u+h*Math.sin(m),l),...Ji(c,u,c+d*Math.cos(g),u+h*Math.sin(g),l)):y.push({op:"lineTo",data:[c,u]},{op:"lineTo",data:[c+d*Math.cos(m),u+h*Math.sin(m)]})),{type:"path",ops:y}}function pb(e,t){const n=Fk(Nk(Yv(e))),r=[];let i=[0,0],o=[0,0];for(const{key:s,data:a}of n)switch(s){case"M":{o=[a[0],a[1]],i=[a[0],a[1]];break}case"L":r.push(...Ji(o[0],o[1],a[0],a[1],t)),o=[a[0],a[1]];break;case"C":{const[l,c,u,d,h,m]=a;r.push(...hD(l,c,u,d,h,m,o,t)),o=[h,m];break}case"Z":r.push(...Ji(o[0],o[1],i[0],i[1],t)),o=[i[0],i[1]];break}return{type:"path",ops:r}}function fp(e,t){const n=[];for(const r of e)if(r.length){const i=t.maxRandomnessOffset||0,o=r.length;if(o>2){n.push({op:"move",data:[r[0][0]+fe(i,t),r[0][1]+fe(i,t)]});for(let s=1;sMath.PI*2&&(d=0,h=Math.PI*2);const m=(h-d)/s.curveStepCount,g=[];for(let p=d;p<=h;p=p+m)g.push([a+c*Math.cos(p),l+u*Math.sin(p)]);return g.push([a+c*Math.cos(h),l+u*Math.sin(h)]),g.push([a,l]),Ja([g],s)}function lD(e,t){return fe(e,t)}function cD(e,t,n){return km(e,t,n)}function uD(e,t,n,r,i){return Ji(e,t,n,r,i,!0)}function dD(e){const t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}function Hk(e){return e.randomizer||(e.randomizer=new Dk(e.seed||0)),e.randomizer.next()}function km(e,t,n,r=1){return n.roughness*r*(Hk(n)*(t-e)+e)}function fe(e,t,n=1){return km(-e,e,t,n)}function Ji(e,t,n,r,i,o=!1){const s=o?i.disableMultiStrokeFill:i.disableMultiStroke,a=yb(e,t,n,r,i,!0,!1);if(s)return a;const l=yb(e,t,n,r,i,!0,!0);return a.concat(l)}function yb(e,t,n,r,i,o,s){const a=Math.pow(e-n,2)+Math.pow(t-r,2),l=Math.sqrt(a);let c=1;l<200?c=1:l>500?c=.4:c=-.0016668*l+1.233334;let u=i.maxRandomnessOffset||0;u*u*100>a&&(u=l/10);const d=u/2,h=.2+Hk(i)*.2;let m=i.bowing*i.maxRandomnessOffset*(r-t)/200,g=i.bowing*i.maxRandomnessOffset*(e-n)/200;m=fe(m,i,c),g=fe(g,i,c);const p=[],v=()=>fe(d,i,c),y=()=>fe(u,i,c),E=i.preserveVertices;return o&&(s?p.push({op:"move",data:[e+(E?0:v()),t+(E?0:v())]}):p.push({op:"move",data:[e+(E?0:fe(u,i,c)),t+(E?0:fe(u,i,c))]})),s?p.push({op:"bcurveTo",data:[m+e+(n-e)*h+v(),g+t+(r-t)*h+v(),m+e+2*(n-e)*h+v(),g+t+2*(r-t)*h+v(),n+(E?0:v()),r+(E?0:v())]}):p.push({op:"bcurveTo",data:[m+e+(n-e)*h+y(),g+t+(r-t)*h+y(),m+e+2*(n-e)*h+y(),g+t+2*(r-t)*h+y(),n+(E?0:y()),r+(E?0:y())]}),p}function vb(e,t,n){const r=[];r.push([e[0][0]+fe(t,n),e[0][1]+fe(t,n)]),r.push([e[0][0]+fe(t,n),e[0][1]+fe(t,n)]);for(let i=1;i3){const o=[],s=1-n.curveTightness;i.push({op:"move",data:[e[1][0],e[1][1]]});for(let a=1;a+21&&i.push(o):i.push(o),i.push(e[t+3])}else{const s=e[t+0],a=e[t+1],l=e[t+2],c=e[t+3],u=As(s,a,.5),d=As(a,l,.5),h=As(l,c,.5),m=As(u,d,.5),g=As(d,h,.5),p=As(m,g,.5);_2([s,u,m,p],0,n,i),_2([p,g,h,c],0,n,i)}return i}function yD(e,t){return Cm(e,0,e.length,t)}function Cm(e,t,n,r,i){const o=i||[],s=e[t],a=e[n-1];let l=0,c=1;for(let u=t+1;ul&&(l=d,c=u)}return Math.sqrt(l)>r?(Cm(e,t,c+1,r,o),Cm(e,c,n,r,o)):(o.length||o.push(s),o.push(a)),o}function Uk(e,t=.15,n){const r=[],i=(e.length-1)/3;for(let o=0;o0?Cm(r,0,r.length,n):r}function vD(e,t,n){const r=Yv(e),i=Fk(Nk(r)),o=[];let s=[],a=[0,0],l=[];const c=()=>{l.length>=4&&s.push(...Uk(l,t)),l=[]},u=()=>{c(),s.length&&(o.push(s),s=[])};for(const{key:h,data:m}of i)switch(h){case"M":u(),a=[m[0],m[1]],s.push(a);break;case"L":c(),s.push([m[0],m[1]]);break;case"C":if(!l.length){const g=s.length?s[s.length-1]:a;l.push([g[0],g[1]])}l.push([m[0],m[1]]),l.push([m[2],m[3]]),l.push([m[4],m[5]]);break;case"Z":c(),s.push([a[0],a[1]]);break}if(u(),!n)return o;const d=[];for(const h of o){const m=yD(h,n);m.length&&d.push(m)}return d}const Yn="none";class gd{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return JR()}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,n,r){return{shape:t,sets:n||[],options:r||this.defaultOptions}}line(t,n,r,i,o){const s=this._o(o);return this._d("line",[Bk(t,n,r,i,s)],s)}rectangle(t,n,r,i,o){const s=this._o(o),a=[],l=oD(t,n,r,i,s);if(s.fill){const c=[[t,n],[t+r,n],[t+r,n+i],[t,n+i]];s.fillStyle==="solid"?a.push(fp([c],s)):a.push(Ja([c],s))}return s.stroke!==Yn&&a.push(l),this._d("rectangle",a,s)}ellipse(t,n,r,i,o){const s=this._o(o),a=[],l=zk(r,i,s),c=b2(t,n,s,l);if(s.fill)if(s.fillStyle==="solid"){const u=b2(t,n,s,l).opset;u.type="fillPath",a.push(u)}else a.push(Ja([c.estimatedPoints],s));return s.stroke!==Yn&&a.push(c.opset),this._d("ellipse",a,s)}circle(t,n,r,i){const o=this.ellipse(t,n,r,r,i);return o.shape="circle",o}linearPath(t,n){const r=this._o(n);return this._d("linearPath",[Cf(t,!1,r)],r)}arc(t,n,r,i,o,s,a=!1,l){const c=this._o(l),u=[],d=gb(t,n,r,i,o,s,a,!0,c);if(a&&c.fill)if(c.fillStyle==="solid"){const h=Object.assign({},c);h.disableMultiStroke=!0;const m=gb(t,n,r,i,o,s,!0,!1,h);m.type="fillPath",u.push(m)}else u.push(aD(t,n,r,i,o,s,c));return c.stroke!==Yn&&u.push(d),this._d("arc",u,c)}curve(t,n){const r=this._o(n),i=[],o=mb(t,r);if(r.fill&&r.fill!==Yn&&t.length>=3)if(r.fillStyle==="solid"){const s=mb(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{const s=fD(t),a=Uk(s,10,(1+r.roughness)/2);i.push(Ja([a],r))}return r.stroke!==Yn&&i.push(o),this._d("curve",i,r)}polygon(t,n){const r=this._o(n),i=[],o=Cf(t,!0,r);return r.fill&&(r.fillStyle==="solid"?i.push(fp([t],r)):i.push(Ja([t],r))),r.stroke!==Yn&&i.push(o),this._d("polygon",i,r)}path(t,n){const r=this._o(n),i=[];if(!t)return this._d("path",i,r);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const o=r.fill&&r.fill!=="transparent"&&r.fill!==Yn,s=r.stroke!==Yn,a=!!(r.simplification&&r.simplification<1),l=a?4-4*(r.simplification||1):(1+r.roughness)/2,c=vD(t,1,l),u=pb(t,r);if(o)if(r.fillStyle==="solid")if(c.length===1){const d=pb(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(d.ops)})}else i.push(fp(c,r));else i.push(Ja(c,r));return s&&(a?c.forEach(d=>{i.push(Cf(d,!1,r))}):i.push(u)),this._d("path",i,r)}opsToPath(t,n){let r="";for(const i of t.ops){const o=typeof n=="number"&&n>=0?i.data.map(s=>+s.toFixed(n)):i.data;switch(i.op){case"move":r+=`M${o[0]} ${o[1]} `;break;case"bcurveTo":r+=`C${o[0]} ${o[1]}, ${o[2]} ${o[3]}, ${o[4]} ${o[5]} `;break;case"lineTo":r+=`L${o[0]} ${o[1]} `;break}}return r.trim()}toPaths(t){const n=t.sets||[],r=t.options||this.defaultOptions,i=[];for(const o of n){let s=null;switch(o.type){case"path":s={d:this.opsToPath(o),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:Yn};break;case"fillPath":s={d:this.opsToPath(o),stroke:Yn,strokeWidth:0,fill:r.fill||Yn};break;case"fillSketch":s=this.fillSketch(o,r);break}s&&i.push(s)}return i}fillSketch(t,n){let r=n.fillWeight;return r<0&&(r=n.strokeWidth/2),{d:this.opsToPath(t),stroke:n.fill||Yn,strokeWidth:r,fill:Yn}}_mergedShape(t){return t.filter((n,r)=>r===0?!0:n.op!=="move")}}class ED{constructor(t,n){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new gd(n)}draw(t){const n=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.ctx,o=t.options.fixedDecimalPlaceDigits;for(const s of n)switch(s.type){case"path":i.save(),i.strokeStyle=r.stroke==="none"?"transparent":r.stroke,i.lineWidth=r.strokeWidth,r.strokeLineDash&&i.setLineDash(r.strokeLineDash),r.strokeLineDashOffset&&(i.lineDashOffset=r.strokeLineDashOffset),this._drawToContext(i,s,o),i.restore();break;case"fillPath":{i.save(),i.fillStyle=r.fill||"";const a=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,o,a),i.restore();break}case"fillSketch":this.fillSketch(i,s,r);break}}fillSketch(t,n,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2),t.save(),r.fillLineDash&&t.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(t.lineDashOffset=r.fillLineDashOffset),t.strokeStyle=r.fill||"",t.lineWidth=i,this._drawToContext(t,n,r.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,n,r,i="nonzero"){t.beginPath();for(const o of n.ops){const s=typeof r=="number"&&r>=0?o.data.map(a=>+a.toFixed(r)):o.data;switch(o.op){case"move":t.moveTo(s[0],s[1]);break;case"bcurveTo":t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":t.lineTo(s[0],s[1]);break}}n.type==="fillPath"?t.fill(i):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,n,r,i,o){const s=this.gen.line(t,n,r,i,o);return this.draw(s),s}rectangle(t,n,r,i,o){const s=this.gen.rectangle(t,n,r,i,o);return this.draw(s),s}ellipse(t,n,r,i,o){const s=this.gen.ellipse(t,n,r,i,o);return this.draw(s),s}circle(t,n,r,i){const o=this.gen.circle(t,n,r,i);return this.draw(o),o}linearPath(t,n){const r=this.gen.linearPath(t,n);return this.draw(r),r}polygon(t,n){const r=this.gen.polygon(t,n);return this.draw(r),r}arc(t,n,r,i,o,s,a=!1,l){const c=this.gen.arc(t,n,r,i,o,s,a,l);return this.draw(c),c}curve(t,n){const r=this.gen.curve(t,n);return this.draw(r),r}path(t,n){const r=this.gen.path(t,n);return this.draw(r),r}}const Bh="http://www.w3.org/2000/svg";class wD{constructor(t,n){this.svg=t,this.gen=new gd(n)}draw(t){const n=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,o=i.createElementNS(Bh,"g"),s=t.options.fixedDecimalPlaceDigits;for(const a of n){let l=null;switch(a.type){case"path":{l=i.createElementNS(Bh,"path"),l.setAttribute("d",this.opsToPath(a,s)),l.setAttribute("stroke",r.stroke),l.setAttribute("stroke-width",r.strokeWidth+""),l.setAttribute("fill","none"),r.strokeLineDash&&l.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&l.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break}case"fillPath":{l=i.createElementNS(Bh,"path"),l.setAttribute("d",this.opsToPath(a,s)),l.setAttribute("stroke","none"),l.setAttribute("stroke-width","0"),l.setAttribute("fill",r.fill||""),(t.shape==="curve"||t.shape==="polygon")&&l.setAttribute("fill-rule","evenodd");break}case"fillSketch":{l=this.fillSketch(i,a,r);break}}l&&o.appendChild(l)}return o}fillSketch(t,n,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);const o=t.createElementNS(Bh,"path");return o.setAttribute("d",this.opsToPath(n,r.fixedDecimalPlaceDigits)),o.setAttribute("stroke",r.fill||""),o.setAttribute("stroke-width",i+""),o.setAttribute("fill","none"),r.fillLineDash&&o.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&o.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),o}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,n){return this.gen.opsToPath(t,n)}line(t,n,r,i,o){const s=this.gen.line(t,n,r,i,o);return this.draw(s)}rectangle(t,n,r,i,o){const s=this.gen.rectangle(t,n,r,i,o);return this.draw(s)}ellipse(t,n,r,i,o){const s=this.gen.ellipse(t,n,r,i,o);return this.draw(s)}circle(t,n,r,i){const o=this.gen.circle(t,n,r,i);return this.draw(o)}linearPath(t,n){const r=this.gen.linearPath(t,n);return this.draw(r)}polygon(t,n){const r=this.gen.polygon(t,n);return this.draw(r)}arc(t,n,r,i,o,s,a=!1,l){const c=this.gen.arc(t,n,r,i,o,s,a,l);return this.draw(c)}curve(t,n){const r=this.gen.curve(t,n);return this.draw(r)}path(t,n){const r=this.gen.path(t,n);return this.draw(r)}}const ws={canvas(e,t){return new ED(e,t)},svg(e,t){return new wD(e,t)},generator(e){return new gd(e)},newSeed(){return gd.newSeed()}};let Kv=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");const bb=()=>{const e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),i=`${e.getHours()}`.padStart(2,"0"),o=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${i}${o}`},Mf=e=>e.charAt(0).toUpperCase()+e.slice(1),bD=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),Wk=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,_D=e=>Wk(e)||e instanceof Element&&!!e.closest("label, button"),Ns=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"),Zv=({fontFamily:e})=>{for(const[t,n]of Object.entries(Xt))if(n===e)return`${t}, ${sb}`;return sb},Bt=({fontSize:e,fontFamily:t})=>`${e}px ${Zv({fontFamily:t})}`,fa=(e,t)=>{let n=0,r=null;const i=(...o)=>{r=o,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...o)},t)};return i.flush=()=>{if(clearTimeout(n),r){const o=r;r=null,e(...o)}},i.cancel=()=>{r=null,clearTimeout(n)},i},F1=(e,t)=>{let n=null,r=null,i=null;const o=a=>{n=window.requestAnimationFrame(()=>{n=null,e(...a),r=null,i&&(r=i,i=null,o(r))})},s=(...a)=>{r=a,n===null?o(r):t!=null&&t.trailing&&(i=a)};return s.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...i||r),r=i=null)},s.cancel=()=>{r=i=null,n!==null&&(cancelAnimationFrame(n),n=null)},s},ra=e=>1-Math.pow(1-e,4),_b=(e,t,n)=>(t-e)*ra(n)+e,xD=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:i,onStart:o,onEnd:s,onCancel:a})=>{let l=!1,c=0,u;function d(h){if(l)return;u===void 0&&(u=h,o==null||o());const m=Math.min(h-u,r),g=ra(m/r),p={};if(Object.keys(e).forEach(v=>{const y=v,E=(t[y]-e[y])*g+e[y];p[y]=E}),n(p),m{const w=E,x=e[w],C=t[w];let S;S=i?i(x,C,v,w):_b(x,C,v),S==null&&(S=_b(x,C,v)),y[w]=S}),n(y),c=window.requestAnimationFrame(d)}else n(t),s==null||s()}return c=window.requestAnimationFrame(d),()=>{a==null||a(),l=!0,window.cancelAnimationFrame(c)}},SD=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0;const i=Array(Math.ceil(e.length/t));for(;nMath.abs(e-t),bt=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked},K=e=>(e=e.replace(/\bAlt\b/i,"Alt").replace(/\bShift\b/i,"Shift").replace(/\b(Enter|Return)\b/i,"Enter"),ki?e.replace(/\bCtrlOrCmd\b/gi,"Cmd").replace(/\bAlt\b/i,"Option"):e.replace(/\bCtrlOrCmd\b/gi,"Ctrl")),et=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:i,scrollX:o,scrollY:s})=>{const a=(e-r)/n.value-o,l=(t-i)/n.value-s;return{x:a,y:l}},Ur=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:i,scrollX:o,scrollY:s})=>{const a=(e+o)*n.value+r,l=(t+s)*n.value+i;return{x:a,y:l}},zh=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),kD="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿Ⰰ-﬜﷾-﹯﻽-￿",ID="֑-߿יִ-﷽ﹰ-ﻼ",CD=new RegExp(`^[^${kD}]*[${ID}]`),Vk=e=>CD.test(e),Oo=e=>{const[t,n]=e;return{x:t,y:n}},Gk=e=>{if((e==null?void 0:e.name)==="AbortError"){console.warn(e);return}throw e},jk=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},Ei=e=>{const t=e.length===5&&e.substr(4,1)==="0",n=e.length===9&&e.substr(7,2)==="00";return t||n||e===ve.transparent},$1=()=>{let e,t;const n=new Promise((r,i)=>{e=r,t=i});return n.resolve=e,n.reject=t,n},xb=(e,t)=>{const n=[{value:1,symbol:"b"},{value:1e3,symbol:"k"},{value:1e6,symbol:"M"},{value:1e9,symbol:"G"}],r=/\.0+$|(\.[0-9]*[1-9])0+$/;let i;for(i=n.length-1;i>0&&!(e>=n[i].value);i--);return(e/n[i].value).toFixed(t).replace(r,"$1")+n[i].symbol},x2=()=>{var e;return((e=document.querySelector('meta[name="version"]'))==null?void 0:e.content)||HS},TD=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;const{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},MD=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},Xv=e=>{e.preventDefault(),e.returnValue=""},Kk=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),cc=()=>Date.now(),be=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),Zk=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),Xk=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Af=(e,t)=>{let n=!1;for(const r in t){const i=t[r];if(typeof i<"u"){if(e[r]===i&&(typeof i!="object"||i===null))continue;n=!0}}return n?{...e,...t}:e},Zd=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}},AD=()=>Zd()==="iframe",Xd=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,S2=e=>{const t=e==null?void 0:e.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},Sb=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,Jn=(e,t,n,r=!1)=>{const i=Object.keys(e),o=Object.keys(t);if(i.length!==o.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(const s of n)if(!(e[s]===t[s]||Sb(e[s],t[s])))return r&&console.warn(`%cisShallowEqual: ${s} not equal ->`,"color: #8B4000",e[s],t[s]),!1;return!0}return i.every(s=>{const a=n==null?void 0:n[s],l=a?a(e[s],t[s]):e[s]===t[s]||Sb(e[s],t[s]);return!l&&r&&console.warn(`%cisShallowEqual: ${s} not equal ->`,"color: #8B4000",e[s],t[s]),l})},B1=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(i){if(e==null||e(i),!n||!(i!=null&&i.defaultPrevented))return t==null?void 0:t(i)},jl=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)},LD=e=>{let t,n;const r=function(i){const o=Object.entries(i);if(t){let a=!0;for(const[l,c]of o)if(t.get(l)!==c){a=!1;break}if(a)return n}const s=e(i);return t=new Map(o),n=s,s};return r.clear=()=>{t=void 0,n=void 0},r},k2=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Yl=e=>JSON.parse(JSON.stringify(e)),kb=e=>typeof e=="number"&&Number.isFinite(e),mp=(e,t)=>Jn(e,t)?e:t;function gt(e,t,n,r){var i;return e?((i=e==null?void 0:e.addEventListener)==null||i.call(e,t,n,r),()=>{var o;(o=e==null?void 0:e.removeEventListener)==null||o.call(e,t,n,r)}):()=>{}}const Hh=(e,t)=>(e+t)/2;function PD(e,t=!0){const n=e.length;if(n<4)return"";let r=e[0],i=e[1];const o=e[2];let s=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${i[0].toFixed(2)},${i[1].toFixed(2)} ${Hh(i[0],o[0]).toFixed(2)},${Hh(i[1],o[1]).toFixed(2)} T`;for(let a=2,l=n-1;ae.replace(/\r?\n|\r/g,` -`),ma=e=>e,I2=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ft=e=>!!e&&e.type==="image"&&!!e.fileId,Gi=e=>!!e&&e.type==="image",bn=e=>!!e&&e.type==="embeddable",Io=e=>!!e&&e.type==="iframe",fr=e=>!!e&&(e.type==="iframe"||e.type==="embeddable"),ce=e=>e!=null&&e.type==="text",pd=e=>e!=null&&e.type==="frame",uu=e=>e!=null&&e.type==="magicframe",pe=e=>e!=null&&(e.type==="frame"||e.type==="magicframe"),Hn=e=>e!=null&&RD(e.type),RD=e=>e==="freedraw",we=e=>e!=null&&qv(e.type),Ge=e=>e!=null&&e.type==="arrow",qv=e=>e==="arrow"||e==="line",dn=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&Qk(e.type),Qk=e=>e==="arrow",yd=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type==="rectangle"||e.type==="diamond"||e.type==="ellipse"||e.type==="image"||e.type==="iframe"||e.type==="embeddable"||e.type==="frame"||e.type==="magicframe"||e.type==="text"&&!e.containerId),ia=(e,t=!0)=>e!=null&&(!e.locked||t===!0)&&(e.type==="rectangle"||e.type==="diamond"||e.type==="ellipse"||Ge(e)),Jk=e=>{const t=e==null?void 0:e.type;if(!t)return!1;switch(t){case"text":case"diamond":case"rectangle":case"iframe":case"embeddable":case"ellipse":case"arrow":case"freedraw":case"line":case"frame":case"magicframe":case"image":case"selection":return!0;default:return jl(t,null),!1}},ls=e=>{var t;return ia(e)&&!!((t=e.boundElements)!=null&&t.some(({type:n})=>n==="text"))},Mt=e=>e!==null&&"containerId"in e&&e.containerId!==null&&ce(e),uc=e=>e==="rectangle"||e==="embeddable"||e==="iframe"||e==="image",eI=e=>e==="line"||e==="arrow"||e==="diamond",DD=(e,t)=>!!((e===Vt.ADAPTIVE_RADIUS||e===Vt.LEGACY)&&uc(t.type)||e===Vt.PROPORTIONAL_RADIUS&&eI(t.type)),OD=e=>eI(e.type)?{type:Vt.PROPORTIONAL_RADIUS}:uc(e.type)?{type:Vt.ADAPTIVE_RADIUS}:null;let ND=new Dk(Date.now());const bs=()=>Math.floor(ND.next()*2**31),xr=()=>Kv(),Ib=e=>{const t=new Map,n=[];for(const r of e)r.isDeleted||(n.push(r),t.set(r.id,r));return{elementsMap:t,elements:n}},FD=e=>{const t=["includeBoundTextElement","includeElementsInFrames"];let n="";for(const r of t)n+=`${r}:${e[r]?"1":"0"}`;return n},Cb=e=>typeof e=="string",zs=class zs{constructor(){M(this,"callbacks",new Set);M(this,"nonDeletedElements",[]);M(this,"nonDeletedElementsMap",ma(new Map));M(this,"elements",[]);M(this,"nonDeletedFramesLikes",[]);M(this,"frames",[]);M(this,"elementsMap",ma(new Map));M(this,"selectedElementsCache",{selectedElementIds:null,elements:null,cache:new Map});M(this,"versionNonce");M(this,"addNewElement",t=>{t.frameId?this.insertElementAtIndex(t,this.getElementIndex(t.frameId)):this.replaceAllElements([...this.elements,t])});M(this,"getContainerElement",t=>t&&t.containerId&&this.getElement(t.containerId)||null)}static mapElementToScene(t,n){Cb(t)?this.sceneMapById.set(t,n):(this.sceneMapByElement.set(t,n),this.sceneMapById.set(t.id,n))}static getScene(t){return Cb(t)?this.sceneMapById.get(t)||null:this.sceneMapByElement.get(t)||null}getElementsMapIncludingDeleted(){return this.elementsMap}getNonDeletedElementsMap(){return this.nonDeletedElementsMap}getElementsIncludingDeleted(){return this.elements}getNonDeletedElements(){return this.nonDeletedElements}getFramesIncludingDeleted(){return this.frames}getSelectedElements(t){const n=FD(t),r=(t==null?void 0:t.elements)||this.nonDeletedElements;if(this.selectedElementsCache.elements===r&&this.selectedElementsCache.selectedElementIds===t.selectedElementIds){const o=this.selectedElementsCache.cache.get(n);if(o)return o}else(t==null?void 0:t.elements)==null&&this.selectedElementsCache.cache.clear();const i=qe(r,{selectedElementIds:t.selectedElementIds},t);return(t==null?void 0:t.elements)==null&&(this.selectedElementsCache.selectedElementIds=t.selectedElementIds,this.selectedElementsCache.elements=this.nonDeletedElements,this.selectedElementsCache.cache.set(n,i)),i}getNonDeletedFramesLikes(){return this.nonDeletedFramesLikes}getElement(t){return this.elementsMap.get(t)||null}getVersionNonce(){return this.versionNonce}getNonDeletedElement(t){const n=this.getElement(t);return n&&ty(n)?n:null}mapElements(t){let n=!1;const r=this.elements.map(i=>{const o=t(i);return o!==i&&(n=!0),o});return n&&this.replaceAllElements(r),n}replaceAllElements(t){this.elements=t instanceof Array?t:Array.from(t.values());const n=[];this.elementsMap.clear(),this.elements.forEach(i=>{pe(i)&&n.push(i),this.elementsMap.set(i.id,i),zs.mapElementToScene(i,this)});const r=Ib(this.elements);this.nonDeletedElements=r.elements,this.nonDeletedElementsMap=r.elementsMap,this.frames=n,this.nonDeletedFramesLikes=Ib(this.frames).elements,this.informMutation()}informMutation(){this.versionNonce=bs();for(const t of Array.from(this.callbacks))t()}addCallback(t){if(this.callbacks.has(t))throw new Error;return this.callbacks.add(t),()=>{if(!this.callbacks.has(t))throw new Error;this.callbacks.delete(t)}}destroy(){this.nonDeletedElements=[],this.elements=[],this.nonDeletedFramesLikes=[],this.frames=[],this.elementsMap.clear(),this.selectedElementsCache.selectedElementIds=null,this.selectedElementsCache.elements=null,this.selectedElementsCache.cache.clear(),zs.sceneMapById.forEach((t,n)=>{t===this&&zs.sceneMapById.delete(n)}),this.callbacks.clear()}insertElementAtIndex(t,n){if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");const r=[...this.elements.slice(0,n),t,...this.elements.slice(n)];this.replaceAllElements(r)}insertElementsAtIndex(t,n){if(!Number.isFinite(n)||n<0)throw new Error("insertElementAtIndex can only be called with index >= 0");const r=[...this.elements.slice(0,n),...t,...this.elements.slice(n)];this.replaceAllElements(r)}getElementIndex(t){return this.elements.findIndex(n=>n.id===t)}};M(zs,"sceneMapByElement",new WeakMap),M(zs,"sceneMapById",new Map);let $t=zs;const tI=e=>{const t=e.map(r=>r[0]),n=e.map(r=>r[1]);return{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}},Kl=(e,t,n,r)=>{const i=n.map(m=>m[e]),o=Math.max(...i),s=Math.min(...i),a=o-s,l=a===0?1:t/a;let c=1/0;const u=n.map(m=>{const g=m[e]*l,p=[...m];return p[e]=g,gm.map((g,p)=>p===e?g+d:g))},_e=(e,t,n,r,i)=>[(e-n)*Math.cos(i)-(t-r)*Math.sin(i)+n,(e-n)*Math.sin(i)+(t-r)*Math.cos(i)+r],st=(e,t,n)=>_e(e[0],e[1],t[0],t[1],n),nI=(e,t,n,r,i,o,s,a)=>{const l=Math.cos(r),c=Math.sin(r);return e.e&&e.w?t+=i+s:e.e?(t+=i*(1+l),n+=i*c,t+=s*(1-l),n+=s*-c):e.w&&(t+=i*(1-l),n+=i*-c,t+=s*(1+l),n+=s*c),e.n&&e.s?n+=o+a:e.n?(t+=o*c,n+=o*(1-l),t+=a*-c,n+=a*(1+l)):e.s&&(t+=o*-c,n+=o*(1+l),t+=a*c,n+=a*(1-l)),[t,n]},kt=(e,t,n,r)=>{const i=n-e,o=r-t;return Math.hypot(i,o)},C2=(e,t)=>[(e[0]+t[0])/2,(e[1]+t[1])/2],cs=(e,t=1)=>{if(e.length>=3){const[n,r]=[e[0],e[e.length-1]];return kt(n[0],n[1],r[0],r[1])<=Sf/t}return!1},Tb=(e,t,n)=>{const r=e.length;if(r<3)return!1;const i=[Number.MAX_SAFE_INTEGER,n],o=[t,n];let s=0;for(let a=0;at[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1]),du=(e,t,n)=>{const r=(t[1]-e[1])*(n[0]-t[0])-(t[0]-e[0])*(n[1]-t[1]);return r===0?0:r>0?1:2},$D=(e,t,n,r)=>{const i=du(e,t,n),o=du(e,t,r),s=du(n,r,e),a=du(n,r,t);return!!(i!==o&&s!==a||i===0&&ml(e,n,t)||o===0&&ml(e,r,t)||s===0&&ml(n,e,r)||a===0&&ml(n,t,r))},jt=(e,t,n)=>n?[Math.round(e/n)*n,Math.round(t/n)*n]:[e,t],oa=(e,t)=>{var n,r,i,o;if(((n=t.roundness)==null?void 0:n.type)===Vt.PROPORTIONAL_RADIUS||((r=t.roundness)==null?void 0:r.type)===Vt.LEGACY)return e*cp;if(((i=t.roundness)==null?void 0:i.type)===Vt.ADAPTIVE_RADIUS){const s=((o=t.roundness)==null?void 0:o.value)??xR,a=s/cp;return e<=a?e*cp:s}return 0},rI=(e,t)=>{const n=Xe.generateElementShape(e,null);if(!n)return null;const r=_s(n[0]);let i=[0,0],o=0,s=1/0,a=null;for(;o{const o=(l,c)=>Math.pow(1-l,3)*r[c]+3*l*Math.pow(1-l,2)*n[c]+3*Math.pow(l,2)*(1-l)*t[c]+e[c]*Math.pow(l,3),s=o(i,0),a=o(i,1);return[s,a]},BD=(e,t)=>{const n=rI(e,t);if(!n)return[];const r=[];let i=1;for(;i>0;){const o=iI(n[0],n[1],n[2],n[3],i);r.push([o[0],o[1]]),i-=.05}return r.length&&sI(r.at(-1),t)&&r.push([t[0],t[1]]),r},oI=(e,t)=>{const n=[];n[0]=0;const r=BD(e,t);let i=0,o=0;for(;ioI(e,t).at(-1),HD=(e,t,n)=>{const r=oI(e,t),i=r.length-1,o=r.at(-1),s=n*o;let a=0,l=i,c=0;for(;as&&c--,r[c]===s?c/i:1-(c+(s-r[c])/(r[c+1]-r[c]))/i},sI=(e,t)=>e[0]===t[0]&&e[1]===t[1],UD=e=>Math.round(e/Math.PI*1e4)%5e3===0,Tm=([e,t],[n,r])=>e<=n?t>=n:e>=n?r>=e:!1,Mm=(e,t)=>{const n=Math.max(e[0],t[0]),r=Math.min(e[1],t[1]);return n<=r?[n,r]:null},Uh=(e,t,n)=>e>=t&&e<=n;function WD(e,t){return Math.sqrt(Lf(e,t))}function Lf(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function VD(e,t,n){const r=Lf(t,n);if(r===0)return Lf(e,t);let i=((e[0]-t[0])*(n[0]-t[0])+(e[1]-t[1])*(n[1]-t[1]))/r;return i=Math.max(0,Math.min(1,i)),Lf(e,Ls(t,n,i))}function Ls(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n]}function GD(e,t){const n=e[t+0],r=e[t+1],i=e[t+2],o=e[t+3];let s=3*r[0]-2*n[0]-o[0];s*=s;let a=3*r[1]-2*n[1]-o[1];a*=a;let l=3*i[0]-2*o[0]-n[0];l*=l;let c=3*i[1]-2*o[1]-n[1];return c*=c,s1&&i.push(o):i.push(o),i.push(e[t+3])}else{const s=e[t+0],a=e[t+1],l=e[t+2],c=e[t+3],u=Ls(s,a,.5),d=Ls(a,l,.5),h=Ls(l,c,.5),m=Ls(u,d,.5),g=Ls(d,h,.5),p=Ls(m,g,.5);T2([s,u,m,p],0,n,i),T2([p,g,h,c],0,n,i)}return i}function jD(e,t){return Am(e,0,e.length,t)}function Am(e,t,n,r,i){const o=i||[],s=e[t],a=e[n-1];let l=0,c=1;for(let u=t+1;ul&&(l=d,c=u)}return Math.sqrt(l)>r?(Am(e,t,c+1,r,o),Am(e,c,n,r,o)):(o.length||o.push(s),o.push(a)),o}function YD(e,t=.15,n){const r=[],i=(e.length-1)/3;for(let o=0;o0?Am(r,0,r.length,n):r}const gl=e=>e==="rectangle"||e==="iframe"||e==="embeddable"||e==="ellipse"||e==="diamond"||e==="line"||e==="freedraw",M2=e=>e!=="image"&&e!=="frame"&&e!=="magicframe",Mb=e=>e==="rectangle"||e==="iframe"||e==="embeddable"||e==="ellipse"||e==="diamond"||e==="freedraw"||e==="arrow"||e==="line",Ab=e=>e==="rectangle"||e==="iframe"||e==="embeddable"||e==="ellipse"||e==="diamond"||e==="arrow"||e==="line",A2=e=>e==="rectangle"||e==="iframe"||e==="embeddable"||e==="arrow"||e==="line"||e==="diamond"||e==="image",Lm=e=>e==="arrow",KD=(e,t)=>{let n=null;for(let r=e.length-1;r>=0;--r){const i=e[r];if(!i.isDeleted&&t(i)){n=i;break}}return n},ZD=(e,t)=>{const n=[];return e.filter(i=>!i.isDeleted&&t(i)?Io(i)?(n.push(i),!1):!0:!1).concat(n)},XD=e=>[8,8+e],aI=e=>[1.5,6+e];function qD(e){const t=e.roughness,n=Math.max(e.width,e.height),r=Math.min(e.width,e.height);return r>=20&&n>=50||r>=15&&e.roundness&&A2(e.type)||we(e)&&n>=50?t:Math.min(t/(n<10?3:2),2.5)}const ur=(e,t=!1)=>{const n={seed:e.seed,strokeLineDash:e.strokeStyle==="dashed"?XD(e.strokeWidth):e.strokeStyle==="dotted"?aI(e.strokeWidth):void 0,disableMultiStroke:e.strokeStyle!=="solid",strokeWidth:e.strokeStyle!=="solid"?e.strokeWidth+.5:e.strokeWidth,fillWeight:e.strokeWidth/2,hachureGap:e.strokeWidth*4,roughness:qD(e),stroke:e.strokeColor,preserveVertices:t||e.roughnessfr(e)&&(t||bn(e)&&(n==null?void 0:n.get(e.id))!==!0)&&Ei(e.backgroundColor)&&Ei(e.strokeColor)?{...e,roughness:0,backgroundColor:"#d3d3d3",fillStyle:"solid"}:Io(e)?{...e,strokeColor:Ei(e.strokeColor)?"#000000":e.strokeColor,backgroundColor:Ei(e.backgroundColor)?"#f4f4f6":e.backgroundColor}:e,Pb=(e,t,n,r,i,o,s)=>{const a=hN(e,t,n,r);if(a===null)return[];switch(r){case"dot":case"circle":case"circle_outline":{const[l,c,u]=a;return delete o.strokeLineDash,[i.circle(l,c,u,{...o,fill:r==="circle_outline"?s:e.strokeColor,fillStyle:"solid",stroke:e.strokeColor,roughness:Math.min(.5,o.roughness||0)})]}case"triangle":case"triangle_outline":{const[l,c,u,d,h,m]=a;return delete o.strokeLineDash,[i.polygon([[l,c],[u,d],[h,m],[l,c]],{...o,fill:r==="triangle_outline"?s:e.strokeColor,fillStyle:"solid",roughness:Math.min(1,o.roughness||0)})]}case"diamond":case"diamond_outline":{const[l,c,u,d,h,m,g,p]=a;return delete o.strokeLineDash,[i.polygon([[l,c],[u,d],[h,m],[g,p],[l,c]],{...o,fill:r==="diamond_outline"?s:e.strokeColor,fillStyle:"solid",roughness:Math.min(1,o.roughness||0)})]}case"bar":case"arrow":default:{const[l,c,u,d,h,m]=a;if(e.strokeStyle==="dotted"){const g=aI(e.strokeWidth-1);o.strokeLineDash=[g[0],g[1]-1]}else delete o.strokeLineDash;return o.roughness=Math.min(1,o.roughness||0),[i.line(u,d,l,c,o),i.line(h,m,l,c,o)]}}},QD=(e,t,{isExporting:n,canvasBackgroundColor:r,embedsValidationStatus:i})=>{switch(e.type){case"rectangle":case"iframe":case"embeddable":{let o;if(e.roundness){const s=e.width,a=e.height,l=oa(Math.min(s,a),e);o=t.path(`M ${l} 0 L ${s-l} 0 Q ${s} 0, ${s} ${l} L ${s} ${a-l} Q ${s} ${a}, ${s-l} ${a} L ${l} ${a} Q 0 ${a}, 0 ${a-l} L 0 ${l} Q 0 0, ${l} 0`,ur(Lb(e,n,i),!0))}else o=t.rectangle(0,0,e.width,e.height,ur(Lb(e,n,i),!1));return o}case"diamond":{let o;const[s,a,l,c,u,d,h,m]=aN(e);if(e.roundness){const g=oa(Math.abs(s-h),e),p=oa(Math.abs(c-a),e);o=t.path(`M ${s+g} ${a+p} L ${l-g} ${c-p} - C ${l} ${c}, ${l} ${c}, ${l-g} ${c+p} - L ${u+g} ${d-p} - C ${u} ${d}, ${u} ${d}, ${u-g} ${d-p} - L ${h+g} ${m+p} - C ${h} ${m}, ${h} ${m}, ${h+g} ${m-p} - L ${s-g} ${a+p} - C ${s} ${a}, ${s} ${a}, ${s+g} ${a+p}`,ur(e,!0))}else o=t.polygon([[s,a],[l,c],[u,d],[h,m]],ur(e));return o}case"ellipse":return t.ellipse(e.width/2,e.height/2,e.width,e.height,ur(e));case"line":case"arrow":{let o;const s=ur(e),a=e.points.length?e.points:[[0,0]];if(e.roundness?o=[t.curve(a,s)]:s.fill?o=[t.polygon(a,s)]:o=[t.linearPath(a,s)],e.type==="arrow"){const{startArrowhead:l=null,endArrowhead:c="arrow"}=e;if(l!==null){const u=Pb(e,o,"start",l,t,s,r);o.push(...u)}if(c!==null){const u=Pb(e,o,"end",c,t,s,r);o.push(...u)}}return o}case"freedraw":{let o;if(Rz(e),cs(e.points)){const s=jD(e.points,.75);o=t.curve(s,{...ur(e),stroke:"none"})}else o=null;return o}case"frame":case"magicframe":case"text":case"image":return null;default:return jl(e,`generateElementShape(): Unimplemented type ${e==null?void 0:e.type}`),null}},_n=(e,t)=>[0,0,0,0,t,e,1,0],lI=(e,t)=>[0,0,0,0,t,e,0,0],Ra=(e=0,t=0)=>{const n=[0,0,0,0,0,0,0,0];if(t<0||t>7)throw new Error(`Expected \`index\` between 0 and 7, got \`${t}\``);return e!==0&&(n[t]=e),n},z1=e=>[e[0],e[1],e[2],e[3],-e[4],-e[5],-e[6],-e[7]],JD=(e,t)=>Qv(t)?[e[0]+t,e[1],e[2],e[3],e[4],e[5],e[6],e[7]]:[e[0]+t[0],e[1]+t[1],e[2]+t[2],e[3]+t[3],e[4]+t[4],e[5]+t[5],e[6]+t[6],e[7]+t[7]],Pm=(e,t)=>Qv(t)?[e[0]-t,e[1],e[2],e[3],e[4],e[5],e[6],e[7]]:[e[0]-t[0],e[1]-t[1],e[2]-t[2],e[3]-t[3],e[4]-t[4],e[5]-t[5],e[6]-t[6],e[7]-t[7]],Zl=(e,t)=>Qv(t)?[e[0]*t,e[1]*t,e[2]*t,e[3]*t,e[4]*t,e[5]*t,e[6]*t,e[7]*t]:[eO(e,t),t[1]*e[0]+t[0]*e[1]-t[4]*e[2]+t[5]*e[3]+t[2]*e[4]-t[3]*e[5]-t[7]*e[6]-t[6]*e[7],t[2]*e[0]+t[0]*e[2]-t[6]*e[3]+t[3]*e[6],t[3]*e[0]+t[6]*e[2]+t[0]*e[3]-t[2]*e[6],t[4]*e[0]+t[2]*e[1]-t[1]*e[2]+t[7]*e[3]+t[0]*e[4]+t[6]*e[5]-t[5]*e[6]+t[3]*e[7],t[5]*e[0]-t[3]*e[1]+t[7]*e[2]+t[1]*e[3]-t[6]*e[4]+t[0]*e[5]+t[4]*e[6]+t[2]*e[7],t[6]*e[0]+t[3]*e[2]-t[2]*e[3]+t[0]*e[6],t[7]*e[0]+t[6]*e[1]+t[5]*e[2]+t[4]*e[3]+t[3]*e[4]+t[2]*e[5]+t[1]*e[6]+t[0]*e[7]],eO=(e,t)=>t[0]*e[0]+t[2]*e[2]+t[3]*e[3]-t[6]*e[6],tO=(e,t)=>[t[0]*e[0],t[1]*e[0]+t[0]*e[1],t[2]*e[0]+t[0]*e[2],t[3]*e[0]+t[0]*e[3],t[4]*e[0]+t[2]*e[1]-t[1]*e[2]+t[0]*e[4],t[5]*e[0]-t[3]*e[1]+t[1]*e[3]+t[0]*e[5],t[6]*e[0]+t[3]*e[2]-t[2]*e[3]+t[0]*e[6],t[7]*e[0]+t[6]*e[1]+t[5]*e[2]+t[4]*e[3]+t[3]*e[4]+t[2]*e[5]+t[1]*e[6]],cI=(e,t)=>[uI(e,t),e[1]*t[7]+e[4]*t[5]-e[5]*t[4]+e[7]*t[1],e[2]*t[7]-e[4]*t[6]+e[6]*t[4]+e[7]*t[2],e[3]*t[7]+e[5]*t[6]-e[6]*t[5]+e[7]*t[3],e[4]*t[7]+e[7]*t[4],e[5]*t[7]+e[7]*t[5],e[6]*t[7]+e[7]*t[6],e[7]*t[7]],uI=(e,t)=>e[0]*t[7]+e[1]*t[6]+e[2]*t[5]+e[3]*t[4]+e[4]*t[3]+e[5]*t[2]+e[6]*t[1]+e[7]*t[0],nO=(e,t)=>[t[0]*e[0]+t[2]*e[2]+t[3]*e[3]-t[6]*e[6],t[1]*e[0]+t[0]*e[1]-t[4]*e[2]+t[5]*e[3]+t[2]*e[4]-t[3]*e[5]-t[7]*e[6]-t[6]*e[7],t[2]*e[0]+t[0]*e[2]-t[6]*e[3]+t[3]*e[6],t[3]*e[0]+t[6]*e[2]+t[0]*e[3]-t[2]*e[6],t[4]*e[0]+t[7]*e[3]+t[0]*e[4]+t[3]*e[7],t[5]*e[0]+t[7]*e[2]+t[0]*e[5]+t[2]*e[7],t[6]*e[0]+t[0]*e[6],t[7]*e[0]+t[0]*e[7]],dI=e=>Math.sqrt(Math.abs(e[0]*e[0]-e[2]*e[2]-e[3]*e[3]+e[6]*e[6])),rO=e=>Math.sqrt(Math.abs(e[7]*e[7]-e[5]*e[5]-e[4]*e[4]+e[1]*e[1])),H1=e=>{const t=dI(e);if(t===0||t===1)return e;const n=e[6]<0?-1:1;return Zl(e,n/t)},iO=e=>{const t=rO(e);return t===0||t===1?e:Zl(e,1/t)},Qv=e=>typeof e=="number";Ra(1,1);Ra(1,2);Ra(1,3);Ra(1,4);Ra(1,5);Ra(1,6);Ra(1,7);const ga=(e,t,n)=>H1([0,n,e,t,0,0,0,0]),qd=(e,t)=>H1(cI(t,e)),oO=(e,t)=>nO(e,t),sO=(e,t)=>oO(qd(e,t),t),aO=e=>Math.sign(e[1]),pa=([e,t])=>[0,0,0,0,t,e,1,0],ya=e=>[e[5],e[4]],hI=e=>[0,0,0,0,Math.abs(e[4]),Math.abs(e[5]),1,0],lO=(e,t)=>H1(tO(e,t)),Rb=(e,t)=>dI(cI(e,t)),Qr=(e,t)=>uI(e,t),Jv=e=>[0,0,0,0,e[4],e[5],0,0],cO=(e,t)=>iO([0,0,0,0,t[4]-e[4],t[5]-e[5],0,0]),eE=(e,t)=>JD(Zl(e,Math.sin(t/2)),Math.cos(t/2)),uO=e=>[1,0,0,0,-(.5*e[5]),.5*e[4],0,0],dO=(e,t)=>{const n=.5*t;return[1,0,0,0,n*e[4],n*e[5],0,0]},hO=(e,t)=>Zl(t,e),Gr=(e,t)=>H1(Zl(Zl(e,t),z1(e))),Db={mouse:8,pen:16,touch:28},fO=16,fI={e:!0,s:!0,n:!0,w:!0},mO={e:!0,s:!0,n:!0,w:!0,rotation:!0},gO={e:!0,s:!0,n:!0,w:!0},Ob={e:!0,s:!0,n:!0,w:!0,nw:!0,se:!0},gp={e:!0,s:!0,n:!0,w:!0},Li=(e,t,n,r,i,o,s)=>{const[a,l]=_e(e+n/2,t+r/2,i,o,s);return[a-n/2,l-r/2,n,r]},tE=([e,t,n,r,i,o],s,a,l,c={},u=4)=>{const d=Db[l],h=d/a.value,m=d/a.value,g=d/a.value,p=d/a.value,v=n-e,y=r-t,E=u/a.value,w=(d-ud*2)/(2*a.value),x={nw:c.nw?void 0:Li(e-E-g+w,t-E-p+w,h,m,i,o,s),ne:c.ne?void 0:Li(n+E-w,t-E-p+w,h,m,i,o,s),sw:c.sw?void 0:Li(e-E-g+w,r+E-w,h,m,i,o,s),se:c.se?void 0:Li(n+E-w,r+E-w,h,m,i,o,s),rotation:c.rotation?void 0:Li(e+v/2-h/2,t-E-p+w-fO/a.value,h,m,i,o,s)},C=5*Db.mouse/a.value;return Math.abs(v)>C&&(c.n||(x.n=Li(e+v/2-h/2,t-E-p+w,h,m,i,o,s)),c.s||(x.s=Li(e+v/2-h/2,r+E-w,h,m,i,o,s))),Math.abs(y)>C&&(c.w||(x.w=Li(e-E-g+w,t+y/2-m/2,h,m,i,o,s)),c.e||(x.e=Li(n+E-w,t+y/2-m/2,h,m,i,o,s))),x},mI=(e,t,n,r="mouse")=>{if(e.locked)return{};let i={};if(e.type==="freedraw"||we(e)){if(e.points.length===2){const[,s]=e.points;s[0]===0||s[1]===0?i=gp:s[0]>0&&s[1]<0?i=Ob:s[0]>0&&s[1]>0?i=gp:s[0]<0&&s[1]>0?i=Ob:s[0]<0&&s[1]<0&&(i=gp)}}else ce(e)?i=gO:pe(e)&&(i={rotation:!0});const o=we(e)?ud+8:ud;return tE(Ee(e,n,!0),e.angle,t,r,i,o)},nE=(e,t)=>{if(t.editingLinearElement)return!1;if(e.length>1)return!0;const n=e[0];return we(n)?n.points.length>2:!0},pO=e=>{if(e.type==="arrow")return!1;if(e.type==="freedraw")return!0;const t=!Ei(e.backgroundColor)||ls(e)||fr(e);return e.type==="line"?t&&cs(e.points):t||Gi(e)},Rm=(e,t,n,r,i,o)=>{const s=10/t.zoom.value,a=[r,i];if(yO(t,e)&&nE([e],t))return U1(e,o,a,s,n);const l=ke(e,o);return l&&Rm(l,t,n,r,i,o)?!0:vd(e,t,n,a,o)},pp=(e,t,n,r,i,o)=>{const s=10/t.zoom.value,a=ke(e,o);return a&&Rm(a,t,n,r,i,o)?!1:!vd(e,t,n,[r,i],o)&&U1(e,o,[r,i],s,n)},vd=(e,t,n,r,i)=>{const o=10/t.zoom.value,s=ce(e)?vO:pO(e)?Tu:EO;return rE({element:e,elementsMap:i,point:r,threshold:o,check:s,frameNameBoundsCache:n})},yO=(e,t)=>e.selectedElementIds[t.id],U1=(e,t,[n,r],i,o)=>{if(pe(e))return rE({element:e,elementsMap:t,point:[n,r],threshold:i,check:Tu,frameNameBoundsCache:o});const[s,a,l,c]=Ee(e,t),u=(s+l)/2,d=(a+c)/2,[h,m]=_e(n,r,u,d,-e.angle);return h>s-i&&ha-i&&m{const i=W1(e,e.width,e.height);return rE({element:e,elementsMap:r,point:[t,n],threshold:i,check:wO,frameNameBoundsCache:null})},W1=(e,t,n)=>{const i=(e.type==="diamond"?1/Math.sqrt(2):1)*Math.min(t,n);return Math.max(16,Math.min(.25*i,32))},rE=e=>{var t;switch(e.element.type){case"rectangle":case"iframe":case"embeddable":case"image":case"text":case"diamond":case"ellipse":const n=L2(e.element,e.point,e.elementsMap);return e.check(n,e.threshold);case"freedraw":return e.check(pI(e.element,e.point,e.elementsMap),e.threshold)?kO(e.element,e.point,e.threshold,e.elementsMap):!1;case"arrow":case"line":return IO(e);case"selection":return console.warn("This should not happen, we need to investigate why it does."),!1;case"frame":case"magicframe":{if(e.check(L2(e.element,e.point,e.elementsMap),e.threshold))return!0;const r=(t=e.frameNameBoundsCache)==null?void 0:t.get(e.element);return r?e.check(bO(r,e.point),e.threshold):!1}}},L2=(e,t,n)=>{switch(e.type){case"rectangle":case"image":case"text":case"iframe":case"embeddable":case"frame":case"magicframe":return pI(e,t,n);case"diamond":return _O(e,t,n);case"ellipse":return xO(e,t,n)}},vO=(e,t)=>e<0,Tu=(e,t)=>eMath.abs(e)0<=e&&e{const[,r,i,o]=V1(e,t,n);return Math.max(Qr(r,ga(0,1,-o)),Qr(r,ga(1,0,-i)))},bO=(e,t)=>{const[,n,r,i]=CO(t,e);return Math.max(Qr(n,ga(0,1,-i)),Qr(n,ga(1,0,-r)))},_O=(e,t,n)=>{const[,r,i,o]=V1(e,t,n),s=ga(o,i,-o*i);return Qr(r,s)},xO=(e,t,n)=>{const[r,i]=SO(e,t,n);return-aO(i)*Qr(r,i)},SO=(e,t,n)=>{const[,r,i,o]=V1(e,t,n),[s,a]=ya(r);let l=.707,c=.707;const u=i,d=o;[0,1,2,3].forEach(g=>{const p=u*l,v=d*c,y=(u*u-d*d)*l**3/u,E=(d*d-u*u)*c**3/d,w=p-y,x=v-E,C=s-y,S=a-E,I=Math.hypot(x,w),T=Math.hypot(S,C);l=Math.min(1,Math.max(0,(C*I/T+y)/u)),c=Math.min(1,Math.max(0,(S*I/T+E)/d));const L=Math.hypot(c,l);l/=L,c/=L});const h=_n(u*l,d*c),m=sO(r,h);return[r,m]},kO=(e,t,n,r)=>{let i,o;if(e.angle===0)i=t[0]-e.x,o=t[1]-e.y;else{const[u,d,h,m]=Ee(e,r),g=st(t,[u+(h-u)/2,d+(m-d)/2],-e.angle);i=g[0]-e.x,o=g[1]-e.y}let[s,a]=e.points,l;if(kt(s[0],s[1],i,o)h?a:vh?s:l,Math.hypot(o-l[1],i-l[0]){const{element:t,threshold:n}=e;if(!Xe.get(t))return!1;const[r,i,o,s]=V1(e.element,e.point,e.elementsMap),a=ga(0,1,-s),l=ga(1,0,-o);if(!Tu(Qr(i,a),n)||!Tu(Qr(i,l),n))return!1;const[c,u]=ya(r),d=Xe.get(t);return d?e.check===Tu&&d.some(m=>oE(m,c,u,t.roundness?"round":"sharp"))?!0:d.some(h=>vI(h,c,u,n)):!1},V1=(e,t,n)=>{const r=pa(t),[i,o,s,a]=Ee(e,n),l=G1(i,o,s,a),c=eE(l,e.angle),u=Gr(c,r),d=Pm(u,Jv(l)),h=hI(d),m=lI(e.x,e.y),g=Pm(u,m),p=(s-i)/2,v=(a-o)/2;return[g,h,p,v]},CO=(e,t)=>{const n=pa(e),[r,i,o,s]=sN(t),a=G1(r,i,o,s),l=eE(a,t.angle),c=Gr(l,n),u=Pm(c,Jv(a)),d=hI(u),h=lI(t.x,t.y),m=Pm(c,h),g=(o-r)/2,p=(s-i)/2;return[m,d,g,p]},iE=(e,t)=>{const[n,r,i,o]=Ee(e,t),s=G1(n,r,i,o),a=eE(s,e.angle),l=z1(uO(Jv(s)));return hO(a,l)},G1=(e,t,n,r)=>_n((e+n)/2,(t+r)/2),TO=(e,t,n,r)=>{const i=iE(e,r),o=Gr(i,pa(t)),s=Gr(i,pa(n)),a=qd(o,s),l=e.height/e.width,c=e.width/2,u=e.height/2,d=a[2],h=a[3],m=a[1],g=Math.abs(h),p=Math.abs(d);let v;switch(e.type){case"rectangle":case"image":case"text":case"iframe":case"embeddable":case"frame":case"magicframe":v=m/(c*(p+l*g));break;case"diamond":v=g{if(t===0){const[l,c,u,d]=Ee(e,r),h=G1(l,c,u,d);return ya(h)}const i=iE(e,r),o=Gr(i,pa(n)),s=z1(i);let a;switch(e.type){case"rectangle":case"image":case"text":case"diamond":case"iframe":case"embeddable":case"frame":case"magicframe":a=FO(e,t,o);break;case"ellipse":a=NO(e,t,o);break}return ya(Gr(s,a))},AO=(e,t,n,r=0,i)=>{const o=iE(e,i),s=Gr(o,pa(t)),a=Gr(o,pa(n)),l=qd(s,a),c=z1(o);return LO(e,l,s,r).map(d=>ya(Gr(c,d)))},LO=(e,t,n,r=0)=>{let i;switch(e.type){case"rectangle":case"image":case"text":case"diamond":case"iframe":case"embeddable":case"frame":case"magicframe":const s=yI(e);i=s.flatMap((a,l)=>{const c=[a,s[(l+1)%4]];return PO(t,RO(c,r))}).concat(s.flatMap(a=>OO(a,r,t)));break;case"ellipse":i=DO(e,r,t);break}if(i.length<2)return[];const o=i.sort((s,a)=>Rb(s,n)-Rb(a,n));return[o[0],o[o.length-1]]},yI=(e,t=1)=>{const n=t*e.width/2,r=t*e.height/2;switch(e.type){case"rectangle":case"image":case"text":case"iframe":case"embeddable":case"frame":case"magicframe":return[_n(n,r),_n(n,-r),_n(-n,-r),_n(-n,r)];case"diamond":return[_n(0,r),_n(n,0),_n(0,-r),_n(-n,0)]}},PO=(e,t)=>{const[n,r]=t,i=Qr(n,e),o=Qr(r,e);return i*o>=0?[]:[lO(e,qd(n,r))]},RO=(e,t)=>{const[n,r]=e,i=dO(cO(n,r),t);return[Gr(i,n),Gr(i,r)]},DO=(e,t,n)=>{const r=e.width/2+t,i=e.height/2+t,o=n[2],s=n[3],a=n[1],l=r*r*o*o+i*i*s*s,c=l-a*a;if(l===0||c<=0)return[];const u=Math.sqrt(c),d=-r*r*o*a,h=-i*i*s*a;return[_n((d+r*i*s*u)/l,(h-r*i*o*u)/l),_n((d-r*i*s*u)/l,(h+r*i*o*u)/l)]},OO=(e,t,n)=>{if(t===0)return Qr(n,e)===0?[e]:[];const r=n[2],i=n[3],o=n[1],[s,a]=ya(e),l=t,c=r*r+i*i,u=l*l*c-(r*s+i*a+o)**2;if(c===0||u<=0)return[];const d=Math.sqrt(u),h=s*i*i-a*r*i-r*o,m=a*r*r-s*r*i-i*o;return[_n((h+i*d)/c,(m-r*d)/c),_n((h-i*d)/c,(m+r*d)/c)]},NO=(e,t,n)=>{const r=Math.abs(t),i=e.width*r/2,o=e.height*r/2,s=Math.sign(t),[a,l]=ya(n),c=l===0?1e-4:l,u=a**2*o**2+c**2*i**2,d=(-a*o**2+s*c*Math.sqrt(Math.max(0,u-i**2*o**2)))/u;let h=(-d*a-1)/c;h===0&&(h=(Object.is(h,-0)?-1:1)*.01);const m=-(i**2*d)/(h**2*o**2+d**2*i**2);return _n(m,(-d*m-1)/h)},FO=(e,t,n)=>{const r=Math.abs(t),i=Math.sign(t),o=yI(e,r);let s=0,a=null;return o.forEach(l=>{const c=i*qd(n,l)[1];c>s&&(s=c,a=l)}),a},$O=(e,t,n,r,[i,o],s)=>{const a=(c,u)=>Math.pow(1-c,3)*r[u]+3*c*Math.pow(1-c,2)*n[u]+3*Math.pow(c,2)*(1-c)*t[u]+e[u]*Math.pow(c,3);let l=0;for(;l<=1;){const c=a(l,0),u=a(l,1);if(Math.sqrt(Math.pow(c-i,2)+Math.pow(u-o,2)){const i=_s(e),o=[];let s=!1;for(const a of i)a.op==="move"?(s=!s,s&&o.push([a.data[0],a.data[1]])):a.op==="bcurveTo"?s&&(o.push([a.data[0],a.data[1]]),o.push([a.data[2],a.data[3]]),o.push([a.data[4],a.data[5]])):a.op==="lineTo"&&s&&o.push([a.data[0],a.data[1]]);if(o.length>=4){if(r==="sharp")return Tb(o,t,n);const a=YD(o,10,5);return Tb(a,t,n)}return!1},vI=(e,t,n,r)=>{const i=_s(e);let o=[0,0];return i.some(({op:s,data:a},l)=>{if(s==="move")o=a;else if(s==="bcurveTo"){const c=[a[0],a[1]],u=[a[2],a[3]],d=[a[4],a[5]],h=o;return o=d,$O(h,c,u,d,[t,n],r)}else{if(s==="lineTo")return oE(e,t,n,"sharp");s==="qcurveTo"&&console.warn("qcurveTo is not implemented yet")}return!1})},De={EQUAL:"Equal",MINUS:"Minus",NUM_ADD:"NumpadAdd",NUM_SUBTRACT:"NumpadSubtract",NUM_ZERO:"Numpad0",BRACKET_RIGHT:"BracketRight",BRACKET_LEFT:"BracketLeft",ONE:"Digit1",TWO:"Digit2",THREE:"Digit3",NINE:"Digit9",QUOTE:"Quote",ZERO:"Digit0",SLASH:"Slash",C:"KeyC",D:"KeyD",H:"KeyH",V:"KeyV",Z:"KeyZ",R:"KeyR",S:"KeyS"},D={ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",BACKSPACE:"Backspace",ALT:"Alt",CTRL_OR_CMD:ki?"metaKey":"ctrlKey",DELETE:"Delete",ENTER:"Enter",ESCAPE:"Escape",QUESTION_MARK:"?",SPACE:" ",TAB:"Tab",CHEVRON_LEFT:"<",CHEVRON_RIGHT:">",PERIOD:".",COMMA:",",SUBTRACT:"-",A:"a",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",L:"l",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",V:"v",X:"x",Y:"y",Z:"z",K:"k",W:"w",0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9"},Pf=e=>e===D.ARROW_LEFT||e===D.ARROW_RIGHT||e===D.ARROW_DOWN||e===D.ARROW_UP,yp=e=>e.altKey,Bc=e=>e.shiftKey,Mu=e=>e.shiftKey,BO=e=>!e[D.CTRL_OR_CMD],Gs=e=>e.isBindingEnabled,EI=(e,t)=>{const n=[];return t.forEach(r=>{const i=e.getNonDeletedElement(r);i!=null&&n.push(i)}),n},dc=(e,t,n,r)=>{const i=new Set,o=new Set;Nb(e,t,n,"start",i,o,r),Nb(e,n,t,"end",i,o,r);const s=Array.from(o).filter(a=>!i.has(a));EI($t.getScene(e),s).forEach(a=>{var l;J(a,{boundElements:(l=a.boundElements)==null?void 0:l.filter(c=>c.type!=="arrow"||c.id!==e.id)})})},Nb=(e,t,n,r,i,o,s)=>{if(t!=="keep")if(t!=null)(n==null||(n==="keep"?!sE(e,t,r):r==="start"||n.id!==t.id))&&(Ed(e,t,r,s),i.add(t.id));else{const a=HO(e,r);a!=null&&o.add(a)}},P2=(e,t,n)=>{e.forEach(r=>{dn(r)?dc(r,Dm(r,"start",t,n),Dm(r,"end",t,n),n):yd(r)&&zO(r,n)})},zO=(e,t)=>{_I(e,t).forEach(([n,r])=>dc(n,r==="end"?"keep":e,r==="start"?"keep":e,t))},R2=(e,t,n,r,i)=>{t.startBoundElement!=null&&Ed(e,t.startBoundElement,"start",i);const o=No(r,n.getNonDeletedElements(),i);o!=null&&!sE(e,o,"end")&&Ed(e,o,"end",i)},Ed=(e,t,n,r)=>{J(e,{[n==="start"?"startBinding":"endBinding"]:{elementId:t.id,...UO(e,t,n,r)}}),be(t.boundElements||[]).has(e.id)||J(t,{boundElements:(t.boundElements||[]).concat({id:e.id,type:"arrow"})})},sE=(e,t,n)=>{const r=e[n==="start"?"endBinding":"startBinding"];return wI(e,r==null?void 0:r.elementId,t)},wI=(e,t,n)=>t===n.id&&e.points.length<3,D2=(e,t)=>{e.forEach(n=>{dn(n)&&dc(n,null,null,t)})},HO=(e,t)=>{const n=t==="start"?"startBinding":"endBinding",r=e[n];return r==null?null:(J(e,{[n]:null}),r.elementId)},No=(e,t,n)=>KD(t,i=>yd(i,!1)&&gI(i,e,n)),UO=(e,t,n,r)=>{const i=n==="start"?-1:1,o=i===-1?0:e.points.length-1,s=o-i,a=ue.getPointAtIndexGlobalCoordinates(e,o,r),l=ue.getPointAtIndexGlobalCoordinates(e,s,r);return{focus:TO(t,l,a,r),gap:Math.max(1,L2(t,a,r))}},us=(e,t,n)=>{const r=(e.boundElements??[]).filter(l=>l.type==="arrow");if(r.length===0)return;const{newSize:i,simultaneouslyUpdated:o}=n??{},s=VO(o),a=$t.getScene(e);EI(a,r.map(l=>l.id)).forEach(l=>{if(!we(l))return;const c=e;if(!WO(l,c))return;const u=$b(c,l.startBinding,i),d=$b(c,l.endBinding,i);if(s.has(l.id)){J(l,{startBinding:u,endBinding:d});return}Fb(l,"start",u,e,t),Fb(l,"end",d,e,t),ke(l,a.getNonDeletedElementsMap())&&j1(l,a.getNonDeletedElementsMap(),!1)})},WO=(e,t)=>{var n,r;return((n=e.startBinding)==null?void 0:n.elementId)===t.id||((r=e.endBinding)==null?void 0:r.elementId)===t.id},VO=e=>new Set((e||[]).map(t=>t.id)),Fb=(e,t,n,r,i)=>{if(n==null||n.elementId!==r.id&&e.points.length>2)return;const o=$t.getScene(e).getElement(n.elementId);if(o==null)return;const s=t==="start"?-1:1,a=s===-1?0:e.points.length-1,l=a-s,c=ue.getPointAtIndexGlobalCoordinates(e,l,i),u=MO(o,n.focus,c,i);let d;if(n.gap===0)d=u;else{const h=AO(o,c,u,n.gap,i);h.length===0?d=u:d=h[0]}ue.movePoints(e,[{index:a,point:ue.pointFromAbsoluteCoords(e,d,i)}],{[t==="start"?"startBinding":"endBinding"]:n})},$b=(e,t,n)=>{if(t==null||n==null)return t;const{gap:r,focus:i,elementId:o}=t,{width:s,height:a}=n,{width:l,height:c}=e,u=Math.max(1,Math.min(W1(e,s,a),r*(s{const r=new Set(e.map(({id:i})=>i));return e.flatMap(i=>dn(i,!1)?jO(i,t,n).filter(o=>!r.has(o.id)):yd(i,!1)?_I(i,n).filter(o=>!r.has(o[0].id)):[])},jO=(e,t,n)=>[Dm(e,"start",t,n),Dm(e,"end",t,n)].filter(r=>r!=null),Dm=(e,t,n,r)=>No(bI(e,t,r),n,r),bI=(e,t,n)=>{const r=t==="start"?0:-1;return Oo(ue.getPointAtIndexGlobalCoordinates(e,r,n))},_I=(e,t)=>$t.getScene(e).getNonDeletedElements().map(r=>{if(!dn(r,!1))return null;const i=Bb(r,"start",e,t),o=Bb(r,"end",e,t);return!i&&!o?null:[r,i&&o?"both":i?"start":"end",e]}).filter(r=>r!=null),Bb=(e,t,n,r)=>e[t==="start"?"startBinding":"endBinding"]==null&&!sE(e,n,t)&&gI(n,bI(e,t,r),r),xI=(e,t,n,r)=>{const i=new Set,o=new Set,s=r==="duplicatesServeAsOld";t.forEach(a=>{const{boundElements:l}=a;if(l!=null&&l.length>0&&(l.forEach(c=>{s&&!n.has(c.id)&&i.add(c.id)}),o.add(n.get(a.id))),dn(a)){if(a.startBinding!=null){const{elementId:c}=a.startBinding;s&&!n.has(c)&&o.add(c)}if(a.endBinding!=null){const{elementId:c}=a.endBinding;s&&!n.has(c)&&o.add(c)}(a.startBinding!=null||a.endBinding!=null)&&i.add(n.get(a.id))}}),e.filter(({id:a})=>i.has(a)).forEach(a=>{const{startBinding:l,endBinding:c}=a;J(a,{startBinding:zb(l,n),endBinding:zb(c,n)})}),e.filter(({id:a})=>o.has(a)).forEach(a=>{const{boundElements:l}=a;l!=null&&l.length>0&&J(a,{boundElements:l.map(c=>n.has(c.id)?{id:n.get(c.id),type:c.type}:c)})})},zb=(e,t)=>{if(e==null)return null;const{elementId:n,focus:r,gap:i}=e;return{focus:r,gap:i,elementId:t.get(n)??n}},aE=(e,t)=>{const n=new Set(t.map(i=>i.id)),r=new Set;t.forEach(i=>{var o;yd(i)?(o=i.boundElements)==null||o.forEach(s=>{n.has(s.id)||r.add(s.id)}):dn(i)&&(i.startBinding&&r.add(i.startBinding.elementId),i.endBinding&&r.add(i.endBinding.elementId))}),e.filter(({id:i})=>r.has(i)).forEach(i=>{yd(i)?J(i,{boundElements:YO(i.boundElements,n)}):dn(i)&&J(i,{startBinding:Hb(i.startBinding,n),endBinding:Hb(i.endBinding,n)})})},Hb=(e,t)=>e==null||t.has(e.elementId)?null:e,YO=(e,t)=>e?e.filter(n=>!t.has(n.id)):null,Pi={version:null,points:[],zoom:null},le=class le{constructor(t){M(this,"elementId");M(this,"selectedPointsIndices");M(this,"pointerDownState");M(this,"isDragging");M(this,"lastUncommittedPoint");M(this,"pointerOffset");M(this,"startBindingElement");M(this,"endBindingElement");M(this,"hoverPointIndex");M(this,"segmentMidPointHoveredCoords");this.elementId=t.id,le.normalizePoints(t),this.selectedPointsIndices=null,this.lastUncommittedPoint=null,this.isDragging=!1,this.pointerOffset={x:0,y:0},this.startBindingElement="keep",this.endBindingElement="keep",this.pointerDownState={prevSelectedPointsIndices:null,lastClickedPoint:-1,origin:null,segmentMidpoint:{value:null,index:null,added:!1}},this.hoverPointIndex=-1,this.segmentMidPointHoveredCoords=null}static getElement(t,n){const r=n.get(t);return r||null}static handleBoxSelection(t,n,r,i){var p;if(!n.editingLinearElement||((p=n.draggingElement)==null?void 0:p.type)!=="selection")return!1;const{editingLinearElement:o}=n,{selectedPointsIndices:s,elementId:a}=o,l=le.getElement(a,i);if(!l)return!1;const[c,u,d,h]=Ee(n.draggingElement,i),g=le.getPointsGlobalCoordinates(l,i).reduce((v,y,E)=>((y[0]>=c&&y[0]<=d&&y[1]>=u&&y[1]<=h||t.shiftKey&&(s!=null&&s.includes(E)))&&v.push(E),v),[]);r({editingLinearElement:{...o,selectedPointsIndices:g.length?g:null}})}static handlePointDragging(t,n,r,i,o,s,a){if(!s)return!1;const{selectedPointsIndices:l,elementId:c}=s,u=le.getElement(c,a);if(!u)return!1;const d=u.points[s.pointerDownState.lastClickedPoint];if(l&&d){if(Mu(t)&&l.length===1&&u.points.length>1){const m=l[0],g=u.points[m===0?1:m-1],[p,v]=le._getShiftLockedDelta(u,a,g,[r,i],t[D.CTRL_OR_CMD]?null:n.gridSize);le.movePoints(u,[{index:m,point:[p+g[0],v+g[1]],isDragging:m===s.pointerDownState.lastClickedPoint}])}else{const m=le.createPointAt(u,a,r-s.pointerOffset.x,i-s.pointerOffset.y,t[D.CTRL_OR_CMD]?null:n.gridSize),g=m[0]-d[0],p=m[1]-d[1];le.movePoints(u,l.map(v=>{const y=v===s.pointerDownState.lastClickedPoint?le.createPointAt(u,a,r-s.pointerOffset.x,i-s.pointerOffset.y,t[D.CTRL_OR_CMD]?null:n.gridSize):[u.points[v][0]+g,u.points[v][1]+p];return{index:v,point:y,isDragging:v===s.pointerDownState.lastClickedPoint}}))}if(ke(u,a)&&j1(u,a,!1),dn(u,!1)){const m=[];l[0]===0&&m.push(Oo(le.getPointGlobalCoordinates(u,u.points[0],a)));const p=l[l.length-1];p===u.points.length-1&&m.push(Oo(le.getPointGlobalCoordinates(u,u.points[p],a))),m.length&&o(u,m)}return!0}return!1}static handlePointerUp(t,n,r,i,o){var h;const{elementId:s,selectedPointsIndices:a,isDragging:l,pointerDownState:c}=n,u=le.getElement(s,o);if(!u)return n;const d={};if(l&&a){for(const m of a)if(m===0||m===u.points.length-1){cs(u.points,r.zoom.value)&&le.movePoints(u,[{index:m,point:m===0?u.points[u.points.length-1]:u.points[0]}]);const g=Gs(r)?No(Oo(le.getPointAtIndexGlobalCoordinates(u,m,o)),i,o):null;d[m===0?"startBindingElement":"endBindingElement"]=g}}return{...n,...d,selectedPointsIndices:l||t.shiftKey?!l&&t.shiftKey&&((h=c.prevSelectedPointsIndices)!=null&&h.includes(c.lastClickedPoint))?a&&a.filter(m=>m!==c.lastClickedPoint):a:a!=null&&a.includes(c.lastClickedPoint)?[c.lastClickedPoint]:a,isDragging:!1,pointerOffset:{x:0,y:0}}}static isSegmentTooShort(t,n,r,i){let o=kt(n[0],n[1],r[0],r[1]);return t.points.length>2&&t.roundness&&(o=zD(t,r)),o*i.value2&&t.roundness){const a=rI(t,t.points[i]);if(a){const l=HD(t,t.points[i],.5),[c,u]=iI(a[0],a[1],a[2],a[3],l);s=le.getPointGlobalCoordinates(t,[c,u],o)}}return s}static getSegmentMidPointIndex(t,n,r,i){const o=le.getElement(t.elementId,i);if(!o)return-1;const s=le.getEditorMidPoints(o,i,n);let a=0;for(;a=0||d)l.hitElement=u;else{const{startBindingElement:I,endBindingElement:T}=o;Gs(n)&&dn(u)&&dc(u,I,T,a)}const[g,p,v,y]=Ee(u,a),E=(g+v)/2,w=(p+y)/2,x=m>-1&&_e(u.x+u.points[m][0],u.y+u.points[m][1],E,w,u.angle),C=m>-1||t.shiftKey?t.shiftKey||(S=o.selectedPointsIndices)!=null&&S.includes(m)?KO([...o.selectedPointsIndices||[],m]):[m]:null;return l.linearElementEditor={...o,pointerDownState:{prevSelectedPointsIndices:o.selectedPointsIndices,lastClickedPoint:m,origin:{x:i.x,y:i.y},segmentMidpoint:{value:d,index:h,added:!1}},selectedPointsIndices:C,pointerOffset:x?{x:i.x-x[0],y:i.y-x[1]}:{x:0,y:0}},l}static arePointsEqual(t,n){return!t&&!n?!0:!t||!n?!1:sI(t,n)}static handlePointerMove(t,n,r,i,o){if(!i.editingLinearElement)return null;const{elementId:s,lastUncommittedPoint:a}=i.editingLinearElement,l=le.getElement(s,o);if(!l)return i.editingLinearElement;const{points:c}=l,u=c[c.length-1];if(!t.altKey)return u===a&&le.deletePoints(l,[c.length-1]),{...i.editingLinearElement,lastUncommittedPoint:null};let d;if(Mu(t)&&c.length>=2){const h=c[c.length-2],[m,g]=le._getShiftLockedDelta(l,o,h,[n,r],t[D.CTRL_OR_CMD]?null:i.gridSize);d=[m+h[0],g+h[1]]}else d=le.createPointAt(l,o,n-i.editingLinearElement.pointerOffset.x,r-i.editingLinearElement.pointerOffset.y,t[D.CTRL_OR_CMD]?null:i.gridSize);return u===a?le.movePoints(l,[{index:l.points.length-1,point:d}]):le.addPoints(l,i,[{point:d}]),{...i.editingLinearElement,lastUncommittedPoint:l.points[l.points.length-1]}}static getPointGlobalCoordinates(t,n,r){const[i,o,s,a]=Ee(t,r),l=(i+s)/2,c=(o+a)/2;let{x:u,y:d}=t;return[u,d]=_e(u+n[0],d+n[1],l,c,t.angle),[u,d]}static getPointsGlobalCoordinates(t,n){const[r,i,o,s]=Ee(t,n),a=(r+o)/2,l=(i+s)/2;return t.points.map(c=>{let{x:u,y:d}=t;return[u,d]=_e(u+c[0],d+c[1],a,l,t.angle),[u,d]})}static getPointAtIndexGlobalCoordinates(t,n,r){const i=n<0?t.points.length+n:n,[o,s,a,l]=Ee(t,r),c=(o+a)/2,u=(s+l)/2,d=t.points[i],{x:h,y:m}=t;return d?_e(h+d[0],m+d[1],c,u,t.angle):_e(h,m,c,u,t.angle)}static pointFromAbsoluteCoords(t,n,r){const[i,o,s,a]=Ee(t,r),l=(i+s)/2,c=(o+a)/2,[u,d]=_e(n[0],n[1],l,c,-t.angle);return[u-t.x,d-t.y]}static getPointIndexUnderCursor(t,n,r,i,o){const s=le.getPointsGlobalCoordinates(t,n);let a=s.length;for(;--a>-1;){const l=s[a];if(kt(i,o,l[0],l[1])*r.value[o[0]-r,o[1]-i]),x:t.x+r,y:t.y+i}}static normalizePoints(t){J(t,le.getNormalizedPoints(t))}static duplicateSelectedPoints(t,n){if(!t.editingLinearElement)return!1;const{selectedPointsIndices:r,elementId:i}=t.editingLinearElement,o=le.getElement(i,n);if(!o||r===null)return!1;const{points:s}=o,a=[];let l=!1,c=-1;const u=s.reduce((d,h,m)=>{if(++c,d.push(h),r.includes(m)){const p=s[m+1];p||(l=!0),d.push(p?[(h[0]+p[0])/2,(h[1]+p[1])/2]:[h[0],h[1]]),a.push(c+1),++c}return d},[]);if(J(o,{points:u}),l){const d=o.points[o.points.length-1];le.movePoints(o,[{index:o.points.length-1,point:[d[0]+30,d[1]+30]}])}return{appState:{...t,editingLinearElement:{...t.editingLinearElement,selectedPointsIndices:a}}}}static deletePoints(t,n){let r=0,i=0;if(n.includes(0)){const a=t.points.find((l,c)=>!n.includes(c));a&&(r=a[0],i=a[1])}const s=t.points.reduce((a,l,c)=>(n.includes(c)||a.push(a.length?[l[0]-r,l[1]-i]:[0,0]),a),[]);le._updatePoints(t,s,r,i)}static addPoints(t,n,r){const s=[...t.points,...r.map(a=>a.point)];le._updatePoints(t,s,0,0)}static movePoints(t,n,r){const{points:i}=t;let o=0,s=0;const a=n.find(({index:c})=>c===0);a&&(o=a.point[0]+i[a.index][0],s=a.point[1]+i[a.index][1]);const l=i.map((c,u)=>{const d=n.find(h=>h.index===u);if(d){if(a)return c;const h=d.point[0]-i[d.index][0],m=d.point[1]-i[d.index][1];return[c[0]+h,c[1]+m]}return o||s?[c[0]-o,c[1]-s]:c});le._updatePoints(t,l,o,s,r)}static shouldAddMidpoint(t,n,r,i){if(!le.getElement(t.elementId,i))return!1;const{segmentMidpoint:s}=t.pointerDownState;if(s.added||s.value===null||s.index===null||t.pointerDownState.origin===null)return!1;const a=t.pointerDownState.origin,l=kt(a.x,a.y,n.x,n.y);return!(!r.editingLinearElement&&l{const i=ke(t,n);return!r.editingLinearElement&&t.points.length>2&&!i?[]:(Pi.version===t.version&&Pi.zoom===r.zoom.value||le.updateEditorMidPointsCache(t,n,r),Pi.points)}),M(le,"updateEditorMidPointsCache",(t,n,r)=>{const i=le.getPointsGlobalCoordinates(t,n);let o=0;const s=[];for(;o{const{elementId:o}=t,s=le.getElement(o,i);if(!s||le.getPointIndexUnderCursor(s,i,r.zoom,n.x,n.y)>=0||le.getPointsGlobalCoordinates(s,i).length>=3&&!r.editingLinearElement)return null;const c=le.POINT_HANDLE_SIZE/r.zoom.value,u=t.segmentMidPointHoveredCoords;if(u&&kt(u[0],u[1],n.x,n.y)<=c)return u;let d=0;const h=le.getEditorMidPoints(s,i,r);for(;d{const i=le.getPointsGlobalCoordinates(t,r);i.length<2&&J(n,{isDeleted:!0});let o=0,s=0;if(t.points.length%2===1){const a=Math.floor(t.points.length/2),l=le.getPointGlobalCoordinates(t,t.points[a],r);o=l[0]-n.width/2,s=l[1]-n.height/2}else{const a=t.points.length/2-1;let l=Pi.points[a];t.points.length===2&&(l=C2(i[0],i[1])),(!l||Pi.version!==t.version)&&(l=le.getSegmentMidPoint(t,i[a],i[a+1],a+1,r)),o=l[0]-n.width/2,s=l[1]-n.height/2}return{x:o,y:s}}),M(le,"getMinMaxXYWithBoundText",(t,n,r,i)=>{let[o,s,a,l]=r;const c=(o+a)/2,u=(s+l)/2,{x:d,y:h}=le.getBoundTextElementPosition(t,i,n),m=d+i.width,g=h+i.height,p=st([o,s],[c,u],t.angle),v=st([a,s],[c,u],t.angle),y=st([d,h],[c,u],-t.angle),E=st([m,h],[c,u],-t.angle),w=st([d,g],[c,u],-t.angle),x=st([m,g],[c,u],-t.angle);return p[0]=v[1]?(o=Math.min(o,w[0]),a=Math.max(a,Math.max(E[0],x[0])),s=Math.min(s,y[1]),l=Math.max(l,x[1])):p[0]>=v[0]&&p[1]>v[1]?(o=Math.min(o,x[0]),a=Math.max(a,Math.max(y[0],E[0])),s=Math.min(s,w[1]),l=Math.max(l,E[1])):p[0]>=v[0]?(o=Math.min(o,E[0]),a=Math.max(a,w[0]),s=Math.min(s,x[1]),l=Math.max(l,y[1])):p[1]<=v[1]&&(o=Math.min(o,Math.min(E[0],y[0])),a=Math.max(a,x[0]),s=Math.min(s,E[1]),l=Math.max(l,w[1])),[o,s,a,l,c,u]}),M(le,"getElementAbsoluteCoords",(t,n,r=!1)=>{let i,o,s,a,l;if(t.points.length<2||!Xe.get(t)){const{minX:h,minY:m,maxX:g,maxY:p}=t.points.reduce((v,[y,E])=>(v.minY=Math.min(v.minY,E),v.minX=Math.min(v.minX,y),v.maxX=Math.max(v.maxX,y),v.maxY=Math.max(v.maxY,E),v),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});o=h+t.x,s=m+t.y,a=g+t.x,l=p+t.y}else{const h=Xe.generateElementShape(t,null),m=_s(h[0]),[g,p,v,y]=Z1(m);o=g+t.x,s=p+t.y,a=v+t.x,l=y+t.y}const c=(o+a)/2,u=(s+l)/2;if(i=[o,s,a,l,c,u],!r)return i;const d=ke(t,n);return d&&(i=le.getMinMaxXYWithBoundText(t,n,[o,s,a,l],d)),i});let ue=le;const KO=e=>{let t=[...new Set(e.filter(n=>n!==null&&n!==-1))];return t=t.sort((n,r)=>n-r),t.length?t:null},Xl={},Om=(e,t)=>{const n=Xl[e]||(Xl[e]={height:t});return n.height=t,n},SI=e=>{Xl[e]&&delete Xl[e]},ZO=e=>{var t;return((t=Xl[e])==null?void 0:t.height)??null},wd=e=>qk(e).replace(/\t/g," "),lE=e=>wd(e).split(` -`),Mi=(e,t,n)=>{let r;const i={x:e.x,y:e.y,text:e.text,width:e.width,height:e.height};i.text=e.text,t&&(r=Ii(t,e),i.text=Jd(e.originalText,Bt(e),r));const o=ds(i.text,Bt(e),e.lineHeight);if(i.width=o.width,i.height=o.height,t){const s=eh(t,e),a=Ii(t,e);if(!Ge(t)&&o.height>s){const d=Ea(o.height,t.type);J(t,{height:d}),Om(t.id,d)}if(o.width>a){const d=Ea(o.width,t.type);J(t,{width:d})}const l={...e,...i},{x:c,y:u}=Y1(t,l,n);i.x=c,i.y=u}J(e,i)},kI=(e,t,n)=>{const r=be(e);t.forEach(i=>{const o=n.get(i.id),s=va(i);if(s){const a=n.get(s);if(a){const l=r.get(o);l&&J(l,{boundElements:(i.boundElements||[]).filter(u=>u.id!==a&&u.id!==s).concat({type:"text",id:a})});const c=r.get(a);c&&ce(c)&&J(c,{containerId:l?o:null})}}})},j1=(e,t,n,r=!1)=>{if(!va(e))return;SI(e.id);const o=ke(e,t);if(o&&o.text){if(!e)return;let s=o.text,a=o.height,l=o.width;const c=Ii(e,o),u=eh(e,o);let d=e.height;if(r||n!=="n"&&n!=="s"){s&&(s=Jd(o.originalText,Bt(o),c));const h=ds(s,Bt(o),o.lineHeight);a=h.height,l=h.width}if(a>u){d=Ea(a,e.type);const h=d-e.height,m=!Ge(e)&&(n==="ne"||n==="nw"||n==="n")?e.y-h:e.y;J(e,{height:d,y:m})}J(o,{text:s,width:l,height:a}),Ge(e)||J(o,Y1(e,o,t))}},Y1=(e,t,n)=>{if(Ge(e))return ue.getBoundTextElementPosition(e,t,n);const r=LI(e),i=eh(e,t),o=Ii(e,t);let s,a;return t.verticalAlign===Qn.TOP?a=r.y:t.verticalAlign===Qn.BOTTOM?a=r.y+(i-t.height):a=r.y+(i/2-t.height/2),t.textAlign===hd.LEFT?s=r.x:t.textAlign===hd.RIGHT?s=r.x+(o-t.width):s=r.x+(o/2-t.width/2),{x:s,y:a}},ds=(e,t,n)=>{e=e.split(` -`).map(s=>s||" ").join(` -`);const r=parseFloat(t),i=qO(e,r,n);return{width:K1(e,t),height:i}},XO=e=>{const t=lE(e.text).length;return e.height/t/e.fontSize},Qd=(e,t)=>e*t,II=(e,t,n)=>{const{unitsPerEm:r,ascender:i,descender:o}=Wb[e]||Wb[Xt.Helvetica],s=t/r,a=n-s*i+s*o;return s*i+a},CI=(e,t)=>Qd(e,t)+Nt*2;let vp;const Au=(e,t)=>{vp||(vp=document.createElement("canvas"));const n=vp.getContext("2d");return n.font=t,n.measureText(e).width},K1=(e,t)=>{const n=lE(e);let r=0;return n.forEach(i=>{r=Math.max(r,Au(i,t))}),r},qO=(e,t,n)=>{const r=lE(e).length;return Qd(t,n)*r},QO=e=>{const t=e.split("-");return t.length>1&&t.forEach((n,r)=>{r!==t.length-1&&(t[r]=n+="-")}),t.join(" ").split(" ")},Jd=(e,t,n)=>{if(!Number.isFinite(n)||n<0)return e;const r=[],i=e.split(` -`),o=Au(" ",t);let s="",a=0;const l=u=>{u.trim()&&r.push(u)},c=()=>{s="",a=0};return i.forEach(u=>{if(K1(u,t)<=n){r.push(u);return}const h=QO(u);c();let m=0;for(;mn){for(l(s),c();h[m].length>0;){const p=String.fromCodePoint(h[m].codePointAt(0)),v=TI.calculate(p,t);a+=v,h[m]=h[m].slice(p.length),a>=n?(l(s),s=p,a=v):s+=p}a+o>=n?(l(s),c()):s.endsWith("-")||(s+=" ",a+=o),m++}else for(;an){l(s),c();break}m++;const v=!p.endsWith("-");if(s+=p,v&&(s+=" "),a+o>=n){v?r.push(s.slice(0,-1)):r.push(s),c();break}}}s.slice(-1)===" "&&(s=s.slice(0,-1),l(s))}),r.join(` -`)},TI=(()=>{const e={};return{calculate:(r,i)=>{const o=r.charCodeAt(0);if(e[i]||(e[i]=[]),!e[i][o]){const s=Au(r,i);e[i][o]=s}return e[i][o]},getCache:r=>e[r]}})(),MI="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toLocaleUpperCase(),AI=(e,t)=>{const n=JO(e);return n===0?ds(MI.split("").join(` -`),e,t).width+Nt*2:n+Nt*2},JO=e=>{const t=TI.getCache(e);if(!t)return 0;const n=t.filter(r=>r!==void 0);return Math.max(...n)},va=e=>{var t,n,r;return(t=e==null?void 0:e.boundElements)!=null&&t.length&&((r=(n=e==null?void 0:e.boundElements)==null?void 0:n.filter(i=>i.type==="text")[0])==null?void 0:r.id)||null},ke=(e,t)=>{if(!e)return null;const n=va(e);return n&&t.get(n)||null},kn=(e,t)=>e&&e.containerId&&t.get(e.containerId)||null,Ep=(e,t,n)=>{if(!Ge(e))return{x:e.x+e.width/2,y:e.y+e.height/2};const r=ue.getPointsGlobalCoordinates(e,n);if(r.length%2===1){const s=Math.floor(e.points.length/2),a=ue.getPointGlobalCoordinates(e,e.points[s],n);return{x:a[0],y:a[1]}}const i=e.points.length/2-1;let o=ue.getEditorMidPoints(e,n,t)[i];return o||(o=ue.getSegmentMidPoint(e,r[i],r[i+1],i+1,n)),{x:o[0],y:o[1]}},LI=e=>{let t=Nt,n=Nt;return e.type==="ellipse"&&(t+=e.width/2*(1-Math.sqrt(2)/2),n+=e.height/2*(1-Math.sqrt(2)/2)),e.type==="diamond"&&(t+=e.width/4,n+=e.height/4),{x:e.x+t,y:e.y+n}},eN=(e,t)=>!t||Ge(t)?e.angle:t.angle,tN=(e,t)=>e.some(n=>{if(Mt(n)){const r=kn(n,t);return!Ge(r)}return!1}),nN=(e,t)=>e.some(n=>{if(Mt(n)){const r=kn(n,t);return!Ge(r)}return ce(n)}),Ub=(e,t,n,r,i)=>{const o=qe(e,t);if(o.length===1)return ia(o[0],!1)?o[0]:null;let s=null;for(let a=e.length-1;a>=0;--a){if(e[a].isDeleted)continue;const[l,c,u,d]=Ee(e[a],i);if(Ge(e[a])&&vd(e[a],t,null,[n,r],i)){s=e[a];break}else if(lrN.has(e.type),Ea=(e,t)=>{e=Math.ceil(e);const n=Nt*2;return t==="ellipse"?Math.round((e+n)/Math.sqrt(2)*2):t==="arrow"?e+n*8:t==="diamond"?2*(e+n):e+n},Ii=(e,t)=>{const{width:n}=e;if(Ge(e)){const r=((t==null?void 0:t.fontSize)??Xr)*bR;return Math.max(wR*n,r)}return e.type==="ellipse"?Math.round(n/2*Math.sqrt(2))-Nt*2:e.type==="diamond"?Math.round(n/2)-Nt*2:n-Nt*2},eh=(e,t)=>{const{height:n}=e;return Ge(e)?n-Nt*8*2<=0?t.height:n:e.type==="ellipse"?Math.round(n/2*Math.sqrt(2))-Nt*2:e.type==="diamond"?Math.round(n/2)-Nt*2:n-Nt*2},oN=()=>K1(MI,Bt({fontSize:Xr,fontFamily:oo}))>0,wp={[Xt.Virgil]:1.25,[Xt.Helvetica]:1.15,[Xt.Cascadia]:1.2},Wb={[Xt.Virgil]:{unitsPerEm:1e3,ascender:886,descender:-374},[Xt.Helvetica]:{unitsPerEm:2048,ascender:1577,descender:-471},[Xt.Cascadia]:{unitsPerEm:2048,ascender:1977,descender:-480},[Xt.Assistant]:{unitsPerEm:1e3,ascender:1021,descender:-287}},wa=e=>e in wp?wp[e]:wp[oo],wl=class wl{static getBounds(t,n){const r=wl.boundsCache.get(t);if(r!=null&&r.version&&r.version===t.version&&!Mt(t))return r.bounds;const i=wl.calculateBounds(t,n);return wl.boundsCache.set(t,{version:t.version,bounds:i}),i}static calculateBounds(t,n){let r;const[i,o,s,a,l,c]=Ee(t,n);if(Hn(t)){const[u,d,h,m]=cE(t.points.map(([g,p])=>_e(g,p,l-t.x,c-t.y,t.angle)));return[u+t.x,d+t.y,h+t.x,m+t.y]}else if(we(t))r=mN(t,l,c,n);else if(t.type==="diamond"){const[u,d]=_e(l,o,l,c,t.angle),[h,m]=_e(l,a,l,c,t.angle),[g,p]=_e(i,c,l,c,t.angle),[v,y]=_e(s,c,l,c,t.angle),E=Math.min(u,h,g,v),w=Math.min(d,m,p,y),x=Math.max(u,h,g,v),C=Math.max(d,m,p,y);r=[E,w,x,C]}else if(t.type==="ellipse"){const u=(s-i)/2,d=(a-o)/2,h=Math.cos(t.angle),m=Math.sin(t.angle),g=Math.hypot(u*h,d*m),p=Math.hypot(d*h,u*m);r=[l-g,c-p,l+g,c+p]}else{const[u,d]=_e(i,o,l,c,t.angle),[h,m]=_e(i,a,l,c,t.angle),[g,p]=_e(s,a,l,c,t.angle),[v,y]=_e(s,o,l,c,t.angle),E=Math.min(u,h,g,v),w=Math.min(d,m,p,y),x=Math.max(u,h,g,v),C=Math.max(d,m,p,y);r=[E,w,x,C]}return r}};M(wl,"boundsCache",new WeakMap);let O2=wl;const Ee=(e,t,n=!1)=>{if(Hn(e))return cN(e);if(we(e))return ue.getElementAbsoluteCoords(e,t,n);if(ce(e)){const r=t?kn(e,t):null;if(Ge(r)){const i=ue.getBoundTextElementPosition(r,e,t);return[i.x,i.y,i.x+e.width,i.y+e.height,i.x+e.width/2,i.y+e.height/2]}}return[e.x,e.y,e.x+e.width,e.y+e.height,e.x+e.width/2,e.y+e.height/2]},Vb=(e,t)=>{const[n,r,i,o,s,a]=Ee(e,t),l=[s,a];if(we(e)||Hn(e)){const y=[];let E=0;for(;Est(y,l,e.angle));return e.type==="diamond"?[[m,p],[m,v],[g,p],[g,v]]:e.type==="ellipse"?[[m,p],[m,v],[g,p],[g,v],[m,p],[m,v],[g,p],[g,v]]:[[c,u],[d,h],[c,d],[u,h],[c,v],[d,v],[u,p],[h,p]]},sN=e=>[e.x,e.y,e.x+e.width,e.y+e.height,e.x+e.width/2,e.y+e.height/2],aN=e=>{const t=Math.floor(e.width/2)+1,n=0,r=e.width,i=Math.floor(e.height/2)+1,o=t,s=e.height;return[t,n,r,i,o,s,0,i]},_s=e=>{for(const t of e.sets)if(t.type==="path")return t.ops;return e.sets[0].ops},Gb=(e,t,n,r,i)=>{const o=1-e;return Math.pow(o,3)*t+3*Math.pow(o,2)*e*n+3*o*Math.pow(e,2)*r+Math.pow(e,3)*i},jb=(e,t,n,r)=>{const i=t-e,o=n-t,s=r-n,a=3*i-6*o+3*s,l=6*o-6*i,c=3*i,u=l*l-4*a*c;if(!(u>=0))return!1;let h=null,m=null,g=1/0,p=1/0;return a===0?g=p=-c/l:(g=(-l+Math.sqrt(u))/(2*a),p=(-l-Math.sqrt(u))/(2*a)),g>=0&&g<=1&&(h=Gb(g,e,t,n,r)),p>=0&&p<=1&&(m=Gb(p,e,t,n,r)),[h,m]},lN=(e,t,n,r)=>{const i=jb(e[0],t[0],n[0],r[0]),o=jb(e[1],t[1],n[1],r[1]);let s=Math.min(e[0],r[0]),a=Math.max(e[0],r[0]);if(i){const u=i.filter(d=>d!==null);s=Math.min(s,...u),a=Math.max(a,...u)}let l=Math.min(e[1],r[1]),c=Math.max(e[1],r[1]);if(o){const u=o.filter(d=>d!==null);l=Math.min(l,...u),c=Math.max(c,...u)}return[s,l,a,c]},Z1=(e,t)=>{let n=[0,0];const{minX:r,minY:i,maxX:o,maxY:s}=e.reduce((a,{op:l,data:c})=>{if(l==="move")n=c;else if(l==="bcurveTo"){const u=[c[0],c[1]],d=[c[2],c[3]],h=[c[4],c[5]],m=t?t(...u):u,g=t?t(...d):d,p=t?t(...h):h,v=t?t(...n):n;n=h;const[y,E,w,x]=lN(v,m,g,p);a.minX=Math.min(a.minX,y),a.minY=Math.min(a.minY,E),a.maxX=Math.max(a.maxX,w),a.maxY=Math.max(a.maxY,x)}return a},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});return[r,i,o,s]},cE=e=>{let t=1/0,n=1/0,r=-1/0,i=-1/0;for(const[o,s]of e)t=Math.min(t,o),n=Math.min(n,s),r=Math.max(r,o),i=Math.max(i,s);return[t,n,r,i]},cN=e=>{const[t,n,r,i]=cE(e.points),o=t+e.x,s=n+e.y,a=r+e.x,l=i+e.y;return[o,s,a,l,(o+a)/2,(s+l)/2]},uN=e=>{switch(e){case"arrow":return 25;case"diamond":case"diamond_outline":return 12;default:return 15}},dN=e=>{switch(e){case"bar":return 90;case"arrow":return 20;default:return 25}},hN=(e,t,n,r)=>{const i=_s(t[0]);if(i.length<1)return null;const o=n==="start"?1:i.length-1,s=i[o].data,a=[s[4],s[5]],l=[s[2],s[3]],c=[s[0],s[1]],u=i[o-1];let d=[0,0];u.op==="move"?d=u.data:u.op==="bcurveTo"&&(d=[u.data[4],u.data[5]]);const h=(G,q)=>Math.pow(1-G,3)*a[q]+3*G*Math.pow(1-G,2)*l[q]+3*Math.pow(G,2)*(1-G)*c[q]+d[q]*Math.pow(G,3),[m,g]=n==="start"?d:a,[p,v]=[h(.3,0),h(.3,1)],y=Math.hypot(m-p,g-v),E=(m-p)/y,w=(g-v)/y,x=uN(r);let C=0;{const[G,q]=n==="end"?e.points[e.points.length-1]:e.points[0],[U,$]=e.points.length>1?n==="end"?e.points[e.points.length-2]:e.points[1]:[0,0];C=Math.hypot(G-U,q-$)}const I=Math.min(x,C*(r==="diamond"||r==="diamond_outline"?.25:.5)),T=m-E*I,L=g-w*I;if(r==="dot"||r==="circle"||r==="circle_outline"){const G=Math.hypot(L-g,T-m)+e.strokeWidth-2;return[m,g,G]}const A=dN(r),[F,P]=_e(T,L,m,g,-A*Math.PI/180),[O,V]=_e(T,L,m,g,A*Math.PI/180);if(r==="diamond"||r==="diamond_outline"){let G,q;if(n==="start"){const[U,$]=e.points.length>1?e.points[1]:[0,0];[G,q]=_e(m+I*2,g,m,g,Math.atan2($-g,U-m))}else{const[U,$]=e.points.length>1?e.points[e.points.length-2]:[0,0];[G,q]=_e(m-I*2,g,m,g,Math.atan2(g-$,m-U))}return[m,g,F,P,G,q,O,V]}return[m,g,F,P,O,V]},fN=e=>{const t=ws.generator(),n=ur(e),r=e.roundness?"curve":n.fill?"polygon":"linearPath";return t[r](e.points,n)},mN=(e,t,n,r)=>{var d;const i=ke(e,r);if(e.points.length<2){const[h,m]=e.points[0],[g,p]=_e(e.x+h,e.y+m,t,n,e.angle);let v=[g,p,g,p];if(i){const y=ue.getMinMaxXYWithBoundText(e,r,[g,p,g,p],i);v=[y[0],y[1],y[2],y[3]]}return v}const s=((d=Xe.get(e))==null?void 0:d[0])??fN(e),a=_s(s),c=Z1(a,(h,m)=>_e(e.x+h,e.y+m,t,n,e.angle));let u=[c[0],c[1],c[2],c[3]];if(i){const h=ue.getMinMaxXYWithBoundText(e,r,u,i);u=[h[0],h[1],h[2],h[3]]}return u},ba=(e,t)=>O2.getBounds(e,t),nt=e=>{if(!e.length)return[0,0,0,0];let t=1/0,n=-1/0,r=1/0,i=-1/0;const o=be(e);return e.forEach(s=>{const[a,l,c,u]=ba(s,o);t=Math.min(t,a),r=Math.min(r,l),n=Math.max(n,c),i=Math.max(i,u)}),[t,r,n,i]},uE=(e,t)=>{const[n,r,i,o]=nt(e);return[n+t.x,r+t.y,i+t.x,o+t.y]},Lu=(e,t,n,r)=>{if(!(we(e)||Hn(e)))return[e.x,e.y,e.x+t,e.y+n];const i=Kl(0,t,Kl(1,n,e.points,r),r);let o;if(Hn(e))o=cE(i);else{const u=ws.generator(),d=e.roundness?u.curve(i,ur(e)):u.linearPath(i,ur(e)),h=_s(d);o=Z1(h)}const[s,a,l,c]=o;return[s+e.x,a+e.y,l+e.x,c+e.y]},Nm=(e,t)=>{const n=ws.generator(),r=e.roundness==null?n.linearPath(t,ur(e)):n.curve(t,ur(e)),i=_s(r),[o,s,a,l]=Z1(i);return[o+e.x,s+e.y,a+e.x,l+e.y]},gN=(e,t)=>{if(!e.length)return[0,0,0,0];let n=1/0,r=e[0];const i=be(e);return e.forEach(o=>{const[s,a,l,c]=ba(o,i),u=kt((s+l)/2,(a+c)/2,t.x,t.y);u{const[t,n,r,i]=nt(e);return{minX:t,minY:n,maxX:r,maxY:i,width:r-t,height:i-n,midX:(t+r)/2,midY:(n+i)/2}},pN=({scrollX:e,scrollY:t,width:n,height:r,zoom:i})=>[-e,-t,-e+n/i.value,-t+r/i.value];function Yb(e,t,n,r=i=>i){return e*r(.5-t*(.5-n))}function yN(e){return[-e[0],-e[1]]}function Or(e,t){return[e[0]+t[0],e[1]+t[1]]}function cr(e,t){return[e[0]-t[0],e[1]-t[1]]}function Lr(e,t){return[e[0]*t,e[1]*t]}function vN(e,t){return[e[0]/t,e[1]/t]}function zc(e){return[e[1],-e[0]]}function Kb(e,t){return e[0]*t[0]+e[1]*t[1]}function EN(e,t){return e[0]===t[0]&&e[1]===t[1]}function wN(e){return Math.hypot(e[0],e[1])}function bN(e){return e[0]*e[0]+e[1]*e[1]}function Zb(e,t){return bN(cr(e,t))}function PI(e){return vN(e,wN(e))}function _N(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function Hc(e,t,n){let r=Math.sin(n),i=Math.cos(n),o=e[0]-t[0],s=e[1]-t[1],a=o*i-s*r,l=o*r+s*i;return[a+t[0],l+t[1]]}function N2(e,t,n){return Or(e,Lr(cr(t,e),n))}function Xb(e,t,n){return Or(e,Lr(t,n))}var{min:Ua,PI:xN}=Math,qb=.275,Uc=xN+1e-4;function SN(e,t={}){let{size:n=16,smoothing:r=.5,thinning:i=.5,simulatePressure:o=!0,easing:s=U=>U,start:a={},end:l={},last:c=!1}=t,{cap:u=!0,easing:d=U=>U*(2-U)}=a,{cap:h=!0,easing:m=U=>--U*U*U+1}=l;if(e.length===0||n<=0)return[];let g=e[e.length-1].runningLength,p=a.taper===!1?0:a.taper===!0?Math.max(n,g):a.taper,v=l.taper===!1?0:l.taper===!0?Math.max(n,g):l.taper,y=Math.pow(n*r,2),E=[],w=[],x=e.slice(0,10).reduce((U,$)=>{let Y=$.pressure;if(o){let R=Ua(1,$.distance/n),N=Ua(1,1-R);Y=Ua(1,U+(N-U)*(R*qb))}return(U+Y)/2},e[0].pressure),C=Yb(n,i,e[e.length-1].pressure,s),S,I=e[0].vector,T=e[0].point,L=T,A=T,F=L,P=!1;for(let U=0;Uy)&&(E.push(A),T=A),F=Or(Y,Fe),(U<=1||Zb(L,F)>y)&&(w.push(F),L=F),x=$,I=R}let O=e[0].point.slice(0,2),V=e.length>1?e[e.length-1].point.slice(0,2):Or(e[0].point,[1,1]),G=[],q=[];if(e.length===1){if(!(p||v)||c){let U=Xb(O,PI(zc(cr(O,V))),-(S||C)),$=[];for(let Y=1/13,R=Y;R<=1;R+=Y)$.push(Hc(U,O,Uc*2*R));return $}}else{if(!(p||v&&e.length===1))if(u)for(let $=1/13,Y=$;Y<=1;Y+=$){let R=Hc(w[0],O,Uc*Y);G.push(R)}else{let $=cr(E[0],w[0]),Y=Lr($,.5),R=Lr($,.51);G.push(cr(O,Y),cr(O,R),Or(O,R),Or(O,Y))}let U=zc(yN(e[e.length-1].vector));if(v||p&&e.length===1)q.push(V);else if(h){let $=Xb(V,U,C);for(let Y=1/29,R=Y;R<1;R+=Y)q.push(Hc($,V,Uc*3*R))}else q.push(Or(V,Lr(U,C)),Or(V,Lr(U,C*.99)),cr(V,Lr(U,C*.99)),cr(V,Lr(U,C)))}return E.concat(q,w.reverse(),G)}function kN(e,t={}){var n;let{streamline:r=.5,size:i=16,last:o=!1}=t;if(e.length===0)return[];let s=.15+(1-r)*.85,a=Array.isArray(e[0])?e:e.map(({x:m,y:g,pressure:p=.5})=>[m,g,p]);if(a.length===2){let m=a[1];a=a.slice(0,-1);for(let g=1;g<5;g++)a.push(N2(a[0],m,g/4))}a.length===1&&(a=[...a,[...Or(a[0],[1,1]),...a[0].slice(2)]]);let l=[{point:[a[0][0],a[0][1]],pressure:a[0][2]>=0?a[0][2]:.25,vector:[1,1],distance:0,runningLength:0}],c=!1,u=0,d=l[0],h=a.length-1;for(let m=1;m=0?a[m][2]:.5,vector:PI(cr(d.point,g)),distance:p,runningLength:u},l.push(d)}return l[0].vector=((n=l[1])==null?void 0:n.vector)||[0,0],l}function IN(e,t={}){return SN(kN(e,t),t)}const RI=(e,t,n)=>{const r=n.reduce((i,o)=>(o.groupIds.includes(e)&&(i[o.id]=!0),i),{});return Object.keys(r).length<2?t.selectedGroupIds[e]||t.editingGroupId===e?{selectedElementIds:t.selectedElementIds,selectedGroupIds:{...t.selectedGroupIds,[e]:!1},editingGroupId:null}:t:{editingGroupId:t.editingGroupId,selectedGroupIds:{...t.selectedGroupIds,[e]:!0},selectedElementIds:{...t.selectedElementIds,...r}}},Zn=function(){let e=null,t=null,n=null;const r=(o,s,a,l)=>{if(n!==void 0&&s===t&&o===e&&a.editingGroupId===(n==null?void 0:n.editingGroupId))return n;const c={};for(const h of o){let m=h.groupIds;if(a.editingGroupId){const g=m.indexOf(a.editingGroupId);g>-1&&(m=m.slice(0,g))}if(m.length>0){const g=m[m.length-1];c[g]=!0}}const u={},d=s.reduce((h,m)=>{const g=m.groupIds.find(p=>c[p]);return g&&(h[m.id]=!0,Array.isArray(u[g])?u[g].push(m.id):u[g]=[m.id]),h},{});for(const h of Object.keys(u))u[h].length<2&&c[h]&&(c[h]=!1);return t=s,e=o,n={editingGroupId:a.editingGroupId,selectedGroupIds:c,selectedElementIds:$e({...a.selectedElementIds,...d},l)},n},i=(o,s,a,l)=>{const c=l?l.scene.getSelectedElements({selectedElementIds:o.selectedElementIds,elements:s}):qe(s,o);return c.length?r(c,s,o,a):{selectedGroupIds:{},editingGroupId:null,selectedElementIds:$e(o.selectedElementIds,a)}};return i.clearCache=()=>{t=null,e=null,n=null},i}(),DI=(e,t)=>OI(e,t)!=null,OI=(e,t)=>t.groupIds.filter(n=>n!==e.editingGroupId).find(n=>e.selectedGroupIds[n]),Ml=e=>Object.entries(e.selectedGroupIds).filter(([t,n])=>n).map(([t,n])=>t),NI=(e,t)=>{let n={...t,selectedGroupIds:{}};for(const r of e){let i=r.groupIds;if(t.editingGroupId){const o=i.indexOf(t.editingGroupId);o>-1&&(i=i.slice(0,o))}if(i.length>0){const o=i[i.length-1];n={...n,...RI(o,n,e)}}}return n.selectedGroupIds},CN=(e,t)=>({...e,editingGroupId:t.groupIds.length?t.groupIds[0]:null,selectedGroupIds:{},selectedElementIds:{[t.id]:!0}}),bd=(e,t)=>e.groupIds.includes(t),It=(e,t)=>{const n=[];for(const r of e.values())bd(r,t)&&n.push(r);return n},TN=(e,t)=>e.groupIds.find(n=>t[n]),MN=(e,t,n)=>{const r=[...e],i=t?e.indexOf(t):-1,o=i>-1?i:e.length;for(let s=0;s{const r=[...e],i=n?r.indexOf(n):-1,o=i>-1?i:r.length;return r.splice(o,0,t),r},LN=(e,t)=>e.filter(n=>!t[n]),X1=(e,t)=>{const n=new Map;return e.forEach(r=>{const i=r.groupIds.length===0?r.id:r.groupIds[r.groupIds.length-1],o=n.get(i)||[],s=ke(r,t);s&&o.push(s),n.set(i,[...o,r])}),Array.from(n.values())};var dE={};Object.defineProperty(dE,"__esModule",{value:!0});var FI=dE.sanitizeUrl=void 0,PN=/^([^\w]*)(javascript|data|vbscript)/im,RN=/&#(\w+)(^\w|;)?/g,DN=/&(newline|tab);/gi,ON=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,NN=/^.+(:|:)/gim,FN=[".","/"];function $N(e){return FN.indexOf(e[0])>-1}function BN(e){return e.replace(RN,function(t,n){return String.fromCharCode(n)})}function zN(e){var t=BN(e||"").replace(DN,"").replace(ON,"").trim();if(!t)return"about:blank";if($N(t))return t;var n=t.match(NN);if(!n)return t;var r=n[0];return PN.test(r)?"about:blank":t}FI=dE.sanitizeUrl=zN;const xi=e=>(e=e.trim(),e&&FI(e)),$I=e=>!!(e!=null&&e.includes(location.origin)||e!=null&&e.startsWith("/")),BI=e=>{if(e=xi(e),e.startsWith("/"))return`${location.origin}${e}`;try{new URL(e)}catch{return"about:blank"}return e};let F2=[];const ne=e=>(F2=F2.concat(e),e),zI='',HN='',HI='',UN=`data:${de.svg},${encodeURIComponent(`${zI}${HI}`)}`,WN=`data:${de.svg},${encodeURIComponent(`${zI}${HN}${HI}`)}`,Pr=e=>{e&&(e.style.cursor="")},He=(e,t)=>{e&&(e.style.cursor=t)};let oi,Qb;const UI=(e,t)=>{const r=()=>{const i=t===Tt.DARK;oi=document.createElement("canvas"),oi.theme=t,oi.height=20,oi.width=20;const o=oi.getContext("2d");o.lineWidth=1,o.beginPath(),o.arc(oi.width/2,oi.height/2,5,0,2*Math.PI),o.fillStyle=i?Ut.black:Ut.white,o.fill(),o.strokeStyle=i?Ut.white:Ut.black,o.stroke(),Qb=oi.toDataURL(de.svg)};(!oi||oi.theme!==t)&&r(),He(e,`url(${Qb}) ${20/2} ${20/2}, auto`)},di=(e,t)=>{if(e)if(t.activeTool.type==="selection")Pr(e);else if(Vl(t))e.style.cursor=Be.GRAB;else if(mi(t))UI(e,t.theme);else if(t.activeTool.type==="laser"){const n=t.theme===Tt.LIGHT?UN:WN;e.style.cursor=`url(${n}), auto`}else["image","custom"].includes(t.activeTool.type)?t.activeTool.type!=="image"&&(e.style.cursor=Be.AUTO):e.style.cursor=Be.CROSSHAIR},so=(e,{x:t,y:n,strokeColor:r=dt.strokeColor,backgroundColor:i=dt.backgroundColor,fillStyle:o=dt.fillStyle,strokeWidth:s=dt.strokeWidth,strokeStyle:a=dt.strokeStyle,roughness:l=dt.roughness,opacity:c=dt.opacity,width:u=0,height:d=0,angle:h=0,groupIds:m=[],frameId:g=null,roundness:p=null,boundElements:v=null,link:y=null,locked:E=dt.locked,...w})=>({id:w.id||xr(),type:e,x:t,y:n,width:u,height:d,angle:h,strokeColor:r,backgroundColor:i,fillStyle:o,strokeWidth:s,strokeStyle:a,roughness:l,opacity:c,groupIds:m,frameId:g,roundness:p,seed:w.seed??bs(),version:w.version||1,versionNonce:w.versionNonce??0,isDeleted:!1,boundElements:v,updated:cc(),link:y,locked:E,customData:w.customData}),hs=e=>so(e.type,e),Jb=e=>so("embeddable",e),VN=e=>({...so("iframe",e)}),WI=e=>ge({...so("frame",e),type:"frame",name:(e==null?void 0:e.name)||null},{}),$2=e=>ge({...so("magicframe",e),type:"magicframe",name:(e==null?void 0:e.name)||null},{}),VI=(e,t)=>({x:e.textAlign==="center"?t.width/2:e.textAlign==="right"?t.width:0,y:e.verticalAlign==="middle"?t.height/2:0}),Sr=e=>{const t=e.fontFamily||oo,n=e.fontSize||Xr,r=e.lineHeight||wa(t),i=wd(e.text),o=ds(i,Bt({fontFamily:t,fontSize:n}),r),s=e.textAlign||D1,a=e.verticalAlign||_m,l=VI({textAlign:s,verticalAlign:a},o);return ge({...so("text",e),text:i,fontSize:n,fontFamily:t,textAlign:s,verticalAlign:a,x:e.x-l.x,y:e.y-l.y,width:o.width,height:o.height,containerId:e.containerId||null,originalText:i,lineHeight:r},{})},GN=(e,t,n)=>{const{width:r,height:i}=ds(n,Bt(e),e.lineHeight),{textAlign:o,verticalAlign:s}=e;let a,l;if(o==="center"&&s===Qn.MIDDLE&&!e.containerId){const c=ds(e.text,Bt(e),e.lineHeight),u=VI(e,{width:r-c.width,height:i-c.height});a=e.x-u.x,l=e.y-u.y}else{const[c,u,d,h]=Ee(e,t),[m,g,p,v]=Lu(e,r,i,!1),y=(c-m)/2,E=(u-g)/2,w=(d-p)/2,x=(h-v)/2;[a,l]=nI({s:!0,e:o==="center"||o==="left",w:o==="center"||o==="right"},e.x,e.y,e.angle,y,E,w,x)}return{width:r,height:i,x:Number.isFinite(a)?a:e.x,y:Number.isFinite(l)?l:e.y}},hE=(e,t,n,r=e.text)=>{if(e.isDeleted)return;t&&(r=Jd(r,Bt(e),Ii(t,e)));const i=GN(e,n,r);return{text:r,...i}},jN=(e,t,n,{text:r,isDeleted:i,originalText:o})=>ge(e,{originalText:o,isDeleted:i??e.isDeleted,...hE(e,t,n,o)}),YN=e=>({...so(e.type,e),points:e.points||[],pressures:[],simulatePressure:e.simulatePressure,lastCommittedPoint:null}),Qo=e=>({...so(e.type,e),points:e.points||[],lastCommittedPoint:null,startBinding:null,endBinding:null,startArrowhead:e.startArrowhead||null,endArrowhead:e.endArrowhead||null}),GI=e=>({...so("image",e),strokeColor:"transparent",status:e.status??"pending",fileId:e.fileId??null,scale:e.scale??[1,1]}),Fm=(e,t=0)=>{if(e==null||typeof e!="object")return e;if(Object.prototype.toString.call(e)==="[object Object]"){const r=typeof e.constructor=="function"?Object.create(Object.getPrototypeOf(e)):{};for(const i in e)if(e.hasOwnProperty(i)){if(t===0&&(i==="shape"||i==="canvas"))continue;r[i]=Fm(e[i],t+1)}return r}if(Array.isArray(e)){let r=e.length;const i=new Array(r);for(;r--;)i[r]=Fm(e[r],t+1);return i}return e},th=e=>Fm(e),$m=e=>xr(),jI=(e,t,n,r)=>{let i=th(n);return i.id=$m(i.id),i.boundElements=null,i.updated=cc(),i.seed=bs(),i.groupIds=MN(i.groupIds,e,o=>(t.has(o)||t.set(o,$m()),t.get(o))),r&&(i=Object.assign(i,r)),i},YI=(e,t)=>{const n=[],r=be(e),i=new Map,o=a=>{if(i.has(a))return i.get(a);if(r.has(a)){const l=$m();return i.set(a,l),l}return null},s=new Map;for(const a of e){const l=Fm(a);if(l.id=o(a.id),t!=null&&t.randomizeSeed&&(l.seed=bs(),pc(l)),l.groupIds&&(l.groupIds=l.groupIds.map(c=>(s.has(c)||s.set(c,$m()),s.get(c)))),"containerId"in l&&l.containerId){const c=o(l.containerId);l.containerId=c}if("boundElements"in l&&l.boundElements&&(l.boundElements=l.boundElements.reduce((c,u)=>{const d=o(u.id);return d&&c.push({...u,id:d}),c},[])),"endBinding"in l&&l.endBinding){const c=o(l.endBinding.elementId);l.endBinding=c?{...l.endBinding,elementId:c}:null}if("startBinding"in l&&l.startBinding){const c=o(l.startBinding.elementId);l.startBinding=c?{...l.startBinding,elementId:c}:null}l.frameId&&(l.frameId=o(l.frameId)),n.push(l)}return n},Ri=new Map,KN=/^(?:http(?:s)?:\/\/)?(?:www\.)?youtu(?:be\.com|\.be)\/(embed\/|watch\?v=|shorts\/|playlist\?list=|embed\/videoseries\?list=)?([a-zA-Z0-9_-]+)(?:\?t=|&t=|\?start=|&start=)?([a-zA-Z0-9_-]+)?[^\s]*$/,ZN=/^(?:http(?:s)?:\/\/)?(?:(?:w){3}.)?(?:player\.)?vimeo\.com\/(?:video\/)?([^?\s]+)(?:\?.*)?$/,XN=/^https:\/\/(?:www\.)?figma\.com/,qN=/^https:\/\/gist\.github\.com/,QN=/^$/i,e_=/giphy.com\/(?:clips|embed|gifs)\/[a-zA-Z0-9]*?-?([a-zA-Z0-9]+)(?:[^a-zA-Z0-9]|$)/,B2=new Set(["youtube.com","youtu.be","vimeo.com","player.vimeo.com","figma.com","link.excalidraw.com","gist.github.com","twitter.com","x.com","*.simplepdf.eu","stackblitz.com","val.town","giphy.com","dddice.com"]),pl=e=>`${e}`,yl=e=>{if(!e)return null;if(Ri.has(e))return Ri.get(e);const t=e;let n="generic",r={w:560,h:840};const i=e.match(KN);if(i!=null&&i[2]){const l=i[3]?`&start=${i[3]}`:"",c=e.includes("shorts");switch(n="video",i[1]){case"embed/":case"watch?v=":case"shorts/":e=`https://www.youtube.com/embed/${i[2]}?enablejsapi=1${l}`;break;case"playlist?list=":case"embed/videoseries?list=":e=`https://www.youtube.com/embed/videoseries?list=${i[2]}&enablejsapi=1${l}`;break;default:e=`https://www.youtube.com/embed/${i[2]}?enablejsapi=1${l}`;break}return r=c?{w:315,h:560}:{w:560,h:315},Ri.set(t,{link:e,intrinsicSize:r,type:n}),{link:e,intrinsicSize:r,type:n}}const o=e.match(ZN);if(o!=null&&o[1]){const l=o==null?void 0:o[1],c=/^\d+$/.test(l)?void 0:new URIError("Invalid embed link format");return n="video",e=`https://player.vimeo.com/video/${l}?api=1`,r={w:560,h:315},Ri.set(t,{link:e,intrinsicSize:r,type:n}),{link:e,intrinsicSize:r,type:n,error:c}}if(e.match(XN))return n="generic",e=`https://www.figma.com/embed?embed_host=share&url=${encodeURIComponent(e)}`,r={w:550,h:550},Ri.set(t,{link:e,intrinsicSize:r,type:n}),{link:e,intrinsicSize:r,type:n};const a=e.match(tF);if(a)return e=a[1]==="embed"?a[0]:a[0].replace("/v","/embed"),Ri.set(t,{link:e,intrinsicSize:r,type:n}),{link:e,intrinsicSize:r,type:n};if(JN.test(e)){e=e.replace(/\bx.com\b/,"twitter.com");let l;if(/
    c,intrinsicSize:{w:480,h:480}}}else l={type:"document",srcdoc:c=>pl(` `,\n ),\n intrinsicSize: { w: 480, h: 480 },\n };\n }\n embeddedLinkCache.set(originalLink, ret);\n return ret;\n }\n\n if (RE_GH_GIST.test(link)) {\n let ret: IframeData;\n // assume embed code\n if (/\n \n `),\n intrinsicSize: { w: 550, h: 720 },\n };\n }\n embeddedLinkCache.set(link, ret);\n return ret;\n }\n\n embeddedLinkCache.set(link, { link, intrinsicSize: aspectRatio, type });\n return { link, intrinsicSize: aspectRatio, type };\n};\n\nexport const createPlaceholderEmbeddableLabel = (\n element: ExcalidrawIframeLikeElement,\n): ExcalidrawElement => {\n let text: string;\n if (isIframeElement(element)) {\n text = \"IFrame element\";\n } else {\n text =\n !element.link || element?.link === \"\" ? \"Empty Web-Embed\" : element.link;\n }\n\n const fontSize = Math.max(\n Math.min(element.width / 2, element.width / text.length),\n element.width / 30,\n );\n const fontFamily = FONT_FAMILY.Helvetica;\n\n const fontString = getFontString({\n fontSize,\n fontFamily,\n });\n\n return newTextElement({\n x: element.x + element.width / 2,\n y: element.y + element.height / 2,\n strokeColor:\n element.strokeColor !== \"transparent\" ? element.strokeColor : \"black\",\n backgroundColor: \"transparent\",\n fontFamily,\n fontSize,\n text: wrapText(text, fontString, element.width - 20),\n textAlign: \"center\",\n verticalAlign: VERTICAL_ALIGN.MIDDLE,\n angle: element.angle ?? 0,\n });\n};\n\nexport const actionSetEmbeddableAsActiveTool = register({\n name: \"setEmbeddableAsActiveTool\",\n trackEvent: { category: \"toolbar\" },\n perform: (elements, appState, _, app) => {\n const nextActiveTool = updateActiveTool(appState, {\n type: \"embeddable\",\n });\n\n setCursorForShape(app.canvas, {\n ...appState,\n activeTool: nextActiveTool,\n });\n\n return {\n elements,\n appState: {\n ...appState,\n activeTool: updateActiveTool(appState, {\n type: \"embeddable\",\n }),\n },\n commitToHistory: false,\n };\n },\n});\n\nconst validateHostname = (\n url: string,\n /** using a Set assumes it already contains normalized bare domains */\n allowedHostnames: Set | string,\n): boolean => {\n try {\n const { hostname } = new URL(url);\n\n const bareDomain = hostname.replace(/^www\\./, \"\");\n const bareDomainWithFirstSubdomainWildcarded = bareDomain.replace(\n /^([^.]+)/,\n \"*\",\n );\n\n if (allowedHostnames instanceof Set) {\n return (\n ALLOWED_DOMAINS.has(bareDomain) ||\n ALLOWED_DOMAINS.has(bareDomainWithFirstSubdomainWildcarded)\n );\n }\n\n if (bareDomain === allowedHostnames.replace(/^www\\./, \"\")) {\n return true;\n }\n } catch (error) {\n // ignore\n }\n return false;\n};\n\nexport const maybeParseEmbedSrc = (str: string): string => {\n const twitterMatch = str.match(RE_TWITTER_EMBED);\n if (twitterMatch && twitterMatch.length === 2) {\n return twitterMatch[1];\n }\n\n const gistMatch = str.match(RE_GH_GIST_EMBED);\n if (gistMatch && gistMatch.length === 2) {\n return gistMatch[1];\n }\n\n if (RE_GIPHY.test(str)) {\n return `https://giphy.com/embed/${RE_GIPHY.exec(str)![1]}`;\n }\n\n const match = str.match(RE_GENERIC_EMBED);\n if (match && match.length === 2) {\n return match[1];\n }\n return str;\n};\n\nexport const embeddableURLValidator = (\n url: string | null | undefined,\n validateEmbeddable: ExcalidrawProps[\"validateEmbeddable\"],\n): boolean => {\n if (!url) {\n return false;\n }\n if (validateEmbeddable != null) {\n if (typeof validateEmbeddable === \"function\") {\n const ret = validateEmbeddable(url);\n // if return value is undefined, leave validation to default\n if (typeof ret === \"boolean\") {\n return ret;\n }\n } else if (typeof validateEmbeddable === \"boolean\") {\n return validateEmbeddable;\n } else if (validateEmbeddable instanceof RegExp) {\n return validateEmbeddable.test(url);\n } else if (Array.isArray(validateEmbeddable)) {\n for (const domain of validateEmbeddable) {\n if (domain instanceof RegExp) {\n if (url.match(domain)) {\n return true;\n }\n } else if (validateHostname(url, domain)) {\n return true;\n }\n }\n return false;\n }\n }\n\n return validateHostname(url, ALLOWED_DOMAINS);\n};\n","import { Drawable } from \"roughjs/bin/core\";\nimport { RoughSVG } from \"roughjs/bin/svg\";\nimport {\n FRAME_STYLE,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n MIME_TYPES,\n SVG_NS,\n} from \"../constants\";\nimport { normalizeLink, toValidURL } from \"../data/url\";\nimport { getElementAbsoluteCoords } from \"../element\";\nimport {\n createPlaceholderEmbeddableLabel,\n getEmbedLink,\n} from \"../element/embeddable\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport {\n getBoundTextElement,\n getContainerElement,\n getLineHeightInPx,\n getVerticalOffset,\n} from \"../element/textElement\";\nimport {\n isArrowElement,\n isIframeLikeElement,\n isInitializedImageElement,\n isTextElement,\n} from \"../element/typeChecks\";\nimport {\n ExcalidrawElement,\n ExcalidrawTextElementWithContainer,\n NonDeletedExcalidrawElement,\n} from \"../element/types\";\nimport { getContainingFrame } from \"../frame\";\nimport { getCornerRadius, isPathALoop } from \"../math\";\nimport { ShapeCache } from \"../scene/ShapeCache\";\nimport { RenderableElementsMap, SVGRenderConfig } from \"../scene/types\";\nimport { AppState, BinaryFiles } from \"../types\";\nimport { getFontFamilyString, isRTL, isTestEnv } from \"../utils\";\nimport { getFreeDrawSvgPath, IMAGE_INVERT_FILTER } from \"./renderElement\";\n\nconst roughSVGDrawWithPrecision = (\n rsvg: RoughSVG,\n drawable: Drawable,\n precision?: number,\n) => {\n if (typeof precision === \"undefined\") {\n return rsvg.draw(drawable);\n }\n const pshape: Drawable = {\n sets: drawable.sets,\n shape: drawable.shape,\n options: { ...drawable.options, fixedDecimalPlaceDigits: precision },\n };\n return rsvg.draw(pshape);\n};\n\nconst maybeWrapNodesInFrameClipPath = (\n element: NonDeletedExcalidrawElement,\n root: SVGElement,\n nodes: SVGElement[],\n frameRendering: AppState[\"frameRendering\"],\n elementsMap: RenderableElementsMap,\n) => {\n if (!frameRendering.enabled || !frameRendering.clip) {\n return null;\n }\n const frame = getContainingFrame(element, elementsMap);\n if (frame) {\n const g = root.ownerDocument!.createElementNS(SVG_NS, \"g\");\n g.setAttributeNS(SVG_NS, \"clip-path\", `url(#${frame.id})`);\n nodes.forEach((node) => g.appendChild(node));\n return g;\n }\n\n return null;\n};\n\nconst renderElementToSvg = (\n element: NonDeletedExcalidrawElement,\n elementsMap: RenderableElementsMap,\n rsvg: RoughSVG,\n svgRoot: SVGElement,\n files: BinaryFiles,\n offsetX: number,\n offsetY: number,\n renderConfig: SVGRenderConfig,\n) => {\n const offset = { x: offsetX, y: offsetY };\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n let cx = (x2 - x1) / 2 - (element.x - x1);\n let cy = (y2 - y1) / 2 - (element.y - y1);\n if (isTextElement(element)) {\n const container = getContainerElement(element, elementsMap);\n if (isArrowElement(container)) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(container, elementsMap);\n\n const boundTextCoords = LinearElementEditor.getBoundTextElementPosition(\n container,\n element as ExcalidrawTextElementWithContainer,\n elementsMap,\n );\n cx = (x2 - x1) / 2 - (boundTextCoords.x - x1);\n cy = (y2 - y1) / 2 - (boundTextCoords.y - y1);\n offsetX = offsetX + boundTextCoords.x - element.x;\n offsetY = offsetY + boundTextCoords.y - element.y;\n }\n }\n const degree = (180 * element.angle) / Math.PI;\n\n // element to append node to, most of the time svgRoot\n let root = svgRoot;\n\n // if the element has a link, create an anchor tag and make that the new root\n if (element.link) {\n const anchorTag = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"a\");\n anchorTag.setAttribute(\"href\", normalizeLink(element.link));\n root.appendChild(anchorTag);\n root = anchorTag;\n }\n\n const addToRoot = (node: SVGElement, element: ExcalidrawElement) => {\n if (isTestEnv()) {\n node.setAttribute(\"data-id\", element.id);\n }\n root.appendChild(node);\n };\n\n const opacity =\n ((getContainingFrame(element, elementsMap)?.opacity ?? 100) *\n element.opacity) /\n 10000;\n\n switch (element.type) {\n case \"selection\": {\n // Since this is used only during editing experience, which is canvas based,\n // this should not happen\n throw new Error(\"Selection rendering is not supported for SVG\");\n }\n case \"rectangle\":\n case \"diamond\":\n case \"ellipse\": {\n const shape = ShapeCache.generateElementShape(element, null);\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\"stroke-linecap\", \"round\");\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [node],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || node, element);\n break;\n }\n case \"iframe\":\n case \"embeddable\": {\n // render placeholder rectangle\n const shape = ShapeCache.generateElementShape(element, renderConfig);\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n const opacity = element.opacity / 100;\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\"stroke-linecap\", \"round\");\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n addToRoot(node, element);\n\n const label: ExcalidrawElement =\n createPlaceholderEmbeddableLabel(element);\n renderElementToSvg(\n label,\n elementsMap,\n rsvg,\n root,\n files,\n label.x + offset.x - element.x,\n label.y + offset.y - element.y,\n renderConfig,\n );\n\n // render embeddable element + iframe\n const embeddableNode = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n embeddableNode.setAttribute(\"stroke-linecap\", \"round\");\n embeddableNode.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n while (embeddableNode.firstChild) {\n embeddableNode.removeChild(embeddableNode.firstChild);\n }\n const radius = getCornerRadius(\n Math.min(element.width, element.height),\n element,\n );\n\n const embedLink = getEmbedLink(toValidURL(element.link || \"\"));\n\n // if rendering embeddables explicitly disabled or\n // embedding documents via srcdoc (which doesn't seem to work for SVGs)\n // replace with a link instead\n if (\n renderConfig.renderEmbeddables === false ||\n embedLink?.type === \"document\"\n ) {\n const anchorTag = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"a\");\n anchorTag.setAttribute(\"href\", normalizeLink(element.link || \"\"));\n anchorTag.setAttribute(\"target\", \"_blank\");\n anchorTag.setAttribute(\"rel\", \"noopener noreferrer\");\n anchorTag.style.borderRadius = `${radius}px`;\n\n embeddableNode.appendChild(anchorTag);\n } else {\n const foreignObject = svgRoot.ownerDocument!.createElementNS(\n SVG_NS,\n \"foreignObject\",\n );\n foreignObject.style.width = `${element.width}px`;\n foreignObject.style.height = `${element.height}px`;\n foreignObject.style.border = \"none\";\n const div = foreignObject.ownerDocument!.createElementNS(SVG_NS, \"div\");\n div.setAttribute(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n div.style.width = \"100%\";\n div.style.height = \"100%\";\n const iframe = div.ownerDocument!.createElement(\"iframe\");\n iframe.src = embedLink?.link ?? \"\";\n iframe.style.width = \"100%\";\n iframe.style.height = \"100%\";\n iframe.style.border = \"none\";\n iframe.style.borderRadius = `${radius}px`;\n iframe.style.top = \"0\";\n iframe.style.left = \"0\";\n iframe.allowFullscreen = true;\n div.appendChild(iframe);\n foreignObject.appendChild(div);\n\n embeddableNode.appendChild(foreignObject);\n }\n addToRoot(embeddableNode, element);\n break;\n }\n case \"line\":\n case \"arrow\": {\n const boundText = getBoundTextElement(element, elementsMap);\n const maskPath = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"mask\");\n if (boundText) {\n maskPath.setAttribute(\"id\", `mask-${element.id}`);\n const maskRectVisible = svgRoot.ownerDocument!.createElementNS(\n SVG_NS,\n \"rect\",\n );\n offsetX = offsetX || 0;\n offsetY = offsetY || 0;\n maskRectVisible.setAttribute(\"x\", \"0\");\n maskRectVisible.setAttribute(\"y\", \"0\");\n maskRectVisible.setAttribute(\"fill\", \"#fff\");\n maskRectVisible.setAttribute(\n \"width\",\n `${element.width + 100 + offsetX}`,\n );\n maskRectVisible.setAttribute(\n \"height\",\n `${element.height + 100 + offsetY}`,\n );\n\n maskPath.appendChild(maskRectVisible);\n const maskRectInvisible = svgRoot.ownerDocument!.createElementNS(\n SVG_NS,\n \"rect\",\n );\n const boundTextCoords = LinearElementEditor.getBoundTextElementPosition(\n element,\n boundText,\n elementsMap,\n );\n\n const maskX = offsetX + boundTextCoords.x - element.x;\n const maskY = offsetY + boundTextCoords.y - element.y;\n\n maskRectInvisible.setAttribute(\"x\", maskX.toString());\n maskRectInvisible.setAttribute(\"y\", maskY.toString());\n maskRectInvisible.setAttribute(\"fill\", \"#000\");\n maskRectInvisible.setAttribute(\"width\", `${boundText.width}`);\n maskRectInvisible.setAttribute(\"height\", `${boundText.height}`);\n maskRectInvisible.setAttribute(\"opacity\", \"1\");\n maskPath.appendChild(maskRectInvisible);\n }\n const group = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"g\");\n if (boundText) {\n group.setAttribute(\"mask\", `url(#mask-${element.id})`);\n }\n group.setAttribute(\"stroke-linecap\", \"round\");\n\n const shapes = ShapeCache.generateElementShape(element, renderConfig);\n shapes.forEach((shape) => {\n const node = roughSVGDrawWithPrecision(\n rsvg,\n shape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n );\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n if (\n element.type === \"line\" &&\n isPathALoop(element.points) &&\n element.backgroundColor !== \"transparent\"\n ) {\n node.setAttribute(\"fill-rule\", \"evenodd\");\n }\n group.appendChild(node);\n });\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [group, maskPath],\n renderConfig.frameRendering,\n elementsMap,\n );\n if (g) {\n addToRoot(g, element);\n root.appendChild(g);\n } else {\n addToRoot(group, element);\n root.append(maskPath);\n }\n break;\n }\n case \"freedraw\": {\n const backgroundFillShape = ShapeCache.generateElementShape(\n element,\n renderConfig,\n );\n const node = backgroundFillShape\n ? roughSVGDrawWithPrecision(\n rsvg,\n backgroundFillShape,\n MAX_DECIMALS_FOR_SVG_EXPORT,\n )\n : svgRoot.ownerDocument!.createElementNS(SVG_NS, \"g\");\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n node.setAttribute(\"stroke\", \"none\");\n const path = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"path\");\n path.setAttribute(\"fill\", element.strokeColor);\n path.setAttribute(\"d\", getFreeDrawSvgPath(element));\n node.appendChild(path);\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [node],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || node, element);\n break;\n }\n case \"image\": {\n const width = Math.round(element.width);\n const height = Math.round(element.height);\n const fileData =\n isInitializedImageElement(element) && files[element.fileId];\n if (fileData) {\n const symbolId = `image-${fileData.id}`;\n let symbol = svgRoot.querySelector(`#${symbolId}`);\n if (!symbol) {\n symbol = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"symbol\");\n symbol.id = symbolId;\n\n const image = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"image\");\n\n image.setAttribute(\"width\", \"100%\");\n image.setAttribute(\"height\", \"100%\");\n image.setAttribute(\"href\", fileData.dataURL);\n\n symbol.appendChild(image);\n\n root.prepend(symbol);\n }\n\n const use = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"use\");\n use.setAttribute(\"href\", `#${symbolId}`);\n\n // in dark theme, revert the image color filter\n if (\n renderConfig.exportWithDarkMode &&\n fileData.mimeType !== MIME_TYPES.svg\n ) {\n use.setAttribute(\"filter\", IMAGE_INVERT_FILTER);\n }\n\n use.setAttribute(\"width\", `${width}`);\n use.setAttribute(\"height\", `${height}`);\n use.setAttribute(\"opacity\", `${opacity}`);\n\n // We first apply `scale` transforms (horizontal/vertical mirroring)\n // on the element, then apply translation and rotation\n // on the element which wraps the .\n // Doing this separately is a quick hack to to work around compositing\n // the transformations correctly (the transform-origin was not being\n // applied correctly).\n if (element.scale[0] !== 1 || element.scale[1] !== 1) {\n const translateX = element.scale[0] !== 1 ? -width : 0;\n const translateY = element.scale[1] !== 1 ? -height : 0;\n use.setAttribute(\n \"transform\",\n `scale(${element.scale[0]}, ${element.scale[1]}) translate(${translateX} ${translateY})`,\n );\n }\n\n const g = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"g\");\n g.appendChild(use);\n g.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n\n if (element.roundness) {\n const clipPath = svgRoot.ownerDocument!.createElementNS(\n SVG_NS,\n \"clipPath\",\n );\n clipPath.id = `image-clipPath-${element.id}`;\n\n const clipRect = svgRoot.ownerDocument!.createElementNS(\n SVG_NS,\n \"rect\",\n );\n const radius = getCornerRadius(\n Math.min(element.width, element.height),\n element,\n );\n clipRect.setAttribute(\"width\", `${element.width}`);\n clipRect.setAttribute(\"height\", `${element.height}`);\n clipRect.setAttribute(\"rx\", `${radius}`);\n clipRect.setAttribute(\"ry\", `${radius}`);\n clipPath.appendChild(clipRect);\n addToRoot(clipPath, element);\n\n g.setAttributeNS(SVG_NS, \"clip-path\", `url(#${clipPath.id})`);\n }\n\n const clipG = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [g],\n renderConfig.frameRendering,\n elementsMap,\n );\n addToRoot(clipG || g, element);\n }\n break;\n }\n // frames are not rendered and only acts as a container\n case \"frame\":\n case \"magicframe\": {\n if (\n renderConfig.frameRendering.enabled &&\n renderConfig.frameRendering.outline\n ) {\n const rect = document.createElementNS(SVG_NS, \"rect\");\n\n rect.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n\n rect.setAttribute(\"width\", `${element.width}px`);\n rect.setAttribute(\"height\", `${element.height}px`);\n // Rounded corners\n rect.setAttribute(\"rx\", FRAME_STYLE.radius.toString());\n rect.setAttribute(\"ry\", FRAME_STYLE.radius.toString());\n\n rect.setAttribute(\"fill\", \"none\");\n rect.setAttribute(\"stroke\", FRAME_STYLE.strokeColor);\n rect.setAttribute(\"stroke-width\", FRAME_STYLE.strokeWidth.toString());\n\n addToRoot(rect, element);\n }\n break;\n }\n default: {\n if (isTextElement(element)) {\n const node = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"g\");\n if (opacity !== 1) {\n node.setAttribute(\"stroke-opacity\", `${opacity}`);\n node.setAttribute(\"fill-opacity\", `${opacity}`);\n }\n\n node.setAttribute(\n \"transform\",\n `translate(${offsetX || 0} ${\n offsetY || 0\n }) rotate(${degree} ${cx} ${cy})`,\n );\n const lines = element.text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\");\n const lineHeightPx = getLineHeightInPx(\n element.fontSize,\n element.lineHeight,\n );\n const horizontalOffset =\n element.textAlign === \"center\"\n ? element.width / 2\n : element.textAlign === \"right\"\n ? element.width\n : 0;\n const verticalOffset = getVerticalOffset(\n element.fontFamily,\n element.fontSize,\n lineHeightPx,\n );\n const direction = isRTL(element.text) ? \"rtl\" : \"ltr\";\n const textAnchor =\n element.textAlign === \"center\"\n ? \"middle\"\n : element.textAlign === \"right\" || direction === \"rtl\"\n ? \"end\"\n : \"start\";\n for (let i = 0; i < lines.length; i++) {\n const text = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"text\");\n text.textContent = lines[i];\n text.setAttribute(\"x\", `${horizontalOffset}`);\n text.setAttribute(\"y\", `${i * lineHeightPx + verticalOffset}`);\n text.setAttribute(\"font-family\", getFontFamilyString(element));\n text.setAttribute(\"font-size\", `${element.fontSize}px`);\n text.setAttribute(\"fill\", element.strokeColor);\n text.setAttribute(\"text-anchor\", textAnchor);\n text.setAttribute(\"style\", \"white-space: pre;\");\n text.setAttribute(\"direction\", direction);\n text.setAttribute(\"dominant-baseline\", \"alphabetic\");\n node.appendChild(text);\n }\n\n const g = maybeWrapNodesInFrameClipPath(\n element,\n root,\n [node],\n renderConfig.frameRendering,\n elementsMap,\n );\n\n addToRoot(g || node, element);\n } else {\n // @ts-ignore\n throw new Error(`Unimplemented type ${element.type}`);\n }\n }\n }\n};\n\nexport const renderSceneToSvg = (\n elements: readonly NonDeletedExcalidrawElement[],\n elementsMap: RenderableElementsMap,\n rsvg: RoughSVG,\n svgRoot: SVGElement,\n files: BinaryFiles,\n renderConfig: SVGRenderConfig,\n) => {\n if (!svgRoot) {\n return;\n }\n\n // render elements\n elements\n .filter((el) => !isIframeLikeElement(el))\n .forEach((element) => {\n if (!element.isDeleted) {\n try {\n renderElementToSvg(\n element,\n elementsMap,\n rsvg,\n svgRoot,\n files,\n element.x + renderConfig.offsetX,\n element.y + renderConfig.offsetY,\n renderConfig,\n );\n } catch (error: any) {\n console.error(error);\n }\n }\n });\n\n // render embeddables on top\n elements\n .filter((el) => isIframeLikeElement(el))\n .forEach((element) => {\n if (!element.isDeleted) {\n try {\n renderElementToSvg(\n element,\n elementsMap,\n rsvg,\n svgRoot,\n files,\n element.x + renderConfig.offsetX,\n element.y + renderConfig.offsetY,\n renderConfig,\n );\n } catch (error: any) {\n console.error(error);\n }\n }\n });\n};\n","const e=(()=>{if(\"undefined\"==typeof self)return!1;if(\"top\"in self&&self!==top)try{top}catch(e){return!1}else if(\"showOpenFilePicker\"in self)return\"showOpenFilePicker\";return!1})(),t=e?import(\"./file-open-002ab408.js\"):import(\"./file-open-7c801643.js\");async function n(...e){return(await t).default(...e)}const i=e?import(\"./directory-open-4ed118d0.js\"):import(\"./directory-open-01563666.js\");async function r(...e){return(await i).default(...e)}const o=e?import(\"./file-save-745eba88.js\"):import(\"./file-save-3189631c.js\");async function s(...e){return(await o).default(...e)}export{r as directoryOpen,n as fileOpen,s as fileSave,e as supported};\n","type CANVAS_ERROR_NAMES = \"CANVAS_ERROR\" | \"CANVAS_POSSIBLY_TOO_BIG\";\n\nexport class CanvasError extends Error {\n constructor(\n message: string = \"Couldn't export canvas.\",\n name: CANVAS_ERROR_NAMES = \"CANVAS_ERROR\",\n ) {\n super();\n this.name = name;\n this.message = message;\n }\n}\n\nexport class AbortError extends DOMException {\n constructor(message: string = \"Request Aborted\") {\n super(message, \"AbortError\");\n }\n}\n\ntype ImageSceneDataErrorCode =\n | \"IMAGE_NOT_CONTAINS_SCENE_DATA\"\n | \"IMAGE_SCENE_DATA_ERROR\";\n\nexport class ImageSceneDataError extends Error {\n public code;\n constructor(\n message = \"Image Scene Data Error\",\n code: ImageSceneDataErrorCode = \"IMAGE_SCENE_DATA_ERROR\",\n ) {\n super(message);\n this.name = \"EncodingError\";\n this.code = code;\n }\n}\n","import {\n fileOpen as _fileOpen,\n fileSave as _fileSave,\n FileSystemHandle,\n supported as nativeFileSystemSupported,\n} from \"browser-fs-access\";\nimport { EVENT, MIME_TYPES } from \"../constants\";\nimport { AbortError } from \"../errors\";\nimport { debounce } from \"../utils\";\n\ntype FILE_EXTENSION = Exclude;\n\nconst INPUT_CHANGE_INTERVAL_MS = 500;\n\nexport const fileOpen = (opts: {\n extensions?: FILE_EXTENSION[];\n description: string;\n multiple?: M;\n}): Promise => {\n // an unsafe TS hack, alas not much we can do AFAIK\n type RetType = M extends false | undefined ? File : File[];\n\n const mimeTypes = opts.extensions?.reduce((mimeTypes, type) => {\n mimeTypes.push(MIME_TYPES[type]);\n\n return mimeTypes;\n }, [] as string[]);\n\n const extensions = opts.extensions?.reduce((acc, ext) => {\n if (ext === \"jpg\") {\n return acc.concat(\".jpg\", \".jpeg\");\n }\n return acc.concat(`.${ext}`);\n }, [] as string[]);\n\n return _fileOpen({\n description: opts.description,\n extensions,\n mimeTypes,\n multiple: opts.multiple ?? false,\n legacySetup: (resolve, reject, input) => {\n const scheduleRejection = debounce(reject, INPUT_CHANGE_INTERVAL_MS);\n const focusHandler = () => {\n checkForFile();\n document.addEventListener(EVENT.KEYUP, scheduleRejection);\n document.addEventListener(EVENT.POINTER_UP, scheduleRejection);\n scheduleRejection();\n };\n const checkForFile = () => {\n // this hack might not work when expecting multiple files\n if (input.files?.length) {\n const ret = opts.multiple ? [...input.files] : input.files[0];\n resolve(ret as RetType);\n }\n };\n requestAnimationFrame(() => {\n window.addEventListener(EVENT.FOCUS, focusHandler);\n });\n const interval = window.setInterval(() => {\n checkForFile();\n }, INPUT_CHANGE_INTERVAL_MS);\n return (rejectPromise) => {\n clearInterval(interval);\n scheduleRejection.cancel();\n window.removeEventListener(EVENT.FOCUS, focusHandler);\n document.removeEventListener(EVENT.KEYUP, scheduleRejection);\n document.removeEventListener(EVENT.POINTER_UP, scheduleRejection);\n if (rejectPromise) {\n // so that something is shown in console if we need to debug this\n console.warn(\"Opening the file was canceled (legacy-fs).\");\n rejectPromise(new AbortError());\n }\n };\n },\n }) as Promise;\n};\n\nexport const fileSave = (\n blob: Blob | Promise,\n opts: {\n /** supply without the extension */\n name: string;\n /** file extension */\n extension: FILE_EXTENSION;\n description: string;\n /** existing FileSystemHandle */\n fileHandle?: FileSystemHandle | null;\n },\n) => {\n return _fileSave(\n blob,\n {\n fileName: `${opts.name}.${opts.extension}`,\n description: opts.description,\n extensions: [`.${opts.extension}`],\n },\n opts.fileHandle,\n );\n};\n\nexport type { FileSystemHandle };\nexport { nativeFileSystemSupported };\n","import {\n ExcalidrawElement,\n ExcalidrawElementType,\n ExcalidrawSelectionElement,\n ExcalidrawTextElement,\n FontFamilyValues,\n PointBinding,\n StrokeRoundness,\n} from \"../element/types\";\nimport {\n AppState,\n BinaryFiles,\n LibraryItem,\n NormalizedZoomValue,\n} from \"../types\";\nimport { ImportedDataState, LegacyAppState } from \"./types\";\nimport {\n getNonDeletedElements,\n getNormalizedDimensions,\n isInvisiblySmallElement,\n refreshTextDimensions,\n} from \"../element\";\nimport { isTextElement, isUsingAdaptiveRadius } from \"../element/typeChecks\";\nimport { randomId } from \"../random\";\nimport {\n DEFAULT_FONT_FAMILY,\n DEFAULT_TEXT_ALIGN,\n DEFAULT_VERTICAL_ALIGN,\n PRECEDING_ELEMENT_KEY,\n FONT_FAMILY,\n ROUNDNESS,\n DEFAULT_SIDEBAR,\n DEFAULT_ELEMENT_PROPS,\n} from \"../constants\";\nimport { getDefaultAppState } from \"../appState\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport { bumpVersion } from \"../element/mutateElement\";\nimport { getUpdatedTimestamp, updateActiveTool } from \"../utils\";\nimport { arrayToMap } from \"../utils\";\nimport { MarkOptional, Mutable } from \"../utility-types\";\nimport {\n detectLineHeight,\n getContainerElement,\n getDefaultLineHeight,\n} from \"../element/textElement\";\nimport { normalizeLink } from \"./url\";\n\ntype RestoredAppState = Omit<\n AppState,\n \"offsetTop\" | \"offsetLeft\" | \"width\" | \"height\"\n>;\n\nexport const AllowedExcalidrawActiveTools: Record<\n AppState[\"activeTool\"][\"type\"],\n boolean\n> = {\n selection: true,\n text: true,\n rectangle: true,\n diamond: true,\n ellipse: true,\n line: true,\n image: true,\n arrow: true,\n freedraw: true,\n eraser: false,\n custom: true,\n frame: true,\n embeddable: true,\n hand: true,\n laser: false,\n magicframe: false,\n};\n\nexport type RestoredDataState = {\n elements: ExcalidrawElement[];\n appState: RestoredAppState;\n files: BinaryFiles;\n};\n\nconst getFontFamilyByName = (fontFamilyName: string): FontFamilyValues => {\n if (Object.keys(FONT_FAMILY).includes(fontFamilyName)) {\n return FONT_FAMILY[\n fontFamilyName as keyof typeof FONT_FAMILY\n ] as FontFamilyValues;\n }\n return DEFAULT_FONT_FAMILY;\n};\n\nconst repairBinding = (binding: PointBinding | null) => {\n if (!binding) {\n return null;\n }\n return { ...binding, focus: binding.focus || 0 };\n};\n\nconst restoreElementWithProperties = <\n T extends Required> & {\n customData?: ExcalidrawElement[\"customData\"];\n /** @deprecated */\n boundElementIds?: readonly ExcalidrawElement[\"id\"][];\n /** @deprecated */\n strokeSharpness?: StrokeRoundness;\n /** metadata that may be present in elements during collaboration */\n [PRECEDING_ELEMENT_KEY]?: string;\n },\n K extends Pick, keyof ExcalidrawElement>>,\n>(\n element: T,\n extra: Pick<\n T,\n // This extra Pick ensure no excess properties are passed.\n // @ts-ignore TS complains here but type checks the call sites fine.\n keyof K\n > &\n Partial>,\n): T => {\n const base: Pick & {\n [PRECEDING_ELEMENT_KEY]?: string;\n } = {\n type: extra.type || element.type,\n // all elements must have version > 0 so getSceneVersion() will pick up\n // newly added elements\n version: element.version || 1,\n versionNonce: element.versionNonce ?? 0,\n isDeleted: element.isDeleted ?? false,\n id: element.id || randomId(),\n fillStyle: element.fillStyle || DEFAULT_ELEMENT_PROPS.fillStyle,\n strokeWidth: element.strokeWidth || DEFAULT_ELEMENT_PROPS.strokeWidth,\n strokeStyle: element.strokeStyle ?? DEFAULT_ELEMENT_PROPS.strokeStyle,\n roughness: element.roughness ?? DEFAULT_ELEMENT_PROPS.roughness,\n opacity:\n element.opacity == null ? DEFAULT_ELEMENT_PROPS.opacity : element.opacity,\n angle: element.angle || 0,\n x: extra.x ?? element.x ?? 0,\n y: extra.y ?? element.y ?? 0,\n strokeColor: element.strokeColor || DEFAULT_ELEMENT_PROPS.strokeColor,\n backgroundColor:\n element.backgroundColor || DEFAULT_ELEMENT_PROPS.backgroundColor,\n width: element.width || 0,\n height: element.height || 0,\n seed: element.seed ?? 1,\n groupIds: element.groupIds ?? [],\n frameId: element.frameId ?? null,\n roundness: element.roundness\n ? element.roundness\n : element.strokeSharpness === \"round\"\n ? {\n // for old elements that would now use adaptive radius algo,\n // use legacy algo instead\n type: isUsingAdaptiveRadius(element.type)\n ? ROUNDNESS.LEGACY\n : ROUNDNESS.PROPORTIONAL_RADIUS,\n }\n : null,\n boundElements: element.boundElementIds\n ? element.boundElementIds.map((id) => ({ type: \"arrow\", id }))\n : element.boundElements ?? [],\n updated: element.updated ?? getUpdatedTimestamp(),\n link: element.link ? normalizeLink(element.link) : null,\n locked: element.locked ?? false,\n };\n\n if (\"customData\" in element || \"customData\" in extra) {\n base.customData =\n \"customData\" in extra ? extra.customData : element.customData;\n }\n\n if (PRECEDING_ELEMENT_KEY in element) {\n base[PRECEDING_ELEMENT_KEY] = element[PRECEDING_ELEMENT_KEY];\n }\n\n return {\n ...base,\n ...getNormalizedDimensions(base),\n ...extra,\n } as unknown as T;\n};\n\nconst restoreElement = (\n element: Exclude,\n): typeof element | null => {\n switch (element.type) {\n case \"text\":\n let fontSize = element.fontSize;\n let fontFamily = element.fontFamily;\n if (\"font\" in element) {\n const [fontPx, _fontFamily]: [string, string] = (\n element as any\n ).font.split(\" \");\n fontSize = parseFloat(fontPx);\n fontFamily = getFontFamilyByName(_fontFamily);\n }\n const text = (typeof element.text === \"string\" && element.text) || \"\";\n\n // line-height might not be specified either when creating elements\n // programmatically, or when importing old diagrams.\n // For the latter we want to detect the original line height which\n // will likely differ from our per-font fixed line height we now use,\n // to maintain backward compatibility.\n const lineHeight =\n element.lineHeight ||\n (element.height\n ? // detect line-height from current element height and font-size\n detectLineHeight(element)\n : // no element height likely means programmatic use, so default\n // to a fixed line height\n getDefaultLineHeight(element.fontFamily));\n element = restoreElementWithProperties(element, {\n fontSize,\n fontFamily,\n text,\n textAlign: element.textAlign || DEFAULT_TEXT_ALIGN,\n verticalAlign: element.verticalAlign || DEFAULT_VERTICAL_ALIGN,\n containerId: element.containerId ?? null,\n originalText: element.originalText || text,\n\n lineHeight,\n });\n\n // if empty text, mark as deleted. We keep in array\n // for data integrity purposes (collab etc.)\n if (!text && !element.isDeleted) {\n element = { ...element, originalText: text, isDeleted: true };\n element = bumpVersion(element);\n }\n\n return element;\n case \"freedraw\": {\n return restoreElementWithProperties(element, {\n points: element.points,\n lastCommittedPoint: null,\n simulatePressure: element.simulatePressure,\n pressures: element.pressures,\n });\n }\n case \"image\":\n return restoreElementWithProperties(element, {\n status: element.status || \"pending\",\n fileId: element.fileId,\n scale: element.scale || [1, 1],\n });\n case \"line\":\n // @ts-ignore LEGACY type\n // eslint-disable-next-line no-fallthrough\n case \"draw\":\n case \"arrow\": {\n const {\n startArrowhead = null,\n endArrowhead = element.type === \"arrow\" ? \"arrow\" : null,\n } = element;\n let x = element.x;\n let y = element.y;\n let points = // migrate old arrow model to new one\n !Array.isArray(element.points) || element.points.length < 2\n ? [\n [0, 0],\n [element.width, element.height],\n ]\n : element.points;\n\n if (points[0][0] !== 0 || points[0][1] !== 0) {\n ({ points, x, y } = LinearElementEditor.getNormalizedPoints(element));\n }\n\n return restoreElementWithProperties(element, {\n type:\n (element.type as ExcalidrawElementType | \"draw\") === \"draw\"\n ? \"line\"\n : element.type,\n startBinding: repairBinding(element.startBinding),\n endBinding: repairBinding(element.endBinding),\n lastCommittedPoint: null,\n startArrowhead,\n endArrowhead,\n points,\n x,\n y,\n });\n }\n\n // generic elements\n case \"ellipse\":\n case \"rectangle\":\n case \"diamond\":\n case \"iframe\":\n case \"embeddable\":\n return restoreElementWithProperties(element, {});\n case \"magicframe\":\n case \"frame\":\n return restoreElementWithProperties(element, {\n name: element.name ?? null,\n });\n\n // Don't use default case so as to catch a missing an element type case.\n // We also don't want to throw, but instead return void so we filter\n // out these unsupported elements from the restored array.\n }\n return null;\n};\n\n/**\n * Repairs contaienr element's boundElements array by removing duplicates and\n * fixing containerId of bound elements if not present. Also removes any\n * bound elements that do not exist in the elements array.\n *\n * NOTE mutates elements.\n */\nconst repairContainerElement = (\n container: Mutable,\n elementsMap: Map>,\n) => {\n if (container.boundElements) {\n // copy because we're not cloning on restore, and we don't want to mutate upstream\n const boundElements = container.boundElements.slice();\n\n // dedupe bindings & fix boundElement.containerId if not set already\n const boundIds = new Set();\n container.boundElements = boundElements.reduce(\n (\n acc: Mutable>,\n binding,\n ) => {\n const boundElement = elementsMap.get(binding.id);\n if (boundElement && !boundIds.has(binding.id)) {\n boundIds.add(binding.id);\n\n if (boundElement.isDeleted) {\n return acc;\n }\n\n acc.push(binding);\n\n if (\n isTextElement(boundElement) &&\n // being slightly conservative here, preserving existing containerId\n // if defined, lest boundElements is stale\n !boundElement.containerId\n ) {\n (boundElement as Mutable).containerId =\n container.id;\n }\n }\n return acc;\n },\n [],\n );\n }\n};\n\n/**\n * Repairs target bound element's container's boundElements array,\n * or removes contaienrId if container does not exist.\n *\n * NOTE mutates elements.\n */\nconst repairBoundElement = (\n boundElement: Mutable,\n elementsMap: Map>,\n) => {\n const container = boundElement.containerId\n ? elementsMap.get(boundElement.containerId)\n : null;\n\n if (!container) {\n boundElement.containerId = null;\n return;\n }\n\n if (boundElement.isDeleted) {\n return;\n }\n\n if (\n container.boundElements &&\n !container.boundElements.find((binding) => binding.id === boundElement.id)\n ) {\n // copy because we're not cloning on restore, and we don't want to mutate upstream\n const boundElements = (\n container.boundElements || (container.boundElements = [])\n ).slice();\n boundElements.push({ type: \"text\", id: boundElement.id });\n container.boundElements = boundElements;\n }\n};\n\n/**\n * Remove an element's frameId if its containing frame is non-existent\n *\n * NOTE mutates elements.\n */\nconst repairFrameMembership = (\n element: Mutable,\n elementsMap: Map>,\n) => {\n if (element.frameId) {\n const containingFrame = elementsMap.get(element.frameId);\n\n if (!containingFrame) {\n element.frameId = null;\n }\n }\n};\n\nexport const restoreElements = (\n elements: ImportedDataState[\"elements\"],\n /** NOTE doesn't serve for reconciliation */\n localElements: readonly ExcalidrawElement[] | null | undefined,\n opts?: { refreshDimensions?: boolean; repairBindings?: boolean } | undefined,\n): ExcalidrawElement[] => {\n // used to detect duplicate top-level element ids\n const existingIds = new Set();\n const localElementsMap = localElements ? arrayToMap(localElements) : null;\n const restoredElements = (elements || []).reduce((elements, element) => {\n // filtering out selection, which is legacy, no longer kept in elements,\n // and causing issues if retained\n if (element.type !== \"selection\" && !isInvisiblySmallElement(element)) {\n let migratedElement: ExcalidrawElement | null = restoreElement(element);\n if (migratedElement) {\n const localElement = localElementsMap?.get(element.id);\n if (localElement && localElement.version > migratedElement.version) {\n migratedElement = bumpVersion(migratedElement, localElement.version);\n }\n if (existingIds.has(migratedElement.id)) {\n migratedElement = { ...migratedElement, id: randomId() };\n }\n existingIds.add(migratedElement.id);\n\n elements.push(migratedElement);\n }\n }\n return elements;\n }, [] as ExcalidrawElement[]);\n\n if (!opts?.repairBindings) {\n return restoredElements;\n }\n\n // repair binding. Mutates elements.\n const restoredElementsMap = arrayToMap(restoredElements);\n for (const element of restoredElements) {\n if (element.frameId) {\n repairFrameMembership(element, restoredElementsMap);\n }\n\n if (isTextElement(element) && element.containerId) {\n repairBoundElement(element, restoredElementsMap);\n } else if (element.boundElements) {\n repairContainerElement(element, restoredElementsMap);\n }\n\n if (opts.refreshDimensions && isTextElement(element)) {\n Object.assign(\n element,\n refreshTextDimensions(\n element,\n getContainerElement(element, restoredElementsMap),\n restoredElementsMap,\n ),\n );\n }\n }\n\n return restoredElements;\n};\n\nconst coalesceAppStateValue = <\n T extends keyof ReturnType,\n>(\n key: T,\n appState: Exclude,\n defaultAppState: ReturnType,\n) => {\n const value = appState[key];\n // NOTE the value! assertion is needed in TS 4.5.5 (fixed in newer versions)\n return value !== undefined ? value! : defaultAppState[key];\n};\n\nconst LegacyAppStateMigrations: {\n [K in keyof LegacyAppState]: (\n ImportedDataState: Exclude,\n defaultAppState: ReturnType,\n ) => [LegacyAppState[K][1], AppState[LegacyAppState[K][1]]];\n} = {\n isSidebarDocked: (appState, defaultAppState) => {\n return [\n \"defaultSidebarDockedPreference\",\n appState.isSidebarDocked ??\n coalesceAppStateValue(\n \"defaultSidebarDockedPreference\",\n appState,\n defaultAppState,\n ),\n ];\n },\n};\n\nexport const restoreAppState = (\n appState: ImportedDataState[\"appState\"],\n localAppState: Partial | null | undefined,\n): RestoredAppState => {\n appState = appState || {};\n const defaultAppState = getDefaultAppState();\n const nextAppState = {} as typeof defaultAppState;\n\n // first, migrate all legacy AppState properties to new ones. We do it\n // in one go before migrate the rest of the properties in case the new ones\n // depend on checking any other key (i.e. they are coupled)\n for (const legacyKey of Object.keys(\n LegacyAppStateMigrations,\n ) as (keyof typeof LegacyAppStateMigrations)[]) {\n if (legacyKey in appState) {\n const [nextKey, nextValue] = LegacyAppStateMigrations[legacyKey](\n appState,\n defaultAppState,\n );\n (nextAppState as any)[nextKey] = nextValue;\n }\n }\n\n for (const [key, defaultValue] of Object.entries(defaultAppState) as [\n keyof typeof defaultAppState,\n any,\n ][]) {\n // if AppState contains a legacy key, prefer that one and migrate its\n // value to the new one\n const suppliedValue = appState[key];\n\n const localValue = localAppState ? localAppState[key] : undefined;\n (nextAppState as any)[key] =\n suppliedValue !== undefined\n ? suppliedValue\n : localValue !== undefined\n ? localValue\n : defaultValue;\n }\n\n return {\n ...nextAppState,\n cursorButton: localAppState?.cursorButton || \"up\",\n // reset on fresh restore so as to hide the UI button if penMode not active\n penDetected:\n localAppState?.penDetected ??\n (appState.penMode ? appState.penDetected ?? false : false),\n activeTool: {\n ...updateActiveTool(\n defaultAppState,\n nextAppState.activeTool.type &&\n AllowedExcalidrawActiveTools[nextAppState.activeTool.type]\n ? nextAppState.activeTool\n : { type: \"selection\" },\n ),\n lastActiveTool: null,\n locked: nextAppState.activeTool.locked ?? false,\n },\n // Migrates from previous version where appState.zoom was a number\n zoom:\n typeof appState.zoom === \"number\"\n ? {\n value: appState.zoom as NormalizedZoomValue,\n }\n : appState.zoom?.value\n ? appState.zoom\n : defaultAppState.zoom,\n openSidebar:\n // string (legacy)\n typeof (appState.openSidebar as any as string) === \"string\"\n ? { name: DEFAULT_SIDEBAR.name }\n : nextAppState.openSidebar,\n };\n};\n\nexport const restore = (\n data: Pick | null,\n /**\n * Local AppState (`this.state` or initial state from localStorage) so that we\n * don't overwrite local state with default values (when values not\n * explicitly specified).\n * Supply `null` if you can't get access to it.\n */\n localAppState: Partial | null | undefined,\n localElements: readonly ExcalidrawElement[] | null | undefined,\n elementsConfig?: { refreshDimensions?: boolean; repairBindings?: boolean },\n): RestoredDataState => {\n return {\n elements: restoreElements(data?.elements, localElements, elementsConfig),\n appState: restoreAppState(data?.appState, localAppState || null),\n files: data?.files || {},\n };\n};\n\nconst restoreLibraryItem = (libraryItem: LibraryItem) => {\n const elements = restoreElements(\n getNonDeletedElements(libraryItem.elements),\n null,\n );\n return elements.length ? { ...libraryItem, elements } : null;\n};\n\nexport const restoreLibraryItems = (\n libraryItems: ImportedDataState[\"libraryItems\"] = [],\n defaultStatus: LibraryItem[\"status\"],\n) => {\n const restoredItems: LibraryItem[] = [];\n for (const item of libraryItems) {\n // migrate older libraries\n if (Array.isArray(item)) {\n const restoredItem = restoreLibraryItem({\n status: defaultStatus,\n elements: item,\n id: randomId(),\n created: Date.now(),\n });\n if (restoredItem) {\n restoredItems.push(restoredItem);\n }\n } else {\n const _item = item as MarkOptional<\n LibraryItem,\n \"id\" | \"status\" | \"created\"\n >;\n const restoredItem = restoreLibraryItem({\n ..._item,\n id: _item.id || randomId(),\n status: _item.status || defaultStatus,\n created: _item.created || Date.now(),\n });\n if (restoredItem) {\n restoredItems.push(restoredItem);\n }\n }\n }\n return restoredItems;\n};\n","import { nanoid } from \"nanoid\";\nimport { cleanAppStateForExport } from \"../appState\";\nimport { IMAGE_MIME_TYPES, MIME_TYPES } from \"../constants\";\nimport { clearElementsForExport } from \"../element\";\nimport { ExcalidrawElement, FileId } from \"../element/types\";\nimport { CanvasError, ImageSceneDataError } from \"../errors\";\nimport { calculateScrollCenter } from \"../scene\";\nimport { AppState, DataURL, LibraryItem } from \"../types\";\nimport { ValueOf } from \"../utility-types\";\nimport { bytesToHexString, isPromiseLike } from \"../utils\";\nimport { FileSystemHandle, nativeFileSystemSupported } from \"./filesystem\";\nimport { isValidExcalidrawData, isValidLibrary } from \"./json\";\nimport { restore, restoreLibraryItems } from \"./restore\";\nimport { ImportedLibraryData } from \"./types\";\n\nconst parseFileContents = async (blob: Blob | File) => {\n let contents: string;\n\n if (blob.type === MIME_TYPES.png) {\n try {\n return await (await import(\"./image\")).decodePngMetadata(blob);\n } catch (error: any) {\n if (error.message === \"INVALID\") {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n } else {\n throw new ImageSceneDataError(\"Error: cannot restore image\");\n }\n }\n } else {\n if (\"text\" in Blob) {\n contents = await blob.text();\n } else {\n contents = await new Promise((resolve) => {\n const reader = new FileReader();\n reader.readAsText(blob, \"utf8\");\n reader.onloadend = () => {\n if (reader.readyState === FileReader.DONE) {\n resolve(reader.result as string);\n }\n };\n });\n }\n if (blob.type === MIME_TYPES.svg) {\n try {\n return await (\n await import(\"./image\")\n ).decodeSvgMetadata({\n svg: contents,\n });\n } catch (error: any) {\n if (error.message === \"INVALID\") {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n } else {\n throw new ImageSceneDataError(\"Error: cannot restore image\");\n }\n }\n }\n }\n return contents;\n};\n\nexport const getMimeType = (blob: Blob | string): string => {\n let name: string;\n if (typeof blob === \"string\") {\n name = blob;\n } else {\n if (blob.type) {\n return blob.type;\n }\n name = blob.name || \"\";\n }\n if (/\\.(excalidraw|json)$/.test(name)) {\n return MIME_TYPES.json;\n } else if (/\\.png$/.test(name)) {\n return MIME_TYPES.png;\n } else if (/\\.jpe?g$/.test(name)) {\n return MIME_TYPES.jpg;\n } else if (/\\.svg$/.test(name)) {\n return MIME_TYPES.svg;\n }\n return \"\";\n};\n\nexport const getFileHandleType = (handle: FileSystemHandle | null) => {\n if (!handle) {\n return null;\n }\n\n return handle.name.match(/\\.(json|excalidraw|png|svg)$/)?.[1] || null;\n};\n\nexport const isImageFileHandleType = (\n type: string | null,\n): type is \"png\" | \"svg\" => {\n return type === \"png\" || type === \"svg\";\n};\n\nexport const isImageFileHandle = (handle: FileSystemHandle | null) => {\n const type = getFileHandleType(handle);\n return type === \"png\" || type === \"svg\";\n};\n\nexport const isSupportedImageFile = (\n blob: Blob | null | undefined,\n): blob is Blob & { type: ValueOf } => {\n const { type } = blob || {};\n return !!type && (Object.values(IMAGE_MIME_TYPES) as string[]).includes(type);\n};\n\nexport const loadSceneOrLibraryFromBlob = async (\n blob: Blob | File,\n /** @see restore.localAppState */\n localAppState: AppState | null,\n localElements: readonly ExcalidrawElement[] | null,\n /** FileSystemHandle. Defaults to `blob.handle` if defined, otherwise null. */\n fileHandle?: FileSystemHandle | null,\n) => {\n const contents = await parseFileContents(blob);\n let data;\n try {\n try {\n data = JSON.parse(contents);\n } catch (error: any) {\n if (isSupportedImageFile(blob)) {\n throw new ImageSceneDataError(\n \"Image doesn't contain scene\",\n \"IMAGE_NOT_CONTAINS_SCENE_DATA\",\n );\n }\n throw error;\n }\n if (isValidExcalidrawData(data)) {\n return {\n type: MIME_TYPES.excalidraw,\n data: restore(\n {\n elements: clearElementsForExport(data.elements || []),\n appState: {\n theme: localAppState?.theme,\n fileHandle: fileHandle || blob.handle || null,\n ...cleanAppStateForExport(data.appState || {}),\n ...(localAppState\n ? calculateScrollCenter(data.elements || [], localAppState)\n : {}),\n },\n files: data.files,\n },\n localAppState,\n localElements,\n { repairBindings: true, refreshDimensions: false },\n ),\n };\n } else if (isValidLibrary(data)) {\n return {\n type: MIME_TYPES.excalidrawlib,\n data,\n };\n }\n throw new Error(\"Error: invalid file\");\n } catch (error: any) {\n if (error instanceof ImageSceneDataError) {\n throw error;\n }\n throw new Error(\"Error: invalid file\");\n }\n};\n\nexport const loadFromBlob = async (\n blob: Blob,\n /** @see restore.localAppState */\n localAppState: AppState | null,\n localElements: readonly ExcalidrawElement[] | null,\n /** FileSystemHandle. Defaults to `blob.handle` if defined, otherwise null. */\n fileHandle?: FileSystemHandle | null,\n) => {\n const ret = await loadSceneOrLibraryFromBlob(\n blob,\n localAppState,\n localElements,\n fileHandle,\n );\n if (ret.type !== MIME_TYPES.excalidraw) {\n throw new Error(\"Error: invalid file\");\n }\n return ret.data;\n};\n\nexport const parseLibraryJSON = (\n json: string,\n defaultStatus: LibraryItem[\"status\"] = \"unpublished\",\n) => {\n const data: ImportedLibraryData | undefined = JSON.parse(json);\n if (!isValidLibrary(data)) {\n throw new Error(\"Invalid library\");\n }\n const libraryItems = data.libraryItems || data.library;\n return restoreLibraryItems(libraryItems, defaultStatus);\n};\n\nexport const loadLibraryFromBlob = async (\n blob: Blob,\n defaultStatus: LibraryItem[\"status\"] = \"unpublished\",\n) => {\n return parseLibraryJSON(await parseFileContents(blob), defaultStatus);\n};\n\nexport const canvasToBlob = async (\n canvas: HTMLCanvasElement | Promise,\n): Promise => {\n return new Promise(async (resolve, reject) => {\n try {\n if (isPromiseLike(canvas)) {\n canvas = await canvas;\n }\n canvas.toBlob((blob) => {\n if (!blob) {\n return reject(\n new CanvasError(\"Error: Canvas too big\", \"CANVAS_POSSIBLY_TOO_BIG\"),\n );\n }\n resolve(blob);\n });\n } catch (error: any) {\n reject(error);\n }\n });\n};\n\n/** generates SHA-1 digest from supplied file (if not supported, falls back\n to a 40-char base64 random id) */\nexport const generateIdFromFile = async (file: File): Promise => {\n try {\n const hashBuffer = await window.crypto.subtle.digest(\n \"SHA-1\",\n await blobToArrayBuffer(file),\n );\n return bytesToHexString(new Uint8Array(hashBuffer)) as FileId;\n } catch (error: any) {\n console.error(error);\n // length 40 to align with the HEX length of SHA-1 (which is 160 bit)\n return nanoid(40) as FileId;\n }\n};\n\nexport const getDataURL = async (file: Blob | File): Promise => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const dataURL = reader.result as DataURL;\n resolve(dataURL);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n};\n\nexport const dataURLToFile = (dataURL: DataURL, filename = \"\") => {\n const dataIndexStart = dataURL.indexOf(\",\");\n const byteString = atob(dataURL.slice(dataIndexStart + 1));\n const mimeType = dataURL.slice(0, dataIndexStart).split(\":\")[1].split(\";\")[0];\n\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new File([ab], filename, { type: mimeType });\n};\n\nexport const resizeImageFile = async (\n file: File,\n opts: {\n /** undefined indicates auto */\n outputType?: typeof MIME_TYPES[\"jpg\"];\n maxWidthOrHeight: number;\n },\n): Promise => {\n // SVG files shouldn't a can't be resized\n if (file.type === MIME_TYPES.svg) {\n return file;\n }\n\n const [pica, imageBlobReduce] = await Promise.all([\n import(\"pica\").then((res) => res.default),\n // a wrapper for pica for better API\n import(\"image-blob-reduce\").then((res) => res.default),\n ]);\n\n // CRA's minification settings break pica in WebWorkers, so let's disable\n // them for now\n // https://github.com/nodeca/image-blob-reduce/issues/21#issuecomment-757365513\n const reduce = imageBlobReduce({\n pica: pica({ features: [\"js\", \"wasm\"] }),\n });\n\n if (opts.outputType) {\n const { outputType } = opts;\n reduce._create_blob = function (env) {\n return this.pica.toBlob(env.out_canvas, outputType, 0.8).then((blob) => {\n env.out_blob = blob;\n return env;\n });\n };\n }\n\n if (!isSupportedImageFile(file)) {\n throw new Error(\"Error: unsupported file type\", { cause: \"UNSUPPORTED\" });\n }\n\n return new File(\n [await reduce.toBlob(file, { max: opts.maxWidthOrHeight })],\n file.name,\n {\n type: opts.outputType || file.type,\n },\n );\n};\n\nexport const SVGStringToFile = (SVGString: string, filename: string = \"\") => {\n return new File([new TextEncoder().encode(SVGString)], filename, {\n type: MIME_TYPES.svg,\n }) as File & { type: typeof MIME_TYPES.svg };\n};\n\nexport const ImageURLToFile = async (\n imageUrl: string,\n filename: string = \"\",\n): Promise => {\n let response;\n try {\n response = await fetch(imageUrl);\n } catch (error: any) {\n throw new Error(\"Error: failed to fetch image\", { cause: \"FETCH_ERROR\" });\n }\n\n if (!response.ok) {\n throw new Error(\"Error: failed to fetch image\", { cause: \"FETCH_ERROR\" });\n }\n\n const blob = await response.blob();\n\n if (blob.type && isSupportedImageFile(blob)) {\n const name = filename || blob.name || \"\";\n return new File([blob], name, { type: blob.type });\n }\n\n throw new Error(\"Error: unsupported file type\", { cause: \"UNSUPPORTED\" });\n};\n\nexport const getFileFromEvent = async (\n event: React.DragEvent,\n) => {\n const file = event.dataTransfer.files.item(0);\n const fileHandle = await getFileHandle(event);\n\n return { file: file ? await normalizeFile(file) : null, fileHandle };\n};\n\nexport const getFileHandle = async (\n event: React.DragEvent,\n): Promise => {\n if (nativeFileSystemSupported) {\n try {\n const item = event.dataTransfer.items[0];\n const handle: FileSystemHandle | null =\n (await (item as any).getAsFileSystemHandle()) || null;\n\n return handle;\n } catch (error: any) {\n console.warn(error.name, error.message);\n return null;\n }\n }\n return null;\n};\n\n/**\n * attempts to detect if a buffer is a valid image by checking its leading bytes\n */\nconst getActualMimeTypeFromImage = (buffer: ArrayBuffer) => {\n let mimeType: ValueOf> | null =\n null;\n\n const first8Bytes = `${[...new Uint8Array(buffer).slice(0, 8)].join(\" \")} `;\n\n // uint8 leading bytes\n const headerBytes = {\n // https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header\n png: \"137 80 78 71 13 10 26 10 \",\n // https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure\n // jpg is a bit wonky. Checking the first three bytes should be enough,\n // but may yield false positives. (https://stackoverflow.com/a/23360709/927631)\n jpg: \"255 216 255 \",\n // https://en.wikipedia.org/wiki/GIF#Example_GIF_file\n gif: \"71 73 70 56 57 97 \",\n };\n\n if (first8Bytes === headerBytes.png) {\n mimeType = MIME_TYPES.png;\n } else if (first8Bytes.startsWith(headerBytes.jpg)) {\n mimeType = MIME_TYPES.jpg;\n } else if (first8Bytes.startsWith(headerBytes.gif)) {\n mimeType = MIME_TYPES.gif;\n }\n return mimeType;\n};\n\nexport const createFile = (\n blob: File | Blob | ArrayBuffer,\n mimeType: ValueOf,\n name: string | undefined,\n) => {\n return new File([blob], name || \"\", {\n type: mimeType,\n });\n};\n\n/** attempts to detect correct mimeType if none is set, or if an image\n * has an incorrect extension.\n * Note: doesn't handle missing .excalidraw/.excalidrawlib extension */\nexport const normalizeFile = async (file: File) => {\n if (!file.type) {\n if (file?.name?.endsWith(\".excalidrawlib\")) {\n file = createFile(\n await blobToArrayBuffer(file),\n MIME_TYPES.excalidrawlib,\n file.name,\n );\n } else if (file?.name?.endsWith(\".excalidraw\")) {\n file = createFile(\n await blobToArrayBuffer(file),\n MIME_TYPES.excalidraw,\n file.name,\n );\n } else {\n const buffer = await blobToArrayBuffer(file);\n const mimeType = getActualMimeTypeFromImage(buffer);\n if (mimeType) {\n file = createFile(buffer, mimeType, file.name);\n }\n }\n // when the file is an image, make sure the extension corresponds to the\n // actual mimeType (this is an edge case, but happens sometime)\n } else if (isSupportedImageFile(file)) {\n const buffer = await blobToArrayBuffer(file);\n const mimeType = getActualMimeTypeFromImage(buffer);\n if (mimeType && mimeType !== file.type) {\n file = createFile(buffer, mimeType, file.name);\n }\n }\n\n return file;\n};\n\nexport const blobToArrayBuffer = (blob: Blob): Promise => {\n if (\"arrayBuffer\" in blob) {\n return blob.arrayBuffer();\n }\n // Safari\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n if (!event.target?.result) {\n return reject(new Error(\"Couldn't convert blob to ArrayBuffer\"));\n }\n resolve(event.target.result as ArrayBuffer);\n };\n reader.readAsArrayBuffer(blob);\n });\n};\n","import { fileOpen, fileSave } from \"./filesystem\";\nimport { cleanAppStateForExport, clearAppStateForDatabase } from \"../appState\";\nimport {\n DEFAULT_FILENAME,\n EXPORT_DATA_TYPES,\n EXPORT_SOURCE,\n MIME_TYPES,\n VERSIONS,\n} from \"../constants\";\nimport { clearElementsForDatabase, clearElementsForExport } from \"../element\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { AppState, BinaryFiles, LibraryItems } from \"../types\";\nimport { isImageFileHandle, loadFromBlob, normalizeFile } from \"./blob\";\n\nimport {\n ExportedDataState,\n ImportedDataState,\n ExportedLibraryData,\n ImportedLibraryData,\n} from \"./types\";\n\n/**\n * Strips out files which are only referenced by deleted elements\n */\nconst filterOutDeletedFiles = (\n elements: readonly ExcalidrawElement[],\n files: BinaryFiles,\n) => {\n const nextFiles: BinaryFiles = {};\n for (const element of elements) {\n if (\n !element.isDeleted &&\n \"fileId\" in element &&\n element.fileId &&\n files[element.fileId]\n ) {\n nextFiles[element.fileId] = files[element.fileId];\n }\n }\n return nextFiles;\n};\n\nexport const serializeAsJSON = (\n elements: readonly ExcalidrawElement[],\n appState: Partial,\n files: BinaryFiles,\n type: \"local\" | \"database\",\n): string => {\n const data: ExportedDataState = {\n type: EXPORT_DATA_TYPES.excalidraw,\n version: VERSIONS.excalidraw,\n source: EXPORT_SOURCE,\n elements:\n type === \"local\"\n ? clearElementsForExport(elements)\n : clearElementsForDatabase(elements),\n appState:\n type === \"local\"\n ? cleanAppStateForExport(appState)\n : clearAppStateForDatabase(appState),\n files:\n type === \"local\"\n ? filterOutDeletedFiles(elements, files)\n : // will be stripped from JSON\n undefined,\n };\n\n return JSON.stringify(data, null, 2);\n};\n\nexport const saveAsJSON = async (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n /** filename */\n name: string = appState.name || DEFAULT_FILENAME,\n) => {\n const serialized = serializeAsJSON(elements, appState, files, \"local\");\n const blob = new Blob([serialized], {\n type: MIME_TYPES.excalidraw,\n });\n\n const fileHandle = await fileSave(blob, {\n name,\n extension: \"excalidraw\",\n description: \"Excalidraw file\",\n fileHandle: isImageFileHandle(appState.fileHandle)\n ? null\n : appState.fileHandle,\n });\n return { fileHandle };\n};\n\nexport const loadFromJSON = async (\n localAppState: AppState,\n localElements: readonly ExcalidrawElement[] | null,\n) => {\n const file = await fileOpen({\n description: \"Excalidraw files\",\n // ToDo: Be over-permissive until https://bugs.webkit.org/show_bug.cgi?id=34442\n // gets resolved. Else, iOS users cannot open `.excalidraw` files.\n // extensions: [\"json\", \"excalidraw\", \"png\", \"svg\"],\n });\n return loadFromBlob(\n await normalizeFile(file),\n localAppState,\n localElements,\n file.handle,\n );\n};\n\nexport const isValidExcalidrawData = (data?: {\n type?: any;\n elements?: any;\n appState?: any;\n}): data is ImportedDataState => {\n return (\n data?.type === EXPORT_DATA_TYPES.excalidraw &&\n (!data.elements ||\n (Array.isArray(data.elements) &&\n (!data.appState || typeof data.appState === \"object\")))\n );\n};\n\nexport const isValidLibrary = (json: any): json is ImportedLibraryData => {\n return (\n typeof json === \"object\" &&\n json &&\n json.type === EXPORT_DATA_TYPES.excalidrawLibrary &&\n (json.version === 1 || json.version === 2)\n );\n};\n\nexport const serializeLibraryAsJSON = (libraryItems: LibraryItems) => {\n const data: ExportedLibraryData = {\n type: EXPORT_DATA_TYPES.excalidrawLibrary,\n version: VERSIONS.excalidrawLibrary,\n source: EXPORT_SOURCE,\n libraryItems,\n };\n return JSON.stringify(data, null, 2);\n};\n\nexport const saveLibraryAsJSON = async (libraryItems: LibraryItems) => {\n const serialized = serializeLibraryAsJSON(libraryItems);\n await fileSave(\n new Blob([serialized], {\n type: MIME_TYPES.excalidrawlib,\n }),\n {\n name: \"library\",\n extension: \"excalidrawlib\",\n description: \"Excalidraw library file\",\n },\n );\n};\n","// -----------------------------------------------------------------------------\n// ExcalidrawImageElement & related helpers\n// -----------------------------------------------------------------------------\n\nimport { MIME_TYPES, SVG_NS } from \"../constants\";\nimport { AppClassProperties, DataURL, BinaryFiles } from \"../types\";\nimport { isInitializedImageElement } from \"./typeChecks\";\nimport {\n ExcalidrawElement,\n FileId,\n InitializedExcalidrawImageElement,\n} from \"./types\";\n\nexport const loadHTMLImageElement = (dataURL: DataURL) => {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => {\n resolve(image);\n };\n image.onerror = (error) => {\n reject(error);\n };\n image.src = dataURL;\n });\n};\n\n/** NOTE: updates cache even if already populated with given image. Thus,\n * you should filter out the images upstream if you want to optimize this. */\nexport const updateImageCache = async ({\n fileIds,\n files,\n imageCache,\n}: {\n fileIds: FileId[];\n files: BinaryFiles;\n imageCache: AppClassProperties[\"imageCache\"];\n}) => {\n const updatedFiles = new Map();\n const erroredFiles = new Map();\n\n await Promise.all(\n fileIds.reduce((promises, fileId) => {\n const fileData = files[fileId as string];\n if (fileData && !updatedFiles.has(fileId)) {\n updatedFiles.set(fileId, true);\n return promises.concat(\n (async () => {\n try {\n if (fileData.mimeType === MIME_TYPES.binary) {\n throw new Error(\"Only images can be added to ImageCache\");\n }\n\n const imagePromise = loadHTMLImageElement(fileData.dataURL);\n const data = {\n image: imagePromise,\n mimeType: fileData.mimeType,\n } as const;\n // store the promise immediately to indicate there's an in-progress\n // initialization\n imageCache.set(fileId, data);\n\n const image = await imagePromise;\n\n imageCache.set(fileId, { ...data, image });\n } catch (error: any) {\n erroredFiles.set(fileId, true);\n }\n })(),\n );\n }\n return promises;\n }, [] as Promise[]),\n );\n\n return {\n imageCache,\n /** includes errored files because they cache was updated nonetheless */\n updatedFiles,\n /** files that failed when creating HTMLImageElement */\n erroredFiles,\n };\n};\n\nexport const getInitializedImageElements = (\n elements: readonly ExcalidrawElement[],\n) =>\n elements.filter((element) =>\n isInitializedImageElement(element),\n ) as InitializedExcalidrawImageElement[];\n\nexport const isHTMLSVGElement = (node: Node | null): node is SVGElement => {\n // lower-casing due to XML/HTML convention differences\n // https://johnresig.com/blog/nodename-case-sensitivity\n return node?.nodeName.toLowerCase() === \"svg\";\n};\n\nexport const normalizeSVG = async (SVGString: string) => {\n const doc = new DOMParser().parseFromString(SVGString, MIME_TYPES.svg);\n const svg = doc.querySelector(\"svg\");\n const errorNode = doc.querySelector(\"parsererror\");\n if (errorNode || !isHTMLSVGElement(svg)) {\n throw new Error(\"Invalid SVG\");\n } else {\n if (!svg.hasAttribute(\"xmlns\")) {\n svg.setAttribute(\"xmlns\", SVG_NS);\n }\n\n if (!svg.hasAttribute(\"width\") || !svg.hasAttribute(\"height\")) {\n const viewBox = svg.getAttribute(\"viewBox\");\n let width = svg.getAttribute(\"width\") || \"50\";\n let height = svg.getAttribute(\"height\") || \"50\";\n if (viewBox) {\n const match = viewBox.match(/\\d+ +\\d+ +(\\d+) +(\\d+)/);\n if (match) {\n [, width, height] = match;\n }\n }\n svg.setAttribute(\"width\", width);\n svg.setAttribute(\"height\", height);\n }\n\n return svg.outerHTML;\n }\n};\n","import { MIME_TYPES } from \"../../constants\";\nimport { Bounds, getElementAbsoluteCoords } from \"../../element/bounds\";\nimport { isPointHittingElementBoundingBox } from \"../../element/collision\";\nimport { ElementsMap, NonDeletedExcalidrawElement } from \"../../element/types\";\nimport { rotate } from \"../../math\";\nimport { DEFAULT_LINK_SIZE } from \"../../renderer/renderElement\";\nimport { AppState, Point, UIAppState } from \"../../types\";\n\nexport const EXTERNAL_LINK_IMG = document.createElement(\"img\");\nEXTERNAL_LINK_IMG.src = `data:${MIME_TYPES.svg}, ${encodeURIComponent(\n ``,\n)}`;\n\nexport const getLinkHandleFromCoords = (\n [x1, y1, x2, y2]: Bounds,\n angle: number,\n appState: Pick,\n): Bounds => {\n const size = DEFAULT_LINK_SIZE;\n const linkWidth = size / appState.zoom.value;\n const linkHeight = size / appState.zoom.value;\n const linkMarginY = size / appState.zoom.value;\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n const centeringOffset = (size - 8) / (2 * appState.zoom.value);\n const dashedLineMargin = 4 / appState.zoom.value;\n\n // Same as `ne` resize handle\n const x = x2 + dashedLineMargin - centeringOffset;\n const y = y1 - dashedLineMargin - linkMarginY + centeringOffset;\n\n const [rotatedX, rotatedY] = rotate(\n x + linkWidth / 2,\n y + linkHeight / 2,\n centerX,\n centerY,\n angle,\n );\n return [\n rotatedX - linkWidth / 2,\n rotatedY - linkHeight / 2,\n linkWidth,\n linkHeight,\n ];\n};\n\nexport const isPointHittingLinkIcon = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n appState: AppState,\n [x, y]: Point,\n) => {\n const threshold = 4 / appState.zoom.value;\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const [linkX, linkY, linkWidth, linkHeight] = getLinkHandleFromCoords(\n [x1, y1, x2, y2],\n element.angle,\n appState,\n );\n const hitLink =\n x > linkX - threshold &&\n x < linkX + threshold + linkWidth &&\n y > linkY - threshold &&\n y < linkY + linkHeight + threshold;\n return hitLink;\n};\n\nexport const isPointHittingLink = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n appState: AppState,\n [x, y]: Point,\n isMobile: boolean,\n) => {\n if (!element.link || appState.selectedElementIds[element.id]) {\n return false;\n }\n const threshold = 4 / appState.zoom.value;\n if (\n !isMobile &&\n appState.viewModeEnabled &&\n isPointHittingElementBoundingBox(\n element,\n elementsMap,\n [x, y],\n threshold,\n null,\n )\n ) {\n return true;\n }\n return isPointHittingLinkIcon(element, elementsMap, appState, [x, y]);\n};\n","import { StaticCanvasAppState, AppState } from \"../types\";\n\nimport { StaticCanvasRenderConfig } from \"../scene/types\";\n\nimport { THEME_FILTER } from \"../constants\";\n\nexport const fillCircle = (\n context: CanvasRenderingContext2D,\n cx: number,\n cy: number,\n radius: number,\n stroke = true,\n) => {\n context.beginPath();\n context.arc(cx, cy, radius, 0, Math.PI * 2);\n context.fill();\n if (stroke) {\n context.stroke();\n }\n};\n\nexport const getNormalizedCanvasDimensions = (\n canvas: HTMLCanvasElement,\n scale: number,\n): [number, number] => {\n // When doing calculations based on canvas width we should used normalized one\n return [canvas.width / scale, canvas.height / scale];\n};\n\nexport const bootstrapCanvas = ({\n canvas,\n scale,\n normalizedWidth,\n normalizedHeight,\n theme,\n isExporting,\n viewBackgroundColor,\n}: {\n canvas: HTMLCanvasElement;\n scale: number;\n normalizedWidth: number;\n normalizedHeight: number;\n theme?: AppState[\"theme\"];\n isExporting?: StaticCanvasRenderConfig[\"isExporting\"];\n viewBackgroundColor?: StaticCanvasAppState[\"viewBackgroundColor\"];\n}): CanvasRenderingContext2D => {\n const context = canvas.getContext(\"2d\")!;\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.scale(scale, scale);\n\n if (isExporting && theme === \"dark\") {\n context.filter = THEME_FILTER;\n }\n\n // Paint background\n if (typeof viewBackgroundColor === \"string\") {\n const hasTransparence =\n viewBackgroundColor === \"transparent\" ||\n viewBackgroundColor.length === 5 || // #RGBA\n viewBackgroundColor.length === 9 || // #RRGGBBA\n /(hsla|rgba)\\(/.test(viewBackgroundColor);\n if (hasTransparence) {\n context.clearRect(0, 0, normalizedWidth, normalizedHeight);\n }\n context.save();\n context.fillStyle = viewBackgroundColor;\n context.fillRect(0, 0, normalizedWidth, normalizedHeight);\n context.restore();\n } else {\n context.clearRect(0, 0, normalizedWidth, normalizedHeight);\n }\n\n return context;\n};\n","import { FRAME_STYLE } from \"../constants\";\nimport { getElementAbsoluteCoords } from \"../element\";\n\nimport {\n elementOverlapsWithFrame,\n getTargetFrame,\n isElementInFrame,\n} from \"../frame\";\nimport {\n isEmbeddableElement,\n isIframeLikeElement,\n} from \"../element/typeChecks\";\nimport { renderElement } from \"../renderer/renderElement\";\nimport { createPlaceholderEmbeddableLabel } from \"../element/embeddable\";\nimport { StaticCanvasAppState, Zoom } from \"../types\";\nimport {\n ElementsMap,\n ExcalidrawFrameLikeElement,\n NonDeletedExcalidrawElement,\n} from \"../element/types\";\nimport {\n StaticCanvasRenderConfig,\n StaticSceneRenderConfig,\n} from \"../scene/types\";\nimport {\n EXTERNAL_LINK_IMG,\n getLinkHandleFromCoords,\n} from \"../components/hyperlink/helpers\";\nimport { bootstrapCanvas, getNormalizedCanvasDimensions } from \"./helpers\";\nimport { throttleRAF } from \"../utils\";\n\nconst strokeGrid = (\n context: CanvasRenderingContext2D,\n gridSize: number,\n scrollX: number,\n scrollY: number,\n zoom: Zoom,\n width: number,\n height: number,\n) => {\n const BOLD_LINE_FREQUENCY = 5;\n\n enum GridLineColor {\n Bold = \"#cccccc\",\n Regular = \"#e5e5e5\",\n }\n\n const offsetX =\n -Math.round(zoom.value / gridSize) * gridSize + (scrollX % gridSize);\n const offsetY =\n -Math.round(zoom.value / gridSize) * gridSize + (scrollY % gridSize);\n\n const lineWidth = Math.min(1 / zoom.value, 1);\n\n const spaceWidth = 1 / zoom.value;\n const lineDash = [lineWidth * 3, spaceWidth + (lineWidth + spaceWidth)];\n\n context.save();\n context.lineWidth = lineWidth;\n\n for (let x = offsetX; x < offsetX + width + gridSize * 2; x += gridSize) {\n const isBold =\n Math.round(x - scrollX) % (BOLD_LINE_FREQUENCY * gridSize) === 0;\n context.beginPath();\n context.setLineDash(isBold ? [] : lineDash);\n context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;\n context.moveTo(x, offsetY - gridSize);\n context.lineTo(x, offsetY + height + gridSize * 2);\n context.stroke();\n }\n for (let y = offsetY; y < offsetY + height + gridSize * 2; y += gridSize) {\n const isBold =\n Math.round(y - scrollY) % (BOLD_LINE_FREQUENCY * gridSize) === 0;\n context.beginPath();\n context.setLineDash(isBold ? [] : lineDash);\n context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;\n context.moveTo(offsetX - gridSize, y);\n context.lineTo(offsetX + width + gridSize * 2, y);\n context.stroke();\n }\n context.restore();\n};\n\nconst frameClip = (\n frame: ExcalidrawFrameLikeElement,\n context: CanvasRenderingContext2D,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n context.translate(frame.x + appState.scrollX, frame.y + appState.scrollY);\n context.beginPath();\n if (context.roundRect) {\n context.roundRect(\n 0,\n 0,\n frame.width,\n frame.height,\n FRAME_STYLE.radius / appState.zoom.value,\n );\n } else {\n context.rect(0, 0, frame.width, frame.height);\n }\n context.clip();\n context.translate(\n -(frame.x + appState.scrollX),\n -(frame.y + appState.scrollY),\n );\n};\n\nlet linkCanvasCache: any;\nconst renderLinkIcon = (\n element: NonDeletedExcalidrawElement,\n context: CanvasRenderingContext2D,\n appState: StaticCanvasAppState,\n elementsMap: ElementsMap,\n) => {\n if (element.link && !appState.selectedElementIds[element.id]) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const [x, y, width, height] = getLinkHandleFromCoords(\n [x1, y1, x2, y2],\n element.angle,\n appState,\n );\n const centerX = x + width / 2;\n const centerY = y + height / 2;\n context.save();\n context.translate(appState.scrollX + centerX, appState.scrollY + centerY);\n context.rotate(element.angle);\n\n if (!linkCanvasCache || linkCanvasCache.zoom !== appState.zoom.value) {\n linkCanvasCache = document.createElement(\"canvas\");\n linkCanvasCache.zoom = appState.zoom.value;\n linkCanvasCache.width =\n width * window.devicePixelRatio * appState.zoom.value;\n linkCanvasCache.height =\n height * window.devicePixelRatio * appState.zoom.value;\n const linkCanvasCacheContext = linkCanvasCache.getContext(\"2d\")!;\n linkCanvasCacheContext.scale(\n window.devicePixelRatio * appState.zoom.value,\n window.devicePixelRatio * appState.zoom.value,\n );\n linkCanvasCacheContext.fillStyle = \"#fff\";\n linkCanvasCacheContext.fillRect(0, 0, width, height);\n linkCanvasCacheContext.drawImage(EXTERNAL_LINK_IMG, 0, 0, width, height);\n linkCanvasCacheContext.restore();\n context.drawImage(\n linkCanvasCache,\n x - centerX,\n y - centerY,\n width,\n height,\n );\n } else {\n context.drawImage(\n linkCanvasCache,\n x - centerX,\n y - centerY,\n width,\n height,\n );\n }\n context.restore();\n }\n};\nconst _renderStaticScene = ({\n canvas,\n rc,\n elementsMap,\n allElementsMap,\n visibleElements,\n scale,\n appState,\n renderConfig,\n}: StaticSceneRenderConfig) => {\n if (canvas === null) {\n return;\n }\n\n const { renderGrid = true, isExporting } = renderConfig;\n\n const [normalizedWidth, normalizedHeight] = getNormalizedCanvasDimensions(\n canvas,\n scale,\n );\n\n const context = bootstrapCanvas({\n canvas,\n scale,\n normalizedWidth,\n normalizedHeight,\n theme: appState.theme,\n isExporting,\n viewBackgroundColor: appState.viewBackgroundColor,\n });\n\n // Apply zoom\n context.scale(appState.zoom.value, appState.zoom.value);\n\n // Grid\n if (renderGrid && appState.gridSize) {\n strokeGrid(\n context,\n appState.gridSize,\n appState.scrollX,\n appState.scrollY,\n appState.zoom,\n normalizedWidth / appState.zoom.value,\n normalizedHeight / appState.zoom.value,\n );\n }\n\n const groupsToBeAddedToFrame = new Set();\n\n visibleElements.forEach((element) => {\n if (\n element.groupIds.length > 0 &&\n appState.frameToHighlight &&\n appState.selectedElementIds[element.id] &&\n (elementOverlapsWithFrame(\n element,\n appState.frameToHighlight,\n elementsMap,\n ) ||\n element.groupIds.find((groupId) => groupsToBeAddedToFrame.has(groupId)))\n ) {\n element.groupIds.forEach((groupId) =>\n groupsToBeAddedToFrame.add(groupId),\n );\n }\n });\n\n // Paint visible elements\n visibleElements\n .filter((el) => !isIframeLikeElement(el))\n .forEach((element) => {\n try {\n const frameId = element.frameId || appState.frameToHighlight?.id;\n\n if (\n frameId &&\n appState.frameRendering.enabled &&\n appState.frameRendering.clip\n ) {\n context.save();\n\n const frame = getTargetFrame(element, elementsMap, appState);\n\n // TODO do we need to check isElementInFrame here?\n if (frame && isElementInFrame(element, elementsMap, appState)) {\n frameClip(frame, context, renderConfig, appState);\n }\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n context.restore();\n } else {\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n }\n if (!isExporting) {\n renderLinkIcon(element, context, appState, elementsMap);\n }\n } catch (error: any) {\n console.error(error);\n }\n });\n\n // render embeddables on top\n visibleElements\n .filter((el) => isIframeLikeElement(el))\n .forEach((element) => {\n try {\n const render = () => {\n renderElement(\n element,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n\n if (\n isIframeLikeElement(element) &&\n (isExporting ||\n (isEmbeddableElement(element) &&\n renderConfig.embedsValidationStatus.get(element.id) !==\n true)) &&\n element.width &&\n element.height\n ) {\n const label = createPlaceholderEmbeddableLabel(element);\n renderElement(\n label,\n elementsMap,\n allElementsMap,\n rc,\n context,\n renderConfig,\n appState,\n );\n }\n if (!isExporting) {\n renderLinkIcon(element, context, appState, elementsMap);\n }\n };\n // - when exporting the whole canvas, we DO NOT apply clipping\n // - when we are exporting a particular frame, apply clipping\n // if the containing frame is not selected, apply clipping\n const frameId = element.frameId || appState.frameToHighlight?.id;\n\n if (\n frameId &&\n appState.frameRendering.enabled &&\n appState.frameRendering.clip\n ) {\n context.save();\n\n const frame = getTargetFrame(element, elementsMap, appState);\n\n if (frame && isElementInFrame(element, elementsMap, appState)) {\n frameClip(frame, context, renderConfig, appState);\n }\n render();\n context.restore();\n } else {\n render();\n }\n } catch (error: any) {\n console.error(error);\n }\n });\n};\n\n/** throttled to animation framerate */\nexport const renderStaticSceneThrottled = throttleRAF(\n (config: StaticSceneRenderConfig) => {\n _renderStaticScene(config);\n },\n { trailing: true },\n);\n\n/**\n * Static scene is the non-ui canvas where we render elements.\n */\nexport const renderStaticScene = (\n renderConfig: StaticSceneRenderConfig,\n throttle?: boolean,\n) => {\n if (throttle) {\n renderStaticSceneThrottled(renderConfig);\n return;\n }\n\n _renderStaticScene(renderConfig);\n};\n","import rough from \"roughjs/bin/rough\";\nimport {\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n ExcalidrawTextElement,\n NonDeletedExcalidrawElement,\n NonDeletedSceneElementsMap,\n} from \"../element/types\";\nimport {\n Bounds,\n getCommonBounds,\n getElementAbsoluteCoords,\n} from \"../element/bounds\";\nimport { renderSceneToSvg } from \"../renderer/staticSvgScene\";\nimport { arrayToMap, distance, getFontString, toBrandedType } from \"../utils\";\nimport { AppState, BinaryFiles } from \"../types\";\nimport {\n DEFAULT_EXPORT_PADDING,\n FONT_FAMILY,\n FRAME_STYLE,\n SVG_NS,\n THEME_FILTER,\n} from \"../constants\";\nimport { getDefaultAppState } from \"../appState\";\nimport { serializeAsJSON } from \"../data/json\";\nimport {\n getInitializedImageElements,\n updateImageCache,\n} from \"../element/image\";\nimport {\n getElementsOverlappingFrame,\n getFrameLikeElements,\n getFrameLikeTitle,\n getRootElements,\n} from \"../frame\";\nimport { newTextElement } from \"../element\";\nimport { Mutable } from \"../utility-types\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport { isFrameElement, isFrameLikeElement } from \"../element/typeChecks\";\nimport { RenderableElementsMap } from \"./types\";\nimport { renderStaticScene } from \"../renderer/staticScene\";\n\nconst SVG_EXPORT_TAG = ``;\n\nconst truncateText = (element: ExcalidrawTextElement, maxWidth: number) => {\n if (element.width <= maxWidth) {\n return element;\n }\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\")!;\n ctx.font = getFontString({\n fontFamily: element.fontFamily,\n fontSize: element.fontSize,\n });\n\n let text = element.text;\n\n const metrics = ctx.measureText(text);\n\n if (metrics.width > maxWidth) {\n // we iterate from the right, removing characters one by one instead\n // of bulding the string up. This assumes that it's more likely\n // your frame names will overflow by not that many characters\n // (if ever), so it sohuld be faster this way.\n for (let i = text.length; i > 0; i--) {\n const newText = `${text.slice(0, i)}...`;\n if (ctx.measureText(newText).width <= maxWidth) {\n text = newText;\n break;\n }\n }\n }\n return newElementWith(element, { text, width: maxWidth });\n};\n\n/**\n * When exporting frames, we need to render frame labels which are currently\n * being rendered in DOM when editing. Adding the labels as regular text\n * elements seems like a simple hack. In the future we'll want to move to\n * proper canvas rendering, even within editor (instead of DOM).\n */\nconst addFrameLabelsAsTextElements = (\n elements: readonly NonDeletedExcalidrawElement[],\n opts: Pick,\n) => {\n const nextElements: NonDeletedExcalidrawElement[] = [];\n let frameIndex = 0;\n let magicFrameIndex = 0;\n for (const element of elements) {\n if (isFrameLikeElement(element)) {\n if (isFrameElement(element)) {\n frameIndex++;\n } else {\n magicFrameIndex++;\n }\n let textElement: Mutable = newTextElement({\n x: element.x,\n y: element.y - FRAME_STYLE.nameOffsetY,\n fontFamily: FONT_FAMILY.Assistant,\n fontSize: FRAME_STYLE.nameFontSize,\n lineHeight:\n FRAME_STYLE.nameLineHeight as ExcalidrawTextElement[\"lineHeight\"],\n strokeColor: opts.exportWithDarkMode\n ? FRAME_STYLE.nameColorDarkTheme\n : FRAME_STYLE.nameColorLightTheme,\n text: getFrameLikeTitle(\n element,\n isFrameElement(element) ? frameIndex : magicFrameIndex,\n ),\n });\n textElement.y -= textElement.height;\n\n textElement = truncateText(textElement, element.width);\n\n nextElements.push(textElement);\n }\n nextElements.push(element);\n }\n\n return nextElements;\n};\n\nconst getFrameRenderingConfig = (\n exportingFrame: ExcalidrawFrameLikeElement | null,\n frameRendering: AppState[\"frameRendering\"] | null,\n): AppState[\"frameRendering\"] => {\n frameRendering = frameRendering || getDefaultAppState().frameRendering;\n return {\n enabled: exportingFrame ? true : frameRendering.enabled,\n outline: exportingFrame ? false : frameRendering.outline,\n name: exportingFrame ? false : frameRendering.name,\n clip: exportingFrame ? true : frameRendering.clip,\n };\n};\n\nconst prepareElementsForRender = ({\n elements,\n exportingFrame,\n frameRendering,\n exportWithDarkMode,\n}: {\n elements: readonly ExcalidrawElement[];\n exportingFrame: ExcalidrawFrameLikeElement | null | undefined;\n frameRendering: AppState[\"frameRendering\"];\n exportWithDarkMode: AppState[\"exportWithDarkMode\"];\n}) => {\n let nextElements: readonly ExcalidrawElement[];\n\n if (exportingFrame) {\n nextElements = getElementsOverlappingFrame(elements, exportingFrame);\n } else if (frameRendering.enabled && frameRendering.name) {\n nextElements = addFrameLabelsAsTextElements(elements, {\n exportWithDarkMode,\n });\n } else {\n nextElements = elements;\n }\n\n return nextElements;\n};\n\nexport const exportToCanvas = async (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n {\n exportBackground,\n exportPadding = DEFAULT_EXPORT_PADDING,\n viewBackgroundColor,\n exportingFrame,\n }: {\n exportBackground: boolean;\n exportPadding?: number;\n viewBackgroundColor: string;\n exportingFrame?: ExcalidrawFrameLikeElement | null;\n },\n createCanvas: (\n width: number,\n height: number,\n ) => { canvas: HTMLCanvasElement; scale: number } = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n },\n) => {\n const frameRendering = getFrameRenderingConfig(\n exportingFrame ?? null,\n appState.frameRendering ?? null,\n );\n\n const elementsForRender = prepareElementsForRender({\n elements,\n exportingFrame,\n exportWithDarkMode: appState.exportWithDarkMode,\n frameRendering,\n });\n\n if (exportingFrame) {\n exportPadding = 0;\n }\n\n const [minX, minY, width, height] = getCanvasSize(\n exportingFrame ? [exportingFrame] : getRootElements(elementsForRender),\n exportPadding,\n );\n\n const { canvas, scale = 1 } = createCanvas(width, height);\n\n const defaultAppState = getDefaultAppState();\n\n const { imageCache } = await updateImageCache({\n imageCache: new Map(),\n fileIds: getInitializedImageElements(elementsForRender).map(\n (element) => element.fileId,\n ),\n files,\n });\n\n renderStaticScene({\n canvas,\n rc: rough.canvas(canvas),\n elementsMap: toBrandedType(\n arrayToMap(elementsForRender),\n ),\n allElementsMap: toBrandedType(\n arrayToMap(elements),\n ),\n visibleElements: elementsForRender,\n scale,\n appState: {\n ...appState,\n frameRendering,\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n shouldCacheIgnoreZoom: false,\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n },\n renderConfig: {\n canvasBackgroundColor: viewBackgroundColor,\n imageCache,\n renderGrid: false,\n isExporting: true,\n // empty disables embeddable rendering\n embedsValidationStatus: new Map(),\n elementsPendingErasure: new Set(),\n },\n });\n\n return canvas;\n};\n\nexport const exportToSvg = async (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: {\n exportBackground: boolean;\n exportPadding?: number;\n exportScale?: number;\n viewBackgroundColor: string;\n exportWithDarkMode?: boolean;\n exportEmbedScene?: boolean;\n frameRendering?: AppState[\"frameRendering\"];\n },\n files: BinaryFiles | null,\n opts?: {\n /**\n * if true, all embeddables passed in will be rendered when possible.\n */\n renderEmbeddables?: boolean;\n exportingFrame?: ExcalidrawFrameLikeElement | null;\n },\n): Promise => {\n const frameRendering = getFrameRenderingConfig(\n opts?.exportingFrame ?? null,\n appState.frameRendering ?? null,\n );\n\n let {\n exportPadding = DEFAULT_EXPORT_PADDING,\n exportWithDarkMode = false,\n viewBackgroundColor,\n exportScale = 1,\n exportEmbedScene,\n } = appState;\n\n const { exportingFrame = null } = opts || {};\n\n const elementsForRender = prepareElementsForRender({\n elements,\n exportingFrame,\n exportWithDarkMode,\n frameRendering,\n });\n\n if (exportingFrame) {\n exportPadding = 0;\n }\n\n let metadata = \"\";\n\n // we need to serialize the \"original\" elements before we put them through\n // the tempScene hack which duplicates and regenerates ids\n if (exportEmbedScene) {\n try {\n metadata = await (\n await import(\"../data/image\")\n ).encodeSvgMetadata({\n // when embedding scene, we want to embed the origionally supplied\n // elements which don't contain the temp frame labels.\n // But it also requires that the exportToSvg is being supplied with\n // only the elements that we're exporting, and no extra.\n text: serializeAsJSON(elements, appState, files || {}, \"local\"),\n });\n } catch (error: any) {\n console.error(error);\n }\n }\n\n const [minX, minY, width, height] = getCanvasSize(\n exportingFrame ? [exportingFrame] : getRootElements(elementsForRender),\n exportPadding,\n );\n\n // initialize SVG root\n const svgRoot = document.createElementNS(SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", THEME_FILTER);\n }\n\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (import.meta.env.VITE_IS_EXCALIDRAW_NPM_PACKAGE) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${import.meta.env.VITE_PKG_NAME}@${\n import.meta.env.PKG_VERSION\n }`;\n\n if (assetPath?.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n\n const offsetX = -minX + exportPadding;\n const offsetY = -minY + exportPadding;\n\n const frameElements = getFrameLikeElements(elements);\n\n let exportingFrameClipPath = \"\";\n const elementsMap = arrayToMap(elements);\n for (const frame of frameElements) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(frame, elementsMap);\n const cx = (x2 - x1) / 2 - (frame.x - x1);\n const cy = (y2 - y1) / 2 - (frame.y - y1);\n\n exportingFrameClipPath += `\n \n \n `;\n }\n\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n \n \n ${exportingFrameClipPath}\n \n `;\n\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument!.createElementNS(SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n\n const rsvg = rough.svg(svgRoot);\n\n const renderEmbeddables = opts?.renderEmbeddables ?? false;\n\n renderSceneToSvg(\n elementsForRender,\n toBrandedType(arrayToMap(elementsForRender)),\n rsvg,\n svgRoot,\n files || {},\n {\n offsetX,\n offsetY,\n isExporting: true,\n exportWithDarkMode,\n renderEmbeddables,\n frameRendering,\n canvasBackgroundColor: viewBackgroundColor,\n embedsValidationStatus: renderEmbeddables\n ? new Map(\n elementsForRender\n .filter((element) => isFrameLikeElement(element))\n .map((element) => [element.id, true]),\n )\n : new Map(),\n },\n );\n\n return svgRoot;\n};\n\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (\n elements: readonly NonDeletedExcalidrawElement[],\n exportPadding: number,\n): Bounds => {\n const [minX, minY, maxX, maxY] = getCommonBounds(elements);\n const width = distance(minX, maxX) + exportPadding * 2;\n const height = distance(minY, maxY) + exportPadding * 2;\n\n return [minX, minY, width, height];\n};\n\nexport const getExportSize = (\n elements: readonly NonDeletedExcalidrawElement[],\n exportPadding: number,\n scale: number,\n): [number, number] => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map(\n (dimension) => Math.trunc(dimension * scale),\n );\n\n return [width, height];\n};\n","/* crc32.js (C) 2014-2015 SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\nvar CRC32;\n(function (factory) {\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t factory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n}(function(CRC32) {\nCRC32.version = '0.3.0';\n/* see perf/crc32table.js */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar table = signed_crc_table();\n/* charCodeAt is the best approach for binary strings */\nvar use_buffer = typeof Buffer !== 'undefined';\nfunction crc32_bstr(bstr) {\n\tif(bstr.length > 32768) if(use_buffer) return crc32_buf_8(new Buffer(bstr));\n\tvar crc = -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tcrc = table[(crc ^ bstr.charCodeAt(i++)) & 0xFF] ^ (crc >>> 8);\n\t\tcrc = table[(crc ^ bstr.charCodeAt(i++)) & 0xFF] ^ (crc >>> 8);\n\t}\n\tif(i === L) crc = (crc >>> 8) ^ table[(crc ^ bstr.charCodeAt(i)) & 0xFF];\n\treturn crc ^ -1;\n}\n\nfunction crc32_buf(buf) {\n\tif(buf.length > 10000) return crc32_buf_8(buf);\n\tfor(var crc = -1, i = 0, L=buf.length-3; i < L;) {\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\treturn crc ^ -1;\n}\n\nfunction crc32_buf_8(buf) {\n\tfor(var crc = -1, i = 0, L=buf.length-7; i < L;) {\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t\tcrc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF];\n\treturn crc ^ -1;\n}\n\n/* much much faster to intertwine utf8 and crc */\nfunction crc32_str(str) {\n\tfor(var crc = -1, i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ c) & 0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (192|((c>>6)&31))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|(c&63))) & 0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++) & 1023;\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (240|((c>>8)&7))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|((c>>2)&63))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|((d>>6)&15)|(c&3))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|(d&63))) & 0xFF];\n\t\t} else {\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (224|((c>>12)&15))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|((c>>6)&63))) & 0xFF];\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ (128|(c&63))) & 0xFF];\n\t\t}\n\t}\n\treturn crc ^ -1;\n}\nCRC32.table = table;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n","var crc32 = require('crc-32')\n\nmodule.exports = extractChunks\n\n// Used for fast-ish conversion between uint8s and uint32s/int32s.\n// Also required in order to remain agnostic for both Node Buffers and\n// Uint8Arrays.\nvar uint8 = new Uint8Array(4)\nvar int32 = new Int32Array(uint8.buffer)\nvar uint32 = new Uint32Array(uint8.buffer)\n\nfunction extractChunks (data) {\n if (data[0] !== 0x89) throw new Error('Invalid .png file header')\n if (data[1] !== 0x50) throw new Error('Invalid .png file header')\n if (data[2] !== 0x4E) throw new Error('Invalid .png file header')\n if (data[3] !== 0x47) throw new Error('Invalid .png file header')\n if (data[4] !== 0x0D) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')\n if (data[5] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')\n if (data[6] !== 0x1A) throw new Error('Invalid .png file header')\n if (data[7] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')\n\n var ended = false\n var chunks = []\n var idx = 8\n\n while (idx < data.length) {\n // Read the length of the current chunk,\n // which is stored as a Uint32.\n uint8[3] = data[idx++]\n uint8[2] = data[idx++]\n uint8[1] = data[idx++]\n uint8[0] = data[idx++]\n\n // Chunk includes name/type for CRC check (see below).\n var length = uint32[0] + 4\n var chunk = new Uint8Array(length)\n chunk[0] = data[idx++]\n chunk[1] = data[idx++]\n chunk[2] = data[idx++]\n chunk[3] = data[idx++]\n\n // Get the name in ASCII for identification.\n var name = (\n String.fromCharCode(chunk[0]) +\n String.fromCharCode(chunk[1]) +\n String.fromCharCode(chunk[2]) +\n String.fromCharCode(chunk[3])\n )\n\n // The IHDR header MUST come first.\n if (!chunks.length && name !== 'IHDR') {\n throw new Error('IHDR header missing')\n }\n\n // The IEND header marks the end of the file,\n // so on discovering it break out of the loop.\n if (name === 'IEND') {\n ended = true\n chunks.push({\n name: name,\n data: new Uint8Array(0)\n })\n\n break\n }\n\n // Read the contents of the chunk out of the main buffer.\n for (var i = 4; i < length; i++) {\n chunk[i] = data[idx++]\n }\n\n // Read out the CRC value for comparison.\n // It's stored as an Int32.\n uint8[3] = data[idx++]\n uint8[2] = data[idx++]\n uint8[1] = data[idx++]\n uint8[0] = data[idx++]\n\n var crcActual = int32[0]\n var crcExpect = crc32.buf(chunk)\n if (crcExpect !== crcActual) {\n throw new Error(\n 'CRC values for ' + name + ' header do not match, PNG file is likely corrupted'\n )\n }\n\n // The chunk data is now copied to remove the 4 preceding\n // bytes used for the chunk name/type.\n var chunkData = new Uint8Array(chunk.buffer.slice(4))\n\n chunks.push({\n name: name,\n data: chunkData\n })\n }\n\n if (!ended) {\n throw new Error('.png file ended prematurely: no IEND header was found')\n }\n\n return chunks\n}\n","module.exports = encode\n\nfunction encode (keyword, content) {\n keyword = String(keyword)\n content = String(content)\n\n if (!/^[\\x00-\\xFF]+$/.test(keyword) || !/^[\\x00-\\xFF]+$/.test(content)) {\n throw new Error('Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression')\n }\n\n if (keyword.length >= 80) {\n throw new Error('Keyword \"' + keyword + '\" is longer than the 79-character limit imposed by the PNG specification')\n }\n\n var totalSize = keyword.length + content.length + 1\n var output = new Uint8Array(totalSize)\n var idx = 0\n var code\n\n for (var i = 0; i < keyword.length; i++) {\n if (!(code = keyword.charCodeAt(i))) {\n throw new Error('0x00 character is not permitted in tEXt keywords')\n }\n\n output[idx++] = code\n }\n\n output[idx++] = 0\n\n for (var j = 0; j < content.length; j++) {\n if (!(code = content.charCodeAt(j))) {\n throw new Error('0x00 character is not permitted in tEXt content')\n }\n\n output[idx++] = code\n }\n\n return {\n name: 'tEXt',\n data: output\n }\n}\n","module.exports = decode\n\nfunction decode (data) {\n if (data.data && data.name) {\n data = data.data\n }\n\n var naming = true\n var text = ''\n var name = ''\n\n for (var i = 0; i < data.length; i++) {\n var code = data[i]\n\n if (naming) {\n if (code) {\n name += String.fromCharCode(code)\n } else {\n naming = false\n }\n } else {\n if (code) {\n text += String.fromCharCode(code)\n } else {\n throw new Error('Invalid NULL character found. 0x00 character is not permitted in tEXt content')\n }\n }\n }\n\n return {\n keyword: name,\n text: text\n }\n}\n","exports.encode = require('./encode')\nexports.decode = require('./decode')\n","\n/**\n * An Array.prototype.slice.call(arguments) alternative\n *\n * @param {Object} args something with a length\n * @param {Number} slice\n * @param {Number} sliceEnd\n * @api public\n */\n\nmodule.exports = function (args, slice, sliceEnd) {\n var ret = [];\n var len = args.length;\n\n if (0 === len) return ret;\n\n var start = slice < 0\n ? Math.max(0, slice + len)\n : slice || 0;\n\n if (sliceEnd !== undefined) {\n len = sliceEnd < 0\n ? sliceEnd + len\n : sliceEnd\n }\n\n while (len-- > start) {\n ret[len - start] = args[len];\n }\n\n return ret;\n}\n\n","var sliced = require('sliced')\nvar crc32 = require('crc-32')\n\nmodule.exports = encodeChunks\n\n// Used for fast-ish conversion between uint8s and uint32s/int32s.\n// Also required in order to remain agnostic for both Node Buffers and\n// Uint8Arrays.\nvar uint8 = new Uint8Array(4)\nvar int32 = new Int32Array(uint8.buffer)\nvar uint32 = new Uint32Array(uint8.buffer)\n\nfunction encodeChunks (chunks) {\n var totalSize = 8\n var idx = totalSize\n var i\n\n for (i = 0; i < chunks.length; i++) {\n totalSize += chunks[i].data.length\n totalSize += 12\n }\n\n var output = new Uint8Array(totalSize)\n\n output[0] = 0x89\n output[1] = 0x50\n output[2] = 0x4E\n output[3] = 0x47\n output[4] = 0x0D\n output[5] = 0x0A\n output[6] = 0x1A\n output[7] = 0x0A\n\n for (i = 0; i < chunks.length; i++) {\n var chunk = chunks[i]\n var name = chunk.name\n var data = chunk.data\n var size = data.length\n var nameChars = [\n name.charCodeAt(0),\n name.charCodeAt(1),\n name.charCodeAt(2),\n name.charCodeAt(3)\n ]\n\n uint32[0] = size\n output[idx++] = uint8[3]\n output[idx++] = uint8[2]\n output[idx++] = uint8[1]\n output[idx++] = uint8[0]\n\n output[idx++] = nameChars[0]\n output[idx++] = nameChars[1]\n output[idx++] = nameChars[2]\n output[idx++] = nameChars[3]\n\n for (var j = 0; j < size;) {\n output[idx++] = data[j++]\n }\n\n var crcCheck = nameChars.concat(sliced(data))\n var crc = crc32.buf(crcCheck)\n\n int32[0] = crc\n output[idx++] = uint8[3]\n output[idx++] = uint8[2]\n output[idx++] = uint8[1]\n output[idx++] = uint8[0]\n }\n\n return output\n}\n","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar trees = require('./trees');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","'use strict';\n\n\nvar zlib_deflate = require('./zlib/deflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\n\nvar toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_SYNC_FLUSH = 2;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n if (!(this instanceof Deflate)) return new Deflate(options);\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar inflate_fast = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n\nvar zlib_inflate = require('./zlib/inflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar c = require('./zlib/constants');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\nvar GZheader = require('./zlib/gzheader');\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status === c.Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);\n }\n\n if (status === c.Z_BUF_ERROR && allowBufError === true) {\n status = c.Z_OK;\n allowBufError = false;\n }\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === c.Z_SYNC_FLUSH) {\n this.onEnd(c.Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = require('./lib/utils/common').assign;\n\nvar deflate = require('./lib/deflate');\nvar inflate = require('./lib/inflate');\nvar constants = require('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n","import { ENCRYPTION_KEY_BITS } from \"../constants\";\nimport { blobToArrayBuffer } from \"./blob\";\n\nexport const IV_LENGTH_BYTES = 12;\n\nexport const createIV = () => {\n const arr = new Uint8Array(IV_LENGTH_BYTES);\n return window.crypto.getRandomValues(arr);\n};\n\nexport const generateEncryptionKey = async <\n T extends \"string\" | \"cryptoKey\" = \"string\",\n>(\n returnAs?: T,\n): Promise => {\n const key = await window.crypto.subtle.generateKey(\n {\n name: \"AES-GCM\",\n length: ENCRYPTION_KEY_BITS,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n return (\n returnAs === \"cryptoKey\"\n ? key\n : (await window.crypto.subtle.exportKey(\"jwk\", key)).k\n ) as T extends \"cryptoKey\" ? CryptoKey : string;\n};\n\nexport const getCryptoKey = (key: string, usage: KeyUsage) =>\n window.crypto.subtle.importKey(\n \"jwk\",\n {\n alg: \"A128GCM\",\n ext: true,\n k: key,\n key_ops: [\"encrypt\", \"decrypt\"],\n kty: \"oct\",\n },\n {\n name: \"AES-GCM\",\n length: ENCRYPTION_KEY_BITS,\n },\n false, // extractable\n [usage],\n );\n\nexport const encryptData = async (\n key: string | CryptoKey,\n data: Uint8Array | ArrayBuffer | Blob | File | string,\n): Promise<{ encryptedBuffer: ArrayBuffer; iv: Uint8Array }> => {\n const importedKey =\n typeof key === \"string\" ? await getCryptoKey(key, \"encrypt\") : key;\n const iv = createIV();\n const buffer: ArrayBuffer | Uint8Array =\n typeof data === \"string\"\n ? new TextEncoder().encode(data)\n : data instanceof Uint8Array\n ? data\n : data instanceof Blob\n ? await blobToArrayBuffer(data)\n : data;\n\n // We use symmetric encryption. AES-GCM is the recommended algorithm and\n // includes checks that the ciphertext has not been modified by an attacker.\n const encryptedBuffer = await window.crypto.subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv,\n },\n importedKey,\n buffer as ArrayBuffer | Uint8Array,\n );\n\n return { encryptedBuffer, iv };\n};\n\nexport const decryptData = async (\n iv: Uint8Array,\n encrypted: Uint8Array | ArrayBuffer,\n privateKey: string,\n): Promise => {\n const key = await getCryptoKey(privateKey, \"decrypt\");\n return window.crypto.subtle.decrypt(\n {\n name: \"AES-GCM\",\n iv,\n },\n key,\n encrypted,\n );\n};\n","import { deflate, inflate } from \"pako\";\nimport { encryptData, decryptData } from \"./encryption\";\n\n// -----------------------------------------------------------------------------\n// byte (binary) strings\n// -----------------------------------------------------------------------------\n\n// fast, Buffer-compatible implem\nexport const toByteString = (\n data: string | Uint8Array | ArrayBuffer,\n): Promise => {\n return new Promise((resolve, reject) => {\n const blob =\n typeof data === \"string\"\n ? new Blob([new TextEncoder().encode(data)])\n : new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)]);\n const reader = new FileReader();\n reader.onload = (event) => {\n if (!event.target || typeof event.target.result !== \"string\") {\n return reject(new Error(\"couldn't convert to byte string\"));\n }\n resolve(event.target.result);\n };\n reader.readAsBinaryString(blob);\n });\n};\n\nconst byteStringToArrayBuffer = (byteString: string) => {\n const buffer = new ArrayBuffer(byteString.length);\n const bufferView = new Uint8Array(buffer);\n for (let i = 0, len = byteString.length; i < len; i++) {\n bufferView[i] = byteString.charCodeAt(i);\n }\n return buffer;\n};\n\nconst byteStringToString = (byteString: string) => {\n return new TextDecoder(\"utf-8\").decode(byteStringToArrayBuffer(byteString));\n};\n\n// -----------------------------------------------------------------------------\n// base64\n// -----------------------------------------------------------------------------\n\n/**\n * @param isByteString set to true if already byte string to prevent bloat\n * due to reencoding\n */\nexport const stringToBase64 = async (str: string, isByteString = false) => {\n return isByteString ? window.btoa(str) : window.btoa(await toByteString(str));\n};\n\n// async to align with stringToBase64\nexport const base64ToString = async (base64: string, isByteString = false) => {\n return isByteString\n ? window.atob(base64)\n : byteStringToString(window.atob(base64));\n};\n\n// -----------------------------------------------------------------------------\n// text encoding\n// -----------------------------------------------------------------------------\n\ntype EncodedData = {\n encoded: string;\n encoding: \"bstring\";\n /** whether text is compressed (zlib) */\n compressed: boolean;\n /** version for potential migration purposes */\n version?: string;\n};\n\n/**\n * Encodes (and potentially compresses via zlib) text to byte string\n */\nexport const encode = async ({\n text,\n compress,\n}: {\n text: string;\n /** defaults to `true`. If compression fails, falls back to bstring alone. */\n compress?: boolean;\n}): Promise => {\n let deflated!: string;\n if (compress !== false) {\n try {\n deflated = await toByteString(deflate(text));\n } catch (error: any) {\n console.error(\"encode: cannot deflate\", error);\n }\n }\n return {\n version: \"1\",\n encoding: \"bstring\",\n compressed: !!deflated,\n encoded: deflated || (await toByteString(text)),\n };\n};\n\nexport const decode = async (data: EncodedData): Promise => {\n let decoded: string;\n\n switch (data.encoding) {\n case \"bstring\":\n // if compressed, do not double decode the bstring\n decoded = data.compressed\n ? data.encoded\n : await byteStringToString(data.encoded);\n break;\n default:\n throw new Error(`decode: unknown encoding \"${data.encoding}\"`);\n }\n\n if (data.compressed) {\n return inflate(new Uint8Array(byteStringToArrayBuffer(decoded)), {\n to: \"string\",\n });\n }\n\n return decoded;\n};\n\n// -----------------------------------------------------------------------------\n// binary encoding\n// -----------------------------------------------------------------------------\n\ntype FileEncodingInfo = {\n /* version 2 is the version we're shipping the initial image support with.\n version 1 was a PR version that a lot of people were using anyway.\n Thus, if there are issues we can check whether they're not using the\n unoffic version */\n version: 1 | 2;\n compression: \"pako@1\" | null;\n encryption: \"AES-GCM\" | null;\n};\n\n// -----------------------------------------------------------------------------\nconst CONCAT_BUFFERS_VERSION = 1;\n/** how many bytes we use to encode how many bytes the next chunk has.\n * Corresponds to DataView setter methods (setUint32, setUint16, etc).\n *\n * NOTE ! values must not be changed, which would be backwards incompatible !\n */\nconst VERSION_DATAVIEW_BYTES = 4;\nconst NEXT_CHUNK_SIZE_DATAVIEW_BYTES = 4;\n// -----------------------------------------------------------------------------\n\nconst DATA_VIEW_BITS_MAP = { 1: 8, 2: 16, 4: 32 } as const;\n\n// getter\nfunction dataView(buffer: Uint8Array, bytes: 1 | 2 | 4, offset: number): number;\n// setter\nfunction dataView(\n buffer: Uint8Array,\n bytes: 1 | 2 | 4,\n offset: number,\n value: number,\n): Uint8Array;\n/**\n * abstraction over DataView that serves as a typed getter/setter in case\n * you're using constants for the byte size and want to ensure there's no\n * discrepenancy in the encoding across refactors.\n *\n * DataView serves for an endian-agnostic handling of numbers in ArrayBuffers.\n */\nfunction dataView(\n buffer: Uint8Array,\n bytes: 1 | 2 | 4,\n offset: number,\n value?: number,\n): Uint8Array | number {\n if (value != null) {\n if (value > Math.pow(2, DATA_VIEW_BITS_MAP[bytes]) - 1) {\n throw new Error(\n `attempting to set value higher than the allocated bytes (value: ${value}, bytes: ${bytes})`,\n );\n }\n const method = `setUint${DATA_VIEW_BITS_MAP[bytes]}` as const;\n new DataView(buffer.buffer)[method](offset, value);\n return buffer;\n }\n const method = `getUint${DATA_VIEW_BITS_MAP[bytes]}` as const;\n return new DataView(buffer.buffer)[method](offset);\n}\n\n// -----------------------------------------------------------------------------\n\n/**\n * Resulting concatenated buffer has this format:\n *\n * [\n * VERSION chunk (4 bytes)\n * LENGTH chunk 1 (4 bytes)\n * DATA chunk 1 (up to 2^32 bits)\n * LENGTH chunk 2 (4 bytes)\n * DATA chunk 2 (up to 2^32 bits)\n * ...\n * ]\n *\n * @param buffers each buffer (chunk) must be at most 2^32 bits large (~4GB)\n */\nconst concatBuffers = (...buffers: Uint8Array[]) => {\n const bufferView = new Uint8Array(\n VERSION_DATAVIEW_BYTES +\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES * buffers.length +\n buffers.reduce((acc, buffer) => acc + buffer.byteLength, 0),\n );\n\n let cursor = 0;\n\n // as the first chunk we'll encode the version for backwards compatibility\n dataView(bufferView, VERSION_DATAVIEW_BYTES, cursor, CONCAT_BUFFERS_VERSION);\n cursor += VERSION_DATAVIEW_BYTES;\n\n for (const buffer of buffers) {\n dataView(\n bufferView,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n buffer.byteLength,\n );\n cursor += NEXT_CHUNK_SIZE_DATAVIEW_BYTES;\n\n bufferView.set(buffer, cursor);\n cursor += buffer.byteLength;\n }\n\n return bufferView;\n};\n\n/** can only be used on buffers created via `concatBuffers()` */\nconst splitBuffers = (concatenatedBuffer: Uint8Array) => {\n const buffers = [];\n\n let cursor = 0;\n\n // first chunk is the version\n const version = dataView(\n concatenatedBuffer,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n );\n // If version is outside of the supported versions, throw an error.\n // This usually means the buffer wasn't encoded using this API, so we'd only\n // waste compute.\n if (version > CONCAT_BUFFERS_VERSION) {\n throw new Error(`invalid version ${version}`);\n }\n\n cursor += VERSION_DATAVIEW_BYTES;\n\n while (true) {\n const chunkSize = dataView(\n concatenatedBuffer,\n NEXT_CHUNK_SIZE_DATAVIEW_BYTES,\n cursor,\n );\n cursor += NEXT_CHUNK_SIZE_DATAVIEW_BYTES;\n\n buffers.push(concatenatedBuffer.slice(cursor, cursor + chunkSize));\n cursor += chunkSize;\n if (cursor >= concatenatedBuffer.byteLength) {\n break;\n }\n }\n\n return buffers;\n};\n\n// helpers for (de)compressing data with JSON metadata including encryption\n// -----------------------------------------------------------------------------\n\n/** @private */\nconst _encryptAndCompress = async (\n data: Uint8Array | string,\n encryptionKey: string,\n) => {\n const { encryptedBuffer, iv } = await encryptData(\n encryptionKey,\n deflate(data),\n );\n\n return { iv, buffer: new Uint8Array(encryptedBuffer) };\n};\n\n/**\n * The returned buffer has following format:\n * `[]` refers to a buffers wrapper (see `concatBuffers`)\n *\n * [\n * encodingMetadataBuffer,\n * iv,\n * [\n * contentsMetadataBuffer\n * contentsBuffer\n * ]\n * ]\n */\nexport const compressData = async = never>(\n dataBuffer: Uint8Array,\n options: {\n encryptionKey: string;\n } & ([T] extends [never]\n ? {\n metadata?: T;\n }\n : {\n metadata: T;\n }),\n): Promise => {\n const fileInfo: FileEncodingInfo = {\n version: 2,\n compression: \"pako@1\",\n encryption: \"AES-GCM\",\n };\n\n const encodingMetadataBuffer = new TextEncoder().encode(\n JSON.stringify(fileInfo),\n );\n\n const contentsMetadataBuffer = new TextEncoder().encode(\n JSON.stringify(options.metadata || null),\n );\n\n const { iv, buffer } = await _encryptAndCompress(\n concatBuffers(contentsMetadataBuffer, dataBuffer),\n options.encryptionKey,\n );\n\n return concatBuffers(encodingMetadataBuffer, iv, buffer);\n};\n\n/** @private */\nconst _decryptAndDecompress = async (\n iv: Uint8Array,\n decryptedBuffer: Uint8Array,\n decryptionKey: string,\n isCompressed: boolean,\n) => {\n decryptedBuffer = new Uint8Array(\n await decryptData(iv, decryptedBuffer, decryptionKey),\n );\n\n if (isCompressed) {\n return inflate(decryptedBuffer);\n }\n\n return decryptedBuffer;\n};\n\nexport const decompressData = async >(\n bufferView: Uint8Array,\n options: { decryptionKey: string },\n) => {\n // first chunk is encoding metadata (ignored for now)\n const [encodingMetadataBuffer, iv, buffer] = splitBuffers(bufferView);\n\n const encodingMetadata: FileEncodingInfo = JSON.parse(\n new TextDecoder().decode(encodingMetadataBuffer),\n );\n\n try {\n const [contentsMetadataBuffer, contentsBuffer] = splitBuffers(\n await _decryptAndDecompress(\n iv,\n buffer,\n options.decryptionKey,\n !!encodingMetadata.compression,\n ),\n );\n\n const metadata = JSON.parse(\n new TextDecoder().decode(contentsMetadataBuffer),\n ) as T;\n\n return {\n /** metadata source is always JSON so we can decode it here */\n metadata,\n /** data can be anything so the caller must decode it */\n data: contentsBuffer,\n };\n } catch (error: any) {\n console.error(\n `Error during decompressing and decrypting the file.`,\n encodingMetadata,\n );\n throw error;\n }\n};\n\n// -----------------------------------------------------------------------------\n","import decodePng from \"png-chunks-extract\";\nimport tEXt from \"png-chunk-text\";\nimport encodePng from \"png-chunks-encode\";\nimport { stringToBase64, encode, decode, base64ToString } from \"./encode\";\nimport { EXPORT_DATA_TYPES, MIME_TYPES } from \"../constants\";\nimport { blobToArrayBuffer } from \"./blob\";\n\n// -----------------------------------------------------------------------------\n// PNG\n// -----------------------------------------------------------------------------\n\nexport const getTEXtChunk = async (\n blob: Blob,\n): Promise<{ keyword: string; text: string } | null> => {\n const chunks = decodePng(new Uint8Array(await blobToArrayBuffer(blob)));\n const metadataChunk = chunks.find((chunk) => chunk.name === \"tEXt\");\n if (metadataChunk) {\n return tEXt.decode(metadataChunk.data);\n }\n return null;\n};\n\nexport const encodePngMetadata = async ({\n blob,\n metadata,\n}: {\n blob: Blob;\n metadata: string;\n}) => {\n const chunks = decodePng(new Uint8Array(await blobToArrayBuffer(blob)));\n\n const metadataChunk = tEXt.encode(\n MIME_TYPES.excalidraw,\n JSON.stringify(\n await encode({\n text: metadata,\n compress: true,\n }),\n ),\n );\n // insert metadata before last chunk (iEND)\n chunks.splice(-1, 0, metadataChunk);\n\n return new Blob([encodePng(chunks)], { type: MIME_TYPES.png });\n};\n\nexport const decodePngMetadata = async (blob: Blob) => {\n const metadata = await getTEXtChunk(blob);\n if (metadata?.keyword === MIME_TYPES.excalidraw) {\n try {\n const encodedData = JSON.parse(metadata.text);\n if (!(\"encoded\" in encodedData)) {\n // legacy, un-encoded scene JSON\n if (\n \"type\" in encodedData &&\n encodedData.type === EXPORT_DATA_TYPES.excalidraw\n ) {\n return metadata.text;\n }\n throw new Error(\"FAILED\");\n }\n return await decode(encodedData);\n } catch (error: any) {\n console.error(error);\n throw new Error(\"FAILED\");\n }\n }\n throw new Error(\"INVALID\");\n};\n\n// -----------------------------------------------------------------------------\n// SVG\n// -----------------------------------------------------------------------------\n\nexport const encodeSvgMetadata = async ({ text }: { text: string }) => {\n const base64 = await stringToBase64(\n JSON.stringify(await encode({ text })),\n true /* is already byte string */,\n );\n\n let metadata = \"\";\n metadata += ``;\n metadata += ``;\n metadata += \"\";\n metadata += base64;\n metadata += \"\";\n return metadata;\n};\n\nexport const decodeSvgMetadata = async ({ svg }: { svg: string }) => {\n if (svg.includes(`payload-type:${MIME_TYPES.excalidraw}`)) {\n const match = svg.match(\n /\\s*(.+?)\\s*/,\n );\n if (!match) {\n throw new Error(\"INVALID\");\n }\n const versionMatch = svg.match(//);\n const version = versionMatch?.[1] || \"1\";\n const isByteString = version !== \"1\";\n\n try {\n const json = await base64ToString(match[1], isByteString);\n const encodedData = JSON.parse(json);\n if (!(\"encoded\" in encodedData)) {\n // legacy, un-encoded scene JSON\n if (\n \"type\" in encodedData &&\n encodedData.type === EXPORT_DATA_TYPES.excalidraw\n ) {\n return json;\n }\n throw new Error(\"FAILED\");\n }\n return await decode(encodedData);\n } catch (error: any) {\n console.error(error);\n throw new Error(\"FAILED\");\n }\n }\n throw new Error(\"INVALID\");\n};\n","import {\n COLOR_PALETTE,\n DEFAULT_CHART_COLOR_INDEX,\n getAllColorsSpecificShade,\n} from \"./colors\";\nimport {\n DEFAULT_FONT_FAMILY,\n DEFAULT_FONT_SIZE,\n VERTICAL_ALIGN,\n} from \"./constants\";\nimport { newElement, newLinearElement, newTextElement } from \"./element\";\nimport { NonDeletedExcalidrawElement } from \"./element/types\";\nimport { randomId } from \"./random\";\n\nexport type ChartElements = readonly NonDeletedExcalidrawElement[];\n\nconst BAR_WIDTH = 32;\nconst BAR_GAP = 12;\nconst BAR_HEIGHT = 256;\nconst GRID_OPACITY = 50;\n\nexport interface Spreadsheet {\n title: string | null;\n labels: string[] | null;\n values: number[];\n}\n\nexport const NOT_SPREADSHEET = \"NOT_SPREADSHEET\";\nexport const VALID_SPREADSHEET = \"VALID_SPREADSHEET\";\n\ntype ParseSpreadsheetResult =\n | { type: typeof NOT_SPREADSHEET; reason: string }\n | { type: typeof VALID_SPREADSHEET; spreadsheet: Spreadsheet };\n\n/**\n * @private exported for testing\n */\nexport const tryParseNumber = (s: string): number | null => {\n const match = /^([-+]?)[$€£¥₩]?([-+]?)([\\d.,]+)[%]?$/.exec(s);\n if (!match) {\n return null;\n }\n return parseFloat(`${(match[1] || match[2]) + match[3]}`.replace(/,/g, \"\"));\n};\n\nconst isNumericColumn = (lines: string[][], columnIndex: number) =>\n lines.slice(1).every((line) => tryParseNumber(line[columnIndex]) !== null);\n\n/**\n * @private exported for testing\n */\nexport const tryParseCells = (cells: string[][]): ParseSpreadsheetResult => {\n const numCols = cells[0].length;\n\n if (numCols > 2) {\n return { type: NOT_SPREADSHEET, reason: \"More than 2 columns\" };\n }\n\n if (numCols === 1) {\n if (!isNumericColumn(cells, 0)) {\n return { type: NOT_SPREADSHEET, reason: \"Value is not numeric\" };\n }\n\n const hasHeader = tryParseNumber(cells[0][0]) === null;\n const values = (hasHeader ? cells.slice(1) : cells).map((line) =>\n tryParseNumber(line[0]),\n );\n\n if (values.length < 2) {\n return { type: NOT_SPREADSHEET, reason: \"Less than two rows\" };\n }\n\n return {\n type: VALID_SPREADSHEET,\n spreadsheet: {\n title: hasHeader ? cells[0][0] : null,\n labels: null,\n values: values as number[],\n },\n };\n }\n\n const labelColumnNumeric = isNumericColumn(cells, 0);\n const valueColumnNumeric = isNumericColumn(cells, 1);\n\n if (!labelColumnNumeric && !valueColumnNumeric) {\n return { type: NOT_SPREADSHEET, reason: \"Value is not numeric\" };\n }\n\n const [labelColumnIndex, valueColumnIndex] = valueColumnNumeric\n ? [0, 1]\n : [1, 0];\n const hasHeader = tryParseNumber(cells[0][valueColumnIndex]) === null;\n const rows = hasHeader ? cells.slice(1) : cells;\n\n if (rows.length < 2) {\n return { type: NOT_SPREADSHEET, reason: \"Less than 2 rows\" };\n }\n\n return {\n type: VALID_SPREADSHEET,\n spreadsheet: {\n title: hasHeader ? cells[0][valueColumnIndex] : null,\n labels: rows.map((row) => row[labelColumnIndex]),\n values: rows.map((row) => tryParseNumber(row[valueColumnIndex])!),\n },\n };\n};\n\nconst transposeCells = (cells: string[][]) => {\n const nextCells: string[][] = [];\n for (let col = 0; col < cells[0].length; col++) {\n const nextCellRow: string[] = [];\n for (let row = 0; row < cells.length; row++) {\n nextCellRow.push(cells[row][col]);\n }\n nextCells.push(nextCellRow);\n }\n return nextCells;\n};\n\nexport const tryParseSpreadsheet = (text: string): ParseSpreadsheetResult => {\n // Copy/paste from excel, spreadsheets, tsv, csv.\n // For now we only accept 2 columns with an optional header\n\n // Check for tab separated values\n let lines = text\n .trim()\n .split(\"\\n\")\n .map((line) => line.trim().split(\"\\t\"));\n\n // Check for comma separated files\n if (lines.length && lines[0].length !== 2) {\n lines = text\n .trim()\n .split(\"\\n\")\n .map((line) => line.trim().split(\",\"));\n }\n\n if (lines.length === 0) {\n return { type: NOT_SPREADSHEET, reason: \"No values\" };\n }\n\n const numColsFirstLine = lines[0].length;\n const isSpreadsheet = lines.every((line) => line.length === numColsFirstLine);\n\n if (!isSpreadsheet) {\n return {\n type: NOT_SPREADSHEET,\n reason: \"All rows don't have same number of columns\",\n };\n }\n\n const result = tryParseCells(lines);\n if (result.type !== VALID_SPREADSHEET) {\n const transposedResults = tryParseCells(transposeCells(lines));\n if (transposedResults.type === VALID_SPREADSHEET) {\n return transposedResults;\n }\n }\n return result;\n};\n\nconst bgColors = getAllColorsSpecificShade(DEFAULT_CHART_COLOR_INDEX);\n\n// Put all the common properties here so when the whole chart is selected\n// the properties dialog shows the correct selected values\nconst commonProps = {\n fillStyle: \"hachure\",\n fontFamily: DEFAULT_FONT_FAMILY,\n fontSize: DEFAULT_FONT_SIZE,\n opacity: 100,\n roughness: 1,\n strokeColor: COLOR_PALETTE.black,\n roundness: null,\n strokeStyle: \"solid\",\n strokeWidth: 1,\n verticalAlign: VERTICAL_ALIGN.MIDDLE,\n locked: false,\n} as const;\n\nconst getChartDimensions = (spreadsheet: Spreadsheet) => {\n const chartWidth =\n (BAR_WIDTH + BAR_GAP) * spreadsheet.values.length + BAR_GAP;\n const chartHeight = BAR_HEIGHT + BAR_GAP * 2;\n return { chartWidth, chartHeight };\n};\n\nconst chartXLabels = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n groupId: string,\n backgroundColor: string,\n): ChartElements => {\n return (\n spreadsheet.labels?.map((label, index) => {\n return newTextElement({\n groupIds: [groupId],\n backgroundColor,\n ...commonProps,\n text: label.length > 8 ? `${label.slice(0, 5)}...` : label,\n x: x + index * (BAR_WIDTH + BAR_GAP) + BAR_GAP * 2,\n y: y + BAR_GAP / 2,\n width: BAR_WIDTH,\n angle: 5.87,\n fontSize: 16,\n textAlign: \"center\",\n verticalAlign: \"top\",\n });\n }) || []\n );\n};\n\nconst chartYLabels = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n groupId: string,\n backgroundColor: string,\n): ChartElements => {\n const minYLabel = newTextElement({\n groupIds: [groupId],\n backgroundColor,\n ...commonProps,\n x: x - BAR_GAP,\n y: y - BAR_GAP,\n text: \"0\",\n textAlign: \"right\",\n });\n\n const maxYLabel = newTextElement({\n groupIds: [groupId],\n backgroundColor,\n ...commonProps,\n x: x - BAR_GAP,\n y: y - BAR_HEIGHT - minYLabel.height / 2,\n text: Math.max(...spreadsheet.values).toLocaleString(),\n textAlign: \"right\",\n });\n\n return [minYLabel, maxYLabel];\n};\n\nconst chartLines = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n groupId: string,\n backgroundColor: string,\n): ChartElements => {\n const { chartWidth, chartHeight } = getChartDimensions(spreadsheet);\n const xLine = newLinearElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"line\",\n x,\n y,\n startArrowhead: null,\n endArrowhead: null,\n width: chartWidth,\n points: [\n [0, 0],\n [chartWidth, 0],\n ],\n });\n\n const yLine = newLinearElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"line\",\n x,\n y,\n startArrowhead: null,\n endArrowhead: null,\n height: chartHeight,\n points: [\n [0, 0],\n [0, -chartHeight],\n ],\n });\n\n const maxLine = newLinearElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"line\",\n x,\n y: y - BAR_HEIGHT - BAR_GAP,\n startArrowhead: null,\n endArrowhead: null,\n strokeStyle: \"dotted\",\n width: chartWidth,\n opacity: GRID_OPACITY,\n points: [\n [0, 0],\n [chartWidth, 0],\n ],\n });\n\n return [xLine, yLine, maxLine];\n};\n\n// For the maths behind it https://excalidraw.com/#json=6320864370884608,O_5xfD-Agh32tytHpRJx1g\nconst chartBaseElements = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n groupId: string,\n backgroundColor: string,\n debug?: boolean,\n): ChartElements => {\n const { chartWidth, chartHeight } = getChartDimensions(spreadsheet);\n\n const title = spreadsheet.title\n ? newTextElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n text: spreadsheet.title,\n x: x + chartWidth / 2,\n y: y - BAR_HEIGHT - BAR_GAP * 2 - DEFAULT_FONT_SIZE,\n roundness: null,\n textAlign: \"center\",\n })\n : null;\n\n const debugRect = debug\n ? newElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"rectangle\",\n x,\n y: y - chartHeight,\n width: chartWidth,\n height: chartHeight,\n strokeColor: COLOR_PALETTE.black,\n fillStyle: \"solid\",\n opacity: 6,\n })\n : null;\n\n return [\n ...(debugRect ? [debugRect] : []),\n ...(title ? [title] : []),\n ...chartXLabels(spreadsheet, x, y, groupId, backgroundColor),\n ...chartYLabels(spreadsheet, x, y, groupId, backgroundColor),\n ...chartLines(spreadsheet, x, y, groupId, backgroundColor),\n ];\n};\n\nconst chartTypeBar = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n): ChartElements => {\n const max = Math.max(...spreadsheet.values);\n const groupId = randomId();\n const backgroundColor = bgColors[Math.floor(Math.random() * bgColors.length)];\n\n const bars = spreadsheet.values.map((value, index) => {\n const barHeight = (value / max) * BAR_HEIGHT;\n return newElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"rectangle\",\n x: x + index * (BAR_WIDTH + BAR_GAP) + BAR_GAP,\n y: y - barHeight - BAR_GAP,\n width: BAR_WIDTH,\n height: barHeight,\n });\n });\n\n return [\n ...bars,\n ...chartBaseElements(\n spreadsheet,\n x,\n y,\n groupId,\n backgroundColor,\n import.meta.env.DEV,\n ),\n ];\n};\n\nconst chartTypeLine = (\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n): ChartElements => {\n const max = Math.max(...spreadsheet.values);\n const groupId = randomId();\n const backgroundColor = bgColors[Math.floor(Math.random() * bgColors.length)];\n\n let index = 0;\n const points = [];\n for (const value of spreadsheet.values) {\n const cx = index * (BAR_WIDTH + BAR_GAP);\n const cy = -(value / max) * BAR_HEIGHT;\n points.push([cx, cy]);\n index++;\n }\n\n const maxX = Math.max(...points.map((element) => element[0]));\n const maxY = Math.max(...points.map((element) => element[1]));\n const minX = Math.min(...points.map((element) => element[0]));\n const minY = Math.min(...points.map((element) => element[1]));\n\n const line = newLinearElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"line\",\n x: x + BAR_GAP + BAR_WIDTH / 2,\n y: y - BAR_GAP,\n startArrowhead: null,\n endArrowhead: null,\n height: maxY - minY,\n width: maxX - minX,\n strokeWidth: 2,\n points: points as any,\n });\n\n const dots = spreadsheet.values.map((value, index) => {\n const cx = index * (BAR_WIDTH + BAR_GAP) + BAR_GAP / 2;\n const cy = -(value / max) * BAR_HEIGHT + BAR_GAP / 2;\n return newElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n fillStyle: \"solid\",\n strokeWidth: 2,\n type: \"ellipse\",\n x: x + cx + BAR_WIDTH / 2,\n y: y + cy - BAR_GAP * 2,\n width: BAR_GAP,\n height: BAR_GAP,\n });\n });\n\n const lines = spreadsheet.values.map((value, index) => {\n const cx = index * (BAR_WIDTH + BAR_GAP) + BAR_GAP / 2;\n const cy = (value / max) * BAR_HEIGHT + BAR_GAP / 2 + BAR_GAP;\n return newLinearElement({\n backgroundColor,\n groupIds: [groupId],\n ...commonProps,\n type: \"line\",\n x: x + cx + BAR_WIDTH / 2 + BAR_GAP / 2,\n y: y - cy,\n startArrowhead: null,\n endArrowhead: null,\n height: cy,\n strokeStyle: \"dotted\",\n opacity: GRID_OPACITY,\n points: [\n [0, 0],\n [0, cy],\n ],\n });\n });\n\n return [\n ...chartBaseElements(\n spreadsheet,\n x,\n y,\n groupId,\n backgroundColor,\n import.meta.env.DEV,\n ),\n line,\n ...lines,\n ...dots,\n ];\n};\n\nexport const renderSpreadsheet = (\n chartType: string,\n spreadsheet: Spreadsheet,\n x: number,\n y: number,\n): ChartElements => {\n if (chartType === \"line\") {\n return chartTypeLine(spreadsheet, x, y);\n }\n return chartTypeBar(spreadsheet, x, y);\n};\n","import {\n ExcalidrawElement,\n NonDeletedExcalidrawElement,\n} from \"./element/types\";\nimport { BinaryFiles } from \"./types\";\nimport { tryParseSpreadsheet, Spreadsheet, VALID_SPREADSHEET } from \"./charts\";\nimport {\n ALLOWED_PASTE_MIME_TYPES,\n EXPORT_DATA_TYPES,\n MIME_TYPES,\n} from \"./constants\";\nimport {\n isFrameLikeElement,\n isInitializedImageElement,\n} from \"./element/typeChecks\";\nimport { deepCopyElement } from \"./element/newElement\";\nimport { mutateElement } from \"./element/mutateElement\";\nimport { getContainingFrame } from \"./frame\";\nimport { arrayToMap, isMemberOf, isPromiseLike } from \"./utils\";\n\ntype ElementsClipboard = {\n type: typeof EXPORT_DATA_TYPES.excalidrawClipboard;\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | undefined;\n};\n\nexport type PastedMixedContent = { type: \"text\" | \"imageUrl\"; value: string }[];\n\nexport interface ClipboardData {\n spreadsheet?: Spreadsheet;\n elements?: readonly ExcalidrawElement[];\n files?: BinaryFiles;\n text?: string;\n mixedContent?: PastedMixedContent;\n errorMessage?: string;\n programmaticAPI?: boolean;\n}\n\ntype AllowedPasteMimeTypes = typeof ALLOWED_PASTE_MIME_TYPES[number];\n\ntype ParsedClipboardEvent =\n | { type: \"text\"; value: string }\n | { type: \"mixedContent\"; value: PastedMixedContent };\n\nexport const probablySupportsClipboardReadText =\n \"clipboard\" in navigator && \"readText\" in navigator.clipboard;\n\nexport const probablySupportsClipboardWriteText =\n \"clipboard\" in navigator && \"writeText\" in navigator.clipboard;\n\nexport const probablySupportsClipboardBlob =\n \"clipboard\" in navigator &&\n \"write\" in navigator.clipboard &&\n \"ClipboardItem\" in window &&\n \"toBlob\" in HTMLCanvasElement.prototype;\n\nconst clipboardContainsElements = (\n contents: any,\n): contents is { elements: ExcalidrawElement[]; files?: BinaryFiles } => {\n if (\n [\n EXPORT_DATA_TYPES.excalidraw,\n EXPORT_DATA_TYPES.excalidrawClipboard,\n EXPORT_DATA_TYPES.excalidrawClipboardWithAPI,\n ].includes(contents?.type) &&\n Array.isArray(contents.elements)\n ) {\n return true;\n }\n return false;\n};\n\nexport const createPasteEvent = ({\n types,\n files,\n}: {\n types?: { [key in AllowedPasteMimeTypes]?: string };\n files?: File[];\n}) => {\n if (!types && !files) {\n console.warn(\"createPasteEvent: no types or files provided\");\n }\n\n const event = new ClipboardEvent(\"paste\", {\n clipboardData: new DataTransfer(),\n });\n\n if (types) {\n for (const [type, value] of Object.entries(types)) {\n try {\n event.clipboardData?.setData(type, value);\n if (event.clipboardData?.getData(type) !== value) {\n throw new Error(`Failed to set \"${type}\" as clipboardData item`);\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n }\n\n if (files) {\n let idx = -1;\n for (const file of files) {\n idx++;\n try {\n event.clipboardData?.items.add(file);\n if (event.clipboardData?.files[idx] !== file) {\n throw new Error(\n `Failed to set file \"${file.name}\" as clipboardData item`,\n );\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n }\n\n return event;\n};\n\nexport const serializeAsClipboardJSON = ({\n elements,\n files,\n}: {\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | null;\n}) => {\n const elementsMap = arrayToMap(elements);\n const framesToCopy = new Set(\n elements.filter((element) => isFrameLikeElement(element)),\n );\n let foundFile = false;\n\n const _files = elements.reduce((acc, element) => {\n if (isInitializedImageElement(element)) {\n foundFile = true;\n if (files && files[element.fileId]) {\n acc[element.fileId] = files[element.fileId];\n }\n }\n return acc;\n }, {} as BinaryFiles);\n\n if (foundFile && !files) {\n console.warn(\n \"copyToClipboard: attempting to file element(s) without providing associated `files` object.\",\n );\n }\n\n // select bound text elements when copying\n const contents: ElementsClipboard = {\n type: EXPORT_DATA_TYPES.excalidrawClipboard,\n elements: elements.map((element) => {\n if (\n getContainingFrame(element, elementsMap) &&\n !framesToCopy.has(getContainingFrame(element, elementsMap)!)\n ) {\n const copiedElement = deepCopyElement(element);\n mutateElement(copiedElement, {\n frameId: null,\n });\n return copiedElement;\n }\n\n return element;\n }),\n files: files ? _files : undefined,\n };\n\n return JSON.stringify(contents);\n};\n\nexport const copyToClipboard = async (\n elements: readonly NonDeletedExcalidrawElement[],\n files: BinaryFiles | null,\n /** supply if available to make the operation more certain to succeed */\n clipboardEvent?: ClipboardEvent | null,\n) => {\n await copyTextToSystemClipboard(\n serializeAsClipboardJSON({ elements, files }),\n clipboardEvent,\n );\n};\n\nconst parsePotentialSpreadsheet = (\n text: string,\n): { spreadsheet: Spreadsheet } | { errorMessage: string } | null => {\n const result = tryParseSpreadsheet(text);\n if (result.type === VALID_SPREADSHEET) {\n return { spreadsheet: result.spreadsheet };\n }\n return null;\n};\n\n/** internal, specific to parsing paste events. Do not reuse. */\nfunction parseHTMLTree(el: ChildNode) {\n let result: PastedMixedContent = [];\n for (const node of el.childNodes) {\n if (node.nodeType === 3) {\n const text = node.textContent?.trim();\n if (text) {\n result.push({ type: \"text\", value: text });\n }\n } else if (node instanceof HTMLImageElement) {\n const url = node.getAttribute(\"src\");\n if (url && url.startsWith(\"http\")) {\n result.push({ type: \"imageUrl\", value: url });\n }\n } else {\n result = result.concat(parseHTMLTree(node));\n }\n }\n return result;\n}\n\nconst maybeParseHTMLPaste = (\n event: ClipboardEvent,\n): { type: \"mixedContent\"; value: PastedMixedContent } | null => {\n const html = event.clipboardData?.getData(\"text/html\");\n\n if (!html) {\n return null;\n }\n\n try {\n const doc = new DOMParser().parseFromString(html, \"text/html\");\n\n const content = parseHTMLTree(doc.body);\n\n if (content.length) {\n return { type: \"mixedContent\", value: content };\n }\n } catch (error: any) {\n console.error(`error in parseHTMLFromPaste: ${error.message}`);\n }\n\n return null;\n};\n\nexport const readSystemClipboard = async () => {\n const types: { [key in AllowedPasteMimeTypes]?: string } = {};\n\n try {\n if (navigator.clipboard?.readText) {\n return { \"text/plain\": await navigator.clipboard?.readText() };\n }\n } catch (error: any) {\n // @ts-ignore\n if (navigator.clipboard?.read) {\n console.warn(\n `navigator.clipboard.readText() failed (${error.message}). Failling back to navigator.clipboard.read()`,\n );\n } else {\n throw error;\n }\n }\n\n let clipboardItems: ClipboardItems;\n\n try {\n clipboardItems = await navigator.clipboard?.read();\n } catch (error: any) {\n if (error.name === \"DataError\") {\n console.warn(\n `navigator.clipboard.read() error, clipboard is probably empty: ${error.message}`,\n );\n return types;\n }\n throw error;\n }\n\n for (const item of clipboardItems) {\n for (const type of item.types) {\n if (!isMemberOf(ALLOWED_PASTE_MIME_TYPES, type)) {\n continue;\n }\n try {\n types[type] = await (await item.getType(type)).text();\n } catch (error: any) {\n console.warn(\n `Cannot retrieve ${type} from clipboardItem: ${error.message}`,\n );\n }\n }\n }\n\n if (Object.keys(types).length === 0) {\n console.warn(\"No clipboard data found from clipboard.read().\");\n return types;\n }\n\n return types;\n};\n\n/**\n * Parses \"paste\" ClipboardEvent.\n */\nconst parseClipboardEvent = async (\n event: ClipboardEvent,\n isPlainPaste = false,\n): Promise => {\n try {\n const mixedContent = !isPlainPaste && event && maybeParseHTMLPaste(event);\n\n if (mixedContent) {\n if (mixedContent.value.every((item) => item.type === \"text\")) {\n return {\n type: \"text\",\n value:\n event.clipboardData?.getData(\"text/plain\") ||\n mixedContent.value\n .map((item) => item.value)\n .join(\"\\n\")\n .trim(),\n };\n }\n\n return mixedContent;\n }\n\n const text = event.clipboardData?.getData(\"text/plain\");\n\n return { type: \"text\", value: (text || \"\").trim() };\n } catch {\n return { type: \"text\", value: \"\" };\n }\n};\n\n/**\n * Attempts to parse clipboard. Prefers system clipboard.\n */\nexport const parseClipboard = async (\n event: ClipboardEvent,\n isPlainPaste = false,\n): Promise => {\n const parsedEventData = await parseClipboardEvent(event, isPlainPaste);\n\n if (parsedEventData.type === \"mixedContent\") {\n return {\n mixedContent: parsedEventData.value,\n };\n }\n\n try {\n // if system clipboard contains spreadsheet, use it even though it's\n // technically possible it's staler than in-app clipboard\n const spreadsheetResult =\n !isPlainPaste && parsePotentialSpreadsheet(parsedEventData.value);\n\n if (spreadsheetResult) {\n return spreadsheetResult;\n }\n } catch (error: any) {\n console.error(error);\n }\n\n try {\n const systemClipboardData = JSON.parse(parsedEventData.value);\n const programmaticAPI =\n systemClipboardData.type === EXPORT_DATA_TYPES.excalidrawClipboardWithAPI;\n if (clipboardContainsElements(systemClipboardData)) {\n return {\n elements: systemClipboardData.elements,\n files: systemClipboardData.files,\n text: isPlainPaste\n ? JSON.stringify(systemClipboardData.elements, null, 2)\n : undefined,\n programmaticAPI,\n };\n }\n } catch {}\n\n return { text: parsedEventData.value };\n};\n\nexport const copyBlobToClipboardAsPng = async (blob: Blob | Promise) => {\n try {\n // in Safari so far we need to construct the ClipboardItem synchronously\n // (i.e. in the same tick) otherwise browser will complain for lack of\n // user intent. Using a Promise ClipboardItem constructor solves this.\n // https://bugs.webkit.org/show_bug.cgi?id=222262\n //\n // Note that Firefox (and potentially others) seems to support Promise\n // ClipboardItem constructor, but throws on an unrelated MIME type error.\n // So we need to await this and fallback to awaiting the blob if applicable.\n await navigator.clipboard.write([\n new window.ClipboardItem({\n [MIME_TYPES.png]: blob,\n }),\n ]);\n } catch (error: any) {\n // if we're using a Promise ClipboardItem, let's try constructing\n // with resolution value instead\n if (isPromiseLike(blob)) {\n await navigator.clipboard.write([\n new window.ClipboardItem({\n [MIME_TYPES.png]: await blob,\n }),\n ]);\n } else {\n throw error;\n }\n }\n};\n\nexport const copyTextToSystemClipboard = async (\n text: string | null,\n clipboardEvent?: ClipboardEvent | null,\n) => {\n // (1) first try using Async Clipboard API\n if (probablySupportsClipboardWriteText) {\n try {\n // NOTE: doesn't work on FF on non-HTTPS domains, or when document\n // not focused\n await navigator.clipboard.writeText(text || \"\");\n return;\n } catch (error: any) {\n console.error(error);\n }\n }\n\n // (2) if fails and we have access to ClipboardEvent, use plain old setData()\n try {\n if (clipboardEvent) {\n clipboardEvent.clipboardData?.setData(\"text/plain\", text || \"\");\n if (clipboardEvent.clipboardData?.getData(\"text/plain\") !== text) {\n throw new Error(\"Failed to setData on clipboardEvent\");\n }\n return;\n }\n } catch (error: any) {\n console.error(error);\n }\n\n // (3) if that fails, use document.execCommand\n if (!copyTextViaExecCommand(text)) {\n throw new Error(\"Error copying to clipboard.\");\n }\n};\n\n// adapted from https://github.com/zenorocha/clipboard.js/blob/ce79f170aa655c408b6aab33c9472e8e4fa52e19/src/clipboard-action.js#L48\nconst copyTextViaExecCommand = (text: string | null) => {\n // execCommand doesn't allow copying empty strings, so if we're\n // clearing clipboard using this API, we must copy at least an empty char\n if (!text) {\n text = \" \";\n }\n\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\n\n const textarea = document.createElement(\"textarea\");\n\n textarea.style.border = \"0\";\n textarea.style.padding = \"0\";\n textarea.style.margin = \"0\";\n textarea.style.position = \"absolute\";\n textarea.style[isRTL ? \"right\" : \"left\"] = \"-9999px\";\n const yPosition = window.pageYOffset || document.documentElement.scrollTop;\n textarea.style.top = `${yPosition}px`;\n // Prevent zooming on iOS\n textarea.style.fontSize = \"12pt\";\n\n textarea.setAttribute(\"readonly\", \"\");\n textarea.value = text;\n\n document.body.appendChild(textarea);\n\n let success = false;\n\n try {\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n\n success = document.execCommand(\"copy\");\n } catch (error: any) {\n console.error(error);\n }\n\n textarea.remove();\n\n return success;\n};\n","import {\n exportToCanvas as _exportToCanvas,\n exportToSvg as _exportToSvg,\n} from \"../excalidraw/scene/export\";\nimport { getDefaultAppState } from \"../excalidraw/appState\";\nimport { AppState, BinaryFiles } from \"../excalidraw/types\";\nimport {\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n NonDeleted,\n} from \"../excalidraw/element/types\";\nimport { restore } from \"../excalidraw/data/restore\";\nimport { MIME_TYPES } from \"../excalidraw/constants\";\nimport { encodePngMetadata } from \"../excalidraw/data/image\";\nimport { serializeAsJSON } from \"../excalidraw/data/json\";\nimport {\n copyBlobToClipboardAsPng,\n copyTextToSystemClipboard,\n copyToClipboard,\n} from \"../excalidraw/clipboard\";\n\nexport { MIME_TYPES };\n\ntype ExportOpts = {\n elements: readonly NonDeleted[];\n appState?: Partial>;\n files: BinaryFiles | null;\n maxWidthOrHeight?: number;\n exportingFrame?: ExcalidrawFrameLikeElement | null;\n getDimensions?: (\n width: number,\n height: number,\n ) => { width: number; height: number; scale?: number };\n};\n\nexport const exportToCanvas = ({\n elements,\n appState,\n files,\n maxWidthOrHeight,\n getDimensions,\n exportPadding,\n exportingFrame,\n}: ExportOpts & {\n exportPadding?: number;\n}) => {\n const { elements: restoredElements, appState: restoredAppState } = restore(\n { elements, appState },\n null,\n null,\n );\n const { exportBackground, viewBackgroundColor } = restoredAppState;\n return _exportToCanvas(\n restoredElements,\n { ...restoredAppState, offsetTop: 0, offsetLeft: 0, width: 0, height: 0 },\n files || {},\n { exportBackground, exportPadding, viewBackgroundColor, exportingFrame },\n (width: number, height: number) => {\n const canvas = document.createElement(\"canvas\");\n\n if (maxWidthOrHeight) {\n if (typeof getDimensions === \"function\") {\n console.warn(\n \"`getDimensions()` is ignored when `maxWidthOrHeight` is supplied.\",\n );\n }\n\n const max = Math.max(width, height);\n\n // if content is less then maxWidthOrHeight, fallback on supplied scale\n const scale =\n maxWidthOrHeight < max\n ? maxWidthOrHeight / max\n : appState?.exportScale ?? 1;\n\n canvas.width = width * scale;\n canvas.height = height * scale;\n\n return {\n canvas,\n scale,\n };\n }\n\n const ret = getDimensions?.(width, height) || { width, height };\n\n canvas.width = ret.width;\n canvas.height = ret.height;\n\n return {\n canvas,\n scale: ret.scale ?? 1,\n };\n },\n );\n};\n\nexport const exportToBlob = async (\n opts: ExportOpts & {\n mimeType?: string;\n quality?: number;\n exportPadding?: number;\n },\n): Promise => {\n let { mimeType = MIME_TYPES.png, quality } = opts;\n\n if (mimeType === MIME_TYPES.png && typeof quality === \"number\") {\n console.warn(`\"quality\" will be ignored for \"${MIME_TYPES.png}\" mimeType`);\n }\n\n // typo in MIME type (should be \"jpeg\")\n if (mimeType === \"image/jpg\") {\n mimeType = MIME_TYPES.jpg;\n }\n\n if (mimeType === MIME_TYPES.jpg && !opts.appState?.exportBackground) {\n console.warn(\n `Defaulting \"exportBackground\" to \"true\" for \"${MIME_TYPES.jpg}\" mimeType`,\n );\n opts = {\n ...opts,\n appState: { ...opts.appState, exportBackground: true },\n };\n }\n\n const canvas = await exportToCanvas(opts);\n\n quality = quality ? quality : /image\\/jpe?g/.test(mimeType) ? 0.92 : 0.8;\n\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n async (blob) => {\n if (!blob) {\n return reject(new Error(\"couldn't export to blob\"));\n }\n if (\n blob &&\n mimeType === MIME_TYPES.png &&\n opts.appState?.exportEmbedScene\n ) {\n blob = await encodePngMetadata({\n blob,\n metadata: serializeAsJSON(\n // NOTE as long as we're using the Scene hack, we need to ensure\n // we pass the original, uncloned elements when serializing\n // so that we keep ids stable\n opts.elements,\n opts.appState,\n opts.files || {},\n \"local\",\n ),\n });\n }\n resolve(blob);\n },\n mimeType,\n quality,\n );\n });\n};\n\nexport const exportToSvg = async ({\n elements,\n appState = getDefaultAppState(),\n files = {},\n exportPadding,\n renderEmbeddables,\n exportingFrame,\n}: Omit & {\n exportPadding?: number;\n renderEmbeddables?: boolean;\n}): Promise => {\n const { elements: restoredElements, appState: restoredAppState } = restore(\n { elements, appState },\n null,\n null,\n );\n\n const exportAppState = {\n ...restoredAppState,\n exportPadding,\n };\n\n return _exportToSvg(restoredElements, exportAppState, files, {\n exportingFrame,\n renderEmbeddables,\n });\n};\n\nexport const exportToClipboard = async (\n opts: ExportOpts & {\n mimeType?: string;\n quality?: number;\n type: \"png\" | \"svg\" | \"json\";\n },\n) => {\n if (opts.type === \"svg\") {\n const svg = await exportToSvg(opts);\n await copyTextToSystemClipboard(svg.outerHTML);\n } else if (opts.type === \"png\") {\n await copyBlobToClipboardAsPng(exportToBlob(opts));\n } else if (opts.type === \"json\") {\n await copyToClipboard(opts.elements, opts.files);\n } else {\n throw new Error(\"Invalid export type\");\n }\n};\n","import type {\n ExcalidrawElement,\n ExcalidrawFreeDrawElement,\n ExcalidrawLinearElement,\n NonDeletedExcalidrawElement,\n} from \"../excalidraw/element/types\";\nimport {\n isArrowElement,\n isExcalidrawElement,\n isFreeDrawElement,\n isLinearElement,\n isTextElement,\n} from \"../excalidraw/element/typeChecks\";\nimport { isValueInRange, rotatePoint } from \"../excalidraw/math\";\nimport type { Point } from \"../excalidraw/types\";\nimport { Bounds, getElementBounds } from \"../excalidraw/element/bounds\";\nimport { arrayToMap } from \"../excalidraw/utils\";\n\ntype Element = NonDeletedExcalidrawElement;\ntype Elements = readonly NonDeletedExcalidrawElement[];\n\ntype Points = readonly Point[];\n\n/** @returns vertices relative to element's top-left [0,0] position */\nconst getNonLinearElementRelativePoints = (\n element: Exclude<\n Element,\n ExcalidrawLinearElement | ExcalidrawFreeDrawElement\n >,\n): [TopLeft: Point, TopRight: Point, BottomRight: Point, BottomLeft: Point] => {\n if (element.type === \"diamond\") {\n return [\n [element.width / 2, 0],\n [element.width, element.height / 2],\n [element.width / 2, element.height],\n [0, element.height / 2],\n ];\n }\n return [\n [0, 0],\n [0 + element.width, 0],\n [0 + element.width, element.height],\n [0, element.height],\n ];\n};\n\n/** @returns vertices relative to element's top-left [0,0] position */\nconst getElementRelativePoints = (element: ExcalidrawElement): Points => {\n if (isLinearElement(element) || isFreeDrawElement(element)) {\n return element.points;\n }\n return getNonLinearElementRelativePoints(element);\n};\n\nconst getMinMaxPoints = (points: Points) => {\n const ret = points.reduce(\n (limits, [x, y]) => {\n limits.minY = Math.min(limits.minY, y);\n limits.minX = Math.min(limits.minX, x);\n\n limits.maxX = Math.max(limits.maxX, x);\n limits.maxY = Math.max(limits.maxY, y);\n\n return limits;\n },\n {\n minX: Infinity,\n minY: Infinity,\n maxX: -Infinity,\n maxY: -Infinity,\n cx: 0,\n cy: 0,\n },\n );\n\n ret.cx = (ret.maxX + ret.minX) / 2;\n ret.cy = (ret.maxY + ret.minY) / 2;\n\n return ret;\n};\n\nconst getRotatedBBox = (element: Element): Bounds => {\n const points = getElementRelativePoints(element);\n\n const { cx, cy } = getMinMaxPoints(points);\n const centerPoint: Point = [cx, cy];\n\n const rotatedPoints = points.map((point) =>\n rotatePoint([point[0], point[1]], centerPoint, element.angle),\n );\n const { minX, minY, maxX, maxY } = getMinMaxPoints(rotatedPoints);\n\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\n\nexport const isElementInsideBBox = (\n element: Element,\n bbox: Bounds,\n eitherDirection = false,\n): boolean => {\n const elementBBox = getRotatedBBox(element);\n\n const elementInsideBbox =\n bbox[0] <= elementBBox[0] &&\n bbox[2] >= elementBBox[2] &&\n bbox[1] <= elementBBox[1] &&\n bbox[3] >= elementBBox[3];\n\n if (!eitherDirection) {\n return elementInsideBbox;\n }\n\n if (elementInsideBbox) {\n return true;\n }\n\n return (\n elementBBox[0] <= bbox[0] &&\n elementBBox[2] >= bbox[2] &&\n elementBBox[1] <= bbox[1] &&\n elementBBox[3] >= bbox[3]\n );\n};\n\nexport const elementPartiallyOverlapsWithOrContainsBBox = (\n element: Element,\n bbox: Bounds,\n): boolean => {\n const elementBBox = getRotatedBBox(element);\n\n return (\n (isValueInRange(elementBBox[0], bbox[0], bbox[2]) ||\n isValueInRange(bbox[0], elementBBox[0], elementBBox[2])) &&\n (isValueInRange(elementBBox[1], bbox[1], bbox[3]) ||\n isValueInRange(bbox[1], elementBBox[1], elementBBox[3]))\n );\n};\n\nexport const elementsOverlappingBBox = ({\n elements,\n bounds,\n type,\n errorMargin = 0,\n}: {\n elements: Elements;\n bounds: Bounds | ExcalidrawElement;\n /** safety offset. Defaults to 0. */\n errorMargin?: number;\n /**\n * - overlap: elements overlapping or inside bounds\n * - contain: elements inside bounds or bounds inside elements\n * - inside: elements inside bounds\n **/\n type: \"overlap\" | \"contain\" | \"inside\";\n}) => {\n if (isExcalidrawElement(bounds)) {\n bounds = getElementBounds(bounds, arrayToMap(elements));\n }\n const adjustedBBox: Bounds = [\n bounds[0] - errorMargin,\n bounds[1] - errorMargin,\n bounds[2] + errorMargin,\n bounds[3] + errorMargin,\n ];\n\n const includedElementSet = new Set();\n\n for (const element of elements) {\n if (includedElementSet.has(element.id)) {\n continue;\n }\n\n const isOverlaping =\n type === \"overlap\"\n ? elementPartiallyOverlapsWithOrContainsBBox(element, adjustedBBox)\n : type === \"inside\"\n ? isElementInsideBBox(element, adjustedBBox)\n : isElementInsideBBox(element, adjustedBBox, true);\n\n if (isOverlaping) {\n includedElementSet.add(element.id);\n\n if (element.boundElements) {\n for (const boundElement of element.boundElements) {\n includedElementSet.add(boundElement.id);\n }\n }\n\n if (isTextElement(element) && element.containerId) {\n includedElementSet.add(element.containerId);\n }\n\n if (isArrowElement(element)) {\n if (element.startBinding) {\n includedElementSet.add(element.startBinding.elementId);\n }\n\n if (element.endBinding) {\n includedElementSet.add(element.endBinding?.elementId);\n }\n }\n }\n }\n\n return elements.filter((element) => includedElementSet.has(element.id));\n};\n","import { Bounds } from \"../excalidraw/element/bounds\";\nimport { Point } from \"../excalidraw/types\";\n\nexport type LineSegment = [Point, Point];\n\nexport function getBBox(line: LineSegment): Bounds {\n return [\n Math.min(line[0][0], line[1][0]),\n Math.min(line[0][1], line[1][1]),\n Math.max(line[0][0], line[1][0]),\n Math.max(line[0][1], line[1][1]),\n ];\n}\n\nexport function crossProduct(a: Point, b: Point) {\n return a[0] * b[1] - b[0] * a[1];\n}\n\nexport function doBBoxesIntersect(a: Bounds, b: Bounds) {\n return a[0] <= b[2] && a[2] >= b[0] && a[1] <= b[3] && a[3] >= b[1];\n}\n\nexport function translate(a: Point, b: Point): Point {\n return [a[0] - b[0], a[1] - b[1]];\n}\n\nconst EPSILON = 0.000001;\n\nexport function isPointOnLine(l: LineSegment, p: Point) {\n const p1 = translate(l[1], l[0]);\n const p2 = translate(p, l[0]);\n\n const r = crossProduct(p1, p2);\n\n return Math.abs(r) < EPSILON;\n}\n\nexport function isPointRightOfLine(l: LineSegment, p: Point) {\n const p1 = translate(l[1], l[0]);\n const p2 = translate(p, l[0]);\n\n return crossProduct(p1, p2) < 0;\n}\n\nexport function isLineSegmentTouchingOrCrossingLine(\n a: LineSegment,\n b: LineSegment,\n) {\n return (\n isPointOnLine(a, b[0]) ||\n isPointOnLine(a, b[1]) ||\n (isPointRightOfLine(a, b[0])\n ? !isPointRightOfLine(a, b[1])\n : isPointRightOfLine(a, b[1]))\n );\n}\n\n// https://martin-thoma.com/how-to-check-if-two-line-segments-intersect/\nexport function doLineSegmentsIntersect(a: LineSegment, b: LineSegment) {\n return (\n doBBoxesIntersect(getBBox(a), getBBox(b)) &&\n isLineSegmentTouchingOrCrossingLine(a, b) &&\n isLineSegmentTouchingOrCrossingLine(b, a)\n );\n}\n","import {\n getCommonBounds,\n getElementAbsoluteCoords,\n isTextElement,\n} from \"./element\";\nimport {\n ElementsMap,\n ElementsMapOrArray,\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n NonDeleted,\n NonDeletedExcalidrawElement,\n} from \"./element/types\";\nimport { isPointWithinBounds } from \"./math\";\nimport {\n getBoundTextElement,\n getContainerElement,\n} from \"./element/textElement\";\nimport { arrayToMap } from \"./utils\";\nimport { mutateElement } from \"./element/mutateElement\";\nimport { AppClassProperties, AppState, StaticCanvasAppState } from \"./types\";\nimport { getElementsWithinSelection, getSelectedElements } from \"./scene\";\nimport { getElementsInGroup, selectGroupsFromGivenElements } from \"./groups\";\nimport type { ExcalidrawElementsIncludingDeleted } from \"./scene/Scene\";\nimport { getElementLineSegments } from \"./element/bounds\";\nimport { doLineSegmentsIntersect, elementsOverlappingBBox } from \"../utils/\";\nimport { isFrameElement, isFrameLikeElement } from \"./element/typeChecks\";\nimport { ReadonlySetLike } from \"./utility-types\";\n\n// --------------------------- Frame State ------------------------------------\nexport const bindElementsToFramesAfterDuplication = (\n nextElements: ExcalidrawElement[],\n oldElements: readonly ExcalidrawElement[],\n oldIdToDuplicatedId: Map,\n) => {\n const nextElementMap = arrayToMap(nextElements) as Map<\n ExcalidrawElement[\"id\"],\n ExcalidrawElement\n >;\n\n for (const element of oldElements) {\n if (element.frameId) {\n // use its frameId to get the new frameId\n const nextElementId = oldIdToDuplicatedId.get(element.id);\n const nextFrameId = oldIdToDuplicatedId.get(element.frameId);\n if (nextElementId) {\n const nextElement = nextElementMap.get(nextElementId);\n if (nextElement) {\n mutateElement(\n nextElement,\n {\n frameId: nextFrameId ?? element.frameId,\n },\n false,\n );\n }\n }\n }\n }\n};\n\nexport function isElementIntersectingFrame(\n element: ExcalidrawElement,\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) {\n const frameLineSegments = getElementLineSegments(frame, elementsMap);\n\n const elementLineSegments = getElementLineSegments(element, elementsMap);\n\n const intersecting = frameLineSegments.some((frameLineSegment) =>\n elementLineSegments.some((elementLineSegment) =>\n doLineSegmentsIntersect(frameLineSegment, elementLineSegment),\n ),\n );\n\n return intersecting;\n}\n\nexport const getElementsCompletelyInFrame = (\n elements: readonly ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) =>\n omitGroupsContainingFrameLikes(\n getElementsWithinSelection(elements, frame, elementsMap, false),\n ).filter(\n (element) =>\n (!isFrameLikeElement(element) && !element.frameId) ||\n element.frameId === frame.id,\n );\n\nexport const isElementContainingFrame = (\n elements: readonly ExcalidrawElement[],\n element: ExcalidrawElement,\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) => {\n return getElementsWithinSelection(elements, element, elementsMap).some(\n (e) => e.id === frame.id,\n );\n};\n\nexport const getElementsIntersectingFrame = (\n elements: readonly ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n const elementsMap = arrayToMap(elements);\n return elements.filter((element) =>\n isElementIntersectingFrame(element, frame, elementsMap),\n );\n};\n\nexport const elementsAreInFrameBounds = (\n elements: readonly ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) => {\n const [frameX1, frameY1, frameX2, frameY2] = getElementAbsoluteCoords(\n frame,\n elementsMap,\n );\n\n const [elementX1, elementY1, elementX2, elementY2] =\n getCommonBounds(elements);\n\n return (\n frameX1 <= elementX1 &&\n frameY1 <= elementY1 &&\n frameX2 >= elementX2 &&\n frameY2 >= elementY2\n );\n};\n\nexport const elementOverlapsWithFrame = (\n element: ExcalidrawElement,\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) => {\n return (\n elementsAreInFrameBounds([element], frame, elementsMap) ||\n isElementIntersectingFrame(element, frame, elementsMap) ||\n isElementContainingFrame([frame], element, frame, elementsMap)\n );\n};\n\nexport const isCursorInFrame = (\n cursorCoords: {\n x: number;\n y: number;\n },\n frame: NonDeleted,\n elementsMap: ElementsMap,\n) => {\n const [fx1, fy1, fx2, fy2] = getElementAbsoluteCoords(frame, elementsMap);\n\n return isPointWithinBounds(\n [fx1, fy1],\n [cursorCoords.x, cursorCoords.y],\n [fx2, fy2],\n );\n};\n\nexport const groupsAreAtLeastIntersectingTheFrame = (\n elements: readonly NonDeletedExcalidrawElement[],\n groupIds: readonly string[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n const elementsMap = arrayToMap(elements);\n const elementsInGroup = groupIds.flatMap((groupId) =>\n getElementsInGroup(elements, groupId),\n );\n\n if (elementsInGroup.length === 0) {\n return true;\n }\n\n return !!elementsInGroup.find(\n (element) =>\n elementsAreInFrameBounds([element], frame, elementsMap) ||\n isElementIntersectingFrame(element, frame, elementsMap),\n );\n};\n\nexport const groupsAreCompletelyOutOfFrame = (\n elements: readonly NonDeletedExcalidrawElement[],\n groupIds: readonly string[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n const elementsMap = arrayToMap(elements);\n const elementsInGroup = groupIds.flatMap((groupId) =>\n getElementsInGroup(elements, groupId),\n );\n\n if (elementsInGroup.length === 0) {\n return true;\n }\n\n return (\n elementsInGroup.find(\n (element) =>\n elementsAreInFrameBounds([element], frame, elementsMap) ||\n isElementIntersectingFrame(element, frame, elementsMap),\n ) === undefined\n );\n};\n\n// --------------------------- Frame Utils ------------------------------------\n\n/**\n * Returns a map of frameId to frame elements. Includes empty frames.\n */\nexport const groupByFrameLikes = (elements: readonly ExcalidrawElement[]) => {\n const frameElementsMap = new Map<\n ExcalidrawElement[\"id\"],\n ExcalidrawElement[]\n >();\n\n for (const element of elements) {\n const frameId = isFrameLikeElement(element) ? element.id : element.frameId;\n if (frameId && !frameElementsMap.has(frameId)) {\n frameElementsMap.set(frameId, getFrameChildren(elements, frameId));\n }\n }\n\n return frameElementsMap;\n};\n\nexport const getFrameChildren = (\n allElements: ElementsMapOrArray,\n frameId: string,\n) => {\n const frameChildren: ExcalidrawElement[] = [];\n for (const element of allElements.values()) {\n if (element.frameId === frameId) {\n frameChildren.push(element);\n }\n }\n return frameChildren;\n};\n\nexport const getFrameLikeElements = (\n allElements: ExcalidrawElementsIncludingDeleted,\n): ExcalidrawFrameLikeElement[] => {\n return allElements.filter((element): element is ExcalidrawFrameLikeElement =>\n isFrameLikeElement(element),\n );\n};\n\n/**\n * Returns ExcalidrawFrameElements and non-frame-children elements.\n *\n * Considers children as root elements if they point to a frame parent\n * non-existing in the elements set.\n *\n * Considers non-frame bound elements (container or arrow labels) as root.\n */\nexport const getRootElements = (\n allElements: ExcalidrawElementsIncludingDeleted,\n) => {\n const frameElements = arrayToMap(getFrameLikeElements(allElements));\n return allElements.filter(\n (element) =>\n frameElements.has(element.id) ||\n !element.frameId ||\n !frameElements.has(element.frameId),\n );\n};\n\nexport const getElementsInResizingFrame = (\n allElements: ExcalidrawElementsIncludingDeleted,\n frame: ExcalidrawFrameLikeElement,\n appState: AppState,\n elementsMap: ElementsMap,\n): ExcalidrawElement[] => {\n const prevElementsInFrame = getFrameChildren(allElements, frame.id);\n const nextElementsInFrame = new Set(prevElementsInFrame);\n\n const elementsCompletelyInFrame = new Set([\n ...getElementsCompletelyInFrame(allElements, frame, elementsMap),\n ...prevElementsInFrame.filter((element) =>\n isElementContainingFrame(allElements, element, frame, elementsMap),\n ),\n ]);\n\n const elementsNotCompletelyInFrame = prevElementsInFrame.filter(\n (element) => !elementsCompletelyInFrame.has(element),\n );\n\n // for elements that are completely in the frame\n // if they are part of some groups, then those groups are still\n // considered to belong to the frame\n const groupsToKeep = new Set(\n Array.from(elementsCompletelyInFrame).flatMap(\n (element) => element.groupIds,\n ),\n );\n\n for (const element of elementsNotCompletelyInFrame) {\n if (!isElementIntersectingFrame(element, frame, elementsMap)) {\n if (element.groupIds.length === 0) {\n nextElementsInFrame.delete(element);\n }\n } else if (element.groupIds.length > 0) {\n // group element intersects with the frame, we should keep the groups\n // that this element is part of\n for (const id of element.groupIds) {\n groupsToKeep.add(id);\n }\n }\n }\n\n for (const element of elementsNotCompletelyInFrame) {\n if (element.groupIds.length > 0) {\n let shouldRemoveElement = true;\n\n for (const id of element.groupIds) {\n if (groupsToKeep.has(id)) {\n shouldRemoveElement = false;\n }\n }\n\n if (shouldRemoveElement) {\n nextElementsInFrame.delete(element);\n }\n }\n }\n\n const individualElementsCompletelyInFrame = Array.from(\n elementsCompletelyInFrame,\n ).filter((element) => element.groupIds.length === 0);\n\n for (const element of individualElementsCompletelyInFrame) {\n nextElementsInFrame.add(element);\n }\n\n const newGroupElementsCompletelyInFrame = Array.from(\n elementsCompletelyInFrame,\n ).filter((element) => element.groupIds.length > 0);\n\n const groupIds = selectGroupsFromGivenElements(\n newGroupElementsCompletelyInFrame,\n appState,\n );\n\n // new group elements\n for (const [id, isSelected] of Object.entries(groupIds)) {\n if (isSelected) {\n const elementsInGroup = getElementsInGroup(allElements, id);\n\n if (elementsAreInFrameBounds(elementsInGroup, frame, elementsMap)) {\n for (const element of elementsInGroup) {\n nextElementsInFrame.add(element);\n }\n }\n }\n }\n\n return [...nextElementsInFrame].filter((element) => {\n return !(isTextElement(element) && element.containerId);\n });\n};\n\nexport const getElementsInNewFrame = (\n elements: ExcalidrawElementsIncludingDeleted,\n frame: ExcalidrawFrameLikeElement,\n elementsMap: ElementsMap,\n) => {\n return omitGroupsContainingFrameLikes(\n elements,\n getElementsCompletelyInFrame(elements, frame, elementsMap),\n );\n};\n\nexport const getContainingFrame = (\n element: ExcalidrawElement,\n elementsMap: ElementsMap,\n) => {\n if (!element.frameId) {\n return null;\n }\n return (elementsMap.get(element.frameId) ||\n null) as null | ExcalidrawFrameLikeElement;\n};\n\n// --------------------------- Frame Operations -------------------------------\n\n/** */\nexport const filterElementsEligibleAsFrameChildren = (\n elements: readonly ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n const otherFrames = new Set();\n const elementsMap = arrayToMap(elements);\n elements = omitGroupsContainingFrameLikes(elements);\n\n for (const element of elements) {\n if (isFrameLikeElement(element) && element.id !== frame.id) {\n otherFrames.add(element.id);\n }\n }\n\n const processedGroups = new Set();\n\n const eligibleElements: ExcalidrawElement[] = [];\n\n for (const element of elements) {\n // don't add frames or their children\n if (\n isFrameLikeElement(element) ||\n (element.frameId && otherFrames.has(element.frameId))\n ) {\n continue;\n }\n\n if (element.groupIds.length) {\n const shallowestGroupId = element.groupIds.at(-1)!;\n if (!processedGroups.has(shallowestGroupId)) {\n processedGroups.add(shallowestGroupId);\n const groupElements = getElementsInGroup(elements, shallowestGroupId);\n if (\n groupElements.some((el) =>\n elementOverlapsWithFrame(el, frame, elementsMap),\n )\n ) {\n for (const child of groupElements) {\n eligibleElements.push(child);\n }\n }\n }\n } else {\n const overlaps = elementOverlapsWithFrame(element, frame, elementsMap);\n if (overlaps) {\n eligibleElements.push(element);\n }\n }\n }\n\n return eligibleElements;\n};\n\n/**\n * Retains (or repairs for target frame) the ordering invriant where children\n * elements come right before the parent frame:\n * [el, el, child, child, frame, el]\n *\n * @returns mutated allElements (same data structure)\n */\nexport const addElementsToFrame = (\n allElements: T,\n elementsToAdd: NonDeletedExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n): T => {\n const elementsMap = arrayToMap(allElements);\n const currTargetFrameChildrenMap = new Map();\n for (const element of allElements.values()) {\n if (element.frameId === frame.id) {\n currTargetFrameChildrenMap.set(element.id, true);\n }\n }\n\n const suppliedElementsToAddSet = new Set(elementsToAdd.map((el) => el.id));\n\n const finalElementsToAdd: ExcalidrawElement[] = [];\n\n const otherFrames = new Set();\n\n for (const element of elementsToAdd) {\n if (isFrameLikeElement(element) && element.id !== frame.id) {\n otherFrames.add(element.id);\n }\n }\n\n // - add bound text elements if not already in the array\n // - filter out elements that are already in the frame\n for (const element of omitGroupsContainingFrameLikes(\n allElements,\n elementsToAdd,\n )) {\n // don't add frames or their children\n if (\n isFrameLikeElement(element) ||\n (element.frameId && otherFrames.has(element.frameId))\n ) {\n continue;\n }\n\n if (!currTargetFrameChildrenMap.has(element.id)) {\n finalElementsToAdd.push(element);\n }\n\n const boundTextElement = getBoundTextElement(element, elementsMap);\n if (\n boundTextElement &&\n !suppliedElementsToAddSet.has(boundTextElement.id) &&\n !currTargetFrameChildrenMap.has(boundTextElement.id)\n ) {\n finalElementsToAdd.push(boundTextElement);\n }\n }\n\n for (const element of finalElementsToAdd) {\n mutateElement(\n element,\n {\n frameId: frame.id,\n },\n false,\n );\n }\n\n return allElements;\n};\n\nexport const removeElementsFromFrame = (\n elementsToRemove: ReadonlySetLike,\n elementsMap: ElementsMap,\n) => {\n const _elementsToRemove = new Map<\n ExcalidrawElement[\"id\"],\n ExcalidrawElement\n >();\n\n const toRemoveElementsByFrame = new Map<\n ExcalidrawFrameLikeElement[\"id\"],\n ExcalidrawElement[]\n >();\n\n for (const element of elementsToRemove) {\n if (element.frameId) {\n _elementsToRemove.set(element.id, element);\n\n const arr = toRemoveElementsByFrame.get(element.frameId) || [];\n arr.push(element);\n\n const boundTextElement = getBoundTextElement(element, elementsMap);\n if (boundTextElement) {\n _elementsToRemove.set(boundTextElement.id, boundTextElement);\n arr.push(boundTextElement);\n }\n\n toRemoveElementsByFrame.set(element.frameId, arr);\n }\n }\n\n for (const [, element] of _elementsToRemove) {\n mutateElement(\n element,\n {\n frameId: null,\n },\n false,\n );\n }\n};\n\nexport const removeAllElementsFromFrame = (\n allElements: readonly T[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n const elementsInFrame = getFrameChildren(allElements, frame.id);\n removeElementsFromFrame(elementsInFrame, arrayToMap(allElements));\n return allElements;\n};\n\nexport const replaceAllElementsInFrame = (\n allElements: readonly T[],\n nextElementsInFrame: ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n app: AppClassProperties,\n): T[] => {\n return addElementsToFrame(\n removeAllElementsFromFrame(allElements, frame),\n nextElementsInFrame,\n frame,\n ).slice();\n};\n\n/** does not mutate elements, but returns new ones */\nexport const updateFrameMembershipOfSelectedElements = <\n T extends ElementsMapOrArray,\n>(\n allElements: T,\n appState: AppState,\n app: AppClassProperties,\n) => {\n const selectedElements = app.scene.getSelectedElements({\n selectedElementIds: appState.selectedElementIds,\n // supplying elements explicitly in case we're passed non-state elements\n elements: allElements,\n });\n const elementsToFilter = new Set(selectedElements);\n\n if (appState.editingGroupId) {\n for (const element of selectedElements) {\n if (element.groupIds.length === 0) {\n elementsToFilter.add(element);\n } else {\n element.groupIds\n .flatMap((gid) => getElementsInGroup(allElements, gid))\n .forEach((element) => elementsToFilter.add(element));\n }\n }\n }\n\n const elementsToRemove = new Set();\n\n const elementsMap = arrayToMap(allElements);\n\n elementsToFilter.forEach((element) => {\n if (\n element.frameId &&\n !isFrameLikeElement(element) &&\n !isElementInFrame(element, elementsMap, appState)\n ) {\n elementsToRemove.add(element);\n }\n });\n\n if (elementsToRemove.size > 0) {\n removeElementsFromFrame(elementsToRemove, elementsMap);\n }\n return allElements;\n};\n\n/**\n * filters out elements that are inside groups that contain a frame element\n * anywhere in the group tree\n */\nexport const omitGroupsContainingFrameLikes = (\n allElements: ElementsMapOrArray,\n /** subset of elements you want to filter. Optional perf optimization so we\n * don't have to filter all elements unnecessarily\n */\n selectedElements?: readonly ExcalidrawElement[],\n) => {\n const uniqueGroupIds = new Set();\n const elements = selectedElements || allElements;\n\n for (const el of elements.values()) {\n const topMostGroupId = el.groupIds[el.groupIds.length - 1];\n if (topMostGroupId) {\n uniqueGroupIds.add(topMostGroupId);\n }\n }\n\n const rejectedGroupIds = new Set();\n for (const groupId of uniqueGroupIds) {\n if (\n getElementsInGroup(allElements, groupId).some((el) =>\n isFrameLikeElement(el),\n )\n ) {\n rejectedGroupIds.add(groupId);\n }\n }\n\n const ret: ExcalidrawElement[] = [];\n\n for (const element of elements.values()) {\n if (!rejectedGroupIds.has(element.groupIds[element.groupIds.length - 1])) {\n ret.push(element);\n }\n }\n\n return ret;\n};\n\n/**\n * depending on the appState, return target frame, which is the frame the given element\n * is going to be added to or remove from\n */\nexport const getTargetFrame = (\n element: ExcalidrawElement,\n elementsMap: ElementsMap,\n appState: StaticCanvasAppState,\n) => {\n const _element = isTextElement(element)\n ? getContainerElement(element, elementsMap) || element\n : element;\n\n return appState.selectedElementIds[_element.id] &&\n appState.selectedElementsAreBeingDragged\n ? appState.frameToHighlight\n : getContainingFrame(_element, elementsMap);\n};\n\n// TODO: this a huge bottleneck for large scenes, optimise\n// given an element, return if the element is in some frame\nexport const isElementInFrame = (\n element: ExcalidrawElement,\n allElementsMap: ElementsMap,\n appState: StaticCanvasAppState,\n) => {\n const frame = getTargetFrame(element, allElementsMap, appState);\n const _element = isTextElement(element)\n ? getContainerElement(element, allElementsMap) || element\n : element;\n\n if (frame) {\n // Perf improvement:\n // For an element that's already in a frame, if it's not being dragged\n // then there is no need to refer to geometry (which, yes, is slow) to check if it's in a frame.\n // It has to be in its containing frame.\n if (\n !appState.selectedElementIds[element.id] ||\n !appState.selectedElementsAreBeingDragged\n ) {\n return true;\n }\n\n if (_element.groupIds.length === 0) {\n return elementOverlapsWithFrame(_element, frame, allElementsMap);\n }\n\n const allElementsInGroup = new Set(\n _element.groupIds.flatMap((gid) =>\n getElementsInGroup(allElementsMap, gid),\n ),\n );\n\n if (appState.editingGroupId && appState.selectedElementsAreBeingDragged) {\n const selectedElements = new Set(\n getSelectedElements(allElementsMap, appState),\n );\n\n const editingGroupOverlapsFrame = appState.frameToHighlight !== null;\n\n if (editingGroupOverlapsFrame) {\n return true;\n }\n\n selectedElements.forEach((selectedElement) => {\n allElementsInGroup.delete(selectedElement);\n });\n }\n\n for (const elementInGroup of allElementsInGroup) {\n if (isFrameLikeElement(elementInGroup)) {\n return false;\n }\n }\n\n for (const elementInGroup of allElementsInGroup) {\n if (elementOverlapsWithFrame(elementInGroup, frame, allElementsMap)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport const getFrameLikeTitle = (\n element: ExcalidrawFrameLikeElement,\n frameIdx: number,\n) => {\n // TODO name frames \"AI\" only if specific to AI frames\n return element.name === null\n ? isFrameElement(element)\n ? `Frame ${frameIdx}`\n : `AI Frame $${frameIdx}`\n : element.name;\n};\n\nexport const getElementsOverlappingFrame = (\n elements: readonly ExcalidrawElement[],\n frame: ExcalidrawFrameLikeElement,\n) => {\n return (\n elementsOverlappingBBox({\n elements,\n bounds: frame,\n type: \"overlap\",\n })\n // removes elements who are overlapping, but are in a different frame,\n // and thus invisible in target frame\n .filter((el) => !el.frameId || el.frameId === frame.id)\n );\n};\n","import {\n ExcalidrawElement,\n ExcalidrawTextElement,\n NonDeletedExcalidrawElement,\n ExcalidrawFreeDrawElement,\n ExcalidrawImageElement,\n ExcalidrawTextElementWithContainer,\n ExcalidrawFrameLikeElement,\n NonDeletedSceneElementsMap,\n ElementsMap,\n} from \"../element/types\";\nimport {\n isTextElement,\n isLinearElement,\n isFreeDrawElement,\n isInitializedImageElement,\n isArrowElement,\n hasBoundTextElement,\n isMagicFrameElement,\n} from \"../element/typeChecks\";\nimport { getElementAbsoluteCoords } from \"../element/bounds\";\nimport type { RoughCanvas } from \"roughjs/bin/canvas\";\n\nimport {\n StaticCanvasRenderConfig,\n RenderableElementsMap,\n} from \"../scene/types\";\nimport { distance, getFontString, isRTL } from \"../utils\";\nimport { getCornerRadius, isRightAngle } from \"../math\";\nimport rough from \"roughjs/bin/rough\";\nimport {\n AppState,\n StaticCanvasAppState,\n Zoom,\n InteractiveCanvasAppState,\n ElementsPendingErasure,\n} from \"../types\";\nimport { getDefaultAppState } from \"../appState\";\nimport {\n BOUND_TEXT_PADDING,\n ELEMENT_READY_TO_ERASE_OPACITY,\n FRAME_STYLE,\n MIME_TYPES,\n} from \"../constants\";\nimport { getStroke, StrokeOptions } from \"perfect-freehand\";\nimport {\n getBoundTextElement,\n getContainerCoords,\n getContainerElement,\n getLineHeightInPx,\n getBoundTextMaxHeight,\n getBoundTextMaxWidth,\n getVerticalOffset,\n} from \"../element/textElement\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\n\nimport { getContainingFrame } from \"../frame\";\nimport { ShapeCache } from \"../scene/ShapeCache\";\n\n// using a stronger invert (100% vs our regular 93%) and saturate\n// as a temp hack to make images in dark theme look closer to original\n// color scheme (it's still not quite there and the colors look slightly\n// desatured, alas...)\nexport const IMAGE_INVERT_FILTER =\n \"invert(100%) hue-rotate(180deg) saturate(1.25)\";\n\nconst defaultAppState = getDefaultAppState();\n\nconst isPendingImageElement = (\n element: ExcalidrawElement,\n renderConfig: StaticCanvasRenderConfig,\n) =>\n isInitializedImageElement(element) &&\n !renderConfig.imageCache.has(element.fileId);\n\nconst shouldResetImageFilter = (\n element: ExcalidrawElement,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n return (\n appState.theme === \"dark\" &&\n isInitializedImageElement(element) &&\n !isPendingImageElement(element, renderConfig) &&\n renderConfig.imageCache.get(element.fileId)?.mimeType !== MIME_TYPES.svg\n );\n};\n\nconst getCanvasPadding = (element: ExcalidrawElement) =>\n element.type === \"freedraw\" ? element.strokeWidth * 12 : 20;\n\nexport const getRenderOpacity = (\n element: ExcalidrawElement,\n containingFrame: ExcalidrawFrameLikeElement | null,\n elementsPendingErasure: ElementsPendingErasure,\n) => {\n // multiplying frame opacity with element opacity to combine them\n // (e.g. frame 50% and element 50% opacity should result in 25% opacity)\n let opacity = ((containingFrame?.opacity ?? 100) * element.opacity) / 10000;\n\n // if pending erasure, multiply again to combine further\n // (so that erasing always results in lower opacity than original)\n if (\n elementsPendingErasure.has(element.id) ||\n (containingFrame && elementsPendingErasure.has(containingFrame.id))\n ) {\n opacity *= ELEMENT_READY_TO_ERASE_OPACITY / 100;\n }\n\n return opacity;\n};\n\nexport interface ExcalidrawElementWithCanvas {\n element: ExcalidrawElement | ExcalidrawTextElement;\n canvas: HTMLCanvasElement;\n theme: AppState[\"theme\"];\n scale: number;\n zoomValue: AppState[\"zoom\"][\"value\"];\n canvasOffsetX: number;\n canvasOffsetY: number;\n boundTextElementVersion: number | null;\n containingFrameOpacity: number;\n}\n\nconst cappedElementCanvasSize = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n zoom: Zoom,\n): {\n width: number;\n height: number;\n scale: number;\n} => {\n // these limits are ballpark, they depend on specific browsers and device.\n // We've chosen lower limits to be safe. We might want to change these limits\n // based on browser/device type, if we get reports of low quality rendering\n // on zoom.\n //\n // ~ safari mobile canvas area limit\n const AREA_LIMIT = 16777216;\n // ~ safari width/height limit based on developer.mozilla.org.\n const WIDTH_HEIGHT_LIMIT = 32767;\n\n const padding = getCanvasPadding(element);\n\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const elementWidth =\n isLinearElement(element) || isFreeDrawElement(element)\n ? distance(x1, x2)\n : element.width;\n const elementHeight =\n isLinearElement(element) || isFreeDrawElement(element)\n ? distance(y1, y2)\n : element.height;\n\n let width = elementWidth * window.devicePixelRatio + padding * 2;\n let height = elementHeight * window.devicePixelRatio + padding * 2;\n\n let scale: number = zoom.value;\n\n // rescale to ensure width and height is within limits\n if (\n width * scale > WIDTH_HEIGHT_LIMIT ||\n height * scale > WIDTH_HEIGHT_LIMIT\n ) {\n scale = Math.min(WIDTH_HEIGHT_LIMIT / width, WIDTH_HEIGHT_LIMIT / height);\n }\n\n // rescale to ensure canvas area is within limits\n if (width * height * scale * scale > AREA_LIMIT) {\n scale = Math.sqrt(AREA_LIMIT / (width * height));\n }\n\n width = Math.floor(width * scale);\n height = Math.floor(height * scale);\n\n return { width, height, scale };\n};\n\nconst generateElementCanvas = (\n element: NonDeletedExcalidrawElement,\n elementsMap: RenderableElementsMap,\n zoom: Zoom,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n): ExcalidrawElementWithCanvas => {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n const padding = getCanvasPadding(element);\n\n const { width, height, scale } = cappedElementCanvasSize(\n element,\n elementsMap,\n zoom,\n );\n\n canvas.width = width;\n canvas.height = height;\n\n let canvasOffsetX = 0;\n let canvasOffsetY = 0;\n\n if (isLinearElement(element) || isFreeDrawElement(element)) {\n const [x1, y1] = getElementAbsoluteCoords(element, elementsMap);\n\n canvasOffsetX =\n element.x > x1\n ? distance(element.x, x1) * window.devicePixelRatio * scale\n : 0;\n\n canvasOffsetY =\n element.y > y1\n ? distance(element.y, y1) * window.devicePixelRatio * scale\n : 0;\n\n context.translate(canvasOffsetX, canvasOffsetY);\n }\n\n context.save();\n context.translate(padding * scale, padding * scale);\n context.scale(\n window.devicePixelRatio * scale,\n window.devicePixelRatio * scale,\n );\n\n const rc = rough.canvas(canvas);\n\n // in dark theme, revert the image color filter\n if (shouldResetImageFilter(element, renderConfig, appState)) {\n context.filter = IMAGE_INVERT_FILTER;\n }\n\n drawElementOnCanvas(element, rc, context, renderConfig, appState);\n context.restore();\n\n return {\n element,\n canvas,\n theme: appState.theme,\n scale,\n zoomValue: zoom.value,\n canvasOffsetX,\n canvasOffsetY,\n boundTextElementVersion:\n getBoundTextElement(element, elementsMap)?.version || null,\n containingFrameOpacity:\n getContainingFrame(element, elementsMap)?.opacity || 100,\n };\n};\n\nexport const DEFAULT_LINK_SIZE = 14;\n\nconst IMAGE_PLACEHOLDER_IMG = document.createElement(\"img\");\nIMAGE_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(\n ``,\n)}`;\n\nconst IMAGE_ERROR_PLACEHOLDER_IMG = document.createElement(\"img\");\nIMAGE_ERROR_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(\n ``,\n)}`;\n\nconst drawImagePlaceholder = (\n element: ExcalidrawImageElement,\n context: CanvasRenderingContext2D,\n zoomValue: AppState[\"zoom\"][\"value\"],\n) => {\n context.fillStyle = \"#E7E7E7\";\n context.fillRect(0, 0, element.width, element.height);\n\n const imageMinWidthOrHeight = Math.min(element.width, element.height);\n\n const size = Math.min(\n imageMinWidthOrHeight,\n Math.min(imageMinWidthOrHeight * 0.4, 100),\n );\n\n context.drawImage(\n element.status === \"error\"\n ? IMAGE_ERROR_PLACEHOLDER_IMG\n : IMAGE_PLACEHOLDER_IMG,\n element.width / 2 - size / 2,\n element.height / 2 - size / 2,\n size,\n size,\n );\n};\n\nconst drawElementOnCanvas = (\n element: NonDeletedExcalidrawElement,\n rc: RoughCanvas,\n context: CanvasRenderingContext2D,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n switch (element.type) {\n case \"rectangle\":\n case \"iframe\":\n case \"embeddable\":\n case \"diamond\":\n case \"ellipse\": {\n context.lineJoin = \"round\";\n context.lineCap = \"round\";\n rc.draw(ShapeCache.get(element)!);\n break;\n }\n case \"arrow\":\n case \"line\": {\n context.lineJoin = \"round\";\n context.lineCap = \"round\";\n\n ShapeCache.get(element)!.forEach((shape) => {\n rc.draw(shape);\n });\n break;\n }\n case \"freedraw\": {\n // Draw directly to canvas\n context.save();\n context.fillStyle = element.strokeColor;\n\n const path = getFreeDrawPath2D(element) as Path2D;\n const fillShape = ShapeCache.get(element);\n\n if (fillShape) {\n rc.draw(fillShape);\n }\n\n context.fillStyle = element.strokeColor;\n context.fill(path);\n\n context.restore();\n break;\n }\n case \"image\": {\n const img = isInitializedImageElement(element)\n ? renderConfig.imageCache.get(element.fileId)?.image\n : undefined;\n if (img != null && !(img instanceof Promise)) {\n if (element.roundness && context.roundRect) {\n context.beginPath();\n context.roundRect(\n 0,\n 0,\n element.width,\n element.height,\n getCornerRadius(Math.min(element.width, element.height), element),\n );\n context.clip();\n }\n context.drawImage(\n img,\n 0 /* hardcoded for the selection box*/,\n 0,\n element.width,\n element.height,\n );\n } else {\n drawImagePlaceholder(element, context, appState.zoom.value);\n }\n break;\n }\n default: {\n if (isTextElement(element)) {\n const rtl = isRTL(element.text);\n const shouldTemporarilyAttach = rtl && !context.canvas.isConnected;\n if (shouldTemporarilyAttach) {\n // to correctly render RTL text mixed with LTR, we have to append it\n // to the DOM\n document.body.appendChild(context.canvas);\n }\n context.canvas.setAttribute(\"dir\", rtl ? \"rtl\" : \"ltr\");\n context.save();\n context.font = getFontString(element);\n context.fillStyle = element.strokeColor;\n context.textAlign = element.textAlign as CanvasTextAlign;\n\n // Canvas does not support multiline text by default\n const lines = element.text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\");\n\n const horizontalOffset =\n element.textAlign === \"center\"\n ? element.width / 2\n : element.textAlign === \"right\"\n ? element.width\n : 0;\n\n const lineHeightPx = getLineHeightInPx(\n element.fontSize,\n element.lineHeight,\n );\n\n const verticalOffset = getVerticalOffset(\n element.fontFamily,\n element.fontSize,\n lineHeightPx,\n );\n\n for (let index = 0; index < lines.length; index++) {\n context.fillText(\n lines[index],\n horizontalOffset,\n index * lineHeightPx + verticalOffset,\n );\n }\n context.restore();\n if (shouldTemporarilyAttach) {\n context.canvas.remove();\n }\n } else {\n throw new Error(`Unimplemented type ${element.type}`);\n }\n }\n }\n};\n\nexport const elementWithCanvasCache = new WeakMap<\n ExcalidrawElement,\n ExcalidrawElementWithCanvas\n>();\n\nconst generateElementWithCanvas = (\n element: NonDeletedExcalidrawElement,\n elementsMap: RenderableElementsMap,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n const zoom: Zoom = renderConfig ? appState.zoom : defaultAppState.zoom;\n const prevElementWithCanvas = elementWithCanvasCache.get(element);\n const shouldRegenerateBecauseZoom =\n prevElementWithCanvas &&\n prevElementWithCanvas.zoomValue !== zoom.value &&\n !appState?.shouldCacheIgnoreZoom;\n const boundTextElementVersion =\n getBoundTextElement(element, elementsMap)?.version || null;\n\n const containingFrameOpacity =\n getContainingFrame(element, elementsMap)?.opacity || 100;\n\n if (\n !prevElementWithCanvas ||\n shouldRegenerateBecauseZoom ||\n prevElementWithCanvas.theme !== appState.theme ||\n prevElementWithCanvas.boundTextElementVersion !== boundTextElementVersion ||\n prevElementWithCanvas.containingFrameOpacity !== containingFrameOpacity\n ) {\n const elementWithCanvas = generateElementCanvas(\n element,\n elementsMap,\n zoom,\n renderConfig,\n appState,\n );\n\n elementWithCanvasCache.set(element, elementWithCanvas);\n\n return elementWithCanvas;\n }\n return prevElementWithCanvas;\n};\n\nconst drawElementFromCanvas = (\n elementWithCanvas: ExcalidrawElementWithCanvas,\n context: CanvasRenderingContext2D,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n allElementsMap: NonDeletedSceneElementsMap,\n) => {\n const element = elementWithCanvas.element;\n const padding = getCanvasPadding(element);\n const zoom = elementWithCanvas.scale;\n let [x1, y1, x2, y2] = getElementAbsoluteCoords(element, allElementsMap);\n\n // Free draw elements will otherwise \"shuffle\" as the min x and y change\n if (isFreeDrawElement(element)) {\n x1 = Math.floor(x1);\n x2 = Math.ceil(x2);\n y1 = Math.floor(y1);\n y2 = Math.ceil(y2);\n }\n\n const cx = ((x1 + x2) / 2 + appState.scrollX) * window.devicePixelRatio;\n const cy = ((y1 + y2) / 2 + appState.scrollY) * window.devicePixelRatio;\n\n context.save();\n context.scale(1 / window.devicePixelRatio, 1 / window.devicePixelRatio);\n\n const boundTextElement = getBoundTextElement(element, allElementsMap);\n\n if (isArrowElement(element) && boundTextElement) {\n const tempCanvas = document.createElement(\"canvas\");\n const tempCanvasContext = tempCanvas.getContext(\"2d\")!;\n\n // Take max dimensions of arrow canvas so that when canvas is rotated\n // the arrow doesn't get clipped\n const maxDim = Math.max(distance(x1, x2), distance(y1, y2));\n tempCanvas.width =\n maxDim * window.devicePixelRatio * zoom +\n padding * elementWithCanvas.scale * 10;\n tempCanvas.height =\n maxDim * window.devicePixelRatio * zoom +\n padding * elementWithCanvas.scale * 10;\n const offsetX = (tempCanvas.width - elementWithCanvas.canvas!.width) / 2;\n const offsetY = (tempCanvas.height - elementWithCanvas.canvas!.height) / 2;\n\n tempCanvasContext.translate(tempCanvas.width / 2, tempCanvas.height / 2);\n tempCanvasContext.rotate(element.angle);\n\n tempCanvasContext.drawImage(\n elementWithCanvas.canvas!,\n -elementWithCanvas.canvas.width / 2,\n -elementWithCanvas.canvas.height / 2,\n elementWithCanvas.canvas.width,\n elementWithCanvas.canvas.height,\n );\n\n const [, , , , boundTextCx, boundTextCy] = getElementAbsoluteCoords(\n boundTextElement,\n allElementsMap,\n );\n\n tempCanvasContext.rotate(-element.angle);\n\n // Shift the canvas to the center of the bound text element\n const shiftX =\n tempCanvas.width / 2 -\n (boundTextCx - x1) * window.devicePixelRatio * zoom -\n offsetX -\n padding * zoom;\n\n const shiftY =\n tempCanvas.height / 2 -\n (boundTextCy - y1) * window.devicePixelRatio * zoom -\n offsetY -\n padding * zoom;\n tempCanvasContext.translate(-shiftX, -shiftY);\n // Clear the bound text area\n tempCanvasContext.clearRect(\n -(boundTextElement.width / 2 + BOUND_TEXT_PADDING) *\n window.devicePixelRatio *\n zoom,\n -(boundTextElement.height / 2 + BOUND_TEXT_PADDING) *\n window.devicePixelRatio *\n zoom,\n (boundTextElement.width + BOUND_TEXT_PADDING * 2) *\n window.devicePixelRatio *\n zoom,\n (boundTextElement.height + BOUND_TEXT_PADDING * 2) *\n window.devicePixelRatio *\n zoom,\n );\n\n context.translate(cx, cy);\n context.drawImage(\n tempCanvas,\n (-(x2 - x1) / 2) * window.devicePixelRatio - offsetX / zoom - padding,\n (-(y2 - y1) / 2) * window.devicePixelRatio - offsetY / zoom - padding,\n tempCanvas.width / zoom,\n tempCanvas.height / zoom,\n );\n } else {\n // we translate context to element center so that rotation and scale\n // originates from the element center\n context.translate(cx, cy);\n\n context.rotate(element.angle);\n\n if (\n \"scale\" in elementWithCanvas.element &&\n !isPendingImageElement(element, renderConfig)\n ) {\n context.scale(\n elementWithCanvas.element.scale[0],\n elementWithCanvas.element.scale[1],\n );\n }\n\n // revert afterwards we don't have account for it during drawing\n context.translate(-cx, -cy);\n\n context.drawImage(\n elementWithCanvas.canvas!,\n (x1 + appState.scrollX) * window.devicePixelRatio -\n (padding * elementWithCanvas.scale) / elementWithCanvas.scale,\n (y1 + appState.scrollY) * window.devicePixelRatio -\n (padding * elementWithCanvas.scale) / elementWithCanvas.scale,\n elementWithCanvas.canvas!.width / elementWithCanvas.scale,\n elementWithCanvas.canvas!.height / elementWithCanvas.scale,\n );\n\n if (\n import.meta.env.VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX ===\n \"true\" &&\n hasBoundTextElement(element)\n ) {\n const textElement = getBoundTextElement(\n element,\n allElementsMap,\n ) as ExcalidrawTextElementWithContainer;\n const coords = getContainerCoords(element);\n context.strokeStyle = \"#c92a2a\";\n context.lineWidth = 3;\n context.strokeRect(\n (coords.x + appState.scrollX) * window.devicePixelRatio,\n (coords.y + appState.scrollY) * window.devicePixelRatio,\n getBoundTextMaxWidth(element, textElement) * window.devicePixelRatio,\n getBoundTextMaxHeight(element, textElement) * window.devicePixelRatio,\n );\n }\n }\n context.restore();\n\n // Clear the nested element we appended to the DOM\n};\n\nexport const renderSelectionElement = (\n element: NonDeletedExcalidrawElement,\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n) => {\n context.save();\n context.translate(element.x + appState.scrollX, element.y + appState.scrollY);\n context.fillStyle = \"rgba(0, 0, 200, 0.04)\";\n\n // render from 0.5px offset to get 1px wide line\n // https://stackoverflow.com/questions/7530593/html5-canvas-and-line-width/7531540#7531540\n // TODO can be be improved by offseting to the negative when user selects\n // from right to left\n const offset = 0.5 / appState.zoom.value;\n\n context.fillRect(offset, offset, element.width, element.height);\n context.lineWidth = 1 / appState.zoom.value;\n context.strokeStyle = \" rgb(105, 101, 219)\";\n context.strokeRect(offset, offset, element.width, element.height);\n\n context.restore();\n};\n\nexport const renderElement = (\n element: NonDeletedExcalidrawElement,\n elementsMap: RenderableElementsMap,\n allElementsMap: NonDeletedSceneElementsMap,\n rc: RoughCanvas,\n context: CanvasRenderingContext2D,\n renderConfig: StaticCanvasRenderConfig,\n appState: StaticCanvasAppState,\n) => {\n context.globalAlpha = getRenderOpacity(\n element,\n getContainingFrame(element, elementsMap),\n renderConfig.elementsPendingErasure,\n );\n\n switch (element.type) {\n case \"magicframe\":\n case \"frame\": {\n if (appState.frameRendering.enabled && appState.frameRendering.outline) {\n context.save();\n context.translate(\n element.x + appState.scrollX,\n element.y + appState.scrollY,\n );\n context.fillStyle = \"rgba(0, 0, 200, 0.04)\";\n\n context.lineWidth = FRAME_STYLE.strokeWidth / appState.zoom.value;\n context.strokeStyle = FRAME_STYLE.strokeColor;\n\n // TODO change later to only affect AI frames\n if (isMagicFrameElement(element)) {\n context.strokeStyle =\n appState.theme === \"light\" ? \"#7affd7\" : \"#1d8264\";\n }\n\n if (FRAME_STYLE.radius && context.roundRect) {\n context.beginPath();\n context.roundRect(\n 0,\n 0,\n element.width,\n element.height,\n FRAME_STYLE.radius / appState.zoom.value,\n );\n context.stroke();\n context.closePath();\n } else {\n context.strokeRect(0, 0, element.width, element.height);\n }\n\n context.restore();\n }\n break;\n }\n case \"freedraw\": {\n // TODO investigate if we can do this in situ. Right now we need to call\n // beforehand because math helpers (such as getElementAbsoluteCoords)\n // rely on existing shapes\n ShapeCache.generateElementShape(element, null);\n\n if (renderConfig.isExporting) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const cx = (x1 + x2) / 2 + appState.scrollX;\n const cy = (y1 + y2) / 2 + appState.scrollY;\n const shiftX = (x2 - x1) / 2 - (element.x - x1);\n const shiftY = (y2 - y1) / 2 - (element.y - y1);\n context.save();\n context.translate(cx, cy);\n context.rotate(element.angle);\n context.translate(-shiftX, -shiftY);\n drawElementOnCanvas(element, rc, context, renderConfig, appState);\n context.restore();\n } else {\n const elementWithCanvas = generateElementWithCanvas(\n element,\n elementsMap,\n renderConfig,\n appState,\n );\n drawElementFromCanvas(\n elementWithCanvas,\n context,\n renderConfig,\n appState,\n allElementsMap,\n );\n }\n\n break;\n }\n case \"rectangle\":\n case \"diamond\":\n case \"ellipse\":\n case \"line\":\n case \"arrow\":\n case \"image\":\n case \"text\":\n case \"iframe\":\n case \"embeddable\": {\n // TODO investigate if we can do this in situ. Right now we need to call\n // beforehand because math helpers (such as getElementAbsoluteCoords)\n // rely on existing shapes\n ShapeCache.generateElementShape(element, renderConfig);\n if (renderConfig.isExporting) {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const cx = (x1 + x2) / 2 + appState.scrollX;\n const cy = (y1 + y2) / 2 + appState.scrollY;\n let shiftX = (x2 - x1) / 2 - (element.x - x1);\n let shiftY = (y2 - y1) / 2 - (element.y - y1);\n if (isTextElement(element)) {\n const container = getContainerElement(element, elementsMap);\n if (isArrowElement(container)) {\n const boundTextCoords =\n LinearElementEditor.getBoundTextElementPosition(\n container,\n element as ExcalidrawTextElementWithContainer,\n elementsMap,\n );\n shiftX = (x2 - x1) / 2 - (boundTextCoords.x - x1);\n shiftY = (y2 - y1) / 2 - (boundTextCoords.y - y1);\n }\n }\n context.save();\n context.translate(cx, cy);\n\n if (shouldResetImageFilter(element, renderConfig, appState)) {\n context.filter = \"none\";\n }\n const boundTextElement = getBoundTextElement(element, elementsMap);\n\n if (isArrowElement(element) && boundTextElement) {\n const tempCanvas = document.createElement(\"canvas\");\n\n const tempCanvasContext = tempCanvas.getContext(\"2d\")!;\n\n // Take max dimensions of arrow canvas so that when canvas is rotated\n // the arrow doesn't get clipped\n const maxDim = Math.max(distance(x1, x2), distance(y1, y2));\n const padding = getCanvasPadding(element);\n tempCanvas.width =\n maxDim * appState.exportScale + padding * 10 * appState.exportScale;\n tempCanvas.height =\n maxDim * appState.exportScale + padding * 10 * appState.exportScale;\n\n tempCanvasContext.translate(\n tempCanvas.width / 2,\n tempCanvas.height / 2,\n );\n tempCanvasContext.scale(appState.exportScale, appState.exportScale);\n\n // Shift the canvas to left most point of the arrow\n shiftX = element.width / 2 - (element.x - x1);\n shiftY = element.height / 2 - (element.y - y1);\n\n tempCanvasContext.rotate(element.angle);\n const tempRc = rough.canvas(tempCanvas);\n\n tempCanvasContext.translate(-shiftX, -shiftY);\n\n drawElementOnCanvas(\n element,\n tempRc,\n tempCanvasContext,\n renderConfig,\n appState,\n );\n\n tempCanvasContext.translate(shiftX, shiftY);\n\n tempCanvasContext.rotate(-element.angle);\n\n // Shift the canvas to center of bound text\n const [, , , , boundTextCx, boundTextCy] = getElementAbsoluteCoords(\n boundTextElement,\n elementsMap,\n );\n const boundTextShiftX = (x1 + x2) / 2 - boundTextCx;\n const boundTextShiftY = (y1 + y2) / 2 - boundTextCy;\n tempCanvasContext.translate(-boundTextShiftX, -boundTextShiftY);\n\n // Clear the bound text area\n tempCanvasContext.clearRect(\n -boundTextElement.width / 2,\n -boundTextElement.height / 2,\n boundTextElement.width,\n boundTextElement.height,\n );\n context.scale(1 / appState.exportScale, 1 / appState.exportScale);\n context.drawImage(\n tempCanvas,\n -tempCanvas.width / 2,\n -tempCanvas.height / 2,\n tempCanvas.width,\n tempCanvas.height,\n );\n } else {\n context.rotate(element.angle);\n\n if (element.type === \"image\") {\n // note: scale must be applied *after* rotating\n context.scale(element.scale[0], element.scale[1]);\n }\n\n context.translate(-shiftX, -shiftY);\n drawElementOnCanvas(element, rc, context, renderConfig, appState);\n }\n\n context.restore();\n // not exporting → optimized rendering (cache & render from element\n // canvases)\n } else {\n const elementWithCanvas = generateElementWithCanvas(\n element,\n elementsMap,\n renderConfig,\n appState,\n );\n\n const currentImageSmoothingStatus = context.imageSmoothingEnabled;\n\n if (\n // do not disable smoothing during zoom as blurry shapes look better\n // on low resolution (while still zooming in) than sharp ones\n !appState?.shouldCacheIgnoreZoom &&\n // angle is 0 -> always disable smoothing\n (!element.angle ||\n // or check if angle is a right angle in which case we can still\n // disable smoothing without adversely affecting the result\n isRightAngle(element.angle))\n ) {\n // Disabling smoothing makes output much sharper, especially for\n // text. Unless for non-right angles, where the aliasing is really\n // terrible on Chromium.\n //\n // Note that `context.imageSmoothingQuality=\"high\"` has almost\n // zero effect.\n //\n context.imageSmoothingEnabled = false;\n }\n\n drawElementFromCanvas(\n elementWithCanvas,\n context,\n renderConfig,\n appState,\n allElementsMap,\n );\n\n // reset\n context.imageSmoothingEnabled = currentImageSmoothingStatus;\n }\n break;\n }\n default: {\n // @ts-ignore\n throw new Error(`Unimplemented type ${element.type}`);\n }\n }\n\n context.globalAlpha = 1;\n};\n\nexport const pathsCache = new WeakMap([]);\n\nexport function generateFreeDrawShape(element: ExcalidrawFreeDrawElement) {\n const svgPathData = getFreeDrawSvgPath(element);\n const path = new Path2D(svgPathData);\n pathsCache.set(element, path);\n return path;\n}\n\nexport function getFreeDrawPath2D(element: ExcalidrawFreeDrawElement) {\n return pathsCache.get(element);\n}\n\nexport function getFreeDrawSvgPath(element: ExcalidrawFreeDrawElement) {\n // If input points are empty (should they ever be?) return a dot\n const inputPoints = element.simulatePressure\n ? element.points\n : element.points.length\n ? element.points.map(([x, y], i) => [x, y, element.pressures[i]])\n : [[0, 0, 0.5]];\n\n // Consider changing the options for simulated pressure vs real pressure\n const options: StrokeOptions = {\n simulatePressure: element.simulatePressure,\n size: element.strokeWidth * 4.25,\n thinning: 0.6,\n smoothing: 0.5,\n streamline: 0.5,\n easing: (t) => Math.sin((t * Math.PI) / 2), // https://easings.net/#easeOutSine\n last: !!element.lastCommittedPoint, // LastCommittedPoint is added on pointerup\n };\n\n return getSvgPathFromStroke(getStroke(inputPoints as number[][], options));\n}\n\nfunction med(A: number[], B: number[]) {\n return [(A[0] + B[0]) / 2, (A[1] + B[1]) / 2];\n}\n\n// Trim SVG path data so number are each two decimal points. This\n// improves SVG exports, and prevents rendering errors on points\n// with long decimals.\nconst TO_FIXED_PRECISION = /(\\s?[A-Z]?,?-?[0-9]*\\.[0-9]{0,2})(([0-9]|e|-)*)/g;\n\nfunction getSvgPathFromStroke(points: number[][]): string {\n if (!points.length) {\n return \"\";\n }\n\n const max = points.length - 1;\n\n return points\n .reduce(\n (acc, point, i, arr) => {\n if (i === max) {\n acc.push(point, med(point, arr[0]), \"L\", arr[0], \"Z\");\n } else {\n acc.push(point, med(point, arr[i + 1]));\n }\n return acc;\n },\n [\"M\", points[0], \"Q\"],\n )\n .join(\" \")\n .replace(TO_FIXED_PRECISION, \"$1\");\n}\n","import { Drawable } from \"roughjs/bin/core\";\nimport { RoughGenerator } from \"roughjs/bin/generator\";\nimport {\n ExcalidrawElement,\n ExcalidrawSelectionElement,\n} from \"../element/types\";\nimport { elementWithCanvasCache } from \"../renderer/renderElement\";\nimport { _generateElementShape } from \"./Shape\";\nimport { ElementShape, ElementShapes } from \"./types\";\nimport { COLOR_PALETTE } from \"../colors\";\nimport { AppState, EmbedsValidationStatus } from \"../types\";\n\nexport class ShapeCache {\n private static rg = new RoughGenerator();\n private static cache = new WeakMap();\n\n /**\n * Retrieves shape from cache if available. Use this only if shape\n * is optional and you have a fallback in case it's not cached.\n */\n public static get = (element: T) => {\n return ShapeCache.cache.get(\n element,\n ) as T[\"type\"] extends keyof ElementShapes\n ? ElementShapes[T[\"type\"]] | undefined\n : ElementShape | undefined;\n };\n\n public static set = (\n element: T,\n shape: T[\"type\"] extends keyof ElementShapes\n ? ElementShapes[T[\"type\"]]\n : Drawable,\n ) => ShapeCache.cache.set(element, shape);\n\n public static delete = (element: ExcalidrawElement) =>\n ShapeCache.cache.delete(element);\n\n public static destroy = () => {\n ShapeCache.cache = new WeakMap();\n };\n\n /**\n * Generates & caches shape for element if not already cached, otherwise\n * returns cached shape.\n */\n public static generateElementShape = <\n T extends Exclude,\n >(\n element: T,\n renderConfig: {\n isExporting: boolean;\n canvasBackgroundColor: AppState[\"viewBackgroundColor\"];\n embedsValidationStatus: EmbedsValidationStatus;\n } | null,\n ) => {\n // when exporting, always regenerated to guarantee the latest shape\n const cachedShape = renderConfig?.isExporting\n ? undefined\n : ShapeCache.get(element);\n\n // `null` indicates no rc shape applicable for this element type,\n // but it's considered a valid cache value (= do not regenerate)\n if (cachedShape !== undefined) {\n return cachedShape;\n }\n\n elementWithCanvasCache.delete(element);\n\n const shape = _generateElementShape(\n element,\n ShapeCache.rg,\n renderConfig || {\n isExporting: false,\n canvasBackgroundColor: COLOR_PALETTE.white,\n embedsValidationStatus: null,\n },\n ) as T[\"type\"] extends keyof ElementShapes\n ? ElementShapes[T[\"type\"]]\n : Drawable | null;\n\n ShapeCache.cache.set(element, shape);\n\n return shape;\n };\n}\n","import { ExcalidrawElement } from \"./types\";\nimport Scene from \"../scene/Scene\";\nimport { getSizeFromPoints } from \"../points\";\nimport { randomInteger } from \"../random\";\nimport { Point } from \"../types\";\nimport { getUpdatedTimestamp } from \"../utils\";\nimport { Mutable } from \"../utility-types\";\nimport { ShapeCache } from \"../scene/ShapeCache\";\n\ntype ElementUpdate = Omit<\n Partial,\n \"id\" | \"version\" | \"versionNonce\"\n>;\n\n// This function tracks updates of text elements for the purposes for collaboration.\n// The version is used to compare updates when more than one user is working in\n// the same drawing. Note: this will trigger the component to update. Make sure you\n// are calling it either from a React event handler or within unstable_batchedUpdates().\nexport const mutateElement = >(\n element: TElement,\n updates: ElementUpdate,\n informMutation = true,\n): TElement => {\n let didChange = false;\n\n // casting to any because can't use `in` operator\n // (see https://github.com/microsoft/TypeScript/issues/21732)\n const { points, fileId } = updates as any;\n\n if (typeof points !== \"undefined\") {\n updates = { ...getSizeFromPoints(points), ...updates };\n }\n\n for (const key in updates) {\n const value = (updates as any)[key];\n if (typeof value !== \"undefined\") {\n if (\n (element as any)[key] === value &&\n // if object, always update because its attrs could have changed\n // (except for specific keys we handle below)\n (typeof value !== \"object\" ||\n value === null ||\n key === \"groupIds\" ||\n key === \"scale\")\n ) {\n continue;\n }\n\n if (key === \"scale\") {\n const prevScale = (element as any)[key];\n const nextScale = value;\n if (prevScale[0] === nextScale[0] && prevScale[1] === nextScale[1]) {\n continue;\n }\n } else if (key === \"points\") {\n const prevPoints = (element as any)[key];\n const nextPoints = value;\n if (prevPoints.length === nextPoints.length) {\n let didChangePoints = false;\n let index = prevPoints.length;\n while (--index) {\n const prevPoint: Point = prevPoints[index];\n const nextPoint: Point = nextPoints[index];\n if (\n prevPoint[0] !== nextPoint[0] ||\n prevPoint[1] !== nextPoint[1]\n ) {\n didChangePoints = true;\n break;\n }\n }\n if (!didChangePoints) {\n continue;\n }\n }\n }\n\n (element as any)[key] = value;\n didChange = true;\n }\n }\n if (!didChange) {\n return element;\n }\n\n if (\n typeof updates.height !== \"undefined\" ||\n typeof updates.width !== \"undefined\" ||\n typeof fileId != \"undefined\" ||\n typeof points !== \"undefined\"\n ) {\n ShapeCache.delete(element);\n }\n\n element.version++;\n element.versionNonce = randomInteger();\n element.updated = getUpdatedTimestamp();\n\n if (informMutation) {\n Scene.getScene(element)?.informMutation();\n }\n\n return element;\n};\n\nexport const newElementWith = (\n element: TElement,\n updates: ElementUpdate,\n): TElement => {\n let didChange = false;\n for (const key in updates) {\n const value = (updates as any)[key];\n if (typeof value !== \"undefined\") {\n if (\n (element as any)[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)\n ) {\n continue;\n }\n didChange = true;\n }\n }\n\n if (!didChange) {\n return element;\n }\n\n return {\n ...element,\n ...updates,\n updated: getUpdatedTimestamp(),\n version: element.version + 1,\n versionNonce: randomInteger(),\n };\n};\n\n/**\n * Mutates element, bumping `version`, `versionNonce`, and `updated`.\n *\n * NOTE: does not trigger re-render.\n */\nexport const bumpVersion = >(\n element: T,\n version?: ExcalidrawElement[\"version\"],\n) => {\n element.version = (version ?? element.version) + 1;\n element.versionNonce = randomInteger();\n element.updated = getUpdatedTimestamp();\n return element;\n};\n","import { ElementsMap, ExcalidrawElement } from \"./types\";\nimport { mutateElement } from \"./mutateElement\";\nimport { isFreeDrawElement, isLinearElement } from \"./typeChecks\";\nimport { SHIFT_LOCKING_ANGLE } from \"../constants\";\nimport { AppState, Zoom } from \"../types\";\nimport { getElementBounds } from \"./bounds\";\nimport { viewportCoordsToSceneCoords } from \"../utils\";\n\nexport const isInvisiblySmallElement = (\n element: ExcalidrawElement,\n): boolean => {\n if (isLinearElement(element) || isFreeDrawElement(element)) {\n return element.points.length < 2;\n }\n return element.width === 0 && element.height === 0;\n};\n\nexport const isElementInViewport = (\n element: ExcalidrawElement,\n width: number,\n height: number,\n viewTransformations: {\n zoom: Zoom;\n offsetLeft: number;\n offsetTop: number;\n scrollX: number;\n scrollY: number;\n },\n elementsMap: ElementsMap,\n) => {\n const [x1, y1, x2, y2] = getElementBounds(element, elementsMap); // scene coordinates\n const topLeftSceneCoords = viewportCoordsToSceneCoords(\n {\n clientX: viewTransformations.offsetLeft,\n clientY: viewTransformations.offsetTop,\n },\n viewTransformations,\n );\n const bottomRightSceneCoords = viewportCoordsToSceneCoords(\n {\n clientX: viewTransformations.offsetLeft + width,\n clientY: viewTransformations.offsetTop + height,\n },\n viewTransformations,\n );\n\n return (\n topLeftSceneCoords.x <= x2 &&\n topLeftSceneCoords.y <= y2 &&\n bottomRightSceneCoords.x >= x1 &&\n bottomRightSceneCoords.y >= y1\n );\n};\n\n/**\n * Makes a perfect shape or diagonal/horizontal/vertical line\n */\nexport const getPerfectElementSize = (\n elementType: AppState[\"activeTool\"][\"type\"],\n width: number,\n height: number,\n): { width: number; height: number } => {\n const absWidth = Math.abs(width);\n const absHeight = Math.abs(height);\n\n if (\n elementType === \"line\" ||\n elementType === \"arrow\" ||\n elementType === \"freedraw\"\n ) {\n const lockedAngle =\n Math.round(Math.atan(absHeight / absWidth) / SHIFT_LOCKING_ANGLE) *\n SHIFT_LOCKING_ANGLE;\n if (lockedAngle === 0) {\n height = 0;\n } else if (lockedAngle === Math.PI / 2) {\n width = 0;\n } else {\n height = absWidth * Math.tan(lockedAngle) * Math.sign(height) || height;\n }\n } else if (elementType !== \"selection\") {\n height = absWidth * Math.sign(height);\n }\n return { width, height };\n};\n\nexport const getLockedLinearCursorAlignSize = (\n originX: number,\n originY: number,\n x: number,\n y: number,\n) => {\n let width = x - originX;\n let height = y - originY;\n\n const lockedAngle =\n Math.round(Math.atan(height / width) / SHIFT_LOCKING_ANGLE) *\n SHIFT_LOCKING_ANGLE;\n\n if (lockedAngle === 0) {\n height = 0;\n } else if (lockedAngle === Math.PI / 2) {\n width = 0;\n } else {\n // locked angle line, y = mx + b => mx - y + b = 0\n const a1 = Math.tan(lockedAngle);\n const b1 = -1;\n const c1 = originY - a1 * originX;\n\n // line through cursor, perpendicular to locked angle line\n const a2 = -1 / a1;\n const b2 = -1;\n const c2 = y - a2 * x;\n\n // intersection of the two lines above\n const intersectX = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1);\n const intersectY = (c1 * a2 - c2 * a1) / (a1 * b2 - a2 * b1);\n\n // delta\n width = intersectX - originX;\n height = intersectY - originY;\n }\n\n return { width, height };\n};\n\nexport const resizePerfectLineForNWHandler = (\n element: ExcalidrawElement,\n x: number,\n y: number,\n) => {\n const anchorX = element.x + element.width;\n const anchorY = element.y + element.height;\n const distanceToAnchorX = x - anchorX;\n const distanceToAnchorY = y - anchorY;\n if (Math.abs(distanceToAnchorX) < Math.abs(distanceToAnchorY) / 2) {\n mutateElement(element, {\n x: anchorX,\n width: 0,\n y,\n height: -distanceToAnchorY,\n });\n } else if (Math.abs(distanceToAnchorY) < Math.abs(element.width) / 2) {\n mutateElement(element, {\n y: anchorY,\n height: 0,\n });\n } else {\n const nextHeight =\n Math.sign(distanceToAnchorY) *\n Math.sign(distanceToAnchorX) *\n element.width;\n mutateElement(element, {\n x,\n y: anchorY - nextHeight,\n width: -distanceToAnchorX,\n height: nextHeight,\n });\n }\n};\n\nexport const getNormalizedDimensions = (\n element: Pick,\n): {\n width: ExcalidrawElement[\"width\"];\n height: ExcalidrawElement[\"height\"];\n x: ExcalidrawElement[\"x\"];\n y: ExcalidrawElement[\"y\"];\n} => {\n const ret = {\n width: element.width,\n height: element.height,\n x: element.x,\n y: element.y,\n };\n\n if (element.width < 0) {\n const nextWidth = Math.abs(element.width);\n ret.width = nextWidth;\n ret.x = element.x - nextWidth;\n }\n\n if (element.height < 0) {\n const nextHeight = Math.abs(element.height);\n ret.height = nextHeight;\n ret.y = element.y - nextHeight;\n }\n\n return ret;\n};\n","import {\n ExcalidrawElement,\n PointerType,\n NonDeletedExcalidrawElement,\n ElementsMap,\n} from \"./types\";\n\nimport {\n OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,\n getTransformHandlesFromCoords,\n getTransformHandles,\n TransformHandleType,\n TransformHandle,\n MaybeTransformHandleType,\n} from \"./transformHandles\";\nimport { AppState, Zoom } from \"../types\";\nimport { Bounds } from \"./bounds\";\n\nconst isInsideTransformHandle = (\n transformHandle: TransformHandle,\n x: number,\n y: number,\n) =>\n x >= transformHandle[0] &&\n x <= transformHandle[0] + transformHandle[2] &&\n y >= transformHandle[1] &&\n y <= transformHandle[1] + transformHandle[3];\n\nexport const resizeTest = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n appState: AppState,\n x: number,\n y: number,\n zoom: Zoom,\n pointerType: PointerType,\n): MaybeTransformHandleType => {\n if (!appState.selectedElementIds[element.id]) {\n return false;\n }\n\n const { rotation: rotationTransformHandle, ...transformHandles } =\n getTransformHandles(element, zoom, elementsMap, pointerType);\n\n if (\n rotationTransformHandle &&\n isInsideTransformHandle(rotationTransformHandle, x, y)\n ) {\n return \"rotation\" as TransformHandleType;\n }\n\n const filter = Object.keys(transformHandles).filter((key) => {\n const transformHandle =\n transformHandles[key as Exclude]!;\n if (!transformHandle) {\n return false;\n }\n return isInsideTransformHandle(transformHandle, x, y);\n });\n\n if (filter.length > 0) {\n return filter[0] as TransformHandleType;\n }\n\n return false;\n};\n\nexport const getElementWithTransformHandleType = (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: AppState,\n scenePointerX: number,\n scenePointerY: number,\n zoom: Zoom,\n pointerType: PointerType,\n elementsMap: ElementsMap,\n) => {\n return elements.reduce((result, element) => {\n if (result) {\n return result;\n }\n const transformHandleType = resizeTest(\n element,\n elementsMap,\n appState,\n scenePointerX,\n scenePointerY,\n zoom,\n pointerType,\n );\n return transformHandleType ? { element, transformHandleType } : null;\n }, null as { element: NonDeletedExcalidrawElement; transformHandleType: MaybeTransformHandleType } | null);\n};\n\nexport const getTransformHandleTypeFromCoords = (\n [x1, y1, x2, y2]: Bounds,\n scenePointerX: number,\n scenePointerY: number,\n zoom: Zoom,\n pointerType: PointerType,\n): MaybeTransformHandleType => {\n const transformHandles = getTransformHandlesFromCoords(\n [x1, y1, x2, y2, (x1 + x2) / 2, (y1 + y2) / 2],\n 0,\n zoom,\n pointerType,\n OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,\n );\n\n const found = Object.keys(transformHandles).find((key) => {\n const transformHandle =\n transformHandles[key as Exclude]!;\n return (\n transformHandle &&\n isInsideTransformHandle(transformHandle, scenePointerX, scenePointerY)\n );\n });\n return (found || false) as MaybeTransformHandleType;\n};\n\nconst RESIZE_CURSORS = [\"ns\", \"nesw\", \"ew\", \"nwse\"];\nconst rotateResizeCursor = (cursor: string, angle: number) => {\n const index = RESIZE_CURSORS.indexOf(cursor);\n if (index >= 0) {\n const a = Math.round(angle / (Math.PI / 4));\n cursor = RESIZE_CURSORS[(index + a) % RESIZE_CURSORS.length];\n }\n return cursor;\n};\n\n/*\n * Returns bi-directional cursor for the element being resized\n */\nexport const getCursorForResizingElement = (resizingElement: {\n element?: ExcalidrawElement;\n transformHandleType: MaybeTransformHandleType;\n}): string => {\n const { element, transformHandleType } = resizingElement;\n const shouldSwapCursors =\n element && Math.sign(element.height) * Math.sign(element.width) === -1;\n let cursor = null;\n\n switch (transformHandleType) {\n case \"n\":\n case \"s\":\n cursor = \"ns\";\n break;\n case \"w\":\n case \"e\":\n cursor = \"ew\";\n break;\n case \"nw\":\n case \"se\":\n if (shouldSwapCursors) {\n cursor = \"nesw\";\n } else {\n cursor = \"nwse\";\n }\n break;\n case \"ne\":\n case \"sw\":\n if (shouldSwapCursors) {\n cursor = \"nwse\";\n } else {\n cursor = \"nesw\";\n }\n break;\n case \"rotation\":\n return \"grab\";\n }\n\n if (cursor && element) {\n cursor = rotateResizeCursor(cursor, element.angle);\n }\n\n return cursor ? `${cursor}-resize` : \"\";\n};\n","import { MIN_FONT_SIZE, SHIFT_LOCKING_ANGLE } from \"../constants\";\nimport { rescalePoints } from \"../points\";\n\nimport {\n rotate,\n adjustXYWithRotation,\n centerPoint,\n rotatePoint,\n} from \"../math\";\nimport {\n ExcalidrawLinearElement,\n ExcalidrawTextElement,\n NonDeletedExcalidrawElement,\n NonDeleted,\n ExcalidrawElement,\n ExcalidrawTextElementWithContainer,\n ExcalidrawImageElement,\n ElementsMap,\n} from \"./types\";\nimport type { Mutable } from \"../utility-types\";\nimport {\n getElementAbsoluteCoords,\n getCommonBounds,\n getResizedElementAbsoluteCoords,\n getCommonBoundingBox,\n getElementPointsCoords,\n} from \"./bounds\";\nimport {\n isArrowElement,\n isBoundToContainer,\n isFrameLikeElement,\n isFreeDrawElement,\n isImageElement,\n isLinearElement,\n isTextElement,\n} from \"./typeChecks\";\nimport { mutateElement } from \"./mutateElement\";\nimport { getFontString } from \"../utils\";\nimport { updateBoundElements } from \"./binding\";\nimport {\n TransformHandleType,\n MaybeTransformHandleType,\n TransformHandleDirection,\n} from \"./transformHandles\";\nimport { Point, PointerDownState } from \"../types\";\nimport Scene from \"../scene/Scene\";\nimport {\n getApproxMinLineWidth,\n getBoundTextElement,\n getBoundTextElementId,\n getContainerElement,\n handleBindTextResize,\n getBoundTextMaxWidth,\n getApproxMinLineHeight,\n} from \"./textElement\";\nimport { LinearElementEditor } from \"./linearElementEditor\";\n\nexport const normalizeAngle = (angle: number): number => {\n if (angle < 0) {\n return angle + 2 * Math.PI;\n }\n if (angle >= 2 * Math.PI) {\n return angle - 2 * Math.PI;\n }\n return angle;\n};\n\n// Returns true when transform (resizing/rotation) happened\nexport const transformElements = (\n originalElements: PointerDownState[\"originalElements\"],\n transformHandleType: MaybeTransformHandleType,\n selectedElements: readonly NonDeletedExcalidrawElement[],\n elementsMap: ElementsMap,\n shouldRotateWithDiscreteAngle: boolean,\n shouldResizeFromCenter: boolean,\n shouldMaintainAspectRatio: boolean,\n pointerX: number,\n pointerY: number,\n centerX: number,\n centerY: number,\n) => {\n if (selectedElements.length === 1) {\n const [element] = selectedElements;\n if (transformHandleType === \"rotation\") {\n rotateSingleElement(\n element,\n elementsMap,\n pointerX,\n pointerY,\n shouldRotateWithDiscreteAngle,\n );\n updateBoundElements(element, elementsMap);\n } else if (\n isTextElement(element) &&\n (transformHandleType === \"nw\" ||\n transformHandleType === \"ne\" ||\n transformHandleType === \"sw\" ||\n transformHandleType === \"se\")\n ) {\n resizeSingleTextElement(\n element,\n elementsMap,\n transformHandleType,\n shouldResizeFromCenter,\n pointerX,\n pointerY,\n );\n updateBoundElements(element, elementsMap);\n } else if (transformHandleType) {\n resizeSingleElement(\n originalElements,\n shouldMaintainAspectRatio,\n element,\n elementsMap,\n transformHandleType,\n shouldResizeFromCenter,\n pointerX,\n pointerY,\n );\n }\n\n return true;\n } else if (selectedElements.length > 1) {\n if (transformHandleType === \"rotation\") {\n rotateMultipleElements(\n originalElements,\n selectedElements,\n elementsMap,\n pointerX,\n pointerY,\n shouldRotateWithDiscreteAngle,\n centerX,\n centerY,\n );\n return true;\n } else if (\n transformHandleType === \"nw\" ||\n transformHandleType === \"ne\" ||\n transformHandleType === \"sw\" ||\n transformHandleType === \"se\"\n ) {\n resizeMultipleElements(\n originalElements,\n selectedElements,\n elementsMap,\n transformHandleType,\n shouldResizeFromCenter,\n pointerX,\n pointerY,\n );\n return true;\n }\n }\n return false;\n};\n\nconst rotateSingleElement = (\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n pointerX: number,\n pointerY: number,\n shouldRotateWithDiscreteAngle: boolean,\n) => {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n let angle: number;\n if (isFrameLikeElement(element)) {\n angle = 0;\n } else {\n angle = (5 * Math.PI) / 2 + Math.atan2(pointerY - cy, pointerX - cx);\n if (shouldRotateWithDiscreteAngle) {\n angle += SHIFT_LOCKING_ANGLE / 2;\n angle -= angle % SHIFT_LOCKING_ANGLE;\n }\n angle = normalizeAngle(angle);\n }\n const boundTextElementId = getBoundTextElementId(element);\n\n mutateElement(element, { angle });\n if (boundTextElementId) {\n const textElement =\n Scene.getScene(element)?.getElement(\n boundTextElementId,\n );\n\n if (textElement && !isArrowElement(element)) {\n mutateElement(textElement, { angle });\n }\n }\n};\n\nconst rescalePointsInElement = (\n element: NonDeletedExcalidrawElement,\n width: number,\n height: number,\n normalizePoints: boolean,\n) =>\n isLinearElement(element) || isFreeDrawElement(element)\n ? {\n points: rescalePoints(\n 0,\n width,\n rescalePoints(1, height, element.points, normalizePoints),\n normalizePoints,\n ),\n }\n : {};\n\nconst measureFontSizeFromWidth = (\n element: NonDeleted,\n elementsMap: ElementsMap,\n nextWidth: number,\n): { size: number } | null => {\n // We only use width to scale font on resize\n let width = element.width;\n\n const hasContainer = isBoundToContainer(element);\n if (hasContainer) {\n const container = getContainerElement(element, elementsMap);\n if (container) {\n width = getBoundTextMaxWidth(container, element);\n }\n }\n const nextFontSize = element.fontSize * (nextWidth / width);\n if (nextFontSize < MIN_FONT_SIZE) {\n return null;\n }\n\n return {\n size: nextFontSize,\n };\n};\n\nconst getSidesForTransformHandle = (\n transformHandleType: TransformHandleType,\n shouldResizeFromCenter: boolean,\n) => {\n return {\n n:\n /^(n|ne|nw)$/.test(transformHandleType) ||\n (shouldResizeFromCenter && /^(s|se|sw)$/.test(transformHandleType)),\n s:\n /^(s|se|sw)$/.test(transformHandleType) ||\n (shouldResizeFromCenter && /^(n|ne|nw)$/.test(transformHandleType)),\n w:\n /^(w|nw|sw)$/.test(transformHandleType) ||\n (shouldResizeFromCenter && /^(e|ne|se)$/.test(transformHandleType)),\n e:\n /^(e|ne|se)$/.test(transformHandleType) ||\n (shouldResizeFromCenter && /^(w|nw|sw)$/.test(transformHandleType)),\n };\n};\n\nconst resizeSingleTextElement = (\n element: NonDeleted,\n elementsMap: ElementsMap,\n transformHandleType: \"nw\" | \"ne\" | \"sw\" | \"se\",\n shouldResizeFromCenter: boolean,\n pointerX: number,\n pointerY: number,\n) => {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n // rotation pointer with reverse angle\n const [rotatedX, rotatedY] = rotate(\n pointerX,\n pointerY,\n cx,\n cy,\n -element.angle,\n );\n let scale: number;\n switch (transformHandleType) {\n case \"se\":\n scale = Math.max(\n (rotatedX - x1) / (x2 - x1),\n (rotatedY - y1) / (y2 - y1),\n );\n break;\n case \"nw\":\n scale = Math.max(\n (x2 - rotatedX) / (x2 - x1),\n (y2 - rotatedY) / (y2 - y1),\n );\n break;\n case \"ne\":\n scale = Math.max(\n (rotatedX - x1) / (x2 - x1),\n (y2 - rotatedY) / (y2 - y1),\n );\n break;\n case \"sw\":\n scale = Math.max(\n (x2 - rotatedX) / (x2 - x1),\n (rotatedY - y1) / (y2 - y1),\n );\n break;\n }\n if (scale > 0) {\n const nextWidth = element.width * scale;\n const nextHeight = element.height * scale;\n const metrics = measureFontSizeFromWidth(element, elementsMap, nextWidth);\n if (metrics === null) {\n return;\n }\n const [nextX1, nextY1, nextX2, nextY2] = getResizedElementAbsoluteCoords(\n element,\n nextWidth,\n nextHeight,\n false,\n );\n const deltaX1 = (x1 - nextX1) / 2;\n const deltaY1 = (y1 - nextY1) / 2;\n const deltaX2 = (x2 - nextX2) / 2;\n const deltaY2 = (y2 - nextY2) / 2;\n const [nextElementX, nextElementY] = adjustXYWithRotation(\n getSidesForTransformHandle(transformHandleType, shouldResizeFromCenter),\n element.x,\n element.y,\n element.angle,\n deltaX1,\n deltaY1,\n deltaX2,\n deltaY2,\n );\n mutateElement(element, {\n fontSize: metrics.size,\n width: nextWidth,\n height: nextHeight,\n x: nextElementX,\n y: nextElementY,\n });\n }\n};\n\nexport const resizeSingleElement = (\n originalElements: PointerDownState[\"originalElements\"],\n shouldMaintainAspectRatio: boolean,\n element: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n transformHandleDirection: TransformHandleDirection,\n shouldResizeFromCenter: boolean,\n pointerX: number,\n pointerY: number,\n) => {\n const stateAtResizeStart = originalElements.get(element.id)!;\n // Gets bounds corners\n const [x1, y1, x2, y2] = getResizedElementAbsoluteCoords(\n stateAtResizeStart,\n stateAtResizeStart.width,\n stateAtResizeStart.height,\n true,\n );\n const startTopLeft: Point = [x1, y1];\n const startBottomRight: Point = [x2, y2];\n const startCenter: Point = centerPoint(startTopLeft, startBottomRight);\n\n // Calculate new dimensions based on cursor position\n const rotatedPointer = rotatePoint(\n [pointerX, pointerY],\n startCenter,\n -stateAtResizeStart.angle,\n );\n\n // Get bounds corners rendered on screen\n const [esx1, esy1, esx2, esy2] = getResizedElementAbsoluteCoords(\n element,\n element.width,\n element.height,\n true,\n );\n\n const boundsCurrentWidth = esx2 - esx1;\n const boundsCurrentHeight = esy2 - esy1;\n\n // It's important we set the initial scale value based on the width and height at resize start,\n // otherwise previous dimensions affected by modifiers will be taken into account.\n const atStartBoundsWidth = startBottomRight[0] - startTopLeft[0];\n const atStartBoundsHeight = startBottomRight[1] - startTopLeft[1];\n let scaleX = atStartBoundsWidth / boundsCurrentWidth;\n let scaleY = atStartBoundsHeight / boundsCurrentHeight;\n\n let boundTextFont: { fontSize?: number } = {};\n const boundTextElement = getBoundTextElement(element, elementsMap);\n\n if (transformHandleDirection.includes(\"e\")) {\n scaleX = (rotatedPointer[0] - startTopLeft[0]) / boundsCurrentWidth;\n }\n if (transformHandleDirection.includes(\"s\")) {\n scaleY = (rotatedPointer[1] - startTopLeft[1]) / boundsCurrentHeight;\n }\n if (transformHandleDirection.includes(\"w\")) {\n scaleX = (startBottomRight[0] - rotatedPointer[0]) / boundsCurrentWidth;\n }\n if (transformHandleDirection.includes(\"n\")) {\n scaleY = (startBottomRight[1] - rotatedPointer[1]) / boundsCurrentHeight;\n }\n\n // Linear elements dimensions differ from bounds dimensions\n const eleInitialWidth = stateAtResizeStart.width;\n const eleInitialHeight = stateAtResizeStart.height;\n // We have to use dimensions of element on screen, otherwise the scaling of the\n // dimensions won't match the cursor for linear elements.\n let eleNewWidth = element.width * scaleX;\n let eleNewHeight = element.height * scaleY;\n\n // adjust dimensions for resizing from center\n if (shouldResizeFromCenter) {\n eleNewWidth = 2 * eleNewWidth - eleInitialWidth;\n eleNewHeight = 2 * eleNewHeight - eleInitialHeight;\n }\n\n // adjust dimensions to keep sides ratio\n if (shouldMaintainAspectRatio) {\n const widthRatio = Math.abs(eleNewWidth) / eleInitialWidth;\n const heightRatio = Math.abs(eleNewHeight) / eleInitialHeight;\n if (transformHandleDirection.length === 1) {\n eleNewHeight *= widthRatio;\n eleNewWidth *= heightRatio;\n }\n if (transformHandleDirection.length === 2) {\n const ratio = Math.max(widthRatio, heightRatio);\n eleNewWidth = eleInitialWidth * ratio * Math.sign(eleNewWidth);\n eleNewHeight = eleInitialHeight * ratio * Math.sign(eleNewHeight);\n }\n }\n\n if (boundTextElement) {\n const stateOfBoundTextElementAtResize = originalElements.get(\n boundTextElement.id,\n ) as typeof boundTextElement | undefined;\n if (stateOfBoundTextElementAtResize) {\n boundTextFont = {\n fontSize: stateOfBoundTextElementAtResize.fontSize,\n };\n }\n if (shouldMaintainAspectRatio) {\n const updatedElement = {\n ...element,\n width: eleNewWidth,\n height: eleNewHeight,\n };\n\n const nextFont = measureFontSizeFromWidth(\n boundTextElement,\n elementsMap,\n getBoundTextMaxWidth(updatedElement, boundTextElement),\n );\n if (nextFont === null) {\n return;\n }\n boundTextFont = {\n fontSize: nextFont.size,\n };\n } else {\n const minWidth = getApproxMinLineWidth(\n getFontString(boundTextElement),\n boundTextElement.lineHeight,\n );\n const minHeight = getApproxMinLineHeight(\n boundTextElement.fontSize,\n boundTextElement.lineHeight,\n );\n eleNewWidth = Math.max(eleNewWidth, minWidth);\n eleNewHeight = Math.max(eleNewHeight, minHeight);\n }\n }\n\n const [newBoundsX1, newBoundsY1, newBoundsX2, newBoundsY2] =\n getResizedElementAbsoluteCoords(\n stateAtResizeStart,\n eleNewWidth,\n eleNewHeight,\n true,\n );\n const newBoundsWidth = newBoundsX2 - newBoundsX1;\n const newBoundsHeight = newBoundsY2 - newBoundsY1;\n\n // Calculate new topLeft based on fixed corner during resize\n let newTopLeft = [...startTopLeft] as [number, number];\n if ([\"n\", \"w\", \"nw\"].includes(transformHandleDirection)) {\n newTopLeft = [\n startBottomRight[0] - Math.abs(newBoundsWidth),\n startBottomRight[1] - Math.abs(newBoundsHeight),\n ];\n }\n if (transformHandleDirection === \"ne\") {\n const bottomLeft = [startTopLeft[0], startBottomRight[1]];\n newTopLeft = [bottomLeft[0], bottomLeft[1] - Math.abs(newBoundsHeight)];\n }\n if (transformHandleDirection === \"sw\") {\n const topRight = [startBottomRight[0], startTopLeft[1]];\n newTopLeft = [topRight[0] - Math.abs(newBoundsWidth), topRight[1]];\n }\n\n // Keeps opposite handle fixed during resize\n if (shouldMaintainAspectRatio) {\n if ([\"s\", \"n\"].includes(transformHandleDirection)) {\n newTopLeft[0] = startCenter[0] - newBoundsWidth / 2;\n }\n if ([\"e\", \"w\"].includes(transformHandleDirection)) {\n newTopLeft[1] = startCenter[1] - newBoundsHeight / 2;\n }\n }\n\n const flipX = eleNewWidth < 0;\n const flipY = eleNewHeight < 0;\n\n // Flip horizontally\n if (flipX) {\n if (transformHandleDirection.includes(\"e\")) {\n newTopLeft[0] -= Math.abs(newBoundsWidth);\n }\n if (transformHandleDirection.includes(\"w\")) {\n newTopLeft[0] += Math.abs(newBoundsWidth);\n }\n }\n\n // Flip vertically\n if (flipY) {\n if (transformHandleDirection.includes(\"s\")) {\n newTopLeft[1] -= Math.abs(newBoundsHeight);\n }\n if (transformHandleDirection.includes(\"n\")) {\n newTopLeft[1] += Math.abs(newBoundsHeight);\n }\n }\n\n if (shouldResizeFromCenter) {\n newTopLeft[0] = startCenter[0] - Math.abs(newBoundsWidth) / 2;\n newTopLeft[1] = startCenter[1] - Math.abs(newBoundsHeight) / 2;\n }\n\n // adjust topLeft to new rotation point\n const angle = stateAtResizeStart.angle;\n const rotatedTopLeft = rotatePoint(newTopLeft, startCenter, angle);\n const newCenter: Point = [\n newTopLeft[0] + Math.abs(newBoundsWidth) / 2,\n newTopLeft[1] + Math.abs(newBoundsHeight) / 2,\n ];\n const rotatedNewCenter = rotatePoint(newCenter, startCenter, angle);\n newTopLeft = rotatePoint(rotatedTopLeft, rotatedNewCenter, -angle);\n\n // For linear elements (x,y) are the coordinates of the first drawn point not the top-left corner\n // So we need to readjust (x,y) to be where the first point should be\n const newOrigin = [...newTopLeft];\n const linearElementXOffset = stateAtResizeStart.x - newBoundsX1;\n const linearElementYOffset = stateAtResizeStart.y - newBoundsY1;\n newOrigin[0] += linearElementXOffset;\n newOrigin[1] += linearElementYOffset;\n\n const nextX = newOrigin[0];\n const nextY = newOrigin[1];\n\n // Readjust points for linear elements\n let rescaledElementPointsY;\n let rescaledPoints;\n if (isLinearElement(element) || isFreeDrawElement(element)) {\n rescaledElementPointsY = rescalePoints(\n 1,\n eleNewHeight,\n (stateAtResizeStart as ExcalidrawLinearElement).points,\n true,\n );\n\n rescaledPoints = rescalePoints(\n 0,\n eleNewWidth,\n rescaledElementPointsY,\n true,\n );\n }\n\n const resizedElement = {\n width: Math.abs(eleNewWidth),\n height: Math.abs(eleNewHeight),\n x: nextX,\n y: nextY,\n points: rescaledPoints,\n };\n\n if (\"scale\" in element && \"scale\" in stateAtResizeStart) {\n mutateElement(element, {\n scale: [\n // defaulting because scaleX/Y can be 0/-0\n (Math.sign(newBoundsX2 - stateAtResizeStart.x) ||\n stateAtResizeStart.scale[0]) * stateAtResizeStart.scale[0],\n (Math.sign(newBoundsY2 - stateAtResizeStart.y) ||\n stateAtResizeStart.scale[1]) * stateAtResizeStart.scale[1],\n ],\n });\n }\n\n if (\n isArrowElement(element) &&\n boundTextElement &&\n shouldMaintainAspectRatio\n ) {\n const fontSize =\n (resizedElement.width / element.width) * boundTextElement.fontSize;\n if (fontSize < MIN_FONT_SIZE) {\n return;\n }\n boundTextFont.fontSize = fontSize;\n }\n\n if (\n resizedElement.width !== 0 &&\n resizedElement.height !== 0 &&\n Number.isFinite(resizedElement.x) &&\n Number.isFinite(resizedElement.y)\n ) {\n mutateElement(element, resizedElement);\n\n updateBoundElements(element, elementsMap, {\n newSize: { width: resizedElement.width, height: resizedElement.height },\n });\n\n if (boundTextElement && boundTextFont != null) {\n mutateElement(boundTextElement, {\n fontSize: boundTextFont.fontSize,\n });\n }\n handleBindTextResize(\n element,\n elementsMap,\n transformHandleDirection,\n shouldMaintainAspectRatio,\n );\n }\n};\n\nexport const resizeMultipleElements = (\n originalElements: PointerDownState[\"originalElements\"],\n selectedElements: readonly NonDeletedExcalidrawElement[],\n elementsMap: ElementsMap,\n transformHandleType: \"nw\" | \"ne\" | \"sw\" | \"se\",\n shouldResizeFromCenter: boolean,\n pointerX: number,\n pointerY: number,\n) => {\n // map selected elements to the original elements. While it never should\n // happen that pointerDownState.originalElements won't contain the selected\n // elements during resize, this coupling isn't guaranteed, so to ensure\n // type safety we need to transform only those elements we filter.\n const targetElements = selectedElements.reduce(\n (\n acc: {\n /** element at resize start */\n orig: NonDeletedExcalidrawElement;\n /** latest element */\n latest: NonDeletedExcalidrawElement;\n }[],\n element,\n ) => {\n const origElement = originalElements.get(element.id);\n if (origElement) {\n acc.push({ orig: origElement, latest: element });\n }\n return acc;\n },\n [],\n );\n\n // getCommonBoundingBox() uses getBoundTextElement() which returns null for\n // original elements from pointerDownState, so we have to find and add these\n // bound text elements manually. Additionally, the coordinates of bound text\n // elements aren't always up to date.\n const boundTextElements = targetElements.reduce((acc, { orig }) => {\n if (!isLinearElement(orig)) {\n return acc;\n }\n const textId = getBoundTextElementId(orig);\n if (!textId) {\n return acc;\n }\n const text = originalElements.get(textId) ?? null;\n if (!isBoundToContainer(text)) {\n return acc;\n }\n const xy = LinearElementEditor.getBoundTextElementPosition(\n orig,\n text,\n elementsMap,\n );\n return [...acc, { ...text, ...xy }];\n }, [] as ExcalidrawTextElementWithContainer[]);\n\n const { minX, minY, maxX, maxY, midX, midY } = getCommonBoundingBox(\n targetElements.map(({ orig }) => orig).concat(boundTextElements),\n );\n\n // const originalHeight = maxY - minY;\n // const originalWidth = maxX - minX;\n\n const direction = transformHandleType;\n\n const mapDirectionsToAnchors: Record = {\n ne: [minX, maxY],\n se: [minX, minY],\n sw: [maxX, minY],\n nw: [maxX, maxY],\n };\n\n // anchor point must be on the opposite side of the dragged selection handle\n // or be the center of the selection if shouldResizeFromCenter\n const [anchorX, anchorY]: Point = shouldResizeFromCenter\n ? [midX, midY]\n : mapDirectionsToAnchors[direction];\n\n const scale =\n Math.max(\n Math.abs(pointerX - anchorX) / (maxX - minX) || 0,\n Math.abs(pointerY - anchorY) / (maxY - minY) || 0,\n ) * (shouldResizeFromCenter ? 2 : 1);\n\n if (scale === 0) {\n return;\n }\n\n const mapDirectionsToPointerPositions: Record<\n typeof direction,\n [x: boolean, y: boolean]\n > = {\n ne: [pointerX >= anchorX, pointerY <= anchorY],\n se: [pointerX >= anchorX, pointerY >= anchorY],\n sw: [pointerX <= anchorX, pointerY >= anchorY],\n nw: [pointerX <= anchorX, pointerY <= anchorY],\n };\n\n /**\n * to flip an element:\n * 1. determine over which axis is the element being flipped\n * (could be x, y, or both) indicated by `flipFactorX` & `flipFactorY`\n * 2. shift element's position by the amount of width or height (or both) or\n * mirror points in the case of linear & freedraw elemenets\n * 3. adjust element angle\n */\n const [flipFactorX, flipFactorY] = mapDirectionsToPointerPositions[\n direction\n ].map((condition) => (condition ? 1 : -1));\n const isFlippedByX = flipFactorX < 0;\n const isFlippedByY = flipFactorY < 0;\n\n const elementsAndUpdates: {\n element: NonDeletedExcalidrawElement;\n update: Mutable<\n Pick\n > & {\n points?: ExcalidrawLinearElement[\"points\"];\n fontSize?: ExcalidrawTextElement[\"fontSize\"];\n scale?: ExcalidrawImageElement[\"scale\"];\n boundTextFontSize?: ExcalidrawTextElement[\"fontSize\"];\n };\n }[] = [];\n\n for (const { orig, latest } of targetElements) {\n // bounded text elements are updated along with their container elements\n if (isTextElement(orig) && isBoundToContainer(orig)) {\n continue;\n }\n\n const width = orig.width * scale;\n const height = orig.height * scale;\n const angle = normalizeAngle(orig.angle * flipFactorX * flipFactorY);\n\n const isLinearOrFreeDraw = isLinearElement(orig) || isFreeDrawElement(orig);\n const offsetX = orig.x - anchorX;\n const offsetY = orig.y - anchorY;\n const shiftX = isFlippedByX && !isLinearOrFreeDraw ? width : 0;\n const shiftY = isFlippedByY && !isLinearOrFreeDraw ? height : 0;\n const x = anchorX + flipFactorX * (offsetX * scale + shiftX);\n const y = anchorY + flipFactorY * (offsetY * scale + shiftY);\n\n const rescaledPoints = rescalePointsInElement(\n orig,\n width * flipFactorX,\n height * flipFactorY,\n false,\n );\n\n const update: typeof elementsAndUpdates[0][\"update\"] = {\n x,\n y,\n width,\n height,\n angle,\n ...rescaledPoints,\n };\n\n if (isImageElement(orig) && targetElements.length === 1) {\n update.scale = [orig.scale[0] * flipFactorX, orig.scale[1] * flipFactorY];\n }\n\n if (isLinearElement(orig) && (isFlippedByX || isFlippedByY)) {\n const origBounds = getElementPointsCoords(orig, orig.points);\n const newBounds = getElementPointsCoords(\n { ...orig, x, y },\n rescaledPoints.points!,\n );\n const origXY = [orig.x, orig.y];\n const newXY = [x, y];\n\n const linearShift = (axis: \"x\" | \"y\") => {\n const i = axis === \"x\" ? 0 : 1;\n return (\n (newBounds[i + 2] -\n newXY[i] -\n (origXY[i] - origBounds[i]) * scale +\n (origBounds[i + 2] - origXY[i]) * scale -\n (newXY[i] - newBounds[i])) /\n 2\n );\n };\n\n if (isFlippedByX) {\n update.x -= linearShift(\"x\");\n }\n\n if (isFlippedByY) {\n update.y -= linearShift(\"y\");\n }\n }\n\n if (isTextElement(orig)) {\n const metrics = measureFontSizeFromWidth(orig, elementsMap, width);\n if (!metrics) {\n return;\n }\n update.fontSize = metrics.size;\n }\n\n const boundTextElement = originalElements.get(\n getBoundTextElementId(orig) ?? \"\",\n ) as ExcalidrawTextElementWithContainer | undefined;\n\n if (boundTextElement) {\n const newFontSize = boundTextElement.fontSize * scale;\n if (newFontSize < MIN_FONT_SIZE) {\n return;\n }\n update.boundTextFontSize = newFontSize;\n }\n\n elementsAndUpdates.push({\n element: latest,\n update,\n });\n }\n\n const elementsToUpdate = elementsAndUpdates.map(({ element }) => element);\n\n for (const {\n element,\n update: { boundTextFontSize, ...update },\n } of elementsAndUpdates) {\n const { width, height, angle } = update;\n\n mutateElement(element, update, false);\n\n updateBoundElements(element, elementsMap, {\n simultaneouslyUpdated: elementsToUpdate,\n newSize: { width, height },\n });\n\n const boundTextElement = getBoundTextElement(element, elementsMap);\n if (boundTextElement && boundTextFontSize) {\n mutateElement(\n boundTextElement,\n {\n fontSize: boundTextFontSize,\n angle: isLinearElement(element) ? undefined : angle,\n },\n false,\n );\n handleBindTextResize(element, elementsMap, transformHandleType, true);\n }\n }\n\n Scene.getScene(elementsAndUpdates[0].element)?.informMutation();\n};\n\nconst rotateMultipleElements = (\n originalElements: PointerDownState[\"originalElements\"],\n elements: readonly NonDeletedExcalidrawElement[],\n elementsMap: ElementsMap,\n pointerX: number,\n pointerY: number,\n shouldRotateWithDiscreteAngle: boolean,\n centerX: number,\n centerY: number,\n) => {\n let centerAngle =\n (5 * Math.PI) / 2 + Math.atan2(pointerY - centerY, pointerX - centerX);\n if (shouldRotateWithDiscreteAngle) {\n centerAngle += SHIFT_LOCKING_ANGLE / 2;\n centerAngle -= centerAngle % SHIFT_LOCKING_ANGLE;\n }\n\n elements\n .filter((element) => !isFrameLikeElement(element))\n .forEach((element) => {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n const origAngle =\n originalElements.get(element.id)?.angle ?? element.angle;\n const [rotatedCX, rotatedCY] = rotate(\n cx,\n cy,\n centerX,\n centerY,\n centerAngle + origAngle - element.angle,\n );\n mutateElement(\n element,\n {\n x: element.x + (rotatedCX - cx),\n y: element.y + (rotatedCY - cy),\n angle: normalizeAngle(centerAngle + origAngle),\n },\n false,\n );\n updateBoundElements(element, elementsMap, {\n simultaneouslyUpdated: elements,\n });\n\n const boundText = getBoundTextElement(element, elementsMap);\n if (boundText && !isArrowElement(element)) {\n mutateElement(\n boundText,\n {\n x: boundText.x + (rotatedCX - cx),\n y: boundText.y + (rotatedCY - cy),\n angle: normalizeAngle(centerAngle + origAngle),\n },\n false,\n );\n }\n });\n\n Scene.getScene(elements[0])?.informMutation();\n};\n\nexport const getResizeOffsetXY = (\n transformHandleType: MaybeTransformHandleType,\n selectedElements: NonDeletedExcalidrawElement[],\n elementsMap: ElementsMap,\n x: number,\n y: number,\n): [number, number] => {\n const [x1, y1, x2, y2] =\n selectedElements.length === 1\n ? getElementAbsoluteCoords(selectedElements[0], elementsMap)\n : getCommonBounds(selectedElements);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n const angle = selectedElements.length === 1 ? selectedElements[0].angle : 0;\n [x, y] = rotate(x, y, cx, cy, -angle);\n switch (transformHandleType) {\n case \"n\":\n return rotate(x - (x1 + x2) / 2, y - y1, 0, 0, angle);\n case \"s\":\n return rotate(x - (x1 + x2) / 2, y - y2, 0, 0, angle);\n case \"w\":\n return rotate(x - x1, y - (y1 + y2) / 2, 0, 0, angle);\n case \"e\":\n return rotate(x - x2, y - (y1 + y2) / 2, 0, 0, angle);\n case \"nw\":\n return rotate(x - x1, y - y1, 0, 0, angle);\n case \"ne\":\n return rotate(x - x2, y - y1, 0, 0, angle);\n case \"sw\":\n return rotate(x - x1, y - y2, 0, 0, angle);\n case \"se\":\n return rotate(x - x2, y - y2, 0, 0, angle);\n default:\n return [0, 0];\n }\n};\n\nexport const getResizeArrowDirection = (\n transformHandleType: MaybeTransformHandleType,\n element: NonDeleted,\n): \"origin\" | \"end\" => {\n const [, [px, py]] = element.points;\n const isResizeEnd =\n (transformHandleType === \"nw\" && (px < 0 || py < 0)) ||\n (transformHandleType === \"ne\" && px >= 0) ||\n (transformHandleType === \"sw\" && px <= 0) ||\n (transformHandleType === \"se\" && (px > 0 || py > 0));\n return isResizeEnd ? \"end\" : \"origin\";\n};\n","import { updateBoundElements } from \"./binding\";\nimport { Bounds, getCommonBounds } from \"./bounds\";\nimport { mutateElement } from \"./mutateElement\";\nimport { getPerfectElementSize } from \"./sizeHelpers\";\nimport { NonDeletedExcalidrawElement } from \"./types\";\nimport { AppState, PointerDownState } from \"../types\";\nimport { getBoundTextElement } from \"./textElement\";\nimport { getGridPoint } from \"../math\";\nimport Scene from \"../scene/Scene\";\nimport { isArrowElement, isFrameLikeElement } from \"./typeChecks\";\n\nexport const dragSelectedElements = (\n pointerDownState: PointerDownState,\n selectedElements: NonDeletedExcalidrawElement[],\n offset: { x: number; y: number },\n appState: AppState,\n scene: Scene,\n snapOffset: {\n x: number;\n y: number;\n },\n gridSize: AppState[\"gridSize\"],\n) => {\n // we do not want a frame and its elements to be selected at the same time\n // but when it happens (due to some bug), we want to avoid updating element\n // in the frame twice, hence the use of set\n const elementsToUpdate = new Set(\n selectedElements,\n );\n const frames = selectedElements\n .filter((e) => isFrameLikeElement(e))\n .map((f) => f.id);\n\n if (frames.length > 0) {\n for (const element of scene.getNonDeletedElements()) {\n if (element.frameId !== null && frames.includes(element.frameId)) {\n elementsToUpdate.add(element);\n }\n }\n }\n\n const commonBounds = getCommonBounds(\n Array.from(elementsToUpdate).map(\n (el) => pointerDownState.originalElements.get(el.id) ?? el,\n ),\n );\n const adjustedOffset = calculateOffset(\n commonBounds,\n offset,\n snapOffset,\n gridSize,\n );\n\n elementsToUpdate.forEach((element) => {\n updateElementCoords(pointerDownState, element, adjustedOffset);\n if (\n // skip arrow labels since we calculate its position during render\n !isArrowElement(element)\n ) {\n const textElement = getBoundTextElement(\n element,\n scene.getNonDeletedElementsMap(),\n );\n if (textElement) {\n updateElementCoords(pointerDownState, textElement, adjustedOffset);\n }\n }\n updateBoundElements(element, scene.getElementsMapIncludingDeleted(), {\n simultaneouslyUpdated: Array.from(elementsToUpdate),\n });\n });\n};\n\nconst calculateOffset = (\n commonBounds: Bounds,\n dragOffset: { x: number; y: number },\n snapOffset: { x: number; y: number },\n gridSize: AppState[\"gridSize\"],\n): { x: number; y: number } => {\n const [x, y] = commonBounds;\n let nextX = x + dragOffset.x + snapOffset.x;\n let nextY = y + dragOffset.y + snapOffset.y;\n\n if (snapOffset.x === 0 || snapOffset.y === 0) {\n const [nextGridX, nextGridY] = getGridPoint(\n x + dragOffset.x,\n y + dragOffset.y,\n gridSize,\n );\n\n if (snapOffset.x === 0) {\n nextX = nextGridX;\n }\n\n if (snapOffset.y === 0) {\n nextY = nextGridY;\n }\n }\n return {\n x: nextX - x,\n y: nextY - y,\n };\n};\n\nconst updateElementCoords = (\n pointerDownState: PointerDownState,\n element: NonDeletedExcalidrawElement,\n dragOffset: { x: number; y: number },\n) => {\n const originalElement =\n pointerDownState.originalElements.get(element.id) ?? element;\n\n const nextX = originalElement.x + dragOffset.x;\n const nextY = originalElement.y + dragOffset.y;\n\n mutateElement(element, {\n x: nextX,\n y: nextY,\n });\n};\n\nexport const getDragOffsetXY = (\n selectedElements: NonDeletedExcalidrawElement[],\n x: number,\n y: number,\n): [number, number] => {\n const [x1, y1] = getCommonBounds(selectedElements);\n return [x - x1, y - y1];\n};\n\nexport const dragNewElement = (\n draggingElement: NonDeletedExcalidrawElement,\n elementType: AppState[\"activeTool\"][\"type\"],\n originX: number,\n originY: number,\n x: number,\n y: number,\n width: number,\n height: number,\n shouldMaintainAspectRatio: boolean,\n shouldResizeFromCenter: boolean,\n /** whether to keep given aspect ratio when `isResizeWithSidesSameLength` is\n true */\n widthAspectRatio?: number | null,\n originOffset: {\n x: number;\n y: number;\n } | null = null,\n) => {\n if (shouldMaintainAspectRatio && draggingElement.type !== \"selection\") {\n if (widthAspectRatio) {\n height = width / widthAspectRatio;\n } else {\n // Depending on where the cursor is at (x, y) relative to where the starting point is\n // (originX, originY), we use ONLY width or height to control size increase.\n // This allows the cursor to always \"stick\" to one of the sides of the bounding box.\n if (Math.abs(y - originY) > Math.abs(x - originX)) {\n ({ width, height } = getPerfectElementSize(\n elementType,\n height,\n x < originX ? -width : width,\n ));\n } else {\n ({ width, height } = getPerfectElementSize(\n elementType,\n width,\n y < originY ? -height : height,\n ));\n }\n\n if (height < 0) {\n height = -height;\n }\n }\n }\n\n let newX = x < originX ? originX - width : originX;\n let newY = y < originY ? originY - height : originY;\n\n if (shouldResizeFromCenter) {\n width += width;\n height += height;\n newX = originX - width / 2;\n newY = originY - height / 2;\n }\n\n if (width !== 0 && height !== 0) {\n mutateElement(draggingElement, {\n x: newX + (originOffset?.x ?? 0),\n y: newY + (originOffset?.y ?? 0),\n width,\n height,\n });\n }\n};\n","import { NonDeletedExcalidrawElement } from \"./types\";\nimport { getSelectedElements } from \"../scene\";\nimport { UIAppState } from \"../types\";\n\nexport const showSelectedShapeActions = (\n appState: UIAppState,\n elements: readonly NonDeletedExcalidrawElement[],\n) =>\n Boolean(\n !appState.viewModeEnabled &&\n ((appState.activeTool.type !== \"custom\" &&\n (appState.editingElement ||\n (appState.activeTool.type !== \"selection\" &&\n appState.activeTool.type !== \"eraser\" &&\n appState.activeTool.type !== \"hand\" &&\n appState.activeTool.type !== \"laser\"))) ||\n getSelectedElements(elements, appState).length),\n );\n","import {\n ExcalidrawElement,\n NonDeletedExcalidrawElement,\n NonDeleted,\n} from \"./types\";\nimport { isInvisiblySmallElement } from \"./sizeHelpers\";\nimport { isLinearElementType } from \"./typeChecks\";\n\nexport {\n newElement,\n newTextElement,\n updateTextElement,\n refreshTextDimensions,\n newLinearElement,\n newImageElement,\n duplicateElement,\n} from \"./newElement\";\nexport {\n getElementAbsoluteCoords,\n getElementBounds,\n getCommonBounds,\n getDiamondPoints,\n getArrowheadPoints,\n getClosestElementBounds,\n} from \"./bounds\";\n\nexport {\n OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,\n getTransformHandlesFromCoords,\n getTransformHandles,\n} from \"./transformHandles\";\nexport {\n hitTest,\n isHittingElementBoundingBoxWithoutHittingElement,\n} from \"./collision\";\nexport {\n resizeTest,\n getCursorForResizingElement,\n getElementWithTransformHandleType,\n getTransformHandleTypeFromCoords,\n} from \"./resizeTest\";\nexport {\n transformElements,\n getResizeOffsetXY,\n getResizeArrowDirection,\n} from \"./resizeElements\";\nexport {\n dragSelectedElements,\n getDragOffsetXY,\n dragNewElement,\n} from \"./dragElements\";\nexport { isTextElement, isExcalidrawElement } from \"./typeChecks\";\nexport { redrawTextBoundingBox } from \"./textElement\";\nexport {\n getPerfectElementSize,\n getLockedLinearCursorAlignSize,\n isInvisiblySmallElement,\n resizePerfectLineForNWHandler,\n getNormalizedDimensions,\n} from \"./sizeHelpers\";\nexport { showSelectedShapeActions } from \"./showSelectedShapeActions\";\n\n/**\n * @deprecated unsafe, use hashElementsVersion instead\n */\nexport const getSceneVersion = (elements: readonly ExcalidrawElement[]) =>\n elements.reduce((acc, el) => acc + el.version, 0);\n\n/**\n * Hashes elements' versionNonce (using djb2 algo). Order of elements matters.\n */\nexport const hashElementsVersion = (\n elements: readonly ExcalidrawElement[],\n): number => {\n let hash = 5381;\n for (let i = 0; i < elements.length; i++) {\n hash = (hash << 5) + hash + elements[i].versionNonce;\n }\n return hash >>> 0; // Ensure unsigned 32-bit integer\n};\n\n// string hash function (using djb2). Not cryptographically secure, use only\n// for versioning and such.\nexport const hashString = (s: string): number => {\n let hash: number = 5381;\n for (let i = 0; i < s.length; i++) {\n const char: number = s.charCodeAt(i);\n hash = (hash << 5) + hash + char;\n }\n return hash >>> 0; // Ensure unsigned 32-bit integer\n};\n\nexport const getVisibleElements = (elements: readonly ExcalidrawElement[]) =>\n elements.filter(\n (el) => !el.isDeleted && !isInvisiblySmallElement(el),\n ) as readonly NonDeletedExcalidrawElement[];\n\nexport const getNonDeletedElements = (\n elements: readonly T[],\n) =>\n elements.filter((element) => !element.isDeleted) as readonly NonDeleted[];\n\nexport const isNonDeletedElement = (\n element: T,\n): element is NonDeleted => !element.isDeleted;\n\nconst _clearElements = (\n elements: readonly ExcalidrawElement[],\n): ExcalidrawElement[] =>\n getNonDeletedElements(elements).map((element) =>\n isLinearElementType(element.type)\n ? { ...element, lastCommittedPoint: null }\n : element,\n );\n\nexport const clearElementsForDatabase = (\n elements: readonly ExcalidrawElement[],\n) => _clearElements(elements);\n\nexport const clearElementsForExport = (\n elements: readonly ExcalidrawElement[],\n) => _clearElements(elements);\n\nexport const clearElementsForLocalStorage = (\n elements: readonly ExcalidrawElement[],\n) => _clearElements(elements);\n","import {\n ElementsMap,\n ElementsMapOrArray,\n ExcalidrawElement,\n NonDeletedExcalidrawElement,\n} from \"../element/types\";\nimport { getElementAbsoluteCoords, getElementBounds } from \"../element\";\nimport { AppState, InteractiveCanvasAppState } from \"../types\";\nimport { isBoundToContainer, isFrameLikeElement } from \"../element/typeChecks\";\nimport {\n elementOverlapsWithFrame,\n getContainingFrame,\n getFrameChildren,\n} from \"../frame\";\nimport { isShallowEqual } from \"../utils\";\nimport { isElementInViewport } from \"../element/sizeHelpers\";\n\n/**\n * Frames and their containing elements are not to be selected at the same time.\n * Given an array of selected elements, if there are frames and their containing elements\n * we only keep the frames.\n * @param selectedElements\n */\nexport const excludeElementsInFramesFromSelection = <\n T extends ExcalidrawElement,\n>(\n selectedElements: readonly T[],\n) => {\n const framesInSelection = new Set();\n\n selectedElements.forEach((element) => {\n if (isFrameLikeElement(element)) {\n framesInSelection.add(element.id);\n }\n });\n\n return selectedElements.filter((element) => {\n if (element.frameId && framesInSelection.has(element.frameId)) {\n return false;\n }\n return true;\n });\n};\n\nexport const getElementsWithinSelection = (\n elements: readonly NonDeletedExcalidrawElement[],\n selection: NonDeletedExcalidrawElement,\n elementsMap: ElementsMap,\n excludeElementsInFrames: boolean = true,\n) => {\n const [selectionX1, selectionY1, selectionX2, selectionY2] =\n getElementAbsoluteCoords(selection, elementsMap);\n\n let elementsInSelection = elements.filter((element) => {\n let [elementX1, elementY1, elementX2, elementY2] = getElementBounds(\n element,\n elementsMap,\n );\n\n const containingFrame = getContainingFrame(element, elementsMap);\n if (containingFrame) {\n const [fx1, fy1, fx2, fy2] = getElementBounds(\n containingFrame,\n elementsMap,\n );\n\n elementX1 = Math.max(fx1, elementX1);\n elementY1 = Math.max(fy1, elementY1);\n elementX2 = Math.min(fx2, elementX2);\n elementY2 = Math.min(fy2, elementY2);\n }\n\n return (\n element.locked === false &&\n element.type !== \"selection\" &&\n !isBoundToContainer(element) &&\n selectionX1 <= elementX1 &&\n selectionY1 <= elementY1 &&\n selectionX2 >= elementX2 &&\n selectionY2 >= elementY2\n );\n });\n\n elementsInSelection = excludeElementsInFrames\n ? excludeElementsInFramesFromSelection(elementsInSelection)\n : elementsInSelection;\n\n elementsInSelection = elementsInSelection.filter((element) => {\n const containingFrame = getContainingFrame(element, elementsMap);\n\n if (containingFrame) {\n return elementOverlapsWithFrame(element, containingFrame, elementsMap);\n }\n\n return true;\n });\n\n return elementsInSelection;\n};\n\nexport const getVisibleAndNonSelectedElements = (\n elements: readonly NonDeletedExcalidrawElement[],\n selectedElements: readonly NonDeletedExcalidrawElement[],\n appState: AppState,\n elementsMap: ElementsMap,\n) => {\n const selectedElementsSet = new Set(\n selectedElements.map((element) => element.id),\n );\n return elements.filter((element) => {\n const isVisible = isElementInViewport(\n element,\n appState.width,\n appState.height,\n appState,\n elementsMap,\n );\n\n return !selectedElementsSet.has(element.id) && isVisible;\n });\n};\n\n// FIXME move this into the editor instance to keep utility methods stateless\nexport const isSomeElementSelected = (function () {\n let lastElements: readonly NonDeletedExcalidrawElement[] | null = null;\n let lastSelectedElementIds: AppState[\"selectedElementIds\"] | null = null;\n let isSelected: boolean | null = null;\n\n const ret = (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: Pick,\n ): boolean => {\n if (\n isSelected != null &&\n elements === lastElements &&\n appState.selectedElementIds === lastSelectedElementIds\n ) {\n return isSelected;\n }\n\n isSelected = elements.some(\n (element) => appState.selectedElementIds[element.id],\n );\n lastElements = elements;\n lastSelectedElementIds = appState.selectedElementIds;\n\n return isSelected;\n };\n\n ret.clearCache = () => {\n lastElements = null;\n lastSelectedElementIds = null;\n isSelected = null;\n };\n\n return ret;\n})();\n\n/**\n * Returns common attribute (picked by `getAttribute` callback) of selected\n * elements. If elements don't share the same value, returns `null`.\n */\nexport const getCommonAttributeOfSelectedElements = (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: Pick,\n getAttribute: (element: ExcalidrawElement) => T,\n): T | null => {\n const attributes = Array.from(\n new Set(\n getSelectedElements(elements, appState).map((element) =>\n getAttribute(element),\n ),\n ),\n );\n return attributes.length === 1 ? attributes[0] : null;\n};\n\nexport const getSelectedElements = (\n elements: ElementsMapOrArray,\n appState: Pick,\n opts?: {\n includeBoundTextElement?: boolean;\n includeElementsInFrames?: boolean;\n },\n) => {\n const selectedElements: ExcalidrawElement[] = [];\n for (const element of elements.values()) {\n if (appState.selectedElementIds[element.id]) {\n selectedElements.push(element);\n continue;\n }\n if (\n opts?.includeBoundTextElement &&\n isBoundToContainer(element) &&\n appState.selectedElementIds[element?.containerId]\n ) {\n selectedElements.push(element);\n continue;\n }\n }\n\n if (opts?.includeElementsInFrames) {\n const elementsToInclude: ExcalidrawElement[] = [];\n selectedElements.forEach((element) => {\n if (isFrameLikeElement(element)) {\n getFrameChildren(elements, element.id).forEach((e) =>\n elementsToInclude.push(e),\n );\n }\n elementsToInclude.push(element);\n });\n\n return elementsToInclude;\n }\n\n return selectedElements;\n};\n\nexport const getTargetElements = (\n elements: ElementsMapOrArray,\n appState: Pick,\n) =>\n appState.editingElement\n ? [appState.editingElement]\n : getSelectedElements(elements, appState, {\n includeBoundTextElement: true,\n });\n\n/**\n * returns prevState's selectedElementids if no change from previous, so as to\n * retain reference identity for memoization\n */\nexport const makeNextSelectedElementIds = (\n nextSelectedElementIds: AppState[\"selectedElementIds\"],\n prevState: Pick,\n) => {\n if (isShallowEqual(prevState.selectedElementIds, nextSelectedElementIds)) {\n return prevState.selectedElementIds;\n }\n\n return nextSelectedElementIds;\n};\n","import { AppState, PointerCoords, Zoom } from \"../types\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport {\n getCommonBounds,\n getClosestElementBounds,\n getVisibleElements,\n} from \"../element\";\n\nimport {\n sceneCoordsToViewportCoords,\n viewportCoordsToSceneCoords,\n} from \"../utils\";\n\nconst isOutsideViewPort = (appState: AppState, cords: Array) => {\n const [x1, y1, x2, y2] = cords;\n const { x: viewportX1, y: viewportY1 } = sceneCoordsToViewportCoords(\n { sceneX: x1, sceneY: y1 },\n appState,\n );\n const { x: viewportX2, y: viewportY2 } = sceneCoordsToViewportCoords(\n { sceneX: x2, sceneY: y2 },\n appState,\n );\n return (\n viewportX2 - viewportX1 > appState.width ||\n viewportY2 - viewportY1 > appState.height\n );\n};\n\nexport const centerScrollOn = ({\n scenePoint,\n viewportDimensions,\n zoom,\n}: {\n scenePoint: PointerCoords;\n viewportDimensions: { height: number; width: number };\n zoom: Zoom;\n}) => {\n return {\n scrollX: viewportDimensions.width / 2 / zoom.value - scenePoint.x,\n scrollY: viewportDimensions.height / 2 / zoom.value - scenePoint.y,\n };\n};\n\nexport const calculateScrollCenter = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n): { scrollX: number; scrollY: number } => {\n elements = getVisibleElements(elements);\n\n if (!elements.length) {\n return {\n scrollX: 0,\n scrollY: 0,\n };\n }\n let [x1, y1, x2, y2] = getCommonBounds(elements);\n\n if (isOutsideViewPort(appState, [x1, y1, x2, y2])) {\n [x1, y1, x2, y2] = getClosestElementBounds(\n elements,\n viewportCoordsToSceneCoords(\n { clientX: appState.scrollX, clientY: appState.scrollY },\n appState,\n ),\n );\n }\n\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n\n return centerScrollOn({\n scenePoint: { x: centerX, y: centerY },\n viewportDimensions: { width: appState.width, height: appState.height },\n zoom: appState.zoom,\n });\n};\n","import { MIN_ZOOM } from \"../constants\";\nimport { AppState, NormalizedZoomValue } from \"../types\";\n\nexport const getNormalizedZoom = (zoom: number): NormalizedZoomValue => {\n return Math.max(MIN_ZOOM, Math.min(zoom, 30)) as NormalizedZoomValue;\n};\n\nexport const getStateForZoom = (\n {\n viewportX,\n viewportY,\n nextZoom,\n }: {\n viewportX: number;\n viewportY: number;\n nextZoom: NormalizedZoomValue;\n },\n appState: AppState,\n) => {\n const appLayerX = viewportX - appState.offsetLeft;\n const appLayerY = viewportY - appState.offsetTop;\n\n const currentZoom = appState.zoom.value;\n\n // get original scroll position without zoom\n const baseScrollX = appState.scrollX + (appLayerX - appLayerX / currentZoom);\n const baseScrollY = appState.scrollY + (appLayerY - appLayerY / currentZoom);\n\n // get scroll offsets for target zoom level\n const zoomOffsetScrollX = -(appLayerX - appLayerX / nextZoom);\n const zoomOffsetScrollY = -(appLayerY - appLayerY / nextZoom);\n\n return {\n scrollX: baseScrollX + zoomOffsetScrollX,\n scrollY: baseScrollY + zoomOffsetScrollY,\n zoom: {\n value: nextZoom,\n },\n };\n};\n","import React from \"react\";\n\nimport \"./Spinner.scss\";\n\nconst Spinner = ({\n size = \"1em\",\n circleWidth = 8,\n synchronized = false,\n}: {\n size?: string | number;\n circleWidth?: number;\n synchronized?: boolean;\n}) => {\n const mountTime = React.useRef(Date.now());\n const mountDelay = -(mountTime.current % 1600);\n\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default Spinner;\n","import \"./ToolIcon.scss\";\n\nimport React, { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { useExcalidrawContainer } from \"./App\";\nimport { AbortError } from \"../errors\";\nimport Spinner from \"./Spinner\";\nimport { PointerType } from \"../element/types\";\nimport { isPromiseLike } from \"../utils\";\n\nexport type ToolButtonSize = \"small\" | \"medium\";\n\ntype ToolButtonBaseProps = {\n icon?: React.ReactNode;\n \"aria-label\": string;\n \"aria-keyshortcuts\"?: string;\n \"data-testid\"?: string;\n label?: string;\n title?: string;\n name?: string;\n id?: string;\n size?: ToolButtonSize;\n keyBindingLabel?: string | null;\n showAriaLabel?: boolean;\n hidden?: boolean;\n visible?: boolean;\n selected?: boolean;\n className?: string;\n style?: CSSProperties;\n isLoading?: boolean;\n};\n\ntype ToolButtonProps =\n | (ToolButtonBaseProps & {\n type: \"button\";\n children?: React.ReactNode;\n onClick?(event: React.MouseEvent): void;\n })\n | (ToolButtonBaseProps & {\n type: \"submit\";\n children?: React.ReactNode;\n onClick?(event: React.MouseEvent): void;\n })\n | (ToolButtonBaseProps & {\n type: \"icon\";\n children?: React.ReactNode;\n onClick?(): void;\n })\n | (ToolButtonBaseProps & {\n type: \"radio\";\n checked: boolean;\n onChange?(data: { pointerType: PointerType | null }): void;\n onPointerDown?(data: { pointerType: PointerType }): void;\n });\n\nexport const ToolButton = React.forwardRef((props: ToolButtonProps, ref) => {\n const { id: excalId } = useExcalidrawContainer();\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current);\n const sizeCn = `ToolIcon_size_${props.size}`;\n\n const [isLoading, setIsLoading] = useState(false);\n\n const isMountedRef = useRef(true);\n\n const onClick = async (event: React.MouseEvent) => {\n const ret = \"onClick\" in props && props.onClick?.(event);\n\n if (isPromiseLike(ret)) {\n try {\n setIsLoading(true);\n await ret;\n } catch (error: any) {\n if (!(error instanceof AbortError)) {\n throw error;\n } else {\n console.warn(error);\n }\n } finally {\n if (isMountedRef.current) {\n setIsLoading(false);\n }\n }\n }\n };\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n const lastPointerTypeRef = useRef(null);\n\n if (\n props.type === \"button\" ||\n props.type === \"icon\" ||\n props.type === \"submit\"\n ) {\n const type = (props.type === \"icon\" ? \"button\" : props.type) as\n | \"button\"\n | \"submit\";\n return (\n
    ,\n modifiedTablerIconProps,\n);\n\nexport const HamburgerMenuIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const ExportIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const HelpIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const ExternalLinkIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const GithubIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const DiscordIcon = createIcon(\n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const XBrandIcon = createIcon(\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const checkIcon = createIcon(\n ,\n {\n width: 24,\n height: 24,\n },\n);\n\nexport const LinkIcon = createIcon(\n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const save = createIcon(\n \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\",\n { width: 448, height: 512 },\n);\n\nexport const saveAs = createIcon(\n \"M252 54L203 8a28 27 0 00-20-8H28C12 0 0 12 0 27v195c0 15 12 26 28 26h204c15 0 28-11 28-26V73a28 27 0 00-8-19zM130 213c-21 0-37-16-37-36 0-19 16-35 37-35 20 0 37 16 37 35 0 20-17 36-37 36zm56-169v56c0 4-4 6-7 6H44c-4 0-7-2-7-6V42c0-4 3-7 7-7h133l4 2 3 2a7 7 0 012 5z M296 201l87 95-188 205-78 9c-10 1-19-8-18-20l9-84zm141-14l-41-44a31 31 0 00-46 0l-38 41 87 95 38-42c13-14 13-36 0-50z\",\n { width: 448, height: 512 },\n);\n\n// tabler-icon: folder\nexport const LoadIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const clipboard = createIcon(\n \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\",\n { width: 384, height: 512 },\n);\n\nexport const palette = createIcon(\n \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\",\n);\n\nexport const ExportImageIcon = createIcon(\n \n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const exportToFileIcon = createIcon(\n \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\",\n { width: 512, height: 512 },\n);\n\nexport const zoomIn = createIcon(\n \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\",\n { width: 448, height: 512 },\n);\n\nexport const zoomOut = createIcon(\n \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\",\n { width: 448, height: 512 },\n);\n\nexport const done = createIcon(\n \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\",\n);\n\nexport const menu = createIcon(\n \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\",\n);\n\nexport const UndoIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const RedoIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const questionCircle = createIcon(\n \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\",\n { mirror: true },\n);\n\nexport const share = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const warning = createIcon(\n \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\",\n);\n\nexport const shareIOS = createIcon(\n \"M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z\",\n { width: 24, height: 24 },\n);\n\nexport const shareWindows = createIcon(\n <>\n \n \n ,\n { width: 64, height: 64 },\n);\n\n// Icon imported form Storybook\n// Storybook is licensed under MIT https://github.com/storybookjs/storybook/blob/next/LICENSE\nexport const resetZoom = createIcon(\n ,\n { width: 1024 },\n);\n\nexport const BringForwardIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const SendBackwardIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const BringToFrontIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const SendToBackIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\n//\n// Align action icons created from scratch to match those of z-index actions\n// Note: vertical align icons are flipped so the larger item is always the\n// first one the user sees. Horizontal align icons should not be flipped since\n// that would make them lie about their function.\n//\nexport const AlignTopIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const AlignBottomIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const AlignLeftIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const AlignRightIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const DistributeHorizontallyIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const DistributeVerticallyIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const CenterVerticallyIcon = createIcon(\n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const CenterHorizontallyIcon = createIcon(\n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const usersIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\n// not mirrored because it's inspired by a playback control, which is always RTL\nexport const start = createIcon(\n \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\",\n);\n\nexport const stop = createIcon(\n \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\",\n);\n\nexport const CloseIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const back = createIcon(\n \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\",\n { width: 320, height: 512, style: { marginLeft: \"-0.2rem\" }, mirror: true },\n);\n\nexport const clone = createIcon(\n \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\",\n { mirror: true },\n);\n\n// modified https://feathericons.com/?query=shield\nexport const shield = createIcon(\n \"M11.553 22.894a.998.998 0 00.894 0s3.037-1.516 5.465-4.097C19.616 16.987 21 14.663 21 12V5a1 1 0 00-.649-.936l-8-3a.998.998 0 00-.702 0l-8 3A1 1 0 003 5v7c0 2.663 1.384 4.987 3.088 6.797 2.428 2.581 5.465 4.097 5.465 4.097zm-1.303-8.481l6.644-6.644a.856.856 0 111.212 1.212l-7.25 7.25a.856.856 0 01-1.212 0l-3.75-3.75a.856.856 0 111.212-1.212l3.144 3.144z\",\n { width: 24 },\n);\n\nexport const file = createIcon(\n \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\",\n { width: 384, height: 512 },\n);\n\n// TODO barnabasmolnar/editor-redesign\n// couldn't find a new icon for this\nexport const GroupIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n ,\n { width: 182, height: 182, mirror: true },\n ),\n);\n\nexport const UngroupIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n ,\n { width: 182, height: 182, mirror: true },\n ),\n);\n\nexport const FillZigZagIcon = createIcon(\n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FillHachureIcon = createIcon(\n <>\n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FillCrossHatchIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FillSolidIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n { ...modifiedTablerIconProps, fill: \"currentColor\" },\n);\n\nexport const StrokeWidthBaseIcon = createIcon(\n <>\n \n ,\n modifiedTablerIconProps,\n);\n\nexport const StrokeWidthBoldIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const StrokeWidthExtraBoldIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const StrokeStyleSolidIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n ,\n {\n width: 40,\n height: 20,\n },\n ),\n);\n\nexport const StrokeStyleDashedIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\n// tabler-icons: line-dotted\nexport const StrokeStyleDottedIcon = createIcon(\n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const SloppinessArchitectIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const SloppinessArtistIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const SloppinessCartoonistIcon = createIcon(\n ,\n modifiedTablerIconProps,\n);\n\nexport const EdgeSharpIcon = createIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\n// tabler-icons: border-radius\nexport const EdgeRoundIcon = createIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const ArrowheadNoneIcon = createIcon(\n ,\n {\n width: 40,\n height: 20,\n },\n);\n\nexport const ArrowheadArrowIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadCircleIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadCircleOutlineIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadBarIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadTriangleIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadTriangleOutlineIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadDiamondIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const ArrowheadDiamondOutlineIcon = React.memo(\n ({ flip = false }: { flip?: boolean }) =>\n createIcon(\n \n \n \n ,\n { width: 40, height: 20 },\n ),\n);\n\nexport const FontSizeSmallIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FontSizeMediumIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FontSizeLargeIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FontSizeExtraLargeIcon = createIcon(\n <>\n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FontFamilyNormalIcon = createIcon(\n <>\n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const FontFamilyCodeIcon = createIcon(\n <>\n \n \n \n \n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const TextAlignLeftIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const TextAlignCenterIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const TextAlignRightIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\n// tabler-icons: layout-align-top\nexport const TextAlignTopIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n \n \n \n \n ,\n tablerIconProps,\n ),\n);\n\n// tabler-icons: layout-align-bottom\nexport const TextAlignBottomIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n \n \n \n \n ,\n tablerIconProps,\n ),\n);\n\n// tabler-icons: layout-align-middle\nexport const TextAlignMiddleIcon = React.memo(({ theme }: { theme: Theme }) =>\n createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n ),\n);\n\nexport const publishIcon = createIcon(\n ,\n { width: 640, height: 512 },\n);\n\nexport const eraser = createIcon(\n ,\n);\n\nexport const handIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const downloadIcon = createIcon(\n <>\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const copyIcon = createIcon(\n <>\n \n \n \n ,\n tablerIconProps,\n);\n\nexport const helpIcon = createIcon(\n <>\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const playerPlayIcon = createIcon(\n <>\n \n \n ,\n tablerIconProps,\n);\n\nexport const playerStopFilledIcon = createIcon(\n <>\n \n \n ,\n tablerIconProps,\n);\n\nexport const tablerCheckIcon = createIcon(\n <>\n \n \n ,\n tablerIconProps,\n);\n\nexport const alertTriangleIcon = createIcon(\n <>\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const eyeDropperIcon = createIcon(\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const extraToolsIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const frameToolIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const mermaidLogoIcon = createIcon(\n ,\n);\n\nexport const ArrowRightIcon = createIcon(\n \n \n \n \n ,\n modifiedTablerIconProps,\n);\n\nexport const laserPointerToolIcon = createIcon(\n \n \n \n ,\n\n 20,\n);\n\nexport const MagicIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const OpenAIIcon = createIcon(\n \n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const fullscreenIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const eyeIcon = createIcon(\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const eyeClosedIcon = createIcon(\n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const brainIcon = createIcon(\n \n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const searchIcon = createIcon(\n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const microphoneIcon = createIcon(\n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n\nexport const microphoneMutedIcon = createIcon(\n \n \n \n \n \n \n \n ,\n tablerIconProps,\n);\n","import { getSelectedElements, isSomeElementSelected } from \"../scene\";\nimport { KEYS } from \"../keys\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { t } from \"../i18n\";\nimport { register } from \"./register\";\nimport { getNonDeletedElements } from \"../element\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { AppState } from \"../types\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport { getElementsInGroup } from \"../groups\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport { fixBindingsAfterDeletion } from \"../element/binding\";\nimport { isBoundToContainer, isFrameLikeElement } from \"../element/typeChecks\";\nimport { updateActiveTool } from \"../utils\";\nimport { TrashIcon } from \"../components/icons\";\n\nconst deleteSelectedElements = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n const framesToBeDeleted = new Set(\n getSelectedElements(\n elements.filter((el) => isFrameLikeElement(el)),\n appState,\n ).map((el) => el.id),\n );\n\n return {\n elements: elements.map((el) => {\n if (appState.selectedElementIds[el.id]) {\n return newElementWith(el, { isDeleted: true });\n }\n\n if (el.frameId && framesToBeDeleted.has(el.frameId)) {\n return newElementWith(el, { isDeleted: true });\n }\n\n if (\n isBoundToContainer(el) &&\n appState.selectedElementIds[el.containerId]\n ) {\n return newElementWith(el, { isDeleted: true });\n }\n return el;\n }),\n appState: {\n ...appState,\n selectedElementIds: {},\n selectedGroupIds: {},\n },\n };\n};\n\nconst handleGroupEditingState = (\n appState: AppState,\n elements: readonly ExcalidrawElement[],\n): AppState => {\n if (appState.editingGroupId) {\n const siblingElements = getElementsInGroup(\n getNonDeletedElements(elements),\n appState.editingGroupId!,\n );\n if (siblingElements.length) {\n return {\n ...appState,\n selectedElementIds: { [siblingElements[0].id]: true },\n };\n }\n }\n return appState;\n};\n\nexport const actionDeleteSelected = register({\n name: \"deleteSelectedElements\",\n trackEvent: { category: \"element\", action: \"delete\" },\n perform: (elements, appState, formData, app) => {\n if (appState.editingLinearElement) {\n const {\n elementId,\n selectedPointsIndices,\n startBindingElement,\n endBindingElement,\n } = appState.editingLinearElement;\n const elementsMap = app.scene.getNonDeletedElementsMap();\n const element = LinearElementEditor.getElement(elementId, elementsMap);\n if (!element) {\n return false;\n }\n // case: no point selected → do nothing, as deleting the whole element\n // is most likely a mistake, where you wanted to delete a specific point\n // but failed to select it (or you thought it's selected, while it was\n // only in a hover state)\n if (selectedPointsIndices == null) {\n return false;\n }\n\n // case: deleting last remaining point\n if (element.points.length < 2) {\n const nextElements = elements.map((el) => {\n if (el.id === element.id) {\n return newElementWith(el, { isDeleted: true });\n }\n return el;\n });\n const nextAppState = handleGroupEditingState(appState, nextElements);\n\n return {\n elements: nextElements,\n appState: {\n ...nextAppState,\n editingLinearElement: null,\n },\n commitToHistory: false,\n };\n }\n\n // We cannot do this inside `movePoint` because it is also called\n // when deleting the uncommitted point (which hasn't caused any binding)\n const binding = {\n startBindingElement: selectedPointsIndices?.includes(0)\n ? null\n : startBindingElement,\n endBindingElement: selectedPointsIndices?.includes(\n element.points.length - 1,\n )\n ? null\n : endBindingElement,\n };\n\n LinearElementEditor.deletePoints(element, selectedPointsIndices);\n\n return {\n elements,\n appState: {\n ...appState,\n editingLinearElement: {\n ...appState.editingLinearElement,\n ...binding,\n selectedPointsIndices:\n selectedPointsIndices?.[0] > 0\n ? [selectedPointsIndices[0] - 1]\n : [0],\n },\n },\n commitToHistory: true,\n };\n }\n let { elements: nextElements, appState: nextAppState } =\n deleteSelectedElements(elements, appState);\n fixBindingsAfterDeletion(\n nextElements,\n elements.filter(({ id }) => appState.selectedElementIds[id]),\n );\n\n nextAppState = handleGroupEditingState(nextAppState, nextElements);\n\n return {\n elements: nextElements,\n appState: {\n ...nextAppState,\n activeTool: updateActiveTool(appState, { type: \"selection\" }),\n multiElement: null,\n activeEmbeddable: null,\n },\n commitToHistory: isSomeElementSelected(\n getNonDeletedElements(elements),\n appState,\n ),\n };\n },\n contextItemLabel: \"labels.delete\",\n keyTest: (event, appState, elements) =>\n (event.key === KEYS.BACKSPACE || event.key === KEYS.DELETE) &&\n !event[KEYS.CTRL_OR_CMD],\n PanelComponent: ({ elements, appState, updateData }) => (\n updateData(null)}\n visible={isSomeElementSelected(getNonDeletedElements(elements), appState)}\n />\n ),\n});\n","import { bumpVersion } from \"./element/mutateElement\";\nimport { isFrameLikeElement } from \"./element/typeChecks\";\nimport { ExcalidrawElement, ExcalidrawFrameLikeElement } from \"./element/types\";\nimport { getElementsInGroup } from \"./groups\";\nimport { getSelectedElements } from \"./scene\";\nimport Scene from \"./scene/Scene\";\nimport { AppState } from \"./types\";\nimport { arrayToMap, findIndex, findLastIndex } from \"./utils\";\n\nconst isOfTargetFrame = (element: ExcalidrawElement, frameId: string) => {\n return element.frameId === frameId || element.id === frameId;\n};\n\n/**\n * Returns indices of elements to move based on selected elements.\n * Includes contiguous deleted elements that are between two selected elements,\n * e.g.: [0 (selected), 1 (deleted), 2 (deleted), 3 (selected)]\n *\n * Specified elements (elementsToBeMoved) take precedence over\n * appState.selectedElementsIds\n */\nconst getIndicesToMove = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n elementsToBeMoved?: readonly ExcalidrawElement[],\n) => {\n let selectedIndices: number[] = [];\n let deletedIndices: number[] = [];\n let includeDeletedIndex = null;\n let index = -1;\n const selectedElementIds = arrayToMap(\n elementsToBeMoved\n ? elementsToBeMoved\n : getSelectedElements(elements, appState, {\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n }),\n );\n while (++index < elements.length) {\n const element = elements[index];\n if (selectedElementIds.get(element.id)) {\n if (deletedIndices.length) {\n selectedIndices = selectedIndices.concat(deletedIndices);\n deletedIndices = [];\n }\n selectedIndices.push(index);\n includeDeletedIndex = index + 1;\n } else if (element.isDeleted && includeDeletedIndex === index) {\n includeDeletedIndex = index + 1;\n deletedIndices.push(index);\n } else {\n deletedIndices = [];\n }\n }\n return selectedIndices;\n};\n\nconst toContiguousGroups = (array: number[]) => {\n let cursor = 0;\n return array.reduce((acc, value, index) => {\n if (index > 0 && array[index - 1] !== value - 1) {\n cursor = ++cursor;\n }\n (acc[cursor] || (acc[cursor] = [])).push(value);\n return acc;\n }, [] as number[][]);\n};\n\n/**\n * @returns index of target element, consindering tightly-bound elements\n * (currently non-linear elements bound to a container) as a one unit.\n * If no binding present, returns `undefined`.\n */\nconst getTargetIndexAccountingForBinding = (\n nextElement: ExcalidrawElement,\n elements: readonly ExcalidrawElement[],\n direction: \"left\" | \"right\",\n) => {\n if (\"containerId\" in nextElement && nextElement.containerId) {\n if (direction === \"left\") {\n const containerElement = Scene.getScene(nextElement)!.getElement(\n nextElement.containerId,\n );\n if (containerElement) {\n return elements.indexOf(containerElement);\n }\n } else {\n return elements.indexOf(nextElement);\n }\n } else {\n const boundElementId = nextElement.boundElements?.find(\n (binding) => binding.type !== \"arrow\",\n )?.id;\n if (boundElementId) {\n if (direction === \"left\") {\n return elements.indexOf(nextElement);\n }\n\n const boundTextElement =\n Scene.getScene(nextElement)!.getElement(boundElementId);\n if (boundTextElement) {\n return elements.indexOf(boundTextElement);\n }\n }\n }\n};\n\nconst getContiguousFrameRangeElements = (\n allElements: readonly ExcalidrawElement[],\n frameId: ExcalidrawFrameLikeElement[\"id\"],\n) => {\n let rangeStart = -1;\n let rangeEnd = -1;\n allElements.forEach((element, index) => {\n if (isOfTargetFrame(element, frameId)) {\n if (rangeStart === -1) {\n rangeStart = index;\n }\n rangeEnd = index;\n }\n });\n if (rangeStart === -1) {\n return [];\n }\n return allElements.slice(rangeStart, rangeEnd + 1);\n};\n\n/**\n * Returns next candidate index that's available to be moved to. Currently that\n * is a non-deleted element, and not inside a group (unless we're editing it).\n */\nconst getTargetIndex = (\n appState: AppState,\n elements: readonly ExcalidrawElement[],\n boundaryIndex: number,\n direction: \"left\" | \"right\",\n /**\n * Frame id if moving frame children.\n * If whole frame (including all children) is being moved, supply `null`.\n */\n containingFrame: ExcalidrawFrameLikeElement[\"id\"] | null,\n) => {\n const sourceElement = elements[boundaryIndex];\n\n const indexFilter = (element: ExcalidrawElement) => {\n if (element.isDeleted) {\n return false;\n }\n if (containingFrame) {\n return element.frameId === containingFrame;\n }\n // if we're editing group, find closest sibling irrespective of whether\n // there's a different-group element between them (for legacy reasons)\n if (appState.editingGroupId) {\n return element.groupIds.includes(appState.editingGroupId);\n }\n return true;\n };\n\n const candidateIndex =\n direction === \"left\"\n ? findLastIndex(\n elements,\n (el) => indexFilter(el),\n Math.max(0, boundaryIndex - 1),\n )\n : findIndex(elements, (el) => indexFilter(el), boundaryIndex + 1);\n\n const nextElement = elements[candidateIndex];\n\n if (!nextElement) {\n return -1;\n }\n\n if (appState.editingGroupId) {\n if (\n // candidate element is a sibling in current editing group → return\n sourceElement?.groupIds.join(\"\") === nextElement?.groupIds.join(\"\")\n ) {\n return (\n getTargetIndexAccountingForBinding(nextElement, elements, direction) ??\n candidateIndex\n );\n } else if (!nextElement?.groupIds.includes(appState.editingGroupId)) {\n // candidate element is outside current editing group → prevent\n return -1;\n }\n }\n\n if (\n !containingFrame &&\n (nextElement.frameId || isFrameLikeElement(nextElement))\n ) {\n const frameElements = getContiguousFrameRangeElements(\n elements,\n nextElement.frameId || nextElement.id,\n );\n return direction === \"left\"\n ? elements.indexOf(frameElements[0])\n : elements.indexOf(frameElements[frameElements.length - 1]);\n }\n\n if (!nextElement.groupIds.length) {\n return (\n getTargetIndexAccountingForBinding(nextElement, elements, direction) ??\n candidateIndex\n );\n }\n\n const siblingGroupId = appState.editingGroupId\n ? nextElement.groupIds[\n nextElement.groupIds.indexOf(appState.editingGroupId) - 1\n ]\n : nextElement.groupIds[nextElement.groupIds.length - 1];\n\n const elementsInSiblingGroup = getElementsInGroup(elements, siblingGroupId);\n\n if (elementsInSiblingGroup.length) {\n // assumes getElementsInGroup() returned elements are sorted\n // by zIndex (ascending)\n return direction === \"left\"\n ? elements.indexOf(elementsInSiblingGroup[0])\n : elements.indexOf(\n elementsInSiblingGroup[elementsInSiblingGroup.length - 1],\n );\n }\n\n return candidateIndex;\n};\n\nconst getTargetElementsMap = (\n elements: readonly T[],\n indices: number[],\n) => {\n return indices.reduce((acc, index) => {\n const element = elements[index];\n acc[element.id] = element;\n return acc;\n }, {} as Record);\n};\n\nconst shiftElementsByOne = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n direction: \"left\" | \"right\",\n) => {\n const indicesToMove = getIndicesToMove(elements, appState);\n const targetElementsMap = getTargetElementsMap(elements, indicesToMove);\n let groupedIndices = toContiguousGroups(indicesToMove);\n\n if (direction === \"right\") {\n groupedIndices = groupedIndices.reverse();\n }\n\n const selectedFrames = new Set(\n indicesToMove\n .filter((idx) => isFrameLikeElement(elements[idx]))\n .map((idx) => elements[idx].id),\n );\n\n groupedIndices.forEach((indices, i) => {\n const leadingIndex = indices[0];\n const trailingIndex = indices[indices.length - 1];\n const boundaryIndex = direction === \"left\" ? leadingIndex : trailingIndex;\n\n const containingFrame = indices.some((idx) => {\n const el = elements[idx];\n return el.frameId && selectedFrames.has(el.frameId);\n })\n ? null\n : elements[boundaryIndex]?.frameId;\n\n const targetIndex = getTargetIndex(\n appState,\n elements,\n boundaryIndex,\n direction,\n containingFrame,\n );\n\n if (targetIndex === -1 || boundaryIndex === targetIndex) {\n return;\n }\n\n const leadingElements =\n direction === \"left\"\n ? elements.slice(0, targetIndex)\n : elements.slice(0, leadingIndex);\n const targetElements = elements.slice(leadingIndex, trailingIndex + 1);\n const displacedElements =\n direction === \"left\"\n ? elements.slice(targetIndex, leadingIndex)\n : elements.slice(trailingIndex + 1, targetIndex + 1);\n const trailingElements =\n direction === \"left\"\n ? elements.slice(trailingIndex + 1)\n : elements.slice(targetIndex + 1);\n\n elements =\n direction === \"left\"\n ? [\n ...leadingElements,\n ...targetElements,\n ...displacedElements,\n ...trailingElements,\n ]\n : [\n ...leadingElements,\n ...displacedElements,\n ...targetElements,\n ...trailingElements,\n ];\n });\n\n return elements.map((element) => {\n if (targetElementsMap[element.id]) {\n return bumpVersion(element);\n }\n return element;\n });\n};\n\nconst shiftElementsToEnd = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n direction: \"left\" | \"right\",\n containingFrame: ExcalidrawFrameLikeElement[\"id\"] | null,\n elementsToBeMoved?: readonly ExcalidrawElement[],\n) => {\n const indicesToMove = getIndicesToMove(elements, appState, elementsToBeMoved);\n const targetElementsMap = getTargetElementsMap(elements, indicesToMove);\n const displacedElements: ExcalidrawElement[] = [];\n\n let leadingIndex: number;\n let trailingIndex: number;\n if (direction === \"left\") {\n if (containingFrame) {\n leadingIndex = findIndex(elements, (el) =>\n isOfTargetFrame(el, containingFrame),\n );\n } else if (appState.editingGroupId) {\n const groupElements = getElementsInGroup(\n elements,\n appState.editingGroupId,\n );\n if (!groupElements.length) {\n return elements;\n }\n leadingIndex = elements.indexOf(groupElements[0]);\n } else {\n leadingIndex = 0;\n }\n\n trailingIndex = indicesToMove[indicesToMove.length - 1];\n } else {\n if (containingFrame) {\n trailingIndex = findLastIndex(elements, (el) =>\n isOfTargetFrame(el, containingFrame),\n );\n } else if (appState.editingGroupId) {\n const groupElements = getElementsInGroup(\n elements,\n appState.editingGroupId,\n );\n if (!groupElements.length) {\n return elements;\n }\n trailingIndex = elements.indexOf(groupElements[groupElements.length - 1]);\n } else {\n trailingIndex = elements.length - 1;\n }\n\n leadingIndex = indicesToMove[0];\n }\n\n if (leadingIndex === -1) {\n leadingIndex = 0;\n }\n\n for (let index = leadingIndex; index < trailingIndex + 1; index++) {\n if (!indicesToMove.includes(index)) {\n displacedElements.push(elements[index]);\n }\n }\n\n const targetElements = Object.values(targetElementsMap).map((element) => {\n return bumpVersion(element);\n });\n\n const leadingElements = elements.slice(0, leadingIndex);\n const trailingElements = elements.slice(trailingIndex + 1);\n\n return direction === \"left\"\n ? [\n ...leadingElements,\n ...targetElements,\n ...displacedElements,\n ...trailingElements,\n ]\n : [\n ...leadingElements,\n ...displacedElements,\n ...targetElements,\n ...trailingElements,\n ];\n};\n\nfunction shiftElementsAccountingForFrames(\n allElements: readonly ExcalidrawElement[],\n appState: AppState,\n direction: \"left\" | \"right\",\n shiftFunction: (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n direction: \"left\" | \"right\",\n containingFrame: ExcalidrawFrameLikeElement[\"id\"] | null,\n elementsToBeMoved?: readonly ExcalidrawElement[],\n ) => ExcalidrawElement[] | readonly ExcalidrawElement[],\n) {\n const elementsToMove = arrayToMap(\n getSelectedElements(allElements, appState, {\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n }),\n );\n\n const frameAwareContiguousElementsToMove: {\n regularElements: ExcalidrawElement[];\n frameChildren: Map;\n } = { regularElements: [], frameChildren: new Map() };\n\n const fullySelectedFrames = new Set();\n\n for (const element of allElements) {\n if (elementsToMove.has(element.id) && isFrameLikeElement(element)) {\n fullySelectedFrames.add(element.id);\n }\n }\n\n for (const element of allElements) {\n if (elementsToMove.has(element.id)) {\n if (\n isFrameLikeElement(element) ||\n (element.frameId && fullySelectedFrames.has(element.frameId))\n ) {\n frameAwareContiguousElementsToMove.regularElements.push(element);\n } else if (!element.frameId) {\n frameAwareContiguousElementsToMove.regularElements.push(element);\n } else {\n const frameChildren =\n frameAwareContiguousElementsToMove.frameChildren.get(\n element.frameId,\n ) || [];\n frameChildren.push(element);\n frameAwareContiguousElementsToMove.frameChildren.set(\n element.frameId,\n frameChildren,\n );\n }\n }\n }\n\n let nextElements = allElements;\n\n const frameChildrenSets = Array.from(\n frameAwareContiguousElementsToMove.frameChildren.entries(),\n );\n\n for (const [frameId, children] of frameChildrenSets) {\n nextElements = shiftFunction(\n allElements,\n appState,\n direction,\n frameId,\n children,\n );\n }\n\n return shiftFunction(\n nextElements,\n appState,\n direction,\n null,\n frameAwareContiguousElementsToMove.regularElements,\n );\n}\n\n// public API\n// -----------------------------------------------------------------------------\n\nexport const moveOneLeft = (\n allElements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n return shiftElementsByOne(allElements, appState, \"left\");\n};\n\nexport const moveOneRight = (\n allElements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n return shiftElementsByOne(allElements, appState, \"right\");\n};\n\nexport const moveAllLeft = (\n allElements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n return shiftElementsAccountingForFrames(\n allElements,\n appState,\n \"left\",\n shiftElementsToEnd,\n );\n};\n\nexport const moveAllRight = (\n allElements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n return shiftElementsAccountingForFrames(\n allElements,\n appState,\n \"right\",\n shiftElementsToEnd,\n );\n};\n","import React from \"react\";\nimport {\n moveOneLeft,\n moveOneRight,\n moveAllLeft,\n moveAllRight,\n} from \"../zindex\";\nimport { KEYS, CODES } from \"../keys\";\nimport { t } from \"../i18n\";\nimport { getShortcutKey } from \"../utils\";\nimport { register } from \"./register\";\nimport {\n BringForwardIcon,\n BringToFrontIcon,\n SendBackwardIcon,\n SendToBackIcon,\n} from \"../components/icons\";\nimport { isDarwin } from \"../constants\";\n\nexport const actionSendBackward = register({\n name: \"sendBackward\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState) => {\n return {\n elements: moveOneLeft(elements, appState),\n appState,\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.sendBackward\",\n keyPriority: 40,\n keyTest: (event) =>\n event[KEYS.CTRL_OR_CMD] &&\n !event.shiftKey &&\n event.code === CODES.BRACKET_LEFT,\n PanelComponent: ({ updateData, appState }) => (\n updateData(null)}\n title={`${t(\"labels.sendBackward\")} — ${getShortcutKey(\"CtrlOrCmd+[\")}`}\n >\n {SendBackwardIcon}\n \n ),\n});\n\nexport const actionBringForward = register({\n name: \"bringForward\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState) => {\n return {\n elements: moveOneRight(elements, appState),\n appState,\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.bringForward\",\n keyPriority: 40,\n keyTest: (event) =>\n event[KEYS.CTRL_OR_CMD] &&\n !event.shiftKey &&\n event.code === CODES.BRACKET_RIGHT,\n PanelComponent: ({ updateData, appState }) => (\n updateData(null)}\n title={`${t(\"labels.bringForward\")} — ${getShortcutKey(\"CtrlOrCmd+]\")}`}\n >\n {BringForwardIcon}\n \n ),\n});\n\nexport const actionSendToBack = register({\n name: \"sendToBack\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState) => {\n return {\n elements: moveAllLeft(elements, appState),\n appState,\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.sendToBack\",\n keyTest: (event) =>\n isDarwin\n ? event[KEYS.CTRL_OR_CMD] &&\n event.altKey &&\n event.code === CODES.BRACKET_LEFT\n : event[KEYS.CTRL_OR_CMD] &&\n event.shiftKey &&\n event.code === CODES.BRACKET_LEFT,\n PanelComponent: ({ updateData, appState }) => (\n updateData(null)}\n title={`${t(\"labels.sendToBack\")} — ${\n isDarwin\n ? getShortcutKey(\"CtrlOrCmd+Alt+[\")\n : getShortcutKey(\"CtrlOrCmd+Shift+[\")\n }`}\n >\n {SendToBackIcon}\n \n ),\n});\n\nexport const actionBringToFront = register({\n name: \"bringToFront\",\n trackEvent: { category: \"element\" },\n\n perform: (elements, appState) => {\n return {\n elements: moveAllRight(elements, appState),\n appState,\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.bringToFront\",\n keyTest: (event) =>\n isDarwin\n ? event[KEYS.CTRL_OR_CMD] &&\n event.altKey &&\n event.code === CODES.BRACKET_RIGHT\n : event[KEYS.CTRL_OR_CMD] &&\n event.shiftKey &&\n event.code === CODES.BRACKET_RIGHT,\n PanelComponent: ({ updateData, appState }) => (\n updateData(null)}\n title={`${t(\"labels.bringToFront\")} — ${\n isDarwin\n ? getShortcutKey(\"CtrlOrCmd+Alt+]\")\n : getShortcutKey(\"CtrlOrCmd+Shift+]\")\n }`}\n >\n {BringToFrontIcon}\n \n ),\n});\n","import { KEYS } from \"../keys\";\nimport { register } from \"./register\";\nimport { selectGroupsForSelectedElements } from \"../groups\";\nimport { getNonDeletedElements, isTextElement } from \"../element\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { isLinearElement } from \"../element/typeChecks\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport { excludeElementsInFramesFromSelection } from \"../scene/selection\";\n\nexport const actionSelectAll = register({\n name: \"selectAll\",\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState, value, app) => {\n if (appState.editingLinearElement) {\n return false;\n }\n\n const selectedElementIds = excludeElementsInFramesFromSelection(\n elements.filter(\n (element) =>\n !element.isDeleted &&\n !(isTextElement(element) && element.containerId) &&\n !element.locked,\n ),\n ).reduce((map: Record, element) => {\n map[element.id] = true;\n return map;\n }, {});\n\n return {\n appState: {\n ...appState,\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: null,\n selectedElementIds,\n },\n getNonDeletedElements(elements),\n appState,\n app,\n ),\n selectedLinearElement:\n // single linear element selected\n Object.keys(selectedElementIds).length === 1 &&\n isLinearElement(elements[0])\n ? new LinearElementEditor(elements[0])\n : null,\n },\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.selectAll\",\n keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.key === KEYS.A,\n});\n","import { arrayToMapWithIndex } from \"../utils\";\nimport { ExcalidrawElement } from \"./types\";\n\nconst normalizeGroupElementOrder = (elements: readonly ExcalidrawElement[]) => {\n const origElements: ExcalidrawElement[] = elements.slice();\n const sortedElements = new Set();\n\n const orderInnerGroups = (\n elements: readonly ExcalidrawElement[],\n ): ExcalidrawElement[] => {\n const firstGroupSig = elements[0]?.groupIds?.join(\"\");\n const aGroup: ExcalidrawElement[] = [elements[0]];\n const bGroup: ExcalidrawElement[] = [];\n for (const element of elements.slice(1)) {\n if (element.groupIds?.join(\"\") === firstGroupSig) {\n aGroup.push(element);\n } else {\n bGroup.push(element);\n }\n }\n return bGroup.length ? [...aGroup, ...orderInnerGroups(bGroup)] : aGroup;\n };\n\n const groupHandledElements = new Map();\n\n origElements.forEach((element, idx) => {\n if (groupHandledElements.has(element.id)) {\n return;\n }\n if (element.groupIds?.length) {\n const topGroup = element.groupIds[element.groupIds.length - 1];\n const groupElements = origElements.slice(idx).filter((element) => {\n const ret = element?.groupIds?.some((id) => id === topGroup);\n if (ret) {\n groupHandledElements.set(element!.id, true);\n }\n return ret;\n });\n\n for (const elem of orderInnerGroups(groupElements)) {\n sortedElements.add(elem);\n }\n } else {\n sortedElements.add(element);\n }\n });\n\n // if there's a bug which resulted in losing some of the elements, return\n // original instead as that's better than losing data\n if (sortedElements.size !== elements.length) {\n console.error(\"normalizeGroupElementOrder: lost some elements... bailing!\");\n return elements;\n }\n\n return [...sortedElements];\n};\n\n/**\n * In theory, when we have text elements bound to a container, they\n * should be right after the container element in the elements array.\n * However, this is not guaranteed due to old and potential future bugs.\n *\n * This function sorts containers and their bound texts together. It prefers\n * original z-index of container (i.e. it moves bound text elements after\n * containers).\n */\nconst normalizeBoundElementsOrder = (\n elements: readonly ExcalidrawElement[],\n) => {\n const elementsMap = arrayToMapWithIndex(elements);\n\n const origElements: (ExcalidrawElement | null)[] = elements.slice();\n const sortedElements = new Set();\n\n origElements.forEach((element, idx) => {\n if (!element) {\n return;\n }\n if (element.boundElements?.length) {\n sortedElements.add(element);\n origElements[idx] = null;\n element.boundElements.forEach((boundElement) => {\n const child = elementsMap.get(boundElement.id);\n if (child && boundElement.type === \"text\") {\n sortedElements.add(child[0]);\n origElements[child[1]] = null;\n }\n });\n } else if (element.type === \"text\" && element.containerId) {\n const parent = elementsMap.get(element.containerId);\n if (!parent?.[0].boundElements?.find((x) => x.id === element.id)) {\n sortedElements.add(element);\n origElements[idx] = null;\n\n // if element has a container and container lists it, skip this element\n // as it'll be taken care of by the container\n }\n } else {\n sortedElements.add(element);\n origElements[idx] = null;\n }\n });\n\n // if there's a bug which resulted in losing some of the elements, return\n // original instead as that's better than losing data\n if (sortedElements.size !== elements.length) {\n console.error(\n \"normalizeBoundElementsOrder: lost some elements... bailing!\",\n );\n return elements;\n }\n\n return [...sortedElements];\n};\n\nexport const normalizeElementOrder = (\n elements: readonly ExcalidrawElement[],\n) => {\n // console.time();\n const ret = normalizeBoundElementsOrder(normalizeGroupElementOrder(elements));\n // console.timeEnd();\n return ret;\n};\n","import { KEYS } from \"../keys\";\nimport { register } from \"./register\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { duplicateElement, getNonDeletedElements } from \"../element\";\nimport { isSomeElementSelected } from \"../scene\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { t } from \"../i18n\";\nimport { arrayToMap, getShortcutKey } from \"../utils\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport {\n selectGroupsForSelectedElements,\n getSelectedGroupForElement,\n getElementsInGroup,\n} from \"../groups\";\nimport { AppState } from \"../types\";\nimport { fixBindingsAfterDuplication } from \"../element/binding\";\nimport { ActionResult } from \"./types\";\nimport { GRID_SIZE } from \"../constants\";\nimport {\n bindTextToShapeAfterDuplication,\n getBoundTextElement,\n} from \"../element/textElement\";\nimport { isBoundToContainer, isFrameLikeElement } from \"../element/typeChecks\";\nimport { normalizeElementOrder } from \"../element/sortElements\";\nimport { DuplicateIcon } from \"../components/icons\";\nimport {\n bindElementsToFramesAfterDuplication,\n getFrameChildren,\n} from \"../frame\";\nimport {\n excludeElementsInFramesFromSelection,\n getSelectedElements,\n} from \"../scene/selection\";\n\nexport const actionDuplicateSelection = register({\n name: \"duplicateSelection\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState, formData, app) => {\n const elementsMap = app.scene.getNonDeletedElementsMap();\n // duplicate selected point(s) if editing a line\n if (appState.editingLinearElement) {\n const ret = LinearElementEditor.duplicateSelectedPoints(\n appState,\n elementsMap,\n );\n\n if (!ret) {\n return false;\n }\n\n return {\n elements,\n appState: ret.appState,\n commitToHistory: true,\n };\n }\n\n return {\n ...duplicateElements(elements, appState),\n commitToHistory: true,\n };\n },\n contextItemLabel: \"labels.duplicateSelection\",\n keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.key === KEYS.D,\n PanelComponent: ({ elements, appState, updateData }) => (\n updateData(null)}\n visible={isSomeElementSelected(getNonDeletedElements(elements), appState)}\n />\n ),\n});\n\nconst duplicateElements = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n): Partial => {\n // ---------------------------------------------------------------------------\n\n // step (1)\n\n const sortedElements = normalizeElementOrder(elements);\n const groupIdMap = new Map();\n const newElements: ExcalidrawElement[] = [];\n const oldElements: ExcalidrawElement[] = [];\n const oldIdToDuplicatedId = new Map();\n\n const duplicateAndOffsetElement = (element: ExcalidrawElement) => {\n const newElement = duplicateElement(\n appState.editingGroupId,\n groupIdMap,\n element,\n {\n x: element.x + GRID_SIZE / 2,\n y: element.y + GRID_SIZE / 2,\n },\n );\n oldIdToDuplicatedId.set(element.id, newElement.id);\n oldElements.push(element);\n newElements.push(newElement);\n return newElement;\n };\n\n const idsOfElementsToDuplicate = arrayToMap(\n getSelectedElements(sortedElements, appState, {\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n }),\n );\n\n // Ids of elements that have already been processed so we don't push them\n // into the array twice if we end up backtracking when retrieving\n // discontiguous group of elements (can happen due to a bug, or in edge\n // cases such as a group containing deleted elements which were not selected).\n //\n // This is not enough to prevent duplicates, so we do a second loop afterwards\n // to remove them.\n //\n // For convenience we mark even the newly created ones even though we don't\n // loop over them.\n const processedIds = new Map();\n\n const markAsProcessed = (elements: ExcalidrawElement[]) => {\n for (const element of elements) {\n processedIds.set(element.id, true);\n }\n return elements;\n };\n\n const elementsWithClones: ExcalidrawElement[] = [];\n\n let index = -1;\n\n while (++index < sortedElements.length) {\n const element = sortedElements[index];\n\n if (processedIds.get(element.id)) {\n continue;\n }\n\n const boundTextElement = getBoundTextElement(element, arrayToMap(elements));\n const isElementAFrameLike = isFrameLikeElement(element);\n\n if (idsOfElementsToDuplicate.get(element.id)) {\n // if a group or a container/bound-text or frame, duplicate atomically\n if (element.groupIds.length || boundTextElement || isElementAFrameLike) {\n const groupId = getSelectedGroupForElement(appState, element);\n if (groupId) {\n // TODO:\n // remove `.flatMap...`\n // if the elements in a frame are grouped when the frame is grouped\n const groupElements = getElementsInGroup(\n sortedElements,\n groupId,\n ).flatMap((element) =>\n isFrameLikeElement(element)\n ? [...getFrameChildren(elements, element.id), element]\n : [element],\n );\n\n elementsWithClones.push(\n ...markAsProcessed([\n ...groupElements,\n ...groupElements.map((element) =>\n duplicateAndOffsetElement(element),\n ),\n ]),\n );\n continue;\n }\n if (boundTextElement) {\n elementsWithClones.push(\n ...markAsProcessed([\n element,\n boundTextElement,\n duplicateAndOffsetElement(element),\n duplicateAndOffsetElement(boundTextElement),\n ]),\n );\n continue;\n }\n if (isElementAFrameLike) {\n const elementsInFrame = getFrameChildren(sortedElements, element.id);\n\n elementsWithClones.push(\n ...markAsProcessed([\n ...elementsInFrame,\n element,\n ...elementsInFrame.map((e) => duplicateAndOffsetElement(e)),\n duplicateAndOffsetElement(element),\n ]),\n );\n\n continue;\n }\n }\n // since elements in frames have a lower z-index than the frame itself,\n // they will be looped first and if their frames are selected as well,\n // they will have been copied along with the frame atomically in the\n // above branch, so we must skip those elements here\n //\n // now, for elements do not belong any frames or elements whose frames\n // are selected (or elements that are left out from the above\n // steps for whatever reason) we (should at least) duplicate them here\n if (!element.frameId || !idsOfElementsToDuplicate.has(element.frameId)) {\n elementsWithClones.push(\n ...markAsProcessed([element, duplicateAndOffsetElement(element)]),\n );\n }\n } else {\n elementsWithClones.push(...markAsProcessed([element]));\n }\n }\n\n // step (2)\n\n // second pass to remove duplicates. We loop from the end as it's likelier\n // that the last elements are in the correct order (contiguous or otherwise).\n // Thus we need to reverse as the last step (3).\n\n const finalElementsReversed: ExcalidrawElement[] = [];\n\n const finalElementIds = new Map();\n index = elementsWithClones.length;\n\n while (--index >= 0) {\n const element = elementsWithClones[index];\n if (!finalElementIds.get(element.id)) {\n finalElementIds.set(element.id, true);\n finalElementsReversed.push(element);\n }\n }\n\n // step (3)\n\n const finalElements = finalElementsReversed.reverse();\n\n // ---------------------------------------------------------------------------\n\n bindTextToShapeAfterDuplication(\n elementsWithClones,\n oldElements,\n oldIdToDuplicatedId,\n );\n fixBindingsAfterDuplication(\n elementsWithClones,\n oldElements,\n oldIdToDuplicatedId,\n );\n bindElementsToFramesAfterDuplication(\n finalElements,\n oldElements,\n oldIdToDuplicatedId,\n );\n\n const nextElementsToSelect =\n excludeElementsInFramesFromSelection(newElements);\n\n return {\n elements: finalElements,\n appState: {\n ...appState,\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: appState.editingGroupId,\n selectedElementIds: nextElementsToSelect.reduce(\n (acc: Record, element) => {\n if (!isBoundToContainer(element)) {\n acc[element.id] = true;\n }\n return acc;\n },\n {},\n ),\n },\n getNonDeletedElements(finalElements),\n appState,\n null,\n ),\n },\n };\n};\n","import clsx from \"clsx\";\n\n// TODO: It might be \"clever\" to add option.icon to the existing component \nexport const ButtonIconSelect = (\n props: {\n options: {\n value: T;\n text: string;\n icon: JSX.Element;\n testId?: string;\n /** if not supplied, defaults to value identity check */\n active?: boolean;\n }[];\n value: T | null;\n type?: \"radio\" | \"button\";\n } & (\n | { type?: \"radio\"; group: string; onChange: (value: T) => void }\n | {\n type: \"button\";\n onClick: (\n value: T,\n event: React.MouseEvent,\n ) => void;\n }\n ),\n) => (\n
    \n {props.options.map((option) =>\n props.type === \"button\" ? (\n props.onClick(option.value, event)}\n className={clsx({\n active: option.active ?? props.value === option.value,\n })}\n data-testid={option.testId}\n title={option.text}\n >\n {option.icon}\n \n ) : (\n \n props.onChange(option.value)}\n checked={props.value === option.value}\n data-testid={option.testId}\n />\n {option.icon}\n \n ),\n )}\n
    \n);\n","import clsx from \"clsx\";\nimport { ColorPickerType } from \"./colorPickerUtils\";\nimport {\n DEFAULT_CANVAS_BACKGROUND_PICKS,\n DEFAULT_ELEMENT_BACKGROUND_PICKS,\n DEFAULT_ELEMENT_STROKE_PICKS,\n} from \"../../colors\";\n\ninterface TopPicksProps {\n onChange: (color: string) => void;\n type: ColorPickerType;\n activeColor: string;\n topPicks?: readonly string[];\n}\n\nexport const TopPicks = ({\n onChange,\n type,\n activeColor,\n topPicks,\n}: TopPicksProps) => {\n let colors;\n if (type === \"elementStroke\") {\n colors = DEFAULT_ELEMENT_STROKE_PICKS;\n }\n\n if (type === \"elementBackground\") {\n colors = DEFAULT_ELEMENT_BACKGROUND_PICKS;\n }\n\n if (type === \"canvasBackground\") {\n colors = DEFAULT_CANVAS_BACKGROUND_PICKS;\n }\n\n // this one can overwrite defaults\n if (topPicks) {\n colors = topPicks;\n }\n\n if (!colors) {\n console.error(\"Invalid type for TopPicks\");\n return null;\n }\n\n return (\n
    \n {colors.map((color: string) => (\n onChange(color)}\n data-testid={`color-top-pick-${color}`}\n >\n
    \n \n ))}\n
    \n );\n};\n","import { ExcalidrawElement } from \"../../element/types\";\nimport { atom } from \"jotai\";\nimport {\n ColorPickerColor,\n ColorPaletteCustom,\n MAX_CUSTOM_COLORS_USED_IN_CANVAS,\n} from \"../../colors\";\n\nexport const getColorNameAndShadeFromColor = ({\n palette,\n color,\n}: {\n palette: ColorPaletteCustom;\n color: string;\n}): {\n colorName: ColorPickerColor;\n shade: number | null;\n} | null => {\n for (const [colorName, colorVal] of Object.entries(palette)) {\n if (Array.isArray(colorVal)) {\n const shade = colorVal.indexOf(color);\n if (shade > -1) {\n return { colorName: colorName as ColorPickerColor, shade };\n }\n } else if (colorVal === color) {\n return { colorName: colorName as ColorPickerColor, shade: null };\n }\n }\n return null;\n};\n\nexport const colorPickerHotkeyBindings = [\n [\"q\", \"w\", \"e\", \"r\", \"t\"],\n [\"a\", \"s\", \"d\", \"f\", \"g\"],\n [\"z\", \"x\", \"c\", \"v\", \"b\"],\n].flat();\n\nexport const isCustomColor = ({\n color,\n palette,\n}: {\n color: string;\n palette: ColorPaletteCustom;\n}) => {\n const paletteValues = Object.values(palette).flat();\n return !paletteValues.includes(color);\n};\n\nexport const getMostUsedCustomColors = (\n elements: readonly ExcalidrawElement[],\n type: \"elementBackground\" | \"elementStroke\",\n palette: ColorPaletteCustom,\n) => {\n const elementColorTypeMap = {\n elementBackground: \"backgroundColor\",\n elementStroke: \"strokeColor\",\n };\n\n const colors = elements.filter((element) => {\n if (element.isDeleted) {\n return false;\n }\n\n const color =\n element[elementColorTypeMap[type] as \"backgroundColor\" | \"strokeColor\"];\n\n return isCustomColor({ color, palette });\n });\n\n const colorCountMap = new Map();\n colors.forEach((element) => {\n const color =\n element[elementColorTypeMap[type] as \"backgroundColor\" | \"strokeColor\"];\n if (colorCountMap.has(color)) {\n colorCountMap.set(color, colorCountMap.get(color)! + 1);\n } else {\n colorCountMap.set(color, 1);\n }\n });\n\n return [...colorCountMap.entries()]\n .sort((a, b) => b[1] - a[1])\n .map((c) => c[0])\n .slice(0, MAX_CUSTOM_COLORS_USED_IN_CANVAS);\n};\n\nexport type ActiveColorPickerSectionAtomType =\n | \"custom\"\n | \"baseColors\"\n | \"shades\"\n | \"hex\"\n | null;\nexport const activeColorPickerSectionAtom =\n atom(null);\n\nconst calculateContrast = (r: number, g: number, b: number) => {\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n return yiq >= 160 ? \"black\" : \"white\";\n};\n\n// inspiration from https://stackoverflow.com/a/11868398\nexport const getContrastYIQ = (bgHex: string, isCustomColor: boolean) => {\n if (isCustomColor) {\n const style = new Option().style;\n style.color = bgHex;\n\n if (style.color) {\n const rgb = style.color\n .replace(/^(rgb|rgba)\\(/, \"\")\n .replace(/\\)$/, \"\")\n .replace(/\\s/g, \"\")\n .split(\",\");\n const r = parseInt(rgb[0]);\n const g = parseInt(rgb[1]);\n const b = parseInt(rgb[2]);\n\n return calculateContrast(r, g, b);\n }\n }\n\n // TODO: ? is this wanted?\n if (bgHex === \"transparent\") {\n return \"black\";\n }\n\n const r = parseInt(bgHex.substring(1, 3), 16);\n const g = parseInt(bgHex.substring(3, 5), 16);\n const b = parseInt(bgHex.substring(5, 7), 16);\n\n return calculateContrast(r, g, b);\n};\n\nexport type ColorPickerType =\n | \"canvasBackground\"\n | \"elementBackground\"\n | \"elementStroke\";\n","import React from \"react\";\nimport { getContrastYIQ } from \"./colorPickerUtils\";\n\ninterface HotkeyLabelProps {\n color: string;\n keyLabel: string | number;\n isCustomColor?: boolean;\n isShade?: boolean;\n}\nconst HotkeyLabel = ({\n color,\n keyLabel,\n isCustomColor = false,\n isShade = false,\n}: HotkeyLabelProps) => {\n return (\n \n {isShade && \"⇧\"}\n {keyLabel}\n
    \n );\n};\n\nexport default HotkeyLabel;\n","import clsx from \"clsx\";\nimport { useAtom } from \"jotai\";\nimport { useEffect, useRef } from \"react\";\nimport {\n activeColorPickerSectionAtom,\n getColorNameAndShadeFromColor,\n} from \"./colorPickerUtils\";\nimport HotkeyLabel from \"./HotkeyLabel\";\nimport { t } from \"../../i18n\";\nimport { ColorPaletteCustom } from \"../../colors\";\n\ninterface ShadeListProps {\n hex: string;\n onChange: (color: string) => void;\n palette: ColorPaletteCustom;\n}\n\nexport const ShadeList = ({ hex, onChange, palette }: ShadeListProps) => {\n const colorObj = getColorNameAndShadeFromColor({\n color: hex || \"transparent\",\n palette,\n });\n\n const [activeColorPickerSection, setActiveColorPickerSection] = useAtom(\n activeColorPickerSectionAtom,\n );\n\n const btnRef = useRef(null);\n\n useEffect(() => {\n if (btnRef.current && activeColorPickerSection === \"shades\") {\n btnRef.current.focus();\n }\n }, [colorObj, activeColorPickerSection]);\n\n if (colorObj) {\n const { colorName, shade } = colorObj;\n\n const shades = palette[colorName];\n\n if (Array.isArray(shades)) {\n return (\n
    \n {shades.map((color, i) => (\n {\n onChange(color);\n setActiveColorPickerSection(\"shades\");\n }}\n >\n
    \n \n \n ))}\n
    \n );\n }\n }\n\n return (\n \n \n \n {t(\"colorPicker.noShades\")}\n
    \n
    \n );\n};\n","import clsx from \"clsx\";\nimport { useAtom } from \"jotai\";\nimport { useEffect, useRef } from \"react\";\nimport {\n activeColorPickerSectionAtom,\n colorPickerHotkeyBindings,\n getColorNameAndShadeFromColor,\n} from \"./colorPickerUtils\";\nimport HotkeyLabel from \"./HotkeyLabel\";\nimport { ColorPaletteCustom } from \"../../colors\";\nimport { TranslationKeys, t } from \"../../i18n\";\n\ninterface PickerColorListProps {\n palette: ColorPaletteCustom;\n color: string;\n onChange: (color: string) => void;\n label: string;\n activeShade: number;\n}\n\nconst PickerColorList = ({\n palette,\n color,\n onChange,\n label,\n activeShade,\n}: PickerColorListProps) => {\n const colorObj = getColorNameAndShadeFromColor({\n color: color || \"transparent\",\n palette,\n });\n const [activeColorPickerSection, setActiveColorPickerSection] = useAtom(\n activeColorPickerSectionAtom,\n );\n\n const btnRef = useRef(null);\n\n useEffect(() => {\n if (btnRef.current && activeColorPickerSection === \"baseColors\") {\n btnRef.current.focus();\n }\n }, [colorObj?.colorName, activeColorPickerSection]);\n\n return (\n
    \n {Object.entries(palette).map(([key, value], index) => {\n const color =\n (Array.isArray(value) ? value[activeShade] : value) || \"transparent\";\n\n const keybinding = colorPickerHotkeyBindings[index];\n const label = t(\n `colors.${key.replace(/\\d+/, \"\")}` as unknown as TranslationKeys,\n null,\n \"\",\n );\n\n return (\n {\n onChange(color);\n setActiveColorPickerSection(\"baseColors\");\n }}\n title={`${label}${\n color.startsWith(\"#\") ? ` ${color}` : \"\"\n } — ${keybinding}`}\n aria-label={`${label} — ${keybinding}`}\n style={color ? { \"--swatch-color\": color } : undefined}\n data-testid={`color-${key}`}\n key={key}\n >\n
    \n \n \n );\n })}\n
    \n );\n};\n\nexport default PickerColorList;\n","import clsx from \"clsx\";\nimport { useAtom } from \"jotai\";\nimport { useEffect, useRef } from \"react\";\nimport { activeColorPickerSectionAtom } from \"./colorPickerUtils\";\nimport HotkeyLabel from \"./HotkeyLabel\";\n\ninterface CustomColorListProps {\n colors: string[];\n color: string;\n onChange: (color: string) => void;\n label: string;\n}\n\nexport const CustomColorList = ({\n colors,\n color,\n onChange,\n label,\n}: CustomColorListProps) => {\n const [activeColorPickerSection, setActiveColorPickerSection] = useAtom(\n activeColorPickerSectionAtom,\n );\n\n const btnRef = useRef(null);\n\n useEffect(() => {\n if (btnRef.current) {\n btnRef.current.focus();\n }\n }, [color, activeColorPickerSection]);\n\n return (\n
    \n {colors.map((c, i) => {\n return (\n {\n onChange(c);\n setActiveColorPickerSection(\"custom\");\n }}\n title={c}\n aria-label={label}\n style={{ \"--swatch-color\": c }}\n key={i}\n >\n
    \n \n \n );\n })}\n
    \n );\n};\n","import { KEYS } from \"../../keys\";\nimport {\n ColorPickerColor,\n ColorPalette,\n ColorPaletteCustom,\n COLORS_PER_ROW,\n COLOR_PALETTE,\n} from \"../../colors\";\nimport { ValueOf } from \"../../utility-types\";\nimport {\n ActiveColorPickerSectionAtomType,\n colorPickerHotkeyBindings,\n getColorNameAndShadeFromColor,\n} from \"./colorPickerUtils\";\n\nconst arrowHandler = (\n eventKey: string,\n currentIndex: number | null,\n length: number,\n) => {\n const rows = Math.ceil(length / COLORS_PER_ROW);\n\n currentIndex = currentIndex ?? -1;\n\n switch (eventKey) {\n case \"ArrowLeft\": {\n const prevIndex = currentIndex - 1;\n return prevIndex < 0 ? length - 1 : prevIndex;\n }\n case \"ArrowRight\": {\n return (currentIndex + 1) % length;\n }\n case \"ArrowDown\": {\n const nextIndex = currentIndex + COLORS_PER_ROW;\n return nextIndex >= length ? currentIndex % COLORS_PER_ROW : nextIndex;\n }\n case \"ArrowUp\": {\n const prevIndex = currentIndex - COLORS_PER_ROW;\n const newIndex =\n prevIndex < 0 ? COLORS_PER_ROW * rows + prevIndex : prevIndex;\n return newIndex >= length ? undefined : newIndex;\n }\n }\n};\n\ninterface HotkeyHandlerProps {\n e: React.KeyboardEvent;\n colorObj: { colorName: ColorPickerColor; shade: number | null } | null;\n onChange: (color: string) => void;\n palette: ColorPaletteCustom;\n customColors: string[];\n setActiveColorPickerSection: (\n update: React.SetStateAction,\n ) => void;\n activeShade: number;\n}\n\n/**\n * @returns true if the event was handled\n */\nconst hotkeyHandler = ({\n e,\n colorObj,\n onChange,\n palette,\n customColors,\n setActiveColorPickerSection,\n activeShade,\n}: HotkeyHandlerProps): boolean => {\n if (colorObj?.shade != null) {\n // shift + numpad is extremely messed up on windows apparently\n if (\n [\"Digit1\", \"Digit2\", \"Digit3\", \"Digit4\", \"Digit5\"].includes(e.code) &&\n e.shiftKey\n ) {\n const newShade = Number(e.code.slice(-1)) - 1;\n onChange(palette[colorObj.colorName][newShade]);\n setActiveColorPickerSection(\"shades\");\n return true;\n }\n }\n\n if ([\"1\", \"2\", \"3\", \"4\", \"5\"].includes(e.key)) {\n const c = customColors[Number(e.key) - 1];\n if (c) {\n onChange(customColors[Number(e.key) - 1]);\n setActiveColorPickerSection(\"custom\");\n return true;\n }\n }\n\n if (colorPickerHotkeyBindings.includes(e.key)) {\n const index = colorPickerHotkeyBindings.indexOf(e.key);\n const paletteKey = Object.keys(palette)[index] as keyof ColorPalette;\n const paletteValue = palette[paletteKey];\n const r = Array.isArray(paletteValue)\n ? paletteValue[activeShade]\n : paletteValue;\n onChange(r);\n setActiveColorPickerSection(\"baseColors\");\n return true;\n }\n return false;\n};\n\ninterface ColorPickerKeyNavHandlerProps {\n event: React.KeyboardEvent;\n activeColorPickerSection: ActiveColorPickerSectionAtomType;\n palette: ColorPaletteCustom;\n color: string;\n onChange: (color: string) => void;\n customColors: string[];\n setActiveColorPickerSection: (\n update: React.SetStateAction,\n ) => void;\n updateData: (formData?: any) => void;\n activeShade: number;\n onEyeDropperToggle: (force?: boolean) => void;\n onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;\n}\n\n/**\n * @returns true if the event was handled\n */\nexport const colorPickerKeyNavHandler = ({\n event,\n activeColorPickerSection,\n palette,\n color,\n onChange,\n customColors,\n setActiveColorPickerSection,\n updateData,\n activeShade,\n onEyeDropperToggle,\n onEscape,\n}: ColorPickerKeyNavHandlerProps): boolean => {\n if (event[KEYS.CTRL_OR_CMD]) {\n return false;\n }\n\n if (event.key === KEYS.ESCAPE) {\n onEscape(event);\n return true;\n }\n\n // checkt using `key` to ignore combos with Alt modifier\n if (event.key === KEYS.ALT) {\n onEyeDropperToggle(true);\n return true;\n }\n\n if (event.key === KEYS.I) {\n onEyeDropperToggle();\n return true;\n }\n\n const colorObj = getColorNameAndShadeFromColor({ color, palette });\n\n if (event.key === KEYS.TAB) {\n const sectionsMap: Record<\n NonNullable,\n boolean\n > = {\n custom: !!customColors.length,\n baseColors: true,\n shades: colorObj?.shade != null,\n hex: true,\n };\n\n const sections = Object.entries(sectionsMap).reduce((acc, [key, value]) => {\n if (value) {\n acc.push(key as ActiveColorPickerSectionAtomType);\n }\n return acc;\n }, [] as ActiveColorPickerSectionAtomType[]);\n\n const activeSectionIndex = sections.indexOf(activeColorPickerSection);\n const indexOffset = event.shiftKey ? -1 : 1;\n const nextSectionIndex =\n activeSectionIndex + indexOffset > sections.length - 1\n ? 0\n : activeSectionIndex + indexOffset < 0\n ? sections.length - 1\n : activeSectionIndex + indexOffset;\n\n const nextSection = sections[nextSectionIndex];\n\n if (nextSection) {\n setActiveColorPickerSection(nextSection);\n }\n\n if (nextSection === \"custom\") {\n onChange(customColors[0]);\n } else if (nextSection === \"baseColors\") {\n const baseColorName = (\n Object.entries(palette) as [string, ValueOf][]\n ).find(([name, shades]) => {\n if (Array.isArray(shades)) {\n return shades.includes(color);\n } else if (shades === color) {\n return name;\n }\n return null;\n });\n\n if (!baseColorName) {\n onChange(COLOR_PALETTE.black);\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n return true;\n }\n\n if (\n hotkeyHandler({\n e: event,\n colorObj,\n onChange,\n palette,\n customColors,\n setActiveColorPickerSection,\n activeShade,\n })\n ) {\n return true;\n }\n\n if (activeColorPickerSection === \"shades\") {\n if (colorObj) {\n const { shade } = colorObj;\n const newShade = arrowHandler(event.key, shade, COLORS_PER_ROW);\n\n if (newShade !== undefined) {\n onChange(palette[colorObj.colorName][newShade]);\n return true;\n }\n }\n }\n\n if (activeColorPickerSection === \"baseColors\") {\n if (colorObj) {\n const { colorName } = colorObj;\n const colorNames = Object.keys(palette) as (keyof ColorPalette)[];\n const indexOfColorName = colorNames.indexOf(colorName);\n\n const newColorIndex = arrowHandler(\n event.key,\n indexOfColorName,\n colorNames.length,\n );\n\n if (newColorIndex !== undefined) {\n const newColorName = colorNames[newColorIndex];\n const newColorNameValue = palette[newColorName];\n\n onChange(\n Array.isArray(newColorNameValue)\n ? newColorNameValue[activeShade]\n : newColorNameValue,\n );\n return true;\n }\n }\n }\n\n if (activeColorPickerSection === \"custom\") {\n const indexOfColor = customColors.indexOf(color);\n\n const newColorIndex = arrowHandler(\n event.key,\n indexOfColor,\n customColors.length,\n );\n\n if (newColorIndex !== undefined) {\n const newColor = customColors[newColorIndex];\n onChange(newColor);\n return true;\n }\n }\n\n return false;\n};\n","import { ReactNode } from \"react\";\n\nconst PickerHeading = ({ children }: { children: ReactNode }) => (\n
    {children}
    \n);\n\nexport default PickerHeading;\n","import React, { useEffect, useState } from \"react\";\nimport { t } from \"../../i18n\";\n\nimport { ExcalidrawElement } from \"../../element/types\";\nimport { ShadeList } from \"./ShadeList\";\n\nimport PickerColorList from \"./PickerColorList\";\nimport { useAtom } from \"jotai\";\nimport { CustomColorList } from \"./CustomColorList\";\nimport { colorPickerKeyNavHandler } from \"./keyboardNavHandlers\";\nimport PickerHeading from \"./PickerHeading\";\nimport {\n ColorPickerType,\n activeColorPickerSectionAtom,\n getColorNameAndShadeFromColor,\n getMostUsedCustomColors,\n isCustomColor,\n} from \"./colorPickerUtils\";\nimport {\n ColorPaletteCustom,\n DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX,\n DEFAULT_ELEMENT_STROKE_COLOR_INDEX,\n} from \"../../colors\";\nimport { KEYS } from \"../../keys\";\nimport { EVENT } from \"../../constants\";\n\ninterface PickerProps {\n color: string;\n onChange: (color: string) => void;\n label: string;\n type: ColorPickerType;\n elements: readonly ExcalidrawElement[];\n palette: ColorPaletteCustom;\n updateData: (formData?: any) => void;\n children?: React.ReactNode;\n onEyeDropperToggle: (force?: boolean) => void;\n onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;\n}\n\nexport const Picker = ({\n color,\n onChange,\n label,\n type,\n elements,\n palette,\n updateData,\n children,\n onEyeDropperToggle,\n onEscape,\n}: PickerProps) => {\n const [customColors] = React.useState(() => {\n if (type === \"canvasBackground\") {\n return [];\n }\n return getMostUsedCustomColors(elements, type, palette);\n });\n\n const [activeColorPickerSection, setActiveColorPickerSection] = useAtom(\n activeColorPickerSectionAtom,\n );\n\n const colorObj = getColorNameAndShadeFromColor({\n color,\n palette,\n });\n\n useEffect(() => {\n if (!activeColorPickerSection) {\n const isCustom = isCustomColor({ color, palette });\n const isCustomButNotInList = isCustom && !customColors.includes(color);\n\n setActiveColorPickerSection(\n isCustomButNotInList\n ? \"hex\"\n : isCustom\n ? \"custom\"\n : colorObj?.shade != null\n ? \"shades\"\n : \"baseColors\",\n );\n }\n }, [\n activeColorPickerSection,\n color,\n palette,\n setActiveColorPickerSection,\n colorObj,\n customColors,\n ]);\n\n const [activeShade, setActiveShade] = useState(\n colorObj?.shade ??\n (type === \"elementBackground\"\n ? DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX\n : DEFAULT_ELEMENT_STROKE_COLOR_INDEX),\n );\n\n useEffect(() => {\n if (colorObj?.shade != null) {\n setActiveShade(colorObj.shade);\n }\n\n const keyup = (event: KeyboardEvent) => {\n if (event.key === KEYS.ALT) {\n onEyeDropperToggle(false);\n }\n };\n document.addEventListener(EVENT.KEYUP, keyup, { capture: true });\n return () => {\n document.removeEventListener(EVENT.KEYUP, keyup, { capture: true });\n };\n }, [colorObj, onEyeDropperToggle]);\n\n const pickerRef = React.useRef(null);\n\n return (\n
    \n {\n const handled = colorPickerKeyNavHandler({\n event,\n activeColorPickerSection,\n palette,\n color,\n onChange,\n onEyeDropperToggle,\n customColors,\n setActiveColorPickerSection,\n updateData,\n activeShade,\n onEscape,\n });\n\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n className=\"color-picker-content\"\n // to allow focusing by clicking but not by tabbing\n tabIndex={-1}\n >\n {!!customColors.length && (\n
    \n \n {t(\"colorPicker.mostUsedCustomColors\")}\n \n \n
    \n )}\n\n
    \n {t(\"colorPicker.colors\")}\n \n
    \n\n
    \n {t(\"colorPicker.shades\")}\n \n
    \n {children}\n
    \n
    \n );\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented: checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\n\n\nexport {$e42e1063c40fb3ef$export$b9ecd428b558ff10 as composeEventHandlers};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $3vqmr$useCallback} from \"react\";\n\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === 'function') ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node)\n )\n ;\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return $3vqmr$useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\n\n\nexport {$6ed0406888f73fc4$export$43e446d32b3d21af as composeRefs, $6ed0406888f73fc4$export$c7b2cbe3552a0d05 as useComposedRefs};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $3bkAK$createContext, useMemo as $3bkAK$useMemo, createElement as $3bkAK$createElement, useContext as $3bkAK$useContext} from \"react\";\n\n\nfunction $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const Context = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n function Provider(props) {\n const { children: children , ...context } = props; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName) {\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const { scope: scope , children: children , ...context } = props;\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext;\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n }\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/ const createScope = ()=>{\n const scopeContexts = defaultContexts.map((defaultContext)=>{\n return /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return $3bkAK$useMemo(()=>({\n [`__scope${scopeName}`]: {\n ...scope,\n [scopeName]: contexts\n }\n })\n , [\n scope,\n contexts\n ]);\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope1 = ()=>{\n const scopeHooks = scopes.map((createScope)=>({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope: useScope , scopeName: scopeName })=>{\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return {\n ...nextScopes,\n ...currentScope\n };\n }, {});\n return $3bkAK$useMemo(()=>({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n })\n , [\n nextScopes1\n ]);\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\n\n\nexport {$c512c27ab02ef895$export$fd42f52fd3ae1109 as createContext, $c512c27ab02ef895$export$50c7b4e9d9f19c1 as createContextScope};\n//# sourceMappingURL=index.module.js.map\n","import $9IrjX$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $9IrjX$forwardRef, Children as $9IrjX$Children, isValidElement as $9IrjX$isValidElement, createElement as $9IrjX$createElement, cloneElement as $9IrjX$cloneElement, Fragment as $9IrjX$Fragment} from \"react\";\nimport {composeRefs as $9IrjX$composeRefs} from \"@radix-ui/react-compose-refs\";\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n const childrenArray = $9IrjX$Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if ($9IrjX$Children.count(newElement) > 1) return $9IrjX$Children.only(null);\n return /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? /*#__PURE__*/ $9IrjX$cloneElement(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = 'Slot';\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n if (/*#__PURE__*/ $9IrjX$isValidElement(children)) return /*#__PURE__*/ $9IrjX$cloneElement(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: $9IrjX$composeRefs(forwardedRef, children.ref)\n });\n return $9IrjX$Children.count(children) > 1 ? $9IrjX$Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = 'SlotClone';\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ $9IrjX$createElement($9IrjX$Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ $9IrjX$isValidElement(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) overrideProps[propName] = (...args)=>{\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue) overrideProps[propName] = slotPropValue;\n } else if (propName === 'style') overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === 'className') overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(' ');\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n\n\n\n\nexport {$5e63c961fc1ce211$export$8c6ed5c666ac1360 as Slot, $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 as Slottable, $5e63c961fc1ce211$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'h2',\n 'h3',\n 'img',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $lwiWj$useRef, useEffect as $lwiWj$useEffect, useMemo as $lwiWj$useMemo} from \"react\";\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = $lwiWj$useRef(callback);\n $lwiWj$useEffect(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return $lwiWj$useMemo(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\nexport {$b1b2314f5f9a1d84$export$25bec8c6f54ee79a as useCallbackRef};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $hPSQ5$useEffect} from \"react\";\nimport {useCallbackRef as $hPSQ5$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n/**\n * Listens for when the escape key is down\n */ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const onEscapeKeyDown = $hPSQ5$useCallbackRef(onEscapeKeyDownProp);\n $hPSQ5$useEffect(()=>{\n const handleKeyDown = (event)=>{\n if (event.key === 'Escape') onEscapeKeyDown(event);\n };\n ownerDocument.addEventListener('keydown', handleKeyDown);\n return ()=>ownerDocument.removeEventListener('keydown', handleKeyDown)\n ;\n }, [\n onEscapeKeyDown,\n ownerDocument\n ]);\n}\n\n\n\n\nexport {$addc16e1bbe58fd0$export$3a72a57244d6e765 as useEscapeKeydown};\n//# sourceMappingURL=index.module.js.map\n","import $kqwpH$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {createContext as $kqwpH$createContext, forwardRef as $kqwpH$forwardRef, useContext as $kqwpH$useContext, useState as $kqwpH$useState, useEffect as $kqwpH$useEffect, createElement as $kqwpH$createElement, useRef as $kqwpH$useRef} from \"react\";\nimport {composeEventHandlers as $kqwpH$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {Primitive as $kqwpH$Primitive, dispatchDiscreteCustomEvent as $kqwpH$dispatchDiscreteCustomEvent} from \"@radix-ui/react-primitive\";\nimport {useComposedRefs as $kqwpH$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useCallbackRef as $kqwpH$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useEscapeKeydown as $kqwpH$useEscapeKeydown} from \"@radix-ui/react-use-escape-keydown\";\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';\nconst $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\nlet $5cb92bef7577960e$var$originalBodyPointerEvents;\nconst $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ $kqwpH$createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set()\n});\nconst $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n var _node$ownerDocument;\n const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = $kqwpH$useState(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = $kqwpH$useState({});\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, (node)=>setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n $kqwpH$useEscapeKeydown((event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n $kqwpH$useEffect(()=>{\n if (!node1) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */ $kqwpH$useEffect(()=>{\n return ()=>{\n if (!node1) return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n $kqwpH$useEffect(()=>{\n const handleUpdate = ()=>force({})\n ;\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)\n ;\n }, []);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, layerProps, {\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,\n ...props.style\n },\n onFocusCapture: $kqwpH$composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $kqwpH$composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $kqwpH$composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n displayName: $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$BRANCH_NAME = 'DismissableLayerBranch';\nconst $5cb92bef7577960e$export$4d5eb2109db14228 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const ref = $kqwpH$useRef(null);\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, ref);\n $kqwpH$useEffect(()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ()=>{\n context.branches.delete(node);\n };\n }\n }, [\n context.branches\n ]);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$4d5eb2109db14228, {\n displayName: $5cb92bef7577960e$var$BRANCH_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ /**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = $kqwpH$useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = $kqwpH$useRef(false);\n const handleClickRef = $kqwpH$useRef(()=>{});\n $kqwpH$useEffect(()=>{\n const handlePointerDown = (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n function handleAndDispatchPointerDownOutsideEvent() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */ if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, {\n once: true\n });\n } else handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */ const timerId = window.setTimeout(()=>{\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = $kqwpH$useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = $kqwpH$useRef(false);\n $kqwpH$useEffect(()=>{\n const handleFocus = (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return ()=>ownerDocument.removeEventListener('focusin', handleFocus)\n ;\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true\n ,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail: detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) $kqwpH$dispatchDiscreteCustomEvent(target, event);\n else target.dispatchEvent(event);\n}\nconst $5cb92bef7577960e$export$be92b6f5f03c0fe9 = $5cb92bef7577960e$export$177fb62ff3ec1f22;\nconst $5cb92bef7577960e$export$aecb2ddcb55c95be = $5cb92bef7577960e$export$4d5eb2109db14228;\n\n\n\n\nexport {$5cb92bef7577960e$export$177fb62ff3ec1f22 as DismissableLayer, $5cb92bef7577960e$export$4d5eb2109db14228 as DismissableLayerBranch, $5cb92bef7577960e$export$be92b6f5f03c0fe9 as Root, $5cb92bef7577960e$export$aecb2ddcb55c95be as Branch};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $1wErz$useEffect} from \"react\";\n\n\n/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$ac5b58043b79449b(props) {\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return props.children;\n}\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n $1wErz$useEffect(()=>{\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return ()=>{\n if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\nconst $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 = $3db38b7d1fb3fe6a$export$ac5b58043b79449b;\n\n\n\n\nexport {$3db38b7d1fb3fe6a$export$ac5b58043b79449b as FocusGuards, $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 as Root, $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c as useFocusGuards};\n//# sourceMappingURL=index.module.js.map\n","import $45QHv$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $45QHv$forwardRef, useState as $45QHv$useState, useRef as $45QHv$useRef, useEffect as $45QHv$useEffect, useCallback as $45QHv$useCallback, createElement as $45QHv$createElement} from \"react\";\nimport {useComposedRefs as $45QHv$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $45QHv$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $45QHv$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n\n\n\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME = 'FocusScope';\nconst $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ $45QHv$forwardRef((props, forwardedRef)=>{\n const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;\n const [container1, setContainer] = $45QHv$useState(null);\n const onMountAutoFocus = $45QHv$useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = $45QHv$useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = $45QHv$useRef(null);\n const composedRefs = $45QHv$useComposedRefs(forwardedRef, (node)=>setContainer(node)\n );\n const focusScope = $45QHv$useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current; // Takes care of trapping focus if focus is moved outside programmatically for example\n $45QHv$useEffect(()=>{\n if (trapped) {\n function handleFocusIn(event) {\n if (focusScope.paused || !container1) return;\n const target = event.target;\n if (container1.contains(target)) lastFocusedElementRef.current = target;\n else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n function handleFocusOut(event) {\n if (focusScope.paused || !container1) return;\n if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n return ()=>{\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n $45QHv$useEffect(()=>{\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return ()=>{\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(()=>{\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n // we need to remove the listener after we `dispatchEvent`\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]); // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = $45QHv$useCallback((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /*#__PURE__*/ $45QHv$createElement($45QHv$Primitive.div, $45QHv$babelruntimehelpersesmextends({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\n/*#__PURE__*/ Object.assign($d3863c46a17e8a28$export$20e40289641fbbb6, {\n displayName: $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n $d3863c46a17e8a28$var$focus(candidate, {\n select: select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n/**\n * Returns the first and last tabbable elements inside a container.\n */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */ function $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements){\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while(node){\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && 'select' in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({\n preventScroll: true\n }); // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();\n }\n}\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */ let stack = [];\n return {\n add (focusScope) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) updatedArray.splice(index, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter((item)=>item.tagName !== 'A'\n );\n}\nconst $d3863c46a17e8a28$export$be92b6f5f03c0fe9 = $d3863c46a17e8a28$export$20e40289641fbbb6;\n\n\n\n\nexport {$d3863c46a17e8a28$export$20e40289641fbbb6 as FocusScope, $d3863c46a17e8a28$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import {useLayoutEffect as $dxlwH$useLayoutEffect} from \"react\";\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? $dxlwH$useLayoutEffect : ()=>{};\n\n\n\n\nexport {$9f79659886946c16$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=index.module.js.map\n","import * as $2AODx$react from \"react\";\nimport {useLayoutEffect as $2AODx$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\nconst $1746a345f3d73bb7$var$useReactId = $2AODx$react['useId'.toString()] || (()=>undefined\n);\nlet $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id, setId] = $2AODx$react.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.\n $2AODx$useLayoutEffect(()=>{\n if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\n\n\n\nexport {$1746a345f3d73bb7$export$f680877a34711e37 as useId};\n//# sourceMappingURL=index.module.js.map\n","function t(t){return t.split(\"-\")[0]}function e(t){return t.split(\"-\")[1]}function n(e){return[\"top\",\"bottom\"].includes(t(e))?\"x\":\"y\"}function r(t){return\"y\"===t?\"height\":\"width\"}function i(i,o,a){let{reference:l,floating:s}=i;const c=l.x+l.width/2-s.width/2,f=l.y+l.height/2-s.height/2,u=n(o),m=r(u),g=l[m]/2-s[m]/2,d=\"x\"===u;let p;switch(t(o)){case\"top\":p={x:c,y:l.y-s.height};break;case\"bottom\":p={x:c,y:l.y+l.height};break;case\"right\":p={x:l.x+l.width,y:f};break;case\"left\":p={x:l.x-s.width,y:f};break;default:p={x:l.x,y:l.y}}switch(e(o)){case\"start\":p[u]-=g*(a&&d?-1:1);break;case\"end\":p[u]+=g*(a&&d?-1:1)}return p}const o=async(t,e,n)=>{const{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:a=[],platform:l}=n,s=await(null==l.isRTL?void 0:l.isRTL(e));let c=await l.getElementRects({reference:t,floating:e,strategy:o}),{x:f,y:u}=i(c,r,s),m=r,g={},d=0;for(let n=0;n({name:\"arrow\",options:t,async fn(i){const{element:o,padding:l=0}=null!=t?t:{},{x:s,y:c,placement:f,rects:m,platform:g}=i;if(null==o)return{};const d=a(l),p={x:s,y:c},h=n(f),y=e(f),x=r(h),w=await g.getDimensions(o),v=\"y\"===h?\"top\":\"left\",b=\"y\"===h?\"bottom\":\"right\",R=m.reference[x]+m.reference[h]-p[h]-m.floating[x],A=p[h]-m.reference[h],P=await(null==g.getOffsetParent?void 0:g.getOffsetParent(o));let T=P?\"y\"===h?P.clientHeight||0:P.clientWidth||0:0;0===T&&(T=m.floating[x]);const O=R/2-A/2,D=d[v],L=T-w[x]-d[b],k=T/2-w[x]/2+O,E=u(D,k,L),C=(\"start\"===y?d[v]:d[b])>0&&k!==E&&m.reference[x]<=m.floating[x];return{[h]:p[h]-(C?kg[t]))}function p(t,i,o){void 0===o&&(o=!1);const a=e(t),l=n(t),s=r(l);let c=\"x\"===l?a===(o?\"end\":\"start\")?\"right\":\"left\":\"start\"===a?\"bottom\":\"top\";return i.reference[s]>i.floating[s]&&(c=d(c)),{main:c,cross:d(c)}}const h={start:\"end\",end:\"start\"};function y(t){return t.replace(/start|end/g,(t=>h[t]))}const x=[\"top\",\"right\",\"bottom\",\"left\"],w=x.reduce(((t,e)=>t.concat(e,e+\"-start\",e+\"-end\")),[]);const v=function(n){return void 0===n&&(n={}),{name:\"autoPlacement\",options:n,async fn(r){var i,o,a,l,c;const{x:f,y:u,rects:m,middlewareData:g,placement:d,platform:h,elements:x}=r,{alignment:v=null,allowedPlacements:b=w,autoAlignment:R=!0,...A}=n,P=function(n,r,i){return(n?[...i.filter((t=>e(t)===n)),...i.filter((t=>e(t)!==n))]:i.filter((e=>t(e)===e))).filter((t=>!n||e(t)===n||!!r&&y(t)!==t))}(v,R,b),T=await s(r,A),O=null!=(i=null==(o=g.autoPlacement)?void 0:o.index)?i:0,D=P[O];if(null==D)return{};const{main:L,cross:k}=p(D,m,await(null==h.isRTL?void 0:h.isRTL(x.floating)));if(d!==D)return{x:f,y:u,reset:{placement:P[0]}};const E=[T[t(D)],T[L],T[k]],C=[...null!=(a=null==(l=g.autoPlacement)?void 0:l.overflows)?a:[],{placement:D,overflows:E}],H=P[O+1];if(H)return{data:{index:O+1,overflows:C},reset:{placement:H}};const B=C.slice().sort(((t,e)=>t.overflows[0]-e.overflows[0])),V=null==(c=B.find((t=>{let{overflows:e}=t;return e.every((t=>t<=0))})))?void 0:c.placement,F=null!=V?V:B[0].placement;return F!==d?{data:{index:O+1,overflows:C},reset:{placement:F}}:{}}}};const b=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(n){var r;const{placement:i,middlewareData:o,rects:a,initialPlacement:l,platform:c,elements:f}=n,{mainAxis:u=!0,crossAxis:m=!0,fallbackPlacements:g,fallbackStrategy:h=\"bestFit\",flipAlignment:x=!0,...w}=e,v=t(i),b=g||(v===l||!x?[d(l)]:function(t){const e=d(t);return[y(t),e,y(e)]}(l)),R=[l,...b],A=await s(n,w),P=[];let T=(null==(r=o.flip)?void 0:r.overflows)||[];if(u&&P.push(A[v]),m){const{main:t,cross:e}=p(i,a,await(null==c.isRTL?void 0:c.isRTL(f.floating)));P.push(A[t],A[e])}if(T=[...T,{placement:i,overflows:P}],!P.every((t=>t<=0))){var O,D;const t=(null!=(O=null==(D=o.flip)?void 0:D.index)?O:0)+1,e=R[t];if(e)return{data:{index:t,overflows:T},reset:{placement:e}};let n=\"bottom\";switch(h){case\"bestFit\":{var L;const t=null==(L=T.map((t=>[t,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:L[0].placement;t&&(n=t);break}case\"initialPlacement\":n=l}if(i!==n)return{reset:{placement:n}}}return{}}}};function R(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function A(t){return x.some((e=>t[e]>=0))}const P=function(t){let{strategy:e=\"referenceHidden\",...n}=void 0===t?{}:t;return{name:\"hide\",async fn(t){const{rects:r}=t;switch(e){case\"referenceHidden\":{const e=R(await s(t,{...n,elementContext:\"reference\"}),r.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:A(e)}}}case\"escaped\":{const e=R(await s(t,{...n,altBoundary:!0}),r.floating);return{data:{escapedOffsets:e,escaped:A(e)}}}default:return{}}}}};const T=function(r){return void 0===r&&(r=0),{name:\"offset\",options:r,async fn(i){const{x:o,y:a}=i,l=await async function(r,i){const{placement:o,platform:a,elements:l}=r,s=await(null==a.isRTL?void 0:a.isRTL(l.floating)),c=t(o),f=e(o),u=\"x\"===n(o),m=[\"left\",\"top\"].includes(c)?-1:1,g=s&&u?-1:1,d=\"function\"==typeof i?i(r):i;let{mainAxis:p,crossAxis:h,alignmentAxis:y}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return f&&\"number\"==typeof y&&(h=\"end\"===f?-1*y:y),u?{x:h*g,y:p*m}:{x:p*m,y:h*g}}(i,r);return{x:o+l.x,y:a+l.y,data:l}}}};function O(t){return\"x\"===t?\"y\":\"x\"}const D=function(e){return void 0===e&&(e={}),{name:\"shift\",options:e,async fn(r){const{x:i,y:o,placement:a}=r,{mainAxis:l=!0,crossAxis:c=!1,limiter:f={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...m}=e,g={x:i,y:o},d=await s(r,m),p=n(t(a)),h=O(p);let y=g[p],x=g[h];if(l){const t=\"y\"===p?\"bottom\":\"right\";y=u(y+d[\"y\"===p?\"top\":\"left\"],y,y-d[t])}if(c){const t=\"y\"===h?\"bottom\":\"right\";x=u(x+d[\"y\"===h?\"top\":\"left\"],x,x-d[t])}const w=f.fn({...r,[p]:y,[h]:x});return{...w,data:{x:w.x-i,y:w.y-o}}}}},L=function(e){return void 0===e&&(e={}),{options:e,fn(r){const{x:i,y:o,placement:a,rects:l,middlewareData:s}=r,{offset:c=0,mainAxis:f=!0,crossAxis:u=!0}=e,m={x:i,y:o},g=n(a),d=O(g);let p=m[g],h=m[d];const y=\"function\"==typeof c?c({...l,placement:a}):c,x=\"number\"==typeof y?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(f){const t=\"y\"===g?\"height\":\"width\",e=l.reference[g]-l.floating[t]+x.mainAxis,n=l.reference[g]+l.reference[t]-x.mainAxis;pn&&(p=n)}if(u){var w,v,b,R;const e=\"y\"===g?\"width\":\"height\",n=[\"top\",\"left\"].includes(t(a)),r=l.reference[d]-l.floating[e]+(n&&null!=(w=null==(v=s.offset)?void 0:v[d])?w:0)+(n?0:x.crossAxis),i=l.reference[d]+l.reference[e]+(n?0:null!=(b=null==(R=s.offset)?void 0:R[d])?b:0)-(n?x.crossAxis:0);hi&&(h=i)}return{[g]:p,[d]:h}}}},k=function(n){return void 0===n&&(n={}),{name:\"size\",options:n,async fn(r){const{placement:i,rects:o,platform:a,elements:l}=r,{apply:c,...u}=n,m=await s(r,u),g=t(i),d=e(i);let p,h;\"top\"===g||\"bottom\"===g?(p=g,h=d===(await(null==a.isRTL?void 0:a.isRTL(l.floating))?\"start\":\"end\")?\"left\":\"right\"):(h=g,p=\"end\"===d?\"top\":\"bottom\");const y=f(m.left,0),x=f(m.right,0),w=f(m.top,0),v=f(m.bottom,0),b={availableHeight:o.floating.height-([\"left\",\"right\"].includes(i)?2*(0!==w||0!==v?w+v:f(m.top,m.bottom)):m[p]),availableWidth:o.floating.width-([\"top\",\"bottom\"].includes(i)?2*(0!==y||0!==x?y+x:f(m.left,m.right)):m[h])},R=await a.getDimensions(l.floating);null==c||c({...r,...b});const A=await a.getDimensions(l.floating);return R.width!==A.width||R.height!==A.height?{reset:{rects:!0}}:{}}}},E=function(e){return void 0===e&&(e={}),{name:\"inline\",options:e,async fn(r){var i;const{placement:o,elements:s,rects:u,platform:m,strategy:g}=r,{padding:d=2,x:p,y:h}=e,y=l(m.convertOffsetParentRelativeRectToViewportRelativeRect?await m.convertOffsetParentRelativeRectToViewportRelativeRect({rect:u.reference,offsetParent:await(null==m.getOffsetParent?void 0:m.getOffsetParent(s.floating)),strategy:g}):u.reference),x=null!=(i=await(null==m.getClientRects?void 0:m.getClientRects(s.reference)))?i:[],w=a(d);const v=await m.getElementRects({reference:{getBoundingClientRect:function(){var e;if(2===x.length&&x[0].left>x[1].right&&null!=p&&null!=h)return null!=(e=x.find((t=>p>t.left-w.left&&pt.top-w.top&&h=2){if(\"x\"===n(o)){const e=x[0],n=x[x.length-1],r=\"top\"===t(o),i=e.top,a=n.bottom,l=r?e.left:n.left,s=r?e.right:n.right;return{top:i,bottom:a,left:l,right:s,width:s-l,height:a-i,x:l,y:i}}const e=\"left\"===t(o),r=f(...x.map((t=>t.right))),i=c(...x.map((t=>t.left))),a=x.filter((t=>e?t.left===i:t.right===r)),l=a[0].top,s=a[a.length-1].bottom;return{top:l,bottom:s,left:i,right:r,width:r-i,height:s-l,x:i,y:l}}return y}},floating:s.floating,strategy:g});return u.reference.x!==v.reference.x||u.reference.y!==v.reference.y||u.reference.width!==v.reference.width||u.reference.height!==v.reference.height?{reset:{rects:v}}:{}}}};export{m as arrow,v as autoPlacement,o as computePosition,s as detectOverflow,b as flip,P as hide,E as inline,L as limitShift,T as offset,l as rectToClientRect,D as shift,k as size};\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function o(t){if(null==t)return window;if(!n(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function i(t){return o(t).getComputedStyle(t)}function r(t){return n(t)?\"\":t?(t.nodeName||\"\").toLowerCase():\"\"}function l(){const t=navigator.userAgentData;return null!=t&&t.brands?t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"):navigator.userAgent}function c(t){return t instanceof o(t).HTMLElement}function f(t){return t instanceof o(t).Element}function s(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof o(t).ShadowRoot||t instanceof ShadowRoot}function u(t){const{overflow:e,overflowX:n,overflowY:o}=i(t);return/auto|scroll|overlay|hidden/.test(e+o+n)}function d(t){return[\"table\",\"td\",\"th\"].includes(r(t))}function h(t){const e=/firefox/i.test(l()),n=i(t);return\"none\"!==n.transform||\"none\"!==n.perspective||\"paint\"===n.contain||[\"transform\",\"perspective\"].includes(n.willChange)||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter}function a(){return!/^((?!chrome|android).)*safari/i.test(l())}const g=Math.min,p=Math.max,m=Math.round;function w(t,e,n){var i,r,l,s;void 0===e&&(e=!1),void 0===n&&(n=!1);const u=t.getBoundingClientRect();let d=1,h=1;e&&c(t)&&(d=t.offsetWidth>0&&m(u.width)/t.offsetWidth||1,h=t.offsetHeight>0&&m(u.height)/t.offsetHeight||1);const g=f(t)?o(t):window,p=!a()&&n,w=(u.left+(p&&null!=(i=null==(r=g.visualViewport)?void 0:r.offsetLeft)?i:0))/d,v=(u.top+(p&&null!=(l=null==(s=g.visualViewport)?void 0:s.offsetTop)?l:0))/h,y=u.width/d,x=u.height/h;return{width:y,height:x,top:v,right:w+y,bottom:v+x,left:w,x:w,y:v}}function v(t){return(e=t,(e instanceof o(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function y(t){return f(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function x(t){return w(v(t)).left+y(t).scrollLeft}function b(t,e,n){const o=c(e),i=v(e),l=w(t,o&&function(t){const e=w(t);return m(e.width)!==t.offsetWidth||m(e.height)!==t.offsetHeight}(e),\"fixed\"===n);let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==r(e)||u(i))&&(f=y(e)),c(e)){const t=w(e,!0);s.x=t.x+e.clientLeft,s.y=t.y+e.clientTop}else i&&(s.x=x(i));return{x:l.left+f.scrollLeft-s.x,y:l.top+f.scrollTop-s.y,width:l.width,height:l.height}}function L(t){return\"html\"===r(t)?t:t.assignedSlot||t.parentNode||(s(t)?t.host:null)||v(t)}function R(t){return c(t)&&\"fixed\"!==getComputedStyle(t).position?t.offsetParent:null}function T(t){const e=o(t);let n=R(t);for(;n&&d(n)&&\"static\"===getComputedStyle(n).position;)n=R(n);return n&&(\"html\"===r(n)||\"body\"===r(n)&&\"static\"===getComputedStyle(n).position&&!h(n))?e:n||function(t){let e=L(t);for(s(e)&&(e=e.host);c(e)&&![\"html\",\"body\"].includes(r(e));){if(h(e))return e;e=e.parentNode}return null}(t)||e}function W(t){if(c(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=w(t);return{width:e.width,height:e.height}}function E(t){const e=L(t);return[\"html\",\"body\",\"#document\"].includes(r(e))?t.ownerDocument.body:c(e)&&u(e)?e:E(e)}function H(t,e){var n;void 0===e&&(e=[]);const i=E(t),r=i===(null==(n=t.ownerDocument)?void 0:n.body),l=o(i),c=r?[l].concat(l.visualViewport||[],u(i)?i:[]):i,f=e.concat(c);return r?f:f.concat(H(c))}function C(e,n,r){return\"viewport\"===n?t(function(t,e){const n=o(t),i=v(t),r=n.visualViewport;let l=i.clientWidth,c=i.clientHeight,f=0,s=0;if(r){l=r.width,c=r.height;const t=a();(t||!t&&\"fixed\"===e)&&(f=r.offsetLeft,s=r.offsetTop)}return{width:l,height:c,x:f,y:s}}(e,r)):f(n)?function(t,e){const n=w(t,!1,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft;return{top:o,left:i,x:i,y:o,right:i+t.clientWidth,bottom:o+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}(n,r):t(function(t){var e;const n=v(t),o=y(t),r=null==(e=t.ownerDocument)?void 0:e.body,l=p(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),c=p(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let f=-o.scrollLeft+x(t);const s=-o.scrollTop;return\"rtl\"===i(r||n).direction&&(f+=p(n.clientWidth,r?r.clientWidth:0)-l),{width:l,height:c,x:f,y:s}}(v(e)))}function S(t){const e=H(t),n=[\"absolute\",\"fixed\"].includes(i(t).position)&&c(t)?T(t):t;return f(n)?e.filter((t=>f(t)&&function(t,e){const n=null==e.getRootNode?void 0:e.getRootNode();if(t.contains(e))return!0;if(n&&s(n)){let n=e;do{if(n&&t===n)return!0;n=n.parentNode||n.host}while(n)}return!1}(t,n)&&\"body\"!==r(t))):[]}const D={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:o,strategy:i}=t;const r=[...\"clippingAncestors\"===n?S(e):[].concat(n),o],l=r[0],c=r.reduce(((t,n)=>{const o=C(e,n,i);return t.top=p(o.top,t.top),t.right=g(o.right,t.right),t.bottom=g(o.bottom,t.bottom),t.left=p(o.left,t.left),t}),C(e,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=c(n),l=v(n);if(n===l)return e;let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==r(n)||u(l))&&(f=y(n)),c(n))){const t=w(n,!0);s.x=t.x+n.clientLeft,s.y=t.y+n.clientTop}return{...e,x:e.x-f.scrollLeft+s.x,y:e.y-f.scrollTop+s.y}},isElement:f,getDimensions:W,getOffsetParent:T,getDocumentElement:v,getElementRects:t=>{let{reference:e,floating:n,strategy:o}=t;return{reference:b(e,T(n),o),floating:{...W(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===i(t).direction};function N(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,u=r&&!c,d=s||u?[...f(t)?H(t):[],...H(e)]:[];d.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),u&&t.addEventListener(\"resize\",n)}));let h,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),f(t)&&!c&&a.observe(t),a.observe(e)}let g=c?w(t):null;return c&&function e(){const o=w(t);!g||o.x===g.x&&o.y===g.y&&o.width===g.width&&o.height===g.height||n();g=o,h=requestAnimationFrame(e)}(),n(),()=>{var t;d.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),u&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(h)}}const z=(t,n,o)=>e(t,n,{platform:D,...o});export{N as autoUpdate,z as computePosition,H as getOverflowAncestors};\n","import { computePosition, arrow as arrow$1 } from '@floating-ui/dom';\nexport * from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n\n let length, i, keys;\n\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n keys = Object.keys(a);\n length = keys.length;\n\n if (length !== Object.keys(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nfunction useFloating(_temp) {\n let {\n middleware,\n placement = 'bottom',\n strategy = 'absolute',\n whileElementsMounted\n } = _temp === void 0 ? {} : _temp;\n const reference = React.useRef(null);\n const floating = React.useRef(null);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const cleanupRef = React.useRef(null);\n const [data, setData] = React.useState({\n // Setting these to `null` will allow the consumer to determine if\n // `computePosition()` has run yet\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {}\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n\n if (!deepEqual(latestMiddleware == null ? void 0 : latestMiddleware.map(_ref => {\n let {\n options\n } = _ref;\n return options;\n }), middleware == null ? void 0 : middleware.map(_ref2 => {\n let {\n options\n } = _ref2;\n return options;\n }))) {\n setLatestMiddleware(middleware);\n }\n\n const update = React.useCallback(() => {\n if (!reference.current || !floating.current) {\n return;\n }\n\n computePosition(reference.current, floating.current, {\n middleware: latestMiddleware,\n placement,\n strategy\n }).then(data => {\n if (isMountedRef.current) {\n ReactDOM.flushSync(() => {\n setData(data);\n });\n }\n });\n }, [latestMiddleware, placement, strategy]);\n index(() => {\n // Skip first update\n if (isMountedRef.current) {\n update();\n }\n }, [update]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n const runElementMountCallback = React.useCallback(() => {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n\n if (reference.current && floating.current) {\n if (whileElementsMountedRef.current) {\n const cleanupFn = whileElementsMountedRef.current(reference.current, floating.current, update);\n cleanupRef.current = cleanupFn;\n } else {\n update();\n }\n }\n }, [update, whileElementsMountedRef]);\n const setReference = React.useCallback(node => {\n reference.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const setFloating = React.useCallback(node => {\n floating.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const refs = React.useMemo(() => ({\n reference,\n floating\n }), []);\n return React.useMemo(() => ({ ...data,\n update,\n refs,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, setReference, setFloating]);\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\n\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n\n return {\n name: 'arrow',\n options,\n\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(args);\n }\n\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(args);\n }\n\n return {};\n }\n\n };\n};\n\nexport { arrow, useFloating };\n","import $jbnEx$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $jbnEx$forwardRef, createElement as $jbnEx$createElement} from \"react\";\nimport {Primitive as $jbnEx$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Arrow\n * -----------------------------------------------------------------------------------------------*/ const $7e8f5cd07187803e$var$NAME = 'Arrow';\nconst $7e8f5cd07187803e$export$21b07c8f274aebd5 = /*#__PURE__*/ $jbnEx$forwardRef((props, forwardedRef)=>{\n const { children: children , width: width = 10 , height: height = 5 , ...arrowProps } = props;\n return /*#__PURE__*/ $jbnEx$createElement($jbnEx$Primitive.svg, $jbnEx$babelruntimehelpersesmextends({}, arrowProps, {\n ref: forwardedRef,\n width: width,\n height: height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\"\n }), props.asChild ? children : /*#__PURE__*/ $jbnEx$createElement(\"polygon\", {\n points: \"0,0 30,0 15,10\"\n }));\n});\n/*#__PURE__*/ Object.assign($7e8f5cd07187803e$export$21b07c8f274aebd5, {\n displayName: $7e8f5cd07187803e$var$NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $7e8f5cd07187803e$export$be92b6f5f03c0fe9 = $7e8f5cd07187803e$export$21b07c8f274aebd5;\n\n\n\n\nexport {$7e8f5cd07187803e$export$21b07c8f274aebd5 as Arrow, $7e8f5cd07187803e$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import {useState as $9gyGR$useState} from \"react\";\nimport {useLayoutEffect as $9gyGR$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\nfunction $db6c3485150b8e66$export$1ab7ae714698c4b8(element) {\n const [size, setSize] = $9gyGR$useState(undefined);\n $9gyGR$useLayoutEffect(()=>{\n if (element) {\n // provide size as early as possible\n setSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n const resizeObserver = new ResizeObserver((entries)=>{\n if (!Array.isArray(entries)) return;\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length) return;\n const entry = entries[0];\n let width;\n let height;\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry['borderBoxSize']; // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize['inlineSize'];\n height = borderSize['blockSize'];\n } else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({\n width: width,\n height: height\n });\n });\n resizeObserver.observe(element, {\n box: 'border-box'\n });\n return ()=>resizeObserver.unobserve(element)\n ;\n } else // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n setSize(undefined);\n }, [\n element\n ]);\n return size;\n}\n\n\n\n\nexport {$db6c3485150b8e66$export$1ab7ae714698c4b8 as useSize};\n//# sourceMappingURL=index.module.js.map\n","import $kY93V$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {useState as $kY93V$useState, createElement as $kY93V$createElement, forwardRef as $kY93V$forwardRef, useRef as $kY93V$useRef, useEffect as $kY93V$useEffect, useLayoutEffect as $kY93V$useLayoutEffect} from \"react\";\nimport {useFloating as $kY93V$useFloating, autoUpdate as $kY93V$autoUpdate, offset as $kY93V$offset, shift as $kY93V$shift, limitShift as $kY93V$limitShift, arrow as $kY93V$arrow, flip as $kY93V$flip, size as $kY93V$size, hide as $kY93V$hide} from \"@floating-ui/react-dom\";\nimport {Root as $kY93V$Root} from \"@radix-ui/react-arrow\";\nimport {useComposedRefs as $kY93V$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $kY93V$createContextScope} from \"@radix-ui/react-context\";\nimport {Primitive as $kY93V$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $kY93V$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useLayoutEffect as $kY93V$useLayoutEffect1} from \"@radix-ui/react-use-layout-effect\";\nimport {useSize as $kY93V$useSize} from \"@radix-ui/react-use-size\";\n\n\n\n\n\n\n\n\n\n\n\nconst $cf1ac5d9fe0e8206$export$36f0086da09c4b9f = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nconst $cf1ac5d9fe0e8206$export$3671ffab7b302fc9 = [\n 'start',\n 'center',\n 'end'\n];\n/* -------------------------------------------------------------------------------------------------\n * Popper\n * -----------------------------------------------------------------------------------------------*/ const $cf1ac5d9fe0e8206$var$POPPER_NAME = 'Popper';\nconst [$cf1ac5d9fe0e8206$var$createPopperContext, $cf1ac5d9fe0e8206$export$722aac194ae923] = $kY93V$createContextScope($cf1ac5d9fe0e8206$var$POPPER_NAME);\nconst [$cf1ac5d9fe0e8206$var$PopperProvider, $cf1ac5d9fe0e8206$var$usePopperContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$POPPER_NAME);\nconst $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9 = (props)=>{\n const { __scopePopper: __scopePopper , children: children } = props;\n const [anchor, setAnchor] = $kY93V$useState(null);\n return /*#__PURE__*/ $kY93V$createElement($cf1ac5d9fe0e8206$var$PopperProvider, {\n scope: __scopePopper,\n anchor: anchor,\n onAnchorChange: setAnchor\n }, children);\n};\n/*#__PURE__*/ Object.assign($cf1ac5d9fe0e8206$export$badac9ada3a0bdf9, {\n displayName: $cf1ac5d9fe0e8206$var$POPPER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopperAnchor\n * -----------------------------------------------------------------------------------------------*/ const $cf1ac5d9fe0e8206$var$ANCHOR_NAME = 'PopperAnchor';\nconst $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d = /*#__PURE__*/ $kY93V$forwardRef((props, forwardedRef)=>{\n const { __scopePopper: __scopePopper , virtualRef: virtualRef , ...anchorProps } = props;\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$ANCHOR_NAME, __scopePopper);\n const ref = $kY93V$useRef(null);\n const composedRefs = $kY93V$useComposedRefs(forwardedRef, ref);\n $kY93V$useEffect(()=>{\n // Consumer can anchor the popper to something that isn't\n // a DOM node e.g. pointer position, so we override the\n // `anchorRef` with their virtual ref in this case.\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n });\n return virtualRef ? null : /*#__PURE__*/ $kY93V$createElement($kY93V$Primitive.div, $kY93V$babelruntimehelpersesmextends({}, anchorProps, {\n ref: composedRefs\n }));\n});\n/*#__PURE__*/ Object.assign($cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d, {\n displayName: $cf1ac5d9fe0e8206$var$ANCHOR_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopperContent\n * -----------------------------------------------------------------------------------------------*/ const $cf1ac5d9fe0e8206$var$CONTENT_NAME = 'PopperContent';\nconst [$cf1ac5d9fe0e8206$var$PopperContentProvider, $cf1ac5d9fe0e8206$var$useContentContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME);\nconst [$cf1ac5d9fe0e8206$var$PositionContextProvider, $cf1ac5d9fe0e8206$var$usePositionContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, {\n hasParent: false,\n positionUpdateFns: new Set()\n});\nconst $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = /*#__PURE__*/ $kY93V$forwardRef((props, forwardedRef)=>{\n var _arrowSize$width, _arrowSize$height, _middlewareData$arrow, _middlewareData$arrow2, _middlewareData$arrow3, _middlewareData$hide, _middlewareData$trans, _middlewareData$trans2;\n const { __scopePopper: __scopePopper , side: side = 'bottom' , sideOffset: sideOffset = 0 , align: align = 'center' , alignOffset: alignOffset = 0 , arrowPadding: arrowPadding = 0 , collisionBoundary: collisionBoundary = [] , collisionPadding: collisionPaddingProp = 0 , sticky: sticky = 'partial' , hideWhenDetached: hideWhenDetached = false , avoidCollisions: avoidCollisions = true , onPlaced: onPlaced , ...contentProps } = props;\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const [content, setContent] = $kY93V$useState(null);\n const composedRefs = $kY93V$useComposedRefs(forwardedRef, (node)=>setContent(node)\n );\n const [arrow, setArrow] = $kY93V$useState(null);\n const arrowSize = $kY93V$useSize(arrow);\n const arrowWidth = (_arrowSize$width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize$width !== void 0 ? _arrowSize$width : 0;\n const arrowHeight = (_arrowSize$height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize$height !== void 0 ? _arrowSize$height : 0;\n const desiredPlacement = side + (align !== 'center' ? '-' + align : '');\n const collisionPadding = typeof collisionPaddingProp === 'number' ? collisionPaddingProp : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPaddingProp\n };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter($cf1ac5d9fe0e8206$var$isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { reference: reference , floating: floating , strategy: strategy , x: x , y: y , placement: placement , middlewareData: middlewareData , update: update } = $kY93V$useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: 'fixed',\n placement: desiredPlacement,\n whileElementsMounted: $kY93V$autoUpdate,\n middleware: [\n $cf1ac5d9fe0e8206$var$anchorCssProperties(),\n $kY93V$offset({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions ? $kY93V$shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === 'partial' ? $kY93V$limitShift() : undefined,\n ...detectOverflowOptions\n }) : undefined,\n arrow ? $kY93V$arrow({\n element: arrow,\n padding: arrowPadding\n }) : undefined,\n avoidCollisions ? $kY93V$flip({\n ...detectOverflowOptions\n }) : undefined,\n $kY93V$size({\n ...detectOverflowOptions,\n apply: ({ elements: elements , availableWidth: width , availableHeight: height })=>{\n elements.floating.style.setProperty('--radix-popper-available-width', `${width}px`);\n elements.floating.style.setProperty('--radix-popper-available-height', `${height}px`);\n }\n }),\n $cf1ac5d9fe0e8206$var$transformOrigin({\n arrowWidth: arrowWidth,\n arrowHeight: arrowHeight\n }),\n hideWhenDetached ? $kY93V$hide({\n strategy: 'referenceHidden'\n }) : undefined\n ].filter($cf1ac5d9fe0e8206$var$isDefined)\n }); // assign the reference dynamically once `Content` has mounted so we can collocate the logic\n $kY93V$useLayoutEffect1(()=>{\n reference(context.anchor);\n }, [\n reference,\n context.anchor\n ]);\n const isPlaced = x !== null && y !== null;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const handlePlaced = $kY93V$useCallbackRef(onPlaced);\n $kY93V$useLayoutEffect1(()=>{\n if (isPlaced) handlePlaced === null || handlePlaced === void 0 || handlePlaced();\n }, [\n isPlaced,\n handlePlaced\n ]);\n const arrowX = (_middlewareData$arrow = middlewareData.arrow) === null || _middlewareData$arrow === void 0 ? void 0 : _middlewareData$arrow.x;\n const arrowY = (_middlewareData$arrow2 = middlewareData.arrow) === null || _middlewareData$arrow2 === void 0 ? void 0 : _middlewareData$arrow2.y;\n const cannotCenterArrow = ((_middlewareData$arrow3 = middlewareData.arrow) === null || _middlewareData$arrow3 === void 0 ? void 0 : _middlewareData$arrow3.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = $kY93V$useState();\n $kY93V$useLayoutEffect1(()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const { hasParent: hasParent , positionUpdateFns: positionUpdateFns } = $cf1ac5d9fe0e8206$var$usePositionContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const isRoot = !hasParent;\n $kY93V$useLayoutEffect(()=>{\n if (!isRoot) {\n positionUpdateFns.add(update);\n return ()=>{\n positionUpdateFns.delete(update);\n };\n }\n }, [\n isRoot,\n positionUpdateFns,\n update\n ]); // when nested contents are rendered in portals, they are appended out of order causing\n // children to be positioned incorrectly if initially open.\n // we need to re-compute the positioning once the parent has finally been placed.\n // https://github.com/floating-ui/floating-ui/issues/1531\n $kY93V$useLayoutEffect1(()=>{\n if (isRoot && isPlaced) Array.from(positionUpdateFns).reverse().forEach((fn)=>requestAnimationFrame(fn)\n );\n }, [\n isRoot,\n isPlaced,\n positionUpdateFns\n ]);\n const commonProps = {\n 'data-side': placedSide,\n 'data-align': placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPlaced ? 'none' : undefined,\n // hide the content if using the hide middleware and should be hidden\n opacity: (_middlewareData$hide = middlewareData.hide) !== null && _middlewareData$hide !== void 0 && _middlewareData$hide.referenceHidden ? 0 : undefined\n }\n };\n return /*#__PURE__*/ $kY93V$createElement(\"div\", {\n ref: floating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n position: strategy,\n left: 0,\n top: 0,\n transform: isPlaced ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : 'translate3d(0, -200%, 0)',\n // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--radix-popper-transform-origin']: [\n (_middlewareData$trans = middlewareData.transformOrigin) === null || _middlewareData$trans === void 0 ? void 0 : _middlewareData$trans.x,\n (_middlewareData$trans2 = middlewareData.transformOrigin) === null || _middlewareData$trans2 === void 0 ? void 0 : _middlewareData$trans2.y\n ].join(' ')\n } // Floating UI interally calculates logical alignment based the `dir` attribute on\n ,\n dir: props.dir\n }, /*#__PURE__*/ $kY93V$createElement($cf1ac5d9fe0e8206$var$PopperContentProvider, {\n scope: __scopePopper,\n placedSide: placedSide,\n onArrowChange: setArrow,\n arrowX: arrowX,\n arrowY: arrowY,\n shouldHideArrow: cannotCenterArrow\n }, isRoot ? /*#__PURE__*/ $kY93V$createElement($cf1ac5d9fe0e8206$var$PositionContextProvider, {\n scope: __scopePopper,\n hasParent: true,\n positionUpdateFns: positionUpdateFns\n }, /*#__PURE__*/ $kY93V$createElement($kY93V$Primitive.div, commonProps)) : /*#__PURE__*/ $kY93V$createElement($kY93V$Primitive.div, commonProps)));\n});\n/*#__PURE__*/ Object.assign($cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc, {\n displayName: $cf1ac5d9fe0e8206$var$CONTENT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopperArrow\n * -----------------------------------------------------------------------------------------------*/ const $cf1ac5d9fe0e8206$var$ARROW_NAME = 'PopperArrow';\nconst $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\nconst $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0 = /*#__PURE__*/ $kY93V$forwardRef(function $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0(props, forwardedRef) {\n const { __scopePopper: __scopePopper , ...arrowProps } = props;\n const contentContext = $cf1ac5d9fe0e8206$var$useContentContext($cf1ac5d9fe0e8206$var$ARROW_NAME, __scopePopper);\n const baseSide = $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE[contentContext.placedSide];\n return(/*#__PURE__*/ // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n $kY93V$createElement(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: 'absolute',\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0'\n }[contentContext.placedSide],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? 'hidden' : undefined\n }\n }, /*#__PURE__*/ $kY93V$createElement($kY93V$Root, $kY93V$babelruntimehelpersesmextends({}, arrowProps, {\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: 'block'\n }\n }))));\n});\n/*#__PURE__*/ Object.assign($cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0, {\n displayName: $cf1ac5d9fe0e8206$var$ARROW_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ function $cf1ac5d9fe0e8206$var$isDefined(value) {\n return value !== undefined;\n}\nfunction $cf1ac5d9fe0e8206$var$isNotNull(value) {\n return value !== null;\n}\nconst $cf1ac5d9fe0e8206$var$anchorCssProperties = ()=>({\n name: 'anchorCssProperties',\n fn (data) {\n const { rects: rects , elements: elements } = data;\n const { width: width , height: height } = rects.reference;\n elements.floating.style.setProperty('--radix-popper-anchor-width', `${width}px`);\n elements.floating.style.setProperty('--radix-popper-anchor-height', `${height}px`);\n return {};\n }\n })\n;\nconst $cf1ac5d9fe0e8206$var$transformOrigin = (options)=>({\n name: 'transformOrigin',\n options: options,\n fn (data) {\n var _middlewareData$arrow4, _middlewareData$arrow5, _middlewareData$arrow6, _middlewareData$arrow7, _middlewareData$arrow8;\n const { placement: placement , rects: rects , middlewareData: middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData$arrow4 = middlewareData.arrow) === null || _middlewareData$arrow4 === void 0 ? void 0 : _middlewareData$arrow4.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: '0%',\n center: '50%',\n end: '100%'\n }[placedAlign];\n const arrowXCenter = ((_middlewareData$arrow5 = (_middlewareData$arrow6 = middlewareData.arrow) === null || _middlewareData$arrow6 === void 0 ? void 0 : _middlewareData$arrow6.x) !== null && _middlewareData$arrow5 !== void 0 ? _middlewareData$arrow5 : 0) + arrowWidth / 2;\n const arrowYCenter = ((_middlewareData$arrow7 = (_middlewareData$arrow8 = middlewareData.arrow) === null || _middlewareData$arrow8 === void 0 ? void 0 : _middlewareData$arrow8.y) !== null && _middlewareData$arrow7 !== void 0 ? _middlewareData$arrow7 : 0) + arrowHeight / 2;\n let x = '';\n let y = '';\n if (placedSide === 'bottom') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === 'top') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === 'right') {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === 'left') {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x: x,\n y: y\n }\n };\n }\n })\n;\nfunction $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement) {\n const [side, align = 'center'] = placement.split('-');\n return [\n side,\n align\n ];\n}\nconst $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9 = $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9;\nconst $cf1ac5d9fe0e8206$export$b688253958b8dfe7 = $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d;\nconst $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2 = $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc;\nconst $cf1ac5d9fe0e8206$export$21b07c8f274aebd5 = $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0;\n\n\n\n\nexport {$cf1ac5d9fe0e8206$export$722aac194ae923 as createPopperScope, $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9 as Popper, $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d as PopperAnchor, $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc as PopperContent, $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0 as PopperArrow, $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9 as Root, $cf1ac5d9fe0e8206$export$b688253958b8dfe7 as Anchor, $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2 as Content, $cf1ac5d9fe0e8206$export$21b07c8f274aebd5 as Arrow, $cf1ac5d9fe0e8206$export$36f0086da09c4b9f as SIDE_OPTIONS, $cf1ac5d9fe0e8206$export$3671ffab7b302fc9 as ALIGN_OPTIONS};\n//# sourceMappingURL=index.module.js.map\n","import $7SXl2$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $7SXl2$forwardRef, createElement as $7SXl2$createElement} from \"react\";\nimport $7SXl2$reactdom from \"react-dom\";\nimport {Primitive as $7SXl2$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$var$PORTAL_NAME = 'Portal';\nconst $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ $7SXl2$forwardRef((props, forwardedRef)=>{\n var _globalThis$document;\n const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;\n return container ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(/*#__PURE__*/ $7SXl2$createElement($7SXl2$Primitive.div, $7SXl2$babelruntimehelpersesmextends({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n/*#__PURE__*/ Object.assign($f1701beae083dbae$export$602eac185826482c, {\n displayName: $f1701beae083dbae$var$PORTAL_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$export$be92b6f5f03c0fe9 = $f1701beae083dbae$export$602eac185826482c;\n\n\n\n\nexport {$f1701beae083dbae$export$602eac185826482c as Portal, $f1701beae083dbae$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import {Children as $iqq3r$Children, cloneElement as $iqq3r$cloneElement, useState as $iqq3r$useState, useRef as $iqq3r$useRef, useEffect as $iqq3r$useEffect, useCallback as $iqq3r$useCallback, useReducer as $iqq3r$useReducer} from \"react\";\nimport {flushSync as $iqq3r$flushSync} from \"react-dom\";\nimport {useComposedRefs as $iqq3r$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useLayoutEffect as $iqq3r$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\n\n\n\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return $iqq3r$useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\nconst $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props)=>{\n const { present: present , children: children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === 'function' ? children({\n present: presence.isPresent\n }) : $iqq3r$Children.only(children);\n const ref = $iqq3r$useComposedRefs(presence.ref, child.ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? /*#__PURE__*/ $iqq3r$cloneElement(child, {\n ref: ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = 'Presence';\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = $iqq3r$useState();\n const stylesRef = $iqq3r$useRef({});\n const prevPresentRef = $iqq3r$useRef(present);\n const prevAnimationNameRef = $iqq3r$useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended'\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted'\n },\n unmounted: {\n MOUNT: 'mounted'\n }\n });\n $iqq3r$useEffect(()=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [\n state\n ]);\n $iqq3r$useLayoutEffect(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles);\n if (present) send('MOUNT');\n else if (currentAnimationName === 'none' || (styles === null || styles === void 0 ? void 0 : styles.display) === 'none') // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */ const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) send('ANIMATION_OUT');\n else send('UNMOUNT');\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $iqq3r$useLayoutEffect(()=>{\n if (node1) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */ const handleAnimationEnd = (event)=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation) // With React 18 concurrency this update is applied\n // a frame after the animation ends, creating a flash of visible content.\n // By manually flushing we ensure they sync within a frame, removing the flash.\n $iqq3r$flushSync(()=>send('ANIMATION_END')\n );\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node1) // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener('animationstart', handleAnimationStart);\n node1.addEventListener('animationcancel', handleAnimationEnd);\n node1.addEventListener('animationend', handleAnimationEnd);\n return ()=>{\n node1.removeEventListener('animationstart', handleAnimationStart);\n node1.removeEventListener('animationcancel', handleAnimationEnd);\n node1.removeEventListener('animationend', handleAnimationEnd);\n };\n } else // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n 'mounted',\n 'unmountSuspended'\n ].includes(state),\n ref: $iqq3r$useCallback((node)=>{\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\n/* -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || 'none';\n}\n\n\n\n\nexport {$921a889cee6df7e8$export$99c2b779aa4e8b8b as Presence};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $bnPw9$useCallback, useState as $bnPw9$useState, useRef as $bnPw9$useRef, useEffect as $bnPw9$useEffect} from \"react\";\nimport {useCallbackRef as $bnPw9$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop: prop , defaultProp: defaultProp , onChange: onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp: defaultProp,\n onChange: onChange\n });\n const isControlled = prop !== undefined;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = $bnPw9$useCallbackRef(onChange);\n const setValue = $bnPw9$useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp: defaultProp , onChange: onChange }) {\n const uncontrolledState = $bnPw9$useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = $bnPw9$useRef(value);\n const handleChange = $bnPw9$useCallbackRef(onChange);\n $bnPw9$useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\n\n\nexport {$71cd76cc60e0454e$export$6f32135080cb4c3 as useControllableState};\n//# sourceMappingURL=index.module.js.map\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
    ...
    \n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\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","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import $am6gm$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {useRef as $am6gm$useRef, useState as $am6gm$useState, createElement as $am6gm$createElement, useCallback as $am6gm$useCallback, forwardRef as $am6gm$forwardRef, useEffect as $am6gm$useEffect} from \"react\";\nimport {composeEventHandlers as $am6gm$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useComposedRefs as $am6gm$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $am6gm$createContextScope} from \"@radix-ui/react-context\";\nimport {DismissableLayer as $am6gm$DismissableLayer} from \"@radix-ui/react-dismissable-layer\";\nimport {useFocusGuards as $am6gm$useFocusGuards} from \"@radix-ui/react-focus-guards\";\nimport {FocusScope as $am6gm$FocusScope} from \"@radix-ui/react-focus-scope\";\nimport {useId as $am6gm$useId} from \"@radix-ui/react-id\";\nimport {createPopperScope as $am6gm$createPopperScope, Root as $am6gm$Root, Anchor as $am6gm$Anchor, Content as $am6gm$Content, Arrow as $am6gm$Arrow} from \"@radix-ui/react-popper\";\nimport {Portal as $am6gm$Portal} from \"@radix-ui/react-portal\";\nimport {Presence as $am6gm$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $am6gm$Primitive} from \"@radix-ui/react-primitive\";\nimport {Slot as $am6gm$Slot} from \"@radix-ui/react-slot\";\nimport {useControllableState as $am6gm$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {hideOthers as $am6gm$hideOthers} from \"aria-hidden\";\nimport {RemoveScroll as $am6gm$RemoveScroll} from \"react-remove-scroll\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$POPOVER_NAME = 'Popover';\nconst [$cb5cc270b50c6fcd$var$createPopoverContext, $cb5cc270b50c6fcd$export$c8393c9e73286932] = $am6gm$createContextScope($cb5cc270b50c6fcd$var$POPOVER_NAME, [\n $am6gm$createPopperScope\n]);\nconst $cb5cc270b50c6fcd$var$usePopperScope = $am6gm$createPopperScope();\nconst [$cb5cc270b50c6fcd$var$PopoverProvider, $cb5cc270b50c6fcd$var$usePopoverContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$POPOVER_NAME);\nconst $cb5cc270b50c6fcd$export$5b6b19405a83ff9d = (props)=>{\n const { __scopePopover: __scopePopover , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = false } = props;\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const triggerRef = $am6gm$useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = $am6gm$useState(false);\n const [open = false, setOpen] = $am6gm$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ $am6gm$createElement($am6gm$Root, popperScope, /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverProvider, {\n scope: __scopePopover,\n contentId: $am6gm$useId(),\n triggerRef: triggerRef,\n open: open,\n onOpenChange: setOpen,\n onOpenToggle: $am6gm$useCallback(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ]),\n hasCustomAnchor: hasCustomAnchor,\n onCustomAnchorAdd: $am6gm$useCallback(()=>setHasCustomAnchor(true)\n , []),\n onCustomAnchorRemove: $am6gm$useCallback(()=>setHasCustomAnchor(false)\n , []),\n modal: modal\n }, children));\n};\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$5b6b19405a83ff9d, {\n displayName: $cb5cc270b50c6fcd$var$POPOVER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$ANCHOR_NAME = 'PopoverAnchor';\nconst $cb5cc270b50c6fcd$export$96e5381f42521a79 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const { __scopePopover: __scopePopover , ...anchorProps } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$ANCHOR_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const { onCustomAnchorAdd: onCustomAnchorAdd , onCustomAnchorRemove: onCustomAnchorRemove } = context;\n $am6gm$useEffect(()=>{\n onCustomAnchorAdd();\n return ()=>onCustomAnchorRemove()\n ;\n }, [\n onCustomAnchorAdd,\n onCustomAnchorRemove\n ]);\n return /*#__PURE__*/ $am6gm$createElement($am6gm$Anchor, $am6gm$babelruntimehelpersesmextends({}, popperScope, anchorProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$96e5381f42521a79, {\n displayName: $cb5cc270b50c6fcd$var$ANCHOR_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$TRIGGER_NAME = 'PopoverTrigger';\nconst $cb5cc270b50c6fcd$export$7dacb05d26466c3 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const { __scopePopover: __scopePopover , ...triggerProps } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$TRIGGER_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const composedTriggerRef = $am6gm$useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /*#__PURE__*/ $am6gm$createElement($am6gm$Primitive.button, $am6gm$babelruntimehelpersesmextends({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: $am6gm$composeEventHandlers(props.onClick, context.onOpenToggle)\n }));\n return context.hasCustomAnchor ? trigger : /*#__PURE__*/ $am6gm$createElement($am6gm$Anchor, $am6gm$babelruntimehelpersesmextends({\n asChild: true\n }, popperScope), trigger);\n});\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$7dacb05d26466c3, {\n displayName: $cb5cc270b50c6fcd$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverPortal\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$PORTAL_NAME = 'PopoverPortal';\nconst [$cb5cc270b50c6fcd$var$PortalProvider, $cb5cc270b50c6fcd$var$usePortalContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$PORTAL_NAME, {\n forceMount: undefined\n});\nconst $cb5cc270b50c6fcd$export$dd679ffb4362d2d4 = (props)=>{\n const { __scopePopover: __scopePopover , forceMount: forceMount , children: children , container: container } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$PORTAL_NAME, __scopePopover);\n return /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PortalProvider, {\n scope: __scopePopover,\n forceMount: forceMount\n }, /*#__PURE__*/ $am6gm$createElement($am6gm$Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ $am6gm$createElement($am6gm$Portal, {\n asChild: true,\n container: container\n }, children)));\n};\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$dd679ffb4362d2d4, {\n displayName: $cb5cc270b50c6fcd$var$PORTAL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$CONTENT_NAME = 'PopoverContent';\nconst $cb5cc270b50c6fcd$export$d7e1f420b25549ff = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const portalContext = $cb5cc270b50c6fcd$var$usePortalContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n return /*#__PURE__*/ $am6gm$createElement($am6gm$Presence, {\n present: forceMount || context.open\n }, context.modal ? /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentModal, $am6gm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })) : /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentNonModal, $am6gm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$d7e1f420b25549ff, {\n displayName: $cb5cc270b50c6fcd$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$PopoverContentModal = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const contentRef = $am6gm$useRef(null);\n const composedRefs = $am6gm$useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = $am6gm$useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n $am6gm$useEffect(()=>{\n const content = contentRef.current;\n if (content) return $am6gm$hideOthers(content);\n }, []);\n return /*#__PURE__*/ $am6gm$createElement($am6gm$RemoveScroll, {\n as: $am6gm$Slot,\n allowPinchZoom: true\n }, /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentImpl, $am6gm$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs // we make sure we're not trapping once it's been closed\n ,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: $am6gm$composeEventHandlers(props.onCloseAutoFocus, (event)=>{\n var _context$triggerRef$c;\n event.preventDefault();\n if (!isRightClickOutsideRef.current) (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: $am6gm$composeEventHandlers(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n }, {\n checkForDefaultPrevented: false\n }) // When focus is trapped, a `focusout` event may still happen.\n ,\n onFocusOutside: $am6gm$composeEventHandlers(props.onFocusOutside, (event)=>event.preventDefault()\n , {\n checkForDefaultPrevented: false\n })\n })));\n});\nconst $cb5cc270b50c6fcd$var$PopoverContentNonModal = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = $am6gm$useRef(false);\n return /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentImpl, $am6gm$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true; // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$PopoverContentImpl = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const { __scopePopover: __scopePopover , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , disableOutsidePointerEvents: disableOutsidePointerEvents , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover); // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n $am6gm$useFocusGuards();\n return /*#__PURE__*/ $am6gm$createElement($am6gm$FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, /*#__PURE__*/ $am6gm$createElement($am6gm$DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents: disableOutsidePointerEvents,\n onInteractOutside: onInteractOutside,\n onEscapeKeyDown: onEscapeKeyDown,\n onPointerDownOutside: onPointerDownOutside,\n onFocusOutside: onFocusOutside,\n onDismiss: ()=>context.onOpenChange(false)\n }, /*#__PURE__*/ $am6gm$createElement($am6gm$Content, $am6gm$babelruntimehelpersesmextends({\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open),\n role: \"dialog\",\n id: context.contentId\n }, popperScope, contentProps, {\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin']: 'var(--radix-popper-transform-origin)'\n }\n }))));\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$CLOSE_NAME = 'PopoverClose';\nconst $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const { __scopePopover: __scopePopover , ...closeProps } = props;\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CLOSE_NAME, __scopePopover);\n return /*#__PURE__*/ $am6gm$createElement($am6gm$Primitive.button, $am6gm$babelruntimehelpersesmextends({\n type: \"button\"\n }, closeProps, {\n ref: forwardedRef,\n onClick: $am6gm$composeEventHandlers(props.onClick, ()=>context.onOpenChange(false)\n )\n }));\n});\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$d6ac43ebaa40d53e, {\n displayName: $cb5cc270b50c6fcd$var$CLOSE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$ARROW_NAME = 'PopoverArrow';\nconst $cb5cc270b50c6fcd$export$3152841115e061b2 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{\n const { __scopePopover: __scopePopover , ...arrowProps } = props;\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n return /*#__PURE__*/ $am6gm$createElement($am6gm$Arrow, $am6gm$babelruntimehelpersesmextends({}, popperScope, arrowProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$3152841115e061b2, {\n displayName: $cb5cc270b50c6fcd$var$ARROW_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ function $cb5cc270b50c6fcd$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 = $cb5cc270b50c6fcd$export$5b6b19405a83ff9d;\nconst $cb5cc270b50c6fcd$export$b688253958b8dfe7 = $cb5cc270b50c6fcd$export$96e5381f42521a79;\nconst $cb5cc270b50c6fcd$export$41fb9f06171c75f4 = $cb5cc270b50c6fcd$export$7dacb05d26466c3;\nconst $cb5cc270b50c6fcd$export$602eac185826482c = $cb5cc270b50c6fcd$export$dd679ffb4362d2d4;\nconst $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 = $cb5cc270b50c6fcd$export$d7e1f420b25549ff;\nconst $cb5cc270b50c6fcd$export$f39c2d165cd861fe = $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e;\nconst $cb5cc270b50c6fcd$export$21b07c8f274aebd5 = $cb5cc270b50c6fcd$export$3152841115e061b2;\n\n\n\n\nexport {$cb5cc270b50c6fcd$export$c8393c9e73286932 as createPopoverScope, $cb5cc270b50c6fcd$export$5b6b19405a83ff9d as Popover, $cb5cc270b50c6fcd$export$96e5381f42521a79 as PopoverAnchor, $cb5cc270b50c6fcd$export$7dacb05d26466c3 as PopoverTrigger, $cb5cc270b50c6fcd$export$dd679ffb4362d2d4 as PopoverPortal, $cb5cc270b50c6fcd$export$d7e1f420b25549ff as PopoverContent, $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e as PopoverClose, $cb5cc270b50c6fcd$export$3152841115e061b2 as PopoverArrow, $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 as Root, $cb5cc270b50c6fcd$export$b688253958b8dfe7 as Anchor, $cb5cc270b50c6fcd$export$41fb9f06171c75f4 as Trigger, $cb5cc270b50c6fcd$export$602eac185826482c as Portal, $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 as Content, $cb5cc270b50c6fcd$export$f39c2d165cd861fe as Close, $cb5cc270b50c6fcd$export$21b07c8f274aebd5 as Arrow};\n//# sourceMappingURL=index.module.js.map\n","import React from \"react\";\nimport { UIAppState } from \"../types\";\n\nexport const UIAppStateContext = React.createContext(null!);\nexport const useUIAppState = () => React.useContext(UIAppStateContext);\n","import { useState, useLayoutEffect } from \"react\";\nimport { useDevice, useExcalidrawContainer } from \"../components/App\";\nimport { useUIAppState } from \"../context/ui-appState\";\n\nexport const useCreatePortalContainer = (opts?: {\n className?: string;\n parentSelector?: string;\n}) => {\n const [div, setDiv] = useState(null);\n\n const device = useDevice();\n const { theme } = useUIAppState();\n\n const { container: excalidrawContainer } = useExcalidrawContainer();\n\n useLayoutEffect(() => {\n if (div) {\n div.className = \"\";\n div.classList.add(\"excalidraw\", ...(opts?.className?.split(/\\s+/) || []));\n div.classList.toggle(\"excalidraw--mobile\", device.editor.isMobile);\n div.classList.toggle(\"theme--dark\", theme === \"dark\");\n }\n }, [div, theme, device.editor.isMobile, opts?.className]);\n\n useLayoutEffect(() => {\n const container = opts?.parentSelector\n ? excalidrawContainer?.querySelector(opts.parentSelector)\n : document.body;\n\n if (!container) {\n return;\n }\n\n const div = document.createElement(\"div\");\n\n container.appendChild(div);\n\n setDiv(div);\n\n return () => {\n container.removeChild(div);\n };\n }, [excalidrawContainer, opts?.parentSelector]);\n\n return div;\n};\n","import { useEffect } from \"react\";\nimport { EVENT } from \"../constants\";\n\nexport function useOutsideClick(\n ref: React.RefObject,\n /** if performance is of concern, memoize the callback */\n callback: (event: Event) => void,\n /**\n * Optional callback which is called on every click.\n *\n * Should return `true` if click should be considered as inside the container,\n * and `false` if it falls outside and should call the `callback`.\n *\n * Returning `true` overrides the default behavior and `callback` won't be\n * called.\n *\n * Returning `undefined` will fallback to the default behavior.\n */\n isInside?: (\n event: Event & { target: HTMLElement },\n /** the element of the passed ref */\n container: T,\n ) => boolean | undefined,\n) {\n useEffect(() => {\n function onOutsideClick(event: Event) {\n const _event = event as Event & { target: T };\n\n if (!ref.current) {\n return;\n }\n\n const isInsideOverride = isInside?.(_event, ref.current);\n\n if (isInsideOverride === true) {\n return;\n } else if (isInsideOverride === false) {\n return callback(_event);\n }\n\n // clicked element is in the descenendant of the target container\n if (\n ref.current.contains(_event.target) ||\n // target is detached from DOM (happens when the element is removed\n // on a pointerup event fired *before* this handler's pointerup is\n // dispatched)\n !document.documentElement.contains(_event.target)\n ) {\n return;\n }\n\n const isClickOnRadixPortal =\n _event.target.closest(\"[data-radix-portal]\") ||\n // when radix popup is in \"modal\" mode, it disables pointer events on\n // the `body` element, so the target element is going to be the `html`\n // (note: this won't work if we selectively re-enable pointer events on\n // specific elements as we do with navbar or excalidraw UI elements)\n (_event.target === document.documentElement &&\n document.body.style.pointerEvents === \"none\");\n\n // if clicking on radix portal, assume it's a popup that\n // should be considered as part of the UI. Obviously this is a terrible\n // hack you can end up click on radix popups that outside the tree,\n // but it works for most cases and the downside is minimal for now\n if (isClickOnRadixPortal) {\n return;\n }\n\n // clicking on a container that ignores outside clicks\n if (_event.target.closest(\"[data-prevent-outside-click]\")) {\n return;\n }\n\n callback(_event);\n }\n\n // note: don't use `click` because it often reports incorrect `event.target`\n document.addEventListener(EVENT.POINTER_DOWN, onOutsideClick);\n document.addEventListener(EVENT.TOUCH_START, onOutsideClick);\n\n return () => {\n document.removeEventListener(EVENT.POINTER_DOWN, onOutsideClick);\n document.removeEventListener(EVENT.TOUCH_START, onOutsideClick);\n };\n }, [ref, callback, isInside]);\n}\n","import { useRef } from \"react\";\n\nexport const useStable = >(value: T) => {\n const ref = useRef(value);\n Object.assign(ref.current, value);\n return ref.current;\n};\n","import { atom } from \"jotai\";\nimport { useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { rgbToHex } from \"../colors\";\nimport { EVENT } from \"../constants\";\nimport { useUIAppState } from \"../context/ui-appState\";\nimport { useCreatePortalContainer } from \"../hooks/useCreatePortalContainer\";\nimport { useOutsideClick } from \"../hooks/useOutsideClick\";\nimport { KEYS } from \"../keys\";\nimport { getSelectedElements } from \"../scene\";\nimport { useApp, useExcalidrawContainer, useExcalidrawElements } from \"./App\";\nimport { useStable } from \"../hooks/useStable\";\n\nimport \"./EyeDropper.scss\";\nimport { ColorPickerType } from \"./ColorPicker/colorPickerUtils\";\nimport { ExcalidrawElement } from \"../element/types\";\n\nexport type EyeDropperProperties = {\n keepOpenOnAlt: boolean;\n swapPreviewOnAlt?: boolean;\n /** called when user picks color (on pointerup) */\n onSelect: (color: string, event: PointerEvent) => void;\n /**\n * property of selected elements to update live when alt-dragging.\n * Supply `null` if not applicable (e.g. updating the canvas bg instead of\n * elements)\n **/\n colorPickerType: ColorPickerType;\n};\n\nexport const activeEyeDropperAtom = atom(null);\n\nexport const EyeDropper: React.FC<{\n onCancel: () => void;\n onSelect: EyeDropperProperties[\"onSelect\"];\n /** called when color changes, on pointerdown for preview */\n onChange: (\n type: ColorPickerType,\n color: string,\n selectedElements: ExcalidrawElement[],\n event: { altKey: boolean },\n ) => void;\n colorPickerType: EyeDropperProperties[\"colorPickerType\"];\n}> = ({ onCancel, onChange, onSelect, colorPickerType }) => {\n const eyeDropperContainer = useCreatePortalContainer({\n className: \"excalidraw-eye-dropper-backdrop\",\n parentSelector: \".excalidraw-eye-dropper-container\",\n });\n const appState = useUIAppState();\n const elements = useExcalidrawElements();\n const app = useApp();\n\n const selectedElements = getSelectedElements(elements, appState);\n\n const stableProps = useStable({\n app,\n onCancel,\n onChange,\n onSelect,\n selectedElements,\n });\n\n const { container: excalidrawContainer } = useExcalidrawContainer();\n\n useEffect(() => {\n const colorPreviewDiv = ref.current;\n\n if (!colorPreviewDiv || !app.canvas || !eyeDropperContainer) {\n return;\n }\n\n let isHoldingPointerDown = false;\n\n const ctx = app.canvas.getContext(\"2d\")!;\n\n const getCurrentColor = ({\n clientX,\n clientY,\n }: {\n clientX: number;\n clientY: number;\n }) => {\n const pixel = ctx.getImageData(\n (clientX - appState.offsetLeft) * window.devicePixelRatio,\n (clientY - appState.offsetTop) * window.devicePixelRatio,\n 1,\n 1,\n ).data;\n\n return rgbToHex(pixel[0], pixel[1], pixel[2]);\n };\n\n const mouseMoveListener = ({\n clientX,\n clientY,\n altKey,\n }: {\n clientX: number;\n clientY: number;\n altKey: boolean;\n }) => {\n // FIXME swap offset when the preview gets outside viewport\n colorPreviewDiv.style.top = `${clientY + 20}px`;\n colorPreviewDiv.style.left = `${clientX + 20}px`;\n\n const currentColor = getCurrentColor({ clientX, clientY });\n\n if (isHoldingPointerDown) {\n stableProps.onChange(\n colorPickerType,\n currentColor,\n stableProps.selectedElements,\n { altKey },\n );\n }\n\n colorPreviewDiv.style.background = currentColor;\n };\n\n const onCancel = () => {\n stableProps.onCancel();\n };\n\n const onSelect: Required[\"onSelect\"] = (\n color,\n event,\n ) => {\n stableProps.onSelect(color, event);\n };\n\n const pointerDownListener = (event: PointerEvent) => {\n isHoldingPointerDown = true;\n // NOTE we can't event.preventDefault() as that would stop\n // pointermove events\n event.stopImmediatePropagation();\n };\n\n const pointerUpListener = (event: PointerEvent) => {\n isHoldingPointerDown = false;\n\n // since we're not preventing default on pointerdown, the focus would\n // goes back to `body` so we want to refocus the editor container instead\n excalidrawContainer?.focus();\n\n event.stopImmediatePropagation();\n event.preventDefault();\n\n onSelect(getCurrentColor(event), event);\n };\n\n const keyDownListener = (event: KeyboardEvent) => {\n if (event.key === KEYS.ESCAPE) {\n event.preventDefault();\n event.stopImmediatePropagation();\n onCancel();\n }\n };\n\n // -------------------------------------------------------------------------\n\n eyeDropperContainer.tabIndex = -1;\n // focus container so we can listen on keydown events\n eyeDropperContainer.focus();\n\n // init color preview else it would show only after the first mouse move\n mouseMoveListener({\n clientX: stableProps.app.lastViewportPosition.x,\n clientY: stableProps.app.lastViewportPosition.y,\n altKey: false,\n });\n\n eyeDropperContainer.addEventListener(EVENT.KEYDOWN, keyDownListener);\n eyeDropperContainer.addEventListener(\n EVENT.POINTER_DOWN,\n pointerDownListener,\n );\n eyeDropperContainer.addEventListener(EVENT.POINTER_UP, pointerUpListener);\n window.addEventListener(\"pointermove\", mouseMoveListener, {\n passive: true,\n });\n window.addEventListener(EVENT.BLUR, onCancel);\n\n return () => {\n isHoldingPointerDown = false;\n eyeDropperContainer.removeEventListener(EVENT.KEYDOWN, keyDownListener);\n eyeDropperContainer.removeEventListener(\n EVENT.POINTER_DOWN,\n pointerDownListener,\n );\n eyeDropperContainer.removeEventListener(\n EVENT.POINTER_UP,\n pointerUpListener,\n );\n window.removeEventListener(\"pointermove\", mouseMoveListener);\n window.removeEventListener(EVENT.BLUR, onCancel);\n };\n }, [\n stableProps,\n app.canvas,\n eyeDropperContainer,\n colorPickerType,\n excalidrawContainer,\n appState.offsetLeft,\n appState.offsetTop,\n ]);\n\n const ref = useRef(null);\n\n useOutsideClick(\n ref,\n () => {\n onCancel();\n },\n (event) => {\n if (\n event.target.closest(\n \".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop\",\n )\n ) {\n return true;\n }\n // consider all other clicks as outside\n return false;\n },\n );\n\n if (!eyeDropperContainer) {\n return null;\n }\n\n return createPortal(\n
    ,\n eyeDropperContainer,\n );\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { getColor } from \"./ColorPicker\";\nimport { useAtom } from \"jotai\";\nimport {\n ColorPickerType,\n activeColorPickerSectionAtom,\n} from \"./colorPickerUtils\";\nimport { eyeDropperIcon } from \"../icons\";\nimport { jotaiScope } from \"../../jotai\";\nimport { KEYS } from \"../../keys\";\nimport { activeEyeDropperAtom } from \"../EyeDropper\";\nimport clsx from \"clsx\";\nimport { t } from \"../../i18n\";\nimport { useDevice } from \"../App\";\nimport { getShortcutKey } from \"../../utils\";\n\ninterface ColorInputProps {\n color: string;\n onChange: (color: string) => void;\n label: string;\n colorPickerType: ColorPickerType;\n}\n\nexport const ColorInput = ({\n color,\n onChange,\n label,\n colorPickerType,\n}: ColorInputProps) => {\n const device = useDevice();\n const [innerValue, setInnerValue] = useState(color);\n const [activeSection, setActiveColorPickerSection] = useAtom(\n activeColorPickerSectionAtom,\n );\n\n useEffect(() => {\n setInnerValue(color);\n }, [color]);\n\n const changeColor = useCallback(\n (inputValue: string) => {\n const value = inputValue.toLowerCase();\n const color = getColor(value);\n\n if (color) {\n onChange(color);\n }\n setInnerValue(value);\n },\n [onChange],\n );\n\n const inputRef = useRef(null);\n const eyeDropperTriggerRef = useRef(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, [activeSection]);\n\n const [eyeDropperState, setEyeDropperState] = useAtom(\n activeEyeDropperAtom,\n jotaiScope,\n );\n\n useEffect(() => {\n return () => {\n setEyeDropperState(null);\n };\n }, [setEyeDropperState]);\n\n return (\n
    \n
    #
    \n {\n changeColor(event.target.value);\n }}\n value={(innerValue || \"\").replace(/^#/, \"\")}\n onBlur={() => {\n setInnerValue(color);\n }}\n tabIndex={-1}\n onFocus={() => setActiveColorPickerSection(\"hex\")}\n onKeyDown={(event) => {\n if (event.key === KEYS.TAB) {\n return;\n } else if (event.key === KEYS.ESCAPE) {\n eyeDropperTriggerRef.current?.focus();\n }\n event.stopPropagation();\n }}\n />\n {/* TODO reenable on mobile with a better UX */}\n {!device.editor.isMobile && (\n <>\n \n \n setEyeDropperState((s) =>\n s\n ? null\n : {\n keepOpenOnAlt: false,\n onSelect: (color) => onChange(color),\n colorPickerType,\n },\n )\n }\n title={`${t(\n \"labels.eyeDropper\",\n )} — ${KEYS.I.toLocaleUpperCase()} or ${getShortcutKey(\"Alt\")} `}\n >\n {eyeDropperIcon}\n
    \n \n )}\n
    \n );\n};\n","import { isInteractive, isTransparent, isWritableElement } from \"../../utils\";\nimport { ExcalidrawElement } from \"../../element/types\";\nimport { AppState } from \"../../types\";\nimport { TopPicks } from \"./TopPicks\";\nimport { Picker } from \"./Picker\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { useAtom } from \"jotai\";\nimport {\n activeColorPickerSectionAtom,\n ColorPickerType,\n} from \"./colorPickerUtils\";\nimport { useDevice, useExcalidrawContainer } from \"../App\";\nimport { ColorTuple, COLOR_PALETTE, ColorPaletteCustom } from \"../../colors\";\nimport PickerHeading from \"./PickerHeading\";\nimport { t } from \"../../i18n\";\nimport clsx from \"clsx\";\nimport { jotaiScope } from \"../../jotai\";\nimport { ColorInput } from \"./ColorInput\";\nimport { useRef } from \"react\";\nimport { activeEyeDropperAtom } from \"../EyeDropper\";\n\nimport \"./ColorPicker.scss\";\n\nconst isValidColor = (color: string) => {\n const style = new Option().style;\n style.color = color;\n return !!style.color;\n};\n\nexport const getColor = (color: string): string | null => {\n if (isTransparent(color)) {\n return color;\n }\n\n // testing for `#` first fixes a bug on Electron (more specfically, an\n // Obsidian popout window), where a hex color without `#` is (incorrectly)\n // considered valid\n return isValidColor(`#${color}`)\n ? `#${color}`\n : isValidColor(color)\n ? color\n : null;\n};\n\ninterface ColorPickerProps {\n type: ColorPickerType;\n color: string;\n onChange: (color: string) => void;\n label: string;\n elements: readonly ExcalidrawElement[];\n appState: AppState;\n palette?: ColorPaletteCustom | null;\n topPicks?: ColorTuple;\n updateData: (formData?: any) => void;\n}\n\nconst ColorPickerPopupContent = ({\n type,\n color,\n onChange,\n label,\n elements,\n palette = COLOR_PALETTE,\n updateData,\n}: Pick<\n ColorPickerProps,\n | \"type\"\n | \"color\"\n | \"onChange\"\n | \"label\"\n | \"elements\"\n | \"palette\"\n | \"updateData\"\n>) => {\n const [, setActiveColorPickerSection] = useAtom(activeColorPickerSectionAtom);\n\n const [eyeDropperState, setEyeDropperState] = useAtom(\n activeEyeDropperAtom,\n jotaiScope,\n );\n\n const { container } = useExcalidrawContainer();\n const device = useDevice();\n\n const colorInputJSX = (\n
    \n {t(\"colorPicker.hexCode\")}\n {\n onChange(color);\n }}\n colorPickerType={type}\n />\n
    \n );\n const popoverRef = useRef(null);\n\n const focusPickerContent = () => {\n popoverRef.current\n ?.querySelector(\".color-picker-content\")\n ?.focus();\n };\n\n return (\n \n {\n focusPickerContent();\n event.preventDefault();\n }}\n onPointerDownOutside={(event) => {\n if (eyeDropperState) {\n // prevent from closing if we click outside the popover\n // while eyedropping (e.g. click when clicking the sidebar;\n // the eye-dropper-backdrop is prevented downstream)\n event.preventDefault();\n }\n }}\n onCloseAutoFocus={(e) => {\n e.stopPropagation();\n // prevents focusing the trigger\n e.preventDefault();\n\n // return focus to excalidraw container unless\n // user focuses an interactive element, such as a button, or\n // enters the text editor by clicking on canvas with the text tool\n if (container && !isInteractive(document.activeElement)) {\n container.focus();\n }\n\n updateData({ openPopup: null });\n setActiveColorPickerSection(null);\n }}\n side={\n device.editor.isMobile && !device.viewport.isLandscape\n ? \"bottom\"\n : \"right\"\n }\n align={\n device.editor.isMobile && !device.viewport.isLandscape\n ? \"center\"\n : \"start\"\n }\n alignOffset={-16}\n sideOffset={20}\n style={{\n zIndex: \"var(--zIndex-layerUI)\",\n backgroundColor: \"var(--popup-bg-color)\",\n maxWidth: \"208px\",\n maxHeight: window.innerHeight,\n padding: \"12px\",\n borderRadius: \"8px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n boxShadow:\n \"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)\",\n }}\n >\n {palette ? (\n {\n onChange(changedColor);\n }}\n onEyeDropperToggle={(force) => {\n setEyeDropperState((state) => {\n if (force) {\n state = state || {\n keepOpenOnAlt: true,\n onSelect: onChange,\n colorPickerType: type,\n };\n state.keepOpenOnAlt = true;\n return state;\n }\n\n return force === false || state\n ? null\n : {\n keepOpenOnAlt: false,\n onSelect: onChange,\n colorPickerType: type,\n };\n });\n }}\n onEscape={(event) => {\n if (eyeDropperState) {\n setEyeDropperState(null);\n } else if (isWritableElement(event.target)) {\n focusPickerContent();\n } else {\n updateData({ openPopup: null });\n }\n }}\n label={label}\n type={type}\n elements={elements}\n updateData={updateData}\n >\n {colorInputJSX}\n \n ) : (\n colorInputJSX\n )}\n \n \n \n );\n};\n\nconst ColorPickerTrigger = ({\n label,\n color,\n type,\n}: {\n color: string;\n label: string;\n type: ColorPickerType;\n}) => {\n return (\n \n
    \n \n );\n};\n\nexport const ColorPicker = ({\n type,\n color,\n onChange,\n label,\n elements,\n palette = COLOR_PALETTE,\n topPicks,\n updateData,\n appState,\n}: ColorPickerProps) => {\n return (\n
    \n
    \n \n \n {\n updateData({ openPopup: open ? type : null });\n }}\n >\n {/* serves as an active color indicator as well */}\n \n {/* popup content */}\n {appState.openPopup === type && (\n \n )}\n \n
    \n
    \n );\n};\n","import React, { useLayoutEffect, useRef, useEffect } from \"react\";\nimport \"./Popover.scss\";\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { queryFocusableElements } from \"../utils\";\nimport { KEYS } from \"../keys\";\n\ntype Props = {\n top?: number;\n left?: number;\n children?: React.ReactNode;\n onCloseRequest?(event: PointerEvent): void;\n fitInViewport?: boolean;\n offsetLeft?: number;\n offsetTop?: number;\n viewportWidth?: number;\n viewportHeight?: number;\n};\n\nexport const Popover = ({\n children,\n left,\n top,\n onCloseRequest,\n fitInViewport = false,\n offsetLeft = 0,\n offsetTop = 0,\n viewportWidth = window.innerWidth,\n viewportHeight = window.innerHeight,\n}: Props) => {\n const popoverRef = useRef(null);\n\n useEffect(() => {\n const container = popoverRef.current;\n\n if (!container) {\n return;\n }\n\n // focus popover only if the caller didn't focus on something else nested\n // within the popover, which should take precedence. Fixes cases\n // like color picker listening to keydown events on containers nested\n // in the popover.\n if (!container.contains(document.activeElement)) {\n container.focus();\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === KEYS.TAB) {\n const focusableElements = queryFocusableElements(container);\n const { activeElement } = document;\n const currentIndex = focusableElements.findIndex(\n (element) => element === activeElement,\n );\n\n if (activeElement === container) {\n if (event.shiftKey) {\n focusableElements[focusableElements.length - 1]?.focus();\n } else {\n focusableElements[0].focus();\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n } else if (currentIndex === 0 && event.shiftKey) {\n focusableElements[focusableElements.length - 1]?.focus();\n event.preventDefault();\n event.stopImmediatePropagation();\n } else if (\n currentIndex === focusableElements.length - 1 &&\n !event.shiftKey\n ) {\n focusableElements[0]?.focus();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n };\n\n container.addEventListener(\"keydown\", handleKeyDown);\n\n return () => container.removeEventListener(\"keydown\", handleKeyDown);\n }, []);\n\n const lastInitializedPosRef = useRef<{ top: number; left: number } | null>(\n null,\n );\n\n // ensure the popover doesn't overflow the viewport\n useLayoutEffect(() => {\n if (fitInViewport && popoverRef.current && top != null && left != null) {\n const container = popoverRef.current;\n const { width, height } = container.getBoundingClientRect();\n\n // hack for StrictMode so this effect only runs once for\n // the same top/left position, otherwise\n // we'd potentically reposition twice (once for viewport overflow)\n // and once for top/left position afterwards\n if (\n lastInitializedPosRef.current?.top === top &&\n lastInitializedPosRef.current?.left === left\n ) {\n return;\n }\n lastInitializedPosRef.current = { top, left };\n\n if (width >= viewportWidth) {\n container.style.width = `${viewportWidth}px`;\n container.style.left = \"0px\";\n container.style.overflowX = \"scroll\";\n } else if (left + width - offsetLeft > viewportWidth) {\n container.style.left = `${viewportWidth - width - 10}px`;\n } else {\n container.style.left = `${left}px`;\n }\n\n if (height >= viewportHeight) {\n container.style.height = `${viewportHeight - 20}px`;\n container.style.top = \"10px\";\n container.style.overflowY = \"scroll\";\n } else if (top + height - offsetTop > viewportHeight) {\n container.style.top = `${viewportHeight - height}px`;\n } else {\n container.style.top = `${top}px`;\n }\n }\n }, [\n top,\n left,\n fitInViewport,\n viewportWidth,\n viewportHeight,\n offsetLeft,\n offsetTop,\n ]);\n\n useEffect(() => {\n if (onCloseRequest) {\n const handler = (event: PointerEvent) => {\n if (!popoverRef.current?.contains(event.target as Node)) {\n unstable_batchedUpdates(() => onCloseRequest(event));\n }\n };\n document.addEventListener(\"pointerdown\", handler, false);\n return () => document.removeEventListener(\"pointerdown\", handler, false);\n }\n }, [onCloseRequest]);\n\n return (\n
    \n {children}\n
    \n );\n};\n","import React from \"react\";\nimport { Popover } from \"./Popover\";\n\nimport \"./IconPicker.scss\";\nimport { isArrowKey, KEYS } from \"../keys\";\nimport { getLanguage } from \"../i18n\";\nimport clsx from \"clsx\";\n\nfunction Picker({\n options,\n value,\n label,\n onChange,\n onClose,\n}: {\n label: string;\n value: T;\n options: {\n value: T;\n text: string;\n icon: JSX.Element;\n keyBinding: string | null;\n }[];\n onChange: (value: T) => void;\n onClose: () => void;\n}) {\n const rFirstItem = React.useRef();\n const rActiveItem = React.useRef();\n const rGallery = React.useRef(null);\n\n React.useEffect(() => {\n // After the component is first mounted focus on first input\n if (rActiveItem.current) {\n rActiveItem.current.focus();\n } else if (rGallery.current) {\n rGallery.current.focus();\n }\n }, []);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const pressedOption = options.find(\n (option) => option.keyBinding === event.key.toLowerCase(),\n )!;\n\n if (!(event.metaKey || event.altKey || event.ctrlKey) && pressedOption) {\n // Keybinding navigation\n const index = options.indexOf(pressedOption);\n (rGallery!.current!.children![index] as any).focus();\n event.preventDefault();\n } else if (event.key === KEYS.TAB) {\n // Tab navigation cycle through options. If the user tabs\n // away from the picker, close the picker. We need to use\n // a timeout here to let the stack clear before checking.\n setTimeout(() => {\n const active = rActiveItem.current;\n const docActive = document.activeElement;\n if (active !== docActive) {\n onClose();\n }\n }, 0);\n } else if (isArrowKey(event.key)) {\n // Arrow navigation\n const { activeElement } = document;\n const isRTL = getLanguage().rtl;\n const index = Array.prototype.indexOf.call(\n rGallery!.current!.children,\n activeElement,\n );\n if (index !== -1) {\n const length = options.length;\n let nextIndex = index;\n\n switch (event.key) {\n // Select the next option\n case isRTL ? KEYS.ARROW_LEFT : KEYS.ARROW_RIGHT:\n case KEYS.ARROW_DOWN: {\n nextIndex = (index + 1) % length;\n break;\n }\n // Select the previous option\n case isRTL ? KEYS.ARROW_RIGHT : KEYS.ARROW_LEFT:\n case KEYS.ARROW_UP: {\n nextIndex = (length + index - 1) % length;\n break;\n }\n }\n\n (rGallery.current!.children![nextIndex] as any).focus();\n }\n event.preventDefault();\n } else if (event.key === KEYS.ESCAPE || event.key === KEYS.ENTER) {\n // Close on escape or enter\n event.preventDefault();\n onClose();\n }\n event.nativeEvent.stopImmediatePropagation();\n event.stopPropagation();\n };\n\n return (\n \n
    \n {options.map((option, i) => (\n {\n (event.currentTarget as HTMLButtonElement).focus();\n onChange(option.value);\n }}\n title={`${option.text} ${\n option.keyBinding && `— ${option.keyBinding.toUpperCase()}`\n }`}\n aria-label={option.text || \"none\"}\n aria-keyshortcuts={option.keyBinding || undefined}\n key={option.text}\n ref={(el) => {\n if (el && i === 0) {\n rFirstItem.current = el;\n }\n if (el && option.value === value) {\n rActiveItem.current = el;\n }\n }}\n onFocus={() => {\n onChange(option.value);\n }}\n >\n {option.icon}\n {option.keyBinding && (\n {option.keyBinding}\n )}\n \n ))}\n
    \n
    \n );\n}\n\nexport function IconPicker({\n value,\n label,\n options,\n onChange,\n group = \"\",\n}: {\n label: string;\n value: T;\n options: readonly {\n value: T;\n text: string;\n icon: JSX.Element;\n keyBinding: string | null;\n showInPicker?: boolean;\n }[];\n onChange: (value: T) => void;\n group?: string;\n}) {\n const [isActive, setActive] = React.useState(false);\n const rPickerButton = React.useRef(null);\n const isRTL = getLanguage().rtl;\n\n return (\n
    \n setActive(!isActive)}\n ref={rPickerButton}\n >\n {options.find((option) => option.value === value)?.icon}\n \n \n {isActive ? (\n <>\n \n event.target !== rPickerButton.current && setActive(false)\n }\n {...(isRTL ? { right: 5.5 } : { left: -5.5 })}\n >\n opt.showInPicker !== false)}\n value={value}\n label={label}\n onChange={onChange}\n onClose={() => {\n setActive(false);\n rPickerButton.current?.focus();\n }}\n />\n \n
    \n \n ) : null}\n \n
    \n );\n}\n","import { AppClassProperties, AppState, Primitive } from \"../types\";\nimport {\n DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE,\n DEFAULT_ELEMENT_BACKGROUND_PICKS,\n DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,\n DEFAULT_ELEMENT_STROKE_PICKS,\n} from \"../colors\";\nimport { trackEvent } from \"../analytics\";\nimport { ButtonIconSelect } from \"../components/ButtonIconSelect\";\nimport { ColorPicker } from \"../components/ColorPicker/ColorPicker\";\nimport { IconPicker } from \"../components/IconPicker\";\n// TODO barnabasmolnar/editor-redesign\n// TextAlignTopIcon, TextAlignBottomIcon,TextAlignMiddleIcon,\n// ArrowHead icons\nimport {\n ArrowheadArrowIcon,\n ArrowheadBarIcon,\n ArrowheadCircleIcon,\n ArrowheadTriangleIcon,\n ArrowheadNoneIcon,\n StrokeStyleDashedIcon,\n StrokeStyleDottedIcon,\n TextAlignTopIcon,\n TextAlignBottomIcon,\n TextAlignMiddleIcon,\n FillHachureIcon,\n FillCrossHatchIcon,\n FillSolidIcon,\n SloppinessArchitectIcon,\n SloppinessArtistIcon,\n SloppinessCartoonistIcon,\n StrokeWidthBaseIcon,\n StrokeWidthBoldIcon,\n StrokeWidthExtraBoldIcon,\n FontSizeSmallIcon,\n FontSizeMediumIcon,\n FontSizeLargeIcon,\n FontSizeExtraLargeIcon,\n EdgeSharpIcon,\n EdgeRoundIcon,\n FreedrawIcon,\n FontFamilyNormalIcon,\n FontFamilyCodeIcon,\n TextAlignLeftIcon,\n TextAlignCenterIcon,\n TextAlignRightIcon,\n FillZigZagIcon,\n ArrowheadTriangleOutlineIcon,\n ArrowheadCircleOutlineIcon,\n ArrowheadDiamondIcon,\n ArrowheadDiamondOutlineIcon,\n} from \"../components/icons\";\nimport {\n DEFAULT_FONT_FAMILY,\n DEFAULT_FONT_SIZE,\n FONT_FAMILY,\n ROUNDNESS,\n STROKE_WIDTH,\n VERTICAL_ALIGN,\n} from \"../constants\";\nimport {\n getNonDeletedElements,\n isTextElement,\n redrawTextBoundingBox,\n} from \"../element\";\nimport { mutateElement, newElementWith } from \"../element/mutateElement\";\nimport {\n getBoundTextElement,\n getDefaultLineHeight,\n} from \"../element/textElement\";\nimport {\n isBoundToContainer,\n isLinearElement,\n isUsingAdaptiveRadius,\n} from \"../element/typeChecks\";\nimport {\n Arrowhead,\n ExcalidrawElement,\n ExcalidrawLinearElement,\n ExcalidrawTextElement,\n FontFamilyValues,\n TextAlign,\n VerticalAlign,\n} from \"../element/types\";\nimport { getLanguage, t } from \"../i18n\";\nimport { KEYS } from \"../keys\";\nimport { randomInteger } from \"../random\";\nimport {\n canHaveArrowheads,\n getCommonAttributeOfSelectedElements,\n getSelectedElements,\n getTargetElements,\n isSomeElementSelected,\n} from \"../scene\";\nimport { hasStrokeColor } from \"../scene/comparisons\";\nimport { arrayToMap, getShortcutKey } from \"../utils\";\nimport { register } from \"./register\";\n\nconst FONT_SIZE_RELATIVE_INCREASE_STEP = 0.1;\n\nexport const changeProperty = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n callback: (element: ExcalidrawElement) => ExcalidrawElement,\n includeBoundText = false,\n) => {\n const selectedElementIds = arrayToMap(\n getSelectedElements(elements, appState, {\n includeBoundTextElement: includeBoundText,\n }),\n );\n\n return elements.map((element) => {\n if (\n selectedElementIds.get(element.id) ||\n element.id === appState.editingElement?.id\n ) {\n return callback(element);\n }\n return element;\n });\n};\n\nexport const getFormValue = function (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n getAttribute: (element: ExcalidrawElement) => T,\n isRelevantElement: true | ((element: ExcalidrawElement) => boolean),\n defaultValue: T | ((isSomeElementSelected: boolean) => T),\n): T {\n const editingElement = appState.editingElement;\n const nonDeletedElements = getNonDeletedElements(elements);\n\n let ret: T | null = null;\n\n if (editingElement) {\n ret = getAttribute(editingElement);\n }\n\n if (!ret) {\n const hasSelection = isSomeElementSelected(nonDeletedElements, appState);\n\n if (hasSelection) {\n ret =\n getCommonAttributeOfSelectedElements(\n isRelevantElement === true\n ? nonDeletedElements\n : nonDeletedElements.filter((el) => isRelevantElement(el)),\n appState,\n getAttribute,\n ) ??\n (typeof defaultValue === \"function\"\n ? defaultValue(true)\n : defaultValue);\n } else {\n ret =\n typeof defaultValue === \"function\" ? defaultValue(false) : defaultValue;\n }\n }\n\n return ret;\n};\n\nconst offsetElementAfterFontResize = (\n prevElement: ExcalidrawTextElement,\n nextElement: ExcalidrawTextElement,\n) => {\n if (isBoundToContainer(nextElement)) {\n return nextElement;\n }\n return mutateElement(\n nextElement,\n {\n x:\n prevElement.textAlign === \"left\"\n ? prevElement.x\n : prevElement.x +\n (prevElement.width - nextElement.width) /\n (prevElement.textAlign === \"center\" ? 2 : 1),\n // centering vertically is non-standard, but for Excalidraw I think\n // it makes sense\n y: prevElement.y + (prevElement.height - nextElement.height) / 2,\n },\n false,\n );\n};\n\nconst changeFontSize = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n app: AppClassProperties,\n getNewFontSize: (element: ExcalidrawTextElement) => number,\n fallbackValue?: ExcalidrawTextElement[\"fontSize\"],\n) => {\n const newFontSizes = new Set();\n\n return {\n elements: changeProperty(\n elements,\n appState,\n (oldElement) => {\n if (isTextElement(oldElement)) {\n const newFontSize = getNewFontSize(oldElement);\n newFontSizes.add(newFontSize);\n\n let newElement: ExcalidrawTextElement = newElementWith(oldElement, {\n fontSize: newFontSize,\n });\n redrawTextBoundingBox(\n newElement,\n app.scene.getContainerElement(oldElement),\n app.scene.getNonDeletedElementsMap(),\n );\n\n newElement = offsetElementAfterFontResize(oldElement, newElement);\n\n return newElement;\n }\n\n return oldElement;\n },\n true,\n ),\n appState: {\n ...appState,\n // update state only if we've set all select text elements to\n // the same font size\n currentItemFontSize:\n newFontSizes.size === 1\n ? [...newFontSizes][0]\n : fallbackValue ?? appState.currentItemFontSize,\n },\n commitToHistory: true,\n };\n};\n\n// -----------------------------------------------------------------------------\n\nexport const actionChangeStrokeColor = register({\n name: \"changeStrokeColor\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n ...(value.currentItemStrokeColor && {\n elements: changeProperty(\n elements,\n appState,\n (el) => {\n return hasStrokeColor(el.type)\n ? newElementWith(el, {\n strokeColor: value.currentItemStrokeColor,\n })\n : el;\n },\n true,\n ),\n }),\n appState: {\n ...appState,\n ...value,\n },\n commitToHistory: !!value.currentItemStrokeColor,\n };\n },\n PanelComponent: ({ elements, appState, updateData, appProps }) => (\n <>\n

    {t(\"labels.stroke\")}

    \n element.strokeColor,\n true,\n appState.currentItemStrokeColor,\n )}\n onChange={(color) => updateData({ currentItemStrokeColor: color })}\n elements={elements}\n appState={appState}\n updateData={updateData}\n />\n \n ),\n});\n\nexport const actionChangeBackgroundColor = register({\n name: \"changeBackgroundColor\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n ...(value.currentItemBackgroundColor && {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n backgroundColor: value.currentItemBackgroundColor,\n }),\n ),\n }),\n appState: {\n ...appState,\n ...value,\n },\n commitToHistory: !!value.currentItemBackgroundColor,\n };\n },\n PanelComponent: ({ elements, appState, updateData, appProps }) => (\n <>\n

    {t(\"labels.background\")}

    \n element.backgroundColor,\n true,\n appState.currentItemBackgroundColor,\n )}\n onChange={(color) => updateData({ currentItemBackgroundColor: color })}\n elements={elements}\n appState={appState}\n updateData={updateData}\n />\n \n ),\n});\n\nexport const actionChangeFillStyle = register({\n name: \"changeFillStyle\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n trackEvent(\n \"element\",\n \"changeFillStyle\",\n `${value} (${app.device.editor.isMobile ? \"mobile\" : \"desktop\"})`,\n );\n return {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n fillStyle: value,\n }),\n ),\n appState: { ...appState, currentItemFillStyle: value },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => {\n const selectedElements = getSelectedElements(elements, appState);\n const allElementsZigZag =\n selectedElements.length > 0 &&\n selectedElements.every((el) => el.fillStyle === \"zigzag\");\n\n return (\n
    \n {t(\"labels.fill\")}\n element.fillStyle,\n (element) => element.hasOwnProperty(\"fillStyle\"),\n (hasSelection) =>\n hasSelection ? null : appState.currentItemFillStyle,\n )}\n onClick={(value, event) => {\n const nextValue =\n event.altKey &&\n value === \"hachure\" &&\n selectedElements.every((el) => el.fillStyle === \"hachure\")\n ? \"zigzag\"\n : value;\n\n updateData(nextValue);\n }}\n />\n
    \n );\n },\n});\n\nexport const actionChangeStrokeWidth = register({\n name: \"changeStrokeWidth\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n strokeWidth: value,\n }),\n ),\n appState: { ...appState, currentItemStrokeWidth: value },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => (\n
    \n {t(\"labels.strokeWidth\")}\n element.strokeWidth,\n (element) => element.hasOwnProperty(\"strokeWidth\"),\n (hasSelection) =>\n hasSelection ? null : appState.currentItemStrokeWidth,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n ),\n});\n\nexport const actionChangeSloppiness = register({\n name: \"changeSloppiness\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n seed: randomInteger(),\n roughness: value,\n }),\n ),\n appState: { ...appState, currentItemRoughness: value },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => (\n
    \n {t(\"labels.sloppiness\")}\n element.roughness,\n (element) => element.hasOwnProperty(\"roughness\"),\n (hasSelection) =>\n hasSelection ? null : appState.currentItemRoughness,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n ),\n});\n\nexport const actionChangeStrokeStyle = register({\n name: \"changeStrokeStyle\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n strokeStyle: value,\n }),\n ),\n appState: { ...appState, currentItemStrokeStyle: value },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => (\n
    \n {t(\"labels.strokeStyle\")}\n element.strokeStyle,\n (element) => element.hasOwnProperty(\"strokeStyle\"),\n (hasSelection) =>\n hasSelection ? null : appState.currentItemStrokeStyle,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n ),\n});\n\nexport const actionChangeOpacity = register({\n name: \"changeOpacity\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n elements: changeProperty(\n elements,\n appState,\n (el) =>\n newElementWith(el, {\n opacity: value,\n }),\n true,\n ),\n appState: { ...appState, currentItemOpacity: value },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => (\n \n ),\n});\n\nexport const actionChangeFontSize = register({\n name: \"changeFontSize\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n return changeFontSize(elements, appState, app, () => value, value);\n },\n PanelComponent: ({ elements, appState, updateData, app }) => (\n
    \n {t(\"labels.fontSize\")}\n {\n if (isTextElement(element)) {\n return element.fontSize;\n }\n const boundTextElement = getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n );\n if (boundTextElement) {\n return boundTextElement.fontSize;\n }\n return null;\n },\n (element) =>\n isTextElement(element) ||\n getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n ) !== null,\n (hasSelection) =>\n hasSelection\n ? null\n : appState.currentItemFontSize || DEFAULT_FONT_SIZE,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n ),\n});\n\nexport const actionDecreaseFontSize = register({\n name: \"decreaseFontSize\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n return changeFontSize(elements, appState, app, (element) =>\n Math.round(\n // get previous value before relative increase (doesn't work fully\n // due to rounding and float precision issues)\n (1 / (1 + FONT_SIZE_RELATIVE_INCREASE_STEP)) * element.fontSize,\n ),\n );\n },\n keyTest: (event) => {\n return (\n event[KEYS.CTRL_OR_CMD] &&\n event.shiftKey &&\n // KEYS.COMMA needed for MacOS\n (event.key === KEYS.CHEVRON_LEFT || event.key === KEYS.COMMA)\n );\n },\n});\n\nexport const actionIncreaseFontSize = register({\n name: \"increaseFontSize\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n return changeFontSize(elements, appState, app, (element) =>\n Math.round(element.fontSize * (1 + FONT_SIZE_RELATIVE_INCREASE_STEP)),\n );\n },\n keyTest: (event) => {\n return (\n event[KEYS.CTRL_OR_CMD] &&\n event.shiftKey &&\n // KEYS.PERIOD needed for MacOS\n (event.key === KEYS.CHEVRON_RIGHT || event.key === KEYS.PERIOD)\n );\n },\n});\n\nexport const actionChangeFontFamily = register({\n name: \"changeFontFamily\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n return {\n elements: changeProperty(\n elements,\n appState,\n (oldElement) => {\n if (isTextElement(oldElement)) {\n const newElement: ExcalidrawTextElement = newElementWith(\n oldElement,\n {\n fontFamily: value,\n lineHeight: getDefaultLineHeight(value),\n },\n );\n redrawTextBoundingBox(\n newElement,\n app.scene.getContainerElement(oldElement),\n app.scene.getNonDeletedElementsMap(),\n );\n return newElement;\n }\n\n return oldElement;\n },\n true,\n ),\n appState: {\n ...appState,\n currentItemFontFamily: value,\n },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData, app }) => {\n const options: {\n value: FontFamilyValues;\n text: string;\n icon: JSX.Element;\n testId: string;\n }[] = [\n {\n value: FONT_FAMILY.Virgil,\n text: t(\"labels.handDrawn\"),\n icon: FreedrawIcon,\n testId: \"font-family-virgil\",\n },\n {\n value: FONT_FAMILY.Helvetica,\n text: t(\"labels.normal\"),\n icon: FontFamilyNormalIcon,\n testId: \"font-family-normal\",\n },\n {\n value: FONT_FAMILY.Cascadia,\n text: t(\"labels.code\"),\n icon: FontFamilyCodeIcon,\n testId: \"font-family-code\",\n },\n ];\n\n return (\n
    \n {t(\"labels.fontFamily\")}\n \n group=\"font-family\"\n options={options}\n value={getFormValue(\n elements,\n appState,\n (element) => {\n if (isTextElement(element)) {\n return element.fontFamily;\n }\n const boundTextElement = getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n );\n if (boundTextElement) {\n return boundTextElement.fontFamily;\n }\n return null;\n },\n (element) =>\n isTextElement(element) ||\n getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n ) !== null,\n (hasSelection) =>\n hasSelection\n ? null\n : appState.currentItemFontFamily || DEFAULT_FONT_FAMILY,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n );\n },\n});\n\nexport const actionChangeTextAlign = register({\n name: \"changeTextAlign\",\n trackEvent: false,\n perform: (elements, appState, value, app) => {\n return {\n elements: changeProperty(\n elements,\n appState,\n (oldElement) => {\n if (isTextElement(oldElement)) {\n const newElement: ExcalidrawTextElement = newElementWith(\n oldElement,\n { textAlign: value },\n );\n redrawTextBoundingBox(\n newElement,\n app.scene.getContainerElement(oldElement),\n app.scene.getNonDeletedElementsMap(),\n );\n return newElement;\n }\n\n return oldElement;\n },\n true,\n ),\n appState: {\n ...appState,\n currentItemTextAlign: value,\n },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData, app }) => {\n const elementsMap = app.scene.getNonDeletedElementsMap();\n return (\n
    \n {t(\"labels.textAlign\")}\n \n group=\"text-align\"\n options={[\n {\n value: \"left\",\n text: t(\"labels.left\"),\n icon: TextAlignLeftIcon,\n testId: \"align-left\",\n },\n {\n value: \"center\",\n text: t(\"labels.center\"),\n icon: TextAlignCenterIcon,\n testId: \"align-horizontal-center\",\n },\n {\n value: \"right\",\n text: t(\"labels.right\"),\n icon: TextAlignRightIcon,\n testId: \"align-right\",\n },\n ]}\n value={getFormValue(\n elements,\n appState,\n (element) => {\n if (isTextElement(element)) {\n return element.textAlign;\n }\n const boundTextElement = getBoundTextElement(\n element,\n elementsMap,\n );\n if (boundTextElement) {\n return boundTextElement.textAlign;\n }\n return null;\n },\n (element) =>\n isTextElement(element) ||\n getBoundTextElement(element, elementsMap) !== null,\n (hasSelection) =>\n hasSelection ? null : appState.currentItemTextAlign,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n );\n },\n});\n\nexport const actionChangeVerticalAlign = register({\n name: \"changeVerticalAlign\",\n trackEvent: { category: \"element\" },\n perform: (elements, appState, value, app) => {\n return {\n elements: changeProperty(\n elements,\n appState,\n (oldElement) => {\n if (isTextElement(oldElement)) {\n const newElement: ExcalidrawTextElement = newElementWith(\n oldElement,\n { verticalAlign: value },\n );\n\n redrawTextBoundingBox(\n newElement,\n app.scene.getContainerElement(oldElement),\n app.scene.getNonDeletedElementsMap(),\n );\n return newElement;\n }\n\n return oldElement;\n },\n true,\n ),\n appState: {\n ...appState,\n },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData, app }) => {\n return (\n
    \n \n group=\"text-align\"\n options={[\n {\n value: VERTICAL_ALIGN.TOP,\n text: t(\"labels.alignTop\"),\n icon: ,\n testId: \"align-top\",\n },\n {\n value: VERTICAL_ALIGN.MIDDLE,\n text: t(\"labels.centerVertically\"),\n icon: ,\n testId: \"align-middle\",\n },\n {\n value: VERTICAL_ALIGN.BOTTOM,\n text: t(\"labels.alignBottom\"),\n icon: ,\n testId: \"align-bottom\",\n },\n ]}\n value={getFormValue(\n elements,\n appState,\n (element) => {\n if (isTextElement(element) && element.containerId) {\n return element.verticalAlign;\n }\n const boundTextElement = getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n );\n if (boundTextElement) {\n return boundTextElement.verticalAlign;\n }\n return null;\n },\n (element) =>\n isTextElement(element) ||\n getBoundTextElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n ) !== null,\n (hasSelection) => (hasSelection ? null : VERTICAL_ALIGN.MIDDLE),\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n );\n },\n});\n\nexport const actionChangeRoundness = register({\n name: \"changeRoundness\",\n trackEvent: false,\n perform: (elements, appState, value) => {\n return {\n elements: changeProperty(elements, appState, (el) =>\n newElementWith(el, {\n roundness:\n value === \"round\"\n ? {\n type: isUsingAdaptiveRadius(el.type)\n ? ROUNDNESS.ADAPTIVE_RADIUS\n : ROUNDNESS.PROPORTIONAL_RADIUS,\n }\n : null,\n }),\n ),\n appState: {\n ...appState,\n currentItemRoundness: value,\n },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => {\n const targetElements = getTargetElements(\n getNonDeletedElements(elements),\n appState,\n );\n\n const hasLegacyRoundness = targetElements.some(\n (el) => el.roundness?.type === ROUNDNESS.LEGACY,\n );\n\n return (\n
    \n {t(\"labels.edges\")}\n \n hasLegacyRoundness ? null : element.roundness ? \"round\" : \"sharp\",\n (element) => element.hasOwnProperty(\"roundness\"),\n (hasSelection) =>\n hasSelection ? null : appState.currentItemRoundness,\n )}\n onChange={(value) => updateData(value)}\n />\n
    \n );\n },\n});\n\nconst getArrowheadOptions = (flip: boolean) => {\n return [\n {\n value: null,\n text: t(\"labels.arrowhead_none\"),\n keyBinding: \"q\",\n icon: ArrowheadNoneIcon,\n },\n {\n value: \"arrow\",\n text: t(\"labels.arrowhead_arrow\"),\n keyBinding: \"w\",\n icon: ,\n },\n {\n value: \"bar\",\n text: t(\"labels.arrowhead_bar\"),\n keyBinding: \"e\",\n icon: ,\n },\n {\n value: \"dot\",\n text: t(\"labels.arrowhead_circle\"),\n keyBinding: null,\n icon: ,\n showInPicker: false,\n },\n {\n value: \"circle\",\n text: t(\"labels.arrowhead_circle\"),\n keyBinding: \"r\",\n icon: ,\n showInPicker: false,\n },\n {\n value: \"circle_outline\",\n text: t(\"labels.arrowhead_circle_outline\"),\n keyBinding: null,\n icon: ,\n showInPicker: false,\n },\n {\n value: \"triangle\",\n text: t(\"labels.arrowhead_triangle\"),\n icon: ,\n keyBinding: \"t\",\n },\n {\n value: \"triangle_outline\",\n text: t(\"labels.arrowhead_triangle_outline\"),\n icon: ,\n keyBinding: null,\n showInPicker: false,\n },\n {\n value: \"diamond\",\n text: t(\"labels.arrowhead_diamond\"),\n icon: ,\n keyBinding: null,\n showInPicker: false,\n },\n {\n value: \"diamond_outline\",\n text: t(\"labels.arrowhead_diamond_outline\"),\n icon: ,\n keyBinding: null,\n showInPicker: false,\n },\n ] as const;\n};\n\nexport const actionChangeArrowhead = register({\n name: \"changeArrowhead\",\n trackEvent: false,\n perform: (\n elements,\n appState,\n value: { position: \"start\" | \"end\"; type: Arrowhead },\n ) => {\n return {\n elements: changeProperty(elements, appState, (el) => {\n if (isLinearElement(el)) {\n const { position, type } = value;\n\n if (position === \"start\") {\n const element: ExcalidrawLinearElement = newElementWith(el, {\n startArrowhead: type,\n });\n return element;\n } else if (position === \"end\") {\n const element: ExcalidrawLinearElement = newElementWith(el, {\n endArrowhead: type,\n });\n return element;\n }\n }\n\n return el;\n }),\n appState: {\n ...appState,\n [value.position === \"start\"\n ? \"currentItemStartArrowhead\"\n : \"currentItemEndArrowhead\"]: value.type,\n },\n commitToHistory: true,\n };\n },\n PanelComponent: ({ elements, appState, updateData }) => {\n const isRTL = getLanguage().rtl;\n\n return (\n
    \n {t(\"labels.arrowheads\")}\n
    \n (\n elements,\n appState,\n (element) =>\n isLinearElement(element) && canHaveArrowheads(element.type)\n ? element.startArrowhead\n : appState.currentItemStartArrowhead,\n true,\n appState.currentItemStartArrowhead,\n )}\n onChange={(value) => updateData({ position: \"start\", type: value })}\n />\n (\n elements,\n appState,\n (element) =>\n isLinearElement(element) && canHaveArrowheads(element.type)\n ? element.endArrowhead\n : appState.currentItemEndArrowhead,\n true,\n appState.currentItemEndArrowhead,\n )}\n onChange={(value) => updateData({ position: \"end\", type: value })}\n />\n
    \n
    \n );\n },\n});\n","import \"./Tooltip.scss\";\n\nimport React, { useEffect } from \"react\";\n\nexport const getTooltipDiv = () => {\n const existingDiv = document.querySelector(\n \".excalidraw-tooltip\",\n );\n if (existingDiv) {\n return existingDiv;\n }\n const div = document.createElement(\"div\");\n document.body.appendChild(div);\n div.classList.add(\"excalidraw-tooltip\");\n return div;\n};\n\nexport const updateTooltipPosition = (\n tooltip: HTMLDivElement,\n item: {\n left: number;\n top: number;\n width: number;\n height: number;\n },\n position: \"bottom\" | \"top\" = \"bottom\",\n) => {\n const tooltipRect = tooltip.getBoundingClientRect();\n\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const margin = 5;\n\n let left = item.left + item.width / 2 - tooltipRect.width / 2;\n if (left < 0) {\n left = margin;\n } else if (left + tooltipRect.width >= viewportWidth) {\n left = viewportWidth - tooltipRect.width - margin;\n }\n\n let top: number;\n\n if (position === \"bottom\") {\n top = item.top + item.height + margin;\n if (top + tooltipRect.height >= viewportHeight) {\n top = item.top - tooltipRect.height - margin;\n }\n } else {\n top = item.top - tooltipRect.height - margin;\n if (top < 0) {\n top = item.top + item.height + margin;\n }\n }\n\n Object.assign(tooltip.style, {\n top: `${top}px`,\n left: `${left}px`,\n });\n};\n\nconst updateTooltip = (\n item: HTMLDivElement,\n tooltip: HTMLDivElement,\n label: string,\n long: boolean,\n) => {\n tooltip.classList.add(\"excalidraw-tooltip--visible\");\n tooltip.style.minWidth = long ? \"50ch\" : \"10ch\";\n tooltip.style.maxWidth = long ? \"50ch\" : \"15ch\";\n\n tooltip.textContent = label;\n\n const itemRect = item.getBoundingClientRect();\n updateTooltipPosition(tooltip, itemRect);\n};\n\ntype TooltipProps = {\n children: React.ReactNode;\n label: string;\n long?: boolean;\n style?: React.CSSProperties;\n disabled?: boolean;\n};\n\nexport const Tooltip = ({\n children,\n label,\n long = false,\n style,\n disabled,\n}: TooltipProps) => {\n useEffect(() => {\n return () =>\n getTooltipDiv().classList.remove(\"excalidraw-tooltip--visible\");\n }, []);\n if (disabled) {\n return null;\n }\n return (\n \n updateTooltip(\n event.currentTarget as HTMLDivElement,\n getTooltipDiv(),\n label,\n long,\n )\n }\n onPointerLeave={() =>\n getTooltipDiv().classList.remove(\"excalidraw-tooltip--visible\")\n }\n style={style}\n >\n {children}\n
    \n );\n};\n","import { ColorPicker } from \"../components/ColorPicker/ColorPicker\";\nimport { ZoomInIcon, ZoomOutIcon } from \"../components/icons\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { CURSOR_TYPE, MIN_ZOOM, THEME, ZOOM_STEP } from \"../constants\";\nimport { getCommonBounds, getNonDeletedElements } from \"../element\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { CODES, KEYS } from \"../keys\";\nimport { getNormalizedZoom } from \"../scene\";\nimport { centerScrollOn } from \"../scene/scroll\";\nimport { getStateForZoom } from \"../scene/zoom\";\nimport { AppState, NormalizedZoomValue } from \"../types\";\nimport { getShortcutKey, updateActiveTool } from \"../utils\";\nimport { register } from \"./register\";\nimport { Tooltip } from \"../components/Tooltip\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport {\n getDefaultAppState,\n isEraserActive,\n isHandToolActive,\n} from \"../appState\";\nimport { DEFAULT_CANVAS_BACKGROUND_PICKS } from \"../colors\";\nimport { SceneBounds } from \"../element/bounds\";\nimport { setCursor } from \"../cursor\";\n\nexport const actionChangeViewBackgroundColor = register({\n name: \"changeViewBackgroundColor\",\n trackEvent: false,\n predicate: (elements, appState, props, app) => {\n return (\n !!app.props.UIOptions.canvasActions.changeViewBackgroundColor &&\n !appState.viewModeEnabled\n );\n },\n perform: (_, appState, value) => {\n return {\n appState: { ...appState, ...value },\n commitToHistory: !!value.viewBackgroundColor,\n };\n },\n PanelComponent: ({ elements, appState, updateData, appProps }) => {\n // FIXME move me to src/components/mainMenu/DefaultItems.tsx\n return (\n updateData({ viewBackgroundColor: color })}\n data-testid=\"canvas-background-picker\"\n elements={elements}\n appState={appState}\n updateData={updateData}\n />\n );\n },\n});\n\nexport const actionClearCanvas = register({\n name: \"clearCanvas\",\n trackEvent: { category: \"canvas\" },\n predicate: (elements, appState, props, app) => {\n return (\n !!app.props.UIOptions.canvasActions.clearCanvas &&\n !appState.viewModeEnabled\n );\n },\n perform: (elements, appState, _, app) => {\n app.imageCache.clear();\n return {\n elements: elements.map((element) =>\n newElementWith(element, { isDeleted: true }),\n ),\n appState: {\n ...getDefaultAppState(),\n files: {},\n theme: appState.theme,\n penMode: appState.penMode,\n penDetected: appState.penDetected,\n exportBackground: appState.exportBackground,\n exportEmbedScene: appState.exportEmbedScene,\n gridSize: appState.gridSize,\n showStats: appState.showStats,\n pasteDialog: appState.pasteDialog,\n activeTool:\n appState.activeTool.type === \"image\"\n ? { ...appState.activeTool, type: \"selection\" }\n : appState.activeTool,\n },\n commitToHistory: true,\n };\n },\n});\n\nexport const actionZoomIn = register({\n name: \"zoomIn\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (_elements, appState, _, app) => {\n return {\n appState: {\n ...appState,\n ...getStateForZoom(\n {\n viewportX: appState.width / 2 + appState.offsetLeft,\n viewportY: appState.height / 2 + appState.offsetTop,\n nextZoom: getNormalizedZoom(appState.zoom.value + ZOOM_STEP),\n },\n appState,\n ),\n userToFollow: null,\n },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ updateData }) => (\n {\n updateData(null);\n }}\n />\n ),\n keyTest: (event) =>\n (event.code === CODES.EQUAL || event.code === CODES.NUM_ADD) &&\n (event[KEYS.CTRL_OR_CMD] || event.shiftKey),\n});\n\nexport const actionZoomOut = register({\n name: \"zoomOut\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (_elements, appState, _, app) => {\n return {\n appState: {\n ...appState,\n ...getStateForZoom(\n {\n viewportX: appState.width / 2 + appState.offsetLeft,\n viewportY: appState.height / 2 + appState.offsetTop,\n nextZoom: getNormalizedZoom(appState.zoom.value - ZOOM_STEP),\n },\n appState,\n ),\n userToFollow: null,\n },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ updateData }) => (\n {\n updateData(null);\n }}\n />\n ),\n keyTest: (event) =>\n (event.code === CODES.MINUS || event.code === CODES.NUM_SUBTRACT) &&\n (event[KEYS.CTRL_OR_CMD] || event.shiftKey),\n});\n\nexport const actionResetZoom = register({\n name: \"resetZoom\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (_elements, appState, _, app) => {\n return {\n appState: {\n ...appState,\n ...getStateForZoom(\n {\n viewportX: appState.width / 2 + appState.offsetLeft,\n viewportY: appState.height / 2 + appState.offsetTop,\n nextZoom: getNormalizedZoom(1),\n },\n appState,\n ),\n userToFollow: null,\n },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ updateData, appState }) => (\n \n {\n updateData(null);\n }}\n >\n {(appState.zoom.value * 100).toFixed(0)}%\n \n \n ),\n keyTest: (event) =>\n (event.code === CODES.ZERO || event.code === CODES.NUM_ZERO) &&\n (event[KEYS.CTRL_OR_CMD] || event.shiftKey),\n});\n\nconst zoomValueToFitBoundsOnViewport = (\n bounds: SceneBounds,\n viewportDimensions: { width: number; height: number },\n) => {\n const [x1, y1, x2, y2] = bounds;\n const commonBoundsWidth = x2 - x1;\n const zoomValueForWidth = viewportDimensions.width / commonBoundsWidth;\n const commonBoundsHeight = y2 - y1;\n const zoomValueForHeight = viewportDimensions.height / commonBoundsHeight;\n const smallestZoomValue = Math.min(zoomValueForWidth, zoomValueForHeight);\n const zoomAdjustedToSteps =\n Math.floor(smallestZoomValue / ZOOM_STEP) * ZOOM_STEP;\n const clampedZoomValueToFitElements = Math.min(\n Math.max(zoomAdjustedToSteps, MIN_ZOOM),\n 1,\n );\n return clampedZoomValueToFitElements as NormalizedZoomValue;\n};\n\nexport const zoomToFitBounds = ({\n bounds,\n appState,\n fitToViewport = false,\n viewportZoomFactor = 0.7,\n}: {\n bounds: SceneBounds;\n appState: Readonly;\n /** whether to fit content to viewport (beyond >100%) */\n fitToViewport: boolean;\n /** zoom content to cover X of the viewport, when fitToViewport=true */\n viewportZoomFactor?: number;\n}) => {\n const [x1, y1, x2, y2] = bounds;\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n\n let newZoomValue;\n let scrollX;\n let scrollY;\n\n if (fitToViewport) {\n const commonBoundsWidth = x2 - x1;\n const commonBoundsHeight = y2 - y1;\n\n newZoomValue =\n Math.min(\n appState.width / commonBoundsWidth,\n appState.height / commonBoundsHeight,\n ) * Math.min(1, Math.max(viewportZoomFactor, 0.1));\n\n // Apply clamping to newZoomValue to be between 10% and 3000%\n newZoomValue = Math.min(\n Math.max(newZoomValue, 0.1),\n 30.0,\n ) as NormalizedZoomValue;\n\n let appStateWidth = appState.width;\n\n if (appState.openSidebar) {\n const sidebarDOMElem = document.querySelector(\n \".sidebar\",\n ) as HTMLElement | null;\n const sidebarWidth = sidebarDOMElem?.offsetWidth ?? 0;\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\n\n appStateWidth = !isRTL\n ? appState.width - sidebarWidth\n : appState.width + sidebarWidth;\n }\n\n scrollX = (appStateWidth / 2) * (1 / newZoomValue) - centerX;\n scrollY = (appState.height / 2) * (1 / newZoomValue) - centerY;\n } else {\n newZoomValue = zoomValueToFitBoundsOnViewport(bounds, {\n width: appState.width,\n height: appState.height,\n });\n\n const centerScroll = centerScrollOn({\n scenePoint: { x: centerX, y: centerY },\n viewportDimensions: {\n width: appState.width,\n height: appState.height,\n },\n zoom: { value: newZoomValue },\n });\n\n scrollX = centerScroll.scrollX;\n scrollY = centerScroll.scrollY;\n }\n\n return {\n appState: {\n ...appState,\n scrollX,\n scrollY,\n zoom: { value: newZoomValue },\n },\n commitToHistory: false,\n };\n};\n\nexport const zoomToFit = ({\n targetElements,\n appState,\n fitToViewport,\n viewportZoomFactor,\n}: {\n targetElements: readonly ExcalidrawElement[];\n appState: Readonly;\n /** whether to fit content to viewport (beyond >100%) */\n fitToViewport: boolean;\n /** zoom content to cover X of the viewport, when fitToViewport=true */\n viewportZoomFactor?: number;\n}) => {\n const commonBounds = getCommonBounds(getNonDeletedElements(targetElements));\n\n return zoomToFitBounds({\n bounds: commonBounds,\n appState,\n fitToViewport,\n viewportZoomFactor,\n });\n};\n\n// Note, this action differs from actionZoomToFitSelection in that it doesn't\n// zoom beyond 100%. In other words, if the content is smaller than viewport\n// size, it won't be zoomed in.\nexport const actionZoomToFitSelectionInViewport = register({\n name: \"zoomToFitSelectionInViewport\",\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState, _, app) => {\n const selectedElements = app.scene.getSelectedElements(appState);\n return zoomToFit({\n targetElements: selectedElements.length ? selectedElements : elements,\n appState: {\n ...appState,\n userToFollow: null,\n },\n fitToViewport: false,\n });\n },\n // NOTE shift-2 should have been assigned actionZoomToFitSelection.\n // TBD on how proceed\n keyTest: (event) =>\n event.code === CODES.TWO &&\n event.shiftKey &&\n !event.altKey &&\n !event[KEYS.CTRL_OR_CMD],\n});\n\nexport const actionZoomToFitSelection = register({\n name: \"zoomToFitSelection\",\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState, _, app) => {\n const selectedElements = app.scene.getSelectedElements(appState);\n return zoomToFit({\n targetElements: selectedElements.length ? selectedElements : elements,\n appState: {\n ...appState,\n userToFollow: null,\n },\n fitToViewport: true,\n });\n },\n // NOTE this action should use shift-2 per figma, alas\n keyTest: (event) =>\n event.code === CODES.THREE &&\n event.shiftKey &&\n !event.altKey &&\n !event[KEYS.CTRL_OR_CMD],\n});\n\nexport const actionZoomToFit = register({\n name: \"zoomToFit\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState) =>\n zoomToFit({\n targetElements: elements,\n appState: {\n ...appState,\n userToFollow: null,\n },\n fitToViewport: false,\n }),\n keyTest: (event) =>\n event.code === CODES.ONE &&\n event.shiftKey &&\n !event.altKey &&\n !event[KEYS.CTRL_OR_CMD],\n});\n\nexport const actionToggleTheme = register({\n name: \"toggleTheme\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (_, appState, value) => {\n return {\n appState: {\n ...appState,\n theme:\n value || (appState.theme === THEME.LIGHT ? THEME.DARK : THEME.LIGHT),\n },\n commitToHistory: false,\n };\n },\n keyTest: (event) => event.altKey && event.shiftKey && event.code === CODES.D,\n predicate: (elements, appState, props, app) => {\n return !!app.props.UIOptions.canvasActions.toggleTheme;\n },\n});\n\nexport const actionToggleEraserTool = register({\n name: \"toggleEraserTool\",\n trackEvent: { category: \"toolbar\" },\n perform: (elements, appState) => {\n let activeTool: AppState[\"activeTool\"];\n\n if (isEraserActive(appState)) {\n activeTool = updateActiveTool(appState, {\n ...(appState.activeTool.lastActiveTool || {\n type: \"selection\",\n }),\n lastActiveToolBeforeEraser: null,\n });\n } else {\n activeTool = updateActiveTool(appState, {\n type: \"eraser\",\n lastActiveToolBeforeEraser: appState.activeTool,\n });\n }\n\n return {\n appState: {\n ...appState,\n selectedElementIds: {},\n selectedGroupIds: {},\n activeEmbeddable: null,\n activeTool,\n },\n commitToHistory: true,\n };\n },\n keyTest: (event) => event.key === KEYS.E,\n});\n\nexport const actionToggleHandTool = register({\n name: \"toggleHandTool\",\n trackEvent: { category: \"toolbar\" },\n perform: (elements, appState, _, app) => {\n let activeTool: AppState[\"activeTool\"];\n\n if (isHandToolActive(appState)) {\n activeTool = updateActiveTool(appState, {\n ...(appState.activeTool.lastActiveTool || {\n type: \"selection\",\n }),\n lastActiveToolBeforeEraser: null,\n });\n } else {\n activeTool = updateActiveTool(appState, {\n type: \"hand\",\n lastActiveToolBeforeEraser: appState.activeTool,\n });\n setCursor(app.interactiveCanvas, CURSOR_TYPE.GRAB);\n }\n\n return {\n appState: {\n ...appState,\n selectedElementIds: {},\n selectedGroupIds: {},\n activeEmbeddable: null,\n activeTool,\n },\n commitToHistory: true,\n };\n },\n keyTest: (event) =>\n !event.altKey && !event[KEYS.CTRL_OR_CMD] && event.key === KEYS.H,\n});\n","import { KEYS } from \"../keys\";\nimport { isInvisiblySmallElement } from \"../element\";\nimport { arrayToMap, updateActiveTool } from \"../utils\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { done } from \"../components/icons\";\nimport { t } from \"../i18n\";\nimport { register } from \"./register\";\nimport { mutateElement } from \"../element/mutateElement\";\nimport { isPathALoop } from \"../math\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport Scene from \"../scene/Scene\";\nimport {\n maybeBindLinearElement,\n bindOrUnbindLinearElement,\n} from \"../element/binding\";\nimport { isBindingElement, isLinearElement } from \"../element/typeChecks\";\nimport { AppState } from \"../types\";\nimport { resetCursor } from \"../cursor\";\n\nexport const actionFinalize = register({\n name: \"finalize\",\n trackEvent: false,\n perform: (\n elements,\n appState,\n _,\n { interactiveCanvas, focusContainer, scene },\n ) => {\n const elementsMap = scene.getNonDeletedElementsMap();\n\n if (appState.editingLinearElement) {\n const { elementId, startBindingElement, endBindingElement } =\n appState.editingLinearElement;\n const element = LinearElementEditor.getElement(elementId, elementsMap);\n\n if (element) {\n if (isBindingElement(element)) {\n bindOrUnbindLinearElement(\n element,\n startBindingElement,\n endBindingElement,\n elementsMap,\n );\n }\n return {\n elements:\n element.points.length < 2 || isInvisiblySmallElement(element)\n ? elements.filter((el) => el.id !== element.id)\n : undefined,\n appState: {\n ...appState,\n cursorButton: \"up\",\n editingLinearElement: null,\n },\n commitToHistory: true,\n };\n }\n }\n\n let newElements = elements;\n\n const pendingImageElement =\n appState.pendingImageElementId &&\n scene.getElement(appState.pendingImageElementId);\n\n if (pendingImageElement) {\n mutateElement(pendingImageElement, { isDeleted: true }, false);\n }\n\n if (window.document.activeElement instanceof HTMLElement) {\n focusContainer();\n }\n\n const multiPointElement = appState.multiElement\n ? appState.multiElement\n : appState.editingElement?.type === \"freedraw\"\n ? appState.editingElement\n : null;\n\n if (multiPointElement) {\n // pen and mouse have hover\n if (\n multiPointElement.type !== \"freedraw\" &&\n appState.lastPointerDownWith !== \"touch\"\n ) {\n const { points, lastCommittedPoint } = multiPointElement;\n if (\n !lastCommittedPoint ||\n points[points.length - 1] !== lastCommittedPoint\n ) {\n mutateElement(multiPointElement, {\n points: multiPointElement.points.slice(0, -1),\n });\n }\n }\n if (isInvisiblySmallElement(multiPointElement)) {\n newElements = newElements.filter(\n (el) => el.id !== multiPointElement.id,\n );\n }\n\n // If the multi point line closes the loop,\n // set the last point to first point.\n // This ensures that loop remains closed at different scales.\n const isLoop = isPathALoop(multiPointElement.points, appState.zoom.value);\n if (\n multiPointElement.type === \"line\" ||\n multiPointElement.type === \"freedraw\"\n ) {\n if (isLoop) {\n const linePoints = multiPointElement.points;\n const firstPoint = linePoints[0];\n mutateElement(multiPointElement, {\n points: linePoints.map((point, index) =>\n index === linePoints.length - 1\n ? ([firstPoint[0], firstPoint[1]] as const)\n : point,\n ),\n });\n }\n }\n\n if (\n isBindingElement(multiPointElement) &&\n !isLoop &&\n multiPointElement.points.length > 1\n ) {\n const [x, y] = LinearElementEditor.getPointAtIndexGlobalCoordinates(\n multiPointElement,\n -1,\n arrayToMap(elements),\n );\n maybeBindLinearElement(\n multiPointElement,\n appState,\n Scene.getScene(multiPointElement)!,\n { x, y },\n elementsMap,\n );\n }\n }\n\n if (\n (!appState.activeTool.locked &&\n appState.activeTool.type !== \"freedraw\") ||\n !multiPointElement\n ) {\n resetCursor(interactiveCanvas);\n }\n\n let activeTool: AppState[\"activeTool\"];\n if (appState.activeTool.type === \"eraser\") {\n activeTool = updateActiveTool(appState, {\n ...(appState.activeTool.lastActiveTool || {\n type: \"selection\",\n }),\n lastActiveToolBeforeEraser: null,\n });\n } else {\n activeTool = updateActiveTool(appState, {\n type: \"selection\",\n });\n }\n\n return {\n elements: newElements,\n appState: {\n ...appState,\n cursorButton: \"up\",\n activeTool:\n (appState.activeTool.locked ||\n appState.activeTool.type === \"freedraw\") &&\n multiPointElement\n ? appState.activeTool\n : activeTool,\n activeEmbeddable: null,\n draggingElement: null,\n multiElement: null,\n editingElement: null,\n startBoundElement: null,\n suggestedBindings: [],\n selectedElementIds:\n multiPointElement &&\n !appState.activeTool.locked &&\n appState.activeTool.type !== \"freedraw\"\n ? {\n ...appState.selectedElementIds,\n [multiPointElement.id]: true,\n }\n : appState.selectedElementIds,\n // To select the linear element when user has finished mutipoint editing\n selectedLinearElement:\n multiPointElement && isLinearElement(multiPointElement)\n ? new LinearElementEditor(multiPointElement)\n : appState.selectedLinearElement,\n pendingImageElementId: null,\n },\n commitToHistory: appState.activeTool.type === \"freedraw\",\n };\n },\n keyTest: (event, appState) =>\n (event.key === KEYS.ESCAPE &&\n (appState.editingLinearElement !== null ||\n (!appState.draggingElement && appState.multiElement === null))) ||\n ((event.key === KEYS.ESCAPE || event.key === KEYS.ENTER) &&\n appState.multiElement !== null),\n PanelComponent: ({ appState, updateData, data }) => (\n \n ),\n});\n","import \"./TextInput.scss\";\n\nimport React, { useState } from \"react\";\nimport { focusNearestParent } from \"../utils\";\n\nimport \"./ProjectName.scss\";\nimport { useExcalidrawContainer } from \"./App\";\nimport { KEYS } from \"../keys\";\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n label: string;\n ignoreFocus?: boolean;\n};\n\nexport const ProjectName = (props: Props) => {\n const { id } = useExcalidrawContainer();\n const [fileName, setFileName] = useState(props.value);\n\n const handleBlur = (event: any) => {\n if (!props.ignoreFocus) {\n focusNearestParent(event.target);\n }\n const value = event.target.value;\n if (value !== props.value) {\n props.onChange(value);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === KEYS.ENTER) {\n event.preventDefault();\n if (event.nativeEvent.isComposing || event.keyCode === 229) {\n return;\n }\n event.currentTarget.blur();\n }\n };\n\n return (\n
    \n \n setFileName(event.target.value)}\n />\n
    \n );\n};\n","import \"./ToolIcon.scss\";\n\nimport { t } from \"../i18n\";\nimport { ToolButton } from \"./ToolButton\";\nimport { THEME } from \"../constants\";\nimport { Theme } from \"../element/types\";\n\n// We chose to use only explicit toggle and not a third option for system value,\n// but this could be added in the future.\nexport const DarkModeToggle = (props: {\n value: Theme;\n onChange: (value: Theme) => void;\n title?: string;\n}) => {\n const title =\n props.title ||\n (props.value === \"dark\" ? t(\"buttons.lightMode\") : t(\"buttons.darkMode\"));\n\n return (\n \n props.onChange(props.value === THEME.DARK ? THEME.LIGHT : THEME.DARK)\n }\n data-testid=\"toggle-dark-mode\"\n />\n );\n};\n\nconst ICONS = {\n SUN: (\n \n \n \n ),\n MOON: (\n \n \n \n ),\n};\n","import {\n copyBlobToClipboardAsPng,\n copyTextToSystemClipboard,\n} from \"../clipboard\";\nimport {\n DEFAULT_EXPORT_PADDING,\n DEFAULT_FILENAME,\n isFirefox,\n MIME_TYPES,\n} from \"../constants\";\nimport { getNonDeletedElements } from \"../element\";\nimport { isFrameLikeElement } from \"../element/typeChecks\";\nimport {\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n NonDeletedExcalidrawElement,\n} from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { isSomeElementSelected, getSelectedElements } from \"../scene\";\nimport { exportToCanvas, exportToSvg } from \"../scene/export\";\nimport { ExportType } from \"../scene/types\";\nimport { AppState, BinaryFiles } from \"../types\";\nimport { cloneJSON } from \"../utils\";\nimport { canvasToBlob } from \"./blob\";\nimport { fileSave, FileSystemHandle } from \"./filesystem\";\nimport { serializeAsJSON } from \"./json\";\nimport { getElementsOverlappingFrame } from \"../frame\";\n\nexport { loadFromBlob } from \"./blob\";\nexport { loadFromJSON, saveAsJSON } from \"./json\";\n\nexport type ExportedElements = readonly NonDeletedExcalidrawElement[] & {\n _brand: \"exportedElements\";\n};\n\nexport const prepareElementsForExport = (\n elements: readonly ExcalidrawElement[],\n { selectedElementIds }: Pick,\n exportSelectionOnly: boolean,\n) => {\n elements = getNonDeletedElements(elements);\n\n const isExportingSelection =\n exportSelectionOnly &&\n isSomeElementSelected(elements, { selectedElementIds });\n\n let exportingFrame: ExcalidrawFrameLikeElement | null = null;\n let exportedElements = isExportingSelection\n ? getSelectedElements(\n elements,\n { selectedElementIds },\n {\n includeBoundTextElement: true,\n },\n )\n : elements;\n\n if (isExportingSelection) {\n if (\n exportedElements.length === 1 &&\n isFrameLikeElement(exportedElements[0])\n ) {\n exportingFrame = exportedElements[0];\n exportedElements = getElementsOverlappingFrame(elements, exportingFrame);\n } else if (exportedElements.length > 1) {\n exportedElements = getSelectedElements(\n elements,\n { selectedElementIds },\n {\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n },\n );\n }\n }\n\n return {\n exportingFrame,\n exportedElements: cloneJSON(exportedElements) as ExportedElements,\n };\n};\n\nexport const exportCanvas = async (\n type: Omit,\n elements: ExportedElements,\n appState: AppState,\n files: BinaryFiles,\n {\n exportBackground,\n exportPadding = DEFAULT_EXPORT_PADDING,\n viewBackgroundColor,\n name = appState.name || DEFAULT_FILENAME,\n fileHandle = null,\n exportingFrame = null,\n }: {\n exportBackground: boolean;\n exportPadding?: number;\n viewBackgroundColor: string;\n /** filename, if applicable */\n name?: string;\n fileHandle?: FileSystemHandle | null;\n exportingFrame: ExcalidrawFrameLikeElement | null;\n },\n) => {\n if (elements.length === 0) {\n throw new Error(t(\"alerts.cannotExportEmptyCanvas\"));\n }\n if (type === \"svg\" || type === \"clipboard-svg\") {\n const svgPromise = exportToSvg(\n elements,\n {\n exportBackground,\n exportWithDarkMode: appState.exportWithDarkMode,\n viewBackgroundColor,\n exportPadding,\n exportScale: appState.exportScale,\n exportEmbedScene: appState.exportEmbedScene && type === \"svg\",\n },\n files,\n { exportingFrame },\n );\n\n if (type === \"svg\") {\n return fileSave(\n svgPromise.then((svg) => {\n return new Blob([svg.outerHTML], { type: MIME_TYPES.svg });\n }),\n {\n description: \"Export to SVG\",\n name,\n extension: appState.exportEmbedScene ? \"excalidraw.svg\" : \"svg\",\n fileHandle,\n },\n );\n } else if (type === \"clipboard-svg\") {\n const svg = await svgPromise.then((svg) => svg.outerHTML);\n try {\n await copyTextToSystemClipboard(svg);\n } catch (e) {\n throw new Error(t(\"errors.copyToSystemClipboardFailed\"));\n }\n return;\n }\n }\n\n const tempCanvas = exportToCanvas(elements, appState, files, {\n exportBackground,\n viewBackgroundColor,\n exportPadding,\n exportingFrame,\n });\n\n if (type === \"png\") {\n let blob = canvasToBlob(tempCanvas);\n\n if (appState.exportEmbedScene) {\n blob = blob.then((blob) =>\n import(\"./image\").then(({ encodePngMetadata }) =>\n encodePngMetadata({\n blob,\n metadata: serializeAsJSON(elements, appState, files, \"local\"),\n }),\n ),\n );\n }\n\n return fileSave(blob, {\n description: \"Export to PNG\",\n name,\n // FIXME reintroduce `excalidraw.png` when most people upgrade away\n // from 111.0.5563.64 (arm64), see #6349\n extension: /* appState.exportEmbedScene ? \"excalidraw.png\" : */ \"png\",\n fileHandle,\n });\n } else if (type === \"clipboard\") {\n try {\n const blob = canvasToBlob(tempCanvas);\n await copyBlobToClipboardAsPng(blob);\n } catch (error: any) {\n console.warn(error);\n if (error.name === \"CANVAS_POSSIBLY_TOO_BIG\") {\n throw new Error(t(\"canvasError.canvasTooBig\"));\n }\n // TypeError *probably* suggests ClipboardItem not defined, which\n // people on Firefox can enable through a flag, so let's tell them.\n if (isFirefox && error.name === \"TypeError\") {\n throw new Error(\n `${t(\"alerts.couldNotCopyToClipboard\")}\\n\\n${t(\n \"hints.firefox_clipboard_write\",\n )}`,\n );\n } else {\n throw new Error(t(\"alerts.couldNotCopyToClipboard\"));\n }\n }\n } else {\n // shouldn't happen\n throw new Error(\"Unsupported export type\");\n }\n};\n","import { ExcalidrawElement } from \"../element/types\";\nimport { AppState, BinaryFiles } from \"../types\";\nimport { exportCanvas, prepareElementsForExport } from \".\";\nimport { getFileHandleType, isImageFileHandleType } from \"./blob\";\n\nexport const resaveAsImageWithScene = async (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n name: string,\n) => {\n const { exportBackground, viewBackgroundColor, fileHandle } = appState;\n\n const fileHandleType = getFileHandleType(fileHandle);\n\n if (!fileHandle || !isImageFileHandleType(fileHandleType)) {\n throw new Error(\n \"fileHandle should exist and should be of type svg or png when resaving\",\n );\n }\n appState = {\n ...appState,\n exportEmbedScene: true,\n };\n\n const { exportedElements, exportingFrame } = prepareElementsForExport(\n elements,\n appState,\n false,\n );\n\n await exportCanvas(fileHandleType, exportedElements, appState, files, {\n exportBackground,\n viewBackgroundColor,\n name,\n fileHandle,\n exportingFrame,\n });\n\n return { fileHandle };\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { checkIcon } from \"./icons\";\n\nimport \"./CheckboxItem.scss\";\n\nexport const CheckboxItem: React.FC<{\n checked: boolean;\n onChange: (checked: boolean, event: React.MouseEvent) => void;\n className?: string;\n children?: React.ReactNode;\n}> = ({ children, checked, onChange, className }) => {\n return (\n {\n onChange(!checked, event);\n (\n (event.currentTarget as HTMLDivElement).querySelector(\n \".Checkbox-box\",\n ) as HTMLButtonElement\n ).focus();\n }}\n >\n \n
    {children}
    \n
    \n );\n};\n","import { questionCircle, saveAs } from \"../components/icons\";\nimport { ProjectName } from \"../components/ProjectName\";\nimport { ToolButton } from \"../components/ToolButton\";\nimport { Tooltip } from \"../components/Tooltip\";\nimport { DarkModeToggle } from \"../components/DarkModeToggle\";\nimport { loadFromJSON, saveAsJSON } from \"../data\";\nimport { resaveAsImageWithScene } from \"../data/resave\";\nimport { t } from \"../i18n\";\nimport { useDevice } from \"../components/App\";\nimport { KEYS } from \"../keys\";\nimport { register } from \"./register\";\nimport { CheckboxItem } from \"../components/CheckboxItem\";\nimport { getExportSize } from \"../scene/export\";\nimport { DEFAULT_EXPORT_PADDING, EXPORT_SCALES, THEME } from \"../constants\";\nimport { getSelectedElements, isSomeElementSelected } from \"../scene\";\nimport { getNonDeletedElements } from \"../element\";\nimport { isImageFileHandle } from \"../data/blob\";\nimport { nativeFileSystemSupported } from \"../data/filesystem\";\nimport { Theme } from \"../element/types\";\n\nimport \"../components/ToolIcon.scss\";\n\nexport const actionChangeProjectName = register({\n name: \"changeProjectName\",\n trackEvent: false,\n perform: (_elements, appState, value) => {\n return { appState: { ...appState, name: value }, commitToHistory: false };\n },\n PanelComponent: ({ appState, updateData, appProps, data, app }) => (\n updateData(name)}\n ignoreFocus={data?.ignoreFocus ?? false}\n />\n ),\n});\n\nexport const actionChangeExportScale = register({\n name: \"changeExportScale\",\n trackEvent: { category: \"export\", action: \"scale\" },\n perform: (_elements, appState, value) => {\n return {\n appState: { ...appState, exportScale: value },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ elements: allElements, appState, updateData }) => {\n const elements = getNonDeletedElements(allElements);\n const exportSelected = isSomeElementSelected(elements, appState);\n const exportedElements = exportSelected\n ? getSelectedElements(elements, appState)\n : elements;\n\n return (\n <>\n {EXPORT_SCALES.map((s) => {\n const [width, height] = getExportSize(\n exportedElements,\n DEFAULT_EXPORT_PADDING,\n s,\n );\n\n const scaleButtonTitle = `${t(\n \"imageExportDialog.label.scale\",\n )} ${s}x (${width}x${height})`;\n\n return (\n updateData(s)}\n />\n );\n })}\n \n );\n },\n});\n\nexport const actionChangeExportBackground = register({\n name: \"changeExportBackground\",\n trackEvent: { category: \"export\", action: \"toggleBackground\" },\n perform: (_elements, appState, value) => {\n return {\n appState: { ...appState, exportBackground: value },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => (\n updateData(checked)}\n >\n {t(\"imageExportDialog.label.withBackground\")}\n \n ),\n});\n\nexport const actionChangeExportEmbedScene = register({\n name: \"changeExportEmbedScene\",\n trackEvent: { category: \"export\", action: \"embedScene\" },\n perform: (_elements, appState, value) => {\n return {\n appState: { ...appState, exportEmbedScene: value },\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => (\n updateData(checked)}\n >\n {t(\"imageExportDialog.label.embedScene\")}\n \n
    {questionCircle}
    \n
    \n \n ),\n});\n\nexport const actionSaveToActiveFile = register({\n name: \"saveToActiveFile\",\n trackEvent: { category: \"export\" },\n predicate: (elements, appState, props, app) => {\n return (\n !!app.props.UIOptions.canvasActions.saveToActiveFile &&\n !!appState.fileHandle &&\n !appState.viewModeEnabled\n );\n },\n perform: async (elements, appState, value, app) => {\n const fileHandleExists = !!appState.fileHandle;\n\n try {\n const { fileHandle } = isImageFileHandle(appState.fileHandle)\n ? await resaveAsImageWithScene(\n elements,\n appState,\n app.files,\n app.getName(),\n )\n : await saveAsJSON(elements, appState, app.files, app.getName());\n\n return {\n commitToHistory: false,\n appState: {\n ...appState,\n fileHandle,\n toast: fileHandleExists\n ? {\n message: fileHandle?.name\n ? t(\"toast.fileSavedToFilename\").replace(\n \"{filename}\",\n `\"${fileHandle.name}\"`,\n )\n : t(\"toast.fileSaved\"),\n }\n : null,\n },\n };\n } catch (error: any) {\n if (error?.name !== \"AbortError\") {\n console.error(error);\n } else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n },\n keyTest: (event) =>\n event.key === KEYS.S && event[KEYS.CTRL_OR_CMD] && !event.shiftKey,\n});\n\nexport const actionSaveFileToDisk = register({\n name: \"saveFileToDisk\",\n viewMode: true,\n trackEvent: { category: \"export\" },\n perform: async (elements, appState, value, app) => {\n try {\n const { fileHandle } = await saveAsJSON(\n elements,\n {\n ...appState,\n fileHandle: null,\n },\n app.files,\n app.getName(),\n );\n return {\n commitToHistory: false,\n appState: {\n ...appState,\n openDialog: null,\n fileHandle,\n toast: { message: t(\"toast.fileSaved\") },\n },\n };\n } catch (error: any) {\n if (error?.name !== \"AbortError\") {\n console.error(error);\n } else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n },\n keyTest: (event) =>\n event.key === KEYS.S && event.shiftKey && event[KEYS.CTRL_OR_CMD],\n PanelComponent: ({ updateData }) => (\n
  • \n );\n })}\n \n \n );\n },\n);\n","import \"./Stack.scss\";\n\nimport React, { forwardRef } from \"react\";\nimport clsx from \"clsx\";\n\ntype StackProps = {\n children: React.ReactNode;\n gap?: number;\n align?: \"start\" | \"center\" | \"end\" | \"baseline\";\n justifyContent?: \"center\" | \"space-around\" | \"space-between\";\n className?: string | boolean;\n style?: React.CSSProperties;\n ref: React.RefObject;\n};\n\nconst RowStack = forwardRef(\n (\n { children, gap, align, justifyContent, className, style }: StackProps,\n ref: React.ForwardedRef,\n ) => {\n return (\n \n {children}\n \n );\n },\n);\n\nconst ColStack = forwardRef(\n (\n { children, gap, align, justifyContent, className, style }: StackProps,\n ref: React.ForwardedRef,\n ) => {\n return (\n \n {children}\n \n );\n },\n);\n\nexport default {\n Row: RowStack,\n Col: ColStack,\n};\n","import clsx from \"clsx\";\nimport { useDevice } from \"../App\";\n\nconst MenuTrigger = ({\n className = \"\",\n children,\n onToggle,\n title,\n ...rest\n}: {\n className?: string;\n children: React.ReactNode;\n onToggle: () => void;\n title?: string;\n} & Omit, \"onSelect\">) => {\n const device = useDevice();\n const classNames = clsx(\n `dropdown-menu-button ${className}`,\n \"zen-mode-transition\",\n {\n \"dropdown-menu-button--mobile\": device.editor.isMobile,\n },\n ).trim();\n return (\n \n {children}\n \n );\n};\n\nexport default MenuTrigger;\nMenuTrigger.displayName = \"DropdownMenuTrigger\";\n","import React, { useContext } from \"react\";\nimport { EVENT } from \"../../constants\";\nimport { composeEventHandlers } from \"../../utils\";\n\nexport const DropdownMenuContentPropsContext = React.createContext<{\n onSelect?: (event: Event) => void;\n}>({});\n\nexport const getDropdownMenuItemClassName = (\n className = \"\",\n selected = false,\n) => {\n return `dropdown-menu-item dropdown-menu-item-base ${className} ${\n selected ? \"dropdown-menu-item--selected\" : \"\"\n }`.trim();\n};\n\nexport const useHandleDropdownMenuItemClick = (\n origOnClick:\n | React.MouseEventHandler\n | undefined,\n onSelect: ((event: Event) => void) | undefined,\n) => {\n const DropdownMenuContentProps = useContext(DropdownMenuContentPropsContext);\n\n return composeEventHandlers(origOnClick, (event) => {\n const itemSelectEvent = new CustomEvent(EVENT.MENU_ITEM_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n onSelect?.(itemSelectEvent);\n if (!itemSelectEvent.defaultPrevented) {\n DropdownMenuContentProps.onSelect?.(itemSelectEvent);\n }\n });\n};\n","import { useDevice } from \"../App\";\n\nconst MenuItemContent = ({\n icon,\n shortcut,\n children,\n}: {\n icon?: JSX.Element;\n shortcut?: string;\n children: React.ReactNode;\n}) => {\n const device = useDevice();\n return (\n <>\n
    {icon}
    \n
    {children}
    \n {shortcut && !device.editor.isMobile && (\n
    {shortcut}
    \n )}\n \n );\n};\nexport default MenuItemContent;\n","import React from \"react\";\nimport {\n getDropdownMenuItemClassName,\n useHandleDropdownMenuItemClick,\n} from \"./common\";\nimport MenuItemContent from \"./DropdownMenuItemContent\";\n\nconst DropdownMenuItem = ({\n icon,\n onSelect,\n children,\n shortcut,\n className,\n selected,\n ...rest\n}: {\n icon?: JSX.Element;\n onSelect: (event: Event) => void;\n children: React.ReactNode;\n shortcut?: string;\n selected?: boolean;\n className?: string;\n} & Omit, \"onSelect\">) => {\n const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect);\n\n return (\n \n \n {children}\n \n \n );\n};\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nexport const DropDownMenuItemBadge = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n return (\n \n {children}\n \n );\n};\nDropDownMenuItemBadge.displayName = \"DropdownMenuItemBadge\";\n\nDropdownMenuItem.Badge = DropDownMenuItemBadge;\n\nexport default DropdownMenuItem;\n","import React from \"react\";\n\nconst MenuSeparator = () => (\n \n);\n\nexport default MenuSeparator;\nMenuSeparator.displayName = \"DropdownMenuSeparator\";\n","import React from \"react\";\n\nconst MenuGroup = ({\n children,\n className = \"\",\n style,\n title,\n}: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n title?: string;\n}) => {\n return (\n
    \n {title &&

    {title}

    }\n {children}\n
    \n );\n};\n\nexport default MenuGroup;\nMenuGroup.displayName = \"DropdownMenuGroup\";\n","import \"./Island.scss\";\n\nimport React from \"react\";\nimport clsx from \"clsx\";\n\ntype IslandProps = {\n children: React.ReactNode;\n padding?: number;\n className?: string | boolean;\n style?: object;\n};\n\nexport const Island = React.forwardRef(\n ({ children, padding, className, style }, ref) => (\n \n {children}\n \n ),\n);\n","import { Island } from \"../Island\";\nimport { useDevice } from \"../App\";\nimport clsx from \"clsx\";\nimport Stack from \"../Stack\";\nimport React, { useEffect, useRef } from \"react\";\nimport { DropdownMenuContentPropsContext } from \"./common\";\nimport { useOutsideClick } from \"../../hooks/useOutsideClick\";\nimport { KEYS } from \"../../keys\";\nimport { EVENT } from \"../../constants\";\nimport { useStable } from \"../../hooks/useStable\";\n\nconst MenuContent = ({\n children,\n onClickOutside,\n className = \"\",\n onSelect,\n style,\n}: {\n children?: React.ReactNode;\n onClickOutside?: () => void;\n className?: string;\n /**\n * Called when any menu item is selected (clicked on).\n */\n onSelect?: (event: Event) => void;\n style?: React.CSSProperties;\n}) => {\n const device = useDevice();\n const menuRef = useRef(null);\n\n const callbacksRef = useStable({ onClickOutside });\n\n useOutsideClick(menuRef, () => {\n callbacksRef.onClickOutside?.();\n });\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === KEYS.ESCAPE) {\n event.stopImmediatePropagation();\n callbacksRef.onClickOutside?.();\n }\n };\n\n document.addEventListener(EVENT.KEYDOWN, onKeyDown, {\n // so that we can stop propagation of the event before it reaches\n // event handlers that were bound before this one\n capture: true,\n });\n return () => {\n document.removeEventListener(EVENT.KEYDOWN, onKeyDown);\n };\n }, [callbacksRef]);\n\n const classNames = clsx(`dropdown-menu ${className}`, {\n \"dropdown-menu--mobile\": device.editor.isMobile,\n }).trim();\n\n return (\n \n \n {/* the zIndex ensures this menu has higher stacking order,\n see https://github.com/excalidraw/excalidraw/pull/1445 */}\n {device.editor.isMobile ? (\n {children}\n ) : (\n \n {children}\n \n )}\n \n \n );\n};\nMenuContent.displayName = \"DropdownMenuContent\";\n\nexport default MenuContent;\n","import MenuItemContent from \"./DropdownMenuItemContent\";\nimport React from \"react\";\nimport {\n getDropdownMenuItemClassName,\n useHandleDropdownMenuItemClick,\n} from \"./common\";\n\nconst DropdownMenuItemLink = ({\n icon,\n shortcut,\n href,\n children,\n onSelect,\n className = \"\",\n selected,\n ...rest\n}: {\n href: string;\n icon?: JSX.Element;\n children: React.ReactNode;\n shortcut?: string;\n className?: string;\n selected?: boolean;\n onSelect?: (event: Event) => void;\n} & React.AnchorHTMLAttributes) => {\n const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default DropdownMenuItemLink;\nDropdownMenuItemLink.displayName = \"DropdownMenuItemLink\";\n","import React from \"react\";\n\nconst DropdownMenuItemCustom = ({\n children,\n className = \"\",\n selected,\n ...rest\n}: {\n children: React.ReactNode;\n className?: string;\n selected?: boolean;\n} & React.HTMLAttributes) => {\n return (\n \n {children}\n \n );\n};\n\nexport default DropdownMenuItemCustom;\n","import React from \"react\";\n\nexport const getMenuTriggerComponent = (children: React.ReactNode) => {\n const comp = React.Children.toArray(children).find(\n (child) =>\n React.isValidElement(child) &&\n typeof child.type !== \"string\" &&\n //@ts-ignore\n child?.type.displayName &&\n //@ts-ignore\n child.type.displayName === \"DropdownMenuTrigger\",\n );\n if (!comp) {\n return null;\n }\n //@ts-ignore\n return comp;\n};\n\nexport const getMenuContentComponent = (children: React.ReactNode) => {\n const comp = React.Children.toArray(children).find(\n (child) =>\n React.isValidElement(child) &&\n typeof child.type !== \"string\" &&\n //@ts-ignore\n child?.type.displayName &&\n //@ts-ignore\n child.type.displayName === \"DropdownMenuContent\",\n );\n if (!comp) {\n return null;\n }\n //@ts-ignore\n return comp;\n};\n","import React from \"react\";\nimport DropdownMenuTrigger from \"./DropdownMenuTrigger\";\nimport DropdownMenuItem from \"./DropdownMenuItem\";\nimport MenuSeparator from \"./DropdownMenuSeparator\";\nimport DropdownMenuGroup from \"./DropdownMenuGroup\";\nimport DropdownMenuContent from \"./DropdownMenuContent\";\nimport DropdownMenuItemLink from \"./DropdownMenuItemLink\";\nimport DropdownMenuItemCustom from \"./DropdownMenuItemCustom\";\nimport {\n getMenuContentComponent,\n getMenuTriggerComponent,\n} from \"./dropdownMenuUtils\";\n\nimport \"./DropdownMenu.scss\";\n\nconst DropdownMenu = ({\n children,\n open,\n}: {\n children?: React.ReactNode;\n open: boolean;\n}) => {\n const MenuTriggerComp = getMenuTriggerComponent(children);\n const MenuContentComp = getMenuContentComponent(children);\n return (\n <>\n {MenuTriggerComp}\n {open && MenuContentComp}\n \n );\n};\n\nDropdownMenu.Trigger = DropdownMenuTrigger;\nDropdownMenu.Content = DropdownMenuContent;\nDropdownMenu.Item = DropdownMenuItem;\nDropdownMenu.ItemLink = DropdownMenuItemLink;\nDropdownMenu.ItemCustom = DropdownMenuItemCustom;\nDropdownMenu.Group = DropdownMenuGroup;\nDropdownMenu.Separator = MenuSeparator;\n\nexport default DropdownMenu;\n\nDropdownMenu.displayName = \"DropdownMenu\";\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { createStore } from 'zustand/vanilla';\nexport * from 'zustand/vanilla';\nimport ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nlet didWarnAboutEqualityFn = false;\nfunction useStore(api, selector = api.getState, equalityFn) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && equalityFn && !didWarnAboutEqualityFn) {\n console.warn(\n \"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\"\n );\n didWarnAboutEqualityFn = true;\n }\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && typeof createState !== \"function\") {\n console.warn(\n \"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\"\n );\n }\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\nvar react = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.\"\n );\n }\n return create(createState);\n};\n\nexport { create, react as default, useStore };\n","import React from 'react';\nimport { create } from 'zustand';\n\nvar _window$document, _window$navigator;\n/**\n * An SSR-friendly useLayoutEffect.\n *\n * React currently throws a warning when using useLayoutEffect on the server.\n * To get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect elsewhere.\n *\n * @see https://github.com/facebook/react/issues/14927\n */\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' && ((_window$document = window.document) != null && _window$document.createElement || ((_window$navigator = window.navigator) == null ? void 0 : _window$navigator.product) === 'ReactNative') ? React.useLayoutEffect : React.useEffect;\n\nfunction tunnel() {\n const useStore = create(set => ({\n current: new Array(),\n version: 0,\n set\n }));\n return {\n In: ({\n children\n }) => {\n const set = useStore(state => state.set);\n const version = useStore(state => state.version);\n /* When this component mounts, we increase the store's version number.\n This will cause all existing rats to re-render (just like if the Out component\n were mapping items to a list.) The re-rendering will cause the final \n order of rendered components to match what the user is expecting. */\n\n useIsomorphicLayoutEffect(() => {\n set(state => ({\n version: state.version + 1\n }));\n }, []);\n /* Any time the children _or_ the store's version number change, insert\n the specified React children into the list of rats. */\n\n useIsomorphicLayoutEffect(() => {\n set(({\n current\n }) => ({\n current: [...current, children]\n }));\n return () => set(({\n current\n }) => ({\n current: current.filter(c => c !== children)\n }));\n }, [children, version]);\n return null;\n },\n Out: () => {\n const current = useStore(state => state.current);\n return /*#__PURE__*/React.createElement(React.Fragment, null, current);\n }\n };\n}\n\nexport { tunnel as default };\n","import React from \"react\";\nimport tunnel from \"tunnel-rat\";\n\nexport type Tunnel = ReturnType;\n\ntype TunnelsContextValue = {\n MainMenuTunnel: Tunnel;\n WelcomeScreenMenuHintTunnel: Tunnel;\n WelcomeScreenToolbarHintTunnel: Tunnel;\n WelcomeScreenHelpHintTunnel: Tunnel;\n WelcomeScreenCenterTunnel: Tunnel;\n FooterCenterTunnel: Tunnel;\n DefaultSidebarTriggerTunnel: Tunnel;\n DefaultSidebarTabTriggersTunnel: Tunnel;\n OverwriteConfirmDialogTunnel: Tunnel;\n TTDDialogTriggerTunnel: Tunnel;\n jotaiScope: symbol;\n};\n\nexport const TunnelsContext = React.createContext(null!);\n\nexport const useTunnels = () => React.useContext(TunnelsContext);\n\nexport const useInitializeTunnels = () => {\n return React.useMemo((): TunnelsContextValue => {\n return {\n MainMenuTunnel: tunnel(),\n WelcomeScreenMenuHintTunnel: tunnel(),\n WelcomeScreenToolbarHintTunnel: tunnel(),\n WelcomeScreenHelpHintTunnel: tunnel(),\n WelcomeScreenCenterTunnel: tunnel(),\n FooterCenterTunnel: tunnel(),\n DefaultSidebarTriggerTunnel: tunnel(),\n DefaultSidebarTabTriggersTunnel: tunnel(),\n OverwriteConfirmDialogTunnel: tunnel(),\n TTDDialogTriggerTunnel: tunnel(),\n jotaiScope: Symbol(),\n };\n }, []);\n};\n","import { useState } from \"react\";\nimport { ActionManager } from \"../actions/manager\";\nimport {\n ExcalidrawElementType,\n NonDeletedElementsMap,\n NonDeletedSceneElementsMap,\n} from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { useDevice } from \"./App\";\nimport {\n canChangeRoundness,\n canHaveArrowheads,\n getTargetElements,\n hasBackground,\n hasStrokeStyle,\n hasStrokeWidth,\n} from \"../scene\";\nimport { SHAPES } from \"../shapes\";\nimport { AppClassProperties, AppProps, UIAppState, Zoom } from \"../types\";\nimport { capitalizeString, isTransparent } from \"../utils\";\nimport Stack from \"./Stack\";\nimport { ToolButton } from \"./ToolButton\";\nimport { hasStrokeColor } from \"../scene/comparisons\";\nimport { trackEvent } from \"../analytics\";\nimport { hasBoundTextElement, isTextElement } from \"../element/typeChecks\";\nimport clsx from \"clsx\";\nimport { actionToggleZenMode } from \"../actions\";\nimport { Tooltip } from \"./Tooltip\";\nimport {\n shouldAllowVerticalAlign,\n suppportsHorizontalAlign,\n} from \"../element/textElement\";\n\nimport \"./Actions.scss\";\nimport DropdownMenu from \"./dropdownMenu/DropdownMenu\";\nimport {\n EmbedIcon,\n extraToolsIcon,\n frameToolIcon,\n mermaidLogoIcon,\n laserPointerToolIcon,\n OpenAIIcon,\n MagicIcon,\n} from \"./icons\";\nimport { KEYS } from \"../keys\";\nimport { useTunnels } from \"../context/tunnels\";\n\nexport const SelectedShapeActions = ({\n appState,\n elementsMap,\n renderAction,\n}: {\n appState: UIAppState;\n elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;\n renderAction: ActionManager[\"renderAction\"];\n}) => {\n const targetElements = getTargetElements(elementsMap, appState);\n\n let isSingleElementBoundContainer = false;\n if (\n targetElements.length === 2 &&\n (hasBoundTextElement(targetElements[0]) ||\n hasBoundTextElement(targetElements[1]))\n ) {\n isSingleElementBoundContainer = true;\n }\n const isEditing = Boolean(appState.editingElement);\n const device = useDevice();\n const isRTL = document.documentElement.getAttribute(\"dir\") === \"rtl\";\n\n const showFillIcons =\n (hasBackground(appState.activeTool.type) &&\n !isTransparent(appState.currentItemBackgroundColor)) ||\n targetElements.some(\n (element) =>\n hasBackground(element.type) && !isTransparent(element.backgroundColor),\n );\n const showChangeBackgroundIcons =\n hasBackground(appState.activeTool.type) ||\n targetElements.some((element) => hasBackground(element.type));\n\n const showLinkIcon =\n targetElements.length === 1 || isSingleElementBoundContainer;\n\n let commonSelectedType: ExcalidrawElementType | null =\n targetElements[0]?.type || null;\n\n for (const element of targetElements) {\n if (element.type !== commonSelectedType) {\n commonSelectedType = null;\n break;\n }\n }\n\n return (\n
    \n
    \n {((hasStrokeColor(appState.activeTool.type) &&\n appState.activeTool.type !== \"image\" &&\n commonSelectedType !== \"image\" &&\n commonSelectedType !== \"frame\" &&\n commonSelectedType !== \"magicframe\") ||\n targetElements.some((element) => hasStrokeColor(element.type))) &&\n renderAction(\"changeStrokeColor\")}\n
    \n {showChangeBackgroundIcons && (\n
    {renderAction(\"changeBackgroundColor\")}
    \n )}\n {showFillIcons && renderAction(\"changeFillStyle\")}\n\n {(hasStrokeWidth(appState.activeTool.type) ||\n targetElements.some((element) => hasStrokeWidth(element.type))) &&\n renderAction(\"changeStrokeWidth\")}\n\n {(appState.activeTool.type === \"freedraw\" ||\n targetElements.some((element) => element.type === \"freedraw\")) &&\n renderAction(\"changeStrokeShape\")}\n\n {(hasStrokeStyle(appState.activeTool.type) ||\n targetElements.some((element) => hasStrokeStyle(element.type))) && (\n <>\n {renderAction(\"changeStrokeStyle\")}\n {renderAction(\"changeSloppiness\")}\n \n )}\n\n {(canChangeRoundness(appState.activeTool.type) ||\n targetElements.some((element) => canChangeRoundness(element.type))) && (\n <>{renderAction(\"changeRoundness\")}\n )}\n\n {(appState.activeTool.type === \"text\" ||\n targetElements.some(isTextElement)) && (\n <>\n {renderAction(\"changeFontSize\")}\n\n {renderAction(\"changeFontFamily\")}\n\n {(appState.activeTool.type === \"text\" ||\n suppportsHorizontalAlign(targetElements, elementsMap)) &&\n renderAction(\"changeTextAlign\")}\n \n )}\n\n {shouldAllowVerticalAlign(targetElements, elementsMap) &&\n renderAction(\"changeVerticalAlign\")}\n {(canHaveArrowheads(appState.activeTool.type) ||\n targetElements.some((element) => canHaveArrowheads(element.type))) && (\n <>{renderAction(\"changeArrowhead\")}\n )}\n\n {renderAction(\"changeOpacity\")}\n\n
    \n {t(\"labels.layers\")}\n
    \n {renderAction(\"sendToBack\")}\n {renderAction(\"sendBackward\")}\n {renderAction(\"bringToFront\")}\n {renderAction(\"bringForward\")}\n
    \n
    \n\n {targetElements.length > 1 && !isSingleElementBoundContainer && (\n
    \n {t(\"labels.align\")}\n
    \n {\n // swap this order for RTL so the button positions always match their action\n // (i.e. the leftmost button aligns left)\n }\n {isRTL ? (\n <>\n {renderAction(\"alignRight\")}\n {renderAction(\"alignHorizontallyCentered\")}\n {renderAction(\"alignLeft\")}\n \n ) : (\n <>\n {renderAction(\"alignLeft\")}\n {renderAction(\"alignHorizontallyCentered\")}\n {renderAction(\"alignRight\")}\n \n )}\n {targetElements.length > 2 &&\n renderAction(\"distributeHorizontally\")}\n {/* breaks the row ˇˇ */}\n
    \n \n {renderAction(\"alignTop\")}\n {renderAction(\"alignVerticallyCentered\")}\n {renderAction(\"alignBottom\")}\n {targetElements.length > 2 &&\n renderAction(\"distributeVertically\")}\n
    \n
    \n
    \n )}\n {!isEditing && targetElements.length > 0 && (\n
    \n {t(\"labels.actions\")}\n
    \n {!device.editor.isMobile && renderAction(\"duplicateSelection\")}\n {!device.editor.isMobile && renderAction(\"deleteSelectedElements\")}\n {renderAction(\"group\")}\n {renderAction(\"ungroup\")}\n {showLinkIcon && renderAction(\"hyperlink\")}\n
    \n
    \n )}\n
    \n );\n};\n\nexport const ShapesSwitcher = ({\n activeTool,\n appState,\n app,\n UIOptions,\n}: {\n activeTool: UIAppState[\"activeTool\"];\n appState: UIAppState;\n app: AppClassProperties;\n UIOptions: AppProps[\"UIOptions\"];\n}) => {\n const [isExtraToolsMenuOpen, setIsExtraToolsMenuOpen] = useState(false);\n\n const frameToolSelected = activeTool.type === \"frame\";\n const laserToolSelected = activeTool.type === \"laser\";\n const embeddableToolSelected = activeTool.type === \"embeddable\";\n\n const { TTDDialogTriggerTunnel } = useTunnels();\n\n return (\n <>\n {SHAPES.map(({ value, icon, key, numericKey, fillable }, index) => {\n if (\n UIOptions.tools?.[\n value as Extract\n ] === false\n ) {\n return null;\n }\n\n const label = t(`toolBar.${value}`);\n const letter =\n key && capitalizeString(typeof key === \"string\" ? key : key[0]);\n const shortcut = letter\n ? `${letter} ${t(\"helpDialog.or\")} ${numericKey}`\n : `${numericKey}`;\n return (\n {\n if (!appState.penDetected && pointerType === \"pen\") {\n app.togglePenMode(true);\n }\n }}\n onChange={({ pointerType }) => {\n if (appState.activeTool.type !== value) {\n trackEvent(\"toolbar\", value, \"ui\");\n }\n if (value === \"image\") {\n app.setActiveTool({\n type: value,\n insertOnCanvasDirectly: pointerType !== \"mouse\",\n });\n } else {\n app.setActiveTool({ type: value });\n }\n }}\n />\n );\n })}\n
    \n\n \n setIsExtraToolsMenuOpen(!isExtraToolsMenuOpen)}\n title={t(\"toolBar.extraTools\")}\n >\n {extraToolsIcon}\n {app.props.aiEnabled !== false && (\n \n AI\n
    \n )}\n \n setIsExtraToolsMenuOpen(false)}\n onSelect={() => setIsExtraToolsMenuOpen(false)}\n className=\"App-toolbar__extra-tools-dropdown\"\n >\n app.setActiveTool({ type: \"frame\" })}\n icon={frameToolIcon}\n shortcut={KEYS.F.toLocaleUpperCase()}\n data-testid=\"toolbar-frame\"\n selected={frameToolSelected}\n >\n {t(\"toolBar.frame\")}\n \n app.setActiveTool({ type: \"embeddable\" })}\n icon={EmbedIcon}\n data-testid=\"toolbar-embeddable\"\n selected={embeddableToolSelected}\n >\n {t(\"toolBar.embeddable\")}\n \n app.setActiveTool({ type: \"laser\" })}\n icon={laserPointerToolIcon}\n data-testid=\"toolbar-laser\"\n selected={laserToolSelected}\n shortcut={KEYS.K.toLocaleUpperCase()}\n >\n {t(\"toolBar.laser\")}\n \n
    \n Generate\n
    \n {app.props.aiEnabled !== false && }\n app.setOpenDialog({ name: \"ttd\", tab: \"mermaid\" })}\n icon={mermaidLogoIcon}\n data-testid=\"toolbar-embeddable\"\n >\n {t(\"toolBar.mermaidToExcalidraw\")}\n \n {app.props.aiEnabled !== false && (\n <>\n app.onMagicframeToolSelect()}\n icon={MagicIcon}\n data-testid=\"toolbar-magicframe\"\n >\n {t(\"toolBar.magicframe\")}\n AI\n \n {\n trackEvent(\"ai\", \"open-settings\", \"d2c\");\n app.setOpenDialog({\n name: \"settings\",\n source: \"settings\",\n tab: \"diagram-to-code\",\n });\n }}\n icon={OpenAIIcon}\n data-testid=\"toolbar-magicSettings\"\n >\n {t(\"toolBar.magicSettings\")}\n \n \n )}\n \n \n \n );\n};\n\nexport const ZoomActions = ({\n renderAction,\n zoom,\n}: {\n renderAction: ActionManager[\"renderAction\"];\n zoom: Zoom;\n}) => (\n \n \n {renderAction(\"zoomOut\")}\n {renderAction(\"resetZoom\")}\n {renderAction(\"zoomIn\")}\n \n \n);\n\nexport const UndoRedoActions = ({\n renderAction,\n className,\n}: {\n renderAction: ActionManager[\"renderAction\"];\n className?: string;\n}) => (\n
    \n
    \n {renderAction(\"undo\")}\n
    \n
    \n {renderAction(\"redo\")}\n
    \n
    \n);\n\nexport const ExitZenModeAction = ({\n actionManager,\n showExitZenModeBtn,\n}: {\n actionManager: ActionManager;\n showExitZenModeBtn: boolean;\n}) => (\n actionManager.executeAction(actionToggleZenMode)}\n >\n {t(\"buttons.exitZenMode\")}\n \n);\n\nexport const FinalizeAction = ({\n renderAction,\n className,\n}: {\n renderAction: ActionManager[\"renderAction\"];\n className?: string;\n}) => (\n
    \n {renderAction(\"finalize\", { size: \"small\" })}\n
    \n);\n","import clsx from \"clsx\";\nimport \"./RadioGroup.scss\";\n\nexport type RadioGroupChoice = {\n value: T;\n label: string;\n};\n\nexport type RadioGroupProps = {\n choices: RadioGroupChoice[];\n value: T;\n onChange: (value: T) => void;\n name: string;\n};\n\nexport const RadioGroup = function ({\n onChange,\n value,\n choices,\n name,\n}: RadioGroupProps) {\n return (\n
    \n {choices.map((choice) => (\n \n onChange(choice.value)}\n />\n {choice.label}\n
    \n ))}\n \n );\n};\n","import clsx from \"clsx\";\n\nimport \"./Switch.scss\";\n\nexport type SwitchProps = {\n name: string;\n checked: boolean;\n title?: string;\n onChange: (value: boolean) => void;\n disabled?: boolean;\n};\n\nexport const Switch = ({\n title,\n name,\n checked,\n onChange,\n disabled = false,\n}: SwitchProps) => {\n return (\n
    \n onChange(!checked)}\n onKeyDown={(event) => {\n if (event.key === \" \") {\n onChange(!checked);\n }\n }}\n />\n
    \n );\n};\n","import React, { forwardRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./FilledButton.scss\";\nimport { AbortError } from \"../errors\";\nimport Spinner from \"./Spinner\";\nimport { isPromiseLike } from \"../utils\";\n\nexport type ButtonVariant = \"filled\" | \"outlined\" | \"icon\";\nexport type ButtonColor = \"primary\" | \"danger\" | \"warning\" | \"muted\";\nexport type ButtonSize = \"medium\" | \"large\";\n\nexport type FilledButtonProps = {\n label: string;\n\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent) => void;\n\n variant?: ButtonVariant;\n color?: ButtonColor;\n size?: ButtonSize;\n className?: string;\n fullWidth?: boolean;\n\n icon?: React.ReactNode;\n};\n\nexport const FilledButton = forwardRef(\n (\n {\n children,\n icon,\n onClick,\n label,\n variant = \"filled\",\n color = \"primary\",\n size = \"medium\",\n fullWidth,\n className,\n },\n ref,\n ) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const _onClick = async (event: React.MouseEvent) => {\n const ret = onClick?.(event);\n\n if (isPromiseLike(ret)) {\n try {\n setIsLoading(true);\n await ret;\n } catch (error: any) {\n if (!(error instanceof AbortError)) {\n throw error;\n } else {\n console.warn(error);\n }\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n return (\n \n
    \n {isLoading && }\n {icon && (\n
    \n {icon}\n
    \n )}\n {variant !== \"icon\" && (children ?? label)}\n
    \n \n );\n },\n);\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport type { ActionManager } from \"../actions/manager\";\nimport type { AppClassProperties, BinaryFiles, UIAppState } from \"../types\";\n\nimport {\n actionExportWithDarkMode,\n actionChangeExportBackground,\n actionChangeExportEmbedScene,\n actionChangeExportScale,\n actionChangeProjectName,\n} from \"../actions/actionExport\";\nimport { probablySupportsClipboardBlob } from \"../clipboard\";\nimport {\n DEFAULT_EXPORT_PADDING,\n EXPORT_IMAGE_TYPES,\n isFirefox,\n EXPORT_SCALES,\n} from \"../constants\";\n\nimport { canvasToBlob } from \"../data/blob\";\nimport { nativeFileSystemSupported } from \"../data/filesystem\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { isSomeElementSelected } from \"../scene\";\nimport { exportToCanvas } from \"../../utils/export\";\n\nimport { copyIcon, downloadIcon, helpIcon } from \"./icons\";\nimport { Dialog } from \"./Dialog\";\nimport { RadioGroup } from \"./RadioGroup\";\nimport { Switch } from \"./Switch\";\nimport { Tooltip } from \"./Tooltip\";\n\nimport \"./ImageExportDialog.scss\";\nimport { FilledButton } from \"./FilledButton\";\nimport { cloneJSON } from \"../utils\";\nimport { prepareElementsForExport } from \"../data\";\n\nconst supportsContextFilters =\n \"filter\" in document.createElement(\"canvas\").getContext(\"2d\")!;\n\nexport const ErrorCanvasPreview = () => {\n return (\n
    \n

    {t(\"canvasError.cannotShowPreview\")}

    \n

    \n {t(\"canvasError.canvasTooBig\")}\n

    \n ({t(\"canvasError.canvasTooBigTip\")})\n
    \n );\n};\n\ntype ImageExportModalProps = {\n appStateSnapshot: Readonly;\n elementsSnapshot: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles;\n actionManager: ActionManager;\n onExportImage: AppClassProperties[\"onExportImage\"];\n name: string;\n};\n\nconst ImageExportModal = ({\n appStateSnapshot,\n elementsSnapshot,\n files,\n actionManager,\n onExportImage,\n name,\n}: ImageExportModalProps) => {\n const hasSelection = isSomeElementSelected(\n elementsSnapshot,\n appStateSnapshot,\n );\n\n const [projectName, setProjectName] = useState(name);\n const [exportSelectionOnly, setExportSelectionOnly] = useState(hasSelection);\n const [exportWithBackground, setExportWithBackground] = useState(\n appStateSnapshot.exportBackground,\n );\n const [exportDarkMode, setExportDarkMode] = useState(\n appStateSnapshot.exportWithDarkMode,\n );\n const [embedScene, setEmbedScene] = useState(\n appStateSnapshot.exportEmbedScene,\n );\n const [exportScale, setExportScale] = useState(appStateSnapshot.exportScale);\n\n const previewRef = useRef(null);\n const [renderError, setRenderError] = useState(null);\n\n const { exportedElements, exportingFrame } = prepareElementsForExport(\n elementsSnapshot,\n appStateSnapshot,\n exportSelectionOnly,\n );\n\n useEffect(() => {\n const previewNode = previewRef.current;\n if (!previewNode) {\n return;\n }\n const maxWidth = previewNode.offsetWidth;\n const maxHeight = previewNode.offsetHeight;\n if (!maxWidth) {\n return;\n }\n exportToCanvas({\n elements: exportedElements,\n appState: {\n ...appStateSnapshot,\n name: projectName,\n exportBackground: exportWithBackground,\n exportWithDarkMode: exportDarkMode,\n exportScale,\n exportEmbedScene: embedScene,\n },\n files,\n exportPadding: DEFAULT_EXPORT_PADDING,\n maxWidthOrHeight: Math.max(maxWidth, maxHeight),\n exportingFrame,\n })\n .then((canvas) => {\n setRenderError(null);\n // if converting to blob fails, there's some problem that will\n // likely prevent preview and export (e.g. canvas too big)\n return canvasToBlob(canvas)\n .then(() => {\n previewNode.replaceChildren(canvas);\n })\n .catch((e) => {\n if (e.name === \"CANVAS_POSSIBLY_TOO_BIG\") {\n throw new Error(t(\"canvasError.canvasTooBig\"));\n }\n throw e;\n });\n })\n .catch((error) => {\n console.error(error);\n setRenderError(error);\n });\n }, [\n appStateSnapshot,\n files,\n exportedElements,\n exportingFrame,\n projectName,\n exportWithBackground,\n exportDarkMode,\n exportScale,\n embedScene,\n ]);\n\n return (\n
    \n

    {t(\"imageExportDialog.header\")}

    \n
    \n
    \n {renderError && }\n
    \n
    \n {!nativeFileSystemSupported && (\n {\n setProjectName(event.target.value);\n actionManager.executeAction(\n actionChangeProjectName,\n \"ui\",\n event.target.value,\n );\n }}\n />\n )}\n
    \n
    \n
    \n

    {t(\"imageExportDialog.header\")}

    \n {hasSelection && (\n \n {\n setExportSelectionOnly(checked);\n }}\n />\n \n )}\n \n {\n setExportWithBackground(checked);\n actionManager.executeAction(\n actionChangeExportBackground,\n \"ui\",\n checked,\n );\n }}\n />\n \n {supportsContextFilters && (\n \n {\n setExportDarkMode(checked);\n actionManager.executeAction(\n actionExportWithDarkMode,\n \"ui\",\n checked,\n );\n }}\n />\n \n )}\n \n {\n setEmbedScene(checked);\n actionManager.executeAction(\n actionChangeExportEmbedScene,\n \"ui\",\n checked,\n );\n }}\n />\n \n \n {\n setExportScale(scale);\n actionManager.executeAction(actionChangeExportScale, \"ui\", scale);\n }}\n choices={EXPORT_SCALES.map((scale) => ({\n value: scale,\n label: `${scale}\\u00d7`,\n }))}\n />\n \n\n
    \n \n onExportImage(EXPORT_IMAGE_TYPES.png, exportedElements, {\n exportingFrame,\n })\n }\n icon={downloadIcon}\n >\n {t(\"imageExportDialog.button.exportToPng\")}\n \n \n onExportImage(EXPORT_IMAGE_TYPES.svg, exportedElements, {\n exportingFrame,\n })\n }\n icon={downloadIcon}\n >\n {t(\"imageExportDialog.button.exportToSvg\")}\n \n {(probablySupportsClipboardBlob || isFirefox) && (\n \n onExportImage(EXPORT_IMAGE_TYPES.clipboard, exportedElements, {\n exportingFrame,\n })\n }\n icon={copyIcon}\n >\n {t(\"imageExportDialog.button.copyPngToClipboard\")}\n \n )}\n
    \n
    \n
    \n );\n};\n\ntype ExportSettingProps = {\n label: string;\n children: React.ReactNode;\n tooltip?: string;\n name?: string;\n};\n\nconst ExportSetting = ({\n label,\n children,\n tooltip,\n name,\n}: ExportSettingProps) => {\n return (\n
    \n \n {label}\n {tooltip && (\n \n {helpIcon}\n \n )}\n \n
    \n {children}\n
    \n
    \n );\n};\n\nexport const ImageExportDialog = ({\n elements,\n appState,\n files,\n actionManager,\n onExportImage,\n onCloseRequest,\n name,\n}: {\n appState: UIAppState;\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles;\n actionManager: ActionManager;\n onExportImage: AppClassProperties[\"onExportImage\"];\n onCloseRequest: () => void;\n name: string;\n}) => {\n // we need to take a snapshot so that the exported state can't be modified\n // while the dialog is open\n const [{ appStateSnapshot, elementsSnapshot }] = useState(() => {\n return {\n appStateSnapshot: cloneJSON(appState),\n elementsSnapshot: cloneJSON(elements),\n };\n });\n\n return (\n \n \n \n );\n};\n","import \"./FixedSideContainer.scss\";\n\nimport React from \"react\";\nimport clsx from \"clsx\";\n\ntype FixedSideContainerProps = {\n children: React.ReactNode;\n side: \"top\" | \"left\" | \"right\";\n className?: string;\n};\n\nexport const FixedSideContainer = ({\n children,\n side,\n className,\n}: FixedSideContainerProps) => (\n \n {children}\n \n);\n","import { t } from \"../i18n\";\nimport { AppClassProperties, Device, UIAppState } from \"../types\";\nimport {\n isImageElement,\n isLinearElement,\n isTextBindableContainer,\n isTextElement,\n} from \"../element/typeChecks\";\nimport { getShortcutKey } from \"../utils\";\nimport { isEraserActive } from \"../appState\";\n\nimport \"./HintViewer.scss\";\n\ninterface HintViewerProps {\n appState: UIAppState;\n isMobile: boolean;\n device: Device;\n app: AppClassProperties;\n}\n\nconst getHints = ({ appState, isMobile, device, app }: HintViewerProps) => {\n const { activeTool, isResizing, isRotating, lastPointerDownWith } = appState;\n const multiMode = appState.multiElement !== null;\n\n if (appState.openSidebar && !device.editor.canFitSidebar) {\n return null;\n }\n\n if (isEraserActive(appState)) {\n return t(\"hints.eraserRevert\");\n }\n if (activeTool.type === \"arrow\" || activeTool.type === \"line\") {\n if (!multiMode) {\n return t(\"hints.linearElement\");\n }\n return t(\"hints.linearElementMulti\");\n }\n\n if (activeTool.type === \"freedraw\") {\n return t(\"hints.freeDraw\");\n }\n\n if (activeTool.type === \"text\") {\n return t(\"hints.text\");\n }\n\n if (activeTool.type === \"embeddable\") {\n return t(\"hints.embeddable\");\n }\n\n if (appState.activeTool.type === \"image\" && appState.pendingImageElementId) {\n return t(\"hints.placeImage\");\n }\n\n const selectedElements = app.scene.getSelectedElements(appState);\n\n if (\n isResizing &&\n lastPointerDownWith === \"mouse\" &&\n selectedElements.length === 1\n ) {\n const targetElement = selectedElements[0];\n if (isLinearElement(targetElement) && targetElement.points.length === 2) {\n return t(\"hints.lockAngle\");\n }\n return isImageElement(targetElement)\n ? t(\"hints.resizeImage\")\n : t(\"hints.resize\");\n }\n\n if (isRotating && lastPointerDownWith === \"mouse\") {\n return t(\"hints.rotate\");\n }\n\n if (selectedElements.length === 1 && isTextElement(selectedElements[0])) {\n return t(\"hints.text_selected\");\n }\n\n if (appState.editingElement && isTextElement(appState.editingElement)) {\n return t(\"hints.text_editing\");\n }\n\n if (activeTool.type === \"selection\") {\n if (\n appState.draggingElement?.type === \"selection\" &&\n !selectedElements.length &&\n !appState.editingElement &&\n !appState.editingLinearElement\n ) {\n return t(\"hints.deepBoxSelect\");\n }\n\n if (appState.gridSize && appState.draggingElement) {\n return t(\"hints.disableSnapping\");\n }\n\n if (!selectedElements.length && !isMobile) {\n return t(\"hints.canvasPanning\");\n }\n\n if (selectedElements.length === 1) {\n if (isLinearElement(selectedElements[0])) {\n if (appState.editingLinearElement) {\n return appState.editingLinearElement.selectedPointsIndices\n ? t(\"hints.lineEditor_pointSelected\")\n : t(\"hints.lineEditor_nothingSelected\");\n }\n return t(\"hints.lineEditor_info\");\n }\n if (\n !appState.draggingElement &&\n isTextBindableContainer(selectedElements[0])\n ) {\n return t(\"hints.bindTextToElement\");\n }\n }\n }\n\n return null;\n};\n\nexport const HintViewer = ({\n appState,\n isMobile,\n device,\n app,\n}: HintViewerProps) => {\n let hint = getHints({\n appState,\n isMobile,\n device,\n app,\n });\n if (!hint) {\n return null;\n }\n\n hint = getShortcutKey(hint);\n\n return (\n
    \n {hint}\n
    \n );\n};\n","import { t } from \"../i18n\";\nimport { useState, useEffect } from \"react\";\nimport Spinner from \"./Spinner\";\nimport clsx from \"clsx\";\nimport { THEME } from \"../constants\";\nimport { Theme } from \"../element/types\";\n\nexport const LoadingMessage: React.FC<{ delay?: number; theme?: Theme }> = ({\n delay,\n theme,\n}) => {\n const [isWaiting, setIsWaiting] = useState(!!delay);\n\n useEffect(() => {\n if (!delay) {\n return;\n }\n const timer = setTimeout(() => {\n setIsWaiting(false);\n }, delay);\n return () => clearTimeout(timer);\n }, [delay]);\n\n if (isWaiting) {\n return null;\n }\n\n return (\n \n
    \n \n
    \n
    {t(\"labels.loadingScene\")}
    \n \n );\n};\n","import \"./ToolIcon.scss\";\n\nimport clsx from \"clsx\";\nimport { ToolButtonSize } from \"./ToolButton\";\nimport { LockedIcon, UnlockedIcon } from \"./icons\";\n\ntype LockIconProps = {\n title?: string;\n name?: string;\n checked: boolean;\n onChange?(): void;\n isMobile?: boolean;\n};\n\nconst DEFAULT_SIZE: ToolButtonSize = \"medium\";\n\nconst ICONS = {\n CHECKED: LockedIcon,\n UNCHECKED: UnlockedIcon,\n};\n\nexport const LockButton = (props: LockIconProps) => {\n return (\n \n \n
    \n {props.checked ? ICONS.CHECKED : ICONS.UNCHECKED}\n
    \n \n );\n};\n","import React from \"react\";\nimport { t } from \"../i18n\";\nimport { useExcalidrawContainer } from \"./App\";\n\nexport const Section: React.FC<{\n heading: \"canvasActions\" | \"selectedShapeActions\" | \"shapes\";\n children?: React.ReactNode | ((heading: React.ReactNode) => React.ReactNode);\n className?: string;\n}> = ({ heading, children, ...props }) => {\n const { id } = useExcalidrawContainer();\n const header = (\n

    \n {t(`headings.${heading}`)}\n

    \n );\n return (\n
    \n {typeof children === \"function\" ? (\n children(header)\n ) : (\n <>\n {header}\n {children}\n \n )}\n
    \n );\n};\n","import { getCommonBounds } from \"../element\";\nimport { InteractiveCanvasAppState } from \"../types\";\nimport { ScrollBars } from \"./types\";\nimport { getGlobalCSSVariable } from \"../utils\";\nimport { getLanguage } from \"../i18n\";\nimport { ExcalidrawElement } from \"../element/types\";\n\nexport const SCROLLBAR_MARGIN = 4;\nexport const SCROLLBAR_WIDTH = 6;\nexport const SCROLLBAR_COLOR = \"rgba(0,0,0,0.3)\";\n\nexport const getScrollBars = (\n elements: readonly ExcalidrawElement[],\n viewportWidth: number,\n viewportHeight: number,\n appState: InteractiveCanvasAppState,\n): ScrollBars => {\n if (!elements.length) {\n return {\n horizontal: null,\n vertical: null,\n };\n }\n // This is the bounding box of all the elements\n const [elementsMinX, elementsMinY, elementsMaxX, elementsMaxY] =\n getCommonBounds(elements);\n\n // Apply zoom\n const viewportWidthWithZoom = viewportWidth / appState.zoom.value;\n const viewportHeightWithZoom = viewportHeight / appState.zoom.value;\n\n const viewportWidthDiff = viewportWidth - viewportWidthWithZoom;\n const viewportHeightDiff = viewportHeight - viewportHeightWithZoom;\n\n const safeArea = {\n top: parseInt(getGlobalCSSVariable(\"sat\")) || 0,\n bottom: parseInt(getGlobalCSSVariable(\"sab\")) || 0,\n left: parseInt(getGlobalCSSVariable(\"sal\")) || 0,\n right: parseInt(getGlobalCSSVariable(\"sar\")) || 0,\n };\n\n const isRTL = getLanguage().rtl;\n\n // The viewport is the rectangle currently visible for the user\n const viewportMinX =\n -appState.scrollX + viewportWidthDiff / 2 + safeArea.left;\n const viewportMinY =\n -appState.scrollY + viewportHeightDiff / 2 + safeArea.top;\n const viewportMaxX = viewportMinX + viewportWidthWithZoom - safeArea.right;\n const viewportMaxY = viewportMinY + viewportHeightWithZoom - safeArea.bottom;\n\n // The scene is the bounding box of both the elements and viewport\n const sceneMinX = Math.min(elementsMinX, viewportMinX);\n const sceneMinY = Math.min(elementsMinY, viewportMinY);\n const sceneMaxX = Math.max(elementsMaxX, viewportMaxX);\n const sceneMaxY = Math.max(elementsMaxY, viewportMaxY);\n\n // The scrollbar represents where the viewport is in relationship to the scene\n\n return {\n horizontal:\n viewportMinX === sceneMinX && viewportMaxX === sceneMaxX\n ? null\n : {\n x:\n Math.max(safeArea.left, SCROLLBAR_MARGIN) +\n ((viewportMinX - sceneMinX) / (sceneMaxX - sceneMinX)) *\n viewportWidth,\n y:\n viewportHeight -\n SCROLLBAR_WIDTH -\n Math.max(SCROLLBAR_MARGIN, safeArea.bottom),\n width:\n ((viewportMaxX - viewportMinX) / (sceneMaxX - sceneMinX)) *\n viewportWidth -\n Math.max(SCROLLBAR_MARGIN * 2, safeArea.left + safeArea.right),\n height: SCROLLBAR_WIDTH,\n },\n vertical:\n viewportMinY === sceneMinY && viewportMaxY === sceneMaxY\n ? null\n : {\n x: isRTL\n ? Math.max(safeArea.left, SCROLLBAR_MARGIN)\n : viewportWidth -\n SCROLLBAR_WIDTH -\n Math.max(safeArea.right, SCROLLBAR_MARGIN),\n y:\n ((viewportMinY - sceneMinY) / (sceneMaxY - sceneMinY)) *\n viewportHeight +\n Math.max(safeArea.top, SCROLLBAR_MARGIN),\n width: SCROLLBAR_WIDTH,\n height:\n ((viewportMaxY - viewportMinY) / (sceneMaxY - sceneMinY)) *\n viewportHeight -\n Math.max(SCROLLBAR_MARGIN * 2, safeArea.top + safeArea.bottom),\n },\n };\n};\n\nexport const isOverScrollBars = (\n scrollBars: ScrollBars,\n x: number,\n y: number,\n): {\n isOverEither: boolean;\n isOverHorizontal: boolean;\n isOverVertical: boolean;\n} => {\n const [isOverHorizontal, isOverVertical] = [\n scrollBars.horizontal,\n scrollBars.vertical,\n ].map((scrollBar) => {\n return (\n scrollBar != null &&\n scrollBar.x <= x &&\n x <= scrollBar.x + scrollBar.width &&\n scrollBar.y <= y &&\n y <= scrollBar.y + scrollBar.height\n );\n });\n const isOverEither = isOverHorizontal || isOverVertical;\n return { isOverEither, isOverHorizontal, isOverVertical };\n};\n","import \"./ToolIcon.scss\";\n\nimport clsx from \"clsx\";\nimport { ToolButtonSize } from \"./ToolButton\";\nimport { PenModeIcon } from \"./icons\";\n\ntype PenModeIconProps = {\n title?: string;\n name?: string;\n checked: boolean;\n onChange?(): void;\n zenModeEnabled?: boolean;\n isMobile?: boolean;\n penDetected: boolean;\n};\n\nconst DEFAULT_SIZE: ToolButtonSize = \"medium\";\n\nexport const PenModeButton = (props: PenModeIconProps) => {\n if (!props.penDetected) {\n return null;\n }\n\n return (\n \n \n
    {PenModeIcon}
    \n \n );\n};\n","import React from \"react\";\nimport { getCommonBounds } from \"../element/bounds\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { getTargetElements } from \"../scene\";\nimport { ExcalidrawProps, UIAppState } from \"../types\";\nimport { CloseIcon } from \"./icons\";\nimport { Island } from \"./Island\";\nimport \"./Stats.scss\";\n\nexport const Stats = (props: {\n appState: UIAppState;\n setAppState: React.Component[\"setState\"];\n elements: readonly NonDeletedExcalidrawElement[];\n onClose: () => void;\n renderCustomStats: ExcalidrawProps[\"renderCustomStats\"];\n}) => {\n const boundingBox = getCommonBounds(props.elements);\n const selectedElements = getTargetElements(props.elements, props.appState);\n const selectedBoundingBox = getCommonBounds(selectedElements);\n\n return (\n
    \n \n
    \n {CloseIcon}\n
    \n

    {t(\"stats.title\")}

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {selectedElements.length === 1 && (\n \n \n \n )}\n\n {selectedElements.length > 1 && (\n <>\n \n \n \n \n \n \n \n \n )}\n {selectedElements.length > 0 && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {selectedElements.length === 1 && (\n \n \n \n \n )}\n {props.renderCustomStats?.(props.elements, props.appState)}\n \n
    {t(\"stats.scene\")}
    {t(\"stats.elements\")}{props.elements.length}
    {t(\"stats.width\")}{Math.round(boundingBox[2]) - Math.round(boundingBox[0])}
    {t(\"stats.height\")}{Math.round(boundingBox[3]) - Math.round(boundingBox[1])}
    {t(\"stats.element\")}
    {t(\"stats.selected\")}
    {t(\"stats.elements\")}{selectedElements.length}
    {\"x\"}{Math.round(selectedBoundingBox[0])}
    {\"y\"}{Math.round(selectedBoundingBox[1])}
    {t(\"stats.width\")}\n {Math.round(\n selectedBoundingBox[2] - selectedBoundingBox[0],\n )}\n
    {t(\"stats.height\")}\n {Math.round(\n selectedBoundingBox[3] - selectedBoundingBox[1],\n )}\n
    {t(\"stats.angle\")}\n {`${Math.round(\n (selectedElements[0].angle * 180) / Math.PI,\n )}°`}\n
    \n
    \n
    \n );\n};\n","import \"./ToolIcon.scss\";\n\nimport clsx from \"clsx\";\nimport { ToolButton } from \"./ToolButton\";\nimport { handIcon } from \"./icons\";\nimport { KEYS } from \"../keys\";\n\ntype LockIconProps = {\n title?: string;\n name?: string;\n checked: boolean;\n onChange?(): void;\n isMobile?: boolean;\n};\n\nexport const HandButton = (props: LockIconProps) => {\n return (\n props.onChange?.()}\n />\n );\n};\n","import React from \"react\";\nimport {\n AppClassProperties,\n AppProps,\n AppState,\n Device,\n ExcalidrawProps,\n UIAppState,\n} from \"../types\";\nimport { ActionManager } from \"../actions/manager\";\nimport { t } from \"../i18n\";\nimport Stack from \"./Stack\";\nimport { showSelectedShapeActions } from \"../element\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { FixedSideContainer } from \"./FixedSideContainer\";\nimport { Island } from \"./Island\";\nimport { HintViewer } from \"./HintViewer\";\nimport { calculateScrollCenter } from \"../scene\";\nimport { SelectedShapeActions, ShapesSwitcher } from \"./Actions\";\nimport { Section } from \"./Section\";\nimport { SCROLLBAR_WIDTH, SCROLLBAR_MARGIN } from \"../scene/scrollbars\";\nimport { LockButton } from \"./LockButton\";\nimport { PenModeButton } from \"./PenModeButton\";\nimport { Stats } from \"./Stats\";\nimport { actionToggleStats } from \"../actions\";\nimport { HandButton } from \"./HandButton\";\nimport { isHandToolActive } from \"../appState\";\nimport { useTunnels } from \"../context/tunnels\";\n\ntype MobileMenuProps = {\n appState: UIAppState;\n actionManager: ActionManager;\n renderJSONExportDialog: () => React.ReactNode;\n renderImageExportDialog: () => React.ReactNode;\n setAppState: React.Component[\"setState\"];\n elements: readonly NonDeletedExcalidrawElement[];\n onLockToggle: () => void;\n onHandToolToggle: () => void;\n onPenModeToggle: AppClassProperties[\"togglePenMode\"];\n\n renderTopRightUI?: (\n isMobile: boolean,\n appState: UIAppState,\n ) => JSX.Element | null;\n renderCustomStats?: ExcalidrawProps[\"renderCustomStats\"];\n renderSidebars: () => JSX.Element | null;\n device: Device;\n renderWelcomeScreen: boolean;\n UIOptions: AppProps[\"UIOptions\"];\n app: AppClassProperties;\n};\n\nexport const MobileMenu = ({\n appState,\n elements,\n actionManager,\n setAppState,\n onLockToggle,\n onHandToolToggle,\n onPenModeToggle,\n\n renderTopRightUI,\n renderCustomStats,\n renderSidebars,\n device,\n renderWelcomeScreen,\n UIOptions,\n app,\n}: MobileMenuProps) => {\n const {\n WelcomeScreenCenterTunnel,\n MainMenuTunnel,\n DefaultSidebarTriggerTunnel,\n } = useTunnels();\n const renderToolbar = () => {\n return (\n \n {renderWelcomeScreen && }\n
    \n {(heading: React.ReactNode) => (\n \n \n \n {heading}\n \n \n \n \n {renderTopRightUI && renderTopRightUI(true, appState)}\n
    \n {!appState.viewModeEnabled && (\n \n )}\n onPenModeToggle(null)}\n title={t(\"toolBar.penMode\")}\n isMobile\n penDetected={appState.penDetected}\n />\n \n onHandToolToggle()}\n title={t(\"toolBar.hand\")}\n isMobile\n />\n
    \n
    \n
    \n )}\n
    \n \n
    \n );\n };\n\n const renderAppToolbar = () => {\n if (appState.viewModeEnabled) {\n return (\n
    \n \n
    \n );\n }\n\n return (\n
    \n \n {actionManager.renderAction(\"toggleEditMenu\")}\n {actionManager.renderAction(\"undo\")}\n {actionManager.renderAction(\"redo\")}\n {actionManager.renderAction(\n appState.multiElement ? \"finalize\" : \"duplicateSelection\",\n )}\n {actionManager.renderAction(\"deleteSelectedElements\")}\n
    \n );\n };\n\n return (\n <>\n {renderSidebars()}\n {!appState.viewModeEnabled && renderToolbar()}\n {!appState.openMenu && appState.showStats && (\n {\n actionManager.executeAction(actionToggleStats);\n }}\n renderCustomStats={renderCustomStats}\n />\n )}\n \n \n {appState.openMenu === \"shape\" &&\n !appState.viewModeEnabled &&\n showSelectedShapeActions(appState, elements) ? (\n
    \n \n
    \n ) : null}\n
    \n {renderAppToolbar()}\n {appState.scrolledOutside &&\n !appState.openMenu &&\n !appState.openSidebar && (\n {\n setAppState((appState) => ({\n ...calculateScrollCenter(elements, appState),\n }));\n }}\n >\n {t(\"buttons.scrollBackToContent\")}\n \n )}\n
    \n
    \n \n \n );\n};\n","import oc from \"open-color\";\nimport React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { trackEvent } from \"../analytics\";\nimport { ChartElements, renderSpreadsheet, Spreadsheet } from \"../charts\";\nimport { ChartType } from \"../element/types\";\nimport { t } from \"../i18n\";\nimport { exportToSvg } from \"../scene/export\";\nimport { UIAppState } from \"../types\";\nimport { useApp } from \"./App\";\nimport { Dialog } from \"./Dialog\";\n\nimport \"./PasteChartDialog.scss\";\n\ntype OnInsertChart = (chartType: ChartType, elements: ChartElements) => void;\n\nconst ChartPreviewBtn = (props: {\n spreadsheet: Spreadsheet | null;\n chartType: ChartType;\n selected: boolean;\n onClick: OnInsertChart;\n}) => {\n const previewRef = useRef(null);\n const [chartElements, setChartElements] = useState(\n null,\n );\n\n useLayoutEffect(() => {\n if (!props.spreadsheet) {\n return;\n }\n\n const elements = renderSpreadsheet(\n props.chartType,\n props.spreadsheet,\n 0,\n 0,\n );\n setChartElements(elements);\n let svg: SVGSVGElement;\n const previewNode = previewRef.current!;\n\n (async () => {\n svg = await exportToSvg(\n elements,\n {\n exportBackground: false,\n viewBackgroundColor: oc.white,\n },\n null, // files\n );\n svg.querySelector(\".style-fonts\")?.remove();\n previewNode.replaceChildren();\n previewNode.appendChild(svg);\n\n if (props.selected) {\n (previewNode.parentNode as HTMLDivElement).focus();\n }\n })();\n\n return () => {\n previewNode.replaceChildren();\n };\n }, [props.spreadsheet, props.chartType, props.selected]);\n\n return (\n {\n if (chartElements) {\n props.onClick(props.chartType, chartElements);\n }\n }}\n >\n
    \n \n );\n};\n\nexport const PasteChartDialog = ({\n setAppState,\n appState,\n onClose,\n}: {\n appState: UIAppState;\n onClose: () => void;\n setAppState: React.Component[\"setState\"];\n}) => {\n const { onInsertElements } = useApp();\n const handleClose = React.useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n const handleChartClick = (chartType: ChartType, elements: ChartElements) => {\n onInsertElements(elements);\n trackEvent(\"paste\", \"chart\", chartType);\n setAppState({\n currentChartType: chartType,\n pasteDialog: {\n shown: false,\n data: null,\n },\n });\n };\n\n return (\n \n
    \n \n \n
    \n \n );\n};\n","import React from \"react\";\nimport { t } from \"../i18n\";\nimport { KEYS } from \"../keys\";\nimport { Dialog } from \"./Dialog\";\nimport { getShortcutKey } from \"../utils\";\nimport \"./HelpDialog.scss\";\nimport { ExternalLinkIcon } from \"./icons\";\nimport { probablySupportsClipboardBlob } from \"../clipboard\";\nimport { isDarwin, isFirefox, isWindows } from \"../constants\";\n\nconst Header = () => (\n
    \n \n {t(\"helpDialog.documentation\")}\n
    {ExternalLinkIcon}
    \n \n \n {t(\"helpDialog.blog\")}\n
    {ExternalLinkIcon}
    \n \n \n {t(\"helpDialog.github\")}\n
    {ExternalLinkIcon}
    \n \n
    \n);\n\nconst Section = (props: { title: string; children: React.ReactNode }) => (\n <>\n

    {props.title}

    \n
    {props.children}
    \n \n);\n\nconst ShortcutIsland = (props: {\n caption: string;\n children: React.ReactNode;\n className?: string;\n}) => (\n
    \n

    {props.caption}

    \n
    {props.children}
    \n
    \n);\n\nfunction* intersperse(as: JSX.Element[][], delim: string | null) {\n let first = true;\n for (const x of as) {\n if (!first) {\n yield delim;\n }\n first = false;\n yield x;\n }\n}\n\nconst upperCaseSingleChars = (str: string) => {\n return str.replace(/\\b[a-z]\\b/, (c) => c.toUpperCase());\n};\n\nconst Shortcut = ({\n label,\n shortcuts,\n isOr = true,\n}: {\n label: string;\n shortcuts: string[];\n isOr?: boolean;\n}) => {\n const splitShortcutKeys = shortcuts.map((shortcut) => {\n const keys = shortcut.endsWith(\"++\")\n ? [...shortcut.slice(0, -2).split(\"+\"), \"+\"]\n : shortcut.split(\"+\");\n\n return keys.map((key) => (\n {upperCaseSingleChars(key)}\n ));\n });\n\n return (\n
    \n
    {label}
    \n
    \n {[...intersperse(splitShortcutKeys, isOr ? t(\"helpDialog.or\") : null)]}\n
    \n
    \n );\n};\n\nconst ShortcutKey = (props: { children: React.ReactNode }) => (\n \n);\n\nexport const HelpDialog = ({ onClose }: { onClose?: () => void }) => {\n const handleClose = React.useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n return (\n <>\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* firefox supports clipboard API under a flag, so we'll\n show users what they can do in the error message */}\n {(probablySupportsClipboardBlob || isFirefox) && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \")]}\n />\n \n
    \n \n \n );\n};\n","import \"./UserList.scss\";\n\nimport React, { useLayoutEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { Collaborator, SocketId } from \"../types\";\nimport { Tooltip } from \"./Tooltip\";\nimport { useExcalidrawActionManager } from \"./App\";\nimport { ActionManager } from \"../actions/manager\";\n\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { Island } from \"./Island\";\nimport { searchIcon } from \"./icons\";\nimport { t } from \"../i18n\";\nimport { isShallowEqual } from \"../utils\";\nimport { supportsResizeObserver } from \"../constants\";\nimport { MarkRequired } from \"../utility-types\";\n\nexport type GoToCollaboratorComponentProps = {\n socketId: SocketId;\n collaborator: Collaborator;\n withName: boolean;\n isBeingFollowed: boolean;\n};\n\n/** collaborator user id or socket id (fallback) */\ntype ClientId = string & { _brand: \"UserId\" };\n\nconst DEFAULT_MAX_AVATARS = 4;\nconst SHOW_COLLABORATORS_FILTER_AT = 8;\n\nconst ConditionalTooltipWrapper = ({\n shouldWrap,\n children,\n username,\n}: {\n shouldWrap: boolean;\n children: React.ReactNode;\n username?: string | null;\n}) =>\n shouldWrap ? (\n {children}\n ) : (\n {children}\n );\n\nconst renderCollaborator = ({\n actionManager,\n collaborator,\n socketId,\n withName = false,\n shouldWrapWithTooltip = false,\n isBeingFollowed,\n}: {\n actionManager: ActionManager;\n collaborator: Collaborator;\n socketId: SocketId;\n withName?: boolean;\n shouldWrapWithTooltip?: boolean;\n isBeingFollowed: boolean;\n}) => {\n const data: GoToCollaboratorComponentProps = {\n socketId,\n collaborator,\n withName,\n isBeingFollowed,\n };\n const avatarJSX = actionManager.renderAction(\"goToCollaborator\", data);\n\n return (\n \n {avatarJSX}\n \n );\n};\n\ntype UserListUserObject = Pick<\n Collaborator,\n | \"avatarUrl\"\n | \"id\"\n | \"socketId\"\n | \"username\"\n | \"isInCall\"\n | \"isSpeaking\"\n | \"isMuted\"\n>;\n\ntype UserListProps = {\n className?: string;\n mobile?: boolean;\n collaborators: Map;\n userToFollow: SocketId | null;\n};\n\nconst collaboratorComparatorKeys = [\n \"avatarUrl\",\n \"id\",\n \"socketId\",\n \"username\",\n \"isInCall\",\n \"isSpeaking\",\n \"isMuted\",\n] as const;\n\nexport const UserList = React.memo(\n ({ className, mobile, collaborators, userToFollow }: UserListProps) => {\n const actionManager = useExcalidrawActionManager();\n\n const uniqueCollaboratorsMap = new Map<\n ClientId,\n MarkRequired\n >();\n\n collaborators.forEach((collaborator, socketId) => {\n const userId = (collaborator.id || socketId) as ClientId;\n uniqueCollaboratorsMap.set(\n // filter on user id, else fall back on unique socketId\n userId,\n { ...collaborator, socketId },\n );\n });\n\n const uniqueCollaboratorsArray = Array.from(\n uniqueCollaboratorsMap.values(),\n ).filter((collaborator) => collaborator.username?.trim());\n\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const userListWrapper = React.useRef(null);\n\n useLayoutEffect(() => {\n if (userListWrapper.current) {\n const updateMaxAvatars = (width: number) => {\n const maxAvatars = Math.max(1, Math.min(8, Math.floor(width / 38)));\n setMaxAvatars(maxAvatars);\n };\n\n updateMaxAvatars(userListWrapper.current.clientWidth);\n\n if (!supportsResizeObserver) {\n return;\n }\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width } = entry.contentRect;\n updateMaxAvatars(width);\n }\n });\n\n resizeObserver.observe(userListWrapper.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n }, []);\n\n const [maxAvatars, setMaxAvatars] = React.useState(DEFAULT_MAX_AVATARS);\n\n const searchTermNormalized = searchTerm.trim().toLowerCase();\n\n const filteredCollaborators = searchTermNormalized\n ? uniqueCollaboratorsArray.filter((collaborator) =>\n collaborator.username?.toLowerCase().includes(searchTerm),\n )\n : uniqueCollaboratorsArray;\n\n const firstNCollaborators = uniqueCollaboratorsArray.slice(\n 0,\n maxAvatars - 1,\n );\n\n const firstNAvatarsJSX = firstNCollaborators.map((collaborator) =>\n renderCollaborator({\n actionManager,\n collaborator,\n socketId: collaborator.socketId,\n shouldWrapWithTooltip: true,\n isBeingFollowed: collaborator.socketId === userToFollow,\n }),\n );\n\n return mobile ? (\n
    \n {uniqueCollaboratorsArray.map((collaborator) =>\n renderCollaborator({\n actionManager,\n collaborator,\n socketId: collaborator.socketId,\n shouldWrapWithTooltip: true,\n isBeingFollowed: collaborator.socketId === userToFollow,\n }),\n )}\n
    \n ) : (\n
    \n \n {firstNAvatarsJSX}\n\n {uniqueCollaboratorsArray.length > maxAvatars - 1 && (\n {\n if (!isOpen) {\n setSearchTerm(\"\");\n }\n }}\n >\n \n +{uniqueCollaboratorsArray.length - maxAvatars + 1}\n \n \n \n {uniqueCollaboratorsArray.length >=\n SHOW_COLLABORATORS_FILTER_AT && (\n
    \n {searchIcon}\n {\n setSearchTerm(e.target.value);\n }}\n />\n
    \n )}\n
    \n {filteredCollaborators.length === 0 && (\n
    \n {t(\"userList.search.empty\")}\n
    \n )}\n
    \n {t(\"userList.hint.text\")}\n
    \n {filteredCollaborators.map((collaborator) =>\n renderCollaborator({\n actionManager,\n collaborator,\n socketId: collaborator.socketId,\n withName: true,\n isBeingFollowed: collaborator.socketId === userToFollow,\n }),\n )}\n
    \n
    \n \n \n )}\n
    \n
    \n );\n },\n (prev, next) => {\n if (\n prev.collaborators.size !== next.collaborators.size ||\n prev.mobile !== next.mobile ||\n prev.className !== next.className ||\n prev.userToFollow !== next.userToFollow\n ) {\n return false;\n }\n\n const nextCollaboratorSocketIds = next.collaborators.keys();\n\n for (const [socketId, collaborator] of prev.collaborators) {\n const nextCollaborator = next.collaborators.get(socketId);\n if (\n !nextCollaborator ||\n // this checks order of collaborators in the map is the same\n // as previous render\n socketId !== nextCollaboratorSocketIds.next().value ||\n !isShallowEqual(\n collaborator,\n nextCollaborator,\n collaboratorComparatorKeys,\n )\n ) {\n return false;\n }\n }\n return true;\n },\n);\n","import OpenColor from \"open-color\";\n\nimport \"./Card.scss\";\n\nexport const Card: React.FC<{\n color: keyof OpenColor | \"primary\";\n children?: React.ReactNode;\n}> = ({ children, color }) => {\n return (\n \n {children}\n \n );\n};\n","import React from \"react\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { t } from \"../i18n\";\n\nimport { ExportOpts, BinaryFiles, UIAppState } from \"../types\";\nimport { Dialog } from \"./Dialog\";\nimport { exportToFileIcon, LinkIcon } from \"./icons\";\nimport { ToolButton } from \"./ToolButton\";\nimport { actionSaveFileToDisk } from \"../actions/actionExport\";\nimport { Card } from \"./Card\";\n\nimport \"./ExportDialog.scss\";\nimport { nativeFileSystemSupported } from \"../data/filesystem\";\nimport { trackEvent } from \"../analytics\";\nimport { ActionManager } from \"../actions/manager\";\nimport { getFrame } from \"../utils\";\n\nexport type ExportCB = (\n elements: readonly NonDeletedExcalidrawElement[],\n scale?: number,\n) => void;\n\nconst JSONExportModal = ({\n elements,\n appState,\n setAppState,\n files,\n actionManager,\n exportOpts,\n canvas,\n onCloseRequest,\n}: {\n appState: UIAppState;\n setAppState: React.Component[\"setState\"];\n files: BinaryFiles;\n elements: readonly NonDeletedExcalidrawElement[];\n actionManager: ActionManager;\n onCloseRequest: () => void;\n exportOpts: ExportOpts;\n canvas: HTMLCanvasElement;\n}) => {\n const { onExportToBackend } = exportOpts;\n return (\n
    \n
    \n {exportOpts.saveFileToDisk && (\n \n
    {exportToFileIcon}
    \n

    {t(\"exportDialog.disk_title\")}

    \n
    \n {t(\"exportDialog.disk_details\")}\n {!nativeFileSystemSupported &&\n actionManager.renderAction(\"changeProjectName\")}\n
    \n {\n actionManager.executeAction(actionSaveFileToDisk, \"ui\");\n }}\n />\n
    \n )}\n {onExportToBackend && (\n \n
    {LinkIcon}
    \n

    {t(\"exportDialog.link_title\")}

    \n
    {t(\"exportDialog.link_details\")}
    \n {\n try {\n trackEvent(\"export\", \"link\", `ui (${getFrame()})`);\n await onExportToBackend(elements, appState, files);\n onCloseRequest();\n } catch (error: any) {\n setAppState({ errorMessage: error.message });\n }\n }}\n />\n
    \n )}\n {exportOpts.renderCustomUI &&\n exportOpts.renderCustomUI(elements, appState, files, canvas)}\n
    \n
    \n );\n};\n\nexport const JSONExportDialog = ({\n elements,\n appState,\n files,\n actionManager,\n exportOpts,\n canvas,\n setAppState,\n}: {\n elements: readonly NonDeletedExcalidrawElement[];\n appState: UIAppState;\n files: BinaryFiles;\n actionManager: ActionManager;\n exportOpts: ExportOpts;\n canvas: HTMLCanvasElement;\n setAppState: React.Component[\"setState\"];\n}) => {\n const handleClose = React.useCallback(() => {\n setAppState({ openDialog: null });\n }, [setAppState]);\n\n return (\n <>\n {appState.openDialog?.name === \"jsonExport\" && (\n \n \n \n )}\n \n );\n};\n","import { t } from \"../i18n\";\nimport { HelpIcon } from \"./icons\";\n\ntype HelpButtonProps = {\n name?: string;\n id?: string;\n onClick?(): void;\n};\n\nexport const HelpButton = (props: HelpButtonProps) => (\n \n {HelpIcon}\n \n);\n","import clsx from \"clsx\";\nimport { actionShortcuts } from \"../../actions\";\nimport { ActionManager } from \"../../actions/manager\";\nimport {\n ExitZenModeAction,\n FinalizeAction,\n UndoRedoActions,\n ZoomActions,\n} from \"../Actions\";\nimport { useDevice } from \"../App\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport { HelpButton } from \"../HelpButton\";\nimport { Section } from \"../Section\";\nimport Stack from \"../Stack\";\nimport { UIAppState } from \"../../types\";\n\nconst Footer = ({\n appState,\n actionManager,\n showExitZenModeBtn,\n renderWelcomeScreen,\n}: {\n appState: UIAppState;\n actionManager: ActionManager;\n showExitZenModeBtn: boolean;\n renderWelcomeScreen: boolean;\n}) => {\n const { FooterCenterTunnel, WelcomeScreenHelpHintTunnel } = useTunnels();\n\n const device = useDevice();\n const showFinalize =\n !appState.viewModeEnabled && appState.multiElement && device.isTouchScreen;\n\n return (\n \n \n \n
    \n \n\n {!appState.viewModeEnabled && (\n \n )}\n {showFinalize && (\n \n )}\n
    \n
    \n \n \n \n
    \n {renderWelcomeScreen && }\n actionManager.executeAction(actionShortcuts)}\n />\n
    \n \n \n \n );\n};\n\nexport default Footer;\nFooter.displayName = \"Footer\";\n","import React from \"react\";\nimport { AppState, SidebarName, SidebarTabName } from \"../../types\";\n\nexport type SidebarTriggerProps = {\n name: SidebarName;\n tab?: SidebarTabName;\n icon?: JSX.Element;\n children?: React.ReactNode;\n title?: string;\n className?: string;\n onToggle?: (open: boolean) => void;\n style?: React.CSSProperties;\n};\n\nexport type SidebarProps

    = {\n name: SidebarName;\n children: React.ReactNode;\n /**\n * Called on sidebar open/close or tab change.\n */\n onStateChange?: (state: AppState[\"openSidebar\"]) => void;\n /**\n * supply alongside `docked` prop in order to make the Sidebar user-dockable\n */\n onDock?: (docked: boolean) => void;\n docked?: boolean;\n className?: string;\n // NOTE sidebars we use internally inside the editor must have this flag set.\n // It indicates that this sidebar should have lower precedence over host\n // sidebars, if both are open.\n /** @private internal */\n __fallback?: boolean;\n} & P;\n\nexport type SidebarPropsContextValue = Pick<\n SidebarProps,\n \"onDock\" | \"docked\"\n> & { onCloseRequest: () => void; shouldRenderDockButton: boolean };\n\nexport const SidebarPropsContext =\n React.createContext({} as SidebarPropsContextValue);\n","import clsx from \"clsx\";\nimport React from \"react\";\nimport { composeEventHandlers } from \"../utils\";\nimport \"./Button.scss\";\n\ninterface ButtonProps\n extends React.DetailedHTMLProps<\n React.ButtonHTMLAttributes,\n HTMLButtonElement\n > {\n type?: \"button\" | \"submit\" | \"reset\";\n onSelect: () => any;\n /** whether button is in active state */\n selected?: boolean;\n children: React.ReactNode;\n className?: string;\n}\n\n/**\n * A generic button component that follows Excalidraw's design system.\n * Style can be customised using `className` or `style` prop.\n * Accepts all props that a regular `button` element accepts.\n */\nexport const Button = ({\n type = \"button\",\n onSelect,\n selected,\n children,\n className = \"\",\n ...rest\n}: ButtonProps) => {\n return (\n {\n onSelect();\n })}\n type={type}\n className={clsx(\"excalidraw-button\", className, { selected })}\n {...rest}\n >\n {children}\n \n );\n};\n","import clsx from \"clsx\";\nimport { useContext } from \"react\";\nimport { t } from \"../../i18n\";\nimport { useDevice } from \"../App\";\nimport { SidebarPropsContext } from \"./common\";\nimport { CloseIcon, PinIcon } from \"../icons\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Button } from \"../Button\";\n\nexport const SidebarHeader = ({\n children,\n className,\n}: {\n children?: React.ReactNode;\n className?: string;\n}) => {\n const device = useDevice();\n const props = useContext(SidebarPropsContext);\n\n const renderDockButton = !!(\n device.editor.canFitSidebar && props.shouldRenderDockButton\n );\n\n return (\n \n {children}\n

    \n {renderDockButton && (\n \n props.onDock?.(!props.docked)}\n selected={!!props.docked}\n className=\"sidebar__dock\"\n data-testid=\"sidebar-dock\"\n aria-label={t(\"labels.sidebarLock\")}\n >\n {PinIcon}\n \n \n )}\n \n {CloseIcon}\n \n
    \n \n );\n};\n\nSidebarHeader.displayName = \"SidebarHeader\";\n","import { useExcalidrawSetAppState } from \"../App\";\nimport { SidebarTriggerProps } from \"./common\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport clsx from \"clsx\";\n\nimport \"./SidebarTrigger.scss\";\n\nexport const SidebarTrigger = ({\n name,\n tab,\n icon,\n title,\n children,\n onToggle,\n className,\n style,\n}: SidebarTriggerProps) => {\n const setAppState = useExcalidrawSetAppState();\n const appState = useUIAppState();\n\n return (\n \n );\n};\nSidebarTrigger.displayName = \"SidebarTrigger\";\n","import $6vYhU$react from \"react\";\nimport {createContextScope as $6vYhU$createContextScope} from \"@radix-ui/react-context\";\nimport {useComposedRefs as $6vYhU$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Slot as $6vYhU$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like ``.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/ const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = $6vYhU$createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: new Map()\n });\n const CollectionProvider = (props)=>{\n const { scope: scope , children: children } = props;\n const ref = $6vYhU$react.useRef(null);\n const itemMap = $6vYhU$react.useRef(new Map()).current;\n return /*#__PURE__*/ $6vYhU$react.createElement(CollectionProviderImpl, {\n scope: scope,\n itemMap: itemMap,\n collectionRef: ref\n }, children);\n };\n /*#__PURE__*/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/ const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n const CollectionSlot = /*#__PURE__*/ $6vYhU$react.forwardRef((props, forwardedRef)=>{\n const { scope: scope , children: children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6vYhU$useComposedRefs(forwardedRef, context.collectionRef);\n return /*#__PURE__*/ $6vYhU$react.createElement($6vYhU$Slot, {\n ref: composedRefs\n }, children);\n });\n /*#__PURE__*/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/ const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n const CollectionItemSlot = /*#__PURE__*/ $6vYhU$react.forwardRef((props, forwardedRef)=>{\n const { scope: scope , children: children , ...itemData } = props;\n const ref = $6vYhU$react.useRef(null);\n const composedRefs = $6vYhU$useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n $6vYhU$react.useEffect(()=>{\n context.itemMap.set(ref, {\n ref: ref,\n ...itemData\n });\n return ()=>void context.itemMap.delete(ref)\n ;\n });\n return /*#__PURE__*/ $6vYhU$react.createElement($6vYhU$Slot, {\n [ITEM_DATA_ATTR]: '',\n ref: composedRefs\n }, children);\n });\n /*#__PURE__*/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/ function useCollection(scope) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n const getItems = $6vYhU$react.useCallback(()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\n\n\nexport {$e02a7d9cb1dc128c$export$c74125a8e3af6bb2 as createCollection};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $7Gjcd$createContext, createElement as $7Gjcd$createElement, useContext as $7Gjcd$useContext} from \"react\";\n\n\nconst $f631663db3294ace$var$DirectionContext = /*#__PURE__*/ $7Gjcd$createContext(undefined);\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/ const $f631663db3294ace$export$c760c09fdd558351 = (props)=>{\n const { dir: dir , children: children } = props;\n return /*#__PURE__*/ $7Gjcd$createElement($f631663db3294ace$var$DirectionContext.Provider, {\n value: dir\n }, children);\n};\n/* -----------------------------------------------------------------------------------------------*/ function $f631663db3294ace$export$b39126d51d94e6f3(localDir) {\n const globalDir = $7Gjcd$useContext($f631663db3294ace$var$DirectionContext);\n return localDir || globalDir || 'ltr';\n}\nconst $f631663db3294ace$export$2881499e37b75b9a = $f631663db3294ace$export$c760c09fdd558351;\n\n\n\n\nexport {$f631663db3294ace$export$b39126d51d94e6f3 as useDirection, $f631663db3294ace$export$2881499e37b75b9a as Provider, $f631663db3294ace$export$c760c09fdd558351 as DirectionProvider};\n//# sourceMappingURL=index.module.js.map\n","import $98Iye$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $98Iye$forwardRef, createElement as $98Iye$createElement, useRef as $98Iye$useRef, useState as $98Iye$useState, useEffect as $98Iye$useEffect, useCallback as $98Iye$useCallback} from \"react\";\nimport {composeEventHandlers as $98Iye$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {createCollection as $98Iye$createCollection} from \"@radix-ui/react-collection\";\nimport {useComposedRefs as $98Iye$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $98Iye$createContextScope} from \"@radix-ui/react-context\";\nimport {useId as $98Iye$useId} from \"@radix-ui/react-id\";\nimport {Primitive as $98Iye$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $98Iye$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useControllableState as $98Iye$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useDirection as $98Iye$useDirection} from \"@radix-ui/react-direction\";\n\n\n\n\n\n\n\n\n\n\n\n\nconst $d7bdfb9eb0fdf311$var$ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nconst $d7bdfb9eb0fdf311$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroup\n * -----------------------------------------------------------------------------------------------*/ const $d7bdfb9eb0fdf311$var$GROUP_NAME = 'RovingFocusGroup';\nconst [$d7bdfb9eb0fdf311$var$Collection, $d7bdfb9eb0fdf311$var$useCollection, $d7bdfb9eb0fdf311$var$createCollectionScope] = $98Iye$createCollection($d7bdfb9eb0fdf311$var$GROUP_NAME);\nconst [$d7bdfb9eb0fdf311$var$createRovingFocusGroupContext, $d7bdfb9eb0fdf311$export$c7109489551a4f4] = $98Iye$createContextScope($d7bdfb9eb0fdf311$var$GROUP_NAME, [\n $d7bdfb9eb0fdf311$var$createCollectionScope\n]);\nconst [$d7bdfb9eb0fdf311$var$RovingFocusProvider, $d7bdfb9eb0fdf311$var$useRovingFocusContext] = $d7bdfb9eb0fdf311$var$createRovingFocusGroupContext($d7bdfb9eb0fdf311$var$GROUP_NAME);\nconst $d7bdfb9eb0fdf311$export$8699f7c8af148338 = /*#__PURE__*/ $98Iye$forwardRef((props, forwardedRef)=>{\n return /*#__PURE__*/ $98Iye$createElement($d7bdfb9eb0fdf311$var$Collection.Provider, {\n scope: props.__scopeRovingFocusGroup\n }, /*#__PURE__*/ $98Iye$createElement($d7bdfb9eb0fdf311$var$Collection.Slot, {\n scope: props.__scopeRovingFocusGroup\n }, /*#__PURE__*/ $98Iye$createElement($d7bdfb9eb0fdf311$var$RovingFocusGroupImpl, $98Iye$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef\n }))));\n});\n/*#__PURE__*/ Object.assign($d7bdfb9eb0fdf311$export$8699f7c8af148338, {\n displayName: $d7bdfb9eb0fdf311$var$GROUP_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $d7bdfb9eb0fdf311$var$RovingFocusGroupImpl = /*#__PURE__*/ $98Iye$forwardRef((props, forwardedRef)=>{\n const { __scopeRovingFocusGroup: __scopeRovingFocusGroup , orientation: orientation , loop: loop = false , dir: dir , currentTabStopId: currentTabStopIdProp , defaultCurrentTabStopId: defaultCurrentTabStopId , onCurrentTabStopIdChange: onCurrentTabStopIdChange , onEntryFocus: onEntryFocus , ...groupProps } = props;\n const ref = $98Iye$useRef(null);\n const composedRefs = $98Iye$useComposedRefs(forwardedRef, ref);\n const direction = $98Iye$useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = $98Iye$useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = $98Iye$useState(false);\n const handleEntryFocus = $98Iye$useCallbackRef(onEntryFocus);\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = $98Iye$useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = $98Iye$useState(0);\n $98Iye$useEffect(()=>{\n const node = ref.current;\n if (node) {\n node.addEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus);\n return ()=>node.removeEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus)\n ;\n }\n }, [\n handleEntryFocus\n ]);\n return /*#__PURE__*/ $98Iye$createElement($d7bdfb9eb0fdf311$var$RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation: orientation,\n dir: direction,\n loop: loop,\n currentTabStopId: currentTabStopId,\n onItemFocus: $98Iye$useCallback((tabStopId)=>setCurrentTabStopId(tabStopId)\n , [\n setCurrentTabStopId\n ]),\n onItemShiftTab: $98Iye$useCallback(()=>setIsTabbingBackOut(true)\n , []),\n onFocusableItemAdd: $98Iye$useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount + 1\n )\n , []),\n onFocusableItemRemove: $98Iye$useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount - 1\n )\n , [])\n }, /*#__PURE__*/ $98Iye$createElement($98Iye$Primitive.div, $98Iye$babelruntimehelpersesmextends({\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation\n }, groupProps, {\n ref: composedRefs,\n style: {\n outline: 'none',\n ...props.style\n },\n onMouseDown: $98Iye$composeEventHandlers(props.onMouseDown, ()=>{\n isClickFocusRef.current = true;\n }),\n onFocus: $98Iye$composeEventHandlers(props.onFocus, (event)=>{\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, $d7bdfb9eb0fdf311$var$EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item)=>item.focusable\n );\n const activeItem = items.find((item)=>item.active\n );\n const currentItem = items.find((item)=>item.id === currentTabStopId\n );\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map((item)=>item.ref.current\n );\n $d7bdfb9eb0fdf311$var$focusFirst(candidateNodes);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: $98Iye$composeEventHandlers(props.onBlur, ()=>setIsTabbingBackOut(false)\n )\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroupItem\n * -----------------------------------------------------------------------------------------------*/ const $d7bdfb9eb0fdf311$var$ITEM_NAME = 'RovingFocusGroupItem';\nconst $d7bdfb9eb0fdf311$export$ab9df7c53fe8454 = /*#__PURE__*/ $98Iye$forwardRef((props, forwardedRef)=>{\n const { __scopeRovingFocusGroup: __scopeRovingFocusGroup , focusable: focusable = true , active: active = false , tabStopId: tabStopId , ...itemProps } = props;\n const autoId = $98Iye$useId();\n const id = tabStopId || autoId;\n const context = $d7bdfb9eb0fdf311$var$useRovingFocusContext($d7bdfb9eb0fdf311$var$ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd: onFocusableItemAdd , onFocusableItemRemove: onFocusableItemRemove } = context;\n $98Iye$useEffect(()=>{\n if (focusable) {\n onFocusableItemAdd();\n return ()=>onFocusableItemRemove()\n ;\n }\n }, [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return /*#__PURE__*/ $98Iye$createElement($d7bdfb9eb0fdf311$var$Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id: id,\n focusable: focusable,\n active: active\n }, /*#__PURE__*/ $98Iye$createElement($98Iye$Primitive.span, $98Iye$babelruntimehelpersesmextends({\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation\n }, itemProps, {\n ref: forwardedRef,\n onMouseDown: $98Iye$composeEventHandlers(props.onMouseDown, (event)=>{\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n if (!focusable) event.preventDefault(); // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n else context.onItemFocus(id);\n }),\n onFocus: $98Iye$composeEventHandlers(props.onFocus, ()=>context.onItemFocus(id)\n ),\n onKeyDown: $98Iye$composeEventHandlers(props.onKeyDown, (event)=>{\n if (event.key === 'Tab' && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = $d7bdfb9eb0fdf311$var$getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== undefined) {\n event.preventDefault();\n const items = getItems().filter((item)=>item.focusable\n );\n let candidateNodes = items.map((item)=>item.ref.current\n );\n if (focusIntent === 'last') candidateNodes.reverse();\n else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? $d7bdfb9eb0fdf311$var$wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */ setTimeout(()=>$d7bdfb9eb0fdf311$var$focusFirst(candidateNodes)\n );\n }\n })\n })));\n});\n/*#__PURE__*/ Object.assign($d7bdfb9eb0fdf311$export$ab9df7c53fe8454, {\n displayName: $d7bdfb9eb0fdf311$var$ITEM_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ // prettier-ignore\nconst $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: 'prev',\n ArrowUp: 'prev',\n ArrowRight: 'next',\n ArrowDown: 'next',\n PageUp: 'first',\n Home: 'first',\n PageDown: 'last',\n End: 'last'\n};\nfunction $d7bdfb9eb0fdf311$var$getDirectionAwareKey(key, dir) {\n if (dir !== 'rtl') return key;\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\nfunction $d7bdfb9eb0fdf311$var$getFocusIntent(event, orientation, dir) {\n const key = $d7bdfb9eb0fdf311$var$getDirectionAwareKey(event.key, dir);\n if (orientation === 'vertical' && [\n 'ArrowLeft',\n 'ArrowRight'\n ].includes(key)) return undefined;\n if (orientation === 'horizontal' && [\n 'ArrowUp',\n 'ArrowDown'\n ].includes(key)) return undefined;\n return $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction $d7bdfb9eb0fdf311$var$focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */ function $d7bdfb9eb0fdf311$var$wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]\n );\n}\nconst $d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9 = $d7bdfb9eb0fdf311$export$8699f7c8af148338;\nconst $d7bdfb9eb0fdf311$export$6d08773d2e66f8f2 = $d7bdfb9eb0fdf311$export$ab9df7c53fe8454;\n\n\n\n\nexport {$d7bdfb9eb0fdf311$export$c7109489551a4f4 as createRovingFocusGroupScope, $d7bdfb9eb0fdf311$export$8699f7c8af148338 as RovingFocusGroup, $d7bdfb9eb0fdf311$export$ab9df7c53fe8454 as RovingFocusGroupItem, $d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9 as Root, $d7bdfb9eb0fdf311$export$6d08773d2e66f8f2 as Item};\n//# sourceMappingURL=index.module.js.map\n","import $1IHzk$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $1IHzk$forwardRef, createElement as $1IHzk$createElement, useRef as $1IHzk$useRef, useEffect as $1IHzk$useEffect} from \"react\";\nimport {composeEventHandlers as $1IHzk$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {createContextScope as $1IHzk$createContextScope} from \"@radix-ui/react-context\";\nimport {createRovingFocusGroupScope as $1IHzk$createRovingFocusGroupScope, Root as $1IHzk$Root, Item as $1IHzk$Item} from \"@radix-ui/react-roving-focus\";\nimport {Presence as $1IHzk$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $1IHzk$Primitive} from \"@radix-ui/react-primitive\";\nimport {useDirection as $1IHzk$useDirection} from \"@radix-ui/react-direction\";\nimport {useControllableState as $1IHzk$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useId as $1IHzk$useId} from \"@radix-ui/react-id\";\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Tabs\n * -----------------------------------------------------------------------------------------------*/ const $69cb30bb0017df05$var$TABS_NAME = 'Tabs';\nconst [$69cb30bb0017df05$var$createTabsContext, $69cb30bb0017df05$export$355f5bd209d7b13a] = $1IHzk$createContextScope($69cb30bb0017df05$var$TABS_NAME, [\n $1IHzk$createRovingFocusGroupScope\n]);\nconst $69cb30bb0017df05$var$useRovingFocusGroupScope = $1IHzk$createRovingFocusGroupScope();\nconst [$69cb30bb0017df05$var$TabsProvider, $69cb30bb0017df05$var$useTabsContext] = $69cb30bb0017df05$var$createTabsContext($69cb30bb0017df05$var$TABS_NAME);\nconst $69cb30bb0017df05$export$b2539bed5023c21c = /*#__PURE__*/ $1IHzk$forwardRef((props, forwardedRef)=>{\n const { __scopeTabs: __scopeTabs , value: valueProp , onValueChange: onValueChange , defaultValue: defaultValue , orientation: orientation = 'horizontal' , dir: dir , activationMode: activationMode = 'automatic' , ...tabsProps } = props;\n const direction = $1IHzk$useDirection(dir);\n const [value, setValue] = $1IHzk$useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /*#__PURE__*/ $1IHzk$createElement($69cb30bb0017df05$var$TabsProvider, {\n scope: __scopeTabs,\n baseId: $1IHzk$useId(),\n value: value,\n onValueChange: setValue,\n orientation: orientation,\n dir: direction,\n activationMode: activationMode\n }, /*#__PURE__*/ $1IHzk$createElement($1IHzk$Primitive.div, $1IHzk$babelruntimehelpersesmextends({\n dir: direction,\n \"data-orientation\": orientation\n }, tabsProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($69cb30bb0017df05$export$b2539bed5023c21c, {\n displayName: $69cb30bb0017df05$var$TABS_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * TabsList\n * -----------------------------------------------------------------------------------------------*/ const $69cb30bb0017df05$var$TAB_LIST_NAME = 'TabsList';\nconst $69cb30bb0017df05$export$9712d22edc0d78c1 = /*#__PURE__*/ $1IHzk$forwardRef((props, forwardedRef)=>{\n const { __scopeTabs: __scopeTabs , loop: loop = true , ...listProps } = props;\n const context = $69cb30bb0017df05$var$useTabsContext($69cb30bb0017df05$var$TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = $69cb30bb0017df05$var$useRovingFocusGroupScope(__scopeTabs);\n return /*#__PURE__*/ $1IHzk$createElement($1IHzk$Root, $1IHzk$babelruntimehelpersesmextends({\n asChild: true\n }, rovingFocusGroupScope, {\n orientation: context.orientation,\n dir: context.dir,\n loop: loop\n }), /*#__PURE__*/ $1IHzk$createElement($1IHzk$Primitive.div, $1IHzk$babelruntimehelpersesmextends({\n role: \"tablist\",\n \"aria-orientation\": context.orientation\n }, listProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($69cb30bb0017df05$export$9712d22edc0d78c1, {\n displayName: $69cb30bb0017df05$var$TAB_LIST_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * TabsTrigger\n * -----------------------------------------------------------------------------------------------*/ const $69cb30bb0017df05$var$TRIGGER_NAME = 'TabsTrigger';\nconst $69cb30bb0017df05$export$8114b9fdfdf9f3ba = /*#__PURE__*/ $1IHzk$forwardRef((props, forwardedRef)=>{\n const { __scopeTabs: __scopeTabs , value: value , disabled: disabled = false , ...triggerProps } = props;\n const context = $69cb30bb0017df05$var$useTabsContext($69cb30bb0017df05$var$TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = $69cb30bb0017df05$var$useRovingFocusGroupScope(__scopeTabs);\n const triggerId = $69cb30bb0017df05$var$makeTriggerId(context.baseId, value);\n const contentId = $69cb30bb0017df05$var$makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /*#__PURE__*/ $1IHzk$createElement($1IHzk$Item, $1IHzk$babelruntimehelpersesmextends({\n asChild: true\n }, rovingFocusGroupScope, {\n focusable: !disabled,\n active: isSelected\n }), /*#__PURE__*/ $1IHzk$createElement($1IHzk$Primitive.button, $1IHzk$babelruntimehelpersesmextends({\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? 'active' : 'inactive',\n \"data-disabled\": disabled ? '' : undefined,\n disabled: disabled,\n id: triggerId\n }, triggerProps, {\n ref: forwardedRef,\n onMouseDown: $1IHzk$composeEventHandlers(props.onMouseDown, (event)=>{\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) context.onValueChange(value);\n else // prevent focus to avoid accidental activation\n event.preventDefault();\n }),\n onKeyDown: $1IHzk$composeEventHandlers(props.onKeyDown, (event)=>{\n if ([\n ' ',\n 'Enter'\n ].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: $1IHzk$composeEventHandlers(props.onFocus, ()=>{\n // handle \"automatic\" activation if necessary\n // ie. activate tab following focus\n const isAutomaticActivation = context.activationMode !== 'manual';\n if (!isSelected && !disabled && isAutomaticActivation) context.onValueChange(value);\n })\n })));\n});\n/*#__PURE__*/ Object.assign($69cb30bb0017df05$export$8114b9fdfdf9f3ba, {\n displayName: $69cb30bb0017df05$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * TabsContent\n * -----------------------------------------------------------------------------------------------*/ const $69cb30bb0017df05$var$CONTENT_NAME = 'TabsContent';\nconst $69cb30bb0017df05$export$bd905d70e8fd2ebb = /*#__PURE__*/ $1IHzk$forwardRef((props, forwardedRef)=>{\n const { __scopeTabs: __scopeTabs , value: value , forceMount: forceMount , children: children , ...contentProps } = props;\n const context = $69cb30bb0017df05$var$useTabsContext($69cb30bb0017df05$var$CONTENT_NAME, __scopeTabs);\n const triggerId = $69cb30bb0017df05$var$makeTriggerId(context.baseId, value);\n const contentId = $69cb30bb0017df05$var$makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = $1IHzk$useRef(isSelected);\n $1IHzk$useEffect(()=>{\n const rAF = requestAnimationFrame(()=>isMountAnimationPreventedRef.current = false\n );\n return ()=>cancelAnimationFrame(rAF)\n ;\n }, []);\n return /*#__PURE__*/ $1IHzk$createElement($1IHzk$Presence, {\n present: forceMount || isSelected\n }, ({ present: present })=>/*#__PURE__*/ $1IHzk$createElement($1IHzk$Primitive.div, $1IHzk$babelruntimehelpersesmextends({\n \"data-state\": isSelected ? 'active' : 'inactive',\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0\n }, contentProps, {\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? '0s' : undefined\n }\n }), present && children)\n );\n});\n/*#__PURE__*/ Object.assign($69cb30bb0017df05$export$bd905d70e8fd2ebb, {\n displayName: $69cb30bb0017df05$var$CONTENT_NAME\n});\n/* ---------------------------------------------------------------------------------------------- */ function $69cb30bb0017df05$var$makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction $69cb30bb0017df05$var$makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nconst $69cb30bb0017df05$export$be92b6f5f03c0fe9 = $69cb30bb0017df05$export$b2539bed5023c21c;\nconst $69cb30bb0017df05$export$54c2e3dc7acea9f5 = $69cb30bb0017df05$export$9712d22edc0d78c1;\nconst $69cb30bb0017df05$export$41fb9f06171c75f4 = $69cb30bb0017df05$export$8114b9fdfdf9f3ba;\nconst $69cb30bb0017df05$export$7c6e2c02157bb7d2 = $69cb30bb0017df05$export$bd905d70e8fd2ebb;\n\n\n\n\nexport {$69cb30bb0017df05$export$355f5bd209d7b13a as createTabsScope, $69cb30bb0017df05$export$b2539bed5023c21c as Tabs, $69cb30bb0017df05$export$9712d22edc0d78c1 as TabsList, $69cb30bb0017df05$export$8114b9fdfdf9f3ba as TabsTrigger, $69cb30bb0017df05$export$bd905d70e8fd2ebb as TabsContent, $69cb30bb0017df05$export$be92b6f5f03c0fe9 as Root, $69cb30bb0017df05$export$54c2e3dc7acea9f5 as List, $69cb30bb0017df05$export$41fb9f06171c75f4 as Trigger, $69cb30bb0017df05$export$7c6e2c02157bb7d2 as Content};\n//# sourceMappingURL=index.module.js.map\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\n\nexport const SidebarTabTriggers = ({\n children,\n ...rest\n}: { children: React.ReactNode } & Omit<\n React.RefAttributes,\n \"onSelect\"\n>) => {\n return (\n \n {children}\n \n );\n};\nSidebarTabTriggers.displayName = \"SidebarTabTriggers\";\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\nimport { SidebarTabName } from \"../../types\";\n\nexport const SidebarTabTrigger = ({\n children,\n tab,\n onSelect,\n ...rest\n}: {\n children: React.ReactNode;\n tab: SidebarTabName;\n onSelect?: React.ReactEventHandler | undefined;\n} & Omit, \"onSelect\">) => {\n return (\n \n \n {children}\n \n \n );\n};\nSidebarTabTrigger.displayName = \"SidebarTabTrigger\";\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport { useExcalidrawSetAppState } from \"../App\";\n\nexport const SidebarTabs = ({\n children,\n ...rest\n}: {\n children: React.ReactNode;\n} & Omit, \"onSelect\">) => {\n const appState = useUIAppState();\n const setAppState = useExcalidrawSetAppState();\n\n if (!appState.openSidebar) {\n return null;\n }\n\n const { name } = appState.openSidebar;\n\n return (\n \n setAppState((state) => ({\n ...state,\n openSidebar: { ...state.openSidebar, name, tab },\n }))\n }\n {...rest}\n >\n {children}\n \n );\n};\nSidebarTabs.displayName = \"SidebarTabs\";\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\nimport { SidebarTabName } from \"../../types\";\n\nexport const SidebarTab = ({\n tab,\n children,\n ...rest\n}: {\n tab: SidebarTabName;\n children: React.ReactNode;\n} & React.HTMLAttributes) => {\n return (\n \n {children}\n \n );\n};\nSidebarTab.displayName = \"SidebarTab\";\n","import React, {\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n forwardRef,\n useImperativeHandle,\n useCallback,\n} from \"react\";\nimport { Island } from \"../Island\";\nimport { atom, useSetAtom } from \"jotai\";\nimport { jotaiScope } from \"../../jotai\";\nimport {\n SidebarPropsContext,\n SidebarProps,\n SidebarPropsContextValue,\n} from \"./common\";\nimport { SidebarHeader } from \"./SidebarHeader\";\nimport clsx from \"clsx\";\nimport { useDevice, useExcalidrawSetAppState } from \"../App\";\nimport { updateObject } from \"../../utils\";\nimport { KEYS } from \"../../keys\";\nimport { EVENT } from \"../../constants\";\nimport { SidebarTrigger } from \"./SidebarTrigger\";\nimport { SidebarTabTriggers } from \"./SidebarTabTriggers\";\nimport { SidebarTabTrigger } from \"./SidebarTabTrigger\";\nimport { SidebarTabs } from \"./SidebarTabs\";\nimport { SidebarTab } from \"./SidebarTab\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport { useOutsideClick } from \"../../hooks/useOutsideClick\";\n\nimport \"./Sidebar.scss\";\n\n/**\n * Flags whether the currently rendered Sidebar is docked or not, for use\n * in upstream components that need to act on this (e.g. LayerUI to shift the\n * UI). We use an atom because of potential host app sidebars (for the default\n * sidebar we could just read from appState.defaultSidebarDockedPreference).\n *\n * Since we can only render one Sidebar at a time, we can use a simple flag.\n */\nexport const isSidebarDockedAtom = atom(false);\n\nexport const SidebarInner = forwardRef(\n (\n {\n name,\n children,\n onDock,\n docked,\n className,\n ...rest\n }: SidebarProps & Omit, \"onSelect\">,\n ref: React.ForwardedRef,\n ) => {\n if (import.meta.env.DEV && onDock && docked == null) {\n console.warn(\n \"Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`\",\n );\n }\n\n const setAppState = useExcalidrawSetAppState();\n\n const setIsSidebarDockedAtom = useSetAtom(isSidebarDockedAtom, jotaiScope);\n\n useLayoutEffect(() => {\n setIsSidebarDockedAtom(!!docked);\n return () => {\n setIsSidebarDockedAtom(false);\n };\n }, [setIsSidebarDockedAtom, docked]);\n\n const headerPropsRef = useRef(\n {} as SidebarPropsContextValue,\n );\n headerPropsRef.current.onCloseRequest = () => {\n setAppState({ openSidebar: null });\n };\n headerPropsRef.current.onDock = (isDocked) => onDock?.(isDocked);\n // renew the ref object if the following props change since we want to\n // rerender. We can't pass down as component props manually because\n // the can be rendered upstream.\n headerPropsRef.current = updateObject(headerPropsRef.current, {\n docked,\n // explicit prop to rerender on update\n shouldRenderDockButton: !!onDock && docked != null,\n });\n\n const islandRef = useRef(null);\n\n useImperativeHandle(ref, () => {\n return islandRef.current!;\n });\n\n const device = useDevice();\n\n const closeLibrary = useCallback(() => {\n const isDialogOpen = !!document.querySelector(\".Dialog\");\n\n // Prevent closing if any dialog is open\n if (isDialogOpen) {\n return;\n }\n setAppState({ openSidebar: null });\n }, [setAppState]);\n\n useOutsideClick(\n islandRef,\n useCallback(\n (event) => {\n // If click on the library icon, do nothing so that LibraryButton\n // can toggle library menu\n if ((event.target as Element).closest(\".sidebar-trigger\")) {\n return;\n }\n if (!docked || !device.editor.canFitSidebar) {\n closeLibrary();\n }\n },\n [closeLibrary, docked, device.editor.canFitSidebar],\n ),\n );\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === KEYS.ESCAPE &&\n (!docked || !device.editor.canFitSidebar)\n ) {\n closeLibrary();\n }\n };\n document.addEventListener(EVENT.KEYDOWN, handleKeyDown);\n return () => {\n document.removeEventListener(EVENT.KEYDOWN, handleKeyDown);\n };\n }, [closeLibrary, docked, device.editor.canFitSidebar]);\n\n return (\n \n \n {children}\n \n \n );\n },\n);\nSidebarInner.displayName = \"SidebarInner\";\n\nexport const Sidebar = Object.assign(\n forwardRef((props: SidebarProps, ref: React.ForwardedRef) => {\n const appState = useUIAppState();\n\n const { onStateChange } = props;\n\n const refPrevOpenSidebar = useRef(appState.openSidebar);\n useEffect(() => {\n if (\n // closing sidebar\n ((!appState.openSidebar &&\n refPrevOpenSidebar?.current?.name === props.name) ||\n // opening current sidebar\n (appState.openSidebar?.name === props.name &&\n refPrevOpenSidebar?.current?.name !== props.name) ||\n // switching tabs or switching to a different sidebar\n refPrevOpenSidebar.current?.name === props.name) &&\n appState.openSidebar !== refPrevOpenSidebar.current\n ) {\n onStateChange?.(\n appState.openSidebar?.name !== props.name\n ? null\n : appState.openSidebar,\n );\n }\n refPrevOpenSidebar.current = appState.openSidebar;\n }, [appState.openSidebar, onStateChange, props.name]);\n\n const [mounted, setMounted] = useState(false);\n useLayoutEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n // We want to render in the next tick (hence `mounted` flag) so that it's\n // guaranteed to happen after unmount of the previous sidebar (in case the\n // previous sidebar is mounted after the next one). This is necessary to\n // prevent flicker of subcomponents that support fallbacks\n // (e.g. SidebarHeader). This is because we're using flags to determine\n // whether prefer the fallback component or not (otherwise both will render\n // initially), and the flag won't be reset in time if the unmount order\n // it not correct.\n //\n // Alternative, and more general solution would be to namespace the fallback\n // HoC so that state is not shared between subcomponents when the wrapping\n // component is of the same type (e.g. Sidebar -> SidebarHeader).\n const shouldRender = mounted && appState.openSidebar?.name === props.name;\n\n if (!shouldRender) {\n return null;\n }\n\n return ;\n }),\n {\n Header: SidebarHeader,\n TabTriggers: SidebarTabTriggers,\n TabTrigger: SidebarTabTrigger,\n Tabs: SidebarTabs,\n Tab: SidebarTab,\n Trigger: SidebarTrigger,\n },\n);\nSidebar.displayName = \"Sidebar\";\n","import clsx from \"clsx\";\nimport { ReactNode } from \"react\";\nimport \"./DialogActionButton.scss\";\nimport Spinner from \"./Spinner\";\n\ninterface DialogActionButtonProps {\n label: string;\n children?: ReactNode;\n actionType?: \"primary\" | \"danger\";\n isLoading?: boolean;\n}\n\nconst DialogActionButton = ({\n label,\n onClick,\n className,\n children,\n actionType,\n type = \"button\",\n isLoading,\n ...rest\n}: DialogActionButtonProps & React.ButtonHTMLAttributes) => {\n const cs = actionType ? `Dialog__action-button--${actionType}` : \"\";\n\n return (\n \n {children && (\n
    {children}
    \n )}\n
    {label}
    \n {isLoading && (\n
    \n \n
    \n )}\n \n );\n};\n\nexport default DialogActionButton;\n","import { VERSIONS } from \"../constants\";\nimport { t } from \"../i18n\";\nimport { ExcalidrawProps, UIAppState } from \"../types\";\n\nconst LibraryMenuBrowseButton = ({\n theme,\n id,\n libraryReturnUrl,\n}: {\n libraryReturnUrl: ExcalidrawProps[\"libraryReturnUrl\"];\n theme: UIAppState[\"theme\"];\n id: string;\n}) => {\n const referrer =\n libraryReturnUrl || window.location.origin + window.location.pathname;\n return (\n \n {t(\"labels.libraries\")}\n \n );\n};\n\nexport default LibraryMenuBrowseButton;\n","import { ExcalidrawProps, UIAppState } from \"../types\";\nimport LibraryMenuBrowseButton from \"./LibraryMenuBrowseButton\";\nimport clsx from \"clsx\";\n\nexport const LibraryMenuControlButtons = ({\n libraryReturnUrl,\n theme,\n id,\n style,\n children,\n className,\n}: {\n libraryReturnUrl: ExcalidrawProps[\"libraryReturnUrl\"];\n theme: UIAppState[\"theme\"];\n id: string;\n style: React.CSSProperties;\n children?: React.ReactNode;\n className?: string;\n}) => {\n return (\n \n \n {children}\n \n );\n};\n","import React from \"react\";\n\nimport { TranslationKeys, useI18n } from \"../i18n\";\n\n// Used for splitting i18nKey into tokens in Trans component\n// Example:\n// \"Please click {{location}} to continue.\".split(SPLIT_REGEX).filter(Boolean)\n// produces\n// [\"Please \", \"\", \"click \", \"{{location}}\", \"\", \" to continue.\"]\nconst SPLIT_REGEX = /({{[\\w-]+}})|(<[\\w-]+>)|(<\\/[\\w-]+>)/g;\n// Used for extracting \"location\" from \"{{location}}\"\nconst KEY_REGEXP = /{{([\\w-]+)}}/;\n// Used for extracting \"link\" from \"\"\nconst TAG_START_REGEXP = /<([\\w-]+)>/;\n// Used for extracting \"link\" from \"\"\nconst TAG_END_REGEXP = /<\\/([\\w-]+)>/;\n\nconst getTransChildren = (\n format: string,\n props: {\n [key: string]: React.ReactNode | ((el: React.ReactNode) => React.ReactNode);\n },\n): React.ReactNode[] => {\n const stack: { name: string; children: React.ReactNode[] }[] = [\n {\n name: \"\",\n children: [],\n },\n ];\n\n format\n .split(SPLIT_REGEX)\n .filter(Boolean)\n .forEach((match) => {\n const tagStartMatch = match.match(TAG_START_REGEXP);\n const tagEndMatch = match.match(TAG_END_REGEXP);\n const keyMatch = match.match(KEY_REGEXP);\n\n if (tagStartMatch !== null) {\n // The match is . Set the tag name as the name if it's one of the\n // props, e.g. for \"Please click the button to continue\"\n // tagStartMatch[1] = \"link\" and props contain \"link\" then it will be\n // pushed to stack.\n const name = tagStartMatch[1];\n if (props.hasOwnProperty(name)) {\n stack.push({\n name,\n children: [],\n });\n } else {\n console.warn(\n `Trans: missed to pass in prop ${name} for interpolating ${format}`,\n );\n }\n } else if (tagEndMatch !== null) {\n // If tag end match is found, this means we need to replace the content with\n // its actual value in prop e.g. format = \"Please click the\n // button to continue\", tagEndMatch is for \"\", stack last item name =\n // \"link\" and props.link = (el) => {el} then its prop value will be\n // pushed to \"link\"'s children so on DOM when rendering it's rendered as\n // click the button\n const name = tagEndMatch[1];\n if (name === stack[stack.length - 1].name) {\n const item = stack.pop()!;\n const itemChildren = React.createElement(\n React.Fragment,\n {},\n ...item.children,\n );\n const fn = props[item.name];\n if (typeof fn === \"function\") {\n stack[stack.length - 1].children.push(fn(itemChildren));\n }\n } else {\n console.warn(\n `Trans: unexpected end tag ${match} for interpolating ${format}`,\n );\n }\n } else if (keyMatch !== null) {\n // The match is for {{key}}. Check if the key is present in props and set\n // the prop value as children of last stack item e.g. format = \"Hello\n // {{name}}\", key = \"name\" and props.name = \"Excalidraw\" then its prop\n // value will be pushed to \"name\"'s children so it's rendered on DOM as\n // \"Hello Excalidraw\"\n const name = keyMatch[1];\n if (props.hasOwnProperty(name)) {\n stack[stack.length - 1].children.push(props[name] as React.ReactNode);\n } else {\n console.warn(\n `Trans: key ${name} not in props for interpolating ${format}`,\n );\n }\n } else {\n // If none of cases match means we just need to push the string\n // to stack eg - \"Hello {{name}} Whats up?\" \"Hello\", \"Whats up\" will be pushed\n stack[stack.length - 1].children.push(match);\n }\n });\n\n if (stack.length !== 1) {\n console.warn(`Trans: stack not empty for interpolating ${format}`);\n }\n\n return stack[0].children;\n};\n\n/*\nTrans component is used for translating JSX.\n\n```json\n{\n \"example1\": \"Hello {{audience}}\",\n \"example2\": \"Please click the button to continue.\",\n \"example3\": \"Please click {{location}} to continue.\",\n \"example4\": \"Please click {{location}} to continue.\",\n}\n```\n\n```jsx\n\n\n {el}}\n/>\n\n {el}}\n location=\"the button\"\n/>\n\n {el}}\n location=\"the button\"\n bold={(el) => {el}}\n/>\n```\n\nOutput:\n\n```html\nHello world\nPlease click the button to continue.\nPlease click the button to continue.\nPlease click the button to continue.\n```\n*/\nconst Trans = ({\n i18nKey,\n children,\n ...props\n}: {\n i18nKey: TranslationKeys;\n [key: string]: React.ReactNode | ((el: React.ReactNode) => React.ReactNode);\n}) => {\n const { t } = useI18n();\n\n // This is needed to avoid unique key error in list which gets rendered from getTransChildren\n return React.createElement(\n React.Fragment,\n {},\n ...getTransChildren(t(i18nKey), props),\n );\n};\n\nexport default Trans;\n","import { EDITOR_LS_KEYS } from \"../constants\";\nimport { JSONValue } from \"../types\";\n\nexport class EditorLocalStorage {\n static has(key: typeof EDITOR_LS_KEYS[keyof typeof EDITOR_LS_KEYS]) {\n try {\n return !!window.localStorage.getItem(key);\n } catch (error: any) {\n console.warn(`localStorage.getItem error: ${error.message}`);\n return false;\n }\n }\n\n static get(\n key: typeof EDITOR_LS_KEYS[keyof typeof EDITOR_LS_KEYS],\n ) {\n try {\n const value = window.localStorage.getItem(key);\n if (value) {\n return JSON.parse(value) as T;\n }\n return null;\n } catch (error: any) {\n console.warn(`localStorage.getItem error: ${error.message}`);\n return null;\n }\n }\n\n static set = (\n key: typeof EDITOR_LS_KEYS[keyof typeof EDITOR_LS_KEYS],\n value: JSONValue,\n ) => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n return true;\n } catch (error: any) {\n console.warn(`localStorage.setItem error: ${error.message}`);\n return false;\n }\n };\n\n static delete = (\n name: typeof EDITOR_LS_KEYS[keyof typeof EDITOR_LS_KEYS],\n ) => {\n try {\n window.localStorage.removeItem(name);\n } catch (error: any) {\n console.warn(`localStorage.removeItem error: ${error.message}`);\n }\n };\n}\n","import { ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\nimport OpenColor from \"open-color\";\n\nimport { Dialog } from \"./Dialog\";\nimport { t } from \"../i18n\";\nimport Trans from \"./Trans\";\n\nimport { LibraryItems, LibraryItem, UIAppState } from \"../types\";\nimport { exportToCanvas, exportToSvg } from \"../../utils/export\";\nimport {\n EDITOR_LS_KEYS,\n EXPORT_DATA_TYPES,\n EXPORT_SOURCE,\n MIME_TYPES,\n VERSIONS,\n} from \"../constants\";\nimport { ExportedLibraryData } from \"../data/types\";\nimport { canvasToBlob, resizeImageFile } from \"../data/blob\";\nimport { chunk } from \"../utils\";\nimport DialogActionButton from \"./DialogActionButton\";\nimport { CloseIcon } from \"./icons\";\nimport { ToolButton } from \"./ToolButton\";\nimport { EditorLocalStorage } from \"../data/EditorLocalStorage\";\n\nimport \"./PublishLibrary.scss\";\n\ninterface PublishLibraryDataParams {\n authorName: string;\n githubHandle: string;\n name: string;\n description: string;\n twitterHandle: string;\n website: string;\n}\n\nconst generatePreviewImage = async (libraryItems: LibraryItems) => {\n const MAX_ITEMS_PER_ROW = 6;\n const BOX_SIZE = 128;\n const BOX_PADDING = Math.round(BOX_SIZE / 16);\n const BORDER_WIDTH = Math.max(Math.round(BOX_SIZE / 64), 2);\n\n const rows = chunk(libraryItems, MAX_ITEMS_PER_ROW);\n\n const canvas = document.createElement(\"canvas\");\n\n canvas.width =\n rows[0].length * BOX_SIZE +\n (rows[0].length + 1) * (BOX_PADDING * 2) -\n BOX_PADDING * 2;\n canvas.height =\n rows.length * BOX_SIZE +\n (rows.length + 1) * (BOX_PADDING * 2) -\n BOX_PADDING * 2;\n\n const ctx = canvas.getContext(\"2d\")!;\n\n ctx.fillStyle = OpenColor.white;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n // draw items\n // ---------------------------------------------------------------------------\n for (const [index, item] of libraryItems.entries()) {\n const itemCanvas = await exportToCanvas({\n elements: item.elements,\n files: null,\n maxWidthOrHeight: BOX_SIZE,\n });\n\n const { width, height } = itemCanvas;\n\n // draw item\n // -------------------------------------------------------------------------\n const rowOffset =\n Math.floor(index / MAX_ITEMS_PER_ROW) * (BOX_SIZE + BOX_PADDING * 2);\n const colOffset =\n (index % MAX_ITEMS_PER_ROW) * (BOX_SIZE + BOX_PADDING * 2);\n\n ctx.drawImage(\n itemCanvas,\n colOffset + (BOX_SIZE - width) / 2 + BOX_PADDING,\n rowOffset + (BOX_SIZE - height) / 2 + BOX_PADDING,\n );\n\n // draw item border\n // -------------------------------------------------------------------------\n ctx.lineWidth = BORDER_WIDTH;\n ctx.strokeStyle = OpenColor.gray[4];\n ctx.strokeRect(\n colOffset + BOX_PADDING / 2,\n rowOffset + BOX_PADDING / 2,\n BOX_SIZE + BOX_PADDING,\n BOX_SIZE + BOX_PADDING,\n );\n }\n\n return await resizeImageFile(\n new File([await canvasToBlob(canvas)], \"preview\", { type: MIME_TYPES.png }),\n {\n outputType: MIME_TYPES.jpg,\n maxWidthOrHeight: 5000,\n },\n );\n};\n\nconst SingleLibraryItem = ({\n libItem,\n appState,\n index,\n onChange,\n onRemove,\n}: {\n libItem: LibraryItem;\n appState: UIAppState;\n index: number;\n onChange: (val: string, index: number) => void;\n onRemove: (id: string) => void;\n}) => {\n const svgRef = useRef(null);\n const inputRef = useRef(null);\n\n useEffect(() => {\n const node = svgRef.current;\n if (!node) {\n return;\n }\n (async () => {\n const svg = await exportToSvg({\n elements: libItem.elements,\n appState: {\n ...appState,\n viewBackgroundColor: OpenColor.white,\n exportBackground: true,\n },\n files: null,\n });\n node.innerHTML = svg.outerHTML;\n })();\n }, [libItem.elements, appState]);\n\n return (\n
    \n {libItem.status === \"published\" && (\n \n {t(\"labels.statusPublished\")}\n \n )}\n
    \n \n \n \n
    \n \n {t(\"publishDialog.itemName\")}\n \n \n *\n \n
    \n {\n onChange(event.target.value, index);\n }}\n />\n \n {libItem.error}\n
    \n
    \n );\n};\n\nconst PublishLibrary = ({\n onClose,\n libraryItems,\n appState,\n onSuccess,\n onError,\n updateItemsInStorage,\n onRemove,\n}: {\n onClose: () => void;\n libraryItems: LibraryItems;\n appState: UIAppState;\n onSuccess: (data: {\n url: string;\n authorName: string;\n items: LibraryItems;\n }) => void;\n\n onError: (error: Error) => void;\n updateItemsInStorage: (items: LibraryItems) => void;\n onRemove: (id: string) => void;\n}) => {\n const [libraryData, setLibraryData] = useState({\n authorName: \"\",\n githubHandle: \"\",\n name: \"\",\n description: \"\",\n twitterHandle: \"\",\n website: \"\",\n });\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n useEffect(() => {\n const data = EditorLocalStorage.get(\n EDITOR_LS_KEYS.PUBLISH_LIBRARY,\n );\n if (data) {\n setLibraryData(data);\n }\n }, []);\n\n const [clonedLibItems, setClonedLibItems] = useState(\n libraryItems.slice(),\n );\n\n useEffect(() => {\n setClonedLibItems(libraryItems.slice());\n }, [libraryItems]);\n\n const onInputChange = (event: any) => {\n setLibraryData({\n ...libraryData,\n [event.target.name]: event.target.value,\n });\n };\n\n const onSubmit = async (event: React.FormEvent) => {\n event.preventDefault();\n setIsSubmitting(true);\n const erroredLibItems: LibraryItem[] = [];\n let isError = false;\n clonedLibItems.forEach((libItem) => {\n let error = \"\";\n if (!libItem.name) {\n error = t(\"publishDialog.errors.required\");\n isError = true;\n }\n erroredLibItems.push({ ...libItem, error });\n });\n\n if (isError) {\n setClonedLibItems(erroredLibItems);\n setIsSubmitting(false);\n return;\n }\n\n const previewImage = await generatePreviewImage(clonedLibItems);\n\n const libContent: ExportedLibraryData = {\n type: EXPORT_DATA_TYPES.excalidrawLibrary,\n version: VERSIONS.excalidrawLibrary,\n source: EXPORT_SOURCE,\n libraryItems: clonedLibItems,\n };\n const content = JSON.stringify(libContent, null, 2);\n const lib = new Blob([content], { type: \"application/json\" });\n\n const formData = new FormData();\n formData.append(\"excalidrawLib\", lib);\n formData.append(\"previewImage\", previewImage);\n formData.append(\"previewImageType\", previewImage.type);\n formData.append(\"title\", libraryData.name);\n formData.append(\"authorName\", libraryData.authorName);\n formData.append(\"githubHandle\", libraryData.githubHandle);\n formData.append(\"name\", libraryData.name);\n formData.append(\"description\", libraryData.description);\n formData.append(\"twitterHandle\", libraryData.twitterHandle);\n formData.append(\"website\", libraryData.website);\n\n fetch(`${import.meta.env.VITE_APP_LIBRARY_BACKEND}/submit`, {\n method: \"post\",\n body: formData,\n })\n .then(\n (response) => {\n if (response.ok) {\n return response.json().then(({ url }) => {\n // flush data from local storage\n EditorLocalStorage.delete(EDITOR_LS_KEYS.PUBLISH_LIBRARY);\n onSuccess({\n url,\n authorName: libraryData.authorName,\n items: clonedLibItems,\n });\n });\n }\n return response\n .json()\n .catch(() => {\n throw new Error(response.statusText || \"something went wrong\");\n })\n .then((error) => {\n throw new Error(\n error.message || response.statusText || \"something went wrong\",\n );\n });\n },\n (err) => {\n console.error(err);\n onError(err);\n setIsSubmitting(false);\n },\n )\n .catch((err) => {\n console.error(err);\n onError(err);\n setIsSubmitting(false);\n });\n };\n\n const renderLibraryItems = () => {\n const items: ReactNode[] = [];\n clonedLibItems.forEach((libItem, index) => {\n items.push(\n
    \n {\n const items = clonedLibItems.slice();\n items[index].name = val;\n setClonedLibItems(items);\n }}\n onRemove={onRemove}\n />\n
    ,\n );\n });\n return
    {items}
    ;\n };\n\n const onDialogClose = useCallback(() => {\n updateItemsInStorage(clonedLibItems);\n EditorLocalStorage.set(EDITOR_LS_KEYS.PUBLISH_LIBRARY, libraryData);\n onClose();\n }, [clonedLibItems, onClose, updateItemsInStorage, libraryData]);\n\n const shouldRenderForm = !!libraryItems.length;\n\n const containsPublishedItems = libraryItems.some(\n (item) => item.status === \"published\",\n );\n\n return (\n \n {shouldRenderForm ? (\n
    \n
    \n (\n \n {el}\n \n )}\n />\n
    \n \n (\n \n {el}\n \n )}\n />\n \n\n
    \n {t(\"publishDialog.noteItems\")}\n
    \n {containsPublishedItems && (\n \n {t(\"publishDialog.republishWarning\")}\n \n )}\n {renderLibraryItems()}\n
    \n \n \n \n \n \n \n \n (\n \n {el}\n \n )}\n />\n \n
    \n
    \n \n \n
    \n
    \n ) : (\n

    \n {t(\"publishDialog.atleastOneLibItem\")}\n

    \n )}\n \n );\n};\n\nexport default PublishLibrary;\n","import { useCallback, useState } from \"react\";\nimport { t } from \"../i18n\";\nimport Trans from \"./Trans\";\nimport { jotaiScope } from \"../jotai\";\nimport { LibraryItem, LibraryItems, UIAppState } from \"../types\";\nimport { useApp, useExcalidrawSetAppState } from \"./App\";\nimport { saveLibraryAsJSON } from \"../data/json\";\nimport Library, { libraryItemsAtom } from \"../data/library\";\nimport {\n DotsIcon,\n ExportIcon,\n LoadIcon,\n publishIcon,\n TrashIcon,\n} from \"./icons\";\nimport { ToolButton } from \"./ToolButton\";\nimport { fileOpen } from \"../data/filesystem\";\nimport { muteFSAbortError } from \"../utils\";\nimport { useAtom } from \"jotai\";\nimport ConfirmDialog from \"./ConfirmDialog\";\nimport PublishLibrary from \"./PublishLibrary\";\nimport { Dialog } from \"./Dialog\";\nimport DropdownMenu from \"./dropdownMenu/DropdownMenu\";\nimport { isLibraryMenuOpenAtom } from \"./LibraryMenu\";\nimport { useUIAppState } from \"../context/ui-appState\";\nimport clsx from \"clsx\";\nimport { useLibraryCache } from \"../hooks/useLibraryItemSvg\";\n\nconst getSelectedItems = (\n libraryItems: LibraryItems,\n selectedItems: LibraryItem[\"id\"][],\n) => libraryItems.filter((item) => selectedItems.includes(item.id));\n\nexport const LibraryDropdownMenuButton: React.FC<{\n setAppState: React.Component[\"setState\"];\n selectedItems: LibraryItem[\"id\"][];\n library: Library;\n onRemoveFromLibrary: () => void;\n resetLibrary: () => void;\n onSelectItems: (items: LibraryItem[\"id\"][]) => void;\n appState: UIAppState;\n className?: string;\n}> = ({\n setAppState,\n selectedItems,\n library,\n onRemoveFromLibrary,\n resetLibrary,\n onSelectItems,\n appState,\n className,\n}) => {\n const [libraryItemsData] = useAtom(libraryItemsAtom, jotaiScope);\n const [isLibraryMenuOpen, setIsLibraryMenuOpen] = useAtom(\n isLibraryMenuOpenAtom,\n jotaiScope,\n );\n\n const renderRemoveLibAlert = () => {\n const content = selectedItems.length\n ? t(\"alerts.removeItemsFromsLibrary\", { count: selectedItems.length })\n : t(\"alerts.resetLibrary\");\n const title = selectedItems.length\n ? t(\"confirmDialog.removeItemsFromLib\")\n : t(\"confirmDialog.resetLibrary\");\n return (\n {\n if (selectedItems.length) {\n onRemoveFromLibrary();\n } else {\n resetLibrary();\n }\n setShowRemoveLibAlert(false);\n }}\n onCancel={() => {\n setShowRemoveLibAlert(false);\n }}\n title={title}\n >\n

    {content}

    \n \n );\n };\n\n const [showRemoveLibAlert, setShowRemoveLibAlert] = useState(false);\n\n const itemsSelected = !!selectedItems.length;\n const items = itemsSelected\n ? libraryItemsData.libraryItems.filter((item) =>\n selectedItems.includes(item.id),\n )\n : libraryItemsData.libraryItems;\n const resetLabel = itemsSelected\n ? t(\"buttons.remove\")\n : t(\"buttons.resetLibrary\");\n\n const [showPublishLibraryDialog, setShowPublishLibraryDialog] =\n useState(false);\n const [publishLibSuccess, setPublishLibSuccess] = useState(null);\n const renderPublishSuccess = useCallback(() => {\n return (\n setPublishLibSuccess(null)}\n title={t(\"publishSuccessDialog.title\")}\n className=\"publish-library-success\"\n size=\"small\"\n >\n

    \n (\n \n {el}\n \n )}\n />\n

    \n setPublishLibSuccess(null)}\n data-testid=\"publish-library-success-close\"\n className=\"publish-library-success-close\"\n />\n \n );\n }, [setPublishLibSuccess, publishLibSuccess]);\n\n const onPublishLibSuccess = (\n data: { url: string; authorName: string },\n libraryItems: LibraryItems,\n ) => {\n setShowPublishLibraryDialog(false);\n setPublishLibSuccess({ url: data.url, authorName: data.authorName });\n const nextLibItems = libraryItems.slice();\n nextLibItems.forEach((libItem) => {\n if (selectedItems.includes(libItem.id)) {\n libItem.status = \"published\";\n }\n });\n library.setLibrary(nextLibItems);\n };\n\n const onLibraryImport = async () => {\n try {\n await library.updateLibrary({\n libraryItems: fileOpen({\n description: \"Excalidraw library files\",\n // ToDo: Be over-permissive until https://bugs.webkit.org/show_bug.cgi?id=34442\n // gets resolved. Else, iOS users cannot open `.excalidraw` files.\n /*\n extensions: [\".json\", \".excalidrawlib\"],\n */\n }),\n merge: true,\n openLibraryMenu: true,\n });\n } catch (error: any) {\n if (error?.name === \"AbortError\") {\n console.warn(error);\n return;\n }\n setAppState({ errorMessage: t(\"errors.importLibraryError\") });\n }\n };\n\n const onLibraryExport = async () => {\n const libraryItems = itemsSelected\n ? items\n : await library.getLatestLibrary();\n saveLibraryAsJSON(libraryItems)\n .catch(muteFSAbortError)\n .catch((error) => {\n setAppState({ errorMessage: error.message });\n });\n };\n\n const renderLibraryMenu = () => {\n return (\n \n setIsLibraryMenuOpen(!isLibraryMenuOpen)}\n >\n {DotsIcon}\n \n setIsLibraryMenuOpen(false)}\n onSelect={() => setIsLibraryMenuOpen(false)}\n className=\"library-menu\"\n >\n {!itemsSelected && (\n \n {t(\"buttons.load\")}\n \n )}\n {!!items.length && (\n \n {t(\"buttons.export\")}\n \n )}\n {!!items.length && (\n setShowRemoveLibAlert(true)}\n icon={TrashIcon}\n >\n {resetLabel}\n \n )}\n {itemsSelected && (\n setShowPublishLibraryDialog(true)}\n data-testid=\"lib-dropdown--remove\"\n >\n {t(\"buttons.publishLibrary\")}\n \n )}\n \n \n );\n };\n\n return (\n
    \n {renderLibraryMenu()}\n {selectedItems.length > 0 && (\n
    {selectedItems.length}
    \n )}\n {showRemoveLibAlert && renderRemoveLibAlert()}\n {showPublishLibraryDialog && (\n setShowPublishLibraryDialog(false)}\n libraryItems={getSelectedItems(\n libraryItemsData.libraryItems,\n selectedItems,\n )}\n appState={appState}\n onSuccess={(data) =>\n onPublishLibSuccess(data, libraryItemsData.libraryItems)\n }\n onError={(error) => window.alert(error)}\n updateItemsInStorage={() =>\n library.setLibrary(libraryItemsData.libraryItems)\n }\n onRemove={(id: string) =>\n onSelectItems(selectedItems.filter((_id) => _id !== id))\n }\n />\n )}\n {publishLibSuccess && renderPublishSuccess()}\n
    \n );\n};\n\nexport const LibraryDropdownMenu = ({\n selectedItems,\n onSelectItems,\n className,\n}: {\n selectedItems: LibraryItem[\"id\"][];\n onSelectItems: (id: LibraryItem[\"id\"][]) => void;\n className?: string;\n}) => {\n const { library } = useApp();\n const { clearLibraryCache, deleteItemsFromLibraryCache } = useLibraryCache();\n const appState = useUIAppState();\n const setAppState = useExcalidrawSetAppState();\n\n const [libraryItemsData] = useAtom(libraryItemsAtom, jotaiScope);\n\n const removeFromLibrary = async (libraryItems: LibraryItems) => {\n const nextItems = libraryItems.filter(\n (item) => !selectedItems.includes(item.id),\n );\n library.setLibrary(nextItems).catch(() => {\n setAppState({ errorMessage: t(\"alerts.errorRemovingFromLibrary\") });\n });\n\n deleteItemsFromLibraryCache(selectedItems);\n\n onSelectItems([]);\n };\n\n const resetLibrary = () => {\n library.resetLibrary();\n clearLibraryCache();\n };\n\n return (\n \n removeFromLibrary(libraryItemsData.libraryItems)\n }\n resetLibrary={resetLibrary}\n className={className}\n />\n );\n};\n","import clsx from \"clsx\";\nimport { memo, useEffect, useRef, useState } from \"react\";\nimport { useDevice } from \"./App\";\nimport { LibraryItem } from \"../types\";\nimport \"./LibraryUnit.scss\";\nimport { CheckboxItem } from \"./CheckboxItem\";\nimport { PlusIcon } from \"./icons\";\nimport { SvgCache, useLibraryItemSvg } from \"../hooks/useLibraryItemSvg\";\n\nexport const LibraryUnit = memo(\n ({\n id,\n elements,\n isPending,\n onClick,\n selected,\n onToggle,\n onDrag,\n svgCache,\n }: {\n id: LibraryItem[\"id\"] | /** for pending item */ null;\n elements?: LibraryItem[\"elements\"];\n isPending?: boolean;\n onClick: (id: LibraryItem[\"id\"] | null) => void;\n selected: boolean;\n onToggle: (id: string, event: React.MouseEvent) => void;\n onDrag: (id: string, event: React.DragEvent) => void;\n svgCache: SvgCache;\n }) => {\n const ref = useRef(null);\n const svg = useLibraryItemSvg(id, elements, svgCache);\n\n useEffect(() => {\n const node = ref.current;\n\n if (!node) {\n return;\n }\n\n if (svg) {\n node.innerHTML = svg.outerHTML;\n }\n\n return () => {\n node.innerHTML = \"\";\n };\n }, [svg]);\n\n const [isHovered, setIsHovered] = useState(false);\n const isMobile = useDevice().editor.isMobile;\n const adder = isPending && (\n
    {PlusIcon}
    \n );\n\n return (\n setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {\n if (id && event.shiftKey) {\n onToggle(id, event);\n } else {\n onClick(id);\n }\n }\n : undefined\n }\n onDragStart={(event) => {\n if (!id) {\n event.preventDefault();\n return;\n }\n setIsHovered(false);\n onDrag(id, event);\n }}\n />\n {adder}\n {id && elements && (isHovered || isMobile || selected) && (\n onToggle(id, event)}\n className=\"library-unit__checkbox\"\n />\n )}\n \n );\n },\n);\n\nexport const EmptyLibraryUnit = () => (\n
    \n);\n","import React, { useCallback } from \"react\";\n\n/** noop polyfill for v17. Subset of API available */\nfunction useTransitionPolyfill() {\n const startTransition = useCallback((callback: () => void) => callback(), []);\n return [false, startTransition] as const;\n}\n\nexport const useTransition = React.useTransition || useTransitionPolyfill;\n","import React, { memo, ReactNode, useEffect, useState } from \"react\";\nimport { EmptyLibraryUnit, LibraryUnit } from \"./LibraryUnit\";\nimport { LibraryItem } from \"../types\";\nimport { ExcalidrawElement, NonDeleted } from \"../element/types\";\nimport { SvgCache } from \"../hooks/useLibraryItemSvg\";\nimport { useTransition } from \"../hooks/useTransition\";\n\ntype LibraryOrPendingItem = (\n | LibraryItem\n | /* pending library item */ {\n id: null;\n elements: readonly NonDeleted[];\n }\n)[];\n\ninterface Props {\n items: LibraryOrPendingItem;\n onClick: (id: LibraryItem[\"id\"] | null) => void;\n onItemSelectToggle: (id: LibraryItem[\"id\"], event: React.MouseEvent) => void;\n onItemDrag: (id: LibraryItem[\"id\"], event: React.DragEvent) => void;\n isItemSelected: (id: LibraryItem[\"id\"] | null) => boolean;\n svgCache: SvgCache;\n itemsRenderedPerBatch: number;\n}\n\nexport const LibraryMenuSectionGrid = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n return
    {children}
    ;\n};\n\nexport const LibraryMenuSection = memo(\n ({\n items,\n onItemSelectToggle,\n onItemDrag,\n isItemSelected,\n onClick,\n svgCache,\n itemsRenderedPerBatch,\n }: Props) => {\n const [, startTransition] = useTransition();\n const [index, setIndex] = useState(0);\n\n useEffect(() => {\n if (index < items.length) {\n startTransition(() => {\n setIndex(index + itemsRenderedPerBatch);\n });\n }\n }, [index, items.length, startTransition, itemsRenderedPerBatch]);\n\n return (\n <>\n {items.map((item, i) => {\n return i < index ? (\n \n ) : (\n \n );\n })}\n \n );\n },\n);\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","import { useEffect } from \"react\";\nimport { atom, useAtom } from \"jotai\";\nimport throttle from \"lodash.throttle\";\n\nconst scrollPositionAtom = atom(0);\n\nexport const useScrollPosition = (\n elementRef: React.RefObject,\n) => {\n const [scrollPosition, setScrollPosition] = useAtom(scrollPositionAtom);\n\n useEffect(() => {\n const { current: element } = elementRef;\n if (!element) {\n return;\n }\n\n const handleScroll = throttle(() => {\n const { scrollTop } = element;\n setScrollPosition(scrollTop);\n }, 200);\n\n element.addEventListener(\"scroll\", handleScroll);\n\n return () => {\n handleScroll.cancel();\n element.removeEventListener(\"scroll\", handleScroll);\n };\n }, [elementRef, setScrollPosition]);\n\n return scrollPosition;\n};\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { serializeLibraryAsJSON } from \"../data/json\";\nimport { t } from \"../i18n\";\nimport {\n ExcalidrawProps,\n LibraryItem,\n LibraryItems,\n UIAppState,\n} from \"../types\";\nimport { arrayToMap } from \"../utils\";\nimport Stack from \"./Stack\";\nimport { MIME_TYPES } from \"../constants\";\nimport Spinner from \"./Spinner\";\nimport { duplicateElements } from \"../element/newElement\";\nimport { LibraryMenuControlButtons } from \"./LibraryMenuControlButtons\";\nimport { LibraryDropdownMenu } from \"./LibraryMenuHeaderContent\";\nimport {\n LibraryMenuSection,\n LibraryMenuSectionGrid,\n} from \"./LibraryMenuSection\";\nimport { useScrollPosition } from \"../hooks/useScrollPosition\";\nimport { useLibraryCache } from \"../hooks/useLibraryItemSvg\";\n\nimport \"./LibraryMenuItems.scss\";\n\n// using an odd number of items per batch so the rendering creates an irregular\n// pattern which looks more organic\nconst ITEMS_RENDERED_PER_BATCH = 17;\n// when render outputs cached we can render many more items per batch to\n// speed it up\nconst CACHED_ITEMS_RENDERED_PER_BATCH = 64;\n\nexport default function LibraryMenuItems({\n isLoading,\n libraryItems,\n onAddToLibrary,\n onInsertLibraryItems,\n pendingElements,\n theme,\n id,\n libraryReturnUrl,\n onSelectItems,\n selectedItems,\n}: {\n isLoading: boolean;\n libraryItems: LibraryItems;\n pendingElements: LibraryItem[\"elements\"];\n onInsertLibraryItems: (libraryItems: LibraryItems) => void;\n onAddToLibrary: (elements: LibraryItem[\"elements\"]) => void;\n libraryReturnUrl: ExcalidrawProps[\"libraryReturnUrl\"];\n theme: UIAppState[\"theme\"];\n id: string;\n selectedItems: LibraryItem[\"id\"][];\n onSelectItems: (id: LibraryItem[\"id\"][]) => void;\n}) {\n const libraryContainerRef = useRef(null);\n const scrollPosition = useScrollPosition(libraryContainerRef);\n\n // This effect has to be called only on first render, therefore `scrollPosition` isn't in the dependency array\n useEffect(() => {\n if (scrollPosition > 0) {\n libraryContainerRef.current?.scrollTo(0, scrollPosition);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { svgCache } = useLibraryCache();\n const unpublishedItems = useMemo(\n () => libraryItems.filter((item) => item.status !== \"published\"),\n [libraryItems],\n );\n\n const publishedItems = useMemo(\n () => libraryItems.filter((item) => item.status === \"published\"),\n [libraryItems],\n );\n\n const showBtn = !libraryItems.length && !pendingElements.length;\n\n const isLibraryEmpty =\n !pendingElements.length &&\n !unpublishedItems.length &&\n !publishedItems.length;\n\n const [lastSelectedItem, setLastSelectedItem] = useState<\n LibraryItem[\"id\"] | null\n >(null);\n\n const onItemSelectToggle = useCallback(\n (id: LibraryItem[\"id\"], event: React.MouseEvent) => {\n const shouldSelect = !selectedItems.includes(id);\n\n const orderedItems = [...unpublishedItems, ...publishedItems];\n\n if (shouldSelect) {\n if (event.shiftKey && lastSelectedItem) {\n const rangeStart = orderedItems.findIndex(\n (item) => item.id === lastSelectedItem,\n );\n const rangeEnd = orderedItems.findIndex((item) => item.id === id);\n\n if (rangeStart === -1 || rangeEnd === -1) {\n onSelectItems([...selectedItems, id]);\n return;\n }\n\n const selectedItemsMap = arrayToMap(selectedItems);\n const nextSelectedIds = orderedItems.reduce(\n (acc: LibraryItem[\"id\"][], item, idx) => {\n if (\n (idx >= rangeStart && idx <= rangeEnd) ||\n selectedItemsMap.has(item.id)\n ) {\n acc.push(item.id);\n }\n return acc;\n },\n [],\n );\n\n onSelectItems(nextSelectedIds);\n } else {\n onSelectItems([...selectedItems, id]);\n }\n setLastSelectedItem(id);\n } else {\n setLastSelectedItem(null);\n onSelectItems(selectedItems.filter((_id) => _id !== id));\n }\n },\n [\n lastSelectedItem,\n onSelectItems,\n publishedItems,\n selectedItems,\n unpublishedItems,\n ],\n );\n\n const getInsertedElements = useCallback(\n (id: string) => {\n let targetElements;\n if (selectedItems.includes(id)) {\n targetElements = libraryItems.filter((item) =>\n selectedItems.includes(item.id),\n );\n } else {\n targetElements = libraryItems.filter((item) => item.id === id);\n }\n return targetElements.map((item) => {\n return {\n ...item,\n // duplicate each library item before inserting on canvas to confine\n // ids and bindings to each library item. See #6465\n elements: duplicateElements(item.elements, { randomizeSeed: true }),\n };\n });\n },\n [libraryItems, selectedItems],\n );\n\n const onItemDrag = useCallback(\n (id: LibraryItem[\"id\"], event: React.DragEvent) => {\n event.dataTransfer.setData(\n MIME_TYPES.excalidrawlib,\n serializeLibraryAsJSON(getInsertedElements(id)),\n );\n },\n [getInsertedElements],\n );\n\n const isItemSelected = useCallback(\n (id: LibraryItem[\"id\"] | null) => {\n if (!id) {\n return false;\n }\n\n return selectedItems.includes(id);\n },\n [selectedItems],\n );\n\n const onAddToLibraryClick = useCallback(() => {\n onAddToLibrary(pendingElements);\n }, [pendingElements, onAddToLibrary]);\n\n const onItemClick = useCallback(\n (id: LibraryItem[\"id\"] | null) => {\n if (id) {\n onInsertLibraryItems(getInsertedElements(id));\n }\n },\n [getInsertedElements, onInsertLibraryItems],\n );\n\n const itemsRenderedPerBatch =\n svgCache.size >= libraryItems.length\n ? CACHED_ITEMS_RENDERED_PER_BATCH\n : ITEMS_RENDERED_PER_BATCH;\n\n return (\n \n {!isLibraryEmpty && (\n \n )}\n 0 ? 1 : \"0 1 auto\",\n marginBottom: 0,\n }}\n ref={libraryContainerRef}\n >\n <>\n {!isLibraryEmpty && (\n
    \n {t(\"labels.personalLib\")}\n
    \n )}\n {isLoading && (\n \n \n
    \n )}\n {!pendingElements.length && !unpublishedItems.length ? (\n
    \n
    \n {t(\"library.noItems\")}\n
    \n
    \n {publishedItems.length > 0\n ? t(\"library.hint_emptyPrivateLibrary\")\n : t(\"library.hint_emptyLibrary\")}\n
    \n
    \n ) : (\n \n {pendingElements.length > 0 && (\n \n )}\n \n \n )}\n \n\n <>\n {(publishedItems.length > 0 ||\n pendingElements.length > 0 ||\n unpublishedItems.length > 0) && (\n
    \n {t(\"labels.excalidrawLib\")}\n
    \n )}\n {publishedItems.length > 0 ? (\n \n \n \n ) : unpublishedItems.length > 0 ? (\n \n {t(\"library.noItems\")}\n \n ) : null}\n \n\n {showBtn && (\n \n \n \n )}\n \n \n );\n}\n","import React, { useState, useCallback, useMemo, useRef } from \"react\";\nimport Library, {\n distributeLibraryItemsOnSquareGrid,\n libraryItemsAtom,\n} from \"../data/library\";\nimport { t } from \"../i18n\";\nimport { randomId } from \"../random\";\nimport {\n LibraryItems,\n LibraryItem,\n ExcalidrawProps,\n UIAppState,\n} from \"../types\";\nimport LibraryMenuItems from \"./LibraryMenuItems\";\nimport { trackEvent } from \"../analytics\";\nimport { atom, useAtom } from \"jotai\";\nimport { jotaiScope } from \"../jotai\";\nimport Spinner from \"./Spinner\";\nimport {\n useApp,\n useAppProps,\n useExcalidrawElements,\n useExcalidrawSetAppState,\n} from \"./App\";\nimport { getSelectedElements } from \"../scene\";\nimport { useUIAppState } from \"../context/ui-appState\";\n\nimport \"./LibraryMenu.scss\";\nimport { LibraryMenuControlButtons } from \"./LibraryMenuControlButtons\";\nimport { isShallowEqual } from \"../utils\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { LIBRARY_DISABLED_TYPES } from \"../constants\";\n\nexport const isLibraryMenuOpenAtom = atom(false);\n\nconst LibraryMenuWrapper = ({ children }: { children: React.ReactNode }) => {\n return
    {children}
    ;\n};\n\nexport const LibraryMenuContent = ({\n onInsertLibraryItems,\n pendingElements,\n onAddToLibrary,\n setAppState,\n libraryReturnUrl,\n library,\n id,\n theme,\n selectedItems,\n onSelectItems,\n}: {\n pendingElements: LibraryItem[\"elements\"];\n onInsertLibraryItems: (libraryItems: LibraryItems) => void;\n onAddToLibrary: () => void;\n setAppState: React.Component[\"setState\"];\n libraryReturnUrl: ExcalidrawProps[\"libraryReturnUrl\"];\n library: Library;\n id: string;\n theme: UIAppState[\"theme\"];\n selectedItems: LibraryItem[\"id\"][];\n onSelectItems: (id: LibraryItem[\"id\"][]) => void;\n}) => {\n const [libraryItemsData] = useAtom(libraryItemsAtom, jotaiScope);\n\n const _onAddToLibrary = useCallback(\n (elements: LibraryItem[\"elements\"]) => {\n const addToLibrary = async (\n processedElements: LibraryItem[\"elements\"],\n libraryItems: LibraryItems,\n ) => {\n trackEvent(\"element\", \"addToLibrary\", \"ui\");\n for (const type of LIBRARY_DISABLED_TYPES) {\n if (processedElements.some((element) => element.type === type)) {\n return setAppState({\n errorMessage: t(`errors.libraryElementTypeError.${type}`),\n });\n }\n }\n const nextItems: LibraryItems = [\n {\n status: \"unpublished\",\n elements: processedElements,\n id: randomId(),\n created: Date.now(),\n },\n ...libraryItems,\n ];\n onAddToLibrary();\n library.setLibrary(nextItems).catch(() => {\n setAppState({ errorMessage: t(\"alerts.errorAddingToLibrary\") });\n });\n };\n addToLibrary(elements, libraryItemsData.libraryItems);\n },\n [onAddToLibrary, library, setAppState, libraryItemsData.libraryItems],\n );\n\n const libraryItems = useMemo(\n () => libraryItemsData.libraryItems,\n [libraryItemsData],\n );\n\n if (\n libraryItemsData.status === \"loading\" &&\n !libraryItemsData.isInitialized\n ) {\n return (\n \n
    \n
    \n \n {t(\"labels.libraryLoadingMessage\")}\n
    \n
    \n
    \n );\n }\n\n const showBtn =\n libraryItemsData.libraryItems.length > 0 || pendingElements.length > 0;\n\n return (\n \n \n {showBtn && (\n \n )}\n \n );\n};\n\nconst usePendingElementsMemo = (\n appState: UIAppState,\n elements: readonly NonDeletedExcalidrawElement[],\n) => {\n const create = () =>\n getSelectedElements(elements, appState, {\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n });\n const val = useRef(create());\n const prevAppState = useRef(appState);\n const prevElements = useRef(elements);\n\n if (\n !isShallowEqual(\n appState.selectedElementIds,\n prevAppState.current.selectedElementIds,\n ) ||\n !isShallowEqual(elements, prevElements.current)\n ) {\n val.current = create();\n prevAppState.current = appState;\n prevElements.current = elements;\n }\n return val.current;\n};\n\n/**\n * This component is meant to be rendered inside inside our\n * or host apps Sidebar components.\n */\nexport const LibraryMenu = () => {\n const { library, id, onInsertElements } = useApp();\n const appProps = useAppProps();\n const appState = useUIAppState();\n const setAppState = useExcalidrawSetAppState();\n const elements = useExcalidrawElements();\n const [selectedItems, setSelectedItems] = useState([]);\n const memoizedLibrary = useMemo(() => library, [library]);\n // BUG: pendingElements are still causing some unnecessary rerenders because clicking into canvas returns some ids even when no element is selected.\n const pendingElements = usePendingElementsMemo(appState, elements);\n\n const onInsertLibraryItems = useCallback(\n (libraryItems: LibraryItems) => {\n onInsertElements(distributeLibraryItemsOnSquareGrid(libraryItems));\n },\n [onInsertElements],\n );\n\n const deselectItems = useCallback(() => {\n setAppState({\n selectedElementIds: {},\n selectedGroupIds: {},\n activeEmbeddable: null,\n });\n }, [setAppState]);\n\n return (\n \n );\n};\n","import { t } from \"../i18n\";\nimport { Dialog, DialogProps } from \"./Dialog\";\n\nimport \"./ConfirmDialog.scss\";\nimport DialogActionButton from \"./DialogActionButton\";\nimport { useSetAtom } from \"jotai\";\nimport { isLibraryMenuOpenAtom } from \"./LibraryMenu\";\nimport { useExcalidrawContainer, useExcalidrawSetAppState } from \"./App\";\nimport { jotaiScope } from \"../jotai\";\n\ninterface Props extends Omit {\n onConfirm: () => void;\n onCancel: () => void;\n confirmText?: string;\n cancelText?: string;\n}\nconst ConfirmDialog = (props: Props) => {\n const {\n onConfirm,\n onCancel,\n children,\n confirmText = t(\"buttons.confirm\"),\n cancelText = t(\"buttons.cancel\"),\n className = \"\",\n ...rest\n } = props;\n const setAppState = useExcalidrawSetAppState();\n const setIsLibraryMenuOpen = useSetAtom(isLibraryMenuOpenAtom, jotaiScope);\n const { container } = useExcalidrawContainer();\n\n return (\n \n {children}\n
    \n {\n setAppState({ openMenu: null });\n setIsLibraryMenuOpen(false);\n onCancel();\n container?.focus();\n }}\n />\n {\n setAppState({ openMenu: null });\n setIsLibraryMenuOpen(false);\n onConfirm();\n container?.focus();\n }}\n actionType=\"danger\"\n />\n
    \n \n );\n};\nexport default ConfirmDialog;\n","import { atom, useAtom } from \"jotai\";\nimport { actionClearCanvas } from \"../actions\";\nimport { t } from \"../i18n\";\nimport { jotaiScope } from \"../jotai\";\nimport { useExcalidrawActionManager } from \"./App\";\nimport ConfirmDialog from \"./ConfirmDialog\";\n\nexport const activeConfirmDialogAtom = atom<\"clearCanvas\" | null>(null);\n\nexport const ActiveConfirmDialog = () => {\n const [activeConfirmDialog, setActiveConfirmDialog] = useAtom(\n activeConfirmDialogAtom,\n jotaiScope,\n );\n const actionManager = useExcalidrawActionManager();\n\n if (!activeConfirmDialog) {\n return null;\n }\n\n if (activeConfirmDialog === \"clearCanvas\") {\n return (\n {\n actionManager.executeAction(actionClearCanvas);\n setActiveConfirmDialog(null);\n }}\n onCancel={() => setActiveConfirmDialog(null)}\n title={t(\"clearCanvasDialog.title\")}\n >\n

    {t(\"alerts.clearReset\")}

    \n \n );\n }\n\n return null;\n};\n","import { atom } from \"jotai\";\nimport { jotaiStore } from \"../../jotai\";\nimport React from \"react\";\n\nexport type OverwriteConfirmState =\n | {\n active: true;\n title: string;\n description: React.ReactNode;\n actionLabel: string;\n color: \"danger\" | \"warning\";\n\n onClose: () => void;\n onConfirm: () => void;\n onReject: () => void;\n }\n | { active: false };\n\nexport const overwriteConfirmStateAtom = atom({\n active: false,\n});\n\nexport async function openConfirmModal({\n title,\n description,\n actionLabel,\n color,\n}: {\n title: string;\n description: React.ReactNode;\n actionLabel: string;\n color: \"danger\" | \"warning\";\n}) {\n return new Promise((resolve) => {\n jotaiStore.set(overwriteConfirmStateAtom, {\n active: true,\n onConfirm: () => resolve(true),\n onClose: () => resolve(false),\n onReject: () => resolve(false),\n title,\n description,\n actionLabel,\n color,\n });\n });\n}\n","import { getShortcutFromShortcutName } from \"../../actions/shortcuts\";\nimport { useI18n } from \"../../i18n\";\nimport {\n useExcalidrawSetAppState,\n useExcalidrawActionManager,\n useExcalidrawElements,\n useAppProps,\n} from \"../App\";\nimport {\n ExportIcon,\n ExportImageIcon,\n HelpIcon,\n LoadIcon,\n MoonIcon,\n save,\n SunIcon,\n TrashIcon,\n usersIcon,\n} from \"../icons\";\nimport { GithubIcon, DiscordIcon, XBrandIcon } from \"../icons\";\nimport DropdownMenuItem from \"../dropdownMenu/DropdownMenuItem\";\nimport DropdownMenuItemLink from \"../dropdownMenu/DropdownMenuItemLink\";\nimport {\n actionClearCanvas,\n actionLoadScene,\n actionSaveToActiveFile,\n actionShortcuts,\n actionToggleTheme,\n} from \"../../actions\";\n\nimport \"./DefaultItems.scss\";\nimport clsx from \"clsx\";\nimport { useSetAtom } from \"jotai\";\nimport { activeConfirmDialogAtom } from \"../ActiveConfirmDialog\";\nimport { jotaiScope } from \"../../jotai\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport { openConfirmModal } from \"../OverwriteConfirm/OverwriteConfirmState\";\nimport Trans from \"../Trans\";\n\nexport const LoadScene = () => {\n const { t } = useI18n();\n const actionManager = useExcalidrawActionManager();\n const elements = useExcalidrawElements();\n\n if (!actionManager.isActionEnabled(actionLoadScene)) {\n return null;\n }\n\n const handleSelect = async () => {\n if (\n !elements.length ||\n (await openConfirmModal({\n title: t(\"overwriteConfirm.modal.loadFromFile.title\"),\n actionLabel: t(\"overwriteConfirm.modal.loadFromFile.button\"),\n color: \"warning\",\n description: (\n {text}}\n br={() =>
    }\n />\n ),\n }))\n ) {\n actionManager.executeAction(actionLoadScene);\n }\n };\n\n return (\n \n {t(\"buttons.load\")}\n \n );\n};\nLoadScene.displayName = \"LoadScene\";\n\nexport const SaveToActiveFile = () => {\n const { t } = useI18n();\n const actionManager = useExcalidrawActionManager();\n\n if (!actionManager.isActionEnabled(actionSaveToActiveFile)) {\n return null;\n }\n\n return (\n actionManager.executeAction(actionSaveToActiveFile)}\n icon={save}\n aria-label={`${t(\"buttons.save\")}`}\n >{`${t(\"buttons.save\")}`}\n );\n};\nSaveToActiveFile.displayName = \"SaveToActiveFile\";\n\nexport const SaveAsImage = () => {\n const setAppState = useExcalidrawSetAppState();\n const { t } = useI18n();\n return (\n setAppState({ openDialog: { name: \"imageExport\" } })}\n shortcut={getShortcutFromShortcutName(\"imageExport\")}\n aria-label={t(\"buttons.exportImage\")}\n >\n {t(\"buttons.exportImage\")}\n \n );\n};\nSaveAsImage.displayName = \"SaveAsImage\";\n\nexport const Help = () => {\n const { t } = useI18n();\n\n const actionManager = useExcalidrawActionManager();\n\n return (\n actionManager.executeAction(actionShortcuts)}\n shortcut=\"?\"\n aria-label={t(\"helpDialog.title\")}\n >\n {t(\"helpDialog.title\")}\n \n );\n};\nHelp.displayName = \"Help\";\n\nexport const ClearCanvas = () => {\n const { t } = useI18n();\n\n const setActiveConfirmDialog = useSetAtom(\n activeConfirmDialogAtom,\n jotaiScope,\n );\n const actionManager = useExcalidrawActionManager();\n\n if (!actionManager.isActionEnabled(actionClearCanvas)) {\n return null;\n }\n\n return (\n setActiveConfirmDialog(\"clearCanvas\")}\n data-testid=\"clear-canvas-button\"\n aria-label={t(\"buttons.clearReset\")}\n >\n {t(\"buttons.clearReset\")}\n \n );\n};\nClearCanvas.displayName = \"ClearCanvas\";\n\nexport const ToggleTheme = () => {\n const { t } = useI18n();\n const appState = useUIAppState();\n const actionManager = useExcalidrawActionManager();\n\n if (!actionManager.isActionEnabled(actionToggleTheme)) {\n return null;\n }\n\n return (\n {\n // do not close the menu when changing theme\n event.preventDefault();\n return actionManager.executeAction(actionToggleTheme);\n }}\n icon={appState.theme === \"dark\" ? SunIcon : MoonIcon}\n data-testid=\"toggle-dark-mode\"\n shortcut={getShortcutFromShortcutName(\"toggleTheme\")}\n aria-label={\n appState.theme === \"dark\"\n ? t(\"buttons.lightMode\")\n : t(\"buttons.darkMode\")\n }\n >\n {appState.theme === \"dark\"\n ? t(\"buttons.lightMode\")\n : t(\"buttons.darkMode\")}\n \n );\n};\nToggleTheme.displayName = \"ToggleTheme\";\n\nexport const ChangeCanvasBackground = () => {\n const { t } = useI18n();\n const appState = useUIAppState();\n const actionManager = useExcalidrawActionManager();\n const appProps = useAppProps();\n\n if (\n appState.viewModeEnabled ||\n !appProps.UIOptions.canvasActions.changeViewBackgroundColor\n ) {\n return null;\n }\n return (\n
    \n \n {t(\"labels.canvasBackground\")}\n
    \n
    \n {actionManager.renderAction(\"changeViewBackgroundColor\")}\n
    \n \n );\n};\nChangeCanvasBackground.displayName = \"ChangeCanvasBackground\";\n\nexport const Export = () => {\n const { t } = useI18n();\n const setAppState = useExcalidrawSetAppState();\n return (\n {\n setAppState({ openDialog: { name: \"jsonExport\" } });\n }}\n data-testid=\"json-export-button\"\n aria-label={t(\"buttons.export\")}\n >\n {t(\"buttons.export\")}\n \n );\n};\nExport.displayName = \"Export\";\n\nexport const Socials = () => {\n const { t } = useI18n();\n\n return (\n <>\n \n GitHub\n \n \n {t(\"labels.followUs\")}\n \n \n {t(\"labels.discordChat\")}\n \n \n );\n};\nSocials.displayName = \"Socials\";\n\nexport const LiveCollaborationTrigger = ({\n onSelect,\n isCollaborating,\n}: {\n onSelect: () => void;\n isCollaborating: boolean;\n}) => {\n const { t } = useI18n();\n return (\n \n {t(\"labels.liveCollaboration\")}\n \n );\n};\n\nLiveCollaborationTrigger.displayName = \"LiveCollaborationTrigger\";\n","import { atom, useAtom } from \"jotai\";\nimport React, { useLayoutEffect, useRef } from \"react\";\nimport { useTunnels } from \"../../context/tunnels\";\n\nexport const withInternalFallback = (\n componentName: string,\n Component: React.FC

    ,\n) => {\n const renderAtom = atom(0);\n\n const WrapperComponent: React.FC<\n P & {\n __fallback?: boolean;\n }\n > = (props) => {\n const { jotaiScope } = useTunnels();\n // for rerenders\n const [, setCounter] = useAtom(renderAtom, jotaiScope);\n // for initial & subsequent renders. Tracked as component state\n // due to excalidraw multi-instance scanerios.\n const metaRef = useRef({\n // flag set on initial render to tell the fallback component to skip the\n // render until mount counter are initialized. This is because the counter\n // is initialized in an effect, and thus we could end rendering both\n // components at the same time until counter is initialized.\n preferHost: false,\n counter: 0,\n });\n\n useLayoutEffect(() => {\n const meta = metaRef.current;\n setCounter((c) => {\n const next = c + 1;\n meta.counter = next;\n\n return next;\n });\n return () => {\n setCounter((c) => {\n const next = c - 1;\n meta.counter = next;\n if (!next) {\n meta.preferHost = false;\n }\n return next;\n });\n };\n }, [setCounter]);\n\n if (!props.__fallback) {\n metaRef.current.preferHost = true;\n }\n\n // ensure we don't render fallback and host components at the same time\n if (\n // either before the counters are initialized\n (!metaRef.current.counter &&\n props.__fallback &&\n metaRef.current.preferHost) ||\n // or after the counters are initialized, and both are rendered\n // (this is the default when host renders as well)\n (metaRef.current.counter > 1 && props.__fallback)\n ) {\n return null;\n }\n\n return ;\n };\n\n WrapperComponent.displayName = componentName;\n\n return WrapperComponent;\n};\n","import React from \"react\";\nimport { useDevice, useExcalidrawSetAppState } from \"../App\";\nimport DropdownMenu from \"../dropdownMenu/DropdownMenu\";\n\nimport * as DefaultItems from \"./DefaultItems\";\n\nimport { UserList } from \"../UserList\";\nimport { t } from \"../../i18n\";\nimport { HamburgerMenuIcon } from \"../icons\";\nimport { withInternalFallback } from \"../hoc/withInternalFallback\";\nimport { composeEventHandlers } from \"../../utils\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport { useUIAppState } from \"../../context/ui-appState\";\n\nconst MainMenu = Object.assign(\n withInternalFallback(\n \"MainMenu\",\n ({\n children,\n onSelect,\n }: {\n children?: React.ReactNode;\n /**\n * Called when any menu item is selected (clicked on).\n */\n onSelect?: (event: Event) => void;\n }) => {\n const { MainMenuTunnel } = useTunnels();\n const device = useDevice();\n const appState = useUIAppState();\n const setAppState = useExcalidrawSetAppState();\n const onClickOutside = device.editor.isMobile\n ? undefined\n : () => setAppState({ openMenu: null });\n\n return (\n \n \n {\n setAppState({\n openMenu: appState.openMenu === \"canvas\" ? null : \"canvas\",\n });\n }}\n data-testid=\"main-menu-trigger\"\n className=\"main-menu-trigger\"\n >\n {HamburgerMenuIcon}\n \n {\n setAppState({ openMenu: null });\n })}\n >\n {children}\n {device.editor.isMobile && appState.collaborators.size > 0 && (\n

    \n {t(\"labels.collaborators\")}\n \n
    \n )}\n \n \n \n );\n },\n ),\n {\n Trigger: DropdownMenu.Trigger,\n Item: DropdownMenu.Item,\n ItemLink: DropdownMenu.ItemLink,\n ItemCustom: DropdownMenu.ItemCustom,\n Group: DropdownMenu.Group,\n Separator: DropdownMenu.Separator,\n DefaultItems,\n },\n);\n\nexport default MainMenu;\n","import React from \"react\";\nimport { FilledButton } from \"../FilledButton\";\nimport { useExcalidrawActionManager, useExcalidrawSetAppState } from \"../App\";\nimport { actionSaveFileToDisk } from \"../../actions\";\nimport { useI18n } from \"../../i18n\";\nimport { actionChangeExportEmbedScene } from \"../../actions/actionExport\";\n\nexport type ActionProps = {\n title: string;\n children: React.ReactNode;\n actionLabel: string;\n onClick: () => void;\n};\n\nexport const Action = ({\n title,\n children,\n actionLabel,\n onClick,\n}: ActionProps) => {\n return (\n
    \n

    {title}

    \n
    \n {children}\n
    \n \n
    \n );\n};\n\nexport const ExportToImage = () => {\n const { t } = useI18n();\n const actionManager = useExcalidrawActionManager();\n const setAppState = useExcalidrawSetAppState();\n\n return (\n {\n actionManager.executeAction(actionChangeExportEmbedScene, \"ui\", true);\n setAppState({ openDialog: { name: \"imageExport\" } });\n }}\n >\n {t(\"overwriteConfirm.action.exportToImage.description\")}\n \n );\n};\n\nexport const SaveToDisk = () => {\n const { t } = useI18n();\n const actionManager = useExcalidrawActionManager();\n\n return (\n {\n actionManager.executeAction(actionSaveFileToDisk, \"ui\");\n }}\n >\n {t(\"overwriteConfirm.action.saveToDisk.description\")}\n \n );\n};\n\nconst Actions = Object.assign(\n ({ children }: { children: React.ReactNode }) => {\n return
    {children}
    ;\n },\n {\n ExportToImage,\n SaveToDisk,\n },\n);\n\nexport { Actions };\n","import React from \"react\";\nimport { useAtom } from \"jotai\";\n\nimport { useTunnels } from \"../../context/tunnels\";\nimport { jotaiScope } from \"../../jotai\";\nimport { Dialog } from \"../Dialog\";\nimport { withInternalFallback } from \"../hoc/withInternalFallback\";\nimport { overwriteConfirmStateAtom } from \"./OverwriteConfirmState\";\n\nimport { FilledButton } from \"../FilledButton\";\nimport { alertTriangleIcon } from \"../icons\";\nimport { Actions, Action } from \"./OverwriteConfirmActions\";\nimport \"./OverwriteConfirm.scss\";\n\nexport type OverwriteConfirmDialogProps = {\n children: React.ReactNode;\n};\n\nconst OverwriteConfirmDialog = Object.assign(\n withInternalFallback(\n \"OverwriteConfirmDialog\",\n ({ children }: OverwriteConfirmDialogProps) => {\n const { OverwriteConfirmDialogTunnel } = useTunnels();\n const [overwriteConfirmState, setState] = useAtom(\n overwriteConfirmStateAtom,\n jotaiScope,\n );\n\n if (!overwriteConfirmState.active) {\n return null;\n }\n\n const handleClose = () => {\n overwriteConfirmState.onClose();\n setState((state) => ({ ...state, active: false }));\n };\n\n const handleConfirm = () => {\n overwriteConfirmState.onConfirm();\n setState((state) => ({ ...state, active: false }));\n };\n\n return (\n \n \n
    \n

    {overwriteConfirmState.title}

    \n \n
    \n {alertTriangleIcon}\n
    \n
    {overwriteConfirmState.description}
    \n
    \n \n
    \n {children}\n \n
    \n
    \n );\n },\n ),\n {\n Actions,\n Action,\n },\n);\n\nexport { OverwriteConfirmDialog };\n","import clsx from \"clsx\";\nimport { DEFAULT_SIDEBAR, LIBRARY_SIDEBAR_TAB } from \"../constants\";\nimport { useTunnels } from \"../context/tunnels\";\nimport { useUIAppState } from \"../context/ui-appState\";\nimport { t } from \"../i18n\";\nimport { MarkOptional, Merge } from \"../utility-types\";\nimport { composeEventHandlers } from \"../utils\";\nimport { useExcalidrawSetAppState } from \"./App\";\nimport { withInternalFallback } from \"./hoc/withInternalFallback\";\nimport { LibraryMenu } from \"./LibraryMenu\";\nimport { SidebarProps, SidebarTriggerProps } from \"./Sidebar/common\";\nimport { Sidebar } from \"./Sidebar/Sidebar\";\n\nconst DefaultSidebarTrigger = withInternalFallback(\n \"DefaultSidebarTrigger\",\n (\n props: Omit &\n React.HTMLAttributes,\n ) => {\n const { DefaultSidebarTriggerTunnel } = useTunnels();\n return (\n \n \n \n );\n },\n);\nDefaultSidebarTrigger.displayName = \"DefaultSidebarTrigger\";\n\nconst DefaultTabTriggers = ({\n children,\n ...rest\n}: { children: React.ReactNode } & React.HTMLAttributes) => {\n const { DefaultSidebarTabTriggersTunnel } = useTunnels();\n return (\n \n {children}\n \n );\n};\nDefaultTabTriggers.displayName = \"DefaultTabTriggers\";\n\nexport const DefaultSidebar = Object.assign(\n withInternalFallback(\n \"DefaultSidebar\",\n ({\n children,\n className,\n onDock,\n docked,\n ...rest\n }: Merge<\n MarkOptional, \"children\">,\n {\n /** pass `false` to disable docking */\n onDock?: SidebarProps[\"onDock\"] | false;\n }\n >) => {\n const appState = useUIAppState();\n const setAppState = useExcalidrawSetAppState();\n\n const { DefaultSidebarTabTriggersTunnel } = useTunnels();\n\n return (\n {\n setAppState({ defaultSidebarDockedPreference: docked });\n })\n }\n >\n \n \n {rest.__fallback && (\n \n {t(\"toolBar.library\")}\n \n )}\n \n \n \n \n \n {children}\n \n \n );\n },\n ),\n {\n Trigger: DefaultSidebarTrigger,\n TabTriggers: DefaultTabTriggers,\n },\n);\n","import \"./ToolIcon.scss\";\n\nimport clsx from \"clsx\";\nimport { ToolButtonSize } from \"./ToolButton\";\nimport { laserPointerToolIcon } from \"./icons\";\n\ntype LaserPointerIconProps = {\n title?: string;\n name?: string;\n checked: boolean;\n onChange?(): void;\n isMobile?: boolean;\n};\n\nconst DEFAULT_SIZE: ToolButtonSize = \"small\";\n\nexport const LaserPointerButton = (props: LaserPointerIconProps) => {\n return (\n \n \n
    {laserPointerToolIcon}
    \n \n );\n};\n","import {\n forwardRef,\n useRef,\n useImperativeHandle,\n KeyboardEvent,\n useLayoutEffect,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./TextField.scss\";\nimport { Button } from \"./Button\";\nimport { eyeIcon, eyeClosedIcon } from \"./icons\";\n\ntype TextFieldProps = {\n onChange?: (value: string) => void;\n onClick?: () => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n\n readonly?: boolean;\n fullWidth?: boolean;\n selectOnRender?: boolean;\n\n label?: string;\n placeholder?: string;\n isRedacted?: boolean;\n} & ({ value: string } | { defaultValue: string });\n\nexport const TextField = forwardRef(\n (\n {\n onChange,\n label,\n fullWidth,\n placeholder,\n readonly,\n selectOnRender,\n onKeyDown,\n isRedacted = false,\n ...rest\n },\n ref,\n ) => {\n const innerRef = useRef(null);\n\n useImperativeHandle(ref, () => innerRef.current!);\n\n useLayoutEffect(() => {\n if (selectOnRender) {\n innerRef.current?.select();\n }\n }, [selectOnRender]);\n\n const [isTemporarilyUnredacted, setIsTemporarilyUnredacted] =\n useState(false);\n\n return (\n {\n innerRef.current?.focus();\n }}\n >\n
    {label}
    \n \n onChange?.(event.target.value)}\n onKeyDown={onKeyDown}\n />\n {isRedacted && (\n \n setIsTemporarilyUnredacted(!isTemporarilyUnredacted)\n }\n style={{ border: 0, userSelect: \"none\" }}\n >\n {isTemporarilyUnredacted ? eyeClosedIcon : eyeIcon}\n \n )}\n \n \n );\n },\n);\n","export const InlineIcon = ({ icon }: { icon: JSX.Element }) => {\n return (\n \n {icon}\n \n );\n};\n","export const Paragraph = (props: {\n children: React.ReactNode;\n style?: React.CSSProperties;\n}) => {\n return (\n

    \n {props.children}\n

    \n );\n};\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\nimport { ReactNode, useRef } from \"react\";\nimport { useExcalidrawSetAppState } from \"../App\";\nimport { isMemberOf } from \"../../utils\";\n\nconst TTDDialogTabs = (\n props: {\n children: ReactNode;\n } & (\n | { dialog: \"ttd\"; tab: \"text-to-diagram\" | \"mermaid\" }\n | { dialog: \"settings\"; tab: \"text-to-diagram\" | \"diagram-to-code\" }\n ),\n) => {\n const setAppState = useExcalidrawSetAppState();\n\n const rootRef = useRef(null);\n const minHeightRef = useRef(0);\n\n return (\n {\n if (!tab) {\n return;\n }\n const modalContentNode =\n rootRef.current?.closest(\".Modal__content\");\n if (modalContentNode) {\n const currHeight = modalContentNode.offsetHeight || 0;\n if (currHeight > minHeightRef.current) {\n minHeightRef.current = currHeight;\n modalContentNode.style.minHeight = `min(${minHeightRef.current}px, 100%)`;\n }\n }\n if (\n props.dialog === \"settings\" &&\n isMemberOf([\"text-to-diagram\", \"diagram-to-code\"], tab)\n ) {\n setAppState({\n openDialog: { name: props.dialog, tab, source: \"settings\" },\n });\n } else if (\n props.dialog === \"ttd\" &&\n isMemberOf([\"text-to-diagram\", \"mermaid\"], tab)\n ) {\n setAppState({\n openDialog: { name: props.dialog, tab },\n });\n }\n }}\n >\n {props.children}\n \n );\n};\n\nTTDDialogTabs.displayName = \"TTDDialogTabs\";\n\nexport default TTDDialogTabs;\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\n\nexport const TTDDialogTab = ({\n tab,\n children,\n ...rest\n}: {\n tab: string;\n children: React.ReactNode;\n} & React.HTMLAttributes) => {\n return (\n \n {children}\n \n );\n};\nTTDDialogTab.displayName = \"TTDDialogTab\";\n","import { useState } from \"react\";\nimport { Dialog } from \"./Dialog\";\nimport { TextField } from \"./TextField\";\nimport { MagicIcon, OpenAIIcon } from \"./icons\";\nimport { FilledButton } from \"./FilledButton\";\nimport { CheckboxItem } from \"./CheckboxItem\";\nimport { KEYS } from \"../keys\";\nimport { useUIAppState } from \"../context/ui-appState\";\nimport { InlineIcon } from \"./InlineIcon\";\nimport { Paragraph } from \"./Paragraph\";\n\nimport \"./MagicSettings.scss\";\nimport TTDDialogTabs from \"./TTDDialog/TTDDialogTabs\";\nimport { TTDDialogTab } from \"./TTDDialog/TTDDialogTab\";\n\nexport const MagicSettings = (props: {\n openAIKey: string | null;\n isPersisted: boolean;\n onChange: (key: string, shouldPersist: boolean) => void;\n onConfirm: (key: string, shouldPersist: boolean) => void;\n onClose: () => void;\n}) => {\n const [keyInputValue, setKeyInputValue] = useState(props.openAIKey || \"\");\n const [shouldPersist, setShouldPersist] = useState(\n props.isPersisted,\n );\n\n const appState = useUIAppState();\n\n const onConfirm = () => {\n props.onConfirm(keyInputValue.trim(), shouldPersist);\n };\n\n if (appState.openDialog?.name !== \"settings\") {\n return null;\n }\n\n return (\n {\n props.onClose();\n props.onConfirm(keyInputValue.trim(), shouldPersist);\n }}\n title={\n
    \n Wireframe to Code (AI){\" \"}\n \n Experimental\n
    \n \n }\n className=\"MagicSettings\"\n autofocus={false}\n >\n {/* \n AI Settings\n */}\n \n {/* \n \n Text to diagram\n \n \n Wireframe to code\n \n */}\n {/* \n TODO\n */}\n \n \n For the diagram-to-code feature we use{\" \"}\n \n OpenAI.\n \n \n While the OpenAI API is in beta, its use is strictly limited — as\n such we require you use your own API key. You can create an{\" \"}\n \n OpenAI account\n \n , add a small credit (5 USD minimum), and{\" \"}\n \n generate your own API key\n \n .\n \n \n Your OpenAI key does not leave the browser, and you can also set\n your own limit in your OpenAI account dashboard if needed.\n \n {\n setKeyInputValue(value);\n props.onChange(value.trim(), shouldPersist);\n }}\n selectOnRender\n onKeyDown={(event) => event.key === KEYS.ENTER && onConfirm()}\n />\n \n By default, your API token is not persisted anywhere so you'll need\n to insert it again after reload. But, you can persist locally in\n your browser below.\n \n\n \n Persist API key in browser storage\n \n\n \n Once API key is set, you can use the {\" \"}\n tool to wrap your elements in a frame that will then allow you to\n turn it into code. This dialog can be accessed using the{\" \"}\n AI Settings .\n \n\n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\n\nimport { LoadingMessage } from \"./LoadingMessage\";\nimport { defaultLang, Language, languages, setLanguage } from \"../i18n\";\nimport { Theme } from \"../element/types\";\n\ninterface Props {\n langCode: Language[\"code\"];\n children: React.ReactElement;\n theme?: Theme;\n}\n\nexport const InitializeApp = (props: Props) => {\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const updateLang = async () => {\n await setLanguage(currentLang);\n setLoading(false);\n };\n const currentLang =\n languages.find((lang) => lang.code === props.langCode) || defaultLang;\n updateLang();\n }, [props.langCode]);\n\n return loading ? : props.children;\n};\n","import clsx from \"clsx\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport \"./FooterCenter.scss\";\nimport { useUIAppState } from \"../../context/ui-appState\";\n\nconst FooterCenter = ({ children }: { children?: React.ReactNode }) => {\n const { FooterCenterTunnel } = useTunnels();\n const appState = useUIAppState();\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default FooterCenter;\nFooterCenter.displayName = \"FooterCenter\";\n","import \"./ExcalidrawLogo.scss\";\n\nconst LogoIcon = () => (\n \n \n \n);\n\nconst LogoText = () => (\n \n \n \n \n \n \n);\n\ntype LogoSize = \"xs\" | \"small\" | \"normal\" | \"large\" | \"custom\";\n\ninterface LogoProps {\n size?: LogoSize;\n withText?: boolean;\n style?: React.CSSProperties;\n /**\n * If true, the logo will not be wrapped in a Link component.\n * The link prop will be ignored as well.\n * It will merely be a plain div.\n */\n isNotLink?: boolean;\n}\n\nexport const ExcalidrawLogo = ({\n style,\n size = \"small\",\n withText,\n}: LogoProps) => {\n return (\n
    \n \n {withText && }\n
    \n );\n};\n","import { actionLoadScene, actionShortcuts } from \"../../actions\";\nimport { getShortcutFromShortcutName } from \"../../actions/shortcuts\";\nimport { t, useI18n } from \"../../i18n\";\nimport { useDevice, useExcalidrawActionManager } from \"../App\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport { HelpIcon, LoadIcon, usersIcon } from \"../icons\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport { ExcalidrawLogo } from \"../ExcalidrawLogo\";\n\nconst WelcomeScreenMenuItemContent = ({\n icon,\n shortcut,\n children,\n}: {\n icon?: JSX.Element;\n shortcut?: string | null;\n children: React.ReactNode;\n}) => {\n const device = useDevice();\n return (\n <>\n
    {icon}
    \n
    {children}
    \n {shortcut && !device.editor.isMobile && (\n
    {shortcut}
    \n )}\n \n );\n};\nWelcomeScreenMenuItemContent.displayName = \"WelcomeScreenMenuItemContent\";\n\nconst WelcomeScreenMenuItem = ({\n onSelect,\n children,\n icon,\n shortcut,\n className = \"\",\n ...props\n}: {\n onSelect: () => void;\n children: React.ReactNode;\n icon?: JSX.Element;\n shortcut?: string | null;\n} & React.ButtonHTMLAttributes) => {\n return (\n \n \n {children}\n \n \n );\n};\nWelcomeScreenMenuItem.displayName = \"WelcomeScreenMenuItem\";\n\nconst WelcomeScreenMenuItemLink = ({\n children,\n href,\n icon,\n shortcut,\n className = \"\",\n ...props\n}: {\n children: React.ReactNode;\n href: string;\n icon?: JSX.Element;\n shortcut?: string | null;\n} & React.AnchorHTMLAttributes) => {\n return (\n \n \n {children}\n \n \n );\n};\nWelcomeScreenMenuItemLink.displayName = \"WelcomeScreenMenuItemLink\";\n\nconst Center = ({ children }: { children?: React.ReactNode }) => {\n const { WelcomeScreenCenterTunnel } = useTunnels();\n return (\n \n
    \n {children || (\n <>\n \n {t(\"welcomeScreen.defaults.center_heading\")}\n \n \n \n \n \n )}\n
    \n
    \n );\n};\nCenter.displayName = \"Center\";\n\nconst Logo = ({ children }: { children?: React.ReactNode }) => {\n return (\n
    \n {children || }\n
    \n );\n};\nLogo.displayName = \"Logo\";\n\nconst Heading = ({ children }: { children: React.ReactNode }) => {\n return (\n
    \n {children}\n
    \n );\n};\nHeading.displayName = \"Heading\";\n\nconst Menu = ({ children }: { children?: React.ReactNode }) => {\n return
    {children}
    ;\n};\nMenu.displayName = \"Menu\";\n\nconst MenuItemHelp = () => {\n const actionManager = useExcalidrawActionManager();\n\n return (\n actionManager.executeAction(actionShortcuts)}\n shortcut=\"?\"\n icon={HelpIcon}\n >\n {t(\"helpDialog.title\")}\n \n );\n};\nMenuItemHelp.displayName = \"MenuItemHelp\";\n\nconst MenuItemLoadScene = () => {\n const appState = useUIAppState();\n const actionManager = useExcalidrawActionManager();\n\n if (appState.viewModeEnabled) {\n return null;\n }\n\n return (\n actionManager.executeAction(actionLoadScene)}\n shortcut={getShortcutFromShortcutName(\"loadScene\")}\n icon={LoadIcon}\n >\n {t(\"buttons.load\")}\n \n );\n};\nMenuItemLoadScene.displayName = \"MenuItemLoadScene\";\n\nconst MenuItemLiveCollaborationTrigger = ({\n onSelect,\n}: {\n onSelect: () => any;\n}) => {\n const { t } = useI18n();\n return (\n \n {t(\"labels.liveCollaboration\")}\n \n );\n};\nMenuItemLiveCollaborationTrigger.displayName =\n \"MenuItemLiveCollaborationTrigger\";\n\n// -----------------------------------------------------------------------------\n\nCenter.Logo = Logo;\nCenter.Heading = Heading;\nCenter.Menu = Menu;\nCenter.MenuItem = WelcomeScreenMenuItem;\nCenter.MenuItemLink = WelcomeScreenMenuItemLink;\nCenter.MenuItemHelp = MenuItemHelp;\nCenter.MenuItemLoadScene = MenuItemLoadScene;\nCenter.MenuItemLiveCollaborationTrigger = MenuItemLiveCollaborationTrigger;\n\nexport { Center };\n","import { t } from \"../../i18n\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport {\n WelcomeScreenHelpArrow,\n WelcomeScreenMenuArrow,\n WelcomeScreenTopToolbarArrow,\n} from \"../icons\";\n\nconst MenuHint = ({ children }: { children?: React.ReactNode }) => {\n const { WelcomeScreenMenuHintTunnel } = useTunnels();\n return (\n \n
    \n {WelcomeScreenMenuArrow}\n
    \n {children || t(\"welcomeScreen.defaults.menuHint\")}\n
    \n
    \n
    \n );\n};\nMenuHint.displayName = \"MenuHint\";\n\nconst ToolbarHint = ({ children }: { children?: React.ReactNode }) => {\n const { WelcomeScreenToolbarHintTunnel } = useTunnels();\n return (\n \n
    \n
    \n {children || t(\"welcomeScreen.defaults.toolbarHint\")}\n
    \n {WelcomeScreenTopToolbarArrow}\n
    \n
    \n );\n};\nToolbarHint.displayName = \"ToolbarHint\";\n\nconst HelpHint = ({ children }: { children?: React.ReactNode }) => {\n const { WelcomeScreenHelpHintTunnel } = useTunnels();\n return (\n \n
    \n
    {children || t(\"welcomeScreen.defaults.helpHint\")}
    \n {WelcomeScreenHelpArrow}\n
    \n
    \n );\n};\nHelpHint.displayName = \"HelpHint\";\n\nexport { HelpHint, MenuHint, ToolbarHint };\n","import { Center } from \"./WelcomeScreen.Center\";\nimport { MenuHint, ToolbarHint, HelpHint } from \"./WelcomeScreen.Hints\";\n\nimport \"./WelcomeScreen.scss\";\n\nconst WelcomeScreen = (props: { children?: React.ReactNode }) => {\n return (\n <>\n {props.children || (\n <>\n
    \n \n \n \n \n )}\n \n );\n};\n\nWelcomeScreen.displayName = \"WelcomeScreen\";\n\nWelcomeScreen.Center = Center;\nWelcomeScreen.Hints = { MenuHint, ToolbarHint, HelpHint };\n\nexport default WelcomeScreen;\n","import { t } from \"../../i18n\";\nimport { share } from \"../icons\";\nimport { Button } from \"../Button\";\n\nimport clsx from \"clsx\";\n\nimport \"./LiveCollaborationTrigger.scss\";\nimport { useUIAppState } from \"../../context/ui-appState\";\n\nconst LiveCollaborationTrigger = ({\n isCollaborating,\n onSelect,\n ...rest\n}: {\n isCollaborating: boolean;\n onSelect: () => void;\n} & React.ButtonHTMLAttributes) => {\n const appState = useUIAppState();\n\n const showIconOnly = appState.width < 830;\n\n return (\n \n {showIconOnly ? share : t(\"labels.share\")}\n {appState.collaborators.size > 0 && (\n
    \n {appState.collaborators.size}\n
    \n )}\n \n );\n};\n\nexport default LiveCollaborationTrigger;\nLiveCollaborationTrigger.displayName = \"LiveCollaborationTrigger\";\n","import { ReactNode } from \"react\";\nimport { useTunnels } from \"../../context/tunnels\";\nimport DropdownMenu from \"../dropdownMenu/DropdownMenu\";\nimport { useExcalidrawSetAppState } from \"../App\";\nimport { brainIcon } from \"../icons\";\nimport { t } from \"../../i18n\";\nimport { trackEvent } from \"../../analytics\";\n\nexport const TTDDialogTrigger = ({\n children,\n icon,\n}: {\n children?: ReactNode;\n icon?: JSX.Element;\n}) => {\n const { TTDDialogTriggerTunnel } = useTunnels();\n const setAppState = useExcalidrawSetAppState();\n\n return (\n \n {\n trackEvent(\"ai\", \"dialog open\", \"ttd\");\n setAppState({ openDialog: { name: \"ttd\", tab: \"text-to-diagram\" } });\n }}\n icon={icon ?? brainIcon}\n >\n {children ?? t(\"labels.textToDiagram\")}\n AI\n \n \n );\n};\nTTDDialogTrigger.displayName = \"TTDDialogTrigger\";\n","import {\n DEFAULT_FONT_FAMILY,\n DEFAULT_FONT_SIZE,\n TEXT_ALIGN,\n VERTICAL_ALIGN,\n} from \"../constants\";\nimport {\n getCommonBounds,\n newElement,\n newLinearElement,\n redrawTextBoundingBox,\n} from \"../element\";\nimport { bindLinearElement } from \"../element/binding\";\nimport {\n ElementConstructorOpts,\n newFrameElement,\n newImageElement,\n newMagicFrameElement,\n newTextElement,\n} from \"../element/newElement\";\nimport {\n getDefaultLineHeight,\n measureText,\n normalizeText,\n} from \"../element/textElement\";\nimport {\n ElementsMap,\n ExcalidrawArrowElement,\n ExcalidrawBindableElement,\n ExcalidrawElement,\n ExcalidrawFrameElement,\n ExcalidrawFreeDrawElement,\n ExcalidrawGenericElement,\n ExcalidrawIframeLikeElement,\n ExcalidrawImageElement,\n ExcalidrawLinearElement,\n ExcalidrawMagicFrameElement,\n ExcalidrawSelectionElement,\n ExcalidrawTextElement,\n FileId,\n FontFamilyValues,\n NonDeletedSceneElementsMap,\n TextAlign,\n VerticalAlign,\n} from \"../element/types\";\nimport { MarkOptional } from \"../utility-types\";\nimport { assertNever, cloneJSON, getFontString, toBrandedType } from \"../utils\";\nimport { getSizeFromPoints } from \"../points\";\nimport { randomId } from \"../random\";\n\nexport type ValidLinearElement = {\n type: \"arrow\" | \"line\";\n x: number;\n y: number;\n label?: {\n text: string;\n fontSize?: number;\n fontFamily?: FontFamilyValues;\n textAlign?: TextAlign;\n verticalAlign?: VerticalAlign;\n } & MarkOptional;\n end?:\n | (\n | (\n | {\n type: Exclude<\n ExcalidrawBindableElement[\"type\"],\n | \"image\"\n | \"text\"\n | \"frame\"\n | \"magicframe\"\n | \"embeddable\"\n | \"iframe\"\n >;\n id?: ExcalidrawGenericElement[\"id\"];\n }\n | {\n id: ExcalidrawGenericElement[\"id\"];\n type?: Exclude<\n ExcalidrawBindableElement[\"type\"],\n | \"image\"\n | \"text\"\n | \"frame\"\n | \"magicframe\"\n | \"embeddable\"\n | \"iframe\"\n >;\n }\n )\n | ((\n | {\n type: \"text\";\n text: string;\n }\n | {\n type?: \"text\";\n id: ExcalidrawTextElement[\"id\"];\n text: string;\n }\n ) &\n Partial)\n ) &\n MarkOptional;\n start?:\n | (\n | (\n | {\n type: Exclude<\n ExcalidrawBindableElement[\"type\"],\n | \"image\"\n | \"text\"\n | \"frame\"\n | \"magicframe\"\n | \"embeddable\"\n | \"iframe\"\n >;\n id?: ExcalidrawGenericElement[\"id\"];\n }\n | {\n id: ExcalidrawGenericElement[\"id\"];\n type?: Exclude<\n ExcalidrawBindableElement[\"type\"],\n | \"image\"\n | \"text\"\n | \"frame\"\n | \"magicframe\"\n | \"embeddable\"\n | \"iframe\"\n >;\n }\n )\n | ((\n | {\n type: \"text\";\n text: string;\n }\n | {\n type?: \"text\";\n id: ExcalidrawTextElement[\"id\"];\n text: string;\n }\n ) &\n Partial)\n ) &\n MarkOptional;\n} & Partial;\n\nexport type ValidContainer =\n | {\n type: Exclude;\n id?: ExcalidrawGenericElement[\"id\"];\n label?: {\n text: string;\n fontSize?: number;\n fontFamily?: FontFamilyValues;\n textAlign?: TextAlign;\n verticalAlign?: VerticalAlign;\n } & MarkOptional;\n } & ElementConstructorOpts;\n\nexport type ExcalidrawElementSkeleton =\n | Extract<\n Exclude,\n ExcalidrawIframeLikeElement | ExcalidrawFreeDrawElement\n >\n | ({\n type: Extract;\n x: number;\n y: number;\n } & Partial)\n | ValidContainer\n | ValidLinearElement\n | ({\n type: \"text\";\n text: string;\n x: number;\n y: number;\n id?: ExcalidrawTextElement[\"id\"];\n } & Partial)\n | ({\n type: Extract;\n x: number;\n y: number;\n fileId: FileId;\n } & Partial)\n | ({\n type: \"frame\";\n children: readonly ExcalidrawElement[\"id\"][];\n name?: string;\n } & Partial)\n | ({\n type: \"magicframe\";\n children: readonly ExcalidrawElement[\"id\"][];\n name?: string;\n } & Partial);\n\nconst DEFAULT_LINEAR_ELEMENT_PROPS = {\n width: 100,\n height: 0,\n};\n\nconst DEFAULT_DIMENSION = 100;\n\nconst bindTextToContainer = (\n container: ExcalidrawElement,\n textProps: { text: string } & MarkOptional,\n elementsMap: ElementsMap,\n) => {\n const textElement: ExcalidrawTextElement = newTextElement({\n x: 0,\n y: 0,\n textAlign: TEXT_ALIGN.CENTER,\n verticalAlign: VERTICAL_ALIGN.MIDDLE,\n ...textProps,\n containerId: container.id,\n strokeColor: textProps.strokeColor || container.strokeColor,\n });\n\n Object.assign(container, {\n boundElements: (container.boundElements || []).concat({\n type: \"text\",\n id: textElement.id,\n }),\n });\n\n redrawTextBoundingBox(textElement, container, elementsMap);\n return [container, textElement] as const;\n};\n\nconst bindLinearElementToElement = (\n linearElement: ExcalidrawArrowElement,\n start: ValidLinearElement[\"start\"],\n end: ValidLinearElement[\"end\"],\n elementStore: ElementStore,\n elementsMap: NonDeletedSceneElementsMap,\n): {\n linearElement: ExcalidrawLinearElement;\n startBoundElement?: ExcalidrawElement;\n endBoundElement?: ExcalidrawElement;\n} => {\n let startBoundElement;\n let endBoundElement;\n\n Object.assign(linearElement, {\n startBinding: linearElement?.startBinding || null,\n endBinding: linearElement.endBinding || null,\n });\n\n if (start) {\n const width = start?.width ?? DEFAULT_DIMENSION;\n const height = start?.height ?? DEFAULT_DIMENSION;\n\n let existingElement;\n if (start.id) {\n existingElement = elementStore.getElement(start.id);\n if (!existingElement) {\n console.error(`No element for start binding with id ${start.id} found`);\n }\n }\n\n const startX = start.x || linearElement.x - width;\n const startY = start.y || linearElement.y - height / 2;\n const startType = existingElement ? existingElement.type : start.type;\n\n if (startType) {\n if (startType === \"text\") {\n let text = \"\";\n if (existingElement && existingElement.type === \"text\") {\n text = existingElement.text;\n } else if (start.type === \"text\") {\n text = start.text;\n }\n if (!text) {\n console.error(\n `No text found for start binding text element for ${linearElement.id}`,\n );\n }\n startBoundElement = newTextElement({\n x: startX,\n y: startY,\n type: \"text\",\n ...existingElement,\n ...start,\n text,\n });\n // to position the text correctly when coordinates not provided\n Object.assign(startBoundElement, {\n x: start.x || linearElement.x - startBoundElement.width,\n y: start.y || linearElement.y - startBoundElement.height / 2,\n });\n } else {\n switch (startType) {\n case \"rectangle\":\n case \"ellipse\":\n case \"diamond\": {\n startBoundElement = newElement({\n x: startX,\n y: startY,\n width,\n height,\n ...existingElement,\n ...start,\n type: startType,\n });\n break;\n }\n default: {\n assertNever(\n linearElement as never,\n `Unhandled element start type \"${start.type}\"`,\n true,\n );\n }\n }\n }\n\n bindLinearElement(\n linearElement,\n startBoundElement as ExcalidrawBindableElement,\n \"start\",\n elementsMap,\n );\n }\n }\n if (end) {\n const height = end?.height ?? DEFAULT_DIMENSION;\n const width = end?.width ?? DEFAULT_DIMENSION;\n\n let existingElement;\n if (end.id) {\n existingElement = elementStore.getElement(end.id);\n if (!existingElement) {\n console.error(`No element for end binding with id ${end.id} found`);\n }\n }\n const endX = end.x || linearElement.x + linearElement.width;\n const endY = end.y || linearElement.y - height / 2;\n const endType = existingElement ? existingElement.type : end.type;\n\n if (endType) {\n if (endType === \"text\") {\n let text = \"\";\n if (existingElement && existingElement.type === \"text\") {\n text = existingElement.text;\n } else if (end.type === \"text\") {\n text = end.text;\n }\n\n if (!text) {\n console.error(\n `No text found for end binding text element for ${linearElement.id}`,\n );\n }\n endBoundElement = newTextElement({\n x: endX,\n y: endY,\n type: \"text\",\n ...existingElement,\n ...end,\n text,\n });\n // to position the text correctly when coordinates not provided\n Object.assign(endBoundElement, {\n y: end.y || linearElement.y - endBoundElement.height / 2,\n });\n } else {\n switch (endType) {\n case \"rectangle\":\n case \"ellipse\":\n case \"diamond\": {\n endBoundElement = newElement({\n x: endX,\n y: endY,\n width,\n height,\n ...existingElement,\n ...end,\n type: endType,\n });\n break;\n }\n default: {\n assertNever(\n linearElement as never,\n `Unhandled element end type \"${endType}\"`,\n true,\n );\n }\n }\n }\n\n bindLinearElement(\n linearElement,\n endBoundElement as ExcalidrawBindableElement,\n \"end\",\n elementsMap,\n );\n }\n }\n\n // Update start/end points by 0.5 so bindings don't overlap with start/end bound element coordinates.\n const endPointIndex = linearElement.points.length - 1;\n const delta = 0.5;\n\n const newPoints = cloneJSON(linearElement.points) as [number, number][];\n // left to right so shift the arrow towards right\n if (\n linearElement.points[endPointIndex][0] >\n linearElement.points[endPointIndex - 1][0]\n ) {\n newPoints[0][0] = delta;\n newPoints[endPointIndex][0] -= delta;\n }\n\n // right to left so shift the arrow towards left\n if (\n linearElement.points[endPointIndex][0] <\n linearElement.points[endPointIndex - 1][0]\n ) {\n newPoints[0][0] = -delta;\n newPoints[endPointIndex][0] += delta;\n }\n // top to bottom so shift the arrow towards top\n if (\n linearElement.points[endPointIndex][1] >\n linearElement.points[endPointIndex - 1][1]\n ) {\n newPoints[0][1] = delta;\n newPoints[endPointIndex][1] -= delta;\n }\n\n // bottom to top so shift the arrow towards bottom\n if (\n linearElement.points[endPointIndex][1] <\n linearElement.points[endPointIndex - 1][1]\n ) {\n newPoints[0][1] = -delta;\n newPoints[endPointIndex][1] += delta;\n }\n\n Object.assign(linearElement, { points: newPoints });\n\n return {\n linearElement,\n startBoundElement,\n endBoundElement,\n };\n};\n\nclass ElementStore {\n excalidrawElements = new Map();\n\n add = (ele?: ExcalidrawElement) => {\n if (!ele) {\n return;\n }\n\n this.excalidrawElements.set(ele.id, ele);\n };\n getElements = () => {\n return Array.from(this.excalidrawElements.values());\n };\n\n getElementsMap = () => {\n return toBrandedType(this.excalidrawElements);\n };\n\n getElement = (id: string) => {\n return this.excalidrawElements.get(id);\n };\n}\n\nexport const convertToExcalidrawElements = (\n elementsSkeleton: ExcalidrawElementSkeleton[] | null,\n opts?: { regenerateIds: boolean },\n) => {\n if (!elementsSkeleton) {\n return [];\n }\n const elements = cloneJSON(elementsSkeleton);\n const elementStore = new ElementStore();\n const elementsWithIds = new Map();\n const oldToNewElementIdMap = new Map();\n\n // Create individual elements\n for (const element of elements) {\n let excalidrawElement: ExcalidrawElement;\n const originalId = element.id;\n if (opts?.regenerateIds !== false) {\n Object.assign(element, { id: randomId() });\n }\n\n switch (element.type) {\n case \"rectangle\":\n case \"ellipse\":\n case \"diamond\": {\n const width =\n element?.label?.text && element.width === undefined\n ? 0\n : element?.width || DEFAULT_DIMENSION;\n const height =\n element?.label?.text && element.height === undefined\n ? 0\n : element?.height || DEFAULT_DIMENSION;\n excalidrawElement = newElement({\n ...element,\n width,\n height,\n });\n\n break;\n }\n case \"line\": {\n const width = element.width || DEFAULT_LINEAR_ELEMENT_PROPS.width;\n const height = element.height || DEFAULT_LINEAR_ELEMENT_PROPS.height;\n excalidrawElement = newLinearElement({\n width,\n height,\n points: [\n [0, 0],\n [width, height],\n ],\n ...element,\n });\n\n break;\n }\n case \"arrow\": {\n const width = element.width || DEFAULT_LINEAR_ELEMENT_PROPS.width;\n const height = element.height || DEFAULT_LINEAR_ELEMENT_PROPS.height;\n excalidrawElement = newLinearElement({\n width,\n height,\n endArrowhead: \"arrow\",\n points: [\n [0, 0],\n [width, height],\n ],\n ...element,\n });\n\n Object.assign(\n excalidrawElement,\n getSizeFromPoints(excalidrawElement.points),\n );\n break;\n }\n case \"text\": {\n const fontFamily = element?.fontFamily || DEFAULT_FONT_FAMILY;\n const fontSize = element?.fontSize || DEFAULT_FONT_SIZE;\n const lineHeight =\n element?.lineHeight || getDefaultLineHeight(fontFamily);\n const text = element.text ?? \"\";\n const normalizedText = normalizeText(text);\n const metrics = measureText(\n normalizedText,\n getFontString({ fontFamily, fontSize }),\n lineHeight,\n );\n\n excalidrawElement = newTextElement({\n width: metrics.width,\n height: metrics.height,\n fontFamily,\n fontSize,\n ...element,\n });\n break;\n }\n case \"image\": {\n excalidrawElement = newImageElement({\n width: element?.width || DEFAULT_DIMENSION,\n height: element?.height || DEFAULT_DIMENSION,\n ...element,\n });\n\n break;\n }\n case \"frame\": {\n excalidrawElement = newFrameElement({\n x: 0,\n y: 0,\n ...element,\n });\n break;\n }\n case \"magicframe\": {\n excalidrawElement = newMagicFrameElement({\n x: 0,\n y: 0,\n ...element,\n });\n break;\n }\n case \"freedraw\":\n case \"iframe\":\n case \"embeddable\": {\n excalidrawElement = element;\n break;\n }\n\n default: {\n excalidrawElement = element;\n assertNever(\n element,\n `Unhandled element type \"${(element as any).type}\"`,\n true,\n );\n }\n }\n const existingElement = elementStore.getElement(excalidrawElement.id);\n if (existingElement) {\n console.error(`Duplicate id found for ${excalidrawElement.id}`);\n } else {\n elementStore.add(excalidrawElement);\n elementsWithIds.set(excalidrawElement.id, element);\n if (originalId) {\n oldToNewElementIdMap.set(originalId, excalidrawElement.id);\n }\n }\n }\n\n const elementsMap = elementStore.getElementsMap();\n // Add labels and arrow bindings\n for (const [id, element] of elementsWithIds) {\n const excalidrawElement = elementStore.getElement(id)!;\n\n switch (element.type) {\n case \"rectangle\":\n case \"ellipse\":\n case \"diamond\":\n case \"arrow\": {\n if (element.label?.text) {\n let [container, text] = bindTextToContainer(\n excalidrawElement,\n element?.label,\n elementsMap,\n );\n elementStore.add(container);\n elementStore.add(text);\n\n if (container.type === \"arrow\") {\n const originalStart =\n element.type === \"arrow\" ? element?.start : undefined;\n const originalEnd =\n element.type === \"arrow\" ? element?.end : undefined;\n if (originalStart && originalStart.id) {\n const newStartId = oldToNewElementIdMap.get(originalStart.id);\n if (newStartId) {\n Object.assign(originalStart, { id: newStartId });\n }\n }\n if (originalEnd && originalEnd.id) {\n const newEndId = oldToNewElementIdMap.get(originalEnd.id);\n if (newEndId) {\n Object.assign(originalEnd, { id: newEndId });\n }\n }\n const { linearElement, startBoundElement, endBoundElement } =\n bindLinearElementToElement(\n container as ExcalidrawArrowElement,\n originalStart,\n originalEnd,\n elementStore,\n elementsMap,\n );\n container = linearElement;\n elementStore.add(linearElement);\n elementStore.add(startBoundElement);\n elementStore.add(endBoundElement);\n }\n } else {\n switch (element.type) {\n case \"arrow\": {\n const { start, end } = element;\n if (start && start.id) {\n const newStartId = oldToNewElementIdMap.get(start.id);\n Object.assign(start, { id: newStartId });\n }\n if (end && end.id) {\n const newEndId = oldToNewElementIdMap.get(end.id);\n Object.assign(end, { id: newEndId });\n }\n const { linearElement, startBoundElement, endBoundElement } =\n bindLinearElementToElement(\n excalidrawElement as ExcalidrawArrowElement,\n start,\n end,\n elementStore,\n elementsMap,\n );\n\n elementStore.add(linearElement);\n elementStore.add(startBoundElement);\n elementStore.add(endBoundElement);\n break;\n }\n }\n }\n break;\n }\n }\n }\n\n // Once all the excalidraw elements are created, we can add frames since we\n // need to calculate coordinates and dimensions of frame which is possibe after all\n // frame children are processed.\n for (const [id, element] of elementsWithIds) {\n if (element.type !== \"frame\" && element.type !== \"magicframe\") {\n continue;\n }\n const frame = elementStore.getElement(id);\n\n if (!frame) {\n throw new Error(`Excalidraw element with id ${id} doesn't exist`);\n }\n const childrenElements: ExcalidrawElement[] = [];\n\n element.children.forEach((id) => {\n const newElementId = oldToNewElementIdMap.get(id);\n if (!newElementId) {\n throw new Error(`Element with ${id} wasn't mapped correctly`);\n }\n\n const elementInFrame = elementStore.getElement(newElementId);\n if (!elementInFrame) {\n throw new Error(`Frame element with id ${newElementId} doesn't exist`);\n }\n Object.assign(elementInFrame, { frameId: frame.id });\n\n elementInFrame?.boundElements?.forEach((boundElement) => {\n const ele = elementStore.getElement(boundElement.id);\n if (!ele) {\n throw new Error(\n `Bound element with id ${boundElement.id} doesn't exist`,\n );\n }\n Object.assign(ele, { frameId: frame.id });\n childrenElements.push(ele);\n });\n\n childrenElements.push(elementInFrame);\n });\n\n let [minX, minY, maxX, maxY] = getCommonBounds(childrenElements);\n\n const PADDING = 10;\n minX = minX - PADDING;\n minY = minY - PADDING;\n maxX = maxX + PADDING;\n maxY = maxY + PADDING;\n\n // Take the max of calculated and provided frame dimensions, whichever is higher\n const width = Math.max(frame?.width, maxX - minX);\n const height = Math.max(frame?.height, maxY - minY);\n Object.assign(frame, { x: minX, y: minY, width, height });\n }\n\n return elementStore.getElements();\n};\n","import React, { useEffect } from \"react\";\nimport { InitializeApp } from \"./components/InitializeApp\";\nimport App from \"./components/App\";\nimport { isShallowEqual } from \"./utils\";\n\nimport \"./css/app.scss\";\nimport \"./css/styles.scss\";\nimport \"../../public/fonts/fonts.css\";\nimport polyfill from \"./polyfill\";\n\nimport { AppProps, ExcalidrawProps } from \"./types\";\nimport { defaultLang } from \"./i18n\";\nimport { DEFAULT_UI_OPTIONS } from \"./constants\";\nimport { Provider } from \"jotai\";\nimport { jotaiScope, jotaiStore } from \"./jotai\";\nimport Footer from \"./components/footer/FooterCenter\";\nimport MainMenu from \"./components/main-menu/MainMenu\";\nimport WelcomeScreen from \"./components/welcome-screen/WelcomeScreen\";\nimport LiveCollaborationTrigger from \"./components/live-collaboration/LiveCollaborationTrigger\";\n\npolyfill();\n\nconst ExcalidrawBase = (props: ExcalidrawProps) => {\n const {\n onChange,\n initialData,\n excalidrawAPI,\n isCollaborating = false,\n onPointerUpdate,\n renderTopRightUI,\n langCode = defaultLang.code,\n viewModeEnabled,\n zenModeEnabled,\n gridModeEnabled,\n libraryReturnUrl,\n theme,\n name,\n renderCustomStats,\n onPaste,\n detectScroll = true,\n handleKeyboardGlobally = false,\n onLibraryChange,\n autoFocus = false,\n generateIdForFile,\n onLinkOpen,\n onPointerDown,\n onPointerUp,\n onScrollChange,\n children,\n validateEmbeddable,\n renderEmbeddable,\n aiEnabled,\n } = props;\n\n const canvasActions = props.UIOptions?.canvasActions;\n\n // FIXME normalize/set defaults in parent component so that the memo resolver\n // compares the same values\n const UIOptions: AppProps[\"UIOptions\"] = {\n ...props.UIOptions,\n canvasActions: {\n ...DEFAULT_UI_OPTIONS.canvasActions,\n ...canvasActions,\n },\n tools: {\n image: props.UIOptions?.tools?.image ?? true,\n },\n };\n\n if (canvasActions?.export) {\n UIOptions.canvasActions.export.saveFileToDisk =\n canvasActions.export?.saveFileToDisk ??\n DEFAULT_UI_OPTIONS.canvasActions.export.saveFileToDisk;\n }\n\n if (\n UIOptions.canvasActions.toggleTheme === null &&\n typeof theme === \"undefined\"\n ) {\n UIOptions.canvasActions.toggleTheme = true;\n }\n\n useEffect(() => {\n const importPolyfill = async () => {\n //@ts-ignore\n await import(\"canvas-roundrect-polyfill\");\n };\n\n importPolyfill();\n\n // Block pinch-zooming on iOS outside of the content area\n const handleTouchMove = (event: TouchEvent) => {\n // @ts-ignore\n if (typeof event.scale === \"number\" && event.scale !== 1) {\n event.preventDefault();\n }\n };\n\n document.addEventListener(\"touchmove\", handleTouchMove, {\n passive: false,\n });\n\n return () => {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n };\n }, []);\n\n return (\n jotaiStore} scope={jotaiScope}>\n \n \n {children}\n \n \n \n );\n};\n\nconst areEqual = (prevProps: ExcalidrawProps, nextProps: ExcalidrawProps) => {\n // short-circuit early\n if (prevProps.children !== nextProps.children) {\n return false;\n }\n\n const {\n initialData: prevInitialData,\n UIOptions: prevUIOptions = {},\n ...prev\n } = prevProps;\n const {\n initialData: nextInitialData,\n UIOptions: nextUIOptions = {},\n ...next\n } = nextProps;\n\n // comparing UIOptions\n const prevUIOptionsKeys = Object.keys(prevUIOptions) as (keyof Partial<\n typeof DEFAULT_UI_OPTIONS\n >)[];\n const nextUIOptionsKeys = Object.keys(nextUIOptions) as (keyof Partial<\n typeof DEFAULT_UI_OPTIONS\n >)[];\n\n if (prevUIOptionsKeys.length !== nextUIOptionsKeys.length) {\n return false;\n }\n\n const isUIOptionsSame = prevUIOptionsKeys.every((key) => {\n if (key === \"canvasActions\") {\n const canvasOptionKeys = Object.keys(\n prevUIOptions.canvasActions!,\n ) as (keyof Partial)[];\n return canvasOptionKeys.every((key) => {\n if (\n key === \"export\" &&\n prevUIOptions?.canvasActions?.export &&\n nextUIOptions?.canvasActions?.export\n ) {\n return (\n prevUIOptions.canvasActions.export.saveFileToDisk ===\n nextUIOptions.canvasActions.export.saveFileToDisk\n );\n }\n return (\n prevUIOptions?.canvasActions?.[key] ===\n nextUIOptions?.canvasActions?.[key]\n );\n });\n }\n return prevUIOptions[key] === nextUIOptions[key];\n });\n\n return isUIOptionsSame && isShallowEqual(prev, next);\n};\n\nexport const Excalidraw = React.memo(ExcalidrawBase, areEqual);\nExcalidraw.displayName = \"Excalidraw\";\n\nexport {\n getSceneVersion,\n hashElementsVersion,\n hashString,\n isInvisiblySmallElement,\n getNonDeletedElements,\n} from \"./element\";\nexport { defaultLang, useI18n, languages } from \"./i18n\";\nexport {\n restore,\n restoreAppState,\n restoreElements,\n restoreLibraryItems,\n} from \"./data/restore\";\n\nexport {\n exportToCanvas,\n exportToBlob,\n exportToSvg,\n exportToClipboard,\n} from \"../utils/export\";\n\nexport { serializeAsJSON, serializeLibraryAsJSON } from \"./data/json\";\nexport {\n loadFromBlob,\n loadSceneOrLibraryFromBlob,\n loadLibraryFromBlob,\n} from \"./data/blob\";\nexport { getFreeDrawSvgPath } from \"./renderer/renderElement\";\nexport { mergeLibraryItems, getLibraryItemsHash } from \"./data/library\";\nexport { isLinearElement } from \"./element/typeChecks\";\n\nexport {\n FONT_FAMILY,\n THEME,\n MIME_TYPES,\n ROUNDNESS,\n DEFAULT_LASER_COLOR,\n} from \"./constants\";\n\nexport {\n mutateElement,\n newElementWith,\n bumpVersion,\n} from \"./element/mutateElement\";\n\nexport { parseLibraryTokensFromUrl, useHandleLibrary } from \"./data/library\";\n\nexport {\n sceneCoordsToViewportCoords,\n viewportCoordsToSceneCoords,\n} from \"./utils\";\n\nexport { Sidebar } from \"./components/Sidebar/Sidebar\";\nexport { Button } from \"./components/Button\";\nexport { Footer };\nexport { MainMenu };\nexport { useDevice } from \"./components/App\";\nexport { WelcomeScreen };\nexport { LiveCollaborationTrigger };\n\nexport { DefaultSidebar } from \"./components/DefaultSidebar\";\nexport { TTDDialog } from \"./components/TTDDialog/TTDDialog\";\nexport { TTDDialogTrigger } from \"./components/TTDDialog/TTDDialogTrigger\";\n\nexport { normalizeLink } from \"./data/url\";\nexport { zoomToFitBounds } from \"./actions/actionCanvas\";\nexport { convertToExcalidrawElements } from \"./data/transform\";\nexport { getCommonBounds, getVisibleSceneBounds } from \"./element/bounds\";\n\nexport {\n elementsOverlappingBBox,\n isElementInsideBBox,\n elementPartiallyOverlapsWithOrContainsBBox,\n} from \"../utils/withinBounds\";\n","import { MermaidOptions } from \"@excalidraw/mermaid-to-excalidraw\";\nimport { MermaidToExcalidrawResult } from \"@excalidraw/mermaid-to-excalidraw/dist/interfaces\";\nimport {\n DEFAULT_EXPORT_PADDING,\n DEFAULT_FONT_SIZE,\n EDITOR_LS_KEYS,\n} from \"../../constants\";\nimport { convertToExcalidrawElements, exportToCanvas } from \"../../index\";\nimport { NonDeletedExcalidrawElement } from \"../../element/types\";\nimport { AppClassProperties, BinaryFiles } from \"../../types\";\nimport { canvasToBlob } from \"../../data/blob\";\nimport { EditorLocalStorage } from \"../../data/EditorLocalStorage\";\nimport { t } from \"../../i18n\";\n\nconst resetPreview = ({\n canvasRef,\n setError,\n}: {\n canvasRef: React.RefObject;\n setError: (error: Error | null) => void;\n}) => {\n const canvasNode = canvasRef.current;\n\n if (!canvasNode) {\n return;\n }\n const parent = canvasNode.parentElement;\n if (!parent) {\n return;\n }\n parent.style.background = \"\";\n setError(null);\n canvasNode.replaceChildren();\n};\n\nexport interface MermaidToExcalidrawLibProps {\n loaded: boolean;\n api: Promise<{\n parseMermaidToExcalidraw: (\n definition: string,\n options: MermaidOptions,\n ) => Promise;\n }>;\n}\n\ninterface ConvertMermaidToExcalidrawFormatProps {\n canvasRef: React.RefObject;\n mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;\n mermaidDefinition: string;\n setError: (error: Error | null) => void;\n data: React.MutableRefObject<{\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | null;\n }>;\n}\n\nexport const convertMermaidToExcalidraw = async ({\n canvasRef,\n mermaidToExcalidrawLib,\n mermaidDefinition,\n setError,\n data,\n}: ConvertMermaidToExcalidrawFormatProps) => {\n const canvasNode = canvasRef.current;\n const parent = canvasNode?.parentElement;\n\n if (!canvasNode || !parent) {\n return;\n }\n\n if (!mermaidDefinition) {\n resetPreview({ canvasRef, setError });\n return;\n }\n\n try {\n const api = await mermaidToExcalidrawLib.api;\n\n let ret;\n try {\n ret = await api.parseMermaidToExcalidraw(mermaidDefinition, {\n fontSize: DEFAULT_FONT_SIZE,\n });\n } catch (err: any) {\n ret = await api.parseMermaidToExcalidraw(\n mermaidDefinition.replace(/\"/g, \"'\"),\n {\n fontSize: DEFAULT_FONT_SIZE,\n },\n );\n }\n const { elements, files } = ret;\n setError(null);\n\n data.current = {\n elements: convertToExcalidrawElements(elements, {\n regenerateIds: true,\n }),\n files,\n };\n\n const canvas = await exportToCanvas({\n elements: data.current.elements,\n files: data.current.files,\n exportPadding: DEFAULT_EXPORT_PADDING,\n maxWidthOrHeight:\n Math.max(parent.offsetWidth, parent.offsetHeight) *\n window.devicePixelRatio,\n });\n // if converting to blob fails, there's some problem that will\n // likely prevent preview and export (e.g. canvas too big)\n try {\n await canvasToBlob(canvas);\n } catch (e: any) {\n if (e.name === \"CANVAS_POSSIBLY_TOO_BIG\") {\n throw new Error(t(\"canvasError.canvasTooBig\"));\n }\n throw e;\n }\n parent.style.background = \"var(--default-bg-color)\";\n canvasNode.replaceChildren(canvas);\n } catch (err: any) {\n parent.style.background = \"var(--default-bg-color)\";\n if (mermaidDefinition) {\n setError(err);\n }\n\n throw err;\n }\n};\n\nexport const saveMermaidDataToStorage = (mermaidDefinition: string) => {\n EditorLocalStorage.set(\n EDITOR_LS_KEYS.MERMAID_TO_EXCALIDRAW,\n mermaidDefinition,\n );\n};\n\nexport const insertToEditor = ({\n app,\n data,\n text,\n shouldSaveMermaidDataToStorage,\n}: {\n app: AppClassProperties;\n data: React.MutableRefObject<{\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | null;\n }>;\n text?: string;\n shouldSaveMermaidDataToStorage?: boolean;\n}) => {\n const { elements: newElements, files } = data.current;\n\n if (!newElements.length) {\n return;\n }\n\n app.addElementsFromPasteOrLibrary({\n elements: newElements,\n files,\n position: \"center\",\n fitToContent: true,\n });\n app.setOpenDialog(null);\n\n if (shouldSaveMermaidDataToStorage && text) {\n saveMermaidDataToStorage(text);\n }\n};\n","import { ReactNode } from \"react\";\n\nexport const TTDDialogPanels = ({ children }: { children: ReactNode }) => {\n return
    {children}
    ;\n};\n","import { ReactNode } from \"react\";\nimport { Button } from \"../Button\";\nimport clsx from \"clsx\";\nimport Spinner from \"../Spinner\";\n\ninterface TTDDialogPanelProps {\n label: string;\n children: ReactNode;\n panelAction?: {\n label: string;\n action: () => void;\n icon?: ReactNode;\n };\n panelActionDisabled?: boolean;\n onTextSubmitInProgess?: boolean;\n renderTopRight?: () => ReactNode;\n renderSubmitShortcut?: () => ReactNode;\n renderBottomRight?: () => ReactNode;\n}\n\nexport const TTDDialogPanel = ({\n label,\n children,\n panelAction,\n panelActionDisabled = false,\n onTextSubmitInProgess,\n renderTopRight,\n renderSubmitShortcut,\n renderBottomRight,\n}: TTDDialogPanelProps) => {\n return (\n
    \n
    \n \n {renderTopRight?.()}\n
    \n\n {children}\n \n {}}\n disabled={panelActionDisabled || onTextSubmitInProgess}\n >\n
    \n {panelAction?.label}\n {panelAction?.icon && {panelAction.icon}}\n
    \n {onTextSubmitInProgess && }\n \n {!panelActionDisabled &&\n !onTextSubmitInProgess &&\n renderSubmitShortcut?.()}\n {renderBottomRight?.()}\n
    \n \n );\n};\n","import { ChangeEventHandler, useEffect, useRef } from \"react\";\nimport { EVENT } from \"../../constants\";\nimport { KEYS } from \"../../keys\";\n\ninterface TTDDialogInputProps {\n input: string;\n placeholder: string;\n onChange: ChangeEventHandler;\n onKeyboardSubmit?: () => void;\n}\n\nexport const TTDDialogInput = ({\n input,\n placeholder,\n onChange,\n onKeyboardSubmit,\n}: TTDDialogInputProps) => {\n const ref = useRef(null);\n\n const callbackRef = useRef(onKeyboardSubmit);\n callbackRef.current = onKeyboardSubmit;\n\n useEffect(() => {\n if (!callbackRef.current) {\n return;\n }\n const textarea = ref.current;\n if (textarea) {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event[KEYS.CTRL_OR_CMD] && event.key === KEYS.ENTER) {\n event.preventDefault();\n callbackRef.current?.();\n }\n };\n textarea.addEventListener(EVENT.KEYDOWN, handleKeyDown);\n return () => {\n textarea.removeEventListener(EVENT.KEYDOWN, handleKeyDown);\n };\n }\n }, []);\n\n return (\n \n );\n};\n","import Spinner from \"../Spinner\";\n\nconst ErrorComp = ({ error }: { error: string }) => {\n return (\n \n Error!

    {error}

    \n \n );\n};\n\ninterface TTDDialogOutputProps {\n error: Error | null;\n canvasRef: React.RefObject;\n loaded: boolean;\n}\n\nexport const TTDDialogOutput = ({\n error,\n canvasRef,\n loaded,\n}: TTDDialogOutputProps) => {\n return (\n
    \n {error && }\n {loaded ? (\n \n ) : (\n \n )}\n
    \n );\n};\n","import { getShortcutKey } from \"../../utils\";\n\nexport const TTDDialogSubmitShortcut = () => {\n return (\n
    \n
    \n {getShortcutKey(\"CtrlOrCmd\")}\n
    \n
    \n {getShortcutKey(\"Enter\")}\n
    \n
    \n );\n};\n","import { useState, useRef, useEffect, useDeferredValue } from \"react\";\nimport { BinaryFiles } from \"../../types\";\nimport { useApp } from \"../App\";\nimport { NonDeletedExcalidrawElement } from \"../../element/types\";\nimport { ArrowRightIcon } from \"../icons\";\nimport \"./MermaidToExcalidraw.scss\";\nimport { t } from \"../../i18n\";\nimport Trans from \"../Trans\";\nimport {\n MermaidToExcalidrawLibProps,\n convertMermaidToExcalidraw,\n insertToEditor,\n saveMermaidDataToStorage,\n} from \"./common\";\nimport { TTDDialogPanels } from \"./TTDDialogPanels\";\nimport { TTDDialogPanel } from \"./TTDDialogPanel\";\nimport { TTDDialogInput } from \"./TTDDialogInput\";\nimport { TTDDialogOutput } from \"./TTDDialogOutput\";\nimport { EditorLocalStorage } from \"../../data/EditorLocalStorage\";\nimport { EDITOR_LS_KEYS } from \"../../constants\";\nimport { debounce } from \"../../utils\";\nimport { TTDDialogSubmitShortcut } from \"./TTDDialogSubmitShortcut\";\n\nconst MERMAID_EXAMPLE =\n \"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[Car]\";\n\nconst debouncedSaveMermaidDefinition = debounce(saveMermaidDataToStorage, 300);\n\nconst MermaidToExcalidraw = ({\n mermaidToExcalidrawLib,\n}: {\n mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;\n}) => {\n const [text, setText] = useState(\n () =>\n EditorLocalStorage.get(EDITOR_LS_KEYS.MERMAID_TO_EXCALIDRAW) ||\n MERMAID_EXAMPLE,\n );\n const deferredText = useDeferredValue(text.trim());\n const [error, setError] = useState(null);\n\n const canvasRef = useRef(null);\n const data = useRef<{\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | null;\n }>({ elements: [], files: null });\n\n const app = useApp();\n\n useEffect(() => {\n convertMermaidToExcalidraw({\n canvasRef,\n data,\n mermaidToExcalidrawLib,\n setError,\n mermaidDefinition: deferredText,\n }).catch(() => {});\n\n debouncedSaveMermaidDefinition(deferredText);\n }, [deferredText, mermaidToExcalidrawLib]);\n\n useEffect(\n () => () => {\n debouncedSaveMermaidDefinition.flush();\n },\n [],\n );\n\n const onInsertToEditor = () => {\n insertToEditor({\n app,\n data,\n text,\n shouldSaveMermaidDataToStorage: true,\n });\n };\n\n return (\n <>\n
    \n (\n {el}\n )}\n sequenceLink={(el) => (\n \n {el}\n \n )}\n classLink={(el) => (\n {el}\n )}\n />\n
    \n \n \n setText(event.target.value)}\n onKeyboardSubmit={() => {\n onInsertToEditor();\n }}\n />\n \n {\n onInsertToEditor();\n },\n label: t(\"mermaid.button\"),\n icon: ArrowRightIcon,\n }}\n renderSubmitShortcut={() => }\n >\n \n \n \n \n );\n};\nexport default MermaidToExcalidraw;\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\n\nexport const TTDDialogTabTriggers = ({\n children,\n ...rest\n}: { children: React.ReactNode } & React.HTMLAttributes) => {\n return (\n \n {children}\n \n );\n};\nTTDDialogTabTriggers.displayName = \"TTDDialogTabTriggers\";\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\n\nexport const TTDDialogTabTrigger = ({\n children,\n tab,\n onSelect,\n ...rest\n}: {\n children: React.ReactNode;\n tab: string;\n onSelect?: React.ReactEventHandler | undefined;\n} & Omit, \"onSelect\">) => {\n return (\n \n \n \n );\n};\nTTDDialogTabTrigger.displayName = \"TTDDialogTabTrigger\";\n","import { Dialog } from \"../Dialog\";\nimport { useApp, useExcalidrawSetAppState } from \"../App\";\nimport MermaidToExcalidraw from \"./MermaidToExcalidraw\";\nimport TTDDialogTabs from \"./TTDDialogTabs\";\nimport { ChangeEventHandler, useEffect, useRef, useState } from \"react\";\nimport { useUIAppState } from \"../../context/ui-appState\";\nimport { withInternalFallback } from \"../hoc/withInternalFallback\";\nimport { TTDDialogTabTriggers } from \"./TTDDialogTabTriggers\";\nimport { TTDDialogTabTrigger } from \"./TTDDialogTabTrigger\";\nimport { TTDDialogTab } from \"./TTDDialogTab\";\nimport { t } from \"../../i18n\";\nimport { TTDDialogInput } from \"./TTDDialogInput\";\nimport { TTDDialogOutput } from \"./TTDDialogOutput\";\nimport { TTDDialogPanel } from \"./TTDDialogPanel\";\nimport { TTDDialogPanels } from \"./TTDDialogPanels\";\nimport {\n MermaidToExcalidrawLibProps,\n convertMermaidToExcalidraw,\n insertToEditor,\n saveMermaidDataToStorage,\n} from \"./common\";\nimport { NonDeletedExcalidrawElement } from \"../../element/types\";\nimport { BinaryFiles } from \"../../types\";\nimport { ArrowRightIcon } from \"../icons\";\n\nimport \"./TTDDialog.scss\";\nimport { isFiniteNumber } from \"../../utils\";\nimport { atom, useAtom } from \"jotai\";\nimport { trackEvent } from \"../../analytics\";\nimport { InlineIcon } from \"../InlineIcon\";\nimport { TTDDialogSubmitShortcut } from \"./TTDDialogSubmitShortcut\";\n\nconst MIN_PROMPT_LENGTH = 3;\nconst MAX_PROMPT_LENGTH = 1000;\n\nconst rateLimitsAtom = atom<{\n rateLimit: number;\n rateLimitRemaining: number;\n} | null>(null);\n\nconst ttdGenerationAtom = atom<{\n generatedResponse: string | null;\n prompt: string | null;\n} | null>(null);\n\ntype OnTestSubmitRetValue = {\n rateLimit?: number | null;\n rateLimitRemaining?: number | null;\n} & (\n | { generatedResponse: string | undefined; error?: null | undefined }\n | {\n error: Error;\n generatedResponse?: null | undefined;\n }\n);\n\nexport const TTDDialog = (\n props:\n | {\n onTextSubmit(value: string): Promise;\n }\n | { __fallback: true },\n) => {\n const appState = useUIAppState();\n\n if (appState.openDialog?.name !== \"ttd\") {\n return null;\n }\n\n return ;\n};\n\n/**\n * Text to diagram (TTD) dialog\n */\nexport const TTDDialogBase = withInternalFallback(\n \"TTDDialogBase\",\n ({\n tab,\n ...rest\n }: {\n tab: \"text-to-diagram\" | \"mermaid\";\n } & (\n | {\n onTextSubmit(value: string): Promise;\n }\n | { __fallback: true }\n )) => {\n const app = useApp();\n const setAppState = useExcalidrawSetAppState();\n\n const someRandomDivRef = useRef(null);\n\n const [ttdGeneration, setTtdGeneration] = useAtom(ttdGenerationAtom);\n\n const [text, setText] = useState(ttdGeneration?.prompt ?? \"\");\n\n const prompt = text.trim();\n\n const handleTextChange: ChangeEventHandler = (\n event,\n ) => {\n setText(event.target.value);\n setTtdGeneration((s) => ({\n generatedResponse: s?.generatedResponse ?? null,\n prompt: event.target.value,\n }));\n };\n\n const [onTextSubmitInProgess, setOnTextSubmitInProgess] = useState(false);\n const [rateLimits, setRateLimits] = useAtom(rateLimitsAtom);\n\n const onGenerate = async () => {\n if (\n prompt.length > MAX_PROMPT_LENGTH ||\n prompt.length < MIN_PROMPT_LENGTH ||\n onTextSubmitInProgess ||\n rateLimits?.rateLimitRemaining === 0 ||\n // means this is not a text-to-diagram dialog (needed for TS only)\n \"__fallback\" in rest\n ) {\n if (prompt.length < MIN_PROMPT_LENGTH) {\n setError(\n new Error(\n `Prompt is too short (min ${MIN_PROMPT_LENGTH} characters)`,\n ),\n );\n }\n if (prompt.length > MAX_PROMPT_LENGTH) {\n setError(\n new Error(\n `Prompt is too long (max ${MAX_PROMPT_LENGTH} characters)`,\n ),\n );\n }\n\n return;\n }\n\n try {\n setOnTextSubmitInProgess(true);\n\n trackEvent(\"ai\", \"generate\", \"ttd\");\n\n const { generatedResponse, error, rateLimit, rateLimitRemaining } =\n await rest.onTextSubmit(prompt);\n\n if (typeof generatedResponse === \"string\") {\n setTtdGeneration((s) => ({\n generatedResponse,\n prompt: s?.prompt ?? null,\n }));\n }\n\n if (isFiniteNumber(rateLimit) && isFiniteNumber(rateLimitRemaining)) {\n setRateLimits({ rateLimit, rateLimitRemaining });\n }\n\n if (error) {\n setError(error);\n return;\n }\n if (!generatedResponse) {\n setError(new Error(\"Generation failed\"));\n return;\n }\n\n try {\n await convertMermaidToExcalidraw({\n canvasRef: someRandomDivRef,\n data,\n mermaidToExcalidrawLib,\n setError,\n mermaidDefinition: generatedResponse,\n });\n trackEvent(\"ai\", \"mermaid parse success\", \"ttd\");\n } catch (error: any) {\n console.info(\n `%cTTD mermaid render errror: ${error.message}`,\n \"color: red\",\n );\n console.info(\n `>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\nTTD mermaid definition render errror: ${error.message}`,\n \"color: yellow\",\n );\n trackEvent(\"ai\", \"mermaid parse failed\", \"ttd\");\n setError(\n new Error(\n \"Generated an invalid diagram :(. You may also try a different prompt.\",\n ),\n );\n }\n } catch (error: any) {\n let message: string | undefined = error.message;\n if (!message || message === \"Failed to fetch\") {\n message = \"Request failed\";\n }\n setError(new Error(message));\n } finally {\n setOnTextSubmitInProgess(false);\n }\n };\n\n const refOnGenerate = useRef(onGenerate);\n refOnGenerate.current = onGenerate;\n\n const [mermaidToExcalidrawLib, setMermaidToExcalidrawLib] =\n useState({\n loaded: false,\n api: import(\"@excalidraw/mermaid-to-excalidraw\"),\n });\n\n useEffect(() => {\n const fn = async () => {\n await mermaidToExcalidrawLib.api;\n setMermaidToExcalidrawLib((prev) => ({ ...prev, loaded: true }));\n };\n fn();\n }, [mermaidToExcalidrawLib.api]);\n\n const data = useRef<{\n elements: readonly NonDeletedExcalidrawElement[];\n files: BinaryFiles | null;\n }>({ elements: [], files: null });\n\n const [error, setError] = useState(null);\n\n return (\n {\n app.setOpenDialog(null);\n }}\n size={1200}\n title={false}\n {...rest}\n autofocus={false}\n >\n \n {\"__fallback\" in rest && rest.__fallback ? (\n

    {t(\"mermaid.title\")}

    \n ) : (\n \n \n
    \n {t(\"labels.textToDiagram\")}\n \n AI Beta\n
    \n \n
    \n Mermaid\n
    \n )}\n\n \n \n \n {!(\"__fallback\" in rest) && (\n \n
    \n Currently we use Mermaid as a middle step, so you'll get best\n results if you describe a diagram, workflow, flow chart, and\n similar.\n
    \n \n MAX_PROMPT_LENGTH ||\n rateLimits?.rateLimitRemaining === 0\n }\n renderTopRight={() => {\n if (!rateLimits) {\n return null;\n }\n\n return (\n \n {rateLimits.rateLimitRemaining} requests left today\n \n );\n }}\n renderSubmitShortcut={() => }\n renderBottomRight={() => {\n if (typeof ttdGeneration?.generatedResponse === \"string\") {\n return (\n {\n if (\n typeof ttdGeneration?.generatedResponse ===\n \"string\"\n ) {\n saveMermaidDataToStorage(\n ttdGeneration.generatedResponse,\n );\n setAppState({\n openDialog: { name: \"ttd\", tab: \"mermaid\" },\n });\n }\n }}\n >\n View as Mermaid\n \n \n );\n }\n const ratio = prompt.length / MAX_PROMPT_LENGTH;\n if (ratio > 0.8) {\n return (\n 1 ? \"var(--color-danger)\" : undefined,\n }}\n >\n Length: {prompt.length}/{MAX_PROMPT_LENGTH}\n \n );\n }\n\n return null;\n }}\n >\n {\n refOnGenerate.current();\n }}\n />\n \n {\n console.info(\"Panel action clicked\");\n insertToEditor({ app, data });\n },\n label: \"Insert\",\n icon: ArrowRightIcon,\n }}\n >\n \n \n \n
    \n )}\n
    \n \n );\n },\n);\n","import clsx from \"clsx\";\nimport React from \"react\";\nimport { ActionManager } from \"../actions/manager\";\nimport {\n CLASSES,\n DEFAULT_SIDEBAR,\n LIBRARY_SIDEBAR_WIDTH,\n TOOL_TYPE,\n} from \"../constants\";\nimport { showSelectedShapeActions } from \"../element\";\nimport { NonDeletedExcalidrawElement } from \"../element/types\";\nimport { Language, t } from \"../i18n\";\nimport { calculateScrollCenter } from \"../scene\";\nimport {\n AppProps,\n AppState,\n ExcalidrawProps,\n BinaryFiles,\n UIAppState,\n AppClassProperties,\n} from \"../types\";\nimport { capitalizeString, isShallowEqual } from \"../utils\";\nimport { SelectedShapeActions, ShapesSwitcher } from \"./Actions\";\nimport { ErrorDialog } from \"./ErrorDialog\";\nimport { ImageExportDialog } from \"./ImageExportDialog\";\nimport { FixedSideContainer } from \"./FixedSideContainer\";\nimport { HintViewer } from \"./HintViewer\";\nimport { Island } from \"./Island\";\nimport { LoadingMessage } from \"./LoadingMessage\";\nimport { LockButton } from \"./LockButton\";\nimport { MobileMenu } from \"./MobileMenu\";\nimport { PasteChartDialog } from \"./PasteChartDialog\";\nimport { Section } from \"./Section\";\nimport { HelpDialog } from \"./HelpDialog\";\nimport Stack from \"./Stack\";\nimport { UserList } from \"./UserList\";\nimport { JSONExportDialog } from \"./JSONExportDialog\";\nimport { PenModeButton } from \"./PenModeButton\";\nimport { trackEvent } from \"../analytics\";\nimport { useDevice } from \"./App\";\nimport { Stats } from \"./Stats\";\nimport { actionToggleStats } from \"../actions/actionToggleStats\";\nimport Footer from \"./footer/Footer\";\nimport { isSidebarDockedAtom } from \"./Sidebar/Sidebar\";\nimport { jotaiScope } from \"../jotai\";\nimport { Provider, useAtom, useAtomValue } from \"jotai\";\nimport MainMenu from \"./main-menu/MainMenu\";\nimport { ActiveConfirmDialog } from \"./ActiveConfirmDialog\";\nimport { OverwriteConfirmDialog } from \"./OverwriteConfirm/OverwriteConfirm\";\nimport { HandButton } from \"./HandButton\";\nimport { isHandToolActive } from \"../appState\";\nimport { TunnelsContext, useInitializeTunnels } from \"../context/tunnels\";\nimport { LibraryIcon } from \"./icons\";\nimport { UIAppStateContext } from \"../context/ui-appState\";\nimport { DefaultSidebar } from \"./DefaultSidebar\";\nimport { EyeDropper, activeEyeDropperAtom } from \"./EyeDropper\";\n\nimport \"./LayerUI.scss\";\nimport \"./Toolbar.scss\";\nimport { mutateElement } from \"../element/mutateElement\";\nimport { ShapeCache } from \"../scene/ShapeCache\";\nimport Scene from \"../scene/Scene\";\nimport { LaserPointerButton } from \"./LaserPointerButton\";\nimport { MagicSettings } from \"./MagicSettings\";\nimport { TTDDialog } from \"./TTDDialog/TTDDialog\";\n\ninterface LayerUIProps {\n actionManager: ActionManager;\n appState: UIAppState;\n files: BinaryFiles;\n canvas: HTMLCanvasElement;\n setAppState: React.Component[\"setState\"];\n elements: readonly NonDeletedExcalidrawElement[];\n onLockToggle: () => void;\n onHandToolToggle: () => void;\n onPenModeToggle: AppClassProperties[\"togglePenMode\"];\n showExitZenModeBtn: boolean;\n langCode: Language[\"code\"];\n renderTopRightUI?: ExcalidrawProps[\"renderTopRightUI\"];\n renderCustomStats?: ExcalidrawProps[\"renderCustomStats\"];\n UIOptions: AppProps[\"UIOptions\"];\n onExportImage: AppClassProperties[\"onExportImage\"];\n renderWelcomeScreen: boolean;\n children?: React.ReactNode;\n app: AppClassProperties;\n isCollaborating: boolean;\n openAIKey: string | null;\n isOpenAIKeyPersisted: boolean;\n onOpenAIAPIKeyChange: (apiKey: string, shouldPersist: boolean) => void;\n onMagicSettingsConfirm: (\n apiKey: string,\n shouldPersist: boolean,\n source: \"tool\" | \"generation\" | \"settings\",\n ) => void;\n}\n\nconst DefaultMainMenu: React.FC<{\n UIOptions: AppProps[\"UIOptions\"];\n}> = ({ UIOptions }) => {\n return (\n \n \n \n {/* FIXME we should to test for this inside the item itself */}\n {UIOptions.canvasActions.export && }\n {/* FIXME we should to test for this inside the item itself */}\n {UIOptions.canvasActions.saveAsImage && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst DefaultOverwriteConfirmDialog = () => {\n return (\n \n \n \n \n );\n};\n\nconst LayerUI = ({\n actionManager,\n appState,\n files,\n setAppState,\n elements,\n canvas,\n onLockToggle,\n onHandToolToggle,\n onPenModeToggle,\n showExitZenModeBtn,\n renderTopRightUI,\n renderCustomStats,\n UIOptions,\n onExportImage,\n renderWelcomeScreen,\n children,\n app,\n isCollaborating,\n openAIKey,\n isOpenAIKeyPersisted,\n onOpenAIAPIKeyChange,\n onMagicSettingsConfirm,\n}: LayerUIProps) => {\n const device = useDevice();\n const tunnels = useInitializeTunnels();\n\n const [eyeDropperState, setEyeDropperState] = useAtom(\n activeEyeDropperAtom,\n jotaiScope,\n );\n\n const renderJSONExportDialog = () => {\n if (!UIOptions.canvasActions.export) {\n return null;\n }\n\n return (\n \n );\n };\n\n const renderImageExportDialog = () => {\n if (\n !UIOptions.canvasActions.saveAsImage ||\n appState.openDialog?.name !== \"imageExport\"\n ) {\n return null;\n }\n\n return (\n setAppState({ openDialog: null })}\n name={app.getName()}\n />\n );\n };\n\n const renderCanvasActions = () => (\n
    \n {/* wrapping to Fragment stops React from occasionally complaining\n about identical Keys */}\n \n {renderWelcomeScreen && }\n
    \n );\n\n const renderSelectedShapeActions = () => (\n \n \n \n \n \n );\n\n const renderFixedSideContainer = () => {\n const shouldRenderSelectedShapeActions = showSelectedShapeActions(\n appState,\n elements,\n );\n\n return (\n \n
    \n \n {renderCanvasActions()}\n {shouldRenderSelectedShapeActions && renderSelectedShapeActions()}\n \n {!appState.viewModeEnabled && (\n
    \n {(heading: React.ReactNode) => (\n
    \n {renderWelcomeScreen && (\n \n )}\n \n \n \n \n {heading}\n \n onPenModeToggle(null)}\n title={t(\"toolBar.penMode\")}\n penDetected={appState.penDetected}\n />\n \n\n
    \n\n onHandToolToggle()}\n title={t(\"toolBar.hand\")}\n isMobile\n />\n\n \n \n \n {isCollaborating && (\n \n \n app.setActiveTool({ type: TOOL_TYPE.laser })\n }\n isMobile\n />\n \n )}\n \n \n
    \n )}\n
    \n )}\n \n {appState.collaborators.size > 0 && (\n \n )}\n {renderTopRightUI?.(device.editor.isMobile, appState)}\n {!appState.viewModeEnabled &&\n // hide button when sidebar docked\n (!isSidebarDocked ||\n appState.openSidebar?.name !== DEFAULT_SIDEBAR.name) && (\n \n )}\n
    \n \n
    \n );\n };\n\n const renderSidebars = () => {\n return (\n {\n trackEvent(\n \"sidebar\",\n `toggleDock (${docked ? \"dock\" : \"undock\"})`,\n `(${device.editor.isMobile ? \"mobile\" : \"desktop\"})`,\n );\n }}\n />\n );\n };\n\n const isSidebarDocked = useAtomValue(isSidebarDockedAtom, jotaiScope);\n\n const layerUIJSX = (\n <>\n {/* ------------------------- tunneled UI ---------------------------- */}\n {/* make sure we render host app components first so that we can detect\n them first on initial render to optimize layout shift */}\n {children}\n {/* render component fallbacks. Can be rendered anywhere as they'll be\n tunneled away. We only render tunneled components that actually\n have defaults when host do not render anything. */}\n \n {\n if (open) {\n trackEvent(\n \"sidebar\",\n `${DEFAULT_SIDEBAR.name} (open)`,\n `button (${device.editor.isMobile ? \"mobile\" : \"desktop\"})`,\n );\n }\n }}\n tab={DEFAULT_SIDEBAR.defaultTab}\n >\n {t(\"toolBar.library\")}\n \n \n {appState.openDialog?.name === \"ttd\" && }\n {/* ------------------------------------------------------------------ */}\n\n {appState.isLoading && }\n {appState.errorMessage && (\n setAppState({ errorMessage: null })}>\n {appState.errorMessage}\n \n )}\n {eyeDropperState && !device.editor.isMobile && (\n {\n setEyeDropperState(null);\n }}\n onChange={(colorPickerType, color, selectedElements, { altKey }) => {\n if (\n colorPickerType !== \"elementBackground\" &&\n colorPickerType !== \"elementStroke\"\n ) {\n return;\n }\n\n if (selectedElements.length) {\n for (const element of selectedElements) {\n mutateElement(\n element,\n {\n [altKey && eyeDropperState.swapPreviewOnAlt\n ? colorPickerType === \"elementBackground\"\n ? \"strokeColor\"\n : \"backgroundColor\"\n : colorPickerType === \"elementBackground\"\n ? \"backgroundColor\"\n : \"strokeColor\"]: color,\n },\n false,\n );\n ShapeCache.delete(element);\n }\n Scene.getScene(selectedElements[0])?.informMutation();\n } else if (colorPickerType === \"elementBackground\") {\n setAppState({\n currentItemBackgroundColor: color,\n });\n } else {\n setAppState({ currentItemStrokeColor: color });\n }\n }}\n onSelect={(color, event) => {\n setEyeDropperState((state) => {\n return state?.keepOpenOnAlt && event.altKey ? state : null;\n });\n eyeDropperState?.onSelect?.(color, event);\n }}\n />\n )}\n {appState.openDialog?.name === \"help\" && (\n {\n setAppState({ openDialog: null });\n }}\n />\n )}\n {appState.openDialog?.name === \"settings\" && (\n {\n const source =\n appState.openDialog?.name === \"settings\"\n ? appState.openDialog?.source\n : \"settings\";\n setAppState({ openDialog: null }, () => {\n onMagicSettingsConfirm(apiKey, shouldPersist, source);\n });\n }}\n onClose={() => {\n setAppState({ openDialog: null });\n }}\n />\n )}\n \n \n {renderImageExportDialog()}\n {renderJSONExportDialog()}\n {appState.pasteDialog.shown && (\n \n setAppState({\n pasteDialog: { shown: false, data: null },\n })\n }\n />\n )}\n {device.editor.isMobile && (\n \n )}\n {!device.editor.isMobile && (\n <>\n \n {renderWelcomeScreen && }\n {renderFixedSideContainer()}\n \n {appState.showStats && (\n {\n actionManager.executeAction(actionToggleStats);\n }}\n renderCustomStats={renderCustomStats}\n />\n )}\n {appState.scrolledOutside && (\n {\n setAppState((appState) => ({\n ...calculateScrollCenter(elements, appState),\n }));\n }}\n >\n {t(\"buttons.scrollBackToContent\")}\n \n )}\n \n {renderSidebars()}\n \n )}\n \n );\n\n return (\n \n \n \n {layerUIJSX}\n \n \n \n );\n};\n\nconst stripIrrelevantAppStateProps = (appState: AppState): UIAppState => {\n const {\n suggestedBindings,\n startBoundElement,\n cursorButton,\n scrollX,\n scrollY,\n ...ret\n } = appState;\n return ret;\n};\n\nconst areEqual = (prevProps: LayerUIProps, nextProps: LayerUIProps) => {\n // short-circuit early\n if (prevProps.children !== nextProps.children) {\n return false;\n }\n\n const { canvas: _pC, appState: prevAppState, ...prev } = prevProps;\n const { canvas: _nC, appState: nextAppState, ...next } = nextProps;\n\n return (\n isShallowEqual(\n // asserting AppState because we're being passed the whole AppState\n // but resolve to only the UI-relevant props\n stripIrrelevantAppStateProps(prevAppState as AppState),\n stripIrrelevantAppStateProps(nextAppState as AppState),\n {\n selectedElementIds: isShallowEqual,\n selectedGroupIds: isShallowEqual,\n },\n ) && isShallowEqual(prev, next)\n );\n};\n\nexport default React.memo(LayerUI, areEqual);\n","import { CSSProperties, useCallback, useEffect, useRef } from \"react\";\nimport { CloseIcon } from \"./icons\";\nimport \"./Toast.scss\";\nimport { ToolButton } from \"./ToolButton\";\n\nconst DEFAULT_TOAST_TIMEOUT = 5000;\n\nexport const Toast = ({\n message,\n onClose,\n closable = false,\n // To prevent autoclose, pass duration as Infinity\n duration = DEFAULT_TOAST_TIMEOUT,\n style,\n}: {\n message: string;\n onClose: () => void;\n closable?: boolean;\n duration?: number;\n style?: CSSProperties;\n}) => {\n const timerRef = useRef(0);\n const shouldAutoClose = duration !== Infinity;\n const scheduleTimeout = useCallback(() => {\n if (!shouldAutoClose) {\n return;\n }\n timerRef.current = window.setTimeout(() => onClose(), duration);\n }, [onClose, duration, shouldAutoClose]);\n\n useEffect(() => {\n if (!shouldAutoClose) {\n return;\n }\n scheduleTimeout();\n return () => clearTimeout(timerRef.current);\n }, [scheduleTimeout, message, duration, shouldAutoClose]);\n\n const onMouseEnter = shouldAutoClose\n ? () => clearTimeout(timerRef?.current)\n : undefined;\n const onMouseLeave = shouldAutoClose ? scheduleTimeout : undefined;\n return (\n \n

    {message}

    \n {closable && (\n \n )}\n \n );\n};\n","import { CODES, KEYS } from \"../keys\";\nimport { register } from \"./register\";\n\nexport const actionToggleViewMode = register({\n name: \"viewMode\",\n viewMode: true,\n trackEvent: {\n category: \"canvas\",\n predicate: (appState) => !appState.viewModeEnabled,\n },\n perform(elements, appState) {\n return {\n appState: {\n ...appState,\n viewModeEnabled: !this.checked!(appState),\n },\n commitToHistory: false,\n };\n },\n checked: (appState) => appState.viewModeEnabled,\n predicate: (elements, appState, appProps) => {\n return typeof appProps.viewModeEnabled === \"undefined\";\n },\n contextItemLabel: \"labels.viewMode\",\n keyTest: (event) =>\n !event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.R,\n});\n","import { isTextElement, refreshTextDimensions } from \"../element\";\nimport { newElementWith } from \"../element/mutateElement\";\nimport { getContainerElement } from \"../element/textElement\";\nimport { isBoundToContainer } from \"../element/typeChecks\";\nimport { ExcalidrawElement, ExcalidrawTextElement } from \"../element/types\";\nimport { getFontString } from \"../utils\";\nimport type Scene from \"./Scene\";\nimport { ShapeCache } from \"./ShapeCache\";\n\nexport class Fonts {\n private scene: Scene;\n private onSceneUpdated: () => void;\n\n constructor({\n scene,\n onSceneUpdated,\n }: {\n scene: Scene;\n onSceneUpdated: () => void;\n }) {\n this.scene = scene;\n this.onSceneUpdated = onSceneUpdated;\n }\n\n // it's ok to track fonts across multiple instances only once, so let's use\n // a static member to reduce memory footprint\n private static loadedFontFaces = new Set();\n\n /**\n * if we load a (new) font, it's likely that text elements using it have\n * already been rendered using a fallback font. Thus, we want invalidate\n * their shapes and rerender. See #637.\n *\n * Invalidates text elements and rerenders scene, provided that at least one\n * of the supplied fontFaces has not already been processed.\n */\n public onFontsLoaded = (fontFaces: readonly FontFace[]) => {\n if (\n // bail if all fonts with have been processed. We're checking just a\n // subset of the font properties (though it should be enough), so it\n // can technically bail on a false positive.\n fontFaces.every((fontFace) => {\n const sig = `${fontFace.family}-${fontFace.style}-${fontFace.weight}`;\n if (Fonts.loadedFontFaces.has(sig)) {\n return true;\n }\n Fonts.loadedFontFaces.add(sig);\n return false;\n })\n ) {\n return false;\n }\n\n let didUpdate = false;\n\n this.scene.mapElements((element) => {\n if (isTextElement(element) && !isBoundToContainer(element)) {\n ShapeCache.delete(element);\n didUpdate = true;\n return newElementWith(element, {\n ...refreshTextDimensions(\n element,\n getContainerElement(element, this.scene.getNonDeletedElementsMap()),\n this.scene.getNonDeletedElementsMap(),\n ),\n });\n }\n return element;\n });\n\n if (didUpdate) {\n this.onSceneUpdated();\n }\n };\n\n public loadFontsForElements = async (\n elements: readonly ExcalidrawElement[],\n ) => {\n const fontFaces = await Promise.all(\n [\n ...new Set(\n elements\n .filter((element) => isTextElement(element))\n .map((element) => (element as ExcalidrawTextElement).fontFamily),\n ),\n ].map((fontFamily) => {\n const fontString = getFontString({\n fontFamily,\n fontSize: 16,\n });\n if (!document.fonts?.check?.(fontString)) {\n return document.fonts?.load?.(fontString);\n }\n return undefined;\n }),\n );\n this.onFontsLoaded(fontFaces.flat().filter(Boolean) as FontFace[]);\n };\n}\n","import { getNonDeletedElements } from \"../element\";\nimport { ExcalidrawElement } from \"../element/types\";\nimport { removeAllElementsFromFrame } from \"../frame\";\nimport { getFrameChildren } from \"../frame\";\nimport { KEYS } from \"../keys\";\nimport { AppClassProperties, AppState } from \"../types\";\nimport { updateActiveTool } from \"../utils\";\nimport { setCursorForShape } from \"../cursor\";\nimport { register } from \"./register\";\nimport { isFrameLikeElement } from \"../element/typeChecks\";\n\nconst isSingleFrameSelected = (appState: AppState, app: AppClassProperties) => {\n const selectedElements = app.scene.getSelectedElements(appState);\n\n return (\n selectedElements.length === 1 && isFrameLikeElement(selectedElements[0])\n );\n};\n\nexport const actionSelectAllElementsInFrame = register({\n name: \"selectAllElementsInFrame\",\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState, _, app) => {\n const selectedElement =\n app.scene.getSelectedElements(appState).at(0) || null;\n\n if (isFrameLikeElement(selectedElement)) {\n const elementsInFrame = getFrameChildren(\n getNonDeletedElements(elements),\n selectedElement.id,\n ).filter((element) => !(element.type === \"text\" && element.containerId));\n\n return {\n elements,\n appState: {\n ...appState,\n selectedElementIds: elementsInFrame.reduce((acc, element) => {\n acc[element.id] = true;\n return acc;\n }, {} as Record),\n },\n commitToHistory: false,\n };\n }\n\n return {\n elements,\n appState,\n commitToHistory: false,\n };\n },\n contextItemLabel: \"labels.selectAllElementsInFrame\",\n predicate: (elements, appState, _, app) =>\n isSingleFrameSelected(appState, app),\n});\n\nexport const actionRemoveAllElementsFromFrame = register({\n name: \"removeAllElementsFromFrame\",\n trackEvent: { category: \"history\" },\n perform: (elements, appState, _, app) => {\n const selectedElement =\n app.scene.getSelectedElements(appState).at(0) || null;\n\n if (isFrameLikeElement(selectedElement)) {\n return {\n elements: removeAllElementsFromFrame(elements, selectedElement),\n appState: {\n ...appState,\n selectedElementIds: {\n [selectedElement.id]: true,\n },\n },\n commitToHistory: true,\n };\n }\n\n return {\n elements,\n appState,\n commitToHistory: false,\n };\n },\n contextItemLabel: \"labels.removeAllElementsFromFrame\",\n predicate: (elements, appState, _, app) =>\n isSingleFrameSelected(appState, app),\n});\n\nexport const actionupdateFrameRendering = register({\n name: \"updateFrameRendering\",\n viewMode: true,\n trackEvent: { category: \"canvas\" },\n perform: (elements, appState) => {\n return {\n elements,\n appState: {\n ...appState,\n frameRendering: {\n ...appState.frameRendering,\n enabled: !appState.frameRendering.enabled,\n },\n },\n commitToHistory: false,\n };\n },\n contextItemLabel: \"labels.updateFrameRendering\",\n checked: (appState: AppState) => appState.frameRendering.enabled,\n});\n\nexport const actionSetFrameAsActiveTool = register({\n name: \"setFrameAsActiveTool\",\n trackEvent: { category: \"toolbar\" },\n perform: (elements, appState, _, app) => {\n const nextActiveTool = updateActiveTool(appState, {\n type: \"frame\",\n });\n\n setCursorForShape(app.interactiveCanvas, {\n ...appState,\n activeTool: nextActiveTool,\n });\n\n return {\n elements,\n appState: {\n ...appState,\n activeTool: updateActiveTool(appState, {\n type: \"frame\",\n }),\n },\n commitToHistory: false,\n };\n },\n keyTest: (event) =>\n !event[KEYS.CTRL_OR_CMD] &&\n !event.shiftKey &&\n !event.altKey &&\n event.key.toLocaleLowerCase() === KEYS.F,\n});\n","import { TOOL_TYPE } from \"./constants\";\nimport {\n Bounds,\n getCommonBounds,\n getDraggedElementsBounds,\n getElementAbsoluteCoords,\n} from \"./element/bounds\";\nimport { MaybeTransformHandleType } from \"./element/transformHandles\";\nimport { isBoundToContainer, isFrameLikeElement } from \"./element/typeChecks\";\nimport {\n ElementsMap,\n ExcalidrawElement,\n NonDeletedExcalidrawElement,\n} from \"./element/types\";\nimport { getMaximumGroups } from \"./groups\";\nimport { KEYS } from \"./keys\";\nimport { rangeIntersection, rangesOverlap, rotatePoint } from \"./math\";\nimport {\n getSelectedElements,\n getVisibleAndNonSelectedElements,\n} from \"./scene/selection\";\nimport { AppState, KeyboardModifiersObject, Point } from \"./types\";\n\nconst SNAP_DISTANCE = 8;\n\n// do not comput more gaps per axis than this limit\n// TODO increase or remove once we optimize\nconst VISIBLE_GAPS_LIMIT_PER_AXIS = 99999;\n\n// snap distance with zoom value taken into consideration\nexport const getSnapDistance = (zoomValue: number) => {\n return SNAP_DISTANCE / zoomValue;\n};\n\ntype Vector2D = {\n x: number;\n y: number;\n};\n\ntype PointPair = [Point, Point];\n\nexport type PointSnap = {\n type: \"point\";\n points: PointPair;\n offset: number;\n};\n\nexport type Gap = {\n // start side ↓ length\n // ┌───────────┐◄───────────────►\n // │ │-----------------┌───────────┐\n // │ start │ ↑ │ │\n // │ element │ overlap │ end │\n // │ │ ↓ │ element │\n // └───────────┘-----------------│ │\n // └───────────┘\n // ↑ end side\n startBounds: Bounds;\n endBounds: Bounds;\n startSide: [Point, Point];\n endSide: [Point, Point];\n overlap: [number, number];\n length: number;\n};\n\nexport type GapSnap = {\n type: \"gap\";\n direction:\n | \"center_horizontal\"\n | \"center_vertical\"\n | \"side_left\"\n | \"side_right\"\n | \"side_top\"\n | \"side_bottom\";\n gap: Gap;\n offset: number;\n};\n\nexport type GapSnaps = GapSnap[];\n\nexport type Snap = GapSnap | PointSnap;\nexport type Snaps = Snap[];\n\nexport type PointSnapLine = {\n type: \"points\";\n points: Point[];\n};\n\nexport type PointerSnapLine = {\n type: \"pointer\";\n points: PointPair;\n direction: \"horizontal\" | \"vertical\";\n};\n\nexport type GapSnapLine = {\n type: \"gap\";\n direction: \"horizontal\" | \"vertical\";\n points: PointPair;\n};\n\nexport type SnapLine = PointSnapLine | GapSnapLine | PointerSnapLine;\n\n// -----------------------------------------------------------------------------\n\nexport class SnapCache {\n private static referenceSnapPoints: Point[] | null = null;\n\n private static visibleGaps: {\n verticalGaps: Gap[];\n horizontalGaps: Gap[];\n } | null = null;\n\n public static setReferenceSnapPoints = (snapPoints: Point[] | null) => {\n SnapCache.referenceSnapPoints = snapPoints;\n };\n\n public static getReferenceSnapPoints = () => {\n return SnapCache.referenceSnapPoints;\n };\n\n public static setVisibleGaps = (\n gaps: {\n verticalGaps: Gap[];\n horizontalGaps: Gap[];\n } | null,\n ) => {\n SnapCache.visibleGaps = gaps;\n };\n\n public static getVisibleGaps = () => {\n return SnapCache.visibleGaps;\n };\n\n public static destroy = () => {\n SnapCache.referenceSnapPoints = null;\n SnapCache.visibleGaps = null;\n };\n}\n\n// -----------------------------------------------------------------------------\n\nexport const isSnappingEnabled = ({\n event,\n appState,\n selectedElements,\n}: {\n appState: AppState;\n event: KeyboardModifiersObject;\n selectedElements: NonDeletedExcalidrawElement[];\n}) => {\n if (event) {\n return (\n (appState.objectsSnapModeEnabled && !event[KEYS.CTRL_OR_CMD]) ||\n (!appState.objectsSnapModeEnabled &&\n event[KEYS.CTRL_OR_CMD] &&\n appState.gridSize === null)\n );\n }\n\n // do not suggest snaps for an arrow to give way to binding\n if (selectedElements.length === 1 && selectedElements[0].type === \"arrow\") {\n return false;\n }\n return appState.objectsSnapModeEnabled;\n};\n\nexport const areRoughlyEqual = (a: number, b: number, precision = 0.01) => {\n return Math.abs(a - b) <= precision;\n};\n\nexport const getElementsCorners = (\n elements: ExcalidrawElement[],\n elementsMap: ElementsMap,\n {\n omitCenter,\n boundingBoxCorners,\n dragOffset,\n }: {\n omitCenter?: boolean;\n boundingBoxCorners?: boolean;\n dragOffset?: Vector2D;\n } = {\n omitCenter: false,\n boundingBoxCorners: false,\n },\n): Point[] => {\n let result: Point[] = [];\n\n if (elements.length === 1) {\n const element = elements[0];\n\n let [x1, y1, x2, y2, cx, cy] = getElementAbsoluteCoords(\n element,\n elementsMap,\n );\n\n if (dragOffset) {\n x1 += dragOffset.x;\n x2 += dragOffset.x;\n cx += dragOffset.x;\n\n y1 += dragOffset.y;\n y2 += dragOffset.y;\n cy += dragOffset.y;\n }\n\n const halfWidth = (x2 - x1) / 2;\n const halfHeight = (y2 - y1) / 2;\n\n if (\n (element.type === \"diamond\" || element.type === \"ellipse\") &&\n !boundingBoxCorners\n ) {\n const leftMid = rotatePoint(\n [x1, y1 + halfHeight],\n [cx, cy],\n element.angle,\n );\n const topMid = rotatePoint([x1 + halfWidth, y1], [cx, cy], element.angle);\n const rightMid = rotatePoint(\n [x2, y1 + halfHeight],\n [cx, cy],\n element.angle,\n );\n const bottomMid = rotatePoint(\n [x1 + halfWidth, y2],\n [cx, cy],\n element.angle,\n );\n const center: Point = [cx, cy];\n\n result = omitCenter\n ? [leftMid, topMid, rightMid, bottomMid]\n : [leftMid, topMid, rightMid, bottomMid, center];\n } else {\n const topLeft = rotatePoint([x1, y1], [cx, cy], element.angle);\n const topRight = rotatePoint([x2, y1], [cx, cy], element.angle);\n const bottomLeft = rotatePoint([x1, y2], [cx, cy], element.angle);\n const bottomRight = rotatePoint([x2, y2], [cx, cy], element.angle);\n const center: Point = [cx, cy];\n\n result = omitCenter\n ? [topLeft, topRight, bottomLeft, bottomRight]\n : [topLeft, topRight, bottomLeft, bottomRight, center];\n }\n } else if (elements.length > 1) {\n const [minX, minY, maxX, maxY] = getDraggedElementsBounds(\n elements,\n dragOffset ?? { x: 0, y: 0 },\n );\n const width = maxX - minX;\n const height = maxY - minY;\n\n const topLeft: Point = [minX, minY];\n const topRight: Point = [maxX, minY];\n const bottomLeft: Point = [minX, maxY];\n const bottomRight: Point = [maxX, maxY];\n const center: Point = [minX + width / 2, minY + height / 2];\n\n result = omitCenter\n ? [topLeft, topRight, bottomLeft, bottomRight]\n : [topLeft, topRight, bottomLeft, bottomRight, center];\n }\n\n return result.map((point) => [round(point[0]), round(point[1])] as Point);\n};\n\nconst getReferenceElements = (\n elements: readonly NonDeletedExcalidrawElement[],\n selectedElements: NonDeletedExcalidrawElement[],\n appState: AppState,\n elementsMap: ElementsMap,\n) => {\n const selectedFrames = selectedElements\n .filter((element) => isFrameLikeElement(element))\n .map((frame) => frame.id);\n\n return getVisibleAndNonSelectedElements(\n elements,\n selectedElements,\n appState,\n elementsMap,\n ).filter(\n (element) => !(element.frameId && selectedFrames.includes(element.frameId)),\n );\n};\n\nexport const getVisibleGaps = (\n elements: readonly NonDeletedExcalidrawElement[],\n selectedElements: ExcalidrawElement[],\n appState: AppState,\n elementsMap: ElementsMap,\n) => {\n const referenceElements: ExcalidrawElement[] = getReferenceElements(\n elements,\n selectedElements,\n appState,\n elementsMap,\n );\n\n const referenceBounds = getMaximumGroups(referenceElements, elementsMap)\n .filter(\n (elementsGroup) =>\n !(elementsGroup.length === 1 && isBoundToContainer(elementsGroup[0])),\n )\n .map(\n (group) =>\n getCommonBounds(group).map((bound) =>\n round(bound),\n ) as unknown as Bounds,\n );\n\n const horizontallySorted = referenceBounds.sort((a, b) => a[0] - b[0]);\n\n const horizontalGaps: Gap[] = [];\n\n let c = 0;\n\n horizontal: for (let i = 0; i < horizontallySorted.length; i++) {\n const startBounds = horizontallySorted[i];\n\n for (let j = i + 1; j < horizontallySorted.length; j++) {\n if (++c > VISIBLE_GAPS_LIMIT_PER_AXIS) {\n break horizontal;\n }\n\n const endBounds = horizontallySorted[j];\n\n const [, startMinY, startMaxX, startMaxY] = startBounds;\n const [endMinX, endMinY, , endMaxY] = endBounds;\n\n if (\n startMaxX < endMinX &&\n rangesOverlap([startMinY, startMaxY], [endMinY, endMaxY])\n ) {\n horizontalGaps.push({\n startBounds,\n endBounds,\n startSide: [\n [startMaxX, startMinY],\n [startMaxX, startMaxY],\n ],\n endSide: [\n [endMinX, endMinY],\n [endMinX, endMaxY],\n ],\n length: endMinX - startMaxX,\n overlap: rangeIntersection(\n [startMinY, startMaxY],\n [endMinY, endMaxY],\n )!,\n });\n }\n }\n }\n\n const verticallySorted = referenceBounds.sort((a, b) => a[1] - b[1]);\n\n const verticalGaps: Gap[] = [];\n\n c = 0;\n\n vertical: for (let i = 0; i < verticallySorted.length; i++) {\n const startBounds = verticallySorted[i];\n\n for (let j = i + 1; j < verticallySorted.length; j++) {\n if (++c > VISIBLE_GAPS_LIMIT_PER_AXIS) {\n break vertical;\n }\n const endBounds = verticallySorted[j];\n\n const [startMinX, , startMaxX, startMaxY] = startBounds;\n const [endMinX, endMinY, endMaxX] = endBounds;\n\n if (\n startMaxY < endMinY &&\n rangesOverlap([startMinX, startMaxX], [endMinX, endMaxX])\n ) {\n verticalGaps.push({\n startBounds,\n endBounds,\n startSide: [\n [startMinX, startMaxY],\n [startMaxX, startMaxY],\n ],\n endSide: [\n [endMinX, endMinY],\n [endMaxX, endMinY],\n ],\n length: endMinY - startMaxY,\n overlap: rangeIntersection(\n [startMinX, startMaxX],\n [endMinX, endMaxX],\n )!,\n });\n }\n }\n }\n\n return {\n horizontalGaps,\n verticalGaps,\n };\n};\n\nconst getGapSnaps = (\n selectedElements: ExcalidrawElement[],\n dragOffset: Vector2D,\n appState: AppState,\n event: KeyboardModifiersObject,\n nearestSnapsX: Snaps,\n nearestSnapsY: Snaps,\n minOffset: Vector2D,\n) => {\n if (!isSnappingEnabled({ appState, event, selectedElements })) {\n return [];\n }\n\n if (selectedElements.length === 0) {\n return [];\n }\n\n const visibleGaps = SnapCache.getVisibleGaps();\n\n if (visibleGaps) {\n const { horizontalGaps, verticalGaps } = visibleGaps;\n\n const [minX, minY, maxX, maxY] = getDraggedElementsBounds(\n selectedElements,\n dragOffset,\n ).map((bound) => round(bound));\n const centerX = (minX + maxX) / 2;\n const centerY = (minY + maxY) / 2;\n\n for (const gap of horizontalGaps) {\n if (!rangesOverlap([minY, maxY], gap.overlap)) {\n continue;\n }\n\n // center gap\n const gapMidX = gap.startSide[0][0] + gap.length / 2;\n const centerOffset = round(gapMidX - centerX);\n const gapIsLargerThanSelection = gap.length > maxX - minX;\n\n if (gapIsLargerThanSelection && Math.abs(centerOffset) <= minOffset.x) {\n if (Math.abs(centerOffset) < minOffset.x) {\n nearestSnapsX.length = 0;\n }\n minOffset.x = Math.abs(centerOffset);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"center_horizontal\",\n gap,\n offset: centerOffset,\n };\n\n nearestSnapsX.push(snap);\n continue;\n }\n\n // side gap, from the right\n const [, , endMaxX] = gap.endBounds;\n const distanceToEndElementX = minX - endMaxX;\n const sideOffsetRight = round(gap.length - distanceToEndElementX);\n\n if (Math.abs(sideOffsetRight) <= minOffset.x) {\n if (Math.abs(sideOffsetRight) < minOffset.x) {\n nearestSnapsX.length = 0;\n }\n minOffset.x = Math.abs(sideOffsetRight);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"side_right\",\n gap,\n offset: sideOffsetRight,\n };\n nearestSnapsX.push(snap);\n continue;\n }\n\n // side gap, from the left\n const [startMinX, , ,] = gap.startBounds;\n const distanceToStartElementX = startMinX - maxX;\n const sideOffsetLeft = round(distanceToStartElementX - gap.length);\n\n if (Math.abs(sideOffsetLeft) <= minOffset.x) {\n if (Math.abs(sideOffsetLeft) < minOffset.x) {\n nearestSnapsX.length = 0;\n }\n minOffset.x = Math.abs(sideOffsetLeft);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"side_left\",\n gap,\n offset: sideOffsetLeft,\n };\n nearestSnapsX.push(snap);\n continue;\n }\n }\n for (const gap of verticalGaps) {\n if (!rangesOverlap([minX, maxX], gap.overlap)) {\n continue;\n }\n\n // center gap\n const gapMidY = gap.startSide[0][1] + gap.length / 2;\n const centerOffset = round(gapMidY - centerY);\n const gapIsLargerThanSelection = gap.length > maxY - minY;\n\n if (gapIsLargerThanSelection && Math.abs(centerOffset) <= minOffset.y) {\n if (Math.abs(centerOffset) < minOffset.y) {\n nearestSnapsY.length = 0;\n }\n minOffset.y = Math.abs(centerOffset);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"center_vertical\",\n gap,\n offset: centerOffset,\n };\n\n nearestSnapsY.push(snap);\n continue;\n }\n\n // side gap, from the top\n const [, startMinY, ,] = gap.startBounds;\n const distanceToStartElementY = startMinY - maxY;\n const sideOffsetTop = round(distanceToStartElementY - gap.length);\n\n if (Math.abs(sideOffsetTop) <= minOffset.y) {\n if (Math.abs(sideOffsetTop) < minOffset.y) {\n nearestSnapsY.length = 0;\n }\n minOffset.y = Math.abs(sideOffsetTop);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"side_top\",\n gap,\n offset: sideOffsetTop,\n };\n nearestSnapsY.push(snap);\n continue;\n }\n\n // side gap, from the bottom\n const [, , , endMaxY] = gap.endBounds;\n const distanceToEndElementY = round(minY - endMaxY);\n const sideOffsetBottom = gap.length - distanceToEndElementY;\n\n if (Math.abs(sideOffsetBottom) <= minOffset.y) {\n if (Math.abs(sideOffsetBottom) < minOffset.y) {\n nearestSnapsY.length = 0;\n }\n minOffset.y = Math.abs(sideOffsetBottom);\n\n const snap: GapSnap = {\n type: \"gap\",\n direction: \"side_bottom\",\n gap,\n offset: sideOffsetBottom,\n };\n nearestSnapsY.push(snap);\n continue;\n }\n }\n }\n};\n\nexport const getReferenceSnapPoints = (\n elements: readonly NonDeletedExcalidrawElement[],\n selectedElements: ExcalidrawElement[],\n appState: AppState,\n elementsMap: ElementsMap,\n) => {\n const referenceElements = getReferenceElements(\n elements,\n selectedElements,\n appState,\n elementsMap,\n );\n return getMaximumGroups(referenceElements, elementsMap)\n .filter(\n (elementsGroup) =>\n !(elementsGroup.length === 1 && isBoundToContainer(elementsGroup[0])),\n )\n .flatMap((elementGroup) => getElementsCorners(elementGroup, elementsMap));\n};\n\nconst getPointSnaps = (\n selectedElements: ExcalidrawElement[],\n selectionSnapPoints: Point[],\n appState: AppState,\n event: KeyboardModifiersObject,\n nearestSnapsX: Snaps,\n nearestSnapsY: Snaps,\n minOffset: Vector2D,\n) => {\n if (\n !isSnappingEnabled({ appState, event, selectedElements }) ||\n (selectedElements.length === 0 && selectionSnapPoints.length === 0)\n ) {\n return [];\n }\n\n const referenceSnapPoints = SnapCache.getReferenceSnapPoints();\n\n if (referenceSnapPoints) {\n for (const thisSnapPoint of selectionSnapPoints) {\n for (const otherSnapPoint of referenceSnapPoints) {\n const offsetX = otherSnapPoint[0] - thisSnapPoint[0];\n const offsetY = otherSnapPoint[1] - thisSnapPoint[1];\n\n if (Math.abs(offsetX) <= minOffset.x) {\n if (Math.abs(offsetX) < minOffset.x) {\n nearestSnapsX.length = 0;\n }\n\n nearestSnapsX.push({\n type: \"point\",\n points: [thisSnapPoint, otherSnapPoint],\n offset: offsetX,\n });\n\n minOffset.x = Math.abs(offsetX);\n }\n\n if (Math.abs(offsetY) <= minOffset.y) {\n if (Math.abs(offsetY) < minOffset.y) {\n nearestSnapsY.length = 0;\n }\n\n nearestSnapsY.push({\n type: \"point\",\n points: [thisSnapPoint, otherSnapPoint],\n offset: offsetY,\n });\n\n minOffset.y = Math.abs(offsetY);\n }\n }\n }\n }\n};\n\nexport const snapDraggedElements = (\n elements: ExcalidrawElement[],\n dragOffset: Vector2D,\n appState: AppState,\n event: KeyboardModifiersObject,\n elementsMap: ElementsMap,\n) => {\n const selectedElements = getSelectedElements(elements, appState);\n if (\n !isSnappingEnabled({ appState, event, selectedElements }) ||\n selectedElements.length === 0\n ) {\n return {\n snapOffset: {\n x: 0,\n y: 0,\n },\n snapLines: [],\n };\n }\n dragOffset.x = round(dragOffset.x);\n dragOffset.y = round(dragOffset.y);\n const nearestSnapsX: Snaps = [];\n const nearestSnapsY: Snaps = [];\n const snapDistance = getSnapDistance(appState.zoom.value);\n const minOffset = {\n x: snapDistance,\n y: snapDistance,\n };\n\n const selectionPoints = getElementsCorners(selectedElements, elementsMap, {\n dragOffset,\n });\n\n // get the nearest horizontal and vertical point and gap snaps\n getPointSnaps(\n selectedElements,\n selectionPoints,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n getGapSnaps(\n selectedElements,\n dragOffset,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n // using the nearest snaps to figure out how\n // much the elements need to be offset to be snapped\n // to some reference elements\n const snapOffset = {\n x: nearestSnapsX[0]?.offset ?? 0,\n y: nearestSnapsY[0]?.offset ?? 0,\n };\n\n // once the elements are snapped\n // and moved to the snapped position\n // we want to use the element's snapped position\n // to update nearest snaps so that we can create\n // point and gap snap lines correctly without any shifting\n\n minOffset.x = 0;\n minOffset.y = 0;\n nearestSnapsX.length = 0;\n nearestSnapsY.length = 0;\n const newDragOffset = {\n x: round(dragOffset.x + snapOffset.x),\n y: round(dragOffset.y + snapOffset.y),\n };\n\n getPointSnaps(\n selectedElements,\n getElementsCorners(selectedElements, elementsMap, {\n dragOffset: newDragOffset,\n }),\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n getGapSnaps(\n selectedElements,\n newDragOffset,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n const pointSnapLines = createPointSnapLines(nearestSnapsX, nearestSnapsY);\n\n const gapSnapLines = createGapSnapLines(\n selectedElements,\n newDragOffset,\n [...nearestSnapsX, ...nearestSnapsY].filter(\n (snap) => snap.type === \"gap\",\n ) as GapSnap[],\n );\n\n return {\n snapOffset,\n snapLines: [...pointSnapLines, ...gapSnapLines],\n };\n};\n\nconst round = (x: number) => {\n const decimalPlaces = 6;\n return Math.round(x * 10 ** decimalPlaces) / 10 ** decimalPlaces;\n};\n\nconst dedupePoints = (points: Point[]): Point[] => {\n const map = new Map();\n\n for (const point of points) {\n const key = point.join(\",\");\n\n if (!map.has(key)) {\n map.set(key, point);\n }\n }\n\n return Array.from(map.values());\n};\n\nconst createPointSnapLines = (\n nearestSnapsX: Snaps,\n nearestSnapsY: Snaps,\n): PointSnapLine[] => {\n const snapsX = {} as { [key: string]: Point[] };\n const snapsY = {} as { [key: string]: Point[] };\n\n if (nearestSnapsX.length > 0) {\n for (const snap of nearestSnapsX) {\n if (snap.type === \"point\") {\n // key = thisPoint.x\n const key = round(snap.points[0][0]);\n if (!snapsX[key]) {\n snapsX[key] = [];\n }\n snapsX[key].push(\n ...snap.points.map(\n (point) => [round(point[0]), round(point[1])] as Point,\n ),\n );\n }\n }\n }\n\n if (nearestSnapsY.length > 0) {\n for (const snap of nearestSnapsY) {\n if (snap.type === \"point\") {\n // key = thisPoint.y\n const key = round(snap.points[0][1]);\n if (!snapsY[key]) {\n snapsY[key] = [];\n }\n snapsY[key].push(\n ...snap.points.map(\n (point) => [round(point[0]), round(point[1])] as Point,\n ),\n );\n }\n }\n }\n\n return Object.entries(snapsX)\n .map(([key, points]) => {\n return {\n type: \"points\",\n points: dedupePoints(\n points\n .map((point) => {\n return [Number(key), point[1]] as Point;\n })\n .sort((a, b) => a[1] - b[1]),\n ),\n } as PointSnapLine;\n })\n .concat(\n Object.entries(snapsY).map(([key, points]) => {\n return {\n type: \"points\",\n points: dedupePoints(\n points\n .map((point) => {\n return [point[0], Number(key)] as Point;\n })\n .sort((a, b) => a[0] - b[0]),\n ),\n } as PointSnapLine;\n }),\n );\n};\n\nconst dedupeGapSnapLines = (gapSnapLines: GapSnapLine[]) => {\n const map = new Map();\n\n for (const gapSnapLine of gapSnapLines) {\n const key = gapSnapLine.points\n .flat()\n .map((point) => [round(point)])\n .join(\",\");\n\n if (!map.has(key)) {\n map.set(key, gapSnapLine);\n }\n }\n\n return Array.from(map.values());\n};\n\nconst createGapSnapLines = (\n selectedElements: ExcalidrawElement[],\n dragOffset: Vector2D,\n gapSnaps: GapSnap[],\n): GapSnapLine[] => {\n const [minX, minY, maxX, maxY] = getDraggedElementsBounds(\n selectedElements,\n dragOffset,\n );\n\n const gapSnapLines: GapSnapLine[] = [];\n\n for (const gapSnap of gapSnaps) {\n const [startMinX, startMinY, startMaxX, startMaxY] =\n gapSnap.gap.startBounds;\n const [endMinX, endMinY, endMaxX, endMaxY] = gapSnap.gap.endBounds;\n\n const verticalIntersection = rangeIntersection(\n [minY, maxY],\n gapSnap.gap.overlap,\n );\n\n const horizontalGapIntersection = rangeIntersection(\n [minX, maxX],\n gapSnap.gap.overlap,\n );\n\n switch (gapSnap.direction) {\n case \"center_horizontal\": {\n if (verticalIntersection) {\n const gapLineY =\n (verticalIntersection[0] + verticalIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [gapSnap.gap.startSide[0][0], gapLineY],\n [minX, gapLineY],\n ],\n },\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [maxX, gapLineY],\n [gapSnap.gap.endSide[0][0], gapLineY],\n ],\n },\n );\n }\n break;\n }\n case \"center_vertical\": {\n if (horizontalGapIntersection) {\n const gapLineX =\n (horizontalGapIntersection[0] + horizontalGapIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, gapSnap.gap.startSide[0][1]],\n [gapLineX, minY],\n ],\n },\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, maxY],\n [gapLineX, gapSnap.gap.endSide[0][1]],\n ],\n },\n );\n }\n break;\n }\n case \"side_right\": {\n if (verticalIntersection) {\n const gapLineY =\n (verticalIntersection[0] + verticalIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [startMaxX, gapLineY],\n [endMinX, gapLineY],\n ],\n },\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [endMaxX, gapLineY],\n [minX, gapLineY],\n ],\n },\n );\n }\n break;\n }\n case \"side_left\": {\n if (verticalIntersection) {\n const gapLineY =\n (verticalIntersection[0] + verticalIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [maxX, gapLineY],\n [startMinX, gapLineY],\n ],\n },\n {\n type: \"gap\",\n direction: \"horizontal\",\n points: [\n [startMaxX, gapLineY],\n [endMinX, gapLineY],\n ],\n },\n );\n }\n break;\n }\n case \"side_top\": {\n if (horizontalGapIntersection) {\n const gapLineX =\n (horizontalGapIntersection[0] + horizontalGapIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, maxY],\n [gapLineX, startMinY],\n ],\n },\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, startMaxY],\n [gapLineX, endMinY],\n ],\n },\n );\n }\n break;\n }\n case \"side_bottom\": {\n if (horizontalGapIntersection) {\n const gapLineX =\n (horizontalGapIntersection[0] + horizontalGapIntersection[1]) / 2;\n\n gapSnapLines.push(\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, startMaxY],\n [gapLineX, endMinY],\n ],\n },\n {\n type: \"gap\",\n direction: \"vertical\",\n points: [\n [gapLineX, endMaxY],\n [gapLineX, minY],\n ],\n },\n );\n }\n break;\n }\n }\n }\n\n return dedupeGapSnapLines(\n gapSnapLines.map((gapSnapLine) => {\n return {\n ...gapSnapLine,\n points: gapSnapLine.points.map(\n (point) => [round(point[0]), round(point[1])] as Point,\n ) as PointPair,\n };\n }),\n );\n};\n\nexport const snapResizingElements = (\n // use the latest elements to create snap lines\n selectedElements: ExcalidrawElement[],\n // while using the original elements to appy dragOffset to calculate snaps\n selectedOriginalElements: ExcalidrawElement[],\n appState: AppState,\n event: KeyboardModifiersObject,\n dragOffset: Vector2D,\n transformHandle: MaybeTransformHandleType,\n) => {\n if (\n !isSnappingEnabled({ event, selectedElements, appState }) ||\n selectedElements.length === 0 ||\n (selectedElements.length === 1 &&\n !areRoughlyEqual(selectedElements[0].angle, 0))\n ) {\n return {\n snapOffset: { x: 0, y: 0 },\n snapLines: [],\n };\n }\n\n let [minX, minY, maxX, maxY] = getCommonBounds(selectedOriginalElements);\n\n if (transformHandle) {\n if (transformHandle.includes(\"e\")) {\n maxX += dragOffset.x;\n } else if (transformHandle.includes(\"w\")) {\n minX += dragOffset.x;\n }\n\n if (transformHandle.includes(\"n\")) {\n minY += dragOffset.y;\n } else if (transformHandle.includes(\"s\")) {\n maxY += dragOffset.y;\n }\n }\n\n const selectionSnapPoints: Point[] = [];\n\n if (transformHandle) {\n switch (transformHandle) {\n case \"e\": {\n selectionSnapPoints.push([maxX, minY], [maxX, maxY]);\n break;\n }\n case \"w\": {\n selectionSnapPoints.push([minX, minY], [minX, maxY]);\n break;\n }\n case \"n\": {\n selectionSnapPoints.push([minX, minY], [maxX, minY]);\n break;\n }\n case \"s\": {\n selectionSnapPoints.push([minX, maxY], [maxX, maxY]);\n break;\n }\n case \"ne\": {\n selectionSnapPoints.push([maxX, minY]);\n break;\n }\n case \"nw\": {\n selectionSnapPoints.push([minX, minY]);\n break;\n }\n case \"se\": {\n selectionSnapPoints.push([maxX, maxY]);\n break;\n }\n case \"sw\": {\n selectionSnapPoints.push([minX, maxY]);\n break;\n }\n }\n }\n\n const snapDistance = getSnapDistance(appState.zoom.value);\n\n const minOffset = {\n x: snapDistance,\n y: snapDistance,\n };\n\n const nearestSnapsX: Snaps = [];\n const nearestSnapsY: Snaps = [];\n\n getPointSnaps(\n selectedOriginalElements,\n selectionSnapPoints,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n const snapOffset = {\n x: nearestSnapsX[0]?.offset ?? 0,\n y: nearestSnapsY[0]?.offset ?? 0,\n };\n\n // again, once snap offset is calculated\n // reset to recompute for creating snap lines to be rendered\n minOffset.x = 0;\n minOffset.y = 0;\n nearestSnapsX.length = 0;\n nearestSnapsY.length = 0;\n\n const [x1, y1, x2, y2] = getCommonBounds(selectedElements).map((bound) =>\n round(bound),\n );\n\n const corners: Point[] = [\n [x1, y1],\n [x1, y2],\n [x2, y1],\n [x2, y2],\n ];\n\n getPointSnaps(\n selectedElements,\n corners,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n const pointSnapLines = createPointSnapLines(nearestSnapsX, nearestSnapsY);\n\n return {\n snapOffset,\n snapLines: pointSnapLines,\n };\n};\n\nexport const snapNewElement = (\n draggingElement: ExcalidrawElement,\n appState: AppState,\n event: KeyboardModifiersObject,\n origin: Vector2D,\n dragOffset: Vector2D,\n elementsMap: ElementsMap,\n) => {\n if (\n !isSnappingEnabled({ event, selectedElements: [draggingElement], appState })\n ) {\n return {\n snapOffset: { x: 0, y: 0 },\n snapLines: [],\n };\n }\n\n const selectionSnapPoints: Point[] = [\n [origin.x + dragOffset.x, origin.y + dragOffset.y],\n ];\n\n const snapDistance = getSnapDistance(appState.zoom.value);\n\n const minOffset = {\n x: snapDistance,\n y: snapDistance,\n };\n\n const nearestSnapsX: Snaps = [];\n const nearestSnapsY: Snaps = [];\n\n getPointSnaps(\n [draggingElement],\n selectionSnapPoints,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n const snapOffset = {\n x: nearestSnapsX[0]?.offset ?? 0,\n y: nearestSnapsY[0]?.offset ?? 0,\n };\n\n minOffset.x = 0;\n minOffset.y = 0;\n nearestSnapsX.length = 0;\n nearestSnapsY.length = 0;\n\n const corners = getElementsCorners([draggingElement], elementsMap, {\n boundingBoxCorners: true,\n omitCenter: true,\n });\n\n getPointSnaps(\n [draggingElement],\n corners,\n appState,\n event,\n nearestSnapsX,\n nearestSnapsY,\n minOffset,\n );\n\n const pointSnapLines = createPointSnapLines(nearestSnapsX, nearestSnapsY);\n\n return {\n snapOffset,\n snapLines: pointSnapLines,\n };\n};\n\nexport const getSnapLinesAtPointer = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n pointer: Vector2D,\n event: KeyboardModifiersObject,\n elementsMap: ElementsMap,\n) => {\n if (!isSnappingEnabled({ event, selectedElements: [], appState })) {\n return {\n originOffset: { x: 0, y: 0 },\n snapLines: [],\n };\n }\n\n const referenceElements = getVisibleAndNonSelectedElements(\n elements,\n [],\n appState,\n elementsMap,\n );\n\n const snapDistance = getSnapDistance(appState.zoom.value);\n\n const minOffset = {\n x: snapDistance,\n y: snapDistance,\n };\n\n const horizontalSnapLines: PointerSnapLine[] = [];\n const verticalSnapLines: PointerSnapLine[] = [];\n\n for (const referenceElement of referenceElements) {\n const corners = getElementsCorners([referenceElement], elementsMap);\n\n for (const corner of corners) {\n const offsetX = corner[0] - pointer.x;\n\n if (Math.abs(offsetX) <= Math.abs(minOffset.x)) {\n if (Math.abs(offsetX) < Math.abs(minOffset.x)) {\n verticalSnapLines.length = 0;\n }\n\n verticalSnapLines.push({\n type: \"pointer\",\n points: [corner, [corner[0], pointer.y]],\n direction: \"vertical\",\n });\n\n minOffset.x = offsetX;\n }\n\n const offsetY = corner[1] - pointer.y;\n\n if (Math.abs(offsetY) <= Math.abs(minOffset.y)) {\n if (Math.abs(offsetY) < Math.abs(minOffset.y)) {\n horizontalSnapLines.length = 0;\n }\n\n horizontalSnapLines.push({\n type: \"pointer\",\n points: [corner, [pointer.x, corner[1]]],\n direction: \"horizontal\",\n });\n\n minOffset.y = offsetY;\n }\n }\n }\n\n return {\n originOffset: {\n x:\n verticalSnapLines.length > 0\n ? verticalSnapLines[0].points[0][0] - pointer.x\n : 0,\n y:\n horizontalSnapLines.length > 0\n ? horizontalSnapLines[0].points[0][1] - pointer.y\n : 0,\n },\n snapLines: [...verticalSnapLines, ...horizontalSnapLines],\n };\n};\n\nexport const isActiveToolNonLinearSnappable = (\n activeToolType: AppState[\"activeTool\"][\"type\"],\n) => {\n return (\n activeToolType === TOOL_TYPE.rectangle ||\n activeToolType === TOOL_TYPE.ellipse ||\n activeToolType === TOOL_TYPE.diamond ||\n activeToolType === TOOL_TYPE.frame ||\n activeToolType === TOOL_TYPE.magicframe ||\n activeToolType === TOOL_TYPE.image\n );\n};\n","import Trans from \"./Trans\";\n\nconst BraveMeasureTextError = () => {\n return (\n
    \n

    \n {el}}\n />\n

    \n

    \n {el}}\n />\n

    \n

    \n (\n \n {el}\n \n )}\n />\n

    \n

    \n (\n \n {el}\n \n )}\n discordLink={(el) => {el}.}\n />\n

    \n
    \n );\n};\n\nexport default BraveMeasureTextError;\n","/**\n * @param func handler taking at most single parameter (event).\n */\n\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { version as ReactVersion } from \"react\";\nimport { throttleRAF } from \"./utils\";\n\nexport const withBatchedUpdates = <\n TFunction extends ((event: any) => void) | (() => void),\n>(\n func: Parameters[\"length\"] extends 0 | 1 ? TFunction : never,\n) =>\n ((event) => {\n unstable_batchedUpdates(func as TFunction, event);\n }) as TFunction;\n\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nexport const withBatchedUpdatesThrottled = <\n TFunction extends ((event: any) => void) | (() => void),\n>(\n func: Parameters[\"length\"] extends 0 | 1 ? TFunction : never,\n) => {\n // @ts-ignore\n return throttleRAF>(((event) => {\n unstable_batchedUpdates(func, event);\n }) as TFunction);\n};\n\nexport const isRenderThrottlingEnabled = (() => {\n // we don't want to throttle in react < 18 because of #5439 and it was\n // getting more complex to maintain the fix\n let IS_REACT_18_AND_UP: boolean;\n try {\n const version = ReactVersion.split(\".\");\n IS_REACT_18_AND_UP = Number(version[0]) > 17;\n } catch {\n IS_REACT_18_AND_UP = false;\n }\n\n let hasWarned = false;\n\n return () => {\n if (window.EXCALIDRAW_THROTTLE_RENDER === true) {\n if (!IS_REACT_18_AND_UP) {\n if (!hasWarned) {\n hasWarned = true;\n console.warn(\n \"Excalidraw: render throttling is disabled on React versions < 18.\",\n );\n }\n return false;\n }\n return true;\n }\n return false;\n };\n})();\n","import { PointSnapLine, PointerSnapLine } from \"../snapping\";\nimport { InteractiveCanvasAppState, Point } from \"../types\";\n\nconst SNAP_COLOR_LIGHT = \"#ff6b6b\";\nconst SNAP_COLOR_DARK = \"#ff0000\";\nconst SNAP_WIDTH = 1;\nconst SNAP_CROSS_SIZE = 2;\n\nexport const renderSnaps = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n) => {\n if (!appState.snapLines.length) {\n return;\n }\n\n // in dark mode, we need to adjust the color to account for color inversion.\n // Don't change if zen mode, because we draw only crosses, we want the\n // colors to be more visible\n const snapColor =\n appState.theme === \"light\" || appState.zenModeEnabled\n ? SNAP_COLOR_LIGHT\n : SNAP_COLOR_DARK;\n // in zen mode make the cross more visible since we don't draw the lines\n const snapWidth =\n (appState.zenModeEnabled ? SNAP_WIDTH * 1.5 : SNAP_WIDTH) /\n appState.zoom.value;\n\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n\n for (const snapLine of appState.snapLines) {\n if (snapLine.type === \"pointer\") {\n context.lineWidth = snapWidth;\n context.strokeStyle = snapColor;\n\n drawPointerSnapLine(snapLine, context, appState);\n } else if (snapLine.type === \"gap\") {\n context.lineWidth = snapWidth;\n context.strokeStyle = snapColor;\n\n drawGapLine(\n snapLine.points[0],\n snapLine.points[1],\n snapLine.direction,\n appState,\n context,\n );\n } else if (snapLine.type === \"points\") {\n context.lineWidth = snapWidth;\n context.strokeStyle = snapColor;\n drawPointsSnapLine(snapLine, context, appState);\n }\n }\n\n context.restore();\n};\n\nconst drawPointsSnapLine = (\n pointSnapLine: PointSnapLine,\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n) => {\n if (!appState.zenModeEnabled) {\n const firstPoint = pointSnapLine.points[0];\n const lastPoint = pointSnapLine.points[pointSnapLine.points.length - 1];\n\n drawLine(firstPoint, lastPoint, context);\n }\n\n for (const point of pointSnapLine.points) {\n drawCross(point, appState, context);\n }\n};\n\nconst drawPointerSnapLine = (\n pointerSnapLine: PointerSnapLine,\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n) => {\n drawCross(pointerSnapLine.points[0], appState, context);\n if (!appState.zenModeEnabled) {\n drawLine(pointerSnapLine.points[0], pointerSnapLine.points[1], context);\n }\n};\n\nconst drawCross = (\n [x, y]: Point,\n appState: InteractiveCanvasAppState,\n context: CanvasRenderingContext2D,\n) => {\n context.save();\n const size =\n (appState.zenModeEnabled ? SNAP_CROSS_SIZE * 1.5 : SNAP_CROSS_SIZE) /\n appState.zoom.value;\n context.beginPath();\n\n context.moveTo(x - size, y - size);\n context.lineTo(x + size, y + size);\n\n context.moveTo(x + size, y - size);\n context.lineTo(x - size, y + size);\n\n context.stroke();\n context.restore();\n};\n\nconst drawLine = (\n from: Point,\n to: Point,\n context: CanvasRenderingContext2D,\n) => {\n context.beginPath();\n context.lineTo(...from);\n context.lineTo(...to);\n context.stroke();\n};\n\nconst drawGapLine = (\n from: Point,\n to: Point,\n direction: \"horizontal\" | \"vertical\",\n appState: InteractiveCanvasAppState,\n context: CanvasRenderingContext2D,\n) => {\n // a horizontal gap snap line\n // |–––––––||–––––––|\n // ^ ^ ^ ^\n // \\ \\ \\ \\\n // (1) (2) (3) (4)\n\n const FULL = 8 / appState.zoom.value;\n const HALF = FULL / 2;\n const QUARTER = FULL / 4;\n\n if (direction === \"horizontal\") {\n const halfPoint = [(from[0] + to[0]) / 2, from[1]];\n // (1)\n if (!appState.zenModeEnabled) {\n drawLine([from[0], from[1] - FULL], [from[0], from[1] + FULL], context);\n }\n\n // (3)\n drawLine(\n [halfPoint[0] - QUARTER, halfPoint[1] - HALF],\n [halfPoint[0] - QUARTER, halfPoint[1] + HALF],\n context,\n );\n drawLine(\n [halfPoint[0] + QUARTER, halfPoint[1] - HALF],\n [halfPoint[0] + QUARTER, halfPoint[1] + HALF],\n context,\n );\n\n if (!appState.zenModeEnabled) {\n // (4)\n drawLine([to[0], to[1] - FULL], [to[0], to[1] + FULL], context);\n\n // (2)\n drawLine(from, to, context);\n }\n } else {\n const halfPoint = [from[0], (from[1] + to[1]) / 2];\n // (1)\n if (!appState.zenModeEnabled) {\n drawLine([from[0] - FULL, from[1]], [from[0] + FULL, from[1]], context);\n }\n\n // (3)\n drawLine(\n [halfPoint[0] - HALF, halfPoint[1] - QUARTER],\n [halfPoint[0] + HALF, halfPoint[1] - QUARTER],\n context,\n );\n drawLine(\n [halfPoint[0] - HALF, halfPoint[1] + QUARTER],\n [halfPoint[0] + HALF, halfPoint[1] + QUARTER],\n context,\n );\n\n if (!appState.zenModeEnabled) {\n // (4)\n drawLine([to[0] - FULL, to[1]], [to[0] + FULL, to[1]], context);\n\n // (2)\n drawLine(from, to, context);\n }\n }\n};\n","import {\n getElementAbsoluteCoords,\n OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,\n getTransformHandlesFromCoords,\n getTransformHandles,\n getCommonBounds,\n} from \"../element\";\n\nimport { roundRect } from \"../renderer/roundRect\";\n\nimport {\n getScrollBars,\n SCROLLBAR_COLOR,\n SCROLLBAR_WIDTH,\n} from \"../scene/scrollbars\";\n\nimport { renderSelectionElement } from \"../renderer/renderElement\";\nimport { getClientColor, renderRemoteCursors } from \"../clients\";\nimport {\n isSelectedViaGroup,\n getSelectedGroupIds,\n getElementsInGroup,\n selectGroupsFromGivenElements,\n} from \"../groups\";\nimport {\n OMIT_SIDES_FOR_FRAME,\n shouldShowBoundingBox,\n TransformHandles,\n TransformHandleType,\n} from \"../element/transformHandles\";\nimport { arrayToMap, throttleRAF } from \"../utils\";\nimport { InteractiveCanvasAppState, Point } from \"../types\";\nimport { DEFAULT_TRANSFORM_HANDLE_SPACING, FRAME_STYLE } from \"../constants\";\n\nimport { renderSnaps } from \"../renderer/renderSnaps\";\n\nimport { maxBindingGap } from \"../element/collision\";\nimport { SuggestedBinding, SuggestedPointBinding } from \"../element/binding\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport {\n bootstrapCanvas,\n fillCircle,\n getNormalizedCanvasDimensions,\n} from \"./helpers\";\nimport oc from \"open-color\";\nimport { isFrameLikeElement, isLinearElement } from \"../element/typeChecks\";\nimport {\n ElementsMap,\n ExcalidrawBindableElement,\n ExcalidrawElement,\n ExcalidrawFrameLikeElement,\n ExcalidrawLinearElement,\n GroupId,\n NonDeleted,\n} from \"../element/types\";\nimport {\n InteractiveCanvasRenderConfig,\n InteractiveSceneRenderConfig,\n RenderableElementsMap,\n} from \"../scene/types\";\n\nconst renderLinearElementPointHighlight = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n elementsMap: ElementsMap,\n) => {\n const { elementId, hoverPointIndex } = appState.selectedLinearElement!;\n if (\n appState.editingLinearElement?.selectedPointsIndices?.includes(\n hoverPointIndex,\n )\n ) {\n return;\n }\n const element = LinearElementEditor.getElement(elementId, elementsMap);\n\n if (!element) {\n return;\n }\n const point = LinearElementEditor.getPointAtIndexGlobalCoordinates(\n element,\n hoverPointIndex,\n elementsMap,\n );\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n\n highlightPoint(point, context, appState);\n context.restore();\n};\n\nconst highlightPoint = (\n point: Point,\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n) => {\n context.fillStyle = \"rgba(105, 101, 219, 0.4)\";\n\n fillCircle(\n context,\n point[0],\n point[1],\n LinearElementEditor.POINT_HANDLE_SIZE / appState.zoom.value,\n false,\n );\n};\n\nconst strokeRectWithRotation = (\n context: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number,\n cx: number,\n cy: number,\n angle: number,\n fill: boolean = false,\n /** should account for zoom */\n radius: number = 0,\n) => {\n context.save();\n context.translate(cx, cy);\n context.rotate(angle);\n if (fill) {\n context.fillRect(x - cx, y - cy, width, height);\n }\n if (radius && context.roundRect) {\n context.beginPath();\n context.roundRect(x - cx, y - cy, width, height, radius);\n context.stroke();\n context.closePath();\n } else {\n context.strokeRect(x - cx, y - cy, width, height);\n }\n context.restore();\n};\n\nconst strokeDiamondWithRotation = (\n context: CanvasRenderingContext2D,\n width: number,\n height: number,\n cx: number,\n cy: number,\n angle: number,\n) => {\n context.save();\n context.translate(cx, cy);\n context.rotate(angle);\n context.beginPath();\n context.moveTo(0, height / 2);\n context.lineTo(width / 2, 0);\n context.lineTo(0, -height / 2);\n context.lineTo(-width / 2, 0);\n context.closePath();\n context.stroke();\n context.restore();\n};\n\nconst renderSingleLinearPoint = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n point: Point,\n radius: number,\n isSelected: boolean,\n isPhantomPoint = false,\n) => {\n context.strokeStyle = \"#5e5ad8\";\n context.setLineDash([]);\n context.fillStyle = \"rgba(255, 255, 255, 0.9)\";\n if (isSelected) {\n context.fillStyle = \"rgba(134, 131, 226, 0.9)\";\n } else if (isPhantomPoint) {\n context.fillStyle = \"rgba(177, 151, 252, 0.7)\";\n }\n\n fillCircle(\n context,\n point[0],\n point[1],\n radius / appState.zoom.value,\n !isPhantomPoint,\n );\n};\n\nconst strokeEllipseWithRotation = (\n context: CanvasRenderingContext2D,\n width: number,\n height: number,\n cx: number,\n cy: number,\n angle: number,\n) => {\n context.beginPath();\n context.ellipse(cx, cy, width / 2, height / 2, angle, 0, Math.PI * 2);\n context.stroke();\n};\n\nconst renderBindingHighlightForBindableElement = (\n context: CanvasRenderingContext2D,\n element: ExcalidrawBindableElement,\n elementsMap: ElementsMap,\n) => {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);\n const width = x2 - x1;\n const height = y2 - y1;\n const threshold = maxBindingGap(element, width, height);\n\n // So that we don't overlap the element itself\n const strokeOffset = 4;\n context.strokeStyle = \"rgba(0,0,0,.05)\";\n context.lineWidth = threshold - strokeOffset;\n const padding = strokeOffset / 2 + threshold / 2;\n\n switch (element.type) {\n case \"rectangle\":\n case \"text\":\n case \"image\":\n case \"iframe\":\n case \"embeddable\":\n case \"frame\":\n case \"magicframe\":\n strokeRectWithRotation(\n context,\n x1 - padding,\n y1 - padding,\n width + padding * 2,\n height + padding * 2,\n x1 + width / 2,\n y1 + height / 2,\n element.angle,\n );\n break;\n case \"diamond\":\n const side = Math.hypot(width, height);\n const wPadding = (padding * side) / height;\n const hPadding = (padding * side) / width;\n strokeDiamondWithRotation(\n context,\n width + wPadding * 2,\n height + hPadding * 2,\n x1 + width / 2,\n y1 + height / 2,\n element.angle,\n );\n break;\n case \"ellipse\":\n strokeEllipseWithRotation(\n context,\n width + padding * 2,\n height + padding * 2,\n x1 + width / 2,\n y1 + height / 2,\n element.angle,\n );\n break;\n }\n};\n\nconst renderBindingHighlightForSuggestedPointBinding = (\n context: CanvasRenderingContext2D,\n suggestedBinding: SuggestedPointBinding,\n elementsMap: ElementsMap,\n) => {\n const [element, startOrEnd, bindableElement] = suggestedBinding;\n\n const threshold = maxBindingGap(\n bindableElement,\n bindableElement.width,\n bindableElement.height,\n );\n\n context.strokeStyle = \"rgba(0,0,0,0)\";\n context.fillStyle = \"rgba(0,0,0,.05)\";\n\n const pointIndices =\n startOrEnd === \"both\" ? [0, -1] : startOrEnd === \"start\" ? [0] : [-1];\n pointIndices.forEach((index) => {\n const [x, y] = LinearElementEditor.getPointAtIndexGlobalCoordinates(\n element,\n index,\n elementsMap,\n );\n fillCircle(context, x, y, threshold);\n });\n};\n\nconst renderSelectionBorder = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n elementProperties: {\n angle: number;\n elementX1: number;\n elementY1: number;\n elementX2: number;\n elementY2: number;\n selectionColors: string[];\n dashed?: boolean;\n cx: number;\n cy: number;\n activeEmbeddable: boolean;\n },\n padding = DEFAULT_TRANSFORM_HANDLE_SPACING * 2,\n) => {\n const {\n angle,\n elementX1,\n elementY1,\n elementX2,\n elementY2,\n selectionColors,\n cx,\n cy,\n dashed,\n activeEmbeddable,\n } = elementProperties;\n const elementWidth = elementX2 - elementX1;\n const elementHeight = elementY2 - elementY1;\n\n const linePadding = padding / appState.zoom.value;\n const lineWidth = 8 / appState.zoom.value;\n const spaceWidth = 4 / appState.zoom.value;\n\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n context.lineWidth = (activeEmbeddable ? 4 : 1) / appState.zoom.value;\n\n const count = selectionColors.length;\n for (let index = 0; index < count; ++index) {\n context.strokeStyle = selectionColors[index];\n if (dashed) {\n context.setLineDash([\n lineWidth,\n spaceWidth + (lineWidth + spaceWidth) * (count - 1),\n ]);\n }\n context.lineDashOffset = (lineWidth + spaceWidth) * index;\n strokeRectWithRotation(\n context,\n elementX1 - linePadding,\n elementY1 - linePadding,\n elementWidth + linePadding * 2,\n elementHeight + linePadding * 2,\n cx,\n cy,\n angle,\n );\n }\n context.restore();\n};\n\nconst renderBindingHighlight = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n suggestedBinding: SuggestedBinding,\n elementsMap: ElementsMap,\n) => {\n const renderHighlight = Array.isArray(suggestedBinding)\n ? renderBindingHighlightForSuggestedPointBinding\n : renderBindingHighlightForBindableElement;\n\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n renderHighlight(context, suggestedBinding as any, elementsMap);\n\n context.restore();\n};\n\nconst renderFrameHighlight = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n frame: NonDeleted,\n elementsMap: ElementsMap,\n) => {\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(frame, elementsMap);\n const width = x2 - x1;\n const height = y2 - y1;\n\n context.strokeStyle = \"rgb(0,118,255)\";\n context.lineWidth = FRAME_STYLE.strokeWidth / appState.zoom.value;\n\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n strokeRectWithRotation(\n context,\n x1,\n y1,\n width,\n height,\n x1 + width / 2,\n y1 + height / 2,\n frame.angle,\n false,\n FRAME_STYLE.radius / appState.zoom.value,\n );\n context.restore();\n};\n\nconst renderElementsBoxHighlight = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n elements: NonDeleted[],\n) => {\n const individualElements = elements.filter(\n (element) => element.groupIds.length === 0,\n );\n\n const elementsInGroups = elements.filter(\n (element) => element.groupIds.length > 0,\n );\n\n const getSelectionFromElements = (elements: ExcalidrawElement[]) => {\n const [elementX1, elementY1, elementX2, elementY2] =\n getCommonBounds(elements);\n return {\n angle: 0,\n elementX1,\n elementX2,\n elementY1,\n elementY2,\n selectionColors: [\"rgb(0,118,255)\"],\n dashed: false,\n cx: elementX1 + (elementX2 - elementX1) / 2,\n cy: elementY1 + (elementY2 - elementY1) / 2,\n activeEmbeddable: false,\n };\n };\n\n const getSelectionForGroupId = (groupId: GroupId) => {\n const groupElements = getElementsInGroup(elements, groupId);\n return getSelectionFromElements(groupElements);\n };\n\n Object.entries(selectGroupsFromGivenElements(elementsInGroups, appState))\n .filter(([id, isSelected]) => isSelected)\n .map(([id, isSelected]) => id)\n .map((groupId) => getSelectionForGroupId(groupId))\n .concat(\n individualElements.map((element) => getSelectionFromElements([element])),\n )\n .forEach((selection) =>\n renderSelectionBorder(context, appState, selection),\n );\n};\n\nconst renderLinearPointHandles = (\n context: CanvasRenderingContext2D,\n appState: InteractiveCanvasAppState,\n element: NonDeleted,\n elementsMap: RenderableElementsMap,\n) => {\n if (!appState.selectedLinearElement) {\n return;\n }\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n context.lineWidth = 1 / appState.zoom.value;\n const points = LinearElementEditor.getPointsGlobalCoordinates(\n element,\n elementsMap,\n );\n\n const { POINT_HANDLE_SIZE } = LinearElementEditor;\n const radius = appState.editingLinearElement\n ? POINT_HANDLE_SIZE\n : POINT_HANDLE_SIZE / 2;\n points.forEach((point, idx) => {\n const isSelected =\n !!appState.editingLinearElement?.selectedPointsIndices?.includes(idx);\n\n renderSingleLinearPoint(context, appState, point, radius, isSelected);\n });\n\n //Rendering segment mid points\n const midPoints = LinearElementEditor.getEditorMidPoints(\n element,\n elementsMap,\n appState,\n ).filter((midPoint) => midPoint !== null) as Point[];\n\n midPoints.forEach((segmentMidPoint) => {\n if (\n appState?.selectedLinearElement?.segmentMidPointHoveredCoords &&\n LinearElementEditor.arePointsEqual(\n segmentMidPoint,\n appState.selectedLinearElement.segmentMidPointHoveredCoords,\n )\n ) {\n // The order of renderingSingleLinearPoint and highLight points is different\n // inside vs outside editor as hover states are different,\n // in editor when hovered the original point is not visible as hover state fully covers it whereas outside the\n // editor original point is visible and hover state is just an outer circle.\n if (appState.editingLinearElement) {\n renderSingleLinearPoint(\n context,\n appState,\n segmentMidPoint,\n radius,\n false,\n );\n highlightPoint(segmentMidPoint, context, appState);\n } else {\n highlightPoint(segmentMidPoint, context, appState);\n renderSingleLinearPoint(\n context,\n appState,\n segmentMidPoint,\n radius,\n false,\n );\n }\n } else if (appState.editingLinearElement || points.length === 2) {\n renderSingleLinearPoint(\n context,\n appState,\n segmentMidPoint,\n POINT_HANDLE_SIZE / 2,\n false,\n true,\n );\n }\n });\n\n context.restore();\n};\n\nconst renderTransformHandles = (\n context: CanvasRenderingContext2D,\n renderConfig: InteractiveCanvasRenderConfig,\n appState: InteractiveCanvasAppState,\n transformHandles: TransformHandles,\n angle: number,\n): void => {\n Object.keys(transformHandles).forEach((key) => {\n const transformHandle = transformHandles[key as TransformHandleType];\n if (transformHandle !== undefined) {\n const [x, y, width, height] = transformHandle;\n\n context.save();\n context.lineWidth = 1 / appState.zoom.value;\n if (renderConfig.selectionColor) {\n context.strokeStyle = renderConfig.selectionColor;\n }\n if (key === \"rotation\") {\n fillCircle(context, x + width / 2, y + height / 2, width / 2);\n // prefer round corners if roundRect API is available\n } else if (context.roundRect) {\n context.beginPath();\n context.roundRect(x, y, width, height, 2 / appState.zoom.value);\n context.fill();\n context.stroke();\n } else {\n strokeRectWithRotation(\n context,\n x,\n y,\n width,\n height,\n x + width / 2,\n y + height / 2,\n angle,\n true, // fill before stroke\n );\n }\n context.restore();\n }\n });\n};\n\nconst _renderInteractiveScene = ({\n canvas,\n elementsMap,\n visibleElements,\n selectedElements,\n scale,\n appState,\n renderConfig,\n}: InteractiveSceneRenderConfig) => {\n if (canvas === null) {\n return { atLeastOneVisibleElement: false, elementsMap };\n }\n\n const [normalizedWidth, normalizedHeight] = getNormalizedCanvasDimensions(\n canvas,\n scale,\n );\n\n const context = bootstrapCanvas({\n canvas,\n scale,\n normalizedWidth,\n normalizedHeight,\n });\n\n // Apply zoom\n context.save();\n context.scale(appState.zoom.value, appState.zoom.value);\n\n let editingLinearElement: NonDeleted | undefined =\n undefined;\n\n visibleElements.forEach((element) => {\n // Getting the element using LinearElementEditor during collab mismatches version - being one head of visible elements due to\n // ShapeCache returns empty hence making sure that we get the\n // correct element from visible elements\n if (appState.editingLinearElement?.elementId === element.id) {\n if (element) {\n editingLinearElement = element as NonDeleted;\n }\n }\n });\n\n if (editingLinearElement) {\n renderLinearPointHandles(\n context,\n appState,\n editingLinearElement,\n elementsMap,\n );\n }\n\n // Paint selection element\n if (appState.selectionElement) {\n try {\n renderSelectionElement(appState.selectionElement, context, appState);\n } catch (error: any) {\n console.error(error);\n }\n }\n\n if (appState.isBindingEnabled) {\n appState.suggestedBindings\n .filter((binding) => binding != null)\n .forEach((suggestedBinding) => {\n renderBindingHighlight(\n context,\n appState,\n suggestedBinding!,\n elementsMap,\n );\n });\n }\n\n if (appState.frameToHighlight) {\n renderFrameHighlight(\n context,\n appState,\n appState.frameToHighlight,\n elementsMap,\n );\n }\n\n if (appState.elementsToHighlight) {\n renderElementsBoxHighlight(context, appState, appState.elementsToHighlight);\n }\n\n const isFrameSelected = selectedElements.some((element) =>\n isFrameLikeElement(element),\n );\n\n // Getting the element using LinearElementEditor during collab mismatches version - being one head of visible elements due to\n // ShapeCache returns empty hence making sure that we get the\n // correct element from visible elements\n if (\n selectedElements.length === 1 &&\n appState.editingLinearElement?.elementId === selectedElements[0].id\n ) {\n renderLinearPointHandles(\n context,\n appState,\n selectedElements[0] as NonDeleted,\n elementsMap,\n );\n }\n\n if (\n appState.selectedLinearElement &&\n appState.selectedLinearElement.hoverPointIndex >= 0\n ) {\n renderLinearElementPointHighlight(context, appState, elementsMap);\n }\n // Paint selected elements\n if (!appState.multiElement && !appState.editingLinearElement) {\n const showBoundingBox = shouldShowBoundingBox(selectedElements, appState);\n\n const isSingleLinearElementSelected =\n selectedElements.length === 1 && isLinearElement(selectedElements[0]);\n // render selected linear element points\n if (\n isSingleLinearElementSelected &&\n appState.selectedLinearElement?.elementId === selectedElements[0].id &&\n !selectedElements[0].locked\n ) {\n renderLinearPointHandles(\n context,\n appState,\n selectedElements[0] as ExcalidrawLinearElement,\n elementsMap,\n );\n }\n const selectionColor = renderConfig.selectionColor || oc.black;\n\n if (showBoundingBox) {\n // Optimisation for finding quickly relevant element ids\n const locallySelectedIds = arrayToMap(selectedElements);\n\n const selections: {\n angle: number;\n elementX1: number;\n elementY1: number;\n elementX2: number;\n elementY2: number;\n selectionColors: string[];\n dashed?: boolean;\n cx: number;\n cy: number;\n activeEmbeddable: boolean;\n }[] = [];\n\n for (const element of elementsMap.values()) {\n const selectionColors = [];\n // local user\n if (\n locallySelectedIds.has(element.id) &&\n !isSelectedViaGroup(appState, element)\n ) {\n selectionColors.push(selectionColor);\n }\n // remote users\n const remoteClients = renderConfig.remoteSelectedElementIds.get(\n element.id,\n );\n if (remoteClients) {\n selectionColors.push(\n ...remoteClients.map((socketId) => {\n const background = getClientColor(\n socketId,\n appState.collaborators.get(socketId),\n );\n return background;\n }),\n );\n }\n\n if (selectionColors.length) {\n const [elementX1, elementY1, elementX2, elementY2, cx, cy] =\n getElementAbsoluteCoords(element, elementsMap, true);\n selections.push({\n angle: element.angle,\n elementX1,\n elementY1,\n elementX2,\n elementY2,\n selectionColors,\n dashed: !!remoteClients,\n cx,\n cy,\n activeEmbeddable:\n appState.activeEmbeddable?.element === element &&\n appState.activeEmbeddable.state === \"active\",\n });\n }\n }\n\n const addSelectionForGroupId = (groupId: GroupId) => {\n const groupElements = getElementsInGroup(elementsMap, groupId);\n const [elementX1, elementY1, elementX2, elementY2] =\n getCommonBounds(groupElements);\n selections.push({\n angle: 0,\n elementX1,\n elementX2,\n elementY1,\n elementY2,\n selectionColors: [oc.black],\n dashed: true,\n cx: elementX1 + (elementX2 - elementX1) / 2,\n cy: elementY1 + (elementY2 - elementY1) / 2,\n activeEmbeddable: false,\n });\n };\n\n for (const groupId of getSelectedGroupIds(appState)) {\n // TODO: support multiplayer selected group IDs\n addSelectionForGroupId(groupId);\n }\n\n if (appState.editingGroupId) {\n addSelectionForGroupId(appState.editingGroupId);\n }\n\n selections.forEach((selection) =>\n renderSelectionBorder(context, appState, selection),\n );\n }\n // Paint resize transformHandles\n context.save();\n context.translate(appState.scrollX, appState.scrollY);\n\n if (selectedElements.length === 1) {\n context.fillStyle = oc.white;\n const transformHandles = getTransformHandles(\n selectedElements[0],\n appState.zoom,\n elementsMap,\n \"mouse\", // when we render we don't know which pointer type so use mouse,\n );\n if (!appState.viewModeEnabled && showBoundingBox) {\n renderTransformHandles(\n context,\n renderConfig,\n appState,\n transformHandles,\n selectedElements[0].angle,\n );\n }\n } else if (selectedElements.length > 1 && !appState.isRotating) {\n const dashedLinePadding =\n (DEFAULT_TRANSFORM_HANDLE_SPACING * 2) / appState.zoom.value;\n context.fillStyle = oc.white;\n const [x1, y1, x2, y2] = getCommonBounds(selectedElements);\n const initialLineDash = context.getLineDash();\n context.setLineDash([2 / appState.zoom.value]);\n const lineWidth = context.lineWidth;\n context.lineWidth = 1 / appState.zoom.value;\n context.strokeStyle = selectionColor;\n strokeRectWithRotation(\n context,\n x1 - dashedLinePadding,\n y1 - dashedLinePadding,\n x2 - x1 + dashedLinePadding * 2,\n y2 - y1 + dashedLinePadding * 2,\n (x1 + x2) / 2,\n (y1 + y2) / 2,\n 0,\n );\n context.lineWidth = lineWidth;\n context.setLineDash(initialLineDash);\n const transformHandles = getTransformHandlesFromCoords(\n [x1, y1, x2, y2, (x1 + x2) / 2, (y1 + y2) / 2],\n 0,\n appState.zoom,\n \"mouse\",\n isFrameSelected\n ? OMIT_SIDES_FOR_FRAME\n : OMIT_SIDES_FOR_MULTIPLE_ELEMENTS,\n );\n if (selectedElements.some((element) => !element.locked)) {\n renderTransformHandles(\n context,\n renderConfig,\n appState,\n transformHandles,\n 0,\n );\n }\n }\n context.restore();\n }\n\n renderSnaps(context, appState);\n\n // Reset zoom\n context.restore();\n\n renderRemoteCursors({\n context,\n renderConfig,\n appState,\n normalizedWidth,\n normalizedHeight,\n });\n\n // Paint scrollbars\n let scrollBars;\n if (renderConfig.renderScrollbars) {\n scrollBars = getScrollBars(\n visibleElements,\n normalizedWidth,\n normalizedHeight,\n appState,\n );\n\n context.save();\n context.fillStyle = SCROLLBAR_COLOR;\n context.strokeStyle = \"rgba(255,255,255,0.8)\";\n [scrollBars.horizontal, scrollBars.vertical].forEach((scrollBar) => {\n if (scrollBar) {\n roundRect(\n context,\n scrollBar.x,\n scrollBar.y,\n scrollBar.width,\n scrollBar.height,\n SCROLLBAR_WIDTH / 2,\n );\n }\n });\n context.restore();\n }\n\n return {\n scrollBars,\n atLeastOneVisibleElement: visibleElements.length > 0,\n elementsMap,\n };\n};\n\n/** throttled to animation framerate */\nexport const renderInteractiveSceneThrottled = throttleRAF(\n (config: InteractiveSceneRenderConfig) => {\n const ret = _renderInteractiveScene(config);\n config.callback?.(ret);\n },\n { trailing: true },\n);\n\n/**\n * Interactive scene is the ui-canvas where we render bounding boxes, selections\n * and other ui stuff.\n */\nexport const renderInteractiveScene = <\n U extends typeof _renderInteractiveScene,\n T extends boolean = false,\n>(\n renderConfig: InteractiveSceneRenderConfig,\n throttle?: T,\n): T extends true ? void : ReturnType => {\n if (throttle) {\n renderInteractiveSceneThrottled(renderConfig);\n return undefined as T extends true ? void : ReturnType;\n }\n const ret = _renderInteractiveScene(renderConfig);\n renderConfig.callback(ret);\n return ret as T extends true ? void : ReturnType;\n};\n","import React, { useEffect, useRef } from \"react\";\nimport { isShallowEqual, sceneCoordsToViewportCoords } from \"../../utils\";\nimport { CURSOR_TYPE } from \"../../constants\";\nimport { t } from \"../../i18n\";\nimport type { DOMAttributes } from \"react\";\nimport type { AppState, InteractiveCanvasAppState } from \"../../types\";\nimport type {\n InteractiveCanvasRenderConfig,\n RenderableElementsMap,\n RenderInteractiveSceneCallback,\n} from \"../../scene/types\";\nimport type { NonDeletedExcalidrawElement } from \"../../element/types\";\nimport { isRenderThrottlingEnabled } from \"../../reactUtils\";\nimport { renderInteractiveScene } from \"../../renderer/interactiveScene\";\n\ntype InteractiveCanvasProps = {\n containerRef: React.RefObject;\n canvas: HTMLCanvasElement | null;\n elementsMap: RenderableElementsMap;\n visibleElements: readonly NonDeletedExcalidrawElement[];\n selectedElements: readonly NonDeletedExcalidrawElement[];\n versionNonce: number | undefined;\n selectionNonce: number | undefined;\n scale: number;\n appState: InteractiveCanvasAppState;\n renderInteractiveSceneCallback: (\n data: RenderInteractiveSceneCallback,\n ) => void;\n handleCanvasRef: (canvas: HTMLCanvasElement | null) => void;\n onContextMenu: Exclude<\n DOMAttributes[\"onContextMenu\"],\n undefined\n >;\n onPointerMove: Exclude<\n DOMAttributes[\"onPointerMove\"],\n undefined\n >;\n onPointerUp: Exclude<\n DOMAttributes[\"onPointerUp\"],\n undefined\n >;\n onPointerCancel: Exclude<\n DOMAttributes[\"onPointerCancel\"],\n undefined\n >;\n onTouchMove: Exclude<\n DOMAttributes[\"onTouchMove\"],\n undefined\n >;\n onPointerDown: Exclude<\n DOMAttributes[\"onPointerDown\"],\n undefined\n >;\n onDoubleClick: Exclude<\n DOMAttributes[\"onDoubleClick\"],\n undefined\n >;\n};\n\nconst InteractiveCanvas = (props: InteractiveCanvasProps) => {\n const isComponentMounted = useRef(false);\n\n useEffect(() => {\n if (!isComponentMounted.current) {\n isComponentMounted.current = true;\n return;\n }\n\n const remotePointerButton: InteractiveCanvasRenderConfig[\"remotePointerButton\"] =\n new Map();\n const remotePointerViewportCoords: InteractiveCanvasRenderConfig[\"remotePointerViewportCoords\"] =\n new Map();\n const remoteSelectedElementIds: InteractiveCanvasRenderConfig[\"remoteSelectedElementIds\"] =\n new Map();\n const remotePointerUsernames: InteractiveCanvasRenderConfig[\"remotePointerUsernames\"] =\n new Map();\n const remotePointerUserStates: InteractiveCanvasRenderConfig[\"remotePointerUserStates\"] =\n new Map();\n\n props.appState.collaborators.forEach((user, socketId) => {\n if (user.selectedElementIds) {\n for (const id of Object.keys(user.selectedElementIds)) {\n if (!remoteSelectedElementIds.has(id)) {\n remoteSelectedElementIds.set(id, []);\n }\n remoteSelectedElementIds.get(id)!.push(socketId);\n }\n }\n if (!user.pointer || user.pointer.renderCursor === false) {\n return;\n }\n if (user.username) {\n remotePointerUsernames.set(socketId, user.username);\n }\n if (user.userState) {\n remotePointerUserStates.set(socketId, user.userState);\n }\n remotePointerViewportCoords.set(\n socketId,\n sceneCoordsToViewportCoords(\n {\n sceneX: user.pointer.x,\n sceneY: user.pointer.y,\n },\n props.appState,\n ),\n );\n remotePointerButton.set(socketId, user.button);\n });\n\n const selectionColor =\n (props.containerRef?.current &&\n getComputedStyle(props.containerRef.current).getPropertyValue(\n \"--color-selection\",\n )) ||\n \"#6965db\";\n\n renderInteractiveScene(\n {\n canvas: props.canvas,\n elementsMap: props.elementsMap,\n visibleElements: props.visibleElements,\n selectedElements: props.selectedElements,\n scale: window.devicePixelRatio,\n appState: props.appState,\n renderConfig: {\n remotePointerViewportCoords,\n remotePointerButton,\n remoteSelectedElementIds,\n remotePointerUsernames,\n remotePointerUserStates,\n selectionColor,\n renderScrollbars: false,\n },\n callback: props.renderInteractiveSceneCallback,\n },\n isRenderThrottlingEnabled(),\n );\n });\n\n return (\n \n {t(\"labels.drawingCanvas\")}\n \n );\n};\n\nconst getRelevantAppStateProps = (\n appState: AppState,\n): InteractiveCanvasAppState => ({\n zoom: appState.zoom,\n scrollX: appState.scrollX,\n scrollY: appState.scrollY,\n width: appState.width,\n height: appState.height,\n viewModeEnabled: appState.viewModeEnabled,\n editingGroupId: appState.editingGroupId,\n editingLinearElement: appState.editingLinearElement,\n selectedElementIds: appState.selectedElementIds,\n frameToHighlight: appState.frameToHighlight,\n offsetLeft: appState.offsetLeft,\n offsetTop: appState.offsetTop,\n theme: appState.theme,\n pendingImageElementId: appState.pendingImageElementId,\n selectionElement: appState.selectionElement,\n selectedGroupIds: appState.selectedGroupIds,\n selectedLinearElement: appState.selectedLinearElement,\n multiElement: appState.multiElement,\n isBindingEnabled: appState.isBindingEnabled,\n suggestedBindings: appState.suggestedBindings,\n isRotating: appState.isRotating,\n elementsToHighlight: appState.elementsToHighlight,\n collaborators: appState.collaborators, // Necessary for collab. sessions\n activeEmbeddable: appState.activeEmbeddable,\n snapLines: appState.snapLines,\n zenModeEnabled: appState.zenModeEnabled,\n});\n\nconst areEqual = (\n prevProps: InteractiveCanvasProps,\n nextProps: InteractiveCanvasProps,\n) => {\n // This could be further optimised if needed, as we don't have to render interactive canvas on each scene mutation\n if (\n prevProps.selectionNonce !== nextProps.selectionNonce ||\n prevProps.versionNonce !== nextProps.versionNonce ||\n prevProps.scale !== nextProps.scale ||\n // we need to memoize on elementsMap because they may have renewed\n // even if versionNonce didn't change (e.g. we filter elements out based\n // on appState)\n prevProps.elementsMap !== nextProps.elementsMap ||\n prevProps.visibleElements !== nextProps.visibleElements ||\n prevProps.selectedElements !== nextProps.selectedElements\n ) {\n return false;\n }\n\n // Comparing the interactive appState for changes in case of some edge cases\n return isShallowEqual(\n // asserting AppState because we're being passed the whole AppState\n // but resolve to only the InteractiveCanvas-relevant props\n getRelevantAppStateProps(prevProps.appState as AppState),\n getRelevantAppStateProps(nextProps.appState as AppState),\n );\n};\n\nexport default React.memo(InteractiveCanvas, areEqual);\n","import React, { useEffect, useRef } from \"react\";\nimport { RoughCanvas } from \"roughjs/bin/canvas\";\nimport { renderStaticScene } from \"../../renderer/staticScene\";\nimport { isShallowEqual } from \"../../utils\";\nimport type { AppState, StaticCanvasAppState } from \"../../types\";\nimport type {\n RenderableElementsMap,\n StaticCanvasRenderConfig,\n} from \"../../scene/types\";\nimport type {\n NonDeletedExcalidrawElement,\n NonDeletedSceneElementsMap,\n} from \"../../element/types\";\nimport { isRenderThrottlingEnabled } from \"../../reactUtils\";\n\ntype StaticCanvasProps = {\n canvas: HTMLCanvasElement;\n rc: RoughCanvas;\n elementsMap: RenderableElementsMap;\n allElementsMap: NonDeletedSceneElementsMap;\n visibleElements: readonly NonDeletedExcalidrawElement[];\n versionNonce: number | undefined;\n selectionNonce: number | undefined;\n scale: number;\n appState: StaticCanvasAppState;\n renderConfig: StaticCanvasRenderConfig;\n};\n\nconst StaticCanvas = (props: StaticCanvasProps) => {\n const wrapperRef = useRef(null);\n const isComponentMounted = useRef(false);\n\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) {\n return;\n }\n\n const canvas = props.canvas;\n\n if (!isComponentMounted.current) {\n isComponentMounted.current = true;\n\n wrapper.replaceChildren(canvas);\n canvas.classList.add(\"excalidraw__canvas\", \"static\");\n }\n\n const widthString = `${props.appState.width}px`;\n const heightString = `${props.appState.height}px`;\n if (canvas.style.width !== widthString) {\n canvas.style.width = widthString;\n }\n if (canvas.style.height !== heightString) {\n canvas.style.height = heightString;\n }\n\n const scaledWidth = props.appState.width * props.scale;\n const scaledHeight = props.appState.height * props.scale;\n // setting width/height resets the canvas even if dimensions not changed,\n // which would cause flicker when we skip frame (due to throttling)\n if (canvas.width !== scaledWidth) {\n canvas.width = scaledWidth;\n }\n if (canvas.height !== scaledHeight) {\n canvas.height = scaledHeight;\n }\n\n renderStaticScene(\n {\n canvas,\n rc: props.rc,\n scale: props.scale,\n elementsMap: props.elementsMap,\n allElementsMap: props.allElementsMap,\n visibleElements: props.visibleElements,\n appState: props.appState,\n renderConfig: props.renderConfig,\n },\n isRenderThrottlingEnabled(),\n );\n });\n\n return
    ;\n};\n\nconst getRelevantAppStateProps = (\n appState: AppState,\n): StaticCanvasAppState => ({\n zoom: appState.zoom,\n scrollX: appState.scrollX,\n scrollY: appState.scrollY,\n width: appState.width,\n height: appState.height,\n viewModeEnabled: appState.viewModeEnabled,\n offsetLeft: appState.offsetLeft,\n offsetTop: appState.offsetTop,\n theme: appState.theme,\n pendingImageElementId: appState.pendingImageElementId,\n shouldCacheIgnoreZoom: appState.shouldCacheIgnoreZoom,\n viewBackgroundColor: appState.viewBackgroundColor,\n exportScale: appState.exportScale,\n selectedElementsAreBeingDragged: appState.selectedElementsAreBeingDragged,\n gridSize: appState.gridSize,\n frameRendering: appState.frameRendering,\n selectedElementIds: appState.selectedElementIds,\n frameToHighlight: appState.frameToHighlight,\n editingGroupId: appState.editingGroupId,\n});\n\nconst areEqual = (\n prevProps: StaticCanvasProps,\n nextProps: StaticCanvasProps,\n) => {\n if (\n prevProps.versionNonce !== nextProps.versionNonce ||\n prevProps.scale !== nextProps.scale ||\n // we need to memoize on elementsMap because they may have renewed\n // even if versionNonce didn't change (e.g. we filter elements out based\n // on appState)\n prevProps.elementsMap !== nextProps.elementsMap ||\n prevProps.visibleElements !== nextProps.visibleElements\n ) {\n return false;\n }\n\n return (\n isShallowEqual(\n // asserting AppState because we're being passed the whole AppState\n // but resolve to only the StaticCanvas-relevant props\n getRelevantAppStateProps(prevProps.appState as AppState),\n getRelevantAppStateProps(nextProps.appState as AppState),\n ) && isShallowEqual(prevProps.renderConfig, nextProps.renderConfig)\n );\n};\n\nexport default React.memo(StaticCanvas, areEqual);\n","import { isElementInViewport } from \"../element/sizeHelpers\";\nimport { isImageElement } from \"../element/typeChecks\";\nimport {\n NonDeletedElementsMap,\n NonDeletedExcalidrawElement,\n} from \"../element/types\";\nimport { renderInteractiveSceneThrottled } from \"../renderer/interactiveScene\";\nimport { renderStaticSceneThrottled } from \"../renderer/staticScene\";\n\nimport { AppState } from \"../types\";\nimport { memoize, toBrandedType } from \"../utils\";\nimport Scene from \"./Scene\";\nimport { RenderableElementsMap } from \"./types\";\n\nexport class Renderer {\n private scene: Scene;\n\n constructor(scene: Scene) {\n this.scene = scene;\n }\n\n public getRenderableElements = (() => {\n const getVisibleCanvasElements = ({\n elementsMap,\n zoom,\n offsetLeft,\n offsetTop,\n scrollX,\n scrollY,\n height,\n width,\n }: {\n elementsMap: NonDeletedElementsMap;\n zoom: AppState[\"zoom\"];\n offsetLeft: AppState[\"offsetLeft\"];\n offsetTop: AppState[\"offsetTop\"];\n scrollX: AppState[\"scrollX\"];\n scrollY: AppState[\"scrollY\"];\n height: AppState[\"height\"];\n width: AppState[\"width\"];\n }): readonly NonDeletedExcalidrawElement[] => {\n const visibleElements: NonDeletedExcalidrawElement[] = [];\n for (const element of elementsMap.values()) {\n if (\n isElementInViewport(\n element,\n width,\n height,\n {\n zoom,\n offsetLeft,\n offsetTop,\n scrollX,\n scrollY,\n },\n elementsMap,\n )\n ) {\n visibleElements.push(element);\n }\n }\n return visibleElements;\n };\n\n const getRenderableElements = ({\n elements,\n editingElement,\n pendingImageElementId,\n }: {\n elements: readonly NonDeletedExcalidrawElement[];\n editingElement: AppState[\"editingElement\"];\n pendingImageElementId: AppState[\"pendingImageElementId\"];\n }) => {\n const elementsMap = toBrandedType(new Map());\n\n for (const element of elements) {\n if (isImageElement(element)) {\n if (\n // => not placed on canvas yet (but in elements array)\n pendingImageElementId === element.id\n ) {\n continue;\n }\n }\n\n // we don't want to render text element that's being currently edited\n // (it's rendered on remote only)\n if (\n !editingElement ||\n editingElement.type !== \"text\" ||\n element.id !== editingElement.id\n ) {\n elementsMap.set(element.id, element);\n }\n }\n return elementsMap;\n };\n\n return memoize(\n ({\n zoom,\n offsetLeft,\n offsetTop,\n scrollX,\n scrollY,\n height,\n width,\n editingElement,\n pendingImageElementId,\n // unused but serves we cache on it to invalidate elements if they\n // get mutated\n versionNonce: _versionNonce,\n }: {\n zoom: AppState[\"zoom\"];\n offsetLeft: AppState[\"offsetLeft\"];\n offsetTop: AppState[\"offsetTop\"];\n scrollX: AppState[\"scrollX\"];\n scrollY: AppState[\"scrollY\"];\n height: AppState[\"height\"];\n width: AppState[\"width\"];\n editingElement: AppState[\"editingElement\"];\n pendingImageElementId: AppState[\"pendingImageElementId\"];\n versionNonce: ReturnType[\"getVersionNonce\"]>;\n }) => {\n const elements = this.scene.getNonDeletedElements();\n\n const elementsMap = getRenderableElements({\n elements,\n editingElement,\n pendingImageElementId,\n });\n\n const visibleElements = getVisibleCanvasElements({\n elementsMap,\n zoom,\n offsetLeft,\n offsetTop,\n scrollX,\n scrollY,\n height,\n width,\n });\n\n return { elementsMap, visibleElements };\n },\n );\n })();\n\n // NOTE Doesn't destroy everything (scene, rc, etc.) because it may not be\n // safe to break TS contract here (for upstream cases)\n public destroy() {\n renderInteractiveSceneThrottled.cancel();\n renderStaticSceneThrottled.cancel();\n this.getRenderableElements.clear();\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport { Trail } from \"../animated-trail\";\n\nimport \"./SVGLayer.scss\";\n\ntype SVGLayerProps = {\n trails: Trail[];\n};\n\nexport const SVGLayer = ({ trails }: SVGLayerProps) => {\n const svgRef = useRef(null);\n\n useEffect(() => {\n if (svgRef.current) {\n for (const trail of trails) {\n trail.start(svgRef.current);\n }\n }\n\n return () => {\n for (const trail of trails) {\n trail.stop();\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, trails);\n\n return (\n
    \n \n
    \n );\n};\n","import { AppState } from \"../types\";\nimport { sceneCoordsToViewportCoords } from \"../utils\";\nimport { ElementsMap, NonDeletedExcalidrawElement } from \"./types\";\nimport { getElementAbsoluteCoords } from \".\";\nimport { useExcalidrawAppState } from \"../components/App\";\n\nimport \"./ElementCanvasButtons.scss\";\n\nconst CONTAINER_PADDING = 5;\n\nconst getContainerCoords = (\n element: NonDeletedExcalidrawElement,\n appState: AppState,\n elementsMap: ElementsMap,\n) => {\n const [x1, y1] = getElementAbsoluteCoords(element, elementsMap);\n const { x: viewportX, y: viewportY } = sceneCoordsToViewportCoords(\n { sceneX: x1 + element.width, sceneY: y1 },\n appState,\n );\n const x = viewportX - appState.offsetLeft + 10;\n const y = viewportY - appState.offsetTop;\n return { x, y };\n};\n\nexport const ElementCanvasButtons = ({\n children,\n element,\n elementsMap,\n}: {\n children: React.ReactNode;\n element: NonDeletedExcalidrawElement;\n elementsMap: ElementsMap;\n}) => {\n const appState = useExcalidrawAppState();\n\n if (\n appState.contextMenu ||\n appState.draggingElement ||\n appState.resizingElement ||\n appState.isRotating ||\n appState.openMenu ||\n appState.viewModeEnabled\n ) {\n return null;\n }\n\n const { x, y } = getContainerCoords(element, appState, elementsMap);\n\n return (\n \n {children}\n
    \n );\n};\n","import { Theme } from \"../element/types\";\nimport { DataURL } from \"../types\";\nimport { OpenAIInput, OpenAIOutput } from \"./ai/types\";\n\nexport type MagicCacheData =\n | {\n status: \"pending\";\n }\n | { status: \"done\"; html: string }\n | {\n status: \"error\";\n message?: string;\n code: \"ERR_GENERATION_INTERRUPTED\" | string;\n };\n\nconst SYSTEM_PROMPT = `You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.\nYour role is to transform low-fidelity wireframes into working front-end HTML code.\n\nYOU MUST FOLLOW FOLLOWING RULES:\n\n- Use HTML, CSS, JavaScript to build a responsive, accessible, polished prototype\n- Leverage Tailwind for styling and layout (import as script )\n- Inline JavaScript when needed\n- Fetch dependencies from CDNs when needed (using unpkg or skypack)\n- Source images from Unsplash or create applicable placeholders\n- Interpret annotations as intended vs literal UI\n- Fill gaps using your expertise in UX and business logic\n- generate primarily for desktop UI, but make it responsive.\n- Use grid and flexbox wherever applicable.\n- Convert the wireframe in its entirety, don't omit elements if possible.\n\nIf the wireframes, diagrams, or text is unclear or unreadable, refer to provided text for clarification.\n\nYour goal is a production-ready prototype that brings the wireframes to life.\n\nPlease output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;\n\nexport async function diagramToHTML({\n image,\n apiKey,\n text,\n theme = \"light\",\n}: {\n image: DataURL;\n apiKey: string;\n text: string;\n theme?: Theme;\n}) {\n const body: OpenAIInput.ChatCompletionCreateParamsBase = {\n model: \"gpt-4-vision-preview\",\n // 4096 are max output tokens allowed for `gpt-4-vision-preview` currently\n max_tokens: 4096,\n temperature: 0.1,\n messages: [\n {\n role: \"system\",\n content: SYSTEM_PROMPT,\n },\n {\n role: \"user\",\n content: [\n {\n type: \"image_url\",\n image_url: {\n url: image,\n detail: \"high\",\n },\n },\n {\n type: \"text\",\n text: `Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${theme} theme. What follows are the wireframe's text annotations (if any)...`,\n },\n {\n type: \"text\",\n text,\n },\n ],\n },\n ],\n };\n\n let result:\n | ({ ok: true } & OpenAIOutput.ChatCompletion)\n | ({ ok: false } & OpenAIOutput.APIError);\n\n const resp = await fetch(\"https://api.openai.com/v1/chat/completions\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify(body),\n });\n\n if (resp.ok) {\n const json: OpenAIOutput.ChatCompletion = await resp.json();\n result = { ...json, ok: true };\n } else {\n const json: OpenAIOutput.APIError = await resp.json();\n result = { ...json, ok: false };\n }\n\n return result;\n}\n","import \"./ToolIcon.scss\";\n\nimport clsx from \"clsx\";\nimport { ToolButtonSize } from \"./ToolButton\";\n\nconst DEFAULT_SIZE: ToolButtonSize = \"small\";\n\nexport const ElementCanvasButton = (props: {\n title?: string;\n icon: JSX.Element;\n name?: string;\n checked: boolean;\n onChange?(): void;\n isMobile?: boolean;\n}) => {\n return (\n \n \n
    {props.icon}
    \n \n );\n};\n","import { UserToFollow } from \"../../types\";\nimport { CloseIcon } from \"../icons\";\nimport \"./FollowMode.scss\";\n\ninterface FollowModeProps {\n width: number;\n height: number;\n userToFollow: UserToFollow;\n onDisconnect: () => void;\n}\n\nconst FollowMode = ({\n height,\n width,\n userToFollow,\n onDisconnect,\n}: FollowModeProps) => {\n return (\n
    \n
    \n
    \n Following{\" \"}\n \n {userToFollow.username}\n \n
    \n \n
    \n
    \n );\n};\n\nexport default FollowMode;\n","export type AnimationCallback = (timestamp: number) => void | boolean;\n\nexport type AnimationTarget = {\n callback: AnimationCallback;\n stopped: boolean;\n};\n\nexport class AnimationFrameHandler {\n private targets = new WeakMap();\n private rafIds = new WeakMap();\n\n register(key: object, callback: AnimationCallback) {\n this.targets.set(key, { callback, stopped: true });\n }\n\n start(key: object) {\n const target = this.targets.get(key);\n\n if (!target) {\n return;\n }\n\n if (this.rafIds.has(key)) {\n return;\n }\n\n this.targets.set(key, { ...target, stopped: false });\n this.scheduleFrame(key);\n }\n\n stop(key: object) {\n const target = this.targets.get(key);\n if (target && !target.stopped) {\n this.targets.set(key, { ...target, stopped: true });\n }\n\n this.cancelFrame(key);\n }\n\n private constructFrame(key: object): FrameRequestCallback {\n return (timestamp: number) => {\n const target = this.targets.get(key);\n\n if (!target) {\n return;\n }\n\n const shouldAbort = this.onFrame(target, timestamp);\n\n if (!target.stopped && !shouldAbort) {\n this.scheduleFrame(key);\n } else {\n this.cancelFrame(key);\n }\n };\n }\n\n private scheduleFrame(key: object) {\n const rafId = requestAnimationFrame(this.constructFrame(key));\n\n this.rafIds.set(key, rafId);\n }\n\n private cancelFrame(key: object) {\n if (this.rafIds.has(key)) {\n const rafId = this.rafIds.get(key)!;\n\n cancelAnimationFrame(rafId);\n }\n\n this.rafIds.delete(key);\n }\n\n private onFrame(target: AnimationTarget, timestamp: number): boolean {\n const shouldAbort = target.callback(timestamp);\n\n return shouldAbort ?? false;\n }\n}\n","\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $94cfa2cfccc8cc22$exports = {};\n\n$parcel$export($94cfa2cfccc8cc22$exports, \"LaserPointer\", () => $94cfa2cfccc8cc22$export$6531021b3bf36eae);\nfunction $8cd7efb5af385306$export$e16d8520af44a096([ax, ay, ar], [bx, by, br]) {\n return [\n ax + bx,\n ay + by,\n ar + br\n ];\n}\nfunction $8cd7efb5af385306$export$f93b5905241a7cca([ax, ay, ar], [bx, by, br]) {\n return [\n ax - bx,\n ay - by,\n ar - br\n ];\n}\nfunction $8cd7efb5af385306$export$1c8884ee32bdf443([x, y, r], s) {\n return [\n x * s,\n y * s,\n r * s\n ];\n}\nfunction $8cd7efb5af385306$export$1991ecd29cc92c6b([x, y, r]) {\n return [\n x / Math.sqrt(x ** 2 + y ** 2),\n y / Math.sqrt(x ** 2 + y ** 2),\n r\n ];\n}\nfunction $8cd7efb5af385306$export$855df823ceb9b81b([x, y, r], rad) {\n return [\n Math.cos(rad) * x - Math.sin(rad) * y,\n Math.sin(rad) * x + Math.cos(rad) * y,\n r\n ];\n}\nfunction $8cd7efb5af385306$export$92d8e23769117a5e(a, b, t) {\n return $8cd7efb5af385306$export$e16d8520af44a096(a, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$f93b5905241a7cca(b, a), t));\n}\nfunction $8cd7efb5af385306$export$3a89f8d6f6bf6c9f(a, b, t) {\n return a + (b - a) * t;\n}\nfunction $8cd7efb5af385306$export$944b09d2ad10b378(p, p1, p2) {\n return Math.atan2(p2[1] - p[1], p2[0] - p[0]) - Math.atan2(p1[1] - p[1], p1[0] - p[0]);\n}\nfunction $8cd7efb5af385306$export$3c05aaf71f141f73(a) {\n return Math.atan2(Math.sin(a), Math.cos(a));\n}\nfunction $8cd7efb5af385306$export$1b9bab504faa9305([x, y]) {\n return Math.sqrt(x ** 2 + y ** 2);\n}\nfunction $8cd7efb5af385306$export$6c4a311cc157c764([ax, ay], [bx, by]) {\n return Math.sqrt((bx - ax) ** 2 + (by - ay) ** 2);\n}\nfunction $8cd7efb5af385306$export$46f6d3e1b4bd7c8b(point, direction, radius) {\n return [\n $8cd7efb5af385306$export$e16d8520af44a096(point, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$855df823ceb9b81b(direction, Math.PI / 2)), radius)),\n $8cd7efb5af385306$export$e16d8520af44a096(point, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$855df823ceb9b81b(direction, -Math.PI / 2)), radius))\n ];\n}\nfunction $8cd7efb5af385306$export$ccb1b4dfbd3f36a7(ps) {\n if (ps.length < 2) return 0;\n let len = 0;\n for(let i = 1; i <= ps.length - 1; i++)len += $8cd7efb5af385306$export$6c4a311cc157c764(ps[i - 1], ps[i]);\n len += $8cd7efb5af385306$export$6c4a311cc157c764(ps[ps.length - 2], ps[ps.length - 1]);\n return len;\n}\nconst $8cd7efb5af385306$export$7d15b64cf5a3a4c4 = (v, min, max)=>Math.max(min, Math.min(max, v));\nfunction $8cd7efb5af385306$export$548cc43590159af6(p3, p1, p2) {\n const sMag = $8cd7efb5af385306$export$6c4a311cc157c764(p1, p2);\n if (sMag === 0) return $8cd7efb5af385306$export$6c4a311cc157c764(p3, p1);\n const u = $8cd7efb5af385306$export$7d15b64cf5a3a4c4(((p3[0] - p1[0]) * (p2[0] - p1[0]) + (p3[1] - p1[1]) * (p2[1] - p1[1])) / sMag ** 2, 0, 1);\n const pi = [\n p1[0] + u * (p2[0] - p1[0]),\n p1[1] + u * (p2[1] - p1[1]),\n p3[2]\n ];\n return $8cd7efb5af385306$export$6c4a311cc157c764(pi, p3);\n}\n\n\n\nfunction $34bab0059f842ce6$export$ef693d1572e64fb8(points, epsilon) {\n if (epsilon === 0) return points;\n if (points.length <= 2) return points;\n const first = points[0];\n const last = points[points.length - 1];\n const [maxDistance, maxIndex] = points.reduce(([maxDistance, maxIndex], point, index)=>{\n const distance = (0, $8cd7efb5af385306$export$548cc43590159af6)(point, first, last);\n return distance > maxDistance ? [\n distance,\n index\n ] : [\n maxDistance,\n maxIndex\n ];\n }, [\n 0,\n -1\n ]);\n if (maxDistance >= epsilon) {\n const maxIndexPoint = points[maxIndex];\n return [\n ...$34bab0059f842ce6$export$ef693d1572e64fb8([\n first,\n ...points.slice(1, maxIndex),\n maxIndexPoint\n ], epsilon).slice(0, -1),\n maxIndexPoint,\n ...$34bab0059f842ce6$export$ef693d1572e64fb8([\n maxIndexPoint,\n ...points.slice(maxIndex, -1),\n last\n ], epsilon).slice(1)\n ];\n } else return [\n first,\n last\n ];\n}\n\n\nclass $94cfa2cfccc8cc22$export$6531021b3bf36eae {\n static{\n this.defaults = {\n size: 2,\n streamline: 0.45,\n simplify: 0.1,\n simplifyPhase: \"output\",\n keepHead: false,\n sizeMapping: ()=>1\n };\n }\n static{\n this.constants = {\n cornerDetectionMaxAngle: 75,\n cornerDetectionVariance: (s)=>s > 35 ? 0.5 : 1,\n maxTailLength: 50\n };\n }\n constructor(options){\n this.originalPoints = [];\n this.stablePoints = [];\n this.tailPoints = [];\n this.isFresh = true;\n this.options = Object.assign({}, $94cfa2cfccc8cc22$export$6531021b3bf36eae.defaults, options);\n }\n get lastPoint() {\n return this.tailPoints[this.tailPoints.length - 1] ?? this.stablePoints[this.stablePoints.length - 1];\n }\n addPoint(point) {\n const lastPoint = this.originalPoints[this.originalPoints.length - 1];\n if (lastPoint && lastPoint[0] === point[0] && lastPoint[1] === point[1]) return;\n this.originalPoints.push(point);\n if (this.isFresh) {\n this.isFresh = false;\n this.stablePoints.push(point);\n return;\n }\n if (this.options.streamline > 0) point = $8cd7efb5af385306$export$92d8e23769117a5e(this.lastPoint, point, 1 - this.options.streamline);\n this.tailPoints.push(point);\n if ($8cd7efb5af385306$export$ccb1b4dfbd3f36a7(this.tailPoints) > $94cfa2cfccc8cc22$export$6531021b3bf36eae.constants.maxTailLength) this.stabilizeTail();\n }\n close() {\n this.stabilizeTail();\n }\n stabilizeTail() {\n if (this.options.simplify > 0 && this.options.simplifyPhase == \"tail\") throw new Error(\"Not implemented yet\");\n else {\n this.stablePoints.push(...this.tailPoints);\n this.tailPoints = [];\n }\n }\n getSize(sizeOverride, pressure, index, totalLength, runningLength) {\n return (sizeOverride ?? this.options.size) * this.options.sizeMapping({\n pressure: pressure,\n runningLength: runningLength,\n currentIndex: index,\n totalLength: totalLength\n });\n }\n getStrokeOutline(sizeOverride) {\n if (this.isFresh) return [];\n let points = [\n ...this.stablePoints,\n ...this.tailPoints\n ];\n if (this.options.simplify > 0 && this.options.simplifyPhase === \"input\") points = (0, $34bab0059f842ce6$export$ef693d1572e64fb8)(points, this.options.simplify);\n const len = points.length;\n if (len === 0) return [];\n if (len === 1) {\n const c = points[0];\n const size = this.getSize(sizeOverride, c[2], 0, len, 0);\n if (size < 0.5) return [];\n const ps = [];\n for(let theta = 0; theta <= Math.PI * 2; theta += Math.PI / 16)ps.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$855df823ceb9b81b([\n 1,\n 0,\n 0\n ], theta), size)));\n ps.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443([\n 1,\n 0,\n 0\n ], this.getSize(sizeOverride, c[2], 0, len, 0))));\n return ps;\n }\n if (len === 2) {\n const c = points[0];\n const n = points[1];\n const cSize = this.getSize(sizeOverride, c[2], 0, len, 0);\n const nSize = this.getSize(sizeOverride, n[2], 0, len, 0);\n if (cSize < 0.5 || nSize < 0.5) return [];\n const ps = [];\n const pAngle = $8cd7efb5af385306$export$944b09d2ad10b378(c, [\n c[0],\n c[1] - 100,\n c[2]\n ], n);\n for(let theta = pAngle; theta <= Math.PI + pAngle; theta += Math.PI / 16)ps.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$855df823ceb9b81b([\n 1,\n 0,\n 0\n ], theta), cSize)));\n for(let theta = Math.PI + pAngle; theta <= Math.PI * 2 + pAngle; theta += Math.PI / 16)ps.push($8cd7efb5af385306$export$e16d8520af44a096(n, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$855df823ceb9b81b([\n 1,\n 0,\n 0\n ], theta), nSize)));\n ps.push(ps[0]);\n return ps;\n }\n const forwardPoints = [];\n const backwardPoints = [];\n let speed = 0;\n let prevSpeed = 0;\n let visibleStartIndex = 0;\n let runningLength = 0;\n for(let i = 1; i < len - 1; i++){\n const p = points[i - 1], c = points[i], n = points[i + 1];\n let pressure = c[2];\n const d = $8cd7efb5af385306$export$6c4a311cc157c764(p, c);\n runningLength += d;\n speed = prevSpeed + (d - prevSpeed) * 0.2;\n const cSize = this.getSize(sizeOverride, pressure, i, len, runningLength);\n if (cSize === 0) {\n visibleStartIndex = i + 1;\n continue;\n }\n const dirPC = $8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$f93b5905241a7cca(p, c));\n const dirNC = $8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$f93b5905241a7cca(n, c));\n const p1dirPC = $8cd7efb5af385306$export$855df823ceb9b81b(dirPC, Math.PI / 2);\n const p2dirPC = $8cd7efb5af385306$export$855df823ceb9b81b(dirPC, -Math.PI / 2);\n const p1dirNC = $8cd7efb5af385306$export$855df823ceb9b81b(dirNC, Math.PI / 2);\n const p2dirNC = $8cd7efb5af385306$export$855df823ceb9b81b(dirNC, -Math.PI / 2);\n const p1PC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443(p1dirPC, cSize));\n const p2PC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443(p2dirPC, cSize));\n const p1NC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443(p1dirNC, cSize));\n const p2NC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443(p2dirNC, cSize));\n const ftdir = $8cd7efb5af385306$export$e16d8520af44a096(p1dirPC, p2dirNC);\n const btdir = $8cd7efb5af385306$export$e16d8520af44a096(p2dirPC, p1dirNC);\n const paPC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$1b9bab504faa9305(ftdir) === 0 ? dirPC : $8cd7efb5af385306$export$1991ecd29cc92c6b(ftdir), cSize));\n const paNC = $8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$1b9bab504faa9305(btdir) === 0 ? dirNC : $8cd7efb5af385306$export$1991ecd29cc92c6b(btdir), cSize));\n const cAngle = $8cd7efb5af385306$export$3c05aaf71f141f73($8cd7efb5af385306$export$944b09d2ad10b378(c, p, n));\n const D_ANGLE = $94cfa2cfccc8cc22$export$6531021b3bf36eae.constants.cornerDetectionMaxAngle / 180 * Math.PI * $94cfa2cfccc8cc22$export$6531021b3bf36eae.constants.cornerDetectionVariance(speed);\n if (Math.abs(cAngle) < D_ANGLE) {\n const tAngle = Math.abs($8cd7efb5af385306$export$3c05aaf71f141f73(Math.PI - cAngle)) // turn angle\n ;\n if (tAngle === 0) continue;\n if (cAngle < 0) {\n backwardPoints.push(p2PC, paNC);\n for(let theta = 0; theta <= tAngle; theta += tAngle / 4)forwardPoints.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(p1dirPC, cSize), theta)));\n for(let theta = tAngle; theta >= 0; theta -= tAngle / 4)backwardPoints.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(p1dirPC, cSize), theta)));\n backwardPoints.push(paNC, p1NC);\n } else {\n forwardPoints.push(p1PC, paPC);\n for(let theta = 0; theta <= tAngle; theta += tAngle / 4)backwardPoints.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(p1dirPC, -cSize), -theta)));\n for(let theta = tAngle; theta >= 0; theta -= tAngle / 4)forwardPoints.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(p1dirPC, -cSize), -theta)));\n forwardPoints.push(paPC, p2NC);\n }\n } else {\n forwardPoints.push(paPC);\n backwardPoints.push(paNC);\n }\n prevSpeed = speed;\n }\n if (visibleStartIndex >= len - 2) {\n if (this.options.keepHead) {\n const c = points[len - 1];\n const ps = [];\n for(let theta = 0; theta <= Math.PI * 2; theta += Math.PI / 16)ps.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443($8cd7efb5af385306$export$855df823ceb9b81b([\n 1,\n 0,\n 0\n ], theta), this.options.size)));\n ps.push($8cd7efb5af385306$export$e16d8520af44a096(c, $8cd7efb5af385306$export$1c8884ee32bdf443([\n 1,\n 0,\n 0\n ], this.options.size)));\n return ps;\n } else return [];\n }\n const first = points[visibleStartIndex];\n const second = points[visibleStartIndex + 1];\n const penultimate = points[len - 2];\n const ultimate = points[len - 1];\n const dirFS = $8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$f93b5905241a7cca(second, first));\n const dirPU = $8cd7efb5af385306$export$1991ecd29cc92c6b($8cd7efb5af385306$export$f93b5905241a7cca(penultimate, ultimate));\n const ppdirFS = $8cd7efb5af385306$export$855df823ceb9b81b(dirFS, -Math.PI / 2);\n const ppdirPU = $8cd7efb5af385306$export$855df823ceb9b81b(dirPU, Math.PI / 2);\n const startCapSize = this.getSize(sizeOverride, first[2], 0, len, 0);\n const startCap = [];\n const endCapSize = this.options.keepHead ? this.options.size : this.getSize(sizeOverride, penultimate[2], len - 2, len, runningLength);\n const endCap = [];\n if (startCapSize > 1) {\n for(let theta = 0; theta <= Math.PI; theta += Math.PI / 16)startCap.unshift($8cd7efb5af385306$export$e16d8520af44a096(first, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(ppdirFS, startCapSize), -theta)));\n startCap.unshift($8cd7efb5af385306$export$e16d8520af44a096(first, $8cd7efb5af385306$export$1c8884ee32bdf443(ppdirFS, -startCapSize)));\n } else startCap.push(first);\n for(let theta = 0; theta <= Math.PI * 3; theta += Math.PI / 16)endCap.push($8cd7efb5af385306$export$e16d8520af44a096(ultimate, $8cd7efb5af385306$export$855df823ceb9b81b($8cd7efb5af385306$export$1c8884ee32bdf443(ppdirPU, -endCapSize), -theta)));\n const strokeOutline = [\n ...startCap,\n ...forwardPoints,\n ...endCap.reverse(),\n ...backwardPoints.reverse()\n ];\n if (startCap.length > 0) strokeOutline.push(startCap[0]);\n if (this.options.simplify > 0 && this.options.simplifyPhase === \"output\") return (0, $34bab0059f842ce6$export$ef693d1572e64fb8)(strokeOutline, this.options.simplify);\n return strokeOutline;\n }\n}\n\n\n\n\nexport {$94cfa2cfccc8cc22$export$6531021b3bf36eae as LaserPointer};\n//# sourceMappingURL=esm.js.map\n","import { LaserPointer, LaserPointerOptions } from \"@excalidraw/laser-pointer\";\nimport { AnimationFrameHandler } from \"./animation-frame-handler\";\nimport { AppState } from \"./types\";\nimport { getSvgPathFromStroke, sceneCoordsToViewportCoords } from \"./utils\";\nimport type App from \"./components/App\";\nimport { SVG_NS } from \"./constants\";\n\nexport interface Trail {\n start(container: SVGSVGElement): void;\n stop(): void;\n\n startPath(x: number, y: number): void;\n addPointToPath(x: number, y: number): void;\n endPath(): void;\n}\n\nexport interface AnimatedTrailOptions {\n fill: (trail: AnimatedTrail) => string;\n}\n\nexport class AnimatedTrail implements Trail {\n private currentTrail?: LaserPointer;\n private pastTrails: LaserPointer[] = [];\n\n private container?: SVGSVGElement;\n private trailElement: SVGPathElement;\n\n constructor(\n private animationFrameHandler: AnimationFrameHandler,\n private app: App,\n private options: Partial &\n Partial,\n ) {\n this.animationFrameHandler.register(this, this.onFrame.bind(this));\n\n this.trailElement = document.createElementNS(SVG_NS, \"path\");\n }\n\n get hasCurrentTrail() {\n return !!this.currentTrail;\n }\n\n hasLastPoint(x: number, y: number) {\n if (this.currentTrail) {\n const len = this.currentTrail.originalPoints.length;\n return (\n this.currentTrail.originalPoints[len - 1][0] === x &&\n this.currentTrail.originalPoints[len - 1][1] === y\n );\n }\n\n return false;\n }\n\n start(container?: SVGSVGElement) {\n if (container) {\n this.container = container;\n }\n\n if (this.trailElement.parentNode !== this.container && this.container) {\n this.container.appendChild(this.trailElement);\n }\n\n this.animationFrameHandler.start(this);\n }\n\n stop() {\n this.animationFrameHandler.stop(this);\n\n if (this.trailElement.parentNode === this.container) {\n this.container?.removeChild(this.trailElement);\n }\n }\n\n startPath(x: number, y: number) {\n this.currentTrail = new LaserPointer(this.options);\n\n this.currentTrail.addPoint([x, y, performance.now()]);\n\n this.update();\n }\n\n addPointToPath(x: number, y: number) {\n if (this.currentTrail) {\n this.currentTrail.addPoint([x, y, performance.now()]);\n this.update();\n }\n }\n\n endPath() {\n if (this.currentTrail) {\n this.currentTrail.close();\n this.currentTrail.options.keepHead = false;\n this.pastTrails.push(this.currentTrail);\n this.currentTrail = undefined;\n this.update();\n }\n }\n\n private update() {\n this.start();\n }\n\n private onFrame() {\n const paths: string[] = [];\n\n for (const trail of this.pastTrails) {\n paths.push(this.drawTrail(trail, this.app.state));\n }\n\n if (this.currentTrail) {\n const currentPath = this.drawTrail(this.currentTrail, this.app.state);\n\n paths.push(currentPath);\n }\n\n this.pastTrails = this.pastTrails.filter((trail) => {\n return trail.getStrokeOutline().length !== 0;\n });\n\n if (paths.length === 0) {\n this.stop();\n }\n\n const svgPaths = paths.join(\" \").trim();\n\n this.trailElement.setAttribute(\"d\", svgPaths);\n this.trailElement.setAttribute(\n \"fill\",\n (this.options.fill ?? (() => \"black\"))(this),\n );\n }\n\n private drawTrail(trail: LaserPointer, state: AppState): string {\n const stroke = trail\n .getStrokeOutline(trail.options.size / state.zoom.value)\n .map(([x, y]) => {\n const result = sceneCoordsToViewportCoords(\n { sceneX: x, sceneY: y },\n state,\n );\n\n return [result.x, result.y];\n });\n\n return getSvgPathFromStroke(stroke, true);\n }\n}\n","import { LaserPointerOptions } from \"@excalidraw/laser-pointer\";\nimport { AnimatedTrail, Trail } from \"./animated-trail\";\nimport { AnimationFrameHandler } from \"./animation-frame-handler\";\nimport type App from \"./components/App\";\nimport { SocketId } from \"./types\";\nimport { easeOut } from \"./utils\";\nimport { getClientColor } from \"./clients\";\nimport { DEFAULT_LASER_COLOR } from \"./constants\";\n\nexport class LaserTrails implements Trail {\n public localTrail: AnimatedTrail;\n private collabTrails = new Map();\n\n private container?: SVGSVGElement;\n\n constructor(\n private animationFrameHandler: AnimationFrameHandler,\n private app: App,\n ) {\n this.animationFrameHandler.register(this, this.onFrame.bind(this));\n\n this.localTrail = new AnimatedTrail(animationFrameHandler, app, {\n ...this.getTrailOptions(),\n fill: () => DEFAULT_LASER_COLOR,\n });\n }\n\n private getTrailOptions() {\n return {\n simplify: 0,\n streamline: 0.4,\n sizeMapping: (c) => {\n const DECAY_TIME = 1000;\n const DECAY_LENGTH = 50;\n const t = Math.max(\n 0,\n 1 - (performance.now() - c.pressure) / DECAY_TIME,\n );\n const l =\n (DECAY_LENGTH -\n Math.min(DECAY_LENGTH, c.totalLength - c.currentIndex)) /\n DECAY_LENGTH;\n\n return Math.min(easeOut(l), easeOut(t));\n },\n } as Partial;\n }\n\n startPath(x: number, y: number): void {\n this.localTrail.startPath(x, y);\n }\n\n addPointToPath(x: number, y: number): void {\n this.localTrail.addPointToPath(x, y);\n }\n\n endPath(): void {\n this.localTrail.endPath();\n }\n\n start(container: SVGSVGElement) {\n this.container = container;\n\n this.animationFrameHandler.start(this);\n this.localTrail.start(container);\n }\n\n stop() {\n this.animationFrameHandler.stop(this);\n this.localTrail.stop();\n }\n\n onFrame() {\n this.updateCollabTrails();\n }\n\n private updateCollabTrails() {\n if (!this.container || this.app.state.collaborators.size === 0) {\n return;\n }\n\n for (const [key, collaborator] of this.app.state.collaborators.entries()) {\n let trail!: AnimatedTrail;\n\n if (!this.collabTrails.has(key)) {\n trail = new AnimatedTrail(this.animationFrameHandler, this.app, {\n ...this.getTrailOptions(),\n fill: () =>\n collaborator.pointer?.laserColor ||\n getClientColor(key, collaborator),\n });\n trail.start(this.container);\n\n this.collabTrails.set(key, trail);\n } else {\n trail = this.collabTrails.get(key)!;\n }\n\n if (collaborator.pointer && collaborator.pointer.tool === \"laser\") {\n if (collaborator.button === \"down\" && !trail.hasCurrentTrail) {\n trail.startPath(collaborator.pointer.x, collaborator.pointer.y);\n }\n\n if (\n collaborator.button === \"down\" &&\n trail.hasCurrentTrail &&\n !trail.hasLastPoint(collaborator.pointer.x, collaborator.pointer.y)\n ) {\n trail.addPointToPath(collaborator.pointer.x, collaborator.pointer.y);\n }\n\n if (collaborator.button === \"up\" && trail.hasCurrentTrail) {\n trail.addPointToPath(collaborator.pointer.x, collaborator.pointer.y);\n trail.endPath();\n }\n }\n }\n\n for (const key of this.collabTrails.keys()) {\n if (!this.app.state.collaborators.has(key)) {\n const trail = this.collabTrails.get(key)!;\n trail.stop();\n this.collabTrails.delete(key);\n }\n }\n }\n}\n","import { CODES, KEYS } from \"../keys\";\nimport {\n isWritableElement,\n getFontString,\n getFontFamilyString,\n isTestEnv,\n} from \"../utils\";\nimport Scene from \"../scene/Scene\";\nimport {\n isArrowElement,\n isBoundToContainer,\n isTextElement,\n} from \"./typeChecks\";\nimport { CLASSES } from \"../constants\";\nimport {\n ExcalidrawElement,\n ExcalidrawLinearElement,\n ExcalidrawTextElementWithContainer,\n ExcalidrawTextElement,\n} from \"./types\";\nimport { AppState } from \"../types\";\nimport { bumpVersion, mutateElement } from \"./mutateElement\";\nimport {\n getBoundTextElementId,\n getContainerElement,\n getTextElementAngle,\n getTextWidth,\n normalizeText,\n redrawTextBoundingBox,\n wrapText,\n getBoundTextMaxHeight,\n getBoundTextMaxWidth,\n computeContainerDimensionForBoundText,\n computeBoundTextPosition,\n getBoundTextElement,\n} from \"./textElement\";\nimport {\n actionDecreaseFontSize,\n actionIncreaseFontSize,\n} from \"../actions/actionProperties\";\nimport { actionZoomIn, actionZoomOut } from \"../actions/actionCanvas\";\nimport App from \"../components/App\";\nimport { LinearElementEditor } from \"./linearElementEditor\";\nimport { parseClipboard } from \"../clipboard\";\nimport {\n originalContainerCache,\n updateOriginalContainerCache,\n} from \"./containerCache\";\n\nconst getTransform = (\n width: number,\n height: number,\n angle: number,\n appState: AppState,\n maxWidth: number,\n maxHeight: number,\n) => {\n const { zoom } = appState;\n const degree = (180 * angle) / Math.PI;\n let translateX = (width * (zoom.value - 1)) / 2;\n let translateY = (height * (zoom.value - 1)) / 2;\n if (width > maxWidth && zoom.value !== 1) {\n translateX = (maxWidth * (zoom.value - 1)) / 2;\n }\n if (height > maxHeight && zoom.value !== 1) {\n translateY = (maxHeight * (zoom.value - 1)) / 2;\n }\n return `translate(${translateX}px, ${translateY}px) scale(${zoom.value}) rotate(${degree}deg)`;\n};\n\nexport const textWysiwyg = ({\n id,\n onChange,\n onSubmit,\n getViewportCoords,\n element,\n canvas,\n excalidrawContainer,\n app,\n}: {\n id: ExcalidrawElement[\"id\"];\n onChange?: (text: string) => void;\n onSubmit: (data: {\n text: string;\n viaKeyboard: boolean;\n originalText: string;\n }) => void;\n getViewportCoords: (x: number, y: number) => [number, number];\n element: ExcalidrawTextElement;\n canvas: HTMLCanvasElement;\n excalidrawContainer: HTMLDivElement | null;\n app: App;\n}) => {\n const textPropertiesUpdated = (\n updatedTextElement: ExcalidrawTextElement,\n editable: HTMLTextAreaElement,\n ) => {\n if (!editable.style.fontFamily || !editable.style.fontSize) {\n return false;\n }\n const currentFont = editable.style.fontFamily.replace(/\"/g, \"\");\n if (\n getFontFamilyString({ fontFamily: updatedTextElement.fontFamily }) !==\n currentFont\n ) {\n return true;\n }\n if (`${updatedTextElement.fontSize}px` !== editable.style.fontSize) {\n return true;\n }\n return false;\n };\n\n const updateWysiwygStyle = () => {\n const appState = app.state;\n const updatedTextElement =\n Scene.getScene(element)?.getElement(id);\n\n if (!updatedTextElement) {\n return;\n }\n const { textAlign, verticalAlign } = updatedTextElement;\n const elementsMap = app.scene.getNonDeletedElementsMap();\n if (updatedTextElement && isTextElement(updatedTextElement)) {\n let coordX = updatedTextElement.x;\n let coordY = updatedTextElement.y;\n const container = getContainerElement(\n updatedTextElement,\n app.scene.getNonDeletedElementsMap(),\n );\n let maxWidth = updatedTextElement.width;\n\n let maxHeight = updatedTextElement.height;\n let textElementWidth = updatedTextElement.width;\n // Set to element height by default since that's\n // what is going to be used for unbounded text\n const textElementHeight = updatedTextElement.height;\n\n if (container && updatedTextElement.containerId) {\n if (isArrowElement(container)) {\n const boundTextCoords =\n LinearElementEditor.getBoundTextElementPosition(\n container,\n updatedTextElement as ExcalidrawTextElementWithContainer,\n elementsMap,\n );\n coordX = boundTextCoords.x;\n coordY = boundTextCoords.y;\n }\n const propertiesUpdated = textPropertiesUpdated(\n updatedTextElement,\n editable,\n );\n\n let originalContainerData;\n if (propertiesUpdated) {\n originalContainerData = updateOriginalContainerCache(\n container.id,\n container.height,\n );\n } else {\n originalContainerData = originalContainerCache[container.id];\n if (!originalContainerData) {\n originalContainerData = updateOriginalContainerCache(\n container.id,\n container.height,\n );\n }\n }\n\n maxWidth = getBoundTextMaxWidth(container, updatedTextElement);\n\n maxHeight = getBoundTextMaxHeight(\n container,\n updatedTextElement as ExcalidrawTextElementWithContainer,\n );\n\n // autogrow container height if text exceeds\n if (!isArrowElement(container) && textElementHeight > maxHeight) {\n const targetContainerHeight = computeContainerDimensionForBoundText(\n textElementHeight,\n container.type,\n );\n\n mutateElement(container, { height: targetContainerHeight });\n return;\n } else if (\n // autoshrink container height until original container height\n // is reached when text is removed\n !isArrowElement(container) &&\n container.height > originalContainerData.height &&\n textElementHeight < maxHeight\n ) {\n const targetContainerHeight = computeContainerDimensionForBoundText(\n textElementHeight,\n container.type,\n );\n mutateElement(container, { height: targetContainerHeight });\n } else {\n const { y } = computeBoundTextPosition(\n container,\n updatedTextElement as ExcalidrawTextElementWithContainer,\n elementsMap,\n );\n coordY = y;\n }\n }\n const [viewportX, viewportY] = getViewportCoords(coordX, coordY);\n const initialSelectionStart = editable.selectionStart;\n const initialSelectionEnd = editable.selectionEnd;\n const initialLength = editable.value.length;\n\n // restore cursor position after value updated so it doesn't\n // go to the end of text when container auto expanded\n if (\n initialSelectionStart === initialSelectionEnd &&\n initialSelectionEnd !== initialLength\n ) {\n // get diff between length and selection end and shift\n // the cursor by \"diff\" times to position correctly\n const diff = initialLength - initialSelectionEnd;\n editable.selectionStart = editable.value.length - diff;\n editable.selectionEnd = editable.value.length - diff;\n }\n\n if (!container) {\n maxWidth = (appState.width - 8 - viewportX) / appState.zoom.value;\n textElementWidth = Math.min(textElementWidth, maxWidth);\n }\n\n // Make sure text editor height doesn't go beyond viewport\n const editorMaxHeight =\n (appState.height - viewportY) / appState.zoom.value;\n Object.assign(editable.style, {\n font: getFontString(updatedTextElement),\n // must be defined *after* font ¯\\_(ツ)_/¯\n lineHeight: updatedTextElement.lineHeight,\n width: `${textElementWidth}px`,\n height: `${textElementHeight}px`,\n left: `${viewportX}px`,\n top: `${viewportY}px`,\n transform: getTransform(\n textElementWidth,\n textElementHeight,\n getTextElementAngle(updatedTextElement, container),\n appState,\n maxWidth,\n editorMaxHeight,\n ),\n textAlign,\n verticalAlign,\n color: updatedTextElement.strokeColor,\n opacity: updatedTextElement.opacity / 100,\n filter: \"var(--theme-filter)\",\n maxHeight: `${editorMaxHeight}px`,\n });\n editable.scrollTop = 0;\n // For some reason updating font attribute doesn't set font family\n // hence updating font family explicitly for test environment\n if (isTestEnv()) {\n editable.style.fontFamily = getFontFamilyString(updatedTextElement);\n }\n mutateElement(updatedTextElement, { x: coordX, y: coordY });\n }\n };\n\n const editable = document.createElement(\"textarea\");\n\n editable.dir = \"auto\";\n editable.tabIndex = 0;\n editable.dataset.type = \"wysiwyg\";\n // prevent line wrapping on Safari\n editable.wrap = \"off\";\n editable.classList.add(\"excalidraw-wysiwyg\");\n\n let whiteSpace = \"pre\";\n let wordBreak = \"normal\";\n\n if (isBoundToContainer(element)) {\n whiteSpace = \"pre-wrap\";\n wordBreak = \"break-word\";\n }\n Object.assign(editable.style, {\n position: \"absolute\",\n display: \"inline-block\",\n minHeight: \"1em\",\n backfaceVisibility: \"hidden\",\n margin: 0,\n padding: 0,\n border: 0,\n outline: 0,\n resize: \"none\",\n background: \"transparent\",\n overflow: \"hidden\",\n // must be specified because in dark mode canvas creates a stacking context\n zIndex: \"var(--zIndex-wysiwyg)\",\n wordBreak,\n // prevent line wrapping (`whitespace: nowrap` doesn't work on FF)\n whiteSpace,\n overflowWrap: \"break-word\",\n boxSizing: \"content-box\",\n });\n editable.value = element.originalText;\n updateWysiwygStyle();\n\n if (onChange) {\n editable.onpaste = async (event) => {\n const clipboardData = await parseClipboard(event, true);\n if (!clipboardData.text) {\n return;\n }\n const data = normalizeText(clipboardData.text);\n if (!data) {\n return;\n }\n const container = getContainerElement(\n element,\n app.scene.getNonDeletedElementsMap(),\n );\n\n const font = getFontString({\n fontSize: app.state.currentItemFontSize,\n fontFamily: app.state.currentItemFontFamily,\n });\n if (container) {\n const boundTextElement = getBoundTextElement(\n container,\n app.scene.getNonDeletedElementsMap(),\n );\n const wrappedText = wrapText(\n `${editable.value}${data}`,\n font,\n getBoundTextMaxWidth(container, boundTextElement),\n );\n const width = getTextWidth(wrappedText, font);\n editable.style.width = `${width}px`;\n }\n };\n\n editable.oninput = () => {\n onChange(normalizeText(editable.value));\n };\n }\n\n editable.onkeydown = (event) => {\n if (!event.shiftKey && actionZoomIn.keyTest(event)) {\n event.preventDefault();\n app.actionManager.executeAction(actionZoomIn);\n updateWysiwygStyle();\n } else if (!event.shiftKey && actionZoomOut.keyTest(event)) {\n event.preventDefault();\n app.actionManager.executeAction(actionZoomOut);\n updateWysiwygStyle();\n } else if (actionDecreaseFontSize.keyTest(event)) {\n app.actionManager.executeAction(actionDecreaseFontSize);\n } else if (actionIncreaseFontSize.keyTest(event)) {\n app.actionManager.executeAction(actionIncreaseFontSize);\n } else if (event.key === KEYS.ESCAPE) {\n event.preventDefault();\n submittedViaKeyboard = true;\n handleSubmit();\n } else if (event.key === KEYS.ENTER && event[KEYS.CTRL_OR_CMD]) {\n event.preventDefault();\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n submittedViaKeyboard = true;\n handleSubmit();\n } else if (\n event.key === KEYS.TAB ||\n (event[KEYS.CTRL_OR_CMD] &&\n (event.code === CODES.BRACKET_LEFT ||\n event.code === CODES.BRACKET_RIGHT))\n ) {\n event.preventDefault();\n if (event.isComposing) {\n return;\n } else if (event.shiftKey || event.code === CODES.BRACKET_LEFT) {\n outdent();\n } else {\n indent();\n }\n // We must send an input event to resize the element\n editable.dispatchEvent(new Event(\"input\"));\n }\n };\n\n const TAB_SIZE = 4;\n const TAB = \" \".repeat(TAB_SIZE);\n const RE_LEADING_TAB = new RegExp(`^ {1,${TAB_SIZE}}`);\n const indent = () => {\n const { selectionStart, selectionEnd } = editable;\n const linesStartIndices = getSelectedLinesStartIndices();\n\n let value = editable.value;\n linesStartIndices.forEach((startIndex: number) => {\n const startValue = value.slice(0, startIndex);\n const endValue = value.slice(startIndex);\n\n value = `${startValue}${TAB}${endValue}`;\n });\n\n editable.value = value;\n\n editable.selectionStart = selectionStart + TAB_SIZE;\n editable.selectionEnd = selectionEnd + TAB_SIZE * linesStartIndices.length;\n };\n\n const outdent = () => {\n const { selectionStart, selectionEnd } = editable;\n const linesStartIndices = getSelectedLinesStartIndices();\n const removedTabs: number[] = [];\n\n let value = editable.value;\n linesStartIndices.forEach((startIndex) => {\n const tabMatch = value\n .slice(startIndex, startIndex + TAB_SIZE)\n .match(RE_LEADING_TAB);\n\n if (tabMatch) {\n const startValue = value.slice(0, startIndex);\n const endValue = value.slice(startIndex + tabMatch[0].length);\n\n // Delete a tab from the line\n value = `${startValue}${endValue}`;\n removedTabs.push(startIndex);\n }\n });\n\n editable.value = value;\n\n if (removedTabs.length) {\n if (selectionStart > removedTabs[removedTabs.length - 1]) {\n editable.selectionStart = Math.max(\n selectionStart - TAB_SIZE,\n removedTabs[removedTabs.length - 1],\n );\n } else {\n // If the cursor is before the first tab removed, ex:\n // Line| #1\n // Line #2\n // Lin|e #3\n // we should reset the selectionStart to his initial value.\n editable.selectionStart = selectionStart;\n }\n editable.selectionEnd = Math.max(\n editable.selectionStart,\n selectionEnd - TAB_SIZE * removedTabs.length,\n );\n }\n };\n\n /**\n * @returns indices of start positions of selected lines, in reverse order\n */\n const getSelectedLinesStartIndices = () => {\n let { selectionStart, selectionEnd, value } = editable;\n\n // chars before selectionStart on the same line\n const startOffset = value.slice(0, selectionStart).match(/[^\\n]*$/)![0]\n .length;\n // put caret at the start of the line\n selectionStart = selectionStart - startOffset;\n\n const selected = value.slice(selectionStart, selectionEnd);\n\n return selected\n .split(\"\\n\")\n .reduce(\n (startIndices, line, idx, lines) =>\n startIndices.concat(\n idx\n ? // curr line index is prev line's start + prev line's length + \\n\n startIndices[idx - 1] + lines[idx - 1].length + 1\n : // first selected line\n selectionStart,\n ),\n [] as number[],\n )\n .reverse();\n };\n\n const stopEvent = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n // using a state variable instead of passing it to the handleSubmit callback\n // so that we don't need to create separate a callback for event handlers\n let submittedViaKeyboard = false;\n const handleSubmit = () => {\n // cleanup must be run before onSubmit otherwise when app blurs the wysiwyg\n // it'd get stuck in an infinite loop of blur→onSubmit after we re-focus the\n // wysiwyg on update\n cleanup();\n const updateElement = Scene.getScene(element)?.getElement(\n element.id,\n ) as ExcalidrawTextElement;\n if (!updateElement) {\n return;\n }\n let text = editable.value;\n const container = getContainerElement(\n updateElement,\n app.scene.getNonDeletedElementsMap(),\n );\n\n if (container) {\n text = updateElement.text;\n if (editable.value.trim()) {\n const boundTextElementId = getBoundTextElementId(container);\n if (!boundTextElementId || boundTextElementId !== element.id) {\n mutateElement(container, {\n boundElements: (container.boundElements || []).concat({\n type: \"text\",\n id: element.id,\n }),\n });\n } else if (isArrowElement(container)) {\n // updating an arrow label may change bounds, prevent stale cache:\n bumpVersion(container);\n }\n } else {\n mutateElement(container, {\n boundElements: container.boundElements?.filter(\n (ele) =>\n !isTextElement(\n ele as ExcalidrawTextElement | ExcalidrawLinearElement,\n ),\n ),\n });\n }\n redrawTextBoundingBox(\n updateElement,\n container,\n app.scene.getNonDeletedElementsMap(),\n );\n }\n\n onSubmit({\n text,\n viaKeyboard: submittedViaKeyboard,\n originalText: editable.value,\n });\n };\n\n const cleanup = () => {\n if (isDestroyed) {\n return;\n }\n isDestroyed = true;\n // remove events to ensure they don't late-fire\n editable.onblur = null;\n editable.oninput = null;\n editable.onkeydown = null;\n\n if (observer) {\n observer.disconnect();\n }\n\n window.removeEventListener(\"resize\", updateWysiwygStyle);\n window.removeEventListener(\"wheel\", stopEvent, true);\n window.removeEventListener(\"pointerdown\", onPointerDown);\n window.removeEventListener(\"pointerup\", bindBlurEvent);\n window.removeEventListener(\"blur\", handleSubmit);\n window.removeEventListener(\"beforeunload\", handleSubmit);\n unbindUpdate();\n\n editable.remove();\n };\n\n const bindBlurEvent = (event?: MouseEvent) => {\n window.removeEventListener(\"pointerup\", bindBlurEvent);\n // Deferred so that the pointerdown that initiates the wysiwyg doesn't\n // trigger the blur on ensuing pointerup.\n // Also to handle cases such as picking a color which would trigger a blur\n // in that same tick.\n const target = event?.target;\n\n const isTargetPickerTrigger =\n target instanceof HTMLElement &&\n target.classList.contains(\"active-color\");\n\n setTimeout(() => {\n editable.onblur = handleSubmit;\n\n if (isTargetPickerTrigger) {\n const callback = (\n mutationList: MutationRecord[],\n observer: MutationObserver,\n ) => {\n const radixIsRemoved = mutationList.find(\n (mutation) =>\n mutation.removedNodes.length > 0 &&\n (mutation.removedNodes[0] as HTMLElement).dataset\n ?.radixPopperContentWrapper !== undefined,\n );\n\n if (radixIsRemoved) {\n // should work without this in theory\n // and i think it does actually but radix probably somewhere,\n // somehow sets the focus elsewhere\n setTimeout(() => {\n editable.focus();\n });\n\n observer.disconnect();\n }\n };\n\n const observer = new MutationObserver(callback);\n\n observer.observe(document.querySelector(\".excalidraw-container\")!, {\n childList: true,\n });\n }\n\n // case: clicking on the same property → no change → no update → no focus\n if (!isTargetPickerTrigger) {\n editable.focus();\n }\n });\n };\n\n // prevent blur when changing properties from the menu\n const onPointerDown = (event: MouseEvent) => {\n const isTargetPickerTrigger =\n event.target instanceof HTMLElement &&\n event.target.classList.contains(\"active-color\");\n\n if (\n ((event.target instanceof HTMLElement ||\n event.target instanceof SVGElement) &&\n event.target.closest(`.${CLASSES.SHAPE_ACTIONS_MENU}`) &&\n !isWritableElement(event.target)) ||\n isTargetPickerTrigger\n ) {\n editable.onblur = null;\n window.addEventListener(\"pointerup\", bindBlurEvent);\n // handle edge-case where pointerup doesn't fire e.g. due to user\n // alt-tabbing away\n window.addEventListener(\"blur\", handleSubmit);\n }\n };\n\n // handle updates of textElement properties of editing element\n const unbindUpdate = Scene.getScene(element)!.addCallback(() => {\n updateWysiwygStyle();\n const isColorPickerActive = !!document.activeElement?.closest(\n \".color-picker-content\",\n );\n if (!isColorPickerActive) {\n editable.focus();\n }\n });\n\n // ---------------------------------------------------------------------------\n\n let isDestroyed = false;\n\n // select on init (focusing is done separately inside the bindBlurEvent()\n // because we need it to happen *after* the blur event from `pointerdown`)\n editable.select();\n bindBlurEvent();\n\n // reposition wysiwyg in case of canvas is resized. Using ResizeObserver\n // is preferred so we catch changes from host, where window may not resize.\n let observer: ResizeObserver | null = null;\n if (canvas && \"ResizeObserver\" in window) {\n observer = new window.ResizeObserver(() => {\n updateWysiwygStyle();\n });\n observer.observe(canvas);\n } else {\n window.addEventListener(\"resize\", updateWysiwygStyle);\n }\n\n window.addEventListener(\"pointerdown\", onPointerDown);\n window.addEventListener(\"wheel\", stopEvent, {\n passive: false,\n capture: true,\n });\n window.addEventListener(\"beforeunload\", handleSubmit);\n excalidrawContainer\n ?.querySelector(\".excalidraw-textEditorContainer\")!\n .appendChild(editable);\n};\n","import React, { useContext } from \"react\";\nimport { flushSync } from \"react-dom\";\n\nimport { RoughCanvas } from \"roughjs/bin/canvas\";\nimport rough from \"roughjs/bin/rough\";\nimport clsx from \"clsx\";\nimport { nanoid } from \"nanoid\";\nimport {\n actionAddToLibrary,\n actionBringForward,\n actionBringToFront,\n actionCopy,\n actionCopyAsPng,\n actionCopyAsSvg,\n copyText,\n actionCopyStyles,\n actionCut,\n actionDeleteSelected,\n actionDuplicateSelection,\n actionFinalize,\n actionFlipHorizontal,\n actionFlipVertical,\n actionGroup,\n actionPasteStyles,\n actionSelectAll,\n actionSendBackward,\n actionSendToBack,\n actionToggleGridMode,\n actionToggleStats,\n actionToggleZenMode,\n actionUnbindText,\n actionBindText,\n actionUngroup,\n actionLink,\n actionToggleElementLock,\n actionToggleLinearEditor,\n actionToggleObjectsSnapMode,\n} from \"../actions\";\nimport { createRedoAction, createUndoAction } from \"../actions/actionHistory\";\nimport { ActionManager } from \"../actions/manager\";\nimport { actions } from \"../actions/register\";\nimport { Action, ActionResult } from \"../actions/types\";\nimport { trackEvent } from \"../analytics\";\nimport {\n getDefaultAppState,\n isEraserActive,\n isHandToolActive,\n} from \"../appState\";\nimport {\n PastedMixedContent,\n copyTextToSystemClipboard,\n parseClipboard,\n} from \"../clipboard\";\nimport {\n APP_NAME,\n CURSOR_TYPE,\n DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,\n DEFAULT_VERTICAL_ALIGN,\n DRAGGING_THRESHOLD,\n ELEMENT_SHIFT_TRANSLATE_AMOUNT,\n ELEMENT_TRANSLATE_AMOUNT,\n ENV,\n EVENT,\n FRAME_STYLE,\n EXPORT_IMAGE_TYPES,\n GRID_SIZE,\n IMAGE_MIME_TYPES,\n IMAGE_RENDER_TIMEOUT,\n isBrave,\n LINE_CONFIRM_THRESHOLD,\n MAX_ALLOWED_FILE_BYTES,\n MIME_TYPES,\n MQ_MAX_HEIGHT_LANDSCAPE,\n MQ_MAX_WIDTH_LANDSCAPE,\n MQ_MAX_WIDTH_PORTRAIT,\n MQ_RIGHT_SIDEBAR_MIN_WIDTH,\n POINTER_BUTTON,\n ROUNDNESS,\n SCROLL_TIMEOUT,\n TAP_TWICE_TIMEOUT,\n TEXT_TO_CENTER_SNAP_THRESHOLD,\n THEME,\n THEME_FILTER,\n TOUCH_CTX_MENU_TIMEOUT,\n VERTICAL_ALIGN,\n YOUTUBE_STATES,\n ZOOM_STEP,\n POINTER_EVENTS,\n TOOL_TYPE,\n EDITOR_LS_KEYS,\n isIOS,\n supportsResizeObserver,\n} from \"../constants\";\nimport { ExportedElements, exportCanvas, loadFromBlob } from \"../data\";\nimport Library, { distributeLibraryItemsOnSquareGrid } from \"../data/library\";\nimport { restore, restoreElements } from \"../data/restore\";\nimport {\n dragNewElement,\n dragSelectedElements,\n duplicateElement,\n getCommonBounds,\n getCursorForResizingElement,\n getDragOffsetXY,\n getElementWithTransformHandleType,\n getNormalizedDimensions,\n getResizeArrowDirection,\n getResizeOffsetXY,\n getLockedLinearCursorAlignSize,\n getTransformHandleTypeFromCoords,\n hitTest,\n isHittingElementBoundingBoxWithoutHittingElement,\n isInvisiblySmallElement,\n isNonDeletedElement,\n isTextElement,\n newElement,\n newLinearElement,\n newTextElement,\n newImageElement,\n transformElements,\n updateTextElement,\n redrawTextBoundingBox,\n} from \"../element\";\nimport {\n bindOrUnbindLinearElement,\n bindOrUnbindSelectedElements,\n fixBindingsAfterDeletion,\n fixBindingsAfterDuplication,\n getEligibleElementsForBinding,\n getHoveredElementForBinding,\n isBindingEnabled,\n isLinearElementSimpleAndAlreadyBound,\n maybeBindLinearElement,\n shouldEnableBindingForPointerEvent,\n unbindLinearElements,\n updateBoundElements,\n} from \"../element/binding\";\nimport { LinearElementEditor } from \"../element/linearElementEditor\";\nimport { mutateElement, newElementWith } from \"../element/mutateElement\";\nimport {\n deepCopyElement,\n duplicateElements,\n newFrameElement,\n newFreeDrawElement,\n newEmbeddableElement,\n newMagicFrameElement,\n newIframeElement,\n} from \"../element/newElement\";\nimport {\n hasBoundTextElement,\n isArrowElement,\n isBindingElement,\n isBindingElementType,\n isBoundToContainer,\n isFrameLikeElement,\n isImageElement,\n isEmbeddableElement,\n isInitializedImageElement,\n isLinearElement,\n isLinearElementType,\n isUsingAdaptiveRadius,\n isFrameElement,\n isIframeElement,\n isIframeLikeElement,\n isMagicFrameElement,\n} from \"../element/typeChecks\";\nimport {\n ExcalidrawBindableElement,\n ExcalidrawElement,\n ExcalidrawFreeDrawElement,\n ExcalidrawGenericElement,\n ExcalidrawLinearElement,\n ExcalidrawTextElement,\n NonDeleted,\n InitializedExcalidrawImageElement,\n ExcalidrawImageElement,\n FileId,\n NonDeletedExcalidrawElement,\n ExcalidrawTextContainer,\n ExcalidrawFrameLikeElement,\n ExcalidrawMagicFrameElement,\n ExcalidrawIframeLikeElement,\n IframeData,\n ExcalidrawIframeElement,\n ExcalidrawEmbeddableElement,\n} from \"../element/types\";\nimport { getCenter, getDistance } from \"../gesture\";\nimport {\n editGroupForSelectedElement,\n getElementsInGroup,\n getSelectedGroupIdForElement,\n getSelectedGroupIds,\n isElementInGroup,\n isSelectedViaGroup,\n selectGroupsForSelectedElements,\n} from \"../groups\";\nimport History from \"../history\";\nimport { defaultLang, getLanguage, languages, setLanguage, t } from \"../i18n\";\nimport {\n CODES,\n shouldResizeFromCenter,\n shouldMaintainAspectRatio,\n shouldRotateWithDiscreteAngle,\n isArrowKey,\n KEYS,\n} from \"../keys\";\nimport { isElementInViewport } from \"../element/sizeHelpers\";\nimport {\n distance2d,\n getCornerRadius,\n getGridPoint,\n isPathALoop,\n} from \"../math\";\nimport {\n calculateScrollCenter,\n getElementsAtPosition,\n getElementsWithinSelection,\n getNormalizedZoom,\n getSelectedElements,\n hasBackground,\n isSomeElementSelected,\n} from \"../scene\";\nimport Scene from \"../scene/Scene\";\nimport { RenderInteractiveSceneCallback, ScrollBars } from \"../scene/types\";\nimport { getStateForZoom } from \"../scene/zoom\";\nimport { findShapeByKey } from \"../shapes\";\nimport {\n AppClassProperties,\n AppProps,\n AppState,\n BinaryFileData,\n DataURL,\n ExcalidrawImperativeAPI,\n BinaryFiles,\n Gesture,\n GestureEvent,\n LibraryItems,\n PointerDownState,\n SceneData,\n Device,\n FrameNameBoundsCache,\n SidebarName,\n SidebarTabName,\n KeyboardModifiersObject,\n CollaboratorPointer,\n ToolType,\n OnUserFollowedPayload,\n UnsubscribeCallback,\n EmbedsValidationStatus,\n ElementsPendingErasure,\n} from \"../types\";\nimport {\n debounce,\n distance,\n getFontString,\n getNearestScrollableContainer,\n isInputLike,\n isToolIcon,\n isWritableElement,\n sceneCoordsToViewportCoords,\n tupleToCoors,\n viewportCoordsToSceneCoords,\n wrapEvent,\n updateObject,\n updateActiveTool,\n getShortcutKey,\n isTransparent,\n easeToValuesRAF,\n muteFSAbortError,\n isTestEnv,\n easeOut,\n updateStable,\n addEventListener,\n normalizeEOL,\n getDateTime,\n} from \"../utils\";\nimport {\n createSrcDoc,\n embeddableURLValidator,\n maybeParseEmbedSrc,\n getEmbedLink,\n} from \"../element/embeddable\";\nimport {\n ContextMenu,\n ContextMenuItems,\n CONTEXT_MENU_SEPARATOR,\n} from \"./ContextMenu\";\nimport LayerUI from \"./LayerUI\";\nimport { Toast } from \"./Toast\";\nimport { actionToggleViewMode } from \"../actions/actionToggleViewMode\";\nimport {\n dataURLToFile,\n generateIdFromFile,\n getDataURL,\n getFileFromEvent,\n ImageURLToFile,\n isImageFileHandle,\n isSupportedImageFile,\n loadSceneOrLibraryFromBlob,\n normalizeFile,\n parseLibraryJSON,\n resizeImageFile,\n SVGStringToFile,\n} from \"../data/blob\";\nimport {\n getInitializedImageElements,\n loadHTMLImageElement,\n normalizeSVG,\n updateImageCache as _updateImageCache,\n} from \"../element/image\";\nimport throttle from \"lodash.throttle\";\nimport { fileOpen, FileSystemHandle } from \"../data/filesystem\";\nimport {\n bindTextToShapeAfterDuplication,\n getApproxMinLineHeight,\n getApproxMinLineWidth,\n getBoundTextElement,\n getContainerCenter,\n getContainerElement,\n getDefaultLineHeight,\n getLineHeightInPx,\n getTextBindableContainerAtPosition,\n isMeasureTextSupported,\n isValidTextContainer,\n} from \"../element/textElement\";\nimport { isHittingElementNotConsideringBoundingBox } from \"../element/collision\";\nimport {\n showHyperlinkTooltip,\n hideHyperlinkToolip,\n Hyperlink,\n} from \"../components/hyperlink/Hyperlink\";\nimport { isLocalLink, normalizeLink, toValidURL } from \"../data/url\";\nimport { shouldShowBoundingBox } from \"../element/transformHandles\";\nimport { actionUnlockAllElements } from \"../actions/actionElementLock\";\nimport { Fonts } from \"../scene/Fonts\";\nimport {\n getFrameChildren,\n isCursorInFrame,\n bindElementsToFramesAfterDuplication,\n addElementsToFrame,\n replaceAllElementsInFrame,\n removeElementsFromFrame,\n getElementsInResizingFrame,\n getElementsInNewFrame,\n getContainingFrame,\n elementOverlapsWithFrame,\n updateFrameMembershipOfSelectedElements,\n isElementInFrame,\n getFrameLikeTitle,\n getElementsOverlappingFrame,\n filterElementsEligibleAsFrameChildren,\n} from \"../frame\";\nimport {\n excludeElementsInFramesFromSelection,\n makeNextSelectedElementIds,\n} from \"../scene/selection\";\nimport { actionPaste } from \"../actions/actionClipboard\";\nimport {\n actionRemoveAllElementsFromFrame,\n actionSelectAllElementsInFrame,\n} from \"../actions/actionFrame\";\nimport { actionToggleHandTool, zoomToFit } from \"../actions/actionCanvas\";\nimport { jotaiStore } from \"../jotai\";\nimport { activeConfirmDialogAtom } from \"./ActiveConfirmDialog\";\nimport { ImageSceneDataError } from \"../errors\";\nimport {\n getSnapLinesAtPointer,\n snapDraggedElements,\n isActiveToolNonLinearSnappable,\n snapNewElement,\n snapResizingElements,\n isSnappingEnabled,\n getVisibleGaps,\n getReferenceSnapPoints,\n SnapCache,\n} from \"../snapping\";\nimport { actionWrapTextInContainer } from \"../actions/actionBoundText\";\nimport BraveMeasureTextError from \"./BraveMeasureTextError\";\nimport { activeEyeDropperAtom } from \"./EyeDropper\";\nimport {\n ExcalidrawElementSkeleton,\n convertToExcalidrawElements,\n} from \"../data/transform\";\nimport { ValueOf } from \"../utility-types\";\nimport { isSidebarDockedAtom } from \"./Sidebar/Sidebar\";\nimport { StaticCanvas, InteractiveCanvas } from \"./canvases\";\nimport { Renderer } from \"../scene/Renderer\";\nimport { ShapeCache } from \"../scene/ShapeCache\";\nimport { SVGLayer } from \"./SVGLayer\";\nimport {\n setEraserCursor,\n setCursor,\n resetCursor,\n setCursorForShape,\n} from \"../cursor\";\nimport { Emitter } from \"../emitter\";\nimport { ElementCanvasButtons } from \"../element/ElementCanvasButtons\";\nimport { MagicCacheData, diagramToHTML } from \"../data/magic\";\nimport { exportToBlob } from \"../../utils/export\";\nimport { COLOR_PALETTE } from \"../colors\";\nimport { ElementCanvasButton } from \"./MagicButton\";\nimport { MagicIcon, copyIcon, fullscreenIcon } from \"./icons\";\nimport { EditorLocalStorage } from \"../data/EditorLocalStorage\";\nimport FollowMode from \"./FollowMode/FollowMode\";\n\nimport { AnimationFrameHandler } from \"../animation-frame-handler\";\nimport { AnimatedTrail } from \"../animated-trail\";\nimport { LaserTrails } from \"../laser-trails\";\nimport { withBatchedUpdates, withBatchedUpdatesThrottled } from \"../reactUtils\";\nimport { getRenderOpacity } from \"../renderer/renderElement\";\nimport { textWysiwyg } from \"../element/textWysiwyg\";\nimport { isOverScrollBars } from \"../scene/scrollbars\";\nimport {\n isPointHittingLink,\n isPointHittingLinkIcon,\n} from \"./hyperlink/helpers\";\n\nconst AppContext = React.createContext(null!);\nconst AppPropsContext = React.createContext(null!);\n\nconst deviceContextInitialValue = {\n viewport: {\n isMobile: false,\n isLandscape: false,\n },\n editor: {\n isMobile: false,\n canFitSidebar: false,\n },\n isTouchScreen: false,\n};\nconst DeviceContext = React.createContext(deviceContextInitialValue);\nDeviceContext.displayName = \"DeviceContext\";\n\nexport const ExcalidrawContainerContext = React.createContext<{\n container: HTMLDivElement | null;\n id: string | null;\n}>({ container: null, id: null });\nExcalidrawContainerContext.displayName = \"ExcalidrawContainerContext\";\n\nconst ExcalidrawElementsContext = React.createContext<\n readonly NonDeletedExcalidrawElement[]\n>([]);\nExcalidrawElementsContext.displayName = \"ExcalidrawElementsContext\";\n\nconst ExcalidrawAppStateContext = React.createContext({\n ...getDefaultAppState(),\n width: 0,\n height: 0,\n offsetLeft: 0,\n offsetTop: 0,\n});\nExcalidrawAppStateContext.displayName = \"ExcalidrawAppStateContext\";\n\nconst ExcalidrawSetAppStateContext = React.createContext<\n React.Component[\"setState\"]\n>(() => {\n console.warn(\"Uninitialized ExcalidrawSetAppStateContext context!\");\n});\nExcalidrawSetAppStateContext.displayName = \"ExcalidrawSetAppStateContext\";\n\nconst ExcalidrawActionManagerContext = React.createContext(\n null!,\n);\nExcalidrawActionManagerContext.displayName = \"ExcalidrawActionManagerContext\";\n\nexport const useApp = () => useContext(AppContext);\nexport const useAppProps = () => useContext(AppPropsContext);\nexport const useDevice = () => useContext(DeviceContext);\nexport const useExcalidrawContainer = () =>\n useContext(ExcalidrawContainerContext);\nexport const useExcalidrawElements = () =>\n useContext(ExcalidrawElementsContext);\nexport const useExcalidrawAppState = () =>\n useContext(ExcalidrawAppStateContext);\nexport const useExcalidrawSetAppState = () =>\n useContext(ExcalidrawSetAppStateContext);\nexport const useExcalidrawActionManager = () =>\n useContext(ExcalidrawActionManagerContext);\n\nlet didTapTwice: boolean = false;\nlet tappedTwiceTimer = 0;\nlet isHoldingSpace: boolean = false;\nlet isPanning: boolean = false;\nlet isDraggingScrollBar: boolean = false;\nlet currentScrollBars: ScrollBars = { horizontal: null, vertical: null };\nlet touchTimeout = 0;\nlet invalidateContextMenu = false;\n\n/**\n * Map of youtube embed video states\n */\nconst YOUTUBE_VIDEO_STATES = new Map<\n ExcalidrawElement[\"id\"],\n ValueOf\n>();\n\nlet IS_PLAIN_PASTE = false;\nlet IS_PLAIN_PASTE_TIMER = 0;\nlet PLAIN_PASTE_TOAST_SHOWN = false;\n\nlet lastPointerUp: (() => void) | null = null;\nconst gesture: Gesture = {\n pointers: new Map(),\n lastCenter: null,\n initialDistance: null,\n initialScale: null,\n};\n\nclass App extends React.Component {\n canvas: AppClassProperties[\"canvas\"];\n interactiveCanvas: AppClassProperties[\"interactiveCanvas\"] = null;\n rc: RoughCanvas;\n unmounted: boolean = false;\n actionManager: ActionManager;\n device: Device = deviceContextInitialValue;\n\n private excalidrawContainerRef = React.createRef();\n\n public scene: Scene;\n public renderer: Renderer;\n private fonts: Fonts;\n private resizeObserver: ResizeObserver | undefined;\n private nearestScrollableContainer: HTMLElement | Document | undefined;\n public library: AppClassProperties[\"library\"];\n public libraryItemsFromStorage: LibraryItems | undefined;\n public id: string;\n private history: History;\n private excalidrawContainerValue: {\n container: HTMLDivElement | null;\n id: string;\n };\n\n public files: BinaryFiles = {};\n public imageCache: AppClassProperties[\"imageCache\"] = new Map();\n private iFrameRefs = new Map();\n /**\n * Indicates whether the embeddable's url has been validated for rendering.\n * If value not set, indicates that the validation is pending.\n * Initially or on url change the flag is not reset so that we can guarantee\n * the validation came from a trusted source (the editor).\n **/\n private embedsValidationStatus: EmbedsValidationStatus = new Map();\n /** embeds that have been inserted to DOM (as a perf optim, we don't want to\n * insert to DOM before user initially scrolls to them) */\n private initializedEmbeds = new Set();\n\n private elementsPendingErasure: ElementsPendingErasure = new Set();\n\n hitLinkElement?: NonDeletedExcalidrawElement;\n lastPointerDownEvent: React.PointerEvent | null = null;\n lastPointerUpEvent: React.PointerEvent | PointerEvent | null =\n null;\n lastPointerMoveEvent: PointerEvent | null = null;\n lastViewportPosition = { x: 0, y: 0 };\n\n animationFrameHandler = new AnimationFrameHandler();\n\n laserTrails = new LaserTrails(this.animationFrameHandler, this);\n eraserTrail = new AnimatedTrail(this.animationFrameHandler, this, {\n streamline: 0.2,\n size: 5,\n keepHead: true,\n sizeMapping: (c) => {\n const DECAY_TIME = 200;\n const DECAY_LENGTH = 10;\n const t = Math.max(0, 1 - (performance.now() - c.pressure) / DECAY_TIME);\n const l =\n (DECAY_LENGTH -\n Math.min(DECAY_LENGTH, c.totalLength - c.currentIndex)) /\n DECAY_LENGTH;\n\n return Math.min(easeOut(l), easeOut(t));\n },\n fill: () =>\n this.state.theme === THEME.LIGHT\n ? \"rgba(0, 0, 0, 0.2)\"\n : \"rgba(255, 255, 255, 0.2)\",\n });\n\n onChangeEmitter = new Emitter<\n [\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n ]\n >();\n\n onPointerDownEmitter = new Emitter<\n [\n activeTool: AppState[\"activeTool\"],\n pointerDownState: PointerDownState,\n event: React.PointerEvent,\n ]\n >();\n\n onPointerUpEmitter = new Emitter<\n [\n activeTool: AppState[\"activeTool\"],\n pointerDownState: PointerDownState,\n event: PointerEvent,\n ]\n >();\n onUserFollowEmitter = new Emitter<[payload: OnUserFollowedPayload]>();\n onScrollChangeEmitter = new Emitter<\n [scrollX: number, scrollY: number, zoom: AppState[\"zoom\"]]\n >();\n\n missingPointerEventCleanupEmitter = new Emitter<\n [event: PointerEvent | null]\n >();\n onRemoveEventListenersEmitter = new Emitter<[]>();\n\n constructor(props: AppProps) {\n super(props);\n const defaultAppState = getDefaultAppState();\n const {\n excalidrawAPI,\n viewModeEnabled = false,\n zenModeEnabled = false,\n gridModeEnabled = false,\n objectsSnapModeEnabled = false,\n theme = defaultAppState.theme,\n name = `${t(\"labels.untitled\")}-${getDateTime()}`,\n } = props;\n this.state = {\n ...defaultAppState,\n theme,\n isLoading: true,\n ...this.getCanvasOffsets(),\n viewModeEnabled,\n zenModeEnabled,\n objectsSnapModeEnabled,\n gridSize: gridModeEnabled ? GRID_SIZE : null,\n name,\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n this.id = nanoid();\n this.library = new Library(this);\n this.actionManager = new ActionManager(\n this.syncActionResult,\n () => this.state,\n () => this.scene.getElementsIncludingDeleted(),\n this,\n );\n this.scene = new Scene();\n\n this.canvas = document.createElement(\"canvas\");\n this.rc = rough.canvas(this.canvas);\n this.renderer = new Renderer(this.scene);\n if (excalidrawAPI) {\n const api: ExcalidrawImperativeAPI = {\n updateScene: this.updateScene,\n updateLibrary: this.library.updateLibrary,\n addFiles: this.addFiles,\n resetScene: this.resetScene,\n getSceneElementsIncludingDeleted: this.getSceneElementsIncludingDeleted,\n history: {\n clear: this.resetHistory,\n },\n scrollToContent: this.scrollToContent,\n getSceneElements: this.getSceneElements,\n getAppState: () => this.state,\n getFiles: () => this.files,\n getName: this.getName,\n registerAction: (action: Action) => {\n this.actionManager.registerAction(action);\n },\n refresh: this.refresh,\n setToast: this.setToast,\n id: this.id,\n setActiveTool: this.setActiveTool,\n setCursor: this.setCursor,\n resetCursor: this.resetCursor,\n updateFrameRendering: this.updateFrameRendering,\n toggleSidebar: this.toggleSidebar,\n onChange: (cb) => this.onChangeEmitter.on(cb),\n onPointerDown: (cb) => this.onPointerDownEmitter.on(cb),\n onPointerUp: (cb) => this.onPointerUpEmitter.on(cb),\n onScrollChange: (cb) => this.onScrollChangeEmitter.on(cb),\n onUserFollow: (cb) => this.onUserFollowEmitter.on(cb),\n } as const;\n if (typeof excalidrawAPI === \"function\") {\n excalidrawAPI(api);\n } else {\n console.error(\"excalidrawAPI should be a function!\");\n }\n }\n\n this.excalidrawContainerValue = {\n container: this.excalidrawContainerRef.current,\n id: this.id,\n };\n\n this.fonts = new Fonts({\n scene: this.scene,\n onSceneUpdated: this.onSceneUpdated,\n });\n this.history = new History();\n this.actionManager.registerAll(actions);\n\n this.actionManager.registerAction(createUndoAction(this.history));\n this.actionManager.registerAction(createRedoAction(this.history));\n }\n\n private onWindowMessage(event: MessageEvent) {\n if (\n event.origin !== \"https://player.vimeo.com\" &&\n event.origin !== \"https://www.youtube.com\"\n ) {\n return;\n }\n\n let data = null;\n try {\n data = JSON.parse(event.data);\n } catch (e) {}\n if (!data) {\n return;\n }\n\n switch (event.origin) {\n case \"https://player.vimeo.com\":\n //Allowing for multiple instances of Excalidraw running in the window\n if (data.method === \"paused\") {\n let source: Window | null = null;\n const iframes = document.body.querySelectorAll(\n \"iframe.excalidraw__embeddable\",\n );\n if (!iframes) {\n break;\n }\n for (const iframe of iframes as NodeListOf) {\n if (iframe.contentWindow === event.source) {\n source = iframe.contentWindow;\n }\n }\n source?.postMessage(\n JSON.stringify({\n method: data.value ? \"play\" : \"pause\",\n value: true,\n }),\n \"*\",\n );\n }\n break;\n case \"https://www.youtube.com\":\n if (\n data.event === \"infoDelivery\" &&\n data.info &&\n data.id &&\n typeof data.info.playerState === \"number\"\n ) {\n const id = data.id;\n const playerState = data.info.playerState as number;\n if (\n (Object.values(YOUTUBE_STATES) as number[]).includes(playerState)\n ) {\n YOUTUBE_VIDEO_STATES.set(\n id,\n playerState as ValueOf,\n );\n }\n }\n break;\n }\n }\n\n private cacheEmbeddableRef(\n element: ExcalidrawIframeLikeElement,\n ref: HTMLIFrameElement | null,\n ) {\n if (ref) {\n this.iFrameRefs.set(element.id, ref);\n }\n }\n\n private getHTMLIFrameElement(\n element: ExcalidrawIframeLikeElement,\n ): HTMLIFrameElement | undefined {\n return this.iFrameRefs.get(element.id);\n }\n\n private handleEmbeddableCenterClick(element: ExcalidrawIframeLikeElement) {\n if (\n this.state.activeEmbeddable?.element === element &&\n this.state.activeEmbeddable?.state === \"active\"\n ) {\n return;\n }\n\n // The delay serves two purposes\n // 1. To prevent first click propagating to iframe on mobile,\n // else the click will immediately start and stop the video\n // 2. If the user double clicks the frame center to activate it\n // without the delay youtube will immediately open the video\n // in fullscreen mode\n setTimeout(() => {\n this.setState({\n activeEmbeddable: { element, state: \"active\" },\n selectedElementIds: { [element.id]: true },\n draggingElement: null,\n selectionElement: null,\n });\n }, 100);\n\n if (isIframeElement(element)) {\n return;\n }\n\n const iframe = this.getHTMLIFrameElement(element);\n\n if (!iframe?.contentWindow) {\n return;\n }\n\n if (iframe.src.includes(\"youtube\")) {\n const state = YOUTUBE_VIDEO_STATES.get(element.id);\n if (!state) {\n YOUTUBE_VIDEO_STATES.set(element.id, YOUTUBE_STATES.UNSTARTED);\n iframe.contentWindow.postMessage(\n JSON.stringify({\n event: \"listening\",\n id: element.id,\n }),\n \"*\",\n );\n }\n switch (state) {\n case YOUTUBE_STATES.PLAYING:\n case YOUTUBE_STATES.BUFFERING:\n iframe.contentWindow?.postMessage(\n JSON.stringify({\n event: \"command\",\n func: \"pauseVideo\",\n args: \"\",\n }),\n \"*\",\n );\n break;\n default:\n iframe.contentWindow?.postMessage(\n JSON.stringify({\n event: \"command\",\n func: \"playVideo\",\n args: \"\",\n }),\n \"*\",\n );\n }\n }\n\n if (iframe.src.includes(\"player.vimeo.com\")) {\n iframe.contentWindow.postMessage(\n JSON.stringify({\n method: \"paused\", //video play/pause in onWindowMessage handler\n }),\n \"*\",\n );\n }\n }\n\n private isIframeLikeElementCenter(\n el: ExcalidrawIframeLikeElement | null,\n event: React.PointerEvent | PointerEvent,\n sceneX: number,\n sceneY: number,\n ) {\n return (\n el &&\n !event.altKey &&\n !event.shiftKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n (this.state.activeEmbeddable?.element !== el ||\n this.state.activeEmbeddable?.state === \"hover\" ||\n !this.state.activeEmbeddable) &&\n sceneX >= el.x + el.width / 3 &&\n sceneX <= el.x + (2 * el.width) / 3 &&\n sceneY >= el.y + el.height / 3 &&\n sceneY <= el.y + (2 * el.height) / 3\n );\n }\n\n private updateEmbedValidationStatus = (\n element: ExcalidrawEmbeddableElement,\n status: boolean,\n ) => {\n this.embedsValidationStatus.set(element.id, status);\n ShapeCache.delete(element);\n };\n\n private updateEmbeddables = () => {\n const iframeLikes = new Set();\n\n let updated = false;\n this.scene.getNonDeletedElements().filter((element) => {\n if (isEmbeddableElement(element)) {\n iframeLikes.add(element.id);\n if (!this.embedsValidationStatus.has(element.id)) {\n updated = true;\n\n const validated = embeddableURLValidator(\n element.link,\n this.props.validateEmbeddable,\n );\n\n this.updateEmbedValidationStatus(element, validated);\n }\n } else if (isIframeElement(element)) {\n iframeLikes.add(element.id);\n }\n return false;\n });\n\n if (updated) {\n this.scene.informMutation();\n }\n\n // GC\n this.iFrameRefs.forEach((ref, id) => {\n if (!iframeLikes.has(id)) {\n this.iFrameRefs.delete(id);\n }\n });\n };\n\n private renderEmbeddables() {\n const scale = this.state.zoom.value;\n const normalizedWidth = this.state.width;\n const normalizedHeight = this.state.height;\n\n const embeddableElements = this.scene\n .getNonDeletedElements()\n .filter(\n (el): el is NonDeleted =>\n (isEmbeddableElement(el) &&\n this.embedsValidationStatus.get(el.id) === true) ||\n isIframeElement(el),\n );\n\n return (\n <>\n {embeddableElements.map((el) => {\n const { x, y } = sceneCoordsToViewportCoords(\n { sceneX: el.x, sceneY: el.y },\n this.state,\n );\n\n const isVisible = isElementInViewport(\n el,\n normalizedWidth,\n normalizedHeight,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n const hasBeenInitialized = this.initializedEmbeds.has(el.id);\n\n if (isVisible && !hasBeenInitialized) {\n this.initializedEmbeds.add(el.id);\n }\n const shouldRender = isVisible || hasBeenInitialized;\n\n if (!shouldRender) {\n return null;\n }\n\n let src: IframeData | null;\n\n if (isIframeElement(el)) {\n src = null;\n\n const data: MagicCacheData = (el.customData?.generationData ??\n this.magicGenerations.get(el.id)) || {\n status: \"error\",\n message: \"No generation data\",\n code: \"ERR_NO_GENERATION_DATA\",\n };\n\n if (data.status === \"done\") {\n const html = data.html;\n src = {\n intrinsicSize: { w: el.width, h: el.height },\n type: \"document\",\n srcdoc: () => {\n return html;\n },\n } as const;\n } else if (data.status === \"pending\") {\n src = {\n intrinsicSize: { w: el.width, h: el.height },\n type: \"document\",\n srcdoc: () => {\n return createSrcDoc(`\n \n
    \n \n \n \n
    \n
    Generating...
    \n `);\n },\n } as const;\n } else {\n let message: string;\n if (data.code === \"ERR_GENERATION_INTERRUPTED\") {\n message = \"Generation was interrupted...\";\n } else {\n message = data.message || \"Generation failed\";\n }\n src = {\n intrinsicSize: { w: el.width, h: el.height },\n type: \"document\",\n srcdoc: () => {\n return createSrcDoc(`\n \n

    Error!

    \n

    ${message}

    \n `);\n },\n } as const;\n }\n } else {\n src = getEmbedLink(toValidURL(el.link || \"\"));\n }\n\n const isActive =\n this.state.activeEmbeddable?.element === el &&\n this.state.activeEmbeddable?.state === \"active\";\n const isHovered =\n this.state.activeEmbeddable?.element === el &&\n this.state.activeEmbeddable?.state === \"hover\";\n\n return (\n \n {\n if (!this.excalidrawContainerRef.current) {\n return;\n }\n const container = this.excalidrawContainerRef.current;\n const sh = container.scrollHeight;\n const ch = container.clientHeight;\n if (sh !== ch) {\n container.style.height = `${sh}px`;\n setTimeout(() => {\n container.style.height = `100%`;\n });\n }\n }}*/\n className=\"excalidraw__embeddable-container__inner\"\n style={{\n width: isVisible ? `${el.width}px` : 0,\n height: isVisible ? `${el.height}px` : 0,\n transform: isVisible ? `rotate(${el.angle}rad)` : \"none\",\n pointerEvents: isActive\n ? POINTER_EVENTS.enabled\n : POINTER_EVENTS.disabled,\n }}\n >\n {isHovered && (\n
    \n {t(\"buttons.embeddableInteractionButton\")}\n
    \n )}\n \n {(isEmbeddableElement(el)\n ? this.props.renderEmbeddable?.(el, this.state)\n : null) ?? (\n this.cacheEmbeddableRef(el, ref)}\n className=\"excalidraw__embeddable\"\n srcDoc={\n src?.type === \"document\"\n ? src.srcdoc(this.state.theme)\n : undefined\n }\n src={\n src?.type !== \"document\" ? src?.link ?? \"\" : undefined\n }\n // https://stackoverflow.com/q/18470015\n scrolling=\"no\"\n referrerPolicy=\"no-referrer-when-downgrade\"\n title=\"Excalidraw Embedded Content\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen={true}\n sandbox=\"allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads\"\n />\n )}\n \n \n \n );\n })}\n \n );\n }\n\n private getFrameNameDOMId = (frameElement: ExcalidrawElement) => {\n return `${this.id}-frame-name-${frameElement.id}`;\n };\n\n frameNameBoundsCache: FrameNameBoundsCache = {\n get: (frameElement) => {\n let bounds = this.frameNameBoundsCache._cache.get(frameElement.id);\n if (\n !bounds ||\n bounds.zoom !== this.state.zoom.value ||\n bounds.versionNonce !== frameElement.versionNonce\n ) {\n const frameNameDiv = document.getElementById(\n this.getFrameNameDOMId(frameElement),\n );\n\n if (frameNameDiv) {\n const box = frameNameDiv.getBoundingClientRect();\n const boxSceneTopLeft = viewportCoordsToSceneCoords(\n { clientX: box.x, clientY: box.y },\n this.state,\n );\n const boxSceneBottomRight = viewportCoordsToSceneCoords(\n { clientX: box.right, clientY: box.bottom },\n this.state,\n );\n\n bounds = {\n x: boxSceneTopLeft.x,\n y: boxSceneTopLeft.y,\n width: boxSceneBottomRight.x - boxSceneTopLeft.x,\n height: boxSceneBottomRight.y - boxSceneTopLeft.y,\n angle: 0,\n zoom: this.state.zoom.value,\n versionNonce: frameElement.versionNonce,\n };\n\n this.frameNameBoundsCache._cache.set(frameElement.id, bounds);\n\n return bounds;\n }\n return null;\n }\n\n return bounds;\n },\n /**\n * @private\n */\n _cache: new Map(),\n };\n\n private renderFrameNames = () => {\n if (!this.state.frameRendering.enabled || !this.state.frameRendering.name) {\n return null;\n }\n\n const isDarkTheme = this.state.theme === \"dark\";\n\n let frameIndex = 0;\n let magicFrameIndex = 0;\n\n return this.scene.getNonDeletedFramesLikes().map((f) => {\n if (isFrameElement(f)) {\n frameIndex++;\n } else {\n magicFrameIndex++;\n }\n if (\n !isElementInViewport(\n f,\n this.canvas.width / window.devicePixelRatio,\n this.canvas.height / window.devicePixelRatio,\n {\n offsetLeft: this.state.offsetLeft,\n offsetTop: this.state.offsetTop,\n scrollX: this.state.scrollX,\n scrollY: this.state.scrollY,\n zoom: this.state.zoom,\n },\n this.scene.getNonDeletedElementsMap(),\n )\n ) {\n // if frame not visible, don't render its name\n return null;\n }\n\n const { x: x1, y: y1 } = sceneCoordsToViewportCoords(\n { sceneX: f.x, sceneY: f.y },\n this.state,\n );\n\n const FRAME_NAME_EDIT_PADDING = 6;\n\n const reset = () => {\n mutateElement(f, { name: f.name?.trim() || null });\n this.setState({ editingFrame: null });\n };\n\n let frameNameJSX;\n\n const frameName = getFrameLikeTitle(\n f,\n isFrameElement(f) ? frameIndex : magicFrameIndex,\n );\n\n if (f.id === this.state.editingFrame) {\n const frameNameInEdit = frameName;\n\n frameNameJSX = (\n {\n mutateElement(f, {\n name: e.target.value,\n });\n }}\n onFocus={(e) => e.target.select()}\n onBlur={() => reset()}\n onKeyDown={(event) => {\n // for some inexplicable reason, `onBlur` triggered on ESC\n // does not reset `state.editingFrame` despite being called,\n // and we need to reset it here as well\n if (event.key === KEYS.ESCAPE || event.key === KEYS.ENTER) {\n reset();\n }\n }}\n style={{\n background: this.state.viewBackgroundColor,\n filter: isDarkTheme ? THEME_FILTER : \"none\",\n zIndex: 2,\n border: \"none\",\n display: \"block\",\n padding: `${FRAME_NAME_EDIT_PADDING}px`,\n borderRadius: 4,\n boxShadow: \"inset 0 0 0 1px var(--color-primary)\",\n fontFamily: \"Assistant\",\n fontSize: \"14px\",\n transform: `translate(-${FRAME_NAME_EDIT_PADDING}px, ${FRAME_NAME_EDIT_PADDING}px)`,\n color: \"var(--color-gray-80)\",\n overflow: \"hidden\",\n maxWidth: `${\n document.body.clientWidth - x1 - FRAME_NAME_EDIT_PADDING\n }px`,\n }}\n size={frameNameInEdit.length + 1 || 1}\n dir=\"auto\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoCorrect=\"off\"\n />\n );\n } else {\n frameNameJSX = frameName;\n }\n\n return (\n this.handleCanvasPointerDown(event)}\n onWheel={(event) => this.handleWheel(event)}\n onContextMenu={this.handleCanvasContextMenu}\n onDoubleClick={() => {\n this.setState({\n editingFrame: f.id,\n });\n }}\n >\n {frameNameJSX}\n \n );\n });\n };\n\n private toggleOverscrollBehavior(event: React.PointerEvent) {\n // when pointer inside editor, disable overscroll behavior to prevent\n // panning to trigger history back/forward on MacOS Chrome\n document.documentElement.style.overscrollBehaviorX =\n event.type === \"pointerenter\" ? \"none\" : \"auto\";\n }\n\n public render() {\n const selectedElements = this.scene.getSelectedElements(this.state);\n const { renderTopRightUI, renderCustomStats } = this.props;\n\n const versionNonce = this.scene.getVersionNonce();\n const { elementsMap, visibleElements } =\n this.renderer.getRenderableElements({\n versionNonce,\n zoom: this.state.zoom,\n offsetLeft: this.state.offsetLeft,\n offsetTop: this.state.offsetTop,\n scrollX: this.state.scrollX,\n scrollY: this.state.scrollY,\n height: this.state.height,\n width: this.state.width,\n editingElement: this.state.editingElement,\n pendingImageElementId: this.state.pendingImageElementId,\n });\n\n const allElementsMap = this.scene.getNonDeletedElementsMap();\n\n const shouldBlockPointerEvents =\n !(\n this.state.editingElement && isLinearElement(this.state.editingElement)\n ) &&\n (this.state.selectionElement ||\n this.state.draggingElement ||\n this.state.resizingElement ||\n (this.state.activeTool.type === \"laser\" &&\n // technically we can just test on this once we make it more safe\n this.state.cursorButton === \"down\") ||\n (this.state.editingElement &&\n !isTextElement(this.state.editingElement)));\n\n const firstSelectedElement = selectedElements[0];\n\n return (\n \n \n \n \n \n \n \n \n \n \n {this.props.children}\n \n\n
    \n
    \n
    \n \n {selectedElements.length === 1 &&\n this.state.showHyperlinkPopup && (\n \n )}\n {this.props.aiEnabled !== false &&\n selectedElements.length === 1 &&\n isMagicFrameElement(firstSelectedElement) && (\n \n \n this.onMagicFrameGenerate(\n firstSelectedElement,\n \"button\",\n )\n }\n />\n \n )}\n {selectedElements.length === 1 &&\n isIframeElement(firstSelectedElement) &&\n firstSelectedElement.customData?.generationData\n ?.status === \"done\" && (\n \n \n this.onIframeSrcCopy(firstSelectedElement)\n }\n />\n {\n const iframe =\n this.getHTMLIFrameElement(\n firstSelectedElement,\n );\n if (iframe) {\n try {\n iframe.requestFullscreen();\n this.setState({\n activeEmbeddable: {\n element: firstSelectedElement,\n state: \"active\",\n },\n selectedElementIds: {\n [firstSelectedElement.id]: true,\n },\n draggingElement: null,\n selectionElement: null,\n });\n } catch (err: any) {\n console.warn(err);\n this.setState({\n errorMessage:\n \"Couldn't enter fullscreen\",\n });\n }\n }\n }}\n />\n \n )}\n {this.state.toast !== null && (\n this.setToast(null)}\n duration={this.state.toast.duration}\n closable={this.state.toast.closable}\n />\n )}\n {this.state.contextMenu && (\n {\n this.setState({ contextMenu: null }, () => {\n this.focusContainer();\n callback?.();\n });\n }}\n />\n )}\n \n \n {this.state.userToFollow && (\n \n )}\n {this.renderFrameNames()}\n \n {this.renderEmbeddables()}\n \n \n \n \n \n \n \n
    \n );\n }\n\n public focusContainer: AppClassProperties[\"focusContainer\"] = () => {\n this.excalidrawContainerRef.current?.focus();\n };\n\n public getSceneElementsIncludingDeleted = () => {\n return this.scene.getElementsIncludingDeleted();\n };\n\n public getSceneElements = () => {\n return this.scene.getNonDeletedElements();\n };\n\n public onInsertElements = (elements: readonly ExcalidrawElement[]) => {\n this.addElementsFromPasteOrLibrary({\n elements,\n position: \"center\",\n files: null,\n });\n };\n\n public onExportImage = async (\n type: keyof typeof EXPORT_IMAGE_TYPES,\n elements: ExportedElements,\n opts: { exportingFrame: ExcalidrawFrameLikeElement | null },\n ) => {\n trackEvent(\"export\", type, \"ui\");\n const fileHandle = await exportCanvas(\n type,\n elements,\n this.state,\n this.files,\n {\n exportBackground: this.state.exportBackground,\n name: this.getName(),\n viewBackgroundColor: this.state.viewBackgroundColor,\n exportingFrame: opts.exportingFrame,\n },\n )\n .catch(muteFSAbortError)\n .catch((error) => {\n console.error(error);\n this.setState({ errorMessage: error.message });\n });\n\n if (\n this.state.exportEmbedScene &&\n fileHandle &&\n isImageFileHandle(fileHandle)\n ) {\n this.setState({ fileHandle });\n }\n };\n\n private magicGenerations = new Map<\n ExcalidrawIframeElement[\"id\"],\n MagicCacheData\n >();\n\n private updateMagicGeneration = ({\n frameElement,\n data,\n }: {\n frameElement: ExcalidrawIframeElement;\n data: MagicCacheData;\n }) => {\n if (data.status === \"pending\") {\n // We don't wanna persist pending state to storage. It should be in-app\n // state only.\n // Thus reset so that we prefer local cache (if there was some\n // generationData set previously)\n mutateElement(\n frameElement,\n { customData: { generationData: undefined } },\n false,\n );\n } else {\n mutateElement(\n frameElement,\n { customData: { generationData: data } },\n false,\n );\n }\n this.magicGenerations.set(frameElement.id, data);\n this.onSceneUpdated();\n };\n\n private getTextFromElements(elements: readonly ExcalidrawElement[]) {\n const text = elements\n .reduce((acc: string[], element) => {\n if (isTextElement(element)) {\n acc.push(element.text);\n }\n return acc;\n }, [])\n .join(\"\\n\\n\");\n return text;\n }\n\n private async onMagicFrameGenerate(\n magicFrame: ExcalidrawMagicFrameElement,\n source: \"button\" | \"upstream\",\n ) {\n if (!this.OPENAI_KEY) {\n this.setState({\n openDialog: {\n name: \"settings\",\n tab: \"diagram-to-code\",\n source: \"generation\",\n },\n });\n trackEvent(\"ai\", \"generate (missing key)\", \"d2c\");\n return;\n }\n\n const magicFrameChildren = getElementsOverlappingFrame(\n this.scene.getNonDeletedElements(),\n magicFrame,\n ).filter((el) => !isMagicFrameElement(el));\n\n if (!magicFrameChildren.length) {\n if (source === \"button\") {\n this.setState({ errorMessage: \"Cannot generate from an empty frame\" });\n trackEvent(\"ai\", \"generate (no-children)\", \"d2c\");\n } else {\n this.setActiveTool({ type: \"magicframe\" });\n }\n return;\n }\n\n const frameElement = this.insertIframeElement({\n sceneX: magicFrame.x + magicFrame.width + 30,\n sceneY: magicFrame.y,\n width: magicFrame.width,\n height: magicFrame.height,\n });\n\n if (!frameElement) {\n return;\n }\n\n this.updateMagicGeneration({\n frameElement,\n data: { status: \"pending\" },\n });\n\n this.setState({\n selectedElementIds: { [frameElement.id]: true },\n });\n\n const blob = await exportToBlob({\n elements: this.scene.getNonDeletedElements(),\n appState: {\n ...this.state,\n exportBackground: true,\n viewBackgroundColor: this.state.viewBackgroundColor,\n },\n exportingFrame: magicFrame,\n files: this.files,\n });\n\n const dataURL = await getDataURL(blob);\n\n const textFromFrameChildren = this.getTextFromElements(magicFrameChildren);\n\n trackEvent(\"ai\", \"generate (start)\", \"d2c\");\n\n const result = await diagramToHTML({\n image: dataURL,\n apiKey: this.OPENAI_KEY,\n text: textFromFrameChildren,\n theme: this.state.theme,\n });\n\n if (!result.ok) {\n trackEvent(\"ai\", \"generate (failed)\", \"d2c\");\n console.error(result.error);\n this.updateMagicGeneration({\n frameElement,\n data: {\n status: \"error\",\n code: \"ERR_OAI\",\n message: result.error?.message || \"Unknown error during generation\",\n },\n });\n return;\n }\n trackEvent(\"ai\", \"generate (success)\", \"d2c\");\n\n if (result.choices[0].message.content == null) {\n this.updateMagicGeneration({\n frameElement,\n data: {\n status: \"error\",\n code: \"ERR_OAI\",\n message: \"Nothing genereated :(\",\n },\n });\n return;\n }\n\n const message = result.choices[0].message.content;\n\n const html = message.slice(\n message.indexOf(\"\"),\n message.indexOf(\"\") + \"\".length,\n );\n\n this.updateMagicGeneration({\n frameElement,\n data: { status: \"done\", html },\n });\n }\n\n private onIframeSrcCopy(element: ExcalidrawIframeElement) {\n if (element.customData?.generationData?.status === \"done\") {\n copyTextToSystemClipboard(element.customData.generationData.html);\n this.setToast({\n message: \"copied to clipboard\",\n closable: false,\n duration: 1500,\n });\n }\n }\n\n private OPENAI_KEY: string | null = EditorLocalStorage.get(\n EDITOR_LS_KEYS.OAI_API_KEY,\n );\n private OPENAI_KEY_IS_PERSISTED: boolean =\n EditorLocalStorage.has(EDITOR_LS_KEYS.OAI_API_KEY) || false;\n\n private onOpenAIKeyChange = (\n openAIKey: string | null,\n shouldPersist: boolean,\n ) => {\n this.OPENAI_KEY = openAIKey || null;\n if (shouldPersist) {\n const didPersist = EditorLocalStorage.set(\n EDITOR_LS_KEYS.OAI_API_KEY,\n openAIKey,\n );\n this.OPENAI_KEY_IS_PERSISTED = didPersist;\n } else {\n this.OPENAI_KEY_IS_PERSISTED = false;\n }\n };\n\n private onMagicSettingsConfirm = (\n apiKey: string,\n shouldPersist: boolean,\n source: \"tool\" | \"generation\" | \"settings\",\n ) => {\n this.OPENAI_KEY = apiKey || null;\n this.onOpenAIKeyChange(this.OPENAI_KEY, shouldPersist);\n\n if (source === \"settings\") {\n return;\n }\n\n const selectedElements = this.scene.getSelectedElements({\n selectedElementIds: this.state.selectedElementIds,\n });\n\n if (apiKey) {\n if (selectedElements.length) {\n this.onMagicframeToolSelect();\n } else {\n this.setActiveTool({ type: \"magicframe\" });\n }\n } else if (!isMagicFrameElement(selectedElements[0])) {\n // even if user didn't end up setting api key, let's pick the tool\n // so they can draw up a frame and move forward\n this.setActiveTool({ type: \"magicframe\" });\n }\n };\n\n public onMagicframeToolSelect = () => {\n if (!this.OPENAI_KEY) {\n this.setState({\n openDialog: {\n name: \"settings\",\n tab: \"diagram-to-code\",\n source: \"tool\",\n },\n });\n trackEvent(\"ai\", \"tool-select (missing key)\", \"d2c\");\n return;\n }\n\n const selectedElements = this.scene.getSelectedElements({\n selectedElementIds: this.state.selectedElementIds,\n });\n\n if (selectedElements.length === 0) {\n this.setActiveTool({ type: TOOL_TYPE.magicframe });\n trackEvent(\"ai\", \"tool-select (empty-selection)\", \"d2c\");\n } else {\n const selectedMagicFrame: ExcalidrawMagicFrameElement | false =\n selectedElements.length === 1 &&\n isMagicFrameElement(selectedElements[0]) &&\n selectedElements[0];\n\n // case: user selected elements containing frame-like(s) or are frame\n // members, we don't want to wrap into another magicframe\n // (unless the only selected element is a magic frame which we reuse)\n if (\n !selectedMagicFrame &&\n selectedElements.some((el) => isFrameLikeElement(el) || el.frameId)\n ) {\n this.setActiveTool({ type: TOOL_TYPE.magicframe });\n return;\n }\n\n trackEvent(\"ai\", \"tool-select (existing selection)\", \"d2c\");\n\n let frame: ExcalidrawMagicFrameElement;\n if (selectedMagicFrame) {\n // a single magicframe already selected -> use it\n frame = selectedMagicFrame;\n } else {\n // selected elements aren't wrapped in magic frame yet -> wrap now\n\n const [minX, minY, maxX, maxY] = getCommonBounds(selectedElements);\n const padding = 50;\n\n frame = newMagicFrameElement({\n ...FRAME_STYLE,\n x: minX - padding,\n y: minY - padding,\n width: maxX - minX + padding * 2,\n height: maxY - minY + padding * 2,\n opacity: 100,\n locked: false,\n });\n\n this.scene.addNewElement(frame);\n\n for (const child of selectedElements) {\n mutateElement(child, { frameId: frame.id });\n }\n\n this.setState({\n selectedElementIds: { [frame.id]: true },\n });\n }\n\n this.onMagicFrameGenerate(frame, \"upstream\");\n }\n };\n\n private openEyeDropper = ({ type }: { type: \"stroke\" | \"background\" }) => {\n jotaiStore.set(activeEyeDropperAtom, {\n swapPreviewOnAlt: true,\n colorPickerType:\n type === \"stroke\" ? \"elementStroke\" : \"elementBackground\",\n onSelect: (color, event) => {\n const shouldUpdateStrokeColor =\n (type === \"background\" && event.altKey) ||\n (type === \"stroke\" && !event.altKey);\n const selectedElements = this.scene.getSelectedElements(this.state);\n if (\n !selectedElements.length ||\n this.state.activeTool.type !== \"selection\"\n ) {\n if (shouldUpdateStrokeColor) {\n this.syncActionResult({\n appState: { ...this.state, currentItemStrokeColor: color },\n commitToHistory: true,\n });\n } else {\n this.syncActionResult({\n appState: { ...this.state, currentItemBackgroundColor: color },\n commitToHistory: true,\n });\n }\n } else {\n this.updateScene({\n elements: this.scene.getElementsIncludingDeleted().map((el) => {\n if (this.state.selectedElementIds[el.id]) {\n return newElementWith(el, {\n [shouldUpdateStrokeColor ? \"strokeColor\" : \"backgroundColor\"]:\n color,\n });\n }\n return el;\n }),\n });\n }\n },\n keepOpenOnAlt: false,\n });\n };\n\n private syncActionResult = withBatchedUpdates(\n (actionResult: ActionResult) => {\n if (this.unmounted || actionResult === false) {\n return;\n }\n\n let editingElement: AppState[\"editingElement\"] | null = null;\n if (actionResult.elements) {\n actionResult.elements.forEach((element) => {\n if (\n this.state.editingElement?.id === element.id &&\n this.state.editingElement !== element &&\n isNonDeletedElement(element)\n ) {\n editingElement = element;\n }\n });\n this.scene.replaceAllElements(actionResult.elements);\n if (actionResult.commitToHistory) {\n this.history.resumeRecording();\n }\n }\n\n if (actionResult.files) {\n this.files = actionResult.replaceFiles\n ? actionResult.files\n : { ...this.files, ...actionResult.files };\n this.addNewImagesToImageCache();\n }\n\n if (actionResult.appState || editingElement || this.state.contextMenu) {\n if (actionResult.commitToHistory) {\n this.history.resumeRecording();\n }\n\n let viewModeEnabled = actionResult?.appState?.viewModeEnabled || false;\n let zenModeEnabled = actionResult?.appState?.zenModeEnabled || false;\n let gridSize = actionResult?.appState?.gridSize || null;\n const theme =\n actionResult?.appState?.theme || this.props.theme || THEME.LIGHT;\n const name = actionResult?.appState?.name ?? this.state.name;\n const errorMessage =\n actionResult?.appState?.errorMessage ?? this.state.errorMessage;\n if (typeof this.props.viewModeEnabled !== \"undefined\") {\n viewModeEnabled = this.props.viewModeEnabled;\n }\n\n if (typeof this.props.zenModeEnabled !== \"undefined\") {\n zenModeEnabled = this.props.zenModeEnabled;\n }\n\n if (typeof this.props.gridModeEnabled !== \"undefined\") {\n gridSize = this.props.gridModeEnabled ? GRID_SIZE : null;\n }\n\n editingElement =\n editingElement || actionResult.appState?.editingElement || null;\n\n if (editingElement?.isDeleted) {\n editingElement = null;\n }\n\n this.setState(\n (state) => {\n // using Object.assign instead of spread to fool TS 4.2.2+ into\n // regarding the resulting type as not containing undefined\n // (which the following expression will never contain)\n return Object.assign(actionResult.appState || {}, {\n // NOTE this will prevent opening context menu using an action\n // or programmatically from the host, so it will need to be\n // rewritten later\n contextMenu: null,\n editingElement,\n viewModeEnabled,\n zenModeEnabled,\n gridSize,\n theme,\n name,\n errorMessage,\n });\n },\n () => {\n if (actionResult.syncHistory) {\n this.history.setCurrentState(\n this.state,\n this.scene.getElementsIncludingDeleted(),\n );\n }\n },\n );\n }\n },\n );\n\n // Lifecycle\n\n private onBlur = withBatchedUpdates(() => {\n isHoldingSpace = false;\n this.setState({ isBindingEnabled: true });\n });\n\n private onUnload = () => {\n this.onBlur();\n };\n\n private disableEvent: EventListener = (event) => {\n event.preventDefault();\n };\n\n private resetHistory = () => {\n this.history.clear();\n };\n\n /**\n * Resets scene & history.\n * ! Do not use to clear scene user action !\n */\n private resetScene = withBatchedUpdates(\n (opts?: { resetLoadingState: boolean }) => {\n this.scene.replaceAllElements([]);\n this.setState((state) => ({\n ...getDefaultAppState(),\n isLoading: opts?.resetLoadingState ? false : state.isLoading,\n theme: this.state.theme,\n }));\n this.resetHistory();\n },\n );\n\n private initializeScene = async () => {\n if (\"launchQueue\" in window && \"LaunchParams\" in window) {\n (window as any).launchQueue.setConsumer(\n async (launchParams: { files: any[] }) => {\n if (!launchParams.files.length) {\n return;\n }\n const fileHandle = launchParams.files[0];\n const blob: Blob = await fileHandle.getFile();\n this.loadFileToCanvas(\n new File([blob], blob.name || \"\", { type: blob.type }),\n fileHandle,\n );\n },\n );\n }\n\n if (this.props.theme) {\n this.setState({ theme: this.props.theme });\n }\n if (!this.state.isLoading) {\n this.setState({ isLoading: true });\n }\n let initialData = null;\n try {\n initialData = (await this.props.initialData) || null;\n if (initialData?.libraryItems) {\n this.library\n .updateLibrary({\n libraryItems: initialData.libraryItems,\n merge: true,\n })\n .catch((error) => {\n console.error(error);\n });\n }\n } catch (error: any) {\n console.error(error);\n initialData = {\n appState: {\n errorMessage:\n error.message ||\n \"Encountered an error during importing or restoring scene data\",\n },\n };\n }\n const scene = restore(initialData, null, null, { repairBindings: true });\n scene.appState = {\n ...scene.appState,\n theme: this.props.theme || scene.appState.theme,\n // we're falling back to current (pre-init) state when deciding\n // whether to open the library, to handle a case where we\n // update the state outside of initialData (e.g. when loading the app\n // with a library install link, which should auto-open the library)\n openSidebar: scene.appState?.openSidebar || this.state.openSidebar,\n activeTool:\n scene.appState.activeTool.type === \"image\"\n ? { ...scene.appState.activeTool, type: \"selection\" }\n : scene.appState.activeTool,\n isLoading: false,\n toast: this.state.toast,\n };\n if (initialData?.scrollToContent) {\n scene.appState = {\n ...scene.appState,\n ...calculateScrollCenter(scene.elements, {\n ...scene.appState,\n width: this.state.width,\n height: this.state.height,\n offsetTop: this.state.offsetTop,\n offsetLeft: this.state.offsetLeft,\n }),\n };\n }\n // FontFaceSet loadingdone event we listen on may not always fire\n // (looking at you Safari), so on init we manually load fonts for current\n // text elements on canvas, and rerender them once done. This also\n // seems faster even in browsers that do fire the loadingdone event.\n this.fonts.loadFontsForElements(scene.elements);\n\n this.resetHistory();\n this.syncActionResult({\n ...scene,\n commitToHistory: true,\n });\n };\n\n private isMobileBreakpoint = (width: number, height: number) => {\n return (\n width < MQ_MAX_WIDTH_PORTRAIT ||\n (height < MQ_MAX_HEIGHT_LANDSCAPE && width < MQ_MAX_WIDTH_LANDSCAPE)\n );\n };\n\n private refreshViewportBreakpoints = () => {\n const container = this.excalidrawContainerRef.current;\n if (!container) {\n return;\n }\n\n const { clientWidth: viewportWidth, clientHeight: viewportHeight } =\n document.body;\n\n const prevViewportState = this.device.viewport;\n\n const nextViewportState = updateObject(prevViewportState, {\n isLandscape: viewportWidth > viewportHeight,\n isMobile: this.isMobileBreakpoint(viewportWidth, viewportHeight),\n });\n\n if (prevViewportState !== nextViewportState) {\n this.device = { ...this.device, viewport: nextViewportState };\n return true;\n }\n return false;\n };\n\n private refreshEditorBreakpoints = () => {\n const container = this.excalidrawContainerRef.current;\n if (!container) {\n return;\n }\n\n const { width: editorWidth, height: editorHeight } =\n container.getBoundingClientRect();\n\n const sidebarBreakpoint =\n this.props.UIOptions.dockedSidebarBreakpoint != null\n ? this.props.UIOptions.dockedSidebarBreakpoint\n : MQ_RIGHT_SIDEBAR_MIN_WIDTH;\n\n const prevEditorState = this.device.editor;\n\n const nextEditorState = updateObject(prevEditorState, {\n isMobile: this.isMobileBreakpoint(editorWidth, editorHeight),\n canFitSidebar: editorWidth > sidebarBreakpoint,\n });\n\n if (prevEditorState !== nextEditorState) {\n this.device = { ...this.device, editor: nextEditorState };\n return true;\n }\n return false;\n };\n\n public async componentDidMount() {\n this.unmounted = false;\n this.excalidrawContainerValue.container =\n this.excalidrawContainerRef.current;\n\n if (import.meta.env.MODE === ENV.TEST || import.meta.env.DEV) {\n const setState = this.setState.bind(this);\n Object.defineProperties(window.h, {\n state: {\n configurable: true,\n get: () => {\n return this.state;\n },\n },\n setState: {\n configurable: true,\n value: (...args: Parameters) => {\n return this.setState(...args);\n },\n },\n app: {\n configurable: true,\n value: this,\n },\n history: {\n configurable: true,\n value: this.history,\n },\n });\n }\n\n this.scene.addCallback(this.onSceneUpdated);\n this.addEventListeners();\n\n if (this.props.autoFocus && this.excalidrawContainerRef.current) {\n this.focusContainer();\n }\n\n if (\n // bounding rects don't work in tests so updating\n // the state on init would result in making the test enviro run\n // in mobile breakpoint (0 width/height), making everything fail\n !isTestEnv()\n ) {\n this.refreshViewportBreakpoints();\n this.refreshEditorBreakpoints();\n }\n\n if (supportsResizeObserver && this.excalidrawContainerRef.current) {\n this.resizeObserver = new ResizeObserver(() => {\n this.refreshEditorBreakpoints();\n this.updateDOMRect();\n });\n this.resizeObserver?.observe(this.excalidrawContainerRef.current);\n }\n\n const searchParams = new URLSearchParams(window.location.search.slice(1));\n\n if (searchParams.has(\"web-share-target\")) {\n // Obtain a file that was shared via the Web Share Target API.\n this.restoreFileFromShare();\n } else {\n this.updateDOMRect(this.initializeScene);\n }\n\n // note that this check seems to always pass in localhost\n if (isBrave() && !isMeasureTextSupported()) {\n this.setState({\n errorMessage: ,\n });\n }\n }\n\n public componentWillUnmount() {\n this.renderer.destroy();\n this.scene = new Scene();\n this.renderer = new Renderer(this.scene);\n this.files = {};\n this.imageCache.clear();\n this.resizeObserver?.disconnect();\n this.unmounted = true;\n this.removeEventListeners();\n this.scene.destroy();\n this.library.destroy();\n this.laserTrails.stop();\n this.eraserTrail.stop();\n this.onChangeEmitter.clear();\n ShapeCache.destroy();\n SnapCache.destroy();\n clearTimeout(touchTimeout);\n isSomeElementSelected.clearCache();\n selectGroupsForSelectedElements.clearCache();\n touchTimeout = 0;\n document.documentElement.style.overscrollBehaviorX = \"\";\n }\n\n private onResize = withBatchedUpdates(() => {\n this.scene\n .getElementsIncludingDeleted()\n .forEach((element) => ShapeCache.delete(element));\n this.refreshViewportBreakpoints();\n this.updateDOMRect();\n if (!supportsResizeObserver) {\n this.refreshEditorBreakpoints();\n }\n this.setState({});\n });\n\n /** generally invoked only if fullscreen was invoked programmatically */\n private onFullscreenChange = () => {\n if (\n // points to the iframe element we fullscreened\n !document.fullscreenElement &&\n this.state.activeEmbeddable?.state === \"active\"\n ) {\n this.setState({\n activeEmbeddable: null,\n });\n }\n };\n\n private removeEventListeners() {\n this.onRemoveEventListenersEmitter.trigger();\n }\n\n private addEventListeners() {\n // remove first as we can add event listeners multiple times\n this.removeEventListeners();\n\n // -------------------------------------------------------------------------\n // view+edit mode listeners\n // -------------------------------------------------------------------------\n\n if (this.props.handleKeyboardGlobally) {\n this.onRemoveEventListenersEmitter.once(\n addEventListener(document, EVENT.KEYDOWN, this.onKeyDown, false),\n );\n }\n\n this.onRemoveEventListenersEmitter.once(\n addEventListener(\n this.excalidrawContainerRef.current,\n EVENT.WHEEL,\n this.onWheel,\n { passive: false },\n ),\n addEventListener(window, EVENT.MESSAGE, this.onWindowMessage, false),\n addEventListener(document, EVENT.POINTER_UP, this.removePointer), // #3553\n addEventListener(document, EVENT.COPY, this.onCopy),\n addEventListener(document, EVENT.KEYUP, this.onKeyUp, { passive: true }),\n addEventListener(\n document,\n EVENT.MOUSE_MOVE,\n this.updateCurrentCursorPosition,\n ),\n // rerender text elements on font load to fix #637 && #1553\n addEventListener(document.fonts, \"loadingdone\", (event) => {\n const loadedFontFaces = (event as FontFaceSetLoadEvent).fontfaces;\n this.fonts.onFontsLoaded(loadedFontFaces);\n }),\n // Safari-only desktop pinch zoom\n addEventListener(\n document,\n EVENT.GESTURE_START,\n this.onGestureStart as any,\n false,\n ),\n addEventListener(\n document,\n EVENT.GESTURE_CHANGE,\n this.onGestureChange as any,\n false,\n ),\n addEventListener(\n document,\n EVENT.GESTURE_END,\n this.onGestureEnd as any,\n false,\n ),\n addEventListener(window, EVENT.FOCUS, () => {\n this.maybeCleanupAfterMissingPointerUp(null);\n }),\n );\n\n if (this.state.viewModeEnabled) {\n return;\n }\n\n // -------------------------------------------------------------------------\n // edit-mode listeners only\n // -------------------------------------------------------------------------\n\n this.onRemoveEventListenersEmitter.once(\n addEventListener(\n document,\n EVENT.FULLSCREENCHANGE,\n this.onFullscreenChange,\n ),\n addEventListener(document, EVENT.PASTE, this.pasteFromClipboard),\n addEventListener(document, EVENT.CUT, this.onCut),\n addEventListener(window, EVENT.RESIZE, this.onResize, false),\n addEventListener(window, EVENT.UNLOAD, this.onUnload, false),\n addEventListener(window, EVENT.BLUR, this.onBlur, false),\n addEventListener(\n this.excalidrawContainerRef.current,\n EVENT.DRAG_OVER,\n this.disableEvent,\n false,\n ),\n addEventListener(\n this.excalidrawContainerRef.current,\n EVENT.DROP,\n this.disableEvent,\n false,\n ),\n );\n\n if (this.props.detectScroll) {\n this.onRemoveEventListenersEmitter.once(\n addEventListener(\n getNearestScrollableContainer(this.excalidrawContainerRef.current!),\n EVENT.SCROLL,\n this.onScroll,\n ),\n );\n }\n }\n\n componentDidUpdate(prevProps: AppProps, prevState: AppState) {\n this.updateEmbeddables();\n const elements = this.scene.getElementsIncludingDeleted();\n const elementsMap = this.scene.getNonDeletedElementsMap();\n\n if (!this.state.showWelcomeScreen && !elements.length) {\n this.setState({ showWelcomeScreen: true });\n }\n\n if (\n prevProps.UIOptions.dockedSidebarBreakpoint !==\n this.props.UIOptions.dockedSidebarBreakpoint\n ) {\n this.refreshEditorBreakpoints();\n }\n\n const hasFollowedPersonLeft =\n prevState.userToFollow &&\n !this.state.collaborators.has(prevState.userToFollow.socketId);\n\n if (hasFollowedPersonLeft) {\n this.maybeUnfollowRemoteUser();\n }\n\n if (\n prevState.zoom.value !== this.state.zoom.value ||\n prevState.scrollX !== this.state.scrollX ||\n prevState.scrollY !== this.state.scrollY\n ) {\n this.props?.onScrollChange?.(\n this.state.scrollX,\n this.state.scrollY,\n this.state.zoom,\n );\n this.onScrollChangeEmitter.trigger(\n this.state.scrollX,\n this.state.scrollY,\n this.state.zoom,\n );\n }\n\n if (prevState.userToFollow !== this.state.userToFollow) {\n if (prevState.userToFollow) {\n this.onUserFollowEmitter.trigger({\n userToFollow: prevState.userToFollow,\n action: \"UNFOLLOW\",\n });\n }\n\n if (this.state.userToFollow) {\n this.onUserFollowEmitter.trigger({\n userToFollow: this.state.userToFollow,\n action: \"FOLLOW\",\n });\n }\n }\n\n if (\n Object.keys(this.state.selectedElementIds).length &&\n isEraserActive(this.state)\n ) {\n this.setState({\n activeTool: updateActiveTool(this.state, { type: \"selection\" }),\n });\n }\n if (\n this.state.activeTool.type === \"eraser\" &&\n prevState.theme !== this.state.theme\n ) {\n setEraserCursor(this.interactiveCanvas, this.state.theme);\n }\n // Hide hyperlink popup if shown when element type is not selection\n if (\n prevState.activeTool.type === \"selection\" &&\n this.state.activeTool.type !== \"selection\" &&\n this.state.showHyperlinkPopup\n ) {\n this.setState({ showHyperlinkPopup: false });\n }\n if (prevProps.langCode !== this.props.langCode) {\n this.updateLanguage();\n }\n\n if (isEraserActive(prevState) && !isEraserActive(this.state)) {\n this.eraserTrail.endPath();\n }\n\n if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) {\n this.setState({ viewModeEnabled: !!this.props.viewModeEnabled });\n }\n\n if (prevState.viewModeEnabled !== this.state.viewModeEnabled) {\n this.addEventListeners();\n this.deselectElements();\n }\n\n if (prevProps.zenModeEnabled !== this.props.zenModeEnabled) {\n this.setState({ zenModeEnabled: !!this.props.zenModeEnabled });\n }\n\n if (prevProps.theme !== this.props.theme && this.props.theme) {\n this.setState({ theme: this.props.theme });\n }\n\n if (prevProps.gridModeEnabled !== this.props.gridModeEnabled) {\n this.setState({\n gridSize: this.props.gridModeEnabled ? GRID_SIZE : null,\n });\n }\n\n this.excalidrawContainerRef.current?.classList.toggle(\n \"theme--dark\",\n this.state.theme === \"dark\",\n );\n\n if (\n this.state.editingLinearElement &&\n !this.state.selectedElementIds[this.state.editingLinearElement.elementId]\n ) {\n // defer so that the commitToHistory flag isn't reset via current update\n setTimeout(() => {\n // execute only if the condition still holds when the deferred callback\n // executes (it can be scheduled multiple times depending on how\n // many times the component renders)\n this.state.editingLinearElement &&\n this.actionManager.executeAction(actionFinalize);\n });\n }\n\n // failsafe in case the state is being updated in incorrect order resulting\n // in the editingElement being now a deleted element\n if (this.state.editingElement?.isDeleted) {\n this.setState({ editingElement: null });\n }\n\n if (\n this.state.selectedLinearElement &&\n !this.state.selectedElementIds[this.state.selectedLinearElement.elementId]\n ) {\n // To make sure `selectedLinearElement` is in sync with `selectedElementIds`, however this shouldn't be needed once\n // we have a single API to update `selectedElementIds`\n this.setState({ selectedLinearElement: null });\n }\n\n const { multiElement } = prevState;\n if (\n prevState.activeTool !== this.state.activeTool &&\n multiElement != null &&\n isBindingEnabled(this.state) &&\n isBindingElement(multiElement, false)\n ) {\n maybeBindLinearElement(\n multiElement,\n this.state,\n this.scene,\n tupleToCoors(\n LinearElementEditor.getPointAtIndexGlobalCoordinates(\n multiElement,\n -1,\n elementsMap,\n ),\n ),\n elementsMap,\n );\n }\n this.history.record(this.state, elements);\n\n // Do not notify consumers if we're still loading the scene. Among other\n // potential issues, this fixes a case where the tab isn't focused during\n // init, which would trigger onChange with empty elements, which would then\n // override whatever is in localStorage currently.\n if (!this.state.isLoading) {\n this.props.onChange?.(elements, this.state, this.files);\n this.onChangeEmitter.trigger(elements, this.state, this.files);\n }\n }\n\n private renderInteractiveSceneCallback = ({\n atLeastOneVisibleElement,\n scrollBars,\n elementsMap,\n }: RenderInteractiveSceneCallback) => {\n if (scrollBars) {\n currentScrollBars = scrollBars;\n }\n const scrolledOutside =\n // hide when editing text\n isTextElement(this.state.editingElement)\n ? false\n : !atLeastOneVisibleElement && elementsMap.size > 0;\n if (this.state.scrolledOutside !== scrolledOutside) {\n this.setState({ scrolledOutside });\n }\n\n this.scheduleImageRefresh();\n };\n\n private onScroll = debounce(() => {\n const { offsetTop, offsetLeft } = this.getCanvasOffsets();\n this.setState((state) => {\n if (state.offsetLeft === offsetLeft && state.offsetTop === offsetTop) {\n return null;\n }\n return { offsetTop, offsetLeft };\n });\n }, SCROLL_TIMEOUT);\n\n // Copy/paste\n\n private onCut = withBatchedUpdates((event: ClipboardEvent) => {\n const isExcalidrawActive = this.excalidrawContainerRef.current?.contains(\n document.activeElement,\n );\n if (!isExcalidrawActive || isWritableElement(event.target)) {\n return;\n }\n this.actionManager.executeAction(actionCut, \"keyboard\", event);\n event.preventDefault();\n event.stopPropagation();\n });\n\n private onCopy = withBatchedUpdates((event: ClipboardEvent) => {\n const isExcalidrawActive = this.excalidrawContainerRef.current?.contains(\n document.activeElement,\n );\n if (!isExcalidrawActive || isWritableElement(event.target)) {\n return;\n }\n this.actionManager.executeAction(actionCopy, \"keyboard\", event);\n event.preventDefault();\n event.stopPropagation();\n });\n\n private static resetTapTwice() {\n didTapTwice = false;\n }\n\n private onTouchStart = (event: TouchEvent) => {\n // fix for Apple Pencil Scribble (do not prevent for other devices)\n if (isIOS) {\n event.preventDefault();\n }\n\n if (!didTapTwice) {\n didTapTwice = true;\n clearTimeout(tappedTwiceTimer);\n tappedTwiceTimer = window.setTimeout(\n App.resetTapTwice,\n TAP_TWICE_TIMEOUT,\n );\n return;\n }\n // insert text only if we tapped twice with a single finger\n // event.touches.length === 1 will also prevent inserting text when user's zooming\n if (didTapTwice && event.touches.length === 1) {\n const touch = event.touches[0];\n // @ts-ignore\n this.handleCanvasDoubleClick({\n clientX: touch.clientX,\n clientY: touch.clientY,\n });\n didTapTwice = false;\n clearTimeout(tappedTwiceTimer);\n }\n\n if (event.touches.length === 2) {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n activeEmbeddable: null,\n });\n }\n };\n\n private onTouchEnd = (event: TouchEvent) => {\n this.resetContextMenuTimer();\n if (event.touches.length > 0) {\n this.setState({\n previousSelectedElementIds: {},\n selectedElementIds: makeNextSelectedElementIds(\n this.state.previousSelectedElementIds,\n this.state,\n ),\n });\n } else {\n gesture.pointers.clear();\n }\n };\n\n public pasteFromClipboard = withBatchedUpdates(\n async (event: ClipboardEvent) => {\n const isPlainPaste = !!IS_PLAIN_PASTE;\n\n // #686\n const target = document.activeElement;\n const isExcalidrawActive =\n this.excalidrawContainerRef.current?.contains(target);\n if (event && !isExcalidrawActive) {\n return;\n }\n\n const elementUnderCursor = document.elementFromPoint(\n this.lastViewportPosition.x,\n this.lastViewportPosition.y,\n );\n if (\n event &&\n (!(elementUnderCursor instanceof HTMLCanvasElement) ||\n isWritableElement(target))\n ) {\n return;\n }\n\n const { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords(\n {\n clientX: this.lastViewportPosition.x,\n clientY: this.lastViewportPosition.y,\n },\n this.state,\n );\n\n // must be called in the same frame (thus before any awaits) as the paste\n // event else some browsers (FF...) will clear the clipboardData\n // (something something security)\n let file = event?.clipboardData?.files[0];\n const data = await parseClipboard(event, isPlainPaste);\n if (!file && !isPlainPaste) {\n if (data.mixedContent) {\n return this.addElementsFromMixedContentPaste(data.mixedContent, {\n isPlainPaste,\n sceneX,\n sceneY,\n });\n } else if (data.text) {\n const string = data.text.trim();\n if (string.startsWith(\"\")) {\n // ignore SVG validation/normalization which will be done during image\n // initialization\n file = SVGStringToFile(string);\n }\n }\n }\n\n // prefer spreadsheet data over image file (MS Office/Libre Office)\n if (isSupportedImageFile(file) && !data.spreadsheet) {\n if (!this.isToolSupported(\"image\")) {\n this.setState({ errorMessage: t(\"errors.imageToolNotSupported\") });\n return;\n }\n\n const imageElement = this.createImageElement({ sceneX, sceneY });\n this.insertImageElement(imageElement, file);\n this.initializeImageDimensions(imageElement);\n this.setState({\n selectedElementIds: makeNextSelectedElementIds(\n {\n [imageElement.id]: true,\n },\n this.state,\n ),\n });\n\n return;\n }\n\n if (this.props.onPaste) {\n try {\n if ((await this.props.onPaste(data, event)) === false) {\n return;\n }\n } catch (error: any) {\n console.error(error);\n }\n }\n\n if (data.errorMessage) {\n this.setState({ errorMessage: data.errorMessage });\n } else if (data.spreadsheet && !isPlainPaste) {\n this.setState({\n pasteDialog: {\n data: data.spreadsheet,\n shown: true,\n },\n });\n } else if (data.elements) {\n const elements = (\n data.programmaticAPI\n ? convertToExcalidrawElements(\n data.elements as ExcalidrawElementSkeleton[],\n )\n : data.elements\n ) as readonly ExcalidrawElement[];\n // TODO remove formatting from elements if isPlainPaste\n this.addElementsFromPasteOrLibrary({\n elements,\n files: data.files || null,\n position: \"cursor\",\n retainSeed: isPlainPaste,\n });\n } else if (data.text) {\n const nonEmptyLines = normalizeEOL(data.text)\n .split(/\\n+/)\n .map((s) => s.trim())\n .filter(Boolean);\n\n const embbeddableUrls = nonEmptyLines\n .map((str) => maybeParseEmbedSrc(str))\n .filter((string) => {\n return (\n embeddableURLValidator(string, this.props.validateEmbeddable) &&\n (/^(http|https):\\/\\/[^\\s/$.?#].[^\\s]*$/.test(string) ||\n getEmbedLink(string)?.type === \"video\")\n );\n });\n\n if (\n !IS_PLAIN_PASTE &&\n embbeddableUrls.length > 0 &&\n // if there were non-embeddable text (lines) mixed in with embeddable\n // urls, ignore and paste as text\n embbeddableUrls.length === nonEmptyLines.length\n ) {\n const embeddables: NonDeleted[] = [];\n for (const url of embbeddableUrls) {\n const prevEmbeddable: ExcalidrawEmbeddableElement | undefined =\n embeddables[embeddables.length - 1];\n const embeddable = this.insertEmbeddableElement({\n sceneX: prevEmbeddable\n ? prevEmbeddable.x + prevEmbeddable.width + 20\n : sceneX,\n sceneY,\n link: normalizeLink(url),\n });\n if (embeddable) {\n embeddables.push(embeddable);\n }\n }\n if (embeddables.length) {\n this.setState({\n selectedElementIds: Object.fromEntries(\n embeddables.map((embeddable) => [embeddable.id, true]),\n ),\n });\n }\n return;\n }\n this.addTextFromPaste(data.text, isPlainPaste);\n }\n this.setActiveTool({ type: \"selection\" });\n event?.preventDefault();\n },\n );\n\n addElementsFromPasteOrLibrary = (opts: {\n elements: readonly ExcalidrawElement[];\n files: BinaryFiles | null;\n position: { clientX: number; clientY: number } | \"cursor\" | \"center\";\n retainSeed?: boolean;\n fitToContent?: boolean;\n }) => {\n const elements = restoreElements(opts.elements, null, undefined);\n const [minX, minY, maxX, maxY] = getCommonBounds(elements);\n\n const elementsCenterX = distance(minX, maxX) / 2;\n const elementsCenterY = distance(minY, maxY) / 2;\n\n const clientX =\n typeof opts.position === \"object\"\n ? opts.position.clientX\n : opts.position === \"cursor\"\n ? this.lastViewportPosition.x\n : this.state.width / 2 + this.state.offsetLeft;\n const clientY =\n typeof opts.position === \"object\"\n ? opts.position.clientY\n : opts.position === \"cursor\"\n ? this.lastViewportPosition.y\n : this.state.height / 2 + this.state.offsetTop;\n\n const { x, y } = viewportCoordsToSceneCoords(\n { clientX, clientY },\n this.state,\n );\n\n const dx = x - elementsCenterX;\n const dy = y - elementsCenterY;\n\n const [gridX, gridY] = getGridPoint(dx, dy, this.state.gridSize);\n\n const newElements = duplicateElements(\n elements.map((element) => {\n return newElementWith(element, {\n x: element.x + gridX - minX,\n y: element.y + gridY - minY,\n });\n }),\n {\n randomizeSeed: !opts.retainSeed,\n },\n );\n\n const allElements = [\n ...this.scene.getElementsIncludingDeleted(),\n ...newElements,\n ];\n\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({ x, y });\n\n if (topLayerFrame) {\n const eligibleElements = filterElementsEligibleAsFrameChildren(\n newElements,\n topLayerFrame,\n );\n addElementsToFrame(allElements, eligibleElements, topLayerFrame);\n }\n\n this.scene.replaceAllElements(allElements);\n\n newElements.forEach((newElement) => {\n if (isTextElement(newElement) && isBoundToContainer(newElement)) {\n const container = getContainerElement(\n newElement,\n this.scene.getElementsMapIncludingDeleted(),\n );\n redrawTextBoundingBox(\n newElement,\n container,\n this.scene.getElementsMapIncludingDeleted(),\n );\n }\n });\n\n if (opts.files) {\n this.files = { ...this.files, ...opts.files };\n }\n\n this.history.resumeRecording();\n\n const nextElementsToSelect =\n excludeElementsInFramesFromSelection(newElements);\n\n this.setState(\n {\n ...this.state,\n // keep sidebar (presumably the library) open if it's docked and\n // can fit.\n //\n // Note, we should close the sidebar only if we're dropping items\n // from library, not when pasting from clipboard. Alas.\n openSidebar:\n this.state.openSidebar &&\n this.device.editor.canFitSidebar &&\n jotaiStore.get(isSidebarDockedAtom)\n ? this.state.openSidebar\n : null,\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: null,\n selectedElementIds: nextElementsToSelect.reduce(\n (acc: Record, element) => {\n if (!isBoundToContainer(element)) {\n acc[element.id] = true;\n }\n return acc;\n },\n {},\n ),\n },\n this.scene.getNonDeletedElements(),\n this.state,\n this,\n ),\n },\n () => {\n if (opts.files) {\n this.addNewImagesToImageCache();\n }\n },\n );\n this.setActiveTool({ type: \"selection\" });\n\n if (opts.fitToContent) {\n this.scrollToContent(newElements, {\n fitToContent: true,\n });\n }\n };\n\n // TODO rewrite this to paste both text & images at the same time if\n // pasted data contains both\n private async addElementsFromMixedContentPaste(\n mixedContent: PastedMixedContent,\n {\n isPlainPaste,\n sceneX,\n sceneY,\n }: { isPlainPaste: boolean; sceneX: number; sceneY: number },\n ) {\n if (\n !isPlainPaste &&\n mixedContent.some((node) => node.type === \"imageUrl\") &&\n this.isToolSupported(\"image\")\n ) {\n const imageURLs = mixedContent\n .filter((node) => node.type === \"imageUrl\")\n .map((node) => node.value);\n const responses = await Promise.all(\n imageURLs.map(async (url) => {\n try {\n return { file: await ImageURLToFile(url) };\n } catch (error: any) {\n let errorMessage = error.message;\n if (error.cause === \"FETCH_ERROR\") {\n errorMessage = t(\"errors.failedToFetchImage\");\n } else if (error.cause === \"UNSUPPORTED\") {\n errorMessage = t(\"errors.unsupportedFileType\");\n }\n return { errorMessage };\n }\n }),\n );\n let y = sceneY;\n let firstImageYOffsetDone = false;\n const nextSelectedIds: Record = {};\n for (const response of responses) {\n if (response.file) {\n const imageElement = this.createImageElement({\n sceneX,\n sceneY: y,\n });\n\n const initializedImageElement = await this.insertImageElement(\n imageElement,\n response.file,\n );\n if (initializedImageElement) {\n // vertically center first image in the batch\n if (!firstImageYOffsetDone) {\n firstImageYOffsetDone = true;\n y -= initializedImageElement.height / 2;\n }\n // hack to reset the `y` coord because we vertically center during\n // insertImageElement\n mutateElement(initializedImageElement, { y }, false);\n\n y = imageElement.y + imageElement.height + 25;\n\n nextSelectedIds[imageElement.id] = true;\n }\n }\n }\n\n this.setState({\n selectedElementIds: makeNextSelectedElementIds(\n nextSelectedIds,\n this.state,\n ),\n });\n\n const error = responses.find((response) => !!response.errorMessage);\n if (error && error.errorMessage) {\n this.setState({ errorMessage: error.errorMessage });\n }\n } else {\n const textNodes = mixedContent.filter((node) => node.type === \"text\");\n if (textNodes.length) {\n this.addTextFromPaste(\n textNodes.map((node) => node.value).join(\"\\n\\n\"),\n isPlainPaste,\n );\n }\n }\n }\n\n private addTextFromPaste(text: string, isPlainPaste = false) {\n const { x, y } = viewportCoordsToSceneCoords(\n {\n clientX: this.lastViewportPosition.x,\n clientY: this.lastViewportPosition.y,\n },\n this.state,\n );\n\n const textElementProps = {\n x,\n y,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roundness: null,\n roughness: this.state.currentItemRoughness,\n opacity: this.state.currentItemOpacity,\n text,\n fontSize: this.state.currentItemFontSize,\n fontFamily: this.state.currentItemFontFamily,\n textAlign: this.state.currentItemTextAlign,\n verticalAlign: DEFAULT_VERTICAL_ALIGN,\n locked: false,\n };\n\n const LINE_GAP = 10;\n let currentY = y;\n\n const lines = isPlainPaste ? [text] : text.split(\"\\n\");\n const textElements = lines.reduce(\n (acc: ExcalidrawTextElement[], line, idx) => {\n const text = line.trim();\n\n const lineHeight = getDefaultLineHeight(textElementProps.fontFamily);\n if (text.length) {\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({\n x,\n y: currentY,\n });\n\n const element = newTextElement({\n ...textElementProps,\n x,\n y: currentY,\n text,\n lineHeight,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n });\n acc.push(element);\n currentY += element.height + LINE_GAP;\n } else {\n const prevLine = lines[idx - 1]?.trim();\n // add paragraph only if previous line was not empty, IOW don't add\n // more than one empty line\n if (prevLine) {\n currentY +=\n getLineHeightInPx(textElementProps.fontSize, lineHeight) +\n LINE_GAP;\n }\n }\n\n return acc;\n },\n [],\n );\n\n if (textElements.length === 0) {\n return;\n }\n\n const frameId = textElements[0].frameId;\n\n if (frameId) {\n this.scene.insertElementsAtIndex(\n textElements,\n this.scene.getElementIndex(frameId),\n );\n } else {\n this.scene.replaceAllElements([\n ...this.scene.getElementsIncludingDeleted(),\n ...textElements,\n ]);\n }\n\n this.setState({\n selectedElementIds: makeNextSelectedElementIds(\n Object.fromEntries(textElements.map((el) => [el.id, true])),\n this.state,\n ),\n });\n\n if (\n !isPlainPaste &&\n textElements.length > 1 &&\n PLAIN_PASTE_TOAST_SHOWN === false &&\n !this.device.editor.isMobile\n ) {\n this.setToast({\n message: t(\"toast.pasteAsSingleElement\", {\n shortcut: getShortcutKey(\"CtrlOrCmd+Shift+V\"),\n }),\n duration: 5000,\n });\n PLAIN_PASTE_TOAST_SHOWN = true;\n }\n\n this.history.resumeRecording();\n }\n\n setAppState: React.Component[\"setState\"] = (\n state,\n callback,\n ) => {\n this.setState(state, callback);\n };\n\n removePointer = (event: React.PointerEvent | PointerEvent) => {\n if (touchTimeout) {\n this.resetContextMenuTimer();\n }\n\n gesture.pointers.delete(event.pointerId);\n };\n\n toggleLock = (source: \"keyboard\" | \"ui\" = \"ui\") => {\n if (!this.state.activeTool.locked) {\n trackEvent(\n \"toolbar\",\n \"toggleLock\",\n `${source} (${this.device.editor.isMobile ? \"mobile\" : \"desktop\"})`,\n );\n }\n this.setState((prevState) => {\n return {\n activeTool: {\n ...prevState.activeTool,\n ...updateActiveTool(\n this.state,\n prevState.activeTool.locked\n ? { type: \"selection\" }\n : prevState.activeTool,\n ),\n locked: !prevState.activeTool.locked,\n },\n };\n });\n };\n\n updateFrameRendering = (\n opts:\n | Partial\n | ((\n prevState: AppState[\"frameRendering\"],\n ) => Partial),\n ) => {\n this.setState((prevState) => {\n const next =\n typeof opts === \"function\" ? opts(prevState.frameRendering) : opts;\n return {\n frameRendering: {\n enabled: next?.enabled ?? prevState.frameRendering.enabled,\n clip: next?.clip ?? prevState.frameRendering.clip,\n name: next?.name ?? prevState.frameRendering.name,\n outline: next?.outline ?? prevState.frameRendering.outline,\n },\n };\n });\n };\n\n togglePenMode = (force: boolean | null) => {\n this.setState((prevState) => {\n return {\n penMode: force ?? !prevState.penMode,\n penDetected: true,\n };\n });\n };\n\n onHandToolToggle = () => {\n this.actionManager.executeAction(actionToggleHandTool);\n };\n\n /**\n * Zooms on canvas viewport center\n */\n zoomCanvas = (\n /** decimal fraction between 0.1 (10% zoom) and 30 (3000% zoom) */\n value: number,\n ) => {\n this.setState({\n ...getStateForZoom(\n {\n viewportX: this.state.width / 2 + this.state.offsetLeft,\n viewportY: this.state.height / 2 + this.state.offsetTop,\n nextZoom: getNormalizedZoom(value),\n },\n this.state,\n ),\n });\n };\n\n private cancelInProgressAnimation: (() => void) | null = null;\n\n scrollToContent = (\n target:\n | ExcalidrawElement\n | readonly ExcalidrawElement[] = this.scene.getNonDeletedElements(),\n opts?:\n | {\n fitToContent?: boolean;\n fitToViewport?: never;\n viewportZoomFactor?: never;\n animate?: boolean;\n duration?: number;\n }\n | {\n fitToContent?: never;\n fitToViewport?: boolean;\n /** when fitToViewport=true, how much screen should the content cover,\n * between 0.1 (10%) and 1 (100%)\n */\n viewportZoomFactor?: number;\n animate?: boolean;\n duration?: number;\n },\n ) => {\n this.cancelInProgressAnimation?.();\n\n // convert provided target into ExcalidrawElement[] if necessary\n const targetElements = Array.isArray(target) ? target : [target];\n\n let zoom = this.state.zoom;\n let scrollX = this.state.scrollX;\n let scrollY = this.state.scrollY;\n\n if (opts?.fitToContent || opts?.fitToViewport) {\n const { appState } = zoomToFit({\n targetElements,\n appState: this.state,\n fitToViewport: !!opts?.fitToViewport,\n viewportZoomFactor: opts?.viewportZoomFactor,\n });\n zoom = appState.zoom;\n scrollX = appState.scrollX;\n scrollY = appState.scrollY;\n } else {\n // compute only the viewport location, without any zoom adjustment\n const scroll = calculateScrollCenter(targetElements, this.state);\n scrollX = scroll.scrollX;\n scrollY = scroll.scrollY;\n }\n\n // when animating, we use RequestAnimationFrame to prevent the animation\n // from slowing down other processes\n if (opts?.animate) {\n const origScrollX = this.state.scrollX;\n const origScrollY = this.state.scrollY;\n const origZoom = this.state.zoom.value;\n\n const cancel = easeToValuesRAF({\n fromValues: {\n scrollX: origScrollX,\n scrollY: origScrollY,\n zoom: origZoom,\n },\n toValues: { scrollX, scrollY, zoom: zoom.value },\n interpolateValue: (from, to, progress, key) => {\n // for zoom, use different easing\n if (key === \"zoom\") {\n return from * Math.pow(to / from, easeOut(progress));\n }\n // handle using default\n return undefined;\n },\n onStep: ({ scrollX, scrollY, zoom }) => {\n this.setState({\n scrollX,\n scrollY,\n zoom: { value: zoom },\n });\n },\n onStart: () => {\n this.setState({ shouldCacheIgnoreZoom: true });\n },\n onEnd: () => {\n this.setState({ shouldCacheIgnoreZoom: false });\n },\n onCancel: () => {\n this.setState({ shouldCacheIgnoreZoom: false });\n },\n duration: opts?.duration ?? 500,\n });\n\n this.cancelInProgressAnimation = () => {\n cancel();\n this.cancelInProgressAnimation = null;\n };\n } else {\n this.setState({ scrollX, scrollY, zoom });\n }\n };\n\n private maybeUnfollowRemoteUser = () => {\n if (this.state.userToFollow) {\n this.setState({ userToFollow: null });\n }\n };\n\n /** use when changing scrollX/scrollY/zoom based on user interaction */\n private translateCanvas: React.Component[\"setState\"] = (\n state,\n ) => {\n this.cancelInProgressAnimation?.();\n this.maybeUnfollowRemoteUser();\n this.setState(state);\n };\n\n setToast = (\n toast: {\n message: string;\n closable?: boolean;\n duration?: number;\n } | null,\n ) => {\n this.setState({ toast });\n };\n\n restoreFileFromShare = async () => {\n try {\n const webShareTargetCache = await caches.open(\"web-share-target\");\n\n const response = await webShareTargetCache.match(\"shared-file\");\n if (response) {\n const blob = await response.blob();\n const file = new File([blob], blob.name || \"\", { type: blob.type });\n this.loadFileToCanvas(file, null);\n await webShareTargetCache.delete(\"shared-file\");\n window.history.replaceState(null, APP_NAME, window.location.pathname);\n }\n } catch (error: any) {\n this.setState({ errorMessage: error.message });\n }\n };\n\n /** adds supplied files to existing files in the appState */\n public addFiles: ExcalidrawImperativeAPI[\"addFiles\"] = withBatchedUpdates(\n (files) => {\n const filesMap = files.reduce((acc, fileData) => {\n acc.set(fileData.id, fileData);\n return acc;\n }, new Map());\n\n this.files = { ...this.files, ...Object.fromEntries(filesMap) };\n\n this.scene.getNonDeletedElements().forEach((element) => {\n if (\n isInitializedImageElement(element) &&\n filesMap.has(element.fileId)\n ) {\n this.imageCache.delete(element.fileId);\n ShapeCache.delete(element);\n }\n });\n this.scene.informMutation();\n\n this.addNewImagesToImageCache();\n },\n );\n\n public updateScene = withBatchedUpdates(\n (sceneData: {\n elements?: SceneData[\"elements\"];\n appState?: Pick | null;\n collaborators?: SceneData[\"collaborators\"];\n commitToHistory?: SceneData[\"commitToHistory\"];\n }) => {\n if (sceneData.commitToHistory) {\n this.history.resumeRecording();\n }\n\n if (sceneData.appState) {\n this.setState(sceneData.appState);\n }\n\n if (sceneData.elements) {\n this.scene.replaceAllElements(sceneData.elements);\n }\n\n if (sceneData.collaborators) {\n this.setState({ collaborators: sceneData.collaborators });\n }\n },\n );\n\n private onSceneUpdated = () => {\n this.setState({});\n };\n\n /**\n * @returns whether the menu was toggled on or off\n */\n public toggleSidebar = ({\n name,\n tab,\n force,\n }: {\n name: SidebarName;\n tab?: SidebarTabName;\n force?: boolean;\n }): boolean => {\n let nextName;\n if (force === undefined) {\n nextName = this.state.openSidebar?.name === name ? null : name;\n } else {\n nextName = force ? name : null;\n }\n this.setState({ openSidebar: nextName ? { name: nextName, tab } : null });\n\n return !!nextName;\n };\n\n private updateCurrentCursorPosition = withBatchedUpdates(\n (event: MouseEvent) => {\n this.lastViewportPosition.x = event.clientX;\n this.lastViewportPosition.y = event.clientY;\n },\n );\n\n // Input handling\n private onKeyDown = withBatchedUpdates(\n (event: React.KeyboardEvent | KeyboardEvent) => {\n // normalize `event.key` when CapsLock is pressed #2372\n\n if (\n \"Proxy\" in window &&\n ((!event.shiftKey && /^[A-Z]$/.test(event.key)) ||\n (event.shiftKey && /^[a-z]$/.test(event.key)))\n ) {\n event = new Proxy(event, {\n get(ev: any, prop) {\n const value = ev[prop];\n if (typeof value === \"function\") {\n // fix for Proxies hijacking `this`\n return value.bind(ev);\n }\n return prop === \"key\"\n ? // CapsLock inverts capitalization based on ShiftKey, so invert\n // it back\n event.shiftKey\n ? ev.key.toUpperCase()\n : ev.key.toLowerCase()\n : value;\n },\n });\n }\n\n if (event[KEYS.CTRL_OR_CMD] && event.key.toLowerCase() === KEYS.V) {\n IS_PLAIN_PASTE = event.shiftKey;\n clearTimeout(IS_PLAIN_PASTE_TIMER);\n // reset (100ms to be safe that we it runs after the ensuing\n // paste event). Though, technically unnecessary to reset since we\n // (re)set the flag before each paste event.\n IS_PLAIN_PASTE_TIMER = window.setTimeout(() => {\n IS_PLAIN_PASTE = false;\n }, 100);\n }\n\n // prevent browser zoom in input fields\n if (event[KEYS.CTRL_OR_CMD] && isWritableElement(event.target)) {\n if (event.code === CODES.MINUS || event.code === CODES.EQUAL) {\n event.preventDefault();\n return;\n }\n }\n\n // bail if\n if (\n // inside an input\n (isWritableElement(event.target) &&\n // unless pressing escape (finalize action)\n event.key !== KEYS.ESCAPE) ||\n // or unless using arrows (to move between buttons)\n (isArrowKey(event.key) && isInputLike(event.target))\n ) {\n return;\n }\n\n if (event.key === KEYS.QUESTION_MARK) {\n this.setState({\n openDialog: { name: \"help\" },\n });\n return;\n } else if (\n event.key.toLowerCase() === KEYS.E &&\n event.shiftKey &&\n event[KEYS.CTRL_OR_CMD]\n ) {\n event.preventDefault();\n this.setState({ openDialog: { name: \"imageExport\" } });\n return;\n }\n\n if (event.key === KEYS.PAGE_UP || event.key === KEYS.PAGE_DOWN) {\n let offset =\n (event.shiftKey ? this.state.width : this.state.height) /\n this.state.zoom.value;\n if (event.key === KEYS.PAGE_DOWN) {\n offset = -offset;\n }\n if (event.shiftKey) {\n this.translateCanvas((state) => ({\n scrollX: state.scrollX + offset,\n }));\n } else {\n this.translateCanvas((state) => ({\n scrollY: state.scrollY + offset,\n }));\n }\n }\n\n if (this.actionManager.handleKeyDown(event)) {\n return;\n }\n\n if (this.state.viewModeEnabled) {\n return;\n }\n\n if (event[KEYS.CTRL_OR_CMD] && this.state.isBindingEnabled) {\n this.setState({ isBindingEnabled: false });\n }\n\n if (isArrowKey(event.key)) {\n const step =\n (this.state.gridSize &&\n (event.shiftKey\n ? ELEMENT_TRANSLATE_AMOUNT\n : this.state.gridSize)) ||\n (event.shiftKey\n ? ELEMENT_SHIFT_TRANSLATE_AMOUNT\n : ELEMENT_TRANSLATE_AMOUNT);\n\n let offsetX = 0;\n let offsetY = 0;\n\n if (event.key === KEYS.ARROW_LEFT) {\n offsetX = -step;\n } else if (event.key === KEYS.ARROW_RIGHT) {\n offsetX = step;\n } else if (event.key === KEYS.ARROW_UP) {\n offsetY = -step;\n } else if (event.key === KEYS.ARROW_DOWN) {\n offsetY = step;\n }\n\n const selectedElements = this.scene.getSelectedElements({\n selectedElementIds: this.state.selectedElementIds,\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n });\n\n selectedElements.forEach((element) => {\n mutateElement(element, {\n x: element.x + offsetX,\n y: element.y + offsetY,\n });\n\n updateBoundElements(element, this.scene.getNonDeletedElementsMap(), {\n simultaneouslyUpdated: selectedElements,\n });\n });\n\n this.maybeSuggestBindingForAll(selectedElements);\n\n event.preventDefault();\n } else if (event.key === KEYS.ENTER) {\n const selectedElements = this.scene.getSelectedElements(this.state);\n if (selectedElements.length === 1) {\n const selectedElement = selectedElements[0];\n if (event[KEYS.CTRL_OR_CMD]) {\n if (isLinearElement(selectedElement)) {\n if (\n !this.state.editingLinearElement ||\n this.state.editingLinearElement.elementId !==\n selectedElements[0].id\n ) {\n this.history.resumeRecording();\n this.setState({\n editingLinearElement: new LinearElementEditor(\n selectedElement,\n ),\n });\n }\n }\n } else if (\n isTextElement(selectedElement) ||\n isValidTextContainer(selectedElement)\n ) {\n let container;\n if (!isTextElement(selectedElement)) {\n container = selectedElement as ExcalidrawTextContainer;\n }\n const midPoint = getContainerCenter(\n selectedElement,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n const sceneX = midPoint.x;\n const sceneY = midPoint.y;\n this.startTextEditing({\n sceneX,\n sceneY,\n container,\n });\n event.preventDefault();\n return;\n } else if (isFrameLikeElement(selectedElement)) {\n this.setState({\n editingFrame: selectedElement.id,\n });\n }\n }\n } else if (\n !event.ctrlKey &&\n !event.altKey &&\n !event.metaKey &&\n this.state.draggingElement === null\n ) {\n const shape = findShapeByKey(event.key);\n if (shape) {\n if (this.state.activeTool.type !== shape) {\n trackEvent(\n \"toolbar\",\n shape,\n `keyboard (${\n this.device.editor.isMobile ? \"mobile\" : \"desktop\"\n })`,\n );\n }\n this.setActiveTool({ type: shape });\n event.stopPropagation();\n } else if (event.key === KEYS.Q) {\n this.toggleLock(\"keyboard\");\n event.stopPropagation();\n }\n }\n if (event.key === KEYS.SPACE && gesture.pointers.size === 0) {\n isHoldingSpace = true;\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRAB);\n event.preventDefault();\n }\n\n if (\n (event.key === KEYS.G || event.key === KEYS.S) &&\n !event.altKey &&\n !event[KEYS.CTRL_OR_CMD]\n ) {\n const selectedElements = this.scene.getSelectedElements(this.state);\n if (\n this.state.activeTool.type === \"selection\" &&\n !selectedElements.length\n ) {\n return;\n }\n\n if (\n event.key === KEYS.G &&\n (hasBackground(this.state.activeTool.type) ||\n selectedElements.some((element) => hasBackground(element.type)))\n ) {\n this.setState({ openPopup: \"elementBackground\" });\n event.stopPropagation();\n }\n if (event.key === KEYS.S) {\n this.setState({ openPopup: \"elementStroke\" });\n event.stopPropagation();\n }\n }\n\n if (event.key === KEYS.K && !event.altKey && !event[KEYS.CTRL_OR_CMD]) {\n if (this.state.activeTool.type === \"laser\") {\n this.setActiveTool({ type: \"selection\" });\n } else {\n this.setActiveTool({ type: \"laser\" });\n }\n return;\n }\n\n if (\n event[KEYS.CTRL_OR_CMD] &&\n (event.key === KEYS.BACKSPACE || event.key === KEYS.DELETE)\n ) {\n jotaiStore.set(activeConfirmDialogAtom, \"clearCanvas\");\n }\n\n // eye dropper\n // -----------------------------------------------------------------------\n const lowerCased = event.key.toLocaleLowerCase();\n const isPickingStroke = lowerCased === KEYS.S && event.shiftKey;\n const isPickingBackground =\n event.key === KEYS.I || (lowerCased === KEYS.G && event.shiftKey);\n\n if (isPickingStroke || isPickingBackground) {\n this.openEyeDropper({\n type: isPickingStroke ? \"stroke\" : \"background\",\n });\n }\n // -----------------------------------------------------------------------\n },\n );\n\n private onWheel = withBatchedUpdates((event: WheelEvent) => {\n // prevent browser pinch zoom on DOM elements\n if (!(event.target instanceof HTMLCanvasElement) && event.ctrlKey) {\n event.preventDefault();\n }\n });\n\n private onKeyUp = withBatchedUpdates((event: KeyboardEvent) => {\n if (event.key === KEYS.SPACE) {\n if (this.state.viewModeEnabled) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRAB);\n } else if (this.state.activeTool.type === \"selection\") {\n resetCursor(this.interactiveCanvas);\n } else {\n setCursorForShape(this.interactiveCanvas, this.state);\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n selectedGroupIds: {},\n editingGroupId: null,\n activeEmbeddable: null,\n });\n }\n isHoldingSpace = false;\n }\n if (!event[KEYS.CTRL_OR_CMD] && !this.state.isBindingEnabled) {\n this.setState({ isBindingEnabled: true });\n }\n if (isArrowKey(event.key)) {\n const selectedElements = this.scene.getSelectedElements(this.state);\n const elementsMap = this.scene.getNonDeletedElementsMap();\n isBindingEnabled(this.state)\n ? bindOrUnbindSelectedElements(\n selectedElements,\n this.scene.getNonDeletedElements(),\n elementsMap,\n )\n : unbindLinearElements(selectedElements, elementsMap);\n this.setState({ suggestedBindings: [] });\n }\n });\n\n // We purposely widen the `tool` type so this helper can be called with\n // any tool without having to type check it\n private isToolSupported = (tool: T) => {\n return (\n this.props.UIOptions.tools?.[\n tool as Extract\n ] !== false\n );\n };\n\n setActiveTool = (\n tool: (\n | (\n | { type: Exclude }\n | {\n type: Extract;\n insertOnCanvasDirectly?: boolean;\n }\n )\n | { type: \"custom\"; customType: string }\n ) & { locked?: boolean },\n ) => {\n if (!this.isToolSupported(tool.type)) {\n console.warn(\n `\"${tool.type}\" tool is disabled via \"UIOptions.canvasActions.tools.${tool.type}\"`,\n );\n return;\n }\n\n const nextActiveTool = updateActiveTool(this.state, tool);\n if (nextActiveTool.type === \"hand\") {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRAB);\n } else if (!isHoldingSpace) {\n setCursorForShape(this.interactiveCanvas, this.state);\n }\n if (isToolIcon(document.activeElement)) {\n this.focusContainer();\n }\n if (!isLinearElementType(nextActiveTool.type)) {\n this.setState({ suggestedBindings: [] });\n }\n if (nextActiveTool.type === \"image\") {\n this.onImageAction({\n insertOnCanvasDirectly:\n (tool.type === \"image\" && tool.insertOnCanvasDirectly) ?? false,\n });\n }\n\n this.setState((prevState) => {\n const commonResets = {\n snapLines: prevState.snapLines.length ? [] : prevState.snapLines,\n originSnapOffset: null,\n activeEmbeddable: null,\n } as const;\n if (nextActiveTool.type !== \"selection\") {\n return {\n ...prevState,\n activeTool: nextActiveTool,\n selectedElementIds: makeNextSelectedElementIds({}, prevState),\n selectedGroupIds: makeNextSelectedElementIds({}, prevState),\n editingGroupId: null,\n multiElement: null,\n ...commonResets,\n };\n }\n return {\n ...prevState,\n activeTool: nextActiveTool,\n ...commonResets,\n };\n });\n };\n\n setOpenDialog = (dialogType: AppState[\"openDialog\"]) => {\n this.setState({ openDialog: dialogType });\n };\n\n private setCursor = (cursor: string) => {\n setCursor(this.interactiveCanvas, cursor);\n };\n\n private resetCursor = () => {\n resetCursor(this.interactiveCanvas);\n };\n /**\n * returns whether user is making a gesture with >= 2 fingers (points)\n * on o touch screen (not on a trackpad). Currently only relates to Darwin\n * (iOS/iPadOS,MacOS), but may work on other devices in the future if\n * GestureEvent is standardized.\n */\n private isTouchScreenMultiTouchGesture = () => {\n // we don't want to deselect when using trackpad, and multi-point gestures\n // only work on touch screens, so checking for >= pointers means we're on a\n // touchscreen\n return gesture.pointers.size >= 2;\n };\n\n public getName = () => {\n return (\n this.state.name ||\n this.props.name ||\n `${t(\"labels.untitled\")}-${getDateTime()}`\n );\n };\n\n // fires only on Safari\n private onGestureStart = withBatchedUpdates((event: GestureEvent) => {\n event.preventDefault();\n\n // we only want to deselect on touch screens because user may have selected\n // elements by mistake while zooming\n if (this.isTouchScreenMultiTouchGesture()) {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n activeEmbeddable: null,\n });\n }\n gesture.initialScale = this.state.zoom.value;\n });\n\n // fires only on Safari\n private onGestureChange = withBatchedUpdates((event: GestureEvent) => {\n event.preventDefault();\n\n // onGestureChange only has zoom factor but not the center.\n // If we're on iPad or iPhone, then we recognize multi-touch and will\n // zoom in at the right location in the touchmove handler\n // (handleCanvasPointerMove).\n //\n // On Macbook trackpad, we don't have those events so will zoom in at the\n // current location instead.\n //\n // As such, bail from this handler on touch devices.\n if (this.isTouchScreenMultiTouchGesture()) {\n return;\n }\n\n const initialScale = gesture.initialScale;\n if (initialScale) {\n this.setState((state) => ({\n ...getStateForZoom(\n {\n viewportX: this.lastViewportPosition.x,\n viewportY: this.lastViewportPosition.y,\n nextZoom: getNormalizedZoom(initialScale * event.scale),\n },\n state,\n ),\n }));\n }\n });\n\n // fires only on Safari\n private onGestureEnd = withBatchedUpdates((event: GestureEvent) => {\n event.preventDefault();\n // reselect elements only on touch screens (see onGestureStart)\n if (this.isTouchScreenMultiTouchGesture()) {\n this.setState({\n previousSelectedElementIds: {},\n selectedElementIds: makeNextSelectedElementIds(\n this.state.previousSelectedElementIds,\n this.state,\n ),\n });\n }\n gesture.initialScale = null;\n });\n\n private handleTextWysiwyg(\n element: ExcalidrawTextElement,\n {\n isExistingElement = false,\n }: {\n isExistingElement?: boolean;\n },\n ) {\n const elementsMap = this.scene.getElementsMapIncludingDeleted();\n\n const updateElement = (\n text: string,\n originalText: string,\n isDeleted: boolean,\n ) => {\n this.scene.replaceAllElements([\n // Not sure why we include deleted elements as well hence using deleted elements map\n ...this.scene.getElementsIncludingDeleted().map((_element) => {\n if (_element.id === element.id && isTextElement(_element)) {\n return updateTextElement(\n _element,\n getContainerElement(_element, elementsMap),\n elementsMap,\n {\n text,\n isDeleted,\n originalText,\n },\n );\n }\n return _element;\n }),\n ]);\n };\n\n textWysiwyg({\n id: element.id,\n canvas: this.canvas,\n getViewportCoords: (x, y) => {\n const { x: viewportX, y: viewportY } = sceneCoordsToViewportCoords(\n {\n sceneX: x,\n sceneY: y,\n },\n this.state,\n );\n return [\n viewportX - this.state.offsetLeft,\n viewportY - this.state.offsetTop,\n ];\n },\n onChange: withBatchedUpdates((text) => {\n updateElement(text, text, false);\n if (isNonDeletedElement(element)) {\n updateBoundElements(element, elementsMap);\n }\n }),\n onSubmit: withBatchedUpdates(({ text, viaKeyboard, originalText }) => {\n const isDeleted = !text.trim();\n updateElement(text, originalText, isDeleted);\n // select the created text element only if submitting via keyboard\n // (when submitting via click it should act as signal to deselect)\n if (!isDeleted && viaKeyboard) {\n const elementIdToSelect = element.containerId\n ? element.containerId\n : element.id;\n this.setState((prevState) => ({\n selectedElementIds: makeNextSelectedElementIds(\n {\n ...prevState.selectedElementIds,\n [elementIdToSelect]: true,\n },\n prevState,\n ),\n }));\n }\n if (isDeleted) {\n fixBindingsAfterDeletion(this.scene.getNonDeletedElements(), [\n element,\n ]);\n }\n if (!isDeleted || isExistingElement) {\n this.history.resumeRecording();\n }\n\n this.setState({\n draggingElement: null,\n editingElement: null,\n });\n if (this.state.activeTool.locked) {\n setCursorForShape(this.interactiveCanvas, this.state);\n }\n\n this.focusContainer();\n }),\n element,\n excalidrawContainer: this.excalidrawContainerRef.current,\n app: this,\n });\n // deselect all other elements when inserting text\n this.deselectElements();\n\n // do an initial update to re-initialize element position since we were\n // modifying element's x/y for sake of editor (case: syncing to remote)\n updateElement(element.text, element.originalText, false);\n }\n\n private deselectElements() {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n selectedGroupIds: {},\n editingGroupId: null,\n activeEmbeddable: null,\n });\n }\n\n private getTextElementAtPosition(\n x: number,\n y: number,\n ): NonDeleted | null {\n const element = this.getElementAtPosition(x, y, {\n includeBoundTextElement: true,\n });\n if (element && isTextElement(element) && !element.isDeleted) {\n return element;\n }\n return null;\n }\n\n private getElementAtPosition(\n x: number,\n y: number,\n opts?: {\n /** if true, returns the first selected element (with highest z-index)\n of all hit elements */\n preferSelected?: boolean;\n includeBoundTextElement?: boolean;\n includeLockedElements?: boolean;\n },\n ): NonDeleted | null {\n const allHitElements = this.getElementsAtPosition(\n x,\n y,\n opts?.includeBoundTextElement,\n opts?.includeLockedElements,\n );\n if (allHitElements.length > 1) {\n if (opts?.preferSelected) {\n for (let index = allHitElements.length - 1; index > -1; index--) {\n if (this.state.selectedElementIds[allHitElements[index].id]) {\n return allHitElements[index];\n }\n }\n }\n const elementWithHighestZIndex =\n allHitElements[allHitElements.length - 1];\n // If we're hitting element with highest z-index only on its bounding box\n // while also hitting other element figure, the latter should be considered.\n return isHittingElementBoundingBoxWithoutHittingElement(\n elementWithHighestZIndex,\n this.state,\n this.frameNameBoundsCache,\n x,\n y,\n this.scene.getNonDeletedElementsMap(),\n )\n ? allHitElements[allHitElements.length - 2]\n : elementWithHighestZIndex;\n }\n if (allHitElements.length === 1) {\n return allHitElements[0];\n }\n return null;\n }\n\n private getElementsAtPosition(\n x: number,\n y: number,\n includeBoundTextElement: boolean = false,\n includeLockedElements: boolean = false,\n ): NonDeleted[] {\n const elements =\n includeBoundTextElement && includeLockedElements\n ? this.scene.getNonDeletedElements()\n : this.scene\n .getNonDeletedElements()\n .filter(\n (element) =>\n (includeLockedElements || !element.locked) &&\n (includeBoundTextElement ||\n !(isTextElement(element) && element.containerId)),\n );\n\n const elementsMap = this.scene.getNonDeletedElementsMap();\n return getElementsAtPosition(elements, (element) =>\n hitTest(\n element,\n this.state,\n this.frameNameBoundsCache,\n x,\n y,\n elementsMap,\n ),\n ).filter((element) => {\n // hitting a frame's element from outside the frame is not considered a hit\n const containingFrame = getContainingFrame(element, elementsMap);\n return containingFrame &&\n this.state.frameRendering.enabled &&\n this.state.frameRendering.clip\n ? isCursorInFrame({ x, y }, containingFrame, elementsMap)\n : true;\n });\n }\n\n private startTextEditing = ({\n sceneX,\n sceneY,\n insertAtParentCenter = true,\n container,\n }: {\n /** X position to insert text at */\n sceneX: number;\n /** Y position to insert text at */\n sceneY: number;\n /** whether to attempt to insert at element center if applicable */\n insertAtParentCenter?: boolean;\n container?: ExcalidrawTextContainer | null;\n }) => {\n let shouldBindToContainer = false;\n\n let parentCenterPosition =\n insertAtParentCenter &&\n this.getTextWysiwygSnappedToCenterPosition(\n sceneX,\n sceneY,\n this.state,\n container,\n );\n if (container && parentCenterPosition) {\n const boundTextElementToContainer = getBoundTextElement(\n container,\n this.scene.getNonDeletedElementsMap(),\n );\n if (!boundTextElementToContainer) {\n shouldBindToContainer = true;\n }\n }\n let existingTextElement: NonDeleted | null = null;\n\n const selectedElements = this.scene.getSelectedElements(this.state);\n\n if (selectedElements.length === 1) {\n if (isTextElement(selectedElements[0])) {\n existingTextElement = selectedElements[0];\n } else if (container) {\n existingTextElement = getBoundTextElement(\n selectedElements[0],\n this.scene.getNonDeletedElementsMap(),\n );\n } else {\n existingTextElement = this.getTextElementAtPosition(sceneX, sceneY);\n }\n } else {\n existingTextElement = this.getTextElementAtPosition(sceneX, sceneY);\n }\n\n const fontFamily =\n existingTextElement?.fontFamily || this.state.currentItemFontFamily;\n\n const lineHeight =\n existingTextElement?.lineHeight || getDefaultLineHeight(fontFamily);\n const fontSize = this.state.currentItemFontSize;\n\n if (\n !existingTextElement &&\n shouldBindToContainer &&\n container &&\n !isArrowElement(container)\n ) {\n const fontString = {\n fontSize,\n fontFamily,\n };\n const minWidth = getApproxMinLineWidth(\n getFontString(fontString),\n lineHeight,\n );\n const minHeight = getApproxMinLineHeight(fontSize, lineHeight);\n const newHeight = Math.max(container.height, minHeight);\n const newWidth = Math.max(container.width, minWidth);\n mutateElement(container, { height: newHeight, width: newWidth });\n sceneX = container.x + newWidth / 2;\n sceneY = container.y + newHeight / 2;\n if (parentCenterPosition) {\n parentCenterPosition = this.getTextWysiwygSnappedToCenterPosition(\n sceneX,\n sceneY,\n this.state,\n container,\n );\n }\n }\n\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({\n x: sceneX,\n y: sceneY,\n });\n\n const element = existingTextElement\n ? existingTextElement\n : newTextElement({\n x: parentCenterPosition\n ? parentCenterPosition.elementCenterX\n : sceneX,\n y: parentCenterPosition\n ? parentCenterPosition.elementCenterY\n : sceneY,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n opacity: this.state.currentItemOpacity,\n text: \"\",\n fontSize,\n fontFamily,\n textAlign: parentCenterPosition\n ? \"center\"\n : this.state.currentItemTextAlign,\n verticalAlign: parentCenterPosition\n ? VERTICAL_ALIGN.MIDDLE\n : DEFAULT_VERTICAL_ALIGN,\n containerId: shouldBindToContainer ? container?.id : undefined,\n groupIds: container?.groupIds ?? [],\n lineHeight,\n angle: container?.angle ?? 0,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n });\n\n if (!existingTextElement && shouldBindToContainer && container) {\n mutateElement(container, {\n boundElements: (container.boundElements || []).concat({\n type: \"text\",\n id: element.id,\n }),\n });\n }\n this.setState({ editingElement: element });\n\n if (!existingTextElement) {\n if (container && shouldBindToContainer) {\n const containerIndex = this.scene.getElementIndex(container.id);\n this.scene.insertElementAtIndex(element, containerIndex + 1);\n } else {\n this.scene.addNewElement(element);\n }\n }\n\n this.setState({\n editingElement: element,\n });\n\n this.handleTextWysiwyg(element, {\n isExistingElement: !!existingTextElement,\n });\n };\n\n private handleCanvasDoubleClick = (\n event: React.MouseEvent,\n ) => {\n // case: double-clicking with arrow/line tool selected would both create\n // text and enter multiElement mode\n if (this.state.multiElement) {\n return;\n }\n // we should only be able to double click when mode is selection\n if (this.state.activeTool.type !== \"selection\") {\n return;\n }\n\n const selectedElements = this.scene.getSelectedElements(this.state);\n\n if (selectedElements.length === 1 && isLinearElement(selectedElements[0])) {\n if (\n event[KEYS.CTRL_OR_CMD] &&\n (!this.state.editingLinearElement ||\n this.state.editingLinearElement.elementId !== selectedElements[0].id)\n ) {\n this.history.resumeRecording();\n this.setState({\n editingLinearElement: new LinearElementEditor(selectedElements[0]),\n });\n return;\n } else if (\n this.state.editingLinearElement &&\n this.state.editingLinearElement.elementId === selectedElements[0].id\n ) {\n return;\n }\n }\n\n resetCursor(this.interactiveCanvas);\n\n let { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords(\n event,\n this.state,\n );\n\n const selectedGroupIds = getSelectedGroupIds(this.state);\n\n if (selectedGroupIds.length > 0) {\n const hitElement = this.getElementAtPosition(sceneX, sceneY);\n\n const selectedGroupId =\n hitElement &&\n getSelectedGroupIdForElement(hitElement, this.state.selectedGroupIds);\n\n if (selectedGroupId) {\n this.setState((prevState) => ({\n ...prevState,\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: selectedGroupId,\n selectedElementIds: { [hitElement!.id]: true },\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n }));\n return;\n }\n }\n\n resetCursor(this.interactiveCanvas);\n if (!event[KEYS.CTRL_OR_CMD] && !this.state.viewModeEnabled) {\n const hitElement = this.getElementAtPosition(sceneX, sceneY);\n\n if (isIframeLikeElement(hitElement)) {\n this.setState({\n activeEmbeddable: { element: hitElement, state: \"active\" },\n });\n return;\n }\n\n const container = getTextBindableContainerAtPosition(\n this.scene.getNonDeletedElements(),\n this.state,\n sceneX,\n sceneY,\n this.scene.getNonDeletedElementsMap(),\n );\n\n if (container) {\n if (\n hasBoundTextElement(container) ||\n !isTransparent(container.backgroundColor) ||\n isHittingElementNotConsideringBoundingBox(\n container,\n this.state,\n this.frameNameBoundsCache,\n [sceneX, sceneY],\n this.scene.getNonDeletedElementsMap(),\n )\n ) {\n const midPoint = getContainerCenter(\n container,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n\n sceneX = midPoint.x;\n sceneY = midPoint.y;\n }\n }\n\n this.startTextEditing({\n sceneX,\n sceneY,\n insertAtParentCenter: !event.altKey,\n container,\n });\n }\n };\n\n private getElementLinkAtPosition = (\n scenePointer: Readonly<{ x: number; y: number }>,\n hitElement: NonDeletedExcalidrawElement | null,\n ): ExcalidrawElement | undefined => {\n // Reversing so we traverse the elements in decreasing order\n // of z-index\n const elements = this.scene.getNonDeletedElements().slice().reverse();\n let hitElementIndex = Infinity;\n\n return elements.find((element, index) => {\n if (hitElement && element.id === hitElement.id) {\n hitElementIndex = index;\n }\n return (\n element.link &&\n index <= hitElementIndex &&\n isPointHittingLink(\n element,\n this.scene.getNonDeletedElementsMap(),\n this.state,\n [scenePointer.x, scenePointer.y],\n this.device.editor.isMobile,\n )\n );\n });\n };\n\n private redirectToLink = (\n event: React.PointerEvent,\n isTouchScreen: boolean,\n ) => {\n const draggedDistance = distance2d(\n this.lastPointerDownEvent!.clientX,\n this.lastPointerDownEvent!.clientY,\n this.lastPointerUpEvent!.clientX,\n this.lastPointerUpEvent!.clientY,\n );\n if (\n !this.hitLinkElement ||\n // For touch screen allow dragging threshold else strict check\n (isTouchScreen && draggedDistance > DRAGGING_THRESHOLD) ||\n (!isTouchScreen && draggedDistance !== 0)\n ) {\n return;\n }\n const lastPointerDownCoords = viewportCoordsToSceneCoords(\n this.lastPointerDownEvent!,\n this.state,\n );\n const elementsMap = this.scene.getNonDeletedElementsMap();\n const lastPointerDownHittingLinkIcon = isPointHittingLink(\n this.hitLinkElement,\n elementsMap,\n this.state,\n [lastPointerDownCoords.x, lastPointerDownCoords.y],\n this.device.editor.isMobile,\n );\n const lastPointerUpCoords = viewportCoordsToSceneCoords(\n this.lastPointerUpEvent!,\n this.state,\n );\n const lastPointerUpHittingLinkIcon = isPointHittingLink(\n this.hitLinkElement,\n elementsMap,\n this.state,\n [lastPointerUpCoords.x, lastPointerUpCoords.y],\n this.device.editor.isMobile,\n );\n if (lastPointerDownHittingLinkIcon && lastPointerUpHittingLinkIcon) {\n let url = this.hitLinkElement.link;\n if (url) {\n url = normalizeLink(url);\n let customEvent;\n if (this.props.onLinkOpen) {\n customEvent = wrapEvent(EVENT.EXCALIDRAW_LINK, event.nativeEvent);\n this.props.onLinkOpen(\n {\n ...this.hitLinkElement,\n link: url,\n },\n customEvent,\n );\n }\n if (!customEvent?.defaultPrevented) {\n const target = isLocalLink(url) ? \"_self\" : \"_blank\";\n const newWindow = window.open(undefined, target);\n // https://mathiasbynens.github.io/rel-noopener/\n if (newWindow) {\n newWindow.opener = null;\n newWindow.location = url;\n }\n }\n }\n }\n };\n\n private getTopLayerFrameAtSceneCoords = (sceneCoords: {\n x: number;\n y: number;\n }) => {\n const elementsMap = this.scene.getNonDeletedElementsMap();\n const frames = this.scene\n .getNonDeletedFramesLikes()\n .filter((frame): frame is ExcalidrawFrameLikeElement =>\n isCursorInFrame(sceneCoords, frame, elementsMap),\n );\n\n return frames.length ? frames[frames.length - 1] : null;\n };\n\n private handleCanvasPointerMove = (\n event: React.PointerEvent,\n ) => {\n this.savePointer(event.clientX, event.clientY, this.state.cursorButton);\n this.lastPointerMoveEvent = event.nativeEvent;\n\n if (gesture.pointers.has(event.pointerId)) {\n gesture.pointers.set(event.pointerId, {\n x: event.clientX,\n y: event.clientY,\n });\n }\n\n const initialScale = gesture.initialScale;\n if (\n gesture.pointers.size === 2 &&\n gesture.lastCenter &&\n initialScale &&\n gesture.initialDistance\n ) {\n const center = getCenter(gesture.pointers);\n const deltaX = center.x - gesture.lastCenter.x;\n const deltaY = center.y - gesture.lastCenter.y;\n gesture.lastCenter = center;\n\n const distance = getDistance(Array.from(gesture.pointers.values()));\n const scaleFactor =\n this.state.activeTool.type === \"freedraw\" && this.state.penMode\n ? 1\n : distance / gesture.initialDistance;\n\n const nextZoom = scaleFactor\n ? getNormalizedZoom(initialScale * scaleFactor)\n : this.state.zoom.value;\n\n this.setState((state) => {\n const zoomState = getStateForZoom(\n {\n viewportX: center.x,\n viewportY: center.y,\n nextZoom,\n },\n state,\n );\n\n this.translateCanvas({\n zoom: zoomState.zoom,\n scrollX: zoomState.scrollX + deltaX / nextZoom,\n scrollY: zoomState.scrollY + deltaY / nextZoom,\n shouldCacheIgnoreZoom: true,\n });\n });\n this.resetShouldCacheIgnoreZoomDebounced();\n } else {\n gesture.lastCenter =\n gesture.initialDistance =\n gesture.initialScale =\n null;\n }\n\n if (\n isHoldingSpace ||\n isPanning ||\n isDraggingScrollBar ||\n isHandToolActive(this.state)\n ) {\n return;\n }\n\n const isPointerOverScrollBars = isOverScrollBars(\n currentScrollBars,\n event.clientX - this.state.offsetLeft,\n event.clientY - this.state.offsetTop,\n );\n const isOverScrollBar = isPointerOverScrollBars.isOverEither;\n if (!this.state.draggingElement && !this.state.multiElement) {\n if (isOverScrollBar) {\n resetCursor(this.interactiveCanvas);\n } else {\n setCursorForShape(this.interactiveCanvas, this.state);\n }\n }\n\n const scenePointer = viewportCoordsToSceneCoords(event, this.state);\n const { x: scenePointerX, y: scenePointerY } = scenePointer;\n\n if (\n !this.state.draggingElement &&\n isActiveToolNonLinearSnappable(this.state.activeTool.type)\n ) {\n const { originOffset, snapLines } = getSnapLinesAtPointer(\n this.scene.getNonDeletedElements(),\n this.state,\n {\n x: scenePointerX,\n y: scenePointerY,\n },\n event,\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.setState((prevState) => {\n const nextSnapLines = updateStable(prevState.snapLines, snapLines);\n const nextOriginOffset = prevState.originSnapOffset\n ? updateStable(prevState.originSnapOffset, originOffset)\n : originOffset;\n\n if (\n prevState.snapLines === nextSnapLines &&\n prevState.originSnapOffset === nextOriginOffset\n ) {\n return null;\n }\n return {\n snapLines: nextSnapLines,\n originSnapOffset: nextOriginOffset,\n };\n });\n } else if (!this.state.draggingElement) {\n this.setState((prevState) => {\n if (prevState.snapLines.length) {\n return {\n snapLines: [],\n };\n }\n return null;\n });\n }\n\n if (\n this.state.editingLinearElement &&\n !this.state.editingLinearElement.isDragging\n ) {\n const editingLinearElement = LinearElementEditor.handlePointerMove(\n event,\n scenePointerX,\n scenePointerY,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n\n if (\n editingLinearElement &&\n editingLinearElement !== this.state.editingLinearElement\n ) {\n // Since we are reading from previous state which is not possible with\n // automatic batching in React 18 hence using flush sync to synchronously\n // update the state. Check https://github.com/excalidraw/excalidraw/pull/5508 for more details.\n flushSync(() => {\n this.setState({\n editingLinearElement,\n });\n });\n }\n if (editingLinearElement?.lastUncommittedPoint != null) {\n this.maybeSuggestBindingAtCursor(scenePointer);\n } else {\n // causes stack overflow if not sync\n flushSync(() => {\n this.setState({ suggestedBindings: [] });\n });\n }\n }\n\n if (isBindingElementType(this.state.activeTool.type)) {\n // Hovering with a selected tool or creating new linear element via click\n // and point\n const { draggingElement } = this.state;\n if (isBindingElement(draggingElement, false)) {\n this.maybeSuggestBindingsForLinearElementAtCoords(\n draggingElement,\n [scenePointer],\n this.state.startBoundElement,\n );\n } else {\n this.maybeSuggestBindingAtCursor(scenePointer);\n }\n }\n\n if (this.state.multiElement) {\n const { multiElement } = this.state;\n const { x: rx, y: ry } = multiElement;\n\n const { points, lastCommittedPoint } = multiElement;\n const lastPoint = points[points.length - 1];\n\n setCursorForShape(this.interactiveCanvas, this.state);\n\n if (lastPoint === lastCommittedPoint) {\n // if we haven't yet created a temp point and we're beyond commit-zone\n // threshold, add a point\n if (\n distance2d(\n scenePointerX - rx,\n scenePointerY - ry,\n lastPoint[0],\n lastPoint[1],\n ) >= LINE_CONFIRM_THRESHOLD\n ) {\n mutateElement(multiElement, {\n points: [...points, [scenePointerX - rx, scenePointerY - ry]],\n });\n } else {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n // in this branch, we're inside the commit zone, and no uncommitted\n // point exists. Thus do nothing (don't add/remove points).\n }\n } else if (\n points.length > 2 &&\n lastCommittedPoint &&\n distance2d(\n scenePointerX - rx,\n scenePointerY - ry,\n lastCommittedPoint[0],\n lastCommittedPoint[1],\n ) < LINE_CONFIRM_THRESHOLD\n ) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n mutateElement(multiElement, {\n points: points.slice(0, -1),\n });\n } else {\n const [gridX, gridY] = getGridPoint(\n scenePointerX,\n scenePointerY,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n const [lastCommittedX, lastCommittedY] =\n multiElement?.lastCommittedPoint ?? [0, 0];\n\n let dxFromLastCommitted = gridX - rx - lastCommittedX;\n let dyFromLastCommitted = gridY - ry - lastCommittedY;\n\n if (shouldRotateWithDiscreteAngle(event)) {\n ({ width: dxFromLastCommitted, height: dyFromLastCommitted } =\n getLockedLinearCursorAlignSize(\n // actual coordinate of the last committed point\n lastCommittedX + rx,\n lastCommittedY + ry,\n // cursor-grid coordinate\n gridX,\n gridY,\n ));\n }\n\n if (isPathALoop(points, this.state.zoom.value)) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n }\n // update last uncommitted point\n mutateElement(multiElement, {\n points: [\n ...points.slice(0, -1),\n [\n lastCommittedX + dxFromLastCommitted,\n lastCommittedY + dyFromLastCommitted,\n ],\n ],\n });\n }\n\n return;\n }\n\n const hasDeselectedButton = Boolean(event.buttons);\n if (\n hasDeselectedButton ||\n (this.state.activeTool.type !== \"selection\" &&\n this.state.activeTool.type !== \"text\" &&\n this.state.activeTool.type !== \"eraser\")\n ) {\n return;\n }\n\n const elements = this.scene.getNonDeletedElements();\n\n const selectedElements = this.scene.getSelectedElements(this.state);\n if (\n selectedElements.length === 1 &&\n !isOverScrollBar &&\n !this.state.editingLinearElement\n ) {\n const elementWithTransformHandleType = getElementWithTransformHandleType(\n elements,\n this.state,\n scenePointerX,\n scenePointerY,\n this.state.zoom,\n event.pointerType,\n this.scene.getNonDeletedElementsMap(),\n );\n if (\n elementWithTransformHandleType &&\n elementWithTransformHandleType.transformHandleType\n ) {\n setCursor(\n this.interactiveCanvas,\n getCursorForResizingElement(elementWithTransformHandleType),\n );\n return;\n }\n } else if (selectedElements.length > 1 && !isOverScrollBar) {\n const transformHandleType = getTransformHandleTypeFromCoords(\n getCommonBounds(selectedElements),\n scenePointerX,\n scenePointerY,\n this.state.zoom,\n event.pointerType,\n );\n if (transformHandleType) {\n setCursor(\n this.interactiveCanvas,\n getCursorForResizingElement({\n transformHandleType,\n }),\n );\n return;\n }\n }\n\n const hitElement = this.getElementAtPosition(\n scenePointer.x,\n scenePointer.y,\n );\n\n this.hitLinkElement = this.getElementLinkAtPosition(\n scenePointer,\n hitElement,\n );\n if (isEraserActive(this.state)) {\n return;\n }\n if (\n this.hitLinkElement &&\n !this.state.selectedElementIds[this.hitLinkElement.id]\n ) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n showHyperlinkTooltip(\n this.hitLinkElement,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n } else {\n hideHyperlinkToolip();\n if (\n hitElement &&\n (hitElement.link || isEmbeddableElement(hitElement)) &&\n this.state.selectedElementIds[hitElement.id] &&\n !this.state.contextMenu &&\n !this.state.showHyperlinkPopup\n ) {\n this.setState({ showHyperlinkPopup: \"info\" });\n } else if (this.state.activeTool.type === \"text\") {\n setCursor(\n this.interactiveCanvas,\n isTextElement(hitElement) ? CURSOR_TYPE.TEXT : CURSOR_TYPE.CROSSHAIR,\n );\n } else if (this.state.viewModeEnabled) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRAB);\n } else if (isOverScrollBar) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.AUTO);\n } else if (this.state.selectedLinearElement) {\n this.handleHoverSelectedLinearElement(\n this.state.selectedLinearElement,\n scenePointerX,\n scenePointerY,\n );\n } else if (\n // if using cmd/ctrl, we're not dragging\n !event[KEYS.CTRL_OR_CMD]\n ) {\n if (\n (hitElement ||\n this.isHittingCommonBoundingBoxOfSelectedElements(\n scenePointer,\n selectedElements,\n )) &&\n !hitElement?.locked\n ) {\n if (\n hitElement &&\n isIframeLikeElement(hitElement) &&\n this.isIframeLikeElementCenter(\n hitElement,\n event,\n scenePointerX,\n scenePointerY,\n )\n ) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n this.setState({\n activeEmbeddable: { element: hitElement, state: \"hover\" },\n });\n } else {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.MOVE);\n if (this.state.activeEmbeddable?.state === \"hover\") {\n this.setState({ activeEmbeddable: null });\n }\n }\n }\n } else {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.AUTO);\n }\n }\n };\n\n private handleEraser = (\n event: PointerEvent,\n pointerDownState: PointerDownState,\n scenePointer: { x: number; y: number },\n ) => {\n this.eraserTrail.addPointToPath(scenePointer.x, scenePointer.y);\n\n let didChange = false;\n\n const processedGroups = new Set();\n const nonDeletedElements = this.scene.getNonDeletedElements();\n\n const processElements = (elements: ExcalidrawElement[]) => {\n for (const element of elements) {\n if (element.locked) {\n return;\n }\n\n if (event.altKey) {\n if (this.elementsPendingErasure.delete(element.id)) {\n didChange = true;\n }\n } else if (!this.elementsPendingErasure.has(element.id)) {\n didChange = true;\n this.elementsPendingErasure.add(element.id);\n }\n\n // (un)erase groups atomically\n if (didChange && element.groupIds?.length) {\n const shallowestGroupId = element.groupIds.at(-1)!;\n if (!processedGroups.has(shallowestGroupId)) {\n processedGroups.add(shallowestGroupId);\n const elems = getElementsInGroup(\n nonDeletedElements,\n shallowestGroupId,\n );\n for (const elem of elems) {\n if (event.altKey) {\n this.elementsPendingErasure.delete(elem.id);\n } else {\n this.elementsPendingErasure.add(elem.id);\n }\n }\n }\n }\n }\n };\n\n const distance = distance2d(\n pointerDownState.lastCoords.x,\n pointerDownState.lastCoords.y,\n scenePointer.x,\n scenePointer.y,\n );\n const threshold = 10 / this.state.zoom.value;\n const point = { ...pointerDownState.lastCoords };\n let samplingInterval = 0;\n while (samplingInterval <= distance) {\n const hitElements = this.getElementsAtPosition(point.x, point.y);\n processElements(hitElements);\n\n // Exit since we reached current point\n if (samplingInterval === distance) {\n break;\n }\n\n // Calculate next point in the line at a distance of sampling interval\n samplingInterval = Math.min(samplingInterval + threshold, distance);\n\n const distanceRatio = samplingInterval / distance;\n const nextX =\n (1 - distanceRatio) * point.x + distanceRatio * scenePointer.x;\n const nextY =\n (1 - distanceRatio) * point.y + distanceRatio * scenePointer.y;\n point.x = nextX;\n point.y = nextY;\n }\n\n pointerDownState.lastCoords.x = scenePointer.x;\n pointerDownState.lastCoords.y = scenePointer.y;\n\n if (didChange) {\n for (const element of this.scene.getNonDeletedElements()) {\n if (\n isBoundToContainer(element) &&\n (this.elementsPendingErasure.has(element.id) ||\n this.elementsPendingErasure.has(element.containerId))\n ) {\n if (event.altKey) {\n this.elementsPendingErasure.delete(element.id);\n this.elementsPendingErasure.delete(element.containerId);\n } else {\n this.elementsPendingErasure.add(element.id);\n this.elementsPendingErasure.add(element.containerId);\n }\n }\n }\n\n this.elementsPendingErasure = new Set(this.elementsPendingErasure);\n this.onSceneUpdated();\n }\n };\n\n // set touch moving for mobile context menu\n private handleTouchMove = (event: React.TouchEvent) => {\n invalidateContextMenu = true;\n };\n\n handleHoverSelectedLinearElement(\n linearElementEditor: LinearElementEditor,\n scenePointerX: number,\n scenePointerY: number,\n ) {\n const elementsMap = this.scene.getNonDeletedElementsMap();\n\n const element = LinearElementEditor.getElement(\n linearElementEditor.elementId,\n elementsMap,\n );\n const boundTextElement = getBoundTextElement(element, elementsMap);\n\n if (!element) {\n return;\n }\n if (this.state.selectedLinearElement) {\n let hoverPointIndex = -1;\n let segmentMidPointHoveredCoords = null;\n if (\n isHittingElementNotConsideringBoundingBox(\n element,\n this.state,\n this.frameNameBoundsCache,\n [scenePointerX, scenePointerY],\n elementsMap,\n )\n ) {\n hoverPointIndex = LinearElementEditor.getPointIndexUnderCursor(\n element,\n elementsMap,\n this.state.zoom,\n scenePointerX,\n scenePointerY,\n );\n segmentMidPointHoveredCoords =\n LinearElementEditor.getSegmentMidpointHitCoords(\n linearElementEditor,\n { x: scenePointerX, y: scenePointerY },\n this.state,\n this.scene.getNonDeletedElementsMap(),\n );\n\n if (hoverPointIndex >= 0 || segmentMidPointHoveredCoords) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n } else {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.MOVE);\n }\n } else if (\n shouldShowBoundingBox([element], this.state) &&\n isHittingElementBoundingBoxWithoutHittingElement(\n element,\n this.state,\n this.frameNameBoundsCache,\n scenePointerX,\n scenePointerY,\n elementsMap,\n )\n ) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.MOVE);\n } else if (\n boundTextElement &&\n hitTest(\n boundTextElement,\n this.state,\n this.frameNameBoundsCache,\n scenePointerX,\n scenePointerY,\n this.scene.getNonDeletedElementsMap(),\n )\n ) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.MOVE);\n }\n\n if (\n this.state.selectedLinearElement.hoverPointIndex !== hoverPointIndex\n ) {\n this.setState({\n selectedLinearElement: {\n ...this.state.selectedLinearElement,\n hoverPointIndex,\n },\n });\n }\n\n if (\n !LinearElementEditor.arePointsEqual(\n this.state.selectedLinearElement.segmentMidPointHoveredCoords,\n segmentMidPointHoveredCoords,\n )\n ) {\n this.setState({\n selectedLinearElement: {\n ...this.state.selectedLinearElement,\n segmentMidPointHoveredCoords,\n },\n });\n }\n } else {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.AUTO);\n }\n }\n\n private handleCanvasPointerDown = (\n event: React.PointerEvent,\n ) => {\n this.maybeCleanupAfterMissingPointerUp(event.nativeEvent);\n this.maybeUnfollowRemoteUser();\n\n // since contextMenu options are potentially evaluated on each render,\n // and an contextMenu action may depend on selection state, we must\n // close the contextMenu before we update the selection on pointerDown\n // (e.g. resetting selection)\n if (this.state.contextMenu) {\n this.setState({ contextMenu: null });\n }\n\n if (this.state.snapLines) {\n this.setAppState({ snapLines: [] });\n }\n\n this.updateGestureOnPointerDown(event);\n\n // if dragging element is freedraw and another pointerdown event occurs\n // a second finger is on the screen\n // discard the freedraw element if it is very short because it is likely\n // just a spike, otherwise finalize the freedraw element when the second\n // finger is lifted\n if (\n event.pointerType === \"touch\" &&\n this.state.draggingElement &&\n this.state.draggingElement.type === \"freedraw\"\n ) {\n const element = this.state.draggingElement as ExcalidrawFreeDrawElement;\n this.updateScene({\n ...(element.points.length < 10\n ? {\n elements: this.scene\n .getElementsIncludingDeleted()\n .filter((el) => el.id !== element.id),\n }\n : {}),\n appState: {\n draggingElement: null,\n editingElement: null,\n startBoundElement: null,\n suggestedBindings: [],\n selectedElementIds: makeNextSelectedElementIds(\n Object.keys(this.state.selectedElementIds)\n .filter((key) => key !== element.id)\n .reduce((obj: { [id: string]: true }, key) => {\n obj[key] = this.state.selectedElementIds[key];\n return obj;\n }, {}),\n this.state,\n ),\n },\n });\n return;\n }\n\n // remove any active selection when we start to interact with canvas\n // (mainly, we care about removing selection outside the component which\n // would prevent our copy handling otherwise)\n const selection = document.getSelection();\n if (selection?.anchorNode) {\n selection.removeAllRanges();\n }\n this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(event);\n\n //fires only once, if pen is detected, penMode is enabled\n //the user can disable this by toggling the penMode button\n if (!this.state.penDetected && event.pointerType === \"pen\") {\n this.setState((prevState) => {\n return {\n penMode: true,\n penDetected: true,\n };\n });\n }\n\n if (\n !this.device.isTouchScreen &&\n [\"pen\", \"touch\"].includes(event.pointerType)\n ) {\n this.device = updateObject(this.device, { isTouchScreen: true });\n }\n\n if (isPanning) {\n return;\n }\n\n this.lastPointerDownEvent = event;\n\n // we must exit before we set `cursorButton` state and `savePointer`\n // else it will send pointer state & laser pointer events in collab when\n // panning\n if (this.handleCanvasPanUsingWheelOrSpaceDrag(event)) {\n return;\n }\n\n this.setState({\n lastPointerDownWith: event.pointerType,\n cursorButton: \"down\",\n });\n this.savePointer(event.clientX, event.clientY, \"down\");\n\n if (\n event.button === POINTER_BUTTON.ERASER &&\n this.state.activeTool.type !== TOOL_TYPE.eraser\n ) {\n this.setState(\n {\n activeTool: updateActiveTool(this.state, {\n type: TOOL_TYPE.eraser,\n lastActiveToolBeforeEraser: this.state.activeTool,\n }),\n },\n () => {\n this.handleCanvasPointerDown(event);\n const onPointerUp = () => {\n unsubPointerUp();\n unsubCleanup?.();\n if (isEraserActive(this.state)) {\n this.setState({\n activeTool: updateActiveTool(this.state, {\n ...(this.state.activeTool.lastActiveTool || {\n type: TOOL_TYPE.selection,\n }),\n lastActiveToolBeforeEraser: null,\n }),\n });\n }\n };\n\n const unsubPointerUp = addEventListener(\n window,\n EVENT.POINTER_UP,\n onPointerUp,\n {\n once: true,\n },\n );\n let unsubCleanup: UnsubscribeCallback | undefined;\n // subscribe inside rAF lest it'd be triggered on the same pointerdown\n // if we start erasing while coming from blurred document since\n // we cleanup pointer events on focus\n requestAnimationFrame(() => {\n unsubCleanup =\n this.missingPointerEventCleanupEmitter.once(onPointerUp);\n });\n },\n );\n return;\n }\n\n // only handle left mouse button or touch\n if (\n event.button !== POINTER_BUTTON.MAIN &&\n event.button !== POINTER_BUTTON.TOUCH &&\n event.button !== POINTER_BUTTON.ERASER\n ) {\n return;\n }\n\n // don't select while panning\n if (gesture.pointers.size > 1) {\n return;\n }\n\n // State for the duration of a pointer interaction, which starts with a\n // pointerDown event, ends with a pointerUp event (or another pointerDown)\n const pointerDownState = this.initialPointerDownState(event);\n\n this.setState({\n selectedElementsAreBeingDragged: false,\n });\n\n if (this.handleDraggingScrollBar(event, pointerDownState)) {\n return;\n }\n\n this.clearSelectionIfNotUsingSelection();\n this.updateBindingEnabledOnPointerMove(event);\n\n if (this.handleSelectionOnPointerDown(event, pointerDownState)) {\n return;\n }\n\n const allowOnPointerDown =\n !this.state.penMode ||\n event.pointerType !== \"touch\" ||\n this.state.activeTool.type === \"selection\" ||\n this.state.activeTool.type === \"text\" ||\n this.state.activeTool.type === \"image\";\n\n if (!allowOnPointerDown) {\n return;\n }\n\n if (this.state.activeTool.type === \"text\") {\n this.handleTextOnPointerDown(event, pointerDownState);\n return;\n } else if (\n this.state.activeTool.type === \"arrow\" ||\n this.state.activeTool.type === \"line\"\n ) {\n this.handleLinearElementOnPointerDown(\n event,\n this.state.activeTool.type,\n pointerDownState,\n );\n } else if (this.state.activeTool.type === \"image\") {\n // reset image preview on pointerdown\n setCursor(this.interactiveCanvas, CURSOR_TYPE.CROSSHAIR);\n\n // retrieve the latest element as the state may be stale\n const pendingImageElement =\n this.state.pendingImageElementId &&\n this.scene.getElement(this.state.pendingImageElementId);\n\n if (!pendingImageElement) {\n return;\n }\n\n this.setState({\n draggingElement: pendingImageElement,\n editingElement: pendingImageElement,\n pendingImageElementId: null,\n multiElement: null,\n });\n\n const { x, y } = viewportCoordsToSceneCoords(event, this.state);\n\n const frame = this.getTopLayerFrameAtSceneCoords({ x, y });\n\n mutateElement(pendingImageElement, {\n x,\n y,\n frameId: frame ? frame.id : null,\n });\n } else if (this.state.activeTool.type === \"freedraw\") {\n this.handleFreeDrawElementOnPointerDown(\n event,\n this.state.activeTool.type,\n pointerDownState,\n );\n } else if (this.state.activeTool.type === \"custom\") {\n setCursorForShape(this.interactiveCanvas, this.state);\n } else if (\n this.state.activeTool.type === TOOL_TYPE.frame ||\n this.state.activeTool.type === TOOL_TYPE.magicframe\n ) {\n this.createFrameElementOnPointerDown(\n pointerDownState,\n this.state.activeTool.type,\n );\n } else if (this.state.activeTool.type === \"laser\") {\n this.laserTrails.startPath(\n pointerDownState.lastCoords.x,\n pointerDownState.lastCoords.y,\n );\n } else if (\n this.state.activeTool.type !== \"eraser\" &&\n this.state.activeTool.type !== \"hand\"\n ) {\n this.createGenericElementOnPointerDown(\n this.state.activeTool.type,\n pointerDownState,\n );\n }\n\n this.props?.onPointerDown?.(this.state.activeTool, pointerDownState);\n this.onPointerDownEmitter.trigger(\n this.state.activeTool,\n pointerDownState,\n event,\n );\n\n if (this.state.activeTool.type === \"eraser\") {\n this.eraserTrail.startPath(\n pointerDownState.lastCoords.x,\n pointerDownState.lastCoords.y,\n );\n }\n\n const onPointerMove =\n this.onPointerMoveFromPointerDownHandler(pointerDownState);\n\n const onPointerUp =\n this.onPointerUpFromPointerDownHandler(pointerDownState);\n\n const onKeyDown = this.onKeyDownFromPointerDownHandler(pointerDownState);\n const onKeyUp = this.onKeyUpFromPointerDownHandler(pointerDownState);\n\n this.missingPointerEventCleanupEmitter.once((_event) =>\n onPointerUp(_event || event.nativeEvent),\n );\n\n if (!this.state.viewModeEnabled || this.state.activeTool.type === \"laser\") {\n window.addEventListener(EVENT.POINTER_MOVE, onPointerMove);\n window.addEventListener(EVENT.POINTER_UP, onPointerUp);\n window.addEventListener(EVENT.KEYDOWN, onKeyDown);\n window.addEventListener(EVENT.KEYUP, onKeyUp);\n pointerDownState.eventListeners.onMove = onPointerMove;\n pointerDownState.eventListeners.onUp = onPointerUp;\n pointerDownState.eventListeners.onKeyUp = onKeyUp;\n pointerDownState.eventListeners.onKeyDown = onKeyDown;\n }\n };\n\n private handleCanvasPointerUp = (\n event: React.PointerEvent,\n ) => {\n this.removePointer(event);\n this.lastPointerUpEvent = event;\n\n const scenePointer = viewportCoordsToSceneCoords(\n { clientX: event.clientX, clientY: event.clientY },\n this.state,\n );\n const clicklength =\n event.timeStamp - (this.lastPointerDownEvent?.timeStamp ?? 0);\n if (this.device.editor.isMobile && clicklength < 300) {\n const hitElement = this.getElementAtPosition(\n scenePointer.x,\n scenePointer.y,\n );\n if (\n isIframeLikeElement(hitElement) &&\n this.isIframeLikeElementCenter(\n hitElement,\n event,\n scenePointer.x,\n scenePointer.y,\n )\n ) {\n this.handleEmbeddableCenterClick(hitElement);\n return;\n }\n }\n\n if (this.device.isTouchScreen) {\n const hitElement = this.getElementAtPosition(\n scenePointer.x,\n scenePointer.y,\n );\n this.hitLinkElement = this.getElementLinkAtPosition(\n scenePointer,\n hitElement,\n );\n }\n\n if (\n this.hitLinkElement &&\n !this.state.selectedElementIds[this.hitLinkElement.id]\n ) {\n if (\n clicklength < 300 &&\n isIframeLikeElement(this.hitLinkElement) &&\n !isPointHittingLinkIcon(\n this.hitLinkElement,\n this.scene.getNonDeletedElementsMap(),\n this.state,\n [scenePointer.x, scenePointer.y],\n )\n ) {\n this.handleEmbeddableCenterClick(this.hitLinkElement);\n } else {\n this.redirectToLink(event, this.device.isTouchScreen);\n }\n } else if (this.state.viewModeEnabled) {\n this.setState({\n activeEmbeddable: null,\n selectedElementIds: {},\n });\n }\n };\n\n private maybeOpenContextMenuAfterPointerDownOnTouchDevices = (\n event: React.PointerEvent,\n ): void => {\n // deal with opening context menu on touch devices\n if (event.pointerType === \"touch\") {\n invalidateContextMenu = false;\n\n if (touchTimeout) {\n // If there's already a touchTimeout, this means that there's another\n // touch down and we are doing another touch, so we shouldn't open the\n // context menu.\n invalidateContextMenu = true;\n } else {\n // open the context menu with the first touch's clientX and clientY\n // if the touch is not moving\n touchTimeout = window.setTimeout(() => {\n touchTimeout = 0;\n if (!invalidateContextMenu) {\n this.handleCanvasContextMenu(event);\n }\n }, TOUCH_CTX_MENU_TIMEOUT);\n }\n }\n };\n\n private resetContextMenuTimer = () => {\n clearTimeout(touchTimeout);\n touchTimeout = 0;\n invalidateContextMenu = false;\n };\n\n /**\n * pointerup may not fire in certian cases (user tabs away...), so in order\n * to properly cleanup pointerdown state, we need to fire any hanging\n * pointerup handlers manually\n */\n private maybeCleanupAfterMissingPointerUp = (event: PointerEvent | null) => {\n lastPointerUp?.();\n this.missingPointerEventCleanupEmitter.trigger(event).clear();\n };\n\n // Returns whether the event is a panning\n private handleCanvasPanUsingWheelOrSpaceDrag = (\n event: React.PointerEvent,\n ): boolean => {\n if (\n !(\n gesture.pointers.size <= 1 &&\n (event.button === POINTER_BUTTON.WHEEL ||\n (event.button === POINTER_BUTTON.MAIN && isHoldingSpace) ||\n isHandToolActive(this.state) ||\n this.state.viewModeEnabled)\n ) ||\n isTextElement(this.state.editingElement)\n ) {\n return false;\n }\n isPanning = true;\n event.preventDefault();\n\n let nextPastePrevented = false;\n const isLinux =\n typeof window === undefined\n ? false\n : /Linux/.test(window.navigator.platform);\n\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRABBING);\n let { clientX: lastX, clientY: lastY } = event;\n const onPointerMove = withBatchedUpdatesThrottled((event: PointerEvent) => {\n const deltaX = lastX - event.clientX;\n const deltaY = lastY - event.clientY;\n lastX = event.clientX;\n lastY = event.clientY;\n\n /*\n * Prevent paste event if we move while middle clicking on Linux.\n * See issue #1383.\n */\n if (\n isLinux &&\n !nextPastePrevented &&\n (Math.abs(deltaX) > 1 || Math.abs(deltaY) > 1)\n ) {\n nextPastePrevented = true;\n\n /* Prevent the next paste event */\n const preventNextPaste = (event: ClipboardEvent) => {\n document.body.removeEventListener(EVENT.PASTE, preventNextPaste);\n event.stopPropagation();\n };\n\n /*\n * Reenable next paste in case of disabled middle click paste for\n * any reason:\n * - right click paste\n * - empty clipboard\n */\n const enableNextPaste = () => {\n setTimeout(() => {\n document.body.removeEventListener(EVENT.PASTE, preventNextPaste);\n window.removeEventListener(EVENT.POINTER_UP, enableNextPaste);\n }, 100);\n };\n\n document.body.addEventListener(EVENT.PASTE, preventNextPaste);\n window.addEventListener(EVENT.POINTER_UP, enableNextPaste);\n }\n\n this.translateCanvas({\n scrollX: this.state.scrollX - deltaX / this.state.zoom.value,\n scrollY: this.state.scrollY - deltaY / this.state.zoom.value,\n });\n });\n const teardown = withBatchedUpdates(\n (lastPointerUp = () => {\n lastPointerUp = null;\n isPanning = false;\n if (!isHoldingSpace) {\n if (this.state.viewModeEnabled) {\n setCursor(this.interactiveCanvas, CURSOR_TYPE.GRAB);\n } else {\n setCursorForShape(this.interactiveCanvas, this.state);\n }\n }\n this.setState({\n cursorButton: \"up\",\n });\n this.savePointer(event.clientX, event.clientY, \"up\");\n window.removeEventListener(EVENT.POINTER_MOVE, onPointerMove);\n window.removeEventListener(EVENT.POINTER_UP, teardown);\n window.removeEventListener(EVENT.BLUR, teardown);\n onPointerMove.flush();\n }),\n );\n window.addEventListener(EVENT.BLUR, teardown);\n window.addEventListener(EVENT.POINTER_MOVE, onPointerMove, {\n passive: true,\n });\n window.addEventListener(EVENT.POINTER_UP, teardown);\n return true;\n };\n\n private updateGestureOnPointerDown(\n event: React.PointerEvent,\n ): void {\n gesture.pointers.set(event.pointerId, {\n x: event.clientX,\n y: event.clientY,\n });\n\n if (gesture.pointers.size === 2) {\n gesture.lastCenter = getCenter(gesture.pointers);\n gesture.initialScale = this.state.zoom.value;\n gesture.initialDistance = getDistance(\n Array.from(gesture.pointers.values()),\n );\n }\n }\n\n private initialPointerDownState(\n event: React.PointerEvent,\n ): PointerDownState {\n const origin = viewportCoordsToSceneCoords(event, this.state);\n const selectedElements = this.scene.getSelectedElements(this.state);\n const [minX, minY, maxX, maxY] = getCommonBounds(selectedElements);\n\n return {\n origin,\n withCmdOrCtrl: event[KEYS.CTRL_OR_CMD],\n originInGrid: tupleToCoors(\n getGridPoint(\n origin.x,\n origin.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n ),\n ),\n scrollbars: isOverScrollBars(\n currentScrollBars,\n event.clientX - this.state.offsetLeft,\n event.clientY - this.state.offsetTop,\n ),\n // we need to duplicate because we'll be updating this state\n lastCoords: { ...origin },\n originalElements: this.scene\n .getNonDeletedElements()\n .reduce((acc, element) => {\n acc.set(element.id, deepCopyElement(element));\n return acc;\n }, new Map() as PointerDownState[\"originalElements\"]),\n resize: {\n handleType: false,\n isResizing: false,\n offset: { x: 0, y: 0 },\n arrowDirection: \"origin\",\n center: { x: (maxX + minX) / 2, y: (maxY + minY) / 2 },\n },\n hit: {\n element: null,\n allHitElements: [],\n wasAddedToSelection: false,\n hasBeenDuplicated: false,\n hasHitCommonBoundingBoxOfSelectedElements:\n this.isHittingCommonBoundingBoxOfSelectedElements(\n origin,\n selectedElements,\n ),\n },\n drag: {\n hasOccurred: false,\n offset: null,\n },\n eventListeners: {\n onMove: null,\n onUp: null,\n onKeyUp: null,\n onKeyDown: null,\n },\n boxSelection: {\n hasOccurred: false,\n },\n };\n }\n\n // Returns whether the event is a dragging a scrollbar\n private handleDraggingScrollBar(\n event: React.PointerEvent,\n pointerDownState: PointerDownState,\n ): boolean {\n if (\n !(pointerDownState.scrollbars.isOverEither && !this.state.multiElement)\n ) {\n return false;\n }\n isDraggingScrollBar = true;\n pointerDownState.lastCoords.x = event.clientX;\n pointerDownState.lastCoords.y = event.clientY;\n const onPointerMove = withBatchedUpdatesThrottled((event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n this.handlePointerMoveOverScrollbars(event, pointerDownState);\n });\n const onPointerUp = withBatchedUpdates(() => {\n lastPointerUp = null;\n isDraggingScrollBar = false;\n setCursorForShape(this.interactiveCanvas, this.state);\n this.setState({\n cursorButton: \"up\",\n });\n this.savePointer(event.clientX, event.clientY, \"up\");\n window.removeEventListener(EVENT.POINTER_MOVE, onPointerMove);\n window.removeEventListener(EVENT.POINTER_UP, onPointerUp);\n onPointerMove.flush();\n });\n\n lastPointerUp = onPointerUp;\n\n window.addEventListener(EVENT.POINTER_MOVE, onPointerMove);\n window.addEventListener(EVENT.POINTER_UP, onPointerUp);\n return true;\n }\n\n private clearSelectionIfNotUsingSelection = (): void => {\n if (this.state.activeTool.type !== \"selection\") {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n selectedGroupIds: {},\n editingGroupId: null,\n activeEmbeddable: null,\n });\n }\n };\n\n /**\n * @returns whether the pointer event has been completely handled\n */\n private handleSelectionOnPointerDown = (\n event: React.PointerEvent,\n pointerDownState: PointerDownState,\n ): boolean => {\n if (this.state.activeTool.type === \"selection\") {\n const elements = this.scene.getNonDeletedElements();\n const elementsMap = this.scene.getNonDeletedElementsMap();\n const selectedElements = this.scene.getSelectedElements(this.state);\n\n if (selectedElements.length === 1 && !this.state.editingLinearElement) {\n const elementWithTransformHandleType =\n getElementWithTransformHandleType(\n elements,\n this.state,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n this.state.zoom,\n event.pointerType,\n this.scene.getNonDeletedElementsMap(),\n );\n if (elementWithTransformHandleType != null) {\n this.setState({\n resizingElement: elementWithTransformHandleType.element,\n });\n pointerDownState.resize.handleType =\n elementWithTransformHandleType.transformHandleType;\n }\n } else if (selectedElements.length > 1) {\n pointerDownState.resize.handleType = getTransformHandleTypeFromCoords(\n getCommonBounds(selectedElements),\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n this.state.zoom,\n event.pointerType,\n );\n }\n if (pointerDownState.resize.handleType) {\n pointerDownState.resize.isResizing = true;\n pointerDownState.resize.offset = tupleToCoors(\n getResizeOffsetXY(\n pointerDownState.resize.handleType,\n selectedElements,\n elementsMap,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n ),\n );\n if (\n selectedElements.length === 1 &&\n isLinearElement(selectedElements[0]) &&\n selectedElements[0].points.length === 2\n ) {\n pointerDownState.resize.arrowDirection = getResizeArrowDirection(\n pointerDownState.resize.handleType,\n selectedElements[0],\n );\n }\n } else {\n if (this.state.selectedLinearElement) {\n const linearElementEditor =\n this.state.editingLinearElement || this.state.selectedLinearElement;\n const ret = LinearElementEditor.handlePointerDown(\n event,\n this.state,\n this.history,\n pointerDownState.origin,\n linearElementEditor,\n this.scene.getNonDeletedElements(),\n elementsMap,\n );\n if (ret.hitElement) {\n pointerDownState.hit.element = ret.hitElement;\n }\n if (ret.linearElementEditor) {\n this.setState({ selectedLinearElement: ret.linearElementEditor });\n\n if (this.state.editingLinearElement) {\n this.setState({ editingLinearElement: ret.linearElementEditor });\n }\n }\n if (ret.didAddPoint) {\n return true;\n }\n }\n // hitElement may already be set above, so check first\n pointerDownState.hit.element =\n pointerDownState.hit.element ??\n this.getElementAtPosition(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n );\n\n if (pointerDownState.hit.element) {\n // Early return if pointer is hitting link icon\n const hitLinkElement = this.getElementLinkAtPosition(\n {\n x: pointerDownState.origin.x,\n y: pointerDownState.origin.y,\n },\n pointerDownState.hit.element,\n );\n if (hitLinkElement) {\n return false;\n }\n }\n\n // For overlapped elements one position may hit\n // multiple elements\n pointerDownState.hit.allHitElements = this.getElementsAtPosition(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n );\n\n const hitElement = pointerDownState.hit.element;\n const someHitElementIsSelected =\n pointerDownState.hit.allHitElements.some((element) =>\n this.isASelectedElement(element),\n );\n if (\n (hitElement === null || !someHitElementIsSelected) &&\n !event.shiftKey &&\n !pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements\n ) {\n this.clearSelection(hitElement);\n }\n\n if (this.state.editingLinearElement) {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds(\n {\n [this.state.editingLinearElement.elementId]: true,\n },\n this.state,\n ),\n });\n // If we click on something\n } else if (hitElement != null) {\n // on CMD/CTRL, drill down to hit element regardless of groups etc.\n if (event[KEYS.CTRL_OR_CMD]) {\n if (!this.state.selectedElementIds[hitElement.id]) {\n pointerDownState.hit.wasAddedToSelection = true;\n }\n this.setState((prevState) => ({\n ...editGroupForSelectedElement(prevState, hitElement),\n previousSelectedElementIds: this.state.selectedElementIds,\n }));\n // mark as not completely handled so as to allow dragging etc.\n return false;\n }\n\n // deselect if item is selected\n // if shift is not clicked, this will always return true\n // otherwise, it will trigger selection based on current\n // state of the box\n if (!this.state.selectedElementIds[hitElement.id]) {\n // if we are currently editing a group, exiting editing mode and deselect the group.\n if (\n this.state.editingGroupId &&\n !isElementInGroup(hitElement, this.state.editingGroupId)\n ) {\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n selectedGroupIds: {},\n editingGroupId: null,\n activeEmbeddable: null,\n });\n }\n\n // Add hit element to selection. At this point if we're not holding\n // SHIFT the previously selected element(s) were deselected above\n // (make sure you use setState updater to use latest state)\n // With shift-selection, we want to make sure that frames and their containing\n // elements are not selected at the same time.\n if (\n !someHitElementIsSelected &&\n !pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements\n ) {\n this.setState((prevState) => {\n const nextSelectedElementIds: { [id: string]: true } = {\n ...prevState.selectedElementIds,\n [hitElement.id]: true,\n };\n\n const previouslySelectedElements: ExcalidrawElement[] = [];\n\n Object.keys(prevState.selectedElementIds).forEach((id) => {\n const element = this.scene.getElement(id);\n element && previouslySelectedElements.push(element);\n });\n\n // if hitElement is frame-like, deselect all of its elements\n // if they are selected\n if (isFrameLikeElement(hitElement)) {\n getFrameChildren(\n previouslySelectedElements,\n hitElement.id,\n ).forEach((element) => {\n delete nextSelectedElementIds[element.id];\n });\n } else if (hitElement.frameId) {\n // if hitElement is in a frame and its frame has been selected\n // disable selection for the given element\n if (nextSelectedElementIds[hitElement.frameId]) {\n delete nextSelectedElementIds[hitElement.id];\n }\n } else {\n // hitElement is neither a frame nor an element in a frame\n // but since hitElement could be in a group with some frames\n // this means selecting hitElement will have the frames selected as well\n // because we want to keep the invariant:\n // - frames and their elements are not selected at the same time\n // we deselect elements in those frames that were previously selected\n\n const groupIds = hitElement.groupIds;\n const framesInGroups = new Set(\n groupIds\n .flatMap((gid) =>\n getElementsInGroup(\n this.scene.getNonDeletedElements(),\n gid,\n ),\n )\n .filter((element) => isFrameLikeElement(element))\n .map((frame) => frame.id),\n );\n\n if (framesInGroups.size > 0) {\n previouslySelectedElements.forEach((element) => {\n if (\n element.frameId &&\n framesInGroups.has(element.frameId)\n ) {\n // deselect element and groups containing the element\n delete nextSelectedElementIds[element.id];\n element.groupIds\n .flatMap((gid) =>\n getElementsInGroup(\n this.scene.getNonDeletedElements(),\n gid,\n ),\n )\n .forEach((element) => {\n delete nextSelectedElementIds[element.id];\n });\n }\n });\n }\n }\n\n return {\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: prevState.editingGroupId,\n selectedElementIds: nextSelectedElementIds,\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n showHyperlinkPopup:\n hitElement.link || isEmbeddableElement(hitElement)\n ? \"info\"\n : false,\n };\n });\n pointerDownState.hit.wasAddedToSelection = true;\n }\n }\n }\n\n this.setState({\n previousSelectedElementIds: this.state.selectedElementIds,\n });\n }\n }\n return false;\n };\n\n private isASelectedElement(hitElement: ExcalidrawElement | null): boolean {\n return hitElement != null && this.state.selectedElementIds[hitElement.id];\n }\n\n private isHittingCommonBoundingBoxOfSelectedElements(\n point: Readonly<{ x: number; y: number }>,\n selectedElements: readonly ExcalidrawElement[],\n ): boolean {\n if (selectedElements.length < 2) {\n return false;\n }\n\n // How many pixels off the shape boundary we still consider a hit\n const threshold = 10 / this.state.zoom.value;\n const [x1, y1, x2, y2] = getCommonBounds(selectedElements);\n return (\n point.x > x1 - threshold &&\n point.x < x2 + threshold &&\n point.y > y1 - threshold &&\n point.y < y2 + threshold\n );\n }\n\n private handleTextOnPointerDown = (\n event: React.PointerEvent,\n pointerDownState: PointerDownState,\n ): void => {\n // if we're currently still editing text, clicking outside\n // should only finalize it, not create another (irrespective\n // of state.activeTool.locked)\n if (isTextElement(this.state.editingElement)) {\n return;\n }\n let sceneX = pointerDownState.origin.x;\n let sceneY = pointerDownState.origin.y;\n\n const element = this.getElementAtPosition(sceneX, sceneY, {\n includeBoundTextElement: true,\n });\n\n // FIXME\n let container = getTextBindableContainerAtPosition(\n this.scene.getNonDeletedElements(),\n this.state,\n sceneX,\n sceneY,\n this.scene.getNonDeletedElementsMap(),\n );\n\n if (hasBoundTextElement(element)) {\n container = element as ExcalidrawTextContainer;\n sceneX = element.x + element.width / 2;\n sceneY = element.y + element.height / 2;\n }\n this.startTextEditing({\n sceneX,\n sceneY,\n insertAtParentCenter: !event.altKey,\n container,\n });\n\n resetCursor(this.interactiveCanvas);\n if (!this.state.activeTool.locked) {\n this.setState({\n activeTool: updateActiveTool(this.state, { type: \"selection\" }),\n });\n }\n };\n\n private handleFreeDrawElementOnPointerDown = (\n event: React.PointerEvent,\n elementType: ExcalidrawFreeDrawElement[\"type\"],\n pointerDownState: PointerDownState,\n ) => {\n // Begin a mark capture. This does not have to update state yet.\n const [gridX, gridY] = getGridPoint(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n null,\n );\n\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({\n x: gridX,\n y: gridY,\n });\n\n const element = newFreeDrawElement({\n type: elementType,\n x: gridX,\n y: gridY,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n opacity: this.state.currentItemOpacity,\n roundness: null,\n simulatePressure: event.pressure === 0.5,\n locked: false,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n });\n\n this.setState((prevState) => {\n const nextSelectedElementIds = {\n ...prevState.selectedElementIds,\n };\n delete nextSelectedElementIds[element.id];\n return {\n selectedElementIds: makeNextSelectedElementIds(\n nextSelectedElementIds,\n prevState,\n ),\n };\n });\n\n const pressures = element.simulatePressure\n ? element.pressures\n : [...element.pressures, event.pressure];\n\n mutateElement(element, {\n points: [[0, 0]],\n pressures,\n });\n\n const boundElement = getHoveredElementForBinding(\n pointerDownState.origin,\n this.scene.getNonDeletedElements(),\n this.scene.getNonDeletedElementsMap(),\n );\n this.scene.addNewElement(element);\n this.setState({\n draggingElement: element,\n editingElement: element,\n startBoundElement: boundElement,\n suggestedBindings: [],\n });\n };\n\n public insertIframeElement = ({\n sceneX,\n sceneY,\n width,\n height,\n }: {\n sceneX: number;\n sceneY: number;\n width: number;\n height: number;\n }) => {\n const [gridX, gridY] = getGridPoint(\n sceneX,\n sceneY,\n this.lastPointerDownEvent?.[KEYS.CTRL_OR_CMD]\n ? null\n : this.state.gridSize,\n );\n\n const element = newIframeElement({\n type: \"iframe\",\n x: gridX,\n y: gridY,\n strokeColor: \"transparent\",\n backgroundColor: \"transparent\",\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n roundness: this.getCurrentItemRoundness(\"iframe\"),\n opacity: this.state.currentItemOpacity,\n locked: false,\n width,\n height,\n });\n\n this.scene.replaceAllElements([\n ...this.scene.getElementsIncludingDeleted(),\n element,\n ]);\n\n return element;\n };\n\n //create rectangle element with youtube top left on nearest grid point width / hight 640/360\n public insertEmbeddableElement = ({\n sceneX,\n sceneY,\n link,\n }: {\n sceneX: number;\n sceneY: number;\n link: string;\n }) => {\n const [gridX, gridY] = getGridPoint(\n sceneX,\n sceneY,\n this.lastPointerDownEvent?.[KEYS.CTRL_OR_CMD]\n ? null\n : this.state.gridSize,\n );\n\n const embedLink = getEmbedLink(link);\n\n if (!embedLink) {\n return;\n }\n\n if (embedLink.error instanceof URIError) {\n this.setToast({\n message: t(\"toast.unrecognizedLinkFormat\"),\n closable: true,\n });\n }\n\n const element = newEmbeddableElement({\n type: \"embeddable\",\n x: gridX,\n y: gridY,\n strokeColor: \"transparent\",\n backgroundColor: \"transparent\",\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n roundness: this.getCurrentItemRoundness(\"embeddable\"),\n opacity: this.state.currentItemOpacity,\n locked: false,\n width: embedLink.intrinsicSize.w,\n height: embedLink.intrinsicSize.h,\n link,\n });\n\n this.scene.replaceAllElements([\n ...this.scene.getElementsIncludingDeleted(),\n element,\n ]);\n\n return element;\n };\n\n private createImageElement = ({\n sceneX,\n sceneY,\n addToFrameUnderCursor = true,\n }: {\n sceneX: number;\n sceneY: number;\n addToFrameUnderCursor?: boolean;\n }) => {\n const [gridX, gridY] = getGridPoint(\n sceneX,\n sceneY,\n this.lastPointerDownEvent?.[KEYS.CTRL_OR_CMD]\n ? null\n : this.state.gridSize,\n );\n\n const topLayerFrame = addToFrameUnderCursor\n ? this.getTopLayerFrameAtSceneCoords({\n x: gridX,\n y: gridY,\n })\n : null;\n\n const element = newImageElement({\n type: \"image\",\n x: gridX,\n y: gridY,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n roundness: null,\n opacity: this.state.currentItemOpacity,\n locked: false,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n });\n\n return element;\n };\n\n private handleLinearElementOnPointerDown = (\n event: React.PointerEvent,\n elementType: ExcalidrawLinearElement[\"type\"],\n pointerDownState: PointerDownState,\n ): void => {\n if (this.state.multiElement) {\n const { multiElement } = this.state;\n\n // finalize if completing a loop\n if (\n multiElement.type === \"line\" &&\n isPathALoop(multiElement.points, this.state.zoom.value)\n ) {\n mutateElement(multiElement, {\n lastCommittedPoint:\n multiElement.points[multiElement.points.length - 1],\n });\n this.actionManager.executeAction(actionFinalize);\n return;\n }\n\n const { x: rx, y: ry, lastCommittedPoint } = multiElement;\n\n // clicking inside commit zone → finalize arrow\n if (\n multiElement.points.length > 1 &&\n lastCommittedPoint &&\n distance2d(\n pointerDownState.origin.x - rx,\n pointerDownState.origin.y - ry,\n lastCommittedPoint[0],\n lastCommittedPoint[1],\n ) < LINE_CONFIRM_THRESHOLD\n ) {\n this.actionManager.executeAction(actionFinalize);\n return;\n }\n\n this.setState((prevState) => ({\n selectedElementIds: makeNextSelectedElementIds(\n {\n ...prevState.selectedElementIds,\n [multiElement.id]: true,\n },\n prevState,\n ),\n }));\n // clicking outside commit zone → update reference for last committed\n // point\n mutateElement(multiElement, {\n lastCommittedPoint: multiElement.points[multiElement.points.length - 1],\n });\n setCursor(this.interactiveCanvas, CURSOR_TYPE.POINTER);\n } else {\n const [gridX, gridY] = getGridPoint(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({\n x: gridX,\n y: gridY,\n });\n\n /* If arrow is pre-arrowheads, it will have undefined for both start and end arrowheads.\n If so, we want it to be null for start and \"arrow\" for end. If the linear item is not\n an arrow, we want it to be null for both. Otherwise, we want it to use the\n values from appState. */\n\n const { currentItemStartArrowhead, currentItemEndArrowhead } = this.state;\n const [startArrowhead, endArrowhead] =\n elementType === \"arrow\"\n ? [currentItemStartArrowhead, currentItemEndArrowhead]\n : [null, null];\n\n const element = newLinearElement({\n type: elementType,\n x: gridX,\n y: gridY,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n opacity: this.state.currentItemOpacity,\n roundness:\n this.state.currentItemRoundness === \"round\"\n ? { type: ROUNDNESS.PROPORTIONAL_RADIUS }\n : null,\n startArrowhead,\n endArrowhead,\n locked: false,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n });\n this.setState((prevState) => {\n const nextSelectedElementIds = {\n ...prevState.selectedElementIds,\n };\n delete nextSelectedElementIds[element.id];\n return {\n selectedElementIds: makeNextSelectedElementIds(\n nextSelectedElementIds,\n prevState,\n ),\n };\n });\n mutateElement(element, {\n points: [...element.points, [0, 0]],\n });\n const boundElement = getHoveredElementForBinding(\n pointerDownState.origin,\n this.scene.getNonDeletedElements(),\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.scene.addNewElement(element);\n this.setState({\n draggingElement: element,\n editingElement: element,\n startBoundElement: boundElement,\n suggestedBindings: [],\n });\n }\n };\n\n private getCurrentItemRoundness(\n elementType:\n | \"selection\"\n | \"rectangle\"\n | \"diamond\"\n | \"ellipse\"\n | \"iframe\"\n | \"embeddable\",\n ) {\n return this.state.currentItemRoundness === \"round\"\n ? {\n type: isUsingAdaptiveRadius(elementType)\n ? ROUNDNESS.ADAPTIVE_RADIUS\n : ROUNDNESS.PROPORTIONAL_RADIUS,\n }\n : null;\n }\n\n private createGenericElementOnPointerDown = (\n elementType: ExcalidrawGenericElement[\"type\"] | \"embeddable\",\n pointerDownState: PointerDownState,\n ): void => {\n const [gridX, gridY] = getGridPoint(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n this.lastPointerDownEvent?.[KEYS.CTRL_OR_CMD]\n ? null\n : this.state.gridSize,\n );\n\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords({\n x: gridX,\n y: gridY,\n });\n\n const baseElementAttributes = {\n x: gridX,\n y: gridY,\n strokeColor: this.state.currentItemStrokeColor,\n backgroundColor: this.state.currentItemBackgroundColor,\n fillStyle: this.state.currentItemFillStyle,\n strokeWidth: this.state.currentItemStrokeWidth,\n strokeStyle: this.state.currentItemStrokeStyle,\n roughness: this.state.currentItemRoughness,\n opacity: this.state.currentItemOpacity,\n roundness: this.getCurrentItemRoundness(elementType),\n locked: false,\n frameId: topLayerFrame ? topLayerFrame.id : null,\n } as const;\n\n let element;\n if (elementType === \"embeddable\") {\n element = newEmbeddableElement({\n type: \"embeddable\",\n ...baseElementAttributes,\n });\n } else {\n element = newElement({\n type: elementType,\n ...baseElementAttributes,\n });\n }\n\n if (element.type === \"selection\") {\n this.setState({\n selectionElement: element,\n draggingElement: element,\n });\n } else {\n this.scene.addNewElement(element);\n this.setState({\n multiElement: null,\n draggingElement: element,\n editingElement: element,\n });\n }\n };\n\n private createFrameElementOnPointerDown = (\n pointerDownState: PointerDownState,\n type: Extract,\n ): void => {\n const [gridX, gridY] = getGridPoint(\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n this.lastPointerDownEvent?.[KEYS.CTRL_OR_CMD]\n ? null\n : this.state.gridSize,\n );\n\n const constructorOpts = {\n x: gridX,\n y: gridY,\n opacity: this.state.currentItemOpacity,\n locked: false,\n ...FRAME_STYLE,\n } as const;\n\n const frame =\n type === TOOL_TYPE.magicframe\n ? newMagicFrameElement(constructorOpts)\n : newFrameElement(constructorOpts);\n\n this.scene.replaceAllElements([\n ...this.scene.getElementsIncludingDeleted(),\n frame,\n ]);\n\n this.setState({\n multiElement: null,\n draggingElement: frame,\n editingElement: frame,\n });\n };\n\n private maybeCacheReferenceSnapPoints(\n event: KeyboardModifiersObject,\n selectedElements: ExcalidrawElement[],\n recomputeAnyways: boolean = false,\n ) {\n if (\n isSnappingEnabled({\n event,\n appState: this.state,\n selectedElements,\n }) &&\n (recomputeAnyways || !SnapCache.getReferenceSnapPoints())\n ) {\n SnapCache.setReferenceSnapPoints(\n getReferenceSnapPoints(\n this.scene.getNonDeletedElements(),\n selectedElements,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n ),\n );\n }\n }\n\n private maybeCacheVisibleGaps(\n event: KeyboardModifiersObject,\n selectedElements: ExcalidrawElement[],\n recomputeAnyways: boolean = false,\n ) {\n if (\n isSnappingEnabled({\n event,\n appState: this.state,\n selectedElements,\n }) &&\n (recomputeAnyways || !SnapCache.getVisibleGaps())\n ) {\n SnapCache.setVisibleGaps(\n getVisibleGaps(\n this.scene.getNonDeletedElements(),\n selectedElements,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n ),\n );\n }\n }\n\n private onKeyDownFromPointerDownHandler(\n pointerDownState: PointerDownState,\n ): (event: KeyboardEvent) => void {\n return withBatchedUpdates((event: KeyboardEvent) => {\n if (this.maybeHandleResize(pointerDownState, event)) {\n return;\n }\n this.maybeDragNewGenericElement(pointerDownState, event);\n });\n }\n\n private onKeyUpFromPointerDownHandler(\n pointerDownState: PointerDownState,\n ): (event: KeyboardEvent) => void {\n return withBatchedUpdates((event: KeyboardEvent) => {\n // Prevents focus from escaping excalidraw tab\n event.key === KEYS.ALT && event.preventDefault();\n if (this.maybeHandleResize(pointerDownState, event)) {\n return;\n }\n this.maybeDragNewGenericElement(pointerDownState, event);\n });\n }\n\n private onPointerMoveFromPointerDownHandler(\n pointerDownState: PointerDownState,\n ) {\n return withBatchedUpdatesThrottled((event: PointerEvent) => {\n // We need to initialize dragOffsetXY only after we've updated\n // `state.selectedElementIds` on pointerDown. Doing it here in pointerMove\n // event handler should hopefully ensure we're already working with\n // the updated state.\n if (pointerDownState.drag.offset === null) {\n pointerDownState.drag.offset = tupleToCoors(\n getDragOffsetXY(\n this.scene.getSelectedElements(this.state),\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n ),\n );\n }\n const target = event.target;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n if (this.handlePointerMoveOverScrollbars(event, pointerDownState)) {\n return;\n }\n\n const pointerCoords = viewportCoordsToSceneCoords(event, this.state);\n\n if (isEraserActive(this.state)) {\n this.handleEraser(event, pointerDownState, pointerCoords);\n return;\n }\n\n if (this.state.activeTool.type === \"laser\") {\n this.laserTrails.addPointToPath(pointerCoords.x, pointerCoords.y);\n }\n\n const [gridX, gridY] = getGridPoint(\n pointerCoords.x,\n pointerCoords.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n // for arrows/lines, don't start dragging until a given threshold\n // to ensure we don't create a 2-point arrow by mistake when\n // user clicks mouse in a way that it moves a tiny bit (thus\n // triggering pointermove)\n if (\n !pointerDownState.drag.hasOccurred &&\n (this.state.activeTool.type === \"arrow\" ||\n this.state.activeTool.type === \"line\")\n ) {\n if (\n distance2d(\n pointerCoords.x,\n pointerCoords.y,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n ) < DRAGGING_THRESHOLD\n ) {\n return;\n }\n }\n if (pointerDownState.resize.isResizing) {\n pointerDownState.lastCoords.x = pointerCoords.x;\n pointerDownState.lastCoords.y = pointerCoords.y;\n if (this.maybeHandleResize(pointerDownState, event)) {\n return true;\n }\n }\n const elementsMap = this.scene.getNonDeletedElementsMap();\n\n if (this.state.selectedLinearElement) {\n const linearElementEditor =\n this.state.editingLinearElement || this.state.selectedLinearElement;\n\n if (\n LinearElementEditor.shouldAddMidpoint(\n this.state.selectedLinearElement,\n pointerCoords,\n this.state,\n elementsMap,\n )\n ) {\n const ret = LinearElementEditor.addMidpoint(\n this.state.selectedLinearElement,\n pointerCoords,\n this.state,\n !event[KEYS.CTRL_OR_CMD],\n elementsMap,\n );\n if (!ret) {\n return;\n }\n\n // Since we are reading from previous state which is not possible with\n // automatic batching in React 18 hence using flush sync to synchronously\n // update the state. Check https://github.com/excalidraw/excalidraw/pull/5508 for more details.\n\n flushSync(() => {\n if (this.state.selectedLinearElement) {\n this.setState({\n selectedLinearElement: {\n ...this.state.selectedLinearElement,\n pointerDownState: ret.pointerDownState,\n selectedPointsIndices: ret.selectedPointsIndices,\n },\n });\n }\n if (this.state.editingLinearElement) {\n this.setState({\n editingLinearElement: {\n ...this.state.editingLinearElement,\n pointerDownState: ret.pointerDownState,\n selectedPointsIndices: ret.selectedPointsIndices,\n },\n });\n }\n });\n\n return;\n } else if (\n linearElementEditor.pointerDownState.segmentMidpoint.value !== null &&\n !linearElementEditor.pointerDownState.segmentMidpoint.added\n ) {\n return;\n }\n\n const didDrag = LinearElementEditor.handlePointDragging(\n event,\n this.state,\n pointerCoords.x,\n pointerCoords.y,\n (element, pointsSceneCoords) => {\n this.maybeSuggestBindingsForLinearElementAtCoords(\n element,\n pointsSceneCoords,\n );\n },\n linearElementEditor,\n this.scene.getNonDeletedElementsMap(),\n );\n if (didDrag) {\n pointerDownState.lastCoords.x = pointerCoords.x;\n pointerDownState.lastCoords.y = pointerCoords.y;\n pointerDownState.drag.hasOccurred = true;\n if (\n this.state.editingLinearElement &&\n !this.state.editingLinearElement.isDragging\n ) {\n this.setState({\n editingLinearElement: {\n ...this.state.editingLinearElement,\n isDragging: true,\n },\n });\n }\n if (!this.state.selectedLinearElement.isDragging) {\n this.setState({\n selectedLinearElement: {\n ...this.state.selectedLinearElement,\n isDragging: true,\n },\n });\n }\n return;\n }\n }\n\n const hasHitASelectedElement = pointerDownState.hit.allHitElements.some(\n (element) => this.isASelectedElement(element),\n );\n\n const isSelectingPointsInLineEditor =\n this.state.editingLinearElement &&\n event.shiftKey &&\n this.state.editingLinearElement.elementId ===\n pointerDownState.hit.element?.id;\n if (\n (hasHitASelectedElement ||\n pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements) &&\n !isSelectingPointsInLineEditor\n ) {\n const selectedElements = this.scene.getSelectedElements(this.state);\n\n if (selectedElements.every((element) => element.locked)) {\n return;\n }\n\n const selectedElementsHasAFrame = selectedElements.find((e) =>\n isFrameLikeElement(e),\n );\n const topLayerFrame = this.getTopLayerFrameAtSceneCoords(pointerCoords);\n this.setState({\n frameToHighlight:\n topLayerFrame && !selectedElementsHasAFrame ? topLayerFrame : null,\n });\n\n // Marking that click was used for dragging to check\n // if elements should be deselected on pointerup\n pointerDownState.drag.hasOccurred = true;\n this.setState({\n selectedElementsAreBeingDragged: true,\n });\n // prevent dragging even if we're no longer holding cmd/ctrl otherwise\n // it would have weird results (stuff jumping all over the screen)\n // Checking for editingElement to avoid jump while editing on mobile #6503\n if (\n selectedElements.length > 0 &&\n !pointerDownState.withCmdOrCtrl &&\n !this.state.editingElement &&\n this.state.activeEmbeddable?.state !== \"active\"\n ) {\n const dragOffset = {\n x: pointerCoords.x - pointerDownState.origin.x,\n y: pointerCoords.y - pointerDownState.origin.y,\n };\n\n const originalElements = [\n ...pointerDownState.originalElements.values(),\n ];\n\n // We only drag in one direction if shift is pressed\n const lockDirection = event.shiftKey;\n\n if (lockDirection) {\n const distanceX = Math.abs(dragOffset.x);\n const distanceY = Math.abs(dragOffset.y);\n\n const lockX = lockDirection && distanceX < distanceY;\n const lockY = lockDirection && distanceX > distanceY;\n\n if (lockX) {\n dragOffset.x = 0;\n }\n\n if (lockY) {\n dragOffset.y = 0;\n }\n }\n\n // Snap cache *must* be synchronously popuplated before initial drag,\n // otherwise the first drag even will not snap, causing a jump before\n // it snaps to its position if previously snapped already.\n this.maybeCacheVisibleGaps(event, selectedElements);\n this.maybeCacheReferenceSnapPoints(event, selectedElements);\n\n const { snapOffset, snapLines } = snapDraggedElements(\n originalElements,\n dragOffset,\n this.state,\n event,\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.setState({ snapLines });\n\n // when we're editing the name of a frame, we want the user to be\n // able to select and interact with the text input\n !this.state.editingFrame &&\n dragSelectedElements(\n pointerDownState,\n selectedElements,\n dragOffset,\n this.state,\n this.scene,\n snapOffset,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n this.maybeSuggestBindingForAll(selectedElements);\n\n // We duplicate the selected element if alt is pressed on pointer move\n if (event.altKey && !pointerDownState.hit.hasBeenDuplicated) {\n // Move the currently selected elements to the top of the z index stack, and\n // put the duplicates where the selected elements used to be.\n // (the origin point where the dragging started)\n\n pointerDownState.hit.hasBeenDuplicated = true;\n\n const nextElements = [];\n const elementsToAppend = [];\n const groupIdMap = new Map();\n const oldIdToDuplicatedId = new Map();\n const hitElement = pointerDownState.hit.element;\n const selectedElementIds = new Set(\n this.scene\n .getSelectedElements({\n selectedElementIds: this.state.selectedElementIds,\n includeBoundTextElement: true,\n includeElementsInFrames: true,\n })\n .map((element) => element.id),\n );\n\n const elements = this.scene.getElementsIncludingDeleted();\n\n for (const element of elements) {\n if (\n selectedElementIds.has(element.id) ||\n // case: the state.selectedElementIds might not have been\n // updated yet by the time this mousemove event is fired\n (element.id === hitElement?.id &&\n pointerDownState.hit.wasAddedToSelection)\n ) {\n const duplicatedElement = duplicateElement(\n this.state.editingGroupId,\n groupIdMap,\n element,\n );\n const origElement = pointerDownState.originalElements.get(\n element.id,\n )!;\n mutateElement(duplicatedElement, {\n x: origElement.x,\n y: origElement.y,\n });\n\n // put duplicated element to pointerDownState.originalElements\n // so that we can snap to the duplicated element without releasing\n pointerDownState.originalElements.set(\n duplicatedElement.id,\n duplicatedElement,\n );\n\n nextElements.push(duplicatedElement);\n elementsToAppend.push(element);\n oldIdToDuplicatedId.set(element.id, duplicatedElement.id);\n } else {\n nextElements.push(element);\n }\n }\n const nextSceneElements = [...nextElements, ...elementsToAppend];\n bindTextToShapeAfterDuplication(\n nextElements,\n elementsToAppend,\n oldIdToDuplicatedId,\n );\n fixBindingsAfterDuplication(\n nextSceneElements,\n elementsToAppend,\n oldIdToDuplicatedId,\n \"duplicatesServeAsOld\",\n );\n bindElementsToFramesAfterDuplication(\n nextSceneElements,\n elementsToAppend,\n oldIdToDuplicatedId,\n );\n this.scene.replaceAllElements(nextSceneElements);\n this.maybeCacheVisibleGaps(event, selectedElements, true);\n this.maybeCacheReferenceSnapPoints(event, selectedElements, true);\n }\n return;\n }\n }\n\n // It is very important to read this.state within each move event,\n // otherwise we would read a stale one!\n const draggingElement = this.state.draggingElement;\n if (!draggingElement) {\n return;\n }\n\n if (draggingElement.type === \"freedraw\") {\n const points = draggingElement.points;\n const dx = pointerCoords.x - draggingElement.x;\n const dy = pointerCoords.y - draggingElement.y;\n\n const lastPoint = points.length > 0 && points[points.length - 1];\n const discardPoint =\n lastPoint && lastPoint[0] === dx && lastPoint[1] === dy;\n\n if (!discardPoint) {\n const pressures = draggingElement.simulatePressure\n ? draggingElement.pressures\n : [...draggingElement.pressures, event.pressure];\n\n mutateElement(draggingElement, {\n points: [...points, [dx, dy]],\n pressures,\n });\n }\n } else if (isLinearElement(draggingElement)) {\n pointerDownState.drag.hasOccurred = true;\n this.setState({\n selectedElementsAreBeingDragged: true,\n });\n const points = draggingElement.points;\n let dx = gridX - draggingElement.x;\n let dy = gridY - draggingElement.y;\n\n if (shouldRotateWithDiscreteAngle(event) && points.length === 2) {\n ({ width: dx, height: dy } = getLockedLinearCursorAlignSize(\n draggingElement.x,\n draggingElement.y,\n pointerCoords.x,\n pointerCoords.y,\n ));\n }\n\n if (points.length === 1) {\n mutateElement(draggingElement, {\n points: [...points, [dx, dy]],\n });\n } else if (points.length === 2) {\n mutateElement(draggingElement, {\n points: [...points.slice(0, -1), [dx, dy]],\n });\n }\n\n if (isBindingElement(draggingElement, false)) {\n // When creating a linear element by dragging\n this.maybeSuggestBindingsForLinearElementAtCoords(\n draggingElement,\n [pointerCoords],\n this.state.startBoundElement,\n );\n }\n } else {\n pointerDownState.lastCoords.x = pointerCoords.x;\n pointerDownState.lastCoords.y = pointerCoords.y;\n this.maybeDragNewGenericElement(pointerDownState, event);\n }\n\n if (this.state.activeTool.type === \"selection\") {\n pointerDownState.boxSelection.hasOccurred = true;\n\n const elements = this.scene.getNonDeletedElements();\n\n // box-select line editor points\n if (this.state.editingLinearElement) {\n LinearElementEditor.handleBoxSelection(\n event,\n this.state,\n this.setState.bind(this),\n this.scene.getNonDeletedElementsMap(),\n );\n // regular box-select\n } else {\n let shouldReuseSelection = true;\n\n if (!event.shiftKey && isSomeElementSelected(elements, this.state)) {\n if (\n pointerDownState.withCmdOrCtrl &&\n pointerDownState.hit.element\n ) {\n this.setState((prevState) =>\n selectGroupsForSelectedElements(\n {\n ...prevState,\n selectedElementIds: {\n [pointerDownState.hit.element!.id]: true,\n },\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n );\n } else {\n shouldReuseSelection = false;\n }\n }\n const elementsWithinSelection = getElementsWithinSelection(\n elements,\n draggingElement,\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.setState((prevState) => {\n const nextSelectedElementIds = {\n ...(shouldReuseSelection && prevState.selectedElementIds),\n ...elementsWithinSelection.reduce(\n (acc: Record, element) => {\n acc[element.id] = true;\n return acc;\n },\n {},\n ),\n };\n\n if (pointerDownState.hit.element) {\n // if using ctrl/cmd, select the hitElement only if we\n // haven't box-selected anything else\n if (!elementsWithinSelection.length) {\n nextSelectedElementIds[pointerDownState.hit.element.id] = true;\n } else {\n delete nextSelectedElementIds[pointerDownState.hit.element.id];\n }\n }\n\n prevState = !shouldReuseSelection\n ? { ...prevState, selectedGroupIds: {}, editingGroupId: null }\n : prevState;\n\n return {\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: prevState.editingGroupId,\n selectedElementIds: nextSelectedElementIds,\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n // select linear element only when we haven't box-selected anything else\n selectedLinearElement:\n elementsWithinSelection.length === 1 &&\n isLinearElement(elementsWithinSelection[0])\n ? new LinearElementEditor(elementsWithinSelection[0])\n : null,\n showHyperlinkPopup:\n elementsWithinSelection.length === 1 &&\n (elementsWithinSelection[0].link ||\n isEmbeddableElement(elementsWithinSelection[0]))\n ? \"info\"\n : false,\n };\n });\n }\n }\n });\n }\n\n // Returns whether the pointer move happened over either scrollbar\n private handlePointerMoveOverScrollbars(\n event: PointerEvent,\n pointerDownState: PointerDownState,\n ): boolean {\n if (pointerDownState.scrollbars.isOverHorizontal) {\n const x = event.clientX;\n const dx = x - pointerDownState.lastCoords.x;\n this.translateCanvas({\n scrollX: this.state.scrollX - dx / this.state.zoom.value,\n });\n pointerDownState.lastCoords.x = x;\n return true;\n }\n\n if (pointerDownState.scrollbars.isOverVertical) {\n const y = event.clientY;\n const dy = y - pointerDownState.lastCoords.y;\n this.translateCanvas({\n scrollY: this.state.scrollY - dy / this.state.zoom.value,\n });\n pointerDownState.lastCoords.y = y;\n return true;\n }\n return false;\n }\n\n private onPointerUpFromPointerDownHandler(\n pointerDownState: PointerDownState,\n ): (event: PointerEvent) => void {\n return withBatchedUpdates((childEvent: PointerEvent) => {\n this.removePointer(childEvent);\n if (pointerDownState.eventListeners.onMove) {\n pointerDownState.eventListeners.onMove.flush();\n }\n const {\n draggingElement,\n resizingElement,\n multiElement,\n activeTool,\n isResizing,\n isRotating,\n } = this.state;\n\n this.setState((prevState) => ({\n isResizing: false,\n isRotating: false,\n resizingElement: null,\n selectionElement: null,\n frameToHighlight: null,\n elementsToHighlight: null,\n cursorButton: \"up\",\n // text elements are reset on finalize, and resetting on pointerup\n // may cause issues with double taps\n editingElement:\n multiElement || isTextElement(this.state.editingElement)\n ? this.state.editingElement\n : null,\n snapLines: updateStable(prevState.snapLines, []),\n\n originSnapOffset: null,\n }));\n\n SnapCache.setReferenceSnapPoints(null);\n SnapCache.setVisibleGaps(null);\n\n this.savePointer(childEvent.clientX, childEvent.clientY, \"up\");\n\n this.setState({\n selectedElementsAreBeingDragged: false,\n });\n const elementsMap = this.scene.getNonDeletedElementsMap();\n // Handle end of dragging a point of a linear element, might close a loop\n // and sets binding element\n if (this.state.editingLinearElement) {\n if (\n !pointerDownState.boxSelection.hasOccurred &&\n pointerDownState.hit?.element?.id !==\n this.state.editingLinearElement.elementId\n ) {\n this.actionManager.executeAction(actionFinalize);\n } else {\n const editingLinearElement = LinearElementEditor.handlePointerUp(\n childEvent,\n this.state.editingLinearElement,\n this.state,\n this.scene.getNonDeletedElements(),\n elementsMap,\n );\n if (editingLinearElement !== this.state.editingLinearElement) {\n this.setState({\n editingLinearElement,\n suggestedBindings: [],\n });\n }\n }\n } else if (this.state.selectedLinearElement) {\n if (\n pointerDownState.hit?.element?.id !==\n this.state.selectedLinearElement.elementId\n ) {\n const selectedELements = this.scene.getSelectedElements(this.state);\n // set selectedLinearElement to null if there is more than one element selected since we don't want to show linear element handles\n if (selectedELements.length > 1) {\n this.setState({ selectedLinearElement: null });\n }\n } else {\n const linearElementEditor = LinearElementEditor.handlePointerUp(\n childEvent,\n this.state.selectedLinearElement,\n this.state,\n this.scene.getNonDeletedElements(),\n elementsMap,\n );\n\n const { startBindingElement, endBindingElement } =\n linearElementEditor;\n const element = this.scene.getElement(linearElementEditor.elementId);\n if (isBindingElement(element)) {\n bindOrUnbindLinearElement(\n element,\n startBindingElement,\n endBindingElement,\n elementsMap,\n );\n }\n\n if (linearElementEditor !== this.state.selectedLinearElement) {\n this.setState({\n selectedLinearElement: {\n ...linearElementEditor,\n selectedPointsIndices: null,\n },\n suggestedBindings: [],\n });\n }\n }\n }\n\n this.missingPointerEventCleanupEmitter.clear();\n\n window.removeEventListener(\n EVENT.POINTER_MOVE,\n pointerDownState.eventListeners.onMove!,\n );\n window.removeEventListener(\n EVENT.POINTER_UP,\n pointerDownState.eventListeners.onUp!,\n );\n window.removeEventListener(\n EVENT.KEYDOWN,\n pointerDownState.eventListeners.onKeyDown!,\n );\n window.removeEventListener(\n EVENT.KEYUP,\n pointerDownState.eventListeners.onKeyUp!,\n );\n\n if (this.state.pendingImageElementId) {\n this.setState({ pendingImageElementId: null });\n }\n\n this.props?.onPointerUp?.(activeTool, pointerDownState);\n this.onPointerUpEmitter.trigger(\n this.state.activeTool,\n pointerDownState,\n childEvent,\n );\n\n if (draggingElement?.type === \"freedraw\") {\n const pointerCoords = viewportCoordsToSceneCoords(\n childEvent,\n this.state,\n );\n\n const points = draggingElement.points;\n let dx = pointerCoords.x - draggingElement.x;\n let dy = pointerCoords.y - draggingElement.y;\n\n // Allows dots to avoid being flagged as infinitely small\n if (dx === points[0][0] && dy === points[0][1]) {\n dy += 0.0001;\n dx += 0.0001;\n }\n\n const pressures = draggingElement.simulatePressure\n ? []\n : [...draggingElement.pressures, childEvent.pressure];\n\n mutateElement(draggingElement, {\n points: [...points, [dx, dy]],\n pressures,\n lastCommittedPoint: [dx, dy],\n });\n\n this.actionManager.executeAction(actionFinalize);\n\n return;\n }\n if (isImageElement(draggingElement)) {\n const imageElement = draggingElement;\n try {\n this.initializeImageDimensions(imageElement);\n this.setState(\n {\n selectedElementIds: makeNextSelectedElementIds(\n { [imageElement.id]: true },\n this.state,\n ),\n },\n () => {\n this.actionManager.executeAction(actionFinalize);\n },\n );\n } catch (error: any) {\n console.error(error);\n this.scene.replaceAllElements(\n this.scene\n .getElementsIncludingDeleted()\n .filter((el) => el.id !== imageElement.id),\n );\n this.actionManager.executeAction(actionFinalize);\n }\n return;\n }\n\n if (isLinearElement(draggingElement)) {\n if (draggingElement!.points.length > 1) {\n this.history.resumeRecording();\n }\n const pointerCoords = viewportCoordsToSceneCoords(\n childEvent,\n this.state,\n );\n\n if (\n !pointerDownState.drag.hasOccurred &&\n draggingElement &&\n !multiElement\n ) {\n mutateElement(draggingElement, {\n points: [\n ...draggingElement.points,\n [\n pointerCoords.x - draggingElement.x,\n pointerCoords.y - draggingElement.y,\n ],\n ],\n });\n this.setState({\n multiElement: draggingElement,\n editingElement: this.state.draggingElement,\n });\n } else if (pointerDownState.drag.hasOccurred && !multiElement) {\n if (\n isBindingEnabled(this.state) &&\n isBindingElement(draggingElement, false)\n ) {\n maybeBindLinearElement(\n draggingElement,\n this.state,\n this.scene,\n pointerCoords,\n elementsMap,\n );\n }\n this.setState({ suggestedBindings: [], startBoundElement: null });\n if (!activeTool.locked) {\n resetCursor(this.interactiveCanvas);\n this.setState((prevState) => ({\n draggingElement: null,\n activeTool: updateActiveTool(this.state, {\n type: \"selection\",\n }),\n selectedElementIds: makeNextSelectedElementIds(\n {\n ...prevState.selectedElementIds,\n [draggingElement.id]: true,\n },\n prevState,\n ),\n selectedLinearElement: new LinearElementEditor(draggingElement),\n }));\n } else {\n this.setState((prevState) => ({\n draggingElement: null,\n }));\n }\n }\n return;\n }\n\n if (\n activeTool.type !== \"selection\" &&\n draggingElement &&\n isInvisiblySmallElement(draggingElement)\n ) {\n // remove invisible element which was added in onPointerDown\n this.scene.replaceAllElements(\n this.scene\n .getElementsIncludingDeleted()\n .filter((el) => el.id !== draggingElement.id),\n );\n this.setState({\n draggingElement: null,\n });\n return;\n }\n\n if (draggingElement) {\n if (pointerDownState.drag.hasOccurred) {\n const sceneCoords = viewportCoordsToSceneCoords(\n childEvent,\n this.state,\n );\n\n // when editing the points of a linear element, we check if the\n // linear element still is in the frame afterwards\n // if not, the linear element will be removed from its frame (if any)\n if (\n this.state.selectedLinearElement &&\n this.state.selectedLinearElement.isDragging\n ) {\n const linearElement = this.scene.getElement(\n this.state.selectedLinearElement.elementId,\n );\n\n if (linearElement?.frameId) {\n const frame = getContainingFrame(linearElement, elementsMap);\n\n if (frame && linearElement) {\n if (\n !elementOverlapsWithFrame(\n linearElement,\n frame,\n this.scene.getNonDeletedElementsMap(),\n )\n ) {\n // remove the linear element from all groups\n // before removing it from the frame as well\n mutateElement(linearElement, {\n groupIds: [],\n });\n\n removeElementsFromFrame(\n [linearElement],\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.scene.informMutation();\n }\n }\n }\n } else {\n // update the relationships between selected elements and frames\n const topLayerFrame =\n this.getTopLayerFrameAtSceneCoords(sceneCoords);\n\n const selectedElements = this.scene.getSelectedElements(this.state);\n let nextElements = this.scene.getElementsMapIncludingDeleted();\n\n const updateGroupIdsAfterEditingGroup = (\n elements: ExcalidrawElement[],\n ) => {\n if (elements.length > 0) {\n for (const element of elements) {\n const index = element.groupIds.indexOf(\n this.state.editingGroupId!,\n );\n\n mutateElement(\n element,\n {\n groupIds: element.groupIds.slice(0, index),\n },\n false,\n );\n }\n\n nextElements.forEach((element) => {\n if (\n element.groupIds.length &&\n getElementsInGroup(\n nextElements,\n element.groupIds[element.groupIds.length - 1],\n ).length < 2\n ) {\n mutateElement(\n element,\n {\n groupIds: [],\n },\n false,\n );\n }\n });\n\n this.setState({\n editingGroupId: null,\n });\n }\n };\n\n if (\n topLayerFrame &&\n !this.state.selectedElementIds[topLayerFrame.id]\n ) {\n const elementsToAdd = selectedElements.filter(\n (element) =>\n element.frameId !== topLayerFrame.id &&\n isElementInFrame(element, nextElements, this.state),\n );\n\n if (this.state.editingGroupId) {\n updateGroupIdsAfterEditingGroup(elementsToAdd);\n }\n\n nextElements = addElementsToFrame(\n nextElements,\n elementsToAdd,\n topLayerFrame,\n );\n } else if (!topLayerFrame) {\n if (this.state.editingGroupId) {\n const elementsToRemove = selectedElements.filter(\n (element) =>\n element.frameId &&\n !isElementInFrame(element, nextElements, this.state),\n );\n\n updateGroupIdsAfterEditingGroup(elementsToRemove);\n }\n }\n\n nextElements = updateFrameMembershipOfSelectedElements(\n nextElements,\n this.state,\n this,\n );\n\n this.scene.replaceAllElements(nextElements);\n }\n }\n\n if (isFrameLikeElement(draggingElement)) {\n const elementsInsideFrame = getElementsInNewFrame(\n this.scene.getElementsIncludingDeleted(),\n draggingElement,\n this.scene.getNonDeletedElementsMap(),\n );\n\n this.scene.replaceAllElements(\n addElementsToFrame(\n this.scene.getElementsMapIncludingDeleted(),\n elementsInsideFrame,\n draggingElement,\n ),\n );\n }\n\n mutateElement(\n draggingElement,\n getNormalizedDimensions(draggingElement),\n );\n }\n\n if (resizingElement) {\n this.history.resumeRecording();\n }\n\n if (resizingElement && isInvisiblySmallElement(resizingElement)) {\n this.scene.replaceAllElements(\n this.scene\n .getElementsIncludingDeleted()\n .filter((el) => el.id !== resizingElement.id),\n );\n }\n\n // handle frame membership for resizing frames and/or selected elements\n if (pointerDownState.resize.isResizing) {\n let nextElements = updateFrameMembershipOfSelectedElements(\n this.scene.getElementsIncludingDeleted(),\n this.state,\n this,\n );\n\n const selectedFrames = this.scene\n .getSelectedElements(this.state)\n .filter((element): element is ExcalidrawFrameLikeElement =>\n isFrameLikeElement(element),\n );\n\n for (const frame of selectedFrames) {\n nextElements = replaceAllElementsInFrame(\n nextElements,\n getElementsInResizingFrame(\n this.scene.getElementsIncludingDeleted(),\n frame,\n this.state,\n elementsMap,\n ),\n frame,\n this,\n );\n }\n\n this.scene.replaceAllElements(nextElements);\n }\n\n // Code below handles selection when element(s) weren't\n // drag or added to selection on pointer down phase.\n const hitElement = pointerDownState.hit.element;\n if (\n this.state.selectedLinearElement?.elementId !== hitElement?.id &&\n isLinearElement(hitElement)\n ) {\n const selectedELements = this.scene.getSelectedElements(this.state);\n // set selectedLinearElement when no other element selected except\n // the one we've hit\n if (selectedELements.length === 1) {\n this.setState({\n selectedLinearElement: new LinearElementEditor(hitElement),\n });\n }\n }\n\n const pointerStart = this.lastPointerDownEvent;\n const pointerEnd = this.lastPointerUpEvent || this.lastPointerMoveEvent;\n\n if (isEraserActive(this.state) && pointerStart && pointerEnd) {\n this.eraserTrail.endPath();\n\n const draggedDistance = distance2d(\n pointerStart.clientX,\n pointerStart.clientY,\n pointerEnd.clientX,\n pointerEnd.clientY,\n );\n\n if (draggedDistance === 0) {\n const scenePointer = viewportCoordsToSceneCoords(\n {\n clientX: pointerEnd.clientX,\n clientY: pointerEnd.clientY,\n },\n this.state,\n );\n const hitElements = this.getElementsAtPosition(\n scenePointer.x,\n scenePointer.y,\n );\n hitElements.forEach((hitElement) =>\n this.elementsPendingErasure.add(hitElement.id),\n );\n }\n this.eraseElements();\n return;\n } else if (this.elementsPendingErasure.size) {\n this.restoreReadyToEraseElements();\n }\n\n if (\n hitElement &&\n !pointerDownState.drag.hasOccurred &&\n !pointerDownState.hit.wasAddedToSelection &&\n // if we're editing a line, pointerup shouldn't switch selection if\n // box selected\n (!this.state.editingLinearElement ||\n !pointerDownState.boxSelection.hasOccurred)\n ) {\n // when inside line editor, shift selects points instead\n if (childEvent.shiftKey && !this.state.editingLinearElement) {\n if (this.state.selectedElementIds[hitElement.id]) {\n if (isSelectedViaGroup(this.state, hitElement)) {\n this.setState((_prevState) => {\n const nextSelectedElementIds = {\n ..._prevState.selectedElementIds,\n };\n\n // We want to unselect all groups hitElement is part of\n // as well as all elements that are part of the groups\n // hitElement is part of\n for (const groupedElement of hitElement.groupIds.flatMap(\n (groupId) =>\n getElementsInGroup(\n this.scene.getNonDeletedElements(),\n groupId,\n ),\n )) {\n delete nextSelectedElementIds[groupedElement.id];\n }\n\n return {\n selectedGroupIds: {\n ..._prevState.selectedElementIds,\n ...hitElement.groupIds\n .map((gId) => ({ [gId]: false }))\n .reduce((prev, acc) => ({ ...prev, ...acc }), {}),\n },\n selectedElementIds: makeNextSelectedElementIds(\n nextSelectedElementIds,\n _prevState,\n ),\n };\n });\n // if not dragging a linear element point (outside editor)\n } else if (!this.state.selectedLinearElement?.isDragging) {\n // remove element from selection while\n // keeping prev elements selected\n\n this.setState((prevState) => {\n const newSelectedElementIds = {\n ...prevState.selectedElementIds,\n };\n delete newSelectedElementIds[hitElement!.id];\n const newSelectedElements = getSelectedElements(\n this.scene.getNonDeletedElements(),\n { selectedElementIds: newSelectedElementIds },\n );\n\n return {\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: prevState.editingGroupId,\n selectedElementIds: newSelectedElementIds,\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n // set selectedLinearElement only if thats the only element selected\n selectedLinearElement:\n newSelectedElements.length === 1 &&\n isLinearElement(newSelectedElements[0])\n ? new LinearElementEditor(newSelectedElements[0])\n : prevState.selectedLinearElement,\n };\n });\n }\n } else if (\n hitElement.frameId &&\n this.state.selectedElementIds[hitElement.frameId]\n ) {\n // when hitElement is part of a selected frame, deselect the frame\n // to avoid frame and containing elements selected simultaneously\n this.setState((prevState) => {\n const nextSelectedElementIds: {\n [id: string]: true;\n } = {\n ...prevState.selectedElementIds,\n [hitElement.id]: true,\n };\n // deselect the frame\n delete nextSelectedElementIds[hitElement.frameId!];\n\n // deselect groups containing the frame\n (this.scene.getElement(hitElement.frameId!)?.groupIds ?? [])\n .flatMap((gid) =>\n getElementsInGroup(this.scene.getNonDeletedElements(), gid),\n )\n .forEach((element) => {\n delete nextSelectedElementIds[element.id];\n });\n\n return {\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: prevState.editingGroupId,\n selectedElementIds: nextSelectedElementIds,\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n showHyperlinkPopup:\n hitElement.link || isEmbeddableElement(hitElement)\n ? \"info\"\n : false,\n };\n });\n } else {\n // add element to selection while keeping prev elements selected\n this.setState((_prevState) => ({\n selectedElementIds: makeNextSelectedElementIds(\n {\n ..._prevState.selectedElementIds,\n [hitElement!.id]: true,\n },\n _prevState,\n ),\n }));\n }\n } else {\n this.setState((prevState) => ({\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: prevState.editingGroupId,\n selectedElementIds: { [hitElement.id]: true },\n },\n this.scene.getNonDeletedElements(),\n prevState,\n this,\n ),\n selectedLinearElement:\n isLinearElement(hitElement) &&\n // Don't set `selectedLinearElement` if its same as the hitElement, this is mainly to prevent resetting the `hoverPointIndex` to -1.\n // Future we should update the API to take care of setting the correct `hoverPointIndex` when initialized\n prevState.selectedLinearElement?.elementId !== hitElement.id\n ? new LinearElementEditor(hitElement)\n : prevState.selectedLinearElement,\n }));\n }\n }\n\n if (\n !pointerDownState.drag.hasOccurred &&\n !this.state.isResizing &&\n ((hitElement &&\n isHittingElementBoundingBoxWithoutHittingElement(\n hitElement,\n this.state,\n this.frameNameBoundsCache,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n this.scene.getNonDeletedElementsMap(),\n )) ||\n (!hitElement &&\n pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements))\n ) {\n if (this.state.editingLinearElement) {\n this.setState({ editingLinearElement: null });\n } else {\n // Deselect selected elements\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n selectedGroupIds: {},\n editingGroupId: null,\n activeEmbeddable: null,\n });\n }\n return;\n }\n\n if (\n !activeTool.locked &&\n activeTool.type !== \"freedraw\" &&\n draggingElement &&\n draggingElement.type !== \"selection\"\n ) {\n this.setState((prevState) => ({\n selectedElementIds: makeNextSelectedElementIds(\n {\n ...prevState.selectedElementIds,\n [draggingElement.id]: true,\n },\n prevState,\n ),\n showHyperlinkPopup:\n isEmbeddableElement(draggingElement) && !draggingElement.link\n ? \"editor\"\n : prevState.showHyperlinkPopup,\n }));\n }\n\n if (\n activeTool.type !== \"selection\" ||\n isSomeElementSelected(this.scene.getNonDeletedElements(), this.state)\n ) {\n this.history.resumeRecording();\n }\n\n if (pointerDownState.drag.hasOccurred || isResizing || isRotating) {\n isBindingEnabled(this.state)\n ? bindOrUnbindSelectedElements(\n this.scene.getSelectedElements(this.state),\n this.scene.getNonDeletedElements(),\n elementsMap,\n )\n : unbindLinearElements(\n this.scene.getSelectedElements(this.state),\n elementsMap,\n );\n }\n\n if (activeTool.type === \"laser\") {\n this.laserTrails.endPath();\n return;\n }\n\n if (!activeTool.locked && activeTool.type !== \"freedraw\") {\n resetCursor(this.interactiveCanvas);\n this.setState({\n draggingElement: null,\n suggestedBindings: [],\n activeTool: updateActiveTool(this.state, { type: \"selection\" }),\n });\n } else {\n this.setState({\n draggingElement: null,\n suggestedBindings: [],\n });\n }\n\n if (\n hitElement &&\n this.lastPointerUpEvent &&\n this.lastPointerDownEvent &&\n this.lastPointerUpEvent.timeStamp -\n this.lastPointerDownEvent.timeStamp <\n 300 &&\n gesture.pointers.size <= 1 &&\n isIframeLikeElement(hitElement) &&\n this.isIframeLikeElementCenter(\n hitElement,\n this.lastPointerUpEvent,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n )\n ) {\n this.handleEmbeddableCenterClick(hitElement);\n }\n });\n }\n\n private restoreReadyToEraseElements = () => {\n this.elementsPendingErasure = new Set();\n this.onSceneUpdated();\n };\n\n private eraseElements = () => {\n let didChange = false;\n const elements = this.scene.getElementsIncludingDeleted().map((ele) => {\n if (\n this.elementsPendingErasure.has(ele.id) ||\n (ele.frameId && this.elementsPendingErasure.has(ele.frameId)) ||\n (isBoundToContainer(ele) &&\n this.elementsPendingErasure.has(ele.containerId))\n ) {\n didChange = true;\n return newElementWith(ele, { isDeleted: true });\n }\n return ele;\n });\n\n this.elementsPendingErasure = new Set();\n\n if (didChange) {\n this.history.resumeRecording();\n this.scene.replaceAllElements(elements);\n }\n };\n\n private initializeImage = async ({\n imageFile,\n imageElement: _imageElement,\n showCursorImagePreview = false,\n }: {\n imageFile: File;\n imageElement: ExcalidrawImageElement;\n showCursorImagePreview?: boolean;\n }) => {\n // at this point this should be guaranteed image file, but we do this check\n // to satisfy TS down the line\n if (!isSupportedImageFile(imageFile)) {\n throw new Error(t(\"errors.unsupportedFileType\"));\n }\n const mimeType = imageFile.type;\n\n setCursor(this.interactiveCanvas, \"wait\");\n\n if (mimeType === MIME_TYPES.svg) {\n try {\n imageFile = SVGStringToFile(\n await normalizeSVG(await imageFile.text()),\n imageFile.name,\n );\n } catch (error: any) {\n console.warn(error);\n throw new Error(t(\"errors.svgImageInsertError\"));\n }\n }\n\n // generate image id (by default the file digest) before any\n // resizing/compression takes place to keep it more portable\n const fileId = await ((this.props.generateIdForFile?.(\n imageFile,\n ) as Promise) || generateIdFromFile(imageFile));\n\n if (!fileId) {\n console.warn(\n \"Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one.\",\n );\n throw new Error(t(\"errors.imageInsertError\"));\n }\n\n const existingFileData = this.files[fileId];\n if (!existingFileData?.dataURL) {\n try {\n imageFile = await resizeImageFile(imageFile, {\n maxWidthOrHeight: DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,\n });\n } catch (error: any) {\n console.error(\n \"Error trying to resizing image file on insertion\",\n error,\n );\n }\n\n if (imageFile.size > MAX_ALLOWED_FILE_BYTES) {\n throw new Error(\n t(\"errors.fileTooBig\", {\n maxSize: `${Math.trunc(MAX_ALLOWED_FILE_BYTES / 1024 / 1024)}MB`,\n }),\n );\n }\n }\n\n if (showCursorImagePreview) {\n const dataURL = this.files[fileId]?.dataURL;\n // optimization so that we don't unnecessarily resize the original\n // full-size file for cursor preview\n // (it's much faster to convert the resized dataURL to File)\n const resizedFile = dataURL && dataURLToFile(dataURL);\n\n this.setImagePreviewCursor(resizedFile || imageFile);\n }\n\n const dataURL =\n this.files[fileId]?.dataURL || (await getDataURL(imageFile));\n\n const imageElement = mutateElement(\n _imageElement,\n {\n fileId,\n },\n false,\n ) as NonDeleted;\n\n return new Promise>(\n async (resolve, reject) => {\n try {\n this.files = {\n ...this.files,\n [fileId]: {\n mimeType,\n id: fileId,\n dataURL,\n created: Date.now(),\n lastRetrieved: Date.now(),\n },\n };\n const cachedImageData = this.imageCache.get(fileId);\n if (!cachedImageData) {\n this.addNewImagesToImageCache();\n await this.updateImageCache([imageElement]);\n }\n if (cachedImageData?.image instanceof Promise) {\n await cachedImageData.image;\n }\n if (\n this.state.pendingImageElementId !== imageElement.id &&\n this.state.draggingElement?.id !== imageElement.id\n ) {\n this.initializeImageDimensions(imageElement, true);\n }\n resolve(imageElement);\n } catch (error: any) {\n console.error(error);\n reject(new Error(t(\"errors.imageInsertError\")));\n } finally {\n if (!showCursorImagePreview) {\n resetCursor(this.interactiveCanvas);\n }\n }\n },\n );\n };\n\n /**\n * inserts image into elements array and rerenders\n */\n private insertImageElement = async (\n imageElement: ExcalidrawImageElement,\n imageFile: File,\n showCursorImagePreview?: boolean,\n ) => {\n // we should be handling all cases upstream, but in case we forget to handle\n // a future case, let's throw here\n if (!this.isToolSupported(\"image\")) {\n this.setState({ errorMessage: t(\"errors.imageToolNotSupported\") });\n return;\n }\n\n this.scene.addNewElement(imageElement);\n\n try {\n return await this.initializeImage({\n imageFile,\n imageElement,\n showCursorImagePreview,\n });\n } catch (error: any) {\n mutateElement(imageElement, {\n isDeleted: true,\n });\n this.actionManager.executeAction(actionFinalize);\n this.setState({\n errorMessage: error.message || t(\"errors.imageInsertError\"),\n });\n return null;\n }\n };\n\n private setImagePreviewCursor = async (imageFile: File) => {\n // mustn't be larger than 128 px\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property\n const cursorImageSizePx = 96;\n let imagePreview;\n\n try {\n imagePreview = await resizeImageFile(imageFile, {\n maxWidthOrHeight: cursorImageSizePx,\n });\n } catch (e: any) {\n if (e.cause === \"UNSUPPORTED\") {\n throw new Error(t(\"errors.unsupportedFileType\"));\n }\n throw e;\n }\n\n let previewDataURL = await getDataURL(imagePreview);\n\n // SVG cannot be resized via `resizeImageFile` so we resize by rendering to\n // a small canvas\n if (imageFile.type === MIME_TYPES.svg) {\n const img = await loadHTMLImageElement(previewDataURL);\n\n let height = Math.min(img.height, cursorImageSizePx);\n let width = height * (img.width / img.height);\n\n if (width > cursorImageSizePx) {\n width = cursorImageSizePx;\n height = width * (img.height / img.width);\n }\n\n const canvas = document.createElement(\"canvas\");\n canvas.height = height;\n canvas.width = width;\n const context = canvas.getContext(\"2d\")!;\n\n context.drawImage(img, 0, 0, width, height);\n\n previewDataURL = canvas.toDataURL(MIME_TYPES.svg) as DataURL;\n }\n\n if (this.state.pendingImageElementId) {\n setCursor(this.interactiveCanvas, `url(${previewDataURL}) 4 4, auto`);\n }\n };\n\n private onImageAction = async ({\n insertOnCanvasDirectly,\n }: {\n insertOnCanvasDirectly: boolean;\n }) => {\n try {\n const clientX = this.state.width / 2 + this.state.offsetLeft;\n const clientY = this.state.height / 2 + this.state.offsetTop;\n\n const { x, y } = viewportCoordsToSceneCoords(\n { clientX, clientY },\n this.state,\n );\n\n const imageFile = await fileOpen({\n description: \"Image\",\n extensions: Object.keys(\n IMAGE_MIME_TYPES,\n ) as (keyof typeof IMAGE_MIME_TYPES)[],\n });\n\n const imageElement = this.createImageElement({\n sceneX: x,\n sceneY: y,\n addToFrameUnderCursor: false,\n });\n\n if (insertOnCanvasDirectly) {\n this.insertImageElement(imageElement, imageFile);\n this.initializeImageDimensions(imageElement);\n this.setState(\n {\n selectedElementIds: makeNextSelectedElementIds(\n { [imageElement.id]: true },\n this.state,\n ),\n },\n () => {\n this.actionManager.executeAction(actionFinalize);\n },\n );\n } else {\n this.setState(\n {\n pendingImageElementId: imageElement.id,\n },\n () => {\n this.insertImageElement(\n imageElement,\n imageFile,\n /* showCursorImagePreview */ true,\n );\n },\n );\n }\n } catch (error: any) {\n if (error.name !== \"AbortError\") {\n console.error(error);\n } else {\n console.warn(error);\n }\n this.setState(\n {\n pendingImageElementId: null,\n editingElement: null,\n activeTool: updateActiveTool(this.state, { type: \"selection\" }),\n },\n () => {\n this.actionManager.executeAction(actionFinalize);\n },\n );\n }\n };\n\n private initializeImageDimensions = (\n imageElement: ExcalidrawImageElement,\n forceNaturalSize = false,\n ) => {\n const image =\n isInitializedImageElement(imageElement) &&\n this.imageCache.get(imageElement.fileId)?.image;\n\n if (!image || image instanceof Promise) {\n if (\n imageElement.width < DRAGGING_THRESHOLD / this.state.zoom.value &&\n imageElement.height < DRAGGING_THRESHOLD / this.state.zoom.value\n ) {\n const placeholderSize = 100 / this.state.zoom.value;\n mutateElement(imageElement, {\n x: imageElement.x - placeholderSize / 2,\n y: imageElement.y - placeholderSize / 2,\n width: placeholderSize,\n height: placeholderSize,\n });\n }\n\n return;\n }\n\n if (\n forceNaturalSize ||\n // if user-created bounding box is below threshold, assume the\n // intention was to click instead of drag, and use the image's\n // intrinsic size\n (imageElement.width < DRAGGING_THRESHOLD / this.state.zoom.value &&\n imageElement.height < DRAGGING_THRESHOLD / this.state.zoom.value)\n ) {\n const minHeight = Math.max(this.state.height - 120, 160);\n // max 65% of canvas height, clamped to <300px, vh - 120px>\n const maxHeight = Math.min(\n minHeight,\n Math.floor(this.state.height * 0.5) / this.state.zoom.value,\n );\n\n const height = Math.min(image.naturalHeight, maxHeight);\n const width = height * (image.naturalWidth / image.naturalHeight);\n\n // add current imageElement width/height to account for previous centering\n // of the placeholder image\n const x = imageElement.x + imageElement.width / 2 - width / 2;\n const y = imageElement.y + imageElement.height / 2 - height / 2;\n\n mutateElement(imageElement, { x, y, width, height });\n }\n };\n\n /** updates image cache, refreshing updated elements and/or setting status\n to error for images that fail during element creation */\n private updateImageCache = async (\n elements: readonly InitializedExcalidrawImageElement[],\n files = this.files,\n ) => {\n const { updatedFiles, erroredFiles } = await _updateImageCache({\n imageCache: this.imageCache,\n fileIds: elements.map((element) => element.fileId),\n files,\n });\n if (updatedFiles.size || erroredFiles.size) {\n for (const element of elements) {\n if (updatedFiles.has(element.fileId)) {\n ShapeCache.delete(element);\n }\n }\n }\n if (erroredFiles.size) {\n this.scene.replaceAllElements(\n this.scene.getElementsIncludingDeleted().map((element) => {\n if (\n isInitializedImageElement(element) &&\n erroredFiles.has(element.fileId)\n ) {\n return newElementWith(element, {\n status: \"error\",\n });\n }\n return element;\n }),\n );\n }\n\n return { updatedFiles, erroredFiles };\n };\n\n /** adds new images to imageCache and re-renders if needed */\n private addNewImagesToImageCache = async (\n imageElements: InitializedExcalidrawImageElement[] = getInitializedImageElements(\n this.scene.getNonDeletedElements(),\n ),\n files: BinaryFiles = this.files,\n ) => {\n const uncachedImageElements = imageElements.filter(\n (element) => !element.isDeleted && !this.imageCache.has(element.fileId),\n );\n\n if (uncachedImageElements.length) {\n const { updatedFiles } = await this.updateImageCache(\n uncachedImageElements,\n files,\n );\n if (updatedFiles.size) {\n this.scene.informMutation();\n }\n }\n };\n\n /** generally you should use `addNewImagesToImageCache()` directly if you need\n * to render new images. This is just a failsafe */\n private scheduleImageRefresh = throttle(() => {\n this.addNewImagesToImageCache();\n }, IMAGE_RENDER_TIMEOUT);\n\n private updateBindingEnabledOnPointerMove = (\n event: React.PointerEvent,\n ) => {\n const shouldEnableBinding = shouldEnableBindingForPointerEvent(event);\n if (this.state.isBindingEnabled !== shouldEnableBinding) {\n this.setState({ isBindingEnabled: shouldEnableBinding });\n }\n };\n\n private maybeSuggestBindingAtCursor = (pointerCoords: {\n x: number;\n y: number;\n }): void => {\n const hoveredBindableElement = getHoveredElementForBinding(\n pointerCoords,\n this.scene.getNonDeletedElements(),\n this.scene.getNonDeletedElementsMap(),\n );\n this.setState({\n suggestedBindings:\n hoveredBindableElement != null ? [hoveredBindableElement] : [],\n });\n };\n\n private maybeSuggestBindingsForLinearElementAtCoords = (\n linearElement: NonDeleted,\n /** scene coords */\n pointerCoords: {\n x: number;\n y: number;\n }[],\n // During line creation the start binding hasn't been written yet\n // into `linearElement`\n oppositeBindingBoundElement?: ExcalidrawBindableElement | null,\n ): void => {\n if (!pointerCoords.length) {\n return;\n }\n\n const suggestedBindings = pointerCoords.reduce(\n (acc: NonDeleted[], coords) => {\n const hoveredBindableElement = getHoveredElementForBinding(\n coords,\n this.scene.getNonDeletedElements(),\n this.scene.getNonDeletedElementsMap(),\n );\n if (\n hoveredBindableElement != null &&\n !isLinearElementSimpleAndAlreadyBound(\n linearElement,\n oppositeBindingBoundElement?.id,\n hoveredBindableElement,\n )\n ) {\n acc.push(hoveredBindableElement);\n }\n return acc;\n },\n [],\n );\n\n this.setState({ suggestedBindings });\n };\n\n private maybeSuggestBindingForAll(\n selectedElements: NonDeleted[],\n ): void {\n if (selectedElements.length > 50) {\n return;\n }\n const suggestedBindings = getEligibleElementsForBinding(\n selectedElements,\n this.scene.getNonDeletedElements(),\n this.scene.getNonDeletedElementsMap(),\n );\n this.setState({ suggestedBindings });\n }\n\n private clearSelection(hitElement: ExcalidrawElement | null): void {\n this.setState((prevState) => ({\n selectedElementIds: makeNextSelectedElementIds({}, prevState),\n activeEmbeddable: null,\n selectedGroupIds: {},\n // Continue editing the same group if the user selected a different\n // element from it\n editingGroupId:\n prevState.editingGroupId &&\n hitElement != null &&\n isElementInGroup(hitElement, prevState.editingGroupId)\n ? prevState.editingGroupId\n : null,\n }));\n this.setState({\n selectedElementIds: makeNextSelectedElementIds({}, this.state),\n activeEmbeddable: null,\n previousSelectedElementIds: this.state.selectedElementIds,\n });\n }\n\n private handleInteractiveCanvasRef = (canvas: HTMLCanvasElement | null) => {\n // canvas is null when unmounting\n if (canvas !== null) {\n this.interactiveCanvas = canvas;\n\n // -----------------------------------------------------------------------\n // NOTE wheel, touchstart, touchend events must be registered outside\n // of react because react binds them them passively (so we can't prevent\n // default on them)\n this.interactiveCanvas.addEventListener(EVENT.WHEEL, this.handleWheel);\n this.interactiveCanvas.addEventListener(\n EVENT.TOUCH_START,\n this.onTouchStart,\n );\n this.interactiveCanvas.addEventListener(EVENT.TOUCH_END, this.onTouchEnd);\n // -----------------------------------------------------------------------\n } else {\n this.interactiveCanvas?.removeEventListener(\n EVENT.WHEEL,\n this.handleWheel,\n );\n this.interactiveCanvas?.removeEventListener(\n EVENT.TOUCH_START,\n this.onTouchStart,\n );\n this.interactiveCanvas?.removeEventListener(\n EVENT.TOUCH_END,\n this.onTouchEnd,\n );\n }\n };\n\n private handleAppOnDrop = async (event: React.DragEvent) => {\n // must be retrieved first, in the same frame\n const { file, fileHandle } = await getFileFromEvent(event);\n const { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords(\n event,\n this.state,\n );\n\n try {\n // if image tool not supported, don't show an error here and let it fall\n // through so we still support importing scene data from images. If no\n // scene data encoded, we'll show an error then\n if (isSupportedImageFile(file) && this.isToolSupported(\"image\")) {\n // first attempt to decode scene from the image if it's embedded\n // ---------------------------------------------------------------------\n\n if (file?.type === MIME_TYPES.png || file?.type === MIME_TYPES.svg) {\n try {\n const scene = await loadFromBlob(\n file,\n this.state,\n this.scene.getElementsIncludingDeleted(),\n fileHandle,\n );\n this.syncActionResult({\n ...scene,\n appState: {\n ...(scene.appState || this.state),\n isLoading: false,\n },\n replaceFiles: true,\n commitToHistory: true,\n });\n return;\n } catch (error: any) {\n // Don't throw for image scene daa\n if (error.name !== \"EncodingError\") {\n throw new Error(t(\"alerts.couldNotLoadInvalidFile\"));\n }\n }\n }\n\n // if no scene is embedded or we fail for whatever reason, fall back\n // to importing as regular image\n // ---------------------------------------------------------------------\n\n const imageElement = this.createImageElement({ sceneX, sceneY });\n this.insertImageElement(imageElement, file);\n this.initializeImageDimensions(imageElement);\n this.setState({\n selectedElementIds: makeNextSelectedElementIds(\n { [imageElement.id]: true },\n this.state,\n ),\n });\n\n return;\n }\n } catch (error: any) {\n return this.setState({\n isLoading: false,\n errorMessage: error.message,\n });\n }\n\n const libraryJSON = event.dataTransfer.getData(MIME_TYPES.excalidrawlib);\n if (libraryJSON && typeof libraryJSON === \"string\") {\n try {\n const libraryItems = parseLibraryJSON(libraryJSON);\n this.addElementsFromPasteOrLibrary({\n elements: distributeLibraryItemsOnSquareGrid(libraryItems),\n position: event,\n files: null,\n });\n } catch (error: any) {\n this.setState({ errorMessage: error.message });\n }\n return;\n }\n\n if (file) {\n // Attempt to parse an excalidraw/excalidrawlib file\n await this.loadFileToCanvas(file, fileHandle);\n }\n\n if (event.dataTransfer?.types?.includes(\"text/plain\")) {\n const text = event.dataTransfer?.getData(\"text\");\n if (\n text &&\n embeddableURLValidator(text, this.props.validateEmbeddable) &&\n (/^(http|https):\\/\\/[^\\s/$.?#].[^\\s]*$/.test(text) ||\n getEmbedLink(text)?.type === \"video\")\n ) {\n const embeddable = this.insertEmbeddableElement({\n sceneX,\n sceneY,\n link: normalizeLink(text),\n });\n if (embeddable) {\n this.setState({ selectedElementIds: { [embeddable.id]: true } });\n }\n }\n }\n };\n\n loadFileToCanvas = async (\n file: File,\n fileHandle: FileSystemHandle | null,\n ) => {\n file = await normalizeFile(file);\n try {\n let ret;\n try {\n ret = await loadSceneOrLibraryFromBlob(\n file,\n this.state,\n this.scene.getElementsIncludingDeleted(),\n fileHandle,\n );\n } catch (error: any) {\n const imageSceneDataError = error instanceof ImageSceneDataError;\n if (\n imageSceneDataError &&\n error.code === \"IMAGE_NOT_CONTAINS_SCENE_DATA\" &&\n !this.isToolSupported(\"image\")\n ) {\n this.setState({\n isLoading: false,\n errorMessage: t(\"errors.imageToolNotSupported\"),\n });\n return;\n }\n const errorMessage = imageSceneDataError\n ? t(\"alerts.cannotRestoreFromImage\")\n : t(\"alerts.couldNotLoadInvalidFile\");\n this.setState({\n isLoading: false,\n errorMessage,\n });\n }\n if (!ret) {\n return;\n }\n\n if (ret.type === MIME_TYPES.excalidraw) {\n this.setState({ isLoading: true });\n this.syncActionResult({\n ...ret.data,\n appState: {\n ...(ret.data.appState || this.state),\n isLoading: false,\n },\n replaceFiles: true,\n commitToHistory: true,\n });\n } else if (ret.type === MIME_TYPES.excalidrawlib) {\n await this.library\n .updateLibrary({\n libraryItems: file,\n merge: true,\n openLibraryMenu: true,\n })\n .catch((error) => {\n console.error(error);\n this.setState({ errorMessage: t(\"errors.importLibraryError\") });\n });\n }\n } catch (error: any) {\n this.setState({ isLoading: false, errorMessage: error.message });\n }\n };\n\n private handleCanvasContextMenu = (\n event: React.MouseEvent,\n ) => {\n event.preventDefault();\n\n if (\n ((\"pointerType\" in event.nativeEvent &&\n event.nativeEvent.pointerType === \"touch\") ||\n (\"pointerType\" in event.nativeEvent &&\n event.nativeEvent.pointerType === \"pen\" &&\n // always allow if user uses a pen secondary button\n event.button !== POINTER_BUTTON.SECONDARY)) &&\n this.state.activeTool.type !== \"selection\"\n ) {\n return;\n }\n\n const { x, y } = viewportCoordsToSceneCoords(event, this.state);\n const element = this.getElementAtPosition(x, y, {\n preferSelected: true,\n includeLockedElements: true,\n });\n\n const selectedElements = this.scene.getSelectedElements(this.state);\n const isHittingCommonBoundBox =\n this.isHittingCommonBoundingBoxOfSelectedElements(\n { x, y },\n selectedElements,\n );\n\n const type = element || isHittingCommonBoundBox ? \"element\" : \"canvas\";\n\n const container = this.excalidrawContainerRef.current!;\n const { top: offsetTop, left: offsetLeft } =\n container.getBoundingClientRect();\n const left = event.clientX - offsetLeft;\n const top = event.clientY - offsetTop;\n\n trackEvent(\"contextMenu\", \"openContextMenu\", type);\n\n this.setState(\n {\n ...(element && !this.state.selectedElementIds[element.id]\n ? {\n ...this.state,\n ...selectGroupsForSelectedElements(\n {\n editingGroupId: this.state.editingGroupId,\n selectedElementIds: { [element.id]: true },\n },\n this.scene.getNonDeletedElements(),\n this.state,\n this,\n ),\n selectedLinearElement: isLinearElement(element)\n ? new LinearElementEditor(element)\n : null,\n }\n : this.state),\n showHyperlinkPopup: false,\n },\n () => {\n this.setState({\n contextMenu: { top, left, items: this.getContextMenuItems(type) },\n });\n },\n );\n };\n\n private maybeDragNewGenericElement = (\n pointerDownState: PointerDownState,\n event: MouseEvent | KeyboardEvent,\n ): void => {\n const draggingElement = this.state.draggingElement;\n const pointerCoords = pointerDownState.lastCoords;\n if (!draggingElement) {\n return;\n }\n if (\n draggingElement.type === \"selection\" &&\n this.state.activeTool.type !== \"eraser\"\n ) {\n dragNewElement(\n draggingElement,\n this.state.activeTool.type,\n pointerDownState.origin.x,\n pointerDownState.origin.y,\n pointerCoords.x,\n pointerCoords.y,\n distance(pointerDownState.origin.x, pointerCoords.x),\n distance(pointerDownState.origin.y, pointerCoords.y),\n shouldMaintainAspectRatio(event),\n shouldResizeFromCenter(event),\n );\n } else {\n let [gridX, gridY] = getGridPoint(\n pointerCoords.x,\n pointerCoords.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n const image =\n isInitializedImageElement(draggingElement) &&\n this.imageCache.get(draggingElement.fileId)?.image;\n const aspectRatio =\n image && !(image instanceof Promise)\n ? image.width / image.height\n : null;\n\n this.maybeCacheReferenceSnapPoints(event, [draggingElement]);\n\n const { snapOffset, snapLines } = snapNewElement(\n draggingElement,\n this.state,\n event,\n {\n x:\n pointerDownState.originInGrid.x +\n (this.state.originSnapOffset?.x ?? 0),\n y:\n pointerDownState.originInGrid.y +\n (this.state.originSnapOffset?.y ?? 0),\n },\n {\n x: gridX - pointerDownState.originInGrid.x,\n y: gridY - pointerDownState.originInGrid.y,\n },\n this.scene.getNonDeletedElementsMap(),\n );\n\n gridX += snapOffset.x;\n gridY += snapOffset.y;\n\n this.setState({\n snapLines,\n });\n\n dragNewElement(\n draggingElement,\n this.state.activeTool.type,\n pointerDownState.originInGrid.x,\n pointerDownState.originInGrid.y,\n gridX,\n gridY,\n distance(pointerDownState.originInGrid.x, gridX),\n distance(pointerDownState.originInGrid.y, gridY),\n isImageElement(draggingElement)\n ? !shouldMaintainAspectRatio(event)\n : shouldMaintainAspectRatio(event),\n shouldResizeFromCenter(event),\n aspectRatio,\n this.state.originSnapOffset,\n );\n\n this.maybeSuggestBindingForAll([draggingElement]);\n\n // highlight elements that are to be added to frames on frames creation\n if (\n this.state.activeTool.type === TOOL_TYPE.frame ||\n this.state.activeTool.type === TOOL_TYPE.magicframe\n ) {\n this.setState({\n elementsToHighlight: getElementsInResizingFrame(\n this.scene.getNonDeletedElements(),\n draggingElement as ExcalidrawFrameLikeElement,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n ),\n });\n }\n }\n };\n\n private maybeHandleResize = (\n pointerDownState: PointerDownState,\n event: MouseEvent | KeyboardEvent,\n ): boolean => {\n const selectedElements = this.scene.getSelectedElements(this.state);\n const selectedFrames = selectedElements.filter(\n (element): element is ExcalidrawFrameLikeElement =>\n isFrameLikeElement(element),\n );\n\n const transformHandleType = pointerDownState.resize.handleType;\n\n if (selectedFrames.length > 0 && transformHandleType === \"rotation\") {\n return false;\n }\n\n this.setState({\n // TODO: rename this state field to \"isScaling\" to distinguish\n // it from the generic \"isResizing\" which includes scaling and\n // rotating\n isResizing: transformHandleType && transformHandleType !== \"rotation\",\n isRotating: transformHandleType === \"rotation\",\n activeEmbeddable: null,\n });\n const pointerCoords = pointerDownState.lastCoords;\n let [resizeX, resizeY] = getGridPoint(\n pointerCoords.x - pointerDownState.resize.offset.x,\n pointerCoords.y - pointerDownState.resize.offset.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n const frameElementsOffsetsMap = new Map<\n string,\n {\n x: number;\n y: number;\n }\n >();\n\n selectedFrames.forEach((frame) => {\n const elementsInFrame = getFrameChildren(\n this.scene.getNonDeletedElements(),\n frame.id,\n );\n\n elementsInFrame.forEach((element) => {\n frameElementsOffsetsMap.set(frame.id + element.id, {\n x: element.x - frame.x,\n y: element.y - frame.y,\n });\n });\n });\n\n // check needed for avoiding flickering when a key gets pressed\n // during dragging\n if (!this.state.selectedElementsAreBeingDragged) {\n const [gridX, gridY] = getGridPoint(\n pointerCoords.x,\n pointerCoords.y,\n event[KEYS.CTRL_OR_CMD] ? null : this.state.gridSize,\n );\n\n const dragOffset = {\n x: gridX - pointerDownState.originInGrid.x,\n y: gridY - pointerDownState.originInGrid.y,\n };\n\n const originalElements = [...pointerDownState.originalElements.values()];\n\n this.maybeCacheReferenceSnapPoints(event, selectedElements);\n\n const { snapOffset, snapLines } = snapResizingElements(\n selectedElements,\n getSelectedElements(originalElements, this.state),\n this.state,\n event,\n dragOffset,\n transformHandleType,\n );\n\n resizeX += snapOffset.x;\n resizeY += snapOffset.y;\n\n this.setState({\n snapLines,\n });\n }\n\n if (\n transformElements(\n pointerDownState.originalElements,\n transformHandleType,\n selectedElements,\n this.scene.getElementsMapIncludingDeleted(),\n shouldRotateWithDiscreteAngle(event),\n shouldResizeFromCenter(event),\n selectedElements.length === 1 && isImageElement(selectedElements[0])\n ? !shouldMaintainAspectRatio(event)\n : shouldMaintainAspectRatio(event),\n resizeX,\n resizeY,\n pointerDownState.resize.center.x,\n pointerDownState.resize.center.y,\n )\n ) {\n this.maybeSuggestBindingForAll(selectedElements);\n\n const elementsToHighlight = new Set();\n selectedFrames.forEach((frame) => {\n getElementsInResizingFrame(\n this.scene.getNonDeletedElements(),\n frame,\n this.state,\n this.scene.getNonDeletedElementsMap(),\n ).forEach((element) => elementsToHighlight.add(element));\n });\n\n this.setState({\n elementsToHighlight: [...elementsToHighlight],\n });\n\n return true;\n }\n return false;\n };\n\n private getContextMenuItems = (\n type: \"canvas\" | \"element\",\n ): ContextMenuItems => {\n const options: ContextMenuItems = [];\n\n options.push(actionCopyAsPng, actionCopyAsSvg);\n\n // canvas contextMenu\n // -------------------------------------------------------------------------\n\n if (type === \"canvas\") {\n if (this.state.viewModeEnabled) {\n return [\n ...options,\n actionToggleGridMode,\n actionToggleZenMode,\n actionToggleViewMode,\n actionToggleStats,\n ];\n }\n\n return [\n actionPaste,\n CONTEXT_MENU_SEPARATOR,\n actionCopyAsPng,\n actionCopyAsSvg,\n copyText,\n CONTEXT_MENU_SEPARATOR,\n actionSelectAll,\n actionUnlockAllElements,\n CONTEXT_MENU_SEPARATOR,\n actionToggleGridMode,\n actionToggleObjectsSnapMode,\n actionToggleZenMode,\n actionToggleViewMode,\n actionToggleStats,\n ];\n }\n\n // element contextMenu\n // -------------------------------------------------------------------------\n\n options.push(copyText);\n\n if (this.state.viewModeEnabled) {\n return [actionCopy, ...options];\n }\n\n return [\n actionCut,\n actionCopy,\n actionPaste,\n actionSelectAllElementsInFrame,\n actionRemoveAllElementsFromFrame,\n CONTEXT_MENU_SEPARATOR,\n ...options,\n CONTEXT_MENU_SEPARATOR,\n actionCopyStyles,\n actionPasteStyles,\n CONTEXT_MENU_SEPARATOR,\n actionGroup,\n actionUnbindText,\n actionBindText,\n actionWrapTextInContainer,\n actionUngroup,\n CONTEXT_MENU_SEPARATOR,\n actionAddToLibrary,\n CONTEXT_MENU_SEPARATOR,\n actionSendBackward,\n actionBringForward,\n actionSendToBack,\n actionBringToFront,\n CONTEXT_MENU_SEPARATOR,\n actionFlipHorizontal,\n actionFlipVertical,\n CONTEXT_MENU_SEPARATOR,\n actionToggleLinearEditor,\n actionLink,\n actionDuplicateSelection,\n actionToggleElementLock,\n CONTEXT_MENU_SEPARATOR,\n actionDeleteSelected,\n ];\n };\n\n private handleWheel = withBatchedUpdates(\n (\n event: WheelEvent | React.WheelEvent,\n ) => {\n event.preventDefault();\n if (isPanning) {\n return;\n }\n\n const { deltaX, deltaY } = event;\n // note that event.ctrlKey is necessary to handle pinch zooming\n if (event.metaKey || event.ctrlKey) {\n const sign = Math.sign(deltaY);\n const MAX_STEP = ZOOM_STEP * 100;\n const absDelta = Math.abs(deltaY);\n let delta = deltaY;\n if (absDelta > MAX_STEP) {\n delta = MAX_STEP * sign;\n }\n\n let newZoom = this.state.zoom.value - delta / 100;\n // increase zoom steps the more zoomed-in we are (applies to >100% only)\n newZoom +=\n Math.log10(Math.max(1, this.state.zoom.value)) *\n -sign *\n // reduced amplification for small deltas (small movements on a trackpad)\n Math.min(1, absDelta / 20);\n\n this.translateCanvas((state) => ({\n ...getStateForZoom(\n {\n viewportX: this.lastViewportPosition.x,\n viewportY: this.lastViewportPosition.y,\n nextZoom: getNormalizedZoom(newZoom),\n },\n state,\n ),\n shouldCacheIgnoreZoom: true,\n }));\n this.resetShouldCacheIgnoreZoomDebounced();\n return;\n }\n\n // scroll horizontally when shift pressed\n if (event.shiftKey) {\n this.translateCanvas(({ zoom, scrollX }) => ({\n // on Mac, shift+wheel tends to result in deltaX\n scrollX: scrollX - (deltaY || deltaX) / zoom.value,\n }));\n return;\n }\n\n this.translateCanvas(({ zoom, scrollX, scrollY }) => ({\n scrollX: scrollX - deltaX / zoom.value,\n scrollY: scrollY - deltaY / zoom.value,\n }));\n },\n );\n\n private getTextWysiwygSnappedToCenterPosition(\n x: number,\n y: number,\n appState: AppState,\n container?: ExcalidrawTextContainer | null,\n ) {\n if (container) {\n let elementCenterX = container.x + container.width / 2;\n let elementCenterY = container.y + container.height / 2;\n\n const elementCenter = getContainerCenter(\n container,\n appState,\n this.scene.getNonDeletedElementsMap(),\n );\n if (elementCenter) {\n elementCenterX = elementCenter.x;\n elementCenterY = elementCenter.y;\n }\n const distanceToCenter = Math.hypot(\n x - elementCenterX,\n y - elementCenterY,\n );\n const isSnappedToCenter =\n distanceToCenter < TEXT_TO_CENTER_SNAP_THRESHOLD;\n if (isSnappedToCenter) {\n const { x: viewportX, y: viewportY } = sceneCoordsToViewportCoords(\n { sceneX: elementCenterX, sceneY: elementCenterY },\n appState,\n );\n return { viewportX, viewportY, elementCenterX, elementCenterY };\n }\n }\n }\n\n private savePointer = (x: number, y: number, button: \"up\" | \"down\") => {\n if (!x || !y) {\n return;\n }\n const { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords(\n { clientX: x, clientY: y },\n this.state,\n );\n\n if (isNaN(sceneX) || isNaN(sceneY)) {\n // sometimes the pointer goes off screen\n }\n\n const pointer: CollaboratorPointer = {\n x: sceneX,\n y: sceneY,\n tool: this.state.activeTool.type === \"laser\" ? \"laser\" : \"pointer\",\n };\n\n this.props.onPointerUpdate?.({\n pointer,\n button,\n pointersMap: gesture.pointers,\n });\n };\n\n private resetShouldCacheIgnoreZoomDebounced = debounce(() => {\n if (!this.unmounted) {\n this.setState({ shouldCacheIgnoreZoom: false });\n }\n }, 300);\n\n private updateDOMRect = (cb?: () => void) => {\n if (this.excalidrawContainerRef?.current) {\n const excalidrawContainer = this.excalidrawContainerRef.current;\n const {\n width,\n height,\n left: offsetLeft,\n top: offsetTop,\n } = excalidrawContainer.getBoundingClientRect();\n const {\n width: currentWidth,\n height: currentHeight,\n offsetTop: currentOffsetTop,\n offsetLeft: currentOffsetLeft,\n } = this.state;\n\n if (\n width === currentWidth &&\n height === currentHeight &&\n offsetLeft === currentOffsetLeft &&\n offsetTop === currentOffsetTop\n ) {\n if (cb) {\n cb();\n }\n return;\n }\n\n this.setState(\n {\n width,\n height,\n offsetLeft,\n offsetTop,\n },\n () => {\n cb && cb();\n },\n );\n }\n };\n\n public refresh = () => {\n this.setState({ ...this.getCanvasOffsets() });\n };\n\n private getCanvasOffsets(): Pick {\n if (this.excalidrawContainerRef?.current) {\n const excalidrawContainer = this.excalidrawContainerRef.current;\n const { left, top } = excalidrawContainer.getBoundingClientRect();\n return {\n offsetLeft: left,\n offsetTop: top,\n };\n }\n return {\n offsetLeft: 0,\n offsetTop: 0,\n };\n }\n\n private async updateLanguage() {\n const currentLang =\n languages.find((lang) => lang.code === this.props.langCode) ||\n defaultLang;\n await setLanguage(currentLang);\n this.setAppState({});\n }\n}\n\n// -----------------------------------------------------------------------------\n// TEST HOOKS\n// -----------------------------------------------------------------------------\ndeclare global {\n interface Window {\n h: {\n elements: readonly ExcalidrawElement[];\n state: AppState;\n setState: React.Component[\"setState\"];\n app: InstanceType;\n history: History;\n };\n }\n}\n\nexport const createTestHook = () => {\n if (import.meta.env.MODE === ENV.TEST || import.meta.env.DEV) {\n window.h = window.h || ({} as Window[\"h\"]);\n\n Object.defineProperties(window.h, {\n elements: {\n configurable: true,\n get() {\n return this.app?.scene.getElementsIncludingDeleted();\n },\n set(elements: ExcalidrawElement[]) {\n return this.app?.scene.replaceAllElements(elements);\n },\n },\n });\n }\n};\n\ncreateTestHook();\nexport default App;\n","import \"./Modal.scss\";\n\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { KEYS } from \"../keys\";\nimport { AppState } from \"../types\";\nimport { useCreatePortalContainer } from \"../hooks/useCreatePortalContainer\";\n\nexport const Modal: React.FC<{\n className?: string;\n children: React.ReactNode;\n maxWidth?: number;\n onCloseRequest(): void;\n labelledBy: string;\n theme?: AppState[\"theme\"];\n closeOnClickOutside?: boolean;\n}> = (props) => {\n const { closeOnClickOutside = true } = props;\n const modalRoot = useCreatePortalContainer({\n className: \"excalidraw-modal-container\",\n });\n\n if (!modalRoot) {\n return null;\n }\n\n const handleKeydown = (event: React.KeyboardEvent) => {\n if (event.key === KEYS.ESCAPE) {\n event.nativeEvent.stopImmediatePropagation();\n event.stopPropagation();\n props.onCloseRequest();\n }\n };\n\n return createPortal(\n \n \n \n {props.children}\n
    \n
    ,\n modalRoot,\n );\n};\n","import clsx from \"clsx\";\nimport React, { useEffect, useState } from \"react\";\nimport { useCallbackRefState } from \"../hooks/useCallbackRefState\";\nimport { t } from \"../i18n\";\nimport {\n useExcalidrawContainer,\n useDevice,\n useExcalidrawSetAppState,\n} from \"./App\";\nimport { KEYS } from \"../keys\";\nimport \"./Dialog.scss\";\nimport { back, CloseIcon } from \"./icons\";\nimport { Island } from \"./Island\";\nimport { Modal } from \"./Modal\";\nimport { queryFocusableElements } from \"../utils\";\nimport { useSetAtom } from \"jotai\";\nimport { isLibraryMenuOpenAtom } from \"./LibraryMenu\";\nimport { jotaiScope } from \"../jotai\";\n\nexport type DialogSize = number | \"small\" | \"regular\" | \"wide\" | undefined;\n\nexport interface DialogProps {\n children: React.ReactNode;\n className?: string;\n size?: DialogSize;\n onCloseRequest(): void;\n title: React.ReactNode | false;\n autofocus?: boolean;\n closeOnClickOutside?: boolean;\n}\n\nfunction getDialogSize(size: DialogSize): number {\n if (size && typeof size === \"number\") {\n return size;\n }\n\n switch (size) {\n case \"small\":\n return 550;\n case \"wide\":\n return 1024;\n case \"regular\":\n default:\n return 800;\n }\n}\n\nexport const Dialog = (props: DialogProps) => {\n const [islandNode, setIslandNode] = useCallbackRefState();\n const [lastActiveElement] = useState(document.activeElement);\n const { id } = useExcalidrawContainer();\n const isFullscreen = useDevice().viewport.isMobile;\n\n useEffect(() => {\n if (!islandNode) {\n return;\n }\n\n const focusableElements = queryFocusableElements(islandNode);\n\n if (focusableElements.length > 0 && props.autofocus !== false) {\n // If there's an element other than close, focus it.\n (focusableElements[1] || focusableElements[0]).focus();\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === KEYS.TAB) {\n const focusableElements = queryFocusableElements(islandNode);\n const { activeElement } = document;\n const currentIndex = focusableElements.findIndex(\n (element) => element === activeElement,\n );\n\n if (currentIndex === 0 && event.shiftKey) {\n focusableElements[focusableElements.length - 1].focus();\n event.preventDefault();\n } else if (\n currentIndex === focusableElements.length - 1 &&\n !event.shiftKey\n ) {\n focusableElements[0].focus();\n event.preventDefault();\n }\n }\n };\n\n islandNode.addEventListener(\"keydown\", handleKeyDown);\n\n return () => islandNode.removeEventListener(\"keydown\", handleKeyDown);\n }, [islandNode, props.autofocus]);\n\n const setAppState = useExcalidrawSetAppState();\n const setIsLibraryMenuOpen = useSetAtom(isLibraryMenuOpenAtom, jotaiScope);\n\n const onClose = () => {\n setAppState({ openMenu: null });\n setIsLibraryMenuOpen(false);\n (lastActiveElement as HTMLElement).focus();\n props.onCloseRequest();\n };\n\n return (\n \n \n {props.title && (\n

    \n {props.title}\n

    \n )}\n \n {isFullscreen ? back : CloseIcon}\n \n
    {props.children}
    \n
    \n \n );\n};\n","import React, { useState } from \"react\";\nimport { t } from \"../i18n\";\n\nimport { Dialog } from \"./Dialog\";\nimport { useExcalidrawContainer } from \"./App\";\n\nexport const ErrorDialog = ({\n children,\n onClose,\n}: {\n children?: React.ReactNode;\n onClose?: () => void;\n}) => {\n const [modalIsShown, setModalIsShown] = useState(!!children);\n const { container: excalidrawContainer } = useExcalidrawContainer();\n\n const handleClose = React.useCallback(() => {\n setModalIsShown(false);\n\n if (onClose) {\n onClose();\n }\n // TODO: Fix the A11y issues so this is never needed since we should always focus on last active element\n excalidrawContainer?.focus();\n }, [onClose, excalidrawContainer]);\n\n return (\n <>\n {modalIsShown && (\n \n
    {children}
    \n \n )}\n \n );\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\n//# sourceMappingURL=session.js.map","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","import { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n//# sourceMappingURL=browser.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n//# sourceMappingURL=node.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map","import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n//# sourceMappingURL=misc.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map","var defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n//# sourceMappingURL=stacktrace.js.map","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacementFactory A function that should be used to wrap a given method, returning the wrapped method which\n * will be substituted in for `source[name]`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n//# sourceMappingURL=object.js.map","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n return oldOnPopState.apply(this, args);\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n task\n .then(function () { return _this.remove(task); })\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var timeOriginIsReliable = performance.timeOrigin && Math.abs(performance.timeOrigin + performance.now() - Date.now()) < threshold;\n if (timeOriginIsReliable) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n var navigationStartIsReliable = hasNavigationStart && Math.abs(navigationStart + performance.now() - Date.now()) < threshold;\n if (navigationStartIsReliable) {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return Date.now();\n})();\n//# sourceMappingURL=time.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs)\n : __spread(this._breadcrumbs, [mergedBreadcrumb]);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relys on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.timestamp = Date.now();\n this.started = Date.now();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || Date.now();\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n this.duration = this.timestamp - this.started;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n started: new Date(this.started).toISOString(),\n timestamp: new Date(this.timestamp).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 3;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n var session = new Session(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/** Returns the global shim registry. */\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this._dsnObject;\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this._dsnObject;\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n var base = this.getBaseApiEndpoint();\n var dsn = this._dsnObject;\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) { return i.name; });\n var pickedIntegrationsNames_1 = [];\n // Leave only unique default integrations, that were not overridden with provided user integrations\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 &&\n pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n });\n // Don't add same user integration twice\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n else {\n integrations = __spread(defaultIntegrations);\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import { __assign, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus, } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of call being processed */\n this._processing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!session.release) {\n logger.warn('Discarded session because of missing release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to inidcate it's not the first occurence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientProcessing(timeout).then(function (ready) {\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return ready && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var userAgent;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n var user = event.user;\n if (!session.userAgent) {\n var headers = event.request ? event.request.headers : {};\n for (var key in headers) {\n if (key.toLowerCase() === 'user-agent') {\n userAgent = headers[key];\n break;\n }\n }\n }\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { user: user,\n userAgent: userAgent, errors: session.errors + Number(errored || crashed) }));\n this.captureSession(session);\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /** Waits for the client to be done with processing. */\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._processing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var sdkInfo = event.sdk;\n var integrationsArray = Object.keys(this._integrations);\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.integrations = integrationsArray;\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not send event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n if (typeof beforeSendResult === 'undefined') {\n throw new SentryError('`beforeSend` method has to return `null` or a valid event.');\n }\n else if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(function (event) { return event; }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n return beforeSendResult;\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._processing += 1;\n promise.then(function (value) {\n _this._processing -= 1;\n return value;\n }, function (reason) {\n _this._processing -= 1;\n return reason;\n });\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {\n name: sdkInfo.name,\n version: sdkInfo.version,\n };\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from an event. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })));\n var itemHeaders = JSON.stringify({\n type: 'session',\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: 'session',\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction';\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })));\n var itemHeaders = JSON.stringify({\n type: event.type,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n//# sourceMappingURL=request.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","export var SDK_VERSION = '6.2.5';\n//# sourceMappingURL=version.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = self._mergeOptions(clientOptions);\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return (frames_1 && frames_1[frames_1.length - 1].filename) || null;\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames_2 && frames_2[frames_2.length - 1].filename) || null;\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n};\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._api = new API(options.dsn, options._metadata);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n //
    ,
    ,..\n // where each
    is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n /* eslint-disable @typescript-eslint/unbound-method */\n var _a, _b;\n // Fast path to avoid DOM I/O\n var global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n }));\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }));\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n}\n//# sourceMappingURL=helpers.js.map","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target)\n : htmlTreeAsString(handlerData.event);\n }\n catch (e) {\n target = '';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n var client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n if ('startSession' in hub) {\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible'. See\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3207.\n hub.startSession();\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function () {\n hub.startSession();\n hub.captureSession();\n },\n type: 'history',\n });\n }\n}\n//# sourceMappingURL=sdk.js.map","import React from \"react\";\nimport * as Sentry from \"@sentry/browser\";\nimport { t } from \"../../packages/excalidraw/i18n\";\nimport Trans from \"../../packages/excalidraw/components/Trans\";\n\ninterface TopErrorBoundaryState {\n hasError: boolean;\n sentryEventId: string;\n localStorage: string;\n}\n\nexport class TopErrorBoundary extends React.Component<\n any,\n TopErrorBoundaryState\n> {\n state: TopErrorBoundaryState = {\n hasError: false,\n sentryEventId: \"\",\n localStorage: \"\",\n };\n\n render() {\n return this.state.hasError ? this.errorSplash() : this.props.children;\n }\n\n componentDidCatch(error: Error, errorInfo: any) {\n const _localStorage: any = {};\n for (const [key, value] of Object.entries({ ...localStorage })) {\n try {\n _localStorage[key] = JSON.parse(value);\n } catch (error: any) {\n _localStorage[key] = value;\n }\n }\n\n Sentry.withScope((scope) => {\n scope.setExtras(errorInfo);\n const eventId = Sentry.captureException(error);\n\n this.setState((state) => ({\n hasError: true,\n sentryEventId: eventId,\n localStorage: JSON.stringify(_localStorage),\n }));\n });\n }\n\n private selectTextArea(event: React.MouseEvent) {\n if (event.target !== document.activeElement) {\n event.preventDefault();\n (event.target as HTMLTextAreaElement).select();\n }\n }\n\n private async createGithubIssue() {\n let body = \"\";\n try {\n const templateStrFn = (\n await import(\n /* webpackChunkName: \"bug-issue-template\" */ \"../bug-issue-template\"\n )\n ).default;\n body = encodeURIComponent(templateStrFn(this.state.sentryEventId));\n } catch (error: any) {\n console.error(error);\n }\n\n window.open(\n `https://github.com/excalidraw/excalidraw/issues/new?body=${body}`,\n );\n }\n\n private errorSplash() {\n return (\n
    \n
    \n
    \n (\n \n )}\n />\n
    \n
    \n (\n {\n try {\n localStorage.clear();\n window.location.reload();\n } catch (error: any) {\n console.error(error);\n }\n }}\n >\n {el}\n \n )}\n />\n
    \n
    \n \n ⚠️\n \n {t(\"errorSplash.clearCanvasCaveat\")}\n \n ⚠️\n \n
    \n
    \n
    \n
    \n {t(\"errorSplash.trackedToSentry\", {\n eventId: this.state.sentryEventId,\n })}\n
    \n
    \n (\n \n )}\n />\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n );\n }\n}\n","// time constants (ms)\nexport const SAVE_TO_LOCAL_STORAGE_TIMEOUT = 300;\nexport const INITIAL_SCENE_UPDATE_TIMEOUT = 5000;\nexport const FILE_UPLOAD_TIMEOUT = 300;\nexport const LOAD_IMAGES_TIMEOUT = 500;\nexport const SYNC_FULL_SCENE_INTERVAL_MS = 20000;\nexport const SYNC_BROWSER_TABS_TIMEOUT = 50;\nexport const CURSOR_SYNC_TIMEOUT = 33; // ~30fps\nexport const DELETED_ELEMENT_TIMEOUT = 24 * 60 * 60 * 1000; // 1 day\n\nexport const FILE_UPLOAD_MAX_BYTES = 3 * 1024 * 1024; // 3 MiB\n// 1 year (https://stackoverflow.com/a/25201898/927631)\nexport const FILE_CACHE_MAX_AGE_SEC = 31536000;\n\nexport const WS_EVENTS = {\n SERVER_VOLATILE: \"server-volatile-broadcast\",\n SERVER: \"server-broadcast\",\n USER_FOLLOW_CHANGE: \"user-follow\",\n USER_FOLLOW_ROOM_CHANGE: \"user-follow-room-change\",\n} as const;\n\nexport enum WS_SUBTYPES {\n INVALID_RESPONSE = \"INVALID_RESPONSE\",\n INIT = \"SCENE_INIT\",\n UPDATE = \"SCENE_UPDATE\",\n MOUSE_LOCATION = \"MOUSE_LOCATION\",\n IDLE_STATUS = \"IDLE_STATUS\",\n USER_VISIBLE_SCENE_BOUNDS = \"USER_VISIBLE_SCENE_BOUNDS\",\n}\n\nexport const FIREBASE_STORAGE_PREFIXES = {\n shareLinkFiles: `/files/shareLinks`,\n collabFiles: `/files/rooms`,\n};\n\nexport const ROOM_ID_BYTES = 10;\n\nexport const STORAGE_KEYS = {\n LOCAL_STORAGE_ELEMENTS: \"excalidraw\",\n LOCAL_STORAGE_APP_STATE: \"excalidraw-state\",\n LOCAL_STORAGE_COLLAB: \"excalidraw-collab\",\n LOCAL_STORAGE_THEME: \"excalidraw-theme\",\n VERSION_DATA_STATE: \"version-dataState\",\n VERSION_FILES: \"version-files\",\n\n IDB_LIBRARY: \"excalidraw-library\",\n\n // do not use apart from migrations\n __LEGACY_LOCAL_STORAGE_LIBRARY: \"excalidraw-library\",\n} as const;\n\nexport const COOKIES = {\n AUTH_STATE_COOKIE: \"excplus-auth\",\n} as const;\n\nexport const isExcalidrawPlusSignedUser = document.cookie.includes(\n COOKIES.AUTH_STATE_COOKIE,\n);\n","import { compressData } from \"../../packages/excalidraw/data/encode\";\nimport { newElementWith } from \"../../packages/excalidraw/element/mutateElement\";\nimport { isInitializedImageElement } from \"../../packages/excalidraw/element/typeChecks\";\nimport {\n ExcalidrawElement,\n ExcalidrawImageElement,\n FileId,\n InitializedExcalidrawImageElement,\n} from \"../../packages/excalidraw/element/types\";\nimport { t } from \"../../packages/excalidraw/i18n\";\nimport {\n BinaryFileData,\n BinaryFileMetadata,\n ExcalidrawImperativeAPI,\n BinaryFiles,\n} from \"../../packages/excalidraw/types\";\n\nexport class FileManager {\n /** files being fetched */\n private fetchingFiles = new Map();\n /** files being saved */\n private savingFiles = new Map();\n /* files already saved to persistent storage */\n private savedFiles = new Map();\n private erroredFiles = new Map();\n\n private _getFiles;\n private _saveFiles;\n\n constructor({\n getFiles,\n saveFiles,\n }: {\n getFiles: (fileIds: FileId[]) => Promise<{\n loadedFiles: BinaryFileData[];\n erroredFiles: Map;\n }>;\n saveFiles: (data: { addedFiles: Map }) => Promise<{\n savedFiles: Map;\n erroredFiles: Map;\n }>;\n }) {\n this._getFiles = getFiles;\n this._saveFiles = saveFiles;\n }\n\n /**\n * returns whether file is already saved or being processed\n */\n isFileHandled = (id: FileId) => {\n return (\n this.savedFiles.has(id) ||\n this.fetchingFiles.has(id) ||\n this.savingFiles.has(id) ||\n this.erroredFiles.has(id)\n );\n };\n\n isFileSaved = (id: FileId) => {\n return this.savedFiles.has(id);\n };\n\n saveFiles = async ({\n elements,\n files,\n }: {\n elements: readonly ExcalidrawElement[];\n files: BinaryFiles;\n }) => {\n const addedFiles: Map = new Map();\n\n for (const element of elements) {\n if (\n isInitializedImageElement(element) &&\n files[element.fileId] &&\n !this.isFileHandled(element.fileId)\n ) {\n addedFiles.set(element.fileId, files[element.fileId]);\n this.savingFiles.set(element.fileId, true);\n }\n }\n\n try {\n const { savedFiles, erroredFiles } = await this._saveFiles({\n addedFiles,\n });\n\n for (const [fileId] of savedFiles) {\n this.savedFiles.set(fileId, true);\n }\n\n return {\n savedFiles,\n erroredFiles,\n };\n } finally {\n for (const [fileId] of addedFiles) {\n this.savingFiles.delete(fileId);\n }\n }\n };\n\n getFiles = async (\n ids: FileId[],\n ): Promise<{\n loadedFiles: BinaryFileData[];\n erroredFiles: Map;\n }> => {\n if (!ids.length) {\n return {\n loadedFiles: [],\n erroredFiles: new Map(),\n };\n }\n for (const id of ids) {\n this.fetchingFiles.set(id, true);\n }\n\n try {\n const { loadedFiles, erroredFiles } = await this._getFiles(ids);\n\n for (const file of loadedFiles) {\n this.savedFiles.set(file.id, true);\n }\n for (const [fileId] of erroredFiles) {\n this.erroredFiles.set(fileId, true);\n }\n\n return { loadedFiles, erroredFiles };\n } finally {\n for (const id of ids) {\n this.fetchingFiles.delete(id);\n }\n }\n };\n\n /** a file element prevents unload only if it's being saved regardless of\n * its `status`. This ensures that elements who for any reason haven't\n * beed set to `saved` status don't prevent unload in future sessions.\n * Technically we should prevent unload when the origin client haven't\n * yet saved the `status` update to storage, but that should be taken care\n * of during regular beforeUnload unsaved files check.\n */\n shouldPreventUnload = (elements: readonly ExcalidrawElement[]) => {\n return elements.some((element) => {\n return (\n isInitializedImageElement(element) &&\n !element.isDeleted &&\n this.savingFiles.has(element.fileId)\n );\n });\n };\n\n /**\n * helper to determine if image element status needs updating\n */\n shouldUpdateImageElementStatus = (\n element: ExcalidrawElement,\n ): element is InitializedExcalidrawImageElement => {\n return (\n isInitializedImageElement(element) &&\n this.isFileSaved(element.fileId) &&\n element.status === \"pending\"\n );\n };\n\n reset() {\n this.fetchingFiles.clear();\n this.savingFiles.clear();\n this.savedFiles.clear();\n this.erroredFiles.clear();\n }\n}\n\nexport const encodeFilesForUpload = async ({\n files,\n maxBytes,\n encryptionKey,\n}: {\n files: Map;\n maxBytes: number;\n encryptionKey: string;\n}) => {\n const processedFiles: {\n id: FileId;\n buffer: Uint8Array;\n }[] = [];\n\n for (const [id, fileData] of files) {\n const buffer = new TextEncoder().encode(fileData.dataURL);\n\n const encodedFile = await compressData(buffer, {\n encryptionKey,\n metadata: {\n id,\n mimeType: fileData.mimeType,\n created: Date.now(),\n lastRetrieved: Date.now(),\n },\n });\n\n if (buffer.byteLength > maxBytes) {\n throw new Error(\n t(\"errors.fileTooBig\", {\n maxSize: `${Math.trunc(maxBytes / 1024 / 1024)}MB`,\n }),\n );\n }\n\n processedFiles.push({\n id,\n buffer: encodedFile,\n });\n }\n\n return processedFiles;\n};\n\nexport const updateStaleImageStatuses = (params: {\n excalidrawAPI: ExcalidrawImperativeAPI;\n erroredFiles: Map;\n elements: readonly ExcalidrawElement[];\n}) => {\n if (!params.erroredFiles.size) {\n return;\n }\n params.excalidrawAPI.updateScene({\n elements: params.excalidrawAPI\n .getSceneElementsIncludingDeleted()\n .map((element) => {\n if (\n isInitializedImageElement(element) &&\n params.erroredFiles.has(element.fileId)\n ) {\n return newElementWith(element, {\n status: \"error\",\n });\n }\n return element;\n }),\n });\n};\n","import { PRECEDING_ELEMENT_KEY } from \"../../packages/excalidraw/constants\";\nimport { ExcalidrawElement } from \"../../packages/excalidraw/element/types\";\nimport { AppState } from \"../../packages/excalidraw/types\";\nimport { arrayToMapWithIndex } from \"../../packages/excalidraw/utils\";\n\nexport type ReconciledElements = readonly ExcalidrawElement[] & {\n _brand: \"reconciledElements\";\n};\n\nexport type BroadcastedExcalidrawElement = ExcalidrawElement & {\n [PRECEDING_ELEMENT_KEY]?: string;\n};\n\nconst shouldDiscardRemoteElement = (\n localAppState: AppState,\n local: ExcalidrawElement | undefined,\n remote: BroadcastedExcalidrawElement,\n): boolean => {\n if (\n local &&\n // local element is being edited\n (local.id === localAppState.editingElement?.id ||\n local.id === localAppState.resizingElement?.id ||\n local.id === localAppState.draggingElement?.id ||\n // local element is newer\n local.version > remote.version ||\n // resolve conflicting edits deterministically by taking the one with\n // the lowest versionNonce\n (local.version === remote.version &&\n local.versionNonce < remote.versionNonce))\n ) {\n return true;\n }\n return false;\n};\n\nexport const reconcileElements = (\n localElements: readonly ExcalidrawElement[],\n remoteElements: readonly BroadcastedExcalidrawElement[],\n localAppState: AppState,\n): ReconciledElements => {\n const localElementsData =\n arrayToMapWithIndex(localElements);\n\n const reconciledElements: ExcalidrawElement[] = localElements.slice();\n\n const duplicates = new WeakMap();\n\n let cursor = 0;\n let offset = 0;\n\n let remoteElementIdx = -1;\n for (const remoteElement of remoteElements) {\n remoteElementIdx++;\n\n const local = localElementsData.get(remoteElement.id);\n\n if (shouldDiscardRemoteElement(localAppState, local?.[0], remoteElement)) {\n if (remoteElement[PRECEDING_ELEMENT_KEY]) {\n delete remoteElement[PRECEDING_ELEMENT_KEY];\n }\n\n continue;\n }\n\n // Mark duplicate for removal as it'll be replaced with the remote element\n if (local) {\n // Unless the remote and local elements are the same element in which case\n // we need to keep it as we'd otherwise discard it from the resulting\n // array.\n if (local[0] === remoteElement) {\n continue;\n }\n duplicates.set(local[0], true);\n }\n\n // parent may not be defined in case the remote client is running an older\n // excalidraw version\n const parent =\n remoteElement[PRECEDING_ELEMENT_KEY] ||\n remoteElements[remoteElementIdx - 1]?.id ||\n null;\n\n if (parent != null) {\n delete remoteElement[PRECEDING_ELEMENT_KEY];\n\n // ^ indicates the element is the first in elements array\n if (parent === \"^\") {\n offset++;\n if (cursor === 0) {\n reconciledElements.unshift(remoteElement);\n localElementsData.set(remoteElement.id, [\n remoteElement,\n cursor - offset,\n ]);\n } else {\n reconciledElements.splice(cursor + 1, 0, remoteElement);\n localElementsData.set(remoteElement.id, [\n remoteElement,\n cursor + 1 - offset,\n ]);\n cursor++;\n }\n } else {\n let idx = localElementsData.has(parent)\n ? localElementsData.get(parent)![1]\n : null;\n if (idx != null) {\n idx += offset;\n }\n if (idx != null && idx >= cursor) {\n reconciledElements.splice(idx + 1, 0, remoteElement);\n offset++;\n localElementsData.set(remoteElement.id, [\n remoteElement,\n idx + 1 - offset,\n ]);\n cursor = idx + 1;\n } else if (idx != null) {\n reconciledElements.splice(cursor + 1, 0, remoteElement);\n offset++;\n localElementsData.set(remoteElement.id, [\n remoteElement,\n cursor + 1 - offset,\n ]);\n cursor++;\n } else {\n reconciledElements.push(remoteElement);\n localElementsData.set(remoteElement.id, [\n remoteElement,\n reconciledElements.length - 1 - offset,\n ]);\n }\n }\n // no parent z-index information, local element exists → replace in place\n } else if (local) {\n reconciledElements[local[1]] = remoteElement;\n localElementsData.set(remoteElement.id, [remoteElement, local[1]]);\n // otherwise push to the end\n } else {\n reconciledElements.push(remoteElement);\n localElementsData.set(remoteElement.id, [\n remoteElement,\n reconciledElements.length - 1 - offset,\n ]);\n }\n }\n\n const ret: readonly ExcalidrawElement[] = reconciledElements.filter(\n (element) => !duplicates.has(element),\n );\n\n return ret as ReconciledElements;\n};\n","import {\n ExcalidrawElement,\n FileId,\n} from \"../../packages/excalidraw/element/types\";\nimport { getSceneVersion } from \"../../packages/excalidraw/element\";\nimport Portal from \"../collab/Portal\";\nimport { restoreElements } from \"../../packages/excalidraw/data/restore\";\nimport {\n AppState,\n BinaryFileData,\n BinaryFileMetadata,\n DataURL,\n} from \"../../packages/excalidraw/types\";\nimport { FILE_CACHE_MAX_AGE_SEC } from \"../app_constants\";\nimport { decompressData } from \"../../packages/excalidraw/data/encode\";\nimport {\n encryptData,\n decryptData,\n} from \"../../packages/excalidraw/data/encryption\";\nimport { MIME_TYPES } from \"../../packages/excalidraw/constants\";\nimport { reconcileElements } from \"../collab/reconciliation\";\nimport { getSyncableElements, SyncableExcalidrawElement } from \".\";\nimport { ResolutionType } from \"../../packages/excalidraw/utility-types\";\nimport type { Socket } from \"socket.io-client\";\n\n// private\n// -----------------------------------------------------------------------------\n\nlet FIREBASE_CONFIG: Record;\ntry {\n FIREBASE_CONFIG = JSON.parse(import.meta.env.VITE_APP_FIREBASE_CONFIG);\n} catch (error: any) {\n console.warn(\n `Error JSON parsing firebase config. Supplied value: ${\n import.meta.env.VITE_APP_FIREBASE_CONFIG\n }`,\n );\n FIREBASE_CONFIG = {};\n}\n\nlet firebasePromise: Promise | null =\n null;\nlet firestorePromise: Promise | null | true = null;\nlet firebaseStoragePromise: Promise | null | true = null;\n\nlet isFirebaseInitialized = false;\n\nconst _loadFirebase = async () => {\n const firebase = (\n await import(/* webpackChunkName: \"firebase\" */ \"firebase/app\")\n ).default;\n\n if (!isFirebaseInitialized) {\n try {\n firebase.initializeApp(FIREBASE_CONFIG);\n } catch (error: any) {\n // trying initialize again throws. Usually this is harmless, and happens\n // mainly in dev (HMR)\n if (error.code === \"app/duplicate-app\") {\n console.warn(error.name, error.code);\n } else {\n throw error;\n }\n }\n isFirebaseInitialized = true;\n }\n\n return firebase;\n};\n\nconst _getFirebase = async (): Promise<\n typeof import(\"firebase/app\").default\n> => {\n if (!firebasePromise) {\n firebasePromise = _loadFirebase();\n }\n return firebasePromise;\n};\n\n// -----------------------------------------------------------------------------\n\nconst loadFirestore = async () => {\n const firebase = await _getFirebase();\n if (!firestorePromise) {\n firestorePromise = import(\n /* webpackChunkName: \"firestore\" */ \"firebase/firestore\"\n );\n }\n if (firestorePromise !== true) {\n await firestorePromise;\n firestorePromise = true;\n }\n return firebase;\n};\n\nexport const loadFirebaseStorage = async () => {\n const firebase = await _getFirebase();\n if (!firebaseStoragePromise) {\n firebaseStoragePromise = import(\n /* webpackChunkName: \"storage\" */ \"firebase/storage\"\n );\n }\n if (firebaseStoragePromise !== true) {\n await firebaseStoragePromise;\n firebaseStoragePromise = true;\n }\n return firebase;\n};\n\ninterface FirebaseStoredScene {\n sceneVersion: number;\n iv: firebase.default.firestore.Blob;\n ciphertext: firebase.default.firestore.Blob;\n}\n\nconst encryptElements = async (\n key: string,\n elements: readonly ExcalidrawElement[],\n): Promise<{ ciphertext: ArrayBuffer; iv: Uint8Array }> => {\n const json = JSON.stringify(elements);\n const encoded = new TextEncoder().encode(json);\n const { encryptedBuffer, iv } = await encryptData(key, encoded);\n\n return { ciphertext: encryptedBuffer, iv };\n};\n\nconst decryptElements = async (\n data: FirebaseStoredScene,\n roomKey: string,\n): Promise => {\n const ciphertext = data.ciphertext.toUint8Array();\n const iv = data.iv.toUint8Array();\n\n const decrypted = await decryptData(iv, ciphertext, roomKey);\n const decodedData = new TextDecoder(\"utf-8\").decode(\n new Uint8Array(decrypted),\n );\n return JSON.parse(decodedData);\n};\n\nclass FirebaseSceneVersionCache {\n private static cache = new WeakMap();\n static get = (socket: Socket) => {\n return FirebaseSceneVersionCache.cache.get(socket);\n };\n static set = (\n socket: Socket,\n elements: readonly SyncableExcalidrawElement[],\n ) => {\n FirebaseSceneVersionCache.cache.set(socket, getSceneVersion(elements));\n };\n}\n\nexport const isSavedToFirebase = (\n portal: Portal,\n elements: readonly ExcalidrawElement[],\n): boolean => {\n if (portal.socket && portal.roomId && portal.roomKey) {\n const sceneVersion = getSceneVersion(elements);\n\n return FirebaseSceneVersionCache.get(portal.socket) === sceneVersion;\n }\n // if no room exists, consider the room saved so that we don't unnecessarily\n // prevent unload (there's nothing we could do at that point anyway)\n return true;\n};\n\nexport const saveFilesToFirebase = async ({\n prefix,\n files,\n}: {\n prefix: string;\n files: { id: FileId; buffer: Uint8Array }[];\n}) => {\n const firebase = await loadFirebaseStorage();\n\n const erroredFiles = new Map();\n const savedFiles = new Map();\n\n await Promise.all(\n files.map(async ({ id, buffer }) => {\n try {\n await firebase\n .storage()\n .ref(`${prefix}/${id}`)\n .put(\n new Blob([buffer], {\n type: MIME_TYPES.binary,\n }),\n {\n cacheControl: `public, max-age=${FILE_CACHE_MAX_AGE_SEC}`,\n },\n );\n savedFiles.set(id, true);\n } catch (error: any) {\n erroredFiles.set(id, true);\n }\n }),\n );\n\n return { savedFiles, erroredFiles };\n};\n\nconst createFirebaseSceneDocument = async (\n firebase: ResolutionType,\n elements: readonly SyncableExcalidrawElement[],\n roomKey: string,\n) => {\n const sceneVersion = getSceneVersion(elements);\n const { ciphertext, iv } = await encryptElements(roomKey, elements);\n return {\n sceneVersion,\n ciphertext: firebase.firestore.Blob.fromUint8Array(\n new Uint8Array(ciphertext),\n ),\n iv: firebase.firestore.Blob.fromUint8Array(iv),\n } as FirebaseStoredScene;\n};\n\nexport const saveToFirebase = async (\n portal: Portal,\n elements: readonly SyncableExcalidrawElement[],\n appState: AppState,\n) => {\n const { roomId, roomKey, socket } = portal;\n if (\n // bail if no room exists as there's nothing we can do at this point\n !roomId ||\n !roomKey ||\n !socket ||\n isSavedToFirebase(portal, elements)\n ) {\n return false;\n }\n\n const firebase = await loadFirestore();\n const firestore = firebase.firestore();\n\n const docRef = firestore.collection(\"scenes\").doc(roomId);\n\n const savedData = await firestore.runTransaction(async (transaction) => {\n const snapshot = await transaction.get(docRef);\n\n if (!snapshot.exists) {\n const sceneDocument = await createFirebaseSceneDocument(\n firebase,\n elements,\n roomKey,\n );\n\n transaction.set(docRef, sceneDocument);\n\n return {\n elements,\n reconciledElements: null,\n };\n }\n\n const prevDocData = snapshot.data() as FirebaseStoredScene;\n const prevElements = getSyncableElements(\n await decryptElements(prevDocData, roomKey),\n );\n\n const reconciledElements = getSyncableElements(\n reconcileElements(elements, prevElements, appState),\n );\n\n const sceneDocument = await createFirebaseSceneDocument(\n firebase,\n reconciledElements,\n roomKey,\n );\n\n transaction.update(docRef, sceneDocument);\n return {\n elements,\n reconciledElements,\n };\n });\n\n FirebaseSceneVersionCache.set(socket, savedData.elements);\n\n return { reconciledElements: savedData.reconciledElements };\n};\n\nexport const loadFromFirebase = async (\n roomId: string,\n roomKey: string,\n socket: Socket | null,\n): Promise => {\n const firebase = await loadFirestore();\n const db = firebase.firestore();\n\n const docRef = db.collection(\"scenes\").doc(roomId);\n const doc = await docRef.get();\n if (!doc.exists) {\n return null;\n }\n const storedScene = doc.data() as FirebaseStoredScene;\n const elements = getSyncableElements(\n await decryptElements(storedScene, roomKey),\n );\n\n if (socket) {\n FirebaseSceneVersionCache.set(socket, elements);\n }\n\n return restoreElements(elements, null);\n};\n\nexport const loadFilesFromFirebase = async (\n prefix: string,\n decryptionKey: string,\n filesIds: readonly FileId[],\n) => {\n const loadedFiles: BinaryFileData[] = [];\n const erroredFiles = new Map();\n\n await Promise.all(\n [...new Set(filesIds)].map(async (id) => {\n try {\n const url = `https://firebasestorage.googleapis.com/v0/b/${\n FIREBASE_CONFIG.storageBucket\n }/o/${encodeURIComponent(prefix.replace(/^\\//, \"\"))}%2F${id}`;\n const response = await fetch(`${url}?alt=media`);\n if (response.status < 400) {\n const arrayBuffer = await response.arrayBuffer();\n\n const { data, metadata } = await decompressData(\n new Uint8Array(arrayBuffer),\n {\n decryptionKey,\n },\n );\n\n const dataURL = new TextDecoder().decode(data) as DataURL;\n\n loadedFiles.push({\n mimeType: metadata.mimeType || MIME_TYPES.binary,\n id,\n dataURL,\n created: metadata?.created || Date.now(),\n lastRetrieved: metadata?.created || Date.now(),\n });\n } else {\n erroredFiles.set(id, true);\n }\n } catch (error: any) {\n erroredFiles.set(id, true);\n console.error(error);\n }\n }),\n );\n\n return { loadedFiles, erroredFiles };\n};\n","import {\n compressData,\n decompressData,\n} from \"../../packages/excalidraw/data/encode\";\nimport {\n decryptData,\n generateEncryptionKey,\n IV_LENGTH_BYTES,\n} from \"../../packages/excalidraw/data/encryption\";\nimport { serializeAsJSON } from \"../../packages/excalidraw/data/json\";\nimport { restore } from \"../../packages/excalidraw/data/restore\";\nimport { ImportedDataState } from \"../../packages/excalidraw/data/types\";\nimport { SceneBounds } from \"../../packages/excalidraw/element/bounds\";\nimport { isInvisiblySmallElement } from \"../../packages/excalidraw/element/sizeHelpers\";\nimport { isInitializedImageElement } from \"../../packages/excalidraw/element/typeChecks\";\nimport {\n ExcalidrawElement,\n FileId,\n} from \"../../packages/excalidraw/element/types\";\nimport { t } from \"../../packages/excalidraw/i18n\";\nimport {\n AppState,\n BinaryFileData,\n BinaryFiles,\n SocketId,\n UserIdleState,\n} from \"../../packages/excalidraw/types\";\nimport { bytesToHexString } from \"../../packages/excalidraw/utils\";\nimport {\n DELETED_ELEMENT_TIMEOUT,\n FILE_UPLOAD_MAX_BYTES,\n ROOM_ID_BYTES,\n WS_SUBTYPES,\n} from \"../app_constants\";\nimport { encodeFilesForUpload } from \"./FileManager\";\nimport { saveFilesToFirebase } from \"./firebase\";\n\nexport type SyncableExcalidrawElement = ExcalidrawElement & {\n _brand: \"SyncableExcalidrawElement\";\n};\n\nexport const isSyncableElement = (\n element: ExcalidrawElement,\n): element is SyncableExcalidrawElement => {\n if (element.isDeleted) {\n if (element.updated > Date.now() - DELETED_ELEMENT_TIMEOUT) {\n return true;\n }\n return false;\n }\n return !isInvisiblySmallElement(element);\n};\n\nexport const getSyncableElements = (elements: readonly ExcalidrawElement[]) =>\n elements.filter((element) =>\n isSyncableElement(element),\n ) as SyncableExcalidrawElement[];\n\nconst BACKEND_V2_GET = import.meta.env.VITE_APP_BACKEND_V2_GET_URL;\nconst BACKEND_V2_POST = import.meta.env.VITE_APP_BACKEND_V2_POST_URL;\n\nconst generateRoomId = async () => {\n const buffer = new Uint8Array(ROOM_ID_BYTES);\n window.crypto.getRandomValues(buffer);\n return bytesToHexString(buffer);\n};\n\nexport type EncryptedData = {\n data: ArrayBuffer;\n iv: Uint8Array;\n};\n\nexport type SocketUpdateDataSource = {\n INVALID_RESPONSE: {\n type: WS_SUBTYPES.INVALID_RESPONSE;\n };\n SCENE_INIT: {\n type: WS_SUBTYPES.INIT;\n payload: {\n elements: readonly ExcalidrawElement[];\n };\n };\n SCENE_UPDATE: {\n type: WS_SUBTYPES.UPDATE;\n payload: {\n elements: readonly ExcalidrawElement[];\n };\n };\n MOUSE_LOCATION: {\n type: WS_SUBTYPES.MOUSE_LOCATION;\n payload: {\n socketId: SocketId;\n pointer: { x: number; y: number; tool: \"pointer\" | \"laser\" };\n button: \"down\" | \"up\";\n selectedElementIds: AppState[\"selectedElementIds\"];\n username: string;\n };\n };\n USER_VISIBLE_SCENE_BOUNDS: {\n type: WS_SUBTYPES.USER_VISIBLE_SCENE_BOUNDS;\n payload: {\n socketId: SocketId;\n username: string;\n sceneBounds: SceneBounds;\n };\n };\n IDLE_STATUS: {\n type: WS_SUBTYPES.IDLE_STATUS;\n payload: {\n socketId: SocketId;\n userState: UserIdleState;\n username: string;\n };\n };\n};\n\nexport type SocketUpdateDataIncoming =\n SocketUpdateDataSource[keyof SocketUpdateDataSource];\n\nexport type SocketUpdateData =\n SocketUpdateDataSource[keyof SocketUpdateDataSource] & {\n _brand: \"socketUpdateData\";\n };\n\nconst RE_COLLAB_LINK = /^#room=([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+)$/;\n\nexport const isCollaborationLink = (link: string) => {\n const hash = new URL(link).hash;\n return RE_COLLAB_LINK.test(hash);\n};\n\nexport const getCollaborationLinkData = (link: string) => {\n const hash = new URL(link).hash;\n const match = hash.match(RE_COLLAB_LINK);\n if (match && match[2].length !== 22) {\n window.alert(t(\"alerts.invalidEncryptionKey\"));\n return null;\n }\n return match ? { roomId: match[1], roomKey: match[2] } : null;\n};\n\nexport const generateCollaborationLinkData = async () => {\n const roomId = await generateRoomId();\n const roomKey = await generateEncryptionKey();\n\n if (!roomKey) {\n throw new Error(\"Couldn't generate room key\");\n }\n\n return { roomId, roomKey };\n};\n\nexport const getCollaborationLink = (data: {\n roomId: string;\n roomKey: string;\n}) => {\n return `${window.location.origin}${window.location.pathname}#room=${data.roomId},${data.roomKey}`;\n};\n\n/**\n * Decodes shareLink data using the legacy buffer format.\n * @deprecated\n */\nconst legacy_decodeFromBackend = async ({\n buffer,\n decryptionKey,\n}: {\n buffer: ArrayBuffer;\n decryptionKey: string;\n}) => {\n let decrypted: ArrayBuffer;\n\n try {\n // Buffer should contain both the IV (fixed length) and encrypted data\n const iv = buffer.slice(0, IV_LENGTH_BYTES);\n const encrypted = buffer.slice(IV_LENGTH_BYTES, buffer.byteLength);\n decrypted = await decryptData(new Uint8Array(iv), encrypted, decryptionKey);\n } catch (error: any) {\n // Fixed IV (old format, backward compatibility)\n const fixedIv = new Uint8Array(IV_LENGTH_BYTES);\n decrypted = await decryptData(fixedIv, buffer, decryptionKey);\n }\n\n // We need to convert the decrypted array buffer to a string\n const string = new window.TextDecoder(\"utf-8\").decode(\n new Uint8Array(decrypted),\n );\n const data: ImportedDataState = JSON.parse(string);\n\n return {\n elements: data.elements || null,\n appState: data.appState || null,\n };\n};\n\nconst importFromBackend = async (\n id: string,\n decryptionKey: string,\n): Promise => {\n try {\n const response = await fetch(`${BACKEND_V2_GET}${id}`);\n\n if (!response.ok) {\n window.alert(t(\"alerts.importBackendFailed\"));\n return {};\n }\n const buffer = await response.arrayBuffer();\n\n try {\n const { data: decodedBuffer } = await decompressData(\n new Uint8Array(buffer),\n {\n decryptionKey,\n },\n );\n const data: ImportedDataState = JSON.parse(\n new TextDecoder().decode(decodedBuffer),\n );\n\n return {\n elements: data.elements || null,\n appState: data.appState || null,\n };\n } catch (error: any) {\n console.warn(\n \"error when decoding shareLink data using the new format:\",\n error,\n );\n return legacy_decodeFromBackend({ buffer, decryptionKey });\n }\n } catch (error: any) {\n window.alert(t(\"alerts.importBackendFailed\"));\n console.error(error);\n return {};\n }\n};\n\nexport const loadScene = async (\n id: string | null,\n privateKey: string | null,\n // Supply local state even if importing from backend to ensure we restore\n // localStorage user settings which we do not persist on server.\n // Non-optional so we don't forget to pass it even if `undefined`.\n localDataState: ImportedDataState | undefined | null,\n) => {\n let data;\n if (id != null && privateKey != null) {\n // the private key is used to decrypt the content from the server, take\n // extra care not to leak it\n data = restore(\n await importFromBackend(id, privateKey),\n localDataState?.appState,\n localDataState?.elements,\n { repairBindings: true, refreshDimensions: false },\n );\n } else {\n data = restore(localDataState || null, null, null, {\n repairBindings: true,\n });\n }\n\n return {\n elements: data.elements,\n appState: data.appState,\n // note: this will always be empty because we're not storing files\n // in the scene database/localStorage, and instead fetch them async\n // from a different database\n files: data.files,\n commitToHistory: false,\n };\n};\n\ntype ExportToBackendResult =\n | { url: null; errorMessage: string }\n | { url: string; errorMessage: null };\n\nexport const exportToBackend = async (\n elements: readonly ExcalidrawElement[],\n appState: Partial,\n files: BinaryFiles,\n): Promise => {\n const encryptionKey = await generateEncryptionKey(\"string\");\n\n const payload = await compressData(\n new TextEncoder().encode(\n serializeAsJSON(elements, appState, files, \"database\"),\n ),\n { encryptionKey },\n );\n\n try {\n const filesMap = new Map();\n for (const element of elements) {\n if (isInitializedImageElement(element) && files[element.fileId]) {\n filesMap.set(element.fileId, files[element.fileId]);\n }\n }\n\n const filesToUpload = await encodeFilesForUpload({\n files: filesMap,\n encryptionKey,\n maxBytes: FILE_UPLOAD_MAX_BYTES,\n });\n\n const response = await fetch(BACKEND_V2_POST, {\n method: \"POST\",\n body: payload.buffer,\n });\n const json = await response.json();\n if (json.id) {\n const url = new URL(window.location.href);\n // We need to store the key (and less importantly the id) as hash instead\n // of queryParam in order to never send it to the server\n url.hash = `json=${json.id},${encryptionKey}`;\n const urlString = url.toString();\n\n await saveFilesToFirebase({\n prefix: `/files/shareLinks/${json.id}`,\n files: filesToUpload,\n });\n\n return { url: urlString, errorMessage: null };\n } else if (json.error_class === \"RequestTooLargeError\") {\n return {\n url: null,\n errorMessage: t(\"alerts.couldNotCreateShareableLinkTooBig\"),\n };\n }\n\n return { url: null, errorMessage: t(\"alerts.couldNotCreateShareableLink\") };\n } catch (error: any) {\n console.error(error);\n\n return { url: null, errorMessage: t(\"alerts.couldNotCreateShareableLink\") };\n }\n};\n","import { ExcalidrawElement } from \"../../packages/excalidraw/element/types\";\nimport { AppState } from \"../../packages/excalidraw/types\";\nimport {\n clearAppStateForLocalStorage,\n getDefaultAppState,\n} from \"../../packages/excalidraw/appState\";\nimport { clearElementsForLocalStorage } from \"../../packages/excalidraw/element\";\nimport { STORAGE_KEYS } from \"../app_constants\";\n\nexport const saveUsernameToLocalStorage = (username: string) => {\n try {\n localStorage.setItem(\n STORAGE_KEYS.LOCAL_STORAGE_COLLAB,\n JSON.stringify({ username }),\n );\n } catch (error: any) {\n // Unable to access window.localStorage\n console.error(error);\n }\n};\n\nexport const importUsernameFromLocalStorage = (): string | null => {\n try {\n const data = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_COLLAB);\n if (data) {\n return JSON.parse(data).username;\n }\n } catch (error: any) {\n // Unable to access localStorage\n console.error(error);\n }\n\n return null;\n};\n\nexport const importFromLocalStorage = () => {\n let savedElements = null;\n let savedState = null;\n\n try {\n savedElements = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_ELEMENTS);\n savedState = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_APP_STATE);\n } catch (error: any) {\n // Unable to access localStorage\n console.error(error);\n }\n\n let elements: ExcalidrawElement[] = [];\n if (savedElements) {\n try {\n elements = clearElementsForLocalStorage(JSON.parse(savedElements));\n } catch (error: any) {\n console.error(error);\n // Do nothing because elements array is already empty\n }\n }\n\n let appState = null;\n if (savedState) {\n try {\n appState = {\n ...getDefaultAppState(),\n ...clearAppStateForLocalStorage(\n JSON.parse(savedState) as Partial,\n ),\n };\n } catch (error: any) {\n console.error(error);\n // Do nothing because appState is already null\n }\n }\n return { elements, appState };\n};\n\nexport const getElementsStorageSize = () => {\n try {\n const elements = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_ELEMENTS);\n const elementsSize = elements?.length || 0;\n return elementsSize;\n } catch (error: any) {\n console.error(error);\n return 0;\n }\n};\n\nexport const getTotalStorageSize = () => {\n try {\n const appState = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_APP_STATE);\n const collab = localStorage.getItem(STORAGE_KEYS.LOCAL_STORAGE_COLLAB);\n\n const appStateSize = appState?.length || 0;\n const collabSize = collab?.length || 0;\n\n return appStateSize + collabSize + getElementsStorageSize();\n } catch (error: any) {\n console.error(error);\n return 0;\n }\n};\n","import {\n isSyncableElement,\n SocketUpdateData,\n SocketUpdateDataSource,\n} from \"../data\";\n\nimport { TCollabClass } from \"./Collab\";\n\nimport { ExcalidrawElement } from \"../../packages/excalidraw/element/types\";\nimport { WS_EVENTS, FILE_UPLOAD_TIMEOUT, WS_SUBTYPES } from \"../app_constants\";\nimport {\n OnUserFollowedPayload,\n SocketId,\n UserIdleState,\n} from \"../../packages/excalidraw/types\";\nimport { trackEvent } from \"../../packages/excalidraw/analytics\";\nimport throttle from \"lodash.throttle\";\nimport { newElementWith } from \"../../packages/excalidraw/element/mutateElement\";\nimport { BroadcastedExcalidrawElement } from \"./reconciliation\";\nimport { encryptData } from \"../../packages/excalidraw/data/encryption\";\nimport { PRECEDING_ELEMENT_KEY } from \"../../packages/excalidraw/constants\";\nimport type { Socket } from \"socket.io-client\";\n\nclass Portal {\n collab: TCollabClass;\n socket: Socket | null = null;\n socketInitialized: boolean = false; // we don't want the socket to emit any updates until it is fully initialized\n roomId: string | null = null;\n roomKey: string | null = null;\n broadcastedElementVersions: Map = new Map();\n\n constructor(collab: TCollabClass) {\n this.collab = collab;\n }\n\n open(socket: Socket, id: string, key: string) {\n this.socket = socket;\n this.roomId = id;\n this.roomKey = key;\n\n // Initialize socket listeners\n this.socket.on(\"init-room\", () => {\n if (this.socket) {\n this.socket.emit(\"join-room\", this.roomId);\n trackEvent(\"share\", \"room joined\");\n }\n });\n this.socket.on(\"new-user\", async (_socketId: string) => {\n this.broadcastScene(\n WS_SUBTYPES.INIT,\n this.collab.getSceneElementsIncludingDeleted(),\n /* syncAll */ true,\n );\n });\n this.socket.on(\"room-user-change\", (clients: SocketId[]) => {\n this.collab.setCollaborators(clients);\n });\n\n return socket;\n }\n\n close() {\n if (!this.socket) {\n return;\n }\n this.queueFileUpload.flush();\n this.socket.close();\n this.socket = null;\n this.roomId = null;\n this.roomKey = null;\n this.socketInitialized = false;\n this.broadcastedElementVersions = new Map();\n }\n\n isOpen() {\n return !!(\n this.socketInitialized &&\n this.socket &&\n this.roomId &&\n this.roomKey\n );\n }\n\n async _broadcastSocketData(\n data: SocketUpdateData,\n volatile: boolean = false,\n roomId?: string,\n ) {\n if (this.isOpen()) {\n const json = JSON.stringify(data);\n const encoded = new TextEncoder().encode(json);\n const { encryptedBuffer, iv } = await encryptData(this.roomKey!, encoded);\n\n this.socket?.emit(\n volatile ? WS_EVENTS.SERVER_VOLATILE : WS_EVENTS.SERVER,\n roomId ?? this.roomId,\n encryptedBuffer,\n iv,\n );\n }\n }\n\n queueFileUpload = throttle(async () => {\n try {\n await this.collab.fileManager.saveFiles({\n elements: this.collab.excalidrawAPI.getSceneElementsIncludingDeleted(),\n files: this.collab.excalidrawAPI.getFiles(),\n });\n } catch (error: any) {\n if (error.name !== \"AbortError\") {\n this.collab.excalidrawAPI.updateScene({\n appState: {\n errorMessage: error.message,\n },\n });\n }\n }\n\n this.collab.excalidrawAPI.updateScene({\n elements: this.collab.excalidrawAPI\n .getSceneElementsIncludingDeleted()\n .map((element) => {\n if (this.collab.fileManager.shouldUpdateImageElementStatus(element)) {\n // this will signal collaborators to pull image data from server\n // (using mutation instead of newElementWith otherwise it'd break\n // in-progress dragging)\n return newElementWith(element, { status: \"saved\" });\n }\n return element;\n }),\n });\n }, FILE_UPLOAD_TIMEOUT);\n\n broadcastScene = async (\n updateType: WS_SUBTYPES.INIT | WS_SUBTYPES.UPDATE,\n allElements: readonly ExcalidrawElement[],\n syncAll: boolean,\n ) => {\n if (updateType === WS_SUBTYPES.INIT && !syncAll) {\n throw new Error(\"syncAll must be true when sending SCENE.INIT\");\n }\n\n // sync out only the elements we think we need to to save bandwidth.\n // periodically we'll resync the whole thing to make sure no one diverges\n // due to a dropped message (server goes down etc).\n const syncableElements = allElements.reduce(\n (acc, element: BroadcastedExcalidrawElement, idx, elements) => {\n if (\n (syncAll ||\n !this.broadcastedElementVersions.has(element.id) ||\n element.version >\n this.broadcastedElementVersions.get(element.id)!) &&\n isSyncableElement(element)\n ) {\n acc.push({\n ...element,\n // z-index info for the reconciler\n [PRECEDING_ELEMENT_KEY]: idx === 0 ? \"^\" : elements[idx - 1]?.id,\n });\n }\n return acc;\n },\n [] as BroadcastedExcalidrawElement[],\n );\n\n const data: SocketUpdateDataSource[typeof updateType] = {\n type: updateType,\n payload: {\n elements: syncableElements,\n },\n };\n\n for (const syncableElement of syncableElements) {\n this.broadcastedElementVersions.set(\n syncableElement.id,\n syncableElement.version,\n );\n }\n\n this.queueFileUpload();\n\n await this._broadcastSocketData(data as SocketUpdateData);\n };\n\n broadcastIdleChange = (userState: UserIdleState) => {\n if (this.socket?.id) {\n const data: SocketUpdateDataSource[\"IDLE_STATUS\"] = {\n type: WS_SUBTYPES.IDLE_STATUS,\n payload: {\n socketId: this.socket.id as SocketId,\n userState,\n username: this.collab.state.username,\n },\n };\n return this._broadcastSocketData(\n data as SocketUpdateData,\n true, // volatile\n );\n }\n };\n\n broadcastMouseLocation = (payload: {\n pointer: SocketUpdateDataSource[\"MOUSE_LOCATION\"][\"payload\"][\"pointer\"];\n button: SocketUpdateDataSource[\"MOUSE_LOCATION\"][\"payload\"][\"button\"];\n }) => {\n if (this.socket?.id) {\n const data: SocketUpdateDataSource[\"MOUSE_LOCATION\"] = {\n type: WS_SUBTYPES.MOUSE_LOCATION,\n payload: {\n socketId: this.socket.id as SocketId,\n pointer: payload.pointer,\n button: payload.button || \"up\",\n selectedElementIds:\n this.collab.excalidrawAPI.getAppState().selectedElementIds,\n username: this.collab.state.username,\n },\n };\n\n return this._broadcastSocketData(\n data as SocketUpdateData,\n true, // volatile\n );\n }\n };\n\n broadcastVisibleSceneBounds = (\n payload: {\n sceneBounds: SocketUpdateDataSource[\"USER_VISIBLE_SCENE_BOUNDS\"][\"payload\"][\"sceneBounds\"];\n },\n roomId: string,\n ) => {\n if (this.socket?.id) {\n const data: SocketUpdateDataSource[\"USER_VISIBLE_SCENE_BOUNDS\"] = {\n type: WS_SUBTYPES.USER_VISIBLE_SCENE_BOUNDS,\n payload: {\n socketId: this.socket.id as SocketId,\n username: this.collab.state.username,\n sceneBounds: payload.sceneBounds,\n },\n };\n\n return this._broadcastSocketData(\n data as SocketUpdateData,\n true, // volatile\n roomId,\n );\n }\n };\n\n broadcastUserFollowed = (payload: OnUserFollowedPayload) => {\n if (this.socket?.id) {\n this.socket.emit(WS_EVENTS.USER_FOLLOW_CHANGE, payload);\n }\n };\n}\n\nexport default Portal;\n","import { STORAGE_KEYS } from \"../app_constants\";\n\n// in-memory state (this tab's current state) versions. Currently just\n// timestamps of the last time the state was saved to browser storage.\nconst LOCAL_STATE_VERSIONS = {\n [STORAGE_KEYS.VERSION_DATA_STATE]: -1,\n [STORAGE_KEYS.VERSION_FILES]: -1,\n};\n\ntype BrowserStateTypes = keyof typeof LOCAL_STATE_VERSIONS;\n\nexport const isBrowserStorageStateNewer = (type: BrowserStateTypes) => {\n const storageTimestamp = JSON.parse(localStorage.getItem(type) || \"-1\");\n return storageTimestamp > LOCAL_STATE_VERSIONS[type];\n};\n\nexport const updateBrowserStateVersion = (type: BrowserStateTypes) => {\n const timestamp = Date.now();\n try {\n localStorage.setItem(type, JSON.stringify(timestamp));\n LOCAL_STATE_VERSIONS[type] = timestamp;\n } catch (error) {\n console.error(\"error while updating browser state verison\", error);\n }\n};\n\nexport const resetBrowserStateVersions = () => {\n try {\n for (const key of Object.keys(\n LOCAL_STATE_VERSIONS,\n ) as BrowserStateTypes[]) {\n const timestamp = -1;\n localStorage.setItem(key, JSON.stringify(timestamp));\n LOCAL_STATE_VERSIONS[key] = timestamp;\n }\n } catch (error) {\n console.error(\"error while resetting browser state verison\", error);\n }\n};\n","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import safariFix from 'safari-14-idb-fix';\n\nfunction promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const dbp = safariFix().then(() => {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n return promisifyRequest(request);\n });\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(customStore, callback) {\n return customStore('readonly', (store) => {\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\n // And openKeyCursor isn't supported by Safari.\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.key)).then(() => items);\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.value)).then(() => items);\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push([cursor.key, cursor.value])).then(() => items);\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","export class Locker {\n private locks = new Map();\n\n lock = (lockType: T) => {\n this.locks.set(lockType, true);\n };\n\n /** @returns whether no locks remaining */\n unlock = (lockType: T) => {\n this.locks.delete(lockType);\n return !this.isLocked();\n };\n\n /** @returns whether some (or specific) locks are present */\n isLocked(lockType?: T) {\n return lockType ? this.locks.has(lockType) : !!this.locks.size;\n }\n}\n","/**\n * This file deals with saving data state (appState, elements, images, ...)\n * locally to the browser.\n *\n * Notes:\n *\n * - DataState refers to full state of the app: appState, elements, images,\n * though some state is saved separately (collab username, library) for one\n * reason or another. We also save different data to different storage\n * (localStorage, indexedDB).\n */\n\nimport {\n createStore,\n entries,\n del,\n getMany,\n set,\n setMany,\n get,\n} from \"idb-keyval\";\nimport { clearAppStateForLocalStorage } from \"../../packages/excalidraw/appState\";\nimport { LibraryPersistedData } from \"../../packages/excalidraw/data/library\";\nimport { ImportedDataState } from \"../../packages/excalidraw/data/types\";\nimport { clearElementsForLocalStorage } from \"../../packages/excalidraw/element\";\nimport {\n ExcalidrawElement,\n FileId,\n} from \"../../packages/excalidraw/element/types\";\nimport {\n AppState,\n BinaryFileData,\n BinaryFiles,\n} from \"../../packages/excalidraw/types\";\nimport { MaybePromise } from \"../../packages/excalidraw/utility-types\";\nimport { debounce } from \"../../packages/excalidraw/utils\";\nimport { SAVE_TO_LOCAL_STORAGE_TIMEOUT, STORAGE_KEYS } from \"../app_constants\";\nimport { FileManager } from \"./FileManager\";\nimport { Locker } from \"./Locker\";\nimport { updateBrowserStateVersion } from \"./tabSync\";\n\nconst filesStore = createStore(\"files-db\", \"files-store\");\n\nclass LocalFileManager extends FileManager {\n clearObsoleteFiles = async (opts: { currentFileIds: FileId[] }) => {\n await entries(filesStore).then((entries) => {\n for (const [id, imageData] of entries as [FileId, BinaryFileData][]) {\n // if image is unused (not on canvas) & is older than 1 day, delete it\n // from storage. We check `lastRetrieved` we care about the last time\n // the image was used (loaded on canvas), not when it was initially\n // created.\n if (\n (!imageData.lastRetrieved ||\n Date.now() - imageData.lastRetrieved > 24 * 3600 * 1000) &&\n !opts.currentFileIds.includes(id as FileId)\n ) {\n del(id, filesStore);\n }\n }\n });\n };\n}\n\nconst saveDataStateToLocalStorage = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n) => {\n try {\n localStorage.setItem(\n STORAGE_KEYS.LOCAL_STORAGE_ELEMENTS,\n JSON.stringify(clearElementsForLocalStorage(elements)),\n );\n localStorage.setItem(\n STORAGE_KEYS.LOCAL_STORAGE_APP_STATE,\n JSON.stringify(clearAppStateForLocalStorage(appState)),\n );\n updateBrowserStateVersion(STORAGE_KEYS.VERSION_DATA_STATE);\n } catch (error: any) {\n // Unable to access window.localStorage\n console.error(error);\n }\n};\n\ntype SavingLockTypes = \"collaboration\";\n\nexport class LocalData {\n private static _save = debounce(\n async (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n onFilesSaved: () => void,\n ) => {\n saveDataStateToLocalStorage(elements, appState);\n\n await this.fileStorage.saveFiles({\n elements,\n files,\n });\n onFilesSaved();\n },\n SAVE_TO_LOCAL_STORAGE_TIMEOUT,\n );\n\n /** Saves DataState, including files. Bails if saving is paused */\n static save = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n onFilesSaved: () => void,\n ) => {\n // we need to make the `isSavePaused` check synchronously (undebounced)\n if (!this.isSavePaused()) {\n this._save(elements, appState, files, onFilesSaved);\n }\n };\n\n static flushSave = () => {\n this._save.flush();\n };\n\n private static locker = new Locker();\n\n static pauseSave = (lockType: SavingLockTypes) => {\n this.locker.lock(lockType);\n };\n\n static resumeSave = (lockType: SavingLockTypes) => {\n this.locker.unlock(lockType);\n };\n\n static isSavePaused = () => {\n return document.hidden || this.locker.isLocked();\n };\n\n // ---------------------------------------------------------------------------\n\n static fileStorage = new LocalFileManager({\n getFiles(ids) {\n return getMany(ids, filesStore).then(\n async (filesData: (BinaryFileData | undefined)[]) => {\n const loadedFiles: BinaryFileData[] = [];\n const erroredFiles = new Map();\n\n const filesToSave: [FileId, BinaryFileData][] = [];\n\n filesData.forEach((data, index) => {\n const id = ids[index];\n if (data) {\n const _data: BinaryFileData = {\n ...data,\n lastRetrieved: Date.now(),\n };\n filesToSave.push([id, _data]);\n loadedFiles.push(_data);\n } else {\n erroredFiles.set(id, true);\n }\n });\n\n try {\n // save loaded files back to storage with updated `lastRetrieved`\n setMany(filesToSave, filesStore);\n } catch (error) {\n console.warn(error);\n }\n\n return { loadedFiles, erroredFiles };\n },\n );\n },\n async saveFiles({ addedFiles }) {\n const savedFiles = new Map();\n const erroredFiles = new Map();\n\n // before we use `storage` event synchronization, let's update the flag\n // optimistically. Hopefully nothing fails, and an IDB read executed\n // before an IDB write finishes will read the latest value.\n updateBrowserStateVersion(STORAGE_KEYS.VERSION_FILES);\n\n await Promise.all(\n [...addedFiles].map(async ([id, fileData]) => {\n try {\n await set(id, fileData, filesStore);\n savedFiles.set(id, true);\n } catch (error: any) {\n console.error(error);\n erroredFiles.set(id, true);\n }\n }),\n );\n\n return { savedFiles, erroredFiles };\n },\n });\n}\nexport class LibraryIndexedDBAdapter {\n /** IndexedDB database and store name */\n private static idb_name = STORAGE_KEYS.IDB_LIBRARY;\n /** library data store key */\n private static key = \"libraryData\";\n\n private static store = createStore(\n `${LibraryIndexedDBAdapter.idb_name}-db`,\n `${LibraryIndexedDBAdapter.idb_name}-store`,\n );\n\n static async load() {\n const IDBData = await get(\n LibraryIndexedDBAdapter.key,\n LibraryIndexedDBAdapter.store,\n );\n\n return IDBData || null;\n }\n\n static save(data: LibraryPersistedData): MaybePromise {\n return set(\n LibraryIndexedDBAdapter.key,\n data,\n LibraryIndexedDBAdapter.store,\n );\n }\n}\n\n/** LS Adapter used only for migrating LS library data\n * to indexedDB */\nexport class LibraryLocalStorageMigrationAdapter {\n static load() {\n const LSData = localStorage.getItem(\n STORAGE_KEYS.__LEGACY_LOCAL_STORAGE_LIBRARY,\n );\n if (LSData != null) {\n const libraryItems: ImportedDataState[\"libraryItems\"] =\n JSON.parse(LSData);\n if (libraryItems) {\n return { libraryItems };\n }\n }\n return null;\n }\n static clear() {\n localStorage.removeItem(STORAGE_KEYS.__LEGACY_LOCAL_STORAGE_LIBRARY);\n }\n}\n","import { atom } from \"jotai\";\nimport { jotaiStore } from \"../packages/excalidraw/jotai\";\nimport { StorageType } from \"./components/StorageSettingsDialog\";\n\nexport type User = {\n id: number;\n githubId: number;\n login: string;\n name: string;\n avatarUrl: string;\n};\n\nexport const userAtom = atom(null);\n\n// Storage Configuration\n// -----------------------------------------------------------------------------\n\ninterface StorageConfig {\n type: StorageType;\n // Cloudflare KV\n kvAccountId?: string;\n kvNamespaceId?: string;\n kvApiToken?: string;\n // AWS S3\n s3AccessKeyId?: string;\n s3SecretAccessKey?: string;\n s3Region?: string;\n s3BucketName?: string;\n}\n\nconst STORAGE_CONFIG_LOCAL_STORAGE_KEY = \"excalidraw-storage-config-type\";\nconst STORAGE_CONFIG_SESSION_STORAGE_KEY =\n \"excalidraw-storage-config-credentials\";\n\nconst getInitialStorageConfig = (): StorageConfig => {\n const defaultConfig: StorageConfig = { type: \"default\" };\n\n try {\n const nonSensitive = localStorage.getItem(STORAGE_CONFIG_LOCAL_STORAGE_KEY);\n const sensitive = sessionStorage.getItem(\n STORAGE_CONFIG_SESSION_STORAGE_KEY,\n );\n\n const nonSensitiveConfig = nonSensitive ? JSON.parse(nonSensitive) : {};\n const sensitiveConfig = sensitive ? JSON.parse(sensitive) : {};\n\n return { ...defaultConfig, ...nonSensitiveConfig, ...sensitiveConfig };\n } catch (e) {\n console.error(\"Failed to load storage config\", e);\n return defaultConfig;\n }\n};\n\nconst baseStorageConfigAtom = atom(getInitialStorageConfig());\n\nexport const storageConfigAtom = atom(\n (get) => get(baseStorageConfigAtom),\n (get, set, newConfig: StorageConfig) => {\n const {\n type,\n kvAccountId,\n kvNamespaceId,\n kvApiToken,\n s3AccessKeyId,\n s3SecretAccessKey,\n s3Region,\n s3BucketName,\n } = newConfig;\n\n const nonSensitive = { type };\n const sensitive = {\n kvAccountId,\n kvNamespaceId,\n kvApiToken,\n s3AccessKeyId,\n s3SecretAccessKey,\n s3Region,\n s3BucketName,\n };\n\n try {\n localStorage.setItem(\n STORAGE_CONFIG_LOCAL_STORAGE_KEY,\n JSON.stringify(nonSensitive),\n );\n sessionStorage.setItem(\n STORAGE_CONFIG_SESSION_STORAGE_KEY,\n JSON.stringify(sensitive),\n );\n } catch (e) {\n console.error(\"Failed to save storage config\", e);\n }\n\n set(baseStorageConfigAtom, newConfig);\n },\n);\n\nexport const appJotaiStore = jotaiStore;\n","import { Tooltip } from \"../../packages/excalidraw/components/Tooltip\";\nimport { warning } from \"../../packages/excalidraw/components/icons\";\nimport clsx from \"clsx\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport \"./CollabError.scss\";\nimport { atom } from \"jotai\";\n\ntype ErrorIndicator = {\n message: string | null;\n /** used to rerun the useEffect responsible for animation */\n nonce: number;\n};\n\nexport const collabErrorIndicatorAtom = atom({\n message: null,\n nonce: 0,\n});\n\nconst CollabError = ({ collabError }: { collabError: ErrorIndicator }) => {\n const [isAnimating, setIsAnimating] = useState(false);\n const clearAnimationRef = useRef();\n\n useEffect(() => {\n setIsAnimating(true);\n clearAnimationRef.current = setTimeout(() => {\n setIsAnimating(false);\n }, 1000);\n\n return () => {\n clearTimeout(clearAnimationRef.current);\n };\n }, [collabError.message, collabError.nonce]);\n\n if (!collabError.message) {\n return null;\n }\n\n return (\n \n \n {warning}\n \n \n );\n};\n\nCollabError.displayName = \"CollabError\";\n\nexport default CollabError;\n","import throttle from \"lodash.throttle\";\nimport { PureComponent } from \"react\";\nimport {\n ExcalidrawImperativeAPI,\n SocketId,\n} from \"../../packages/excalidraw/types\";\nimport { ErrorDialog } from \"../../packages/excalidraw/components/ErrorDialog\";\nimport { APP_NAME, ENV, EVENT } from \"../../packages/excalidraw/constants\";\nimport { ImportedDataState } from \"../../packages/excalidraw/data/types\";\nimport {\n ExcalidrawElement,\n InitializedExcalidrawImageElement,\n} from \"../../packages/excalidraw/element/types\";\nimport {\n getSceneVersion,\n restoreElements,\n zoomToFitBounds,\n} from \"../../packages/excalidraw/index\";\nimport { Collaborator, Gesture } from \"../../packages/excalidraw/types\";\nimport {\n assertNever,\n preventUnload,\n resolvablePromise,\n throttleRAF,\n} from \"../../packages/excalidraw/utils\";\nimport {\n CURSOR_SYNC_TIMEOUT,\n FILE_UPLOAD_MAX_BYTES,\n FIREBASE_STORAGE_PREFIXES,\n INITIAL_SCENE_UPDATE_TIMEOUT,\n LOAD_IMAGES_TIMEOUT,\n WS_SUBTYPES,\n SYNC_FULL_SCENE_INTERVAL_MS,\n WS_EVENTS,\n} from \"../app_constants\";\nimport {\n generateCollaborationLinkData,\n getCollaborationLink,\n getSyncableElements,\n SocketUpdateDataSource,\n SyncableExcalidrawElement,\n} from \"../data\";\nimport {\n isSavedToFirebase,\n loadFilesFromFirebase,\n loadFromFirebase,\n saveFilesToFirebase,\n saveToFirebase,\n} from \"../data/firebase\";\nimport {\n importUsernameFromLocalStorage,\n saveUsernameToLocalStorage,\n} from \"../data/localStorage\";\nimport Portal from \"./Portal\";\nimport { t } from \"../../packages/excalidraw/i18n\";\nimport { UserIdleState } from \"../../packages/excalidraw/types\";\nimport {\n IDLE_THRESHOLD,\n ACTIVE_THRESHOLD,\n} from \"../../packages/excalidraw/constants\";\nimport {\n encodeFilesForUpload,\n FileManager,\n updateStaleImageStatuses,\n} from \"../data/FileManager\";\nimport { AbortError } from \"../../packages/excalidraw/errors\";\nimport {\n isImageElement,\n isInitializedImageElement,\n} from \"../../packages/excalidraw/element/typeChecks\";\nimport { newElementWith } from \"../../packages/excalidraw/element/mutateElement\";\nimport {\n ReconciledElements,\n reconcileElements as _reconcileElements,\n} from \"./reconciliation\";\nimport { decryptData } from \"../../packages/excalidraw/data/encryption\";\nimport { resetBrowserStateVersions } from \"../data/tabSync\";\nimport { LocalData } from \"../data/LocalData\";\nimport { atom } from \"jotai\";\nimport { appJotaiStore } from \"../app-jotai\";\nimport { Mutable, ValueOf } from \"../../packages/excalidraw/utility-types\";\nimport { getVisibleSceneBounds } from \"../../packages/excalidraw/element/bounds\";\nimport { withBatchedUpdates } from \"../../packages/excalidraw/reactUtils\";\nimport { collabErrorIndicatorAtom } from \"./CollabError\";\n\nexport const collabAPIAtom = atom(null);\nexport const isCollaboratingAtom = atom(false);\nexport const isOfflineAtom = atom(false);\n\ninterface CollabState {\n errorMessage: string | null;\n /** errors related to saving */\n dialogNotifiedErrors: Record;\n username: string;\n activeRoomLink: string | null;\n}\n\nexport const activeRoomLinkAtom = atom(null);\n\ntype CollabInstance = InstanceType;\n\nexport interface CollabAPI {\n /** function so that we can access the latest value from stale callbacks */\n isCollaborating: () => boolean;\n onPointerUpdate: CollabInstance[\"onPointerUpdate\"];\n startCollaboration: CollabInstance[\"startCollaboration\"];\n stopCollaboration: CollabInstance[\"stopCollaboration\"];\n syncElements: CollabInstance[\"syncElements\"];\n fetchImageFilesFromFirebase: CollabInstance[\"fetchImageFilesFromFirebase\"];\n setUsername: CollabInstance[\"setUsername\"];\n getUsername: CollabInstance[\"getUsername\"];\n getActiveRoomLink: CollabInstance[\"getActiveRoomLink\"];\n setCollabError: CollabInstance[\"setErrorDialog\"];\n}\n\ninterface CollabProps {\n excalidrawAPI: ExcalidrawImperativeAPI;\n}\n\nclass Collab extends PureComponent {\n portal: Portal;\n fileManager: FileManager;\n excalidrawAPI: CollabProps[\"excalidrawAPI\"];\n activeIntervalId: number | null;\n idleTimeoutId: number | null;\n\n private socketInitializationTimer?: number;\n private lastBroadcastedOrReceivedSceneVersion: number = -1;\n private collaborators = new Map();\n\n constructor(props: CollabProps) {\n super(props);\n this.state = {\n errorMessage: null,\n dialogNotifiedErrors: {},\n username: importUsernameFromLocalStorage() || \"\",\n activeRoomLink: null,\n };\n this.portal = new Portal(this);\n this.fileManager = new FileManager({\n getFiles: async (fileIds) => {\n const { roomId, roomKey } = this.portal;\n if (!roomId || !roomKey) {\n throw new AbortError();\n }\n\n return loadFilesFromFirebase(`files/rooms/${roomId}`, roomKey, fileIds);\n },\n saveFiles: async ({ addedFiles }) => {\n const { roomId, roomKey } = this.portal;\n if (!roomId || !roomKey) {\n throw new AbortError();\n }\n\n return saveFilesToFirebase({\n prefix: `${FIREBASE_STORAGE_PREFIXES.collabFiles}/${roomId}`,\n files: await encodeFilesForUpload({\n files: addedFiles,\n encryptionKey: roomKey,\n maxBytes: FILE_UPLOAD_MAX_BYTES,\n }),\n });\n },\n });\n this.excalidrawAPI = props.excalidrawAPI;\n this.activeIntervalId = null;\n this.idleTimeoutId = null;\n }\n\n private onUmmount: (() => void) | null = null;\n\n componentDidMount() {\n window.addEventListener(EVENT.BEFORE_UNLOAD, this.beforeUnload);\n window.addEventListener(\"online\", this.onOfflineStatusToggle);\n window.addEventListener(\"offline\", this.onOfflineStatusToggle);\n window.addEventListener(EVENT.UNLOAD, this.onUnload);\n\n const unsubOnUserFollow = this.excalidrawAPI.onUserFollow((payload) => {\n this.portal.socket && this.portal.broadcastUserFollowed(payload);\n });\n const throttledRelayUserViewportBounds = throttleRAF(\n this.relayVisibleSceneBounds,\n );\n const unsubOnScrollChange = this.excalidrawAPI.onScrollChange(() =>\n throttledRelayUserViewportBounds(),\n );\n this.onUmmount = () => {\n unsubOnUserFollow();\n unsubOnScrollChange();\n };\n\n this.onOfflineStatusToggle();\n\n const collabAPI: CollabAPI = {\n isCollaborating: this.isCollaborating,\n onPointerUpdate: this.onPointerUpdate,\n startCollaboration: this.startCollaboration,\n syncElements: this.syncElements,\n fetchImageFilesFromFirebase: this.fetchImageFilesFromFirebase,\n stopCollaboration: this.stopCollaboration,\n setUsername: this.setUsername,\n getUsername: this.getUsername,\n getActiveRoomLink: this.getActiveRoomLink,\n setCollabError: this.setErrorDialog,\n };\n\n appJotaiStore.set(collabAPIAtom, collabAPI);\n\n if (import.meta.env.MODE === ENV.TEST || import.meta.env.DEV) {\n window.collab = window.collab || ({} as Window[\"collab\"]);\n Object.defineProperties(window, {\n collab: {\n configurable: true,\n value: this,\n },\n });\n }\n }\n\n onOfflineStatusToggle = () => {\n appJotaiStore.set(isOfflineAtom, !window.navigator.onLine);\n };\n\n componentWillUnmount() {\n window.removeEventListener(\"online\", this.onOfflineStatusToggle);\n window.removeEventListener(\"offline\", this.onOfflineStatusToggle);\n window.removeEventListener(EVENT.BEFORE_UNLOAD, this.beforeUnload);\n window.removeEventListener(EVENT.UNLOAD, this.onUnload);\n window.removeEventListener(EVENT.POINTER_MOVE, this.onPointerMove);\n window.removeEventListener(\n EVENT.VISIBILITY_CHANGE,\n this.onVisibilityChange,\n );\n if (this.activeIntervalId) {\n window.clearInterval(this.activeIntervalId);\n this.activeIntervalId = null;\n }\n if (this.idleTimeoutId) {\n window.clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = null;\n }\n this.onUmmount?.();\n }\n\n isCollaborating = () => appJotaiStore.get(isCollaboratingAtom)!;\n\n private setIsCollaborating = (isCollaborating: boolean) => {\n appJotaiStore.set(isCollaboratingAtom, isCollaborating);\n };\n\n private onUnload = () => {\n this.destroySocketClient({ isUnload: true });\n };\n\n private beforeUnload = withBatchedUpdates((event: BeforeUnloadEvent) => {\n const syncableElements = getSyncableElements(\n this.getSceneElementsIncludingDeleted(),\n );\n\n if (\n this.isCollaborating() &&\n (this.fileManager.shouldPreventUnload(syncableElements) ||\n !isSavedToFirebase(this.portal, syncableElements))\n ) {\n // this won't run in time if user decides to leave the site, but\n // the purpose is to run in immediately after user decides to stay\n this.saveCollabRoomToFirebase(syncableElements);\n\n preventUnload(event);\n }\n });\n\n saveCollabRoomToFirebase = async (\n syncableElements: readonly SyncableExcalidrawElement[],\n ) => {\n try {\n const savedData = await saveToFirebase(\n this.portal,\n syncableElements,\n this.excalidrawAPI.getAppState(),\n );\n\n this.resetErrorIndicator();\n\n if (this.isCollaborating() && savedData && savedData.reconciledElements) {\n this.handleRemoteSceneUpdate(\n this.reconcileElements(savedData.reconciledElements),\n );\n }\n } catch (error: any) {\n const errorMessage = /is longer than.*?bytes/.test(error.message)\n ? t(\"errors.collabSaveFailed_sizeExceeded\")\n : t(\"errors.collabSaveFailed\");\n\n if (\n !this.state.dialogNotifiedErrors[errorMessage] ||\n !this.isCollaborating()\n ) {\n this.setErrorDialog(errorMessage);\n this.setState({\n dialogNotifiedErrors: {\n ...this.state.dialogNotifiedErrors,\n [errorMessage]: true,\n },\n });\n }\n\n if (this.isCollaborating()) {\n this.setErrorIndicator(errorMessage);\n }\n\n console.error(error);\n }\n };\n\n stopCollaboration = (keepRemoteState = true) => {\n this.queueBroadcastAllElements.cancel();\n this.queueSaveToFirebase.cancel();\n this.loadImageFiles.cancel();\n this.resetErrorIndicator(true);\n\n this.saveCollabRoomToFirebase(\n getSyncableElements(\n this.excalidrawAPI.getSceneElementsIncludingDeleted(),\n ),\n );\n\n if (this.portal.socket && this.fallbackInitializationHandler) {\n this.portal.socket.off(\n \"connect_error\",\n this.fallbackInitializationHandler,\n );\n }\n\n if (!keepRemoteState) {\n LocalData.fileStorage.reset();\n this.destroySocketClient();\n } else if (window.confirm(t(\"alerts.collabStopOverridePrompt\"))) {\n // hack to ensure that we prefer we disregard any new browser state\n // that could have been saved in other tabs while we were collaborating\n resetBrowserStateVersions();\n\n window.history.pushState({}, APP_NAME, window.location.origin);\n this.destroySocketClient();\n\n LocalData.fileStorage.reset();\n\n const elements = this.excalidrawAPI\n .getSceneElementsIncludingDeleted()\n .map((element) => {\n if (isImageElement(element) && element.status === \"saved\") {\n return newElementWith(element, { status: \"pending\" });\n }\n return element;\n });\n\n this.excalidrawAPI.updateScene({\n elements,\n commitToHistory: false,\n });\n }\n };\n\n private destroySocketClient = (opts?: { isUnload: boolean }) => {\n this.lastBroadcastedOrReceivedSceneVersion = -1;\n this.portal.close();\n this.fileManager.reset();\n if (!opts?.isUnload) {\n this.setIsCollaborating(false);\n this.setActiveRoomLink(null);\n this.collaborators = new Map();\n this.excalidrawAPI.updateScene({\n collaborators: this.collaborators,\n });\n LocalData.resumeSave(\"collaboration\");\n }\n };\n\n private fetchImageFilesFromFirebase = async (opts: {\n elements: readonly ExcalidrawElement[];\n /**\n * Indicates whether to fetch files that are errored or pending and older\n * than 10 seconds.\n *\n * Use this as a mechanism to fetch files which may be ok but for some\n * reason their status was not updated correctly.\n */\n forceFetchFiles?: boolean;\n }) => {\n const unfetchedImages = opts.elements\n .filter((element) => {\n return (\n isInitializedImageElement(element) &&\n !this.fileManager.isFileHandled(element.fileId) &&\n !element.isDeleted &&\n (opts.forceFetchFiles\n ? element.status !== \"pending\" ||\n Date.now() - element.updated > 10000\n : element.status === \"saved\")\n );\n })\n .map((element) => (element as InitializedExcalidrawImageElement).fileId);\n\n return await this.fileManager.getFiles(unfetchedImages);\n };\n\n private decryptPayload = async (\n iv: Uint8Array,\n encryptedData: ArrayBuffer,\n decryptionKey: string,\n ): Promise> => {\n try {\n const decrypted = await decryptData(iv, encryptedData, decryptionKey);\n\n const decodedData = new TextDecoder(\"utf-8\").decode(\n new Uint8Array(decrypted),\n );\n return JSON.parse(decodedData);\n } catch (error) {\n window.alert(t(\"alerts.decryptFailed\"));\n console.error(error);\n return {\n type: WS_SUBTYPES.INVALID_RESPONSE,\n };\n }\n };\n\n private fallbackInitializationHandler: null | (() => any) = null;\n\n startCollaboration = async (\n existingRoomLinkData: null | { roomId: string; roomKey: string },\n ): Promise => {\n if (!this.state.username) {\n import(\"@excalidraw/random-username\").then(({ getRandomUsername }) => {\n const username = getRandomUsername();\n this.setUsername(username);\n });\n }\n\n if (this.portal.socket) {\n return null;\n }\n\n let roomId;\n let roomKey;\n\n if (existingRoomLinkData) {\n ({ roomId, roomKey } = existingRoomLinkData);\n } else {\n ({ roomId, roomKey } = await generateCollaborationLinkData());\n window.history.pushState(\n {},\n APP_NAME,\n getCollaborationLink({ roomId, roomKey }),\n );\n }\n\n const scenePromise = resolvablePromise();\n\n this.setIsCollaborating(true);\n LocalData.pauseSave(\"collaboration\");\n\n const { default: socketIOClient } = await import(\n /* webpackChunkName: \"socketIoClient\" */ \"socket.io-client\"\n );\n\n const fallbackInitializationHandler = () => {\n this.initializeRoom({\n roomLinkData: existingRoomLinkData,\n fetchScene: true,\n }).then((scene) => {\n scenePromise.resolve(scene);\n });\n };\n this.fallbackInitializationHandler = fallbackInitializationHandler;\n\n try {\n this.portal.socket = this.portal.open(\n socketIOClient(import.meta.env.VITE_APP_WS_SERVER_URL, {\n transports: [\"websocket\", \"polling\"],\n }),\n roomId,\n roomKey,\n );\n\n this.portal.socket.once(\"connect_error\", fallbackInitializationHandler);\n } catch (error: any) {\n console.error(error);\n this.setErrorDialog(error.message);\n return null;\n }\n\n if (!existingRoomLinkData) {\n const elements = this.excalidrawAPI.getSceneElements().map((element) => {\n if (isImageElement(element) && element.status === \"saved\") {\n return newElementWith(element, { status: \"pending\" });\n }\n return element;\n });\n // remove deleted elements from elements array & history to ensure we don't\n // expose potentially sensitive user data in case user manually deletes\n // existing elements (or clears scene), which would otherwise be persisted\n // to database even if deleted before creating the room.\n this.excalidrawAPI.history.clear();\n this.excalidrawAPI.updateScene({\n elements,\n commitToHistory: true,\n });\n\n this.saveCollabRoomToFirebase(getSyncableElements(elements));\n }\n\n // fallback in case you're not alone in the room but still don't receive\n // initial SCENE_INIT message\n this.socketInitializationTimer = window.setTimeout(\n fallbackInitializationHandler,\n INITIAL_SCENE_UPDATE_TIMEOUT,\n );\n\n // All socket listeners are moving to Portal\n this.portal.socket.on(\n \"client-broadcast\",\n async (encryptedData: ArrayBuffer, iv: Uint8Array) => {\n if (!this.portal.roomKey) {\n return;\n }\n\n const decryptedData = await this.decryptPayload(\n iv,\n encryptedData,\n this.portal.roomKey,\n );\n\n switch (decryptedData.type) {\n case WS_SUBTYPES.INVALID_RESPONSE:\n return;\n case WS_SUBTYPES.INIT: {\n if (!this.portal.socketInitialized) {\n this.initializeRoom({ fetchScene: false });\n const remoteElements = decryptedData.payload.elements;\n const reconciledElements = this.reconcileElements(remoteElements);\n this.handleRemoteSceneUpdate(reconciledElements, {\n init: true,\n });\n // noop if already resolved via init from firebase\n scenePromise.resolve({\n elements: reconciledElements,\n scrollToContent: true,\n });\n }\n break;\n }\n case WS_SUBTYPES.UPDATE:\n this.handleRemoteSceneUpdate(\n this.reconcileElements(decryptedData.payload.elements),\n );\n break;\n case WS_SUBTYPES.MOUSE_LOCATION: {\n const { pointer, button, username, selectedElementIds } =\n decryptedData.payload;\n\n const socketId: SocketUpdateDataSource[\"MOUSE_LOCATION\"][\"payload\"][\"socketId\"] =\n decryptedData.payload.socketId ||\n // @ts-ignore legacy, see #2094 (#2097)\n decryptedData.payload.socketID;\n\n this.updateCollaborator(socketId, {\n pointer,\n button,\n selectedElementIds,\n username,\n });\n\n break;\n }\n\n case WS_SUBTYPES.USER_VISIBLE_SCENE_BOUNDS: {\n const { sceneBounds, socketId } = decryptedData.payload;\n\n const appState = this.excalidrawAPI.getAppState();\n\n // we're not following the user\n // (shouldn't happen, but could be late message or bug upstream)\n if (appState.userToFollow?.socketId !== socketId) {\n console.warn(\n `receiving remote client's (from ${socketId}) viewport bounds even though we're not subscribed to it!`,\n );\n return;\n }\n\n // cross-follow case, ignore updates in this case\n if (\n appState.userToFollow &&\n appState.followedBy.has(appState.userToFollow.socketId)\n ) {\n return;\n }\n\n this.excalidrawAPI.updateScene({\n appState: zoomToFitBounds({\n appState,\n bounds: sceneBounds,\n fitToViewport: true,\n viewportZoomFactor: 1,\n }).appState,\n });\n\n break;\n }\n\n case WS_SUBTYPES.IDLE_STATUS: {\n const { userState, socketId, username } = decryptedData.payload;\n this.updateCollaborator(socketId, {\n userState,\n username,\n });\n break;\n }\n\n default: {\n assertNever(decryptedData, null);\n }\n }\n },\n );\n\n this.portal.socket.on(\"first-in-room\", async () => {\n if (this.portal.socket) {\n this.portal.socket.off(\"first-in-room\");\n }\n const sceneData = await this.initializeRoom({\n fetchScene: true,\n roomLinkData: existingRoomLinkData,\n });\n scenePromise.resolve(sceneData);\n });\n\n this.portal.socket.on(\n WS_EVENTS.USER_FOLLOW_ROOM_CHANGE,\n (followedBy: SocketId[]) => {\n this.excalidrawAPI.updateScene({\n appState: { followedBy: new Set(followedBy) },\n });\n\n this.relayVisibleSceneBounds({ force: true });\n },\n );\n\n this.initializeIdleDetector();\n\n this.setActiveRoomLink(window.location.href);\n\n return scenePromise;\n };\n\n private initializeRoom = async ({\n fetchScene,\n roomLinkData,\n }:\n | {\n fetchScene: true;\n roomLinkData: { roomId: string; roomKey: string } | null;\n }\n | { fetchScene: false; roomLinkData?: null }) => {\n clearTimeout(this.socketInitializationTimer!);\n if (this.portal.socket && this.fallbackInitializationHandler) {\n this.portal.socket.off(\n \"connect_error\",\n this.fallbackInitializationHandler,\n );\n }\n if (fetchScene && roomLinkData && this.portal.socket) {\n this.excalidrawAPI.resetScene();\n\n try {\n const elements = await loadFromFirebase(\n roomLinkData.roomId,\n roomLinkData.roomKey,\n this.portal.socket,\n );\n if (elements) {\n this.setLastBroadcastedOrReceivedSceneVersion(\n getSceneVersion(elements),\n );\n\n return {\n elements,\n scrollToContent: true,\n };\n }\n } catch (error: any) {\n // log the error and move on. other peers will sync us the scene.\n console.error(error);\n } finally {\n this.portal.socketInitialized = true;\n }\n } else {\n this.portal.socketInitialized = true;\n }\n return null;\n };\n\n private reconcileElements = (\n remoteElements: readonly ExcalidrawElement[],\n ): ReconciledElements => {\n const localElements = this.getSceneElementsIncludingDeleted();\n const appState = this.excalidrawAPI.getAppState();\n\n remoteElements = restoreElements(remoteElements, null);\n\n const reconciledElements = _reconcileElements(\n localElements,\n remoteElements,\n appState,\n );\n\n // Avoid broadcasting to the rest of the collaborators the scene\n // we just received!\n // Note: this needs to be set before updating the scene as it\n // synchronously calls render.\n this.setLastBroadcastedOrReceivedSceneVersion(\n getSceneVersion(reconciledElements),\n );\n\n return reconciledElements;\n };\n\n private loadImageFiles = throttle(async () => {\n const { loadedFiles, erroredFiles } =\n await this.fetchImageFilesFromFirebase({\n elements: this.excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n\n this.excalidrawAPI.addFiles(loadedFiles);\n\n updateStaleImageStatuses({\n excalidrawAPI: this.excalidrawAPI,\n erroredFiles,\n elements: this.excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n }, LOAD_IMAGES_TIMEOUT);\n\n private handleRemoteSceneUpdate = (\n elements: ReconciledElements,\n { init = false }: { init?: boolean } = {},\n ) => {\n this.excalidrawAPI.updateScene({\n elements,\n commitToHistory: !!init,\n });\n\n // We haven't yet implemented multiplayer undo functionality, so we clear the undo stack\n // when we receive any messages from another peer. This UX can be pretty rough -- if you\n // undo, a user makes a change, and then try to redo, your element(s) will be lost. However,\n // right now we think this is the right tradeoff.\n this.excalidrawAPI.history.clear();\n\n this.loadImageFiles();\n };\n\n private onPointerMove = () => {\n if (this.idleTimeoutId) {\n window.clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = null;\n }\n\n this.idleTimeoutId = window.setTimeout(this.reportIdle, IDLE_THRESHOLD);\n\n if (!this.activeIntervalId) {\n this.activeIntervalId = window.setInterval(\n this.reportActive,\n ACTIVE_THRESHOLD,\n );\n }\n };\n\n private onVisibilityChange = () => {\n if (document.hidden) {\n if (this.idleTimeoutId) {\n window.clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = null;\n }\n if (this.activeIntervalId) {\n window.clearInterval(this.activeIntervalId);\n this.activeIntervalId = null;\n }\n this.onIdleStateChange(UserIdleState.AWAY);\n } else {\n this.idleTimeoutId = window.setTimeout(this.reportIdle, IDLE_THRESHOLD);\n this.activeIntervalId = window.setInterval(\n this.reportActive,\n ACTIVE_THRESHOLD,\n );\n this.onIdleStateChange(UserIdleState.ACTIVE);\n }\n };\n\n private reportIdle = () => {\n this.onIdleStateChange(UserIdleState.IDLE);\n if (this.activeIntervalId) {\n window.clearInterval(this.activeIntervalId);\n this.activeIntervalId = null;\n }\n };\n\n private reportActive = () => {\n this.onIdleStateChange(UserIdleState.ACTIVE);\n };\n\n private initializeIdleDetector = () => {\n document.addEventListener(EVENT.POINTER_MOVE, this.onPointerMove);\n document.addEventListener(EVENT.VISIBILITY_CHANGE, this.onVisibilityChange);\n };\n\n setCollaborators(sockets: SocketId[]) {\n const collaborators: InstanceType[\"collaborators\"] =\n new Map();\n for (const socketId of sockets) {\n collaborators.set(\n socketId,\n Object.assign({}, this.collaborators.get(socketId), {\n isCurrentUser: socketId === this.portal.socket?.id,\n }),\n );\n }\n this.collaborators = collaborators;\n this.excalidrawAPI.updateScene({ collaborators });\n }\n\n updateCollaborator = (socketId: SocketId, updates: Partial) => {\n const collaborators = new Map(this.collaborators);\n const user: Mutable = Object.assign(\n {},\n collaborators.get(socketId),\n updates,\n {\n isCurrentUser: socketId === this.portal.socket?.id,\n },\n );\n collaborators.set(socketId, user);\n this.collaborators = collaborators;\n\n this.excalidrawAPI.updateScene({\n collaborators,\n });\n };\n\n public setLastBroadcastedOrReceivedSceneVersion = (version: number) => {\n this.lastBroadcastedOrReceivedSceneVersion = version;\n };\n\n public getLastBroadcastedOrReceivedSceneVersion = () => {\n return this.lastBroadcastedOrReceivedSceneVersion;\n };\n\n public getSceneElementsIncludingDeleted = () => {\n return this.excalidrawAPI.getSceneElementsIncludingDeleted();\n };\n\n onPointerUpdate = throttle(\n (payload: {\n pointer: SocketUpdateDataSource[\"MOUSE_LOCATION\"][\"payload\"][\"pointer\"];\n button: SocketUpdateDataSource[\"MOUSE_LOCATION\"][\"payload\"][\"button\"];\n pointersMap: Gesture[\"pointers\"];\n }) => {\n payload.pointersMap.size < 2 &&\n this.portal.socket &&\n this.portal.broadcastMouseLocation(payload);\n },\n CURSOR_SYNC_TIMEOUT,\n );\n\n relayVisibleSceneBounds = (props?: { force: boolean }) => {\n const appState = this.excalidrawAPI.getAppState();\n\n if (this.portal.socket && (appState.followedBy.size > 0 || props?.force)) {\n this.portal.broadcastVisibleSceneBounds(\n {\n sceneBounds: getVisibleSceneBounds(appState),\n },\n `follow@${this.portal.socket.id}`,\n );\n }\n };\n\n onIdleStateChange = (userState: UserIdleState) => {\n this.portal.broadcastIdleChange(userState);\n };\n\n broadcastElements = (elements: readonly ExcalidrawElement[]) => {\n if (\n getSceneVersion(elements) >\n this.getLastBroadcastedOrReceivedSceneVersion()\n ) {\n this.portal.broadcastScene(WS_SUBTYPES.UPDATE, elements, false);\n this.lastBroadcastedOrReceivedSceneVersion = getSceneVersion(elements);\n this.queueBroadcastAllElements();\n }\n };\n\n syncElements = (elements: readonly ExcalidrawElement[]) => {\n this.broadcastElements(elements);\n this.queueSaveToFirebase();\n };\n\n queueBroadcastAllElements = throttle(() => {\n this.portal.broadcastScene(\n WS_SUBTYPES.UPDATE,\n this.excalidrawAPI.getSceneElementsIncludingDeleted(),\n true,\n );\n const currentVersion = this.getLastBroadcastedOrReceivedSceneVersion();\n const newVersion = Math.max(\n currentVersion,\n getSceneVersion(this.getSceneElementsIncludingDeleted()),\n );\n this.setLastBroadcastedOrReceivedSceneVersion(newVersion);\n }, SYNC_FULL_SCENE_INTERVAL_MS);\n\n queueSaveToFirebase = throttle(\n () => {\n if (this.portal.socketInitialized) {\n this.saveCollabRoomToFirebase(\n getSyncableElements(\n this.excalidrawAPI.getSceneElementsIncludingDeleted(),\n ),\n );\n }\n },\n SYNC_FULL_SCENE_INTERVAL_MS,\n { leading: false },\n );\n\n setUsername = (username: string) => {\n this.setState({ username });\n saveUsernameToLocalStorage(username);\n };\n\n getUsername = () => this.state.username;\n\n setActiveRoomLink = (activeRoomLink: string | null) => {\n this.setState({ activeRoomLink });\n appJotaiStore.set(activeRoomLinkAtom, activeRoomLink);\n };\n\n getActiveRoomLink = () => this.state.activeRoomLink;\n\n setErrorIndicator = (errorMessage: string | null) => {\n appJotaiStore.set(collabErrorIndicatorAtom, {\n message: errorMessage,\n nonce: Date.now(),\n });\n };\n\n resetErrorIndicator = (resetDialogNotifiedErrors = false) => {\n appJotaiStore.set(collabErrorIndicatorAtom, { message: null, nonce: 0 });\n if (resetDialogNotifiedErrors) {\n this.setState({\n dialogNotifiedErrors: {},\n });\n }\n };\n\n setErrorDialog = (errorMessage: string | null) => {\n this.setState({\n errorMessage,\n });\n };\n\n render() {\n const { errorMessage } = this.state;\n\n return (\n <>\n {errorMessage != null && (\n this.setErrorDialog(null)}>\n {errorMessage}\n \n )}\n \n );\n }\n}\n\ndeclare global {\n interface Window {\n collab: InstanceType;\n }\n}\n\nif (import.meta.env.MODE === ENV.TEST || import.meta.env.DEV) {\n window.collab = window.collab || ({} as Window[\"collab\"]);\n}\n\nexport default Collab;\n\nexport type TCollabClass = Collab;\n","import { useEffect, useState } from \"react\";\nimport { debounce, getVersion, nFormatter } from \"../packages/excalidraw/utils\";\nimport {\n getElementsStorageSize,\n getTotalStorageSize,\n} from \"./data/localStorage\";\nimport { DEFAULT_VERSION } from \"../packages/excalidraw/constants\";\nimport { t } from \"../packages/excalidraw/i18n\";\nimport { copyTextToSystemClipboard } from \"../packages/excalidraw/clipboard\";\nimport { NonDeletedExcalidrawElement } from \"../packages/excalidraw/element/types\";\nimport { UIAppState } from \"../packages/excalidraw/types\";\n\ntype StorageSizes = { scene: number; total: number };\n\nconst STORAGE_SIZE_TIMEOUT = 500;\n\nconst getStorageSizes = debounce((cb: (sizes: StorageSizes) => void) => {\n cb({\n scene: getElementsStorageSize(),\n total: getTotalStorageSize(),\n });\n}, STORAGE_SIZE_TIMEOUT);\n\ntype Props = {\n setToast: (message: string) => void;\n elements: readonly NonDeletedExcalidrawElement[];\n appState: UIAppState;\n};\nconst CustomStats = (props: Props) => {\n const [storageSizes, setStorageSizes] = useState({\n scene: 0,\n total: 0,\n });\n\n useEffect(() => {\n getStorageSizes((sizes) => {\n setStorageSizes(sizes);\n });\n }, [props.elements, props.appState]);\n useEffect(() => () => getStorageSizes.cancel(), []);\n\n const version = getVersion();\n let hash;\n let timestamp;\n\n if (version !== DEFAULT_VERSION) {\n timestamp = version.slice(0, 16).replace(\"T\", \" \");\n hash = version.slice(21);\n } else {\n timestamp = t(\"stats.versionNotAvailable\");\n }\n\n return (\n <>\n \n {t(\"stats.storage\")}\n \n \n {t(\"stats.scene\")}\n {nFormatter(storageSizes.scene, 1)}\n \n \n {t(\"stats.total\")}\n {nFormatter(storageSizes.total, 1)}\n \n \n {t(\"stats.version\")}\n \n \n {\n try {\n await copyTextToSystemClipboard(getVersion());\n props.setToast(t(\"toast.copyToClipboard\"));\n } catch {}\n }}\n title={t(\"stats.versionCopy\")}\n >\n {timestamp}\n
    \n {hash}\n \n \n \n );\n};\n\nexport default CustomStats;\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import React from \"react\";\nimport { Card } from \"../../packages/excalidraw/components/Card\";\nimport { ToolButton } from \"../../packages/excalidraw/components/ToolButton\";\nimport { serializeAsJSON } from \"../../packages/excalidraw/data/json\";\nimport { loadFirebaseStorage, saveFilesToFirebase } from \"../data/firebase\";\nimport {\n FileId,\n NonDeletedExcalidrawElement,\n} from \"../../packages/excalidraw/element/types\";\nimport {\n AppState,\n BinaryFileData,\n BinaryFiles,\n} from \"../../packages/excalidraw/types\";\nimport { nanoid } from \"nanoid\";\nimport { useI18n } from \"../../packages/excalidraw/i18n\";\nimport {\n encryptData,\n generateEncryptionKey,\n} from \"../../packages/excalidraw/data/encryption\";\nimport { isInitializedImageElement } from \"../../packages/excalidraw/element/typeChecks\";\nimport { FILE_UPLOAD_MAX_BYTES } from \"../app_constants\";\nimport { encodeFilesForUpload } from \"../data/FileManager\";\nimport { MIME_TYPES } from \"../../packages/excalidraw/constants\";\nimport { trackEvent } from \"../../packages/excalidraw/analytics\";\nimport { getFrame } from \"../../packages/excalidraw/utils\";\nimport { ExcalidrawLogo } from \"../../packages/excalidraw/components/ExcalidrawLogo\";\n\nexport const exportToExcalidrawPlus = async (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: Partial,\n files: BinaryFiles,\n name: string,\n) => {\n const firebase = await loadFirebaseStorage();\n\n const id = `${nanoid(12)}`;\n\n const encryptionKey = (await generateEncryptionKey())!;\n const encryptedData = await encryptData(\n encryptionKey,\n serializeAsJSON(elements, appState, files, \"database\"),\n );\n\n const blob = new Blob(\n [encryptedData.iv, new Uint8Array(encryptedData.encryptedBuffer)],\n {\n type: MIME_TYPES.binary,\n },\n );\n\n await firebase\n .storage()\n .ref(`/migrations/scenes/${id}`)\n .put(blob, {\n customMetadata: {\n data: JSON.stringify({ version: 2, name }),\n created: Date.now().toString(),\n },\n });\n\n const filesMap = new Map();\n for (const element of elements) {\n if (isInitializedImageElement(element) && files[element.fileId]) {\n filesMap.set(element.fileId, files[element.fileId]);\n }\n }\n\n if (filesMap.size) {\n const filesToUpload = await encodeFilesForUpload({\n files: filesMap,\n encryptionKey,\n maxBytes: FILE_UPLOAD_MAX_BYTES,\n });\n\n await saveFilesToFirebase({\n prefix: `/migrations/files/scenes/${id}`,\n files: filesToUpload,\n });\n }\n\n window.open(\n `${\n import.meta.env.VITE_APP_PLUS_APP\n }/import?excalidraw=${id},${encryptionKey}`,\n );\n};\n\nexport const ExportToExcalidrawPlus: React.FC<{\n elements: readonly NonDeletedExcalidrawElement[];\n appState: Partial;\n files: BinaryFiles;\n name: string;\n onError: (error: Error) => void;\n onSuccess: () => void;\n}> = ({ elements, appState, files, name, onError, onSuccess }) => {\n const { t } = useI18n();\n return (\n \n
    \n \n
    \n

    Excalidraw+

    \n
    \n {t(\"exportDialog.excalidrawplus_description\")}\n
    \n {\n try {\n trackEvent(\"export\", \"eplus\", `ui (${getFrame()})`);\n await exportToExcalidrawPlus(elements, appState, files, name);\n onSuccess();\n } catch (error: any) {\n console.error(error);\n if (error.name !== \"AbortError\") {\n onError(new Error(t(\"exportDialog.excalidrawplus_exportError\")));\n }\n }\n }}\n />\n
    \n );\n};\n","import { useSetAtom } from \"jotai\";\nimport React from \"react\";\nimport { appLangCodeAtom } from \"../App\";\nimport { useI18n } from \"../../packages/excalidraw/i18n\";\nimport { languages } from \"../../packages/excalidraw/i18n\";\n\nexport const LanguageList = ({ style }: { style?: React.CSSProperties }) => {\n const { t, langCode } = useI18n();\n const setLangCode = useSetAtom(appLangCodeAtom);\n\n return (\n setLangCode(target.value)}\n value={langCode}\n aria-label={t(\"buttons.selectLanguage\")}\n style={style}\n >\n {languages.map((lang) => (\n \n ))}\n \n );\n};\n","import React from \"react\";\nimport { MainMenu } from \"../../packages/excalidraw/index\";\nimport { LanguageList } from \"./LanguageList\";\nimport { useAtom } from \"jotai\";\nimport { userAtom } from \"../app-jotai\";\n\nexport const AppMainMenu: React.FC<{\n onCollabDialogOpen: () => any;\n isCollaborating: boolean;\n isCollabEnabled: boolean;\n onStorageSettingsClick: () => void;\n}> = React.memo((props) => {\n const [user, setUser] = useAtom(userAtom);\n\n const handleLogin = () => {\n window.location.href = \"/auth/github/login\";\n };\n\n const handleLogout = () => {\n localStorage.removeItem(\"token\");\n setUser(null);\n window.location.reload(); // Reload to clear all state\n };\n\n return (\n \n \n \n \n \n {props.isCollabEnabled && (\n props.onCollabDialogOpen()}\n />\n )}\n\n \n \n \n \n Data Source Settings...\n \n \n {user ? (\n \n \n \n {user.name || user.login}\n \n Logout\n \n ) : (\n Login with GitHub\n )}\n \n \n \n \n \n \n \n \n \n );\n});\n","import React from \"react\";\nimport { GithubIcon } from \"../../packages/excalidraw/components/icons\";\nimport { useI18n } from \"../../packages/excalidraw/i18n\";\nimport { WelcomeScreen } from \"../../packages/excalidraw/index\";\nimport { isExcalidrawPlusSignedUser } from \"../app_constants\";\nimport { POINTER_EVENTS } from \"../../packages/excalidraw/constants\";\nimport { useAtom } from \"jotai\";\nimport { userAtom } from \"../app-jotai\";\n\nexport const AppWelcomeScreen: React.FC<{\n onCollabDialogOpen: () => any;\n isCollabEnabled: boolean;\n}> = React.memo((props) => {\n const { t } = useI18n();\n const [user] = useAtom(userAtom);\n let headingContent;\n\n if (isExcalidrawPlusSignedUser) {\n headingContent = t(\"welcomeScreen.app.center_heading_plus\")\n .split(/(Excalidraw\\+)/)\n .map((bit, idx) => {\n if (bit === \"Excalidraw+\") {\n return (\n \n Excalidraw+\n
    \n );\n }\n return bit;\n });\n } else {\n headingContent = t(\"welcomeScreen.app.center_heading\");\n }\n\n return (\n \n \n {t(\"welcomeScreen.app.menuHint\")}\n \n \n \n \n \n \n {headingContent}\n \n \n \n \n {props.isCollabEnabled && (\n props.onCollabDialogOpen()}\n />\n )}\n {!user && (\n {\n window.location.href = \"/auth/github/login\";\n }}\n icon={GithubIcon}\n >\n Login with GitHub\n \n )}\n \n \n \n );\n});\n","import { shield } from \"../../packages/excalidraw/components/icons\";\nimport { Tooltip } from \"../../packages/excalidraw/components/Tooltip\";\nimport { useI18n } from \"../../packages/excalidraw/i18n\";\n\nexport const EncryptedIcon = () => {\n const { t } = useI18n();\n\n return (\n \n \n {shield}\n \n \n );\n};\n","import { isExcalidrawPlusSignedUser } from \"../app_constants\";\n\nexport const ExcalidrawPlusAppLink = () => {\n if (!isExcalidrawPlusSignedUser) {\n return null;\n }\n return (\n \n Go to Excalidraw+\n \n );\n};\n","import React from \"react\";\nimport { Footer } from \"../../packages/excalidraw/index\";\nimport { EncryptedIcon } from \"./EncryptedIcon\";\nimport { ExcalidrawPlusAppLink } from \"./ExcalidrawPlusAppLink\";\nimport { isExcalidrawPlusSignedUser } from \"../app_constants\";\n\nexport const AppFooter = React.memo(() => {\n return (\n
    \n \n {isExcalidrawPlusSignedUser ? (\n \n ) : (\n \n )}\n \n
    \n );\n});\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { useRef, useState } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\n\nimport { copyTextToSystemClipboard } from \"../clipboard\";\nimport { useI18n } from \"../i18n\";\n\nimport { Dialog } from \"./Dialog\";\nimport { TextField } from \"./TextField\";\nimport { FilledButton } from \"./FilledButton\";\nimport { copyIcon, tablerCheckIcon } from \"./icons\";\n\nimport \"./ShareableLinkDialog.scss\";\n\nexport type ShareableLinkDialogProps = {\n link: string;\n\n onCloseRequest: () => void;\n setErrorMessage: (error: string) => void;\n};\n\nexport const ShareableLinkDialog = ({\n link,\n onCloseRequest,\n setErrorMessage,\n}: ShareableLinkDialogProps) => {\n const { t } = useI18n();\n const [justCopied, setJustCopied] = useState(false);\n const timerRef = useRef(0);\n const ref = useRef(null);\n\n const copyRoomLink = async () => {\n try {\n await copyTextToSystemClipboard(link);\n } catch (e) {\n setErrorMessage(t(\"errors.copyToSystemClipboardFailed\"));\n }\n setJustCopied(true);\n\n if (timerRef.current) {\n window.clearTimeout(timerRef.current);\n }\n\n timerRef.current = window.setTimeout(() => {\n setJustCopied(false);\n }, 3000);\n\n ref.current?.select();\n };\n\n return (\n \n
    \n

    Shareable link

    \n
    \n \n \n \n \n \n event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n className=\"ShareableLinkDialog__popover\"\n side=\"top\"\n align=\"end\"\n sideOffset={5.5}\n >\n {tablerCheckIcon} copied\n \n \n
    \n
    \n 🔒 {t(\"alerts.uploadedSecurly\")}\n
    \n
    \n
    \n );\n};\n","import { useRef, useState } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { copyTextToSystemClipboard } from \"../../packages/excalidraw/clipboard\";\nimport { trackEvent } from \"../../packages/excalidraw/analytics\";\nimport { getFrame } from \"../../packages/excalidraw/utils\";\nimport { useI18n } from \"../../packages/excalidraw/i18n\";\nimport { KEYS } from \"../../packages/excalidraw/keys\";\nimport { Dialog } from \"../../packages/excalidraw/components/Dialog\";\nimport {\n copyIcon,\n LinkIcon,\n playerPlayIcon,\n playerStopFilledIcon,\n share,\n shareIOS,\n shareWindows,\n tablerCheckIcon,\n} from \"../../packages/excalidraw/components/icons\";\nimport { TextField } from \"../../packages/excalidraw/components/TextField\";\nimport { FilledButton } from \"../../packages/excalidraw/components/FilledButton\";\nimport { activeRoomLinkAtom, CollabAPI } from \"../collab/Collab\";\nimport { atom, useAtom, useAtomValue } from \"jotai\";\n\nimport \"./ShareDialog.scss\";\n\ntype OnExportToBackend = () => void;\ntype ShareDialogType = \"share\" | \"collaborationOnly\";\n\nexport const shareDialogStateAtom = atom<\n { isOpen: false } | { isOpen: true; type: ShareDialogType }\n>({ isOpen: false });\n\nconst getShareIcon = () => {\n const navigator = window.navigator as any;\n const isAppleBrowser = /Apple/.test(navigator.vendor);\n const isWindowsBrowser = navigator.appVersion.indexOf(\"Win\") !== -1;\n\n if (isAppleBrowser) {\n return shareIOS;\n } else if (isWindowsBrowser) {\n return shareWindows;\n }\n\n return share;\n};\n\nexport type ShareDialogProps = {\n collabAPI: CollabAPI | null;\n handleClose: () => void;\n onExportToBackend: OnExportToBackend;\n type: ShareDialogType;\n};\n\nconst ActiveRoomDialog = ({\n collabAPI,\n activeRoomLink,\n handleClose,\n}: {\n collabAPI: CollabAPI;\n activeRoomLink: string;\n handleClose: () => void;\n}) => {\n const { t } = useI18n();\n const [justCopied, setJustCopied] = useState(false);\n const timerRef = useRef(0);\n const ref = useRef(null);\n const isShareSupported = \"share\" in navigator;\n\n const copyRoomLink = async () => {\n try {\n await copyTextToSystemClipboard(activeRoomLink);\n } catch (e) {\n collabAPI.setCollabError(t(\"errors.copyToSystemClipboardFailed\"));\n }\n\n setJustCopied(true);\n\n if (timerRef.current) {\n window.clearTimeout(timerRef.current);\n }\n\n timerRef.current = window.setTimeout(() => {\n setJustCopied(false);\n }, 3000);\n\n ref.current?.select();\n };\n\n const shareRoomLink = async () => {\n try {\n await navigator.share({\n title: t(\"roomDialog.shareTitle\"),\n text: t(\"roomDialog.shareTitle\"),\n url: activeRoomLink,\n });\n } catch (error: any) {\n // Just ignore.\n }\n };\n\n return (\n <>\n

    \n {t(\"labels.liveCollaboration\").replace(/\\./g, \"\")}\n

    \n event.key === KEYS.ENTER && handleClose()}\n />\n
    \n \n {isShareSupported && (\n \n )}\n \n \n \n \n event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n className=\"ShareDialog__popover\"\n side=\"top\"\n align=\"end\"\n sideOffset={5.5}\n >\n {tablerCheckIcon} copied\n \n \n
    \n
    \n

    \n \n 🔒{\" \"}\n \n {t(\"roomDialog.desc_privacy\")}\n

    \n

    {t(\"roomDialog.desc_exitSession\")}

    \n
    \n\n
    \n {\n trackEvent(\"share\", \"room closed\");\n collabAPI.stopCollaboration();\n if (!collabAPI.isCollaborating()) {\n handleClose();\n }\n }}\n />\n
    \n \n );\n};\n\nconst ShareDialogPicker = (props: ShareDialogProps) => {\n const { t } = useI18n();\n\n const { collabAPI } = props;\n\n const startCollabJSX = collabAPI ? (\n <>\n
    \n {t(\"labels.liveCollaboration\").replace(/\\./g, \"\")}\n
    \n\n
    \n
    {t(\"roomDialog.desc_intro\")}
    \n {t(\"roomDialog.desc_privacy\")}\n
    \n\n
    \n {\n trackEvent(\"share\", \"room creation\", `ui (${getFrame()})`);\n collabAPI.startCollaboration(null);\n }}\n />\n
    \n\n {props.type === \"share\" && (\n
    \n {t(\"shareDialog.or\")}\n
    \n )}\n \n ) : null;\n\n return (\n <>\n {startCollabJSX}\n\n {props.type === \"share\" && (\n <>\n
    \n {t(\"exportDialog.link_title\")}\n
    \n
    \n {t(\"exportDialog.link_details\")}\n
    \n\n
    \n {\n await props.onExportToBackend();\n props.handleClose();\n }}\n />\n
    \n \n )}\n \n );\n};\n\nconst ShareDialogInner = (props: ShareDialogProps) => {\n const activeRoomLink = useAtomValue(activeRoomLinkAtom);\n\n return (\n \n
    \n {props.collabAPI && activeRoomLink ? (\n \n ) : (\n \n )}\n
    \n
    \n );\n};\n\nexport const ShareDialog = (props: {\n collabAPI: CollabAPI | null;\n onExportToBackend: OnExportToBackend;\n}) => {\n const [shareDialogState, setShareDialogState] = useAtom(shareDialogStateAtom);\n\n if (!shareDialogState.isOpen) {\n return null;\n }\n\n return (\n setShareDialogState({ isOpen: false })}\n collabAPI={props.collabAPI}\n onExportToBackend={props.onExportToBackend}\n type={shareDialogState.type}\n >\n );\n};\n","import React, { useState } from \"react\";\nimport { Dialog } from \"../../packages/excalidraw/components/Dialog\";\nimport { Island } from \"../../packages/excalidraw/components/Island\";\nimport { TextField } from \"../../packages/excalidraw/components/TextField\";\nimport { FilledButton } from \"../../packages/excalidraw/components/FilledButton\";\nimport { useAtom } from \"jotai\";\nimport { storageConfigAtom } from \"../app-jotai\";\n\nexport type StorageType = \"default\" | \"kv\" | \"s3\" | \"indexed-db\";\n\nconst StorageSettingsDialog = ({ onClose }: { onClose: () => void }) => {\n const [config, setConfig] = useAtom(storageConfigAtom);\n const [storageType, setStorageType] = useState(config.type);\n\n // Local state for form inputs\n const [kvAccountId, setKvAccountId] = useState(config.kvAccountId || \"\");\n const [kvNamespaceId, setKvNamespaceId] = useState(\n config.kvNamespaceId || \"\",\n );\n const [kvApiToken, setKvApiToken] = useState(config.kvApiToken || \"\");\n const [s3AccessKeyId, setS3AccessKeyId] = useState(\n config.s3AccessKeyId || \"\",\n );\n const [s3SecretAccessKey, setS3SecretAccessKey] = useState(\n config.s3SecretAccessKey || \"\",\n );\n const [s3Region, setS3Region] = useState(config.s3Region || \"\");\n const [s3BucketName, setS3BucketName] = useState(config.s3BucketName || \"\");\n\n const handleSave = () => {\n setConfig({\n type: storageType,\n kvAccountId,\n kvNamespaceId,\n kvApiToken,\n s3AccessKeyId,\n s3SecretAccessKey,\n s3Region,\n s3BucketName,\n });\n onClose();\n };\n\n const renderForm = () => {\n switch (storageType) {\n case \"kv\":\n return (\n <>\n \n \n \n \n );\n case \"s3\":\n return (\n <>\n \n \n \n \n \n );\n case \"indexed-db\":\n return (\n

    \n Your canvases are stored securely in your browser's local database.\n They are not synced online.\n

    \n );\n case \"default\":\n default:\n return (\n

    \n Your data is stored on the default backend of this Excalidraw\n instance. This requires you to be logged in.\n

    \n );\n }\n };\n\n return (\n \n
    \n

    \n Security Warning: Sensitive keys are stored only in your browser's\n session storage and are cleared when you close the tab.\n

    \n\n setStorageType(e.target.value as StorageType)}\n style={{\n padding: \"0.5rem\",\n borderRadius: \"var(--border-radius-lg)\",\n border: \"1px solid var(--color-border)\",\n }}\n >\n \n \n \n \n \n\n \n \n {renderForm()}\n
    \n \n\n \n \n \n \n \n );\n};\n\nexport default StorageSettingsDialog;\n","import { CanvasData, CanvasMetadata, IStorageAdapter } from \"./storage\";\n\nconst API_BASE_URL = \"/api/v2/canvases\";\n\nconst getAuthHeaders = () => {\n const token = localStorage.getItem(\"token\");\n const headers: Record = {\n \"Content-Type\": \"application/json\",\n };\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n return headers;\n};\n\nexport class BackendStorageAdapter implements IStorageAdapter {\n async listCanvases(): Promise {\n const response = await fetch(API_BASE_URL, {\n method: \"GET\",\n headers: getAuthHeaders(),\n });\n if (!response.ok) {\n // If the user is not logged in, the backend will return an error.\n // We can treat this as an empty list of canvases.\n if (response.status === 401 || response.status === 403) {\n return [];\n }\n throw new Error(`Failed to list canvases: ${response.statusText}`);\n }\n return response.json();\n }\n\n async loadCanvas(id: string): Promise {\n const response = await fetch(`${API_BASE_URL}/${id}`, {\n method: \"GET\",\n headers: getAuthHeaders(),\n });\n if (response.status === 404) {\n return null;\n }\n if (!response.ok) {\n throw new Error(`Failed to load canvas: ${response.statusText}`);\n }\n return response.json();\n }\n\n async saveCanvas(id: string, data: CanvasData): Promise {\n const response = await fetch(`${API_BASE_URL}/${id}`, {\n method: \"PUT\",\n headers: getAuthHeaders(),\n body: JSON.stringify(data),\n });\n if (!response.ok) {\n throw new Error(`Failed to save canvas: ${response.statusText}`);\n }\n }\n\n async createCanvas(data: CanvasData): Promise {\n const response = await fetch(API_BASE_URL, {\n method: \"POST\",\n headers: getAuthHeaders(),\n body: JSON.stringify(data),\n });\n if (!response.ok) {\n throw new Error(`Failed to create canvas: ${response.statusText}`);\n }\n return response.json();\n }\n\n async deleteCanvas(id: string): Promise {\n const response = await fetch(`${API_BASE_URL}/${id}`, {\n method: \"DELETE\",\n headers: getAuthHeaders(),\n });\n if (!response.ok) {\n throw new Error(`Failed to delete canvas: ${response.statusText}`);\n }\n }\n}\n","import { createStore, set, get, del, entries } from \"idb-keyval\";\nimport { CanvasData, CanvasMetadata, IStorageAdapter } from \"./storage\";\n\nconst metadataStore = createStore(\"excalidraw-canvases-metadata\", \"metadata\");\nconst dataStore = createStore(\"excalidraw-canvases-data\", \"data\");\n\nexport class IndexedDBStorageAdapter implements IStorageAdapter {\n async listCanvases(): Promise {\n const allEntries = await entries(metadataStore);\n return allEntries.map(([, metadata]) => metadata);\n }\n\n async loadCanvas(id: string): Promise {\n const data = await get(id, dataStore);\n return data === undefined ? null : data;\n }\n\n async saveCanvas(id: string, data: CanvasData): Promise {\n const existingMetadata = await get(id, metadataStore);\n if (!existingMetadata) {\n throw new Error(\"Canvas metadata not found. Cannot save.\");\n }\n\n const updatedMetadata: CanvasMetadata = {\n ...existingMetadata,\n name: data.appState.name || existingMetadata.name,\n updatedAt: new Date().toISOString(),\n };\n\n await set(id, updatedMetadata, metadataStore);\n await set(id, data, dataStore);\n }\n\n async createCanvas(data: CanvasData): Promise {\n const newId = window.crypto.randomUUID();\n const now = new Date().toISOString();\n\n const newMetadata: CanvasMetadata = {\n id: newId,\n name: data.appState.name || \"Untitled Canvas\",\n createdAt: now,\n updatedAt: now,\n // UserID is 0 for local, non-synced canvases\n userId: 0,\n };\n\n await set(newId, newMetadata, metadataStore);\n await set(newId, data, dataStore);\n\n return newMetadata;\n }\n\n async deleteCanvas(id: string): Promise {\n await del(id, metadataStore);\n await del(id, dataStore);\n }\n}\n","import React from \"react\";\nimport { CanvasMetadata } from \"../data/storage\";\nimport { FilledButton } from \"../../packages/excalidraw/components/FilledButton\";\nimport { usersIcon } from \"../../packages/excalidraw/components/icons\";\n\ninterface MyCreationsTabProps {\n canvases: readonly CanvasMetadata[];\n onCanvasSelect: (id: string) => void;\n onCanvasDelete: (id: string) => void;\n onCanvasCreate: () => void;\n}\n\nexport const MyCreationsTab: React.FC = ({\n canvases,\n onCanvasSelect,\n onCanvasDelete,\n onCanvasCreate,\n}) => {\n return (\n
    \n
    \n \n Create New\n \n
    \n
    \n {canvases.length === 0 ? (\n
    \n {usersIcon}\n

    You have no saved canvases yet.

    \n

    \n Create a new canvas to get started. It will be saved here in your\n browser.\n

    \n
    \n ) : (\n canvases.map((canvas) => (\n onCanvasSelect(canvas.id)}\n >\n {canvas.name}\n \n {new Date(canvas.updatedAt).toLocaleDateString()}\n \n {\n e.stopPropagation();\n onCanvasDelete(canvas.id);\n }}\n >\n ×\n \n
    \n ))\n )}\n
    \n \n );\n}; ","import polyfill from \"../packages/excalidraw/polyfill\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { useCallback, useEffect, useRef, useState, useMemo } from \"react\";\nimport { trackEvent } from \"../packages/excalidraw/analytics\";\nimport { getDefaultAppState } from \"../packages/excalidraw/appState\";\nimport { ErrorDialog } from \"../packages/excalidraw/components/ErrorDialog\";\nimport { TopErrorBoundary } from \"./components/TopErrorBoundary\";\nimport {\n APP_NAME,\n EVENT,\n THEME,\n TITLE_TIMEOUT,\n VERSION_TIMEOUT,\n} from \"../packages/excalidraw/constants\";\nimport { loadFromBlob } from \"../packages/excalidraw/data/blob\";\nimport {\n ExcalidrawElement,\n FileId,\n NonDeletedExcalidrawElement,\n Theme,\n} from \"../packages/excalidraw/element/types\";\nimport { useCallbackRefState } from \"../packages/excalidraw/hooks/useCallbackRefState\";\nimport { t } from \"../packages/excalidraw/i18n\";\nimport {\n Excalidraw,\n defaultLang,\n LiveCollaborationTrigger,\n TTDDialog,\n TTDDialogTrigger,\n Sidebar,\n DefaultSidebar,\n} from \"../packages/excalidraw/index\";\nimport {\n AppState,\n ExcalidrawImperativeAPI,\n BinaryFiles,\n ExcalidrawInitialDataState,\n UIAppState,\n} from \"../packages/excalidraw/types\";\nimport {\n debounce,\n getVersion,\n getFrame,\n isTestEnv,\n preventUnload,\n ResolvablePromise,\n resolvablePromise,\n isRunningInIframe,\n} from \"../packages/excalidraw/utils\";\nimport {\n FIREBASE_STORAGE_PREFIXES,\n STORAGE_KEYS,\n SYNC_BROWSER_TABS_TIMEOUT,\n} from \"./app_constants\";\nimport Collab, {\n CollabAPI,\n collabAPIAtom,\n isCollaboratingAtom,\n isOfflineAtom,\n} from \"./collab/Collab\";\nimport {\n exportToBackend,\n getCollaborationLinkData,\n isCollaborationLink,\n loadScene,\n} from \"./data\";\nimport {\n importFromLocalStorage,\n importUsernameFromLocalStorage,\n} from \"./data/localStorage\";\nimport CustomStats from \"./CustomStats\";\nimport {\n restore,\n restoreAppState,\n RestoredDataState,\n} from \"../packages/excalidraw/data/restore\";\nimport {\n ExportToExcalidrawPlus,\n exportToExcalidrawPlus,\n} from \"./components/ExportToExcalidrawPlus\";\nimport { updateStaleImageStatuses } from \"./data/FileManager\";\nimport { newElementWith } from \"../packages/excalidraw/element/mutateElement\";\nimport { isInitializedImageElement } from \"../packages/excalidraw/element/typeChecks\";\nimport { loadFilesFromFirebase } from \"./data/firebase\";\nimport {\n LibraryIndexedDBAdapter,\n LibraryLocalStorageMigrationAdapter,\n LocalData,\n} from \"./data/LocalData\";\nimport { isBrowserStorageStateNewer } from \"./data/tabSync\";\nimport clsx from \"clsx\";\nimport { reconcileElements } from \"./collab/reconciliation\";\nimport {\n parseLibraryTokensFromUrl,\n useHandleLibrary,\n} from \"../packages/excalidraw/data/library\";\nimport { AppMainMenu } from \"./components/AppMainMenu\";\nimport { AppWelcomeScreen } from \"./components/AppWelcomeScreen\";\nimport { AppFooter } from \"./components/AppFooter\";\nimport { atom, Provider, useAtom, useAtomValue } from \"jotai\";\nimport { useAtomWithInitialValue } from \"../packages/excalidraw/jotai\";\nimport { appJotaiStore, storageConfigAtom, userAtom } from \"./app-jotai\";\nimport { jwtDecode } from \"jwt-decode\";\n\nimport \"./index.scss\";\nimport { ResolutionType } from \"../packages/excalidraw/utility-types\";\nimport { ShareableLinkDialog } from \"../packages/excalidraw/components/ShareableLinkDialog\";\nimport { openConfirmModal } from \"../packages/excalidraw/components/OverwriteConfirm/OverwriteConfirmState\";\nimport { OverwriteConfirmDialog } from \"../packages/excalidraw/components/OverwriteConfirm/OverwriteConfirm\";\nimport Trans from \"../packages/excalidraw/components/Trans\";\nimport { ShareDialog, shareDialogStateAtom } from \"./share/ShareDialog\";\nimport CollabError, { collabErrorIndicatorAtom } from \"./collab/CollabError\";\nimport StorageSettingsDialog from \"./components/StorageSettingsDialog\";\nimport MyCreationsSidebar from \"./components/MyCreationsSidebar\";\nimport { menu, usersIcon } from \"../packages/excalidraw/components/icons\";\nimport { BackendStorageAdapter } from \"./data/BackendStorageAdapter\";\nimport { IndexedDBStorageAdapter } from \"./data/IndexedDBStorageAdapter\";\nimport { CanvasMetadata, IStorageAdapter } from \"./data/storage\";\nimport { MyCreationsTab } from \"./components/MyCreationsTab\";\n\npolyfill();\n\nwindow.EXCALIDRAW_THROTTLE_RENDER = true;\n\nconst MY_CREATIONS_SIDEBAR_TAB = \"my-creations\";\n\nlet isSelfEmbedding = false;\n\nif (window.self !== window.top) {\n try {\n const parentUrl = new URL(document.referrer);\n const currentUrl = new URL(window.location.href);\n if (parentUrl.origin === currentUrl.origin) {\n isSelfEmbedding = true;\n }\n } catch (error) {\n // ignore\n }\n}\n\nconst languageDetector = new LanguageDetector();\nlanguageDetector.init({\n languageUtils: {},\n});\n\nconst shareableLinkConfirmDialog = {\n title: t(\"overwriteConfirm.modal.shareableLink.title\"),\n description: (\n {text}}\n br={() =>
    }\n />\n ),\n actionLabel: t(\"overwriteConfirm.modal.shareableLink.button\"),\n color: \"danger\",\n} as const;\n\nconst initializeScene = async (opts: {\n collabAPI: CollabAPI | null;\n excalidrawAPI: ExcalidrawImperativeAPI;\n}): Promise<\n { scene: ExcalidrawInitialDataState | null } & (\n | { isExternalScene: true; id: string; key: string }\n | { isExternalScene: false; id?: null; key?: null }\n )\n> => {\n const searchParams = new URLSearchParams(window.location.search);\n const id = searchParams.get(\"id\");\n const jsonBackendMatch = window.location.hash.match(\n /^#json=([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+)$/,\n );\n const externalUrlMatch = window.location.hash.match(/^#url=(.*)$/);\n\n const localDataState = importFromLocalStorage();\n\n let scene: RestoredDataState & {\n scrollToContent?: boolean;\n } = await loadScene(null, null, localDataState);\n\n let roomLinkData = getCollaborationLinkData(window.location.href);\n const isExternalScene = !!(id || jsonBackendMatch || roomLinkData);\n if (isExternalScene) {\n if (\n // don't prompt if scene is empty\n !scene.elements.length ||\n // don't prompt for collab scenes because we don't override local storage\n roomLinkData ||\n // otherwise, prompt whether user wants to override current scene\n (await openConfirmModal(shareableLinkConfirmDialog))\n ) {\n if (jsonBackendMatch) {\n scene = await loadScene(\n jsonBackendMatch[1],\n jsonBackendMatch[2],\n localDataState,\n );\n }\n scene.scrollToContent = true;\n if (!roomLinkData) {\n window.history.replaceState({}, APP_NAME, window.location.origin);\n }\n } else {\n // https://github.com/excalidraw/excalidraw/issues/1919\n if (document.hidden) {\n return new Promise((resolve, reject) => {\n window.addEventListener(\n \"focus\",\n () => initializeScene(opts).then(resolve).catch(reject),\n {\n once: true,\n },\n );\n });\n }\n\n roomLinkData = null;\n window.history.replaceState({}, APP_NAME, window.location.origin);\n }\n } else if (externalUrlMatch) {\n window.history.replaceState({}, APP_NAME, window.location.origin);\n\n const url = externalUrlMatch[1];\n try {\n const request = await fetch(window.decodeURIComponent(url));\n const data = await loadFromBlob(await request.blob(), null, null);\n if (\n !scene.elements.length ||\n (await openConfirmModal(shareableLinkConfirmDialog))\n ) {\n return { scene: data, isExternalScene };\n }\n } catch (error: any) {\n return {\n scene: {\n appState: {\n errorMessage: t(\"alerts.invalidSceneUrl\"),\n },\n },\n isExternalScene,\n };\n }\n }\n\n if (roomLinkData && opts.collabAPI) {\n const { excalidrawAPI } = opts;\n\n const scene = await opts.collabAPI.startCollaboration(roomLinkData);\n\n return {\n // when collaborating, the state may have already been updated at this\n // point (we may have received updates from other clients), so reconcile\n // elements and appState with existing state\n scene: {\n ...scene,\n appState: {\n ...restoreAppState(\n {\n ...scene?.appState,\n theme: localDataState?.appState?.theme || scene?.appState?.theme,\n },\n excalidrawAPI.getAppState(),\n ),\n // necessary if we're invoking from a hashchange handler which doesn't\n // go through App.initializeScene() that resets this flag\n isLoading: false,\n },\n elements: reconcileElements(\n scene?.elements || [],\n excalidrawAPI.getSceneElementsIncludingDeleted(),\n excalidrawAPI.getAppState(),\n ),\n },\n isExternalScene: true,\n id: roomLinkData.roomId,\n key: roomLinkData.roomKey,\n };\n } else if (scene) {\n return isExternalScene && jsonBackendMatch\n ? {\n scene,\n isExternalScene,\n id: jsonBackendMatch[1],\n key: jsonBackendMatch[2],\n }\n : { scene, isExternalScene: false };\n }\n return { scene: null, isExternalScene: false };\n};\n\nconst detectedLangCode = languageDetector.detect() || defaultLang.code;\nexport const appLangCodeAtom = atom(\n Array.isArray(detectedLangCode) ? detectedLangCode[0] : detectedLangCode,\n);\n\nconst ExcalidrawWrapper = () => {\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [langCode, setLangCode] = useAtom(appLangCodeAtom);\n const [user, setUser] = useAtom(userAtom);\n const [storageConfig] = useAtom(storageConfigAtom);\n const [isStorageSettingsOpen, setIsStorageSettingsOpen] = useState(false);\n const [userCanvases, setUserCanvases] = useState([]);\n const isCollabDisabled = isRunningInIframe();\n\n const storageAdapter: IStorageAdapter = useMemo(() => {\n if (storageConfig.type === \"default\" && user) {\n return new BackendStorageAdapter();\n }\n return new IndexedDBStorageAdapter();\n }, [storageConfig, user]);\n\n // initial state\n // ---------------------------------------------------------------------------\n\n const initialStatePromiseRef = useRef<{\n promise: ResolvablePromise;\n }>({ promise: null! });\n if (!initialStatePromiseRef.current.promise) {\n initialStatePromiseRef.current.promise =\n resolvablePromise();\n }\n\n useEffect(() => {\n trackEvent(\"load\", \"frame\", getFrame());\n // Delayed so that the app has a time to load the latest SW\n setTimeout(() => {\n trackEvent(\"load\", \"version\", getVersion());\n }, VERSION_TIMEOUT);\n }, []);\n\n const [excalidrawAPI, excalidrawRefCallback] =\n useCallbackRefState();\n\n const [, setShareDialogState] = useAtom(shareDialogStateAtom);\n const [collabAPI] = useAtom(collabAPIAtom);\n const [isCollaborating] = useAtomWithInitialValue(isCollaboratingAtom, () => {\n return isCollaborationLink(window.location.href);\n });\n const collabError = useAtomValue(collabErrorIndicatorAtom);\n\n useHandleLibrary({\n excalidrawAPI,\n adapter: LibraryIndexedDBAdapter,\n // TODO maybe remove this in several months (shipped: 24-03-11)\n migrationAdapter: LibraryLocalStorageMigrationAdapter,\n });\n\n useEffect(() => {\n const searchParams = new URLSearchParams(window.location.search);\n const token = searchParams.get(\"token\");\n if (token) {\n localStorage.setItem(\"token\", token);\n // Clean up the URL\n window.history.replaceState({}, document.title, window.location.pathname);\n }\n\n const storedToken = localStorage.getItem(\"token\");\n if (storedToken) {\n try {\n const decodedToken: any = jwtDecode(storedToken);\n if (decodedToken.exp * 1000 > Date.now()) {\n setUser({\n id: decodedToken.userId,\n githubId: decodedToken.githubId,\n login: decodedToken.login,\n avatarUrl: decodedToken.avatarUrl,\n name: decodedToken.name,\n });\n } else {\n // Token expired\n localStorage.removeItem(\"token\");\n }\n } catch (error) {\n console.error(\"Invalid token:\", error);\n localStorage.removeItem(\"token\");\n }\n }\n }, [setUser]);\n\n const refreshUserCanvases = useCallback(async () => {\n try {\n const canvases = await storageAdapter.listCanvases();\n setUserCanvases(canvases);\n } catch (error) {\n console.error(\"Failed to fetch user canvases\", error);\n setErrorMessage(\"Could not load your creations.\");\n }\n }, [storageAdapter]);\n\n useEffect(() => {\n // Refresh canvases when the sidebar is opened, by checking appState\n if (\n excalidrawAPI?.getAppState().openSidebar?.tab === MY_CREATIONS_SIDEBAR_TAB\n ) {\n refreshUserCanvases();\n }\n }, [excalidrawAPI?.getAppState().openSidebar, refreshUserCanvases]);\n\n useEffect(() => {\n if (!excalidrawAPI || (!isCollabDisabled && !collabAPI)) {\n return;\n }\n\n const loadImages = (\n data: ResolutionType,\n isInitialLoad = false,\n ) => {\n if (!data.scene) {\n return;\n }\n if (collabAPI?.isCollaborating()) {\n if (data.scene.elements) {\n collabAPI\n .fetchImageFilesFromFirebase({\n elements: data.scene.elements,\n forceFetchFiles: true,\n })\n .then(({ loadedFiles, erroredFiles }) => {\n excalidrawAPI.addFiles(loadedFiles);\n updateStaleImageStatuses({\n excalidrawAPI,\n erroredFiles,\n elements: excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n });\n }\n } else {\n const fileIds =\n data.scene.elements?.reduce((acc, element) => {\n if (isInitializedImageElement(element)) {\n return acc.concat(element.fileId);\n }\n return acc;\n }, [] as FileId[]) || [];\n\n if (data.isExternalScene) {\n loadFilesFromFirebase(\n `${FIREBASE_STORAGE_PREFIXES.shareLinkFiles}/${data.id}`,\n data.key,\n fileIds,\n ).then(({ loadedFiles, erroredFiles }) => {\n excalidrawAPI.addFiles(loadedFiles);\n updateStaleImageStatuses({\n excalidrawAPI,\n erroredFiles,\n elements: excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n });\n } else if (isInitialLoad) {\n if (fileIds.length) {\n LocalData.fileStorage\n .getFiles(fileIds)\n .then(({ loadedFiles, erroredFiles }) => {\n if (loadedFiles.length) {\n excalidrawAPI.addFiles(loadedFiles);\n }\n updateStaleImageStatuses({\n excalidrawAPI,\n erroredFiles,\n elements: excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n });\n }\n // on fresh load, clear unused files from IDB (from previous\n // session)\n LocalData.fileStorage.clearObsoleteFiles({ currentFileIds: fileIds });\n }\n }\n };\n\n initializeScene({ collabAPI, excalidrawAPI }).then(async (data) => {\n loadImages(data, /* isInitialLoad */ true);\n initialStatePromiseRef.current.promise.resolve(data.scene);\n });\n\n const onHashChange = async (event: HashChangeEvent) => {\n event.preventDefault();\n const libraryUrlTokens = parseLibraryTokensFromUrl();\n if (!libraryUrlTokens) {\n if (\n collabAPI?.isCollaborating() &&\n !isCollaborationLink(window.location.href)\n ) {\n collabAPI.stopCollaboration(false);\n }\n excalidrawAPI.updateScene({ appState: { isLoading: true } });\n\n initializeScene({ collabAPI, excalidrawAPI }).then((data) => {\n loadImages(data);\n if (data.scene) {\n excalidrawAPI.updateScene({\n ...data.scene,\n ...restore(data.scene, null, null, { repairBindings: true }),\n commitToHistory: true,\n });\n }\n });\n }\n };\n\n const titleTimeout = setTimeout(\n () => (document.title = APP_NAME),\n TITLE_TIMEOUT,\n );\n\n const syncData = debounce(() => {\n if (isTestEnv()) {\n return;\n }\n if (\n !document.hidden &&\n ((collabAPI && !collabAPI.isCollaborating()) || isCollabDisabled)\n ) {\n // don't sync if local state is newer or identical to browser state\n if (isBrowserStorageStateNewer(STORAGE_KEYS.VERSION_DATA_STATE)) {\n const localDataState = importFromLocalStorage();\n const username = importUsernameFromLocalStorage();\n let langCode = languageDetector.detect() || defaultLang.code;\n if (Array.isArray(langCode)) {\n langCode = langCode[0];\n }\n setLangCode(langCode);\n excalidrawAPI.updateScene({\n ...localDataState,\n });\n LibraryIndexedDBAdapter.load().then((data) => {\n if (data) {\n excalidrawAPI.updateLibrary({\n libraryItems: data.libraryItems,\n });\n }\n });\n collabAPI?.setUsername(username || \"\");\n }\n\n if (isBrowserStorageStateNewer(STORAGE_KEYS.VERSION_FILES)) {\n const elements = excalidrawAPI.getSceneElementsIncludingDeleted();\n const currFiles = excalidrawAPI.getFiles();\n const fileIds =\n elements?.reduce((acc, element) => {\n if (\n isInitializedImageElement(element) &&\n // only load and update images that aren't already loaded\n !currFiles[element.fileId]\n ) {\n return acc.concat(element.fileId);\n }\n return acc;\n }, [] as FileId[]) || [];\n if (fileIds.length) {\n LocalData.fileStorage\n .getFiles(fileIds)\n .then(({ loadedFiles, erroredFiles }) => {\n if (loadedFiles.length) {\n excalidrawAPI.addFiles(loadedFiles);\n }\n updateStaleImageStatuses({\n excalidrawAPI,\n erroredFiles,\n elements: excalidrawAPI.getSceneElementsIncludingDeleted(),\n });\n });\n }\n }\n }\n }, SYNC_BROWSER_TABS_TIMEOUT);\n\n const onUnload = () => {\n LocalData.flushSave();\n };\n\n const visibilityChange = (event: FocusEvent | Event) => {\n if (event.type === EVENT.BLUR || document.hidden) {\n LocalData.flushSave();\n }\n if (\n event.type === EVENT.VISIBILITY_CHANGE ||\n event.type === EVENT.FOCUS\n ) {\n syncData();\n }\n };\n\n window.addEventListener(EVENT.HASHCHANGE, onHashChange, false);\n window.addEventListener(EVENT.UNLOAD, onUnload, false);\n window.addEventListener(EVENT.BLUR, visibilityChange, false);\n document.addEventListener(EVENT.VISIBILITY_CHANGE, visibilityChange, false);\n window.addEventListener(EVENT.FOCUS, visibilityChange, false);\n return () => {\n window.removeEventListener(EVENT.HASHCHANGE, onHashChange, false);\n window.removeEventListener(EVENT.UNLOAD, onUnload, false);\n window.removeEventListener(EVENT.BLUR, visibilityChange, false);\n window.removeEventListener(EVENT.FOCUS, visibilityChange, false);\n document.removeEventListener(\n EVENT.VISIBILITY_CHANGE,\n visibilityChange,\n false,\n );\n clearTimeout(titleTimeout);\n };\n }, [isCollabDisabled, collabAPI, excalidrawAPI, setLangCode, user]);\n\n useEffect(() => {\n const unloadHandler = (event: BeforeUnloadEvent) => {\n LocalData.flushSave();\n\n if (\n excalidrawAPI &&\n LocalData.fileStorage.shouldPreventUnload(\n excalidrawAPI.getSceneElements(),\n )\n ) {\n preventUnload(event);\n }\n };\n window.addEventListener(EVENT.BEFORE_UNLOAD, unloadHandler);\n return () => {\n window.removeEventListener(EVENT.BEFORE_UNLOAD, unloadHandler);\n };\n }, [excalidrawAPI]);\n\n useEffect(() => {\n languageDetector.cacheUserLanguage(langCode);\n }, [langCode]);\n\n const [theme, setTheme] = useState(\n () =>\n (localStorage.getItem(\n STORAGE_KEYS.LOCAL_STORAGE_THEME,\n ) as Theme | null) ||\n // FIXME migration from old LS scheme. Can be removed later. #5660\n importFromLocalStorage().appState?.theme ||\n THEME.LIGHT,\n );\n\n useEffect(() => {\n localStorage.setItem(STORAGE_KEYS.LOCAL_STORAGE_THEME, theme);\n // currently only used for body styling during init (see public/index.html),\n // but may change in the future\n document.documentElement.classList.toggle(\"dark\", theme === THEME.DARK);\n }, [theme]);\n\n const onChange = (\n elements: readonly ExcalidrawElement[],\n appState: AppState,\n files: BinaryFiles,\n ) => {\n if (collabAPI?.isCollaborating()) {\n collabAPI.syncElements(elements);\n }\n\n setTheme(appState.theme);\n\n // this check is redundant, but since this is a hot path, it's best\n // not to evaludate the nested expression every time\n if (!LocalData.isSavePaused()) {\n LocalData.save(elements, appState, files, () => {\n if (excalidrawAPI) {\n let didChange = false;\n\n const elements = excalidrawAPI\n .getSceneElementsIncludingDeleted()\n .map((element) => {\n if (\n LocalData.fileStorage.shouldUpdateImageElementStatus(element)\n ) {\n const newElement = newElementWith(element, { status: \"saved\" });\n if (newElement !== element) {\n didChange = true;\n }\n return newElement;\n }\n return element;\n });\n\n if (didChange) {\n excalidrawAPI.updateScene({\n elements,\n });\n }\n }\n });\n }\n };\n\n const [latestShareableLink, setLatestShareableLink] = useState(\n null,\n );\n\n const onExportToBackend = async (\n exportedElements: readonly NonDeletedExcalidrawElement[],\n appState: Partial,\n files: BinaryFiles,\n ) => {\n if (exportedElements.length === 0) {\n throw new Error(t(\"alerts.cannotExportEmptyCanvas\"));\n }\n try {\n const { url, errorMessage } = await exportToBackend(\n exportedElements,\n {\n ...appState,\n viewBackgroundColor: appState.exportBackground\n ? appState.viewBackgroundColor\n : getDefaultAppState().viewBackgroundColor,\n },\n files,\n );\n\n if (errorMessage) {\n throw new Error(errorMessage);\n }\n\n if (url) {\n setLatestShareableLink(url);\n }\n } catch (error: any) {\n if (error.name !== \"AbortError\") {\n const { width, height } = appState;\n console.error(error, {\n width,\n height,\n devicePixelRatio: window.devicePixelRatio,\n });\n throw new Error(error.message);\n }\n }\n };\n\n const renderCustomStats = (\n elements: readonly NonDeletedExcalidrawElement[],\n appState: UIAppState,\n ) => {\n return (\n excalidrawAPI!.setToast({ message })}\n appState={appState}\n elements={elements}\n />\n );\n };\n\n const isOffline = useAtomValue(isOfflineAtom);\n\n const onCollabDialogOpen = useCallback(\n () => setShareDialogState({ isOpen: true, type: \"collaborationOnly\" }),\n [setShareDialogState],\n );\n\n const handleCanvasSelect = async (id: string) => {\n try {\n const canvasData = await storageAdapter.loadCanvas(id);\n if (canvasData && excalidrawAPI) {\n // Close sidebar before loading new scene\n excalidrawAPI.updateScene({ appState: { openSidebar: null } });\n\n excalidrawAPI.addFiles(Object.values(canvasData.files));\n excalidrawAPI.updateScene({\n elements: canvasData.elements,\n appState: canvasData.appState,\n commitToHistory: true,\n });\n }\n } catch (error) {\n setErrorMessage(\"Could not load the canvas.\");\n }\n };\n\n const handleCanvasDelete = async (id: string) => {\n if (window.confirm(\"Are you sure you want to delete this canvas?\")) {\n try {\n await storageAdapter.deleteCanvas(id);\n refreshUserCanvases();\n } catch (error) {\n setErrorMessage(\"Could not delete the canvas.\");\n }\n }\n };\n\n const handleCanvasCreate = async () => {\n const newName = window.prompt(\n \"Enter a name for your new canvas:\",\n \"Untitled Canvas\",\n );\n if (newName && excalidrawAPI) {\n const appState = { ...excalidrawAPI.getAppState(), name: newName };\n const elements = excalidrawAPI.getSceneElements();\n const files = excalidrawAPI.getFiles();\n\n try {\n await storageAdapter.createCanvas({\n elements,\n appState,\n files,\n });\n await refreshUserCanvases();\n excalidrawAPI.resetScene();\n excalidrawAPI.updateScene({ appState: { name: newName } });\n // Optional: load the newly created canvas? For now, we just refresh the list.\n } catch (error) {\n setErrorMessage(\"Could not create new canvas.\");\n }\n }\n };\n\n // browsers generally prevent infinite self-embedding, there are\n // cases where it still happens, and while we disallow self-embedding\n // by not whitelisting our own origin, this serves as an additional guard\n if (isSelfEmbedding) {\n return (\n \n

    I'm not a pretzel!

    \n \n );\n }\n\n return (\n \n {\n return (\n {\n excalidrawAPI?.updateScene({\n appState: {\n errorMessage: error.message,\n },\n });\n }}\n onSuccess={() => {\n excalidrawAPI.updateScene({\n appState: { openDialog: null },\n });\n }}\n />\n );\n }\n : undefined,\n },\n },\n }}\n langCode={langCode}\n renderCustomStats={renderCustomStats}\n detectScroll={false}\n handleKeyboardGlobally={true}\n autoFocus={true}\n theme={theme}\n renderTopRightUI={(isMobile) => {\n if (isMobile || !collabAPI || isCollabDisabled) {\n return null;\n }\n return (\n
    \n {collabError.message && }\n \n setShareDialogState({ isOpen: true, type: \"share\" })\n }\n />\n
    \n );\n }}\n >\n setIsStorageSettingsOpen(true)}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n {excalidrawAPI && (\n {\n exportToExcalidrawPlus(\n excalidrawAPI.getSceneElements(),\n excalidrawAPI.getAppState(),\n excalidrawAPI.getFiles(),\n excalidrawAPI.getName(),\n );\n }}\n >\n {t(\"overwriteConfirm.action.excalidrawPlus.description\")}\n \n )}\n \n \n {\n try {\n const response = await fetch(\n `${\n import.meta.env.VITE_APP_AI_BACKEND\n }/v1/ai/text-to-diagram/generate`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ prompt: input }),\n },\n );\n\n const rateLimit = response.headers.has(\"X-Ratelimit-Limit\")\n ? parseInt(response.headers.get(\"X-Ratelimit-Limit\") || \"0\", 10)\n : undefined;\n\n const rateLimitRemaining = response.headers.has(\n \"X-Ratelimit-Remaining\",\n )\n ? parseInt(\n response.headers.get(\"X-Ratelimit-Remaining\") || \"0\",\n 10,\n )\n : undefined;\n\n const json = await response.json();\n\n if (!response.ok) {\n if (response.status === 429) {\n return {\n rateLimit,\n rateLimitRemaining,\n error: new Error(\n \"Too many requests today, please try again tomorrow!\",\n ),\n };\n }\n\n throw new Error(json.message || \"Generation failed...\");\n }\n\n const generatedResponse = json.generatedResponse;\n if (!generatedResponse) {\n throw new Error(\"Generation failed...\");\n }\n\n return { generatedResponse, rateLimit, rateLimitRemaining };\n } catch (err: any) {\n throw new Error(\"Request failed\");\n }\n }}\n />\n \n {isCollaborating && isOffline && (\n
    \n {t(\"alerts.collabOfflineWarning\")}\n
    \n )}\n {latestShareableLink && (\n setLatestShareableLink(null)}\n setErrorMessage={setErrorMessage}\n />\n )}\n {excalidrawAPI && !isCollabDisabled && (\n \n )}\n\n {\n if (excalidrawAPI) {\n try {\n await onExportToBackend(\n excalidrawAPI.getSceneElements(),\n excalidrawAPI.getAppState(),\n excalidrawAPI.getFiles(),\n );\n } catch (error: any) {\n setErrorMessage(error.message);\n }\n }\n }}\n />\n\n {isStorageSettingsOpen && (\n setIsStorageSettingsOpen(false)}\n />\n )}\n {errorMessage && (\n setErrorMessage(\"\")}>\n {errorMessage}\n \n )}\n \n \n );\n};\n\nconst ExcalidrawApp = () => {\n return (\n \n appJotaiStore}>\n \n \n \n );\n};\n\nexport default ExcalidrawApp;\n","// src/client/build/register.ts\nvar autoUpdateMode = \"true\";\nvar selfDestroying = \"false\";\nvar auto = autoUpdateMode === \"true\";\nvar autoDestroy = selfDestroying === \"true\";\nfunction registerSW(options = {}) {\n const {\n immediate = false,\n onNeedRefresh,\n onOfflineReady,\n onRegistered,\n onRegisteredSW,\n onRegisterError\n } = options;\n let wb;\n let registerPromise;\n let sendSkipWaitingMessage;\n const updateServiceWorker = async (_reloadPage = true) => {\n await registerPromise;\n if (!auto) {\n await sendSkipWaitingMessage?.();\n }\n };\n async function register() {\n if (\"serviceWorker\" in navigator) {\n const { Workbox } = await import(\"workbox-window\");\n wb = new Workbox(\"/sw.js\", { scope: \"/\", type: \"classic\" });\n sendSkipWaitingMessage = async () => {\n await wb?.messageSkipWaiting();\n };\n if (!autoDestroy) {\n if (auto) {\n wb.addEventListener(\"activated\", (event) => {\n if (event.isUpdate || event.isExternal)\n window.location.reload();\n });\n wb.addEventListener(\"installed\", (event) => {\n if (!event.isUpdate) {\n onOfflineReady?.();\n }\n });\n } else {\n let onNeedRefreshCalled = false;\n const showSkipWaitingPrompt = () => {\n onNeedRefreshCalled = true;\n wb?.addEventListener(\"controlling\", (event) => {\n if (event.isUpdate)\n window.location.reload();\n });\n onNeedRefresh?.();\n };\n wb.addEventListener(\"installed\", (event) => {\n if (typeof event.isUpdate === \"undefined\") {\n if (typeof event.isExternal !== \"undefined\") {\n if (event.isExternal)\n showSkipWaitingPrompt();\n else\n !onNeedRefreshCalled && onOfflineReady?.();\n } else {\n if (event.isExternal)\n window.location.reload();\n else\n !onNeedRefreshCalled && onOfflineReady?.();\n }\n } else if (!event.isUpdate) {\n onOfflineReady?.();\n }\n });\n wb.addEventListener(\"waiting\", showSkipWaitingPrompt);\n wb.addEventListener(\"externalwaiting\", showSkipWaitingPrompt);\n }\n }\n wb.register({ immediate }).then((r) => {\n if (onRegisteredSW)\n onRegisteredSW(\"/sw.js\", r);\n else\n onRegistered?.(r);\n }).catch((e) => {\n onRegisterError?.(e);\n });\n }\n }\n registerPromise = register();\n return updateServiceWorker;\n}\nexport {\n registerSW\n};\n","import { Severity } from '@sentry/types';\nimport { fill, getGlobalObject, safeJoin } from '@sentry/utils';\nvar global = getGlobalObject();\n/** Send Console API calls as Sentry Events */\nvar CaptureConsole = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function CaptureConsole(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = CaptureConsole.id;\n /**\n * @inheritDoc\n */\n this._levels = ['log', 'info', 'warn', 'error', 'debug', 'assert'];\n if (options.levels) {\n this._levels = options.levels;\n }\n }\n /**\n * @inheritDoc\n */\n CaptureConsole.prototype.setupOnce = function (_, getCurrentHub) {\n if (!('console' in global)) {\n return;\n }\n this._levels.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(global.console, level, function (originalConsoleLevel) { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub.getIntegration(CaptureConsole)) {\n hub.withScope(function (scope) {\n scope.setLevel(Severity.fromString(level));\n scope.setExtra('arguments', args);\n scope.addEventProcessor(function (event) {\n event.logger = 'console';\n return event;\n });\n var message = safeJoin(args, ' ');\n if (level === 'assert') {\n if (args[0] === false) {\n message = \"Assertion failed: \" + (safeJoin(args.slice(1), ' ') || 'console.assert');\n scope.setExtra('arguments', args.slice(1));\n hub.captureMessage(message);\n }\n }\n else {\n hub.captureMessage(message);\n }\n });\n }\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n }; });\n });\n };\n /**\n * @inheritDoc\n */\n CaptureConsole.id = 'CaptureConsole';\n return CaptureConsole;\n}());\nexport { CaptureConsole };\n//# sourceMappingURL=captureconsole.js.map","import * as Sentry from \"@sentry/browser\";\nimport * as SentryIntegrations from \"@sentry/integrations\";\n\nconst SentryEnvHostnameMap: { [key: string]: string } = {\n \"excalidraw.com\": \"production\",\n \"vercel.app\": \"staging\",\n};\n\nconst SENTRY_DISABLED = import.meta.env.VITE_APP_DISABLE_SENTRY === \"true\";\n\n// Disable Sentry locally or inside the Docker to avoid noise/respect privacy\nconst onlineEnv =\n !SENTRY_DISABLED &&\n Object.keys(SentryEnvHostnameMap).find(\n (item) => window.location.hostname.indexOf(item) >= 0,\n );\n\nSentry.init({\n dsn: onlineEnv\n ? \"https://7bfc596a5bf945eda6b660d3015a5460@sentry.io/5179260\"\n : undefined,\n environment: onlineEnv ? SentryEnvHostnameMap[onlineEnv] : undefined,\n release: import.meta.env.VITE_APP_GIT_SHA,\n ignoreErrors: [\n \"undefined is not an object (evaluating 'window.__pad.performLoop')\", // Only happens on Safari, but spams our servers. Doesn't break anything\n ],\n integrations: [\n new SentryIntegrations.CaptureConsole({\n levels: [\"error\"],\n }),\n ],\n beforeSend(event) {\n if (event.request?.url) {\n event.request.url = event.request.url.replace(/#.*$/, \"\");\n }\n return event;\n },\n});\n","import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport ExcalidrawApp from \"./App\";\nimport { registerSW } from \"virtual:pwa-register\";\n\nimport \"../excalidraw-app/sentry\";\nwindow.__EXCALIDRAW_SHA__ = import.meta.env.VITE_APP_GIT_SHA;\nconst rootElement = document.getElementById(\"root\")!;\nconst root = createRoot(rootElement);\nregisterSW();\nroot.render(\n \n \n ,\n);\n"],"file":"assets/index-2K3MavtT.js"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index-4wu8EIXu.css b/excalidraw/excalidraw-app/build/assets/index-4wu8EIXu.css deleted file mode 100644 index d08079e..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-4wu8EIXu.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.excalidraw .ToolIcon{border-radius:var(--border-radius-lg);display:inline-flex;align-items:center;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.excalidraw .ToolIcon__hidden{display:none!important}.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon,.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon{--icon-fill-color: var(--color-on-primary-container)}.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg{fill:var(--icon-fill-color)}.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon,.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon{background:var(--color-surface-primary-container);--keybinding-color: var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon__keybinding{bottom:4px;right:4px}.excalidraw .ToolIcon .ToolIcon__icon:hover{background:var(--button-hover-bg)}.excalidraw .ToolIcon .ToolIcon__icon:active{background:var(--button-hover-bg);border:1px solid var(--button-active-border)}.excalidraw .ToolIcon .ToolIcon__icon:active svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon--plain{background-color:transparent}.excalidraw .ToolIcon--plain .ToolIcon__icon{width:2rem;height:2rem}.excalidraw .ToolIcon_type_radio,.excalidraw .ToolIcon_type_checkbox{position:absolute;opacity:0;pointer-events:none}.excalidraw .ToolIcon__icon{box-sizing:border-box;width:var(--default-button-size);height:var(--default-button-size);color:var(--icon-fill-color);display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-lg)}.excalidraw .ToolIcon__icon+.ToolIcon__label{margin-inline-start:0}.excalidraw .ToolIcon__icon svg{position:relative;width:var(--default-icon-size);height:var(--default-icon-size);color:var(--icon-fill-color)}.excalidraw .ToolIcon__label{display:flex;align-items:center;color:var(--icon-fill-color);font-family:var(--ui-font);margin:0 .8em;text-overflow:ellipsis}.excalidraw .ToolIcon__label .Spinner{margin-left:.6em}.excalidraw .ToolIcon_size_small .ToolIcon__icon{width:2rem;height:2rem;font-size:.8em}.excalidraw .ToolIcon_type_button,.excalidraw .Modal .ToolIcon_type_button{padding:0;border:none;margin:0;font-size:inherit;background-color:initial}.excalidraw .ToolIcon_type_button:focus-visible,.excalidraw .Modal .ToolIcon_type_button:focus-visible{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .ToolIcon_type_button.ToolIcon--selected,.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected{background-color:var(--button-gray-2)}.excalidraw .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .ToolIcon_type_button:active,.excalidraw .Modal .ToolIcon_type_button:active{background-color:var(--button-gray-3)}.excalidraw .ToolIcon_type_button--show,.excalidraw .Modal .ToolIcon_type_button--show{visibility:visible}.excalidraw .ToolIcon_type_button--hide,.excalidraw .Modal .ToolIcon_type_button--hide{display:none!important}.excalidraw .ToolIcon_type_floating,.excalidraw .ToolIcon_type_floating:hover,.excalidraw .ToolIcon_type_floating:active{background-color:transparent}.excalidraw .ToolIcon_type_floating .ToolIcon__icon{background-color:var(--button-gray-1);width:2rem;height:2rem}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover{background-color:var(--button-gray-2)}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active{background-color:var(--button-gray-3)}.excalidraw .ToolIcon__keybinding{position:absolute;bottom:2px;right:3px;font-size:.625rem;color:var(--keybinding-color);font-family:var(--ui-font);-webkit-user-select:none;user-select:none}:root[dir=ltr] .excalidraw .unlocked-icon{left:2px}:root[dir=rtl] .excalidraw .unlocked-icon{right:2px}.excalidraw .App-toolbar-container .ToolIcon__icon{width:var(--lg-button-size);height:var(--lg-button-size)}@media screen and (max-width: 450px){.excalidraw .App-toolbar-container .ToolIcon__icon{width:1.8rem;height:1.8rem}}@media screen and (max-width: 379px){.excalidraw .App-toolbar-container .ToolIcon__icon{width:1.5rem;height:1.5rem}}.excalidraw .App-toolbar-container .ToolIcon__icon svg{width:var(--lg-icon-size);height:var(--lg-icon-size)}.excalidraw .App-toolbar-container .ToolIcon__LaserPointer .ToolIcon__icon,.excalidraw .App-toolbar-container .ToolIcon__MagicButton .ToolIcon__icon{width:var(--default-button-size);height:var(--default-button-size)}.excalidraw .Spinner{display:flex;align-items:center;justify-content:center;height:100%;margin-left:auto;margin-right:auto;--spinner-color: var(--icon-fill-color)}.excalidraw .Spinner svg{animation:rotate 1.6s linear infinite;animation-delay:var(--spinner-delay);transform-origin:center center}.excalidraw .Spinner circle{stroke:var(--spinner-color);animation:dash 1.6s linear 0s infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,300;stroke-dashoffset:0}50%{stroke-dasharray:150,300;stroke-dashoffset:-200}to{stroke-dasharray:1,300;stroke-dashoffset:-280}}.excalidraw .excalidraw-eye-dropper-container,.excalidraw .excalidraw-eye-dropper-backdrop{position:absolute;width:100%;height:100%;z-index:var(--zIndex-eyeDropperBackdrop);touch-action:none}.excalidraw .excalidraw-eye-dropper-container{pointer-events:none}.excalidraw .excalidraw-eye-dropper-backdrop{pointer-events:all}.excalidraw .excalidraw-eye-dropper-preview{pointer-events:none;width:3rem;height:3rem;position:fixed;z-index:var(--zIndex-eyeDropperPreview);border-radius:1rem;border:1px solid var(--default-border-color);filter:var(--theme-filter)}.excalidraw .excalidraw-eye-dropper-trigger{width:1.25rem;height:1.25rem;cursor:pointer;padding:4px;margin-right:-4px;margin-left:-2px;border-radius:.5rem;color:var(--icon-fill-color)}.excalidraw .excalidraw-eye-dropper-trigger:hover{background:var(--button-hover-bg)}.excalidraw .excalidraw-eye-dropper-trigger.selected{color:var(--color-primary);background:var(--color-primary-light)}.excalidraw .focus-visible-none:focus-visible{outline:none!important}.excalidraw .color-picker__heading{padding:0 .5rem;font-size:.75rem;text-align:left}.excalidraw .color-picker-container{display:grid;grid-template-columns:1fr 20px 1.625rem;padding:.25rem 0px;align-items:center}.excalidraw--mobile.excalidraw .color-picker-container{max-width:175px}.excalidraw .color-picker__top-picks{display:flex;justify-content:space-between}.excalidraw .color-picker__button{--radius: .25rem;padding:0;margin:0;width:1.35rem;height:1.35rem;border:1px solid var(--color-gray-30);border-radius:var(--radius);filter:var(--theme-filter);background-color:var(--swatch-color);background-position:left center;position:relative;font-family:inherit;box-sizing:border-box}.excalidraw .color-picker__button:hover:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;box-shadow:0 0 0 1px var(--color-gray-30);border-radius:calc(var(--radius) + 1px);filter:var(--theme-filter)}.excalidraw .color-picker__button.active .color-picker__button-outline{position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;box-shadow:0 0 0 1px var(--color-primary-darkest);z-index:1;border-radius:calc(var(--radius) + 1px);filter:var(--theme-filter)}.excalidraw .color-picker__button:focus-visible{outline:none}.excalidraw .color-picker__button:focus-visible:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:3px solid var(--focus-highlight-color);border-radius:calc(var(--radius) + 1px)}.excalidraw .color-picker__button:focus-visible.active .color-picker__button-outline{display:none}.excalidraw .color-picker__button--large{--radius: .5rem;width:1.875rem;height:1.875rem}.excalidraw .color-picker__button.is-transparent{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==)}.excalidraw .color-picker__button--no-focus-visible{border:0}.excalidraw .color-picker__button--no-focus-visible:after{display:none}.excalidraw .color-picker__button--no-focus-visible:focus-visible{outline:none!important}.excalidraw .color-picker__button.active-color{border-radius:calc(var(--radius) + 1px);width:1.625rem;height:1.625rem}.excalidraw .color-picker__button__hotkey-label{position:absolute;right:4px;bottom:4px;filter:none;font-size:11px}.excalidraw .color-picker{background:var(--popup-bg-color);border:0 solid rgba(255,255,255,.25);box-shadow:#00000040 0 1px 4px;border-radius:4px;position:absolute}:root[dir=ltr] .excalidraw .color-picker{left:-5.5px}:root[dir=rtl] .excalidraw .color-picker{right:-5.5px}.excalidraw .color-picker-control-container{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.5rem}.excalidraw .color-picker-control-container+.popover{position:static}.excalidraw .color-picker-popover-container{margin-top:-.25rem}:root[dir=ltr] .excalidraw .color-picker-popover-container{margin-left:.5rem}:root[dir=rtl] .excalidraw .color-picker-popover-container{margin-left:-3rem}.excalidraw .color-picker-triangle{width:0;height:0;border-style:solid;border-width:0 9px 10px;border-color:transparent transparent var(--popup-bg-color);position:absolute;top:10px}:root[dir=ltr] .excalidraw .color-picker-triangle{transform:rotate(270deg);left:-14px}:root[dir=rtl] .excalidraw .color-picker-triangle{transform:rotate(90deg);right:-14px}.excalidraw .color-picker-triangle-shadow{border-color:transparent transparent rgba(0,0,0,.1)}:root[dir=ltr] .excalidraw .color-picker-triangle-shadow{left:-14px}:root[dir=rtl] .excalidraw .color-picker-triangle-shadow{right:-16px}.excalidraw .color-picker-content{display:flex;flex-direction:column;gap:.75rem;outline:none}.excalidraw .color-picker-content--default{padding:.5rem;display:grid;grid-template-columns:repeat(5,1.875rem);grid-gap:.25rem;border-radius:4px}.excalidraw .color-picker-content--default:focus{outline:none;box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .color-picker-content--canvas{display:flex;flex-direction:column;padding:.25rem}.excalidraw .color-picker-content--canvas-title{color:#868e96;font-size:12px;padding:0 .25rem}.excalidraw .color-picker-content--canvas-colors{padding:.5rem 0}.excalidraw .color-picker-content--canvas-colors .color-picker-swatch{margin:0 .25rem}.excalidraw .color-picker-content .color-input-container{grid-column:1/span 5}.excalidraw .color-picker-swatch{position:relative;height:1.875rem;width:1.875rem;cursor:pointer;border-radius:4px;margin:0;box-sizing:border-box;border:1px solid #ddd;background-color:currentColor!important;filter:var(--theme-filter)}.excalidraw .color-picker-swatch:focus{box-shadow:0 0 4px 1px currentColor;border-color:var(--select-highlight-color)}.excalidraw .color-picker-transparent{border-radius:4px;box-shadow:#0000001a 0 0 0 1px inset;position:absolute;top:0;right:0;bottom:0;left:0}.excalidraw .color-picker-transparent,.excalidraw .color-picker-label-swatch{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) left center}.excalidraw .color-picker-hash{height:var(--default-button-size);flex-shrink:0;padding:.5rem .5rem .5rem .75rem;border:1px solid var(--default-border-color);border-right:0;box-sizing:border-box;color:var(--input-label-color);display:flex;align-items:center;justify-content:center;position:relative}:root[dir=ltr] .excalidraw .color-picker-hash{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}:root[dir=rtl] .excalidraw .color-picker-hash{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;border-right:1px solid var(--default-border-color);border-left:0}.excalidraw .color-input-container{display:flex}.excalidraw .color-input-container:focus-within{box-shadow:0 0 0 1px var(--color-primary-darkest);border-radius:var(--border-radius-lg)}.excalidraw .color-picker__input-label{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;border:1px solid var(--default-border-color);border-radius:8px;padding:0 12px;margin:8px;box-sizing:border-box}.excalidraw .color-picker__input-label:focus-within{box-shadow:0 0 0 1px var(--color-primary-darkest);border-radius:var(--border-radius-lg)}.excalidraw .color-picker__input-hash{padding:0 .25rem}.excalidraw .color-picker-input{box-sizing:border-box;width:100%;margin:0;font-size:.875rem;font-family:inherit;background-color:transparent;color:var(--text-primary-color);border:0;outline:none;height:var(--default-button-size);border:1px solid var(--default-border-color);border-left:0;letter-spacing:.4px;padding:.5rem .5rem .5rem .25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}:root[dir=ltr] .excalidraw .color-picker-input{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}:root[dir=rtl] .excalidraw .color-picker-input{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg);border-left:1px solid var(--default-border-color);border-right:0}.excalidraw .color-picker-input:focus-visible{box-shadow:none}.excalidraw .color-picker-label-swatch-container{border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);width:var(--default-button-size);height:var(--default-button-size);box-sizing:border-box;overflow:hidden}.excalidraw .color-picker-label-swatch{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);background-color:var(--swatch-color)!important;overflow:hidden;position:relative;filter:var(--theme-filter);border:0!important}.excalidraw .color-picker-label-swatch svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .color-picker-label-swatch:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .color-picker-label-swatch:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .color-picker-label-swatch.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .color-picker-label-swatch:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--swatch-color)}.excalidraw .color-picker-keybinding{position:absolute;bottom:2px;font-size:.7em}:root[dir=ltr] .excalidraw .color-picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .color-picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .color-picker-keybinding{display:none}.excalidraw .color-picker-type-canvasBackground .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementBackground .color-picker-keybinding{color:#fff}.excalidraw .color-picker-swatch[aria-label=transparent] .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementStroke .color-picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .color-picker-type-elementBackground .color-picker-keybinding,.excalidraw.theme--dark .color-picker-swatch[aria-label=transparent] .color-picker-keybinding{color:#000}.excalidraw .popover{position:absolute;z-index:10;padding:5px 0;outline:none}.excalidraw .picker-container{display:inline-block;box-sizing:border-box;margin-right:.25rem}.excalidraw .picker{background:var(--popup-bg-color);border:0 solid rgba(255,255,255,.25);box-shadow:#00000040 2px 2px 4px 2px;border-radius:4px;position:absolute}.excalidraw .picker-container button,.excalidraw .picker button{position:relative;display:flex;align-items:center;justify-content:center}.excalidraw .picker-container button:focus-visible,.excalidraw .picker button:focus-visible{outline:transparent;background-color:var(--button-gray-2)}.excalidraw .picker-container button:focus-visible svg,.excalidraw .picker button:focus-visible svg{opacity:1}.excalidraw .picker-container button:hover,.excalidraw .picker button:hover{background-color:var(--button-gray-2)}.excalidraw .picker-container button:active,.excalidraw .picker button:active{background-color:var(--button-gray-3)}.excalidraw .picker-container button:disabled,.excalidraw .picker button:disabled{cursor:not-allowed}.excalidraw .picker-container button svg,.excalidraw .picker button svg{margin:0;width:36px;height:18px;pointer-events:none}.excalidraw .picker button{padding:.25rem .28rem .35rem .25rem}.excalidraw .picker-triangle{width:0;height:0;position:relative;top:-10px;z-index:10}:root[dir=ltr] .excalidraw .picker-triangle{left:12px}:root[dir=rtl] .excalidraw .picker-triangle{right:12px}.excalidraw .picker-triangle:before{content:"";position:absolute;border-style:solid;border-width:0 9px 10px;border-color:transparent transparent rgba(0,0,0,.1);top:-1px}.excalidraw .picker-triangle:after{content:"";position:absolute;border-style:solid;border-width:0 9px 10px;border-color:transparent transparent var(--popup-bg-color)}.excalidraw .picker-content{padding:.5rem;display:grid;grid-template-columns:repeat(3,auto);grid-gap:.5rem;border-radius:4px}:root[dir=rtl] .excalidraw .picker-content{padding:.4rem}.excalidraw .picker-keybinding{position:absolute;bottom:2px;font-size:.7em;color:var(--keybinding-color)}:root[dir=ltr] .excalidraw .picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .picker-keybinding{display:none}.excalidraw .picker-type-canvasBackground .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementBackground .picker-keybinding{color:#fff}.excalidraw .picker-swatch[aria-label=transparent] .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementStroke .picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .picker-type-elementBackground .picker-keybinding,.excalidraw.theme--dark .picker-swatch[aria-label=transparent] .picker-keybinding{color:#000}.excalidraw-tooltip{--ui-font: Assistant, system-ui, BlinkMacSystemFont, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;font-family:var(--ui-font);position:fixed;z-index:var(--zIndex-popup);padding:8px;border-radius:6px;box-sizing:border-box;pointer-events:none;word-wrap:break-word;background:#000;line-height:1.5;text-align:center;font-size:13px;font-weight:500;color:#fff;display:none}.excalidraw-tooltip.excalidraw-tooltip--visible{display:block}.excalidraw-tooltip-wrapper{display:flex}.excalidraw-tooltip-icon{width:.9em;height:.9em;margin-left:5px;margin-top:1px;display:flex}.excalidraw--mobile.excalidraw-tooltip-icon{display:none}.excalidraw .TextInput{display:inline-block}.ProjectName{margin:auto;display:flex;align-items:center}.ProjectName .TextInput{height:calc(1rem - 3px);width:200px;overflow:hidden;text-align:center;margin-left:8px;text-overflow:ellipsis}.ProjectName .TextInput--readonly{background:none;border:none;width:auto;max-width:200px;padding-left:2px}.ProjectName .TextInput--readonly:hover{background:none}.excalidraw .Checkbox{margin:4px .3em;display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus){box-shadow:0 0 0 2px #4dabf7}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) svg{display:block;opacity:.3}.excalidraw .Checkbox:active .Checkbox-box{box-shadow:0 0 2px 1px inset #1c7ed6!important}.excalidraw .Checkbox:hover .Checkbox-box{background-color:#d0ebff33}.excalidraw .Checkbox.is-checked .Checkbox-box{background-color:#d0ebff}.excalidraw .Checkbox.is-checked .Checkbox-box svg{display:block}.excalidraw .Checkbox.is-checked:hover .Checkbox-box{background-color:#a5d8ff}.excalidraw .Checkbox .Checkbox-box{width:22px;height:22px;padding:0;flex:0 0 auto;margin:0 1em;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #1c7ed6;background-color:transparent;border-radius:4px;color:#1c7ed6;border:0}.excalidraw .Checkbox .Checkbox-box:focus{box-shadow:0 0 0 3px #1c7ed6}.excalidraw .Checkbox .Checkbox-box svg{display:none;width:16px;height:16px;stroke-width:3px}.excalidraw .Checkbox .Checkbox-label{display:flex;align-items:center}.excalidraw .Checkbox .excalidraw-tooltip-icon{width:1em;height:1em}.excalidraw .Avatar{width:var(--avatar-size, 1.5rem);height:var(--avatar-size, 1.5rem);position:relative;border-radius:100%;outline-offset:2px;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:.75rem;font-weight:800;line-height:1;color:var(--color-gray-90);flex:0 0 auto}.excalidraw .Avatar:active{transform:scale(.94)}.excalidraw .Avatar-img{width:100%;height:100%;border-radius:100%}.excalidraw .Avatar:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:100%}.excalidraw .Avatar.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .Avatar.is-current-user{cursor:auto}.excalidraw-hyperlinkContainer{display:flex;align-items:center;justify-content:space-between;position:absolute;box-shadow:0 2px 4px #0000004d;z-index:var(--zIndex-hyperlinkContainer);background:var(--island-bg-color);border-radius:var(--border-radius-md);box-sizing:border-box;min-height:42px}.excalidraw-hyperlinkContainer-input,.excalidraw-hyperlinkContainer button{z-index:100}.excalidraw-hyperlinkContainer-input,.excalidraw-hyperlinkContainer-link{height:24px;padding:0 8px;line-height:24px;font-size:.9rem;font-weight:500;font-family:var(--ui-font)}.excalidraw-hyperlinkContainer-input{width:18rem;background-color:transparent;color:var(--text-primary-color);outline:none;border:none;box-shadow:none!important}.excalidraw-hyperlinkContainer-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:15rem}.excalidraw-hyperlinkContainer button{color:#228be6;background-color:transparent!important;font-weight:500}.excalidraw-hyperlinkContainer button.excalidraw-hyperlinkContainer--remove{color:#c92a2a}.excalidraw-hyperlinkContainer--remove .ToolIcon__icon svg{color:#fa5252}.excalidraw-hyperlinkContainer .ToolIcon__icon{width:2rem;height:2rem}.excalidraw-hyperlinkContainer__buttons{flex:0 0 auto}.excalidraw .context-menu{position:relative;border-radius:4px;box-shadow:0 3px 10px #0003;padding:0;list-style:none;-webkit-user-select:none;user-select:none;margin:-.25rem 0 0 .125rem;padding:.5rem 0;background-color:var(--popup-secondary-bg-color);border:1px solid var(--button-gray-3);cursor:default}.excalidraw .context-menu button{color:var(--popup-text-color)}.excalidraw .context-menu-item{position:relative;width:100%;min-width:9.5rem;margin:0;padding:.25rem 1rem .25rem 1.25rem;text-align:start;border-radius:0;background-color:transparent;border:none;white-space:nowrap;font-family:inherit;display:grid;grid-template-columns:1fr .2fr;align-items:center}.excalidraw .context-menu-item.checkmark:before{position:absolute;left:6px;margin-bottom:1px;content:"✓"}.excalidraw .context-menu-item.dangerous .context-menu-item__label{color:#f03e3e}.excalidraw .context-menu-item .context-menu-item__label{justify-self:start;margin-inline-end:20px}.excalidraw .context-menu-item .context-menu-item__shortcut{justify-self:end;opacity:.6;font-family:inherit;font-size:.7rem}.excalidraw .context-menu-item:hover{color:var(--popup-bg-color);background-color:var(--select-highlight-color)}.excalidraw .context-menu-item:hover.dangerous{background-color:#fa5252}.excalidraw .context-menu-item:hover.dangerous .context-menu-item__label{color:var(--popup-bg-color)}.excalidraw .context-menu-item:focus{z-index:1}.excalidraw--mobile.excalidraw .context-menu-item{display:block}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__label{margin-inline-end:0}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__shortcut{display:none}.excalidraw .context-menu-item-separator{border:none;border-top:1px solid #adb5bd}.excalidraw .Stack{--gap: 0;display:grid;gap:calc(var(--space-factor) * var(--gap))}.excalidraw .Stack_vertical{grid-template-columns:auto;grid-auto-flow:row;grid-auto-rows:min-content}.excalidraw .Stack_horizontal{grid-template-rows:auto;grid-auto-flow:column;grid-auto-columns:min-content}.zoom-actions,.undo-redo-buttons{background-color:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest)}.zoom-button,.undo-redo-buttons button{border-radius:0!important;background-color:var(--color-surface-low)!important;font-size:.875rem!important;width:var(--lg-button-size);height:var(--lg-button-size)}.zoom-button svg,.undo-redo-buttons button svg{width:var(--lg-icon-size)!important;height:var(--lg-icon-size)!important}.zoom-button .ToolIcon__icon,.undo-redo-buttons button .ToolIcon__icon{width:100%;height:100%}.reset-zoom-button{border-left:0!important;border-right:0!important;padding:0 .625rem!important;width:3.75rem!important;justify-content:center;color:var(--text-primary-color)}.zoom-out-button{border-top-left-radius:var(--border-radius-lg)!important;border-bottom-left-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-out-button{transform:scaleX(-1)}.zoom-out-button .ToolIcon__icon{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.zoom-in-button{border-top-right-radius:var(--border-radius-lg)!important;border-bottom-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-in-button{transform:scaleX(-1)}.zoom-in-button .ToolIcon__icon{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.undo-redo-buttons .undo-button-container button{border-top-left-radius:var(--border-radius-lg)!important;border-bottom-left-radius:var(--border-radius-lg)!important;border-right:0!important}:root[dir=rtl] .undo-redo-buttons .undo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .undo-button-container button .ToolIcon__icon{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.undo-redo-buttons .redo-button-container button{border-top-right-radius:var(--border-radius-lg)!important;border-bottom-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .undo-redo-buttons .redo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .redo-button-container button .ToolIcon__icon{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.excalidraw .Island{--padding: 0;box-sizing:border-box;background-color:var(--island-bg-color);box-shadow:var(--shadow-island);border-radius:var(--border-radius-lg);padding:calc(var(--padding) * var(--space-factor));position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .Island.zen-mode{box-shadow:none}.excalidraw .dropdown-menu{position:absolute;top:100%;margin-top:.25rem}.excalidraw .dropdown-menu--mobile{left:0;width:100%;row-gap:.75rem}.excalidraw .dropdown-menu--mobile .dropdown-menu-container{padding:8px;box-sizing:border-box;box-shadow:var(--shadow-island);border-radius:var(--border-radius-lg);position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .dropdown-menu--mobile .dropdown-menu-container.zen-mode{box-shadow:none}.excalidraw .dropdown-menu .dropdown-menu-container{background-color:var(--island-bg-color);max-height:calc(100vh - 150px);overflow-y:auto;--gap: 2}.excalidraw .dropdown-menu .dropdown-menu-item-base{display:flex;padding:0 .625rem;column-gap:.625rem;font-size:.875rem;color:var(--color-on-surface);width:100%;box-sizing:border-box;font-weight:400;font-family:inherit}.excalidraw .dropdown-menu .dropdown-menu-item{background-color:transparent;border:1px solid transparent;align-items:center;height:2rem;cursor:pointer;border-radius:var(--border-radius-md)}@media screen and (min-width: 1921px){.excalidraw .dropdown-menu .dropdown-menu-item{height:2.25rem}}.excalidraw .dropdown-menu .dropdown-menu-item--selected{background:var(--color-primary-light);--icon-fill-color: var(--color-primary-darker)}.excalidraw .dropdown-menu .dropdown-menu-item__text{display:flex;align-items:center;width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;gap:.75rem}.excalidraw .dropdown-menu .dropdown-menu-item__shortcut{margin-inline-start:auto;opacity:.5}.excalidraw .dropdown-menu .dropdown-menu-item:hover{background-color:var(--button-hover-bg);text-decoration:none}.excalidraw .dropdown-menu .dropdown-menu-item:active{background-color:var(--button-hover-bg);border-color:var(--color-brand-active)}.excalidraw .dropdown-menu .dropdown-menu-item svg{width:1rem;height:1rem;display:block}.excalidraw .dropdown-menu .dropdown-menu-item-custom{margin-top:.5rem}.excalidraw .dropdown-menu .dropdown-menu-group-title{font-size:14px;text-align:left;margin:10px 0;font-weight:500}.excalidraw .dropdown-menu-button{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);width:var(--lg-button-size);height:var(--lg-button-size);--background: var(--color-surface-mid);background-color:var(--background)}.excalidraw .dropdown-menu-button svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .dropdown-menu-button:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .dropdown-menu-button:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .dropdown-menu-button.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw.theme--dark.excalidraw .dropdown-menu-button{--background: var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .dropdown-menu-button:hover{--background: #363541}.excalidraw .dropdown-menu-button:hover{--background: var(--color-surface-high);background-color:var(--background);text-decoration:none}.excalidraw .dropdown-menu-button:active{border-color:var(--color-primary)}.excalidraw .dropdown-menu-button svg{width:var(--lg-icon-size);height:var(--lg-icon-size)}.excalidraw .dropdown-menu-button--mobile{border:none;margin:0;padding:0;width:var(--default-button-size);height:var(--default-button-size)}.excalidraw{--RadioGroup-background: var(--island-bg-color);--RadioGroup-border: var(--color-surface-high);--RadioGroup-choice-color-off: var(--color-primary);--RadioGroup-choice-color-off-hover: var(--color-brand-hover);--RadioGroup-choice-background-off: var(--island-bg-color);--RadioGroup-choice-background-off-active: var(--color-surface-high);--RadioGroup-choice-color-on: var(--color-surface-lowest);--RadioGroup-choice-background-on: var(--color-primary);--RadioGroup-choice-background-on-hover: var(--color-brand-hover);--RadioGroup-choice-background-on-active: var(--color-brand-active)}.excalidraw .RadioGroup{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;padding:3px;border-radius:10px;background:var(--RadioGroup-background);border:1px solid var(--RadioGroup-border)}.excalidraw .RadioGroup__choice{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:24px;color:var(--RadioGroup-choice-color-off);background:var(--RadioGroup-choice-background-off);border-radius:8px;font-family:Assistant;font-style:normal;font-weight:600;font-size:.75rem;line-height:100%;-webkit-user-select:none;user-select:none;letter-spacing:.4px;transition:all 75ms ease-out}.excalidraw .RadioGroup__choice:hover{color:var(--RadioGroup-choice-color-off-hover)}.excalidraw .RadioGroup__choice:active{background:var(--RadioGroup-choice-background-off-active)}.excalidraw .RadioGroup__choice.active{color:var(--RadioGroup-choice-color-on);background:var(--RadioGroup-choice-background-on)}.excalidraw .RadioGroup__choice.active:hover{background:var(--RadioGroup-choice-background-on-hover)}.excalidraw .RadioGroup__choice.active:active{background:var(--RadioGroup-choice-background-on-active)}.excalidraw .RadioGroup__choice input{z-index:1;position:absolute;width:100%;height:100%;margin:0;padding:0;border-radius:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.excalidraw{--Switch-disabled-color: var(--color-border-outline);--Switch-disabled-toggled-background: var(--color-border-outline-variant);--Switch-disabled-border: var(--color-border-outline-variant);--Switch-track-background: var(--island-bg-color);--Switch-thumb-background: var(--color-on-surface);--Switch-hover-background: var(--color-brand-hover);--Switch-active-background: var(--color-brand-active)}.excalidraw .Switch{position:relative;box-sizing:border-box;width:40px;height:20px;border-radius:12px;transition-property:background,border;transition-duration:.15s;transition-timing-function:ease-out;background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-color)}.excalidraw .Switch:hover{background:var(--Switch-track-background);border:1px solid var(--Switch-hover-background)}.excalidraw .Switch:active{border:1px solid var(--Switch-active-background)}.excalidraw .Switch.toggled{background:var(--color-primary);border:1px solid var(--color-primary)}.excalidraw .Switch.toggled:hover{background:var(--color-primary-darker);border:1px solid var(--color-primary-darker)}.excalidraw .Switch.disabled{background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-border)}.excalidraw .Switch.disabled.toggled{background:var(--Switch-disabled-toggled-background);border:1px solid var(--Switch-disabled-toggled-background)}.excalidraw .Switch:before{content:"";box-sizing:border-box;display:block;pointer-events:none;position:absolute;border-radius:100%;transition:all .15s ease-out;width:10px;height:10px;top:4px;left:4px;background:var(--Switch-thumb-background)}.excalidraw .Switch:active:before{width:12px}.excalidraw .Switch.toggled:before{width:14px;height:14px;left:22px;top:2px;background:var(--Switch-track-background)}.excalidraw .Switch.toggled:active:before{width:16px;left:20px}.excalidraw .Switch.disabled:before{background:var(--Switch-disabled-color)}.excalidraw .Switch.disabled.toggled:before{background:var(--Switch-disabled-color)}.excalidraw .Switch input{width:100%;height:100%;margin:0;border-radius:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.excalidraw .Switch input:disabled{cursor:unset}.excalidraw{--ImageExportModal-preview-border: #d6d6d6}.excalidraw.theme--dark{--ImageExportModal-preview-border: #5c5c5c}.excalidraw .ImageExportModal{display:flex;flex-direction:row;justify-content:space-between;-webkit-user-select:none;user-select:none}.excalidraw .ImageExportModal h3{font-family:Assistant;font-style:normal;font-weight:700;font-size:1.313rem;line-height:130%;padding:0;margin:0}.excalidraw--mobile.excalidraw .ImageExportModal h3{display:none}.excalidraw .ImageExportModal>h3{display:none}.excalidraw--mobile.excalidraw .ImageExportModal>h3{display:block}.excalidraw--mobile.excalidraw .ImageExportModal{flex-direction:column;height:calc(100vh - 5rem)}.excalidraw .ImageExportModal__preview{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;height:360px;width:55%;margin-right:1.5rem}.excalidraw--mobile.excalidraw .ImageExportModal__preview{max-width:unset;margin-right:unset;width:100%;height:unset;flex-grow:1}.excalidraw .ImageExportModal__preview__filename>input{margin-top:1rem}.excalidraw .ImageExportModal__preview__canvas{box-sizing:border-box;width:100%;height:100%;display:flex;flex-grow:1;justify-content:center;align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) left center;border:1px solid var(--ImageExportModal-preview-border);border-radius:12px;overflow:hidden;padding:1rem}.excalidraw .ImageExportModal__preview__canvas>canvas{max-width:calc(100% - 2rem);max-height:calc(100% - 2rem);filter:none!important}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas>canvas{max-height:100%}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas{margin-top:24px;max-width:unset}.excalidraw .ImageExportModal__settings{display:flex;flex-direction:column;flex-wrap:wrap;gap:18px}.excalidraw--mobile.excalidraw .ImageExportModal__settings{margin-left:unset;margin-top:1rem;flex-direction:row;gap:6px 34px;align-content:flex-start}.excalidraw .ImageExportModal__settings__setting{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.excalidraw--mobile.excalidraw .ImageExportModal__settings__setting{flex-direction:column;align-items:start;justify-content:unset;height:52px}.excalidraw .ImageExportModal__settings__setting__label{display:flex;flex-direction:row;align-items:center;font-family:Assistant;font-weight:600;font-size:1rem;line-height:150%}.excalidraw .ImageExportModal__settings__setting__label svg{width:20px;height:20px;margin-left:10px}.excalidraw .ImageExportModal__settings__setting__content{display:flex;height:100%;align-items:center}.excalidraw .ImageExportModal__settings__buttons{flex-grow:1;flex-wrap:wrap;display:flex;flex-direction:row;gap:11px;align-items:flex-end;align-content:flex-end}.excalidraw--mobile.excalidraw .ImageExportModal__settings__buttons{padding-top:32px;flex-basis:100%;justify-content:center}.excalidraw .ExcButton{--text-color: transparent;--border-color: transparent;--back-color: transparent;color:var(--text-color);background-color:var(--back-color);border-color:var(--border-color);border-radius:.5rem;border-width:1px;border-style:solid;font-family:var(--font-family);-webkit-user-select:none;user-select:none;transition:all .15s ease-out}.excalidraw .ExcButton .Spinner{--spinner-color: var(--color-surface-lowest);position:absolute;visibility:visible}.excalidraw .ExcButton[disabled]{pointer-events:none}.excalidraw .ExcButton[disabled] .ExcButton__contents{visibility:hidden}.excalidraw .ExcButton,.excalidraw .ExcButton__contents{display:flex;justify-content:center;align-items:center;flex-shrink:0;flex-wrap:nowrap;position:relative}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled{--text-color: var(--color-surface-lowest);--back-color: var(--color-primary)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:hover{--back-color: var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:active{--back-color: var(--color-brand-active)}.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined,.excalidraw .ExcButton--color-primary.ExcButton--variant-icon{--text-color: var(--color-primary);--border-color: var(--color-primary);--back-color: transparent}.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined .Spinner,.excalidraw .ExcButton--color-primary.ExcButton--variant-icon .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:hover,.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:hover{--text-color: var(--color-brand-hover);--border-color: var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:active,.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:active{--text-color: var(--color-brand-active);--border-color: var(--color-brand-active)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled{--text-color: var(--color-danger-text);--back-color: var(--color-danger-dark)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:hover{--back-color: var(--color-danger-darker)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:active{--back-color: var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined,.excalidraw .ExcButton--color-danger.ExcButton--variant-icon{--text-color: var(--color-danger);--border-color: var(--color-danger);--back-color: transparent}.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined .Spinner,.excalidraw .ExcButton--color-danger.ExcButton--variant-icon .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:hover,.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:hover{--text-color: var(--color-danger-darkest);--border-color: var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:active,.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:active{--text-color: var(--color-danger-darker);--border-color: var(--color-danger-darker)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled{--text-color: var(--island-bg-color);--back-color: var(--color-gray-50)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:hover{--back-color: var(--color-gray-60)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:active{--back-color: var(--color-gray-80)}.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined,.excalidraw .ExcButton--color-muted.ExcButton--variant-icon{--text-color: var(--color-muted-background);--border-color: var(--color-muted);--back-color: var(--island-bg-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined .Spinner,.excalidraw .ExcButton--color-muted.ExcButton--variant-icon .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:hover,.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:hover{--text-color: var(--color-muted-background-darker);--border-color: var(--color-muted-darker)}.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:active,.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:active{--text-color: var(--color-muted-background-darker);--border-color: var(--color-muted-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled{--text-color: black;--back-color: var(--color-warning-dark)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:hover{--back-color: var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:active{--back-color: var(--color-warning-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined,.excalidraw .ExcButton--color-warning.ExcButton--variant-icon{--text-color: var(--color-warning-dark);--border-color: var(--color-warning-dark);--back-color: var(--input-bg-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined .Spinner,.excalidraw .ExcButton--color-warning.ExcButton--variant-icon .Spinner{--spinner-color: var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:hover,.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:hover{--text-color: var(--color-warning-darker);--border-color: var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:active,.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:active{--text-color: var(--color-warning-darkest);--border-color: var(--color-warning-darkest)}.excalidraw .ExcButton--size-large{font-weight:600;font-size:.875rem;min-height:3rem;padding:.5rem 1.5rem;letter-spacing:.4px}.excalidraw .ExcButton--size-large .ExcButton__contents{gap:.75rem}.excalidraw .ExcButton--size-medium{font-weight:600;font-size:.75rem;min-height:2.5rem;padding:.5rem 1rem;letter-spacing:normal}.excalidraw .ExcButton--size-medium .ExcButton__contents{gap:.5rem}.excalidraw .ExcButton--variant-icon{padding:.5rem .75rem;width:3rem}.excalidraw .ExcButton--fullWidth{width:100%}.excalidraw .ExcButton__icon{width:1.25rem;height:1.25rem}.excalidraw .FixedSideContainer{position:absolute;pointer-events:none}.excalidraw .FixedSideContainer>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .FixedSideContainer_side_top{left:var(--editor-container-padding);top:var(--editor-container-padding);right:var(--editor-container-padding);bottom:var(--editor-container-padding);z-index:2}.excalidraw .FixedSideContainer_side_top.zen-mode{right:42px}.excalidraw .HintViewer{pointer-events:none;box-sizing:border-box;position:absolute;display:flex;justify-content:center;left:0;top:100%;max-width:100%;width:100%;margin-top:.5rem;text-align:center;color:var(--color-gray-40);font-size:.75rem}.excalidraw--mobile.excalidraw .HintViewer{position:static;padding-right:2rem}.excalidraw .HintViewer>span{padding:.25rem}.excalidraw.theme--dark .HintViewer{color:var(--color-gray-60)}.excalidraw .Stats{position:absolute;top:64px;right:12px;font-size:12px;z-index:10;pointer-events:var(--ui-pointerEvents)}.excalidraw .Stats h3{margin:0 24px 8px 0;white-space:nowrap}.excalidraw .Stats .close{float:right;height:16px;width:16px;cursor:pointer}.excalidraw .Stats .close svg{width:100%;height:100%}.excalidraw .Stats table{width:100%}.excalidraw .Stats table th{border-bottom:1px solid var(--input-border-color);padding:4px}.excalidraw .Stats table tr td:nth-child(2){min-width:24px;text-align:right}:root[dir=rtl] .excalidraw .Stats{left:12px;right:initial}:root[dir=rtl] .excalidraw .Stats h3{margin:0 0 8px 24px}:root[dir=rtl] .excalidraw .Stats .close{float:left}.excalidraw--mobile.excalidraw .PasteChartDialog .Island{display:flex;flex-direction:column}.excalidraw .PasteChartDialog .container{display:flex;align-items:center;justify-content:space-around;flex-wrap:wrap}.excalidraw--mobile.excalidraw .PasteChartDialog .container{flex-direction:column;justify-content:center}.excalidraw .PasteChartDialog .ChartPreview{margin:8px;text-align:center;width:192px;height:128px;border-radius:2px;padding:1px;border:1px solid #ced4da;display:flex;align-items:center;justify-content:center;background:transparent}.excalidraw .PasteChartDialog .ChartPreview div{display:inline-block}.excalidraw .PasteChartDialog .ChartPreview svg{max-height:120px;max-width:186px}.excalidraw .PasteChartDialog .ChartPreview:hover{padding:0;border:2px solid #339af0}.excalidraw .HelpDialog .Modal__content{max-width:960px}.excalidraw .HelpDialog h3{margin:1.5rem 0;font-weight:700;font-size:1.125rem}.excalidraw .HelpDialog__header{display:flex;flex-wrap:wrap;gap:.75rem}.excalidraw .HelpDialog__btn{--background: var(--color-surface-mid);display:flex;column-gap:.5rem;align-items:center;background-color:var(--background);padding:.625rem 1rem;border:1px solid var(--background);border-radius:var(--border-radius-lg);color:var(--text-primary-color);font-weight:600;font-size:.75rem;letter-spacing:.4px}.excalidraw.theme--dark.excalidraw .HelpDialog__btn{--background: var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .HelpDialog__btn:hover{--background: #363541}.excalidraw .HelpDialog__btn:hover{--background: var(--color-surface-high);text-decoration:none}.excalidraw .HelpDialog__btn:active{border-color:var(--color-primary)}.excalidraw .HelpDialog__link-icon{line-height:0}.excalidraw .HelpDialog__link-icon svg{width:1rem;height:1rem}.excalidraw .HelpDialog__islands-container{display:grid;grid-column-gap:1.5rem;grid-row-gap:2rem}@media screen and (min-width: 1024px){.excalidraw .HelpDialog__islands-container{grid-template-columns:1fr 1fr}}@media screen and (min-width: 1024px){.excalidraw .HelpDialog__island--tools{grid-area:1/1/2/2}.excalidraw .HelpDialog__island--view{grid-area:2/1/3/2}.excalidraw .HelpDialog__island--editor{grid-area:1/2/3/3}}.excalidraw .HelpDialog__island h4{font-size:1rem;font-weight:700;margin:0;margin-bottom:.625rem}.excalidraw .HelpDialog__island-content{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg)}.excalidraw .HelpDialog__shortcut{border-bottom:1px solid var(--dialog-border-color);padding:.375rem .75rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;column-gap:.5rem}.excalidraw .HelpDialog__shortcut:last-child{border-bottom:none}.excalidraw .HelpDialog__key-container{display:flex;align-items:center;column-gap:.25rem;flex-shrink:0}.excalidraw .HelpDialog__key{display:flex;box-sizing:border-box;font-size:.625rem;background-color:var(--color-primary-light);border-radius:var(--border-radius-md);padding:.5rem;word-break:keep-all;align-items:center;font-family:inherit;line-height:1}.excalidraw{--avatar-size: 1.75rem;--avatarList-gap: .625rem;--userList-padding: var(--space-factor);--userlist-hint-bg-color: var(--color-gray-10);--userlist-hint-heading-color: var(--color-gray-80);--userlist-hint-text-color: var(--color-gray-60);--userlist-collaborators-border-color: var(--color-gray-20)}.excalidraw .UserList-wrapper{display:flex;width:100%;justify-content:flex-end;pointer-events:none!important}.excalidraw .UserList{pointer-events:none;padding:var(--userList-padding);display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--avatarList-gap);box-sizing:border-box;--max-size: calc( var(--avatar-size) * var(--max-avatars, 2) + var(--avatarList-gap) * (var(--max-avatars, 2) - 1) + var(--userList-padding) * 2 );max-height:var(--max-size);max-width:var(--max-size)}.excalidraw .UserList:empty{display:none}.excalidraw .UserList>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .UserList_mobile{padding:0;justify-content:normal;margin:.5rem 0;max-width:none;max-height:none}.excalidraw .UserList__more{width:var(--avatar-size, 1.5rem);height:var(--avatar-size, 1.5rem);position:relative;border-radius:100%;outline-offset:2px;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:.75rem;font-weight:800;line-height:1;color:var(--color-gray-90);flex:0 0 auto;background-color:var(--color-gray-20);border:0!important;font-size:.625rem;font-weight:400;flex-shrink:0;color:var(--color-gray-100);font-weight:700}.excalidraw .UserList__more:active{transform:scale(.94)}.excalidraw .UserList__more-img{width:100%;height:100%;border-radius:100%}.excalidraw .UserList__more:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:100%}.excalidraw .UserList__more.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .UserList__more.is-current-user{cursor:auto}.excalidraw .UserList__collaborator-name{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.excalidraw .UserList__collaborator--avatar-only{position:relative;display:flex;flex:0 0 auto}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon{--size: 14px;position:absolute;display:flex;flex:0 0 auto;bottom:-.25rem;right:-.25rem;width:var(--size);height:var(--size)}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon svg{flex:0 0 auto;width:var(--size);height:var(--size)}.excalidraw .UserList__collaborator-status-icons{margin-left:auto;flex:0 0 auto;min-width:2.25rem;gap:.25rem;justify-content:flex-end;display:flex}.excalidraw .UserList__collaborator.is-muted .UserList__collaborator-status-icon-microphone-muted{color:var(--color-danger);filter:drop-shadow(0px 0px 0px rgba(0,0,0,.5))}.excalidraw .UserList__collaborator-status-icon-speaking-indicator{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;width:1rem;padding:0 3px;box-sizing:border-box}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div{width:.125rem;height:.4rem;background-color:#a2f1a6}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(1){animation:speaking-indicator-anim 1s -.45s ease-in-out infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(2){animation:speaking-indicator-anim 1s -.9s ease-in-out infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(3){animation:speaking-indicator-anim 1s -.15s ease-in-out infinite}@keyframes speaking-indicator-anim{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.excalidraw.theme--dark{--userlist-hint-bg-color: var(--color-gray-90);--userlist-hint-heading-color: var(--color-gray-30);--userlist-hint-text-color: var(--color-gray-40);--userlist-collaborators-border-color: var(--color-gray-80)}.excalidraw .UserList__collaborators{position:static;top:auto;margin-top:0;max-height:50vh;overflow-y:auto;padding:.25rem .5rem;border-top:1px solid var(--userlist-collaborators-border-color);border-bottom:1px solid var(--userlist-collaborators-border-color)}.excalidraw .UserList__collaborators__empty{color:var(--color-gray-60);font-size:.75rem;line-height:150%;padding:.5rem 0}.excalidraw .UserList__hint{padding:.5rem .75rem;overflow:hidden;text-align:center;color:var(--userlist-hint-text-color);font-size:.75rem;line-height:150%}.excalidraw .UserList__search-wrapper{position:relative;height:2.5rem}.excalidraw .UserList__search-wrapper svg{position:absolute;top:50%;transform:translateY(-50%);left:.75rem;width:1.25rem;height:1.25rem;color:var(--color-gray-40);z-index:1}.excalidraw .UserList__search{position:absolute;top:0;left:0;width:100%;box-sizing:border-box;border:0!important;border-radius:0!important;font-size:.875rem;padding-left:2.5rem!important;padding-right:.75rem!important}.excalidraw .UserList__search::placeholder{color:var(--color-gray-40)}.excalidraw .UserList__search:focus{box-shadow:none!important}.excalidraw .Card{display:flex;flex-direction:column;align-items:center;max-width:290px;margin:1em;text-align:center}.excalidraw .Card .Card-icon{font-size:2.6em;display:flex;flex:0 0 auto;padding:1.4rem;border-radius:50%;background:var(--card-color);color:#fff}.excalidraw .Card .Card-icon svg{width:2.8rem;height:2.8rem}.excalidraw .Card .Card-details{font-size:.96em;min-height:90px;padding:0 1em;margin-bottom:auto}.excalidraw .Card .Card-button.ToolIcon_type_button{height:2.5rem;margin-top:1em;margin-bottom:.3em;background-color:var(--card-color)}.excalidraw .Card .Card-button.ToolIcon_type_button:hover{background-color:var(--card-color-darker)}.excalidraw .Card .Card-button.ToolIcon_type_button:active{background-color:var(--card-color-darkest)}.excalidraw .Card .Card-button.ToolIcon_type_button .ToolIcon__label{color:#fff}.excalidraw .Card .Card-button.ToolIcon_type_button .Spinner{--spinner-color: #fff}.excalidraw .ExportDialog__preview{--preview-padding: calc(var(--space-factor) * 4);background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) left center;text-align:center;padding:var(--preview-padding);margin-bottom:calc(var(--space-factor) * 3);display:flex;justify-content:center;align-items:center}.excalidraw .ExportDialog__preview canvas{max-width:calc(100% - var(--preview-padding) * 2);max-height:25rem}.excalidraw.theme--dark .ExportDialog__preview canvas{filter:none}.excalidraw .ExportDialog__actions{width:100%;display:flex;grid-gap:calc(var(--space-factor) * 2);align-items:top;justify-content:space-between}.excalidraw--mobile.excalidraw .ExportDialog{display:flex;flex-direction:column}.excalidraw--mobile.excalidraw .ExportDialog__actions{flex-direction:column;align-items:center}.excalidraw--mobile.excalidraw .ExportDialog__actions>*{margin-bottom:calc(var(--space-factor) * 3)}.excalidraw--mobile.excalidraw .ExportDialog__preview canvas{max-height:30vh}.excalidraw--mobile.excalidraw .ExportDialog__dialog,.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{height:100%;box-sizing:border-box}.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{overflow-y:auto}.excalidraw .ExportDialog--json .ExportDialog-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-items:center;row-gap:2em}@media (max-width: 460px){.excalidraw .ExportDialog--json .ExportDialog-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.excalidraw .ExportDialog--json .ExportDialog-cards .Card-details{min-height:40px}}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName{width:fit-content;margin:1em auto;align-items:flex-start;flex-direction:column}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName .TextInput{width:auto}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName-label{margin:.625em 0;font-weight:700}.excalidraw button.ExportDialog-imageExportButton{border:0;width:5rem;height:5rem;margin:0 .2em;padding:0;display:flex;align-items:center;justify-content:center;border-radius:1rem;background-color:var(--button-color);box-shadow:0 3px 5px -1px #00000047,0 6px 10px #00000024;font-family:Cascadia;font-size:1.8em;color:#fff}.excalidraw button.ExportDialog-imageExportButton:hover{background-color:var(--button-color-darker)}.excalidraw button.ExportDialog-imageExportButton:active{background-color:var(--button-color-darkest);box-shadow:none}.excalidraw button.ExportDialog-imageExportButton svg{width:.9em}.excalidraw{--theme-filter: none;--button-destructive-bg-color: #ffe3e3;--button-destructive-color: #c92a2a;--button-gray-1: #e9ecef;--button-gray-2: #ced4da;--button-gray-3: #adb5bd;--button-special-active-bg-color: #ebfbee;--dialog-border-color: var(--color-gray-20);--dropdown-icon: url('data:image/svg+xml,');--focus-highlight-color: #a5d8ff;--icon-fill-color: var(--color-on-surface);--icon-green-fill-color: #2b8a3e;--default-bg-color: #ffffff;--input-bg-color: #ffffff;--input-border-color: #ced4da;--input-hover-bg-color: #f1f3f5;--input-label-color: #495057;--island-bg-color: #ffffff;--keybinding-color: var(--color-gray-40);--link-color: #1c7ed6;--overlay-bg-color: rgba(255, 255, 255, .88);--popup-bg-color: var(--island-bg-color);--popup-secondary-bg-color: #f1f3f5;--popup-text-color: #000000;--popup-text-inverted-color: #ffffff;--select-highlight-color: #339af0;--shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--button-hover-bg: var(--color-surface-high);--button-active-bg: var(--color-surface-high);--button-active-border: var(--color-brand-active);--default-border-color: var(--color-surface-high);--default-button-size: 2rem;--default-icon-size: 1rem;--lg-button-size: 2.25rem;--lg-icon-size: 1rem;--editor-container-padding: 1rem;--scrollbar-thumb: var(--button-gray-2);--scrollbar-thumb-hover: var(--button-gray-3);--modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--avatar-border-color: var(--color-gray-20);--sidebar-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--sidebar-border-color: var(--color-surface-high);--sidebar-bg-color: var(--island-bg-color);--library-dropdown-shadow: 0px 15px 6px rgba(0, 0, 0, .01), 0px 8px 5px rgba(0, 0, 0, .05), 0px 4px 4px rgba(0, 0, 0, .09), 0px 1px 2px rgba(0, 0, 0, .1), 0px 0px 0px rgba(0, 0, 0, .1);--space-factor: .25rem;--text-primary-color: var(--color-on-surface);--color-selection: #6965db;--color-icon-white: #ffffff;--color-primary: #6965db;--color-primary-darker: #5b57d1;--color-primary-darkest: #4a47b1;--color-primary-light: #e3e2fe;--color-primary-light-darker: #d7d5ff;--color-primary-hover: #5753d0;--color-gray-10: #f5f5f5;--color-gray-20: #ebebeb;--color-gray-30: #d6d6d6;--color-gray-40: #b8b8b8;--color-gray-50: #999999;--color-gray-60: #7a7a7a;--color-gray-70: #5c5c5c;--color-gray-80: #3d3d3d;--color-gray-85: #242424;--color-gray-90: #1e1e1e;--color-gray-100: #121212;--color-warning: #fceeca;--color-warning-dark: #f5c354;--color-warning-darker: #f3ab2c;--color-warning-darkest: #ec8b14;--color-text-warning: var(--text-primary-color);--color-danger: #db6965;--color-danger-dark: #db6965;--color-danger-darker: #d65550;--color-danger-darkest: #d1413c;--color-danger-text: black;--color-danger-background: #fff0f0;--color-danger-icon-background: #ffdad6;--color-danger-color: #700000;--color-danger-icon-color: #700000;--color-warning-background: var(--color-warning);--color-warning-icon-background: var(--color-warning-dark);--color-warning-color: var(--text-primary-color);--color-warning-icon-color: var(--text-primary-color);--color-muted: var(--color-gray-30);--color-muted-darker: var(--color-gray-60);--color-muted-darkest: var(--color-gray-100);--color-muted-background: var(--color-gray-80);--color-muted-background-darker: var(--color-gray-100);--color-promo: #e70078;--color-success: #268029;--color-success-lighter: #cafccc;--color-logo-icon: var(--color-primary);--color-logo-text: #190064;--border-radius-md: .375rem;--border-radius-lg: .5rem;--color-surface-high: hsl(244, 100%, 97%);--color-surface-mid: hsl(240 25% 96%);--color-surface-low: hsl(240 25% 94%);--color-surface-lowest: #ffffff;--color-on-surface: #1b1b1f;--color-brand-hover: #5753d0;--color-on-primary-container: #030064;--color-brand-active: #4440bf;--color-border-outline: #767680;--color-border-outline-variant: #c5c5d0;--color-surface-primary-container: #e0dfff}.excalidraw.theme--dark{--theme-filter: invert(93%) hue-rotate(180deg);--button-destructive-bg-color: #5a0000;--button-destructive-color: #ffa8a8;--button-gray-1: #363636;--button-gray-2: #272727;--button-gray-3: #222;--button-special-active-bg-color: #204624;--dialog-border-color: var(--color-gray-80);--dropdown-icon: url('data:image/svg+xml,');--focus-highlight-color: #228be6;--icon-green-fill-color: #69db7c;--default-bg-color: #121212;--input-bg-color: #121212;--input-border-color: #2e2e2e;--input-hover-bg-color: #181818;--input-label-color: #e9ecef;--island-bg-color: #232329;--keybinding-color: var(--color-gray-60);--link-color: #4dabf7;--overlay-bg-color: rgba(52, 58, 64, .12);--popup-secondary-bg-color: #222;--popup-text-color: #ced4da;--popup-text-inverted-color: #2c2c2c;--select-highlight-color: #4dabf7;--shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--avatar-border-color: var(--color-gray-85);--scrollbar-thumb: #343a40;--scrollbar-thumb-hover: #495057;--color-selection: #3530c4;--color-icon-white: var(--color-gray-90);--color-primary: #a8a5ff;--color-primary-darker: #b2aeff;--color-primary-darkest: #beb9ff;--color-primary-light: #4f4d6f;--color-primary-light-darker: #43415e;--color-primary-hover: #bbb8ff;--color-text-warning: var(--color-gray-80);--color-danger: #ffa8a5;--color-danger-dark: #672120;--color-danger-darker: #8f2625;--color-danger-darkest: #ac2b29;--color-danger-text: #fbcbcc;--color-danger-background: #fbcbcc;--color-danger-icon-background: #672120;--color-danger-color: #261919;--color-danger-icon-color: #fbcbcc;--color-warning-background: var(--color-warning);--color-warning-icon-background: var(--color-warning-dark);--color-warning-color: var(--color-gray-80);--color-warning-icon-color: var(--color-gray-80);--color-muted: var(--color-gray-80);--color-muted-darker: var(--color-gray-60);--color-muted-darkest: var(--color-gray-20);--color-muted-background: var(--color-gray-40);--color-muted-background-darker: var(--color-gray-20);--color-promo: #d297ff;--color-logo-text: #e2dfff;--color-surface-high: hsl(245, 10%, 21%);--color-surface-low: hsl(240, 8%, 15%);--color-surface-mid: hsl(240 6% 10%);--color-surface-lowest: hsl(0, 0%, 7%);--color-on-surface: #e3e3e8;--color-brand-hover: #bbb8ff;--color-on-primary-container: #e0dfff;--color-brand-active: #d0ccff;--color-border-outline: #8e8d9c;--color-border-outline-variant: #46464f;--color-surface-primary-container: #403e6a}.excalidraw .excalidraw-button{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font)}.excalidraw .excalidraw-button svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .excalidraw-button:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .excalidraw-button:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .excalidraw-button.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .sidebar-trigger{justify-content:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);border:none;box-shadow:0 0 0 1px var(--color-surface-lowest);background-color:var(--color-surface-low);width:auto;height:var(--lg-button-size);display:flex;align-items:center;gap:.5rem;line-height:0;font-size:.75rem;letter-spacing:.4px}.excalidraw .sidebar-trigger svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .sidebar-trigger:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .sidebar-trigger:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .sidebar-trigger.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .sidebar-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .sidebar-trigger svg{width:var(--lg-icon-size);height:var(--lg-icon-size)}.excalidraw .sidebar-trigger__label-element{align-self:flex-start}.excalidraw .default-sidebar-trigger .sidebar-trigger__label{display:block;white-space:nowrap}.excalidraw.excalidraw--mobile .default-sidebar-trigger .sidebar-trigger__label{display:none}.excalidraw .sidebar{display:flex;flex-direction:column;position:absolute;top:0;bottom:0;right:0;z-index:5;margin:0;padding:0;box-sizing:border-box;background-color:var(--sidebar-bg-color);box-shadow:var(--sidebar-shadow);pointer-events:var(--ui-pointerEvents);overflow:hidden;border-radius:0;width:calc(302px - var(--space-factor) * 2);border-left:1px solid var(--sidebar-border-color)}:root[dir=rtl] .excalidraw .sidebar{left:0;right:auto}.excalidraw .sidebar--docked{box-shadow:none}:root[dir=rtl] .excalidraw .sidebar{border-right:1px solid var(--sidebar-border-color);border-left:0}.excalidraw .sidebar__header{box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem .75rem;position:relative}.excalidraw .sidebar__header:after{content:"";width:calc(100% - 1.5rem);height:1px;background:var(--sidebar-border-color);position:absolute;bottom:-1px}.excalidraw .sidebar__header__buttons{gap:0;display:flex;align-items:center;margin-left:auto}.excalidraw .sidebar__header__buttons button{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);--button-bg: transparent;border:0!important;width:var(--lg-button-size);height:var(--lg-button-size);padding:0}.excalidraw .sidebar__header__buttons button svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .sidebar__header__buttons button:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .sidebar__header__buttons button:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .sidebar__header__buttons button.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .sidebar__header__buttons button svg{width:var(--lg-icon-size);height:var(--lg-icon-size)}.excalidraw .sidebar__header__buttons button:hover{background:var(--button-hover-bg, var(--island-bg-color))}.excalidraw .sidebar__header__buttons .sidebar__dock.selected svg{stroke:var(--color-primary);fill:var(--color-primary)}.excalidraw .sidebar-tabs-root{display:flex;flex-direction:column;flex:1 1 auto;padding:1rem 0}.excalidraw .sidebar-tabs-root [role=tabpanel]{flex:1;flex:1 1 auto;display:flex;flex-direction:column;outline:none}.excalidraw .sidebar-tabs-root [role=tabpanel][data-state=inactive]{display:none!important}.excalidraw .sidebar-tabs-root [role=tablist]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.excalidraw .sidebar-tabs-root>.sidebar__header{padding-top:0;padding-bottom:1rem}.excalidraw .sidebar-tab-trigger{--button-width: auto;--button-bg: transparent;--button-hover-bg: transparent;--button-active-bg: var(--color-primary);--button-hover-color: var(--color-primary);--button-hover-border: var(--color-primary)}.excalidraw .sidebar-tab-trigger[data-state=active]{--button-bg: var(--color-primary);--button-hover-bg: var(--color-primary-darker);--button-hover-color: var(--color-icon-white);--button-border: var(--color-primary);color:var(--color-icon-white)}.excalidraw .default-sidebar{display:flex;flex-direction:column}.excalidraw .default-sidebar .sidebar-triggers{display:flex;gap:0;padding:2px;margin-top:-3px;margin-bottom:-3px;border:1px solid var(--sidebar-border-color);background:var(--default-bg-color);border-radius:.625rem}.excalidraw .default-sidebar .sidebar-triggers .sidebar-tab-trigger{height:var(--lg-button-size);width:var(--lg-button-size);border:none}.excalidraw .ActiveFile .ActiveFile__fileName{display:flex;align-items:center}.excalidraw .ActiveFile .ActiveFile__fileName span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:9.3em}.excalidraw .ActiveFile .ActiveFile__fileName svg{width:1.15em;margin-inline-end:.3em;transform:scaleY(.9)}.excalidraw .confirm-dialog-buttons{display:flex;column-gap:.5rem;justify-content:flex-end}.excalidraw .Dialog__action-button{position:relative;display:flex;column-gap:.5rem;align-items:center;padding:.5rem 1.5rem;border:1px solid var(--default-border-color);background-color:transparent;height:3rem;border-radius:var(--border-radius-lg);letter-spacing:.4px;color:inherit;font-family:inherit;font-size:.875rem;font-weight:600;-webkit-user-select:none;user-select:none}.excalidraw .Dialog__action-button svg{display:block;width:1rem;height:1rem}.excalidraw .Dialog__action-button--danger{background-color:var(--color-danger);border-color:var(--color-danger);color:#fff}.excalidraw .Dialog__action-button--primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.excalidraw.theme--dark .Dialog__action-button--danger,.excalidraw.theme--dark .Dialog__action-button--primary{color:var(--color-gray-100)}.excalidraw .publish-library__fields{display:flex;flex-direction:column}.excalidraw .publish-library__fields label{padding:1em 0;display:flex;justify-content:space-between;align-items:center}.excalidraw .publish-library__fields label span{font-weight:500;font-size:1rem;color:#868e96}.excalidraw .publish-library__fields label input,.excalidraw .publish-library__fields label textarea{width:70%;padding:.6em;font-family:var(--ui-font)}.excalidraw .publish-library__fields label .required{color:#e03131;margin:.2rem}.excalidraw .publish-library__buttons{display:flex;padding:.2rem 0;justify-content:flex-end;gap:.5rem}.excalidraw .publish-library__buttons .ToolIcon__icon{min-width:2.5rem;width:auto;font-size:1rem}.excalidraw .publish-library__buttons .ToolIcon_type_button{margin-left:1rem;padding:0 .5rem}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button{background-color:#228be6}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button{background-color:#adb5bd}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button:hover{background-color:#868e96}.excalidraw .publish-library__buttons .ToolIcon__icon{color:#fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner{--spinner-color: #fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner svg{padding:.5rem}.excalidraw .publish-library .selected-library-items{display:flex;flex-wrap:wrap}.excalidraw .publish-library .selected-library-items .single-library-item-wrapper{width:9rem}.excalidraw .publish-library-warning{color:#fa5252}.excalidraw .publish-library-note{padding:1em 0;font-style:italic;font-size:14px;display:block}.excalidraw .single-library-item{position:relative}.excalidraw .single-library-item-status{position:absolute;top:.3rem;left:.3rem;font-size:.7rem;color:#f03e3e;background:#ffffffe6;padding:.1rem .2rem;border-radius:.2rem}.excalidraw .single-library-item__svg{background-color:#fff;padding:.3rem;width:7.5rem;height:7.5rem;border:1px solid var(--button-gray-2)}.excalidraw .single-library-item__svg svg{width:100%;height:100%}.excalidraw .single-library-item .ToolIcon__icon{background-color:#fff;width:auto;height:auto;margin:0 .5rem}.excalidraw .single-library-item .ToolIcon,.excalidraw .single-library-item .ToolIcon_type_button:hover{background-color:#fff}.excalidraw .single-library-item .required,.excalidraw .single-library-item .error{color:#e03131;font-weight:700;font-size:1rem;margin:.2rem}.excalidraw .single-library-item .error{font-weight:500;margin:0;padding:.3em 0}.excalidraw .single-library-item--remove{position:absolute;top:.2rem;right:1rem}.excalidraw .single-library-item--remove .ToolIcon__icon{margin:0}.excalidraw .single-library-item--remove .ToolIcon__icon{background-color:#fa5252}.excalidraw .single-library-item--remove .ToolIcon__icon:hover{background-color:#f03e3e}.excalidraw .single-library-item--remove .ToolIcon__icon:active{background-color:#e03131}.excalidraw .single-library-item--remove svg{color:#fff;padding:.26rem;border-radius:.3em;width:1rem;height:1rem}.excalidraw .library-unit{align-items:center;border:1px solid transparent;display:flex;justify-content:center;position:relative;width:55px;height:55px;box-sizing:border-box;border-radius:var(--border-radius-lg)}.excalidraw .library-unit svg{pointer-events:none}.excalidraw .library-unit--hover{border-color:var(--color-primary)}.excalidraw .library-unit--selected{border-color:var(--color-primary);border-width:1px}.excalidraw .library-unit--skeleton{opacity:.5;background:linear-gradient(-45deg,var(--color-gray-10),var(--color-gray-20),var(--color-gray-10));background-size:200% 200%;animation:library-unit__skeleton-opacity-animation .2s linear}.excalidraw.theme--dark .library-unit--skeleton{background-image:linear-gradient(-45deg,var(--color-gray-100),var(--color-gray-80),var(--color-gray-100))}.excalidraw .library-unit__dragger{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.excalidraw .library-unit__dragger>svg{filter:var(--theme-filter);flex-grow:1;max-height:100%;max-width:100%}.excalidraw .library-unit__checkbox-container,.excalidraw .library-unit__checkbox-container:hover,.excalidraw .library-unit__checkbox-container:active{align-items:center;background:none;border:none;color:var(--icon-fill-color);display:flex;justify-content:center;margin:0;padding:.5rem;position:absolute;left:2rem;bottom:2rem;cursor:pointer}.excalidraw .library-unit__checkbox-container input,.excalidraw .library-unit__checkbox-container:hover input,.excalidraw .library-unit__checkbox-container:active input{cursor:pointer}.excalidraw .library-unit__checkbox{position:absolute;top:.125rem;right:.125rem;margin:0}.excalidraw .library-unit__checkbox .Checkbox-box{margin:0;width:1rem;height:1rem;border-radius:4px;background-color:var(--color-primary-light);border:1px solid var(--color-primary);box-shadow:none!important;padding:2px}.excalidraw .library-unit__checkbox.Checkbox:hover .Checkbox-box{background-color:var(--color-primary-light)}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box{background-color:var(--color-primary)!important}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box svg{color:var(--color-primary-light)}.excalidraw .library-unit__removeFromLibrary>svg{height:16px;width:16px}.excalidraw .library-unit__adder{transform:scale(1);animation:library-unit__adder-animation 1s ease-in infinite;position:absolute;width:1.5rem;height:1.5rem;background-color:var(--color-primary);border-radius:var(--border-radius-md);display:flex;justify-content:center;align-items:center;pointer-events:none}.excalidraw .library-unit__adder svg{color:var(--color-primary-light);width:1rem;height:1rem}.excalidraw .library-unit:active .library-unit__adder{animation:none;transform:scale(.8)}.excalidraw .library-unit__active{cursor:pointer}@keyframes library-unit__adder-animation{0%{transform:scale(.85)}50%{transform:scale(1)}to{transform:scale(.85)}}@keyframes library-unit__skeleton-opacity-animation{0%{opacity:0}75%{opacity:0}to{opacity:.5}}.excalidraw{--container-padding-y: 1.5rem;--container-padding-x: .75rem}.excalidraw .library-menu-items__no-items{text-align:center;color:var(--color-gray-70);line-height:1.5;font-size:.875rem;width:100%}.excalidraw .library-menu-items__no-items__label{color:var(--color-primary);font-weight:700;font-size:1.125rem;margin-bottom:.75rem}.excalidraw.theme--dark .library-menu-items__no-items{color:var(--color-gray-40)}.excalidraw .library-menu-items-container{width:100%;display:flex;flex-grow:1;flex-shrink:1;flex-basis:0;overflow-y:auto;flex-direction:column;height:100%;justify-content:center;margin:0;position:relative}.excalidraw .library-menu-items-container>div{padding-left:.75rem;padding-right:.75rem}.excalidraw .library-menu-items-container__row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.excalidraw .library-menu-items-container__items{row-gap:.5rem;padding:var(--container-padding-y) 0;flex:1;overflow-y:auto;overflow-x:hidden;margin-bottom:1rem}.excalidraw .library-menu-items-container__header{color:var(--color-primary);font-size:1.125rem;font-weight:700;margin-bottom:.75rem;width:100%;padding-right:4rem;box-sizing:border-box}.excalidraw .library-menu-items-container__header--excal{margin-top:2rem}.excalidraw .library-menu-items-container__grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:1rem}.excalidraw .library-menu-items-container .separator{width:100%;display:flex;align-items:center;font-weight:500;font-size:.9rem;margin:.6em .2em;color:var(--text-primary-color)}.excalidraw .library-menu-items-private-library-container{min-height:3.75rem;width:100%}.excalidraw .layer-ui__library{display:flex;flex-direction:column;flex:1 1 auto}.excalidraw .library-actions-counter{background-color:var(--color-primary);color:var(--color-primary-light);font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:50%;width:1rem;height:1rem;position:absolute;bottom:-.25rem;right:-.25rem;font-size:.625rem;pointer-events:none}.excalidraw .layer-ui__library-message{padding:2rem;min-width:200px;display:flex;flex-direction:column;align-items:center;flex-grow:1;justify-content:center}.excalidraw .layer-ui__library-message span{font-size:.8em}.excalidraw .publish-library-success .Dialog__content{display:flex;flex-direction:column}.excalidraw .publish-library-success-close.ToolIcon_type_button{background-color:#228be6;align-self:flex-end}.excalidraw .publish-library-success-close.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library-success-close.ToolIcon_type_button .ToolIcon__icon{width:auto;font-size:1rem;color:#fff;padding:0 .5rem}.excalidraw .library-menu-control-buttons{display:flex;align-items:center;justify-content:center;gap:.625rem;position:relative}.excalidraw .library-menu-control-buttons--at-bottom:before{content:"";width:calc(100% - 1.5rem);height:1px;position:absolute;top:-1px;background:var(--sidebar-border-color)}.excalidraw .library-menu-browse-button{flex:1;height:var(--lg-button-size);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border-radius:var(--border-radius-lg);background-color:var(--color-primary);color:#fff;text-align:center;white-space:nowrap;text-decoration:none!important;font-weight:600;font-size:.75rem}.excalidraw .library-menu-browse-button:hover{background-color:var(--color-brand-hover)}.excalidraw .library-menu-browse-button:active{background-color:var(--color-brand-active)}.excalidraw.theme--dark .library-menu-browse-button{color:var(--color-gray-100)}.excalidraw.excalidraw--mobile .library-menu-browse-button{height:var(--default-button-size)}.excalidraw .layer-ui__library .dropdown-menu{width:auto;top:initial;right:0;left:initial;bottom:100%;margin-bottom:.625rem}.excalidraw .layer-ui__library .dropdown-menu .dropdown-menu-container{width:196px;box-shadow:var(--library-dropdown-shadow);border-radius:var(--border-radius-lg);padding:.25rem .5rem}.excalidraw .layer-ui__library .library-menu-dropdown-container{position:relative}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading{padding:0;position:absolute;top:1rem;right:.75rem;z-index:1}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading .dropdown-menu{top:100%}.excalidraw .OverwriteConfirm{display:flex;flex-direction:column;align-items:center;gap:.75rem;isolation:isolate}.excalidraw .OverwriteConfirm h3{margin:0;font-weight:700;font-size:1.3125rem;line-height:130%;align-self:flex-start;color:var(--text-primary-color)}.excalidraw .OverwriteConfirm__Description{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;width:100%;gap:1rem;padding:2.5rem;background:var(--color-danger-background);border-radius:.5rem;font-family:Assistant;font-style:normal;font-weight:400;font-size:1rem;line-height:150%;color:var(--color-danger-color)}.excalidraw--mobile.excalidraw .OverwriteConfirm__Description{flex-direction:column;text-align:center}.excalidraw .OverwriteConfirm__Description__spacer{flex-grow:1}.excalidraw .OverwriteConfirm__Description__icon{box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:2.5rem;background:var(--color-danger-icon-background);width:3.5rem;height:3.5rem;padding:.75rem}.excalidraw .OverwriteConfirm__Description__icon svg{color:var(--color-danger-icon-color);width:1.5rem;height:1.5rem}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning{background:var(--color-warning-background);color:var(--color-warning-color)}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon{background:var(--color-warning-icon-background);flex:0 0 auto}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon svg{color:var(--color-warning-icon-color)}.excalidraw .OverwriteConfirm__Actions{display:flex;flex-direction:row;align-items:stretch;justify-items:stretch;justify-content:center;gap:1.5rem}.excalidraw--mobile.excalidraw .OverwriteConfirm__Actions{flex-direction:column}.excalidraw .OverwriteConfirm__Actions__Action{display:flex;flex-direction:column;align-items:center;padding:1.5rem;gap:.75rem;flex-basis:50%;flex-grow:0}.excalidraw .OverwriteConfirm__Actions__Action__content{height:100%;font-size:.875rem;text-align:center}.excalidraw .OverwriteConfirm__Actions__Action h4{font-weight:700;font-size:1.125rem;line-height:130%;margin:0;color:var(--text-primary-color)}.excalidraw .layer-ui__wrapper.animate{transition:width .1s ease-in-out}.excalidraw .layer-ui__wrapper{position:absolute;width:100%;height:100%;pointer-events:none;z-index:var(--zIndex-layerUI)}.excalidraw .layer-ui__wrapper__top-right{display:flex;width:100%;justify-content:flex-end;gap:.75rem;pointer-events:none!important}.excalidraw .layer-ui__wrapper__top-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper__footer{width:100%}.excalidraw .layer-ui__wrapper__footer-right{z-index:100;display:flex}.excalidraw .layer-ui__wrapper .zen-mode-transition{transition:transform .5s ease-in-out}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(-999px)}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right{transform:translate(999px)}:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(999px)}:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right{transform:translate(-999px)}.excalidraw .layer-ui__wrapper .zen-mode-transition.layer-ui__wrapper__footer-left--transition-bottom{transform:translateY(92px)}.excalidraw .layer-ui__wrapper .disable-zen-mode{padding:10px;position:absolute;bottom:0;opacity:0;visibility:hidden;transition:visibility 0s linear 0s,opacity .5s;font-family:var(--ui-font);font-size:.75rem;font-weight:500;line-height:1;border-radius:var(--border-radius-lg);border:1px solid var(--default-border-color);background-color:var(--island-bg-color);color:var(--text-primary-color)}[dir=ltr] .excalidraw .layer-ui__wrapper .disable-zen-mode{right:1rem}[dir=rtl] .excalidraw .layer-ui__wrapper .disable-zen-mode{left:1rem}.excalidraw .layer-ui__wrapper .disable-zen-mode:hover{background-color:var(--button-hover-bg)}.excalidraw .layer-ui__wrapper .disable-zen-mode:active{border-color:var(--color-primary)}.excalidraw .layer-ui__wrapper .disable-zen-mode--visible{opacity:1;visibility:visible;transition:visibility 0s linear .3s,opacity .5s;transition-delay:.8s;pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-left>*,.excalidraw .layer-ui__wrapper .footer-center>*,.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right{margin-top:auto;margin-bottom:auto}.excalidraw .App-toolbar.zen-mode .ToolIcon__keybinding,.excalidraw .App-toolbar.zen-mode .HintViewer{display:none}.excalidraw .App-toolbar__divider{width:1px;height:1.5rem;align-self:center;background-color:var(--default-border-color);margin:0 .25rem}.excalidraw--mobile.excalidraw .App-toolbar__divider{margin:0}.excalidraw .App-toolbar__extra-tools-trigger{box-shadow:none;border:0;background-color:transparent}.excalidraw .App-toolbar__extra-tools-trigger:active{background-color:var(--button-hover-bg);box-shadow:0 0 0 1px var(--button-active-border, var(--color-primary-darkest)) inset}.excalidraw .App-toolbar__extra-tools-trigger--selected,.excalidraw .App-toolbar__extra-tools-trigger--selected:hover{background:var(--color-primary-light);color:var(--color-primary)}.excalidraw .App-toolbar__extra-tools-dropdown{margin-top:.375rem;right:0;min-width:11.875rem;z-index:1}.excalidraw{--ExcTextField--color: var(--color-on-surface);--ExcTextField--label-color: var(--color-on-surface);--ExcTextField--background: transparent;--ExcTextField--readonly--background: var(--color-surface-high);--ExcTextField--readonly--color: var(--color-on-surface);--ExcTextField--border: var(--color-border-outline);--ExcTextField--readonly--border: var(--color-border-outline-variant);--ExcTextField--border-hover: var(--color-brand-hover);--ExcTextField--border-active: var(--color-brand-active);--ExcTextField--placeholder: var(--color-border-outline-variant)}.excalidraw .ExcTextField--fullWidth{width:100%;flex-grow:1}.excalidraw .ExcTextField__label{font-family:Assistant;font-style:normal;font-weight:600;font-size:.875rem;line-height:150%;color:var(--ExcTextField--label-color);margin-bottom:.25rem;-webkit-user-select:none;user-select:none}.excalidraw .ExcTextField__input{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;padding:0 1rem;height:3rem;background:var(--ExcTextField--background);border:1px solid var(--ExcTextField--border);border-radius:.5rem}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):hover{border-color:var(--ExcTextField--border-hover)}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):active,.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):focus-within{border-color:var(--ExcTextField--border-active)}.excalidraw .ExcTextField__input input{display:flex;align-items:center;border:none;outline:none;padding:0;margin:0;height:1.5rem;color:var(--ExcTextField--color);font-family:Assistant;font-style:normal;font-weight:400;font-size:1rem;line-height:150%;text-overflow:ellipsis;background:transparent;width:100%}.excalidraw .ExcTextField__input input::placeholder{color:var(--ExcTextField--placeholder)}.excalidraw .ExcTextField__input input:not(:focus):hover{background-color:initial}.excalidraw .ExcTextField__input input:focus{outline:initial;box-shadow:initial}.excalidraw .ExcTextField__input--readonly{background:var(--ExcTextField--readonly--background);border-color:var(--ExcTextField--readonly--border)}.excalidraw .ExcTextField__input--readonly input{color:var(--ExcTextField--readonly--color)}.excalidraw .MagicSettings .Island{height:100%;display:flex;flex-direction:column}.excalidraw .MagicSettings-confirm{padding:.5rem 1rem}.excalidraw .MagicSettings__confirm{margin-top:2rem;margin-right:auto}.excalidraw .dialog-mermaid-title{margin-block:.25rem;font-size:1.25rem;font-weight:700;padding-inline:2.5rem}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;-webkit-user-select:none;user-select:none}.LoadingMessage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.LoadingMessage .Spinner{font-size:2.8em}.LoadingMessage .LoadingMessage-text{margin-top:1em;font-size:.8em}.LoadingMessage--dark{background-color:#121212;color:#ced4da}.excalidraw{--theme-filter: none;--button-destructive-bg-color: #ffe3e3;--button-destructive-color: #c92a2a;--button-gray-1: #e9ecef;--button-gray-2: #ced4da;--button-gray-3: #adb5bd;--button-special-active-bg-color: #ebfbee;--dialog-border-color: var(--color-gray-20);--dropdown-icon: url('data:image/svg+xml,');--focus-highlight-color: #a5d8ff;--icon-fill-color: var(--color-on-surface);--icon-green-fill-color: #2b8a3e;--default-bg-color: #ffffff;--input-bg-color: #ffffff;--input-border-color: #ced4da;--input-hover-bg-color: #f1f3f5;--input-label-color: #495057;--island-bg-color: #ffffff;--keybinding-color: var(--color-gray-40);--link-color: #1c7ed6;--overlay-bg-color: rgba(255, 255, 255, .88);--popup-bg-color: var(--island-bg-color);--popup-secondary-bg-color: #f1f3f5;--popup-text-color: #000000;--popup-text-inverted-color: #ffffff;--select-highlight-color: #339af0;--shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--button-hover-bg: var(--color-surface-high);--button-active-bg: var(--color-surface-high);--button-active-border: var(--color-brand-active);--default-border-color: var(--color-surface-high);--default-button-size: 2rem;--default-icon-size: 1rem;--lg-button-size: 2.25rem;--lg-icon-size: 1rem;--editor-container-padding: 1rem;--scrollbar-thumb: var(--button-gray-2);--scrollbar-thumb-hover: var(--button-gray-3);--modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--avatar-border-color: var(--color-gray-20);--sidebar-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--sidebar-border-color: var(--color-surface-high);--sidebar-bg-color: var(--island-bg-color);--library-dropdown-shadow: 0px 15px 6px rgba(0, 0, 0, .01), 0px 8px 5px rgba(0, 0, 0, .05), 0px 4px 4px rgba(0, 0, 0, .09), 0px 1px 2px rgba(0, 0, 0, .1), 0px 0px 0px rgba(0, 0, 0, .1);--space-factor: .25rem;--text-primary-color: var(--color-on-surface);--color-selection: #6965db;--color-icon-white: #ffffff;--color-primary: #6965db;--color-primary-darker: #5b57d1;--color-primary-darkest: #4a47b1;--color-primary-light: #e3e2fe;--color-primary-light-darker: #d7d5ff;--color-primary-hover: #5753d0;--color-gray-10: #f5f5f5;--color-gray-20: #ebebeb;--color-gray-30: #d6d6d6;--color-gray-40: #b8b8b8;--color-gray-50: #999999;--color-gray-60: #7a7a7a;--color-gray-70: #5c5c5c;--color-gray-80: #3d3d3d;--color-gray-85: #242424;--color-gray-90: #1e1e1e;--color-gray-100: #121212;--color-warning: #fceeca;--color-warning-dark: #f5c354;--color-warning-darker: #f3ab2c;--color-warning-darkest: #ec8b14;--color-text-warning: var(--text-primary-color);--color-danger: #db6965;--color-danger-dark: #db6965;--color-danger-darker: #d65550;--color-danger-darkest: #d1413c;--color-danger-text: black;--color-danger-background: #fff0f0;--color-danger-icon-background: #ffdad6;--color-danger-color: #700000;--color-danger-icon-color: #700000;--color-warning-background: var(--color-warning);--color-warning-icon-background: var(--color-warning-dark);--color-warning-color: var(--text-primary-color);--color-warning-icon-color: var(--text-primary-color);--color-muted: var(--color-gray-30);--color-muted-darker: var(--color-gray-60);--color-muted-darkest: var(--color-gray-100);--color-muted-background: var(--color-gray-80);--color-muted-background-darker: var(--color-gray-100);--color-promo: #e70078;--color-success: #268029;--color-success-lighter: #cafccc;--color-logo-icon: var(--color-primary);--color-logo-text: #190064;--border-radius-md: .375rem;--border-radius-lg: .5rem;--color-surface-high: hsl(244, 100%, 97%);--color-surface-mid: hsl(240 25% 96%);--color-surface-low: hsl(240 25% 94%);--color-surface-lowest: #ffffff;--color-on-surface: #1b1b1f;--color-brand-hover: #5753d0;--color-on-primary-container: #030064;--color-brand-active: #4440bf;--color-border-outline: #767680;--color-border-outline-variant: #c5c5d0;--color-surface-primary-container: #e0dfff}@media screen and (min-device-width: 1921px){.excalidraw{--lg-button-size: 2.5rem;--lg-icon-size: 1.25rem;--default-button-size: 2.25rem;--default-icon-size: 1.25rem}}.excalidraw.theme--dark.theme--dark-background-none{background:none}.excalidraw.theme--dark{--theme-filter: invert(93%) hue-rotate(180deg);--button-destructive-bg-color: #5a0000;--button-destructive-color: #ffa8a8;--button-gray-1: #363636;--button-gray-2: #272727;--button-gray-3: #222;--button-special-active-bg-color: #204624;--dialog-border-color: var(--color-gray-80);--dropdown-icon: url('data:image/svg+xml,');--focus-highlight-color: #228be6;--icon-green-fill-color: #69db7c;--default-bg-color: #121212;--input-bg-color: #121212;--input-border-color: #2e2e2e;--input-hover-bg-color: #181818;--input-label-color: #e9ecef;--island-bg-color: #232329;--keybinding-color: var(--color-gray-60);--link-color: #4dabf7;--overlay-bg-color: rgba(52, 58, 64, .12);--popup-secondary-bg-color: #222;--popup-text-color: #ced4da;--popup-text-inverted-color: #2c2c2c;--select-highlight-color: #4dabf7;--shadow-island: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--modal-shadow: 0px 100px 80px rgba(0, 0, 0, .07), 0px 41.7776px 33.4221px rgba(0, 0, 0, .0503198), 0px 22.3363px 17.869px rgba(0, 0, 0, .0417275), 0px 12.5216px 10.0172px rgba(0, 0, 0, .035), 0px 6.6501px 5.32008px rgba(0, 0, 0, .0282725), 0px 2.76726px 2.21381px rgba(0, 0, 0, .0196802);--avatar-border-color: var(--color-gray-85);--scrollbar-thumb: #343a40;--scrollbar-thumb-hover: #495057;--color-selection: #3530c4;--color-icon-white: var(--color-gray-90);--color-primary: #a8a5ff;--color-primary-darker: #b2aeff;--color-primary-darkest: #beb9ff;--color-primary-light: #4f4d6f;--color-primary-light-darker: #43415e;--color-primary-hover: #bbb8ff;--color-text-warning: var(--color-gray-80);--color-danger: #ffa8a5;--color-danger-dark: #672120;--color-danger-darker: #8f2625;--color-danger-darkest: #ac2b29;--color-danger-text: #fbcbcc;--color-danger-background: #fbcbcc;--color-danger-icon-background: #672120;--color-danger-color: #261919;--color-danger-icon-color: #fbcbcc;--color-warning-background: var(--color-warning);--color-warning-icon-background: var(--color-warning-dark);--color-warning-color: var(--color-gray-80);--color-warning-icon-color: var(--color-gray-80);--color-muted: var(--color-gray-80);--color-muted-darker: var(--color-gray-60);--color-muted-darkest: var(--color-gray-20);--color-muted-background: var(--color-gray-40);--color-muted-background-darker: var(--color-gray-20);--color-promo: #d297ff;--color-logo-text: #e2dfff;--color-surface-high: hsl(245, 10%, 21%);--color-surface-low: hsl(240, 8%, 15%);--color-surface-mid: hsl(240 6% 10%);--color-surface-lowest: hsl(0, 0%, 7%);--color-on-surface: #e3e3e8;--color-brand-hover: #bbb8ff;--color-on-primary-container: #e0dfff;--color-brand-active: #d0ccff;--color-border-outline: #8e8d9c;--color-border-outline-variant: #46464f;--color-surface-primary-container: #403e6a}:root{--zIndex-canvas: 1;--zIndex-interactiveCanvas: 2;--zIndex-wysiwyg: 3;--zIndex-canvasButtons: 3;--zIndex-layerUI: 4;--zIndex-eyeDropperBackdrop: 5;--zIndex-eyeDropperPreview: 6;--zIndex-hyperlinkContainer: 7;--zIndex-modal: 1000;--zIndex-popup: 1001;--zIndex-toast: 999999;--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left);--sar: env(safe-area-inset-right);--sat: env(safe-area-inset-top)}.excalidraw{--ui-font: Assistant, system-ui, BlinkMacSystemFont, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;font-family:var(--ui-font);position:relative;overflow:hidden;color:var(--text-primary-color);display:flex;top:0;bottom:0;left:0;right:0;height:100%;width:100%;-webkit-user-select:none;user-select:none}.excalidraw button{cursor:pointer;-webkit-user-select:none;user-select:none}.excalidraw:focus{outline:none}.excalidraw .excalidraw-link,.excalidraw a{font-weight:500;text-decoration:none;color:var(--link-color);-webkit-user-select:none;user-select:none;cursor:pointer}.excalidraw .excalidraw-link:hover,.excalidraw a:hover{text-decoration:underline}.excalidraw .excalidraw-link:active,.excalidraw a:active{text-decoration:none}.excalidraw canvas{touch-action:none;image-rendering:pixelated;image-rendering:-moz-crisp-edges;z-index:var(--zIndex-canvas)}.excalidraw canvas.interactive{z-index:var(--zIndex-interactiveCanvas)}.excalidraw__canvas-wrapper,.excalidraw__canvas.static{pointer-events:none}.excalidraw__canvas{position:absolute}.excalidraw__embeddable{width:100%;height:100%;border:0}.excalidraw__embeddable-container{position:absolute;z-index:2;transform-origin:top left;pointer-events:none}.excalidraw.theme--dark canvas{filter:var(--theme-filter)}.excalidraw .FixedSideContainer{padding-top:var(--sat, 0);padding-right:var(--sar, 0);padding-bottom:var(--sab, 0);padding-left:var(--sal, 0)}.excalidraw .panelRow{display:flex;justify-content:space-between}.excalidraw .panelColumn{display:flex;flex-direction:column;row-gap:.75rem}.excalidraw .panelColumn h3,.excalidraw .panelColumn legend,.excalidraw .panelColumn .control-label{margin:0;margin-bottom:.25rem;font-size:.75rem;color:var(--text-primary-color);font-weight:400;display:block}.excalidraw .panelColumn .control-label input{display:block;width:100%}.excalidraw .panelColumn legend{padding:0}.excalidraw .panelColumn .iconSelectList{flex-wrap:wrap;position:relative}.excalidraw .panelColumn .buttonList{flex-wrap:wrap;display:flex;column-gap:.5rem;row-gap:.5rem}.excalidraw .panelColumn .buttonList label{font-size:.75rem}.excalidraw .panelColumn .buttonList input[type=radio],.excalidraw .panelColumn .buttonList input[type=button]{opacity:0;position:absolute;pointer-events:none}.excalidraw .panelColumn .buttonList .iconRow{margin-top:8px}.excalidraw .panelColumn fieldset{margin:0;padding:0;border:none}.excalidraw .divider{width:1px;background-color:#e9ecef;margin:1px}.excalidraw .welcome-screen-menu-item:focus-visible,.excalidraw .dropdown-menu-item:focus-visible,.excalidraw button:focus-visible,.excalidraw .buttonList label:focus-within,.excalidraw input:focus-visible{outline:transparent;box-shadow:0 0 0 1px var(--color-brand-hover)}.excalidraw .buttonList .ToolIcon__icon{all:unset!important;display:flex!important}.excalidraw .buttonList button{background-color:transparent}.excalidraw .buttonList label,.excalidraw .buttonList button,.excalidraw .buttonList .zIndexButton{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);padding:0}.excalidraw .buttonList label svg,.excalidraw .buttonList button svg,.excalidraw .buttonList .zIndexButton svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .buttonList label:hover,.excalidraw .buttonList button:hover,.excalidraw .buttonList .zIndexButton:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .buttonList label:active,.excalidraw .buttonList button:active,.excalidraw .buttonList .zIndexButton:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .buttonList label.active,.excalidraw .buttonList button.active,.excalidraw .buttonList .zIndexButton.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .buttonList label.active:hover,.excalidraw .buttonList button.active:hover,.excalidraw .buttonList .zIndexButton.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .buttonList label.active svg,.excalidraw .buttonList button.active svg,.excalidraw .buttonList .zIndexButton.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .buttonList label svg,.excalidraw .buttonList button svg,.excalidraw .buttonList .zIndexButton svg{width:var(--default-icon-size);height:var(--default-icon-size)}.excalidraw .App-top-bar{z-index:var(--zIndex-layerUI);display:flex;flex-direction:column;align-items:center}.excalidraw .App-bottom-bar{position:absolute;top:0;bottom:0;left:0;right:0;--bar-padding: calc(4 * var(--space-factor));padding-top:max(var(--bar-padding),var(--sat,0));padding-right:var(--sar, 0);padding-bottom:var(--sab, 0);padding-left:var(--sal, 0);z-index:4;display:flex;align-items:flex-end;pointer-events:none}.excalidraw .App-bottom-bar>.Island{width:100%;max-width:100%;min-width:100%;box-sizing:border-box;max-height:100%;display:flex;flex-direction:column;pointer-events:var(--ui-pointerEvents)}.excalidraw .App-bottom-bar>.Island .panelColumn{padding:8px 8px 0}.excalidraw .App-toolbar{width:100%}.excalidraw .App-toolbar .eraser.ToolIcon:hover{--icon-fill-color: #fff;--keybinding-color: #fff}.excalidraw .App-toolbar .eraser.active{background-color:var(--color-primary)}.excalidraw .App-toolbar-content{display:flex;align-items:center;justify-content:space-between;padding:8px}.excalidraw .App-toolbar-content .dropdown-menu--mobile{bottom:55px;top:auto}.excalidraw .App-mobile-menu{width:100%;overflow-x:visible;overflow-y:auto;box-sizing:border-box;margin-bottom:var(--bar-padding)}.excalidraw .App-menu{display:grid;color:var(--icon-fill-color)}.excalidraw .shapes-section{display:flex;justify-content:center;pointer-events:none!important}.excalidraw .shapes-section>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .App-menu_top{grid-template-columns:1fr 2fr 1fr;grid-gap:2rem;align-items:flex-start;cursor:default;pointer-events:none!important}.excalidraw .App-menu_top>*{pointer-events:var(--ui-pointerEvents)}@media (min-width: 1536px){.excalidraw .App-menu_top{grid-template-columns:1fr 1fr 1fr;grid-gap:3rem}}.excalidraw .App-menu_top>*:first-child{justify-self:flex-start}.excalidraw .App-menu_top>*:last-child{justify-self:flex-end}.excalidraw .App-menu_bottom{position:absolute;bottom:1rem;display:flex;justify-content:space-between;align-items:flex-start;cursor:default;pointer-events:none!important;box-sizing:border-box;padding:0 1rem}.excalidraw .App-menu_bottom--transition-left section{width:185px}.excalidraw .App-menu_bottom section{display:flex}.excalidraw .App-menu_bottom>*:first-child{justify-self:flex-start}.excalidraw .App-menu_bottom>*:last-child{justify-self:flex-end}.excalidraw .App-menu_left{grid-template-rows:1fr auto 1fr;height:100%}.excalidraw .App-menu_right{grid-template-rows:1fr;height:100%}.excalidraw .App-menu__left{overflow-y:auto;padding:.75rem;width:202px;box-sizing:border-box;position:absolute}.excalidraw .dropdown-select{height:1.5rem;padding:0;padding-inline-start:.5rem;padding-inline-end:1.5rem;color:var(--icon-fill-color);background-color:var(--button-gray-1);border-radius:var(--space-factor);border:1px solid var(--button-gray-2);font-size:.8rem;font-family:inherit;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--dropdown-icon);background-repeat:no-repeat;background-position:right .7rem top 50%,0 0;background-size:.65em auto,100%}:root[dir=rtl] .excalidraw .dropdown-select{background-position:left .7rem top 50%,0 0}.excalidraw .dropdown-select:focus{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .dropdown-select:hover,.excalidraw .dropdown-select:active{background-color:var(--button-gray-2)}.excalidraw .dropdown-select__language{height:2rem;background-color:var(--island-bg-color);border-color:var(--default-border-color)!important;cursor:pointer}.excalidraw .dropdown-select__language:hover{background-color:var(--island-bg-color)}.excalidraw .scroll-back-to-content{border-radius:var(--border-radius-lg);background-color:var(--island-bg-color);color:var(--icon-fill-color);border:1px solid var(--default-border-color);padding:10px 20px;position:absolute;left:50%;bottom:30px;transform:translate(-50%);pointer-events:var(--ui-pointerEvents);font-family:inherit}.excalidraw .scroll-back-to-content:hover{background-color:var(--button-hover-bg)}.excalidraw .scroll-back-to-content:active{border:1px solid var(--button-active-border)}.excalidraw .help-icon{display:flex;justify-content:center;align-items:center;padding:.625rem;width:var(--button-width, var(--default-button-size));height:var(--button-height, var(--default-button-size));box-sizing:border-box;border-width:1px;border-style:solid;border-color:var(--button-border, var(--default-border-color));border-radius:var(--border-radius-lg);cursor:pointer;background-color:var(--button-bg, var(--island-bg-color));color:var(--button-color, var(--color-on-surface));font-family:var(--ui-font);border:none;box-shadow:0 0 0 1px var(--color-surface-lowest);background-color:var(--color-surface-low);width:var(--lg-button-size);height:var(--lg-button-size)}.excalidraw .help-icon svg{width:var(--button-width, var(--lg-icon-size));height:var(--button-height, var(--lg-icon-size))}.excalidraw .help-icon:hover{background-color:var(--button-hover-bg, var(--island-bg-color));border-color:var(--button-hover-border, var(--button-border, var(--default-border-color)));color:var(--button-hover-color, var(--button-color, var(--text-primary-color, inherit)))}.excalidraw .help-icon:active{background-color:var(--button-active-bg, var(--island-bg-color));border-color:var(--button-active-border, var(--color-primary-darkest))}.excalidraw .help-icon.active{background-color:var(--button-selected-bg, var(--color-surface-primary-container));border-color:var(--button-selected-border, var(--color-surface-primary-container))}.excalidraw .help-icon.active:hover{background-color:var(--button-selected-hover-bg, var(--color-surface-primary-container))}.excalidraw .help-icon.active svg{color:var(--button-color, var(--color-on-primary-container))}.excalidraw .help-icon:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .help-icon svg{width:var(--lg-icon-size);height:var(--lg-icon-size)}.excalidraw .reset-zoom-button{font-family:var(--ui-font)}.excalidraw .finalize-button{display:grid;grid-auto-flow:column;gap:.4em;margin-top:auto;margin-bottom:auto;margin-inline-start:.6em}.excalidraw .undo-redo-buttons,.excalidraw .eraser-buttons{display:grid;grid-auto-flow:column;margin-top:auto;margin-bottom:auto;margin-inline-start:.6em}.excalidraw--mobile.excalidraw aside{display:none}.excalidraw--mobile.excalidraw .scroll-back-to-content{bottom:calc(80px + var(--sab, 0));z-index:-1}:root[dir=rtl] .excalidraw .rtl-mirror{transform:scaleX(-1)}.excalidraw .zen-mode-visibility{visibility:visible;opacity:1;height:auto;width:auto;transition:opacity .5s}.excalidraw .zen-mode-visibility.zen-mode-visibility--hidden{visibility:hidden;opacity:0;height:0;width:0;transition:opacity .5s}.excalidraw .disable-pointerEvents{pointer-events:none!important}.excalidraw.excalidraw--view-mode .App-menu{display:flex;justify-content:space-between}.excalidraw input.is-redacted{-webkit-text-security:disc}.excalidraw input[type=text],.excalidraw textarea:not(.excalidraw-wysiwyg){color:var(--text-primary-color);border:1.5px solid var(--input-border-color);padding:.75rem;white-space:nowrap;border-radius:var(--space-factor);background-color:var(--input-bg-color)}.excalidraw input[type=text]:not(:focus):hover,.excalidraw textarea:not(.excalidraw-wysiwyg):not(:focus):hover{border-color:var(--color-brand-hover)}.excalidraw input[type=text]:focus,.excalidraw textarea:not(.excalidraw-wysiwyg):focus{outline:none;border-color:var(--color-brand-hover)}@media print{.excalidraw .App-bottom-bar,.excalidraw .FixedSideContainer,.excalidraw .layer-ui__wrapper{display:none}}.excalidraw ::-webkit-scrollbar{width:3px;height:3px}.excalidraw select::-webkit-scrollbar{width:10px}.excalidraw ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}.excalidraw ::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.excalidraw ::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb)}.excalidraw .mobile-misc-tools-container{position:absolute;top:calc(5rem - var(--editor-container-padding));right:calc(var(--editor-container-padding) * -1);display:flex;flex-direction:column;border:1px solid var(--sidebar-border-color);border-top-left-radius:var(--border-radius-lg);border-bottom-left-radius:var(--border-radius-lg);border-right:0;overflow:hidden;background-color:var(--island-bg-color)}.excalidraw .mobile-misc-tools-container .ToolIcon__icon{width:2rem;height:2rem;border-radius:0}.excalidraw .mobile-misc-tools-container .default-sidebar-trigger{border:0}.excalidraw .App-toolbar--mobile{overflow:visible;max-width:98vw}.excalidraw .App-toolbar--mobile .ToolIcon__keybinding{display:none}.excalidraw .UserList-Wrapper{margin:0;padding:0;border:none;text-align:left}.excalidraw .UserList-Wrapper legend{display:block;font-size:.75rem;font-weight:400;margin:0 0 .25rem;padding:0}.excalidraw .main-menu-trigger{border:none;box-shadow:0 0 0 1px var(--color-surface-lowest);background-color:var(--color-surface-low)}.excalidraw .main-menu-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .App-menu__left{--button-border: transparent;--button-bg: var(--color-surface-mid)}.excalidraw.theme--dark.excalidraw .App-menu__left{--button-hover-bg: #363541;--button-bg: var(--color-surface-high)}.excalidraw .excalidraw__paragraph{margin:1rem 0}.excalidraw .Modal__content .excalidraw__paragraph:first-child{margin-top:0}.excalidraw .Modal__content .excalidraw__paragraph+.excalidraw__paragraph{margin-top:0rem}.ErrorSplash.excalidraw{min-height:100vh;padding:20px 0;overflow:auto;display:flex;align-items:center;justify-content:center;-webkit-user-select:text;user-select:text}.ErrorSplash.excalidraw .ErrorSplash-messageContainer{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background-color:#ffe3e3;border:3px solid #c92a2a}.ErrorSplash.excalidraw .ErrorSplash-paragraph{margin:15px 0;max-width:600px}.ErrorSplash.excalidraw .ErrorSplash-paragraph.align-center{text-align:center}.ErrorSplash.excalidraw .bigger,.ErrorSplash.excalidraw .bigger button{font-size:1.1em}.ErrorSplash.excalidraw .smaller,.ErrorSplash.excalidraw .smaller button{font-size:.9em}.ErrorSplash.excalidraw .ErrorSplash-details{display:flex;flex-direction:column;align-items:flex-start}.ErrorSplash.excalidraw .ErrorSplash-details textarea{width:100%;margin:10px 0;font-family:Cascadia;font-size:.8em}.excalidraw__embeddable-container .excalidraw__embeddable-container__inner{overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:var(--embeddable-radius)}.excalidraw__embeddable-container .excalidraw__embeddable__outer{width:100%;height:100%}.excalidraw__embeddable-container .excalidraw__embeddable__outer>*{border-radius:var(--embeddable-radius)}.excalidraw__embeddable-container .excalidraw__embeddable-hint{position:absolute;z-index:1;background:#00000080;padding:1rem 1.6rem;border-radius:12px;color:#fff;font-weight:700;letter-spacing:.6px;font-family:Assistant}@font-face{font-family:Virgil;src:url(/assets/Virgil-EP9PimLu.woff2);font-display:swap}@font-face{font-family:Cascadia;src:url(/assets/Cascadia-kYh-K9x1.woff2);font-display:swap}@font-face{font-family:Assistant;src:url(/assets/Assistant-Regular-1cWbs8W5.woff2);font-display:swap;font-weight:400}@font-face{font-family:Assistant;src:url(/assets/Assistant-Medium-63MQl4N5.woff2);font-display:swap;font-weight:500}@font-face{font-family:Assistant;src:url(/assets/Assistant-SemiBold-EgiOGxC_.woff2);font-display:swap;font-weight:600}@font-face{font-family:Assistant;src:url(/assets/Assistant-Bold-IJvrkktQ.woff2);font-display:swap;font-weight:700}.footer-center{pointer-events:none;display:flex;width:100%;justify-content:flex-start;margin-inline-end:.6rem}.footer-center>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .ExcalidrawLogo{--logo-icon--xs: 2rem;--logo-text--xs: 1.5rem;--logo-icon--small: 2.5rem;--logo-text--small: 1.75rem;--logo-icon--normal: 3rem;--logo-text--normal: 2.2rem;--logo-icon--large: 90px;--logo-text--large: 65px;display:flex;align-items:center}.excalidraw .ExcalidrawLogo svg{flex:0 0 auto}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-icon{width:auto;color:var(--color-logo-icon)}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-text{margin-left:.75rem;width:auto;color:var(--color-logo-text)}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-icon{height:var(--logo-icon--xs)}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-text{height:var(--logo-text--xs)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-icon{height:var(--logo-icon--small)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-text{height:var(--logo-text--small)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-icon{height:var(--logo-icon--normal)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-text{height:var(--logo-text--normal)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-icon{height:var(--logo-icon--large)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-text{height:var(--logo-text--large)}.excalidraw .virgil{font-family:Virgil}.excalidraw .welcome-screen-decor{pointer-events:none;color:var(--color-gray-40)}.excalidraw .welcome-screen-decor a{--color: var(--color-primary);color:var(--color);text-decoration:none;margin-bottom:-6px}.excalidraw.theme--dark .welcome-screen-decor{color:var(--color-gray-60)}@media (max-height: 599px){.excalidraw .welcome-screen-decor-hint{display:none!important}}@media (max-width: 1024px),(max-width: 800px){.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--help,.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--menu{display:none}}.excalidraw .welcome-screen-decor-hint--help{display:flex;position:absolute;right:0;bottom:100%}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help{left:0;right:auto}.excalidraw .welcome-screen-decor-hint--help svg{margin-top:.5rem;width:85px;height:71px;transform:scaleX(-1) rotate(80deg)}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help svg{transform:rotate(80deg)}.excalidraw .welcome-screen-decor-hint--toolbar{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:2.5rem;display:flex;align-items:baseline}.excalidraw .welcome-screen-decor-hint--toolbar .welcome-screen-decor-hint__label{width:120px;position:relative;top:-.5rem}.excalidraw .welcome-screen-decor-hint--toolbar svg{width:38px;height:78px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--toolbar svg{transform:scaleX(-1)}.excalidraw .welcome-screen-decor-hint--menu{position:absolute;width:320px;font-size:1rem;top:100%;margin-top:.25rem;margin-inline-start:.6rem;display:flex;align-items:flex-end;gap:.5rem}.excalidraw .welcome-screen-decor-hint--menu svg{width:41px;height:94px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--menu svg{transform:scaleX(-1)}@media (max-width: 860px){.excalidraw .welcome-screen-decor-hint--menu .welcome-screen-decor-hint__label{max-width:160px}}.excalidraw .welcome-screen-center{display:flex;flex-direction:column;gap:2rem;justify-content:center;align-items:center;position:absolute;pointer-events:none;left:1rem;top:1rem;right:1rem;bottom:1rem}.excalidraw .welcome-screen-center__logo{display:flex;align-items:center;column-gap:.75rem;font-size:2.25rem}.excalidraw .welcome-screen-center__heading{font-size:1.125rem;text-align:center}.excalidraw .welcome-screen-menu{display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:center}.excalidraw .welcome-screen-menu-item{box-sizing:border-box;pointer-events:var(--ui-pointerEvents);color:var(--color-gray-50);font-size:.875rem;width:100%;min-width:300px;max-width:400px;display:grid;align-items:center;justify-content:space-between;background:none;border:1px solid transparent;padding:.75rem;border-radius:var(--border-radius-md);grid-template-columns:calc(var(--default-icon-size) + .5rem) 1fr 3rem}.excalidraw .welcome-screen-menu-item__text{display:flex;align-items:center;margin-right:auto;text-align:left;column-gap:.5rem}.excalidraw .welcome-screen-menu-item__icon{width:var(--default-icon-size);height:var(--default-icon-size)}.excalidraw .welcome-screen-menu-item__shortcut{margin-left:auto;color:var(--color-gray-40);font-size:.75rem}.excalidraw .welcome-screen-menu-item:hover{text-decoration:none;background:var(--button-hover-bg)}.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut{color:var(--color-gray-50)}.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw .welcome-screen-menu-item:active{background:var(--button-hover-bg);border-color:var(--color-brand-active)}.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__shortcut{color:var(--color-gray-50)}.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw .welcome-screen-menu-item:active--promo{color:var(--color-promo)!important}.excalidraw .welcome-screen-menu-item:active--promo:hover .welcome-screen-menu-item__text{color:var(--color-promo)!important}.excalidraw.theme--dark .welcome-screen-menu-item,.excalidraw.theme--dark .welcome-screen-menu-item__shortcut{color:var(--color-gray-60)}.excalidraw.theme--dark .welcome-screen-menu-item:hover{background-color:var(--color-surface-low)}.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut{color:var(--color-gray-50)}.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__text,.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__text{color:var(--color-gray-10)}@media (max-height: 599px){.excalidraw .welcome-screen-center{margin-top:4rem}}@media (min-height: 600px) and (max-height: 900px){.excalidraw .welcome-screen-center{margin-top:8rem}}@media (max-height: 500px),(max-width: 320px){.excalidraw .welcome-screen-center{display:none}}.excalidraw .collab-button{--button-bg: var(--color-primary);--button-color: var(--color-surface-lowest);--button-border: var(--color-primary);--button-width: var(--lg-button-size);--button-height: var(--lg-button-size);--button-hover-bg: var(--color-primary-darker);--button-hover-border: var(--color-primary-darker);--button-active-bg: var(--color-primary-darker);box-shadow:0 0 0 1px var(--color-surface-lowest);flex-shrink:0}.excalidraw .collab-button.active.active{background-color:#0fb884;border-color:#0fb884}.excalidraw .collab-button.active.active svg{color:#fff}.excalidraw .collab-button.active.active:hover,.excalidraw .collab-button.active.active:active{background-color:#0fb884;border-color:#0fb884}.excalidraw .CollabButton.is-collaborating{background-color:var(--button-special-active-bg-color)}.excalidraw .CollabButton.is-collaborating .ToolIcon__icon svg,.excalidraw .CollabButton.is-collaborating .ToolIcon__label{color:var(--icon-green-fill-color)}.excalidraw .CollabButton-collaborators{min-width:1em;min-height:1em;line-height:1;position:absolute;bottom:-5px;padding:3px;border-radius:50%;background-color:#b2f2bb;color:#2b8a3e;font-size:.6rem;font-family:Cascadia}:root[dir=ltr] .excalidraw .CollabButton-collaborators{right:-5px}:root[dir=rtl] .excalidraw .CollabButton-collaborators{left:-5px}.excalidraw .Modal.Dialog.ttd-dialog{padding:1.25rem}.excalidraw .Modal.Dialog.ttd-dialog.Dialog--fullscreen{margin-top:0}.excalidraw .Modal.Dialog.ttd-dialog .Island{padding-inline:0!important;height:100%;display:flex;flex-direction:column;flex:1 1 auto;box-shadow:none}.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{height:auto;max-height:100%}@media screen and (min-width: 861px){.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{max-height:750px;height:100%}}.excalidraw .Modal.Dialog.ttd-dialog .Dialog__content{flex:1 1 auto}.excalidraw .ttd-dialog-desc{font-size:15px;font-style:italic;font-weight:500;margin-bottom:1.5rem}.excalidraw .ttd-dialog-tabs-root{width:100%;height:100%;display:flex;flex-direction:column}.excalidraw .ttd-dialog-tab-trigger{color:var(--color-on-surface);font-size:.875rem;margin:0;padding:0 1rem;background-color:transparent;border:0;height:2.875rem;font-weight:600;font-family:inherit;letter-spacing:.4px}.excalidraw .ttd-dialog-tab-trigger[data-state=active]{border-bottom:2px solid var(--color-primary)}.excalidraw .ttd-dialog-triggers{border-bottom:1px solid var(--color-surface-high);margin-bottom:1.5rem;padding-inline:2.5rem}.excalidraw .ttd-dialog-content{padding-inline:2.5rem;height:100%;display:flex;flex-direction:column}.excalidraw .ttd-dialog-content[hidden]{display:none}.excalidraw .ttd-dialog-input{width:auto;height:10rem;resize:none;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);white-space:pre-wrap;padding:.85rem;box-sizing:border-box;font-family:monospace}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-input{width:100%;height:100%}}.excalidraw .ttd-dialog-output-wrapper{display:flex;align-items:center;justify-content:center;padding:.85rem;box-sizing:border-box;flex-grow:1;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) left center;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);height:400px;width:auto}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-output-wrapper{width:100%;height:200px}}.excalidraw .ttd-dialog-output-wrapper canvas{max-width:100%;max-height:100%}.excalidraw .ttd-dialog-output-canvas-container{display:flex;width:100%;height:100%;align-items:center;justify-content:center;flex-grow:1}.excalidraw .ttd-dialog-output-error{color:red;font-weight:800;font-size:30px;word-break:break-word;overflow:auto;max-height:100%;height:100%;width:100%;text-align:center;position:absolute;z-index:10}.excalidraw .ttd-dialog-output-error p{font-weight:500;font-family:Cascadia;text-align:left;white-space:pre-wrap;font-size:.875rem;padding:0 10px}.excalidraw .ttd-dialog-panels{height:100%}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-panels{display:grid;grid-template-columns:1fr 1fr;gap:4rem}}.excalidraw .ttd-dialog-panel{display:flex;flex-direction:column;width:100%}.excalidraw .ttd-dialog-panel__header{display:flex;margin:0 4px 4px;align-items:center;gap:1rem}.excalidraw .ttd-dialog-panel__header label{font-size:14px;font-style:normal;font-weight:600}.excalidraw .ttd-dialog-panel:first-child .ttd-dialog-panel-button-container:not(.invisible){margin-bottom:4rem}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-panel .ttd-dialog-panel-button-container:not(.invisible){margin-bottom:.5rem!important}}.excalidraw .ttd-dialog-panel textarea{height:100%;resize:none;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);white-space:pre-wrap;padding:.85rem;box-sizing:border-box;width:100%;font-family:monospace}@media screen and (max-width: 861px){.excalidraw .ttd-dialog-panel textarea{width:auto;height:10rem}}.excalidraw .ttd-dialog-panel-button-container{margin-top:1rem;margin-bottom:.5rem}.excalidraw .ttd-dialog-panel-button-container.invisible .ttd-dialog-panel-button{display:none}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-panel-button-container.invisible .ttd-dialog-panel-button{display:block;visibility:hidden}}.excalidraw .ttd-dialog-panel-button{position:relative}.excalidraw .ttd-dialog-panel-button.excalidraw-button{font-family:inherit;font-weight:600;height:2.5rem;font-size:12px;color:#fff;background-color:var(--color-primary);width:100%}.excalidraw .ttd-dialog-panel-button.excalidraw-button:hover{background-color:var(--color-primary-darker)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:active{background-color:var(--color-primary-darkest)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled{opacity:.5;cursor:not-allowed}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled:hover{background-color:var(--color-primary)}@media screen and (min-width: 861px){.excalidraw .ttd-dialog-panel-button.excalidraw-button{width:auto;min-width:7.5rem}}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button.excalidraw-button{color:var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button div{display:contents}.excalidraw .ttd-dialog-panel-button div.invisible{visibility:hidden}.excalidraw .ttd-dialog-panel-button div.Spinner{display:flex!important;position:absolute;top:0;right:0;bottom:0;left:0;--spinner-color: white}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button div.Spinner{--spinner-color: var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button div span{padding-left:.5rem;display:flex}.excalidraw .ttd-dialog-submit-shortcut{margin-inline-start:.5rem;font-size:.625rem;opacity:.6;display:flex;gap:.125rem}.excalidraw .ttd-dialog-submit-shortcut__key{border:1px solid gray;padding:2px 3px;border-radius:4px}.excalidraw .Toast{animation:fade-in .5s;background-color:var(--button-gray-1);border-radius:4px;bottom:10px;box-sizing:border-box;cursor:default;left:50%;margin-left:-150px;padding:4px 0;position:absolute;text-align:center;width:300px;z-index:999999}.excalidraw .Toast .Toast__message{padding:0 1.6rem;color:var(--popup-text-color);white-space:pre-wrap}.excalidraw .Toast .close{position:absolute;top:0;right:0;padding:.4rem}.excalidraw .Toast .close .ToolIcon__icon{width:1.2rem;height:1.2rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.excalidraw .SVGLayer{pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0;z-index:2}.excalidraw .SVGLayer svg{image-rendering:auto;overflow:visible;position:absolute;width:100%;height:100%;top:0;left:0}.excalidraw .excalidraw-canvas-buttons{position:absolute;box-shadow:0 2px 4px #0000004d;z-index:var(--zIndex-canvasButtons);background:var(--island-bg-color);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:.375rem}.excalidraw .follow-mode{position:absolute;box-sizing:border-box;pointer-events:none;border:2px solid var(--color-primary-hover);z-index:9999;display:flex;align-items:flex-end;justify-content:center}.excalidraw .follow-mode__badge{background-color:var(--color-primary-hover);color:var(--color-primary-light);padding:.25rem .5rem;margin-bottom:.5rem;border-radius:.5rem;pointer-events:all;font-size:.75rem;display:flex;gap:.5rem;align-items:center}.excalidraw .follow-mode__badge__label{display:flex;white-space:pre-wrap;line-height:1}.excalidraw .follow-mode__badge__username{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.excalidraw .follow-mode__disconnect-btn{all:unset;cursor:pointer;border-radius:.25rem}.excalidraw .follow-mode__disconnect-btn:hover{background-color:var(--color-primary-darker)}.excalidraw .follow-mode__disconnect-btn:active{background-color:var(--color-primary-darkest)}.excalidraw .follow-mode__disconnect-btn svg{display:block;width:1rem;height:1rem}.excalidraw .Dialog{-webkit-user-select:text;user-select:text;cursor:auto}.excalidraw .Dialog__title{margin:0;text-align:left;font-size:1.25rem;border-bottom:1px solid var(--dialog-border-color);padding:0 0 .75rem;margin-bottom:1.5rem}.excalidraw .Dialog__close{color:var(--color-gray-40);margin:0;position:absolute;top:.75rem;right:.5rem;border:0;background-color:transparent;line-height:0;cursor:pointer}.excalidraw .Dialog__close:hover{color:var(--color-gray-60)}.excalidraw .Dialog__close:active{color:var(--color-gray-40)}.excalidraw .Dialog__close svg{width:1.5rem;height:1.5rem}.excalidraw .Dialog--fullscreen .Dialog__close{top:1.25rem;right:1.25rem}.excalidraw.excalidraw-modal-container{position:absolute;z-index:var(--zIndex-modal)}.excalidraw .Modal{position:absolute;top:0;left:0;right:0;bottom:0;align-items:center;justify-content:center;overflow:auto;padding:calc(var(--space-factor) * 10);display:flex;flex-direction:column}.excalidraw .Modal .Island{padding:2.5rem}.excalidraw .Modal__background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1;background-color:#12121233;animation:Modal__background__fade-in .125s linear forwards}.excalidraw .Modal__content{z-index:2;width:100%;max-width:var(--max-width);max-height:100%;opacity:0;transform:translateY(10px);animation:Modal__content_fade-in .1s ease-out .05s forwards;position:relative;overflow-y:auto;background:var(--island-bg-color);border:1px solid var(--dialog-border-color);box-shadow:var(--modal-shadow);border-radius:6px;box-sizing:border-box}.excalidraw .Modal__content:focus{outline:none}@keyframes Modal__background__fade-in{0%{opacity:0}to{opacity:1}}@keyframes Modal__content_fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.excalidraw .Modal__close{color:var(--icon-fill-color);margin:0;padding:.375rem;position:absolute;top:1rem;right:1rem;border:0;background-color:transparent;line-height:0;cursor:pointer}.excalidraw .Modal__close svg{width:1.5rem;height:1.5rem}.excalidraw .Dialog--fullscreen .Modal{padding:0}.excalidraw .Dialog--fullscreen .Modal__content{position:absolute;top:0;left:0;right:0;bottom:0;max-width:100%;border:0;border-radius:0}.excalidraw .collab-errors-button{width:26px;height:26px;margin-inline-end:1rem;color:var(--color-danger);flex-shrink:0}.excalidraw .collab-errors-button-shake{animation:strong-shake .15s 6}@keyframes strong-shake{0%{transform:rotate(0)}25%{transform:rotate(10deg)}50%{transform:rotate(0)}75%{transform:rotate(-10deg)}to{transform:rotate(0)}}.excalidraw{--color-primary-contrast-offset: #625ee0}.excalidraw.theme--dark{--color-primary-contrast-offset: #726dff}.excalidraw .top-right-ui{display:flex;justify-content:center;align-items:flex-start}.excalidraw .footer-center{justify-content:flex-end;margin-top:auto;margin-bottom:auto;margin-inline-start:auto}.excalidraw .encrypted-icon{border-radius:var(--space-factor);color:var(--color-primary);margin-top:auto;margin-bottom:auto;margin-inline-start:auto;margin-inline-end:.6em}.excalidraw .encrypted-icon svg{width:1.2rem;height:1.2rem}.excalidraw .dropdown-menu-container .dropdown-menu-item.active-collab{background-color:#ecfdf5;color:#064e3c}.excalidraw .dropdown-menu-container .dropdown-menu-item.ExcalidrawPlus{color:var(--color-promo)}.excalidraw.theme--dark .dropdown-menu-item.active-collab{background-color:#064e3c;color:#ecfdf5}.excalidraw .collab-offline-warning{pointer-events:none;position:absolute;top:6.5rem;left:50%;transform:translate(-50%);padding:.5rem 1rem;font-size:.875rem;text-align:center;line-height:1.5;border-radius:var(--border-radius-md);background-color:var(--color-warning);color:var(--color-text-warning);z-index:6;white-space:pre}.excalidraw-app.is-collaborating [data-testid=clear-canvas-button]{display:none}.plus-button{display:flex;justify-content:center;cursor:pointer;align-items:center;border:1px solid var(--color-primary);padding:.5rem .75rem;border-radius:var(--border-radius-lg);background-color:var(--island-bg-color);color:var(--color-primary)!important;text-decoration:none!important;font-size:.75rem;box-sizing:border-box;height:var(--lg-button-size)}.plus-button:hover{background-color:var(--color-primary);color:#fff!important}.plus-button:active{background-color:var(--color-primary-darker)}.theme--dark .plus-button:hover{color:#000!important}.my-creations-tab{height:100%;display:flex;flex-direction:column;gap:1rem}.my-creations-tab__list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.my-creations-tab__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1rem;color:var(--color-text-lighter);gap:1rem}.my-creations-tab__empty svg{width:4rem;height:4rem;opacity:.5}.my-creations-tab__empty p{margin:0;line-height:1.4}.my-creations-tab__item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:var(--color-surface-lower);border:1px solid var(--color-border);border-radius:var(--border-radius-md);cursor:pointer;transition:background-color .1s ease}.my-creations-tab__item:hover{background:var(--color-surface-low)}.my-creations-tab__item:active{background:var(--color-surface-lowest)}.my-creations-tab__item-name{flex:1;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:1rem}.my-creations-tab__item-date{font-size:.8rem;color:var(--color-text-lighter);margin-right:.5rem}.my-creations-tab__item-delete{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;background:none;color:var(--color-text-lighter);border-radius:var(--border-radius-sm);cursor:pointer;font-size:1.2rem;line-height:1;transition:all .1s ease}.my-creations-tab__item-delete:hover{background:var(--color-danger-lighter);color:var(--color-danger-darker)}.my-creations-tab__item-delete:active{background:var(--color-danger-light)}.excalidraw .ShareableLinkDialog{display:flex;flex-direction:column;gap:1.5rem;color:var(--text-primary-color)}.excalidraw .ShareableLinkDialog ::selection{background:var(--color-primary-light-darker)}.excalidraw .ShareableLinkDialog h3{font-family:Assistant;font-weight:700;font-size:1.313rem;line-height:130%;margin:0}.excalidraw .ShareableLinkDialog__popover{box-sizing:border-box;z-index:100;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;padding:.125rem .5rem;gap:.125rem;height:1.125rem;border:none;border-radius:.6875rem;font-family:Assistant;font-style:normal;font-weight:600;font-size:.75rem;line-height:110%;background:var(--color-success-lighter);color:var(--color-success);transform-origin:var(--radix-popover-content-transform-origin);animation:ShareableLinkDialog__popover__scaleIn .15s ease-out}@keyframes ShareableLinkDialog__popover__scaleIn{0%{opacity:0}to{opacity:1}}.excalidraw .ShareableLinkDialog__popover>svg{width:.875rem;height:.875rem}.excalidraw .ShareableLinkDialog__linkRow{display:flex;flex-direction:row;align-items:flex-end;gap:.75rem}.excalidraw .ShareableLinkDialog__description{border-top:1px solid var(--color-gray-20);padding:.5rem .5rem 0;font-weight:400;font-size:.75rem;line-height:150%}.excalidraw .ShareableLinkDialog__description p{margin:0}.excalidraw .ShareableLinkDialog__description p+p{margin-top:1em}:export{themeFilter:invert(93%) hue-rotate(180deg);rightSidebarWidth:302px}.excalidraw .ShareDialog{display:flex;flex-direction:column;gap:1.5rem}.excalidraw--mobile.excalidraw .ShareDialog{height:calc(100vh - 5rem)}.excalidraw .ShareDialog__separator{border-top:1px solid var(--dialog-border-color);text-align:center;display:flex;justify-content:center;align-items:center;margin-top:1em}.excalidraw .ShareDialog__separator span{background:var(--island-bg-color);padding:0px .75rem;transform:translateY(-1ch);display:inline-flex;line-height:1}.excalidraw .ShareDialog__popover{box-sizing:border-box;z-index:100;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;padding:.125rem .5rem;gap:.125rem;height:1.125rem;border:none;border-radius:.6875rem;font-family:Assistant;font-style:normal;font-weight:600;font-size:.75rem;line-height:110%;background:var(--color-success-lighter);color:var(--color-success);transform-origin:var(--radix-popover-content-transform-origin);animation:ShareDialog__popover__scaleIn .15s ease-out}@keyframes ShareDialog__popover__scaleIn{0%{opacity:0}to{opacity:1}}.excalidraw .ShareDialog__popover>svg{width:.875rem;height:.875rem}.excalidraw .ShareDialog__picker{font-family:Assistant}.excalidraw .ShareDialog__picker__illustration{display:flex;width:100%;align-items:center;justify-content:center}.excalidraw .ShareDialog__picker__illustration svg{filter:var(--theme-filter)}.excalidraw .ShareDialog__picker__header{display:flex;width:100%;align-items:center;justify-content:center;font-weight:700;font-size:1.3125rem;line-height:130%;color:var(--color-primary)}.excalidraw .ShareDialog__picker__description{font-weight:400;font-size:.875rem;line-height:150%;text-align:center;color:var(--text-primary-color)}.excalidraw .ShareDialog__picker__description strong{display:block;font-weight:700}.excalidraw .ShareDialog__picker__button{display:flex;align-items:center;justify-content:center}.excalidraw .ShareDialog__active__share{display:none!important}.excalidraw--mobile.excalidraw .ShareDialog__active__share{display:flex!important}.excalidraw .ShareDialog__active__header{margin:0}.excalidraw .ShareDialog__active__linkRow{display:flex;flex-direction:row;align-items:flex-end;gap:.75rem}.excalidraw .ShareDialog__active__description{border-top:1px solid var(--color-gray-20);padding:.5rem .5rem 0;font-weight:400;font-size:.75rem;line-height:150%}.excalidraw .ShareDialog__active__description p{margin:0}.excalidraw .ShareDialog__active__description p+p{margin-top:1em}.excalidraw .ShareDialog__active__actions{display:flex;justify-content:center} diff --git a/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js b/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js deleted file mode 100644 index 5ea4624..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js +++ /dev/null @@ -1,2 +0,0 @@ -const d=Object.create(null);d.open="0";d.close="1";d.ping="2";d.pong="3";d.message="4";d.upgrade="5";d.noop="6";const O=Object.create(null);Object.keys(d).forEach(s=>{O[d[s]]=s});const L={type:"error",data:"parser error"},te=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",se=typeof ArrayBuffer=="function",ne=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s&&s.buffer instanceof ArrayBuffer,V=({type:s,data:e},t,n)=>te&&e instanceof Blob?t?n(e):$(e,n):se&&(e instanceof ArrayBuffer||ne(e))?t?n(e):$(new Blob([e]),n):n(d[s]+(e||"")),$=(s,e)=>{const t=new FileReader;return t.onload=function(){const n=t.result.split(",")[1];e("b"+(n||""))},t.readAsDataURL(s)};function Y(s){return s instanceof Uint8Array?s:s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}let S;function ye(s,e){if(te&&s.data instanceof Blob)return s.data.arrayBuffer().then(Y).then(e);if(se&&(s.data instanceof ArrayBuffer||ne(s.data)))return e(Y(s.data));V(s,!1,t=>{S||(S=new TextEncoder),e(S.encode(t))})}const z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let s=0;s{let e=s.length*.75,t=s.length,n,i=0,r,o,h,a;s[s.length-1]==="="&&(e--,s[s.length-2]==="="&&e--);const g=new ArrayBuffer(e),y=new Uint8Array(g);for(n=0;n>4,y[i++]=(o&15)<<4|h>>2,y[i++]=(h&3)<<6|a&63;return g},me=typeof ArrayBuffer=="function",F=(s,e)=>{if(typeof s!="string")return{type:"message",data:ie(s,e)};const t=s.charAt(0);return t==="b"?{type:"message",data:be(s.substring(1),e)}:O[t]?s.length>1?{type:O[t],data:s.substring(1)}:{type:O[t]}:L},be=(s,e)=>{if(me){const t=ge(s);return ie(t,e)}else return{base64:!0,data:s}},ie=(s,e)=>{switch(e){case"blob":return s instanceof Blob?s:new Blob([s]);case"arraybuffer":default:return s instanceof ArrayBuffer?s:s.buffer}},re="",we=(s,e)=>{const t=s.length,n=new Array(t);let i=0;s.forEach((r,o)=>{V(r,!1,h=>{n[o]=h,++i===t&&e(n.join(re))})})},ve=(s,e)=>{const t=s.split(re),n=[];for(let i=0;i{const n=t.length;let i;if(n<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,n);else if(n<65536){i=new Uint8Array(3);const r=new DataView(i.buffer);r.setUint8(0,126),r.setUint16(1,n)}else{i=new Uint8Array(9);const r=new DataView(i.buffer);r.setUint8(0,127),r.setBigUint64(1,BigInt(n))}s.data&&typeof s.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let x;function k(s){return s.reduce((e,t)=>e+t.length,0)}function A(s,e){if(s[0].length===e)return s.shift();const t=new Uint8Array(e);let n=0;for(let i=0;iMath.pow(2,21)-1){h.enqueue(L);break}i=y*Math.pow(2,32)+g.getUint32(4),n=3}else{if(k(t)s){h.enqueue(L);break}}}})}const oe=4;function u(s){if(s)return ke(s)}function ke(s){for(var e in u.prototype)s[e]=u.prototype[e];return s}u.prototype.on=u.prototype.addEventListener=function(s,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(e),this};u.prototype.once=function(s,e){function t(){this.off(s,t),e.apply(this,arguments)}return t.fn=e,this.on(s,t),this};u.prototype.off=u.prototype.removeListener=u.prototype.removeAllListeners=u.prototype.removeEventListener=function(s,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+s];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var n,i=0;i(s.hasOwnProperty(n)&&(t[n]=s[n]),t),{})}const Ae=f.setTimeout,Te=f.clearTimeout;function B(s,e){e.useNativeTimers?(s.setTimeoutFn=Ae.bind(f),s.clearTimeoutFn=Te.bind(f)):(s.setTimeoutFn=f.setTimeout.bind(f),s.clearTimeoutFn=f.clearTimeout.bind(f))}const Re=1.33;function Oe(s){return typeof s=="string"?Ce(s):Math.ceil((s.byteLength||s.size)*Re)}function Ce(s){let e=0,t=0;for(let n=0,i=s.length;n=57344?t+=3:(n++,t+=4);return t}function Be(s){let e="";for(let t in s)s.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(s[t]));return e}function Se(s){let e={},t=s.split("&");for(let n=0,i=t.length;n0);return e}function he(){const s=Q(+new Date);return s!==X?(J=0,X=s):s+"."+Q(J++)}for(;T{this.readyState="paused",e()};if(this.polling||!this.writable){let n=0;this.polling&&(n++,this.once("pollComplete",function(){--n||t()})),this.writable||(n++,this.once("drain",function(){--n||t()}))}else t()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=n=>{if(this.readyState==="opening"&&n.type==="open"&&this.onOpen(),n.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(n)};ve(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,we(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=he()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}request(e={}){return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new p(this.uri(),e)}doWrite(e,t){const n=this.request({method:"POST",data:e});n.on("success",t),n.on("error",(i,r)=>{this.onError("xhr post error",i,r)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,n)=>{this.onError("xhr poll error",t,n)}),this.pollXhr=e}}class p extends u{constructor(e,t){super(),B(this,t),this.opts=t,this.method=t.method||"GET",this.uri=e,this.data=t.data!==void 0?t.data:null,this.create()}create(){var e;const t=ce(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this.opts.xd;const n=this.xhr=new fe(t);try{n.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let i in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(i)&&n.setRequestHeader(i,this.opts.extraHeaders[i])}}catch{}if(this.method==="POST")try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{n.setRequestHeader("Accept","*/*")}catch{}(e=this.opts.cookieJar)===null||e===void 0||e.addCookies(n),"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout),n.onreadystatechange=()=>{var i;n.readyState===3&&((i=this.opts.cookieJar)===null||i===void 0||i.parseCookies(n)),n.readyState===4&&(n.status===200||n.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof n.status=="number"?n.status:0)},0))},n.send(this.data)}catch(i){this.setTimeoutFn(()=>{this.onError(i)},0);return}typeof document<"u"&&(this.index=p.requestsCount++,p.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=Pe,e)try{this.xhr.abort()}catch{}typeof document<"u"&&delete p.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}p.requestsCount=0;p.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",G);else if(typeof addEventListener=="function"){const s="onpagehide"in f?"pagehide":"unload";addEventListener(s,G,!1)}}function G(){for(let s in p.requests)p.requests.hasOwnProperty(s)&&p.requests[s].abort()}const H=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),R=f.WebSocket||f.MozWebSocket,j=!0,Ue="arraybuffer",Z=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class Ie extends M{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,n=Z?{}:ce(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=j&&!Z?t?new R(e,t):new R(e):new R(e,t,n)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t{const o={};try{j&&this.ws.send(r)}catch{}i&&H(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=he()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}check(){return!!R}}class Ve extends M{get name(){return"webtransport"}doOpen(){typeof WebTransport=="function"&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(e=>{const t=Ee(Number.MAX_SAFE_INTEGER,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),i=_e();i.readable.pipeTo(e.writable),this.writer=i.writable.getWriter();const r=()=>{n.read().then(({done:h,value:a})=>{h||(this.onPacket(a),r())}).catch(h=>{})};r();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this.writer.write(o).then(()=>this.onOpen())})}))}write(e){this.writable=!1;for(let t=0;t{i&&H(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this.transport)===null||e===void 0||e.close()}}const Fe={websocket:Ie,webtransport:Ve,polling:De},Me=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,He=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function q(s){if(s.length>2e3)throw"URI too long";const e=s,t=s.indexOf("["),n=s.indexOf("]");t!=-1&&n!=-1&&(s=s.substring(0,t)+s.substring(t,n).replace(/:/g,";")+s.substring(n,s.length));let i=Me.exec(s||""),r={},o=14;for(;o--;)r[He[o]]=i[o]||"";return t!=-1&&n!=-1&&(r.source=e,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=Ke(r,r.path),r.queryKey=We(r,r.query),r}function Ke(s,e){const t=/\/{2,9}/g,n=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&n.splice(0,1),e.slice(-1)=="/"&&n.splice(n.length-1,1),n}function We(s,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(n,i,r){i&&(t[i]=r)}),t}let le=class b extends u{constructor(e,t={}){super(),this.binaryType=Ue,this.writeBuffer=[],e&&typeof e=="object"&&(t=e,e=null),e?(e=q(e),t.hostname=e.host,t.secure=e.protocol==="https"||e.protocol==="wss",t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=q(t.host).host),B(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Se(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=oe,t.transport=e,this.id&&(t.sid=this.id);const n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new Fe[e](n)}open(){let e;if(this.opts.rememberUpgrade&&b.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)e="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else e=this.transports[0];this.readyState="opening";try{e=this.createTransport(e)}catch{this.transports.shift(),this.open();return}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",t=>this.onClose("transport close",t))}probe(e){let t=this.createTransport(e),n=!1;b.priorWebsocketSuccess=!1;const i=()=>{n||(t.send([{type:"ping",data:"probe"}]),t.once("packet",m=>{if(!n)if(m.type==="pong"&&m.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;b.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{n||this.readyState!=="closed"&&(y(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const v=new Error("probe error");v.transport=t.name,this.emitReserved("upgradeError",v)}}))};function r(){n||(n=!0,y(),t.close(),t=null)}const o=m=>{const v=new Error("probe error: "+m);v.transport=t.name,r(),this.emitReserved("upgradeError",v)};function h(){o("transport closed")}function a(){o("socket closed")}function g(m){t&&m.name!==t.name&&r()}const y=()=>{t.removeListener("open",i),t.removeListener("error",o),t.removeListener("close",h),this.off("close",a),this.off("upgrading",g)};t.once("open",i),t.once("error",o),t.once("close",h),this.once("close",a),this.once("upgrading",g),this.upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onOpen(){if(this.readyState="open",b.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let n=0;n0&&t>this.maxPayload)return this.writeBuffer.slice(0,n);t+=2}return this.writeBuffer}write(e,t,n){return this.sendPacket("message",e,t,n),this}send(e,t,n){return this.sendPacket("message",e,t,n),this}sendPacket(e,t,n,i){if(typeof t=="function"&&(i=t,t=void 0),typeof n=="function"&&(i=n,n=null),this.readyState==="closing"||this.readyState==="closed")return;n=n||{},n.compress=n.compress!==!1;const r={type:e,data:t,options:n};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},n=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}onError(e){b.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let n=0;const i=e.length;for(;ntypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,pe=Object.prototype.toString,Je=typeof Blob=="function"||typeof Blob<"u"&&pe.call(Blob)==="[object BlobConstructor]",Xe=typeof File=="function"||typeof File<"u"&&pe.call(File)==="[object FileConstructor]";function K(s){return Ye&&(s instanceof ArrayBuffer||ze(s))||Je&&s instanceof Blob||Xe&&s instanceof File}function C(s,e){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let t=0,n=s.length;t=0&&s.num{delete this.acks[e];for(let o=0;o{this.io.clearTimeoutFn(r),t.apply(this,[null,...o])}}emitWithAck(e,...t){const n=this.flags.timeout!==void 0||this._opts.ackTimeout!==void 0;return new Promise((i,r)=>{t.push((o,h)=>n?o?r(o):i(h):i(o)),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...r)=>n!==this._queue[0]?void 0:(i!==null?n.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...r)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:c.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case c.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case c.EVENT:case c.BINARY_EVENT:this.onevent(e);break;case c.ACK:case c.BINARY_ACK:this.onack(e);break;case c.DISCONNECT:this.ondisconnect();break;case c.CONNECT_ERROR:this.destroy();const n=new Error(e.data.message);n.data=e.data.data,this.emitReserved("connect_error",n);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let n=!1;return function(...i){n||(n=!0,t.packet({type:c.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(t.apply(this,e.data),delete this.acks[e.id])}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:c.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let n=0;n0&&s.jitter<=1?s.jitter:0,this.attempts=0}w.prototype.duration=function(){var s=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*s);s=Math.floor(e*10)&1?s+t:s-t}return Math.min(s,this.max)|0};w.prototype.reset=function(){this.attempts=0};w.prototype.setMin=function(s){this.ms=s};w.prototype.setMax=function(s){this.max=s};w.prototype.setJitter=function(s){this.jitter=s};class I extends u{constructor(e,t){var n;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,B(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((n=t.randomizationFactor)!==null&&n!==void 0?n:.5),this.backoff=new w({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||st;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new le(this.uri,this.opts);const t=this.engine,n=this;this._readyState="opening",this.skipReconnect=!1;const i=l(t,"open",function(){n.onopen(),e&&e()}),r=h=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",h),e?e(h):this.maybeReconnectOnOpen()},o=l(t,"error",r);if(this._timeout!==!1){const h=this._timeout,a=this.setTimeoutFn(()=>{i(),r(new Error("timeout")),t.close()},h);this.opts.autoUnref&&a.unref(),this.subs.push(()=>{this.clearTimeoutFn(a)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(l(e,"ping",this.onping.bind(this)),l(e,"data",this.ondata.bind(this)),l(e,"error",this.onerror.bind(this)),l(e,"close",this.onclose.bind(this)),l(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){H(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new de(this,e,t),this.nsps[e]=n),n}_destroy(e){const t=Object.keys(this.nsps);for(const n of t)if(this.nsps[n].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let n=0;ne()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const n=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const _={};function N(s,e){typeof s=="object"&&(e=s,s=void 0),e=e||{};const t=$e(s,e.path||"/socket.io"),n=t.source,i=t.id,r=t.path,o=_[i]&&r in _[i].nsps,h=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let a;return h?a=new I(n,e):(_[i]||(_[i]=new I(n,e)),a=_[i]),t.query&&!e.query&&(e.query=t.queryKey),a.socket(t.path,e)}Object.assign(N,{Manager:I,Socket:de,io:N,connect:N});export{I as Manager,de as Socket,N as connect,N as default,N as io,Ze as protocol}; -//# sourceMappingURL=index-5Jz4PfUi.js.map diff --git a/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js.map b/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js.map deleted file mode 100644 index c9ae63a..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-5Jz4PfUi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-5Jz4PfUi.js","sources":["../../../node_modules/engine.io-parser/build/esm/commons.js","../../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../../node_modules/engine.io-parser/build/esm/index.js","../../../node_modules/@socket.io/component-emitter/index.mjs","../../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../../node_modules/engine.io-client/build/esm/util.js","../../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../../node_modules/engine.io-client/build/esm/transport.js","../../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../../node_modules/engine.io-client/build/esm/transports/polling.js","../../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../../node_modules/engine.io-client/build/esm/transports/webtransport.js","../../../node_modules/engine.io-client/build/esm/transports/index.js","../../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../../node_modules/engine.io-client/build/esm/socket.js","../../../node_modules/socket.io-client/build/esm/url.js","../../../node_modules/socket.io-parser/build/esm/is-binary.js","../../../node_modules/socket.io-parser/build/esm/binary.js","../../../node_modules/socket.io-parser/build/esm/index.js","../../../node_modules/socket.io-client/build/esm/on.js","../../../node_modules/socket.io-client/build/esm/socket.js","../../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../../node_modules/socket.io-client/build/esm/manager.js","../../../node_modules/socket.io-client/build/esm/index.js"],"sourcesContent":["const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data\n .arrayBuffer()\n .then(toArray)\n .then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, encoded => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, encodedPacket => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n }\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* READ_PAYLOAD */;\n }\n else if (state === 2 /* READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n }\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\nexport function createCookieJar() { }\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { createCookieJar, XHR as XMLHttpRequest, } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n if (this.opts.withCredentials) {\n this.cookieJar = createCookieJar();\n }\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var _a;\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, true);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(xhr);\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"./websocket-constructor.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n // @ts-ignore\n if (typeof WebTransport !== \"function\") {\n return;\n }\n // @ts-ignore\n this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n this.transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this.writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this.writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this.writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: Polling,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 2000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { defaultBinaryType } from \"./transports/websocket-constructor.js\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\",\n ];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this.upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n this.resetPingTimeout();\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n"],"names":["PACKET_TYPES","PACKET_TYPES_REVERSE","key","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","isView","obj","encodePacket","type","data","supportsBinary","callback","encodeBlobAsBase64","fileReader","content","toArray","TEXT_ENCODER","encodePacketToBinary","packet","encoded","chars","lookup","i","decode","base64","bufferLength","len","p","encoded1","encoded2","encoded3","encoded4","arraybuffer","bytes","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","decoded","SEPARATOR","encodePayload","packets","length","encodedPackets","count","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","controller","payloadLength","header","view","TEXT_DECODER","totalLength","chunks","acc","chunk","concatChunks","size","buffer","j","createPacketDecoderStream","maxPayload","state","expectedLength","isBinary","headerArray","n","protocol","Emitter","mixin","event","fn","on","callbacks","cb","args","globalThisShim","pick","attr","k","NATIVE_SET_TIMEOUT","globalThis","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","opts","BASE64_OVERHEAD","byteLength","utf8Length","str","c","l","encode","qs","qry","pairs","pair","TransportError","reason","description","context","Transport","details","onPause","schema","query","hostname","encodedQuery","alphabet","map","seed","prev","num","yeast","now","value","hasCORS","XHR","xdomain","empty","hasXHR2","XMLHttpRequest","Polling","isSSL","port","forceBase64","pause","total","close","Request","req","xhrStatus","uri","_a","xhr","e","err","fromError","unloadHandler","terminationEvent","nextTick","setTimeoutFn","WebSocket","usingBrowserWebSocket","defaultBinaryType","isReactNative","WS","protocols","closeEvent","ev","lastPacket","WT","stream","decoderStream","reader","encoderStream","read","done","transports","re","parts","parse","src","b","m","pathNames","queryKey","path","regx","names","$0","$1","$2","Socket","name","transport","failed","onTransportOpen","msg","cleanup","freezeTransport","onerror","error","onTransportClose","onclose","onupgrade","to","payloadSize","options","cleanupAndClose","waitForUpgrade","upgrades","filteredUpgrades","url","loc","host","toString","withNativeFile","hasBinary","toJSON","deconstructPacket","buffers","packetData","pack","_deconstructPacket","placeholder","newData","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","replacer","deconstruction","isObject","Decoder","reviver","isBinaryEvent","BinaryReconstructor","start","buf","next","payload","binData","io","nsp","id","ack","isTransportWritable","timeout","timer","withErr","resolve","reject","arg1","arg2","responseArgs","force","listeners","listener","self","sent","pid","subDestroy","compress","Backoff","ms","rand","deviation","min","max","jitter","Manager","_parser","parser","v","Engine","socket","openSubDestroy","onError","errorSub","nsps","delay","attempt","cache","parsed","source","sameNamespace","newConnection"],"mappings":"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","x_google_ignoreList":[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,26,27,28]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js b/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js deleted file mode 100644 index c9ab20d..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js +++ /dev/null @@ -1,2 +0,0 @@ -import{b as k,a as v,m as D,G,l as j}from"./layout-ewywu0M6.js";import{i as A,u as M,s as _,a as H,b as V,p as B,c as q,d as U,e as W,f as Y,g as O,h as X}from"./edges-49ac43a2-VNwnN65b.js";import{l as i,q as N,c as E,h as L}from"./index-jpNTxDe4.js";import{c as z}from"./createText-3df630b5-oLWc-GwH.js";var K=4;function Q(e){return k(e,K)}function y(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Z(e),edges:I(e)};return v(e.graph())||(t.value=Q(e.graph())),t}function Z(e){return D(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),s={v:t};return v(n)||(s.value=n),v(r)||(s.parent=r),s})}function I(e){return D(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return v(t.name)||(r.name=t.name),v(n)||(r.value=n),r})}let f={},x={},T={};const tt=()=>{x={},T={},f={}},S=(e,t)=>(i.trace("In isDecendant",t," ",e," = ",x[t].includes(e)),!!x[t].includes(e)),et=(e,t)=>(i.info("Decendants of ",t," is ",x[t]),i.info("Edge is ",e),e.v===t||e.w===t?!1:x[t]?x[t].includes(e.v)||S(e.v,t)||S(e.w,t)||x[t].includes(e.w):(i.debug("Tilt, ",t,",not in decendants"),!1)),J=(e,t,n,r)=>{i.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const s=t.children(e)||[];e!==r&&s.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(a=>{if(t.children(a).length>0)J(a,t,n,r);else{const h=t.node(a);i.info("cp ",a," to ",r," with parent ",e),n.setNode(a,h),r!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",r,"data",t.node(e),r),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const l=t.edges(a);i.debug("Copying Edges",l),l.forEach(d=>{i.info("Edge",d);const w=t.edge(d.v,d.w,d.name);i.info("Edge data",w,r);try{et(d,r)?(i.info("Copying as ",d.v,d.w,w,d.name),n.setEdge(d.v,d.w,w,d.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",d.v,"-->",d.w," rootId: ",r," clusterId:",e)}catch(g){i.error(g)}})}i.debug("Removing node",a),t.removeNode(a)})},p=(e,t)=>{const n=t.children(e);let r=[...n];for(const s of n)T[s]=e,r=[...r,...p(s,t)];return r},m=(e,t)=>{i.trace("Searching",e);const n=t.children(e);if(i.trace("Searching children of id ",e,n),n.length<1)return i.trace("This is a valid node",e),e;for(const r of n){const s=m(r,t);if(s)return i.trace("Found replacement for",e," => ",s),s}},b=e=>!f[e]||!f[e].externalConnections?e:f[e]?f[e].id:e,nt=(e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",m(n,e)),x[n]=p(n,e),f[n]={id:m(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),s=e.edges();r.length>0?(i.debug("Cluster identified",n,x),s.forEach(a=>{if(a.v!==n&&a.w!==n){const h=S(a.v,n),l=S(a.w,n);h^l&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Decendants of XXX ",n,": ",x[n]),f[n].externalConnections=!0)}})):i.debug("Not a cluster ",n,x)}),e.edges().forEach(function(n){const r=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f[n.v]," --- ",f[n.w]),f[n.v]&&f[n.w]&&f[n.v]===f[n.w]){i.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),i.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=b(n.v),a=b(n.w),e.removeEdge(n.v,n.w,n.name);const h=n.w+"---"+n.v;e.setNode(h,{domId:h,id:h,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const l=JSON.parse(JSON.stringify(r)),d=JSON.parse(JSON.stringify(r));l.label="",l.arrowTypeEnd="none",d.label="",l.fromCluster=n.v,d.toCluster=n.v,e.setEdge(s,h,l,n.name+"-cyclic-special"),e.setEdge(h,a,d,n.name+"-cyclic-special")}else(f[n.v]||f[n.w])&&(i.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=b(n.v),a=b(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v&&(r.fromCluster=n.v),a!==n.w&&(r.toCluster=n.w),i.warn("Fix Replacing with XXX",s,a,n.name),e.setEdge(s,a,r,n.name))}),i.warn("Adjusted Graph",y(e)),R(e,0),i.trace(f)},R=(e,t)=>{if(i.warn("extractor - ",t,y(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),r=!1;for(const s of n){const a=e.children(s);r=r||a.length>0}if(!r){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const s of n)if(i.debug("Extracting node",s,f,f[s]&&!f[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!f[s])i.debug("Not a cluster",s,t);else if(!f[s].externalConnections&&e.children(s)&&e.children(s).length>0){i.warn("Cluster without external connections, without a parent and with children",s,t);let h=e.graph().rankdir==="TB"?"LR":"TB";f[s]&&f[s].clusterData&&f[s].clusterData.dir&&(h=f[s].clusterData.dir,i.warn("Fixing dir",f[s].clusterData.dir,h));const l=new G({multigraph:!0,compound:!0}).setGraph({rankdir:h,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",y(e)),J(s,e,l,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:f[s].clusterData,labelText:f[s].labelText,graph:l}),i.warn("New graph after copy node: (",s,")",y(l)),i.debug("Old graph after copy",y(e))}else i.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!f[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const s of n){const a=e.node(s);i.warn(" Now next level",s,a),a.clusterNode&&R(a.graph,t+1)}},P=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const s=e.children(r),a=P(e,s);n=[...n,...a]}),n},it=e=>P(e,e.children()),st=(e,t)=>{i.info("Creating subgraph rect for ",t.id,t);const n=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=n.insert("rect",":first-child"),s=N(E().flowchart.htmlLabels),a=n.insert("g").attr("class","cluster-label"),h=t.labelType==="markdown"?z(a,t.labelText,{style:t.labelStyle,useHtmlLabels:s}):a.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0));let l=h.getBBox();if(N(E().flowchart.htmlLabels)){const o=h.children[0],u=L(h);l=o.getBoundingClientRect(),u.attr("width",l.width),u.attr("height",l.height)}const d=0*t.padding,w=d/2,g=t.width<=l.width+d?l.width+d:t.width;t.width<=l.width+d?t.diff=(l.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,i.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-g/2).attr("y",t.y-t.height/2-w).attr("width",g).attr("height",t.height+d),s?a.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2)+")"):a.attr("transform","translate("+t.x+", "+(t.y-t.height/2)+")");const c=r.node().getBBox();return t.width=c.width,t.height=c.height,t.intersect=function(o){return X(t,o)},n},rt=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,a=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");const h=r.node().getBBox();return t.width=h.width,t.height=h.height,t.intersect=function(l){return X(t,l)},n},at=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=n.insert("g").attr("class","cluster-label"),a=n.append("rect"),h=s.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0));let l=h.getBBox();if(N(E().flowchart.htmlLabels)){const o=h.children[0],u=L(h);l=o.getBoundingClientRect(),u.attr("width",l.width),u.attr("height",l.height)}l=h.getBBox();const d=0*t.padding,w=d/2,g=t.width<=l.width+t.padding?l.width+t.padding:t.width;t.width<=l.width+t.padding?t.diff=(l.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-g/2-w).attr("y",t.y-t.height/2-w).attr("width",g+d).attr("height",t.height+d),a.attr("class","inner").attr("x",t.x-g/2-w).attr("y",t.y-t.height/2-w+l.height-1).attr("width",g+d).attr("height",t.height+d-l.height-3),s.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2-t.padding/3+(N(E().flowchart.htmlLabels)?5:3))+")");const c=r.node().getBBox();return t.height=c.height,t.intersect=function(o){return X(t,o)},n},ct=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,a=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);const h=r.node().getBBox();return t.width=h.width,t.height=h.height,t.diff=-t.padding/2,t.intersect=function(l){return X(t,l)},n},ot={rect:st,roundedWithTitle:at,noteGroup:rt,divider:ct};let F={};const lt=(e,t)=>{i.trace("Inserting cluster");const n=t.shape||"rect";F[t.id]=ot[n](e,t)},ft=()=>{F={}},$=async(e,t,n,r)=>{i.info("Graph in recursive render: XXX",y(t),r);const s=t.graph().rankdir;i.trace("Dir in recursive render - dir:",s);const a=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.trace("Recursive edges",t.edge(t.edges()[0]));const h=a.insert("g").attr("class","clusters"),l=a.insert("g").attr("class","edgePaths"),d=a.insert("g").attr("class","edgeLabels"),w=a.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(r!==void 0){const u=JSON.parse(JSON.stringify(r.clusterData));i.info("Setting data for cluster XXX (",c,") ",u,r),t.setNode(r.id,u),t.parent(c)||(i.trace("Setting parent",c,r.id),t.setParent(c,r.id,u))}if(i.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){i.info("Cluster identified",c,o.width,t.node(c));const u=await $(w,o.graph,n,t.node(c)),C=u.elem;M(o,C),o.diff=u.diff||0,i.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),_(C,o),i.warn("Recursive render complete ",C,o)}else t.children(c).length>0?(i.info("Cluster - the non recursive path XXX",c,o.id,o,t),i.info(m(o.id,t)),f[o.id]={id:m(o.id,t),node:o}):(i.info("Node - the non recursive path",c,o.id,o),await H(w,t.node(c),s))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);i.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),i.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),i.info("Fix",f,"ids:",c.v,c.w,"Translateing: ",f[c.v],f[c.w]),V(d,o)}),t.edges().forEach(function(c){i.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),i.info("#############################################"),i.info("### Layout ###"),i.info("#############################################"),i.info(t),j(t),i.info("Graph after layout:",y(t));let g=0;return it(t).forEach(function(c){const o=t.node(c);i.info("Position "+c+": "+JSON.stringify(t.node(c))),i.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?B(o):t.children(c).length>0?(lt(h,o),f[o.id].node=o):B(o)}),t.edges().forEach(function(c){const o=t.edge(c);i.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o);const u=q(l,c,o,f,n,t);U(o,u)}),t.nodes().forEach(function(c){const o=t.node(c);i.info(c,o.type,o.diff),o.type==="group"&&(g=o.diff)}),{elem:a,diff:g}},gt=async(e,t,n,r,s)=>{A(e,n,r,s),W(),Y(),ft(),tt(),i.warn("Graph at first:",y(t)),nt(t),i.warn("Graph after:",y(t)),await $(e,t,r)};export{gt as r}; -//# sourceMappingURL=index-a92ac404-gZDUZJdp.js.map diff --git a/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js.map b/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js.map deleted file mode 100644 index 49dbb16..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-a92ac404-gZDUZJdp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-a92ac404-gZDUZJdp.js","sources":["../../../node_modules/lodash-es/clone.js","../../../node_modules/dagre-d3-es/src/graphlib/json.js","../../../node_modules/mermaid/dist/index-a92ac404.js"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\nexport { write, read };\n\nfunction write(g) {\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport { c as createLabel, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, g as insertEdge, h as positionEdgeLabel } from \"./edges-49ac43a2.js\";\nimport { l as log, n as evaluate, c as getConfig } from \"./mermaid-b0ad2de1.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as createText } from \"./createText-3df630b5.js\";\nimport { select } from \"d3\";\nlet clusterDb = {};\nlet descendants = {};\nlet parents = {};\nconst clear$1 = () => {\n descendants = {};\n parents = {};\n clusterDb = {};\n};\nconst isDescendant = (id, ancenstorId) => {\n log.trace(\"In isDecendant\", ancenstorId, \" \", id, \" = \", descendants[ancenstorId].includes(id));\n if (descendants[ancenstorId].includes(id)) {\n return true;\n }\n return false;\n};\nconst edgeInCluster = (edge, clusterId) => {\n log.info(\"Decendants of \", clusterId, \" is \", descendants[clusterId]);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId) {\n return false;\n }\n if (edge.w === clusterId) {\n return false;\n }\n if (!descendants[clusterId]) {\n log.debug(\"Tilt, \", clusterId, \",not in decendants\");\n return false;\n }\n return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);\n};\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n};\nconst extractDescendants = (id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents[child] = id;\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n};\nconst findNonClusterChild = (id, graph) => {\n log.trace(\"Searching\", id);\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n log.trace(\"This is a valid node\", id);\n return id;\n }\n for (const child of children) {\n const _id = findNonClusterChild(child, graph);\n if (_id) {\n log.trace(\"Found replacement for\", id, \" => \", _id);\n return _id;\n }\n }\n};\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\nconst adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph)\n );\n descendants[id] = extractDescendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n if (edge.v !== id && edge.w !== id) {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Decendants of XXX \", id, \": \", descendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb[e.v],\n \" --- \",\n clusterDb[e.w]\n );\n if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {\n log.warn(\"Fixing and trixing link to self - removing XXX\", e.v, e.w, e.name);\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n const specialId = e.w + \"---\" + e.v;\n graph.setNode(specialId, {\n domId: specialId,\n id: specialId,\n labelStyle: \"\",\n labelText: edge.label,\n padding: 0,\n shape: \"labelRect\",\n style: \"\"\n });\n const edge1 = JSON.parse(JSON.stringify(edge));\n const edge2 = JSON.parse(JSON.stringify(edge));\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge2.label = \"\";\n edge1.fromCluster = e.v;\n edge2.toCluster = e.v;\n graph.setEdge(v, specialId, edge1, e.name + \"-cyclic-special\");\n graph.setEdge(specialId, w, edge2, e.name + \"-cyclic-special\");\n } else if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n};\nconst extractor = (graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb[node]) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&\n graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb[node].clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb[node].externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n};\nconst sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\nconst rect = (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster\" + (node.class ? \" \" + node.class : \"\")).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const text = node.labelType === \"markdown\" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2 - node.padding / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n log.trace(\"Data \", node, JSON.stringify(node));\n rect2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - width / 2).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width).attr(\"height\", node.height + padding);\n if (useHtmlLabels) {\n label.attr(\n \"transform\",\n // This puts the labal on top of the box instead of inside it\n \"translate(\" + (node.x - bbox.width / 2) + \", \" + (node.y - node.height / 2) + \")\"\n );\n } else {\n label.attr(\n \"transform\",\n // This puts the labal on top of the box instead of inside it\n \"translate(\" + node.x + \", \" + (node.y - node.height / 2) + \")\"\n );\n }\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst noteGroup = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const innerRect = shapeSvg.append(\"rect\");\n const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n rect2.attr(\"class\", \"outer\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width + padding).attr(\"height\", node.height + padding);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr(\"width\", width + padding).attr(\"height\", node.height + padding - bbox.height - 3);\n label.attr(\n \"transform\",\n \"translate(\" + (node.x - bbox.width / 2) + \", \" + (node.y - node.height / 2 - node.padding / 3 + (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) + \")\"\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst divider = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"class\", \"divider\").attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding);\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\nlet clusterElems = {};\nconst insertCluster = (elem, node) => {\n log.trace(\"Inserting cluster\");\n const shape = node.shape || \"rect\";\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nconst clear = () => {\n clusterElems = {};\n};\nconst recursiveRender = async (_elem, graph, diagramtype, parentCluster) => {\n log.info(\"Graph in recursive render: XXX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.info(\"Setting data for cluster XXX (\", v, \") \", data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n log.info(\"Cluster identified\", v, node.width, graph.node(v));\n const o = await recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\"Node bounds (abc123)\", v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n log.warn(\"Recursive render complete \", newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\"Cluster - the non recursive path XXX\", v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n } else {\n log.info(\"Node - the non recursive path\", v, node.id, node);\n await insertNode(nodes, graph.node(v), dir);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\"Fix\", clusterDb, \"ids:\", e.v, e.w, \"Translateing: \", clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n graph.edges().forEach(function(e) {\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n });\n log.info(\"#############################################\");\n log.info(\"### Layout ###\");\n log.info(\"#############################################\");\n log.info(graph);\n layout(graph);\n log.info(\"Graph after layout:\", graphlibJson.write(graph));\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function(v) {\n const node = graph.node(v);\n log.info(\"Position \" + v + \": \" + JSON.stringify(graph.node(v)));\n log.info(\n \"Position \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node && node.clusterNode) {\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === \"group\") {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\nconst render = async (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clear$2();\n clear$3();\n clear();\n clear$1();\n log.warn(\"Graph at first:\", graphlibJson.write(graph));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after:\", graphlibJson.write(graph));\n await recursiveRender(elem, graph, diagramtype);\n};\nexport {\n render as r\n};\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone","write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear$1","isDescendant","id","ancenstorId","log","edgeInCluster","clusterId","copy","graph","newGraph","rootId","nodes","data","edges","data2","extractDescendants","children","res","child","findNonClusterChild","_id","getAnchorId","adjustClustersAndEdges","depth","d1","d2","w","specialId","edge1","edge2","graphlibJson.write","extractor","hasChildren","dir","clusterGraph","graphlib.Graph","sorter","result","sorted","sortNodesByHierarchy","rect","shapeSvg","rect2","useHtmlLabels","evaluate","getConfig","label","text","createText","createLabel","bbox","div","dv","select","padding","halfPadding","width","rectBox","point","intersectRect","noteGroup","roundedWithTitle","innerRect","divider","shapes","clusterElems","insertCluster","elem","shape","clear","recursiveRender","_elem","diagramtype","parentCluster","clusters","edgePaths","edgeLabels","o","newEl","updateNodeBounds","setNodeElem","insertNode","insertEdgeLabel","layout","diff","positionNode","paths","insertEdge","positionEdgeLabel","n","render","markers","insertMarkers","clear$2","clear$3"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js b/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js deleted file mode 100644 index ab3fcf4..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js +++ /dev/null @@ -1,99 +0,0 @@ -import{h as fc,g as pc,i as rt}from"./index-2K3MavtT.js";const Ln=20,gc={rect:"rectangle",circle:"ellipse"},mc={startOnLoad:!1,flowchart:{curve:"linear"},themeVariables:{fontSize:`${Ln*1.25}px`}};class Cr{constructor({converter:e}){this.convert=(i,r)=>this.converter(i,{...r,fontSize:r.fontSize||Ln}),this.converter=e}}var de;(function(t){t.ROUND="round",t.STADIUM="stadium",t.DOUBLECIRCLE="doublecircle",t.CIRCLE="circle",t.DIAMOND="diamond"})(de||(de={}));var cn;(function(t){t.COLOR="color"})(cn||(cn={}));var Ae;(function(t){t.FILL="fill",t.STROKE="stroke",t.STROKE_WIDTH="stroke-width",t.STROKE_DASHARRAY="stroke-dasharray"})(Ae||(Ae={}));var Fn={};Object.defineProperty(Fn,"__esModule",{value:!0});var Ms=Fn.removeMarkdown=void 0,_c=function(t,e){e===void 0&&(e={listUnicodeChar:""}),e=e||{},e.listUnicodeChar=e.hasOwnProperty("listUnicodeChar")?e.listUnicodeChar:!1,e.stripListLeaders=e.hasOwnProperty("stripListLeaders")?e.stripListLeaders:!0,e.gfm=e.hasOwnProperty("gfm")?e.gfm:!0,e.useImgAltText=e.hasOwnProperty("useImgAltText")?e.useImgAltText:!0,e.preserveLinks=e.hasOwnProperty("preserveLinks")?e.preserveLinks:!1;var i=t||"";i=i.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*$/gm,"");try{e.stripListLeaders&&(e.listUnicodeChar?i=i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,e.listUnicodeChar+" $1"):i=i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,"$1")),e.gfm&&(i=i.replace(/\n={2,}/g,` -`).replace(/~{3}.*\n/g,"").replace(/~~/g,"").replace(/`{3}.*\n/g,"")),e.preserveLinks&&(i=i.replace(/\[(.*?)\][\[\(](.*?)[\]\)]/g,"$1 ($2)")),i=i.replace(/<[^>]*>/g,"").replace(/^[=\-]{2,}\s*$/g,"").replace(/\[\^.+?\](\: .*?$)?/g,"").replace(/\s{0,2}\[.*?\]: .*?$/g,"").replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g,e.useImgAltText?"$1":"").replace(/\[(.*?)\][\[\(].*?[\]\)]/g,"$1").replace(/^\s{0,3}>\s?/g,"").replace(/(^|\n)\s{0,3}>\s?/g,` - -`).replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g,"").replace(/^(\n)?\s{0,}#{1,6}\s+| {0,}(\n)?\s{0,}#{0,} {0,}(\n)?\s{0,}$/gm,"$1$2$3").replace(/([\*_]{1,3})(\S.*?\S{0,1})\1/g,"$2").replace(/([\*_]{1,3})(\S.*?\S{0,1})\1/g,"$2").replace(/(`{3,})(.*?)\1/gm,"$2").replace(/`(.+?)`/g,"$1").replace(/\n{2,}/g,` - -`)}catch(r){return console.error(r),t}return i};Ms=Fn.removeMarkdown=_c;const yc={arrow_circle:{endArrowhead:"dot"},arrow_cross:{endArrowhead:"bar"},double_arrow_circle:{endArrowhead:"dot",startArrowhead:"dot"},double_arrow_cross:{endArrowhead:"bar",startArrowhead:"bar"},double_arrow_point:{endArrowhead:"arrow",startArrowhead:"arrow"}},bc=t=>yc[t],Bi=t=>{let e=t.text;return t.labelType==="markdown"&&(e=Ms(t.text)),Cc(e)},Cc=t=>{const e=/\s?(fa|fab):[a-zA-Z0-9-]+/g;return t.replace(e,"")},xc=t=>{const e={};return Object.keys(t).forEach(i=>{var r;switch(i){case Ae.FILL:{e.backgroundColor=t[i],e.fillStyle="solid";break}case Ae.STROKE:{e.strokeColor=t[i];break}case Ae.STROKE_WIDTH:{e.strokeWidth=Number((r=t[i])==null?void 0:r.split("px")[0]);break}case Ae.STROKE_DASHARRAY:{e.strokeStyle="dashed";break}}}),e},Tc=t=>{const e={};return Object.keys(t).forEach(i=>{switch(i){case cn.COLOR:{e.strokeColor=t[i];break}}}),e},Sc=t=>{const e={};t.subGraphs.map(r=>{r.nodeIds.forEach(n=>{e[r.id]={id:r.id,parent:null,isLeaf:!1},e[n]={id:n,parent:r.id,isLeaf:t.vertices[n]!==void 0}})});const i={};return[...Object.keys(t.vertices),...t.subGraphs.map(r=>r.id)].forEach(r=>{if(!e[r])return;let n=e[r];const s=[];for(n.isLeaf||s.push(`subgraph_group_${n.id}`);n.parent;)s.push(`subgraph_group_${n.parent}`),n=e[n.parent];i[r]=s}),{getGroupIds:r=>i[r]||[],getParentId:r=>e[r]?e[r].parent:null}},kc=new Cr({converter:(t,e)=>{const i=[],r=e.fontSize,{getGroupIds:n,getParentId:s}=Sc(t);return t.subGraphs.reverse().forEach(o=>{const a=n(o.id),l={id:o.id,type:"rectangle",groupIds:a,x:o.x,y:o.y,width:o.width,height:o.height,label:{groupIds:a,text:Bi(o),fontSize:r,verticalAlign:"top"}};i.push(l)}),Object.values(t.vertices).forEach(o=>{if(!o)return;const a=n(o.id),l=xc(o.containerStyle),c=Tc(o.labelStyle);let h={id:o.id,type:"rectangle",groupIds:a,x:o.x,y:o.y,width:o.width,height:o.height,strokeWidth:2,label:{groupIds:a,text:Bi(o),fontSize:r,...c},link:o.link||null,...l};switch(o.type){case de.STADIUM:{h={...h,roundness:{type:3}};break}case de.ROUND:{h={...h,roundness:{type:3}};break}case de.DOUBLECIRCLE:{a.push(`doublecircle_${o.id}}`);const p={type:"ellipse",groupIds:a,x:o.x+5,y:o.y+5,width:o.width-5*2,height:o.height-5*2,strokeWidth:2,roundness:{type:3},label:{groupIds:a,text:Bi(o),fontSize:r}};h={...h,groupIds:a,type:"ellipse"},i.push(p);break}case de.CIRCLE:{h.type="ellipse";break}case de.DIAMOND:{h.type="diamond";break}}i.push(h)}),t.edges.forEach(o=>{let a=[];const l=s(o.start),c=s(o.end);l&&l===c&&(a=n(l));const{startX:h,startY:u,reflectionPoints:p}=o,d=p.map(E=>[E.x-p[0].x,E.y-p[0].y]),m=bc(o.type),C={id:`${o.start}_${o.end}`,type:"arrow",groupIds:a,x:h,y:u,strokeWidth:o.stroke==="thick"?4:2,strokeStyle:o.stroke==="dotted"?"dashed":void 0,points:d,...o.text?{label:{text:Bi(o),fontSize:r,groupIds:a}}:{},roundness:{type:2},...m},$=i.find(E=>E.id===o.start),y=i.find(E=>E.id===o.end);!$||!y||(C.start={id:$.id||""},C.end={id:y.id||""},i.push(C))}),{elements:i}}});let Xt=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((e,i)=>(i&=63,i<36?e+=i.toString(36):i<62?e+=(i-26).toString(36).toUpperCase():i>62?e+="-":e+="_",e),"");const vc=new Cr({converter:t=>{const e=Xt(),{width:i,height:r}=t,n={type:"image",x:0,y:0,width:i,height:r,status:"saved",fileId:e};return{files:{[e]:{id:e,mimeType:t.mimeType,dataURL:t.dataURL}},elements:[n]}}}),ti=t=>{const e={type:"line",x:t.startX,y:t.startY,points:[[0,0],[t.endX-t.startX,t.endY-t.startY]],width:t.endX-t.startX,height:t.endY-t.startY,strokeStyle:t.strokeStyle||"solid",strokeColor:t.strokeColor||"#000",strokeWidth:t.strokeWidth||1};return t.groupId&&Object.assign(e,{groupIds:[t.groupId]}),t.id&&Object.assign(e,{id:t.id}),e},Ji=t=>{const e={type:"text",x:t.x,y:t.y,width:t.width,height:t.height,text:t.text||"",fontSize:t.fontSize,verticalAlign:"middle"};return t.groupId&&Object.assign(e,{groupIds:[t.groupId]}),t.id&&Object.assign(e,{id:t.id}),e},Ke=t=>{var r,n,s,o;let e={};t.type==="rectangle"&&t.subtype==="activation"&&(e={backgroundColor:"#e9ecef",fillStyle:"solid"});const i={id:t.id,type:t.type,x:t.x,y:t.y,width:t.width,height:t.height,label:{text:((r=t==null?void 0:t.label)==null?void 0:r.text)||"",fontSize:(n=t==null?void 0:t.label)==null?void 0:n.fontSize,verticalAlign:((s=t.label)==null?void 0:s.verticalAlign)||"middle",strokeColor:((o=t.label)==null?void 0:o.color)||"#000",groupIds:t.groupId?[t.groupId]:[]},strokeStyle:t==null?void 0:t.strokeStyle,strokeWidth:t==null?void 0:t.strokeWidth,strokeColor:t==null?void 0:t.strokeColor,backgroundColor:t==null?void 0:t.bgColor,fillStyle:"solid",...e};return t.groupId&&Object.assign(i,{groupIds:[t.groupId]}),i},$s=t=>{var i;const e={type:"arrow",x:t.startX,y:t.startY,points:t.points||[[0,0],[t.endX-t.startX,t.endY-t.startY]],width:t.endX-t.startX,height:t.endY-t.startY,strokeStyle:(t==null?void 0:t.strokeStyle)||"solid",endArrowhead:(t==null?void 0:t.endArrowhead)||null,startArrowhead:(t==null?void 0:t.startArrowhead)||null,label:{text:((i=t==null?void 0:t.label)==null?void 0:i.text)||"",fontSize:16},roundness:{type:2},start:t.start,end:t.end};return t.groupId&&Object.assign(e,{groupIds:[t.groupId]}),e},wc=new Cr({converter:t=>{const e=[],i=[];if(Object.values(t.nodes).forEach(r=>{!r||!r.length||r.forEach(n=>{let s;switch(n.type){case"line":s=ti(n);break;case"rectangle":case"ellipse":s=Ke(n);break;case"text":s=Ji(n);break;default:throw`unknown type ${n.type}`}n.type==="rectangle"&&(n==null?void 0:n.subtype)==="activation"?i.push(s):e.push(s)})}),Object.values(t.lines).forEach(r=>{r&&e.push(ti(r))}),Object.values(t.arrows).forEach(r=>{r&&(e.push($s(r)),r.sequenceNumber&&e.push(Ke(r.sequenceNumber)))}),e.push(...i),t.loops){const{lines:r,texts:n,nodes:s}=t.loops;r.forEach(o=>{e.push(ti(o))}),n.forEach(o=>{e.push(Ji(o))}),s.forEach(o=>{e.push(Ke(o))})}return t.groups&&t.groups.forEach(r=>{const{actorKeys:n,name:s}=r;let o=1/0,a=1/0,l=0,c=0;if(!n.length)return;e.filter(x=>{if(x.id){const j=x.id.indexOf("-"),U=x.id.substring(0,j);return n.includes(U)}}).forEach(x=>{if(x.x===void 0||x.y===void 0||x.width===void 0||x.height===void 0)throw new Error(`Actor attributes missing ${x}`);o=Math.min(o,x.x),a=Math.min(a,x.y),l=Math.max(l,x.x+x.width),c=Math.max(c,x.y+x.height)});const u=10,p=o-u,d=a-u,m=l-o+u*2,_=c-a+u*2,C=Xt(),$=Ke({type:"rectangle",x:p,y:d,width:m,height:_,bgColor:r.fill,id:C});e.unshift($);const y=Xt(),E=[C];e.forEach(x=>{if(x.type!=="frame"){if(x.x===void 0||x.y===void 0||x.width===void 0||x.height===void 0)throw new Error(`Element attributes missing ${x}`);if(x.x>=o&&x.x+x.width<=l&&x.y>=a&&x.y+x.height<=c){const j=x.id||Xt();x.id||Object.assign(x,{id:j}),E.push(j)}}});const W={type:"frame",id:y,name:s,children:E};e.push(W)}),{elements:e}}}),Bc=new Cr({converter:t=>{const e=[];return Object.values(t.nodes).forEach(i=>{!i||!i.length||i.forEach(r=>{let n;switch(r.type){case"line":n=ti(r);break;case"rectangle":case"ellipse":n=Ke(r);break;case"text":n=Ji(r);break;default:throw`unknown type ${r.type}`}e.push(n)})}),Object.values(t.lines).forEach(i=>{i&&e.push(ti(i))}),Object.values(t.arrows).forEach(i=>{if(!i)return;const r=$s(i);e.push(r)}),Object.values(t.text).forEach(i=>{const r=Ji(i);e.push(r)}),Object.values(t.namespaces).forEach(i=>{const r=Object.keys(i.classes),n=[...r],s=[...t.lines,...t.arrows,...t.text];r.forEach(a=>{const l=s.filter(c=>c.metadata&&"class"in c.metadata&&c.metadata.classId===a).map(c=>c.id);l.length&&n.push(...l)});const o={type:"frame",id:Xt(),name:i.id,children:n};e.push(o)}),{elements:e}}}),Ec=(t,e={})=>{switch(t.type){case"graphImage":return vc.convert(t,e);case"flowchart":return kc.convert(t,e);case"sequence":return wc.convert(t,e);case"class":return Bc.convert(t,e);default:throw new Error(`graphToExcalidraw: unknown graph type "${t.type}, only flowcharts are supported!"`)}};function Ac(t){for(var e=[],i=1;i=k?v:""+Array(k+1-L.length).join(S)+v},W={s:E,z:function(v){var k=-v.utcOffset(),S=Math.abs(k),L=Math.floor(S/60),w=S%60;return(k<=0?"+":"-")+E(L,2,"0")+":"+E(w,2,"0")},m:function v(k,S){if(k.date()1)return v(q[0])}else{var P=k.name;j[P]=k,w=P}return!L&&w&&(x=w),w||!L&&x},z=function(v,k){if(vt(v))return v.clone();var S=typeof k=="object"?k:{};return S.date=v,S.args=arguments,new it(S)},R=W;R.l=Ct,R.i=vt,R.w=function(v,k){return z(v,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var it=function(){function v(S){this.$L=Ct(S.locale,null,!0),this.parse(S),this.$x=this.$x||S.x||{},this[U]=!0}var k=v.prototype;return k.parse=function(S){this.$d=function(L){var w=L.date,F=L.utc;if(w===null)return new Date(NaN);if(R.u(w))return new Date;if(w instanceof Date)return new Date(w);if(typeof w=="string"&&!/Z$/i.test(w)){var q=w.match(C);if(q){var P=q[2]-1||0,K=(q[7]||"0").substring(0,3);return F?new Date(Date.UTC(q[1],P,q[3]||1,q[4]||0,q[5]||0,q[6]||0,K)):new Date(q[1],P,q[3]||1,q[4]||0,q[5]||0,q[6]||0,K)}}return new Date(w)}(S),this.init()},k.init=function(){var S=this.$d;this.$y=S.getFullYear(),this.$M=S.getMonth(),this.$D=S.getDate(),this.$W=S.getDay(),this.$H=S.getHours(),this.$m=S.getMinutes(),this.$s=S.getSeconds(),this.$ms=S.getMilliseconds()},k.$utils=function(){return R},k.isValid=function(){return this.$d.toString()!==_},k.isSame=function(S,L){var w=z(S);return this.startOf(L)<=w&&w<=this.endOf(L)},k.isAfter=function(S,L){return z(S)-1}function l(h){var u=h.replace(n,"");return u.replace(i,function(p,d){return String.fromCharCode(d)})}function c(h){if(!h)return t.BLANK_URL;var u=l(h).replace(r,"").replace(n,"").trim();if(!u)return t.BLANK_URL;if(a(u))return u;var p=u.match(s);if(!p)return u;var d=p[0];return e.test(d)?t.BLANK_URL:u}t.sanitizeUrl=c})(Ns);var Oc={value:()=>{}};function Rs(){for(var t=0,e=arguments.length,i={},r;t=0&&(r=i.slice(n+1),i=i.slice(0,n)),i&&!e.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}Ri.prototype=Rs.prototype={constructor:Ri,on:function(t,e){var i=this._,r=Ic(t+"",i),n,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var i=new Array(n),r=0,n,s;r=0&&(e=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),vo.hasOwnProperty(e)?{space:vo[e],local:t}:t}function $c(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===hn&&e.documentElement.namespaceURI===hn?e.createElement(t):e.createElementNS(i,t)}}function Dc(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ps(t){var e=xr(t);return(e.local?Dc:$c)(e)}function Nc(){}function On(t){return t==null?Nc:function(){return this.querySelector(t)}}function Rc(t){typeof t!="function"&&(t=On(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n=E&&(E=y+1);!(x=C[E])&&++E=0;)(o=r[n])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function ch(t){t||(t=hh);function e(u,p){return u&&p?t(u.__data__,p.__data__):!u-!p}for(var i=this._groups,r=i.length,n=new Array(r),s=0;se?1:t>=e?0:NaN}function uh(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function dh(){return Array.from(this)}function fh(){for(var t=this._groups,e=0,i=t.length;e1?this.each((e==null?kh:typeof e=="function"?wh:vh)(t,e,i??"")):Me(this.node(),t)}function Me(t,e){return t.style.getPropertyValue(e)||Hs(t).getComputedStyle(t,null).getPropertyValue(e)}function Eh(t){return function(){delete this[t]}}function Ah(t,e){return function(){this[t]=e}}function Lh(t,e){return function(){var i=e.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function Fh(t,e){return arguments.length>1?this.each((e==null?Eh:typeof e=="function"?Lh:Ah)(t,e)):this.node()[t]}function Ys(t){return t.trim().split(/^|\s+/)}function In(t){return t.classList||new Us(t)}function Us(t){this._node=t,this._names=Ys(t.getAttribute("class")||"")}Us.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Gs(t,e){for(var i=In(t),r=-1,n=e.length;++r=0&&(i=e.slice(r+1),e=e.slice(0,r)),{type:e,name:i}})}function ou(t){return function(){var e=this.__on;if(e){for(var i=0,r=-1,n=e.length,s;i>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):i===8?Ei(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):i===4?Ei(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=pu.exec(t))?new gt(e[1],e[2],e[3],1):(e=gu.exec(t))?new gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=mu.exec(t))?Ei(e[1],e[2],e[3],e[4]):(e=_u.exec(t))?Ei(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=yu.exec(t))?Oo(e[1],e[2]/100,e[3]/100,1):(e=bu.exec(t))?Oo(e[1],e[2]/100,e[3]/100,e[4]):wo.hasOwnProperty(t)?Ao(wo[t]):t==="transparent"?new gt(NaN,NaN,NaN,0):null}function Ao(t){return new gt(t>>16&255,t>>8&255,t&255,1)}function Ei(t,e,i,r){return r<=0&&(t=e=i=NaN),new gt(t,e,i,r)}function Tu(t){return t instanceof _i||(t=ai(t)),t?(t=t.rgb(),new gt(t.r,t.g,t.b,t.opacity)):new gt}function un(t,e,i,r){return arguments.length===1?Tu(t):new gt(t,e,i,r??1)}function gt(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}Mn(gt,un,Zs(_i,{brighter(t){return t=t==null?tr:Math.pow(tr,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?oi:Math.pow(oi,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gt(pe(this.r),pe(this.g),pe(this.b),er(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:Lo,formatHex:Lo,formatHex8:Su,formatRgb:Fo,toString:Fo}));function Lo(){return`#${fe(this.r)}${fe(this.g)}${fe(this.b)}`}function Su(){return`#${fe(this.r)}${fe(this.g)}${fe(this.b)}${fe((isNaN(this.opacity)?1:this.opacity)*255)}`}function Fo(){const t=er(this.opacity);return`${t===1?"rgb(":"rgba("}${pe(this.r)}, ${pe(this.g)}, ${pe(this.b)}${t===1?")":`, ${t})`}`}function er(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function pe(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function fe(t){return t=pe(t),(t<16?"0":"")+t.toString(16)}function Oo(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Et(t,e,i,r)}function Js(t){if(t instanceof Et)return new Et(t.h,t.s,t.l,t.opacity);if(t instanceof _i||(t=ai(t)),!t)return new Et;if(t instanceof Et)return t;t=t.rgb();var e=t.r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),s=Math.max(e,i,r),o=NaN,a=s-n,l=(s+n)/2;return a?(e===s?o=(i-r)/a+(i0&&l<1?0:o,new Et(o,a,l,t.opacity)}function ku(t,e,i,r){return arguments.length===1?Js(t):new Et(t,e,i,r??1)}function Et(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}Mn(Et,ku,Zs(_i,{brighter(t){return t=t==null?tr:Math.pow(tr,t),new Et(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?oi:Math.pow(oi,t),new Et(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,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new gt(Ur(t>=240?t-240:t+120,n,r),Ur(t,n,r),Ur(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new Et(Io(this.h),Ai(this.s),Ai(this.l),er(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(){const t=er(this.opacity);return`${t===1?"hsl(":"hsla("}${Io(this.h)}, ${Ai(this.s)*100}%, ${Ai(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Io(t){return t=(t||0)%360,t<0?t+360:t}function Ai(t){return Math.max(0,Math.min(1,t||0))}function Ur(t,e,i){return(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)*255}const $n=t=>()=>t;function Qs(t,e){return function(i){return t+i*e}}function vu(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}function w1(t,e){var i=e-t;return i?Qs(t,i>180||i<-180?i-360*Math.round(i/360):i):$n(isNaN(t)?e:t)}function wu(t){return(t=+t)==1?ta:function(e,i){return i-e?vu(e,i,t):$n(isNaN(e)?i:e)}}function ta(t,e){var i=e-t;return i?Qs(t,i):$n(isNaN(t)?e:t)}const Mo=function t(e){var i=wu(e);function r(n,s){var o=i((n=un(n)).r,(s=un(s)).r),a=i(n.g,s.g),l=i(n.b,s.b),c=ta(n.opacity,s.opacity);return function(h){return n.r=o(h),n.g=a(h),n.b=l(h),n.opacity=c(h),n+""}}return r.gamma=t,r}(1);function ie(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var dn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Gr=new RegExp(dn.source,"g");function Bu(t){return function(){return t}}function Eu(t){return function(e){return t(e)+""}}function Au(t,e){var i=dn.lastIndex=Gr.lastIndex=0,r,n,s,o=-1,a=[],l=[];for(t=t+"",e=e+"";(r=dn.exec(t))&&(n=Gr.exec(e));)(s=n.index)>i&&(s=e.slice(i,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(n=n[0])?a[o]?a[o]+=n:a[++o]=n:(a[++o]=null,l.push({i:o,x:ie(r,n)})),i=Gr.lastIndex;return i180?h+=360:h-c>180&&(c+=360),p.push({i:u.push(n(u)+"rotate(",null,r)-2,x:ie(c,h)})):h&&u.push(n(u)+"rotate("+h+r)}function a(c,h,u,p){c!==h?p.push({i:u.push(n(u)+"skewX(",null,r)-2,x:ie(c,h)}):h&&u.push(n(u)+"skewX("+h+r)}function l(c,h,u,p,d,m){if(c!==u||h!==p){var _=d.push(n(d)+"scale(",null,",",null,")");m.push({i:_-4,x:ie(c,u)},{i:_-2,x:ie(h,p)})}else(u!==1||p!==1)&&d.push(n(d)+"scale("+u+","+p+")")}return function(c,h){var u=[],p=[];return c=t(c),h=t(h),s(c.translateX,c.translateY,h.translateX,h.translateY,u,p),o(c.rotate,h.rotate,u,p),a(c.skewX,h.skewX,u,p),l(c.scaleX,c.scaleY,h.scaleX,h.scaleY,u,p),c=h=null,function(d){for(var m=-1,_=p.length,C;++m<_;)u[(C=p[m]).i]=C.x(d);return u.join("")}}}var Ou=ia(Lu,"px, ","px)","deg)"),Iu=ia(Fu,", ",")",")"),$e=0,Ze=0,Ue=0,ra=1e3,ir,Je,rr=0,_e=0,Tr=0,li=typeof performance=="object"&&performance.now?performance:Date,na=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Dn(){return _e||(na(Mu),_e=li.now()+Tr)}function Mu(){_e=0}function nr(){this._call=this._time=this._next=null}nr.prototype=oa.prototype={constructor:nr,restart:function(t,e,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?Dn():+i)+(e==null?0:+e),!this._next&&Je!==this&&(Je?Je._next=this:ir=this,Je=this),this._call=t,this._time=i,pn()},stop:function(){this._call&&(this._call=null,this._time=1/0,pn())}};function oa(t,e,i){var r=new nr;return r.restart(t,e,i),r}function $u(){Dn(),++$e;for(var t=ir,e;t;)(e=_e-t._time)>=0&&t._call.call(void 0,e),t=t._next;--$e}function Do(){_e=(rr=li.now())+Tr,$e=Ze=0;try{$u()}finally{$e=0,Nu(),_e=0}}function Du(){var t=li.now(),e=t-rr;e>ra&&(Tr-=e,rr=t)}function Nu(){for(var t,e=ir,i,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(i=e._next,e._next=null,e=t?t._next=i:ir=i);Je=t,pn(r)}function pn(t){if(!$e){Ze&&(Ze=clearTimeout(Ze));var e=t-_e;e>24?(t<1/0&&(Ze=setTimeout(Do,t-li.now()-Tr)),Ue&&(Ue=clearInterval(Ue))):(Ue||(rr=li.now(),Ue=setInterval(Du,ra)),$e=1,na(Do))}}function No(t,e,i){var r=new nr;return e=e==null?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,i),r}var Ru=Rs("start","end","cancel","interrupt"),Pu=[],sa=0,Ro=1,gn=2,Pi=3,Po=4,mn=5,qi=6;function Sr(t,e,i,r,n,s){var o=t.__transition;if(!o)t.__transition={};else if(i in o)return;qu(t,i,{name:e,index:r,group:n,on:Ru,tween:Pu,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:sa})}function Nn(t,e){var i=Ft(t,e);if(i.state>sa)throw new Error("too late; already scheduled");return i}function qt(t,e){var i=Ft(t,e);if(i.state>Pi)throw new Error("too late; already running");return i}function Ft(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function qu(t,e,i){var r=t.__transition,n;r[e]=i,i.timer=oa(s,0,i.time);function s(c){i.state=Ro,i.timer.restart(o,i.delay,i.time),i.delay<=c&&o(c-i.delay)}function o(c){var h,u,p,d;if(i.state!==Ro)return l();for(h in r)if(d=r[h],d.name===i.name){if(d.state===Pi)return No(o);d.state===Po?(d.state=qi,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[h]):+hgn&&r.state=0&&(e=e.slice(0,i)),!e||e==="start"})}function _d(t,e,i){var r,n,s=md(e)?Nn:qt;return function(){var o=s(this,t),a=o.on;a!==r&&(n=(r=a).copy()).on(e,i),o.on=n}}function yd(t,e){var i=this._id;return arguments.length<2?Ft(this.node(),i).on.on(t):this.each(_d(i,t,e))}function bd(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}function Cd(){return this.on("end.remove",bd(this._id))}function xd(t){var e=this._name,i=this._id;typeof t!="function"&&(t=On(t));for(var r=this._groups,n=r.length,s=new Array(n),o=0;o1?0:t<-1?Pn:Math.acos(t)}function D1(t){return t>=1?zo:t<=-1?-zo:Math.asin(t)}function ha(t){this._context=t}ha.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point: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}}};function Ud(t){return new ha(t)}class ua{constructor(e,i){this._context=e,this._x=i}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,i){switch(e=+e,i=+i,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,i):this._context.moveTo(e,i);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,i,e,i):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+i)/2,e,this._y0,e,i);break}}this._x0=e,this._y0=i}}function Gd(t){return new ua(t,!0)}function Vd(t){return new ua(t,!1)}function oe(){}function or(t,e,i){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+i)/6)}function kr(t){this._context=t}kr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:or(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},point: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:or(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Xd(t){return new kr(t)}function da(t){this._context=t}da.prototype={areaStart:oe,areaEnd:oe,lineStart: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},lineEnd: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}}},point: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:or(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Kd(t){return new da(t)}function fa(t){this._context=t}fa.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point: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 i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:or(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Zd(t){return new fa(t)}function pa(t,e){this._basis=new kr(t),this._beta=e}pa.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r=t[0],n=e[0],s=t[i]-r,o=e[i]-n,a=-1,l;++a<=i;)l=a/i,this._basis.point(this._beta*t[a]+(1-this._beta)*(r+l*s),this._beta*e[a]+(1-this._beta)*(n+l*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Jd=function t(e){function i(r){return e===1?new kr(r):new pa(r,e)}return i.beta=function(r){return t(+r)},i}(.85);function sr(t,e,i){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-i),t._x2,t._y2)}function qn(t,e){this._context=t,this._k=(1-e)/6}qn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:sr(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point: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:sr(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}};const Qd=function t(e){function i(r){return new qn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function zn(t,e){this._context=t,this._k=(1-e)/6}zn.prototype={areaStart:oe,areaEnd:oe,lineStart: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},lineEnd: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}}},point: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:sr(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}};const tf=function t(e){function i(r){return new zn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function Wn(t,e){this._context=t,this._k=(1-e)/6}Wn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point: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:sr(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}};const ef=function t(e){function i(r){return new Wn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function jn(t,e,i){var r=t._x1,n=t._y1,s=t._x2,o=t._y2;if(t._l01_a>qo){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>qo){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);s=(s*c+t._x1*t._l23_2a-e*t._l12_2a)/h,o=(o*c+t._y1*t._l23_2a-i*t._l12_2a)/h}t._context.bezierCurveTo(r,n,s,o,t._x2,t._y2)}function ga(t,e){this._context=t,this._alpha=e}ga.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart: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},lineEnd: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},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:jn(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}};const rf=function t(e){function i(r){return e?new ga(r,e):new qn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function ma(t,e){this._context=t,this._alpha=e}ma.prototype={areaStart:oe,areaEnd:oe,lineStart: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},lineEnd: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}}},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:jn(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}};const nf=function t(e){function i(r){return e?new ma(r,e):new zn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function _a(t,e){this._context=t,this._alpha=e}_a.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart: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},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,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:jn(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}};const of=function t(e){function i(r){return e?new _a(r,e):new Wn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function ya(t){this._context=t}ya.prototype={areaStart:oe,areaEnd:oe,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function sf(t){return new ya(t)}function Wo(t){return t<0?-1:1}function jo(t,e,i){var r=t._x1-t._x0,n=e-t._x1,s=(t._y1-t._y0)/(r||n<0&&-0),o=(i-t._y1)/(n||r<0&&-0),a=(s*n+o*r)/(r+n);return(Wo(s)+Wo(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(a))||0}function Ho(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Vr(t,e,i){var r=t._x0,n=t._y0,s=t._x1,o=t._y1,a=(s-r)/3;t._context.bezierCurveTo(r+a,n+a*e,s-a,o-a*i,s,o)}function ar(t){this._context=t}ar.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Vr(this,this._t0,Ho(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=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,Vr(this,Ho(this,i=jo(this,t,e)),i);break;default:Vr(this,this._t0,i=jo(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}};function ba(t){this._context=new Ca(t)}(ba.prototype=Object.create(ar.prototype)).point=function(t,e){ar.prototype.point.call(this,e,t)};function Ca(t){this._context=t}Ca.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,i,r,n,s){this._context.bezierCurveTo(e,t,r,i,s,n)}};function af(t){return new ar(t)}function lf(t){return new ba(t)}function xa(t){this._context=t}xa.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),i===2)this._context.lineTo(t[1],e[1]);else for(var r=Yo(t),n=Yo(e),s=0,o=1;o=0;--e)n[e]=(o[e]-n[e+1])/s[e];for(s[i-1]=(t[i]+n[i-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point: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 i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}break}}this._x=t,this._y=e}};function hf(t){return new vr(t,.5)}function uf(t){return new vr(t,0)}function df(t){return new vr(t,1)}function Qe(t,e,i){this.k=t,this.x=e,this.y=i}Qe.prototype={constructor:Qe,scale:function(t){return t===1?this:new Qe(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Qe(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};Qe.prototype;/*! @license DOMPurify 3.0.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.3/LICENSE */const{entries:Ta,setPrototypeOf:Uo,isFrozen:ff,getPrototypeOf:pf,getOwnPropertyDescriptor:gf}=Object;let{freeze:ft,seal:Lt,create:mf}=Object,{apply:_n,construct:yn}=typeof Reflect<"u"&&Reflect;_n||(_n=function(e,i,r){return e.apply(i,r)});ft||(ft=function(e){return e});Lt||(Lt=function(e){return e});yn||(yn=function(e,i){return new e(...i)});const _f=St(Array.prototype.forEach),Go=St(Array.prototype.pop),Ge=St(Array.prototype.push),zi=St(String.prototype.toLowerCase),Xr=St(String.prototype.toString),yf=St(String.prototype.match),Bt=St(String.prototype.replace),bf=St(String.prototype.indexOf),Cf=St(String.prototype.trim),_t=St(RegExp.prototype.test),Ve=xf(TypeError);function St(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n/gm),wf=Lt(/\${[\w\W]*}/gm),Bf=Lt(/^data-[\-\w.\u00B7-\uFFFF]/),Ef=Lt(/^aria-[\-\w]+$/),Sa=Lt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Af=Lt(/^(?:\w+script|data):/i),Lf=Lt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ka=Lt(/^html$/i);var Jo=Object.freeze({__proto__:null,MUSTACHE_EXPR:kf,ERB_EXPR:vf,TMPLIT_EXPR:wf,DATA_ATTR:Bf,ARIA_ATTR:Ef,IS_ALLOWED_URI:Sa,IS_SCRIPT_OR_DATA:Af,ATTR_WHITESPACE:Lf,DOCTYPE_NAME:ka});const Ff=()=>typeof window>"u"?null:window,Of=function(e,i){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const n="data-tt-policy-suffix";i&&i.hasAttribute(n)&&(r=i.getAttribute(n));const s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}};function va(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ff();const e=O=>va(O);if(e.version="3.0.3",e.removed=[],!t||!t.document||t.document.nodeType!==9)return e.isSupported=!1,e;const i=t.document,r=i.currentScript;let{document:n}=t;const{DocumentFragment:s,HTMLTemplateElement:o,Node:a,Element:l,NodeFilter:c,NamedNodeMap:h=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:u,DOMParser:p,trustedTypes:d}=t,m=l.prototype,_=Fi(m,"cloneNode"),C=Fi(m,"nextSibling"),$=Fi(m,"childNodes"),y=Fi(m,"parentNode");if(typeof o=="function"){const O=n.createElement("template");O.content&&O.content.ownerDocument&&(n=O.content.ownerDocument)}let E,W="";const{implementation:x,createNodeIterator:j,createDocumentFragment:U,getElementsByTagName:vt}=n,{importNode:Ct}=i;let z={};e.isSupported=typeof Ta=="function"&&typeof y=="function"&&x&&x.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:R,ERB_EXPR:it,TMPLIT_EXPR:V,DATA_ATTR:v,ARIA_ATTR:k,IS_SCRIPT_OR_DATA:S,ATTR_WHITESPACE:L}=Jo;let{IS_ALLOWED_URI:w}=Jo,F=null;const q=Y({},[...Vo,...Kr,...Zr,...Jr,...Xo]);let P=null;const K=Y({},[...Ko,...Qr,...Zo,...Oi]);let H=Object.seal(Object.create(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}})),J=null,st=null,zt=!0,wt=!0,Qt=!1,Ot=!0,Q=!1,at=!1,Wt=!1,te=!1,Te=!1,xi=!1,Ti=!1,ao=!0,lo=!1;const nc="user-content-";let Rr=!0,Ye=!1,Se={},ke=null;const co=Y({},["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"]);let ho=null;const uo=Y({},["audio","video","img","source","image","track"]);let Pr=null;const fo=Y({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Si="http://www.w3.org/1998/Math/MathML",ki="http://www.w3.org/2000/svg",jt="http://www.w3.org/1999/xhtml";let ve=jt,qr=!1,zr=null;const oc=Y({},[Si,ki,jt],Xr);let le;const sc=["application/xhtml+xml","text/html"],ac="text/html";let nt,we=null;const lc=n.createElement("form"),po=function(f){return f instanceof RegExp||f instanceof Function},Wr=function(f){if(!(we&&we===f)){if((!f||typeof f!="object")&&(f={}),f=Be(f),le=sc.indexOf(f.PARSER_MEDIA_TYPE)===-1?le=ac:le=f.PARSER_MEDIA_TYPE,nt=le==="application/xhtml+xml"?Xr:zi,F="ALLOWED_TAGS"in f?Y({},f.ALLOWED_TAGS,nt):q,P="ALLOWED_ATTR"in f?Y({},f.ALLOWED_ATTR,nt):K,zr="ALLOWED_NAMESPACES"in f?Y({},f.ALLOWED_NAMESPACES,Xr):oc,Pr="ADD_URI_SAFE_ATTR"in f?Y(Be(fo),f.ADD_URI_SAFE_ATTR,nt):fo,ho="ADD_DATA_URI_TAGS"in f?Y(Be(uo),f.ADD_DATA_URI_TAGS,nt):uo,ke="FORBID_CONTENTS"in f?Y({},f.FORBID_CONTENTS,nt):co,J="FORBID_TAGS"in f?Y({},f.FORBID_TAGS,nt):{},st="FORBID_ATTR"in f?Y({},f.FORBID_ATTR,nt):{},Se="USE_PROFILES"in f?f.USE_PROFILES:!1,zt=f.ALLOW_ARIA_ATTR!==!1,wt=f.ALLOW_DATA_ATTR!==!1,Qt=f.ALLOW_UNKNOWN_PROTOCOLS||!1,Ot=f.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Q=f.SAFE_FOR_TEMPLATES||!1,at=f.WHOLE_DOCUMENT||!1,Te=f.RETURN_DOM||!1,xi=f.RETURN_DOM_FRAGMENT||!1,Ti=f.RETURN_TRUSTED_TYPE||!1,te=f.FORCE_BODY||!1,ao=f.SANITIZE_DOM!==!1,lo=f.SANITIZE_NAMED_PROPS||!1,Rr=f.KEEP_CONTENT!==!1,Ye=f.IN_PLACE||!1,w=f.ALLOWED_URI_REGEXP||Sa,ve=f.NAMESPACE||jt,H=f.CUSTOM_ELEMENT_HANDLING||{},f.CUSTOM_ELEMENT_HANDLING&&po(f.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=f.CUSTOM_ELEMENT_HANDLING.tagNameCheck),f.CUSTOM_ELEMENT_HANDLING&&po(f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),f.CUSTOM_ELEMENT_HANDLING&&typeof f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Q&&(wt=!1),xi&&(Te=!0),Se&&(F=Y({},[...Xo]),P=[],Se.html===!0&&(Y(F,Vo),Y(P,Ko)),Se.svg===!0&&(Y(F,Kr),Y(P,Qr),Y(P,Oi)),Se.svgFilters===!0&&(Y(F,Zr),Y(P,Qr),Y(P,Oi)),Se.mathMl===!0&&(Y(F,Jr),Y(P,Zo),Y(P,Oi))),f.ADD_TAGS&&(F===q&&(F=Be(F)),Y(F,f.ADD_TAGS,nt)),f.ADD_ATTR&&(P===K&&(P=Be(P)),Y(P,f.ADD_ATTR,nt)),f.ADD_URI_SAFE_ATTR&&Y(Pr,f.ADD_URI_SAFE_ATTR,nt),f.FORBID_CONTENTS&&(ke===co&&(ke=Be(ke)),Y(ke,f.FORBID_CONTENTS,nt)),Rr&&(F["#text"]=!0),at&&Y(F,["html","head","body"]),F.table&&(Y(F,["tbody"]),delete J.tbody),f.TRUSTED_TYPES_POLICY){if(typeof f.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ve('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof f.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ve('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=f.TRUSTED_TYPES_POLICY,W=E.createHTML("")}else E===void 0&&(E=Of(d,r)),E!==null&&typeof W=="string"&&(W=E.createHTML(""));ft&&ft(f),we=f}},go=Y({},["mi","mo","mn","ms","mtext"]),mo=Y({},["foreignobject","desc","title","annotation-xml"]),cc=Y({},["title","style","font","a","script"]),vi=Y({},Kr);Y(vi,Zr),Y(vi,Tf);const jr=Y({},Jr);Y(jr,Sf);const hc=function(f){let b=y(f);(!b||!b.tagName)&&(b={namespaceURI:ve,tagName:"template"});const B=zi(f.tagName),G=zi(b.tagName);return zr[f.namespaceURI]?f.namespaceURI===ki?b.namespaceURI===jt?B==="svg":b.namespaceURI===Si?B==="svg"&&(G==="annotation-xml"||go[G]):!!vi[B]:f.namespaceURI===Si?b.namespaceURI===jt?B==="math":b.namespaceURI===ki?B==="math"&&mo[G]:!!jr[B]:f.namespaceURI===jt?b.namespaceURI===ki&&!mo[G]||b.namespaceURI===Si&&!go[G]?!1:!jr[B]&&(cc[B]||!vi[B]):!!(le==="application/xhtml+xml"&&zr[f.namespaceURI]):!1},ce=function(f){Ge(e.removed,{element:f});try{f.parentNode.removeChild(f)}catch{f.remove()}},Hr=function(f,b){try{Ge(e.removed,{attribute:b.getAttributeNode(f),from:b})}catch{Ge(e.removed,{attribute:null,from:b})}if(b.removeAttribute(f),f==="is"&&!P[f])if(Te||xi)try{ce(b)}catch{}else try{b.setAttribute(f,"")}catch{}},_o=function(f){let b,B;if(te)f=""+f;else{const xt=yf(f,/^[\r\n\t ]+/);B=xt&&xt[0]}le==="application/xhtml+xml"&&ve===jt&&(f=''+f+"");const G=E?E.createHTML(f):f;if(ve===jt)try{b=new p().parseFromString(G,le)}catch{}if(!b||!b.documentElement){b=x.createDocument(ve,"template",null);try{b.documentElement.innerHTML=qr?W:G}catch{}}const ot=b.body||b.documentElement;return f&&B&&ot.insertBefore(n.createTextNode(B),ot.childNodes[0]||null),ve===jt?vt.call(b,at?"html":"body")[0]:at?b.documentElement:ot},yo=function(f){return j.call(f.ownerDocument||f,f,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},uc=function(f){return f instanceof u&&(typeof f.nodeName!="string"||typeof f.textContent!="string"||typeof f.removeChild!="function"||!(f.attributes instanceof h)||typeof f.removeAttribute!="function"||typeof f.setAttribute!="function"||typeof f.namespaceURI!="string"||typeof f.insertBefore!="function"||typeof f.hasChildNodes!="function")},wi=function(f){return typeof a=="object"?f instanceof a:f&&typeof f=="object"&&typeof f.nodeType=="number"&&typeof f.nodeName=="string"},Ht=function(f,b,B){z[f]&&_f(z[f],G=>{G.call(e,b,B,we)})},bo=function(f){let b;if(Ht("beforeSanitizeElements",f,null),uc(f))return ce(f),!0;const B=nt(f.nodeName);if(Ht("uponSanitizeElement",f,{tagName:B,allowedTags:F}),f.hasChildNodes()&&!wi(f.firstElementChild)&&(!wi(f.content)||!wi(f.content.firstElementChild))&&_t(/<[/\w]/g,f.innerHTML)&&_t(/<[/\w]/g,f.textContent))return ce(f),!0;if(!F[B]||J[B]){if(!J[B]&&xo(B)&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,B)||H.tagNameCheck instanceof Function&&H.tagNameCheck(B)))return!1;if(Rr&&!ke[B]){const G=y(f)||f.parentNode,ot=$(f)||f.childNodes;if(ot&&G){const xt=ot.length;for(let Z=xt-1;Z>=0;--Z)G.insertBefore(_(ot[Z],!0),C(f))}}return ce(f),!0}return f instanceof l&&!hc(f)||(B==="noscript"||B==="noembed")&&_t(/<\/no(script|embed)/i,f.innerHTML)?(ce(f),!0):(Q&&f.nodeType===3&&(b=f.textContent,b=Bt(b,R," "),b=Bt(b,it," "),b=Bt(b,V," "),f.textContent!==b&&(Ge(e.removed,{element:f.cloneNode()}),f.textContent=b)),Ht("afterSanitizeElements",f,null),!1)},Co=function(f,b,B){if(ao&&(b==="id"||b==="name")&&(B in n||B in lc))return!1;if(!(wt&&!st[b]&&_t(v,b))){if(!(zt&&_t(k,b))){if(!P[b]||st[b]){if(!(xo(f)&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,f)||H.tagNameCheck instanceof Function&&H.tagNameCheck(f))&&(H.attributeNameCheck instanceof RegExp&&_t(H.attributeNameCheck,b)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(b))||b==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,B)||H.tagNameCheck instanceof Function&&H.tagNameCheck(B))))return!1}else if(!Pr[b]){if(!_t(w,Bt(B,L,""))){if(!((b==="src"||b==="xlink:href"||b==="href")&&f!=="script"&&bf(B,"data:")===0&&ho[f])){if(!(Qt&&!_t(S,Bt(B,L,"")))){if(B)return!1}}}}}}return!0},xo=function(f){return f.indexOf("-")>0},To=function(f){let b,B,G,ot;Ht("beforeSanitizeAttributes",f,null);const{attributes:xt}=f;if(!xt)return;const Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:P};for(ot=xt.length;ot--;){b=xt[ot];const{name:It,namespaceURI:Yr}=b;if(B=It==="value"?b.value:Cf(b.value),G=nt(It),Z.attrName=G,Z.attrValue=B,Z.keepAttr=!0,Z.forceKeepAttr=void 0,Ht("uponSanitizeAttribute",f,Z),B=Z.attrValue,Z.forceKeepAttr||(Hr(It,f),!Z.keepAttr))continue;if(!Ot&&_t(/\/>/i,B)){Hr(It,f);continue}Q&&(B=Bt(B,R," "),B=Bt(B,it," "),B=Bt(B,V," "));const So=nt(f.nodeName);if(Co(So,G,B)){if(lo&&(G==="id"||G==="name")&&(Hr(It,f),B=nc+B),E&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Yr)switch(d.getAttributeType(So,G)){case"TrustedHTML":{B=E.createHTML(B);break}case"TrustedScriptURL":{B=E.createScriptURL(B);break}}try{Yr?f.setAttributeNS(Yr,It,B):f.setAttribute(It,B),Go(e.removed)}catch{}}}Ht("afterSanitizeAttributes",f,null)},dc=function O(f){let b;const B=yo(f);for(Ht("beforeSanitizeShadowDOM",f,null);b=B.nextNode();)Ht("uponSanitizeShadowNode",b,null),!bo(b)&&(b.content instanceof s&&O(b.content),To(b));Ht("afterSanitizeShadowDOM",f,null)};return e.sanitize=function(O){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b,B,G,ot;if(qr=!O,qr&&(O=""),typeof O!="string"&&!wi(O))if(typeof O.toString=="function"){if(O=O.toString(),typeof O!="string")throw Ve("dirty is not a string, aborting")}else throw Ve("toString is not a function");if(!e.isSupported)return O;if(Wt||Wr(f),e.removed=[],typeof O=="string"&&(Ye=!1),Ye){if(O.nodeName){const It=nt(O.nodeName);if(!F[It]||J[It])throw Ve("root node is forbidden and cannot be sanitized in-place")}}else if(O instanceof a)b=_o(""),B=b.ownerDocument.importNode(O,!0),B.nodeType===1&&B.nodeName==="BODY"||B.nodeName==="HTML"?b=B:b.appendChild(B);else{if(!Te&&!Q&&!at&&O.indexOf("<")===-1)return E&&Ti?E.createHTML(O):O;if(b=_o(O),!b)return Te?null:Ti?W:""}b&&te&&ce(b.firstChild);const xt=yo(Ye?O:b);for(;G=xt.nextNode();)bo(G)||(G.content instanceof s&&dc(G.content),To(G));if(Ye)return O;if(Te){if(xi)for(ot=U.call(b.ownerDocument);b.firstChild;)ot.appendChild(b.firstChild);else ot=b;return(P.shadowroot||P.shadowrootmod)&&(ot=Ct.call(i,ot,!0)),ot}let Z=at?b.outerHTML:b.innerHTML;return at&&F["!doctype"]&&b.ownerDocument&&b.ownerDocument.doctype&&b.ownerDocument.doctype.name&&_t(ka,b.ownerDocument.doctype.name)&&(Z=" -`+Z),Q&&(Z=Bt(Z,R," "),Z=Bt(Z,it," "),Z=Bt(Z,V," ")),E&&Ti?E.createHTML(Z):Z},e.setConfig=function(O){Wr(O),Wt=!0},e.clearConfig=function(){we=null,Wt=!1},e.isValidAttribute=function(O,f,b){we||Wr({});const B=nt(O),G=nt(f);return Co(B,G,b)},e.addHook=function(O,f){typeof f=="function"&&(z[O]=z[O]||[],Ge(z[O],f))},e.removeHook=function(O){if(z[O])return Go(z[O])},e.removeHooks=function(O){z[O]&&(z[O]=[])},e.removeAllHooks=function(){z={}},e}var lr=va();const Wi={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:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+(e-t)*6*i:i<1/2?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},r)=>{if(!e)return i*2.55;t/=360,e/=100,i/=100;const n=i<.5?i*(1+e):i+e-i*e,s=2*i-n;switch(r){case"r":return Wi.hue2rgb(s,n,t+1/3)*255;case"g":return Wi.hue2rgb(s,n,t)*255;case"b":return Wi.hue2rgb(s,n,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),s=Math.min(t,e,i),o=(n+s)/2;if(r==="l")return o*100;if(n===s)return 0;const a=n-s,l=o>.5?a/(2-n-s):a/(n+s);if(r==="s")return l*100;switch(n){case t:return((e-i)/a+(ee>i?Math.min(e,Math.max(i,t)):Math.min(i,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},$f=Mf,Df={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Nf=Df,Rf={channel:If,lang:$f,unit:Nf},N=Rf,ee={};for(let t=0;t<=255;t++)ee[t]=N.unit.dec2hex(t);const lt={ALL:0,RGB:1,HSL:2};class Pf{constructor(){this.type=lt.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=lt.ALL}is(e){return this.type===e}}const qf=Pf;class zf{constructor(e,i){this.color=i,this.changed=!1,this.data=e,this.type=new qf}set(e,i){return this.color=i,this.changed=!1,this.data=e,this.type.type=lt.ALL,this}_ensureHSL(){const e=this.data,{h:i,s:r,l:n}=e;i===void 0&&(e.h=N.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=N.channel.rgb2hsl(e,"s")),n===void 0&&(e.l=N.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:i,g:r,b:n}=e;i===void 0&&(e.r=N.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=N.channel.hsl2rgb(e,"g")),n===void 0&&(e.b=N.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,i=e.r;return!this.type.is(lt.HSL)&&i!==void 0?i:(this._ensureHSL(),N.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,i=e.g;return!this.type.is(lt.HSL)&&i!==void 0?i:(this._ensureHSL(),N.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,i=e.b;return!this.type.is(lt.HSL)&&i!==void 0?i:(this._ensureHSL(),N.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,i=e.h;return!this.type.is(lt.RGB)&&i!==void 0?i:(this._ensureRGB(),N.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,i=e.s;return!this.type.is(lt.RGB)&&i!==void 0?i:(this._ensureRGB(),N.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,i=e.l;return!this.type.is(lt.RGB)&&i!==void 0?i:(this._ensureRGB(),N.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(lt.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(lt.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(lt.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(lt.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(lt.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(lt.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const Wf=zf,jf=new Wf({r:0,g:0,b:0,a:0},"transparent"),wr=jf,wa={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(wa.re);if(!e)return;const i=e[1],r=parseInt(i,16),n=i.length,s=n%4===0,o=n>4,a=o?1:17,l=o?8:4,c=s?0:-1,h=o?255:15;return wr.set({r:(r>>l*(c+3)&h)*a,g:(r>>l*(c+2)&h)*a,b:(r>>l*(c+1)&h)*a,a:s?(r&h)*a/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`#${ee[Math.round(e)]}${ee[Math.round(i)]}${ee[Math.round(r)]}${ee[Math.round(n*255)]}`:`#${ee[Math.round(e)]}${ee[Math.round(i)]}${ee[Math.round(r)]}`}},ei=wa,ji={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:t=>{const e=t.match(ji.hueRe);if(e){const[,i,r]=e;switch(r){case"grad":return N.channel.clamp.h(parseFloat(i)*.9);case"rad":return N.channel.clamp.h(parseFloat(i)*180/Math.PI);case"turn":return N.channel.clamp.h(parseFloat(i)*360)}}return N.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const i=t.match(ji.re);if(!i)return;const[,r,n,s,o,a]=i;return wr.set({h:ji._hue2deg(r),s:N.channel.clamp.s(parseFloat(n)),l:N.channel.clamp.l(parseFloat(s)),a:o?N.channel.clamp.a(a?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${N.lang.round(e)}, ${N.lang.round(i)}%, ${N.lang.round(r)}%, ${n})`:`hsl(${N.lang.round(e)}, ${N.lang.round(i)}%, ${N.lang.round(r)}%)`}},Ii=ji,Hi={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:t=>{t=t.toLowerCase();const e=Hi.colors[t];if(e)return ei.parse(e)},stringify:t=>{const e=ei.stringify(t);for(const i in Hi.colors)if(Hi.colors[i]===e)return i}},Qo=Hi,Ba={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:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const i=t.match(Ba.re);if(!i)return;const[,r,n,s,o,a,l,c,h]=i;return wr.set({r:N.channel.clamp.r(n?parseFloat(r)*2.55:parseFloat(r)),g:N.channel.clamp.g(o?parseFloat(s)*2.55:parseFloat(s)),b:N.channel.clamp.b(l?parseFloat(a)*2.55:parseFloat(a)),a:c?N.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${N.lang.round(e)}, ${N.lang.round(i)}, ${N.lang.round(r)}, ${N.lang.round(n)})`:`rgb(${N.lang.round(e)}, ${N.lang.round(i)}, ${N.lang.round(r)})`}},Mi=Ba,Hf={format:{keyword:Qo,hex:ei,rgb:Mi,rgba:Mi,hsl:Ii,hsla:Ii},parse:t=>{if(typeof t!="string")return t;const e=ei.parse(t)||Mi.parse(t)||Ii.parse(t)||Qo.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(lt.HSL)||t.data.r===void 0?Ii.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?Mi.stringify(t):ei.stringify(t)},Rt=Hf,Yf=(t,e)=>{const i=Rt.parse(t);for(const r in e)i[r]=N.channel.clamp[r](e[r]);return Rt.stringify(i)},Ea=Yf,Uf=(t,e,i=0,r=1)=>{if(typeof t!="number")return Ea(t,{a:e});const n=wr.set({r:N.channel.clamp.r(t),g:N.channel.clamp.g(e),b:N.channel.clamp.b(i),a:N.channel.clamp.a(r)});return Rt.stringify(n)},ii=Uf,Gf=t=>{const{r:e,g:i,b:r}=Rt.parse(t),n=.2126*N.channel.toLinear(e)+.7152*N.channel.toLinear(i)+.0722*N.channel.toLinear(r);return N.lang.round(n)},Vf=Gf,Xf=t=>Vf(t)>=.5,Kf=Xf,Zf=t=>!Kf(t),yi=Zf,Jf=(t,e,i)=>{const r=Rt.parse(t),n=r[e],s=N.channel.clamp[e](n+i);return n!==s&&(r[e]=s),Rt.stringify(r)},Aa=Jf,Qf=(t,e)=>Aa(t,"l",e),I=Qf,tp=(t,e)=>Aa(t,"l",-e),D=tp,ep=(t,e)=>{const i=Rt.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return Ea(t,r)},g=ep,ip=(t,e,i=50)=>{const{r,g:n,b:s,a:o}=Rt.parse(t),{r:a,g:l,b:c,a:h}=Rt.parse(e),u=i/100,p=u*2-1,d=o-h,_=((p*d===-1?p:(p+d)/(1+p*d))+1)/2,C=1-_,$=r*_+a*C,y=n*_+l*C,E=s*_+c*C,W=o*u+h*(1-u);return ii($,y,E,W)},rp=ip,np=(t,e=100)=>{const i=Rt.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,rp(i,t,e)},T=np;var op=typeof global=="object"&&global&&global.Object===Object&&global;const La=op;var sp=typeof self=="object"&&self&&self.Object===Object&&self,ap=La||sp||Function("return this")();const ae=ap;var lp=ae.Symbol;const cr=lp;var Fa=Object.prototype,cp=Fa.hasOwnProperty,hp=Fa.toString,Xe=cr?cr.toStringTag:void 0;function up(t){var e=cp.call(t,Xe),i=t[Xe];try{t[Xe]=void 0;var r=!0}catch{}var n=hp.call(t);return r&&(e?t[Xe]=i:delete t[Xe]),n}var dp=Object.prototype,fp=dp.toString;function pp(t){return fp.call(t)}var gp="[object Null]",mp="[object Undefined]",ts=cr?cr.toStringTag:void 0;function bi(t){return t==null?t===void 0?mp:gp:ts&&ts in Object(t)?up(t):pp(t)}function Oa(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var _p="[object AsyncFunction]",yp="[object Function]",bp="[object GeneratorFunction]",Cp="[object Proxy]";function Ia(t){if(!Oa(t))return!1;var e=bi(t);return e==yp||e==bp||e==_p||e==Cp}var xp=ae["__core-js_shared__"];const tn=xp;var es=function(){var t=/[^.]+$/.exec(tn&&tn.keys&&tn.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Tp(t){return!!es&&es in t}var Sp=Function.prototype,kp=Sp.toString;function Ce(t){if(t!=null){try{return kp.call(t)}catch{}try{return t+""}catch{}}return""}var vp=/[\\^$.*+?()[\]{}|]/g,wp=/^\[object .+?Constructor\]$/,Bp=Function.prototype,Ep=Object.prototype,Ap=Bp.toString,Lp=Ep.hasOwnProperty,Fp=RegExp("^"+Ap.call(Lp).replace(vp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Op(t){if(!Oa(t)||Tp(t))return!1;var e=Ia(t)?Fp:wp;return e.test(Ce(t))}function Ip(t,e){return t==null?void 0:t[e]}function ze(t,e){var i=Ip(t,e);return Op(i)?i:void 0}var Mp=ze(Object,"create");const ci=Mp;function $p(){this.__data__=ci?ci(null):{},this.size=0}function Dp(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Np="__lodash_hash_undefined__",Rp=Object.prototype,Pp=Rp.hasOwnProperty;function qp(t){var e=this.__data__;if(ci){var i=e[t];return i===Np?void 0:i}return Pp.call(e,t)?e[t]:void 0}var zp=Object.prototype,Wp=zp.hasOwnProperty;function jp(t){var e=this.__data__;return ci?e[t]!==void 0:Wp.call(e,t)}var Hp="__lodash_hash_undefined__";function Yp(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=ci&&e===void 0?Hp:e,this}function ye(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1}function Qp(t,e){var i=this.__data__,r=Br(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function We(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e0?hi(je,--kt):0,De--,tt===10&&(De=1,Ar--),tt}function At(){return tt=kt2||bn(tt)>3?"":" "}function bg(t,e){for(;--e&&At()&&!(tt<48||tt>102||tt>57&&tt<65||tt>70&&tt<97););return Lr(t,Ui()+(e<6&&ge()==32&&At()==32))}function Cn(t){for(;At();)switch(tt){case t:return kt;case 34:case 39:t!==34&&t!==39&&Cn(tt);break;case 40:t===41&&Cn(t);break;case 92:At();break}return kt}function Cg(t,e){for(;At()&&t+tt!==57;)if(t+tt===84&&ge()===47)break;return"/*"+Lr(e,kt-1)+"*"+Hn(t===47?t:At())}function xg(t){for(;!bn(ge());)At();return Lr(t,kt)}function Tg(t){return _g(Gi("",null,null,null,[""],t=mg(t),0,[0],t))}function Gi(t,e,i,r,n,s,o,a,l){for(var c=0,h=0,u=o,p=0,d=0,m=0,_=1,C=1,$=1,y=0,E="",W=n,x=s,j=r,U=E;C;)switch(m=y,y=At()){case 40:if(m!=108&&hi(U,u-1)==58){dg(U+=Yi(en(y),"&","&\f"),"&\f")!=-1&&($=-1);break}case 34:case 39:case 91:U+=en(y);break;case 9:case 10:case 13:case 32:U+=yg(m);break;case 92:U+=bg(Ui()-1,7);continue;case 47:switch(ge()){case 42:case 47:$i(Sg(Cg(At(),Ui()),e,i,l),l);break;default:U+="/"}break;case 123*_:a[c++]=Gt(U)*$;case 125*_:case 59:case 0:switch(y){case 0:case 125:C=0;case 59+h:$==-1&&(U=Yi(U,/\f/g,"")),d>0&&Gt(U)-u&&$i(d>32?rs(U+";",r,i,u-1,l):rs(Yi(U," ","")+";",r,i,u-2,l),l);break;case 59:U+=";";default:if($i(j=is(U,e,i,c,h,n,a,E,W=[],x=[],u,s),s),y===123)if(h===0)Gi(U,e,j,j,W,s,u,a,x);else switch(p===99&&hi(U,3)===110?100:p){case 100:case 108:case 109:case 115:Gi(t,j,j,r&&$i(is(t,j,j,0,0,n,a,E,n,W=[],u,x),x),n,x,u,a,r?W:x);break;default:Gi(U,j,j,j,[""],x,0,a,x)}}c=h=d=0,_=$=1,E=U="",u=o;break;case 58:u=1+Gt(U),d=m;default:if(_<1){if(y==123)--_;else if(y==125&&_++==0&&gg()==125)continue}switch(U+=Hn(y),y*_){case 38:$=h>0?1:(U+="\f",-1);break;case 44:a[c++]=(Gt(U)-1)*$,$=1;break;case 64:ge()===45&&(U+=en(At())),p=ge(),h=u=Gt(E=U+=xg(Ui())),y++;break;case 45:m===45&&Gt(U)==2&&(_=0)}}return s}function is(t,e,i,r,n,s,o,a,l,c,h,u){for(var p=n-1,d=n===0?s:[""],m=fg(d),_=0,C=0,$=0;_0?d[y]+" "+E:Yi(E,/&\f/g,d[y])))&&(l[$++]=W);return Yn(t,e,i,n===0?$a:a,l,c,h,u)}function Sg(t,e,i,r){return Yn(t,e,i,Ma,Hn(pg()),ui(t,2,-2),0,r)}function rs(t,e,i,r,n){return Yn(t,e,i,Da,ui(t,0,r),ui(t,r+1,-1),r,n)}function xn(t,e){for(var i="",r=0;r-1&&t%1==0&&t<=Kg}function Zg(t){return t!=null&&za(t.length)&&!Ia(t)}function Jg(){return!1}var Wa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hs=Wa&&typeof module=="object"&&module&&!module.nodeType&&module,Qg=hs&&hs.exports===Wa,us=Qg?ae.Buffer:void 0,tm=us?us.isBuffer:void 0,em=tm||Jg;const im=em;var rm="[object Arguments]",nm="[object Array]",om="[object Boolean]",sm="[object Date]",am="[object Error]",lm="[object Function]",cm="[object Map]",hm="[object Number]",um="[object Object]",dm="[object RegExp]",fm="[object Set]",pm="[object String]",gm="[object WeakMap]",mm="[object ArrayBuffer]",_m="[object DataView]",ym="[object Float32Array]",bm="[object Float64Array]",Cm="[object Int8Array]",xm="[object Int16Array]",Tm="[object Int32Array]",Sm="[object Uint8Array]",km="[object Uint8ClampedArray]",vm="[object Uint16Array]",wm="[object Uint32Array]",X={};X[ym]=X[bm]=X[Cm]=X[xm]=X[Tm]=X[Sm]=X[km]=X[vm]=X[wm]=!0;X[rm]=X[nm]=X[mm]=X[om]=X[_m]=X[sm]=X[am]=X[lm]=X[cm]=X[hm]=X[um]=X[dm]=X[fm]=X[pm]=X[gm]=!1;function Bm(t){return Un(t)&&za(t.length)&&!!X[bi(t)]}function Em(t){return function(e){return t(e)}}var ja=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=ja&&typeof module=="object"&&module&&!module.nodeType&&module,Am=ri&&ri.exports===ja,rn=Am&&La.process,Lm=function(){try{var t=ri&&ri.require&&ri.require("util").types;return t||rn&&rn.binding&&rn.binding("util")}catch{}}();const ds=Lm;var fs=ds&&ds.isTypedArray,Fm=fs?Em(fs):Bm;const Om=Fm;var Im="[object Map]",Mm="[object Set]",$m=Object.prototype,Dm=$m.hasOwnProperty;function Vi(t){if(t==null)return!0;if(Zg(t)&&(Xg(t)||typeof t=="string"||typeof t.splice=="function"||im(t)||Om(t)||Gg(t)))return!t.length;var e=Wg(t);if(e==Im||e==Mm)return!t.size;if(Pa(t))return!Fg(t).length;for(var i in t)if(Dm.call(t,i))return!1;return!0}const Ut={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},A={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Gn=function(t="fatal"){let e=Ut.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Ut&&(e=Ut[t])):typeof t=="number"&&(e=t),A.trace=()=>{},A.debug=()=>{},A.info=()=>{},A.warn=()=>{},A.error=()=>{},A.fatal=()=>{},e<=Ut.fatal&&(A.fatal=console.error?console.error.bind(console,Tt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Tt("FATAL"))),e<=Ut.error&&(A.error=console.error?console.error.bind(console,Tt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Tt("ERROR"))),e<=Ut.warn&&(A.warn=console.warn?console.warn.bind(console,Tt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Tt("WARN"))),e<=Ut.info&&(A.info=console.info?console.info.bind(console,Tt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Tt("INFO"))),e<=Ut.debug&&(A.debug=console.debug?console.debug.bind(console,Tt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Tt("DEBUG"))),e<=Ut.trace&&(A.trace=console.debug?console.debug.bind(console,Tt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Tt("TRACE")))},Tt=t=>`%c${Fc().format("ss.SSS")} : ${t} : `,Fr=//gi,Nm=t=>t?Ya(t).replace(/\\n/g,"#br#").split("#br#"):[""],Ha=t=>lr.sanitize(t),ps=(t,e)=>{var i;if(((i=e.flowchart)==null?void 0:i.htmlLabels)!==!1){const r=e.securityLevel;r==="antiscript"||r==="strict"?t=Ha(t):r!=="loose"&&(t=Ya(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=zm(t))}return t},di=(t,e)=>t&&(e.dompurifyConfig?t=lr.sanitize(ps(t,e),e.dompurifyConfig).toString():t=lr.sanitize(ps(t,e),{FORBID_TAGS:["style"]}).toString(),t),Rm=(t,e)=>typeof t=="string"?di(t,e):t.flat().map(i=>di(i,e)),Pm=t=>Fr.test(t),qm=t=>t.split(Fr),zm=t=>t.replace(/#br#/g,"
    "),Ya=t=>t.replace(Fr,"#br#"),Wm=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},Ua=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),jm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.max(...e)},Hm=function(...t){const e=t.filter(i=>!isNaN(i));return Math.min(...e)},Ym=function(t){let e=t;if(t.split("~").length-1>=2){let i=e;do e=i,i=e.replace(/~([^\s,:;]+)~/,"<$1>");while(i!=e);return Ym(i)}else return e},Vn={getRows:Nm,sanitizeText:di,sanitizeTextOrArray:Rm,hasBreaks:Pm,splitBreaks:qm,lineBreakRegex:Fr,removeScript:Ha,getUrl:Wm,evaluate:Ua,getMax:jm,getMin:Hm},dt=(t,e)=>e?g(t,{s:-40,l:10}):g(t,{s:-40,l:-10}),Or="#ffffff",Ir="#f2f2f2";let Um=class{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||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||dt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||dt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||dt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||dt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||T(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||T(this.tertiaryColor),this.lineColor=this.lineColor||T(this.background),this.arrowheadColor=this.arrowheadColor||T(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?D(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||"grey",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||D(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||T(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||I(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.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.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||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let i=0;i{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Gm=t=>{const e=new Um;return e.calculate(t),e};let Vm=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=I(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=T(this.background),this.secondaryBorderColor=dt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=dt(this.tertiaryColor,this.darkMode),this.primaryTextColor=T(this.primaryColor),this.secondaryTextColor=T(this.secondaryColor),this.tertiaryTextColor=T(this.tertiaryColor),this.lineColor=T(this.background),this.textColor=T(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=I(T("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=ii(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=D("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=D(this.sectionBkgColor,10),this.taskBorderColor=ii(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=ii(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.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=I(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=I(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,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=I(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=this.darkTextColor,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=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(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||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let e=0;e{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Xm=t=>{const e=new Vm;return e.calculate(t),e};let Km=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=dt(this.primaryColor,this.darkMode),this.secondaryBorderColor=dt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=dt(this.tertiaryColor,this.darkMode),this.primaryTextColor=T(this.primaryColor),this.secondaryTextColor=T(this.secondaryColor),this.tertiaryTextColor=T(this.tertiaryColor),this.lineColor=T(this.background),this.textColor=T(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="#e8e8e8",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="grey",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.sectionBkgColor=ii(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.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,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||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||D(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||D(this.tertiaryColor,40);for(let e=0;e{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Zm=t=>{const e=new Km;return e.calculate(t),e};let Jm=class{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=I("#cde498",10),this.primaryBorderColor=dt(this.primaryColor,this.darkMode),this.secondaryBorderColor=dt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=dt(this.tertiaryColor,this.darkMode),this.primaryTextColor=T(this.primaryColor),this.secondaryTextColor=T(this.secondaryColor),this.tertiaryTextColor=T(this.primaryColor),this.lineColor=T(this.background),this.textColor=T(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="grey",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.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=D(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.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||D(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||D(this.tertiaryColor,40);for(let e=0;e{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Qm=t=>{const e=new Jm;return e.calculate(t),e};class t0{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=I(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=dt(this.primaryColor,this.darkMode),this.secondaryBorderColor=dt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=dt(this.tertiaryColor,this.darkMode),this.primaryTextColor=T(this.primaryColor),this.secondaryTextColor=T(this.secondaryColor),this.tertiaryTextColor=T(this.tertiaryColor),this.lineColor=T(this.background),this.textColor=T(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="calculated",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.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=I(this.contrast,55),this.border2=this.contrast,this.actorBorder=I(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,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[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}}const e0=t=>{const e=new t0;return e.calculate(t),e},Kt={base:{getThemeVariables:Gm},dark:{getThemeVariables:Xm},default:{getThemeVariables:Zm},forest:{getThemeVariables:Qm},neutral:{getThemeVariables:e0}},re={theme:"default",themeVariables:Kt.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{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,useMaxWidth:!0,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,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,displayMode:"",axisFormat:"%Y-%m-%d",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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"]},timeline:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{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,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0,textPosition:.75},quadrantChart:{chartWidth:500,chartHeight:500,titlePadding:10,titleFontSize:20,quadrantPadding:5,quadrantTextTopPadding:5,quadrantLabelFontSize:16,quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2,xAxisLabelPadding:5,xAxisLabelFontSize:16,xAxisPosition:"top",yAxisLabelPadding:5,yAxisLabelFontSize:16,yAxisPosition:"left",pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,useMaxWidth:!0},requirement:{useWidth:void 0,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},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,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,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},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"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};re.class&&(re.class.arrowMarkerAbsolute=re.arrowMarkerAbsolute);re.gitGraph&&(re.gitGraph.arrowMarkerAbsolute=re.arrowMarkerAbsolute);const Ga=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:typeof t[r]=="object"&&t[r]!==null?[...i,e+r,...Ga(t[r],"")]:[...i,e+r],[]),i0=Ga(re,""),r0=re;/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function Va(t){return typeof t>"u"||t===null}function n0(t){return typeof t=="object"&&t!==null}function o0(t){return Array.isArray(t)?t:Va(t)?[]:[t]}function s0(t,e){var i,r,n,s;if(e)for(s=Object.keys(e),i=0,r=s.length;ia&&(s=" ... ",e=r-a+s.length),i-r>a&&(o=" ...",i=r+a-o.length),{str:s+t.slice(e,i).replace(/\t/g,"→")+o,pos:r-e+s.length}}function on(t,e){return ut.repeat(" ",e-t.length)+t}function g0(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 i=/\r?\n|\r|\0/g,r=[0],n=[],s,o=-1;s=i.exec(t.buffer);)n.push(s.index),r.push(s.index+s[0].length),t.position<=s.index&&o<0&&(o=r.length-2);o<0&&(o=r.length-1);var a="",l,c,h=Math.min(t.line+e.linesAfter,n.length).toString().length,u=e.maxLength-(e.indent+h+3);for(l=1;l<=e.linesBefore&&!(o-l<0);l++)c=nn(t.buffer,r[o-l],n[o-l],t.position-(r[o]-r[o-l]),u),a=ut.repeat(" ",e.indent)+on((t.line-l+1).toString(),h)+" | "+c.str+` -`+a;for(c=nn(t.buffer,r[o],n[o],t.position,u),a+=ut.repeat(" ",e.indent)+on((t.line+1).toString(),h)+" | "+c.str+` -`,a+=ut.repeat("-",e.indent+h+3+c.pos)+`^ -`,l=1;l<=e.linesAfter&&!(o+l>=n.length);l++)c=nn(t.buffer,r[o+l],n[o+l],t.position-(r[o]-r[o+l]),u),a+=ut.repeat(" ",e.indent)+on((t.line+l+1).toString(),h)+" | "+c.str+` -`;return a.replace(/\n$/,"")}var m0=g0,_0=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],y0=["scalar","sequence","mapping"];function b0(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(r){e[String(r)]=i})}),e}function C0(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(_0.indexOf(i)===-1)throw new Vt('Unknown option "'+i+'" 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(i){return i},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=b0(e.styleAliases||null),y0.indexOf(this.kind)===-1)throw new Vt('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var ht=C0;function gs(t,e){var i=[];return t[e].forEach(function(r){var n=i.length;i.forEach(function(s,o){s.tag===r.tag&&s.kind===r.kind&&s.multi===r.multi&&(n=o)}),i[n]=r}),i}function x0(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function r(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,i=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),z0=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function W0(t){return!(t===null||!z0.test(t)||t[t.length-1]==="_")}function j0(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var H0=/^[-+]?[0-9]+e/;function Y0(t,e){var i;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(ut.isNegativeZero(t))return"-0.0";return i=t.toString(10),H0.test(i)?i.replace("e",".e"):i}function U0(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ut.isNegativeZero(t))}var G0=new ht("tag:yaml.org,2002:float",{kind:"scalar",resolve:W0,construct:j0,predicate:U0,represent:Y0,defaultStyle:"lowercase"}),V0=Ka.extend({implicit:[A0,I0,q0,G0]}),X0=V0,Za=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Ja=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]))?))?$");function K0(t){return t===null?!1:Za.exec(t)!==null||Ja.exec(t)!==null}function Z0(t){var e,i,r,n,s,o,a,l=0,c=null,h,u,p;if(e=Za.exec(t),e===null&&(e=Ja.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(h=+e[10],u=+(e[11]||0),c=(h*60+u)*6e4,e[9]==="-"&&(c=-c)),p=new Date(Date.UTC(i,r,n,s,o,a,l)),c&&p.setTime(p.getTime()-c),p}function J0(t){return t.toISOString()}var Q0=new ht("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:K0,construct:Z0,instanceOf:Date,represent:J0});function t_(t){return t==="<<"||t===null}var e_=new ht("tag:yaml.org,2002:merge",{kind:"scalar",resolve:t_}),Xn=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function i_(t){if(t===null)return!1;var e,i,r=0,n=t.length,s=Xn;for(i=0;i64)){if(e<0)return!1;r+=6}return r%8===0}function r_(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,s=Xn,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(e));return i=n%4*6,i===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):i===18?(a.push(o>>10&255),a.push(o>>2&255)):i===12&&a.push(o>>4&255),new Uint8Array(a)}function n_(t){var e="",i=0,r,n,s=t.length,o=Xn;for(r=0;r>18&63],e+=o[i>>12&63],e+=o[i>>6&63],e+=o[i&63]),i=(i<<8)+t[r];return n=s%3,n===0?(e+=o[i>>18&63],e+=o[i>>12&63],e+=o[i>>6&63],e+=o[i&63]):n===2?(e+=o[i>>10&63],e+=o[i>>4&63],e+=o[i<<2&63],e+=o[64]):n===1&&(e+=o[i>>2&63],e+=o[i<<4&63],e+=o[64],e+=o[64]),e}function o_(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var s_=new ht("tag:yaml.org,2002:binary",{kind:"scalar",resolve:i_,construct:r_,predicate:o_,represent:n_}),a_=Object.prototype.hasOwnProperty,l_=Object.prototype.toString;function c_(t){if(t===null)return!0;var e=[],i,r,n,s,o,a=t;for(i=0,r=a.length;i>10)+55296,(t-65536&1023)+56320)}var rl=new Array(256),nl=new Array(256);for(var Ee=0;Ee<256;Ee++)rl[Ee]=ys(Ee)?1:0,nl[Ee]=ys(Ee);function A_(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||C_,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 ol(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=m0(i),new Vt(e,i)}function M(t,e){throw ol(t,e)}function fr(t,e){t.onWarning&&t.onWarning.call(null,ol(t,e))}var bs={YAML:function(e,i,r){var n,s,o;e.version!==null&&M(e,"duplication of %YAML directive"),r.length!==1&&M(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),n===null&&M(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&M(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&fr(e,"unsupported YAML version of the document")},TAG:function(e,i,r){var n,s;r.length!==2&&M(e,"TAG directive accepts exactly two arguments"),n=r[0],s=r[1],el.test(n)||M(e,"ill-formed tag handle (first argument) of the TAG directive"),se.call(e.tagMap,n)&&M(e,'there is a previously declared suffix for "'+n+'" tag handle'),il.test(s)||M(e,"ill-formed tag prefix (second argument) of the TAG directive");try{s=decodeURIComponent(s)}catch{M(e,"tag prefix is malformed: "+s)}e.tagMap[n]=s}};function ne(t,e,i,r){var n,s,o,a;if(e1&&(t.result+=ut.repeat(` -`,e-1))}function L_(t,e,i){var r,n,s,o,a,l,c,h,u=t.kind,p=t.result,d;if(d=t.input.charCodeAt(t.position),mt(d)||Le(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;d!==0;){if(d===58){if(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Le(n))break}else if(d===35){if(r=t.input.charCodeAt(t.position-1),mt(r))break}else{if(t.position===t.lineStart&&Mr(t)||i&&Le(d))break;if(Nt(d))if(l=t.line,c=t.lineStart,h=t.lineIndent,et(t,!1,-1),t.lineIndent>=e){a=!0,d=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=l,t.lineStart=c,t.lineIndent=h;break}}a&&(ne(t,s,o,!1),Zn(t,t.line-l),s=o=t.position,a=!1),me(d)||(o=t.position+1),d=t.input.charCodeAt(++t.position)}return ne(t,s,o,!1),t.result?!0:(t.kind=u,t.result=p,!1)}function F_(t,e){var i,r,n;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(ne(t,r,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)r=t.position,t.position++,n=t.position;else return!0;else Nt(i)?(ne(t,r,n,!0),Zn(t,et(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Mr(t)?M(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);M(t,"unexpected end of the stream within a single quoted scalar")}function O_(t,e){var i,r,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return ne(t,i,t.position,!0),t.position++,!0;if(a===92){if(ne(t,i,t.position,!0),a=t.input.charCodeAt(++t.position),Nt(a))et(t,!1,e);else if(a<256&&rl[a])t.result+=nl[a],t.position++;else if((o=w_(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=v_(a))>=0?s=(s<<4)+o:M(t,"expected hexadecimal character");t.result+=E_(s),t.position++}else M(t,"unknown escape sequence");i=r=t.position}else Nt(a)?(ne(t,i,r,!0),Zn(t,et(t,!1,e)),i=r=t.position):t.position===t.lineStart&&Mr(t)?M(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}M(t,"unexpected end of the stream within a double quoted scalar")}function I_(t,e){var i=!0,r,n,s,o=t.tag,a,l=t.anchor,c,h,u,p,d,m=Object.create(null),_,C,$,y;if(y=t.input.charCodeAt(t.position),y===91)h=93,d=!1,a=[];else if(y===123)h=125,d=!0,a={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),y=t.input.charCodeAt(++t.position);y!==0;){if(et(t,!0,e),y=t.input.charCodeAt(t.position),y===h)return t.position++,t.tag=o,t.anchor=l,t.kind=d?"mapping":"sequence",t.result=a,!0;i?y===44&&M(t,"expected the node content, but found ','"):M(t,"missed comma between flow collection entries"),C=_=$=null,u=p=!1,y===63&&(c=t.input.charCodeAt(t.position+1),mt(c)&&(u=p=!0,t.position++,et(t,!0,e))),r=t.line,n=t.lineStart,s=t.position,Ne(t,e,ur,!1,!0),C=t.tag,_=t.result,et(t,!0,e),y=t.input.charCodeAt(t.position),(p||t.line===r)&&y===58&&(u=!0,y=t.input.charCodeAt(++t.position),et(t,!0,e),Ne(t,e,ur,!1,!0),$=t.result),d?Fe(t,a,m,C,_,$,r,n,s):u?a.push(Fe(t,null,m,C,_,$,r,n,s)):a.push(_),et(t,!0,e),y=t.input.charCodeAt(t.position),y===44?(i=!0,y=t.input.charCodeAt(++t.position)):i=!1}M(t,"unexpected end of the stream within a flow collection")}function M_(t,e){var i,r,n=sn,s=!1,o=!1,a=e,l=0,c=!1,h,u;if(u=t.input.charCodeAt(t.position),u===124)r=!1;else if(u===62)r=!0;else return!1;for(t.kind="scalar",t.result="";u!==0;)if(u=t.input.charCodeAt(++t.position),u===43||u===45)sn===n?n=u===43?ms:x_:M(t,"repeat of a chomping mode identifier");else if((h=B_(u))>=0)h===0?M(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?M(t,"repeat of an indentation width identifier"):(a=e+h-1,o=!0);else break;if(me(u)){do u=t.input.charCodeAt(++t.position);while(me(u));if(u===35)do u=t.input.charCodeAt(++t.position);while(!Nt(u)&&u!==0)}for(;u!==0;){for(Kn(t),t.lineIndent=0,u=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),Nt(u)){l++;continue}if(t.lineIndente)&&l!==0)M(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(C&&(o=t.line,a=t.lineStart,l=t.position),Ne(t,e,dr,!0,n)&&(C?m=t.result:_=t.result),C||(Fe(t,u,p,d,m,_,o,a,l),d=m=_=null),et(t,!0,-1),y=t.input.charCodeAt(t.position)),(t.line===s||t.lineIndent>e)&&y!==0)M(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),u=0,p=t.implicitTypes.length;u"),t.result!==null&&m.kind!==t.kind&&M(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+m.kind+'", not "'+t.kind+'"'),m.resolve(t.result,t.tag)?(t.result=m.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):M(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||h}function P_(t){var e=t.position,i,r,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(o=t.input.charCodeAt(t.position))!==0&&(et(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),i=t.position;o!==0&&!mt(o);)o=t.input.charCodeAt(++t.position);for(r=t.input.slice(i,t.position),n=[],r.length<1&&M(t,"directive name must not be less than one character in length");o!==0;){for(;me(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!Nt(o));break}if(Nt(o))break;for(i=t.position;o!==0&&!mt(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(i,t.position))}o!==0&&Kn(t),se.call(bs,r)?bs[r](t,r,n):fr(t,'unknown document directive "'+r+'"')}if(et(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,et(t,!0,-1)):s&&M(t,"directives end mark is expected"),Ne(t,t.lineIndent-1,dr,!1,!0),et(t,!0,-1),t.checkLineBreaks&&S_.test(t.input.slice(e,t.position))&&fr(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Mr(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,et(t,!0,-1));return}if(t.position"u"&&(i=e,e=null);var r=sl(t,i);if(typeof e!="function")return r;for(var n=0,s=r.length;nBn(t,s,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(s=>{t.includes(s)||t.push(s)}),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(s=>{typeof e[s]=="object"&&(t[s]===void 0||typeof t[s]=="object")?(t[s]===void 0&&(t[s]=Array.isArray(e[s])?[]:{}),t[s]=Bn(t[s],e[s],{depth:r-1,clobber:n})):(n||typeof t[s]!="object"&&typeof e[s]!="object")&&(t[s]=e[s])}),t)},ct=Bn,pi=Object.freeze(r0);let pt=ct({},pi),ll,Re=[],ni=ct({},pi);const $r=(t,e)=>{let i=ct({},t),r={};for(const n of e)hl(n),r=ct(r,n);if(i=ct(i,r),r.theme&&r.theme in Kt){const n=ct({},ll),s=ct(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Kt&&(i.themeVariables=Kt[i.theme].getThemeVariables(s))}return ni=i,fl(ni),ni},V_=t=>(pt=ct({},pi),pt=ct(pt,t),t.theme&&Kt[t.theme]&&(pt.themeVariables=Kt[t.theme].getThemeVariables(t.themeVariables)),$r(pt,Re),pt),X_=t=>{ll=ct({},t)},K_=t=>(pt=ct(pt,t),$r(pt,Re),pt),cl=()=>ct({},pt),Z_=t=>(fl(t),ct(ni,t),Jt()),Jt=()=>ct({},ni),hl=t=>{["secure",...pt.secure??[]].forEach(e=>{t[e]!==void 0&&(A.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.indexOf("__")===0&&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"&&hl(t[e])})},ul=t=>{t.fontFamily&&(t.themeVariables?t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily}):t.themeVariables={fontFamily:t.fontFamily}),Re.push(t),$r(pt,Re)},pr=(t=pt)=>{Re=[],$r(t,Re)};var dl=(t=>(t.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",t))(dl||{});const Ts={},J_=t=>{Ts[t]||(A.warn(dl[t]),Ts[t]=!0)},fl=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&J_("LAZY_LOAD_DEPRECATED")},Q_=function(t,e){for(let i of e)t.attr(i[0],i[1])},ty=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},ey=function(t,e,i,r){const n=ty(e,i,r);Q_(t,n)},iy=function(t,e,i,r){const n=e.node().getBBox(),s=n.width,o=n.height;A.info(`SVG bounds: ${s}x${o}`,n);let a=0,l=0;A.info(`Graph bounds: ${a}x${l}`,t),a=s+i*2,l=o+i*2,A.info(`Calculated bounds: ${a}x${l}`),ey(e,l,a,r);const c=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",c)},Xi={},ry=(t,e,i)=>{let r="";return t in Xi&&Xi[t]?r=Xi[t](i):A.warn(`No theme found for ${t}`),` & { - font-family: ${i.fontFamily}; - font-size: ${i.fontSize}; - fill: ${i.textColor} - } - - /* Classes common for multiple diagrams */ - - & .error-icon { - fill: ${i.errorBkgColor}; - } - & .error-text { - fill: ${i.errorTextColor}; - stroke: ${i.errorTextColor}; - } - - & .edge-thickness-normal { - stroke-width: 2px; - } - & .edge-thickness-thick { - stroke-width: 3.5px - } - & .edge-pattern-solid { - stroke-dasharray: 0; - } - - & .edge-pattern-dashed{ - stroke-dasharray: 3; - } - .edge-pattern-dotted { - stroke-dasharray: 2; - } - - & .marker { - fill: ${i.lineColor}; - stroke: ${i.lineColor}; - } - & .marker.cross { - stroke: ${i.lineColor}; - } - - & svg { - font-family: ${i.fontFamily}; - font-size: ${i.fontSize}; - } - - ${r} - - ${e} -`},ny=(t,e)=>{Xi[t]=e},oy=ry;let Jn="",Dr="",Qn="";const to=t=>di(t,Jt()),pl=function(){Jn="",Qn="",Dr=""},gl=function(t){Jn=to(t).replace(/^\s+/g,"")},ml=function(){return Jn||Dr},_l=function(t){Qn=to(t).replace(/\n\s+/g,` -`)},yl=function(){return Qn},bl=function(t){Dr=to(t)},Cl=function(){return Dr},sy={getAccTitle:ml,setAccTitle:gl,getDiagramTitle:Cl,setDiagramTitle:bl,getAccDescription:yl,setAccDescription:_l,clear:pl},ay=Object.freeze(Object.defineProperty({__proto__:null,clear:pl,default:sy,getAccDescription:yl,getAccTitle:ml,getDiagramTitle:Cl,setAccDescription:_l,setAccTitle:gl,setDiagramTitle:bl},Symbol.toStringTag,{value:"Module"}));let he={};const xl=function(t,e,i,r){A.debug("parseDirective is being called",e,i,r);try{if(e!==void 0)switch(e=e.trim(),i){case"open_directive":he={};break;case"type_directive":if(!he)throw new Error("currentDirective is undefined");he.type=e.toLowerCase();break;case"arg_directive":if(!he)throw new Error("currentDirective is undefined");he.args=JSON.parse(e);break;case"close_directive":ly(t,he,r),he=void 0;break}}catch(n){A.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${i}`),A.error(n.message)}},ly=function(t,e,i){switch(A.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":{["config"].forEach(r=>{e.args[r]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),e.args[i]=e.args[r],delete e.args[r])}),A.info("sanitize in handleDirective",e.args),qe(e.args),A.info("sanitize in handleDirective (done)",e.args),ul(e.args);break}case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap(e.type==="wrap");break;case"themeCss":A.warn("themeCss encountered");break;default:A.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e);break}},cy=A,hy=Gn,Tl=Jt,uy=t=>di(t,Tl()),dy=iy,fy=()=>ay,py=(t,e,i,r)=>xl(t,e,i,r),gr={},mr=(t,e,i)=>{if(gr[t])throw new Error(`Diagram ${t} already registered.`);gr[t]=e,i&&vl(t,i),ny(t,e.styles),e.injectUtils&&e.injectUtils(cy,hy,Tl,uy,dy,fy(),py)},eo=t=>{if(t in gr)return gr[t];throw new Error(`Diagram ${t} not found.`)};class Sl extends Error{constructor(e){super(e),this.name="UnknownDiagramError"}}const gy=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,my=/\s*%%.*\n/gm,Pe={},Nr=function(t,e){t=t.replace(al,"").replace(gy,"").replace(my,` -`);for(const[i,{detector:r}]of Object.entries(Pe))if(r(t,e))return i;throw new Sl(`No diagram type detected matching given configuration for text: ${t}`)},kl=(...t)=>{for(const{id:e,detector:i,loader:r}of t)vl(e,i,r)},_y=async()=>{A.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Pe).map(async([i,{detector:r,loader:n}])=>{if(n)try{eo(i)}catch{try{const{diagram:o,id:a}=await n();mr(a,o,r)}catch(o){throw A.error(`Failed to load external diagram with key ${i}. Removing from detectors.`),delete Pe[i],o}}}))).filter(i=>i.status==="rejected");if(e.length>0){A.error(`Failed to load ${e.length} external diagrams`);for(const i of e)A.error(i);throw new Error(`Failed to load ${e.length} external diagrams`)}},vl=(t,e,i)=>{Pe[t]?A.error(`Detector with key ${t} already exists`):Pe[t]={detector:e,loader:i},A.debug(`Detector with key ${t} added${i?" with loader":""}`)},yy=t=>Pe[t].loader,by="​",Cy={curveBasis:Xd,curveBasisClosed:Kd,curveBasisOpen:Zd,curveBumpX:Gd,curveBumpY:Vd,curveBundle:Jd,curveCardinalClosed:tf,curveCardinalOpen:ef,curveCardinal:Qd,curveCatmullRomClosed:nf,curveCatmullRomOpen:of,curveCatmullRom:rf,curveLinear:Ud,curveLinearClosed:sf,curveMonotoneX:af,curveMonotoneY:lf,curveNatural:cf,curveStep:hf,curveStepAfter:df,curveStepBefore:uf},an=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,xy=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Ty=function(t,e){const i=wl(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const n=i.map(s=>s.args);qe(n),r=ct(r,[...n])}else r=i.args;if(r){let n=Nr(t,e);["config"].forEach(s=>{r[s]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),r[n]=r[s],delete r[s])})}return r},wl=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${xy.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),A.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=an.exec(t))!==null;)if(r.index===an.lastIndex&&an.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const s=r[1]?r[1]:r[2],o=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:s,args:o})}return n.length===0&&n.push({type:t,args:null}),n.length===1?n[0]:n}catch(i){return A.error(`ERROR: ${i.message} - Unable to parse directive - ${e!==null?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}},Sy=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function ky(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Cy[i]||e}function vy(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Ns.sanitizeUrl(i):i}const wy=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let s=window;for(let o=0;o{i+=_r(s,e),e=s});let r=i/2,n;return e=void 0,t.forEach(s=>{if(e&&!n){const o=_r(s,e);if(o=1&&(n={x:s.x,y:s.y}),a>0&&a<1&&(n={x:(1-a)*e.x+a*s.x,y:(1-a)*e.y+a*s.y})}}e=s}),n}function Ey(t){return t.length===1?t[0]:By(t)}const Ay=(t,e,i)=>{let r;A.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());let s=25,o;r=void 0,e.forEach(h=>{if(r&&!o){const u=_r(h,r);if(u=1&&(o={x:h.x,y:h.y}),p>0&&p<1&&(o={x:(1-p)*r.x+p*h.x,y:(1-p)*r.y+p*h.y})}}r=h});const a=t?10:5,l=Math.atan2(e[0].y-o.y,e[0].x-o.x),c={x:0,y:0};return c.x=Math.sin(l)*a+(e[0].x+o.x)/2,c.y=-Math.cos(l)*a+(e[0].y+o.y)/2,c};function Ly(t,e,i){let r=JSON.parse(JSON.stringify(i)),n;A.info("our points",r),e!=="start_left"&&e!=="start_right"&&(r=r.reverse()),r.forEach(u=>{n=u});let o=25+t,a;n=void 0,r.forEach(u=>{if(n&&!a){const p=_r(u,n);if(p=1&&(a={x:u.x,y:u.y}),d>0&&d<1&&(a={x:(1-d)*n.x+d*u.x,y:(1-d)*n.y+d*u.y})}}n=u});const l=10+t*.5,c=Math.atan2(r[0].y-a.y,r[0].x-a.x),h={x:0,y:0};return h.x=Math.sin(c)*l+(r[0].x+a.x)/2,h.y=-Math.cos(c)*l+(r[0].y+a.y)/2,e==="start_left"&&(h.x=Math.sin(c+Math.PI)*l+(r[0].x+a.x)/2,h.y=-Math.cos(c+Math.PI)*l+(r[0].y+a.y)/2),e==="end_right"&&(h.x=Math.sin(c-Math.PI)*l+(r[0].x+a.x)/2-5,h.y=-Math.cos(c-Math.PI)*l+(r[0].y+a.y)/2-5),e==="end_left"&&(h.x=Math.sin(c)*l+(r[0].x+a.x)/2-5,h.y=-Math.cos(c)*l+(r[0].y+a.y)/2-5),h}function Fy(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let Ss=0;const Oy=()=>(Ss++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Ss);function Iy(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nIy(t.length),$y=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}},Dy=function(t,e){const i=e.text.replace(Vn.lineBreakRegex," "),[,r]=ro(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const s=n.append("tspan");return s.attr("x",e.x+e.textMargin*2),s.attr("fill",e.fill),s.text(i),n},Ny=Ci((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},i),Vn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let s="";return r.forEach((o,a)=>{const l=yr(`${o} `,i),c=yr(s,i);if(l>e){const{hyphenatedStrings:p,remainingWord:d}=Ry(o,e,"-",i);n.push(s,...p),s=d}else c+l>=e?(n.push(s),s=o):s=[s,o].filter(Boolean).join(" ");a+1===r.length&&n.push(s)}),n.filter(o=>o!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),Ry=Ci((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],s=[];let o="";return n.forEach((a,l)=>{const c=`${o}${a}`;if(yr(c,r)>=e){const u=l+1,p=n.length===u,d=`${c}${i}`;s.push(p?c:d),o=""}else o=c}),{hyphenatedStrings:s,remainingWord:o}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function Py(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),io(t,e).height}function yr(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),io(t,e).width}const io=Ci((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);const{fontSize:i,fontFamily:r,fontWeight:n}=e;if(!t)return{width:0,height:0};const[,s]=ro(i),o=["sans-serif",r],a=t.split(Vn.lineBreakRegex),l=[],c=Mt("body");if(!c.remove)return{width:0,height:0,lineHeight:0};const h=c.append("svg");for(const p of o){let d=0;const m={width:0,height:0,lineHeight:0};for(const _ of a){const C=$y();C.text=_||by;const $=Dy(h,C).style("font-size",s).style("font-weight",n).style("font-family",p),y=($._groups||$)[0][0].getBBox();if(y.width===0&&y.height===0)throw new Error("svg element not in render tree");m.width=Math.round(Math.max(m.width,y.width)),d=Math.round(y.height),m.height+=d,m.lineHeight=Math.round(Math.max(m.lineHeight,d))}l.push(m)}h.remove();const u=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[u]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),qy=class{constructor(e,i){this.deterministic=e,this.seed=i,this.count=i?i.length:0}next(){return this.deterministic?this.count++:Date.now()}};let Di;const zy=function(t){return Di=Di||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Di.innerHTML=t,unescape(Di.textContent)},qe=t=>{if(A.debug("directiveSanitizer called with",t),typeof t=="object"&&(t.length?t.forEach(e=>qe(e)):Object.keys(t).forEach(e=>{A.debug("Checking key",e),e.startsWith("__")&&(A.debug("sanitize deleting __ option",e),delete t[e]),e.includes("proto")&&(A.debug("sanitize deleting proto option",e),delete t[e]),e.includes("constr")&&(A.debug("sanitize deleting constr option",e),delete t[e]),e.includes("themeCSS")&&(A.debug("sanitizing themeCss option"),t[e]=Ki(t[e])),e.includes("fontFamily")&&(A.debug("sanitizing fontFamily option"),t[e]=Ki(t[e])),e.includes("altFontFamily")&&(A.debug("sanitizing altFontFamily option"),t[e]=Ki(t[e])),i0.includes(e)?typeof t[e]=="object"&&(A.debug("sanitize deleting object",e),qe(t[e])):(A.debug("sanitize deleting option",e),delete t[e])})),t.themeVariables){const e=Object.keys(t.themeVariables);for(const i of e){const r=t.themeVariables[i];r&&r.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[i]="")}}A.debug("After sanitization",t)},Ki=t=>{let e=0,i=0;for(const r of t){if(e{if(!r)return;const n=t.node().getBBox();t.append("text").text(r).attr("x",n.x+n.width/2).attr("y",-i).attr("class",e)},ro=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t,10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},Zi={assignWithDepth:ct,wrapLabel:Ny,calculateTextHeight:Py,calculateTextWidth:yr,calculateTextDimensions:io,detectInit:Ty,detectDirective:wl,isSubstringInArray:Sy,interpolateToCurve:ky,calcLabelPosition:Ey,calcCardinalityPosition:Ay,calcTerminalLabelPosition:Ly,formatUrl:vy,getStylesFromArray:Fy,generateId:Oy,random:My,runFunc:wy,entityDecode:zy,initIdGenerator:qy,directiveSanitizer:qe,sanitizeCss:Ki,insertTitle:jy,parseFontSize:ro},ks="10.2.3",El="c4",Hy=t=>t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)!==null,Yy=async()=>{const{diagram:t}=await rt(()=>import("./c4Diagram-9cddb37f-N9kopixF.js"),__vite__mapDeps([0,1,2,3]));return{id:El,diagram:t}},Uy={id:El,detector:Hy,loader:Yy},Gy=Uy,Al="flowchart",Vy=(t,e)=>{var i,r;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:t.match(/^\s*graph/)!==null},Xy=async()=>{const{diagram:t}=await rt(()=>import("./flowDiagram-93327f21-bzemmV0w.js"),__vite__mapDeps([4,5,6,7,8,9,10,11,12,13,14,15,2,3]));return{id:Al,diagram:t}},Ky={id:Al,detector:Vy,loader:Xy},Zy=Ky,Ll="flowchart-v2",Jy=(t,e)=>{var i,r,n;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:t.match(/^\s*graph/)!==null&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:t.match(/^\s*flowchart/)!==null},Qy=async()=>{const{diagram:t}=await rt(()=>import("./flowDiagram-v2-476db779-kB7FwdKI.js"),__vite__mapDeps([16,5,7,6,8,9,10,11,12,13,14,15,2,3]));return{id:Ll,diagram:t}},tb={id:Ll,detector:Jy,loader:Qy},eb=tb,Fl="er",ib=t=>t.match(/^\s*erDiagram/)!==null,rb=async()=>{const{diagram:t}=await rt(()=>import("./erDiagram-f6946109-z4VASuEu.js"),__vite__mapDeps([17,6,12,13,14,2,3]));return{id:Fl,diagram:t}},nb={id:Fl,detector:ib,loader:rb},ob=nb,Ol="gitGraph",sb=t=>t.match(/^\s*gitGraph/)!==null,ab=async()=>{const{diagram:t}=await rt(()=>import("./gitGraphDiagram-1e960c50-nR2fIRcx.js"),__vite__mapDeps([18,2,3]));return{id:Ol,diagram:t}},lb={id:Ol,detector:sb,loader:ab},cb=lb,Il="gantt",hb=t=>t.match(/^\s*gantt/)!==null,ub=async()=>{const{diagram:t}=await rt(()=>import("./ganttDiagram-7ce12d6b-bNEEGiE3.js"),__vite__mapDeps([19,2,3,20,21]));return{id:Il,diagram:t}},db={id:Il,detector:hb,loader:ub},fb=db,Ml="info",pb=t=>t.match(/^\s*info/)!==null,gb=async()=>{const{diagram:t}=await rt(()=>import("./infoDiagram-264bed3e-S8LyFZ95.js"),__vite__mapDeps([22,2,3]));return{id:Ml,diagram:t}},mb={id:Ml,detector:pb,loader:gb},_b=mb,$l="pie",yb=t=>t.match(/^\s*pie/)!==null,bb=async()=>{const{diagram:t}=await rt(()=>import("./pieDiagram-157505fe-K3QYu1_A.js"),__vite__mapDeps([23,21,13,14,24,2,3]));return{id:$l,diagram:t}},Cb={id:$l,detector:yb,loader:bb},xb=Cb,Dl="quadrantChart",Tb=t=>t.match(/^\s*quadrantChart/)!==null,Sb=async()=>{const{diagram:t}=await rt(()=>import("./quadrantDiagram-fd70f2d0-9W_l-w0k.js"),__vite__mapDeps([25,20,21,2,3]));return{id:Dl,diagram:t}},kb={id:Dl,detector:Tb,loader:Sb},vb=kb,Nl="requirement",wb=t=>t.match(/^\s*requirement(Diagram)?/)!==null,Bb=async()=>{const{diagram:t}=await rt(()=>import("./requirementDiagram-19c99588-nu0kgzn5.js"),__vite__mapDeps([26,6,12,13,14,2,3]));return{id:Nl,diagram:t}},Eb={id:Nl,detector:wb,loader:Bb},Ab=Eb,Rl="sequence",Lb=t=>t.match(/^\s*sequenceDiagram/)!==null,Fb=async()=>{const{diagram:t}=await rt(()=>import("./sequenceDiagram-5dfd0049-6G3skaqL.js"),__vite__mapDeps([27,1,15,2,3]));return{id:Rl,diagram:t}},Ob={id:Rl,detector:Lb,loader:Fb},Ib=Ob,Pl="class",Mb=(t,e)=>{var i;return((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:t.match(/^\s*classDiagram/)!==null},$b=async()=>{const{diagram:t}=await rt(()=>import("./classDiagram-bc733c3b-nWtrl_HS.js"),__vite__mapDeps([28,29,6,11,12,13,14,2,3]));return{id:Pl,diagram:t}},Db={id:Pl,detector:Mb,loader:$b},Nb=Db,ql="classDiagram",Rb=(t,e)=>{var i;return t.match(/^\s*classDiagram/)!==null&&((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:t.match(/^\s*classDiagram-v2/)!==null},Pb=async()=>{const{diagram:t}=await rt(()=>import("./classDiagram-v2-8931bdaf-hkLGNE-q.js"),__vite__mapDeps([30,29,6,8,9,10,11,12,13,14,2,3]));return{id:ql,diagram:t}},qb={id:ql,detector:Rb,loader:Pb},zb=qb,zl="state",Wb=(t,e)=>{var i;return((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:t.match(/^\s*stateDiagram/)!==null},jb=async()=>{const{diagram:t}=await rt(()=>import("./stateDiagram-133e3642-C-DPoShl.js"),__vite__mapDeps([31,32,6,12,13,14,2,3]));return{id:zl,diagram:t}},Hb={id:zl,detector:Wb,loader:jb},Yb=Hb,Wl="stateDiagram",Ub=(t,e)=>{var i,r;return!!(t.match(/^\s*stateDiagram-v2/)!==null||t.match(/^\s*stateDiagram/)&&((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||t.match(/^\s*stateDiagram/)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},Gb=async()=>{const{diagram:t}=await rt(()=>import("./stateDiagram-v2-6371a76b-m56clzbO.js"),__vite__mapDeps([33,32,6,8,9,10,11,12,13,14,2,3]));return{id:Wl,diagram:t}},Vb={id:Wl,detector:Ub,loader:Gb},Xb=Vb,jl="journey",Kb=t=>t.match(/^\s*journey/)!==null,Zb=async()=>{const{diagram:t}=await rt(()=>import("./journeyDiagram-31be0096-pp8z6RK0.js"),__vite__mapDeps([34,1,24,14,2,3]));return{id:jl,diagram:t}},Jb={id:jl,detector:Kb,loader:Zb},Qb=Jb,tC=()=>"",eC=tC,iC=function(){},rC=(t,e,i)=>{try{A.debug(`Renering svg for syntax error -`);const r=Mt("#"+e),n=r.append("g");n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.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"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+i),r.attr("height",100),r.attr("width",500),r.attr("viewBox","768 0 912 512")}catch(r){A.error("Error while rendering info diagram"),A.error(Wy(r))}},Hl={setConf:iC,draw:rC},nC={db:{clear:()=>{}},styles:eC,renderer:Hl,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},oC=nC,Yl="flowchart-elk",sC=(t,e)=>{var i;return!!(t.match(/^\s*flowchart-elk/)||t.match(/^\s*flowchart|graph/)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="elk")},aC=async()=>{const{diagram:t}=await rt(()=>import("./flowchart-elk-definition-5082a990-_inAippy.js"),__vite__mapDeps([35,5,9,10,11,12,13,14,2,3,36]));return{id:Yl,diagram:t}},lC={id:Yl,detector:sC,loader:aC},cC=lC,Ul="timeline",hC=t=>t.match(/^\s*timeline/)!==null,uC=async()=>{const{diagram:t}=await rt(()=>import("./timeline-definition-5ed366f4-6Q7yW0Tk.js"),__vite__mapDeps([37,24,14,2,3]));return{id:Ul,diagram:t}},dC={id:Ul,detector:hC,loader:uC},fC=dC,Gl="mindmap",pC=t=>t.match(/^\s*mindmap/)!==null,gC=async()=>{const{diagram:t}=await rt(()=>import("./mindmap-definition-4fc2557c-YYRKFqOa.js"),__vite__mapDeps([38,10,2,3]));return{id:Gl,diagram:t}},mC={id:Gl,detector:pC,loader:gC},_C=mC;let vs=!1;const no=()=>{vs||(vs=!0,mr("error",oC,t=>t.toLowerCase().trim()==="error"),mr("---",{db:{clear:()=>{}},styles:{},renderer:{},parser:{parser:{yy:{}},parse:()=>{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")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),kl(Gy,zb,Nb,ob,fb,_b,xb,Ab,Ib,cC,eb,Zy,_C,fC,cb,Xb,Yb,Qb,vb))},yC=t=>t.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm,"");class Vl{constructor(e){var i,r;this.text=e,this.type="graph",this.text+=` -`;const n=Jt();try{this.type=Nr(e,n)}catch(a){this.type="error",this.detectError=a}const s=eo(this.type);A.debug("Type "+this.type),this.db=s.db,(r=(i=this.db).clear)==null||r.call(i),this.renderer=s.renderer,this.parser=s.parser;const o=this.parser.parse.bind(this.parser);this.parser.parse=a=>o(yC(G_(a,this.db))),this.parser.parser.yy=this.db,s.init&&(s.init(n),A.info("Initialized diagram "+this.type,n)),this.parse()}parse(){var e,i;if(this.detectError)throw this.detectError;(i=(e=this.db).clear)==null||i.call(e),this.parser.parse(this.text)}async render(e,i){await this.renderer.draw(this.text,e,i,this)}getParser(){return this.parser}getType(){return this.type}}const oo=async t=>{const e=Nr(t,Jt());try{eo(e)}catch{const r=yy(e);if(!r)throw new Sl(`Diagram ${e} not found.`);const{id:n,diagram:s}=await r();mr(n,s)}return new Vl(t)};let En=[];const W1=t=>{En.push(t)},bC=()=>{En.forEach(t=>{t()}),En=[]},CC="graphics-document document";function xC(t,e){t.attr("role",CC),Vi(e)||t.attr("aria-roledescription",e)}function TC(t,e,i,r){if(t.insert!==void 0)if(e||i){if(i){const n="chart-desc-"+r;t.attr("aria-describedby",n),t.insert("desc",":first-child").attr("id",n).text(i)}if(e){const n="chart-title-"+r;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}else return}const Xl=["graph","flowchart","flowchart-v2","flowchart-elk","stateDiagram","stateDiagram-v2"],SC=5e4,kC="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",vC="sandbox",wC="loose",BC="http://www.w3.org/2000/svg",EC="http://www.w3.org/1999/xlink",AC="http://www.w3.org/1999/xhtml",LC="100%",FC="100%",OC="border:0;margin:0;",IC="margin:0",MC="allow-top-navigation-by-user-activation allow-popups",$C='The "iframe" tag is not supported by your browser.',DC=["foreignobject"],NC=["dominant-baseline"];async function RC(t,e){no();try{(await oo(t)).parse()}catch(i){if(e!=null&&e.suppressErrors)return!1;throw i}return!0}const PC=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},qC=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},ws=(t,e,i=[])=>` -.${t} ${e} { ${i.join(" !important; ")} !important; }`,zC=(t,e,i={})=>{var r;let n="";if(t.themeCSS!==void 0&&(n+=` -${t.themeCSS}`),t.fontFamily!==void 0&&(n+=` -:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(n+=` -:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!Vi(i)&&Xl.includes(e)){const l=t.htmlLabels||((r=t.flowchart)==null?void 0:r.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const c in i){const h=i[c];Vi(h.styles)||l.forEach(u=>{n+=ws(h.id,u,h.styles)}),Vi(h.textStyles)||(n+=ws(h.id,"tspan",h.textStyles))}}return n},WC=(t,e,i,r)=>{const n=zC(t,e,i),s=oy(e,n,t.themeVariables);return xn(Tg(`${r}{${s}}`),kg)},jC=(t="",e,i)=>{let r=t;return!i&&!e&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=qC(r),r=r.replace(/
    /g,"
    "),r},HC=(t="",e)=>{const i=e?e.viewBox.baseVal.height+"px":FC,r=btoa(''+t+"");return``},Bs=(t,e,i,r,n)=>{const s=t.append("div");s.attr("id",i),r&&s.attr("style",r);const o=s.append("svg").attr("id",e).attr("width","100%").attr("xmlns",BC);return n&&o.attr("xmlns:xlink",n),o.append("g"),t};function Es(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const YC=(t,e,i,r)=>{var n,s,o;(n=t.getElementById(e))==null||n.remove(),(s=t.getElementById(i))==null||s.remove(),(o=t.getElementById(r))==null||o.remove()},UC=async function(t,e,i){var r,n,s,o;no(),pr();const a=Zi.detectInit(e);a&&(qe(a),ul(a));const l=Jt();A.debug(l),e.length>((l==null?void 0:l.maxTextSize)??SC)&&(e=kC),e=e.replace(/\r\n?/g,` -`),e=e.replace(/<(\w+)([^>]*)>/g,(L,w,F)=>"<"+w+F.replace(/="([^"]*)"/g,"='$1'")+">");const c="#"+t,h="i"+t,u="#"+h,p="d"+t,d="#"+p;let m=Mt("body");const _=l.securityLevel===vC,C=l.securityLevel===wC,$=l.fontFamily;if(i!==void 0){if(i&&(i.innerHTML=""),_){const L=Es(Mt(i),h);m=Mt(L.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=Mt(i);Bs(m,t,p,`font-family: ${$}`,EC)}else{if(YC(document,t,p,h),_){const L=Es(Mt("body"),h);m=Mt(L.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=Mt("body");Bs(m,t,p)}e=PC(e);let y,E;try{y=await oo(e)}catch(L){y=new Vl("error"),E=L}const W=m.select(d).node(),x=y.type,j=W.firstChild,U=j.firstChild,vt=Xl.includes(x)?y.renderer.getClasses(e,y):{},Ct=WC(l,x,vt,c),z=document.createElement("style");z.innerHTML=Ct,j.insertBefore(z,U);try{await y.renderer.draw(e,t,ks,y)}catch(L){throw Hl.draw(e,t,ks),L}const R=m.select(`${d} svg`),it=(n=(r=y.db).getAccTitle)==null?void 0:n.call(r),V=(o=(s=y.db).getAccDescription)==null?void 0:o.call(s);VC(x,R,it,V),m.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",AC);let v=m.select(d).node().innerHTML;if(A.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),v=jC(v,_,Ua(l.arrowMarkerAbsolute)),_){const L=m.select(d+" svg").node();v=HC(v,L)}else C||(v=lr.sanitize(v,{ADD_TAGS:DC,ADD_ATTR:NC}));if(bC(),E)throw E;const S=Mt(_?u:d).node();return S&&"remove"in S&&S.remove(),{svg:v,bindFunctions:y.db.bindFunctions}};function GC(t={}){var e;t!=null&&t.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),X_(t),t!=null&&t.theme&&t.theme in Kt?t.themeVariables=Kt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Kt.default.getThemeVariables(t.themeVariables));const i=typeof t=="object"?V_(t):cl();Gn(i.logLevel),no()}function VC(t,e,i,r){xC(e,t),TC(e,i,r,e.attr("id"))}const be=Object.freeze({render:UC,parse:RC,parseDirective:xl,getDiagramFromText:oo,initialize:GC,getConfig:Jt,setConfig:Z_,getSiteConfig:cl,updateSiteConfig:K_,reset:()=>{pr()},globalReset:()=>{pr(pi)},defaultConfig:pi});Gn(Jt().logLevel);pr(Jt());const XC=(t,e,i)=>{A.warn(t),Bl(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},Kl=async function(t={querySelector:".mermaid"}){try{await KC(t)}catch(e){if(Bl(e)&&A.error(e.str),yt.parseError&&yt.parseError(e),!t.suppressErrors)throw A.error("Use the suppressErrors option to suppress these errors"),e}},KC=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const r=be.getConfig();A.debug(`${t?"":"No "}Callback function found`);let n;if(i)n=i;else if(e)n=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");A.debug(`Found ${n.length} diagrams`),(r==null?void 0:r.startOnLoad)!==void 0&&(A.debug("Start On Load: "+(r==null?void 0:r.startOnLoad)),be.updateSiteConfig({startOnLoad:r==null?void 0:r.startOnLoad}));const s=new Zi.initIdGenerator(r.deterministicIds,r.deterministicIDSeed);let o;const a=[];for(const l of Array.from(n)){A.info("Rendering diagram: "+l.id);/*! Check if previously processed */if(l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const c=`mermaid-${s.next()}`;o=l.innerHTML,o=Ac(Zi.entityDecode(o)).trim().replace(//gi,"
    ");const h=Zi.detectInit(o);h&&A.debug("Detected early reinit: ",h);try{const{svg:u,bindFunctions:p}=await tc(c,o,l);l.innerHTML=u,t&&await t(c),p&&p(l)}catch(u){XC(u,a,yt.parseError)}}if(a.length>0)throw a[0]},Zl=function(t){be.initialize(t)},ZC=async function(t,e,i){A.warn("mermaid.init is deprecated. Please use run instead."),t&&Zl(t);const r={postRenderCallback:i,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await Kl(r)},JC=async(t,{lazyLoad:e=!0}={})=>{kl(...t),e===!1&&await _y()},Jl=function(){if(yt.startOnLoad){const{startOnLoad:t}=be.getConfig();t&&yt.run().catch(e=>A.error("Mermaid failed to initialize",e))}};if(typeof document<"u"){/*! - * Wait for document loaded before starting the execution - */window.addEventListener("load",Jl,!1)}const QC=function(t){yt.parseError=t},br=[];let ln=!1;const Ql=async()=>{if(!ln){for(ln=!0;br.length>0;){const t=br.shift();if(t)try{await t()}catch(e){A.error("Error executing queue",e)}}ln=!1}},t1=async(t,e)=>new Promise((i,r)=>{const n=()=>new Promise((s,o)=>{be.parse(t,e).then(a=>{s(a),i(a)},a=>{var l;A.error("Error parsing",a),(l=yt.parseError)==null||l.call(yt,a),o(a),r(a)})});br.push(n),Ql().catch(r)}),tc=(t,e,i)=>new Promise((r,n)=>{const s=()=>new Promise((o,a)=>{be.render(t,e,i).then(l=>{o(l),r(l)},l=>{var c;A.error("Error parsing",l),(c=yt.parseError)==null||c.call(yt,l),a(l),n(l)})});br.push(s),Ql().catch(n)}),yt={startOnLoad:!0,mermaidAPI:be,parse:t1,render:tc,init:ZC,run:Kl,registerExternalDiagrams:JC,initialize:Zl,parseError:void 0,contentLoaded:Jl,setParseErrorHandler:QC,detectType:Nr},He=t=>{t=i1(t);const e=t.replace(/#(\d+);/g,"&#$1;").replace(/#([a-z]+);/g,"&$1;"),i=document.createElement("textarea");return i.innerHTML=e,i.value},Ie=t=>{const e=t.getAttribute("transform"),i=e==null?void 0:e.match(/translate\(([ \d.-]+),\s*([\d.-]+)\)/);let r=0,n=0;return i&&(r=Number(i[1]),n=Number(i[2])),{transformX:r,transformY:n}},e1=t=>{let e=t;return e=e.replace(/style.*:\S*#.*;/g,i=>i.substring(0,i.length-1)),e=e.replace(/classDef.*:\S*#.*;/g,i=>i.substring(0,i.length-1)),e=e.replace(/#\w+;/g,i=>{const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?`fl°°${r}¶ß`:`fl°${r}¶ß`}),e},i1=function(t){return t.replace(/fl°°/g,"#").replace(/fl°/g,"&").replace(/¶ß/g,";")},ec=(t,e={x:0,y:0})=>{if(t.tagName.toLowerCase()!=="path")throw new Error(`Invalid input: Expected an HTMLElement of tag "path", got ${t.tagName}`);const i=t.getAttribute("d");if(!i)throw new Error('Path element does not contain a "d" attribute');const r=i.split(/(?=[LM])/),n=r[0].substring(1).split(",").map(a=>parseFloat(a)),s=r[r.length-1].substring(1).split(",").map(a=>parseFloat(a)),o=r.map(a=>{const l=a.substring(1).split(",").map(c=>parseFloat(c));return{x:l[0],y:l[1]}}).filter((a,l,c)=>{if(l===c.length-1)return!0;const h=c[l-1];return l===0||a.x!==h.x&&a.y!==h.y}).map(a=>({x:a.x+e.x,y:a.y+e.y}));return{startX:n[0]+e.x,startY:n[1]+e.y,endX:s[0]+e.x,endY:s[1]+e.y,reflectionPoints:o}},r1=(t,e)=>{const i=t.nodes.map(a=>a.startsWith("flowchart-")?a.split("-")[1]:a),r=e.querySelector(`[id='${t.id}']`);if(!r)throw new Error("SubGraph element not found");const n=so(r,e),s=r.getBBox(),o={width:s.width,height:s.height};return t.classes=void 0,t.dir=void 0,{...t,nodeIds:i,...n,...o,text:He(t.title)}},n1=(t,e)=>{var u,p,d;const i=e.querySelector(`[id*="flowchart-${t.id}-"]`);if(!i)return;let r;((u=i.parentElement)==null?void 0:u.tagName.toLowerCase())==="a"&&(r=i.parentElement.getAttribute("xlink:href"));const n=so(r?i.parentElement:i,e),s=i.getBBox(),o={width:s.width,height:s.height},a=(p=i.querySelector(".label-container"))==null?void 0:p.getAttribute("style"),l=(d=i.querySelector(".label"))==null?void 0:d.getAttribute("style"),c={};a==null||a.split(";").forEach(m=>{if(!m)return;const _=m.split(":")[0].trim(),C=m.split(":")[1].trim();c[_]=C});const h={};return l==null||l.split(";").forEach(m=>{if(!m)return;const _=m.split(":")[0].trim(),C=m.split(":")[1].trim();h[_]=C}),{id:t.id,labelType:t.labelType,text:He(t.text),type:t.type,link:r||void 0,...n,...o,containerStyle:c,labelStyle:h}},o1=(t,e)=>{const i=e.querySelector(`[id*="L-${t.start}-${t.end}"]`);if(!i)throw new Error("Edge element not found");const r=so(i,e),n=ec(i,r);return t.length=void 0,{...t,...n,text:He(t.text)}},so=(t,e)=>{var l;if(!t)throw new Error("Element not found");let i=(l=t.parentElement)==null?void 0:l.parentElement;const r=t.childNodes[0];let n={x:0,y:0};if(r){const{transformX:c,transformY:h}=Ie(r),u=r.getBBox();n={x:Number(r.getAttribute("x"))||c+u.x||0,y:Number(r.getAttribute("y"))||h+u.y||0}}const{transformX:s,transformY:o}=Ie(t),a={x:s+n.x,y:o+n.y};for(;i&&i.id!==e.id;){if(i.classList.value==="root"&&i.hasAttribute("transform")){const{transformX:c,transformY:h}=Ie(i);a.x+=c,a.y+=h}i=i.parentElement}return a},s1=(t,e)=>{t.parse();const i=t.parser.yy,r=i.getVertices();Object.keys(r).forEach(o=>{r[o]=n1(r[o],e)});const n=i.getEdges().map(o=>o1(o,e));return{type:"flowchart",subGraphs:i.getSubGraphs().map(o=>r1(o,e)),vertices:r,edges:n}},a1=(t,e)=>{const i={};e!=null&&e.label&&(i.label={text:He(e.label),fontSize:16});const r=t.tagName;if(r==="line")i.startX=Number(t.getAttribute("x1")),i.startY=Number(t.getAttribute("y1")),i.endX=Number(t.getAttribute("x2")),i.endY=Number(t.getAttribute("y2"));else if(r==="path"){const n=t.getAttribute("d");if(!n)throw new Error('Path element does not contain a "d" attribute');const s=n.split(/(?=[LC])/),o=s[0].substring(1).split(",").map(c=>parseFloat(c)),a=[];s.forEach(c=>{const h=c.substring(1).trim().split(" ").map(u=>{const[p,d]=u.split(",");return[parseFloat(p)-o[0],parseFloat(d)-o[1]]});a.push(...h)});const l=a[a.length-1];i.startX=o[0],i.startY=o[1],i.endX=l[0],i.endY=l[1],i.points=a}return e!=null&&e.label&&(i.startY=i.startY-10,i.endY=i.endY-10),i.strokeColor=t.getAttribute("stroke"),i.strokeWidth=Number(t.getAttribute("stroke-width")),i.type="arrow",i.strokeStyle=(e==null?void 0:e.strokeStyle)||"solid",i.startArrowhead=(e==null?void 0:e.startArrowhead)||null,i.endArrowhead=(e==null?void 0:e.endArrowhead)||null,i},ic=(t,e,i,r,n)=>{const s={};return s.type="arrow",s.startX=t,s.startY=e,s.endX=i,s.endY=r,Object.assign(s,{...n}),s},An=(t,e,i,r)=>({type:"text",x:t,y:e,text:i,width:(r==null?void 0:r.width)||20,height:(r==null?void 0:r.height)||20,fontSize:(r==null?void 0:r.fontSize)||Ln,id:r==null?void 0:r.id,groupId:r==null?void 0:r.groupId,metadata:r==null?void 0:r.metadata}),rc=(t,e,i)=>{const r={},n=Number(t.getAttribute("x")),s=Number(t.getAttribute("y"));r.type="text",r.text=He(e),i!=null&&i.id&&(r.id=i.id),i!=null&&i.groupId&&(r.groupId=i.groupId);const o=t.getBBox();r.width=o.width,r.height=o.height,r.x=n-o.width/2,r.y=s;const a=parseInt(getComputedStyle(t).fontSize);return r.fontSize=a,r},Pt=(t,e,i={})=>{const r={};r.type=e;const{label:n,subtype:s,id:o,groupId:a}=i;r.id=o,a&&(r.groupId=a),n&&(r.label={text:He(n.text),fontSize:16,verticalAlign:n==null?void 0:n.verticalAlign});const l=t.getBBox();switch(r.x=l.x,r.y=l.y,r.width=l.width,r.height=l.height,r.subtype=s,s){case"highlight":const c=t.getAttribute("fill");c&&(r.bgColor=c);break;case"note":r.strokeStyle="dashed";break}return r},gi=(t,e,i,r,n,s)=>{const o={};return o.startX=e,o.startY=i,o.endX=r,s!=null&&s.groupId&&(o.groupId=s.groupId),s!=null&&s.id&&(o.id=s.id),o.endY=n,o.strokeColor=t.getAttribute("stroke"),o.strokeWidth=Number(t.getAttribute("stroke-width")),o.type="line",o},As={0:"SOLID",1:"DOTTED",3:"SOLID_CROSS",4:"DOTTED_CROSS",5:"SOLID_OPEN",6:"DOTTED_OPEN",24:"SOLID_POINT",25:"DOTTED_POINT"},$t={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},l1=t=>{let e;switch(t){case $t.SOLID:case $t.SOLID_CROSS:case $t.SOLID_OPEN:case $t.SOLID_POINT:e="solid";break;case $t.DOTTED:case $t.DOTTED_CROSS:case $t.DOTTED_OPEN:case $t.DOTTED_POINT:e="dotted";break;default:e="solid";break}return e},c1=(t,e)=>{var r,n;if(!!((r=t.nextElementSibling)!=null&&r.classList.contains("sequenceNumber"))){const s=(n=t.nextElementSibling)==null?void 0:n.textContent;if(!s)throw new Error("sequence number not present");const o=30,a=o/2,l=10,c={type:"rectangle",x:e.startX-l,y:e.startY-a,label:{text:s,fontSize:14},bgColor:"#e9ecef",height:o,subtype:"sequence"};Object.assign(e,{sequenceNumber:c})}},Ls=(t,e,i)=>{if(!t)throw"root node not found";const r=Xt(),n=Array.from(t.children),s=[];return n.forEach((o,a)=>{const l=`${i==null?void 0:i.id}-${a}`;let c;switch(o.tagName){case"line":const h=Number(o.getAttribute("x1")),u=Number(o.getAttribute("y1")),p=Number(o.getAttribute("x2")),d=Number(o.getAttribute("y2"));c=gi(o,h,u,p,d,{groupId:r,id:l});break;case"text":c=rc(o,e,{groupId:r,id:l});break;case"circle":c=Pt(o,"ellipse",{label:o.textContent?{text:o.textContent}:void 0,groupId:r,id:l});default:c=Pt(o,gc[o.tagName],{label:o.textContent?{text:o.textContent}:void 0,groupId:r,id:l})}s.push(c)}),s},h1=(t,e)=>{const i=Array.from(e.querySelectorAll(".actor")).filter(o=>o.tagName==="text").map(o=>o.parentElement),r=[],n=[],s=Object.keys(t).length;return Object.values(t).forEach((o,a)=>{const l=i[a],c=i[s+a];if(!l||!c)throw"root not found";const h=o.description;if(o.type==="participant"){const u=Pt(l.firstChild,"rectangle",{id:`${o.name}-top`,label:{text:h},subtype:"actor"});if(!u)throw"Top Node element not found!";r.push([u]);const p=Pt(c.firstChild,"rectangle",{id:`${o.name}-bottom`,label:{text:h},subtype:"actor"});r.push([p]);const d=l.previousElementSibling;if((d==null?void 0:d.tagName)!=="line")throw"Line not found";const m=Number(d.getAttribute("x1"));if(!u.height)throw"Top node element height is null";const _=u.y+u.height,C=p.y,$=Number(d.getAttribute("x2")),y=gi(d,m,_,$,C);n.push(y)}else if(o.type==="actor"){const u=Ls(l,h,{id:`${o.name}-top`});r.push(u);const p=Ls(c,h,{id:`${o.name}-bottom`});r.push(p);const d=l.previousElementSibling;if((d==null?void 0:d.tagName)!=="line")throw"Line not found";const m=Number(d.getAttribute("x1")),_=Number(d.getAttribute("y1")),C=Number(d.getAttribute("x2")),$=p.find(y=>y.type==="ellipse");if($){const y=$.y,E=gi(d,m,_,C,y);n.push(E)}}}),{nodes:r,lines:n}},u1=(t,e)=>{const i=[],r=Array.from(e.querySelectorAll('[class*="messageLine"]')),n=Object.keys(As),s=t.filter(o=>n.includes(o.type.toString()));return r.forEach((o,a)=>{const l=s[a],c=As[l.type],h=a1(o,{label:l==null?void 0:l.message,strokeStyle:l1(l.type),endArrowhead:c==="SOLID_OPEN"||c==="DOTTED_OPEN"?null:"arrow"});c1(o,h),i.push(h)}),i},d1=(t,e)=>{const i=Array.from(e.querySelectorAll(".note")).map(s=>s.parentElement),r=t.filter(s=>s.type===$t.NOTE),n=[];return i.forEach((s,o)=>{if(!s)return;const a=s.firstChild,l=r[o].message,c=Pt(a,"rectangle",{label:{text:l},subtype:"note"});n.push(c)}),n},f1=t=>{const e=Array.from(t.querySelectorAll("[class*=activation]")),i=[];return e.forEach(r=>{const n=Pt(r,"rectangle",{label:{text:""},subtype:"activation"});i.push(n)}),i},p1=(t,e)=>{const i=Array.from(e.querySelectorAll(".loopLine")),r=[],n=[],s=[];i.forEach(h=>{const u=Number(h.getAttribute("x1")),p=Number(h.getAttribute("y1")),d=Number(h.getAttribute("x2")),m=Number(h.getAttribute("y2")),_=gi(h,u,p,d,m);_.strokeStyle="dotted",_.strokeColor="#adb5bd",_.strokeWidth=2,r.push(_)});const o=Array.from(e.querySelectorAll(".loopText")),a=t.filter(h=>h.type===$t.CRITICAL_START).map(h=>h.message);o.forEach(h=>{var _;const u=h.textContent||"",p=rc(h,u),d=((_=u.match(/\[(.*?)\]/))==null?void 0:_[1])||"";a.includes(d)&&(p.x+=16),n.push(p)});const l=Array.from(e==null?void 0:e.querySelectorAll(".labelBox")),c=Array.from(e==null?void 0:e.querySelectorAll(".labelText"));return l.forEach((h,u)=>{var m;const p=((m=c[u])==null?void 0:m.textContent)||"",d=Pt(h,"rectangle",{label:{text:p}});d.strokeColor="#adb5bd",d.bgColor="#e9ecef",d.width=void 0,s.push(d)}),{lines:r,texts:n,nodes:s}},g1=t=>{const e=Array.from(t.querySelectorAll(".rect")).filter(r=>{var n;return((n=r.parentElement)==null?void 0:n.tagName)!=="g"}),i=[];return e.forEach(r=>{const n=Pt(r,"rectangle",{label:{text:""},subtype:"highlight"});i.push(n)}),i},m1=(t,e)=>{t.parse();const i=t.parser.yy,r=[],n=i.getBoxes(),s=g1(e),o=i.getActors(),{nodes:a,lines:l}=h1(o,e),c=i.getMessages(),h=u1(c,e),u=d1(c,e),p=f1(e),d=p1(c,e);return r.push(s),r.push(...a),r.push(u),r.push(p),{type:"sequence",lines:l,arrows:h,nodes:r,loops:d,groups:n}},Ni={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},Fs={LINE:0,DOTTED_LINE:1},_1=t=>{let e;switch(t){case Fs.LINE:e="solid";break;case Fs.DOTTED_LINE:e="dotted";break;default:e="solid"}return e},Os=t=>{let e;switch(t){case Ni.AGGREGATION:e="diamond_outline";break;case Ni.COMPOSITION:e="diamond";break;case Ni.EXTENSION:e="triangle_outline";break;case"none":e=null;break;case Ni.DEPENDENCY:default:e="arrow";break}return e},Is=(t,e)=>{const i=[],r=[],n=[];return Object.values(t).forEach(s=>{var _;const{domId:o,id:a}=s,l=Xt(),c=e.querySelector(`[id*=classId-${a}]`);if(!c)throw Error(`DOM Node with id ${o} not found`);const{transformX:h,transformY:u}=Ie(c),p=Pt(c.firstChild,"rectangle",{id:a,groupId:l});p.x+=h,p.y+=u,p.metadata={classId:a},i.push(p),Array.from(c.querySelectorAll(".divider")).forEach(C=>{const $=Number(C.getAttribute("x1")),y=Number(C.getAttribute("y1")),E=Number(C.getAttribute("x2")),W=Number(C.getAttribute("y2")),x=gi(C,$,y,E,W,{groupId:l,id:Xt()});x.startX+=h,x.startY+=u,x.endX+=h,x.endY+=u,x.metadata={classId:a},r.push(x)});const m=(_=c.querySelector(".label"))==null?void 0:_.children;if(!m)throw"label nodes not found";Array.from(m).forEach(C=>{const $=C.textContent;if(!$)return;const y=Xt(),{transformX:E,transformY:W}=Ie(C),x=C.getBBox(),j=10,U=An(h+E,u+W+j,$,{width:x.width,height:x.height,id:y,groupId:l,metadata:{classId:y}});n.push(U)})}),{nodes:i,lines:r,text:n}},y1=(t,e,i,r)=>{var a;const n=(a=i.querySelector(".edgePaths"))==null?void 0:a.children;if(!n)throw new Error("No Edges found!");const s=[],o=[];return t.forEach((l,c)=>{const{id1:h,id2:u,relation:p}=l,d=e.find(k=>k.id===h),m=e.find(k=>k.id===u),_=_1(p.lineType),C=Os(p.type1),$=Os(p.type2),y=ec(n[c]),{startX:E,startY:W,endX:x,endY:j}=y,U=ic(E,W,x,j,{strokeStyle:_,startArrowhead:C,endArrowhead:$,label:l.title?{text:l.title}:void 0,start:{type:"rectangle",id:d.id},end:{type:"rectangle",id:m.id}});s.push(U);const{relationTitle1:vt,relationTitle2:Ct}=l,z=20,R=15,it=15;let V,v;if(vt&&vt!=="none"){switch(r){case"TB":V=E-z,xE&&(V+=it),v=W-R;break;case"LR":V=E+z,v=W+R,j>W&&(v+=it);break;case"RL":V=E-z,v=W-R,W>j&&(v-=it);break;default:V=E-z,v=W+R}const k=An(V,v,vt,{fontSize:16});o.push(k)}if(Ct&&Ct!=="none"){switch(r){case"TB":V=x+z,xE&&(V-=it),v=j+R;break;case"LR":V=x-z,v=j-R,j>W&&(v-=it);break;case"RL":V=x+z,v=j+R,W>j&&(v+=it);break;default:V=x+z,v=j-R}const k=An(V,v,Ct,{fontSize:16});o.push(k)}}),{arrows:s,text:o}},b1=(t,e,i)=>{const r=[],n=[];return t.forEach(s=>{const{id:o,text:a,class:l}=s,c=e.querySelector(`#${o}`);if(!c)throw new Error(`Node with id ${o} not found!`);const{transformX:h,transformY:u}=Ie(c),p=c.firstChild,d=Pt(p,"rectangle",{id:o,subtype:"note",label:{text:a}});if(Object.assign(d,{x:d.x+h,y:d.y+u}),r.push(d),l){const m=i.find(W=>W.id===l);if(!m)throw new Error(`class node with id ${l} not found!`);const _=d.x+(d.width||0)/2,C=d.y+(d.height||0),$=_,y=m.y,E=ic(_,C,$,y,{strokeStyle:"dotted",startArrowhead:null,endArrowhead:null,start:{id:d.id,type:"rectangle"},end:{id:m.id,type:"rectangle"}});n.push(E)}}),{notes:r,connectors:n}},C1=(t,e)=>{t.parse();const i=t.parser.yy,r=i.getDirection(),n=[],s=[],o=[],a=[],l=i.getNamespaces();Object.keys(l).length&&Object.values(l).forEach(_=>{const C=Is(_.classes,e);n.push(C.nodes),s.push(...C.lines),o.push(...C.text),a.push(...C.nodes)});const c=i.getClasses();if(Object.keys(c).length){const _=Is(c,e);n.push(_.nodes),s.push(..._.lines),o.push(..._.text),a.push(..._.nodes)}const h=i.getRelations(),{arrows:u,text:p}=y1(h,a,e,r),{notes:d,connectors:m}=b1(i.getNotes(),e,a);return n.push(d),u.push(...m),o.push(...p),{type:"class",nodes:n,lines:s,arrows:u,text:o,namespaces:l}},x1=t=>{const e=t.querySelector("svg");if(!e)throw new Error("SVG element not found");const i=e.getBoundingClientRect(),r=i.width,n=i.height;e.setAttribute("width",`${r}`),e.setAttribute("height",`${n}`);const s="image/svg+xml",o=unescape(encodeURIComponent(e.outerHTML)),l=`data:image/svg+xml;base64,${btoa(o)}`;return{type:"graphImage",mimeType:s,dataURL:l,width:r,height:n}},T1=async t=>{yt.initialize(mc);const e=await yt.mermaidAPI.getDiagramFromText(e1(t)),{svg:i}=await yt.render("mermaid-to-excalidraw",t),r=document.createElement("div");r.setAttribute("style","opacity: 0; position: relative; z-index: -1;"),r.innerHTML=i,r.id="mermaid-diagram",document.body.appendChild(r);let n;switch(e.type){case"flowchart-v2":{n=s1(e,r);break}case"sequence":{n=m1(e,r);break}case"classDiagram":{n=C1(e,r);break}default:n=x1(r)}return r.remove(),n},S1=async(t,e={})=>{const i=await T1(t);return Ec(i,e)},j1=Object.freeze(Object.defineProperty({__proto__:null,parseMermaidToExcalidraw:S1},Symbol.toStringTag,{value:"Module"}));export{Rt as $,Un as A,bi as B,Xg as C,Oa as D,ze as E,Gp as F,Zg as G,Gg as H,im as I,Om as J,Fg as K,Pa as L,Ci as M,wg as N,We as O,hr as P,xe as Q,ae as R,cr as S,Wg as T,ds as U,Em as V,za as W,Ia as X,kn as Y,Vi as Z,N as _,yl as a,ii as a0,bt as a1,Ks as a2,Pc as a3,qC as a4,Xd as a5,Ac as a6,Ym as a7,Z_ as a8,Tl as a9,D1 as aA,$1 as aB,L1 as aC,Zm as aD,r0 as aE,W1 as aF,by as aG,Oy as aH,ay as aI,xl as aJ,yi as aK,I as aL,D as aM,j1 as aN,dy as aa,My as ab,Mn as ac,Zs as ad,gt as ae,_i as af,Tu as ag,ta as ah,w1 as ai,Fc as aj,$n as ak,ie as al,ai as am,Mo as an,Au as ao,M1 as ap,ro as aq,Pn as ar,A1 as as,O1 as at,zo as au,qo as av,I1 as aw,F1 as ax,B1 as ay,E1 as az,_l as b,Jt as c,di as d,ct as e,yr as f,ml as g,Mt as h,ey as i,Vn as j,Py as k,A as l,be as m,Ns as n,Ud as o,Fy as p,Ua as q,ky as r,gl as s,iy as t,pi as u,bl as v,Ny as w,Cl as x,Zi as y,pl as z}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["assets/c4Diagram-9cddb37f-N9kopixF.js","assets/svgDrawCommon-f26cad39-uSOEV6F1.js","assets/index-2K3MavtT.js","assets/index-4wu8EIXu.css","assets/flowDiagram-93327f21-bzemmV0w.js","assets/flowDb-6a57c1b4-o7QdmK-d.js","assets/layout-ewywu0M6.js","assets/styles-5f89df53-Cnw1EiWb.js","assets/index-a92ac404-gZDUZJdp.js","assets/edges-49ac43a2-VNwnN65b.js","assets/createText-3df630b5-oLWc-GwH.js","assets/svgDraw-0fcc813d-8P1J7hc8.js","assets/line-reZX-DPl.js","assets/array-Nw74a44z.js","assets/path-aUcfwwLI.js","assets/selectAll-ksDY_7eo.js","assets/flowDiagram-v2-476db779-kB7FwdKI.js","assets/erDiagram-f6946109-z4VASuEu.js","assets/gitGraphDiagram-1e960c50-nR2fIRcx.js","assets/ganttDiagram-7ce12d6b-bNEEGiE3.js","assets/linear-WA_JRKe7.js","assets/init-Hi12RPRh.js","assets/infoDiagram-264bed3e-S8LyFZ95.js","assets/pieDiagram-157505fe-K3QYu1_A.js","assets/arc-uMvMTTPz.js","assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js","assets/requirementDiagram-19c99588-nu0kgzn5.js","assets/sequenceDiagram-5dfd0049-6G3skaqL.js","assets/classDiagram-bc733c3b-nWtrl_HS.js","assets/styles-aefe6593-IaILeGot.js","assets/classDiagram-v2-8931bdaf-hkLGNE-q.js","assets/stateDiagram-133e3642-C-DPoShl.js","assets/styles-fa41df25-AN4ki2j_.js","assets/stateDiagram-v2-6371a76b-m56clzbO.js","assets/journeyDiagram-31be0096-pp8z6RK0.js","assets/flowchart-elk-definition-5082a990-_inAippy.js","assets/_commonjs-dynamic-modules-h-SxKiO4.js","assets/timeline-definition-5ed366f4-6Q7yW0Tk.js","assets/mindmap-definition-4fc2557c-YYRKFqOa.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} -//# sourceMappingURL=index-jpNTxDe4.js.map diff --git a/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js.map b/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js.map deleted file mode 100644 index 9e5bf16..0000000 --- a/excalidraw/excalidraw-app/build/assets/index-jpNTxDe4.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["DEFAULT_FONT_SIZE","SVG_TO_SHAPE_MAPPER","MERMAID_CONFIG","GraphConverter","converter","graph","options","VERTEX_TYPE","LABEL_STYLE_PROPERTY","CONTAINER_STYLE_PROPERTY","dist","removeMarkdown_1","removeMarkdown","markdown","output","e","MERMAID_EDGE_TYPE_MAPPER","computeExcalidrawArrowType","mermaidArrowType","getText","element","text","removeFontAwesomeIcons","input","fontAwesomeRegex","computeExcalidrawVertexStyle","style","excalidrawProperty","property","_a","computeExcalidrawVertexLabelStyle","computeGroupIds","tree","subGraph","nodeId","mapper","c","id","curr","groupIds","elementId","FlowchartToExcalidrawSkeletonConverter","elements","fontSize","getGroupIds","getParentId","containerElement","vertex","containerStyle","labelStyle","innerCircle","edge","startParentId","endParentId","startX","startY","reflectionPoints","points","point","arrowType","startVertex","endVertex","nanoid","size","byte","GraphImageConverter","imageId","width","height","imageElement","transformToExcalidrawLineSkeleton","line","lineElement","transformToExcalidrawTextSkeleton","textElement","transformToExcalidrawContainerSkeleton","extraProps","container","_b","_c","_d","transformToExcalidrawArrowSkeleton","arrow","arrowElement","SequenceToExcalidrawSkeletonConvertor","chart","activations","node","excalidrawElement","lines","texts","nodes","group","actorKeys","name","minX","minY","maxX","maxY","ele","hyphenIndex","actor","PADDING","groupRectX","groupRectY","groupRectWidth","groupRectHeight","groupRectId","groupRect","frameId","frameChildren","frame","classToExcalidrawSkeletonConvertor","namespace","classIds","children","chartElements","classId","childIds","graphToExcalidraw","dedent","templ","values","_i","strings","indentLengths","arr","str","matches","match","pattern_1","string","value","i","endentations","endentation","indentedValue","t","module","this","r","s","u","a","o","f","h","d","l","$","y","M","n","m","v","g","D","p","S","_","w","O","b","k","exports","invalidProtocolRegex","htmlEntitiesRegex","htmlCtrlEntityRegex","ctrlCharactersRegex","urlSchemeRegex","relativeFirstCharacters","isRelativeUrlWithoutProtocol","url","decodeHtmlCharacters","removedNullByte","dec","sanitizeUrl","sanitizedUrl","urlSchemeParseResults","urlScheme","noop","dispatch","Dispatch","parseTypenames","typenames","types","typename","callback","T","get","set","copy","type","that","args","xhtml","namespaces","prefix","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","subgroups","j","subgroup","subnode","Selection","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","childFirst","selection_selectChild","filter","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum","child","next","constant$1","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","nodeByKeyValue","keyValues","keyValue","selection_data","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","event","onRemove","on","onAdd","selection_on","dispatchEvent","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","min","max","hsl","m2","hsl2rgb","clamph","clampt","linear","exponential","hue","gamma","nogamma","interpolateRgb","rgbGamma","start","end","colorRgb","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","q","number","degrees","identity","decompose","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","index","timing","schedules","init","self","tween","stop","tick","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","resolve","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","abs","atan2","cos","sin","sqrt","epsilon","pi","halfPi","tau","acos","asin","Linear","curveLinear","Bump","bumpX","bumpY","Basis","curveBasis","BasisClosed","curveBasisClosed","BasisOpen","x0","y0","curveBasisOpen","Bundle","beta","dx","dy","curveBundle","custom","bundle","Cardinal","tension","curveCardinal","cardinal","CardinalClosed","curveCardinalClosed","CardinalOpen","curveCardinalOpen","x1","y1","x2","y2","CatmullRom","alpha","x23","y23","curveCatmullRom","catmullRom","CatmullRomClosed","curveCatmullRomClosed","CatmullRomOpen","curveCatmullRomOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","curveNatural","Step","curveStep","stepBefore","stepAfter","Transform","location","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","apply","construct","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","unconstruct","func","thisArg","_len","_key","_len2","_key2","addToSet","transformCaseFunc","_transformCaseFunc","lcElement","object","newObject","lookupGetter","prop","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","EXPRESSIONS","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","createDOMPurify","DOMPurify","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","doc","leadingWhitespace","dirtyPayload","body","_createIterator","_isClobbered","elm","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","content","_basicCustomElementTest","parentNode","childNodes","childCount","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","attributes","hookEvent","namespaceURI","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","tag","hookFunction","purify","Channel","channel","Lang","upper","lang","Unit","unit","Utils","DEC2HEX","TYPE","Type","Type$2","Channels","Channels$1","ChannelsReusable","Hex","length","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","Hex$1","HSL","charCode","isAlphaPercentage","HSL$1","Keyword","Keyword$1","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","RGB$1","Color$1","change","ch","change$1","rgba$1","luminance","luminance$1","isLight","isLight$1","isDark","isDark$1","adjustChannel","amount","amountCurrent","amountNext","adjustChannel$1","lighten","lighten$1","darken","darken$1","adjust","changes","adjust$1","mix","color1","color2","weight","r1","g1","b1","a1","r2","g2","b2","a2","weightScale","weightNormalized","alphaDelta","weight1","weight2","mix$1","invert","inverse","invert$1","freeGlobal","freeGlobal$1","freeSelf","root$1","Symbol","Symbol$2","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObject","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","coreJsData$1","maskSrcKey","uid","isMasked","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","getNative","nativeCreate","nativeCreate$1","hashClear","hashDelete","HASH_UNDEFINED","hashGet","hashHas","hashSet","Hash","entry","listCacheClear","eq","other","assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","Map$2","mapCacheClear","isKeyable","getMapData","map","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","from","trim","replace","replacement","indexof","search","charat","substr","begin","strlen","sizeof","append","column","position","character","characters","props","siblings","char","prev","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","rule","rules","rulesets","pseudo","declarations","offset","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","z","serialize","stringify","isPrototype","Ctor","proto","overArg","transform","arg","nativeKeys","nativeKeys$1","baseKeys","DataView","DataView$1","Promise","Promise$2","Set","Set$1","WeakMap","WeakMap$1","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","getTag$1","isObjectLike","argsTag","baseIsArguments","propertyIsEnumerable","isArguments","isArguments$1","isArray","isArray$1","MAX_SAFE_INTEGER","isLength","isArrayLike","stubFalse","freeExports","freeModule","moduleExports","Buffer","nativeIsBuffer","isBuffer","isBuffer$1","arrayTag","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","baseUnary","freeProcess","nodeUtil","nodeUtil$1","nodeIsTypedArray","isTypedArray","isTypedArray$1","isEmpty","LEVELS","log$1","_args","setLogLevel$1","level","numericLevel","dayjs","lineBreakRegex","getRows","breakToPlaceholder","removeScript","txt","sanitizeMore","config2","placeholderToBreak","sanitizeText$2","sanitizeTextOrArray","hasBreaks","splitBreaks","getUrl","useAbsolute","evaluate","val","getMax","newValues","getMin","parseGenericTypes","cleanedText","newCleanedText","common$1","mkBorder","col","darkMode","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","Theme$4","overrides","keys","getThemeVariables$4","userOverrides","theme2","Theme$3","getThemeVariables$3","Theme$2","getThemeVariables$2","Theme$1","getThemeVariables$1","Theme5","getThemeVariables","theme","config","keyify","obj","res","el","configKeys","defaultConfig$1","isNothing","subject","toArray","sequence2","target","source","sourceKeys","repeat","cycle","isNegativeZero","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception2","compact","where","message","YAMLException$1","reason","mark","exception","getLine","buffer","lineStart","lineEnd","maxLineLength","head","tail","maxHalfLength","padStart","makeSnippet","re","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","Type$1","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","collectType","type2","Schema$1","implicit","explicit","type$1","schema","seq","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","constructYamlInteger","isInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","representYamlTimestamp","timestamp","resolveYamlMerge","BASE64_MAP","resolveYamlBinary","code","idx","bitlen","constructYamlBinary","tailbits","representYamlBinary","isBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pair","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","state2","throwError","throwWarning","directiveHandlers","major","minor","handle","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","readNext","_pos","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator2","documents","load$1","loadAll_1","load_1","loader$j","FAILSAFE_SCHEMA","load","frontMatterRegex","extractFrontMatter","db","parsed","assignWithDepth","dst","src","depth","clobber","assignWithDepth$1","defaultConfig","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","sumOfDirectives","sanitize","tmpConfigFromInitialize","themeVariables","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig","getConfig$1","addDirective","directive2","reset","ConfigWarning","ConfigWarning2","issuedWarnings","issueWarning","warning","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","useMaxWidth","configureSvgSize","svgElem","setupGraphViewbox$1","padding","svgBounds","sWidth","sHeight","vBox","themes","getStyles$1","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","getStyles$2","title","diagramTitle","description","sanitizeText$1","clear","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","commonDb","commonDb$1","currentDirective","parseDirective$1","statement","handleDirective","error","directiveSanitizer","log","setLogLevel","getConfig","sanitizeText","setupGraphViewbox","getCommonDb","parseDirective","diagrams","registerDiagram","id2","diagram2","detector2","addDetector","getDiagram","UnknownDiagramError","directive$1","anyComment","detectors","detectType","registerLazyLoadedDiagrams","diagrams2","loader2","loadRegisteredDiagrams","failed","err","getDiagramLoader","ZERO_WIDTH_SPACE","d3CurveTypes","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","directive","directiveWithoutOpen","detectInit","inits","detectDirective","results","init2","commentWithoutDirectives","type22","isSubstringInArray","str2","interpolateToCurve","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","len","fnName","distance","p1","p2","traverseEdge","prevPoint","totalDistance","remainingDistance","center","vectorDistance","distanceRatio","calcLabelPosition","calcCardinalityPosition","isRelationTypePresent","initialPosition","angle","cardinalityPosition","calcTerminalLabelPosition","terminalMarkerSize","_points","getStylesFromArray","cnt","generateId","makeid","charactersLength","random","getTextObj","drawSimpleText","elem","textData","nText","_fontSizePx","parseFontSize","textElem","span","wrapLabel","label","maxWidth","words","completedLines","nextLine","word","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","currentLine","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","fontFamily","fontWeight","fontFamilies","dims","fontFamily2","cheight","dim","textObj","bBox","initIdGenerator","deterministic","seed","decoder","entityDecode","sanitizeCss","kArr","startCnt","endCnt","isDetailedError","getErrorMessage","insertTitle","cssClass","titleTopMargin","title2","bounds","fontSizeNumber","utils","version","id$i","detector$i","loader$i","__vitePreload","plugin$i","c4","id$h","detector$h","loader$h","plugin$h","flowchart","id$g","detector$g","loader$g","plugin$g","flowchartV2","id$f","detector$f","loader$f","plugin$f","er","id$e","detector$e","loader$e","plugin$e","git","id$d","detector$d","loader$d","plugin$d","gantt","id$c","detector$c","loader$c","plugin$c","info","id$b","detector$b","loader$b","plugin$b","pie","id$a","detector$a","loader$a","plugin$a","quadrantChart","id$9","detector$9","loader$9","plugin$9","requirement","id$8","detector$8","loader$8","plugin$8","sequence","id$7","detector$7","loader$7","plugin$7","classDiagram","id$6","detector$6","loader$6","plugin$6","classDiagramV2","id$5","detector$5","loader$5","plugin$5","state","id$4","detector$4","loader$4","plugin$4","stateV2","id$3","detector$3","loader$3","plugin$3","journey","getStyles","styles","setConf","draw","_text","mermaidVersion","errorRenderer","diagram","errorDiagram","id$2","detector$2","loader$2","plugin$2","flowchartElk","id$1","detector$1","loader$1","plugin$1","timeline","detector","loader","plugin","mindmap","hasLoadedDiagrams","addDiagrams","cleanupComments","Diagram","cnf","originalParse","text2","version2","getDiagramFromText","interactionFunctions","addFunction","attachFunctions","SVG_ROLE","setA11yDiagramInfo","diagramType","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","titleId","CLASSDEF_DIAGRAMS","MAX_TEXTLENGTH","MAX_TEXTLENGTH_EXCEEDED_MSG","SECURITY_LVL_SANDBOX","SECURITY_LVL_LOOSE","XMLNS_SVG_STD","XMLNS_XLINK_STD","XMLNS_XHTML_STD","IFRAME_WIDTH","IFRAME_HEIGHT","IFRAME_STYLES","IFRAME_BODY_STYLE","IFRAME_SANDBOX_OPTS","IFRAME_NOT_SUPPORTED_MSG","DOMPURIFY_TAGS","DOMPURIFY_ATTR","parse$1","parseOptions","encodeEntities","innerTxt","decodeEntities","cssImportantStyles","cssClasses","createCssStyles","graphType","classDefs","cssStyles","cssElements","styleClassDef","cssElement","createUserStyles","svgId","userCSSstyles","allStyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","base64encodedSrc","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","sandboxedIframe","iFrameId","removeExistingElements","divId","render$1","svgContainingElement","graphInit","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","firstChild","diagramClassDefs","style1","a11yDescr","addA11yInfo","svgEl","initialize$1","mermaidAPI","handleError","errors","parseError","run","runThrowsErrors","mermaid","postRenderCallback","querySelector","nodesToProcess","idGenerator","bindFunctions","render","initialize","runOptions","registerExternalDiagrams","lazyLoad","contentLoaded","startOnLoad","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","performCall","rej","entityCodesToText","modifiedInput","getTransformAttr","transformAttr","translateMatch","transformX","transformY","computeEdgePositions","pathElement","dAttr","commands","startPosition","coord","endPosition","command","coords","parseSubGraph","containerEl","nodeIds","computeElementPosition","boundingBox","dimension","parseVertex","link","labelContainerStyleText","labelStyleText","parseEdge","edgePositionData","childElement","childPosition","parseMermaidFlowChartDiagram","mermaidParser","vertices","edges","createArrowSkeletonFromSVG","arrowNode","opts","currPoints","pos","createArrowSkeletion","endX","endY","createTextSkeleton","createTextSkeletonFromSVG","textNode","createContainerSkeletonFromSVG","subtype","groupId","bgColor","createLineSkeletonFromSVG","lineNode","SEQUENCE_ARROW_TYPES","MESSAGE_TYPE","getStrokeStyle","strokeStyle","attachSequenceNumberToArrow","yOffset","xOffset","sequenceNumber","createActorSymbol","rootNode","nodeElements","parseActor","actors","actorRootNodes","actorsLength","topRootNode","bottomRootNode","topNodeElement","bottomNodeElement","bottomEllipseNode","computeArrows","messages","arrows","arrowNodes","supportedMessageTypes","arrowMessages","messageType","computeNotes","noteNodes","noteText","notes","rect","note","parseActivations","activationNodes","parseLoops","lineNodes","loopTextNodes","criticalMessages","rawText","labelBoxes","labelTextNode","labelBox","computeHighlights","rects","parseMermaidSequenceDiagram","bgHightlights","actorData","loops","RELATION_TYPE","LINE_TYPE","lineType","getArrowhead","arrowhead","parseClasses","classes","classNode","domId","domNode","labelNodes","textTransformX","textTransformY","offsetY","parseRelations","relations","classNodes","direction","relationNode","relation","node1","node2","startArrowhead","endArrowhead","relationTitle1","relationTitle2","offsetX","directionOffset","relationTitleElement","parseNotes","noteContainers","connectors","connector","parseMermaidClassDiagram","namespaceClassData","classData","relationTitles","convertSvgToGraphImage","svgContainer","mimeType","decoded","dataURL","parseMermaid","parseMermaidToExcalidraw","parsedMermaidData"],"sources":["../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/constants.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/GraphConverter.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/interfaces.js","../../../node_modules/@excalidraw/markdown-to-text/dist/index.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/helpers.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/types/flowchart.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/node_modules/nanoid/index.browser.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/types/graphImage.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/transformToExcalidrawSkeleton.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/types/sequence.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/converter/types/class.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/graphToExcalidraw.js","../../../node_modules/ts-dedent/esm/index.js","../../../node_modules/dayjs/dayjs.min.js","../../../node_modules/mermaid/node_modules/@braintree/sanitize-url/dist/index.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3-shape/src/curve/bump.js","../../../node_modules/d3-shape/src/noop.js","../../../node_modules/d3-shape/src/curve/basis.js","../../../node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/d3-shape/src/curve/bundle.js","../../../node_modules/d3-shape/src/curve/cardinal.js","../../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../../node_modules/d3-shape/src/curve/catmullRom.js","../../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../../node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/d3-shape/src/curve/natural.js","../../../node_modules/d3-shape/src/curve/step.js","../../../node_modules/d3-zoom/src/transform.js","../../../node_modules/dompurify/dist/purify.es.js","../../../node_modules/khroma/dist/utils/channel.js","../../../node_modules/khroma/dist/utils/lang.js","../../../node_modules/khroma/dist/utils/unit.js","../../../node_modules/khroma/dist/utils/index.js","../../../node_modules/khroma/dist/constants.js","../../../node_modules/khroma/dist/channels/type.js","../../../node_modules/khroma/dist/channels/index.js","../../../node_modules/khroma/dist/channels/reusable.js","../../../node_modules/khroma/dist/color/hex.js","../../../node_modules/khroma/dist/color/hsl.js","../../../node_modules/khroma/dist/color/keyword.js","../../../node_modules/khroma/dist/color/rgb.js","../../../node_modules/khroma/dist/color/index.js","../../../node_modules/khroma/dist/methods/change.js","../../../node_modules/khroma/dist/methods/rgba.js","../../../node_modules/khroma/dist/methods/luminance.js","../../../node_modules/khroma/dist/methods/is_light.js","../../../node_modules/khroma/dist/methods/is_dark.js","../../../node_modules/khroma/dist/methods/adjust_channel.js","../../../node_modules/khroma/dist/methods/lighten.js","../../../node_modules/khroma/dist/methods/darken.js","../../../node_modules/khroma/dist/methods/adjust.js","../../../node_modules/khroma/dist/methods/mix.js","../../../node_modules/khroma/dist/methods/invert.js","../../../node_modules/lodash-es/_freeGlobal.js","../../../node_modules/lodash-es/_root.js","../../../node_modules/lodash-es/_Symbol.js","../../../node_modules/lodash-es/_getRawTag.js","../../../node_modules/lodash-es/_objectToString.js","../../../node_modules/lodash-es/_baseGetTag.js","../../../node_modules/lodash-es/isObject.js","../../../node_modules/lodash-es/isFunction.js","../../../node_modules/lodash-es/_coreJsData.js","../../../node_modules/lodash-es/_isMasked.js","../../../node_modules/lodash-es/_toSource.js","../../../node_modules/lodash-es/_baseIsNative.js","../../../node_modules/lodash-es/_getValue.js","../../../node_modules/lodash-es/_getNative.js","../../../node_modules/lodash-es/_nativeCreate.js","../../../node_modules/lodash-es/_hashClear.js","../../../node_modules/lodash-es/_hashDelete.js","../../../node_modules/lodash-es/_hashGet.js","../../../node_modules/lodash-es/_hashHas.js","../../../node_modules/lodash-es/_hashSet.js","../../../node_modules/lodash-es/_Hash.js","../../../node_modules/lodash-es/_listCacheClear.js","../../../node_modules/lodash-es/eq.js","../../../node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/lodash-es/_listCacheGet.js","../../../node_modules/lodash-es/_listCacheHas.js","../../../node_modules/lodash-es/_listCacheSet.js","../../../node_modules/lodash-es/_ListCache.js","../../../node_modules/lodash-es/_Map.js","../../../node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/lodash-es/_isKeyable.js","../../../node_modules/lodash-es/_getMapData.js","../../../node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/lodash-es/_MapCache.js","../../../node_modules/lodash-es/memoize.js","../../../node_modules/stylis/src/Enum.js","../../../node_modules/stylis/src/Utility.js","../../../node_modules/stylis/src/Tokenizer.js","../../../node_modules/stylis/src/Parser.js","../../../node_modules/stylis/src/Serializer.js","../../../node_modules/lodash-es/_isPrototype.js","../../../node_modules/lodash-es/_overArg.js","../../../node_modules/lodash-es/_nativeKeys.js","../../../node_modules/lodash-es/_baseKeys.js","../../../node_modules/lodash-es/_DataView.js","../../../node_modules/lodash-es/_Promise.js","../../../node_modules/lodash-es/_Set.js","../../../node_modules/lodash-es/_WeakMap.js","../../../node_modules/lodash-es/_getTag.js","../../../node_modules/lodash-es/isObjectLike.js","../../../node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/lodash-es/isArguments.js","../../../node_modules/lodash-es/isArray.js","../../../node_modules/lodash-es/isLength.js","../../../node_modules/lodash-es/isArrayLike.js","../../../node_modules/lodash-es/stubFalse.js","../../../node_modules/lodash-es/isBuffer.js","../../../node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/lodash-es/_baseUnary.js","../../../node_modules/lodash-es/_nodeUtil.js","../../../node_modules/lodash-es/isTypedArray.js","../../../node_modules/lodash-es/isEmpty.js","../../../node_modules/mermaid/dist/mermaid-b0ad2de1.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/utils.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/parser/flowchart.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/elementSkeleton.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/parser/sequence.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/parser/class.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/parseMermaid.js","../../../node_modules/@excalidraw/mermaid-to-excalidraw/dist/index.js"],"sourcesContent":["export const DEFAULT_FONT_SIZE = 20;\nexport const SVG_TO_SHAPE_MAPPER = {\n rect: \"rectangle\",\n circle: \"ellipse\",\n};\nexport const MERMAID_CONFIG = {\n startOnLoad: false,\n flowchart: { curve: \"linear\" },\n themeVariables: {\n fontSize: `${DEFAULT_FONT_SIZE * 1.25}px`,\n },\n};\n","import { DEFAULT_FONT_SIZE } from \"../constants.js\";\nexport class GraphConverter {\n constructor({ converter, }) {\n this.convert = (graph, options) => {\n return this.converter(graph, {\n ...options,\n fontSize: options.fontSize || DEFAULT_FONT_SIZE,\n });\n };\n this.converter = converter;\n }\n}\n","export var VERTEX_TYPE;\n(function (VERTEX_TYPE) {\n VERTEX_TYPE[\"ROUND\"] = \"round\";\n VERTEX_TYPE[\"STADIUM\"] = \"stadium\";\n VERTEX_TYPE[\"DOUBLECIRCLE\"] = \"doublecircle\";\n VERTEX_TYPE[\"CIRCLE\"] = \"circle\";\n VERTEX_TYPE[\"DIAMOND\"] = \"diamond\";\n})(VERTEX_TYPE || (VERTEX_TYPE = {}));\nexport var LABEL_STYLE_PROPERTY;\n(function (LABEL_STYLE_PROPERTY) {\n LABEL_STYLE_PROPERTY[\"COLOR\"] = \"color\";\n})(LABEL_STYLE_PROPERTY || (LABEL_STYLE_PROPERTY = {}));\nexport var CONTAINER_STYLE_PROPERTY;\n(function (CONTAINER_STYLE_PROPERTY) {\n CONTAINER_STYLE_PROPERTY[\"FILL\"] = \"fill\";\n CONTAINER_STYLE_PROPERTY[\"STROKE\"] = \"stroke\";\n CONTAINER_STYLE_PROPERTY[\"STROKE_WIDTH\"] = \"stroke-width\";\n CONTAINER_STYLE_PROPERTY[\"STROKE_DASHARRAY\"] = \"stroke-dasharray\";\n})(CONTAINER_STYLE_PROPERTY || (CONTAINER_STYLE_PROPERTY = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeMarkdown = void 0;\n/**\n * @function removeMarkdown\n *\n * @description\n * Parse the markdown and returns a string\n *\n * @param markdown - The markdown string to parse\n * @param options - The options for the function\n *\n * @returns The parsed plain text\n */\nvar removeMarkdown = function (markdown, options) {\n if (options === void 0) { options = {\n listUnicodeChar: \"\",\n }; }\n options = options || {};\n options.listUnicodeChar = options.hasOwnProperty(\"listUnicodeChar\")\n ? options.listUnicodeChar\n : false;\n options.stripListLeaders = options.hasOwnProperty(\"stripListLeaders\")\n ? options.stripListLeaders\n : true;\n options.gfm = options.hasOwnProperty(\"gfm\") ? options.gfm : true;\n options.useImgAltText = options.hasOwnProperty(\"useImgAltText\")\n ? options.useImgAltText\n : true;\n options.preserveLinks = options.hasOwnProperty(\"preserveLinks\")\n ? options.preserveLinks\n : false;\n var output = markdown || \"\";\n // Remove horizontal rules (stripListHeaders conflict with this rule, which is why it has been moved to the top)\n output = output.replace(/^(-\\s*?|\\*\\s*?|_\\s*?){3,}\\s*$/gm, \"\");\n try {\n if (options.stripListLeaders) {\n if (options.listUnicodeChar)\n output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, options.listUnicodeChar + \" $1\");\n else\n output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, \"$1\");\n }\n if (options.gfm) {\n output = output\n // Header\n .replace(/\\n={2,}/g, \"\\n\")\n // Fenced codeblocks\n .replace(/~{3}.*\\n/g, \"\")\n // Strikethrough\n .replace(/~~/g, \"\")\n // Fenced codeblocks\n .replace(/`{3}.*\\n/g, \"\");\n }\n if (options.preserveLinks) {\n // Remove inline links while preserving the links\n output = output.replace(/\\[(.*?)\\][\\[\\(](.*?)[\\]\\)]/g, \"$1 ($2)\");\n }\n output = output\n // Remove HTML tags\n .replace(/<[^>]*>/g, \"\")\n // Remove setext-style headers\n .replace(/^[=\\-]{2,}\\s*$/g, \"\")\n // Remove footnotes?\n .replace(/\\[\\^.+?\\](\\: .*?$)?/g, \"\")\n .replace(/\\s{0,2}\\[.*?\\]: .*?$/g, \"\")\n // Remove images\n .replace(/\\!\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, options.useImgAltText ? \"$1\" : \"\")\n // Remove inline links\n .replace(/\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, \"$1\")\n // Remove blockquotes\n .replace(/^\\s{0,3}>\\s?/g, \"\")\n .replace(/(^|\\n)\\s{0,3}>\\s?/g, \"\\n\\n\")\n // Remove reference-style links?\n .replace(/^\\s{1,2}\\[(.*?)\\]: (\\S+)( \".*?\")?\\s*$/g, \"\")\n // Remove atx-style headers\n .replace(/^(\\n)?\\s{0,}#{1,6}\\s+| {0,}(\\n)?\\s{0,}#{0,} {0,}(\\n)?\\s{0,}$/gm, \"$1$2$3\")\n // Remove emphasis (repeat the line to remove double emphasis)\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, \"$2\")\n .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, \"$2\")\n // Remove code blocks\n .replace(/(`{3,})(.*?)\\1/gm, \"$2\")\n // Remove inline code\n .replace(/`(.+?)`/g, \"$1\")\n // Replace two or more newlines with exactly two? Not entirely sure this belongs here...\n .replace(/\\n{2,}/g, \"\\n\\n\");\n }\n catch (e) {\n console.error(e);\n return markdown;\n }\n return output;\n};\nexports.removeMarkdown = removeMarkdown;\n","import { CONTAINER_STYLE_PROPERTY, LABEL_STYLE_PROPERTY, } from \"../interfaces.js\";\nimport { removeMarkdown } from \"@excalidraw/markdown-to-text\";\n/**\n * Convert mermaid edge type to Excalidraw arrow type\n */\nconst MERMAID_EDGE_TYPE_MAPPER = {\n arrow_circle: {\n endArrowhead: \"dot\",\n },\n arrow_cross: {\n endArrowhead: \"bar\",\n },\n double_arrow_circle: {\n endArrowhead: \"dot\",\n startArrowhead: \"dot\",\n },\n double_arrow_cross: {\n endArrowhead: \"bar\",\n startArrowhead: \"bar\",\n },\n double_arrow_point: {\n endArrowhead: \"arrow\",\n startArrowhead: \"arrow\",\n },\n};\nexport const computeExcalidrawArrowType = (mermaidArrowType) => {\n return MERMAID_EDGE_TYPE_MAPPER[mermaidArrowType];\n};\n// Get text from graph elements, fallback markdown to text\nexport const getText = (element) => {\n let text = element.text;\n if (element.labelType === \"markdown\") {\n text = removeMarkdown(element.text);\n }\n return removeFontAwesomeIcons(text);\n};\n/**\n * Remove font awesome icons support from text\n */\nconst removeFontAwesomeIcons = (input) => {\n const fontAwesomeRegex = /\\s?(fa|fab):[a-zA-Z0-9-]+/g;\n return input.replace(fontAwesomeRegex, \"\");\n};\n/**\n * Compute style for vertex\n */\nexport const computeExcalidrawVertexStyle = (style) => {\n const excalidrawProperty = {};\n Object.keys(style).forEach((property) => {\n switch (property) {\n case CONTAINER_STYLE_PROPERTY.FILL: {\n excalidrawProperty.backgroundColor = style[property];\n excalidrawProperty.fillStyle = \"solid\";\n break;\n }\n case CONTAINER_STYLE_PROPERTY.STROKE: {\n excalidrawProperty.strokeColor = style[property];\n break;\n }\n case CONTAINER_STYLE_PROPERTY.STROKE_WIDTH: {\n excalidrawProperty.strokeWidth = Number(style[property]?.split(\"px\")[0]);\n break;\n }\n case CONTAINER_STYLE_PROPERTY.STROKE_DASHARRAY: {\n excalidrawProperty.strokeStyle = \"dashed\";\n break;\n }\n }\n });\n return excalidrawProperty;\n};\n/**\n * Compute style for label\n */\nexport const computeExcalidrawVertexLabelStyle = (style) => {\n const excalidrawProperty = {};\n Object.keys(style).forEach((property) => {\n switch (property) {\n case LABEL_STYLE_PROPERTY.COLOR: {\n excalidrawProperty.strokeColor = style[property];\n break;\n }\n }\n });\n return excalidrawProperty;\n};\n","import { GraphConverter } from \"../GraphConverter.js\";\nimport { getText, computeExcalidrawVertexStyle, computeExcalidrawVertexLabelStyle, computeExcalidrawArrowType, } from \"../helpers.js\";\nimport { VERTEX_TYPE } from \"../../interfaces.js\";\nconst computeGroupIds = (graph) => {\n // Parse the diagram into a tree for rendering and grouping\n const tree = {};\n graph.subGraphs.map((subGraph) => {\n subGraph.nodeIds.forEach((nodeId) => {\n tree[subGraph.id] = {\n id: subGraph.id,\n parent: null,\n isLeaf: false,\n };\n tree[nodeId] = {\n id: nodeId,\n parent: subGraph.id,\n isLeaf: graph.vertices[nodeId] !== undefined,\n };\n });\n });\n const mapper = {};\n [...Object.keys(graph.vertices), ...graph.subGraphs.map((c) => c.id)].forEach((id) => {\n if (!tree[id]) {\n return;\n }\n let curr = tree[id];\n const groupIds = [];\n if (!curr.isLeaf) {\n groupIds.push(`subgraph_group_${curr.id}`);\n }\n while (true) {\n if (curr.parent) {\n groupIds.push(`subgraph_group_${curr.parent}`);\n curr = tree[curr.parent];\n }\n else {\n break;\n }\n }\n mapper[id] = groupIds;\n });\n return {\n getGroupIds: (elementId) => {\n return mapper[elementId] || [];\n },\n getParentId: (elementId) => {\n return tree[elementId] ? tree[elementId].parent : null;\n },\n };\n};\nexport const FlowchartToExcalidrawSkeletonConverter = new GraphConverter({\n converter: (graph, options) => {\n const elements = [];\n const fontSize = options.fontSize;\n const { getGroupIds, getParentId } = computeGroupIds(graph);\n // SubGraphs\n graph.subGraphs.reverse().forEach((subGraph) => {\n const groupIds = getGroupIds(subGraph.id);\n const containerElement = {\n id: subGraph.id,\n type: \"rectangle\",\n groupIds,\n x: subGraph.x,\n y: subGraph.y,\n width: subGraph.width,\n height: subGraph.height,\n label: {\n groupIds,\n text: getText(subGraph),\n fontSize,\n verticalAlign: \"top\",\n },\n };\n elements.push(containerElement);\n });\n // Vertices\n Object.values(graph.vertices).forEach((vertex) => {\n if (!vertex) {\n return;\n }\n const groupIds = getGroupIds(vertex.id);\n // Compute custom style\n const containerStyle = computeExcalidrawVertexStyle(vertex.containerStyle);\n const labelStyle = computeExcalidrawVertexLabelStyle(vertex.labelStyle);\n let containerElement = {\n id: vertex.id,\n type: \"rectangle\",\n groupIds,\n x: vertex.x,\n y: vertex.y,\n width: vertex.width,\n height: vertex.height,\n strokeWidth: 2,\n label: {\n groupIds,\n text: getText(vertex),\n fontSize,\n ...labelStyle,\n },\n link: vertex.link || null,\n ...containerStyle,\n };\n switch (vertex.type) {\n case VERTEX_TYPE.STADIUM: {\n containerElement = { ...containerElement, roundness: { type: 3 } };\n break;\n }\n case VERTEX_TYPE.ROUND: {\n containerElement = { ...containerElement, roundness: { type: 3 } };\n break;\n }\n case VERTEX_TYPE.DOUBLECIRCLE: {\n const CIRCLE_MARGIN = 5;\n // Create new groupId for double circle\n groupIds.push(`doublecircle_${vertex.id}}`);\n // Create inner circle element\n const innerCircle = {\n type: \"ellipse\",\n groupIds,\n x: vertex.x + CIRCLE_MARGIN,\n y: vertex.y + CIRCLE_MARGIN,\n width: vertex.width - CIRCLE_MARGIN * 2,\n height: vertex.height - CIRCLE_MARGIN * 2,\n strokeWidth: 2,\n roundness: { type: 3 },\n label: {\n groupIds,\n text: getText(vertex),\n fontSize,\n },\n };\n containerElement = { ...containerElement, groupIds, type: \"ellipse\" };\n elements.push(innerCircle);\n break;\n }\n case VERTEX_TYPE.CIRCLE: {\n containerElement.type = \"ellipse\";\n break;\n }\n case VERTEX_TYPE.DIAMOND: {\n containerElement.type = \"diamond\";\n break;\n }\n }\n elements.push(containerElement);\n });\n // Edges\n graph.edges.forEach((edge) => {\n let groupIds = [];\n const startParentId = getParentId(edge.start);\n const endParentId = getParentId(edge.end);\n if (startParentId && startParentId === endParentId) {\n groupIds = getGroupIds(startParentId);\n }\n // Get arrow position data\n const { startX, startY, reflectionPoints } = edge;\n // Calculate Excalidraw arrow's points\n const points = reflectionPoints.map((point) => [\n point.x - reflectionPoints[0].x,\n point.y - reflectionPoints[0].y,\n ]);\n // Get supported arrow type\n const arrowType = computeExcalidrawArrowType(edge.type);\n const arrowId = `${edge.start}_${edge.end}`;\n const containerElement = {\n id: arrowId,\n type: \"arrow\",\n groupIds,\n x: startX,\n y: startY,\n // 4 and 2 are the Excalidraw's stroke width of thick and thin respectively\n // TODO: use constant exported from Excalidraw package\n strokeWidth: edge.stroke === \"thick\" ? 4 : 2,\n strokeStyle: edge.stroke === \"dotted\" ? \"dashed\" : undefined,\n points,\n ...(edge.text\n ? { label: { text: getText(edge), fontSize, groupIds } }\n : {}),\n roundness: {\n type: 2,\n },\n ...arrowType,\n };\n // Bind start and end vertex to arrow\n const startVertex = elements.find((e) => e.id === edge.start);\n const endVertex = elements.find((e) => e.id === edge.end);\n if (!startVertex || !endVertex) {\n return;\n }\n containerElement.start = {\n id: startVertex.id || \"\",\n };\n containerElement.end = {\n id: endVertex.id || \"\",\n };\n elements.push(containerElement);\n });\n return {\n elements,\n };\n },\n});\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","import { GraphConverter } from \"../GraphConverter.js\";\nimport { nanoid } from \"nanoid\";\nexport const GraphImageConverter = new GraphConverter({\n converter: (graph) => {\n const imageId = nanoid();\n const { width, height } = graph;\n const imageElement = {\n type: \"image\",\n x: 0,\n y: 0,\n width,\n height,\n status: \"saved\",\n fileId: imageId,\n };\n const files = {\n [imageId]: {\n id: imageId,\n mimeType: graph.mimeType,\n dataURL: graph.dataURL,\n },\n };\n return { files, elements: [imageElement] };\n },\n});\n","export const transformToExcalidrawLineSkeleton = (line) => {\n const lineElement = {\n type: \"line\",\n x: line.startX,\n y: line.startY,\n points: [\n [0, 0],\n [line.endX - line.startX, line.endY - line.startY],\n ],\n width: line.endX - line.startX,\n height: line.endY - line.startY,\n strokeStyle: line.strokeStyle || \"solid\",\n strokeColor: line.strokeColor || \"#000\",\n strokeWidth: line.strokeWidth || 1,\n };\n if (line.groupId) {\n Object.assign(lineElement, { groupIds: [line.groupId] });\n }\n if (line.id) {\n Object.assign(lineElement, { id: line.id });\n }\n return lineElement;\n};\nexport const transformToExcalidrawTextSkeleton = (element) => {\n const textElement = {\n type: \"text\",\n x: element.x,\n y: element.y,\n width: element.width,\n height: element.height,\n text: element.text || \"\",\n fontSize: element.fontSize,\n verticalAlign: \"middle\",\n };\n if (element.groupId) {\n Object.assign(textElement, { groupIds: [element.groupId] });\n }\n if (element.id) {\n Object.assign(textElement, { id: element.id });\n }\n return textElement;\n};\nexport const transformToExcalidrawContainerSkeleton = (element) => {\n let extraProps = {};\n if (element.type === \"rectangle\" && element.subtype === \"activation\") {\n extraProps = {\n backgroundColor: \"#e9ecef\",\n fillStyle: \"solid\",\n };\n }\n const container = {\n id: element.id,\n type: element.type,\n x: element.x,\n y: element.y,\n width: element.width,\n height: element.height,\n label: {\n text: element?.label?.text || \"\",\n fontSize: element?.label?.fontSize,\n verticalAlign: element.label?.verticalAlign || \"middle\",\n strokeColor: element.label?.color || \"#000\",\n groupIds: element.groupId ? [element.groupId] : [],\n },\n strokeStyle: element?.strokeStyle,\n strokeWidth: element?.strokeWidth,\n strokeColor: element?.strokeColor,\n backgroundColor: element?.bgColor,\n fillStyle: \"solid\",\n ...extraProps,\n };\n if (element.groupId) {\n Object.assign(container, { groupIds: [element.groupId] });\n }\n return container;\n};\nexport const transformToExcalidrawArrowSkeleton = (arrow) => {\n const arrowElement = {\n type: \"arrow\",\n x: arrow.startX,\n y: arrow.startY,\n points: arrow.points || [\n [0, 0],\n [arrow.endX - arrow.startX, arrow.endY - arrow.startY],\n ],\n width: arrow.endX - arrow.startX,\n height: arrow.endY - arrow.startY,\n strokeStyle: arrow?.strokeStyle || \"solid\",\n endArrowhead: arrow?.endArrowhead || null,\n startArrowhead: arrow?.startArrowhead || null,\n label: {\n text: arrow?.label?.text || \"\",\n fontSize: 16,\n },\n roundness: {\n type: 2,\n },\n start: arrow.start,\n end: arrow.end,\n };\n if (arrow.groupId) {\n Object.assign(arrowElement, { groupIds: [arrow.groupId] });\n }\n return arrowElement;\n};\n","import { nanoid } from \"nanoid\";\nimport { GraphConverter } from \"../GraphConverter.js\";\nimport { transformToExcalidrawLineSkeleton, transformToExcalidrawTextSkeleton, transformToExcalidrawContainerSkeleton, transformToExcalidrawArrowSkeleton, } from \"../transformToExcalidrawSkeleton.js\";\nexport const SequenceToExcalidrawSkeletonConvertor = new GraphConverter({\n converter: (chart) => {\n const elements = [];\n const activations = [];\n Object.values(chart.nodes).forEach((node) => {\n if (!node || !node.length) {\n return;\n }\n node.forEach((element) => {\n let excalidrawElement;\n switch (element.type) {\n case \"line\":\n excalidrawElement = transformToExcalidrawLineSkeleton(element);\n break;\n case \"rectangle\":\n case \"ellipse\":\n excalidrawElement = transformToExcalidrawContainerSkeleton(element);\n break;\n case \"text\":\n excalidrawElement = transformToExcalidrawTextSkeleton(element);\n break;\n default:\n throw `unknown type ${element.type}`;\n break;\n }\n if (element.type === \"rectangle\" && element?.subtype === \"activation\") {\n activations.push(excalidrawElement);\n }\n else {\n elements.push(excalidrawElement);\n }\n });\n });\n Object.values(chart.lines).forEach((line) => {\n if (!line) {\n return;\n }\n elements.push(transformToExcalidrawLineSkeleton(line));\n });\n Object.values(chart.arrows).forEach((arrow) => {\n if (!arrow) {\n return;\n }\n elements.push(transformToExcalidrawArrowSkeleton(arrow));\n if (arrow.sequenceNumber) {\n elements.push(transformToExcalidrawContainerSkeleton(arrow.sequenceNumber));\n }\n });\n elements.push(...activations);\n // loops\n if (chart.loops) {\n const { lines, texts, nodes } = chart.loops;\n lines.forEach((line) => {\n elements.push(transformToExcalidrawLineSkeleton(line));\n });\n texts.forEach((text) => {\n elements.push(transformToExcalidrawTextSkeleton(text));\n });\n nodes.forEach((node) => {\n elements.push(transformToExcalidrawContainerSkeleton(node));\n });\n }\n if (chart.groups) {\n chart.groups.forEach((group) => {\n const { actorKeys, name } = group;\n let minX = Infinity;\n let minY = Infinity;\n let maxX = 0;\n let maxY = 0;\n if (!actorKeys.length) {\n return;\n }\n const actors = elements.filter((ele) => {\n if (ele.id) {\n const hyphenIndex = ele.id.indexOf(\"-\");\n const id = ele.id.substring(0, hyphenIndex);\n return actorKeys.includes(id);\n }\n });\n actors.forEach((actor) => {\n if (actor.x === undefined ||\n actor.y === undefined ||\n actor.width === undefined ||\n actor.height === undefined) {\n throw new Error(`Actor attributes missing ${actor}`);\n }\n minX = Math.min(minX, actor.x);\n minY = Math.min(minY, actor.y);\n maxX = Math.max(maxX, actor.x + actor.width);\n maxY = Math.max(maxY, actor.y + actor.height);\n });\n // Draw the outer rectangle enclosing the group elements\n const PADDING = 10;\n const groupRectX = minX - PADDING;\n const groupRectY = minY - PADDING;\n const groupRectWidth = maxX - minX + PADDING * 2;\n const groupRectHeight = maxY - minY + PADDING * 2;\n const groupRectId = nanoid();\n const groupRect = transformToExcalidrawContainerSkeleton({\n type: \"rectangle\",\n x: groupRectX,\n y: groupRectY,\n width: groupRectWidth,\n height: groupRectHeight,\n bgColor: group.fill,\n id: groupRectId,\n });\n elements.unshift(groupRect);\n const frameId = nanoid();\n const frameChildren = [groupRectId];\n elements.forEach((ele) => {\n if (ele.type === \"frame\") {\n return;\n }\n if (ele.x === undefined ||\n ele.y === undefined ||\n ele.width === undefined ||\n ele.height === undefined) {\n throw new Error(`Element attributes missing ${ele}`);\n }\n if (ele.x >= minX &&\n ele.x + ele.width <= maxX &&\n ele.y >= minY &&\n ele.y + ele.height <= maxY) {\n const elementId = ele.id || nanoid();\n if (!ele.id) {\n Object.assign(ele, { id: elementId });\n }\n frameChildren.push(elementId);\n }\n });\n const frame = {\n type: \"frame\",\n id: frameId,\n name,\n children: frameChildren,\n };\n elements.push(frame);\n });\n }\n return { elements };\n },\n});\n","import { nanoid } from \"nanoid\";\nimport { transformToExcalidrawArrowSkeleton, transformToExcalidrawContainerSkeleton, transformToExcalidrawLineSkeleton, transformToExcalidrawTextSkeleton, } from \"../transformToExcalidrawSkeleton.js\";\nimport { GraphConverter } from \"../GraphConverter.js\";\nexport const classToExcalidrawSkeletonConvertor = new GraphConverter({\n converter: (chart) => {\n const elements = [];\n Object.values(chart.nodes).forEach((node) => {\n if (!node || !node.length) {\n return;\n }\n node.forEach((element) => {\n let excalidrawElement;\n switch (element.type) {\n case \"line\":\n excalidrawElement = transformToExcalidrawLineSkeleton(element);\n break;\n case \"rectangle\":\n case \"ellipse\":\n excalidrawElement = transformToExcalidrawContainerSkeleton(element);\n break;\n case \"text\":\n excalidrawElement = transformToExcalidrawTextSkeleton(element);\n break;\n default:\n throw `unknown type ${element.type}`;\n break;\n }\n elements.push(excalidrawElement);\n });\n });\n Object.values(chart.lines).forEach((line) => {\n if (!line) {\n return;\n }\n elements.push(transformToExcalidrawLineSkeleton(line));\n });\n Object.values(chart.arrows).forEach((arrow) => {\n if (!arrow) {\n return;\n }\n const excalidrawElement = transformToExcalidrawArrowSkeleton(arrow);\n elements.push(excalidrawElement);\n });\n Object.values(chart.text).forEach((ele) => {\n const excalidrawElement = transformToExcalidrawTextSkeleton(ele);\n elements.push(excalidrawElement);\n });\n Object.values(chart.namespaces).forEach((namespace) => {\n const classIds = Object.keys(namespace.classes);\n const children = [...classIds];\n const chartElements = [...chart.lines, ...chart.arrows, ...chart.text];\n classIds.forEach((classId) => {\n const childIds = chartElements\n .filter((ele) => ele.metadata &&\n \"class\" in ele.metadata &&\n ele.metadata.classId === classId)\n .map((ele) => ele.id);\n if (childIds.length) {\n children.push(...childIds);\n }\n });\n const frame = {\n type: \"frame\",\n id: nanoid(),\n name: namespace.id,\n children,\n };\n elements.push(frame);\n });\n return { elements };\n },\n});\n","import { FlowchartToExcalidrawSkeletonConverter } from \"./converter/types/flowchart.js\";\nimport { GraphImageConverter } from \"./converter/types/graphImage.js\";\nimport { SequenceToExcalidrawSkeletonConvertor } from \"./converter/types/sequence.js\";\nimport { classToExcalidrawSkeletonConvertor } from \"./converter/types/class.js\";\nexport const graphToExcalidraw = (graph, options = {}) => {\n switch (graph.type) {\n case \"graphImage\": {\n return GraphImageConverter.convert(graph, options);\n }\n case \"flowchart\": {\n return FlowchartToExcalidrawSkeletonConverter.convert(graph, options);\n }\n case \"sequence\": {\n return SequenceToExcalidrawSkeletonConvertor.convert(graph, options);\n }\n case \"class\": {\n return classToExcalidrawSkeletonConvertor.convert(graph, options);\n }\n default: {\n throw new Error(`graphToExcalidraw: unknown graph type \"${graph.type}, only flowcharts are supported!\"`);\n }\n }\n};\n","export function dedent(templ) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var strings = Array.from(typeof templ === 'string' ? [templ] : templ);\n strings[strings.length - 1] = strings[strings.length - 1].replace(/\\r?\\n([\\t ]*)$/, '');\n var indentLengths = strings.reduce(function (arr, str) {\n var matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n if (matches) {\n return arr.concat(matches.map(function (match) { var _a, _b; return (_b = (_a = match.match(/[\\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; }));\n }\n return arr;\n }, []);\n if (indentLengths.length) {\n var pattern_1 = new RegExp(\"\\n[\\t ]{\" + Math.min.apply(Math, indentLengths) + \"}\", 'g');\n strings = strings.map(function (str) { return str.replace(pattern_1, '\\n'); });\n }\n strings[0] = strings[0].replace(/^\\r?\\n/, '');\n var string = strings[0];\n values.forEach(function (value, i) {\n var endentations = string.match(/(?:^|\\n)( *)$/);\n var endentation = endentations ? endentations[1] : '';\n var indentedValue = value;\n if (typeof value === 'string' && value.includes('\\n')) {\n indentedValue = String(value)\n .split('\\n')\n .map(function (str, i) {\n return i === 0 ? str : \"\" + endentation + str;\n })\n .join('\\n');\n }\n string += indentedValue + strings[i + 1];\n });\n return string;\n}\nexport default dedent;\n//# sourceMappingURL=index.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\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,M={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:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return exports.BLANK_URL;\n }\n var sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return exports.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return exports.BLANK_URL;\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","/*! @license DOMPurify 3.0.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.3/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\n\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n/* Add properties to a lookup table */\n\nfunction addToSet(set, array, transformCaseFunc) {\n var _transformCaseFunc;\n\n transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;\n\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n\n while (l--) {\n let element = array[l];\n\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n/* Shallow clone an object */\n\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n newObject[property] = value;\n }\n\n return newObject;\n}\n/* This method automatically checks if the prop is function\n * or getter and behaves accordingly. */\n\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\n\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']); // Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\n\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME\n});\n\nconst getGlobal = () => typeof window === 'undefined' ? null : window;\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n\n\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n const DOMPurify = root => createDOMPurify(root);\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '3.0.3';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n const originalDocument = window.document;\n const currentScript = originalDocument.currentScript;\n let {\n document\n } = window;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n let CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n let SAFE_FOR_TEMPLATES = false;\n /* Decide if document with ... should be returned */\n\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['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']);\n /* Tags that are safe for data: URIs */\n\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n /* Parsing of strict XHTML documents */\n\n let PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n const _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [...text]);\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n } // Overwrite existing TrustedTypes policy.\n\n\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY; // Sign local variables required by `sanitize`.\n\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n } // If creating the internal policy succeeded sign internal variables.\n\n\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n const ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n const ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // For XHTML and XML documents that support custom namespaces\n\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n const _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n const _isNode = function _isNode(object) {\n return typeof Node === 'object' ? object instanceof Node : object && typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Remove element if anything forbids its presence */\n\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n /* Keep content except for bad-listed elements */\n\n\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check whether element has a valid namespace */\n\n\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Make sure that older browsers don't get noscript mXSS */\n\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Sanitize element content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR, ' ');\n content = stringReplace(content, ERB_EXPR, ' ');\n content = stringReplace(content, TMPLIT_EXPR, ' ');\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n\n\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n\n\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n\n return true;\n };\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n\n\n const _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n\n\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n let attr;\n let value;\n let lcName;\n let l;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n\n while (l--) {\n attr = attributes[l];\n const {\n name,\n namespaceURI\n } = attr;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n /* Execute a hook if present */\n\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n\n\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n\n\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n\n\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR, ' ');\n value = stringReplace(value, ERB_EXPR, ' ');\n value = stringReplace(value, TMPLIT_EXPR, ' ');\n }\n /* Is `value` valid for this attribute? */\n\n\n const lcTag = transformCaseFunc(currentNode.nodeName);\n\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n\n\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode); // Prefix the value and later re-create the attribute with the sanitized value\n\n\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Handle attributes that require Trusted Types */\n\n\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n\n\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n\n\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode;\n\n const shadowIterator = _createIterator(fragment);\n /* Execute a hook if present */\n\n\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n /* Deep shadow DOM detected */\n\n\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(shadowNode);\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n\n\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body;\n let importedNode;\n let currentNode;\n let returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n\n IS_EMPTY_INPUT = !dirty;\n\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n\n\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n\n\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n\n\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n\n\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n\n\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n\n\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n\n\n const nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n\n\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n /* Shadow DOM detected, sanitize it */\n\n\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(currentNode);\n }\n /* If we sanitized `dirty` in-place, return it. */\n\n\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n\n\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n\n\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n\n SET_CONFIG = true;\n };\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n\n\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n\n\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n\n\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n\n\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.js.map\n","/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n","/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n","/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n","/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n","/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n","/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n","/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n 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,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n 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,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n","/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n","/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import { dedent } from \"ts-dedent\";\nimport dayjs from \"dayjs\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from \"d3\";\nimport DOMPurify from \"dompurify\";\nimport { adjust, invert, darken, lighten, isDark, rgba } from \"khroma\";\nimport memoize from \"lodash-es/memoize.js\";\nimport { serialize, compile, stringify } from \"stylis\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\nconst LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nconst log$1 = {\n trace: (..._args) => {\n },\n debug: (..._args) => {\n },\n info: (..._args) => {\n },\n warn: (..._args) => {\n },\n error: (..._args) => {\n },\n fatal: (..._args) => {\n }\n};\nconst setLogLevel$1 = function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n level = level.toLowerCase();\n if (level in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log$1.trace = () => {\n };\n log$1.debug = () => {\n };\n log$1.info = () => {\n };\n log$1.warn = () => {\n };\n log$1.error = () => {\n };\n log$1.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log$1.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log$1.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log$1.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log$1.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log$1.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log$1.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n};\nconst format = (level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n};\nconst lineBreakRegex = //gi;\nconst getRows = (s) => {\n if (!s) {\n return [\"\"];\n }\n const str2 = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str2.split(\"#br#\");\n};\nconst removeScript = (txt) => {\n return DOMPurify.sanitize(txt);\n};\nconst sanitizeMore = (text, config2) => {\n var _a;\n if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(//g, \">\");\n text = text.replace(/=/g, \"=\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n};\nconst sanitizeText$2 = (text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n};\nconst sanitizeTextOrArray = (a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText$2(a, config2);\n }\n return a.flat().map((x) => sanitizeText$2(x, config2));\n};\nconst hasBreaks = (text) => {\n return lineBreakRegex.test(text);\n};\nconst splitBreaks = (text) => {\n return text.split(lineBreakRegex);\n};\nconst placeholderToBreak = (s) => {\n return s.replace(/#br#/g, \"
    \");\n};\nconst breakToPlaceholder = (s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n};\nconst getUrl = (useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replaceAll(/\\(/g, \"\\\\(\");\n url = url.replaceAll(/\\)/g, \"\\\\)\");\n }\n return url;\n};\nconst evaluate = (val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true;\nconst getMax = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n};\nconst getMin = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n};\nconst parseGenericTypes = function(text) {\n let cleanedText = text;\n if (text.split(\"~\").length - 1 >= 2) {\n let newCleanedText = cleanedText;\n do {\n cleanedText = newCleanedText;\n newCleanedText = cleanedText.replace(/~([^\\s,:;]+)~/, \"<$1>\");\n } while (newCleanedText != cleanedText);\n return parseGenericTypes(newCleanedText);\n } else {\n return cleanedText;\n }\n};\nconst common$1 = {\n getRows,\n sanitizeText: sanitizeText$2,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\nconst mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\nconst oldAttributeBackgroundColorOdd = \"#ffffff\";\nconst oldAttributeBackgroundColorEven = \"#f2f2f2\";\nlet Theme$4 = class Theme {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || \"grey\";\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$4 = (userOverrides) => {\n const theme2 = new Theme$4();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$3 = class Theme2 {\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten(this.primaryColor, 16);\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten(invert(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#81B1DB\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten(this.secondaryColor, 20);\n this.git1 = lighten(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2);\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$3 = (userOverrides) => {\n const theme2 = new Theme$3();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$2 = class Theme3 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#e8e8e8\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$2 = (userOverrides) => {\n const theme2 = new Theme$2();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$1 = class Theme4 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$1 = (userOverrides) => {\n const theme2 = new Theme$1();\n theme2.calculate(userOverrides);\n return theme2;\n};\nclass Theme5 {\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this[\"cScaleLabel0\"] = this[\"cScaleLabel0\"] || this.cScale1;\n this[\"cScaleLabel2\"] = this[\"cScaleLabel2\"] || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n this.taskBorderColor = darken(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\nconst getThemeVariables = (userOverrides) => {\n const theme2 = new Theme5();\n theme2.calculate(userOverrides);\n return theme2;\n};\nconst theme = {\n base: {\n getThemeVariables: getThemeVariables$4\n },\n dark: {\n getThemeVariables: getThemeVariables$3\n },\n default: {\n getThemeVariables: getThemeVariables$2\n },\n forest: {\n getThemeVariables: getThemeVariables$1\n },\n neutral: {\n getThemeVariables\n }\n};\nconst config = {\n /**\n * Theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".\n *\n * @example\n *\n * ```js\n * {\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n * }\n * ```\n */\n theme: \"default\",\n themeVariables: theme[\"default\"].getThemeVariables(),\n themeCSS: void 0,\n /* **maxTextSize** - The maximum allowed size of the users text diagram */\n maxTextSize: 5e4,\n darkMode: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |\n * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |\n * | logLevel | This option decides the amount of logging to be used. | string \\| number | Required | 'trace','debug','info','warn','error','fatal' |\n *\n * **Notes:**\n *\n * - Trace: 0\n * - Debug: 1\n * - Info: 2\n * - Warn: 3\n * - Error: 4\n * - Fatal: 5 (default)\n */\n logLevel: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |\n * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) HTML tags in the text are encoded and click functionality is disabled.\n * - **antiscript**: HTML tags in text are allowed (only script elements are removed), and click\n * functionality is enabled.\n * - **loose**: HTML tags in text are allowed and click functionality is enabled.\n * - **sandbox**: With this security level, all rendering takes place in a sandboxed iframe. This\n * prevent any JavaScript from running in the context. This may hinder interactive functionality\n * of the diagram, like scripts, popups in the sequence diagram, links to other tabs or targets, etc.\n */\n securityLevel: \"strict\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |\n * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed\n * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the\n * `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n *\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: [\"secure\", \"securityLevel\", \"startOnLoad\", \"maxTextSize\"],\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based\n * on a seed. If set to false, the IDs are generated based on the current date and thus are not\n * deterministic. This is the default behavior.\n *\n * **Notes**:\n *\n * This matters if your files are checked into source control e.g. git and should not change unless\n * content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but\n * deterministicIds is true, a simple number iterator is used. You can set this attribute to base\n * the seed on a static string.\n */\n deterministicIDSeed: void 0,\n /** The object containing configurations specific for flowcharts */\n flowchart: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the\n * vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal\n * spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |\n *\n * **Notes:**\n *\n * Default Value: 'basis'\n */\n curve: \"basis\",\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using\n * elkjs\n *\n * Default value: 'dagre-wrapper'\n */\n defaultRenderer: \"dagre-wrapper\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |\n *\n * **Notes:**\n *\n * When using markdown strings the text ius wrapped automatically, this\n * value sets the max width of a text before it continues on a new line.\n * Default value: 'dagre-wrapper'\n */\n wrappingWidth: 200\n },\n /** The object containing configurations specific for sequence diagrams */\n sequence: {\n hideUnusedParticipants: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------- | ------- | -------- | ------------------ |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n actorMargin: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 65,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ---------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n messageMargin: 35,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------ | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: \"center\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------- | -------- | ----------- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n mirrorActors: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------------------ | ------- | -------- | ----------- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a\n * curve\n *\n * Default value: false\n */\n rightAngles: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ------------------------------- | ------- | -------- | ----------- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:** Default value: false\n */\n showSequenceNumbers: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n * **Notes:** **Default value 14**..\n */\n actorFontSize: 14,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |\n * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: \"'Open Sans\", sans-serif'\n */\n actorFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:** Default value: 400.\n */\n actorFontWeight: 400,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 14\n */\n noteFontSize: 14,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |\n * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:** Default value: 400\n */\n noteFontWeight: 400,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n noteAlign: \"center\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:** Default value: 16\n */\n messageFontSize: 16,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:** Default value: 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: false.\n */\n wrap: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 50.\n */\n labelBoxWidth: 50,\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 20.\n */\n labelBoxHeight: 20,\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n },\n noteFont: function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n },\n actorFont: function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }\n },\n /** The object containing configurations specific for gantt diagrams */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n barHeight: 20,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n barGap: 4,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n topPadding: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n rightPadding: 75,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n leftPadding: 75,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n gridLineStartPadding: 35,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ------------------ |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n fontSize: 11,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------- | ------- | -------- | ------------------ |\n * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n sectionFontSize: 11,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n numberSectionStyles: 4,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------- | ------ | -------- | --------- |\n * | displayMode | Controls the display mode | string | 4 | 'compact' |\n *\n * **Notes**:\n *\n * - **compact**: Enables displaying multiple tasks on the same row.\n */\n displayMode: \"\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ---------------------------- | ---- | -------- | ---------------- |\n * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: \"%Y-%m-%d\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ------------| ------ | -------- | ------- |\n * | tickInterval | axis ticks | string | Optional | string |\n *\n * **Notes:**\n *\n * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/\n *\n * Default value: undefined\n */\n tickInterval: void 0,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ----------- |\n * | topAxis | See notes | Boolean | 4 | True, False |\n *\n * **Notes:** when this flag is set date labels will be added to the top of the chart\n *\n * **Default value false**.\n */\n topAxis: false,\n useWidth: void 0\n },\n /** The object containing configurations specific for journey diagrams */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: \"center\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a\n * curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open Sans\", sans-serif',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n // text placement as: tspan | fo | old only text as before\n textPlacement: \"fo\",\n actorColours: [\"#8FBC8F\", \"#7CFC00\", \"#00FFFF\", \"#20B2AA\", \"#B0E0E6\", \"#FFFFE0\"],\n sectionFills: [\"#191970\", \"#8B008B\", \"#4B0082\", \"#2F4F4F\", \"#800000\", \"#8B4513\", \"#00008B\"],\n sectionColours: [\"#fff\"]\n },\n /** The object containing configurations specific for timeline diagrams */\n timeline: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: \"center\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a\n * curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open Sans\", sans-serif',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n // text placement as: tspan | fo | old only text as before\n textPlacement: \"fo\",\n actorColours: [\"#8FBC8F\", \"#7CFC00\", \"#00FFFF\", \"#20B2AA\", \"#B0E0E6\", \"#FFFFE0\"],\n sectionFills: [\"#191970\", \"#8B008B\", \"#4B0082\", \"#2F4F4F\", \"#800000\", \"#8B4513\", \"#00008B\"],\n sectionColours: [\"#fff\"],\n disableMulticolor: false\n },\n class: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n arrowMarkerAbsolute: false,\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes**:\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: \"dagre-wrapper\"\n },\n state: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: \"20\",\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: \"dagre-wrapper\"\n },\n /** The object containing configurations specific for entity relationship diagrams */\n er: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: \"TB\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |\n * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:** Expressed in pixels. Default value: 100\n */\n minEntityWidth: 100,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Expressed in pixels Default value: 75\n */\n minEntityHeight: 75,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |\n * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding between text in an entity box and the enclosing box borders,\n * expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------ | -------- | -------------------- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'gray'\n */\n stroke: \"gray\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------- | ------ | -------- | -------------------- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'honeydew'\n */\n fill: \"honeydew\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels) Default value: 12\n */\n fontSize: 12,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true\n },\n /** The object containing configurations specific for pie diagrams */\n pie: {\n useWidth: void 0,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |\n * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |\n *\n * **Notes:** Default value: 0.75\n */\n textPosition: 0.75\n },\n quadrantChart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |\n * | chartWidth | Width of the chart | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 500\n */\n chartWidth: 500,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |\n * | chartHeight | Height of the chart | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 500\n */\n chartHeight: 500,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |\n * | titlePadding | Chart title top and bottom padding | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 10\n */\n titlePadding: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |\n * | titleFontSize | Chart title font size | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 20\n */\n titleFontSize: 20,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |\n * | quadrantPadding | Padding around the quadrant square | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n quadrantPadding: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------------------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------- |\n * | quadrantTextTopPadding | quadrant title padding from top if the quadrant is rendered on top | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n quadrantTextTopPadding: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |\n * | quadrantLabelFontSize | quadrant title font size | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 16\n */\n quadrantLabelFontSize: 16,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------------------------- | ------------------------------------------------------------- | ------- | -------- | ------------------- |\n * | quadrantInternalBorderStrokeWidth | stroke width of edges of the box that are inside the quadrant | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 1\n */\n quadrantInternalBorderStrokeWidth: 1,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------------------------- | -------------------------------------------------------------- | ------- | -------- | ------------------- |\n * | quadrantExternalBorderStrokeWidth | stroke width of edges of the box that are outside the quadrant | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 2\n */\n quadrantExternalBorderStrokeWidth: 2,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |\n * | xAxisLabelPadding | Padding around x-axis labels | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n xAxisLabelPadding: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |\n * | xAxisLabelFontSize | x-axis label font size | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 16\n */\n xAxisLabelFontSize: 16,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------- | ------- | -------- | ------------------- |\n * | xAxisPosition | position of x-axis labels | string | Optional | 'top' or 'bottom' |\n *\n * **Notes:**\n * Default value: top\n */\n xAxisPosition: \"top\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |\n * | yAxisLabelPadding | Padding around y-axis labels | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n yAxisLabelPadding: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |\n * | yAxisLabelFontSize | y-axis label font size | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 16\n */\n yAxisLabelFontSize: 16,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------- | ------- | -------- | ------------------- |\n * | yAxisPosition | position of y-axis labels | string | Optional | 'left' or 'right' |\n *\n * **Notes:**\n * Default value: left\n */\n yAxisPosition: \"left\",\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------------------- | -------------------------------------- | ------- | -------- | ------------------- |\n * | pointTextPadding | padding between point and point label | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n pointTextPadding: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------------------- | ---------------------- | ------- | -------- | ------------------- |\n * | pointTextPadding | point title font size | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 12\n */\n pointLabelFontSize: 12,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------- | ------- | -------- | ------------------- |\n * | pointRadius | radius of the point to be drawn | number | Optional | Any positive number |\n *\n * **Notes:**\n * Default value: 5\n */\n pointRadius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true\n },\n /** The object containing configurations specific for req diagrams */\n requirement: {\n useWidth: void 0,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n rect_fill: \"#f9f9f9\",\n text_color: \"#333\",\n rect_border_size: \"0.5px\",\n rect_border_color: \"#bbb\",\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20\n },\n gitGraph: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n diagramPadding: 8,\n nodeLabel: {\n width: 75,\n height: 100,\n x: -25,\n y: 0\n },\n mainBranchName: \"main\",\n mainBranchOrder: 0,\n showCommitLabel: true,\n showBranches: true,\n rotateCommitLabel: true\n },\n /** The object containing configurations specific for c4 diagrams */\n c4: {\n useWidth: void 0,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------- | ------- | -------- | ------------------ |\n * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n c4ShapeMargin: 50,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------- | ------- | -------- | ------------------ |\n * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n c4ShapePadding: 20,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | width | Width of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 216\n */\n width: 216,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------- | ------- | -------- | ------------------ |\n * | height | Height of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 60\n */\n height: 60,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------- | ------- | -------- | ------------------ |\n * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many shapes to place in each row.\n *\n * Default value: 4\n */\n c4ShapeInRow: 4,\n nextLinePaddingX: 0,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ------------------ |\n * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many boundaries to place in each row.\n *\n * Default value: 2\n */\n c4BoundaryInRow: 2,\n /**\n * This sets the font size of Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n personFontSize: 14,\n /**\n * This sets the font family of Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n personFontWeight: \"normal\",\n /**\n * This sets the font size of External Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_personFontSize: 14,\n /**\n * This sets the font family of External Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_personFontWeight: \"normal\",\n /**\n * This sets the font size of System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n systemFontSize: 14,\n /**\n * This sets the font family of System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n systemFontWeight: \"normal\",\n /**\n * This sets the font size of External System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_systemFontSize: 14,\n /**\n * This sets the font family of External System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_systemFontWeight: \"normal\",\n /**\n * This sets the font size of System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_dbFontSize: 14,\n /**\n * This sets the font family of System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_dbFontWeight: \"normal\",\n /**\n * This sets the font size of External System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_dbFontSize: 14,\n /**\n * This sets the font family of External System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_dbFontWeight: \"normal\",\n /**\n * This sets the font size of System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_queueFontSize: 14,\n /**\n * This sets the font family of System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_queueFontWeight: \"normal\",\n /**\n * This sets the font size of External System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_queueFontSize: 14,\n /**\n * This sets the font family of External System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_queueFontWeight: \"normal\",\n /**\n * This sets the font size of Boundary shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n boundaryFontSize: 14,\n /**\n * This sets the font family of Boundary shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n boundaryFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Boundary shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n boundaryFontWeight: \"normal\",\n /**\n * This sets the font size of Message shape for the diagram\n *\n * **Notes:** Default value: 12.\n */\n messageFontSize: 12,\n /**\n * This sets the font family of Message shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n messageFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Message shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n messageFontWeight: \"normal\",\n /**\n * This sets the font size of Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n containerFontSize: 14,\n /**\n * This sets the font family of Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n containerFontWeight: \"normal\",\n /**\n * This sets the font size of External Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_containerFontSize: 14,\n /**\n * This sets the font family of External Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_containerFontWeight: \"normal\",\n /**\n * This sets the font size of Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_dbFontSize: 14,\n /**\n * This sets the font family of Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_dbFontWeight: \"normal\",\n /**\n * This sets the font size of External Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_dbFontSize: 14,\n /**\n * This sets the font family of External Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_dbFontWeight: \"normal\",\n /**\n * This sets the font size of Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_queueFontSize: 14,\n /**\n * This sets the font family of Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_queueFontWeight: \"normal\",\n /**\n * This sets the font size of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_queueFontSize: 14,\n /**\n * This sets the font family of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_queueFontWeight: \"normal\",\n /**\n * This sets the font size of Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n componentFontSize: 14,\n /**\n * This sets the font family of Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n componentFontWeight: \"normal\",\n /**\n * This sets the font size of External Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_componentFontSize: 14,\n /**\n * This sets the font family of External Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_componentFontWeight: \"normal\",\n /**\n * This sets the font size of Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_dbFontSize: 14,\n /**\n * This sets the font family of Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_dbFontWeight: \"normal\",\n /**\n * This sets the font size of External Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_dbFontSize: 14,\n /**\n * This sets the font family of External Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_dbFontWeight: \"normal\",\n /**\n * This sets the font size of Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_queueFontSize: 14,\n /**\n * This sets the font family of Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_queueFontWeight: \"normal\",\n /**\n * This sets the font size of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_queueFontSize: 14,\n /**\n * This sets the font family of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_queueFontWeight: \"normal\",\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: true.\n */\n wrap: true,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n personFont: function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n },\n external_personFont: function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n },\n systemFont: function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n },\n external_systemFont: function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n },\n system_dbFont: function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n },\n external_system_dbFont: function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n },\n system_queueFont: function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n },\n external_system_queueFont: function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n },\n containerFont: function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n },\n external_containerFont: function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n },\n container_dbFont: function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n },\n external_container_dbFont: function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n },\n container_queueFont: function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n },\n external_container_queueFont: function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n },\n componentFont: function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n },\n external_componentFont: function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n },\n component_dbFont: function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n },\n external_component_dbFont: function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n },\n component_queueFont: function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n },\n external_component_queueFont: function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n },\n boundaryFont: function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n },\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n },\n // ' Colors\n // ' ##################################\n person_bg_color: \"#08427B\",\n person_border_color: \"#073B6F\",\n external_person_bg_color: \"#686868\",\n external_person_border_color: \"#8A8A8A\",\n system_bg_color: \"#1168BD\",\n system_border_color: \"#3C7FC0\",\n system_db_bg_color: \"#1168BD\",\n system_db_border_color: \"#3C7FC0\",\n system_queue_bg_color: \"#1168BD\",\n system_queue_border_color: \"#3C7FC0\",\n external_system_bg_color: \"#999999\",\n external_system_border_color: \"#8A8A8A\",\n external_system_db_bg_color: \"#999999\",\n external_system_db_border_color: \"#8A8A8A\",\n external_system_queue_bg_color: \"#999999\",\n external_system_queue_border_color: \"#8A8A8A\",\n container_bg_color: \"#438DD5\",\n container_border_color: \"#3C7FC0\",\n container_db_bg_color: \"#438DD5\",\n container_db_border_color: \"#3C7FC0\",\n container_queue_bg_color: \"#438DD5\",\n container_queue_border_color: \"#3C7FC0\",\n external_container_bg_color: \"#B3B3B3\",\n external_container_border_color: \"#A6A6A6\",\n external_container_db_bg_color: \"#B3B3B3\",\n external_container_db_border_color: \"#A6A6A6\",\n external_container_queue_bg_color: \"#B3B3B3\",\n external_container_queue_border_color: \"#A6A6A6\",\n component_bg_color: \"#85BBF0\",\n component_border_color: \"#78A8D8\",\n component_db_bg_color: \"#85BBF0\",\n component_db_border_color: \"#78A8D8\",\n component_queue_bg_color: \"#85BBF0\",\n component_queue_border_color: \"#78A8D8\",\n external_component_bg_color: \"#CCCCCC\",\n external_component_border_color: \"#BFBFBF\",\n external_component_db_bg_color: \"#CCCCCC\",\n external_component_db_border_color: \"#BFBFBF\",\n external_component_queue_bg_color: \"#CCCCCC\",\n external_component_queue_border_color: \"#BFBFBF\"\n },\n mindmap: {\n useMaxWidth: true,\n padding: 10,\n maxNodeWidth: 200\n },\n fontSize: 16\n};\nif (config.class) {\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n}\nif (config.gitGraph) {\n config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n}\nconst keyify = (obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []);\nconst configKeys = keyify(config, \"\");\nconst defaultConfig$1 = config;\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence2) {\n if (Array.isArray(sequence2))\n return sequence2;\n else if (isNothing(sequence2))\n return [];\n return [sequence2];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark)\n return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"→\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer)\n return null;\n if (!options.maxLength)\n options.maxLength = 79;\n if (typeof options.indent !== \"number\")\n options.indent = 1;\n if (typeof options.linesBefore !== \"number\")\n options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\")\n options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0)\n foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit)\n implicit = implicit.concat(definition.implicit);\n if (definition.explicit)\n explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null)\n return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function() {\n return \"~\";\n },\n lowercase: function() {\n return \"null\";\n },\n uppercase: function() {\n return \"NULL\";\n },\n camelcase: function() {\n return \"Null\";\n },\n empty: function() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null)\n return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\nfunction resolveYamlInteger(data) {\n if (data === null)\n return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max)\n return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max)\n return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (ch !== \"0\" && ch !== \"1\")\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isHexCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isOctCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\")\n return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\")\n return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\")\n sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\")\n return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\")\n return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\")\n return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\")\n return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */\n hexadecimal: function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null)\n return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([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]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null)\n return false;\n if (YAML_DATE_REGEXP.exec(data) !== null)\n return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)\n return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null)\n match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null)\n throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\")\n delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta)\n date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null)\n return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64)\n continue;\n if (code < 0)\n return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null)\n return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\")\n return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey)\n pairHasKey = true;\n else\n return false;\n }\n }\n if (!pairHasKey)\n return false;\n if (objectKeys.indexOf(pairKey) === -1)\n objectKeys.push(pairKey);\n else\n return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null)\n return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\")\n return false;\n keys = Object.keys(pair);\n if (keys.length !== 1)\n return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null)\n return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null)\n return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null)\n return false;\n }\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"…\" : c === 95 ? \" \" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\nfunction generateError(state2, message) {\n var mark = {\n name: state2.filename,\n buffer: state2.input.slice(0, -1),\n // omit trailing \\0\n position: state2.position,\n line: state2.line,\n column: state2.position - state2.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state2, message) {\n throw generateError(state2, message);\n}\nfunction throwWarning(state2, message) {\n if (state2.onWarning) {\n state2.onWarning.call(null, generateError(state2, message));\n }\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state2, name, args) {\n var match, major, minor;\n if (state2.version !== null) {\n throwError(state2, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state2, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state2, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state2, \"unacceptable YAML version of the document\");\n }\n state2.version = args[0];\n state2.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state2, \"unsupported YAML version of the document\");\n }\n },\n TAG: function handleTagDirective(state2, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state2, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state2, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state2.tagMap, handle)) {\n throwError(state2, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state2, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state2, \"tag prefix is malformed: \" + prefix);\n }\n state2.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state2, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state2.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state2, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state2, \"the stream contains non-printable characters\");\n }\n state2.result += _result;\n }\n}\nfunction mergeMappings(state2, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state2, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state2, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state2, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state2, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state2.line = startLine || state2.line;\n state2.lineStart = startLineStart || state2.lineStart;\n state2.position = startPos || state2.position;\n throwError(state2, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state2) {\n var ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 10) {\n state2.position++;\n } else if (ch === 13) {\n state2.position++;\n if (state2.input.charCodeAt(state2.position) === 10) {\n state2.position++;\n }\n } else {\n throwError(state2, \"a line break is expected\");\n }\n state2.line += 1;\n state2.lineStart = state2.position;\n state2.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state2, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state2.firstTabInLine === -1) {\n state2.firstTabInLine = state2.position;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state2);\n ch = state2.input.charCodeAt(state2.position);\n lineBreaks++;\n state2.lineIndent = 0;\n while (ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) {\n throwWarning(state2, \"deficient indentation\");\n }\n return lineBreaks;\n}\nfunction testDocumentSeparator(state2) {\n var _position = state2.position, ch;\n ch = state2.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state2.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\nfunction writeFoldedLines(state2, count) {\n if (count === 1) {\n state2.result += \" \";\n } else if (count > 1) {\n state2.result += common.repeat(\"\\n\", count - 1);\n }\n}\nfunction readPlainScalar(state2, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state2.input.charCodeAt(state2.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state2.line;\n _lineStart = state2.lineStart;\n _lineIndent = state2.lineIndent;\n skipSeparationSpace(state2, false, -1);\n if (state2.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state2.input.charCodeAt(state2.position);\n continue;\n } else {\n state2.position = captureEnd;\n state2.line = _line;\n state2.lineStart = _lineStart;\n state2.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state2, captureStart, captureEnd, false);\n writeFoldedLines(state2, state2.line - _line);\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state2.position + 1;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, captureEnd, false);\n if (state2.result) {\n return true;\n }\n state2.kind = _kind;\n state2.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state2, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 39) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 39) {\n captureStart = state2.position;\n state2.position++;\n captureEnd = state2.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state2, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 34) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state2, captureStart, state2.position, true);\n state2.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state2, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state2.result += simpleEscapeMap[ch];\n state2.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state2.input.charCodeAt(++state2.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state2, \"expected hexadecimal character\");\n }\n }\n state2.result += charFromCodepoint(hexResult);\n state2.position++;\n } else {\n throwError(state2, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state2.position;\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state2, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(++state2.position);\n while (ch !== 0) {\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === terminator) {\n state2.position++;\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = isMapping ? \"mapping\" : \"sequence\";\n state2.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state2, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state2, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state2.position++;\n skipSeparationSpace(state2, true, nodeIndent);\n }\n }\n _line = state2.line;\n _lineStart = state2.lineStart;\n _pos = state2.position;\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state2.tag;\n keyNode = state2.result;\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if ((isExplicitPair || state2.line === _line) && ch === 58) {\n isPair = true;\n ch = state2.input.charCodeAt(++state2.position);\n skipSeparationSpace(state2, true, nodeIndent);\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state2.result;\n }\n if (isMapping) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 44) {\n readNext = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n readNext = false;\n }\n }\n throwError(state2, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state2, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n while (ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state2, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state2, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state2, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state2);\n state2.lineIndent = 0;\n ch = state2.input.charCodeAt(state2.position);\n while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (!detectedIndent && state2.lineIndent > textIndent) {\n textIndent = state2.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state2.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state2.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state2.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state2.result += \" \";\n }\n } else {\n state2.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state2.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, state2.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state2, nodeIndent) {\n var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state2.input.charCodeAt(state2.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state2.position++;\n if (skipSeparationSpace(state2, true, -1)) {\n if (state2.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state2.input.charCodeAt(state2.position);\n continue;\n }\n }\n _line = state2.line;\n composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state2.result);\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a sequence entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"sequence\";\n state2.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state2, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (!atExplicitKey && state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n following = state2.input.charCodeAt(state2.position + 1);\n _line = state2.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state2, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state2.position += 1;\n ch = following;\n } else {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state2.line === _line) {\n ch = state2.input.charCodeAt(state2.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 58) {\n ch = state2.input.charCodeAt(++state2.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state2, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state2.tag;\n keyNode = state2.result;\n } else if (detected) {\n throwError(state2, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state2, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n }\n if (state2.line === _line || state2.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n }\n if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state2.result;\n } else {\n valueNode = state2.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n }\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a mapping entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"mapping\";\n state2.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state2) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 33)\n return false;\n if (state2.tag !== null) {\n throwError(state2, \"duplication of a tag property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state2.position;\n if (isVerbatim) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && ch !== 62);\n if (state2.position < state2.length) {\n tagName = state2.input.slice(_position, state2.position);\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n throwError(state2, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state2.input.slice(_position - 1, state2.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state2, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state2.position + 1;\n } else {\n throwError(state2, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n tagName = state2.input.slice(_position, state2.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state2, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state2, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state2, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state2.tag = tagName;\n } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) {\n state2.tag = state2.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state2.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state2.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state2, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\nfunction readAnchorProperty(state2) {\n var _position, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 38)\n return false;\n if (state2.anchor !== null) {\n throwError(state2, \"duplication of an anchor property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an anchor node must contain at least one character\");\n }\n state2.anchor = state2.input.slice(_position, state2.position);\n return true;\n}\nfunction readAlias(state2) {\n var _position, alias, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 42)\n return false;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an alias node must contain at least one character\");\n }\n alias = state2.input.slice(_position, state2.position);\n if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) {\n throwError(state2, 'unidentified alias \"' + alias + '\"');\n }\n state2.result = state2.anchorMap[alias];\n skipSeparationSpace(state2, true, -1);\n return true;\n}\nfunction composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state2.listener !== null) {\n state2.listener(\"open\", state2);\n }\n state2.tag = null;\n state2.anchor = null;\n state2.kind = null;\n state2.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state2) || readAnchorProperty(state2)) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state2.position - state2.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state2)) {\n hasContent = true;\n if (state2.tag !== null || state2.anchor !== null) {\n throwError(state2, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state2.tag === null) {\n state2.tag = \"?\";\n }\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent);\n }\n }\n if (state2.tag === null) {\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n } else if (state2.tag === \"?\") {\n if (state2.result !== null && state2.kind !== \"scalar\") {\n throwError(state2, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state2.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state2.implicitTypes[typeIndex];\n if (type2.resolve(state2.result)) {\n state2.result = type2.construct(state2.result);\n state2.tag = type2.tag;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n break;\n }\n }\n } else if (state2.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || \"fallback\"], state2.tag)) {\n type2 = state2.typeMap[state2.kind || \"fallback\"][state2.tag];\n } else {\n type2 = null;\n typeList = state2.typeMap.multi[state2.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state2, \"unknown tag !<\" + state2.tag + \">\");\n }\n if (state2.result !== null && type2.kind !== state2.kind) {\n throwError(state2, \"unacceptable node kind for !<\" + state2.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state2.kind + '\"');\n }\n if (!type2.resolve(state2.result, state2.tag)) {\n throwError(state2, \"cannot resolve a node with !<\" + state2.tag + \"> explicit tag\");\n } else {\n state2.result = type2.construct(state2.result, state2.tag);\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n }\n if (state2.listener !== null) {\n state2.listener(\"close\", state2);\n }\n return state2.tag !== null || state2.anchor !== null || hasContent;\n}\nfunction readDocument(state2) {\n var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state2.version = null;\n state2.checkLineBreaks = state2.legacy;\n state2.tagMap = /* @__PURE__ */ Object.create(null);\n state2.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if (state2.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveName = state2.input.slice(_position, state2.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state2, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch))\n break;\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveArgs.push(state2.input.slice(_position, state2.position));\n }\n if (ch !== 0)\n readLineBreak(state2);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state2, directiveName, directiveArgs);\n } else {\n throwWarning(state2, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state2, true, -1);\n if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n } else if (hasDirectives) {\n throwError(state2, \"directives end mark is expected\");\n }\n composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state2, true, -1);\n if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) {\n throwWarning(state2, \"non-ASCII line breaks are interpreted as content\");\n }\n state2.documents.push(state2.result);\n if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n if (state2.input.charCodeAt(state2.position) === 46) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n }\n return;\n }\n if (state2.position < state2.length - 1) {\n throwError(state2, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state2 = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state2.position = nullpos;\n throwError(state2, \"null byte is not allowed in input\");\n }\n state2.input += \"\\0\";\n while (state2.input.charCodeAt(state2.position) === 32) {\n state2.lineIndent += 1;\n state2.position += 1;\n }\n while (state2.position < state2.length - 1) {\n readDocument(state2);\n }\n return state2.documents;\n}\nfunction loadAll$1(input, iterator2, options) {\n if (iterator2 !== null && typeof iterator2 === \"object\" && typeof options === \"undefined\") {\n options = iterator2;\n iterator2 = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator2 !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator2(documents[index]);\n }\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader$j = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar FAILSAFE_SCHEMA = failsafe;\nvar load = loader$j.load;\nconst frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nfunction extractFrontMatter(text, db) {\n var _a, _b;\n const matches = text.match(frontMatterRegex);\n if (matches) {\n const parsed = load(matches[1], {\n // To keep things simple, only allow strings, arrays, and plain objects.\n // https://www.yaml.org/spec/1.2/spec.html#id2802346\n schema: FAILSAFE_SCHEMA\n });\n if (parsed == null ? void 0 : parsed.title) {\n (_a = db.setDiagramTitle) == null ? void 0 : _a.call(db, parsed.title);\n }\n if (parsed == null ? void 0 : parsed.displayMode) {\n (_b = db.setDisplayMode) == null ? void 0 : _b.call(db, parsed.displayMode);\n }\n return text.slice(matches[0].length);\n } else {\n return text;\n }\n}\nconst assignWithDepth = function(dst, src, config2) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config2);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\nconst assignWithDepth$1 = assignWithDepth;\nconst defaultConfig = Object.freeze(defaultConfig$1);\nlet siteConfig = assignWithDepth$1({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth$1({}, defaultConfig);\nconst updateCurrentConfig = (siteCfg, _directives) => {\n let cfg = assignWithDepth$1({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);\n }\n cfg = assignWithDepth$1(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {\n const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);\n const themeVariables = assignWithDepth$1(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in theme) {\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n};\nconst setSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1({}, defaultConfig);\n siteConfig = assignWithDepth$1(siteConfig, conf);\n if (conf.theme && theme[conf.theme]) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst saveConfigFromInitialize = (conf) => {\n configFromInitialize = assignWithDepth$1({}, conf);\n};\nconst updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst getSiteConfig = () => {\n return assignWithDepth$1({}, siteConfig);\n};\nconst setConfig = (conf) => {\n checkConfig(conf);\n assignWithDepth$1(currentConfig, conf);\n return getConfig$1();\n};\nconst getConfig$1 = () => {\n return assignWithDepth$1({}, currentConfig);\n};\nconst sanitize = (options) => {\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (options[key] !== void 0) {\n log$1.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.indexOf(\"__\") === 0) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n};\nconst addDirective = (directive2) => {\n if (directive2.fontFamily) {\n if (!directive2.themeVariables) {\n directive2.themeVariables = { fontFamily: directive2.fontFamily };\n } else {\n if (!directive2.themeVariables.fontFamily) {\n directive2.themeVariables = { fontFamily: directive2.fontFamily };\n }\n }\n }\n directives.push(directive2);\n updateCurrentConfig(siteConfig, directives);\n};\nconst reset = (config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n};\nvar ConfigWarning = /* @__PURE__ */ ((ConfigWarning2) => {\n ConfigWarning2[\"LAZY_LOAD_DEPRECATED\"] = \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\";\n return ConfigWarning2;\n})(ConfigWarning || {});\nconst issuedWarnings = {};\nconst issueWarning = (warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log$1.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n};\nconst checkConfig = (config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n};\nconst d3Attrs = function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\nconst calculateSvgSizeAttrs = function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n};\nconst configureSvgSize = function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\nconst setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log$1.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log$1.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n};\nconst themes = {};\nconst getStyles$1 = (type2, userStyles, options) => {\n let diagramStyles = \"\";\n if (type2 in themes && themes[type2]) {\n diagramStyles = themes[type2](options);\n } else {\n log$1.warn(`No theme found for ${type2}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n};\nconst addStylesForDiagram = (type2, diagramTheme) => {\n themes[type2] = diagramTheme;\n};\nconst getStyles$2 = getStyles$1;\nlet title = \"\";\nlet diagramTitle = \"\";\nlet description = \"\";\nconst sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1());\nconst clear = function() {\n title = \"\";\n description = \"\";\n diagramTitle = \"\";\n};\nconst setAccTitle = function(txt) {\n title = sanitizeText$1(txt).replace(/^\\s+/g, \"\");\n};\nconst getAccTitle = function() {\n return title || diagramTitle;\n};\nconst setAccDescription = function(txt) {\n description = sanitizeText$1(txt).replace(/\\n\\s+/g, \"\\n\");\n};\nconst getAccDescription = function() {\n return description;\n};\nconst setDiagramTitle = function(txt) {\n diagramTitle = sanitizeText$1(txt);\n};\nconst getDiagramTitle = function() {\n return diagramTitle;\n};\nconst commonDb = {\n getAccTitle,\n setAccTitle,\n getDiagramTitle,\n setDiagramTitle,\n getAccDescription,\n setAccDescription,\n clear\n};\nconst commonDb$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n clear,\n default: commonDb,\n getAccDescription,\n getAccTitle,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n}, Symbol.toStringTag, { value: \"Module\" }));\nlet currentDirective = {};\nconst parseDirective$1 = function(p, statement, context, type2) {\n log$1.debug(\"parseDirective is being called\", statement, context, type2);\n try {\n if (statement !== void 0) {\n statement = statement.trim();\n switch (context) {\n case \"open_directive\":\n currentDirective = {};\n break;\n case \"type_directive\":\n if (!currentDirective) {\n throw new Error(\"currentDirective is undefined\");\n }\n currentDirective.type = statement.toLowerCase();\n break;\n case \"arg_directive\":\n if (!currentDirective) {\n throw new Error(\"currentDirective is undefined\");\n }\n currentDirective.args = JSON.parse(statement);\n break;\n case \"close_directive\":\n handleDirective(p, currentDirective, type2);\n currentDirective = void 0;\n break;\n }\n }\n } catch (error) {\n log$1.error(\n `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`\n );\n log$1.error(error.message);\n }\n};\nconst handleDirective = function(p, directive2, type2) {\n log$1.info(`Directive type=${directive2.type} with args:`, directive2.args);\n switch (directive2.type) {\n case \"init\":\n case \"initialize\": {\n [\"config\"].forEach((prop) => {\n if (directive2.args[prop] !== void 0) {\n if (type2 === \"flowchart-v2\") {\n type2 = \"flowchart\";\n }\n directive2.args[type2] = directive2.args[prop];\n delete directive2.args[prop];\n }\n });\n log$1.info(\"sanitize in handleDirective\", directive2.args);\n directiveSanitizer(directive2.args);\n log$1.info(\"sanitize in handleDirective (done)\", directive2.args);\n addDirective(directive2.args);\n break;\n }\n case \"wrap\":\n case \"nowrap\":\n if (p && p[\"setWrap\"]) {\n p.setWrap(directive2.type === \"wrap\");\n }\n break;\n case \"themeCss\":\n log$1.warn(\"themeCss encountered\");\n break;\n default:\n log$1.warn(\n `Unhandled directive: source: '%%{${directive2.type}: ${JSON.stringify(\n directive2.args ? directive2.args : {}\n )}}%%`,\n directive2\n );\n break;\n }\n};\nconst log = log$1;\nconst setLogLevel = setLogLevel$1;\nconst getConfig = getConfig$1;\nconst sanitizeText = (text) => sanitizeText$2(text, getConfig());\nconst setupGraphViewbox = setupGraphViewbox$1;\nconst getCommonDb = () => {\n return commonDb$1;\n};\nconst parseDirective = (p, statement, context, type2) => parseDirective$1(p, statement, context, type2);\nconst diagrams = {};\nconst registerDiagram = (id2, diagram2, detector2) => {\n if (diagrams[id2]) {\n throw new Error(`Diagram ${id2} already registered.`);\n }\n diagrams[id2] = diagram2;\n if (detector2) {\n addDetector(id2, detector2);\n }\n addStylesForDiagram(id2, diagram2.styles);\n if (diagram2.injectUtils) {\n diagram2.injectUtils(\n log,\n setLogLevel,\n getConfig,\n sanitizeText,\n setupGraphViewbox,\n getCommonDb(),\n parseDirective\n );\n }\n};\nconst getDiagram = (name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new Error(`Diagram ${name} not found.`);\n};\nclass UnknownDiagramError extends Error {\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n}\nconst directive$1 = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\nconst detectors = {};\nconst detectType = function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directive$1, \"\").replace(anyComment, \"\\n\");\n for (const [key, { detector: detector2 }] of Object.entries(detectors)) {\n const diagram2 = detector2(text, config2);\n if (diagram2) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n};\nconst registerLazyLoadedDiagrams = (...diagrams2) => {\n for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) {\n addDetector(id2, detector2, loader2);\n }\n};\nconst loadRegisteredDiagrams = async () => {\n log$1.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => {\n if (loader2) {\n try {\n getDiagram(key);\n } catch (error) {\n try {\n const { diagram: diagram2, id: id2 } = await loader2();\n registerDiagram(id2, diagram2, detector2);\n } catch (err) {\n log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log$1.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log$1.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n};\nconst addDetector = (key, detector2, loader2) => {\n if (detectors[key]) {\n log$1.error(`Detector with key ${key} already exists`);\n } else {\n detectors[key] = { detector: detector2, loader: loader2 };\n }\n log$1.debug(`Detector with key ${key} added${loader2 ? \" with loader\" : \"\"}`);\n};\nconst getDiagramLoader = (key) => {\n return detectors[key].loader;\n};\nconst ZERO_WIDTH_SPACE = \"​\";\nconst d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nconst directive = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst detectInit = function(text, config2) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init2) => init2.args);\n directiveSanitizer(args);\n results = assignWithDepth$1(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type2 = detectType(text, config2);\n [\"config\"].forEach((prop) => {\n if (results[prop] !== void 0) {\n if (type2 === \"flowchart-v2\") {\n type2 = \"flowchart\";\n }\n results[type2] = results[prop];\n delete results[prop];\n }\n });\n }\n return results;\n};\nconst detectDirective = function(text, type2 = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log$1.debug(\n `Detecting diagram directive${type2 !== null ? \" type:\" + type2 : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directive.exec(text)) !== null) {\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {\n const type22 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type22, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log$1.error(\n `ERROR: ${error.message} - Unable to parse directive\n ${type2 !== null ? \" type:\" + type2 : \"\"} based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\nconst isSubstringInArray = function(str2, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str2)) {\n return i;\n }\n }\n return -1;\n};\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n}\nfunction formatUrl(linkStr, config2) {\n const url = linkStr.trim();\n if (url) {\n if (config2.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n }\n}\nconst runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n return;\n }\n }\n obj[fnName](...params);\n};\nfunction distance(p1, p2) {\n return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n}\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n let remainingDistance = totalDistance / 2;\n let center = void 0;\n prevPoint = void 0;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n center = prevPoint;\n }\n if (distanceRatio >= 1) {\n center = { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n}\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n log$1.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = void 0;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n center = prevPoint;\n }\n if (distanceRatio >= 1) {\n center = { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n let points = JSON.parse(JSON.stringify(_points));\n let prevPoint;\n log$1.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points = points.reverse();\n }\n points.forEach((point) => {\n prevPoint = point;\n });\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = void 0;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n center = prevPoint;\n }\n if (distanceRatio >= 1) {\n center = { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n }\n if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n }\n if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n }\n return cardinalityPosition;\n}\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\nlet cnt = 0;\nconst generateId = () => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n};\nfunction makeid(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\nconst random = (options) => {\n return makeid(options.length);\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0\n };\n};\nconst drawSimpleText = function(elem, textData) {\n const nText = textData.text.replace(common$1.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n};\nconst wrapLabel = memoize(\n (label, maxWidth, config2) => {\n if (!label) {\n return label;\n }\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"
    \" },\n config2\n );\n if (common$1.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \");\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config2);\n const nextLineLength = calculateTextWidth(nextLine, config2);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config2);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config2.joinWith);\n },\n (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}`\n);\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config2) => {\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config2\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config2);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nfunction calculateTextHeight(text, config2) {\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 15 },\n config2\n );\n return calculateTextDimensions(text, config2).height;\n}\nfunction calculateTextWidth(text, config2) {\n config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: \"Arial\" }, config2);\n return calculateTextDimensions(text, config2).width;\n}\nconst calculateTextDimensions = memoize(\n (text, config2) => {\n config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: \"Arial\" }, config2);\n const { fontSize, fontFamily, fontWeight } = config2;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common$1.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cheight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config2) => `${text}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nconst initIdGenerator = class iterator {\n constructor(deterministic, seed) {\n this.deterministic = deterministic;\n this.seed = seed;\n this.count = seed ? seed.length : 0;\n }\n next() {\n if (!this.deterministic) {\n return Date.now();\n }\n return this.count++;\n }\n};\nlet decoder;\nconst entityDecode = function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\nconst directiveSanitizer = (args) => {\n log$1.debug(\"directiveSanitizer called with\", args);\n if (typeof args === \"object\") {\n if (args.length) {\n args.forEach((arg) => directiveSanitizer(arg));\n } else {\n Object.keys(args).forEach((key) => {\n log$1.debug(\"Checking key\", key);\n if (key.startsWith(\"__\")) {\n log$1.debug(\"sanitize deleting __ option\", key);\n delete args[key];\n }\n if (key.includes(\"proto\")) {\n log$1.debug(\"sanitize deleting proto option\", key);\n delete args[key];\n }\n if (key.includes(\"constr\")) {\n log$1.debug(\"sanitize deleting constr option\", key);\n delete args[key];\n }\n if (key.includes(\"themeCSS\")) {\n log$1.debug(\"sanitizing themeCss option\");\n args[key] = sanitizeCss(args[key]);\n }\n if (key.includes(\"fontFamily\")) {\n log$1.debug(\"sanitizing fontFamily option\");\n args[key] = sanitizeCss(args[key]);\n }\n if (key.includes(\"altFontFamily\")) {\n log$1.debug(\"sanitizing altFontFamily option\");\n args[key] = sanitizeCss(args[key]);\n }\n if (!configKeys.includes(key)) {\n log$1.debug(\"sanitize deleting option\", key);\n delete args[key];\n } else {\n if (typeof args[key] === \"object\") {\n log$1.debug(\"sanitize deleting object\", key);\n directiveSanitizer(args[key]);\n }\n }\n });\n }\n }\n if (args.themeVariables) {\n const kArr = Object.keys(args.themeVariables);\n for (const k of kArr) {\n const val = args.themeVariables[k];\n if (val && val.match && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log$1.debug(\"After sanitization\", args);\n};\nconst sanitizeCss = (str2) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str2) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str2;\n};\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\nfunction getErrorMessage(error) {\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\nconst insertTitle = (parent, cssClass, titleTopMargin, title2) => {\n if (!title2) {\n return;\n }\n const bounds = parent.node().getBBox();\n parent.append(\"text\").text(title2).attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n};\nconst parseFontSize = (fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize, 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n};\nconst utils = {\n assignWithDepth: assignWithDepth$1,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n initIdGenerator,\n directiveSanitizer,\n sanitizeCss,\n insertTitle,\n parseFontSize\n};\nconst version = \"10.2.3\";\nconst id$i = \"c4\";\nconst detector$i = (txt) => {\n return txt.match(/^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null;\n};\nconst loader$i = async () => {\n const { diagram: diagram2 } = await import(\"./c4Diagram-9cddb37f.js\");\n return { id: id$i, diagram: diagram2 };\n};\nconst plugin$i = {\n id: id$i,\n detector: detector$i,\n loader: loader$i\n};\nconst c4 = plugin$i;\nconst id$h = \"flowchart\";\nconst detector$h = (txt, config2) => {\n var _a, _b;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n return txt.match(/^\\s*graph/) !== null;\n};\nconst loader$h = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-93327f21.js\");\n return { id: id$h, diagram: diagram2 };\n};\nconst plugin$h = {\n id: id$h,\n detector: detector$h,\n loader: loader$h\n};\nconst flowchart = plugin$h;\nconst id$g = \"flowchart-v2\";\nconst detector$g = (txt, config2) => {\n var _a, _b, _c;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-d3\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n if (txt.match(/^\\s*graph/) !== null && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return txt.match(/^\\s*flowchart/) !== null;\n};\nconst loader$g = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-v2-476db779.js\");\n return { id: id$g, diagram: diagram2 };\n};\nconst plugin$g = {\n id: id$g,\n detector: detector$g,\n loader: loader$g\n};\nconst flowchartV2 = plugin$g;\nconst id$f = \"er\";\nconst detector$f = (txt) => {\n return txt.match(/^\\s*erDiagram/) !== null;\n};\nconst loader$f = async () => {\n const { diagram: diagram2 } = await import(\"./erDiagram-f6946109.js\");\n return { id: id$f, diagram: diagram2 };\n};\nconst plugin$f = {\n id: id$f,\n detector: detector$f,\n loader: loader$f\n};\nconst er = plugin$f;\nconst id$e = \"gitGraph\";\nconst detector$e = (txt) => {\n return txt.match(/^\\s*gitGraph/) !== null;\n};\nconst loader$e = async () => {\n const { diagram: diagram2 } = await import(\"./gitGraphDiagram-1e960c50.js\");\n return { id: id$e, diagram: diagram2 };\n};\nconst plugin$e = {\n id: id$e,\n detector: detector$e,\n loader: loader$e\n};\nconst git = plugin$e;\nconst id$d = \"gantt\";\nconst detector$d = (txt) => {\n return txt.match(/^\\s*gantt/) !== null;\n};\nconst loader$d = async () => {\n const { diagram: diagram2 } = await import(\"./ganttDiagram-7ce12d6b.js\");\n return { id: id$d, diagram: diagram2 };\n};\nconst plugin$d = {\n id: id$d,\n detector: detector$d,\n loader: loader$d\n};\nconst gantt = plugin$d;\nconst id$c = \"info\";\nconst detector$c = (txt) => {\n return txt.match(/^\\s*info/) !== null;\n};\nconst loader$c = async () => {\n const { diagram: diagram2 } = await import(\"./infoDiagram-264bed3e.js\");\n return { id: id$c, diagram: diagram2 };\n};\nconst plugin$c = {\n id: id$c,\n detector: detector$c,\n loader: loader$c\n};\nconst info = plugin$c;\nconst id$b = \"pie\";\nconst detector$b = (txt) => {\n return txt.match(/^\\s*pie/) !== null;\n};\nconst loader$b = async () => {\n const { diagram: diagram2 } = await import(\"./pieDiagram-157505fe.js\");\n return { id: id$b, diagram: diagram2 };\n};\nconst plugin$b = {\n id: id$b,\n detector: detector$b,\n loader: loader$b\n};\nconst pie = plugin$b;\nconst id$a = \"quadrantChart\";\nconst detector$a = (txt) => {\n return txt.match(/^\\s*quadrantChart/) !== null;\n};\nconst loader$a = async () => {\n const { diagram: diagram2 } = await import(\"./quadrantDiagram-fd70f2d0.js\");\n return { id: id$a, diagram: diagram2 };\n};\nconst plugin$a = {\n id: id$a,\n detector: detector$a,\n loader: loader$a\n};\nconst quadrantChart = plugin$a;\nconst id$9 = \"requirement\";\nconst detector$9 = (txt) => {\n return txt.match(/^\\s*requirement(Diagram)?/) !== null;\n};\nconst loader$9 = async () => {\n const { diagram: diagram2 } = await import(\"./requirementDiagram-19c99588.js\");\n return { id: id$9, diagram: diagram2 };\n};\nconst plugin$9 = {\n id: id$9,\n detector: detector$9,\n loader: loader$9\n};\nconst requirement = plugin$9;\nconst id$8 = \"sequence\";\nconst detector$8 = (txt) => {\n return txt.match(/^\\s*sequenceDiagram/) !== null;\n};\nconst loader$8 = async () => {\n const { diagram: diagram2 } = await import(\"./sequenceDiagram-5dfd0049.js\");\n return { id: id$8, diagram: diagram2 };\n};\nconst plugin$8 = {\n id: id$8,\n detector: detector$8,\n loader: loader$8\n};\nconst sequence = plugin$8;\nconst id$7 = \"class\";\nconst detector$7 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return txt.match(/^\\s*classDiagram/) !== null;\n};\nconst loader$7 = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-bc733c3b.js\");\n return { id: id$7, diagram: diagram2 };\n};\nconst plugin$7 = {\n id: id$7,\n detector: detector$7,\n loader: loader$7\n};\nconst classDiagram = plugin$7;\nconst id$6 = \"classDiagram\";\nconst detector$6 = (txt, config2) => {\n var _a;\n if (txt.match(/^\\s*classDiagram/) !== null && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return txt.match(/^\\s*classDiagram-v2/) !== null;\n};\nconst loader$6 = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-v2-8931bdaf.js\");\n return { id: id$6, diagram: diagram2 };\n};\nconst plugin$6 = {\n id: id$6,\n detector: detector$6,\n loader: loader$6\n};\nconst classDiagramV2 = plugin$6;\nconst id$5 = \"state\";\nconst detector$5 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return txt.match(/^\\s*stateDiagram/) !== null;\n};\nconst loader$5 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-133e3642.js\");\n return { id: id$5, diagram: diagram2 };\n};\nconst plugin$5 = {\n id: id$5,\n detector: detector$5,\n loader: loader$5\n};\nconst state = plugin$5;\nconst id$4 = \"stateDiagram\";\nconst detector$4 = (text, config2) => {\n var _a, _b;\n if (text.match(/^\\s*stateDiagram-v2/) !== null) {\n return true;\n }\n if (text.match(/^\\s*stateDiagram/) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n if (text.match(/^\\s*stateDiagram/) && ((_b = config2 == null ? void 0 : config2.state) == null ? void 0 : _b.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return false;\n};\nconst loader$4 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-v2-6371a76b.js\");\n return { id: id$4, diagram: diagram2 };\n};\nconst plugin$4 = {\n id: id$4,\n detector: detector$4,\n loader: loader$4\n};\nconst stateV2 = plugin$4;\nconst id$3 = \"journey\";\nconst detector$3 = (txt) => {\n return txt.match(/^\\s*journey/) !== null;\n};\nconst loader$3 = async () => {\n const { diagram: diagram2 } = await import(\"./journeyDiagram-31be0096.js\");\n return { id: id$3, diagram: diagram2 };\n};\nconst plugin$3 = {\n id: id$3,\n detector: detector$3,\n loader: loader$3\n};\nconst journey = plugin$3;\nconst getStyles = () => ``;\nconst styles = getStyles;\nconst setConf = function() {\n};\nconst draw = (_text, id2, mermaidVersion) => {\n try {\n log$1.debug(\"Renering svg for syntax error\\n\");\n const svg = select(\"#\" + id2);\n const g = svg.append(\"g\");\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.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\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(\"mermaid version \" + mermaidVersion);\n svg.attr(\"height\", 100);\n svg.attr(\"width\", 500);\n svg.attr(\"viewBox\", \"768 0 912 512\");\n } catch (e) {\n log$1.error(\"Error while rendering info diagram\");\n log$1.error(getErrorMessage(e));\n }\n};\nconst errorRenderer = {\n setConf,\n draw\n};\nconst diagram = {\n db: {\n clear: () => {\n }\n },\n styles,\n renderer: errorRenderer,\n parser: {\n parser: { yy: {} },\n parse: () => {\n }\n },\n init: () => {\n }\n};\nconst errorDiagram = diagram;\nconst id$2 = \"flowchart-elk\";\nconst detector$2 = (txt, config2) => {\n var _a;\n if (\n // If diagram explicitly states flowchart-elk\n txt.match(/^\\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk\n txt.match(/^\\s*flowchart|graph/) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"elk\"\n ) {\n return true;\n }\n return false;\n};\nconst loader$2 = async () => {\n const { diagram: diagram2 } = await import(\"./flowchart-elk-definition-5082a990.js\");\n return { id: id$2, diagram: diagram2 };\n};\nconst plugin$2 = {\n id: id$2,\n detector: detector$2,\n loader: loader$2\n};\nconst flowchartElk = plugin$2;\nconst id$1 = \"timeline\";\nconst detector$1 = (txt) => {\n return txt.match(/^\\s*timeline/) !== null;\n};\nconst loader$1 = async () => {\n const { diagram: diagram2 } = await import(\"./timeline-definition-5ed366f4.js\");\n return { id: id$1, diagram: diagram2 };\n};\nconst plugin$1 = {\n id: id$1,\n detector: detector$1,\n loader: loader$1\n};\nconst timeline = plugin$1;\nconst id = \"mindmap\";\nconst detector = (txt) => {\n return txt.match(/^\\s*mindmap/) !== null;\n};\nconst loader = async () => {\n const { diagram: diagram2 } = await import(\"./mindmap-definition-4fc2557c.js\");\n return { id, diagram: diagram2 };\n};\nconst plugin = {\n id,\n detector,\n loader\n};\nconst mindmap = plugin;\nlet hasLoadedDiagrams = false;\nconst addDiagrams = () => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: () => {\n }\n },\n styles: {},\n // should never be used\n renderer: {},\n // should never be used\n parser: {\n parser: { yy: {} },\n parse: () => {\n throw new Error(\n \"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\"\n );\n }\n },\n init: () => null\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n registerLazyLoadedDiagrams(\n c4,\n classDiagramV2,\n classDiagram,\n er,\n gantt,\n info,\n pie,\n requirement,\n sequence,\n flowchartElk,\n flowchartV2,\n flowchart,\n mindmap,\n timeline,\n git,\n stateV2,\n state,\n journey,\n quadrantChart\n );\n};\nconst cleanupComments = (text) => {\n return text.trimStart().replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\");\n};\nclass Diagram {\n constructor(text) {\n var _a, _b;\n this.text = text;\n this.type = \"graph\";\n this.text += \"\\n\";\n const cnf = getConfig$1();\n try {\n this.type = detectType(text, cnf);\n } catch (e) {\n this.type = \"error\";\n this.detectError = e;\n }\n const diagram2 = getDiagram(this.type);\n log$1.debug(\"Type \" + this.type);\n this.db = diagram2.db;\n (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);\n this.renderer = diagram2.renderer;\n this.parser = diagram2.parser;\n const originalParse = this.parser.parse.bind(this.parser);\n this.parser.parse = (text2) => originalParse(cleanupComments(extractFrontMatter(text2, this.db)));\n this.parser.parser.yy = this.db;\n if (diagram2.init) {\n diagram2.init(cnf);\n log$1.info(\"Initialized diagram \" + this.type, cnf);\n }\n this.parse();\n }\n parse() {\n var _a, _b;\n if (this.detectError) {\n throw this.detectError;\n }\n (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);\n this.parser.parse(this.text);\n }\n async render(id2, version2) {\n await this.renderer.draw(this.text, id2, version2, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n}\nconst getDiagramFromText = async (text) => {\n const type2 = detectType(text, getConfig$1());\n try {\n getDiagram(type2);\n } catch (error) {\n const loader2 = getDiagramLoader(type2);\n if (!loader2) {\n throw new UnknownDiagramError(`Diagram ${type2} not found.`);\n }\n const { id: id2, diagram: diagram2 } = await loader2();\n registerDiagram(id2, diagram2);\n }\n return new Diagram(text);\n};\nlet interactionFunctions = [];\nconst addFunction = (func) => {\n interactionFunctions.push(func);\n};\nconst attachFunctions = () => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n};\nconst SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (!isEmpty(diagramType)) {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yTitle || a11yDesc) {\n if (a11yDesc) {\n const descId = \"chart-desc-\" + baseId;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = \"chart-title-\" + baseId;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n } else {\n return;\n }\n}\nconst CLASSDEF_DIAGRAMS = [\n \"graph\",\n \"flowchart\",\n \"flowchart-v2\",\n \"flowchart-elk\",\n \"stateDiagram\",\n \"stateDiagram-v2\"\n];\nconst MAX_TEXTLENGTH = 5e4;\nconst MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nconst SECURITY_LVL_SANDBOX = \"sandbox\";\nconst SECURITY_LVL_LOOSE = \"loose\";\nconst XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nconst XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nconst XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nconst IFRAME_WIDTH = \"100%\";\nconst IFRAME_HEIGHT = \"100%\";\nconst IFRAME_STYLES = \"border:0;margin:0;\";\nconst IFRAME_BODY_STYLE = \"margin:0\";\nconst IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nconst IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nconst DOMPURIFY_TAGS = [\"foreignobject\"];\nconst DOMPURIFY_ATTR = [\"dominant-baseline\"];\nasync function parse$1(text, parseOptions) {\n addDiagrams();\n try {\n const diagram2 = await getDiagramFromText(text);\n diagram2.parse();\n } catch (error) {\n if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {\n return false;\n }\n throw error;\n }\n return true;\n}\nconst encodeEntities = function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"fl°°\" + innerTxt + \"¶ß\";\n } else {\n return \"fl°\" + innerTxt + \"¶ß\";\n }\n });\n return txt;\n};\nconst decodeEntities = function(text) {\n return text.replace(/fl°°/g, \"&#\").replace(/fl°/g, \"&\").replace(/¶ß/g, \";\");\n};\nconst cssImportantStyles = (cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n};\nconst createCssStyles = (config2, graphType, classDefs = {}) => {\n var _a;\n let cssStyles = \"\";\n if (config2.themeCSS !== void 0) {\n cssStyles += `\n${config2.themeCSS}`;\n }\n if (config2.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config2.fontFamily}}`;\n }\n if (config2.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;\n }\n if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) {\n const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels);\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n for (const classId in classDefs) {\n const styleClassDef = classDefs[classId];\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(styleClassDef.id, \"tspan\", styleClassDef.textStyles);\n }\n }\n }\n return cssStyles;\n};\nconst createUserStyles = (config2, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config2, graphType, classDefs);\n const allStyles = getStyles$2(graphType, userCSSstyles, config2.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n};\nconst cleanUpSvgCode = (svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/
    /g, \"
    \");\n return cleanedUpSvg;\n};\nconst putIntoIFrame = (svgCode = \"\", svgElement) => {\n const height = svgElement ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = btoa('' + svgCode + \"\");\n return ``;\n};\nconst appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id2).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n};\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\nconst removeExistingElements = (doc, id2, divId, iFrameId) => {\n var _a, _b, _c;\n (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();\n (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();\n (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();\n};\nconst render$1 = async function(id2, text, svgContainingElement) {\n var _a, _b, _c, _d;\n addDiagrams();\n reset();\n const graphInit = utils.detectInit(text);\n if (graphInit) {\n directiveSanitizer(graphInit);\n addDirective(graphInit);\n }\n const config2 = getConfig$1();\n log$1.debug(config2);\n if (text.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n text = text.replace(/\\r\\n?/g, \"\\n\");\n text = text.replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n const idSelector = \"#\" + id2;\n const iFrameID = \"i\" + id2;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id2;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n let root = select(\"body\");\n const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config2.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id2, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id2, enclosingDivID);\n }\n text = encodeEntities(text);\n let diag;\n let parseEncounteredException;\n try {\n diag = await getDiagramFromText(text);\n } catch (error) {\n diag = new Diagram(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const graphType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) ? diag.renderer.getClasses(text, diag) : {};\n const rules = createUserStyles(\n config2,\n graphType,\n // @ts-ignore convert renderer to TS.\n diagramClassDefs,\n idSelector\n );\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id2, version, diag);\n } catch (e) {\n errorRenderer.draw(text, id2, version);\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = (_b = (_a = diag.db).getAccTitle) == null ? void 0 : _b.call(_a);\n const a11yDescr = (_d = (_c = diag.db).getAccDescription) == null ? void 0 : _d.call(_c);\n addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id2}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log$1.debug(\"config.arrowMarkerAbsolute\", config2.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n return {\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n};\nfunction initialize$1(options = {}) {\n var _a;\n if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if ((options == null ? void 0 : options.theme) && options.theme in theme) {\n options.themeVariables = theme[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n const config2 = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel$1(config2.logLevel);\n addDiagrams();\n}\nfunction addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, graphType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\nconst mermaidAPI = Object.freeze({\n render: render$1,\n parse: parse$1,\n parseDirective: parseDirective$1,\n getDiagramFromText,\n initialize: initialize$1,\n getConfig: getConfig$1,\n setConfig,\n getSiteConfig,\n updateSiteConfig,\n reset: () => {\n reset();\n },\n globalReset: () => {\n reset(defaultConfig);\n },\n defaultConfig\n});\nsetLogLevel$1(getConfig$1().logLevel);\nreset(getConfig$1());\nconst handleError = (error, errors, parseError) => {\n log$1.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n};\nconst run = async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log$1.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log$1.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n};\nconst runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log$1.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log$1.debug(`Found ${nodesToProcess.length} diagrams`);\n if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) {\n log$1.debug(\"Start On Load: \" + (conf == null ? void 0 : conf.startOnLoad));\n mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad });\n }\n const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log$1.info(\"Rendering diagram: \" + element.id);\n /*! Check if previously processed */\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id2 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, \"
    \");\n const init2 = utils.detectInit(txt);\n if (init2) {\n log$1.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render(id2, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id2);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n};\nconst initialize = function(config2) {\n mermaidAPI.initialize(config2);\n};\nconst init = async function(config2, nodes, callback) {\n log$1.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config2) {\n initialize(config2);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n};\nconst registerExternalDiagrams = async (diagrams2, {\n lazyLoad = true\n} = {}) => {\n registerLazyLoadedDiagrams(...diagrams2);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n};\nconst contentLoaded = function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log$1.error(\"Mermaid failed to initialize\", err));\n }\n }\n};\nif (typeof document !== \"undefined\") {\n /*!\n * Wait for document loaded before starting the execution\n */\n window.addEventListener(\"load\", contentLoaded, false);\n}\nconst setParseErrorHandler = function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n};\nconst executionQueue = [];\nlet executionQueueRunning = false;\nconst executeQueue = async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log$1.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n};\nconst parse = async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst render = (id2, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.render(id2, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse,\n render,\n init,\n run,\n registerExternalDiagrams,\n initialize,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType\n};\nexport {\n setupGraphViewbox as A,\n parseFontSize as B,\n getThemeVariables$2 as C,\n defaultConfig$1 as D,\n addFunction as E,\n generateId as F,\n defaultConfig as G,\n decodeEntities as H,\n commonDb$1 as I,\n parseDirective$1 as J,\n mermaid as K,\n ZERO_WIDTH_SPACE as Z,\n getAccDescription as a,\n setAccDescription as b,\n getConfig$1 as c,\n sanitizeText$2 as d,\n common$1 as e,\n assignWithDepth$1 as f,\n getAccTitle as g,\n calculateTextWidth as h,\n configureSvgSize as i,\n calculateTextHeight as j,\n getStylesFromArray as k,\n log$1 as l,\n mermaidAPI as m,\n evaluate as n,\n interpolateToCurve as o,\n setupGraphViewbox$1 as p,\n setConfig as q,\n setDiagramTitle as r,\n setAccTitle as s,\n getDiagramTitle as t,\n utils as u,\n clear as v,\n wrapLabel as w,\n parseGenericTypes as x,\n random as y,\n getConfig as z\n};\n","// Convert mermaid entity codes to text e.g. \"#9829;\" to \"♥\"\nexport const entityCodesToText = (input) => {\n input = decodeEntities(input);\n const modifiedInput = input\n .replace(/#(\\d+);/g, \"&#$1;\")\n .replace(/#([a-z]+);/g, \"&$1;\");\n const element = document.createElement(\"textarea\");\n element.innerHTML = modifiedInput;\n return element.value;\n};\nexport const getTransformAttr = (el) => {\n const transformAttr = el.getAttribute(\"transform\");\n const translateMatch = transformAttr?.match(/translate\\(([ \\d.-]+),\\s*([\\d.-]+)\\)/);\n let transformX = 0;\n let transformY = 0;\n if (translateMatch) {\n transformX = Number(translateMatch[1]);\n transformY = Number(translateMatch[2]);\n }\n return { transformX, transformY };\n};\n//TODO Once fixed in mermaid this will be removed\nexport const encodeEntities = (text) => {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, (s) => {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, (s) => {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, (s) => {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return `fl°°${innerTxt}¶ß`;\n }\n return `fl°${innerTxt}¶ß`;\n });\n return txt;\n};\nexport const decodeEntities = function (text) {\n return text.replace(/fl°°/g, \"#\").replace(/fl°/g, \"&\").replace(/¶ß/g, \";\");\n};\nexport const computeEdgePositions = (pathElement, offset = { x: 0, y: 0 }) => {\n if (pathElement.tagName.toLowerCase() !== \"path\") {\n throw new Error(`Invalid input: Expected an HTMLElement of tag \"path\", got ${pathElement.tagName}`);\n }\n const dAttr = pathElement.getAttribute(\"d\");\n if (!dAttr) {\n throw new Error('Path element does not contain a \"d\" attribute');\n }\n // Split the d attribute based on M (Move To) and L (Line To) commands\n const commands = dAttr.split(/(?=[LM])/);\n const startPosition = commands[0]\n .substring(1)\n .split(\",\")\n .map((coord) => parseFloat(coord));\n const endPosition = commands[commands.length - 1]\n .substring(1)\n .split(\",\")\n .map((coord) => parseFloat(coord));\n const reflectionPoints = commands\n .map((command) => {\n const coords = command\n .substring(1)\n .split(\",\")\n .map((coord) => parseFloat(coord));\n return { x: coords[0], y: coords[1] };\n })\n .filter((point, index, array) => {\n if (index === array.length - 1) {\n return true;\n }\n const prevPoint = array[index - 1];\n return (index === 0 || (point.x !== prevPoint.x && point.y !== prevPoint.y));\n })\n .map((p) => {\n return {\n x: p.x + offset.x,\n y: p.y + offset.y,\n };\n });\n return {\n startX: startPosition[0] + offset.x,\n startY: startPosition[1] + offset.y,\n endX: endPosition[0] + offset.x,\n endY: endPosition[1] + offset.y,\n reflectionPoints,\n };\n};\n","import { computeEdgePositions, entityCodesToText, getTransformAttr, } from \"../utils.js\";\nconst parseSubGraph = (data, containerEl) => {\n // Extract only node id for better reference\n // e.g. full element id = \"flowchart-c1-205\" will map to \"c1\"\n const nodeIds = data.nodes.map((n) => {\n if (n.startsWith(\"flowchart-\")) {\n return n.split(\"-\")[1];\n }\n return n;\n });\n // Get position\n const el = containerEl.querySelector(`[id='${data.id}']`);\n if (!el) {\n throw new Error(\"SubGraph element not found\");\n }\n const position = computeElementPosition(el, containerEl);\n // Get dimension\n const boundingBox = el.getBBox();\n const dimension = {\n width: boundingBox.width,\n height: boundingBox.height,\n };\n // Remove irrelevant properties\n data.classes = undefined;\n data.dir = undefined;\n return {\n ...data,\n nodeIds,\n ...position,\n ...dimension,\n text: entityCodesToText(data.title),\n };\n};\nconst parseVertex = (data, containerEl) => {\n // Find Vertex element\n const el = containerEl.querySelector(`[id*=\"flowchart-${data.id}-\"]`);\n if (!el) {\n return undefined;\n }\n // Check if Vertex attached with link\n let link;\n if (el.parentElement?.tagName.toLowerCase() === \"a\") {\n link = el.parentElement.getAttribute(\"xlink:href\");\n }\n // Get position\n const position = computeElementPosition(link ? el.parentElement : el, containerEl);\n // Get dimension\n const boundingBox = el.getBBox();\n const dimension = {\n width: boundingBox.width,\n height: boundingBox.height,\n };\n // Extract style\n const labelContainerStyleText = el\n .querySelector(\".label-container\")\n ?.getAttribute(\"style\");\n const labelStyleText = el.querySelector(\".label\")?.getAttribute(\"style\");\n const containerStyle = {};\n labelContainerStyleText?.split(\";\").forEach((property) => {\n if (!property) {\n return;\n }\n const key = property.split(\":\")[0].trim();\n const value = property.split(\":\")[1].trim();\n containerStyle[key] = value;\n });\n const labelStyle = {};\n labelStyleText?.split(\";\").forEach((property) => {\n if (!property) {\n return;\n }\n const key = property.split(\":\")[0].trim();\n const value = property.split(\":\")[1].trim();\n labelStyle[key] = value;\n });\n return {\n id: data.id,\n labelType: data.labelType,\n text: entityCodesToText(data.text),\n type: data.type,\n link: link || undefined,\n ...position,\n ...dimension,\n containerStyle,\n labelStyle,\n };\n};\nconst parseEdge = (data, containerEl) => {\n // Find edge element\n const el = containerEl.querySelector(`[id*=\"L-${data.start}-${data.end}\"]`);\n if (!el) {\n throw new Error(\"Edge element not found\");\n }\n // Compute edge position data\n const position = computeElementPosition(el, containerEl);\n const edgePositionData = computeEdgePositions(el, position);\n // Remove irrelevant properties\n data.length = undefined;\n return {\n ...data,\n ...edgePositionData,\n text: entityCodesToText(data.text),\n };\n};\n// Compute element position\nconst computeElementPosition = (el, containerEl) => {\n if (!el) {\n throw new Error(\"Element not found\");\n }\n let root = el.parentElement?.parentElement;\n const childElement = el.childNodes[0];\n let childPosition = { x: 0, y: 0 };\n if (childElement) {\n const { transformX, transformY } = getTransformAttr(childElement);\n const boundingBox = childElement.getBBox();\n childPosition = {\n x: Number(childElement.getAttribute(\"x\")) ||\n transformX + boundingBox.x ||\n 0,\n y: Number(childElement.getAttribute(\"y\")) ||\n transformY + boundingBox.y ||\n 0,\n };\n }\n const { transformX, transformY } = getTransformAttr(el);\n const position = {\n x: transformX + childPosition.x,\n y: transformY + childPosition.y,\n };\n while (root && root.id !== containerEl.id) {\n if (root.classList.value === \"root\" && root.hasAttribute(\"transform\")) {\n const { transformX, transformY } = getTransformAttr(root);\n position.x += transformX;\n position.y += transformY;\n }\n root = root.parentElement;\n }\n return position;\n};\nexport const parseMermaidFlowChartDiagram = (diagram, containerEl) => {\n // This does some cleanup and initialization making sure\n // diagram is parsed correctly. Useful when multiple diagrams are\n // parsed together one after another, eg in playground\n // https://github.com/mermaid-js/mermaid/blob/e561cbd3be2a93b8bedfa4839484966faad92ccf/packages/mermaid/src/Diagram.ts#L43\n diagram.parse();\n // Get mermaid parsed data from parser shared variable `yy`\n const mermaidParser = diagram.parser.yy;\n const vertices = mermaidParser.getVertices();\n Object.keys(vertices).forEach((id) => {\n vertices[id] = parseVertex(vertices[id], containerEl);\n });\n const edges = mermaidParser\n .getEdges()\n .map((data) => parseEdge(data, containerEl));\n const subGraphs = mermaidParser\n .getSubGraphs()\n .map((data) => parseSubGraph(data, containerEl));\n return {\n type: \"flowchart\",\n subGraphs,\n vertices,\n edges,\n };\n};\n","import { entityCodesToText } from \"./utils.js\";\nimport { DEFAULT_FONT_SIZE } from \"./constants.js\";\nexport const createArrowSkeletonFromSVG = (arrowNode, opts) => {\n const arrow = {};\n if (opts?.label) {\n arrow.label = { text: entityCodesToText(opts.label), fontSize: 16 };\n }\n const tagName = arrowNode.tagName;\n if (tagName === \"line\") {\n arrow.startX = Number(arrowNode.getAttribute(\"x1\"));\n arrow.startY = Number(arrowNode.getAttribute(\"y1\"));\n arrow.endX = Number(arrowNode.getAttribute(\"x2\"));\n arrow.endY = Number(arrowNode.getAttribute(\"y2\"));\n }\n else if (tagName === \"path\") {\n const dAttr = arrowNode.getAttribute(\"d\");\n if (!dAttr) {\n throw new Error('Path element does not contain a \"d\" attribute');\n }\n // Split the d attribute based on M (Move To) and C (Curve) commands\n const commands = dAttr.split(/(?=[LC])/);\n const startPosition = commands[0]\n .substring(1)\n .split(\",\")\n .map((coord) => parseFloat(coord));\n const points = [];\n commands.forEach((command) => {\n const currPoints = command\n .substring(1)\n .trim()\n .split(\" \")\n .map((pos) => {\n const [x, y] = pos.split(\",\");\n return [\n parseFloat(x) - startPosition[0],\n parseFloat(y) - startPosition[1],\n ];\n });\n points.push(...currPoints);\n });\n const endPosition = points[points.length - 1];\n arrow.startX = startPosition[0];\n arrow.startY = startPosition[1];\n arrow.endX = endPosition[0];\n arrow.endY = endPosition[1];\n arrow.points = points;\n }\n if (opts?.label) {\n // In mermaid the text is positioned above arrow but in Excalidraw\n // its postioned on the arrow hence the elements below it might look cluttered so shifting the arrow by an offset of 10px\n const offset = 10;\n arrow.startY = arrow.startY - offset;\n arrow.endY = arrow.endY - offset;\n }\n arrow.strokeColor = arrowNode.getAttribute(\"stroke\");\n arrow.strokeWidth = Number(arrowNode.getAttribute(\"stroke-width\"));\n arrow.type = \"arrow\";\n arrow.strokeStyle = opts?.strokeStyle || \"solid\";\n arrow.startArrowhead = opts?.startArrowhead || null;\n arrow.endArrowhead = opts?.endArrowhead || null;\n return arrow;\n};\nexport const createArrowSkeletion = (startX, startY, endX, endY, opts) => {\n const arrow = {};\n arrow.type = \"arrow\";\n arrow.startX = startX;\n arrow.startY = startY;\n arrow.endX = endX;\n arrow.endY = endY;\n Object.assign(arrow, { ...opts });\n return arrow;\n};\nexport const createTextSkeleton = (x, y, text, opts) => {\n const textElement = {\n type: \"text\",\n x,\n y,\n text,\n width: opts?.width || 20,\n height: opts?.height || 20,\n fontSize: opts?.fontSize || DEFAULT_FONT_SIZE,\n id: opts?.id,\n groupId: opts?.groupId,\n metadata: opts?.metadata,\n };\n return textElement;\n};\nexport const createTextSkeletonFromSVG = (textNode, text, opts) => {\n const node = {};\n const x = Number(textNode.getAttribute(\"x\"));\n const y = Number(textNode.getAttribute(\"y\"));\n node.type = \"text\";\n node.text = entityCodesToText(text);\n if (opts?.id) {\n node.id = opts.id;\n }\n if (opts?.groupId) {\n node.groupId = opts.groupId;\n }\n const boundingBox = textNode.getBBox();\n node.width = boundingBox.width;\n node.height = boundingBox.height;\n node.x = x - boundingBox.width / 2;\n node.y = y;\n const fontSize = parseInt(getComputedStyle(textNode).fontSize);\n node.fontSize = fontSize;\n return node;\n};\nexport const createContainerSkeletonFromSVG = (node, type, opts = {}) => {\n const container = {};\n container.type = type;\n const { label, subtype, id, groupId } = opts;\n container.id = id;\n if (groupId) {\n container.groupId = groupId;\n }\n if (label) {\n container.label = {\n text: entityCodesToText(label.text),\n fontSize: 16,\n verticalAlign: label?.verticalAlign,\n };\n }\n const boundingBox = node.getBBox();\n container.x = boundingBox.x;\n container.y = boundingBox.y;\n container.width = boundingBox.width;\n container.height = boundingBox.height;\n container.subtype = subtype;\n switch (subtype) {\n case \"highlight\":\n const bgColor = node.getAttribute(\"fill\");\n if (bgColor) {\n container.bgColor = bgColor;\n }\n break;\n case \"note\":\n container.strokeStyle = \"dashed\";\n break;\n }\n return container;\n};\nexport const createLineSkeletonFromSVG = (lineNode, startX, startY, endX, endY, opts) => {\n const line = {};\n line.startX = startX;\n line.startY = startY;\n line.endX = endX;\n if (opts?.groupId) {\n line.groupId = opts.groupId;\n }\n if (opts?.id) {\n line.id = opts.id;\n }\n // Make sure lines don't overlap with the nodes, in mermaid it overlaps but isn't visible as its pushed back and containers are non transparent\n line.endY = endY;\n line.strokeColor = lineNode.getAttribute(\"stroke\");\n line.strokeWidth = Number(lineNode.getAttribute(\"stroke-width\"));\n line.type = \"line\";\n return line;\n};\n","import { SVG_TO_SHAPE_MAPPER } from \"../constants.js\";\nimport { nanoid } from \"nanoid\";\nimport { createArrowSkeletonFromSVG, createContainerSkeletonFromSVG, createLineSkeletonFromSVG, createTextSkeletonFromSVG, } from \"../elementSkeleton.js\";\n// Currently mermaid supported these 6 arrow types, the names are taken from mermaidParser.LINETYPE\nconst SEQUENCE_ARROW_TYPES = {\n 0: \"SOLID\",\n 1: \"DOTTED\",\n 3: \"SOLID_CROSS\",\n 4: \"DOTTED_CROSS\",\n 5: \"SOLID_OPEN\",\n 6: \"DOTTED_OPEN\",\n 24: \"SOLID_POINT\",\n 25: \"DOTTED_POINT\",\n};\nconst MESSAGE_TYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n AUTONUMBER: 26,\n CRITICAL_START: 27,\n CRITICAL_OPTION: 28,\n CRITICAL_END: 29,\n BREAK_START: 30,\n BREAK_END: 31,\n PAR_OVER_START: 32,\n};\nconst getStrokeStyle = (type) => {\n let strokeStyle;\n switch (type) {\n case MESSAGE_TYPE.SOLID:\n case MESSAGE_TYPE.SOLID_CROSS:\n case MESSAGE_TYPE.SOLID_OPEN:\n case MESSAGE_TYPE.SOLID_POINT:\n strokeStyle = \"solid\";\n break;\n case MESSAGE_TYPE.DOTTED:\n case MESSAGE_TYPE.DOTTED_CROSS:\n case MESSAGE_TYPE.DOTTED_OPEN:\n case MESSAGE_TYPE.DOTTED_POINT:\n strokeStyle = \"dotted\";\n break;\n default:\n strokeStyle = \"solid\";\n break;\n }\n return strokeStyle;\n};\nconst attachSequenceNumberToArrow = (node, arrow) => {\n const showSequenceNumber = !!node.nextElementSibling?.classList.contains(\"sequenceNumber\");\n if (showSequenceNumber) {\n const text = node.nextElementSibling?.textContent;\n if (!text) {\n throw new Error(\"sequence number not present\");\n }\n const height = 30;\n const yOffset = height / 2;\n const xOffset = 10;\n const sequenceNumber = {\n type: \"rectangle\",\n x: arrow.startX - xOffset,\n y: arrow.startY - yOffset,\n label: { text, fontSize: 14 },\n bgColor: \"#e9ecef\",\n height,\n subtype: \"sequence\",\n };\n Object.assign(arrow, { sequenceNumber });\n }\n};\nconst createActorSymbol = (rootNode, text, opts) => {\n if (!rootNode) {\n throw \"root node not found\";\n }\n const groupId = nanoid();\n const children = Array.from(rootNode.children);\n const nodeElements = [];\n children.forEach((child, index) => {\n const id = `${opts?.id}-${index}`;\n let ele;\n switch (child.tagName) {\n case \"line\":\n const startX = Number(child.getAttribute(\"x1\"));\n const startY = Number(child.getAttribute(\"y1\"));\n const endX = Number(child.getAttribute(\"x2\"));\n const endY = Number(child.getAttribute(\"y2\"));\n ele = createLineSkeletonFromSVG(child, startX, startY, endX, endY, { groupId, id });\n break;\n case \"text\":\n ele = createTextSkeletonFromSVG(child, text, {\n groupId,\n id,\n });\n break;\n case \"circle\":\n ele = createContainerSkeletonFromSVG(child, \"ellipse\", {\n label: child.textContent ? { text: child.textContent } : undefined,\n groupId,\n id,\n });\n default:\n ele = createContainerSkeletonFromSVG(child, SVG_TO_SHAPE_MAPPER[child.tagName], {\n label: child.textContent ? { text: child.textContent } : undefined,\n groupId,\n id,\n });\n }\n nodeElements.push(ele);\n });\n return nodeElements;\n};\nconst parseActor = (actors, containerEl) => {\n const actorRootNodes = Array.from(containerEl.querySelectorAll(\".actor\"))\n .filter((node) => node.tagName === \"text\")\n .map((actor) => actor.parentElement);\n const nodes = [];\n const lines = [];\n const actorsLength = Object.keys(actors).length;\n Object.values(actors).forEach((actor, index) => {\n // For each actor there are two nodes top and bottom which is connected by a line\n const topRootNode = actorRootNodes[index];\n const bottomRootNode = actorRootNodes[actorsLength + index];\n if (!topRootNode || !bottomRootNode) {\n throw \"root not found\";\n }\n const text = actor.description;\n if (actor.type === \"participant\") {\n // creating top actor node element\n const topNodeElement = createContainerSkeletonFromSVG(topRootNode.firstChild, \"rectangle\", { id: `${actor.name}-top`, label: { text }, subtype: \"actor\" });\n if (!topNodeElement) {\n throw \"Top Node element not found!\";\n }\n nodes.push([topNodeElement]);\n // creating bottom actor node element\n const bottomNodeElement = createContainerSkeletonFromSVG(bottomRootNode.firstChild, \"rectangle\", { id: `${actor.name}-bottom`, label: { text }, subtype: \"actor\" });\n nodes.push([bottomNodeElement]);\n // Get the line connecting the top and bottom nodes. As per the DOM, the line is rendered as first child of parent element\n const lineNode = topRootNode.previousElementSibling;\n if (lineNode?.tagName !== \"line\") {\n throw \"Line not found\";\n }\n const startX = Number(lineNode.getAttribute(\"x1\"));\n if (!topNodeElement.height) {\n throw \"Top node element height is null\";\n }\n const startY = topNodeElement.y + topNodeElement.height;\n // Make sure lines don't overlap with the nodes, in mermaid it overlaps but isn't visible as its pushed back and containers are non transparent\n const endY = bottomNodeElement.y;\n const endX = Number(lineNode.getAttribute(\"x2\"));\n const line = createLineSkeletonFromSVG(lineNode, startX, startY, endX, endY);\n lines.push(line);\n }\n else if (actor.type === \"actor\") {\n const topNodeElement = createActorSymbol(topRootNode, text, {\n id: `${actor.name}-top`,\n });\n nodes.push(topNodeElement);\n const bottomNodeElement = createActorSymbol(bottomRootNode, text, {\n id: `${actor.name}-bottom`,\n });\n nodes.push(bottomNodeElement);\n // Get the line connecting the top and bottom nodes. As per the DOM, the line is rendered as first child of parent element\n const lineNode = topRootNode.previousElementSibling;\n if (lineNode?.tagName !== \"line\") {\n throw \"Line not found\";\n }\n const startX = Number(lineNode.getAttribute(\"x1\"));\n const startY = Number(lineNode.getAttribute(\"y1\"));\n const endX = Number(lineNode.getAttribute(\"x2\"));\n // Make sure lines don't overlap with the nodes, in mermaid it overlaps but isn't visible as its pushed back and containers are non transparent\n const bottomEllipseNode = bottomNodeElement.find((node) => node.type === \"ellipse\");\n if (bottomEllipseNode) {\n const endY = bottomEllipseNode.y;\n const line = createLineSkeletonFromSVG(lineNode, startX, startY, endX, endY);\n lines.push(line);\n }\n }\n });\n return { nodes, lines };\n};\nconst computeArrows = (messages, containerEl) => {\n const arrows = [];\n const arrowNodes = Array.from(containerEl.querySelectorAll('[class*=\"messageLine\"]'));\n const supportedMessageTypes = Object.keys(SEQUENCE_ARROW_TYPES);\n const arrowMessages = messages.filter((message) => supportedMessageTypes.includes(message.type.toString()));\n arrowNodes.forEach((arrowNode, index) => {\n const message = arrowMessages[index];\n const messageType = SEQUENCE_ARROW_TYPES[message.type];\n const arrow = createArrowSkeletonFromSVG(arrowNode, {\n label: message?.message,\n strokeStyle: getStrokeStyle(message.type),\n endArrowhead: messageType === \"SOLID_OPEN\" || messageType === \"DOTTED_OPEN\"\n ? null\n : \"arrow\",\n });\n attachSequenceNumberToArrow(arrowNode, arrow);\n arrows.push(arrow);\n });\n return arrows;\n};\nconst computeNotes = (messages, containerEl) => {\n const noteNodes = Array.from(containerEl.querySelectorAll(\".note\")).map((node) => node.parentElement);\n const noteText = messages.filter((message) => message.type === MESSAGE_TYPE.NOTE);\n const notes = [];\n noteNodes.forEach((node, index) => {\n if (!node) {\n return;\n }\n const rect = node.firstChild;\n const text = noteText[index].message;\n const note = createContainerSkeletonFromSVG(rect, \"rectangle\", {\n label: { text },\n subtype: \"note\",\n });\n notes.push(note);\n });\n return notes;\n};\nconst parseActivations = (containerEl) => {\n const activationNodes = Array.from(containerEl.querySelectorAll(`[class*=activation]`));\n const activations = [];\n activationNodes.forEach((node) => {\n const rect = createContainerSkeletonFromSVG(node, \"rectangle\", {\n label: { text: \"\" },\n subtype: \"activation\",\n });\n activations.push(rect);\n });\n return activations;\n};\nconst parseLoops = (messages, containerEl) => {\n const lineNodes = Array.from(containerEl.querySelectorAll(\".loopLine\"));\n const lines = [];\n const texts = [];\n const nodes = [];\n lineNodes.forEach((node) => {\n const startX = Number(node.getAttribute(\"x1\"));\n const startY = Number(node.getAttribute(\"y1\"));\n const endX = Number(node.getAttribute(\"x2\"));\n const endY = Number(node.getAttribute(\"y2\"));\n const line = createLineSkeletonFromSVG(node, startX, startY, endX, endY);\n line.strokeStyle = \"dotted\";\n line.strokeColor = \"#adb5bd\";\n line.strokeWidth = 2;\n lines.push(line);\n });\n const loopTextNodes = Array.from(containerEl.querySelectorAll(\".loopText\"));\n const criticalMessages = messages\n .filter((message) => message.type === MESSAGE_TYPE.CRITICAL_START)\n .map((message) => message.message);\n loopTextNodes.forEach((node) => {\n const text = node.textContent || \"\";\n const textElement = createTextSkeletonFromSVG(node, text);\n // The text is rendered between [ ] in DOM hence getting the text excluding the [ ]\n const rawText = text.match(/\\[(.*?)\\]/)?.[1] || \"\";\n const isCritical = criticalMessages.includes(rawText);\n // For critical label the coordinates are not accurate in mermaid as there is\n // no padding left hence shifting the text next to critical label by 16px (font size)\n if (isCritical) {\n textElement.x += 16;\n }\n texts.push(textElement);\n });\n const labelBoxes = Array.from(containerEl?.querySelectorAll(\".labelBox\"));\n const labelTextNode = Array.from(containerEl?.querySelectorAll(\".labelText\"));\n labelBoxes.forEach((labelBox, index) => {\n const text = labelTextNode[index]?.textContent || \"\";\n const container = createContainerSkeletonFromSVG(labelBox, \"rectangle\", {\n label: { text },\n });\n container.strokeColor = \"#adb5bd\";\n container.bgColor = \"#e9ecef\";\n // So width is calculated based on label\n container.width = undefined;\n nodes.push(container);\n });\n return { lines, texts, nodes };\n};\nconst computeHighlights = (containerEl) => {\n const rects = Array.from(containerEl.querySelectorAll(\".rect\"))\n // Only drawing specifically for highlights as the same selector is for grouping as well. For grouping we\n // draw it ourselves\n .filter((node) => node.parentElement?.tagName !== \"g\");\n const nodes = [];\n rects.forEach((rect) => {\n const node = createContainerSkeletonFromSVG(rect, \"rectangle\", {\n label: { text: \"\" },\n subtype: \"highlight\",\n });\n nodes.push(node);\n });\n return nodes;\n};\nexport const parseMermaidSequenceDiagram = (diagram, containerEl) => {\n diagram.parse();\n // Get mermaid parsed data from parser shared variable `yy`\n const mermaidParser = diagram.parser.yy;\n const nodes = [];\n const groups = mermaidParser.getBoxes();\n const bgHightlights = computeHighlights(containerEl);\n const actorData = mermaidParser.getActors();\n const { nodes: actors, lines } = parseActor(actorData, containerEl);\n const messages = mermaidParser.getMessages();\n const arrows = computeArrows(messages, containerEl);\n const notes = computeNotes(messages, containerEl);\n const activations = parseActivations(containerEl);\n const loops = parseLoops(messages, containerEl);\n nodes.push(bgHightlights);\n nodes.push(...actors);\n nodes.push(notes);\n nodes.push(activations);\n return { type: \"sequence\", lines, arrows, nodes, loops, groups };\n};\n","import { nanoid } from \"nanoid\";\nimport { computeEdgePositions, getTransformAttr } from \"../utils.js\";\nimport { createArrowSkeletion, createContainerSkeletonFromSVG, createLineSkeletonFromSVG, createTextSkeleton, } from \"../elementSkeleton.js\";\n// Taken from mermaidParser.relationType\nconst RELATION_TYPE = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n LOLLIPOP: 4,\n};\n// Taken from mermaidParser.lineType\nconst LINE_TYPE = {\n LINE: 0,\n DOTTED_LINE: 1,\n};\nconst getStrokeStyle = (type) => {\n let lineType;\n switch (type) {\n case LINE_TYPE.LINE:\n lineType = \"solid\";\n break;\n case LINE_TYPE.DOTTED_LINE:\n lineType = \"dotted\";\n break;\n default:\n lineType = \"solid\";\n }\n return lineType;\n};\nconst getArrowhead = (type) => {\n let arrowhead;\n switch (type) {\n case RELATION_TYPE.AGGREGATION:\n arrowhead = \"diamond_outline\";\n break;\n case RELATION_TYPE.COMPOSITION:\n arrowhead = \"diamond\";\n break;\n case RELATION_TYPE.EXTENSION:\n arrowhead = \"triangle_outline\";\n break;\n case \"none\":\n arrowhead = null;\n break;\n case RELATION_TYPE.DEPENDENCY:\n default:\n arrowhead = \"arrow\";\n break;\n }\n return arrowhead;\n};\nconst parseClasses = (classes, containerEl) => {\n const nodes = [];\n const lines = [];\n const text = [];\n Object.values(classes).forEach((classNode) => {\n const { domId, id } = classNode;\n const groupId = nanoid();\n const domNode = containerEl.querySelector(`[id*=classId-${id}]`);\n if (!domNode) {\n throw Error(`DOM Node with id ${domId} not found`);\n }\n const { transformX, transformY } = getTransformAttr(domNode);\n const container = createContainerSkeletonFromSVG(domNode.firstChild, \"rectangle\", { id, groupId });\n container.x += transformX;\n container.y += transformY;\n container.metadata = { classId: id };\n nodes.push(container);\n const lineNodes = Array.from(domNode.querySelectorAll(\".divider\"));\n lineNodes.forEach((lineNode) => {\n const startX = Number(lineNode.getAttribute(\"x1\"));\n const startY = Number(lineNode.getAttribute(\"y1\"));\n const endX = Number(lineNode.getAttribute(\"x2\"));\n const endY = Number(lineNode.getAttribute(\"y2\"));\n const line = createLineSkeletonFromSVG(lineNode, startX, startY, endX, endY, {\n groupId,\n id: nanoid(),\n });\n line.startX += transformX;\n line.startY += transformY;\n line.endX += transformX;\n line.endY += transformY;\n line.metadata = { classId: id };\n lines.push(line);\n });\n const labelNodes = domNode.querySelector(\".label\")?.children;\n if (!labelNodes) {\n throw \"label nodes not found\";\n }\n Array.from(labelNodes).forEach((node) => {\n const label = node.textContent;\n if (!label) {\n return;\n }\n const id = nanoid();\n const { transformX: textTransformX, transformY: textTransformY } = getTransformAttr(node);\n const boundingBox = node.getBBox();\n const offsetY = 10;\n const textElement = createTextSkeleton(transformX + textTransformX, transformY + textTransformY + offsetY, label, {\n width: boundingBox.width,\n height: boundingBox.height,\n id,\n groupId,\n metadata: { classId: id },\n });\n text.push(textElement);\n });\n });\n return { nodes, lines, text };\n};\nconst parseRelations = (relations, classNodes, containerEl, direction) => {\n const edges = containerEl.querySelector(\".edgePaths\")?.children;\n if (!edges) {\n throw new Error(\"No Edges found!\");\n }\n const arrows = [];\n const text = [];\n relations.forEach((relationNode, index) => {\n const { id1, id2, relation } = relationNode;\n const node1 = classNodes.find((node) => node.id === id1);\n const node2 = classNodes.find((node) => node.id === id2);\n const strokeStyle = getStrokeStyle(relation.lineType);\n const startArrowhead = getArrowhead(relation.type1);\n const endArrowhead = getArrowhead(relation.type2);\n const edgePositionData = computeEdgePositions(edges[index]);\n const { startX, startY, endX, endY } = edgePositionData;\n const arrow = createArrowSkeletion(startX, startY, endX, endY, {\n strokeStyle,\n startArrowhead,\n endArrowhead,\n label: relationNode.title ? { text: relationNode.title } : undefined,\n start: { type: \"rectangle\", id: node1.id },\n end: { type: \"rectangle\", id: node2.id },\n });\n arrows.push(arrow);\n // Add cardianlities and Multiplicities\n const { relationTitle1, relationTitle2 } = relationNode;\n const offsetX = 20;\n const offsetY = 15;\n const directionOffset = 15;\n let x;\n let y;\n if (relationTitle1 && relationTitle1 !== \"none\") {\n switch (direction) {\n case \"TB\":\n x = startX - offsetX;\n if (endX < startX) {\n x -= directionOffset;\n }\n y = startY + offsetY;\n break;\n case \"BT\":\n x = startX + offsetX;\n if (endX > startX) {\n x += directionOffset;\n }\n y = startY - offsetY;\n break;\n case \"LR\":\n x = startX + offsetX;\n y = startY + offsetY;\n if (endY > startY) {\n y += directionOffset;\n }\n break;\n case \"RL\":\n x = startX - offsetX;\n y = startY - offsetY;\n if (startY > endY) {\n y -= directionOffset;\n }\n break;\n default:\n x = startX - offsetX;\n y = startY + offsetY;\n }\n const relationTitleElement = createTextSkeleton(x, y, relationTitle1, {\n fontSize: 16,\n });\n text.push(relationTitleElement);\n }\n if (relationTitle2 && relationTitle2 !== \"none\") {\n switch (direction) {\n case \"TB\":\n x = endX + offsetX;\n if (endX < startX) {\n x += directionOffset;\n }\n y = endY - offsetY;\n break;\n case \"BT\":\n x = endX - offsetX;\n if (endX > startX) {\n x -= directionOffset;\n }\n y = endY + offsetY;\n break;\n case \"LR\":\n x = endX - offsetX;\n y = endY - offsetY;\n if (endY > startY) {\n y -= directionOffset;\n }\n break;\n case \"RL\":\n x = endX + offsetX;\n y = endY + offsetY;\n if (startY > endY) {\n y += directionOffset;\n }\n break;\n default:\n x = endX + offsetX;\n y = endY - offsetY;\n }\n const relationTitleElement = createTextSkeleton(x, y, relationTitle2, {\n fontSize: 16,\n });\n text.push(relationTitleElement);\n }\n });\n return { arrows, text };\n};\nconst parseNotes = (notes, containerEl, classNodes) => {\n const noteContainers = [];\n const connectors = [];\n notes.forEach((note) => {\n const { id, text, class: classId } = note;\n const node = containerEl.querySelector(`#${id}`);\n if (!node) {\n throw new Error(`Node with id ${id} not found!`);\n }\n const { transformX, transformY } = getTransformAttr(node);\n const rect = node.firstChild;\n const container = createContainerSkeletonFromSVG(rect, \"rectangle\", {\n id,\n subtype: \"note\",\n label: { text },\n });\n Object.assign(container, {\n x: container.x + transformX,\n y: container.y + transformY,\n });\n noteContainers.push(container);\n if (classId) {\n const classNode = classNodes.find((node) => node.id === classId);\n if (!classNode) {\n throw new Error(`class node with id ${classId} not found!`);\n }\n const startX = container.x + (container.width || 0) / 2;\n const startY = container.y + (container.height || 0);\n const endX = startX;\n const endY = classNode.y;\n const connector = createArrowSkeletion(startX, startY, endX, endY, {\n strokeStyle: \"dotted\",\n startArrowhead: null,\n endArrowhead: null,\n start: { id: container.id, type: \"rectangle\" },\n end: { id: classNode.id, type: \"rectangle\" },\n });\n connectors.push(connector);\n }\n });\n return { notes: noteContainers, connectors };\n};\nexport const parseMermaidClassDiagram = (diagram, containerEl) => {\n diagram.parse();\n const mermaidParser = diagram.parser.yy;\n const direction = mermaidParser.getDirection();\n const nodes = [];\n const lines = [];\n const text = [];\n const classNodes = [];\n const namespaces = mermaidParser.getNamespaces();\n if (Object.keys(namespaces).length) {\n Object.values(namespaces).forEach((namespace) => {\n const namespaceClassData = parseClasses(namespace.classes, containerEl);\n nodes.push(namespaceClassData.nodes);\n lines.push(...namespaceClassData.lines);\n text.push(...namespaceClassData.text);\n classNodes.push(...namespaceClassData.nodes);\n });\n }\n const classes = mermaidParser.getClasses();\n if (Object.keys(classes).length) {\n const classData = parseClasses(classes, containerEl);\n nodes.push(classData.nodes);\n lines.push(...classData.lines);\n text.push(...classData.text);\n classNodes.push(...classData.nodes);\n }\n const relations = mermaidParser.getRelations();\n const { arrows, text: relationTitles } = parseRelations(relations, classNodes, containerEl, direction);\n const { notes, connectors } = parseNotes(mermaidParser.getNotes(), containerEl, classNodes);\n nodes.push(notes);\n arrows.push(...connectors);\n text.push(...relationTitles);\n return { type: \"class\", nodes, lines, arrows, text, namespaces };\n};\n","import mermaid from \"mermaid\";\nimport { MERMAID_CONFIG } from \"./constants.js\";\nimport { encodeEntities } from \"./utils.js\";\nimport { parseMermaidFlowChartDiagram } from \"./parser/flowchart.js\";\nimport { parseMermaidSequenceDiagram } from \"./parser/sequence.js\";\nimport { parseMermaidClassDiagram } from \"./parser/class.js\";\n// Fallback to Svg\nconst convertSvgToGraphImage = (svgContainer) => {\n // Extract SVG width and height\n // TODO: make width and height change dynamically based on user's screen dimension\n const svgEl = svgContainer.querySelector(\"svg\");\n if (!svgEl) {\n throw new Error(\"SVG element not found\");\n }\n const rect = svgEl.getBoundingClientRect();\n const width = rect.width;\n const height = rect.height;\n // Set width and height explictly since in firefox it gets set to 0\n // if the width and height are not expilcitly set\n // eg in some cases like er Diagram, gnatt, width and height is set as 100%\n // which sets the dimensions as 0 in firefox and thus the diagram isn't rendered\n svgEl.setAttribute(\"width\", `${width}`);\n svgEl.setAttribute(\"height\", `${height}`);\n // Convert SVG to image\n const mimeType = \"image/svg+xml\";\n const decoded = unescape(encodeURIComponent(svgEl.outerHTML));\n const base64 = btoa(decoded);\n const dataURL = `data:image/svg+xml;base64,${base64}`;\n const graphImage = {\n type: \"graphImage\",\n mimeType,\n dataURL,\n width,\n height,\n };\n return graphImage;\n};\nexport const parseMermaid = async (definition) => {\n mermaid.initialize(MERMAID_CONFIG);\n // Parse the diagram\n const diagram = await mermaid.mermaidAPI.getDiagramFromText(encodeEntities(definition));\n // Render the SVG diagram\n const { svg } = await mermaid.render(\"mermaid-to-excalidraw\", definition);\n // Append Svg to DOM\n const svgContainer = document.createElement(\"div\");\n svgContainer.setAttribute(\"style\", `opacity: 0; position: relative; z-index: -1;`);\n svgContainer.innerHTML = svg;\n svgContainer.id = \"mermaid-diagram\";\n document.body.appendChild(svgContainer);\n let data;\n switch (diagram.type) {\n case \"flowchart-v2\": {\n data = parseMermaidFlowChartDiagram(diagram, svgContainer);\n break;\n }\n case \"sequence\": {\n data = parseMermaidSequenceDiagram(diagram, svgContainer);\n break;\n }\n case \"classDiagram\": {\n data = parseMermaidClassDiagram(diagram, svgContainer);\n break;\n }\n // fallback to image if diagram type not-supported\n default: {\n data = convertSvgToGraphImage(svgContainer);\n }\n }\n svgContainer.remove();\n return data;\n};\n","import { graphToExcalidraw } from \"./graphToExcalidraw.js\";\nimport { parseMermaid } from \"./parseMermaid.js\";\nconst parseMermaidToExcalidraw = async (definition, options = {}) => {\n const parsedMermaidData = await parseMermaid(definition);\n const excalidrawElements = graphToExcalidraw(parsedMermaidData, options);\n return excalidrawElements;\n};\nexport { parseMermaidToExcalidraw };\n"],"file":"assets/index-jpNTxDe4.js"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js b/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js deleted file mode 100644 index 79080a7..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js +++ /dev/null @@ -1,446 +0,0 @@ -import{F as Ne,h as E,C as De,f as be}from"./index.esm-J35DBGFx.js";import{_ as He,d as I,a as ze,e as q,f as fe}from"./index-2K3MavtT.js";/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var ye="firebasestorage.googleapis.com",Re="storageBucket",Xe=2*60*1e3,Ge=10*60*1e3,p=function(t){He(e,t);function e(r,n){var a=t.call(this,ee(r),"Firebase Storage: "+n+" ("+ee(r)+")")||this;return a.customData={serverResponse:null},Object.setPrototypeOf(a,e.prototype),a}return e.prototype._codeEquals=function(r){return ee(r)===this.code},Object.defineProperty(e.prototype,"message",{get:function(){return this.customData.serverResponse?this.message+` -`+this.customData.serverResponse:this.message},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"serverResponse",{get:function(){return this.customData.serverResponse},set:function(r){this.customData.serverResponse=r},enumerable:!1,configurable:!0}),e}(Ne);function ee(t){return"storage/"+t}function oe(){var t="An unknown error occurred, please check the error payload for server response.";return new p("unknown",t)}function $e(t){return new p("object-not-found","Object '"+t+"' does not exist.")}function We(t){return new p("quota-exceeded","Quota for bucket '"+t+"' exceeded, please view quota on https://firebase.google.com/pricing/.")}function Ke(){var t="User is not authenticated, please authenticate using Firebase Authentication and try again.";return new p("unauthenticated",t)}function Ye(t){return new p("unauthorized","User does not have permission to access '"+t+"'.")}function Ze(){return new p("retry-limit-exceeded","Max retry time for operation exceeded, please try again.")}function we(){return new p("canceled","User canceled the upload/download.")}function Je(t){return new p("invalid-url","Invalid URL '"+t+"'.")}function Qe(t){return new p("invalid-default-bucket","Invalid default bucket '"+t+"'.")}function Ve(){return new p("no-default-bucket","No default bucket found. Did you set the '"+Re+"' property when initializing the app?")}function ke(){return new p("cannot-slice-blob","Cannot slice blob for upload. Please retry the upload.")}function et(){return new p("server-file-wrong-size","Server recorded incorrect upload file size, please retry the upload.")}function tt(){return new p("no-download-url","The given file does not have any download URLs.")}function C(t){return new p("invalid-argument",t)}function Te(){return new p("app-deleted","The Firebase app was deleted.")}function Se(t){return new p("invalid-root-operation","The operation '"+t+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function M(t,e){return new p("invalid-format","String does not match format '"+t+"': "+e)}function H(t){throw new p("internal-error","Internal error: "+t)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var w={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"},te=function(){function t(e,r){this.data=e,this.contentType=r||null}return t}();function Pe(t,e){switch(t){case w.RAW:return new te(Ue(e));case w.BASE64:case w.BASE64URL:return new te(xe(t,e));case w.DATA_URL:return new te(nt(e),at(e))}throw oe()}function Ue(t){for(var e=[],r=0;r>6,128|n&63);else if((n&64512)===55296){var a=r>18,128|n>>12&63,128|n>>6&63,128|n&63)}}else(n&64512)===56320?e.push(239,191,189):e.push(224|n>>12,128|n>>6&63,128|n&63)}return new Uint8Array(e)}function rt(t){var e;try{e=decodeURIComponent(t)}catch{throw M(w.DATA_URL,"Malformed data URL.")}return Ue(e)}function xe(t,e){switch(t){case w.BASE64:{var r=e.indexOf("-")!==-1,n=e.indexOf("_")!==-1;if(r||n){var a=r?"-":"_";throw M(t,"Invalid character '"+a+"' found: is it base64url encoded?")}break}case w.BASE64URL:{var o=e.indexOf("+")!==-1,i=e.indexOf("/")!==-1;if(o||i){var a=o?"+":"/";throw M(t,"Invalid character '"+a+"' found: is it base64 encoded?")}e=e.replace(/-/g,"+").replace(/_/g,"/");break}}var u;try{u=atob(e)}catch{throw M(t,"Invalid character found")}for(var s=new Uint8Array(u.length),l=0;l][;base64],");var n=r[1]||null;n!=null&&(this.base64=ot(n,";base64"),this.contentType=this.base64?n.substring(0,n.length-7):n),this.rest=e.substring(e.indexOf(",")+1)}return t}();function nt(t){var e=new Ee(t);return e.base64?xe(w.BASE64,e.rest):rt(e.rest)}function at(t){var e=new Ee(t);return e.contentType}function ot(t,e){var r=t.length>=e.length;return r?t.substring(t.length-e.length)===e:!1}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var it={STATE_CHANGED:"state_changed"},g={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function re(t){switch(t){case"running":case"pausing":case"canceling":return g.RUNNING;case"paused":return g.PAUSED;case"success":return g.SUCCESS;case"canceled":return g.CANCELED;case"error":return g.ERROR;default:return g.ERROR}}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var A;(function(t){t[t.NO_ERROR=0]="NO_ERROR",t[t.NETWORK_ERROR=1]="NETWORK_ERROR",t[t.ABORT=2]="ABORT"})(A||(A={}));/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var st=function(){function t(){var e=this;this.sent_=!1,this.xhr_=new XMLHttpRequest,this.errorCode_=A.NO_ERROR,this.sendPromise_=new Promise(function(r){e.xhr_.addEventListener("abort",function(){e.errorCode_=A.ABORT,r(e)}),e.xhr_.addEventListener("error",function(){e.errorCode_=A.NETWORK_ERROR,r(e)}),e.xhr_.addEventListener("load",function(){r(e)})})}return t.prototype.send=function(e,r,n,a){if(this.sent_)throw H("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(r,e,!0),a!==void 0)for(var o in a)a.hasOwnProperty(o)&&this.xhr_.setRequestHeader(o,a[o].toString());return n!==void 0?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_},t.prototype.getErrorCode=function(){if(!this.sent_)throw H("cannot .getErrorCode() before sending");return this.errorCode_},t.prototype.getStatus=function(){if(!this.sent_)throw H("cannot .getStatus() before sending");try{return this.xhr_.status}catch{return-1}},t.prototype.getResponseText=function(){if(!this.sent_)throw H("cannot .getResponseText() before sending");return this.xhr_.responseText},t.prototype.abort=function(){this.xhr_.abort()},t.prototype.getResponseHeader=function(e){return this.xhr_.getResponseHeader(e)},t.prototype.addUploadProgressListener=function(e){this.xhr_.upload!=null&&this.xhr_.upload.addEventListener("progress",e)},t.prototype.removeUploadProgressListener=function(e){this.xhr_.upload!=null&&this.xhr_.upload.removeEventListener("progress",e)},t}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var ut=function(){function t(){}return t.prototype.createXhrIo=function(){return new st},t}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var k=function(){function t(e,r){this.bucket=e,this.path_=r}return Object.defineProperty(t.prototype,"path",{get:function(){return this.path_},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isRoot",{get:function(){return this.path.length===0},enumerable:!1,configurable:!0}),t.prototype.fullServerUrl=function(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)},t.prototype.bucketOnlyServerUrl=function(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o"},t.makeFromBucketSpec=function(e){var r;try{r=t.makeFromUrl(e)}catch{return new t(e,"")}if(r.path==="")return r;throw Qe(e)},t.makeFromUrl=function(e){var r=null,n="([A-Za-z0-9.\\-_]+)";function a(P){P.path.charAt(P.path.length-1)==="/"&&(P.path_=P.path_.slice(0,-1))}var o="(/(.*))?$",i=new RegExp("^gs://"+n+o,"i"),u={bucket:1,path:3};function s(P){P.path_=decodeURIComponent(P.path)}for(var l="v[A-Za-z0-9_]+",c=ye.replace(/[.]/g,"\\."),h="(/([^?#]*).*)?$",d=new RegExp("^https?://"+c+"/"+l+"/b/"+n+"/o"+h,"i"),m={bucket:1,path:3},f="(?:storage.googleapis.com|storage.cloud.google.com)",_="([^?#]*)",b=new RegExp("^https?://"+f+"/"+n+"/"+_,"i"),x={bucket:1,path:2},y=[{regex:i,indices:u,postModify:a},{regex:d,indices:m,postModify:s},{regex:b,indices:x,postModify:s}],R=0;Rr)throw C("Invalid value for '"+t+"'. Expected "+r+" or less.")}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function O(t){return"https://"+ye+"/v0"+t}function Oe(t){var e=encodeURIComponent,r="?";for(var n in t)if(t.hasOwnProperty(n)){var a=e(n)+"="+e(t[n]);r=r+a+"&"}return r=r.slice(0,-1),r}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var _t=function(){function t(e,r,n,a,o,i,u,s,l,c,h){var d=this;this.pendingXhr_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.url_=e,this.method_=r,this.headers_=n,this.body_=a,this.successCodes_=o.slice(),this.additionalRetryCodes_=i.slice(),this.callback_=u,this.errorCallback_=s,this.progressCallback_=c,this.timeout_=l,this.pool_=h,this.promise_=new Promise(function(m,f){d.resolve_=m,d.reject_=f,d.start_()})}return t.prototype.start_=function(){var e=this;function r(a,o){if(o){a(!1,new z(!1,null,!0));return}var i=e.pool_.createXhrIo();e.pendingXhr_=i;function u(s){var l=s.loaded,c=s.lengthComputable?s.total:-1;e.progressCallback_!==null&&e.progressCallback_(l,c)}e.progressCallback_!==null&&i.addUploadProgressListener(u),i.send(e.url_,e.method_,e.body_,e.headers_).then(function(s){e.progressCallback_!==null&&s.removeUploadProgressListener(u),e.pendingXhr_=null,s=s;var l=s.getErrorCode()===A.NO_ERROR,c=s.getStatus();if(!l||e.isRetryStatusCode_(c)){var h=s.getErrorCode()===A.ABORT;a(!1,new z(!1,null,h));return}var d=e.successCodes_.indexOf(c)!==-1;a(!0,new z(d,s))})}function n(a,o){var i=e.resolve_,u=e.reject_,s=o.xhr;if(o.wasSuccessCode)try{var l=e.callback_(s,s.getResponseText());ht(l)?i(l):i()}catch(h){u(h)}else if(s!==null){var c=oe();c.serverResponse=s.getResponseText(),e.errorCallback_?u(e.errorCallback_(s,c)):u(c)}else if(o.canceled){var c=e.appDelete_?Te():we();u(c)}else{var c=Ze();u(c)}}this.canceled_?n(!1,new z(!1,null,!0)):this.backoffId_=ct(r,n,this.timeout_)},t.prototype.getPromise=function(){return this.promise_},t.prototype.cancel=function(e){this.canceled_=!0,this.appDelete_=e||!1,this.backoffId_!==null&&ft(this.backoffId_),this.pendingXhr_!==null&&this.pendingXhr_.abort()},t.prototype.isRetryStatusCode_=function(e){var r=e>=500&&e<600,n=[408,429],a=n.indexOf(e)!==-1,o=this.additionalRetryCodes_.indexOf(e)!==-1;return r||a||o},t}(),z=function(){function t(e,r,n){this.wasSuccessCode=e,this.xhr=r,this.canceled=!!n}return t}();function vt(t,e){e!==null&&e.length>0&&(t.Authorization="Firebase "+e)}function gt(t,e){t["X-Firebase-Storage-Version"]="webjs/"+(e??"AppManager")}function mt(t,e){e&&(t["X-Firebase-GMPID"]=e)}function bt(t,e,r,n,a){var o=Oe(t.urlParams),i=t.url+o,u=Object.assign({},t.headers);return mt(u,e),vt(u,r),gt(u,a),new _t(i,t.method,u,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,n)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function yt(){return typeof BlobBuilder<"u"?BlobBuilder:typeof WebKitBlobBuilder<"u"?WebKitBlobBuilder:void 0}function Rt(){for(var t=[],e=0;e0}).join("/");return t.length===0?r:t+"/"+r}function Ce(t){var e=t.lastIndexOf("/",t.length-2);return e===-1?t:t.slice(e+1)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function St(t,e){return e}var v=function(){function t(e,r,n,a){this.server=e,this.local=r||e,this.writable=!!n,this.xform=a||St}return t}(),X=null;function Pt(t){return!W(t)||t.length<2?t:Ce(t)}function K(){if(X)return X;var t=[];t.push(new v("bucket")),t.push(new v("generation")),t.push(new v("metageneration")),t.push(new v("name","fullPath",!0));function e(o,i){return Pt(i)}var r=new v("name");r.xform=e,t.push(r);function n(o,i){return i!==void 0?Number(i):i}var a=new v("size");return a.xform=n,t.push(a),t.push(new v("timeCreated")),t.push(new v("updated")),t.push(new v("md5Hash",null,!0)),t.push(new v("cacheControl",null,!0)),t.push(new v("contentDisposition",null,!0)),t.push(new v("contentEncoding",null,!0)),t.push(new v("contentLanguage",null,!0)),t.push(new v("contentType",null,!0)),t.push(new v("metadata","customMetadata",!0)),X=t,X}function Ut(t,e){function r(){var n=t.bucket,a=t.fullPath,o=new k(n,a);return e._makeStorageReference(o)}Object.defineProperty(t,"ref",{get:r})}function xt(t,e,r){var n={};n.type="file";for(var a=r.length,o=0;o0&&(o.delimiter=r),n&&(o.pageToken=n),a&&(o.maxResults=a);var i=e.bucketOnlyServerUrl(),u=O(i),s="GET",l=t.maxOperationRetryTime,c=new U(u,s,At(t,e.bucket),l);return c.urlParams=o,c.errorHandler=j(e),c}function Bt(t,e,r){var n=e.fullServerUrl(),a=O(n),o="GET",i=t.maxOperationRetryTime,u=new U(a,o,It(t,r),i);return u.errorHandler=Z(e),u}function jt(t,e,r,n){var a=e.fullServerUrl(),o=O(a),i="PATCH",u=le(r,n),s={"Content-Type":"application/json; charset=utf-8"},l=t.maxOperationRetryTime,c=new U(o,i,Y(t,n),l);return c.headers=s,c.body=u,c.errorHandler=Z(e),c}function Lt(t,e){var r=e.fullServerUrl(),n=O(r),a="DELETE",o=t.maxOperationRetryTime;function i(s,l){}var u=new U(n,a,i,o);return u.successCodes=[200,204],u.errorHandler=Z(e),u}function Ft(t,e){return t&&t.contentType||e&&e.type()||"application/octet-stream"}function qe(t,e,r){var n=Object.assign({},r);return n.fullPath=t.path,n.size=e.size(),n.contentType||(n.contentType=Ft(null,e)),n}function Mt(t,e,r,n,a){var o=e.bucketOnlyServerUrl(),i={"X-Goog-Upload-Protocol":"multipart"};function u(){for(var R="",T=0;T<2;T++)R=R+Math.random().toString().slice(2);return R}var s=u();i["Content-Type"]="multipart/related; boundary="+s;var l=qe(e,n,a),c=le(l,r),h="--"+s+`\r -Content-Type: application/json; charset=utf-8\r -\r -`+c+`\r ---`+s+`\r -Content-Type: `+l.contentType+`\r -\r -`,d=`\r ---`+s+"--",m=se.getBlob(h,n,d);if(m===null)throw ke();var f={name:l.fullPath},_=O(o),b="POST",x=t.maxUploadRetryTime,y=new U(_,b,Y(t,r),x);return y.urlParams=f,y.headers=i,y.body=m.uploadData(),y.errorHandler=j(e),y}var $=function(){function t(e,r,n,a){this.current=e,this.total=r,this.finalized=!!n,this.metadata=a||null}return t}();function ce(t,e){var r=null;try{r=t.getResponseHeader("X-Goog-Upload-Status")}catch{S(!1)}var n=e||["active"];return S(!!r&&n.indexOf(r)!==-1),r}function Nt(t,e,r,n,a){var o=e.bucketOnlyServerUrl(),i=qe(e,n,a),u={name:i.fullPath},s=O(o),l="POST",c={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":n.size(),"X-Goog-Upload-Header-Content-Type":i.contentType,"Content-Type":"application/json; charset=utf-8"},h=le(i,r),d=t.maxUploadRetryTime;function m(_){ce(_);var b;try{b=_.getResponseHeader("X-Goog-Upload-URL")}catch{S(!1)}return S(W(b)),b}var f=new U(s,l,m,d);return f.urlParams=u,f.headers=c,f.body=h,f.errorHandler=j(e),f}function Dt(t,e,r,n){var a={"X-Goog-Upload-Command":"query"};function o(l){var c=ce(l,["active","final"]),h=null;try{h=l.getResponseHeader("X-Goog-Upload-Size-Received")}catch{S(!1)}h||S(!1);var d=Number(h);return S(!isNaN(d)),new $(d,n.size(),c==="final")}var i="POST",u=t.maxUploadRetryTime,s=new U(r,i,o,u);return s.headers=a,s.errorHandler=j(e),s}var _e=256*1024;function Ht(t,e,r,n,a,o,i,u){var s=new $(0,0);if(i?(s.current=i.current,s.total=i.total):(s.current=0,s.total=n.size()),n.size()!==s.total)throw et();var l=s.total-s.current,c=l;a>0&&(c=Math.min(c,a));var h=s.current,d=h+c,m=c===l?"upload, finalize":"upload",f={"X-Goog-Upload-Command":m,"X-Goog-Upload-Offset":s.current},_=n.slice(h,d);if(_===null)throw ke();function b(T,L){var D=ce(T,["active","final"]),F=s.current+c,P=n.size(),V;return D==="final"?V=Y(e,o)(T,L):V=null,new $(F,P,D==="final",V)}var x="POST",y=e.maxUploadRetryTime,R=new U(r,x,b,y);return R.headers=f,R.body=_.uploadData(),R.progressCallback=u||null,R.errorHandler=j(t),R}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var zt=function(){function t(e,r,n){var a=dt(e)||r!=null||n!=null;if(a)this.next=e,this.error=r,this.complete=n;else{var o=e;this.next=o.next,this.error=o.error,this.complete=o.complete}}return t}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function B(t){return function(){for(var e=[],r=0;r256*1024},t.prototype._start=function(){this._state==="running"&&this._request===void 0&&(this._resumable?this._uploadUrl===void 0?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this._continueUpload():this._oneShotUpload())},t.prototype._resolveToken=function(e){var r=this;this._ref.storage._getAuthToken().then(function(n){switch(r._state){case"running":e(n);break;case"canceling":r._transition("canceled");break;case"pausing":r._transition("paused");break}})},t.prototype._createResumable=function(){var e=this;this._resolveToken(function(r){var n=Nt(e._ref.storage,e._ref._location,e._mappings,e._blob,e._metadata),a=e._ref.storage._makeRequest(n,r);e._request=a,a.getPromise().then(function(o){e._request=void 0,e._uploadUrl=o,e._needToFetchStatus=!1,e.completeTransitions_()},e._errorHandler)})},t.prototype._fetchStatus=function(){var e=this,r=this._uploadUrl;this._resolveToken(function(n){var a=Dt(e._ref.storage,e._ref._location,r,e._blob),o=e._ref.storage._makeRequest(a,n);e._request=o,o.getPromise().then(function(i){i=i,e._request=void 0,e._updateProgress(i.current),e._needToFetchStatus=!1,i.finalized&&(e._needToFetchMetadata=!0),e.completeTransitions_()},e._errorHandler)})},t.prototype._continueUpload=function(){var e=this,r=_e*this._chunkMultiplier,n=new $(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken(function(o){var i;try{i=Ht(e._ref._location,e._ref.storage,a,e._blob,r,e._mappings,n,e._makeProgressCallback())}catch(s){e._error=s,e._transition("error");return}var u=e._ref.storage._makeRequest(i,o);e._request=u,u.getPromise().then(function(s){e._increaseMultiplier(),e._request=void 0,e._updateProgress(s.current),s.finalized?(e._metadata=s.metadata,e._transition("success")):e.completeTransitions_()},e._errorHandler)})},t.prototype._increaseMultiplier=function(){var e=_e*this._chunkMultiplier;e<32*1024*1024&&(this._chunkMultiplier*=2)},t.prototype._fetchMetadata=function(){var e=this;this._resolveToken(function(r){var n=Ie(e._ref.storage,e._ref._location,e._mappings),a=e._ref.storage._makeRequest(n,r);e._request=a,a.getPromise().then(function(o){e._request=void 0,e._metadata=o,e._transition("success")},e._metadataErrorHandler)})},t.prototype._oneShotUpload=function(){var e=this;this._resolveToken(function(r){var n=Mt(e._ref.storage,e._ref._location,e._mappings,e._blob,e._metadata),a=e._ref.storage._makeRequest(n,r);e._request=a,a.getPromise().then(function(o){e._request=void 0,e._metadata=o,e._updateProgress(e._blob.size()),e._transition("success")},e._errorHandler)})},t.prototype._updateProgress=function(e){var r=this._transferred;this._transferred=e,this._transferred!==r&&this._notifyObservers()},t.prototype._transition=function(e){if(this._state!==e)switch(e){case"canceling":this._state=e,this._request!==void 0&&this._request.cancel();break;case"pausing":this._state=e,this._request!==void 0&&this._request.cancel();break;case"running":var r=this._state==="paused";this._state=e,r&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=we(),this._state=e,this._notifyObservers();break;case"error":this._state=e,this._notifyObservers();break;case"success":this._state=e,this._notifyObservers();break}},t.prototype.completeTransitions_=function(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start();break}},Object.defineProperty(t.prototype,"snapshot",{get:function(){var e=re(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}},enumerable:!1,configurable:!0}),t.prototype.on=function(e,r,n,a){var o=this,i=new zt(r,n,a);return this._addObserver(i),function(){o._removeObserver(i)}},t.prototype.then=function(e,r){return this._promise.then(e,r)},t.prototype.catch=function(e){return this.then(null,e)},t.prototype._addObserver=function(e){this._observers.push(e),this._notifyObserver(e)},t.prototype._removeObserver=function(e){var r=this._observers.indexOf(e);r!==-1&&this._observers.splice(r,1)},t.prototype._notifyObservers=function(){var e=this;this._finishPromise();var r=this._observers.slice();r.forEach(function(n){e._notifyObserver(n)})},t.prototype._finishPromise=function(){if(this._resolve!==void 0){var e=!0;switch(re(this._state)){case g.SUCCESS:B(this._resolve.bind(null,this.snapshot))();break;case g.CANCELED:case g.ERROR:var r=this._reject;B(r.bind(null,this._error))();break;default:e=!1;break}e&&(this._resolve=void 0,this._reject=void 0)}},t.prototype._notifyObserver=function(e){var r=re(this._state);switch(r){case g.RUNNING:case g.PAUSED:e.next&&B(e.next.bind(e,this.snapshot))();break;case g.SUCCESS:e.complete&&B(e.complete.bind(e))();break;case g.CANCELED:case g.ERROR:e.error&&B(e.error.bind(e,this._error))();break;default:e.error&&B(e.error.bind(e,this._error))()}},t.prototype.resume=function(){var e=this._state==="paused"||this._state==="pausing";return e&&this._transition("running"),e},t.prototype.pause=function(){var e=this._state==="running";return e&&this._transition("pausing"),e},t.prototype.cancel=function(){var e=this._state==="running"||this._state==="pausing";return e&&this._transition("canceling"),e},t}();/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var J=function(){function t(e,r){this._service=e,r instanceof k?this._location=r:this._location=k.makeFromUrl(r)}return t.prototype.toString=function(){return"gs://"+this._location.bucket+"/"+this._location.path},t.prototype._newRef=function(e,r){return new t(e,r)},Object.defineProperty(t.prototype,"root",{get:function(){var e=new k(this._location.bucket,"");return this._newRef(this._service,e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bucket",{get:function(){return this._location.bucket},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fullPath",{get:function(){return this._location.path},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return Ce(this._location.path)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"storage",{get:function(){return this._service},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){var e=kt(this._location.path);if(e===null)return null;var r=new k(this._location.bucket,e);return new t(this._service,r)},enumerable:!1,configurable:!0}),t.prototype._throwIfRoot=function(e){if(this._location.path==="")throw Se(e)},t}();function Xt(t,e,r){return t._throwIfRoot("uploadBytesResumable"),new Be(t,new se(e),r)}function Gt(t){var e={prefixes:[],items:[]};return je(t,e).then(function(){return e})}function je(t,e,r){return I(this,void 0,void 0,function(){var n,a,o,i;return q(this,function(u){switch(u.label){case 0:return n={pageToken:r},[4,Le(t,n)];case 1:return a=u.sent(),(o=e.prefixes).push.apply(o,a.prefixes),(i=e.items).push.apply(i,a.items),a.nextPageToken==null?[3,3]:[4,je(t,e,a.nextPageToken)];case 2:u.sent(),u.label=3;case 3:return[2]}})})}function Le(t,e){return I(this,void 0,void 0,function(){var r,n,a;return q(this,function(o){switch(o.label){case 0:return e!=null&&typeof e.maxResults=="number"&&ne("options.maxResults",1,1e3,e.maxResults),[4,t.storage._getAuthToken()];case 1:return r=o.sent(),n=e||{},a=qt(t.storage,t._location,"/",n.pageToken,n.maxResults),[2,t.storage._makeRequest(a,r).getPromise()]}})})}function $t(t){return I(this,void 0,void 0,function(){var e,r;return q(this,function(n){switch(n.label){case 0:return t._throwIfRoot("getMetadata"),[4,t.storage._getAuthToken()];case 1:return e=n.sent(),r=Ie(t.storage,t._location,K()),[2,t.storage._makeRequest(r,e).getPromise()]}})})}function Wt(t,e){return I(this,void 0,void 0,function(){var r,n;return q(this,function(a){switch(a.label){case 0:return t._throwIfRoot("updateMetadata"),[4,t.storage._getAuthToken()];case 1:return r=a.sent(),n=jt(t.storage,t._location,e,K()),[2,t.storage._makeRequest(n,r).getPromise()]}})})}function Kt(t){return I(this,void 0,void 0,function(){var e,r;return q(this,function(n){switch(n.label){case 0:return t._throwIfRoot("getDownloadURL"),[4,t.storage._getAuthToken()];case 1:return e=n.sent(),r=Bt(t.storage,t._location,K()),[2,t.storage._makeRequest(r,e).getPromise().then(function(a){if(a===null)throw tt();return a})]}})})}function Yt(t){return I(this,void 0,void 0,function(){var e,r;return q(this,function(n){switch(n.label){case 0:return t._throwIfRoot("deleteObject"),[4,t.storage._getAuthToken()];case 1:return e=n.sent(),r=Lt(t.storage,t._location),[2,t.storage._makeRequest(r,e).getPromise()]}})})}function Fe(t,e){var r=Tt(t._location.path,e),n=new k(t._location.bucket,r);return new J(t.storage,n)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function ae(t){return/^[A-Za-z]+:\/\//.test(t)}function Zt(t,e){return new J(t,e)}function Me(t,e){if(t instanceof Q){var r=t;if(r._bucket==null)throw Ve();var n=new J(r,r._bucket);return e!=null?Me(n,e):n}else if(e!==void 0){if(e.includes(".."))throw C('`path` param cannot contain ".."');return Fe(t,e)}else return t}function Jt(t,e){if(e&&ae(e)){if(t instanceof Q)return Zt(t,e);throw C("To use ref(service, url), the first argument must be a Storage instance.")}else return Me(t,e)}function Qt(t){var e=t==null?void 0:t[Re];return e==null?null:k.makeFromBucketSpec(e)}var Q=function(){function t(e,r,n,a,o){this.app=e,this._authProvider=r,this._pool=n,this._url=a,this._firebaseVersion=o,this._bucket=null,this._appId=null,this._deleted=!1,this._maxOperationRetryTime=Xe,this._maxUploadRetryTime=Ge,this._requests=new Set,a!=null?this._bucket=k.makeFromBucketSpec(a):this._bucket=Qt(this.app.options)}return Object.defineProperty(t.prototype,"maxUploadRetryTime",{get:function(){return this._maxUploadRetryTime},set:function(e){ne("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxOperationRetryTime",{get:function(){return this._maxOperationRetryTime},set:function(e){ne("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e},enumerable:!1,configurable:!0}),t.prototype._getAuthToken=function(){return I(this,void 0,void 0,function(){var e,r;return q(this,function(n){switch(n.label){case 0:return e=this._authProvider.getImmediate({optional:!0}),e?[4,e.getToken()]:[3,2];case 1:if(r=n.sent(),r!==null)return[2,r.accessToken];n.label=2;case 2:return[2,null]}})})},t.prototype._delete=function(){return this._deleted=!0,this._requests.forEach(function(e){return e.cancel()}),this._requests.clear(),Promise.resolve()},t.prototype._makeStorageReference=function(e){return new J(this,e)},t.prototype._makeRequest=function(e,r){var n=this;if(this._deleted)return new lt(Te());var a=bt(e,this._appId,r,this._pool,this._firebaseVersion);return this._requests.add(a),a.getPromise().then(function(){return n._requests.delete(a)},function(){return n._requests.delete(a)}),a},t}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Vt(t,e,r){return t=E(t),Xt(t,e,r)}function er(t){return t=E(t),$t(t)}function tr(t,e){return t=E(t),Wt(t,e)}function rr(t,e){return t=E(t),Le(t,e)}function nr(t){return t=E(t),Gt(t)}function ar(t){return t=E(t),Kt(t)}function or(t){return t=E(t),Yt(t)}function ve(t,e){return t=E(t),Jt(t,e)}function ir(t,e){return Fe(t,e)}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var G=function(){function t(e,r,n){this._delegate=e,this.task=r,this.ref=n}return Object.defineProperty(t.prototype,"bytesTransferred",{get:function(){return this._delegate.bytesTransferred},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"metadata",{get:function(){return this._delegate.metadata},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._delegate.state},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"totalBytes",{get:function(){return this._delegate.totalBytes},enumerable:!1,configurable:!0}),t}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var ge=function(){function t(e,r){this._delegate=e,this._ref=r,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}return Object.defineProperty(t.prototype,"snapshot",{get:function(){return new G(this._delegate.snapshot,this,this._ref)},enumerable:!1,configurable:!0}),t.prototype.then=function(e,r){var n=this;return this._delegate.then(function(a){if(e)return e(new G(a,n,n._ref))},r)},t.prototype.on=function(e,r,n,a){var o=this,i=void 0;return r&&(typeof r=="function"?i=function(u){return r(new G(u,o,o._ref))}:i={next:r.next?function(u){return r.next(new G(u,o,o._ref))}:void 0,complete:r.complete||void 0,error:r.error||void 0}),this._delegate.on(e,i,n||void 0,a||void 0)},t}(),me=function(){function t(e,r){this._delegate=e,this._service=r}return Object.defineProperty(t.prototype,"prefixes",{get:function(){var e=this;return this._delegate.prefixes.map(function(r){return new N(r,e._service)})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"items",{get:function(){var e=this;return this._delegate.items.map(function(r){return new N(r,e._service)})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"nextPageToken",{get:function(){return this._delegate.nextPageToken||null},enumerable:!1,configurable:!0}),t}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var N=function(){function t(e,r){this._delegate=e,this.storage=r}return Object.defineProperty(t.prototype,"name",{get:function(){return this._delegate.name},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bucket",{get:function(){return this._delegate.bucket},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fullPath",{get:function(){return this._delegate.fullPath},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return this._delegate.toString()},t.prototype.child=function(e){var r=ir(this._delegate,e);return new t(r,this.storage)},Object.defineProperty(t.prototype,"root",{get:function(){return new t(this._delegate.root,this.storage)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){var e=this._delegate.parent;return e==null?null:new t(e,this.storage)},enumerable:!1,configurable:!0}),t.prototype.put=function(e,r){return this._throwIfRoot("put"),new ge(Vt(this._delegate,e,r),this)},t.prototype.putString=function(e,r,n){r===void 0&&(r=w.RAW),this._throwIfRoot("putString");var a=Pe(r,e),o=ze({},n);return o.contentType==null&&a.contentType!=null&&(o.contentType=a.contentType),new ge(new Be(this._delegate,new se(a.data,!0),o),this)},t.prototype.listAll=function(){var e=this;return nr(this._delegate).then(function(r){return new me(r,e.storage)})},t.prototype.list=function(e){var r=this;return rr(this._delegate,e||void 0).then(function(n){return new me(n,r.storage)})},t.prototype.getMetadata=function(){return er(this._delegate)},t.prototype.updateMetadata=function(e){return tr(this._delegate,e)},t.prototype.getDownloadURL=function(){return ar(this._delegate)},t.prototype.delete=function(){return this._throwIfRoot("delete"),or(this._delegate)},t.prototype._throwIfRoot=function(e){if(this._delegate._location.path==="")throw Se(e)},t}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var sr=function(){function t(e,r){var n=this;this.app=e,this._delegate=r,this.INTERNAL={delete:function(){return n._delegate._delete()}}}return Object.defineProperty(t.prototype,"maxOperationRetryTime",{get:function(){return this._delegate.maxOperationRetryTime},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxUploadRetryTime",{get:function(){return this._delegate.maxUploadRetryTime},enumerable:!1,configurable:!0}),t.prototype.ref=function(e){if(ae(e))throw C("ref() expected a child path but got a URL, use refFromURL instead.");return new N(ve(this._delegate,e),this)},t.prototype.refFromURL=function(e){if(!ae(e))throw C("refFromURL() expected a full URL but got a child path, use ref() instead.");try{k.makeFromUrl(e)}catch{throw C("refFromUrl() expected a valid full URL but got an invalid one.")}return new N(ve(this._delegate,e),this)},t.prototype.setMaxUploadRetryTime=function(e){this._delegate.maxUploadRetryTime=e},t.prototype.setMaxOperationRetryTime=function(e){this._delegate.maxOperationRetryTime=e},t}(),ur="@firebase/storage",lr="0.4.7";/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var cr="storage";function fr(t,e){var r=e.instanceIdentifier,n=t.getProvider("app").getImmediate(),a=t.getProvider("auth-internal"),o=new sr(n,new Q(n,a,new ut,r,be.SDK_VERSION));return o}function hr(t){var e={TaskState:g,TaskEvent:it,StringFormat:w,Storage:Q,Reference:N};t.INTERNAL.registerComponent(new De(cr,fr,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),t.registerVersion(ur,lr)}hr(be); -//# sourceMappingURL=index.esm-Aqyp0Gpy.js.map diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js.map b/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js.map deleted file mode 100644 index 8258ae7..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-Aqyp0Gpy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.esm-Aqyp0Gpy.js","sources":["../../../node_modules/@firebase/storage/dist/index.esm.js"],"sourcesContent":["import firebase from '@firebase/app';\nimport { __extends, __spreadArray, __awaiter, __generator, __assign } from 'tslib';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\nimport { Component } from '@firebase/component';\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Constants used in the Firebase Storage library.\r\n */\r\n/**\r\n * Domain name for firebase storage.\r\n */\r\nvar DEFAULT_HOST = 'firebasestorage.googleapis.com';\r\n/**\r\n * The key in Firebase config json for the storage bucket.\r\n */\r\nvar CONFIG_STORAGE_BUCKET_KEY = 'storageBucket';\r\n/**\r\n * 2 minutes\r\n *\r\n * The timeout for all operations except upload.\r\n */\r\nvar DEFAULT_MAX_OPERATION_RETRY_TIME = 2 * 60 * 1000;\r\n/**\r\n * 10 minutes\r\n *\r\n * The timeout for upload.\r\n */\r\nvar DEFAULT_MAX_UPLOAD_RETRY_TIME = 10 * 60 * 1000;\n\n/**\r\n * An error returned by the Firebase Storage SDK.\r\n * @public\r\n */\r\nvar FirebaseStorageError = /** @class */ (function (_super) {\r\n __extends(FirebaseStorageError, _super);\r\n /**\r\n * @param code - A StorageErrorCode string to be prefixed with 'storage/' and\r\n * added to the end of the message.\r\n * @param message - Error message.\r\n */\r\n function FirebaseStorageError(code, message) {\r\n var _this = _super.call(this, prependCode(code), \"Firebase Storage: \" + message + \" (\" + prependCode(code) + \")\") || this;\r\n /**\r\n * Stores custom error data unque to FirebaseStorageError.\r\n */\r\n _this.customData = { serverResponse: null };\r\n // Without this, `instanceof FirebaseStorageError`, in tests for example,\r\n // returns false.\r\n Object.setPrototypeOf(_this, FirebaseStorageError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Compares a StorageErrorCode against this error's code, filtering out the prefix.\r\n */\r\n FirebaseStorageError.prototype._codeEquals = function (code) {\r\n return prependCode(code) === this.code;\r\n };\r\n Object.defineProperty(FirebaseStorageError.prototype, \"message\", {\r\n /**\r\n * Error message including serverResponse if available.\r\n */\r\n get: function () {\r\n if (this.customData.serverResponse) {\r\n return this.message + \"\\n\" + this.customData.serverResponse;\r\n }\r\n else {\r\n return this.message;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseStorageError.prototype, \"serverResponse\", {\r\n /**\r\n * Optional response message that was added by the server.\r\n */\r\n get: function () {\r\n return this.customData.serverResponse;\r\n },\r\n set: function (serverResponse) {\r\n this.customData.serverResponse = serverResponse;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return FirebaseStorageError;\r\n}(FirebaseError));\r\nfunction prependCode(code) {\r\n return 'storage/' + code;\r\n}\r\nfunction unknown() {\r\n var message = 'An unknown error occurred, please check the error payload for ' +\r\n 'server response.';\r\n return new FirebaseStorageError(\"unknown\" /* UNKNOWN */, message);\r\n}\r\nfunction objectNotFound(path) {\r\n return new FirebaseStorageError(\"object-not-found\" /* OBJECT_NOT_FOUND */, \"Object '\" + path + \"' does not exist.\");\r\n}\r\nfunction quotaExceeded(bucket) {\r\n return new FirebaseStorageError(\"quota-exceeded\" /* QUOTA_EXCEEDED */, \"Quota for bucket '\" +\r\n bucket +\r\n \"' exceeded, please view quota on \" +\r\n 'https://firebase.google.com/pricing/.');\r\n}\r\nfunction unauthenticated() {\r\n var message = 'User is not authenticated, please authenticate using Firebase ' +\r\n 'Authentication and try again.';\r\n return new FirebaseStorageError(\"unauthenticated\" /* UNAUTHENTICATED */, message);\r\n}\r\nfunction unauthorized(path) {\r\n return new FirebaseStorageError(\"unauthorized\" /* UNAUTHORIZED */, \"User does not have permission to access '\" + path + \"'.\");\r\n}\r\nfunction retryLimitExceeded() {\r\n return new FirebaseStorageError(\"retry-limit-exceeded\" /* RETRY_LIMIT_EXCEEDED */, 'Max retry time for operation exceeded, please try again.');\r\n}\r\nfunction canceled() {\r\n return new FirebaseStorageError(\"canceled\" /* CANCELED */, 'User canceled the upload/download.');\r\n}\r\nfunction invalidUrl(url) {\r\n return new FirebaseStorageError(\"invalid-url\" /* INVALID_URL */, \"Invalid URL '\" + url + \"'.\");\r\n}\r\nfunction invalidDefaultBucket(bucket) {\r\n return new FirebaseStorageError(\"invalid-default-bucket\" /* INVALID_DEFAULT_BUCKET */, \"Invalid default bucket '\" + bucket + \"'.\");\r\n}\r\nfunction noDefaultBucket() {\r\n return new FirebaseStorageError(\"no-default-bucket\" /* NO_DEFAULT_BUCKET */, 'No default bucket ' +\r\n \"found. Did you set the '\" +\r\n CONFIG_STORAGE_BUCKET_KEY +\r\n \"' property when initializing the app?\");\r\n}\r\nfunction cannotSliceBlob() {\r\n return new FirebaseStorageError(\"cannot-slice-blob\" /* CANNOT_SLICE_BLOB */, 'Cannot slice blob for upload. Please retry the upload.');\r\n}\r\nfunction serverFileWrongSize() {\r\n return new FirebaseStorageError(\"server-file-wrong-size\" /* SERVER_FILE_WRONG_SIZE */, 'Server recorded incorrect upload file size, please retry the upload.');\r\n}\r\nfunction noDownloadURL() {\r\n return new FirebaseStorageError(\"no-download-url\" /* NO_DOWNLOAD_URL */, 'The given file does not have any download URLs.');\r\n}\r\nfunction invalidArgument(message) {\r\n return new FirebaseStorageError(\"invalid-argument\" /* INVALID_ARGUMENT */, message);\r\n}\r\nfunction appDeleted() {\r\n return new FirebaseStorageError(\"app-deleted\" /* APP_DELETED */, 'The Firebase app was deleted.');\r\n}\r\n/**\r\n * @param name - The name of the operation that was invalid.\r\n */\r\nfunction invalidRootOperation(name) {\r\n return new FirebaseStorageError(\"invalid-root-operation\" /* INVALID_ROOT_OPERATION */, \"The operation '\" +\r\n name +\r\n \"' cannot be performed on a root reference, create a non-root \" +\r\n \"reference using child, such as .child('file.png').\");\r\n}\r\n/**\r\n * @param format - The format that was not valid.\r\n * @param message - A message describing the format violation.\r\n */\r\nfunction invalidFormat(format, message) {\r\n return new FirebaseStorageError(\"invalid-format\" /* INVALID_FORMAT */, \"String does not match format '\" + format + \"': \" + message);\r\n}\r\n/**\r\n * @param message - A message describing the internal error.\r\n */\r\nfunction internalError(message) {\r\n throw new FirebaseStorageError(\"internal-error\" /* INTERNAL_ERROR */, 'Internal error: ' + message);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An enumeration of the possible string formats for upload.\r\n * @public\r\n */\r\nvar StringFormat = {\r\n /**\r\n * Indicates the string should be interpreted \"raw\", that is, as normal text.\r\n * The string will be interpreted as UTF-16, then uploaded as a UTF-8 byte\r\n * sequence.\r\n * Example: The string 'Hello! \\\\ud83d\\\\ude0a' becomes the byte sequence\r\n * 48 65 6c 6c 6f 21 20 f0 9f 98 8a\r\n */\r\n RAW: 'raw',\r\n /**\r\n * Indicates the string should be interpreted as base64-encoded data.\r\n * Padding characters (trailing '='s) are optional.\r\n * Example: The string 'rWmO++E6t7/rlw==' becomes the byte sequence\r\n * ad 69 8e fb e1 3a b7 bf eb 97\r\n */\r\n BASE64: 'base64',\r\n /**\r\n * Indicates the string should be interpreted as base64url-encoded data.\r\n * Padding characters (trailing '='s) are optional.\r\n * Example: The string 'rWmO--E6t7_rlw==' becomes the byte sequence\r\n * ad 69 8e fb e1 3a b7 bf eb 97\r\n */\r\n BASE64URL: 'base64url',\r\n /**\r\n * Indicates the string is a data URL, such as one obtained from\r\n * canvas.toDataURL().\r\n * Example: the string 'data:application/octet-stream;base64,aaaa'\r\n * becomes the byte sequence\r\n * 69 a6 9a\r\n * (the content-type \"application/octet-stream\" is also applied, but can\r\n * be overridden in the metadata object).\r\n */\r\n DATA_URL: 'data_url'\r\n};\r\nvar StringData = /** @class */ (function () {\r\n function StringData(data, contentType) {\r\n this.data = data;\r\n this.contentType = contentType || null;\r\n }\r\n return StringData;\r\n}());\r\nfunction dataFromString(format, stringData) {\r\n switch (format) {\r\n case StringFormat.RAW:\r\n return new StringData(utf8Bytes_(stringData));\r\n case StringFormat.BASE64:\r\n case StringFormat.BASE64URL:\r\n return new StringData(base64Bytes_(format, stringData));\r\n case StringFormat.DATA_URL:\r\n return new StringData(dataURLBytes_(stringData), dataURLContentType_(stringData));\r\n // do nothing\r\n }\r\n // assert(false);\r\n throw unknown();\r\n}\r\nfunction utf8Bytes_(value) {\r\n var b = [];\r\n for (var i = 0; i < value.length; i++) {\r\n var c = value.charCodeAt(i);\r\n if (c <= 127) {\r\n b.push(c);\r\n }\r\n else {\r\n if (c <= 2047) {\r\n b.push(192 | (c >> 6), 128 | (c & 63));\r\n }\r\n else {\r\n if ((c & 64512) === 55296) {\r\n // The start of a surrogate pair.\r\n var valid = i < value.length - 1 && (value.charCodeAt(i + 1) & 64512) === 56320;\r\n if (!valid) {\r\n // The second surrogate wasn't there.\r\n b.push(239, 191, 189);\r\n }\r\n else {\r\n var hi = c;\r\n var lo = value.charCodeAt(++i);\r\n c = 65536 | ((hi & 1023) << 10) | (lo & 1023);\r\n b.push(240 | (c >> 18), 128 | ((c >> 12) & 63), 128 | ((c >> 6) & 63), 128 | (c & 63));\r\n }\r\n }\r\n else {\r\n if ((c & 64512) === 56320) {\r\n // Invalid low surrogate.\r\n b.push(239, 191, 189);\r\n }\r\n else {\r\n b.push(224 | (c >> 12), 128 | ((c >> 6) & 63), 128 | (c & 63));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return new Uint8Array(b);\r\n}\r\nfunction percentEncodedBytes_(value) {\r\n var decoded;\r\n try {\r\n decoded = decodeURIComponent(value);\r\n }\r\n catch (e) {\r\n throw invalidFormat(StringFormat.DATA_URL, 'Malformed data URL.');\r\n }\r\n return utf8Bytes_(decoded);\r\n}\r\nfunction base64Bytes_(format, value) {\r\n switch (format) {\r\n case StringFormat.BASE64: {\r\n var hasMinus = value.indexOf('-') !== -1;\r\n var hasUnder = value.indexOf('_') !== -1;\r\n if (hasMinus || hasUnder) {\r\n var invalidChar = hasMinus ? '-' : '_';\r\n throw invalidFormat(format, \"Invalid character '\" +\r\n invalidChar +\r\n \"' found: is it base64url encoded?\");\r\n }\r\n break;\r\n }\r\n case StringFormat.BASE64URL: {\r\n var hasPlus = value.indexOf('+') !== -1;\r\n var hasSlash = value.indexOf('/') !== -1;\r\n if (hasPlus || hasSlash) {\r\n var invalidChar = hasPlus ? '+' : '/';\r\n throw invalidFormat(format, \"Invalid character '\" + invalidChar + \"' found: is it base64 encoded?\");\r\n }\r\n value = value.replace(/-/g, '+').replace(/_/g, '/');\r\n break;\r\n }\r\n // do nothing\r\n }\r\n var bytes;\r\n try {\r\n bytes = atob(value);\r\n }\r\n catch (e) {\r\n throw invalidFormat(format, 'Invalid character found');\r\n }\r\n var array = new Uint8Array(bytes.length);\r\n for (var i = 0; i < bytes.length; i++) {\r\n array[i] = bytes.charCodeAt(i);\r\n }\r\n return array;\r\n}\r\nvar DataURLParts = /** @class */ (function () {\r\n function DataURLParts(dataURL) {\r\n this.base64 = false;\r\n this.contentType = null;\r\n var matches = dataURL.match(/^data:([^,]+)?,/);\r\n if (matches === null) {\r\n throw invalidFormat(StringFormat.DATA_URL, \"Must be formatted 'data:[][;base64],\");\r\n }\r\n var middle = matches[1] || null;\r\n if (middle != null) {\r\n this.base64 = endsWith(middle, ';base64');\r\n this.contentType = this.base64\r\n ? middle.substring(0, middle.length - ';base64'.length)\r\n : middle;\r\n }\r\n this.rest = dataURL.substring(dataURL.indexOf(',') + 1);\r\n }\r\n return DataURLParts;\r\n}());\r\nfunction dataURLBytes_(dataUrl) {\r\n var parts = new DataURLParts(dataUrl);\r\n if (parts.base64) {\r\n return base64Bytes_(StringFormat.BASE64, parts.rest);\r\n }\r\n else {\r\n return percentEncodedBytes_(parts.rest);\r\n }\r\n}\r\nfunction dataURLContentType_(dataUrl) {\r\n var parts = new DataURLParts(dataUrl);\r\n return parts.contentType;\r\n}\r\nfunction endsWith(s, end) {\r\n var longEnough = s.length >= end.length;\r\n if (!longEnough) {\r\n return false;\r\n }\r\n return s.substring(s.length - end.length) === end;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An event that is triggered on a task.\r\n */\r\nvar TaskEvent = {\r\n /**\r\n * For this event,\r\n *
      \r\n *
    • The `next` function is triggered on progress updates and when the\r\n * task is paused/resumed with an `UploadTaskSnapshot` as the first\r\n * argument.
    • \r\n *
    • The `error` function is triggered if the upload is canceled or fails\r\n * for another reason.
    • \r\n *
    • The `complete` function is triggered if the upload completes\r\n * successfully.
    • \r\n *
    \r\n */\r\n STATE_CHANGED: 'state_changed'\r\n};\r\n/**\r\n * Represents the current state of a running upload.\r\n */\r\nvar TaskState = {\r\n /** The task is currently transferring data. */\r\n RUNNING: 'running',\r\n /** The task was paused by the user. */\r\n PAUSED: 'paused',\r\n /** The task completed successfully. */\r\n SUCCESS: 'success',\r\n /** The task was canceled. */\r\n CANCELED: 'canceled',\r\n /** The task failed with an error. */\r\n ERROR: 'error'\r\n};\r\nfunction taskStateFromInternalTaskState(state) {\r\n switch (state) {\r\n case \"running\" /* RUNNING */:\r\n case \"pausing\" /* PAUSING */:\r\n case \"canceling\" /* CANCELING */:\r\n return TaskState.RUNNING;\r\n case \"paused\" /* PAUSED */:\r\n return TaskState.PAUSED;\r\n case \"success\" /* SUCCESS */:\r\n return TaskState.SUCCESS;\r\n case \"canceled\" /* CANCELED */:\r\n return TaskState.CANCELED;\r\n case \"error\" /* ERROR */:\r\n return TaskState.ERROR;\r\n default:\r\n // TODO(andysoto): assert(false);\r\n return TaskState.ERROR;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Error codes for requests made by the the XhrIo wrapper.\r\n */\r\nvar ErrorCode;\r\n(function (ErrorCode) {\r\n ErrorCode[ErrorCode[\"NO_ERROR\"] = 0] = \"NO_ERROR\";\r\n ErrorCode[ErrorCode[\"NETWORK_ERROR\"] = 1] = \"NETWORK_ERROR\";\r\n ErrorCode[ErrorCode[\"ABORT\"] = 2] = \"ABORT\";\r\n})(ErrorCode || (ErrorCode = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * We use this instead of goog.net.XhrIo because goog.net.XhrIo is hyuuuuge and\r\n * doesn't work in React Native on Android.\r\n */\r\nvar NetworkXhrIo = /** @class */ (function () {\r\n function NetworkXhrIo() {\r\n var _this = this;\r\n this.sent_ = false;\r\n this.xhr_ = new XMLHttpRequest();\r\n this.errorCode_ = ErrorCode.NO_ERROR;\r\n this.sendPromise_ = new Promise(function (resolve) {\r\n _this.xhr_.addEventListener('abort', function () {\r\n _this.errorCode_ = ErrorCode.ABORT;\r\n resolve(_this);\r\n });\r\n _this.xhr_.addEventListener('error', function () {\r\n _this.errorCode_ = ErrorCode.NETWORK_ERROR;\r\n resolve(_this);\r\n });\r\n _this.xhr_.addEventListener('load', function () {\r\n resolve(_this);\r\n });\r\n });\r\n }\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.send = function (url, method, body, headers) {\r\n if (this.sent_) {\r\n throw internalError('cannot .send() more than once');\r\n }\r\n this.sent_ = true;\r\n this.xhr_.open(method, url, true);\r\n if (headers !== undefined) {\r\n for (var key in headers) {\r\n if (headers.hasOwnProperty(key)) {\r\n this.xhr_.setRequestHeader(key, headers[key].toString());\r\n }\r\n }\r\n }\r\n if (body !== undefined) {\r\n this.xhr_.send(body);\r\n }\r\n else {\r\n this.xhr_.send();\r\n }\r\n return this.sendPromise_;\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.getErrorCode = function () {\r\n if (!this.sent_) {\r\n throw internalError('cannot .getErrorCode() before sending');\r\n }\r\n return this.errorCode_;\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.getStatus = function () {\r\n if (!this.sent_) {\r\n throw internalError('cannot .getStatus() before sending');\r\n }\r\n try {\r\n return this.xhr_.status;\r\n }\r\n catch (e) {\r\n return -1;\r\n }\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.getResponseText = function () {\r\n if (!this.sent_) {\r\n throw internalError('cannot .getResponseText() before sending');\r\n }\r\n return this.xhr_.responseText;\r\n };\r\n /**\r\n * Aborts the request.\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.abort = function () {\r\n this.xhr_.abort();\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.getResponseHeader = function (header) {\r\n return this.xhr_.getResponseHeader(header);\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.addUploadProgressListener = function (listener) {\r\n if (this.xhr_.upload != null) {\r\n this.xhr_.upload.addEventListener('progress', listener);\r\n }\r\n };\r\n /**\r\n * @override\r\n */\r\n NetworkXhrIo.prototype.removeUploadProgressListener = function (listener) {\r\n if (this.xhr_.upload != null) {\r\n this.xhr_.upload.removeEventListener('progress', listener);\r\n }\r\n };\r\n return NetworkXhrIo;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Factory-like class for creating XhrIo instances.\r\n */\r\nvar XhrIoPool = /** @class */ (function () {\r\n function XhrIoPool() {\r\n }\r\n XhrIoPool.prototype.createXhrIo = function () {\r\n return new NetworkXhrIo();\r\n };\r\n return XhrIoPool;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Firebase Storage location data.\r\n *\r\n * @internal\r\n */\r\nvar Location = /** @class */ (function () {\r\n function Location(bucket, path) {\r\n this.bucket = bucket;\r\n this.path_ = path;\r\n }\r\n Object.defineProperty(Location.prototype, \"path\", {\r\n get: function () {\r\n return this.path_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Location.prototype, \"isRoot\", {\r\n get: function () {\r\n return this.path.length === 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Location.prototype.fullServerUrl = function () {\r\n var encode = encodeURIComponent;\r\n return '/b/' + encode(this.bucket) + '/o/' + encode(this.path);\r\n };\r\n Location.prototype.bucketOnlyServerUrl = function () {\r\n var encode = encodeURIComponent;\r\n return '/b/' + encode(this.bucket) + '/o';\r\n };\r\n Location.makeFromBucketSpec = function (bucketString) {\r\n var bucketLocation;\r\n try {\r\n bucketLocation = Location.makeFromUrl(bucketString);\r\n }\r\n catch (e) {\r\n // Not valid URL, use as-is. This lets you put bare bucket names in\r\n // config.\r\n return new Location(bucketString, '');\r\n }\r\n if (bucketLocation.path === '') {\r\n return bucketLocation;\r\n }\r\n else {\r\n throw invalidDefaultBucket(bucketString);\r\n }\r\n };\r\n Location.makeFromUrl = function (url) {\r\n var location = null;\r\n var bucketDomain = '([A-Za-z0-9.\\\\-_]+)';\r\n function gsModify(loc) {\r\n if (loc.path.charAt(loc.path.length - 1) === '/') {\r\n loc.path_ = loc.path_.slice(0, -1);\r\n }\r\n }\r\n var gsPath = '(/(.*))?$';\r\n var gsRegex = new RegExp('^gs://' + bucketDomain + gsPath, 'i');\r\n var gsIndices = { bucket: 1, path: 3 };\r\n function httpModify(loc) {\r\n loc.path_ = decodeURIComponent(loc.path);\r\n }\r\n var version = 'v[A-Za-z0-9_]+';\r\n var firebaseStorageHost = DEFAULT_HOST.replace(/[.]/g, '\\\\.');\r\n var firebaseStoragePath = '(/([^?#]*).*)?$';\r\n var firebaseStorageRegExp = new RegExp(\"^https?://\" + firebaseStorageHost + \"/\" + version + \"/b/\" + bucketDomain + \"/o\" + firebaseStoragePath, 'i');\r\n var firebaseStorageIndices = { bucket: 1, path: 3 };\r\n var cloudStorageHost = '(?:storage.googleapis.com|storage.cloud.google.com)';\r\n var cloudStoragePath = '([^?#]*)';\r\n var cloudStorageRegExp = new RegExp(\"^https?://\" + cloudStorageHost + \"/\" + bucketDomain + \"/\" + cloudStoragePath, 'i');\r\n var cloudStorageIndices = { bucket: 1, path: 2 };\r\n var groups = [\r\n { regex: gsRegex, indices: gsIndices, postModify: gsModify },\r\n {\r\n regex: firebaseStorageRegExp,\r\n indices: firebaseStorageIndices,\r\n postModify: httpModify\r\n },\r\n {\r\n regex: cloudStorageRegExp,\r\n indices: cloudStorageIndices,\r\n postModify: httpModify\r\n }\r\n ];\r\n for (var i = 0; i < groups.length; i++) {\r\n var group = groups[i];\r\n var captures = group.regex.exec(url);\r\n if (captures) {\r\n var bucketValue = captures[group.indices.bucket];\r\n var pathValue = captures[group.indices.path];\r\n if (!pathValue) {\r\n pathValue = '';\r\n }\r\n location = new Location(bucketValue, pathValue);\r\n group.postModify(location);\r\n break;\r\n }\r\n }\r\n if (location == null) {\r\n throw invalidUrl(url);\r\n }\r\n return location;\r\n };\r\n return Location;\r\n}());\n\n/**\r\n * A request whose promise always fails.\r\n */\r\nvar FailRequest = /** @class */ (function () {\r\n function FailRequest(error) {\r\n this.promise_ = Promise.reject(error);\r\n }\r\n /** @inheritDoc */\r\n FailRequest.prototype.getPromise = function () {\r\n return this.promise_;\r\n };\r\n /** @inheritDoc */\r\n FailRequest.prototype.cancel = function (_appDelete) {\r\n };\r\n return FailRequest;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param f May be invoked\r\n * before the function returns.\r\n * @param callback Get all the arguments passed to the function\r\n * passed to f, including the initial boolean.\r\n */\r\nfunction start(f, \r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ncallback, timeout) {\r\n // TODO(andysoto): make this code cleaner (probably refactor into an actual\r\n // type instead of a bunch of functions with state shared in the closure)\r\n var waitSeconds = 1;\r\n // Would type this as \"number\" but that doesn't work for Node so ¯\\_(ツ)_/¯\r\n // TODO: find a way to exclude Node type definition for storage because storage only works in browser\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var timeoutId = null;\r\n var hitTimeout = false;\r\n var cancelState = 0;\r\n function canceled() {\r\n return cancelState === 2;\r\n }\r\n var triggeredCallback = false;\r\n function triggerCallback() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!triggeredCallback) {\r\n triggeredCallback = true;\r\n callback.apply(null, args);\r\n }\r\n }\r\n function callWithDelay(millis) {\r\n timeoutId = setTimeout(function () {\r\n timeoutId = null;\r\n f(handler, canceled());\r\n }, millis);\r\n }\r\n function handler(success) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (triggeredCallback) {\r\n return;\r\n }\r\n if (success) {\r\n triggerCallback.call.apply(triggerCallback, __spreadArray([null, success], args));\r\n return;\r\n }\r\n var mustStop = canceled() || hitTimeout;\r\n if (mustStop) {\r\n triggerCallback.call.apply(triggerCallback, __spreadArray([null, success], args));\r\n return;\r\n }\r\n if (waitSeconds < 64) {\r\n /* TODO(andysoto): don't back off so quickly if we know we're offline. */\r\n waitSeconds *= 2;\r\n }\r\n var waitMillis;\r\n if (cancelState === 1) {\r\n cancelState = 2;\r\n waitMillis = 0;\r\n }\r\n else {\r\n waitMillis = (waitSeconds + Math.random()) * 1000;\r\n }\r\n callWithDelay(waitMillis);\r\n }\r\n var stopped = false;\r\n function stop(wasTimeout) {\r\n if (stopped) {\r\n return;\r\n }\r\n stopped = true;\r\n if (triggeredCallback) {\r\n return;\r\n }\r\n if (timeoutId !== null) {\r\n if (!wasTimeout) {\r\n cancelState = 2;\r\n }\r\n clearTimeout(timeoutId);\r\n callWithDelay(0);\r\n }\r\n else {\r\n if (!wasTimeout) {\r\n cancelState = 1;\r\n }\r\n }\r\n }\r\n callWithDelay(0);\r\n setTimeout(function () {\r\n hitTimeout = true;\r\n stop(true);\r\n }, timeout);\r\n return stop;\r\n}\r\n/**\r\n * Stops the retry loop from repeating.\r\n * If the function is currently \"in between\" retries, it is invoked immediately\r\n * with the second parameter as \"true\". Otherwise, it will be invoked once more\r\n * after the current invocation finishes iff the current invocation would have\r\n * triggered another retry.\r\n */\r\nfunction stop(id) {\r\n id(false);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isJustDef(p) {\r\n return p !== void 0;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction isFunction(p) {\r\n return typeof p === 'function';\r\n}\r\nfunction isNonArrayObject(p) {\r\n return typeof p === 'object' && !Array.isArray(p);\r\n}\r\nfunction isString(p) {\r\n return typeof p === 'string' || p instanceof String;\r\n}\r\nfunction isNativeBlob(p) {\r\n return isNativeBlobDefined() && p instanceof Blob;\r\n}\r\nfunction isNativeBlobDefined() {\r\n return typeof Blob !== 'undefined';\r\n}\r\nfunction validateNumber(argument, minValue, maxValue, value) {\r\n if (value < minValue) {\r\n throw invalidArgument(\"Invalid value for '\" + argument + \"'. Expected \" + minValue + \" or greater.\");\r\n }\r\n if (value > maxValue) {\r\n throw invalidArgument(\"Invalid value for '\" + argument + \"'. Expected \" + maxValue + \" or less.\");\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction makeUrl(urlPart) {\r\n return \"https://\" + DEFAULT_HOST + \"/v0\" + urlPart;\r\n}\r\nfunction makeQueryString(params) {\r\n var encode = encodeURIComponent;\r\n var queryPart = '?';\r\n for (var key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n var nextPart = encode(key) + '=' + encode(params[key]);\r\n queryPart = queryPart + nextPart + '&';\r\n }\r\n }\r\n // Chop off the extra '&' or '?' on the end\r\n queryPart = queryPart.slice(0, -1);\r\n return queryPart;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar NetworkRequest = /** @class */ (function () {\r\n function NetworkRequest(url, method, headers, body, successCodes, additionalRetryCodes, callback, errorCallback, timeout, progressCallback, pool) {\r\n var _this = this;\r\n this.pendingXhr_ = null;\r\n this.backoffId_ = null;\r\n this.canceled_ = false;\r\n this.appDelete_ = false;\r\n this.url_ = url;\r\n this.method_ = method;\r\n this.headers_ = headers;\r\n this.body_ = body;\r\n this.successCodes_ = successCodes.slice();\r\n this.additionalRetryCodes_ = additionalRetryCodes.slice();\r\n this.callback_ = callback;\r\n this.errorCallback_ = errorCallback;\r\n this.progressCallback_ = progressCallback;\r\n this.timeout_ = timeout;\r\n this.pool_ = pool;\r\n this.promise_ = new Promise(function (resolve, reject) {\r\n _this.resolve_ = resolve;\r\n _this.reject_ = reject;\r\n _this.start_();\r\n });\r\n }\r\n /**\r\n * Actually starts the retry loop.\r\n */\r\n NetworkRequest.prototype.start_ = function () {\r\n var self = this;\r\n function doTheRequest(backoffCallback, canceled) {\r\n if (canceled) {\r\n backoffCallback(false, new RequestEndStatus(false, null, true));\r\n return;\r\n }\r\n var xhr = self.pool_.createXhrIo();\r\n self.pendingXhr_ = xhr;\r\n function progressListener(progressEvent) {\r\n var loaded = progressEvent.loaded;\r\n var total = progressEvent.lengthComputable ? progressEvent.total : -1;\r\n if (self.progressCallback_ !== null) {\r\n self.progressCallback_(loaded, total);\r\n }\r\n }\r\n if (self.progressCallback_ !== null) {\r\n xhr.addUploadProgressListener(progressListener);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n xhr\r\n .send(self.url_, self.method_, self.body_, self.headers_)\r\n .then(function (xhr) {\r\n if (self.progressCallback_ !== null) {\r\n xhr.removeUploadProgressListener(progressListener);\r\n }\r\n self.pendingXhr_ = null;\r\n xhr = xhr;\r\n var hitServer = xhr.getErrorCode() === ErrorCode.NO_ERROR;\r\n var status = xhr.getStatus();\r\n if (!hitServer || self.isRetryStatusCode_(status)) {\r\n var wasCanceled = xhr.getErrorCode() === ErrorCode.ABORT;\r\n backoffCallback(false, new RequestEndStatus(false, null, wasCanceled));\r\n return;\r\n }\r\n var successCode = self.successCodes_.indexOf(status) !== -1;\r\n backoffCallback(true, new RequestEndStatus(successCode, xhr));\r\n });\r\n }\r\n /**\r\n * @param requestWentThrough - True if the request eventually went\r\n * through, false if it hit the retry limit or was canceled.\r\n */\r\n function backoffDone(requestWentThrough, status) {\r\n var resolve = self.resolve_;\r\n var reject = self.reject_;\r\n var xhr = status.xhr;\r\n if (status.wasSuccessCode) {\r\n try {\r\n var result = self.callback_(xhr, xhr.getResponseText());\r\n if (isJustDef(result)) {\r\n resolve(result);\r\n }\r\n else {\r\n resolve();\r\n }\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n }\r\n else {\r\n if (xhr !== null) {\r\n var err = unknown();\r\n err.serverResponse = xhr.getResponseText();\r\n if (self.errorCallback_) {\r\n reject(self.errorCallback_(xhr, err));\r\n }\r\n else {\r\n reject(err);\r\n }\r\n }\r\n else {\r\n if (status.canceled) {\r\n var err = self.appDelete_ ? appDeleted() : canceled();\r\n reject(err);\r\n }\r\n else {\r\n var err = retryLimitExceeded();\r\n reject(err);\r\n }\r\n }\r\n }\r\n }\r\n if (this.canceled_) {\r\n backoffDone(false, new RequestEndStatus(false, null, true));\r\n }\r\n else {\r\n this.backoffId_ = start(doTheRequest, backoffDone, this.timeout_);\r\n }\r\n };\r\n /** @inheritDoc */\r\n NetworkRequest.prototype.getPromise = function () {\r\n return this.promise_;\r\n };\r\n /** @inheritDoc */\r\n NetworkRequest.prototype.cancel = function (appDelete) {\r\n this.canceled_ = true;\r\n this.appDelete_ = appDelete || false;\r\n if (this.backoffId_ !== null) {\r\n stop(this.backoffId_);\r\n }\r\n if (this.pendingXhr_ !== null) {\r\n this.pendingXhr_.abort();\r\n }\r\n };\r\n NetworkRequest.prototype.isRetryStatusCode_ = function (status) {\r\n // The codes for which to retry came from this page:\r\n // https://cloud.google.com/storage/docs/exponential-backoff\r\n var isFiveHundredCode = status >= 500 && status < 600;\r\n var extraRetryCodes = [\r\n // Request Timeout: web server didn't receive full request in time.\r\n 408,\r\n // Too Many Requests: you're getting rate-limited, basically.\r\n 429\r\n ];\r\n var isExtraRetryCode = extraRetryCodes.indexOf(status) !== -1;\r\n var isRequestSpecificRetryCode = this.additionalRetryCodes_.indexOf(status) !== -1;\r\n return isFiveHundredCode || isExtraRetryCode || isRequestSpecificRetryCode;\r\n };\r\n return NetworkRequest;\r\n}());\r\n/**\r\n * A collection of information about the result of a network request.\r\n * @param opt_canceled - Defaults to false.\r\n */\r\nvar RequestEndStatus = /** @class */ (function () {\r\n function RequestEndStatus(wasSuccessCode, xhr, canceled) {\r\n this.wasSuccessCode = wasSuccessCode;\r\n this.xhr = xhr;\r\n this.canceled = !!canceled;\r\n }\r\n return RequestEndStatus;\r\n}());\r\nfunction addAuthHeader_(headers, authToken) {\r\n if (authToken !== null && authToken.length > 0) {\r\n headers['Authorization'] = 'Firebase ' + authToken;\r\n }\r\n}\r\nfunction addVersionHeader_(headers, firebaseVersion) {\r\n headers['X-Firebase-Storage-Version'] =\r\n 'webjs/' + (firebaseVersion !== null && firebaseVersion !== void 0 ? firebaseVersion : 'AppManager');\r\n}\r\nfunction addGmpidHeader_(headers, appId) {\r\n if (appId) {\r\n headers['X-Firebase-GMPID'] = appId;\r\n }\r\n}\r\nfunction makeRequest(requestInfo, appId, authToken, pool, firebaseVersion) {\r\n var queryPart = makeQueryString(requestInfo.urlParams);\r\n var url = requestInfo.url + queryPart;\r\n var headers = Object.assign({}, requestInfo.headers);\r\n addGmpidHeader_(headers, appId);\r\n addAuthHeader_(headers, authToken);\r\n addVersionHeader_(headers, firebaseVersion);\r\n return new NetworkRequest(url, requestInfo.method, headers, requestInfo.body, requestInfo.successCodes, requestInfo.additionalRetryCodes, requestInfo.handler, requestInfo.errorHandler, requestInfo.timeout, requestInfo.progressCallback, pool);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getBlobBuilder() {\r\n if (typeof BlobBuilder !== 'undefined') {\r\n return BlobBuilder;\r\n }\r\n else if (typeof WebKitBlobBuilder !== 'undefined') {\r\n return WebKitBlobBuilder;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * Concatenates one or more values together and converts them to a Blob.\r\n *\r\n * @param args The values that will make up the resulting blob.\r\n * @return The blob.\r\n */\r\nfunction getBlob() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var BlobBuilder = getBlobBuilder();\r\n if (BlobBuilder !== undefined) {\r\n var bb = new BlobBuilder();\r\n for (var i = 0; i < args.length; i++) {\r\n bb.append(args[i]);\r\n }\r\n return bb.getBlob();\r\n }\r\n else {\r\n if (isNativeBlobDefined()) {\r\n return new Blob(args);\r\n }\r\n else {\r\n throw new FirebaseStorageError(\"unsupported-environment\" /* UNSUPPORTED_ENVIRONMENT */, \"This browser doesn't seem to support creating Blobs\");\r\n }\r\n }\r\n}\r\n/**\r\n * Slices the blob. The returned blob contains data from the start byte\r\n * (inclusive) till the end byte (exclusive). Negative indices cannot be used.\r\n *\r\n * @param blob The blob to be sliced.\r\n * @param start Index of the starting byte.\r\n * @param end Index of the ending byte.\r\n * @return The blob slice or null if not supported.\r\n */\r\nfunction sliceBlob(blob, start, end) {\r\n if (blob.webkitSlice) {\r\n return blob.webkitSlice(start, end);\r\n }\r\n else if (blob.mozSlice) {\r\n return blob.mozSlice(start, end);\r\n }\r\n else if (blob.slice) {\r\n return blob.slice(start, end);\r\n }\r\n return null;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param opt_elideCopy - If true, doesn't copy mutable input data\r\n * (e.g. Uint8Arrays). Pass true only if you know the objects will not be\r\n * modified after this blob's construction.\r\n *\r\n * @internal\r\n */\r\nvar FbsBlob = /** @class */ (function () {\r\n function FbsBlob(data, elideCopy) {\r\n var size = 0;\r\n var blobType = '';\r\n if (isNativeBlob(data)) {\r\n this.data_ = data;\r\n size = data.size;\r\n blobType = data.type;\r\n }\r\n else if (data instanceof ArrayBuffer) {\r\n if (elideCopy) {\r\n this.data_ = new Uint8Array(data);\r\n }\r\n else {\r\n this.data_ = new Uint8Array(data.byteLength);\r\n this.data_.set(new Uint8Array(data));\r\n }\r\n size = this.data_.length;\r\n }\r\n else if (data instanceof Uint8Array) {\r\n if (elideCopy) {\r\n this.data_ = data;\r\n }\r\n else {\r\n this.data_ = new Uint8Array(data.length);\r\n this.data_.set(data);\r\n }\r\n size = data.length;\r\n }\r\n this.size_ = size;\r\n this.type_ = blobType;\r\n }\r\n FbsBlob.prototype.size = function () {\r\n return this.size_;\r\n };\r\n FbsBlob.prototype.type = function () {\r\n return this.type_;\r\n };\r\n FbsBlob.prototype.slice = function (startByte, endByte) {\r\n if (isNativeBlob(this.data_)) {\r\n var realBlob = this.data_;\r\n var sliced = sliceBlob(realBlob, startByte, endByte);\r\n if (sliced === null) {\r\n return null;\r\n }\r\n return new FbsBlob(sliced);\r\n }\r\n else {\r\n var slice = new Uint8Array(this.data_.buffer, startByte, endByte - startByte);\r\n return new FbsBlob(slice, true);\r\n }\r\n };\r\n FbsBlob.getBlob = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (isNativeBlobDefined()) {\r\n var blobby = args.map(function (val) {\r\n if (val instanceof FbsBlob) {\r\n return val.data_;\r\n }\r\n else {\r\n return val;\r\n }\r\n });\r\n return new FbsBlob(getBlob.apply(null, blobby));\r\n }\r\n else {\r\n var uint8Arrays = args.map(function (val) {\r\n if (isString(val)) {\r\n return dataFromString(StringFormat.RAW, val).data;\r\n }\r\n else {\r\n // Blobs don't exist, so this has to be a Uint8Array.\r\n return val.data_;\r\n }\r\n });\r\n var finalLength_1 = 0;\r\n uint8Arrays.forEach(function (array) {\r\n finalLength_1 += array.byteLength;\r\n });\r\n var merged_1 = new Uint8Array(finalLength_1);\r\n var index_1 = 0;\r\n uint8Arrays.forEach(function (array) {\r\n for (var i = 0; i < array.length; i++) {\r\n merged_1[index_1++] = array[i];\r\n }\r\n });\r\n return new FbsBlob(merged_1, true);\r\n }\r\n };\r\n FbsBlob.prototype.uploadData = function () {\r\n return this.data_;\r\n };\r\n return FbsBlob;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns the Object resulting from parsing the given JSON, or null if the\r\n * given string does not represent a JSON object.\r\n */\r\nfunction jsonObjectOrNull(s) {\r\n var obj;\r\n try {\r\n obj = JSON.parse(s);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n if (isNonArrayObject(obj)) {\r\n return obj;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Contains helper methods for manipulating paths.\r\n */\r\n/**\r\n * @return Null if the path is already at the root.\r\n */\r\nfunction parent(path) {\r\n if (path.length === 0) {\r\n return null;\r\n }\r\n var index = path.lastIndexOf('/');\r\n if (index === -1) {\r\n return '';\r\n }\r\n var newPath = path.slice(0, index);\r\n return newPath;\r\n}\r\nfunction child(path, childPath) {\r\n var canonicalChildPath = childPath\r\n .split('/')\r\n .filter(function (component) { return component.length > 0; })\r\n .join('/');\r\n if (path.length === 0) {\r\n return canonicalChildPath;\r\n }\r\n else {\r\n return path + '/' + canonicalChildPath;\r\n }\r\n}\r\n/**\r\n * Returns the last component of a path.\r\n * '/foo/bar' -> 'bar'\r\n * '/foo/bar/baz/' -> 'baz/'\r\n * '/a' -> 'a'\r\n */\r\nfunction lastComponent(path) {\r\n var index = path.lastIndexOf('/', path.length - 2);\r\n if (index === -1) {\r\n return path;\r\n }\r\n else {\r\n return path.slice(index + 1);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction noXform_(metadata, value) {\r\n return value;\r\n}\r\nvar Mapping = /** @class */ (function () {\r\n function Mapping(server, local, writable, xform) {\r\n this.server = server;\r\n this.local = local || server;\r\n this.writable = !!writable;\r\n this.xform = xform || noXform_;\r\n }\r\n return Mapping;\r\n}());\r\nvar mappings_ = null;\r\nfunction xformPath(fullPath) {\r\n if (!isString(fullPath) || fullPath.length < 2) {\r\n return fullPath;\r\n }\r\n else {\r\n return lastComponent(fullPath);\r\n }\r\n}\r\nfunction getMappings() {\r\n if (mappings_) {\r\n return mappings_;\r\n }\r\n var mappings = [];\r\n mappings.push(new Mapping('bucket'));\r\n mappings.push(new Mapping('generation'));\r\n mappings.push(new Mapping('metageneration'));\r\n mappings.push(new Mapping('name', 'fullPath', true));\r\n function mappingsXformPath(_metadata, fullPath) {\r\n return xformPath(fullPath);\r\n }\r\n var nameMapping = new Mapping('name');\r\n nameMapping.xform = mappingsXformPath;\r\n mappings.push(nameMapping);\r\n /**\r\n * Coerces the second param to a number, if it is defined.\r\n */\r\n function xformSize(_metadata, size) {\r\n if (size !== undefined) {\r\n return Number(size);\r\n }\r\n else {\r\n return size;\r\n }\r\n }\r\n var sizeMapping = new Mapping('size');\r\n sizeMapping.xform = xformSize;\r\n mappings.push(sizeMapping);\r\n mappings.push(new Mapping('timeCreated'));\r\n mappings.push(new Mapping('updated'));\r\n mappings.push(new Mapping('md5Hash', null, true));\r\n mappings.push(new Mapping('cacheControl', null, true));\r\n mappings.push(new Mapping('contentDisposition', null, true));\r\n mappings.push(new Mapping('contentEncoding', null, true));\r\n mappings.push(new Mapping('contentLanguage', null, true));\r\n mappings.push(new Mapping('contentType', null, true));\r\n mappings.push(new Mapping('metadata', 'customMetadata', true));\r\n mappings_ = mappings;\r\n return mappings_;\r\n}\r\nfunction addRef(metadata, service) {\r\n function generateRef() {\r\n var bucket = metadata['bucket'];\r\n var path = metadata['fullPath'];\r\n var loc = new Location(bucket, path);\r\n return service._makeStorageReference(loc);\r\n }\r\n Object.defineProperty(metadata, 'ref', { get: generateRef });\r\n}\r\nfunction fromResource(service, resource, mappings) {\r\n var metadata = {};\r\n metadata['type'] = 'file';\r\n var len = mappings.length;\r\n for (var i = 0; i < len; i++) {\r\n var mapping = mappings[i];\r\n metadata[mapping.local] = mapping.xform(metadata, resource[mapping.server]);\r\n }\r\n addRef(metadata, service);\r\n return metadata;\r\n}\r\nfunction fromResourceString(service, resourceString, mappings) {\r\n var obj = jsonObjectOrNull(resourceString);\r\n if (obj === null) {\r\n return null;\r\n }\r\n var resource = obj;\r\n return fromResource(service, resource, mappings);\r\n}\r\nfunction downloadUrlFromResourceString(metadata, resourceString) {\r\n var obj = jsonObjectOrNull(resourceString);\r\n if (obj === null) {\r\n return null;\r\n }\r\n if (!isString(obj['downloadTokens'])) {\r\n // This can happen if objects are uploaded through GCS and retrieved\r\n // through list, so we don't want to throw an Error.\r\n return null;\r\n }\r\n var tokens = obj['downloadTokens'];\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var encode = encodeURIComponent;\r\n var tokensList = tokens.split(',');\r\n var urls = tokensList.map(function (token) {\r\n var bucket = metadata['bucket'];\r\n var path = metadata['fullPath'];\r\n var urlPart = '/b/' + encode(bucket) + '/o/' + encode(path);\r\n var base = makeUrl(urlPart);\r\n var queryString = makeQueryString({\r\n alt: 'media',\r\n token: token\r\n });\r\n return base + queryString;\r\n });\r\n return urls[0];\r\n}\r\nfunction toResourceString(metadata, mappings) {\r\n var resource = {};\r\n var len = mappings.length;\r\n for (var i = 0; i < len; i++) {\r\n var mapping = mappings[i];\r\n if (mapping.writable) {\r\n resource[mapping.server] = metadata[mapping.local];\r\n }\r\n }\r\n return JSON.stringify(resource);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PREFIXES_KEY = 'prefixes';\r\nvar ITEMS_KEY = 'items';\r\nfunction fromBackendResponse(service, bucket, resource) {\r\n var listResult = {\r\n prefixes: [],\r\n items: [],\r\n nextPageToken: resource['nextPageToken']\r\n };\r\n if (resource[PREFIXES_KEY]) {\r\n for (var _i = 0, _a = resource[PREFIXES_KEY]; _i < _a.length; _i++) {\r\n var path = _a[_i];\r\n var pathWithoutTrailingSlash = path.replace(/\\/$/, '');\r\n var reference = service._makeStorageReference(new Location(bucket, pathWithoutTrailingSlash));\r\n listResult.prefixes.push(reference);\r\n }\r\n }\r\n if (resource[ITEMS_KEY]) {\r\n for (var _b = 0, _c = resource[ITEMS_KEY]; _b < _c.length; _b++) {\r\n var item = _c[_b];\r\n var reference = service._makeStorageReference(new Location(bucket, item['name']));\r\n listResult.items.push(reference);\r\n }\r\n }\r\n return listResult;\r\n}\r\nfunction fromResponseString(service, bucket, resourceString) {\r\n var obj = jsonObjectOrNull(resourceString);\r\n if (obj === null) {\r\n return null;\r\n }\r\n var resource = obj;\r\n return fromBackendResponse(service, bucket, resource);\r\n}\n\nvar RequestInfo = /** @class */ (function () {\r\n function RequestInfo(url, method, \r\n /**\r\n * Returns the value with which to resolve the request's promise. Only called\r\n * if the request is successful. Throw from this function to reject the\r\n * returned Request's promise with the thrown error.\r\n * Note: The XhrIo passed to this function may be reused after this callback\r\n * returns. Do not keep a reference to it in any way.\r\n */\r\n handler, timeout) {\r\n this.url = url;\r\n this.method = method;\r\n this.handler = handler;\r\n this.timeout = timeout;\r\n this.urlParams = {};\r\n this.headers = {};\r\n this.body = null;\r\n this.errorHandler = null;\r\n /**\r\n * Called with the current number of bytes uploaded and total size (-1 if not\r\n * computable) of the request body (i.e. used to report upload progress).\r\n */\r\n this.progressCallback = null;\r\n this.successCodes = [200];\r\n this.additionalRetryCodes = [];\r\n }\r\n return RequestInfo;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws the UNKNOWN FirebaseStorageError if cndn is false.\r\n */\r\nfunction handlerCheck(cndn) {\r\n if (!cndn) {\r\n throw unknown();\r\n }\r\n}\r\nfunction metadataHandler(service, mappings) {\r\n function handler(xhr, text) {\r\n var metadata = fromResourceString(service, text, mappings);\r\n handlerCheck(metadata !== null);\r\n return metadata;\r\n }\r\n return handler;\r\n}\r\nfunction listHandler(service, bucket) {\r\n function handler(xhr, text) {\r\n var listResult = fromResponseString(service, bucket, text);\r\n handlerCheck(listResult !== null);\r\n return listResult;\r\n }\r\n return handler;\r\n}\r\nfunction downloadUrlHandler(service, mappings) {\r\n function handler(xhr, text) {\r\n var metadata = fromResourceString(service, text, mappings);\r\n handlerCheck(metadata !== null);\r\n return downloadUrlFromResourceString(metadata, text);\r\n }\r\n return handler;\r\n}\r\nfunction sharedErrorHandler(location) {\r\n function errorHandler(xhr, err) {\r\n var newErr;\r\n if (xhr.getStatus() === 401) {\r\n newErr = unauthenticated();\r\n }\r\n else {\r\n if (xhr.getStatus() === 402) {\r\n newErr = quotaExceeded(location.bucket);\r\n }\r\n else {\r\n if (xhr.getStatus() === 403) {\r\n newErr = unauthorized(location.path);\r\n }\r\n else {\r\n newErr = err;\r\n }\r\n }\r\n }\r\n newErr.serverResponse = err.serverResponse;\r\n return newErr;\r\n }\r\n return errorHandler;\r\n}\r\nfunction objectErrorHandler(location) {\r\n var shared = sharedErrorHandler(location);\r\n function errorHandler(xhr, err) {\r\n var newErr = shared(xhr, err);\r\n if (xhr.getStatus() === 404) {\r\n newErr = objectNotFound(location.path);\r\n }\r\n newErr.serverResponse = err.serverResponse;\r\n return newErr;\r\n }\r\n return errorHandler;\r\n}\r\nfunction getMetadata(service, location, mappings) {\r\n var urlPart = location.fullServerUrl();\r\n var url = makeUrl(urlPart);\r\n var method = 'GET';\r\n var timeout = service.maxOperationRetryTime;\r\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\r\n requestInfo.errorHandler = objectErrorHandler(location);\r\n return requestInfo;\r\n}\r\nfunction list(service, location, delimiter, pageToken, maxResults) {\r\n var urlParams = {};\r\n if (location.isRoot) {\r\n urlParams['prefix'] = '';\r\n }\r\n else {\r\n urlParams['prefix'] = location.path + '/';\r\n }\r\n if (delimiter && delimiter.length > 0) {\r\n urlParams['delimiter'] = delimiter;\r\n }\r\n if (pageToken) {\r\n urlParams['pageToken'] = pageToken;\r\n }\r\n if (maxResults) {\r\n urlParams['maxResults'] = maxResults;\r\n }\r\n var urlPart = location.bucketOnlyServerUrl();\r\n var url = makeUrl(urlPart);\r\n var method = 'GET';\r\n var timeout = service.maxOperationRetryTime;\r\n var requestInfo = new RequestInfo(url, method, listHandler(service, location.bucket), timeout);\r\n requestInfo.urlParams = urlParams;\r\n requestInfo.errorHandler = sharedErrorHandler(location);\r\n return requestInfo;\r\n}\r\nfunction getDownloadUrl(service, location, mappings) {\r\n var urlPart = location.fullServerUrl();\r\n var url = makeUrl(urlPart);\r\n var method = 'GET';\r\n var timeout = service.maxOperationRetryTime;\r\n var requestInfo = new RequestInfo(url, method, downloadUrlHandler(service, mappings), timeout);\r\n requestInfo.errorHandler = objectErrorHandler(location);\r\n return requestInfo;\r\n}\r\nfunction updateMetadata(service, location, metadata, mappings) {\r\n var urlPart = location.fullServerUrl();\r\n var url = makeUrl(urlPart);\r\n var method = 'PATCH';\r\n var body = toResourceString(metadata, mappings);\r\n var headers = { 'Content-Type': 'application/json; charset=utf-8' };\r\n var timeout = service.maxOperationRetryTime;\r\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\r\n requestInfo.headers = headers;\r\n requestInfo.body = body;\r\n requestInfo.errorHandler = objectErrorHandler(location);\r\n return requestInfo;\r\n}\r\nfunction deleteObject(service, location) {\r\n var urlPart = location.fullServerUrl();\r\n var url = makeUrl(urlPart);\r\n var method = 'DELETE';\r\n var timeout = service.maxOperationRetryTime;\r\n function handler(_xhr, _text) { }\r\n var requestInfo = new RequestInfo(url, method, handler, timeout);\r\n requestInfo.successCodes = [200, 204];\r\n requestInfo.errorHandler = objectErrorHandler(location);\r\n return requestInfo;\r\n}\r\nfunction determineContentType_(metadata, blob) {\r\n return ((metadata && metadata['contentType']) ||\r\n (blob && blob.type()) ||\r\n 'application/octet-stream');\r\n}\r\nfunction metadataForUpload_(location, blob, metadata) {\r\n var metadataClone = Object.assign({}, metadata);\r\n metadataClone['fullPath'] = location.path;\r\n metadataClone['size'] = blob.size();\r\n if (!metadataClone['contentType']) {\r\n metadataClone['contentType'] = determineContentType_(null, blob);\r\n }\r\n return metadataClone;\r\n}\r\n/**\r\n * Prepare RequestInfo for uploads as Content-Type: multipart.\r\n */\r\nfunction multipartUpload(service, location, mappings, blob, metadata) {\r\n var urlPart = location.bucketOnlyServerUrl();\r\n var headers = {\r\n 'X-Goog-Upload-Protocol': 'multipart'\r\n };\r\n function genBoundary() {\r\n var str = '';\r\n for (var i = 0; i < 2; i++) {\r\n str = str + Math.random().toString().slice(2);\r\n }\r\n return str;\r\n }\r\n var boundary = genBoundary();\r\n headers['Content-Type'] = 'multipart/related; boundary=' + boundary;\r\n var metadata_ = metadataForUpload_(location, blob, metadata);\r\n var metadataString = toResourceString(metadata_, mappings);\r\n var preBlobPart = '--' +\r\n boundary +\r\n '\\r\\n' +\r\n 'Content-Type: application/json; charset=utf-8\\r\\n\\r\\n' +\r\n metadataString +\r\n '\\r\\n--' +\r\n boundary +\r\n '\\r\\n' +\r\n 'Content-Type: ' +\r\n metadata_['contentType'] +\r\n '\\r\\n\\r\\n';\r\n var postBlobPart = '\\r\\n--' + boundary + '--';\r\n var body = FbsBlob.getBlob(preBlobPart, blob, postBlobPart);\r\n if (body === null) {\r\n throw cannotSliceBlob();\r\n }\r\n var urlParams = { name: metadata_['fullPath'] };\r\n var url = makeUrl(urlPart);\r\n var method = 'POST';\r\n var timeout = service.maxUploadRetryTime;\r\n var requestInfo = new RequestInfo(url, method, metadataHandler(service, mappings), timeout);\r\n requestInfo.urlParams = urlParams;\r\n requestInfo.headers = headers;\r\n requestInfo.body = body.uploadData();\r\n requestInfo.errorHandler = sharedErrorHandler(location);\r\n return requestInfo;\r\n}\r\n/**\r\n * @param current The number of bytes that have been uploaded so far.\r\n * @param total The total number of bytes in the upload.\r\n * @param opt_finalized True if the server has finished the upload.\r\n * @param opt_metadata The upload metadata, should\r\n * only be passed if opt_finalized is true.\r\n */\r\nvar ResumableUploadStatus = /** @class */ (function () {\r\n function ResumableUploadStatus(current, total, finalized, metadata) {\r\n this.current = current;\r\n this.total = total;\r\n this.finalized = !!finalized;\r\n this.metadata = metadata || null;\r\n }\r\n return ResumableUploadStatus;\r\n}());\r\nfunction checkResumeHeader_(xhr, allowed) {\r\n var status = null;\r\n try {\r\n status = xhr.getResponseHeader('X-Goog-Upload-Status');\r\n }\r\n catch (e) {\r\n handlerCheck(false);\r\n }\r\n var allowedStatus = allowed || ['active'];\r\n handlerCheck(!!status && allowedStatus.indexOf(status) !== -1);\r\n return status;\r\n}\r\nfunction createResumableUpload(service, location, mappings, blob, metadata) {\r\n var urlPart = location.bucketOnlyServerUrl();\r\n var metadataForUpload = metadataForUpload_(location, blob, metadata);\r\n var urlParams = { name: metadataForUpload['fullPath'] };\r\n var url = makeUrl(urlPart);\r\n var method = 'POST';\r\n var headers = {\r\n 'X-Goog-Upload-Protocol': 'resumable',\r\n 'X-Goog-Upload-Command': 'start',\r\n 'X-Goog-Upload-Header-Content-Length': blob.size(),\r\n 'X-Goog-Upload-Header-Content-Type': metadataForUpload['contentType'],\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n };\r\n var body = toResourceString(metadataForUpload, mappings);\r\n var timeout = service.maxUploadRetryTime;\r\n function handler(xhr) {\r\n checkResumeHeader_(xhr);\r\n var url;\r\n try {\r\n url = xhr.getResponseHeader('X-Goog-Upload-URL');\r\n }\r\n catch (e) {\r\n handlerCheck(false);\r\n }\r\n handlerCheck(isString(url));\r\n return url;\r\n }\r\n var requestInfo = new RequestInfo(url, method, handler, timeout);\r\n requestInfo.urlParams = urlParams;\r\n requestInfo.headers = headers;\r\n requestInfo.body = body;\r\n requestInfo.errorHandler = sharedErrorHandler(location);\r\n return requestInfo;\r\n}\r\n/**\r\n * @param url From a call to fbs.requests.createResumableUpload.\r\n */\r\nfunction getResumableUploadStatus(service, location, url, blob) {\r\n var headers = { 'X-Goog-Upload-Command': 'query' };\r\n function handler(xhr) {\r\n var status = checkResumeHeader_(xhr, ['active', 'final']);\r\n var sizeString = null;\r\n try {\r\n sizeString = xhr.getResponseHeader('X-Goog-Upload-Size-Received');\r\n }\r\n catch (e) {\r\n handlerCheck(false);\r\n }\r\n if (!sizeString) {\r\n // null or empty string\r\n handlerCheck(false);\r\n }\r\n var size = Number(sizeString);\r\n handlerCheck(!isNaN(size));\r\n return new ResumableUploadStatus(size, blob.size(), status === 'final');\r\n }\r\n var method = 'POST';\r\n var timeout = service.maxUploadRetryTime;\r\n var requestInfo = new RequestInfo(url, method, handler, timeout);\r\n requestInfo.headers = headers;\r\n requestInfo.errorHandler = sharedErrorHandler(location);\r\n return requestInfo;\r\n}\r\n/**\r\n * Any uploads via the resumable upload API must transfer a number of bytes\r\n * that is a multiple of this number.\r\n */\r\nvar RESUMABLE_UPLOAD_CHUNK_SIZE = 256 * 1024;\r\n/**\r\n * @param url From a call to fbs.requests.createResumableUpload.\r\n * @param chunkSize Number of bytes to upload.\r\n * @param status The previous status.\r\n * If not passed or null, we start from the beginning.\r\n * @throws fbs.Error If the upload is already complete, the passed in status\r\n * has a final size inconsistent with the blob, or the blob cannot be sliced\r\n * for upload.\r\n */\r\nfunction continueResumableUpload(location, service, url, blob, chunkSize, mappings, status, progressCallback) {\r\n // TODO(andysoto): standardize on internal asserts\r\n // assert(!(opt_status && opt_status.finalized));\r\n var status_ = new ResumableUploadStatus(0, 0);\r\n if (status) {\r\n status_.current = status.current;\r\n status_.total = status.total;\r\n }\r\n else {\r\n status_.current = 0;\r\n status_.total = blob.size();\r\n }\r\n if (blob.size() !== status_.total) {\r\n throw serverFileWrongSize();\r\n }\r\n var bytesLeft = status_.total - status_.current;\r\n var bytesToUpload = bytesLeft;\r\n if (chunkSize > 0) {\r\n bytesToUpload = Math.min(bytesToUpload, chunkSize);\r\n }\r\n var startByte = status_.current;\r\n var endByte = startByte + bytesToUpload;\r\n var uploadCommand = bytesToUpload === bytesLeft ? 'upload, finalize' : 'upload';\r\n var headers = {\r\n 'X-Goog-Upload-Command': uploadCommand,\r\n 'X-Goog-Upload-Offset': status_.current\r\n };\r\n var body = blob.slice(startByte, endByte);\r\n if (body === null) {\r\n throw cannotSliceBlob();\r\n }\r\n function handler(xhr, text) {\r\n // TODO(andysoto): Verify the MD5 of each uploaded range:\r\n // the 'x-range-md5' header comes back with status code 308 responses.\r\n // We'll only be able to bail out though, because you can't re-upload a\r\n // range that you previously uploaded.\r\n var uploadStatus = checkResumeHeader_(xhr, ['active', 'final']);\r\n var newCurrent = status_.current + bytesToUpload;\r\n var size = blob.size();\r\n var metadata;\r\n if (uploadStatus === 'final') {\r\n metadata = metadataHandler(service, mappings)(xhr, text);\r\n }\r\n else {\r\n metadata = null;\r\n }\r\n return new ResumableUploadStatus(newCurrent, size, uploadStatus === 'final', metadata);\r\n }\r\n var method = 'POST';\r\n var timeout = service.maxUploadRetryTime;\r\n var requestInfo = new RequestInfo(url, method, handler, timeout);\r\n requestInfo.headers = headers;\r\n requestInfo.body = body.uploadData();\r\n requestInfo.progressCallback = progressCallback || null;\r\n requestInfo.errorHandler = sharedErrorHandler(location);\r\n return requestInfo;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n function Observer(nextOrObserver, error, complete) {\r\n var asFunctions = isFunction(nextOrObserver) || error != null || complete != null;\r\n if (asFunctions) {\r\n this.next = nextOrObserver;\r\n this.error = error;\r\n this.complete = complete;\r\n }\r\n else {\r\n var observer = nextOrObserver;\r\n this.next = observer.next;\r\n this.error = observer.error;\r\n this.complete = observer.complete;\r\n }\r\n }\r\n return Observer;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a function that invokes f with its arguments asynchronously as a\r\n * microtask, i.e. as soon as possible after the current script returns back\r\n * into browser code.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(f) {\r\n return function () {\r\n var argsToForward = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n argsToForward[_i] = arguments[_i];\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n Promise.resolve().then(function () { return f.apply(void 0, argsToForward); });\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Represents a blob being uploaded. Can be used to pause/resume/cancel the\r\n * upload and manage callbacks for various events.\r\n * @internal\r\n */\r\nvar UploadTask = /** @class */ (function () {\r\n /**\r\n * @param ref - The firebaseStorage.Reference object this task came\r\n * from, untyped to avoid cyclic dependencies.\r\n * @param blob - The blob to upload.\r\n */\r\n function UploadTask(ref, blob, metadata) {\r\n var _this = this;\r\n if (metadata === void 0) { metadata = null; }\r\n /**\r\n * Number of bytes transferred so far.\r\n */\r\n this._transferred = 0;\r\n this._needToFetchStatus = false;\r\n this._needToFetchMetadata = false;\r\n this._observers = [];\r\n this._error = undefined;\r\n this._uploadUrl = undefined;\r\n this._request = undefined;\r\n this._chunkMultiplier = 1;\r\n this._resolve = undefined;\r\n this._reject = undefined;\r\n this._ref = ref;\r\n this._blob = blob;\r\n this._metadata = metadata;\r\n this._mappings = getMappings();\r\n this._resumable = this._shouldDoResumable(this._blob);\r\n this._state = \"running\" /* RUNNING */;\r\n this._errorHandler = function (error) {\r\n _this._request = undefined;\r\n _this._chunkMultiplier = 1;\r\n if (error._codeEquals(\"canceled\" /* CANCELED */)) {\r\n _this._needToFetchStatus = true;\r\n _this.completeTransitions_();\r\n }\r\n else {\r\n _this._error = error;\r\n _this._transition(\"error\" /* ERROR */);\r\n }\r\n };\r\n this._metadataErrorHandler = function (error) {\r\n _this._request = undefined;\r\n if (error._codeEquals(\"canceled\" /* CANCELED */)) {\r\n _this.completeTransitions_();\r\n }\r\n else {\r\n _this._error = error;\r\n _this._transition(\"error\" /* ERROR */);\r\n }\r\n };\r\n this._promise = new Promise(function (resolve, reject) {\r\n _this._resolve = resolve;\r\n _this._reject = reject;\r\n _this._start();\r\n });\r\n // Prevent uncaught rejections on the internal promise from bubbling out\r\n // to the top level with a dummy handler.\r\n this._promise.then(null, function () { });\r\n }\r\n UploadTask.prototype._makeProgressCallback = function () {\r\n var _this = this;\r\n var sizeBefore = this._transferred;\r\n return function (loaded) { return _this._updateProgress(sizeBefore + loaded); };\r\n };\r\n UploadTask.prototype._shouldDoResumable = function (blob) {\r\n return blob.size() > 256 * 1024;\r\n };\r\n UploadTask.prototype._start = function () {\r\n if (this._state !== \"running\" /* RUNNING */) {\r\n // This can happen if someone pauses us in a resume callback, for example.\r\n return;\r\n }\r\n if (this._request !== undefined) {\r\n return;\r\n }\r\n if (this._resumable) {\r\n if (this._uploadUrl === undefined) {\r\n this._createResumable();\r\n }\r\n else {\r\n if (this._needToFetchStatus) {\r\n this._fetchStatus();\r\n }\r\n else {\r\n if (this._needToFetchMetadata) {\r\n // Happens if we miss the metadata on upload completion.\r\n this._fetchMetadata();\r\n }\r\n else {\r\n this._continueUpload();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this._oneShotUpload();\r\n }\r\n };\r\n UploadTask.prototype._resolveToken = function (callback) {\r\n var _this = this;\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._ref.storage._getAuthToken().then(function (authToken) {\r\n switch (_this._state) {\r\n case \"running\" /* RUNNING */:\r\n callback(authToken);\r\n break;\r\n case \"canceling\" /* CANCELING */:\r\n _this._transition(\"canceled\" /* CANCELED */);\r\n break;\r\n case \"pausing\" /* PAUSING */:\r\n _this._transition(\"paused\" /* PAUSED */);\r\n break;\r\n }\r\n });\r\n };\r\n // TODO(andysoto): assert false\r\n UploadTask.prototype._createResumable = function () {\r\n var _this = this;\r\n this._resolveToken(function (authToken) {\r\n var requestInfo = createResumableUpload(_this._ref.storage, _this._ref._location, _this._mappings, _this._blob, _this._metadata);\r\n var createRequest = _this._ref.storage._makeRequest(requestInfo, authToken);\r\n _this._request = createRequest;\r\n createRequest.getPromise().then(function (url) {\r\n _this._request = undefined;\r\n _this._uploadUrl = url;\r\n _this._needToFetchStatus = false;\r\n _this.completeTransitions_();\r\n }, _this._errorHandler);\r\n });\r\n };\r\n UploadTask.prototype._fetchStatus = function () {\r\n var _this = this;\r\n // TODO(andysoto): assert(this.uploadUrl_ !== null);\r\n var url = this._uploadUrl;\r\n this._resolveToken(function (authToken) {\r\n var requestInfo = getResumableUploadStatus(_this._ref.storage, _this._ref._location, url, _this._blob);\r\n var statusRequest = _this._ref.storage._makeRequest(requestInfo, authToken);\r\n _this._request = statusRequest;\r\n statusRequest.getPromise().then(function (status) {\r\n status = status;\r\n _this._request = undefined;\r\n _this._updateProgress(status.current);\r\n _this._needToFetchStatus = false;\r\n if (status.finalized) {\r\n _this._needToFetchMetadata = true;\r\n }\r\n _this.completeTransitions_();\r\n }, _this._errorHandler);\r\n });\r\n };\r\n UploadTask.prototype._continueUpload = function () {\r\n var _this = this;\r\n var chunkSize = RESUMABLE_UPLOAD_CHUNK_SIZE * this._chunkMultiplier;\r\n var status = new ResumableUploadStatus(this._transferred, this._blob.size());\r\n // TODO(andysoto): assert(this.uploadUrl_ !== null);\r\n var url = this._uploadUrl;\r\n this._resolveToken(function (authToken) {\r\n var requestInfo;\r\n try {\r\n requestInfo = continueResumableUpload(_this._ref._location, _this._ref.storage, url, _this._blob, chunkSize, _this._mappings, status, _this._makeProgressCallback());\r\n }\r\n catch (e) {\r\n _this._error = e;\r\n _this._transition(\"error\" /* ERROR */);\r\n return;\r\n }\r\n var uploadRequest = _this._ref.storage._makeRequest(requestInfo, authToken);\r\n _this._request = uploadRequest;\r\n uploadRequest.getPromise().then(function (newStatus) {\r\n _this._increaseMultiplier();\r\n _this._request = undefined;\r\n _this._updateProgress(newStatus.current);\r\n if (newStatus.finalized) {\r\n _this._metadata = newStatus.metadata;\r\n _this._transition(\"success\" /* SUCCESS */);\r\n }\r\n else {\r\n _this.completeTransitions_();\r\n }\r\n }, _this._errorHandler);\r\n });\r\n };\r\n UploadTask.prototype._increaseMultiplier = function () {\r\n var currentSize = RESUMABLE_UPLOAD_CHUNK_SIZE * this._chunkMultiplier;\r\n // Max chunk size is 32M.\r\n if (currentSize < 32 * 1024 * 1024) {\r\n this._chunkMultiplier *= 2;\r\n }\r\n };\r\n UploadTask.prototype._fetchMetadata = function () {\r\n var _this = this;\r\n this._resolveToken(function (authToken) {\r\n var requestInfo = getMetadata(_this._ref.storage, _this._ref._location, _this._mappings);\r\n var metadataRequest = _this._ref.storage._makeRequest(requestInfo, authToken);\r\n _this._request = metadataRequest;\r\n metadataRequest.getPromise().then(function (metadata) {\r\n _this._request = undefined;\r\n _this._metadata = metadata;\r\n _this._transition(\"success\" /* SUCCESS */);\r\n }, _this._metadataErrorHandler);\r\n });\r\n };\r\n UploadTask.prototype._oneShotUpload = function () {\r\n var _this = this;\r\n this._resolveToken(function (authToken) {\r\n var requestInfo = multipartUpload(_this._ref.storage, _this._ref._location, _this._mappings, _this._blob, _this._metadata);\r\n var multipartRequest = _this._ref.storage._makeRequest(requestInfo, authToken);\r\n _this._request = multipartRequest;\r\n multipartRequest.getPromise().then(function (metadata) {\r\n _this._request = undefined;\r\n _this._metadata = metadata;\r\n _this._updateProgress(_this._blob.size());\r\n _this._transition(\"success\" /* SUCCESS */);\r\n }, _this._errorHandler);\r\n });\r\n };\r\n UploadTask.prototype._updateProgress = function (transferred) {\r\n var old = this._transferred;\r\n this._transferred = transferred;\r\n // A progress update can make the \"transferred\" value smaller (e.g. a\r\n // partial upload not completed by server, after which the \"transferred\"\r\n // value may reset to the value at the beginning of the request).\r\n if (this._transferred !== old) {\r\n this._notifyObservers();\r\n }\r\n };\r\n UploadTask.prototype._transition = function (state) {\r\n if (this._state === state) {\r\n return;\r\n }\r\n switch (state) {\r\n case \"canceling\" /* CANCELING */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.RUNNING ||\r\n // this.state_ === InternalTaskState.PAUSING);\r\n this._state = state;\r\n if (this._request !== undefined) {\r\n this._request.cancel();\r\n }\r\n break;\r\n case \"pausing\" /* PAUSING */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.RUNNING);\r\n this._state = state;\r\n if (this._request !== undefined) {\r\n this._request.cancel();\r\n }\r\n break;\r\n case \"running\" /* RUNNING */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.PAUSED ||\r\n // this.state_ === InternalTaskState.PAUSING);\r\n var wasPaused = this._state === \"paused\" /* PAUSED */;\r\n this._state = state;\r\n if (wasPaused) {\r\n this._notifyObservers();\r\n this._start();\r\n }\r\n break;\r\n case \"paused\" /* PAUSED */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.PAUSING);\r\n this._state = state;\r\n this._notifyObservers();\r\n break;\r\n case \"canceled\" /* CANCELED */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.PAUSED ||\r\n // this.state_ === InternalTaskState.CANCELING);\r\n this._error = canceled();\r\n this._state = state;\r\n this._notifyObservers();\r\n break;\r\n case \"error\" /* ERROR */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.RUNNING ||\r\n // this.state_ === InternalTaskState.PAUSING ||\r\n // this.state_ === InternalTaskState.CANCELING);\r\n this._state = state;\r\n this._notifyObservers();\r\n break;\r\n case \"success\" /* SUCCESS */:\r\n // TODO(andysoto):\r\n // assert(this.state_ === InternalTaskState.RUNNING ||\r\n // this.state_ === InternalTaskState.PAUSING ||\r\n // this.state_ === InternalTaskState.CANCELING);\r\n this._state = state;\r\n this._notifyObservers();\r\n break;\r\n }\r\n };\r\n UploadTask.prototype.completeTransitions_ = function () {\r\n switch (this._state) {\r\n case \"pausing\" /* PAUSING */:\r\n this._transition(\"paused\" /* PAUSED */);\r\n break;\r\n case \"canceling\" /* CANCELING */:\r\n this._transition(\"canceled\" /* CANCELED */);\r\n break;\r\n case \"running\" /* RUNNING */:\r\n this._start();\r\n break;\r\n }\r\n };\r\n Object.defineProperty(UploadTask.prototype, \"snapshot\", {\r\n /**\r\n * A snapshot of the current task state.\r\n */\r\n get: function () {\r\n var externalState = taskStateFromInternalTaskState(this._state);\r\n return {\r\n bytesTransferred: this._transferred,\r\n totalBytes: this._blob.size(),\r\n state: externalState,\r\n metadata: this._metadata,\r\n task: this,\r\n ref: this._ref\r\n };\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Adds a callback for an event.\r\n * @param type - The type of event to listen for.\r\n * @param nextOrObserver -\r\n * The `next` function, which gets called for each item in\r\n * the event stream, or an observer object with some or all of these three\r\n * properties (`next`, `error`, `complete`).\r\n * @param error - A function that gets called with a `FirebaseStorageError`\r\n * if the event stream ends due to an error.\r\n * @param completed - A function that gets called if the\r\n * event stream ends normally.\r\n * @returns\r\n * If only the event argument is passed, returns a function you can use to\r\n * add callbacks (see the examples above). If more than just the event\r\n * argument is passed, returns a function you can call to unregister the\r\n * callbacks.\r\n */\r\n UploadTask.prototype.on = function (type, nextOrObserver, error, completed) {\r\n var _this = this;\r\n var observer = new Observer(nextOrObserver, error, completed);\r\n this._addObserver(observer);\r\n return function () {\r\n _this._removeObserver(observer);\r\n };\r\n };\r\n /**\r\n * This object behaves like a Promise, and resolves with its snapshot data\r\n * when the upload completes.\r\n * @param onFulfilled - The fulfillment callback. Promise chaining works as normal.\r\n * @param onRejected - The rejection callback.\r\n */\r\n UploadTask.prototype.then = function (onFulfilled, onRejected) {\r\n // These casts are needed so that TypeScript can infer the types of the\r\n // resulting Promise.\r\n return this._promise.then(onFulfilled, onRejected);\r\n };\r\n /**\r\n * Equivalent to calling `then(null, onRejected)`.\r\n */\r\n UploadTask.prototype.catch = function (onRejected) {\r\n return this.then(null, onRejected);\r\n };\r\n /**\r\n * Adds the given observer.\r\n */\r\n UploadTask.prototype._addObserver = function (observer) {\r\n this._observers.push(observer);\r\n this._notifyObserver(observer);\r\n };\r\n /**\r\n * Removes the given observer.\r\n */\r\n UploadTask.prototype._removeObserver = function (observer) {\r\n var i = this._observers.indexOf(observer);\r\n if (i !== -1) {\r\n this._observers.splice(i, 1);\r\n }\r\n };\r\n UploadTask.prototype._notifyObservers = function () {\r\n var _this = this;\r\n this._finishPromise();\r\n var observers = this._observers.slice();\r\n observers.forEach(function (observer) {\r\n _this._notifyObserver(observer);\r\n });\r\n };\r\n UploadTask.prototype._finishPromise = function () {\r\n if (this._resolve !== undefined) {\r\n var triggered = true;\r\n switch (taskStateFromInternalTaskState(this._state)) {\r\n case TaskState.SUCCESS:\r\n async(this._resolve.bind(null, this.snapshot))();\r\n break;\r\n case TaskState.CANCELED:\r\n case TaskState.ERROR:\r\n var toCall = this._reject;\r\n async(toCall.bind(null, this._error))();\r\n break;\r\n default:\r\n triggered = false;\r\n break;\r\n }\r\n if (triggered) {\r\n this._resolve = undefined;\r\n this._reject = undefined;\r\n }\r\n }\r\n };\r\n UploadTask.prototype._notifyObserver = function (observer) {\r\n var externalState = taskStateFromInternalTaskState(this._state);\r\n switch (externalState) {\r\n case TaskState.RUNNING:\r\n case TaskState.PAUSED:\r\n if (observer.next) {\r\n async(observer.next.bind(observer, this.snapshot))();\r\n }\r\n break;\r\n case TaskState.SUCCESS:\r\n if (observer.complete) {\r\n async(observer.complete.bind(observer))();\r\n }\r\n break;\r\n case TaskState.CANCELED:\r\n case TaskState.ERROR:\r\n if (observer.error) {\r\n async(observer.error.bind(observer, this._error))();\r\n }\r\n break;\r\n default:\r\n // TODO(andysoto): assert(false);\r\n if (observer.error) {\r\n async(observer.error.bind(observer, this._error))();\r\n }\r\n }\r\n };\r\n /**\r\n * Resumes a paused task. Has no effect on a currently running or failed task.\r\n * @returns True if the operation took effect, false if ignored.\r\n */\r\n UploadTask.prototype.resume = function () {\r\n var valid = this._state === \"paused\" /* PAUSED */ ||\r\n this._state === \"pausing\" /* PAUSING */;\r\n if (valid) {\r\n this._transition(\"running\" /* RUNNING */);\r\n }\r\n return valid;\r\n };\r\n /**\r\n * Pauses a currently running task. Has no effect on a paused or failed task.\r\n * @returns True if the operation took effect, false if ignored.\r\n */\r\n UploadTask.prototype.pause = function () {\r\n var valid = this._state === \"running\" /* RUNNING */;\r\n if (valid) {\r\n this._transition(\"pausing\" /* PAUSING */);\r\n }\r\n return valid;\r\n };\r\n /**\r\n * Cancels a currently running or paused task. Has no effect on a complete or\r\n * failed task.\r\n * @returns True if the operation took effect, false if ignored.\r\n */\r\n UploadTask.prototype.cancel = function () {\r\n var valid = this._state === \"running\" /* RUNNING */ ||\r\n this._state === \"pausing\" /* PAUSING */;\r\n if (valid) {\r\n this._transition(\"canceling\" /* CANCELING */);\r\n }\r\n return valid;\r\n };\r\n return UploadTask;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provides methods to interact with a bucket in the Firebase Storage service.\r\n * @internal\r\n * @param _location - An fbs.location, or the URL at\r\n * which to base this object, in one of the following forms:\r\n * gs:///\r\n * http[s]://firebasestorage.googleapis.com/\r\n * /b//o/\r\n * Any query or fragment strings will be ignored in the http[s]\r\n * format. If no value is passed, the storage object will use a URL based on\r\n * the project ID of the base firebase.App instance.\r\n */\r\nvar Reference = /** @class */ (function () {\r\n function Reference(_service, location) {\r\n this._service = _service;\r\n if (location instanceof Location) {\r\n this._location = location;\r\n }\r\n else {\r\n this._location = Location.makeFromUrl(location);\r\n }\r\n }\r\n /**\r\n * Returns the URL for the bucket and path this object references,\r\n * in the form gs:///\r\n * @override\r\n */\r\n Reference.prototype.toString = function () {\r\n return 'gs://' + this._location.bucket + '/' + this._location.path;\r\n };\r\n Reference.prototype._newRef = function (service, location) {\r\n return new Reference(service, location);\r\n };\r\n Object.defineProperty(Reference.prototype, \"root\", {\r\n /**\r\n * A reference to the root of this object's bucket.\r\n */\r\n get: function () {\r\n var location = new Location(this._location.bucket, '');\r\n return this._newRef(this._service, location);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"bucket\", {\r\n /**\r\n * The name of the bucket containing this reference's object.\r\n */\r\n get: function () {\r\n return this._location.bucket;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"fullPath\", {\r\n /**\r\n * The full path of this object.\r\n */\r\n get: function () {\r\n return this._location.path;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"name\", {\r\n /**\r\n * The short name of this object, which is the last component of the full path.\r\n * For example, if fullPath is 'full/path/image.png', name is 'image.png'.\r\n */\r\n get: function () {\r\n return lastComponent(this._location.path);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"storage\", {\r\n /**\r\n * The `StorageService` instance this `StorageReference` is associated with.\r\n */\r\n get: function () {\r\n return this._service;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"parent\", {\r\n /**\r\n * A `StorageReference` pointing to the parent location of this `StorageReference`, or null if\r\n * this reference is the root.\r\n */\r\n get: function () {\r\n var newPath = parent(this._location.path);\r\n if (newPath === null) {\r\n return null;\r\n }\r\n var location = new Location(this._location.bucket, newPath);\r\n return new Reference(this._service, location);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Utility function to throw an error in methods that do not accept a root reference.\r\n */\r\n Reference.prototype._throwIfRoot = function (name) {\r\n if (this._location.path === '') {\r\n throw invalidRootOperation(name);\r\n }\r\n };\r\n return Reference;\r\n}());\r\n/**\r\n * Uploads data to this object's location.\r\n * The upload can be paused and resumed, and exposes progress updates.\r\n * @public\r\n * @param ref - StorageReference where data should be uploaded.\r\n * @param data - The data to upload.\r\n * @param metadata - Metadata for the newly uploaded data.\r\n * @returns An UploadTask\r\n */\r\nfunction uploadBytesResumable(ref, data, metadata) {\r\n ref._throwIfRoot('uploadBytesResumable');\r\n return new UploadTask(ref, new FbsBlob(data), metadata);\r\n}\r\n/**\r\n * List all items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * This is a helper method for calling list() repeatedly until there are\r\n * no more results. The default pagination size is 1000.\r\n *\r\n * Note: The results may not be consistent if objects are changed while this\r\n * operation is running.\r\n *\r\n * Warning: listAll may potentially consume too many resources if there are\r\n * too many results.\r\n * @public\r\n * @param ref - StorageReference to get list from.\r\n *\r\n * @returns A Promise that resolves with all the items and prefixes under\r\n * the current storage reference. `prefixes` contains references to\r\n * sub-directories and `items` contains references to objects in this\r\n * folder. `nextPageToken` is never returned.\r\n */\r\nfunction listAll(ref) {\r\n var accumulator = {\r\n prefixes: [],\r\n items: []\r\n };\r\n return listAllHelper(ref, accumulator).then(function () { return accumulator; });\r\n}\r\n/**\r\n * Separated from listAll because async functions can't use \"arguments\".\r\n * @param ref\r\n * @param accumulator\r\n * @param pageToken\r\n */\r\nfunction listAllHelper(ref, accumulator, pageToken) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var opt, nextPage;\r\n var _a, _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n opt = {\r\n // maxResults is 1000 by default.\r\n pageToken: pageToken\r\n };\r\n return [4 /*yield*/, list$1(ref, opt)];\r\n case 1:\r\n nextPage = _c.sent();\r\n (_a = accumulator.prefixes).push.apply(_a, nextPage.prefixes);\r\n (_b = accumulator.items).push.apply(_b, nextPage.items);\r\n if (!(nextPage.nextPageToken != null)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, listAllHelper(ref, accumulator, nextPage.nextPageToken)];\r\n case 2:\r\n _c.sent();\r\n _c.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * List items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * List API is only available for Firebase Rules Version 2.\r\n *\r\n * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'\r\n * delimited folder structure.\r\n * Refer to GCS's List API if you want to learn more.\r\n *\r\n * To adhere to Firebase Rules's Semantics, Firebase Storage does not\r\n * support objects whose paths end with \"/\" or contain two consecutive\r\n * \"/\"s. Firebase Storage List API will filter these unsupported objects.\r\n * list() may fail if there are too many unsupported objects in the bucket.\r\n * @public\r\n *\r\n * @param ref - StorageReference to get list from.\r\n * @param options - See ListOptions for details.\r\n * @returns A Promise that resolves with the items and prefixes.\r\n * `prefixes` contains references to sub-folders and `items`\r\n * contains references to objects in this folder. `nextPageToken`\r\n * can be used to get the rest of the results.\r\n */\r\nfunction list$1(ref, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authToken, op, requestInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (options != null) {\r\n if (typeof options.maxResults === 'number') {\r\n validateNumber('options.maxResults', \r\n /* minValue= */ 1, \r\n /* maxValue= */ 1000, options.maxResults);\r\n }\r\n }\r\n return [4 /*yield*/, ref.storage._getAuthToken()];\r\n case 1:\r\n authToken = _a.sent();\r\n op = options || {};\r\n requestInfo = list(ref.storage, ref._location, \r\n /*delimiter= */ '/', op.pageToken, op.maxResults);\r\n return [2 /*return*/, ref.storage._makeRequest(requestInfo, authToken).getPromise()];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * A promise that resolves with the metadata for this object. If this\r\n * object doesn't exist or metadata cannot be retreived, the promise is\r\n * rejected.\r\n * @public\r\n * @param ref - StorageReference to get metadata from.\r\n */\r\nfunction getMetadata$1(ref) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authToken, requestInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ref._throwIfRoot('getMetadata');\r\n return [4 /*yield*/, ref.storage._getAuthToken()];\r\n case 1:\r\n authToken = _a.sent();\r\n requestInfo = getMetadata(ref.storage, ref._location, getMappings());\r\n return [2 /*return*/, ref.storage._makeRequest(requestInfo, authToken).getPromise()];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Updates the metadata for this object.\r\n * @public\r\n * @param ref - StorageReference to update metadata for.\r\n * @param metadata - The new metadata for the object.\r\n * Only values that have been explicitly set will be changed. Explicitly\r\n * setting a value to null will remove the metadata.\r\n * @returns A promise that resolves\r\n * with the new metadata for this object.\r\n * See `firebaseStorage.Reference.prototype.getMetadata`\r\n */\r\nfunction updateMetadata$1(ref, metadata) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authToken, requestInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ref._throwIfRoot('updateMetadata');\r\n return [4 /*yield*/, ref.storage._getAuthToken()];\r\n case 1:\r\n authToken = _a.sent();\r\n requestInfo = updateMetadata(ref.storage, ref._location, metadata, getMappings());\r\n return [2 /*return*/, ref.storage._makeRequest(requestInfo, authToken).getPromise()];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Returns the download URL for the given Reference.\r\n * @public\r\n * @returns A promise that resolves with the download\r\n * URL for this object.\r\n */\r\nfunction getDownloadURL(ref) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authToken, requestInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ref._throwIfRoot('getDownloadURL');\r\n return [4 /*yield*/, ref.storage._getAuthToken()];\r\n case 1:\r\n authToken = _a.sent();\r\n requestInfo = getDownloadUrl(ref.storage, ref._location, getMappings());\r\n return [2 /*return*/, ref.storage\r\n ._makeRequest(requestInfo, authToken)\r\n .getPromise()\r\n .then(function (url) {\r\n if (url === null) {\r\n throw noDownloadURL();\r\n }\r\n return url;\r\n })];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Deletes the object at this location.\r\n * @public\r\n * @param ref - StorageReference for object to delete.\r\n * @returns A promise that resolves if the deletion succeeds.\r\n */\r\nfunction deleteObject$1(ref) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authToken, requestInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ref._throwIfRoot('deleteObject');\r\n return [4 /*yield*/, ref.storage._getAuthToken()];\r\n case 1:\r\n authToken = _a.sent();\r\n requestInfo = deleteObject(ref.storage, ref._location);\r\n return [2 /*return*/, ref.storage._makeRequest(requestInfo, authToken).getPromise()];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Returns reference for object obtained by appending `childPath` to `ref`.\r\n *\r\n * @param ref - StorageReference to get child of.\r\n * @param childPath - Child path from provided ref.\r\n * @returns A reference to the object obtained by\r\n * appending childPath, removing any duplicate, beginning, or trailing\r\n * slashes.\r\n *\r\n */\r\nfunction _getChild(ref, childPath) {\r\n var newPath = child(ref._location.path, childPath);\r\n var location = new Location(ref._location.bucket, newPath);\r\n return new Reference(ref.storage, location);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isUrl(path) {\r\n return /^[A-Za-z]+:\\/\\//.test(path);\r\n}\r\n/**\r\n * Returns a firebaseStorage.Reference for the given url.\r\n */\r\nfunction refFromURL(service, url) {\r\n return new Reference(service, url);\r\n}\r\n/**\r\n * Returns a firebaseStorage.Reference for the given path in the default\r\n * bucket.\r\n */\r\nfunction refFromPath(ref, path) {\r\n if (ref instanceof StorageService) {\r\n var service = ref;\r\n if (service._bucket == null) {\r\n throw noDefaultBucket();\r\n }\r\n var reference = new Reference(service, service._bucket);\r\n if (path != null) {\r\n return refFromPath(reference, path);\r\n }\r\n else {\r\n return reference;\r\n }\r\n }\r\n else {\r\n // ref is a Reference\r\n if (path !== undefined) {\r\n if (path.includes('..')) {\r\n throw invalidArgument('`path` param cannot contain \"..\"');\r\n }\r\n return _getChild(ref, path);\r\n }\r\n else {\r\n return ref;\r\n }\r\n }\r\n}\r\nfunction ref(serviceOrRef, pathOrUrl) {\r\n if (pathOrUrl && isUrl(pathOrUrl)) {\r\n if (serviceOrRef instanceof StorageService) {\r\n return refFromURL(serviceOrRef, pathOrUrl);\r\n }\r\n else {\r\n throw invalidArgument('To use ref(service, url), the first argument must be a Storage instance.');\r\n }\r\n }\r\n else {\r\n return refFromPath(serviceOrRef, pathOrUrl);\r\n }\r\n}\r\nfunction extractBucket(config) {\r\n var bucketString = config === null || config === void 0 ? void 0 : config[CONFIG_STORAGE_BUCKET_KEY];\r\n if (bucketString == null) {\r\n return null;\r\n }\r\n return Location.makeFromBucketSpec(bucketString);\r\n}\r\n/**\r\n * A service that provides Firebase Storage Reference instances.\r\n * @public\r\n * @param opt_url - gs:// url to a custom Storage Bucket\r\n */\r\nvar StorageService = /** @class */ (function () {\r\n function StorageService(\r\n /**\r\n * FirebaseApp associated with this StorageService instance.\r\n */\r\n app, _authProvider, _pool, _url, _firebaseVersion) {\r\n this.app = app;\r\n this._authProvider = _authProvider;\r\n this._pool = _pool;\r\n this._url = _url;\r\n this._firebaseVersion = _firebaseVersion;\r\n this._bucket = null;\r\n this._appId = null;\r\n this._deleted = false;\r\n this._maxOperationRetryTime = DEFAULT_MAX_OPERATION_RETRY_TIME;\r\n this._maxUploadRetryTime = DEFAULT_MAX_UPLOAD_RETRY_TIME;\r\n this._requests = new Set();\r\n if (_url != null) {\r\n this._bucket = Location.makeFromBucketSpec(_url);\r\n }\r\n else {\r\n this._bucket = extractBucket(this.app.options);\r\n }\r\n }\r\n Object.defineProperty(StorageService.prototype, \"maxUploadRetryTime\", {\r\n /**\r\n * The maximum time to retry uploads in milliseconds.\r\n */\r\n get: function () {\r\n return this._maxUploadRetryTime;\r\n },\r\n set: function (time) {\r\n validateNumber('time', \r\n /* minValue=*/ 0, \r\n /* maxValue= */ Number.POSITIVE_INFINITY, time);\r\n this._maxUploadRetryTime = time;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StorageService.prototype, \"maxOperationRetryTime\", {\r\n /**\r\n * The maximum time to retry operations other than uploads or downloads in\r\n * milliseconds.\r\n */\r\n get: function () {\r\n return this._maxOperationRetryTime;\r\n },\r\n set: function (time) {\r\n validateNumber('time', \r\n /* minValue=*/ 0, \r\n /* maxValue= */ Number.POSITIVE_INFINITY, time);\r\n this._maxOperationRetryTime = time;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StorageService.prototype._getAuthToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var auth, tokenData;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n auth = this._authProvider.getImmediate({ optional: true });\r\n if (!auth) return [3 /*break*/, 2];\r\n return [4 /*yield*/, auth.getToken()];\r\n case 1:\r\n tokenData = _a.sent();\r\n if (tokenData !== null) {\r\n return [2 /*return*/, tokenData.accessToken];\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Stop running requests and prevent more from being created.\r\n */\r\n StorageService.prototype._delete = function () {\r\n this._deleted = true;\r\n this._requests.forEach(function (request) { return request.cancel(); });\r\n this._requests.clear();\r\n return Promise.resolve();\r\n };\r\n /**\r\n * Returns a new firebaseStorage.Reference object referencing this StorageService\r\n * at the given Location.\r\n */\r\n StorageService.prototype._makeStorageReference = function (loc) {\r\n return new Reference(this, loc);\r\n };\r\n /**\r\n * @param requestInfo - HTTP RequestInfo object\r\n * @param authToken - Firebase auth token\r\n */\r\n StorageService.prototype._makeRequest = function (requestInfo, authToken) {\r\n var _this = this;\r\n if (!this._deleted) {\r\n var request_1 = makeRequest(requestInfo, this._appId, authToken, this._pool, this._firebaseVersion);\r\n this._requests.add(request_1);\r\n // Request removes itself from set when complete.\r\n request_1.getPromise().then(function () { return _this._requests.delete(request_1); }, function () { return _this._requests.delete(request_1); });\r\n return request_1;\r\n }\r\n else {\r\n return new FailRequest(appDeleted());\r\n }\r\n };\r\n return StorageService;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Uploads data to this object's location.\r\n * The upload can be paused and resumed, and exposes progress updates.\r\n * @public\r\n * @param ref - StorageReference where data should be uploaded.\r\n * @param data - The data to upload.\r\n * @param metadata - Metadata for the data to upload.\r\n * @returns An UploadTask\r\n */\r\nfunction uploadBytesResumable$1(ref, data, metadata) {\r\n ref = getModularInstance(ref);\r\n return uploadBytesResumable(ref, data, metadata);\r\n}\r\n/**\r\n * A promise that resolves with the metadata for this object. If this\r\n * object doesn't exist or metadata cannot be retreived, the promise is\r\n * rejected.\r\n * @public\r\n * @param ref - StorageReference to get metadata from.\r\n */\r\nfunction getMetadata$2(ref) {\r\n ref = getModularInstance(ref);\r\n return getMetadata$1(ref);\r\n}\r\n/**\r\n * Updates the metadata for this object.\r\n * @public\r\n * @param ref - StorageReference to update metadata for.\r\n * @param metadata - The new metadata for the object.\r\n * Only values that have been explicitly set will be changed. Explicitly\r\n * setting a value to null will remove the metadata.\r\n * @returns A promise that resolves with the new metadata for this object.\r\n */\r\nfunction updateMetadata$2(ref, metadata) {\r\n ref = getModularInstance(ref);\r\n return updateMetadata$1(ref, metadata);\r\n}\r\n/**\r\n * List items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * List API is only available for Firebase Rules Version 2.\r\n *\r\n * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'\r\n * delimited folder structure.\r\n * Refer to GCS's List API if you want to learn more.\r\n *\r\n * To adhere to Firebase Rules's Semantics, Firebase Storage does not\r\n * support objects whose paths end with \"/\" or contain two consecutive\r\n * \"/\"s. Firebase Storage List API will filter these unsupported objects.\r\n * list() may fail if there are too many unsupported objects in the bucket.\r\n * @public\r\n *\r\n * @param ref - StorageReference to get list from.\r\n * @param options - See ListOptions for details.\r\n * @returns A Promise that resolves with the items and prefixes.\r\n * `prefixes` contains references to sub-folders and `items`\r\n * contains references to objects in this folder. `nextPageToken`\r\n * can be used to get the rest of the results.\r\n */\r\nfunction list$2(ref, options) {\r\n ref = getModularInstance(ref);\r\n return list$1(ref, options);\r\n}\r\n/**\r\n * List all items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * This is a helper method for calling list() repeatedly until there are\r\n * no more results. The default pagination size is 1000.\r\n *\r\n * Note: The results may not be consistent if objects are changed while this\r\n * operation is running.\r\n *\r\n * Warning: listAll may potentially consume too many resources if there are\r\n * too many results.\r\n * @public\r\n * @param ref - StorageReference to get list from.\r\n *\r\n * @returns A Promise that resolves with all the items and prefixes under\r\n * the current storage reference. `prefixes` contains references to\r\n * sub-directories and `items` contains references to objects in this\r\n * folder. `nextPageToken` is never returned.\r\n */\r\nfunction listAll$1(ref) {\r\n ref = getModularInstance(ref);\r\n return listAll(ref);\r\n}\r\n/**\r\n * Returns the download URL for the given Reference.\r\n * @public\r\n * @returns A promise that resolves with the download\r\n * URL for this object.\r\n */\r\nfunction getDownloadURL$1(ref) {\r\n ref = getModularInstance(ref);\r\n return getDownloadURL(ref);\r\n}\r\n/**\r\n * Deletes the object at this location.\r\n * @public\r\n * @param ref - StorageReference for object to delete.\r\n * @returns A promise that resolves if the deletion succeeds.\r\n */\r\nfunction deleteObject$2(ref) {\r\n ref = getModularInstance(ref);\r\n return deleteObject$1(ref);\r\n}\r\nfunction ref$1(serviceOrRef, pathOrUrl) {\r\n serviceOrRef = getModularInstance(serviceOrRef);\r\n return ref(serviceOrRef, pathOrUrl);\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction _getChild$1(ref, childPath) {\r\n return _getChild(ref, childPath);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar UploadTaskSnapshotCompat = /** @class */ (function () {\r\n function UploadTaskSnapshotCompat(_delegate, task, ref) {\r\n this._delegate = _delegate;\r\n this.task = task;\r\n this.ref = ref;\r\n }\r\n Object.defineProperty(UploadTaskSnapshotCompat.prototype, \"bytesTransferred\", {\r\n get: function () {\r\n return this._delegate.bytesTransferred;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UploadTaskSnapshotCompat.prototype, \"metadata\", {\r\n get: function () {\r\n return this._delegate.metadata;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UploadTaskSnapshotCompat.prototype, \"state\", {\r\n get: function () {\r\n return this._delegate.state;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UploadTaskSnapshotCompat.prototype, \"totalBytes\", {\r\n get: function () {\r\n return this._delegate.totalBytes;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return UploadTaskSnapshotCompat;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar UploadTaskCompat = /** @class */ (function () {\r\n function UploadTaskCompat(_delegate, _ref) {\r\n this._delegate = _delegate;\r\n this._ref = _ref;\r\n this.cancel = this._delegate.cancel.bind(this._delegate);\r\n this.catch = this._delegate.catch.bind(this._delegate);\r\n this.pause = this._delegate.pause.bind(this._delegate);\r\n this.resume = this._delegate.resume.bind(this._delegate);\r\n }\r\n Object.defineProperty(UploadTaskCompat.prototype, \"snapshot\", {\r\n get: function () {\r\n return new UploadTaskSnapshotCompat(this._delegate.snapshot, this, this._ref);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n UploadTaskCompat.prototype.then = function (onFulfilled, onRejected) {\r\n var _this = this;\r\n return this._delegate.then(function (snapshot) {\r\n if (onFulfilled) {\r\n return onFulfilled(new UploadTaskSnapshotCompat(snapshot, _this, _this._ref));\r\n }\r\n }, onRejected);\r\n };\r\n UploadTaskCompat.prototype.on = function (type, nextOrObserver, error, completed) {\r\n var _this = this;\r\n var wrappedNextOrObserver = undefined;\r\n if (!!nextOrObserver) {\r\n if (typeof nextOrObserver === 'function') {\r\n wrappedNextOrObserver = function (taskSnapshot) {\r\n return nextOrObserver(new UploadTaskSnapshotCompat(taskSnapshot, _this, _this._ref));\r\n };\r\n }\r\n else {\r\n wrappedNextOrObserver = {\r\n next: !!nextOrObserver.next\r\n ? function (taskSnapshot) {\r\n return nextOrObserver.next(new UploadTaskSnapshotCompat(taskSnapshot, _this, _this._ref));\r\n }\r\n : undefined,\r\n complete: nextOrObserver.complete || undefined,\r\n error: nextOrObserver.error || undefined\r\n };\r\n }\r\n }\r\n return this._delegate.on(type, wrappedNextOrObserver, error || undefined, completed || undefined);\r\n };\r\n return UploadTaskCompat;\r\n}());\n\nvar ListResultCompat = /** @class */ (function () {\r\n function ListResultCompat(_delegate, _service) {\r\n this._delegate = _delegate;\r\n this._service = _service;\r\n }\r\n Object.defineProperty(ListResultCompat.prototype, \"prefixes\", {\r\n get: function () {\r\n var _this = this;\r\n return this._delegate.prefixes.map(function (ref) { return new ReferenceCompat(ref, _this._service); });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ListResultCompat.prototype, \"items\", {\r\n get: function () {\r\n var _this = this;\r\n return this._delegate.items.map(function (ref) { return new ReferenceCompat(ref, _this._service); });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ListResultCompat.prototype, \"nextPageToken\", {\r\n get: function () {\r\n return this._delegate.nextPageToken || null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ListResultCompat;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ReferenceCompat = /** @class */ (function () {\r\n function ReferenceCompat(_delegate, storage) {\r\n this._delegate = _delegate;\r\n this.storage = storage;\r\n }\r\n Object.defineProperty(ReferenceCompat.prototype, \"name\", {\r\n get: function () {\r\n return this._delegate.name;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReferenceCompat.prototype, \"bucket\", {\r\n get: function () {\r\n return this._delegate.bucket;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReferenceCompat.prototype, \"fullPath\", {\r\n get: function () {\r\n return this._delegate.fullPath;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ReferenceCompat.prototype.toString = function () {\r\n return this._delegate.toString();\r\n };\r\n /**\r\n * @returns A reference to the object obtained by\r\n * appending childPath, removing any duplicate, beginning, or trailing\r\n * slashes.\r\n */\r\n ReferenceCompat.prototype.child = function (childPath) {\r\n var reference = _getChild$1(this._delegate, childPath);\r\n return new ReferenceCompat(reference, this.storage);\r\n };\r\n Object.defineProperty(ReferenceCompat.prototype, \"root\", {\r\n get: function () {\r\n return new ReferenceCompat(this._delegate.root, this.storage);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReferenceCompat.prototype, \"parent\", {\r\n /**\r\n * @returns A reference to the parent of the\r\n * current object, or null if the current object is the root.\r\n */\r\n get: function () {\r\n var reference = this._delegate.parent;\r\n if (reference == null) {\r\n return null;\r\n }\r\n return new ReferenceCompat(reference, this.storage);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Uploads a blob to this object's location.\r\n * @param data - The blob to upload.\r\n * @returns An UploadTask that lets you control and\r\n * observe the upload.\r\n */\r\n ReferenceCompat.prototype.put = function (data, metadata) {\r\n this._throwIfRoot('put');\r\n return new UploadTaskCompat(uploadBytesResumable$1(this._delegate, data, metadata), this);\r\n };\r\n /**\r\n * Uploads a string to this object's location.\r\n * @param value - The string to upload.\r\n * @param format - The format of the string to upload.\r\n * @returns An UploadTask that lets you control and\r\n * observe the upload.\r\n */\r\n ReferenceCompat.prototype.putString = function (value, format, metadata) {\r\n if (format === void 0) { format = StringFormat.RAW; }\r\n this._throwIfRoot('putString');\r\n var data = dataFromString(format, value);\r\n var metadataClone = __assign({}, metadata);\r\n if (metadataClone['contentType'] == null && data.contentType != null) {\r\n metadataClone['contentType'] = data.contentType;\r\n }\r\n return new UploadTaskCompat(new UploadTask(this._delegate, new FbsBlob(data.data, true), metadataClone), this);\r\n };\r\n /**\r\n * List all items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * This is a helper method for calling list() repeatedly until there are\r\n * no more results. The default pagination size is 1000.\r\n *\r\n * Note: The results may not be consistent if objects are changed while this\r\n * operation is running.\r\n *\r\n * Warning: listAll may potentially consume too many resources if there are\r\n * too many results.\r\n *\r\n * @returns A Promise that resolves with all the items and prefixes under\r\n * the current storage reference. `prefixes` contains references to\r\n * sub-directories and `items` contains references to objects in this\r\n * folder. `nextPageToken` is never returned.\r\n */\r\n ReferenceCompat.prototype.listAll = function () {\r\n var _this = this;\r\n return listAll$1(this._delegate).then(function (r) { return new ListResultCompat(r, _this.storage); });\r\n };\r\n /**\r\n * List items (files) and prefixes (folders) under this storage reference.\r\n *\r\n * List API is only available for Firebase Rules Version 2.\r\n *\r\n * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'\r\n * delimited folder structure. Refer to GCS's List API if you want to learn more.\r\n *\r\n * To adhere to Firebase Rules's Semantics, Firebase Storage does not\r\n * support objects whose paths end with \"/\" or contain two consecutive\r\n * \"/\"s. Firebase Storage List API will filter these unsupported objects.\r\n * list() may fail if there are too many unsupported objects in the bucket.\r\n *\r\n * @param options - See ListOptions for details.\r\n * @returns A Promise that resolves with the items and prefixes.\r\n * `prefixes` contains references to sub-folders and `items`\r\n * contains references to objects in this folder. `nextPageToken`\r\n * can be used to get the rest of the results.\r\n */\r\n ReferenceCompat.prototype.list = function (options) {\r\n var _this = this;\r\n return list$2(this._delegate, options || undefined).then(function (r) { return new ListResultCompat(r, _this.storage); });\r\n };\r\n /**\r\n * A promise that resolves with the metadata for this object. If this\r\n * object doesn't exist or metadata cannot be retreived, the promise is\r\n * rejected.\r\n */\r\n ReferenceCompat.prototype.getMetadata = function () {\r\n return getMetadata$2(this._delegate);\r\n };\r\n /**\r\n * Updates the metadata for this object.\r\n * @param metadata - The new metadata for the object.\r\n * Only values that have been explicitly set will be changed. Explicitly\r\n * setting a value to null will remove the metadata.\r\n * @returns A promise that resolves\r\n * with the new metadata for this object.\r\n * @see firebaseStorage.Reference.prototype.getMetadata\r\n */\r\n ReferenceCompat.prototype.updateMetadata = function (metadata) {\r\n return updateMetadata$2(this._delegate, metadata);\r\n };\r\n /**\r\n * @returns A promise that resolves with the download\r\n * URL for this object.\r\n */\r\n ReferenceCompat.prototype.getDownloadURL = function () {\r\n return getDownloadURL$1(this._delegate);\r\n };\r\n /**\r\n * Deletes the object at this location.\r\n * @returns A promise that resolves if the deletion succeeds.\r\n */\r\n ReferenceCompat.prototype.delete = function () {\r\n this._throwIfRoot('delete');\r\n return deleteObject$2(this._delegate);\r\n };\r\n ReferenceCompat.prototype._throwIfRoot = function (name) {\r\n if (this._delegate._location.path === '') {\r\n throw invalidRootOperation(name);\r\n }\r\n };\r\n return ReferenceCompat;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A service that provides firebaseStorage.Reference instances.\r\n * @param opt_url gs:// url to a custom Storage Bucket\r\n */\r\nvar StorageServiceCompat = /** @class */ (function () {\r\n function StorageServiceCompat(app, _delegate) {\r\n var _this = this;\r\n this.app = app;\r\n this._delegate = _delegate;\r\n this.INTERNAL = {\r\n /**\r\n * Called when the associated app is deleted.\r\n */\r\n delete: function () {\r\n return _this._delegate._delete();\r\n }\r\n };\r\n }\r\n Object.defineProperty(StorageServiceCompat.prototype, \"maxOperationRetryTime\", {\r\n get: function () {\r\n return this._delegate.maxOperationRetryTime;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StorageServiceCompat.prototype, \"maxUploadRetryTime\", {\r\n get: function () {\r\n return this._delegate.maxUploadRetryTime;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a firebaseStorage.Reference for the given path in the default\r\n * bucket.\r\n */\r\n StorageServiceCompat.prototype.ref = function (path) {\r\n if (isUrl(path)) {\r\n throw invalidArgument('ref() expected a child path but got a URL, use refFromURL instead.');\r\n }\r\n return new ReferenceCompat(ref$1(this._delegate, path), this);\r\n };\r\n /**\r\n * Returns a firebaseStorage.Reference object for the given absolute URL,\r\n * which must be a gs:// or http[s]:// URL.\r\n */\r\n StorageServiceCompat.prototype.refFromURL = function (url) {\r\n if (!isUrl(url)) {\r\n throw invalidArgument('refFromURL() expected a full URL but got a child path, use ref() instead.');\r\n }\r\n try {\r\n Location.makeFromUrl(url);\r\n }\r\n catch (e) {\r\n throw invalidArgument('refFromUrl() expected a valid full URL but got an invalid one.');\r\n }\r\n return new ReferenceCompat(ref$1(this._delegate, url), this);\r\n };\r\n StorageServiceCompat.prototype.setMaxUploadRetryTime = function (time) {\r\n this._delegate.maxUploadRetryTime = time;\r\n };\r\n StorageServiceCompat.prototype.setMaxOperationRetryTime = function (time) {\r\n this._delegate.maxOperationRetryTime = time;\r\n };\r\n return StorageServiceCompat;\r\n}());\n\nvar name = \"@firebase/storage\";\nvar version = \"0.4.7\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Type constant for Firebase Storage.\r\n */\r\nvar STORAGE_TYPE = 'storage';\r\nfunction factory(container, _a) {\r\n var url = _a.instanceIdentifier;\r\n // Dependencies\r\n // TODO: This should eventually be 'app-compat'\r\n var app = container.getProvider('app').getImmediate();\r\n var authProvider = container.getProvider('auth-internal');\r\n // TODO: get StorageService instance from component framework instead\r\n // of creating a new one.\r\n var storageServiceCompat = new StorageServiceCompat(app, new StorageService(app, authProvider, new XhrIoPool(), url, firebase.SDK_VERSION));\r\n return storageServiceCompat;\r\n}\r\nfunction registerStorage(instance) {\r\n var namespaceExports = {\r\n // no-inline\r\n TaskState: TaskState,\r\n TaskEvent: TaskEvent,\r\n StringFormat: StringFormat,\r\n Storage: StorageService,\r\n Reference: ReferenceCompat\r\n };\r\n instance.INTERNAL.registerComponent(new Component(STORAGE_TYPE, factory, \"PUBLIC\" /* PUBLIC */)\r\n .setServiceProps(namespaceExports)\r\n .setMultipleInstances(true));\r\n instance.registerVersion(name, version);\r\n}\r\nregisterStorage(firebase);\n\nexport { registerStorage };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["DEFAULT_HOST","CONFIG_STORAGE_BUCKET_KEY","DEFAULT_MAX_OPERATION_RETRY_TIME","DEFAULT_MAX_UPLOAD_RETRY_TIME","FirebaseStorageError","_super","__extends","code","message","_this","prependCode","serverResponse","FirebaseError","unknown","objectNotFound","path","quotaExceeded","bucket","unauthenticated","unauthorized","retryLimitExceeded","canceled","invalidUrl","url","invalidDefaultBucket","noDefaultBucket","cannotSliceBlob","serverFileWrongSize","noDownloadURL","invalidArgument","appDeleted","invalidRootOperation","name","invalidFormat","format","internalError","StringFormat","StringData","data","contentType","dataFromString","stringData","utf8Bytes_","base64Bytes_","dataURLBytes_","dataURLContentType_","value","b","i","c","valid","hi","lo","percentEncodedBytes_","decoded","hasMinus","hasUnder","invalidChar","hasPlus","hasSlash","bytes","array","DataURLParts","dataURL","matches","middle","endsWith","dataUrl","parts","s","end","longEnough","TaskEvent","TaskState","taskStateFromInternalTaskState","state","ErrorCode","NetworkXhrIo","resolve","method","body","headers","key","header","listener","XhrIoPool","Location","encode","bucketString","bucketLocation","location","bucketDomain","gsModify","loc","gsPath","gsRegex","gsIndices","httpModify","version","firebaseStorageHost","firebaseStoragePath","firebaseStorageRegExp","firebaseStorageIndices","cloudStorageHost","cloudStoragePath","cloudStorageRegExp","cloudStorageIndices","groups","group","captures","bucketValue","pathValue","FailRequest","error","_appDelete","start","f","callback","timeout","waitSeconds","timeoutId","hitTimeout","cancelState","triggeredCallback","triggerCallback","args","_i","callWithDelay","millis","handler","success","__spreadArray","mustStop","waitMillis","stopped","stop","wasTimeout","id","isJustDef","p","isFunction","isNonArrayObject","isString","isNativeBlob","isNativeBlobDefined","validateNumber","argument","minValue","maxValue","makeUrl","urlPart","makeQueryString","params","queryPart","nextPart","NetworkRequest","successCodes","additionalRetryCodes","errorCallback","progressCallback","pool","reject","self","doTheRequest","backoffCallback","RequestEndStatus","xhr","progressListener","progressEvent","loaded","total","hitServer","status","wasCanceled","successCode","backoffDone","requestWentThrough","result","e","err","appDelete","isFiveHundredCode","extraRetryCodes","isExtraRetryCode","isRequestSpecificRetryCode","wasSuccessCode","addAuthHeader_","authToken","addVersionHeader_","firebaseVersion","addGmpidHeader_","appId","makeRequest","requestInfo","getBlobBuilder","getBlob","BlobBuilder","bb","sliceBlob","blob","FbsBlob","elideCopy","size","blobType","startByte","endByte","realBlob","sliced","slice","blobby","val","uint8Arrays","finalLength_1","merged_1","index_1","jsonObjectOrNull","obj","parent","index","newPath","child","childPath","canonicalChildPath","component","lastComponent","noXform_","metadata","Mapping","server","local","writable","xform","mappings_","xformPath","fullPath","getMappings","mappings","mappingsXformPath","_metadata","nameMapping","xformSize","sizeMapping","addRef","service","generateRef","fromResource","resource","len","mapping","fromResourceString","resourceString","downloadUrlFromResourceString","tokens","tokensList","urls","token","base","queryString","toResourceString","PREFIXES_KEY","ITEMS_KEY","fromBackendResponse","listResult","_a","pathWithoutTrailingSlash","reference","_b","_c","item","fromResponseString","RequestInfo","handlerCheck","cndn","metadataHandler","text","listHandler","downloadUrlHandler","sharedErrorHandler","errorHandler","newErr","objectErrorHandler","shared","getMetadata","list","delimiter","pageToken","maxResults","urlParams","getDownloadUrl","updateMetadata","deleteObject","_xhr","_text","determineContentType_","metadataForUpload_","metadataClone","multipartUpload","genBoundary","str","boundary","metadata_","metadataString","preBlobPart","postBlobPart","ResumableUploadStatus","current","finalized","checkResumeHeader_","allowed","allowedStatus","createResumableUpload","metadataForUpload","getResumableUploadStatus","sizeString","RESUMABLE_UPLOAD_CHUNK_SIZE","continueResumableUpload","chunkSize","status_","bytesLeft","bytesToUpload","uploadCommand","uploadStatus","newCurrent","Observer","nextOrObserver","complete","asFunctions","observer","async","argsToForward","UploadTask","ref","sizeBefore","createRequest","statusRequest","uploadRequest","newStatus","currentSize","metadataRequest","multipartRequest","transferred","old","wasPaused","externalState","type","completed","onFulfilled","onRejected","observers","triggered","toCall","Reference","_service","uploadBytesResumable","listAll","accumulator","listAllHelper","__awaiter","opt","nextPage","__generator","list$1","options","op","getMetadata$1","updateMetadata$1","getDownloadURL","deleteObject$1","_getChild","isUrl","refFromURL","refFromPath","StorageService","serviceOrRef","pathOrUrl","extractBucket","config","app","_authProvider","_pool","_url","_firebaseVersion","time","auth","tokenData","request","request_1","uploadBytesResumable$1","getModularInstance","getMetadata$2","updateMetadata$2","list$2","listAll$1","getDownloadURL$1","deleteObject$2","ref$1","_getChild$1","UploadTaskSnapshotCompat","_delegate","task","UploadTaskCompat","_ref","snapshot","wrappedNextOrObserver","taskSnapshot","ListResultCompat","ReferenceCompat","storage","__assign","r","StorageServiceCompat","STORAGE_TYPE","factory","container","authProvider","storageServiceCompat","firebase","registerStorage","instance","namespaceExports","Component"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js b/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js deleted file mode 100644 index e9db0d0..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js +++ /dev/null @@ -1,17 +0,0 @@ -import{f as r}from"./index.esm-J35DBGFx.js";import"./index-2K3MavtT.js";var e="firebase",a="8.3.3";/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */r.registerVersion(e,a,"app");export{r as default}; -//# sourceMappingURL=index.esm-EExsODKC.js.map diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js.map b/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js.map deleted file mode 100644 index f5e7787..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-EExsODKC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.esm-EExsODKC.js","sources":["../../../node_modules/firebase/app/dist/index.esm.js"],"sourcesContent":["import firebase from '@firebase/app';\nexport { default } from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"8.3.3\";\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfirebase.registerVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n"],"names":["name","version","firebase"],"mappings":"wEAGA,IAAIA,EAAO,WACPC,EAAU,QAEd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBAC,EAAS,gBAAgBF,EAAMC,EAAS,KAAK","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-J35DBGFx.js b/excalidraw/excalidraw-app/build/assets/index.esm-J35DBGFx.js deleted file mode 100644 index fdc4f4b..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-J35DBGFx.js +++ /dev/null @@ -1,318 +0,0 @@ -import{_ as Y,a as z,b as x,c as S,d as J,e as K,f as $}from"./index-2K3MavtT.js";/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function X(t){return C(void 0,t)}function C(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:var r=e;return new Date(r.getTime());case Object:t===void 0&&(t={});break;case Array:t=[];break;default:return e}for(var n in e)!e.hasOwnProperty(n)||!Z(n)||(t[n]=C(t[n],e[n]));return t}function Z(t){return t!=="__proto__"}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var q=function(){function t(){var e=this;this.reject=function(){},this.resolve=function(){},this.promise=new Promise(function(r,n){e.resolve=r,e.reject=n})}return t.prototype.wrapCallback=function(e){var r=this;return function(n,o){n?r.reject(n):r.resolve(o),typeof e=="function"&&(r.promise.catch(function(){}),e.length===1?e(n):e(n,o))}},t}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function F(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function $e(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(F())}function Q(){try{return Object.prototype.toString.call(global.process)==="[object process]"}catch{return!1}}function ee(){return typeof self=="object"&&self.self===self}function ke(){var t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function Be(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function Ue(){return F().indexOf("Electron/")>=0}function Ve(){var t=F();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function We(){return F().indexOf("MSAppHost/")>=0}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var te="FirebaseError",re=function(t){Y(e,t);function e(r,n,o){var i=t.call(this,n)||this;return i.code=r,i.customData=o,i.name=te,Object.setPrototypeOf(i,e.prototype),Error.captureStackTrace&&Error.captureStackTrace(i,T.prototype.create),i}return e}(Error),T=function(){function t(e,r,n){this.service=e,this.serviceName=r,this.errors=n}return t.prototype.create=function(e){for(var r=[],n=1;n"})}var ie=/\{\$([^}]+)}/g;/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function k(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function oe(t,e){var r=new ae(t,e);return r.subscribe.bind(r)}var ae=function(){function t(e,r){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=r,this.task.then(function(){e(n)}).catch(function(o){n.error(o)})}return t.prototype.next=function(e){this.forEachObserver(function(r){r.next(e)})},t.prototype.error=function(e){this.forEachObserver(function(r){r.error(e)}),this.close(e)},t.prototype.complete=function(){this.forEachObserver(function(e){e.complete()}),this.close()},t.prototype.subscribe=function(e,r,n){var o=this,i;if(e===void 0&&r===void 0&&n===void 0)throw new Error("Missing Observer.");se(e,["next","error","complete"])?i=e:i={next:e,error:r,complete:n},i.next===void 0&&(i.next=D),i.error===void 0&&(i.error=D),i.complete===void 0&&(i.complete=D);var f=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(function(){try{o.finalError?i.error(o.finalError):i.complete()}catch{}}),this.observers.push(i),f},t.prototype.unsubscribeOne=function(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))},t.prototype.forEachObserver=function(e){if(!this.finalized)for(var r=0;r=(p??d.logLevel)&&t({level:u[y].toLowerCase(),message:s,args:m,type:d.name})}},n=0,o=H;n=0&&A.warn(` - Warning: You are trying to load Firebase while using Firebase Performance standalone script. - You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code. - `)}var He=M.initializeApp;M.initializeApp=function(){for(var t=[],e=0;e> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [];\r\n var pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, webSafe) {\r\n this.init_();\r\n var charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.reject = function () { };\r\n this.resolve = function () { };\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n var runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n var ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n return 'indexedDB' in self && indexedDB != null;\r\n}\r\n/**\r\n * This method validates browser context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise(function (resolve, reject) {\r\n try {\r\n var preExist_1 = true;\r\n var DB_CHECK_NAME_1 = 'validate-browser-context-for-indexeddb-analytics-module';\r\n var request_1 = window.indexedDB.open(DB_CHECK_NAME_1);\r\n request_1.onsuccess = function () {\r\n request_1.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist_1) {\r\n window.indexedDB.deleteDatabase(DB_CHECK_NAME_1);\r\n }\r\n resolve(true);\r\n };\r\n request_1.onupgradeneeded = function () {\r\n preExist_1 = false;\r\n };\r\n request_1.onerror = function () {\r\n var _a;\r\n reject(((_a = request_1.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (!navigator || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nvar FirebaseError = /** @class */ (function (_super) {\r\n __extends(FirebaseError, _super);\r\n function FirebaseError(code, message, customData) {\r\n var _this = _super.call(this, message) || this;\r\n _this.code = code;\r\n _this.customData = customData;\r\n _this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\r\n }\r\n return _this;\r\n }\r\n return FirebaseError;\r\n}(Error));\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n ErrorFactory.prototype.create = function (code) {\r\n var data = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n data[_i - 1] = arguments[_i];\r\n }\r\n var customData = data[0] || {};\r\n var fullCode = this.service + \"/\" + code;\r\n var template = this.errors[code];\r\n var message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\r\n var error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n };\r\n return ErrorFactory;\r\n}());\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, function (_, key) {\r\n var value = data[key];\r\n return value != null ? String(value) : \"<\" + key + \"?>\";\r\n });\r\n}\r\nvar PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims;\r\n var now = Math.floor(new Date().getTime() / 1000);\r\n var validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n var res = {};\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n var params = [];\r\n var _loop_1 = function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n };\r\n for (var _i = 0, _a = Object.entries(querystringParams); _i < _a.length; _i++) {\r\n var _b = _a[_i], key = _b[0], value = _b[1];\r\n _loop_1(key, value);\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var _a = token.split('='), key = _a[0], value = _a[1];\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n var queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n var fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function () {\r\n function Sha1() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (var i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n var lengthMinusBlock = length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}());\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argumentNumber The index of the argument\r\n * @param optional Whether or not the argument is optional\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [];\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nvar DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nvar DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

    Visible for testing\r\n */\r\nvar MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

    Visible for testing\r\n */\r\nvar RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis, backoffFactor) {\r\n if (intervalMillis === void 0) { intervalMillis = DEFAULT_INTERVAL_MILLIS; }\r\n if (backoffFactor === void 0) { backoffFactor = DEFAULT_BACKOFF_FACTOR; }\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n var currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n var randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return \"\" + i;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n var cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n var dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, calculateBackoffMillis, contains, createSubscribe, decode, deepCopy, deepExtend, errorPrefix, extractQuerystring, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, querystring, querystringDecode, safeGet, stringLength, stringToByteArray$1 as stringToByteArray, stringify, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm.js.map\n","import { __assign, __values, __read, __awaiter, __generator, __spreadArray } from 'tslib';\nimport { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nvar Component = /** @class */ (function () {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n function Component(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n Component.prototype.setInstantiationMode = function (mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n };\r\n Component.prototype.setMultipleInstances = function (multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n };\r\n Component.prototype.setServiceProps = function (props) {\r\n this.serviceProps = props;\r\n return this;\r\n };\r\n Component.prototype.setInstanceCreatedCallback = function (callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n };\r\n return Component;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nvar Provider = /** @class */ (function () {\r\n function Provider(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n Provider.prototype.get = function (identifier) {\r\n if (identifier === void 0) { identifier = DEFAULT_ENTRY_NAME; }\r\n // if multipleInstances is not supported, use the default name\r\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n var deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n var instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n };\r\n Provider.prototype.getImmediate = function (options) {\r\n var _a = __assign({ identifier: DEFAULT_ENTRY_NAME, optional: false }, options), identifier = _a.identifier, optional = _a.optional;\r\n // if multipleInstances is not supported, use the default name\r\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(\"Service \" + this.name + \" is not available\");\r\n }\r\n }\r\n };\r\n Provider.prototype.getComponent = function () {\r\n return this.component;\r\n };\r\n Provider.prototype.setComponent = function (component) {\r\n var e_1, _a;\r\n if (component.name !== this.name) {\r\n throw Error(\"Mismatching Component \" + component.name + \" for Provider \" + this.name + \".\");\r\n }\r\n if (this.component) {\r\n throw Error(\"Component for \" + this.name + \" has already been provided\");\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n try {\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (var _b = __values(this.instancesDeferred.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var _d = __read(_c.value, 2), instanceIdentifier = _d[0], instanceDeferred = _d[1];\r\n var normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n var instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n };\r\n Provider.prototype.clearInstance = function (identifier) {\r\n if (identifier === void 0) { identifier = DEFAULT_ENTRY_NAME; }\r\n this.instancesDeferred.delete(identifier);\r\n this.instances.delete(identifier);\r\n };\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n Provider.prototype.delete = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var services;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n services = Array.from(this.instances.values());\r\n return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([], __read(services\r\n .filter(function (service) { return 'INTERNAL' in service; }) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(function (service) { return service.INTERNAL.delete(); }))), __read(services\r\n .filter(function (service) { return '_delete' in service; }) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(function (service) { return service._delete(); }))))];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Provider.prototype.isComponentSet = function () {\r\n return this.component != null;\r\n };\r\n Provider.prototype.isInitialized = function (identifier) {\r\n if (identifier === void 0) { identifier = DEFAULT_ENTRY_NAME; }\r\n return this.instances.has(identifier);\r\n };\r\n Provider.prototype.initialize = function (opts) {\r\n var e_2, _a;\r\n if (opts === void 0) { opts = {}; }\r\n var _b = opts.instanceIdentifier, instanceIdentifier = _b === void 0 ? DEFAULT_ENTRY_NAME : _b, _c = opts.options, options = _c === void 0 ? {} : _c;\r\n var normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(this.name + \"(\" + normalizedIdentifier + \") has already been initialized\");\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(\"Component \" + this.name + \" has not been registered yet\");\r\n }\r\n var instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options: options\r\n });\r\n try {\r\n // resolve any pending promise waiting for the service instance\r\n for (var _d = __values(this.instancesDeferred.entries()), _e = _d.next(); !_e.done; _e = _d.next()) {\r\n var _f = __read(_e.value, 2), instanceIdentifier_1 = _f[0], instanceDeferred = _f[1];\r\n var normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier_1);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return instance;\r\n };\r\n Provider.prototype.getOrInitializeService = function (_a) {\r\n var instanceIdentifier = _a.instanceIdentifier, _b = _a.options, options = _b === void 0 ? {} : _b;\r\n var instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options: options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_c) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n };\r\n Provider.prototype.normalizeInstanceIdentifier = function (identifier) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n };\r\n Provider.prototype.shouldAutoInitialize = function () {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* EXPLICIT */);\r\n };\r\n return Provider;\r\n}());\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nvar ComponentContainer = /** @class */ (function () {\r\n function ComponentContainer(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n ComponentContainer.prototype.addComponent = function (component) {\r\n var provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(\"Component \" + component.name + \" has already been registered with \" + this.name);\r\n }\r\n provider.setComponent(component);\r\n };\r\n ComponentContainer.prototype.addOrOverwriteComponent = function (component) {\r\n var provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n };\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n ComponentContainer.prototype.getProvider = function (name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n var provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n };\r\n ComponentContainer.prototype.getProviders = function () {\r\n return Array.from(this.providers.values());\r\n };\r\n return ComponentContainer;\r\n}());\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar _a;\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nvar instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nvar levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nvar defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nvar ConsoleMethod = (_a = {},\r\n _a[LogLevel.DEBUG] = 'log',\r\n _a[LogLevel.VERBOSE] = 'log',\r\n _a[LogLevel.INFO] = 'info',\r\n _a[LogLevel.WARN] = 'warn',\r\n _a[LogLevel.ERROR] = 'error',\r\n _a);\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nvar defaultLogHandler = function (instance, logType) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n var now = new Date().toISOString();\r\n var method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method].apply(console, __spreadArrays([\"[\" + now + \"] \" + instance.name + \":\"], args));\r\n }\r\n else {\r\n throw new Error(\"Attempted to log a message with an invalid logType (value: \" + logType + \")\");\r\n }\r\n};\r\nvar Logger = /** @class */ (function () {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n function Logger(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n Object.defineProperty(Logger.prototype, \"logLevel\", {\r\n get: function () {\r\n return this._logLevel;\r\n },\r\n set: function (val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(\"Invalid value \\\"\" + val + \"\\\" assigned to `logLevel`\");\r\n }\r\n this._logLevel = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // Workaround for setter/getter having to be the same type.\r\n Logger.prototype.setLogLevel = function (val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n };\r\n Object.defineProperty(Logger.prototype, \"logHandler\", {\r\n get: function () {\r\n return this._logHandler;\r\n },\r\n set: function (val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Logger.prototype, \"userLogHandler\", {\r\n get: function () {\r\n return this._userLogHandler;\r\n },\r\n set: function (val) {\r\n this._userLogHandler = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\r\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\r\n };\r\n Logger.prototype.log = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\r\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\r\n };\r\n Logger.prototype.info = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\r\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\r\n };\r\n Logger.prototype.warn = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\r\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\r\n };\r\n Logger.prototype.error = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\r\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\r\n };\r\n return Logger;\r\n}());\r\nfunction setLogLevel(level) {\r\n instances.forEach(function (inst) {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n var _loop_1 = function (instance) {\r\n var customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = function (instance, level) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n var message = args\r\n .map(function (arg) {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(function (arg) { return arg; })\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message: message,\r\n args: args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n };\r\n for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) {\r\n var instance = instances_1[_i];\r\n _loop_1(instance);\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm.js.map\n","import { __assign } from 'tslib';\nimport { ErrorFactory, deepCopy, contains, deepExtend, createSubscribe, isBrowser, isNode } from '@firebase/util';\nimport { ComponentContainer, Component } from '@firebase/component';\nimport { Logger, setLogLevel, setUserLogHandler } from '@firebase/logger';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar _a;\r\nvar ERRORS = (_a = {},\r\n _a[\"no-app\" /* NO_APP */] = \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n _a[\"bad-app-name\" /* BAD_APP_NAME */] = \"Illegal App name: '{$appName}\",\r\n _a[\"duplicate-app\" /* DUPLICATE_APP */] = \"Firebase App named '{$appName}' already exists\",\r\n _a[\"app-deleted\" /* APP_DELETED */] = \"Firebase App named '{$appName}' already deleted\",\r\n _a[\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */] = 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n _a[\"invalid-log-argument\" /* INVALID_LOG_ARGUMENT */] = 'First argument to `onLog` must be null or a function.',\r\n _a);\r\nvar ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\nvar name = \"@firebase/app\";\nvar version = \"0.6.19\";\n\nvar name$1 = \"@firebase/analytics\";\n\nvar name$2 = \"@firebase/auth\";\n\nvar name$3 = \"@firebase/database\";\n\nvar name$4 = \"@firebase/functions\";\n\nvar name$5 = \"@firebase/installations\";\n\nvar name$6 = \"@firebase/messaging\";\n\nvar name$7 = \"@firebase/performance\";\n\nvar name$8 = \"@firebase/remote-config\";\n\nvar name$9 = \"@firebase/storage\";\n\nvar name$a = \"@firebase/firestore\";\n\nvar name$b = \"firebase-wrapper\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar _a$1;\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nvar PLATFORM_LOG_STRING = (_a$1 = {},\r\n _a$1[name] = 'fire-core',\r\n _a$1[name$1] = 'fire-analytics',\r\n _a$1[name$2] = 'fire-auth',\r\n _a$1[name$3] = 'fire-rtdb',\r\n _a$1[name$4] = 'fire-fn',\r\n _a$1[name$5] = 'fire-iid',\r\n _a$1[name$6] = 'fire-fcm',\r\n _a$1[name$7] = 'fire-perf',\r\n _a$1[name$8] = 'fire-rc',\r\n _a$1[name$9] = 'fire-gcs',\r\n _a$1[name$a] = 'fire-fst',\r\n _a$1['fire-js'] = 'fire-js',\r\n _a$1[name$b] = 'fire-js-all',\r\n _a$1);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar logger = new Logger('@firebase/app');\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\r\nvar FirebaseAppImpl = /** @class */ (function () {\r\n function FirebaseAppImpl(options, config, firebase_) {\r\n var _this = this;\r\n this.firebase_ = firebase_;\r\n this.isDeleted_ = false;\r\n this.name_ = config.name;\r\n this.automaticDataCollectionEnabled_ =\r\n config.automaticDataCollectionEnabled || false;\r\n this.options_ = deepCopy(options);\r\n this.container = new ComponentContainer(config.name);\r\n // add itself to container\r\n this._addComponent(new Component('app', function () { return _this; }, \"PUBLIC\" /* PUBLIC */));\r\n // populate ComponentContainer with existing components\r\n this.firebase_.INTERNAL.components.forEach(function (component) {\r\n return _this._addComponent(component);\r\n });\r\n }\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.automaticDataCollectionEnabled_;\r\n },\r\n set: function (val) {\r\n this.checkDestroyed_();\r\n this.automaticDataCollectionEnabled_ = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.name_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.options_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FirebaseAppImpl.prototype.delete = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.checkDestroyed_();\r\n resolve();\r\n })\r\n .then(function () {\r\n _this.firebase_.INTERNAL.removeApp(_this.name_);\r\n return Promise.all(_this.container.getProviders().map(function (provider) { return provider.delete(); }));\r\n })\r\n .then(function () {\r\n _this.isDeleted_ = true;\r\n });\r\n };\r\n /**\r\n * Return a service instance associated with this app (creating it\r\n * on demand), identified by the passed instanceIdentifier.\r\n *\r\n * NOTE: Currently storage and functions are the only ones that are leveraging this\r\n * functionality. They invoke it by calling:\r\n *\r\n * ```javascript\r\n * firebase.app().storage('STORAGE BUCKET ID')\r\n * ```\r\n *\r\n * The service name is passed to this already\r\n * @internal\r\n */\r\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\r\n if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n this.checkDestroyed_();\r\n // getImmediate will always succeed because _getService is only called for registered components.\r\n return this.container.getProvider(name).getImmediate({\r\n identifier: instanceIdentifier\r\n });\r\n };\r\n /**\r\n * Remove a service instance from the cache, so we will create a new instance for this service\r\n * when people try to get this service again.\r\n *\r\n * NOTE: currently only firestore is using this functionality to support firestore shutdown.\r\n *\r\n * @param name The service name\r\n * @param instanceIdentifier instance identifier in case multiple instances are allowed\r\n * @internal\r\n */\r\n FirebaseAppImpl.prototype._removeServiceInstance = function (name, instanceIdentifier) {\r\n if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.container.getProvider(name).clearInstance(instanceIdentifier);\r\n };\r\n /**\r\n * @param component the component being added to this app's container\r\n */\r\n FirebaseAppImpl.prototype._addComponent = function (component) {\r\n try {\r\n this.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(\"Component \" + component.name + \" failed to register with FirebaseApp \" + this.name, e);\r\n }\r\n };\r\n FirebaseAppImpl.prototype._addOrOverwriteComponent = function (component) {\r\n this.container.addOrOverwriteComponent(component);\r\n };\r\n FirebaseAppImpl.prototype.toJSON = function () {\r\n return {\r\n name: this.name,\r\n automaticDataCollectionEnabled: this.automaticDataCollectionEnabled,\r\n options: this.options\r\n };\r\n };\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\r\n if (this.isDeleted_) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* APP_DELETED */, { appName: this.name_ });\r\n }\r\n };\r\n return FirebaseAppImpl;\r\n}());\r\n// Prevent dead-code elimination of these methods w/o invalid property\r\n// copying.\r\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\r\n FirebaseAppImpl.prototype.delete ||\r\n console.log('dc');\n\nvar version$1 = \"8.3.3\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Because auth can't share code with other components, we attach the utility functions\r\n * in an internal namespace to share code.\r\n * This function return a firebase namespace object without\r\n * any utility functions, so it can be shared between the regular firebaseNamespace and\r\n * the lite version.\r\n */\r\nfunction createFirebaseNamespaceCore(firebaseAppImpl) {\r\n var apps = {};\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var components = new Map();\r\n // A namespace is a plain JavaScript Object.\r\n var namespace = {\r\n // Hack to prevent Babel from modifying the object returned\r\n // as the firebase namespace.\r\n // @ts-ignore\r\n __esModule: true,\r\n initializeApp: initializeApp,\r\n // @ts-ignore\r\n app: app,\r\n registerVersion: registerVersion,\r\n setLogLevel: setLogLevel,\r\n onLog: onLog,\r\n // @ts-ignore\r\n apps: null,\r\n SDK_VERSION: version$1,\r\n INTERNAL: {\r\n registerComponent: registerComponent,\r\n removeApp: removeApp,\r\n components: components,\r\n useAsService: useAsService\r\n }\r\n };\r\n // Inject a circular default export to allow Babel users who were previously\r\n // using:\r\n //\r\n // import firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase').default;\r\n //\r\n // instead of\r\n //\r\n // import * as firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase');\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n namespace['default'] = namespace;\r\n // firebase.apps is a read-only getter.\r\n Object.defineProperty(namespace, 'apps', {\r\n get: getApps\r\n });\r\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\r\n function removeApp(name) {\r\n delete apps[name];\r\n }\r\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\r\n function app(name) {\r\n name = name || DEFAULT_ENTRY_NAME;\r\n if (!contains(apps, name)) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* NO_APP */, { appName: name });\r\n }\r\n return apps[name];\r\n }\r\n // @ts-ignore\r\n app['App'] = firebaseAppImpl;\r\n function initializeApp(options, rawConfig) {\r\n if (rawConfig === void 0) { rawConfig = {}; }\r\n if (typeof rawConfig !== 'object' || rawConfig === null) {\r\n var name_1 = rawConfig;\r\n rawConfig = { name: name_1 };\r\n }\r\n var config = rawConfig;\r\n if (config.name === undefined) {\r\n config.name = DEFAULT_ENTRY_NAME;\r\n }\r\n var name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n if (contains(apps, name)) {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* DUPLICATE_APP */, { appName: name });\r\n }\r\n var app = new firebaseAppImpl(options, config, namespace);\r\n apps[name] = app;\r\n return app;\r\n }\r\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\r\n function getApps() {\r\n // Make a copy so caller cannot mutate the apps list.\r\n return Object.keys(apps).map(function (name) { return apps[name]; });\r\n }\r\n function registerComponent(component) {\r\n var componentName = component.name;\r\n if (components.has(componentName)) {\r\n logger.debug(\"There were multiple attempts to register component \" + componentName + \".\");\r\n return component.type === \"PUBLIC\" /* PUBLIC */\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n namespace[componentName]\r\n : null;\r\n }\r\n components.set(componentName, component);\r\n // create service namespace for public components\r\n if (component.type === \"PUBLIC\" /* PUBLIC */) {\r\n // The Service namespace is an accessor function ...\r\n var serviceNamespace = function (appArg) {\r\n if (appArg === void 0) { appArg = app(); }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (typeof appArg[componentName] !== 'function') {\r\n // Invalid argument.\r\n // This happens in the following case: firebase.storage('gs:/')\r\n throw ERROR_FACTORY.create(\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */, {\r\n appName: componentName\r\n });\r\n }\r\n // Forward service instance lookup to the FirebaseApp.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return appArg[componentName]();\r\n };\r\n // ... and a container for service-level properties.\r\n if (component.serviceProps !== undefined) {\r\n deepExtend(serviceNamespace, component.serviceProps);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n namespace[componentName] = serviceNamespace;\r\n // Patch the FirebaseAppImpl prototype\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n firebaseAppImpl.prototype[componentName] =\r\n // TODO: The eslint disable can be removed and the 'ignoreRestArgs'\r\n // option added to the no-explicit-any rule when ESlint releases it.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var serviceFxn = this._getService.bind(this, componentName);\r\n return serviceFxn.apply(this, component.multipleInstances ? args : []);\r\n };\r\n }\r\n // add the component to existing app instances\r\n for (var _i = 0, _a = Object.keys(apps); _i < _a.length; _i++) {\r\n var appName = _a[_i];\r\n apps[appName]._addComponent(component);\r\n }\r\n return component.type === \"PUBLIC\" /* PUBLIC */\r\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n namespace[componentName]\r\n : null;\r\n }\r\n function registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n var library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += \"-\" + variant;\r\n }\r\n var libraryMismatch = library.match(/\\s|\\//);\r\n var versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n var warning = [\r\n \"Unable to register library \\\"\" + library + \"\\\" with version \\\"\" + version + \"\\\":\"\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(\"library name \\\"\" + library + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(\"version name \\\"\" + version + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n registerComponent(new Component(library + \"-version\", function () { return ({ library: library, version: version }); }, \"VERSION\" /* VERSION */));\r\n }\r\n function onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n }\r\n // Map the requested service to a registered service name\r\n // (used to map auth to serverAuth service when needed).\r\n function useAsService(app, name) {\r\n if (name === 'serverAuth') {\r\n return null;\r\n }\r\n var useService = name;\r\n return useService;\r\n }\r\n return namespace;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global. It may be called multiple times\r\n * in unit tests.\r\n */\r\nfunction createFirebaseNamespace() {\r\n var namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\r\n namespace.INTERNAL = __assign(__assign({}, namespace.INTERNAL), { createFirebaseNamespace: createFirebaseNamespace,\r\n extendNamespace: extendNamespace,\r\n createSubscribe: createSubscribe,\r\n ErrorFactory: ErrorFactory,\r\n deepExtend: deepExtend });\r\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\r\n function extendNamespace(props) {\r\n deepExtend(namespace, props);\r\n }\r\n return namespace;\r\n}\r\nvar firebase = createFirebaseNamespace();\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PlatformLoggerService = /** @class */ (function () {\r\n function PlatformLoggerService(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n PlatformLoggerService.prototype.getPlatformInfoString = function () {\r\n var providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(function (provider) {\r\n if (isVersionServiceProvider(provider)) {\r\n var service = provider.getImmediate();\r\n return service.library + \"/\" + service.version;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(function (logString) { return logString; })\r\n .join(' ');\r\n };\r\n return PlatformLoggerService;\r\n}());\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n var component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* VERSION */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(firebase, variant) {\r\n firebase.INTERNAL.registerComponent(new Component('platform-logger', function (container) { return new PlatformLoggerService(container); }, \"PRIVATE\" /* PRIVATE */));\r\n // Register `app` package.\r\n firebase.registerVersion(name, version, variant);\r\n // Register platform SDK identifier (no version).\r\n firebase.registerVersion('fire-js', '');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Firebase Lite detection test\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nif (isBrowser() && self.firebase !== undefined) {\r\n logger.warn(\"\\n Warning: Firebase is already defined in the global scope. Please make sure\\n Firebase library is only loaded once.\\n \");\r\n // eslint-disable-next-line\r\n var sdkVersion = self.firebase.SDK_VERSION;\r\n if (sdkVersion && sdkVersion.indexOf('LITE') >= 0) {\r\n logger.warn(\"\\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\\n \");\r\n }\r\n}\r\nvar initializeApp = firebase.initializeApp;\r\n// TODO: This disable can be removed and the 'ignoreRestArgs' option added to\r\n// the no-explicit-any rule when ESlint releases it.\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfirebase.initializeApp = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n // Environment check before initializing app\r\n // Do the check in initializeApp, so people have a chance to disable it by setting logLevel\r\n // in @firebase/logger\r\n if (isNode()) {\r\n logger.warn(\"\\n Warning: This is a browser-targeted Firebase bundle but it appears it is being\\n run in a Node environment. If running in a Node environment, make sure you\\n are using the bundle specified by the \\\"main\\\" field in package.json.\\n \\n If you are using Webpack, you can specify \\\"main\\\" as the first item in\\n \\\"resolve.mainFields\\\":\\n https://webpack.js.org/configuration/resolve/#resolvemainfields\\n \\n If using Rollup, use the @rollup/plugin-node-resolve plugin and specify \\\"main\\\"\\n as the first item in \\\"mainFields\\\", e.g. ['main', 'module'].\\n https://github.com/rollup/@rollup/plugin-node-resolve\\n \");\r\n }\r\n return initializeApp.apply(undefined, args);\r\n};\r\nvar firebase$1 = firebase;\r\nregisterCoreComponents(firebase$1);\n\nexport default firebase$1;\nexport { firebase$1 as firebase };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["deepCopy","value","deepExtend","target","source","dateValue","prop","isValidKey","key","Deferred","_this","resolve","reject","callback","error","getUA","isMobileCordova","isNode","isBrowser","isBrowserExtension","runtime","isReactNative","isElectron","isIE","ua","isUWP","ERROR_NAME","FirebaseError","_super","__extends","code","message","customData","ErrorFactory","service","serviceName","errors","data","_i","fullCode","template","replaceTemplate","fullMessage","PATTERN","_","contains","obj","createSubscribe","executor","onNoObservers","proxy","ObserverProxy","e","observer","nextOrObserver","complete","implementsAnyMethods","noop","unsub","i","fn","err","methods","methods_1","method","getModularInstance","Component","name","instanceFactory","type","mode","multipleInstances","props","DEFAULT_ENTRY_NAME","Provider","container","identifier","normalizedIdentifier","deferred","instance","options","_a","__assign","optional","component","e_1","isComponentEager","_b","__values","_c","_d","__read","instanceIdentifier","instanceDeferred","e_1_1","__awaiter","services","__generator","__spreadArray","opts","e_2","_e","_f","instanceIdentifier_1","normalizedDeferredIdentifier","e_2_1","normalizeIdentifierForFactory","ComponentContainer","provider","__spreadArrays","s","il","r","k","a","j","jl","instances","LogLevel","levelStringToEnum","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","args","now","Logger","val","setLogLevel","level","inst","setUserLogHandler","logCallback","_loop_1","customLogLevel","arg","instances_1","ERRORS","ERROR_FACTORY","version","name$1","name$2","name$3","name$4","name$5","name$6","name$7","name$8","name$9","name$a","name$b","_a$1","PLATFORM_LOG_STRING","logger","FirebaseAppImpl","config","firebase_","version$1","createFirebaseNamespaceCore","firebaseAppImpl","apps","components","namespace","initializeApp","app","registerVersion","onLog","registerComponent","removeApp","useAsService","getApps","rawConfig","name_1","componentName","serviceNamespace","appArg","serviceFxn","appName","libraryKeyOrName","variant","library","libraryMismatch","versionMismatch","warning","useService","createFirebaseNamespace","extendNamespace","firebase","PlatformLoggerService","providers","isVersionServiceProvider","logString","registerCoreComponents","sdkVersion","firebase$1"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/index.esm-h2kZ9fZN.js b/excalidraw/excalidraw-app/build/assets/index.esm-h2kZ9fZN.js deleted file mode 100644 index ef833e4..0000000 --- a/excalidraw/excalidraw-app/build/assets/index.esm-h2kZ9fZN.js +++ /dev/null @@ -1,1081 +0,0 @@ -import{g as Ei,i as Sh,a as Dh,b as Nh,c as Ah,d as Ch,e as kh,h as X,L as Ue,j as xh,C as Rh,f as Oh}from"./index.esm-J35DBGFx.js";import{_ as C,f as $,d as g,e as m}from"./index-2K3MavtT.js";/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var Ti=function(e,t){return Ti=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Ti(e,t)};function Ph(e,t){Ti(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Ou(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var Lh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},S,Ji=Ji||{},R=Lh||self;function lr(){}function _i(e){var t=typeof e;return t=t!="object"?t:e?Array.isArray(e)?"array":t:"null",t=="array"||t=="object"&&typeof e.length=="number"}function Ln(e){var t=typeof e;return t=="object"&&e!=null||t=="function"}function Mh(e){return Object.prototype.hasOwnProperty.call(e,ci)&&e[ci]||(e[ci]=++Fh)}var ci="closure_uid_"+(1e9*Math.random()>>>0),Fh=0;function Vh(e,t,n){return e.call.apply(e.bind,arguments)}function Uh(e,t,n){if(!e)throw Error();if(2t?null:typeof e=="string"?e.charAt(t):e[t]}function fs(e){return Array.prototype.concat.apply([],arguments)}function Zi(e){var t=e.length;if(0t?1:0}var pt;t:{var ds=R.navigator;if(ds){var ys=ds.userAgent;if(ys){pt=ys;break t}}pt=""}function to(e,t,n){for(var r in e)t.call(n,e[r],r,e)}function Mu(e){var t={};for(var n in e)t[n]=e[n];return t}var vs="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function Fu(e,t){for(var n,r,i=1;iparseFloat(li)){pr=String(pi);break t}}pr=li}var zh={};function Bu(e){return jh(e,function(){for(var t=0,n=ps(String(pr)).split("."),r=ps(String(e)).split("."),i=Math.max(n.length,r.length),o=0;t==0&&o=e.keyCode)&&(e.keyCode=-1)}catch{}};var Mn="closure_listenable_"+(1e6*Math.random()|0),Wh=0;function Xh(e,t,n,r,i){this.listener=e,this.proxy=null,this.src=t,this.type=n,this.capture=!!r,this.ca=i,this.key=++Wh,this.Y=this.Z=!1}function Mr(e){e.Y=!0,e.listener=null,e.proxy=null,e.src=null,e.ca=null}function Fr(e){this.src=e,this.a={},this.b=0}Fr.prototype.add=function(e,t,n,r,i){var o=e.toString();e=this.a[o],e||(e=this.a[o]=[],this.b++);var s=Ai(e,t,r,i);return-1>>0);function uo(e){return typeof e=="function"?e:(e[yi]||(e[yi]=function(t){return e.handleEvent(t)}),e[yi])}function At(){ue.call(this),this.c=new Fr(this),this.J=this,this.C=null}vt(At,ue);At.prototype[Mn]=!0;S=At.prototype;S.addEventListener=function(e,t,n,r){io(this,e,t,n,r)};S.removeEventListener=function(e,t,n,r){zu(this,e,t,n,r)};function rt(e,t){var n,r=e.C;if(r)for(n=[];r;r=r.C)n.push(r);if(e=e.J,r=t.type||t,typeof t=="string")t=new at(t,e);else if(t instanceof at)t.target=t.target||e;else{var i=t;t=new at(r,e),Fu(t,i)}if(i=!0,n)for(var o=n.length-1;0<=o;o--){var s=t.a=n[o];i=Zn(s,r,!0,t)&&i}if(s=t.a=e,i=Zn(s,r,!0,t)&&i,i=Zn(s,r,!1,t)&&i,n)for(o=0;ot.b&&(t.b++,e.next=t.a,t.a=e)}ki=!1}function Vr(e,t){At.call(this),this.b=e||1,this.a=t||R,this.f=ut(this.Za,this),this.g=qt()}vt(Vr,At);S=Vr.prototype;S.aa=!1;S.M=null;S.Za=function(){if(this.aa){var e=qt()-this.g;0r.length)){var i=r[1];if(Array.isArray(i)&&!(1>i.length)){var o=i[0];if(o!="noop"&&o!="stop"&&o!="close")for(var s=1;st||t==3&&!Si&&!this.a.$())){this.A||t!=4||n==7||(n==8||0>=r?In(3):In(2)),Br(this);var i=this.a.W();this.N=i;var o=this.a.$();if(this.b=i==200,ol(this.c,this.m,this.l,this.f,this.S,t,i),this.b){if(this.U&&!this.C){e:{if(this.a){var s,u=this.a;if((s=u.a?u.a.getResponseHeader("X-HTTP-Initial-Response"):null)&&!fr(s)){var a=s;break e}}a=null}if(a)Le(this.c,this.f,a,"Initial handshake response via X-HTTP-Initial-Response"),this.C=!0,Oi(this,a);else{this.b=!1,this.h=3,dt(12),Fe(this),dr(this);break t}}this.I?(ha(this,t,o),Si&&this.b&&t==3&&(Ju(this.J,this.R,"tick",this.Wa),this.R.start())):(Le(this.c,this.f,o,null),Oi(this,o)),t==4&&Fe(this),this.b&&!this.A&&(t==4?Ca(this.g,this):(this.b=!1,qn(this)))}else i==400&&0t.length?xi:(t=t.substr(r,n),e.D=r+n,t)))}S.cancel=function(){this.A=!0,Fe(this)};function qn(e){e.T=qt()+e.P,la(e,e.P)}function la(e,t){if(e.o!=null)throw Error("WatchDog timer not null");e.o=Fn(ut(e.Va,e),t)}function Br(e){e.o&&(R.clearTimeout(e.o),e.o=null)}S.Va=function(){this.o=null;var e=qt();0<=e-this.T?(sl(this.c,this.l),this.H!=2&&(In(),dt(17)),Fe(this),this.h=2,dr(this)):la(this,this.T-e)};function dr(e){e.g.v==0||e.A||Ca(e.g,e)}function Fe(e){Br(e);var t=e.F;t&&typeof t.ja=="function"&&t.ja(),e.F=null,ho(e.R),Zu(e.J),e.a&&(t=e.a,e.a=null,t.abort(),t.ja())}function Oi(e,t){try{var n=e.g;if(n.v!=0&&(n.a==e||Pi(n.b,e))){if(n.I=e.N,!e.C&&Pi(n.b,e)&&n.v==3){try{var r=n.ka.a.parse(t)}catch{r=null}if(Array.isArray(r)&&r.length==3){var i=r;if(i[0]==0){t:if(!n.j){if(n.a)if(n.a.u+3e3i[2]&&n.H&&n.o==0&&!n.m&&(n.m=Fn(ut(n.Sa,n),6e3));if(1>=ga(n.b)&&n.ea){try{n.ea()}catch{}n.ea=void 0}}else pe(n,11)}else if((e.C||n.a==e)&&gr(n),!fr(t))for(t=r=n.ka.a.parse(t),r=0;rt)throw Error("Bad port number "+t);e.h=t}else e.h=null}function Es(e,t,n){t instanceof En?(e.b=t,wl(e.b,e.a)):(n||(t=dn(t,ml)),e.b=new En(t,e.a))}function K(e,t,n){e.b.set(t,n)}function jr(e){return K(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^qt()).toString(36)),e}function fl(e){return e instanceof be?zt(e):new be(e,void 0)}function pl(e,t,n,r){var i=new be(null,void 0);return e&&yr(i,e),t&&vr(i,t),n&&mr(i,n),r&&(i.g=r),i}function vn(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function dn(e,t,n){return typeof e=="string"?(e=encodeURI(e).replace(t,dl),n&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function dl(e){return e=e.charCodeAt(0),"%"+(e>>4&15).toString(16)+(e&15).toString(16)}var Ts=/[#\/\?@]/g,yl=/[#\?:]/g,vl=/[#\?]/g,ml=/[#\?@]/g,gl=/#/g;function En(e,t){this.b=this.a=null,this.c=e||null,this.f=!!t}function ae(e){e.a||(e.a=new nn,e.b=0,e.c&&ll(e.c,function(t,n){e.add(decodeURIComponent(t.replace(/\+/g," ")),n)}))}S=En.prototype;S.add=function(e,t){ae(this),this.c=null,e=rn(this,e);var n=this.a.get(e);return n||this.a.set(e,n=[]),n.push(t),this.b+=1,this};function pa(e,t){ae(e),t=rn(e,t),we(e.a.b,t)&&(e.c=null,e.b-=e.a.get(t).length,e=e.a,we(e.b,t)&&(delete e.b[t],e.c--,e.a.length>2*e.c&&mo(e)))}function da(e,t){return ae(e),t=rn(e,t),we(e.a.b,t)}S.forEach=function(e,t){ae(this),this.a.forEach(function(n,r){Lu(n,function(i){e.call(t,i,r,this)},this)},this)};S.L=function(){ae(this);for(var e=this.a.K(),t=this.a.L(),n=[],r=0;r=e.f:!1}function ga(e){return e.b?1:e.a?e.a.size:0}function Pi(e,t){return e.b?e.b==t:e.a?e.a.has(t):!1}function go(e,t){e.a?e.a.add(t):e.b=t}function wa(e,t){e.b&&e.b==t?e.b=null:e.a&&e.a.has(t)&&e.a.delete(t)}va.prototype.cancel=function(){var e,t;if(this.c=ba(this),this.b)this.b.cancel(),this.b=null;else if(this.a&&this.a.size!==0){try{for(var n=Ou(this.a.values()),r=n.next();!r.done;r=n.next()){var i=r.value;i.cancel()}}catch(o){e={error:o}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.a.clear()}};function ba(e){var t,n;if(e.b!=null)return e.c.concat(e.b.s);if(e.a!=null&&e.a.size!==0){var r=e.c;try{for(var i=Ou(e.a.values()),o=i.next();!o.done;o=i.next()){var s=o.value;r=r.concat(s.s)}}catch(u){t={error:u}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return r}return Zi(e.c)}function wo(){}wo.prototype.stringify=function(e){return R.JSON.stringify(e,void 0)};wo.prototype.parse=function(e){return R.JSON.parse(e,void 0)};function El(){this.a=new wo}function Tl(e,t,n){var r=n||"";try{vo(e,function(i,o){var s=i;Ln(i)&&(s=ao(i)),t.push(r+o+"="+encodeURIComponent(s))})}catch(i){throw t.push(r+"type="+encodeURIComponent("_badmap")),i}}function _l(e,t){var n=new fo;if(R.Image){var r=new Image;r.onload=Jn(tr,n,r,"TestLoadImage: loaded",!0,t),r.onerror=Jn(tr,n,r,"TestLoadImage: error",!1,t),r.onabort=Jn(tr,n,r,"TestLoadImage: abort",!1,t),r.ontimeout=Jn(tr,n,r,"TestLoadImage: timeout",!1,t),R.setTimeout(function(){r.ontimeout&&r.ontimeout()},1e4),r.src=e}else t(!1)}function tr(e,t,n,r,i){try{t.onload=null,t.onerror=null,t.onabort=null,t.ontimeout=null,i(r)}catch{}}var Sl=R.JSON.parse;function Z(e){At.call(this),this.headers=new nn,this.H=e||null,this.b=!1,this.s=this.a=null,this.B="",this.h=0,this.f="",this.g=this.A=this.l=this.u=!1,this.o=0,this.m=null,this.I=Dl,this.D=this.F=!1}vt(Z,At);var Dl="",Nl=/^https?$/i,Al=["POST","PUT"];S=Z.prototype;S.ba=function(e,t,n,r){if(this.a)throw Error("[goog.net.XhrIo] Object is active with another request="+this.B+"; newUri="+e);t=t?t.toUpperCase():"GET",this.B=e,this.f="",this.h=0,this.u=!1,this.b=!0,this.a=new XMLHttpRequest,this.s=this.H?Is(this.H):Is(sa),this.a.onreadystatechange=ut(this.za,this);try{this.A=!0,this.a.open(t,String(e),!0),this.A=!1}catch(o){_s(this,o);return}e=n||"";var i=new nn(this.headers);r&&vo(r,function(o,s){i.set(s,o)}),r=Bh(i.L()),n=R.FormData&&e instanceof R.FormData,!(0<=Pu(Al,t))||r||n||i.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),i.forEach(function(o,s){this.a.setRequestHeader(s,o)},this),this.I&&(this.a.responseType=this.I),"withCredentials"in this.a&&this.a.withCredentials!==this.F&&(this.a.withCredentials=this.F);try{Ta(this),0=e.b.f-(e.h?1:0)?!1:e.h?(e.g=t.s.concat(e.g),!0):e.v==1||e.v==2||e.u>=(e.La?0:e.Ma)?!1:(e.h=Fn(ut(e.Ba,e,t),ka(e,e.u)),e.u++,!0)}S.Ba=function(e){if(this.h)if(this.h=null,this.v==1){if(!e){this.R=Math.floor(1e5*Math.random()),e=this.R++;var t=new Un(this,this.c,e,void 0),n=this.l;this.O&&(n?(n=Mu(n),Fu(n,this.O)):n=this.O),this.i===null&&(t.B=n);var r;if(this.da)t:{for(var i=r=0;ic)o=Math.max(0,i[a].b-100),u=!1;else try{Tl(h,s,"req"+c+"_")}catch{r&&r(h)}}if(u){r=s.join("&");break t}}return e=e.g.splice(0,n),t.s=e,r}function Na(e){e.a||e.j||(e.T=1,Wu(e.Aa,e),e.o=0)}function Eo(e){return e.a||e.j||3<=e.o?!1:(e.T++,e.j=Fn(ut(e.Aa,e),ka(e,e.o)),e.o++,!0)}S.Aa=function(){if(this.j=null,Aa(this),this.U&&!(this.F||this.a==null||0>=this.N)){var e=2*this.N;this.c.info("BP detection timer enabled: "+e),this.s=Fn(ut(this.Ta,this),e)}};S.Ta=function(){this.s&&(this.s=null,this.c.info("BP detection timeout reached."),this.c.info("Buffering proxy detected and switch to long-polling!"),this.H=!1,this.F=!0,dt(10),Gr(this),Aa(this))};function To(e){e.s!=null&&(R.clearTimeout(e.s),e.s=null)}function Aa(e){e.a=new Un(e,e.c,"rpc",e.T),e.i===null&&(e.a.B=e.l),e.a.O=0;var t=zt(e.la);K(t,"RID","rpc"),K(t,"SID",e.J),K(t,"CI",e.H?"0":"1"),K(t,"AID",e.P),Bn(e,t),K(t,"TYPE","xmlhttp"),e.i&&e.l&&bo(t,e.i,e.l),e.D&&e.a.setTimeout(e.D);var n=e.a;e=e.ga,n.H=1,n.i=jr(zt(t)),n.j=null,n.I=!0,ca(n,e)}S.Sa=function(){this.m!=null&&(this.m=null,Gr(this),Eo(this),dt(19))};function gr(e){e.m!=null&&(R.clearTimeout(e.m),e.m=null)}function Ca(e,t){var n=null;if(e.a==t){gr(e),To(e),e.a=null;var r=2}else if(Pi(e.b,t))n=t.s,wa(e.b,t),r=1;else return;if(e.I=t.N,e.v!=0){if(t.b)if(r==1){n=t.j?t.j.length:0,t=qt()-t.u;var i=e.u;r=Ur(),rt(r,new na(r)),zr(e)}else Na(e);else if(i=t.h,i==3||i==0&&0t?1:0}function qe(e,t,n){return e.length===t.length&&e.every(function(r,i){return n(r,t[i])})}function Va(e){return e+"\0"}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var gt=function(){function e(t,n){if(this.seconds=t,this.nanoseconds=n,n<0)throw new w(d.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(n>=1e9)throw new w(d.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(t<-62135596800)throw new w(d.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new w(d.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}return e.now=function(){return e.fromMillis(Date.now())},e.fromDate=function(t){return e.fromMillis(t.getTime())},e.fromMillis=function(t){var n=Math.floor(t/1e3);return new e(n,1e6*(t-1e3*n))},e.prototype.toDate=function(){return new Date(this.toMillis())},e.prototype.toMillis=function(){return 1e3*this.seconds+this.nanoseconds/1e6},e.prototype._compareTo=function(t){return this.seconds===t.seconds?L(this.nanoseconds,t.nanoseconds):L(this.seconds,t.seconds)},e.prototype.isEqual=function(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds},e.prototype.toString=function(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"},e.prototype.toJSON=function(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}},e.prototype.valueOf=function(){var t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")},e}(),P=function(){function e(t){this.timestamp=t}return e.fromTimestamp=function(t){return new e(t)},e.min=function(){return new e(new gt(0,0))},e.prototype.compareTo=function(t){return this.timestamp._compareTo(t.timestamp)},e.prototype.isEqual=function(t){return this.timestamp.isEqual(t.timestamp)},e.prototype.toMicroseconds=function(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3},e.prototype.toString=function(){return"SnapshotVersion("+this.timestamp.toString()+")"},e.prototype.toTimestamp=function(){return this.timestamp},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *//** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Ns(e){var t=0;for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function jn(e,t){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(n,e[n])}function Ua(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var qa=function(){function e(t,n,r){n===void 0?n=0:n>t.length&&D(),r===void 0?r=t.length-n:r>t.length-n&&D(),this.segments=t,this.offset=n,this.len=r}return Object.defineProperty(e.prototype,"length",{get:function(){return this.len},enumerable:!1,configurable:!0}),e.prototype.isEqual=function(t){return e.comparator(this,t)===0},e.prototype.child=function(t){var n=this.segments.slice(this.offset,this.limit());return t instanceof e?t.forEach(function(r){n.push(r)}):n.push(t),this.construct(n)},e.prototype.limit=function(){return this.offset+this.length},e.prototype.popFirst=function(t){return t=t===void 0?1:t,this.construct(this.segments,this.offset+t,this.length-t)},e.prototype.popLast=function(){return this.construct(this.segments,this.offset,this.length-1)},e.prototype.firstSegment=function(){return this.segments[this.offset]},e.prototype.lastSegment=function(){return this.get(this.length-1)},e.prototype.get=function(t){return this.segments[this.offset+t]},e.prototype.isEmpty=function(){return this.length===0},e.prototype.isPrefixOf=function(t){if(t.lengths)return 1}return t.lengthn.length?1:0},e}(),V=function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return C(t,e),t.prototype.construct=function(n,r,i){return new t(n,r,i)},t.prototype.canonicalString=function(){return this.toArray().join("/")},t.prototype.toString=function(){return this.canonicalString()},t.fromString=function(){for(var n=[],r=0;r=0)throw new w(d.INVALID_ARGUMENT,"Invalid segment ("+u+"). Paths must not contain // in them.");i.push.apply(i,u.split("/").filter(function(a){return a.length>0}))}return new t(i)},t.emptyPath=function(){return new t([])},t}(qa),ql=/^[_a-zA-Z][_a-zA-Z0-9]*$/,xt=function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return C(t,e),t.prototype.construct=function(n,r,i){return new t(n,r,i)},t.isValidIdentifier=function(n){return ql.test(n)},t.prototype.canonicalString=function(){return this.toArray().map(function(n){return n=n.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),t.isValidIdentifier(n)||(n="`"+n+"`"),n}).join(".")},t.prototype.toString=function(){return this.canonicalString()},t.prototype.isKeyField=function(){return this.length===1&&this.get(0)==="__name__"},t.keyField=function(){return new t(["__name__"])},t.fromServerFormat=function(n){for(var r=[],i="",o=0,s=function(){if(i.length===0)throw new w(d.INVALID_ARGUMENT,"Invalid field path ("+n+"). Paths must not be empty, begin with '.', end with '.', or contain '..'");r.push(i),i=""},u=!1;o=Number.MIN_SAFE_INTEGER}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var N=function(){function e(t){this.path=t}return e.fromPath=function(t){return new e(V.fromString(t))},e.fromName=function(t){return new e(V.fromString(t).popFirst(5))},e.prototype.hasCollectionId=function(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t},e.prototype.isEqual=function(t){return t!==null&&V.comparator(this.path,t.path)===0},e.prototype.toString=function(){return this.path.toString()},e.comparator=function(t,n){return V.comparator(t.path,n.path)},e.isDocumentKey=function(t){return t.length%2==0},e.fromSegments=function(t){return new e(new V(t.slice()))},e}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function oe(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?So(e)?4:10:D()}function Vt(e,t){var n=oe(e);if(n!==oe(t))return!1;switch(n){case 0:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return Tn(e).isEqual(Tn(t));case 3:return function(r,i){if(typeof r.timestampValue=="string"&&typeof i.timestampValue=="string"&&r.timestampValue.length===i.timestampValue.length)return r.timestampValue===i.timestampValue;var o=ie(r.timestampValue),s=ie(i.timestampValue);return o.seconds===s.seconds&&o.nanos===s.nanos}(e,t);case 5:return e.stringValue===t.stringValue;case 6:return function(r,i){return je(r.bytesValue).isEqual(je(i.bytesValue))}(e,t);case 7:return e.referenceValue===t.referenceValue;case 8:return function(r,i){return H(r.geoPointValue.latitude)===H(i.geoPointValue.latitude)&&H(r.geoPointValue.longitude)===H(i.geoPointValue.longitude)}(e,t);case 2:return function(r,i){if("integerValue"in r&&"integerValue"in i)return H(r.integerValue)===H(i.integerValue);if("doubleValue"in r&&"doubleValue"in i){var o=H(r.doubleValue),s=H(i.doubleValue);return o===s?br(o)===br(s):isNaN(o)&&isNaN(s)}return!1}(e,t);case 9:return qe(e.arrayValue.values||[],t.arrayValue.values||[],Vt);case 10:return function(r,i){var o=r.mapValue.fields||{},s=i.mapValue.fields||{};if(Ns(o)!==Ns(s))return!1;for(var u in o)if(o.hasOwnProperty(u)&&(s[u]===void 0||!Vt(o[u],s[u])))return!1;return!0}(e,t);default:return D()}}function _n(e,t){return(e.values||[]).find(function(n){return Vt(n,t)})!==void 0}function Ke(e,t){var n=oe(e),r=oe(t);if(n!==r)return L(n,r);switch(n){case 0:return 0;case 1:return L(e.booleanValue,t.booleanValue);case 2:return function(i,o){var s=H(i.integerValue||i.doubleValue),u=H(o.integerValue||o.doubleValue);return su?1:s===u?0:isNaN(s)?isNaN(u)?0:-1:1}(e,t);case 3:return As(e.timestampValue,t.timestampValue);case 4:return As(Tn(e),Tn(t));case 5:return L(e.stringValue,t.stringValue);case 6:return function(i,o){var s=je(i),u=je(o);return s.compareTo(u)}(e.bytesValue,t.bytesValue);case 7:return function(i,o){for(var s=i.split("/"),u=o.split("/"),a=0;a":return n>0;case">=":return n>=0;default:return D()}},t.prototype.g=function(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0},t}(function(){}),Kl=function(e){function t(n,r,i){var o=this;return(o=e.call(this,n,r,i)||this).key=N.fromName(i.referenceValue),o}return C(t,e),t.prototype.matches=function(n){var r=N.comparator(n.key,this.key);return this.m(r)},t}(Dt),Gl=function(e){function t(n,r){var i=this;return(i=e.call(this,n,"in",r)||this).keys=Ga("in",r),i}return C(t,e),t.prototype.matches=function(n){return this.keys.some(function(r){return r.isEqual(n.key)})},t}(Dt),zl=function(e){function t(n,r){var i=this;return(i=e.call(this,n,"not-in",r)||this).keys=Ga("not-in",r),i}return C(t,e),t.prototype.matches=function(n){return!this.keys.some(function(r){return r.isEqual(n.key)})},t}(Dt);function Ga(e,t){var n;return(((n=t.arrayValue)===null||n===void 0?void 0:n.values)||[]).map(function(r){return N.fromName(r.referenceValue)})}var Ql=function(e){function t(n,r){return e.call(this,n,"array-contains",r)||this}return C(t,e),t.prototype.matches=function(n){var r=n.data.field(this.field);return No(r)&&_n(r.arrayValue,this.value)},t}(Dt),$l=function(e){function t(n,r){return e.call(this,n,"in",r)||this}return C(t,e),t.prototype.matches=function(n){var r=n.data.field(this.field);return r!==null&&_n(this.value.arrayValue,r)},t}(Dt),Hl=function(e){function t(n,r){return e.call(this,n,"not-in",r)||this}return C(t,e),t.prototype.matches=function(n){if(_n(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;var r=n.data.field(this.field);return r!==null&&!_n(this.value.arrayValue,r)},t}(Dt),Wl=function(e){function t(n,r){return e.call(this,n,"array-contains-any",r)||this}return C(t,e),t.prototype.matches=function(n){var r=this,i=n.data.field(this.field);return!(!No(i)||!i.arrayValue.values)&&i.arrayValue.values.some(function(o){return _n(r.value.arrayValue,o)})},t}(Dt),Sn=function(e,t){this.position=e,this.before=t};function Tr(e){return(e.before?"b":"a")+":"+e.position.map(function(t){return Do(t)}).join(",")}var Ve=function(e,t){t===void 0&&(t="asc"),this.field=e,this.dir=t};function Xl(e,t){return e.dir===t.dir&&e.field.isEqual(t.field)}function Rs(e,t,n){for(var r=0,i=0;i0?e.explicitOrderBy[0].field:null}function Co(e){for(var t=0,n=e.filters;t0?t.explicitOrderBy[t.explicitOrderBy.length-1].dir:"asc";t.p.push(new Ve(xt.keyField(),a))}}}return t.p}function Ut(e){var t=_(e);if(!t.T)if(t.limitType==="F")t.T=xs(t.path,t.collectionGroup,Ge(t),t.filters,t.limit,t.startAt,t.endAt);else{for(var n=[],r=0,i=Ge(t);r0&&(n+=", orderBy: ["+t.orderBy.map(function(r){return function(i){return i.field.canonicalString()+" ("+i.dir+")"}(r)}).join(", ")+"]"),t.startAt&&(n+=", startAt: "+Tr(t.startAt)),t.endAt&&(n+=", endAt: "+Tr(t.endAt)),"Target("+n+")"}(Ut(e))+"; limitType="+e.limitType+")"}function Qn(e,t){return t.isFoundDocument()&&function(n,r){var i=r.key.path;return n.collectionGroup!==null?r.key.hasCollectionId(n.collectionGroup)&&n.path.isPrefixOf(i):N.isDocumentKey(n.path)?n.path.isEqual(i):n.path.isImmediateParentOf(i)}(e,t)&&function(n,r){for(var i=0,o=n.explicitOrderBy;i0&&(n=n.right)}return null},e.prototype.indexOf=function(t){for(var n=0,r=this.root;!r.isEmpty();){var i=this.comparator(t,r.key);if(i===0)return n+r.left.size;i<0?r=r.left:(n+=r.left.size+1,r=r.right)}return-1},e.prototype.isEmpty=function(){return this.root.isEmpty()},Object.defineProperty(e.prototype,"size",{get:function(){return this.root.size},enumerable:!1,configurable:!0}),e.prototype.minKey=function(){return this.root.minKey()},e.prototype.maxKey=function(){return this.root.maxKey()},e.prototype.inorderTraversal=function(t){return this.root.inorderTraversal(t)},e.prototype.forEach=function(t){this.inorderTraversal(function(n,r){return t(n,r),!1})},e.prototype.toString=function(){var t=[];return this.inorderTraversal(function(n,r){return t.push(n+":"+r),!1}),"{"+t.join(", ")+"}"},e.prototype.reverseTraversal=function(t){return this.root.reverseTraversal(t)},e.prototype.getIterator=function(){return new nr(this.root,null,this.comparator,!1)},e.prototype.getIteratorFrom=function(t){return new nr(this.root,t,this.comparator,!1)},e.prototype.getReverseIterator=function(){return new nr(this.root,null,this.comparator,!0)},e.prototype.getReverseIteratorFrom=function(t){return new nr(this.root,t,this.comparator,!0)},e}(),nr=function(){function e(t,n,r,i){this.isReverse=i,this.nodeStack=[];for(var o=1;!t.isEmpty();)if(o=n?r(t.key,n):1,i&&(o*=-1),o<0)t=this.isReverse?t.left:t.right;else{if(o===0){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}return e.prototype.getNext=function(){var t=this.nodeStack.pop(),n={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return n},e.prototype.hasNext=function(){return this.nodeStack.length>0},e.prototype.peek=function(){if(this.nodeStack.length===0)return null;var t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}},e}(),Xt=function(){function e(t,n,r,i,o){this.key=t,this.value=n,this.color=r??e.RED,this.left=i??e.EMPTY,this.right=o??e.EMPTY,this.size=this.left.size+1+this.right.size}return e.prototype.copy=function(t,n,r,i,o){return new e(t??this.key,n??this.value,r??this.color,i??this.left,o??this.right)},e.prototype.isEmpty=function(){return!1},e.prototype.inorderTraversal=function(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)},e.prototype.reverseTraversal=function(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)},e.prototype.min=function(){return this.left.isEmpty()?this:this.left.min()},e.prototype.minKey=function(){return this.min().key},e.prototype.maxKey=function(){return this.right.isEmpty()?this.key:this.right.maxKey()},e.prototype.insert=function(t,n,r){var i=this,o=r(t,i.key);return(i=o<0?i.copy(null,null,null,i.left.insert(t,n,r),null):o===0?i.copy(null,n,null,null,null):i.copy(null,null,null,null,i.right.insert(t,n,r))).fixUp()},e.prototype.removeMin=function(){if(this.left.isEmpty())return e.EMPTY;var t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),(t=t.copy(null,null,null,t.left.removeMin(),null)).fixUp()},e.prototype.remove=function(t,n){var r,i=this;if(n(t,i.key)<0)i.left.isEmpty()||i.left.isRed()||i.left.left.isRed()||(i=i.moveRedLeft()),i=i.copy(null,null,null,i.left.remove(t,n),null);else{if(i.left.isRed()&&(i=i.rotateRight()),i.right.isEmpty()||i.right.isRed()||i.right.left.isRed()||(i=i.moveRedRight()),n(t,i.key)===0){if(i.right.isEmpty())return e.EMPTY;r=i.right.min(),i=i.copy(r.key,r.value,null,null,i.right.removeMin())}i=i.copy(null,null,null,null,i.right.remove(t,n))}return i.fixUp()},e.prototype.isRed=function(){return this.color},e.prototype.fixUp=function(){var t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t},e.prototype.moveRedLeft=function(){var t=this.colorFlip();return t.right.left.isRed()&&(t=(t=(t=t.copy(null,null,null,null,t.right.rotateRight())).rotateLeft()).colorFlip()),t},e.prototype.moveRedRight=function(){var t=this.colorFlip();return t.left.left.isRed()&&(t=(t=t.rotateRight()).colorFlip()),t},e.prototype.rotateLeft=function(){var t=this.copy(null,null,e.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)},e.prototype.rotateRight=function(){var t=this.copy(null,null,e.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)},e.prototype.colorFlip=function(){var t=this.left.copy(null,null,!this.left.color,null,null),n=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,n)},e.prototype.checkMaxDepth=function(){var t=this.check();return Math.pow(2,t)<=this.size+1},e.prototype.check=function(){if(this.isRed()&&this.left.isRed()||this.right.isRed())throw D();var t=this.left.check();if(t!==this.right.check())throw D();return t+(this.isRed()?0:1)},e}();Xt.EMPTY=null,Xt.RED=!0,Xt.BLACK=!1,Xt.EMPTY=new(function(){function e(){this.size=0}return Object.defineProperty(e.prototype,"key",{get:function(){throw D()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){throw D()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){throw D()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"left",{get:function(){throw D()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"right",{get:function(){throw D()},enumerable:!1,configurable:!0}),e.prototype.copy=function(t,n,r,i,o){return this},e.prototype.insert=function(t,n,r){return new Xt(t,n)},e.prototype.remove=function(t,n){return this},e.prototype.isEmpty=function(){return!0},e.prototype.inorderTraversal=function(t){return!1},e.prototype.reverseTraversal=function(t){return!1},e.prototype.minKey=function(){return null},e.prototype.maxKey=function(){return null},e.prototype.isRed=function(){return!1},e.prototype.checkMaxDepth=function(){return!0},e.prototype.check=function(){return 0},e}());/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var J=function(){function e(t){this.comparator=t,this.data=new ht(this.comparator)}return e.prototype.has=function(t){return this.data.get(t)!==null},e.prototype.first=function(){return this.data.minKey()},e.prototype.last=function(){return this.data.maxKey()},Object.defineProperty(e.prototype,"size",{get:function(){return this.data.size},enumerable:!1,configurable:!0}),e.prototype.indexOf=function(t){return this.data.indexOf(t)},e.prototype.forEach=function(t){this.data.inorderTraversal(function(n,r){return t(n),!1})},e.prototype.forEachInRange=function(t,n){for(var r=this.data.getIteratorFrom(t[0]);r.hasNext();){var i=r.getNext();if(this.comparator(i.key,t[1])>=0)return;n(i.key)}},e.prototype.forEachWhile=function(t,n){var r;for(r=n!==void 0?this.data.getIteratorFrom(n):this.data.getIterator();r.hasNext();)if(!t(r.getNext().key))return},e.prototype.firstAfterOrEqual=function(t){var n=this.data.getIteratorFrom(t);return n.hasNext()?n.getNext().key:null},e.prototype.getIterator=function(){return new Us(this.data.getIterator())},e.prototype.getIteratorFrom=function(t){return new Us(this.data.getIteratorFrom(t))},e.prototype.add=function(t){return this.copy(this.data.remove(t).insert(t,!0))},e.prototype.delete=function(t){return this.has(t)?this.copy(this.data.remove(t)):this},e.prototype.isEmpty=function(){return this.data.isEmpty()},e.prototype.unionWith=function(t){var n=this;return n.size0&&(this.F=!0,this.C=t)},e.prototype.M=function(){var t=B(),n=B(),r=B();return this.D.forEach(function(i,o){switch(o){case 0:t=t.add(i);break;case 2:n=n.add(i);break;case 1:r=r.add(i);break;default:D()}}),new Oo(this.C,this.N,t,n,r)},e.prototype.L=function(){this.F=!1,this.D=js()},e.prototype.B=function(t,n){this.F=!0,this.D=this.D.insert(t,n)},e.prototype.q=function(t){this.F=!0,this.D=this.D.remove(t)},e.prototype.U=function(){this.S+=1},e.prototype.K=function(){this.S-=1},e.prototype.j=function(){this.F=!0,this.N=!0},e}(),lf=function(){function e(t){this.W=t,this.G=new Map,this.H=Ot(),this.J=Bs(),this.Y=new J(L)}return e.prototype.X=function(t){for(var n=0,r=t.v;n0?t.targetIds.forEach(n):this.G.forEach(function(i,o){r.st(o)&&n(o)})},e.prototype.rt=function(t){var n=t.targetId,r=t.V.count,i=this.ot(n);if(i){var o=i.target;if(Er(o))if(r===0){var s=new N(o.path);this.tt(n,s,ct.newNoDocument(s,P.min()))}else x(r===1);else this.ct(n)!==r&&(this.it(n),this.Y=this.Y.add(n))}},e.prototype.ut=function(t){var n=this,r=new Map;this.G.forEach(function(s,u){var a=n.ot(u);if(a){if(s.current&&Er(a.target)){var c=new N(a.target.path);n.H.get(c)!==null||n.at(u,c)||n.tt(u,c,ct.newNoDocument(c,t))}s.O&&(r.set(u,s.M()),s.L())}});var i=B();this.J.forEach(function(s,u){var a=!0;u.forEachWhile(function(c){var h=n.ot(c);return!h||h.purpose===2||(a=!1,!1)}),a&&(i=i.add(s))});var o=new Ro(t,r,this.Y,this.H,i);return this.H=Ot(),this.J=Bs(),this.Y=new J(L),o},e.prototype.Z=function(t,n){if(this.st(t)){var r=this.at(t,n.key)?2:0;this.nt(t).B(n.key,r),this.H=this.H.insert(n.key,n),this.J=this.J.insert(n.key,this.ht(n.key).add(t))}},e.prototype.tt=function(t,n,r){if(this.st(t)){var i=this.nt(t);this.at(t,n)?i.B(n,1):i.q(n),this.J=this.J.insert(n,this.ht(n).delete(t)),r&&(this.H=this.H.insert(n,r))}},e.prototype.removeTarget=function(t){this.G.delete(t)},e.prototype.ct=function(t){var n=this.nt(t).M();return this.W.getRemoteKeysForTarget(t).size+n.addedDocuments.size-n.removedDocuments.size},e.prototype.U=function(t){this.nt(t).U()},e.prototype.nt=function(t){var n=this.G.get(t);return n||(n=new qs,this.G.set(t,n)),n},e.prototype.ht=function(t){var n=this.J.get(t);return n||(n=new J(L),this.J=this.J.insert(t,n)),n},e.prototype.st=function(t){var n=this.ot(t)!==null;return n||I("WatchChangeAggregator","Detected inactive target",t),n},e.prototype.ot=function(t){var n=this.G.get(t);return n&&n.k?null:this.W.lt(t)},e.prototype.it=function(t){var n=this;this.G.set(t,new qs),this.W.getRemoteKeysForTarget(t).forEach(function(r){n.tt(t,r,null)})},e.prototype.at=function(t,n){return this.W.getRemoteKeysForTarget(t).has(n)},e}();function Bs(){return new ht(N.comparator)}function js(){return new ht(N.comparator)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var ff={asc:"ASCENDING",desc:"DESCENDING"},pf={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},df=function(e,t){this.databaseId=e,this.I=t};function Dn(e,t){return e.I?new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")+"."+("000000000"+t.nanoseconds).slice(-9)+"Z":{seconds:""+t.seconds,nanos:t.nanoseconds}}function uc(e,t){return e.I?t.toBase64():t.toUint8Array()}function yf(e,t){return Dn(e,t.toTimestamp())}function yt(e){return x(!!e),P.fromTimestamp(function(t){var n=ie(t);return new gt(n.seconds,n.nanos)}(e))}function Po(e,t){return function(n){return new V(["projects",n.projectId,"databases",n.database])}(e).child("documents").child(t).canonicalString()}function ac(e){var t=V.fromString(e);return x(yc(t)),t}function Nn(e,t){return Po(e.databaseId,t.path)}function jt(e,t){var n=ac(t);if(n.get(1)!==e.databaseId.projectId)throw new w(d.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+e.databaseId.projectId);if(n.get(3)!==e.databaseId.database)throw new w(d.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+e.databaseId.database);return new N(hc(n))}function Ki(e,t){return Po(e.databaseId,t)}function cc(e){var t=ac(e);return t.length===4?V.emptyPath():hc(t)}function An(e){return new V(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function hc(e){return x(e.length>4&&e.get(4)==="documents"),e.popFirst(5)}function Ks(e,t,n){return{name:Nn(e,t),fields:n.toProto().mapValue.fields}}function vf(e,t,n){var r=jt(e,t.name),i=yt(t.updateTime),o=new _t({mapValue:{fields:t.fields}}),s=ct.newFoundDocument(r,i,o);return n&&s.setHasCommittedMutations(),n?s.setHasCommittedMutations():s}function Sr(e,t){var n;if(t instanceof Hn)n={update:Ks(e,t.key,t.value)};else if(t instanceof Wn)n={delete:Nn(e,t.key)};else if(t instanceof ce)n={update:Ks(e,t.key,t.data),updateMask:If(t.fieldMask)};else{if(!(t instanceof xo))return D();n={verify:Nn(e,t.key)}}return t.fieldTransforms.length>0&&(n.updateTransforms=t.fieldTransforms.map(function(r){return function(i,o){var s=o.transform;if(s instanceof ze)return{fieldPath:o.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(s instanceof Ie)return{fieldPath:o.field.canonicalString(),appendMissingElements:{values:s.elements}};if(s instanceof Ee)return{fieldPath:o.field.canonicalString(),removeAllFromArray:{values:s.elements}};if(s instanceof Qe)return{fieldPath:o.field.canonicalString(),increment:s.A};throw D()}(0,r)})),t.precondition.isNone||(n.currentDocument=function(r,i){return i.updateTime!==void 0?{updateTime:yf(r,i.updateTime)}:i.exists!==void 0?{exists:i.exists}:D()}(e,t.precondition)),n}function Gs(e,t){var n=t.currentDocument?function(c){return c.updateTime!==void 0?st.updateTime(yt(c.updateTime)):c.exists!==void 0?st.exists(c.exists):st.none()}(t.currentDocument):st.none(),r=t.updateTransforms?t.updateTransforms.map(function(c){return function(h,l){var f=null;if("setToServerValue"in l)x(l.setToServerValue==="REQUEST_TIME"),f=new ze;else if("appendMissingElements"in l){var y=l.appendMissingElements.values||[];f=new Ie(y)}else if("removeAllFromArray"in l){var p=l.removeAllFromArray.values||[];f=new Ee(p)}else"increment"in l?f=new Qe(h,l.increment):D();var v=xt.fromServerFormat(l.fieldPath);return new $n(v,f)}(e,c)}):[];if(t.update){t.update.name;var i=jt(e,t.update.name),o=new _t({mapValue:{fields:t.update.fields}});if(t.updateMask){var s=function(c){var h=c.fieldPaths||[];return new Be(h.map(function(l){return xt.fromServerFormat(l)}))}(t.updateMask);return new ce(i,o,s,n,r)}return new Hn(i,o,n,r)}if(t.delete){var u=jt(e,t.delete);return new Wn(u,n)}if(t.verify){var a=jt(e,t.verify);return new xo(a,n)}return D()}function lc(e,t){return{documents:[Ki(e,t.path)]}}function fc(e,t){var n={structuredQuery:{}},r=t.path;t.collectionGroup!==null?(n.parent=Ki(e,r),n.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(n.parent=Ki(e,r.popLast()),n.structuredQuery.from=[{collectionId:r.lastSegment()}]);var i=function(u){if(u.length!==0){var a=u.map(function(c){return function(h){if(h.op==="=="){if(ks(h.value))return{unaryFilter:{field:xe(h.field),op:"IS_NAN"}};if(Cs(h.value))return{unaryFilter:{field:xe(h.field),op:"IS_NULL"}}}else if(h.op==="!="){if(ks(h.value))return{unaryFilter:{field:xe(h.field),op:"IS_NOT_NAN"}};if(Cs(h.value))return{unaryFilter:{field:xe(h.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:xe(h.field),op:gf(h.op),value:h.value}}}(c)});return a.length===1?a[0]:{compositeFilter:{op:"AND",filters:a}}}}(t.filters);i&&(n.structuredQuery.where=i);var o=function(u){if(u.length!==0)return u.map(function(a){return function(c){return{field:xe(c.field),direction:mf(c.dir)}}(a)})}(t.orderBy);o&&(n.structuredQuery.orderBy=o);var s=function(u,a){return u.I||Se(a)?a:{value:a}}(e,t.limit);return s!==null&&(n.structuredQuery.limit=s),t.startAt&&(n.structuredQuery.startAt=zs(t.startAt)),t.endAt&&(n.structuredQuery.endAt=zs(t.endAt)),n}function pc(e){var t=cc(e.parent),n=e.structuredQuery,r=n.from?n.from.length:0,i=null;if(r>0){x(r===1);var o=n.from[0];o.allDescendants?i=o.collectionId:t=t.child(o.collectionId)}var s=[];n.where&&(s=dc(n.where));var u=[];n.orderBy&&(u=n.orderBy.map(function(l){return function(f){return new Ve(Me(f.field),function(y){switch(y){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(f.direction))}(l)}));var a=null;n.limit&&(a=function(l){var f;return Se(f=typeof l=="object"?l.value:l)?null:f}(n.limit));var c=null;n.startAt&&(c=Qs(n.startAt));var h=null;return n.endAt&&(h=Qs(n.endAt)),za(t,i,u,s,a,"F",c,h)}function dc(e){return e?e.unaryFilter!==void 0?[bf(e)]:e.fieldFilter!==void 0?[wf(e)]:e.compositeFilter!==void 0?e.compositeFilter.filters.map(function(t){return dc(t)}).reduce(function(t,n){return t.concat(n)}):D():[]}function zs(e){return{before:e.before,values:e.position}}function Qs(e){var t=!!e.before,n=e.values||[];return new Sn(n,t)}function mf(e){return ff[e]}function gf(e){return pf[e]}function xe(e){return{fieldPath:e.canonicalString()}}function Me(e){return xt.fromServerFormat(e.fieldPath)}function wf(e){return Dt.create(Me(e.fieldFilter.field),function(t){switch(t){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":default:return D()}}(e.fieldFilter.op),e.fieldFilter.value)}function bf(e){switch(e.unaryFilter.op){case"IS_NAN":var t=Me(e.unaryFilter.field);return Dt.create(t,"==",{doubleValue:NaN});case"IS_NULL":var n=Me(e.unaryFilter.field);return Dt.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":var r=Me(e.unaryFilter.field);return Dt.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":var i=Me(e.unaryFilter.field);return Dt.create(i,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":default:return D()}}function If(e){var t=[];return e.fields.forEach(function(n){return t.push(n.canonicalString())}),{fieldPaths:t}}function yc(e){return e.length>=4&&e.get(0)==="projects"&&e.get(2)==="databases"}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Pt(e){for(var t="",n=0;n0&&(t=$s(t)),t=Ef(e.get(n),t);return $s(t)}function Ef(e,t){for(var n=t,r=e.length,i=0;i=2),t===2)return x(e.charAt(0)===""&&e.charAt(1)===""),V.emptyPath();for(var n=t-2,r=[],i="",o=0;on)&&D(),e.charAt(s+1)){case"":var u=e.substring(o,s),a=void 0;i.length===0?a=u:(a=i+=u,i=""),r.push(a);break;case"":i+=e.substring(o,s),i+="\0";break;case"":i+=e.substring(o,s+1);break;default:D()}o=s+2}return new V(r)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Tf=function(e,t){this.seconds=e,this.nanoseconds=t},It=function(e,t,n){this.ownerId=e,this.allowTabSynchronization=t,this.leaseTimestampMs=n};It.store="owner",It.key="owner";var ee=function(e,t,n){this.userId=e,this.lastAcknowledgedBatchId=t,this.lastStreamToken=n};ee.store="mutationQueues",ee.keyPath="userId";var j=function(e,t,n,r,i){this.userId=e,this.batchId=t,this.localWriteTimeMs=n,this.baseMutations=r,this.mutations=i};j.store="mutations",j.keyPath="batchId",j.userMutationsIndex="userMutationsIndex",j.userMutationsKeyPath=["userId","batchId"];var it=function(){function e(){}return e.prefixForUser=function(t){return[t]},e.prefixForPath=function(t,n){return[t,Pt(n)]},e.key=function(t,n,r){return[t,Pt(n),r]},e}();it.store="documentMutations",it.PLACEHOLDER=new it;var _f=function(e,t){this.path=e,this.readTime=t},Sf=function(e,t){this.path=e,this.version=t},z=function(e,t,n,r,i,o){this.unknownDocument=e,this.noDocument=t,this.document=n,this.hasCommittedMutations=r,this.readTime=i,this.parentPath=o};z.store="remoteDocuments",z.readTimeIndex="readTimeIndex",z.readTimeIndexPath="readTime",z.collectionReadTimeIndex="collectionReadTimeIndex",z.collectionReadTimeIndexPath=["parentPath","readTime"];var Mt=function(e){this.byteSize=e};Mt.store="remoteDocumentGlobal",Mt.key="remoteDocumentGlobalKey";var mt=function(e,t,n,r,i,o,s){this.targetId=e,this.canonicalId=t,this.readTime=n,this.resumeToken=r,this.lastListenSequenceNumber=i,this.lastLimboFreeSnapshotVersion=o,this.query=s};mt.store="targets",mt.keyPath="targetId",mt.queryTargetsIndexName="queryTargetsIndex",mt.queryTargetsKeyPath=["canonicalId","targetId"];var nt=function(e,t,n){this.targetId=e,this.path=t,this.sequenceNumber=n};nt.store="targetDocuments",nt.keyPath=["targetId","path"],nt.documentTargetsIndex="documentTargetsIndex",nt.documentTargetsKeyPath=["path","targetId"];var Et=function(e,t,n,r){this.highestTargetId=e,this.highestListenSequenceNumber=t,this.lastRemoteSnapshotVersion=n,this.targetCount=r};Et.key="targetGlobalKey",Et.store="targetGlobal";var ve=function(e,t){this.collectionId=e,this.parent=t};ve.store="collectionParents",ve.keyPath=["collectionId","parent"];var Kt=function(e,t,n,r){this.clientId=e,this.updateTimeMs=t,this.networkEnabled=n,this.inForeground=r};Kt.store="clientMetadata",Kt.keyPath="clientId";var $e=function(e,t,n){this.bundleId=e,this.createTime=t,this.version=n};$e.store="bundles",$e.keyPath="bundleId";var He=function(e,t,n){this.name=e,this.readTime=t,this.bundledQuery=n};He.store="namedQueries",He.keyPath="name";var Df=$($([],$($([],$($([],$($([],[ee.store,j.store,it.store,z.store,mt.store,It.store,Et.store,nt.store]),[Kt.store])),[Mt.store])),[ve.store])),[$e.store,He.store]),vc="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.",mc=function(){function e(){this.onCommittedListeners=[]}return e.prototype.addOnCommittedListener=function(t){this.onCommittedListeners.push(t)},e.prototype.raiseOnCommittedEvent=function(){this.onCommittedListeners.forEach(function(t){return t()})},e}(),kt=function(){var e=this;this.promise=new Promise(function(t,n){e.resolve=t,e.reject=n})},b=function(){function e(t){var n=this;this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t(function(r){n.isDone=!0,n.result=r,n.nextCallback&&n.nextCallback(r)},function(r){n.isDone=!0,n.error=r,n.catchCallback&&n.catchCallback(r)})}return e.prototype.catch=function(t){return this.next(void 0,t)},e.prototype.next=function(t,n){var r=this;return this.callbackAttached&&D(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(n,this.error):this.wrapSuccess(t,this.result):new e(function(i,o){r.nextCallback=function(s){r.wrapSuccess(t,s).next(i,o)},r.catchCallback=function(s){r.wrapFailure(n,s).next(i,o)}})},e.prototype.toPromise=function(){var t=this;return new Promise(function(n,r){t.next(n,r)})},e.prototype.wrapUserFunction=function(t){try{var n=t();return n instanceof e?n:e.resolve(n)}catch(r){return e.reject(r)}},e.prototype.wrapSuccess=function(t,n){return t?this.wrapUserFunction(function(){return t(n)}):e.resolve(n)},e.prototype.wrapFailure=function(t,n){return t?this.wrapUserFunction(function(){return t(n)}):e.reject(n)},e.resolve=function(t){return new e(function(n,r){n(t)})},e.reject=function(t){return new e(function(n,r){r(t)})},e.waitFor=function(t){return new e(function(n,r){var i=0,o=0,s=!1;t.forEach(function(u){++i,u.next(function(){++o,s&&o===i&&n()},function(a){return r(a)})}),s=!0,o===i&&n()})},e.or=function(t){for(var n=e.resolve(!1),r=function(s){n=n.next(function(u){return u?e.resolve(u):s()})},i=0,o=t;i"u")return!1;if(e.gt())return!0;var t=Ei(),n=e._t(t),r=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||r||o)},e.gt=function(){var t;return typeof process<"u"&&((t=Vl)===null||t===void 0?void 0:t.Tt)==="YES"},e.It=function(t,n){return t.store(n)},e._t=function(t){var n=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),r=n?n[1].split("_").slice(0,2).join("."):"-1";return Number(r)},e.Et=function(t){var n=t.match(/Android ([\d.]+)/i),r=n?n[1].split(".").slice(0,2).join("."):"-1";return Number(r)},e.prototype.At=function(t){return g(this,void 0,void 0,function(){var n,r=this;return m(this,function(i){switch(i.label){case 0:return this.db?[3,2]:(I("SimpleDb","Opening database:",this.name),n=this,[4,new Promise(function(o,s){var u=indexedDB.open(r.name,r.version);u.onsuccess=function(a){var c=a.target.result;o(c)},u.onblocked=function(){s(new mn(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},u.onerror=function(a){var c=a.target.error;c.name==="VersionError"?s(new w(d.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):s(new mn(t,c))},u.onupgradeneeded=function(a){I("SimpleDb",'Database "'+r.name+'" requires upgrade from version:',a.oldVersion);var c=a.target.result;r.wt.Rt(c,u.transaction,a.oldVersion,r.version).next(function(){I("SimpleDb","Database upgrade to version "+r.version+" complete")})}})]);case 1:n.db=i.sent(),i.label=2;case 2:return[2,(this.bt&&(this.db.onversionchange=function(o){return r.bt(o)}),this.db)]}})})},e.prototype.vt=function(t){this.bt=t,this.db&&(this.db.onversionchange=function(n){return t(n)})},e.prototype.runTransaction=function(t,n,r,i){return g(this,void 0,void 0,function(){var o,s,u,a,c;return m(this,function(h){switch(h.label){case 0:o=n==="readonly",s=0,u=function(){var l,f,y,p,v;return m(this,function(E){switch(E.label){case 0:++s,E.label=1;case 1:return E.trys.push([1,4,,5]),[4,a.At(t)];case 2:return a.db=E.sent(),l=gc.open(a.db,t,o?"readonly":"readwrite",r),f=i(l).catch(function(T){return l.abort(T),b.reject(T)}).toPromise(),y={},f.catch(function(){}),[4,l.dt];case 3:return[2,(y.value=(E.sent(),f),y)];case 4:return p=E.sent(),v=p.name!=="FirebaseError"&&s<3,I("SimpleDb","Transaction failed with error:",p.message,"Retrying:",v),a.close(),v?[3,5]:[2,{value:Promise.reject(p)}];case 5:return[2]}})},a=this,h.label=1;case 1:return[5,u()];case 2:if(typeof(c=h.sent())=="object")return[2,c.value];h.label=3;case 3:return[3,1];case 4:return[2]}})})},e.prototype.close=function(){this.db&&this.db.close(),this.db=void 0},e}(),Nf=function(){function e(t){this.Pt=t,this.Vt=!1,this.St=null}return Object.defineProperty(e.prototype,"isDone",{get:function(){return this.Vt},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"Dt",{get:function(){return this.St},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cursor",{set:function(t){this.Pt=t},enumerable:!1,configurable:!0}),e.prototype.done=function(){this.Vt=!0},e.prototype.Ct=function(t){this.St=t},e.prototype.delete=function(){return fe(this.Pt.delete())},e}(),mn=function(e){function t(n,r){var i=this;return(i=e.call(this,d.UNAVAILABLE,"IndexedDB transaction '"+n+"' failed: "+r)||this).name="IndexedDbTransactionError",i}return C(t,e),t}(w);function De(e){return e.name==="IndexedDbTransactionError"}var Af=function(){function e(t){this.store=t}return e.prototype.put=function(t,n){var r;return n!==void 0?(I("SimpleDb","PUT",this.store.name,t,n),r=this.store.put(n,t)):(I("SimpleDb","PUT",this.store.name,"",t),r=this.store.put(t)),fe(r)},e.prototype.add=function(t){return I("SimpleDb","ADD",this.store.name,t,t),fe(this.store.add(t))},e.prototype.get=function(t){var n=this;return fe(this.store.get(t)).next(function(r){return r===void 0&&(r=null),I("SimpleDb","GET",n.store.name,t,r),r})},e.prototype.delete=function(t){return I("SimpleDb","DELETE",this.store.name,t),fe(this.store.delete(t))},e.prototype.count=function(){return I("SimpleDb","COUNT",this.store.name),fe(this.store.count())},e.prototype.Nt=function(t,n){var r=this.cursor(this.options(t,n)),i=[];return this.xt(r,function(o,s){i.push(s)}).next(function(){return i})},e.prototype.Ft=function(t,n){I("SimpleDb","DELETE ALL",this.store.name);var r=this.options(t,n);r.kt=!1;var i=this.cursor(r);return this.xt(i,function(o,s,u){return u.delete()})},e.prototype.Ot=function(t,n){var r;n?r=t:(r={},n=t);var i=this.cursor(r);return this.xt(i,n)},e.prototype.$t=function(t){var n=this.cursor({});return new b(function(r,i){n.onerror=function(o){var s=Lo(o.target.error);i(s)},n.onsuccess=function(o){var s=o.target.result;s?t(s.primaryKey,s.value).next(function(u){u?s.continue():r()}):r()}})},e.prototype.xt=function(t,n){var r=[];return new b(function(i,o){t.onerror=function(s){o(s.target.error)},t.onsuccess=function(s){var u=s.target.result;if(u){var a=new Nf(u),c=n(u.primaryKey,u.value,a);if(c instanceof b){var h=c.catch(function(l){return a.done(),b.reject(l)});r.push(h)}a.isDone?i():a.Dt===null?u.continue():u.continue(a.Dt)}else i()}}).next(function(){return b.waitFor(r)})},e.prototype.options=function(t,n){var r;return t!==void 0&&(typeof t=="string"?r=t:n=t),{index:r,range:n}},e.prototype.cursor=function(t){var n="next";if(t.reverse&&(n="prev"),t.index){var r=this.store.index(t.index);return t.kt?r.openKeyCursor(t.range,n):r.openCursor(t.range,n)}return this.store.openCursor(t.range,n)},e}();function fe(e){return new b(function(t,n){e.onsuccess=function(r){var i=r.target.result;t(i)},e.onerror=function(r){var i=Lo(r.target.error);n(i)}})}var Hs=!1;function Lo(e){var t=We._t(Ei());if(t>=12.2&&t<13){var n="An internal error was encountered in the Indexed Database server";if(e.message.indexOf(n)>=0){var r=new w("internal","IOS_INDEXEDDB_BUG1: IndexedDb has thrown '"+n+"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.");return Hs||(Hs=!0,setTimeout(function(){throw r},0)),r}}return e}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Ws=function(e){function t(n,r){var i=this;return(i=e.call(this)||this).Mt=n,i.currentSequenceNumber=r,i}return C(t,e),t}(mc);function bt(e,t){var n=_(e);return We.It(n.Mt,t)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Mo=function(){function e(t,n,r,i){this.batchId=t,this.localWriteTime=n,this.baseMutations=r,this.mutations=i}return e.prototype.applyToRemoteDocument=function(t,n){for(var r=n.mutationResults,i=0;i=i),s=Oe(r.R,a)),c.done()}).next(function(){return s})},e.prototype.getHighestUnacknowledgedBatchId=function(t){var n=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]),r=-1;return $t(t).Ot({index:j.userMutationsIndex,range:n,reverse:!0},function(i,o,s){r=o.batchId,s.done()}).next(function(){return r})},e.prototype.getAllMutationBatches=function(t){var n=this,r=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return $t(t).Nt(j.userMutationsIndex,r).next(function(i){return i.map(function(o){return Oe(n.R,o)})})},e.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,n){var r=this,i=it.prefixForPath(this.userId,n.path),o=IDBKeyRange.lowerBound(i),s=[];return Pe(t).Ot({range:o},function(u,a,c){var h=u[0],l=u[1],f=u[2],y=Bt(l);if(h===r.userId&&n.path.isEqual(y))return $t(t).get(f).next(function(p){if(!p)throw D();x(p.userId===r.userId),s.push(Oe(r.R,p))});c.done()}).next(function(){return s})},e.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,n){var r=this,i=new J(L),o=[];return n.forEach(function(s){var u=it.prefixForPath(r.userId,s.path),a=IDBKeyRange.lowerBound(u),c=Pe(t).Ot({range:a},function(h,l,f){var y=h[0],p=h[1],v=h[2],E=Bt(p);y===r.userId&&s.path.isEqual(E)?i=i.add(v):f.done()});o.push(c)}),b.waitFor(o).next(function(){return r.Wt(t,i)})},e.prototype.getAllMutationBatchesAffectingQuery=function(t,n){var r=this,i=n.path,o=i.length+1,s=it.prefixForPath(this.userId,i),u=IDBKeyRange.lowerBound(s),a=new J(L);return Pe(t).Ot({range:u},function(c,h,l){var f=c[0],y=c[1],p=c[2],v=Bt(y);f===r.userId&&i.isPrefixOf(v)?v.length===o&&(a=a.add(p)):l.done()}).next(function(){return r.Wt(t,a)})},e.prototype.Wt=function(t,n){var r=this,i=[],o=[];return n.forEach(function(s){o.push($t(t).get(s).next(function(u){if(u===null)throw D();x(u.userId===r.userId),i.push(Oe(r.R,u))}))}),b.waitFor(o).next(function(){return i})},e.prototype.removeMutationBatch=function(t,n){var r=this;return Tc(t.Mt,this.userId,n).next(function(i){return t.addOnCommittedListener(function(){r.Gt(n.batchId)}),b.forEach(i,function(o){return r.referenceDelegate.markPotentiallyOrphaned(t,o)})})},e.prototype.Gt=function(t){delete this.Qt[t]},e.prototype.performConsistencyCheck=function(t){var n=this;return this.checkEmpty(t).next(function(r){if(!r)return b.resolve();var i=IDBKeyRange.lowerBound(it.prefixForUser(n.userId)),o=[];return Pe(t).Ot({range:i},function(s,u,a){if(s[0]===n.userId){var c=Bt(s[1]);o.push(c)}else a.done()}).next(function(){x(o.length===0)})})},e.prototype.containsKey=function(t,n){return _c(t,this.userId,n)},e.prototype.zt=function(t){var n=this;return Sc(t).get(this.userId).next(function(r){return r||new ee(n.userId,-1,"")})},e}();function _c(e,t,n){var r=it.prefixForPath(t,n.path),i=r[1],o=IDBKeyRange.lowerBound(r),s=!1;return Pe(e).Ot({range:o,kt:!0},function(u,a,c){var h=u[0],l=u[1];u[2],h===t&&l===i&&(s=!0),c.done()}).next(function(){return s})}function $t(e){return bt(e,j.store)}function Pe(e){return bt(e,it.store)}function Sc(e){return bt(e,ee.store)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Nr=function(){function e(t){this.Ht=t}return e.prototype.next=function(){return this.Ht+=2,this.Ht},e.Jt=function(){return new e(0)},e.Yt=function(){return new e(-1)},e}(),Pf=function(){function e(t,n){this.referenceDelegate=t,this.R=n}return e.prototype.allocateTargetId=function(t){var n=this;return this.Xt(t).next(function(r){var i=new Nr(r.highestTargetId);return r.highestTargetId=i.next(),n.Zt(t,r).next(function(){return r.highestTargetId})})},e.prototype.getLastRemoteSnapshotVersion=function(t){return this.Xt(t).next(function(n){return P.fromTimestamp(new gt(n.lastRemoteSnapshotVersion.seconds,n.lastRemoteSnapshotVersion.nanoseconds))})},e.prototype.getHighestSequenceNumber=function(t){return this.Xt(t).next(function(n){return n.highestListenSequenceNumber})},e.prototype.setTargetsMetadata=function(t,n,r){var i=this;return this.Xt(t).next(function(o){return o.highestListenSequenceNumber=n,r&&(o.lastRemoteSnapshotVersion=r.toTimestamp()),n>o.highestListenSequenceNumber&&(o.highestListenSequenceNumber=n),i.Zt(t,o)})},e.prototype.addTargetData=function(t,n){var r=this;return this.te(t,n).next(function(){return r.Xt(t).next(function(i){return i.targetCount+=1,r.ee(n,i),r.Zt(t,i)})})},e.prototype.updateTargetData=function(t,n){return this.te(t,n)},e.prototype.removeTargetData=function(t,n){var r=this;return this.removeMatchingKeysForTargetId(t,n.targetId).next(function(){return Re(t).delete(n.targetId)}).next(function(){return r.Xt(t)}).next(function(i){return x(i.targetCount>0),i.targetCount-=1,r.Zt(t,i)})},e.prototype.removeTargets=function(t,n,r){var i=this,o=0,s=[];return Re(t).Ot(function(u,a){var c=yn(a);c.sequenceNumber<=n&&r.get(c.targetId)===null&&(o++,s.push(i.removeTargetData(t,c)))}).next(function(){return b.waitFor(s)}).next(function(){return o})},e.prototype.forEachTarget=function(t,n){return Re(t).Ot(function(r,i){var o=yn(i);n(o)})},e.prototype.Xt=function(t){return eu(t).get(Et.key).next(function(n){return x(n!==null),n})},e.prototype.Zt=function(t,n){return eu(t).put(Et.key,n)},e.prototype.te=function(t,n){return Re(t).put(Ic(this.R,n))},e.prototype.ee=function(t,n){var r=!1;return t.targetId>n.highestTargetId&&(n.highestTargetId=t.targetId,r=!0),t.sequenceNumber>n.highestListenSequenceNumber&&(n.highestListenSequenceNumber=t.sequenceNumber,r=!0),r},e.prototype.getTargetCount=function(t){return this.Xt(t).next(function(n){return n.targetCount})},e.prototype.getTargetData=function(t,n){var r=Kn(n),i=IDBKeyRange.bound([r,Number.NEGATIVE_INFINITY],[r,Number.POSITIVE_INFINITY]),o=null;return Re(t).Ot({range:i,index:mt.queryTargetsIndexName},function(s,u,a){var c=yn(u);Qr(n,c.target)&&(o=c,a.done())}).next(function(){return o})},e.prototype.addMatchingKeys=function(t,n,r){var i=this,o=[],s=Yt(t);return n.forEach(function(u){var a=Pt(u.path);o.push(s.put(new nt(r,a))),o.push(i.referenceDelegate.addReference(t,r,u))}),b.waitFor(o)},e.prototype.removeMatchingKeys=function(t,n,r){var i=this,o=Yt(t);return b.forEach(n,function(s){var u=Pt(s.path);return b.waitFor([o.delete([r,u]),i.referenceDelegate.removeReference(t,r,s)])})},e.prototype.removeMatchingKeysForTargetId=function(t,n){var r=Yt(t),i=IDBKeyRange.bound([n],[n+1],!1,!0);return r.delete(i)},e.prototype.getMatchingKeysForTargetId=function(t,n){var r=IDBKeyRange.bound([n],[n+1],!1,!0),i=Yt(t),o=B();return i.Ot({range:r,kt:!0},function(s,u,a){var c=Bt(s[1]),h=new N(c);o=o.add(h)}).next(function(){return o})},e.prototype.containsKey=function(t,n){var r=Pt(n.path),i=IDBKeyRange.bound([r],[Va(r)],!1,!0),o=0;return Yt(t).Ot({index:nt.documentTargetsIndex,kt:!0,range:i},function(s,u,a){var c=s[0];s[1],c!==0&&(o++,a.done())}).next(function(){return o>0})},e.prototype.lt=function(t,n){return Re(t).get(n).next(function(r){return r?yn(r):null})},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Re(e){return bt(e,mt.store)}function eu(e){return bt(e,Et.store)}function Yt(e){return bt(e,nt.store)}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Ne(e){return g(this,void 0,void 0,function(){return m(this,function(t){if(e.code!==d.FAILED_PRECONDITION||e.message!==vc)throw e;return I("LocalStore","Unexpectedly lost primary lease"),[2]})})}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function nu(e,t){var n=e[0],r=e[1],i=t[0],o=t[1],s=L(n,i);return s===0?L(r,o):s}var Lf=function(){function e(t){this.ne=t,this.buffer=new J(nu),this.se=0}return e.prototype.ie=function(){return++this.se},e.prototype.re=function(t){var n=[t,this.ie()];if(this.buffer.sizeh.params.maximumSequenceNumbersToCollect?(I("LruGarbageCollector","Capping sequence numbers to collect down to the maximum of "+h.params.maximumSequenceNumbersToCollect+" from "+f),i=h.params.maximumSequenceNumbersToCollect):i=f,s=Date.now(),h.nthSequenceNumber(t,i)}).next(function(f){return r=f,u=Date.now(),h.removeTargets(t,r,n)}).next(function(f){return o=f,a=Date.now(),h.removeOrphanedDocuments(t,r)}).next(function(f){return c=Date.now(),Li()<=Ue.DEBUG&&I("LruGarbageCollector",`LRU Garbage Collection - Counted targets in `+(s-l)+`ms - Determined least recently used `+i+" in "+(u-s)+`ms - Removed `+o+" targets in "+(a-u)+`ms - Removed `+f+" documents in "+(c-a)+`ms -Total Duration: `+(c-l)+"ms"),b.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:o,documentsRemoved:f})})},e}(),Vf=function(){function e(t,n){this.db=t,this.garbageCollector=function(r,i){return new Ff(r,i)}(this,n)}return e.prototype.he=function(t){var n=this.de(t);return this.db.getTargetCache().getTargetCount(t).next(function(r){return n.next(function(i){return r+i})})},e.prototype.de=function(t){var n=0;return this.le(t,function(r){n++}).next(function(){return n})},e.prototype.forEachTarget=function(t,n){return this.db.getTargetCache().forEachTarget(t,n)},e.prototype.le=function(t,n){return this.we(t,function(r,i){return n(i)})},e.prototype.addReference=function(t,n,r){return rr(t,r)},e.prototype.removeReference=function(t,n,r){return rr(t,r)},e.prototype.removeTargets=function(t,n,r){return this.db.getTargetCache().removeTargets(t,n,r)},e.prototype.markPotentiallyOrphaned=function(t,n){return rr(t,n)},e.prototype._e=function(t,n){return function(r,i){var o=!1;return Sc(r).$t(function(s){return _c(r,s,i).next(function(u){return u&&(o=!0),b.resolve(!u)})}).next(function(){return o})}(t,n)},e.prototype.removeOrphanedDocuments=function(t,n){var r=this,i=this.db.getRemoteDocumentCache().newChangeBuffer(),o=[],s=0;return this.we(t,function(u,a){if(a<=n){var c=r._e(t,u).next(function(h){if(!h)return s++,i.getEntry(t,u).next(function(){return i.removeEntry(u),Yt(t).delete([0,Pt(u.path)])})});o.push(c)}}).next(function(){return b.waitFor(o)}).next(function(){return i.apply(t)}).next(function(){return s})},e.prototype.removeTarget=function(t,n){var r=n.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,r)},e.prototype.updateLimboDocument=function(t,n){return rr(t,n)},e.prototype.we=function(t,n){var r,i=Yt(t),o=St.o;return i.Ot({index:nt.documentTargetsIndex},function(s,u){var a=s[0],c=(s[1],u.path),h=u.sequenceNumber;a===0?(o!==St.o&&n(new N(Bt(r)),o),o=h,r=c):o=St.o}).next(function(){o!==St.o&&n(new N(Bt(r)),o)})},e.prototype.getCacheSize=function(t){return this.db.getRemoteDocumentCache().getSize(t)},e}();function rr(e,t){return Yt(e).put(function(n,r){return new nt(0,Pt(n.path),r)}(t,e.currentSequenceNumber))}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var sn=function(){function e(t,n){this.mapKeyFn=t,this.equalsFn=n,this.inner={}}return e.prototype.get=function(t){var n=this.mapKeyFn(t),r=this.inner[n];if(r!==void 0)for(var i=0,o=r;i=0&&i<=11);var s=new gc("createOrUpgrade",n);r<1&&i>=1&&(function(a){a.createObjectStore(It.store)}(t),function(a){a.createObjectStore(ee.store,{keyPath:ee.keyPath}),a.createObjectStore(j.store,{keyPath:j.keyPath,autoIncrement:!0}).createIndex(j.userMutationsIndex,j.userMutationsKeyPath,{unique:!0}),a.createObjectStore(it.store)}(t),iu(t),function(a){a.createObjectStore(z.store)}(t));var u=b.resolve();return r<3&&i>=3&&(r!==0&&(function(a){a.deleteObjectStore(nt.store),a.deleteObjectStore(mt.store),a.deleteObjectStore(Et.store)}(t),iu(t)),u=u.next(function(){return function(a){var c=a.store(Et.store),h=new Et(0,0,P.min().toTimestamp(),0);return c.put(Et.key,h)}(s)})),r<4&&i>=4&&(r!==0&&(u=u.next(function(){return function(a,c){return c.store(j.store).Nt().next(function(h){a.deleteObjectStore(j.store),a.createObjectStore(j.store,{keyPath:j.keyPath,autoIncrement:!0}).createIndex(j.userMutationsIndex,j.userMutationsKeyPath,{unique:!0});var l=c.store(j.store),f=h.map(function(y){return l.put(y)});return b.waitFor(f)})}(t,s)})),u=u.next(function(){(function(a){a.createObjectStore(Kt.store,{keyPath:Kt.keyPath})})(t)})),r<5&&i>=5&&(u=u.next(function(){return o.Re(s)})),r<6&&i>=6&&(u=u.next(function(){return function(a){a.createObjectStore(Mt.store)}(t),o.be(s)})),r<7&&i>=7&&(u=u.next(function(){return o.ve(s)})),r<8&&i>=8&&(u=u.next(function(){return o.Pe(t,s)})),r<9&&i>=9&&(u=u.next(function(){(function(a){a.objectStoreNames.contains("remoteDocumentChanges")&&a.deleteObjectStore("remoteDocumentChanges")})(t),function(a){var c=a.objectStore(z.store);c.createIndex(z.readTimeIndex,z.readTimeIndexPath,{unique:!1}),c.createIndex(z.collectionReadTimeIndex,z.collectionReadTimeIndexPath,{unique:!1})}(n)})),r<10&&i>=10&&(u=u.next(function(){return o.Ve(s)})),r<11&&i>=11&&(u=u.next(function(){(function(a){a.createObjectStore($e.store,{keyPath:$e.keyPath})})(t),function(a){a.createObjectStore(He.store,{keyPath:He.keyPath})}(t)})),u},e.prototype.be=function(t){var n=0;return t.store(z.store).Ot(function(r,i){n+=Dr(i)}).next(function(){var r=new Mt(n);return t.store(Mt.store).put(Mt.key,r)})},e.prototype.Re=function(t){var n=this,r=t.store(ee.store),i=t.store(j.store);return r.Nt().next(function(o){return b.forEach(o,function(s){var u=IDBKeyRange.bound([s.userId,-1],[s.userId,s.lastAcknowledgedBatchId]);return i.Nt(j.userMutationsIndex,u).next(function(a){return b.forEach(a,function(c){x(c.userId===s.userId);var h=Oe(n.R,c);return Tc(t,s.userId,h).next(function(){})})})})})},e.prototype.ve=function(t){var n=t.store(nt.store),r=t.store(z.store);return t.store(Et.store).get(Et.key).next(function(i){var o=[];return r.Ot(function(s,u){var a=new V(s),c=function(h){return[0,Pt(h)]}(a);o.push(n.get(c).next(function(h){return h?b.resolve():function(l){return n.put(new nt(0,Pt(l),i.highestListenSequenceNumber))}(a)}))}).next(function(){return b.waitFor(o)})})},e.prototype.Pe=function(t,n){t.createObjectStore(ve.store,{keyPath:ve.keyPath});var r=n.store(ve.store),i=new Vo,o=function(s){if(i.add(s)){var u=s.lastSegment(),a=s.popLast();return r.put({collectionId:u,parent:Pt(a)})}};return n.store(z.store).Ot({kt:!0},function(s,u){var a=new V(s);return o(a.popLast())}).next(function(){return n.store(it.store).Ot({kt:!0},function(s,u){s[0];var a=s[1],c=(s[2],Bt(a));return o(c.popLast())})})},e.prototype.Ve=function(t){var n=this,r=t.store(mt.store);return r.Ot(function(i,o){var s=yn(o),u=Ic(n.R,s);return r.put(u)})},e}();function iu(e){e.createObjectStore(nt.store,{keyPath:nt.keyPath}).createIndex(nt.documentTargetsIndex,nt.documentTargetsKeyPath,{unique:!0}),e.createObjectStore(mt.store,{keyPath:mt.keyPath}).createIndex(mt.queryTargetsIndexName,mt.queryTargetsKeyPath,{unique:!0}),e.createObjectStore(Et.store)}var gi="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.",jf=function(){function e(t,n,r,i,o,s,u,a,c,h){if(this.allowTabSynchronization=t,this.persistenceKey=n,this.clientId=r,this.Se=o,this.window=s,this.document=u,this.De=c,this.Ce=h,this.Ne=null,this.xe=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Fe=null,this.inForeground=!1,this.ke=null,this.Oe=null,this.$e=Number.NEGATIVE_INFINITY,this.Me=function(l){return Promise.resolve()},!e.yt())throw new w(d.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Vf(this,i),this.Le=n+"main",this.R=new wc(a),this.Be=new We(this.Le,11,new Bf(this.R)),this.qe=new Pf(this.referenceDelegate,this.R),this.Ut=new Rf,this.Ue=function(l,f){return new Uf(l,f)}(this.R,this.Ut),this.Qe=new kf,this.window&&this.window.localStorage?this.Ke=this.window.localStorage:(this.Ke=null,h===!1&&W("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}return e.prototype.start=function(){var t=this;return this.je().then(function(){if(!t.isPrimary&&!t.allowTabSynchronization)throw new w(d.FAILED_PRECONDITION,gi);return t.We(),t.Ge(),t.ze(),t.runTransaction("getHighestListenSequenceNumber","readonly",function(n){return t.qe.getHighestSequenceNumber(n)})}).then(function(n){t.Ne=new St(n,t.De)}).then(function(){t.xe=!0}).catch(function(n){return t.Be&&t.Be.close(),Promise.reject(n)})},e.prototype.He=function(t){var n=this;return this.Me=function(r){return g(n,void 0,void 0,function(){return m(this,function(i){return this.started?[2,t(r)]:[2]})})},t(this.isPrimary)},e.prototype.setDatabaseDeletedListener=function(t){var n=this;this.Be.vt(function(r){return g(n,void 0,void 0,function(){return m(this,function(i){switch(i.label){case 0:return r.newVersion===null?[4,t()]:[3,2];case 1:i.sent(),i.label=2;case 2:return[2]}})})})},e.prototype.setNetworkEnabled=function(t){var n=this;this.networkEnabled!==t&&(this.networkEnabled=t,this.Se.enqueueAndForget(function(){return g(n,void 0,void 0,function(){return m(this,function(r){switch(r.label){case 0:return this.started?[4,this.je()]:[3,2];case 1:r.sent(),r.label=2;case 2:return[2]}})})}))},e.prototype.je=function(){var t=this;return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",function(n){return or(n).put(new Kt(t.clientId,Date.now(),t.networkEnabled,t.inForeground)).next(function(){if(t.isPrimary)return t.Je(n).next(function(r){r||(t.isPrimary=!1,t.Se.enqueueRetryable(function(){return t.Me(!1)}))})}).next(function(){return t.Ye(n)}).next(function(r){return t.isPrimary&&!r?t.Xe(n).next(function(){return!1}):!!r&&t.Ze(n).next(function(){return!0})})}).catch(function(n){if(De(n))return I("IndexedDbPersistence","Failed to extend owner lease: ",n),t.isPrimary;if(!t.allowTabSynchronization)throw n;return I("IndexedDbPersistence","Releasing owner lease after error during lease refresh",n),!1}).then(function(n){t.isPrimary!==n&&t.Se.enqueueRetryable(function(){return t.Me(n)}),t.isPrimary=n})},e.prototype.Je=function(t){var n=this;return pn(t).get(It.key).next(function(r){return b.resolve(n.tn(r))})},e.prototype.en=function(t){return or(t).delete(this.clientId)},e.prototype.nn=function(){return g(this,void 0,void 0,function(){var t,n,r,i,o=this;return m(this,function(s){switch(s.label){case 0:return!this.isPrimary||this.sn(this.$e,18e5)?[3,2]:(this.$e=Date.now(),[4,this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",function(u){var a=bt(u,Kt.store);return a.Nt().next(function(c){var h=o.rn(c,18e5),l=c.filter(function(f){return h.indexOf(f)===-1});return b.forEach(l,function(f){return a.delete(f.clientId)}).next(function(){return l})})}).catch(function(){return[]})]);case 1:if(t=s.sent(),this.Ke)for(n=0,r=t;nr&&(W("Detected an update time that is in the future: "+t+" > "+r),1))},e.prototype.We=function(){var t=this;this.document!==null&&typeof this.document.addEventListener=="function"&&(this.ke=function(){t.Se.enqueueAndForget(function(){return t.inForeground=t.document.visibilityState==="visible",t.je()})},this.document.addEventListener("visibilitychange",this.ke),this.inForeground=this.document.visibilityState==="visible")},e.prototype.an=function(){this.ke&&(this.document.removeEventListener("visibilitychange",this.ke),this.ke=null)},e.prototype.Ge=function(){var t,n=this;typeof((t=this.window)===null||t===void 0?void 0:t.addEventListener)=="function"&&(this.Fe=function(){n.un(),n.Se.enqueueAndForget(function(){return n.shutdown()})},this.window.addEventListener("unload",this.Fe))},e.prototype.hn=function(){this.Fe&&(this.window.removeEventListener("unload",this.Fe),this.Fe=null)},e.prototype.cn=function(t){var n;try{var r=((n=this.Ke)===null||n===void 0?void 0:n.getItem(this.on(t)))!==null;return I("IndexedDbPersistence","Client '"+t+"' "+(r?"is":"is not")+" zombied in LocalStorage"),r}catch(i){return W("IndexedDbPersistence","Failed to get zombied client id.",i),!1}},e.prototype.un=function(){if(this.Ke)try{this.Ke.setItem(this.on(this.clientId),String(Date.now()))}catch(t){W("Failed to set zombie client id.",t)}},e.prototype.ln=function(){if(this.Ke)try{this.Ke.removeItem(this.on(this.clientId))}catch{}},e.prototype.on=function(t){return"firestore_zombie_"+this.persistenceKey+"_"+t},e}();function pn(e){return bt(e,It.store)}function or(e){return bt(e,Kt.store)}function Uo(e,t){var n=e.projectId;return e.isDefaultDatabase||(n+="."+e.database),"firestore/"+t+"/"+n+"/"}var Nc=function(){function e(t,n,r){this.Ue=t,this._n=n,this.Ut=r}return e.prototype.mn=function(t,n){var r=this;return this._n.getAllMutationBatchesAffectingDocumentKey(t,n).next(function(i){return r.yn(t,n,i)})},e.prototype.yn=function(t,n,r){return this.Ue.getEntry(t,n).next(function(i){for(var o=0,s=r;o0)},e.prototype.Dn=function(t,n){return Li()<=Ue.DEBUG&&I("QueryEngine","Using full collection scan to execute query:",qi(n)),this.Sn.getDocumentsMatchingQuery(t,n,P.min())},e}(),Gf=function(){function e(t,n,r,i){this.persistence=t,this.xn=n,this.R=i,this.Fn=new ht(L),this.kn=new sn(function(o){return Kn(o)},Qr),this.On=P.min(),this._n=t.getMutationQueue(r),this.$n=t.getRemoteDocumentCache(),this.qe=t.getTargetCache(),this.Mn=new Nc(this.$n,this._n,this.persistence.getIndexManager()),this.Qe=t.getBundleCache(),this.xn.Vn(this.Mn)}return e.prototype.collectGarbage=function(t){var n=this;return this.persistence.runTransaction("Collect garbage","readwrite-primary",function(r){return t.collect(r,n.Fn)})},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Cc(e,t,n,r){return new Gf(e,t,n,r)}function kc(e,t){return g(this,void 0,void 0,function(){var n,r,i,o;return m(this,function(s){switch(s.label){case 0:return n=_(e),r=n._n,i=n.Mn,[4,n.persistence.runTransaction("Handle user change","readonly",function(u){var a;return n._n.getAllMutationBatches(u).next(function(c){return a=c,r=n.persistence.getMutationQueue(t),i=new Nc(n.$n,r,n.persistence.getIndexManager()),r.getAllMutationBatches(u)}).next(function(c){for(var h=[],l=[],f=B(),y=0,p=a;y0){var p=f.withResumeToken(y,r).withSequenceNumber(o.currentSequenceNumber);i=i.insert(l,p),function(v,E,T){return x(E.resumeToken.approximateByteSize()>0),v.resumeToken.approximateByteSize()===0||E.snapshotVersion.toMicroseconds()-v.snapshotVersion.toMicroseconds()>=3e8||T.addedDocuments.size+T.modifiedDocuments.size+T.removedDocuments.size>0}(f,p,h)&&u.push(n.qe.updateTargetData(o,p))}}});var a=Ot();if(t.documentUpdates.forEach(function(h,l){t.resolvedLimboDocuments.has(h)&&u.push(n.persistence.referenceDelegate.updateLimboDocument(o,h))}),u.push($f(o,s,t.documentUpdates,r,void 0).next(function(h){a=h})),!r.isEqual(P.min())){var c=n.qe.getLastRemoteSnapshotVersion(o).next(function(h){return n.qe.setTargetsMetadata(o,o.currentSequenceNumber,r)});u.push(c)}return b.waitFor(u).next(function(){return s.apply(o)}).next(function(){return n.Mn.En(o,a)}).next(function(){return a})}).then(function(o){return n.Fn=i,o})}function $f(e,t,n,r,i){var o=B();return n.forEach(function(s){return o=o.add(s)}),t.getEntries(e,o).next(function(s){var u=Ot();return n.forEach(function(a,c){var h=s.get(a),l=(i==null?void 0:i.get(a))||r;c.isNoDocument()&&c.version.isEqual(P.min())?(t.removeEntry(a,l),u=u.insert(a,c)):!h.isValidDocument()||c.version.compareTo(h.version)>0||c.version.compareTo(h.version)===0&&h.hasPendingWrites?(t.addEntry(c,l),u=u.insert(a,c)):I("LocalStore","Ignoring outdated watch update for ",a,". Current version:",h.version," Watch version:",c.version)}),u})}function Hf(e,t){var n=_(e);return n.persistence.runTransaction("Get next mutation batch","readonly",function(r){return t===void 0&&(t=-1),n._n.getNextMutationBatchAfterBatchId(r,t)})}function Ar(e,t){var n=_(e);return n.persistence.runTransaction("Allocate target","readwrite",function(r){var i;return n.qe.getTargetData(r,t).next(function(o){return o?(i=o,b.resolve(i)):n.qe.allocateTargetId(r).next(function(s){return i=new Xr(t,s,0,r.currentSequenceNumber),n.qe.addTargetData(r,i).next(function(){return i})})})}).then(function(r){var i=n.Fn.get(r.targetId);return(i===null||r.snapshotVersion.compareTo(i.snapshotVersion)>0)&&(n.Fn=n.Fn.insert(r.targetId,r),n.kn.set(t,r.targetId)),r})}function Je(e,t,n){return g(this,void 0,void 0,function(){var r,i,o,s;return m(this,function(u){switch(u.label){case 0:r=_(e),i=r.Fn.get(t),o=n?"readwrite":"readwrite-primary",u.label=1;case 1:return u.trys.push([1,4,,5]),n?[3,3]:[4,r.persistence.runTransaction("Release target",o,function(a){return r.persistence.referenceDelegate.removeTarget(a,i)})];case 2:u.sent(),u.label=3;case 3:return[3,5];case 4:if(!De(s=u.sent()))throw s;return I("LocalStore","Failed to update sequence numbers for target "+t+": "+s),[3,5];case 5:return r.Fn=r.Fn.remove(t),r.kn.delete(i.target),[2]}})})}function Cr(e,t,n){var r=_(e),i=P.min(),o=B();return r.persistence.runTransaction("Execute query","readonly",function(s){return function(u,a,c){var h=_(u),l=h.kn.get(c);return l!==void 0?b.resolve(h.Fn.get(l)):h.qe.getTargetData(a,c)}(r,s,Ut(t)).next(function(u){if(u)return i=u.lastLimboFreeSnapshotVersion,r.qe.getMatchingKeysForTargetId(s,u.targetId).next(function(a){o=a})}).next(function(){return r.xn.getDocumentsMatchingQuery(s,t,n?i:P.min(),n?o:B())}).next(function(u){return{documents:u,Bn:o}})})}function Rc(e,t){var n=_(e),r=_(n.qe),i=n.Fn.get(t);return i?Promise.resolve(i.target):n.persistence.runTransaction("Get target data","readonly",function(o){return r.lt(o,t).next(function(s){return s?s.target:null})})}function Oc(e){var t=_(e);return t.persistence.runTransaction("Get new document changes","readonly",function(n){return function(r,i,o){var s=_(r),u=Ot(),a=Fo(o),c=Wt(i),h=IDBKeyRange.lowerBound(a,!0);return c.Ot({index:z.readTimeIndex,range:h},function(l,f){var y=Gi(s.R,f);u=u.insert(y.key,y),a=f.readTime}).next(function(){return{wn:u,readTime:bc(a)}})}(t.$n,n,t.On)}).then(function(n){var r=n.wn,i=n.readTime;return t.On=i,r})}function Wf(e){return g(this,void 0,void 0,function(){var t;return m(this,function(n){return[2,(t=_(e)).persistence.runTransaction("Synchronize last document change read time","readonly",function(r){return function(i){var o=Wt(i),s=P.min();return o.Ot({index:z.readTimeIndex,reverse:!0},function(u,a,c){a.readTime&&(s=bc(a.readTime)),c.done()}).next(function(){return s})}(r)}).then(function(r){t.On=r})]})})}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Xf=function(){function e(t){this.R=t,this.Kn=new Map,this.jn=new Map}return e.prototype.getBundleMetadata=function(t,n){return b.resolve(this.Kn.get(n))},e.prototype.saveBundleMetadata=function(t,n){var r;return this.Kn.set(n.id,{id:(r=n).id,version:r.version,createTime:yt(r.createTime)}),b.resolve()},e.prototype.getNamedQuery=function(t,n){return b.resolve(this.jn.get(n))},e.prototype.saveNamedQuery=function(t,n){return this.jn.set(n.name,function(r){return{name:r.name,query:Ec(r.bundledQuery),readTime:yt(r.readTime)}}(n)),b.resolve()},e}(),qo=function(){function e(){this.Wn=new J(tt.Gn),this.zn=new J(tt.Hn)}return e.prototype.isEmpty=function(){return this.Wn.isEmpty()},e.prototype.addReference=function(t,n){var r=new tt(t,n);this.Wn=this.Wn.add(r),this.zn=this.zn.add(r)},e.prototype.Jn=function(t,n){var r=this;t.forEach(function(i){return r.addReference(i,n)})},e.prototype.removeReference=function(t,n){this.Yn(new tt(t,n))},e.prototype.Xn=function(t,n){var r=this;t.forEach(function(i){return r.removeReference(i,n)})},e.prototype.Zn=function(t){var n=this,r=new N(new V([])),i=new tt(r,t),o=new tt(r,t+1),s=[];return this.zn.forEachInRange([i,o],function(u){n.Yn(u),s.push(u.key)}),s},e.prototype.ts=function(){var t=this;this.Wn.forEach(function(n){return t.Yn(n)})},e.prototype.Yn=function(t){this.Wn=this.Wn.delete(t),this.zn=this.zn.delete(t)},e.prototype.es=function(t){var n=new N(new V([])),r=new tt(n,t),i=new tt(n,t+1),o=B();return this.zn.forEachInRange([r,i],function(s){o=o.add(s.key)}),o},e.prototype.containsKey=function(t){var n=new tt(t,0),r=this.Wn.firstAfterOrEqual(n);return r!==null&&t.isEqual(r.key)},e}(),tt=function(){function e(t,n){this.key=t,this.ns=n}return e.Gn=function(t,n){return N.comparator(t.key,n.key)||L(t.ns,n.ns)},e.Hn=function(t,n){return L(t.ns,n.ns)||N.comparator(t.key,n.key)},e}(),Yf=function(){function e(t,n){this.Ut=t,this.referenceDelegate=n,this._n=[],this.ss=1,this.rs=new J(tt.Gn)}return e.prototype.checkEmpty=function(t){return b.resolve(this._n.length===0)},e.prototype.addMutationBatch=function(t,n,r,i){var o=this.ss;this.ss++,this._n.length>0&&this._n[this._n.length-1];var s=new Mo(o,n,r,i);this._n.push(s);for(var u=0,a=i;uo?this._n[o]:null)},e.prototype.getHighestUnacknowledgedBatchId=function(){return b.resolve(this._n.length===0?-1:this.ss-1)},e.prototype.getAllMutationBatches=function(t){return b.resolve(this._n.slice())},e.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,n){var r=this,i=new tt(n,0),o=new tt(n,Number.POSITIVE_INFINITY),s=[];return this.rs.forEachInRange([i,o],function(u){var a=r.os(u.ns);s.push(a)}),b.resolve(s)},e.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,n){var r=this,i=new J(L);return n.forEach(function(o){var s=new tt(o,0),u=new tt(o,Number.POSITIVE_INFINITY);r.rs.forEachInRange([s,u],function(a){i=i.add(a.ns)})}),b.resolve(this.us(i))},e.prototype.getAllMutationBatchesAffectingQuery=function(t,n){var r=n.path,i=r.length+1,o=r;N.isDocumentKey(o)||(o=o.child(""));var s=new tt(new N(o),0),u=new J(L);return this.rs.forEachWhile(function(a){var c=a.key.path;return!!r.isPrefixOf(c)&&(c.length===i&&(u=u.add(a.ns)),!0)},s),b.resolve(this.us(u))},e.prototype.us=function(t){var n=this,r=[];return t.forEach(function(i){var o=n.os(i);o!==null&&r.push(o)}),r},e.prototype.removeMutationBatch=function(t,n){var r=this;x(this.hs(n.batchId,"removed")===0),this._n.shift();var i=this.rs;return b.forEach(n.mutations,function(o){var s=new tt(o.key,n.batchId);return i=i.delete(s),r.referenceDelegate.markPotentiallyOrphaned(t,o.key)}).next(function(){r.rs=i})},e.prototype.Gt=function(t){},e.prototype.containsKey=function(t,n){var r=new tt(n,0),i=this.rs.firstAfterOrEqual(r);return b.resolve(n.isEqual(i&&i.key))},e.prototype.performConsistencyCheck=function(t){return this._n.length,b.resolve()},e.prototype.hs=function(t,n){return this.cs(t)},e.prototype.cs=function(t){return this._n.length===0?0:t-this._n[0].batchId},e.prototype.os=function(t){var n=this.cs(t);return n<0||n>=this._n.length?null:this._n[n]},e}(),Jf=function(){function e(t,n){this.Ut=t,this.ls=n,this.docs=new ht(N.comparator),this.size=0}return e.prototype.addEntry=function(t,n,r){var i=n.key,o=this.docs.get(i),s=o?o.size:0,u=this.ls(n);return this.docs=this.docs.insert(i,{document:n.clone(),size:u,readTime:r}),this.size+=u-s,this.Ut.addToCollectionParentIndex(t,i.path.popLast())},e.prototype.removeEntry=function(t){var n=this.docs.get(t);n&&(this.docs=this.docs.remove(t),this.size-=n.size)},e.prototype.getEntry=function(t,n){var r=this.docs.get(n);return b.resolve(r?r.document.clone():ct.newInvalidDocument(n))},e.prototype.getEntries=function(t,n){var r=this,i=Ot();return n.forEach(function(o){var s=r.docs.get(o);i=i.insert(o,s?s.document.clone():ct.newInvalidDocument(o))}),b.resolve(i)},e.prototype.getDocumentsMatchingQuery=function(t,n,r){for(var i=Ot(),o=new N(n.path.child("")),s=this.docs.getIteratorFrom(o);s.hasNext();){var u=s.getNext(),a=u.key,c=u.value,h=c.document,l=c.readTime;if(!n.path.isPrefixOf(a.path))break;l.compareTo(r)<=0||Qn(n,h)&&(i=i.insert(h.key,h.clone()))}return b.resolve(i)},e.prototype.fs=function(t,n){return b.forEach(this.docs,function(r){return n(r)})},e.prototype.newChangeBuffer=function(t){return new Zf(this)},e.prototype.getSize=function(t){return b.resolve(this.size)},e}(),Zf=function(e){function t(n){var r=this;return(r=e.call(this)||this).Ie=n,r}return C(t,e),t.prototype.applyChanges=function(n){var r=this,i=[];return this.changes.forEach(function(o,s){s.document.isValidDocument()?i.push(r.Ie.addEntry(n,s.document,r.getReadTime(o))):r.Ie.removeEntry(o)}),b.waitFor(i)},t.prototype.getFromCache=function(n,r){return this.Ie.getEntry(n,r)},t.prototype.getAllFromCache=function(n,r){return this.Ie.getEntries(n,r)},t}(Dc),tp=function(){function e(t){this.persistence=t,this.ds=new sn(function(n){return Kn(n)},Qr),this.lastRemoteSnapshotVersion=P.min(),this.highestTargetId=0,this.ws=0,this._s=new qo,this.targetCount=0,this.ys=Nr.Jt()}return e.prototype.forEachTarget=function(t,n){return this.ds.forEach(function(r,i){return n(i)}),b.resolve()},e.prototype.getLastRemoteSnapshotVersion=function(t){return b.resolve(this.lastRemoteSnapshotVersion)},e.prototype.getHighestSequenceNumber=function(t){return b.resolve(this.ws)},e.prototype.allocateTargetId=function(t){return this.highestTargetId=this.ys.next(),b.resolve(this.highestTargetId)},e.prototype.setTargetsMetadata=function(t,n,r){return r&&(this.lastRemoteSnapshotVersion=r),n>this.ws&&(this.ws=n),b.resolve()},e.prototype.te=function(t){this.ds.set(t.target,t);var n=t.targetId;n>this.highestTargetId&&(this.ys=new Nr(n),this.highestTargetId=n),t.sequenceNumber>this.ws&&(this.ws=t.sequenceNumber)},e.prototype.addTargetData=function(t,n){return this.te(n),this.targetCount+=1,b.resolve()},e.prototype.updateTargetData=function(t,n){return this.te(n),b.resolve()},e.prototype.removeTargetData=function(t,n){return this.ds.delete(n.target),this._s.Zn(n.targetId),this.targetCount-=1,b.resolve()},e.prototype.removeTargets=function(t,n,r){var i=this,o=0,s=[];return this.ds.forEach(function(u,a){a.sequenceNumber<=n&&r.get(a.targetId)===null&&(i.ds.delete(u),s.push(i.removeMatchingKeysForTargetId(t,a.targetId)),o++)}),b.waitFor(s).next(function(){return o})},e.prototype.getTargetCount=function(t){return b.resolve(this.targetCount)},e.prototype.getTargetData=function(t,n){var r=this.ds.get(n)||null;return b.resolve(r)},e.prototype.addMatchingKeys=function(t,n,r){return this._s.Jn(n,r),b.resolve()},e.prototype.removeMatchingKeys=function(t,n,r){this._s.Xn(n,r);var i=this.persistence.referenceDelegate,o=[];return i&&n.forEach(function(s){o.push(i.markPotentiallyOrphaned(t,s))}),b.waitFor(o)},e.prototype.removeMatchingKeysForTargetId=function(t,n){return this._s.Zn(n),b.resolve()},e.prototype.getMatchingKeysForTargetId=function(t,n){var r=this._s.es(n);return b.resolve(r)},e.prototype.containsKey=function(t,n){return b.resolve(this._s.containsKey(n))},e}(),ep=function(){function e(t,n){var r=this;this.gs={},this.Ne=new St(0),this.xe=!1,this.xe=!0,this.referenceDelegate=t(this),this.qe=new tp(this),this.Ut=new xf,this.Ue=function(i,o){return new Jf(i,function(s){return r.referenceDelegate.ps(s)})}(this.Ut),this.R=new wc(n),this.Qe=new Xf(this.R)}return e.prototype.start=function(){return Promise.resolve()},e.prototype.shutdown=function(){return this.xe=!1,Promise.resolve()},Object.defineProperty(e.prototype,"started",{get:function(){return this.xe},enumerable:!1,configurable:!0}),e.prototype.setDatabaseDeletedListener=function(){},e.prototype.setNetworkEnabled=function(){},e.prototype.getIndexManager=function(){return this.Ut},e.prototype.getMutationQueue=function(t){var n=this.gs[t.toKey()];return n||(n=new Yf(this.Ut,this.referenceDelegate),this.gs[t.toKey()]=n),n},e.prototype.getTargetCache=function(){return this.qe},e.prototype.getRemoteDocumentCache=function(){return this.Ue},e.prototype.getBundleCache=function(){return this.Qe},e.prototype.runTransaction=function(t,n,r){var i=this;I("MemoryPersistence","Starting transaction:",t);var o=new np(this.Ne.next());return this.referenceDelegate.Es(),r(o).next(function(s){return i.referenceDelegate.Ts(o).next(function(){return s})}).toPromise().then(function(s){return o.raiseOnCommittedEvent(),s})},e.prototype.Is=function(t,n){return b.or(Object.values(this.gs).map(function(r){return function(){return r.containsKey(t,n)}}))},e}(),np=function(e){function t(n){var r=this;return(r=e.call(this)||this).currentSequenceNumber=n,r}return C(t,e),t}(mc),rp=function(){function e(t){this.persistence=t,this.As=new qo,this.Rs=null}return e.bs=function(t){return new e(t)},Object.defineProperty(e.prototype,"vs",{get:function(){if(this.Rs)return this.Rs;throw D()},enumerable:!1,configurable:!0}),e.prototype.addReference=function(t,n,r){return this.As.addReference(r,n),this.vs.delete(r.toString()),b.resolve()},e.prototype.removeReference=function(t,n,r){return this.As.removeReference(r,n),this.vs.add(r.toString()),b.resolve()},e.prototype.markPotentiallyOrphaned=function(t,n){return this.vs.add(n.toString()),b.resolve()},e.prototype.removeTarget=function(t,n){var r=this;this.As.Zn(n.targetId).forEach(function(o){return r.vs.add(o.toString())});var i=this.persistence.getTargetCache();return i.getMatchingKeysForTargetId(t,n.targetId).next(function(o){o.forEach(function(s){return r.vs.add(s.toString())})}).next(function(){return i.removeTargetData(t,n)})},e.prototype.Es=function(){this.Rs=new Set},e.prototype.Ts=function(t){var n=this,r=this.persistence.getRemoteDocumentCache().newChangeBuffer();return b.forEach(this.vs,function(i){var o=N.fromPath(i);return n.Ps(t,o).next(function(s){s||r.removeEntry(o)})}).next(function(){return n.Rs=null,r.apply(t)})},e.prototype.updateLimboDocument=function(t,n){var r=this;return this.Ps(t,n).next(function(i){i?r.vs.delete(n.toString()):r.vs.add(n.toString())})},e.prototype.ps=function(t){return 0},e.prototype.Ps=function(t,n){var r=this;return b.or([function(){return b.resolve(r.As.containsKey(n))},function(){return r.persistence.getTargetCache().containsKey(t,n)},function(){return r.persistence.Is(t,n)}])},e}(),Tt=function(){function e(t){this.uid=t}return e.prototype.isAuthenticated=function(){return this.uid!=null},e.prototype.toKey=function(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"},e.prototype.isEqual=function(t){return t.uid===this.uid},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function ou(e,t){return"firestore_clients_"+e+"_"+t}function su(e,t,n){var r="firestore_mutations_"+e+"_"+n;return t.isAuthenticated()&&(r+="_"+t.uid),r}function wi(e,t){return"firestore_targets_"+e+"_"+t}Tt.UNAUTHENTICATED=new Tt(null),Tt.GOOGLE_CREDENTIALS=new Tt("google-credentials-uid"),Tt.FIRST_PARTY=new Tt("first-party-uid");var uu=function(){function e(t,n,r,i){this.user=t,this.batchId=n,this.state=r,this.error=i}return e.Vs=function(t,n,r){var i,o=JSON.parse(r),s=typeof o=="object"&&["pending","acknowledged","rejected"].indexOf(o.state)!==-1&&(o.error===void 0||typeof o.error=="object");return s&&o.error&&(s=typeof o.error.message=="string"&&typeof o.error.code=="string")&&(i=new w(o.error.code,o.error.message)),s?new e(t,n,o.state,i):(W("SharedClientState","Failed to parse mutation state for ID '"+n+"': "+r),null)},e.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},e}(),bi=function(){function e(t,n,r){this.targetId=t,this.state=n,this.error=r}return e.Vs=function(t,n){var r,i=JSON.parse(n),o=typeof i=="object"&&["not-current","current","rejected"].indexOf(i.state)!==-1&&(i.error===void 0||typeof i.error=="object");return o&&i.error&&(o=typeof i.error.message=="string"&&typeof i.error.code=="string")&&(r=new w(i.error.code,i.error.message)),o?new e(t,i.state,r):(W("SharedClientState","Failed to parse target state for ID '"+t+"': "+n),null)},e.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},e}(),au=function(){function e(t,n){this.clientId=t,this.activeTargetIds=n}return e.Vs=function(t,n){for(var r=JSON.parse(n),i=typeof r=="object"&&r.activeTargetIds instanceof Array,o=Wr(),s=0;i&&s0){var f=a.getResponseJson().error;if(f&&f.status&&f.message){var y=function(p){var v=p.toLowerCase().replace(/_/g,"-");return Object.values(d).indexOf(v)>=0?v:d.UNKNOWN}(f.status);u(new w(y,f.message))}else u(new w(d.UNKNOWN,"Server responded with status "+a.getStatus()))}else u(new w(d.UNAVAILABLE,"Connection failed."));break;default:D()}}finally{I("Connection",'RPC "'+n+'" completed.')}});var c=JSON.stringify(o);a.send(r,"POST",c,i,15)})},t.prototype.$i=function(n,r){var i=[this.Di,"/","google.firestore.v1.Firestore","/",n,"/channel"],o=Ol(),s=Pl(),u={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:"projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling};this.Fi(u.initMessageHeaders,r),Sh()||Dh()||Nh()||Ah()||Ch()||kh()||(u.httpHeadersOverwriteParam="$httpHeaders");var a=i.join("");I("Connection","Creating WebChannel: "+a,u);var c=o.createWebChannel(a,u),h=!1,l=!1,f=new up({Ei:function(p){l?I("Connection","Not sending because WebChannel is closed:",p):(h||(I("Connection","Opening WebChannel transport."),c.open(),h=!0),I("Connection","WebChannel sending:",p),c.send(p))},Ti:function(){return c.close()}}),y=function(p,v,E){p.listen(v,function(T){try{E(T)}catch(k){setTimeout(function(){throw k},0)}})};return y(c,er.EventType.OPEN,function(){l||I("Connection","WebChannel transport opened.")}),y(c,er.EventType.CLOSE,function(){l||(l=!0,I("Connection","WebChannel transport closed"),f.Vi())}),y(c,er.EventType.ERROR,function(p){l||(l=!0,Mi("Connection","WebChannel transport errored:",p),f.Vi(new w(d.UNAVAILABLE,"The operation could not be completed")))}),y(c,er.EventType.MESSAGE,function(p){var v;if(!l){var E=p.data[0];x(!!E);var T=E,k=T.error||((v=T[0])===null||v===void 0?void 0:v.error);if(k){I("Connection","WebChannel received error:",k);var A=k.status,O=function(q){var et=Q[q];if(et!==void 0)return ic(et)}(A),M=k.message;O===void 0&&(O=d.INTERNAL,M="Unknown error status: "+A+" with message "+k.message),l=!0,f.Vi(new w(O,M)),c.close()}else I("Connection","WebChannel received:",E),f.Si(E)}}),y(s,Ml.STAT_EVENT,function(p){p.stat===Ds.PROXY?I("Connection","Detected buffering proxy"):p.stat===Ds.NOPROXY&&I("Connection","Detected no buffering proxy")}),setTimeout(function(){f.Pi()},0),f},t}(function(){function e(t){this.databaseInfo=t,this.databaseId=t.databaseId;var n=t.ssl?"https":"http";this.Di=n+"://"+t.host,this.Ci="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}return e.prototype.Ni=function(t,n,r,i){var o=this.xi(t,n);I("RestConnection","Sending: ",o,r);var s={};return this.Fi(s,i),this.ki(t,o,s,r).then(function(u){return I("RestConnection","Received: ",u),u},function(u){throw Mi("RestConnection",t+" failed with error: ",u,"url: ",o,"request:",r),u})},e.prototype.Oi=function(t,n,r,i){return this.Ni(t,n,r,i)},e.prototype.Fi=function(t,n){if(t["X-Goog-Api-Client"]="gl-js/ fire/8.3.3",t["X-Firebase-GMPID"]=this.databaseInfo.appId,t["Content-Type"]="text/plain",n)for(var r in n.authHeaders)n.authHeaders.hasOwnProperty(r)&&(t[r]=n.authHeaders[r])},e.prototype.xi=function(t,n){var r=sp[t];return this.Di+"/v1/"+n+":"+r},e}());/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *//** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Lc(){return typeof window<"u"?window:null}function cr(){return typeof document<"u"?document:null}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Yr(e){return new df(e,!0)}var Bo=function(){function e(t,n,r,i,o){r===void 0&&(r=1e3),i===void 0&&(i=1.5),o===void 0&&(o=6e4),this.Se=t,this.timerId=n,this.Mi=r,this.Li=i,this.Bi=o,this.qi=0,this.Ui=null,this.Qi=Date.now(),this.reset()}return e.prototype.reset=function(){this.qi=0},e.prototype.Ki=function(){this.qi=this.Bi},e.prototype.ji=function(t){var n=this;this.cancel();var r=Math.floor(this.qi+this.Wi()),i=Math.max(0,Date.now()-this.Qi),o=Math.max(0,r-i);o>0&&I("ExponentialBackoff","Backing off for "+o+" ms (base delay: "+this.qi+" ms, delay with jitter: "+r+" ms, last attempt: "+i+" ms ago)"),this.Ui=this.Se.enqueueAfterDelay(this.timerId,o,function(){return n.Qi=Date.now(),t()}),this.qi*=this.Li,this.qithis.Bi&&(this.qi=this.Bi)},e.prototype.Gi=function(){this.Ui!==null&&(this.Ui.skipDelay(),this.Ui=null)},e.prototype.cancel=function(){this.Ui!==null&&(this.Ui.cancel(),this.Ui=null)},e.prototype.Wi=function(){return(Math.random()-.5)*this.qi},e}(),Mc=function(){function e(t,n,r,i,o,s){this.Se=t,this.zi=r,this.Hi=i,this.Ji=o,this.listener=s,this.state=0,this.Yi=0,this.Xi=null,this.stream=null,this.Zi=new Bo(t,n)}return e.prototype.tr=function(){return this.state===1||this.state===2||this.state===4},e.prototype.er=function(){return this.state===2},e.prototype.start=function(){this.state!==3?this.auth():this.nr()},e.prototype.stop=function(){return g(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return this.tr()?[4,this.close(0)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}})})},e.prototype.sr=function(){this.state=0,this.Zi.reset()},e.prototype.ir=function(){var t=this;this.er()&&this.Xi===null&&(this.Xi=this.Se.enqueueAfterDelay(this.zi,6e4,function(){return t.rr()}))},e.prototype.cr=function(t){this.ur(),this.stream.send(t)},e.prototype.rr=function(){return g(this,void 0,void 0,function(){return m(this,function(t){return this.er()?[2,this.close(0)]:[2]})})},e.prototype.ur=function(){this.Xi&&(this.Xi.cancel(),this.Xi=null)},e.prototype.close=function(t,n){return g(this,void 0,void 0,function(){return m(this,function(r){switch(r.label){case 0:return this.ur(),this.Zi.cancel(),this.Yi++,t!==3?this.Zi.reset():n&&n.code===d.RESOURCE_EXHAUSTED?(W(n.toString()),W("Using maximum backoff delay to prevent overloading the backend."),this.Zi.Ki()):n&&n.code===d.UNAUTHENTICATED&&this.Ji.invalidateToken(),this.stream!==null&&(this.ar(),this.stream.close(),this.stream=null),this.state=t,[4,this.listener.Ri(n)];case 1:return r.sent(),[2]}})})},e.prototype.ar=function(){},e.prototype.auth=function(){var t=this;this.state=1;var n=this.hr(this.Yi),r=this.Yi;this.Ji.getToken().then(function(i){t.Yi===r&&t.lr(i)},function(i){n(function(){var o=new w(d.UNKNOWN,"Fetching auth token failed: "+i.message);return t.dr(o)})})},e.prototype.lr=function(t){var n=this,r=this.hr(this.Yi);this.stream=this.wr(t),this.stream.Ii(function(){r(function(){return n.state=2,n.listener.Ii()})}),this.stream.Ri(function(i){r(function(){return n.dr(i)})}),this.stream.onMessage(function(i){r(function(){return n.onMessage(i)})})},e.prototype.nr=function(){var t=this;this.state=4,this.Zi.ji(function(){return g(t,void 0,void 0,function(){return m(this,function(n){return this.state=0,this.start(),[2]})})})},e.prototype.dr=function(t){return I("PersistentStream","close with error: "+t),this.stream=null,this.close(3,t)},e.prototype.hr=function(t){var n=this;return function(r){n.Se.enqueueAndForget(function(){return n.Yi===t?r():(I("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())})}},e}(),cp=function(e){function t(n,r,i,o,s){var u=this;return(u=e.call(this,n,"listen_stream_connection_backoff","listen_stream_idle",r,i,s)||this).R=o,u}return C(t,e),t.prototype.wr=function(n){return this.Hi.$i("Listen",n)},t.prototype.onMessage=function(n){this.Zi.reset();var r=function(o,s){var u;if("targetChange"in s){s.targetChange;var a=function(E){return E==="NO_CHANGE"?0:E==="ADD"?1:E==="REMOVE"?2:E==="CURRENT"?3:E==="RESET"?4:D()}(s.targetChange.targetChangeType||"NO_CHANGE"),c=s.targetChange.targetIds||[],h=function(E,T){return E.I?(x(T===void 0||typeof T=="string"),wt.fromBase64String(T||"")):(x(T===void 0||T instanceof Uint8Array),wt.fromUint8Array(T||new Uint8Array))}(o,s.targetChange.resumeToken),l=(f=s.targetChange.cause)&&function(E){var T=E.code===void 0?d.UNKNOWN:ic(E.code);return new w(T,E.message||"")}(f);u=new sc(a,c,h,l||null)}else if("documentChange"in s){s.documentChange,(a=s.documentChange).document,a.document.name,a.document.updateTime,c=jt(o,a.document.name),h=yt(a.document.updateTime);var f=new _t({mapValue:{fields:a.document.fields}}),y=(l=ct.newFoundDocument(c,h,f),a.targetIds||[]),p=a.removedTargetIds||[];u=new ar(y,p,l.key,l)}else if("documentDelete"in s)s.documentDelete,(a=s.documentDelete).document,c=jt(o,a.document),h=a.readTime?yt(a.readTime):P.min(),f=ct.newNoDocument(c,h),l=a.removedTargetIds||[],u=new ar([],l,f.key,f);else if("documentRemove"in s)s.documentRemove,(a=s.documentRemove).document,c=jt(o,a.document),h=a.removedTargetIds||[],u=new ar([],h,c,null);else{if(!("filter"in s))return D();s.filter;var v=s.filter;v.targetId,a=v.count||0,c=new rf(a),h=v.targetId,u=new oc(h,c)}return u}(this.R,n),i=function(o){if(!("targetChange"in o))return P.min();var s=o.targetChange;return s.targetIds&&s.targetIds.length?P.min():s.readTime?yt(s.readTime):P.min()}(n);return this.listener._r(r,i)},t.prototype.mr=function(n){var r={};r.database=An(this.R),r.addTarget=function(o,s){var u,a=s.target;return(u=Er(a)?{documents:lc(o,a)}:{query:fc(o,a)}).targetId=s.targetId,s.resumeToken.approximateByteSize()>0?u.resumeToken=uc(o,s.resumeToken):s.snapshotVersion.compareTo(P.min())>0&&(u.readTime=Dn(o,s.snapshotVersion.toTimestamp())),u}(this.R,n);var i=function(o,s){var u=function(a,c){switch(c){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return D()}}(0,s.purpose);return u==null?null:{"goog-listen-tags":u}}(this.R,n);i&&(r.labels=i),this.cr(r)},t.prototype.yr=function(n){var r={};r.database=An(this.R),r.removeTarget=n,this.cr(r)},t}(Mc),hp=function(e){function t(n,r,i,o,s){var u=this;return(u=e.call(this,n,"write_stream_connection_backoff","write_stream_idle",r,i,s)||this).R=o,u.gr=!1,u}return C(t,e),Object.defineProperty(t.prototype,"pr",{get:function(){return this.gr},enumerable:!1,configurable:!0}),t.prototype.start=function(){this.gr=!1,this.lastStreamToken=void 0,e.prototype.start.call(this)},t.prototype.ar=function(){this.gr&&this.Er([])},t.prototype.wr=function(n){return this.Hi.$i("Write",n)},t.prototype.onMessage=function(n){if(x(!!n.streamToken),this.lastStreamToken=n.streamToken,this.gr){this.Zi.reset();var r=function(o,s){return o&&o.length>0?(x(s!==void 0),o.map(function(u){return function(a,c){var h=a.updateTime?yt(a.updateTime):yt(c);return h.isEqual(P.min())&&(h=yt(c)),new tf(h,a.transformResults||[])}(u,s)})):[]}(n.writeResults,n.commitTime),i=yt(n.commitTime);return this.listener.Tr(i,r)}return x(!n.writeResults||n.writeResults.length===0),this.gr=!0,this.listener.Ir()},t.prototype.Ar=function(){var n={};n.database=An(this.R),this.cr(n)},t.prototype.Er=function(n){var r=this,i={streamToken:this.lastStreamToken,writes:n.map(function(o){return Sr(r.R,o)})};this.cr(i)},t}(Mc),lp=function(e){function t(n,r,i){var o=this;return(o=e.call(this)||this).credentials=n,o.Hi=r,o.R=i,o.Rr=!1,o}return C(t,e),t.prototype.br=function(){if(this.Rr)throw new w(d.FAILED_PRECONDITION,"The client has already been terminated.")},t.prototype.Ni=function(n,r,i){var o=this;return this.br(),this.credentials.getToken().then(function(s){return o.Hi.Ni(n,r,i,s)}).catch(function(s){throw s.code===d.UNAUTHENTICATED&&o.credentials.invalidateToken(),s})},t.prototype.Oi=function(n,r,i){var o=this;return this.br(),this.credentials.getToken().then(function(s){return o.Hi.Oi(n,r,i,s)}).catch(function(s){throw s.code===d.UNAUTHENTICATED&&o.credentials.invalidateToken(),s})},t.prototype.terminate=function(){this.Rr=!1},t}(function(){}),fp=function(){function e(t,n){this.asyncQueue=t,this.onlineStateHandler=n,this.state="Unknown",this.vr=0,this.Pr=null,this.Vr=!0}return e.prototype.Sr=function(){var t=this;this.vr===0&&(this.Dr("Unknown"),this.Pr=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,function(){return t.Pr=null,t.Cr("Backend didn't respond within 10 seconds."),t.Dr("Offline"),Promise.resolve()}))},e.prototype.Nr=function(t){this.state==="Online"?this.Dr("Unknown"):(this.vr++,this.vr>=1&&(this.Fr(),this.Cr("Connection failed 1 times. Most recent error: "+t.toString()),this.Dr("Offline")))},e.prototype.set=function(t){this.Fr(),this.vr=0,t==="Online"&&(this.Vr=!1),this.Dr(t)},e.prototype.Dr=function(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))},e.prototype.Cr=function(t){var n="Could not reach Cloud Firestore backend. "+t+` -This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.Vr?(W(n),this.Vr=!1):I("OnlineStateTracker",n)},e.prototype.Fr=function(){this.Pr!==null&&(this.Pr.cancel(),this.Pr=null)},e}(),pp=function(e,t,n,r,i){var o=this;this.localStore=e,this.datastore=t,this.asyncQueue=n,this.remoteSyncer={},this.kr=[],this.Or=new Map,this.$r=new Set,this.Mr=[],this.Lr=i,this.Lr.di(function(s){n.enqueueAndForget(function(){return g(o,void 0,void 0,function(){return m(this,function(u){switch(u.label){case 0:return he(this)?(I("RemoteStore","Restarting streams for network reachability change."),[4,function(a){return g(this,void 0,void 0,function(){var c;return m(this,function(h){switch(h.label){case 0:return(c=_(a)).$r.add(4),[4,un(c)];case 1:return h.sent(),c.Br.set("Unknown"),c.$r.delete(4),[4,Xn(c)];case 2:return h.sent(),[2]}})})}(this)]):[3,2];case 1:u.sent(),u.label=2;case 2:return[2]}})})})}),this.Br=new fp(n,r)};/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Xn(e){return g(this,void 0,void 0,function(){var t,n;return m(this,function(r){switch(r.label){case 0:if(!he(e))return[3,4];t=0,n=e.Mr,r.label=1;case 1:return t0}function he(e){return _(e).$r.size===0}function Vc(e){e.qr=void 0}function dp(e){return g(this,void 0,void 0,function(){return m(this,function(t){return e.Or.forEach(function(n,r){jo(e,n)}),[2]})})}function yp(e,t){return g(this,void 0,void 0,function(){return m(this,function(n){return Vc(e),Go(e)?(e.Br.Nr(t),Ko(e)):e.Br.set("Unknown"),[2]})})}function vp(e,t,n){return g(this,void 0,void 0,function(){var r,i,o;return m(this,function(s){switch(s.label){case 0:if(e.Br.set("Online"),!(t instanceof sc&&t.state===2&&t.cause))return[3,6];s.label=1;case 1:return s.trys.push([1,3,,5]),[4,function(u,a){return g(this,void 0,void 0,function(){var c,h,l,f;return m(this,function(y){switch(y.label){case 0:c=a.cause,h=0,l=a.targetIds,y.label=1;case 1:return h=0?[4,function(u,a){var c=u.qr.ut(a);return c.targetChanges.forEach(function(h,l){if(h.resumeToken.approximateByteSize()>0){var f=u.Or.get(l);f&&u.Or.set(l,f.withResumeToken(h.resumeToken,a))}}),c.targetMismatches.forEach(function(h){var l=u.Or.get(h);if(l){u.Or.set(h,l.withResumeToken(wt.EMPTY_BYTE_STRING,l.snapshotVersion)),Fc(u,h);var f=new Xr(l.target,h,1,l.sequenceNumber);jo(u,f)}}),u.remoteSyncer.applyRemoteEvent(c)}(e,n)]:[3,10];case 9:s.sent(),s.label=10;case 10:return[3,13];case 11:return I("RemoteStore","Failed to raise snapshot:",o=s.sent()),[4,kr(e,o)];case 12:return s.sent(),[3,13];case 13:return[2]}})})}function kr(e,t,n){return g(this,void 0,void 0,function(){var r=this;return m(this,function(i){switch(i.label){case 0:if(!De(t))throw t;return e.$r.add(1),[4,un(e)];case 1:return i.sent(),e.Br.set("Offline"),n||(n=function(){return xc(e.localStore)}),e.asyncQueue.enqueueRetryable(function(){return g(r,void 0,void 0,function(){return m(this,function(o){switch(o.label){case 0:return I("RemoteStore","Retrying IndexedDB access"),[4,n()];case 1:return o.sent(),e.$r.delete(1),[4,Xn(e)];case 2:return o.sent(),[2]}})})}),[2]}})})}function Uc(e,t){return t().catch(function(n){return kr(e,n,t)})}function an(e){return g(this,void 0,void 0,function(){var t,n,r,i,o;return m(this,function(s){switch(s.label){case 0:t=_(e),n=se(t),r=t.kr.length>0?t.kr[t.kr.length-1].batchId:-1,s.label=1;case 1:if(!function(u){return he(u)&&u.kr.length<10}(t))return[3,7];s.label=2;case 2:return s.trys.push([2,4,,6]),[4,Hf(t.localStore,r)];case 3:return(i=s.sent())===null?(t.kr.length===0&&n.ir(),[3,7]):(r=i.batchId,function(u,a){u.kr.push(a);var c=se(u);c.er()&&c.pr&&c.Er(a.mutations)}(t,i),[3,6]);case 4:return o=s.sent(),[4,kr(t,o)];case 5:return s.sent(),[3,6];case 6:return[3,1];case 7:return qc(t)&&Bc(t),[2]}})})}function qc(e){return he(e)&&!se(e).tr()&&e.kr.length>0}function Bc(e){se(e).start()}function mp(e){return g(this,void 0,void 0,function(){return m(this,function(t){return se(e).Ar(),[2]})})}function gp(e){return g(this,void 0,void 0,function(){var t,n,r,i;return m(this,function(o){for(t=se(e),n=0,r=e.kr;n0&&(I("RemoteStore","Stopping write stream with "+e.kr.length+" pending writes"),e.kr=[]),r.label=4;case 4:return[2]}})})})),e.Qr}var Ip=function(){function e(t,n,r,i,o){this.asyncQueue=t,this.timerId=n,this.targetTimeMs=r,this.op=i,this.removalCallback=o,this.deferred=new kt,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(function(s){})}return e.createAndSchedule=function(t,n,r,i,o){var s=new e(t,n,Date.now()+r,i,o);return s.start(r),s},e.prototype.start=function(t){var n=this;this.timerHandle=setTimeout(function(){return n.handleDelayElapsed()},t)},e.prototype.skipDelay=function(){return this.handleDelayElapsed()},e.prototype.cancel=function(t){this.timerHandle!==null&&(this.clearTimeout(),this.deferred.reject(new w(d.CANCELLED,"Operation cancelled"+(t?": "+t:""))))},e.prototype.handleDelayElapsed=function(){var t=this;this.asyncQueue.enqueueAndForget(function(){return t.timerHandle!==null?(t.clearTimeout(),t.op().then(function(n){return t.deferred.resolve(n)})):Promise.resolve()})},e.prototype.clearTimeout=function(){this.timerHandle!==null&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)},e}();function hn(e,t){if(W("AsyncQueue",t+": "+e),De(e))return new w(d.UNAVAILABLE,t+": "+e);throw e}/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var jc=function(){function e(t){this.comparator=t?function(n,r){return t(n,r)||N.comparator(n.key,r.key)}:function(n,r){return N.comparator(n.key,r.key)},this.keyedMap=ji(),this.sortedSet=new ht(this.comparator)}return e.emptySet=function(t){return new e(t.comparator)},e.prototype.has=function(t){return this.keyedMap.get(t)!=null},e.prototype.get=function(t){return this.keyedMap.get(t)},e.prototype.first=function(){return this.sortedSet.minKey()},e.prototype.last=function(){return this.sortedSet.maxKey()},e.prototype.isEmpty=function(){return this.sortedSet.isEmpty()},e.prototype.indexOf=function(t){var n=this.keyedMap.get(t);return n?this.sortedSet.indexOf(n):-1},Object.defineProperty(e.prototype,"size",{get:function(){return this.sortedSet.size},enumerable:!1,configurable:!0}),e.prototype.forEach=function(t){this.sortedSet.inorderTraversal(function(n,r){return t(n),!1})},e.prototype.add=function(t){var n=this.delete(t.key);return n.copy(n.keyedMap.insert(t.key,t),n.sortedSet.insert(t,null))},e.prototype.delete=function(t){var n=this.get(t);return n?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(n)):this},e.prototype.isEqual=function(t){if(!(t instanceof e)||this.size!==t.size)return!1;for(var n=this.sortedSet.getIterator(),r=t.sortedSet.getIterator();n.hasNext();){var i=n.getNext().key,o=r.getNext().key;if(!i.isEqual(o))return!1}return!0},e.prototype.toString=function(){var t=[];return this.forEach(function(n){t.push(n.toString())}),t.length===0?"DocumentSet ()":`DocumentSet ( - `+t.join(` -`)+` -)`},e.prototype.copy=function(t,n){var r=new e;return r.comparator=this.comparator,r.keyedMap=t,r.sortedSet=n,r},e}(),hu=function(){function e(){this.Kr=new ht(N.comparator)}return e.prototype.track=function(t){var n=t.doc.key,r=this.Kr.get(n);r?t.type!==0&&r.type===3?this.Kr=this.Kr.insert(n,t):t.type===3&&r.type!==1?this.Kr=this.Kr.insert(n,{type:r.type,doc:t.doc}):t.type===2&&r.type===2?this.Kr=this.Kr.insert(n,{type:2,doc:t.doc}):t.type===2&&r.type===0?this.Kr=this.Kr.insert(n,{type:0,doc:t.doc}):t.type===1&&r.type===0?this.Kr=this.Kr.remove(n):t.type===1&&r.type===2?this.Kr=this.Kr.insert(n,{type:1,doc:r.doc}):t.type===0&&r.type===1?this.Kr=this.Kr.insert(n,{type:2,doc:t.doc}):D():this.Kr=this.Kr.insert(n,t)},e.prototype.jr=function(){var t=[];return this.Kr.inorderTraversal(function(n,r){t.push(r)}),t},e}(),xr=function(){function e(t,n,r,i,o,s,u,a){this.query=t,this.docs=n,this.oldDocs=r,this.docChanges=i,this.mutatedKeys=o,this.fromCache=s,this.syncStateChanged=u,this.excludesMetadataChanges=a}return e.fromInitialDocuments=function(t,n,r,i){var o=[];return n.forEach(function(s){o.push({type:0,doc:s})}),new e(t,n,jc.emptySet(n),o,r,i,!0,!1)},Object.defineProperty(e.prototype,"hasPendingWrites",{get:function(){return!this.mutatedKeys.isEmpty()},enumerable:!1,configurable:!0}),e.prototype.isEqual=function(t){if(!(this.fromCache===t.fromCache&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&zn(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;var n=this.docChanges,r=t.docChanges;if(n.length!==r.length)return!1;for(var i=0;i=0&&(o.listeners.splice(s,1),i=o.listeners.length===0),i?[2,(n.queries.delete(r),n.onUnlisten(r))]:[2]})})}function _p(e,t){for(var n=_(e),r=!1,i=0,o=t;i0)return!0;var n=this.Xr&&this.Xr.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!n)&&this.options.includeMetadataChanges===!0},e.prototype.no=function(t){t=xr.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache),this.Yr=!0,this.Jr.next(t)},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Kc=function(e){this.key=e},Gc=function(e){this.key=e},zc=function(){function e(t,n){this.query=t,this.uo=n,this.ao=null,this.current=!1,this.ho=B(),this.mutatedKeys=B(),this.lo=Ha(t),this.fo=new jc(this.lo)}return Object.defineProperty(e.prototype,"wo",{get:function(){return this.uo},enumerable:!1,configurable:!0}),e.prototype._o=function(t,n){var r=this,i=n?n.mo:new hu,o=n?n.fo:this.fo,s=n?n.mutatedKeys:this.mutatedKeys,u=o,a=!1,c=sr(this.query)&&o.size===this.query.limit?o.last():null,h=_r(this.query)&&o.size===this.query.limit?o.first():null;if(t.inorderTraversal(function(f,y){var p=o.get(f),v=Qn(r.query,y)?y:null,E=!!p&&r.mutatedKeys.has(p.key),T=!!v&&(v.hasLocalMutations||r.mutatedKeys.has(v.key)&&v.hasCommittedMutations),k=!1;p&&v?p.data.isEqual(v.data)?E!==T&&(i.track({type:3,doc:v}),k=!0):r.yo(p,v)||(i.track({type:2,doc:v}),k=!0,(c&&r.lo(v,c)>0||h&&r.lo(v,h)<0)&&(a=!0)):!p&&v?(i.track({type:0,doc:v}),k=!0):p&&!v&&(i.track({type:1,doc:p}),k=!0,(c||h)&&(a=!0)),k&&(v?(u=u.add(v),s=T?s.add(f):s.delete(f)):(u=u.delete(f),s=s.delete(f)))}),sr(this.query)||_r(this.query))for(;u.size>this.query.limit;){var l=sr(this.query)?u.last():u.first();u=u.delete(l.key),s=s.delete(l.key),i.track({type:1,doc:l})}return{fo:u,mo:i,Nn:a,mutatedKeys:s}},e.prototype.yo=function(t,n){return t.hasLocalMutations&&n.hasCommittedMutations&&!n.hasLocalMutations},e.prototype.applyChanges=function(t,n,r){var i=this,o=this.fo;this.fo=t.fo,this.mutatedKeys=t.mutatedKeys;var s=t.mo.jr();s.sort(function(h,l){return function(f,y){var p=function(v){switch(v){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return D()}};return p(f)-p(y)}(h.type,l.type)||i.lo(h.doc,l.doc)}),this.po(r);var u=n?this.Eo():[],a=this.ho.size===0&&this.current?1:0,c=a!==this.ao;return this.ao=a,s.length!==0||c?{snapshot:new xr(this.query,t.fo,o,s,t.mutatedKeys,a===0,c,!1),To:u}:{To:u}},e.prototype.zr=function(t){return this.current&&t==="Offline"?(this.current=!1,this.applyChanges({fo:this.fo,mo:new hu,mutatedKeys:this.mutatedKeys,Nn:!1},!1)):{To:[]}},e.prototype.Io=function(t){return!this.uo.has(t)&&!!this.fo.has(t)&&!this.fo.get(t).hasLocalMutations},e.prototype.po=function(t){var n=this;t&&(t.addedDocuments.forEach(function(r){return n.uo=n.uo.add(r)}),t.modifiedDocuments.forEach(function(r){}),t.removedDocuments.forEach(function(r){return n.uo=n.uo.delete(r)}),this.current=t.current)},e.prototype.Eo=function(){var t=this;if(!this.current)return[];var n=this.ho;this.ho=B(),this.fo.forEach(function(i){t.Io(i.key)&&(t.ho=t.ho.add(i.key))});var r=[];return n.forEach(function(i){t.ho.has(i)||r.push(new Gc(i))}),this.ho.forEach(function(i){n.has(i)||r.push(new Kc(i))}),r},e.prototype.Ao=function(t){this.uo=t.Bn,this.ho=B();var n=this._o(t.documents);return this.applyChanges(n,!0)},e.prototype.Ro=function(){return xr.fromInitialDocuments(this.query,this.fo,this.mutatedKeys,this.ao===0)},e}(),Dp=function(e,t,n){this.query=e,this.targetId=t,this.view=n},Np=function(e){this.key=e,this.bo=!1},Ap=function(){function e(t,n,r,i,o,s){this.localStore=t,this.remoteStore=n,this.eventManager=r,this.sharedClientState=i,this.currentUser=o,this.maxConcurrentLimboResolutions=s,this.vo={},this.Po=new sn(function(u){return $a(u)},zn),this.Vo=new Map,this.So=new Set,this.Do=new ht(N.comparator),this.Co=new Map,this.No=new qo,this.xo={},this.Fo=new Map,this.ko=Nr.Yt(),this.onlineState="Unknown",this.Oo=void 0}return Object.defineProperty(e.prototype,"isPrimaryClient",{get:function(){return this.Oo===!0},enumerable:!1,configurable:!0}),e}();function Cp(e,t){return g(this,void 0,void 0,function(){var n,r,i,o,s,u;return m(this,function(a){switch(a.label){case 0:return n=Zo(e),(o=n.Po.get(t))?(r=o.targetId,n.sharedClientState.addLocalQueryTarget(r),i=o.view.Ro(),[3,4]):[3,1];case 1:return[4,Ar(n.localStore,Ut(t))];case 2:return s=a.sent(),u=n.sharedClientState.addLocalQueryTarget(s.targetId),r=s.targetId,[4,Wo(n,t,r,u==="current")];case 3:i=a.sent(),n.isPrimaryClient&&Jr(n.remoteStore,s),a.label=4;case 4:return[2,i]}})})}function Wo(e,t,n,r){return g(this,void 0,void 0,function(){var i,o,s,u,a,c;return m(this,function(h){switch(h.label){case 0:return e.$o=function(l,f,y){return function(p,v,E,T){return g(this,void 0,void 0,function(){var k,A,O;return m(this,function(M){switch(M.label){case 0:return k=v.view._o(E),k.Nn?[4,Cr(p.localStore,v.query,!1).then(function(q){var et=q.documents;return v.view._o(et,k)})]:[3,2];case 1:k=M.sent(),M.label=2;case 2:return A=T&&T.targetChanges.get(v.targetId),O=v.view.applyChanges(k,p.isPrimaryClient,A),[2,($i(p,v.targetId,O.To),O.snapshot)]}})})}(e,l,f,y)},[4,Cr(e.localStore,t,!0)];case 1:return i=h.sent(),o=new zc(t,i.Bn),s=o._o(i.documents),u=Oo.createSynthesizedTargetChangeForCurrentChange(n,r&&e.onlineState!=="Offline"),a=o.applyChanges(s,e.isPrimaryClient,u),$i(e,n,a.To),c=new Dp(t,n,o),[2,(e.Po.set(t,c),e.Vo.has(n)?e.Vo.get(n).push(t):e.Vo.set(n,[t]),a.snapshot)]}})})}function kp(e,t){return g(this,void 0,void 0,function(){var n,r,i;return m(this,function(o){switch(o.label){case 0:return n=_(e),r=n.Po.get(t),(i=n.Vo.get(r.targetId)).length>1?[2,(n.Vo.set(r.targetId,i.filter(function(s){return!zn(s,t)})),void n.Po.delete(t))]:n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)?[3,2]:[4,Je(n.localStore,r.targetId,!1).then(function(){n.sharedClientState.clearQueryState(r.targetId),Cn(n.remoteStore,r.targetId),Ze(n,r.targetId)}).catch(Ne)]):[3,3];case 1:o.sent(),o.label=2;case 2:return[3,5];case 3:return Ze(n,r.targetId),[4,Je(n.localStore,r.targetId,!0)];case 4:o.sent(),o.label=5;case 5:return[2]}})})}function xp(e,t,n){return g(this,void 0,void 0,function(){var r,i,o,s;return m(this,function(u){switch(u.label){case 0:r=ts(e),u.label=1;case 1:return u.trys.push([1,5,,6]),[4,function(a,c){var h,l=_(a),f=gt.now(),y=c.reduce(function(p,v){return p.add(v.key)},B());return l.persistence.runTransaction("Locally write mutations","readwrite",function(p){return l.Mn.pn(p,y).next(function(v){h=v;for(var E=[],T=0,k=c;T0?u.bo=!0:o.modifiedDocuments.size>0?x(u.bo):o.removedDocuments.size>0&&(x(u.bo),u.bo=!1))}),[4,le(n,r,t)];case 3:return i.sent(),[3,6];case 4:return[4,Ne(i.sent())];case 5:return i.sent(),[3,6];case 6:return[2]}})})}function lu(e,t,n){var r=_(e);if(r.isPrimaryClient&&n===0||!r.isPrimaryClient&&n===1){var i=[];r.Po.forEach(function(o,s){var u=s.view.zr(t);u.snapshot&&i.push(u.snapshot)}),function(o,s){var u=_(o);u.onlineState=s;var a=!1;u.queries.forEach(function(c,h){for(var l=0,f=h.listeners;l0&&e.Do.size0)throw new w(d.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes.");return[4,function(o,s){return g(this,void 0,void 0,function(){var u,a,c,h,l,f;return m(this,function(y){switch(y.label){case 0:return u=_(o),a=An(u.R)+"/documents",c={documents:s.map(function(p){return Nn(u.R,p)})},[4,u.Oi("BatchGetDocuments",a,c)];case 1:return h=y.sent(),l=new Map,h.forEach(function(p){var v=function(E,T){return"found"in T?function(k,A){x(!!A.found),A.found.name,A.found.updateTime;var O=jt(k,A.found.name),M=yt(A.found.updateTime),q=new _t({mapValue:{fields:A.found.fields}});return ct.newFoundDocument(O,M,q)}(E,T):"missing"in T?function(k,A){x(!!A.missing),x(!!A.readTime);var O=jt(k,A.missing),M=yt(A.readTime);return ct.newNoDocument(O,M)}(E,T):D()}(u.R,p);l.set(v.key.toString(),v)}),f=[],[2,(s.forEach(function(p){var v=l.get(p.toString());x(!!v),f.push(v)}),f)]}})})}(this.datastore,t)];case 1:return[2,((n=i.sent()).forEach(function(o){return r.recordVersion(o)}),n)]}})})},e.prototype.set=function(t,n){this.write(n.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())},e.prototype.update=function(t,n){try{this.write(n.toMutation(t,this.preconditionForUpdate(t)))}catch(r){this.lastWriteError=r}this.writtenDocs.add(t.toString())},e.prototype.delete=function(t){this.write(new Wn(t,this.precondition(t))),this.writtenDocs.add(t.toString())},e.prototype.commit=function(){return g(this,void 0,void 0,function(){var t,n=this;return m(this,function(r){switch(r.label){case 0:if(this.ensureCommitNotCalled(),this.lastWriteError)throw this.lastWriteError;return t=this.readVersions,this.mutations.forEach(function(i){t.delete(i.key.toString())}),t.forEach(function(i,o){var s=N.fromPath(o);n.mutations.push(new xo(s,n.precondition(s)))}),[4,function(i,o){return g(this,void 0,void 0,function(){var s,u,a;return m(this,function(c){switch(c.label){case 0:return s=_(i),u=An(s.R)+"/documents",a={writes:o.map(function(h){return Sr(s.R,h)})},[4,s.Ni("Commit",u,a)];case 1:return c.sent(),[2]}})})}(this.datastore,this.mutations)];case 1:return r.sent(),this.committed=!0,[2]}})})},e.prototype.recordVersion=function(t){var n;if(t.isFoundDocument())n=t.version;else{if(!t.isNoDocument())throw D();n=P.min()}var r=this.readVersions.get(t.key.toString());if(r){if(!n.isEqual(r))throw new w(d.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),n)},e.prototype.precondition=function(t){var n=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&n?st.updateTime(n):st.none()},e.prototype.preconditionForUpdate=function(t){var n=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&n){if(n.isEqual(P.min()))throw new w(d.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return st.updateTime(n)}return st.exists(!0)},e.prototype.write=function(t){this.ensureCommitNotCalled(),this.mutations.push(t)},e.prototype.ensureCommitNotCalled=function(){},e}(),Hp=function(){function e(t,n,r,i){this.asyncQueue=t,this.datastore=n,this.updateFunction=r,this.deferred=i,this.ec=5,this.Zi=new Bo(this.asyncQueue,"transaction_retry")}return e.prototype.run=function(){this.nc()},e.prototype.nc=function(){var t=this;this.Zi.ji(function(){return g(t,void 0,void 0,function(){var n,r,i=this;return m(this,function(o){return n=new $p(this.datastore),(r=this.sc(n))&&r.then(function(s){i.asyncQueue.enqueueAndForget(function(){return n.commit().then(function(){i.deferred.resolve(s)}).catch(function(u){i.ic(u)})})}).catch(function(s){i.ic(s)}),[2]})})})},e.prototype.sc=function(t){try{var n=this.updateFunction(t);return!Se(n)&&n.catch&&n.then?n:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(r){return this.deferred.reject(r),null}},e.prototype.ic=function(t){var n=this;this.ec>0&&this.rc(t)?(this.ec-=1,this.asyncQueue.enqueueAndForget(function(){return n.nc(),Promise.resolve()})):this.deferred.reject(t)},e.prototype.rc=function(t){if(t.name==="FirebaseError"){var n=t.code;return n==="aborted"||n==="failed-precondition"||!rc(n)}return!1},e}(),Wp=function(){function e(t,n,r){var i=this;this.credentials=t,this.asyncQueue=n,this.databaseInfo=r,this.user=Tt.UNAUTHENTICATED,this.clientId=Fa.u(),this.credentialListener=function(){},this.receivedInitialUser=new kt,this.credentials.setChangeListener(function(o){I("FirestoreClient","Received user=",o.uid),i.user=o,i.credentialListener(o),i.receivedInitialUser.resolve()})}return e.prototype.getConfiguration=function(){return g(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return[4,this.receivedInitialUser.promise];case 1:return[2,(t.sent(),{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,credentials:this.credentials,initialUser:this.user,maxConcurrentLimboResolutions:100})]}})})},e.prototype.setCredentialChangeListener=function(t){var n=this;this.credentialListener=t,this.receivedInitialUser.promise.then(function(){return n.credentialListener(n.user)})},e.prototype.verifyNotTerminated=function(){if(this.asyncQueue.isShuttingDown)throw new w(d.FAILED_PRECONDITION,"The client has already been terminated.")},e.prototype.terminate=function(){var t=this;this.asyncQueue.enterRestrictedMode();var n=new kt;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(function(){return g(t,void 0,void 0,function(){var r,i;return m(this,function(o){switch(o.label){case 0:return o.trys.push([0,5,,6]),this.onlineComponents?[4,this.onlineComponents.terminate()]:[3,2];case 1:o.sent(),o.label=2;case 2:return this.offlineComponents?[4,this.offlineComponents.terminate()]:[3,4];case 3:o.sent(),o.label=4;case 4:return this.credentials.removeChangeListener(),n.resolve(),[3,6];case 5:return r=o.sent(),i=hn(r,"Failed to shutdown persistence"),n.reject(i),[3,6];case 6:return[2]}})})}),n.promise},e}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Yc(e,t){return g(this,void 0,void 0,function(){var n,r,i=this;return m(this,function(o){switch(o.label){case 0:return e.asyncQueue.verifyOperationInProgress(),I("FirestoreClient","Initializing OfflineComponentProvider"),[4,e.getConfiguration()];case 1:return n=o.sent(),[4,t.initialize(n)];case 2:return o.sent(),r=n.initialUser,e.setCredentialChangeListener(function(s){r.isEqual(s)||(r=s,e.asyncQueue.enqueueRetryable(function(){return g(i,void 0,void 0,function(){return m(this,function(u){switch(u.label){case 0:return[4,kc(t.localStore,s)];case 1:return u.sent(),[2]}})})}))}),t.persistence.setDatabaseDeletedListener(function(){return e.terminate()}),e.offlineComponents=t,[2]}})})}function Jc(e,t){return g(this,void 0,void 0,function(){var n,r;return m(this,function(i){switch(i.label){case 0:return e.asyncQueue.verifyOperationInProgress(),[4,es(e)];case 1:return n=i.sent(),I("FirestoreClient","Initializing OnlineComponentProvider"),[4,e.getConfiguration()];case 2:return r=i.sent(),[4,t.initialize(n,r)];case 3:return i.sent(),e.setCredentialChangeListener(function(o){return e.asyncQueue.enqueueRetryable(function(){return function(s,u){return g(this,void 0,void 0,function(){var a,c;return m(this,function(h){switch(h.label){case 0:return(a=_(s)).asyncQueue.verifyOperationInProgress(),I("RemoteStore","RemoteStore received new credentials"),c=he(a),a.$r.add(3),[4,un(a)];case 1:return h.sent(),c&&a.Br.set("Unknown"),[4,a.remoteSyncer.handleCredentialChange(u)];case 2:return h.sent(),a.$r.delete(3),[4,Xn(a)];case 3:return h.sent(),[2]}})})}(t.remoteStore,o)})}),e.onlineComponents=t,[2]}})})}function es(e){return g(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return e.offlineComponents?[3,2]:(I("FirestoreClient","Using default OfflineComponentProvider"),[4,Yc(e,new Wc)]);case 1:t.sent(),t.label=2;case 2:return[2,e.offlineComponents]}})})}function ti(e){return g(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return e.onlineComponents?[3,2]:(I("FirestoreClient","Using default OnlineComponentProvider"),[4,Jc(e,new Hi)]);case 1:t.sent(),t.label=2;case 2:return[2,e.onlineComponents]}})})}function pu(e){return es(e).then(function(t){return t.persistence})}function Zc(e){return es(e).then(function(t){return t.localStore})}function du(e){return ti(e).then(function(t){return t.remoteStore})}function th(e){return ti(e).then(function(t){return t.syncEngine})}function tn(e){return g(this,void 0,void 0,function(){var t,n;return m(this,function(r){switch(r.label){case 0:return[4,ti(e)];case 1:return t=r.sent(),[2,((n=t.eventManager).onListen=Cp.bind(null,t.syncEngine),n.onUnlisten=kp.bind(null,t.syncEngine),n)]}})})}function yu(e,t,n){var r=this;n===void 0&&(n={});var i=new kt;return e.asyncQueue.enqueueAndForget(function(){return g(r,void 0,void 0,function(){var o;return m(this,function(s){switch(s.label){case 0:return o=function(u,a,c,h,l){var f=new Zr({next:function(p){a.enqueueAndForget(function(){return Qo(u,y)});var v=p.docs.has(c);!v&&p.fromCache?l.reject(new w(d.UNAVAILABLE,"Failed to get document because the client is offline.")):v&&p.fromCache&&h&&h.source==="server"?l.reject(new w(d.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(p)},error:function(p){return l.reject(p)}}),y=new Ho(Gn(c.path),f,{includeMetadataChanges:!0,so:!0});return zo(u,y)},[4,tn(e)];case 1:return[2,o.apply(void 0,[s.sent(),e.asyncQueue,t,n,i])]}})})}),i.promise}function vu(e,t,n){var r=this;n===void 0&&(n={});var i=new kt;return e.asyncQueue.enqueueAndForget(function(){return g(r,void 0,void 0,function(){var o;return m(this,function(s){switch(s.label){case 0:return o=function(u,a,c,h,l){var f=new Zr({next:function(p){a.enqueueAndForget(function(){return Qo(u,y)}),p.fromCache&&h.source==="server"?l.reject(new w(d.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):l.resolve(p)},error:function(p){return l.reject(p)}}),y=new Ho(c,f,{includeMetadataChanges:!0,so:!0});return zo(u,y)},[4,tn(e)];case 1:return[2,o.apply(void 0,[s.sent(),e.asyncQueue,t,n,i])]}})})}),i.promise}var Xp=function(e,t,n,r,i,o,s){this.databaseId=e,this.appId=t,this.persistenceKey=n,this.host=r,this.ssl=i,this.forceLongPolling=o,this.autoDetectLongPolling=s},Rr=function(){function e(t,n){this.projectId=t,this.database=n||"(default)"}return Object.defineProperty(e.prototype,"isDefaultDatabase",{get:function(){return this.database==="(default)"},enumerable:!1,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&t.projectId===this.projectId&&t.database===this.database},e}(),mu=new Map,Yp=function(e,t){this.user=t,this.type="OAuth",this.authHeaders={},this.authHeaders.Authorization="Bearer "+e},gu=function(){function e(){this.changeListener=null}return e.prototype.getToken=function(){return Promise.resolve(null)},e.prototype.invalidateToken=function(){},e.prototype.setChangeListener=function(t){this.changeListener=t,t(Tt.UNAUTHENTICATED)},e.prototype.removeChangeListener=function(){this.changeListener=null},e}(),Jp=function(){function e(t){var n=this;this.oc=null,this.currentUser=Tt.UNAUTHENTICATED,this.receivedInitialUser=!1,this.cc=0,this.changeListener=null,this.forceRefresh=!1,this.oc=function(){n.cc++,n.currentUser=n.uc(),n.receivedInitialUser=!0,n.changeListener&&n.changeListener(n.currentUser)},this.cc=0,this.auth=t.getImmediate({optional:!0}),this.auth?this.auth.addAuthTokenListener(this.oc):(this.oc(null),t.get().then(function(r){n.auth=r,n.oc&&n.auth.addAuthTokenListener(n.oc)},function(){}))}return e.prototype.getToken=function(){var t=this,n=this.cc,r=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(r).then(function(i){return t.cc!==n?(I("FirebaseCredentialsProvider","getToken aborted due to token change."),t.getToken()):i?(x(typeof i.accessToken=="string"),new Yp(i.accessToken,t.currentUser)):null}):Promise.resolve(null)},e.prototype.invalidateToken=function(){this.forceRefresh=!0},e.prototype.setChangeListener=function(t){this.changeListener=t,this.receivedInitialUser&&t(this.currentUser)},e.prototype.removeChangeListener=function(){this.auth&&this.auth.removeAuthTokenListener(this.oc),this.oc=null,this.changeListener=null},e.prototype.uc=function(){var t=this.auth&&this.auth.getUid();return x(t===null||typeof t=="string"),new Tt(t)},e}(),Zp=function(){function e(t,n,r){this.ac=t,this.hc=n,this.lc=r,this.type="FirstParty",this.user=Tt.FIRST_PARTY}return Object.defineProperty(e.prototype,"authHeaders",{get:function(){var t={"X-Goog-AuthUser":this.hc},n=this.ac.auth.getAuthHeaderValueForFirstParty([]);return n&&(t.Authorization=n),this.lc&&(t["X-Goog-Iam-Authorization-Token"]=this.lc),t},enumerable:!1,configurable:!0}),e}(),td=function(){function e(t,n,r){this.ac=t,this.hc=n,this.lc=r}return e.prototype.getToken=function(){return Promise.resolve(new Zp(this.ac,this.hc,this.lc))},e.prototype.setChangeListener=function(t){t(Tt.FIRST_PARTY)},e.prototype.removeChangeListener=function(){},e.prototype.invalidateToken=function(){},e}();/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function ns(e,t,n){if(!n)throw new w(d.INVALID_ARGUMENT,"Function "+e+"() cannot be called with an empty "+t+".")}function rs(e,t){if(t===void 0)return{merge:!1};if(t.mergeFields!==void 0&&t.merge!==void 0)throw new w(d.INVALID_ARGUMENT,"Invalid options passed to function "+e+'(): You cannot specify both "merge" and "mergeFields".');return t}function eh(e,t,n,r){if(t===!0&&r===!0)throw new w(d.INVALID_ARGUMENT,e+" and "+n+" cannot be used together.")}function wu(e){if(!N.isDocumentKey(e))throw new w(d.INVALID_ARGUMENT,"Invalid document reference. Document references must have an even number of segments, but "+e+" has "+e.length+".")}function bu(e){if(N.isDocumentKey(e))throw new w(d.INVALID_ARGUMENT,"Invalid collection reference. Collection references must have an odd number of segments, but "+e+" has "+e.length+".")}function ei(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="string")return e.length>20&&(e=e.substring(0,20)+"..."),JSON.stringify(e);if(typeof e=="number"||typeof e=="boolean")return""+e;if(typeof e=="object"){if(e instanceof Array)return"an array";var t=function(n){if(n.constructor){var r=/function\s+([^\s(]+)\s*\(/.exec(n.constructor.toString());if(r&&r.length>1)return r[1]}return null}(e);return t?"a custom "+t+" object":"an object"}return typeof e=="function"?"a function":D()}function U(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new w(d.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var n=ei(e);throw new w(d.INVALID_ARGUMENT,"Expected type '"+t.name+"', but it was: "+n)}return e}function Iu(e,t){if(t<=0)throw new w(d.INVALID_ARGUMENT,"Function "+e+"() requires a positive number, but it was: "+t+".")}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var Eu=function(){function e(t){var n;if(t.host===void 0){if(t.ssl!==void 0)throw new w(d.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=(n=t.ssl)===null||n===void 0||n;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,t.cacheSizeBytes===void 0)this.cacheSizeBytes=41943040;else{if(t.cacheSizeBytes!==-1&&t.cacheSizeBytes<1048576)throw new w(d.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,eh("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling)}return e.prototype.isEqual=function(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties},e}(),kn=function(){function e(t,n){this._persistenceKey="(lite)",this._settings=new Eu({}),this._settingsFrozen=!1,t instanceof Rr?(this._databaseId=t,this._credentials=new gu):(this._app=t,this._databaseId=function(r){if(!Object.prototype.hasOwnProperty.apply(r.options,["projectId"]))throw new w(d.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Rr(r.options.projectId)}(t),this._credentials=new Jp(n))}return Object.defineProperty(e.prototype,"app",{get:function(){if(!this._app)throw new w(d.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_initialized",{get:function(){return this._settingsFrozen},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_terminated",{get:function(){return this._terminateTask!==void 0},enumerable:!1,configurable:!0}),e.prototype._setSettings=function(t){if(this._settingsFrozen)throw new w(d.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Eu(t),t.credentials!==void 0&&(this._credentials=function(n){if(!n)return new gu;switch(n.type){case"gapi":var r=n.client;return x(!(typeof r!="object"||r===null||!r.auth||!r.auth.getAuthHeaderValueForFirstParty)),new td(r,n.sessionIndex||"0",n.iamToken||null);case"provider":return n.client;default:throw new w(d.INVALID_ARGUMENT,"makeCredentialsProvider failed due to invalid credential type")}}(t.credentials))},e.prototype._getSettings=function(){return this._settings},e.prototype._freezeSettings=function(){return this._settingsFrozen=!0,this._settings},e.prototype._delete=function(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask},e.prototype.toJSON=function(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}},e.prototype._terminate=function(){return t=this,(n=mu.get(t))&&(I("ComponentProvider","Removing Datastore"),mu.delete(t),n.terminate()),Promise.resolve();var t,n},e}(),G=function(){function e(t,n,r){this._converter=n,this._key=r,this.type="document",this.firestore=t}return Object.defineProperty(e.prototype,"_path",{get:function(){return this._key.path},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._key.path.lastSegment()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return this._key.path.canonicalString()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return new ne(this.firestore,this._converter,this._key.path.popLast())},enumerable:!1,configurable:!0}),e.prototype.withConverter=function(t){return new e(this.firestore,t,this._key)},e}(),Nt=function(){function e(t,n,r){this._converter=n,this._query=r,this.type="query",this.firestore=t}return e.prototype.withConverter=function(t){return new e(this.firestore,t,this._query)},e}(),ne=function(e){function t(n,r,i){var o=this;return(o=e.call(this,n,r,Gn(i))||this).firestore=n,o._path=i,o.type="collection",o}return C(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._query.path.lastSegment()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return this._query.path.canonicalString()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){var n=this._path.popLast();return n.isEmpty()?null:new G(this.firestore,null,new N(n))},enumerable:!1,configurable:!0}),t.prototype.withConverter=function(n){return new t(this.firestore,n,this._path)},t}(Nt);/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function nh(e,t){for(var n,r=[],i=2;i0&&this.Zi.ji(function(){return n.Ac()}),r.label=5;case 5:return[2]}})})},e.prototype.Ic=function(t){var n=this,r=this.fc.then(function(){return n.yc=!0,t().catch(function(i){throw n.mc=i,n.yc=!1,W("INTERNAL UNHANDLED ERROR: ",function(o){var s=o.message||"";return o.stack&&(s=o.stack.includes(o.message)?o.stack:o.message+` -`+o.stack),s}(i)),i}).then(function(i){return n.yc=!1,i})});return this.fc=r,r},e.prototype.enqueueAfterDelay=function(t,n,r){var i=this;this.Tc(),this.gc.indexOf(t)>-1&&(n=0);var o=Ip.createAndSchedule(this,t,n,r,function(s){return i.Rc(s)});return this._c.push(o),o},e.prototype.Tc=function(){this.mc&&D()},e.prototype.verifyOperationInProgress=function(){},e.prototype.bc=function(){return g(this,void 0,void 0,function(){var t;return m(this,function(n){switch(n.label){case 0:return[4,t=this.fc];case 1:n.sent(),n.label=2;case 2:if(t!==this.fc)return[3,0];n.label=3;case 3:return[2]}})})},e.prototype.vc=function(t){for(var n=0,r=this._c;n90)throw new w(d.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(n)||n<-180||n>180)throw new w(d.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=t,this._long=n}return Object.defineProperty(e.prototype,"latitude",{get:function(){return this._lat},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"longitude",{get:function(){return this._long},enumerable:!1,configurable:!0}),e.prototype.isEqual=function(t){return this._lat===t._lat&&this._long===t._long},e.prototype.toJSON=function(){return{latitude:this._lat,longitude:this._long}},e.prototype._compareTo=function(t){return L(this._lat,t._lat)||L(this._long,t._long)},e}(),rd=/^__.*__$/,id=function(){function e(t,n,r){this.data=t,this.fieldMask=n,this.fieldTransforms=r}return e.prototype.toMutation=function(t,n){return this.fieldMask!==null?new ce(t,this.data,this.fieldMask,n,this.fieldTransforms):new Hn(t,this.data,n,this.fieldTransforms)},e}(),sh=function(){function e(t,n,r){this.data=t,this.fieldMask=n,this.fieldTransforms=r}return e.prototype.toMutation=function(t,n){return new ce(t,this.data,this.fieldMask,n,this.fieldTransforms)},e}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function uh(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw D()}}var ah=function(){function e(t,n,r,i,o,s){this.settings=t,this.databaseId=n,this.R=r,this.ignoreUndefinedProperties=i,o===void 0&&this.Sc(),this.fieldTransforms=o||[],this.fieldMask=s||[]}return Object.defineProperty(e.prototype,"path",{get:function(){return this.settings.path},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"Dc",{get:function(){return this.settings.Dc},enumerable:!1,configurable:!0}),e.prototype.Cc=function(t){return new e(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.R,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)},e.prototype.Nc=function(t){var n,r=(n=this.path)===null||n===void 0?void 0:n.child(t),i=this.Cc({path:r,xc:!1});return i.Fc(t),i},e.prototype.kc=function(t){var n,r=(n=this.path)===null||n===void 0?void 0:n.child(t),i=this.Cc({path:r,xc:!1});return i.Sc(),i},e.prototype.Oc=function(t){return this.Cc({path:void 0,xc:!0})},e.prototype.$c=function(t){return Or(t,this.settings.methodName,this.settings.Mc||!1,this.path,this.settings.Lc)},e.prototype.contains=function(t){return this.fieldMask.find(function(n){return t.isPrefixOf(n)})!==void 0||this.fieldTransforms.find(function(n){return t.isPrefixOf(n.field)})!==void 0},e.prototype.Sc=function(){if(this.path)for(var t=0;t=0;--f)if(!ph(h,u[f])){var y=u[f],p=a[f];p=X(p);var v=s.kc(y);if(p instanceof is)h.push(y);else{var E=ke(p,v);E!=null&&(h.push(y),l.set(y,E))}}var T=new Be(h);return new sh(l,T,s.fieldTransforms)}function hh(e,t,n,r){return r===void 0&&(r=!1),ke(n,e.Bc(r?4:3,t))}function ke(e,t){if(fh(e=X(e)))return us("Unsupported field value:",t,e),lh(e,t);if(e instanceof Ae)return function(n,r){if(!uh(r.Dc))throw r.$c(n._methodName+"() can only be used with update() and set()");if(!r.path)throw r.$c(n._methodName+"() is not currently supported inside arrays");var i=n._toFieldTransform(r);i&&r.fieldTransforms.push(i)}(e,t),null;if(e===void 0&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.xc&&t.Dc!==4)throw t.$c("Nested arrays are not supported");return function(n,r){for(var i=[],o=0,s=0,u=n;s0&&t.fieldMask.push(t.path):jn(e,function(r,i){var o=ke(i,t.Nc(r));o!=null&&(n[r]=o)}),{mapValue:{fields:n}}}function fh(e){return!(typeof e!="object"||e===null||e instanceof Array||e instanceof Date||e instanceof gt||e instanceof ni||e instanceof Te||e instanceof G||e instanceof Ae)}function us(e,t,n){if(!fh(n)||!function(i){return typeof i=="object"&&i!==null&&(Object.getPrototypeOf(i)===Object.prototype||Object.getPrototypeOf(i)===null)}(n)){var r=ei(n);throw r==="an object"?t.$c(e+" a custom object"):t.$c(e+" "+r)}}function Wi(e,t,n){if((t=X(t))instanceof Ft)return t._internalPath;if(typeof t=="string")return as(e,t);throw Or("Field path arguments must be of type string or FieldPath.",e,!1,void 0,n)}var hd=new RegExp("[~\\*/\\[\\]]");function as(e,t,n){if(t.search(hd)>=0)throw Or("Invalid field path ("+t+"). Paths must not contain '~', '*', '/', '[', or ']'",e,!1,void 0,n);try{return new(Ft.bind.apply(Ft,$([void 0],t.split("."))))()._internalPath}catch{throw Or("Invalid field path ("+t+"). Paths must not be empty, begin with '.', end with '.', or contain '..'",e,!1,void 0,n)}}function Or(e,t,n,r,i){var o=r&&!r.isEmpty(),s=i!==void 0,u="Function "+t+"() called with invalid data";n&&(u+=" (via `toFirestore()`)");var a="";return(o||s)&&(a+=" (found",o&&(a+=" in field "+r),s&&(a+=" in document "+i),a+=")"),new w(d.INVALID_ARGUMENT,(u+=". ")+e+a)}function ph(e,t){return e.some(function(n){return n.isEqual(t)})}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var xn=function(){function e(t,n,r,i,o){this._firestore=t,this._userDataWriter=n,this._key=r,this._document=i,this._converter=o}return Object.defineProperty(e.prototype,"id",{get:function(){return this._key.path.lastSegment()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"ref",{get:function(){return new G(this._firestore,this._converter,this._key)},enumerable:!1,configurable:!0}),e.prototype.exists=function(){return this._document!==null},e.prototype.data=function(){if(this._document){if(this._converter){var t=new ld(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.toProto())}},e.prototype.get=function(t){if(this._document){var n=this._document.data.field(Pr("DocumentSnapshot.get",t));if(n!==null)return this._userDataWriter.convertValue(n)}},e}(),ld=function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return C(t,e),t.prototype.data=function(){return e.prototype.data.call(this)},t}(xn);function Pr(e,t){return typeof t=="string"?as(e,t):t instanceof Ft?t._internalPath:t._delegate._internalPath}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var de=function(){function e(t,n){this.hasPendingWrites=t,this.fromCache=n}return e.prototype.isEqual=function(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache},e}(),Gt=function(e){function t(n,r,i,o,s,u){var a=this;return(a=e.call(this,n,r,i,o,u)||this)._firestore=n,a._firestoreImpl=n,a.metadata=s,a}return C(t,e),t.prototype.exists=function(){return e.prototype.exists.call(this)},t.prototype.data=function(n){if(n===void 0&&(n={}),this._document){if(this._converter){var r=new gn(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(r,n)}return this._userDataWriter.convertValue(this._document.data.toProto(),n.serverTimestamps)}},t.prototype.get=function(n,r){if(r===void 0&&(r={}),this._document){var i=this._document.data.field(Pr("DocumentSnapshot.get",n));if(i!==null)return this._userDataWriter.convertValue(i,r.serverTimestamps)}},t}(xn),gn=function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return C(t,e),t.prototype.data=function(n){return n===void 0&&(n={}),e.prototype.data.call(this,n)},t}(Gt),Jt=function(){function e(t,n,r,i){this._firestore=t,this._userDataWriter=n,this._snapshot=i,this.metadata=new de(i.hasPendingWrites,i.fromCache),this.query=r}return Object.defineProperty(e.prototype,"docs",{get:function(){var t=[];return this.forEach(function(n){return t.push(n)}),t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._snapshot.docs.size},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"empty",{get:function(){return this.size===0},enumerable:!1,configurable:!0}),e.prototype.forEach=function(t,n){var r=this;this._snapshot.docs.forEach(function(i){t.call(n,new gn(r._firestore,r._userDataWriter,i.key,i,new de(r._snapshot.mutatedKeys.has(i.key),r._snapshot.fromCache),r.query._converter))})},e.prototype.docChanges=function(t){t===void 0&&(t={});var n=!!t.includeMetadataChanges;if(n&&this._snapshot.excludesMetadataChanges)throw new w(d.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===n||(this._cachedChanges=function(r,i){if(r._snapshot.oldDocs.isEmpty()){var o=0;return r._snapshot.docChanges.map(function(u){var a=new gn(r._firestore,r._userDataWriter,u.doc.key,u.doc,new de(r._snapshot.mutatedKeys.has(u.doc.key),r._snapshot.fromCache),r.query._converter);return u.doc,{type:"added",doc:a,oldIndex:-1,newIndex:o++}})}var s=r._snapshot.oldDocs;return r._snapshot.docChanges.filter(function(u){return i||u.type!==3}).map(function(u){var a=new gn(r._firestore,r._userDataWriter,u.doc.key,u.doc,new de(r._snapshot.mutatedKeys.has(u.doc.key),r._snapshot.fromCache),r.query._converter),c=-1,h=-1;return u.type!==0&&(c=s.indexOf(u.doc.key),s=s.delete(u.doc.key)),u.type!==1&&(h=(s=s.add(u.doc)).indexOf(u.doc.key)),{type:fd(u.type),doc:a,oldIndex:c,newIndex:h}})}(this,n),this._cachedChangesIncludeMetadataChanges=n),this._cachedChanges},e}();function fd(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return D()}}function dh(e,t){return e instanceof Gt&&t instanceof Gt?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(e._document===null?t._document===null:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof Jt&&t instanceof Jt&&e._firestore===t._firestore&&ih(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function yh(e){if(_r(e)&&e.explicitOrderBy.length===0)throw new w(d.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}var Yn=function(){};function Ht(e){for(var t=[],n=1;n, or >=) must be on the same field. But you have inequality filters on '"+O.toString()+"' and '"+A.field.toString()+"'");var M=Ao(k);M!==null&&mh(k,A.field,M)}var q=function(et,ai){for(var ln=0,hs=et.filters;ln=0)return ls.op}return null}(k,function(et){switch(et){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}(A.op));if(q!==null)throw q===A.op?new w(d.INVALID_ARGUMENT,"Invalid query. You cannot use more than one '"+A.op.toString()+"' filter."):new w(d.INVALID_ARGUMENT,"Invalid query. You cannot use '"+A.op.toString()+"' filters with '"+q.toString()+"' filters.")}(o,T),T}(n._query,0,r,n.firestore._databaseId,this.Qc,this.Kc,this.jc);return new Nt(n.firestore,n._converter,function(o,s){var u=o.filters.concat([s]);return new Qt(o.path,o.collectionGroup,o.explicitOrderBy.slice(),u,o.limit,o.limitType,o.startAt,o.endAt)}(n._query,i))},t}(Yn),dd=function(e){function t(n,r){var i=this;return(i=e.call(this)||this).Qc=n,i.Wc=r,i.type="orderBy",i}return C(t,e),t.prototype._apply=function(n){var r=function(i,o,s){if(i.startAt!==null)throw new w(d.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(i.endAt!==null)throw new w(d.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");var u=new Ve(o,s);return function(a,c){if(Ao(a)===null){var h=Co(a);h!==null&&mh(a,h,c.field)}}(i,u),u}(n._query,this.Qc,this.Wc);return new Nt(n.firestore,n._converter,function(i,o){var s=i.explicitOrderBy.concat([o]);return new Qt(i.path,i.collectionGroup,s,i.filters.slice(),i.limit,i.limitType,i.startAt,i.endAt)}(n._query,r))},t}(Yn),Su=function(e){function t(n,r,i){var o=this;return(o=e.call(this)||this).type=n,o.Gc=r,o.zc=i,o}return C(t,e),t.prototype._apply=function(n){return new Nt(n.firestore,n._converter,Qa(n._query,this.Gc,this.zc))},t}(Yn),Du=function(e){function t(n,r,i){var o=this;return(o=e.call(this)||this).type=n,o.Hc=r,o.Jc=i,o}return C(t,e),t.prototype._apply=function(n){var r=vh(n,this.type,this.Hc,this.Jc);return new Nt(n.firestore,n._converter,function(i,o){return new Qt(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,o,i.endAt)}(n._query,r))},t}(Yn),Nu=function(e){function t(n,r,i){var o=this;return(o=e.call(this)||this).type=n,o.Hc=r,o.Jc=i,o}return C(t,e),t.prototype._apply=function(n){var r=vh(n,this.type,this.Hc,this.Jc);return new Nt(n.firestore,n._converter,function(i,o){return new Qt(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,i.startAt,o)}(n._query,r))},t}(Yn);function vh(e,t,n,r){if(n[0]=X(n[0]),n[0]instanceof xn)return function(o,s,u,a,c){if(!a)throw new w(d.NOT_FOUND,"Can't use a DocumentSnapshot that doesn't exist for "+u+"().");for(var h=[],l=0,f=Ge(o);ll.length)throw new w(d.INVALID_ARGUMENT,"Too many arguments provided to "+a+"(). The number of arguments must be less than or equal to the number of orderBy() clauses");for(var f=[],y=0;y10)throw new w(d.INVALID_ARGUMENT,"Invalid Query. '"+t.toString()+"' filters support a maximum of 10 elements in the value array.")}function mh(e,t,n){if(!n.isEqual(t))throw new w(d.INVALID_ARGUMENT,"Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '"+t.toString()+"' and so you must also use '"+t.toString()+"' as your first argument to orderBy(), but your first orderBy() is on field '"+n.toString()+"' instead.")}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var cs=function(){function e(){}return e.prototype.convertValue=function(t,n){switch(n===void 0&&(n="none"),oe(t)){case 0:return null;case 1:return t.booleanValue;case 2:return H(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,n);case 5:return t.stringValue;case 6:return this.convertBytes(je(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,n);case 10:return this.convertObject(t.mapValue,n);default:throw D()}},e.prototype.convertObject=function(t,n){var r=this,i={};return jn(t.fields||{},function(o,s){i[o]=r.convertValue(s,n)}),i},e.prototype.convertGeoPoint=function(t){return new ni(H(t.latitude),H(t.longitude))},e.prototype.convertArray=function(t,n){var r=this;return(t.values||[]).map(function(i){return r.convertValue(i,n)})},e.prototype.convertServerTimestamp=function(t,n){switch(n){case"previous":var r=Ba(t);return r==null?null:this.convertValue(r,n);case"estimate":return this.convertTimestamp(Tn(t));default:return null}},e.prototype.convertTimestamp=function(t){var n=ie(t);return new gt(n.seconds,n.nanos)},e.prototype.convertDocumentKey=function(t,n){var r=V.fromString(t);x(yc(r));var i=new Rr(r.get(1),r.get(3)),o=new N(r.popFirst(5));return i.isEqual(n)||W("Document "+o+" contains a document reference within a different database ("+i.projectId+"/"+i.database+") which is not supported. It will be treated as a reference in the current database ("+n.projectId+"/"+n.database+") instead."),o},e}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function ii(e,t,n){return e?n&&(n.merge||n.mergeFields)?e.toFirestore(t,n):e.toFirestore(t):t}var yd=function(e){function t(n){var r=this;return(r=e.call(this)||this).firestore=n,r}return C(t,e),t.prototype.convertBytes=function(n){return new Te(n)},t.prototype.convertReference=function(n){var r=this.convertDocumentKey(n,this.firestore._databaseId);return new G(this.firestore,null,r)},t}(cs),vd=function(){function e(t,n){this._firestore=t,this._commitHandler=n,this._mutations=[],this._committed=!1,this._dataReader=Ce(t)}return e.prototype.set=function(t,n,r){this._verifyNotCommitted();var i=Zt(t,this._firestore),o=ii(i._converter,n,r),s=ri(this._dataReader,"WriteBatch.set",i._key,o,i._converter!==null,r);return this._mutations.push(s.toMutation(i._key,st.none())),this},e.prototype.update=function(t,n,r){for(var i=[],o=3;o0?this._commitHandler(this._mutations):Promise.resolve()},e.prototype._verifyNotCommitted=function(){if(this._committed)throw new w(d.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")},e}();/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function Zt(e,t){if((e=X(e)).firestore!==t)throw new w(d.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}/** - * @license - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */var me=function(e){function t(n){var r=this;return(r=e.call(this)||this).firestore=n,r}return C(t,e),t.prototype.convertBytes=function(n){return new Te(n)},t.prototype.convertReference=function(n){var r=this.convertDocumentKey(n,this.firestore._databaseId);return new G(this.firestore,null,r)},t}(cs);function ku(e,t,n){for(var r=[],i=3;i"u")throw new w(d.UNIMPLEMENTED,"Uint8Arrays are not available in this environment.")}function Ru(){if(typeof atob>"u")throw new w(d.UNIMPLEMENTED,"Blobs are unavailable in Firestore in this environment.")}var wh=function(){function e(t){this._delegate=t}return e.fromBase64String=function(t){return Ru(),new e(Te.fromBase64String(t))},e.fromUint8Array=function(t){return xu(),new e(Te.fromUint8Array(t))},e.prototype.toBase64=function(){return Ru(),this._delegate.toBase64()},e.prototype.toUint8Array=function(){return xu(),this._delegate.toUint8Array()},e.prototype.isEqual=function(t){return this._delegate.isEqual(t._delegate)},e.prototype.toString=function(){return"Blob(base64: "+this.toBase64()+")"},e}(),gd=function(){function e(){}return e.prototype.enableIndexedDbPersistence=function(t,n){return function(r,i){_u(r=U(r,Y));var o=ot(r),s=r._freezeSettings(),u=new Hi;return Tu(o,u,new Xc(u,s.cacheSizeBytes,i==null?void 0:i.forceOwnership))}(t._delegate,{forceOwnership:n})},e.prototype.enableMultiTabIndexedDbPersistence=function(t){return function(n){_u(n=U(n,Y));var r=ot(n),i=n._freezeSettings(),o=new Hi;return Tu(r,o,new Qp(o,i.cacheSizeBytes))}(t._delegate)},e.prototype.clearIndexedDbPersistence=function(t){return function(n){var r=this;if(n._initialized&&!n._terminated)throw new w(d.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");var i=new kt;return n._queue.enqueueAndForgetEvenWhileRestricted(function(){return g(r,void 0,void 0,function(){var o;return m(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,function(u){return g(this,void 0,void 0,function(){var a;return m(this,function(c){switch(c.label){case 0:return We.yt()?(a=u+"main",[4,We.delete(a)]):[2,Promise.resolve()];case 1:return c.sent(),[2]}})})}(Uo(n._databaseId,n._persistenceKey))];case 1:return s.sent(),i.resolve(),[3,3];case 2:return o=s.sent(),i.reject(o),[3,3];case 3:return[2]}})})}),i.promise}(t._delegate)},e}(),bh=function(){function e(t,n,r){var i=this;this._delegate=n,this.Yc=r,this.INTERNAL={delete:function(){return i.terminate()}},t instanceof Rr||(this.Xc=t)}return Object.defineProperty(e.prototype,"_databaseId",{get:function(){return this._delegate._databaseId},enumerable:!1,configurable:!0}),e.prototype.settings=function(t){t.merge&&delete(t=Object.assign(Object.assign({},this._delegate._getSettings()),t)).merge,this._delegate._setSettings(t)},e.prototype.useEmulator=function(t,n){(function(r,i,o){var s=(r=U(r,kn))._getSettings();s.host!=="firestore.googleapis.com"&&s.host!==i&&Mi("Host has been set in both settings() and useEmulator(), emulator host will be used"),r._setSettings(Object.assign(Object.assign({},s),{host:i+":"+o,ssl:!1}))})(this._delegate,t,n)},e.prototype.enableNetwork=function(){return function(t){var n=this;return t.asyncQueue.enqueue(function(){return g(n,void 0,void 0,function(){var r,i;return m(this,function(o){switch(o.label){case 0:return[4,pu(t)];case 1:return r=o.sent(),[4,du(t)];case 2:return i=o.sent(),[2,(r.setNetworkEnabled(!0),function(s){var u=_(s);return u.$r.delete(0),Xn(u)}(i))]}})})})}(ot(U(this._delegate,Y)))},e.prototype.disableNetwork=function(){return function(t){var n=this;return t.asyncQueue.enqueue(function(){return g(n,void 0,void 0,function(){var r,i;return m(this,function(o){switch(o.label){case 0:return[4,pu(t)];case 1:return r=o.sent(),[4,du(t)];case 2:return i=o.sent(),[2,(r.setNetworkEnabled(!1),function(s){return g(this,void 0,void 0,function(){var u;return m(this,function(a){switch(a.label){case 0:return(u=_(s)).$r.add(0),[4,un(u)];case 1:return a.sent(),u.Br.set("Offline"),[2]}})})}(i))]}})})})}(ot(U(this._delegate,Y)))},e.prototype.enablePersistence=function(t){var n=!1,r=!1;return t&&eh("synchronizeTabs",n=!!t.synchronizeTabs,"experimentalForceOwningTab",r=!!t.experimentalForceOwningTab),n?this.Yc.enableMultiTabIndexedDbPersistence(this):this.Yc.enableIndexedDbPersistence(this,r)},e.prototype.clearPersistence=function(){return this.Yc.clearIndexedDbPersistence(this)},e.prototype.terminate=function(){return this.Xc&&(this.Xc._removeServiceInstance("firestore"),this.Xc._removeServiceInstance("firestore-exp")),this._delegate._delete()},e.prototype.waitForPendingWrites=function(){return function(t){var n=this,r=new kt;return t.asyncQueue.enqueueAndForget(function(){return g(n,void 0,void 0,function(){var i;return m(this,function(o){switch(o.label){case 0:return i=Lp,[4,th(t)];case 1:return[2,i.apply(void 0,[o.sent(),r])]}})})}),r.promise}(ot(U(this._delegate,Y)))},e.prototype.onSnapshotsInSync=function(t){return function(n,r){return function(i,o){var s=this,u=new Zr(o);return i.asyncQueue.enqueueAndForget(function(){return g(s,void 0,void 0,function(){var a;return m(this,function(c){switch(c.label){case 0:return a=function(h,l){_(h).Gr.add(l),l.next()},[4,tn(i)];case 1:return[2,a.apply(void 0,[c.sent(),u])]}})})}),function(){u.Wo(),i.asyncQueue.enqueueAndForget(function(){return g(s,void 0,void 0,function(){var a;return m(this,function(c){switch(c.label){case 0:return a=function(h,l){_(h).Gr.delete(l)},[4,tn(i)];case 1:return[2,a.apply(void 0,[c.sent(),u])]}})})})}}(ot(n=U(n,Y)),en(r)?r:{next:r})}(this._delegate,t)},Object.defineProperty(e.prototype,"app",{get:function(){if(!this.Xc)throw new w(d.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this.Xc},enumerable:!1,configurable:!0}),e.prototype.collection=function(t){try{return new Lr(this,nh(this._delegate,t))}catch(n){throw lt(n,"collection()","Firestore.collection()")}},e.prototype.doc=function(t){try{return new ge(this,hr(this._delegate,t))}catch(n){throw lt(n,"doc()","Firestore.doc()")}},e.prototype.collectionGroup=function(t){try{return new ui(this,function(n,r){if(n=U(n,kn),ns("collectionGroup","collection id",r),r.indexOf("/")>=0)throw new w(d.INVALID_ARGUMENT,"Invalid collection ID '"+r+"' passed to function collectionGroup(). Collection IDs must not contain '/'.");return new Nt(n,null,function(i){return new Qt(V.emptyPath(),i)}(r))}(this._delegate,t))}catch(n){throw lt(n,"collectionGroup()","Firestore.collectionGroup()")}},e.prototype.runTransaction=function(t){var n=this;return function(r,i){return function(o,s){var u=this,a=new kt;return o.asyncQueue.enqueueAndForget(function(){return g(u,void 0,void 0,function(){var c;return m(this,function(h){switch(h.label){case 0:return[4,function(l){return ti(l).then(function(f){return f.datastore})}(o)];case 1:return c=h.sent(),new Hp(o.asyncQueue,c,s,a).run(),[2]}})})}),a.promise}(ot(r),function(o){return i(new md(r,o))})}(this._delegate,function(r){return t(new Ih(n,r))})},e.prototype.batch=function(){var t=this;return ot(this._delegate),new Eh(new vd(this._delegate,function(n){return Rn(t._delegate,n)}))},e.prototype.loadBundle=function(t){throw new w(d.FAILED_PRECONDITION,'"loadBundle()" does not exist, have you imported "firebase/firestore/bundle"?')},e.prototype.namedQuery=function(t){throw new w(d.FAILED_PRECONDITION,'"namedQuery()" does not exist, have you imported "firebase/firestore/bundle"?')},e}(),oi=function(e){function t(n){var r=this;return(r=e.call(this)||this).firestore=n,r}return C(t,e),t.prototype.convertBytes=function(n){return new wh(new Te(n))},t.prototype.convertReference=function(n){var r=this.convertDocumentKey(n,this.firestore._databaseId);return ge.Zc(r,this.firestore,null)},t}(cs);function wd(e){var t;t=e,Rt.setLogLevel(t)}var Ih=function(){function e(t,n){this._firestore=t,this._delegate=n,this._userDataWriter=new oi(t)}return e.prototype.get=function(t){var n=this,r=ye(t);return this._delegate.get(r).then(function(i){return new On(n._firestore,new Gt(n._firestore._delegate,n._userDataWriter,i._key,i._document,i.metadata,r._converter))})},e.prototype.set=function(t,n,r){var i=ye(t);return r?(rs("Transaction.set",r),this._delegate.set(i,n,r)):this._delegate.set(i,n),this},e.prototype.update=function(t,n,r){for(var i,o=[],s=3;s= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar h, goog = goog || {}, k = commonjsGlobal || self;\r\nfunction aa() { }\r\nfunction ba(a) { var b = typeof a; b = \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\"; return \"array\" == b || \"object\" == b && \"number\" == typeof a.length; }\r\nfunction n(a) { var b = typeof a; return \"object\" == b && null != a || \"function\" == b; }\r\nfunction ca(a) { return Object.prototype.hasOwnProperty.call(a, da) && a[da] || (a[da] = ++ea); }\r\nvar da = \"closure_uid_\" + (1E9 * Math.random() >>> 0), ea = 0;\r\nfunction fa(a, b, c) { return a.call.apply(a.bind, arguments); }\r\nfunction ha(a, b, c) { if (!a)\r\n throw Error(); if (2 < arguments.length) {\r\n var d = Array.prototype.slice.call(arguments, 2);\r\n return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return a.apply(b, e); };\r\n} return function () { return a.apply(b, arguments); }; }\r\nfunction p(a, b, c) { Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? p = fa : p = ha; return p.apply(null, arguments); }\r\nfunction ja(a, b) { var c = Array.prototype.slice.call(arguments, 1); return function () { var d = c.slice(); d.push.apply(d, arguments); return a.apply(this, d); }; }\r\nfunction q() { return Date.now(); }\r\nfunction r(a, b) { function c() { } c.prototype = b.prototype; a.X = b.prototype; a.prototype = new c; a.prototype.constructor = a; a.Kb = function (d, e, f) { for (var g = Array(arguments.length - 2), m = 2; m < arguments.length; m++)\r\n g[m - 2] = arguments[m]; return b.prototype[e].apply(d, g); }; }\r\nfunction t() { this.j = this.j; this.i = this.i; }\r\nvar ka = 0;\r\nt.prototype.j = !1;\r\nt.prototype.ja = function () { if (!this.j && (this.j = !0, this.G(), 0 != ka)) {\r\n var a = ca(this);\r\n} };\r\nt.prototype.G = function () { if (this.i)\r\n for (; this.i.length;)\r\n this.i.shift()(); };\r\nvar ma = Array.prototype.indexOf ? function (a, b) { return Array.prototype.indexOf.call(a, b, void 0); } : function (a, b) { if (\"string\" === typeof a)\r\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0); for (var c = 0; c < a.length; c++)\r\n if (c in a && a[c] === b)\r\n return c; return -1; }, na = Array.prototype.forEach ? function (a, b, c) { Array.prototype.forEach.call(a, b, c); } : function (a, b, c) { for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++)\r\n f in e && b.call(c, e[f], f, a); };\r\nfunction oa(a) { a: {\r\n var b = pa;\r\n for (var c = a.length, d = \"string\" === typeof a ? a.split(\"\") : a, e = 0; e < c; e++)\r\n if (e in d && b.call(void 0, d[e], e, a)) {\r\n b = e;\r\n break a;\r\n }\r\n b = -1;\r\n} return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b]; }\r\nfunction qa(a) { return Array.prototype.concat.apply([], arguments); }\r\nfunction ra(a) { var b = a.length; if (0 < b) {\r\n for (var c = Array(b), d = 0; d < b; d++)\r\n c[d] = a[d];\r\n return c;\r\n} return []; }\r\nfunction sa(a) { return /^[\\s\\xa0]*$/.test(a); }\r\nvar ta = String.prototype.trim ? function (a) { return a.trim(); } : function (a) { return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]; };\r\nfunction v(a, b) { return -1 != a.indexOf(b); }\r\nfunction ua(a, b) { return a < b ? -1 : a > b ? 1 : 0; }\r\nvar w;\r\na: {\r\n var va = k.navigator;\r\n if (va) {\r\n var wa = va.userAgent;\r\n if (wa) {\r\n w = wa;\r\n break a;\r\n }\r\n }\r\n w = \"\";\r\n}\r\nfunction za(a, b, c) { for (var d in a)\r\n b.call(c, a[d], d, a); }\r\nfunction Aa(a) { var b = {}; for (var c in a)\r\n b[c] = a[c]; return b; }\r\nvar Ba = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\r\nfunction Ca(a, b) { var c, d; for (var e = 1; e < arguments.length; e++) {\r\n d = arguments[e];\r\n for (c in d)\r\n a[c] = d[c];\r\n for (var f = 0; f < Ba.length; f++)\r\n c = Ba[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\r\n} }\r\nfunction Da(a) { Da[\" \"](a); return a; }\r\nDa[\" \"] = aa;\r\nfunction Ea(a, b) { var c = Fa; return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a); }\r\nvar Ga = v(w, \"Opera\"), x = v(w, \"Trident\") || v(w, \"MSIE\"), Ha = v(w, \"Edge\"), Ia = Ha || x, Ja = v(w, \"Gecko\") && !(v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\")) && !(v(w, \"Trident\") || v(w, \"MSIE\")) && !v(w, \"Edge\"), Ka = v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\");\r\nfunction La() { var a = k.document; return a ? a.documentMode : void 0; }\r\nvar Ma;\r\na: {\r\n var Na = \"\", Oa = function () { var a = w; if (Ja)\r\n return /rv:([^\\);]+)(\\)|;)/.exec(a); if (Ha)\r\n return /Edge\\/([\\d\\.]+)/.exec(a); if (x)\r\n return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a); if (Ka)\r\n return /WebKit\\/(\\S+)/.exec(a); if (Ga)\r\n return /(?:Version)[ \\/]?(\\S+)/.exec(a); }();\r\n Oa && (Na = Oa ? Oa[1] : \"\");\r\n if (x) {\r\n var Pa = La();\r\n if (null != Pa && Pa > parseFloat(Na)) {\r\n Ma = String(Pa);\r\n break a;\r\n }\r\n }\r\n Ma = Na;\r\n}\r\nvar Fa = {};\r\nfunction Qa(a) { return Ea(a, function () { {\r\n var b = 0;\r\n var e = ta(String(Ma)).split(\".\"), f = ta(String(a)).split(\".\"), g = Math.max(e.length, f.length);\r\n for (var m = 0; 0 == b && m < g; m++) {\r\n var c = e[m] || \"\", d = f[m] || \"\";\r\n do {\r\n c = /(\\d*)(\\D*)(.*)/.exec(c) || [\"\", \"\", \"\", \"\"];\r\n d = /(\\d*)(\\D*)(.*)/.exec(d) || [\"\", \"\", \"\", \"\"];\r\n if (0 == c[0].length && 0 == d[0].length)\r\n break;\r\n b = ua(0 == c[1].length ? 0 : parseInt(c[1], 10), 0 == d[1].length ? 0 : parseInt(d[1], 10)) || ua(0 == c[2].length, 0 == d[2].length) || ua(c[2], d[2]);\r\n c = c[3];\r\n d = d[3];\r\n } while (0 == b);\r\n }\r\n} return 0 <= b; }); }\r\nvar Ra;\r\nif (k.document && x) {\r\n var Sa = La();\r\n Ra = Sa ? Sa : parseInt(Ma, 10) || void 0;\r\n}\r\nelse\r\n Ra = void 0;\r\nvar Ta = Ra;\r\nvar Ua = !x || 9 <= Number(Ta), Va = x && !Qa(\"9\"), Wa = function () { if (!k.addEventListener || !Object.defineProperty)\r\n return !1; var a = !1, b = Object.defineProperty({}, \"passive\", { get: function () { a = !0; } }); try {\r\n k.addEventListener(\"test\", aa, b), k.removeEventListener(\"test\", aa, b);\r\n}\r\ncatch (c) { } return a; }();\r\nfunction y(a, b) { this.type = a; this.a = this.target = b; this.defaultPrevented = !1; }\r\ny.prototype.b = function () { this.defaultPrevented = !0; };\r\nfunction z(a, b) {\r\n y.call(this, a ? a.type : \"\");\r\n this.relatedTarget = this.a = this.target = null;\r\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\r\n this.key = \"\";\r\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\r\n this.pointerId = 0;\r\n this.pointerType = \"\";\r\n this.c = null;\r\n if (a) {\r\n var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\r\n this.target = a.target || a.srcElement;\r\n this.a = b;\r\n if (b = a.relatedTarget) {\r\n if (Ja) {\r\n a: {\r\n try {\r\n Da(b.nodeName);\r\n var e = !0;\r\n break a;\r\n }\r\n catch (f) { }\r\n e = !1;\r\n }\r\n e || (b = null);\r\n }\r\n }\r\n else\r\n \"mouseover\" ==\r\n c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\r\n this.relatedTarget = b;\r\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\r\n this.button = a.button;\r\n this.key = a.key || \"\";\r\n this.ctrlKey = a.ctrlKey;\r\n this.altKey = a.altKey;\r\n this.shiftKey = a.shiftKey;\r\n this.metaKey =\r\n a.metaKey;\r\n this.pointerId = a.pointerId || 0;\r\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Xa[a.pointerType] || \"\";\r\n this.c = a;\r\n a.defaultPrevented && this.b();\r\n }\r\n}\r\nr(z, y);\r\nvar Xa = { 2: \"touch\", 3: \"pen\", 4: \"mouse\" };\r\nz.prototype.b = function () { z.X.b.call(this); var a = this.c; if (a.preventDefault)\r\n a.preventDefault();\r\nelse if (a.returnValue = !1, Va)\r\n try {\r\n if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode)\r\n a.keyCode = -1;\r\n }\r\n catch (b) { } };\r\nvar A = \"closure_listenable_\" + (1E6 * Math.random() | 0), Ya = 0;\r\nfunction Za(a, b, c, d, e) { this.listener = a; this.proxy = null; this.src = b; this.type = c; this.capture = !!d; this.ca = e; this.key = ++Ya; this.Y = this.Z = !1; }\r\nfunction $a(a) { a.Y = !0; a.listener = null; a.proxy = null; a.src = null; a.ca = null; }\r\nfunction ab(a) { this.src = a; this.a = {}; this.b = 0; }\r\nab.prototype.add = function (a, b, c, d, e) { var f = a.toString(); a = this.a[f]; a || (a = this.a[f] = [], this.b++); var g = bb(a, b, d, e); -1 < g ? (b = a[g], c || (b.Z = !1)) : (b = new Za(b, this.src, f, !!d, e), b.Z = c, a.push(b)); return b; };\r\nfunction cb(a, b) { var c = b.type; if (c in a.a) {\r\n var d = a.a[c], e = ma(d, b), f;\r\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\r\n f && ($a(b), 0 == a.a[c].length && (delete a.a[c], a.b--));\r\n} }\r\nfunction bb(a, b, c, d) { for (var e = 0; e < a.length; ++e) {\r\n var f = a[e];\r\n if (!f.Y && f.listener == b && f.capture == !!c && f.ca == d)\r\n return e;\r\n} return -1; }\r\nvar db = \"closure_lm_\" + (1E6 * Math.random() | 0), eb = {};\r\nfunction gb(a, b, c, d, e) { if (d && d.once)\r\n return hb(a, b, c, d, e); if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n gb(a, b[f], c, d, e);\r\n return null;\r\n} c = ib(c); return a && a[A] ? a.va(b, c, n(d) ? !!d.capture : !!d, e) : jb(a, b, c, !1, d, e); }\r\nfunction jb(a, b, c, d, e, f) {\r\n if (!b)\r\n throw Error(\"Invalid event type\");\r\n var g = n(e) ? !!e.capture : !!e;\r\n if (g && !Ua)\r\n return null;\r\n var m = kb(a);\r\n m || (a[db] = m = new ab(a));\r\n c = m.add(b, c, d, g, f);\r\n if (c.proxy)\r\n return c;\r\n d = lb();\r\n c.proxy = d;\r\n d.src = a;\r\n d.listener = c;\r\n if (a.addEventListener)\r\n Wa || (e = g), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);\r\n else if (a.attachEvent)\r\n a.attachEvent(mb(b.toString()), d);\r\n else if (a.addListener && a.removeListener)\r\n a.addListener(d);\r\n else\r\n throw Error(\"addEventListener and attachEvent are unavailable.\");\r\n return c;\r\n}\r\nfunction lb() { var a = nb, b = Ua ? function (c) { return a.call(b.src, b.listener, c); } : function (c) { c = a.call(b.src, b.listener, c); if (!c)\r\n return c; }; return b; }\r\nfunction hb(a, b, c, d, e) { if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n hb(a, b[f], c, d, e);\r\n return null;\r\n} c = ib(c); return a && a[A] ? a.wa(b, c, n(d) ? !!d.capture : !!d, e) : jb(a, b, c, !0, d, e); }\r\nfunction ob(a, b, c, d, e) { if (Array.isArray(b))\r\n for (var f = 0; f < b.length; f++)\r\n ob(a, b[f], c, d, e);\r\nelse\r\n (d = n(d) ? !!d.capture : !!d, c = ib(c), a && a[A]) ? (a = a.c, b = String(b).toString(), b in a.a && (f = a.a[b], c = bb(f, c, d, e), -1 < c && ($a(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.a[b], a.b--)))) : a && (a = kb(a)) && (b = a.a[b.toString()], a = -1, b && (a = bb(b, c, d, e)), (c = -1 < a ? b[a] : null) && pb(c)); }\r\nfunction pb(a) { if (\"number\" !== typeof a && a && !a.Y) {\r\n var b = a.src;\r\n if (b && b[A])\r\n cb(b.c, a);\r\n else {\r\n var c = a.type, d = a.proxy;\r\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(mb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\r\n (c = kb(b)) ? (cb(c, a), 0 == c.b && (c.src = null, b[db] = null)) : $a(a);\r\n }\r\n} }\r\nfunction mb(a) { return a in eb ? eb[a] : eb[a] = \"on\" + a; }\r\nfunction qb(a, b) { var c = a.listener, d = a.ca || a.src; a.Z && pb(a); return c.call(d, b); }\r\nfunction nb(a, b) { if (a.Y)\r\n return !0; if (!Ua) {\r\n if (!b)\r\n a: {\r\n b = [\"window\", \"event\"];\r\n for (var c = k, d = 0; d < b.length; d++)\r\n if (c = c[b[d]], null == c) {\r\n b = null;\r\n break a;\r\n }\r\n b = c;\r\n }\r\n b = new z(b, this);\r\n return qb(a, b);\r\n} return qb(a, new z(b, this)); }\r\nfunction kb(a) { a = a[db]; return a instanceof ab ? a : null; }\r\nvar sb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\r\nfunction ib(a) { if (\"function\" === typeof a)\r\n return a; a[sb] || (a[sb] = function (b) { return a.handleEvent(b); }); return a[sb]; }\r\nfunction D() { t.call(this); this.c = new ab(this); this.J = this; this.C = null; }\r\nr(D, t);\r\nD.prototype[A] = !0;\r\nh = D.prototype;\r\nh.addEventListener = function (a, b, c, d) { gb(this, a, b, c, d); };\r\nh.removeEventListener = function (a, b, c, d) { ob(this, a, b, c, d); };\r\nfunction E(a, b) { var c, d = a.C; if (d)\r\n for (c = []; d; d = d.C)\r\n c.push(d); a = a.J; d = b.type || b; if (\"string\" === typeof b)\r\n b = new y(b, a);\r\nelse if (b instanceof y)\r\n b.target = b.target || a;\r\nelse {\r\n var e = b;\r\n b = new y(d, a);\r\n Ca(b, e);\r\n} e = !0; if (c)\r\n for (var f = c.length - 1; 0 <= f; f--) {\r\n var g = b.a = c[f];\r\n e = tb(g, d, !0, b) && e;\r\n } g = b.a = a; e = tb(g, d, !0, b) && e; e = tb(g, d, !1, b) && e; if (c)\r\n for (f = 0; f < c.length; f++)\r\n g = b.a = c[f], e = tb(g, d, !1, b) && e; }\r\nh.G = function () { D.X.G.call(this); if (this.c) {\r\n var a = this.c, c;\r\n for (c in a.a) {\r\n for (var d = a.a[c], e = 0; e < d.length; e++)\r\n $a(d[e]);\r\n delete a.a[c];\r\n a.b--;\r\n }\r\n} this.C = null; };\r\nh.va = function (a, b, c, d) { return this.c.add(String(a), b, !1, c, d); };\r\nh.wa = function (a, b, c, d) { return this.c.add(String(a), b, !0, c, d); };\r\nfunction tb(a, b, c, d) { b = a.c.a[String(b)]; if (!b)\r\n return !0; b = b.concat(); for (var e = !0, f = 0; f < b.length; ++f) {\r\n var g = b[f];\r\n if (g && !g.Y && g.capture == c) {\r\n var m = g.listener, l = g.ca || g.src;\r\n g.Z && cb(a.c, g);\r\n e = !1 !== m.call(l, d) && e;\r\n }\r\n} return e && !d.defaultPrevented; }\r\nvar ub = k.JSON.stringify;\r\nfunction vb() { this.b = this.a = null; }\r\nvar xb = new /** @class */ (function () {\r\n function class_1(a, b) {\r\n this.c = a;\r\n this.f = b;\r\n this.b = 0;\r\n this.a = null;\r\n }\r\n class_1.prototype.get = function () { var a; 0 < this.b ? (this.b--, a = this.a, this.a = a.next, a.next = null) : a = this.c(); return a; };\r\n return class_1;\r\n}())(function () { return new wb; }, function (a) { a.reset(); });\r\nvb.prototype.add = function (a, b) { var c = xb.get(); c.set(a, b); this.b ? this.b.next = c : this.a = c; this.b = c; };\r\nfunction yb() { var a = zb, b = null; a.a && (b = a.a, a.a = a.a.next, a.a || (a.b = null), b.next = null); return b; }\r\nfunction wb() { this.next = this.b = this.a = null; }\r\nwb.prototype.set = function (a, b) { this.a = a; this.b = b; this.next = null; };\r\nwb.prototype.reset = function () { this.next = this.b = this.a = null; };\r\nfunction Ab(a) { k.setTimeout(function () { throw a; }, 0); }\r\nfunction Bb(a, b) { Cb || Db(); Eb || (Cb(), Eb = !0); zb.add(a, b); }\r\nvar Cb;\r\nfunction Db() { var a = k.Promise.resolve(void 0); Cb = function () { a.then(Fb); }; }\r\nvar Eb = !1, zb = new vb;\r\nfunction Fb() { for (var a; a = yb();) {\r\n try {\r\n a.a.call(a.b);\r\n }\r\n catch (c) {\r\n Ab(c);\r\n }\r\n var b = xb;\r\n b.f(a);\r\n 100 > b.b && (b.b++, a.next = b.a, b.a = a);\r\n} Eb = !1; }\r\nfunction Gb(a, b) { D.call(this); this.b = a || 1; this.a = b || k; this.f = p(this.Za, this); this.g = q(); }\r\nr(Gb, D);\r\nh = Gb.prototype;\r\nh.aa = !1;\r\nh.M = null;\r\nh.Za = function () { if (this.aa) {\r\n var a = q() - this.g;\r\n 0 < a && a < .8 * this.b ? this.M = this.a.setTimeout(this.f, this.b - a) : (this.M && (this.a.clearTimeout(this.M), this.M = null), E(this, \"tick\"), this.aa && (Hb(this), this.start()));\r\n} };\r\nh.start = function () { this.aa = !0; this.M || (this.M = this.a.setTimeout(this.f, this.b), this.g = q()); };\r\nfunction Hb(a) { a.aa = !1; a.M && (a.a.clearTimeout(a.M), a.M = null); }\r\nh.G = function () { Gb.X.G.call(this); Hb(this); delete this.a; };\r\nfunction Ib(a, b, c) { if (\"function\" === typeof a)\r\n c && (a = p(a, c));\r\nelse if (a && \"function\" == typeof a.handleEvent)\r\n a = p(a.handleEvent, a);\r\nelse\r\n throw Error(\"Invalid listener argument\"); return 2147483647 < Number(b) ? -1 : k.setTimeout(a, b || 0); }\r\nfunction Jb(a) { a.a = Ib(function () { a.a = null; a.c && (a.c = !1, Jb(a)); }, a.h); var b = a.b; a.b = null; a.g.apply(null, b); }\r\nvar Kb = /** @class */ (function (_super) {\r\n __extends(Kb, _super);\r\n function Kb(a, b) {\r\n var _this = _super.call(this) || this;\r\n _this.g = a;\r\n _this.h = b;\r\n _this.b = null;\r\n _this.c = !1;\r\n _this.a = null;\r\n return _this;\r\n }\r\n Kb.prototype.f = function (a) { this.b = arguments; this.a ? this.c = !0 : Jb(this); };\r\n Kb.prototype.G = function () { _super.prototype.G.call(this); this.a && (k.clearTimeout(this.a), this.a = null, this.c = !1, this.b = null); };\r\n return Kb;\r\n}(t));\r\nfunction F(a) { t.call(this); this.b = a; this.a = {}; }\r\nr(F, t);\r\nvar Lb = [];\r\nfunction Mb(a, b, c, d) { Array.isArray(c) || (c && (Lb[0] = c.toString()), c = Lb); for (var e = 0; e < c.length; e++) {\r\n var f = gb(b, c[e], d || a.handleEvent, !1, a.b || a);\r\n if (!f)\r\n break;\r\n a.a[f.key] = f;\r\n} }\r\nfunction Nb(a) { za(a.a, function (b, c) { this.a.hasOwnProperty(c) && pb(b); }, a); a.a = {}; }\r\nF.prototype.G = function () { F.X.G.call(this); Nb(this); };\r\nF.prototype.handleEvent = function () { throw Error(\"EventHandler.handleEvent not implemented\"); };\r\nfunction Ob() { this.a = !0; }\r\nfunction Pb(a, b, c, d, e, f) { a.info(function () { if (a.a)\r\n if (f) {\r\n var g = \"\";\r\n for (var m = f.split(\"&\"), l = 0; l < m.length; l++) {\r\n var u = m[l].split(\"=\");\r\n if (1 < u.length) {\r\n var C = u[0];\r\n u = u[1];\r\n var B = C.split(\"_\");\r\n g = 2 <= B.length && \"type\" == B[1] ? g + (C + \"=\" + u + \"&\") : g + (C + \"=redacted&\");\r\n }\r\n }\r\n }\r\n else\r\n g = null;\r\nelse\r\n g = f; return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + g; }); }\r\nfunction Qb(a, b, c, d, e, f, g) { a.info(function () { return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + g; }); }\r\nfunction G(a, b, c, d) { a.info(function () { return \"XMLHTTP TEXT (\" + b + \"): \" + Rb(a, c) + (d ? \" \" + d : \"\"); }); }\r\nfunction Sb(a, b) { a.info(function () { return \"TIMEOUT: \" + b; }); }\r\nOb.prototype.info = function () { };\r\nfunction Rb(a, b) { if (!a.a)\r\n return b; if (!b)\r\n return null; try {\r\n var c = JSON.parse(b);\r\n if (c)\r\n for (a = 0; a < c.length; a++)\r\n if (Array.isArray(c[a])) {\r\n var d = c[a];\r\n if (!(2 > d.length)) {\r\n var e = d[1];\r\n if (Array.isArray(e) && !(1 > e.length)) {\r\n var f = e[0];\r\n if (\"noop\" != f && \"stop\" != f && \"close\" != f)\r\n for (var g = 1; g < e.length; g++)\r\n e[g] = \"\";\r\n }\r\n }\r\n }\r\n return ub(c);\r\n}\r\ncatch (m) {\r\n return b;\r\n} }\r\nvar H = {}, Tb = null;\r\nfunction Ub() { return Tb = Tb || new D; }\r\nH.Fa = \"serverreachability\";\r\nfunction Vb(a) { y.call(this, H.Fa, a); }\r\nr(Vb, y);\r\nfunction I(a) { var b = Ub(); E(b, new Vb(b, a)); }\r\nH.STAT_EVENT = \"statevent\";\r\nfunction Wb(a, b) { y.call(this, H.STAT_EVENT, a); this.stat = b; }\r\nr(Wb, y);\r\nfunction J(a) { var b = Ub(); E(b, new Wb(b, a)); }\r\nH.Ga = \"timingevent\";\r\nfunction Xb(a) { y.call(this, H.Ga, a); }\r\nr(Xb, y);\r\nfunction K(a, b) { if (\"function\" !== typeof a)\r\n throw Error(\"Fn must not be null and must be a function\"); return k.setTimeout(function () { a(); }, b); }\r\nvar Yb = { NO_ERROR: 0, $a: 1, nb: 2, mb: 3, hb: 4, lb: 5, ob: 6, Da: 7, TIMEOUT: 8, rb: 9 };\r\nvar Zb = { fb: \"complete\", Bb: \"success\", Ea: \"error\", Da: \"abort\", tb: \"ready\", ub: \"readystatechange\", TIMEOUT: \"timeout\", pb: \"incrementaldata\", sb: \"progress\", ib: \"downloadprogress\", Jb: \"uploadprogress\" };\r\nfunction $b() { }\r\n$b.prototype.a = null;\r\nfunction ac(a) { var b; (b = a.a) || (b = a.a = {}); return b; }\r\nfunction bc() { }\r\nvar L = { OPEN: \"a\", eb: \"b\", Ea: \"c\", qb: \"d\" };\r\nfunction cc() { y.call(this, \"d\"); }\r\nr(cc, y);\r\nfunction dc() { y.call(this, \"c\"); }\r\nr(dc, y);\r\nvar ec;\r\nfunction fc() { }\r\nr(fc, $b);\r\nec = new fc;\r\nfunction M(a, b, c, d) { this.g = a; this.c = b; this.f = c; this.S = d || 1; this.J = new F(this); this.P = gc; a = Ia ? 125 : void 0; this.R = new Gb(a); this.B = null; this.b = !1; this.j = this.l = this.i = this.H = this.u = this.T = this.o = null; this.s = []; this.a = null; this.D = 0; this.h = this.m = null; this.N = -1; this.A = !1; this.O = 0; this.F = null; this.V = this.C = this.U = this.I = !1; }\r\nvar gc = 45E3, hc = {}, ic = {};\r\nh = M.prototype;\r\nh.setTimeout = function (a) { this.P = a; };\r\nfunction jc(a, b, c) { a.H = 1; a.i = kc(N(b)); a.j = c; a.I = !0; lc(a, null); }\r\nfunction lc(a, b) { a.u = q(); mc(a); a.l = N(a.i); var c = a.l, d = a.S; Array.isArray(d) || (d = [String(d)]); nc(c.b, \"t\", d); a.D = 0; a.a = oc(a.g, a.g.C ? b : null); 0 < a.O && (a.F = new Kb(p(a.Ca, a, a.a), a.O)); Mb(a.J, a.a, \"readystatechange\", a.Xa); b = a.B ? Aa(a.B) : {}; a.j ? (a.m || (a.m = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.a.ba(a.l, a.m, a.j, b)) : (a.m = \"GET\", a.a.ba(a.l, a.m, null, b)); I(1); Pb(a.c, a.m, a.l, a.f, a.S, a.j); }\r\nh.Xa = function (a) { a = a.target; var b = this.F; b && 3 == O(a) ? b.f() : this.Ca(a); };\r\nh.Ca = function (a) {\r\n try {\r\n if (a == this.a)\r\n a: {\r\n var b = O(this.a), c = this.a.ua(), d = this.a.W();\r\n if (!(3 > b || 3 == b && !Ia && !this.a.$())) {\r\n this.A || 4 != b || 7 == c || (8 == c || 0 >= d ? I(3) : I(2));\r\n pc(this);\r\n var e = this.a.W();\r\n this.N = e;\r\n var f = this.a.$();\r\n this.b = 200 == e;\r\n Qb(this.c, this.m, this.l, this.f, this.S, b, e);\r\n if (this.b) {\r\n if (this.U && !this.C) {\r\n b: {\r\n if (this.a) {\r\n var g, m = this.a;\r\n if ((g = m.a ? m.a.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !sa(g)) {\r\n var l = g;\r\n break b;\r\n }\r\n }\r\n l = null;\r\n }\r\n if (l)\r\n G(this.c, this.f, l, \"Initial handshake response via X-HTTP-Initial-Response\"),\r\n this.C = !0, qc(this, l);\r\n else {\r\n this.b = !1;\r\n this.h = 3;\r\n J(12);\r\n P(this);\r\n rc(this);\r\n break a;\r\n }\r\n }\r\n this.I ? (sc(this, b, f), Ia && this.b && 3 == b && (Mb(this.J, this.R, \"tick\", this.Wa), this.R.start())) : (G(this.c, this.f, f, null), qc(this, f));\r\n 4 == b && P(this);\r\n this.b && !this.A && (4 == b ? uc(this.g, this) : (this.b = !1, mc(this)));\r\n }\r\n else\r\n 400 == e && 0 < f.indexOf(\"Unknown SID\") ? (this.h = 3, J(12)) : (this.h = 0, J(13)), P(this), rc(this);\r\n }\r\n }\r\n }\r\n catch (u) { }\r\n finally { }\r\n};\r\nfunction sc(a, b, c) { for (var d = !0; !a.A && a.D < c.length;) {\r\n var e = vc(a, c);\r\n if (e == ic) {\r\n 4 == b && (a.h = 4, J(14), d = !1);\r\n G(a.c, a.f, null, \"[Incomplete Response]\");\r\n break;\r\n }\r\n else if (e == hc) {\r\n a.h = 4;\r\n J(15);\r\n G(a.c, a.f, c, \"[Invalid Chunk]\");\r\n d = !1;\r\n break;\r\n }\r\n else\r\n G(a.c, a.f, e, null), qc(a, e);\r\n} 4 == b && 0 == c.length && (a.h = 1, J(16), d = !1); a.b = a.b && d; d ? 0 < c.length && !a.V && (a.V = !0, b = a.g, b.a == a && b.U && !b.F && (b.c.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), wc(b), b.F = !0, J(11))) : (G(a.c, a.f, c, \"[Invalid Chunked Response]\"), P(a), rc(a)); }\r\nh.Wa = function () { if (this.a) {\r\n var a = O(this.a), b = this.a.$();\r\n this.D < b.length && (pc(this), sc(this, a, b), this.b && 4 != a && mc(this));\r\n} };\r\nfunction vc(a, b) { var c = a.D, d = b.indexOf(\"\\n\", c); if (-1 == d)\r\n return ic; c = Number(b.substring(c, d)); if (isNaN(c))\r\n return hc; d += 1; if (d + c > b.length)\r\n return ic; b = b.substr(d, c); a.D = d + c; return b; }\r\nh.cancel = function () { this.A = !0; P(this); };\r\nfunction mc(a) { a.T = q() + a.P; yc(a, a.P); }\r\nfunction yc(a, b) { if (null != a.o)\r\n throw Error(\"WatchDog timer not null\"); a.o = K(p(a.Va, a), b); }\r\nfunction pc(a) { a.o && (k.clearTimeout(a.o), a.o = null); }\r\nh.Va = function () { this.o = null; var a = q(); 0 <= a - this.T ? (Sb(this.c, this.l), 2 != this.H && (I(3), J(17)), P(this), this.h = 2, rc(this)) : yc(this, this.T - a); };\r\nfunction rc(a) { 0 == a.g.v || a.A || uc(a.g, a); }\r\nfunction P(a) { pc(a); var b = a.F; b && \"function\" == typeof b.ja && b.ja(); a.F = null; Hb(a.R); Nb(a.J); a.a && (b = a.a, a.a = null, b.abort(), b.ja()); }\r\nfunction qc(a, b) {\r\n try {\r\n var c = a.g;\r\n if (0 != c.v && (c.a == a || zc(c.b, a)))\r\n if (c.I = a.N, !a.C && zc(c.b, a) && 3 == c.v) {\r\n try {\r\n var d = c.ka.a.parse(b);\r\n }\r\n catch (tc) {\r\n d = null;\r\n }\r\n if (Array.isArray(d) && 3 == d.length) {\r\n var e = d;\r\n if (0 == e[0])\r\n a: {\r\n if (!c.j) {\r\n if (c.a)\r\n if (c.a.u + 3E3 < a.u)\r\n Ac(c), Bc(c);\r\n else\r\n break a;\r\n Cc(c);\r\n J(18);\r\n }\r\n }\r\n else\r\n c.oa = e[1], 0 < c.oa - c.P && 37500 > e[2] && c.H && 0 == c.o && !c.m && (c.m = K(p(c.Sa, c), 6E3));\r\n if (1 >= Dc(c.b) && c.ea) {\r\n try {\r\n c.ea();\r\n }\r\n catch (tc) { }\r\n c.ea = void 0;\r\n }\r\n }\r\n else\r\n Q(c, 11);\r\n }\r\n else if ((a.C || c.a == a) && Ac(c), !sa(b))\r\n for (b = d = c.ka.a.parse(b), d = 0; d < b.length; d++)\r\n if (e =\r\n b[d], c.P = e[0], e = e[1], 2 == c.v)\r\n if (\"c\" == e[0]) {\r\n c.J = e[1];\r\n c.ga = e[2];\r\n var f = e[3];\r\n null != f && (c.ha = f, c.c.info(\"VER=\" + c.ha));\r\n var g = e[4];\r\n null != g && (c.pa = g, c.c.info(\"SVER=\" + c.pa));\r\n var m = e[5];\r\n if (null != m && \"number\" === typeof m && 0 < m) {\r\n var l = 1.5 * m;\r\n c.D = l;\r\n c.c.info(\"backChannelRequestTimeoutMs_=\" + l);\r\n }\r\n l = c;\r\n var u = a.a;\r\n if (u) {\r\n var C = u.a ? u.a.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\r\n if (C) {\r\n var B = l.b;\r\n !B.a && (v(C, \"spdy\") || v(C, \"quic\") || v(C, \"h2\")) && (B.f = B.g, B.a = new Set, B.b && (Ec(B, B.b), B.b = null));\r\n }\r\n if (l.A) {\r\n var rb = u.a ? u.a.getResponseHeader(\"X-HTTP-Session-Id\") :\r\n null;\r\n rb && (l.na = rb, R(l.B, l.A, rb));\r\n }\r\n }\r\n c.v = 3;\r\n c.f && c.f.ta();\r\n c.U && (c.N = q() - a.u, c.c.info(\"Handshake RTT: \" + c.N + \"ms\"));\r\n l = c;\r\n var xa = a;\r\n l.la = Fc(l, l.C ? l.ga : null, l.fa);\r\n if (xa.C) {\r\n Gc(l.b, xa);\r\n var ya = xa, xc = l.D;\r\n xc && ya.setTimeout(xc);\r\n ya.o && (pc(ya), mc(ya));\r\n l.a = xa;\r\n }\r\n else\r\n Hc(l);\r\n 0 < c.g.length && Ic(c);\r\n }\r\n else\r\n \"stop\" != e[0] && \"close\" != e[0] || Q(c, 7);\r\n else\r\n 3 == c.v && (\"stop\" == e[0] || \"close\" == e[0] ? \"stop\" == e[0] ? Q(c, 7) : Jc(c) : \"noop\" != e[0] && c.f && c.f.sa(e), c.o = 0);\r\n I(4);\r\n }\r\n catch (tc) { }\r\n}\r\nfunction Kc(a) { if (a.K && \"function\" == typeof a.K)\r\n return a.K(); if (\"string\" === typeof a)\r\n return a.split(\"\"); if (ba(a)) {\r\n for (var b = [], c = a.length, d = 0; d < c; d++)\r\n b.push(a[d]);\r\n return b;\r\n} b = []; c = 0; for (d in a)\r\n b[c++] = a[d]; return a = b; }\r\nfunction Lc(a, b) { if (a.forEach && \"function\" == typeof a.forEach)\r\n a.forEach(b, void 0);\r\nelse if (ba(a) || \"string\" === typeof a)\r\n na(a, b, void 0);\r\nelse {\r\n if (a.L && \"function\" == typeof a.L)\r\n var c = a.L();\r\n else if (a.K && \"function\" == typeof a.K)\r\n c = void 0;\r\n else if (ba(a) || \"string\" === typeof a) {\r\n c = [];\r\n for (var d = a.length, e = 0; e < d; e++)\r\n c.push(e);\r\n }\r\n else\r\n for (e in c = [], d = 0, a)\r\n c[d++] = e;\r\n d = Kc(a);\r\n e = d.length;\r\n for (var f = 0; f < e; f++)\r\n b.call(void 0, d[f], c && c[f], a);\r\n} }\r\nfunction S(a, b) { this.b = {}; this.a = []; this.c = 0; var c = arguments.length; if (1 < c) {\r\n if (c % 2)\r\n throw Error(\"Uneven number of arguments\");\r\n for (var d = 0; d < c; d += 2)\r\n this.set(arguments[d], arguments[d + 1]);\r\n}\r\nelse if (a)\r\n if (a instanceof S)\r\n for (c = a.L(), d = 0; d < c.length; d++)\r\n this.set(c[d], a.get(c[d]));\r\n else\r\n for (d in a)\r\n this.set(d, a[d]); }\r\nh = S.prototype;\r\nh.K = function () { Mc(this); for (var a = [], b = 0; b < this.a.length; b++)\r\n a.push(this.b[this.a[b]]); return a; };\r\nh.L = function () { Mc(this); return this.a.concat(); };\r\nfunction Mc(a) { if (a.c != a.a.length) {\r\n for (var b = 0, c = 0; b < a.a.length;) {\r\n var d = a.a[b];\r\n T(a.b, d) && (a.a[c++] = d);\r\n b++;\r\n }\r\n a.a.length = c;\r\n} if (a.c != a.a.length) {\r\n var e = {};\r\n for (c = b = 0; b < a.a.length;)\r\n d = a.a[b], T(e, d) || (a.a[c++] = d, e[d] = 1), b++;\r\n a.a.length = c;\r\n} }\r\nh.get = function (a, b) { return T(this.b, a) ? this.b[a] : b; };\r\nh.set = function (a, b) { T(this.b, a) || (this.c++, this.a.push(a)); this.b[a] = b; };\r\nh.forEach = function (a, b) { for (var c = this.L(), d = 0; d < c.length; d++) {\r\n var e = c[d], f = this.get(e);\r\n a.call(b, f, e, this);\r\n} };\r\nfunction T(a, b) { return Object.prototype.hasOwnProperty.call(a, b); }\r\nvar Nc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\r\nfunction Oc(a, b) { if (a) {\r\n a = a.split(\"&\");\r\n for (var c = 0; c < a.length; c++) {\r\n var d = a[c].indexOf(\"=\"), e = null;\r\n if (0 <= d) {\r\n var f = a[c].substring(0, d);\r\n e = a[c].substring(d + 1);\r\n }\r\n else\r\n f = a[c];\r\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\r\n }\r\n} }\r\nfunction U(a, b) { this.c = this.j = this.f = \"\"; this.h = null; this.i = this.g = \"\"; this.a = !1; if (a instanceof U) {\r\n this.a = void 0 !== b ? b : a.a;\r\n Pc(this, a.f);\r\n this.j = a.j;\r\n Qc(this, a.c);\r\n Rc(this, a.h);\r\n this.g = a.g;\r\n b = a.b;\r\n var c = new Sc;\r\n c.c = b.c;\r\n b.a && (c.a = new S(b.a), c.b = b.b);\r\n Tc(this, c);\r\n this.i = a.i;\r\n}\r\nelse\r\n a && (c = String(a).match(Nc)) ? (this.a = !!b, Pc(this, c[1] || \"\", !0), this.j = Uc(c[2] || \"\"), Qc(this, c[3] || \"\", !0), Rc(this, c[4]), this.g = Uc(c[5] || \"\", !0), Tc(this, c[6] || \"\", !0), this.i = Uc(c[7] || \"\")) : (this.a = !!b, this.b = new Sc(null, this.a)); }\r\nU.prototype.toString = function () { var a = [], b = this.f; b && a.push(Vc(b, Wc, !0), \":\"); var c = this.c; if (c || \"file\" == b)\r\n a.push(\"//\"), (b = this.j) && a.push(Vc(b, Wc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.h, null != c && a.push(\":\", String(c)); if (c = this.g)\r\n this.c && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Vc(c, \"/\" == c.charAt(0) ? Xc : Yc, !0)); (c = this.b.toString()) && a.push(\"?\", c); (c = this.i) && a.push(\"#\", Vc(c, Zc)); return a.join(\"\"); };\r\nfunction N(a) { return new U(a); }\r\nfunction Pc(a, b, c) { a.f = c ? Uc(b, !0) : b; a.f && (a.f = a.f.replace(/:$/, \"\")); }\r\nfunction Qc(a, b, c) { a.c = c ? Uc(b, !0) : b; }\r\nfunction Rc(a, b) { if (b) {\r\n b = Number(b);\r\n if (isNaN(b) || 0 > b)\r\n throw Error(\"Bad port number \" + b);\r\n a.h = b;\r\n}\r\nelse\r\n a.h = null; }\r\nfunction Tc(a, b, c) { b instanceof Sc ? (a.b = b, $c(a.b, a.a)) : (c || (b = Vc(b, ad)), a.b = new Sc(b, a.a)); }\r\nfunction R(a, b, c) { a.b.set(b, c); }\r\nfunction kc(a) { R(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ q()).toString(36)); return a; }\r\nfunction bd(a) { return a instanceof U ? N(a) : new U(a, void 0); }\r\nfunction cd(a, b, c, d) { var e = new U(null, void 0); a && Pc(e, a); b && Qc(e, b); c && Rc(e, c); d && (e.g = d); return e; }\r\nfunction Uc(a, b) { return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\"; }\r\nfunction Vc(a, b, c) { return \"string\" === typeof a ? (a = encodeURI(a).replace(b, dd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null; }\r\nfunction dd(a) { a = a.charCodeAt(0); return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); }\r\nvar Wc = /[#\\/\\?@]/g, Yc = /[#\\?:]/g, Xc = /[#\\?]/g, ad = /[#\\?@]/g, Zc = /#/g;\r\nfunction Sc(a, b) { this.b = this.a = null; this.c = a || null; this.f = !!b; }\r\nfunction V(a) { a.a || (a.a = new S, a.b = 0, a.c && Oc(a.c, function (b, c) { a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c); })); }\r\nh = Sc.prototype;\r\nh.add = function (a, b) { V(this); this.c = null; a = W(this, a); var c = this.a.get(a); c || this.a.set(a, c = []); c.push(b); this.b += 1; return this; };\r\nfunction ed(a, b) { V(a); b = W(a, b); T(a.a.b, b) && (a.c = null, a.b -= a.a.get(b).length, a = a.a, T(a.b, b) && (delete a.b[b], a.c--, a.a.length > 2 * a.c && Mc(a))); }\r\nfunction fd(a, b) { V(a); b = W(a, b); return T(a.a.b, b); }\r\nh.forEach = function (a, b) { V(this); this.a.forEach(function (c, d) { na(c, function (e) { a.call(b, e, d, this); }, this); }, this); };\r\nh.L = function () { V(this); for (var a = this.a.K(), b = this.a.L(), c = [], d = 0; d < b.length; d++)\r\n for (var e = a[d], f = 0; f < e.length; f++)\r\n c.push(b[d]); return c; };\r\nh.K = function (a) { V(this); var b = []; if (\"string\" === typeof a)\r\n fd(this, a) && (b = qa(b, this.a.get(W(this, a))));\r\nelse {\r\n a = this.a.K();\r\n for (var c = 0; c < a.length; c++)\r\n b = qa(b, a[c]);\r\n} return b; };\r\nh.set = function (a, b) { V(this); this.c = null; a = W(this, a); fd(this, a) && (this.b -= this.a.get(a).length); this.a.set(a, [b]); this.b += 1; return this; };\r\nh.get = function (a, b) { if (!a)\r\n return b; a = this.K(a); return 0 < a.length ? String(a[0]) : b; };\r\nfunction nc(a, b, c) { ed(a, b); 0 < c.length && (a.c = null, a.a.set(W(a, b), ra(c)), a.b += c.length); }\r\nh.toString = function () { if (this.c)\r\n return this.c; if (!this.a)\r\n return \"\"; for (var a = [], b = this.a.L(), c = 0; c < b.length; c++) {\r\n var d = b[c], e = encodeURIComponent(String(d));\r\n d = this.K(d);\r\n for (var f = 0; f < d.length; f++) {\r\n var g = e;\r\n \"\" !== d[f] && (g += \"=\" + encodeURIComponent(String(d[f])));\r\n a.push(g);\r\n }\r\n} return this.c = a.join(\"&\"); };\r\nfunction W(a, b) { b = String(b); a.f && (b = b.toLowerCase()); return b; }\r\nfunction $c(a, b) { b && !a.f && (V(a), a.c = null, a.a.forEach(function (c, d) { var e = d.toLowerCase(); d != e && (ed(this, d), nc(this, e, c)); }, a)); a.f = b; }\r\nvar gd = /** @class */ (function () {\r\n function gd(a, b) {\r\n this.b = a;\r\n this.a = b;\r\n }\r\n return gd;\r\n}());\r\nfunction hd(a) { this.g = a || id; k.PerformanceNavigationTiming ? (a = k.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(k.ia && k.ia.ya && k.ia.ya() && k.ia.ya().Lb); this.f = a ? this.g : 1; this.a = null; 1 < this.f && (this.a = new Set); this.b = null; this.c = []; }\r\nvar id = 10;\r\nfunction jd(a) { return a.b ? !0 : a.a ? a.a.size >= a.f : !1; }\r\nfunction Dc(a) { return a.b ? 1 : a.a ? a.a.size : 0; }\r\nfunction zc(a, b) { return a.b ? a.b == b : a.a ? a.a.has(b) : !1; }\r\nfunction Ec(a, b) { a.a ? a.a.add(b) : a.b = b; }\r\nfunction Gc(a, b) { a.b && a.b == b ? a.b = null : a.a && a.a.has(b) && a.a.delete(b); }\r\nhd.prototype.cancel = function () {\r\n var e_1, _a;\r\n this.c = kd(this);\r\n if (this.b)\r\n this.b.cancel(), this.b = null;\r\n else if (this.a && 0 !== this.a.size) {\r\n try {\r\n for (var _b = __values(this.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var a = _c.value;\r\n a.cancel();\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n this.a.clear();\r\n }\r\n};\r\nfunction kd(a) {\r\n var e_2, _a;\r\n if (null != a.b)\r\n return a.c.concat(a.b.s);\r\n if (null != a.a && 0 !== a.a.size) {\r\n var b = a.c;\r\n try {\r\n for (var _b = __values(a.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var c = _c.value;\r\n b = b.concat(c.s);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return b;\r\n }\r\n return ra(a.c);\r\n}\r\nfunction ld() { }\r\nld.prototype.stringify = function (a) { return k.JSON.stringify(a, void 0); };\r\nld.prototype.parse = function (a) { return k.JSON.parse(a, void 0); };\r\nfunction md() { this.a = new ld; }\r\nfunction nd(a, b, c) { var d = c || \"\"; try {\r\n Lc(a, function (e, f) { var g = e; n(e) && (g = ub(e)); b.push(d + f + \"=\" + encodeURIComponent(g)); });\r\n}\r\ncatch (e) {\r\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\r\n} }\r\nfunction od(a, b) { var c = new Ob; if (k.Image) {\r\n var d = new Image;\r\n d.onload = ja(pd, c, d, \"TestLoadImage: loaded\", !0, b);\r\n d.onerror = ja(pd, c, d, \"TestLoadImage: error\", !1, b);\r\n d.onabort = ja(pd, c, d, \"TestLoadImage: abort\", !1, b);\r\n d.ontimeout = ja(pd, c, d, \"TestLoadImage: timeout\", !1, b);\r\n k.setTimeout(function () { if (d.ontimeout)\r\n d.ontimeout(); }, 1E4);\r\n d.src = a;\r\n}\r\nelse\r\n b(!1); }\r\nfunction pd(a, b, c, d, e) { try {\r\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\r\n}\r\ncatch (f) { } }\r\nvar qd = k.JSON.parse;\r\nfunction X(a) { D.call(this); this.headers = new S; this.H = a || null; this.b = !1; this.s = this.a = null; this.B = \"\"; this.h = 0; this.f = \"\"; this.g = this.A = this.l = this.u = !1; this.o = 0; this.m = null; this.I = rd; this.D = this.F = !1; }\r\nr(X, D);\r\nvar rd = \"\", sd = /^https?$/i, td = [\"POST\", \"PUT\"];\r\nh = X.prototype;\r\nh.ba = function (a, b, c, d) {\r\n if (this.a)\r\n throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.B + \"; newUri=\" + a);\r\n b = b ? b.toUpperCase() : \"GET\";\r\n this.B = a;\r\n this.f = \"\";\r\n this.h = 0;\r\n this.u = !1;\r\n this.b = !0;\r\n this.a = new XMLHttpRequest;\r\n this.s = this.H ? ac(this.H) : ac(ec);\r\n this.a.onreadystatechange = p(this.za, this);\r\n try {\r\n this.A = !0, this.a.open(b, String(a), !0), this.A = !1;\r\n }\r\n catch (f) {\r\n ud(this, f);\r\n return;\r\n }\r\n a = c || \"\";\r\n var e = new S(this.headers);\r\n d && Lc(d, function (f, g) { e.set(g, f); });\r\n d = oa(e.L());\r\n c = k.FormData && a instanceof k.FormData;\r\n !(0 <=\r\n ma(td, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\r\n e.forEach(function (f, g) { this.a.setRequestHeader(g, f); }, this);\r\n this.I && (this.a.responseType = this.I);\r\n \"withCredentials\" in this.a && this.a.withCredentials !== this.F && (this.a.withCredentials = this.F);\r\n try {\r\n vd(this), 0 < this.o && ((this.D = wd(this.a)) ? (this.a.timeout = this.o, this.a.ontimeout = p(this.xa, this)) : this.m = Ib(this.xa, this.o, this)), this.l = !0, this.a.send(a), this.l = !1;\r\n }\r\n catch (f) {\r\n ud(this, f);\r\n }\r\n};\r\nfunction wd(a) { return x && Qa(9) && \"number\" === typeof a.timeout && void 0 !== a.ontimeout; }\r\nfunction pa(a) { return \"content-type\" == a.toLowerCase(); }\r\nh.xa = function () { \"undefined\" != typeof goog && this.a && (this.f = \"Timed out after \" + this.o + \"ms, aborting\", this.h = 8, E(this, \"timeout\"), this.abort(8)); };\r\nfunction ud(a, b) { a.b = !1; a.a && (a.g = !0, a.a.abort(), a.g = !1); a.f = b; a.h = 5; xd(a); yd(a); }\r\nfunction xd(a) { a.u || (a.u = !0, E(a, \"complete\"), E(a, \"error\")); }\r\nh.abort = function (a) { this.a && this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1, this.h = a || 7, E(this, \"complete\"), E(this, \"abort\"), yd(this)); };\r\nh.G = function () { this.a && (this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1), yd(this, !0)); X.X.G.call(this); };\r\nh.za = function () { this.j || (this.A || this.l || this.g ? zd(this) : this.Ua()); };\r\nh.Ua = function () { zd(this); };\r\nfunction zd(a) {\r\n if (a.b && \"undefined\" != typeof goog && (!a.s[1] || 4 != O(a) || 2 != a.W()))\r\n if (a.l && 4 == O(a))\r\n Ib(a.za, 0, a);\r\n else if (E(a, \"readystatechange\"), 4 == O(a)) {\r\n a.b = !1;\r\n try {\r\n {\r\n var l = a.W();\r\n a: switch (l) {\r\n case 200:\r\n case 201:\r\n case 202:\r\n case 204:\r\n case 206:\r\n case 304:\r\n case 1223:\r\n var b = !0;\r\n break a;\r\n default: b = !1;\r\n }\r\n var c;\r\n if (!(c = b)) {\r\n var d;\r\n if (d = 0 === l) {\r\n var e = String(a.B).match(Nc)[1] || null;\r\n if (!e && k.self && k.self.location) {\r\n var f = k.self.location.protocol;\r\n e = f.substr(0, f.length - 1);\r\n }\r\n d = !sd.test(e ? e.toLowerCase() : \"\");\r\n }\r\n c = d;\r\n }\r\n var g = c;\r\n }\r\n if (g)\r\n E(a, \"complete\"),\r\n E(a, \"success\");\r\n else {\r\n a.h = 6;\r\n try {\r\n var m = 2 < O(a) ? a.a.statusText : \"\";\r\n }\r\n catch (l) {\r\n m = \"\";\r\n }\r\n a.f = m + \" [\" + a.W() + \"]\";\r\n xd(a);\r\n }\r\n }\r\n finally {\r\n yd(a);\r\n }\r\n }\r\n}\r\nfunction yd(a, b) { if (a.a) {\r\n vd(a);\r\n var c = a.a, d = a.s[0] ? aa : null;\r\n a.a = null;\r\n a.s = null;\r\n b || E(a, \"ready\");\r\n try {\r\n c.onreadystatechange = d;\r\n }\r\n catch (e) { }\r\n} }\r\nfunction vd(a) { a.a && a.D && (a.a.ontimeout = null); a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction O(a) { return a.a ? a.a.readyState : 0; }\r\nh.W = function () { try {\r\n return 2 < O(this) ? this.a.status : -1;\r\n}\r\ncatch (a) {\r\n return -1;\r\n} };\r\nh.$ = function () { try {\r\n return this.a ? this.a.responseText : \"\";\r\n}\r\ncatch (a) {\r\n return \"\";\r\n} };\r\nh.Pa = function (a) { if (this.a) {\r\n var b = this.a.responseText;\r\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\r\n return qd(b);\r\n} };\r\nh.ua = function () { return this.h; };\r\nh.Qa = function () { return \"string\" === typeof this.f ? this.f : String(this.f); };\r\nfunction Ad(a) { var b = \"\"; za(a, function (c, d) { b += d; b += \":\"; b += c; b += \"\\r\\n\"; }); return b; }\r\nfunction Bd(a, b, c) { a: {\r\n for (d in c) {\r\n var d = !1;\r\n break a;\r\n }\r\n d = !0;\r\n} d || (c = Ad(c), \"string\" === typeof a ? (null != c && encodeURIComponent(String(c))) : R(a, b, c)); }\r\nfunction Cd(a, b, c) { return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b; }\r\nfunction Dd(a) {\r\n this.pa = 0;\r\n this.g = [];\r\n this.c = new Ob;\r\n this.ga = this.la = this.B = this.fa = this.a = this.na = this.A = this.V = this.i = this.O = this.l = null;\r\n this.Oa = this.R = 0;\r\n this.La = Cd(\"failFast\", !1, a);\r\n this.H = this.m = this.j = this.h = this.f = null;\r\n this.S = !0;\r\n this.I = this.oa = this.P = -1;\r\n this.T = this.o = this.u = 0;\r\n this.Ha = Cd(\"baseRetryDelayMs\", 5E3, a);\r\n this.Ra = Cd(\"retryDelaySeedMs\", 1E4, a);\r\n this.Ma = Cd(\"forwardChannelMaxRetries\", 2, a);\r\n this.ma = Cd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\r\n this.Na = a && a.g || void 0;\r\n this.D = void 0;\r\n this.C = a && a.supportsCrossDomainXhr ||\r\n !1;\r\n this.J = \"\";\r\n this.b = new hd(a && a.concurrentRequestLimit);\r\n this.ka = new md;\r\n this.da = a && a.fastHandshake || !1;\r\n this.Ia = a && a.b || !1;\r\n a && a.f && (this.c.a = !1);\r\n a && a.forceLongPolling && (this.S = !1);\r\n this.U = !this.da && this.S && a && a.detectBufferingProxy || !1;\r\n this.ea = void 0;\r\n this.N = 0;\r\n this.F = !1;\r\n this.s = null;\r\n (this.Ka = a && a.c || !1) && this.c.info(\"Opt-in to enable Chrome Origin Trials.\");\r\n}\r\nh = Dd.prototype;\r\nh.ha = 8;\r\nh.v = 1;\r\nfunction Jc(a) { Ed(a); if (3 == a.v) {\r\n var b = a.R++, c = N(a.B);\r\n R(c, \"SID\", a.J);\r\n R(c, \"RID\", b);\r\n R(c, \"TYPE\", \"terminate\");\r\n Fd(a, c);\r\n b = new M(a, a.c, b, void 0);\r\n b.H = 2;\r\n b.i = kc(N(c));\r\n c = !1;\r\n k.navigator && k.navigator.sendBeacon && (c = k.navigator.sendBeacon(b.i.toString(), \"\"));\r\n !c && k.Image && ((new Image).src = b.i, c = !0);\r\n c || (b.a = oc(b.g, null), b.a.ba(b.i));\r\n b.u = q();\r\n mc(b);\r\n} Gd(a); }\r\nfunction Bc(a) { a.a && (wc(a), a.a.cancel(), a.a = null); }\r\nfunction Ed(a) { Bc(a); a.j && (k.clearTimeout(a.j), a.j = null); Ac(a); a.b.cancel(); a.h && (\"number\" === typeof a.h && k.clearTimeout(a.h), a.h = null); }\r\nfunction Hd(a, b) { a.g.push(new gd(a.Oa++, b)); 3 == a.v && Ic(a); }\r\nfunction Ic(a) { jd(a.b) || a.h || (a.h = !0, Bb(a.Ba, a), a.u = 0); }\r\nfunction Id(a, b) { if (Dc(a.b) >= a.b.f - (a.h ? 1 : 0))\r\n return !1; if (a.h)\r\n return a.g = b.s.concat(a.g), !0; if (1 == a.v || 2 == a.v || a.u >= (a.La ? 0 : a.Ma))\r\n return !1; a.h = K(p(a.Ba, a, b), Jd(a, a.u)); a.u++; return !0; }\r\nh.Ba = function (a) {\r\n if (this.h)\r\n if (this.h = null, 1 == this.v) {\r\n if (!a) {\r\n this.R = Math.floor(1E5 * Math.random());\r\n a = this.R++;\r\n var b = new M(this, this.c, a, void 0), c = this.l;\r\n this.O && (c ? (c = Aa(c), Ca(c, this.O)) : c = this.O);\r\n null === this.i && (b.B = c);\r\n var d;\r\n if (this.da)\r\n a: {\r\n for (var e = d = 0; e < this.g.length; e++) {\r\n b: {\r\n var f = this.g[e];\r\n if (\"__data__\" in f.a && (f = f.a.__data__, \"string\" === typeof f)) {\r\n f = f.length;\r\n break b;\r\n }\r\n f = void 0;\r\n }\r\n if (void 0 === f)\r\n break;\r\n d += f;\r\n if (4096 < d) {\r\n d = e;\r\n break a;\r\n }\r\n if (4096 === d || e === this.g.length - 1) {\r\n d = e + 1;\r\n break a;\r\n }\r\n }\r\n d = 1E3;\r\n }\r\n else\r\n d = 1E3;\r\n d = Kd(this, b, d);\r\n e = N(this.B);\r\n R(e, \"RID\", a);\r\n R(e, \"CVER\", 22);\r\n this.A && R(e, \"X-HTTP-Session-Id\", this.A);\r\n Fd(this, e);\r\n this.i && c && Bd(e, this.i, c);\r\n Ec(this.b, b);\r\n this.Ia && R(e, \"TYPE\", \"init\");\r\n this.da ? (R(e, \"$req\", d), R(e, \"SID\", \"null\"), b.U = !0, jc(b, e, null)) : jc(b, e, d);\r\n this.v = 2;\r\n }\r\n }\r\n else\r\n 3 == this.v && (a ? Ld(this, a) : 0 == this.g.length || jd(this.b) || Ld(this));\r\n};\r\nfunction Ld(a, b) { var c; b ? c = b.f : c = a.R++; var d = N(a.B); R(d, \"SID\", a.J); R(d, \"RID\", c); R(d, \"AID\", a.P); Fd(a, d); a.i && a.l && Bd(d, a.i, a.l); c = new M(a, a.c, c, a.u + 1); null === a.i && (c.B = a.l); b && (a.g = b.s.concat(a.g)); b = Kd(a, c, 1E3); c.setTimeout(Math.round(.5 * a.ma) + Math.round(.5 * a.ma * Math.random())); Ec(a.b, c); jc(c, d, b); }\r\nfunction Fd(a, b) { a.f && Lc({}, function (c, d) { R(b, d, c); }); }\r\nfunction Kd(a, b, c) { c = Math.min(a.g.length, c); var d = a.f ? p(a.f.Ja, a.f, a) : null; a: for (var e = a.g, f = -1;;) {\r\n var g = [\"count=\" + c];\r\n -1 == f ? 0 < c ? (f = e[0].b, g.push(\"ofs=\" + f)) : f = 0 : g.push(\"ofs=\" + f);\r\n for (var m = !0, l = 0; l < c; l++) {\r\n var u = e[l].b, C = e[l].a;\r\n u -= f;\r\n if (0 > u)\r\n f = Math.max(0, e[l].b - 100), m = !1;\r\n else\r\n try {\r\n nd(C, g, \"req\" + u + \"_\");\r\n }\r\n catch (B) {\r\n d && d(C);\r\n }\r\n }\r\n if (m) {\r\n d = g.join(\"&\");\r\n break a;\r\n }\r\n} a = a.g.splice(0, c); b.s = a; return d; }\r\nfunction Hc(a) { a.a || a.j || (a.T = 1, Bb(a.Aa, a), a.o = 0); }\r\nfunction Cc(a) { if (a.a || a.j || 3 <= a.o)\r\n return !1; a.T++; a.j = K(p(a.Aa, a), Jd(a, a.o)); a.o++; return !0; }\r\nh.Aa = function () { this.j = null; Md(this); if (this.U && !(this.F || null == this.a || 0 >= this.N)) {\r\n var a = 2 * this.N;\r\n this.c.info(\"BP detection timer enabled: \" + a);\r\n this.s = K(p(this.Ta, this), a);\r\n} };\r\nh.Ta = function () { this.s && (this.s = null, this.c.info(\"BP detection timeout reached.\"), this.c.info(\"Buffering proxy detected and switch to long-polling!\"), this.H = !1, this.F = !0, J(10), Bc(this), Md(this)); };\r\nfunction wc(a) { null != a.s && (k.clearTimeout(a.s), a.s = null); }\r\nfunction Md(a) { a.a = new M(a, a.c, \"rpc\", a.T); null === a.i && (a.a.B = a.l); a.a.O = 0; var b = N(a.la); R(b, \"RID\", \"rpc\"); R(b, \"SID\", a.J); R(b, \"CI\", a.H ? \"0\" : \"1\"); R(b, \"AID\", a.P); Fd(a, b); R(b, \"TYPE\", \"xmlhttp\"); a.i && a.l && Bd(b, a.i, a.l); a.D && a.a.setTimeout(a.D); var c = a.a; a = a.ga; c.H = 1; c.i = kc(N(b)); c.j = null; c.I = !0; lc(c, a); }\r\nh.Sa = function () { null != this.m && (this.m = null, Bc(this), Cc(this), J(19)); };\r\nfunction Ac(a) { null != a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction uc(a, b) { var c = null; if (a.a == b) {\r\n Ac(a);\r\n wc(a);\r\n a.a = null;\r\n var d = 2;\r\n}\r\nelse if (zc(a.b, b))\r\n c = b.s, Gc(a.b, b), d = 1;\r\nelse\r\n return; a.I = b.N; if (0 != a.v)\r\n if (b.b)\r\n if (1 == d) {\r\n c = b.j ? b.j.length : 0;\r\n b = q() - b.u;\r\n var e = a.u;\r\n d = Ub();\r\n E(d, new Xb(d, c, b, e));\r\n Ic(a);\r\n }\r\n else\r\n Hc(a);\r\n else if (e = b.h, 3 == e || 0 == e && 0 < a.I || !(1 == d && Id(a, b) || 2 == d && Cc(a)))\r\n switch (c && 0 < c.length && (b = a.b, b.c = b.c.concat(c)), e) {\r\n case 1:\r\n Q(a, 5);\r\n break;\r\n case 4:\r\n Q(a, 10);\r\n break;\r\n case 3:\r\n Q(a, 6);\r\n break;\r\n default: Q(a, 2);\r\n } }\r\nfunction Jd(a, b) { var c = a.Ha + Math.floor(Math.random() * a.Ra); a.f || (c *= 2); return c * b; }\r\nfunction Q(a, b) { a.c.info(\"Error code \" + b); if (2 == b) {\r\n var c = null;\r\n a.f && (c = null);\r\n var d = p(a.Ya, a);\r\n c || (c = new U(\"//www.google.com/images/cleardot.gif\"), k.location && \"http\" == k.location.protocol || Pc(c, \"https\"), kc(c));\r\n od(c.toString(), d);\r\n}\r\nelse\r\n J(2); a.v = 0; a.f && a.f.ra(b); Gd(a); Ed(a); }\r\nh.Ya = function (a) { a ? (this.c.info(\"Successfully pinged google.com\"), J(2)) : (this.c.info(\"Failed to ping google.com\"), J(1)); };\r\nfunction Gd(a) { a.v = 0; a.I = -1; if (a.f) {\r\n if (0 != kd(a.b).length || 0 != a.g.length)\r\n a.b.c.length = 0, ra(a.g), a.g.length = 0;\r\n a.f.qa();\r\n} }\r\nfunction Fc(a, b, c) { var d = bd(c); if (\"\" != d.c)\r\n b && Qc(d, b + \".\" + d.c), Rc(d, d.h);\r\nelse {\r\n var e = k.location;\r\n d = cd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\r\n} a.V && za(a.V, function (f, g) { R(d, g, f); }); b = a.A; c = a.na; b && c && R(d, b, c); R(d, \"VER\", a.ha); Fd(a, d); return d; }\r\nfunction oc(a, b) { if (b && !a.C)\r\n throw Error(\"Can't create secondary domain capable XhrIo object.\"); b = new X(a.Na); b.F = a.C; return b; }\r\nfunction Nd() { }\r\nh = Nd.prototype;\r\nh.ta = function () { };\r\nh.sa = function () { };\r\nh.ra = function () { };\r\nh.qa = function () { };\r\nh.Ja = function () { };\r\nfunction Od() { if (x && !(10 <= Number(Ta)))\r\n throw Error(\"Environmental error: no available transport.\"); }\r\nOd.prototype.a = function (a, b) { return new Y(a, b); };\r\nfunction Y(a, b) {\r\n D.call(this);\r\n this.a = new Dd(b);\r\n this.o = a;\r\n this.b = b && b.messageUrlParams || null;\r\n a = b && b.messageHeaders || null;\r\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = { \"X-Client-Protocol\": \"webchannel\" });\r\n this.a.l = a;\r\n a = b && b.initMessageHeaders || null;\r\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = { \"X-WebChannel-Content-Type\": b.messageContentType });\r\n b && b.a && (a ? a[\"X-WebChannel-Client-Profile\"] = b.a : a = { \"X-WebChannel-Client-Profile\": b.a });\r\n this.a.O =\r\n a;\r\n (a = b && b.httpHeadersOverwriteParam) && !sa(a) && (this.a.i = a);\r\n this.m = b && b.supportsCrossDomainXhr || !1;\r\n this.l = b && b.sendRawJson || !1;\r\n (b = b && b.httpSessionIdParam) && !sa(b) && (this.a.A = b, a = this.b, null !== a && b in a && (a = this.b, b in a && delete a[b]));\r\n this.f = new Z(this);\r\n}\r\nr(Y, D);\r\nY.prototype.g = function () { this.a.f = this.f; this.m && (this.a.C = !0); var a = this.a, b = this.o, c = this.b || void 0; J(0); a.fa = b; a.V = c || {}; a.H = a.S; a.B = Fc(a, null, a.fa); Ic(a); };\r\nY.prototype.close = function () { Jc(this.a); };\r\nY.prototype.h = function (a) { if (\"string\" === typeof a) {\r\n var b = {};\r\n b.__data__ = a;\r\n Hd(this.a, b);\r\n}\r\nelse\r\n this.l ? (b = {}, b.__data__ = ub(a), Hd(this.a, b)) : Hd(this.a, a); };\r\nY.prototype.G = function () { this.a.f = null; delete this.f; Jc(this.a); delete this.a; Y.X.G.call(this); };\r\nfunction Pd(a) { cc.call(this); var b = a.__sm__; if (b) {\r\n a: {\r\n for (var c in b) {\r\n a = c;\r\n break a;\r\n }\r\n a = void 0;\r\n }\r\n (this.c = a) ? (a = this.c, this.data = null !== b && a in b ? b[a] : void 0) : this.data = b;\r\n}\r\nelse\r\n this.data = a; }\r\nr(Pd, cc);\r\nfunction Qd() { dc.call(this); this.status = 1; }\r\nr(Qd, dc);\r\nfunction Z(a) { this.a = a; }\r\nr(Z, Nd);\r\nZ.prototype.ta = function () { E(this.a, \"a\"); };\r\nZ.prototype.sa = function (a) { E(this.a, new Pd(a)); };\r\nZ.prototype.ra = function (a) { E(this.a, new Qd(a)); };\r\nZ.prototype.qa = function () { E(this.a, \"b\"); }; /*\r\n\n Copyright 2017 Google LLC\r\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\n http://www.apache.org/licenses/LICENSE-2.0\r\n\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\nOd.prototype.createWebChannel = Od.prototype.a;\r\nY.prototype.send = Y.prototype.h;\r\nY.prototype.open = Y.prototype.g;\r\nY.prototype.close = Y.prototype.close;\r\nYb.NO_ERROR = 0;\r\nYb.TIMEOUT = 8;\r\nYb.HTTP_ERROR = 6;\r\nZb.COMPLETE = \"complete\";\r\nbc.EventType = L;\r\nL.OPEN = \"a\";\r\nL.CLOSE = \"b\";\r\nL.ERROR = \"c\";\r\nL.MESSAGE = \"d\";\r\nD.prototype.listen = D.prototype.va;\r\nX.prototype.listenOnce = X.prototype.wa;\r\nX.prototype.getLastError = X.prototype.Qa;\r\nX.prototype.getLastErrorCode = X.prototype.ua;\r\nX.prototype.getStatus = X.prototype.W;\r\nX.prototype.getResponseJson = X.prototype.Pa;\r\nX.prototype.getResponseText = X.prototype.$;\r\nX.prototype.send = X.prototype.ba;\r\nvar createWebChannelTransport = function () { return new Od; };\r\nvar getStatEventTarget = function () { return Ub(); };\r\nvar ErrorCode = Yb;\r\nvar EventType = Zb;\r\nvar Event = H;\r\nvar Stat = { gb: 0, jb: 1, kb: 2, Db: 3, Ib: 4, Fb: 5, Gb: 6, Eb: 7, Cb: 8, Hb: 9, PROXY: 10, NOPROXY: 11, Ab: 12, wb: 13, xb: 14, vb: 15, yb: 16, zb: 17, bb: 18, ab: 19, cb: 20 };\r\nvar WebChannel = bc;\r\nvar XhrIo = X;\r\n\r\nvar esm = {\r\n createWebChannelTransport: createWebChannelTransport,\r\n getStatEventTarget: getStatEventTarget,\r\n ErrorCode: ErrorCode,\r\n EventType: EventType,\r\n Event: Event,\r\n Stat: Stat,\r\n WebChannel: WebChannel,\r\n XhrIo: XhrIo\r\n};\n\nexport default esm;\nexport { ErrorCode, Event, EventType, Stat, WebChannel, XhrIo, createWebChannelTransport, getStatEventTarget };\n//# sourceMappingURL=index.esm.js.map\n","import { getUA as t, isMobileCordova as e, isReactNative as n, isElectron as r, isIE as i, isUWP as o, isBrowserExtension as s, getModularInstance as u } from \"@firebase/util\";\n\nimport { Logger as a, LogLevel as c } from \"@firebase/logger\";\n\nimport { XhrIo as h, EventType as f, ErrorCode as l, createWebChannelTransport as d, getStatEventTarget as p, WebChannel as y, Event as v, Stat as m } from \"@firebase/webchannel-wrapper\";\n\nimport { __extends as g, __spreadArray as w, __awaiter as b, __generator as I } from \"tslib\";\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * `ListenSequence` is a monotonic sequence. It is initialized with a minimum value to\n * exceed. All subsequent calls to next will return increasing values. If provided with a\n * `SequenceNumberSyncer`, it will additionally bump its next value when told of a new value, as\n * well as write out sequence numbers that it produces via `next()`.\n */ var _ = /** @class */ function() {\n function t(t, e) {\n var n = this;\n this.previousValue = t, e && (e.sequenceNumberHandler = function(t) {\n return n.t(t);\n }, this.i = function(t) {\n return e.writeSequenceNumber(t);\n });\n }\n return t.prototype.t = function(t) {\n return this.previousValue = Math.max(t, this.previousValue), this.previousValue;\n }, t.prototype.next = function() {\n var t = ++this.previousValue;\n return this.i && this.i(t), t;\n }, t;\n}();\n\n_.o = -1;\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar E = {\n // Causes are copied from:\n // https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h\n /** Not an error; returned on success. */\n OK: \"ok\",\n /** The operation was cancelled (typically by the caller). */\n CANCELLED: \"cancelled\",\n /** Unknown error or an error from a different error domain. */\n UNKNOWN: \"unknown\",\n /**\n * Client specified an invalid argument. Note that this differs from\n * FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are\n * problematic regardless of the state of the system (e.g., a malformed file\n * name).\n */\n INVALID_ARGUMENT: \"invalid-argument\",\n /**\n * Deadline expired before operation could complete. For operations that\n * change the state of the system, this error may be returned even if the\n * operation has completed successfully. For example, a successful response\n * from a server could have been delayed long enough for the deadline to\n * expire.\n */\n DEADLINE_EXCEEDED: \"deadline-exceeded\",\n /** Some requested entity (e.g., file or directory) was not found. */\n NOT_FOUND: \"not-found\",\n /**\n * Some entity that we attempted to create (e.g., file or directory) already\n * exists.\n */\n ALREADY_EXISTS: \"already-exists\",\n /**\n * The caller does not have permission to execute the specified operation.\n * PERMISSION_DENIED must not be used for rejections caused by exhausting\n * some resource (use RESOURCE_EXHAUSTED instead for those errors).\n * PERMISSION_DENIED must not be used if the caller can not be identified\n * (use UNAUTHENTICATED instead for those errors).\n */\n PERMISSION_DENIED: \"permission-denied\",\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n UNAUTHENTICATED: \"unauthenticated\",\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or perhaps the\n * entire file system is out of space.\n */\n RESOURCE_EXHAUSTED: \"resource-exhausted\",\n /**\n * Operation was rejected because the system is not in a state required for\n * the operation's execution. For example, directory to be deleted may be\n * non-empty, an rmdir operation is applied to a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n * (a) Use UNAVAILABLE if the client can retry just the failing call.\n * (b) Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * (c) Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * (d) Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n FAILED_PRECONDITION: \"failed-precondition\",\n /**\n * The operation was aborted, typically due to a concurrency issue like\n * sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n ABORTED: \"aborted\",\n /**\n * Operation was attempted past the valid range. E.g., seeking or reading\n * past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed\n * if the system state changes. For example, a 32-bit file system will\n * generate INVALID_ARGUMENT if asked to read at an offset that is not in the\n * range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from\n * an offset past the current file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)\n * when it applies so that callers who are iterating through a space can\n * easily look for an OUT_OF_RANGE error to detect when they are done.\n */\n OUT_OF_RANGE: \"out-of-range\",\n /** Operation is not implemented or not supported/enabled in this service. */\n UNIMPLEMENTED: \"unimplemented\",\n /**\n * Internal errors. Means some invariants expected by underlying System has\n * been broken. If you see one of these errors, Something is very broken.\n */\n INTERNAL: \"internal\",\n /**\n * The service is currently unavailable. This is a most likely a transient\n * condition and may be corrected by retrying with a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n UNAVAILABLE: \"unavailable\",\n /** Unrecoverable data loss or corruption. */\n DATA_LOSS: \"data-loss\"\n}, T = /** @class */ function(t) {\n /** @hideconstructor */\n function e(e, n) {\n var r = this;\n return (r = t.call(this, n) || this).code = e, r.message = n, r.name = \"FirebaseError\", \n // HACK: We write a toString property directly because Error is not a real\n // class and so inheritance does not work correctly. We could alternatively\n // do the same \"back-door inheritance\" trick that FirebaseError does.\n r.toString = function() {\n return r.name + \": [code=\" + r.code + \"]: \" + r.message;\n }, r;\n }\n return g(e, t), e;\n}(Error), S = new a(\"@firebase/firestore\");\n\n/** An error returned by a Firestore operation. */\n// Helper methods are needed because variables can't be exported as read/write\nfunction D() {\n return S.logLevel;\n}\n\n/**\n * Sets the verbosity of Cloud Firestore logs (debug, error, or silent).\n *\n * @param logLevel - The verbosity you set for activity and error logging. Can\n * be any of the following values:\n *\n *

      \n *
    • `debug` for the most verbose logging level, primarily for\n * debugging.
    • \n *
    • `error` to log errors only.
    • \n *
    • `silent` to turn off logging.
    • \n *
    \n */ function N(t) {\n for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];\n if (S.logLevel <= c.DEBUG) {\n var r = e.map(x);\n S.debug.apply(S, w([ \"Firestore (8.3.3): \" + t ], r));\n }\n}\n\nfunction A(t) {\n for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];\n if (S.logLevel <= c.ERROR) {\n var r = e.map(x);\n S.error.apply(S, w([ \"Firestore (8.3.3): \" + t ], r));\n }\n}\n\nfunction k(t) {\n for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];\n if (S.logLevel <= c.WARN) {\n var r = e.map(x);\n S.warn.apply(S, w([ \"Firestore (8.3.3): \" + t ], r));\n }\n}\n\n/**\n * Converts an additional log parameter to a string representation.\n */ function x(t) {\n if (\"string\" == typeof t) return t;\n try {\n return e = t, JSON.stringify(e);\n } catch (e) {\n // Converting to JSON failed, just log the object directly\n return t;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /** Formats an object as a JSON string, suitable for logging. */ var e;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Unconditionally fails, throwing an Error with the given message.\n * Messages are stripped in production builds.\n *\n * Returns `never` and can be used in expressions:\n * @example\n * let futureVar = fail('not implemented yet');\n */ function C(t) {\n void 0 === t && (t = \"Unexpected state\");\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n var e = \"FIRESTORE (8.3.3) INTERNAL ASSERTION FAILED: \" + t;\n // NOTE: We don't use FirestoreError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw A(e), new Error(e)\n /**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * Messages are stripped in production builds.\n */;\n}\n\nfunction R(t, e) {\n t || C();\n}\n\n/**\n * Casts `obj` to `T`. In non-production builds, verifies that `obj` is an\n * instance of `T` before casting.\n */ function O(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Generates `nBytes` of random bytes.\n *\n * If `nBytes < 0` , an error will be thrown.\n */ function L(t) {\n // Polyfills for IE and WebWorker by using `self` and `msCrypto` when `crypto` is not available.\n var e = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n \"undefined\" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t);\n if (e && \"function\" == typeof e.getRandomValues) e.getRandomValues(n); else \n // Falls back to Math.random\n for (var r = 0; r < t; r++) n[r] = Math.floor(256 * Math.random());\n return n;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var P = /** @class */ function() {\n function t() {}\n return t.u = function() {\n for (\n // Alphanumeric characters\n var t = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", e = Math.floor(256 / t.length) * t.length, n = \"\"\n // The largest byte value that is a multiple of `char.length`.\n ; n.length < 20; ) for (var r = L(40), i = 0; i < r.length; ++i) \n // Only accept values that are [0, maxMultiple), this ensures they can\n // be evenly mapped to indices of `chars` via a modulo operation.\n n.length < 20 && r[i] < e && (n += t.charAt(r[i] % t.length));\n return n;\n }, t;\n}();\n\nfunction M(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n}\n\n/** Helper to compare arrays using isEqual(). */ function F(t, e, n) {\n return t.length === e.length && t.every((function(t, r) {\n return n(t, e[r]);\n }));\n}\n\n/**\n * Returns the immediate lexicographically-following string. This is useful to\n * construct an inclusive range for indexeddb iterators.\n */ function V(t) {\n // Return the input string, with an additional NUL byte appended.\n return t + \"\\0\";\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The earliest date supported by Firestore timestamps (0001-01-01T00:00:00Z).\n/**\n * A `Timestamp` represents a point in time independent of any time zone or\n * calendar, represented as seconds and fractions of seconds at nanosecond\n * resolution in UTC Epoch time.\n *\n * It is encoded using the Proleptic Gregorian Calendar which extends the\n * Gregorian calendar backwards to year one. It is encoded assuming all minutes\n * are 60 seconds long, i.e. leap seconds are \"smeared\" so that no leap second\n * table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59.999999999Z.\n *\n * For examples and further specifications, refer to the\n * {@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto | Timestamp definition}.\n */ var q = /** @class */ function() {\n /**\n * Creates a new timestamp.\n *\n * @param seconds - The number of seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n * @param nanoseconds - The non-negative fractions of a second at nanosecond\n * resolution. Negative second values with fractions must still have\n * non-negative nanoseconds values that count forward in time. Must be\n * from 0 to 999,999,999 inclusive.\n */\n function t(t, e) {\n if (this.seconds = t, this.nanoseconds = e, e < 0) throw new T(E.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (e >= 1e9) throw new T(E.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (t < -62135596800) throw new T(E.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n // This will break in the year 10,000.\n if (t >= 253402300800) throw new T(E.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n }\n /**\n * Creates a new timestamp with the current date, with millisecond precision.\n *\n * @returns a new timestamp representing the current date.\n */ return t.now = function() {\n return t.fromMillis(Date.now());\n }, \n /**\n * Creates a new timestamp from the given date.\n *\n * @param date - The date to initialize the `Timestamp` from.\n * @returns A new `Timestamp` representing the same point in time as the given\n * date.\n */\n t.fromDate = function(e) {\n return t.fromMillis(e.getTime());\n }, \n /**\n * Creates a new timestamp from the given number of milliseconds.\n *\n * @param milliseconds - Number of milliseconds since Unix epoch\n * 1970-01-01T00:00:00Z.\n * @returns A new `Timestamp` representing the same point in time as the given\n * number of milliseconds.\n */\n t.fromMillis = function(e) {\n var n = Math.floor(e / 1e3);\n return new t(n, 1e6 * (e - 1e3 * n));\n }, \n /**\n * Converts a `Timestamp` to a JavaScript `Date` object. This conversion causes\n * a loss of precision since `Date` objects only support millisecond precision.\n *\n * @returns JavaScript `Date` object representing the same point in time as\n * this `Timestamp`, with millisecond precision.\n */\n t.prototype.toDate = function() {\n return new Date(this.toMillis());\n }, \n /**\n * Converts a `Timestamp` to a numeric timestamp (in milliseconds since\n * epoch). This operation causes a loss of precision.\n *\n * @returns The point in time corresponding to this timestamp, represented as\n * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.\n */\n t.prototype.toMillis = function() {\n return 1e3 * this.seconds + this.nanoseconds / 1e6;\n }, t.prototype._compareTo = function(t) {\n return this.seconds === t.seconds ? M(this.nanoseconds, t.nanoseconds) : M(this.seconds, t.seconds);\n }, \n /**\n * Returns true if this `Timestamp` is equal to the provided one.\n *\n * @param other - The `Timestamp` to compare against.\n * @returns true if this `Timestamp` is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return t.seconds === this.seconds && t.nanoseconds === this.nanoseconds;\n }, t.prototype.toString = function() {\n return \"Timestamp(seconds=\" + this.seconds + \", nanoseconds=\" + this.nanoseconds + \")\";\n }, t.prototype.toJSON = function() {\n return {\n seconds: this.seconds,\n nanoseconds: this.nanoseconds\n };\n }, \n /**\n * Converts this object to a primitive string, which allows Timestamp objects to be compared\n * using the `>`, `<=`, `>=` and `>` operators.\n */\n t.prototype.valueOf = function() {\n // This method returns a string of the form . where is\n // translated to have a non-negative value and both and are left-padded\n // with zeroes to be a consistent length. Strings with this format then have a lexiographical\n // ordering that matches the expected ordering. The translation is done to avoid\n // having a leading negative sign (i.e. a leading '-' character) in its string representation,\n // which would affect its lexiographical ordering.\n var t = this.seconds - -62135596800;\n // Note: Up to 12 decimal digits are required to represent all valid 'seconds' values.\n return String(t).padStart(12, \"0\") + \".\" + String(this.nanoseconds).padStart(9, \"0\");\n }, t;\n}(), U = /** @class */ function() {\n function t(t) {\n this.timestamp = t;\n }\n return t.fromTimestamp = function(e) {\n return new t(e);\n }, t.min = function() {\n return new t(new q(0, 0));\n }, t.prototype.compareTo = function(t) {\n return this.timestamp._compareTo(t.timestamp);\n }, t.prototype.isEqual = function(t) {\n return this.timestamp.isEqual(t.timestamp);\n }, \n /** Returns a number representation of the version for use in spec tests. */ t.prototype.toMicroseconds = function() {\n // Convert to microseconds.\n return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3;\n }, t.prototype.toString = function() {\n return \"SnapshotVersion(\" + this.timestamp.toString() + \")\";\n }, t.prototype.toTimestamp = function() {\n return this.timestamp;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A version of a document in Firestore. This corresponds to the version\n * timestamp, such as update_time or read_time.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction B(t) {\n var e = 0;\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e++;\n return e;\n}\n\nfunction j(t, e) {\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]);\n}\n\nfunction K(t) {\n for (var e in t) if (Object.prototype.hasOwnProperty.call(t, e)) return !1;\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Path represents an ordered sequence of string segments.\n */ var G = /** @class */ function() {\n function t(t, e, n) {\n void 0 === e ? e = 0 : e > t.length && C(), void 0 === n ? n = t.length - e : n > t.length - e && C(), \n this.segments = t, this.offset = e, this.len = n;\n }\n return Object.defineProperty(t.prototype, \"length\", {\n get: function() {\n return this.len;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(e) {\n return 0 === t.comparator(this, e);\n }, t.prototype.child = function(e) {\n var n = this.segments.slice(this.offset, this.limit());\n return e instanceof t ? e.forEach((function(t) {\n n.push(t);\n })) : n.push(e), this.construct(n);\n }, \n /** The index of one past the last segment of the path. */ t.prototype.limit = function() {\n return this.offset + this.length;\n }, t.prototype.popFirst = function(t) {\n return t = void 0 === t ? 1 : t, this.construct(this.segments, this.offset + t, this.length - t);\n }, t.prototype.popLast = function() {\n return this.construct(this.segments, this.offset, this.length - 1);\n }, t.prototype.firstSegment = function() {\n return this.segments[this.offset];\n }, t.prototype.lastSegment = function() {\n return this.get(this.length - 1);\n }, t.prototype.get = function(t) {\n return this.segments[this.offset + t];\n }, t.prototype.isEmpty = function() {\n return 0 === this.length;\n }, t.prototype.isPrefixOf = function(t) {\n if (t.length < this.length) return !1;\n for (var e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }, t.prototype.isImmediateParentOf = function(t) {\n if (this.length + 1 !== t.length) return !1;\n for (var e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }, t.prototype.forEach = function(t) {\n for (var e = this.offset, n = this.limit(); e < n; e++) t(this.segments[e]);\n }, t.prototype.toArray = function() {\n return this.segments.slice(this.offset, this.limit());\n }, t.comparator = function(t, e) {\n for (var n = Math.min(t.length, e.length), r = 0; r < n; r++) {\n var i = t.get(r), o = e.get(r);\n if (i < o) return -1;\n if (i > o) return 1;\n }\n return t.length < e.length ? -1 : t.length > e.length ? 1 : 0;\n }, t;\n}(), Q = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e.prototype.construct = function(t, n, r) {\n return new e(t, n, r);\n }, e.prototype.canonicalString = function() {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n return this.toArray().join(\"/\");\n }, e.prototype.toString = function() {\n return this.canonicalString();\n }, \n /**\n * Creates a resource path from the given slash-delimited string. If multiple\n * arguments are provided, all components are combined. Leading and trailing\n * slashes from all components are ignored.\n */\n e.fromString = function() {\n for (var t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n for (var r = [], i = 0, o = t; i < o.length; i++) {\n var s = o[i];\n if (s.indexOf(\"//\") >= 0) throw new T(E.INVALID_ARGUMENT, \"Invalid segment (\" + s + \"). Paths must not contain // in them.\");\n // Strip leading and traling slashed.\n r.push.apply(r, s.split(\"/\").filter((function(t) {\n return t.length > 0;\n })));\n }\n return new e(r);\n }, e.emptyPath = function() {\n return new e([]);\n }, e;\n}(G), z = /^[_a-zA-Z][_a-zA-Z0-9]*$/, W = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e.prototype.construct = function(t, n, r) {\n return new e(t, n, r);\n }, \n /**\n * Returns true if the string could be used as a segment in a field path\n * without escaping.\n */\n e.isValidIdentifier = function(t) {\n return z.test(t);\n }, e.prototype.canonicalString = function() {\n return this.toArray().map((function(t) {\n return t = t.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\"), e.isValidIdentifier(t) || (t = \"`\" + t + \"`\"), \n t;\n })).join(\".\");\n }, e.prototype.toString = function() {\n return this.canonicalString();\n }, \n /**\n * Returns true if this field references the key of a document.\n */\n e.prototype.isKeyField = function() {\n return 1 === this.length && \"__name__\" === this.get(0);\n }, \n /**\n * The field designating the key of a document.\n */\n e.keyField = function() {\n return new e([ \"__name__\" ]);\n }, \n /**\n * Parses a field string from the given server-formatted string.\n *\n * - Splitting the empty string is not allowed (for now at least).\n * - Empty segments within the string (e.g. if there are two consecutive\n * separators) are not allowed.\n *\n * TODO(b/37244157): we should make this more strict. Right now, it allows\n * non-identifier path components, even if they aren't escaped.\n */\n e.fromServerFormat = function(t) {\n for (var n = [], r = \"\", i = 0, o = function() {\n if (0 === r.length) throw new T(E.INVALID_ARGUMENT, \"Invalid field path (\" + t + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\");\n n.push(r), r = \"\";\n }, s = !1; i < t.length; ) {\n var u = t[i];\n if (\"\\\\\" === u) {\n if (i + 1 === t.length) throw new T(E.INVALID_ARGUMENT, \"Path has trailing escape character: \" + t);\n var a = t[i + 1];\n if (\"\\\\\" !== a && \".\" !== a && \"`\" !== a) throw new T(E.INVALID_ARGUMENT, \"Path has invalid escape sequence: \" + t);\n r += a, i += 2;\n } else \"`\" === u ? (s = !s, i++) : \".\" !== u || s ? (r += u, i++) : (o(), i++);\n }\n if (o(), s) throw new T(E.INVALID_ARGUMENT, \"Unterminated ` in path: \" + t);\n return new e(n);\n }, e.emptyPath = function() {\n return new e([]);\n }, e;\n}(G), H = /** @class */ function() {\n function t(t) {\n this.fields = t, \n // TODO(dimond): validation of FieldMask\n // Sort the field mask to support `FieldMask.isEqual()` and assert below.\n t.sort(W.comparator)\n /**\n * Verifies that `fieldPath` is included by at least one field in this field\n * mask.\n *\n * This is an O(n) operation, where `n` is the size of the field mask.\n */;\n }\n return t.prototype.covers = function(t) {\n for (var e = 0, n = this.fields; e < n.length; e++) {\n if (n[e].isPrefixOf(t)) return !0;\n }\n return !1;\n }, t.prototype.isEqual = function(t) {\n return F(this.fields, t.fields, (function(t, e) {\n return t.isEqual(e);\n }));\n }, t;\n}(), Y = /** @class */ function() {\n function t(t) {\n this.binaryString = t;\n }\n return t.fromBase64String = function(e) {\n return new t(atob(e));\n }, t.fromUint8Array = function(e) {\n return new t(\n /**\n * Helper function to convert an Uint8array to a binary string.\n */\n function(t) {\n for (var e = \"\", n = 0; n < t.length; ++n) e += String.fromCharCode(t[n]);\n return e;\n }(e));\n }, t.prototype.toBase64 = function() {\n return t = this.binaryString, btoa(t);\n /** Converts a binary string to a Base64 encoded string. */ var t;\n /** True if and only if the Base64 conversion functions are available. */ }, \n t.prototype.toUint8Array = function() {\n return function(t) {\n for (var e = new Uint8Array(t.length), n = 0; n < t.length; n++) e[n] = t.charCodeAt(n);\n return e;\n }(this.binaryString);\n }, t.prototype.approximateByteSize = function() {\n return 2 * this.binaryString.length;\n }, t.prototype.compareTo = function(t) {\n return M(this.binaryString, t.binaryString);\n }, t.prototype.isEqual = function(t) {\n return this.binaryString === t.binaryString;\n }, t;\n}();\n\n/**\n * A slash-separated path for navigating resources (documents and collections)\n * within Firestore.\n */ Y.EMPTY_BYTE_STRING = new Y(\"\");\n\nvar X = new RegExp(/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:\\.(\\d+))?Z$/);\n\n/**\n * Converts the possible Proto values for a timestamp value into a \"seconds and\n * nanos\" representation.\n */ function $(t) {\n // The json interface (for the browser) will return an iso timestamp string,\n // while the proto js library (for node) will return a\n // google.protobuf.Timestamp instance.\n if (R(!!t), \"string\" == typeof t) {\n // The date string can have higher precision (nanos) than the Date class\n // (millis), so we do some custom parsing here.\n // Parse the nanos right out of the string.\n var e = 0, n = X.exec(t);\n if (R(!!n), n[1]) {\n // Pad the fraction out to 9 digits (nanos).\n var r = n[1];\n r = (r + \"000000000\").substr(0, 9), e = Number(r);\n }\n // Parse the date to get the seconds.\n var i = new Date(t);\n return {\n seconds: Math.floor(i.getTime() / 1e3),\n nanos: e\n };\n }\n return {\n seconds: J(t.seconds),\n nanos: J(t.nanos)\n };\n}\n\n/**\n * Converts the possible Proto types for numbers into a JavaScript number.\n * Returns 0 if the value is not numeric.\n */ function J(t) {\n // TODO(bjornick): Handle int64 greater than 53 bits.\n return \"number\" == typeof t ? t : \"string\" == typeof t ? Number(t) : 0;\n}\n\n/** Converts the possible Proto types for Blobs into a ByteString. */ function Z(t) {\n return \"string\" == typeof t ? Y.fromBase64String(t) : Y.fromUint8Array(t);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a locally-applied ServerTimestamp.\n *\n * Server Timestamps are backed by MapValues that contain an internal field\n * `__type__` with a value of `server_timestamp`. The previous value and local\n * write time are stored in its `__previous_value__` and `__local_write_time__`\n * fields respectively.\n *\n * Notes:\n * - ServerTimestampValue instances are created as the result of applying a\n * transform. They can only exist in the local view of a document. Therefore\n * they do not need to be parsed or serialized.\n * - When evaluated locally (e.g. for snapshot.data()), they by default\n * evaluate to `null`. This behavior can be configured by passing custom\n * FieldValueOptions to value().\n * - With respect to other ServerTimestampValues, they sort by their\n * localWriteTime.\n */ function tt(t) {\n var e, n;\n return \"server_timestamp\" === (null === (n = ((null === (e = null == t ? void 0 : t.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue);\n}\n\n/**\n * Creates a new ServerTimestamp proto value (using the internal format).\n */\n/**\n * Returns the value of the field before this ServerTimestamp was set.\n *\n * Preserving the previous values allows the user to display the last resoled\n * value until the backend responds with the timestamp.\n */ function et(t) {\n var e = t.mapValue.fields.__previous_value__;\n return tt(e) ? et(e) : e;\n}\n\n/**\n * Returns the local time at which this timestamp was first set.\n */ function nt(t) {\n var e = $(t.mapValue.fields.__local_write_time__.timestampValue);\n return new q(e.seconds, e.nanos);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Sentinel value that sorts before any Mutation Batch ID. */\n/**\n * Returns whether a variable is either undefined or null.\n */ function rt(t) {\n return null == t;\n}\n\n/** Returns whether the value represents -0. */ function it(t) {\n // Detect if the value is -0.0. Based on polyfill from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n return 0 === t && 1 / t == -1 / 0;\n}\n\n/**\n * Returns whether a value is an integer and in the safe integer range\n * @param value - The value to test for being an integer and in the safe range\n */ function ot(t) {\n return \"number\" == typeof t && Number.isInteger(t) && !it(t) && t <= Number.MAX_SAFE_INTEGER && t >= Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var st = /** @class */ function() {\n function t(t) {\n this.path = t;\n }\n return t.fromPath = function(e) {\n return new t(Q.fromString(e));\n }, t.fromName = function(e) {\n return new t(Q.fromString(e).popFirst(5));\n }, \n /** Returns true if the document is in the specified collectionId. */ t.prototype.hasCollectionId = function(t) {\n return this.path.length >= 2 && this.path.get(this.path.length - 2) === t;\n }, t.prototype.isEqual = function(t) {\n return null !== t && 0 === Q.comparator(this.path, t.path);\n }, t.prototype.toString = function() {\n return this.path.toString();\n }, t.comparator = function(t, e) {\n return Q.comparator(t.path, e.path);\n }, t.isDocumentKey = function(t) {\n return t.length % 2 == 0;\n }, \n /**\n * Creates and returns a new document key with the given segments.\n *\n * @param segments - The segments of the path to the document\n * @returns A new instance of DocumentKey\n */\n t.fromSegments = function(e) {\n return new t(new Q(e.slice()));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Extracts the backend's type order for the provided value. */ function ut(t) {\n return \"nullValue\" in t ? 0 /* NullValue */ : \"booleanValue\" in t ? 1 /* BooleanValue */ : \"integerValue\" in t || \"doubleValue\" in t ? 2 /* NumberValue */ : \"timestampValue\" in t ? 3 /* TimestampValue */ : \"stringValue\" in t ? 5 /* StringValue */ : \"bytesValue\" in t ? 6 /* BlobValue */ : \"referenceValue\" in t ? 7 /* RefValue */ : \"geoPointValue\" in t ? 8 /* GeoPointValue */ : \"arrayValue\" in t ? 9 /* ArrayValue */ : \"mapValue\" in t ? tt(t) ? 4 /* ServerTimestampValue */ : 10 /* ObjectValue */ : C();\n}\n\n/** Tests `left` and `right` for equality based on the backend semantics. */ function at(t, e) {\n var n = ut(t);\n if (n !== ut(e)) return !1;\n switch (n) {\n case 0 /* NullValue */ :\n return !0;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue === e.booleanValue;\n\n case 4 /* ServerTimestampValue */ :\n return nt(t).isEqual(nt(e));\n\n case 3 /* TimestampValue */ :\n return function(t, e) {\n if (\"string\" == typeof t.timestampValue && \"string\" == typeof e.timestampValue && t.timestampValue.length === e.timestampValue.length) \n // Use string equality for ISO 8601 timestamps\n return t.timestampValue === e.timestampValue;\n var n = $(t.timestampValue), r = $(e.timestampValue);\n return n.seconds === r.seconds && n.nanos === r.nanos;\n }(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue === e.stringValue;\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n return Z(t.bytesValue).isEqual(Z(e.bytesValue));\n }(t, e);\n\n case 7 /* RefValue */ :\n return t.referenceValue === e.referenceValue;\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n return J(t.geoPointValue.latitude) === J(e.geoPointValue.latitude) && J(t.geoPointValue.longitude) === J(e.geoPointValue.longitude);\n }(t, e);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n if (\"integerValue\" in t && \"integerValue\" in e) return J(t.integerValue) === J(e.integerValue);\n if (\"doubleValue\" in t && \"doubleValue\" in e) {\n var n = J(t.doubleValue), r = J(e.doubleValue);\n return n === r ? it(n) === it(r) : isNaN(n) && isNaN(r);\n }\n return !1;\n }(t, e);\n\n case 9 /* ArrayValue */ :\n return F(t.arrayValue.values || [], e.arrayValue.values || [], at);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n var n = t.mapValue.fields || {}, r = e.mapValue.fields || {};\n if (B(n) !== B(r)) return !1;\n for (var i in n) if (n.hasOwnProperty(i) && (void 0 === r[i] || !at(n[i], r[i]))) return !1;\n return !0;\n }(t, e);\n\n default:\n return C();\n }\n}\n\nfunction ct(t, e) {\n return void 0 !== (t.values || []).find((function(t) {\n return at(t, e);\n }));\n}\n\nfunction ht(t, e) {\n var n = ut(t), r = ut(e);\n if (n !== r) return M(n, r);\n switch (n) {\n case 0 /* NullValue */ :\n return 0;\n\n case 1 /* BooleanValue */ :\n return M(t.booleanValue, e.booleanValue);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n var n = J(t.integerValue || t.doubleValue), r = J(e.integerValue || e.doubleValue);\n return n < r ? -1 : n > r ? 1 : n === r ? 0 : \n // one or both are NaN.\n isNaN(n) ? isNaN(r) ? 0 : -1 : 1;\n }(t, e);\n\n case 3 /* TimestampValue */ :\n return ft(t.timestampValue, e.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return ft(nt(t), nt(e));\n\n case 5 /* StringValue */ :\n return M(t.stringValue, e.stringValue);\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n var n = Z(t), r = Z(e);\n return n.compareTo(r);\n }(t.bytesValue, e.bytesValue);\n\n case 7 /* RefValue */ :\n return function(t, e) {\n for (var n = t.split(\"/\"), r = e.split(\"/\"), i = 0; i < n.length && i < r.length; i++) {\n var o = M(n[i], r[i]);\n if (0 !== o) return o;\n }\n return M(n.length, r.length);\n }(t.referenceValue, e.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n var n = M(J(t.latitude), J(e.latitude));\n return 0 !== n ? n : M(J(t.longitude), J(e.longitude));\n }(t.geoPointValue, e.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return function(t, e) {\n for (var n = t.values || [], r = e.values || [], i = 0; i < n.length && i < r.length; ++i) {\n var o = ht(n[i], r[i]);\n if (o) return o;\n }\n return M(n.length, r.length);\n }(t.arrayValue, e.arrayValue);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n var n = t.fields || {}, r = Object.keys(n), i = e.fields || {}, o = Object.keys(i);\n // Even though MapValues are likely sorted correctly based on their insertion\n // order (e.g. when received from the backend), local modifications can bring\n // elements out of order. We need to re-sort the elements to ensure that\n // canonical IDs are independent of insertion order.\n r.sort(), o.sort();\n for (var s = 0; s < r.length && s < o.length; ++s) {\n var u = M(r[s], o[s]);\n if (0 !== u) return u;\n var a = ht(n[r[s]], i[o[s]]);\n if (0 !== a) return a;\n }\n return M(r.length, o.length);\n }(t.mapValue, e.mapValue);\n\n default:\n throw C();\n }\n}\n\nfunction ft(t, e) {\n if (\"string\" == typeof t && \"string\" == typeof e && t.length === e.length) return M(t, e);\n var n = $(t), r = $(e), i = M(n.seconds, r.seconds);\n return 0 !== i ? i : M(n.nanos, r.nanos);\n}\n\nfunction lt(t) {\n return dt(t);\n}\n\nfunction dt(t) {\n return \"nullValue\" in t ? \"null\" : \"booleanValue\" in t ? \"\" + t.booleanValue : \"integerValue\" in t ? \"\" + t.integerValue : \"doubleValue\" in t ? \"\" + t.doubleValue : \"timestampValue\" in t ? function(t) {\n var e = $(t);\n return \"time(\" + e.seconds + \",\" + e.nanos + \")\";\n }(t.timestampValue) : \"stringValue\" in t ? t.stringValue : \"bytesValue\" in t ? Z(t.bytesValue).toBase64() : \"referenceValue\" in t ? (n = t.referenceValue, \n st.fromName(n).toString()) : \"geoPointValue\" in t ? \"geo(\" + (e = t.geoPointValue).latitude + \",\" + e.longitude + \")\" : \"arrayValue\" in t ? function(t) {\n for (var e = \"[\", n = !0, r = 0, i = t.values || []; r < i.length; r++) {\n n ? n = !1 : e += \",\", e += dt(i[r]);\n }\n return e + \"]\";\n }(t.arrayValue) : \"mapValue\" in t ? function(t) {\n for (\n // Iteration order in JavaScript is not guaranteed. To ensure that we generate\n // matching canonical IDs for identical maps, we need to sort the keys.\n var e = \"{\", n = !0, r = 0, i = Object.keys(t.fields || {}).sort(); r < i.length; r++) {\n var o = i[r];\n n ? n = !1 : e += \",\", e += o + \":\" + dt(t.fields[o]);\n }\n return e + \"}\";\n }(t.mapValue) : C();\n var e, n;\n}\n\nfunction pt(t, e) {\n return {\n referenceValue: \"projects/\" + t.projectId + \"/databases/\" + t.database + \"/documents/\" + e.path.canonicalString()\n };\n}\n\n/** Returns true if `value` is an IntegerValue . */ function yt(t) {\n return !!t && \"integerValue\" in t;\n}\n\n/** Returns true if `value` is a DoubleValue. */\n/** Returns true if `value` is an ArrayValue. */ function vt(t) {\n return !!t && \"arrayValue\" in t;\n}\n\n/** Returns true if `value` is a NullValue. */ function mt(t) {\n return !!t && \"nullValue\" in t;\n}\n\n/** Returns true if `value` is NaN. */ function gt(t) {\n return !!t && \"doubleValue\" in t && isNaN(Number(t.doubleValue));\n}\n\n/** Returns true if `value` is a MapValue. */ function wt(t) {\n return !!t && \"mapValue\" in t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An ObjectValue represents a MapValue in the Firestore Proto and offers the\n * ability to add and remove fields (via the ObjectValueBuilder).\n */ var bt = /** @class */ function() {\n function t(t) {\n /**\n * A nested map that contains the accumulated changes that haven't yet been\n * applied to `partialValue`. Values can either be `Value` protos, Map values (to represent additional nesting) or `null` (to represent\n * field deletes).\n */\n this.overlayMap = new Map, this.partialValue = t;\n }\n return t.empty = function() {\n return new t({\n mapValue: {}\n });\n }, \n /**\n * Returns the value at the given path or null.\n *\n * @param path - the path to search\n * @returns The value at the path or null if the path is not set.\n */\n t.prototype.field = function(e) {\n return t.extractNestedValue(this.buildProto(), e);\n }, \n /** Returns the full protobuf representation. */ t.prototype.toProto = function() {\n return this.field(W.emptyPath());\n }, \n /**\n * Sets the field to the provided value.\n *\n * @param path - The field path to set.\n * @param value - The value to set.\n */\n t.prototype.set = function(t, e) {\n this.setOverlay(t, e);\n }, \n /**\n * Sets the provided fields to the provided values.\n *\n * @param data - A map of fields to values (or null for deletes).\n */\n t.prototype.setAll = function(t) {\n var e = this;\n t.forEach((function(t, n) {\n t ? e.set(n, t) : e.delete(n);\n }));\n }, \n /**\n * Removes the field at the specified path. If there is no field at the\n * specified path, nothing is changed.\n *\n * @param path - The field path to remove.\n */\n t.prototype.delete = function(t) {\n this.setOverlay(t, null);\n }, t.prototype.isEqual = function(t) {\n return at(this.buildProto(), t.buildProto());\n }, \n /**\n * Adds `value` to the overlay map at `path`. Creates nested map entries if\n * needed.\n */\n t.prototype.setOverlay = function(t, e) {\n for (var n = this.overlayMap, r = 0; r < t.length - 1; ++r) {\n var i = t.get(r), o = n.get(i);\n o instanceof Map ? \n // Re-use a previously created map\n n = o : o && 10 /* ObjectValue */ === ut(o) ? (\n // Convert the existing Protobuf MapValue into a map\n o = new Map(Object.entries(o.mapValue.fields || {})), n.set(i, o), n = o) : (\n // Create an empty map to represent the current nesting level\n o = new Map, n.set(i, o), n = o);\n }\n n.set(t.lastSegment(), e);\n }, \n /**\n * Applies any overlays from `currentOverlays` that exist at `currentPath`\n * and returns the merged data at `currentPath` (or null if there were no\n * changes).\n *\n * @param currentPath - The path at the current nesting level. Can be set to\n * FieldValue.emptyPath() to represent the root.\n * @param currentOverlays - The overlays at the current nesting level in the\n * same format as `overlayMap`.\n * @returns The merged data at `currentPath` or null if no modifications\n * were applied.\n */\n t.prototype.applyOverlay = function(e, n) {\n var r = this, i = !1, o = t.extractNestedValue(this.partialValue, e), s = wt(o) ? // If there is already data at the current path, base our\n Object.assign({}, o.mapValue.fields) : {};\n return n.forEach((function(t, n) {\n if (t instanceof Map) {\n var o = r.applyOverlay(e.child(n), t);\n null != o && (s[n] = o, i = !0);\n } else null !== t ? (s[n] = t, i = !0) : s.hasOwnProperty(n) && (delete s[n], i = !0);\n })), i ? {\n mapValue: {\n fields: s\n }\n } : null;\n }, \n /**\n * Builds the Protobuf that backs this ObjectValue.\n *\n * This method applies any outstanding modifications and memoizes the result.\n * Further invocations are based on this memoized result.\n */\n t.prototype.buildProto = function() {\n var t = this.applyOverlay(W.emptyPath(), this.overlayMap);\n return null != t && (this.partialValue = t, this.overlayMap.clear()), this.partialValue;\n }, t.extractNestedValue = function(t, e) {\n if (e.isEmpty()) return t;\n for (var n = t, r = 0; r < e.length - 1; ++r) {\n if (!n.mapValue.fields) return null;\n if (!wt(n = n.mapValue.fields[e.get(r)])) return null;\n }\n return (n = (n.mapValue.fields || {})[e.lastSegment()]) || null;\n }, t.prototype.clone = function() {\n return new t(this.buildProto());\n }, t;\n}();\n\n/**\n * Returns a FieldMask built from all fields in a MapValue.\n */ function It(t) {\n var e = [];\n return j(t.fields || {}, (function(t, n) {\n var r = new W([ t ]);\n if (wt(n)) {\n var i = It(n.mapValue).fields;\n if (0 === i.length) \n // Preserve the empty map by adding it to the FieldMask.\n e.push(r); else \n // For nested and non-empty ObjectValues, add the FieldPath of the\n // leaf nodes.\n for (var o = 0, s = i; o < s.length; o++) {\n var u = s[o];\n e.push(r.child(u));\n }\n } else \n // For nested and non-empty ObjectValues, add the FieldPath of the leaf\n // nodes.\n e.push(r);\n })), new H(e)\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Represents a document in Firestore with a key, version, data and whether it\n * has local mutations applied to it.\n *\n * Documents can transition between states via `convertToFoundDocument()`,\n * `convertToNoDocument()` and `convertToUnknownDocument()`. If a document does\n * not transition to one of these states even after all mutations have been\n * applied, `isValidDocument()` returns false and the document should be removed\n * from all views.\n */;\n}\n\nvar _t = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.key = t, this.documentType = e, this.version = n, this.data = r, this.documentState = i\n /**\n * Creates a document with no known version or data, but which can serve as\n * base document for mutations.\n */;\n }\n return t.newInvalidDocument = function(e) {\n return new t(e, 0 /* INVALID */ , U.min(), bt.empty(), 0 /* SYNCED */);\n }, \n /**\n * Creates a new document that is known to exist with the given data at the\n * given version.\n */\n t.newFoundDocument = function(e, n, r) {\n return new t(e, 1 /* FOUND_DOCUMENT */ , n, r, 0 /* SYNCED */);\n }, \n /** Creates a new document that is known to not exist at the given version. */ t.newNoDocument = function(e, n) {\n return new t(e, 2 /* NO_DOCUMENT */ , n, bt.empty(), 0 /* SYNCED */);\n }, \n /**\n * Creates a new document that is known to exist at the given version but\n * whose data is not known (e.g. a document that was updated without a known\n * base document).\n */\n t.newUnknownDocument = function(e, n) {\n return new t(e, 3 /* UNKNOWN_DOCUMENT */ , n, bt.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);\n }, \n /**\n * Changes the document type to indicate that it exists and that its version\n * and data are known.\n */\n t.prototype.convertToFoundDocument = function(t, e) {\n return this.version = t, this.documentType = 1 /* FOUND_DOCUMENT */ , this.data = e, \n this.documentState = 0 /* SYNCED */ , this;\n }, \n /**\n * Changes the document type to indicate that it doesn't exist at the given\n * version.\n */\n t.prototype.convertToNoDocument = function(t) {\n return this.version = t, this.documentType = 2 /* NO_DOCUMENT */ , this.data = bt.empty(), \n this.documentState = 0 /* SYNCED */ , this;\n }, \n /**\n * Changes the document type to indicate that it exists at a given version but\n * that its data is not known (e.g. a document that was updated without a known\n * base document).\n */\n t.prototype.convertToUnknownDocument = function(t) {\n return this.version = t, this.documentType = 3 /* UNKNOWN_DOCUMENT */ , this.data = bt.empty(), \n this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }, t.prototype.setHasCommittedMutations = function() {\n return this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }, t.prototype.setHasLocalMutations = function() {\n return this.documentState = 1 /* HAS_LOCAL_MUTATIONS */ , this;\n }, Object.defineProperty(t.prototype, \"hasLocalMutations\", {\n get: function() {\n return 1 /* HAS_LOCAL_MUTATIONS */ === this.documentState;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"hasCommittedMutations\", {\n get: function() {\n return 2 /* HAS_COMMITTED_MUTATIONS */ === this.documentState;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"hasPendingWrites\", {\n get: function() {\n return this.hasLocalMutations || this.hasCommittedMutations;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isValidDocument = function() {\n return 0 /* INVALID */ !== this.documentType;\n }, t.prototype.isFoundDocument = function() {\n return 1 /* FOUND_DOCUMENT */ === this.documentType;\n }, t.prototype.isNoDocument = function() {\n return 2 /* NO_DOCUMENT */ === this.documentType;\n }, t.prototype.isUnknownDocument = function() {\n return 3 /* UNKNOWN_DOCUMENT */ === this.documentType;\n }, t.prototype.isEqual = function(e) {\n return e instanceof t && this.key.isEqual(e.key) && this.version.isEqual(e.version) && this.documentType === e.documentType && this.documentState === e.documentState && this.data.isEqual(e.data);\n }, t.prototype.clone = function() {\n return new t(this.key, this.documentType, this.version, this.data.clone(), this.documentState);\n }, t.prototype.toString = function() {\n return \"Document(\" + this.key + \", \" + this.version + \", \" + JSON.stringify(this.data.toProto()) + \", {documentType: \" + this.documentType + \"}), {documentState: \" + this.documentState + \"})\";\n }, t;\n}(), Et = function(t, e, n, r, i, o, s) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), \n this.path = t, this.collectionGroup = e, this.orderBy = n, this.filters = r, this.limit = i, \n this.startAt = o, this.endAt = s, this.h = null;\n};\n\n/**\n * Compares the value for field `field` in the provided documents. Throws if\n * the field does not exist in both documents.\n */\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Visible for testing\n/**\n * Initializes a Target with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n *\n * NOTE: you should always construct `Target` from `Query.toTarget` instead of\n * using this factory method, because `Query` provides an implicit `orderBy`\n * property.\n */\nfunction Tt(t, e, n, r, i, o, s) {\n return void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), \n new Et(t, e, n, r, i, o, s);\n}\n\nfunction St(t) {\n var e = O(t);\n if (null === e.h) {\n var n = e.path.canonicalString();\n null !== e.collectionGroup && (n += \"|cg:\" + e.collectionGroup), n += \"|f:\", n += e.filters.map((function(t) {\n return function(t) {\n // TODO(b/29183165): Technically, this won't be unique if two values have\n // the same description, such as the int 3 and the string \"3\". So we should\n // add the types in here somehow, too.\n return t.field.canonicalString() + t.op.toString() + lt(t.value);\n }(t);\n })).join(\",\"), n += \"|ob:\", n += e.orderBy.map((function(t) {\n return function(t) {\n // TODO(b/29183165): Make this collision robust.\n return t.field.canonicalString() + t.dir;\n }(t);\n })).join(\",\"), rt(e.limit) || (n += \"|l:\", n += e.limit), e.startAt && (n += \"|lb:\", \n n += Vt(e.startAt)), e.endAt && (n += \"|ub:\", n += Vt(e.endAt)), e.h = n;\n }\n return e.h;\n}\n\nfunction Dt(t, e) {\n if (t.limit !== e.limit) return !1;\n if (t.orderBy.length !== e.orderBy.length) return !1;\n for (var n = 0; n < t.orderBy.length; n++) if (!Ut(t.orderBy[n], e.orderBy[n])) return !1;\n if (t.filters.length !== e.filters.length) return !1;\n for (var r = 0; r < t.filters.length; r++) if (i = t.filters[r], o = e.filters[r], \n i.op !== o.op || !i.field.isEqual(o.field) || !at(i.value, o.value)) return !1;\n var i, o;\n return t.collectionGroup === e.collectionGroup && !!t.path.isEqual(e.path) && !!jt(t.startAt, e.startAt) && jt(t.endAt, e.endAt);\n}\n\nfunction Nt(t) {\n return st.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n}\n\nvar At = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).field = e, i.op = n, i.value = r, i;\n }\n /**\n * Creates a filter based on the provided arguments.\n */ return g(e, t), e.create = function(t, n, r) {\n return t.isKeyField() ? \"in\" /* IN */ === n || \"not-in\" /* NOT_IN */ === n ? this.l(t, n, r) : new kt(t, n, r) : \"array-contains\" /* ARRAY_CONTAINS */ === n ? new Ot(t, r) : \"in\" /* IN */ === n ? new Lt(t, r) : \"not-in\" /* NOT_IN */ === n ? new Pt(t, r) : \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === n ? new Mt(t, r) : new e(t, n, r);\n }, e.l = function(t, e, n) {\n return \"in\" /* IN */ === e ? new xt(t, n) : new Ct(t, n);\n }, e.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n // Types do not have to match in NOT_EQUAL filters.\n return \"!=\" /* NOT_EQUAL */ === this.op ? null !== e && this.m(ht(e, this.value)) : null !== e && ut(this.value) === ut(e) && this.m(ht(e, this.value));\n // Only compare types with matching backend order (such as double and int).\n }, e.prototype.m = function(t) {\n switch (this.op) {\n case \"<\" /* LESS_THAN */ :\n return t < 0;\n\n case \"<=\" /* LESS_THAN_OR_EQUAL */ :\n return t <= 0;\n\n case \"==\" /* EQUAL */ :\n return 0 === t;\n\n case \"!=\" /* NOT_EQUAL */ :\n return 0 !== t;\n\n case \">\" /* GREATER_THAN */ :\n return t > 0;\n\n case \">=\" /* GREATER_THAN_OR_EQUAL */ :\n return t >= 0;\n\n default:\n return C();\n }\n }, e.prototype.g = function() {\n return [ \"<\" /* LESS_THAN */ , \"<=\" /* LESS_THAN_OR_EQUAL */ , \">\" /* GREATER_THAN */ , \">=\" /* GREATER_THAN_OR_EQUAL */ , \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ].indexOf(this.op) >= 0;\n }, e;\n}((function() {}));\n\nvar kt = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this, e, n, r) || this).key = st.fromName(r.referenceValue), \n i;\n }\n return g(e, t), e.prototype.matches = function(t) {\n var e = st.comparator(t.key, this.key);\n return this.m(e);\n }, e;\n}(At), xt = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, \"in\" /* IN */ , n) || this).keys = Rt(\"in\" /* IN */ , n), \n r;\n }\n return g(e, t), e.prototype.matches = function(t) {\n return this.keys.some((function(e) {\n return e.isEqual(t.key);\n }));\n }, e;\n}(At), Ct = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, \"not-in\" /* NOT_IN */ , n) || this).keys = Rt(\"not-in\" /* NOT_IN */ , n), \n r;\n }\n return g(e, t), e.prototype.matches = function(t) {\n return !this.keys.some((function(e) {\n return e.isEqual(t.key);\n }));\n }, e;\n}(At);\n\n/** Filter that matches on key fields within an array. */ function Rt(t, e) {\n var n;\n return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((function(t) {\n return st.fromName(t.referenceValue);\n }));\n}\n\n/** A Filter that implements the array-contains operator. */ var Ot = /** @class */ function(t) {\n function e(e, n) {\n return t.call(this, e, \"array-contains\" /* ARRAY_CONTAINS */ , n) || this;\n }\n return g(e, t), e.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n return vt(e) && ct(e.arrayValue, this.value);\n }, e;\n}(At), Lt = /** @class */ function(t) {\n function e(e, n) {\n return t.call(this, e, \"in\" /* IN */ , n) || this;\n }\n return g(e, t), e.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n return null !== e && ct(this.value.arrayValue, e);\n }, e;\n}(At), Pt = /** @class */ function(t) {\n function e(e, n) {\n return t.call(this, e, \"not-in\" /* NOT_IN */ , n) || this;\n }\n return g(e, t), e.prototype.matches = function(t) {\n if (ct(this.value.arrayValue, {\n nullValue: \"NULL_VALUE\"\n })) return !1;\n var e = t.data.field(this.field);\n return null !== e && !ct(this.value.arrayValue, e);\n }, e;\n}(At), Mt = /** @class */ function(t) {\n function e(e, n) {\n return t.call(this, e, \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , n) || this;\n }\n return g(e, t), e.prototype.matches = function(t) {\n var e = this, n = t.data.field(this.field);\n return !(!vt(n) || !n.arrayValue.values) && n.arrayValue.values.some((function(t) {\n return ct(e.value.arrayValue, t);\n }));\n }, e;\n}(At), Ft = function(t, e) {\n this.position = t, this.before = e;\n};\n\n/** A Filter that implements the IN operator. */ function Vt(t) {\n // TODO(b/29183165): Make this collision robust.\n return (t.before ? \"b\" : \"a\") + \":\" + t.position.map((function(t) {\n return lt(t);\n })).join(\",\");\n}\n\n/**\n * An ordering on a field, in some Direction. Direction defaults to ASCENDING.\n */ var qt = function(t, e /* ASCENDING */) {\n void 0 === e && (e = \"asc\"), this.field = t, this.dir = e;\n};\n\nfunction Ut(t, e) {\n return t.dir === e.dir && t.field.isEqual(e.field);\n}\n\n/**\n * Returns true if a document sorts before a bound using the provided sort\n * order.\n */ function Bt(t, e, n) {\n for (var r = 0, i = 0; i < t.position.length; i++) {\n var o = e[i], s = t.position[i];\n if (r = o.field.isKeyField() ? st.comparator(st.fromName(s.referenceValue), n.key) : ht(s, n.data.field(o.field)), \n \"desc\" /* DESCENDING */ === o.dir && (r *= -1), 0 !== r) break;\n }\n return t.before ? r <= 0 : r < 0;\n}\n\nfunction jt(t, e) {\n if (null === t) return null === e;\n if (null === e) return !1;\n if (t.before !== e.before || t.position.length !== e.position.length) return !1;\n for (var n = 0; n < t.position.length; n++) if (!at(t.position[n], e.position[n])) return !1;\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Query encapsulates all the query attributes we support in the SDK. It can\n * be run against the LocalStore, as well as be converted to a `Target` to\n * query the RemoteStore results.\n *\n * Visible for testing.\n */ var Kt = \n/**\n * Initializes a Query with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n */\nfunction(t, e, n, r, i, o /* First */ , s, u) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = \"F\"), void 0 === s && (s = null), \n void 0 === u && (u = null), this.path = t, this.collectionGroup = e, this.explicitOrderBy = n, \n this.filters = r, this.limit = i, this.limitType = o, this.startAt = s, this.endAt = u, \n this.p = null, \n // The corresponding `Target` of this `Query` instance.\n this.T = null, this.startAt, this.endAt;\n};\n\n/** Creates a new Query instance with the options provided. */ function Gt(t, e, n, r, i, o, s, u) {\n return new Kt(t, e, n, r, i, o, s, u);\n}\n\n/** Creates a new Query for a query that matches all documents at `path` */ function Qt(t) {\n return new Kt(t);\n}\n\n/**\n * Helper to convert a collection group query into a collection query at a\n * specific path. This is used when executing collection group queries, since\n * we have to split the query into a set of collection queries at multiple\n * paths.\n */ function zt(t) {\n return !rt(t.limit) && \"F\" /* First */ === t.limitType;\n}\n\nfunction Wt(t) {\n return !rt(t.limit) && \"L\" /* Last */ === t.limitType;\n}\n\nfunction Ht(t) {\n return t.explicitOrderBy.length > 0 ? t.explicitOrderBy[0].field : null;\n}\n\nfunction Yt(t) {\n for (var e = 0, n = t.filters; e < n.length; e++) {\n var r = n[e];\n if (r.g()) return r.field;\n }\n return null;\n}\n\n/**\n * Checks if any of the provided Operators are included in the query and\n * returns the first one that is, or null if none are.\n */\n/**\n * Returns whether the query matches a collection group rather than a specific\n * collection.\n */ function Xt(t) {\n return null !== t.collectionGroup;\n}\n\n/**\n * Returns the implicit order by constraint that is used to execute the Query,\n * which can be different from the order by constraints the user provided (e.g.\n * the SDK and backend always orders by `__name__`).\n */ function $t(t) {\n var e = O(t);\n if (null === e.p) {\n e.p = [];\n var n = Yt(e), r = Ht(e);\n if (null !== n && null === r) \n // In order to implicitly add key ordering, we must also add the\n // inequality filter field for it to be a valid query.\n // Note that the default inequality field and key ordering is ascending.\n n.isKeyField() || e.p.push(new qt(n)), e.p.push(new qt(W.keyField(), \"asc\" /* ASCENDING */)); else {\n for (var i = !1, o = 0, s = e.explicitOrderBy; o < s.length; o++) {\n var u = s[o];\n e.p.push(u), u.field.isKeyField() && (i = !0);\n }\n if (!i) {\n // The order of the implicit key ordering always matches the last\n // explicit order by\n var a = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : \"asc\" /* ASCENDING */;\n e.p.push(new qt(W.keyField(), a));\n }\n }\n }\n return e.p;\n}\n\n/**\n * Converts this `Query` instance to it's corresponding `Target` representation.\n */ function Jt(t) {\n var e = O(t);\n if (!e.T) if (\"F\" /* First */ === e.limitType) e.T = Tt(e.path, e.collectionGroup, $t(e), e.filters, e.limit, e.startAt, e.endAt); else {\n for (\n // Flip the orderBy directions since we want the last results\n var n = [], r = 0, i = $t(e); r < i.length; r++) {\n var o = i[r], s = \"desc\" /* DESCENDING */ === o.dir ? \"asc\" /* ASCENDING */ : \"desc\" /* DESCENDING */;\n n.push(new qt(o.field, s));\n }\n // We need to swap the cursors to match the now-flipped query ordering.\n var u = e.endAt ? new Ft(e.endAt.position, !e.endAt.before) : null, a = e.startAt ? new Ft(e.startAt.position, !e.startAt.before) : null;\n // Now return as a LimitType.First query.\n e.T = Tt(e.path, e.collectionGroup, n, e.filters, e.limit, u, a);\n }\n return e.T;\n}\n\nfunction Zt(t, e, n) {\n return new Kt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), e, n, t.startAt, t.endAt);\n}\n\nfunction te(t, e) {\n return Dt(Jt(t), Jt(e)) && t.limitType === e.limitType;\n}\n\n// TODO(b/29183165): This is used to get a unique string from a query to, for\n// example, use as a dictionary key, but the implementation is subject to\n// collisions. Make it collision-free.\nfunction ee(t) {\n return St(Jt(t)) + \"|lt:\" + t.limitType;\n}\n\nfunction ne(t) {\n return \"Query(target=\" + function(t) {\n var e = t.path.canonicalString();\n return null !== t.collectionGroup && (e += \" collectionGroup=\" + t.collectionGroup), \n t.filters.length > 0 && (e += \", filters: [\" + t.filters.map((function(t) {\n return (e = t).field.canonicalString() + \" \" + e.op + \" \" + lt(e.value);\n /** Returns a debug description for `filter`. */ var e;\n /** Filter that matches on key fields (i.e. '__name__'). */ })).join(\", \") + \"]\"), \n rt(t.limit) || (e += \", limit: \" + t.limit), t.orderBy.length > 0 && (e += \", orderBy: [\" + t.orderBy.map((function(t) {\n return function(t) {\n return t.field.canonicalString() + \" (\" + t.dir + \")\";\n }(t);\n })).join(\", \") + \"]\"), t.startAt && (e += \", startAt: \" + Vt(t.startAt)), t.endAt && (e += \", endAt: \" + Vt(t.endAt)), \n \"Target(\" + e + \")\";\n }(Jt(t)) + \"; limitType=\" + t.limitType + \")\";\n}\n\n/** Returns whether `doc` matches the constraints of `query`. */ function re(t, e) {\n return e.isFoundDocument() && function(t, e) {\n var n = e.key.path;\n return null !== t.collectionGroup ? e.key.hasCollectionId(t.collectionGroup) && t.path.isPrefixOf(n) : st.isDocumentKey(t.path) ? t.path.isEqual(n) : t.path.isImmediateParentOf(n);\n }(t, e) && function(t, e) {\n for (var n = 0, r = t.explicitOrderBy; n < r.length; n++) {\n var i = r[n];\n // order by key always matches\n if (!i.field.isKeyField() && null === e.data.field(i.field)) return !1;\n }\n return !0;\n }(t, e) && function(t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n if (!r[n].matches(e)) return !1;\n }\n return !0;\n }(t, e) && function(t, e) {\n return !(t.startAt && !Bt(t.startAt, $t(t), e)) && (!t.endAt || !Bt(t.endAt, $t(t), e));\n }(t, e);\n}\n\nfunction ie(t) {\n return function(e, n) {\n for (var r = !1, i = 0, o = $t(t); i < o.length; i++) {\n var s = o[i], u = oe(s, e, n);\n if (0 !== u) return u;\n r = r || s.field.isKeyField();\n }\n return 0;\n };\n}\n\nfunction oe(t, e, n) {\n var r = t.field.isKeyField() ? st.comparator(e.key, n.key) : function(t, e, n) {\n var r = e.data.field(t), i = n.data.field(t);\n return null !== r && null !== i ? ht(r, i) : C();\n }(t.field, e, n);\n switch (t.dir) {\n case \"asc\" /* ASCENDING */ :\n return r;\n\n case \"desc\" /* DESCENDING */ :\n return -1 * r;\n\n default:\n return C();\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns an DoubleValue for `value` that is encoded based the serializer's\n * `useProto3Json` setting.\n */ function se(t, e) {\n if (t.I) {\n if (isNaN(e)) return {\n doubleValue: \"NaN\"\n };\n if (e === 1 / 0) return {\n doubleValue: \"Infinity\"\n };\n if (e === -1 / 0) return {\n doubleValue: \"-Infinity\"\n };\n }\n return {\n doubleValue: it(e) ? \"-0\" : e\n };\n}\n\n/**\n * Returns an IntegerValue for `value`.\n */ function ue(t) {\n return {\n integerValue: \"\" + t\n };\n}\n\n/**\n * Returns a value for a number that's appropriate to put into a proto.\n * The return value is an IntegerValue if it can safely represent the value,\n * otherwise a DoubleValue is returned.\n */ function ae(t, e) {\n return ot(e) ? ue(e) : se(t, e);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Used to represent a field transform on a mutation. */ var ce = function() {\n // Make sure that the structural type of `TransformOperation` is unique.\n // See https://github.com/microsoft/TypeScript/issues/5451\n this._ = void 0;\n};\n\n/**\n * Computes the local transform result against the provided `previousValue`,\n * optionally using the provided localWriteTime.\n */ function he(t, e, n) {\n return t instanceof de ? function(t, e) {\n var n = {\n fields: {\n __type__: {\n stringValue: \"server_timestamp\"\n },\n __local_write_time__: {\n timestampValue: {\n seconds: t.seconds,\n nanos: t.nanoseconds\n }\n }\n }\n };\n return e && (n.fields.__previous_value__ = e), {\n mapValue: n\n };\n }(n, e) : t instanceof pe ? ye(t, e) : t instanceof ve ? me(t, e) : function(t, e) {\n // PORTING NOTE: Since JavaScript's integer arithmetic is limited to 53 bit\n // precision and resolves overflows by reducing precision, we do not\n // manually cap overflows at 2^63.\n var n = le(t, e), r = we(n) + we(t.A);\n return yt(n) && yt(t.A) ? ue(r) : se(t.R, r);\n }(t, e);\n}\n\n/**\n * Computes a final transform result after the transform has been acknowledged\n * by the server, potentially using the server-provided transformResult.\n */ function fe(t, e, n) {\n // The server just sends null as the transform result for array operations,\n // so we have to calculate a result the same as we do for local\n // applications.\n return t instanceof pe ? ye(t, e) : t instanceof ve ? me(t, e) : n;\n}\n\n/**\n * If this transform operation is not idempotent, returns the base value to\n * persist for this transform. If a base value is returned, the transform\n * operation is always applied to this base value, even if document has\n * already been updated.\n *\n * Base values provide consistent behavior for non-idempotent transforms and\n * allow us to return the same latency-compensated value even if the backend\n * has already applied the transform operation. The base value is null for\n * idempotent transforms, as they can be re-played even if the backend has\n * already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent transforms.\n */ function le(t, e) {\n return t instanceof ge ? yt(n = e) || function(t) {\n return !!t && \"doubleValue\" in t;\n }(n) ? e : {\n integerValue: 0\n } : null;\n var n;\n}\n\n/** Transforms a value into a server-generated timestamp. */ var de = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e;\n}(ce), pe = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).elements = e, n;\n }\n return g(e, t), e;\n}(ce);\n\n/** Transforms an array value via a union operation. */ function ye(t, e) {\n for (var n = be(e), r = function(t) {\n n.some((function(e) {\n return at(e, t);\n })) || n.push(t);\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/** Transforms an array value via a remove operation. */ var ve = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).elements = e, n;\n }\n return g(e, t), e;\n}(ce);\n\nfunction me(t, e) {\n for (var n = be(e), r = function(t) {\n n = n.filter((function(e) {\n return !at(e, t);\n }));\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/**\n * Implements the backend semantics for locally computed NUMERIC_ADD (increment)\n * transforms. Converts all field values to integers or doubles, but unlike the\n * backend does not cap integer values at 2^63. Instead, JavaScript number\n * arithmetic is used and precision loss can occur for values greater than 2^53.\n */ var ge = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).R = e, r.A = n, r;\n }\n return g(e, t), e;\n}(ce);\n\nfunction we(t) {\n return J(t.integerValue || t.doubleValue);\n}\n\nfunction be(t) {\n return vt(t) && t.arrayValue.values ? t.arrayValue.values.slice() : [];\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** A field path and the TransformOperation to perform upon it. */ var Ie = function(t, e) {\n this.field = t, this.transform = e;\n};\n\n/** The result of successfully applying a mutation to the backend. */\nvar _e = function(\n/**\n * The version at which the mutation was committed:\n *\n * - For most operations, this is the updateTime in the WriteResult.\n * - For deletes, the commitTime of the WriteResponse (because deletes are\n * not stored and have no updateTime).\n *\n * Note that these versions can be different: No-op writes will not change\n * the updateTime even though the commitTime advances.\n */\nt, \n/**\n * The resulting fields returned from the backend after a mutation\n * containing field transforms has been committed. Contains one FieldValue\n * for each FieldTransform that was in the mutation.\n *\n * Will be empty if the mutation did not contain any field transforms.\n */\ne) {\n this.version = t, this.transformResults = e;\n}, Ee = /** @class */ function() {\n function t(t, e) {\n this.updateTime = t, this.exists = e\n /** Creates a new empty Precondition. */;\n }\n return t.none = function() {\n return new t;\n }, \n /** Creates a new Precondition with an exists flag. */ t.exists = function(e) {\n return new t(void 0, e);\n }, \n /** Creates a new Precondition based on a version a document exists at. */ t.updateTime = function(e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"isNone\", {\n /** Returns whether this Precondition is empty. */ get: function() {\n return void 0 === this.updateTime && void 0 === this.exists;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(t) {\n return this.exists === t.exists && (this.updateTime ? !!t.updateTime && this.updateTime.isEqual(t.updateTime) : !t.updateTime);\n }, t;\n}();\n\n/**\n * Encodes a precondition for a mutation. This follows the model that the\n * backend accepts with the special case of an explicit \"empty\" precondition\n * (meaning no precondition).\n */\n/** Returns true if the preconditions is valid for the given document. */ function Te(t, e) {\n return void 0 !== t.updateTime ? e.isFoundDocument() && e.version.isEqual(t.updateTime) : void 0 === t.exists || t.exists === e.isFoundDocument();\n}\n\n/**\n * A mutation describes a self-contained change to a document. Mutations can\n * create, replace, delete, and update subsets of documents.\n *\n * Mutations not only act on the value of the document but also its version.\n *\n * For local mutations (mutations that haven't been committed yet), we preserve\n * the existing version for Set and Patch mutations. For Delete mutations, we\n * reset the version to 0.\n *\n * Here's the expected transition table.\n *\n * MUTATION APPLIED TO RESULTS IN\n *\n * SetMutation Document(v3) Document(v3)\n * SetMutation NoDocument(v3) Document(v0)\n * SetMutation InvalidDocument(v0) Document(v0)\n * PatchMutation Document(v3) Document(v3)\n * PatchMutation NoDocument(v3) NoDocument(v3)\n * PatchMutation InvalidDocument(v0) UnknownDocument(v3)\n * DeleteMutation Document(v3) NoDocument(v0)\n * DeleteMutation NoDocument(v3) NoDocument(v0)\n * DeleteMutation InvalidDocument(v0) NoDocument(v0)\n *\n * For acknowledged mutations, we use the updateTime of the WriteResponse as\n * the resulting version for Set and Patch mutations. As deletes have no\n * explicit update time, we use the commitTime of the WriteResponse for\n * Delete mutations.\n *\n * If a mutation is acknowledged by the backend but fails the precondition check\n * locally, we transition to an `UnknownDocument` and rely on Watch to send us\n * the updated version.\n *\n * Field transforms are used only with Patch and Set Mutations. We use the\n * `updateTransforms` message to store transforms, rather than the `transforms`s\n * messages.\n *\n * ## Subclassing Notes\n *\n * Every type of mutation needs to implement its own applyToRemoteDocument() and\n * applyToLocalView() to implement the actual behavior of applying the mutation\n * to some source document (see `applySetMutationToRemoteDocument()` for an\n * example).\n */ var Se = function() {};\n\n/**\n * Applies this mutation to the given document for the purposes of computing a\n * new remote document. If the input document doesn't match the expected state\n * (e.g. it is invalid or outdated), the document type may transition to\n * unknown.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param mutationResult - The result of applying the mutation from the backend.\n */ function De(t, e, n) {\n t instanceof Ce ? function(t, e, n) {\n // Unlike applySetMutationToLocalView, if we're applying a mutation to a\n // remote document the server has accepted the mutation so the precondition\n // must have held.\n var r = t.value.clone(), i = Le(t.fieldTransforms, e, n.transformResults);\n r.setAll(i), e.convertToFoundDocument(n.version, r).setHasCommittedMutations();\n }(t, e, n) : t instanceof Re ? function(t, e, n) {\n if (Te(t.precondition, e)) {\n var r = Le(t.fieldTransforms, e, n.transformResults), i = e.data;\n i.setAll(Oe(t)), i.setAll(r), e.convertToFoundDocument(n.version, i).setHasCommittedMutations();\n } else e.convertToUnknownDocument(n.version);\n }(t, e, n) : function(t, e, n) {\n // Unlike applyToLocalView, if we're applying a mutation to a remote\n // document the server has accepted the mutation so the precondition must\n // have held.\n e.convertToNoDocument(n.version).setHasCommittedMutations();\n }(0, e, n);\n}\n\n/**\n * Applies this mutation to the given document for the purposes of computing\n * the new local view of a document. If the input document doesn't match the\n * expected state, the document is not modified.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param localWriteTime - A timestamp indicating the local write time of the\n * batch this mutation is a part of.\n */ function Ne(t, e, n) {\n t instanceof Ce ? function(t, e, n) {\n if (Te(t.precondition, e)) {\n var r = t.value.clone(), i = Pe(t.fieldTransforms, n, e);\n r.setAll(i), e.convertToFoundDocument(xe(e), r).setHasLocalMutations();\n }\n }(t, e, n) : t instanceof Re ? function(t, e, n) {\n if (Te(t.precondition, e)) {\n var r = Pe(t.fieldTransforms, n, e), i = e.data;\n i.setAll(Oe(t)), i.setAll(r), e.convertToFoundDocument(xe(e), i).setHasLocalMutations();\n }\n }(t, e, n) : function(t, e) {\n Te(t.precondition, e) && \n // We don't call `setHasLocalMutations()` since we want to be backwards\n // compatible with the existing SDK behavior.\n e.convertToNoDocument(U.min());\n }(t, e);\n}\n\n/**\n * If this mutation is not idempotent, returns the base value to persist with\n * this mutation. If a base value is returned, the mutation is always applied\n * to this base value, even if document has already been updated.\n *\n * The base value is a sparse object that consists of only the document\n * fields for which this mutation contains a non-idempotent transformation\n * (e.g. a numeric increment). The provided value guarantees consistent\n * behavior for non-idempotent transforms and allow us to return the same\n * latency-compensated value even if the backend has already applied the\n * mutation. The base value is null for idempotent mutations, as they can be\n * re-played even if the backend has already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent mutations.\n */ function Ae(t, e) {\n for (var n = null, r = 0, i = t.fieldTransforms; r < i.length; r++) {\n var o = i[r], s = e.data.field(o.field), u = le(o.transform, s || null);\n null != u && (null == n && (n = bt.empty()), n.set(o.field, u));\n }\n return n || null;\n}\n\nfunction ke(t, e) {\n return t.type === e.type && !!t.key.isEqual(e.key) && !!t.precondition.isEqual(e.precondition) && !!function(t, e) {\n return void 0 === t && void 0 === e || !(!t || !e) && F(t, e, (function(t, e) {\n return function(t, e) {\n return t.field.isEqual(e.field) && function(t, e) {\n return t instanceof pe && e instanceof pe || t instanceof ve && e instanceof ve ? F(t.elements, e.elements, at) : t instanceof ge && e instanceof ge ? at(t.A, e.A) : t instanceof de && e instanceof de;\n }(t.transform, e.transform);\n }(t, e);\n }));\n }(t.fieldTransforms, e.fieldTransforms) && (0 /* Set */ === t.type ? t.value.isEqual(e.value) : 1 /* Patch */ !== t.type || t.data.isEqual(e.data) && t.fieldMask.isEqual(e.fieldMask));\n}\n\n/**\n * Returns the version from the given document for use as the result of a\n * mutation. Mutations are defined to return the version of the base document\n * only if it is an existing document. Deleted and unknown documents have a\n * post-mutation version of SnapshotVersion.min().\n */ function xe(t) {\n return t.isFoundDocument() ? t.version : U.min();\n}\n\n/**\n * A mutation that creates or replaces the document at the given key with the\n * object value contents.\n */ var Ce = /** @class */ function(t) {\n function e(e, n, r, i) {\n void 0 === i && (i = []);\n var o = this;\n return (o = t.call(this) || this).key = e, o.value = n, o.precondition = r, o.fieldTransforms = i, \n o.type = 0 /* Set */ , o;\n }\n return g(e, t), e;\n}(Se), Re = /** @class */ function(t) {\n function e(e, n, r, i, o) {\n void 0 === o && (o = []);\n var s = this;\n return (s = t.call(this) || this).key = e, s.data = n, s.fieldMask = r, s.precondition = i, \n s.fieldTransforms = o, s.type = 1 /* Patch */ , s;\n }\n return g(e, t), e;\n}(Se);\n\nfunction Oe(t) {\n var e = new Map;\n return t.fieldMask.fields.forEach((function(n) {\n if (!n.isEmpty()) {\n var r = t.data.field(n);\n e.set(n, r);\n }\n })), e\n /**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use after a mutation\n * containing transforms has been acknowledged by the server.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @param serverTransformResults - The transform results received by the server.\n * @returns The transform results list.\n */;\n}\n\nfunction Le(t, e, n) {\n var r = new Map;\n R(t.length === n.length);\n for (var i = 0; i < n.length; i++) {\n var o = t[i], s = o.transform, u = e.data.field(o.field);\n r.set(o.field, fe(s, u, n[i]));\n }\n return r;\n}\n\n/**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use when applying a\n * transform locally.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param localWriteTime - The local time of the mutation (used to\n * generate ServerTimestampValues).\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @returns The transform results list.\n */ function Pe(t, e, n) {\n for (var r = new Map, i = 0, o = t; i < o.length; i++) {\n var s = o[i], u = s.transform, a = n.data.field(s.field);\n r.set(s.field, he(u, a, e));\n }\n return r;\n}\n\n/** A mutation that deletes the document at the given key. */ var Me, Fe, Ve = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).key = e, r.precondition = n, r.type = 2 /* Delete */ , \n r.fieldTransforms = [], r;\n }\n return g(e, t), e;\n}(Se), qe = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).key = e, r.precondition = n, r.type = 3 /* Verify */ , \n r.fieldTransforms = [], r;\n }\n return g(e, t), e;\n}(Se), Ue = \n// TODO(b/33078163): just use simplest form of existence filter for now\nfunction(t) {\n this.count = t;\n};\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a non-write operation.\n *\n * See isPermanentWriteError for classifying write errors.\n */\nfunction Be(t) {\n switch (t) {\n case E.OK:\n return C();\n\n case E.CANCELLED:\n case E.UNKNOWN:\n case E.DEADLINE_EXCEEDED:\n case E.RESOURCE_EXHAUSTED:\n case E.INTERNAL:\n case E.UNAVAILABLE:\n // Unauthenticated means something went wrong with our token and we need\n // to retry with new credentials which will happen automatically.\n case E.UNAUTHENTICATED:\n return !1;\n\n case E.INVALID_ARGUMENT:\n case E.NOT_FOUND:\n case E.ALREADY_EXISTS:\n case E.PERMISSION_DENIED:\n case E.FAILED_PRECONDITION:\n // Aborted might be retried in some scenarios, but that is dependant on\n // the context and should handled individually by the calling code.\n // See https://cloud.google.com/apis/design/errors.\n case E.ABORTED:\n case E.OUT_OF_RANGE:\n case E.UNIMPLEMENTED:\n case E.DATA_LOSS:\n return !0;\n\n default:\n return C();\n }\n}\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a write operation.\n *\n * Write operations must be handled specially because as of b/119437764, ABORTED\n * errors on the write stream should be retried too (even though ABORTED errors\n * are not generally retryable).\n *\n * Note that during the initial handshake on the write stream an ABORTED error\n * signals that we should discard our stream token (i.e. it is permanent). This\n * means a handshake error should be classified with isPermanentError, above.\n */\n/**\n * Maps an error Code from GRPC status code number, like 0, 1, or 14. These\n * are not the same as HTTP status codes.\n *\n * @returns The Code equivalent to the given GRPC status code. Fails if there\n * is no match.\n */ function je(t) {\n if (void 0 === t) \n // This shouldn't normally happen, but in certain error cases (like trying\n // to send invalid proto messages) we may get an error with no GRPC code.\n return A(\"GRPC error has no .code\"), E.UNKNOWN;\n switch (t) {\n case Me.OK:\n return E.OK;\n\n case Me.CANCELLED:\n return E.CANCELLED;\n\n case Me.UNKNOWN:\n return E.UNKNOWN;\n\n case Me.DEADLINE_EXCEEDED:\n return E.DEADLINE_EXCEEDED;\n\n case Me.RESOURCE_EXHAUSTED:\n return E.RESOURCE_EXHAUSTED;\n\n case Me.INTERNAL:\n return E.INTERNAL;\n\n case Me.UNAVAILABLE:\n return E.UNAVAILABLE;\n\n case Me.UNAUTHENTICATED:\n return E.UNAUTHENTICATED;\n\n case Me.INVALID_ARGUMENT:\n return E.INVALID_ARGUMENT;\n\n case Me.NOT_FOUND:\n return E.NOT_FOUND;\n\n case Me.ALREADY_EXISTS:\n return E.ALREADY_EXISTS;\n\n case Me.PERMISSION_DENIED:\n return E.PERMISSION_DENIED;\n\n case Me.FAILED_PRECONDITION:\n return E.FAILED_PRECONDITION;\n\n case Me.ABORTED:\n return E.ABORTED;\n\n case Me.OUT_OF_RANGE:\n return E.OUT_OF_RANGE;\n\n case Me.UNIMPLEMENTED:\n return E.UNIMPLEMENTED;\n\n case Me.DATA_LOSS:\n return E.DATA_LOSS;\n\n default:\n return C();\n }\n}\n\n/**\n * Converts an HTTP response's error status to the equivalent error code.\n *\n * @param status - An HTTP error response status (\"FAILED_PRECONDITION\",\n * \"UNKNOWN\", etc.)\n * @returns The equivalent Code. Non-matching responses are mapped to\n * Code.UNKNOWN.\n */ (Fe = Me || (Me = {}))[Fe.OK = 0] = \"OK\", Fe[Fe.CANCELLED = 1] = \"CANCELLED\", \nFe[Fe.UNKNOWN = 2] = \"UNKNOWN\", Fe[Fe.INVALID_ARGUMENT = 3] = \"INVALID_ARGUMENT\", \nFe[Fe.DEADLINE_EXCEEDED = 4] = \"DEADLINE_EXCEEDED\", Fe[Fe.NOT_FOUND = 5] = \"NOT_FOUND\", \nFe[Fe.ALREADY_EXISTS = 6] = \"ALREADY_EXISTS\", Fe[Fe.PERMISSION_DENIED = 7] = \"PERMISSION_DENIED\", \nFe[Fe.UNAUTHENTICATED = 16] = \"UNAUTHENTICATED\", Fe[Fe.RESOURCE_EXHAUSTED = 8] = \"RESOURCE_EXHAUSTED\", \nFe[Fe.FAILED_PRECONDITION = 9] = \"FAILED_PRECONDITION\", Fe[Fe.ABORTED = 10] = \"ABORTED\", \nFe[Fe.OUT_OF_RANGE = 11] = \"OUT_OF_RANGE\", Fe[Fe.UNIMPLEMENTED = 12] = \"UNIMPLEMENTED\", \nFe[Fe.INTERNAL = 13] = \"INTERNAL\", Fe[Fe.UNAVAILABLE = 14] = \"UNAVAILABLE\", Fe[Fe.DATA_LOSS = 15] = \"DATA_LOSS\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// An immutable sorted map implementation, based on a Left-leaning Red-Black\n// tree.\nvar Ke = /** @class */ function() {\n function t(t, e) {\n this.comparator = t, this.root = e || Qe.EMPTY;\n }\n // Returns a copy of the map, with the specified key/value added or replaced.\n return t.prototype.insert = function(e, n) {\n return new t(this.comparator, this.root.insert(e, n, this.comparator).copy(null, null, Qe.BLACK, null, null));\n }, \n // Returns a copy of the map, with the specified key removed.\n t.prototype.remove = function(e) {\n return new t(this.comparator, this.root.remove(e, this.comparator).copy(null, null, Qe.BLACK, null, null));\n }, \n // Returns the value of the node with the given key, or null.\n t.prototype.get = function(t) {\n for (var e = this.root; !e.isEmpty(); ) {\n var n = this.comparator(t, e.key);\n if (0 === n) return e.value;\n n < 0 ? e = e.left : n > 0 && (e = e.right);\n }\n return null;\n }, \n // Returns the index of the element in this sorted map, or -1 if it doesn't\n // exist.\n t.prototype.indexOf = function(t) {\n for (\n // Number of nodes that were pruned when descending right\n var e = 0, n = this.root; !n.isEmpty(); ) {\n var r = this.comparator(t, n.key);\n if (0 === r) return e + n.left.size;\n r < 0 ? n = n.left : (\n // Count all nodes left of the node plus the node itself\n e += n.left.size + 1, n = n.right);\n }\n // Node not found\n return -1;\n }, t.prototype.isEmpty = function() {\n return this.root.isEmpty();\n }, Object.defineProperty(t.prototype, \"size\", {\n // Returns the total number of nodes in the map.\n get: function() {\n return this.root.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n // Returns the minimum key in the map.\n t.prototype.minKey = function() {\n return this.root.minKey();\n }, \n // Returns the maximum key in the map.\n t.prototype.maxKey = function() {\n return this.root.maxKey();\n }, \n // Traverses the map in key order and calls the specified action function\n // for each key/value pair. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.inorderTraversal = function(t) {\n return this.root.inorderTraversal(t);\n }, t.prototype.forEach = function(t) {\n this.inorderTraversal((function(e, n) {\n return t(e, n), !1;\n }));\n }, t.prototype.toString = function() {\n var t = [];\n return this.inorderTraversal((function(e, n) {\n return t.push(e + \":\" + n), !1;\n })), \"{\" + t.join(\", \") + \"}\";\n }, \n // Traverses the map in reverse key order and calls the specified action\n // function for each key/value pair. If action returns true, traversal is\n // aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.reverseTraversal = function(t) {\n return this.root.reverseTraversal(t);\n }, \n // Returns an iterator over the SortedMap.\n t.prototype.getIterator = function() {\n return new Ge(this.root, null, this.comparator, !1);\n }, t.prototype.getIteratorFrom = function(t) {\n return new Ge(this.root, t, this.comparator, !1);\n }, t.prototype.getReverseIterator = function() {\n return new Ge(this.root, null, this.comparator, !0);\n }, t.prototype.getReverseIteratorFrom = function(t) {\n return new Ge(this.root, t, this.comparator, !0);\n }, t;\n}(), Ge = /** @class */ function() {\n function t(t, e, n, r) {\n this.isReverse = r, this.nodeStack = [];\n for (var i = 1; !t.isEmpty(); ) if (i = e ? n(t.key, e) : 1, \n // flip the comparison if we're going in reverse\n r && (i *= -1), i < 0) \n // This node is less than our start key. ignore it\n t = this.isReverse ? t.left : t.right; else {\n if (0 === i) {\n // This node is exactly equal to our start key. Push it on the stack,\n // but stop iterating;\n this.nodeStack.push(t);\n break;\n }\n // This node is greater than our start key, add it to the stack and move\n // to the next one\n this.nodeStack.push(t), t = this.isReverse ? t.right : t.left;\n }\n }\n return t.prototype.getNext = function() {\n var t = this.nodeStack.pop(), e = {\n key: t.key,\n value: t.value\n };\n if (this.isReverse) for (t = t.left; !t.isEmpty(); ) this.nodeStack.push(t), t = t.right; else for (t = t.right; !t.isEmpty(); ) this.nodeStack.push(t), \n t = t.left;\n return e;\n }, t.prototype.hasNext = function() {\n return this.nodeStack.length > 0;\n }, t.prototype.peek = function() {\n if (0 === this.nodeStack.length) return null;\n var t = this.nodeStack[this.nodeStack.length - 1];\n return {\n key: t.key,\n value: t.value\n };\n }, t;\n}(), Qe = /** @class */ function() {\n function t(e, n, r, i, o) {\n this.key = e, this.value = n, this.color = null != r ? r : t.RED, this.left = null != i ? i : t.EMPTY, \n this.right = null != o ? o : t.EMPTY, this.size = this.left.size + 1 + this.right.size;\n }\n // Returns a copy of the current node, optionally replacing pieces of it.\n return t.prototype.copy = function(e, n, r, i, o) {\n return new t(null != e ? e : this.key, null != n ? n : this.value, null != r ? r : this.color, null != i ? i : this.left, null != o ? o : this.right);\n }, t.prototype.isEmpty = function() {\n return !1;\n }, \n // Traverses the tree in key order and calls the specified action function\n // for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.inorderTraversal = function(t) {\n return this.left.inorderTraversal(t) || t(this.key, this.value) || this.right.inorderTraversal(t);\n }, \n // Traverses the tree in reverse key order and calls the specified action\n // function for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.reverseTraversal = function(t) {\n return this.right.reverseTraversal(t) || t(this.key, this.value) || this.left.reverseTraversal(t);\n }, \n // Returns the minimum node in the tree.\n t.prototype.min = function() {\n return this.left.isEmpty() ? this : this.left.min();\n }, \n // Returns the maximum key in the tree.\n t.prototype.minKey = function() {\n return this.min().key;\n }, \n // Returns the maximum key in the tree.\n t.prototype.maxKey = function() {\n return this.right.isEmpty() ? this.key : this.right.maxKey();\n }, \n // Returns new tree, with the key/value added.\n t.prototype.insert = function(t, e, n) {\n var r = this, i = n(t, r.key);\n return (r = i < 0 ? r.copy(null, null, null, r.left.insert(t, e, n), null) : 0 === i ? r.copy(null, e, null, null, null) : r.copy(null, null, null, null, r.right.insert(t, e, n))).fixUp();\n }, t.prototype.removeMin = function() {\n if (this.left.isEmpty()) return t.EMPTY;\n var e = this;\n return e.left.isRed() || e.left.left.isRed() || (e = e.moveRedLeft()), (e = e.copy(null, null, null, e.left.removeMin(), null)).fixUp();\n }, \n // Returns new tree, with the specified item removed.\n t.prototype.remove = function(e, n) {\n var r, i = this;\n if (n(e, i.key) < 0) i.left.isEmpty() || i.left.isRed() || i.left.left.isRed() || (i = i.moveRedLeft()), \n i = i.copy(null, null, null, i.left.remove(e, n), null); else {\n if (i.left.isRed() && (i = i.rotateRight()), i.right.isEmpty() || i.right.isRed() || i.right.left.isRed() || (i = i.moveRedRight()), \n 0 === n(e, i.key)) {\n if (i.right.isEmpty()) return t.EMPTY;\n r = i.right.min(), i = i.copy(r.key, r.value, null, null, i.right.removeMin());\n }\n i = i.copy(null, null, null, null, i.right.remove(e, n));\n }\n return i.fixUp();\n }, t.prototype.isRed = function() {\n return this.color;\n }, \n // Returns new tree after performing any needed rotations.\n t.prototype.fixUp = function() {\n var t = this;\n return t.right.isRed() && !t.left.isRed() && (t = t.rotateLeft()), t.left.isRed() && t.left.left.isRed() && (t = t.rotateRight()), \n t.left.isRed() && t.right.isRed() && (t = t.colorFlip()), t;\n }, t.prototype.moveRedLeft = function() {\n var t = this.colorFlip();\n return t.right.left.isRed() && (t = (t = (t = t.copy(null, null, null, null, t.right.rotateRight())).rotateLeft()).colorFlip()), \n t;\n }, t.prototype.moveRedRight = function() {\n var t = this.colorFlip();\n return t.left.left.isRed() && (t = (t = t.rotateRight()).colorFlip()), t;\n }, t.prototype.rotateLeft = function() {\n var e = this.copy(null, null, t.RED, null, this.right.left);\n return this.right.copy(null, null, this.color, e, null);\n }, t.prototype.rotateRight = function() {\n var e = this.copy(null, null, t.RED, this.left.right, null);\n return this.left.copy(null, null, this.color, null, e);\n }, t.prototype.colorFlip = function() {\n var t = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null);\n return this.copy(null, null, !this.color, t, e);\n }, \n // For testing.\n t.prototype.checkMaxDepth = function() {\n var t = this.check();\n return Math.pow(2, t) <= this.size + 1;\n }, \n // In a balanced RB tree, the black-depth (number of black nodes) from root to\n // leaves is equal on both sides. This function verifies that or asserts.\n t.prototype.check = function() {\n if (this.isRed() && this.left.isRed()) throw C();\n if (this.right.isRed()) throw C();\n var t = this.left.check();\n if (t !== this.right.check()) throw C();\n return t + (this.isRed() ? 0 : 1);\n }, t;\n}();\n\n// end SortedMap\n// An iterator over an LLRBNode.\n// end LLRBNode\n// Empty node is shared between all LLRB trees.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nQe.EMPTY = null, Qe.RED = !0, Qe.BLACK = !1, \n// end LLRBEmptyNode\nQe.EMPTY = new (/** @class */ function() {\n function t() {\n this.size = 0;\n }\n return Object.defineProperty(t.prototype, \"key\", {\n get: function() {\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"value\", {\n get: function() {\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"color\", {\n get: function() {\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"left\", {\n get: function() {\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"right\", {\n get: function() {\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), \n // Returns a copy of the current node.\n t.prototype.copy = function(t, e, n, r, i) {\n return this;\n }, \n // Returns a copy of the tree, with the specified key/value added.\n t.prototype.insert = function(t, e, n) {\n return new Qe(t, e);\n }, \n // Returns a copy of the tree, with the specified key removed.\n t.prototype.remove = function(t, e) {\n return this;\n }, t.prototype.isEmpty = function() {\n return !0;\n }, t.prototype.inorderTraversal = function(t) {\n return !1;\n }, t.prototype.reverseTraversal = function(t) {\n return !1;\n }, t.prototype.minKey = function() {\n return null;\n }, t.prototype.maxKey = function() {\n return null;\n }, t.prototype.isRed = function() {\n return !1;\n }, \n // For testing.\n t.prototype.checkMaxDepth = function() {\n return !0;\n }, t.prototype.check = function() {\n return 0;\n }, t;\n}());\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SortedSet is an immutable (copy-on-write) collection that holds elements\n * in order specified by the provided comparator.\n *\n * NOTE: if provided comparator returns 0 for two elements, we consider them to\n * be equal!\n */\nvar ze = /** @class */ function() {\n function t(t) {\n this.comparator = t, this.data = new Ke(this.comparator);\n }\n return t.prototype.has = function(t) {\n return null !== this.data.get(t);\n }, t.prototype.first = function() {\n return this.data.minKey();\n }, t.prototype.last = function() {\n return this.data.maxKey();\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this.data.size;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.indexOf = function(t) {\n return this.data.indexOf(t);\n }, \n /** Iterates elements in order defined by \"comparator\" */ t.prototype.forEach = function(t) {\n this.data.inorderTraversal((function(e, n) {\n return t(e), !1;\n }));\n }, \n /** Iterates over `elem`s such that: range[0] <= elem < range[1]. */ t.prototype.forEachInRange = function(t, e) {\n for (var n = this.data.getIteratorFrom(t[0]); n.hasNext(); ) {\n var r = n.getNext();\n if (this.comparator(r.key, t[1]) >= 0) return;\n e(r.key);\n }\n }, \n /**\n * Iterates over `elem`s such that: start <= elem until false is returned.\n */\n t.prototype.forEachWhile = function(t, e) {\n var n;\n for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) if (!t(n.getNext().key)) return;\n }, \n /** Finds the least element greater than or equal to `elem`. */ t.prototype.firstAfterOrEqual = function(t) {\n var e = this.data.getIteratorFrom(t);\n return e.hasNext() ? e.getNext().key : null;\n }, t.prototype.getIterator = function() {\n return new We(this.data.getIterator());\n }, t.prototype.getIteratorFrom = function(t) {\n return new We(this.data.getIteratorFrom(t));\n }, \n /** Inserts or updates an element */ t.prototype.add = function(t) {\n return this.copy(this.data.remove(t).insert(t, !0));\n }, \n /** Deletes an element */ t.prototype.delete = function(t) {\n return this.has(t) ? this.copy(this.data.remove(t)) : this;\n }, t.prototype.isEmpty = function() {\n return this.data.isEmpty();\n }, t.prototype.unionWith = function(t) {\n var e = this;\n // Make sure `result` always refers to the larger one of the two sets.\n return e.size < t.size && (e = t, t = this), t.forEach((function(t) {\n e = e.add(t);\n })), e;\n }, t.prototype.isEqual = function(e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n for (var n = this.data.getIterator(), r = e.data.getIterator(); n.hasNext(); ) {\n var i = n.getNext().key, o = r.getNext().key;\n if (0 !== this.comparator(i, o)) return !1;\n }\n return !0;\n }, t.prototype.toArray = function() {\n var t = [];\n return this.forEach((function(e) {\n t.push(e);\n })), t;\n }, t.prototype.toString = function() {\n var t = [];\n return this.forEach((function(e) {\n return t.push(e);\n })), \"SortedSet(\" + t.toString() + \")\";\n }, t.prototype.copy = function(e) {\n var n = new t(this.comparator);\n return n.data = e, n;\n }, t;\n}(), We = /** @class */ function() {\n function t(t) {\n this.iter = t;\n }\n return t.prototype.getNext = function() {\n return this.iter.getNext().key;\n }, t.prototype.hasNext = function() {\n return this.iter.hasNext();\n }, t;\n}(), He = new Ke(st.comparator);\n\nfunction Ye() {\n return He;\n}\n\nvar Xe = new Ke(st.comparator);\n\nfunction $e() {\n return Xe;\n}\n\nvar Je = new Ke(st.comparator);\n\nfunction Ze() {\n return Je;\n}\n\nvar tn = new ze(st.comparator);\n\nfunction en() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n for (var n = tn, r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n n = n.add(o);\n }\n return n;\n}\n\nvar nn = new ze(M);\n\nfunction rn() {\n return nn;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An event from the RemoteStore. It is split into targetChanges (changes to the\n * state or the set of documents in our watched targets) and documentUpdates\n * (changes to the actual documents).\n */ var on = /** @class */ function() {\n function t(\n /**\n * The snapshot version this event brings us up to, or MIN if not set.\n */\n t, \n /**\n * A map from target to changes to the target. See TargetChange.\n */\n e, \n /**\n * A set of targets that is known to be inconsistent. Listens for these\n * targets should be re-established without resume tokens.\n */\n n, \n /**\n * A set of which documents have changed or been deleted, along with the\n * doc's new values (if not deleted).\n */\n r, \n /**\n * A set of which document updates are due only to limbo resolution targets.\n */\n i) {\n this.snapshotVersion = t, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = r, \n this.resolvedLimboDocuments = i;\n }\n /**\n * HACK: Views require RemoteEvents in order to determine whether the view is\n * CURRENT, but secondary tabs don't receive remote events. So this method is\n * used to create a synthesized RemoteEvent that can be used to apply a\n * CURRENT status change to a View, for queries executed in a different tab.\n */\n // PORTING NOTE: Multi-tab only\n return t.createSynthesizedRemoteEventForCurrentChange = function(e, n) {\n var r = new Map;\n return r.set(e, sn.createSynthesizedTargetChangeForCurrentChange(e, n)), new t(U.min(), r, rn(), Ye(), en());\n }, t;\n}(), sn = /** @class */ function() {\n function t(\n /**\n * An opaque, server-assigned token that allows watching a query to be resumed\n * after disconnecting without retransmitting all the data that matches the\n * query. The resume token essentially identifies a point in time from which\n * the server should resume sending results.\n */\n t, \n /**\n * The \"current\" (synced) status of this target. Note that \"current\"\n * has special meaning in the RPC protocol that implies that a target is\n * both up-to-date and consistent with the rest of the watch stream.\n */\n e, \n /**\n * The set of documents that were newly assigned to this target as part of\n * this remote event.\n */\n n, \n /**\n * The set of documents that were already assigned to this target but received\n * an update during this remote event.\n */\n r, \n /**\n * The set of documents that were removed from this target as part of this\n * remote event.\n */\n i) {\n this.resumeToken = t, this.current = e, this.addedDocuments = n, this.modifiedDocuments = r, \n this.removedDocuments = i\n /**\n * This method is used to create a synthesized TargetChanges that can be used to\n * apply a CURRENT status change to a View (for queries executed in a different\n * tab) or for new queries (to raise snapshots with correct CURRENT status).\n */;\n }\n return t.createSynthesizedTargetChangeForCurrentChange = function(e, n) {\n return new t(Y.EMPTY_BYTE_STRING, n, en(), en(), en());\n }, t;\n}(), un = function(\n/** The new document applies to all of these targets. */\nt, \n/** The new document is removed from all of these targets. */\ne, \n/** The key of the document for this change. */\nn, \n/**\n * The new document or NoDocument if it was deleted. Is null if the\n * document went out of view without the server sending a new document.\n */\nr) {\n this.v = t, this.removedTargetIds = e, this.key = n, this.P = r;\n}, an = function(t, e) {\n this.targetId = t, this.V = e;\n}, cn = function(\n/** What kind of change occurred to the watch target. */\nt, \n/** The target IDs that were added/removed/set. */\ne, \n/**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */\nn\n/** An RPC error indicating why the watch failed. */ , r) {\n void 0 === n && (n = Y.EMPTY_BYTE_STRING), void 0 === r && (r = null), this.state = t, \n this.targetIds = e, this.resumeToken = n, this.cause = r;\n}, hn = /** @class */ function() {\n function t() {\n /**\n * The number of pending responses (adds or removes) that we are waiting on.\n * We only consider targets active that have no pending responses.\n */\n this.S = 0, \n /**\n * Keeps track of the document changes since the last raised snapshot.\n *\n * These changes are continuously updated as we receive document updates and\n * always reflect the current set of changes against the last issued snapshot.\n */\n this.D = dn(), \n /** See public getters for explanations of these fields. */\n this.C = Y.EMPTY_BYTE_STRING, this.N = !1, \n /**\n * Whether this target state should be included in the next snapshot. We\n * initialize to true so that newly-added targets are included in the next\n * RemoteEvent.\n */\n this.F = !0;\n }\n return Object.defineProperty(t.prototype, \"current\", {\n /**\n * Whether this target has been marked 'current'.\n *\n * 'Current' has special meaning in the RPC protocol: It implies that the\n * Watch backend has sent us all changes up to the point at which the target\n * was added and that the target is consistent with the rest of the watch\n * stream.\n */\n get: function() {\n return this.N;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"resumeToken\", {\n /** The last resume token sent to us for this target. */ get: function() {\n return this.C;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"k\", {\n /** Whether this target has pending target adds or target removes. */ get: function() {\n return 0 !== this.S;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"O\", {\n /** Whether we have modified any state that should trigger a snapshot. */ get: function() {\n return this.F;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Applies the resume token to the TargetChange, but only when it has a new\n * value. Empty resumeTokens are discarded.\n */\n t.prototype.$ = function(t) {\n t.approximateByteSize() > 0 && (this.F = !0, this.C = t);\n }, \n /**\n * Creates a target change from the current set of changes.\n *\n * To reset the document changes after raising this snapshot, call\n * `clearPendingChanges()`.\n */\n t.prototype.M = function() {\n var t = en(), e = en(), n = en();\n return this.D.forEach((function(r, i) {\n switch (i) {\n case 0 /* Added */ :\n t = t.add(r);\n break;\n\n case 2 /* Modified */ :\n e = e.add(r);\n break;\n\n case 1 /* Removed */ :\n n = n.add(r);\n break;\n\n default:\n C();\n }\n })), new sn(this.C, this.N, t, e, n);\n }, \n /**\n * Resets the document changes and sets `hasPendingChanges` to false.\n */\n t.prototype.L = function() {\n this.F = !1, this.D = dn();\n }, t.prototype.B = function(t, e) {\n this.F = !0, this.D = this.D.insert(t, e);\n }, t.prototype.q = function(t) {\n this.F = !0, this.D = this.D.remove(t);\n }, t.prototype.U = function() {\n this.S += 1;\n }, t.prototype.K = function() {\n this.S -= 1;\n }, t.prototype.j = function() {\n this.F = !0, this.N = !0;\n }, t;\n}(), fn = /** @class */ function() {\n function t(t) {\n this.W = t, \n /** The internal state of all tracked targets. */\n this.G = new Map, \n /** Keeps track of the documents to update since the last raised snapshot. */\n this.H = Ye(), \n /** A mapping of document keys to their set of target IDs. */\n this.J = ln(), \n /**\n * A list of targets with existence filter mismatches. These targets are\n * known to be inconsistent and their listens needs to be re-established by\n * RemoteStore.\n */\n this.Y = new ze(M)\n /**\n * Processes and adds the DocumentWatchChange to the current set of changes.\n */;\n }\n return t.prototype.X = function(t) {\n for (var e = 0, n = t.v; e < n.length; e++) {\n var r = n[e];\n t.P && t.P.isFoundDocument() ? this.Z(r, t.P) : this.tt(r, t.key, t.P);\n }\n for (var i = 0, o = t.removedTargetIds; i < o.length; i++) {\n r = o[i];\n this.tt(r, t.key, t.P);\n }\n }, \n /** Processes and adds the WatchTargetChange to the current set of changes. */ t.prototype.et = function(t) {\n var e = this;\n this.forEachTarget(t, (function(n) {\n var r = e.nt(n);\n switch (t.state) {\n case 0 /* NoChange */ :\n e.st(n) && r.$(t.resumeToken);\n break;\n\n case 1 /* Added */ :\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.K(), r.k || \n // We have a freshly added target, so we need to reset any state\n // that we had previously. This can happen e.g. when remove and add\n // back a target for existence filter mismatches.\n r.L(), r.$(t.resumeToken);\n break;\n\n case 2 /* Removed */ :\n // We need to keep track of removed targets to we can post-filter and\n // remove any target changes.\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.K(), r.k || e.removeTarget(n);\n break;\n\n case 3 /* Current */ :\n e.st(n) && (r.j(), r.$(t.resumeToken));\n break;\n\n case 4 /* Reset */ :\n e.st(n) && (\n // Reset the target and synthesizes removes for all existing\n // documents. The backend will re-add any documents that still\n // match the target before it sends the next global snapshot.\n e.it(n), r.$(t.resumeToken));\n break;\n\n default:\n C();\n }\n }));\n }, \n /**\n * Iterates over all targetIds that the watch change applies to: either the\n * targetIds explicitly listed in the change or the targetIds of all currently\n * active targets.\n */\n t.prototype.forEachTarget = function(t, e) {\n var n = this;\n t.targetIds.length > 0 ? t.targetIds.forEach(e) : this.G.forEach((function(t, r) {\n n.st(r) && e(r);\n }));\n }, \n /**\n * Handles existence filters and synthesizes deletes for filter mismatches.\n * Targets that are invalidated by filter mismatches are added to\n * `pendingTargetResets`.\n */\n t.prototype.rt = function(t) {\n var e = t.targetId, n = t.V.count, r = this.ot(e);\n if (r) {\n var i = r.target;\n if (Nt(i)) if (0 === n) {\n // The existence filter told us the document does not exist. We deduce\n // that this document does not exist and apply a deleted document to\n // our updates. Without applying this deleted document there might be\n // another query that will raise this document as part of a snapshot\n // until it is resolved, essentially exposing inconsistency between\n // queries.\n var o = new st(i.path);\n this.tt(e, o, _t.newNoDocument(o, U.min()));\n } else R(1 === n); else this.ct(e) !== n && (\n // Existence filter mismatch: We reset the mapping and raise a new\n // snapshot with `isFromCache:true`.\n this.it(e), this.Y = this.Y.add(e));\n }\n }, \n /**\n * Converts the currently accumulated state into a remote event at the\n * provided snapshot version. Resets the accumulated changes before returning.\n */\n t.prototype.ut = function(t) {\n var e = this, n = new Map;\n this.G.forEach((function(r, i) {\n var o = e.ot(i);\n if (o) {\n if (r.current && Nt(o.target)) {\n // Document queries for document that don't exist can produce an empty\n // result set. To update our local cache, we synthesize a document\n // delete if we have not previously received the document. This\n // resolves the limbo state of the document, removing it from\n // limboDocumentRefs.\n // TODO(dimond): Ideally we would have an explicit lookup target\n // instead resulting in an explicit delete message and we could\n // remove this special logic.\n var s = new st(o.target.path);\n null !== e.H.get(s) || e.at(i, s) || e.tt(i, s, _t.newNoDocument(s, t));\n }\n r.O && (n.set(i, r.M()), r.L());\n }\n }));\n var r = en();\n // We extract the set of limbo-only document updates as the GC logic\n // special-cases documents that do not appear in the target cache.\n // TODO(gsoltis): Expand on this comment once GC is available in the JS\n // client.\n this.J.forEach((function(t, n) {\n var i = !0;\n n.forEachWhile((function(t) {\n var n = e.ot(t);\n return !n || 2 /* LimboResolution */ === n.purpose || (i = !1, !1);\n })), i && (r = r.add(t));\n }));\n var i = new on(t, n, this.Y, this.H, r);\n return this.H = Ye(), this.J = ln(), this.Y = new ze(M), i;\n }, \n /**\n * Adds the provided document to the internal list of document updates and\n * its document key to the given target's mapping.\n */\n // Visible for testing.\n t.prototype.Z = function(t, e) {\n if (this.st(t)) {\n var n = this.at(t, e.key) ? 2 /* Modified */ : 0 /* Added */;\n this.nt(t).B(e.key, n), this.H = this.H.insert(e.key, e), this.J = this.J.insert(e.key, this.ht(e.key).add(t));\n }\n }, \n /**\n * Removes the provided document from the target mapping. If the\n * document no longer matches the target, but the document's state is still\n * known (e.g. we know that the document was deleted or we received the change\n * that caused the filter mismatch), the new document can be provided\n * to update the remote document cache.\n */\n // Visible for testing.\n t.prototype.tt = function(t, e, n) {\n if (this.st(t)) {\n var r = this.nt(t);\n this.at(t, e) ? r.B(e, 1 /* Removed */) : \n // The document may have entered and left the target before we raised a\n // snapshot, so we can just ignore the change.\n r.q(e), this.J = this.J.insert(e, this.ht(e).delete(t)), n && (this.H = this.H.insert(e, n));\n }\n }, t.prototype.removeTarget = function(t) {\n this.G.delete(t);\n }, \n /**\n * Returns the current count of documents in the target. This includes both\n * the number of documents that the LocalStore considers to be part of the\n * target as well as any accumulated changes.\n */\n t.prototype.ct = function(t) {\n var e = this.nt(t).M();\n return this.W.getRemoteKeysForTarget(t).size + e.addedDocuments.size - e.removedDocuments.size;\n }, \n /**\n * Increment the number of acks needed from watch before we can consider the\n * server to be 'in-sync' with the client's active targets.\n */\n t.prototype.U = function(t) {\n this.nt(t).U();\n }, t.prototype.nt = function(t) {\n var e = this.G.get(t);\n return e || (e = new hn, this.G.set(t, e)), e;\n }, t.prototype.ht = function(t) {\n var e = this.J.get(t);\n return e || (e = new ze(M), this.J = this.J.insert(t, e)), e;\n }, \n /**\n * Verifies that the user is still interested in this target (by calling\n * `getTargetDataForTarget()`) and that we are not waiting for pending ADDs\n * from watch.\n */\n t.prototype.st = function(t) {\n var e = null !== this.ot(t);\n return e || N(\"WatchChangeAggregator\", \"Detected inactive target\", t), e;\n }, \n /**\n * Returns the TargetData for an active target (i.e. a target that the user\n * is still interested in that has no outstanding target change requests).\n */\n t.prototype.ot = function(t) {\n var e = this.G.get(t);\n return e && e.k ? null : this.W.lt(t);\n }, \n /**\n * Resets the state of a Watch target to its initial state (e.g. sets\n * 'current' to false, clears the resume token and removes its target mapping\n * from all documents).\n */\n t.prototype.it = function(t) {\n var e = this;\n this.G.set(t, new hn), this.W.getRemoteKeysForTarget(t).forEach((function(n) {\n e.tt(t, n, /*updatedDocument=*/ null);\n }));\n }, \n /**\n * Returns whether the LocalStore considers the document to be part of the\n * specified target.\n */\n t.prototype.at = function(t, e) {\n return this.W.getRemoteKeysForTarget(t).has(e);\n }, t;\n}();\n\n/**\n * A TargetChange specifies the set of changes for a specific target as part of\n * a RemoteEvent. These changes track which documents are added, modified or\n * removed, as well as the target's resume token and whether the target is\n * marked CURRENT.\n * The actual changes *to* documents are not part of the TargetChange since\n * documents may be part of multiple targets.\n */ function ln() {\n return new Ke(st.comparator);\n}\n\nfunction dn() {\n return new Ke(st.comparator);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var pn = {\n asc: \"ASCENDING\",\n desc: \"DESCENDING\"\n}, yn = {\n \"<\": \"LESS_THAN\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"==\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"array-contains\": \"ARRAY_CONTAINS\",\n in: \"IN\",\n \"not-in\": \"NOT_IN\",\n \"array-contains-any\": \"ARRAY_CONTAINS_ANY\"\n}, vn = function(t, e) {\n this.databaseId = t, this.I = e;\n};\n\n/**\n * This class generates JsonObject values for the Datastore API suitable for\n * sending to either GRPC stub methods or via the JSON/HTTP REST API.\n *\n * The serializer supports both Protobuf.js and Proto3 JSON formats. By\n * setting `useProto3Json` to true, the serializer will use the Proto3 JSON\n * format.\n *\n * For a description of the Proto3 JSON format check\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n *\n * TODO(klimt): We can remove the databaseId argument if we keep the full\n * resource name in documents.\n */\n/**\n * Returns a value for a Date that's appropriate to put into a proto.\n */\nfunction mn(t, e) {\n return t.I ? new Date(1e3 * e.seconds).toISOString().replace(/\\.\\d*/, \"\").replace(\"Z\", \"\") + \".\" + (\"000000000\" + e.nanoseconds).slice(-9) + \"Z\" : {\n seconds: \"\" + e.seconds,\n nanos: e.nanoseconds\n };\n}\n\n/**\n * Returns a value for bytes that's appropriate to put in a proto.\n *\n * Visible for testing.\n */ function gn(t, e) {\n return t.I ? e.toBase64() : e.toUint8Array();\n}\n\n/**\n * Returns a ByteString based on the proto string value.\n */ function wn(t, e) {\n return mn(t, e.toTimestamp());\n}\n\nfunction bn(t) {\n return R(!!t), U.fromTimestamp(function(t) {\n var e = $(t);\n return new q(e.seconds, e.nanos);\n }(t));\n}\n\nfunction In(t, e) {\n return function(t) {\n return new Q([ \"projects\", t.projectId, \"databases\", t.database ]);\n }(t).child(\"documents\").child(e).canonicalString();\n}\n\nfunction _n(t) {\n var e = Q.fromString(t);\n return R(zn(e)), e;\n}\n\nfunction En(t, e) {\n return In(t.databaseId, e.path);\n}\n\nfunction Tn(t, e) {\n var n = _n(e);\n if (n.get(1) !== t.databaseId.projectId) throw new T(E.INVALID_ARGUMENT, \"Tried to deserialize key from different project: \" + n.get(1) + \" vs \" + t.databaseId.projectId);\n if (n.get(3) !== t.databaseId.database) throw new T(E.INVALID_ARGUMENT, \"Tried to deserialize key from different database: \" + n.get(3) + \" vs \" + t.databaseId.database);\n return new st(An(n));\n}\n\nfunction Sn(t, e) {\n return In(t.databaseId, e);\n}\n\nfunction Dn(t) {\n var e = _n(t);\n // In v1beta1 queries for collections at the root did not have a trailing\n // \"/documents\". In v1 all resource paths contain \"/documents\". Preserve the\n // ability to read the v1beta1 form for compatibility with queries persisted\n // in the local target cache.\n return 4 === e.length ? Q.emptyPath() : An(e);\n}\n\nfunction Nn(t) {\n return new Q([ \"projects\", t.databaseId.projectId, \"databases\", t.databaseId.database ]).canonicalString();\n}\n\nfunction An(t) {\n return R(t.length > 4 && \"documents\" === t.get(4)), t.popFirst(5)\n /** Creates a Document proto from key and fields (but no create/update time) */;\n}\n\nfunction kn(t, e, n) {\n return {\n name: En(t, e),\n fields: n.toProto().mapValue.fields\n };\n}\n\nfunction xn(t, e, n) {\n var r = Tn(t, e.name), i = bn(e.updateTime), o = new bt({\n mapValue: {\n fields: e.fields\n }\n }), s = _t.newFoundDocument(r, i, o);\n return n && s.setHasCommittedMutations(), n ? s.setHasCommittedMutations() : s;\n}\n\nfunction Cn(t, e) {\n var n;\n if (e instanceof Ce) n = {\n update: kn(t, e.key, e.value)\n }; else if (e instanceof Ve) n = {\n delete: En(t, e.key)\n }; else if (e instanceof Re) n = {\n update: kn(t, e.key, e.data),\n updateMask: Qn(e.fieldMask)\n }; else {\n if (!(e instanceof qe)) return C();\n n = {\n verify: En(t, e.key)\n };\n }\n return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((function(t) {\n return function(t, e) {\n var n = e.transform;\n if (n instanceof de) return {\n fieldPath: e.field.canonicalString(),\n setToServerValue: \"REQUEST_TIME\"\n };\n if (n instanceof pe) return {\n fieldPath: e.field.canonicalString(),\n appendMissingElements: {\n values: n.elements\n }\n };\n if (n instanceof ve) return {\n fieldPath: e.field.canonicalString(),\n removeAllFromArray: {\n values: n.elements\n }\n };\n if (n instanceof ge) return {\n fieldPath: e.field.canonicalString(),\n increment: n.A\n };\n throw C();\n }(0, t);\n }))), e.precondition.isNone || (n.currentDocument = function(t, e) {\n return void 0 !== e.updateTime ? {\n updateTime: wn(t, e.updateTime)\n } : void 0 !== e.exists ? {\n exists: e.exists\n } : C();\n }(t, e.precondition)), n;\n}\n\nfunction Rn(t, e) {\n var n = e.currentDocument ? function(t) {\n return void 0 !== t.updateTime ? Ee.updateTime(bn(t.updateTime)) : void 0 !== t.exists ? Ee.exists(t.exists) : Ee.none();\n }(e.currentDocument) : Ee.none(), r = e.updateTransforms ? e.updateTransforms.map((function(e) {\n return function(t, e) {\n var n = null;\n if (\"setToServerValue\" in e) R(\"REQUEST_TIME\" === e.setToServerValue), n = new de; else if (\"appendMissingElements\" in e) {\n var r = e.appendMissingElements.values || [];\n n = new pe(r);\n } else if (\"removeAllFromArray\" in e) {\n var i = e.removeAllFromArray.values || [];\n n = new ve(i);\n } else \"increment\" in e ? n = new ge(t, e.increment) : C();\n var o = W.fromServerFormat(e.fieldPath);\n return new Ie(o, n);\n }(t, e);\n })) : [];\n if (e.update) {\n e.update.name;\n var i = Tn(t, e.update.name), o = new bt({\n mapValue: {\n fields: e.update.fields\n }\n });\n if (e.updateMask) {\n var s = function(t) {\n var e = t.fieldPaths || [];\n return new H(e.map((function(t) {\n return W.fromServerFormat(t);\n })));\n }(e.updateMask);\n return new Re(i, o, s, n, r);\n }\n return new Ce(i, o, n, r);\n }\n if (e.delete) {\n var u = Tn(t, e.delete);\n return new Ve(u, n);\n }\n if (e.verify) {\n var a = Tn(t, e.verify);\n return new qe(a, n);\n }\n return C();\n}\n\nfunction On(t, e) {\n return {\n documents: [ Sn(t, e.path) ]\n };\n}\n\nfunction Ln(t, e) {\n // Dissect the path into parent, collectionId, and optional key filter.\n var n = {\n structuredQuery: {}\n }, r = e.path;\n null !== e.collectionGroup ? (n.parent = Sn(t, r), n.structuredQuery.from = [ {\n collectionId: e.collectionGroup,\n allDescendants: !0\n } ]) : (n.parent = Sn(t, r.popLast()), n.structuredQuery.from = [ {\n collectionId: r.lastSegment()\n } ]);\n var i = function(t) {\n if (0 !== t.length) {\n var e = t.map((function(t) {\n // visible for testing\n return function(t) {\n if (\"==\" /* EQUAL */ === t.op) {\n if (gt(t.value)) return {\n unaryFilter: {\n field: Bn(t.field),\n op: \"IS_NAN\"\n }\n };\n if (mt(t.value)) return {\n unaryFilter: {\n field: Bn(t.field),\n op: \"IS_NULL\"\n }\n };\n } else if (\"!=\" /* NOT_EQUAL */ === t.op) {\n if (gt(t.value)) return {\n unaryFilter: {\n field: Bn(t.field),\n op: \"IS_NOT_NAN\"\n }\n };\n if (mt(t.value)) return {\n unaryFilter: {\n field: Bn(t.field),\n op: \"IS_NOT_NULL\"\n }\n };\n }\n return {\n fieldFilter: {\n field: Bn(t.field),\n op: Un(t.op),\n value: t.value\n }\n };\n }(t);\n }));\n return 1 === e.length ? e[0] : {\n compositeFilter: {\n op: \"AND\",\n filters: e\n }\n };\n }\n }(e.filters);\n i && (n.structuredQuery.where = i);\n var o = function(t) {\n if (0 !== t.length) return t.map((function(t) {\n // visible for testing\n return function(t) {\n return {\n field: Bn(t.field),\n direction: qn(t.dir)\n };\n }(t);\n }));\n }(e.orderBy);\n o && (n.structuredQuery.orderBy = o);\n var s = function(t, e) {\n return t.I || rt(e) ? e : {\n value: e\n };\n }(t, e.limit);\n return null !== s && (n.structuredQuery.limit = s), e.startAt && (n.structuredQuery.startAt = Fn(e.startAt)), \n e.endAt && (n.structuredQuery.endAt = Fn(e.endAt)), n;\n}\n\nfunction Pn(t) {\n var e = Dn(t.parent), n = t.structuredQuery, r = n.from ? n.from.length : 0, i = null;\n if (r > 0) {\n R(1 === r);\n var o = n.from[0];\n o.allDescendants ? i = o.collectionId : e = e.child(o.collectionId);\n }\n var s = [];\n n.where && (s = Mn(n.where));\n var u = [];\n n.orderBy && (u = n.orderBy.map((function(t) {\n return function(t) {\n return new qt(jn(t.field), \n // visible for testing\n function(t) {\n switch (t) {\n case \"ASCENDING\":\n return \"asc\" /* ASCENDING */;\n\n case \"DESCENDING\":\n return \"desc\" /* DESCENDING */;\n\n default:\n return;\n }\n }(t.direction));\n }(t);\n })));\n var a = null;\n n.limit && (a = function(t) {\n var e;\n return rt(e = \"object\" == typeof t ? t.value : t) ? null : e;\n }(n.limit));\n var c = null;\n n.startAt && (c = Vn(n.startAt));\n var h = null;\n return n.endAt && (h = Vn(n.endAt)), Gt(e, i, u, s, a, \"F\" /* First */ , c, h);\n}\n\nfunction Mn(t) {\n return t ? void 0 !== t.unaryFilter ? [ Gn(t) ] : void 0 !== t.fieldFilter ? [ Kn(t) ] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map((function(t) {\n return Mn(t);\n })).reduce((function(t, e) {\n return t.concat(e);\n })) : C() : [];\n}\n\nfunction Fn(t) {\n return {\n before: t.before,\n values: t.position\n };\n}\n\nfunction Vn(t) {\n var e = !!t.before, n = t.values || [];\n return new Ft(n, e);\n}\n\n// visible for testing\nfunction qn(t) {\n return pn[t];\n}\n\nfunction Un(t) {\n return yn[t];\n}\n\nfunction Bn(t) {\n return {\n fieldPath: t.canonicalString()\n };\n}\n\nfunction jn(t) {\n return W.fromServerFormat(t.fieldPath);\n}\n\nfunction Kn(t) {\n return At.create(jn(t.fieldFilter.field), function(t) {\n switch (t) {\n case \"EQUAL\":\n return \"==\" /* EQUAL */;\n\n case \"NOT_EQUAL\":\n return \"!=\" /* NOT_EQUAL */;\n\n case \"GREATER_THAN\":\n return \">\" /* GREATER_THAN */;\n\n case \"GREATER_THAN_OR_EQUAL\":\n return \">=\" /* GREATER_THAN_OR_EQUAL */;\n\n case \"LESS_THAN\":\n return \"<\" /* LESS_THAN */;\n\n case \"LESS_THAN_OR_EQUAL\":\n return \"<=\" /* LESS_THAN_OR_EQUAL */;\n\n case \"ARRAY_CONTAINS\":\n return \"array-contains\" /* ARRAY_CONTAINS */;\n\n case \"IN\":\n return \"in\" /* IN */;\n\n case \"NOT_IN\":\n return \"not-in\" /* NOT_IN */;\n\n case \"ARRAY_CONTAINS_ANY\":\n return \"array-contains-any\" /* ARRAY_CONTAINS_ANY */;\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return C();\n }\n }(t.fieldFilter.op), t.fieldFilter.value);\n}\n\nfunction Gn(t) {\n switch (t.unaryFilter.op) {\n case \"IS_NAN\":\n var e = jn(t.unaryFilter.field);\n return At.create(e, \"==\" /* EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NULL\":\n var n = jn(t.unaryFilter.field);\n return At.create(n, \"==\" /* EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"IS_NOT_NAN\":\n var r = jn(t.unaryFilter.field);\n return At.create(r, \"!=\" /* NOT_EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NOT_NULL\":\n var i = jn(t.unaryFilter.field);\n return At.create(i, \"!=\" /* NOT_EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return C();\n }\n}\n\nfunction Qn(t) {\n var e = [];\n return t.fields.forEach((function(t) {\n return e.push(t.canonicalString());\n })), {\n fieldPaths: e\n };\n}\n\nfunction zn(t) {\n // Resource names have at least 4 components (project ID, database ID)\n return t.length >= 4 && \"projects\" === t.get(0) && \"databases\" === t.get(2);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Encodes a resource path into a IndexedDb-compatible string form.\n */ function Wn(t) {\n for (var e = \"\", n = 0; n < t.length; n++) e.length > 0 && (e = Yn(e)), e = Hn(t.get(n), e);\n return Yn(e);\n}\n\n/** Encodes a single segment of a resource path into the given result */ function Hn(t, e) {\n for (var n = e, r = t.length, i = 0; i < r; i++) {\n var o = t.charAt(i);\n switch (o) {\n case \"\\0\":\n n += \"\u0001\u0010\";\n break;\n\n case \"\u0001\":\n n += \"\u0001\u0011\";\n break;\n\n default:\n n += o;\n }\n }\n return n;\n}\n\n/** Encodes a path separator into the given result */ function Yn(t) {\n return t + \"\u0001\u0001\";\n}\n\n/**\n * Decodes the given IndexedDb-compatible string form of a resource path into\n * a ResourcePath instance. Note that this method is not suitable for use with\n * decoding resource names from the server; those are One Platform format\n * strings.\n */ function Xn(t) {\n // Event the empty path must encode as a path of at least length 2. A path\n // with exactly 2 must be the empty path.\n var e = t.length;\n if (R(e >= 2), 2 === e) return R(\"\u0001\" === t.charAt(0) && \"\u0001\" === t.charAt(1)), Q.emptyPath();\n // Escape characters cannot exist past the second-to-last position in the\n // source value.\n for (var n = e - 2, r = [], i = \"\", o = 0; o < e; ) {\n // The last two characters of a valid encoded path must be a separator, so\n // there must be an end to this segment.\n var s = t.indexOf(\"\u0001\", o);\n switch ((s < 0 || s > n) && C(), t.charAt(s + 1)) {\n case \"\u0001\":\n var u = t.substring(o, s), a = void 0;\n 0 === i.length ? \n // Avoid copying for the common case of a segment that excludes \\0\n // and \\001\n a = u : (a = i += u, i = \"\"), r.push(a);\n break;\n\n case \"\u0010\":\n i += t.substring(o, s), i += \"\\0\";\n break;\n\n case \"\u0011\":\n // The escape character can be used in the output to encode itself.\n i += t.substring(o, s + 1);\n break;\n\n default:\n C();\n }\n o = s + 2;\n }\n return new Q(r);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Schema Version for the Web client:\n * 1. Initial version including Mutation Queue, Query Cache, and Remote\n * Document Cache\n * 2. Used to ensure a targetGlobal object exists and add targetCount to it. No\n * longer required because migration 3 unconditionally clears it.\n * 3. Dropped and re-created Query Cache to deal with cache corruption related\n * to limbo resolution. Addresses\n * https://github.com/firebase/firebase-ios-sdk/issues/1548\n * 4. Multi-Tab Support.\n * 5. Removal of held write acks.\n * 6. Create document global for tracking document cache size.\n * 7. Ensure every cached document has a sentinel row with a sequence number.\n * 8. Add collection-parent index for Collection Group queries.\n * 9. Change RemoteDocumentChanges store to be keyed by readTime rather than\n * an auto-incrementing ID. This is required for Index-Free queries.\n * 10. Rewrite the canonical IDs to the explicit Protobuf-based format.\n * 11. Add bundles and named_queries for bundle support.\n */\n/**\n * Wrapper class to store timestamps (seconds and nanos) in IndexedDb objects.\n */ var $n = function(t, e) {\n this.seconds = t, this.nanoseconds = e;\n}, Jn = function(t, \n/** Whether to allow shared access from multiple tabs. */\ne, n) {\n this.ownerId = t, this.allowTabSynchronization = e, this.leaseTimestampMs = n;\n};\n\n/**\n * A singleton object to be stored in the 'owner' store in IndexedDb.\n *\n * A given database can have a single primary tab assigned at a given time. That\n * tab must validate that it is still holding the primary lease before every\n * operation that requires locked access. The primary tab should regularly\n * write an updated timestamp to this lease to prevent other tabs from\n * \"stealing\" the primary lease\n */\n/**\n * Name of the IndexedDb object store.\n *\n * Note that the name 'owner' is chosen to ensure backwards compatibility with\n * older clients that only supported single locked access to the persistence\n * layer.\n */\nJn.store = \"owner\", \n/**\n * The key string used for the single object that exists in the\n * DbPrimaryClient store.\n */\nJn.key = \"owner\";\n\n/**\n * An object to be stored in the 'mutationQueues' store in IndexedDb.\n *\n * Each user gets a single queue of MutationBatches to apply to the server.\n * DbMutationQueue tracks the metadata about the queue.\n */\nvar Zn = function(\n/**\n * The normalized user ID to which this queue belongs.\n */\nt, \n/**\n * An identifier for the highest numbered batch that has been acknowledged\n * by the server. All MutationBatches in this queue with batchIds less\n * than or equal to this value are considered to have been acknowledged by\n * the server.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\ne, \n/**\n * A stream token that was previously sent by the server.\n *\n * See StreamingWriteRequest in datastore.proto for more details about\n * usage.\n *\n * After sending this token, earlier tokens may not be used anymore so\n * only a single stream token is retained.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\nn) {\n this.userId = t, this.lastAcknowledgedBatchId = e, this.lastStreamToken = n;\n};\n\n/** Name of the IndexedDb object store. */ Zn.store = \"mutationQueues\", \n/** Keys are automatically assigned via the userId property. */\nZn.keyPath = \"userId\";\n\n/**\n * An object to be stored in the 'mutations' store in IndexedDb.\n *\n * Represents a batch of user-level mutations intended to be sent to the server\n * in a single write. Each user-level batch gets a separate DbMutationBatch\n * with a new batchId.\n */\nvar tr = function(\n/**\n * The normalized user ID to which this batch belongs.\n */\nt, \n/**\n * An identifier for this batch, allocated using an auto-generated key.\n */\ne, \n/**\n * The local write time of the batch, stored as milliseconds since the\n * epoch.\n */\nn, \n/**\n * A list of \"mutations\" that represent a partial base state from when this\n * write batch was initially created. During local application of the write\n * batch, these baseMutations are applied prior to the real writes in order\n * to override certain document fields from the remote document cache. This\n * is necessary in the case of non-idempotent writes (e.g. `increment()`\n * transforms) to make sure that the local view of the modified documents\n * doesn't flicker if the remote document cache receives the result of the\n * non-idempotent write before the write is removed from the queue.\n *\n * These mutations are never sent to the backend.\n */\nr, \n/**\n * A list of mutations to apply. All mutations will be applied atomically.\n *\n * Mutations are serialized via toMutation().\n */\ni) {\n this.userId = t, this.batchId = e, this.localWriteTimeMs = n, this.baseMutations = r, \n this.mutations = i;\n};\n\n/** Name of the IndexedDb object store. */ tr.store = \"mutations\", \n/** Keys are automatically assigned via the userId, batchId properties. */\ntr.keyPath = \"batchId\", \n/** The index name for lookup of mutations by user. */\ntr.userMutationsIndex = \"userMutationsIndex\", \n/** The user mutations index is keyed by [userId, batchId] pairs. */\ntr.userMutationsKeyPath = [ \"userId\", \"batchId\" ];\n\n/**\n * An object to be stored in the 'documentMutations' store in IndexedDb.\n *\n * A manually maintained index of all the mutation batches that affect a given\n * document key. The rows in this table are references based on the contents of\n * DbMutationBatch.mutations.\n */\nvar er = /** @class */ function() {\n function t() {}\n /**\n * Creates a [userId] key for use in the DbDocumentMutations index to iterate\n * over all of a user's document mutations.\n */ return t.prefixForUser = function(t) {\n return [ t ];\n }, \n /**\n * Creates a [userId, encodedPath] key for use in the DbDocumentMutations\n * index to iterate over all at document mutations for a given path or lower.\n */\n t.prefixForPath = function(t, e) {\n return [ t, Wn(e) ];\n }, \n /**\n * Creates a full index key of [userId, encodedPath, batchId] for inserting\n * and deleting into the DbDocumentMutations index.\n */\n t.key = function(t, e, n) {\n return [ t, Wn(e), n ];\n }, t;\n}();\n\ner.store = \"documentMutations\", \n/**\n * Because we store all the useful information for this store in the key,\n * there is no useful information to store as the value. The raw (unencoded)\n * path cannot be stored because IndexedDb doesn't store prototype\n * information.\n */\ner.PLACEHOLDER = new er;\n\n/**\n * Represents the known absence of a document at a particular version.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */\nvar nr = function(t, e) {\n this.path = t, this.readTime = e;\n}, rr = function(t, e) {\n this.path = t, this.version = e;\n}, ir = \n// TODO: We are currently storing full document keys almost three times\n// (once as part of the primary key, once - partly - as `parentPath` and once\n// inside the encoded documents). During our next migration, we should\n// rewrite the primary key as parentPath + document ID which would allow us\n// to drop one value.\nfunction(\n/**\n * Set to an instance of DbUnknownDocument if the data for a document is\n * not known, but it is known that a document exists at the specified\n * version (e.g. it had a successful update applied to it)\n */\nt, \n/**\n * Set to an instance of a DbNoDocument if it is known that no document\n * exists.\n */\ne, \n/**\n * Set to an instance of a Document if there's a cached version of the\n * document.\n */\nn, \n/**\n * Documents that were written to the remote document store based on\n * a write acknowledgment are marked with `hasCommittedMutations`. These\n * documents are potentially inconsistent with the backend's copy and use\n * the write's commit version as their document version.\n */\nr, \n/**\n * When the document was read from the backend. Undefined for data written\n * prior to schema version 9.\n */\ni, \n/**\n * The path of the collection this document is part of. Undefined for data\n * written prior to schema version 9.\n */\no) {\n this.unknownDocument = t, this.noDocument = e, this.document = n, this.hasCommittedMutations = r, \n this.readTime = i, this.parentPath = o;\n};\n\n/**\n * Represents a document that is known to exist but whose data is unknown.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */ ir.store = \"remoteDocuments\", \n/**\n * An index that provides access to all entries sorted by read time (which\n * corresponds to the last modification time of each row).\n *\n * This index is used to provide a changelog for Multi-Tab.\n */\nir.readTimeIndex = \"readTimeIndex\", ir.readTimeIndexPath = \"readTime\", \n/**\n * An index that provides access to documents in a collection sorted by read\n * time.\n *\n * This index is used to allow the RemoteDocumentCache to fetch newly changed\n * documents in a collection.\n */\nir.collectionReadTimeIndex = \"collectionReadTimeIndex\", ir.collectionReadTimeIndexPath = [ \"parentPath\", \"readTime\" ];\n\n/**\n * Contains a single entry that has metadata about the remote document cache.\n */\nvar or = \n/**\n * @param byteSize - Approximately the total size in bytes of all the\n * documents in the document cache.\n */\nfunction(t) {\n this.byteSize = t;\n};\n\nor.store = \"remoteDocumentGlobal\", or.key = \"remoteDocumentGlobalKey\";\n\n/**\n * An object to be stored in the 'targets' store in IndexedDb.\n *\n * This is based on and should be kept in sync with the proto used in the iOS\n * client.\n *\n * Each query the client listens to against the server is tracked on disk so\n * that the query can be efficiently resumed on restart.\n */\nvar sr = function(\n/**\n * An auto-generated sequential numeric identifier for the query.\n *\n * Queries are stored using their canonicalId as the key, but these\n * canonicalIds can be quite long so we additionally assign a unique\n * queryId which can be used by referenced data structures (e.g.\n * indexes) to minimize the on-disk cost.\n */\nt, \n/**\n * The canonical string representing this query. This is not unique.\n */\ne, \n/**\n * The last readTime received from the Watch Service for this query.\n *\n * This is the same value as TargetChange.read_time in the protos.\n */\nn, \n/**\n * An opaque, server-assigned token that allows watching a query to be\n * resumed after disconnecting without retransmitting all the data\n * that matches the query. The resume token essentially identifies a\n * point in time from which the server should resume sending results.\n *\n * This is related to the snapshotVersion in that the resumeToken\n * effectively also encodes that value, but the resumeToken is opaque\n * and sometimes encodes additional information.\n *\n * A consequence of this is that the resumeToken should be used when\n * asking the server to reason about where this client is in the watch\n * stream, but the client should use the snapshotVersion for its own\n * purposes.\n *\n * This is the same value as TargetChange.resume_token in the protos.\n */\nr, \n/**\n * A sequence number representing the last time this query was\n * listened to, used for garbage collection purposes.\n *\n * Conventionally this would be a timestamp value, but device-local\n * clocks are unreliable and they must be able to create new listens\n * even while disconnected. Instead this should be a monotonically\n * increasing number that's incremented on each listen call.\n *\n * This is different from the queryId since the queryId is an\n * immutable identifier assigned to the Query on first use while\n * lastListenSequenceNumber is updated every time the query is\n * listened to.\n */\ni, \n/**\n * Denotes the maximum snapshot version at which the associated query view\n * contained no limbo documents. Undefined for data written prior to\n * schema version 9.\n */\no, \n/**\n * The query for this target.\n *\n * Because canonical ids are not unique we must store the actual query. We\n * use the proto to have an object we can persist without having to\n * duplicate translation logic to and from a `Query` object.\n */\ns) {\n this.targetId = t, this.canonicalId = e, this.readTime = n, this.resumeToken = r, \n this.lastListenSequenceNumber = i, this.lastLimboFreeSnapshotVersion = o, this.query = s;\n};\n\nsr.store = \"targets\", \n/** Keys are automatically assigned via the targetId property. */\nsr.keyPath = \"targetId\", \n/** The name of the queryTargets index. */\nsr.queryTargetsIndexName = \"queryTargetsIndex\", \n/**\n * The index of all canonicalIds to the targets that they match. This is not\n * a unique mapping because canonicalId does not promise a unique name for all\n * possible queries, so we append the targetId to make the mapping unique.\n */\nsr.queryTargetsKeyPath = [ \"canonicalId\", \"targetId\" ];\n\n/**\n * An object representing an association between a target and a document, or a\n * sentinel row marking the last sequence number at which a document was used.\n * Each document cached must have a corresponding sentinel row before lru\n * garbage collection is enabled.\n *\n * The target associations and sentinel rows are co-located so that orphaned\n * documents and their sequence numbers can be identified efficiently via a scan\n * of this store.\n */\nvar ur = function(\n/**\n * The targetId identifying a target or 0 for a sentinel row.\n */\nt, \n/**\n * The path to the document, as encoded in the key.\n */\ne, \n/**\n * If this is a sentinel row, this should be the sequence number of the last\n * time the document specified by `path` was used. Otherwise, it should be\n * `undefined`.\n */\nn) {\n this.targetId = t, this.path = e, this.sequenceNumber = n;\n};\n\n/** Name of the IndexedDb object store. */ ur.store = \"targetDocuments\", \n/** Keys are automatically assigned via the targetId, path properties. */\nur.keyPath = [ \"targetId\", \"path\" ], \n/** The index name for the reverse index. */\nur.documentTargetsIndex = \"documentTargetsIndex\", \n/** We also need to create the reverse index for these properties. */\nur.documentTargetsKeyPath = [ \"path\", \"targetId\" ];\n\n/**\n * A record of global state tracked across all Targets, tracked separately\n * to avoid the need for extra indexes.\n *\n * This should be kept in-sync with the proto used in the iOS client.\n */\nvar ar = function(\n/**\n * The highest numbered target id across all targets.\n *\n * See DbTarget.targetId.\n */\nt, \n/**\n * The highest numbered lastListenSequenceNumber across all targets.\n *\n * See DbTarget.lastListenSequenceNumber.\n */\ne, \n/**\n * A global snapshot version representing the last consistent snapshot we\n * received from the backend. This is monotonically increasing and any\n * snapshots received from the backend prior to this version (e.g. for\n * targets resumed with a resumeToken) should be suppressed (buffered)\n * until the backend has caught up to this snapshot version again. This\n * prevents our cache from ever going backwards in time.\n */\nn, \n/**\n * The number of targets persisted.\n */\nr) {\n this.highestTargetId = t, this.highestListenSequenceNumber = e, this.lastRemoteSnapshotVersion = n, \n this.targetCount = r;\n};\n\n/**\n * The key string used for the single object that exists in the\n * DbTargetGlobal store.\n */ ar.key = \"targetGlobalKey\", ar.store = \"targetGlobal\";\n\n/**\n * An object representing an association between a Collection id (e.g. 'messages')\n * to a parent path (e.g. '/chats/123') that contains it as a (sub)collection.\n * This is used to efficiently find all collections to query when performing\n * a Collection Group query.\n */\nvar cr = function(\n/**\n * The collectionId (e.g. 'messages')\n */\nt, \n/**\n * The path to the parent (either a document location or an empty path for\n * a root-level collection).\n */\ne) {\n this.collectionId = t, this.parent = e;\n};\n\n/** Name of the IndexedDb object store. */ cr.store = \"collectionParents\", \n/** Keys are automatically assigned via the collectionId, parent properties. */\ncr.keyPath = [ \"collectionId\", \"parent\" ];\n\n/**\n * A record of the metadata state of each client.\n *\n * PORTING NOTE: This is used to synchronize multi-tab state and does not need\n * to be ported to iOS or Android.\n */\nvar hr = function(\n// Note: Previous schema versions included a field\n// \"lastProcessedDocumentChangeId\". Don't use anymore.\n/** The auto-generated client id assigned at client startup. */\nt, \n/** The last time this state was updated. */\ne, \n/** Whether the client's network connection is enabled. */\nn, \n/** Whether this client is running in a foreground tab. */\nr) {\n this.clientId = t, this.updateTimeMs = e, this.networkEnabled = n, this.inForeground = r;\n};\n\n/** Name of the IndexedDb object store. */ hr.store = \"clientMetadata\", \n/** Keys are automatically assigned via the clientId properties. */\nhr.keyPath = \"clientId\";\n\n/**\n * A object representing a bundle loaded by the SDK.\n */\nvar fr = function(\n/** The ID of the loaded bundle. */\nt, \n/** The create time of the loaded bundle. */\ne, \n/** The schema version of the loaded bundle. */\nn) {\n this.bundleId = t, this.createTime = e, this.version = n;\n};\n\n/** Name of the IndexedDb object store. */ fr.store = \"bundles\", fr.keyPath = \"bundleId\";\n\n/**\n * A object representing a named query loaded by the SDK via a bundle.\n */\nvar lr = function(\n/** The name of the query. */\nt, \n/** The read time of the results saved in the bundle from the named query. */\ne, \n/** The query saved in the bundle. */\nn) {\n this.name = t, this.readTime = e, this.bundledQuery = n;\n};\n\n/** Name of the IndexedDb object store. */ lr.store = \"namedQueries\", lr.keyPath = \"name\";\n\n// Visible for testing\nvar dr = w(w([], w(w([], w(w([], w(w([], [ Zn.store, tr.store, er.store, ir.store, sr.store, Jn.store, ar.store, ur.store ]), [ hr.store ])), [ or.store ])), [ cr.store ])), [ fr.store, lr.store ]), pr = \"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.\", yr = /** @class */ function() {\n function t() {\n this.onCommittedListeners = [];\n }\n return t.prototype.addOnCommittedListener = function(t) {\n this.onCommittedListeners.push(t);\n }, t.prototype.raiseOnCommittedEvent = function() {\n this.onCommittedListeners.forEach((function(t) {\n return t();\n }));\n }, t;\n}(), vr = function() {\n var t = this;\n this.promise = new Promise((function(e, n) {\n t.resolve = e, t.reject = n;\n }));\n}, mr = /** @class */ function() {\n function t(t) {\n var e = this;\n // NOTE: next/catchCallback will always point to our own wrapper functions,\n // not the user's raw next() or catch() callbacks.\n this.nextCallback = null, this.catchCallback = null, \n // When the operation resolves, we'll set result or error and mark isDone.\n this.result = void 0, this.error = void 0, this.isDone = !1, \n // Set to true when .then() or .catch() are called and prevents additional\n // chaining.\n this.callbackAttached = !1, t((function(t) {\n e.isDone = !0, e.result = t, e.nextCallback && \n // value should be defined unless T is Void, but we can't express\n // that in the type system.\n e.nextCallback(t);\n }), (function(t) {\n e.isDone = !0, e.error = t, e.catchCallback && e.catchCallback(t);\n }));\n }\n return t.prototype.catch = function(t) {\n return this.next(void 0, t);\n }, t.prototype.next = function(e, n) {\n var r = this;\n return this.callbackAttached && C(), this.callbackAttached = !0, this.isDone ? this.error ? this.wrapFailure(n, this.error) : this.wrapSuccess(e, this.result) : new t((function(t, i) {\n r.nextCallback = function(n) {\n r.wrapSuccess(e, n).next(t, i);\n }, r.catchCallback = function(e) {\n r.wrapFailure(n, e).next(t, i);\n };\n }));\n }, t.prototype.toPromise = function() {\n var t = this;\n return new Promise((function(e, n) {\n t.next(e, n);\n }));\n }, t.prototype.wrapUserFunction = function(e) {\n try {\n var n = e();\n return n instanceof t ? n : t.resolve(n);\n } catch (e) {\n return t.reject(e);\n }\n }, t.prototype.wrapSuccess = function(e, n) {\n return e ? this.wrapUserFunction((function() {\n return e(n);\n })) : t.resolve(n);\n }, t.prototype.wrapFailure = function(e, n) {\n return e ? this.wrapUserFunction((function() {\n return e(n);\n })) : t.reject(n);\n }, t.resolve = function(e) {\n return new t((function(t, n) {\n t(e);\n }));\n }, t.reject = function(e) {\n return new t((function(t, n) {\n n(e);\n }));\n }, t.waitFor = function(\n // Accept all Promise types in waitFor().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n e) {\n return new t((function(t, n) {\n var r = 0, i = 0, o = !1;\n e.forEach((function(e) {\n ++r, e.next((function() {\n ++i, o && i === r && t();\n }), (function(t) {\n return n(t);\n }));\n })), o = !0, i === r && t();\n }));\n }, \n /**\n * Given an array of predicate functions that asynchronously evaluate to a\n * boolean, implements a short-circuiting `or` between the results. Predicates\n * will be evaluated until one of them returns `true`, then stop. The final\n * result will be whether any of them returned `true`.\n */\n t.or = function(e) {\n for (var n = t.resolve(!1), r = function(e) {\n n = n.next((function(n) {\n return n ? t.resolve(n) : e();\n }));\n }, i = 0, o = e; i < o.length; i++) {\n r(o[i]);\n }\n return n;\n }, t.forEach = function(t, e) {\n var n = this, r = [];\n return t.forEach((function(t, i) {\n r.push(e.call(n, t, i));\n })), this.waitFor(r);\n }, t;\n}(), gr = /** @class */ function() {\n function t(t, e) {\n var n = this;\n this.action = t, this.transaction = e, this.aborted = !1, \n /**\n * A promise that resolves with the result of the IndexedDb transaction.\n */\n this.ft = new vr, this.transaction.oncomplete = function() {\n n.ft.resolve();\n }, this.transaction.onabort = function() {\n e.error ? n.ft.reject(new Ir(t, e.error)) : n.ft.resolve();\n }, this.transaction.onerror = function(e) {\n var r = Dr(e.target.error);\n n.ft.reject(new Ir(t, r));\n };\n }\n return t.open = function(e, n, r, i) {\n try {\n return new t(n, e.transaction(i, r));\n } catch (e) {\n throw new Ir(n, e);\n }\n }, Object.defineProperty(t.prototype, \"dt\", {\n get: function() {\n return this.ft.promise;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.abort = function(t) {\n t && this.ft.reject(t), this.aborted || (N(\"SimpleDb\", \"Aborting transaction:\", t ? t.message : \"Client-initiated abort\"), \n this.aborted = !0, this.transaction.abort());\n }, \n /**\n * Returns a SimpleDbStore for the specified store. All\n * operations performed on the SimpleDbStore happen within the context of this\n * transaction and it cannot be used anymore once the transaction is\n * completed.\n *\n * Note that we can't actually enforce that the KeyType and ValueType are\n * correct, but they allow type safety through the rest of the consuming code.\n */\n t.prototype.store = function(t) {\n var e = this.transaction.objectStore(t);\n return new Er(e);\n }, t;\n}(), wr = /** @class */ function() {\n /*\n * Creates a new SimpleDb wrapper for IndexedDb database `name`.\n *\n * Note that `version` must not be a downgrade. IndexedDB does not support\n * downgrading the schema version. We currently do not support any way to do\n * versioning outside of IndexedDB's versioning mechanism, as only\n * version-upgrade transactions are allowed to do things like create\n * objectstores.\n */\n function e(n, r, i) {\n this.name = n, this.version = r, this.wt = i, \n // NOTE: According to https://bugs.webkit.org/show_bug.cgi?id=197050, the\n // bug we're checking for should exist in iOS >= 12.2 and < 13, but for\n // whatever reason it's much harder to hit after 12.2 so we only proactively\n // log on 12.2.\n 12.2 === e._t(t()) && A(\"Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n }\n /** Deletes the specified database. */ return e.delete = function(t) {\n return N(\"SimpleDb\", \"Removing database:\", t), Tr(window.indexedDB.deleteDatabase(t)).toPromise();\n }, \n /** Returns true if IndexedDB is available in the current environment. */ e.yt = function() {\n if (\"undefined\" == typeof indexedDB) return !1;\n if (e.gt()) return !0;\n // We extensively use indexed array values and compound keys,\n // which IE and Edge do not support. However, they still have indexedDB\n // defined on the window, so we need to check for them here and make sure\n // to return that persistence is not enabled for those browsers.\n // For tracking support of this feature, see here:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/status/indexeddbarraysandmultientrysupport/\n // Check the UA string to find out the browser.\n var n = t(), r = e._t(n), i = 0 < r && r < 10, o = e.Et(n), s = 0 < o && o < 4.5;\n // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n // Edge\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,\n // like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n // iOS Safari: Disable for users running iOS version < 10.\n return !(n.indexOf(\"MSIE \") > 0 || n.indexOf(\"Trident/\") > 0 || n.indexOf(\"Edge/\") > 0 || i || s);\n }, \n /**\n * Returns true if the backing IndexedDB store is the Node IndexedDBShim\n * (see https://github.com/axemclion/IndexedDBShim).\n */\n e.gt = function() {\n var t;\n return \"undefined\" != typeof process && \"YES\" === (null === (t = process.env) || void 0 === t ? void 0 : t.Tt);\n }, \n /** Helper to get a typed SimpleDbStore from a transaction. */ e.It = function(t, e) {\n return t.store(e);\n }, \n // visible for testing\n /** Parse User Agent to determine iOS version. Returns -1 if not found. */\n e._t = function(t) {\n var e = t.match(/i(?:phone|pad|pod) os ([\\d_]+)/i), n = e ? e[1].split(\"_\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }, \n // visible for testing\n /** Parse User Agent to determine Android version. Returns -1 if not found. */\n e.Et = function(t) {\n var e = t.match(/Android ([\\d.]+)/i), n = e ? e[1].split(\".\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }, \n /**\n * Opens the specified database, creating or upgrading it if necessary.\n */\n e.prototype.At = function(t) {\n return b(this, void 0, void 0, (function() {\n var e, n = this;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return this.db ? [ 3 /*break*/ , 2 ] : (N(\"SimpleDb\", \"Opening database:\", this.name), \n e = this, [ 4 /*yield*/ , new Promise((function(e, r) {\n // TODO(mikelehen): Investigate browser compatibility.\n // https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB\n // suggests IE9 and older WebKit browsers handle upgrade\n // differently. They expect setVersion, as described here:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeRequest/setVersion\n var i = indexedDB.open(n.name, n.version);\n i.onsuccess = function(t) {\n var n = t.target.result;\n e(n);\n }, i.onblocked = function() {\n r(new Ir(t, \"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed.\"));\n }, i.onerror = function(e) {\n var n = e.target.error;\n \"VersionError\" === n.name ? r(new T(E.FAILED_PRECONDITION, \"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.\")) : r(new Ir(t, n));\n }, i.onupgradeneeded = function(t) {\n N(\"SimpleDb\", 'Database \"' + n.name + '\" requires upgrade from version:', t.oldVersion);\n var e = t.target.result;\n n.wt.Rt(e, i.transaction, t.oldVersion, n.version).next((function() {\n N(\"SimpleDb\", \"Database upgrade to version \" + n.version + \" complete\");\n }));\n };\n })) ]);\n\n case 1:\n e.db = r.sent(), r.label = 2;\n\n case 2:\n return [ 2 /*return*/ , (this.bt && (this.db.onversionchange = function(t) {\n return n.bt(t);\n }), this.db) ];\n }\n }));\n }));\n }, e.prototype.vt = function(t) {\n this.bt = t, this.db && (this.db.onversionchange = function(e) {\n return t(e);\n });\n }, e.prototype.runTransaction = function(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o, s, u, a;\n return I(this, (function(c) {\n switch (c.label) {\n case 0:\n i = \"readonly\" === e, o = 0, s = function() {\n var e, s, a, c, h;\n return I(this, (function(f) {\n switch (f.label) {\n case 0:\n ++o, f.label = 1;\n\n case 1:\n return f.trys.push([ 1, 4, , 5 ]), [ 4 /*yield*/ , u.At(t) ];\n\n case 2:\n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n return u.db = f.sent(), e = gr.open(u.db, t, i ? \"readonly\" : \"readwrite\", n), s = r(e).catch((function(t) {\n // Abort the transaction if there was an error.\n return e.abort(t), mr.reject(t);\n })).toPromise(), a = {}, s.catch((function() {})), [ 4 /*yield*/ , e.dt ];\n\n case 3:\n return [ 2 /*return*/ , (a.value = (\n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n f.sent(), s), a) ];\n\n case 4:\n return c = f.sent(), h = \"FirebaseError\" !== c.name && o < 3, N(\"SimpleDb\", \"Transaction failed with error:\", c.message, \"Retrying:\", h), \n u.close(), h ? [ 3 /*break*/ , 5 ] : [ 2 /*return*/ , {\n value: Promise.reject(c)\n } ];\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }, u = this, c.label = 1;\n\n case 1:\n return [ 5 /*yield**/ , s() ];\n\n case 2:\n if (\"object\" == typeof (a = c.sent())) return [ 2 /*return*/ , a.value ];\n c.label = 3;\n\n case 3:\n return [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, e.prototype.close = function() {\n this.db && this.db.close(), this.db = void 0;\n }, e;\n}(), br = /** @class */ function() {\n function t(t) {\n this.Pt = t, this.Vt = !1, this.St = null;\n }\n return Object.defineProperty(t.prototype, \"isDone\", {\n get: function() {\n return this.Vt;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"Dt\", {\n get: function() {\n return this.St;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"cursor\", {\n set: function(t) {\n this.Pt = t;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * This function can be called to stop iteration at any point.\n */\n t.prototype.done = function() {\n this.Vt = !0;\n }, \n /**\n * This function can be called to skip to that next key, which could be\n * an index or a primary key.\n */\n t.prototype.Ct = function(t) {\n this.St = t;\n }, \n /**\n * Delete the current cursor value from the object store.\n *\n * NOTE: You CANNOT do this with a keysOnly query.\n */\n t.prototype.delete = function() {\n return Tr(this.Pt.delete());\n }, t;\n}(), Ir = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, E.UNAVAILABLE, \"IndexedDB transaction '\" + e + \"' failed: \" + n) || this).name = \"IndexedDbTransactionError\", \n r;\n }\n return g(e, t), e;\n}(T);\n\n// V2 is no longer usable (see comment at top of file)\n// Visible for testing\n/**\n * A base class representing a persistence transaction, encapsulating both the\n * transaction's sequence numbers as well as a list of onCommitted listeners.\n *\n * When you call Persistence.runTransaction(), it will create a transaction and\n * pass it to your callback. You then pass it to any method that operates\n * on persistence.\n */\n/** Verifies whether `e` is an IndexedDbTransactionError. */ function _r(t) {\n // Use name equality, as instanceof checks on errors don't work with errors\n // that wrap other errors.\n return \"IndexedDbTransactionError\" === t.name;\n}\n\n/**\n * A wrapper around an IDBObjectStore providing an API that:\n *\n * 1) Has generic KeyType / ValueType parameters to provide strongly-typed\n * methods for acting against the object store.\n * 2) Deals with IndexedDB's onsuccess / onerror event callbacks, making every\n * method return a PersistencePromise instead.\n * 3) Provides a higher-level API to avoid needing to do excessive wrapping of\n * intermediate IndexedDB types (IDBCursorWithValue, etc.)\n */ var Er = /** @class */ function() {\n function t(t) {\n this.store = t;\n }\n return t.prototype.put = function(t, e) {\n var n;\n return void 0 !== e ? (N(\"SimpleDb\", \"PUT\", this.store.name, t, e), n = this.store.put(e, t)) : (N(\"SimpleDb\", \"PUT\", this.store.name, \"\", t), \n n = this.store.put(t)), Tr(n);\n }, \n /**\n * Adds a new value into an Object Store and returns the new key. Similar to\n * IndexedDb's `add()`, this method will fail on primary key collisions.\n *\n * @param value - The object to write.\n * @returns The key of the value to add.\n */\n t.prototype.add = function(t) {\n return N(\"SimpleDb\", \"ADD\", this.store.name, t, t), Tr(this.store.add(t));\n }, \n /**\n * Gets the object with the specified key from the specified store, or null\n * if no object exists with the specified key.\n *\n * @key The key of the object to get.\n * @returns The object with the specified key or null if no object exists.\n */\n t.prototype.get = function(t) {\n var e = this;\n // We're doing an unsafe cast to ValueType.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Tr(this.store.get(t)).next((function(n) {\n // Normalize nonexistence to null.\n return void 0 === n && (n = null), N(\"SimpleDb\", \"GET\", e.store.name, t, n), n;\n }));\n }, t.prototype.delete = function(t) {\n return N(\"SimpleDb\", \"DELETE\", this.store.name, t), Tr(this.store.delete(t));\n }, \n /**\n * If we ever need more of the count variants, we can add overloads. For now,\n * all we need is to count everything in a store.\n *\n * Returns the number of rows in the store.\n */\n t.prototype.count = function() {\n return N(\"SimpleDb\", \"COUNT\", this.store.name), Tr(this.store.count());\n }, t.prototype.Nt = function(t, e) {\n var n = this.cursor(this.options(t, e)), r = [];\n return this.xt(n, (function(t, e) {\n r.push(e);\n })).next((function() {\n return r;\n }));\n }, t.prototype.Ft = function(t, e) {\n N(\"SimpleDb\", \"DELETE ALL\", this.store.name);\n var n = this.options(t, e);\n n.kt = !1;\n var r = this.cursor(n);\n return this.xt(r, (function(t, e, n) {\n return n.delete();\n }));\n }, t.prototype.Ot = function(t, e) {\n var n;\n e ? n = t : (n = {}, e = t);\n var r = this.cursor(n);\n return this.xt(r, e);\n }, \n /**\n * Iterates over a store, but waits for the given callback to complete for\n * each entry before iterating the next entry. This allows the callback to do\n * asynchronous work to determine if this iteration should continue.\n *\n * The provided callback should return `true` to continue iteration, and\n * `false` otherwise.\n */\n t.prototype.$t = function(t) {\n var e = this.cursor({});\n return new mr((function(n, r) {\n e.onerror = function(t) {\n var e = Dr(t.target.error);\n r(e);\n }, e.onsuccess = function(e) {\n var r = e.target.result;\n r ? t(r.primaryKey, r.value).next((function(t) {\n t ? r.continue() : n();\n })) : n();\n };\n }));\n }, t.prototype.xt = function(t, e) {\n var n = [];\n return new mr((function(r, i) {\n t.onerror = function(t) {\n i(t.target.error);\n }, t.onsuccess = function(t) {\n var i = t.target.result;\n if (i) {\n var o = new br(i), s = e(i.primaryKey, i.value, o);\n if (s instanceof mr) {\n var u = s.catch((function(t) {\n return o.done(), mr.reject(t);\n }));\n n.push(u);\n }\n o.isDone ? r() : null === o.Dt ? i.continue() : i.continue(o.Dt);\n } else r();\n };\n })).next((function() {\n return mr.waitFor(n);\n }));\n }, t.prototype.options = function(t, e) {\n var n;\n return void 0 !== t && (\"string\" == typeof t ? n = t : e = t), {\n index: n,\n range: e\n };\n }, t.prototype.cursor = function(t) {\n var e = \"next\";\n if (t.reverse && (e = \"prev\"), t.index) {\n var n = this.store.index(t.index);\n return t.kt ? n.openKeyCursor(t.range, e) : n.openCursor(t.range, e);\n }\n return this.store.openCursor(t.range, e);\n }, t;\n}();\n\n/**\n * Wraps an IDBRequest in a PersistencePromise, using the onsuccess / onerror\n * handlers to resolve / reject the PersistencePromise as appropriate.\n */ function Tr(t) {\n return new mr((function(e, n) {\n t.onsuccess = function(t) {\n var n = t.target.result;\n e(n);\n }, t.onerror = function(t) {\n var e = Dr(t.target.error);\n n(e);\n };\n }));\n}\n\n// Guard so we only report the error once.\nvar Sr = !1;\n\nfunction Dr(e) {\n var n = wr._t(t());\n if (n >= 12.2 && n < 13) {\n var r = \"An internal error was encountered in the Indexed Database server\";\n if (e.message.indexOf(r) >= 0) {\n // Wrap error in a more descriptive one.\n var i = new T(\"internal\", \"IOS_INDEXEDDB_BUG1: IndexedDb has thrown '\" + r + \"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n return Sr || (Sr = !0, \n // Throw a global exception outside of this promise chain, for the user to\n // potentially catch.\n setTimeout((function() {\n throw i;\n }), 0)), i;\n }\n }\n return e;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var Nr = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).Mt = e, r.currentSequenceNumber = n, r;\n }\n return g(e, t), e;\n}(yr);\n\nfunction Ar(t, e) {\n var n = O(t);\n return wr.It(n.Mt, e);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A batch of mutations that will be sent as one unit to the backend.\n */ var kr = /** @class */ function() {\n /**\n * @param batchId - The unique ID of this mutation batch.\n * @param localWriteTime - The original write time of this mutation.\n * @param baseMutations - Mutations that are used to populate the base\n * values when this mutation is applied locally. This can be used to locally\n * overwrite values that are persisted in the remote document cache. Base\n * mutations are never sent to the backend.\n * @param mutations - The user-provided mutations in this mutation batch.\n * User-provided mutations are applied both locally and remotely on the\n * backend.\n */\n function t(t, e, n, r) {\n this.batchId = t, this.localWriteTime = e, this.baseMutations = n, this.mutations = r\n /**\n * Applies all the mutations in this MutationBatch to the specified document\n * to compute the state of the remote document\n *\n * @param document - The document to apply mutations to.\n * @param batchResult - The result of applying the MutationBatch to the\n * backend.\n */;\n }\n return t.prototype.applyToRemoteDocument = function(t, e) {\n for (var n = e.mutationResults, r = 0; r < this.mutations.length; r++) {\n var i = this.mutations[r];\n i.key.isEqual(t.key) && De(i, t, n[r]);\n }\n }, \n /**\n * Computes the local view of a document given all the mutations in this\n * batch.\n *\n * @param document - The document to apply mutations to.\n */\n t.prototype.applyToLocalView = function(t) {\n // First, apply the base state. This allows us to apply non-idempotent\n // transform against a consistent set of values.\n for (var e = 0, n = this.baseMutations; e < n.length; e++) {\n (o = n[e]).key.isEqual(t.key) && Ne(o, t, this.localWriteTime);\n }\n // Second, apply all user-provided mutations.\n for (var r = 0, i = this.mutations; r < i.length; r++) {\n var o;\n (o = i[r]).key.isEqual(t.key) && Ne(o, t, this.localWriteTime);\n }\n }, \n /**\n * Computes the local view for all provided documents given the mutations in\n * this batch.\n */\n t.prototype.applyToLocalDocumentSet = function(t) {\n var e = this;\n // TODO(mrschmidt): This implementation is O(n^2). If we apply the mutations\n // directly (as done in `applyToLocalView()`), we can reduce the complexity\n // to O(n).\n this.mutations.forEach((function(n) {\n var r = t.get(n.key), i = r;\n // TODO(mutabledocuments): This method should take a MutableDocumentMap\n // and we should remove this cast.\n e.applyToLocalView(i), r.isValidDocument() || i.convertToNoDocument(U.min());\n }));\n }, t.prototype.keys = function() {\n return this.mutations.reduce((function(t, e) {\n return t.add(e.key);\n }), en());\n }, t.prototype.isEqual = function(t) {\n return this.batchId === t.batchId && F(this.mutations, t.mutations, (function(t, e) {\n return ke(t, e);\n })) && F(this.baseMutations, t.baseMutations, (function(t, e) {\n return ke(t, e);\n }));\n }, t;\n}(), xr = /** @class */ function() {\n function t(t, e, n, \n /**\n * A pre-computed mapping from each mutated document to the resulting\n * version.\n */\n r) {\n this.batch = t, this.commitVersion = e, this.mutationResults = n, this.docVersions = r\n /**\n * Creates a new MutationBatchResult for the given batch and results. There\n * must be one result for each mutation in the batch. This static factory\n * caches a document=>version mapping (docVersions).\n */;\n }\n return t.from = function(e, n, r) {\n R(e.mutations.length === r.length);\n for (var i = Ze(), o = e.mutations, s = 0; s < o.length; s++) i = i.insert(o[s].key, r[s].version);\n return new t(e, n, r, i);\n }, t;\n}(), Cr = /** @class */ function() {\n function t(\n /** The target being listened to. */\n t, \n /**\n * The target ID to which the target corresponds; Assigned by the\n * LocalStore for user listens and by the SyncEngine for limbo watches.\n */\n e, \n /** The purpose of the target. */\n n, \n /**\n * The sequence number of the last transaction during which this target data\n * was modified.\n */\n r, \n /** The latest snapshot version seen for this target. */\n i\n /**\n * The maximum snapshot version at which the associated view\n * contained no limbo documents.\n */ , o\n /**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */ , s) {\n void 0 === i && (i = U.min()), void 0 === o && (o = U.min()), void 0 === s && (s = Y.EMPTY_BYTE_STRING), \n this.target = t, this.targetId = e, this.purpose = n, this.sequenceNumber = r, this.snapshotVersion = i, \n this.lastLimboFreeSnapshotVersion = o, this.resumeToken = s;\n }\n /** Creates a new target data instance with an updated sequence number. */ return t.prototype.withSequenceNumber = function(e) {\n return new t(this.target, this.targetId, this.purpose, e, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken);\n }, \n /**\n * Creates a new target data instance with an updated resume token and\n * snapshot version.\n */\n t.prototype.withResumeToken = function(e, n) {\n return new t(this.target, this.targetId, this.purpose, this.sequenceNumber, n, this.lastLimboFreeSnapshotVersion, e);\n }, \n /**\n * Creates a new target data instance with an updated last limbo free\n * snapshot version number.\n */\n t.prototype.withLastLimboFreeSnapshotVersion = function(e) {\n return new t(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, e, this.resumeToken);\n }, t;\n}(), Rr = function(t) {\n this.Lt = t;\n};\n\n/** The result of applying a mutation batch to the backend. */\n/** Decodes a remote document from storage locally to a Document. */ function Or(t, e) {\n if (e.document) return xn(t.Lt, e.document, !!e.hasCommittedMutations);\n if (e.noDocument) {\n var n = st.fromSegments(e.noDocument.path), r = Vr(e.noDocument.readTime), i = _t.newNoDocument(n, r);\n return e.hasCommittedMutations ? i.setHasCommittedMutations() : i;\n }\n if (e.unknownDocument) {\n var o = st.fromSegments(e.unknownDocument.path);\n r = Vr(e.unknownDocument.version);\n return _t.newUnknownDocument(o, r);\n }\n return C();\n}\n\n/** Encodes a document for storage locally. */ function Lr(t, e, n) {\n var r = Pr(n), i = e.key.path.popLast().toArray();\n if (e.isFoundDocument()) {\n var o = function(t, e) {\n return {\n name: En(t, e.key),\n fields: e.data.toProto().mapValue.fields,\n updateTime: mn(t, e.version.toTimestamp())\n };\n }(t.Lt, e), s = e.hasCommittedMutations;\n return new ir(\n /* unknownDocument= */ null, \n /* noDocument= */ null, o, s, r, i);\n }\n if (e.isNoDocument()) {\n var u = e.key.path.toArray(), a = Fr(e.version);\n s = e.hasCommittedMutations;\n return new ir(\n /* unknownDocument= */ null, new nr(u, a), \n /* document= */ null, s, r, i);\n }\n if (e.isUnknownDocument()) {\n var c = e.key.path.toArray(), h = Fr(e.version);\n return new ir(new rr(c, h), \n /* noDocument= */ null, \n /* document= */ null, \n /* hasCommittedMutations= */ !0, r, i);\n }\n return C();\n}\n\nfunction Pr(t) {\n var e = t.toTimestamp();\n return [ e.seconds, e.nanoseconds ];\n}\n\nfunction Mr(t) {\n var e = new q(t[0], t[1]);\n return U.fromTimestamp(e);\n}\n\nfunction Fr(t) {\n var e = t.toTimestamp();\n return new $n(e.seconds, e.nanoseconds);\n}\n\nfunction Vr(t) {\n var e = new q(t.seconds, t.nanoseconds);\n return U.fromTimestamp(e);\n}\n\n/** Encodes a batch of mutations into a DbMutationBatch for local storage. */\n/** Decodes a DbMutationBatch into a MutationBatch */ function qr(t, e) {\n // Squash old transform mutations into existing patch or set mutations.\n // The replacement of representing `transforms` with `update_transforms`\n // on the SDK means that old `transform` mutations stored in IndexedDB need\n // to be updated to `update_transforms`.\n // TODO(b/174608374): Remove this code once we perform a schema migration.\n for (var n = (e.baseMutations || []).map((function(e) {\n return Rn(t.Lt, e);\n })), r = 0; r < e.mutations.length - 1; ++r) {\n var i = e.mutations[r];\n if (r + 1 < e.mutations.length && void 0 !== e.mutations[r + 1].transform) {\n var o = e.mutations[r + 1];\n i.updateTransforms = o.transform.fieldTransforms, e.mutations.splice(r + 1, 1), \n ++r;\n }\n }\n var s = e.mutations.map((function(e) {\n return Rn(t.Lt, e);\n })), u = q.fromMillis(e.localWriteTimeMs);\n return new kr(e.batchId, u, n, s);\n}\n\n/** Decodes a DbTarget into TargetData */ function Ur(t) {\n var e, n, r = Vr(t.readTime), i = void 0 !== t.lastLimboFreeSnapshotVersion ? Vr(t.lastLimboFreeSnapshotVersion) : U.min();\n return void 0 !== t.query.documents ? (R(1 === (n = t.query).documents.length), \n e = Jt(Qt(Dn(n.documents[0])))) : e = function(t) {\n return Jt(Pn(t));\n }(t.query), new Cr(e, t.targetId, 0 /* Listen */ , t.lastListenSequenceNumber, r, i, Y.fromBase64String(t.resumeToken))\n /** Encodes TargetData into a DbTarget for storage locally. */;\n}\n\nfunction Br(t, e) {\n var n, r = Fr(e.snapshotVersion), i = Fr(e.lastLimboFreeSnapshotVersion);\n n = Nt(e.target) ? On(t.Lt, e.target) : Ln(t.Lt, e.target);\n // We can't store the resumeToken as a ByteString in IndexedDb, so we\n // convert it to a base64 string for storage.\n var o = e.resumeToken.toBase64();\n // lastListenSequenceNumber is always 0 until we do real GC.\n return new sr(e.targetId, St(e.target), r, o, e.sequenceNumber, i, n);\n}\n\n/**\n * A helper function for figuring out what kind of query has been stored.\n */\n/**\n * Encodes a `BundledQuery` from bundle proto to a Query object.\n *\n * This reconstructs the original query used to build the bundle being loaded,\n * including features exists only in SDKs (for example: limit-to-last).\n */ function jr(t) {\n var e = Pn({\n parent: t.parent,\n structuredQuery: t.structuredQuery\n });\n return \"LAST\" === t.limitType ? Zt(e, e.limit, \"L\" /* Last */) : e;\n}\n\n/** Encodes a NamedQuery proto object to a NamedQuery model object. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var Kr = /** @class */ function() {\n function t() {}\n return t.prototype.getBundleMetadata = function(t, e) {\n return Gr(t).get(e).next((function(t) {\n if (t) return {\n id: (e = t).bundleId,\n createTime: Vr(e.createTime),\n version: e.version\n };\n /** Encodes a DbBundle to a BundleMetadata object. */ var e;\n /** Encodes a BundleMetadata to a DbBundle. */ }));\n }, t.prototype.saveBundleMetadata = function(t, e) {\n return Gr(t).put({\n bundleId: (n = e).id,\n createTime: Fr(bn(n.createTime)),\n version: n.version\n });\n var n;\n /** Encodes a DbNamedQuery to a NamedQuery. */ }, t.prototype.getNamedQuery = function(t, e) {\n return Qr(t).get(e).next((function(t) {\n if (t) return {\n name: (e = t).name,\n query: jr(e.bundledQuery),\n readTime: Vr(e.readTime)\n };\n var e;\n /** Encodes a NamedQuery from a bundle proto to a DbNamedQuery. */ }));\n }, t.prototype.saveNamedQuery = function(t, e) {\n return Qr(t).put(function(t) {\n return {\n name: t.name,\n readTime: Fr(bn(t.readTime)),\n bundledQuery: t.bundledQuery\n };\n }(e));\n }, t;\n}();\n\n/**\n * Helper to get a typed SimpleDbStore for the bundles object store.\n */ function Gr(t) {\n return Ar(t, fr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the namedQueries object store.\n */ function Qr(t) {\n return Ar(t, lr.store);\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An in-memory implementation of IndexManager.\n */ var zr = /** @class */ function() {\n function t() {\n this.Bt = new Wr;\n }\n return t.prototype.addToCollectionParentIndex = function(t, e) {\n return this.Bt.add(e), mr.resolve();\n }, t.prototype.getCollectionParents = function(t, e) {\n return mr.resolve(this.Bt.getEntries(e));\n }, t;\n}(), Wr = /** @class */ function() {\n function t() {\n this.index = {};\n }\n // Returns false if the entry already existed.\n return t.prototype.add = function(t) {\n var e = t.lastSegment(), n = t.popLast(), r = this.index[e] || new ze(Q.comparator), i = !r.has(n);\n return this.index[e] = r.add(n), i;\n }, t.prototype.has = function(t) {\n var e = t.lastSegment(), n = t.popLast(), r = this.index[e];\n return r && r.has(n);\n }, t.prototype.getEntries = function(t) {\n return (this.index[t] || new ze(Q.comparator)).toArray();\n }, t;\n}(), Hr = /** @class */ function() {\n function t() {\n /**\n * An in-memory copy of the index entries we've already written since the SDK\n * launched. Used to avoid re-writing the same entry repeatedly.\n *\n * This is *NOT* a complete cache of what's in persistence and so can never be used to\n * satisfy reads.\n */\n this.qt = new Wr;\n }\n /**\n * Adds a new entry to the collection parent index.\n *\n * Repeated calls for the same collectionPath should be avoided within a\n * transaction as IndexedDbIndexManager only caches writes once a transaction\n * has been committed.\n */ return t.prototype.addToCollectionParentIndex = function(t, e) {\n var n = this;\n if (!this.qt.has(e)) {\n var r = e.lastSegment(), i = e.popLast();\n t.addOnCommittedListener((function() {\n // Add the collection to the in memory cache only if the transaction was\n // successfully committed.\n n.qt.add(e);\n }));\n var o = {\n collectionId: r,\n parent: Wn(i)\n };\n return Yr(t).put(o);\n }\n return mr.resolve();\n }, t.prototype.getCollectionParents = function(t, e) {\n var n = [], r = IDBKeyRange.bound([ e, \"\" ], [ V(e), \"\" ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return Yr(t).Nt(r).next((function(t) {\n for (var r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n // This collectionId guard shouldn't be necessary (and isn't as long\n // as we're running in a real browser), but there's a bug in\n // indexeddbshim that breaks our range in our tests running in node:\n // https://github.com/axemclion/IndexedDBShim/issues/334\n if (o.collectionId !== e) break;\n n.push(Xn(o.parent));\n }\n return n;\n }));\n }, t;\n}();\n\n/**\n * Internal implementation of the collection-parent index exposed by MemoryIndexManager.\n * Also used for in-memory caching by IndexedDbIndexManager and initial index population\n * in indexeddb_schema.ts\n */\n/**\n * Helper to get a typed SimpleDbStore for the collectionParents\n * document store.\n */\nfunction Yr(t) {\n return Ar(t, cr.store);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var Xr = {\n didRun: !1,\n sequenceNumbersCollected: 0,\n targetsRemoved: 0,\n documentsRemoved: 0\n}, $r = /** @class */ function() {\n function t(\n // When we attempt to collect, we will only do so if the cache size is greater than this\n // threshold. Passing `COLLECTION_DISABLED` here will cause collection to always be skipped.\n t, \n // The percentage of sequence numbers that we will attempt to collect\n e, \n // A cap on the total number of sequence numbers that will be collected. This prevents\n // us from collecting a huge number of sequence numbers if the cache has grown very large.\n n) {\n this.cacheSizeCollectionThreshold = t, this.percentileToCollect = e, this.maximumSequenceNumbersToCollect = n;\n }\n return t.withCacheSize = function(e) {\n return new t(e, t.DEFAULT_COLLECTION_PERCENTILE, t.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Delete a mutation batch and the associated document mutations.\n * @returns A PersistencePromise of the document mutations that were removed.\n */\nfunction Jr(t, e, n) {\n var r = t.store(tr.store), i = t.store(er.store), o = [], s = IDBKeyRange.only(n.batchId), u = 0, a = r.Ot({\n range: s\n }, (function(t, e, n) {\n return u++, n.delete();\n }));\n o.push(a.next((function() {\n R(1 === u);\n })));\n for (var c = [], h = 0, f = n.mutations; h < f.length; h++) {\n var l = f[h], d = er.key(e, l.key.path, n.batchId);\n o.push(i.delete(d)), c.push(l.key);\n }\n return mr.waitFor(o).next((function() {\n return c;\n }));\n}\n\n/**\n * Returns an approximate size for the given document.\n */ function Zr(t) {\n if (!t) return 0;\n var e;\n if (t.document) e = t.document; else if (t.unknownDocument) e = t.unknownDocument; else {\n if (!t.noDocument) throw C();\n e = t.noDocument;\n }\n return JSON.stringify(e).length;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** A mutation queue for a specific user, backed by IndexedDB. */ $r.DEFAULT_COLLECTION_PERCENTILE = 10, \n$r.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT = 1e3, $r.DEFAULT = new $r(41943040, $r.DEFAULT_COLLECTION_PERCENTILE, $r.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT), \n$r.DISABLED = new $r(-1, 0, 0);\n\nvar ti = /** @class */ function() {\n function t(\n /**\n * The normalized userId (e.g. null UID => \"\" userId) used to store /\n * retrieve mutations.\n */\n t, e, n, r) {\n this.userId = t, this.R = e, this.Ut = n, this.referenceDelegate = r, \n /**\n * Caches the document keys for pending mutation batches. If the mutation\n * has been removed from IndexedDb, the cached value may continue to\n * be used to retrieve the batch's document keys. To remove a cached value\n * locally, `removeCachedMutationKeys()` should be invoked either directly\n * or through `removeMutationBatches()`.\n *\n * With multi-tab, when the primary client acknowledges or rejects a mutation,\n * this cache is used by secondary clients to invalidate the local\n * view of the documents that were previously affected by the mutation.\n */\n // PORTING NOTE: Multi-tab only.\n this.Qt = {}\n /**\n * Creates a new mutation queue for the given user.\n * @param user - The user for which to create a mutation queue.\n * @param serializer - The serializer to use when persisting to IndexedDb.\n */;\n }\n return t.Kt = function(e, n, r, i) {\n // TODO(mcg): Figure out what constraints there are on userIDs\n // In particular, are there any reserved characters? are empty ids allowed?\n // For the moment store these together in the same mutations table assuming\n // that empty userIDs aren't allowed.\n return R(\"\" !== e.uid), new t(e.isAuthenticated() ? e.uid : \"\", n, r, i);\n }, t.prototype.checkEmpty = function(t) {\n var e = !0, n = IDBKeyRange.bound([ this.userId, Number.NEGATIVE_INFINITY ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return ni(t).Ot({\n index: tr.userMutationsIndex,\n range: n\n }, (function(t, n, r) {\n e = !1, r.done();\n })).next((function() {\n return e;\n }));\n }, t.prototype.addMutationBatch = function(t, e, n, r) {\n var i = this, o = ri(t), s = ni(t);\n // The IndexedDb implementation in Chrome (and Firefox) does not handle\n // compound indices that include auto-generated keys correctly. To ensure\n // that the index entry is added correctly in all browsers, we perform two\n // writes: The first write is used to retrieve the next auto-generated Batch\n // ID, and the second write populates the index and stores the actual\n // mutation batch.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=701972\n // We write an empty object to obtain key\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return s.add({}).next((function(u) {\n R(\"number\" == typeof u);\n for (var a = new kr(u, e, n, r), c = function(t, e, n) {\n var r = n.baseMutations.map((function(e) {\n return Cn(t.Lt, e);\n })), i = n.mutations.map((function(e) {\n return Cn(t.Lt, e);\n }));\n return new tr(e, n.batchId, n.localWriteTime.toMillis(), r, i);\n }(i.R, i.userId, a), h = [], f = new ze((function(t, e) {\n return M(t.canonicalString(), e.canonicalString());\n })), l = 0, d = r; l < d.length; l++) {\n var p = d[l], y = er.key(i.userId, p.key.path, u);\n f = f.add(p.key.path.popLast()), h.push(s.put(c)), h.push(o.put(y, er.PLACEHOLDER));\n }\n return f.forEach((function(e) {\n h.push(i.Ut.addToCollectionParentIndex(t, e));\n })), t.addOnCommittedListener((function() {\n i.Qt[u] = a.keys();\n })), mr.waitFor(h).next((function() {\n return a;\n }));\n }));\n }, t.prototype.lookupMutationBatch = function(t, e) {\n var n = this;\n return ni(t).get(e).next((function(t) {\n return t ? (R(t.userId === n.userId), qr(n.R, t)) : null;\n }));\n }, \n /**\n * Returns the document keys for the mutation batch with the given batchId.\n * For primary clients, this method returns `null` after\n * `removeMutationBatches()` has been called. Secondary clients return a\n * cached result until `removeCachedMutationKeys()` is invoked.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.jt = function(t, e) {\n var n = this;\n return this.Qt[e] ? mr.resolve(this.Qt[e]) : this.lookupMutationBatch(t, e).next((function(t) {\n if (t) {\n var r = t.keys();\n return n.Qt[e] = r, r;\n }\n return null;\n }));\n }, t.prototype.getNextMutationBatchAfterBatchId = function(t, e) {\n var n = this, r = e + 1, i = IDBKeyRange.lowerBound([ this.userId, r ]), o = null;\n return ni(t).Ot({\n index: tr.userMutationsIndex,\n range: i\n }, (function(t, e, i) {\n e.userId === n.userId && (R(e.batchId >= r), o = qr(n.R, e)), i.done();\n })).next((function() {\n return o;\n }));\n }, t.prototype.getHighestUnacknowledgedBatchId = function(t) {\n var e = IDBKeyRange.upperBound([ this.userId, Number.POSITIVE_INFINITY ]), n = -1;\n return ni(t).Ot({\n index: tr.userMutationsIndex,\n range: e,\n reverse: !0\n }, (function(t, e, r) {\n n = e.batchId, r.done();\n })).next((function() {\n return n;\n }));\n }, t.prototype.getAllMutationBatches = function(t) {\n var e = this, n = IDBKeyRange.bound([ this.userId, -1 ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return ni(t).Nt(tr.userMutationsIndex, n).next((function(t) {\n return t.map((function(t) {\n return qr(e.R, t);\n }));\n }));\n }, t.prototype.getAllMutationBatchesAffectingDocumentKey = function(t, e) {\n var n = this, r = er.prefixForPath(this.userId, e.path), i = IDBKeyRange.lowerBound(r), o = [];\n // Scan the document-mutation index starting with a prefix starting with\n // the given documentKey.\n return ri(t).Ot({\n range: i\n }, (function(r, i, s) {\n var u = r[0], a = r[1], c = r[2], h = Xn(a);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n if (u === n.userId && e.path.isEqual(h)) \n // Look up the mutation batch in the store.\n return ni(t).get(c).next((function(t) {\n if (!t) throw C();\n R(t.userId === n.userId), o.push(qr(n.R, t));\n }));\n s.done();\n })).next((function() {\n return o;\n }));\n }, t.prototype.getAllMutationBatchesAffectingDocumentKeys = function(t, e) {\n var n = this, r = new ze(M), i = [];\n return e.forEach((function(e) {\n var o = er.prefixForPath(n.userId, e.path), s = IDBKeyRange.lowerBound(o), u = ri(t).Ot({\n range: s\n }, (function(t, i, o) {\n var s = t[0], u = t[1], a = t[2], c = Xn(u);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n s === n.userId && e.path.isEqual(c) ? r = r.add(a) : o.done();\n }));\n i.push(u);\n })), mr.waitFor(i).next((function() {\n return n.Wt(t, r);\n }));\n }, t.prototype.getAllMutationBatchesAffectingQuery = function(t, e) {\n var n = this, r = e.path, i = r.length + 1, o = er.prefixForPath(this.userId, r), s = IDBKeyRange.lowerBound(o), u = new ze(M);\n return ri(t).Ot({\n range: s\n }, (function(t, e, o) {\n var s = t[0], a = t[1], c = t[2], h = Xn(a);\n s === n.userId && r.isPrefixOf(h) ? \n // Rows with document keys more than one segment longer than the\n // query path can't be matches. For example, a query on 'rooms'\n // can't match the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n h.length === i && (u = u.add(c)) : o.done();\n })).next((function() {\n return n.Wt(t, u);\n }));\n }, t.prototype.Wt = function(t, e) {\n var n = this, r = [], i = [];\n // TODO(rockwood): Implement this using iterate.\n return e.forEach((function(e) {\n i.push(ni(t).get(e).next((function(t) {\n if (null === t) throw C();\n R(t.userId === n.userId), r.push(qr(n.R, t));\n })));\n })), mr.waitFor(i).next((function() {\n return r;\n }));\n }, t.prototype.removeMutationBatch = function(t, e) {\n var n = this;\n return Jr(t.Mt, this.userId, e).next((function(r) {\n return t.addOnCommittedListener((function() {\n n.Gt(e.batchId);\n })), mr.forEach(r, (function(e) {\n return n.referenceDelegate.markPotentiallyOrphaned(t, e);\n }));\n }));\n }, \n /**\n * Clears the cached keys for a mutation batch. This method should be\n * called by secondary clients after they process mutation updates.\n *\n * Note that this method does not have to be called from primary clients as\n * the corresponding cache entries are cleared when an acknowledged or\n * rejected batch is removed from the mutation queue.\n */\n // PORTING NOTE: Multi-tab only\n t.prototype.Gt = function(t) {\n delete this.Qt[t];\n }, t.prototype.performConsistencyCheck = function(t) {\n var e = this;\n return this.checkEmpty(t).next((function(n) {\n if (!n) return mr.resolve();\n // Verify that there are no entries in the documentMutations index if\n // the queue is empty.\n var r = IDBKeyRange.lowerBound(er.prefixForUser(e.userId)), i = [];\n return ri(t).Ot({\n range: r\n }, (function(t, n, r) {\n if (t[0] === e.userId) {\n var o = Xn(t[1]);\n i.push(o);\n } else r.done();\n })).next((function() {\n R(0 === i.length);\n }));\n }));\n }, t.prototype.containsKey = function(t, e) {\n return ei(t, this.userId, e);\n }, \n // PORTING NOTE: Multi-tab only (state is held in memory in other clients).\n /** Returns the mutation queue's metadata from IndexedDb. */\n t.prototype.zt = function(t) {\n var e = this;\n return ii(t).get(this.userId).next((function(t) {\n return t || new Zn(e.userId, -1, \n /*lastStreamToken=*/ \"\");\n }));\n }, t;\n}();\n\n/**\n * @returns true if the mutation queue for the given user contains a pending\n * mutation for the given key.\n */ function ei(t, e, n) {\n var r = er.prefixForPath(e, n.path), i = r[1], o = IDBKeyRange.lowerBound(r), s = !1;\n return ri(t).Ot({\n range: o,\n kt: !0\n }, (function(t, n, r) {\n var o = t[0], u = t[1];\n t[2];\n o === e && u === i && (s = !0), r.done();\n })).next((function() {\n return s;\n }));\n}\n\n/** Returns true if any mutation queue contains the given document. */\n/**\n * Helper to get a typed SimpleDbStore for the mutations object store.\n */ function ni(t) {\n return Ar(t, tr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function ri(t) {\n return Ar(t, er.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function ii(t) {\n return Ar(t, Zn.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Offset to ensure non-overlapping target ids. */\n/**\n * Generates monotonically increasing target IDs for sending targets to the\n * watch stream.\n *\n * The client constructs two generators, one for the target cache, and one for\n * for the sync engine (to generate limbo documents targets). These\n * generators produce non-overlapping IDs (by using even and odd IDs\n * respectively).\n *\n * By separating the target ID space, the query cache can generate target IDs\n * that persist across client restarts, while sync engine can independently\n * generate in-memory target IDs that are transient and can be reused after a\n * restart.\n */ var oi = /** @class */ function() {\n function t(t) {\n this.Ht = t;\n }\n return t.prototype.next = function() {\n return this.Ht += 2, this.Ht;\n }, t.Jt = function() {\n // The target cache generator must return '2' in its first call to `next()`\n // as there is no differentiation in the protocol layer between an unset\n // number and the number '0'. If we were to sent a target with target ID\n // '0', the backend would consider it unset and replace it with its own ID.\n return new t(0);\n }, t.Yt = function() {\n // Sync engine assigns target IDs for limbo document detection.\n return new t(-1);\n }, t;\n}(), si = /** @class */ function() {\n function t(t, e) {\n this.referenceDelegate = t, this.R = e;\n }\n // PORTING NOTE: We don't cache global metadata for the target cache, since\n // some of it (in particular `highestTargetId`) can be modified by secondary\n // tabs. We could perhaps be more granular (and e.g. still cache\n // `lastRemoteSnapshotVersion` in memory) but for simplicity we currently go\n // to IndexedDb whenever we need to read metadata. We can revisit if it turns\n // out to have a meaningful performance impact.\n return t.prototype.allocateTargetId = function(t) {\n var e = this;\n return this.Xt(t).next((function(n) {\n var r = new oi(n.highestTargetId);\n return n.highestTargetId = r.next(), e.Zt(t, n).next((function() {\n return n.highestTargetId;\n }));\n }));\n }, t.prototype.getLastRemoteSnapshotVersion = function(t) {\n return this.Xt(t).next((function(t) {\n return U.fromTimestamp(new q(t.lastRemoteSnapshotVersion.seconds, t.lastRemoteSnapshotVersion.nanoseconds));\n }));\n }, t.prototype.getHighestSequenceNumber = function(t) {\n return this.Xt(t).next((function(t) {\n return t.highestListenSequenceNumber;\n }));\n }, t.prototype.setTargetsMetadata = function(t, e, n) {\n var r = this;\n return this.Xt(t).next((function(i) {\n return i.highestListenSequenceNumber = e, n && (i.lastRemoteSnapshotVersion = n.toTimestamp()), \n e > i.highestListenSequenceNumber && (i.highestListenSequenceNumber = e), r.Zt(t, i);\n }));\n }, t.prototype.addTargetData = function(t, e) {\n var n = this;\n return this.te(t, e).next((function() {\n return n.Xt(t).next((function(r) {\n return r.targetCount += 1, n.ee(e, r), n.Zt(t, r);\n }));\n }));\n }, t.prototype.updateTargetData = function(t, e) {\n return this.te(t, e);\n }, t.prototype.removeTargetData = function(t, e) {\n var n = this;\n return this.removeMatchingKeysForTargetId(t, e.targetId).next((function() {\n return ui(t).delete(e.targetId);\n })).next((function() {\n return n.Xt(t);\n })).next((function(e) {\n return R(e.targetCount > 0), e.targetCount -= 1, n.Zt(t, e);\n }));\n }, \n /**\n * Drops any targets with sequence number less than or equal to the upper bound, excepting those\n * present in `activeTargetIds`. Document associations for the removed targets are also removed.\n * Returns the number of targets removed.\n */\n t.prototype.removeTargets = function(t, e, n) {\n var r = this, i = 0, o = [];\n return ui(t).Ot((function(s, u) {\n var a = Ur(u);\n a.sequenceNumber <= e && null === n.get(a.targetId) && (i++, o.push(r.removeTargetData(t, a)));\n })).next((function() {\n return mr.waitFor(o);\n })).next((function() {\n return i;\n }));\n }, \n /**\n * Call provided function with each `TargetData` that we have cached.\n */\n t.prototype.forEachTarget = function(t, e) {\n return ui(t).Ot((function(t, n) {\n var r = Ur(n);\n e(r);\n }));\n }, t.prototype.Xt = function(t) {\n return ai(t).get(ar.key).next((function(t) {\n return R(null !== t), t;\n }));\n }, t.prototype.Zt = function(t, e) {\n return ai(t).put(ar.key, e);\n }, t.prototype.te = function(t, e) {\n return ui(t).put(Br(this.R, e));\n }, \n /**\n * In-place updates the provided metadata to account for values in the given\n * TargetData. Saving is done separately. Returns true if there were any\n * changes to the metadata.\n */\n t.prototype.ee = function(t, e) {\n var n = !1;\n return t.targetId > e.highestTargetId && (e.highestTargetId = t.targetId, n = !0), \n t.sequenceNumber > e.highestListenSequenceNumber && (e.highestListenSequenceNumber = t.sequenceNumber, \n n = !0), n;\n }, t.prototype.getTargetCount = function(t) {\n return this.Xt(t).next((function(t) {\n return t.targetCount;\n }));\n }, t.prototype.getTargetData = function(t, e) {\n // Iterating by the canonicalId may yield more than one result because\n // canonicalId values are not required to be unique per target. This query\n // depends on the queryTargets index to be efficient.\n var n = St(e), r = IDBKeyRange.bound([ n, Number.NEGATIVE_INFINITY ], [ n, Number.POSITIVE_INFINITY ]), i = null;\n return ui(t).Ot({\n range: r,\n index: sr.queryTargetsIndexName\n }, (function(t, n, r) {\n var o = Ur(n);\n // After finding a potential match, check that the target is\n // actually equal to the requested target.\n Dt(e, o.target) && (i = o, r.done());\n })).next((function() {\n return i;\n }));\n }, t.prototype.addMatchingKeys = function(t, e, n) {\n var r = this, i = [], o = ci(t);\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n return e.forEach((function(e) {\n var s = Wn(e.path);\n i.push(o.put(new ur(n, s))), i.push(r.referenceDelegate.addReference(t, n, e));\n })), mr.waitFor(i);\n }, t.prototype.removeMatchingKeys = function(t, e, n) {\n var r = this, i = ci(t);\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n return mr.forEach(e, (function(e) {\n var o = Wn(e.path);\n return mr.waitFor([ i.delete([ n, o ]), r.referenceDelegate.removeReference(t, n, e) ]);\n }));\n }, t.prototype.removeMatchingKeysForTargetId = function(t, e) {\n var n = ci(t), r = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return n.delete(r);\n }, t.prototype.getMatchingKeysForTargetId = function(t, e) {\n var n = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0), r = ci(t), i = en();\n return r.Ot({\n range: n,\n kt: !0\n }, (function(t, e, n) {\n var r = Xn(t[1]), o = new st(r);\n i = i.add(o);\n })).next((function() {\n return i;\n }));\n }, t.prototype.containsKey = function(t, e) {\n var n = Wn(e.path), r = IDBKeyRange.bound([ n ], [ V(n) ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0), i = 0;\n return ci(t).Ot({\n index: ur.documentTargetsIndex,\n kt: !0,\n range: r\n }, (function(t, e, n) {\n var r = t[0];\n // Having a sentinel row for a document does not count as containing that document;\n // For the target cache, containing the document means the document is part of some\n // target.\n t[1];\n 0 !== r && (i++, n.done());\n })).next((function() {\n return i > 0;\n }));\n }, \n /**\n * Looks up a TargetData entry by target ID.\n *\n * @param targetId - The target ID of the TargetData entry to look up.\n * @returns The cached TargetData entry, or null if the cache has no entry for\n * the target.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.lt = function(t, e) {\n return ui(t).get(e).next((function(t) {\n return t ? Ur(t) : null;\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Helper to get a typed SimpleDbStore for the queries object store.\n */\nfunction ui(t) {\n return Ar(t, sr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the target globals object store.\n */ function ai(t) {\n return Ar(t, ar.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the document target object store.\n */ function ci(t) {\n return Ar(t, ur.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Verifies the error thrown by a LocalStore operation. If a LocalStore\n * operation fails because the primary lease has been taken by another client,\n * we ignore the error (the persistence layer will immediately call\n * `applyPrimaryLease` to propagate the primary state change). All other errors\n * are re-thrown.\n *\n * @param err - An error returned by a LocalStore operation.\n * @returns A Promise that resolves after we recovered, or the original error.\n */ function hi(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n if (t.code !== E.FAILED_PRECONDITION || t.message !== pr) throw t;\n return N(\"LocalStore\", \"Unexpectedly lost primary lease\"), [ 2 /*return*/ ];\n }));\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function fi(t, e) {\n var n = t[0], r = t[1], i = e[0], o = e[1], s = M(n, i);\n return 0 === s ? M(r, o) : s;\n}\n\n/**\n * Used to calculate the nth sequence number. Keeps a rolling buffer of the\n * lowest n values passed to `addElement`, and finally reports the largest of\n * them in `maxValue`.\n */ var li = /** @class */ function() {\n function t(t) {\n this.ne = t, this.buffer = new ze(fi), this.se = 0;\n }\n return t.prototype.ie = function() {\n return ++this.se;\n }, t.prototype.re = function(t) {\n var e = [ t, this.ie() ];\n if (this.buffer.size < this.ne) this.buffer = this.buffer.add(e); else {\n var n = this.buffer.last();\n fi(e, n) < 0 && (this.buffer = this.buffer.delete(n).add(e));\n }\n }, Object.defineProperty(t.prototype, \"maxValue\", {\n get: function() {\n // Guaranteed to be non-empty. If we decide we are not collecting any\n // sequence numbers, nthSequenceNumber below short-circuits. If we have\n // decided that we are collecting n sequence numbers, it's because n is some\n // percentage of the existing sequence numbers. That means we should never\n // be in a situation where we are collecting sequence numbers but don't\n // actually have any.\n return this.buffer.last()[0];\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), di = /** @class */ function() {\n function t(t, e) {\n this.garbageCollector = t, this.asyncQueue = e, this.oe = !1, this.ce = null;\n }\n return t.prototype.start = function(t) {\n -1 !== this.garbageCollector.params.cacheSizeCollectionThreshold && this.ue(t);\n }, t.prototype.stop = function() {\n this.ce && (this.ce.cancel(), this.ce = null);\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return null !== this.ce;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.ue = function(t) {\n var e = this, n = this.oe ? 3e5 : 6e4;\n N(\"LruGarbageCollector\", \"Garbage collection scheduled in \" + n + \"ms\"), this.ce = this.asyncQueue.enqueueAfterDelay(\"lru_garbage_collection\" /* LruGarbageCollection */ , n, (function() {\n return b(e, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n this.ce = null, this.oe = !0, n.label = 1;\n\n case 1:\n return n.trys.push([ 1, 3, , 7 ]), [ 4 /*yield*/ , t.collectGarbage(this.garbageCollector) ];\n\n case 2:\n return n.sent(), [ 3 /*break*/ , 7 ];\n\n case 3:\n return _r(e = n.sent()) ? (N(\"LruGarbageCollector\", \"Ignoring IndexedDB error during garbage collection: \", e), \n [ 3 /*break*/ , 6 ]) : [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 4 /*yield*/ , hi(e) ];\n\n case 5:\n n.sent(), n.label = 6;\n\n case 6:\n return [ 3 /*break*/ , 7 ];\n\n case 7:\n return [ 4 /*yield*/ , this.ue(t) ];\n\n case 8:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }, t;\n}(), pi = /** @class */ function() {\n function t(t, e) {\n this.ae = t, this.params = e;\n }\n return t.prototype.calculateTargetCount = function(t, e) {\n return this.ae.he(t).next((function(t) {\n return Math.floor(e / 100 * t);\n }));\n }, t.prototype.nthSequenceNumber = function(t, e) {\n var n = this;\n if (0 === e) return mr.resolve(_.o);\n var r = new li(e);\n return this.ae.forEachTarget(t, (function(t) {\n return r.re(t.sequenceNumber);\n })).next((function() {\n return n.ae.le(t, (function(t) {\n return r.re(t);\n }));\n })).next((function() {\n return r.maxValue;\n }));\n }, t.prototype.removeTargets = function(t, e, n) {\n return this.ae.removeTargets(t, e, n);\n }, t.prototype.removeOrphanedDocuments = function(t, e) {\n return this.ae.removeOrphanedDocuments(t, e);\n }, t.prototype.collect = function(t, e) {\n var n = this;\n return -1 === this.params.cacheSizeCollectionThreshold ? (N(\"LruGarbageCollector\", \"Garbage collection skipped; disabled\"), \n mr.resolve(Xr)) : this.getCacheSize(t).next((function(r) {\n return r < n.params.cacheSizeCollectionThreshold ? (N(\"LruGarbageCollector\", \"Garbage collection skipped; Cache size \" + r + \" is lower than threshold \" + n.params.cacheSizeCollectionThreshold), \n Xr) : n.fe(t, e);\n }));\n }, t.prototype.getCacheSize = function(t) {\n return this.ae.getCacheSize(t);\n }, t.prototype.fe = function(t, e) {\n var n, r, i, o, s, u, a, h = this, f = Date.now();\n return this.calculateTargetCount(t, this.params.percentileToCollect).next((function(e) {\n // Cap at the configured max\n return e > h.params.maximumSequenceNumbersToCollect ? (N(\"LruGarbageCollector\", \"Capping sequence numbers to collect down to the maximum of \" + h.params.maximumSequenceNumbersToCollect + \" from \" + e), \n r = h.params.maximumSequenceNumbersToCollect) : r = e, o = Date.now(), h.nthSequenceNumber(t, r);\n })).next((function(r) {\n return n = r, s = Date.now(), h.removeTargets(t, n, e);\n })).next((function(e) {\n return i = e, u = Date.now(), h.removeOrphanedDocuments(t, n);\n })).next((function(t) {\n return a = Date.now(), D() <= c.DEBUG && N(\"LruGarbageCollector\", \"LRU Garbage Collection\\n\\tCounted targets in \" + (o - f) + \"ms\\n\\tDetermined least recently used \" + r + \" in \" + (s - o) + \"ms\\n\\tRemoved \" + i + \" targets in \" + (u - s) + \"ms\\n\\tRemoved \" + t + \" documents in \" + (a - u) + \"ms\\nTotal Duration: \" + (a - f) + \"ms\"), \n mr.resolve({\n didRun: !0,\n sequenceNumbersCollected: r,\n targetsRemoved: i,\n documentsRemoved: t\n });\n }));\n }, t;\n}(), yi = /** @class */ function() {\n function t(t, e) {\n this.db = t, this.garbageCollector = function(t, e) {\n return new pi(t, e);\n }(this, e);\n }\n return t.prototype.he = function(t) {\n var e = this.de(t);\n return this.db.getTargetCache().getTargetCount(t).next((function(t) {\n return e.next((function(e) {\n return t + e;\n }));\n }));\n }, t.prototype.de = function(t) {\n var e = 0;\n return this.le(t, (function(t) {\n e++;\n })).next((function() {\n return e;\n }));\n }, t.prototype.forEachTarget = function(t, e) {\n return this.db.getTargetCache().forEachTarget(t, e);\n }, t.prototype.le = function(t, e) {\n return this.we(t, (function(t, n) {\n return e(n);\n }));\n }, t.prototype.addReference = function(t, e, n) {\n return vi(t, n);\n }, t.prototype.removeReference = function(t, e, n) {\n return vi(t, n);\n }, t.prototype.removeTargets = function(t, e, n) {\n return this.db.getTargetCache().removeTargets(t, e, n);\n }, t.prototype.markPotentiallyOrphaned = function(t, e) {\n return vi(t, e);\n }, \n /**\n * Returns true if anything would prevent this document from being garbage\n * collected, given that the document in question is not present in any\n * targets and has a sequence number less than or equal to the upper bound for\n * the collection run.\n */\n t.prototype._e = function(t, e) {\n return function(t, e) {\n var n = !1;\n return ii(t).$t((function(r) {\n return ei(t, r, e).next((function(t) {\n return t && (n = !0), mr.resolve(!t);\n }));\n })).next((function() {\n return n;\n }));\n }(t, e);\n }, t.prototype.removeOrphanedDocuments = function(t, e) {\n var n = this, r = this.db.getRemoteDocumentCache().newChangeBuffer(), i = [], o = 0;\n return this.we(t, (function(s, u) {\n if (u <= e) {\n var a = n._e(t, s).next((function(e) {\n if (!e) \n // Our size accounting requires us to read all documents before\n // removing them.\n return o++, r.getEntry(t, s).next((function() {\n return r.removeEntry(s), ci(t).delete([ 0, Wn(s.path) ]);\n }));\n }));\n i.push(a);\n }\n })).next((function() {\n return mr.waitFor(i);\n })).next((function() {\n return r.apply(t);\n })).next((function() {\n return o;\n }));\n }, t.prototype.removeTarget = function(t, e) {\n var n = e.withSequenceNumber(t.currentSequenceNumber);\n return this.db.getTargetCache().updateTargetData(t, n);\n }, t.prototype.updateLimboDocument = function(t, e) {\n return vi(t, e);\n }, \n /**\n * Call provided function for each document in the cache that is 'orphaned'. Orphaned\n * means not a part of any target, so the only entry in the target-document index for\n * that document will be the sentinel row (targetId 0), which will also have the sequence\n * number for the last time the document was accessed.\n */\n t.prototype.we = function(t, e) {\n var n, r = ci(t), i = _.o;\n return r.Ot({\n index: ur.documentTargetsIndex\n }, (function(t, r) {\n var o = t[0], s = (t[1], r.path), u = r.sequenceNumber;\n 0 === o ? (\n // if nextToReport is valid, report it, this is a new key so the\n // last one must not be a member of any targets.\n i !== _.o && e(new st(Xn(n)), i), \n // set nextToReport to be this sequence number. It's the next one we\n // might report, if we don't find any targets for this document.\n // Note that the sequence number must be defined when the targetId\n // is 0.\n i = u, n = s) : \n // set nextToReport to be invalid, we know we don't need to report\n // this one since we found a target for it.\n i = _.o;\n })).next((function() {\n // Since we report sequence numbers after getting to the next key, we\n // need to check if the last key we iterated over was an orphaned\n // document and report it.\n i !== _.o && e(new st(Xn(n)), i);\n }));\n }, t.prototype.getCacheSize = function(t) {\n return this.db.getRemoteDocumentCache().getSize(t);\n }, t;\n}();\n\n/**\n * This class is responsible for the scheduling of LRU garbage collection. It handles checking\n * whether or not GC is enabled, as well as which delay to use before the next run.\n */ function vi(t, e) {\n return ci(t).put(\n /**\n * @returns A value suitable for writing a sentinel row in the target-document\n * store.\n */\n function(t, e) {\n return new ur(0, Wn(t.path), e);\n }(e, t.currentSequenceNumber));\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A map implementation that uses objects as keys. Objects must have an\n * associated equals function and must be immutable. Entries in the map are\n * stored together with the key being produced from the mapKeyFn. This map\n * automatically handles collisions of keys.\n */ var mi = /** @class */ function() {\n function t(t, e) {\n this.mapKeyFn = t, this.equalsFn = e, \n /**\n * The inner map for a key/value pair. Due to the possibility of collisions we\n * keep a list of entries that we do a linear search through to find an actual\n * match. Note that collisions should be rare, so we still expect near\n * constant time lookups in practice.\n */\n this.inner = {}\n /** Get a value for this key, or undefined if it does not exist. */;\n }\n return t.prototype.get = function(t) {\n var e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 !== n) for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r], s = o[0], u = o[1];\n if (this.equalsFn(s, t)) return u;\n }\n }, t.prototype.has = function(t) {\n return void 0 !== this.get(t);\n }, \n /** Put this key and value in the map. */ t.prototype.set = function(t, e) {\n var n = this.mapKeyFn(t), r = this.inner[n];\n if (void 0 !== r) {\n for (var i = 0; i < r.length; i++) if (this.equalsFn(r[i][0], t)) return void (r[i] = [ t, e ]);\n r.push([ t, e ]);\n } else this.inner[n] = [ [ t, e ] ];\n }, \n /**\n * Remove this key from the map. Returns a boolean if anything was deleted.\n */\n t.prototype.delete = function(t) {\n var e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 === n) return !1;\n for (var r = 0; r < n.length; r++) if (this.equalsFn(n[r][0], t)) return 1 === n.length ? delete this.inner[e] : n.splice(r, 1), \n !0;\n return !1;\n }, t.prototype.forEach = function(t) {\n j(this.inner, (function(e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r], s = o[0], u = o[1];\n t(s, u);\n }\n }));\n }, t.prototype.isEmpty = function() {\n return K(this.inner);\n }, t;\n}(), gi = /** @class */ function() {\n function t() {\n // A mapping of document key to the new cache entry that should be written (or null if any\n // existing cache entry should be removed).\n this.changes = new mi((function(t) {\n return t.toString();\n }), (function(t, e) {\n return t.isEqual(e);\n })), this.changesApplied = !1;\n }\n return t.prototype.getReadTime = function(t) {\n var e = this.changes.get(t);\n return e ? e.readTime : U.min();\n }, \n /**\n * Buffers a `RemoteDocumentCache.addEntry()` call.\n *\n * You can only modify documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.addEntry = function(t, e) {\n this.assertNotApplied(), this.changes.set(t.key, {\n document: t,\n readTime: e\n });\n }, \n /**\n * Buffers a `RemoteDocumentCache.removeEntry()` call.\n *\n * You can only remove documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.removeEntry = function(t, e) {\n void 0 === e && (e = null), this.assertNotApplied(), this.changes.set(t, {\n document: _t.newInvalidDocument(t),\n readTime: e\n });\n }, \n /**\n * Looks up an entry in the cache. The buffered changes will first be checked,\n * and if no buffered change applies, this will forward to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document or an invalid document if we have nothing\n * cached.\n */\n t.prototype.getEntry = function(t, e) {\n this.assertNotApplied();\n var n = this.changes.get(e);\n return void 0 !== n ? mr.resolve(n.document) : this.getFromCache(t, e);\n }, \n /**\n * Looks up several entries in the cache, forwarding to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKeys - The keys of the entries to look up.\n * @returns A map of cached documents, indexed by key. If an entry cannot be\n * found, the corresponding key will be mapped to an invalid document.\n */\n t.prototype.getEntries = function(t, e) {\n return this.getAllFromCache(t, e);\n }, \n /**\n * Applies buffered changes to the underlying RemoteDocumentCache, using\n * the provided transaction.\n */\n t.prototype.apply = function(t) {\n return this.assertNotApplied(), this.changesApplied = !0, this.applyChanges(t);\n }, \n /** Helper to assert this.changes is not null */ t.prototype.assertNotApplied = function() {}, \n t;\n}(), wi = /** @class */ function() {\n /**\n * @param serializer - The document serializer.\n * @param indexManager - The query indexes that need to be maintained.\n */\n function t(t, e) {\n this.R = t, this.Ut = e\n /**\n * Adds the supplied entries to the cache.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */;\n }\n return t.prototype.addEntry = function(t, e, n) {\n return _i(t).put(Ei(e), n);\n }, \n /**\n * Removes a document from the cache.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */\n t.prototype.removeEntry = function(t, e) {\n var n = _i(t), r = Ei(e);\n return n.delete(r);\n }, \n /**\n * Updates the current cache size.\n *\n * Callers to `addEntry()` and `removeEntry()` *must* call this afterwards to update the\n * cache's metadata.\n */\n t.prototype.updateMetadata = function(t, e) {\n var n = this;\n return this.getMetadata(t).next((function(r) {\n return r.byteSize += e, n.me(t, r);\n }));\n }, t.prototype.getEntry = function(t, e) {\n var n = this;\n return _i(t).get(Ei(e)).next((function(t) {\n return n.ye(e, t);\n }));\n }, \n /**\n * Looks up an entry in the cache.\n *\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document entry and its size.\n */\n t.prototype.ge = function(t, e) {\n var n = this;\n return _i(t).get(Ei(e)).next((function(t) {\n return {\n document: n.ye(e, t),\n size: Zr(t)\n };\n }));\n }, t.prototype.getEntries = function(t, e) {\n var n = this, r = Ye();\n return this.pe(t, e, (function(t, e) {\n var i = n.ye(t, e);\n r = r.insert(t, i);\n })).next((function() {\n return r;\n }));\n }, \n /**\n * Looks up several entries in the cache.\n *\n * @param documentKeys - The set of keys entries to look up.\n * @returns A map of documents indexed by key and a map of sizes indexed by\n * key (zero if the document does not exist).\n */\n t.prototype.Ee = function(t, e) {\n var n = this, r = Ye(), i = new Ke(st.comparator);\n return this.pe(t, e, (function(t, e) {\n var o = n.ye(t, e);\n r = r.insert(t, o), i = i.insert(t, Zr(e));\n })).next((function() {\n return {\n documents: r,\n Te: i\n };\n }));\n }, t.prototype.pe = function(t, e, n) {\n if (e.isEmpty()) return mr.resolve();\n var r = IDBKeyRange.bound(e.first().path.toArray(), e.last().path.toArray()), i = e.getIterator(), o = i.getNext();\n return _i(t).Ot({\n range: r\n }, (function(t, e, r) {\n // Go through keys not found in cache.\n for (var s = st.fromSegments(t); o && st.comparator(o, s) < 0; ) n(o, null), o = i.getNext();\n o && o.isEqual(s) && (\n // Key found in cache.\n n(o, e), o = i.hasNext() ? i.getNext() : null), \n // Skip to the next key (if there is one).\n o ? r.Ct(o.path.toArray()) : r.done();\n })).next((function() {\n // The rest of the keys are not in the cache. One case where `iterate`\n // above won't go through them is when the cache is empty.\n for (;o; ) n(o, null), o = i.hasNext() ? i.getNext() : null;\n }));\n }, t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n var r = this, i = Ye(), o = e.path.length + 1, s = {};\n if (n.isEqual(U.min())) {\n // Documents are ordered by key, so we can use a prefix scan to narrow\n // down the documents we need to match the query against.\n var u = e.path.toArray();\n s.range = IDBKeyRange.lowerBound(u);\n } else {\n // Execute an index-free query and filter by read time. This is safe\n // since all document changes to queries that have a\n // lastLimboFreeSnapshotVersion (`sinceReadTime`) have a read time set.\n var a = e.path.toArray(), c = Pr(n);\n s.range = IDBKeyRange.lowerBound([ a, c ], \n /* open= */ !0), s.index = ir.collectionReadTimeIndex;\n }\n return _i(t).Ot(s, (function(t, n, s) {\n // The query is actually returning any path that starts with the query\n // path prefix which may include documents in subcollections. For\n // example, a query on 'rooms' will return rooms/abc/messages/xyx but we\n // shouldn't match it. Fix this by discarding rows with document keys\n // more than one segment longer than the query path.\n if (t.length === o) {\n var u = Or(r.R, n);\n e.path.isPrefixOf(u.key.path) ? re(e, u) && (i = i.insert(u.key, u)) : s.done();\n }\n })).next((function() {\n return i;\n }));\n }, t.prototype.newChangeBuffer = function(t) {\n return new bi(this, !!t && t.trackRemovals);\n }, t.prototype.getSize = function(t) {\n return this.getMetadata(t).next((function(t) {\n return t.byteSize;\n }));\n }, t.prototype.getMetadata = function(t) {\n return Ii(t).get(or.key).next((function(t) {\n return R(!!t), t;\n }));\n }, t.prototype.me = function(t, e) {\n return Ii(t).put(or.key, e);\n }, \n /**\n * Decodes `remoteDoc` and returns the document (or null, if the document\n * corresponds to the format used for sentinel deletes).\n */\n t.prototype.ye = function(t, e) {\n if (e) {\n var n = Or(this.R, e);\n // Whether the document is a sentinel removal and should only be used in the\n // `getNewDocumentChanges()`\n if (!n.isNoDocument() || !n.version.isEqual(U.min())) return n;\n }\n return _t.newInvalidDocument(t);\n }, t;\n}(), bi = /** @class */ function(t) {\n /**\n * @param documentCache - The IndexedDbRemoteDocumentCache to apply the changes to.\n * @param trackRemovals - Whether to create sentinel deletes that can be tracked by\n * `getNewDocumentChanges()`.\n */\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).Ie = e, r.trackRemovals = n, \n // A map of document sizes prior to applying the changes in this buffer.\n r.Ae = new mi((function(t) {\n return t.toString();\n }), (function(t, e) {\n return t.isEqual(e);\n })), r;\n }\n return g(e, t), e.prototype.applyChanges = function(t) {\n var e = this, n = [], r = 0, i = new ze((function(t, e) {\n return M(t.canonicalString(), e.canonicalString());\n }));\n return this.changes.forEach((function(o, s) {\n var u = e.Ae.get(o);\n if (s.document.isValidDocument()) {\n var a = Lr(e.Ie.R, s.document, e.getReadTime(o));\n i = i.add(o.path.popLast());\n var c = Zr(a);\n r += c - u, n.push(e.Ie.addEntry(t, o, a));\n } else if (r -= u, e.trackRemovals) {\n // In order to track removals, we store a \"sentinel delete\" in the\n // RemoteDocumentCache. This entry is represented by a NoDocument\n // with a version of 0 and ignored by `maybeDecodeDocument()` but\n // preserved in `getNewDocumentChanges()`.\n var h = Lr(e.Ie.R, _t.newNoDocument(o, U.min()), e.getReadTime(o));\n n.push(e.Ie.addEntry(t, o, h));\n } else n.push(e.Ie.removeEntry(t, o));\n })), i.forEach((function(r) {\n n.push(e.Ie.Ut.addToCollectionParentIndex(t, r));\n })), n.push(this.Ie.updateMetadata(t, r)), mr.waitFor(n);\n }, e.prototype.getFromCache = function(t, e) {\n var n = this;\n // Record the size of everything we load from the cache so we can compute a delta later.\n return this.Ie.ge(t, e).next((function(t) {\n return n.Ae.set(e, t.size), t.document;\n }));\n }, e.prototype.getAllFromCache = function(t, e) {\n var n = this;\n // Record the size of everything we load from the cache so we can compute\n // a delta later.\n return this.Ie.Ee(t, e).next((function(t) {\n var e = t.documents;\n // Note: `getAllFromCache` returns two maps instead of a single map from\n // keys to `DocumentSizeEntry`s. This is to allow returning the\n // `MutableDocumentMap` directly, without a conversion.\n return t.Te.forEach((function(t, e) {\n n.Ae.set(t, e);\n })), e;\n }));\n }, e;\n}(gi);\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An in-memory buffer of entries to be written to a RemoteDocumentCache.\n * It can be used to batch up a set of changes to be written to the cache, but\n * additionally supports reading entries back with the `getEntry()` method,\n * falling back to the underlying RemoteDocumentCache if no entry is\n * buffered.\n *\n * Entries added to the cache *must* be read first. This is to facilitate\n * calculating the size delta of the pending changes.\n *\n * PORTING NOTE: This class was implemented then removed from other platforms.\n * If byte-counting ends up being needed on the other platforms, consider\n * porting this class as part of that implementation work.\n */ function Ii(t) {\n return Ar(t, or.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the remoteDocuments object store.\n */ function _i(t) {\n return Ar(t, ir.store);\n}\n\nfunction Ei(t) {\n return t.path.toArray();\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Performs database creation and schema upgrades. */ var Ti = /** @class */ function() {\n function t(t) {\n this.R = t;\n }\n /**\n * Performs database creation and schema upgrades.\n *\n * Note that in production, this method is only ever used to upgrade the schema\n * to SCHEMA_VERSION. Different values of toVersion are only used for testing\n * and local feature development.\n */ return t.prototype.Rt = function(t, e, n, r) {\n var i = this;\n R(n < r && n >= 0 && r <= 11);\n var o = new gr(\"createOrUpgrade\", e);\n n < 1 && r >= 1 && (function(t) {\n t.createObjectStore(Jn.store);\n }(t), function(t) {\n t.createObjectStore(Zn.store, {\n keyPath: Zn.keyPath\n }), t.createObjectStore(tr.store, {\n keyPath: tr.keyPath,\n autoIncrement: !0\n }).createIndex(tr.userMutationsIndex, tr.userMutationsKeyPath, {\n unique: !0\n }), t.createObjectStore(er.store);\n }(t), Si(t), function(t) {\n t.createObjectStore(ir.store);\n }(t));\n // Migration 2 to populate the targetGlobal object no longer needed since\n // migration 3 unconditionally clears it.\n var s = mr.resolve();\n return n < 3 && r >= 3 && (\n // Brand new clients don't need to drop and recreate--only clients that\n // potentially have corrupt data.\n 0 !== n && (function(t) {\n t.deleteObjectStore(ur.store), t.deleteObjectStore(sr.store), t.deleteObjectStore(ar.store);\n }(t), Si(t)), s = s.next((function() {\n /**\n * Creates the target global singleton row.\n *\n * @param txn - The version upgrade transaction for indexeddb\n */\n return function(t) {\n var e = t.store(ar.store), n = new ar(\n /*highestTargetId=*/ 0, \n /*lastListenSequenceNumber=*/ 0, U.min().toTimestamp(), \n /*targetCount=*/ 0);\n return e.put(ar.key, n);\n }(o);\n }))), n < 4 && r >= 4 && (0 !== n && (\n // Schema version 3 uses auto-generated keys to generate globally unique\n // mutation batch IDs (this was previously ensured internally by the\n // client). To migrate to the new schema, we have to read all mutations\n // and write them back out. We preserve the existing batch IDs to guarantee\n // consistency with other object stores. Any further mutation batch IDs will\n // be auto-generated.\n s = s.next((function() {\n return function(t, e) {\n return e.store(tr.store).Nt().next((function(n) {\n t.deleteObjectStore(tr.store), t.createObjectStore(tr.store, {\n keyPath: tr.keyPath,\n autoIncrement: !0\n }).createIndex(tr.userMutationsIndex, tr.userMutationsKeyPath, {\n unique: !0\n });\n var r = e.store(tr.store), i = n.map((function(t) {\n return r.put(t);\n }));\n return mr.waitFor(i);\n }));\n }(t, o);\n }))), s = s.next((function() {\n !function(t) {\n t.createObjectStore(hr.store, {\n keyPath: hr.keyPath\n });\n }(t);\n }))), n < 5 && r >= 5 && (s = s.next((function() {\n return i.Re(o);\n }))), n < 6 && r >= 6 && (s = s.next((function() {\n return function(t) {\n t.createObjectStore(or.store);\n }(t), i.be(o);\n }))), n < 7 && r >= 7 && (s = s.next((function() {\n return i.ve(o);\n }))), n < 8 && r >= 8 && (s = s.next((function() {\n return i.Pe(t, o);\n }))), n < 9 && r >= 9 && (s = s.next((function() {\n // Multi-Tab used to manage its own changelog, but this has been moved\n // to the DbRemoteDocument object store itself. Since the previous change\n // log only contained transient data, we can drop its object store.\n !function(t) {\n t.objectStoreNames.contains(\"remoteDocumentChanges\") && t.deleteObjectStore(\"remoteDocumentChanges\");\n }(t), function(t) {\n var e = t.objectStore(ir.store);\n e.createIndex(ir.readTimeIndex, ir.readTimeIndexPath, {\n unique: !1\n }), e.createIndex(ir.collectionReadTimeIndex, ir.collectionReadTimeIndexPath, {\n unique: !1\n });\n }(e);\n }))), n < 10 && r >= 10 && (s = s.next((function() {\n return i.Ve(o);\n }))), n < 11 && r >= 11 && (s = s.next((function() {\n !function(t) {\n t.createObjectStore(fr.store, {\n keyPath: fr.keyPath\n });\n }(t), function(t) {\n t.createObjectStore(lr.store, {\n keyPath: lr.keyPath\n });\n }(t);\n }))), s;\n }, t.prototype.be = function(t) {\n var e = 0;\n return t.store(ir.store).Ot((function(t, n) {\n e += Zr(n);\n })).next((function() {\n var n = new or(e);\n return t.store(or.store).put(or.key, n);\n }));\n }, t.prototype.Re = function(t) {\n var e = this, n = t.store(Zn.store), r = t.store(tr.store);\n return n.Nt().next((function(n) {\n return mr.forEach(n, (function(n) {\n var i = IDBKeyRange.bound([ n.userId, -1 ], [ n.userId, n.lastAcknowledgedBatchId ]);\n return r.Nt(tr.userMutationsIndex, i).next((function(r) {\n return mr.forEach(r, (function(r) {\n R(r.userId === n.userId);\n var i = qr(e.R, r);\n return Jr(t, n.userId, i).next((function() {}));\n }));\n }));\n }));\n }));\n }, \n /**\n * Ensures that every document in the remote document cache has a corresponding sentinel row\n * with a sequence number. Missing rows are given the most recently used sequence number.\n */\n t.prototype.ve = function(t) {\n var e = t.store(ur.store), n = t.store(ir.store);\n return t.store(ar.store).get(ar.key).next((function(t) {\n var r = [];\n return n.Ot((function(n, i) {\n var o = new Q(n), s = function(t) {\n return [ 0, Wn(t) ];\n }(o);\n r.push(e.get(s).next((function(n) {\n return n ? mr.resolve() : function(n) {\n return e.put(new ur(0, Wn(n), t.highestListenSequenceNumber));\n }(o);\n })));\n })).next((function() {\n return mr.waitFor(r);\n }));\n }));\n }, t.prototype.Pe = function(t, e) {\n // Create the index.\n t.createObjectStore(cr.store, {\n keyPath: cr.keyPath\n });\n var n = e.store(cr.store), r = new Wr, i = function(t) {\n if (r.add(t)) {\n var e = t.lastSegment(), i = t.popLast();\n return n.put({\n collectionId: e,\n parent: Wn(i)\n });\n }\n };\n // Helper to add an index entry iff we haven't already written it.\n // Index existing remote documents.\n return e.store(ir.store).Ot({\n kt: !0\n }, (function(t, e) {\n var n = new Q(t);\n return i(n.popLast());\n })).next((function() {\n return e.store(er.store).Ot({\n kt: !0\n }, (function(t, e) {\n t[0];\n var n = t[1], r = (t[2], Xn(n));\n return i(r.popLast());\n }));\n }));\n }, t.prototype.Ve = function(t) {\n var e = this, n = t.store(sr.store);\n return n.Ot((function(t, r) {\n var i = Ur(r), o = Br(e.R, i);\n return n.put(o);\n }));\n }, t;\n}();\n\nfunction Si(t) {\n t.createObjectStore(ur.store, {\n keyPath: ur.keyPath\n }).createIndex(ur.documentTargetsIndex, ur.documentTargetsKeyPath, {\n unique: !0\n }), \n // NOTE: This is unique only because the TargetId is the suffix.\n t.createObjectStore(sr.store, {\n keyPath: sr.keyPath\n }).createIndex(sr.queryTargetsIndexName, sr.queryTargetsKeyPath, {\n unique: !0\n }), t.createObjectStore(ar.store);\n}\n\nvar Di = \"Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.\", Ni = /** @class */ function() {\n function t(\n /**\n * Whether to synchronize the in-memory state of multiple tabs and share\n * access to local persistence.\n */\n e, n, r, i, o, s, u, a, c, \n /**\n * If set to true, forcefully obtains database access. Existing tabs will\n * no longer be able to access IndexedDB.\n */\n h) {\n if (this.allowTabSynchronization = e, this.persistenceKey = n, this.clientId = r, \n this.Se = o, this.window = s, this.document = u, this.De = c, this.Ce = h, this.Ne = null, \n this.xe = !1, this.isPrimary = !1, this.networkEnabled = !0, \n /** Our window.unload handler, if registered. */\n this.Fe = null, this.inForeground = !1, \n /** Our 'visibilitychange' listener if registered. */\n this.ke = null, \n /** The client metadata refresh task. */\n this.Oe = null, \n /** The last time we garbage collected the client metadata object store. */\n this.$e = Number.NEGATIVE_INFINITY, \n /** A listener to notify on primary state changes. */\n this.Me = function(t) {\n return Promise.resolve();\n }, !t.yt()) throw new T(E.UNIMPLEMENTED, \"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.\");\n this.referenceDelegate = new yi(this, i), this.Le = n + \"main\", this.R = new Rr(a), \n this.Be = new wr(this.Le, 11, new Ti(this.R)), this.qe = new si(this.referenceDelegate, this.R), \n this.Ut = new Hr, this.Ue = function(t, e) {\n return new wi(t, e);\n }(this.R, this.Ut), this.Qe = new Kr, this.window && this.window.localStorage ? this.Ke = this.window.localStorage : (this.Ke = null, \n !1 === h && A(\"IndexedDbPersistence\", \"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page.\"));\n }\n /**\n * Attempt to start IndexedDb persistence.\n *\n * @returns Whether persistence was enabled.\n */ return t.prototype.start = function() {\n var t = this;\n // NOTE: This is expected to fail sometimes (in the case of another tab\n // already having the persistence lock), so it's the first thing we should\n // do.\n return this.je().then((function() {\n if (!t.isPrimary && !t.allowTabSynchronization) \n // Fail `start()` if `synchronizeTabs` is disabled and we cannot\n // obtain the primary lease.\n throw new T(E.FAILED_PRECONDITION, Di);\n return t.We(), t.Ge(), t.ze(), t.runTransaction(\"getHighestListenSequenceNumber\", \"readonly\", (function(e) {\n return t.qe.getHighestSequenceNumber(e);\n }));\n })).then((function(e) {\n t.Ne = new _(e, t.De);\n })).then((function() {\n t.xe = !0;\n })).catch((function(e) {\n return t.Be && t.Be.close(), Promise.reject(e);\n }));\n }, \n /**\n * Registers a listener that gets called when the primary state of the\n * instance changes. Upon registering, this listener is invoked immediately\n * with the current primary state.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.He = function(t) {\n var e = this;\n return this.Me = function(n) {\n return b(e, void 0, void 0, (function() {\n return I(this, (function(e) {\n return this.started ? [ 2 /*return*/ , t(n) ] : [ 2 /*return*/ ];\n }));\n }));\n }, t(this.isPrimary);\n }, \n /**\n * Registers a listener that gets called when the database receives a\n * version change event indicating that it has deleted.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.setDatabaseDeletedListener = function(t) {\n var e = this;\n this.Be.vt((function(n) {\n return b(e, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return null === n.newVersion ? [ 4 /*yield*/ , t() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }, \n /**\n * Adjusts the current network state in the client's metadata, potentially\n * affecting the primary lease.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.setNetworkEnabled = function(t) {\n var e = this;\n this.networkEnabled !== t && (this.networkEnabled = t, \n // Schedule a primary lease refresh for immediate execution. The eventual\n // lease update will be propagated via `primaryStateListener`.\n this.Se.enqueueAndForget((function() {\n return b(e, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.started ? [ 4 /*yield*/ , this.je() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })));\n }, \n /**\n * Updates the client metadata in IndexedDb and attempts to either obtain or\n * extend the primary lease for the local client. Asynchronously notifies the\n * primary state listener if the client either newly obtained or released its\n * primary lease.\n */\n t.prototype.je = function() {\n var t = this;\n return this.runTransaction(\"updateClientMetadataAndTryBecomePrimary\", \"readwrite\", (function(e) {\n return ki(e).put(new hr(t.clientId, Date.now(), t.networkEnabled, t.inForeground)).next((function() {\n if (t.isPrimary) return t.Je(e).next((function(e) {\n e || (t.isPrimary = !1, t.Se.enqueueRetryable((function() {\n return t.Me(!1);\n })));\n }));\n })).next((function() {\n return t.Ye(e);\n })).next((function(n) {\n return t.isPrimary && !n ? t.Xe(e).next((function() {\n return !1;\n })) : !!n && t.Ze(e).next((function() {\n return !0;\n }));\n }));\n })).catch((function(e) {\n if (_r(e)) \n // Proceed with the existing state. Any subsequent access to\n // IndexedDB will verify the lease.\n return N(\"IndexedDbPersistence\", \"Failed to extend owner lease: \", e), t.isPrimary;\n if (!t.allowTabSynchronization) throw e;\n return N(\"IndexedDbPersistence\", \"Releasing owner lease after error during lease refresh\", e), \n /* isPrimary= */ !1;\n })).then((function(e) {\n t.isPrimary !== e && t.Se.enqueueRetryable((function() {\n return t.Me(e);\n })), t.isPrimary = e;\n }));\n }, t.prototype.Je = function(t) {\n var e = this;\n return Ai(t).get(Jn.key).next((function(t) {\n return mr.resolve(e.tn(t));\n }));\n }, t.prototype.en = function(t) {\n return ki(t).delete(this.clientId);\n }, \n /**\n * If the garbage collection threshold has passed, prunes the\n * RemoteDocumentChanges and the ClientMetadata store based on the last update\n * time of all clients.\n */\n t.prototype.nn = function() {\n return b(this, void 0, void 0, (function() {\n var t, e, n, r, i = this;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return !this.isPrimary || this.sn(this.$e, 18e5) ? [ 3 /*break*/ , 2 ] : (this.$e = Date.now(), \n [ 4 /*yield*/ , this.runTransaction(\"maybeGarbageCollectMultiClientState\", \"readwrite-primary\", (function(t) {\n var e = Ar(t, hr.store);\n return e.Nt().next((function(t) {\n var n = i.rn(t, 18e5), r = t.filter((function(t) {\n return -1 === n.indexOf(t);\n }));\n // Delete metadata for clients that are no longer considered active.\n return mr.forEach(r, (function(t) {\n return e.delete(t.clientId);\n })).next((function() {\n return r;\n }));\n }));\n })).catch((function() {\n return [];\n })) ]);\n\n case 1:\n // Delete potential leftover entries that may continue to mark the\n // inactive clients as zombied in LocalStorage.\n // Ideally we'd delete the IndexedDb and LocalStorage zombie entries for\n // the client atomically, but we can't. So we opt to delete the IndexedDb\n // entries first to avoid potentially reviving a zombied client.\n if (t = o.sent(), this.Ke) for (e = 0, n = t; e < n.length; e++) r = n[e], this.Ke.removeItem(this.on(r.clientId));\n o.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Schedules a recurring timer to update the client metadata and to either\n * extend or acquire the primary lease if the client is eligible.\n */\n t.prototype.ze = function() {\n var t = this;\n this.Oe = this.Se.enqueueAfterDelay(\"client_metadata_refresh\" /* ClientMetadataRefresh */ , 4e3, (function() {\n return t.je().then((function() {\n return t.nn();\n })).then((function() {\n return t.ze();\n }));\n }));\n }, \n /** Checks whether `client` is the local client. */ t.prototype.tn = function(t) {\n return !!t && t.ownerId === this.clientId;\n }, \n /**\n * Evaluate the state of all active clients and determine whether the local\n * client is or can act as the holder of the primary lease. Returns whether\n * the client is eligible for the lease, but does not actually acquire it.\n * May return 'false' even if there is no active leaseholder and another\n * (foreground) client should become leaseholder instead.\n */\n t.prototype.Ye = function(t) {\n var e = this;\n return this.Ce ? mr.resolve(!0) : Ai(t).get(Jn.key).next((function(n) {\n // A client is eligible for the primary lease if:\n // - its network is enabled and the client's tab is in the foreground.\n // - its network is enabled and no other client's tab is in the\n // foreground.\n // - every clients network is disabled and the client's tab is in the\n // foreground.\n // - every clients network is disabled and no other client's tab is in\n // the foreground.\n // - the `forceOwningTab` setting was passed in.\n if (null !== n && e.sn(n.leaseTimestampMs, 5e3) && !e.cn(n.ownerId)) {\n if (e.tn(n) && e.networkEnabled) return !0;\n if (!e.tn(n)) {\n if (!n.allowTabSynchronization) \n // Fail the `canActAsPrimary` check if the current leaseholder has\n // not opted into multi-tab synchronization. If this happens at\n // client startup, we reject the Promise returned by\n // `enablePersistence()` and the user can continue to use Firestore\n // with in-memory persistence.\n // If this fails during a lease refresh, we will instead block the\n // AsyncQueue from executing further operations. Note that this is\n // acceptable since mixing & matching different `synchronizeTabs`\n // settings is not supported.\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can\n // no longer be turned off.\n throw new T(E.FAILED_PRECONDITION, Di);\n return !1;\n }\n }\n return !(!e.networkEnabled || !e.inForeground) || ki(t).Nt().next((function(t) {\n return void 0 === e.rn(t, 5e3).find((function(t) {\n if (e.clientId !== t.clientId) {\n var n = !e.networkEnabled && t.networkEnabled, r = !e.inForeground && t.inForeground, i = e.networkEnabled === t.networkEnabled;\n if (n || r && i) return !0;\n }\n return !1;\n }));\n }));\n })).next((function(t) {\n return e.isPrimary !== t && N(\"IndexedDbPersistence\", \"Client \" + (t ? \"is\" : \"is not\") + \" eligible for a primary lease.\"), \n t;\n }));\n }, t.prototype.shutdown = function() {\n return b(this, void 0, void 0, (function() {\n var t = this;\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n return this.xe = !1, this.un(), this.Oe && (this.Oe.cancel(), this.Oe = null), this.an(), \n this.hn(), [ 4 /*yield*/ , this.Be.runTransaction(\"shutdown\", \"readwrite\", [ Jn.store, hr.store ], (function(e) {\n var n = new Nr(e, _.o);\n return t.Xe(n).next((function() {\n return t.en(n);\n }));\n })) ];\n\n case 1:\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n return e.sent(), this.Be.close(), \n // Remove the entry marking the client as zombied from LocalStorage since\n // we successfully deleted its metadata from IndexedDb.\n this.ln(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Returns clients that are not zombied and have an updateTime within the\n * provided threshold.\n */\n t.prototype.rn = function(t, e) {\n var n = this;\n return t.filter((function(t) {\n return n.sn(t.updateTimeMs, e) && !n.cn(t.clientId);\n }));\n }, \n /**\n * Returns the IDs of the clients that are currently active. If multi-tab\n * is not supported, returns an array that only contains the local client's\n * ID.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.fn = function() {\n var t = this;\n return this.runTransaction(\"getActiveClients\", \"readonly\", (function(e) {\n return ki(e).Nt().next((function(e) {\n return t.rn(e, 18e5).map((function(t) {\n return t.clientId;\n }));\n }));\n }));\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return this.xe;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.getMutationQueue = function(t) {\n return ti.Kt(t, this.R, this.Ut, this.referenceDelegate);\n }, t.prototype.getTargetCache = function() {\n return this.qe;\n }, t.prototype.getRemoteDocumentCache = function() {\n return this.Ue;\n }, t.prototype.getIndexManager = function() {\n return this.Ut;\n }, t.prototype.getBundleCache = function() {\n return this.Qe;\n }, t.prototype.runTransaction = function(t, e, n) {\n var r = this;\n N(\"IndexedDbPersistence\", \"Starting transaction:\", t);\n var i, o = \"readonly\" === e ? \"readonly\" : \"readwrite\";\n // Do all transactions as readwrite against all object stores, since we\n // are the only reader/writer.\n return this.Be.runTransaction(t, o, dr, (function(o) {\n return i = new Nr(o, r.Ne ? r.Ne.next() : _.o), \"readwrite-primary\" === e ? r.Je(i).next((function(t) {\n return !!t || r.Ye(i);\n })).next((function(e) {\n if (!e) throw A(\"Failed to obtain primary lease for action '\" + t + \"'.\"), r.isPrimary = !1, \n r.Se.enqueueRetryable((function() {\n return r.Me(!1);\n })), new T(E.FAILED_PRECONDITION, pr);\n return n(i);\n })).next((function(t) {\n return r.Ze(i).next((function() {\n return t;\n }));\n })) : r.dn(i).next((function() {\n return n(i);\n }));\n })).then((function(t) {\n return i.raiseOnCommittedEvent(), t;\n }));\n }, \n /**\n * Verifies that the current tab is the primary leaseholder or alternatively\n * that the leaseholder has opted into multi-tab synchronization.\n */\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can no longer\n // be turned off.\n t.prototype.dn = function(t) {\n var e = this;\n return Ai(t).get(Jn.key).next((function(t) {\n if (null !== t && e.sn(t.leaseTimestampMs, 5e3) && !e.cn(t.ownerId) && !e.tn(t) && !(e.Ce || e.allowTabSynchronization && t.allowTabSynchronization)) throw new T(E.FAILED_PRECONDITION, Di);\n }));\n }, \n /**\n * Obtains or extends the new primary lease for the local client. This\n * method does not verify that the client is eligible for this lease.\n */\n t.prototype.Ze = function(t) {\n var e = new Jn(this.clientId, this.allowTabSynchronization, Date.now());\n return Ai(t).put(Jn.key, e);\n }, t.yt = function() {\n return wr.yt();\n }, \n /** Checks the primary lease and removes it if we are the current primary. */ t.prototype.Xe = function(t) {\n var e = this, n = Ai(t);\n return n.get(Jn.key).next((function(t) {\n return e.tn(t) ? (N(\"IndexedDbPersistence\", \"Releasing primary lease.\"), n.delete(Jn.key)) : mr.resolve();\n }));\n }, \n /** Verifies that `updateTimeMs` is within `maxAgeMs`. */ t.prototype.sn = function(t, e) {\n var n = Date.now();\n return !(t < n - e || t > n && (A(\"Detected an update time that is in the future: \" + t + \" > \" + n), \n 1));\n }, t.prototype.We = function() {\n var t = this;\n null !== this.document && \"function\" == typeof this.document.addEventListener && (this.ke = function() {\n t.Se.enqueueAndForget((function() {\n return t.inForeground = \"visible\" === t.document.visibilityState, t.je();\n }));\n }, this.document.addEventListener(\"visibilitychange\", this.ke), this.inForeground = \"visible\" === this.document.visibilityState);\n }, t.prototype.an = function() {\n this.ke && (this.document.removeEventListener(\"visibilitychange\", this.ke), this.ke = null);\n }, \n /**\n * Attaches a window.unload handler that will synchronously write our\n * clientId to a \"zombie client id\" location in LocalStorage. This can be used\n * by tabs trying to acquire the primary lease to determine that the lease\n * is no longer valid even if the timestamp is recent. This is particularly\n * important for the refresh case (so the tab correctly re-acquires the\n * primary lease). LocalStorage is used for this rather than IndexedDb because\n * it is a synchronous API and so can be used reliably from an unload\n * handler.\n */\n t.prototype.Ge = function() {\n var t, e = this;\n \"function\" == typeof (null === (t = this.window) || void 0 === t ? void 0 : t.addEventListener) && (this.Fe = function() {\n // Note: In theory, this should be scheduled on the AsyncQueue since it\n // accesses internal state. We execute this code directly during shutdown\n // to make sure it gets a chance to run.\n e.un(), e.Se.enqueueAndForget((function() {\n return e.shutdown();\n }));\n }, this.window.addEventListener(\"unload\", this.Fe));\n }, t.prototype.hn = function() {\n this.Fe && (this.window.removeEventListener(\"unload\", this.Fe), this.Fe = null);\n }, \n /**\n * Returns whether a client is \"zombied\" based on its LocalStorage entry.\n * Clients become zombied when their tab closes without running all of the\n * cleanup logic in `shutdown()`.\n */\n t.prototype.cn = function(t) {\n var e;\n try {\n var n = null !== (null === (e = this.Ke) || void 0 === e ? void 0 : e.getItem(this.on(t)));\n return N(\"IndexedDbPersistence\", \"Client '\" + t + \"' \" + (n ? \"is\" : \"is not\") + \" zombied in LocalStorage\"), \n n;\n } catch (t) {\n // Gracefully handle if LocalStorage isn't working.\n return A(\"IndexedDbPersistence\", \"Failed to get zombied client id.\", t), !1;\n }\n }, \n /**\n * Record client as zombied (a client that had its tab closed). Zombied\n * clients are ignored during primary tab selection.\n */\n t.prototype.un = function() {\n if (this.Ke) try {\n this.Ke.setItem(this.on(this.clientId), String(Date.now()));\n } catch (t) {\n // Gracefully handle if LocalStorage isn't available / working.\n A(\"Failed to set zombie client id.\", t);\n }\n }, \n /** Removes the zombied client entry if it exists. */ t.prototype.ln = function() {\n if (this.Ke) try {\n this.Ke.removeItem(this.on(this.clientId));\n } catch (t) {\n // Ignore\n }\n }, t.prototype.on = function(t) {\n return \"firestore_zombie_\" + this.persistenceKey + \"_\" + t;\n }, t;\n}();\n\n/**\n * Oldest acceptable age in milliseconds for client metadata before the client\n * is considered inactive and its associated data is garbage collected.\n */\n/**\n * An IndexedDB-backed instance of Persistence. Data is stored persistently\n * across sessions.\n *\n * On Web only, the Firestore SDKs support shared access to its persistence\n * layer. This allows multiple browser tabs to read and write to IndexedDb and\n * to synchronize state even without network connectivity. Shared access is\n * currently optional and not enabled unless all clients invoke\n * `enablePersistence()` with `{synchronizeTabs:true}`.\n *\n * In multi-tab mode, if multiple clients are active at the same time, the SDK\n * will designate one client as the “primary client”. An effort is made to pick\n * a visible, network-connected and active client, and this client is\n * responsible for letting other clients know about its presence. The primary\n * client writes a unique client-generated identifier (the client ID) to\n * IndexedDb’s “owner” store every 4 seconds. If the primary client fails to\n * update this entry, another client can acquire the lease and take over as\n * primary.\n *\n * Some persistence operations in the SDK are designated as primary-client only\n * operations. This includes the acknowledgment of mutations and all updates of\n * remote documents. The effects of these operations are written to persistence\n * and then broadcast to other tabs via LocalStorage (see\n * `WebStorageSharedClientState`), which then refresh their state from\n * persistence.\n *\n * Similarly, the primary client listens to notifications sent by secondary\n * clients to discover persistence changes written by secondary clients, such as\n * the addition of new mutations and query targets.\n *\n * If multi-tab is not enabled and another tab already obtained the primary\n * lease, IndexedDbPersistence enters a failed state and all subsequent\n * operations will automatically fail.\n *\n * Additionally, there is an optimization so that when a tab is closed, the\n * primary lease is released immediately (this is especially important to make\n * sure that a refreshed tab is able to immediately re-acquire the primary\n * lease). Unfortunately, IndexedDB cannot be reliably used in window.unload\n * since it is an asynchronous API. So in addition to attempting to give up the\n * lease, the leaseholder writes its client ID to a \"zombiedClient\" entry in\n * LocalStorage which acts as an indicator that another tab should go ahead and\n * take the primary lease immediately regardless of the current lease timestamp.\n *\n * TODO(b/114226234): Remove `synchronizeTabs` section when multi-tab is no\n * longer optional.\n */\n/**\n * Helper to get a typed SimpleDbStore for the primary client object store.\n */\nfunction Ai(t) {\n return Ar(t, Jn.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the client metadata object store.\n */ function ki(t) {\n return Ar(t, hr.store);\n}\n\n/**\n * Generates a string used as a prefix when storing data in IndexedDB and\n * LocalStorage.\n */ function xi(t, e) {\n // Use two different prefix formats:\n // * firestore / persistenceKey / projectID . databaseID / ...\n // * firestore / persistenceKey / projectID / ...\n // projectIDs are DNS-compatible names and cannot contain dots\n // so there's no danger of collisions.\n var n = t.projectId;\n return t.isDefaultDatabase || (n += \".\" + t.database), \"firestore/\" + e + \"/\" + n + \"/\"\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */;\n}\n\nvar Ci = function(t, e) {\n this.progress = t, this.wn = e;\n}, Ri = /** @class */ function() {\n function t(t, e, n) {\n this.Ue = t, this._n = e, this.Ut = n\n /**\n * Get the local view of the document identified by `key`.\n *\n * @returns Local view of the document or null if we don't have any cached\n * state for it.\n */;\n }\n return t.prototype.mn = function(t, e) {\n var n = this;\n return this._n.getAllMutationBatchesAffectingDocumentKey(t, e).next((function(r) {\n return n.yn(t, e, r);\n }));\n }, \n /** Internal version of `getDocument` that allows reusing batches. */ t.prototype.yn = function(t, e, n) {\n return this.Ue.getEntry(t, e).next((function(t) {\n for (var e = 0, r = n; e < r.length; e++) {\n r[e].applyToLocalView(t);\n }\n return t;\n }));\n }, \n // Returns the view of the given `docs` as they would appear after applying\n // all mutations in the given `batches`.\n t.prototype.gn = function(t, e) {\n t.forEach((function(t, n) {\n for (var r = 0, i = e; r < i.length; r++) {\n i[r].applyToLocalView(n);\n }\n }));\n }, \n /**\n * Gets the local view of the documents identified by `keys`.\n *\n * If we don't have cached state for a document in `keys`, a NoDocument will\n * be stored for that key in the resulting set.\n */\n t.prototype.pn = function(t, e) {\n var n = this;\n return this.Ue.getEntries(t, e).next((function(e) {\n return n.En(t, e).next((function() {\n return e;\n }));\n }));\n }, \n /**\n * Applies the local view the given `baseDocs` without retrieving documents\n * from the local store.\n */\n t.prototype.En = function(t, e) {\n var n = this;\n return this._n.getAllMutationBatchesAffectingDocumentKeys(t, e).next((function(t) {\n return n.gn(e, t);\n }));\n }, \n /**\n * Performs a query against the local view of all documents.\n *\n * @param transaction - The persistence transaction.\n * @param query - The query to match documents against.\n * @param sinceReadTime - If not set to SnapshotVersion.min(), return only\n * documents that have been read since this snapshot version (exclusive).\n */\n t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n /**\n * Returns whether the query matches a single document by path (rather than a\n * collection).\n */\n return function(t) {\n return st.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n }(e) ? this.Tn(t, e.path) : Xt(e) ? this.In(t, e, n) : this.An(t, e, n);\n }, t.prototype.Tn = function(t, e) {\n // Just do a simple document lookup.\n return this.mn(t, new st(e)).next((function(t) {\n var e = $e();\n return t.isFoundDocument() && (e = e.insert(t.key, t)), e;\n }));\n }, t.prototype.In = function(t, e, n) {\n var r = this, i = e.collectionGroup, o = $e();\n return this.Ut.getCollectionParents(t, i).next((function(s) {\n return mr.forEach(s, (function(s) {\n var u = function(t, e) {\n return new Kt(e, \n /*collectionGroup=*/ null, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(e, s.child(i));\n return r.An(t, u, n).next((function(t) {\n t.forEach((function(t, e) {\n o = o.insert(t, e);\n }));\n }));\n })).next((function() {\n return o;\n }));\n }));\n }, t.prototype.An = function(t, e, n) {\n var r, i, o = this;\n // Query the remote documents and overlay mutations.\n return this.Ue.getDocumentsMatchingQuery(t, e, n).next((function(n) {\n return r = n, o._n.getAllMutationBatchesAffectingQuery(t, e);\n })).next((function(e) {\n return i = e, o.Rn(t, i, r).next((function(t) {\n r = t;\n for (var e = 0, n = i; e < n.length; e++) for (var o = n[e], s = 0, u = o.mutations; s < u.length; s++) {\n var a = u[s], c = a.key, h = r.get(c);\n null == h && (\n // Create invalid document to apply mutations on top of\n h = _t.newInvalidDocument(c), r = r.insert(c, h)), Ne(a, h, o.localWriteTime), h.isFoundDocument() || (r = r.remove(c));\n }\n }));\n })).next((function() {\n // Finally, filter out any documents that don't actually match\n // the query.\n return r.forEach((function(t, n) {\n re(e, n) || (r = r.remove(t));\n })), r;\n }));\n }, t.prototype.Rn = function(t, e, n) {\n for (var r = en(), i = 0, o = e; i < o.length; i++) for (var s = 0, u = o[i].mutations; s < u.length; s++) {\n var a = u[s];\n a instanceof Re && null === n.get(a.key) && (r = r.add(a.key));\n }\n var c = n;\n return this.Ue.getEntries(t, r).next((function(t) {\n return t.forEach((function(t, e) {\n e.isFoundDocument() && (c = c.insert(t, e));\n })), c;\n }));\n }, t;\n}(), Oi = /** @class */ function() {\n function t(t, e, n, r) {\n this.targetId = t, this.fromCache = e, this.bn = n, this.vn = r;\n }\n return t.Pn = function(e, n) {\n for (var r = en(), i = en(), o = 0, s = n.docChanges; o < s.length; o++) {\n var u = s[o];\n switch (u.type) {\n case 0 /* Added */ :\n r = r.add(u.doc.key);\n break;\n\n case 1 /* Removed */ :\n i = i.add(u.doc.key);\n // do nothing\n }\n }\n return new t(e, n.fromCache, r, i);\n }, t;\n}(), Li = /** @class */ function() {\n function t() {}\n /** Sets the document view to query against. */ return t.prototype.Vn = function(t) {\n this.Sn = t;\n }, \n /** Returns all local documents matching the specified query. */ t.prototype.getDocumentsMatchingQuery = function(t, e, n, r) {\n var i = this;\n // Queries that match all documents don't benefit from using\n // key-based lookups. It is more efficient to scan all documents in a\n // collection, rather than to perform individual lookups.\n return function(t) {\n return 0 === t.filters.length && null === t.limit && null == t.startAt && null == t.endAt && (0 === t.explicitOrderBy.length || 1 === t.explicitOrderBy.length && t.explicitOrderBy[0].field.isKeyField());\n }(e) || n.isEqual(U.min()) ? this.Dn(t, e) : this.Sn.pn(t, r).next((function(o) {\n var s = i.Cn(e, o);\n return (zt(e) || Wt(e)) && i.Nn(e.limitType, s, r, n) ? i.Dn(t, e) : (D() <= c.DEBUG && N(\"QueryEngine\", \"Re-using previous result from %s to execute query: %s\", n.toString(), ne(e)), \n i.Sn.getDocumentsMatchingQuery(t, e, n).next((function(t) {\n // We merge `previousResults` into `updateResults`, since\n // `updateResults` is already a DocumentMap. If a document is\n // contained in both lists, then its contents are the same.\n return s.forEach((function(e) {\n t = t.insert(e.key, e);\n })), t;\n })));\n }));\n // Queries that have never seen a snapshot without limbo free documents\n // should also be run as a full collection scan.\n }, \n /** Applies the query filter and sorting to the provided documents. */ t.prototype.Cn = function(t, e) {\n // Sort the documents and re-apply the query filter since previously\n // matching documents do not necessarily still match the query.\n var n = new ze(ie(t));\n return e.forEach((function(e, r) {\n re(t, r) && (n = n.add(r));\n })), n;\n }, \n /**\n * Determines if a limit query needs to be refilled from cache, making it\n * ineligible for index-free execution.\n *\n * @param sortedPreviousResults - The documents that matched the query when it\n * was last synchronized, sorted by the query's comparator.\n * @param remoteKeys - The document keys that matched the query at the last\n * snapshot.\n * @param limboFreeSnapshotVersion - The version of the snapshot when the\n * query was last synchronized.\n */\n t.prototype.Nn = function(t, e, n, r) {\n // The query needs to be refilled if a previously matching document no\n // longer matches.\n if (n.size !== e.size) return !0;\n // Limit queries are not eligible for index-free query execution if there is\n // a potential that an older document from cache now sorts before a document\n // that was previously part of the limit. This, however, can only happen if\n // the document at the edge of the limit goes out of limit.\n // If a document that is not the limit boundary sorts differently,\n // the boundary of the limit itself did not change and documents from cache\n // will continue to be \"rejected\" by this boundary. Therefore, we can ignore\n // any modifications that don't affect the last document.\n var i = \"F\" /* First */ === t ? e.last() : e.first();\n return !!i && (i.hasPendingWrites || i.version.compareTo(r) > 0);\n }, t.prototype.Dn = function(t, e) {\n return D() <= c.DEBUG && N(\"QueryEngine\", \"Using full collection scan to execute query:\", ne(e)), \n this.Sn.getDocumentsMatchingQuery(t, e, U.min());\n }, t;\n}(), Pi = /** @class */ function() {\n function t(\n /** Manages our in-memory or durable persistence. */\n t, e, n, r) {\n this.persistence = t, this.xn = e, this.R = r, \n /**\n * Maps a targetID to data about its target.\n *\n * PORTING NOTE: We are using an immutable data structure on Web to make re-runs\n * of `applyRemoteEvent()` idempotent.\n */\n this.Fn = new Ke(M), \n /** Maps a target to its targetID. */\n // TODO(wuandy): Evaluate if TargetId can be part of Target.\n this.kn = new mi((function(t) {\n return St(t);\n }), Dt), \n /**\n * The read time of the last entry processed by `getNewDocumentChanges()`.\n *\n * PORTING NOTE: This is only used for multi-tab synchronization.\n */\n this.On = U.min(), this._n = t.getMutationQueue(n), this.$n = t.getRemoteDocumentCache(), \n this.qe = t.getTargetCache(), this.Mn = new Ri(this.$n, this._n, this.persistence.getIndexManager()), \n this.Qe = t.getBundleCache(), this.xn.Vn(this.Mn);\n }\n return t.prototype.collectGarbage = function(t) {\n var e = this;\n return this.persistence.runTransaction(\"Collect garbage\", \"readwrite-primary\", (function(n) {\n return t.collect(n, e.Fn);\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A readonly view of the local state of all documents we're tracking (i.e. we\n * have a cached version in remoteDocumentCache or local mutations for the\n * document). The view is computed by applying the mutations in the\n * MutationQueue to the RemoteDocumentCache.\n */ function Mi(\n/** Manages our in-memory or durable persistence. */\nt, e, n, r) {\n return new Pi(t, e, n, r);\n}\n\n/**\n * Tells the LocalStore that the currently authenticated user has changed.\n *\n * In response the local store switches the mutation queue to the new user and\n * returns any resulting document changes.\n */\n// PORTING NOTE: Android and iOS only return the documents affected by the\n// change.\nfunction Fi(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o;\n return I(this, (function(s) {\n switch (s.label) {\n case 0:\n return n = O(t), r = n._n, i = n.Mn, [ 4 /*yield*/ , n.persistence.runTransaction(\"Handle user change\", \"readonly\", (function(t) {\n // Swap out the mutation queue, grabbing the pending mutation batches\n // before and after.\n var o;\n return n._n.getAllMutationBatches(t).next((function(s) {\n return o = s, r = n.persistence.getMutationQueue(e), \n // Recreate our LocalDocumentsView using the new\n // MutationQueue.\n i = new Ri(n.$n, r, n.persistence.getIndexManager()), r.getAllMutationBatches(t);\n })).next((function(e) {\n for (var n = [], r = [], s = en(), u = 0, a = o\n // Union the old/new changed keys.\n ; u < a.length; u++) {\n var c = a[u];\n n.push(c.batchId);\n for (var h = 0, f = c.mutations; h < f.length; h++) {\n var l = f[h];\n s = s.add(l.key);\n }\n }\n for (var d = 0, p = e; d < p.length; d++) {\n var y = p[d];\n r.push(y.batchId);\n for (var v = 0, m = y.mutations; v < m.length; v++) {\n var g = m[v];\n s = s.add(g.key);\n }\n }\n // Return the set of all (potentially) changed documents and the list\n // of mutation batch IDs that were affected by change.\n return i.pn(t, s).next((function(t) {\n return {\n Ln: t,\n removedBatchIds: n,\n addedBatchIds: r\n };\n }));\n }));\n })) ];\n\n case 1:\n return o = s.sent(), [ 2 /*return*/ , (n._n = r, n.Mn = i, n.xn.Vn(n.Mn), o) ];\n }\n }));\n }));\n}\n\n/* Accepts locally generated Mutations and commit them to storage. */\n/**\n * Acknowledges the given batch.\n *\n * On the happy path when a batch is acknowledged, the local store will\n *\n * + remove the batch from the mutation queue;\n * + apply the changes to the remote document cache;\n * + recalculate the latency compensated view implied by those changes (there\n * may be mutations in the queue that affect the documents but haven't been\n * acknowledged yet); and\n * + give the changed documents back the sync engine\n *\n * @returns The resulting (modified) documents.\n */ function Vi(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Acknowledge batch\", \"readwrite-primary\", (function(t) {\n var r = e.batch.keys(), i = n.$n.newChangeBuffer({\n trackRemovals: !0\n });\n return function(t, e, n, r) {\n var i = n.batch, o = i.keys(), s = mr.resolve();\n return o.forEach((function(t) {\n s = s.next((function() {\n return r.getEntry(e, t);\n })).next((function(e) {\n var o = n.docVersions.get(t);\n R(null !== o), e.version.compareTo(o) < 0 && (i.applyToRemoteDocument(e, n), e.isValidDocument() && \n // We use the commitVersion as the readTime rather than the\n // document's updateTime since the updateTime is not advanced\n // for updates that do not modify the underlying document.\n r.addEntry(e, n.commitVersion));\n }));\n })), s.next((function() {\n return t._n.removeMutationBatch(e, i);\n }));\n }(n, t, e, i).next((function() {\n return i.apply(t);\n })).next((function() {\n return n._n.performConsistencyCheck(t);\n })).next((function() {\n return n.Mn.pn(t, r);\n }));\n }));\n}\n\n/**\n * Removes mutations from the MutationQueue for the specified batch;\n * LocalDocuments will be recalculated.\n *\n * @returns The resulting modified documents.\n */\n/**\n * Returns the last consistent snapshot processed (used by the RemoteStore to\n * determine whether to buffer incoming snapshots from the backend).\n */ function qi(t) {\n var e = O(t);\n return e.persistence.runTransaction(\"Get last remote snapshot version\", \"readonly\", (function(t) {\n return e.qe.getLastRemoteSnapshotVersion(t);\n }));\n}\n\n/**\n * Updates the \"ground-state\" (remote) documents. We assume that the remote\n * event reflects any write batches that have been acknowledged or rejected\n * (i.e. we do not re-apply local mutations to updates from this event).\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */ function Ui(t, e) {\n var n = O(t), r = e.snapshotVersion, i = n.Fn;\n return n.persistence.runTransaction(\"Apply remote event\", \"readwrite-primary\", (function(t) {\n var o = n.$n.newChangeBuffer({\n trackRemovals: !0\n });\n // Reset newTargetDataByTargetMap in case this transaction gets re-run.\n i = n.Fn;\n var s = [];\n e.targetChanges.forEach((function(e, o) {\n var u = i.get(o);\n if (u) {\n // Only update the remote keys if the target is still active. This\n // ensures that we can persist the updated target data along with\n // the updated assignment.\n s.push(n.qe.removeMatchingKeys(t, e.removedDocuments, o).next((function() {\n return n.qe.addMatchingKeys(t, e.addedDocuments, o);\n })));\n var a = e.resumeToken;\n // Update the resume token if the change includes one.\n if (a.approximateByteSize() > 0) {\n var c = u.withResumeToken(a, r).withSequenceNumber(t.currentSequenceNumber);\n i = i.insert(o, c), \n // Update the target data if there are target changes (or if\n // sufficient time has passed since the last update).\n /**\n * Returns true if the newTargetData should be persisted during an update of\n * an active target. TargetData should always be persisted when a target is\n * being released and should not call this function.\n *\n * While the target is active, TargetData updates can be omitted when nothing\n * about the target has changed except metadata like the resume token or\n * snapshot version. Occasionally it's worth the extra write to prevent these\n * values from getting too stale after a crash, but this doesn't have to be\n * too frequent.\n */\n function(t, e, n) {\n // Always persist target data if we don't already have a resume token.\n return R(e.resumeToken.approximateByteSize() > 0), 0 === t.resumeToken.approximateByteSize() || (\n // Don't allow resume token changes to be buffered indefinitely. This\n // allows us to be reasonably up-to-date after a crash and avoids needing\n // to loop over all active queries on shutdown. Especially in the browser\n // we may not get time to do anything interesting while the current tab is\n // closing.\n e.snapshotVersion.toMicroseconds() - t.snapshotVersion.toMicroseconds() >= 3e8 || n.addedDocuments.size + n.modifiedDocuments.size + n.removedDocuments.size > 0);\n }(u, c, e) && s.push(n.qe.updateTargetData(t, c));\n }\n }\n }));\n var u = Ye();\n // HACK: The only reason we allow a null snapshot version is so that we\n // can synthesize remote events when we get permission denied errors while\n // trying to resolve the state of a locally cached document that is in\n // limbo.\n if (e.documentUpdates.forEach((function(r, i) {\n e.resolvedLimboDocuments.has(r) && s.push(n.persistence.referenceDelegate.updateLimboDocument(t, r));\n })), \n // Each loop iteration only affects its \"own\" doc, so it's safe to get all the remote\n // documents in advance in a single call.\n s.push(Bi(t, o, e.documentUpdates, r, void 0).next((function(t) {\n u = t;\n }))), !r.isEqual(U.min())) {\n var a = n.qe.getLastRemoteSnapshotVersion(t).next((function(e) {\n return n.qe.setTargetsMetadata(t, t.currentSequenceNumber, r);\n }));\n s.push(a);\n }\n return mr.waitFor(s).next((function() {\n return o.apply(t);\n })).next((function() {\n return n.Mn.En(t, u);\n })).next((function() {\n return u;\n }));\n })).then((function(t) {\n return n.Fn = i, t;\n }));\n}\n\n/**\n * Populates document change buffer with documents from backend or a bundle.\n * Returns the document changes resulting from applying those documents.\n *\n * @param txn - Transaction to use to read existing documents from storage.\n * @param documentBuffer - Document buffer to collect the resulted changes to be\n * applied to storage.\n * @param documents - Documents to be applied.\n * @param globalVersion - A `SnapshotVersion` representing the read time if all\n * documents have the same read time.\n * @param documentVersions - A DocumentKey-to-SnapshotVersion map if documents\n * have their own read time.\n *\n * Note: this function will use `documentVersions` if it is defined;\n * when it is not defined, resorts to `globalVersion`.\n */ function Bi(t, e, n, r, \n// TODO(wuandy): We could add `readTime` to MaybeDocument instead to remove\n// this parameter.\ni) {\n var o = en();\n return n.forEach((function(t) {\n return o = o.add(t);\n })), e.getEntries(t, o).next((function(t) {\n var o = Ye();\n return n.forEach((function(n, s) {\n var u = t.get(n), a = (null == i ? void 0 : i.get(n)) || r;\n // Note: The order of the steps below is important, since we want\n // to ensure that rejected limbo resolutions (which fabricate\n // NoDocuments with SnapshotVersion.min()) never add documents to\n // cache.\n s.isNoDocument() && s.version.isEqual(U.min()) ? (\n // NoDocuments with SnapshotVersion.min() are used in manufactured\n // events. We remove these documents from cache since we lost\n // access.\n e.removeEntry(n, a), o = o.insert(n, s)) : !u.isValidDocument() || s.version.compareTo(u.version) > 0 || 0 === s.version.compareTo(u.version) && u.hasPendingWrites ? (e.addEntry(s, a), \n o = o.insert(n, s)) : N(\"LocalStore\", \"Ignoring outdated watch update for \", n, \". Current version:\", u.version, \" Watch version:\", s.version);\n })), o;\n }))\n /**\n * Gets the mutation batch after the passed in batchId in the mutation queue\n * or null if empty.\n * @param afterBatchId - If provided, the batch to search after.\n * @returns The next mutation or null if there wasn't one.\n */;\n}\n\nfunction ji(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Get next mutation batch\", \"readonly\", (function(t) {\n return void 0 === e && (e = -1), n._n.getNextMutationBatchAfterBatchId(t, e);\n }));\n}\n\n/**\n * Reads the current value of a Document with a given key or null if not\n * found - used for testing.\n */\n/**\n * Assigns the given target an internal ID so that its results can be pinned so\n * they don't get GC'd. A target must be allocated in the local store before\n * the store can be used to manage its view.\n *\n * Allocating an already allocated `Target` will return the existing `TargetData`\n * for that `Target`.\n */ function Ki(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Allocate target\", \"readwrite\", (function(t) {\n var r;\n return n.qe.getTargetData(t, e).next((function(i) {\n return i ? (\n // This target has been listened to previously, so reuse the\n // previous targetID.\n // TODO(mcg): freshen last accessed date?\n r = i, mr.resolve(r)) : n.qe.allocateTargetId(t).next((function(i) {\n return r = new Cr(e, i, 0 /* Listen */ , t.currentSequenceNumber), n.qe.addTargetData(t, r).next((function() {\n return r;\n }));\n }));\n }));\n })).then((function(t) {\n // If Multi-Tab is enabled, the existing target data may be newer than\n // the in-memory data\n var r = n.Fn.get(t.targetId);\n return (null === r || t.snapshotVersion.compareTo(r.snapshotVersion) > 0) && (n.Fn = n.Fn.insert(t.targetId, t), \n n.kn.set(e, t.targetId)), t;\n }));\n}\n\n/**\n * Returns the TargetData as seen by the LocalStore, including updates that may\n * have not yet been persisted to the TargetCache.\n */\n// Visible for testing.\n/**\n * Unpins all the documents associated with the given target. If\n * `keepPersistedTargetData` is set to false and Eager GC enabled, the method\n * directly removes the associated target data from the target cache.\n *\n * Releasing a non-existing `Target` is a no-op.\n */\n// PORTING NOTE: `keepPersistedTargetData` is multi-tab only.\nfunction Gi(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n r = O(t), i = r.Fn.get(e), o = n ? \"readwrite\" : \"readwrite-primary\", u.label = 1;\n\n case 1:\n return u.trys.push([ 1, 4, , 5 ]), n ? [ 3 /*break*/ , 3 ] : [ 4 /*yield*/ , r.persistence.runTransaction(\"Release target\", o, (function(t) {\n return r.persistence.referenceDelegate.removeTarget(t, i);\n })) ];\n\n case 2:\n u.sent(), u.label = 3;\n\n case 3:\n return [ 3 /*break*/ , 5 ];\n\n case 4:\n if (!_r(s = u.sent())) throw s;\n // All `releaseTarget` does is record the final metadata state for the\n // target, but we've been recording this periodically during target\n // activity. If we lose this write this could cause a very slight\n // difference in the order of target deletion during GC, but we\n // don't define exact LRU semantics so this is acceptable.\n return N(\"LocalStore\", \"Failed to update sequence numbers for target \" + e + \": \" + s), \n [ 3 /*break*/ , 5 ];\n\n case 5:\n return r.Fn = r.Fn.remove(e), r.kn.delete(i.target), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Runs the specified query against the local store and returns the results,\n * potentially taking advantage of query data from previous executions (such\n * as the set of remote keys).\n *\n * @param usePreviousResults - Whether results from previous executions can\n * be used to optimize this query execution.\n */ function Qi(t, e, n) {\n var r = O(t), i = U.min(), o = en();\n return r.persistence.runTransaction(\"Execute query\", \"readonly\", (function(t) {\n return function(t, e, n) {\n var r = O(t), i = r.kn.get(n);\n return void 0 !== i ? mr.resolve(r.Fn.get(i)) : r.qe.getTargetData(e, n);\n }(r, t, Jt(e)).next((function(e) {\n if (e) return i = e.lastLimboFreeSnapshotVersion, r.qe.getMatchingKeysForTargetId(t, e.targetId).next((function(t) {\n o = t;\n }));\n })).next((function() {\n return r.xn.getDocumentsMatchingQuery(t, e, n ? i : U.min(), n ? o : en());\n })).next((function(t) {\n return {\n documents: t,\n Bn: o\n };\n }));\n }));\n}\n\n// PORTING NOTE: Multi-Tab only.\nfunction zi(t, e) {\n var n = O(t), r = O(n.qe), i = n.Fn.get(e);\n return i ? Promise.resolve(i.target) : n.persistence.runTransaction(\"Get target data\", \"readonly\", (function(t) {\n return r.lt(t, e).next((function(t) {\n return t ? t.target : null;\n }));\n }));\n}\n\n/**\n * Returns the set of documents that have been updated since the last call.\n * If this is the first call, returns the set of changes since client\n * initialization. Further invocations will return document that have changed\n * since the prior call.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Wi(t) {\n var e = O(t);\n return e.persistence.runTransaction(\"Get new document changes\", \"readonly\", (function(t) {\n return function(t, e, n) {\n var r = O(t), i = Ye(), o = Pr(n), s = _i(e), u = IDBKeyRange.lowerBound(o, !0);\n return s.Ot({\n index: ir.readTimeIndex,\n range: u\n }, (function(t, e) {\n // Unlike `getEntry()` and others, `getNewDocumentChanges()` parses\n // the documents directly since we want to keep sentinel deletes.\n var n = Or(r.R, e);\n i = i.insert(n.key, n), o = e.readTime;\n })).next((function() {\n return {\n wn: i,\n readTime: Mr(o)\n };\n }));\n }(e.$n, t, e.On);\n })).then((function(t) {\n var n = t.wn, r = t.readTime;\n return e.On = r, n;\n }));\n}\n\n/**\n * Reads the newest document change from persistence and moves the internal\n * synchronization marker forward so that calls to `getNewDocumentChanges()`\n * only return changes that happened after client initialization.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Hi(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n return [ 2 /*return*/ , (e = O(t)).persistence.runTransaction(\"Synchronize last document change read time\", \"readonly\", (function(t) {\n return function(t) {\n var e = _i(t), n = U.min();\n // If there are no existing entries, we return SnapshotVersion.min().\n return e.Ot({\n index: ir.readTimeIndex,\n reverse: !0\n }, (function(t, e, r) {\n e.readTime && (n = Mr(e.readTime)), r.done();\n })).next((function() {\n return n;\n }));\n }(t);\n })).then((function(t) {\n e.On = t;\n })) ];\n }));\n }));\n}\n\n/**\n * Creates a new target using the given bundle name, which will be used to\n * hold the keys of all documents from the bundle in query-document mappings.\n * This ensures that the loaded documents do not get garbage collected\n * right away.\n */\n/**\n * Applies the documents from a bundle to the \"ground-state\" (remote)\n * documents.\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */ function Yi(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o, s, u, a, c, h, f, l, d;\n return I(this, (function(p) {\n switch (p.label) {\n case 0:\n for (i = O(t), o = en(), s = Ye(), u = Ze(), a = 0, c = n; a < c.length; a++) h = c[a], \n f = e.qn(h.metadata.name), h.document && (o = o.add(f)), s = s.insert(f, e.Un(h)), \n u = u.insert(f, e.Qn(h.metadata.readTime));\n return l = i.$n.newChangeBuffer({\n trackRemovals: !0\n }), [ 4 /*yield*/ , Ki(i, function(t) {\n // It is OK that the path used for the query is not valid, because this will\n // not be read and queried.\n return Jt(Qt(Q.fromString(\"__bundle__/docs/\" + t)));\n }(r)) ];\n\n case 1:\n // Allocates a target to hold all document keys from the bundle, such that\n // they will not get garbage collected right away.\n return d = p.sent(), [ 2 /*return*/ , i.persistence.runTransaction(\"Apply bundle documents\", \"readwrite\", (function(t) {\n return Bi(t, l, s, U.min(), u).next((function(e) {\n return l.apply(t), e;\n })).next((function(e) {\n return i.qe.removeMatchingKeysForTargetId(t, d.targetId).next((function() {\n return i.qe.addMatchingKeys(t, o, d.targetId);\n })).next((function() {\n return i.Mn.En(t, e);\n })).next((function() {\n return e;\n }));\n }));\n })) ];\n }\n }));\n }));\n}\n\n/**\n * Returns a promise of a boolean to indicate if the given bundle has already\n * been loaded and the create time is newer than the current loading bundle.\n */\n/**\n * Saves the given `NamedQuery` to local persistence.\n */ function Xi(t, e, n) {\n return void 0 === n && (n = en()), b(this, void 0, void 0, (function() {\n var r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return [ 4 /*yield*/ , Ki(t, Jt(jr(e.bundledQuery))) ];\n\n case 1:\n return r = o.sent(), [ 2 /*return*/ , (i = O(t)).persistence.runTransaction(\"Save named query\", \"readwrite\", (function(t) {\n var o = bn(e.readTime);\n // Simply save the query itself if it is older than what the SDK already\n // has.\n if (r.snapshotVersion.compareTo(o) >= 0) return i.Qe.saveNamedQuery(t, e);\n // Update existing target data because the query from the bundle is newer.\n var s = r.withResumeToken(Y.EMPTY_BYTE_STRING, o);\n return i.Fn = i.Fn.insert(s.targetId, s), i.qe.updateTargetData(t, s).next((function() {\n return i.qe.removeMatchingKeysForTargetId(t, r.targetId);\n })).next((function() {\n return i.qe.addMatchingKeys(t, n, r.targetId);\n })).next((function() {\n return i.Qe.saveNamedQuery(t, e);\n }));\n })) ];\n }\n }));\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var $i = /** @class */ function() {\n function t(t) {\n this.R = t, this.Kn = new Map, this.jn = new Map;\n }\n return t.prototype.getBundleMetadata = function(t, e) {\n return mr.resolve(this.Kn.get(e));\n }, t.prototype.saveBundleMetadata = function(t, e) {\n /** Decodes a BundleMetadata proto into a BundleMetadata object. */\n var n;\n return this.Kn.set(e.id, {\n id: (n = e).id,\n version: n.version,\n createTime: bn(n.createTime)\n }), mr.resolve();\n }, t.prototype.getNamedQuery = function(t, e) {\n return mr.resolve(this.jn.get(e));\n }, t.prototype.saveNamedQuery = function(t, e) {\n return this.jn.set(e.name, function(t) {\n return {\n name: t.name,\n query: jr(t.bundledQuery),\n readTime: bn(t.readTime)\n };\n }(e)), mr.resolve();\n }, t;\n}(), Ji = /** @class */ function() {\n function t() {\n // A set of outstanding references to a document sorted by key.\n this.Wn = new ze(Zi.Gn), \n // A set of outstanding references to a document sorted by target id.\n this.zn = new ze(Zi.Hn)\n /** Returns true if the reference set contains no references. */;\n }\n return t.prototype.isEmpty = function() {\n return this.Wn.isEmpty();\n }, \n /** Adds a reference to the given document key for the given ID. */ t.prototype.addReference = function(t, e) {\n var n = new Zi(t, e);\n this.Wn = this.Wn.add(n), this.zn = this.zn.add(n);\n }, \n /** Add references to the given document keys for the given ID. */ t.prototype.Jn = function(t, e) {\n var n = this;\n t.forEach((function(t) {\n return n.addReference(t, e);\n }));\n }, \n /**\n * Removes a reference to the given document key for the given\n * ID.\n */\n t.prototype.removeReference = function(t, e) {\n this.Yn(new Zi(t, e));\n }, t.prototype.Xn = function(t, e) {\n var n = this;\n t.forEach((function(t) {\n return n.removeReference(t, e);\n }));\n }, \n /**\n * Clears all references with a given ID. Calls removeRef() for each key\n * removed.\n */\n t.prototype.Zn = function(t) {\n var e = this, n = new st(new Q([])), r = new Zi(n, t), i = new Zi(n, t + 1), o = [];\n return this.zn.forEachInRange([ r, i ], (function(t) {\n e.Yn(t), o.push(t.key);\n })), o;\n }, t.prototype.ts = function() {\n var t = this;\n this.Wn.forEach((function(e) {\n return t.Yn(e);\n }));\n }, t.prototype.Yn = function(t) {\n this.Wn = this.Wn.delete(t), this.zn = this.zn.delete(t);\n }, t.prototype.es = function(t) {\n var e = new st(new Q([])), n = new Zi(e, t), r = new Zi(e, t + 1), i = en();\n return this.zn.forEachInRange([ n, r ], (function(t) {\n i = i.add(t.key);\n })), i;\n }, t.prototype.containsKey = function(t) {\n var e = new Zi(t, 0), n = this.Wn.firstAfterOrEqual(e);\n return null !== n && t.isEqual(n.key);\n }, t;\n}(), Zi = /** @class */ function() {\n function t(t, e) {\n this.key = t, this.ns = e\n /** Compare by key then by ID */;\n }\n return t.Gn = function(t, e) {\n return st.comparator(t.key, e.key) || M(t.ns, e.ns);\n }, \n /** Compare by ID then by key */ t.Hn = function(t, e) {\n return M(t.ns, e.ns) || st.comparator(t.key, e.key);\n }, t;\n}(), to = /** @class */ function() {\n function t(t, e) {\n this.Ut = t, this.referenceDelegate = e, \n /**\n * The set of all mutations that have been sent but not yet been applied to\n * the backend.\n */\n this._n = [], \n /** Next value to use when assigning sequential IDs to each mutation batch. */\n this.ss = 1, \n /** An ordered mapping between documents and the mutations batch IDs. */\n this.rs = new ze(Zi.Gn);\n }\n return t.prototype.checkEmpty = function(t) {\n return mr.resolve(0 === this._n.length);\n }, t.prototype.addMutationBatch = function(t, e, n, r) {\n var i = this.ss;\n this.ss++, this._n.length > 0 && this._n[this._n.length - 1];\n var o = new kr(i, e, n, r);\n this._n.push(o);\n // Track references by document key and index collection parents.\n for (var s = 0, u = r; s < u.length; s++) {\n var a = u[s];\n this.rs = this.rs.add(new Zi(a.key, i)), this.Ut.addToCollectionParentIndex(t, a.key.path.popLast());\n }\n return mr.resolve(o);\n }, t.prototype.lookupMutationBatch = function(t, e) {\n return mr.resolve(this.os(e));\n }, t.prototype.getNextMutationBatchAfterBatchId = function(t, e) {\n var n = e + 1, r = this.cs(n), i = r < 0 ? 0 : r;\n // The requested batchId may still be out of range so normalize it to the\n // start of the queue.\n return mr.resolve(this._n.length > i ? this._n[i] : null);\n }, t.prototype.getHighestUnacknowledgedBatchId = function() {\n return mr.resolve(0 === this._n.length ? -1 : this.ss - 1);\n }, t.prototype.getAllMutationBatches = function(t) {\n return mr.resolve(this._n.slice());\n }, t.prototype.getAllMutationBatchesAffectingDocumentKey = function(t, e) {\n var n = this, r = new Zi(e, 0), i = new Zi(e, Number.POSITIVE_INFINITY), o = [];\n return this.rs.forEachInRange([ r, i ], (function(t) {\n var e = n.os(t.ns);\n o.push(e);\n })), mr.resolve(o);\n }, t.prototype.getAllMutationBatchesAffectingDocumentKeys = function(t, e) {\n var n = this, r = new ze(M);\n return e.forEach((function(t) {\n var e = new Zi(t, 0), i = new Zi(t, Number.POSITIVE_INFINITY);\n n.rs.forEachInRange([ e, i ], (function(t) {\n r = r.add(t.ns);\n }));\n })), mr.resolve(this.us(r));\n }, t.prototype.getAllMutationBatchesAffectingQuery = function(t, e) {\n // Use the query path as a prefix for testing if a document matches the\n // query.\n var n = e.path, r = n.length + 1, i = n;\n // Construct a document reference for actually scanning the index. Unlike\n // the prefix the document key in this reference must have an even number of\n // segments. The empty segment can be used a suffix of the query path\n // because it precedes all other segments in an ordered traversal.\n st.isDocumentKey(i) || (i = i.child(\"\"));\n var o = new Zi(new st(i), 0), s = new ze(M);\n // Find unique batchIDs referenced by all documents potentially matching the\n // query.\n return this.rs.forEachWhile((function(t) {\n var e = t.key.path;\n return !!n.isPrefixOf(e) && (\n // Rows with document keys more than one segment longer than the query\n // path can't be matches. For example, a query on 'rooms' can't match\n // the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n e.length === r && (s = s.add(t.ns)), !0);\n }), o), mr.resolve(this.us(s));\n }, t.prototype.us = function(t) {\n var e = this, n = [];\n // Construct an array of matching batches, sorted by batchID to ensure that\n // multiple mutations affecting the same document key are applied in order.\n return t.forEach((function(t) {\n var r = e.os(t);\n null !== r && n.push(r);\n })), n;\n }, t.prototype.removeMutationBatch = function(t, e) {\n var n = this;\n R(0 === this.hs(e.batchId, \"removed\")), this._n.shift();\n var r = this.rs;\n return mr.forEach(e.mutations, (function(i) {\n var o = new Zi(i.key, e.batchId);\n return r = r.delete(o), n.referenceDelegate.markPotentiallyOrphaned(t, i.key);\n })).next((function() {\n n.rs = r;\n }));\n }, t.prototype.Gt = function(t) {\n // No-op since the memory mutation queue does not maintain a separate cache.\n }, t.prototype.containsKey = function(t, e) {\n var n = new Zi(e, 0), r = this.rs.firstAfterOrEqual(n);\n return mr.resolve(e.isEqual(r && r.key));\n }, t.prototype.performConsistencyCheck = function(t) {\n return this._n.length, mr.resolve();\n }, \n /**\n * Finds the index of the given batchId in the mutation queue and asserts that\n * the resulting index is within the bounds of the queue.\n *\n * @param batchId - The batchId to search for\n * @param action - A description of what the caller is doing, phrased in passive\n * form (e.g. \"acknowledged\" in a routine that acknowledges batches).\n */\n t.prototype.hs = function(t, e) {\n return this.cs(t);\n }, \n /**\n * Finds the index of the given batchId in the mutation queue. This operation\n * is O(1).\n *\n * @returns The computed index of the batch with the given batchId, based on\n * the state of the queue. Note this index can be negative if the requested\n * batchId has already been remvoed from the queue or past the end of the\n * queue if the batchId is larger than the last added batch.\n */\n t.prototype.cs = function(t) {\n return 0 === this._n.length ? 0 : t - this._n[0].batchId;\n // Examine the front of the queue to figure out the difference between the\n // batchId and indexes in the array. Note that since the queue is ordered\n // by batchId, if the first batch has a larger batchId then the requested\n // batchId doesn't exist in the queue.\n }, \n /**\n * A version of lookupMutationBatch that doesn't return a promise, this makes\n * other functions that uses this code easier to read and more efficent.\n */\n t.prototype.os = function(t) {\n var e = this.cs(t);\n return e < 0 || e >= this._n.length ? null : this._n[e];\n }, t;\n}(), eo = /** @class */ function() {\n /**\n * @param sizer - Used to assess the size of a document. For eager GC, this is\n * expected to just return 0 to avoid unnecessarily doing the work of\n * calculating the size.\n */\n function t(t, e) {\n this.Ut = t, this.ls = e, \n /** Underlying cache of documents and their read times. */\n this.docs = new Ke(st.comparator), \n /** Size of all cached documents. */\n this.size = 0\n /**\n * Adds the supplied entry to the cache and updates the cache size as appropriate.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */;\n }\n return t.prototype.addEntry = function(t, e, n) {\n var r = e.key, i = this.docs.get(r), o = i ? i.size : 0, s = this.ls(e);\n return this.docs = this.docs.insert(r, {\n document: e.clone(),\n size: s,\n readTime: n\n }), this.size += s - o, this.Ut.addToCollectionParentIndex(t, r.path.popLast());\n }, \n /**\n * Removes the specified entry from the cache and updates the cache size as appropriate.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */\n t.prototype.removeEntry = function(t) {\n var e = this.docs.get(t);\n e && (this.docs = this.docs.remove(t), this.size -= e.size);\n }, t.prototype.getEntry = function(t, e) {\n var n = this.docs.get(e);\n return mr.resolve(n ? n.document.clone() : _t.newInvalidDocument(e));\n }, t.prototype.getEntries = function(t, e) {\n var n = this, r = Ye();\n return e.forEach((function(t) {\n var e = n.docs.get(t);\n r = r.insert(t, e ? e.document.clone() : _t.newInvalidDocument(t));\n })), mr.resolve(r);\n }, t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n for (var r = Ye(), i = new st(e.path.child(\"\")), o = this.docs.getIteratorFrom(i)\n // Documents are ordered by key, so we can use a prefix scan to narrow down\n // the documents we need to match the query against.\n ; o.hasNext(); ) {\n var s = o.getNext(), u = s.key, a = s.value, c = a.document, h = a.readTime;\n if (!e.path.isPrefixOf(u.path)) break;\n h.compareTo(n) <= 0 || re(e, c) && (r = r.insert(c.key, c.clone()));\n }\n return mr.resolve(r);\n }, t.prototype.fs = function(t, e) {\n return mr.forEach(this.docs, (function(t) {\n return e(t);\n }));\n }, t.prototype.newChangeBuffer = function(t) {\n // `trackRemovals` is ignores since the MemoryRemoteDocumentCache keeps\n // a separate changelog and does not need special handling for removals.\n return new no(this);\n }, t.prototype.getSize = function(t) {\n return mr.resolve(this.size);\n }, t;\n}(), no = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).Ie = e, n;\n }\n return g(e, t), e.prototype.applyChanges = function(t) {\n var e = this, n = [];\n return this.changes.forEach((function(r, i) {\n i.document.isValidDocument() ? n.push(e.Ie.addEntry(t, i.document, e.getReadTime(r))) : e.Ie.removeEntry(r);\n })), mr.waitFor(n);\n }, e.prototype.getFromCache = function(t, e) {\n return this.Ie.getEntry(t, e);\n }, e.prototype.getAllFromCache = function(t, e) {\n return this.Ie.getEntries(t, e);\n }, e;\n}(gi), ro = /** @class */ function() {\n function t(t) {\n this.persistence = t, \n /**\n * Maps a target to the data about that target\n */\n this.ds = new mi((function(t) {\n return St(t);\n }), Dt), \n /** The last received snapshot version. */\n this.lastRemoteSnapshotVersion = U.min(), \n /** The highest numbered target ID encountered. */\n this.highestTargetId = 0, \n /** The highest sequence number encountered. */\n this.ws = 0, \n /**\n * A ordered bidirectional mapping between documents and the remote target\n * IDs.\n */\n this._s = new Ji, this.targetCount = 0, this.ys = oi.Jt();\n }\n return t.prototype.forEachTarget = function(t, e) {\n return this.ds.forEach((function(t, n) {\n return e(n);\n })), mr.resolve();\n }, t.prototype.getLastRemoteSnapshotVersion = function(t) {\n return mr.resolve(this.lastRemoteSnapshotVersion);\n }, t.prototype.getHighestSequenceNumber = function(t) {\n return mr.resolve(this.ws);\n }, t.prototype.allocateTargetId = function(t) {\n return this.highestTargetId = this.ys.next(), mr.resolve(this.highestTargetId);\n }, t.prototype.setTargetsMetadata = function(t, e, n) {\n return n && (this.lastRemoteSnapshotVersion = n), e > this.ws && (this.ws = e), \n mr.resolve();\n }, t.prototype.te = function(t) {\n this.ds.set(t.target, t);\n var e = t.targetId;\n e > this.highestTargetId && (this.ys = new oi(e), this.highestTargetId = e), t.sequenceNumber > this.ws && (this.ws = t.sequenceNumber);\n }, t.prototype.addTargetData = function(t, e) {\n return this.te(e), this.targetCount += 1, mr.resolve();\n }, t.prototype.updateTargetData = function(t, e) {\n return this.te(e), mr.resolve();\n }, t.prototype.removeTargetData = function(t, e) {\n return this.ds.delete(e.target), this._s.Zn(e.targetId), this.targetCount -= 1, \n mr.resolve();\n }, t.prototype.removeTargets = function(t, e, n) {\n var r = this, i = 0, o = [];\n return this.ds.forEach((function(s, u) {\n u.sequenceNumber <= e && null === n.get(u.targetId) && (r.ds.delete(s), o.push(r.removeMatchingKeysForTargetId(t, u.targetId)), \n i++);\n })), mr.waitFor(o).next((function() {\n return i;\n }));\n }, t.prototype.getTargetCount = function(t) {\n return mr.resolve(this.targetCount);\n }, t.prototype.getTargetData = function(t, e) {\n var n = this.ds.get(e) || null;\n return mr.resolve(n);\n }, t.prototype.addMatchingKeys = function(t, e, n) {\n return this._s.Jn(e, n), mr.resolve();\n }, t.prototype.removeMatchingKeys = function(t, e, n) {\n this._s.Xn(e, n);\n var r = this.persistence.referenceDelegate, i = [];\n return r && e.forEach((function(e) {\n i.push(r.markPotentiallyOrphaned(t, e));\n })), mr.waitFor(i);\n }, t.prototype.removeMatchingKeysForTargetId = function(t, e) {\n return this._s.Zn(e), mr.resolve();\n }, t.prototype.getMatchingKeysForTargetId = function(t, e) {\n var n = this._s.es(e);\n return mr.resolve(n);\n }, t.prototype.containsKey = function(t, e) {\n return mr.resolve(this._s.containsKey(e));\n }, t;\n}(), io = /** @class */ function() {\n /**\n * The constructor accepts a factory for creating a reference delegate. This\n * allows both the delegate and this instance to have strong references to\n * each other without having nullable fields that would then need to be\n * checked or asserted on every access.\n */\n function t(t, e) {\n var n = this;\n this.gs = {}, this.Ne = new _(0), this.xe = !1, this.xe = !0, this.referenceDelegate = t(this), \n this.qe = new ro(this), this.Ut = new zr, this.Ue = function(t, e) {\n return new eo(t, (function(t) {\n return n.referenceDelegate.ps(t);\n }));\n }(this.Ut), this.R = new Rr(e), this.Qe = new $i(this.R);\n }\n return t.prototype.start = function() {\n return Promise.resolve();\n }, t.prototype.shutdown = function() {\n // No durable state to ensure is closed on shutdown.\n return this.xe = !1, Promise.resolve();\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return this.xe;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.setDatabaseDeletedListener = function() {\n // No op.\n }, t.prototype.setNetworkEnabled = function() {\n // No op.\n }, t.prototype.getIndexManager = function() {\n return this.Ut;\n }, t.prototype.getMutationQueue = function(t) {\n var e = this.gs[t.toKey()];\n return e || (e = new to(this.Ut, this.referenceDelegate), this.gs[t.toKey()] = e), \n e;\n }, t.prototype.getTargetCache = function() {\n return this.qe;\n }, t.prototype.getRemoteDocumentCache = function() {\n return this.Ue;\n }, t.prototype.getBundleCache = function() {\n return this.Qe;\n }, t.prototype.runTransaction = function(t, e, n) {\n var r = this;\n N(\"MemoryPersistence\", \"Starting transaction:\", t);\n var i = new oo(this.Ne.next());\n return this.referenceDelegate.Es(), n(i).next((function(t) {\n return r.referenceDelegate.Ts(i).next((function() {\n return t;\n }));\n })).toPromise().then((function(t) {\n return i.raiseOnCommittedEvent(), t;\n }));\n }, t.prototype.Is = function(t, e) {\n return mr.or(Object.values(this.gs).map((function(n) {\n return function() {\n return n.containsKey(t, e);\n };\n })));\n }, t;\n}(), oo = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).currentSequenceNumber = e, n;\n }\n return g(e, t), e;\n}(yr), so = /** @class */ function() {\n function t(t) {\n this.persistence = t, \n /** Tracks all documents that are active in Query views. */\n this.As = new Ji, \n /** The list of documents that are potentially GCed after each transaction. */\n this.Rs = null;\n }\n return t.bs = function(e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"vs\", {\n get: function() {\n if (this.Rs) return this.Rs;\n throw C();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.addReference = function(t, e, n) {\n return this.As.addReference(n, e), this.vs.delete(n.toString()), mr.resolve();\n }, t.prototype.removeReference = function(t, e, n) {\n return this.As.removeReference(n, e), this.vs.add(n.toString()), mr.resolve();\n }, t.prototype.markPotentiallyOrphaned = function(t, e) {\n return this.vs.add(e.toString()), mr.resolve();\n }, t.prototype.removeTarget = function(t, e) {\n var n = this;\n this.As.Zn(e.targetId).forEach((function(t) {\n return n.vs.add(t.toString());\n }));\n var r = this.persistence.getTargetCache();\n return r.getMatchingKeysForTargetId(t, e.targetId).next((function(t) {\n t.forEach((function(t) {\n return n.vs.add(t.toString());\n }));\n })).next((function() {\n return r.removeTargetData(t, e);\n }));\n }, t.prototype.Es = function() {\n this.Rs = new Set;\n }, t.prototype.Ts = function(t) {\n var e = this, n = this.persistence.getRemoteDocumentCache().newChangeBuffer();\n // Remove newly orphaned documents.\n return mr.forEach(this.vs, (function(r) {\n var i = st.fromPath(r);\n return e.Ps(t, i).next((function(t) {\n t || n.removeEntry(i);\n }));\n })).next((function() {\n return e.Rs = null, n.apply(t);\n }));\n }, t.prototype.updateLimboDocument = function(t, e) {\n var n = this;\n return this.Ps(t, e).next((function(t) {\n t ? n.vs.delete(e.toString()) : n.vs.add(e.toString());\n }));\n }, t.prototype.ps = function(t) {\n // For eager GC, we don't care about the document size, there are no size thresholds.\n return 0;\n }, t.prototype.Ps = function(t, e) {\n var n = this;\n return mr.or([ function() {\n return mr.resolve(n.As.containsKey(e));\n }, function() {\n return n.persistence.getTargetCache().containsKey(t, e);\n }, function() {\n return n.persistence.Is(t, e);\n } ]);\n }, t;\n}(), uo = /** @class */ function() {\n function t(t) {\n this.uid = t;\n }\n return t.prototype.isAuthenticated = function() {\n return null != this.uid;\n }, \n /**\n * Returns a key representing this user, suitable for inclusion in a\n * dictionary.\n */\n t.prototype.toKey = function() {\n return this.isAuthenticated() ? \"uid:\" + this.uid : \"anonymous-user\";\n }, t.prototype.isEqual = function(t) {\n return t.uid === this.uid;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A collection of references to a document from some kind of numbered entity\n * (either a target ID or batch ID). As references are added to or removed from\n * the set corresponding events are emitted to a registered garbage collector.\n *\n * Each reference is represented by a DocumentReference object. Each of them\n * contains enough information to uniquely identify the reference. They are all\n * stored primarily in a set sorted by key. A document is considered garbage if\n * there's no references in that set (this can be efficiently checked thanks to\n * sorting by key).\n *\n * ReferenceSet also keeps a secondary set that contains references sorted by\n * IDs. This one is used to efficiently implement removal of all references by\n * some target ID.\n */\n/** Assembles the key for a client state in WebStorage */\nfunction ao(t, e) {\n return \"firestore_clients_\" + t + \"_\" + e;\n}\n\n// The format of the WebStorage key that stores the mutation state is:\n// firestore_mutations__\n// (for unauthenticated users)\n// or: firestore_mutations___\n// 'user_uid' is last to avoid needing to escape '_' characters that it might\n// contain.\n/** Assembles the key for a mutation batch in WebStorage */ function co(t, e, n) {\n var r = \"firestore_mutations_\" + t + \"_\" + n;\n return e.isAuthenticated() && (r += \"_\" + e.uid), r;\n}\n\n// The format of the WebStorage key that stores a query target's metadata is:\n// firestore_targets__\n/** Assembles the key for a query state in WebStorage */ function ho(t, e) {\n return \"firestore_targets_\" + t + \"_\" + e;\n}\n\n// The WebStorage prefix that stores the primary tab's online state. The\n// format of the key is:\n// firestore_online_state_\n/**\n * Holds the state of a mutation batch, including its user ID, batch ID and\n * whether the batch is 'pending', 'acknowledged' or 'rejected'.\n */\n// Visible for testing\n/** A user with a null UID. */ uo.UNAUTHENTICATED = new uo(null), \n// TODO(mikelehen): Look into getting a proper uid-equivalent for\n// non-FirebaseAuth providers.\nuo.GOOGLE_CREDENTIALS = new uo(\"google-credentials-uid\"), uo.FIRST_PARTY = new uo(\"first-party-uid\");\n\nvar fo = /** @class */ function() {\n function t(t, e, n, r) {\n this.user = t, this.batchId = e, this.state = n, this.error = r\n /**\n * Parses a MutationMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n, r) {\n var i, o = JSON.parse(r), s = \"object\" == typeof o && -1 !== [ \"pending\", \"acknowledged\", \"rejected\" ].indexOf(o.state) && (void 0 === o.error || \"object\" == typeof o.error);\n return s && o.error && ((s = \"string\" == typeof o.error.message && \"string\" == typeof o.error.code) && (i = new T(o.error.code, o.error.message))), \n s ? new t(e, n, o.state, i) : (A(\"SharedClientState\", \"Failed to parse mutation state for ID '\" + n + \"': \" + r), \n null);\n }, t.prototype.Ss = function() {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(), lo = /** @class */ function() {\n function t(t, e, n) {\n this.targetId = t, this.state = e, this.error = n\n /**\n * Parses a QueryTargetMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n) {\n var r, i = JSON.parse(n), o = \"object\" == typeof i && -1 !== [ \"not-current\", \"current\", \"rejected\" ].indexOf(i.state) && (void 0 === i.error || \"object\" == typeof i.error);\n return o && i.error && ((o = \"string\" == typeof i.error.message && \"string\" == typeof i.error.code) && (r = new T(i.error.code, i.error.message))), \n o ? new t(e, i.state, r) : (A(\"SharedClientState\", \"Failed to parse target state for ID '\" + e + \"': \" + n), \n null);\n }, t.prototype.Ss = function() {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(), po = /** @class */ function() {\n function t(t, e) {\n this.clientId = t, this.activeTargetIds = e\n /**\n * Parses a RemoteClientState from the JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n) {\n for (var r = JSON.parse(n), i = \"object\" == typeof r && r.activeTargetIds instanceof Array, o = rn(), s = 0; i && s < r.activeTargetIds.length; ++s) i = ot(r.activeTargetIds[s]), \n o = o.add(r.activeTargetIds[s]);\n return i ? new t(e, o) : (A(\"SharedClientState\", \"Failed to parse client data for instance '\" + e + \"': \" + n), \n null);\n }, t;\n}(), yo = /** @class */ function() {\n function t(t, e) {\n this.clientId = t, this.onlineState = e\n /**\n * Parses a SharedOnlineState from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e) {\n var n = JSON.parse(e);\n return \"object\" == typeof n && -1 !== [ \"Unknown\", \"Online\", \"Offline\" ].indexOf(n.onlineState) && \"string\" == typeof n.clientId ? new t(n.clientId, n.onlineState) : (A(\"SharedClientState\", \"Failed to parse online state: \" + e), \n null);\n }, t;\n}(), vo = /** @class */ function() {\n function t() {\n this.activeTargetIds = rn();\n }\n return t.prototype.Ds = function(t) {\n this.activeTargetIds = this.activeTargetIds.add(t);\n }, t.prototype.Cs = function(t) {\n this.activeTargetIds = this.activeTargetIds.delete(t);\n }, \n /**\n * Converts this entry into a JSON-encoded format we can use for WebStorage.\n * Does not encode `clientId` as it is part of the key in WebStorage.\n */\n t.prototype.Ss = function() {\n var t = {\n activeTargetIds: this.activeTargetIds.toArray(),\n updateTimeMs: Date.now()\n };\n return JSON.stringify(t);\n }, t;\n}(), mo = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.window = t, this.Se = e, this.persistenceKey = n, this.Ns = r, this.syncEngine = null, \n this.onlineStateHandler = null, this.sequenceNumberHandler = null, this.xs = this.Fs.bind(this), \n this.ks = new Ke(M), this.started = !1, \n /**\n * Captures WebStorage events that occur before `start()` is called. These\n * events are replayed once `WebStorageSharedClientState` is started.\n */\n this.Os = [];\n // Escape the special characters mentioned here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n var o = n.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n this.storage = this.window.localStorage, this.currentUser = i, this.$s = ao(this.persistenceKey, this.Ns), \n this.Ms = \n /** Assembles the key for the current sequence number. */\n function(t) {\n return \"firestore_sequence_number_\" + t;\n }(this.persistenceKey), this.ks = this.ks.insert(this.Ns, new vo), this.Ls = new RegExp(\"^firestore_clients_\" + o + \"_([^_]*)$\"), \n this.Bs = new RegExp(\"^firestore_mutations_\" + o + \"_(\\\\d+)(?:_(.*))?$\"), this.qs = new RegExp(\"^firestore_targets_\" + o + \"_(\\\\d+)$\"), \n this.Us = \n /** Assembles the key for the online state of the primary tab. */\n function(t) {\n return \"firestore_online_state_\" + t;\n }(this.persistenceKey), this.Qs = function(t) {\n return \"firestore_bundle_loaded_\" + t;\n }(this.persistenceKey), \n // Rather than adding the storage observer during start(), we add the\n // storage observer during initialization. This ensures that we collect\n // events before other components populate their initial state (during their\n // respective start() calls). Otherwise, we might for example miss a\n // mutation that is added after LocalStore's start() processed the existing\n // mutations but before we observe WebStorage events.\n this.window.addEventListener(\"storage\", this.xs);\n }\n /** Returns 'true' if WebStorage is available in the current environment. */ return t.yt = function(t) {\n return !(!t || !t.localStorage);\n }, t.prototype.start = function() {\n return b(this, void 0, void 0, (function() {\n var t, e, n, r, i, o, s, u, a, c, h, f = this;\n return I(this, (function(l) {\n switch (l.label) {\n case 0:\n return [ 4 /*yield*/ , this.syncEngine.fn() ];\n\n case 1:\n for (t = l.sent(), e = 0, n = t; e < n.length; e++) (r = n[e]) !== this.Ns && (i = this.getItem(ao(this.persistenceKey, r))) && (o = po.Vs(r, i)) && (this.ks = this.ks.insert(o.clientId, o));\n for (this.Ks(), (s = this.storage.getItem(this.Us)) && (u = this.js(s)) && this.Ws(u), \n a = 0, c = this.Os; a < c.length; a++) h = c[a], this.Fs(h);\n return this.Os = [], \n // Register a window unload hook to remove the client metadata entry from\n // WebStorage even if `shutdown()` was not called.\n this.window.addEventListener(\"unload\", (function() {\n return f.shutdown();\n })), this.started = !0, [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.writeSequenceNumber = function(t) {\n this.setItem(this.Ms, JSON.stringify(t));\n }, t.prototype.getAllActiveQueryTargets = function() {\n return this.Gs(this.ks);\n }, t.prototype.isActiveQueryTarget = function(t) {\n var e = !1;\n return this.ks.forEach((function(n, r) {\n r.activeTargetIds.has(t) && (e = !0);\n })), e;\n }, t.prototype.addPendingMutation = function(t) {\n this.zs(t, \"pending\");\n }, t.prototype.updateMutationState = function(t, e, n) {\n this.zs(t, e, n), \n // Once a final mutation result is observed by other clients, they no longer\n // access the mutation's metadata entry. Since WebStorage replays events\n // in order, it is safe to delete the entry right after updating it.\n this.Hs(t);\n }, t.prototype.addLocalQueryTarget = function(t) {\n var e = \"not-current\";\n // Lookup an existing query state if the target ID was already registered\n // by another tab\n if (this.isActiveQueryTarget(t)) {\n var n = this.storage.getItem(ho(this.persistenceKey, t));\n if (n) {\n var r = lo.Vs(t, n);\n r && (e = r.state);\n }\n }\n return this.Js.Ds(t), this.Ks(), e;\n }, t.prototype.removeLocalQueryTarget = function(t) {\n this.Js.Cs(t), this.Ks();\n }, t.prototype.isLocalQueryTarget = function(t) {\n return this.Js.activeTargetIds.has(t);\n }, t.prototype.clearQueryState = function(t) {\n this.removeItem(ho(this.persistenceKey, t));\n }, t.prototype.updateQueryState = function(t, e, n) {\n this.Ys(t, e, n);\n }, t.prototype.handleUserChange = function(t, e, n) {\n var r = this;\n e.forEach((function(t) {\n r.Hs(t);\n })), this.currentUser = t, n.forEach((function(t) {\n r.addPendingMutation(t);\n }));\n }, t.prototype.setOnlineState = function(t) {\n this.Xs(t);\n }, t.prototype.notifyBundleLoaded = function() {\n this.Zs();\n }, t.prototype.shutdown = function() {\n this.started && (this.window.removeEventListener(\"storage\", this.xs), this.removeItem(this.$s), \n this.started = !1);\n }, t.prototype.getItem = function(t) {\n var e = this.storage.getItem(t);\n return N(\"SharedClientState\", \"READ\", t, e), e;\n }, t.prototype.setItem = function(t, e) {\n N(\"SharedClientState\", \"SET\", t, e), this.storage.setItem(t, e);\n }, t.prototype.removeItem = function(t) {\n N(\"SharedClientState\", \"REMOVE\", t), this.storage.removeItem(t);\n }, t.prototype.Fs = function(t) {\n var e = this, n = t;\n // Note: The function is typed to take Event to be interface-compatible with\n // `Window.addEventListener`.\n if (n.storageArea === this.storage) {\n if (N(\"SharedClientState\", \"EVENT\", n.key, n.newValue), n.key === this.$s) return void A(\"Received WebStorage notification for local change. Another client might have garbage-collected our state\");\n this.Se.enqueueRetryable((function() {\n return b(e, void 0, void 0, (function() {\n var t, e, r, i, o, s;\n return I(this, (function(u) {\n if (this.started) {\n if (null !== n.key) if (this.Ls.test(n.key)) {\n if (null == n.newValue) return t = this.ti(n.key), [ 2 /*return*/ , this.ei(t, null) ];\n if (e = this.ni(n.key, n.newValue)) return [ 2 /*return*/ , this.ei(e.clientId, e) ];\n } else if (this.Bs.test(n.key)) {\n if (null !== n.newValue && (r = this.si(n.key, n.newValue))) return [ 2 /*return*/ , this.ii(r) ];\n } else if (this.qs.test(n.key)) {\n if (null !== n.newValue && (i = this.ri(n.key, n.newValue))) return [ 2 /*return*/ , this.oi(i) ];\n } else if (n.key === this.Us) {\n if (null !== n.newValue && (o = this.js(n.newValue))) return [ 2 /*return*/ , this.Ws(o) ];\n } else if (n.key === this.Ms) (s = function(t) {\n var e = _.o;\n if (null != t) try {\n var n = JSON.parse(t);\n R(\"number\" == typeof n), e = n;\n } catch (t) {\n A(\"SharedClientState\", \"Failed to read sequence number from WebStorage\", t);\n }\n return e;\n }(n.newValue)) !== _.o && this.sequenceNumberHandler(s); else if (n.key === this.Qs) return [ 2 /*return*/ , this.syncEngine.ci() ];\n } else this.Os.push(n);\n return [ 2 /*return*/ ];\n }));\n }));\n }));\n }\n }, Object.defineProperty(t.prototype, \"Js\", {\n get: function() {\n return this.ks.get(this.Ns);\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.Ks = function() {\n this.setItem(this.$s, this.Js.Ss());\n }, t.prototype.zs = function(t, e, n) {\n var r = new fo(this.currentUser, t, e, n), i = co(this.persistenceKey, this.currentUser, t);\n this.setItem(i, r.Ss());\n }, t.prototype.Hs = function(t) {\n var e = co(this.persistenceKey, this.currentUser, t);\n this.removeItem(e);\n }, t.prototype.Xs = function(t) {\n var e = {\n clientId: this.Ns,\n onlineState: t\n };\n this.storage.setItem(this.Us, JSON.stringify(e));\n }, t.prototype.Ys = function(t, e, n) {\n var r = ho(this.persistenceKey, t), i = new lo(t, e, n);\n this.setItem(r, i.Ss());\n }, t.prototype.Zs = function() {\n this.setItem(this.Qs, \"value-not-used\");\n }, \n /**\n * Parses a client state key in WebStorage. Returns null if the key does not\n * match the expected key format.\n */\n t.prototype.ti = function(t) {\n var e = this.Ls.exec(t);\n return e ? e[1] : null;\n }, \n /**\n * Parses a client state in WebStorage. Returns 'null' if the value could not\n * be parsed.\n */\n t.prototype.ni = function(t, e) {\n var n = this.ti(t);\n return po.Vs(n, e);\n }, \n /**\n * Parses a mutation batch state in WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.si = function(t, e) {\n var n = this.Bs.exec(t), r = Number(n[1]), i = void 0 !== n[2] ? n[2] : null;\n return fo.Vs(new uo(i), r, e);\n }, \n /**\n * Parses a query target state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.ri = function(t, e) {\n var n = this.qs.exec(t), r = Number(n[1]);\n return lo.Vs(r, e);\n }, \n /**\n * Parses an online state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.js = function(t) {\n return yo.Vs(t);\n }, t.prototype.ii = function(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n return t.user.uid === this.currentUser.uid ? [ 2 /*return*/ , this.syncEngine.ui(t.batchId, t.state, t.error) ] : (N(\"SharedClientState\", \"Ignoring mutation for non-active user \" + t.user.uid), \n [ 2 /*return*/ ]);\n }));\n }));\n }, t.prototype.oi = function(t) {\n return this.syncEngine.ai(t.targetId, t.state, t.error);\n }, t.prototype.ei = function(t, e) {\n var n = this, r = e ? this.ks.insert(t, e) : this.ks.remove(t), i = this.Gs(this.ks), o = this.Gs(r), s = [], u = [];\n return o.forEach((function(t) {\n i.has(t) || s.push(t);\n })), i.forEach((function(t) {\n o.has(t) || u.push(t);\n })), this.syncEngine.hi(s, u).then((function() {\n n.ks = r;\n }));\n }, t.prototype.Ws = function(t) {\n // We check whether the client that wrote this online state is still active\n // by comparing its client ID to the list of clients kept active in\n // IndexedDb. If a client does not update their IndexedDb client state\n // within 5 seconds, it is considered inactive and we don't emit an online\n // state event.\n this.ks.get(t.clientId) && this.onlineStateHandler(t.onlineState);\n }, t.prototype.Gs = function(t) {\n var e = rn();\n return t.forEach((function(t, n) {\n e = e.unionWith(n.activeTargetIds);\n })), e;\n }, t;\n}(), go = /** @class */ function() {\n function t() {\n this.li = new vo, this.fi = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null;\n }\n return t.prototype.addPendingMutation = function(t) {\n // No op.\n }, t.prototype.updateMutationState = function(t, e, n) {\n // No op.\n }, t.prototype.addLocalQueryTarget = function(t) {\n return this.li.Ds(t), this.fi[t] || \"not-current\";\n }, t.prototype.updateQueryState = function(t, e, n) {\n this.fi[t] = e;\n }, t.prototype.removeLocalQueryTarget = function(t) {\n this.li.Cs(t);\n }, t.prototype.isLocalQueryTarget = function(t) {\n return this.li.activeTargetIds.has(t);\n }, t.prototype.clearQueryState = function(t) {\n delete this.fi[t];\n }, t.prototype.getAllActiveQueryTargets = function() {\n return this.li.activeTargetIds;\n }, t.prototype.isActiveQueryTarget = function(t) {\n return this.li.activeTargetIds.has(t);\n }, t.prototype.start = function() {\n return this.li = new vo, Promise.resolve();\n }, t.prototype.handleUserChange = function(t, e, n) {\n // No op.\n }, t.prototype.setOnlineState = function(t) {\n // No op.\n }, t.prototype.shutdown = function() {}, t.prototype.writeSequenceNumber = function(t) {}, \n t.prototype.notifyBundleLoaded = function() {\n // No op.\n }, t;\n}(), wo = /** @class */ function() {\n function t() {}\n return t.prototype.di = function(t) {\n // No-op.\n }, t.prototype.shutdown = function() {\n // No-op.\n }, t;\n}(), bo = /** @class */ function() {\n function t() {\n var t = this;\n this.wi = function() {\n return t._i();\n }, this.mi = function() {\n return t.yi();\n }, this.gi = [], this.pi();\n }\n return t.prototype.di = function(t) {\n this.gi.push(t);\n }, t.prototype.shutdown = function() {\n window.removeEventListener(\"online\", this.wi), window.removeEventListener(\"offline\", this.mi);\n }, t.prototype.pi = function() {\n window.addEventListener(\"online\", this.wi), window.addEventListener(\"offline\", this.mi);\n }, t.prototype._i = function() {\n N(\"ConnectivityMonitor\", \"Network connectivity changed: AVAILABLE\");\n for (var t = 0, e = this.gi; t < e.length; t++) {\n (0, e[t])(0 /* AVAILABLE */);\n }\n }, t.prototype.yi = function() {\n N(\"ConnectivityMonitor\", \"Network connectivity changed: UNAVAILABLE\");\n for (var t = 0, e = this.gi; t < e.length; t++) {\n (0, e[t])(1 /* UNAVAILABLE */);\n }\n }, \n // TODO(chenbrian): Consider passing in window either into this component or\n // here for testing via FakeWindow.\n /** Checks that all used attributes of window are available. */\n t.yt = function() {\n return \"undefined\" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener;\n }, t;\n}(), Io = {\n BatchGetDocuments: \"batchGet\",\n Commit: \"commit\",\n RunQuery: \"runQuery\"\n}, _o = /** @class */ function() {\n function t(t) {\n this.Ei = t.Ei, this.Ti = t.Ti;\n }\n return t.prototype.Ii = function(t) {\n this.Ai = t;\n }, t.prototype.Ri = function(t) {\n this.bi = t;\n }, t.prototype.onMessage = function(t) {\n this.vi = t;\n }, t.prototype.close = function() {\n this.Ti();\n }, t.prototype.send = function(t) {\n this.Ei(t);\n }, t.prototype.Pi = function() {\n this.Ai();\n }, t.prototype.Vi = function(t) {\n this.bi(t);\n }, t.prototype.Si = function(t) {\n this.vi(t);\n }, t;\n}(), Eo = /** @class */ function(t) {\n function u(e) {\n var n = this;\n return (n = t.call(this, e) || this).forceLongPolling = e.forceLongPolling, n.autoDetectLongPolling = e.autoDetectLongPolling, \n n;\n }\n /**\n * Base class for all Rest-based connections to the backend (WebChannel and\n * HTTP).\n */\n return g(u, t), u.prototype.ki = function(t, e, n, r) {\n return new Promise((function(i, o) {\n var s = new h;\n s.listenOnce(f.COMPLETE, (function() {\n try {\n switch (s.getLastErrorCode()) {\n case l.NO_ERROR:\n var e = s.getResponseJson();\n N(\"Connection\", \"XHR received:\", JSON.stringify(e)), i(e);\n break;\n\n case l.TIMEOUT:\n N(\"Connection\", 'RPC \"' + t + '\" timed out'), o(new T(E.DEADLINE_EXCEEDED, \"Request time out\"));\n break;\n\n case l.HTTP_ERROR:\n var n = s.getStatus();\n if (N(\"Connection\", 'RPC \"' + t + '\" failed with status:', n, \"response text:\", s.getResponseText()), \n n > 0) {\n var r = s.getResponseJson().error;\n if (r && r.status && r.message) {\n var u = function(t) {\n var e = t.toLowerCase().replace(/_/g, \"-\");\n return Object.values(E).indexOf(e) >= 0 ? e : E.UNKNOWN;\n }(r.status);\n o(new T(u, r.message));\n } else o(new T(E.UNKNOWN, \"Server responded with status \" + s.getStatus()));\n } else \n // If we received an HTTP_ERROR but there's no status code,\n // it's most probably a connection issue\n o(new T(E.UNAVAILABLE, \"Connection failed.\"));\n break;\n\n default:\n C();\n }\n } finally {\n N(\"Connection\", 'RPC \"' + t + '\" completed.');\n }\n }));\n var u = JSON.stringify(r);\n s.send(e, \"POST\", u, n, 15);\n }));\n }, u.prototype.$i = function(t, u) {\n var a = [ this.Di, \"/\", \"google.firestore.v1.Firestore\", \"/\", t, \"/channel\" ], c = d(), h = p(), f = {\n // Required for backend stickiness, routing behavior is based on this\n // parameter.\n httpSessionIdParam: \"gsessionid\",\n initMessageHeaders: {},\n messageUrlParams: {\n // This param is used to improve routing and project isolation by the\n // backend and must be included in every request.\n database: \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database\n },\n sendRawJson: !0,\n supportsCrossDomainXhr: !0,\n internalChannelParams: {\n // Override the default timeout (randomized between 10-20 seconds) since\n // a large write batch on a slow internet connection may take a long\n // time to send to the backend. Rather than have WebChannel impose a\n // tight timeout which could lead to infinite timeouts and retries, we\n // set it very large (5-10 minutes) and rely on the browser's builtin\n // timeouts to kick in if the request isn't working.\n forwardChannelRequestTimeoutMs: 6e5\n },\n forceLongPolling: this.forceLongPolling,\n detectBufferingProxy: this.autoDetectLongPolling\n };\n this.Fi(f.initMessageHeaders, u), \n // Sending the custom headers we just added to request.initMessageHeaders\n // (Authorization, etc.) will trigger the browser to make a CORS preflight\n // request because the XHR will no longer meet the criteria for a \"simple\"\n // CORS request:\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests\n // Therefore to avoid the CORS preflight request (an extra network\n // roundtrip), we use the httpHeadersOverwriteParam option to specify that\n // the headers should instead be encoded into a special \"$httpHeaders\" query\n // parameter, which is recognized by the webchannel backend. This is\n // formally defined here:\n // https://github.com/google/closure-library/blob/b0e1815b13fb92a46d7c9b3c30de5d6a396a3245/closure/goog/net/rpc/httpcors.js#L32\n // TODO(b/145624756): There is a backend bug where $httpHeaders isn't respected if the request\n // doesn't have an Origin header. So we have to exclude a few browser environments that are\n // known to (sometimes) not include an Origin. See\n // https://github.com/firebase/firebase-js-sdk/issues/1491.\n e() || n() || r() || i() || o() || s() || (f.httpHeadersOverwriteParam = \"$httpHeaders\");\n var l = a.join(\"\");\n N(\"Connection\", \"Creating WebChannel: \" + l, f);\n var g = c.createWebChannel(l, f), w = !1, b = !1, I = new _o({\n Ei: function(t) {\n b ? N(\"Connection\", \"Not sending because WebChannel is closed:\", t) : (w || (N(\"Connection\", \"Opening WebChannel transport.\"), \n g.open(), w = !0), N(\"Connection\", \"WebChannel sending:\", t), g.send(t));\n },\n Ti: function() {\n return g.close();\n }\n }), _ = function(t, e, n) {\n // TODO(dimond): closure typing seems broken because WebChannel does\n // not implement goog.events.Listenable\n t.listen(e, (function(t) {\n try {\n n(t);\n } catch (t) {\n setTimeout((function() {\n throw t;\n }), 0);\n }\n }));\n };\n // WebChannel supports sending the first message with the handshake - saving\n // a network round trip. However, it will have to call send in the same\n // JS event loop as open. In order to enforce this, we delay actually\n // opening the WebChannel until send is called. Whether we have called\n // open is tracked with this variable.\n // Closure events are guarded and exceptions are swallowed, so catch any\n // exception and rethrow using a setTimeout so they become visible again.\n // Note that eventually this function could go away if we are confident\n // enough the code is exception free.\n return _(g, y.EventType.OPEN, (function() {\n b || N(\"Connection\", \"WebChannel transport opened.\");\n })), _(g, y.EventType.CLOSE, (function() {\n b || (b = !0, N(\"Connection\", \"WebChannel transport closed\"), I.Vi());\n })), _(g, y.EventType.ERROR, (function(t) {\n b || (b = !0, k(\"Connection\", \"WebChannel transport errored:\", t), I.Vi(new T(E.UNAVAILABLE, \"The operation could not be completed\")));\n })), _(g, y.EventType.MESSAGE, (function(t) {\n var e;\n if (!b) {\n var n = t.data[0];\n R(!!n);\n // TODO(b/35143891): There is a bug in One Platform that caused errors\n // (and only errors) to be wrapped in an extra array. To be forward\n // compatible with the bug we need to check either condition. The latter\n // can be removed once the fix has been rolled out.\n // Use any because msgData.error is not typed.\n var r = n, i = r.error || (null === (e = r[0]) || void 0 === e ? void 0 : e.error);\n if (i) {\n N(\"Connection\", \"WebChannel received error:\", i);\n // error.status will be a string like 'OK' or 'NOT_FOUND'.\n var o = i.status, s = \n /**\n * Maps an error Code from a GRPC status identifier like 'NOT_FOUND'.\n *\n * @returns The Code equivalent to the given status string or undefined if\n * there is no match.\n */\n function(t) {\n // lookup by string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var e = Me[t];\n if (void 0 !== e) return je(e);\n }(o), u = i.message;\n void 0 === s && (s = E.INTERNAL, u = \"Unknown error status: \" + o + \" with message \" + i.message), \n // Mark closed so no further events are propagated\n b = !0, I.Vi(new T(s, u)), g.close();\n } else N(\"Connection\", \"WebChannel received:\", n), I.Si(n);\n }\n })), _(h, v.STAT_EVENT, (function(t) {\n t.stat === m.PROXY ? N(\"Connection\", \"Detected buffering proxy\") : t.stat === m.NOPROXY && N(\"Connection\", \"Detected no buffering proxy\");\n })), setTimeout((function() {\n // Technically we could/should wait for the WebChannel opened event,\n // but because we want to send the first message with the WebChannel\n // handshake we pretend the channel opened here (asynchronously), and\n // then delay the actual open until the first message is sent.\n I.Pi();\n }), 0), I;\n }, u;\n}(/** @class */ function() {\n function t(t) {\n this.databaseInfo = t, this.databaseId = t.databaseId;\n var e = t.ssl ? \"https\" : \"http\";\n this.Di = e + \"://\" + t.host, this.Ci = \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database + \"/documents\";\n }\n return t.prototype.Ni = function(t, e, n, r) {\n var i = this.xi(t, e);\n N(\"RestConnection\", \"Sending: \", i, n);\n var o = {};\n return this.Fi(o, r), this.ki(t, i, o, n).then((function(t) {\n return N(\"RestConnection\", \"Received: \", t), t;\n }), (function(e) {\n throw k(\"RestConnection\", t + \" failed with error: \", e, \"url: \", i, \"request:\", n), \n e;\n }));\n }, t.prototype.Oi = function(t, e, n, r) {\n // The REST API automatically aggregates all of the streamed results, so we\n // can just use the normal invoke() method.\n return this.Ni(t, e, n, r);\n }, \n /**\n * Modifies the headers for a request, adding any authorization token if\n * present and any additional headers for the request.\n */\n t.prototype.Fi = function(t, e) {\n if (t[\"X-Goog-Api-Client\"] = \"gl-js/ fire/8.3.3\", t[\"X-Firebase-GMPID\"] = this.databaseInfo.appId, \n // Content-Type: text/plain will avoid preflight requests which might\n // mess with CORS and redirects by proxies. If we add custom headers\n // we will need to change this code to potentially use the $httpOverwrite\n // parameter supported by ESF to avoid triggering preflight requests.\n t[\"Content-Type\"] = \"text/plain\", e) for (var n in e.authHeaders) e.authHeaders.hasOwnProperty(n) && (t[n] = e.authHeaders[n]);\n }, t.prototype.xi = function(t, e) {\n var n = Io[t];\n return this.Di + \"/v1/\" + e + \":\" + n;\n }, t;\n}());\n\n/**\n * Holds the state of a query target, including its target ID and whether the\n * target is 'not-current', 'current' or 'rejected'.\n */\n// Visible for testing\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Initializes the WebChannelConnection for the browser. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** The Platform's 'window' implementation or null if not available. */\nfunction To() {\n // `window` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof window ? window : null;\n}\n\n/** The Platform's 'document' implementation or null if not available. */ function So() {\n // `document` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof document ? document : null;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function Do(t) {\n return new vn(t, /* useProto3Json= */ !0);\n}\n\n/**\n * An instance of the Platform's 'TextEncoder' implementation.\n */\n/**\n * A helper for running delayed tasks following an exponential backoff curve\n * between attempts.\n *\n * Each delay is made up of a \"base\" delay which follows the exponential\n * backoff curve, and a +/- 50% \"jitter\" that is calculated and added to the\n * base delay. This prevents clients from accidentally synchronizing their\n * delays causing spikes of load to the backend.\n */ var No = /** @class */ function() {\n function t(\n /**\n * The AsyncQueue to run backoff operations on.\n */\n t, \n /**\n * The ID to use when scheduling backoff operations on the AsyncQueue.\n */\n e, \n /**\n * The initial delay (used as the base delay on the first retry attempt).\n * Note that jitter will still be applied, so the actual delay could be as\n * little as 0.5*initialDelayMs.\n */\n n\n /**\n * The multiplier to use to determine the extended base delay after each\n * attempt.\n */ , r\n /**\n * The maximum base delay after which no further backoff is performed.\n * Note that jitter will still be applied, so the actual delay could be as\n * much as 1.5*maxDelayMs.\n */ , i) {\n void 0 === n && (n = 1e3), void 0 === r && (r = 1.5), void 0 === i && (i = 6e4), \n this.Se = t, this.timerId = e, this.Mi = n, this.Li = r, this.Bi = i, this.qi = 0, \n this.Ui = null, \n /** The last backoff attempt, as epoch milliseconds. */\n this.Qi = Date.now(), this.reset();\n }\n /**\n * Resets the backoff delay.\n *\n * The very next backoffAndWait() will have no delay. If it is called again\n * (i.e. due to an error), initialDelayMs (plus jitter) will be used, and\n * subsequent ones will increase according to the backoffFactor.\n */ return t.prototype.reset = function() {\n this.qi = 0;\n }, \n /**\n * Resets the backoff delay to the maximum delay (e.g. for use after a\n * RESOURCE_EXHAUSTED error).\n */\n t.prototype.Ki = function() {\n this.qi = this.Bi;\n }, \n /**\n * Returns a promise that resolves after currentDelayMs, and increases the\n * delay for any subsequent attempts. If there was a pending backoff operation\n * already, it will be canceled.\n */\n t.prototype.ji = function(t) {\n var e = this;\n // Cancel any pending backoff operation.\n this.cancel();\n // First schedule using the current base (which may be 0 and should be\n // honored as such).\n var n = Math.floor(this.qi + this.Wi()), r = Math.max(0, Date.now() - this.Qi), i = Math.max(0, n - r);\n // Guard against lastAttemptTime being in the future due to a clock change.\n i > 0 && N(\"ExponentialBackoff\", \"Backing off for \" + i + \" ms (base delay: \" + this.qi + \" ms, delay with jitter: \" + n + \" ms, last attempt: \" + r + \" ms ago)\"), \n this.Ui = this.Se.enqueueAfterDelay(this.timerId, i, (function() {\n return e.Qi = Date.now(), t();\n })), \n // Apply backoff factor to determine next delay and ensure it is within\n // bounds.\n this.qi *= this.Li, this.qi < this.Mi && (this.qi = this.Mi), this.qi > this.Bi && (this.qi = this.Bi);\n }, t.prototype.Gi = function() {\n null !== this.Ui && (this.Ui.skipDelay(), this.Ui = null);\n }, t.prototype.cancel = function() {\n null !== this.Ui && (this.Ui.cancel(), this.Ui = null);\n }, \n /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ t.prototype.Wi = function() {\n return (Math.random() - .5) * this.qi;\n }, t;\n}(), Ao = /** @class */ function() {\n function t(t, e, n, r, i, o) {\n this.Se = t, this.zi = n, this.Hi = r, this.Ji = i, this.listener = o, this.state = 0 /* Initial */ , \n /**\n * A close count that's incremented every time the stream is closed; used by\n * getCloseGuardedDispatcher() to invalidate callbacks that happen after\n * close.\n */\n this.Yi = 0, this.Xi = null, this.stream = null, this.Zi = new No(t, e)\n /**\n * Returns true if start() has been called and no error has occurred. True\n * indicates the stream is open or in the process of opening (which\n * encompasses respecting backoff, getting auth tokens, and starting the\n * actual RPC). Use isOpen() to determine if the stream is open and ready for\n * outbound requests.\n */;\n }\n return t.prototype.tr = function() {\n return 1 /* Starting */ === this.state || 2 /* Open */ === this.state || 4 /* Backoff */ === this.state;\n }, \n /**\n * Returns true if the underlying RPC is open (the onOpen() listener has been\n * called) and the stream is ready for outbound requests.\n */\n t.prototype.er = function() {\n return 2 /* Open */ === this.state;\n }, \n /**\n * Starts the RPC. Only allowed if isStarted() returns false. The stream is\n * not immediately ready for use: onOpen() will be invoked when the RPC is\n * ready for outbound requests, at which point isOpen() will return true.\n *\n * When start returns, isStarted() will return true.\n */\n t.prototype.start = function() {\n 3 /* Error */ !== this.state ? this.auth() : this.nr();\n }, \n /**\n * Stops the RPC. This call is idempotent and allowed regardless of the\n * current isStarted() state.\n *\n * When stop returns, isStarted() and isOpen() will both return false.\n */\n t.prototype.stop = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.tr() ? [ 4 /*yield*/ , this.close(0 /* Initial */) ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * After an error the stream will usually back off on the next attempt to\n * start it. If the error warrants an immediate restart of the stream, the\n * sender can use this to indicate that the receiver should not back off.\n *\n * Each error will call the onClose() listener. That function can decide to\n * inhibit backoff if required.\n */\n t.prototype.sr = function() {\n this.state = 0 /* Initial */ , this.Zi.reset();\n }, \n /**\n * Marks this stream as idle. If no further actions are performed on the\n * stream for one minute, the stream will automatically close itself and\n * notify the stream's onClose() handler with Status.OK. The stream will then\n * be in a !isStarted() state, requiring the caller to start the stream again\n * before further use.\n *\n * Only streams that are in state 'Open' can be marked idle, as all other\n * states imply pending network operations.\n */\n t.prototype.ir = function() {\n var t = this;\n // Starts the idle time if we are in state 'Open' and are not yet already\n // running a timer (in which case the previous idle timeout still applies).\n this.er() && null === this.Xi && (this.Xi = this.Se.enqueueAfterDelay(this.zi, 6e4, (function() {\n return t.rr();\n })));\n }, \n /** Sends a message to the underlying stream. */ t.prototype.cr = function(t) {\n this.ur(), this.stream.send(t);\n }, \n /** Called by the idle timer when the stream should close due to inactivity. */ t.prototype.rr = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n return this.er() ? [ 2 /*return*/ , this.close(0 /* Initial */) ] : [ 2 /*return*/ ];\n }));\n }));\n }, \n /** Marks the stream as active again. */ t.prototype.ur = function() {\n this.Xi && (this.Xi.cancel(), this.Xi = null);\n }, \n /**\n * Closes the stream and cleans up as necessary:\n *\n * * closes the underlying GRPC stream;\n * * calls the onClose handler with the given 'error';\n * * sets internal stream state to 'finalState';\n * * adjusts the backoff timer based on the error\n *\n * A new stream can be opened by calling start().\n *\n * @param finalState - the intended state of the stream after closing.\n * @param error - the error the connection was closed with.\n */\n t.prototype.close = function(t, e) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n // Notify the listener that the stream closed.\n // Cancel any outstanding timers (they're guaranteed not to execute).\n return this.ur(), this.Zi.cancel(), \n // Invalidates any stream-related callbacks (e.g. from auth or the\n // underlying stream), guaranteeing they won't execute.\n this.Yi++, 3 /* Error */ !== t ? \n // If this is an intentional close ensure we don't delay our next connection attempt.\n this.Zi.reset() : e && e.code === E.RESOURCE_EXHAUSTED ? (\n // Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)\n A(e.toString()), A(\"Using maximum backoff delay to prevent overloading the backend.\"), \n this.Zi.Ki()) : e && e.code === E.UNAUTHENTICATED && \n // \"unauthenticated\" error means the token was rejected. Try force refreshing it in case it\n // just expired.\n this.Ji.invalidateToken(), \n // Clean up the underlying stream because we are no longer interested in events.\n null !== this.stream && (this.ar(), this.stream.close(), this.stream = null), \n // This state must be assigned before calling onClose() to allow the callback to\n // inhibit backoff or otherwise manipulate the state in its non-started state.\n this.state = t, [ 4 /*yield*/ , this.listener.Ri(e) ];\n\n case 1:\n // Cancel any outstanding timers (they're guaranteed not to execute).\n // Notify the listener that the stream closed.\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Can be overridden to perform additional cleanup before the stream is closed.\n * Calling super.tearDown() is not required.\n */\n t.prototype.ar = function() {}, t.prototype.auth = function() {\n var t = this;\n this.state = 1 /* Starting */;\n var e = this.hr(this.Yi), n = this.Yi;\n // TODO(mikelehen): Just use dispatchIfNotClosed, but see TODO below.\n this.Ji.getToken().then((function(e) {\n // Stream can be stopped while waiting for authentication.\n // TODO(mikelehen): We really should just use dispatchIfNotClosed\n // and let this dispatch onto the queue, but that opened a spec test can\n // of worms that I don't want to deal with in this PR.\n t.Yi === n && \n // Normally we'd have to schedule the callback on the AsyncQueue.\n // However, the following calls are safe to be called outside the\n // AsyncQueue since they don't chain asynchronous calls\n t.lr(e);\n }), (function(n) {\n e((function() {\n var e = new T(E.UNKNOWN, \"Fetching auth token failed: \" + n.message);\n return t.dr(e);\n }));\n }));\n }, t.prototype.lr = function(t) {\n var e = this, n = this.hr(this.Yi);\n this.stream = this.wr(t), this.stream.Ii((function() {\n n((function() {\n return e.state = 2 /* Open */ , e.listener.Ii();\n }));\n })), this.stream.Ri((function(t) {\n n((function() {\n return e.dr(t);\n }));\n })), this.stream.onMessage((function(t) {\n n((function() {\n return e.onMessage(t);\n }));\n }));\n }, t.prototype.nr = function() {\n var t = this;\n this.state = 4 /* Backoff */ , this.Zi.ji((function() {\n return b(t, void 0, void 0, (function() {\n return I(this, (function(t) {\n return this.state = 0 /* Initial */ , this.start(), [ 2 /*return*/ ];\n }));\n }));\n }));\n }, \n // Visible for tests\n t.prototype.dr = function(t) {\n // In theory the stream could close cleanly, however, in our current model\n // we never expect this to happen because if we stop a stream ourselves,\n // this callback will never be called. To prevent cases where we retry\n // without a backoff accidentally, we set the stream to error in all cases.\n return N(\"PersistentStream\", \"close with error: \" + t), this.stream = null, this.close(3 /* Error */ , t);\n }, \n /**\n * Returns a \"dispatcher\" function that dispatches operations onto the\n * AsyncQueue but only runs them if closeCount remains unchanged. This allows\n * us to turn auth / stream callbacks into no-ops if the stream is closed /\n * re-opened, etc.\n */\n t.prototype.hr = function(t) {\n var e = this;\n return function(n) {\n e.Se.enqueueAndForget((function() {\n return e.Yi === t ? n() : (N(\"PersistentStream\", \"stream callback skipped by getCloseGuardedDispatcher.\"), \n Promise.resolve());\n }));\n };\n }, t;\n}(), ko = /** @class */ function(t) {\n function e(e, n, r, i, o) {\n var s = this;\n return (s = t.call(this, e, \"listen_stream_connection_backoff\" /* ListenStreamConnectionBackoff */ , \"listen_stream_idle\" /* ListenStreamIdle */ , n, r, o) || this).R = i, \n s;\n }\n return g(e, t), e.prototype.wr = function(t) {\n return this.Hi.$i(\"Listen\", t);\n }, e.prototype.onMessage = function(t) {\n // A successful response means the stream is healthy\n this.Zi.reset();\n var e = function(t, e) {\n var n;\n if (\"targetChange\" in e) {\n e.targetChange;\n // proto3 default value is unset in JSON (undefined), so use 'NO_CHANGE'\n // if unset\n var r = function(t) {\n return \"NO_CHANGE\" === t ? 0 /* NoChange */ : \"ADD\" === t ? 1 /* Added */ : \"REMOVE\" === t ? 2 /* Removed */ : \"CURRENT\" === t ? 3 /* Current */ : \"RESET\" === t ? 4 /* Reset */ : C();\n }(e.targetChange.targetChangeType || \"NO_CHANGE\"), i = e.targetChange.targetIds || [], o = function(t, e) {\n return t.I ? (R(void 0 === e || \"string\" == typeof e), Y.fromBase64String(e || \"\")) : (R(void 0 === e || e instanceof Uint8Array), \n Y.fromUint8Array(e || new Uint8Array));\n }(t, e.targetChange.resumeToken), s = (u = e.targetChange.cause) && function(t) {\n var e = void 0 === t.code ? E.UNKNOWN : je(t.code);\n return new T(e, t.message || \"\");\n }(u);\n n = new cn(r, i, o, s || null);\n } else if (\"documentChange\" in e) {\n e.documentChange, (r = e.documentChange).document, r.document.name, r.document.updateTime, \n i = Tn(t, r.document.name), o = bn(r.document.updateTime);\n var u = new bt({\n mapValue: {\n fields: r.document.fields\n }\n }), a = (s = _t.newFoundDocument(i, o, u), r.targetIds || []), c = r.removedTargetIds || [];\n n = new un(a, c, s.key, s);\n } else if (\"documentDelete\" in e) e.documentDelete, (r = e.documentDelete).document, \n i = Tn(t, r.document), o = r.readTime ? bn(r.readTime) : U.min(), u = _t.newNoDocument(i, o), \n s = r.removedTargetIds || [], n = new un([], s, u.key, u); else if (\"documentRemove\" in e) e.documentRemove, \n (r = e.documentRemove).document, i = Tn(t, r.document), o = r.removedTargetIds || [], \n n = new un([], o, i, null); else {\n if (!(\"filter\" in e)) return C();\n e.filter;\n var h = e.filter;\n h.targetId, r = h.count || 0, i = new Ue(r), o = h.targetId, n = new an(o, i);\n }\n return n;\n }(this.R, t), n = function(t) {\n // We have only reached a consistent snapshot for the entire stream if there\n // is a read_time set and it applies to all targets (i.e. the list of\n // targets is empty). The backend is guaranteed to send such responses.\n if (!(\"targetChange\" in t)) return U.min();\n var e = t.targetChange;\n return e.targetIds && e.targetIds.length ? U.min() : e.readTime ? bn(e.readTime) : U.min();\n }(t);\n return this.listener._r(e, n);\n }, \n /**\n * Registers interest in the results of the given target. If the target\n * includes a resumeToken it will be included in the request. Results that\n * affect the target will be streamed back as WatchChange messages that\n * reference the targetId.\n */\n e.prototype.mr = function(t) {\n var e = {};\n e.database = Nn(this.R), e.addTarget = function(t, e) {\n var n, r = e.target;\n return (n = Nt(r) ? {\n documents: On(t, r)\n } : {\n query: Ln(t, r)\n }).targetId = e.targetId, e.resumeToken.approximateByteSize() > 0 ? n.resumeToken = gn(t, e.resumeToken) : e.snapshotVersion.compareTo(U.min()) > 0 && (\n // TODO(wuandy): Consider removing above check because it is most likely true.\n // Right now, many tests depend on this behaviour though (leaving min() out\n // of serialization).\n n.readTime = mn(t, e.snapshotVersion.toTimestamp())), n;\n }(this.R, t);\n var n = function(t, e) {\n var n = function(t, e) {\n switch (e) {\n case 0 /* Listen */ :\n return null;\n\n case 1 /* ExistenceFilterMismatch */ :\n return \"existence-filter-mismatch\";\n\n case 2 /* LimboResolution */ :\n return \"limbo-document\";\n\n default:\n return C();\n }\n }(0, e.purpose);\n return null == n ? null : {\n \"goog-listen-tags\": n\n };\n }(this.R, t);\n n && (e.labels = n), this.cr(e);\n }, \n /**\n * Unregisters interest in the results of the target associated with the\n * given targetId.\n */\n e.prototype.yr = function(t) {\n var e = {};\n e.database = Nn(this.R), e.removeTarget = t, this.cr(e);\n }, e;\n}(Ao), xo = /** @class */ function(t) {\n function e(e, n, r, i, o) {\n var s = this;\n return (s = t.call(this, e, \"write_stream_connection_backoff\" /* WriteStreamConnectionBackoff */ , \"write_stream_idle\" /* WriteStreamIdle */ , n, r, o) || this).R = i, \n s.gr = !1, s;\n }\n return g(e, t), Object.defineProperty(e.prototype, \"pr\", {\n /**\n * Tracks whether or not a handshake has been successfully exchanged and\n * the stream is ready to accept mutations.\n */\n get: function() {\n return this.gr;\n },\n enumerable: !1,\n configurable: !0\n }), \n // Override of PersistentStream.start\n e.prototype.start = function() {\n this.gr = !1, this.lastStreamToken = void 0, t.prototype.start.call(this);\n }, e.prototype.ar = function() {\n this.gr && this.Er([]);\n }, e.prototype.wr = function(t) {\n return this.Hi.$i(\"Write\", t);\n }, e.prototype.onMessage = function(t) {\n if (\n // Always capture the last stream token.\n R(!!t.streamToken), this.lastStreamToken = t.streamToken, this.gr) {\n // A successful first write response means the stream is healthy,\n // Note, that we could consider a successful handshake healthy, however,\n // the write itself might be causing an error we want to back off from.\n this.Zi.reset();\n var e = function(t, e) {\n return t && t.length > 0 ? (R(void 0 !== e), t.map((function(t) {\n return function(t, e) {\n // NOTE: Deletes don't have an updateTime.\n var n = t.updateTime ? bn(t.updateTime) : bn(e);\n return n.isEqual(U.min()) && (\n // The Firestore Emulator currently returns an update time of 0 for\n // deletes of non-existing documents (rather than null). This breaks the\n // test \"get deleted doc while offline with source=cache\" as NoDocuments\n // with version 0 are filtered by IndexedDb's RemoteDocumentCache.\n // TODO(#2149): Remove this when Emulator is fixed\n n = bn(e)), new _e(n, t.transformResults || []);\n }(t, e);\n }))) : [];\n }(t.writeResults, t.commitTime), n = bn(t.commitTime);\n return this.listener.Tr(n, e);\n }\n // The first response is always the handshake response\n return R(!t.writeResults || 0 === t.writeResults.length), this.gr = !0, \n this.listener.Ir();\n }, \n /**\n * Sends an initial streamToken to the server, performing the handshake\n * required to make the StreamingWrite RPC work. Subsequent\n * calls should wait until onHandshakeComplete was called.\n */\n e.prototype.Ar = function() {\n // TODO(dimond): Support stream resumption. We intentionally do not set the\n // stream token on the handshake, ignoring any stream token we might have.\n var t = {};\n t.database = Nn(this.R), this.cr(t);\n }, \n /** Sends a group of mutations to the Firestore backend to apply. */ e.prototype.Er = function(t) {\n var e = this, n = {\n streamToken: this.lastStreamToken,\n writes: t.map((function(t) {\n return Cn(e.R, t);\n }))\n };\n this.cr(n);\n }, e;\n}(Ao), Co = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).credentials = e, i.Hi = n, i.R = r, i.Rr = !1, \n i;\n }\n return g(e, t), e.prototype.br = function() {\n if (this.Rr) throw new T(E.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }, \n /** Gets an auth token and invokes the provided RPC. */ e.prototype.Ni = function(t, e, n) {\n var r = this;\n return this.br(), this.credentials.getToken().then((function(i) {\n return r.Hi.Ni(t, e, n, i);\n })).catch((function(t) {\n throw t.code === E.UNAUTHENTICATED && r.credentials.invalidateToken(), t;\n }));\n }, \n /** Gets an auth token and invokes the provided RPC with streamed results. */ e.prototype.Oi = function(t, e, n) {\n var r = this;\n return this.br(), this.credentials.getToken().then((function(i) {\n return r.Hi.Oi(t, e, n, i);\n })).catch((function(t) {\n throw t.code === E.UNAUTHENTICATED && r.credentials.invalidateToken(), t;\n }));\n }, e.prototype.terminate = function() {\n this.Rr = !1;\n }, e;\n}((function() {})), Ro = /** @class */ function() {\n function t(t, e) {\n this.asyncQueue = t, this.onlineStateHandler = e, \n /** The current OnlineState. */\n this.state = \"Unknown\" /* Unknown */ , \n /**\n * A count of consecutive failures to open the stream. If it reaches the\n * maximum defined by MAX_WATCH_STREAM_FAILURES, we'll set the OnlineState to\n * Offline.\n */\n this.vr = 0, \n /**\n * A timer that elapses after ONLINE_STATE_TIMEOUT_MS, at which point we\n * transition from OnlineState.Unknown to OnlineState.Offline without waiting\n * for the stream to actually fail (MAX_WATCH_STREAM_FAILURES times).\n */\n this.Pr = null, \n /**\n * Whether the client should log a warning message if it fails to connect to\n * the backend (initially true, cleared after a successful stream, or if we've\n * logged the message already).\n */\n this.Vr = !0\n /**\n * Called by RemoteStore when a watch stream is started (including on each\n * backoff attempt).\n *\n * If this is the first attempt, it sets the OnlineState to Unknown and starts\n * the onlineStateTimer.\n */;\n }\n return t.prototype.Sr = function() {\n var t = this;\n 0 === this.vr && (this.Dr(\"Unknown\" /* Unknown */), this.Pr = this.asyncQueue.enqueueAfterDelay(\"online_state_timeout\" /* OnlineStateTimeout */ , 1e4, (function() {\n return t.Pr = null, t.Cr(\"Backend didn't respond within 10 seconds.\"), t.Dr(\"Offline\" /* Offline */), \n Promise.resolve();\n })));\n }, \n /**\n * Updates our OnlineState as appropriate after the watch stream reports a\n * failure. The first failure moves us to the 'Unknown' state. We then may\n * allow multiple failures (based on MAX_WATCH_STREAM_FAILURES) before we\n * actually transition to the 'Offline' state.\n */\n t.prototype.Nr = function(t) {\n \"Online\" /* Online */ === this.state ? this.Dr(\"Unknown\" /* Unknown */) : (this.vr++, \n this.vr >= 1 && (this.Fr(), this.Cr(\"Connection failed 1 times. Most recent error: \" + t.toString()), \n this.Dr(\"Offline\" /* Offline */)));\n }, \n /**\n * Explicitly sets the OnlineState to the specified state.\n *\n * Note that this resets our timers / failure counters, etc. used by our\n * Offline heuristics, so must not be used in place of\n * handleWatchStreamStart() and handleWatchStreamFailure().\n */\n t.prototype.set = function(t) {\n this.Fr(), this.vr = 0, \"Online\" /* Online */ === t && (\n // We've connected to watch at least once. Don't warn the developer\n // about being offline going forward.\n this.Vr = !1), this.Dr(t);\n }, t.prototype.Dr = function(t) {\n t !== this.state && (this.state = t, this.onlineStateHandler(t));\n }, t.prototype.Cr = function(t) {\n var e = \"Could not reach Cloud Firestore backend. \" + t + \"\\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.\";\n this.Vr ? (A(e), this.Vr = !1) : N(\"OnlineStateTracker\", e);\n }, t.prototype.Fr = function() {\n null !== this.Pr && (this.Pr.cancel(), this.Pr = null);\n }, t;\n}(), Oo = function(\n/**\n * The local store, used to fill the write pipeline with outbound mutations.\n */\nt, \n/** The client-side proxy for interacting with the backend. */\ne, n, r, i) {\n var o = this;\n this.localStore = t, this.datastore = e, this.asyncQueue = n, this.remoteSyncer = {}, \n /**\n * A list of up to MAX_PENDING_WRITES writes that we have fetched from the\n * LocalStore via fillWritePipeline() and have or will send to the write\n * stream.\n *\n * Whenever writePipeline.length > 0 the RemoteStore will attempt to start or\n * restart the write stream. When the stream is established the writes in the\n * pipeline will be sent in order.\n *\n * Writes remain in writePipeline until they are acknowledged by the backend\n * and thus will automatically be re-sent if the stream is interrupted /\n * restarted before they're acknowledged.\n *\n * Write responses from the backend are linked to their originating request\n * purely based on order, and so we can just shift() writes from the front of\n * the writePipeline as we receive responses.\n */\n this.kr = [], \n /**\n * A mapping of watched targets that the client cares about tracking and the\n * user has explicitly called a 'listen' for this target.\n *\n * These targets may or may not have been sent to or acknowledged by the\n * server. On re-establishing the listen stream, these targets should be sent\n * to the server. The targets removed with unlistens are removed eagerly\n * without waiting for confirmation from the listen stream.\n */\n this.Or = new Map, \n /**\n * A set of reasons for why the RemoteStore may be offline. If empty, the\n * RemoteStore may start its network connections.\n */\n this.$r = new Set, \n /**\n * Event handlers that get called when the network is disabled or enabled.\n *\n * PORTING NOTE: These functions are used on the Web client to create the\n * underlying streams (to support tree-shakeable streams). On Android and iOS,\n * the streams are created during construction of RemoteStore.\n */\n this.Mr = [], this.Lr = i, this.Lr.di((function(t) {\n n.enqueueAndForget((function() {\n return b(o, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return jo(this) ? (N(\"RemoteStore\", \"Restarting streams for network reachability change.\"), \n [ 4 /*yield*/ , function(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return (e = O(t)).$r.add(4 /* ConnectivityChange */), [ 4 /*yield*/ , Po(e) ];\n\n case 1:\n return n.sent(), e.Br.set(\"Unknown\" /* Unknown */), e.$r.delete(4 /* ConnectivityChange */), \n [ 4 /*yield*/ , Lo(e) ];\n\n case 2:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n })), this.Br = new Ro(n, r);\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A PersistentStream is an abstract base class that represents a streaming RPC\n * to the Firestore backend. It's built on top of the connections own support\n * for streaming RPCs, and adds several critical features for our clients:\n *\n * - Exponential backoff on failure\n * - Authentication via CredentialsProvider\n * - Dispatching all callbacks into the shared worker queue\n * - Closing idle streams after 60 seconds of inactivity\n *\n * Subclasses of PersistentStream implement serialization of models to and\n * from the JSON representation of the protocol buffers for a specific\n * streaming RPC.\n *\n * ## Starting and Stopping\n *\n * Streaming RPCs are stateful and need to be start()ed before messages can\n * be sent and received. The PersistentStream will call the onOpen() function\n * of the listener once the stream is ready to accept requests.\n *\n * Should a start() fail, PersistentStream will call the registered onClose()\n * listener with a FirestoreError indicating what went wrong.\n *\n * A PersistentStream can be started and stopped repeatedly.\n *\n * Generic types:\n * SendType: The type of the outgoing message of the underlying\n * connection stream\n * ReceiveType: The type of the incoming message of the underlying\n * connection stream\n * ListenerType: The type of the listener that will be used for callbacks\n */ function Lo(t) {\n return b(this, void 0, void 0, (function() {\n var e, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n if (!jo(t)) return [ 3 /*break*/ , 4 ];\n e = 0, n = t.Mr, r.label = 1;\n\n case 1:\n return e < n.length ? [ 4 /*yield*/ , (0, n[e])(/* enabled= */ !0) ] : [ 3 /*break*/ , 4 ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return e++, [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Temporarily disables the network. The network can be re-enabled using\n * enableNetwork().\n */ function Po(t) {\n return b(this, void 0, void 0, (function() {\n var e, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n e = 0, n = t.Mr, r.label = 1;\n\n case 1:\n return e < n.length ? [ 4 /*yield*/ , (0, n[e])(/* enabled= */ !1) ] : [ 3 /*break*/ , 4 ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return e++, [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Starts new listen for the given target. Uses resume token if provided. It\n * is a no-op if the target of given `TargetData` is already being listened to.\n */ function Mo(t, e) {\n var n = O(t);\n n.Or.has(e.targetId) || (\n // Mark this as something the client is currently listening for.\n n.Or.set(e.targetId, e), Bo(n) ? \n // The listen will be sent in onWatchStreamOpen\n Uo(n) : rs(n).er() && Vo(n, e));\n}\n\n/**\n * Removes the listen from server. It is a no-op if the given target id is\n * not being listened to.\n */ function Fo(t, e) {\n var n = O(t), r = rs(n);\n n.Or.delete(e), r.er() && qo(n, e), 0 === n.Or.size && (r.er() ? r.ir() : jo(n) && \n // Revert to OnlineState.Unknown if the watch stream is not open and we\n // have no listeners, since without any listens to send we cannot\n // confirm if the stream is healthy and upgrade to OnlineState.Online.\n n.Br.set(\"Unknown\" /* Unknown */));\n}\n\n/**\n * We need to increment the the expected number of pending responses we're due\n * from watch so we wait for the ack to process any messages from this target.\n */ function Vo(t, e) {\n t.qr.U(e.targetId), rs(t).mr(e)\n /**\n * We need to increment the expected number of pending responses we're due\n * from watch so we wait for the removal on the server before we process any\n * messages from this target.\n */;\n}\n\nfunction qo(t, e) {\n t.qr.U(e), rs(t).yr(e);\n}\n\nfunction Uo(t) {\n t.qr = new fn({\n getRemoteKeysForTarget: function(e) {\n return t.remoteSyncer.getRemoteKeysForTarget(e);\n },\n lt: function(e) {\n return t.Or.get(e) || null;\n }\n }), rs(t).start(), t.Br.Sr()\n /**\n * Returns whether the watch stream should be started because it's necessary\n * and has not yet been started.\n */;\n}\n\nfunction Bo(t) {\n return jo(t) && !rs(t).tr() && t.Or.size > 0;\n}\n\nfunction jo(t) {\n return 0 === O(t).$r.size;\n}\n\nfunction Ko(t) {\n t.qr = void 0;\n}\n\nfunction Go(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n return t.Or.forEach((function(e, n) {\n Vo(t, e);\n })), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction Qo(t, e) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(n) {\n return Ko(t), \n // If we still need the watch stream, retry the connection.\n Bo(t) ? (t.Br.Nr(e), Uo(t)) : \n // No need to restart watch stream because there are no active targets.\n // The online state is set to unknown because there is no active attempt\n // at establishing a connection\n t.Br.set(\"Unknown\" /* Unknown */), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction zo(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o;\n return I(this, (function(s) {\n switch (s.label) {\n case 0:\n if (t.Br.set(\"Online\" /* Online */), !(e instanceof cn && 2 /* Removed */ === e.state && e.cause)) \n // Mark the client as online since we got a message from the server\n return [ 3 /*break*/ , 6 ];\n s.label = 1;\n\n case 1:\n return s.trys.push([ 1, 3, , 5 ]), [ 4 /*yield*/ , \n /** Handles an error on a target */\n function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o;\n return I(this, (function(s) {\n switch (s.label) {\n case 0:\n n = e.cause, r = 0, i = e.targetIds, s.label = 1;\n\n case 1:\n return r < i.length ? (o = i[r], t.Or.has(o) ? [ 4 /*yield*/ , t.remoteSyncer.rejectListen(o, n) ] : [ 3 /*break*/ , 3 ]) : [ 3 /*break*/ , 5 ];\n\n case 2:\n s.sent(), t.Or.delete(o), t.qr.removeTarget(o), s.label = 3;\n\n case 3:\n s.label = 4;\n\n case 4:\n return r++, [ 3 /*break*/ , 1 ];\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(t, e) ];\n\n case 2:\n return s.sent(), [ 3 /*break*/ , 5 ];\n\n case 3:\n return r = s.sent(), N(\"RemoteStore\", \"Failed to remove targets %s: %s \", e.targetIds.join(\",\"), r), \n [ 4 /*yield*/ , Wo(t, r) ];\n\n case 4:\n return s.sent(), [ 3 /*break*/ , 5 ];\n\n case 5:\n return [ 3 /*break*/ , 13 ];\n\n case 6:\n if (e instanceof un ? t.qr.X(e) : e instanceof an ? t.qr.rt(e) : t.qr.et(e), n.isEqual(U.min())) return [ 3 /*break*/ , 13 ];\n s.label = 7;\n\n case 7:\n return s.trys.push([ 7, 11, , 13 ]), [ 4 /*yield*/ , qi(t.localStore) ];\n\n case 8:\n return i = s.sent(), n.compareTo(i) >= 0 ? [ 4 /*yield*/ , \n /**\n * Takes a batch of changes from the Datastore, repackages them as a\n * RemoteEvent, and passes that on to the listener, which is typically the\n * SyncEngine.\n */\n function(t, e) {\n var n = t.qr.ut(e);\n // Update in-memory resume tokens. LocalStore will update the\n // persistent view of these when applying the completed RemoteEvent.\n return n.targetChanges.forEach((function(n, r) {\n if (n.resumeToken.approximateByteSize() > 0) {\n var i = t.Or.get(r);\n // A watched target might have been removed already.\n i && t.Or.set(r, i.withResumeToken(n.resumeToken, e));\n }\n })), \n // Re-establish listens for the targets that have been invalidated by\n // existence filter mismatches.\n n.targetMismatches.forEach((function(e) {\n var n = t.Or.get(e);\n if (n) {\n // Clear the resume token for the target, since we're in a known mismatch\n // state.\n t.Or.set(e, n.withResumeToken(Y.EMPTY_BYTE_STRING, n.snapshotVersion)), \n // Cause a hard reset by unwatching and rewatching immediately, but\n // deliberately don't send a resume token so that we get a full update.\n qo(t, e);\n // Mark the target we send as being on behalf of an existence filter\n // mismatch, but don't actually retain that in listenTargets. This ensures\n // that we flag the first re-listen this way without impacting future\n // listens of this target (that might happen e.g. on reconnect).\n var r = new Cr(n.target, e, 1 /* ExistenceFilterMismatch */ , n.sequenceNumber);\n Vo(t, r);\n }\n })), t.remoteSyncer.applyRemoteEvent(n);\n }(t, n) ] : [ 3 /*break*/ , 10 ];\n\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n case 9:\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n s.sent(), s.label = 10;\n\n case 10:\n return [ 3 /*break*/ , 13 ];\n\n case 11:\n return N(\"RemoteStore\", \"Failed to raise snapshot:\", o = s.sent()), [ 4 /*yield*/ , Wo(t, o) ];\n\n case 12:\n return s.sent(), [ 3 /*break*/ , 13 ];\n\n case 13:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Recovery logic for IndexedDB errors that takes the network offline until\n * `op` succeeds. Retries are scheduled with backoff using\n * `enqueueRetryable()`. If `op()` is not provided, IndexedDB access is\n * validated via a generic operation.\n *\n * The returned Promise is resolved once the network is disabled and before\n * any retry attempt.\n */ function Wo(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r = this;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n if (!_r(e)) throw e;\n // Disable network and raise offline snapshots\n return t.$r.add(1 /* IndexedDbFailed */), [ 4 /*yield*/ , Po(t) ];\n\n case 1:\n // Disable network and raise offline snapshots\n return i.sent(), t.Br.set(\"Offline\" /* Offline */), n || (\n // Use a simple read operation to determine if IndexedDB recovered.\n // Ideally, we would expose a health check directly on SimpleDb, but\n // RemoteStore only has access to persistence through LocalStore.\n n = function() {\n return qi(t.localStore);\n }), \n // Probe IndexedDB periodically and re-enable network\n t.asyncQueue.enqueueRetryable((function() {\n return b(r, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return N(\"RemoteStore\", \"Retrying IndexedDB access\"), [ 4 /*yield*/ , n() ];\n\n case 1:\n return e.sent(), t.$r.delete(1 /* IndexedDbFailed */), [ 4 /*yield*/ , Lo(t) ];\n\n case 2:\n return e.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n })), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Executes `op`. If `op` fails, takes the network offline until `op`\n * succeeds. Returns after the first attempt.\n */ function Ho(t, e) {\n return e().catch((function(n) {\n return Wo(t, n, e);\n }));\n}\n\nfunction Yo(t) {\n return b(this, void 0, void 0, (function() {\n var e, n, r, i, o;\n return I(this, (function(s) {\n switch (s.label) {\n case 0:\n e = O(t), n = is(e), r = e.kr.length > 0 ? e.kr[e.kr.length - 1].batchId : -1, s.label = 1;\n\n case 1:\n if (!\n /**\n * Returns true if we can add to the write pipeline (i.e. the network is\n * enabled and the write pipeline is not full).\n */\n function(t) {\n return jo(t) && t.kr.length < 10;\n }\n /**\n * Queues additional writes to be sent to the write stream, sending them\n * immediately if the write stream is established.\n */ (e)) return [ 3 /*break*/ , 7 ];\n s.label = 2;\n\n case 2:\n return s.trys.push([ 2, 4, , 6 ]), [ 4 /*yield*/ , ji(e.localStore, r) ];\n\n case 3:\n return null === (i = s.sent()) ? (0 === e.kr.length && n.ir(), [ 3 /*break*/ , 7 ]) : (r = i.batchId, \n function(t, e) {\n t.kr.push(e);\n var n = is(t);\n n.er() && n.pr && n.Er(e.mutations);\n }(e, i), [ 3 /*break*/ , 6 ]);\n\n case 4:\n return o = s.sent(), [ 4 /*yield*/ , Wo(e, o) ];\n\n case 5:\n return s.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 3 /*break*/ , 1 ];\n\n case 7:\n return Xo(e) && $o(e), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Xo(t) {\n return jo(t) && !is(t).tr() && t.kr.length > 0;\n}\n\nfunction $o(t) {\n is(t).start();\n}\n\nfunction Jo(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n return is(t).Ar(), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction Zo(t) {\n return b(this, void 0, void 0, (function() {\n var e, n, r, i;\n return I(this, (function(o) {\n // Send the write pipeline now that the stream is established.\n for (e = is(t), n = 0, r = t.kr; n < r.length; n++) i = r[n], e.Er(i.mutations);\n return [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction ts(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return r = t.kr.shift(), i = xr.from(r, e, n), [ 4 /*yield*/ , Ho(t, (function() {\n return t.remoteSyncer.applySuccessfulWrite(i);\n })) ];\n\n case 1:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return o.sent(), [ 4 /*yield*/ , Yo(t) ];\n\n case 2:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return o.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction es(t, e) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e && is(t).pr ? [ 4 /*yield*/ , function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return Be(r = e.code) && r !== E.ABORTED ? (n = t.kr.shift(), \n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n is(t).sr(), [ 4 /*yield*/ , Ho(t, (function() {\n return t.remoteSyncer.rejectFailedWrite(n.batchId, e);\n })) ]) : [ 3 /*break*/ , 3 ];\n\n case 1:\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n return i.sent(), [ 4 /*yield*/ , Yo(t) ];\n\n case 2:\n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n i.sent(), i.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(t, e) ] : [ 3 /*break*/ , 2 ];\n\n // This error affects the actual write.\n case 1:\n // This error affects the actual write.\n n.sent(), n.label = 2;\n\n case 2:\n // If the write stream closed after the write handshake completes, a write\n // operation failed and we fail the pending operation.\n // The write stream might have been started by refilling the write\n // pipeline for failed writes\n return Xo(t) && $o(t), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Toggles the network state when the client gains or loses its primary lease.\n */ function ns(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return n = O(t), e ? (n.$r.delete(2 /* IsSecondary */), [ 4 /*yield*/ , Lo(n) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n return i.sent(), [ 3 /*break*/ , 5 ];\n\n case 2:\n return (r = e) ? [ 3 /*break*/ , 4 ] : (n.$r.add(2 /* IsSecondary */), [ 4 /*yield*/ , Po(n) ]);\n\n case 3:\n i.sent(), r = n.Br.set(\"Unknown\" /* Unknown */), i.label = 4;\n\n case 4:\n r, i.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * If not yet initialized, registers the WatchStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WatchStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */ function rs(t) {\n var e = this;\n return t.Ur || (\n // Create stream (but note that it is not started yet).\n t.Ur = function(t, e, n) {\n var r = O(t);\n return r.br(), new ko(e, r.Hi, r.credentials, r.R, n);\n }(t.datastore, t.asyncQueue, {\n Ii: Go.bind(null, t),\n Ri: Qo.bind(null, t),\n _r: zo.bind(null, t)\n }), t.Mr.push((function(n) {\n return b(e, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return n ? (t.Ur.sr(), Bo(t) ? Uo(t) : t.Br.set(\"Unknown\" /* Unknown */), [ 3 /*break*/ , 3 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n return [ 4 /*yield*/ , t.Ur.stop() ];\n\n case 2:\n e.sent(), Ko(t), e.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }))), t.Ur\n /**\n * If not yet initialized, registers the WriteStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WriteStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */;\n}\n\nfunction is(t) {\n var e = this;\n return t.Qr || (\n // Create stream (but note that it is not started yet).\n t.Qr = function(t, e, n) {\n var r = O(t);\n return r.br(), new xo(e, r.Hi, r.credentials, r.R, n);\n }(t.datastore, t.asyncQueue, {\n Ii: Jo.bind(null, t),\n Ri: es.bind(null, t),\n Ir: Zo.bind(null, t),\n Tr: ts.bind(null, t)\n }), t.Mr.push((function(n) {\n return b(e, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return n ? (t.Qr.sr(), [ 4 /*yield*/ , Yo(t) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n // This will start the write stream if necessary.\n return e.sent(), [ 3 /*break*/ , 4 ];\n\n case 2:\n return [ 4 /*yield*/ , t.Qr.stop() ];\n\n case 3:\n e.sent(), t.kr.length > 0 && (N(\"RemoteStore\", \"Stopping write stream with \" + t.kr.length + \" pending writes\"), \n t.kr = []), e.label = 4;\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }))), t.Qr\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Represents an operation scheduled to be run in the future on an AsyncQueue.\n *\n * It is created via DelayedOperation.createAndSchedule().\n *\n * Supports cancellation (via cancel()) and early execution (via skipDelay()).\n *\n * Note: We implement `PromiseLike` instead of `Promise`, as the `Promise` type\n * in newer versions of TypeScript defines `finally`, which is not available in\n * IE.\n */;\n}\n\nvar os = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.asyncQueue = t, this.timerId = e, this.targetTimeMs = n, this.op = r, this.removalCallback = i, \n this.deferred = new vr, this.then = this.deferred.promise.then.bind(this.deferred.promise), \n // It's normal for the deferred promise to be canceled (due to cancellation)\n // and so we attach a dummy catch callback to avoid\n // 'UnhandledPromiseRejectionWarning' log spam.\n this.deferred.promise.catch((function(t) {}))\n /**\n * Creates and returns a DelayedOperation that has been scheduled to be\n * executed on the provided asyncQueue after the provided delayMs.\n *\n * @param asyncQueue - The queue to schedule the operation on.\n * @param id - A Timer ID identifying the type of operation this is.\n * @param delayMs - The delay (ms) before the operation should be scheduled.\n * @param op - The operation to run.\n * @param removalCallback - A callback to be called synchronously once the\n * operation is executed or canceled, notifying the AsyncQueue to remove it\n * from its delayedOperations list.\n * PORTING NOTE: This exists to prevent making removeDelayedOperation() and\n * the DelayedOperation class public.\n */;\n }\n return t.createAndSchedule = function(e, n, r, i, o) {\n var s = new t(e, n, Date.now() + r, i, o);\n return s.start(r), s;\n }, \n /**\n * Starts the timer. This is called immediately after construction by\n * createAndSchedule().\n */\n t.prototype.start = function(t) {\n var e = this;\n this.timerHandle = setTimeout((function() {\n return e.handleDelayElapsed();\n }), t);\n }, \n /**\n * Queues the operation to run immediately (if it hasn't already been run or\n * canceled).\n */\n t.prototype.skipDelay = function() {\n return this.handleDelayElapsed();\n }, \n /**\n * Cancels the operation if it hasn't already been executed or canceled. The\n * promise will be rejected.\n *\n * As long as the operation has not yet been run, calling cancel() provides a\n * guarantee that the operation will not be run.\n */\n t.prototype.cancel = function(t) {\n null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new T(E.CANCELLED, \"Operation cancelled\" + (t ? \": \" + t : \"\"))));\n }, t.prototype.handleDelayElapsed = function() {\n var t = this;\n this.asyncQueue.enqueueAndForget((function() {\n return null !== t.timerHandle ? (t.clearTimeout(), t.op().then((function(e) {\n return t.deferred.resolve(e);\n }))) : Promise.resolve();\n }));\n }, t.prototype.clearTimeout = function() {\n null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), \n this.timerHandle = null);\n }, t;\n}();\n\n/**\n * Returns a FirestoreError that can be surfaced to the user if the provided\n * error is an IndexedDbTransactionError. Re-throws the error otherwise.\n */ function ss(t, e) {\n if (A(\"AsyncQueue\", e + \": \" + t), _r(t)) return new T(E.UNAVAILABLE, e + \": \" + t);\n throw t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * DocumentSet is an immutable (copy-on-write) collection that holds documents\n * in order specified by the provided comparator. We always add a document key\n * comparator on top of what is provided to guarantee document equality based on\n * the key.\n */ var us = /** @class */ function() {\n /** The default ordering is by key if the comparator is omitted */\n function t(t) {\n // We are adding document key comparator to the end as it's the only\n // guaranteed unique property of a document.\n this.comparator = t ? function(e, n) {\n return t(e, n) || st.comparator(e.key, n.key);\n } : function(t, e) {\n return st.comparator(t.key, e.key);\n }, this.keyedMap = $e(), this.sortedSet = new Ke(this.comparator)\n /**\n * Returns an empty copy of the existing DocumentSet, using the same\n * comparator.\n */;\n }\n return t.emptySet = function(e) {\n return new t(e.comparator);\n }, t.prototype.has = function(t) {\n return null != this.keyedMap.get(t);\n }, t.prototype.get = function(t) {\n return this.keyedMap.get(t);\n }, t.prototype.first = function() {\n return this.sortedSet.minKey();\n }, t.prototype.last = function() {\n return this.sortedSet.maxKey();\n }, t.prototype.isEmpty = function() {\n return this.sortedSet.isEmpty();\n }, \n /**\n * Returns the index of the provided key in the document set, or -1 if the\n * document key is not present in the set;\n */\n t.prototype.indexOf = function(t) {\n var e = this.keyedMap.get(t);\n return e ? this.sortedSet.indexOf(e) : -1;\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this.sortedSet.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n /** Iterates documents in order defined by \"comparator\" */ t.prototype.forEach = function(t) {\n this.sortedSet.inorderTraversal((function(e, n) {\n return t(e), !1;\n }));\n }, \n /** Inserts or updates a document with the same key */ t.prototype.add = function(t) {\n // First remove the element if we have it.\n var e = this.delete(t.key);\n return e.copy(e.keyedMap.insert(t.key, t), e.sortedSet.insert(t, null));\n }, \n /** Deletes a document with a given key */ t.prototype.delete = function(t) {\n var e = this.get(t);\n return e ? this.copy(this.keyedMap.remove(t), this.sortedSet.remove(e)) : this;\n }, t.prototype.isEqual = function(e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n for (var n = this.sortedSet.getIterator(), r = e.sortedSet.getIterator(); n.hasNext(); ) {\n var i = n.getNext().key, o = r.getNext().key;\n if (!i.isEqual(o)) return !1;\n }\n return !0;\n }, t.prototype.toString = function() {\n var t = [];\n return this.forEach((function(e) {\n t.push(e.toString());\n })), 0 === t.length ? \"DocumentSet ()\" : \"DocumentSet (\\n \" + t.join(\" \\n\") + \"\\n)\";\n }, t.prototype.copy = function(e, n) {\n var r = new t;\n return r.comparator = this.comparator, r.keyedMap = e, r.sortedSet = n, r;\n }, t;\n}(), as = /** @class */ function() {\n function t() {\n this.Kr = new Ke(st.comparator);\n }\n return t.prototype.track = function(t) {\n var e = t.doc.key, n = this.Kr.get(e);\n n ? \n // Merge the new change with the existing change.\n 0 /* Added */ !== t.type && 3 /* Metadata */ === n.type ? this.Kr = this.Kr.insert(e, t) : 3 /* Metadata */ === t.type && 1 /* Removed */ !== n.type ? this.Kr = this.Kr.insert(e, {\n type: n.type,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 2 /* Modified */ === n.type ? this.Kr = this.Kr.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 0 /* Added */ === n.type ? this.Kr = this.Kr.insert(e, {\n type: 0 /* Added */ ,\n doc: t.doc\n }) : 1 /* Removed */ === t.type && 0 /* Added */ === n.type ? this.Kr = this.Kr.remove(e) : 1 /* Removed */ === t.type && 2 /* Modified */ === n.type ? this.Kr = this.Kr.insert(e, {\n type: 1 /* Removed */ ,\n doc: n.doc\n }) : 0 /* Added */ === t.type && 1 /* Removed */ === n.type ? this.Kr = this.Kr.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : \n // This includes these cases, which don't make sense:\n // Added->Added\n // Removed->Removed\n // Modified->Added\n // Removed->Modified\n // Metadata->Added\n // Removed->Metadata\n C() : this.Kr = this.Kr.insert(e, t);\n }, t.prototype.jr = function() {\n var t = [];\n return this.Kr.inorderTraversal((function(e, n) {\n t.push(n);\n })), t;\n }, t;\n}(), cs = /** @class */ function() {\n function t(t, e, n, r, i, o, s, u) {\n this.query = t, this.docs = e, this.oldDocs = n, this.docChanges = r, this.mutatedKeys = i, \n this.fromCache = o, this.syncStateChanged = s, this.excludesMetadataChanges = u\n /** Returns a view snapshot as if all documents in the snapshot were added. */;\n }\n return t.fromInitialDocuments = function(e, n, r, i) {\n var o = [];\n return n.forEach((function(t) {\n o.push({\n type: 0 /* Added */ ,\n doc: t\n });\n })), new t(e, n, us.emptySet(n), o, r, i, \n /* syncStateChanged= */ !0, \n /* excludesMetadataChanges= */ !1);\n }, Object.defineProperty(t.prototype, \"hasPendingWrites\", {\n get: function() {\n return !this.mutatedKeys.isEmpty();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(t) {\n if (!(this.fromCache === t.fromCache && this.syncStateChanged === t.syncStateChanged && this.mutatedKeys.isEqual(t.mutatedKeys) && te(this.query, t.query) && this.docs.isEqual(t.docs) && this.oldDocs.isEqual(t.oldDocs))) return !1;\n var e = this.docChanges, n = t.docChanges;\n if (e.length !== n.length) return !1;\n for (var r = 0; r < e.length; r++) if (e[r].type !== n[r].type || !e[r].doc.isEqual(n[r].doc)) return !1;\n return !0;\n }, t;\n}(), hs = function() {\n this.Wr = void 0, this.listeners = [];\n}, fs = function() {\n this.queries = new mi((function(t) {\n return ee(t);\n }), te), this.onlineState = \"Unknown\" /* Unknown */ , this.Gr = new Set;\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * DocumentChangeSet keeps track of a set of changes to docs in a query, merging\n * duplicate events for the same doc.\n */ function ls(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u, a;\n return I(this, (function(c) {\n switch (c.label) {\n case 0:\n if (n = O(t), r = e.query, i = !1, (o = n.queries.get(r)) || (i = !0, o = new hs), \n !i) return [ 3 /*break*/ , 4 ];\n c.label = 1;\n\n case 1:\n return c.trys.push([ 1, 3, , 4 ]), s = o, [ 4 /*yield*/ , n.onListen(r) ];\n\n case 2:\n return s.Wr = c.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n return u = c.sent(), a = ss(u, \"Initialization of query '\" + ne(e.query) + \"' failed\"), \n [ 2 /*return*/ , void e.onError(a) ];\n\n case 4:\n return n.queries.set(r, o), o.listeners.push(e), \n // Run global snapshot listeners if a consistent snapshot has been emitted.\n e.zr(n.onlineState), o.Wr && e.Hr(o.Wr) && vs(n), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction ds(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s;\n return I(this, (function(u) {\n return n = O(t), r = e.query, i = !1, (o = n.queries.get(r)) && (s = o.listeners.indexOf(e)) >= 0 && (o.listeners.splice(s, 1), \n i = 0 === o.listeners.length), i ? [ 2 /*return*/ , (n.queries.delete(r), n.onUnlisten(r)) ] : [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction ps(t, e) {\n for (var n = O(t), r = !1, i = 0, o = e; i < o.length; i++) {\n var s = o[i], u = s.query, a = n.queries.get(u);\n if (a) {\n for (var c = 0, h = a.listeners; c < h.length; c++) {\n h[c].Hr(s) && (r = !0);\n }\n a.Wr = s;\n }\n }\n r && vs(n);\n}\n\nfunction ys(t, e, n) {\n var r = O(t), i = r.queries.get(e);\n if (i) for (var o = 0, s = i.listeners; o < s.length; o++) {\n s[o].onError(n);\n }\n // Remove all listeners. NOTE: We don't need to call syncEngine.unlisten()\n // after an error.\n r.queries.delete(e);\n}\n\n// Call all global snapshot listeners that have been set.\nfunction vs(t) {\n t.Gr.forEach((function(t) {\n t.next();\n }));\n}\n\n/**\n * QueryListener takes a series of internal view snapshots and determines\n * when to raise the event.\n *\n * It uses an Observer to dispatch events.\n */ var ms = /** @class */ function() {\n function t(t, e, n) {\n this.query = t, this.Jr = e, \n /**\n * Initial snapshots (e.g. from cache) may not be propagated to the wrapped\n * observer. This flag is set to true once we've actually raised an event.\n */\n this.Yr = !1, this.Xr = null, this.onlineState = \"Unknown\" /* Unknown */ , this.options = n || {}\n /**\n * Applies the new ViewSnapshot to this listener, raising a user-facing event\n * if applicable (depending on what changed, whether the user has opted into\n * metadata-only changes, etc.). Returns true if a user-facing event was\n * indeed raised.\n */;\n }\n return t.prototype.Hr = function(t) {\n if (!this.options.includeMetadataChanges) {\n for (\n // Remove the metadata only changes.\n var e = [], n = 0, r = t.docChanges; n < r.length; n++) {\n var i = r[n];\n 3 /* Metadata */ !== i.type && e.push(i);\n }\n t = new cs(t.query, t.docs, t.oldDocs, e, t.mutatedKeys, t.fromCache, t.syncStateChanged, \n /* excludesMetadataChanges= */ !0);\n }\n var o = !1;\n return this.Yr ? this.Zr(t) && (this.Jr.next(t), o = !0) : this.eo(t, this.onlineState) && (this.no(t), \n o = !0), this.Xr = t, o;\n }, t.prototype.onError = function(t) {\n this.Jr.error(t);\n }, \n /** Returns whether a snapshot was raised. */ t.prototype.zr = function(t) {\n this.onlineState = t;\n var e = !1;\n return this.Xr && !this.Yr && this.eo(this.Xr, t) && (this.no(this.Xr), e = !0), \n e;\n }, t.prototype.eo = function(t, e) {\n // Always raise the first event when we're synced\n if (!t.fromCache) return !0;\n // NOTE: We consider OnlineState.Unknown as online (it should become Offline\n // or Online if we wait long enough).\n var n = \"Offline\" /* Offline */ !== e;\n // Don't raise the event if we're online, aren't synced yet (checked\n // above) and are waiting for a sync.\n return !(this.options.so && n || t.docs.isEmpty() && \"Offline\" /* Offline */ !== e);\n // Raise data from cache if we have any documents or we are offline\n }, t.prototype.Zr = function(t) {\n // We don't need to handle includeDocumentMetadataChanges here because\n // the Metadata only changes have already been stripped out if needed.\n // At this point the only changes we will see are the ones we should\n // propagate.\n if (t.docChanges.length > 0) return !0;\n var e = this.Xr && this.Xr.hasPendingWrites !== t.hasPendingWrites;\n return !(!t.syncStateChanged && !e) && !0 === this.options.includeMetadataChanges;\n // Generally we should have hit one of the cases above, but it's possible\n // to get here if there were only metadata docChanges and they got\n // stripped out.\n }, t.prototype.no = function(t) {\n t = cs.fromInitialDocuments(t.query, t.docs, t.mutatedKeys, t.fromCache), this.Yr = !0, \n this.Jr.next(t);\n }, t;\n}(), gs = /** @class */ function() {\n function t(t, \n // How many bytes this element takes to store in the bundle.\n e) {\n this.payload = t, this.byteLength = e;\n }\n return t.prototype.io = function() {\n return \"metadata\" in this.payload;\n }, t;\n}(), ws = /** @class */ function() {\n function t(t) {\n this.R = t;\n }\n return t.prototype.qn = function(t) {\n return Tn(this.R, t);\n }, \n /**\n * Converts a BundleDocument to a MutableDocument.\n */\n t.prototype.Un = function(t) {\n return t.metadata.exists ? xn(this.R, t.document, !1) : _t.newNoDocument(this.qn(t.metadata.name), this.Qn(t.metadata.readTime));\n }, t.prototype.Qn = function(t) {\n return bn(t);\n }, t;\n}(), bs = /** @class */ function() {\n function t(t, e, n) {\n this.ro = t, this.localStore = e, this.R = n, \n /** Batched queries to be saved into storage */\n this.queries = [], \n /** Batched documents to be saved into storage */\n this.documents = [], this.progress = Is(t)\n /**\n * Adds an element from the bundle to the loader.\n *\n * Returns a new progress if adding the element leads to a new progress,\n * otherwise returns null.\n */;\n }\n return t.prototype.oo = function(t) {\n this.progress.bytesLoaded += t.byteLength;\n var e = this.progress.documentsLoaded;\n return t.payload.namedQuery ? this.queries.push(t.payload.namedQuery) : t.payload.documentMetadata ? (this.documents.push({\n metadata: t.payload.documentMetadata\n }), t.payload.documentMetadata.exists || ++e) : t.payload.document && (this.documents[this.documents.length - 1].document = t.payload.document, \n ++e), e !== this.progress.documentsLoaded ? (this.progress.documentsLoaded = e, \n Object.assign({}, this.progress)) : null;\n }, t.prototype.co = function(t) {\n for (var e = new Map, n = new ws(this.R), r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n if (o.metadata.queries) for (var s = n.qn(o.metadata.name), u = 0, a = o.metadata.queries; u < a.length; u++) {\n var c = a[u], h = (e.get(c) || en()).add(s);\n e.set(c, h);\n }\n }\n return e;\n }, \n /**\n * Update the progress to 'Success' and return the updated progress.\n */\n t.prototype.complete = function() {\n return b(this, void 0, void 0, (function() {\n var t, e, n, r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return [ 4 /*yield*/ , Yi(this.localStore, new ws(this.R), this.documents, this.ro.id) ];\n\n case 1:\n t = o.sent(), e = this.co(this.documents), n = 0, r = this.queries, o.label = 2;\n\n case 2:\n return n < r.length ? (i = r[n], [ 4 /*yield*/ , Xi(this.localStore, i, e.get(i.name)) ]) : [ 3 /*break*/ , 5 ];\n\n case 3:\n o.sent(), o.label = 4;\n\n case 4:\n return n++, [ 3 /*break*/ , 2 ];\n\n case 5:\n return [ 2 /*return*/ , (this.progress.taskState = \"Success\", new Ci(Object.assign({}, this.progress), t)) ];\n }\n }));\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A complete element in the bundle stream, together with the byte length it\n * occupies in the stream.\n */\n/**\n * Returns a `LoadBundleTaskProgress` representing the initial progress of\n * loading a bundle.\n */\nfunction Is(t) {\n return {\n taskState: \"Running\",\n documentsLoaded: 0,\n bytesLoaded: 0,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n}\n\n/**\n * Returns a `LoadBundleTaskProgress` representing the progress that the loading\n * has succeeded.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ var _s = function(t) {\n this.key = t;\n}, Es = function(t) {\n this.key = t;\n}, Ts = /** @class */ function() {\n function t(t, \n /** Documents included in the remote target */\n e) {\n this.query = t, this.uo = e, this.ao = null, \n /**\n * A flag whether the view is current with the backend. A view is considered\n * current after it has seen the current flag from the backend and did not\n * lose consistency within the watch stream (e.g. because of an existence\n * filter mismatch).\n */\n this.current = !1, \n /** Documents in the view but not in the remote target */\n this.ho = en(), \n /** Document Keys that have local changes */\n this.mutatedKeys = en(), this.lo = ie(t), this.fo = new us(this.lo);\n }\n return Object.defineProperty(t.prototype, \"wo\", {\n /**\n * The set of remote documents that the server has told us belongs to the target associated with\n * this view.\n */\n get: function() {\n return this.uo;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Iterates over a set of doc changes, applies the query limit, and computes\n * what the new results should be, what the changes were, and whether we may\n * need to go back to the local cache for more results. Does not make any\n * changes to the view.\n * @param docChanges - The doc changes to apply to this view.\n * @param previousChanges - If this is being called with a refill, then start\n * with this set of docs and changes instead of the current view.\n * @returns a new set of docs, changes, and refill flag.\n */\n t.prototype._o = function(t, e) {\n var n = this, r = e ? e.mo : new as, i = e ? e.fo : this.fo, o = e ? e.mutatedKeys : this.mutatedKeys, s = i, u = !1, a = zt(this.query) && i.size === this.query.limit ? i.last() : null, c = Wt(this.query) && i.size === this.query.limit ? i.first() : null;\n // Drop documents out to meet limit/limitToLast requirement.\n if (t.inorderTraversal((function(t, e) {\n var h = i.get(t), f = re(n.query, e) ? e : null, l = !!h && n.mutatedKeys.has(h.key), d = !!f && (f.hasLocalMutations || \n // We only consider committed mutations for documents that were\n // mutated during the lifetime of the view.\n n.mutatedKeys.has(f.key) && f.hasCommittedMutations), p = !1;\n // Calculate change\n h && f ? h.data.isEqual(f.data) ? l !== d && (r.track({\n type: 3 /* Metadata */ ,\n doc: f\n }), p = !0) : n.yo(h, f) || (r.track({\n type: 2 /* Modified */ ,\n doc: f\n }), p = !0, (a && n.lo(f, a) > 0 || c && n.lo(f, c) < 0) && (\n // This doc moved from inside the limit to outside the limit.\n // That means there may be some other doc in the local cache\n // that should be included instead.\n u = !0)) : !h && f ? (r.track({\n type: 0 /* Added */ ,\n doc: f\n }), p = !0) : h && !f && (r.track({\n type: 1 /* Removed */ ,\n doc: h\n }), p = !0, (a || c) && (\n // A doc was removed from a full limit query. We'll need to\n // requery from the local cache to see if we know about some other\n // doc that should be in the results.\n u = !0)), p && (f ? (s = s.add(f), o = d ? o.add(t) : o.delete(t)) : (s = s.delete(t), \n o = o.delete(t)));\n })), zt(this.query) || Wt(this.query)) for (;s.size > this.query.limit; ) {\n var h = zt(this.query) ? s.last() : s.first();\n s = s.delete(h.key), o = o.delete(h.key), r.track({\n type: 1 /* Removed */ ,\n doc: h\n });\n }\n return {\n fo: s,\n mo: r,\n Nn: u,\n mutatedKeys: o\n };\n }, t.prototype.yo = function(t, e) {\n // We suppress the initial change event for documents that were modified as\n // part of a write acknowledgment (e.g. when the value of a server transform\n // is applied) as Watch will send us the same document again.\n // By suppressing the event, we only raise two user visible events (one with\n // `hasPendingWrites` and the final state of the document) instead of three\n // (one with `hasPendingWrites`, the modified document with\n // `hasPendingWrites` and the final state of the document).\n return t.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations;\n }, \n /**\n * Updates the view with the given ViewDocumentChanges and optionally updates\n * limbo docs and sync state from the provided target change.\n * @param docChanges - The set of changes to make to the view's docs.\n * @param updateLimboDocuments - Whether to update limbo documents based on\n * this change.\n * @param targetChange - A target change to apply for computing limbo docs and\n * sync state.\n * @returns A new ViewChange with the given docs, changes, and sync state.\n */\n // PORTING NOTE: The iOS/Android clients always compute limbo document changes.\n t.prototype.applyChanges = function(t, e, n) {\n var r = this, i = this.fo;\n this.fo = t.fo, this.mutatedKeys = t.mutatedKeys;\n // Sort changes based on type and query comparator\n var o = t.mo.jr();\n o.sort((function(t, e) {\n return function(t, e) {\n var n = function(t) {\n switch (t) {\n case 0 /* Added */ :\n return 1;\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n // A metadata change is converted to a modified change at the public\n // api layer. Since we sort by document key and then change type,\n // metadata and modified changes must be sorted equivalently.\n return 2;\n\n case 1 /* Removed */ :\n return 0;\n\n default:\n return C();\n }\n };\n return n(t) - n(e);\n }(t.type, e.type) || r.lo(t.doc, e.doc);\n })), this.po(n);\n var s = e ? this.Eo() : [], u = 0 === this.ho.size && this.current ? 1 /* Synced */ : 0 /* Local */ , a = u !== this.ao;\n return this.ao = u, 0 !== o.length || a ? {\n snapshot: new cs(this.query, t.fo, i, o, t.mutatedKeys, 0 /* Local */ === u, a, \n /* excludesMetadataChanges= */ !1),\n To: s\n } : {\n To: s\n };\n // no changes\n }, \n /**\n * Applies an OnlineState change to the view, potentially generating a\n * ViewChange if the view's syncState changes as a result.\n */\n t.prototype.zr = function(t) {\n return this.current && \"Offline\" /* Offline */ === t ? (\n // If we're offline, set `current` to false and then call applyChanges()\n // to refresh our syncState and generate a ViewChange as appropriate. We\n // are guaranteed to get a new TargetChange that sets `current` back to\n // true once the client is back online.\n this.current = !1, this.applyChanges({\n fo: this.fo,\n mo: new as,\n mutatedKeys: this.mutatedKeys,\n Nn: !1\n }, \n /* updateLimboDocuments= */ !1)) : {\n To: []\n };\n }, \n /**\n * Returns whether the doc for the given key should be in limbo.\n */\n t.prototype.Io = function(t) {\n // If the remote end says it's part of this query, it's not in limbo.\n return !this.uo.has(t) && \n // The local store doesn't think it's a result, so it shouldn't be in limbo.\n !!this.fo.has(t) && !this.fo.get(t).hasLocalMutations;\n }, \n /**\n * Updates syncedDocuments, current, and limbo docs based on the given change.\n * Returns the list of changes to which docs are in limbo.\n */\n t.prototype.po = function(t) {\n var e = this;\n t && (t.addedDocuments.forEach((function(t) {\n return e.uo = e.uo.add(t);\n })), t.modifiedDocuments.forEach((function(t) {})), t.removedDocuments.forEach((function(t) {\n return e.uo = e.uo.delete(t);\n })), this.current = t.current);\n }, t.prototype.Eo = function() {\n var t = this;\n // We can only determine limbo documents when we're in-sync with the server.\n if (!this.current) return [];\n // TODO(klimt): Do this incrementally so that it's not quadratic when\n // updating many documents.\n var e = this.ho;\n this.ho = en(), this.fo.forEach((function(e) {\n t.Io(e.key) && (t.ho = t.ho.add(e.key));\n }));\n // Diff the new limbo docs with the old limbo docs.\n var n = [];\n return e.forEach((function(e) {\n t.ho.has(e) || n.push(new Es(e));\n })), this.ho.forEach((function(t) {\n e.has(t) || n.push(new _s(t));\n })), n;\n }, \n /**\n * Update the in-memory state of the current view with the state read from\n * persistence.\n *\n * We update the query view whenever a client's primary status changes:\n * - When a client transitions from primary to secondary, it can miss\n * LocalStorage updates and its query views may temporarily not be\n * synchronized with the state on disk.\n * - For secondary to primary transitions, the client needs to update the list\n * of `syncedDocuments` since secondary clients update their query views\n * based purely on synthesized RemoteEvents.\n *\n * @param queryResult.documents - The documents that match the query according\n * to the LocalStore.\n * @param queryResult.remoteKeys - The keys of the documents that match the\n * query according to the backend.\n *\n * @returns The ViewChange that resulted from this synchronization.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ao = function(t) {\n this.uo = t.Bn, this.ho = en();\n var e = this._o(t.documents);\n return this.applyChanges(e, /*updateLimboDocuments=*/ !0);\n }, \n /**\n * Returns a view snapshot as if this query was just listened to. Contains\n * a document add for every existing document and the `fromCache` and\n * `hasPendingWrites` status of the already established view.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ro = function() {\n return cs.fromInitialDocuments(this.query, this.fo, this.mutatedKeys, 0 /* Local */ === this.ao);\n }, t;\n}(), Ss = function(\n/**\n * The query itself.\n */\nt, \n/**\n * The target number created by the client that is used in the watch\n * stream to identify this query.\n */\ne, \n/**\n * The view is responsible for computing the final merged truth of what\n * docs are in the query. It gets notified of local and remote changes,\n * and applies the query filters and limits to determine the most correct\n * possible results.\n */\nn) {\n this.query = t, this.targetId = e, this.view = n;\n}, Ds = function(t) {\n this.key = t, \n /**\n * Set to true once we've received a document. This is used in\n * getRemoteKeysForTarget() and ultimately used by WatchChangeAggregator to\n * decide whether it needs to manufacture a delete event for the target once\n * the target is CURRENT.\n */\n this.bo = !1;\n}, Ns = /** @class */ function() {\n function t(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o) {\n this.localStore = t, this.remoteStore = e, this.eventManager = n, this.sharedClientState = r, \n this.currentUser = i, this.maxConcurrentLimboResolutions = o, this.vo = {}, this.Po = new mi((function(t) {\n return ee(t);\n }), te), this.Vo = new Map, \n /**\n * The keys of documents that are in limbo for which we haven't yet started a\n * limbo resolution query. The strings in this set are the result of calling\n * `key.path.canonicalString()` where `key` is a `DocumentKey` object.\n *\n * The `Set` type was chosen because it provides efficient lookup and removal\n * of arbitrary elements and it also maintains insertion order, providing the\n * desired queue-like FIFO semantics.\n */\n this.So = new Set, \n /**\n * Keeps track of the target ID for each document that is in limbo with an\n * active target.\n */\n this.Do = new Ke(st.comparator), \n /**\n * Keeps track of the information about an active limbo resolution for each\n * active target ID that was started for the purpose of limbo resolution.\n */\n this.Co = new Map, this.No = new Ji, \n /** Stores user completion handlers, indexed by User and BatchId. */\n this.xo = {}, \n /** Stores user callbacks waiting for all pending writes to be acknowledged. */\n this.Fo = new Map, this.ko = oi.Yt(), this.onlineState = \"Unknown\" /* Unknown */ , \n // The primary state is set to `true` or `false` immediately after Firestore\n // startup. In the interim, a client should only be considered primary if\n // `isPrimary` is true.\n this.Oo = void 0;\n }\n return Object.defineProperty(t.prototype, \"isPrimaryClient\", {\n get: function() {\n return !0 === this.Oo;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}();\n\n/**\n * Initiates the new listen, resolves promise when listen enqueued to the\n * server. All the subsequent view snapshots or errors are sent to the\n * subscribed handlers. Returns the initial snapshot.\n */\nfunction As(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u;\n return I(this, (function(a) {\n switch (a.label) {\n case 0:\n return n = ru(t), (o = n.Po.get(e)) ? (\n // PORTING NOTE: With Multi-Tab Web, it is possible that a query view\n // already exists when EventManager calls us for the first time. This\n // happens when the primary tab is already listening to this query on\n // behalf of another tab and the user of the primary also starts listening\n // to the query. EventManager will not have an assigned target ID in this\n // case and calls `listen` to obtain this ID.\n r = o.targetId, n.sharedClientState.addLocalQueryTarget(r), i = o.view.Ro(), [ 3 /*break*/ , 4 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n return [ 4 /*yield*/ , Ki(n.localStore, Jt(e)) ];\n\n case 2:\n return s = a.sent(), u = n.sharedClientState.addLocalQueryTarget(s.targetId), r = s.targetId, \n [ 4 /*yield*/ , ks(n, e, r, \"current\" === u) ];\n\n case 3:\n i = a.sent(), n.isPrimaryClient && Mo(n.remoteStore, s), a.label = 4;\n\n case 4:\n return [ 2 /*return*/ , i ];\n }\n }));\n }));\n}\n\n/**\n * Registers a view for a previously unknown query and computes its initial\n * snapshot.\n */ function ks(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o, s, u, a, c;\n return I(this, (function(h) {\n switch (h.label) {\n case 0:\n // PORTING NOTE: On Web only, we inject the code that registers new Limbo\n // targets based on view changes. This allows us to only depend on Limbo\n // changes when user code includes queries.\n return t.$o = function(e, n, r) {\n return function(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n return i = e.view._o(n), i.Nn ? [ 4 /*yield*/ , Qi(t.localStore, e.query, \n /* usePreviousResults= */ !1).then((function(t) {\n var n = t.documents;\n return e.view._o(n, i);\n })) ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n // The query has a limit and some docs were removed, so we need\n // to re-run the query against the local store to make sure we\n // didn't lose any good docs that had been past the limit.\n i = u.sent(), u.label = 2;\n\n case 2:\n return o = r && r.targetChanges.get(e.targetId), s = e.view.applyChanges(i, \n /* updateLimboDocuments= */ t.isPrimaryClient, o), [ 2 /*return*/ , (js(t, e.targetId, s.To), \n s.snapshot) ];\n }\n }));\n }));\n }(t, e, n, r);\n }, [ 4 /*yield*/ , Qi(t.localStore, e, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return i = h.sent(), o = new Ts(e, i.Bn), s = o._o(i.documents), u = sn.createSynthesizedTargetChangeForCurrentChange(n, r && \"Offline\" /* Offline */ !== t.onlineState), \n a = o.applyChanges(s, \n /* updateLimboDocuments= */ t.isPrimaryClient, u), js(t, n, a.To), c = new Ss(e, n, o), \n [ 2 /*return*/ , (t.Po.set(e, c), t.Vo.has(n) ? t.Vo.get(n).push(e) : t.Vo.set(n, [ e ]), \n a.snapshot) ];\n }\n }));\n }));\n}\n\n/** Stops listening to the query. */ function xs(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return n = O(t), r = n.Po.get(e), (i = n.Vo.get(r.targetId)).length > 1 ? [ 2 /*return*/ , (n.Vo.set(r.targetId, i.filter((function(t) {\n return !te(t, e);\n }))), void n.Po.delete(e)) ] : n.isPrimaryClient ? (\n // We need to remove the local query target first to allow us to verify\n // whether any other client is still interested in this target.\n n.sharedClientState.removeLocalQueryTarget(r.targetId), n.sharedClientState.isActiveQueryTarget(r.targetId) ? [ 3 /*break*/ , 2 ] : [ 4 /*yield*/ , Gi(n.localStore, r.targetId, \n /*keepPersistedTargetData=*/ !1).then((function() {\n n.sharedClientState.clearQueryState(r.targetId), Fo(n.remoteStore, r.targetId), \n Us(n, r.targetId);\n })).catch(hi) ]) : [ 3 /*break*/ , 3 ];\n\n case 1:\n o.sent(), o.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 5 ];\n\n case 3:\n return Us(n, r.targetId), [ 4 /*yield*/ , Gi(n.localStore, r.targetId, \n /*keepPersistedTargetData=*/ !0) ];\n\n case 4:\n o.sent(), o.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Initiates the write of local mutation batch which involves adding the\n * writes to the mutation queue, notifying the remote store about new\n * mutations and raising events for any changes this write caused.\n *\n * The promise returned by this call is resolved when the above steps\n * have completed, *not* when the write was acked by the backend. The\n * userCallback is resolved once the write was acked/rejected by the\n * backend (or failed locally for any other reason).\n */ function Cs(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n r = iu(t), u.label = 1;\n\n case 1:\n return u.trys.push([ 1, 5, , 6 ]), [ 4 /*yield*/ , function(t, e) {\n var n, r = O(t), i = q.now(), o = e.reduce((function(t, e) {\n return t.add(e.key);\n }), en());\n return r.persistence.runTransaction(\"Locally write mutations\", \"readwrite\", (function(t) {\n return r.Mn.pn(t, o).next((function(o) {\n n = o;\n for (\n // For non-idempotent mutations (such as `FieldValue.increment()`),\n // we record the base state in a separate patch mutation. This is\n // later used to guarantee consistent values and prevents flicker\n // even if the backend sends us an update that already includes our\n // transform.\n var s = [], u = 0, a = e; u < a.length; u++) {\n var c = a[u], h = Ae(c, n.get(c.key));\n null != h && \n // NOTE: The base state should only be applied if there's some\n // existing document to override, so use a Precondition of\n // exists=true\n s.push(new Re(c.key, h, It(h.toProto().mapValue), Ee.exists(!0)));\n }\n return r._n.addMutationBatch(t, i, s, e);\n }));\n })).then((function(t) {\n return t.applyToLocalDocumentSet(n), {\n batchId: t.batchId,\n changes: n\n };\n }));\n }(r.localStore, e) ];\n\n case 2:\n return i = u.sent(), r.sharedClientState.addPendingMutation(i.batchId), function(t, e, n) {\n var r = t.xo[t.currentUser.toKey()];\n r || (r = new Ke(M)), r = r.insert(e, n), t.xo[t.currentUser.toKey()] = r;\n }(r, i.batchId, n), [ 4 /*yield*/ , Qs(r, i.changes) ];\n\n case 3:\n return u.sent(), [ 4 /*yield*/ , Yo(r.remoteStore) ];\n\n case 4:\n return u.sent(), [ 3 /*break*/ , 6 ];\n\n case 5:\n return o = u.sent(), s = ss(o, \"Failed to persist write\"), n.reject(s), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Applies one remote event to the sync engine, notifying any views of the\n * changes, and releasing any pending mutation batches that would become\n * visible because of the snapshot version the remote event contains.\n */ function Rs(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n n = O(t), i.label = 1;\n\n case 1:\n return i.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , Ui(n.localStore, e) ];\n\n case 2:\n return r = i.sent(), \n // Update `receivedDocument` as appropriate for any limbo targets.\n e.targetChanges.forEach((function(t, e) {\n var r = n.Co.get(e);\n r && (\n // Since this is a limbo resolution lookup, it's for a single document\n // and it could be added, modified, or removed, but not a combination.\n R(t.addedDocuments.size + t.modifiedDocuments.size + t.removedDocuments.size <= 1), \n t.addedDocuments.size > 0 ? r.bo = !0 : t.modifiedDocuments.size > 0 ? R(r.bo) : t.removedDocuments.size > 0 && (R(r.bo), \n r.bo = !1));\n })), [ 4 /*yield*/ , Qs(n, r, e) ];\n\n case 3:\n // Update `receivedDocument` as appropriate for any limbo targets.\n return i.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , hi(i.sent()) ];\n\n case 5:\n return i.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Applies an OnlineState change to the sync engine and notifies any views of\n * the change.\n */ function Os(t, e, n) {\n var r = O(t);\n // If we are the secondary client, we explicitly ignore the remote store's\n // online state (the local client may go offline, even though the primary\n // tab remains online) and only apply the primary tab's online state from\n // SharedClientState.\n if (r.isPrimaryClient && 0 /* RemoteStore */ === n || !r.isPrimaryClient && 1 /* SharedClientState */ === n) {\n var i = [];\n r.Po.forEach((function(t, n) {\n var r = n.view.zr(e);\n r.snapshot && i.push(r.snapshot);\n })), function(t, e) {\n var n = O(t);\n n.onlineState = e;\n var r = !1;\n n.queries.forEach((function(t, n) {\n for (var i = 0, o = n.listeners; i < o.length; i++) {\n // Run global snapshot listeners if a consistent snapshot has been emitted.\n o[i].zr(e) && (r = !0);\n }\n })), r && vs(n);\n }(r.eventManager, e), i.length && r.vo._r(i), r.onlineState = e, r.isPrimaryClient && r.sharedClientState.setOnlineState(e);\n }\n}\n\n/**\n * Rejects the listen for the given targetID. This can be triggered by the\n * backend for any active target.\n *\n * @param syncEngine - The sync engine implementation.\n * @param targetId - The targetID corresponds to one previously initiated by the\n * user as part of TargetData passed to listen() on RemoteStore.\n * @param err - A description of the condition that has forced the rejection.\n * Nearly always this will be an indication that the user is no longer\n * authorized to see the data matching the target.\n */ function Ls(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s, u, a;\n return I(this, (function(c) {\n switch (c.label) {\n case 0:\n // PORTING NOTE: Multi-tab only.\n return (r = O(t)).sharedClientState.updateQueryState(e, \"rejected\", n), i = r.Co.get(e), \n (o = i && i.key) ? (s = (s = new Ke(st.comparator)).insert(o, _t.newNoDocument(o, U.min())), \n u = en().add(o), a = new on(U.min(), \n /* targetChanges= */ new Map, \n /* targetMismatches= */ new ze(M), s, u), [ 4 /*yield*/ , Rs(r, a) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n return c.sent(), \n // Since this query failed, we won't want to manually unlisten to it.\n // We only remove it from bookkeeping after we successfully applied the\n // RemoteEvent. If `applyRemoteEvent()` throws, we want to re-listen to\n // this query when the RemoteStore restarts the Watch stream, which should\n // re-trigger the target failure.\n r.Do = r.Do.remove(o), r.Co.delete(e), Gs(r), [ 3 /*break*/ , 4 ];\n\n case 2:\n return [ 4 /*yield*/ , Gi(r.localStore, e, \n /* keepPersistedTargetData */ !1).then((function() {\n return Us(r, e, n);\n })).catch(hi) ];\n\n case 3:\n c.sent(), c.label = 4;\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Ps(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n n = O(t), r = e.batch.batchId, o.label = 1;\n\n case 1:\n return o.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , Vi(n.localStore, e) ];\n\n case 2:\n return i = o.sent(), \n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n qs(n, r, /*error=*/ null), Vs(n, r), n.sharedClientState.updateMutationState(r, \"acknowledged\"), \n [ 4 /*yield*/ , Qs(n, i) ];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n return o.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , hi(o.sent()) ];\n\n case 5:\n return o.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Ms(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n r = O(t), o.label = 1;\n\n case 1:\n return o.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , function(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Reject batch\", \"readwrite-primary\", (function(t) {\n var r;\n return n._n.lookupMutationBatch(t, e).next((function(e) {\n return R(null !== e), r = e.keys(), n._n.removeMutationBatch(t, e);\n })).next((function() {\n return n._n.performConsistencyCheck(t);\n })).next((function() {\n return n.Mn.pn(t, r);\n }));\n }));\n }(r.localStore, e) ];\n\n case 2:\n return i = o.sent(), \n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n qs(r, e, n), Vs(r, e), r.sharedClientState.updateMutationState(e, \"rejected\", n), \n [ 4 /*yield*/ , Qs(r, i) ];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n return o.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , hi(o.sent()) ];\n\n case 5:\n return o.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Registers a user callback that resolves when all pending mutations at the moment of calling\n * are acknowledged .\n */ function Fs(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n jo((n = O(t)).remoteStore) || N(\"SyncEngine\", \"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.\"), \n u.label = 1;\n\n case 1:\n return u.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , function(t) {\n var e = O(t);\n return e.persistence.runTransaction(\"Get highest unacknowledged batch id\", \"readonly\", (function(t) {\n return e._n.getHighestUnacknowledgedBatchId(t);\n }));\n }(n.localStore) ];\n\n case 2:\n return -1 === (r = u.sent()) ? [ 2 /*return*/ , void e.resolve() ] : ((i = n.Fo.get(r) || []).push(e), \n n.Fo.set(r, i), [ 3 /*break*/ , 4 ]);\n\n case 3:\n return o = u.sent(), s = ss(o, \"Initialization of waitForPendingWrites() operation failed\"), \n e.reject(s), [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Triggers the callbacks that are waiting for this batch id to get acknowledged by server,\n * if there are any.\n */ function Vs(t, e) {\n (t.Fo.get(e) || []).forEach((function(t) {\n t.resolve();\n })), t.Fo.delete(e)\n /** Reject all outstanding callbacks waiting for pending writes to complete. */;\n}\n\nfunction qs(t, e, n) {\n var r = O(t), i = r.xo[r.currentUser.toKey()];\n // NOTE: Mutations restored from persistence won't have callbacks, so it's\n // okay for there to be no callback for this ID.\n if (i) {\n var o = i.get(e);\n o && (n ? o.reject(n) : o.resolve(), i = i.remove(e)), r.xo[r.currentUser.toKey()] = i;\n }\n}\n\nfunction Us(t, e, n) {\n void 0 === n && (n = null), t.sharedClientState.removeLocalQueryTarget(e);\n for (var r = 0, i = t.Vo.get(e); r < i.length; r++) {\n var o = i[r];\n t.Po.delete(o), n && t.vo.Mo(o, n);\n }\n t.Vo.delete(e), t.isPrimaryClient && t.No.Zn(e).forEach((function(e) {\n t.No.containsKey(e) || \n // We removed the last reference for this key\n Bs(t, e);\n }));\n}\n\nfunction Bs(t, e) {\n t.So.delete(e.path.canonicalString());\n // It's possible that the target already got removed because the query failed. In that case,\n // the key won't exist in `limboTargetsByKey`. Only do the cleanup if we still have the target.\n var n = t.Do.get(e);\n null !== n && (Fo(t.remoteStore, n), t.Do = t.Do.remove(e), t.Co.delete(n), Gs(t));\n}\n\nfunction js(t, e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r];\n o instanceof _s ? (t.No.addReference(o.key, e), Ks(t, o)) : o instanceof Es ? (N(\"SyncEngine\", \"Document no longer in limbo: \" + o.key), \n t.No.removeReference(o.key, e), t.No.containsKey(o.key) || \n // We removed the last reference for this key\n Bs(t, o.key)) : C();\n }\n}\n\nfunction Ks(t, e) {\n var n = e.key, r = n.path.canonicalString();\n t.Do.get(n) || t.So.has(r) || (N(\"SyncEngine\", \"New document in limbo: \" + n), t.So.add(r), \n Gs(t));\n}\n\n/**\n * Starts listens for documents in limbo that are enqueued for resolution,\n * subject to a maximum number of concurrent resolutions.\n *\n * Without bounding the number of concurrent resolutions, the server can fail\n * with \"resource exhausted\" errors which can lead to pathological client\n * behavior as seen in https://github.com/firebase/firebase-js-sdk/issues/2683.\n */ function Gs(t) {\n for (;t.So.size > 0 && t.Do.size < t.maxConcurrentLimboResolutions; ) {\n var e = t.So.values().next().value;\n t.So.delete(e);\n var n = new st(Q.fromString(e)), r = t.ko.next();\n t.Co.set(r, new Ds(n)), t.Do = t.Do.insert(n, r), Mo(t.remoteStore, new Cr(Jt(Qt(n.path)), r, 2 /* LimboResolution */ , _.o));\n }\n}\n\nfunction Qs(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n return r = O(t), i = [], o = [], s = [], r.Po.isEmpty() ? [ 3 /*break*/ , 3 ] : (r.Po.forEach((function(t, u) {\n s.push(r.$o(u, e, n).then((function(t) {\n if (t) {\n r.isPrimaryClient && r.sharedClientState.updateQueryState(u.targetId, t.fromCache ? \"not-current\" : \"current\"), \n i.push(t);\n var e = Oi.Pn(u.targetId, t);\n o.push(e);\n }\n })));\n })), [ 4 /*yield*/ , Promise.all(s) ]);\n\n case 1:\n return u.sent(), r.vo._r(i), [ 4 /*yield*/ , function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u, a, c, h;\n return I(this, (function(f) {\n switch (f.label) {\n case 0:\n n = O(t), f.label = 1;\n\n case 1:\n return f.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , n.persistence.runTransaction(\"notifyLocalViewChanges\", \"readwrite\", (function(t) {\n return mr.forEach(e, (function(e) {\n return mr.forEach(e.bn, (function(r) {\n return n.persistence.referenceDelegate.addReference(t, e.targetId, r);\n })).next((function() {\n return mr.forEach(e.vn, (function(r) {\n return n.persistence.referenceDelegate.removeReference(t, e.targetId, r);\n }));\n }));\n }));\n })) ];\n\n case 2:\n return f.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!_r(r = f.sent())) throw r;\n // If `notifyLocalViewChanges` fails, we did not advance the sequence\n // number for the documents that were included in this transaction.\n // This might trigger them to be deleted earlier than they otherwise\n // would have, but it should not invalidate the integrity of the data.\n return N(\"LocalStore\", \"Failed to update sequence numbers: \" + r), \n [ 3 /*break*/ , 4 ];\n\n case 4:\n for (i = 0, o = e; i < o.length; i++) s = o[i], u = s.targetId, s.fromCache || (a = n.Fn.get(u), \n c = a.snapshotVersion, h = a.withLastLimboFreeSnapshotVersion(c), \n // Advance the last limbo free snapshot version\n n.Fn = n.Fn.insert(u, h));\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(r.localStore, o) ];\n\n case 2:\n u.sent(), u.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction zs(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return (n = O(t)).currentUser.isEqual(e) ? [ 3 /*break*/ , 3 ] : (N(\"SyncEngine\", \"User change. New user:\", e.toKey()), \n [ 4 /*yield*/ , Fi(n.localStore, e) ]);\n\n case 1:\n return r = i.sent(), n.currentUser = e, \n // Fails tasks waiting for pending writes requested by previous user.\n function(t, e) {\n t.Fo.forEach((function(t) {\n t.forEach((function(t) {\n t.reject(new T(E.CANCELLED, \"'waitForPendingWrites' promise is rejected due to a user change.\"));\n }));\n })), t.Fo.clear();\n }(n), \n // TODO(b/114226417): Consider calling this only in the primary tab.\n n.sharedClientState.handleUserChange(e, r.removedBatchIds, r.addedBatchIds), [ 4 /*yield*/ , Qs(n, r.Ln) ];\n\n case 2:\n i.sent(), i.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Ws(t, e) {\n var n = O(t), r = n.Co.get(e);\n if (r && r.bo) return en().add(r.key);\n var i = en(), o = n.Vo.get(e);\n if (!o) return i;\n for (var s = 0, u = o; s < u.length; s++) {\n var a = u[s], c = n.Po.get(a);\n i = i.unionWith(c.view.wo);\n }\n return i;\n}\n\n/**\n * Reconcile the list of synced documents in an existing view with those\n * from persistence.\n */ function Hs(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return [ 4 /*yield*/ , Qi((n = O(t)).localStore, e.query, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return r = o.sent(), i = e.view.Ao(r), [ 2 /*return*/ , (n.isPrimaryClient && js(n, e.targetId, i.To), \n i) ];\n }\n }));\n }));\n}\n\n/**\n * Retrieves newly changed documents from remote document cache and raises\n * snapshots if needed.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Ys(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n return [ 2 /*return*/ , Wi((e = O(t)).localStore).then((function(t) {\n return Qs(e, t);\n })) ];\n }));\n }));\n}\n\n/** Applies a mutation state to an existing batch. */\n// PORTING NOTE: Multi-Tab only.\nfunction Xs(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o;\n return I(this, (function(s) {\n switch (s.label) {\n case 0:\n return [ 4 /*yield*/ , function(t, e) {\n var n = O(t), r = O(n._n);\n return n.persistence.runTransaction(\"Lookup mutation documents\", \"readonly\", (function(t) {\n return r.jt(t, e).next((function(e) {\n return e ? n.Mn.pn(t, e) : mr.resolve(null);\n }));\n }));\n }((i = O(t)).localStore, e) ];\n\n case 1:\n return null === (o = s.sent()) ? [ 3 /*break*/ , 6 ] : \"pending\" !== n ? [ 3 /*break*/ , 3 ] : [ 4 /*yield*/ , Yo(i.remoteStore) ];\n\n case 2:\n // If we are the primary client, we need to send this write to the\n // backend. Secondary clients will ignore these writes since their remote\n // connection is disabled.\n return s.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n \"acknowledged\" === n || \"rejected\" === n ? (\n // NOTE: Both these methods are no-ops for batches that originated from\n // other clients.\n qs(i, e, r || null), Vs(i, e), function(t, e) {\n O(O(t)._n).Gt(e);\n }(i.localStore, e)) : C(), s.label = 4;\n\n case 4:\n return [ 4 /*yield*/ , Qs(i, o) ];\n\n case 5:\n return s.sent(), [ 3 /*break*/ , 7 ];\n\n case 6:\n // A throttled tab may not have seen the mutation before it was completed\n // and removed from the mutation queue, in which case we won't have cached\n // the affected documents. In this case we can safely ignore the update\n // since that means we didn't apply the mutation locally at all (if we\n // had, we would have cached the affected documents), and so we will just\n // see any resulting document changes via normal remote document updates\n // as applicable.\n N(\"SyncEngine\", \"Cannot apply mutation batch with id: \" + e), s.label = 7;\n\n case 7:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nfunction $s(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u, a, c;\n return I(this, (function(h) {\n switch (h.label) {\n case 0:\n return ru(n = O(t)), iu(n), !0 !== e || !0 === n.Oo ? [ 3 /*break*/ , 3 ] : (r = n.sharedClientState.getAllActiveQueryTargets(), \n [ 4 /*yield*/ , Js(n, r.toArray()) ]);\n\n case 1:\n return i = h.sent(), n.Oo = !0, [ 4 /*yield*/ , ns(n.remoteStore, !0) ];\n\n case 2:\n for (h.sent(), o = 0, s = i; o < s.length; o++) u = s[o], Mo(n.remoteStore, u);\n return [ 3 /*break*/ , 7 ];\n\n case 3:\n return !1 !== e || !1 === n.Oo ? [ 3 /*break*/ , 7 ] : (a = [], c = Promise.resolve(), \n n.Vo.forEach((function(t, e) {\n n.sharedClientState.isLocalQueryTarget(e) ? a.push(e) : c = c.then((function() {\n return Us(n, e), Gi(n.localStore, e, \n /*keepPersistedTargetData=*/ !0);\n })), Fo(n.remoteStore, e);\n })), [ 4 /*yield*/ , c ]);\n\n case 4:\n return h.sent(), [ 4 /*yield*/ , Js(n, a) ];\n\n case 5:\n return h.sent(), \n // PORTING NOTE: Multi-Tab only.\n function(t) {\n var e = O(t);\n e.Co.forEach((function(t, n) {\n Fo(e.remoteStore, n);\n })), e.No.ts(), e.Co = new Map, e.Do = new Ke(st.comparator);\n }(n), n.Oo = !1, [ 4 /*yield*/ , ns(n.remoteStore, !1) ];\n\n case 6:\n h.sent(), h.label = 7;\n\n case 7:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Js(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u, a, c, h, f, l, d, p, y;\n return I(this, (function(v) {\n switch (v.label) {\n case 0:\n n = O(t), r = [], i = [], o = 0, s = e, v.label = 1;\n\n case 1:\n return o < s.length ? (u = s[o], a = void 0, (c = n.Vo.get(u)) && 0 !== c.length ? [ 4 /*yield*/ , Ki(n.localStore, Jt(c[0])) ] : [ 3 /*break*/ , 7 ]) : [ 3 /*break*/ , 13 ];\n\n case 2:\n // For queries that have a local View, we fetch their current state\n // from LocalStore (as the resume token and the snapshot version\n // might have changed) and reconcile their views with the persisted\n // state (the list of syncedDocuments may have gotten out of sync).\n a = v.sent(), h = 0, f = c, v.label = 3;\n\n case 3:\n return h < f.length ? (l = f[h], d = n.Po.get(l), [ 4 /*yield*/ , Hs(n, d) ]) : [ 3 /*break*/ , 6 ];\n\n case 4:\n (p = v.sent()).snapshot && i.push(p.snapshot), v.label = 5;\n\n case 5:\n return h++, [ 3 /*break*/ , 3 ];\n\n case 6:\n return [ 3 /*break*/ , 11 ];\n\n case 7:\n return [ 4 /*yield*/ , zi(n.localStore, u) ];\n\n case 8:\n return y = v.sent(), [ 4 /*yield*/ , Ki(n.localStore, y) ];\n\n case 9:\n return a = v.sent(), [ 4 /*yield*/ , ks(n, Zs(y), u, \n /*current=*/ !1) ];\n\n case 10:\n v.sent(), v.label = 11;\n\n case 11:\n r.push(a), v.label = 12;\n\n case 12:\n return o++, [ 3 /*break*/ , 1 ];\n\n case 13:\n return [ 2 /*return*/ , (n.vo._r(i), r) ];\n }\n }));\n }));\n}\n\n/**\n * Creates a `Query` object from the specified `Target`. There is no way to\n * obtain the original `Query`, so we synthesize a `Query` from the `Target`\n * object.\n *\n * The synthesized result might be different from the original `Query`, but\n * since the synthesized `Query` should return the same results as the\n * original one (only the presentation of results might differ), the potential\n * difference will not cause issues.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Zs(t) {\n return Gt(t.path, t.collectionGroup, t.orderBy, t.filters, t.limit, \"F\" /* First */ , t.startAt, t.endAt);\n}\n\n/** Returns the IDs of the clients that are currently active. */\n// PORTING NOTE: Multi-Tab only.\nfunction tu(t) {\n var e = O(t);\n return O(O(e.localStore).persistence).fn();\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nfunction eu(t, e, n, r) {\n return b(this, void 0, void 0, (function() {\n var i, o, s;\n return I(this, (function(u) {\n switch (u.label) {\n case 0:\n return (i = O(t)).Oo ? (\n // If we receive a target state notification via WebStorage, we are\n // either already secondary or another tab has taken the primary lease.\n N(\"SyncEngine\", \"Ignoring unexpected query state notification.\"), [ 3 /*break*/ , 8 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n if (!i.Vo.has(e)) return [ 3 /*break*/ , 8 ];\n switch (n) {\n case \"current\":\n case \"not-current\":\n return [ 3 /*break*/ , 2 ];\n\n case \"rejected\":\n return [ 3 /*break*/ , 5 ];\n }\n return [ 3 /*break*/ , 7 ];\n\n case 2:\n return [ 4 /*yield*/ , Wi(i.localStore) ];\n\n case 3:\n return o = u.sent(), s = on.createSynthesizedRemoteEventForCurrentChange(e, \"current\" === n), \n [ 4 /*yield*/ , Qs(i, o, s) ];\n\n case 4:\n return u.sent(), [ 3 /*break*/ , 8 ];\n\n case 5:\n return [ 4 /*yield*/ , Gi(i.localStore, e, \n /* keepPersistedTargetData */ !0) ];\n\n case 6:\n return u.sent(), Us(i, e, r), [ 3 /*break*/ , 8 ];\n\n case 7:\n C(), u.label = 8;\n\n case 8:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/** Adds or removes Watch targets for queries from different tabs. */ function nu(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s, u, a, c, h, f, l;\n return I(this, (function(d) {\n switch (d.label) {\n case 0:\n if (!(r = ru(t)).Oo) return [ 3 /*break*/ , 10 ];\n i = 0, o = e, d.label = 1;\n\n case 1:\n return i < o.length ? (s = o[i], r.Vo.has(s) ? (\n // A target might have been added in a previous attempt\n N(\"SyncEngine\", \"Adding an already active target \" + s), [ 3 /*break*/ , 5 ]) : [ 4 /*yield*/ , zi(r.localStore, s) ]) : [ 3 /*break*/ , 6 ];\n\n case 2:\n return u = d.sent(), [ 4 /*yield*/ , Ki(r.localStore, u) ];\n\n case 3:\n return a = d.sent(), [ 4 /*yield*/ , ks(r, Zs(u), a.targetId, \n /*current=*/ !1) ];\n\n case 4:\n d.sent(), Mo(r.remoteStore, a), d.label = 5;\n\n case 5:\n return i++, [ 3 /*break*/ , 1 ];\n\n case 6:\n c = function(t) {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return r.Vo.has(t) ? [ 4 /*yield*/ , Gi(r.localStore, t, \n /* keepPersistedTargetData */ !1).then((function() {\n Fo(r.remoteStore, t), Us(r, t);\n })).catch(hi) ] : [ 3 /*break*/ , 2 ];\n\n // Release queries that are still active.\n case 1:\n // Release queries that are still active.\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }, h = 0, f = n, d.label = 7;\n\n case 7:\n return h < f.length ? (l = f[h], [ 5 /*yield**/ , c(l) ]) : [ 3 /*break*/ , 10 ];\n\n case 8:\n d.sent(), d.label = 9;\n\n case 9:\n return h++, [ 3 /*break*/ , 7 ];\n\n case 10:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction ru(t) {\n var e = O(t);\n return e.remoteStore.remoteSyncer.applyRemoteEvent = Rs.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = Ws.bind(null, e), \n e.remoteStore.remoteSyncer.rejectListen = Ls.bind(null, e), e.vo._r = ps.bind(null, e.eventManager), \n e.vo.Mo = ys.bind(null, e.eventManager), e;\n}\n\nfunction iu(t) {\n var e = O(t);\n return e.remoteStore.remoteSyncer.applySuccessfulWrite = Ps.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Ms.bind(null, e), \n e\n /**\n * Loads a Firestore bundle into the SDK. The returned promise resolves when\n * the bundle finished loading.\n *\n * @param syncEngine - SyncEngine to use.\n * @param bundleReader - Bundle to load into the SDK.\n * @param task - LoadBundleTask used to update the loading progress to public API.\n */;\n}\n\nfunction ou(t, e, n) {\n var r = O(t);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (function(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s, u, a;\n return I(this, (function(c) {\n switch (c.label) {\n case 0:\n return c.trys.push([ 0, 14, , 15 ]), [ 4 /*yield*/ , e.getMetadata() ];\n\n case 1:\n return r = c.sent(), [ 4 /*yield*/ , function(t, e) {\n var n = O(t), r = bn(e.createTime);\n return n.persistence.runTransaction(\"hasNewerBundle\", \"readonly\", (function(t) {\n return n.Qe.getBundleMetadata(t, e.id);\n })).then((function(t) {\n return !!t && t.createTime.compareTo(r) >= 0;\n }));\n }(t.localStore, r) ];\n\n case 2:\n return c.sent() ? [ 4 /*yield*/ , e.close() ] : [ 3 /*break*/ , 4 ];\n\n case 3:\n return [ 2 /*return*/ , (c.sent(), void n._completeWith(function(t) {\n return {\n taskState: \"Success\",\n documentsLoaded: t.totalDocuments,\n bytesLoaded: t.totalBytes,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n }(r))) ];\n\n case 4:\n return n._updateProgress(Is(r)), i = new bs(r, t.localStore, e.R), [ 4 /*yield*/ , e.Lo() ];\n\n case 5:\n o = c.sent(), c.label = 6;\n\n case 6:\n return o ? [ 4 /*yield*/ , i.oo(o) ] : [ 3 /*break*/ , 10 ];\n\n case 7:\n return (s = c.sent()) && n._updateProgress(s), [ 4 /*yield*/ , e.Lo() ];\n\n case 8:\n o = c.sent(), c.label = 9;\n\n case 9:\n return [ 3 /*break*/ , 6 ];\n\n case 10:\n return [ 4 /*yield*/ , i.complete() ];\n\n case 11:\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n return u = c.sent(), [ 4 /*yield*/ , Qs(t, u.wn, \n /* remoteEvent */ void 0) ];\n\n case 12:\n // Save metadata, so loading the same bundle will skip.\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n return c.sent(), [ 4 /*yield*/ , function(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Save bundle\", \"readwrite\", (function(t) {\n return n.Qe.saveBundleMetadata(t, e);\n }));\n }(t.localStore, r) ];\n\n case 13:\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n // Save metadata, so loading the same bundle will skip.\n return c.sent(), n._completeWith(u.progress), [ 3 /*break*/ , 15 ];\n\n case 14:\n return k(\"SyncEngine\", \"Loading bundle failed with \" + (a = c.sent())), n._failWith(a), \n [ 3 /*break*/ , 15 ];\n\n case 15:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Provides all components needed for Firestore with in-memory persistence.\n * Uses EagerGC garbage collection.\n */)(r, e, n).then((function() {\n r.sharedClientState.notifyBundleLoaded();\n }));\n}\n\nvar su = /** @class */ function() {\n function t() {\n this.synchronizeTabs = !1;\n }\n return t.prototype.initialize = function(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return this.R = Do(t.databaseInfo.databaseId), this.sharedClientState = this.Bo(t), \n this.persistence = this.qo(t), [ 4 /*yield*/ , this.persistence.start() ];\n\n case 1:\n return e.sent(), this.gcScheduler = this.Uo(t), this.localStore = this.Qo(t), [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.Uo = function(t) {\n return null;\n }, t.prototype.Qo = function(t) {\n return Mi(this.persistence, new Li, t.initialUser, this.R);\n }, t.prototype.qo = function(t) {\n return new io(so.bs, this.R);\n }, t.prototype.Bo = function(t) {\n return new go;\n }, t.prototype.terminate = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.gcScheduler && this.gcScheduler.stop(), [ 4 /*yield*/ , this.sharedClientState.shutdown() ];\n\n case 1:\n return t.sent(), [ 4 /*yield*/ , this.persistence.shutdown() ];\n\n case 2:\n return t.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, t;\n}(), uu = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).Ko = e, i.cacheSizeBytes = n, i.forceOwnership = r, \n i.synchronizeTabs = !1, i;\n }\n return g(e, t), e.prototype.initialize = function(e) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return [ 4 /*yield*/ , t.prototype.initialize.call(this, e) ];\n\n case 1:\n return n.sent(), [ 4 /*yield*/ , Hi(this.localStore) ];\n\n case 2:\n return n.sent(), [ 4 /*yield*/ , this.Ko.initialize(this, e) ];\n\n case 3:\n // Enqueue writes from a previous session\n return n.sent(), [ 4 /*yield*/ , iu(this.Ko.syncEngine) ];\n\n case 4:\n // Enqueue writes from a previous session\n return n.sent(), [ 4 /*yield*/ , Yo(this.Ko.remoteStore) ];\n\n case 5:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, e.prototype.Qo = function(t) {\n return Mi(this.persistence, new Li, t.initialUser, this.R);\n }, e.prototype.Uo = function(t) {\n var e = this.persistence.referenceDelegate.garbageCollector;\n return new di(e, t.asyncQueue);\n }, e.prototype.qo = function(t) {\n var e = xi(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey), n = void 0 !== this.cacheSizeBytes ? $r.withCacheSize(this.cacheSizeBytes) : $r.DEFAULT;\n return new Ni(this.synchronizeTabs, e, t.clientId, n, t.asyncQueue, To(), So(), this.R, this.sharedClientState, !!this.forceOwnership);\n }, e.prototype.Bo = function(t) {\n return new go;\n }, e;\n}(su), au = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, n, /* forceOwnership= */ !1) || this).Ko = e, r.cacheSizeBytes = n, \n r.synchronizeTabs = !0, r;\n }\n return g(e, t), e.prototype.initialize = function(e) {\n return b(this, void 0, void 0, (function() {\n var n, r = this;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return [ 4 /*yield*/ , t.prototype.initialize.call(this, e) ];\n\n case 1:\n return i.sent(), n = this.Ko.syncEngine, this.sharedClientState instanceof mo ? (this.sharedClientState.syncEngine = {\n ui: Xs.bind(null, n),\n ai: eu.bind(null, n),\n hi: nu.bind(null, n),\n fn: tu.bind(null, n),\n ci: Ys.bind(null, n)\n }, [ 4 /*yield*/ , this.sharedClientState.start() ]) : [ 3 /*break*/ , 3 ];\n\n case 2:\n i.sent(), i.label = 3;\n\n case 3:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return [ 4 /*yield*/ , this.persistence.He((function(t) {\n return b(r, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return [ 4 /*yield*/ , $s(this.Ko.syncEngine, t) ];\n\n case 1:\n return e.sent(), this.gcScheduler && (t && !this.gcScheduler.started ? this.gcScheduler.start(this.localStore) : t || this.gcScheduler.stop()), \n [ 2 /*return*/ ];\n }\n }));\n }));\n })) ];\n\n case 4:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return i.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, e.prototype.Bo = function(t) {\n var e = To();\n if (!mo.yt(e)) throw new T(E.UNIMPLEMENTED, \"IndexedDB persistence is only available on platforms that support LocalStorage.\");\n var n = xi(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey);\n return new mo(e, t.asyncQueue, n, t.clientId, t.initialUser);\n }, e;\n}(uu), cu = /** @class */ function() {\n function t() {}\n return t.prototype.initialize = function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n = this;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return this.localStore ? [ 3 /*break*/ , 2 ] : (this.localStore = t.localStore, \n this.sharedClientState = t.sharedClientState, this.datastore = this.createDatastore(e), \n this.remoteStore = this.createRemoteStore(e), this.eventManager = this.createEventManager(e), \n this.syncEngine = this.createSyncEngine(e, \n /* startAsPrimary=*/ !t.synchronizeTabs), this.sharedClientState.onlineStateHandler = function(t) {\n return Os(n.syncEngine, t, 1 /* SharedClientState */);\n }, this.remoteStore.remoteSyncer.handleCredentialChange = zs.bind(null, this.syncEngine), \n [ 4 /*yield*/ , ns(this.remoteStore, this.syncEngine.isPrimaryClient) ]);\n\n case 1:\n r.sent(), r.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.createEventManager = function(t) {\n return new fs;\n }, t.prototype.createDatastore = function(t) {\n var e, n = Do(t.databaseInfo.databaseId), r = (e = t.databaseInfo, new Eo(e));\n /** Return the Platform-specific connectivity monitor. */ return function(t, e, n) {\n return new Co(t, e, n);\n }(t.credentials, r, n);\n }, t.prototype.createRemoteStore = function(t) {\n var e, n, r, i, o, s = this;\n return e = this.localStore, n = this.datastore, r = t.asyncQueue, i = function(t) {\n return Os(s.syncEngine, t, 0 /* RemoteStore */);\n }, o = bo.yt() ? new bo : new wo, new Oo(e, n, r, i, o);\n }, t.prototype.createSyncEngine = function(t, e) {\n return function(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o, s) {\n var u = new Ns(t, e, n, r, i, o);\n return s && (u.Oo = !0), u;\n }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t.initialUser, t.maxConcurrentLimboResolutions, e);\n }, t.prototype.terminate = function() {\n return function(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = O(t), N(\"RemoteStore\", \"RemoteStore shutting down.\"), e.$r.add(5 /* Shutdown */), \n [ 4 /*yield*/ , Po(e) ];\n\n case 1:\n return n.sent(), e.Lr.shutdown(), \n // Set the OnlineState to Unknown (rather than Offline) to avoid potentially\n // triggering spurious listener events with cached data, etc.\n e.Br.set(\"Unknown\" /* Unknown */), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this.remoteStore);\n }, t;\n}();\n\n/**\n * Provides all components needed for Firestore with IndexedDB persistence.\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * How many bytes to read each time when `ReadableStreamReader.read()` is\n * called. Only applicable for byte streams that we control (e.g. those backed\n * by an UInt8Array).\n */\n/**\n * Builds a `ByteStreamReader` from a UInt8Array.\n * @param source - The data source to use.\n * @param bytesPerRead - How many bytes each `read()` from the returned reader\n * will read.\n */\nfunction hu(t, e) {\n void 0 === e && (e = 10240);\n var n = 0;\n return {\n read: function() {\n return b(this, void 0, void 0, (function() {\n var r;\n return I(this, (function(i) {\n return n < t.byteLength ? (r = {\n value: t.slice(n, n + e),\n done: !1\n }, [ 2 /*return*/ , (n += e, r) ]) : [ 2 /*return*/ , {\n done: !0\n } ];\n }));\n }));\n },\n cancel: function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n return [ 2 /*return*/ ];\n }));\n }));\n },\n releaseLock: function() {},\n closed: Promise.reject(\"unimplemented\")\n };\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * On web, a `ReadableStream` is wrapped around by a `ByteStreamReader`.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n * A wrapper implementation of Observer that will dispatch events\n * asynchronously. To allow immediate silencing, a mute call is added which\n * causes events scheduled to no longer be raised.\n */ var fu = /** @class */ function() {\n function t(t) {\n this.observer = t, \n /**\n * When set to true, will not raise future events. Necessary to deal with\n * async detachment of listener.\n */\n this.muted = !1;\n }\n return t.prototype.next = function(t) {\n this.observer.next && this.jo(this.observer.next, t);\n }, t.prototype.error = function(t) {\n this.observer.error ? this.jo(this.observer.error, t) : console.error(\"Uncaught Error in snapshot listener:\", t);\n }, t.prototype.Wo = function() {\n this.muted = !0;\n }, t.prototype.jo = function(t, e) {\n var n = this;\n this.muted || setTimeout((function() {\n n.muted || t(e);\n }), 0);\n }, t;\n}(), lu = /** @class */ function() {\n function t(\n /** The reader to read from underlying binary bundle data source. */\n t, e) {\n var n = this;\n this.Go = t, this.R = e, \n /** Cached bundle metadata. */\n this.metadata = new vr, \n /**\n * Internal buffer to hold bundle content, accumulating incomplete element\n * content.\n */\n this.buffer = new Uint8Array, this.zo = new TextDecoder(\"utf-8\"), \n // Read the metadata (which is the first element).\n this.Ho().then((function(t) {\n t && t.io() ? n.metadata.resolve(t.payload.metadata) : n.metadata.reject(new Error(\"The first element of the bundle is not a metadata, it is\\n \" + JSON.stringify(null == t ? void 0 : t.payload)));\n }), (function(t) {\n return n.metadata.reject(t);\n }));\n }\n return t.prototype.close = function() {\n return this.Go.cancel();\n }, t.prototype.getMetadata = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n return [ 2 /*return*/ , this.metadata.promise ];\n }));\n }));\n }, t.prototype.Lo = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return [ 4 /*yield*/ , this.getMetadata() ];\n\n case 1:\n // Makes sure metadata is read before proceeding.\n return [ 2 /*return*/ , (t.sent(), this.Ho()) ];\n }\n }));\n }));\n }, \n /**\n * Reads from the head of internal buffer, and pulling more data from\n * underlying stream if a complete element cannot be found, until an\n * element(including the prefixed length and the JSON string) is found.\n *\n * Once a complete element is read, it is dropped from internal buffer.\n *\n * Returns either the bundled element, or null if we have reached the end of\n * the stream.\n */\n t.prototype.Ho = function() {\n return b(this, void 0, void 0, (function() {\n var t, e, n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return [ 4 /*yield*/ , this.Jo() ];\n\n case 1:\n return null === (t = i.sent()) ? [ 2 /*return*/ , null ] : (e = this.zo.decode(t), \n n = Number(e), isNaN(n) && this.Yo(\"length string (\" + e + \") is not valid number\"), \n [ 4 /*yield*/ , this.Xo(n) ]);\n\n case 2:\n return r = i.sent(), [ 2 /*return*/ , new gs(JSON.parse(r), t.length + n) ];\n }\n }));\n }));\n }, \n /** First index of '{' from the underlying buffer. */ t.prototype.Zo = function() {\n return this.buffer.findIndex((function(t) {\n return t === \"{\".charCodeAt(0);\n }));\n }, \n /**\n * Reads from the beginning of the internal buffer, until the first '{', and\n * return the content.\n *\n * If reached end of the stream, returns a null.\n */\n t.prototype.Jo = function() {\n return b(this, void 0, void 0, (function() {\n var t, e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return this.Zo() < 0 ? [ 4 /*yield*/ , this.tc() ] : [ 3 /*break*/ , 3 ];\n\n case 1:\n if (n.sent()) return [ 3 /*break*/ , 3 ];\n n.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 0 ];\n\n case 3:\n // Broke out of the loop because underlying stream is closed, and there\n // happens to be no more data to process.\n return 0 === this.buffer.length ? [ 2 /*return*/ , null ] : (\n // Broke out of the loop because underlying stream is closed, but still\n // cannot find an open bracket.\n (t = this.Zo()) < 0 && this.Yo(\"Reached the end of bundle when a length string is expected.\"), \n e = this.buffer.slice(0, t), [ 2 /*return*/ , (this.buffer = this.buffer.slice(t), \n e) ]);\n }\n }));\n }));\n }, \n /**\n * Reads from a specified position from the internal buffer, for a specified\n * number of bytes, pulling more data from the underlying stream if needed.\n *\n * Returns a string decoded from the read bytes.\n */\n t.prototype.Xo = function(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return this.buffer.length < t ? [ 4 /*yield*/ , this.tc() ] : [ 3 /*break*/ , 3 ];\n\n case 1:\n n.sent() && this.Yo(\"Reached the end of bundle when more is expected.\"), n.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 0 ];\n\n case 3:\n // Update the internal buffer to drop the read json string.\n return e = this.zo.decode(this.buffer.slice(0, t)), [ 2 /*return*/ , (this.buffer = this.buffer.slice(t), \n e) ];\n }\n }));\n }));\n }, t.prototype.Yo = function(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n throw this.Go.cancel(), new Error(\"Invalid bundle format: \" + t);\n }, \n /**\n * Pulls more data from underlying stream to internal buffer.\n * Returns a boolean indicating whether the stream is finished.\n */\n t.prototype.tc = function() {\n return b(this, void 0, void 0, (function() {\n var t, e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return [ 4 /*yield*/ , this.Go.read() ];\n\n case 1:\n return (t = n.sent()).done || ((e = new Uint8Array(this.buffer.length + t.value.length)).set(this.buffer), \n e.set(t.value, this.buffer.length), this.buffer = e), [ 2 /*return*/ , t.done ];\n }\n }));\n }));\n }, t;\n}(), du = /** @class */ function() {\n function t(t) {\n this.datastore = t, \n // The version of each document that was read during this transaction.\n this.readVersions = new Map, this.mutations = [], this.committed = !1, \n /**\n * A deferred usage error that occurred previously in this transaction that\n * will cause the transaction to fail once it actually commits.\n */\n this.lastWriteError = null, \n /**\n * Set of documents that have been written in the transaction.\n *\n * When there's more than one write to the same key in a transaction, any\n * writes after the first are handled differently.\n */\n this.writtenDocs = new Set;\n }\n return t.prototype.lookup = function(t) {\n return b(this, void 0, void 0, (function() {\n var e, n = this;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new T(E.INVALID_ARGUMENT, \"Firestore transactions require all reads to be executed before all writes.\");\n return [ 4 /*yield*/ , function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i, o, s, u;\n return I(this, (function(a) {\n switch (a.label) {\n case 0:\n return n = O(t), r = Nn(n.R) + \"/documents\", i = {\n documents: e.map((function(t) {\n return En(n.R, t);\n }))\n }, [ 4 /*yield*/ , n.Oi(\"BatchGetDocuments\", r, i) ];\n\n case 1:\n return o = a.sent(), s = new Map, o.forEach((function(t) {\n var e = function(t, e) {\n return \"found\" in e ? function(t, e) {\n R(!!e.found), e.found.name, e.found.updateTime;\n var n = Tn(t, e.found.name), r = bn(e.found.updateTime), i = new bt({\n mapValue: {\n fields: e.found.fields\n }\n });\n return _t.newFoundDocument(n, r, i);\n }(t, e) : \"missing\" in e ? function(t, e) {\n R(!!e.missing), R(!!e.readTime);\n var n = Tn(t, e.missing), r = bn(e.readTime);\n return _t.newNoDocument(n, r);\n }(t, e) : C();\n }(n.R, t);\n s.set(e.key.toString(), e);\n })), u = [], [ 2 /*return*/ , (e.forEach((function(t) {\n var e = s.get(t.toString());\n R(!!e), u.push(e);\n })), u) ];\n }\n }));\n }));\n }(this.datastore, t) ];\n\n case 1:\n return [ 2 /*return*/ , ((e = r.sent()).forEach((function(t) {\n return n.recordVersion(t);\n })), e) ];\n }\n }));\n }));\n }, t.prototype.set = function(t, e) {\n this.write(e.toMutation(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }, t.prototype.update = function(t, e) {\n try {\n this.write(e.toMutation(t, this.preconditionForUpdate(t)));\n } catch (t) {\n this.lastWriteError = t;\n }\n this.writtenDocs.add(t.toString());\n }, t.prototype.delete = function(t) {\n this.write(new Ve(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }, t.prototype.commit = function() {\n return b(this, void 0, void 0, (function() {\n var t, e = this;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n if (this.ensureCommitNotCalled(), this.lastWriteError) throw this.lastWriteError;\n return t = this.readVersions, \n // For each mutation, note that the doc was written.\n this.mutations.forEach((function(e) {\n t.delete(e.key.toString());\n })), \n // For each document that was read but not written to, we want to perform\n // a `verify` operation.\n t.forEach((function(t, n) {\n var r = st.fromPath(n);\n e.mutations.push(new qe(r, e.precondition(r)));\n })), [ 4 /*yield*/ , function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return n = O(t), r = Nn(n.R) + \"/documents\", i = {\n writes: e.map((function(t) {\n return Cn(n.R, t);\n }))\n }, [ 4 /*yield*/ , n.Ni(\"Commit\", r, i) ];\n\n case 1:\n return o.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this.datastore, this.mutations) ];\n\n case 1:\n // For each mutation, note that the doc was written.\n return n.sent(), this.committed = !0, [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.recordVersion = function(t) {\n var e;\n if (t.isFoundDocument()) e = t.version; else {\n if (!t.isNoDocument()) throw C();\n // For deleted docs, we must use baseVersion 0 when we overwrite them.\n e = U.min();\n }\n var n = this.readVersions.get(t.key.toString());\n if (n) {\n if (!e.isEqual(n)) \n // This transaction will fail no matter what.\n throw new T(E.ABORTED, \"Document version changed between two reads.\");\n } else this.readVersions.set(t.key.toString(), e);\n }, \n /**\n * Returns the version of this document when it was read in this transaction,\n * as a precondition, or no precondition if it was not read.\n */\n t.prototype.precondition = function(t) {\n var e = this.readVersions.get(t.toString());\n return !this.writtenDocs.has(t.toString()) && e ? Ee.updateTime(e) : Ee.none();\n }, \n /**\n * Returns the precondition for a document if the operation is an update.\n */\n t.prototype.preconditionForUpdate = function(t) {\n var e = this.readVersions.get(t.toString());\n // The first time a document is written, we want to take into account the\n // read time and existence\n if (!this.writtenDocs.has(t.toString()) && e) {\n if (e.isEqual(U.min())) \n // The document doesn't exist, so fail the transaction.\n // This has to be validated locally because you can't send a\n // precondition that a document does not exist without changing the\n // semantics of the backend write to be an insert. This is the reverse\n // of what we want, since we want to assert that the document doesn't\n // exist but then send the update and have it fail. Since we can't\n // express that to the backend, we have to validate locally.\n // Note: this can change once we can send separate verify writes in the\n // transaction.\n throw new T(E.INVALID_ARGUMENT, \"Can't update a document that doesn't exist.\");\n // Document exists, base precondition on document update time.\n return Ee.updateTime(e);\n }\n // Document was not read, so we just use the preconditions for a blind\n // update.\n return Ee.exists(!0);\n }, t.prototype.write = function(t) {\n this.ensureCommitNotCalled(), this.mutations.push(t);\n }, t.prototype.ensureCommitNotCalled = function() {}, t;\n}(), pu = /** @class */ function() {\n function t(t, e, n, r) {\n this.asyncQueue = t, this.datastore = e, this.updateFunction = n, this.deferred = r, \n this.ec = 5, this.Zi = new No(this.asyncQueue, \"transaction_retry\" /* TransactionRetry */)\n /** Runs the transaction and sets the result on deferred. */;\n }\n return t.prototype.run = function() {\n this.nc();\n }, t.prototype.nc = function() {\n var t = this;\n this.Zi.ji((function() {\n return b(t, void 0, void 0, (function() {\n var t, e, n = this;\n return I(this, (function(r) {\n return t = new du(this.datastore), (e = this.sc(t)) && e.then((function(e) {\n n.asyncQueue.enqueueAndForget((function() {\n return t.commit().then((function() {\n n.deferred.resolve(e);\n })).catch((function(t) {\n n.ic(t);\n }));\n }));\n })).catch((function(t) {\n n.ic(t);\n })), [ 2 /*return*/ ];\n }));\n }));\n }));\n }, t.prototype.sc = function(t) {\n try {\n var e = this.updateFunction(t);\n return !rt(e) && e.catch && e.then ? e : (this.deferred.reject(Error(\"Transaction callback must return a Promise\")), \n null);\n } catch (t) {\n // Do not retry errors thrown by user provided updateFunction.\n return this.deferred.reject(t), null;\n }\n }, t.prototype.ic = function(t) {\n var e = this;\n this.ec > 0 && this.rc(t) ? (this.ec -= 1, this.asyncQueue.enqueueAndForget((function() {\n return e.nc(), Promise.resolve();\n }))) : this.deferred.reject(t);\n }, t.prototype.rc = function(t) {\n if (\"FirebaseError\" === t.name) {\n // In transactions, the backend will fail outdated reads with FAILED_PRECONDITION and\n // non-matching document versions with ABORTED. These errors should be retried.\n var e = t.code;\n return \"aborted\" === e || \"failed-precondition\" === e || !Be(e);\n }\n return !1;\n }, t;\n}(), yu = /** @class */ function() {\n function t(t, \n /**\n * Asynchronous queue responsible for all of our internal processing. When\n * we get incoming work from the user (via public API) or the network\n * (incoming GRPC messages), we should always schedule onto this queue.\n * This ensures all of our work is properly serialized (e.g. we don't\n * start processing a new operation while the previous one is waiting for\n * an async I/O to complete).\n */\n e, n) {\n var r = this;\n this.credentials = t, this.asyncQueue = e, this.databaseInfo = n, this.user = uo.UNAUTHENTICATED, \n this.clientId = P.u(), this.credentialListener = function() {}, this.receivedInitialUser = new vr, \n this.credentials.setChangeListener((function(t) {\n N(\"FirestoreClient\", \"Received user=\", t.uid), r.user = t, r.credentialListener(t), \n r.receivedInitialUser.resolve();\n }));\n }\n return t.prototype.getConfiguration = function() {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return [ 4 /*yield*/ , this.receivedInitialUser.promise ];\n\n case 1:\n return [ 2 /*return*/ , (t.sent(), {\n asyncQueue: this.asyncQueue,\n databaseInfo: this.databaseInfo,\n clientId: this.clientId,\n credentials: this.credentials,\n initialUser: this.user,\n maxConcurrentLimboResolutions: 100\n }) ];\n }\n }));\n }));\n }, t.prototype.setCredentialChangeListener = function(t) {\n var e = this;\n this.credentialListener = t, \n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.receivedInitialUser.promise.then((function() {\n return e.credentialListener(e.user);\n }));\n }, \n /**\n * Checks that the client has not been terminated. Ensures that other methods on\n * this class cannot be called after the client is terminated.\n */\n t.prototype.verifyNotTerminated = function() {\n if (this.asyncQueue.isShuttingDown) throw new T(E.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }, t.prototype.terminate = function() {\n var t = this;\n this.asyncQueue.enterRestrictedMode();\n var e = new vr;\n return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((function() {\n return b(t, void 0, void 0, (function() {\n var t, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 5, , 6 ]), this.onlineComponents ? [ 4 /*yield*/ , this.onlineComponents.terminate() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n r.sent(), r.label = 2;\n\n case 2:\n return this.offlineComponents ? [ 4 /*yield*/ , this.offlineComponents.terminate() ] : [ 3 /*break*/ , 4 ];\n\n case 3:\n r.sent(), r.label = 4;\n\n case 4:\n // `removeChangeListener` must be called after shutting down the\n // RemoteStore as it will prevent the RemoteStore from retrieving\n // auth tokens.\n return this.credentials.removeChangeListener(), e.resolve(), [ 3 /*break*/ , 6 ];\n\n case 5:\n return t = r.sent(), n = ss(t, \"Failed to shutdown persistence\"), e.reject(n), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })), e.promise;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A class representing a bundle.\n *\n * Takes a bundle stream or buffer, and presents abstractions to read bundled\n * elements out of the underlying content.\n */ function vu(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r, i = this;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return t.asyncQueue.verifyOperationInProgress(), N(\"FirestoreClient\", \"Initializing OfflineComponentProvider\"), \n [ 4 /*yield*/ , t.getConfiguration() ];\n\n case 1:\n return n = o.sent(), [ 4 /*yield*/ , e.initialize(n) ];\n\n case 2:\n return o.sent(), r = n.initialUser, t.setCredentialChangeListener((function(n) {\n r.isEqual(n) || (r = n, t.asyncQueue.enqueueRetryable((function() {\n return b(i, void 0, void 0, (function() {\n return I(this, (function(t) {\n switch (t.label) {\n case 0:\n return [ 4 /*yield*/ , Fi(e.localStore, n) ];\n\n case 1:\n return t.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n })));\n })), \n // When a user calls clearPersistence() in one client, all other clients\n // need to be terminated to allow the delete to succeed.\n e.persistence.setDatabaseDeletedListener((function() {\n return t.terminate();\n })), t.offlineComponents = e, [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction mu(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return t.asyncQueue.verifyOperationInProgress(), [ 4 /*yield*/ , gu(t) ];\n\n case 1:\n return n = i.sent(), N(\"FirestoreClient\", \"Initializing OnlineComponentProvider\"), \n [ 4 /*yield*/ , t.getConfiguration() ];\n\n case 2:\n return r = i.sent(), [ 4 /*yield*/ , e.initialize(n, r) ];\n\n case 3:\n return i.sent(), \n // The CredentialChangeListener of the online component provider takes\n // precedence over the offline component provider.\n t.setCredentialChangeListener((function(n) {\n return t.asyncQueue.enqueueRetryable((function() {\n return function(t, e) {\n return b(this, void 0, void 0, (function() {\n var n, r;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return (n = O(t)).asyncQueue.verifyOperationInProgress(), N(\"RemoteStore\", \"RemoteStore received new credentials\"), \n r = jo(n), \n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n n.$r.add(3 /* CredentialChange */), [ 4 /*yield*/ , Po(n) ];\n\n case 1:\n return i.sent(), r && \n // Don't set the network status to Unknown if we are offline.\n n.Br.set(\"Unknown\" /* Unknown */), [ 4 /*yield*/ , n.remoteSyncer.handleCredentialChange(e) ];\n\n case 2:\n return i.sent(), n.$r.delete(3 /* CredentialChange */), [ 4 /*yield*/ , Lo(n) ];\n\n case 3:\n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n return i.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(e.remoteStore, n);\n }));\n })), t.onlineComponents = e, [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction gu(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return t.offlineComponents ? [ 3 /*break*/ , 2 ] : (N(\"FirestoreClient\", \"Using default OfflineComponentProvider\"), \n [ 4 /*yield*/ , vu(t, new su) ]);\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ , t.offlineComponents ];\n }\n }));\n }));\n}\n\nfunction wu(t) {\n return b(this, void 0, void 0, (function() {\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return t.onlineComponents ? [ 3 /*break*/ , 2 ] : (N(\"FirestoreClient\", \"Using default OnlineComponentProvider\"), \n [ 4 /*yield*/ , mu(t, new cu) ]);\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ , t.onlineComponents ];\n }\n }));\n }));\n}\n\nfunction bu(t) {\n return gu(t).then((function(t) {\n return t.persistence;\n }));\n}\n\nfunction Iu(t) {\n return gu(t).then((function(t) {\n return t.localStore;\n }));\n}\n\nfunction _u(t) {\n return wu(t).then((function(t) {\n return t.remoteStore;\n }));\n}\n\nfunction Eu(t) {\n return wu(t).then((function(t) {\n return t.syncEngine;\n }));\n}\n\nfunction Tu(t) {\n return b(this, void 0, void 0, (function() {\n var e, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , wu(t) ];\n\n case 1:\n return e = r.sent(), [ 2 /*return*/ , ((n = e.eventManager).onListen = As.bind(null, e.syncEngine), \n n.onUnlisten = xs.bind(null, e.syncEngine), n) ];\n }\n }));\n }));\n}\n\n/** Enables the network connection and re-enqueues all pending operations. */ function Su(t, e, n) {\n var r = this;\n void 0 === n && (n = {});\n var i = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(r, void 0, void 0, (function() {\n var r;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return r = function(t, e, n, r, i) {\n var o = new fu({\n next: function(o) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((function() {\n return ds(t, s);\n }));\n var u = o.docs.has(n);\n !u && o.fromCache ? \n // TODO(dimond): If we're online and the document doesn't\n // exist then we resolve with a doc.exists set to false. If\n // we're offline however, we reject the Promise in this\n // case. Two options: 1) Cache the negative response from\n // the server so we can deliver that even when you're\n // offline 2) Actually reject the Promise in the online case\n // if the document doesn't exist.\n i.reject(new T(E.UNAVAILABLE, \"Failed to get document because the client is offline.\")) : u && o.fromCache && r && \"server\" === r.source ? i.reject(new T(E.UNAVAILABLE, 'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to \"server\" to retrieve the cached document.)')) : i.resolve(o);\n },\n error: function(t) {\n return i.reject(t);\n }\n }), s = new ms(Qt(n.path), o, {\n includeMetadataChanges: !0,\n so: !0\n });\n return ls(t, s);\n }, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , r.apply(void 0, [ o.sent(), t.asyncQueue, e, n, i ]) ];\n }\n }));\n }));\n })), i.promise;\n}\n\nfunction Du(t, e, n) {\n var r = this;\n void 0 === n && (n = {});\n var i = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(r, void 0, void 0, (function() {\n var r;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return r = function(t, e, n, r, i) {\n var o = new fu({\n next: function(n) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((function() {\n return ds(t, s);\n })), n.fromCache && \"server\" === r.source ? i.reject(new T(E.UNAVAILABLE, 'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to \"server\" to retrieve the cached documents.)')) : i.resolve(n);\n },\n error: function(t) {\n return i.reject(t);\n }\n }), s = new ms(n, o, {\n includeMetadataChanges: !0,\n so: !0\n });\n return ls(t, s);\n }, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , r.apply(void 0, [ o.sent(), t.asyncQueue, e, n, i ]) ];\n }\n }));\n }));\n })), i.promise;\n}\n\nvar Nu = \n/**\n * Constructs a DatabaseInfo using the provided host, databaseId and\n * persistenceKey.\n *\n * @param databaseId - The database to use.\n * @param appId - The Firebase App Id.\n * @param persistenceKey - A unique identifier for this Firestore's local\n * storage (used in conjunction with the databaseId).\n * @param host - The Firestore backend host to connect to.\n * @param ssl - Whether to use SSL when connecting.\n * @param forceLongPolling - Whether to use the forceLongPolling option\n * when using WebChannel as the network transport.\n * @param autoDetectLongPolling - Whether to use the detectBufferingProxy\n * option when using WebChannel as the network transport.\n */\nfunction(t, e, n, r, i, o, s) {\n this.databaseId = t, this.appId = e, this.persistenceKey = n, this.host = r, this.ssl = i, \n this.forceLongPolling = o, this.autoDetectLongPolling = s;\n}, Au = /** @class */ function() {\n function t(t, e) {\n this.projectId = t, this.database = e || \"(default)\";\n }\n return Object.defineProperty(t.prototype, \"isDefaultDatabase\", {\n get: function() {\n return \"(default)\" === this.database;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(e) {\n return e instanceof t && e.projectId === this.projectId && e.database === this.database;\n }, t;\n}(), ku = new Map, xu = function(t, e) {\n this.user = e, this.type = \"OAuth\", this.authHeaders = {}, \n // Set the headers using Object Literal notation to avoid minification\n this.authHeaders.Authorization = \"Bearer \" + t;\n}, Cu = /** @class */ function() {\n function t() {\n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.changeListener = null;\n }\n return t.prototype.getToken = function() {\n return Promise.resolve(null);\n }, t.prototype.invalidateToken = function() {}, t.prototype.setChangeListener = function(t) {\n this.changeListener = t, \n // Fire with initial user.\n t(uo.UNAUTHENTICATED);\n }, t.prototype.removeChangeListener = function() {\n this.changeListener = null;\n }, t;\n}(), Ru = /** @class */ function() {\n function t(t) {\n var e = this;\n /**\n * The auth token listener registered with FirebaseApp, retained here so we\n * can unregister it.\n */ this.oc = null, \n /** Tracks the current User. */\n this.currentUser = uo.UNAUTHENTICATED, this.receivedInitialUser = !1, \n /**\n * Counter used to detect if the token changed while a getToken request was\n * outstanding.\n */\n this.cc = 0, \n /** The listener registered with setChangeListener(). */\n this.changeListener = null, this.forceRefresh = !1, this.oc = function() {\n e.cc++, e.currentUser = e.uc(), e.receivedInitialUser = !0, e.changeListener && e.changeListener(e.currentUser);\n }, this.cc = 0, this.auth = t.getImmediate({\n optional: !0\n }), this.auth ? this.auth.addAuthTokenListener(this.oc) : (\n // if auth is not available, invoke tokenListener once with null token\n this.oc(null), t.get().then((function(t) {\n e.auth = t, e.oc && \n // tokenListener can be removed by removeChangeListener()\n e.auth.addAuthTokenListener(e.oc);\n }), (function() {})));\n }\n return t.prototype.getToken = function() {\n var t = this, e = this.cc, n = this.forceRefresh;\n // Take note of the current value of the tokenCounter so that this method\n // can fail (with an ABORTED error) if there is a token change while the\n // request is outstanding.\n return this.forceRefresh = !1, this.auth ? this.auth.getToken(n).then((function(n) {\n // Cancel the request since the token changed while the request was\n // outstanding so the response is potentially for a previous user (which\n // user, we can't be sure).\n return t.cc !== e ? (N(\"FirebaseCredentialsProvider\", \"getToken aborted due to token change.\"), \n t.getToken()) : n ? (R(\"string\" == typeof n.accessToken), new xu(n.accessToken, t.currentUser)) : null;\n })) : Promise.resolve(null);\n }, t.prototype.invalidateToken = function() {\n this.forceRefresh = !0;\n }, t.prototype.setChangeListener = function(t) {\n this.changeListener = t, \n // Fire the initial event\n this.receivedInitialUser && t(this.currentUser);\n }, t.prototype.removeChangeListener = function() {\n this.auth && this.auth.removeAuthTokenListener(this.oc), this.oc = null, this.changeListener = null;\n }, \n // Auth.getUid() can return null even with a user logged in. It is because\n // getUid() is synchronous, but the auth code populating Uid is asynchronous.\n // This method should only be called in the AuthTokenListener callback\n // to guarantee to get the actual user.\n t.prototype.uc = function() {\n var t = this.auth && this.auth.getUid();\n return R(null === t || \"string\" == typeof t), new uo(t);\n }, t;\n}(), Ou = /** @class */ function() {\n function t(t, e, n) {\n this.ac = t, this.hc = e, this.lc = n, this.type = \"FirstParty\", this.user = uo.FIRST_PARTY;\n }\n return Object.defineProperty(t.prototype, \"authHeaders\", {\n get: function() {\n var t = {\n \"X-Goog-AuthUser\": this.hc\n }, e = this.ac.auth.getAuthHeaderValueForFirstParty([]);\n // Use array notation to prevent minification\n return e && (t.Authorization = e), this.lc && (t[\"X-Goog-Iam-Authorization-Token\"] = this.lc), \n t;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), Lu = /** @class */ function() {\n function t(t, e, n) {\n this.ac = t, this.hc = e, this.lc = n;\n }\n return t.prototype.getToken = function() {\n return Promise.resolve(new Ou(this.ac, this.hc, this.lc));\n }, t.prototype.setChangeListener = function(t) {\n // Fire with initial uid.\n t(uo.FIRST_PARTY);\n }, t.prototype.removeChangeListener = function() {}, t.prototype.invalidateToken = function() {}, \n t;\n}();\n\n/** The default database name for a project. */\n/** Represents the database ID a Firestore client is associated with. */\n/**\n * Builds a CredentialsProvider depending on the type of\n * the credentials passed in.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction Pu(t, e, n) {\n if (!n) throw new T(E.INVALID_ARGUMENT, \"Function \" + t + \"() cannot be called with an empty \" + e + \".\");\n}\n\nfunction Mu(t, e) {\n if (void 0 === e) return {\n merge: !1\n };\n if (void 0 !== e.mergeFields && void 0 !== e.merge) throw new T(E.INVALID_ARGUMENT, \"Invalid options passed to function \" + t + '(): You cannot specify both \"merge\" and \"mergeFields\".');\n return e;\n}\n\n/**\n * Validates that two boolean options are not set at the same time.\n */ function Fu(t, e, n, r) {\n if (!0 === e && !0 === r) throw new T(E.INVALID_ARGUMENT, t + \" and \" + n + \" cannot be used together.\");\n}\n\n/**\n * Validates that `path` refers to a document (indicated by the fact it contains\n * an even numbers of segments).\n */ function Vu(t) {\n if (!st.isDocumentKey(t)) throw new T(E.INVALID_ARGUMENT, \"Invalid document reference. Document references must have an even number of segments, but \" + t + \" has \" + t.length + \".\");\n}\n\n/**\n * Validates that `path` refers to a collection (indicated by the fact it\n * contains an odd numbers of segments).\n */ function qu(t) {\n if (st.isDocumentKey(t)) throw new T(E.INVALID_ARGUMENT, \"Invalid collection reference. Collection references must have an odd number of segments, but \" + t + \" has \" + t.length + \".\");\n}\n\n/**\n * Returns true if it's a non-null object without a custom prototype\n * (i.e. excludes Array, Date, etc.).\n */\n/** Returns a string describing the type / value of the provided input. */ function Uu(t) {\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"string\" == typeof t) return t.length > 20 && (t = t.substring(0, 20) + \"...\"), \n JSON.stringify(t);\n if (\"number\" == typeof t || \"boolean\" == typeof t) return \"\" + t;\n if (\"object\" == typeof t) {\n if (t instanceof Array) return \"an array\";\n var e = \n /** Hacky method to try to get the constructor name for an object. */\n function(t) {\n if (t.constructor) {\n var e = /function\\s+([^\\s(]+)\\s*\\(/.exec(t.constructor.toString());\n if (e && e.length > 1) return e[1];\n }\n return null;\n }(t);\n return e ? \"a custom \" + e + \" object\" : \"an object\";\n }\n return \"function\" == typeof t ? \"a function\" : C();\n}\n\nfunction Bu(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n if (\"_delegate\" in t && (\n // Unwrap Compat types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t = t._delegate), !(t instanceof e)) {\n if (e.name === t.constructor.name) throw new T(E.INVALID_ARGUMENT, \"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?\");\n var n = Uu(t);\n throw new T(E.INVALID_ARGUMENT, \"Expected type '\" + e.name + \"', but it was: \" + n);\n }\n return t;\n}\n\nfunction ju(t, e) {\n if (e <= 0) throw new T(E.INVALID_ARGUMENT, \"Function \" + t + \"() requires a positive number, but it was: \" + e + \".\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// settings() defaults:\n/**\n * A concrete type describing all the values that can be applied via a\n * user-supplied firestore.Settings object. This is a separate type so that\n * defaults can be supplied and the value can be checked for equality.\n */ var Ku = /** @class */ function() {\n function t(t) {\n var e;\n if (void 0 === t.host) {\n if (void 0 !== t.ssl) throw new T(E.INVALID_ARGUMENT, \"Can't provide ssl option if host option is not set\");\n this.host = \"firestore.googleapis.com\", this.ssl = !0;\n } else this.host = t.host, this.ssl = null === (e = t.ssl) || void 0 === e || e;\n if (this.credentials = t.credentials, this.ignoreUndefinedProperties = !!t.ignoreUndefinedProperties, \n void 0 === t.cacheSizeBytes) this.cacheSizeBytes = 41943040; else {\n if (-1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new T(E.INVALID_ARGUMENT, \"cacheSizeBytes must be at least 1048576\");\n this.cacheSizeBytes = t.cacheSizeBytes;\n }\n this.experimentalForceLongPolling = !!t.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t.experimentalAutoDetectLongPolling, \n Fu(\"experimentalForceLongPolling\", t.experimentalForceLongPolling, \"experimentalAutoDetectLongPolling\", t.experimentalAutoDetectLongPolling);\n }\n return t.prototype.isEqual = function(t) {\n return this.host === t.host && this.ssl === t.ssl && this.credentials === t.credentials && this.cacheSizeBytes === t.cacheSizeBytes && this.experimentalForceLongPolling === t.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t.ignoreUndefinedProperties;\n }, t;\n}(), Gu = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this._persistenceKey = \"(lite)\", this._settings = new Ku({}), this._settingsFrozen = !1, \n t instanceof Au ? (this._databaseId = t, this._credentials = new Cu) : (this._app = t, \n this._databaseId = function(t) {\n if (!Object.prototype.hasOwnProperty.apply(t.options, [ \"projectId\" ])) throw new T(E.INVALID_ARGUMENT, '\"projectId\" not provided in firebase.initializeApp.');\n return new Au(t.options.projectId);\n }(t), this._credentials = new Ru(e));\n }\n return Object.defineProperty(t.prototype, \"app\", {\n /**\n * The {@link FirebaseApp} associated with this `Firestore` service\n * instance.\n */\n get: function() {\n if (!this._app) throw new T(E.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this._app;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"_initialized\", {\n get: function() {\n return this._settingsFrozen;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"_terminated\", {\n get: function() {\n return void 0 !== this._terminateTask;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype._setSettings = function(t) {\n if (this._settingsFrozen) throw new T(E.FAILED_PRECONDITION, \"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.\");\n this._settings = new Ku(t), void 0 !== t.credentials && (this._credentials = function(t) {\n if (!t) return new Cu;\n switch (t.type) {\n case \"gapi\":\n var e = t.client;\n // Make sure this really is a Gapi client.\n return R(!(\"object\" != typeof e || null === e || !e.auth || !e.auth.getAuthHeaderValueForFirstParty)), \n new Lu(e, t.sessionIndex || \"0\", t.iamToken || null);\n\n case \"provider\":\n return t.client;\n\n default:\n throw new T(E.INVALID_ARGUMENT, \"makeCredentialsProvider failed due to invalid credential type\");\n }\n }(t.credentials));\n }, t.prototype._getSettings = function() {\n return this._settings;\n }, t.prototype._freezeSettings = function() {\n return this._settingsFrozen = !0, this._settings;\n }, t.prototype._delete = function() {\n return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask;\n }, t.prototype.toJSON = function() {\n return {\n app: this._app,\n databaseId: this._databaseId,\n settings: this._settings\n };\n }, \n /**\n * Terminates all components used by this client. Subclasses can override\n * this method to clean up their own dependencies, but must also call this\n * method.\n *\n * Only ever called once.\n */\n t.prototype._terminate = function() {\n /**\n * Removes all components associated with the provided instance. Must be called\n * when the `Firestore` instance is terminated.\n */\n return t = this, (e = ku.get(t)) && (N(\"ComponentProvider\", \"Removing Datastore\"), \n ku.delete(t), e.terminate()), Promise.resolve();\n var t, e;\n }, t;\n}(), Qu = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e, n) {\n this._converter = e, this._key = n, \n /** The type of this Firestore reference. */\n this.type = \"document\", this.firestore = t;\n }\n return Object.defineProperty(t.prototype, \"_path\", {\n get: function() {\n return this._key.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"id\", {\n /**\n * The document's identifier within its collection.\n */\n get: function() {\n return this._key.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"path\", {\n /**\n * A string representing the path of the referenced document (relative\n * to the root of the database).\n */\n get: function() {\n return this._key.path.canonicalString();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"parent\", {\n /**\n * The collection this `DocumentReference` belongs to.\n */\n get: function() {\n return new Wu(this.firestore, this._converter, this._key.path.popLast());\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.withConverter = function(e) {\n return new t(this.firestore, e, this._key);\n }, t;\n}(), zu = /** @class */ function() {\n // This is the lite version of the Query class in the main SDK.\n /** @hideconstructor protected */\n function t(t, e, n) {\n this._converter = e, this._query = n, \n /** The type of this Firestore reference. */\n this.type = \"query\", this.firestore = t;\n }\n return t.prototype.withConverter = function(e) {\n return new t(this.firestore, e, this._query);\n }, t;\n}(), Wu = /** @class */ function(t) {\n /** @hideconstructor */\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this, e, n, Qt(r)) || this).firestore = e, i._path = r, i.type = \"collection\", \n i;\n }\n return g(e, t), Object.defineProperty(e.prototype, \"id\", {\n /** The collection's identifier. */ get: function() {\n return this._query.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"path\", {\n /**\n * A string representing the path of the referenced collection (relative\n * to the root of the database).\n */\n get: function() {\n return this._query.path.canonicalString();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"parent\", {\n /**\n * A reference to the containing `DocumentReference` if this is a\n * subcollection. If this isn't a subcollection, the reference is null.\n */\n get: function() {\n var t = this._path.popLast();\n return t.isEmpty() ? null : new Qu(this.firestore, \n /* converter= */ null, new st(t));\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.withConverter = function(t) {\n return new e(this.firestore, t, this._path);\n }, e;\n}(zu);\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The Cloud Firestore service interface.\n *\n * Do not call this constructor directly. Instead, use {@link getFirestore}.\n */ function Hu(t, e) {\n for (var n, r = [], i = 2; i < arguments.length; i++) r[i - 2] = arguments[i];\n if (t = u(t), Pu(\"collection\", \"path\", e), t instanceof Gu) return qu(n = Q.fromString.apply(Q, w([ e ], r))), \n new Wu(t, /* converter= */ null, n);\n if (!(t instanceof Qu || t instanceof Wu)) throw new T(E.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n return qu(n = Q.fromString.apply(Q, w([ t.path ], r)).child(Q.fromString(e))), new Wu(t.firestore, \n /* converter= */ null, n);\n}\n\n// TODO(firestorelite): Consider using ErrorFactory -\n// https://github.com/firebase/firebase-js-sdk/blob/0131e1f/packages/util/src/errors.ts#L106\n/**\n * Creates and returns a new `Query` instance that includes all documents in the\n * database that are contained in a collection or subcollection with the\n * given `collectionId`.\n *\n * @param firestore - A reference to the root Firestore instance.\n * @param collectionId - Identifies the collections to query over. Every\n * collection or subcollection with this ID as the last segment of its path\n * will be included. Cannot contain a slash.\n * @returns The created `Query`.\n */ function Yu(t, e) {\n for (var n, r = [], i = 2; i < arguments.length; i++) r[i - 2] = arguments[i];\n if (t = u(t), \n // We allow omission of 'pathString' but explicitly prohibit passing in both\n // 'undefined' and 'null'.\n 1 === arguments.length && (e = P.u()), Pu(\"doc\", \"path\", e), t instanceof Gu) return Vu(n = Q.fromString.apply(Q, w([ e ], r))), \n new Qu(t, \n /* converter= */ null, new st(n));\n if (!(t instanceof Qu || t instanceof Wu)) throw new T(E.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n return Vu(n = t._path.child(Q.fromString.apply(Q, w([ e ], r)))), new Qu(t.firestore, t instanceof Wu ? t._converter : null, new st(n));\n}\n\n/**\n * Returns true if the provided references are equal.\n *\n * @param left - A reference to compare.\n * @param right - A reference to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function Xu(t, e) {\n return t = u(t), e = u(e), (t instanceof Qu || t instanceof Wu) && (e instanceof Qu || e instanceof Wu) && t.firestore === e.firestore && t.path === e.path && t._converter === e._converter\n /**\n * Returns true if the provided queries point to the same collection and apply\n * the same constraints.\n *\n * @param left - A `Query` to compare.\n * @param right - A `Query` to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */;\n}\n\nfunction $u(t, e) {\n return t = u(t), e = u(e), t instanceof zu && e instanceof zu && t.firestore === e.firestore && te(t._query, e._query) && t._converter === e._converter\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */;\n}\n\nvar Ju = /** @class */ function() {\n function t() {\n var t = this;\n // The last promise in the queue.\n this.fc = Promise.resolve(), \n // A list of retryable operations. Retryable operations are run in order and\n // retried with backoff.\n this.dc = [], \n // Is this AsyncQueue being shut down? Once it is set to true, it will not\n // be changed again.\n this.wc = !1, \n // Operations scheduled to be queued in the future. Operations are\n // automatically removed after they are run or canceled.\n this._c = [], \n // visible for testing\n this.mc = null, \n // Flag set while there's an outstanding AsyncQueue operation, used for\n // assertion sanity-checks.\n this.yc = !1, \n // List of TimerIds to fast-forward delays for.\n this.gc = [], \n // Backoff timer used to schedule retries for retryable operations\n this.Zi = new No(this, \"async_queue_retry\" /* AsyncQueueRetry */), \n // Visibility handler that triggers an immediate retry of all retryable\n // operations. Meant to speed up recovery when we regain file system access\n // after page comes into foreground.\n this.Ec = function() {\n var e = So();\n e && N(\"AsyncQueue\", \"Visibility state changed to \" + e.visibilityState), t.Zi.Gi();\n };\n var e = So();\n e && \"function\" == typeof e.addEventListener && e.addEventListener(\"visibilitychange\", this.Ec);\n }\n return Object.defineProperty(t.prototype, \"isShuttingDown\", {\n get: function() {\n return this.wc;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Adds a new operation to the queue without waiting for it to complete (i.e.\n * we ignore the Promise result).\n */\n t.prototype.enqueueAndForget = function(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.enqueue(t);\n }, t.prototype.enqueueAndForgetEvenWhileRestricted = function(t) {\n this.Tc(), \n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.Ic(t);\n }, t.prototype.enterRestrictedMode = function() {\n if (!this.wc) {\n this.wc = !0;\n var t = So();\n t && \"function\" == typeof t.removeEventListener && t.removeEventListener(\"visibilitychange\", this.Ec);\n }\n }, t.prototype.enqueue = function(t) {\n return this.Tc(), this.wc ? new Promise((function(t) {})) : this.Ic(t);\n }, t.prototype.enqueueRetryable = function(t) {\n var e = this;\n this.enqueueAndForget((function() {\n return e.dc.push(t), e.Ac();\n }));\n }, \n /**\n * Runs the next operation from the retryable queue. If the operation fails,\n * reschedules with backoff.\n */\n t.prototype.Ac = function() {\n return b(this, void 0, void 0, (function() {\n var t, e = this;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n if (0 === this.dc.length) return [ 3 /*break*/ , 5 ];\n n.label = 1;\n\n case 1:\n return n.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , this.dc[0]() ];\n\n case 2:\n return n.sent(), this.dc.shift(), this.Zi.reset(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!_r(t = n.sent())) throw t;\n // Failure will be handled by AsyncQueue\n return N(\"AsyncQueue\", \"Operation failed with retryable error: \" + t), \n [ 3 /*break*/ , 4 ];\n\n case 4:\n this.dc.length > 0 && \n // If there are additional operations, we re-schedule `retryNextOp()`.\n // This is necessary to run retryable operations that failed during\n // their initial attempt since we don't know whether they are already\n // enqueued. If, for example, `op1`, `op2`, `op3` are enqueued and `op1`\n // needs to be re-run, we will run `op1`, `op1`, `op2` using the\n // already enqueued calls to `retryNextOp()`. `op3()` will then run in the\n // call scheduled here.\n // Since `backoffAndRun()` cancels an existing backoff and schedules a\n // new backoff on every call, there is only ever a single additional\n // operation in the queue.\n this.Zi.ji((function() {\n return e.Ac();\n })), n.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.Ic = function(t) {\n var e = this, n = this.fc.then((function() {\n return e.yc = !0, t().catch((function(t) {\n // Re-throw the error so that this.tail becomes a rejected Promise and\n // all further attempts to chain (via .then) will just short-circuit\n // and return the rejected Promise.\n throw e.mc = t, e.yc = !1, A(\"INTERNAL UNHANDLED ERROR: \", \n /**\n * Chrome includes Error.message in Error.stack. Other browsers do not.\n * This returns expected output of message + stack when available.\n * @param error - Error or FirestoreError\n */\n function(t) {\n var e = t.message || \"\";\n return t.stack && (e = t.stack.includes(t.message) ? t.stack : t.message + \"\\n\" + t.stack), \n e;\n }(t)), t;\n })).then((function(t) {\n return e.yc = !1, t;\n }));\n }));\n return this.fc = n, n;\n }, t.prototype.enqueueAfterDelay = function(t, e, n) {\n var r = this;\n this.Tc(), \n // Fast-forward delays for timerIds that have been overriden.\n this.gc.indexOf(t) > -1 && (e = 0);\n var i = os.createAndSchedule(this, t, e, n, (function(t) {\n return r.Rc(t);\n }));\n return this._c.push(i), i;\n }, t.prototype.Tc = function() {\n this.mc && C();\n }, t.prototype.verifyOperationInProgress = function() {}, \n /**\n * Waits until all currently queued tasks are finished executing. Delayed\n * operations are not run.\n */\n t.prototype.bc = function() {\n return b(this, void 0, void 0, (function() {\n var t;\n return I(this, (function(e) {\n switch (e.label) {\n case 0:\n return [ 4 /*yield*/ , t = this.fc ];\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n if (t !== this.fc) return [ 3 /*break*/ , 0 ];\n e.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * For Tests: Determine if a delayed operation with a particular TimerId\n * exists.\n */\n t.prototype.vc = function(t) {\n for (var e = 0, n = this._c; e < n.length; e++) {\n if (n[e].timerId === t) return !0;\n }\n return !1;\n }, \n /**\n * For Tests: Runs some or all delayed operations early.\n *\n * @param lastTimerId - Delayed operations up to and including this TimerId\n * will be drained. Pass TimerId.All to run all delayed operations.\n * @returns a Promise that resolves once all operations have been run.\n */\n t.prototype.Pc = function(t) {\n var e = this;\n // Note that draining may generate more delayed ops, so we do that first.\n return this.bc().then((function() {\n // Run ops in the same order they'd run if they ran naturally.\n e._c.sort((function(t, e) {\n return t.targetTimeMs - e.targetTimeMs;\n }));\n for (var n = 0, r = e._c; n < r.length; n++) {\n var i = r[n];\n if (i.skipDelay(), \"all\" /* All */ !== t && i.timerId === t) break;\n }\n return e.bc();\n }));\n }, \n /**\n * For Tests: Skip all subsequent delays for a timer id.\n */\n t.prototype.Vc = function(t) {\n this.gc.push(t);\n }, \n /** Called once a DelayedOperation is run or canceled. */ t.prototype.Rc = function(t) {\n // NOTE: indexOf / slice are O(n), but delayedOperations is expected to be small.\n var e = this._c.indexOf(t);\n this._c.splice(e, 1);\n }, t;\n}();\n\nfunction Zu(t) {\n /**\n * Returns true if obj is an object and contains at least one of the specified\n * methods.\n */\n return function(t, e) {\n if (\"object\" != typeof t || null === t) return !1;\n for (var n = t, r = 0, i = [ \"next\", \"error\", \"complete\" ]; r < i.length; r++) {\n var o = i[r];\n if (o in n && \"function\" == typeof n[o]) return !0;\n }\n return !1;\n }(t);\n}\n\nvar ta = /** @class */ function() {\n function t() {\n this._progressObserver = {}, this._taskCompletionResolver = new vr, this._lastProgress = {\n taskState: \"Running\",\n totalBytes: 0,\n totalDocuments: 0,\n bytesLoaded: 0,\n documentsLoaded: 0\n }\n /**\n * Registers functions to listen to bundle loading progress events.\n * @param next - Called when there is a progress update from bundle loading. Typically `next` calls occur\n * each time a Firestore document is loaded from the bundle.\n * @param error - Called when an error occurs during bundle loading. The task aborts after reporting the\n * error, and there should be no more updates after this.\n * @param complete - Called when the loading task is complete.\n */;\n }\n return t.prototype.onProgress = function(t, e, n) {\n this._progressObserver = {\n next: t,\n error: e,\n complete: n\n };\n }, \n /**\n * Implements the `Promise.catch` interface.\n *\n * @param onRejected - Called when an error occurs during bundle loading.\n */\n t.prototype.catch = function(t) {\n return this._taskCompletionResolver.promise.catch(t);\n }, \n /**\n * Implements the `Promise.then` interface.\n *\n * @param onFulfilled - Called on the completion of the loading task with a final `LoadBundleTaskProgress` update.\n * The update will always have its `taskState` set to `\"Success\"`.\n * @param onRejected - Called when an error occurs during bundle loading.\n */\n t.prototype.then = function(t, e) {\n return this._taskCompletionResolver.promise.then(t, e);\n }, \n /**\n * Notifies all observers that bundle loading has completed, with a provided\n * `LoadBundleTaskProgress` object.\n *\n * @private\n */\n t.prototype._completeWith = function(t) {\n this._updateProgress(t), this._progressObserver.complete && this._progressObserver.complete(), \n this._taskCompletionResolver.resolve(t);\n }, \n /**\n * Notifies all observers that bundle loading has failed, with a provided\n * `Error` as the reason.\n *\n * @private\n */\n t.prototype._failWith = function(t) {\n this._lastProgress.taskState = \"Error\", this._progressObserver.next && this._progressObserver.next(this._lastProgress), \n this._progressObserver.error && this._progressObserver.error(t), this._taskCompletionResolver.reject(t);\n }, \n /**\n * Notifies a progress update of loading a bundle.\n * @param progress - The new progress.\n *\n * @private\n */\n t.prototype._updateProgress = function(t) {\n this._lastProgress = t, this._progressObserver.next && this._progressObserver.next(t);\n }, t;\n}(), ea = -1, na = /** @class */ function(t) {\n /** @hideconstructor */\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, n) || this)._queue = new Ju, r._persistenceKey = \"name\" in e ? e.name : \"[DEFAULT]\", \n r;\n }\n return g(e, t), e.prototype._terminate = function() {\n return this._firestoreClient || \n // The client must be initialized to ensure that all subsequent API\n // usage throws an exception.\n ia(this), this._firestoreClient.terminate();\n }, e;\n}(Gu);\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** DOMException error code constants. */\n/**\n * @internal\n */\nfunction ra(t) {\n return t._firestoreClient || ia(t), t._firestoreClient.verifyNotTerminated(), t._firestoreClient;\n}\n\nfunction ia(t) {\n var e, n = t._freezeSettings(), r = function(t, e, n, r) {\n return new Nu(t, e, n, r.host, r.ssl, r.experimentalForceLongPolling, r.experimentalAutoDetectLongPolling);\n }(t._databaseId, (null === (e = t._app) || void 0 === e ? void 0 : e.options.appId) || \"\", t._persistenceKey, n);\n t._firestoreClient = new yu(t._credentials, t._queue, r);\n}\n\n/**\n * Attempts to enable persistent storage, if possible.\n *\n * Must be called before any other functions (other than\n * {@link initializeFirestore}, {@link getFirestore} or\n * {@link clearIndexedDbPersistence}.\n *\n * If this fails, `enableIndexedDbPersistence()` will reject the promise it\n * returns. Note that even after this failure, the `Firestore` instance will\n * remain usable, however offline persistence will be disabled.\n *\n * There are several reasons why this can fail, which can be identified by\n * the `code` on the error.\n *\n * * failed-precondition: The app is already open in another browser tab.\n * * unimplemented: The browser is incompatible with the offline\n * persistence implementation.\n *\n * @param firestore - The `Firestore` instance to enable persistence for.\n * @param persistenceSettings - Optional settings object to configure\n * persistence.\n * @returns A promise that represents successfully enabling persistent storage.\n */\n/**\n * Registers both the `OfflineComponentProvider` and `OnlineComponentProvider`.\n * If the operation fails with a recoverable error (see\n * `canRecoverFromIndexedDbError()` below), the returned Promise is rejected\n * but the client remains usable.\n */ function oa(t, e, n) {\n var r = this, i = new vr;\n return t.asyncQueue.enqueue((function() {\n return b(r, void 0, void 0, (function() {\n var r;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([ 0, 3, , 4 ]), [ 4 /*yield*/ , vu(t, n) ];\n\n case 1:\n return o.sent(), [ 4 /*yield*/ , mu(t, e) ];\n\n case 2:\n return o.sent(), i.resolve(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!\n /**\n * Decides whether the provided error allows us to gracefully disable\n * persistence (as opposed to crashing the client).\n */\n function(t) {\n return \"FirebaseError\" === t.name ? t.code === E.FAILED_PRECONDITION || t.code === E.UNIMPLEMENTED : !(\"undefined\" != typeof DOMException && t instanceof DOMException) || (22 === t.code || 20 === t.code || \n // Firefox Private Browsing mode disables IndexedDb and returns\n // INVALID_STATE for any usage.\n 11 === t.code);\n }(r = o.sent())) throw r;\n return console.warn(\"Error enabling offline persistence. Falling back to persistence disabled: \" + r), \n i.reject(r), [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })).then((function() {\n return i.promise;\n }));\n}\n\n/**\n * Re-enables use of the network for this Firestore instance after a prior\n * call to {@link disableNetwork}.\n *\n * @returns A promise that is resolved once the network has been enabled.\n */\nfunction sa(t) {\n if (t._initialized || t._terminated) throw new T(E.FAILED_PRECONDITION, \"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a\n * list of field names (referring to a nested field in the document).\n *\n * Create a `FieldPath` by providing field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n */ var ua = /** @class */ function() {\n /**\n * Creates a FieldPath from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n function t() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n for (var n = 0; n < t.length; ++n) if (0 === t[n].length) throw new T(E.INVALID_ARGUMENT, \"Invalid field name at argument $(i + 1). Field names must not be empty.\");\n this._internalPath = new W(t);\n }\n /**\n * Returns true if this `FieldPath` is equal to the provided one.\n *\n * @param other - The `FieldPath` to compare against.\n * @returns true if this `FieldPath` is equal to the provided one.\n */ return t.prototype.isEqual = function(t) {\n return this._internalPath.isEqual(t._internalPath);\n }, t;\n}(), aa = /** @class */ function() {\n /** @hideconstructor */\n function t(t) {\n this._byteString = t;\n }\n /**\n * Creates a new `Bytes` object from the given Base64 string, converting it to\n * bytes.\n *\n * @param base64 - The Base64 string used to create the `Bytes` object.\n */ return t.fromBase64String = function(e) {\n try {\n return new t(Y.fromBase64String(e));\n } catch (e) {\n throw new T(E.INVALID_ARGUMENT, \"Failed to construct data from Base64 string: \" + e);\n }\n }, \n /**\n * Creates a new `Bytes` object from the given Uint8Array.\n *\n * @param array - The Uint8Array used to create the `Bytes` object.\n */\n t.fromUint8Array = function(e) {\n return new t(Y.fromUint8Array(e));\n }, \n /**\n * Returns the underlying bytes as a Base64-encoded string.\n *\n * @returns The Base64-encoded string created from the `Bytes` object.\n */\n t.prototype.toBase64 = function() {\n return this._byteString.toBase64();\n }, \n /**\n * Returns the underlying bytes in a new `Uint8Array`.\n *\n * @returns The Uint8Array created from the `Bytes` object.\n */\n t.prototype.toUint8Array = function() {\n return this._byteString.toUint8Array();\n }, \n /**\n * Returns a string representation of the `Bytes` object.\n *\n * @returns A string representation of the `Bytes` object.\n */\n t.prototype.toString = function() {\n return \"Bytes(base64: \" + this.toBase64() + \")\";\n }, \n /**\n * Returns true if this `Bytes` object is equal to the provided one.\n *\n * @param other - The `Bytes` object to compare against.\n * @returns true if this `Bytes` object is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return this._byteString.isEqual(t._byteString);\n }, t;\n}(), ca = \n/**\n * @param _methodName - The public API endpoint that returns this class.\n */\nfunction(t) {\n this._methodName = t;\n}, ha = /** @class */ function() {\n /**\n * Creates a new immutable `GeoPoint` object with the provided latitude and\n * longitude values.\n * @param latitude - The latitude as number between -90 and 90.\n * @param longitude - The longitude as number between -180 and 180.\n */\n function t(t, e) {\n if (!isFinite(t) || t < -90 || t > 90) throw new T(E.INVALID_ARGUMENT, \"Latitude must be a number between -90 and 90, but was: \" + t);\n if (!isFinite(e) || e < -180 || e > 180) throw new T(E.INVALID_ARGUMENT, \"Longitude must be a number between -180 and 180, but was: \" + e);\n this._lat = t, this._long = e;\n }\n return Object.defineProperty(t.prototype, \"latitude\", {\n /**\n * The latitude of this `GeoPoint` instance.\n */\n get: function() {\n return this._lat;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"longitude\", {\n /**\n * The longitude of this `GeoPoint` instance.\n */\n get: function() {\n return this._long;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Returns true if this `GeoPoint` is equal to the provided one.\n *\n * @param other - The `GeoPoint` to compare against.\n * @returns true if this `GeoPoint` is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return this._lat === t._lat && this._long === t._long;\n }, t.prototype.toJSON = function() {\n return {\n latitude: this._lat,\n longitude: this._long\n };\n }, \n /**\n * Actually private to JS consumers of our API, so this function is prefixed\n * with an underscore.\n */\n t.prototype._compareTo = function(t) {\n return M(this._lat, t._lat) || M(this._long, t._long);\n }, t;\n}(), fa = /^__.*__$/, la = /** @class */ function() {\n function t(t, e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n return t.prototype.toMutation = function(t, e) {\n return null !== this.fieldMask ? new Re(t, this.data, this.fieldMask, e, this.fieldTransforms) : new Ce(t, this.data, e, this.fieldTransforms);\n }, t;\n}(), da = /** @class */ function() {\n function t(t, \n // The fieldMask does not include document transforms.\n e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n return t.prototype.toMutation = function(t, e) {\n return new Re(t, this.data, this.fieldMask, e, this.fieldTransforms);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable object representing an array of bytes.\n */ function pa(t) {\n switch (t) {\n case 0 /* Set */ :\n // fall through\n case 2 /* MergeSet */ :\n // fall through\n case 1 /* Update */ :\n return !0;\n\n case 3 /* Argument */ :\n case 4 /* ArrayArgument */ :\n return !1;\n\n default:\n throw C();\n }\n}\n\n/** A \"context\" object passed around while parsing user data. */ var ya = /** @class */ function() {\n /**\n * Initializes a ParseContext with the given source and path.\n *\n * @param settings - The settings for the parser.\n * @param databaseId - The database ID of the Firestore instance.\n * @param serializer - The serializer to use to generate the Value proto.\n * @param ignoreUndefinedProperties - Whether to ignore undefined properties\n * rather than throw.\n * @param fieldTransforms - A mutable list of field transforms encountered\n * while parsing the data.\n * @param fieldMask - A mutable list of field paths encountered while parsing\n * the data.\n *\n * TODO(b/34871131): We don't support array paths right now, so path can be\n * null to indicate the context represents any location within an array (in\n * which case certain features will not work and errors will be somewhat\n * compromised).\n */\n function t(t, e, n, r, i, o) {\n this.settings = t, this.databaseId = e, this.R = n, this.ignoreUndefinedProperties = r, \n // Minor hack: If fieldTransforms is undefined, we assume this is an\n // external call and we need to validate the entire path.\n void 0 === i && this.Sc(), this.fieldTransforms = i || [], this.fieldMask = o || [];\n }\n return Object.defineProperty(t.prototype, \"path\", {\n get: function() {\n return this.settings.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"Dc\", {\n get: function() {\n return this.settings.Dc;\n },\n enumerable: !1,\n configurable: !0\n }), \n /** Returns a new context with the specified settings overwritten. */ t.prototype.Cc = function(e) {\n return new t(Object.assign(Object.assign({}, this.settings), e), this.databaseId, this.R, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask);\n }, t.prototype.Nc = function(t) {\n var e, n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.Cc({\n path: n,\n xc: !1\n });\n return r.Fc(t), r;\n }, t.prototype.kc = function(t) {\n var e, n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.Cc({\n path: n,\n xc: !1\n });\n return r.Sc(), r;\n }, t.prototype.Oc = function(t) {\n // TODO(b/34871131): We don't support array paths right now; so make path\n // undefined.\n return this.Cc({\n path: void 0,\n xc: !0\n });\n }, t.prototype.$c = function(t) {\n return Pa(t, this.settings.methodName, this.settings.Mc || !1, this.path, this.settings.Lc);\n }, \n /** Returns 'true' if 'fieldPath' was traversed when creating this context. */ t.prototype.contains = function(t) {\n return void 0 !== this.fieldMask.find((function(e) {\n return t.isPrefixOf(e);\n })) || void 0 !== this.fieldTransforms.find((function(e) {\n return t.isPrefixOf(e.field);\n }));\n }, t.prototype.Sc = function() {\n // TODO(b/34871131): Remove null check once we have proper paths for fields\n // within arrays.\n if (this.path) for (var t = 0; t < this.path.length; t++) this.Fc(this.path.get(t));\n }, t.prototype.Fc = function(t) {\n if (0 === t.length) throw this.$c(\"Document fields must not be empty\");\n if (pa(this.Dc) && fa.test(t)) throw this.$c('Document fields cannot begin and end with \"__\"');\n }, t;\n}(), va = /** @class */ function() {\n function t(t, e, n) {\n this.databaseId = t, this.ignoreUndefinedProperties = e, this.R = n || Do(t)\n /** Creates a new top-level parse context. */;\n }\n return t.prototype.Bc = function(t, e, n, r) {\n return void 0 === r && (r = !1), new ya({\n Dc: t,\n methodName: e,\n Lc: n,\n path: W.emptyPath(),\n xc: !1,\n Mc: r\n }, this.databaseId, this.R, this.ignoreUndefinedProperties);\n }, t;\n}();\n\n/**\n * Helper for parsing raw user input (provided via the API) into internal model\n * classes.\n */ function ma(t) {\n var e = t._freezeSettings(), n = Do(t._databaseId);\n return new va(t._databaseId, !!e.ignoreUndefinedProperties, n);\n}\n\n/** Parse document data from a set() call. */ function ga(t, e, n, r, i, o) {\n void 0 === o && (o = {});\n var s = t.Bc(o.merge || o.mergeFields ? 2 /* MergeSet */ : 0 /* Set */ , e, n, i);\n Ca(\"Data must be an object, but it was:\", s, r);\n var u, a, c = ka(r, s);\n if (o.merge) u = new H(s.fieldMask), a = s.fieldTransforms; else if (o.mergeFields) {\n for (var h = [], f = 0, l = o.mergeFields; f < l.length; f++) {\n var d = Ra(e, l[f], n);\n if (!s.contains(d)) throw new T(E.INVALID_ARGUMENT, \"Field '\" + d + \"' is specified in your field mask but missing from your input data.\");\n Ma(h, d) || h.push(d);\n }\n u = new H(h), a = s.fieldTransforms.filter((function(t) {\n return u.covers(t.field);\n }));\n } else u = null, a = s.fieldTransforms;\n return new la(new bt(c), u, a);\n}\n\nvar wa = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e.prototype._toFieldTransform = function(t) {\n if (2 /* MergeSet */ !== t.Dc) throw 1 /* Update */ === t.Dc ? t.$c(this._methodName + \"() can only appear at the top level of your update data\") : t.$c(this._methodName + \"() cannot be used with set() unless you pass {merge:true}\");\n // No transform to add for a delete, but we need to add it to our\n // fieldMask so it gets deleted.\n return t.fieldMask.push(t.path), null;\n }, e.prototype.isEqual = function(t) {\n return t instanceof e;\n }, e;\n}(ca);\n\n/**\n * Creates a child context for parsing SerializableFieldValues.\n *\n * This is different than calling `ParseContext.contextWith` because it keeps\n * the fieldTransforms and fieldMask separate.\n *\n * The created context has its `dataSource` set to `UserDataSource.Argument`.\n * Although these values are used with writes, any elements in these FieldValues\n * are not considered writes since they cannot contain any FieldValue sentinels,\n * etc.\n *\n * @param fieldValue - The sentinel FieldValue for which to create a child\n * context.\n * @param context - The parent context.\n * @param arrayElement - Whether or not the FieldValue has an array.\n */ function ba(t, e, n) {\n return new ya({\n Dc: 3 /* Argument */ ,\n Lc: e.settings.Lc,\n methodName: t._methodName,\n xc: n\n }, e.databaseId, e.R, e.ignoreUndefinedProperties);\n}\n\nvar Ia = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e.prototype._toFieldTransform = function(t) {\n return new Ie(t.path, new de);\n }, e.prototype.isEqual = function(t) {\n return t instanceof e;\n }, e;\n}(ca), _a = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e) || this).qc = n, r;\n }\n return g(e, t), e.prototype._toFieldTransform = function(t) {\n var e = ba(this, t, \n /*array=*/ !0), n = this.qc.map((function(t) {\n return Aa(t, e);\n })), r = new pe(n);\n return new Ie(t.path, r);\n }, e.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, e;\n}(ca), Ea = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e) || this).qc = n, r;\n }\n return g(e, t), e.prototype._toFieldTransform = function(t) {\n var e = ba(this, t, \n /*array=*/ !0), n = this.qc.map((function(t) {\n return Aa(t, e);\n })), r = new ve(n);\n return new Ie(t.path, r);\n }, e.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, e;\n}(ca), Ta = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e) || this).Uc = n, r;\n }\n return g(e, t), e.prototype._toFieldTransform = function(t) {\n var e = new ge(t.R, ae(t.R, this.Uc));\n return new Ie(t.path, e);\n }, e.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, e;\n}(ca);\n\n/** Parse update data from an update() call. */ function Sa(t, e, n, r) {\n var i = t.Bc(1 /* Update */ , e, n);\n Ca(\"Data must be an object, but it was:\", i, r);\n var o = [], s = bt.empty();\n j(r, (function(t, r) {\n var a = La(e, t, n);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n r = u(r);\n var c = i.kc(a);\n if (r instanceof wa) \n // Add it to the field mask, but don't add anything to updateData.\n o.push(a); else {\n var h = Aa(r, c);\n null != h && (o.push(a), s.set(a, h));\n }\n }));\n var a = new H(o);\n return new da(s, a, i.fieldTransforms);\n}\n\n/** Parse update data from a list of field/value arguments. */ function Da(t, e, n, r, i, o) {\n var s = t.Bc(1 /* Update */ , e, n), a = [ Ra(e, r, n) ], c = [ i ];\n if (o.length % 2 != 0) throw new T(E.INVALID_ARGUMENT, \"Function \" + e + \"() needs to be called with an even number of arguments that alternate between field names and values.\");\n for (var h = 0; h < o.length; h += 2) a.push(Ra(e, o[h])), c.push(o[h + 1]);\n // We iterate in reverse order to pick the last value for a field if the\n // user specified the field multiple times.\n for (var f = [], l = bt.empty(), d = a.length - 1; d >= 0; --d) if (!Ma(f, a[d])) {\n var p = a[d], y = c[d];\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n y = u(y);\n var v = s.kc(p);\n if (y instanceof wa) \n // Add it to the field mask, but don't add anything to updateData.\n f.push(p); else {\n var m = Aa(y, v);\n null != m && (f.push(p), l.set(p, m));\n }\n }\n var g = new H(f);\n return new da(l, g, s.fieldTransforms);\n}\n\n/**\n * Parse a \"query value\" (e.g. value in a where filter or a value in a cursor\n * bound).\n *\n * @param allowArrays - Whether the query value is an array that may directly\n * contain additional arrays (e.g. the operand of an `in` query).\n */ function Na(t, e, n, r) {\n return void 0 === r && (r = !1), Aa(n, t.Bc(r ? 4 /* ArrayArgument */ : 3 /* Argument */ , e));\n}\n\n/**\n * Parses user data to Protobuf Values.\n *\n * @param input - Data to be parsed.\n * @param context - A context object representing the current path being parsed,\n * the source of the data being parsed, etc.\n * @returns The parsed value, or null if the value was a FieldValue sentinel\n * that should not be included in the resulting parsed data.\n */ function Aa(t, e) {\n if (xa(\n // Unwrap the API type from the Compat SDK. This will return the API type\n // from firestore-exp.\n t = u(t))) return Ca(\"Unsupported field value:\", e, t), ka(t, e);\n if (t instanceof ca) \n // FieldValues usually parse into transforms (except FieldValue.delete())\n // in which case we do not want to include this field in our parsed data\n // (as doing so will overwrite the field directly prior to the transform\n // trying to transform it). So we don't add this location to\n // context.fieldMask and we return null as our parsing result.\n /**\n * \"Parses\" the provided FieldValueImpl, adding any necessary transforms to\n * context.fieldTransforms.\n */\n return function(t, e) {\n // Sentinels are only supported with writes, and not within arrays.\n if (!pa(e.Dc)) throw e.$c(t._methodName + \"() can only be used with update() and set()\");\n if (!e.path) throw e.$c(t._methodName + \"() is not currently supported inside arrays\");\n var n = t._toFieldTransform(e);\n n && e.fieldTransforms.push(n);\n }(t, e), null;\n if (void 0 === t && e.ignoreUndefinedProperties) \n // If the input is undefined it can never participate in the fieldMask, so\n // don't handle this below. If `ignoreUndefinedProperties` is false,\n // `parseScalarValue` will reject an undefined value.\n return null;\n if (\n // If context.path is null we are inside an array and we don't support\n // field mask paths more granular than the top-level array.\n e.path && e.fieldMask.push(e.path), t instanceof Array) {\n // TODO(b/34871131): Include the path containing the array in the error\n // message.\n // In the case of IN queries, the parsed data is an array (representing\n // the set of values to be included for the IN query) that may directly\n // contain additional arrays (each representing an individual field\n // value), so we disable this validation.\n if (e.settings.xc && 4 /* ArrayArgument */ !== e.Dc) throw e.$c(\"Nested arrays are not supported\");\n return function(t, e) {\n for (var n = [], r = 0, i = 0, o = t; i < o.length; i++) {\n var s = Aa(o[i], e.Oc(r));\n null == s && (\n // Just include nulls in the array for fields being replaced with a\n // sentinel.\n s = {\n nullValue: \"NULL_VALUE\"\n }), n.push(s), r++;\n }\n return {\n arrayValue: {\n values: n\n }\n };\n }(t, e);\n }\n return function(t, e) {\n if (null === (t = u(t))) return {\n nullValue: \"NULL_VALUE\"\n };\n if (\"number\" == typeof t) return ae(e.R, t);\n if (\"boolean\" == typeof t) return {\n booleanValue: t\n };\n if (\"string\" == typeof t) return {\n stringValue: t\n };\n if (t instanceof Date) {\n var n = q.fromDate(t);\n return {\n timestampValue: mn(e.R, n)\n };\n }\n if (t instanceof q) {\n // Firestore backend truncates precision down to microseconds. To ensure\n // offline mode works the same with regards to truncation, perform the\n // truncation immediately without waiting for the backend to do that.\n n = new q(t.seconds, 1e3 * Math.floor(t.nanoseconds / 1e3));\n return {\n timestampValue: mn(e.R, n)\n };\n }\n if (t instanceof ha) return {\n geoPointValue: {\n latitude: t.latitude,\n longitude: t.longitude\n }\n };\n if (t instanceof aa) return {\n bytesValue: gn(e.R, t._byteString)\n };\n if (t instanceof Qu) {\n n = e.databaseId;\n var r = t.firestore._databaseId;\n if (!r.isEqual(n)) throw e.$c(\"Document reference is for database \" + r.projectId + \"/\" + r.database + \" but should be for database \" + n.projectId + \"/\" + n.database);\n return {\n referenceValue: In(t.firestore._databaseId || e.databaseId, t._key.path)\n };\n }\n throw e.$c(\"Unsupported field value: \" + Uu(t));\n }(t, e);\n}\n\nfunction ka(t, e) {\n var n = {};\n return K(t) ? \n // If we encounter an empty object, we explicitly add it to the update\n // mask to ensure that the server creates a map entry.\n e.path && e.path.length > 0 && e.fieldMask.push(e.path) : j(t, (function(t, r) {\n var i = Aa(r, e.Nc(t));\n null != i && (n[t] = i);\n })), {\n mapValue: {\n fields: n\n }\n };\n}\n\nfunction xa(t) {\n return !(\"object\" != typeof t || null === t || t instanceof Array || t instanceof Date || t instanceof q || t instanceof ha || t instanceof aa || t instanceof Qu || t instanceof ca);\n}\n\nfunction Ca(t, e, n) {\n if (!xa(n) || !function(t) {\n return \"object\" == typeof t && null !== t && (Object.getPrototypeOf(t) === Object.prototype || null === Object.getPrototypeOf(t));\n }(n)) {\n var r = Uu(n);\n throw \"an object\" === r ? e.$c(t + \" a custom object\") : e.$c(t + \" \" + r);\n }\n}\n\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */ function Ra(t, e, n) {\n if (\n // If required, replace the FieldPath Compat class with with the firestore-exp\n // FieldPath.\n (e = u(e)) instanceof ua) return e._internalPath;\n if (\"string\" == typeof e) return La(t, e);\n throw Pa(\"Field path arguments must be of type string or FieldPath.\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n}\n\n/**\n * Matches any characters in a field path string that are reserved.\n */ var Oa = new RegExp(\"[~\\\\*/\\\\[\\\\]]\");\n\n/**\n * Wraps fromDotSeparatedString with an error message about the method that\n * was thrown.\n * @param methodName - The publicly visible method name\n * @param path - The dot-separated string form of a field path which will be\n * split on dots.\n * @param targetDoc - The document against which the field path will be\n * evaluated.\n */ function La(t, e, n) {\n if (e.search(Oa) >= 0) throw Pa(\"Invalid field path (\" + e + \"). Paths must not contain '~', '*', '/', '[', or ']'\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n try {\n return (new (ua.bind.apply(ua, w([ void 0 ], e.split(\".\")))))._internalPath;\n } catch (r) {\n throw Pa(\"Invalid field path (\" + e + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n }\n}\n\nfunction Pa(t, e, n, r, i) {\n var o = r && !r.isEmpty(), s = void 0 !== i, u = \"Function \" + e + \"() called with invalid data\";\n n && (u += \" (via `toFirestore()`)\");\n var a = \"\";\n return (o || s) && (a += \" (found\", o && (a += \" in field \" + r), s && (a += \" in document \" + i), \n a += \")\"), new T(E.INVALID_ARGUMENT, (u += \". \") + t + a)\n /** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */;\n}\n\nfunction Ma(t, e) {\n return t.some((function(t) {\n return t.isEqual(e);\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get()` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ var Fa = /** @class */ function() {\n // Note: This class is stripped down version of the DocumentSnapshot in\n // the legacy SDK. The changes are:\n // - No support for SnapshotMetadata.\n // - No support for SnapshotOptions.\n /** @hideconstructor protected */\n function t(t, e, n, r, i) {\n this._firestore = t, this._userDataWriter = e, this._key = n, this._document = r, \n this._converter = i;\n }\n return Object.defineProperty(t.prototype, \"id\", {\n /** Property of the `DocumentSnapshot` that provides the document's ID. */ get: function() {\n return this._key.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"ref\", {\n /**\n * The `DocumentReference` for the document included in the `DocumentSnapshot`.\n */\n get: function() {\n return new Qu(this._firestore, this._converter, this._key);\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Signals whether or not the document at the snapshot's location exists.\n *\n * @returns true if the document exists.\n */\n t.prototype.exists = function() {\n return null !== this._document;\n }, \n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * @returns An `Object` containing all fields in the document or `undefined`\n * if the document doesn't exist.\n */\n t.prototype.data = function() {\n if (this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n var t = new Va(this._firestore, this._userDataWriter, this._key, this._document, \n /* converter= */ null);\n return this._converter.fromFirestore(t);\n }\n return this._userDataWriter.convertValue(this._document.data.toProto());\n }\n }, \n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t.prototype.get = function(t) {\n if (this._document) {\n var e = this._document.data.field(qa(\"DocumentSnapshot.get\", t));\n if (null !== e) return this._userDataWriter.convertValue(e);\n }\n }, t;\n}(), Va = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * @override\n * @returns An `Object` containing all fields in the document.\n */ return g(e, t), e.prototype.data = function() {\n return t.prototype.data.call(this);\n }, e;\n}(Fa);\n\n/**\n * A `QueryDocumentSnapshot` contains data read from a document in your\n * Firestore database as part of a query. The document is guaranteed to exist\n * and its data can be extracted with `.data()` or `.get()` to get a\n * specific field.\n *\n * A `QueryDocumentSnapshot` offers the same API surface as a\n * `DocumentSnapshot`. Since query results contain only existing documents, the\n * `exists` property will always be true and `data()` will never return\n * 'undefined'.\n */\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */\nfunction qa(t, e) {\n return \"string\" == typeof e ? La(t, e) : e instanceof ua ? e._internalPath : e._delegate._internalPath;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Metadata about a snapshot, describing the state of the snapshot.\n */ var Ua = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this.hasPendingWrites = t, this.fromCache = e\n /**\n * Returns true if this `SnapshotMetadata` is equal to the provided one.\n *\n * @param other - The `SnapshotMetadata` to compare against.\n * @returns true if this `SnapshotMetadata` is equal to the provided one.\n */;\n }\n return t.prototype.isEqual = function(t) {\n return this.hasPendingWrites === t.hasPendingWrites && this.fromCache === t.fromCache;\n }, t;\n}(), Ba = /** @class */ function(t) {\n /** @hideconstructor protected */\n function e(e, n, r, i, o, s) {\n var u = this;\n return (u = t.call(this, e, n, r, i, s) || this)._firestore = e, u._firestoreImpl = e, \n u.metadata = o, u;\n }\n /**\n * Property of the `DocumentSnapshot` that signals whether or not the data\n * exists. True if the document exists.\n */ return g(e, t), e.prototype.exists = function() {\n return t.prototype.exists.call(this);\n }, \n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * By default, `FieldValue.serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document or `undefined` if\n * the document doesn't exist.\n */\n e.prototype.data = function(t) {\n if (void 0 === t && (t = {}), this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n var e = new ja(this._firestore, this._userDataWriter, this._key, this._document, this.metadata, \n /* converter= */ null);\n return this._converter.fromFirestore(e, t);\n }\n return this._userDataWriter.convertValue(this._document.data.toProto(), t.serverTimestamps);\n }\n }, \n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * By default, a `FieldValue.serverTimestamp()` that has not yet been set to\n * its final value will be returned as `null`. You can override this by\n * passing an options object.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @param options - An options object to configure how the field is retrieved\n * from the snapshot (for example the desired behavior for server timestamps\n * that have not yet been set to their final value).\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n e.prototype.get = function(t, e) {\n if (void 0 === e && (e = {}), this._document) {\n var n = this._document.data.field(qa(\"DocumentSnapshot.get\", t));\n if (null !== n) return this._userDataWriter.convertValue(n, e.serverTimestamps);\n }\n }, e;\n}(Fa), ja = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * By default, `FieldValue.serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @override\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document.\n */ return g(e, t), e.prototype.data = function(e) {\n return void 0 === e && (e = {}), t.prototype.data.call(this, e);\n }, e;\n}(Ba), Ka = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e, n, r) {\n this._firestore = t, this._userDataWriter = e, this._snapshot = r, this.metadata = new Ua(r.hasPendingWrites, r.fromCache), \n this.query = n;\n }\n return Object.defineProperty(t.prototype, \"docs\", {\n /** An array of all the documents in the `QuerySnapshot`. */ get: function() {\n var t = [];\n return this.forEach((function(e) {\n return t.push(e);\n })), t;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"size\", {\n /** The number of documents in the `QuerySnapshot`. */ get: function() {\n return this._snapshot.docs.size;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"empty\", {\n /** True if there are no documents in the `QuerySnapshot`. */ get: function() {\n return 0 === this.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Enumerates all of the documents in the `QuerySnapshot`.\n *\n * @param callback - A callback to be called with a `QueryDocumentSnapshot` for\n * each document in the snapshot.\n * @param thisArg - The `this` binding for the callback.\n */\n t.prototype.forEach = function(t, e) {\n var n = this;\n this._snapshot.docs.forEach((function(r) {\n t.call(e, new ja(n._firestore, n._userDataWriter, r.key, r, new Ua(n._snapshot.mutatedKeys.has(r.key), n._snapshot.fromCache), n.query._converter));\n }));\n }, \n /**\n * Returns an array of the documents changes since the last snapshot. If this\n * is the first snapshot, all documents will be in the list as 'added'\n * changes.\n *\n * @param options - `SnapshotListenOptions` that control whether metadata-only\n * changes (i.e. only `DocumentSnapshot.metadata` changed) should trigger\n * snapshot events.\n */\n t.prototype.docChanges = function(t) {\n void 0 === t && (t = {});\n var e = !!t.includeMetadataChanges;\n if (e && this._snapshot.excludesMetadataChanges) throw new T(E.INVALID_ARGUMENT, \"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().\");\n return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = \n /** Calculates the array of DocumentChanges for a given ViewSnapshot. */\n function(t, e) {\n if (t._snapshot.oldDocs.isEmpty()) {\n // Special case the first snapshot because index calculation is easy and\n // fast\n var n = 0;\n return t._snapshot.docChanges.map((function(e) {\n var r = new ja(t._firestore, t._userDataWriter, e.doc.key, e.doc, new Ua(t._snapshot.mutatedKeys.has(e.doc.key), t._snapshot.fromCache), t.query._converter);\n return e.doc, {\n type: \"added\",\n doc: r,\n oldIndex: -1,\n newIndex: n++\n };\n }));\n }\n // A DocumentSet that is updated incrementally as changes are applied to use\n // to lookup the index of a document.\n var r = t._snapshot.oldDocs;\n return t._snapshot.docChanges.filter((function(t) {\n return e || 3 /* Metadata */ !== t.type;\n })).map((function(e) {\n var n = new ja(t._firestore, t._userDataWriter, e.doc.key, e.doc, new Ua(t._snapshot.mutatedKeys.has(e.doc.key), t._snapshot.fromCache), t.query._converter), i = -1, o = -1;\n return 0 /* Added */ !== e.type && (i = r.indexOf(e.doc.key), r = r.delete(e.doc.key)), \n 1 /* Removed */ !== e.type && (o = (r = r.add(e.doc)).indexOf(e.doc.key)), {\n type: Ga(e.type),\n doc: n,\n oldIndex: i,\n newIndex: o\n };\n }));\n }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges;\n }, t;\n}();\n\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get()` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ function Ga(t) {\n switch (t) {\n case 0 /* Added */ :\n return \"added\";\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n return \"modified\";\n\n case 1 /* Removed */ :\n return \"removed\";\n\n default:\n return C();\n }\n}\n\n// TODO(firestoreexp): Add tests for snapshotEqual with different snapshot\n// metadata\n/**\n * Returns true if the provided snapshots are equal.\n *\n * @param left - A snapshot to compare.\n * @param right - A snapshot to compare.\n * @returns true if the snapshots are equal.\n */ function Qa(t, e) {\n return t instanceof Ba && e instanceof Ba ? t._firestore === e._firestore && t._key.isEqual(e._key) && (null === t._document ? null === e._document : t._document.isEqual(e._document)) && t._converter === e._converter : t instanceof Ka && e instanceof Ka && t._firestore === e._firestore && $u(t.query, e.query) && t.metadata.isEqual(e.metadata) && t._snapshot.isEqual(e._snapshot);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function za(t) {\n if (Wt(t) && 0 === t.explicitOrderBy.length) throw new T(E.UNIMPLEMENTED, \"limitToLast() queries require specifying at least one orderBy() clause\");\n}\n\n/**\n * A `QueryConstraint` is used to narrow the set of documents returned by a\n * Firestore query. `QueryConstraint`s are created by invoking {@link where},\n * {@link orderBy}, {@link startAt}, {@link startAfter}, {@link\n * endBefore}, {@link endAt}, {@link limit} or {@link limitToLast} and\n * can then be passed to {@link query} to create a new query instance that\n * also contains this `QueryConstraint`.\n */ var Wa = function() {};\n\n/**\n * Creates a new immutable instance of `query` that is extended to also include\n * additional query constraints.\n *\n * @param query - The query instance to use as a base for the new constraints.\n * @param queryConstraints - The list of `QueryConstraint`s to apply.\n * @throws if any of the provided query constraints cannot be combined with the\n * existing or new constraints.\n */ function Ha(t) {\n for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];\n for (var r = 0, i = e; r < i.length; r++) {\n var o = i[r];\n t = o._apply(t);\n }\n return t;\n}\n\nvar Ya = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).Qc = e, i.Kc = n, i.jc = r, i.type = \"where\", \n i;\n }\n return g(e, t), e.prototype._apply = function(t) {\n var e = ma(t.firestore), n = function(t, e, n, r, i, o, s) {\n var u;\n if (i.isKeyField()) {\n if (\"array-contains\" /* ARRAY_CONTAINS */ === o || \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === o) throw new T(E.INVALID_ARGUMENT, \"Invalid Query. You can't perform '\" + o + \"' queries on FieldPath.documentId().\");\n if (\"in\" /* IN */ === o || \"not-in\" /* NOT_IN */ === o) {\n nc(s, o);\n for (var a = [], c = 0, h = s; c < h.length; c++) {\n var f = h[c];\n a.push(ec(r, t, f));\n }\n u = {\n arrayValue: {\n values: a\n }\n };\n } else u = ec(r, t, s);\n } else \"in\" /* IN */ !== o && \"not-in\" /* NOT_IN */ !== o && \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ !== o || nc(s, o), \n u = Na(n, \"where\", s, \n /* allowArrays= */ \"in\" /* IN */ === o || \"not-in\" /* NOT_IN */ === o);\n var l = At.create(i, o, u);\n return function(t, e) {\n if (e.g()) {\n var n = Yt(t);\n if (null !== n && !n.isEqual(e.field)) throw new T(E.INVALID_ARGUMENT, \"Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '\" + n.toString() + \"' and '\" + e.field.toString() + \"'\");\n var r = Ht(t);\n null !== r && rc(t, e.field, r);\n }\n var i = function(t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n var i = r[n];\n if (e.indexOf(i.op) >= 0) return i.op;\n }\n return null;\n }(t, \n /**\n * Given an operator, returns the set of operators that cannot be used with it.\n *\n * Operators in a query must adhere to the following set of rules:\n * 1. Only one array operator is allowed.\n * 2. Only one disjunctive operator is allowed.\n * 3. NOT_EQUAL cannot be used with another NOT_EQUAL operator.\n * 4. NOT_IN cannot be used with array, disjunctive, or NOT_EQUAL operators.\n *\n * Array operators: ARRAY_CONTAINS, ARRAY_CONTAINS_ANY\n * Disjunctive operators: IN, ARRAY_CONTAINS_ANY, NOT_IN\n */\n function(t) {\n switch (t) {\n case \"!=\" /* NOT_EQUAL */ :\n return [ \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains\" /* ARRAY_CONTAINS */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"not-in\" /* NOT_IN */ ];\n\n case \"in\" /* IN */ :\n return [ \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"not-in\" /* NOT_IN */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ , \"!=\" /* NOT_EQUAL */ ];\n\n default:\n return [];\n }\n }(e.op));\n if (null !== i) \n // Special case when it's a duplicate op to give a slightly clearer error message.\n throw i === e.op ? new T(E.INVALID_ARGUMENT, \"Invalid query. You cannot use more than one '\" + e.op.toString() + \"' filter.\") : new T(E.INVALID_ARGUMENT, \"Invalid query. You cannot use '\" + e.op.toString() + \"' filters with '\" + i.toString() + \"' filters.\");\n }(t, l), l;\n }(t._query, 0, e, t.firestore._databaseId, this.Qc, this.Kc, this.jc);\n return new zu(t.firestore, t._converter, function(t, e) {\n var n = t.filters.concat([ e ]);\n return new Kt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), n, t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, n));\n }, e;\n}(Wa), Xa = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this) || this).Qc = e, r.Wc = n, r.type = \"orderBy\", r;\n }\n return g(e, t), e.prototype._apply = function(t) {\n var e = function(t, e, n) {\n if (null !== t.startAt) throw new T(E.INVALID_ARGUMENT, \"Invalid query. You must not call startAt() or startAfter() before calling orderBy().\");\n if (null !== t.endAt) throw new T(E.INVALID_ARGUMENT, \"Invalid query. You must not call endAt() or endBefore() before calling orderBy().\");\n var r = new qt(e, n);\n return function(t, e) {\n if (null === Ht(t)) {\n // This is the first order by. It must match any inequality.\n var n = Yt(t);\n null !== n && rc(t, n, e.field);\n }\n }(t, r), r;\n }(t._query, this.Qc, this.Wc);\n return new zu(t.firestore, t._converter, function(t, e) {\n // TODO(dimond): validate that orderBy does not list the same key twice.\n var n = t.explicitOrderBy.concat([ e ]);\n return new Kt(t.path, t.collectionGroup, n, t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, e));\n }, e;\n}(Wa), $a = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).type = e, i.Gc = n, i.zc = r, i;\n }\n return g(e, t), e.prototype._apply = function(t) {\n return new zu(t.firestore, t._converter, Zt(t._query, this.Gc, this.zc));\n }, e;\n}(Wa), Ja = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).type = e, i.Hc = n, i.Jc = r, i;\n }\n return g(e, t), e.prototype._apply = function(t) {\n var e = tc(t, this.type, this.Hc, this.Jc);\n return new zu(t.firestore, t._converter, function(t, e) {\n return new Kt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, e, t.endAt);\n }(t._query, e));\n }, e;\n}(Wa), Za = /** @class */ function(t) {\n function e(e, n, r) {\n var i = this;\n return (i = t.call(this) || this).type = e, i.Hc = n, i.Jc = r, i;\n }\n return g(e, t), e.prototype._apply = function(t) {\n var e = tc(t, this.type, this.Hc, this.Jc);\n return new zu(t.firestore, t._converter, function(t, e) {\n return new Kt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, e);\n }(t._query, e));\n }, e;\n}(Wa);\n\n/**\n * Creates a `QueryConstraint` that enforces that documents must contain the\n * specified field and that the value should satisfy the relation constraint\n * provided.\n *\n * @param fieldPath - The path to compare\n * @param opStr - The operation string (e.g \"<\", \"<=\", \"==\", \"<\",\n * \"<=\", \"!=\").\n * @param value - The value for comparison\n * @returns The created `Query`.\n */\n/** Helper function to create a bound from a document or fields */\nfunction tc(t, e, n, r) {\n if (n[0] = u(n[0]), n[0] instanceof Fa) return function(t, e, n, r, i) {\n if (!r) throw new T(E.NOT_FOUND, \"Can't use a DocumentSnapshot that doesn't exist for \" + n + \"().\");\n // Because people expect to continue/end a query at the exact document\n // provided, we need to use the implicit sort order rather than the explicit\n // sort order, because it's guaranteed to contain the document key. That way\n // the position becomes unambiguous and the query continues/ends exactly at\n // the provided document. Without the key (by using the explicit sort\n // orders), multiple documents could match the position, yielding duplicate\n // results.\n for (var o = [], s = 0, u = $t(t); s < u.length; s++) {\n var a = u[s];\n if (a.field.isKeyField()) o.push(pt(e, r.key)); else {\n var c = r.data.field(a.field);\n if (tt(c)) throw new T(E.INVALID_ARGUMENT, 'Invalid query. You are trying to start or end a query using a document for which the field \"' + a.field + '\" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');\n if (null === c) {\n var h = a.field.canonicalString();\n throw new T(E.INVALID_ARGUMENT, \"Invalid query. You are trying to start or end a query using a document for which the field '\" + h + \"' (used as the orderBy) does not exist.\");\n }\n o.push(c);\n }\n }\n return new Ft(o, i);\n }(t._query, t.firestore._databaseId, e, n[0]._document, r);\n var i = ma(t.firestore);\n return function(t, e, n, r, i, o) {\n // Use explicit order by's because it has to match the query the user made\n var s = t.explicitOrderBy;\n if (i.length > s.length) throw new T(E.INVALID_ARGUMENT, \"Too many arguments provided to \" + r + \"(). The number of arguments must be less than or equal to the number of orderBy() clauses\");\n for (var u = [], a = 0; a < i.length; a++) {\n var c = i[a];\n if (s[a].field.isKeyField()) {\n if (\"string\" != typeof c) throw new T(E.INVALID_ARGUMENT, \"Invalid query. Expected a string for document ID in \" + r + \"(), but got a \" + typeof c);\n if (!Xt(t) && -1 !== c.indexOf(\"/\")) throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying a collection and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must be a plain document ID, but '\" + c + \"' contains a slash.\");\n var h = t.path.child(Q.fromString(c));\n if (!st.isDocumentKey(h)) throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying a collection group and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must result in a valid document path, but '\" + h + \"' is not because it contains an odd number of segments.\");\n var f = new st(h);\n u.push(pt(e, f));\n } else {\n var l = Na(n, r, c);\n u.push(l);\n }\n }\n return new Ft(u, o);\n }(t._query, t.firestore._databaseId, i, e, n, r);\n}\n\nfunction ec(t, e, n) {\n if (\"string\" == typeof (n = u(n))) {\n if (\"\" === n) throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid document ID, but it was an empty string.\");\n if (!Xt(e) && -1 !== n.indexOf(\"/\")) throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying a collection by FieldPath.documentId(), you must provide a plain document ID, but '\" + n + \"' contains a '/' character.\");\n var r = e.path.child(Q.fromString(n));\n if (!st.isDocumentKey(r)) throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying a collection group by FieldPath.documentId(), the value provided must result in a valid document path, but '\" + r + \"' is not because it has an odd number of segments (\" + r.length + \").\");\n return pt(t, new st(r));\n }\n if (n instanceof Qu) return pt(t, n._key);\n throw new T(E.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid string or a DocumentReference, but it was: \" + Uu(n) + \".\");\n}\n\n/**\n * Validates that the value passed into a disjunctive filter satisfies all\n * array requirements.\n */ function nc(t, e) {\n if (!Array.isArray(t) || 0 === t.length) throw new T(E.INVALID_ARGUMENT, \"Invalid Query. A non-empty array is required for '\" + e.toString() + \"' filters.\");\n if (t.length > 10) throw new T(E.INVALID_ARGUMENT, \"Invalid Query. '\" + e.toString() + \"' filters support a maximum of 10 elements in the value array.\");\n}\n\nfunction rc(t, e, n) {\n if (!n.isEqual(e)) throw new T(E.INVALID_ARGUMENT, \"Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '\" + e.toString() + \"' and so you must also use '\" + e.toString() + \"' as your first argument to orderBy(), but your first orderBy() is on field '\" + n.toString() + \"' instead.\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts Firestore's internal types to the JavaScript types that we expose\n * to the user.\n *\n * @internal\n */ var ic = /** @class */ function() {\n function t() {}\n return t.prototype.convertValue = function(t, e) {\n switch (void 0 === e && (e = \"none\"), ut(t)) {\n case 0 /* NullValue */ :\n return null;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue;\n\n case 2 /* NumberValue */ :\n return J(t.integerValue || t.doubleValue);\n\n case 3 /* TimestampValue */ :\n return this.convertTimestamp(t.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return this.convertServerTimestamp(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue;\n\n case 6 /* BlobValue */ :\n return this.convertBytes(Z(t.bytesValue));\n\n case 7 /* RefValue */ :\n return this.convertReference(t.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return this.convertGeoPoint(t.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return this.convertArray(t.arrayValue, e);\n\n case 10 /* ObjectValue */ :\n return this.convertObject(t.mapValue, e);\n\n default:\n throw C();\n }\n }, t.prototype.convertObject = function(t, e) {\n var n = this, r = {};\n return j(t.fields || {}, (function(t, i) {\n r[t] = n.convertValue(i, e);\n })), r;\n }, t.prototype.convertGeoPoint = function(t) {\n return new ha(J(t.latitude), J(t.longitude));\n }, t.prototype.convertArray = function(t, e) {\n var n = this;\n return (t.values || []).map((function(t) {\n return n.convertValue(t, e);\n }));\n }, t.prototype.convertServerTimestamp = function(t, e) {\n switch (e) {\n case \"previous\":\n var n = et(t);\n return null == n ? null : this.convertValue(n, e);\n\n case \"estimate\":\n return this.convertTimestamp(nt(t));\n\n default:\n return null;\n }\n }, t.prototype.convertTimestamp = function(t) {\n var e = $(t);\n return new q(e.seconds, e.nanos);\n }, t.prototype.convertDocumentKey = function(t, e) {\n var n = Q.fromString(t);\n R(zn(n));\n var r = new Au(n.get(1), n.get(3)), i = new st(n.popFirst(5));\n return r.isEqual(e) || \n // TODO(b/64130202): Somehow support foreign references.\n A(\"Document \" + i + \" contains a document reference within a different database (\" + r.projectId + \"/\" + r.database + \") which is not supported. It will be treated as a reference in the current database (\" + e.projectId + \"/\" + e.database + \") instead.\"), \n i;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts custom model object of type T into DocumentData by applying the\n * converter if it exists.\n *\n * This function is used when converting user objects to DocumentData\n * because we want to provide the user with a more specific error message if\n * their set() or fails due to invalid data originating from a toFirestore()\n * call.\n */ function oc(t, e, n) {\n // Cast to `any` in order to satisfy the union type constraint on\n // toFirestore().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return t ? n && (n.merge || n.mergeFields) ? t.toFirestore(e, n) : t.toFirestore(e) : e;\n}\n\nvar sc = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).firestore = e, n;\n }\n return g(e, t), e.prototype.convertBytes = function(t) {\n return new aa(t);\n }, e.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new Qu(this.firestore, /* converter= */ null, e);\n }, e;\n}(ic), uc = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this._firestore = t, this._commitHandler = e, this._mutations = [], this._committed = !1, \n this._dataReader = ma(t);\n }\n return t.prototype.set = function(t, e, n) {\n this._verifyNotCommitted();\n var r = ac(t, this._firestore), i = oc(r._converter, e, n), o = ga(this._dataReader, \"WriteBatch.set\", r._key, i, null !== r._converter, n);\n return this._mutations.push(o.toMutation(r._key, Ee.none())), this;\n }, t.prototype.update = function(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n this._verifyNotCommitted();\n var o, s = ac(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n return o = \"string\" == typeof (e = u(e)) || e instanceof ua ? Da(this._dataReader, \"WriteBatch.update\", s._key, e, n, r) : Sa(this._dataReader, \"WriteBatch.update\", s._key, e), \n this._mutations.push(o.toMutation(s._key, Ee.exists(!0))), this;\n }, \n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `WriteBatch` instance. Used for chaining method calls.\n */\n t.prototype.delete = function(t) {\n this._verifyNotCommitted();\n var e = ac(t, this._firestore);\n return this._mutations = this._mutations.concat(new Ve(e._key, Ee.none())), this;\n }, \n /**\n * Commits all of the writes in this write batch as a single atomic unit.\n *\n * The result of these writes will only be reflected in document reads that\n * occur after the returned Promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @returns A Promise resolved once all of the writes in the batch have been\n * successfully written to the backend as an atomic unit (note that it won't\n * resolve while you're offline).\n */\n t.prototype.commit = function() {\n return this._verifyNotCommitted(), this._committed = !0, this._mutations.length > 0 ? this._commitHandler(this._mutations) : Promise.resolve();\n }, t.prototype._verifyNotCommitted = function() {\n if (this._committed) throw new T(E.FAILED_PRECONDITION, \"A write batch can no longer be used after commit() has been called.\");\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A write batch, used to perform multiple writes as a single atomic unit.\n *\n * A `WriteBatch` object can be acquired by calling {@link writeBatch}. It\n * provides methods for adding writes to the write batch. None of the writes\n * will be committed (or visible locally) until {@link WriteBatch#commit} is\n * called.\n */ function ac(t, e) {\n if ((t = u(t)).firestore !== e) throw new T(E.INVALID_ARGUMENT, \"Provided document reference is from a different Firestore instance.\");\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// TODO(mrschmidt) Consider using `BaseTransaction` as the base class in the\n// legacy SDK.\n/**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ var cc = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).firestore = e, n;\n }\n return g(e, t), e.prototype.convertBytes = function(t) {\n return new aa(t);\n }, e.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new Qu(this.firestore, /* converter= */ null, e);\n }, e;\n}(ic);\n\n/**\n * Reads the document referred to by this `DocumentReference` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A Promise resolved with a `DocumentSnapshot` containing the\n * current document contents.\n */ function hc(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n t = Bu(t, Qu);\n var o = Bu(t.firestore, na), s = ma(o);\n return lc(o, [ (\"string\" == typeof (\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n e = u(e)) || e instanceof ua ? Da(s, \"updateDoc\", t._key, e, n, r) : Sa(s, \"updateDoc\", t._key, e)).toMutation(t._key, Ee.exists(!0)) ]);\n}\n\n/**\n * Deletes the document referred to by the specified `DocumentReference`.\n *\n * @param reference - A reference to the document to delete.\n * @returns A Promise resolved once the document has been successfully\n * deleted from the backend (note that it won't resolve while you're offline).\n */ function fc(t) {\n for (var e, n, r, i = [], o = 1; o < arguments.length; o++) i[o - 1] = arguments[o];\n t = u(t);\n var s = {\n includeMetadataChanges: !1\n }, a = 0;\n \"object\" != typeof i[a] || Zu(i[a]) || (s = i[a], a++);\n var c, h, f, l = {\n includeMetadataChanges: s.includeMetadataChanges\n };\n if (Zu(i[a])) {\n var d = i[a];\n i[a] = null === (e = d.next) || void 0 === e ? void 0 : e.bind(d), i[a + 1] = null === (n = d.error) || void 0 === n ? void 0 : n.bind(d), \n i[a + 2] = null === (r = d.complete) || void 0 === r ? void 0 : r.bind(d);\n }\n if (t instanceof Qu) h = Bu(t.firestore, na), f = Qt(t._key.path), c = {\n next: function(e) {\n i[a] && i[a](dc(h, t, e));\n },\n error: i[a + 1],\n complete: i[a + 2]\n }; else {\n var p = Bu(t, zu);\n h = Bu(p.firestore, na), f = p._query;\n var y = new cc(h);\n c = {\n next: function(t) {\n i[a] && i[a](new Ka(h, y, p, t));\n },\n error: i[a + 1],\n complete: i[a + 2]\n }, za(t._query);\n }\n return function(t, e, n, r) {\n var i = this, o = new fu(r), s = new ms(e, o, n);\n return t.asyncQueue.enqueueAndForget((function() {\n return b(i, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = ls, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), s ]) ];\n }\n }));\n }));\n })), function() {\n o.Wo(), t.asyncQueue.enqueueAndForget((function() {\n return b(i, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = ds, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), s ]) ];\n }\n }));\n }));\n }));\n };\n }(ra(h), f, l, c);\n}\n\n/**\n * Locally writes `mutations` on the async queue.\n * @internal\n */ function lc(t, e) {\n return function(t, e) {\n var n = this, r = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var n;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return n = Cs, [ 4 /*yield*/ , Eu(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ i.sent(), e, r ]) ];\n }\n }));\n }));\n })), r.promise;\n }(ra(t), e);\n}\n\n/**\n * Converts a ViewSnapshot that contains the single document specified by `ref`\n * to a DocumentSnapshot.\n */ function dc(t, e, n) {\n var r = n.docs.get(e._key), i = new cc(t);\n return new Ba(t, i, e._key, r, new Ua(n.hasPendingWrites, n.fromCache), e._converter);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ var pc = /** @class */ function(t) {\n // This class implements the same logic as the Transaction API in the Lite SDK\n // but is subclassed in order to return its own DocumentSnapshot types.\n /** @hideconstructor */\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, n) || this)._firestore = e, r;\n }\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */ return g(e, t), e.prototype.get = function(e) {\n var n = this, r = ac(e, this._firestore), i = new cc(this._firestore);\n return t.prototype.get.call(this, e).then((function(t) {\n return new Ba(n._firestore, i, r._key, t._document, new Ua(\n /* hasPendingWrites= */ !1, \n /* fromCache= */ !1), r._converter);\n }));\n }, e;\n}(/** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this._firestore = t, this._transaction = e, this._dataReader = ma(t)\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */;\n }\n return t.prototype.get = function(t) {\n var e = this, n = ac(t, this._firestore), r = new sc(this._firestore);\n return this._transaction.lookup([ n._key ]).then((function(t) {\n if (!t || 1 !== t.length) return C();\n var i = t[0];\n if (i.isFoundDocument()) return new Fa(e._firestore, r, i.key, i, n._converter);\n if (i.isNoDocument()) return new Fa(e._firestore, r, n._key, null, n._converter);\n throw C();\n }));\n }, t.prototype.set = function(t, e, n) {\n var r = ac(t, this._firestore), i = oc(r._converter, e, n), o = ga(this._dataReader, \"Transaction.set\", r._key, i, null !== r._converter, n);\n return this._transaction.set(r._key, o), this;\n }, t.prototype.update = function(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n var o, s = ac(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n return o = \"string\" == typeof (e = u(e)) || e instanceof ua ? Da(this._dataReader, \"Transaction.update\", s._key, e, n, r) : Sa(this._dataReader, \"Transaction.update\", s._key, e), \n this._transaction.update(s._key, o), this;\n }, \n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `Transaction` instance. Used for chaining method calls.\n */\n t.prototype.delete = function(t) {\n var e = ac(t, this._firestore);\n return this._transaction.delete(e._key), this;\n }, t;\n}());\n\n/**\n * Executes the given `updateFunction` and then attempts to commit the changes\n * applied within the transaction. If any document read within the transaction\n * has changed, Cloud Firestore retries the `updateFunction`. If it fails to\n * commit after 5 attempts, the transaction fails.\n *\n * The maximum number of writes allowed in a single transaction is 500.\n *\n * @param firestore - A reference to the Firestore database to run this\n * transaction against.\n * @param updateFunction - The function to execute within the transaction\n * context.\n * @returns If the transaction completed successfully or was explicitly aborted\n * (the `updateFunction` returned a failed promise), the promise returned by the\n * `updateFunction `is returned here. Otherwise, if the transaction failed, a\n * rejected promise with the corresponding failure error is returned.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Helper function to assert Uint8Array is available at runtime. */ function yc() {\n if (\"undefined\" == typeof Uint8Array) throw new T(E.UNIMPLEMENTED, \"Uint8Arrays are not available in this environment.\");\n}\n\n/** Helper function to assert Base64 functions are available at runtime. */ function vc() {\n if (\"undefined\" == typeof atob) throw new T(E.UNIMPLEMENTED, \"Blobs are unavailable in Firestore in this environment.\");\n}\n\n/** Immutable class holding a blob (binary data) */ var mc = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.fromBase64String = function(e) {\n return vc(), new t(aa.fromBase64String(e));\n }, t.fromUint8Array = function(e) {\n return yc(), new t(aa.fromUint8Array(e));\n }, t.prototype.toBase64 = function() {\n return vc(), this._delegate.toBase64();\n }, t.prototype.toUint8Array = function() {\n return yc(), this._delegate.toUint8Array();\n }, t.prototype.isEqual = function(t) {\n return this._delegate.isEqual(t._delegate);\n }, t.prototype.toString = function() {\n return \"Blob(base64: \" + this.toBase64() + \")\";\n }, t;\n}(), gc = /** @class */ function() {\n function t() {}\n return t.prototype.enableIndexedDbPersistence = function(t, e) {\n return function(t, e) {\n sa(t = Bu(t, na));\n var n = ra(t), r = t._freezeSettings(), i = new cu;\n return oa(n, i, new uu(i, r.cacheSizeBytes, null == e ? void 0 : e.forceOwnership));\n }(t._delegate, {\n forceOwnership: e\n });\n }, t.prototype.enableMultiTabIndexedDbPersistence = function(t) {\n return function(t) {\n sa(t = Bu(t, na));\n var e = ra(t), n = t._freezeSettings(), r = new cu;\n return oa(e, r, new au(r, n.cacheSizeBytes));\n }(t._delegate);\n }, t.prototype.clearIndexedDbPersistence = function(t) {\n return function(t) {\n var e = this;\n if (t._initialized && !t._terminated) throw new T(E.FAILED_PRECONDITION, \"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.\");\n var n = new vr;\n return t._queue.enqueueAndForgetEvenWhileRestricted((function() {\n return b(e, void 0, void 0, (function() {\n var e;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , function(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return wr.yt() ? (e = t + \"main\", [ 4 /*yield*/ , wr.delete(e) ]) : [ 2 /*return*/ , Promise.resolve() ];\n\n case 1:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(xi(t._databaseId, t._persistenceKey)) ];\n\n case 1:\n return r.sent(), n.resolve(), [ 3 /*break*/ , 3 ];\n\n case 2:\n return e = r.sent(), n.reject(e), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })), n.promise\n /**\n * Waits until all currently pending writes for the active user have been\n * acknowledged by the backend.\n *\n * The returned Promise resolves immediately if there are no outstanding writes.\n * Otherwise, the Promise waits for all previously issued writes (including\n * those written in a previous app session), but it does not wait for writes\n * that were added after the function is called. If you want to wait for\n * additional writes, call `waitForPendingWrites()` again.\n *\n * Any outstanding `waitForPendingWrites()` Promises are rejected during user\n * changes.\n *\n * @returns A Promise which resolves when all currently pending writes have been\n * acknowledged by the backend.\n */;\n }(t._delegate);\n }, t;\n}(), wc = /** @class */ function() {\n function t(t, e, n) {\n var r = this;\n this._delegate = e, this.Yc = n, this.INTERNAL = {\n delete: function() {\n return r.terminate();\n }\n }, t instanceof Au || (this.Xc = t);\n }\n return Object.defineProperty(t.prototype, \"_databaseId\", {\n get: function() {\n return this._delegate._databaseId;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.settings = function(t) {\n t.merge && \n // Remove the property from the settings once the merge is completed\n delete (t = Object.assign(Object.assign({}, this._delegate._getSettings()), t)).merge, \n this._delegate._setSettings(t);\n }, t.prototype.useEmulator = function(t, e) {\n !function(t, e, n) {\n var r = (t = Bu(t, Gu))._getSettings();\n \"firestore.googleapis.com\" !== r.host && r.host !== e && k(\"Host has been set in both settings() and useEmulator(), emulator host will be used\"), \n t._setSettings(Object.assign(Object.assign({}, r), {\n host: e + \":\" + n,\n ssl: !1\n }));\n }(this._delegate, t, e);\n }, t.prototype.enableNetwork = function() {\n return function(t) {\n var e = this;\n return t.asyncQueue.enqueue((function() {\n return b(e, void 0, void 0, (function() {\n var e, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , bu(t) ];\n\n case 1:\n return e = r.sent(), [ 4 /*yield*/ , _u(t) ];\n\n case 2:\n return n = r.sent(), [ 2 /*return*/ , (e.setNetworkEnabled(!0), function(t) {\n var e = O(t);\n return e.$r.delete(0 /* UserDisabled */), Lo(e);\n }(n)) ];\n }\n }));\n }));\n }));\n }\n /** Disables the network connection. Pending operations will not complete. */ (ra(Bu(this._delegate, na)));\n }, t.prototype.disableNetwork = function() {\n return function(t) {\n var e = this;\n return t.asyncQueue.enqueue((function() {\n return b(e, void 0, void 0, (function() {\n var e, n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , bu(t) ];\n\n case 1:\n return e = r.sent(), [ 4 /*yield*/ , _u(t) ];\n\n case 2:\n return n = r.sent(), [ 2 /*return*/ , (e.setNetworkEnabled(!1), function(t) {\n return b(this, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return (e = O(t)).$r.add(0 /* UserDisabled */), [ 4 /*yield*/ , Po(e) ];\n\n case 1:\n return n.sent(), \n // Set the OnlineState to Offline so get()s return from cache, etc.\n e.Br.set(\"Offline\" /* Offline */), [ 2 /*return*/ ];\n }\n }));\n }));\n }(n)) ];\n }\n }));\n }));\n }));\n }\n /**\n * Returns a Promise that resolves when all writes that were pending at the time\n * this method was called received server acknowledgement. An acknowledgement\n * can be either acceptance or rejection.\n */ (ra(Bu(this._delegate, na)));\n }, t.prototype.enablePersistence = function(t) {\n var e = !1, n = !1;\n return t && Fu(\"synchronizeTabs\", e = !!t.synchronizeTabs, \"experimentalForceOwningTab\", n = !!t.experimentalForceOwningTab), \n e ? this.Yc.enableMultiTabIndexedDbPersistence(this) : this.Yc.enableIndexedDbPersistence(this, n);\n }, t.prototype.clearPersistence = function() {\n return this.Yc.clearIndexedDbPersistence(this);\n }, t.prototype.terminate = function() {\n return this.Xc && (this.Xc._removeServiceInstance(\"firestore\"), this.Xc._removeServiceInstance(\"firestore-exp\")), \n this._delegate._delete();\n }, t.prototype.waitForPendingWrites = function() {\n return function(t) {\n var e = this, n = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(e, void 0, void 0, (function() {\n var e;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return e = Fs, [ 4 /*yield*/ , Eu(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ r.sent(), n ]) ];\n }\n }));\n }));\n })), n.promise;\n }(ra(Bu(this._delegate, na)));\n }, t.prototype.onSnapshotsInSync = function(t) {\n return function(t, e) {\n return function(t, e) {\n var n = this, r = new fu(e);\n return t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = function(t, e) {\n O(t).Gr.add(e), \n // Immediately fire an initial event, indicating all existing listeners\n // are in-sync.\n e.next();\n }, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), r ]) ];\n }\n }));\n }));\n })), function() {\n r.Wo(), t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = function(t, e) {\n O(t).Gr.delete(e);\n }, [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), r ]) ];\n }\n }));\n }));\n }));\n }\n /**\n * Takes an updateFunction in which a set of reads and writes can be performed\n * atomically. In the updateFunction, the client can read and write values\n * using the supplied transaction object. After the updateFunction, all\n * changes will be committed. If a retryable error occurs (ex: some other\n * client has changed any of the data referenced), then the updateFunction\n * will be called again after a backoff. If the updateFunction still fails\n * after all retries, then the transaction will be rejected.\n *\n * The transaction object passed to the updateFunction contains methods for\n * accessing documents and collections. Unlike other datastore access, data\n * accessed with the transaction will not reflect local changes that have not\n * been committed. For this reason, it is required that all reads are\n * performed before any writes. Transactions must be performed while online.\n */;\n }(ra(t = Bu(t, na)), Zu(e) ? e : {\n next: e\n });\n }(this._delegate, t);\n }, Object.defineProperty(t.prototype, \"app\", {\n get: function() {\n if (!this.Xc) throw new T(E.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this.Xc;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.collection = function(t) {\n try {\n return new Lc(this, Hu(this._delegate, t));\n } catch (t) {\n throw Dc(t, \"collection()\", \"Firestore.collection()\");\n }\n }, t.prototype.doc = function(t) {\n try {\n return new Sc(this, Yu(this._delegate, t));\n } catch (t) {\n throw Dc(t, \"doc()\", \"Firestore.doc()\");\n }\n }, t.prototype.collectionGroup = function(t) {\n try {\n return new Cc(this, function(t, e) {\n if (t = Bu(t, Gu), Pu(\"collectionGroup\", \"collection id\", e), e.indexOf(\"/\") >= 0) throw new T(E.INVALID_ARGUMENT, \"Invalid collection ID '\" + e + \"' passed to function collectionGroup(). Collection IDs must not contain '/'.\");\n return new zu(t, \n /* converter= */ null, \n /**\n * Creates a new Query for a collection group query that matches all documents\n * within the provided collection group.\n */\n function(t) {\n return new Kt(Q.emptyPath(), t);\n }(e));\n }(this._delegate, t));\n } catch (t) {\n throw Dc(t, \"collectionGroup()\", \"Firestore.collectionGroup()\");\n }\n }, t.prototype.runTransaction = function(t) {\n var e = this;\n return function(t, e) {\n return function(t, e) {\n var n = this, r = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var n;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return [ 4 /*yield*/ , function(t) {\n return wu(t).then((function(t) {\n return t.datastore;\n }));\n }(t) ];\n\n case 1:\n return n = i.sent(), new pu(t.asyncQueue, n, e, r).run(), [ 2 /*return*/ ];\n }\n }));\n }));\n })), r.promise;\n }(ra(t), (function(n) {\n return e(new pc(t, n));\n }));\n }(this._delegate, (function(n) {\n return t(new _c(e, n));\n }));\n }, t.prototype.batch = function() {\n var t = this;\n return ra(this._delegate), new Ec(new uc(this._delegate, (function(e) {\n return lc(t._delegate, e);\n })));\n }, t.prototype.loadBundle = function(t) {\n throw new T(E.FAILED_PRECONDITION, '\"loadBundle()\" does not exist, have you imported \"firebase/firestore/bundle\"?');\n }, t.prototype.namedQuery = function(t) {\n throw new T(E.FAILED_PRECONDITION, '\"namedQuery()\" does not exist, have you imported \"firebase/firestore/bundle\"?');\n }, t;\n}(), bc = /** @class */ function(t) {\n function e(e) {\n var n = this;\n return (n = t.call(this) || this).firestore = e, n;\n }\n return g(e, t), e.prototype.convertBytes = function(t) {\n return new mc(new aa(t));\n }, e.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return Sc.Zc(e, this.firestore, /* converter= */ null);\n }, e;\n}(ic);\n\n/**\n * The persistence provider included with the full Firestore SDK.\n */ function Ic(t) {\n var e;\n e = t, S.setLogLevel(e);\n}\n\n/**\n * A reference to a transaction.\n */ var _c = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e, this._userDataWriter = new bc(t);\n }\n return t.prototype.get = function(t) {\n var e = this, n = Pc(t);\n return this._delegate.get(n).then((function(t) {\n return new kc(e._firestore, new Ba(e._firestore._delegate, e._userDataWriter, t._key, t._document, t.metadata, n._converter));\n }));\n }, t.prototype.set = function(t, e, n) {\n var r = Pc(t);\n return n ? (Mu(\"Transaction.set\", n), this._delegate.set(r, e, n)) : this._delegate.set(r, e), \n this;\n }, t.prototype.update = function(t, e, n) {\n for (var r, i = [], o = 3; o < arguments.length; o++) i[o - 3] = arguments[o];\n var s = Pc(t);\n return 2 === arguments.length ? this._delegate.update(s, e) : (r = this._delegate).update.apply(r, w([ s, e, n ], i)), \n this;\n }, t.prototype.delete = function(t) {\n var e = Pc(t);\n return this._delegate.delete(e), this;\n }, t;\n}(), Ec = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.prototype.set = function(t, e, n) {\n var r = Pc(t);\n return n ? (Mu(\"WriteBatch.set\", n), this._delegate.set(r, e, n)) : this._delegate.set(r, e), \n this;\n }, t.prototype.update = function(t, e, n) {\n for (var r, i = [], o = 3; o < arguments.length; o++) i[o - 3] = arguments[o];\n var s = Pc(t);\n return 2 === arguments.length ? this._delegate.update(s, e) : (r = this._delegate).update.apply(r, w([ s, e, n ], i)), \n this;\n }, t.prototype.delete = function(t) {\n var e = Pc(t);\n return this._delegate.delete(e), this;\n }, t.prototype.commit = function() {\n return this._delegate.commit();\n }, t;\n}(), Tc = /** @class */ function() {\n function t(t, e, n) {\n this._firestore = t, this._userDataWriter = e, this._delegate = n;\n }\n return t.prototype.fromFirestore = function(t, e) {\n var n = new ja(this._firestore._delegate, this._userDataWriter, t._key, t._document, t.metadata, \n /* converter= */ null);\n return this._delegate.fromFirestore(new xc(this._firestore, n), null != e ? e : {});\n }, t.prototype.toFirestore = function(t, e) {\n return e ? this._delegate.toFirestore(t, e) : this._delegate.toFirestore(t);\n }, \n // Use the same instance of `FirestoreDataConverter` for the given instances\n // of `Firestore` and `PublicFirestoreDataConverter` so that isEqual() will\n // compare equal for two objects created with the same converter instance.\n t.tu = function(e, n) {\n var r = t.eu, i = r.get(e);\n i || (i = new WeakMap, r.set(e, i));\n var o = i.get(n);\n return o || (o = new t(e, new bc(e), n), i.set(n, o)), o;\n }, t;\n}();\n\nTc.eu = new WeakMap;\n\n/**\n * A reference to a particular document in a collection in the database.\n */\nvar Sc = /** @class */ function() {\n function t(t, e) {\n this.firestore = t, this._delegate = e, this._userDataWriter = new bc(t);\n }\n return t.nu = function(e, n, r) {\n if (e.length % 2 != 0) throw new T(E.INVALID_ARGUMENT, \"Invalid document reference. Document references must have an even number of segments, but \" + e.canonicalString() + \" has \" + e.length);\n return new t(n, new Qu(n._delegate, r, new st(e)));\n }, t.Zc = function(e, n, r) {\n return new t(n, new Qu(n._delegate, r, e));\n }, Object.defineProperty(t.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"parent\", {\n get: function() {\n return new Lc(this.firestore, this._delegate.parent);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"path\", {\n get: function() {\n return this._delegate.path;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.collection = function(t) {\n try {\n return new Lc(this.firestore, Hu(this._delegate, t));\n } catch (t) {\n throw Dc(t, \"collection()\", \"DocumentReference.collection()\");\n }\n }, t.prototype.isEqual = function(t) {\n return (t = u(t)) instanceof Qu && Xu(this._delegate, t);\n }, t.prototype.set = function(t, e) {\n e = Mu(\"DocumentReference.set\", e);\n try {\n return function(t, e, n) {\n t = Bu(t, Qu);\n var r = Bu(t.firestore, na), i = oc(t._converter, e, n);\n return lc(r, [ ga(ma(r), \"setDoc\", t._key, i, null !== t._converter, n).toMutation(t._key, Ee.none()) ]);\n }(this._delegate, t, e);\n } catch (t) {\n throw Dc(t, \"setDoc()\", \"DocumentReference.set()\");\n }\n }, t.prototype.update = function(t, e) {\n for (var n = [], r = 2; r < arguments.length; r++) n[r - 2] = arguments[r];\n try {\n return 1 === arguments.length ? hc(this._delegate, t) : hc.apply(void 0, w([ this._delegate, t, e ], n));\n } catch (t) {\n throw Dc(t, \"updateDoc()\", \"DocumentReference.update()\");\n }\n }, t.prototype.delete = function() {\n return lc(Bu((t = this._delegate).firestore, na), [ new Ve(t._key, Ee.none()) ]);\n var t;\n /**\n * Add a new document to specified `CollectionReference` with the given data,\n * assigning it a document ID automatically.\n *\n * @param reference - A reference to the collection to add this document to.\n * @param data - An Object containing the data for the new document.\n * @returns A Promise resolved with a `DocumentReference` pointing to the\n * newly created document after it has been written to the backend (Note that it\n * won't resolve while you're offline).\n */ }, t.prototype.onSnapshot = function() {\n for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = Nc(e), i = Ac(e, (function(e) {\n return new kc(t.firestore, new Ba(t.firestore._delegate, t._userDataWriter, e._key, e._document, e.metadata, t._delegate._converter));\n }));\n return fc(this._delegate, r, i);\n }, t.prototype.get = function(t) {\n var e = this;\n return (\"cache\" === (null == t ? void 0 : t.source) ? function(t) {\n t = Bu(t, Qu);\n var e = Bu(t.firestore, na), n = ra(e), r = new cc(e);\n return function(t, e) {\n var n = this, r = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var n;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return n = function(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i;\n return I(this, (function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , function(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"read document\", \"readonly\", (function(t) {\n return n.Mn.mn(t, e);\n }));\n }(t, e) ];\n\n case 1:\n return (i = o.sent()).isFoundDocument() ? n.resolve(i) : i.isNoDocument() ? n.resolve(null) : n.reject(new T(E.UNAVAILABLE, \"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)\")), \n [ 3 /*break*/ , 3 ];\n\n case 2:\n return r = o.sent(), i = ss(r, \"Failed to get document '\" + e + \" from cache\"), \n n.reject(i), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, [ 4 /*yield*/ , Iu(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ i.sent(), e, r ]) ];\n }\n }));\n }));\n })), r.promise;\n }(n, t._key).then((function(n) {\n return new Ba(e, r, t._key, n, new Ua(null !== n && n.hasLocalMutations, \n /* fromCache= */ !0), t._converter);\n }));\n }(this._delegate) : \"server\" === (null == t ? void 0 : t.source) ? function(t) {\n t = Bu(t, Qu);\n var e = Bu(t.firestore, na);\n return Su(ra(e), t._key, {\n source: \"server\"\n }).then((function(n) {\n return dc(e, t, n);\n }));\n }(this._delegate) : function(t) {\n t = Bu(t, Qu);\n var e = Bu(t.firestore, na);\n return Su(ra(e), t._key).then((function(n) {\n return dc(e, t, n);\n }));\n }(this._delegate)).then((function(t) {\n return new kc(e.firestore, new Ba(e.firestore._delegate, e._userDataWriter, t._key, t._document, t.metadata, e._delegate._converter));\n }));\n }, t.prototype.withConverter = function(e) {\n return new t(this.firestore, e ? this._delegate.withConverter(Tc.tu(this.firestore, e)) : this._delegate.withConverter(null));\n }, t;\n}();\n\n/**\n * Replaces the function name in an error thrown by the firestore-exp API\n * with the function names used in the classic API.\n */ function Dc(t, e, n) {\n return t.message = t.message.replace(e, n), t\n /**\n * Iterates the list of arguments from an `onSnapshot` call and returns the\n * first argument that may be an `SnapshotListenOptions` object. Returns an\n * empty object if none is found.\n */;\n}\n\nfunction Nc(t) {\n for (var e = 0, n = t; e < n.length; e++) {\n var r = n[e];\n if (\"object\" == typeof r && !Zu(r)) return r;\n }\n return {};\n}\n\n/**\n * Creates an observer that can be passed to the firestore-exp SDK. The\n * observer converts all observed values into the format expected by the classic\n * SDK.\n *\n * @param args - The list of arguments from an `onSnapshot` call.\n * @param wrapper - The function that converts the firestore-exp type into the\n * type used by this shim.\n */ function Ac(t, e) {\n var n, r, i;\n return {\n next: function(t) {\n i.next && i.next(e(t));\n },\n error: null === (n = (i = Zu(t[0]) ? t[0] : Zu(t[1]) ? t[1] : \"function\" == typeof t[0] ? {\n next: t[0],\n error: t[1],\n complete: t[2]\n } : {\n next: t[1],\n error: t[2],\n complete: t[3]\n }).error) || void 0 === n ? void 0 : n.bind(i),\n complete: null === (r = i.complete) || void 0 === r ? void 0 : r.bind(i)\n };\n}\n\nvar kc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"ref\", {\n get: function() {\n return new Sc(this._firestore, this._delegate.ref);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"metadata\", {\n get: function() {\n return this._delegate.metadata;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"exists\", {\n get: function() {\n return this._delegate.exists();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.data = function(t) {\n return this._delegate.data(t);\n }, t.prototype.get = function(t, e) {\n return this._delegate.get(t, e);\n }, t.prototype.isEqual = function(t) {\n return Qa(this._delegate, t._delegate);\n }, t;\n}(), xc = /** @class */ function(t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n return g(e, t), e.prototype.data = function(t) {\n return this._delegate.data(t);\n }, e;\n}(kc), Cc = /** @class */ function() {\n function t(t, e) {\n this.firestore = t, this._delegate = e, this._userDataWriter = new bc(t);\n }\n return t.prototype.where = function(e, n, r) {\n try {\n // The \"as string\" cast is a little bit of a hack. `where` accepts the\n // FieldPath Compat type as input, but is not typed as such in order to\n // not expose this via our public typings file.\n return new t(this.firestore, Ha(this._delegate, function(t, e, n) {\n var r = e, i = qa(\"where\", t);\n return new Ya(i, r, n);\n }(e, n, r)));\n } catch (e) {\n throw Dc(e, /(orderBy|where)\\(\\)/, \"Query.$1()\");\n }\n }, t.prototype.orderBy = function(e, n) {\n try {\n // The \"as string\" cast is a little bit of a hack. `orderBy` accepts the\n // FieldPath Compat type as input, but is not typed as such in order to\n // not expose this via our public typings file.\n return new t(this.firestore, Ha(this._delegate, function(t, e) {\n void 0 === e && (e = \"asc\");\n var n = e, r = qa(\"orderBy\", t);\n return new Xa(r, n);\n }(e, n)));\n } catch (e) {\n throw Dc(e, /(orderBy|where)\\(\\)/, \"Query.$1()\");\n }\n }, t.prototype.limit = function(e) {\n try {\n return new t(this.firestore, Ha(this._delegate, function(t) {\n return ju(\"limit\", t), new $a(\"limit\", t, \"F\" /* First */);\n }(e)));\n } catch (e) {\n throw Dc(e, \"limit()\", \"Query.limit()\");\n }\n }, t.prototype.limitToLast = function(e) {\n try {\n return new t(this.firestore, Ha(this._delegate, function(t) {\n return ju(\"limitToLast\", t), new $a(\"limitToLast\", t, \"L\" /* Last */);\n }(e)));\n } catch (e) {\n throw Dc(e, \"limitToLast()\", \"Query.limitToLast()\");\n }\n }, t.prototype.startAt = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Ha(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new Ja(\"startAt\", t, /*before=*/ !0);\n }.apply(void 0, e)));\n } catch (e) {\n throw Dc(e, \"startAt()\", \"Query.startAt()\");\n }\n }, t.prototype.startAfter = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Ha(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new Ja(\"startAfter\", t, \n /*before=*/ !1);\n }.apply(void 0, e)));\n } catch (e) {\n throw Dc(e, \"startAfter()\", \"Query.startAfter()\");\n }\n }, t.prototype.endBefore = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Ha(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new Za(\"endBefore\", t, /*before=*/ !0);\n }.apply(void 0, e)));\n } catch (e) {\n throw Dc(e, \"endBefore()\", \"Query.endBefore()\");\n }\n }, t.prototype.endAt = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Ha(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new Za(\"endAt\", t, /*before=*/ !1);\n }.apply(void 0, e)));\n } catch (e) {\n throw Dc(e, \"endAt()\", \"Query.endAt()\");\n }\n }, t.prototype.isEqual = function(t) {\n return $u(this._delegate, t._delegate);\n }, t.prototype.get = function(t) {\n var e = this;\n return (\"cache\" === (null == t ? void 0 : t.source) ? \n /**\n * Executes the query and returns the results as a `QuerySnapshot` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A Promise that will be resolved with the results of the query.\n */\n function(t) {\n t = Bu(t, zu);\n var e = Bu(t.firestore, na), n = ra(e), r = new cc(e);\n return function(t, e) {\n var n = this, r = new vr;\n return t.asyncQueue.enqueueAndForget((function() {\n return b(n, void 0, void 0, (function() {\n var n;\n return I(this, (function(i) {\n switch (i.label) {\n case 0:\n return n = function(t, e, n) {\n return b(this, void 0, void 0, (function() {\n var r, i, o, s, u;\n return I(this, (function(a) {\n switch (a.label) {\n case 0:\n return a.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , Qi(t, e, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return u = a.sent(), r = new Ts(e, u.Bn), i = r._o(u.documents), o = r.applyChanges(i, \n /* updateLimboDocuments= */ !1), n.resolve(o.snapshot), [ 3 /*break*/ , 3 ];\n\n case 2:\n return s = a.sent(), u = ss(s, \"Failed to execute query '\" + e + \" against cache\"), \n n.reject(u), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, [ 4 /*yield*/ , Iu(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ i.sent(), e, r ]) ];\n }\n }));\n }));\n })), r.promise;\n }(n, t._query).then((function(n) {\n return new Ka(e, r, t, n);\n }));\n }(this._delegate) : \"server\" === (null == t ? void 0 : t.source) ? function(t) {\n t = Bu(t, zu);\n var e = Bu(t.firestore, na), n = ra(e), r = new cc(e);\n return Du(n, t._query, {\n source: \"server\"\n }).then((function(n) {\n return new Ka(e, r, t, n);\n }));\n }(this._delegate) : function(t) {\n t = Bu(t, zu);\n var e = Bu(t.firestore, na), n = ra(e), r = new cc(e);\n return za(t._query), Du(n, t._query).then((function(n) {\n return new Ka(e, r, t, n);\n }));\n }(this._delegate)).then((function(t) {\n return new Oc(e.firestore, new Ka(e.firestore._delegate, e._userDataWriter, e._delegate, t._snapshot));\n }));\n }, t.prototype.onSnapshot = function() {\n for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = Nc(e), i = Ac(e, (function(e) {\n return new Oc(t.firestore, new Ka(t.firestore._delegate, t._userDataWriter, t._delegate, e._snapshot));\n }));\n return fc(this._delegate, r, i);\n }, t.prototype.withConverter = function(e) {\n return new t(this.firestore, e ? this._delegate.withConverter(Tc.tu(this.firestore, e)) : this._delegate.withConverter(null));\n }, t;\n}(), Rc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"type\", {\n get: function() {\n return this._delegate.type;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"doc\", {\n get: function() {\n return new xc(this._firestore, this._delegate.doc);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"oldIndex\", {\n get: function() {\n return this._delegate.oldIndex;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"newIndex\", {\n get: function() {\n return this._delegate.newIndex;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), Oc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"query\", {\n get: function() {\n return new Cc(this._firestore, this._delegate.query);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"metadata\", {\n get: function() {\n return this._delegate.metadata;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this._delegate.size;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"empty\", {\n get: function() {\n return this._delegate.empty;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"docs\", {\n get: function() {\n var t = this;\n return this._delegate.docs.map((function(e) {\n return new xc(t._firestore, e);\n }));\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.docChanges = function(t) {\n var e = this;\n return this._delegate.docChanges(t).map((function(t) {\n return new Rc(e._firestore, t);\n }));\n }, t.prototype.forEach = function(t, e) {\n var n = this;\n this._delegate.forEach((function(r) {\n t.call(e, new xc(n._firestore, r));\n }));\n }, t.prototype.isEqual = function(t) {\n return Qa(this._delegate, t._delegate);\n }, t;\n}(), Lc = /** @class */ function(t) {\n function e(e, n) {\n var r = this;\n return (r = t.call(this, e, n) || this).firestore = e, r._delegate = n, r;\n }\n return g(e, t), Object.defineProperty(e.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"path\", {\n get: function() {\n return this._delegate.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"parent\", {\n get: function() {\n var t = this._delegate.parent;\n return t ? new Sc(this.firestore, t) : null;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.doc = function(t) {\n try {\n return new Sc(this.firestore, void 0 === t ? Yu(this._delegate) : Yu(this._delegate, t));\n } catch (t) {\n throw Dc(t, \"doc()\", \"CollectionReference.doc()\");\n }\n }, e.prototype.add = function(t) {\n var e = this;\n return function(t, e) {\n var n = Bu(t.firestore, na), r = Yu(t), i = oc(t._converter, e);\n return lc(n, [ ga(ma(t.firestore), \"addDoc\", r._key, i, null !== t._converter, {}).toMutation(r._key, Ee.exists(!1)) ]).then((function() {\n return r;\n }));\n }(this._delegate, t).then((function(t) {\n return new Sc(e.firestore, t);\n }));\n }, e.prototype.isEqual = function(t) {\n return Xu(this._delegate, t._delegate);\n }, e.prototype.withConverter = function(t) {\n return new e(this.firestore, t ? this._delegate.withConverter(Tc.tu(this.firestore, t)) : this._delegate.withConverter(null));\n }, e;\n}(Cc);\n\nfunction Pc(t) {\n return Bu(t, Qu);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The objects that are a part of this API are exposed to third-parties as\n// compiled javascript so we want to flag our private members with a leading\n// underscore to discourage their use.\n/**\n * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a list\n * of field names (referring to a nested field in the document).\n */ var Mc = /** @class */ function() {\n /**\n * Creates a FieldPath from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n function t() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n this._delegate = new (ua.bind.apply(ua, w([ void 0 ], t)));\n }\n return t.documentId = function() {\n /**\n * Internal Note: The backend doesn't technically support querying by\n * document ID. Instead it queries by the entire document name (full path\n * included), but in the cases we currently support documentId(), the net\n * effect is the same.\n */\n return new t(W.keyField().canonicalString());\n }, t.prototype.isEqual = function(t) {\n return (t = u(t)) instanceof ua && this._delegate._internalPath.isEqual(t._internalPath);\n }, t;\n}(), Fc = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.serverTimestamp = function() {\n var e = new Ia(\"serverTimestamp\");\n return e._methodName = \"FieldValue.serverTimestamp\", new t(e);\n }, t.delete = function() {\n var e = new wa(\"deleteField\");\n return e._methodName = \"FieldValue.delete\", new t(e);\n }, t.arrayUnion = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = \n /**\n * Returns a special value that can be used with {@link setDoc} or {@link\n * updateDoc} that tells the server to union the given elements with any array\n * value that already exists on the server. Each specified element that doesn't\n * already exist in the array will be added to the end. If the field being\n * modified is not already an array it will be overwritten with an array\n * containing exactly the specified elements.\n *\n * @param elements - The elements to union into the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`.\n */\n function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new _a(\"arrayUnion\", t);\n }.apply(void 0, e);\n return r._methodName = \"FieldValue.arrayUnion\", new t(r);\n }, t.arrayRemove = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Ea(\"arrayRemove\", t);\n }.apply(void 0, e);\n return r._methodName = \"FieldValue.arrayRemove\", new t(r);\n }, t.increment = function(e) {\n var n = function(t) {\n return new Ta(\"increment\", t);\n }(e);\n return n._methodName = \"FieldValue.increment\", new t(n);\n }, t.prototype.isEqual = function(t) {\n return this._delegate.isEqual(t._delegate);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction Vc(t) {\n /**\n * Loads a Firestore bundle into the local cache.\n *\n * @param firestore - The `Firestore` instance to load bundles for for.\n * @param bundleData - An object representing the bundle to be loaded. Valid objects are\n * `ArrayBuffer`, `ReadableStream` or `string`.\n *\n * @return\n * A `LoadBundleTask` object, which notifies callers with progress updates, and completion\n * or error events. It can be used as a `Promise`.\n */\n return function(t, e) {\n var n = ra(t = Bu(t, na)), r = new ta;\n return function(t, e, n, r) {\n var i = this, o = function(t, e) {\n return function(t, e) {\n return new lu(t, e);\n }(function(t, e) {\n if (t instanceof Uint8Array) return hu(t, e);\n if (t instanceof ArrayBuffer) return hu(new Uint8Array(t), e);\n if (t instanceof ReadableStream) return t.getReader();\n throw new Error(\"Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream\");\n }(\"string\" == typeof t ? (new TextEncoder).encode(t) : t), e);\n }(n, Do(e));\n t.asyncQueue.enqueueAndForget((function() {\n return b(i, void 0, void 0, (function() {\n var e;\n return I(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = ou, [ 4 /*yield*/ , Eu(t) ];\n\n case 1:\n return e.apply(void 0, [ n.sent(), o, r ]), [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }(n, t._databaseId, e, r), r;\n }(this._delegate, t);\n}\n\nfunction qc(t) {\n var e, n, r = this;\n return (e = this._delegate, n = t, function(t, e) {\n var n = this;\n return t.asyncQueue.enqueue((function() {\n return b(n, void 0, void 0, (function() {\n var n;\n return I(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = function(t, e) {\n var n = O(t);\n return n.persistence.runTransaction(\"Get named query\", \"readonly\", (function(t) {\n return n.Qe.getNamedQuery(t, e);\n }));\n }, [ 4 /*yield*/ , Iu(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ r.sent(), e ]) ];\n }\n }));\n }));\n }));\n }(ra(e = Bu(e, na)), n).then((function(t) {\n return t ? new zu(e, null, t.query) : null;\n }))).then((function(t) {\n return t ? new Cc(r, t) : null;\n }));\n}\n\nexport { wc as $, _c as B, kc as G, Cc as H, Ic as L, gc as O, Sc as Q, Lc as X, Oc as Y, ea as _, Fc as e, q as k, na as m, Vc as n, Ec as q, qc as s, Mc as t, ha as v, mc as x, xc as z };\n//# sourceMappingURL=prebuilt-4888bff0-430c65bc.js.map\n","import e from \"@firebase/app\";\n\nimport \"@firebase/util\";\n\nimport \"@firebase/logger\";\n\nimport \"@firebase/webchannel-wrapper\";\n\nimport \"tslib\";\n\nimport { $ as r, m as t, O as a, v as s, k as o, x as i, B as n, q as p, Q as m, G as f, H as c, z as u, Y as b, X as l, t as g, e as h, L as v, _ as w } from \"./prebuilt-4888bff0-430c65bc.js\";\n\nimport { Component as I } from \"@firebase/component\";\n\nvar L = {\n Firestore: r,\n GeoPoint: s,\n Timestamp: o,\n Blob: i,\n Transaction: n,\n WriteBatch: p,\n DocumentReference: m,\n DocumentSnapshot: f,\n Query: c,\n QueryDocumentSnapshot: u,\n QuerySnapshot: b,\n CollectionReference: l,\n FieldPath: g,\n FieldValue: h,\n setLogLevel: v,\n CACHE_SIZE_UNLIMITED: w\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Registers the main Firestore build with the components framework.\n * Persistence can be enabled via `firebase.firestore().enablePersistence()`.\n */\nfunction P(e) {\n !\n /**\n * Configures Firestore as part of the Firebase SDK by calling registerService.\n *\n * @param firebase - The FirebaseNamespace to register Firestore with\n * @param firestoreFactory - A factory function that returns a new Firestore\n * instance.\n */\n function(e, r) {\n e.INTERNAL.registerComponent(new I(\"firestore\", (function(e) {\n var t = e.getProvider(\"app\").getImmediate();\n return r(t, e.getProvider(\"auth-internal\"));\n }), \"PUBLIC\" /* PUBLIC */).setServiceProps(Object.assign({}, L)));\n }(e, (function(e, s) {\n return new r(e, new t(e, s), new a);\n })), e.registerVersion(\"@firebase/firestore\", \"2.2.3\");\n}\n\nP(e);\n\nexport { P as registerFirestore };\n//# sourceMappingURL=index.js.map\n"],"names":["extendStatics","d","b","p","__extends","__","__values","o","s","m","i","commonjsGlobal","h","goog","k","aa","ba","a","n","ca","da","ea","fa","c","ha","e","ja","q","r","f","g","t","ka","ma","na","oa","pa","qa","ra","sa","ta","v","ua","w","va","wa","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","x","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","y","z","Xa","A","Ya","Za","$a","ab","bb","cb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","sb","D","E","tb","l","ub","vb","xb","class_1","wb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","_super","_this","F","Lb","Mb","Nb","Ob","Pb","u","C","B","Qb","G","Rb","Sb","H","Tb","Ub","Vb","I","Wb","J","Xb","K","Yb","Zb","$b","ac","bc","L","cc","dc","ec","fc","M","gc","hc","ic","jc","kc","N","lc","mc","nc","oc","O","pc","qc","P","rc","sc","uc","vc","wc","yc","zc","Ac","Bc","Cc","Dc","Q","Ec","rb","R","xa","Fc","Gc","ya","xc","Hc","Ic","Jc","Kc","Lc","S","Mc","T","Nc","Oc","U","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","V","W","ed","fd","gd","hd","id","jd","e_1","_a","kd","_b","_c","e_1_1","e_2","e_2_1","ld","md","nd","od","pd","qd","X","rd","sd","td","ud","vd","wd","xd","yd","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Y","Z","Pd","Qd","createWebChannelTransport","getStatEventTarget","ErrorCode","EventType","Event","Stat","WebChannel","XhrIo","define_process_env_default"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js b/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js deleted file mode 100644 index 9d85d68..0000000 --- a/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js +++ /dev/null @@ -1,8 +0,0 @@ -import{z as C,l as E,c as D,h as O}from"./index-jpNTxDe4.js";import"./index-2K3MavtT.js";var P=function(){var h=function(c,t,e,n){for(e=e||{},n=c.length;n--;e[c[n]]=t);return e},f=[6,9,10],x={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,k){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},h(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},h(f,[2,3]),h(f,[2,4]),h(f,[2,5]),h(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],k=this.table,L="",b=0,T=0,z=2,R=1,M=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var w in this.yy)Object.prototype.hasOwnProperty.call(this.yy,w)&&(p.yy[w]=this.yy[w]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var Y=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var u;return u=s.pop()||o.lex()||R,typeof u!="number"&&(u instanceof Array&&(s=u,u=s.pop()),u=e.symbols_[u]||u),u}for(var l,g,a,A,d={},v,y,j,S;;){if(g=n[n.length-1],this.defaultActions[g]?a=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),a=k[g]&&k[g][l]),typeof a>"u"||!a.length||!a[0]){var $="";S=[];for(v in k[g])this.terminals_[v]&&v>z&&S.push("'"+this.terminals_[v]+"'");o.showPosition?$="Parse error on line "+(b+1)+`: -`+o.showPosition()+` -Expecting `+S.join(", ")+", got '"+(this.terminals_[l]||l)+"'":$="Parse error on line "+(b+1)+": Unexpected "+(l==R?"end of input":"'"+(this.terminals_[l]||l)+"'"),this.parseError($,{text:o.match,token:this.terminals_[l]||l,line:o.yylineno,loc:I,expected:S})}if(a[0]instanceof Array&&a.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+l);switch(a[0]){case 1:n.push(l),r.push(o.yytext),i.push(o.yylloc),n.push(a[1]),l=null,T=o.yyleng,L=o.yytext,b=o.yylineno,I=o.yylloc;break;case 2:if(y=this.productions_[a[1]][1],d.$=r[r.length-y],d._$={first_line:i[i.length-(y||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(y||1)].first_column,last_column:i[i.length-1].last_column},Y&&(d._$.range=[i[i.length-(y||1)].range[0],i[i.length-1].range[1]]),A=this.performAction.apply(d,[L,T,b,p.yy,a[1],r,i].concat(M)),typeof A<"u")return A;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),i=i.slice(0,-1*y)),n.push(this.productions_[a[1]][0]),r.push(d.$),i.push(d._$),j=k[n[n.length-2]][n[n.length-1]],n.push(j);break;case 3:return!0}}return!0}},m=function(){var c={EOF:1,parseError:function(e,n){if(this.yy.parser)this.yy.parser.parseError(e,n);else throw new Error(e)},setInput: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},input: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},unput:function(t){var e=t.length,n=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 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),n.length-1&&(this.yylineno-=n.length-1);var r=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:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+` -`+e+"^"},test_match:function(t,e){var n,s,r;if(this.options.backtrack_lexer&&(r={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&&(r.yylloc.range=this.yylloc.range.slice(0))),s=t[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+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],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in r)this[i]=r[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,n,s;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),i=0;ie[0].length)){if(e=n,s=i,this.options.backtrack_lexer){if(t=this.test_match(n,r[i]),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,r[s]),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})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,n,s,r){switch(s){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return c}();x.lexer=m;function _(){this.yy={}}return _.prototype=x,x.Parser=_,new _}();P.parser=P;const V=P;var F="",N=!1;const X=h=>{E.debug("Setting message to: "+h),F=h},q=()=>F,B=h=>{N=h},G=()=>N,H={setMessage:X,getMessage:q,setInfo:B,getInfo:G,clear:C},J=()=>"",K=J,Q=(h,f,x)=>{try{E.debug(`Rendering info diagram -`+h);const m=D().securityLevel;let _;m==="sandbox"&&(_=O("#i"+f));const t=(m==="sandbox"?O(_.nodes()[0].contentDocument.body):O("body")).select("#"+f);t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+x),t.attr("height",100),t.attr("width",400)}catch(m){E.error("Error while rendering info diagram"),E.error(m.message)}},W={draw:Q},et={parser:V,db:H,renderer:W,styles:K};export{et as diagram}; -//# sourceMappingURL=infoDiagram-264bed3e-S8LyFZ95.js.map diff --git a/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js.map b/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js.map deleted file mode 100644 index 373c7a8..0000000 --- a/excalidraw/excalidraw-app/build/assets/infoDiagram-264bed3e-S8LyFZ95.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"infoDiagram-264bed3e-S8LyFZ95.js","sources":["../../../node_modules/mermaid/dist/infoDiagram-264bed3e.js"],"sourcesContent":["import { v as clear, l as log, c as getConfig } from \"./mermaid-b0ad2de1.js\";\nimport { select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 9, 10];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"info\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"statement\": 8, \"NL\": 9, \"showInfo\": 10, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"info\", 6: \"EOF\", 9: \"NL\", 10: \"showInfo\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n $$.length - 1;\n switch (yystate) {\n case 1:\n return yy;\n case 4:\n break;\n case 6:\n yy.setInfo(true);\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],\n defaultActions: { 4: [2, 1] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 4;\n case 1:\n return 9;\n case 2:\n return \"space\";\n case 3:\n return 10;\n case 4:\n return 6;\n case 5:\n return \"TXT\";\n }\n },\n rules: [/^(?:info\\b)/i, /^(?:[\\s\\n\\r]+)/i, /^(?:[\\s]+)/i, /^(?:showInfo\\b)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nvar message = \"\";\nvar info = false;\nconst setMessage = (txt) => {\n log.debug(\"Setting message to: \" + txt);\n message = txt;\n};\nconst getMessage = () => {\n return message;\n};\nconst setInfo = (inf) => {\n info = inf;\n};\nconst getInfo = () => {\n return info;\n};\nconst db = {\n setMessage,\n getMessage,\n setInfo,\n getInfo,\n clear\n // parseError\n};\nconst getStyles = () => ``;\nconst styles = getStyles;\nconst draw = (text, id, version) => {\n try {\n log.debug(\"Rendering info diagram\\n\" + text);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(\"#\" + id);\n const g = svg.append(\"g\");\n g.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", \"32px\").style(\"text-anchor\", \"middle\").text(\"v \" + version);\n svg.attr(\"height\", 100);\n svg.attr(\"width\", 400);\n } catch (e) {\n log.error(\"Error while rendering info diagram\");\n log.error(e.message);\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","message","info","setMessage","txt","log","getMessage","setInfo","inf","getInfo","db","clear","getStyles","styles","draw","text","id","version","securityLevel","getConfig","sandboxElement","select","svg","e","renderer","diagram"],"mappings":"yFAUA,IAAIA,EAAS,UAAW,CACtB,IAAIC,EAAI,SAASC,EAAGC,EAAGC,EAAIC,EAAG,CAC5B,IAAKD,EAAKA,GAAM,GAAIC,EAAIH,EAAE,OAAQG,IAAKD,EAAGF,EAAEG,CAAC,CAAC,EAAIF,EAChD,CACF,OAAOC,CACR,EAAEE,EAAM,CAAC,EAAG,EAAG,EAAE,EACdC,EAAU,CACZ,MAAO,UAAiB,CACvB,EACD,GAAI,CAAE,EACN,SAAU,CAAE,MAAS,EAAG,MAAS,EAAG,KAAQ,EAAG,SAAY,EAAG,IAAO,EAAG,KAAQ,EAAG,UAAa,EAAG,GAAM,EAAG,SAAY,GAAI,QAAW,EAAG,KAAQ,CAAG,EACrJ,WAAY,CAAE,EAAG,QAAS,EAAG,OAAQ,EAAG,MAAO,EAAG,KAAM,GAAI,UAAY,EACxE,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EAChE,cAAe,SAAmBC,EAAQC,EAAQC,EAAUC,EAAIC,EAASC,EAAIC,EAAI,CAE/E,OADAD,EAAG,OAAS,EACJD,EAAO,CACb,IAAK,GACH,OAAOD,EACT,IAAK,GACH,MACF,IAAK,GACHA,EAAG,QAAQ,EAAI,EACf,KACH,CACF,EACD,MAAO,CAAC,CAAE,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,CAAC,EAAI,CAAE,EAAG,CAAC,CAAC,CAAC,EAAIV,EAAEK,EAAK,CAAC,EAAG,CAAC,EAAG,CAAE,EAAG,CAAG,CAAA,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAAEL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,CAAC,EAClM,eAAgB,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAC7B,WAAY,SAAoBS,EAAKC,EAAM,CACzC,GAAIA,EAAK,YACP,KAAK,MAAMD,CAAG,MACT,CACL,IAAIE,EAAQ,IAAI,MAAMF,CAAG,EACzB,MAAAE,EAAM,KAAOD,EACPC,CACP,CACF,EACD,MAAO,SAAeC,EAAO,CAC3B,IAAIC,EAAO,KAAMC,EAAQ,CAAC,CAAC,EAAGC,EAAS,CAAA,EAAIC,EAAS,CAAC,IAAI,EAAGC,EAAS,CAAE,EAAEC,EAAQ,KAAK,MAAOhB,EAAS,GAAIE,EAAW,EAAGD,EAAS,EAAGgB,EAAS,EAAGC,EAAM,EAClJC,EAAOJ,EAAO,MAAM,KAAK,UAAW,CAAC,EACrCK,EAAS,OAAO,OAAO,KAAK,KAAK,EACjCC,EAAc,CAAE,GAAI,CAAA,GACxB,QAAS3B,KAAK,KAAK,GACb,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,CAAC,IACjD2B,EAAY,GAAG3B,CAAC,EAAI,KAAK,GAAGA,CAAC,GAGjC0B,EAAO,SAASV,EAAOW,EAAY,EAAE,EACrCA,EAAY,GAAG,MAAQD,EACvBC,EAAY,GAAG,OAAS,KACpB,OAAOD,EAAO,OAAU,MAC1BA,EAAO,OAAS,IAElB,IAAIE,EAAQF,EAAO,OACnBL,EAAO,KAAKO,CAAK,EACjB,IAAIC,EAASH,EAAO,SAAWA,EAAO,QAAQ,OAC1C,OAAOC,EAAY,GAAG,YAAe,WACvC,KAAK,WAAaA,EAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAEhD,SAASG,GAAM,CACb,IAAIC,EACJ,OAAAA,EAAQZ,EAAO,IAAG,GAAMO,EAAO,IAAK,GAAIF,EACpC,OAAOO,GAAU,WACfA,aAAiB,QACnBZ,EAASY,EACTA,EAAQZ,EAAO,OAEjBY,EAAQd,EAAK,SAASc,CAAK,GAAKA,GAE3BA,CACR,CAED,QADIC,EAAQC,EAAOC,EAAQC,EAAGC,EAAQ,CAAE,EAAEC,EAAGC,EAAKC,EAAUC,IAC/C,CAUX,GATAP,EAAQf,EAAMA,EAAM,OAAS,CAAC,EAC1B,KAAK,eAAee,CAAK,EAC3BC,EAAS,KAAK,eAAeD,CAAK,IAE9BD,IAAW,MAAQ,OAAOA,EAAU,OACtCA,EAASF,EAAG,GAEdI,EAASZ,EAAMW,CAAK,GAAKX,EAAMW,CAAK,EAAED,CAAM,GAE1C,OAAOE,EAAW,KAAe,CAACA,EAAO,QAAU,CAACA,EAAO,CAAC,EAAG,CACjE,IAAIO,EAAS,GACbD,EAAW,CAAA,EACX,IAAKH,KAAKf,EAAMW,CAAK,EACf,KAAK,WAAWI,CAAC,GAAKA,EAAId,GAC5BiB,EAAS,KAAK,IAAM,KAAK,WAAWH,CAAC,EAAI,GAAG,EAG5CX,EAAO,aACTe,EAAS,wBAA0BjC,EAAW,GAAK;AAAA,EAAQkB,EAAO,aAAc,EAAG;AAAA,YAAiBc,EAAS,KAAK,IAAI,EAAI,WAAa,KAAK,WAAWR,CAAM,GAAKA,GAAU,IAE5KS,EAAS,wBAA0BjC,EAAW,GAAK,iBAAmBwB,GAAUR,EAAM,eAAiB,KAAO,KAAK,WAAWQ,CAAM,GAAKA,GAAU,KAErJ,KAAK,WAAWS,EAAQ,CACtB,KAAMf,EAAO,MACb,MAAO,KAAK,WAAWM,CAAM,GAAKA,EAClC,KAAMN,EAAO,SACb,IAAKE,EACL,SAAAY,CACZ,CAAW,CACF,CACD,GAAIN,EAAO,CAAC,YAAa,OAASA,EAAO,OAAS,EAChD,MAAM,IAAI,MAAM,oDAAsDD,EAAQ,YAAcD,CAAM,EAEpG,OAAQE,EAAO,CAAC,EAAC,CACf,IAAK,GACHhB,EAAM,KAAKc,CAAM,EACjBZ,EAAO,KAAKM,EAAO,MAAM,EACzBL,EAAO,KAAKK,EAAO,MAAM,EACzBR,EAAM,KAAKgB,EAAO,CAAC,CAAC,EACpBF,EAAS,KAEPzB,EAASmB,EAAO,OAChBpB,EAASoB,EAAO,OAChBlB,EAAWkB,EAAO,SAClBE,EAAQF,EAAO,OAEjB,MACF,IAAK,GAwBH,GAvBAY,EAAM,KAAK,aAAaJ,EAAO,CAAC,CAAC,EAAE,CAAC,EACpCE,EAAM,EAAIhB,EAAOA,EAAO,OAASkB,CAAG,EACpCF,EAAM,GAAK,CACT,WAAYf,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,WAC/C,UAAWjB,EAAOA,EAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,aACjD,YAAajB,EAAOA,EAAO,OAAS,CAAC,EAAE,WACrD,EACgBQ,IACFO,EAAM,GAAG,MAAQ,CACff,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,MAAM,CAAC,EAC1CjB,EAAOA,EAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACjD,GAEYc,EAAI,KAAK,cAAc,MAAMC,EAAO,CAClC9B,EACAC,EACAC,EACAmB,EAAY,GACZO,EAAO,CAAC,EACRd,EACAC,CACd,EAAc,OAAOI,CAAI,CAAC,EACV,OAAOU,EAAM,IACf,OAAOA,EAELG,IACFpB,EAAQA,EAAM,MAAM,EAAG,GAAKoB,EAAM,CAAC,EACnClB,EAASA,EAAO,MAAM,EAAG,GAAKkB,CAAG,EACjCjB,EAASA,EAAO,MAAM,EAAG,GAAKiB,CAAG,GAEnCpB,EAAM,KAAK,KAAK,aAAagB,EAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1Cd,EAAO,KAAKgB,EAAM,CAAC,EACnBf,EAAO,KAAKe,EAAM,EAAE,EACpBG,EAAWjB,EAAMJ,EAAMA,EAAM,OAAS,CAAC,CAAC,EAAEA,EAAMA,EAAM,OAAS,CAAC,CAAC,EACjEA,EAAM,KAAKqB,CAAQ,EACnB,MACF,IAAK,GACH,MAAO,EACV,CACF,CACD,MAAO,EACR,CACL,EACMG,EAAQ,UAAW,CACrB,IAAIhB,EAAS,CACX,IAAK,EACL,WAAY,SAAoBb,EAAKC,EAAM,CACzC,GAAI,KAAK,GAAG,OACV,KAAK,GAAG,OAAO,WAAWD,EAAKC,CAAI,MAEnC,OAAM,IAAI,MAAMD,CAAG,CAEtB,EAED,SAAU,SAASG,EAAOP,EAAI,CAC5B,YAAK,GAAKA,GAAM,KAAK,IAAM,CAAA,EAC3B,KAAK,OAASO,EACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACZ,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CACvB,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAG,CAAC,GAE3B,KAAK,OAAS,EACP,IACR,EAED,MAAO,UAAW,CAChB,IAAI2B,EAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,EACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,EACd,KAAK,SAAWA,EAChB,IAAIC,EAAQD,EAAG,MAAM,iBAAiB,EACtC,OAAIC,GACF,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEV,KAAK,QAAQ,QACf,KAAK,OAAO,MAAM,CAAC,IAErB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1BD,CACR,EAED,MAAO,SAASA,EAAI,CAClB,IAAIL,EAAMK,EAAG,OACTC,EAAQD,EAAG,MAAM,eAAe,EACpC,KAAK,OAASA,EAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAASL,CAAG,EAC5D,KAAK,QAAUA,EACf,IAAIO,EAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EACzDD,EAAM,OAAS,IACjB,KAAK,UAAYA,EAAM,OAAS,GAElC,IAAI,EAAI,KAAK,OAAO,MACpB,YAAK,OAAS,CACZ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaA,GAASA,EAAM,SAAWC,EAAS,OAAS,KAAK,OAAO,aAAe,GAAKA,EAASA,EAAS,OAASD,EAAM,MAAM,EAAE,OAASA,EAAM,CAAC,EAAE,OAAS,KAAK,OAAO,aAAeN,CAClM,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,EAAI,KAAK,OAASA,CAAG,GAErD,KAAK,OAAS,KAAK,OAAO,OACnB,IACR,EAED,KAAM,UAAW,CACf,YAAK,MAAQ,GACN,IACR,EAED,OAAQ,UAAW,CACjB,GAAI,KAAK,QAAQ,gBACf,KAAK,WAAa,OAElB,QAAO,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAChO,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,EAEH,OAAO,IACR,EAED,KAAM,SAASQ,EAAG,CAChB,KAAK,MAAM,KAAK,MAAM,MAAMA,CAAC,CAAC,CAC/B,EAED,UAAW,UAAW,CACpB,IAAIC,EAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,EAAK,OAAS,GAAK,MAAQ,IAAMA,EAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC5E,EAED,cAAe,UAAW,CACxB,IAAIC,EAAO,KAAK,MAChB,OAAIA,EAAK,OAAS,KAChBA,GAAQ,KAAK,OAAO,OAAO,EAAG,GAAKA,EAAK,MAAM,IAExCA,EAAK,OAAO,EAAG,EAAE,GAAKA,EAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CAChF,EAED,aAAc,UAAW,CACvB,IAAIC,EAAM,KAAK,YACXC,EAAI,IAAI,MAAMD,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,EAAM,KAAK,cAAe,EAAG;AAAA,EAAOC,EAAI,GAChD,EAED,WAAY,SAASC,EAAOC,EAAc,CACxC,IAAIrB,EAAOa,EAAOS,EAmDlB,GAlDI,KAAK,QAAQ,kBACfA,EAAS,CACP,SAAU,KAAK,SACf,OAAQ,CACN,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WAC1B,EACD,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACvB,EACc,KAAK,QAAQ,SACfA,EAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAGnDT,EAAQO,EAAM,CAAC,EAAE,MAAM,iBAAiB,EACpCP,IACF,KAAK,UAAYA,EAAM,QAEzB,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,EAAQA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAAS,KAAK,OAAO,YAAcO,EAAM,CAAC,EAAE,MACvJ,EACQ,KAAK,QAAUA,EAAM,CAAC,EACtB,KAAK,OAASA,EAAM,CAAC,EACrB,KAAK,QAAUA,EACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAE9D,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,EAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,EAAM,CAAC,EACvBpB,EAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMqB,EAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SACpB,KAAK,KAAO,IAEVrB,EACF,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1B,QAAS/B,KAAKqD,EACZ,KAAKrD,CAAC,EAAIqD,EAAOrD,CAAC,EAEpB,MAAO,EACR,CACD,MAAO,EACR,EAED,KAAM,UAAW,CACf,GAAI,KAAK,KACP,OAAO,KAAK,IAET,KAAK,SACR,KAAK,KAAO,IAEd,IAAI+B,EAAOoB,EAAOG,EAAWC,EACxB,KAAK,QACR,KAAK,OAAS,GACd,KAAK,MAAQ,IAGf,QADIC,EAAQ,KAAK,gBACR,EAAI,EAAG,EAAIA,EAAM,OAAQ,IAEhC,GADAF,EAAY,KAAK,OAAO,MAAM,KAAK,MAAME,EAAM,CAAC,CAAC,CAAC,EAC9CF,IAAc,CAACH,GAASG,EAAU,CAAC,EAAE,OAASH,EAAM,CAAC,EAAE,SAGzD,GAFAA,EAAQG,EACRC,EAAQ,EACJ,KAAK,QAAQ,gBAAiB,CAEhC,GADAxB,EAAQ,KAAK,WAAWuB,EAAWE,EAAM,CAAC,CAAC,EACvCzB,IAAU,GACZ,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1BoB,EAAQ,GACR,QAChB,KACgB,OAAO,EAEV,SAAU,CAAC,KAAK,QAAQ,KACvB,MAIN,OAAIA,GACFpB,EAAQ,KAAK,WAAWoB,EAAOK,EAAMD,CAAK,CAAC,EACvCxB,IAAU,GACLA,EAEF,IAEL,KAAK,SAAW,GACX,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACtH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,CAEJ,EAED,IAAK,UAAe,CAClB,IAAII,EAAI,KAAK,OACb,OAAIA,GAGK,KAAK,KAEf,EAED,MAAO,SAAesB,EAAW,CAC/B,KAAK,eAAe,KAAKA,CAAS,CACnC,EAED,SAAU,UAAoB,CAC5B,IAAIX,EAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,EAAI,EACC,KAAK,eAAe,MAEpB,KAAK,eAAe,CAAC,CAE/B,EAED,cAAe,UAAyB,CACtC,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EAC3E,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAErC,EAED,SAAU,SAAkBA,EAAG,CAE7B,OADAA,EAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,GAAK,CAAC,EAChDA,GAAK,EACA,KAAK,eAAeA,CAAC,EAErB,SAEV,EAED,UAAW,SAAmBW,EAAW,CACvC,KAAK,MAAMA,CAAS,CACrB,EAED,eAAgB,UAA0B,CACxC,OAAO,KAAK,eAAe,MAC5B,EACD,QAAS,CAAE,mBAAoB,EAAM,EACrC,cAAe,SAAmBhD,EAAIiD,EAAKC,EAA2BC,EAAU,CAC9E,OAAQD,EAAyB,CAC/B,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,QACT,IAAK,GACH,MAAO,IACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,KACV,CACF,EACD,MAAO,CAAC,eAAgB,kBAAmB,cAAe,mBAAoB,UAAW,SAAS,EAClG,WAAY,CAAE,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,UAAa,EAAI,CAAI,CACnF,EACI,OAAOjC,CACX,IACErB,EAAQ,MAAQqC,EAChB,SAASmB,GAAS,CAChB,KAAK,GAAK,EACX,CACD,OAAAA,EAAO,UAAYxD,EACnBA,EAAQ,OAASwD,EACV,IAAIA,CACb,IACA/D,EAAO,OAASA,EAChB,MAAMgE,EAAWhE,EACjB,IAAIiE,EAAU,GACVC,EAAO,GACX,MAAMC,EAAcC,GAAQ,CAC1BC,EAAI,MAAM,uBAAyBD,CAAG,EACtCH,EAAUG,CACZ,EACME,EAAa,IACVL,EAEHM,EAAWC,GAAQ,CACvBN,EAAOM,CACT,EACMC,EAAU,IACPP,EAEHQ,EAAK,CACT,WAAAP,EACA,WAAAG,EACA,QAAAC,EACA,QAAAE,EACA,MAAAE,CAEF,EACMC,EAAY,IAAM,GAClBC,EAASD,EACTE,EAAO,CAACC,EAAMC,EAAIC,IAAY,CAClC,GAAI,CACFZ,EAAI,MAAM;AAAA,EAA6BU,CAAI,EAC3C,MAAMG,EAAgBC,EAAW,EAAC,cAClC,IAAIC,EACAF,IAAkB,YACpBE,EAAiBC,EAAO,KAAOL,CAAE,GAGnC,MAAMM,GADOJ,IAAkB,UAAYG,EAAOD,EAAe,MAAK,EAAG,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAO,MAAM,GAChG,OAAO,IAAML,CAAE,EACtBM,EAAI,OAAO,GAAG,EACtB,OAAO,MAAM,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,IAAK,EAAE,EAAE,KAAK,QAAS,SAAS,EAAE,KAAK,YAAa,MAAM,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAK,KAAOL,CAAO,EACnJK,EAAI,KAAK,SAAU,GAAG,EACtBA,EAAI,KAAK,QAAS,GAAG,CACtB,OAAQC,EAAG,CACVlB,EAAI,MAAM,oCAAoC,EAC9CA,EAAI,MAAMkB,EAAE,OAAO,CACpB,CACH,EACMC,EAAW,CACf,KAAAV,CACF,EACMW,GAAU,CACd,OAAQzB,EACR,GAAAU,EACA,SAAAc,EACA,OAAAX,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js b/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js deleted file mode 100644 index 1a5900c..0000000 --- a/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js +++ /dev/null @@ -1,2 +0,0 @@ -function t(e,a){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(a).domain(e);break}return this}export{t as i}; -//# sourceMappingURL=init-Hi12RPRh.js.map diff --git a/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js.map b/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js.map deleted file mode 100644 index 22d9829..0000000 --- a/excalidraw/excalidraw-app/build/assets/init-Hi12RPRh.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"init-Hi12RPRh.js","sources":["../../../node_modules/d3-scale/src/init.js"],"sourcesContent":["export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n"],"names":["initRange","domain","range"],"mappings":"AAAO,SAASA,EAAUC,EAAQC,EAAO,CACvC,OAAQ,UAAU,OAAM,CACtB,IAAK,GAAG,MACR,IAAK,GAAG,KAAK,MAAMD,CAAM,EAAG,MAC5B,QAAS,KAAK,MAAMC,CAAK,EAAE,OAAOD,CAAM,EAAG,KAC5C,CACD,OAAO,IACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js b/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js deleted file mode 100644 index 9b8cf4d..0000000 --- a/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js +++ /dev/null @@ -1,141 +0,0 @@ -import{c as V,v as gt,x as mt,s as xt,g as _t,b as kt,a as vt,m as bt,z as wt,h as H,i as Tt}from"./index-jpNTxDe4.js";import{d as $t,f as St,a as Mt,g as ot}from"./svgDrawCommon-f26cad39-uSOEV6F1.js";import{a as it}from"./arc-uMvMTTPz.js";import"./index-2K3MavtT.js";import"./path-aUcfwwLI.js";var Z=function(){var t=function(_,r,a,h){for(a=a||{},h=_.length;h--;a[_[h]]=r);return a},e=[1,2],s=[1,5],n=[6,9,11,17,18,20,22,23,24,26],i=[1,15],l=[1,16],c=[1,17],y=[1,18],u=[1,19],x=[1,20],g=[1,24],f=[4,6,9,11,17,18,20,22,23,24,26],d={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(r,a,h,p,m,o,R){var k=o.length-1;switch(m){case 1:return o[k-1];case 3:this.$=[];break;case 4:o[k-1].push(o[k]),this.$=o[k-1];break;case 5:case 6:this.$=o[k];break;case 7:case 8:this.$=[];break;case 11:p.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 12:this.$=o[k].trim(),p.setAccTitle(this.$);break;case 13:case 14:this.$=o[k].trim(),p.setAccDescription(this.$);break;case 15:p.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 16:p.addTask(o[k-1],o[k]),this.$="task";break;case 18:p.parseDirective("%%{","open_directive");break;case 19:p.parseDirective(o[k],"type_directive");break;case 20:o[k]=o[k].trim().replace(/'/g,'"'),p.parseDirective(o[k],"arg_directive");break;case 21:p.parseDirective("}%%","close_directive","journey");break}},table:[{3:1,4:e,7:3,12:4,26:s},{1:[3]},t(n,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:s},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:i,18:l,20:c,22:y,23:u,24:x,26:s},{1:[2,2]},{14:22,15:[1,23],29:g},t([15,29],[2,19]),t(n,[2,8],{1:[2,1]}),t(n,[2,4]),{7:21,10:25,12:4,17:i,18:l,20:c,22:y,23:u,24:x,26:s},t(n,[2,6]),t(n,[2,7]),t(n,[2,11]),{19:[1,26]},{21:[1,27]},t(n,[2,14]),t(n,[2,15]),{25:[1,28]},t(n,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(n,[2,5]),t(n,[2,12]),t(n,[2,13]),t(n,[2,16]),t(f,[2,9]),{14:32,29:g},{29:[2,20]},{11:[1,33]},t(f,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(r,a){if(a.recoverable)this.trace(r);else{var h=new Error(r);throw h.hash=a,h}},parse:function(r){var a=this,h=[0],p=[],m=[null],o=[],R=this.table,k="",j=0,Q=0,yt=2,tt=1,dt=o.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var D in this.yy)Object.prototype.hasOwnProperty.call(this.yy,D)&&(I.yy[D]=this.yy[D]);b.setInput(r,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var W=b.yylloc;o.push(W);var pt=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(){var E;return E=p.pop()||b.lex()||tt,typeof E!="number"&&(E instanceof Array&&(p=E,E=p.pop()),E=a.symbols_[E]||E),E}for(var w,A,$,X,F={},Y,M,et,q;;){if(A=h[h.length-1],this.defaultActions[A]?$=this.defaultActions[A]:((w===null||typeof w>"u")&&(w=ft()),$=R[A]&&R[A][w]),typeof $>"u"||!$.length||!$[0]){var G="";q=[];for(Y in R[A])this.terminals_[Y]&&Y>yt&&q.push("'"+this.terminals_[Y]+"'");b.showPosition?G="Parse error on line "+(j+1)+`: -`+b.showPosition()+` -Expecting `+q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":G="Parse error on line "+(j+1)+": Unexpected "+(w==tt?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(G,{text:b.match,token:this.terminals_[w]||w,line:b.yylineno,loc:W,expected:q})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+w);switch($[0]){case 1:h.push(w),m.push(b.yytext),o.push(b.yylloc),h.push($[1]),w=null,Q=b.yyleng,k=b.yytext,j=b.yylineno,W=b.yylloc;break;case 2:if(M=this.productions_[$[1]][1],F.$=m[m.length-M],F._$={first_line:o[o.length-(M||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(M||1)].first_column,last_column:o[o.length-1].last_column},pt&&(F._$.range=[o[o.length-(M||1)].range[0],o[o.length-1].range[1]]),X=this.performAction.apply(F,[k,Q,j,I.yy,$[1],m,o].concat(dt)),typeof X<"u")return X;M&&(h=h.slice(0,-1*M*2),m=m.slice(0,-1*M),o=o.slice(0,-1*M)),h.push(this.productions_[$[1]][0]),m.push(F.$),o.push(F._$),et=R[h[h.length-2]][h[h.length-1]],h.push(et);break;case 3:return!0}}return!0}},T=function(){var _={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(r,a){return this.yy=a||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},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var a=r.length,h=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;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),h.length-1&&(this.yylineno-=h.length-1);var m=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:h?(h.length===p.length?this.yylloc.first_column:0)+p[p.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` -`+a+"^"},test_match:function(r,a){var h,p,m;if(this.options.backtrack_lexer&&(m={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&&(m.yylloc.range=this.yylloc.range.slice(0))),p=r[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+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],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var o in m)this[o]=m[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,a,h,p;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),o=0;oa[0].length)){if(a=h,p=o,this.options.backtrack_lexer){if(r=this.test_match(h,m[o]),r!==!1)return r;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(r=this.test_match(a,m[p]),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})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(a,h,p,m){switch(p){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};return _}();d.lexer=T;function v(){this.yy={}}return v.prototype=d,d.Parser=v,new v}();Z.parser=Z;const Et=Z;let L="";const J=[],N=[],B=[],Pt=function(t,e,s){bt.parseDirective(this,t,e,s)},It=function(){J.length=0,N.length=0,L="",B.length=0,wt()},At=function(t){L=t,J.push(t)},Ct=function(){return J},Vt=function(){let t=st();const e=100;let s=0;for(;!t&&s{s.people&&t.push(...s.people)}),[...new Set(t)].sort()},Lt=function(t,e){const s=e.substr(1).split(":");let n=0,i=[];s.length===1?(n=Number(s[0]),i=[]):(n=Number(s[0]),i=s[1].split(","));const l=i.map(y=>y.trim()),c={section:L,type:L,people:l,task:t,score:n};B.push(c)},Rt=function(t){const e={section:L,type:L,description:t,task:t,classes:[]};N.push(e)},st=function(){const t=function(s){return B[s].processed};let e=!0;for(const[s,n]of B.entries())t(s),e=e&&n.processed;return e},Nt=function(){return Ft()},rt={parseDirective:Pt,getConfig:()=>V().journey,clear:It,setDiagramTitle:gt,getDiagramTitle:mt,setAccTitle:xt,getAccTitle:_t,setAccDescription:kt,getAccDescription:vt,addSection:At,getSections:Ct,getTasks:Vt,addTask:Lt,addTaskOrg:Rt,getActors:Nt},Bt=t=>`.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - color: ${t.textColor}; - } - .mouth { - stroke: #666; - } - - line { - stroke: ${t.textColor} - } - - .legend { - fill: ${t.textColor}; - } - - .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: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - 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}`:""}; - } -`,zt=Bt,K=function(t,e){return $t(t,e)},jt=function(t,e){const 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 l(u){const x=it().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",x).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function c(u){const x=it().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",x).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function y(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 e.score>3?l(i):e.score<3?c(i):y(i),n},lt=function(t,e){const s=t.append("circle");return s.attr("cx",e.cx),s.attr("cy",e.cy),s.attr("class","actor-"+e.pos),s.attr("fill",e.fill),s.attr("stroke",e.stroke),s.attr("r",e.r),s.class!==void 0&&s.attr("class",s.class),e.title!==void 0&&s.append("title").text(e.title),s},ht=function(t,e){return St(t,e)},Yt=function(t,e){function s(i,l,c,y,u){return i+","+l+" "+(i+c)+","+l+" "+(i+c)+","+(l+y-u)+" "+(i+c-u*1.2)+","+(l+y)+" "+i+","+(l+y)}const n=t.append("polygon");n.attr("points",s(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,ht(t,e)},qt=function(t,e,s){const n=t.append("g"),i=ot();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=s.width*e.taskCount+s.diagramMarginX*(e.taskCount-1),i.height=s.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,K(n,i),ut(s)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},s,e.colour)};let nt=-1;const Ot=function(t,e,s){const n=e.x+s.width/2,i=t.append("g");nt++;const l=300+5*30;i.append("line").attr("id","task"+nt).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",l).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),jt(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});const c=ot();c.x=e.x,c.y=e.y,c.fill=e.fill,c.width=s.width,c.height=s.height,c.class="task task-type-"+e.num,c.rx=3,c.ry=3,K(i,c);let y=e.x+14;e.people.forEach(u=>{const x=e.actors[u].color,g={cx:y,cy:e.y,r:7,fill:x,stroke:"#000",title:u,pos:e.actors[u].position};lt(i,g),y+=10}),ut(s)(e.task,i,c.x,c.y,c.width,c.height,{class:"task"},s,e.colour)},Dt=function(t,e){Mt(t,e)},ut=function(){function t(i,l,c,y,u,x,g,f){const d=l.append("text").attr("x",c+u/2).attr("y",y+x/2+5).style("font-color",f).style("text-anchor","middle").text(i);n(d,g)}function e(i,l,c,y,u,x,g,f,d){const{taskFontSize:T,taskFontFamily:v}=f,_=i.split(//gi);for(let r=0;r<_.length;r++){const a=r*T-T*(_.length-1)/2,h=l.append("text").attr("x",c+u/2).attr("y",y).attr("fill",d).style("text-anchor","middle").style("font-size",T).style("font-family",v);h.append("tspan").attr("x",c+u/2).attr("dy",a).text(_[r]),h.attr("y",y+x/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),n(h,g)}}function s(i,l,c,y,u,x,g,f){const d=l.append("switch"),v=d.append("foreignObject").attr("x",c).attr("y",y).attr("width",u).attr("height",x).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");v.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,d,c,y,u,x,g,f),n(v,g)}function n(i,l){for(const c in l)c in l&&i.attr(c,l[c])}return function(i){return i.textPlacement==="fo"?s:i.textPlacement==="old"?t:e}}(),Wt=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},z={drawRect:K,drawCircle:lt,drawSection:qt,drawText:ht,drawLabel:Yt,drawTask:Ot,drawBackgroundRect:Dt,initGraphics:Wt},Xt=function(t){Object.keys(t).forEach(function(s){O[s]=t[s]})},P={};function Gt(t){const e=V().journey;let s=60;Object.keys(P).forEach(n=>{const i=P[n].color,l={cx:20,cy:s,r:7,fill:i,stroke:"#000",pos:P[n].position};z.drawCircle(t,l);const c={x:40,y:s+7,fill:"#666",text:n,textMargin:e.boxTextMargin|5};z.drawText(t,c),s+=20})}const O=V().journey,C=O.leftMargin,Ht=function(t,e,s,n){const i=V().journey;n.db.clear(),n.parser.parse(t+` -`);const l=V().securityLevel;let c;l==="sandbox"&&(c=H("#i"+e));const y=l==="sandbox"?H(c.nodes()[0].contentDocument.body):H("body");S.init();const u=y.select("#"+e);z.initGraphics(u);const x=n.db.getTasks(),g=n.db.getDiagramTitle(),f=n.db.getActors();for(const a in P)delete P[a];let d=0;f.forEach(a=>{P[a]={color:i.actorColours[d%i.actorColours.length],position:d},d++}),Gt(u),S.insert(0,0,C,Object.keys(P).length*50),Ut(u,x,0);const T=S.getBounds();g&&u.append("text").text(g).attr("x",C).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const v=T.stopy-T.starty+2*i.diagramMarginY,_=C+T.stopx+2*i.diagramMarginX;Tt(u,v,_,i.useMaxWidth),u.append("line").attr("x1",C).attr("y1",i.height*4).attr("x2",_-C-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const r=g?70:0;u.attr("viewBox",`${T.startx} -25 ${_} ${v+r}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",v+r+25)},S={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,s,n){t[e]===void 0?t[e]=s:t[e]=n(s,t[e])},updateBounds:function(t,e,s,n){const i=V().journey,l=this;let c=0;function y(u){return function(g){c++;const f=l.sequenceItems.length-c+1;l.updateVal(g,"starty",e-f*i.boxMargin,Math.min),l.updateVal(g,"stopy",n+f*i.boxMargin,Math.max),l.updateVal(S.data,"startx",t-f*i.boxMargin,Math.min),l.updateVal(S.data,"stopx",s+f*i.boxMargin,Math.max),u!=="activation"&&(l.updateVal(g,"startx",t-f*i.boxMargin,Math.min),l.updateVal(g,"stopx",s+f*i.boxMargin,Math.max),l.updateVal(S.data,"starty",e-f*i.boxMargin,Math.min),l.updateVal(S.data,"stopy",n+f*i.boxMargin,Math.max))}}this.sequenceItems.forEach(y())},insert:function(t,e,s,n){const i=Math.min(t,s),l=Math.max(t,s),c=Math.min(e,n),y=Math.max(e,n);this.updateVal(S.data,"startx",i,Math.min),this.updateVal(S.data,"starty",c,Math.min),this.updateVal(S.data,"stopx",l,Math.max),this.updateVal(S.data,"stopy",y,Math.max),this.updateBounds(i,c,l,y)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},U=O.sectionFills,at=O.sectionColours,Ut=function(t,e,s){const n=V().journey;let i="";const l=n.height*2+n.diagramMarginY,c=s+l;let y=0,u="#CCC",x="black",g=0;for(const[f,d]of e.entries()){if(i!==d.section){u=U[y%U.length],g=y%U.length,x=at[y%at.length];let v=0;const _=d.section;for(let a=f;a(P[_]&&(v[_]=P[_]),v),{});d.x=f*n.taskMargin+f*n.width+C,d.y=c,d.width=n.diagramMarginX,d.height=n.diagramMarginY,d.colour=x,d.fill=u,d.num=g,d.actors=T,z.drawTask(t,d,n),S.insert(d.x,d.y,d.x+d.width+n.taskMargin,300+5*30)}},ct={setConf:Xt,draw:Ht},ee={parser:Et,db:rt,renderer:ct,styles:zt,init:t=>{ct.setConf(t.journey),rt.clear()}};export{ee as diagram}; -//# sourceMappingURL=journeyDiagram-31be0096-pp8z6RK0.js.map diff --git a/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js.map b/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js.map deleted file mode 100644 index 8fb90e7..0000000 --- a/excalidraw/excalidraw-app/build/assets/journeyDiagram-31be0096-pp8z6RK0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"journeyDiagram-31be0096-pp8z6RK0.js","sources":["../../../node_modules/mermaid/dist/journeyDiagram-31be0096.js"],"sourcesContent":["import { c as getConfig, r as setDiagramTitle, t as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, m as mermaidAPI, v as clear$1, i as configureSvgSize } from \"./mermaid-b0ad2de1.js\";\nimport { arc, select } from \"d3\";\nimport { d as drawRect$1, f as drawText$1, a as drawBackgroundRect$1, g as getNoteRect } from \"./svgDrawCommon-f26cad39.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 24], $Va = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"journey\": 4, \"document\": 5, \"EOF\": 6, \"directive\": 7, \"line\": 8, \"SPACE\": 9, \"statement\": 10, \"NEWLINE\": 11, \"openDirective\": 12, \"typeDirective\": 13, \"closeDirective\": 14, \":\": 15, \"argDirective\": 16, \"title\": 17, \"acc_title\": 18, \"acc_title_value\": 19, \"acc_descr\": 20, \"acc_descr_value\": 21, \"acc_descr_multiline_value\": 22, \"section\": 23, \"taskName\": 24, \"taskData\": 25, \"open_directive\": 26, \"type_directive\": 27, \"arg_directive\": 28, \"close_directive\": 29, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"journey\", 6: \"EOF\", 9: \"SPACE\", 11: \"NEWLINE\", 15: \":\", 17: \"title\", 18: \"acc_title\", 19: \"acc_title_value\", 20: \"acc_descr\", 21: \"acc_descr_value\", 22: \"acc_descr_multiline_value\", 23: \"section\", 24: \"taskName\", 25: \"taskData\", 26: \"open_directive\", 27: \"type_directive\", 28: \"arg_directive\", 29: \"close_directive\" },\n productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 3:\n this.$ = [];\n break;\n case 4:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 5:\n case 6:\n this.$ = $$[$0];\n break;\n case 7:\n case 8:\n this.$ = [];\n break;\n case 11:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 12:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 13:\n case 14:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 15:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 16:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 18:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 19:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 20:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 21:\n yy.parseDirective(\"}%%\", \"close_directive\", \"journey\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: $V9 }, o([15, 29], [2, 19]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, o($V2, [2, 14]), o($V2, [2, 15]), { 25: [1, 28] }, o($V2, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 16]), o($Va, [2, 9]), { 14: 32, 29: $V9 }, { 29: [2, 20] }, { 11: [1, 33] }, o($Va, [2, 10])],\n defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 26;\n case 1:\n this.begin(\"type_directive\");\n return 27;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 15;\n case 3:\n this.popState();\n this.popState();\n return 29;\n case 4:\n return 28;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 11;\n case 8:\n break;\n case 9:\n break;\n case 10:\n return 4;\n case 11:\n return 17;\n case 12:\n this.begin(\"acc_title\");\n return 18;\n case 13:\n this.popState();\n return \"acc_title_value\";\n case 14:\n this.begin(\"acc_descr\");\n return 20;\n case 15:\n this.popState();\n return \"acc_descr_value\";\n case 16:\n this.begin(\"acc_descr_multiline\");\n break;\n case 17:\n this.popState();\n break;\n case 18:\n return \"acc_descr_multiline_value\";\n case 19:\n return 23;\n case 20:\n return 24;\n case 21:\n return 25;\n case 22:\n return 15;\n case 23:\n return 6;\n case 24:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:%(?!\\{)[^\\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],\n conditions: { \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [17, 18], \"inclusive\": false }, \"acc_descr\": { \"rules\": [15], \"inclusive\": false }, \"acc_title\": { \"rules\": [13], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst updateActors = function() {\n const tempActors = [];\n tasks.forEach((task) => {\n if (task.people) {\n tempActors.push(...task.people);\n }\n });\n const unique = new Set(tempActors);\n return [...unique].sort();\n};\nconst addTask = function(descr, taskData) {\n const pieces = taskData.substr(1).split(\":\");\n let score = 0;\n let peeps = [];\n if (pieces.length === 1) {\n score = Number(pieces[0]);\n peeps = [];\n } else {\n score = Number(pieces[0]);\n peeps = pieces[1].split(\",\");\n }\n const peopleList = peeps.map((s) => s.trim());\n const rawTask = {\n section: currentSection,\n type: currentSection,\n people: peopleList,\n task: descr,\n score\n };\n rawTasks.push(rawTask);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst getActors = function() {\n return updateActors();\n};\nconst db = {\n parseDirective,\n getConfig: () => getConfig().journey,\n clear,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n getActors\n};\nconst getStyles = (options) => `.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor ? `fill: ${options.faceColor}` : \"fill: #FFF8DC\"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${options.fillType0 ? `fill: ${options.fillType0}` : \"\"};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0 ? `fill: ${options.fillType1}` : \"\"};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0 ? `fill: ${options.fillType2}` : \"\"};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0 ? `fill: ${options.fillType3}` : \"\"};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0 ? `fill: ${options.fillType4}` : \"\"};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0 ? `fill: ${options.fillType5}` : \"\"};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0 ? `fill: ${options.fillType6}` : \"\"};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0 ? `fill: ${options.fillType7}` : \"\"};\n }\n\n .actor-0 {\n ${options.actor0 ? `fill: ${options.actor0}` : \"\"};\n }\n .actor-1 {\n ${options.actor1 ? `fill: ${options.actor1}` : \"\"};\n }\n .actor-2 {\n ${options.actor2 ? `fill: ${options.actor2}` : \"\"};\n }\n .actor-3 {\n ${options.actor3 ? `fill: ${options.actor3}` : \"\"};\n }\n .actor-4 {\n ${options.actor4 ? `fill: ${options.actor4}` : \"\"};\n }\n .actor-5 {\n ${options.actor5 ? `fill: ${options.actor5}` : \"\"};\n }\n`;\nconst styles = getStyles;\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n return drawText$1(elem, textData);\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf2) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf2.width * section.taskCount + // width of the tasks\n conf2.diagramMarginX * (section.taskCount - 1);\n rect.height = conf2.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf2)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf2,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf2) {\n const center = task.x + conf2.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf2.width;\n rect.height = conf2.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n let xPos = task.x + 14;\n task.people.forEach((person) => {\n const colour = task.actors[person].color;\n const circle = {\n cx: xPos,\n cy: task.y,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n title: person,\n pos: task.actors[person].position\n };\n drawCircle(g, circle);\n xPos += 10;\n });\n _drawTextCandidateFunc(conf2)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf2,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {\n const { taskFontSize, taskFontFamily } = conf2;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n initGraphics\n};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n keys.forEach(function(key) {\n conf[key] = cnf[key];\n });\n};\nconst actors = {};\nfunction drawActorLegend(diagram2) {\n const conf2 = getConfig().journey;\n let yPos = 60;\n Object.keys(actors).forEach((person) => {\n const colour = actors[person].color;\n const circleData = {\n cx: 20,\n cy: yPos,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n pos: actors[person].position\n };\n svgDraw.drawCircle(diagram2, circleData);\n const labelData = {\n x: 40,\n y: yPos + 7,\n fill: \"#666\",\n text: person,\n textMargin: conf2.boxTextMargin | 5\n };\n svgDraw.drawText(diagram2, labelData);\n yPos += 20;\n });\n}\nconst conf = getConfig().journey;\nconst LEFT_MARGIN = conf.leftMargin;\nconst draw = function(text, id, version, diagObj) {\n const conf2 = getConfig().journey;\n diagObj.db.clear();\n diagObj.parser.parse(text + \"\\n\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n bounds.init();\n const diagram2 = root.select(\"#\" + id);\n svgDraw.initGraphics(diagram2);\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getDiagramTitle();\n const actorNames = diagObj.db.getActors();\n for (const member in actors) {\n delete actors[member];\n }\n let actorPos = 0;\n actorNames.forEach((actorName) => {\n actors[actorName] = {\n color: conf2.actorColours[actorPos % conf2.actorColours.length],\n position: actorPos\n };\n actorPos++;\n });\n drawActorLegend(diagram2);\n bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);\n drawTasks(diagram2, tasks2, 0);\n const box = bounds.getBounds();\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 25);\n }\n const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;\n const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;\n configureSvgSize(diagram2, height, width, conf2.useMaxWidth);\n diagram2.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", conf2.height * 4).attr(\"x2\", width - LEFT_MARGIN - 4).attr(\"y2\", conf2.height * 4).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n const extraVertForTitle = title ? 70 : 0;\n diagram2.attr(\"viewBox\", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);\n diagram2.attr(\"preserveAspectRatio\", \"xMinYMin meet\");\n diagram2.attr(\"height\", height + extraVertForTitle + 25);\n};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n init: function() {\n this.sequenceItems = [];\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const conf2 = getConfig().journey;\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = Math.min(startx, stopx);\n const _stopx = Math.max(startx, stopx);\n const _starty = Math.min(starty, stopy);\n const _stopy = Math.max(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = this.verticalPos;\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return this.data;\n }\n};\nconst fills = conf.sectionFills;\nconst textColours = conf.sectionColours;\nconst drawTasks = function(diagram2, tasks2, verticalPos) {\n const conf2 = getConfig().journey;\n let lastSection = \"\";\n const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;\n const taskPos = verticalPos + sectionVHeight;\n let sectionNumber = 0;\n let fill = \"#CCC\";\n let colour = \"black\";\n let num = 0;\n for (const [i, task] of tasks2.entries()) {\n if (lastSection !== task.section) {\n fill = fills[sectionNumber % fills.length];\n num = sectionNumber % fills.length;\n colour = textColours[sectionNumber % textColours.length];\n let taskInSectionCount = 0;\n const currentSection2 = task.section;\n for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {\n if (tasks2[taskIndex].section == currentSection2) {\n taskInSectionCount = taskInSectionCount + 1;\n } else {\n break;\n }\n }\n const section = {\n x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,\n y: 50,\n text: task.section,\n fill,\n num,\n colour,\n taskCount: taskInSectionCount\n };\n svgDraw.drawSection(diagram2, section, conf2);\n lastSection = task.section;\n sectionNumber++;\n }\n const taskActors = task.people.reduce((acc, actorName) => {\n if (actors[actorName]) {\n acc[actorName] = actors[actorName];\n }\n return acc;\n }, {});\n task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;\n task.y = taskPos;\n task.width = conf2.diagramMarginX;\n task.height = conf2.diagramMarginY;\n task.colour = colour;\n task.fill = fill;\n task.num = num;\n task.actors = taskActors;\n svgDraw.drawTask(diagram2, task, conf2);\n bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);\n }\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: (cnf) => {\n renderer.setConf(cnf.journey);\n db.clear();\n }\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","currentSection","sections","tasks","rawTasks","parseDirective","statement","context","type","mermaidAPI","clear","clear$1","addSection","txt","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","updateActors","tempActors","task","addTask","descr","taskData","pieces","score","peeps","peopleList","s","rawTask","addTaskOrg","newTask","compileTask","pos","allProcessed","getActors","db","getConfig","setDiagramTitle","getDiagramTitle","setAccTitle","getAccTitle","setAccDescription","getAccDescription","getStyles","options","styles","drawRect","elem","rectData","drawRect$1","drawFace","element","faceData","circleElement","face","smile","face2","arc$1","arc","sad","ambivalent","drawCircle","circleData","drawText","textData","drawText$1","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf2","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","center","maxHeight","xPos","person","colour","circle","drawBackgroundRect","bounds2","drawBackgroundRect$1","byText","content","textAttrs","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","svgDraw","setConf","cnf","conf","actors","drawActorLegend","diagram2","yPos","labelData","LEFT_MARGIN","draw","id","version","diagObj","securityLevel","sandboxElement","select","root","bounds","tasks2","title","actorNames","member","actorPos","actorName","drawTasks","box","configureSvgSize","extraVertForTitle","obj","val","fun","startx","starty","stopx","stopy","_self","cnt","updateFn","item","_startx","_stopx","_starty","_stopy","bump","fills","textColours","verticalPos","lastSection","sectionVHeight","taskPos","sectionNumber","fill","num","taskInSectionCount","currentSection2","taskIndex","taskActors","acc","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/layout-ewywu0M6.js b/excalidraw/excalidraw-app/build/assets/layout-ewywu0M6.js deleted file mode 100644 index 310cb50..0000000 --- a/excalidraw/excalidraw-app/build/assets/layout-ewywu0M6.js +++ /dev/null @@ -1,2 +0,0 @@ -import{A as M,B as He,S as C,C as _,D as L,E as Fr,F as nn,G as D,H as X,I as Z,J as Un,K as Dr,L as ke,M as Gr,N as Br,O as Yn,P as Ur,Q as qe,R as Hn,T as V,U as cn,V as kn,W as Yr,X as Mn,Y as Ln,Z as se}from"./index-jpNTxDe4.js";var Hr="[object Symbol]";function R(n){return typeof n=="symbol"||M(n)&&He(n)==Hr}function H(n,e){for(var r=-1,t=n==null?0:n.length,i=Array(t);++r0){if(++e>=at)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}function Y(n){return function(){return n}}var ft=function(){try{var n=Fr(Object,"defineProperty");return n({},"",{}),n}catch{}}();const ln=ft;var dt=ln?function(n,e){return ln(n,"toString",{configurable:!0,enumerable:!1,value:Y(e),writable:!0})}:G;const ct=dt;var lt=st(ct);const Xe=lt;function Ze(n,e){for(var r=-1,t=n==null?0:n.length;++r-1}var bt=9007199254740991,wt=/^(?:0|[1-9]\d*)$/;function pn(n,e){var r=typeof n;return e=e??bt,!!e&&(r=="number"||r!="symbol"&&wt.test(n))&&n>-1&&n%1==0&&n1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=n.length>3&&typeof a=="function"?(i--,a):void 0,o&&J(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),e=Object(e);++t0&&r(u)?e>1?yn(u,e-1,r,t,i):Kn(i,u):t||(i[i.length]=u)}return i}function q(n){var e=n==null?0:n.length;return e?yn(n,1):[]}function Ut(n){return Xe(Je(n,void 0,q),n+"")}var Yt=Br(Object.getPrototypeOf,Object);const Wn=Yt;var Ht="[object Object]",kt=Function.prototype,qt=Object.prototype,je=kt.toString,Kt=qt.hasOwnProperty,Wt=je.call(Object);function Xt(n){if(!M(n)||He(n)!=Ht)return!1;var e=Wn(n);if(e===null)return!0;var r=Kt.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&je.call(r)==Wt}function Zt(n,e,r,t){var i=-1,a=n==null?0:n.length;for(t&&a&&(r=n[++i]);++iu))return!1;var f=a.get(n),d=a.get(e);if(f&&d)return f==e&&d==n;var l=-1,h=!0,g=r&Pa?new z:void 0;for(a.set(n,e),a.set(e,n);++l2?e[2]:void 0;for(i&&J(e[0],e[1],i)&&(t=1);++r-1?i[a?e[o]:o]:void 0}}var xo=Math.max;function To(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:nt(r);return i<0&&(i=xo(t+i,0)),Ve(n,$(e),i)}var Oo=yo(To);const ne=Oo;function _r(n,e){var r=-1,t=D(n)?Array(n.length):[];return xn(n,function(i,a,o){t[++r]=e(i,a,o)}),t}function y(n,e){var r=_(n)?H:_r;return r(n,$(e))}function Lo(n,e){return n==null?n:zn(n,jn(e),B)}function Ao(n,e){return n&&Qn(n,jn(e))}function Po(n,e){return n>e}var No=Object.prototype,Co=No.hasOwnProperty;function $o(n,e){return n!=null&&Co.call(n,e)}function b(n,e){return n!=null&&gr(n,e,$o)}function Io(n,e){return H(e,function(r){return n[r]})}function N(n){return n==null?[]:Io(n,T(n))}function x(n){return n===void 0}function Er(n,e){return ne||a&&o&&s&&!u&&!f||t&&o&&s||!r&&s||!i)return 1;if(!t&&!a&&!f&&n=u)return s;var f=r[t];return s*(f=="desc"?-1:1)}}return n.index-e.index}function Bo(n,e,r){e.length?e=H(e,function(a){return _(a)?function(o){return En(o,a.length===1?a[0]:a)}:a}):e=[G];var t=-1;e=H(e,kn($));var i=_r(n,function(a,o,u){var s=H(e,function(f){return f(a)});return{criteria:s,index:++t,value:a}});return Fo(i,function(a,o){return Go(a,o,r)})}function Uo(n,e){return Ro(n,e,function(r,t){return pr(n,t)})}var Yo=Ut(function(n,e){return n==null?{}:Uo(n,e)});const gn=Yo;var Ho=Math.ceil,ko=Math.max;function qo(n,e,r,t){for(var i=-1,a=ko(Ho((e-n)/(r||1)),0),o=Array(a);a--;)o[t?a:++i]=n,n+=r;return o}function Ko(n){return function(e,r,t){return t&&typeof t!="number"&&J(e,r,t)&&(r=t=void 0),e=fn(e),r===void 0?(r=e,e=0):r=fn(r),t=t===void 0?e1&&J(n,e[0],e[1])?e=[]:r>2&&J(e[0],e[1],e[2])&&(e=[e[0]]),Bo(n,yn(e,1),[])});const an=Zo;var Vo=1/0,Jo=Ln&&1/Vn(new Ln([,-0]))[1]==Vo?function(n){return new Ln(n)}:it;const zo=Jo;var Qo=200;function jo(n,e,r){var t=-1,i=pt,a=n.length,o=!0,u=[],s=u;if(r)o=!1,i=_o;else if(a>=Qo){var f=e?null:zo(n);if(f)return Vn(f);o=!1,i=cr,s=new z}else s=e?[]:u;n:for(;++t1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return b(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]=S,this._children[e]={},this._children[S][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 b(this._nodes,e)}removeNode(e){var r=this;if(b(this._nodes,e)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],c(this.children(e),function(i){r.setParent(i)}),delete this._children[e]),c(T(this._in[e]),t),delete this._in[e],delete this._preds[e],c(T(this._out[e]),t),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(x(r))r=S;else{r+="";for(var t=r;!x(t);t=this.parent(t))if(t===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!==S)return r}}children(e){if(x(e)&&(e=S),this._isCompound){var r=this._children[e];if(r)return T(r)}else{if(e===S)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return T(r)}successors(e){var r=this._sucs[e];if(r)return T(r)}neighbors(e){var r=this.predecessors(e);if(r)return eu(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 t=this;c(this._nodes,function(o,u){e(u)&&r.setNode(u,o)}),c(this._edgeObjs,function(o){r.hasNode(o.v)&&r.hasNode(o.w)&&r.setEdge(o,t.edge(o))});var i={};function a(o){var u=t.parent(o);return u===void 0||r.hasNode(u)?(i[o]=u,u):u in i?i[u]:a(u)}return this._isCompound&&c(r.nodes(),function(o){r.setParent(o,a(o))}),r}setDefaultEdgeLabel(e){return Mn(e)||(e=Y(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return N(this._edgeObjs)}setPath(e,r){var t=this,i=arguments;return tn(e,function(a,o){return i.length>1?t.setEdge(a,o,r):t.setEdge(a,o),o}),this}setEdge(){var e,r,t,i,a=!1,o=arguments[0];typeof o=="object"&&o!==null&&"v"in o?(e=o.v,r=o.w,t=o.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=o,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,x(t)||(t=""+t);var u=W(this._isDirected,e,r,t);if(b(this._edgeLabels,u))return a&&(this._edgeLabels[u]=i),this;if(!x(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[u]=a?i:this._defaultEdgeLabelFn(e,r,t);var s=ou(this._isDirected,e,r,t);return e=s.v,r=s.w,Object.freeze(s),this._edgeObjs[u]=s,Ce(this._preds[r],e),Ce(this._sucs[e],r),this._in[r][u]=s,this._out[e][u]=s,this._edgeCount++,this}edge(e,r,t){var i=arguments.length===1?Pn(this._isDirected,arguments[0]):W(this._isDirected,e,r,t);return this._edgeLabels[i]}hasEdge(e,r,t){var i=arguments.length===1?Pn(this._isDirected,arguments[0]):W(this._isDirected,e,r,t);return b(this._edgeLabels,i)}removeEdge(e,r,t){var i=arguments.length===1?Pn(this._isDirected,arguments[0]):W(this._isDirected,e,r,t),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],$e(this._preds[r],e),$e(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var t=this._in[e];if(t){var i=N(t);return r?P(i,function(a){return a.v===r}):i}}outEdges(e,r){var t=this._out[e];if(t){var i=N(t);return r?P(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var t=this.inEdges(e,r);if(t)return t.concat(this.outEdges(e,r))}}A.prototype._nodeCount=0;A.prototype._edgeCount=0;function Ce(n,e){n[e]?n[e]++:n[e]=1}function $e(n,e){--n[e]||delete n[e]}function W(n,e,r,t){var i=""+e,a=""+r;if(!n&&i>a){var o=i;i=a,a=o}return i+Ne+a+Ne+(x(t)?au:t)}function ou(n,e,r,t){var i=""+e,a=""+r;if(!n&&i>a){var o=i;i=a,a=o}var u={v:i,w:a};return t&&(u.name=t),u}function Pn(n,e){return W(n,e.v,e.w,e.name)}class uu{constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return Ie(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&Ie(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,t=r._prev;t!==r;)e.push(JSON.stringify(t,su)),t=t._prev;return"["+e.join(", ")+"]"}}function Ie(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function su(n,e){if(n!=="_next"&&n!=="_prev")return e}var fu=Y(1);function du(n,e){if(n.nodeCount()<=1)return[];var r=lu(n,e||fu),t=cu(r.graph,r.buckets,r.zeroIdx);return q(y(t,function(i){return n.outEdges(i.v,i.w)}))}function cu(n,e,r){for(var t=[],i=e[e.length-1],a=e[0],o;n.nodeCount();){for(;o=a.dequeue();)Nn(n,e,r,o);for(;o=i.dequeue();)Nn(n,e,r,o);if(n.nodeCount()){for(var u=e.length-2;u>0;--u)if(o=e[u].dequeue(),o){t=t.concat(Nn(n,e,r,o,!0));break}}}return t}function Nn(n,e,r,t,i){var a=i?[]:void 0;return c(n.inEdges(t.v),function(o){var u=n.edge(o),s=n.node(o.v);i&&a.push({v:o.v,w:o.w}),s.out-=u,Bn(e,r,s)}),c(n.outEdges(t.v),function(o){var u=n.edge(o),s=o.w,f=n.node(s);f.in-=u,Bn(e,r,f)}),n.removeNode(t.v),a}function lu(n,e){var r=new A,t=0,i=0;c(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),c(n.edges(),function(u){var s=r.edge(u.v,u.w)||0,f=e(u),d=s+f;r.setEdge(u.v,u.w,d),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var a=k(i+t+3).map(function(){return new uu}),o=t+1;return c(r.nodes(),function(u){Bn(a,o,r.node(u))}),{graph:r,buckets:a,zeroIdx:o}}function Bn(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function hu(n){var e=n.graph().acyclicer==="greedy"?du(n,r(n)):vu(n);c(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,te("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function vu(n){var e=[],r={},t={};function i(a){b(t,a)||(t[a]=!0,r[a]=!0,c(n.outEdges(a),function(o){b(r,o.w)?e.push(o):i(o.w)}),delete r[a])}return c(n.nodes(),i),e}function gu(n){c(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function K(n,e,r,t){var i;do i=te(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function pu(n){var e=new A().setGraph(n.graph());return c(n.nodes(),function(r){e.setNode(r,n.node(r))}),c(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function yr(n){var e=new A({multigraph:n.isMultigraph()}).setGraph(n.graph());return c(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),c(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function Se(n,e){var r=n.x,t=n.y,i=e.x-r,a=e.y-t,o=n.width/2,u=n.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var s,f;return Math.abs(a)*o>Math.abs(i)*u?(a<0&&(u=-u),s=u*i/a,f=u):(i<0&&(o=-o),s=o,f=o*a/i),{x:r+s,y:t+f}}function On(n){var e=y(k(xr(n)+1),function(){return[]});return c(n.nodes(),function(r){var t=n.node(r),i=t.rank;x(i)||(e[i][t.order]=r)}),e}function bu(n){var e=Q(y(n.nodes(),function(r){return n.node(r).rank}));c(n.nodes(),function(r){var t=n.node(r);b(t,"rank")&&(t.rank-=e)})}function wu(n){var e=Q(y(n.nodes(),function(a){return n.node(a).rank})),r=[];c(n.nodes(),function(a){var o=n.node(a).rank-e;r[o]||(r[o]=[]),r[o].push(a)});var t=0,i=n.graph().nodeRankFactor;c(r,function(a,o){x(a)&&o%i!==0?--t:t&&c(a,function(u){n.node(u).rank+=t})})}function Me(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),K(n,"border",i,e)}function xr(n){return F(y(n.nodes(),function(e){var r=n.node(e).rank;if(!x(r))return r}))}function mu(n,e){var r={lhs:[],rhs:[]};return c(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function _u(n,e){var r=Pe();try{return e()}finally{console.log(n+" time: "+(Pe()-r)+"ms")}}function Eu(n,e){return e()}function yu(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&c(t,e),b(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,o=i.maxRank+1;ao.lim&&(u=o,s=!0);var f=P(e.edges(),function(d){return s===De(n,n.node(d.v),u)&&s!==De(n,n.node(d.w),u)});return re(f,function(d){return j(e,d)})}function Ir(n,e,r,t){var i=r.v,a=r.w;n.removeEdge(i,a),n.setEdge(t.v,t.w,{}),oe(n),ae(n,e),Du(n,e)}function Du(n,e){var r=ne(n.nodes(),function(i){return!e.node(i).parent}),t=Ru(n,r);t=t.slice(1),c(t,function(i){var a=n.node(i).parent,o=e.edge(i,a),u=!1;o||(o=e.edge(a,i),u=!0),e.node(i).rank=e.node(a).rank+(u?o.minlen:-o.minlen)})}function Gu(n,e,r){return n.hasEdge(e,r)}function De(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function Bu(n){switch(n.graph().ranker){case"network-simplex":Ge(n);break;case"tight-tree":Yu(n);break;case"longest-path":Uu(n);break;default:Ge(n)}}var Uu=ie;function Yu(n){ie(n),Or(n)}function Ge(n){U(n)}function Hu(n){var e=K(n,"root",{},"_root"),r=ku(n),t=F(N(r))-1,i=2*t+1;n.graph().nestingRoot=e,c(n.edges(),function(o){n.edge(o).minlen*=i});var a=qu(n)+1;c(n.children(),function(o){Sr(n,e,i,a,t,r,o)}),n.graph().nodeRankFactor=i}function Sr(n,e,r,t,i,a,o){var u=n.children(o);if(!u.length){o!==e&&n.setEdge(e,o,{weight:0,minlen:r});return}var s=Me(n,"_bt"),f=Me(n,"_bb"),d=n.node(o);n.setParent(s,o),d.borderTop=s,n.setParent(f,o),d.borderBottom=f,c(u,function(l){Sr(n,e,r,t,i,a,l);var h=n.node(l),g=h.borderTop?h.borderTop:l,v=h.borderBottom?h.borderBottom:l,p=h.borderTop?t:2*t,m=g!==v?1:i-a[o]+1;n.setEdge(s,g,{weight:p,minlen:m,nestingEdge:!0}),n.setEdge(v,f,{weight:p,minlen:m,nestingEdge:!0})}),n.parent(o)||n.setEdge(e,s,{weight:0,minlen:i+a[o]})}function ku(n){var e={};function r(t,i){var a=n.children(t);a&&a.length&&c(a,function(o){r(o,i+1)}),e[t]=i}return c(n.children(),function(t){r(t,1)}),e}function qu(n){return tn(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function Ku(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,c(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Wu(n,e,r){var t={},i;c(r,function(a){for(var o=n.parent(a),u,s;o;){if(u=n.parent(o),u?(s=t[u],t[u]=o):(s=i,i=o),s&&s!==o){e.setEdge(s,o);return}o=u}})}function Xu(n,e,r){var t=Zu(n),i=new A({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(a){return n.node(a)});return c(n.nodes(),function(a){var o=n.node(a),u=n.parent(a);(o.rank===e||o.minRank<=e&&e<=o.maxRank)&&(i.setNode(a),i.setParent(a,u||t),c(n[r](a),function(s){var f=s.v===a?s.w:s.v,d=i.edge(f,a),l=x(d)?0:d.weight;i.setEdge(f,a,{weight:n.edge(s).weight+l})}),b(o,"minRank")&&i.setNode(a,{borderLeft:o.borderLeft[e],borderRight:o.borderRight[e]}))}),i}function Zu(n){for(var e;n.hasNode(e=te("_root")););return e}function Vu(n,e){for(var r=0,t=1;t0;)d%2&&(l+=u[d+1]),d=d-1>>1,u[d]+=f.weight;s+=f.weight*l})),s}function zu(n){var e={},r=P(n.nodes(),function(u){return!n.children(u).length}),t=F(y(r,function(u){return n.node(u).rank})),i=y(k(t+1),function(){return[]});function a(u){if(!b(e,u)){e[u]=!0;var s=n.node(u);i[s.rank].push(u),c(n.successors(u),a)}}var o=an(r,function(u){return n.node(u).rank});return c(o,a),i}function Qu(n,e){return y(e,function(r){var t=n.inEdges(r);if(t.length){var i=tn(t,function(a,o){var u=n.edge(o),s=n.node(o.v);return{sum:a.sum+u.weight*s.order,weight:a.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function ju(n,e){var r={};c(n,function(i,a){var o=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};x(i.barycenter)||(o.barycenter=i.barycenter,o.weight=i.weight)}),c(e.edges(),function(i){var a=r[i.v],o=r[i.w];!x(a)&&!x(o)&&(o.indegree++,a.out.push(r[i.w]))});var t=P(r,function(i){return!i.indegree});return ns(t)}function ns(n){var e=[];function r(a){return function(o){o.merged||(x(o.barycenter)||x(a.barycenter)||o.barycenter>=a.barycenter)&&es(a,o)}}function t(a){return function(o){o.in.push(a),--o.indegree===0&&n.push(o)}}for(;n.length;){var i=n.pop();e.push(i),c(i.in.reverse(),r(i)),c(i.out,t(i))}return y(P(e,function(a){return!a.merged}),function(a){return gn(a,["vs","i","barycenter","weight"])})}function es(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function rs(n,e){var r=mu(n,function(d){return b(d,"barycenter")}),t=r.lhs,i=an(r.rhs,function(d){return-d.i}),a=[],o=0,u=0,s=0;t.sort(ts(!!e)),s=Be(a,i,s),c(t,function(d){s+=d.vs.length,a.push(d.vs),o+=d.barycenter*d.weight,u+=d.weight,s=Be(a,i,s)});var f={vs:q(a)};return u&&(f.barycenter=o/u,f.weight=u),f}function Be(n,e,r){for(var t;e.length&&(t=vn(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function ts(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function Mr(n,e,r,t){var i=n.children(e),a=n.node(e),o=a?a.borderLeft:void 0,u=a?a.borderRight:void 0,s={};o&&(i=P(i,function(v){return v!==o&&v!==u}));var f=Qu(n,i);c(f,function(v){if(n.children(v.v).length){var p=Mr(n,v.v,r,t);s[v.v]=p,b(p,"barycenter")&&as(v,p)}});var d=ju(f,r);is(d,s);var l=rs(d,t);if(o&&(l.vs=q([o,l.vs,u]),n.predecessors(o).length)){var h=n.node(n.predecessors(o)[0]),g=n.node(n.predecessors(u)[0]);b(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+g.order)/(l.weight+2),l.weight+=2}return l}function is(n,e){c(n,function(r){r.vs=q(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function as(n,e){x(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function os(n){var e=xr(n),r=Ue(n,k(1,e+1),"inEdges"),t=Ue(n,k(e-1,-1,-1),"outEdges"),i=zu(n);Ye(n,i);for(var a=Number.POSITIVE_INFINITY,o,u=0,s=0;s<4;++u,++s){us(u%2?r:t,u%4>=2),i=On(n);var f=Vu(n,i);fo||u>e[s].lim));for(f=s,s=t;(s=n.parent(s))!==f;)a.push(s);return{path:i.concat(a.reverse()),lca:f}}function ds(n){var e={},r=0;function t(i){var a=r;c(n.children(i),t),e[i]={low:a,lim:r++}}return c(n.children(),t),e}function cs(n,e){var r={};function t(i,a){var o=0,u=0,s=i.length,f=vn(a);return c(a,function(d,l){var h=hs(n,d),g=h?n.node(h).order:s;(h||d===f)&&(c(a.slice(u,l+1),function(v){c(n.predecessors(v),function(p){var m=n.node(p),E=m.order;(Ef)&&Rr(r,h,d)})})}function i(a,o){var u=-1,s,f=0;return c(o,function(d,l){if(n.node(d).dummy==="border"){var h=n.predecessors(d);h.length&&(s=n.node(h[0]).order,t(o,f,l,u,s),f=l,u=s)}t(o,f,o.length,s,a.length)}),o}return tn(e,i),r}function hs(n,e){if(n.node(e).dummy)return ne(n.predecessors(e),function(r){return n.node(r).dummy})}function Rr(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function vs(n,e,r){if(e>r){var t=e;e=r,r=t}return b(n[e],r)}function gs(n,e,r,t){var i={},a={},o={};return c(e,function(u){c(u,function(s,f){i[s]=s,a[s]=s,o[s]=f})}),c(e,function(u){var s=-1;c(u,function(f){var d=t(f);if(d.length){d=an(d,function(p){return o[p]});for(var l=(d.length-1)/2,h=Math.floor(l),g=Math.ceil(l);h<=g;++h){var v=d[h];a[f]===f&&s true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = _.has(opts, 'directed') ? opts.directed : true;\n this._isMultigraph = _.has(opts, 'multigraph') ? opts.multigraph : false;\n this._isCompound = _.has(opts, 'compound') ? opts.compound : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (_.has(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return _.has(this._nodes, v);\n }\n removeNode(v) {\n var self = this;\n if (_.has(this._nodes, v)) {\n var removeEdge = function (e) {\n self.removeEdge(self._edgeObjs[e]);\n };\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), function (child) {\n self.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (_.has(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return _.has(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nexport { List };\n\nclass List {\n constructor() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n dequeue() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n enqueue(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n toString() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return '[' + strs.join(', ') + ']';\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== '_next' && k !== '_prev') {\n return v;\n }\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { List } from './data/list.js';\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nexport { greedyFAS };\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(\n _.map(results, function (e) {\n return g.outEdges(e.v, e.w);\n })\n );\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n while ((entry = sources.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry['in'] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function (v) {\n fasGraph.setNode(v, { v: v, in: 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function (e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, (fasGraph.node(e.v).out += weight));\n maxIn = Math.max(maxIn, (fasGraph.node(e.w)['in'] += weight));\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function () {\n return new List();\n });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function (v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry['in']) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry['in'] + zeroIdx].enqueue(entry);\n }\n}\n","import * as _ from 'lodash-es';\nimport { greedyFAS } from './greedy-fas.js';\n\nexport { run, undo };\n\nfunction run(g) {\n var fas = g.graph().acyclicer === 'greedy' ? greedyFAS(g, weightFn(g)) : dfsFAS(g);\n _.forEach(fas, function (e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId('rev'));\n });\n\n function weightFn(g) {\n return function (e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function (e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function (e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\n\nexport {\n addDummyNode,\n simplify,\n asNonCompoundGraph,\n successorWeights,\n predecessorWeights,\n intersectRect,\n buildLayerMatrix,\n normalizeRanks,\n removeEmptyRanks,\n addBorderNode,\n maxRank,\n partition,\n time,\n notime,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n simplified.setNode(v, g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen),\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function (e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function (e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var preds = {};\n _.forEach(g.inEdges(v), function (e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error('Not possible to find intersection inside of the rectangle');\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function () {\n return [];\n });\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n })\n );\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (_.has(node, 'rank')) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n })\n );\n\n var layers = [];\n _.forEach(g.nodes(), function (v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function (vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function (v) {\n g.node(v).rank += delta;\n });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0,\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, 'border', node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(\n _.map(g.nodes(), function (v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n })\n );\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function (value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + ' time: ' + (_.now() - start) + 'ms');\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { addBorderSegments };\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, 'minRank')) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {\n addBorderNode(g, 'borderLeft', '_bl', v, node, rank);\n addBorderNode(g, 'borderRight', '_br', v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, 'border', label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","import * as _ from 'lodash-es';\n\nexport { adjust, undo };\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'bt' || rankDir === 'rl') {\n reverseY(g);\n }\n\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function (v) {\n swapWidthHeightOne(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n swapWidthHeightOne(g.edge(e));\n });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function (v) {\n reverseYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, 'y')) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function (v) {\n swapXYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, 'x')) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, undo };\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function (edge) {\n normalizeEdge(g, edge);\n });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0,\n height: 0,\n edgeLabel: edgeLabel,\n edgeObj: e,\n rank: vRank,\n };\n dummy = util.addDummyNode(g, 'edge', attrs, '_d');\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n // @ts-expect-error\n attrs.dummy = 'edge-label';\n // @ts-expect-error\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === 'edge-label') {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { longestPath, slack };\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(\n _.map(g.outEdges(v), function (e) {\n return dfs(e.w) - g.edge(e).minlen;\n })\n );\n\n if (\n rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null\n ) {\n // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport { slack } from './util.js';\n\nexport { feasibleTree };\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function (e) {\n var edgeV = e.v,\n w = v === edgeV ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function (e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function (v) {\n g.node(v).rank += delta;\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { topsort, CycleException };\n\ntopsort.CycleException = CycleException;\n\nfunction topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (_.has(stack, node)) {\n throw new CycleException();\n }\n\n if (!_.has(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n _.each(g.predecessors(node), visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n _.each(g.sinks(), visit);\n\n if (_.size(visited) !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nfunction CycleException() {}\nCycleException.prototype = new Error(); // must be an instance of Error to pass testing\n","import * as _ from 'lodash-es';\n\nexport { dfs };\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * Order must be one of \"pre\" or \"post\".\n */\nfunction dfs(g, vs, order) {\n if (!_.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);\n\n var acc = [];\n var visited = {};\n _.each(vs, function (v) {\n if (!g.hasNode(v)) {\n throw new Error('Graph does not have node: ' + v);\n }\n\n doDfs(g, v, order === 'post', visited, navigation, acc);\n });\n return acc;\n}\n\nfunction doDfs(g, v, postorder, visited, navigation, acc) {\n if (!_.has(visited, v)) {\n visited[v] = true;\n\n if (!postorder) {\n acc.push(v);\n }\n _.each(navigation(v), function (w) {\n doDfs(g, w, postorder, visited, navigation, acc);\n });\n if (postorder) {\n acc.push(v);\n }\n }\n}\n","import { dfs } from './dfs.js';\n\nexport { postorder };\n\nfunction postorder(g, vs) {\n return dfs(g, vs, 'post');\n}\n","import { dfs } from './dfs.js';\n\nexport { preorder };\n\nfunction preorder(g, vs) {\n return dfs(g, vs, 'pre');\n}\n","import * as _ from 'lodash-es';\nimport * as alg from '../../graphlib/alg/index.js';\nimport { simplify } from '../util.js';\nimport { feasibleTree } from './feasible-tree.js';\nimport { longestPath, slack } from './util.js';\n\nexport { networkSimplex };\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n longestPath(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = alg.postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function (v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function (e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function (w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function (e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function (edge) {\n return (\n flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel)\n );\n });\n\n return _.minBy(candidates, function (edge) {\n return slack(g, edge);\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function (v) {\n return !g.node(v).parent;\n });\n var vs = alg.preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function (v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","import { feasibleTree } from './feasible-tree.js';\nimport { networkSimplex } from './network-simplex.js';\nimport { longestPath } from './util.js';\n\nexport { rank };\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch (g.graph().ranker) {\n case 'network-simplex':\n networkSimplexRanker(g);\n break;\n case 'tight-tree':\n tightTreeRanker(g);\n break;\n case 'longest-path':\n longestPathRanker(g);\n break;\n default:\n networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, cleanup };\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, 'root', {}, '_root');\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function (e) {\n g.edge(e).minlen *= nodeSep;\n });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, '_bt');\n var bottom = util.addBorderNode(g, '_bb');\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function (child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function (v) {\n dfs(v, 1);\n });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(\n g.edges(),\n function (acc, e) {\n return acc + g.edge(e).weight;\n },\n 0\n );\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { addSubgraphConstraints };\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function (v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\n\nexport { buildLayerGraph };\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true })\n .setGraph({ root: root })\n .setDefaultNodeLabel(function (v) {\n return g.node(v);\n });\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || (node.minRank <= rank && rank <= node.maxRank)) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function (e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, 'minRank')) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank],\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId('_root'))));\n return v;\n}\n","import * as _ from 'lodash-es';\n\nexport { crossCount };\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(\n southLayer,\n _.map(southLayer, function (v, i) {\n return i;\n })\n );\n var southEntries = _.flatten(\n _.map(northLayer, function (v) {\n return _.sortBy(\n _.map(g.outEdges(v), function (e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }),\n 'pos'\n );\n })\n );\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function () {\n return 0;\n });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(\n // @ts-expect-error\n southEntries.forEach(function (entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n // @ts-expect-error\n while (index > 0) {\n // @ts-expect-error\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n // @ts-expect-error\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n })\n );\n\n return cc;\n}\n","import * as _ from 'lodash-es';\n\nexport { initOrder };\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function (v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(\n _.map(simpleNodes, function (v) {\n return g.node(v).rank;\n })\n );\n var layers = _.map(_.range(maxRank + 1), function () {\n return [];\n });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function (v) {\n return g.node(v).rank;\n });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","import * as _ from 'lodash-es';\n\nexport { barycenter };\n\nfunction barycenter(g, movable) {\n return _.map(movable, function (v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(\n inV,\n function (acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + edge.weight * nodeU.order,\n weight: acc.weight + edge.weight,\n };\n },\n { sum: 0, weight: 0 }\n );\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight,\n };\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { resolveConflicts };\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function (entry, i) {\n var tmp = (mappedEntries[entry.v] = {\n indegree: 0,\n in: [],\n out: [],\n vs: [entry.v],\n i: i,\n });\n if (!_.isUndefined(entry.barycenter)) {\n // @ts-expect-error\n tmp.barycenter = entry.barycenter;\n // @ts-expect-error\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function (e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function (entry) {\n // @ts-expect-error\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function (uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (\n _.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter\n ) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function (wEntry) {\n wEntry['in'].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry['in'].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(\n _.filter(entries, function (entry) {\n return !entry.merged;\n }),\n function (entry) {\n return _.pick(entry, ['vs', 'i', 'barycenter', 'weight']);\n }\n );\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","import * as _ from 'lodash-es';\nimport * as util from '../util.js';\n\nexport { sort };\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function (entry) {\n return _.has(entry, 'barycenter');\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function (entry) {\n return -entry.i;\n }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function (entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","import * as _ from 'lodash-es';\nimport { barycenter } from './barycenter.js';\nimport { resolveConflicts } from './resolve-conflicts.js';\nimport { sort } from './sort.js';\n\nexport { sortSubgraph };\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight : undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function (w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function (entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, 'barycenter')) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br]);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, 'barycenter')) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter =\n (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function (entry) {\n entry.vs = _.flatten(\n entry.vs.map(function (v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n })\n );\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter =\n (target.barycenter * target.weight + other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\nimport { addSubgraphConstraints } from './add-subgraph-constraints.js';\nimport { buildLayerGraph } from './build-layer-graph.js';\nimport { crossCount } from './cross-count.js';\nimport { initOrder } from './init-order.js';\nimport { sortSubgraph } from './sort-subgraph.js';\n\nexport { order };\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), 'inEdges'),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), 'outEdges');\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function (rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function (lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function (v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, i) {\n g.node(v).order = i;\n });\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { parentDummyChains };\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (\n pathIdx < path.length - 1 &&\n g.node((pathV = path[pathIdx + 1])).minRank <= node.rank\n ) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nexport {\n positionX,\n findType1Conflicts,\n findType2Conflicts,\n addConflict,\n hasConflict,\n verticalAlignment,\n horizontalCompaction,\n alignCoordinates,\n findSmallestWidthAlignment,\n balance,\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function (v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i + 1), function (scanNode) {\n _.forEach(g.predecessors(scanNode), function (u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n // @ts-expect-error\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function (i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function (u) {\n var uNode = g.node(u);\n if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function (v, southLookahead) {\n if (g.node(v).dummy === 'border') {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n // @ts-expect-error\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function (u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function (layer) {\n var prevIdx = -1;\n _.forEach(layer, function (v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function (w) {\n return pos[w];\n });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? 'borderLeft' : 'borderRight';\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function (acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function (acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function (v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function (layer) {\n var u;\n _.forEach(layer, function (v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach(['u', 'd'], function (vert) {\n _.forEach(['l', 'r'], function (horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === 'l' ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function (x) {\n return x + delta;\n });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function (ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(findType1Conflicts(g, layering), findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach(['u', 'd'], function (vert) {\n adjustedLayering = vert === 'u' ? layering : _.values(layering).reverse();\n _.forEach(['l', 'r'], function (horiz) {\n if (horiz === 'r') {\n adjustedLayering = _.map(adjustedLayering, function (inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === 'u' ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === 'r');\n if (horiz === 'r') {\n xs = _.mapValues(xs, function (x) {\n return -x;\n });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function (g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, 'labelpos')) {\n switch (vLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = -vLabel.width / 2;\n break;\n case 'r':\n delta = vLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, 'labelpos')) {\n switch (wLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = wLabel.width / 2;\n break;\n case 'r':\n delta = -wLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","import * as _ from 'lodash-es';\nimport * as util from '../util.js';\nimport { positionX } from './bk.js';\n\nexport { position };\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forOwn(positionX(g), function (x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function (layer) {\n var maxHeight = _.max(\n _.map(layer, function (v) {\n return g.node(v).height;\n })\n );\n _.forEach(layer, function (v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { addBorderSegments } from './add-border-segments.js';\nimport * as coordinateSystem from './coordinate-system.js';\nimport * as acyclic from './acyclic.js';\nimport * as normalize from './normalize.js';\nimport { rank } from './rank/index.js';\nimport * as nestingGraph from './nesting-graph.js';\nimport { order } from './order/index.js';\nimport { parentDummyChains } from './parent-dummy-chains.js';\nimport { position } from './position/index.js';\nimport * as util from './util.js';\n\nexport { layout };\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time('layout', function () {\n var layoutGraph = time(' buildLayoutGraph', function () {\n return buildLayoutGraph(g);\n });\n time(' runLayout', function () {\n runLayout(layoutGraph, time);\n });\n time(' updateInputGraph', function () {\n updateInputGraph(g, layoutGraph);\n });\n });\n}\n\nfunction runLayout(g, time) {\n time(' makeSpaceForEdgeLabels', function () {\n makeSpaceForEdgeLabels(g);\n });\n time(' removeSelfEdges', function () {\n removeSelfEdges(g);\n });\n time(' acyclic', function () {\n acyclic.run(g);\n });\n time(' nestingGraph.run', function () {\n nestingGraph.run(g);\n });\n time(' rank', function () {\n rank(util.asNonCompoundGraph(g));\n });\n time(' injectEdgeLabelProxies', function () {\n injectEdgeLabelProxies(g);\n });\n time(' removeEmptyRanks', function () {\n util.removeEmptyRanks(g);\n });\n time(' nestingGraph.cleanup', function () {\n nestingGraph.cleanup(g);\n });\n time(' normalizeRanks', function () {\n util.normalizeRanks(g);\n });\n time(' assignRankMinMax', function () {\n assignRankMinMax(g);\n });\n time(' removeEdgeLabelProxies', function () {\n removeEdgeLabelProxies(g);\n });\n time(' normalize.run', function () {\n normalize.run(g);\n });\n time(' parentDummyChains', function () {\n parentDummyChains(g);\n });\n time(' addBorderSegments', function () {\n addBorderSegments(g);\n });\n time(' order', function () {\n order(g);\n });\n time(' insertSelfEdges', function () {\n insertSelfEdges(g);\n });\n time(' adjustCoordinateSystem', function () {\n coordinateSystem.adjust(g);\n });\n time(' position', function () {\n position(g);\n });\n time(' positionSelfEdges', function () {\n positionSelfEdges(g);\n });\n time(' removeBorderNodes', function () {\n removeBorderNodes(g);\n });\n time(' normalize.undo', function () {\n normalize.undo(g);\n });\n time(' fixupEdgeLabelCoords', function () {\n fixupEdgeLabelCoords(g);\n });\n time(' undoCoordinateSystem', function () {\n coordinateSystem.undo(g);\n });\n time(' translateGraph', function () {\n translateGraph(g);\n });\n time(' assignNodeIntersects', function () {\n assignNodeIntersects(g);\n });\n time(' reversePoints', function () {\n reversePointsForReversedEdges(g);\n });\n time(' acyclic.undo', function () {\n acyclic.undo(g);\n });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function (v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, 'x')) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' };\nvar graphAttrs = ['acyclicer', 'ranker', 'rankdir', 'align'];\nvar nodeNumAttrs = ['width', 'height'];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];\nvar edgeDefaults = {\n minlen: 1,\n weight: 1,\n width: 0,\n height: 0,\n labeloffset: 10,\n labelpos: 'r',\n};\nvar edgeAttrs = ['labelpos'];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(\n _.merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), _.pick(graph, graphAttrs))\n );\n\n _.forEach(inputGraph.nodes(), function (v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(\n e,\n _.merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), _.pick(edge, edgeAttrs))\n );\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== 'c') {\n if (graph.rankdir === 'TB' || graph.rankdir === 'BT') {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, 'edge-proxy', label, '_ep');\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n // @ts-expect-error\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'edge-proxy') {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function (v) {\n getExtremes(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (_.has(edge, 'x')) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function (p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, 'x')) {\n edge.x -= minX;\n }\n if (_.has(edge, 'y')) {\n edge.y -= minY;\n }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (_.has(edge, 'x')) {\n if (edge.labelpos === 'l' || edge.labelpos === 'r') {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case 'l':\n edge.x -= edge.width / 2 + edge.labeloffset;\n break;\n case 'r':\n edge.x += edge.width / 2 + edge.labeloffset;\n break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function (v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function (v) {\n if (g.node(v).dummy === 'border') {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function (e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function (layer) {\n var orderShift = 0;\n _.forEach(layer, function (v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function (selfEdge) {\n util.addDummyNode(\n g,\n 'selfedge',\n {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + ++orderShift,\n e: selfEdge.e,\n label: selfEdge.label,\n },\n '_se'\n );\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'selfedge') {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + (2 * dx) / 3, y: y - dy },\n { x: x + (5 * dx) / 6, y: y - dy },\n { x: x + dx, y: y },\n { x: x + (5 * dx) / 6, y: y + dy },\n { x: x + (2 * dx) / 3, y: y + dy },\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function (v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n"],"names":["symbolTag","isSymbol","value","isObjectLike","baseGetTag","arrayMap","array","iteratee","index","length","result","INFINITY","symbolProto","Symbol","symbolToString","baseToString","isArray","reWhitespace","trimmedEndIndex","string","reTrimStart","baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isObject","other","isBinary","MAX_INTEGER","toFinite","sign","toInteger","remainder","identity","objectCreate","baseCreate","object","proto","baseCreate$1","apply","func","thisArg","args","noop","copyArray","source","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","count","lastCalled","stamp","remaining","constant","defineProperty","getNative","defineProperty$1","baseSetToString","baseSetToString$1","setToString","setToString$1","arrayEach","baseFindIndex","predicate","fromIndex","fromRight","baseIsNaN","strictIndexOf","baseIndexOf","arrayIncludes","MAX_SAFE_INTEGER","reIsUint","isIndex","type","baseAssignValue","key","objectProto","hasOwnProperty","assignValue","objValue","eq","copyObject","props","customizer","isNew","newValue","nativeMax","overRest","start","transform","otherArgs","baseRest","isIterateeCall","isArrayLike","createAssigner","assigner","sources","guard","baseTimes","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","keys","baseKeys","nativeKeysIn","baseKeysIn","isProto","isPrototype","keysIn","reIsDeepProp","reIsPlainProp","isKey","MAX_MEMOIZE_SIZE","memoizeCapped","memoize","cache","rePropName","reEscapeChar","stringToPath","match","number","quote","subString","stringToPath$1","toString","castPath","toKey","baseGet","path","get","defaultValue","arrayPush","values","offset","spreadableSymbol","isFlattenable","baseFlatten","depth","isStrict","flatten","flatRest","getPrototype","overArg","getPrototype$1","objectTag","funcProto","funcToString","objectCtorString","isPlainObject","Ctor","arrayReduce","accumulator","initAccum","stackClear","ListCache","stackDelete","data","stackGet","stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","Map","MapCache","Stack","entries","baseAssign","baseAssignIn","freeExports","freeModule","moduleExports","Buffer","root","allocUnsafe","cloneBuffer","buffer","isDeep","arrayFilter","resIndex","stubArray","propertyIsEnumerable","nativeGetSymbols","getSymbols","symbol","getSymbols$1","copySymbols","getSymbolsIn","getSymbolsIn$1","copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","initCloneArray","Uint8Array","Uint8Array$1","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","reFlags","cloneRegExp","regexp","symbolValueOf","cloneSymbol","cloneTypedArray","typedArray","boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","initCloneByTag","tag","initCloneObject","baseIsMap","getTag","nodeIsMap","nodeUtil","isMap","baseUnary","isMap$1","baseIsSet","nodeIsSet","isSet","isSet$1","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","errorTag","funcTag","genTag","weakMapTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isFunc","stacked","subValue","cloneDeep","HASH_UNDEFINED","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","map","setToArray","set","equalByTag","convert","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","isStrictComparable","getMatchData","matchesStrictComparable","baseMatches","baseHasIn","hasPath","hasFunc","isLength","hasIn","baseMatchesProperty","baseProperty","basePropertyDeep","property","baseIteratee","createBaseFor","iterable","baseFor","baseFor$1","baseForOwn","createBaseEach","eachFunc","collection","baseEach","baseEach$1","now","now$1","defaults","propsIndex","propsLength","defaults$1","assignMergeValue","isArrayLikeObject","safeGet","toPlainObject","baseMergeDeep","srcIndex","mergeFunc","isCommon","isTyped","isFunction","baseMerge","arrayIncludesWith","comparator","last","castFunction","forEach","baseFilter","filter","createFind","findIndexFunc","findIndex","find","find$1","baseMap","forIn","forOwn","baseGt","baseHas","has","baseValues","isUndefined","baseLt","mapValues","baseExtremum","current","computed","max","merge","merge$1","min","minBy","baseSet","lastIndex","nested","basePickBy","paths","baseSortBy","comparer","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareMultiple","orders","objCriteria","othCriteria","ordersLength","order","baseOrderBy","iteratees","criteria","basePick","pick","pick$1","nativeCeil","baseRange","end","step","createRange","range","range$1","baseReduce","reduce","sortBy","sortBy$1","createSet","Set","createSet$1","baseUniq","includes","outer","seenIndex","union","arrays","union$1","idCounter","uniqueId","prefix","id","baseZipObject","assignFunc","valsLength","zipObject","DEFAULT_EDGE_NAME","GRAPH_NODE","EDGE_KEY_DELIM","Graph","opts","_.has","_.constant","label","newDefault","_.isFunction","_.keys","self","_.filter","v","_.isEmpty","vs","_.each","removeEdge","e","child","parent","_.isUndefined","ancestor","children","predsV","sucsV","preds","_.union","neighbors","copy","parents","findParent","_.values","_.reduce","w","name","valueSpecified","arg0","edgeArgsToId","edgeObj","edgeArgsToObj","incrementOrInitEntry","edgeObjToId","edge","decrementOrRemoveEntry","u","inV","edges","outV","inEdges","k","isDirected","v_","w_","tmp","List","sentinel","entry","unlink","strs","curr","filterOutLinks","DEFAULT_WEIGHT_FN","greedyFAS","g","weightFn","state","buildState","results","doGreedyFAS","_.flatten","_.map","buckets","zeroIdx","sinks","removeNode","i","collectPredecessors","_.forEach","weight","uEntry","assignBucket","wEntry","fasGraph","maxIn","maxOut","prevWeight","edgeWeight","_.range","run","fas","dfsFAS","_.uniqueId","visited","dfs","undo","forwardName","addDummyNode","attrs","simplify","simplified","simpleLabel","asNonCompoundGraph","intersectRect","rect","point","x","y","dx","dy","h","sx","sy","buildLayerMatrix","layering","maxRank","node","rank","normalizeRanks","_.min","removeEmptyRanks","layers","delta","nodeRankFactor","addBorderNode","_.max","partition","fn","time","_.now","notime","addBorderSegments","prop","sg","sgNode","prev","util.addDummyNode","adjust","rankDir","swapWidthHeight","reverseY","swapXY","swapWidthHeightOne","reverseYOne","swapXYOne","normalizeEdge","vRank","wRank","edgeLabel","labelRank","dummy","origLabel","longestPath","slack","feasibleTree","t","size","tightTree","findMinSlackEdge","shiftRanks","edgeV","_.minBy","CycleException","_.isArray","navigation","acc","doDfs","postorder","preorder","networkSimplex","initLowLimValues","initCutValues","calcCutValue","leaveEdge","enterEdge","exchangeEdges","f","alg.postorder","assignCutValue","childLab","childIsTail","graphEdge","cutValue","isOutEdge","pointsToHead","otherWeight","isTreeEdge","otherCutValue","tree","dfsAssignLowLim","nextLim","low","_.find","vLabel","wLabel","tailLabel","flip","candidates","isDescendant","updateRanks","alg.preorder","flipped","rootLabel","networkSimplexRanker","tightTreeRanker","longestPathRanker","depths","treeDepths","height","nodeSep","sumWeights","top","util.addBorderNode","bottom","childNode","childTop","childBottom","thisWeight","minlen","cleanup","graphLabel","addSubgraphConstraints","cg","rootPrev","prevChild","buildLayerGraph","relationship","createRootNode","crossCount","cc","twoLayerCrossCount","northLayer","southLayer","southPos","_.zipObject","southEntries","_.sortBy","firstIndex","treeSize","weightSum","initOrder","simpleNodes","orderedVs","barycenter","movable","nodeU","resolveConflicts","mappedEntries","entryV","entryW","sourceSet","doResolveConflicts","handleIn","vEntry","mergeEntries","handleOut","_.pick","target","sum","sort","biasRight","parts","util.partition","sortable","unsortable","vsIndex","compareWithBias","consumeUnsortable","_.last","bias","sortSubgraph","bl","br","subgraphs","barycenters","subgraphResult","mergeBarycenters","expandSubgraphs","blPred","brPred","util.maxRank","downLayerGraphs","buildLayerGraphs","upLayerGraphs","assignOrder","bestCC","best","lastBest","sweepLayerGraphs","util.buildLayerMatrix","_.cloneDeep","ranks","layerGraphs","lg","sorted","layer","parentDummyChains","postorderNums","pathData","findPath","lca","pathIdx","pathV","ascending","vPath","wPath","lim","findType1Conflicts","conflicts","visitLayer","prevLayer","k0","scanPos","prevLayerLength","lastNode","findOtherInnerSegmentNode","k1","scanNode","uLabel","uPos","addConflict","findType2Conflicts","scan","south","southEnd","prevNorthBorder","nextNorthBorder","uNode","north","prevNorthPos","nextNorthPos","southLookahead","predecessors","conflictsV","hasConflict","verticalAlignment","neighborFn","align","pos","prevIdx","ws","mp","il","horizontalCompaction","reverseSep","xs","blockG","buildBlockGraph","borderType","iterate","setXsFunc","nextNodesFunc","elem","pass1","pass2","blockGraph","sepFn","sep","vRoot","uRoot","prevMax","findSmallestWidthAlignment","xss","_.forIn","halfWidth","width","alignCoordinates","alignTo","alignToVals","alignToMin","alignToMax","vert","horiz","alignment","xsVals","_.mapValues","balance","ignore","positionX","_.merge","adjustedLayering","inner","smallestWidth","edgeSep","position","util.asNonCompoundGraph","positionY","_.forOwn","rankSep","prevY","maxHeight","layout","util.time","util.notime","layoutGraph","buildLayoutGraph","runLayout","updateInputGraph","makeSpaceForEdgeLabels","removeSelfEdges","acyclic.run","nestingGraph.run","injectEdgeLabelProxies","util.removeEmptyRanks","nestingGraph.cleanup","util.normalizeRanks","assignRankMinMax","removeEdgeLabelProxies","normalize.run","insertSelfEdges","coordinateSystem.adjust","positionSelfEdges","removeBorderNodes","normalize.undo","fixupEdgeLabelCoords","coordinateSystem.undo","translateGraph","assignNodeIntersects","reversePointsForReversedEdges","acyclic.undo","inputGraph","inputLabel","layoutLabel","graphNumAttrs","graphDefaults","graphAttrs","nodeNumAttrs","nodeDefaults","edgeNumAttrs","edgeDefaults","edgeAttrs","graph","canonicalize","selectNumberAttrs","_.defaults","minX","maxX","minY","maxY","marginX","marginY","getExtremes","p","nodeV","nodeW","p1","p2","util.intersectRect","b","l","r","orderShift","selfEdge","selfNode","obj","newAttrs"],"mappings":"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","x_google_ignoreList":[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,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,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,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/line-reZX-DPl.js b/excalidraw/excalidraw-app/build/assets/line-reZX-DPl.js deleted file mode 100644 index 8095dc8..0000000 --- a/excalidraw/excalidraw-app/build/assets/line-reZX-DPl.js +++ /dev/null @@ -1,2 +0,0 @@ -import{a as h}from"./array-Nw74a44z.js";import{w as d,c as o}from"./path-aUcfwwLI.js";import{o as v}from"./index-jpNTxDe4.js";function w(t){return t[0]}function b(t){return t[1]}function P(t,u){var s=o(!0),i=null,l=v,r=null,m=d(e);t=typeof t=="function"?t:t===void 0?w:o(t),u=typeof u=="function"?u:u===void 0?b:o(u);function e(n){var f,g=(n=h(n)).length,p,c=!1,a;for(i==null&&(r=l(a=m())),f=0;f<=g;++f)!(ft?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=F,e=(u,c)=>F(n(u),c),r=(u,c)=>n(u)-c):(t=n===F||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_(F),dn=sn.right;_(ln).center;const gn=dn,yn=Math.sqrt(50),Mn=Math.sqrt(10),pn=Math.sqrt(2);function R(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=yn?10:f>=Mn?5:f>=pn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function E(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=E(Math.abs(n)),n?n[1]:NaN}function Pn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function zn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var $n=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=$n.exec(n)))throw new Error("invalid format: "+n);var t;return new B({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=B.prototype;function B(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}B.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 Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function Rn(n,t){var e=E(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+E(n,Math.max(0,t+f-1))[0]}function Z(n,t){var e=E(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const H={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:jn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Z(n*100,t),r:Z,s:Rn,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:Pn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:zn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,T=h.comma,w=h.precision,G=h.trim,d=h.type;d==="n"?(T=!0,d="g"):H[d]||(w===void 0&&(w=12),G=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=H[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),G&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}T&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var $,tn,rn;Dn({thousands:",",grouping:[3],currency:["$",""]});function Dn(n){return $=En(n),tn=$.format,rn=$.formatPrefix,$}function Tn(n){return Math.max(0,-v(Math.abs(n)))}function In(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Ln(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function qn(n){return function(){return n}}function Cn(n){return+n}var W=[0,1];function A(n){return n}function q(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:qn(isNaN(t)?NaN:.5)}function Bn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?On:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),I)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,Cn),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=bn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Un(){return Xn()(A,A)}function Yn(n,t,e,r){var i=Nn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=In(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Ln(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Tn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Zn(n){var t=n.domain;return n.ticks=function(e){var r=t();return wn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Yn(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=L(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Hn(){var n=Un();return n.copy=function(){return Vn(n,Hn())},cn.apply(n,arguments),Zn(n)}export{Vn as a,_ as b,Un as c,Hn as l,Nn as t}; -//# sourceMappingURL=linear-WA_JRKe7.js.map diff --git a/excalidraw/excalidraw-app/build/assets/linear-WA_JRKe7.js.map b/excalidraw/excalidraw-app/build/assets/linear-WA_JRKe7.js.map deleted file mode 100644 index 0610359..0000000 --- a/excalidraw/excalidraw-app/build/assets/linear-WA_JRKe7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"linear-WA_JRKe7.js","sources":["../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js"],"sourcesContent":["export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n"],"names":["ascending","a","b","descending","bisector","f","compare1","compare2","delta","d","x","zero","left","lo","hi","mid","right","center","i","number","ascendingBisect","bisectRight","bisect","e10","e5","e2","tickSpec","start","stop","count","step","power","error","factor","i1","i2","inc","ticks","reverse","n","tickIncrement","tickStep","numberArray","c","t","isNumberArray","genericArray","nb","na","value","date","object","k","interpolate","constant","color","rgb","string","interpolateRound","formatDecimal","formatDecimalParts","p","coefficient","exponent","formatGroup","grouping","thousands","width","j","g","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","s","out","i0","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$1","map","prefixes","formatLocale","locale","group","identity","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","align","sign","symbol","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","e","defaultLocale","definition","precisionFixed","precisionPrefix","precisionRound","max","constants","unit","normalize","clamper","bimap","domain","range","d0","d1","r0","r1","polymap","r","copy","source","target","transformer","interpolateValue","transform","untransform","unknown","clamp","piecewise","output","input","rescale","scale","y","interpolateNumber","_","u","continuous","tickFormat","linearish","prestep","maxIter","linear","initRange"],"mappings":"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","x_google_ignoreList":[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,26,27,28,29,30,31]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js b/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js deleted file mode 100644 index d22458d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",decreaseFontSize:"تصغير حجم الخط",increaseFontSize:"تكبير حجم الخط",unbindText:"فك ربط النص",bindText:"ربط النص بالحاوية",createContainerFromText:"نص مغلف في حاوية",link:{edit:"تعديل الرابط",editEmbed:"تحرير الرابط وإدراجه",create:"إنشاء رابط",createEmbed:"إنشاء رابط و إدراجه",label:"رابط",labelEmbed:"رابط و إدراج",empty:"لم يتم تعيين رابط"},lineEditor:{edit:"تحرير السطر",exit:"الخروج من المُحرر"},elementLock:{lock:"قفل",unlock:"فتح",lockAll:"قفل الكل",unlockAll:"فتح الكل"},statusPublished:"نُشر",sidebarLock:"إبقاء الشريط الجانبي مفتوح",selectAllElementsInFrame:"تحديد جميع العناصر في الإطار",removeAllElementsFromFrame:"إزالة جميع العناصر من الإطار",eyeDropper:"اختيار اللون من القماش",textToDiagram:"",prompt:""},o={noItems:"لا توجد عناصر أضيفت بعد...",hint_emptyLibrary:"حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.",hint_emptyPrivateLibrary:"حدد عنصر على القماش لإضافته هنا."},t={clearReset:"إعادة تعيين اللوحة",exportJSON:"صدر الملف",exportImage:"تصدير الصورة...",export:"حفظ إلى...",copyToClipboard:"نسخ إلى الحافظة",save:"احفظ للملف الحالي",saveAs:"حفظ كـ",load:"فتح",getShareableLink:"احصل على رابط المشاركة",close:"غلق",selectLanguage:"اختر اللغة",scrollBackToContent:"الرجوع إلى المحتوى",zoomIn:"تكبير",zoomOut:"تصغير",resetZoom:"إعادة تعيين الشاشة",menu:"القائمة",done:"تم",edit:"تعديل",undo:"تراجع",redo:"إعادة تنفيذ",resetLibrary:"إعادة ضبط المكتبة",createNewRoom:"إنشاء غرفة جديدة",fullScreen:"شاشة كاملة",darkMode:"الوضع المظلم",lightMode:"الوضع المضيء",zenMode:"وضع التأمل",objectsSnapMode:"التقط إلى العناصر",exitZenMode:"إلغاء الوضع الليلى",cancel:"إلغاء",clear:"مسح",remove:"إزالة",embed:"تبديل الإدراج",publishLibrary:"انشر",submit:"أرسل",confirm:"تأكيد",embeddableInteractionButton:"اضغط للتفاعل"},r={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟ - -(إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:"تعذر إضافة العنصر للمكتبة",errorRemovingFromLibrary:"تعذر إزالة العنصر من المكتبة",confirmAddLibrary:"هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟",imageDoesNotContainScene:"يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟",cannotRestoreFromImage:"تعذر استعادة المشهد من ملف الصورة",invalidSceneUrl:"تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.",resetLibrary:"هذا سوف يمسح مكتبتك. هل أنت متأكد؟",removeItemsFromsLibrary:"حذف {{count}} عنصر (عناصر) من المكتبة؟",invalidEncryptionKey:"مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.",collabOfflineWarning:`لا يوجد اتصال بالانترنت. -لن يتم حفظ التغييرات التي قمت بها!`},a={unsupportedFileType:"نوع الملف غير مدعوم.",imageInsertError:"تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...",fileTooBig:"الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.",svgImageInsertError:"تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.",failedToFetchImage:"",invalidSVGString:"SVG غير صالح.",cannotResolveCollabServer:"تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.",importLibraryError:"تعذر تحميل المكتبة",collabSaveFailed:"تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.",collabSaveFailed_sizeExceeded:"تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.",imageToolNotSupported:"",brave_measure_text_error:{line1:"يبدو أنك تستخدم متصفح Brave مع إعداد حظر صارم لتتبع البصمة.",line2:"قد يؤدي هذا إلى كسر عناصر النص في الرسومات الخاصة بك.",line3:"من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع هذه الخطوات لفعل ذلك.",line4:"إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة بلاغ على حسابنا في GitHub، أو راسلنا على Discord"},libraryElementTypeError:{embeddable:"لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.",iframe:"",image:"سوف يتم دعم إضافة صور إلى المكتبة قريباً!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"تحديد",image:"إدراج صورة",rectangle:"مستطيل",diamond:"مضلع",ellipse:"دائرة",arrow:"سهم",line:"خط",freedraw:"رسم",text:"نص",library:"مكتبة",lock:"الحفاظ على أداة التحديد نشطة بعد الرسم",penMode:"وضع القلم - امنع اللمس",link:"إضافة/تحديث الرابط للشكل المحدد",eraser:"ممحاة",frame:"أداة الإطار",magicframe:"",embeddable:"تضمين ويب",laser:"مؤشر ليزر",hand:"يد (أداة الإزاحة)",extraTools:"المزيد من أﻷدوات",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"إجراءات اللوحة",selectedShapeActions:"إجراءات الشكل المحدد",shapes:"الأشكال"},n={canvasPanning:"لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد",linearElement:"انقر لبدء نقاط متعددة، اسحب لخط واحد",freeDraw:"انقر واسحب، افرج عند الانتهاء",text:"نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار",embeddable:"اضغط مع السحب لإنشاء موقع ويب مضمّن",text_selected:"انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص",text_editing:"اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل",linearElementMulti:"انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء",lockAngle:"يمكنك تقييد الزاوية بالضغط على SHIFT",resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم، -اضغط على ALT لتغيير الحجم من المركز`,resizeImage:`يمكنك تغيير الحجم بحرية بالضغط بأستمرار على SHIFT، -اضغط بأستمرار على ALT أيضا لتغيير الحجم من المركز`,rotate:"يمكنك تقييد الزوايا من خلال الضغط على SHIFT أثناء الدوران",lineEditor_info:"اضغط على مفتاح (Ctrl أو Cmd) و انقر بشكل مزدوج، أو اضغط على مفتاحي (Ctrl أو Cmd) و (Enter) لتعديل النقاط",lineEditor_pointSelected:"اضغط على حذف لإزالة النقطة (النِّقَاط)، Ctrl/Cmd+D للتكرار، أو اسحب للانتقال",lineEditor_nothingSelected:`اختر نقطة لتعديلها (اضغط على SHIFT لتحديد عدة نِقَاط), -أو اضغط على ALT و انقر بالفأرة لإضافة نِقَاط جديدة`,placeImage:"انقر لوضع الصورة، أو انقر واسحب لتعيين حجمها يدوياً",publishLibrary:"نشر مكتبتك",bindTextToElement:"اضغط على إدخال لإضافة نص",deepBoxSelect:"اضغط على Ctrl\\Cmd للاختيار العميق، ولمنع السحب",eraserRevert:"اضغط على Alt لاستعادة العناصر المعلَّمة للحذف",firefox_clipboard_write:'يمكن على الأرجح تمكين هذه الميزة عن طريق تعيين علم "dom.events.asyncClipboard.clipboardItem" إلى "true". لتغيير أعلام المتصفح في Firefox، قم بزيارة صفحة "about:config".',disableSnapping:"اضغط على Ctrl أو Cmd لتعطيل الالتقاط"},s={cannotShowPreview:"تعذر عرض المعاينة",canvasTooBig:"قد تكون اللوحة كبيرة جداً.",canvasTooBigTip:"نصيحة: حاول تحريك العناصر البعيدة بشكل أقرب قليلاً."},d={headingMain:"حدث خطأ. حاول .",clearCanvasMessage:"إذا لم تعمل إعادة التحميل، حاول مرة أخرى ",clearCanvasCaveat:" هذا سيؤدي إلى فقدان العمل ",trackedToSentry:"تم تتبع الخطأ في المعرف {{eventId}} على نظامنا.",openIssueMessage:"حرصنا على عدم إضافة معلومات المشهد في بلاغ الخطأ. في حال كون مشهدك لا يحمل أي معلومات خاصة نرجو المتابعة على . نرجو إضافة المعلومات أدناه بنسخها ولصقها في محتوى البلاغ على GitHub.",sceneContent:"محتوى المشهد:"},c={desc_intro:"يمكنك دعوة الآخرين لمشاركتك نفس الجلسة التي تعمل عليها.",desc_privacy:"لا تقلق، الجلسة تستخدم التشفير من النهاية إلى النهاية، لذلك فإن أي شيء ترسمه سيبقى خاصاً. لن يتمكن حتى الخادوم الخاص بنا من رؤية ما توصلت إليه.",button_startSession:"بدء الجلسة",button_stopSession:"إيقاف الجلسة",desc_inProgressIntro:"تجري الآن المشاركة الحية.",desc_shareLink:"شارك هذا الرابط مع أي شخص تريده أن يشاركك الجلسة:",desc_exitSession:"إيقاف الجلسة سيؤدي إلى قطع الاتصال الخاص بك من الغرفة، ولكن ستتمكن من مواصلة العمل مع المشهد، محليا. لاحظ أن هذا لن يؤثر على الأشخاص الآخرين، و سيظلون قادرين على التعاون في إصدارهم.",shareTitle:"الانضمام إلى جلسة تعاون حية على Excalidraw"},m={title:"خطأ"},b={disk_title:"حفظ الملف للجهاز",disk_details:"تصدير بيانات المشهد إلى ملف يمكنك الاستيراد منه لاحقاً.",disk_button:"إحفظ لملف",link_title:"رابط قابل للمشاركة",link_details:"صدر الملف للمشاهدة فقط.",link_button:"التصدير كرابط",excalidrawplus_description:"حفظ المشهد إلى مساحة العمل +Excalidraw الخاصة بك.",excalidrawplus_button:"تصدير",excalidrawplus_exportError:"تعذر التصدير إلى +Excalidraw في الوقت الحالي..."},p={blog:"اقرأ مدونتنا",click:"انقر",deepSelect:"تحديد عميق",deepBoxSelect:"تحديد عميق داخل المربع، ومنع السحب",curvedArrow:"سهم مائل",curvedLine:"خط مائل",documentation:"دليل الاستخدام",doubleClick:"انقر مرتين",drag:"اسحب",editor:"المحرر",editLineArrowPoints:"تحرير سطر/نقاط سهم",editText:"تعديل النص / إضافة تسمية",github:"عثرت على مشكلة؟ إرسال",howto:"اتبع التعليمات",or:"أو",preventBinding:"منع ارتبط السهم",tools:"الأدوات",shortcuts:"اختصارات لوحة المفاتيح",textFinish:"إنهاء التعديل (محرر النص)",textNewLine:"أضف سطر جديد (محرر نص)",title:"المساعدة",view:"عرض",zoomToFit:"تكبير للملائمة",zoomToSelection:"تكبير للعنصر المحدد",toggleElementLock:"إغلاق/فتح المحدد",movePageUpDown:"نقل الصفحة أعلى/أسفل",movePageLeftRight:"نقل الصفحة يسار/يمين"},g={title:"مسح اللوحة"},u={title:"نشر المكتبة",itemName:"إسم العنصر",authorName:"إسم المؤلف",githubUsername:"اسم المستخدم في جيت هب",twitterUsername:"اسم المستخدم في تويتر",libraryName:"اسم المكتبة",libraryDesc:"وصف المكتبة",website:"الموقع",placeholder:{authorName:"اسمك أو اسم المستخدم",libraryName:"اسم مكتبتك",libraryDesc:"وصف مكتبتك لمساعدة الناس على فهم استخدامها",githubHandle:"معالج GitHub (اختياري)، حتى تتمكن من تحرير المكتبة عند إرسالها للمراجعة",twitterHandle:"اسم مستخدم تويتر (اختياري)، حتى نعرف من الذي سيتم الإشارة إليه عند الترويج عبر تويتر",website:"رابط إلى موقعك الشخصي أو في مكان آخر (اختياري)"},errors:{required:"مطلوب",website:"أدخل عنوان URL صالح"},noteDescription:"تقديم مكتبتك لتضمينها في مستودع المكتبة العامة لأشخاص آخرين لاستخدامها في رسومهم.",noteGuidelines:"تحتاج المكتبة إلى الموافقة أولا. يرجى قراءة المعايير قبل تقديمها. سوف تحتاج إلى حساب GitHub للتواصل وإجراء التغييرات عند الطلب، ولكن ليس مطلوبا بشكل صارم.",noteLicense:"تقديمك يعني موافقتك على نشر المكتبة المقدمة تحت MIT ترخيص، ما يعني أن لأي أحد الحق في استخدامها دون قيود.",noteItems:"يجب أن يكون لكل عنصر مكتبة اسمه الخاص حتى يكون قابلاً للتصفية. سيتم تضمين عناصر المكتبة التالية:",atleastOneLibItem:"يرجى تحديد عنصر مكتبة واحد على الأقل للبدء",republishWarning:"ملاحظة: بعض العناصر المحددة معينة على أنه نشرها أو تقديمها من قبل. يجب عليك فقط إعادة إرسال العناصر عند تحديث مكتبة موجودة أو إرسالها."},h={title:"تم إرسال المكتبة",content:"شكرا لك {{authorName}}. لقد تم إرسال مكتبتك للمراجعة. يمكنك تتبع الحالة"},S={resetLibrary:"إعادة ضبط المكتبة",removeItemsFromLib:"إزالة العناصر المحددة من المكتبة"},y={header:"تصدير الصورة",label:{withBackground:"الخلفية",onlySelected:"المحدد فقط",darkMode:"الوضع الداكن",embedScene:"تضمين المشهد",scale:"الحجم",padding:"الهوامش"},tooltip:{embedScene:`سيتم حفظ بيانات المشهد في ملف PNG/SVG المصدّر بحيث يمكن استعادة المشهد منه. -سيزيد حجم الملف المصدر.`},title:{exportToPng:"تصدير بصيغة PNG",exportToSvg:"تصدير بصيغة SVG",copyPngToClipboard:"نسخ الـ PNG إلى الحافظة"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"نسخ إلى الحافظة"}},v={tooltip:"رسوماتك مشفرة من النهاية إلى النهاية حتى أن خوادم Excalidraw لن تراها أبدا.",link:"مشاركة المدونة في التشفير من النهاية إلى النهاية في Excalidraw"},x={angle:"الزاوية",element:"عنصر",elements:"العناصر",height:"الارتفاع",scene:"المشهد",selected:"المحدد",storage:"التخزين",title:"إحصائيات للمهووسين",total:"المجموع",version:"الإصدار",versionCopy:"انقر للنسخ",versionNotAvailable:"الإصدار غير متوفر",width:"العرض"},w={addedToLibrary:"تمت الاضافة الى المكتبة!",copyStyles:"نسخت الانماط.",copyToClipboard:"نسخ إلى الحافظة.",copyToClipboardAsPng:`تم نسخ {{exportSelection}} إلى الحافظة بصيغة PNG -({{exportColorScheme}})`,fileSaved:"تم حفظ الملف.",fileSavedToFilename:"حفظ باسم {filename}",canvas:"لوحة الرسم",selection:"العنصر المحدد",pasteAsSingleElement:`استخدم {{shortcut}} للصق كعنصر واحد، -أو لصق في محرر نص موجود`,unableToEmbed:"تضمين هذا الرابط غير مسموح حاليًا. افتح بلاغاً على GitHub لطلب عنوان Url القائمة البيضاء",unrecognizedLinkFormat:"الرابط الذي ضمنته لا يتطابق مع التنسيق المتوقع. الرجاء محاولة لصق النص 'المضمن' المُزوَد من موقع المصدر"},k={transparent:"شفاف",black:"أسود",white:"أبيض",red:"أحمر",pink:"وردي",grape:"عنبي",violet:"بنفسجي",gray:"رمادي",blue:"أزرق",cyan:"سماوي",teal:"أزرق مخضر",green:"أخضر",yellow:"أصفر",orange:"برتقالي",bronze:"برونزي"},T={app:{center_heading:"جميع بياناتك محفوظة محليا في المتصفح الخاص بك.",center_heading_plus:"هل تريد الذهاب إلى Excalidraw+ بدلاً من ذلك؟",menuHint:"التصدير والتفضيلات واللغات ..."},defaults:{menuHint:"التصدير والتفضيلات وغيرها...",center_heading:"الرسم البياني التصويري. بشكل مبسط.",toolbarHint:"اختر أداة و ابدأ الرسم!",helpHint:"الاختصارات و المساعدة"}},E={mostUsedCustomColors:"الألوان المخصصة الأكثر استخداما",colors:"الألوان",shades:"الدرجات",hexCode:"رمز Hex",noShades:"لا تتوفر درجات لهذا اللون"},C={action:{exportToImage:{title:"تصدير كصورة",button:"تصدير كصورة",description:"تصدير بيانات المشهد إلى ملف يمكنك الاستيراد منه لاحقاً."},saveToDisk:{title:"حفظ الملف للجهاز",button:"حفظ الملف للجهاز",description:"تصدير بيانات المشهد إلى ملف يمكنك الاستيراد منه لاحقاً."},excalidrawPlus:{title:"Excalidraw+",button:"تصدير إلى Excalidraw+",description:"حفظ المشهد إلى مساحة العمل +Excalidraw الخاصة بك."}},modal:{loadFromFile:{title:"تحميل من ملف",button:"تحميل من ملف",description:"سيتم التحميل من الملف استبدال المحتوى الموجود.

    يمكنك النسخ الاحتياطي لرسمك أولاً باستخدام أحد الخيارات أدناه."},shareableLink:{title:"تحميل من رابط",button:"استبدال محتواي",description:"سيتسبب تحميل رسمة خارجية باستبدال محتواك الموجود حالياً.

    بإمكانك إجراء النسخ الاحتياطي لرسمتك الحالية باستخدام أحد الخيارات أدناه."}}},_={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:S,imageExportDialog:y,encrypted:v,stats:x,toast:w,colors:k,welcomeScreen:T,colorPicker:E,overwriteConfirm:C,mermaid:_};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,k as colors,S as confirmDialog,L as default,v as encrypted,m as errorDialog,d as errorSplash,a as errors,b as exportDialog,l as headings,p as helpDialog,n as hints,y as imageExportDialog,e as labels,o as library,_ as mermaid,C as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,x as stats,w as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=ar-SA.json-SV43LhYq.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js.map b/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js.map deleted file mode 100644 index ee33f9f..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ar-SA.json-SV43LhYq.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ar-SA.json-SV43LhYq.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js b/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js deleted file mode 100644 index 26ca834..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"Yapışdır",pasteAsPlaintext:"Düz mətn kimi yapışdırın",pasteCharts:"Diaqramları yapışdırın",selectAll:"Hamısını seç",multiSelect:"Seçimə element əlavə edin",moveCanvas:"Kanvası köçürün",cut:"Kəs",copy:"Kopyala",copyAsPng:"PNG olaraq panoya kopyala",copyAsSvg:"SVG olaraq panoya kopyala",copyText:"Mətn olaraq panoya kopyala",copySource:"",convertToCode:"",bringForward:"Önə daşı",sendToBack:"Geriyə göndərin",bringToFront:"Önə gətirin",sendBackward:"Geriyə göndərin",delete:"Sil",copyStyles:"Stilləri kopyalayın",pasteStyles:"Stilləri yapışdırın",stroke:"Strok rəngi",background:"Arxa fon",fill:"Doldur",strokeWidth:"Strok eni",strokeStyle:"Strok stili",strokeStyle_solid:"Solid",strokeStyle_dashed:"Kəsik",strokeStyle_dotted:"Nöqtəli",sloppiness:"Səliqəsizlik",opacity:"Şəffaflıq",textAlign:"Mətni uyğunlaşdır",edges:"Kənarlar",sharp:"Kəskin",round:"Dəyirmi",arrowheads:"Ox ucları",arrowhead_none:"Heç biri",arrowhead_arrow:"Ox",arrowhead_bar:"Çubuq",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Üçbucaq",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Şrift ölçüsü",fontFamily:"Şrift qrupu",addWatermark:'"Made with Excalidraw" əlavə et',handDrawn:"Əllə çəkilmiş",normal:"Normal",code:"Kod",small:"Kiçik",medium:"Orta",large:"Böyük",veryLarge:"Çox böyük",solid:"Solid",hachure:"Ştrix",zigzag:"Ziqzaq",crossHatch:"Çarpaz dəlik",thin:"İncə",bold:"Qalın",left:"Sol",center:"Mərkəz",right:"Sağ",extraBold:"Ekstra qalın",architect:"Memar",artist:"Rəssam",cartoonist:"Karikaturaçı",fileTitle:"Fayl adı",colorPicker:"Rəng seçən",canvasColors:"Kanvas üzərində istifadə olunur",canvasBackground:"Kanvas arxa fonu",drawingCanvas:"Kanvas çəkmək",layers:"Qatlar",actions:"Hərəkətlər",language:"Dil",liveCollaboration:"Canlı əməkdaşlıq...",duplicateSelection:"Dublikat",untitled:"Başlıqsız",name:"Ad",yourName:"Adınız",madeWithExcalidraw:"Excalidraw ilə hazırlanmışdır",group:"Qrup şəklində seçim",ungroup:"Qrupsuz seçim",collaborators:"",showGrid:"",addToLibrary:"",removeFromLibrary:"",libraryLoadingMessage:"",libraries:"",loadingScene:"",align:"",alignTop:"",alignBottom:"",alignLeft:"",alignRight:"",centerVertically:"",centerHorizontally:"",distributeHorizontally:"",distributeVertically:"",flipHorizontal:"",flipVertical:"",viewMode:"",share:"",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},o={clearReset:"",exportJSON:"",exportImage:"",export:"",copyToClipboard:"",save:"",saveAs:"",load:"",getShareableLink:"",close:"",selectLanguage:"",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"",done:"",edit:"",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"",darkMode:"",lightMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},r={clearReset:"",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},t={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"",image:"",rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"",selectedShapeActions:"",shapes:""},n={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"",canvasTooBig:"",canvasTooBigTip:""},d={headingMain:"",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},c={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:""},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},g={blog:"",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},y={title:"",content:""},h={resetLibrary:"",removeItemsFromLib:""},k={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"",link:""},v={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},x={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},w={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},f={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},L={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:a,buttons:o,alerts:r,errors:t,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:y,confirmDialog:h,imageExportDialog:k,encrypted:S,stats:v,toast:x,colors:w,welcomeScreen:T,colorPicker:_,overwriteConfirm:f,mermaid:L};export{r as alerts,o as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,w as colors,h as confirmDialog,C as default,S as encrypted,m as errorDialog,d as errorSplash,t as errors,p as exportDialog,l as headings,g as helpDialog,n as hints,k as imageExportDialog,e as labels,a as library,L as mermaid,f as overwriteConfirm,u as publishDialog,y as publishSuccessDialog,c as roomDialog,v as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=az-AZ.json-oLcB2OJI.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js.map b/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js.map deleted file mode 100644 index 4c74530..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/az-AZ.json-oLcB2OJI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"az-AZ.json-oLcB2OJI.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js b/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js deleted file mode 100644 index f952f5d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js +++ /dev/null @@ -1,6 +0,0 @@ -const e={paste:"Постави",pasteAsPlaintext:"Постави като обикновен текст",pasteCharts:"Постави графики",selectAll:"Маркирай всичко",multiSelect:"Добави елемент към селекция",moveCanvas:"Премести платно",cut:"Изрежи",copy:"Копирай",copyAsPng:"Копиране в клипборда",copyAsSvg:"Копирано в клипборда като SVG",copyText:"",copySource:"",convertToCode:"",bringForward:"Преместване напред",sendToBack:"Изнасяне назад",bringToFront:"Изнасяне отпред",sendBackward:"Изпрати отзад",delete:"Изтрий",copyStyles:"Копирайте стилове",pasteStyles:"Постави стилове",stroke:"Щрих",background:"Фон",fill:"Наситеност",strokeWidth:"Ширина на щриха",strokeStyle:"Стил на линия",strokeStyle_solid:"Плътен",strokeStyle_dashed:"Пунктир",strokeStyle_dotted:"Пунктирано",sloppiness:"Небрежност",opacity:"Прозрачност",textAlign:"Подравняване на текста",edges:"Крайща",sharp:"Остър",round:"Закръглено",arrowheads:"Стрелки",arrowhead_none:"Без",arrowhead_arrow:"Стрелка",arrowhead_bar:"Връх на стрелката",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Триъгълник",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Размер на шрифта",fontFamily:"Семейство шрифтове",addWatermark:'Добави "Направено с Excalidraw"',handDrawn:"Нарисувано на ръка",normal:"Нормален",code:"Код",small:"Малък",medium:"Среден",large:"Голям",veryLarge:"Много голям",solid:"Солиден",hachure:"Хералдика",zigzag:"Зигзаг",crossHatch:"Двойно-пресечено",thin:"Тънък",bold:"Ясно очертан",left:"Ляво",center:"Център",right:"Дясно",extraBold:"Много ясно очертан",architect:"Архитект",artist:"Художник",cartoonist:"Карикатурист",fileTitle:"Име на файл",colorPicker:"Избор на цвят",canvasColors:"Използван на платно",canvasBackground:"Фон на платно",drawingCanvas:"Платно за рисуване",layers:"Слоеве",actions:"Действия",language:"Език",liveCollaboration:"",duplicateSelection:"Дублирай",untitled:"Неозаглавено",name:"Име",yourName:"Вашето име",madeWithExcalidraw:"Направено с Excalidraw",group:"Групирай селекцията",ungroup:"Спри групирането на селекцията",collaborators:"Сътрудници",showGrid:"Показване на мрежа",addToLibrary:"Добавяне към библиотеката",removeFromLibrary:"Премахване от библиотеката",libraryLoadingMessage:"Зареждане на библиотеката…",libraries:"Разглеждане на библиотеките",loadingScene:"Зареждане на сцена…",align:"Подравняване",alignTop:"Подравняване отгоре",alignBottom:"Подравняване отдолу",alignLeft:"Подравняване отляво",alignRight:"Подравняване отдясно",centerVertically:"Центрирай вертикално",centerHorizontally:"Центрирай хоризонтално",distributeHorizontally:"Разпредели хоризонтално",distributeVertically:"Разпредели вертикално",flipHorizontal:"Хоризонтално обръщане",flipVertical:"Вертикално обръщане",viewMode:"Изглед",share:"Сподели",showStroke:"",showBackground:"",toggleTheme:"Включи тема",personalLib:"Лична Библиотека",excalidrawLib:"Excalidraw Библиотека",decreaseFontSize:"Намали размера на шрифта",increaseFontSize:"Увеличи размера на шрифта",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"Редактирай линк",editEmbed:"",create:"",createEmbed:"",label:"Линк",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"Заключи",unlock:"Отключи",lockAll:"Заключи всички",unlockAll:"Отключи всички"},statusPublished:"Публикувани",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"Избери цвят от платното",textToDiagram:"",prompt:""},o={noItems:"Няма добавени неща все още...",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"Нулиране на платно",exportJSON:"",exportImage:"",export:"Запази на...",copyToClipboard:"Копиране в клипборда",save:"Запази към текущ файл",saveAs:"Запиши като",load:"Отвори",getShareableLink:"Получаване на връзка за споделяне",close:"Затвори",selectLanguage:"Избор на език",scrollBackToContent:"Превъртете обратно към съдържанието",zoomIn:"Приближаване",zoomOut:"Отдалечаване",resetZoom:"Стандартен мащаб",menu:"Меню",done:"Завършено",edit:"Редактиране",undo:"Отмяна",redo:"Повтори",resetLibrary:"Нулиране на библиотеката",createNewRoom:"Създай нова стая",fullScreen:"На цял екран",darkMode:"Тъмен режим",lightMode:"Светъл режим",zenMode:"Режим Zen",objectsSnapMode:"",exitZenMode:"Спиране на Zen режим",cancel:"Отмени",clear:"Изчисти",remove:"Премахване",embed:"",publishLibrary:"Публикувай",submit:"Изпрати",confirm:"Потвърждаване",embeddableInteractionButton:""},r={clearReset:"Това ще изчисти цялото платно. Сигурни ли сте?",couldNotCreateShareableLink:"Връзката не може да бъде създадена.",couldNotCreateShareableLinkTooBig:"Не може да се създаде връзка за споделяне: сцената е твърде голяма",couldNotLoadInvalidFile:"Невалиден файл не може да се зареди",importBackendFailed:"Импортирането от бекенд не беше успешно.",cannotExportEmptyCanvas:"Не може да се експортира празно платно.",couldNotCopyToClipboard:"Не можем да копираме в клипбоарда.",decryptFailed:"Данните не можаха да се дешифрират.",uploadedSecurly:"Качването е защитено с криптиране от край до край, което означава, че сървърът Excalidraw и трети страни не могат да четат съдържанието.",loadSceneOverridePrompt:"Зареждането на външна рисунка ще презапише настоящото ви съдържание. Желаете ли да продължите?",collabStopOverridePrompt:`Прекратяването на сесията ще презапише предишната, локално запазена, рисунка. Сигурни ли сте? - -(Ако искате да продължите с локалната рисунка, просто затворете таба на браузъра.)`,errorAddingToLibrary:"Не можем да заредим от библиотеката",errorRemovingFromLibrary:"Не можем да премахнем елемент от библиотеката",confirmAddLibrary:"Ще се добавят {{numShapes}} фигура(и) във вашата библиотека. Сигурни ли сте?",imageDoesNotContainScene:"",cannotRestoreFromImage:"Не може да бъде възстановена сцена от този файл",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"Изтрий {{count}} елемент(а) от библиотеката?",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"Този файлов формат не се поддържа.",imageInsertError:"",fileTooBig:"Файлът е твърде голям. Максималния допустим размер е {{maxSize}}.",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"Невалиден SVG.",cannotResolveCollabServer:"",importLibraryError:"Не можем да заредим библиотеката",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"Силно препоръчваме да изключите тази настройка. Можете да следвате тези стъпки за това как да го направите.",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"Селекция",image:"Вмъкване на изображение",rectangle:"Правоъгълник",diamond:"Диамант",ellipse:"Елипс",arrow:"Стрелка",line:"Линия",freedraw:"Рисуване",text:"Текст",library:"Библиотека",lock:"Поддържайте избрания инструмент активен след рисуване",penMode:"",link:"",eraser:"Гума",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"Още инструменти",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"Действия по платното",selectedShapeActions:"Избрани действия",shapes:"Фигури"},l={canvasPanning:"",linearElement:"Кликнете, за да стартирате няколко точки, плъзнете за една линия",freeDraw:"Натиснете и влачете, пуснете като сте готови",text:"Подсказка: Можете също да добавите текст като натиснете някъде два път с инструмента за селекция",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"Кликнете върху последната точка или натиснете Escape или Enter, за да завършите",lockAngle:"Можете да ограничите ъгъла, като задържите SHIFT",resize:`Може да ограничите при преоразмеряване като задържите SHIFT, -задръжте ALT за преоразмерите през центъра`,resizeImage:"",rotate:"Можете да ограничите ъглите, като държите SHIFT, докато се въртите",lineEditor_info:"",lineEditor_pointSelected:"Натиснете Delete за да изтриете точка(и), CtrlOrCmd+D за дуплициране, или извлачете за да преместите",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"Натиснете Enter, за да добавите",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Невъзможност за показване на preview",canvasTooBig:"Платното е твърде голямо.",canvasTooBigTip:"Подсказка: пробвайте да приближите далечните елементи по-близко."},c={headingMain:"Среща грешка. Опитайте ",clearCanvasMessage:"Ако презареждането не работи, опитайте ",clearCanvasCaveat:" Това ще доведе до загуба на работа ",trackedToSentry:"Грешката с идентификатор {{eventId}} беше проследен в нашата система.",openIssueMessage:"Бяхме много предпазливи да не включите информацията за вашата сцена при грешката. Ако сцената ви не е частна, моля, помислете за последващи действия на нашата Моля, включете информация по-долу, като я копирате и добавите в GitHub.",sceneContent:"Съдържание на сцената:"},d={desc_intro:"Можете да поканите хора на текущата си сцена да си сътрудничат с вас.",desc_privacy:"Не се притеснявайте, сесията използва криптиране от край до край, така че каквото нарисувате ще остане частно. Дори нашият сървър няма да може да види какво предлагате.",button_startSession:"Стартирайте сесията",button_stopSession:"Стоп на сесията",desc_inProgressIntro:"Сесията за сътрудничество на живо е в ход.",desc_shareLink:"Споделете тази връзка с всеки, с когото искате да си сътрудничите:",desc_exitSession:"Спирането на сесията ще ви изключи от стаята, но ще можете да продължите да работите със сцената, локално. Имайте предвид, че това няма да засегне други хора и те все още ще могат да си сътрудничат с тяхната версия.",shareTitle:""},m={title:"Грешка"},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"Експорт",excalidrawplus_exportError:""},b={blog:"Прочетете нашия блог",click:"клик",deepSelect:"",deepBoxSelect:"",curvedArrow:"Извита стрелка",curvedLine:"Извита линия",documentation:"Документация",doubleClick:"двойно-щракване",drag:"плъзнете",editor:"Редактор",editLineArrowPoints:"",editText:"",github:"Намерихте проблем? Изпратете",howto:"Следвайте нашите ръководства",or:"или",preventBinding:"Спри прилепяне на стрелките",tools:"Инструменти",shortcuts:"Клавиши за бърз достъп",textFinish:"Завърши редактиране (текстов редактор)",textNewLine:"Добави нова линия (текстов редактор)",title:"Помощ",view:"Преглед",zoomToFit:"Приближи докато се виждат всички елементи",zoomToSelection:"Приближи селекцията",toggleElementLock:"Заключи/Отключи селекция",movePageUpDown:"Премести страница нагоре/надолу",movePageLeftRight:"Премести страница наляво/надясно"},g={title:"Изчисти платното"},u={title:"Публикувай библиотека",itemName:"Име",authorName:"Авторско име",githubUsername:"GitHub потребителско име",twitterUsername:"Twitter потребителско име",libraryName:"Име на библиотеката",libraryDesc:"Описание на библиотеката",website:"Уебсайт",placeholder:{authorName:"Името или потребителското Ви име",libraryName:"Име на библиотеката Ви",libraryDesc:"Описание на библиотеката ви, за да помогнете на хората да разберат приложенията ѝ",githubHandle:"",twitterHandle:"",website:""},errors:{required:"Задължително",website:"Въведете валиден URL адрес"},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"Нулирай библиотека",removeItemsFromLib:""},S={header:"",label:{withBackground:"Фон",onlySelected:"Само избраното",darkMode:"Тъмен режим",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"Изнасяне в PNG",exportToSvg:"Изнасяне в SVG",copyPngToClipboard:"Копирай PNG в клипборда"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Копиране в клипборда"}},v={tooltip:"Вашите рисунки са криптирани от край до край, така че сървърите на Excalidraw няма да могат да ги виждат.",link:""},w={angle:"Ъгъл",element:"Елемент",elements:"Елементи",height:"Височина",scene:"Сцена",selected:"Селектирано",storage:"Съхранение на данни",title:"Статистика за хакери",total:"Общо",version:"Версия",versionCopy:"Настисни за да копираш",versionNotAvailable:"Версията не е налична",width:"Широчина"},x={addedToLibrary:"Добавена към библиотеката",copyStyles:"Копирани стилове.",copyToClipboard:"Копирано в клипборда.",copyToClipboardAsPng:`Копира {{exportSelection}} в клипборда като PNG -({{exportColorScheme}})`,fileSaved:"Файлът е запазен.",fileSavedToFilename:"Запазен към {filename}",canvas:"платно",selection:"селекция",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"Прозрачен",black:"Черен",white:"Бял",red:"Червен",pink:"Розов",grape:"Грозде",violet:"Виолетово",gray:"Сив",blue:"Син",cyan:"Синьозелено",teal:"Тъмно синьо-зелено",green:"Зелено",yellow:"Жълто",orange:"Оранжево",bronze:"Бронзово"},T={app:{center_heading:"Всичките Ви данни са запазени локално в браузъра Ви.",center_heading_plus:"",menuHint:"Експорт, предпочитания, езици, ..."},defaults:{menuHint:"Експорт, предпочитания, и още...",center_heading:"Диаграми. Направени. Просто.",toolbarHint:"Изберете инструмент & Започнете да рисувате!",helpHint:"Преки пътища & помощ"}},_={mostUsedCustomColors:"Най-често използвани цветове",colors:"Цветове",shades:"Нюанси",hexCode:"Шестнадесетичен код",noShades:""},E={action:{exportToImage:{title:"Изнеси като изображение",button:"Изнеси като изображение",description:""},saveToDisk:{title:"Запази към диск",button:"Запази към диск",description:""},excalidrawPlus:{title:"Excalidraw+",button:"Експортирай към Excalidraw+",description:"Запази сцената към Excalidraw+ работното място."}},modal:{loadFromFile:{title:"Зареди от файл",button:"Зареди от файл",description:""},shareableLink:{title:"Зареди от линк",button:"Замени моето съдържание",description:""}}},L={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:_,overwriteConfirm:E,mermaid:L};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,k as colors,y as confirmDialog,C as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,L as mermaid,E as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=bg-BG.json-pnAjs09s.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js.map b/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js.map deleted file mode 100644 index 07d8a2e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/bg-BG.json-pnAjs09s.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bg-BG.json-pnAjs09s.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js b/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js deleted file mode 100644 index 8d6302d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js +++ /dev/null @@ -1,6 +0,0 @@ -const e={paste:"পেস্ট করুন",pasteAsPlaintext:"প্লেইনটেক্সট হিসাবে পেস্ট করুন",pasteCharts:"চার্ট পেস্ট করুন",selectAll:"সবটা সিলেক্ট করুন",multiSelect:"একাধিক সিলেক্ট করুন",moveCanvas:"ক্যানভাস সরান",cut:"কাট করুন",copy:"কপি করুন",copyAsPng:"পীএনজী ছবির মতন কপি করুন",copyAsSvg:"এসভীজী ছবির মতন কপি করুন",copyText:"লিখিত তথ্যের মতন কপি করুন",copySource:"",convertToCode:"",bringForward:"অধিকতর সামনে আনুন",sendToBack:"অধিকতর পিছনে নিয়ে যান",bringToFront:"সবার সামনে আনুন",sendBackward:"সবার পিছনে নিয়ে যান",delete:"মুছা",copyStyles:"ডিজাইন কপি করুন",pasteStyles:"ডিজাইন পেস্ট করুন",stroke:"রেখাংশ",background:"পটভূমি",fill:"রং",strokeWidth:"রেখাংশের বেধ",strokeStyle:"রেখাংশের ডিজাইন",strokeStyle_solid:"পুরু",strokeStyle_dashed:"পাতলা",strokeStyle_dotted:"বিন্দুবিন্দু",sloppiness:"ভ্রান্তি",opacity:"দৃশ্যমানতা",textAlign:"লেখ অনুভূমি",edges:"কোণ",sharp:"তীক্ষ্ণ",round:"গোল",arrowheads:"তীরের শীর্ষভাগ",arrowhead_none:"কিছু না",arrowhead_arrow:"তীর",arrowhead_bar:"রেখাংশ",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"ত্রিভূজ",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"লেখনীর মাত্রা",fontFamily:"লেখনীর হরফ",addWatermark:"এক্সক্যালিড্র দ্বারা প্রস্তুত",handDrawn:"হাতে আঁকা",normal:"স্বাভাবিক",code:"কোড",small:"ছোট",medium:"মাঝারি",large:"বড়",veryLarge:"অনেক বড়",solid:"দৃঢ়",hachure:"ভ্রুলেখা",zigzag:"আঁকাবাঁকা",crossHatch:"ক্রস হ্যাচ",thin:"পাতলা",bold:"পুরু",left:"বাম",center:"কেন্দ্র",right:"ডান",extraBold:"অতি পুরু",architect:"স্থপতি",artist:"শিল্পী",cartoonist:"চিত্রকার",fileTitle:"ফাইলের নাম",colorPicker:"রং পছন্দ করুন",canvasColors:"ক্যানভাসের রং",canvasBackground:"ক্যানভাসের পটভূমি",drawingCanvas:"ব্যবহৃত ক্যানভাস",layers:"মাত্রা",actions:"ক্রিয়া",language:"ভাষা",liveCollaboration:"সরাসরি পারস্পরিক সহযোগিতা...",duplicateSelection:"সদৃশ সিলেক্ট",untitled:"অনামী",name:"নাম",yourName:"আপনার নাম",madeWithExcalidraw:"এক্সক্যালিড্র দ্বারা তৈরি",group:"দল গঠন করুন",ungroup:"দল বিভেদ করুন",collaborators:"সহযোগী",showGrid:"গ্রিড দেখান",addToLibrary:"সংগ্রহে যোগ করুন",removeFromLibrary:"সংগ্রহ থেকে বের করুন",libraryLoadingMessage:"সংগ্রহ তৈরি হচ্ছে",libraries:"সংগ্রহ দেখুন",loadingScene:"দৃশ্য তৈরি হচ্ছে",align:"পংক্তিবিন্যাস",alignTop:"উপর পংক্তি",alignBottom:"নিম্ন পংক্তি",alignLeft:"বাম পংক্তি",alignRight:"ডান পংক্তি",centerVertically:"উলম্ব কেন্দ্রিত",centerHorizontally:"অনুভূমিক কেন্দ্রিত",distributeHorizontally:"অনুভূমিকভাবে বিতরণ করুন",distributeVertically:"উল্লম্বভাবে বিতরণ করুন",flipHorizontal:"অনুভূমিক আবর্তন",flipVertical:"উলম্ব আবর্তন",viewMode:"দৃশ্য",share:"ভাগ করুন",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"লেখনীর মাত্রা কমান",increaseFontSize:"লেখনীর মাত্রা বাড়ান",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"লিঙ্ক সংশোধন",editEmbed:"",create:"লিঙ্ক তৈরী",createEmbed:"",label:"লিঙ্ক নামকরণ",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"আবদ্ধ করুন",unlock:"বিচ্ছিন্ন করুন",lockAll:"সব আবদ্ধ করুন",unlockAll:"সব বিচ্ছিন্ন করুন"},statusPublished:"প্রকাশিত",sidebarLock:"লক",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"সংগ্রহে কিছু যোগ করা হয়নি",hint_emptyLibrary:"এখানে যোগ করার জন্য ক্যানভাসে একটি বস্তু নির্বাচন করুন, অথবা নীচে, প্রকাশ্য সংগ্রহশালা থেকে একটি সংগ্রহ ইনস্টল করুন৷",hint_emptyPrivateLibrary:"এখানে যোগ করার জন্য ক্যানভাসে একটি বস্তু নির্বাচন করুন"},t={clearReset:"ক্যানভাস সাফ করুন",exportJSON:"জেসন নিবদ্ধ করুন",exportImage:"",export:"",copyToClipboard:"ক্লিপবোর্ডে কপি করুন",save:"জমা করুন",saveAs:"অন্যভাবে জমা করুন",load:"",getShareableLink:"ভাগযোগ্য লিঙ্ক পান",close:"বন্ধ করুন",selectLanguage:"ভাষা চিহ্নিত করুন",scrollBackToContent:"বিষয়বস্তুতে ফেরত যান",zoomIn:"বড় করুন",zoomOut:"ছোট করুন",resetZoom:"স্বাভাবিক করুন",menu:"তালিকা",done:"সম্পন্ন",edit:"সংশোধন করুন",undo:"ফেরত যান",redo:"পুনরায় করুন",resetLibrary:"সংগ্রহ সাফ করুন",createNewRoom:"নতুন রুম বানান",fullScreen:"পূর্ণস্ক্রীন",darkMode:"ডার্ক মোড",lightMode:"লাইট মোড",zenMode:"জেন মোড",objectsSnapMode:"",exitZenMode:"জেন মোড বন্ধ করুন",cancel:"বাতিল",clear:"সাফ",remove:"বিয়োগ",embed:"",publishLibrary:"সংগ্রহ প্রকাশ করুন",submit:"জমা করুন",confirm:"নিশ্চিত করুন",embeddableInteractionButton:""},r={clearReset:"এটি পুরো ক্যানভাস সাফ করবে। আপনি কি নিশ্চিত?",couldNotCreateShareableLink:"ভাগ করা যায় এমন লিঙ্ক তৈরি করা যায়নি।",couldNotCreateShareableLinkTooBig:"ভাগ করা যায় এমন লিঙ্ক তৈরি করা যায়নি: দৃশ্যটি খুব বড়",couldNotLoadInvalidFile:"অবৈধ ফাইল লোড করা যায়নি",importBackendFailed:"ব্যাকেন্ড থেকে আপলোড ব্যর্থ হয়েছে।",cannotExportEmptyCanvas:"খালি ক্যানভাস নিবদ্ধ করা যাবে না।",couldNotCopyToClipboard:"ক্লিপবোর্ডে কপি করা যায়নি।",decryptFailed:"তথ্য ডিক্রিপ্ট করা যায়নি।",uploadedSecurly:"আপলোডটি এন্ড-টু-এন্ড এনক্রিপশনের মাধ্যমে সুরক্ষিত করা হয়েছে, যার অর্থ হল এক্সক্যালিড্র সার্ভার এবং তৃতীয় পক্ষের দ্বারা পড়তে পারা সম্ভব নয়।",loadSceneOverridePrompt:"বাহ্যিক অঙ্কন লোড করা আপনার বিদ্যমান দৃশ্য প্রতিস্থাপন করবে। আপনি কি অবিরত করতে চান?",collabStopOverridePrompt:`অধিবেশন বন্ধ করা আপনার পূর্ববর্তী, স্থানীয়ভাবে সঞ্চিত অঙ্কন ওভাররাইট করবে। আপনি কি নিশ্চিত? - -(যদি আপনি আপনার স্থানীয় অঙ্কন রাখতে চান, তাহলে শুধু ব্রাউজার ট্যাবটি বন্ধ করুন।)`,errorAddingToLibrary:"বস্তুটি সংগ্রহে যোগ করা যায়নি",errorRemovingFromLibrary:"বস্তুটি সংগ্রহ থেকে বিয়োগ করা যায়নি",confirmAddLibrary:"এটি আপনার সংগ্রহে {{numShapes}} আকার(গুলি) যোগ করবে। আপনি কি নিশ্চিত?",imageDoesNotContainScene:"এই ছবিতে কোনো দৃশ্যের তথ্য আছে বলে মনে হয় না৷ আপনি কি নিবদ্ধ করার সময় দৃশ্য এমবেডিং করতে সক্ষম?",cannotRestoreFromImage:"এই ফাইল থেকে দৃশ্য পুনরুদ্ধার করা যায়নি",invalidSceneUrl:"সরবরাহ করা লিঙ্ক থেকে দৃশ্য লোড করা যায়নি৷ এটি হয় বিকৃত, অথবা বৈধ এক্সক্যালিড্র জেসন তথ্য নেই৷",resetLibrary:"এটি আপনার সংগ্রহ পরিষ্কার করবে। আপনি কি নিশ্চিত?",removeItemsFromsLibrary:"সংগ্রহ থেকে {{count}} বস্তু বিয়োগ করা হবে। আপনি কি নিশ্চিত?",invalidEncryptionKey:"অবৈধ এনক্রীপশন কী।",collabOfflineWarning:""},a={unsupportedFileType:"অসমর্থিত ফাইল।",imageInsertError:"ছবি সন্নিবেশ করা যায়নি। পরে আবার চেষ্টা করুন...",fileTooBig:"ফাইলটি খুব বড়। সর্বাধিক অনুমোদিত আকার হল {{maxSize}}৷",svgImageInsertError:"এসভীজী ছবি সন্নিবেশ করা যায়নি। এসভীজী মার্কআপটি অবৈধ মনে হচ্ছে৷",failedToFetchImage:"",invalidSVGString:"এসভীজী মার্কআপটি অবৈধ মনে হচ্ছে৷",cannotResolveCollabServer:"কোল্যাব সার্ভারের সাথে সংযোগ করা যায়নি। পৃষ্ঠাটি পুনরায় লোড করে আবার চেষ্টা করুন।",importLibraryError:"সংগ্রহ লোড করা যায়নি",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"বাছাই",image:"চিত্র সন্নিবেশ",rectangle:"আয়তক্ষেত্র",diamond:"রুহিতন",ellipse:"উপবৃত্ত",arrow:"তীর",line:"রেখা",freedraw:"কলম",text:"লেখা",library:"সংগ্রহ",lock:"আঁকার পরে নির্বাচিত টুল সক্রিয় রাখুন",penMode:"",link:"একটি নির্বাচিত আকৃতির জন্য লিঙ্ক যোগ বা আপডেট করুন",eraser:"ঝাড়ন",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"ক্যানভাস কার্যকলাপ",selectedShapeActions:"বাছাই করা আকার(গুলি)র কার্যকলাপ",shapes:"আকার(গুলি)"},l={canvasPanning:"",linearElement:"একাধিক বিন্দু শুরু করতে ক্লিক করুন, একক লাইনের জন্য টেনে আনুন",freeDraw:"ক্লিক করুন এবং টেনে আনুন, আপনার কাজ শেষ হলে ছেড়ে দিন",text:"বিশেষ্য: আপনি নির্বাচন টুলের সাথে যে কোনো জায়গায় ডাবল-ক্লিক করে পাঠ্য যোগ করতে পারেন",embeddable:"",text_selected:"লেখা সম্পাদনা করতে ডাবল-ক্লিক করুন বা এন্টার টিপুন",text_editing:"লেখা সম্পাদনা শেষ করতে এসকেপ বা কন্ট্রোল/কম্যান্ড যোগে এন্টার টিপুন",linearElementMulti:"শেষ বিন্দুতে ক্লিক করুন অথবা শেষ করতে এসকেপ বা এন্টার টিপুন",lockAngle:"ঘোরানোর সময় আপনি শিফ্ট ধরে রেখে কোণ সীমাবদ্ধ করতে পারেন",resize:`আপনি আকার পরিবর্তন করার সময় শিফ্ট ধরে রেখে অনুপাতকে সীমাবদ্ধ করতে পারেন, -কেন্দ্র থেকে আকার পরিবর্তন করতে অল্ট ধরে রাখুন`,resizeImage:"আপনি শিফ্ট ধরে রেখে অবাধে আকার পরিবর্তন করতে পারেন, কেন্দ্র থেকে আকার পরিবর্তন করতে অল্ট ধরুন",rotate:"আপনি ঘোরানোর সময় শিফ্ট ধরে রেখে কোণগুলিকে সীমাবদ্ধ করতে পারেন",lineEditor_info:"",lineEditor_pointSelected:"বিন্দু(গুলি) মুছতে ডিলিট টিপুন, কন্ট্রোল/কম্যান্ড যোগে ডি টিপুন নকল করতে অথবা সরানোর জন্য টানুন",lineEditor_nothingSelected:`সম্পাদনা করার জন্য একটি বিন্দু নির্বাচন করুন (একাধিক নির্বাচন করতে শিফ্ট ধরে রাখুন), -অথবা অল্ট ধরে রাখুন এবং নতুন বিন্দু যোগ করতে ক্লিক করুন`,placeImage:"ছবিটি স্থাপন করতে ক্লিক করুন, অথবা নিজে আকার সেট করতে ক্লিক করুন এবং টেনে আনুন",publishLibrary:"আপনার নিজস্ব সংগ্রহ প্রকাশ করুন",bindTextToElement:"লেখা যোগ করতে এন্টার টিপুন",deepBoxSelect:"",eraserRevert:"মুছে ফেলার জন্য চিহ্নিত উপাদানগুলিকে ফিরিয়ে আনতে অল্ট ধরে রাখুন",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"প্রিভিউ দেখাতে অপারগ",canvasTooBig:"ক্যানভাস অনেক বড়।",canvasTooBigTip:"বিশেষ্য: দূরতম উপাদানগুলোকে একটু কাছাকাছি নিয়ে যাওয়ার চেষ্টা করুন।"},c={headingMain:"একটি ত্রুটির সম্মুখীন হয়েছে৷ চেষ্টা করুন ",clearCanvasMessage:"যদি পুনরায় লোড করা কাজ না করে, চেষ্টা করুন ",clearCanvasCaveat:" এর ফলে কাজের ক্ষতি হবে ",trackedToSentry:"ত্রুটি {{eventId}} আমাদের সিস্টেমে ট্র্যাক করা হয়েছিল।",openIssueMessage:"আমরা ত্রুটিতে আপনার দৃশ্যের তথ্য অন্তর্ভুক্ত না করার জন্য খুব সতর্ক ছিলাম। আপনার দৃশ্য ব্যক্তিগত না হলে, আমাদের অনুসরণ করার কথা বিবেচনা করুন অনুগ্রহ করে GitHub ইস্যুতে অনুলিপি এবং পেস্ট করে নীচের তথ্য অন্তর্ভুক্ত করুন।",sceneContent:"দৃশ্য বিষয়বস্তু:"},d={desc_intro:"আপনি আপনার সাথে সহযোগিতা করার জন্য আপনার বর্তমান দৃশ্যে লোকেদের আমন্ত্রণ জানাতে পারেন৷",desc_privacy:"চিন্তা করবেন না, সেশনটি এন্ড-টু-এন্ড এনক্রিপশন ব্যবহার করে, তাই আপনি যা আঁকবেন তা গোপন থাকবে। এমনকি আমাদের সার্ভার আপনি যা নিয়ে এসেছেন তা দেখতে সক্ষম হবে না।",button_startSession:"সেশন শুরু করুন",button_stopSession:"সেশন বন্ধ করুন",desc_inProgressIntro:"লাইভ-সহযোগীতার সেশন এখন চলছে।",desc_shareLink:"আপনি যার সাথে সহযোগিতা করতে চান তাদের সাথে এই লিঙ্কটি ভাগ করুন: ",desc_exitSession:"অধিবেশন বন্ধ করা আপনাকে রুম থেকে সংযোগ বিচ্ছিন্ন করবে, কিন্তু আপনি স্থানীয়ভাবে দৃশ্যের সাথে কাজ চালিয়ে যেতে সক্ষম হবেন। মনে রাখবেন যে এটি অন্য লোকেদের প্রভাবিত করবে না এবং তারা এখনও তাদের সংস্করণে সহযোগিতা করতে সক্ষম হবে।",shareTitle:"এক্সক্যালিড্র লাইভ সহযোগিতা সেশনে যোগ দিন"},m={title:"ত্রুটি"},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"নিবদ্ধ",excalidrawplus_exportError:""},b={blog:"",click:"ক্লিক",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"অথবা",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},g={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"",link:""},w={angle:"কোণ",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:"প্রস্থ"},k={addedToLibrary:"সংগ্রহশালায় যুক্ত হয়েছে",copyStyles:"",copyToClipboard:"ক্লিপবোর্ডে কপি করা হয়েছে।",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"বাছাই",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},f={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:w,toast:k,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:C};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,f as default,S as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,v as imageExportDialog,e as labels,o as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,k as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=bn-BD.json-xZvqmnH0.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js.map b/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js.map deleted file mode 100644 index 63c95d1..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/bn-BD.json-xZvqmnH0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bn-BD.json-xZvqmnH0.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js b/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js deleted file mode 100644 index b8200ad..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"Enganxa",pasteAsPlaintext:"Enganxar com a text pla",pasteCharts:"Enganxa els diagrames",selectAll:"Selecciona-ho tot",multiSelect:"Afegeix un element a la selecció",moveCanvas:"Mou el llenç",cut:"Retalla",copy:"Copia",copyAsPng:"Copia al porta-retalls com a PNG",copyAsSvg:"Copia al porta-retalls com a SVG",copyText:"Copia al porta-retalls com a text",copySource:"Copia l'origen al porta-retalls",convertToCode:"",bringForward:"Porta endavant",sendToBack:"Envia enrere",bringToFront:"Porta al davant",sendBackward:"Envia al fons",delete:"Elimina",copyStyles:"Copia els estils",pasteStyles:"Enganxa els estils",stroke:"Color del traç",background:"Color del fons",fill:"Estil del fons",strokeWidth:"Amplada del traç",strokeStyle:"Estil del traç",strokeStyle_solid:"Sòlid",strokeStyle_dashed:"Guions",strokeStyle_dotted:"Punts",sloppiness:"Estil del traç",opacity:"Opacitat",textAlign:"Alineació del text",edges:"Vores",sharp:"Agut",round:"Arrodonit",arrowheads:"Puntes de fletxa",arrowhead_none:"Cap",arrowhead_arrow:"Fletxa",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triangle",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Mida de lletra",fontFamily:"Tipus de lletra",addWatermark:"Afegeix-hi «Fet amb Excalidraw»",handDrawn:"Dibuixat a mà",normal:"Normal",code:"Codi",small:"Petit",medium:"Mitjà",large:"Gran",veryLarge:"Molt gran",solid:"Sòlid",hachure:"Ratlletes",zigzag:"",crossHatch:"Ratlletes creuades",thin:"Fi",bold:"Negreta",left:"Esquerra",center:"Centre",right:"Dreta",extraBold:"Extra negreta",architect:"Arquitecte",artist:"Artista",cartoonist:"Dibuixant",fileTitle:"Nom del fitxer",colorPicker:"Selector de colors",canvasColors:"Usat al llenç",canvasBackground:"Fons del llenç",drawingCanvas:"Llenç de dibuix",layers:"Capes",actions:"Accions",language:"Llengua",liveCollaboration:"Col·laboració en directe...",duplicateSelection:"Duplica",untitled:"Sense títol",name:"Nom",yourName:"El vostre nom",madeWithExcalidraw:"Fet amb Excalidraw",group:"Agrupa la selecció",ungroup:"Desagrupa la selecció",collaborators:"Col·laboradors",showGrid:"Mostra la graella",addToLibrary:"Afegir a la biblioteca",removeFromLibrary:"Eliminar de la biblioteca",libraryLoadingMessage:"S'està carregant la biblioteca…",libraries:"Explora les biblioteques",loadingScene:"S'està carregant l'escena…",align:"Alinea",alignTop:"Alinea a la part superior",alignBottom:"Alinea a la part inferior",alignLeft:"Alinea a l’esquerra",alignRight:"Alinea a la dreta",centerVertically:"Centra verticalment",centerHorizontally:"Centra horitzontalment",distributeHorizontally:"Distribueix horitzontalment",distributeVertically:"Distribueix verticalment",flipHorizontal:"Capgira horitzontalment",flipVertical:"Capgira verticalment",viewMode:"Mode de visualització",share:"Comparteix",showStroke:"Mostra el selector de color del traç",showBackground:"Mostra el selector de color de fons",toggleTheme:"Activa o desactiva el tema",personalLib:"Biblioteca personal",excalidrawLib:"Biblioteca d'Excalidraw",decreaseFontSize:"Redueix la mida de la lletra",increaseFontSize:"Augmenta la mida de la lletra",unbindText:"Desvincular el text",bindText:"Ajusta el text al contenidor",createContainerFromText:"",link:{edit:"Edita l'enllaç",editEmbed:"Edita l'enllaç i incrusta-ho",create:"Crea un enllaç",createEmbed:"",label:"Enllaç",labelEmbed:"",empty:"No s'ha definit cap enllaç"},lineEditor:{edit:"Editar línia",exit:"Sortir de l'editor de línia"},elementLock:{lock:"Bloca",unlock:"Desbloca",lockAll:"Bloca-ho tot",unlockAll:"Desbloca-ho tot"},statusPublished:"Publicat",sidebarLock:"Manté la barra lateral oberta",selectAllElementsInFrame:"Selecciona tots els elements del marc",removeAllElementsFromFrame:"Eliminat tots els elements del marc",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Encara no s'hi han afegit elements...",hint_emptyLibrary:"Trieu un element o un llenç per a afegir-lo aquí, o instal·leu una biblioteca del repositori públic, més avall.",hint_emptyPrivateLibrary:"Trieu un element o un llenç per a afegir-lo aquí."},r={clearReset:"Neteja el llenç",exportJSON:"Exporta a un fitxer",exportImage:"Exporta la imatge...",export:"Guardar a...",copyToClipboard:"Copia al porta-retalls",save:"Desa al fitxer actual",saveAs:"Anomena i desa",load:"Obrir",getShareableLink:"Obté l'enllaç per a compartir",close:"Tanca",selectLanguage:"Trieu la llengua",scrollBackToContent:"Torna al contingut",zoomIn:"Apropa't",zoomOut:"Allunya't",resetZoom:"Restableix el zoom",menu:"Menú",done:"Fet",edit:"Edita",undo:"Desfés",redo:"Refés",resetLibrary:"Restableix la biblioteca",createNewRoom:"Crea una sala nova",fullScreen:"Pantalla completa",darkMode:"Mode fosc",lightMode:"Mode clar",zenMode:"Mode zen",objectsSnapMode:"",exitZenMode:"Surt de mode zen",cancel:"Cancel·la",clear:"Neteja",remove:"Suprimeix",embed:"",publishLibrary:"Publica",submit:"Envia",confirm:"Confirma",embeddableInteractionButton:"Feu clic per interactuar"},t={clearReset:"S'esborrarà tot el llenç. N'esteu segur?",couldNotCreateShareableLink:"No s'ha pogut crear un enllaç per a compartir.",couldNotCreateShareableLinkTooBig:"No s’ha pogut crear un enllaç per a compartir: l’escena és massa gran",couldNotLoadInvalidFile:"No s'ha pogut carregar un fitxer no vàlid",importBackendFailed:"Importació fallida.",cannotExportEmptyCanvas:"No es pot exportar un llenç buit.",couldNotCopyToClipboard:"No s'ha pogut copiar al porta-retalls.",decryptFailed:"No s'ha pogut desencriptar.",uploadedSecurly:"La càrrega s'ha assegurat amb xifratge punta a punta, cosa que significa que el servidor Excalidraw i tercers no poden llegir el contingut.",loadSceneOverridePrompt:"Si carregas aquest dibuix extern, substituirá el que tens. Vols continuar?",collabStopOverridePrompt:`Aturar la sessió provocarà la sobreescriptura del dibuix previ, que hi ha desat en l'emmagatzematge local. N'esteu segur? - -(Si voleu conservar el dibuix local, tanqueu la pentanya del navegador en comptes d'aturar la sessió).`,errorAddingToLibrary:"No s'ha pogut afegir l'element a la biblioteca",errorRemovingFromLibrary:"No s'ha pogut eliminar l'element de la biblioteca",confirmAddLibrary:"Això afegirà {{numShapes}} forma(es) a la vostra biblioteca. Estàs segur?",imageDoesNotContainScene:"Aquesta imatge no sembla contenir cap dada d'escena. Heu activat l'incrustació de l'escena durant l'exportació?",cannotRestoreFromImage:"L’escena no s’ha pogut restaurar des d’aquest fitxer d’imatge",invalidSceneUrl:"No s'ha pogut importar l'escena des de l'adreça URL proporcionada. Està malformada o no conté dades Excalidraw JSON vàlides.",resetLibrary:"Això buidarà la biblioteca. N'esteu segur?",removeItemsFromsLibrary:"Suprimir {{count}} element(s) de la biblioteca?",invalidEncryptionKey:"La clau d'encriptació ha de tenir 22 caràcters. La col·laboració en directe està desactivada.",collabOfflineWarning:`Sense connexió a internet disponible. -Els vostres canvis no seran guardats!`},l={unsupportedFileType:"Tipus de fitxer no suportat.",imageInsertError:"No s'ha pogut insertar la imatge, torneu-ho a provar més tard...",fileTooBig:"El fitxer és massa gros. La mida màxima permesa és {{maxSize}}.",svgImageInsertError:"No ha estat possible inserir la imatge SVG. Les marques SVG semblen invàlides.",failedToFetchImage:"",invalidSVGString:"SVG no vàlid.",cannotResolveCollabServer:"No ha estat possible connectar amb el servidor collab. Si us plau recarregueu la pàgina i torneu a provar.",importLibraryError:"No s'ha pogut carregar la biblioteca",collabSaveFailed:"No s'ha pogut desar a la base de dades de fons. Si els problemes persisteixen, hauríeu de desar el fitxer localment per assegurar-vos que no perdeu el vostre treball.",collabSaveFailed_sizeExceeded:"No s'ha pogut desar a la base de dades de fons, sembla que el llenç és massa gran. Hauríeu de desar el fitxer localment per assegurar-vos que no perdeu el vostre treball.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"No s'ha pogut enganxar.",copyToSystemClipboardFailed:""},i={selection:"Selecció",image:"Insereix imatge",rectangle:"Rectangle",diamond:"Rombe",ellipse:"El·lipse",arrow:"Fletxa",line:"Línia",freedraw:"Dibuix",text:"Text",library:"Biblioteca",lock:"Mantenir activa l'eina seleccionada desprès de dibuixar",penMode:"Mode de llapis - evita tocar",link:"Afegeix / actualitza l'enllaç per a la forma seleccionada",eraser:"Esborrador",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Mà (eina de desplaçament)",extraTools:"",mermaidToExcalidraw:"De Mermaid a Excalidraw",magicSettings:"Preferències d'IA"},o={canvasActions:"Accions del llenç",selectedShapeActions:"Accions per a les formes seleccionades",shapes:"Formes"},n={canvasPanning:"Per moure el llenç, manteniu premuda la roda del ratolí o la barra espaiadora mentre arrossegueu o utilitzeu l'eina manual",linearElement:"Feu clic per a dibuixar múltiples punts; arrossegueu per a una sola línia",freeDraw:"Feu clic i arrossegueu, deixeu anar per a finalitzar",text:"Consell: també podeu afegir text fent doble clic en qualsevol lloc amb l'eina de selecció",embeddable:"",text_selected:"Feu doble clic o premeu Retorn per a editar el text",text_editing:"Premeu Escapada o Ctrl+Retorn (o Ordre+Retorn) per a finalitzar l'edició",linearElementMulti:"Feu clic a l'ultim punt, o pitgeu Esc o Retorn per a finalitzar",lockAngle:"Per restringir els angles, mantenir premut el majúscul (SHIFT)",resize:"Per restringir les proporcions mentres es canvia la mida, mantenir premut el majúscul (SHIFT); per canviar la mida des del centre, mantenir premut ALT",resizeImage:`Podeu redimensionar lliurement prement MAJÚSCULA; -per a redimensionar des del centre, premeu ALT`,rotate:"Per restringir els angles mentre gira, mantenir premut el majúscul (SHIFT)",lineEditor_info:"Mantingueu premut Ctrl o Cmd i feu doble clic o premeu Ctrl o Cmd + Retorn per editar els punts",lineEditor_pointSelected:"Premeu Suprimir per a eliminar el(s) punt(s), CtrlOrCmd+D per a duplicar-lo, o arrossegueu-lo per a moure'l",lineEditor_nothingSelected:`Seleccioneu un punt per a editar-lo (premeu SHIFT si voleu -selecció múltiple), o manteniu Alt i feu clic per a afegir més punts`,placeImage:"Feu clic per a col·locar la imatge o clic i arrossegar per a establir-ne la mida manualment",publishLibrary:"Publiqueu la vostra pròpia llibreria",bindTextToElement:"Premeu enter per a afegir-hi text",deepBoxSelect:"Manteniu CtrlOrCmd per a selecció profunda, i per a evitar l'arrossegament",eraserRevert:"Mantingueu premuda Alt per a revertir els elements seleccionats per a esborrar",firefox_clipboard_write:'És probable que aquesta funció es pugui activar posant la marca "dom.events.asyncClipboard.clipboardItem" a "true". Per canviar les marques del navegador al Firefox, visiteu la pàgina "about:config".',disableSnapping:""},s={cannotShowPreview:"No es pot mostrar la previsualització",canvasTooBig:"Pot ser que el llenç sigui massa gran.",canvasTooBigTip:"Consell: proveu d’acostar una mica els elements més allunyats."},c={headingMain:"S'ha produït un error. Proveu ",clearCanvasMessage:"Si la recàrrega no funciona, proveu ",clearCanvasCaveat:" Això resultarà en la pèrdua de feina ",trackedToSentry:"L'error amb l'identificador {{eventId}} s'ha rastrejat en el nostre sistema.",openIssueMessage:"Anàvem amb molta cura de no incloure la informació de la vostra escena en l'error. Si l'escena no és privada, podeu fer-ne el seguiment al nostre Incloeu la informació a continuació copiant i enganxant a GitHub Issues.",sceneContent:"Contingut de l'escena:"},d={desc_intro:"Podeu convidar persones a la vostra escena actual a col·laborar amb vós.",desc_privacy:"No us preocupeu, la sessió utilitza el xifratge de punta a punta, de manera que qualsevol cosa que dibuixeu romandrà privada. Ni tan sols el nostre servidor podrà veure què feu.",button_startSession:"Inicia la sessió",button_stopSession:"Atura la sessió",desc_inProgressIntro:"La sessió de col·laboració en directe està en marxa.",desc_shareLink:"Comparteix aquest enllaç amb qualsevol persona amb qui vulgueu col·laborar:",desc_exitSession:"Si atureu la sessió, us desconectareu de la sala, però podreu continuar treballant amb el dibuix localment. Tingues en compte que això no afectarà a altres persones, i encara podran col·laborar en la seva versió.",shareTitle:"Uniu-vos a una sessió de col·laboració en directe a Excalidraw"},u={title:"Error"},p={disk_title:"Desa al disc",disk_details:"Exporta les dades de l'escena a un fitxer que després podreu importar.",disk_button:"Desa en un fitxer",link_title:"Enllaç per a compartir",link_details:"Exporta com a un enllaç de només lectura.",link_button:"Exporta a un enllaç",excalidrawplus_description:"Desa l'escena en el vostre espai de treball Excalidraw+.",excalidrawplus_button:"Exporta",excalidrawplus_exportError:"No és possible exportar a Excalidraw+ ara mateix..."},m={blog:"Llegiu el nostre blog",click:"clic",deepSelect:"Selecció profunda",deepBoxSelect:"Seleccioneu profundament dins del quadre i eviteu arrossegar",curvedArrow:"Fletxa corba",curvedLine:"Línia corba",documentation:"Documentació",doubleClick:"doble clic",drag:"arrossega",editor:"Editor",editLineArrowPoints:"",editText:"",github:"Hi heu trobat un problema? Informeu-ne",howto:"Seguiu les nostres guies",or:"o",preventBinding:"Prevenir vinculació de la fletxa",tools:"Eines",shortcuts:"Dreceres de teclat",textFinish:"Finalitza l'edició (editor de text)",textNewLine:"Afegeix una línia nova (editor de text)",title:"Ajuda",view:"Visualització",zoomToFit:"Zoom per veure tots els elements",zoomToSelection:"Zoom per veure la selecció",toggleElementLock:"Blocar/desblocar la selecció",movePageUpDown:"Mou la pàgina cap amunt/a baix",movePageLeftRight:"Mou la pàgina cap a l'esquerra/dreta"},b={title:"Neteja el llenç"},g={title:"Publica la biblioteca",itemName:"Nom de l'element",authorName:"Nom de l'autor/a",githubUsername:"Nom d'usuari de GitHub",twitterUsername:"Nom d'usuari de Twitter",libraryName:"Nom de la biblioteca",libraryDesc:"Descripció de la biblioteca",website:"Lloc web",placeholder:{authorName:"Nom o usuari",libraryName:"Nom de la vostra biblioteca",libraryDesc:"Descripció de la biblioteca per a ajudar a la gent a entendre'n el funcionament",githubHandle:"Identificador de GitHub (opcional), per tal que pugueu editar la biblioteca una vegada enviada per a ser revisada",twitterHandle:"Usuari de twitter (opcional), per tal que puguem donar-vos crèdit quan fem la promoció a Twitter",website:"Enllaç al vostre lloc web personal o a qualsevol altre (opcional)"},errors:{required:"Requerit",website:"Introduïu una URL vàlida"},noteDescription:"Envieu la vostra biblioteca perquè sigui inclosa al repositori públicper tal que altres persones puguin fer-ne ús en els seus dibuixos.",noteGuidelines:"La biblioteca ha de ser aprovada manualment. Si us plau, llegiu les directrius abans d'enviar-hi res. Necessitareu un compte de GitHub per a comunicar i fer-hi canvis si cal, però no és requisit imprescindible.",noteLicense:"Quan l'envieu, accepteu que la biblioteca sigui publicada sota la llicència MIT, que, en resum, vol dir que qualsevol persona pot fer-ne ús sense restriccions.",noteItems:"Cada element de la biblioteca ha de tenir el seu propi nom per tal que sigui filtrable. S'hi inclouran els elements següents:",atleastOneLibItem:"Si us plau, seleccioneu si més no un element de la biblioteca per a començar",republishWarning:"Nota: alguns dels elements seleccionats s'han marcat com a publicats/enviats. Només hauríeu de reenviar elements quan actualitzeu una biblioteca existent."},v={title:"Biblioteca enviada",content:"Gràcies, {{authorName}}. La vostra biblioteca ha estat enviada per a ser revisada. Podeu comprovar-ne l'estataquí"},x={resetLibrary:"Restableix la biblioteca",removeItemsFromLib:"Suprimeix els elements seleccionats de la llibreria"},h={header:"",label:{withBackground:"",onlySelected:"Només els seleccionats",darkMode:"Mode fosc",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"Exporta a PNG",exportToSvg:"Exporta a SVG",copyPngToClipboard:"Copia el PNG al porta-retalls"},button:{exportToPng:"PNG",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"Els vostres dibuixos estan xifrats de punta a punta de manera que els servidors d’Excalidraw no els veuran mai.",link:"Article del blog sobre encriptació d'extrem a extrem a Excalidraw"},f={angle:"Angle",element:"Element",elements:"Elements",height:"Altura",scene:"Escena",selected:"Seleccionat",storage:"Emmagatzematge",title:"Estadístiques per nerds",total:"Total",version:"Versió",versionCopy:"Feu clic per a copiar",versionNotAvailable:"Versió no disponible",width:"Amplada"},E={addedToLibrary:"Afegit a la biblioteca",copyStyles:"S'han copiat els estils.",copyToClipboard:"S'ha copiat al porta-retalls.",copyToClipboardAsPng:`S'ha copiat {{exportSelection}} al porta-retalls en format PNG -({{exportColorScheme}})`,fileSaved:"S'ha desat el fitxer.",fileSavedToFilename:"S'ha desat a {filename}",canvas:"el llenç",selection:"la selecció",pasteAsSingleElement:`Fer servir {{shortcut}} per enganxar com un sol element, -o enganxeu-lo en un editor de text existent`,unableToEmbed:"",unrecognizedLinkFormat:""},y={transparent:"Transparent",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"Verd",yellow:"Groc",orange:"Taronja",bronze:"Bronze"},C={app:{center_heading:"Totes les vostres dades es guarden localment al vostre navegador.",center_heading_plus:"Vols anar a Excalidraw+ en comptes?",menuHint:"Exportar, preferències, llenguatges..."},defaults:{menuHint:"Exportar, preferències i més...",center_heading:"Diagrames. Fer. Simple.",toolbarHint:"Selecciona una eina i comença a dibuixar!",helpHint:"Dreceres i ajuda"}},w={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},T={action:{exportToImage:{title:"Exporta com a imatge",button:"Exporta com a imatge",description:""},saveToDisk:{title:"Desa al disc",button:"Desa al disc",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"Carrega des d'un fitxer",button:"Carrega des d'un fitxer",description:""},shareableLink:{title:"Carrega des d'un enllaç",button:"",description:""}}},A={title:"De Mermaid a Excalidraw",button:"Insereix",description:"",syntax:"Sintaxi de Mermaid",preview:"Previsualització"},N={labels:e,library:a,buttons:r,alerts:t,errors:l,toolBar:i,headings:o,hints:n,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:u,exportDialog:p,helpDialog:m,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:v,confirmDialog:x,imageExportDialog:h,encrypted:S,stats:f,toast:E,colors:y,welcomeScreen:C,colorPicker:w,overwriteConfirm:T,mermaid:A};export{t as alerts,r as buttons,s as canvasError,b as clearCanvasDialog,w as colorPicker,y as colors,x as confirmDialog,N as default,S as encrypted,u as errorDialog,c as errorSplash,l as errors,p as exportDialog,o as headings,m as helpDialog,n as hints,h as imageExportDialog,e as labels,a as library,A as mermaid,T as overwriteConfirm,g as publishDialog,v as publishSuccessDialog,d as roomDialog,f as stats,E as toast,i as toolBar,C as welcomeScreen}; -//# sourceMappingURL=ca-ES.json-YA_IC9xZ.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js.map b/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js.map deleted file mode 100644 index 12d960b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ca-ES.json-YA_IC9xZ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ca-ES.json-YA_IC9xZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js b/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js deleted file mode 100644 index 35ebf6f..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js +++ /dev/null @@ -1,12 +0,0 @@ -const e={paste:"Vložit",pasteAsPlaintext:"Vložit jako prostý text",pasteCharts:"Vložit grafy",selectAll:"Vybrat vše",multiSelect:"Přidat prvek do výběru",moveCanvas:"Posunout plátno",cut:"Vyjmout",copy:"Kopírovat",copyAsPng:"Zkopírovat do schránky jako PNG",copyAsSvg:"Zkopírovat do schránky jako SVG",copyText:"Zkopírovat do schránky jako text",copySource:"",convertToCode:"",bringForward:"Přenést blíž",sendToBack:"Přenést do pozadí",bringToFront:"Přenést do popředí",sendBackward:"Přenést dál",delete:"Smazat",copyStyles:"Kopírovat styly",pasteStyles:"Vložit styly",stroke:"Obrys",background:"Pozadí",fill:"Výplň",strokeWidth:"Tloušťka tahu",strokeStyle:"Styl tahu",strokeStyle_solid:"Plný",strokeStyle_dashed:"Čárkovaný",strokeStyle_dotted:"Tečkovaný",sloppiness:"Stylizace",opacity:"Průhlednost",textAlign:"Zarovnání textu",edges:"Hrany",sharp:"Ostré",round:"Zaoblené",arrowheads:"Styl šipky",arrowhead_none:"Žádný",arrowhead_arrow:"Šipka",arrowhead_bar:"Kóta",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trojúhelník",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Velikost písma",fontFamily:"Písmo",addWatermark:'Přidat "Vyrobeno s Excalidraw"',handDrawn:"Od ruky",normal:"Normální",code:"Kód",small:"Malé",medium:"Střední",large:"Velké",veryLarge:"Velmi velké",solid:"Plný",hachure:"Hachure",zigzag:"Klikatě",crossHatch:"Křížový šrafování",thin:"Tenký",bold:"Tlustý",left:"Vlevo",center:"Na střed",right:"Vpravo",extraBold:"Extra tlustý",architect:"Architekt",artist:"Umělec",cartoonist:"Kartoonista",fileTitle:"Název souboru",colorPicker:"Výběr barvy",canvasColors:"Použito na plátně",canvasBackground:"Pozadí plátna",drawingCanvas:"Kreslicí plátno",layers:"Vrstvy",actions:"Akce",language:"Jazyk",liveCollaboration:"Živá spolupráce...",duplicateSelection:"Duplikovat",untitled:"Bez názvu",name:"Název",yourName:"Vaše jméno",madeWithExcalidraw:"Vytvořeno v Excalidraw",group:"Sloučit výběr do skupiny",ungroup:"Zrušit sloučení skupiny",collaborators:"Spolupracovníci",showGrid:"Zobrazit mřížku",addToLibrary:"Přidat do knihovny",removeFromLibrary:"Odebrat z knihovny",libraryLoadingMessage:"Načítání knihovny…",libraries:"Procházet knihovny",loadingScene:"Načítání scény…",align:"Zarovnání",alignTop:"Zarovnat nahoru",alignBottom:"Zarovnat dolů",alignLeft:"Zarovnat vlevo",alignRight:"Zarovnejte vpravo",centerVertically:"Vycentrovat svisle",centerHorizontally:"Vycentrovat vodorovně",distributeHorizontally:"Rozložit horizontálně",distributeVertically:"Rozložit svisle",flipHorizontal:"Převrátit vodorovně",flipVertical:"Převrátit svisle",viewMode:"Náhled",share:"Sdílet",showStroke:"Zobrazit výběr barvy",showBackground:"Zobrazit výběr barev pozadí",toggleTheme:"Přepnout tmavý řežim",personalLib:"Osobní knihovna",excalidrawLib:"Exkalidraw knihovna",decreaseFontSize:"Zmenšit písmo",increaseFontSize:"Zvětšit písmo",unbindText:"Zrušit vazbu textu",bindText:"Vázat text s kontejnerem",createContainerFromText:"Zabalit text do kontejneru",link:{edit:"Upravit odkaz",editEmbed:"",create:"Vytvořit odkaz",createEmbed:"",label:"Odkaz",labelEmbed:"",empty:""},lineEditor:{edit:"Upravit čáru",exit:"Ukončit editor řádků"},elementLock:{lock:"Uzamknout",unlock:"Odemknout",lockAll:"Uzamknout vše",unlockAll:"Odemknout vše"},statusPublished:"Zveřejněno",sidebarLock:"Ponechat postranní panel otevřený",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"Vyberte barvu z plátna",textToDiagram:"",prompt:""},o={noItems:"Dosud neexistují žádné položky...",hint_emptyLibrary:"Vyberte položku na plátně a přidejte ji sem nebo nainstalujte knihovnu z veřejného úložiště níže.",hint_emptyPrivateLibrary:"Vyberte položku na plátně a přidejte ji sem."},t={clearReset:"Resetovat plátno",exportJSON:"Exportovat do souboru",exportImage:"Exportovat obrázek...",export:"Uložit jako...",copyToClipboard:"Kopírovat do schránky",save:"Uložit do aktuálního souboru",saveAs:"Uložit jako",load:"Otevřít",getShareableLink:"Získat odkaz pro sdílení",close:"Zavřít",selectLanguage:"Zvolit jazyk",scrollBackToContent:"Přejít zpět na obsah",zoomIn:"Přiblížit",zoomOut:"Oddálit",resetZoom:"Resetovat přiblížení",menu:"Menu",done:"Hotovo",edit:"Upravit",undo:"Zpět",redo:"Znovu",resetLibrary:"Obnovit knihovnu",createNewRoom:"Vytvořit novou místnost",fullScreen:"Celá obrazovka",darkMode:"Tmavý režim",lightMode:"Světlý režim",zenMode:"Zen mód",objectsSnapMode:"",exitZenMode:"Opustit zen mód",cancel:"Zrušit",clear:"Vyčistit",remove:"Odstranit",embed:"",publishLibrary:"Zveřejnit",submit:"Odeslat",confirm:"Potvrdit",embeddableInteractionButton:""},n={clearReset:"Toto vymaže celé plátno. Jste si jisti?",couldNotCreateShareableLink:"Nepodařilo se vytvořit sdílitelný odkaz.",couldNotCreateShareableLinkTooBig:"Nepodařilo se vytvořit sdílený odkaz: scéna je příliš velká",couldNotLoadInvalidFile:"Nepodařilo se načíst neplatný soubor",importBackendFailed:"Import z backendu se nezdařil.",cannotExportEmptyCanvas:"Nelze exportovat prázdné plátno.",couldNotCopyToClipboard:"Nelze zkopírovat do schránky.",decryptFailed:"Nelze dešifrovat data.",uploadedSecurly:"Nahrávání je zabezpečeno koncovým šifrováním, což znamená, že server Excalidraw ani třetí strany nemohou obsah přečíst.",loadSceneOverridePrompt:"Načítání externího výkresu nahradí váš existující obsah. Přejete si pokračovat?",collabStopOverridePrompt:`Zastavení relace přepíše vaše předchozí, lokálně uložené kresby. Jste si jisti? - -(Pokud chcete zachovat místní kresbu, jednoduše zavřete kartu prohlížeče)`,errorAddingToLibrary:"Položku nelze přidat do knihovny",errorRemovingFromLibrary:"Položku nelze odstranit z knihovny",confirmAddLibrary:"Tímto přidáte {{numShapes}} tvarů do tvé knihovny. Jste si jisti?",imageDoesNotContainScene:"Zdá se, že tento obrázek neobsahuje žádná data o scéně. Zapnuli jste při exportu vkládání scény?",cannotRestoreFromImage:"Scénu nelze obnovit z tohoto souboru obrázku",invalidSceneUrl:"Nelze importovat scénu z zadané URL. Je buď poškozená, nebo neobsahuje platná JSON data Excalidraw.",resetLibrary:"Tímto vymažete vaši knihovnu. Jste si jisti?",removeItemsFromsLibrary:"Smazat {{count}} položek z knihovny?",invalidEncryptionKey:"Šifrovací klíč musí mít 22 znaků. Live spolupráce je zakázána.",collabOfflineWarning:`Není k dispozici žádné internetové připojení. -Vaše změny nebudou uloženy!`},a={unsupportedFileType:"Nepodporovaný typ souboru.",imageInsertError:"Nelze vložit obrázek. Zkuste to později...",fileTooBig:"Soubor je příliš velký. Maximální povolená velikost je {{maxSize}}.",svgImageInsertError:"Nelze vložit SVG obrázek. Značení SVG je neplatné.",failedToFetchImage:"",invalidSVGString:"Neplatný SVG.",cannotResolveCollabServer:"Nelze se připojit ke sdílenému serveru. Prosím obnovte stránku a zkuste to znovu.",importLibraryError:"Nelze načíst knihovnu",collabSaveFailed:"Nelze uložit do databáze na serveru. Pokud problémy přetrvávají, měli byste uložit soubor lokálně, abyste se ujistili, že neztratíte svou práci.",collabSaveFailed_sizeExceeded:"Nelze uložit do databáze na serveru, plátno se zdá být příliš velké. Měli byste uložit soubor lokálně, abyste se ujistili, že neztratíte svou práci.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Vypadá to, že používáte Brave prohlížeč s povoleným nastavením Aggressively Block Fingerprinting.",line2:"To by mohlo vést k narušení Textových elementů ve vašich výkresech.",line3:"Důrazně doporučujeme zakázat toto nastavení. Můžete sledovat tyto kroky jak to udělat.",line4:"Pokud vypnutí tohoto nastavení neopravuje zobrazení textových prvků, prosím, otevřete problém na našem GitHubu, nebo nám napište na Discord"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Výběr",image:"Vložit obrázek",rectangle:"Obdélník",diamond:"Diamant",ellipse:"Elipsa",arrow:"Šipka",line:"Čára",freedraw:"Kreslení",text:"Text",library:"Knihovna",lock:"Po kreslení ponechat vybraný nástroj aktivní",penMode:"Režim Pera - zabránit dotyku",link:"Přidat/aktualizovat odkaz pro vybraný tvar",eraser:"Guma",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Ruka (nástroj pro posouvání)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},i={canvasActions:"Akce plátna",selectedShapeActions:"Akce vybraného tvaru",shapes:"Tvary"},l={canvasPanning:"Chcete-li přesunout plátno, podržte kolečko nebo mezerník při tažení nebo použijte nástroj Ruka",linearElement:"Kliknutím pro více bodů, táhnutím pro jednu čáru",freeDraw:"Klikněte a táhněte, pro ukončení pusťte",text:"Tip: Text můžete také přidat dvojitým kliknutím kdekoli pomocí nástroje pro výběr",embeddable:"",text_selected:"Dvojklikem nebo stisknutím klávesy ENTER upravíte text",text_editing:"Stiskněte Escape nebo Ctrl/Cmd+ENTER pro dokončení úprav",linearElementMulti:"Klikněte na poslední bod nebo stiskněte Escape anebo Enter pro dokončení",lockAngle:"Úhel můžete omezit podržením SHIFT",resize:`Můžete omezit proporce podržením SHIFT při změně velikosti, -podržte ALT pro změnu velikosti od středu`,resizeImage:`Můžete volně změnit velikost podržením SHIFT, -podržením klávesy ALT změníte velikosti od středu`,rotate:"Úhly můžete omezit podržením SHIFT při otáčení",lineEditor_info:"Podržte Ctrl/Cmd a dvakrát klikněte nebo stiskněte Ctrl/Cmd + Enter pro úpravu bodů",lineEditor_pointSelected:`Stisknutím tlačítka Delete odstraňte bod(y), -Ctrl/Cmd+D pro duplicitu nebo táhnutím pro přesun`,lineEditor_nothingSelected:`Vyberte bod, který chcete upravit (podržením klávesy SHIFT vyberete více položek), -nebo podržením klávesy Alt a kliknutím přidáte nové body`,placeImage:"Kliknutím umístěte obrázek, nebo klepnutím a přetažením ručně nastavíte jeho velikost",publishLibrary:"Publikovat vlastní knihovnu",bindTextToElement:"Stiskněte Enter pro přidání textu",deepBoxSelect:"Podržte Ctrl/Cmd pro hluboký výběr a pro zabránění táhnutí",eraserRevert:"Podržením klávesy Alt vrátíte prvky označené pro smazání",firefox_clipboard_write:'Tato funkce může být povolena nastavením vlajky "dom.events.asyncClipboard.clipboardItem" na "true". Chcete-li změnit vlajky prohlížeče ve Firefoxu, navštivte stránku "about:config".',disableSnapping:""},s={cannotShowPreview:"Náhled nelze zobrazit",canvasTooBig:"Plátno je možná příliš velké.",canvasTooBigTip:"Tip: zkus posunout nejvzdálenější prvky trochu blíže k sobě."},d={headingMain:"Chyba. Zkuste .",clearCanvasMessage:"Pokud opětovné načtení nefunguje, zkuste .",clearCanvasCaveat:" To povede ke ztrátě dat ",trackedToSentry:"Chyba identifikátoru {{eventId}} byl zaznamenán v našem systému.",openIssueMessage:"Byli jsme velmi opatrní, abychom neuváděli informace o Vaší scéně. Pokud vaše scéna není soukromá, zvažte prosím sledování na našem . Uveďte prosím níže uvedené informace kopírováním a vložením do problému na GitHubu.",sceneContent:"Obsah scény:"},v={desc_intro:"Můžete pozvat lidi na vaši aktuální scénu ke spolupráci s vámi.",desc_privacy:"Nebojte se, relace používá end-to-end šifrování, takže cokoliv nakreslíte zůstane soukromé. Ani náš server nebude schopen vidět, s čím budete pracovat.",button_startSession:"Zahájit relaci",button_stopSession:"Ukončit relaci",desc_inProgressIntro:"Živá spolupráce právě probíhá.",desc_shareLink:"Sdílejte tento odkaz s každým, s kým chcete spolupracovat:",desc_exitSession:"Zastavením relace se odpojíte od místnosti, ale budete moci pokračovat v práci s touto scénou lokálně. Všimněte si, že to nebude mít vliv na ostatní lidi a budou stále moci spolupracovat na jejich verzi.",shareTitle:"Připojte se k aktivní spolupráci na Excalidraw"},p={title:"Chyba"},u={disk_title:"Uložit na disk",disk_details:"Exportovat data scény do souboru, ze kterého můžete importovat později.",disk_button:"Uložit do souboru",link_title:"Odkaz pro sdílení",link_details:"Exportovat jako odkaz pouze pro čtení.",link_button:"Exportovat do odkazu",excalidrawplus_description:"Uložit scénu do vašeho pracovního prostoru Excalidraw+.",excalidrawplus_button:"Exportovat",excalidrawplus_exportError:"Export do Excalidraw+ se v tuto chvíli nezdařil..."},k={blog:"Přečtěte si náš blog",click:"kliknutí",deepSelect:"Hluboký výběr",deepBoxSelect:"Hluboký výběr uvnitř boxu a zabránění táhnnutí",curvedArrow:"Zakřivená šipka",curvedLine:"Zakřivená čára",documentation:"Dokumentace",doubleClick:"dvojklik",drag:"tažení",editor:"Editor",editLineArrowPoints:"Upravit body linií/šipek",editText:"Upravit text / přidat popis",github:"Našel jsi problém? Nahlaš ho",howto:"Sledujte naše návody",or:"nebo",preventBinding:"Zabránit vázání šipky",tools:"Nástroje",shortcuts:"Klávesové zkratky",textFinish:"Dokončit úpravy (textový editor)",textNewLine:"Přidat nový řádek (textový editor)",title:"Nápověda",view:"Zobrazení",zoomToFit:"Přiblížit na zobrazení všech prvků",zoomToSelection:"Přiblížit na výběr",toggleElementLock:"Zamknout/odemknout výběr",movePageUpDown:"Posunout stránku nahoru/dolů",movePageLeftRight:"Přesunout stránku doleva/doprava"},c={title:"Vymazat plátno"},b={title:"Publikovat knihovnu",itemName:"Název položky",authorName:"Jméno autora",githubUsername:"GitHub uživatelské jméno",twitterUsername:"Twitter uživatelské jméno",libraryName:"Název knihovny",libraryDesc:"Popis knihovny",website:"Webová stránka",placeholder:{authorName:"Jméno nebo uživatelské jméno",libraryName:"Název vaší knihovny",libraryDesc:"Popis Vaší knihovny, který pomůže lidem pochopit její využití",githubHandle:"Github uživatelské jméno (nepovinné), abyste mohli upravovat knihovnu poté co je odeslána ke kontrole",twitterHandle:"Twitter uživatelské jméno (nepovinné), abychom věděli koho označit při propagaci na Twitteru",website:"Odkaz na Vaši osobní webovou stránku nebo jinam (nepovinné)"},errors:{required:"Povinné",website:"Zadejte platnou URL adresu"},noteDescription:"Odešlete svou knihovnu, pro zařazení do veřejného úložiště knihoven, odkud ji budou moci při kreslení využít i ostatní uživatelé.",noteGuidelines:"Knihovna musí být nejdříve ručně schválena. Přečtěte si prosím pokyny",noteLicense:"Odesláním souhlasíte s tím, že knihovna bude zveřejněna pod MIT licencí, stručně řečeno, kdokoli ji může používat bez omezení.",noteItems:"Každá položka knihovny musí mít svůj vlastní název, aby byla filtrovatelná. Následující položky knihovny budou zahrnuty:",atleastOneLibItem:"Vyberte alespoň jednu položku knihovny, kterou chcete začít",republishWarning:"Poznámka: některé z vybraných položek jsou označeny jako již zveřejněné/odeslané. Položky byste měli znovu odeslat pouze při aktualizaci existující knihovny nebo podání."},m={title:"Knihovna byla odeslána",content:"Děkujeme vám {{authorName}}. Vaše knihovna byla odeslána k posouzení. Stav můžete sledovat zde"},y={resetLibrary:"Resetovat knihovnu",removeItemsFromLib:"Odstranit vybrané položky z knihovny"},h={header:"Exportovat obrázek",label:{withBackground:"Pozadí",onlySelected:"Pouze vybrané",darkMode:"Tmavý režim",embedScene:"Vložit scénu",scale:"Měřítko",padding:"Odsazení"},tooltip:{embedScene:`Data scény budou uložena do exportovaného souboru PNG/SVG tak, aby z něj mohla být scéna obnovena. -Zvýší se velikost exportovaného souboru.`},title:{exportToPng:"Exportovat do PNG",exportToSvg:"Exportovat do SVG",copyPngToClipboard:"Kopírovat PNG do schránky"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopírovat do schránky"}},z={tooltip:"Vaše kresby jsou end-to-end šifrované, takže servery Excalidraw je nikdy neuvidí.",link:"Blog příspěvek na end-to-end šifrování v Excalidraw"},g={angle:"Úhel",element:"Prvek",elements:"Prvky",height:"Výška",scene:"Scéna",selected:"Vybráno",storage:"Úložiště",title:"Statistika pro nerdy",total:"Celkem",version:"Verze",versionCopy:"Kliknutím zkopírujete",versionNotAvailable:"Verze není k dispozici",width:"Šířka"},j={addedToLibrary:"Přidáno do knihovny",copyStyles:"Styly byly zkopírovány.",copyToClipboard:"Zkopírováno do schránky.",copyToClipboardAsPng:`{{exportSelection}} zkopírován do schránky jako PNG -({{exportColorScheme}})`,fileSaved:"Soubor byl uložen.",fileSavedToFilename:"Uloženo do {filename}",canvas:"plátno",selection:"výběr",pasteAsSingleElement:`Pomocí {{shortcut}} vložte jako jeden prvek, -nebo vložte do existujícího textového editoru`,unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"Průhledná",black:"Černá",white:"Bílá",red:"Červená",pink:"Růžová",grape:"Vínová",violet:"Fialová",gray:"Šedá",blue:"Modrá",cyan:"Azurová",teal:"Modrozelená",green:"Zelená",yellow:"Žlutá",orange:"Oranžová",bronze:"Bronzová"},S={app:{center_heading:"Všechna vaše data jsou uložena lokálně ve vašem prohlížeči.",center_heading_plus:"Chcete místo toho přejít na Excalidraw+?",menuHint:"Export, nastavení, jazyky, ..."},defaults:{menuHint:"Export, nastavení a další...",center_heading:"Diagramy. Vytvořeny. Jednoduše.",toolbarHint:"Vyberte nástroj a začněte kreslit!",helpHint:"Zkratky a pomoc"}},P={mostUsedCustomColors:"Nejpoužívanější vlastní barvy",colors:"Barvy",shades:"Stíny",hexCode:"Hex kód",noShades:"Pro tuto barvu nejsou k dispozici žádné odstíny"},T={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},w={title:"",button:"",description:"",syntax:"",preview:""},E={labels:e,library:o,buttons:t,alerts:n,errors:a,toolBar:r,headings:i,hints:l,canvasError:s,errorSplash:d,roomDialog:v,errorDialog:p,exportDialog:u,helpDialog:k,clearCanvasDialog:c,publishDialog:b,publishSuccessDialog:m,confirmDialog:y,imageExportDialog:h,encrypted:z,stats:g,toast:j,colors:x,welcomeScreen:S,colorPicker:P,overwriteConfirm:T,mermaid:w};export{n as alerts,t as buttons,s as canvasError,c as clearCanvasDialog,P as colorPicker,x as colors,y as confirmDialog,E as default,z as encrypted,p as errorDialog,d as errorSplash,a as errors,u as exportDialog,i as headings,k as helpDialog,l as hints,h as imageExportDialog,e as labels,o as library,w as mermaid,T as overwriteConfirm,b as publishDialog,m as publishSuccessDialog,v as roomDialog,g as stats,j as toast,r as toolBar,S as welcomeScreen}; -//# sourceMappingURL=cs-CZ.json-xA16rUn9.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js.map b/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js.map deleted file mode 100644 index faed072..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/cs-CZ.json-xA16rUn9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cs-CZ.json-xA16rUn9.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js b/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js deleted file mode 100644 index 15050b6..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js +++ /dev/null @@ -1,6 +0,0 @@ -const e={paste:"Indsæt",pasteAsPlaintext:"Indsæt som klartekst",pasteCharts:"Indsæt diagrammer",selectAll:"Marker alle",multiSelect:"Tilføj element til markering",moveCanvas:"Flyt lærred",cut:"Klip",copy:"Kopier",copyAsPng:"Kopier til klippebord som PNG",copyAsSvg:"Kopier til klippebord som SVG",copyText:"Kopiér til udklipsholder som tekst",copySource:"Kopiér kilde til udklipsholder",convertToCode:"Konvertér til kode",bringForward:"Flyt fremad",sendToBack:"Placer bagest",bringToFront:"Placer forrest",sendBackward:"Send bagud",delete:"Fjern",copyStyles:"Kopier stil",pasteStyles:"Indsæt stil",stroke:"Linje",background:"Baggrund",fill:"Udfyld",strokeWidth:"Linjebredde",strokeStyle:"Linjeform",strokeStyle_solid:"Solid",strokeStyle_dashed:"Stiplet",strokeStyle_dotted:"Prikket",sloppiness:"Sjuskethed",opacity:"Gennemsigtighed",textAlign:"Tekstjustering",edges:"Kanter",sharp:"Skarp",round:"Rund",arrowheads:"Pilehoveder",arrowhead_none:"Ingen",arrowhead_arrow:"Pil",arrowhead_bar:"Bjælke",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trekant",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Skriftstørrelse",fontFamily:"Skrifttypefamilie",addWatermark:'Tilføj "Lavet med Excalidraw"',handDrawn:"Hånd-tegnet",normal:"Normal",code:"Kode",small:"Lille",medium:"Mellem",large:"Stor",veryLarge:"Meget stor",solid:"Solid",hachure:"Skravering",zigzag:"Zigzag",crossHatch:"Krydsskravering",thin:"Tynd",bold:"Fed",left:"Venstre",center:"Centrere",right:"Højre",extraBold:"Extra fed",architect:"Arkitekt",artist:"Kunstner",cartoonist:"Tegneserietegner",fileTitle:"Filnavn",colorPicker:"Farvevælger",canvasColors:"Brugt på lærred",canvasBackground:"Lærredsbaggrund",drawingCanvas:"Tegnelærred",layers:"Lag",actions:"Handlinger",language:"Sprog",liveCollaboration:"Live samarbejde...",duplicateSelection:"Duplikér",untitled:"Unavngivet",name:"Navn",yourName:"Dit navn",madeWithExcalidraw:"Fremstillet med Excalidraw",group:"Grupper valgte",ungroup:"Opløs gruppe",collaborators:"Deltagere",showGrid:"Vis gitter",addToLibrary:"Føj til Bibliotek",removeFromLibrary:"Fjern fra biblioteket",libraryLoadingMessage:"Indlæser bibliotek…",libraries:"Gennemse biblioteker",loadingScene:"Indlæser scene…",align:"Justér",alignTop:"Juster til top",alignBottom:"Juster til bund",alignLeft:"Venstrejusteret",alignRight:"Juster højre",centerVertically:"Center vertikalt",centerHorizontally:"Vandret centreret",distributeHorizontally:"Distribuer vandret",distributeVertically:"Distribuer lodret",flipHorizontal:"Spejlvend horisontalt",flipVertical:"Vend lodret",viewMode:"Visningstilstand",share:"Del",showStroke:"Vis stregfarve-vælger",showBackground:"Vis baggrundsfarve-vælger",toggleTheme:"Skift tema",personalLib:"Personligt bibliotek",excalidrawLib:"Excalidraw Bibliotek",decreaseFontSize:"Gør skriften mindre",increaseFontSize:"Gør skriften større",unbindText:"Frigør tekst",bindText:"Bind tekst til beholderen",createContainerFromText:"Ombryd tekst i en beholder",link:{edit:"Redigér link",editEmbed:"Redigér link & indlejret",create:"Link oprettet",createEmbed:"Opret link & indlejret",label:"Links",labelEmbed:"Link & indlejret",empty:"Intet link angivet"},lineEditor:{edit:"Rediger Linje",exit:"Afslut linjeeditor"},elementLock:{lock:"Lås",unlock:"Lås op",lockAll:"Lås alle",unlockAll:"Lås alle op"},statusPublished:"Udgiver",sidebarLock:"Hold sidepanel åben",selectAllElementsInFrame:"Vælg alle elementer i rammen",removeAllElementsFromFrame:"Fjern alle elementer fra ramme",eyeDropper:"Vælg farve fra lærred",textToDiagram:"Tekst til diagram",prompt:"Prompt"},t={noItems:"Ingen varer tilføjet endnu...",hint_emptyLibrary:"Vælg et element på lærred for at tilføje det her, eller installer et bibliotek fra det offentlige arkiv, nedenfor.",hint_emptyPrivateLibrary:"Vælg et element på lærred for at tilføje det her."},r={clearReset:"Nulstil lærredet",exportJSON:"Eksportér til fil",exportImage:"Eksporter billede...",export:"Gem til...",copyToClipboard:"Kopier til klippebord",save:"Gem til nuværende fil",saveAs:"Gem som",load:"Åbn",getShareableLink:"Lav et delbart link",close:"Luk",selectLanguage:"Vælg sprog",scrollBackToContent:"Scroll tilbage til indhold",zoomIn:"Zoom ind",zoomOut:"Zoom ud",resetZoom:"Nulstil zoom",menu:"Menu",done:"Færdig",edit:"Rediger",undo:"Fortryd",redo:"Gendan",resetLibrary:"Nulstil bibliotek",createNewRoom:"Opret nyt rum",fullScreen:"Fuld skærm",darkMode:"Mørk tilstand",lightMode:"Lys baggrund",zenMode:"Zentilstand",objectsSnapMode:"Fastgør til objekter",exitZenMode:"Stop zentilstand",cancel:"Annuller",clear:"Ryd",remove:"Fjern",embed:"Slå indlejring til/fra",publishLibrary:"Publicér",submit:"Gem",confirm:"Bekræft",embeddableInteractionButton:"Klik for at interagere"},i={clearReset:"Dette vil rydde hele lærredet. Er du sikker?",couldNotCreateShareableLink:"Kunne ikke oprette delbart link.",couldNotCreateShareableLinkTooBig:"Kunne ikke oprette delbart link: scenen er for stor",couldNotLoadInvalidFile:"Kunne ikke indlæse ugyldig fil",importBackendFailed:"Import fra backend mislykkedes.",cannotExportEmptyCanvas:"Kan ikke eksportere tomt lærred.",couldNotCopyToClipboard:"Kunne ikke kopiere til udklipsholderen.",decryptFailed:"Kunne ikke dekryptere data.",uploadedSecurly:"Upload er blevet sikret med ende-til-ende kryptering, hvilket betyder, at Excalidraw server og tredjeparter ikke kan læse indholdet.",loadSceneOverridePrompt:"Indlæsning af ekstern tegning erstatter dit eksisterende indhold. Ønsker du at fortsætte?",collabStopOverridePrompt:`Stopper sessionen vil overskrive din tidligere, lokalt gemte tegning. Er du sikker? - -(Hvis du ønsker at beholde din lokale tegning, skal du blot lukke browserfanen i stedet.)`,errorAddingToLibrary:"Kunne ikke tilføje element til biblioteket",errorRemovingFromLibrary:"Kunne ikke fjerne element fra biblioteket",confirmAddLibrary:"Dette vil tilføje {{numShapes}} form(er) til dit bibliotek. Er du sikker?",imageDoesNotContainScene:"Dette billede synes ikke at indeholde scene data. Har du aktiveret scene indlejring under eksport?",cannotRestoreFromImage:"Scene kunne ikke gendannes fra denne billedfil",invalidSceneUrl:"Kunne ikke importere scene fra den angivne URL. Det er enten misdannet eller indeholder ikke gyldige Excalidraw JSON data.",resetLibrary:"Dette vil rydde hele lærredet. Er du sikker?",removeItemsFromsLibrary:"Slet {{count}} vare(r) fra biblioteket?",invalidEncryptionKey:"Krypteringsnøglen skal være på 22 tegn. Live-samarbejde er deaktiveret.",collabOfflineWarning:`Ingen internetforbindelse tilgængelig. -Dine ændringer vil ikke blive gemt!`},n={unsupportedFileType:"Filtypen er ikke understøttet.",imageInsertError:"Billedet kunne ikke indsættes. Prøv igen senere...",fileTooBig:"Filen er for stor. Maksimal tilladt størrelse er {{maxSize}}.",svgImageInsertError:"Kunne ikke indsætte SVG-billede. SVG-markup'en ser ugyldig ud.",failedToFetchImage:"Dataene blev ikke hentet.",invalidSVGString:"Ugyldig SVG.",cannotResolveCollabServer:"Kunne ikke oprette forbindelse til samarbejdsserveren. Genindlæs siden og prøv igen.",importLibraryError:"Biblioteket kunne ikke indlæses",collabSaveFailed:"Kunne ikke gemme i databasen. Hvis problemerne fortsætter, bør du gemme din fil lokalt for at sikre, at du ikke mister dit arbejde.",collabSaveFailed_sizeExceeded:"Kunne ikke gemme i databasen, lærredet lader til at være for stort. Du bør gemme filen lokalt for at sikre, at du ikke mister dit arbejde.",imageToolNotSupported:"Billeder er deaktiveret.",brave_measure_text_error:{line1:"Det ser ud til, at du bruger Brave browser med indstillingen Aggressively Block Fingerprinting aktiveret.",line2:"Dette kan resultere i brud på tekstelementerne i dine tegninger.",line3:"Vi anbefaler kraftigt at deaktivere denne indstilling. Du kan følge disse trin om, hvordan du gør det.",line4:"Hvis deaktivering af denne indstilling ikke løser visning af tekstelementer, åbn venligst et issue på vores GitHub, eller skriv os på Discord"},libraryElementTypeError:{embeddable:"Indlejringselementer kan ikke tilføjes til biblioteket.",iframe:"IFrame elementer kan ikke tilføjes til biblioteket.",image:"Understøttelse af at tilføje billeder til biblioteket kommer snart!"},asyncPasteFailedOnRead:"Kunne ikke indsætte (kan ikke læse fra systemets udklipsholder).",asyncPasteFailedOnParse:"Kunne ikke indsætte.",copyToSystemClipboardFailed:"Kunne ikke kopiere til udklipsholderen."},l={selection:"&Udvalg",image:"Indsæt billeder",rectangle:"Rektangler",diamond:"Diamanter",ellipse:"Ellipser",arrow:"Pile",line:"Linje",freedraw:"Tegn",text:"Tekster",library:"~Bibliotek",lock:"Behold valgte værktøj aktiv efter tegning",penMode:"Pen-tilstand - forhindrer berøring",link:"Tilføj/ Opdater link for en valgt form",eraser:"Slet",frame:"Rammeværktøj",magicframe:"Wireframe til kode",embeddable:"Web-indlejring",laser:"Lasermarkør",hand:"Hånd (panorering værktøj)",extraTools:"Flere værktøjer",mermaidToExcalidraw:"Mermaid til Excalidraw",magicSettings:"AI indstillinger"},o={canvasActions:"Lærred handlinger",selectedShapeActions:"Valgte figurhandlinger",shapes:"Former"},a={canvasPanning:"For at flytte lærred, hold musehjulet eller mellemrumstasten mens du trækker, eller brug håndværktøjet",linearElement:"Klik for at starte flere punkter, træk for enkelt linje",freeDraw:"Klik og træk, slip når du er færdig",text:"Tip: du kan også tilføje tekst ved at dobbeltklikke hvor som helst med det valgte værktøj",embeddable:"Klik på træk for at oprette en hjemmeside indlejret",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Kan ikke vise forhåndsvisning",canvasTooBig:"Lærredet kan være for stort.",canvasTooBigTip:"Tip: Prøv at flytte de fjerneste elementer lidt tættere sammen."},d={headingMain:"Der opstod en fejl. Prøv .",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:" Kopiere og indsæt venligst oplysningerne nedenfor i et GitHub problem.",sceneContent:"Scene indhold:"},k={desc_intro:"Du kan invitere folk til din nuværende scene, så de kan samarbejde med dig.",desc_privacy:"Bare rolig, sessionen bruger end-to-end kryptering, så uanset hvad du tegner vil det forblive privat. Ikke engang vores server vil kunne se, hvad du kommer op med.",button_startSession:"Start session",button_stopSession:"Stop session",desc_inProgressIntro:"Live-samarbejde session er nu begyndt.",desc_shareLink:"Del dette link med enhver, du ønsker at samarbejde med:",desc_exitSession:"",shareTitle:""},g={title:"Fejl"},c={disk_title:"Gem til disk",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},m={blog:"Læs vores blog",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},p={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},u={title:"",content:""},v={resetLibrary:"",removeItemsFromLib:""},f={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},h={tooltip:"",link:""},y={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"Statistik for nørder",total:"",version:"",versionCopy:"Klik for at kopiere",versionNotAvailable:"",width:"Bredde"},S={addedToLibrary:"",copyStyles:"Kopieret stilarter.",copyToClipboard:"Kopieret til klippebord.",copyToClipboardAsPng:`Kopieret {{exportSelection}} til klippebord som PNG -({{exportColorScheme}})`,fileSaved:"Fil gemt.",fileSavedToFilename:"Gemt som {filename}",canvas:"canvas",selection:"markering",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},L={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},j={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},w={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},T={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},x={title:"",button:"",description:"",syntax:"",preview:""},F={labels:e,library:t,buttons:r,alerts:i,errors:n,toolBar:l,headings:o,hints:a,canvasError:s,errorSplash:d,roomDialog:k,errorDialog:g,exportDialog:c,helpDialog:m,clearCanvasDialog:b,publishDialog:p,publishSuccessDialog:u,confirmDialog:v,imageExportDialog:f,encrypted:h,stats:y,toast:S,colors:L,welcomeScreen:j,colorPicker:w,overwriteConfirm:T,mermaid:x};export{i as alerts,r as buttons,s as canvasError,b as clearCanvasDialog,w as colorPicker,L as colors,v as confirmDialog,F as default,h as encrypted,g as errorDialog,d as errorSplash,n as errors,c as exportDialog,o as headings,m as helpDialog,a as hints,f as imageExportDialog,e as labels,t as library,x as mermaid,T as overwriteConfirm,p as publishDialog,u as publishSuccessDialog,k as roomDialog,y as stats,S as toast,l as toolBar,j as welcomeScreen}; -//# sourceMappingURL=da-DK.json-IEeMktGi.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js.map b/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js.map deleted file mode 100644 index d2c93bb..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/da-DK.json-IEeMktGi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"da-DK.json-IEeMktGi.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js b/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js deleted file mode 100644 index 9664875..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"Einfügen",pasteAsPlaintext:"Als reinen Text einfügen",pasteCharts:"Diagramme einfügen",selectAll:"Alle auswählen",multiSelect:"Element zur Auswahl hinzufügen",moveCanvas:"Leinwand verschieben",cut:"Ausschneiden",copy:"Kopieren",copyAsPng:"In Zwischenablage kopieren (PNG)",copyAsSvg:"In Zwischenablage kopieren (SVG)",copyText:"In die Zwischenablage als Text kopieren",copySource:"Quelle in Zwischenablage kopieren",convertToCode:"In Code konvertieren",bringForward:"Nach vorne",sendToBack:"In den Hintergrund",bringToFront:"In den Vordergrund",sendBackward:"Nach hinten",delete:"Löschen",copyStyles:"Formatierung kopieren",pasteStyles:"Formatierung übernehmen",stroke:"Strich",background:"Hintergrund",fill:"Füllung",strokeWidth:"Strichstärke",strokeStyle:"Konturstil",strokeStyle_solid:"Durchgezogen",strokeStyle_dashed:"Gestrichelt",strokeStyle_dotted:"Gepunktet",sloppiness:"Sauberkeit",opacity:"Deckkraft",textAlign:"Textausrichtung",edges:"Kanten",sharp:"Scharf",round:"Rund",arrowheads:"Pfeilspitzen",arrowhead_none:"Keine",arrowhead_arrow:"Pfeil",arrowhead_bar:"Balken",arrowhead_circle:"Kreis",arrowhead_circle_outline:"Kreis (Umrandung)",arrowhead_triangle:"Dreieck",arrowhead_triangle_outline:"Dreieck (Umrandung)",arrowhead_diamond:"Raute",arrowhead_diamond_outline:"Raute (Umrandung)",fontSize:"Schriftgröße",fontFamily:"Schriftfamilie",addWatermark:'"Made with Excalidraw" hinzufügen',handDrawn:"Handgezeichnet",normal:"Normal",code:"Code",small:"Klein",medium:"Mittel",large:"Groß",veryLarge:"Sehr groß",solid:"Deckend",hachure:"Schraffiert",zigzag:"Zickzack",crossHatch:"Kreuzschraffiert",thin:"Dünn",bold:"Fett",left:"Links",center:"Zentriert",right:"Rechts",extraBold:"Extra Fett",architect:"Architekt",artist:"Künstler",cartoonist:"Karikaturist",fileTitle:"Dateiname",colorPicker:"Farbauswähler",canvasColors:"Auf Leinwand verwendet",canvasBackground:"Zeichenflächenhintergrund",drawingCanvas:"Leinwand",layers:"Ebenen",actions:"Aktionen",language:"Sprache",liveCollaboration:"Live-Zusammenarbeit...",duplicateSelection:"Duplizieren",untitled:"Unbenannt",name:"Name",yourName:"Dein Name",madeWithExcalidraw:"Made with Excalidraw",group:"Auswahl gruppieren",ungroup:"Gruppierung aufheben",collaborators:"Mitarbeitende",showGrid:"Raster anzeigen",addToLibrary:"Zur Bibliothek hinzufügen",removeFromLibrary:"Aus Bibliothek entfernen",libraryLoadingMessage:"Lade Bibliothek…",libraries:"Bibliotheken durchsuchen",loadingScene:"Lade Zeichnung…",align:"Ausrichten",alignTop:"Obere Kanten",alignBottom:"Untere Kanten",alignLeft:"Linke Kanten",alignRight:"Rechte Kanten",centerVertically:"Vertikal zentrieren",centerHorizontally:"Horizontal zentrieren",distributeHorizontally:"Horizontal verteilen",distributeVertically:"Vertikal verteilen",flipHorizontal:"Horizontal spiegeln",flipVertical:"Vertikal spiegeln",viewMode:"Ansichtsmodus",share:"Teilen",showStroke:"Auswahl für Strichfarbe anzeigen",showBackground:"Hintergrundfarbe auswählen",toggleTheme:"Design umschalten",personalLib:"Persönliche Bibliothek",excalidrawLib:"Excalidraw Bibliothek",decreaseFontSize:"Schriftgröße verkleinern",increaseFontSize:"Schrift vergrößern",unbindText:"Text lösen",bindText:"Text an Container binden",createContainerFromText:"Text in Container einbetten",link:{edit:"Link bearbeiten",editEmbed:"Link bearbeiten & einbetten",create:"Link erstellen",createEmbed:"Link erstellen & einbetten",label:"Link",labelEmbed:"Verlinken & einbetten",empty:"Kein Link festgelegt"},lineEditor:{edit:"Linie bearbeiten",exit:"Linieneditor verlassen"},elementLock:{lock:"Sperren",unlock:"Entsperren",lockAll:"Alle sperren",unlockAll:"Alle entsperren"},statusPublished:"Veröffentlicht",sidebarLock:"Seitenleiste offen lassen",selectAllElementsInFrame:"Alle Elemente im Rahmen auswählen",removeAllElementsFromFrame:"Alle Elemente aus dem Rahmen entfernen",eyeDropper:"Farbe von der Zeichenfläche auswählen",textToDiagram:"Text zu Diagramm",prompt:"Eingabe"},n={noItems:"Noch keine Elemente hinzugefügt...",hint_emptyLibrary:"Wähle ein Element auf der Zeichenfläche, um es hier hinzuzufügen. Oder installiere eine Bibliothek aus dem öffentlichen Verzeichnis.",hint_emptyPrivateLibrary:"Wähle ein Element von der Zeichenfläche, um es hier hinzuzufügen."},i={clearReset:"Zeichenfläche löschen & Hintergrundfarbe zurücksetzen",exportJSON:"In Datei exportieren",exportImage:"Exportiere Bild...",export:"Speichern als...",copyToClipboard:"In Zwischenablage kopieren",save:"In aktueller Datei speichern",saveAs:"Speichern unter",load:"Öffnen",getShareableLink:"Teilbaren Link erhalten",close:"Schließen",selectLanguage:"Sprache auswählen",scrollBackToContent:"Zurück zum Inhalt",zoomIn:"Vergrößern",zoomOut:"Verkleinern",resetZoom:"Zoom zurücksetzen",menu:"Menü",done:"Fertig",edit:"Bearbeiten",undo:"Rückgängig machen",redo:"Wiederholen",resetLibrary:"Bibliothek zurücksetzen",createNewRoom:"Neuen Raum erstellen",fullScreen:"Vollbildanzeige",darkMode:"Dunkles Design",lightMode:"Helles Design",zenMode:"Zen-Modus",objectsSnapMode:"Einrasten an Objekten",exitZenMode:"Zen-Modus verlassen",cancel:"Abbrechen",clear:"Löschen",remove:"Entfernen",embed:"Einbettung umschalten",publishLibrary:"Veröffentlichen",submit:"Absenden",confirm:"Bestätigen",embeddableInteractionButton:"Klicken, um zu interagieren"},t={clearReset:"Dies wird die ganze Zeichenfläche löschen. Bist du dir sicher?",couldNotCreateShareableLink:"Konnte keinen teilbaren Link erstellen.",couldNotCreateShareableLinkTooBig:"Konnte keinen teilbaren Link erstellen: Die Zeichnung ist zu groß",couldNotLoadInvalidFile:"Ungültige Datei konnte nicht geladen werden",importBackendFailed:"Import vom Server ist fehlgeschlagen.",cannotExportEmptyCanvas:"Leere Zeichenfläche kann nicht exportiert werden.",couldNotCopyToClipboard:"Kopieren in die Zwischenablage fehlgeschlagen.",decryptFailed:"Daten konnten nicht entschlüsselt werden.",uploadedSecurly:"Der Upload wurde mit Ende-zu-Ende-Verschlüsselung gespeichert. Weder Excalidraw noch Dritte können den Inhalt einsehen.",loadSceneOverridePrompt:"Das Laden einer externen Zeichnung ersetzt den vorhandenen Inhalt. Möchtest du fortfahren?",collabStopOverridePrompt:`Das Stoppen der Sitzung wird deine vorherige, lokal gespeicherte Zeichnung überschreiben. Bist du dir sicher? - -(Wenn du deine lokale Zeichnung behalten möchtest, schließe stattdessen den Browser-Tab.)`,errorAddingToLibrary:"Das Element konnte nicht zur Bibliothek hinzugefügt werden",errorRemovingFromLibrary:"Das Element konnte nicht aus der Bibliothek entfernt werden",confirmAddLibrary:"Dies fügt {{numShapes}} Form(en) zu deiner Bibliothek hinzu. Bist du dir sicher?",imageDoesNotContainScene:"Dieses Bild scheint keine Szenendaten zu enthalten. Hast Du das Einbetten der Szene während des Exports aktiviert?",cannotRestoreFromImage:"Die Zeichnung konnte aus dieser Bilddatei nicht wiederhergestellt werden",invalidSceneUrl:"Die Szene konnte nicht von der angegebenen URL importiert werden. Sie ist entweder fehlerhaft oder enthält keine gültigen Excalidraw JSON-Daten.",resetLibrary:"Dieses löscht deine Bibliothek. Bist du sicher?",removeItemsFromsLibrary:"{{count}} Element(e) aus der Bibliothek löschen?",invalidEncryptionKey:"Verschlüsselungsschlüssel muss 22 Zeichen lang sein. Die Live-Zusammenarbeit ist deaktiviert.",collabOfflineWarning:`Keine Internetverbindung verfügbar. -Deine Änderungen werden nicht gespeichert!`},r={unsupportedFileType:"Nicht unterstützter Dateityp.",imageInsertError:"Das Bild konnte nicht eingefügt werden. Versuche es später erneut...",fileTooBig:"Die Datei ist zu groß. Die maximal zulässige Größe ist {{maxSize}}.",svgImageInsertError:"SVG-Bild konnte nicht eingefügt werden. Das SVG-Markup sieht ungültig aus.",failedToFetchImage:"Bild konnte nicht abgerufen werden.",invalidSVGString:"Ungültige SVG.",cannotResolveCollabServer:"Konnte keine Verbindung zum Collab-Server herstellen. Bitte lade die Seite neu und versuche es erneut.",importLibraryError:"Bibliothek konnte nicht geladen werden",collabSaveFailed:"Keine Speicherung in der Backend-Datenbank möglich. Wenn die Probleme weiterhin bestehen, solltest Du Deine Datei lokal speichern, um sicherzustellen, dass Du Deine Arbeit nicht verlierst.",collabSaveFailed_sizeExceeded:"Keine Speicherung in der Backend-Datenbank möglich, die Zeichenfläche scheint zu groß zu sein. Du solltest Deine Datei lokal speichern, um sicherzustellen, dass Du Deine Arbeit nicht verlierst.",imageToolNotSupported:"Bilder sind deaktiviert.",brave_measure_text_error:{line1:"Sieht so aus, als ob Du den Brave-Browser verwendest und die aggressive Blockierung von Fingerabdrücken aktiviert hast.",line2:"Dies könnte dazu führen, dass die Textelemente in Ihren Zeichnungen zerstört werden.",line3:"Wir empfehlen dringend, diese Einstellung zu deaktivieren. Dazu kannst Du diesen Schritten folgen.",line4:"Wenn die Deaktivierung dieser Einstellung die fehlerhafte Anzeige von Textelementen nicht behebt, öffne bitte ein Ticket auf unserem GitHub oder schreibe uns auf Discord"},libraryElementTypeError:{embeddable:"Einbettbare Elemente können der Bibliothek nicht hinzugefügt werden.",iframe:"IFrame-Elemente können nicht zur Bibliothek hinzugefügt werden.",image:"Unterstützung für das Hinzufügen von Bildern in die Bibliothek kommt bald!"},asyncPasteFailedOnRead:"Einfügen fehlgeschlagen (konnte aus der Zwischenablage des Systems nicht gelesen werden).",asyncPasteFailedOnParse:"Einfügen fehlgeschlagen.",copyToSystemClipboardFailed:"Kopieren in die Zwischenablage fehlgeschlagen."},a={selection:"Auswahl",image:"Bild einfügen",rectangle:"Rechteck",diamond:"Raute",ellipse:"Ellipse",arrow:"Pfeil",line:"Linie",freedraw:"Zeichnen",text:"Text",library:"Bibliothek",lock:"Ausgewähltes Werkzeug nach Zeichnen aktiv lassen",penMode:"Stift-Modus - Berührung verhindern",link:"Link für ausgewählte Form hinzufügen / aktualisieren",eraser:"Radierer",frame:"Rahmenwerkzeug",magicframe:"Wireframe zu Code",embeddable:"Web-Einbettung",laser:"Laserpointer",hand:"Hand (Schwenkwerkzeug)",extraTools:"Weitere Werkzeuge",mermaidToExcalidraw:"Mermaid zu Excalidraw",magicSettings:"KI-Einstellungen"},l={canvasActions:"Aktionen für Zeichenfläche",selectedShapeActions:"Aktionen für Auswahl",shapes:"Formen"},s={canvasPanning:"Um die Zeichenfläche zu verschieben, halte das Mausrad oder die Leertaste während des Ziehens, oder verwende das Hand-Werkzeug",linearElement:"Klicken für Linie mit mehreren Punkten, Ziehen für einzelne Linie",freeDraw:"Klicke und ziehe. Lass los, wenn du fertig bist",text:"Tipp: Du kannst auch Text hinzufügen, indem du mit dem Auswahlwerkzeug auf eine beliebige Stelle doppelklickst",embeddable:"Klicken und ziehen, um eine Webseiten-Einbettung zu erstellen",text_selected:"Doppelklicken oder Eingabetaste drücken, um Text zu bearbeiten",text_editing:"Drücke Escape oder CtrlOrCmd+Eingabetaste, um die Bearbeitung abzuschließen",linearElementMulti:"Zum Beenden auf den letzten Punkt klicken oder Escape oder Eingabe drücken",lockAngle:"Du kannst Winkel einschränken, indem du SHIFT gedrückt hältst",resize:"Du kannst die Proportionen einschränken, indem du SHIFT während der Größenänderung gedrückt hältst. Halte ALT gedrückt, um die Größe vom Zentrum aus zu ändern",resizeImage:"Du kannst die Größe frei ändern, indem du SHIFT gedrückt hältst; halte ALT, um die Größe vom Zentrum aus zu ändern",rotate:"Du kannst Winkel einschränken, indem du SHIFT während der Drehung gedrückt hältst",lineEditor_info:"CtrlOrCmd halten und Doppelklick oder CtrlOrCmd + Eingabe drücken, um Punkte zu bearbeiten",lineEditor_pointSelected:"Drücke Löschen, um Punkt(e) zu entfernen, CtrlOrCmd+D zum Duplizieren oder ziehe zum Verschieben",lineEditor_nothingSelected:`Wähle einen zu bearbeitenden Punkt (halte SHIFT gedrückt um mehrere Punkte auszuwählen), -oder halte Alt gedrückt und klicke um neue Punkte hinzuzufügen`,placeImage:"Klicken, um das Bild zu platzieren oder klicken und ziehen um seine Größe manuell zu setzen",publishLibrary:"Veröffentliche deine eigene Bibliothek",bindTextToElement:"Zum Hinzufügen Eingabetaste drücken",deepBoxSelect:"Halte CtrlOrCmd gedrückt, um innerhalb der Gruppe auszuwählen, und um Ziehen zu vermeiden",eraserRevert:"Halte Alt gedrückt, um die zum Löschen markierten Elemente zurückzusetzen",firefox_clipboard_write:'Diese Funktion kann wahrscheinlich aktiviert werden, indem die Einstellung "dom.events.asyncClipboard.clipboardItem" auf "true" gesetzt wird. Um die Browsereinstellungen in Firefox zu ändern, besuche die Seite "about:config".',disableSnapping:"Halte CtrlOrCmd gedrückt, um das Einrasten zu deaktivieren"},o={cannotShowPreview:"Vorschau kann nicht angezeigt werden",canvasTooBig:"Die Leinwand ist möglicherweise zu groß.",canvasTooBigTip:"Tipp: Schiebe die am weitesten entfernten Elemente ein wenig näher zusammen."},d={headingMain:"Es ist ein Fehler aufgetreten. Versuche ",clearCanvasMessage:"Wenn das Neuladen nicht funktioniert, versuche ",clearCanvasCaveat:" Dies wird zum Verlust von Daten führen ",trackedToSentry:"Der Fehler mit der Kennung {{eventId}} wurde in unserem System registriert.",openIssueMessage:"Wir waren sehr vorsichtig und haben deine Zeichnungsinformationen nicht in die Fehlerinformationen aufgenommen. Wenn deine Zeichnung nicht privat ist, unterstütze uns bitte über unseren . Bitte teile die unten stehenden Informationen mit uns im GitHub Issue (Kopieren und Einfügen).",sceneContent:"Zeichnungsinhalt:"},u={desc_intro:"Du kannst Leute zu deiner aktuellen Zeichnung einladen um mit ihnen zusammenzuarbeiten.",desc_privacy:"Keine Sorge, die Sitzung nutzt eine Ende-zu-Ende-Verschlüsselung. Alles was du zeichnest, bleibt privat. Auch unser Server sieht nicht, was du dir einfallen lässt.",button_startSession:"Sitzung starten",button_stopSession:"Sitzung beenden",desc_inProgressIntro:"Die Live-Sitzung wird nun ausgeführt.",desc_shareLink:"Teile diesen Link mit allen, mit denen du zusammenarbeiten möchtest:",desc_exitSession:"Wenn du die Sitzung beendest, wird deine Verbindung zum Raum getrennt. Du kannst jedoch lokal weiter an der Zeichnung arbeiten. Beachte, dass dies keine Auswirkungen auf andere hat und diese weiterhin gemeinsam an ihrer Version arbeiten können.",shareTitle:"An einer Live-Kollaborationssitzung auf Excalidraw teilnehmen"},c={title:"Fehler"},h={disk_title:"Auf Festplatte speichern",disk_details:"Exportiere die Zeichnungsdaten in eine Datei, die Du später importieren kannst.",disk_button:"Als Datei speichern",link_title:"Teilbarer Link",link_details:"Als schreibgeschützten Link exportieren.",link_button:"Als Link exportieren",excalidrawplus_description:"Speichere die Szene in deinem Excalidraw+ Arbeitsbereich.",excalidrawplus_button:"Exportieren",excalidrawplus_exportError:"Konnte nicht nach Excalidraw+ exportieren..."},g={blog:"Lies unseren Blog",click:"klicken",deepSelect:"Auswahl innerhalb der Gruppe",deepBoxSelect:"Auswahl innerhalb der Gruppe, und Ziehen vermeiden",curvedArrow:"Gebogener Pfeil",curvedLine:"Gebogene Linie",documentation:"Dokumentation",doubleClick:"doppelklicken",drag:"ziehen",editor:"Editor",editLineArrowPoints:"Linien-/Pfeil-Punkte bearbeiten",editText:"Text bearbeiten / Label hinzufügen",github:"Ein Problem gefunden? Informiere uns",howto:"Folge unseren Anleitungen",or:"oder",preventBinding:"Pfeil-Bindung verhindern",tools:"Werkzeuge",shortcuts:"Tastaturkürzel",textFinish:"Bearbeitung beenden (Texteditor)",textNewLine:"Neue Zeile hinzufügen (Texteditor)",title:"Hilfe",view:"Ansicht",zoomToFit:"Zoomen um alle Elemente einzupassen",zoomToSelection:"Auf Auswahl zoomen",toggleElementLock:"Auswahl sperren/entsperren",movePageUpDown:"Seite nach oben/unten verschieben",movePageLeftRight:"Seite nach links/rechts verschieben"},m={title:"Zeichenfläche löschen"},b={title:"Bibliothek veröffentlichen",itemName:"Elementname",authorName:"Name des Autors",githubUsername:"GitHub-Benutzername",twitterUsername:"Twitter-Benutzername",libraryName:"Name der Bibliothek",libraryDesc:"Beschreibung der Bibliothek",website:"Webseite",placeholder:{authorName:"Dein Name oder Benutzername",libraryName:"Name deiner Bibliothek",libraryDesc:"Beschreibung deiner Bibliothek, um anderen Nutzern bei der Verwendung zu helfen",githubHandle:"GitHub-Handle (optional), damit du die Bibliothek bearbeiten kannst, wenn sie zur Überprüfung eingereicht wurde",twitterHandle:"Twitter-Benutzername (optional), damit wir wissen, wen wir bei Werbung über Twitter nennen können",website:"Link zu deiner persönlichen Webseite oder zu anderer Seite (optional)"},errors:{required:"Erforderlich",website:"Gültige URL eingeben"},noteDescription:"Sende deine Bibliothek ein, um in die öffentliche Bibliotheks-Repository aufgenommen zu werdendamit andere Nutzer sie in ihren Zeichnungen verwenden können.",noteGuidelines:"Die Bibliothek muss zuerst manuell freigegeben werden. Bitte lies die Richtlinien vor dem Absenden. Du benötigst ein GitHub-Konto, um zu kommunizieren und Änderungen vorzunehmen, falls erforderlich, aber es ist nicht unbedingt erforderlich.",noteLicense:"Mit dem Absenden stimmst du zu, dass die Bibliothek unter der MIT-Lizenz, die zusammengefasst beinhaltet, dass jeder sie ohne Einschränkungen nutzen kann.",noteItems:"Jedes Bibliothekselement muss einen eigenen Namen haben, damit es gefiltert werden kann. Die folgenden Bibliothekselemente werden hinzugefügt:",atleastOneLibItem:"Bitte wähle mindestens ein Bibliothekselement aus, um zu beginnen",republishWarning:"Hinweis: Einige der ausgewählten Elemente sind bereits als veröffentlicht/eingereicht markiert. Du solltest Elemente nur erneut einreichen, wenn Du eine existierende Bibliothek oder Einreichung aktualisierst."},k={title:"Bibliothek übermittelt",content:"Vielen Dank {{authorName}}. Deine Bibliothek wurde zur Überprüfung eingereicht. Du kannst den Status verfolgenhier"},p={resetLibrary:"Bibliothek zurücksetzen",removeItemsFromLib:"Ausgewählte Elemente aus der Bibliothek entfernen"},z={header:"Bild exportieren",label:{withBackground:"Hintergrund",onlySelected:"Nur ausgewählte",darkMode:"Dunkler Modus",embedScene:"Szene einbetten",scale:"Skalierung",padding:"Abstand"},tooltip:{embedScene:`Die Zeichnungsdaten werden in der exportierten PNG/SVG-Datei gespeichert, sodass das Dokument später weiter bearbeitet werden kann. -Dieses wird die exportierte Datei vergrößern.`},title:{exportToPng:"Als PNG exportieren",exportToSvg:"Als SVG exportieren",copyPngToClipboard:"PNG in die Zwischenablage kopieren"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"In Zwischenablage kopieren"}},f={tooltip:"Da deine Zeichnungen Ende-zu-Ende verschlüsselt werden, sehen auch unsere Excalidraw-Server sie niemals.",link:"Blogbeitrag über Ende-zu-Ende-Verschlüsselung in Excalidraw"},w={angle:"Winkel",element:"Element",elements:"Elemente",height:"Höhe",scene:"Zeichnung",selected:"Ausgewählt",storage:"Speicher",title:"Statistiken für Nerds",total:"Gesamt",version:"Version",versionCopy:"Zum Kopieren klicken",versionNotAvailable:"Version nicht verfügbar",width:"Breite"},D={addedToLibrary:"Zur Bibliothek hinzugefügt",copyStyles:"Formatierungen kopiert.",copyToClipboard:"In die Zwischenablage kopiert.",copyToClipboardAsPng:`{{exportSelection}} als PNG in die Zwischenablage kopiert -({{exportColorScheme}})`,fileSaved:"Datei gespeichert.",fileSavedToFilename:"Als {filename} gespeichert",canvas:"Zeichenfläche",selection:"Auswahl",pasteAsSingleElement:`Verwende {{shortcut}} , um als einzelnes Element -einzufügen oder in einen existierenden Texteditor einzufügen`,unableToEmbed:"Einbetten dieser URL ist derzeit nicht zulässig. Erstelle einen Issue auf GitHub, um die URL freigeben zu lassen",unrecognizedLinkFormat:"Der Link, den Du eingebettet hast, stimmt nicht mit dem erwarteten Format überein. Bitte versuche den 'embed' String einzufügen, der von der Quellseite zur Verfügung gestellt wird"},S={transparent:"Transparent",black:"Schwarz",white:"Weiß",red:"Rot",pink:"Pink",grape:"Traube",violet:"Violett",gray:"Grau",blue:"Blau",cyan:"Cyan",teal:"Blaugrün",green:"Grün",yellow:"Gelb",orange:"Orange",bronze:"Bronze"},v={app:{center_heading:"Alle Daten werden lokal in Deinem Browser gespeichert.",center_heading_plus:"Möchtest du stattdessen zu Excalidraw+ gehen?",menuHint:"Exportieren, Einstellungen, Sprachen, ..."},defaults:{menuHint:"Exportieren, Einstellungen und mehr...",center_heading:"Diagramme. Einfach. Gemacht.",toolbarHint:"Wähle ein Werkzeug & beginne zu zeichnen!",helpHint:"Kurzbefehle & Hilfe"}},E={mostUsedCustomColors:"Beliebteste benutzerdefinierte Farben",colors:"Farben",shades:"Schattierungen",hexCode:"Hex-Code",noShades:"Keine Schattierungen für diese Farbe verfügbar"},x={action:{exportToImage:{title:"Als Bild exportieren",button:"Als Bild exportieren",description:"Exportiere die Zeichnungsdaten als ein Bild, von dem Du später importieren kannst."},saveToDisk:{title:"Auf Festplatte speichern",button:"Auf Festplatte speichern",description:"Exportiere die Zeichnungsdaten in eine Datei, von der Du später importieren kannst."},excalidrawPlus:{title:"Excalidraw+",button:"Export nach Excalidraw+",description:"Speichere die Szene in deinem Excalidraw+-Arbeitsbereich."}},modal:{loadFromFile:{title:"Aus Datei laden",button:"Aus Datei laden",description:"Das Laden aus einer Datei wird Deinen vorhandenen Inhalt ersetzen.

    Du kannst Deine Zeichnung zuerst mit einer der folgenden Optionen sichern."},shareableLink:{title:"Aus Link laden",button:"Meinen Inhalt ersetzen",description:"Das Laden einer externen Zeichnung wird Deinen vorhandenen Inhalt ersetzen.

    Du kannst Deine Zeichnung zuerst mit einer der folgenden Optionen sichern."}}},B={title:"Mermaid zu Excalidraw",button:"Einfügen",description:"Derzeit werden nur Flussdiagramme, Sequenzdiagramme und Klassendiagramme unterstützt. Die anderen Typen werden als Bild in Excalidraw dargestellt.",syntax:"Mermaid-Syntax",preview:"Vorschau"},L={labels:e,library:n,buttons:i,alerts:t,errors:r,toolBar:a,headings:l,hints:s,canvasError:o,errorSplash:d,roomDialog:u,errorDialog:c,exportDialog:h,helpDialog:g,clearCanvasDialog:m,publishDialog:b,publishSuccessDialog:k,confirmDialog:p,imageExportDialog:z,encrypted:f,stats:w,toast:D,colors:S,welcomeScreen:v,colorPicker:E,overwriteConfirm:x,mermaid:B};export{t as alerts,i as buttons,o as canvasError,m as clearCanvasDialog,E as colorPicker,S as colors,p as confirmDialog,L as default,f as encrypted,c as errorDialog,d as errorSplash,r as errors,h as exportDialog,l as headings,g as helpDialog,s as hints,z as imageExportDialog,e as labels,n as library,B as mermaid,x as overwriteConfirm,b as publishDialog,k as publishSuccessDialog,u as roomDialog,w as stats,D as toast,a as toolBar,v as welcomeScreen}; -//# sourceMappingURL=de-DE.json-i3JZdkyf.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js.map b/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js.map deleted file mode 100644 index f9a0e1d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/de-DE.json-i3JZdkyf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"de-DE.json-i3JZdkyf.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js b/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js deleted file mode 100644 index a856055..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"Επικόλληση",pasteAsPlaintext:"Επικόλληση ως απλό κείμενο",pasteCharts:"Επικόλληση γραφημάτων",selectAll:"Επιλογή όλων",multiSelect:"Προσθέστε το στοιχείο στην επιλογή",moveCanvas:"Μετακίνηση καμβά",cut:"Αποκοπή",copy:"Αντιγραφή",copyAsPng:"Αντιγραφή στο πρόχειρο ως PNG",copyAsSvg:"Αντιγραφή στο πρόχειρο ως SVG",copyText:"Αντιγραφή στο πρόχειρο ως κείμενο",copySource:"",convertToCode:"",bringForward:"Στο προσκήνιο",sendToBack:"Ένα επίπεδο πίσω",bringToFront:"Ένα επίπεδο μπροστά",sendBackward:"Στο παρασκήνιο",delete:"Διαγραφή",copyStyles:"Αντιγραφή εμφάνισης",pasteStyles:"Επικόλληση εμφάνισης",stroke:"Μολυβιά",background:"Φόντο",fill:"Γέμισμα",strokeWidth:"Πάχος μολυβιάς",strokeStyle:"Στυλ περιγράμματος",strokeStyle_solid:"Συμπαγής",strokeStyle_dashed:"Διακεκομμένη με παύλες",strokeStyle_dotted:"Διακεκομμένη με τελείες",sloppiness:"Ακαταστασία",opacity:"Διαφάνεια",textAlign:"Στοίχιση κειμένου",edges:"Άκρες",sharp:"Οξύ",round:"Στρογγυλό",arrowheads:"Σύμβολα βελών",arrowhead_none:"Κανένα",arrowhead_arrow:"Βέλος",arrowhead_bar:"Μπάρα",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Τρίγωνο",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Μέγεθος γραμματοσειράς",fontFamily:"Γραμματοσειρά",addWatermark:'Προσθήκη "Φτιαγμένο με Excalidraw"',handDrawn:"Σχεδιασμένο στο χέρι",normal:"Κανονική",code:"Κώδικας",small:"Μικρό",medium:"Μεσαίο",large:"Μεγάλο",veryLarge:"Πολύ μεγάλο",solid:"Συμπαγής",hachure:"Εκκόλαψη",zigzag:"",crossHatch:"Διασταυρούμενη εκκόλαψη",thin:"Λεπτή",bold:"Έντονη",left:"Αριστερά",center:"Κέντρο",right:"Δεξιά",extraBold:"Πολύ έντονη",architect:"Αρχιτέκτονας",artist:"Καλλιτέχνης",cartoonist:"Σκιτσογράφος",fileTitle:"Όνομα αρχείου",colorPicker:"Επιλογή Χρώματος",canvasColors:"Χρησιμοποείται στον καμβά",canvasBackground:"Φόντο καμβά",drawingCanvas:"Σχεδίαση καμβά",layers:"Στρώματα",actions:"Ενέργειες",language:"Γλώσσα",liveCollaboration:"Live συνεργασία...",duplicateSelection:"Δημιουργία αντιγράφου",untitled:"Χωρίς τίτλο",name:"Όνομα",yourName:"Το όνομά σου",madeWithExcalidraw:"Φτιαγμένο με Excalidraw",group:"Δημιουργία ομάδας από επιλογή",ungroup:"Κατάργηση ομάδας από επιλογή",collaborators:"Συνεργάτες",showGrid:"Προβολή πλέγματος",addToLibrary:"Προσθήκη στη βιβλιοθήκη",removeFromLibrary:"Αφαίρεση από τη βιβλιοθήκη",libraryLoadingMessage:"Φόρτωση βιβλιοθήκης…",libraries:"Άλλες βιβλιοθήκες",loadingScene:"Φόρτωση σκηνής…",align:"Στοίχιση",alignTop:"Στοίχιση πάνω",alignBottom:"Στοίχιση κάτω",alignLeft:"Στοίχιση αριστερά",alignRight:"Στοίχιση δεξιά",centerVertically:"Κέντρο κάθετα",centerHorizontally:"Κέντρο οριζόντια",distributeHorizontally:"Οριζόντια κατανομή",distributeVertically:"Κατακόρυφη κατανομή",flipHorizontal:"Οριζόντια αναστροφή",flipVertical:"Κατακόρυφη αναστροφή",viewMode:"Λειτουργία προβολής",share:"Κοινοποίηση",showStroke:"Εμφάνιση επιλογέα χρωμάτων πινελιάς",showBackground:"Εμφάνιση επιλογέα χρώματος φόντου",toggleTheme:"Εναλλαγή θέματος",personalLib:"Προσωπική Βιβλιοθήκη",excalidrawLib:"Βιβλιοθήκη Excalidraw",decreaseFontSize:"Μείωση μεγέθους γραμματοσειράς",increaseFontSize:"Αύξηση μεγέθους γραμματοσειράς",unbindText:"Αποσύνδεση κειμένου",bindText:"Δέσμευση κειμένου στο δοχείο",createContainerFromText:"",link:{edit:"Επεξεργασία συνδέσμου",editEmbed:"",create:"Δημιουργία συνδέσμου",createEmbed:"",label:"Σύνδεσμος",labelEmbed:"",empty:""},lineEditor:{edit:"Επεξεργασία γραμμής",exit:"Έξοδος επεξεργαστή κειμένου"},elementLock:{lock:"Κλείδωμα",unlock:"Ξεκλείδωμα",lockAll:"Κλείδωμα όλων",unlockAll:"Ξεκλείδωμα όλων"},statusPublished:"Δημοσιευμένο",sidebarLock:"Κρατήστε την πλαϊνή μπάρα ανοιχτή",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},t={noItems:"Δεν έχουν προστεθεί αντικείμενα ακόμη...",hint_emptyLibrary:"Επιλέξτε ένα στοιχείο στον καμβά για να το προσθέσετε εδώ, ή εγκαταστήστε μια βιβλιοθήκη από το δημόσιο αποθετήριο, παρακάτω.",hint_emptyPrivateLibrary:"Επιλέξτε ένα στοιχείο στον καμβά για να το προσθέσετε εδώ."},o={clearReset:"Επαναφορά του καμβά",exportJSON:"Εξαγωγή σε αρχείο",exportImage:"Εξαγωγή εικόνας...",export:"Αποθήκευση ως...",copyToClipboard:"Αντιγραφή στο πρόχειρο",save:"Αποθήκευση στο τρέχον αρχείο",saveAs:"Αποθήκευση ως",load:"Άνοιγμα",getShareableLink:"Δημόσιος σύνδεσμος",close:"Κλείσιμο",selectLanguage:"Επιλογή γλώσσας",scrollBackToContent:"Μετακινηθείτε πίσω στο περιεχόμενο",zoomIn:"Μεγέθυνση",zoomOut:"Σμίκρυνση",resetZoom:"Επαναφορά μεγέθυνσης",menu:"Μενού",done:"Τέλος",edit:"Επεξεργασία",undo:"Αναίρεση",redo:"Επαναφορά",resetLibrary:"Καθαρισμός βιβλιοθήκης",createNewRoom:"Δημιουργία νέου χώρου",fullScreen:"Πλήρης οθόνη",darkMode:"Σκοτεινή λειτουργία",lightMode:"Φωτεινή λειτουργία",zenMode:"Λειτουργία Zεν",objectsSnapMode:"",exitZenMode:"Έξοδος από την λειτουργία Zen",cancel:"Ακύρωση",clear:"Καθαρισμός",remove:"Κατάργηση",embed:"",publishLibrary:"Δημοσίευση",submit:"Υποβολή",confirm:"Επιβεβαίωση",embeddableInteractionButton:""},r={clearReset:"Αυτό θα σβήσει ολόκληρο τον καμβά. Είσαι σίγουρος;",couldNotCreateShareableLink:"Δεν ήταν δυνατή η δημιουργία συνδέσμου κοινής χρήσης.",couldNotCreateShareableLinkTooBig:"Δεν ήταν δυνατή η δημιουργία κοινόχρηστου συνδέσμου: η σκηνή είναι πολύ μεγάλη",couldNotLoadInvalidFile:"Δεν μπόρεσε να ανοίξει εσφαλμένο αρχείο",importBackendFailed:"Η εισαγωγή από το backend απέτυχε.",cannotExportEmptyCanvas:"Δεν είναι δυνατή η εξαγωγή κενού καμβά.",couldNotCopyToClipboard:"Αδυναμία αντιγραφής στο πρόχειρο.",decryptFailed:"Δεν ήταν δυνατή η αποκρυπτογράφηση δεδομένων.",uploadedSecurly:"Η μεταφόρτωση έχει εξασφαλιστεί με κρυπτογράφηση από άκρο σε άκρο, πράγμα που σημαίνει ότι ο διακομιστής Excalidraw και τρίτα μέρη δεν μπορούν να διαβάσουν το περιεχόμενο.",loadSceneOverridePrompt:"Η φόρτωση εξωτερικού σχεδίου θα αντικαταστήσει το υπάρχον περιεχόμενο. Επιθυμείτε να συνεχίσετε;",collabStopOverridePrompt:`Η διακοπή της συνεδρίας θα αντικαταστήσει το προηγούμενο, τοπικά αποθηκευμένο σχέδιο. Είστε σίγουροι? - -(Αν θέλετε να διατηρήσετε το τοπικό σας σχέδιο, απλά κλείστε την καρτέλα του προγράμματος περιήγησης.)`,errorAddingToLibrary:"Αδυναμία προσθήκης αντικειμένου στη βιβλιοθήκη",errorRemovingFromLibrary:"Αδυναμία αφαίρεσης αντικειμένου από τη βιβλιοθήκη",confirmAddLibrary:"Αυτό θα προσθέσει {{numShapes}} σχήμα(τα) στη βιβλιοθήκη σας. Είστε σίγουροι;",imageDoesNotContainScene:"Αυτή η εικόνα δεν φαίνεται να περιέχει δεδομένα σκηνής. Έχετε ενεργοποιήσει την ενσωμάτωση σκηνής κατά την εξαγωγή;",cannotRestoreFromImage:"Η σκηνή δεν ήταν δυνατό να αποκατασταθεί από αυτό το αρχείο εικόνας",invalidSceneUrl:"Δεν ήταν δυνατή η εισαγωγή σκηνής από το URL που δώσατε. Είτε έχει λάθος μορφή, είτε δεν περιέχει έγκυρα δεδομένα JSON Excalidraw.",resetLibrary:"Αυτό θα καθαρίσει τη βιβλιοθήκη σας. Είστε σίγουροι;",removeItemsFromsLibrary:"Διαγραφή {{count}} αντικειμένου(ων) από τη βιβλιοθήκη;",invalidEncryptionKey:"Το κλειδί κρυπτογράφησης πρέπει να είναι 22 χαρακτήρες. Η ζωντανή συνεργασία είναι απενεργοποιημένη.",collabOfflineWarning:`Δεν υπάρχει διαθέσιμη σύνδεση στο internet. -Οι αλλαγές σας δεν θα αποθηκευτούν!`},a={unsupportedFileType:"Μη υποστηριζόμενος τύπος αρχείου.",imageInsertError:"Αδυναμία εισαγωγής εικόνας. Προσπαθήστε ξανά αργότερα...",fileTooBig:"Το αρχείο είναι πολύ μεγάλο. Το μέγιστο επιτρεπόμενο μέγεθος είναι {{maxSize}}.",svgImageInsertError:"Αδυναμία εισαγωγής εικόνας SVG. Η σήμανση της SVG δεν φαίνεται έγκυρη.",failedToFetchImage:"",invalidSVGString:"Μη έγκυρο SVG.",cannotResolveCollabServer:"Αδυναμία σύνδεσης με τον διακομιστή συνεργασίας. Παρακαλώ ανανεώστε τη σελίδα και προσπαθήστε ξανά.",importLibraryError:"Αδυναμία φόρτωσης βιβλιοθήκης",collabSaveFailed:"Η αποθήκευση στη βάση δεδομένων δεν ήταν δυνατή. Αν το προβλήματα παραμείνει, θα πρέπει να αποθηκεύσετε το αρχείο σας τοπικά για να βεβαιωθείτε ότι δεν χάνετε την εργασία σας.",collabSaveFailed_sizeExceeded:"Η αποθήκευση στη βάση δεδομένων δεν ήταν δυνατή, ο καμβάς φαίνεται να είναι πολύ μεγάλος. Θα πρέπει να αποθηκεύσετε το αρχείο τοπικά για να βεβαιωθείτε ότι δεν θα χάσετε την εργασία σας.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"Επιλογή",image:"Εισαγωγή εικόνας",rectangle:"Ορθογώνιο",diamond:"Ρόμβος",ellipse:"Έλλειψη",arrow:"Βέλος",line:"Γραμμή",freedraw:"Σχεδίαση",text:"Κείμενο",library:"Βιβλιοθήκη",lock:"Κράτησε επιλεγμένο το εργαλείο μετά το σχέδιο",penMode:"Λειτουργία μολυβιού - αποτροπή αφής",link:"Προσθήκη/ Ενημέρωση συνδέσμου για ένα επιλεγμένο σχήμα",eraser:"Γόμα",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"Ενέργειες καμβά",selectedShapeActions:"Επιλεγμένες ενέργειες σχήματος",shapes:"Σχήματα"},l={canvasPanning:"",linearElement:"Κάνε κλικ για να ξεκινήσεις πολλαπλά σημεία, σύρε για μια γραμμή",freeDraw:"Κάντε κλικ και σύρτε, απελευθερώσατε όταν έχετε τελειώσει",text:"Tip: μπορείτε επίσης να προσθέστε κείμενο με διπλό-κλικ οπουδήποτε με το εργαλείο επιλογών",embeddable:"",text_selected:"Κάντε διπλό κλικ ή πατήστε ENTER για να επεξεργαστείτε το κείμενο",text_editing:"Πατήστε Escape ή CtrlOrCmd+ENTER για να ολοκληρώσετε την επεξεργασία",linearElementMulti:"Κάνε κλικ στο τελευταίο σημείο ή πάτησε Escape ή Enter για να τελειώσεις",lockAngle:"Μπορείτε να περιορίσετε τη γωνία κρατώντας πατημένο το SHIFT",resize:`Μπορείς να περιορίσεις τις αναλογίες κρατώντας το SHIFT ενώ αλλάζεις μέγεθος, -κράτησε πατημένο το ALT για αλλαγή μεγέθους από το κέντρο`,resizeImage:`Μπορείτε να αλλάξετε το μέγεθος ελεύθερα κρατώντας πατημένο το SHIFT, -κρατήστε πατημένο το ALT για να αλλάξετε το μέγεθος από το κέντρο`,rotate:"Μπορείς να περιορίσεις τις γωνίες κρατώντας πατημένο το πλήκτρο SHIFT κατά την περιστροφή",lineEditor_info:"Κρατήστε πατημένο Ctrl ή Cmd και πατήστε το πλήκτρο Ctrl ή Cmd + Enter για επεξεργασία σημείων",lineEditor_pointSelected:`Πατήστε Διαγραφή για αφαίρεση σημείου(ων), -CtrlOrCmd+D για αντιγραφή, ή σύρετε για μετακίνηση`,lineEditor_nothingSelected:`Επιλέξτε ένα σημείο για να επεξεργαστείτε (κρατήστε πατημένο το SHIFT για να επιλέξετε πολλαπλά), -ή κρατήστε πατημένο το Alt και κάντε κλικ για να προσθέσετε νέα σημεία`,placeImage:"Κάντε κλικ για να τοποθετήσετε την εικόνα ή κάντε κλικ και σύρετε για να ορίσετε το μέγεθός της χειροκίνητα",publishLibrary:"Δημοσιεύστε τη δική σας βιβλιοθήκη",bindTextToElement:"Πατήστε Enter για προσθήκη κειμένου",deepBoxSelect:"Κρατήστε πατημένο το CtrlOrCmd για να επιλέξετε βαθιά, και να αποτρέψετε τη μεταφορά",eraserRevert:"Κρατήστε πατημένο το Alt για να επαναφέρετε τα στοιχεία που σημειώθηκαν για διαγραφή",firefox_clipboard_write:'Αυτή η επιλογή μπορεί πιθανώς να ενεργοποιηθεί αλλάζοντας την ρύθμιση "dom.events.asyncClipboard.clipboardItem" σε "true". Για να αλλάξετε τις ρυθμίσεις του προγράμματος περιήγησης στο Firefox, επισκεφθείτε τη σελίδα "about:config".',disableSnapping:""},s={cannotShowPreview:"Αδυναμία εμφάνισης προεπισκόπησης",canvasTooBig:"Ο καμβάς μπορεί να είναι μεγάλος.",canvasTooBigTip:"Συμβουλή: προσπαθήστε να μετακινήσετε τα πιο απομακρυσμένα στοιχεία λίγο πιο κοντά μαζί."},c={headingMain:"Συνέβη κάποιο σφάλμα. Προσπάθησε ",clearCanvasMessage:"Εάν το παραπάνω δεν δουλέψει, προσπάθησε ",clearCanvasCaveat:" Αυτό θα προκαλέσει απώλεια της δουλειάς σου ",trackedToSentry:"Το σφάλμα με αναγνωριστικό {{eventId}} παρακολουθήθηκε στο σύστημά μας.",openIssueMessage:"Ήμασταν πολύ προσεκτικοί για να μην συμπεριλάβουμε τις πληροφορίες της σκηνής σου στο σφάλμα. Αν η σκηνή σου δεν είναι ιδιωτική, παρακαλώ σκέψου να ακολουθήσεις το δικό μας Παρακαλώ να συμπεριλάβετε τις παρακάτω πληροφορίες, αντιγράφοντας και επικολλώντας το ζήτημα στο GitHub.",sceneContent:"Περιεχόμενο σκηνής:"},d={desc_intro:"Μπορείς να προσκαλέσεις άλλους να δουλέψουν μαζί σου.",desc_privacy:"Μην ανησυχείς, η συνεδρία χρησιμοποιεί κρυπτογράφηση από σημείο σε σημείο, άρα οτιδήποτε κάνεις θα παραμείνει ανοιχτό μόνο σε εσένα. Ούτε οι μηχανές μας μπορούν να δουν τι κάνεις.",button_startSession:"Έναρξη Συνεδρίας",button_stopSession:"Τερματισμός Συνεδρίας",desc_inProgressIntro:"Η ζωντανή συνεργασία με άλλους είναι σε ενεργή.",desc_shareLink:"Μοιραστείτε τον σύνδεσμο με όποιον θέλετε να δουλέψετε μαζί:",desc_exitSession:"Η διακοπή θα σας αποσυνδέσει από το δωμάτιο, αλλά θα μπορείτε να συνεχίσετε να δουλεύετε στον πίνακα, τοπικά. Σημειώσατε ότι αυτό δεν θα επηρεάσει τον πίνακα άλλων, και θα μπορούν ακόμα να συνεισφέρουν στην δική τους έκδοση.",shareTitle:"Συμμετάσχετε σε μια ζωντανή συνεδρία συνεργασίας για το Excalidraw"},m={title:"Σφάλμα"},p={disk_title:"Αποθήκευση στο δίσκο",disk_details:"Εξαγωγή δεδομένων σκηνής σε ένα αρχείο από το οποίο μπορείτε να εισάγετε αργότερα.",disk_button:"Αποθήκευση σε αρχείο",link_title:"Κοινόχρηστος σύνδεσμος",link_details:"Εξαγωγή ως σύνδεσμο μόνο για ανάγνωση.",link_button:"Εξαγωγή σε Σύνδεση",excalidrawplus_description:"Αποθηκεύστε τη σκηνή στο χώρο εργασίας σας Excalidraw+.",excalidrawplus_button:"Εξαγωγή",excalidrawplus_exportError:"Δεν ήταν δυνατή η εξαγωγή στο Excalidraw+ αυτή τη στιγμή..."},b={blog:"Διαβάστε το Blog μας",click:"κλικ",deepSelect:"Βαθιά επιλογή",deepBoxSelect:"Βαθιά επιλογή μέσα στο πλαίσιο και αποτροπή συρσίματος",curvedArrow:"Κυρτό βέλος",curvedLine:"Κυρτή γραμμή",documentation:"Εγχειρίδιο",doubleClick:"διπλό κλικ",drag:"σύρε",editor:"Επεξεργαστής",editLineArrowPoints:"",editText:"",github:"Βρήκατε πρόβλημα; Υποβάλετε το",howto:"Ακολουθήστε τους οδηγούς μας",or:"ή",preventBinding:"Αποτροπή δέσμευσης βέλων",tools:"Εργαλεία",shortcuts:"Συντομεύσεις πληκτρολογίου",textFinish:"Ολοκλήρωση επεξεργασίας (επεξεργαστής κειμένου)",textNewLine:"Προσθήκη νέας γραμμής (επεξεργαστής κειμένου)",title:"Βοήθεια",view:"Προβολή",zoomToFit:"Zoom ώστε να χωρέσουν όλα τα στοιχεία",zoomToSelection:"Ζουμ στην επιλογή",toggleElementLock:"Κλείδωμα/Ξεκλείδωμα επιλογής",movePageUpDown:"Μετακίνηση σελίδας πάνω/κάτω",movePageLeftRight:"Μετακίνηση σελίδας αριστερά/δεξιά"},g={title:"Καθαρισμός καμβά"},u={title:"Δημοσίευση βιβλιοθήκης",itemName:"Όνομα αντικειμένου",authorName:"Όνομα δημιουργού",githubUsername:"GitHub username",twitterUsername:"Twitter username",libraryName:"Όνομα βιβλιοθήκης",libraryDesc:"Περιγραφή βιβλιοθήκης",website:"Ιστοσελίδα",placeholder:{authorName:"Όνομα ή όνομα χρήστη",libraryName:"Όνομα της βιβλιοθήκης σας",libraryDesc:"Περιγραφή της βιβλιοθήκης σας ώστε να βοηθήσει το κοινό να κατανοήσει τη χρήση της",githubHandle:"Όνομα χρήστη στο GitHub (προαιρετικό), ώστε να μπορείτε να επεξεργαστείτε τη βιβλιοθήκη αφού υποβληθεί για αξιολόγηση",twitterHandle:"Όνομα χρήστη Twitter (προαιρετικό), ώστε να γνωρίζουμε σε ποιον/η να δώσουμε εύσημα κατά την προώθηση μέσω Twitter",website:"Σύνδεσμος για την προσωπική σας ιστοσελίδα ή αλλού (προαιρετικό)"},errors:{required:"Απαιτείται",website:"Εισάγετε μια έγκυρη διεύθυνση URL"},noteDescription:"Υποβάλετε τη βιβλιοθήκη σας για να συμπεριληφθεί στο δημόσιο αποθετήριο βιβλιοθήκηςώστε να χρησιμοποιηθεί από άλλα άτομα στα σχέδιά τους.",noteGuidelines:"Η βιβλιοθήκη πρέπει πρώτα να εγκριθεί χειροκίνητα. Παρακαλώ διαβάστε τους οδηγίες πριν την υποβολή. Θα χρειαστείτε έναν λογαριασμό GitHub για την επικοινωνία και για να προβείτε σε αλλαγές εφ' όσον χρειαστεί, αλλά δεν είναι αυστηρή απαίτηση.",noteLicense:"Με την υποβολή, συμφωνείτε ότι η βιβλιοθήκη θα δημοσιευθεί υπό την Άδεια MIT, που εν συντομία σημαίνει ότι ο καθένας μπορεί να τα χρησιμοποιήσει χωρίς περιορισμούς.",noteItems:"Κάθε αντικείμενο της βιβλιοθήκης πρέπει να έχει το δικό του όνομα ώστε να μπορεί να φιλτραριστεί. Θα συμπεριληφθούν τα ακόλουθα αντικείμενα βιβλιοθήκης:",atleastOneLibItem:"Παρακαλώ επιλέξτε τουλάχιστον ένα αντικείμενο βιβλιοθήκης για να ξεκινήσετε",republishWarning:"Σημείωση: μερικά από τα επιλεγμένα αντικέιμενα έχουν ήδη επισημανθεί ως δημοσιευμένα/υποβεβλημένα. Θα πρέπει να υποβάλετε αντικείμενα εκ νέου μόνο για να ενημερώσετε μία ήδη υπάρχουσα βιβλιοθήκη ή υποβολή."},h={title:"Η βιβλιοθήκη υποβλήθηκε",content:"Ευχαριστούμε {{authorName}}. Η βιβλιοθήκη σας έχει υποβληθεί για αξιολόγηση. Μπορείτε να παρακολουθείτε τη διαδικασίαεδώ"},y={resetLibrary:"Καθαρισμός βιβλιοθήκης",removeItemsFromLib:"Αφαίρεση επιλεγμένων αντικειμένων από τη βιβλιοθήκη"},S={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},v={tooltip:"Τα σχέδιά σου είναι κρυπτογραφημένα από άκρο σε άκρο, έτσι δεν θα είναι ποτέ ορατά μέσα από τους διακομιστές του Excalidraw.",link:"Blog post στην κρυπτογράφηση end-to-end στο Excalidraw"},w={angle:"Γωνία",element:"Στοιχείο",elements:"Στοιχεία",height:"Ύψος",scene:"Σκηνή",selected:"Επιλεγμένα",storage:"Χώρος",title:"Στατιστικά για σπασίκλες",total:"Σύνολο ",version:"Έκδοση",versionCopy:"Κάνε κλικ για αντιγραφή",versionNotAvailable:"Έκδοση μη διαθέσιμη",width:"Πλάτος"},x={addedToLibrary:"Προστέθηκε στη βιβλιοθήκη",copyStyles:"Αντιγράφηκαν στυλ.",copyToClipboard:"Αντιγράφηκε στο πρόχειρο.",copyToClipboardAsPng:`Αντιγράφηκε {{exportSelection}} στο πρόχειρο ως PNG -({{exportColorScheme}})`,fileSaved:"Το αρχείο αποθηκεύτηκε.",fileSavedToFilename:"Αποθηκεύτηκε στο {filename}",canvas:"καμβάς",selection:"επιλογή",pasteAsSingleElement:`Χρησιμοποίησε το {{shortcut}} για να επικολλήσεις ως ένα μόνο στοιχείο, -ή να επικολλήσεις σε έναν υπάρχοντα επεξεργαστή κειμένου`,unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"Διαφανές",black:"Μαύρο",white:"Λευκό",red:"Κόκκινο",pink:"Ροζ",grape:"Σταφυλί",violet:"Βιολετί",gray:"Γκρι",blue:"Μπλε",cyan:"Κυανό",teal:"Τιρκουάζ",green:"Πράσινο",yellow:"Κίτρινο",orange:"Πορτοκαλί",bronze:"Χαλκινο"},k={app:{center_heading:"Όλα τα δεδομένα σας αποθηκεύονται τοπικά στο πρόγραμμα περιήγησης.",center_heading_plus:"Μήπως θέλατε να πάτε στο Excalidraw+;",menuHint:"Εξαγωγή, προτιμήσεις, γλώσσες, ..."},defaults:{menuHint:"Εξαγωγή, προτιμήσεις και άλλες επιλογές...",center_heading:"Διαγράμματα. Εύκολα. Γρήγορα.",toolbarHint:"Επιλέξτε ένα εργαλείο και ξεκινήστε να σχεδιάζεται!",helpHint:"Συντομεύσεις και βοήθεια"}},E={mostUsedCustomColors:"Πιο χρησιμοποιούμενα χρώματα",colors:"Χρώματα",shades:"Αποχρώσεις",hexCode:"Κωδικός Hex",noShades:"Δεν υπάρχουν διαθέσιμες αποχρώσεις για αυτό το χρώμα"},_={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:T,welcomeScreen:k,colorPicker:E,overwriteConfirm:_,mermaid:C};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,T as colors,y as confirmDialog,L as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,S as imageExportDialog,e as labels,t as library,C as mermaid,_ as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,k as welcomeScreen}; -//# sourceMappingURL=el-GR.json-HpHJuTAr.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js.map b/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js.map deleted file mode 100644 index 148574a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/el-GR.json-HpHJuTAr.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"el-GR.json-HpHJuTAr.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js b/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js deleted file mode 100644 index d0b9691..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Pegar",pasteAsPlaintext:"Pegar como texto sin formato",pasteCharts:"Pegar gráficos",selectAll:"Seleccionar todo",multiSelect:"Añadir elemento a la selección",moveCanvas:"Mover el lienzo",cut:"Cortar",copy:"Copiar",copyAsPng:"Copiar al portapapeles como PNG",copyAsSvg:"Copiar al portapapeles como SVG",copyText:"Copiar al portapapeles como texto",copySource:"Copiar fuente al portapapeles",convertToCode:"Convertir a código",bringForward:"Traer hacia delante",sendToBack:"Enviar al fondo",bringToFront:"Traer al frente",sendBackward:"Enviar atrás",delete:"Borrar",copyStyles:"Copiar estilos",pasteStyles:"Pegar estilos",stroke:"Trazo",background:"Fondo",fill:"Rellenar",strokeWidth:"Grosor del trazo",strokeStyle:"Estilo del trazo",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Discontinua",strokeStyle_dotted:"Punteado",sloppiness:"Estilo de trazo",opacity:"Opacidad",textAlign:"Alineado de texto",edges:"Bordes",sharp:"Afilado",round:"Redondo",arrowheads:"Puntas de flecha",arrowhead_none:"Ninguna",arrowhead_arrow:"Flecha",arrowhead_bar:"Barra",arrowhead_circle:"Círculo",arrowhead_circle_outline:"Círculo (contorno)",arrowhead_triangle:"Triángulo",arrowhead_triangle_outline:"Triángulo (contorno)",arrowhead_diamond:"Diamante",arrowhead_diamond_outline:"Diamante (contorno)",fontSize:"Tamaño de la fuente",fontFamily:"Tipo de fuente",addWatermark:'Agregar "Hecho con Excalidraw"',handDrawn:"Dibujado a mano",normal:"Normal",code:"Código",small:"Pequeña",medium:"Mediana",large:"Grande",veryLarge:"Muy grande",solid:"Sólido",hachure:"Folleto",zigzag:"Zigzag",crossHatch:"Rayado transversal",thin:"Fino",bold:"Grueso",left:"Izquierda",center:"Centrado",right:"Derecha",extraBold:"Extra negrita",architect:"Arquitecto",artist:"Artista",cartoonist:"Caricatura",fileTitle:"Nombre del archivo",colorPicker:"Selector de color",canvasColors:"Usado en lienzo",canvasBackground:"Fondo del lienzo",drawingCanvas:"Lienzo de dibujo",layers:"Capas",actions:"Acciones",language:"Idioma",liveCollaboration:"Colaboración en directo...",duplicateSelection:"Duplicar",untitled:"Sin título",name:"Nombre",yourName:"Tu nombre",madeWithExcalidraw:"Hecho con Excalidraw",group:"Agrupar selección",ungroup:"Desagrupar selección",collaborators:"Colaboradores",showGrid:"Mostrar cuadrícula",addToLibrary:"Añadir a la biblioteca",removeFromLibrary:"Eliminar de la biblioteca",libraryLoadingMessage:"Cargando biblioteca…",libraries:"Explorar bibliotecas",loadingScene:"Cargando escena…",align:"Alinear",alignTop:"Alineación superior",alignBottom:"Alineación inferior",alignLeft:"Alinear a la izquierda",alignRight:"Alinear a la derecha",centerVertically:"Centrar verticalmente",centerHorizontally:"Centrar horizontalmente",distributeHorizontally:"Distribuir horizontalmente",distributeVertically:"Distribuir verticalmente",flipHorizontal:"Girar horizontalmente",flipVertical:"Girar verticalmente",viewMode:"Modo presentación",share:"Compartir",showStroke:"Mostrar selector de color de trazo",showBackground:"Mostrar el selector de color de fondo",toggleTheme:"Cambiar tema",personalLib:"Biblioteca personal",excalidrawLib:"Biblioteca Excalidraw",decreaseFontSize:"Disminuir tamaño de letra",increaseFontSize:"Aumentar el tamaño de letra",unbindText:"Desvincular texto",bindText:"Vincular texto al contenedor",createContainerFromText:"Envolver el texto en un contenedor",link:{edit:"Editar enlace",editEmbed:"Editar enlace e incrustar",create:"Crear enlace",createEmbed:"Crear enlace e incrustar",label:"Enlace",labelEmbed:"Enlazar e incrustar",empty:"No se ha establecido un enlace"},lineEditor:{edit:"Editar línea",exit:"Salir del editor en línea"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear todo",unlockAll:"Desbloquear todo"},statusPublished:"Publicado",sidebarLock:"Mantener barra lateral abierta",selectAllElementsInFrame:"Seleccionar todos los elementos en el marco",removeAllElementsFromFrame:"Eliminar todos los elementos del marco",eyeDropper:"Seleccionar un color del lienzo",textToDiagram:"Texto a diagrama",prompt:"Sugerencia"},a={noItems:"No hay elementos añadidos todavía...",hint_emptyLibrary:"Seleccione un elemento en el lienzo para añadirlo aquí, o instale una biblioteca del repositorio público, a continuación.",hint_emptyPrivateLibrary:"Seleccione un elemento del lienzo para añadirlo aquí."},o={clearReset:"Limpiar lienzo y reiniciar el color de fondo",exportJSON:"Exportar a archivo",exportImage:"Exportar imagen...",export:"Guardar en...",copyToClipboard:"Copiar al portapapeles",save:"Guardar en archivo actual",saveAs:"Guardar como",load:"Abrir",getShareableLink:"Obtener enlace para compartir",close:"Cerrar",selectLanguage:"Elegir idioma",scrollBackToContent:"Volver al contenido",zoomIn:"Acercarse",zoomOut:"Alejarse",resetZoom:"Restablecer zoom",menu:"Menú",done:"Hecho",edit:"Editar",undo:"Deshacer",redo:"Rehacer",resetLibrary:"Reiniciar biblioteca",createNewRoom:"Crear nueva sala",fullScreen:"Pantalla completa",darkMode:"Modo oscuro",lightMode:"Modo claro",zenMode:"Modo Zen",objectsSnapMode:"Ajustar a los objetos",exitZenMode:"Salir del modo Zen",cancel:"Cancelar",clear:"Borrar",remove:"Eliminar",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:"Pulsa para interactuar"},r={clearReset:"Esto limpiará todo el lienzo. Estás seguro?",couldNotCreateShareableLink:"No se pudo crear un enlace para compartir.",couldNotCreateShareableLinkTooBig:"No se pudo crear el enlace para compartir: la escena es demasiado grande",couldNotLoadInvalidFile:"No se pudo cargar el archivo no válido",importBackendFailed:"La importación falló.",cannotExportEmptyCanvas:"No se puede exportar un lienzo vació",couldNotCopyToClipboard:"No se pudo copiar al portapapeles.",decryptFailed:"No se pudieron descifrar los datos.",uploadedSecurly:"La carga ha sido asegurada con cifrado de principio a fin, lo que significa que el servidor de Excalidraw y terceros no pueden leer el contenido.",loadSceneOverridePrompt:"Si carga este dibujo externo, reemplazará el que tiene. ¿Desea continuar?",collabStopOverridePrompt:`Detener la sesión sobrescribirá su dibujo anterior almacenado localmente. ¿Está seguro? - -(Si desea mantener su dibujo local, simplemente cierre la pestaña del navegador.)`,errorAddingToLibrary:"No se pudo agregar el elemento a la biblioteca",errorRemovingFromLibrary:"No se pudo quitar el elemento de la biblioteca",confirmAddLibrary:"Esto añadirá {{numShapes}} forma(s) a tu biblioteca. ¿Estás seguro?",imageDoesNotContainScene:"Esta imagen no parece contener datos de escena. ¿Ha habilitado la inserción de la escena durante la exportación?",cannotRestoreFromImage:"No se pudo restaurar la escena desde este archivo de imagen",invalidSceneUrl:"No se ha podido importar la escena desde la URL proporcionada. Está mal formada, o no contiene datos de Excalidraw JSON válidos.",resetLibrary:"Esto borrará tu biblioteca. ¿Estás seguro?",removeItemsFromsLibrary:"¿Eliminar {{count}} elemento(s) de la biblioteca?",invalidEncryptionKey:"La clave de cifrado debe tener 22 caracteres. La colaboración en vivo está deshabilitada.",collabOfflineWarning:`No hay conexión a internet disponible. -¡No se guardarán los cambios!`},i={unsupportedFileType:"Tipo de archivo no admitido.",imageInsertError:"No se pudo insertar la imagen. Inténtelo de nuevo más tarde...",fileTooBig:"Archivo demasiado grande. El tamaño máximo permitido es {{maxSize}}.",svgImageInsertError:"No se pudo insertar la imagen SVG. El código SVG parece inválido.",failedToFetchImage:"Error al obtener la imagen.",invalidSVGString:"SVG no válido.",cannotResolveCollabServer:"No se pudo conectar al servidor colaborador. Por favor, vuelva a cargar la página y vuelva a intentarlo.",importLibraryError:"No se pudo cargar la librería",collabSaveFailed:"No se pudo guardar en la base de datos del backend. Si los problemas persisten, debería guardar su archivo localmente para asegurarse de que no pierde su trabajo.",collabSaveFailed_sizeExceeded:"No se pudo guardar en la base de datos del backend, el lienzo parece ser demasiado grande. Debería guardar el archivo localmente para asegurarse de que no pierde su trabajo.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Parece que estás usando el navegador Brave con el ajuste Forzar el bloqueo de huellas digitales habilitado.",line2:"Esto podría resultar en errores en los Elementos de Texto en tus dibujos.",line3:"Recomendamos fuertemente deshabilitar esta configuración. Puedes seguir estos pasos sobre cómo hacerlo.",line4:""},libraryElementTypeError:{embeddable:"",iframe:"Los elementos IFrame no se pueden agregar a la biblioteca.",image:""},asyncPasteFailedOnRead:"No se pudo pegar (no se pudo leer desde el portapapeles del sistema).",asyncPasteFailedOnParse:"No se pudo pegar.",copyToSystemClipboardFailed:"No se pudo copiar al portapapeles."},n={selection:"Selección",image:"Insertar imagen",rectangle:"Rectángulo",diamond:"Diamante",ellipse:"Elipse",arrow:"Flecha",line:"Línea",freedraw:"Dibujar",text:"Texto",library:"Biblioteca",lock:"Mantener la herramienta seleccionada activa después de dibujar",penMode:"Modo Lápiz - previene toque",link:"Añadir/Actualizar enlace para una forma seleccionada",eraser:"Borrar",frame:"",magicframe:"Esquema a código",embeddable:"Incrustar Web",laser:"Puntero láser",hand:"Mano (herramienta de panoramización)",extraTools:"Más herramientas",mermaidToExcalidraw:"Mermaid a Excalidraw",magicSettings:"Ajustes AI"},t={canvasActions:"Acciones del lienzo",selectedShapeActions:"Acciones de la forma seleccionada",shapes:"Formas"},l={canvasPanning:"Para mover el lienzo, mantenga la rueda del ratón o la barra espaciadora mientras arrastra o utilice la herramienta de mano",linearElement:"Haz clic para dibujar múltiples puntos, arrastrar para solo una línea",freeDraw:"Haz clic y arrastra, suelta al terminar",text:"Consejo: también puedes añadir texto haciendo doble clic en cualquier lugar con la herramienta de selección",embeddable:"Haga clic y arrastre para crear un sitio web incrustado",text_selected:"Doble clic o pulse ENTER para editar el texto",text_editing:"Pulse Escape o Ctrl/Cmd + ENTER para terminar de editar",linearElementMulti:"Haz clic en el último punto o presiona Escape o Enter para finalizar",lockAngle:"Puedes restringir el ángulo manteniendo presionado el botón SHIFT",resize:`Para mantener las proporciones mantén SHIFT presionado mientras modificas el tamaño, -mantén presionado ALT para modificar el tamaño desde el centro`,resizeImage:`Puede redimensionar libremente pulsando SHIFT, -pulse ALT para redimensionar desde el centro`,rotate:"Puedes restringir los ángulos manteniendo presionado SHIFT mientras giras",lineEditor_info:"Mantenga pulsado CtrlOrCmd y haga doble click o presione CtrlOrCmd + Enter para editar puntos",lineEditor_pointSelected:"Presione Suprimir para eliminar el/los punto(s), CtrlOrCmd+D para duplicarlo, o arrástrelo para moverlo",lineEditor_nothingSelected:`Seleccione un punto a editar (mantenga MAYÚSCULAS para seleccionar múltiples), -o mantenga pulsado Alt y haga click para añadir nuevos puntos`,placeImage:"Haga clic para colocar la imagen o haga click y arrastre para establecer su tamaño manualmente",publishLibrary:"Publica tu propia biblioteca",bindTextToElement:"Presione Entrar para agregar",deepBoxSelect:"Mantén CtrlOrCmd para seleccionar en profundidad, y para evitar arrastrar",eraserRevert:"Mantenga pulsado Alt para revertir los elementos marcados para su eliminación",firefox_clipboard_write:'Esta característica puede ser habilitada estableciendo la bandera "dom.events.asyncClipboard.clipboardItem" a "true". Para cambiar las banderas del navegador en Firefox, visite la página "about:config".',disableSnapping:"Mantén pulsado CtrlOrCmd para desactivar el ajuste"},s={cannotShowPreview:"No se puede mostrar la vista previa",canvasTooBig:"El lienzo podría ser demasiado grande.",canvasTooBigTip:"Sugerencia: intenta acercar un poco más los elementos más lejanos."},d={headingMain:"Se encontró un error. Intente ",clearCanvasMessage:"Si la recarga no funciona, intente ",clearCanvasCaveat:" Esto provocará la pérdida de su trabajo ",trackedToSentry:"El error con el identificador {{eventId}} fue rastreado en nuestro sistema.",openIssueMessage:"Fuimos muy cautelosos de no incluir la información de tu escena en el error. Si tu escena no es privada, por favor considera seguir nuestro Por favor, incluya la siguiente información copiándola y pegándola en el issue de GitHub.",sceneContent:"Contenido de la escena:"},c={desc_intro:"Puede invitar a otras personas a tu actual escena para que colaboren contigo.",desc_privacy:"No te preocupes, la sesión usa encriptación de punta a punta, por lo que todo lo que se dibuje se mantendrá privadamente. Ni siquiera nuestro servidor podrá ver lo que haces.",button_startSession:"Iniciar sesión",button_stopSession:"Detener sesión",desc_inProgressIntro:"La sesión de colaboración en vivo está ahora en progreso.",desc_shareLink:"Comparte este enlace con cualquier persona con quien quieras colaborar:",desc_exitSession:"Detener la sesión te desconectará de la sala, pero podrás seguir trabajando con la escena en su computadora, esto es de modo local. Ten en cuenta que esto no afectará a otras personas, y que las mismas seguirán siendo capaces de colaborar en tu escena.",shareTitle:"Únase a una sesión colaborativa en vivo en Excalidraw"},u={title:"Error"},p={disk_title:"Guardar en disco",disk_details:"Exportar los datos de la escena a un archivo desde el cual pueda importar más tarde.",disk_button:"Guardar en archivo",link_title:"Enlace para compartir",link_details:"Exportar como enlace de sólo lectura.",link_button:"Exportar a Link",excalidrawplus_description:"Guarde la escena en su espacio de trabajo de Excalidraw+.",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"No se pudo exportar a Excalidraw+ en este momento..."},m={blog:"Lea nuestro blog",click:"click",deepSelect:"Selección profunda",deepBoxSelect:"Seleccione en profundidad dentro de la caja, y evite arrastrar",curvedArrow:"Flecha curva",curvedLine:"Línea curva",documentation:"Documentación",doubleClick:"doble clic",drag:"arrastrar",editor:"Editor",editLineArrowPoints:"Editar puntos de línea/flecha",editText:"Editar texto / añadir etiqueta",github:"¿Ha encontrado un problema? Envíelo",howto:"Siga nuestras guías",or:"o",preventBinding:"Evitar enlace de flechas",tools:"Herramientas",shortcuts:"Atajos del teclado",textFinish:"Finalizar edición (editor de texto)",textNewLine:"Añadir nueva linea (editor de texto)",title:"Ayuda",view:"Vista",zoomToFit:"Ajustar la vista para mostrar todos los elementos",zoomToSelection:"Ampliar selección",toggleElementLock:"Bloquear/desbloquear selección",movePageUpDown:"Mover página hacia arriba/abajo",movePageLeftRight:"Mover página hacia la izquierda/derecha"},b={title:"Borrar lienzo"},g={title:"Publicar biblioteca",itemName:"Nombre del artículo",authorName:"Nombre del autor",githubUsername:"Nombre de usuario de GitHub",twitterUsername:"Nombre de usuario de Twitter",libraryName:"Nombre de la biblioteca",libraryDesc:"Descripción de la biblioteca",website:"Sitio Web",placeholder:{authorName:"Nombre o nombre de usuario",libraryName:"Nombre de tu biblioteca",libraryDesc:"Descripción de su biblioteca para ayudar a la gente a entender su uso",githubHandle:"Nombre de usuario de GitHub (opcional), así podrá editar la biblioteca una vez enviada para su revisión",twitterHandle:"Nombre de usuario de Twitter (opcional), así sabemos a quién acreditar cuando se promociona en Twitter",website:"Enlace a su sitio web personal o en cualquier otro lugar (opcional)"},errors:{required:"Requerido",website:"Introduce una URL válida"},noteDescription:"Envía tu biblioteca para ser incluida en el repositorio de librería públicapara que otras personas utilicen en sus dibujos.",noteGuidelines:"La biblioteca debe ser aprobada manualmente primero. Por favor, lea la pautas antes de enviar. Necesitará una cuenta de GitHub para comunicarse y hacer cambios si se solicita, pero no es estrictamente necesario.",noteLicense:"Al enviar, usted acepta que la biblioteca se publicará bajo el Licencia MIT que en breve significa que cualquiera puede utilizarlos sin restricciones.",noteItems:"Cada elemento de la biblioteca debe tener su propio nombre para que sea filtrable. Los siguientes elementos de la biblioteca serán incluidos:",atleastOneLibItem:"Por favor, seleccione al menos un elemento de la biblioteca para empezar",republishWarning:"Nota: algunos de los elementos seleccionados están marcados como ya publicados/enviados. Sólo debería volver a enviar elementos cuando se actualice una biblioteca o envío."},v={title:"Biblioteca enviada",content:"Gracias {{authorName}}. Su biblioteca ha sido enviada para ser revisada. Puede seguir el estadoaquí"},h={resetLibrary:"Reiniciar biblioteca",removeItemsFromLib:"Eliminar elementos seleccionados de la biblioteca"},E={header:"Exportar imagen",label:{withBackground:"Fondo",onlySelected:"Sólo seleccionados",darkMode:"Modo oscuro",embedScene:"Incrustar escena",scale:"Escalar",padding:"Espaciado"},tooltip:{embedScene:""},title:{exportToPng:"Exportar a PNG",exportToSvg:"Exportar a SVG",copyPngToClipboard:"Copiar PNG al portapapeles"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiar al portapapeles"}},S={tooltip:"Tus dibujos están cifrados de punto a punto, por lo que los servidores de Excalidraw nunca los verán.",link:"Entrada en el blog sobre cifrado de extremo a extremo"},x={angle:"Ángulo",element:"Elemento",elements:"Elementos",height:"Alto",scene:"Escena",selected:"Seleccionado",storage:"Almacenamiento",title:"Estadísticas para nerds",total:"Total",version:"Versión",versionCopy:"Click para copiar",versionNotAvailable:"Versión no disponible",width:"Ancho"},y={addedToLibrary:"Añadido a la biblioteca",copyStyles:"Estilos copiados.",copyToClipboard:"Copiado en el portapapeles.",copyToClipboardAsPng:`Copiado {{exportSelection}} al portapapeles como PNG -({{exportColorScheme}})`,fileSaved:"Archivo guardado.",fileSavedToFilename:"Guardado en {filename}",canvas:"lienzo",selection:"selección",pasteAsSingleElement:`Usa {{shortcut}} para pegar como un solo elemento, -o pegar en un editor de texto existente`,unableToEmbed:"",unrecognizedLinkFormat:""},C={transparent:"Transparente",black:"Negro",white:"Blanco",red:"Rojo",pink:"Rosa",grape:"Uva",violet:"Violeta",gray:"Gris",blue:"Azul",cyan:"Cian",teal:"Turquesa",green:"Verde",yellow:"Amarillo",orange:"Naranja",bronze:"Bronce"},f={app:{center_heading:"Toda su información es guardada localmente en su navegador.",center_heading_plus:"¿Quieres ir a Excalidraw+?",menuHint:"Exportar, preferencias, idiomas, ..."},defaults:{menuHint:"Exportar, preferencias y más...",center_heading:"Diagramas. Hecho. Simplemente.",toolbarHint:"¡Elige una herramienta y empieza a dibujar!",helpHint:"Atajos y ayuda"}},T={mostUsedCustomColors:"Colores personalizados más utilizados",colors:"Colores",shades:"",hexCode:"Código Hexadecimal",noShades:""},k={action:{exportToImage:{title:"Exportar como imagen",button:"Exportar como imagen",description:""},saveToDisk:{title:"Guardar en el disco",button:"Guardar en el disco",description:"Exporta los datos de la escena a un archivo desde el cual podrás importar más tarde."},excalidrawPlus:{title:"",button:"Exportar a Excalidraw+",description:""}},modal:{loadFromFile:{title:"Cargar desde un archivo",button:"Cargar desde un archivo",description:""},shareableLink:{title:"Cargar desde un enlace",button:"Reemplazar mi contenido",description:"Cargar un dibujo externo reemplazará tu contenido existente.

    Puedes primero hacer una copia de seguridad de tu dibujo usando una de las opciones de abajo."}}},w={title:"Mermaid a Excalidraw",button:"Insertar",description:"Actualmente sólo Flowchart, Secuencia, y Class Diagramas son soportados. Los otros tipos se renderizarán como imagen en Excalidraw.",syntax:"Sintaxis Mermaid",preview:"Vista previa"},z={labels:e,library:a,buttons:o,alerts:r,errors:i,toolBar:n,headings:t,hints:l,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:u,exportDialog:p,helpDialog:m,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:v,confirmDialog:h,imageExportDialog:E,encrypted:S,stats:x,toast:y,colors:C,welcomeScreen:f,colorPicker:T,overwriteConfirm:k,mermaid:w};export{r as alerts,o as buttons,s as canvasError,b as clearCanvasDialog,T as colorPicker,C as colors,h as confirmDialog,z as default,S as encrypted,u as errorDialog,d as errorSplash,i as errors,p as exportDialog,t as headings,m as helpDialog,l as hints,E as imageExportDialog,e as labels,a as library,w as mermaid,k as overwriteConfirm,g as publishDialog,v as publishSuccessDialog,c as roomDialog,x as stats,y as toast,n as toolBar,f as welcomeScreen}; -//# sourceMappingURL=es-ES.json-B52Lj-PT.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js.map b/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js.map deleted file mode 100644 index b996d96..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/es-ES.json-B52Lj-PT.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"es-ES.json-B52Lj-PT.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js b/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js deleted file mode 100644 index b2b5e2f..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js +++ /dev/null @@ -1,12 +0,0 @@ -const a={paste:"Itsatsi",pasteAsPlaintext:"Itsatsi testu arrunt gisa",pasteCharts:"Itsatsi grafikoak",selectAll:"Hautatu dena",multiSelect:"Gehitu elementua hautapenera",moveCanvas:"Mugitu oihala",cut:"Ebaki",copy:"Kopiatu",copyAsPng:"Kopiatu arbelera PNG gisa",copyAsSvg:"Kopiatu arbelera SVG gisa",copyText:"Kopiatu arbelera testu gisa",copySource:"Kopiatu iturria arbelean",convertToCode:"Bihurtu kodea",bringForward:"Ekarri aurrerago",sendToBack:"Eraman atzera",bringToFront:"Ekarri aurrera",sendBackward:"Eraman atzerago",delete:"Ezabatu",copyStyles:"Kopiatu estiloak",pasteStyles:"Itsatsi estiloak",stroke:"Marra",background:"Atzeko planoa",fill:"Bete",strokeWidth:"Marraren zabalera",strokeStyle:"Marraren estiloa",strokeStyle_solid:"Solidoa",strokeStyle_dashed:"Marratua",strokeStyle_dotted:"Puntukatua",sloppiness:"Marraren trazoa",opacity:"Opakotasuna",textAlign:"Testuaren lerrokapena",edges:"Ertzak",sharp:"Ertz bizia",round:"Borobildua",arrowheads:"Gezi-puntak",arrowhead_none:"Bat ere ez",arrowhead_arrow:"Gezia",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Hirukia",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Letra-tamaina",fontFamily:"Letra-tipoa",addWatermark:'Gehitu "Excalidraw bidez egina"',handDrawn:"Eskuz marraztua",normal:"Normala",code:"Kodea",small:"Txikia",medium:"Ertaina",large:"Handia",veryLarge:"Oso handia",solid:"Solidoa",hachure:"Itzalduna",zigzag:"Sigi-saga",crossHatch:"Marraduna",thin:"Mehea",bold:"Lodia",left:"Ezkerrean",center:"Erdian",right:"Eskuinean",extraBold:"Oso lodia",architect:"Arkitektoa",artist:"Artista",cartoonist:"Marrazkilaria",fileTitle:"Fitxategi izena",colorPicker:"Kolore-hautatzailea",canvasColors:"Oihalean erabilita",canvasBackground:"Oihalaren atzeko planoa",drawingCanvas:"Marrazteko oihala",layers:"Geruzak",actions:"Ekintzak",language:"Hizkuntza",liveCollaboration:"Zuzeneko elkarlana...",duplicateSelection:"Bikoiztu",untitled:"Izengabea",name:"Izena",yourName:"Zure izena",madeWithExcalidraw:"Excalidraw bidez egina",group:"Hautapena taldea bihurtu",ungroup:"Desegin hautapenaren taldea",collaborators:"Kolaboratzaileak",showGrid:"Erakutsi sareta",addToLibrary:"Gehitu liburutegira",removeFromLibrary:"Kendu liburutegitik",libraryLoadingMessage:"Liburutegia kargatzen…",libraries:"Arakatu liburutegiak",loadingScene:"Eszena kargatzen…",align:"Lerrokatu",alignTop:"Lerrokatu goian",alignBottom:"Lerrokatu behean",alignLeft:"Lerrokatu ezkerrean",alignRight:"Lerrokatu eskuinean",centerVertically:"Erdiratu bertikalki",centerHorizontally:"Erdiratu horizontalki",distributeHorizontally:"Banandu horizontalki",distributeVertically:"Banandu bertikalki",flipHorizontal:"Irauli horizontalki",flipVertical:"Irauli bertikalki",viewMode:"Ikuspegia",share:"Partekatu",showStroke:"Erakutsi marraren kolore-hautatzailea",showBackground:"Erakutsi atzeko planoaren kolore-hautatzailea",toggleTheme:"Aldatu gaia",personalLib:"Liburutegi pertsonala",excalidrawLib:"Excalidraw liburutegia",decreaseFontSize:"Txikitu letra tamaina",increaseFontSize:"Handitu letra tamaina",unbindText:"Askatu testua",bindText:"Lotu testua edukiontziari",createContainerFromText:"Bilatu testua edukiontzi batean",link:{edit:"Editatu esteka",editEmbed:"Editatu esteka eta kapsulatu",create:"Sortu esteka",createEmbed:"Sortu esteka eta kapsulatu",label:"Esteka",labelEmbed:"Esteka eta kapsula",empty:"Ez da estekarik ezarri"},lineEditor:{edit:"Editatu lerroa",exit:"Irten lerro-editoretik"},elementLock:{lock:"Blokeatu",unlock:"Desblokeatu",lockAll:"Blokeatu guztiak",unlockAll:"Desblokeatu guztiak"},statusPublished:"Argitaratua",sidebarLock:"Mantendu alboko barra irekita",selectAllElementsInFrame:"Hautatu markoko elementu guztiak",removeAllElementsFromFrame:"Kendu markoko elementu guztiak",eyeDropper:"Aukeratu kolorea oihaletik",textToDiagram:"Testutik diagramara",prompt:""},e={noItems:"Oraindik ez da elementurik gehitu...",hint_emptyLibrary:"Hautatu oihaleko elementu bat hemen gehitzeko, edo instalatu liburutegi bat beheko biltegi publikotik.",hint_emptyPrivateLibrary:"Hautatu oihaleko elementu bat hemen gehitzeko."},t={clearReset:"Garbitu oihala",exportJSON:"Esportatu fitxategira",exportImage:"Esportatu irudia...",export:"Gorde hemen...",copyToClipboard:"Kopiatu arbelera",save:"Gorde uneko fitxategian",saveAs:"Gorde honela",load:"Ireki",getShareableLink:"Lortu partekatzeko esteka",close:"Itxi",selectLanguage:"Hautatu hizkuntza",scrollBackToContent:"Joan atzera edukira",zoomIn:"Handiagotu",zoomOut:"Txikiagotu",resetZoom:"Leheneratu zooma",menu:"Menua",done:"Egina",edit:"Editatu",undo:"Desegin",redo:"Berregin",resetLibrary:"Leheneratu liburutegia",createNewRoom:"Sortu gela berria",fullScreen:"Pantaila osoa",darkMode:"Modu iluna",lightMode:"Modu argia",zenMode:"Zen modua",objectsSnapMode:"Atxiki objektuei",exitZenMode:"Irten Zen modutik",cancel:"Utzi",clear:"Garbitu",remove:"Kendu",embed:"Aldatu kapsulatzea",publishLibrary:"Argitaratu",submit:"Bidali",confirm:"Bai",embeddableInteractionButton:"Egin klik elkar eragiteko"},i={clearReset:"Honek oihal osoa garbituko du. Ziur zaude?",couldNotCreateShareableLink:"Ezin izan da partekatzeko estekarik sortu.",couldNotCreateShareableLinkTooBig:"Ezin izan da partekatzeko estekarik sortu: eszena handiegia da",couldNotLoadInvalidFile:"Ezin izan da kargatu, fitxategiak ez du balio",importBackendFailed:"Inportazioak huts egin du.",cannotExportEmptyCanvas:"Ezin izan da oihal hutsa esportatu.",couldNotCopyToClipboard:"Ezin izan da arbelean kopiatu.",decryptFailed:"Ezin izan da deszifratu.",uploadedSecurly:"Kargatzea muturretik muturrerako zifratze bidez ziurtatu da, hau da, Excalidraw zerbitzariak eta hirugarrenek ezin dutela edukia irakurri.",loadSceneOverridePrompt:"Kanpoko marrazkia kargatzeak lehendik duzun edukia ordezkatuko du. Jarraitu nahi duzu?",collabStopOverridePrompt:`Saioa gelditzeak lokalean gordetako zure aurreko marrazkia gainidatziko du. Ziur zaude? - -(Zure marrazki lokala mantendu nahi baduzu, itxi arakatzailearen fitxa.)`,errorAddingToLibrary:"Ezin izan da elementua liburutegian gehitu",errorRemovingFromLibrary:"Ezin izan da elementua liburutegitik kendu",confirmAddLibrary:"Honek {{numShapes}} forma gehituko ditu zure liburutegian. Ziur zaude?",imageDoesNotContainScene:"Irudi honek ez dirudi eszena daturik duenik. Eszena kapsulatzea gaitu al duzu esportazioan?",cannotRestoreFromImage:"Ezin izan da eszena leheneratu irudi fitxategi honetatik",invalidSceneUrl:"Ezin izan da eszena inportatu emandako URLtik. Gaizki eratuta dago edo ez du baliozko Excalidraw JSON daturik.",resetLibrary:"Honek zure liburutegia garbituko du. Ziur zaude?",removeItemsFromsLibrary:"Liburutegitik {{count}} elementu ezabatu?",invalidEncryptionKey:"Enkriptazio-gakoak 22 karaktere izan behar ditu. Zuzeneko lankidetza desgaituta dago.",collabOfflineWarning:`Ez dago Interneteko konexiorik. -Zure aldaketak ez dira gordeko!`},r={unsupportedFileType:"Onartu gabeko fitxategi mota.",imageInsertError:"Ezin izan da irudia txertatu. Saiatu berriro geroago...",fileTooBig:"Fitxategia handiegia da. Onartutako gehienezko tamaina {{maxSize}} da.",svgImageInsertError:"Ezin izan da SVG irudia txertatu. SVG markak baliogabea dirudi.",failedToFetchImage:"Ezin izan da irudia eskuratu.",invalidSVGString:"SVG baliogabea.",cannotResolveCollabServer:"Ezin izan da elkarlaneko zerbitzarira konektatu. Mesedez, berriro kargatu orria eta saiatu berriro.",importLibraryError:"Ezin izan da liburutegia kargatu",collabSaveFailed:"Ezin izan da backend datu-basean gorde. Arazoak jarraitzen badu, zure fitxategia lokalean gorde beharko zenuke zure lana ez duzula galtzen ziurtatzeko.",collabSaveFailed_sizeExceeded:"Ezin izan da backend datu-basean gorde, ohiala handiegia dela dirudi. Fitxategia lokalean gorde beharko zenuke zure lana galtzen ez duzula ziurtatzeko.",imageToolNotSupported:"Irudiak desgaituta daude.",brave_measure_text_error:{line1:"Brave arakatzailea erabiltzen ari zarela dirudi Blokeatu hatz-markak erasokorki ezarpena gaituta.",line2:"Honek zure marrazkietako Testu-elementuak hautsi ditzake.",line3:"Ezarpen hau desgaitzea gomendatzen dugu. urrats hauek jarrai ditzakezu hori nola egin jakiteko.",line4:"Ezarpen hau desgaituz gero, testu-elementuen bistaratzea konpontzen ez bada, ireki arazo gure GitHub-en edo idatzi iezaguzu Discord helbidera"},libraryElementTypeError:{embeddable:"Kapsulatutako elementuak ezin dira liburutegira gehitu.",iframe:"IFrame elementuak ezin dira liburutegira gehitu.",image:"Laster egongo da irudiak liburutegian gehitzeko laguntza!"},asyncPasteFailedOnRead:"Ezin izan da itsatsi (ezin izan da sistemaren arbeletik irakurri).",asyncPasteFailedOnParse:"Ezin izan da itsatsi.",copyToSystemClipboardFailed:"Ezin izan da arbelean kopiatu."},o={selection:"Hautapena",image:"Txertatu irudia",rectangle:"Laukizuzena",diamond:"Diamantea",ellipse:"Elipsea",arrow:"Gezia",line:"Lerroa",freedraw:"Marraztu",text:"Testua",library:"Liburutegia",lock:"Mantendu aktibo hautatutako tresna marraztu ondoren",penMode:"Luma modua - ukipena saihestu",link:"Gehitu / Eguneratu esteka hautatutako forma baterako",eraser:"Borragoma",frame:"Marko tresna",magicframe:"Wireframe kodetzeko",embeddable:"Web kapsulatzea",laser:"Laser punteroa",hand:"Eskua (panoratze tresna)",extraTools:"Tresna gehiago",mermaidToExcalidraw:"",magicSettings:"AI ezarpenak"},n={canvasActions:"Canvas ekintzak",selectedShapeActions:"Hautatutako formaren ekintzak",shapes:"Formak"},u={canvasPanning:"Oihala mugitzeko, eutsi saguaren gurpila edo zuriune-barra arrastatzean, edo erabili esku tresna",linearElement:"Egin klik hainbat puntu hasteko, arrastatu lerro bakarrerako",freeDraw:"Egin klik eta arrastatu, askatu amaitutakoan",text:"Aholkua: testua gehitu dezakezu edozein lekutan klik bikoitza eginez hautapen tresnarekin",embeddable:"Egin klik eta arrastatu webgunea kapsulatzeko",text_selected:"Egin klik bikoitza edo sakatu SARTU testua editatzeko",text_editing:"Sakatu Esc edo Ctrl+SARTU editatzen amaitzeko",linearElementMulti:"Egin klik azken puntuan edo sakatu Esc edo Sartu amaitzeko",lockAngle:"SHIFT sakatuta angelua mantendu dezakezu",resize:`Proportzioak mantendu ditzakezu SHIFT sakatuta tamaina aldatzen duzun bitartean. -sakatu ALT erditik tamaina aldatzeko`,resizeImage:`Tamaina libreki alda dezakezu SHIFT sakatuta, -sakatu ALT erditik tamaina aldatzeko`,rotate:"Angeluak mantendu ditzakezu SHIFT sakatuta biratzen duzun bitartean",lineEditor_info:"Eutsi sakatuta Ctrl edo Cmd eta egin klik bikoitza edo sakatu Ctrl edo Cmd + Sartu puntuak editatzeko",lineEditor_pointSelected:`Sakatu Ezabatu puntuak kentzeko, -Ktrl+D bikoizteko, edo arrastatu mugitzeko`,lineEditor_nothingSelected:`Hautatu editatzeko puntu bat (SHIFT sakatuta anitz hautatzeko), -edo eduki Alt sakatuta eta egin klik puntu berriak gehitzeko`,placeImage:"Egin klik irudia kokatzeko, edo egin klik eta arrastatu bere tamaina eskuz ezartzeko",publishLibrary:"Argitaratu zure liburutegia",bindTextToElement:"Sakatu Sartu testua gehitzeko",deepBoxSelect:"Eutsi Ctrl edo Cmd sakatuta aukeraketa sakona egiteko eta arrastatzea saihesteko",eraserRevert:"Eduki Alt sakatuta ezabatzeko markatutako elementuak leheneratzeko",firefox_clipboard_write:'Ezaugarri hau "dom.events.asyncClipboard.clipboardItem" marka "true" gisa ezarrita gaitu daiteke. Firefox-en arakatzailearen banderak aldatzeko, bisitatu "about:config" orrialdera.',disableSnapping:"Eduki sakatuta Ctrl edo Cmd tekla atxikipena desgaitzeko"},l={cannotShowPreview:"Ezin da oihala aurreikusi",canvasTooBig:"Agian oihala handiegia da.",canvasTooBigTip:"Aholkua: saiatu urrunen dauden elementuak pixka bat hurbiltzen."},k={headingMain:"Errore bat aurkitu da. Saiatu ",clearCanvasMessage:"Birkargatzea ez bada burutzen, saiatu ",clearCanvasCaveat:" Honen ondorioz lana galduko da ",trackedToSentry:"Identifikatzailearen errorea {{eventId}} gure sistemak behatu du.",openIssueMessage:"Oso kontuz ibili gara zure eszenaren informazioa errorean ez sartzeko. Zure eszena pribatua ez bada, kontuan hartu gure Sartu beheko informazioa kopiatu eta itsatsi bidez GitHub issue-n.",sceneContent:"Eszenaren edukia:"},d={desc_intro:"Jendea zure uneko eszenara gonbida dezakezu zurekin elkarlanean aritzeko.",desc_privacy:"Ez kezkatu, saioak muturretik muturrerako enkriptatzea erabiltzen du, beraz, marrazten duzuna pribatua izango da. Gure zerbitzariak ere ezingo du ikusi zer egiten duzun.",button_startSession:"Hasi saioa",button_stopSession:"Itxi saioa",desc_inProgressIntro:"Zuzeneko lankidetza saioa abian da.",desc_shareLink:"Partekatu esteka hau elkarlanean aritu nahi duzun edonorekin:",desc_exitSession:"Saioa ixteak aretotik deskonektatuko zaitu, baina eszenarekin lanean jarraitu ahal izango duzu lokalean. Kontuan izan honek ez diela beste pertsonei eragingo, eta euren bertsioan elkarlanean aritu ahal izango dira.",shareTitle:"Sartu Excalidraw-en zuzeneko lankidetza-saio batean"},s={title:"Errorea"},z={disk_title:"Gorde diskoan",disk_details:"Esportatu eszenaren datuak geroago inportatu ahal izango duzun fitxategi batan.",disk_button:"Gorde fitxategian",link_title:"Partekatzeko esteka",link_details:"Esportatu irakurtzeko soilik moduko esteka.",link_button:"Esportatu esteka",excalidrawplus_description:"Gorde eszena zure Excalidraw+ laneko areara.",excalidrawplus_button:"Esportatu",excalidrawplus_exportError:"Une honetan ezin izan da esportatu Excalidraw+era..."},g={blog:"Irakurri gure bloga",click:"sakatu",deepSelect:"Hautapen sakona",deepBoxSelect:"Hautapen sakona egin laukizuzen bidez, eta saihestu arrastatzea",curvedArrow:"Gezi kurbatua",curvedLine:"Lerro kurbatua",documentation:"Dokumentazioa",doubleClick:"klik bikoitza",drag:"arrastatu",editor:"Editorea",editLineArrowPoints:"Editatu lerroak/gezi-puntuak",editText:"Editatu testua / gehitu etiketa",github:"Arazorik izan al duzu? Eman horren berri",howto:"Jarraitu gure gidak",or:"edo",preventBinding:"Saihestu gezien gainjartzea",tools:"Tresnak",shortcuts:"Laster-teklak",textFinish:"Bukatu edizioa (testu editorea)",textNewLine:"Gehitu lerro berri bat (testu editorea)",title:"Laguntza",view:"Bistaratu",zoomToFit:"Egin zoom elementu guztiak ikusteko",zoomToSelection:"Zooma hautapenera",toggleElementLock:"Blokeatu/desbloketatu hautapena",movePageUpDown:"Mugitu orria gora/behera",movePageLeftRight:"Mugitu orria ezker/eskuin"},b={title:"Garbitu oihala"},m={title:"Argitaratu liburutegia",itemName:"Elementuaren izena",authorName:"Egilearen izena",githubUsername:"GitHub-eko erabiltzaile-izena",twitterUsername:"Twitter-eko erabiltzaile-izena",libraryName:"Liburutegiaren izena",libraryDesc:"Liburutegiaren deskripzioa",website:"Webgunea",placeholder:{authorName:"Zure izena edo erabiltzaile-izena",libraryName:"Zure liburutegiaren izena",libraryDesc:"Zure liburutegiaren deskripzioa laguntzeko jendeari ulertzen haren erabilpena",githubHandle:"GitHub heldulekua (aukerakoa), liburutegia editatu ahal izateko berrikustera bidalitakoan",twitterHandle:"Twitter-eko erabiltzaile-izena (aukerakoa), badakigu nori kreditatu behar dugun Twitter bidez sustatzeko",website:"Estekatu zure webgunera edo nahi duzun tokira (aukerakoa)"},errors:{required:"Beharrezkoa",website:"Sartu baliozko URL bat"},noteDescription:"Bidali zure liburutegira sartu ahal izateko zure liburutegiko biltegianbeste jendeak bere marrazkietan erabili ahal izateko.",noteGuidelines:"Liburutegia eskuz onartu behar da. Irakurri gidalerroak bidali aurretik. GitHub kontu bat edukitzea komeni da komunikatzeko eta aldaketak egin ahal izateko, baina ez da guztiz beharrezkoa.",noteLicense:"Bidaltzen baduzu, onartzen duzu liburutegia MIT lizentziarekin argitaratuko dela, zeinak, laburbilduz, esan nahi du edozeinek erabiltzen ahal duela murrizketarik gabe.",noteItems:"Liburutegiko elementu bakoitzak bere izena eduki behar du iragazi ahal izateko. Liburutegiko hurrengo elementuak barne daude:",atleastOneLibItem:"Hautatu gutxienez liburutegiko elementu bat gutxienez hasi ahal izateko",republishWarning:"Oharra: hautatutako elementu batzuk dagoeneko argitaratuta/bidalita bezala markatuta daude. Elementuak berriro bidali behar dituzu lehendik dagoen liburutegi edo bidalketa eguneratzen duzunean."},c={title:"Liburutegia bidali da",content:"Eskerrik asko {{authorName}}. Zure liburutegia bidali da berrikustera. Jarraitu dezakezu haren egoerahemen"},p={resetLibrary:"Leheneratu liburutegia",removeItemsFromLib:"Kendu hautatutako elementuak liburutegitik"},h={header:"Esportatu irudia",label:{withBackground:"Atzeko planoa",onlySelected:"Hautapena soilik",darkMode:"Modu iluna",embedScene:"Txertatu eszena",scale:"Eskala",padding:"Betegarria"},tooltip:{embedScene:`Eszenaren datuak esportatutako PNG/SVG fitxategian gordeko dira, eszena bertatik berrezartzeko. -Esportatutako fitxategien tamaina handituko da.`},title:{exportToPng:"Esportatu PNG gisa",exportToSvg:"Esportatu SVG gisa",copyPngToClipboard:"Kopiatu PNG arbelera"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopiatu arbelean"}},E={tooltip:"Zure marrazkiak muturretik muturrera enkriptatu dira, beraz Excalidraw-ren zerbitzariek ezingo dituzte ikusi.",link:"Excalidraw-ren muturretik muturrerako enkriptatzearen gaineko mezua blogean"},x={angle:"Angelua",element:"Elementua",elements:"Elementuak",height:"Altuera",scene:"Eszena",selected:"Hautatua",storage:"Biltegia",title:"Datuak",total:"Guztira",version:"Bertsioa",versionCopy:"Klikatu kopiatzeko",versionNotAvailable:"Bertsio ez eskuragarria",width:"Zabalera"},S={addedToLibrary:"Liburutegira gehitu da",copyStyles:"Estiloak kopiatu dira.",copyToClipboard:"Arbelean kopiatu da.",copyToClipboardAsPng:`{{exportSelection}} kopiatu da arbelean PNG gisa -({{exportColorScheme}})`,fileSaved:"Fitxategia gorde da.",fileSavedToFilename:"{filename}-n gorde da",canvas:"oihala",selection:"hautapena",pasteAsSingleElement:`Erabili {{shortcut}} elementu bakar gisa itsasteko, -edo itsatsi lehendik dagoen testu-editore batean`,unableToEmbed:"Url hau txertatzea ez da une honetan onartzen. Sortu issue bat GitHub-en Urla zerrenda zurian sartzea eskatzeko",unrecognizedLinkFormat:"Kapsulatu duzun esteka ez dator bat espero den formatuarekin. Mesedez, saiatu iturburu-guneak emandako 'kapsulatu' katea itsasten"},L={transparent:"Gardena",black:"Beltza",white:"Zuria",red:"Gorria",pink:"Arrosa",grape:"Mahats kolorea",violet:"Bioleta",gray:"Grisa",blue:"Urdina",cyan:"Ziana",teal:"Berde urdinxka",green:"Berdea",yellow:"Horia",orange:"Laranja",bronze:"Brontzea"},y={app:{center_heading:"Zure datu guztiak lokalean gordetzen dira zure nabigatzailean.",center_heading_plus:"Horren ordez Excalidraw+-era joan nahi al zenuen?",menuHint:"Esportatu, hobespenak, hizkuntzak..."},defaults:{menuHint:"Esportatu, hobespenak eta gehiago...",center_heading:"Diagramak. Egina. Sinplea.",toolbarHint:"Aukeratu tresna bat eta hasi marrazten!",helpHint:"Lasterbideak eta laguntza"}},T={mostUsedCustomColors:"Gehien erabilitako kolore pertsonalizatuak",colors:"Koloreak",shades:"Ñabardurak",hexCode:"Hez kodea",noShades:"Kolore honetarako ez dago ñabardurarik eskuragarri"},w={action:{exportToImage:{title:"Esportatu irudi gisa",button:"Esportatu irudi gisa",description:"Esportatu eszenaren datuak geroago inportatu ahal izango duzun irudi gisa."},saveToDisk:{title:"Gorde diskoan",button:"Gorde diskoan",description:"Esportatu eszenaren datuak geroago inportatu ahal izango duzun fitxategi batan."},excalidrawPlus:{title:"Excalidraw+",button:"Esportatu Excalidraw+ra",description:"Gorde eszena zure Excalidraw+ laneko areara."}},modal:{loadFromFile:{title:"Fitxategitik kargatu",button:"Fitxategitik kargatu",description:"Fitxategi batetik kargatzeak lehendik duzun edukia ordezkatuko du.

    Lehenengo marrazkiaren babeskopia egin dezakezu beheko aukeretako bat erabiliz."},shareableLink:{title:"Estekatik kargatu",button:"Ordeztu nire edukia",description:"Kanpoko irudi bat kargatzeak lehendik duzun edukia ordezkatuko du.

    . Zure marrazkiaren babeskopia egin dezakezu lehenik beheko aukeretako bat erabiliz."}}},v={title:"",button:"Txertatu",description:"",syntax:"",preview:"Aurrebista"},f={labels:a,library:e,buttons:t,alerts:i,errors:r,toolBar:o,headings:n,hints:u,canvasError:l,errorSplash:k,roomDialog:d,errorDialog:s,exportDialog:z,helpDialog:g,clearCanvasDialog:b,publishDialog:m,publishSuccessDialog:c,confirmDialog:p,imageExportDialog:h,encrypted:E,stats:x,toast:S,colors:L,welcomeScreen:y,colorPicker:T,overwriteConfirm:w,mermaid:v};export{i as alerts,t as buttons,l as canvasError,b as clearCanvasDialog,T as colorPicker,L as colors,p as confirmDialog,f as default,E as encrypted,s as errorDialog,k as errorSplash,r as errors,z as exportDialog,n as headings,g as helpDialog,u as hints,h as imageExportDialog,a as labels,e as library,v as mermaid,w as overwriteConfirm,m as publishDialog,c as publishSuccessDialog,d as roomDialog,x as stats,S as toast,o as toolBar,y as welcomeScreen}; -//# sourceMappingURL=eu-ES.json-n0P55DpS.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js.map b/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js.map deleted file mode 100644 index c4dcd28..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/eu-ES.json-n0P55DpS.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"eu-ES.json-n0P55DpS.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js b/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js deleted file mode 100644 index 632978e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"جای گذاری",pasteAsPlaintext:"جای‌گذاری به عنوان متن ساده",pasteCharts:"قراردادن نمودارها",selectAll:"انتخاب همه",multiSelect:"یک ایتم به انتخاب شده ها اضافه کنید.",moveCanvas:"جابجایی بوم",cut:"بریدن",copy:"کپی",copyAsPng:"کپی در حافطه موقت به صورت PNG",copyAsSvg:"کپی در حافطه موقت به صورت SVG",copyText:"کپی در حافطه موقت به صورت متن",copySource:"",convertToCode:"",bringForward:"جلو آوردن",sendToBack:"پس فرستادن",bringToFront:"جلو آوردن",sendBackward:"پس فرستادن",delete:"حذف",copyStyles:"کپی سبک",pasteStyles:"جای گذاری سبک",stroke:"حاشیه",background:"پس زمینه",fill:"رنگ آمیزی",strokeWidth:"ضخامت حاشیه",strokeStyle:"استایل حاشیه",strokeStyle_solid:"یکدست",strokeStyle_dashed:"خط چین",strokeStyle_dotted:"نقطه چین",sloppiness:"دقت",opacity:"شفافیت",textAlign:"چیدمان متن",edges:"لبه ها",sharp:"تیز",round:"دور",arrowheads:"سر پیکان",arrowhead_none:"هیچ کدام",arrowhead_arrow:"پیکان",arrowhead_bar:"میله ای",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"اندازه قلم",fontFamily:"نوع قلم",addWatermark:'"ساخته شده با Excalidraw" را اضافه کن',handDrawn:"دست نویس",normal:"عادی",code:"کد",small:"کوچک",medium:"متوسط",large:"بزرگ",veryLarge:"بسیار بزرگ",solid:"توپر",hachure:"هاشور",zigzag:"زیگزاگ",crossHatch:"هاشور متقاطع",thin:"نازک",bold:"ضخیم",left:"چپ",center:"وسط",right:"راست",extraBold:"خیلی ضخیم",architect:"معمار",artist:"هنرمند",cartoonist:"کارتونیست",fileTitle:"نام فایل",colorPicker:"انتخابگر رنگ",canvasColors:"رنگ های بوم",canvasBackground:"بوم",drawingCanvas:"بوم نقاشی",layers:"لایه ها",actions:"عملیات",language:"زبان",liveCollaboration:"همکاری آنلاین...",duplicateSelection:"تکرار",untitled:"بدون عنوان",name:"نام",yourName:"نام شما",madeWithExcalidraw:"ساخته شده با Excalidraw",group:"گروهبندی انتخابها",ungroup:"حذف گروهبندی انتخابها",collaborators:"همکاران",showGrid:"نمایش گرید",addToLibrary:"افزودن به کتابخانه",removeFromLibrary:"حذف از کتابخانه",libraryLoadingMessage:"بارگذاری کتابخانه…",libraries:"مرور کردن کتابخانه ها",loadingScene:"باگذاری صحنه…",align:"تراز",alignTop:"تراز به بالا",alignBottom:"تراز به پایین",alignLeft:"تراز به چپ",alignRight:"تراز به راست",centerVertically:"وسط قرار دادن به صورت عمودی",centerHorizontally:"وسط قرار دادن به صورت افقی",distributeHorizontally:"توزیع کردن به صورت افقی",distributeVertically:"توزیع کردن به صورت عمودی",flipHorizontal:"چرخش افقی",flipVertical:"چرخش عمودی",viewMode:"حالت نمایش",share:"اشتراک‌گذاری",showStroke:"نمایش انتخاب کننده رنگ حاشیه",showBackground:"نمایش انتخاب کننده رنگ پس زمینه",toggleTheme:"تغییر تم",personalLib:"کتابخانه شخصی",excalidrawLib:"کتابخانه",decreaseFontSize:"کاهش اندازه فونت",increaseFontSize:"افزایش دادن اندازه فونت",unbindText:"بازکردن نوشته",bindText:"بستن نوشته",createContainerFromText:"متن را در یک جایگاه بپیچید",link:{edit:"ویرایش لینک",editEmbed:"",create:"ایجاد پیوند",createEmbed:"",label:"لینک",labelEmbed:"",empty:""},lineEditor:{edit:"ویرایش لینک",exit:"خروج از ویرایشگر"},elementLock:{lock:"قفل",unlock:"باز کردن",lockAll:"قفل همه",unlockAll:"باز کردن قفل همه"},statusPublished:"منتشر شده",sidebarLock:"باز نگه داشتن سایدبار",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"انتخاب رنگ از کرباس",textToDiagram:"",prompt:""},o={noItems:"آیتمی به اینجا اضافه نشده...",hint_emptyLibrary:"یک آیتم روی بوم را برای اضافه شده به اینجا انتخاب کنید، یا یک کتابخانه از مخزن عمومی در بخش پایین را نصب کنید.",hint_emptyPrivateLibrary:"یک آیتم روی بوم را برای اضافه شدن به اینجا انتخاب کنید."},t={clearReset:"پاکسازی بوم نقاشی",exportJSON:"خروجی در فایل",exportImage:"خروجی گرفتن از تصویر...",export:"ذخیره در...",copyToClipboard:"کپی در حافظه موقت",save:"ذخیره در همین فایل",saveAs:"ذخیره با نام",load:"باز کردن",getShareableLink:"دریافت لینک قابل اشتراک",close:"بستن",selectLanguage:"انتخاب زبان",scrollBackToContent:"به محتوا بروید",zoomIn:"بزرگ نمایی",zoomOut:"کوچک نمایی",resetZoom:"اندازه اصلی",menu:"فهرست",done:"انجام شد",edit:"ویرایش",undo:"بازگرد",redo:"از سر",resetLibrary:"تنظیم مجدد کتابخانه",createNewRoom:"ایجاد یک اتاق جدید",fullScreen:"تمام‌صفحه",darkMode:"حالت تیره",lightMode:"حالت روشن",zenMode:"حالت ذن",objectsSnapMode:"",exitZenMode:"خروج از حالت تمرکز",cancel:"لغو",clear:"پاک کردن",remove:"پاک کردن",embed:"",publishLibrary:"انتشار",submit:"ارسال",confirm:"تایید",embeddableInteractionButton:""},r={clearReset:"این کار کل صفحه را پاک میکند. آیا مطمئنید؟",couldNotCreateShareableLink:"عدم توانایی در ساخت یک لینک قابل اشتراک.",couldNotCreateShareableLinkTooBig:"لینک قابل اشتراک گذاری ایجاد نشد: محتوای صحنه بسیار بزرگ است",couldNotLoadInvalidFile:"عدم توانایی در بازگذاری فایل نامعتبر",importBackendFailed:"بارگیری از پشت صحنه با شکست مواجه شد.",cannotExportEmptyCanvas:"بوم خالی قابل تبدیل نیست.",couldNotCopyToClipboard:"به کلیپ بورد کپی نشد.",decryptFailed:"رمزگشایی داده ها امکان پذیر نیست.",uploadedSecurly:"آپلود با رمزگذاری دو طرفه انجام میشود، به این معنی که سرور Excalidraw و اشخاص ثالث نمی توانند مطالب شما را بخوانند.",loadSceneOverridePrompt:"بارگزاری یک طرح خارجی محتوای فعلی رو از بین میبرد. آیا میخواهید ادامه دهید؟",collabStopOverridePrompt:`با توقف بوم نقاشی، نقشه قبلی و ذخیره شده محلی شما را بازنویسی می کند. مطمئنی؟ - -(اگر می خواهید نقاشی محلی خود را حفظ کنید، به سادگی برگه مرورگر را ببندید.)`,errorAddingToLibrary:"مورد به کتابخانه اضافه نشد",errorRemovingFromLibrary:"مورد از کتابخانه حذف نشد",confirmAddLibrary:"{{numShapes}} از اشکال به کتابخانه شما اضافه خواهد شد. مطمئن هستید؟",imageDoesNotContainScene:"به نظر نمی رسد این تصویر حاوی داده های بوم نقاشی باشد. آیا جاسازی صحنه را در حین خروجی فعال کرده اید?",cannotRestoreFromImage:"صحنه را نمی توان از این فایل تصویری بازیابی کرد",invalidSceneUrl:"بوم نقاشی از آدرس ارائه شده وارد نشد. این یا نادرست است، یا حاوی داده Excalidraw JSON معتبر نیست.",resetLibrary:"ین کار کل صفحه را پاک میکند. آیا مطمئنید?",removeItemsFromsLibrary:"حذف {{count}} آیتم(ها) از کتابخانه?",invalidEncryptionKey:"کلید رمزگذاری باید 22 کاراکتر باشد. همکاری زنده غیرفعال است.",collabOfflineWarning:`اتصال به اینترنت در دسترس نیست. -تغییرات شما ذخیره نمی شود!`},a={unsupportedFileType:"نوع فایل پشتیبانی نشده.",imageInsertError:"عکس ارسال نشد. بعداً دوباره تلاش کنید...",fileTooBig:"فایل خیلی بزرگ است حداکثر اندازه مجاز {{maxSize}}.",svgImageInsertError:"تصویر SVG وارد نشد. نشانه گذاری SVG نامعتبر به نظر می رسد.",failedToFetchImage:"",invalidSVGString:"SVG نادرست.",cannotResolveCollabServer:"به سرور collab متصل نشد. لطفا صفحه را مجددا بارگذاری کنید و دوباره تلاش کنید.",importLibraryError:"داده‌ها بارگذاری نشدند",collabSaveFailed:"در پایگاه داده باطن ذخیره نشد. اگر مشکلات همچنان ادامه داشت، باید فایل خود را به صورت محلی ذخیره کنید تا مطمئن شوید کار خود را از دست نمی دهید.",collabSaveFailed_sizeExceeded:"در پایگاه داده بکند ذخیره نشد. اگر مشکلات همچنان ادامه داشت، باید فایل خود را به صورت محلی ذخیره کنید تا مطمئن شوید کار خود را از دست نمی دهید.",imageToolNotSupported:"",brave_measure_text_error:{line1:"به نظر می‌رسد از مرورگر Brave با تنظیم مسدود کردن شدید اثرانگشت استفاده می‌کنید.",line2:"این می تواند منجر به شکستن عناصر متن در نقاشی های شما شود.",line3:"اکیداً توصیه می کنیم این تنظیم را غیرفعال کنید. برای نحوه انجام این کار می‌توانید این مراحل را دنبال کنید.",line4:"اگر غیرفعال کردن این تنظیم نمایش عناصر متنی را برطرف نکرد، لطفاً یک مشکل را در GitHub ما باز کنید یا برای ما در Discord بنویسید."},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"گزینش",image:"وارد کردن تصویر",rectangle:"مستطیل",diamond:"لوزی",ellipse:"بیضی",arrow:"پیکان",line:"خط",freedraw:"کشیدن",text:"متن",library:"کتابخانه",lock:"ابزار انتخاب شده را بعد از کشیدن نگه دار",penMode:"حالت قلم - جلوگیری از تماس",link:"افزودن/به‌روزرسانی پیوند برای شکل انتخابی",eraser:"پاک کن",frame:"",magicframe:"",embeddable:"",laser:"",hand:"دست (ابزار پانینگ)",extraTools:"ابزارهای بیشتر",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"عملیات روی بوم",selectedShapeActions:"عملیات روی شکل انتخاب شده",shapes:"شکل‌ها"},n={canvasPanning:"برای حرکت دادن بوم، چرخ ماوس یا فاصله را در حین کشیدن نگه دارید یا از ابزار دستی استفاده کنید",linearElement:"برای چند نقطه کلیک و برای یک خط بکشید",freeDraw:"کلیک کنید و بکشید و وقتی کار تمام شد رها کنید",text:"نکته: با برنامه انتخاب شده شما میتوانید با دوبار کلیک کردن هرکجا میخواید متن اظاف کنید",embeddable:"",text_selected:"دوبار کلیک کنید یا Enter را فشار دهید تا نقاط را ویرایش کنید",text_editing:"Escape یا CtrlOrCmd+ENTER را فشار دهید تا ویرایش تمام شود",linearElementMulti:"روی آخرین نقطه کلیک کنید یا کلید ESC را بزنید یا کلید Enter را بزنید برای اتمام کار",lockAngle:"با نگه داشتن SHIFT هنگام چرخش می توانید زاویه ها را محدود کنید",resize:"می توانید با نگه داشتن SHIFT در هنگام تغییر اندازه، نسبت ها را محدود کنید،ALT را برای تغییر اندازه از مرکز نگه دارید",resizeImage:`با نگه داشتن SHIFT می توانید آزادانه اندازه را تغییر دهید، -برای تغییر اندازه از مرکز، ALT را نگه دارید`,rotate:"با نگه داشتن SHIFT هنگام چرخش می توانید زاویه ها را محدود کنید",lineEditor_info:"CtrlOrCmd را نگه دارید و دوبار کلیک کنید یا CtrlOrCmd + Enter را فشار دهید تا نقاط را ویرایش کنید.",lineEditor_pointSelected:"برای حذف نقطه Delete برای کپی زدن Ctrl یا Cmd+D را بزنید و یا برای جابجایی بکشید",lineEditor_nothingSelected:`یک نقطه را برای ویرایش انتخاب کنید (SHIFT را برای انتخاب چندگانه نگه دارید)، -یا Alt را نگه دارید و برای افزودن نقاط جدید کلیک کنید`,placeImage:"برای قرار دادن تصویر کلیک کنید، یا کلیک کنید و بکشید تا اندازه آن به صورت دستی تنظیم شود",publishLibrary:"کتابخانه خود را منتشر کنید",bindTextToElement:"برای افزودن اینتر را بزنید",deepBoxSelect:"CtrlOrCmd را برای انتخاب عمیق و جلوگیری از کشیدن نگه دارید",eraserRevert:"Alt را نگه دارید تا عناصر علامت گذاری شده برای حذف برگردند",firefox_clipboard_write:'احتمالاً می‌توان این ویژگی را با تنظیم پرچم «dom.events.asyncClipboard.clipboardItem» روی «true» فعال کرد. برای تغییر پرچم های مرورگر در فایرفاکس، از صفحه "about:config" دیدن کنید.',disableSnapping:""},s={cannotShowPreview:"پیش نمایش نشان داده نمی شود",canvasTooBig:"بوم نقاشی بسیار بزرگ است.",canvasTooBigTip:"نکته: سعی کنید دورترین عناصر را کمی به همدیگر نزدیک کنید."},c={headingMain:"",clearCanvasMessage:"اگر بازنشانی صفحه مشکل را حل نکرد این را امتحان کنید ",clearCanvasCaveat:" این باعث میشود کارهای شما ذخیره نشود ",trackedToSentry:"",openIssueMessage:"",sceneContent:"محتوای صحنه:"},d={desc_intro:"می توانید افرادی را به صحنه فعلی خود دعوت کنید تا با شما همکاری کنند.",desc_privacy:"نگران نباشید، این جلسه از رمزگذاری دوطرفه استفاده می کند، پس هر چیزی بکشید خصوصی خواهد ماند. حتی سرور ما نمیتواند ببیند چیزی که شما طراحی میکنید.",button_startSession:"شروع جلسه",button_stopSession:"پایان جلسه",desc_inProgressIntro:"جلسه همکاری آنلاین در حال انجام است.",desc_shareLink:"این لینک را با هر کسی که می خواهید با او همکاری کنید به اشتراک بگذارید:",desc_exitSession:"با پایان دادن جلسه، شما از اتاق حذف میکند، اما می توانید به صورت محلی کار خود را با بوم ادامه دهید. توجه داشته باشید که این مورد بر سایر افراد تأثیر نمی گذارد و همچنان می توانند در نسخه خود همکاری کنند.",shareTitle:"به یک جلسه همکاری زنده در Excalidraw بپیوندید"},m={title:"خطا"},p={disk_title:"ذخیره در دیسک",disk_details:"داده های صحنه را به فایلی که بعداً می توانید از آن وارد کنید صادر کنید.",disk_button:"ذخیره در فایل",link_title:"لینک قابل اشتراک‌گذاری",link_details:"خروجی به عنوان یک پیوند فقط خواندنی.",link_button:"خروجی در فایل",excalidrawplus_description:"صحنه را در فضای کاری Excalidraw+ خود ذخیره کنید.",excalidrawplus_button:"خروجی گرفتن",excalidrawplus_exportError:"در حال حاضر نمی‌توان به Excalidraw+ صادر کرد..."},b={blog:"بلاگ ما را بخوانید",click:"کلیک",deepSelect:"انتخاب عمیق",deepBoxSelect:"انتخاب عمیق در کادر، و جلوگیری از کشیدن",curvedArrow:"فلش خمیده",curvedLine:"منحنی",documentation:"مستندات",doubleClick:"دابل کلیک",drag:"کشیدن",editor:"ویرایشگر",editLineArrowPoints:"نقاط خط/پیکان را ویرایش کنید",editText:"ویرایش متن / افزودن برچسب",github:"اشکالی می بینید؟ گزارش دهید",howto:"راهنمای ما را دنبال کنید",or:"یا",preventBinding:"مانع شدن از چسبیدن فلش ها",tools:"ابزار",shortcuts:"میانبرهای صفحه کلید",textFinish:"پایان ویرایش (ویرایشگر متن)",textNewLine:"افزودن خط جدید (ویرایشگر متن)",title:"راهنما",view:"مشاهده",zoomToFit:"بزرگنمایی برای دیدن تمام آیتم ها",zoomToSelection:"بزرگنمایی قسمت انتخاب شده",toggleElementLock:"قفل/بازکردن انتخاب شده ها",movePageUpDown:"حرکت صفحه به بالا/پایین",movePageLeftRight:"حرکت صفحه به چپ/راست"},g={title:"پاک کردن بوم"},u={title:"انتشار کتابخانه",itemName:"نام آیتم",authorName:"نام نویسنده",githubUsername:"نام کاربری گیت هاب",twitterUsername:"نام کاربری توییتر",libraryName:"نام کتابخانه",libraryDesc:"توضیحات کتابخانه",website:"تارنما",placeholder:{authorName:"نام یا نام کاربری شما",libraryName:"اسم کتابخانه",libraryDesc:"شرحی از کتابخانه شما برای کمک به مردم برای درک استفاده از آن",githubHandle:"دسته GitHub (اختیاری)، بنابراین می توانید پس از ارسال برای بررسی، کتابخانه را ویرایش کنید",twitterHandle:"نام کاربری توییتر (اختیاری)، بنابراین می دانیم هنگام تبلیغ در توییتر به چه کسی اعتبار دهیم",website:"پیوند به وب سایت شخصی شما یا هر جای دیگر (اختیاری)"},errors:{required:"لازم",website:"وارد کردن آدرس درست"},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"هر مورد کتابخانه باید نام خاص خود را داشته باشد تا قابل فیلتر باشد. اقلام کتابخانه زیر شامل خواهد شد:",atleastOneLibItem:"لطفاً حداقل یک مورد از کتابخانه را برای شروع انتخاب کنید",republishWarning:"توجه: برخی از موارد انتخاب شده به عنوان قبلاً منتشر شده/ارسال شده علامت گذاری شده اند. شما فقط باید هنگام به‌روزرسانی یک کتابخانه موجود یا ارسال، موارد را دوباره ارسال کنید."},h={title:"کتابخانه ارسال شد",content:"تشکر از شما {{authorName}}. کتابخانه شما برای بررسی ارسال شده است. می توانید وضعیت را پیگیری کنید"},y={resetLibrary:"تنظیم مجدد کتابخانه",removeItemsFromLib:"موارد انتخاب شده از موارد پسندیده حذف شوند"},S={header:"",label:{withBackground:"پس زمینه",onlySelected:"",darkMode:"حالت تیره",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"کپی در کلیپ‌بورد"}},v={tooltip:"شما در یک محیط رمزگزاری شده دو طرفه در حال طراحی هستید پس Excalidraw هرگز طرح های شما را نمیبند.",link:"پست وبلاگ در مورد رمزگذاری سرتاسر در Excalidraw"},w={angle:"زاویه",element:"اِلمان",elements:"اِلمان ها",height:"ارتفاع",scene:"صحنه",selected:"انتخاب شده",storage:"حافظه",title:"آمار برای نردها",total:"مجموع",version:"نسخه",versionCopy:"برای کپی کردن کلیک کنید",versionNotAvailable:"نسخه غیرقابل دسترس",width:"عرض"},x={addedToLibrary:"به مجموعه اضافه شد",copyStyles:"کپی سبک.",copyToClipboard:"در کلیپ‌بورد کپی شد.",copyToClipboardAsPng:`کپی {{exportSelection}} در کلیپبورد به عنوان PNG -({{exportColorScheme}})`,fileSaved:"فایل ذخیره شد.",fileSavedToFilename:"ذخیره در {filename}",canvas:"بوم",selection:"انتخاب",pasteAsSingleElement:`از {{shortcut}} برای چسباندن به عنوان یک عنصر استفاده کنید، -یا در یک ویرایشگر متن موجود جایگذاری کنید`,unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"شفاف",black:"سیاه",white:"سفید",red:"قرمز",pink:"صورتی",grape:"یاقوتی",violet:"بنفش",gray:"خاکستری",blue:"آبی",cyan:"فیروزه‌ای",teal:"سبزآبی",green:"سبز",yellow:"زرد",orange:"نارنجی",bronze:"برنزی"},T={app:{center_heading:"تمام داده های شما به صورت محلی در مرورگر شما ذخیره می شود.",center_heading_plus:"آیا می‌خواهید به جای آن به Excalidraw+ بروید؟",menuHint:"خروجی، ترجیحات، زبان ها، ..."},defaults:{menuHint:"خروجی، ترجیحات، وبیشتر ...",center_heading:"نمودارها .ساخته شده. ساده.",toolbarHint:"ابزاری را انتخاب کنید و نقاشی را شروع کنید!",helpHint:"میانبرها و راهنما"}},E={mostUsedCustomColors:"",colors:"رنگ‌ها",shades:"جلوه‌ها",hexCode:"کدِ هگز",noShades:""},_={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"ذخیره در دیسک",button:"ذخیره در دیسک",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"بارگذاری از فایل",button:"بارگذاری از فایل",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:"پیش‌نمایش"},L={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:E,overwriteConfirm:_,mermaid:C};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,k as colors,y as confirmDialog,L as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,l as headings,b as helpDialog,n as hints,S as imageExportDialog,e as labels,o as library,C as mermaid,_ as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=fa-IR.json-Gtl9UWDE.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js.map b/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js.map deleted file mode 100644 index ad5a8b5..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fa-IR.json-Gtl9UWDE.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fa-IR.json-Gtl9UWDE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js b/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js deleted file mode 100644 index 22769c7..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js +++ /dev/null @@ -1,7 +0,0 @@ -const i={paste:"Liitä",pasteAsPlaintext:"Liitä pelkkänä tekstinä",pasteCharts:"Liitä kaaviot",selectAll:"Valitse kaikki",multiSelect:"Lisää kohde valintaan",moveCanvas:"Siirrä piirtoaluetta",cut:"Leikkaa",copy:"Kopioi",copyAsPng:"Kopioi leikepöydälle PNG-tiedostona",copyAsSvg:"Kopioi leikepöydälle SVG-tiedostona",copyText:"Kopioi tekstinä",copySource:"",convertToCode:"",bringForward:"Tuo eteenpäin",sendToBack:"Vie taakse",bringToFront:"Tuo eteen",sendBackward:"Vie taaksepäin",delete:"Poista",copyStyles:"Kopioi tyyli",pasteStyles:"Liitä tyyli",stroke:"Piirto",background:"Tausta",fill:"Täyttö",strokeWidth:"Viivan leveys",strokeStyle:"Viivan tyyli",strokeStyle_solid:"Yhtenäinen",strokeStyle_dashed:"Katkoviiva",strokeStyle_dotted:"Pisteviiva",sloppiness:"Viivan tarkkuus",opacity:"Peittävyys",textAlign:"Tekstin tasaus",edges:"Reunat",sharp:"Terävä",round:"Pyöristetty",arrowheads:"Nuolenkärjet",arrowhead_none:"Ei mitään",arrowhead_arrow:"Nuoli",arrowhead_bar:"Tasapää",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Kolmio",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Kirjasinkoko",fontFamily:"Kirjasintyyppi",addWatermark:'Lisää "Tehty Excalidrawilla"',handDrawn:"Käsinpiirretty",normal:"Tavallinen",code:"Koodi",small:"Pieni",medium:"Keskikoko",large:"Suuri",veryLarge:"Erittäin suuri",solid:"Yhtenäinen",hachure:"Vinoviivoitus",zigzag:"",crossHatch:"Ristiviivoitus",thin:"Ohut",bold:"Lihavoitu",left:"Vasen",center:"Keskitä",right:"Oikea",extraBold:"Erittäin lihavoitu",architect:"Arkkitehti",artist:"Taiteilija",cartoonist:"Sarjakuva",fileTitle:"Tiedostonimi",colorPicker:"Värin valinta",canvasColors:"Käytössä piirtoalueella",canvasBackground:"Piirtoalueen tausta",drawingCanvas:"Piirtoalue",layers:"Tasot",actions:"Toiminnot",language:"Kieli",liveCollaboration:"Live Yhteistyö...",duplicateSelection:"Monista",untitled:"Nimetön",name:"Nimi",yourName:"Nimesi",madeWithExcalidraw:"Tehty Excalidrawilla",group:"Ryhmitä valinta",ungroup:"Pura valittu ryhmä",collaborators:"Yhteistyökumppanit",showGrid:"Näytä ruudukko",addToLibrary:"Lisää kirjastoon",removeFromLibrary:"Poista kirjastosta",libraryLoadingMessage:"Ladataan kirjastoa…",libraries:"Selaa kirjastoja",loadingScene:"Ladataan työtä…",align:"Tasaa",alignTop:"Tasaa ylös",alignBottom:"Tasaa alas",alignLeft:"Tasaa vasemmalle",alignRight:"Tasaa oikealle",centerVertically:"Keskitä pystysuunnassa",centerHorizontally:"Keskitä vaakasuunnassa",distributeHorizontally:"Jaa vaakasuunnassa",distributeVertically:"Jaa pystysuunnassa",flipHorizontal:"Käännä vaakasuunnassa",flipVertical:"Käännä pystysuunnassa",viewMode:"Katselutila",share:"Jaa",showStroke:"Näytä viivan värin valitsin",showBackground:"Näytä taustavärin valitsin",toggleTheme:"Vaihda teema",personalLib:"Oma kirjasto",excalidrawLib:"Excalidraw kirjasto",decreaseFontSize:"Pienennä kirjasinkokoa",increaseFontSize:"Kasvata kirjasinkokoa",unbindText:"Irroita teksti",bindText:"Kiinnitä teksti säiliöön",createContainerFromText:"",link:{edit:"Muokkaa linkkiä",editEmbed:"",create:"Luo linkki",createEmbed:"",label:"Linkki",labelEmbed:"",empty:""},lineEditor:{edit:"Muokkaa riviä",exit:"Poistu rivieditorista"},elementLock:{lock:"Lukitse",unlock:"Poista lukitus",lockAll:"Lukitse kaikki",unlockAll:"Poista lukitus kaikista"},statusPublished:"Julkaistu",sidebarLock:"Pidä sivupalkki avoinna",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},t={noItems:"Kirjastossa ei ole vielä yhtään kohdetta...",hint_emptyLibrary:"Valitse lisättävä kohde piirtoalueelta, tai asenna alta julkinen kirjasto.",hint_emptyPrivateLibrary:"Valitse lisättävä kohde piirtoalueelta."},e={clearReset:"Tyhjennä piirtoalue",exportJSON:"Vie tiedostoon",exportImage:"Vie kuva...",export:"Tallenna nimellä...",copyToClipboard:"Kopioi leikepöydälle",save:"Tallenna nykyiseen tiedostoon",saveAs:"Tallenna nimellä",load:"Avaa",getShareableLink:"Hae jaettava linkki",close:"Sulje",selectLanguage:"Valitse kieli",scrollBackToContent:"Näytä sisältö",zoomIn:"Lähennä",zoomOut:"Loitonna",resetZoom:"Nollaa suurennuksen taso",menu:"Valikko",done:"Valmis",edit:"Muokkaa",undo:"Kumoa",redo:"Tee uudelleen",resetLibrary:"Tyhjennä kirjasto",createNewRoom:"Luo huone",fullScreen:"Koko näyttö",darkMode:"Tumma tila",lightMode:"Vaalea tila",zenMode:"Zen-tila",objectsSnapMode:"",exitZenMode:"Poistu zen-tilasta",cancel:"Peruuta",clear:"Pyyhi",remove:"Poista",embed:"",publishLibrary:"Julkaise",submit:"Lähetä",confirm:"Vahvista",embeddableInteractionButton:""},a={clearReset:"Tämä tyhjentää koko piirtoalueen. Jatketaanko?",couldNotCreateShareableLink:"Jaettavan linkin luominen epäonnistui.",couldNotCreateShareableLinkTooBig:"Jaettavaa linkkiä ei voitu luoda: teos on liian suuri",couldNotLoadInvalidFile:"Virheellistä tiedostoa ei voitu avata",importBackendFailed:"Palvelimelta tuonti epäonnistui.",cannotExportEmptyCanvas:"Tyhjää piirtoaluetta ei voi viedä.",couldNotCopyToClipboard:"Leikepöydälle vieminen epäonnistui.",decryptFailed:"Salauksen purkaminen epäonnistui.",uploadedSecurly:"Lähetys on turvattu päästä-päähän-salauksella. Excalidrawin palvelin ja kolmannet osapuolet eivät voi lukea sisältöä.",loadSceneOverridePrompt:"Ulkopuolisen piirroksen lataaminen korvaa nykyisen sisältösi. Jatketaanko?",collabStopOverridePrompt:`Istunnon lopettaminen korvaa aiemman, paikallisesti tallennetun piirustuksen. Jatketaanko? - -(Jos haluat säilyttää paikallisesti tallennetun piirustuksen, sulje selaimen välilehti lopettamisen sijaan.)`,errorAddingToLibrary:"Kohdetta ei voitu lisätä kirjastoon",errorRemovingFromLibrary:"Kohdetta ei voitu poistaa kirjastosta",confirmAddLibrary:"Tämä lisää {{numShapes}} muotoa kirjastoosi. Jatketaanko?",imageDoesNotContainScene:"Tämä kuva ei näytä sisältävän piirrostietoja. Oletko ottanut käyttöön piirroksen tallennuksen viennin aikana?",cannotRestoreFromImage:"Teosta ei voitu palauttaa tästä kuvatiedostosta",invalidSceneUrl:"Teosta ei voitu tuoda annetusta URL-osoitteesta. Tallenne on vioittunut, tai osoitteessa ei ole Excalidraw JSON-dataa.",resetLibrary:"Tämä tyhjentää kirjastosi. Jatketaanko?",removeItemsFromsLibrary:"Poista {{count}} kohdetta kirjastosta?",invalidEncryptionKey:"Salausavaimen on oltava 22 merkkiä pitkä. Live-yhteistyö ei ole käytössä.",collabOfflineWarning:`Internet-yhteyttä ei ole saatavilla. -Muutoksiasi ei tallenneta!`},n={unsupportedFileType:"Tiedostotyyppiä ei tueta.",imageInsertError:"Kuvan lisääminen epäonnistui. Yritä myöhemmin uudelleen...",fileTooBig:"Tiedosto on liian suuri. Suurin sallittu koko on {{maxSize}}.",svgImageInsertError:"SVG- kuvaa ei voitu lisätä. Tiedoston SVG-sisältö näyttää virheelliseltä.",failedToFetchImage:"",invalidSVGString:"Virheellinen SVG.",cannotResolveCollabServer:"Yhteyden muodostaminen collab-palvelimeen epäonnistui. Virkistä sivu ja yritä uudelleen.",importLibraryError:"Kokoelman lataaminen epäonnistui",collabSaveFailed:"Ei voitu tallentaan palvelimen tietokantaan. Jos ongelmia esiintyy, sinun kannatta tallentaa tallentaa tiedosto paikallisesti varmistaaksesi, että et menetä työtäsi.",collabSaveFailed_sizeExceeded:"Ei voitu tallentaan palvelimen tietokantaan. Jos ongelmia esiintyy, sinun kannatta tallentaa tallentaa tiedosto paikallisesti varmistaaksesi, että et menetä työtäsi.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},o={selection:"Valinta",image:"Lisää kuva",rectangle:"Suorakulmio",diamond:"Vinoneliö",ellipse:"Soikio",arrow:"Nuoli",line:"Viiva",freedraw:"Piirrä",text:"Teksti",library:"Kirjasto",lock:"Pidä valittu työkalu aktiivisena piirron jälkeen",penMode:"Kynätila - estä kosketus",link:"Lisää/päivitä linkki valitulle muodolle",eraser:"Poistotyökalu",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Käsi (panning-työkalu)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Piirtoalueen toiminnot",selectedShapeActions:"Valitun muodon toiminnot",shapes:"Muodot"},l={canvasPanning:"Piirtoalueen liikuttamiseksi pidä hiiren pyörää tai välilyöntiä pohjassa tai käytä käsityökalua",linearElement:"Klikkaa piirtääksesi useampi piste, raahaa piirtääksesi yksittäinen viiva",freeDraw:"Paina ja raahaa, päästä irti kun olet valmis",text:"Vinkki: voit myös lisätä tekstiä kaksoisnapsauttamalla mihin tahansa valintatyökalulla",embeddable:"",text_selected:"Kaksoisnapsauta tai paina ENTER muokataksesi tekstiä",text_editing:"Paina Escape tai CtrlOrCmd+ENTER lopettaaksesi muokkaamisen",linearElementMulti:"Lopeta klikkaamalla viimeistä pistettä, painamalla Escape- tai Enter-näppäintä",lockAngle:"Voit rajoittaa kulmaa pitämällä SHIFT-näppäintä alaspainettuna",resize:"Voit rajoittaa mittasuhteet pitämällä SHIFT-näppäintä alaspainettuna kun muutat kokoa, pidä ALT-näppäintä alaspainettuna muuttaaksesi kokoa keskipisteen suhteen",resizeImage:"Voit muuttaa kokoa vapaasti pitämällä SHIFTiä pohjassa, pidä ALT pohjassa muuttaaksesi kokoa keskipisteen ympäri",rotate:"Voit rajoittaa kulman pitämällä SHIFT pohjassa pyörittäessäsi",lineEditor_info:"Pidä CtrlOrCmd pohjassa ja kaksoisnapsauta tai paina CtrlOrCmd + Enter muokataksesi pisteitä",lineEditor_pointSelected:"Poista piste(et) painamalla delete, monista painamalla CtrlOrCmd+D, tai liikuta raahaamalla",lineEditor_nothingSelected:"Valitse muokattava piste (monivalinta pitämällä SHIFT pohjassa), tai paina Alt ja klikkaa lisätäksesi uusia pisteitä",placeImage:"Klikkaa asettaaksesi kuvan, tai klikkaa ja raahaa asettaaksesi sen koon manuaalisesti",publishLibrary:"Julkaise oma kirjasto",bindTextToElement:"Lisää tekstiä painamalla enter",deepBoxSelect:"Käytä syvävalintaa ja estä raahaus painamalla CtrlOrCmd",eraserRevert:"Pidä Alt alaspainettuna, kumotaksesi merkittyjen elementtien poistamisen",firefox_clipboard_write:'Tämä ominaisuus voidaan todennäköisesti ottaa käyttöön asettamalla "dom.events.asyncClipboard.clipboardItem" kohta "true":ksi. Vaihtaaksesi selaimen kohdan Firefoxissa, käy "about:config" sivulla.',disableSnapping:""},r={cannotShowPreview:"Esikatselua ei voitu näyttää",canvasTooBig:"Piirtoalue saattaa olla liian suuri.",canvasTooBigTip:"Vinkki: yritä siirtää kaukaisimpia elementtejä hieman lähemmäs toisiaan."},k={headingMain:"Tapahtui virhe. Yritä ",clearCanvasMessage:"Mikäli sivun lataaminen uudelleen ei auta, yritä ",clearCanvasCaveat:" Tämä johtaa työn menetykseen ",trackedToSentry:"Virhe tunnisteella {{eventId}} tallennettiin järjestelmäämme.",openIssueMessage:"Olimme varovaisia emmekä sisällyttäneet tietoa piirroksestasi virheeseen. Mikäli piirroksesi ei ole yksityinen, harkitsethan kertovasi meille Sisällytä alla olevat tiedot kopioimalla ne GitHub-ongelmaan.",sceneContent:"Piirroksen tiedot:"},u={desc_intro:"Voit kutsua ihmisiä piirrokseesi tekemään yhteistyötä kanssasi.",desc_privacy:"Älä huoli, istunto käyttää päästä-päähän-salausta, joten mitä tahansa piirrätkin, se pysyy salassa. Edes palvelimemme eivät näe mitä keksit.",button_startSession:"Aloita istunto",button_stopSession:"Lopeta istunto",desc_inProgressIntro:"Jaettu istunto on nyt käynnissä.",desc_shareLink:"Jaa tämä linkki kenelle tahansa, jonka kanssa haluat tehdä yhteistyötä:",desc_exitSession:"Istunnon pysäyttäminen katkaisee yhteyden huoneeseen, mutta voit vielä jatkaa työskentelyä paikallisesti. Huomaa, että tämä ei vaikuta muihin käyttäjiin ja he voivat jatkaa oman versionsa parissa työskentelyä.",shareTitle:"Liity Excalidraw live-yhteistyöistuntoon"},m={title:"Virhe"},d={disk_title:"Tallenna levylle",disk_details:"Vie työn tiedot tiedostoon, josta sen voi tuoda myöhemmin.",disk_button:"Tallenna tiedostoon",link_title:"Jaettava linkki",link_details:"Vie vain luku -linkkinä.",link_button:"Vie linkkinä",excalidrawplus_description:"Tallenna teos Excalidraw+ tilaan.",excalidrawplus_button:"Vie",excalidrawplus_exportError:"Ei voitu viedä Excalidraw+-palveluun tällä hetkellä..."},p={blog:"Lue blogiamme",click:"klikkaa",deepSelect:"Syvävalinta",deepBoxSelect:"Käytä syvävalintaa ja estä raahaus",curvedArrow:"Kaareva nuoli",curvedLine:"Kaareva viiva",documentation:"Käyttöohjeet",doubleClick:"kaksoisnapsautus",drag:"vedä",editor:"Muokkausohjelma",editLineArrowPoints:"",editText:"",github:"Löysitkö ongelman? Kerro meille",howto:"Seuraa oppaitamme",or:"tai",preventBinding:"Estä nuolten kiinnitys",tools:"Työkalut",shortcuts:"Pikanäppäimet",textFinish:"Lopeta muokkaus (tekstieditori)",textNewLine:"Lisää uusi rivi (tekstieditori)",title:"Ohjeet",view:"Näkymä",zoomToFit:"Näytä kaikki elementit",zoomToSelection:"Näytä valinta",toggleElementLock:"Lukitse / poista lukitus valinta",movePageUpDown:"Siirrä sivua ylös/alas",movePageLeftRight:"Siirrä sivua vasemmalle/oikealle"},v={title:"Pyyhi piirtoalue"},y={title:"Julkaise kirjasto",itemName:"Kohteen nimi",authorName:"Tekijän nimi",githubUsername:"GitHub-käyttäjätunnus",twitterUsername:"Twitter-käyttäjätunnus",libraryName:"Kirjaston nimi",libraryDesc:"Kirjaston kuvaus",website:"Verkkosivu",placeholder:{authorName:"Nimesi tai käyttäjänimesi",libraryName:"Kirjastosi nimi",libraryDesc:"Kirjaston kuvaus, joka auttaa ihmisiä ymmärtämään sen käyttötarkoitukset",githubHandle:"GitHub-tunnuksesi (valinnainen), jotta voit muokata kirjastoa sen jälkeen kun se on lähetetty tarkastettavaksi",twitterHandle:"Twitter-tunnus (valinnainen), jotta tiedämme ketä kiittää kun viestimme Twitterissä",website:"Linkki henkilökohtaiselle verkkosivustollesi tai muualle (valinnainen)"},errors:{required:"Pakollinen",website:"Syötä oikeamuotoinen URL-osoite"},noteDescription:"Lähetä kirjastosi, jotta se voidaan sisällyttää julkisessa kirjastolistauksessamuiden käyttöön omissa piirrustuksissaan.",noteGuidelines:"Kirjasto on ensin hyväksyttävä manuaalisesti. Ole hyvä ja lue ohjeet ennen lähettämistä. Tarvitset GitHub-tilin, jotta voit viestiä ja tehdä muutoksia pyydettäessä, mutta se ei ole ehdottoman välttämätöntä.",noteLicense:"Lähettämällä hyväksyt että kirjasto julkaistaan MIT-lisenssin alla, mikä lyhyesti antaa muiden käyttää sitä ilman rajoituksia.",noteItems:"Jokaisella kirjaston kohteella on oltava oma nimensä suodatusta varten. Seuraavat kirjaston kohteet sisältyvät:",atleastOneLibItem:"Valitse vähintään yksi kirjaston kohde aloittaaksesi",republishWarning:"Huom! Osa valituista kohteista on merkitty jo julkaistu/lähetetyiksi. Lähetä kohteita uudelleen vain päivitettäessä olemassa olevaa kirjastoa tai ehdotusta."},c={title:"Kirjasto lähetetty",content:"Kiitos {{authorName}}. Kirjastosi on lähetetty tarkistettavaksi. Voit seurata sen tilaatäällä"},h={resetLibrary:"Tyhjennä kirjasto",removeItemsFromLib:"Poista valitut kohteet kirjastosta"},b={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},g={tooltip:"Piirroksesi ovat päästä-päähän-salattuja, joten Excalidrawin palvelimet eivät koskaan näe niitä.",link:"Blogiartikkeli päästä päähän -salauksesta Excalidraw:ssa"},j={angle:"Kulma",element:"Elementti",elements:"Elementit",height:"Korkeus",scene:"Teos",selected:"Valitut",storage:"Tallennustila",title:"Tilastoja nörteille",total:"Yhteensä",version:"Versio",versionCopy:"Klikkaa kopioidaksesi",versionNotAvailable:"Versio ei saatavilla",width:"Leveys"},T={addedToLibrary:"Lisätty kirjastoon",copyStyles:"Tyylit kopioitiin.",copyToClipboard:"Kopioitiin leikepöydälle.",copyToClipboardAsPng:`Kopioitiin {{exportSelection}} leikepöydälle PNG:nä -({{exportColorScheme}})`,fileSaved:"Tiedosto tallennettu.",fileSavedToFilename:"Tallennettiin kohteeseen {filename}",canvas:"piirtoalue",selection:"valinta",pasteAsSingleElement:`Käytä {{shortcut}} liittääksesi yhtenä elementtinä, -tai liittääksesi olemassa olevaan tekstieditoriin`,unableToEmbed:"",unrecognizedLinkFormat:""},S={transparent:"Läpinäkyvä",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},L={app:{center_heading:"Kaikki tietosi on tallennettu paikallisesti selaimellesi.",center_heading_plus:"Haluatko sen sijaan mennä Excalidraw+:aan?",menuHint:"Vie, asetukset, kielet, ..."},defaults:{menuHint:"Vie, asetukset ja lisää...",center_heading:"Kaaviot. Tehty. Yksinkertaiseksi.",toolbarHint:"Valitse työkalu ja aloita piirtäminen!",helpHint:"Pikanäppäimet & ohje"}},w={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},P={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},x={title:"",button:"",description:"",syntax:"",preview:""},E={labels:i,library:t,buttons:e,alerts:a,errors:n,toolBar:o,headings:s,hints:l,canvasError:r,errorSplash:k,roomDialog:u,errorDialog:m,exportDialog:d,helpDialog:p,clearCanvasDialog:v,publishDialog:y,publishSuccessDialog:c,confirmDialog:h,imageExportDialog:b,encrypted:g,stats:j,toast:T,colors:S,welcomeScreen:L,colorPicker:w,overwriteConfirm:P,mermaid:x};export{a as alerts,e as buttons,r as canvasError,v as clearCanvasDialog,w as colorPicker,S as colors,h as confirmDialog,E as default,g as encrypted,m as errorDialog,k as errorSplash,n as errors,d as exportDialog,s as headings,p as helpDialog,l as hints,b as imageExportDialog,i as labels,t as library,x as mermaid,P as overwriteConfirm,y as publishDialog,c as publishSuccessDialog,u as roomDialog,j as stats,T as toast,o as toolBar,L as welcomeScreen}; -//# sourceMappingURL=fi-FI.json-J5M8FnGK.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js.map b/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js.map deleted file mode 100644 index 6c46b79..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fi-FI.json-J5M8FnGK.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fi-FI.json-J5M8FnGK.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js b/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js deleted file mode 100644 index 46d7e0a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Coller",pasteAsPlaintext:"Coller comme texte brut",pasteCharts:"Coller les graphiques",selectAll:"Tout sélectionner",multiSelect:"Ajouter l'élément à la sélection",moveCanvas:"Déplacer le canevas",cut:"Couper",copy:"Copier",copyAsPng:"Copier dans le presse-papier en PNG",copyAsSvg:"Copier dans le presse-papier en SVG",copyText:"Copier dans le presse-papier en tant que texte",copySource:"Copier la source dans le presse-papiers",convertToCode:"Convertir en code",bringForward:"Envoyer vers l'avant",sendToBack:"Déplacer à l'arrière-plan",bringToFront:"Mettre au premier plan",sendBackward:"Reculer d'un plan",delete:"Supprimer",copyStyles:"Copier les styles",pasteStyles:"Coller les styles",stroke:"Trait",background:"Arrière-plan",fill:"Remplissage",strokeWidth:"Largeur du contour",strokeStyle:"Style du trait",strokeStyle_solid:"Continu",strokeStyle_dashed:"Tirets",strokeStyle_dotted:"Pointillés",sloppiness:"Style de tracé",opacity:"Transparence",textAlign:"Alignement du texte",edges:"Angles",sharp:"Pointus",round:"Arrondis",arrowheads:"Extrémités",arrowhead_none:"Sans",arrowhead_arrow:"Flèche",arrowhead_bar:"Barre",arrowhead_circle:"Cercle",arrowhead_circle_outline:"Contour du cercle",arrowhead_triangle:"Triangle",arrowhead_triangle_outline:"Triangle (contour)",arrowhead_diamond:"Losange",arrowhead_diamond_outline:"",fontSize:"Taille de la police",fontFamily:"Police",addWatermark:'Ajouter "Réalisé avec Excalidraw"',handDrawn:"À main levée",normal:"Normale",code:"Code",small:"Petite",medium:"Moyenne",large:"Grande",veryLarge:"Très grande",solid:"Solide",hachure:"Hachures",zigzag:"Zigzag",crossHatch:"Hachures croisées",thin:"Fine",bold:"Épaisse",left:"À gauche",center:"Au centre",right:"À droite",extraBold:"Très épaisse",architect:"Architecte",artist:"Artiste",cartoonist:"Caricaturiste",fileTitle:"Nom du fichier",colorPicker:"Sélecteur de couleur",canvasColors:"Utilisé sur la zone de dessin",canvasBackground:"Arrière-plan du canevas",drawingCanvas:"Zone de dessin",layers:"Disposition",actions:"Actions",language:"Langue",liveCollaboration:"Collaboration en direct...",duplicateSelection:"Dupliquer",untitled:"Sans-titre",name:"Nom",yourName:"Votre nom",madeWithExcalidraw:"Fait avec Excalidraw",group:"Grouper la sélection",ungroup:"Dégrouper la sélection",collaborators:"Collaborateurs",showGrid:"Afficher la grille",addToLibrary:"Ajouter à la bibliothèque",removeFromLibrary:"Supprimer de la bibliothèque",libraryLoadingMessage:"Chargement de la bibliothèque…",libraries:"Parcourir les bibliothèques",loadingScene:"Chargement de la scène…",align:"Alignement",alignTop:"Aligner en haut",alignBottom:"Aligner en bas",alignLeft:"Aligner à gauche",alignRight:"Aligner à droite",centerVertically:"Centrer verticalement",centerHorizontally:"Centrer horizontalement",distributeHorizontally:"Répartir horizontalement",distributeVertically:"Répartir verticalement",flipHorizontal:"Retourner horizontalement",flipVertical:"Retourner verticalement",viewMode:"Mode présentation",share:"Partager",showStroke:"Afficher le sélecteur de couleur de trait",showBackground:"Afficher le sélecteur de couleur de fond",toggleTheme:"Changer le thème",personalLib:"Bibliothèque personnelle",excalidrawLib:"Bibliothèque Excalidraw",decreaseFontSize:"Diminuer la taille de police",increaseFontSize:"Augmenter la taille de la police",unbindText:"Dissocier le texte",bindText:"Associer le texte au conteneur",createContainerFromText:"Encadrer le texte dans un conteneur",link:{edit:"Modifier le lien",editEmbed:"Éditer le lien & intégrer",create:"Ajouter un lien",createEmbed:"Créer un lien & intégrer",label:"Lien",labelEmbed:"Lier & intégrer",empty:"Aucun lien défini"},lineEditor:{edit:"Modifier la ligne",exit:"Quitter l'éditeur de ligne"},elementLock:{lock:"Verrouiller",unlock:"Déverrouiller",lockAll:"Tout verrouiller",unlockAll:"Tout déverrouiller"},statusPublished:"Publié",sidebarLock:"Maintenir la barre latérale ouverte",selectAllElementsInFrame:"Sélectionner tous les éléments du cadre",removeAllElementsFromFrame:"Supprimer tous les éléments du cadre",eyeDropper:"Choisir la couleur depuis la toile",textToDiagram:"Texte vers Diagramme",prompt:"Consignes"},r={noItems:"Aucun élément n'a encore été ajouté ...",hint_emptyLibrary:"Sélectionnez un élément sur le canevas pour l'ajouter ici ou installez une bibliothèque depuis le dépôt public, ci-dessous.",hint_emptyPrivateLibrary:"Sélectionnez un élément sur le canevas pour l'ajouter ici."},i={clearReset:"Réinitialiser le canevas",exportJSON:"Exporter comme fichier",exportImage:"Exporter l'image...",export:"Enregistrer sous...",copyToClipboard:"Copier dans le presse-papier",save:"Enregistrer dans le fichier actuel",saveAs:"Enregistrer sous",load:"Ouvrir",getShareableLink:"Obtenir un lien de partage",close:"Fermer",selectLanguage:"Choisir une langue",scrollBackToContent:"Revenir au contenu",zoomIn:"Zoomer",zoomOut:"Dézoomer",resetZoom:"Réinitialiser le zoom",menu:"Menu",done:"Terminé",edit:"Modifier",undo:"Annuler",redo:"Rétablir",resetLibrary:"Réinitialiser la bibliothèque",createNewRoom:"Créer une nouvelle salle",fullScreen:"Plein écran",darkMode:"Mode sombre",lightMode:"Mode clair",zenMode:"Mode zen",objectsSnapMode:"Aimanter aux objets",exitZenMode:"Quitter le mode zen",cancel:"Annuler",clear:"Effacer",remove:"Supprimer",embed:"Activer/Désactiver l'intégration",publishLibrary:"Publier",submit:"Envoyer",confirm:"Confirmer",embeddableInteractionButton:"Cliquez pour interagir"},o={clearReset:"L'intégralité du canevas va être effacée. Êtes-vous sûr ?",couldNotCreateShareableLink:"Impossible de créer un lien de partage.",couldNotCreateShareableLinkTooBig:"Impossible de créer un lien de partage : la scène est trop volumineuse",couldNotLoadInvalidFile:"Impossible de charger un fichier invalide",importBackendFailed:"L'importation depuis le serveur a échoué.",cannotExportEmptyCanvas:"Impossible d'exporter un canevas vide.",couldNotCopyToClipboard:"Impossible de copier dans le presse-papiers.",decryptFailed:"Les données n'ont pas pu être déchiffrées.",uploadedSecurly:"Le téléchargement a été sécurisé avec un chiffrement de bout en bout, ce qui signifie que ni Excalidraw ni personne d'autre ne peut en lire le contenu.",loadSceneOverridePrompt:"Le chargement d'un dessin externe remplacera votre contenu actuel. Souhaitez-vous continuer ?",collabStopOverridePrompt:`Arrêter la session écrasera votre précédent dessin stocké localement. Êtes-vous sûr·e ? - -(Si vous voulez garder votre dessin local, fermez simplement l'onglet du navigateur à la place.)`,errorAddingToLibrary:"Impossible d'ajouter l'élément à la bibliothèque",errorRemovingFromLibrary:"Impossible de retirer l'élément de la bibliothèque",confirmAddLibrary:"Cela va ajouter {{numShapes}} forme(s) à votre bibliothèque. Êtes-vous sûr·e ?",imageDoesNotContainScene:"Cette image ne semble pas contenir de données de scène. Avez-vous activé l'intégration de scène lors de l'exportation ?",cannotRestoreFromImage:"Impossible de restaurer la scène depuis ce fichier image",invalidSceneUrl:"Impossible d'importer la scène depuis l'URL fournie. Elle est soit incorrecte, soit ne contient pas de données JSON Excalidraw valides.",resetLibrary:"Cela va effacer votre bibliothèque. Êtes-vous sûr·e ?",removeItemsFromsLibrary:"Supprimer {{count}} élément(s) de la bibliothèque ?",invalidEncryptionKey:"La clé de chiffrement doit comporter 22 caractères. La collaboration en direct est désactivée.",collabOfflineWarning:`Aucune connexion internet disponible. -Vos modifications ne seront pas enregistrées !`},t={unsupportedFileType:"Type de fichier non supporté.",imageInsertError:"Impossible d'insérer l'image. Réessayez plus tard...",fileTooBig:"Le fichier est trop volumineux. La taille maximale autorisée est de {{maxSize}}.",svgImageInsertError:"Impossible d'insérer l'image SVG. Le balisage SVG semble invalide.",failedToFetchImage:"Échec de récupération de l'image.",invalidSVGString:"SVG invalide.",cannotResolveCollabServer:"Impossible de se connecter au serveur collaboratif. Veuillez recharger la page et réessayer.",importLibraryError:"Impossible de charger la bibliothèque",collabSaveFailed:"Impossible d'enregistrer dans la base de données en arrière-plan. Si des problèmes persistent, vous devriez enregistrer votre fichier localement pour vous assurer de ne pas perdre votre travail.",collabSaveFailed_sizeExceeded:"Impossible d'enregistrer dans la base de données en arrière-plan, le tableau semble trop grand. Vous devriez enregistrer le fichier localement pour vous assurer de ne pas perdre votre travail.",imageToolNotSupported:"Les images sont désactivées.",brave_measure_text_error:{line1:"On dirait que vous utilisez le navigateur Brave avec l'option Bloquer agressivement le fichage activée.",line2:"Cela pourrait entraîner des problèmes avec les Éléments Textuels dans vos dessins.",line3:"Nous recommandons fortement de désactiver cette option. Vous pouvez suivre ces instructions pour savoir comment faire.",line4:"Si désactiver cette option de résout pas le problème d'affichage des éléments textuels, veuillez ouvrir un ticket sur notre GitHub, ou écrivez-nous sur notre Discord"},libraryElementTypeError:{embeddable:"Les éléments intégrés ne peuvent pas être ajoutés à la librairie.",iframe:"",image:"Le support pour l'ajout d'images à la librairie arrive bientôt !"},asyncPasteFailedOnRead:"Impossible de coller (impossible de lire le presse-papiers système).",asyncPasteFailedOnParse:"Impossible de coller.",copyToSystemClipboardFailed:"Échec de la copie dans le presse-papiers."},n={selection:"Sélection",image:"Insérer une image",rectangle:"Rectangle",diamond:"Losange",ellipse:"Ellipse",arrow:"Flèche",line:"Ligne",freedraw:"Dessiner",text:"Texte",library:"Bibliothèque",lock:"Garder l'outil sélectionné actif après le dessin",penMode:"Mode stylo - évite le toucher",link:"Ajouter/mettre à jour le lien pour une forme sélectionnée",eraser:"Gomme",frame:"Outil de cadre",magicframe:"",embeddable:"Intégration Web",laser:"Pointeur laser",hand:"Mains (outil de déplacement de la vue)",extraTools:"Plus d'outils",mermaidToExcalidraw:"De Mermaid à Excalidraw",magicSettings:"Paramètres IA"},a={canvasActions:"Actions du canevas",selectedShapeActions:"Actions pour la forme sélectionnée",shapes:"Formes"},s={canvasPanning:"Pour déplacer la zone de dessin, maintenez la molette de la souris enfoncée ou la barre d'espace tout en faisant glisser, ou utiliser l'outil main.",linearElement:"Cliquez pour démarrer plusieurs points, faites glisser pour une seule ligne",freeDraw:"Cliquez et faites glissez, relâchez quand vous avez terminé",text:"Astuce : vous pouvez aussi ajouter du texte en double-cliquant n'importe où avec l'outil de sélection",embeddable:"Cliquez et glissez pour créer une intégration de site web",text_selected:"Double-cliquez ou appuyez sur ENTRÉE pour modifier le texte",text_editing:"Appuyez sur ÉCHAP ou Ctrl/Cmd+ENTRÉE pour terminer l'édition",linearElementMulti:"Cliquez sur le dernier point ou appuyez sur Échap ou Entrée pour terminer",lockAngle:"Vous pouvez restreindre l'angle en maintenant MAJ",resize:"Vous pouvez conserver les proportions en maintenant la touche MAJ pendant le redimensionnement, maintenez la touche ALT pour redimensionner par rapport au centre",resizeImage:`Vous pouvez redimensionner librement en maintenant SHIFT, -maintenez ALT pour redimensionner depuis le centre`,rotate:"Vous pouvez restreindre les angles en maintenant MAJ pendant la rotation",lineEditor_info:"Maintenez CtrlOrCmd et Double-cliquez ou appuyez sur CtrlOrCmd + Entrée pour modifier les points",lineEditor_pointSelected:"Appuyer sur Suppr. pour supprimer des points, Ctrl ou Cmd+D pour dupliquer, ou faire glisser pour déplacer",lineEditor_nothingSelected:`Sélectionner un point pour éditer (maintenir la touche MAJ pour en sélectionner plusieurs), -ou maintenir la touche Alt enfoncée et cliquer pour ajouter de nouveaux points`,placeImage:"Cliquez pour placer l'image, ou cliquez et faites glisser pour définir sa taille manuellement",publishLibrary:"Publier votre propre bibliothèque",bindTextToElement:"Appuyer sur Entrée pour ajouter du texte",deepBoxSelect:"Maintenir Ctrl ou Cmd pour sélectionner dans les groupes et empêcher le déplacement",eraserRevert:"Maintenez Alt enfoncé pour annuler les éléments marqués pour suppression",firefox_clipboard_write:`Cette fonctionnalité devrait pouvoir être activée en définissant l'option "dom.events.asyncClipboard.clipboard.clipboardItem" à "true". Pour modifier les paramètres du navigateur dans Firefox, visitez la page "about:config".`,disableSnapping:"Maintenez CtrlOuCmd pour désactiver l'aimantation"},l={cannotShowPreview:"Impossible d’afficher l’aperçu",canvasTooBig:"Le canevas est peut-être trop grand.",canvasTooBigTip:"Astuce : essayez de rapprocher un peu les éléments les plus éloignés."},u={headingMain:"Une erreur est survenue. Essayez ",clearCanvasMessage:"Si le rechargement ne résout pas l'erreur, essayez ",clearCanvasCaveat:" Cela entraînera une perte du travail ",trackedToSentry:"L'erreur avec l'identifiant {{eventId}} a été enregistrée dans notre système.",openIssueMessage:"Nous avons fait très attention à ne pas inclure les informations de votre scène dans l'erreur. Si votre scène n'est pas privée, veuillez envisager de poursuivre sur notre Veuillez inclure les informations ci-dessous en les copiant-collant dans le ticket GitHub.",sceneContent:"Contenu de la scène :"},c={desc_intro:"Vous pouvez inviter des personnes à collaborer avec vous sur votre scène actuelle.",desc_privacy:"Pas d'inquiétude, la session utilise le chiffrement de bout en bout, donc tout ce que vous dessinez restera privé. Même notre serveur ne pourra voir ce que vous faites.",button_startSession:"Démarrer la session",button_stopSession:"Arrêter la session",desc_inProgressIntro:"La session de collaboration en direct est maintenant en cours.",desc_shareLink:"Partagez ce lien avec les personnes avec lesquelles vous souhaitez collaborer :",desc_exitSession:"Arrêter la session vous déconnectera de la salle, mais vous pourrez continuer à travailler avec la scène, localement. Notez que cela n'affectera pas les autres personnes, et ils pourront toujours collaborer sur leur version.",shareTitle:"Rejoindre une session de collaboration en direct sur Excalidraw"},d={title:"Erreur"},p={disk_title:"Enregistrer sur le disque",disk_details:"Exporter les données de la scène comme un fichier que vous pourrez importer ultérieurement.",disk_button:"Enregistrer comme fichier",link_title:"Lien partageable",link_details:"Exporter comme un lien en lecture seule.",link_button:"Exporter comme lien",excalidrawplus_description:"Enregistrer la scène dans votre espace de travail Excalidraw+.",excalidrawplus_button:"Exporter",excalidrawplus_exportError:"Impossible d'exporter vers Excalidraw+ pour le moment..."},m={blog:"Lire notre blog",click:"clic",deepSelect:"Sélection dans les groupes",deepBoxSelect:"Sélectionner dans les groupes, et empêcher le déplacement",curvedArrow:"Flèche courbée",curvedLine:"Ligne courbée",documentation:"Documentation",doubleClick:"double-clic",drag:"glisser",editor:"Éditeur",editLineArrowPoints:"Modifier les points de ligne/flèche",editText:"Modifier le texte / ajouter un libellé",github:"Problème trouvé ? Soumettre",howto:"Suivez nos guides",or:"ou",preventBinding:"Empêcher la liaison de flèche",tools:"Outils",shortcuts:"Raccourcis clavier",textFinish:"Terminer l'édition (éditeur de texte)",textNewLine:"Ajouter une nouvelle ligne (éditeur de texte)",title:"Aide",view:"Affichage",zoomToFit:"Zoomer pour voir tous les éléments",zoomToSelection:"Zoomer sur la sélection",toggleElementLock:"Verrouiller/déverrouiller la sélection",movePageUpDown:"Déplacer la page vers le haut/bas",movePageLeftRight:"Déplacer la page vers la gauche/droite"},b={title:"Effacer la zone de dessin"},g={title:"Publier la bibliothèque",itemName:"Nom de l’élément",authorName:"Nom de l'auteur",githubUsername:"Nom d'utilisateur GitHub",twitterUsername:"Nom d'utilisateur Twitter",libraryName:"Nom de la bibliothèque",libraryDesc:"Description de la bibliothèque",website:"Site web",placeholder:{authorName:"Votre nom ou nom d'utilisateur",libraryName:"Nom de votre bibliothèque",libraryDesc:"Description de votre bibliothèque pour aider les gens à comprendre son usage",githubHandle:"Nom d'utilisateur GitHub (optionnel), pour que tu puisses modifier la bibliothèque une fois soumise pour vérification",twitterHandle:"Nom d'utilisateur Twitter (optionnel), pour savoir qui créditer lors de la promotion sur Twitter",website:"Lien vers votre site web personnel ou autre (optionnel)"},errors:{required:"Requis",website:"Entrer une URL valide"},noteDescription:"Soumets ta bibliothèque pour l'inclure au dépôt de bibliothèque publiquepour permettre son utilisation par autrui dans leurs dessins.",noteGuidelines:"La bibliothèque doit d'abord être approuvée manuellement. Veuillez lire les lignes directrices avant de la soumettre. Vous aurez besoin d'un compte GitHub pour communiquer et apporter des modifications si demandé, mais ce n'est pas obligatoire.",noteLicense:"En soumettant, vous acceptez que la bibliothèque soit publiée sous la Licence MIT, ce qui en gros signifie que tout le monde peut l'utiliser sans restrictions.",noteItems:"Chaque élément de la bibliothèque doit avoir son propre nom afin qu'il soit filtrable. Les éléments de bibliothèque suivants seront inclus :",atleastOneLibItem:"Veuillez sélectionner au moins un élément de bibliothèque pour commencer",republishWarning:"Remarque : certains des éléments sélectionnés sont marqués comme étant déjà publiés/soumis. Vous devez uniquement resoumettre des éléments lors de la mise à jour d'une bibliothèque ou d'une soumission existante."},v={title:"Bibliothèque soumise",content:"Merci {{authorName}}. Votre bibliothèque a été soumise pour examen. Vous pouvez suivre le statutici"},h={resetLibrary:"Réinitialiser la bibliothèque",removeItemsFromLib:"Enlever les éléments sélectionnés de la bibliothèque"},f={header:"Exporter l'image",label:{withBackground:"Fond",onlySelected:"Uniquement la sélection",darkMode:"Mode sombre",embedScene:"Intégrer la scène",scale:"Échelle",padding:"Marge interne"},tooltip:{embedScene:`Les données de la scène seront sauvegardées dans le fichier PNG/SVG exporté afin que la scène puisse être restaurée depuis celui-ci. -Cela augmentera la taille du fichier exporté.`},title:{exportToPng:"Exporter en PNG",exportToSvg:"Exporter en SVG",copyPngToClipboard:"Copier le PNG dans le presse-papier"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copier dans le presse-papier"}},x={tooltip:"Vos dessins sont chiffrés de bout en bout, les serveurs d'Excalidraw ne les verront jamais.",link:"Article de blog sur le chiffrement de bout en bout dans Excalidraw"},S={angle:"Angle",element:"Élément",elements:"Éléments",height:"Hauteur",scene:"Scène",selected:"Sélection",storage:"Stockage",title:"Stats pour les nerds",total:"Total",version:"Version",versionCopy:"Cliquer pour copier",versionNotAvailable:"Version non disponible",width:"Largeur"},C={addedToLibrary:"Ajouté à la bibliothèque",copyStyles:"Styles copiés.",copyToClipboard:"Copié dans le presse-papier.",copyToClipboardAsPng:`{{exportSelection}} copié dans le presse-papier en PNG -({{exportColorScheme}})`,fileSaved:"Fichier enregistré.",fileSavedToFilename:"Enregistré sous {filename}",canvas:"canevas",selection:"sélection",pasteAsSingleElement:`Utiliser {{shortcut}} pour coller comme un seul élément, -ou coller dans un éditeur de texte existant`,unableToEmbed:"Intégrer cet URL n'est actuellement pas autorisé. Ouvrez un ticket sur GitHub pour demander son ajout à la liste blanche",unrecognizedLinkFormat:"Le lien que vous avez intégré ne correspond pas au format attendu. Veuillez essayer de coller la chaîne d'intégration fournie par le site source"},y={transparent:"Transparent",black:"Noir",white:"Blanc",red:"Rouge",pink:"Rose",grape:"Mauve",violet:"Violet",gray:"Gris",blue:"Bleu",cyan:"Cyan",teal:"Turquoise",green:"Vert",yellow:"Jaune",orange:"Orange",bronze:"Bronze"},z={app:{center_heading:"Toutes vos données sont sauvegardées en local dans votre navigateur.",center_heading_plus:"Vouliez-vous plutôt aller à Excalidraw+ à la place ?",menuHint:"Exportation, préférences, langues, ..."},defaults:{menuHint:"Exportation, préférences et plus...",center_heading:"Diagrammes. Rendus. Simples.",toolbarHint:"Choisissez un outil et commencez à dessiner !",helpHint:"Raccourcis et aide"}},E={mostUsedCustomColors:"Couleurs personnalisées les plus fréquemment utilisées",colors:"Couleurs",shades:"Nuances",hexCode:"Code hex",noShades:"Aucune nuance disponible pour cette couleur"},q={action:{exportToImage:{title:"Exporter en image",button:"Exporter en image",description:"Exporter les données de la scène comme une image que vous pourrez importer ultérieurement."},saveToDisk:{title:"Sauvegarder sur le disque",button:"Sauvegarder sur le disque",description:"Exporter les données de la scène comme un fichier que vous pourrez importer ultérieurement."},excalidrawPlus:{title:"Excalidraw+",button:"Exporter vers Excalidraw+",description:"Enregistrer la scène dans votre espace de travail Excalidraw+."}},modal:{loadFromFile:{title:"Charger depuis un fichier",button:"Charger depuis un fichier",description:"Charger depuis un fichier va remplacer votre contenu existant.

    Vous pouvez d'abord sauvegarder votre dessin en utilisant l'une des options ci-dessous."},shareableLink:{title:"Charger depuis un lien",button:"Remplacer mon contenu",description:"Charger un dessin externe va remplacer votre contenu existant.

    Vous pouvez d'abord sauvegarder votre dessin en utilisant l'une des options ci-dessous."}}},L={title:"De Mermaid à Excalidraw",button:"Insérer",description:"",syntax:"Syntaxe Mermaid",preview:"Prévisualisation"},A={labels:e,library:r,buttons:i,alerts:o,errors:t,toolBar:n,headings:a,hints:s,canvasError:l,errorSplash:u,roomDialog:c,errorDialog:d,exportDialog:p,helpDialog:m,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:v,confirmDialog:h,imageExportDialog:f,encrypted:x,stats:S,toast:C,colors:y,welcomeScreen:z,colorPicker:E,overwriteConfirm:q,mermaid:L};export{o as alerts,i as buttons,l as canvasError,b as clearCanvasDialog,E as colorPicker,y as colors,h as confirmDialog,A as default,x as encrypted,d as errorDialog,u as errorSplash,t as errors,p as exportDialog,a as headings,m as helpDialog,s as hints,f as imageExportDialog,e as labels,r as library,L as mermaid,q as overwriteConfirm,g as publishDialog,v as publishSuccessDialog,c as roomDialog,S as stats,C as toast,n as toolBar,z as welcomeScreen}; -//# sourceMappingURL=fr-FR.json-lfZo79tg.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js.map b/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js.map deleted file mode 100644 index 2109702..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/fr-FR.json-lfZo79tg.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fr-FR.json-lfZo79tg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js b/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js deleted file mode 100644 index bde2524..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"Pegar",pasteAsPlaintext:"Pegar coma texto sen formato",pasteCharts:"Pegar gráficos",selectAll:"Seleccionar todo",multiSelect:"Engadir elemento á selección",moveCanvas:"Mover o lenzo",cut:"Cortar",copy:"Copiar",copyAsPng:"Copiar no portapapeis como PNG",copyAsSvg:"Copiar no portapapeis como SVG",copyText:"Copia no portapapeis como texto",copySource:"",convertToCode:"",bringForward:"Traer cara adiante",sendToBack:"Enviar cara atrás",bringToFront:"Traer á fronte",sendBackward:"Enviar ao fondo",delete:"Borrar",copyStyles:"Copiar estilo",pasteStyles:"Pegar estilo",stroke:"Trazo",background:"Fondo",fill:"Recheo",strokeWidth:"Largo do trazo",strokeStyle:"Estilo do trazo",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Liña de trazos",strokeStyle_dotted:"Liña de puntos",sloppiness:"Estilo de trazo",opacity:"Opacidade",textAlign:"Aliñar texto",edges:"Bordos",sharp:"Agudo",round:"Redondo",arrowheads:"Puntas de frecha",arrowhead_none:"Ningunha",arrowhead_arrow:"Frecha",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triángulo",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tamaño da fonte",fontFamily:"Tipo de fonte",addWatermark:'Engadir "Feito con Excalidraw"',handDrawn:"Debuxado a man",normal:"Normal",code:"Código",small:"Pequeno",medium:"Mediano",large:"Grande",veryLarge:"Moi grande",solid:"Sólido",hachure:"Folleto",zigzag:"Zigzag",crossHatch:"Raiado transversal",thin:"Estreito",bold:"Groso",left:"Esquerda",center:"Centrado",right:"Dereita",extraBold:"Moi groso",architect:"Arquitecto",artist:"Artista",cartoonist:"Caricatura",fileTitle:"Nome do arquivo",colorPicker:"Selector de cor",canvasColors:"Usado en lenzo",canvasBackground:"Fondo do lenzo",drawingCanvas:"Lenzo de debuxo",layers:"Capas",actions:"Accións",language:"Idioma",liveCollaboration:"Colaboración en directo...",duplicateSelection:"Duplicar",untitled:"Sen título",name:"Nome",yourName:"O teu nome",madeWithExcalidraw:"Feito con Excalidraw",group:"Agrupar selección",ungroup:"Desagrupar selección",collaborators:"Colaboradores",showGrid:"Mostrar cuadrícula",addToLibrary:"Engadir á biblioteca",removeFromLibrary:"Eliminar da biblioteca",libraryLoadingMessage:"Cargando biblioteca…",libraries:"Explorar bibliotecas",loadingScene:"Cargando escena…",align:"Aliñamento",alignTop:"Aliñamento superior",alignBottom:"Aliñamento inferior",alignLeft:"Aliñar a esquerda",alignRight:"Aliñar a dereita",centerVertically:"Centrar verticalmente",centerHorizontally:"Centrar horizontalmente",distributeHorizontally:"Distribuír horizontalmente",distributeVertically:"Distribuír verticalmente",flipHorizontal:"Virar horizontalmente",flipVertical:"Virar verticalmente",viewMode:"Modo de visualización",share:"Compartir",showStroke:"Mostrar selector de cores do trazo",showBackground:"Mostrar selector de cores do fondo",toggleTheme:"Alternar tema",personalLib:"Biblioteca Persoal",excalidrawLib:"Biblioteca Excalidraw",decreaseFontSize:"Diminuír tamaño da fonte",increaseFontSize:"Aumentar o tamaño da fonte",unbindText:"Desvincular texto",bindText:"Ligar o texto ao contedor",createContainerFromText:"Envolver o texto nun contedor",link:{edit:"Editar ligazón",editEmbed:"",create:"Crear ligazón",createEmbed:"",label:"Ligazón",labelEmbed:"",empty:""},lineEditor:{edit:"Editar liña",exit:"Saír do editor de liñas"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear todo",unlockAll:"Desbloquear todo"},statusPublished:"Publicado",sidebarLock:"Manter a barra lateral aberta",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Aínda non hai elementos engadidos...",hint_emptyLibrary:"Seleccione un elemento no lenzo para engadilo aquí, ou instale unha biblioteca dende o repositorio público, como se detalla a continuación.",hint_emptyPrivateLibrary:"Seleccione un elemento do lenzo para engadilo aquí."},o={clearReset:"Limpar o lenzo",exportJSON:"Exportar a arquivo",exportImage:"Exportar imaxe...",export:"Gardar en...",copyToClipboard:"Copiar ao portapapeis",save:"Gardar no ficheiro actual",saveAs:"Gardar como",load:"Abrir",getShareableLink:"Obter unha ligazón que se poida compartir",close:"Pechar",selectLanguage:"Seleccionar idioma",scrollBackToContent:"Volver ao contido",zoomIn:"Ampliar",zoomOut:"Reducir",resetZoom:"Reiniciar zoom",menu:"Menú",done:"Feito",edit:"Editar",undo:"Desfacer",redo:"Refacer",resetLibrary:"Reiniciar biblioteca",createNewRoom:"Crear nova sala",fullScreen:"Pantalla completa",darkMode:"Modo escuro",lightMode:"Modo claro",zenMode:"Modo zen",objectsSnapMode:"",exitZenMode:"Saír do modo zen",cancel:"Cancelar",clear:"Limpar",remove:"Eliminar",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:"Faga clic para interactuar"},r={clearReset:"Isto limpará todo o lenzo. Estás seguro?",couldNotCreateShareableLink:"Non se puido crear unha ligazón para compartir.",couldNotCreateShareableLinkTooBig:"Non se puido crear a ligazón para compartir: a escena é demasiado grande",couldNotLoadInvalidFile:"Non se puido cargar o ficheiro non válido",importBackendFailed:"A importación dende o backend fallou.",cannotExportEmptyCanvas:"Non se pode exportar un lenzo baleiro.",couldNotCopyToClipboard:"Non se puido copiar ao portapapeis.",decryptFailed:"Non se poideron descifrar os datos.",uploadedSecurly:"A carga foi asegurada con cifrado de extremo a extremo, o que significa que o servidor de Excalidraw e terceiros non poden ler o contido.",loadSceneOverridePrompt:"A carga dun debuxo externo substituirá o contido existente. Desexa continuar?",collabStopOverridePrompt:`Deter a sesión, sobrescribirá o seu debuxo local previamente almacenado. Está seguro? - -(Se quere manter o seu debuxo local, simplemente peche a lapela do navegador.)`,errorAddingToLibrary:"Non se puido engadir o elemento á biblioteca",errorRemovingFromLibrary:"Non se puido eliminar o elemento da biblioteca",confirmAddLibrary:"Isto engadirá {{numShapes}} forma(s) a túa biblioteca. Estás seguro?",imageDoesNotContainScene:"Esta imaxe non parece conter ningún dato da escena. Activou a inserción de escenas durante a exportación?",cannotRestoreFromImage:"Non se puido restaurar a escena dende este arquivo de imaxe",invalidSceneUrl:"Non se puido importar a escena dende a URL proporcionada. Ou ben está malformada ou non contén un JSON con información válida para Excalidraw.",resetLibrary:"Isto limpará a súa biblioteca. Está seguro?",removeItemsFromsLibrary:"Eliminar {{count}} elemento(s) da biblioteca?",invalidEncryptionKey:"A clave de cifrado debe ter 22 caracteres. A colaboración en directo está desactivada.",collabOfflineWarning:`Non hai conexión a Internet dispoñible. -Os teus cambios non serán gardados!`},i={unsupportedFileType:"Tipo de ficheiro non soportado.",imageInsertError:"Non se puido inserir a imaxe. Probe de novo máis tarde...",fileTooBig:"O ficheiro é demasiado grande. O tamaño máximo permitido é {{maxSize}}.",svgImageInsertError:"Non se puido inserir como imaxe SVG. O marcado SVG semella inválido.",failedToFetchImage:"",invalidSVGString:"SVG inválido.",cannotResolveCollabServer:"Non se puido conectar ao servidor de colaboración. Por favor recargue a páxina e probe de novo.",importLibraryError:"Non se puido cargar a biblioteca",collabSaveFailed:"Non se puido gardar na base de datos. Se o problema persiste, deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.",collabSaveFailed_sizeExceeded:"Non se puido gardar na base de datos, o lenzo semella demasiado grande. Deberías gardar o teu arquivo de maneira local para asegurarte de non perdelo teu traballo.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},n={selection:"Selección",image:"Inserir imaxe",rectangle:"Rectángulo",diamond:"Diamante",ellipse:"Elipse",arrow:"Frecha",line:"Liña",freedraw:"Debuxar",text:"Texto",library:"Biblioteca",lock:"Manter a ferramenta seleccionada activa despois de debuxar",penMode:"Modo lapis - evitar o contacto",link:"Engadir/ Actualizar ligazón para a forma seleccionada",eraser:"Goma de borrar",frame:"",magicframe:"",embeddable:"Inserir na web",laser:"Punteiro láser",hand:"Man (ferramenta de desprazamento)",extraTools:"Máis ferramentas",mermaidToExcalidraw:"",magicSettings:""},t={canvasActions:"Accións do lenzo",selectedShapeActions:"Accións da forma seleccionada",shapes:"Formas"},s={canvasPanning:"Para mover o lenzo, manteña pulsada a roda do rato ou a barra de espazo mentres arrastra, ou utilice a ferramenta da man",linearElement:"Faga clic para iniciar varios puntos, arrastre para unha sola liña",freeDraw:"Fai clic e arrastra, solta cando acabes",text:"Consello: tamén podes engadir texto facendo dobre-clic en calquera lugar coa ferramenta de selección",embeddable:"Faga clic e arrastre para crear un sitio web embebido",text_selected:"Dobre-clic ou prema ENTER para editar o texto",text_editing:"Prema Escape ou CtrlOrCmd+ENTER para finalizar a edición",linearElementMulti:"Faga clic no último punto ou prema Escape ou Enter para rematar",lockAngle:"Pode reducir o ángulo mantendo SHIFT",resize:`Pode reducir as proporcións mantendo SHIFT mentres axusta o tamaño, -manteña ALT para axustalo dende o centro`,resizeImage:`Pode axustar o tamaño libremente mantendo SHIFT, -manteña ALT para axustalo dende o centro`,rotate:"Podes reducir os ángulos mantendo SHIFT mentres os rotas",lineEditor_info:"Manteña pulsado CtrlOrCmd e faga dobre clic ou prema CtrlOrCmd + Enter para editar puntos",lineEditor_pointSelected:`Prema Suprimir para eliminar o(s) punto(s) -CtrlOrCmd+D para duplicalos, ou arrastre para movelos`,lineEditor_nothingSelected:`Seleccione un punto para editar (manteña pulsado SHIFT para selección múltiple), -ou manteña pulsado Alt e faga clic para engadir novos puntos`,placeImage:"Faga clic para colocar a imaxe, ou faga clic e arrastre para establecer o seu tamaño manualmente",publishLibrary:"Publica a túa propia biblioteca",bindTextToElement:"Prema a tecla enter para engadir texto",deepBoxSelect:"Manteña pulsado CtrlOrCmd para seleccionar en profundidade e evitar o arrastre",eraserRevert:"Manteña pulsado Alt para reverter os elementos marcados para a súa eliminación",firefox_clipboard_write:'Esta función pódese activar establecendo a opción "dom.events.asyncClipboard.clipboardItem" a "true". Para cambiar as opcións do navegador en Firefox, visita a páxina "about:config".',disableSnapping:""},l={cannotShowPreview:"Non se pode mostrar a vista previa",canvasTooBig:"Pode que o lenzo sexa demasiado grande.",canvasTooBigTip:"Consello: Probe a acercar un pouco os elementos máis afastados."},d={headingMain:"Atopouse un erro. Probe ",clearCanvasMessage:"Se recargar non funcionou, probe ",clearCanvasCaveat:" Isto resultará nunha perda do seu traballo ",trackedToSentry:"O erro con identificador {{eventId}} foi rastrexado no noso sistema.",openIssueMessage:"Fomos moi cautelosos de non incluír a información da súa escena no erro. Se a súa escena non é privada, por favor, considere o seguimento do noso Por favor inclúa a seguinte información copiándoa e pegándoa na issue de Github.",sceneContent:"Contido da escena:"},c={desc_intro:"Podes invitar xente a colaborar contigo na túa escena actual.",desc_privacy:"Non te preocupes, a sesión usa cifrado de punto a punto, polo que calquera cousa que debuxes mantense privada. Nin tan sequera o noso servidor será capaz de ver o que fas.",button_startSession:"Comezar sesión",button_stopSession:"Rematar sesión",desc_inProgressIntro:"A sesión de colaboración en directo está agora en progreso.",desc_shareLink:"Comparte esta ligazón con calquera que queiras colaborar:",desc_exitSession:"Deter a sesión desconectarao da sala, pero poderá seguir traballando coa escena de maneira local. Teña en conta que isto non afectará a outras persoas, que poderán seguir colaborando na súa versión.",shareTitle:"Únase a unha sesión de colaboración en directo en Excalidraw"},u={title:"Erro"},p={disk_title:"Gardar no disco",disk_details:"Exporte os datos da escena a un ficheiro que poderás importar máis tarde.",disk_button:"Gardar nun ficheiro",link_title:"Ligazón para compartir",link_details:"Exportar como unha ligazón de só lectura.",link_button:"Exportar a unha ligazón",excalidrawplus_description:"Garde a escena no seu espazo de traballo en Excalidraw+.",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"Non se puido exportar a Excalidraw+ neste momento..."},m={blog:"Le o noso blog",click:"clic",deepSelect:"Selección en profundidade",deepBoxSelect:"Selección en profundidade dentro da caixa, evitando o arrastre",curvedArrow:"Frecha curva",curvedLine:"Liña curva",documentation:"Documentación",doubleClick:"dobre-clic",drag:"arrastrar",editor:"Editor",editLineArrowPoints:"",editText:"",github:"Encontrou un problema? Envíeo",howto:"Sigue as nosas normas",or:"ou",preventBinding:"Evitar a unión de frechas",tools:"Ferramentas",shortcuts:"Atallos de teclado",textFinish:"Rematar de editar (editor de texto)",textNewLine:"Engadir unha nova liña (editor de texto)",title:"Axuda",view:"Vista",zoomToFit:"Zoom que se axuste a todos os elementos",zoomToSelection:"Zoom á selección",toggleElementLock:"Bloquear/desbloquear selección",movePageUpDown:"Mover páxina cara enriba/abaixo",movePageLeftRight:"Mover páxina cara a esquerda/dereita"},b={title:"Limpar lenzo"},g={title:"Publicar biblioteca",itemName:"Nome do elemento",authorName:"Nome do autor",githubUsername:"Nome de usuario en Github",twitterUsername:"Nome de usuario en Twitter",libraryName:"Nome da biblioteca",libraryDesc:"Descrición da biblioteca",website:"Páxina web",placeholder:{authorName:"O seu nome ou nome de usuario",libraryName:"Nome da súa biblioteca",libraryDesc:"Descrición da súa biblioteca para axudar a xente a entender o seu uso",githubHandle:"Nome de usuario de GitHub (opcional), así poderás editar a biblioteca unha vez enviada para a súa revisión",twitterHandle:"Nome de usuario en Twitter(opcional), así sabemos a quen darlle crédito cando se lle de promoción a través de Twitter",website:"Ligazón ao teu sitio web persoal ou a outro sitio (opcional)"},errors:{required:"Obrigatorio",website:"Introduza unha URL válida"},noteDescription:"Envíe a súa biblioteca para que sexa incluída no repositorio público de bibliotecaspara que outra xente a poida usar nos seus debuxos.",noteGuidelines:"A biblioteca necesita ser aprobada manualmente primeiro. Por favor, lea as normas antes de ser enviado. Necesitarás unha conta de GitHub para comunicarte ou facer cambios se se solicitan, pero non é estritamente necesario.",noteLicense:"Ao enviar, estás de acordo con que a biblioteca sexa publicada baixo a Licenza MIT, o cal significa que, en resumo, calquera pode usalo sen restricións.",noteItems:"Cada elemento da biblioteca debe ter o seu nome propio para que se poida filtrar. Os seguintes elementos da biblioteca serán incluídos:",atleastOneLibItem:"Por favor seleccione polo menos un elemento da biblioteca para comezar",republishWarning:"Nota: algúns dos elementos seleccionados están marcados como xa publicados/enviados. Só deberías reenviar elementos cando se actualice unha biblioteca ou envío."},x={title:"Biblioteca enviada",content:"Grazas {{authorName}}. A súa biblioteca foi enviada para ser revisada. Pode seguir o estadoaquí"},v={resetLibrary:"Restablecer biblioteca",removeItemsFromLib:"Eliminar os elementos seleccionados da biblioteca"},h={header:"Exportar imaxe",label:{withBackground:"Fondo",onlySelected:"",darkMode:"Modo escuro",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"Exportar a PNG",exportToSvg:"Exportar a SVG",copyPngToClipboard:"Copiar PNG ao portapapeis"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiar ao portapapeis"}},E={tooltip:"Os teus debuxos están cifrados de punto a punto, polo que os servidores de Excalidraw nunca os verán.",link:"Entrada do blog acerca do cifrado de punto a punto en Excalidraw"},f={angle:"Ángulo",element:"Elemento",elements:"Elementos",height:"Alto",scene:"Escena",selected:"Seleccionado",storage:"Almacenamento",title:"Estadísticas para nerds",total:"Total",version:"Versión",versionCopy:"Faga clic para copiar",versionNotAvailable:"Versión non dispoñible",width:"Ancho"},S={addedToLibrary:"Engadido á biblioteca",copyStyles:"Estilos copiados.",copyToClipboard:"Copiado ao portapapeis.",copyToClipboardAsPng:`Copiar {{exportSelection}} ao portapapeis como PNG -({{exportColorScheme}})`,fileSaved:"Ficheiro gardado.",fileSavedToFilename:"Gardado en {filename}",canvas:"lenzo",selection:"selección",pasteAsSingleElement:`Usa {{shortcut}} para pegar como un único elemento -ou pega nun editor de texto existente`,unableToEmbed:"",unrecognizedLinkFormat:""},C={transparent:"Transparente",black:"Negro",white:"Branco",red:"Vermello",pink:"Rosa",grape:"Uva",violet:"Violeta",gray:"Gris",blue:"Azul",cyan:"",teal:"",green:"Verde",yellow:"Marelo",orange:"Laranxa",bronze:"Bronce"},y={app:{center_heading:"Toda a información é gardada de maneira local no seu navegador.",center_heading_plus:"Queres ir a Excalidraw+ no seu lugar?",menuHint:"Exportar, preferencias, idiomas, ..."},defaults:{menuHint:"Exportar, preferencias, e máis...",center_heading:"Diagramas. Feito. Sinxelo.",toolbarHint:"Escolle unha ferramenta & Comeza a debuxar!",helpHint:"Atallos & axuda"}},z={mostUsedCustomColors:"",colors:"Cores",shades:"",hexCode:"",noShades:""},w={action:{exportToImage:{title:"Exportar como imaxe",button:"Exportar como imaxe",description:""},saveToDisk:{title:"Gardar no disco",button:"Gardar no disco",description:""},excalidrawPlus:{title:"Excalidraw+",button:"Exportar a Excalidraw+",description:""}},modal:{loadFromFile:{title:"Cargar dende arquivo",button:"Cargar dende arquivo",description:""},shareableLink:{title:"Cargar dende un enlace",button:"Substituír o meu contido",description:""}}},T={title:"",button:"",description:"",syntax:"",preview:""},P={labels:e,library:a,buttons:o,alerts:r,errors:i,toolBar:n,headings:t,hints:s,canvasError:l,errorSplash:d,roomDialog:c,errorDialog:u,exportDialog:p,helpDialog:m,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:x,confirmDialog:v,imageExportDialog:h,encrypted:E,stats:f,toast:S,colors:C,welcomeScreen:y,colorPicker:z,overwriteConfirm:w,mermaid:T};export{r as alerts,o as buttons,l as canvasError,b as clearCanvasDialog,z as colorPicker,C as colors,v as confirmDialog,P as default,E as encrypted,u as errorDialog,d as errorSplash,i as errors,p as exportDialog,t as headings,m as helpDialog,s as hints,h as imageExportDialog,e as labels,a as library,T as mermaid,w as overwriteConfirm,g as publishDialog,x as publishSuccessDialog,c as roomDialog,f as stats,S as toast,n as toolBar,y as welcomeScreen}; -//# sourceMappingURL=gl-ES.json--WW2Ul2N.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js.map b/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js.map deleted file mode 100644 index c06db39..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/gl-ES.json--WW2Ul2N.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"gl-ES.json--WW2Ul2N.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js b/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js deleted file mode 100644 index 2e9bacf..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"הדבק",pasteAsPlaintext:"הדבק ללא עיצוב",pasteCharts:"הדבק גרפים",selectAll:"בחר הכל",multiSelect:"הוסף רכיב לבחירה",moveCanvas:"הזז את הקנבס",cut:"גזור",copy:"העתק",copyAsPng:"העתק ללוח כ PNG",copyAsSvg:"העתק ללוח כ SVG",copyText:"העתק ללוח כטקסט",copySource:"",convertToCode:"",bringForward:"הבא שכבה קדימה",sendToBack:"שלח אחורה",bringToFront:"העבר לחזית",sendBackward:"העבר שכבה אחורה",delete:"מחק",copyStyles:"העתק סגנון",pasteStyles:"הדבק סגנון",stroke:"קו מתאר",background:"רקע",fill:"מילוי",strokeWidth:"עובי קו מתאר",strokeStyle:"סגנון קו המתאר",strokeStyle_solid:"מלא",strokeStyle_dashed:"מקווקו",strokeStyle_dotted:"מנוקד",sloppiness:"רישול",opacity:"אטימות",textAlign:"יישור טקסט",edges:"קצוות",sharp:"חד",round:"עגול",arrowheads:"ראשי חצים",arrowhead_none:"ללא",arrowhead_arrow:"חץ",arrowhead_bar:"קצה אנכי",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"משולש",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"גודל גופן",fontFamily:"גופן",addWatermark:'הוסף "נוצר באמצעות Excalidraw"',handDrawn:"ציור יד",normal:"רגיל",code:"קוד",small:"קטן",medium:"בינוני",large:"גדול",veryLarge:"גדול מאוד",solid:"מוצק",hachure:"קווים מקבילים קצרים להצגת כיוון וחדות שיפוע במפה",zigzag:"זיגזג",crossHatch:"קווים מוצלבים שתי וערב",thin:"דק",bold:"מודגש",left:"שמאל",center:"מרכז",right:"ימין",extraBold:"מודגש במיוחד",architect:"ארכיטקט",artist:"אמן",cartoonist:"קריקטוריסט",fileTitle:"שם קובץ",colorPicker:"בוחר צבעים",canvasColors:"בשימוש בקנבס",canvasBackground:"רקע קנבס",drawingCanvas:"קנבס ציור",layers:"שכבות",actions:"פעולות",language:"שפה",liveCollaboration:"התחל שיתוף חי...",duplicateSelection:"שכפל",untitled:"ללא כותרת",name:"שם",yourName:"שמך",madeWithExcalidraw:"נוצר באמצעות Excalidraw",group:"קבץ",ungroup:"פרק קבוצה",collaborators:"שותפים",showGrid:"הצג רשת",addToLibrary:"הוסף לספריה",removeFromLibrary:"הסר מספריה",libraryLoadingMessage:"טוען ספריה…",libraries:"עיין בספריות",loadingScene:"טוען תצוגה…",align:"יישר",alignTop:"יישר למעלה",alignBottom:"יישר למטה",alignLeft:"יישר לשמאל",alignRight:"יישר לימין",centerVertically:"מרכז אנכית",centerHorizontally:"מרכז אופקית",distributeHorizontally:"חלוקה אופקית",distributeVertically:"חלוקה אנכית",flipHorizontal:"הפוך אופקית",flipVertical:"הפוך אנכית",viewMode:"מצב תצוגה",share:"שתף",showStroke:"הצג בוחר צבע מברשת",showBackground:"הצג בוחר צבע רקע",toggleTheme:"שינוי ערכת העיצוב",personalLib:"ספריה פרטית",excalidrawLib:"הספריה של Excalidraw",decreaseFontSize:"הקטן את גודל הגופן",increaseFontSize:"הגדל את גודל הגופן",unbindText:"ביטול קיבוע הטקסט",bindText:"קיבוע הטקסט למיכל",createContainerFromText:"ארוז טקסט במיכל",link:{edit:"עריכת קישור",editEmbed:"ערוך קישור ושבץ",create:"יצירת קישור",createEmbed:"צור קישור ושבץ",label:"קישור",labelEmbed:"קשר ושבץ",empty:"לא נקבע קישור"},lineEditor:{edit:"ערוך קו",exit:"צא מעורך הקו"},elementLock:{lock:"נעילה",unlock:"ביטול נעילה",lockAll:"לנעול הכל",unlockAll:"שחרור הכול"},statusPublished:"פורסם",sidebarLock:"שמור את סרגל הצד פתוח",selectAllElementsInFrame:"בחר את כל האלמנטים במסגרת",removeAllElementsFromFrame:"הסר את כל האלמנטים שבמסגרת",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"עוד לא הוספת דברים...",hint_emptyLibrary:"בחר משהו בקנבס כדי להוסיף אותו לכאן, או שתתקין ספריה מהספריה הציבורית מטה.",hint_emptyPrivateLibrary:"בחר משהו בקנבס כדי להוסיף אותו לכאן."},t={clearReset:"אפס את הקנבאס",exportJSON:"ייצא לקובץ",exportImage:"ייצוא התמונה...",export:"שמור ל...",copyToClipboard:"העתק ללוח",save:"שמור לקובץ נוכחי",saveAs:"שמירה בשם",load:"פתח",getShareableLink:"קבל קישור לשיתוף",close:"סגור",selectLanguage:"בחר שפה",scrollBackToContent:"גלול בחזרה לתוכן",zoomIn:"הגדל",zoomOut:"הקטן",resetZoom:"איפוס זום",menu:"תפריט",done:"בוצע",edit:"ערוך",undo:"בטל",redo:"בצע מחדש",resetLibrary:"איפוס ספריה",createNewRoom:"צור חדר חדש",fullScreen:"מסך מלא",darkMode:"מצב כהה",lightMode:"מצב בהיר",zenMode:"מצב זן",objectsSnapMode:"",exitZenMode:"צא ממצב זן",cancel:"ביטול",clear:"ניקוי",remove:"הסר",embed:"",publishLibrary:"פרסום",submit:"שליחה",confirm:"אשר",embeddableInteractionButton:""},r={clearReset:"פעולה זו תנקה את כל הקנבס. אתה בטוח?",couldNotCreateShareableLink:"יצירת קישור לשיתוף נכשל.",couldNotCreateShareableLinkTooBig:"יצירת קישור לשיתוף נכשל: התצוגה גדולה מדי",couldNotLoadInvalidFile:"טעינת קובץ לא תקין נכשלה",importBackendFailed:"ייבוא מהשרת נכשל.",cannotExportEmptyCanvas:"לא ניתן לייצא קנבאס ריק.",couldNotCopyToClipboard:"לא ניתן היה להעתיק ללוח.",decryptFailed:"פיענוח ההצפנה של המידע נכשל.",uploadedSecurly:"ההעלאה אובטחה באמצעות הצפנה מקצה לקצה, פירוש הדבר שהשרת של Excalidraw וגורמי צד ג׳ לא יכולים לקרוא את התוכן.",loadSceneOverridePrompt:"טעינה של ציור חיצוני תחליף את התוכן הקיים שלך. האם תרצה להמשיך?",collabStopOverridePrompt:`עצירת השיתוף תוביל למחיקת הציור הקודם ששמור מקומית בדפדפן. האם אתה בטוח? - -(אם תרצה לשמור את הציור המקומי, סגור את הטאב של הדפדפן במקום.)`,errorAddingToLibrary:"לא ניתן להוסיף פריט לספרייה",errorRemovingFromLibrary:"לא ניתן להסיר פריט מהספריה",confirmAddLibrary:"זה יוסיף {{numShapes}} צורה(ות) לספריה שלך. האם אתה בטוח?",imageDoesNotContainScene:"נראה שהתמונה לא מכילה מידע על הסצינה. האם אפשרת הטמעת מידע הסצינה בעת השמירה?",cannotRestoreFromImage:"לא הצלחנו לשחזר את הסצנה מקובץ התמונה",invalidSceneUrl:"ייבוא מידע סצנה מהקישור שסופק כשל. או שהוא משובש, או שאינו מכיל מידע של Excalidraw בפורמט JSON.",resetLibrary:"פעולה זו תנקה את כל הספריה שלך. אתה בטוח?",removeItemsFromsLibrary:"מחק {{count}} פריט(ים) מהספריה?",invalidEncryptionKey:"מפתח ההצפנה חייב להיות בן 22 תוים. השיתוף החי מנוטרל.",collabOfflineWarning:`אין חיבור זמין לאינטרנט. -השינויים שלך לא ישמרו!`},a={unsupportedFileType:"סוג הקובץ אינו נתמך.",imageInsertError:"לא ניתן היה להוסיף את התמונה. אנא נסה שוב מאוחר יותר...",fileTooBig:"הקובץ גדול מדי. הגודל המירבי המותר הינו {{maxSize}}.",svgImageInsertError:"לא ניתן היה להוסיף את תמונת ה-SVG. הסימונים בתוך קובץ ה-SVG עשויים להיות שגויים.",failedToFetchImage:"",invalidSVGString:"SVG שגוי.",cannotResolveCollabServer:"לא הצלחתי להתחבר לשרת השיתוף. אנא רענן את הדף ונסה שוב.",importLibraryError:"לא ניתן היה לטעון את הספריה",collabSaveFailed:"לא הצלחתי להתחבר למסד הנתונים האחורי. אם הבעיה ממשיכה, כדאי שתשמור את הקובץ מקומית כדי לוודא שלא תאבד את העבודה שלך.",collabSaveFailed_sizeExceeded:"לא הצלחתי לשמור למסד הנתונים האחורי, נראה שהקנבס שלך גדול מדי. כדאי שתשמור את הקובץ מקומית כדי לוודא שלא תאבד את העבודה שלך.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"בחירה",image:"הוספת תמונה",rectangle:"מלבן",diamond:"יהלום",ellipse:"אליפסה",arrow:"חץ",line:"קו",freedraw:"צייר",text:"טקסט",library:"ספריה",lock:"השאר את הכלי הנבחר פעיל גם לאחר סיום הציור",penMode:"מצב עט - מנע נגיעה",link:"הוספה/עדכון קישור של הצורה שנבחרה",eraser:"מחק",frame:"",magicframe:"",embeddable:"",laser:"",hand:"יד (כלי הזזה)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"פעולות קנבאס",selectedShapeActions:"פעולות על הצורות שנבחרו",shapes:"צורות"},n={canvasPanning:"כדי להזיז את הקנבס, החזק את גלגל העכבר לחוץ או את מקש הרווח לחוץ תוך כדי גרירה, או השתמש בכלי היד",linearElement:"לחץ להתחלת מספר נקודות, גרור לקו יחיד",freeDraw:"לחץ וגרור, שחרר כשסיימת",text:"טיפ: אפשר להוסיף טקסט על ידי לחיצה כפולה בכל מקום עם כלי הבחירה",embeddable:"",text_selected:"לחץ לחיצה כפולה או הקש על אנטר לעריכת הטקסט",text_editing:"כדי לסיים את העריכה לחץ על מקש Escape או על Ctrl (Cmd במחשבי אפל) ומקש Enter",linearElementMulti:"הקלק על הנקודה האחרונה או הקש Escape או Enter לסיום",lockAngle:"ניתן להגביל את הזוויות על ידי החזקה של מקש ה- SHIFT",resize:`ניתן להגביל פרופורציות על ידי לחיצה על SHIFT תוך כדי שינוי גודל, -החזק ALT בשביל לשנות גודל ביחס למרכז`,resizeImage:`אתה יכול לשנות את הגודל בחופשיות על ידי החזקת מקש SHIFT, -החזק את מקש ALT כדי לבצע שינוי גודל מהמרכז`,rotate:"ניתן להגביל זוויות על ידי לחיצה על SHIFT תוך כדי סיבוב",lineEditor_info:"החזק Ctrl / Cmd ובצע לחיצה כפולה או לחץ Ctrl / Cmd + Enter לעריכת נקודות",lineEditor_pointSelected:`לחץ Delete למחיקת נקודה/ות, -Ctrl / Cmd + D לשכפול, או גרור להזזה`,lineEditor_nothingSelected:`בחר נקודה כדי לערוך (החזק SHIFT לבחירת כמה), -או החזק Alt והקלק להוספת נקודות חדשות`,placeImage:"הקלק להנחת התמונה, או הקלק וגרור להגדרת הגודל שלו ידנית",publishLibrary:"פרסם ספריה משלך",bindTextToElement:"הקש Enter כדי להוספת טקסט",deepBoxSelect:"החזק Ctrl / Cmd לבחירה עמוקה ולמניעת גרירה",eraserRevert:"החזק Alt להחזרת רכיבים מסומנים למחיקה",firefox_clipboard_write:'יכולות זה ניתנת להפעלה על ידי שינוי הדגל של "dom.events.asyncClipboard.clipboardItem" למצב "true". כדי לשנות את הדגל בדפדפן Firefox, בקר בעמוד ״about:config״.',disableSnapping:""},s={cannotShowPreview:"לא ניתן להראות תצוגה מקדימה",canvasTooBig:"הקנבס עלול להיות גדול מדי.",canvasTooBigTip:"טיפ: נסה להזיז את הרכיבים הרחוקים ביותר מעט קרוב יותר האחד לשני."},c={headingMain:"",clearCanvasMessage:"אם טעינה מחדש לא עובדת, נסה ",clearCanvasCaveat:" זה יגרום לאובדן העבודה ",trackedToSentry:"",openIssueMessage:"",sceneContent:"תוכן הקנבאס:"},d={desc_intro:"אתה יכול להזמין אנשים לקנבאס הנוכחי שלך לעבודה משותפת.",desc_privacy:"אל דאגה, השיתוף מוצפן מקצה לקצה, כך שכל מה שתצייר ישאר פרטי. אפילו השרתים שלנו לא יוכלו לראות את מה שאתה ממציא.",button_startSession:"התחל שיתוף",button_stopSession:"הפסק שיתוף",desc_inProgressIntro:"שיתוף חי פעיל כרגע.",desc_shareLink:"שתף את הקישור עם כל מי שאתה מעוניין לעבוד אתו:",desc_exitSession:"עצירת השיתוף תנתק אותך מהחדר, אבל עדיין תוכל להמשיך לעבוד על הקנבאס, מקומית. שים לב שזה לא ישפיע על אנשים אחרים, והם עדיין יוכלו לבצע שיתוף עם הגרסה שלהם.",shareTitle:"הצטרף לשיתוף לעבודה משותפת חיה, בזמן אמת, על גבי Excalidraw"},m={title:"שגיאה"},p={disk_title:"שמור לכונן",disk_details:"ייצא מידע של הקנבאס לקובץ שתוכל לייבא אחר כך.",disk_button:"שמירה לקובץ",link_title:"קבל קישור לשיתוף",link_details:"ייצוא כקישור לקריאה בלבד.",link_button:"ייצוא לקישור",excalidrawplus_description:"שמור את הקנבאס לסביבת העבודה שלך ב- +Excalidraw.",excalidrawplus_button:"ייצוא",excalidrawplus_exportError:"לא הצלחתי לייצא ל- +Excalidraw כרגע..."},g={blog:"קרא את הבלוג שלנו",click:"קליק",deepSelect:"בחירה עמוקה",deepBoxSelect:"בחירה עמוקה בתוך קופסה ומניעת גרירה",curvedArrow:"חץ מעוגל",curvedLine:"קו מעוגל",documentation:"תיעוד",doubleClick:"לחיצה כפולה",drag:"גרור",editor:"עורך",editLineArrowPoints:"",editText:"",github:"מצאת בעיה? דווח",howto:"עקוב אחר המדריכים שלנו",or:"או",preventBinding:"למנוע נעיצת חיצים",tools:"כלים",shortcuts:"קיצורי מקלדת",textFinish:"סיים עריכה (עורך טקסט)",textNewLine:"הוסף שורה חדשה (עורך טקסט)",title:"עזרה",view:"תצוגה",zoomToFit:"זום להתאמת כל האלמנטים למסך",zoomToSelection:"התמקד בבחירה",toggleElementLock:"נעילה/ביטול הנעילה של הרכיבים הנבחרים",movePageUpDown:"זוז עמוד למעלה/למטה",movePageLeftRight:"זוז עמוד שמאלה/ימינה"},b={title:"ניקוי הקנבס"},u={title:"פרסם ספריה",itemName:"שם הפריט",authorName:"שם היוצר",githubUsername:"שם המשתמש שלך ב-GitHub",twitterUsername:"שם המשתמש שלך ב-Twitter",libraryName:"שם הספריה",libraryDesc:"תיאור הספריה",website:"אתר",placeholder:{authorName:"שמך או שם המשתמש שלך",libraryName:"תנו שם לספריה",libraryDesc:"תיאור של הספריה שלך כדי לסייע למשתמשים להבין את השימוש בה",githubHandle:"כינוי GitHub (לא חובה), כדי שתוכל לערוך את הספרית לאחר שנשלחה לבדיקה",twitterHandle:"שם משתמש טוויטר (לא חובה), כדי שנדע למי לתת קרדיט כשאנחנו מפרסמים בטוויטר",website:"קישור לאתר הפרטי שלך או לכל מקום אחר (אופציונאלי)"},errors:{required:"נדרש",website:"הזינו כתובת URL תקינה"},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"לכל פריט בסיפריה חייב להיות שם כדי שאפשר יהיה לסנן. הפריטי סיפריה הבאים יהיו כלולים:",atleastOneLibItem:"אנא בחר לפחות פריט אחד מספריה כדי להתחיל",republishWarning:"הערה: חלק מהפריטים שבחרת מסומנים ככאלו שכבר פורסמו/נשלחו. אתה צריך לשלוח פריטים מחדש כאשר אתה מעדכן ספריה או הגשה קיימים."},h={title:"הספריה הוגשה",content:"תודה {{authorName}}. הספריה שלך נשלחה לבחינה. תוכל לעקוב אחרי סטטוס הפרסום"},y={resetLibrary:"איפוס ספריה",removeItemsFromLib:"הסר את הפריטים הנבחרים מהספריה"},S={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},v={tooltip:"הציורים שלך מוצפנים מקצה לקצה כך שהשרתים של Excalidraw לא יראו אותם לעולם.",link:"פוסט בבלוג על הצפנה מקצה לקצב ב-Excalidraw"},w={angle:"זווית",element:"רכיב",elements:"רכיבים",height:"גובה",scene:"תצוגה",selected:"נבחר",storage:"אחסון",title:"סטטיסטיקות לחנונים",total:"סה״כ",version:"גרסה",versionCopy:"לחץ להעתקה",versionNotAvailable:"הגרסה אינה זמינה",width:"רוחב"},x={addedToLibrary:"נוסף לספריה",copyStyles:"סגנונות הועתקו.",copyToClipboard:"הועתק ללוח.",copyToClipboardAsPng:`{{exportSelection}} הועתקה ללוח כ-PNG -({{exportColorScheme}})`,fileSaved:"קובץ נשמר.",fileSavedToFilename:"נשמר לקובץ {filename}",canvas:"קנבאס",selection:"בחירה",pasteAsSingleElement:`השתמש ב- {{shortcut}} כדי להדביק כפריט יחיד, -או הדבק לתוך עורך טקסט קיים`,unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"שקוף",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},k={app:{center_heading:"כל המידע שלח נשמר מקומית בדפדפן.",center_heading_plus:"אתה רוצה ללכת אל Excalidraw+ במקום?",menuHint:"ייצוא, העדפות, שפות, ..."},defaults:{menuHint:"ייצוא, העדפות, ועוד...",center_heading:"איורים. נעשים. פשוטים.",toolbarHint:"בחר כלי & והתחל לצייר!",helpHint:"קיצורים & עזרה"}},E={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},_={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:T,welcomeScreen:k,colorPicker:E,overwriteConfirm:_,mermaid:C};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,E as colorPicker,T as colors,y as confirmDialog,L as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,l as headings,g as helpDialog,n as hints,S as imageExportDialog,e as labels,o as library,C as mermaid,_ as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,k as welcomeScreen}; -//# sourceMappingURL=he-IL.json-4DiMSwaz.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js.map b/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js.map deleted file mode 100644 index da9686a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/he-IL.json-4DiMSwaz.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"he-IL.json-4DiMSwaz.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js b/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js deleted file mode 100644 index 5792e9d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js +++ /dev/null @@ -1,5 +0,0 @@ -const e={paste:"चिपकाएँ",pasteAsPlaintext:"सादे पाठ के रूप में चिपकाएं",pasteCharts:"चार्ट चिपकाएँ",selectAll:"सभी चुनें",multiSelect:"आकार को चयन में जोड़ें",moveCanvas:"कैनवास को स्थानांतरित करें",cut:"काटें",copy:"प्रतिलिपि",copyAsPng:"क्लिपबोर्ड पर कॉपी करें ,पीएनजी के रूप में",copyAsSvg:"क्लिपबोर्ड पर कॉपी करें,एसवीजी के रूप में",copyText:"लेखन के रूप में पटल पर कॉपी करें",copySource:"स्त्रोत को प्रति-फलक पे प्रतिलिपित करे.",convertToCode:"सांकेतिक लिपि में परिवर्तित करे",bringForward:"सामने लाएं",sendToBack:"पीछे भेजें",bringToFront:"सामने लाएँ",sendBackward:"पीचे भीजे",delete:"मिटाए",copyStyles:"कॉपी स्टाइल",pasteStyles:"स्टाइल पेस्ट करें",stroke:"रेखा",background:"पृष्ठभूमि",fill:"भरें",strokeWidth:"रेखा की चौड़ाई",strokeStyle:"स्ट्रोक का आकार",strokeStyle_solid:"ठोस",strokeStyle_dashed:"डैश",strokeStyle_dotted:"बिंदीदार",sloppiness:"बेढ़ंगापन",opacity:"अपारदर्शिता",textAlign:"टेक्स्ट संरेखन",edges:"किनारा",sharp:"नुकीला",round:"गोल",arrowheads:"तीर शीर्ष",arrowhead_none:"कोई भी नहीं",arrowhead_arrow:"तीर",arrowhead_bar:"बार",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"त्रिकोण",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"फ़ॉन्ट का आकार",fontFamily:"फ़ॉन्ट का परिवार",addWatermark:'ऐड "मेड विथ एक्सकैलिडराव"',handDrawn:"हाथ से बनाया हुआ",normal:"साधारण",code:"कोड",small:"छोटा",medium:"मध्यम",large:"बड़ा",veryLarge:"बहुत बड़ा",solid:"दृढ़",hachure:"हैशूर",zigzag:"तेढ़ी मेढ़ी",crossHatch:"क्रॉस हैच",thin:"पतला",bold:"मोटा",left:"बाएं",center:"मध्य",right:"दाएँ",extraBold:"बहुत मोटा",architect:"वास्तुकार",artist:"कलाकार",cartoonist:"व्यंग्य चित्रकार",fileTitle:"फ़ाइल का नाम",colorPicker:"रंग चयन",canvasColors:"कॅनवास पर प्रयोगित",canvasBackground:"कैनवास बैकग्राउंड",drawingCanvas:"कैनवास बना रहे हैं",layers:"परतें",actions:"कार्रवाई",language:"भाषा",liveCollaboration:"जीवंत सहयोग...",duplicateSelection:"डुप्लिकेट",untitled:"अशीर्षित",name:"नाम",yourName:"आपका नाम",madeWithExcalidraw:"मेड विथ एक्सकैलिडराव",group:"समूह चयन",ungroup:"समूह चयन असमूहीकृत करें",collaborators:"सहयोगी",showGrid:"ग्रिड दिखाएं",addToLibrary:"लाइब्रेरी से जोड़ें",removeFromLibrary:"लाइब्रेरी से निकालें",libraryLoadingMessage:"लाइब्रेरी खुल रही है",libraries:"लाइब्रेरी ब्राउज़ करें",loadingScene:"दृश्य खुल रहा है",align:"संरेखित करें",alignTop:"ऊपर संरेखित करें",alignBottom:"नीचे संरेखित करें",alignLeft:"बायें संरेखित करें",alignRight:"दायें संरेखित करें",centerVertically:"लंबवत केन्द्रित",centerHorizontally:"क्षैतिज केन्द्रित",distributeHorizontally:"क्षैतिज रूप से वितरित करें",distributeVertically:"खड़ी रूप से वितरित करें",flipHorizontal:"दायें बायें पलटे",flipVertical:"ऊपर नीचे पलटे",viewMode:"अलग अलग देखें",share:"शेयर करें",showStroke:"",showBackground:"पृष्ठभूमि रंग वरक़ दिखाये",toggleTheme:"",personalLib:"वैयक्तिक समूहकोष",excalidrawLib:"एक्सकेलीड्रॉ समूहकोष",decreaseFontSize:"आकार घटाइऐ",increaseFontSize:"फ़ॉन्ट आकार बढ़ाएँ",unbindText:"लिपि को बंधमुक्त करें",bindText:"लेखन को कोश से जोड़े",createContainerFromText:"मूलपाठ कंटेनर में मोड के दिखाए",link:{edit:"कड़ी संपादित करे",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"रेखा संपादित करे",exit:"रेखा संपादक के बाहर"},elementLock:{lock:"ताले में रखें",unlock:"ताले से बाहर",lockAll:"सब ताले के अंदर रखे",unlockAll:"सब ताले के बाहर निकाले"},statusPublished:"प्रकाशित",sidebarLock:"साइडबार खुला रखे.",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"चित्रफलक से रंग चुने",textToDiagram:"",prompt:""},o={noItems:"अभी तक कोई आइटम जोडा नहीं गया.",hint_emptyLibrary:"यहाँ जोड़ने के लिए पटल से एक वस्तु चुने, अथवा जन कोष से एक संग्रह नीचे स्थापित करें.",hint_emptyPrivateLibrary:"यहाँ जोड़ने के लिए पटल से एक वस्तु चुने."},t={clearReset:"कैनवास रीसेट करें",exportJSON:"",exportImage:"प्रतिमा निर्यात करे...",export:"यंहा सुरक्षित करे...",copyToClipboard:"क्लिपबोर्ड पर प्रतिलिपि बनाएँ",save:"",saveAs:"सेव करे इस तरह",load:"खोलें",getShareableLink:"साझा करने योग्य लिंक प्राप्त करें",close:"बंद करें",selectLanguage:"भाषा चुनें",scrollBackToContent:"सामग्री पर वापस स्क्रॉल करें",zoomIn:"बड़ा करें",zoomOut:"छोटा करें",resetZoom:"ज़ूम रीसेट करें",menu:"मेन्यू",done:"समाप्त",edit:"संशोधन करें",undo:"पूर्ववत् करें",redo:"फिर से करें",resetLibrary:"",createNewRoom:"एक नया कमरा बनाएं",fullScreen:"पूरी स्क्रीन",darkMode:"डार्क मोड",lightMode:"लाइट मोड",zenMode:"ज़ेन मोड",objectsSnapMode:"वस्तुओं से पकड़े",exitZenMode:"जेन मोड से बाहर निकलें",cancel:"",clear:"साफ़ करे",remove:"हटाएं",embed:"",publishLibrary:"प्रकाशित करें",submit:"प्रस्तुत करे",confirm:"पुष्टि करें",embeddableInteractionButton:""},r={clearReset:"इससे पूरा कैनवास साफ हो जाएगा। क्या आपको यकीन है?",couldNotCreateShareableLink:"साझा करने योग्य लिंक नहीं बनाया जा सका।",couldNotCreateShareableLinkTooBig:"लिंक शेयर नहीं कर सकता: दृश्य बहुत बड़ा",couldNotLoadInvalidFile:"अमान्य फ़ाइल लोड नहीं की जा सकी",importBackendFailed:"बैकएंड से आयात करना विफल रहा।",cannotExportEmptyCanvas:"खाली कैनवास निर्यात नहीं कर सकता।",couldNotCopyToClipboard:"क्लिपबोर्ड पर कॉपी नहीं किया जा सका",decryptFailed:"डेटा को डिक्रिप्ट नहीं किया जा सका।",uploadedSecurly:"अपलोड को एंड-टू-एंड एन्क्रिप्शन के साथ सुरक्षित किया गया है, जिसका मतलब है कि एक्सक्लूसिव सर्वर और थर्ड पार्टी कंटेंट नहीं पढ़ सकते हैं।",loadSceneOverridePrompt:"लोड हो रहा है बाहरी ड्राइंग आपके मौजूदा सामग्री को बदल देगा। क्या आप जारी रखना चाहते हैं?",collabStopOverridePrompt:"चालू सत्र समाप्ति से आपका संग्रहित पूर्व स्थानीय अधिलेखन नष्ट होकर पुनः अधिलेखित होगा, क्या आपको यक़ीन हैं? ( यदी आपको पूर्व स्थापित अधिलेखन सुरक्षित चाहिये तो बस ब्राउज़र टैब बंद करे)",errorAddingToLibrary:"संग्रह में जोडा न जा सका",errorRemovingFromLibrary:"संग्रह से हटाया नहीं जा सका",confirmAddLibrary:"लाइब्रेरी जोड़ें पुष्‍टि करें आकार संख्या",imageDoesNotContainScene:"ऐसा लगता है कि इस छवि में कोई दृश्य डेटा नहीं है। क्या आपने निर्यात के दौरान दृश्य एम्बेडिंग अनुमतित की है?",cannotRestoreFromImage:"छवि फ़ाइल बहाल दृश्य नहीं है",invalidSceneUrl:"दिये गये युआरेल से दृश्य आयात नहीं किया जा सका. यह या तो अनुचित है, या इसमें उचित Excalidraw JSON डेटा नहीं है।",resetLibrary:"यह पूरा संग्रह रिक्त करेगा. क्या आपको यक़ीन हैं?",removeItemsFromsLibrary:"{{count}} वस्तु(यें) संग्रह से हटायें?",invalidEncryptionKey:"कूटलेखन कुंजी 22 अक्षरों की होनी चाहिये, इसलिये जीवंत सहयोग अक्षम हैं",collabOfflineWarning:`कोई इंटरनेट कनेक्शन उपलब्ध नहीं है। -आपके बदलाव सहेजे नहीं जाएंगे!`},a={unsupportedFileType:"असमर्थित फाइल प्रकार",imageInsertError:"छवि सम्मिलित नहीं की जा सकी. पुनः प्रयत्न करे...",fileTooBig:"फ़ाइल ज़रूरत से ज़्यादा बड़ी हैं. अधिकतम अनुमित परिमाण {{maxSize}} हैं",svgImageInsertError:"एसवीजी छवि सम्मिलित नहीं कर सके, एसवीजी रचना अनुचित हैं",failedToFetchImage:"",invalidSVGString:"अनुचित SVG",cannotResolveCollabServer:"कॉलेब सर्वर से कनेक्शन नहीं हो पा रहा. कृपया पृष्ठ को पुनः लाने का प्रयास करे.",importLibraryError:"संग्रह प्रतिष्ठापित नहीं किया जा सका",collabSaveFailed:"किसी कारण वश अंदरूनी डेटाबेस में सहेजा नहीं जा सका। यदि समस्या बनी रहती है, तो किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे।",collabSaveFailed_sizeExceeded:"लगता है कि पृष्ठ तल काफ़ी बड़ा है, इस्कारण अंदरूनी डेटाबेस में सहेजा नहीं जा सका। किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे।",imageToolNotSupported:"प्रतिमायें अक्षम की गयी हैं",brave_measure_text_error:{line1:"लगता है कि आप Brave ब्राउज़र का उपयोग कर रहे और साथ में आक्रामक उँगलियो के छाप का चयन किया हुवा है",line2:"यह आपके चित्रों के पाठ तत्वोंको खंडित कर सकता हैं",line3:"हमें आपसे ठोस आग्रह है की आप सेट्टिंग में इस विकल्प का चयन ना करे. इस अनुक्रम का पालन करके इसका पता लगा सकते हैं",line4:"यदि इस सेटिंग्स को अक्षम करने पर भी पृष्ठ ठीक नहीं दिखता हो तो, हमारे GitHub पर एक मुद्दा प्रस्तुत करे, या हमें डिस्कोर्ड पर लिखित सम्पर्क करें"},libraryElementTypeError:{embeddable:"",iframe:"आयफ़्रेम तत्व समूहकोष में जोडा नहीं जा सका.",image:""},asyncPasteFailedOnRead:"चिपकाया नहीं जा सका (सिस्टम क्लिपबोर्ड से पढ़ा नहीं जा सका).",asyncPasteFailedOnParse:"चिपकाया नहीं जा सका.",copyToSystemClipboardFailed:"क्लिपबोर्ड पर प्रतिलिपि नहीं बनाई जा सकी."},i={selection:"चयन",image:"छवि सम्मिलित करें",rectangle:"आयात",diamond:"तिर्यग्वर्ग",ellipse:"दीर्घवृत्त",arrow:"तीर",line:"रेखा",freedraw:"चित्रांतित करे",text:"पाठ",library:"लाइब्रेरी",lock:"ड्राइंग के बाद चयनित टूल को सक्रिय रखें",penMode:"पेन का मोड - स्पर्श टाले",link:"",eraser:"रबड़",frame:"",magicframe:"तारिक ढाँचें को सांकेतिक लिपि में",embeddable:"",laser:"लेसर टॉर्च",hand:"हाथ ( खिसकाने का औज़ार)",extraTools:"",mermaidToExcalidraw:"मर्मेड से एक्सकाली में",magicSettings:"कृतिम बुद्धिमत्ता सेटिंग्स"},n={canvasActions:"कैनवास क्रिया",selectedShapeActions:"चयनित आकृति क्रियाएं",shapes:"आकृतियाँ"},l={canvasPanning:"कैनवास को सरकाने के लिए, ड्रैग करते समय माउस व्हील को पकड़े रखे या स्पेसबार को दबाए रखे, अथवा हाथ वाले औज़ार का उपयोग करें",linearElement:"कई बिंदुओं को शुरू करने के लिए क्लिक करें, सिंगल लाइन के लिए खींचें",freeDraw:"क्लिक करें और खींचें। समाप्त करने के लिए, छोड़ो",text:"आप चयन टूल से कहीं भी डबल-क्लिक करके टेक्स्ट जोड़ सकते हैं",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"अंतिम बिंदु पर क्लिक करें या समाप्त होने के लिए एस्केप या एंटर दबाएं",lockAngle:"आप घूर्णन करते समय SHIFT पकड़कर कोणों को मोड़ सकते हैं",resize:`आकार बदलते समय आप SHIFT को पकड़ कर अनुपात में कमी कर सकते हैं, -केंद्र से आकार बदलने के लिए ALT दबाए रखें`,resizeImage:"",rotate:"आप घूर्णन करते समय SHIFT पकड़कर कोणों को विवश कर सकते हैं",lineEditor_info:"बिंदुओं को सम्पादित करने के लिए CtrlOrCmd को दबायें रखते हुये डबल क्लिक करे, अथवा CtrlOrCmd + Enter साथ दबाये",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"मिटाने के लिए चुने हुए चीजों को ना चुनने के लिए Alt साथ में दबाए",firefox_clipboard_write:'"dom.events.asyncClipboard.clipboardItem" फ़्लैग को "true" पर सेट करके इस सुविधा को संभवतः सक्षम किया जा सकता है। Firefox में ब्राउज़र फ़्लैग बदलने के लिए, "about:config" पृष्ठ पर जाएँ।',disableSnapping:"स्नैपिंग को निष्क्रिय करने के लिए CtrlOrCmd दबाए रखें"},s={cannotShowPreview:"पूर्वावलोकन नहीं दिखा सकते हैं",canvasTooBig:"कैनवास बहुत बड़ा",canvasTooBigTip:"कैनवास बहुत बड़ा टिप"},d={headingMain:"एक त्रुटि का सामना करना पड़ा। प्रयत्न ",clearCanvasMessage:"यदि पुनः लोड करना काम नहीं करता है, तो प्रयास करें ",clearCanvasCaveat:" इससे काम का नुकसान होगा ",trackedToSentry:"पहचानकर्ता के साथ त्रुटि {{eventId}} हमारे सिस्टम पर नज़र रखी गई थी।",openIssueMessage:"हम बहुत सतर्क थे कि त्रुटि पर आपकी दृश्य जानकारी शामिल न करें। यदि आपका दृश्य निजी नहीं है, तो कृपया हमारे बारे में विचार करें कृपया GitHub मुद्दे को कॉपी और पेस्ट करके नीचे दी गई जानकारी शामिल करें।",sceneContent:"दृश्य सामग्री:"},c={desc_intro:"आप अपने वर्तमान दृश्य के लोगों को अपने साथ सहयोग करने के लिए आमंत्रित कर सकते हैं।",desc_privacy:"चिंता न करें, सत्र अंत-से-अंत एन्क्रिप्शन का उपयोग करता है, इसलिए आप जो भी ड्रा करेंगे वह निजी रहेगा। यहां तक कि हमारा सर्वर भी नहीं देख पाएगा कि आप क्या कर रहे हैं।",button_startSession:"सत्र प्रारंभ करें",button_stopSession:"सत्र रुकें",desc_inProgressIntro:"लाइव सहयोग सत्र अब जारी है।",desc_shareLink:"इस लिंक को आप जिस किसी के साथ भी सहयोग करना चाहते हैं, उसके साथ साझा करें",desc_exitSession:"सत्र रोकना आपको रूम से बाहर कर देगा, लेकिन आप स्थानीय स्तर पर दृश्य के साथ काम करना जारी रख पाएंगे। ध्यान दें कि यह अन्य लोगों को प्रभावित नहीं करेगा, और वे अभी भी अपने संस्करण पर सहयोग करने में सक्षम होंगे।",shareTitle:""},b={title:"गलती"},m={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},p={blog:"हमारा ब्लॉग पढे",click:"क्लिक करें",deepSelect:"",deepBoxSelect:"",curvedArrow:"वक्र तीर",curvedLine:"वक्र रेखा",documentation:"",doubleClick:"",drag:"खींचें",editor:"संपादक",editLineArrowPoints:"रेखा/तीर बिंदु सम्पादित करे",editText:"पाठ्य सम्पादित करे/ लेबल जोड़े",github:"मुद्दा मिला? प्रस्तुत करें",howto:"हमारे गाइड का पालन करें",or:"या",preventBinding:"तीर बंधन रोकें",tools:"औज़ार",shortcuts:"कीबोर्ड के शॉर्टकट्स",textFinish:"",textNewLine:"",title:"मदद",view:"दृश्य",zoomToFit:"सभी तत्वों को फिट करने के लिए ज़ूम करें",zoomToSelection:"चयन तक ज़ूम करे",toggleElementLock:"ताले के अंदर/बाहर चुनाव",movePageUpDown:"पृष्ठ ऊपर/नीचे करे",movePageLeftRight:"पृष्ठ बायी/दायी तरफ करे"},g={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:"मान्य URL प्रविष्ट करें"},noteDescription:"संग्रह सम्मिलित करने हेतु प्रस्तुत करें सार्वजनिक संग्रहालयअन्य वक्तियों को उनके चित्रकारी में उपयोग के लिये",noteGuidelines:"संग्रह को पहले स्वीकृति आवश्यक कृपया यह पढ़ें दिशा-निर्देश",noteLicense:"जमा करके, आप सहमत हैं कि संग्रहण को MIT लाइसेंस के तहत प्रकाशित किया जाएगा, जिसका संक्षिप्त अर्थ है कि कोई भी बिना किसी प्रतिबंध के उनका उपयोग कर सकता है।",noteItems:"",atleastOneLibItem:"",republishWarning:"टिप्पणी: कुछ चुने हुवे आइटम पहले ही प्रकाशित/प्रस्तुत किए जा चुके हैं। किसी प्रकाशित संग्रह को अद्यतन करते समय या पहले से प्रस्तुत आइटम को पुन्हा प्रस्तुत करते समय, आप बस उसे केवल अद्यतन करें ।"},h={title:"",content:"{{authorName}} धन्यवाद. आपका संग्रहण समीक्षा के लिए दर्ज हो चुका है. समीक्षा स्थिति यहाँजान सकते हैं."},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"आपके चित्र अंत-से-अंत एन्क्रिप्टेड हैं, इसलिए एक्सक्लूसिव्रॉव के सर्वर उन्हें कभी नहीं देखेंगे।",link:""},k={angle:"कोण",element:"एलिमेंट",elements:"एलिमेंट",height:"ऊंचाई",scene:"दृश्य",selected:"चयनित",storage:"संग्रह",title:"बेवकूफ के लिए आँकड़े",total:"कुल",version:"संस्करण",versionCopy:"काॅपी करने के लिए क्लिक करें",versionNotAvailable:"संस्करण उपलब्ध नहीं है",width:"चौड़ाई"},w={addedToLibrary:"",copyStyles:"काॅपी कीए स्टाइल",copyToClipboard:"क्लिपबोर्ड में कॉपी कीए",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"",pasteAsSingleElement:`एक अवयव के रूप में चिपकाने के लिए {{shortcut}} का उपयोग करें, -या किसी मौजूदा पाठ संपादक में चिपकायें`,unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"",black:"काला",white:"सफ़ेद",red:"लाल",pink:"गुलाबी",grape:"अंगूरी",violet:"जामुनी",gray:"गहरा",blue:"नीला",cyan:"आसमानी",teal:"हरा-नीला",green:"हरा",yellow:"पीला",orange:"नारंगी",bronze:"कांस्य"},T={app:{center_heading:"आपका सर्व डेटा ब्राउज़र के भीतर स्थानिक जगह पे सुरक्षित किया गया.",center_heading_plus:"बजाय आपको Excalidraw+ पर जाना है?",menuHint:"निर्यात, पसंद, भाषायें, ..."},defaults:{menuHint:"निर्यात, पसंद, और भी...",center_heading:"चित्रांकन। बनाया गया। सरल।",toolbarHint:"एक औजार चुने और चित्रकारी प्रारंभ करे!",helpHint:"शॉर्ट्कट और सहाय्य"}},_={mostUsedCustomColors:"अधिकांश उपयोगित रंग",colors:"रंग",shades:"छाया",hexCode:"हेक्स कोड",noShades:"इस रंग की कोई छाया उपलब्ध नहीं हैं"},L={action:{exportToImage:{title:"छवि स्वरूप में निर्यात करे",button:"छवि स्वरूप निर्यात करे",description:"दृष्य डेटा छवि स्वरूप में निर्यात करे, उस स्वरूप से आप उसे पुनः आयात कर सकते हो"},saveToDisk:{title:"डिस्क में सम्हाले",button:"डिस्क में सम्हाले",description:"दृष्य डेटा बाहरी फ़ाइल में निर्यात करे, जहाँसे आप उसे पुनः आयात कर सकते हो"},excalidrawPlus:{title:"एक्षकालीड्रॉ+",button:"एक्षकालीड्रॉ+ में निर्यात करे",description:"दृष्य को आपके एक्षकालीड्रॉ+ के कर्यस्थल में सम्हाले"}},modal:{loadFromFile:{title:"फ़ाइल से लोड करें:",button:"फ़ाइल से लोड करें:",description:"फ़ाइल से लोड करने पर यह आपके कार्य की जगह लेलेगा

    आपकी ड्रॉइंग निम्न दर्शित विकल्पो में से एक चुनके और उपयोग करके सम्हाल सकते हैं"},shareableLink:{title:"लिंक से लोड करें:",button:"इस जगह प्रतिस्थापित करे",description:"बाहर का चित्र लोड करने पर यह आपके कार्य की जगह लेलेगा

    आप आपकी ड्रॉइंग पहले निम्न दर्शित विकल्पो में से एक चुनके और उपयोग करके सम्हाल सकते हों."}}},C={title:"मर्मेड से एक्सकाली में",button:"अंदर डाले",description:"",syntax:"मर्मेड संरचना नियम",preview:"पूर्वावलोकन"},f={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:b,exportDialog:m,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:k,toast:w,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:C};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,f as default,S as encrypted,b as errorDialog,d as errorSplash,a as errors,m as exportDialog,n as headings,p as helpDialog,l as hints,v as imageExportDialog,e as labels,o as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,k as stats,w as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=hi-IN.json-nhvtlCpV.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js.map b/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js.map deleted file mode 100644 index 6721c97..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/hi-IN.json-nhvtlCpV.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hi-IN.json-nhvtlCpV.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js b/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js deleted file mode 100644 index 7ba8e7d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js +++ /dev/null @@ -1,8 +0,0 @@ -const e={paste:"Beillesztés",pasteAsPlaintext:"Beillesztés formázatlan szövegként",pasteCharts:"Grafikon beillesztése",selectAll:"Összes kijelölése",multiSelect:"Elem hozzáadása a kijelöléshez",moveCanvas:"Vászon mozgatása",cut:"Kivágás",copy:"Másolás",copyAsPng:"Vágólapra másolás mint PNG",copyAsSvg:"Vágólapra másolás mint SVG",copyText:"Vágólapra másolás szövegként",copySource:"",convertToCode:"",bringForward:"Előrébb hozás",sendToBack:"Hátraküldés",bringToFront:"Előrehozás",sendBackward:"Hátrébb küldés",delete:"Törlés",copyStyles:"Stílus másolása",pasteStyles:"Stílus beillesztése",stroke:"Körvonal",background:"Háttér",fill:"Kitöltés",strokeWidth:"Körvonal vastagsága",strokeStyle:"Körvonal stílusa",strokeStyle_solid:"Kitöltött",strokeStyle_dashed:"Szaggatott",strokeStyle_dotted:"Pontozott",sloppiness:"Stílus",opacity:"Áttetszőség",textAlign:"Szöveg igazítása",edges:"Szélek",sharp:"Éles",round:"Kerek",arrowheads:"Nyílhegyek",arrowhead_none:"Nincs",arrowhead_arrow:"Nyíl",arrowhead_bar:"Oszlop",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Háromszög",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Betűméret",fontFamily:"Betűkészlet család",addWatermark:'Add hozzá, hogy "Excalidraw-val készült"',handDrawn:"Kézzel rajzolt",normal:"Normál",code:"Kód",small:"Kicsi",medium:"Közepes",large:"Nagy",veryLarge:"Nagyon nagy",solid:"Kitöltött",hachure:"Vonalkázott",zigzag:"Cikkcakk",crossHatch:"Keresztcsíkozott",thin:"Vékony",bold:"Félkövér",left:"Bal",center:"Közép",right:"Jobb",extraBold:"Extra Félkövér",architect:"Tervezői",artist:"Művészi",cartoonist:"Karikatúrás",fileTitle:"Fájlnév",colorPicker:"Színválasztó",canvasColors:"Rajzvászonon használt",canvasBackground:"Vászon háttérszíne",drawingCanvas:"Rajzvászon",layers:"Rétegek",actions:"Műveletek",language:"Nyelv",liveCollaboration:"Élő együttműködés...",duplicateSelection:"Duplikálás",untitled:"Névtelen",name:"Név",yourName:"Neved",madeWithExcalidraw:"Excalidraw-val készült",group:"Csoportosítás",ungroup:"Csoportbontás",collaborators:"Közreműködők",showGrid:"Rács megjelenítése",addToLibrary:"Hozzáadás a könyvtárhoz",removeFromLibrary:"Eltávólítás a könyvtárból",libraryLoadingMessage:"Könyvtár betöltése…",libraries:"Könyvtárak böngészése",loadingScene:"Jelenet betöltése…",align:"Igazítás",alignTop:"Felülre igazítás",alignBottom:"Alulra igazítás",alignLeft:"Balra igazítás",alignRight:"Jobbra igazítás",centerVertically:"Függőlegesen középre igazított",centerHorizontally:"Vízszintesen középre igazított",distributeHorizontally:"Vízszintes elosztás",distributeVertically:"Függőleges elosztás",flipHorizontal:"Vízszintes tükrözés",flipVertical:"Függőleges tükrözés",viewMode:"Nézet",share:"Megosztás",showStroke:"Körvonal színválasztó megjelenítése",showBackground:"Háttérszín-választó megjelenítése",toggleTheme:"Téma váltása",personalLib:"Személyes könyvtár",excalidrawLib:"Excalidraw könyvtár",decreaseFontSize:"Betűméret csökkentése",increaseFontSize:"Betűméret növelése",unbindText:"Szövegkötés feloldása",bindText:"",createContainerFromText:"Szöveg bekeretezése",link:{edit:"Hivatkozás szerkesztése",editEmbed:"Link szerkesztése / beágyazása",create:"Hivatkozás létrehozása",createEmbed:"Link létrehozása / beágyazása",label:"Hivatkozás",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"Rögzítés",unlock:"Rögzítés feloldása",lockAll:"Összes rögzítése",unlockAll:"Összes feloldása"},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},t={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},a={clearReset:"Vászon törlése",exportJSON:"Exportálás fájlba",exportImage:"Kép exportálása...",export:"Mentés másként...",copyToClipboard:"Vágólapra másolás",save:"Mentés az aktuális fájlba",saveAs:"Mentés másként",load:"Megnyitás",getShareableLink:"Megosztható link létrehozása",close:"Bezárás",selectLanguage:"Nyelv kiválasztása",scrollBackToContent:"Visszagörgetés a tartalomhoz",zoomIn:"Nagyítás",zoomOut:"Kicsinyítés",resetZoom:"Nagyítás alaphelyzetbe",menu:"Menü",done:"Kész",edit:"Szerkesztés",undo:"Vissza",redo:"Újra",resetLibrary:"Könyvtár alaphelyzetbe állítása",createNewRoom:"Új szoba létrehozása",fullScreen:"Teljes képernyő",darkMode:"Sötét mód",lightMode:"Világos mód",zenMode:"Letisztult mód",objectsSnapMode:"",exitZenMode:"Kilépés a letisztult módból",cancel:"Mégsem",clear:"Kiűrítés",remove:"Eltávolítás",embed:"",publishLibrary:"Közzététel",submit:"Elküldés",confirm:"Megerősítés",embeddableInteractionButton:""},l={clearReset:"Ez a művelet törli a vászont. Biztos benne?",couldNotCreateShareableLink:"Nem sikerült megosztható linket létrehozni.",couldNotCreateShareableLinkTooBig:"Nem sikerült megosztható linket látrehozni: túl nagy a jelenet",couldNotLoadInvalidFile:"Nem sikerült betölteni a helytelen fájlt",importBackendFailed:"Nem sikerült betölteni a szerverről.",cannotExportEmptyCanvas:"Üres vászont nem lehet exportálni.",couldNotCopyToClipboard:"",decryptFailed:"Nem sikerült visszafejteni a titkosított adatot.",uploadedSecurly:"A feltöltést végpontok közötti titkosítással biztosítottuk, ami azt jelenti, hogy egy harmadik fél nem tudja megnézni a tartalmát, beleértve az Excalidraw szervereit is.",loadSceneOverridePrompt:"A betöltött külső rajz felül fogja írnia meglévőt. Szeretnéd folytatni?",collabStopOverridePrompt:`A munkamenet leállítása felül fogja írni az előzőleg helyben tárolt rajzot. Biztosan ezt akarod? -(Ha meg akarod tartani a helyben tárolt rajzot, egyszerűen csak zárd be a böngésző fület)`,errorAddingToLibrary:"A tétel nem addható hozzá a könyvtárhoz",errorRemovingFromLibrary:"A tétel nem távolítható el a könyvtárból",confirmAddLibrary:"Ez a művelet {{numShapes}} formát fog hozzáadni a könyvtáradhoz. Biztos vagy benne?",imageDoesNotContainScene:"Úgy tűnik, hogy ez a kép nem tartalmaz jelenetadatokat. Engedélyezted a jelenetbeágyazást az exportálás során?",cannotRestoreFromImage:"A jelenet visszaállítása nem sikerült ebből a kép fájlból",invalidSceneUrl:"Nem sikerült importálni a jelenetet a megadott URL-ről. Rossz formátumú, vagy nem tartalmaz érvényes Excalidraw JSON-adatokat.",resetLibrary:"Ezzel törlöd a könyvtárát. biztos vagy ebben?",removeItemsFromsLibrary:"{{count}} elemet törölsz a könyvtárból?",invalidEncryptionKey:"A titkosítási kulcsnak 22 karakterből kell állnia. Az élő együttműködés le van tiltva.",collabOfflineWarning:""},s={unsupportedFileType:"Nem támogatott fájltípus.",imageInsertError:"Nem sikerült beszúrni a képet. Próbáld újra később...",fileTooBig:"A fájl túl nagy. A megengedett maximális méret {{maxSize}}.",svgImageInsertError:"Nem sikerült beszúrni az SVG-képet. Az SVG szintaktika érvénytelennek tűnik.",failedToFetchImage:"",invalidSVGString:"Érvénytelen SVG.",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},o={selection:"Kijelölés",image:"Kép beszúrása",rectangle:"Téglalap",diamond:"Rombusz",ellipse:"Ellipszis",arrow:"Nyíl",line:"Vonal",freedraw:"Rajzolás",text:"Szöveg",library:"Könyvtár",lock:"Rajzolás után az aktív eszközt tartsa kijelölve",penMode:"",link:"Hivatkozás hozzáadása/frissítése a kiválasztott alakzathoz",eraser:"Radír",frame:"",magicframe:"",embeddable:"Weblap beágyazása",laser:"Lézermutató",hand:"",extraTools:"További eszközök",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"Vászon műveletek",selectedShapeActions:"Kijelölt forma műveletei",shapes:"Alakzatok"},r={canvasPanning:"",linearElement:"Kattintással görbe, az eger húzásával pedig egyenes nyilat rajzolhatsz",freeDraw:"Kattints és húzd, majd engedd el, amikor végeztél",text:"Tipp: A kijelölés eszközzel a dupla kattintás új szöveget hoz létre",embeddable:"",text_selected:"Kattints duplán, vagy nyomj entert a szöveg szerkesztéséhez",text_editing:"Nyomjd meg az Escape vagy a Ctrl/Cmd+ENTER billentyűkombinációt a szerkesztés befejezéséhez",linearElementMulti:"Kattints a következő ív pozíciójára, vagy fejezd be a nyilat az Escape vagy Enter megnyomásával",lockAngle:"A SHIFT billentyű lenyomva tartásával korlátozhatja forgatás szögét",resize:`A SHIFT billentyű lenyomva tartásával az átméretezés megtartja az arányokat, -az ALT lenyomva tartásával pedig a középpont egy helyben marad`,resizeImage:`A SHIFT billentyű lenyomva tartásával szabadon átméretezheted, -tartsd lenyomva az ALT billentyűt a középről való átméretezéshez`,rotate:"A SHIFT billentyű lenyomva tartásával korlátozhatja a szögek illesztését",lineEditor_info:"",lineEditor_pointSelected:`Nyomd meg a Törlés gombot a pont(ok) eltávolításához, -A Ctrl/Cmd+D a többszörözéshez, vagy húzással mozgathatja`,lineEditor_nothingSelected:`Válaszd ki a szerkeszteni kívánt pontot (több kijelöléséhez tartsd lenyomva a SHIFT billentyűt), -vagy Alt, és kattintson az új pontok hozzáadásához`,placeImage:"Kattints a kép elhelyezéséhez, vagy kattints és méretezd manuálisan",publishLibrary:"Tedd közzé saját könyvtáradat",bindTextToElement:"Nyomd meg az Entert szöveg hozzáadáshoz",deepBoxSelect:"Tartsd lenyomva a Ctrl/Cmd billentyűt a mély kijelöléshez és a húzás megakadályozásához",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},i={cannotShowPreview:"Előnézet nem jeleníthető meg",canvasTooBig:"A vászon talán túl nagy.",canvasTooBigTip:"Tipp: próbáld meg a legtávolabbi elemeket közelebb hozni egy máshoz."},z={headingMain:"Hiba történt. Próbáld ",clearCanvasMessage:"Ha az újratöltés nem működik, próbáld ",clearCanvasCaveat:" Ezzel az eddigi munka elveszik ",trackedToSentry:"A hibakód azonosítóval {{eventId}} nyomon van követve a rendszerünkben.",openIssueMessage:"Vigyáztunk arra, hogy a jelenthez tartozó információ ne jelenjen meg a hibaüzenetben. Ha a jeleneted nem bizalmas, kérjük add hozzá a Kérjük, másolja be az alábbi információkat a GitHub problémába.",sceneContent:"Jelenet tartalma:"},d={desc_intro:"Meghívhat embereket a jelenlegi jelenetbe, hogy együttműködjenek önnel.",desc_privacy:"Ne aggódj, a munkamenet végpontok közötti titkosítást használ, tehát bármit rajzolsz, privát marad. Még a szerverünkről se lehet belenézni.",button_startSession:"Munkamenet indítása",button_stopSession:"Munkamenet leállítása",desc_inProgressIntro:"Az élő együttműködési munkamenet folyamatban van.",desc_shareLink:"Ossza meg ezt a linket bárkivel, akivel együtt szeretne működni:",desc_exitSession:"Az munkamenet leállítása kilépteti önt a szobából, de folytathatja a munkát a saját gépén. Vegye figyelembe, hogy ez nem érinti más emberek munkáját és ők továbbra is együttműködhetnek a saját változatukon.",shareTitle:"Csatlakozás egy élő együttműködési munkamenethez az Excalidraw-ban"},k={title:"Hiba"},m={disk_title:"Mentés lemezre",disk_details:"Exportálja a jelenetadatokat egy fájlba, amelyből később importálhatja.",disk_button:"Mentés fájlba",link_title:"Megosztható hivatkozás",link_details:"Exportálás csak olvasható hivatkozásként.",link_button:"Exportálás hivatkozásba",excalidrawplus_description:"Mentse el a jelenetet az Excalidraw+ munkaterületére.",excalidrawplus_button:"Exportálás",excalidrawplus_exportError:"Jelenleg nem lehet exportálni az Excalidraw+-ba..."},g={blog:"Olvasd a blogunkat",click:"kattintás",deepSelect:"Mély kijelölés",deepBoxSelect:"Mély kijelölés a dobozon belül, és a húzás megakadályozása",curvedArrow:"Ívelt nyíl",curvedLine:"Ívelt vonal",documentation:"Dokumentáció",doubleClick:"dupla kattintás",drag:"vonszolás",editor:"Szerkesztő",editLineArrowPoints:"",editText:"",github:"Hibát találtál? Küld be",howto:"Kövesd az útmutatóinkat",or:"vagy",preventBinding:"A nyíl ne ragadjon",tools:"",shortcuts:"Gyorsbillentyűk",textFinish:"Szerkesztés befejezése (szöveg)",textNewLine:"Új sor hozzáadása (szöveg)",title:"Segítség",view:"Nézet",zoomToFit:"Az összes elem látótérbe hozása",zoomToSelection:"Kijelölésre nagyítás",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:"Rajzvászon alaphelyzetbe"},v={title:"Könyvtár közzététele",itemName:"Tétel neve",authorName:"Szerző neve",githubUsername:"GitHub felhasználónév",twitterUsername:"Twitter felhasználónév",libraryName:"Könyvtár neve",libraryDesc:"Könyvtár leírása",website:"Weboldal",placeholder:{authorName:"Neved vagy felhasználóneved",libraryName:"A könyvtárad neve",libraryDesc:"A könyvtárad használatát segítő leírás",githubHandle:"GitHub-handle(opcionális), így szerkesztheted a könyvtárat, miután elküldted ellenőrzésre",twitterHandle:"Twitter-felhasználónév (opcionális), így tudjuk, kinek kell jóváírni a Twitteren keresztüli reklámozást",website:"Hivatkozás személyes webhelyedre vagy máshová (nem kötelező)"},errors:{required:"Kötelező",website:"Adj meg egy érvényes URL-t"},noteDescription:"Küld be könyvtáradat, hogy bekerüljön a nyilvános könyvtár tárolóbahogy mások is felhasználhassák a rajzaikban.",noteGuidelines:"A könyvtárat először manuálisan kell jóváhagyni. Kérjük, olvassa el a segédletet benyújtása előtt. Szüksége lesz egy GitHub-fiókra a kommunikációhoz és a módosításokhoz, ha kérik, de ez nem feltétlenül szükséges.",noteLicense:"A beküldéssel elfogadja, hogy a könyvtár a következő alatt kerül közzétételre MIT Licensz ami röviden azt jelenti, hogy bárki korlátozás nélkül használhatja őket.",noteItems:"Minden könyvtárelemnek saját nevével kell rendelkeznie, hogy szűrhető legyen. A következő könyvtári tételek kerülnek bele:",atleastOneLibItem:"A kezdéshez válassz ki legalább egy könyvtári elemet",republishWarning:""},c={title:"A könyvtár beküldve",content:"Köszönjük {{authorName}}. Könyvtáradat elküldtük felülvizsgálatra. Nyomon követheted az állapototitt"},y={resetLibrary:"Könyvtár alaphelyzetbe állítása",removeItemsFromLib:"A kiválasztott elemek eltávolítása a könyvtárból"},p={header:"Kép exportálása",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Vágólapra másolás"}},h={tooltip:"A rajzaidat végpontok közötti titkosítással tároljuk, tehát az Excalidraw szervereiről se tud más belenézni.",link:"Blogbejegyzés a végpontok közötti titkosításról az Excalidraw-ban"},u={angle:"Szög",element:"Elem",elements:"Elemek",height:"Magasság",scene:"Jelenet",selected:"Kijelölt",storage:"Tárhely",title:"Statisztikák",total:"Összesen",version:"Verzió",versionCopy:"Kattints a másoláshoz",versionNotAvailable:"A verzió nem elérhető",width:"Szélesség"},j={addedToLibrary:"Könyvtárhoz adva",copyStyles:"Másolt stílusok.",copyToClipboard:"Vágólapra másolva.",copyToClipboardAsPng:`Az {{exportSelection}} PNG formátumban a vágólapra másolva -({{exportColorScheme}})`,fileSaved:"Fájl elmentve.",fileSavedToFilename:"Mentve mint {filename}",canvas:"rajzvászon",selection:"kijelölés",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},S={transparent:"Átlátszó",black:"Fekete",white:"Fehér",red:"Piros",pink:"Rózsaszín",grape:"",violet:"Ibolya",gray:"Szürke",blue:"Kék",cyan:"Cián",teal:"Kékes-zöld",green:"Zöld",yellow:"Sárga",orange:"Narancssárga",bronze:"Bronz"},f={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},x={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"Hexadecimális kód",noShades:""},T={action:{exportToImage:{title:"Exportálás képként",button:"Exportálás képként",description:""},saveToDisk:{title:"Mentés a lemezre",button:"Mentés a lemezre",description:""},excalidrawPlus:{title:"Excalidraw+",button:"",description:""}},modal:{loadFromFile:{title:"Betöltés fájlból",button:"Betöltés fájlból",description:""},shareableLink:{title:"Feltöltás linkből",button:"",description:""}}},E={title:"",button:"",description:"",syntax:"",preview:""},w={labels:e,library:t,buttons:a,alerts:l,errors:s,toolBar:o,headings:n,hints:r,canvasError:i,errorSplash:z,roomDialog:d,errorDialog:k,exportDialog:m,helpDialog:g,clearCanvasDialog:b,publishDialog:v,publishSuccessDialog:c,confirmDialog:y,imageExportDialog:p,encrypted:h,stats:u,toast:j,colors:S,welcomeScreen:f,colorPicker:x,overwriteConfirm:T,mermaid:E};export{l as alerts,a as buttons,i as canvasError,b as clearCanvasDialog,x as colorPicker,S as colors,y as confirmDialog,w as default,h as encrypted,k as errorDialog,z as errorSplash,s as errors,m as exportDialog,n as headings,g as helpDialog,r as hints,p as imageExportDialog,e as labels,t as library,E as mermaid,T as overwriteConfirm,v as publishDialog,c as publishSuccessDialog,d as roomDialog,u as stats,j as toast,o as toolBar,f as welcomeScreen}; -//# sourceMappingURL=hu-HU.json-bmZtU8U3.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js.map b/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js.map deleted file mode 100644 index 74e146c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/hu-HU.json-bmZtU8U3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hu-HU.json-bmZtU8U3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js b/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js deleted file mode 100644 index a06af4f..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js +++ /dev/null @@ -1,11 +0,0 @@ -const a={paste:"Tempel",pasteAsPlaintext:"Tempel sebagai teks biasa",pasteCharts:"Tempel diagram",selectAll:"Pilih semua",multiSelect:"Tambahkan elemen ke pilihan",moveCanvas:"Pindahkan kanvas",cut:"Potong",copy:"Salin",copyAsPng:"Salin ke papan klip sebagai PNG",copyAsSvg:"Salin ke papan klip sebagai SVG",copyText:"Salin ke papan klip sebagai teks",copySource:"",convertToCode:"",bringForward:"Bawa maju",sendToBack:"Kirim ke belakang",bringToFront:"Bawa ke depan",sendBackward:"Kirim mundur",delete:"Hapus",copyStyles:"Salin gaya",pasteStyles:"Tempelkan gaya",stroke:"Guratan",background:"Latar",fill:"Isian",strokeWidth:"Lebar guratan",strokeStyle:"Gaya guratan",strokeStyle_solid:"Padat",strokeStyle_dashed:"Putus-putus",strokeStyle_dotted:"Titik-titik",sloppiness:"Kecerobohan",opacity:"Keburaman",textAlign:"Perataan teks",edges:"Tepi",sharp:"Tajam",round:"Bulat",arrowheads:"Mata panah",arrowhead_none:"Tidak ada",arrowhead_arrow:"Panah",arrowhead_bar:"Batang",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Segitiga",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Ukuran font",fontFamily:"Jenis font",addWatermark:'Tambahkan "Dibuat dengan Excalidraw"',handDrawn:"Tulisan tangan",normal:"Normal",code:"Kode",small:"Kecil",medium:"Sedang",large:"Besar",veryLarge:"Sangat besar",solid:"Padat",hachure:"Garis-garis",zigzag:"Zigzag",crossHatch:"Asiran silang",thin:"Lembut",bold:"Tebal",left:"Kiri",center:"Tengah",right:"Kanan",extraBold:"Sangat tebal",architect:"Arsitek",artist:"Artis",cartoonist:"Kartunis",fileTitle:"Nama file",colorPicker:"Pilihan Warna",canvasColors:"Digunakan di kanvas",canvasBackground:"Latar Kanvas",drawingCanvas:"Kanvas",layers:"Lapisan",actions:"Aksi",language:"Bahasa",liveCollaboration:"Kolaborasi langsung...",duplicateSelection:"Duplikat",untitled:"Tanpa judul",name:"Nama",yourName:"Nama Anda",madeWithExcalidraw:"Dibuat dengan Excalidraw",group:"Kelompokan pilihan",ungroup:"Pisahkan pilihan",collaborators:"Kolaborator",showGrid:"Tampilkan grid",addToLibrary:"Tambahkan ke pustaka",removeFromLibrary:"Hapus dari pustaka",libraryLoadingMessage:"Memuat pustaka…",libraries:"Telusur pustaka",loadingScene:"Memuat pemandangan…",align:"Perataan",alignTop:"Rata atas",alignBottom:"Rata bawah",alignLeft:"Rata kiri",alignRight:"Rata kanan",centerVertically:"Pusatkan secara vertikal",centerHorizontally:"Pusatkan secara horizontal",distributeHorizontally:"Distribusikan horizontal",distributeVertically:"Distribusikan vertikal",flipHorizontal:"Balikkan horizontal",flipVertical:"Balikkan vertikal",viewMode:"Mode tampilan",share:"Bagikan",showStroke:"Tampilkan garis pengambil warna",showBackground:"Tampilkan latar pengambil warna",toggleTheme:"Ubah tema",personalLib:"Pustaka Pribadi",excalidrawLib:"Pustaka Excalidraw",decreaseFontSize:"Kecilkan ukuran font",increaseFontSize:"Besarkan ukuran font",unbindText:"Lepas teks",bindText:"Kunci teks ke kontainer",createContainerFromText:"Bungkus teks dalam kontainer",link:{edit:"Edit tautan",editEmbed:"",create:"Buat tautan",createEmbed:"",label:"Tautan",labelEmbed:"",empty:""},lineEditor:{edit:"Edit tautan",exit:"Keluar editor garis"},elementLock:{lock:"Kunci",unlock:"Lepas",lockAll:"Kunci semua",unlockAll:"Lepas semua"},statusPublished:"Telah terbit",sidebarLock:"Biarkan sidebar tetap terbuka",selectAllElementsInFrame:"Pilih semua elemen di bingkai",removeAllElementsFromFrame:"Hapus semua elemen dari bingkai",eyeDropper:"Ambil warna dari kanvas",textToDiagram:"",prompt:""},e={noItems:"Belum ada item yang ditambahkan...",hint_emptyLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini, atau pasang pustaka dari gudang di bawah ini.",hint_emptyPrivateLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini."},n={clearReset:"Setel Ulang Kanvas",exportJSON:"Ekspor ke file",exportImage:"Ekspor gambar...",export:"Simpan ke...",copyToClipboard:"Salin ke Papan Klip",save:"Simpan ke file sekarang",saveAs:"Simpan sebagai",load:"Buka",getShareableLink:"Buat Tautan yang Bisa Dibagian",close:"Tutup",selectLanguage:"Pilih bahasa",scrollBackToContent:"Gulir kembali ke konten",zoomIn:"Besarkan",zoomOut:"Kecilkan",resetZoom:"Reset Pembesaran",menu:"Menu",done:"Selesai",edit:"Edit",undo:"Urungkan",redo:"Ulangi",resetLibrary:"Reset pustaka",createNewRoom:"Buat ruang baru",fullScreen:"Layar penuh",darkMode:"Mode gelap",lightMode:"Mode terang",zenMode:"Mode zen",objectsSnapMode:"",exitZenMode:"Keluar dari mode zen",cancel:"Batal",clear:"Hapus",remove:"Hapus",embed:"",publishLibrary:"Terbitkan",submit:"Kirimkan",confirm:"Konfirmasi",embeddableInteractionButton:""},i={clearReset:"Ini akan menghapus semua yang ada dikanvas. Apakah kamu yakin ?",couldNotCreateShareableLink:"Tidak bisa membuat tautan yang bisa dibagikan",couldNotCreateShareableLinkTooBig:"Tidak dapat membuat tautan yang dapat dibagikan: pemandangan terlalu besar",couldNotLoadInvalidFile:"Tidak dapat memuat berkas yang tidak valid",importBackendFailed:"Gagal mengimpor dari backend",cannotExportEmptyCanvas:"Tidak bisa mengekspor kanvas kosong",couldNotCopyToClipboard:"Tidak bisa menyalin ke papan klip.",decryptFailed:"Tidak dapat mengdekripsi data.",uploadedSecurly:"Pengunggahan ini telah diamankan menggunakan enkripsi end-to-end, artinya server Excalidraw dan pihak ketiga tidak data membaca nya",loadSceneOverridePrompt:"Memuat gambar external akan mengganti konten Anda yang ada. Apakah Anda ingin melanjutkan?",collabStopOverridePrompt:`Menghentikan sesi akan menimpa gambar Anda yang tersimpan secara lokal. Anda yakin? - -(Jika Anda ingin menyimpan gambar lokal Anda, gantinya cukup tutup tab browser.)`,errorAddingToLibrary:"Tidak dapat menambahkan item ke pustaka",errorRemovingFromLibrary:"Tidak dapat membuang item dari pustaka",confirmAddLibrary:"Ini akan menambahkan {{numShapes}} bentuk ke pustaka Anda. Anda yakin?",imageDoesNotContainScene:"Gambar ini sepertinya tidak terdapat data pemandangan. Sudahkah Anda mengaktifkan penyematan pemandangan ketika ekspor?",cannotRestoreFromImage:"Pemandangan tidak dapat dipulihkan dari file gambar ini",invalidSceneUrl:"Tidak dapat impor pemandangan dari URL. Kemungkinan URL itu rusak atau tidak berisi data JSON Excalidraw yang valid.",resetLibrary:"Ini akan menghapus pustaka Anda. Anda yakin?",removeItemsFromsLibrary:"Hapus {{count}} item dari pustaka?",invalidEncryptionKey:"Sandi enkripsi harus 22 karakter. Kolaborasi langsung dinonaktifkan.",collabOfflineWarning:`Tidak ada koneksi internet. -Perubahan tidak akan disimpan!`},t={unsupportedFileType:"Tipe file tidak didukung.",imageInsertError:"Tidak dapat menyisipkan gambar. Coba lagi nanti...",fileTooBig:"File terlalu besar. Ukuran maksimum yang dibolehkan {{maxSize}}.",svgImageInsertError:"Tidak dapat menyisipkan gambar SVG. Markup SVG sepertinya tidak valid.",failedToFetchImage:"",invalidSVGString:"SVG tidak valid.",cannotResolveCollabServer:"Tidak dapat terhubung ke server kolab. Muat ulang laman dan coba lagi.",importLibraryError:"Tidak dapat memuat pustaka",collabSaveFailed:"Tidak dapat menyimpan ke dalam basis data server. Jika masih berlanjut, Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",collabSaveFailed_sizeExceeded:"Tidak dapat menyimpan ke dalam basis data server, tampaknya ukuran kanvas terlalu besar. Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Sepertinya Anda menggunkan peramban Brave dengan pengaturan Blokir Fingerprinting yang Agresif diaktifkan.",line2:"Ini dapat membuat Elemen Teks dalam gambar mu.",line3:"Kami sangat menyarankan mematikan pengaturan ini. Anda dapat mengikuti langkah-langkah ini untuk melakukannya.",line4:`Jika mematikan pengaturan ini tidak membenarkan tampilan elemen teks, mohon buka -isu di GitHub kami, atau chat kami di Discord`},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Pilihan",image:"Sisipkan gambar",rectangle:"Persegi",diamond:"Berlian",ellipse:"Elips",arrow:"Panah",line:"Garis",freedraw:"Gambar",text:"Teks",library:"Pustaka",lock:"Biarkan alat yang dipilih aktif setelah menggambar",penMode:"Mode pena - mencegah sentuhan",link:"Tambah/Perbarui tautan untuk bentuk yang dipilih",eraser:"Penghapus",frame:"Alat bingkai",magicframe:"",embeddable:"",laser:"",hand:"Tangan (alat panning)",extraTools:"Alat-alat lain",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Opsi Kanvas",selectedShapeActions:"Opsi bentuk yang dipilih",shapes:"Bentuk"},l={canvasPanning:"Untuk memindahkan kanvas, tekan roda mouse atau spacebar sambil menyeret, atau menggunakan alat tangan",linearElement:"Klik untuk memulai banyak poin, seret untuk satu baris",freeDraw:"Klik dan seret, lepaskan jika Anda selesai",text:"Tip: Anda juga dapat menambahkan teks dengan klik ganda di mana saja dengan alat pemilihan",embeddable:"",text_selected:"Klik ganda atau tekan ENTER untuk edit teks",text_editing:"Tekan Escape atau CtrlAtauCmd+ENTER untuk selesai mengedit",linearElementMulti:"Klik pada titik akhir atau tekan Escape atau Enter untuk menyelesaikan",lockAngle:"Anda dapat menjaga sudut dengan menahan SHIFT",resize:`Anda dapat menjaga proposi dengan menekan SHIFT sambil mengubah ukuran, -tekan AlT untuk mengubah ukuran dari tengah`,resizeImage:`Anda dapat mengubah secara bebas dengan menekan SHIFT, -Tekan ALT untuk mengubah dari tengah`,rotate:"Anda dapat menjaga sudut dengan menahan SHIFT sambil memutar",lineEditor_info:"Tekan Ctrl/Cmd dan Dobel-klik atau tekan Ctrl/Cmd +Enter untuk mengedit poin",lineEditor_pointSelected:"Tekan Delete untuk menghapus titik, Ctrl/Cmd + D untuk menduplikasi, atau seret untuk memindahkan",lineEditor_nothingSelected:"Pilih titik untuk mengedit (tekan SHIFT untuk pilih banyak), atau tekan Alt dan klik untuk tambahkan titik baru",placeImage:"Klik untuk tempatkan gambar, atau klik dan jatuhkan untuk tetapkan ukuran secara manual",publishLibrary:"Terbitkan pustaka Anda",bindTextToElement:"Tekan enter untuk tambahkan teks",deepBoxSelect:"Tekan Ctrl atau Cmd untuk memilih yang di dalam, dan mencegah penggeseran",eraserRevert:"Tahan Alt untuk mengembalikan elemen yang ditandai untuk dihapus",firefox_clipboard_write:'Fitur ini dapat diaktifkan melalui pengaturan flag "dom.events.asyncClipboard.clipboardItem" ke "true". Untuk mengganti flag di Firefox, pergi ke laman "about:config".',disableSnapping:""},d={cannotShowPreview:"Tidak dapat menampilkan pratinjau",canvasTooBig:"Kanvas mungkin terlalu besar.",canvasTooBigTip:"Tip: coba pindahkan elemen-terjauh lebih dekat bersama."},k={headingMain:"Mengalami sebuah kesalahan. Cobalah ",clearCanvasMessage:"Jika memuat ulang tidak bekerja, cobalah ",clearCanvasCaveat:" Ini akan menghasilkan hilangnya pekerjaan ",trackedToSentry:"Kesalahan dengan pengidentifikasi {{eventId}} dilacak di sistem kami.",openIssueMessage:"Kami sangat berhati-hati untuk tidak menyertakan informasi pemandangan Anda pada kesalahan. Jika pemandangan Anda tidak bersifat pribadi, mohon pertimbangkan menindak lanjut pada Mohon sertakan informasi dibawah ini dengan menyalin dan menempelkan di Github issue.",sceneContent:"Pemandangan konten:"},o={desc_intro:"Anda dapat mengundang orang ke pemandangan Anda saat ini untuk berkolaborasi dengan Anda.",desc_privacy:"Jangan khawatir, sesi menggunakan enkripsi end-to-end, sehingga apa pun yang Anda gambar akan tetap bersifat pribadi. Bahkan server kami tidak dapat melihat apa yang Anda lakukan.",button_startSession:"Mulai sesi",button_stopSession:"Hentikan sesi",desc_inProgressIntro:"Sesi kolaborasi sedang berlangsung sekarang.",desc_shareLink:"Bagikan tautan ini dengan siapa pun yang Anda inginkan untuk kolaborasi bersama:",desc_exitSession:"Menghentikan sesi akan memutuskan hubungan Anda dari ruangan, tetapi Anda dapat melanjutkan bekerja dengan pemandangan Anda secara lokal. Perhatikan bahwa ini tidak memengaruhi orang lain, dan mereka masih dapat berkolaborasi pada versi mereka.",shareTitle:"Gabung sesi kolaborasi langsung di Excalidraw"},u={title:"Kesalahan"},m={disk_title:"Simpan ke disk",disk_details:"Ekspor data pemandangan ke file yang mana Anda dapat impor nanti.",disk_button:"Simpan ke file",link_title:"Tautan",link_details:"Ekspor sebagai tautan yang hanya dibaca.",link_button:"Ekspor ke tautan",excalidrawplus_description:"Simpan pemandangan ke ruang kerja Excalidraw+ Anda.",excalidrawplus_button:"Ekspor",excalidrawplus_exportError:"Tidak dapat ekspor ke Excalidraw+ saat ini..."},p={blog:"Baca blog kami",click:"klik",deepSelect:"Pilih dalam",deepBoxSelect:"Pilih dalam kotak, dan cegah penggeseran",curvedArrow:"Panah lengkung",curvedLine:"Garis lengkung",documentation:"Dokumentasi",doubleClick:"klik-ganda",drag:"seret",editor:"Editor",editLineArrowPoints:"Edit titik garis/panah",editText:"Edit teks / tambah label",github:"Menemukan masalah? Kirimkan",howto:"Ikuti panduan kami",or:"atau",preventBinding:"Cegah pengikatan panah",tools:"Alat",shortcuts:"Pintasan keyboard",textFinish:"Selesai mengedit (editor teks)",textNewLine:"Tambahkan garis baru (editor teks)",title:"Bantuan",view:"Tampilan",zoomToFit:"Perbesar agar sesuai dengan semua elemen",zoomToSelection:"Perbesar ke seleksi",toggleElementLock:"Kunci/lepas seleksi",movePageUpDown:"Pindah halaman keatas/kebawah",movePageLeftRight:"Pindah halaman kebawah/keatas"},g={title:"Hapus kanvas"},b={title:"Terbitkan pustaka",itemName:"Nama item",authorName:"Nama pembuat",githubUsername:"Nama pengguna github",twitterUsername:"Nama pengguna Twitter",libraryName:"Nama Pustaka",libraryDesc:"Deskripsi pustaka",website:"Situs Web",placeholder:{authorName:"Nama atau nama pengguna Anda",libraryName:"Nama dari pustaka Anda",libraryDesc:"Deskripsi pustaka Anda untuk membantu orang mengerti penggunaannya",githubHandle:"Akun GitHub (opsional), jadi Anda dapat mengubah pustaka ketika diserahkan untuk review",twitterHandle:"Nama pengguna Twitter (opsional), jadi kami tahu siapa dipuji ketika mempromosikannya melalui Twitter",website:"Hubungkan ke situs personal Anda atau lainnya (opsional)"},errors:{required:"Dibutuhkan",website:"Masukkan URL valid"},noteDescription:"Kirimkan pustaka Anda untuk disertakan di repositori pustaka publikuntuk orang lain menggunakannya dalam gambar mereka.",noteGuidelines:"Pustaka butuh disetujui secara manual terlebih dahulu. Baca pedoman sebelum mengirim. Anda butuh akun GitHub untuk berkomunikasi dan membuat perubahan jika dibutuhkan, tetapi tidak wajib dibutukan.",noteLicense:"Dengan mengkirimkannya, Anda setuju pustaka akan diterbitkan dibawah Lisensi MIT, yang artinya siapa pun dapat menggunakannya tanpa batasan.",noteItems:"Setiap item pustaka harus memiliki nama, sehingga bisa disortir. Item pustaka di bawah ini akan dimasukan:",atleastOneLibItem:"Pilih setidaknya satu item pustaka untuk mulai",republishWarning:"Catatan: beberapa item yang dipilih telah ditandai sebagai sudah dipublikasikan/diserahkan. Anda hanya dapat menyerahkan kembali item-item ketika memperbarui pustaka atau pengumpulan."},c={title:"Pustaka telah dikirm",content:"Terima kasih {{authorName}}. pustaka Anda telah diserahkan untuk ditinjau ulang. Anda dapat cek statusnyadi sini"},h={resetLibrary:"Reset pustaka",removeItemsFromLib:"Hapus item yang dipilih dari pustaka"},y={header:"Ekspor gambar",label:{withBackground:"Latar",onlySelected:"Hanya yang dipilih",darkMode:"Mode gelap",embedScene:"Sematkan pemandangan",scale:"Skala",padding:"Lapisan"},tooltip:{embedScene:`Data pemandangan akan disimpan dalam file PNG/SVG yang diekspor sehingga pemandangan itu dapat dipulihkan darinya. -Akan membesarkan ukuran file yang diekspor.`},title:{exportToPng:"Ekspor ke PNG",exportToSvg:"Ekspor ke SVG",copyPngToClipboard:"Salin PNG ke papan klip"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Salin ke papan klip"}},T={tooltip:"Gambar anda terenkripsi end-to-end sehingga server Excalidraw tidak akan pernah dapat melihatnya.",link:"Pos blog tentang enkripsi ujung ke ujung di Excalidraw"},S={angle:"Sudut",element:"Elemen",elements:"Elemen",height:"Tinggi",scene:"Pemandangan",selected:"Terpilih",storage:"Penyimpanan",title:"Statistik untuk nerd",total:"Total",version:"Versi",versionCopy:"Klik untuk salin",versionNotAvailable:"Versi tidak tersedia",width:"Lebar"},v={addedToLibrary:"Tambahkan ke pustaka",copyStyles:"Gaya tersalin.",copyToClipboard:"Tersalin ke papan klip.",copyToClipboardAsPng:`Tersalin {{exportSelection}} ke clipboard sebagai PNG -({{exportColorScheme}})`,fileSaved:"File tersimpan.",fileSavedToFilename:"Disimpan ke {filename}",canvas:"kanvas",selection:"pilihan",pasteAsSingleElement:`Gunakan {{shortcut}} untuk menempelkan sebagai satu elemen, -atau tempelkan ke teks editor yang ada`,unableToEmbed:"",unrecognizedLinkFormat:""},A={transparent:"Transparan",black:"Hitam",white:"Putih",red:"Merah",pink:"Pink",grape:"Ungu",violet:"Violet",gray:"Abu-abu",blue:"Biru",cyan:"Cyan",teal:"Teal",green:"Hijau",yellow:"Kuning",orange:"Jingga",bronze:"Tembaga"},w={app:{center_heading:"Semua data Anda disimpan secara lokal di peramban Anda.",center_heading_plus:"Apa Anda ingin berpindah ke Excalidraw+?",menuHint:"Ekspor, preferensi, bahasa, ..."},defaults:{menuHint:"Ekspor, preferensi, dan selebihnya...",center_heading:"Diagram. Menjadi. Mudah.",toolbarHint:"Pilih alat & mulai menggambar!",helpHint:"Pintasan & bantuan"}},P={mostUsedCustomColors:"Warna yang sering dipakai",colors:"Warna",shades:"Nuansa",hexCode:"Kode hexa",noShades:"Tidak ada nuansa untuk warna ini"},E={action:{exportToImage:{title:"Ekspor sebagai gambar",button:"Ekspor sebagai gambar",description:"Ekspor data pemandangan sebagai gambar yang dapat anda impor nanti."},saveToDisk:{title:"Simpan ke disk",button:"Simpan ke disk",description:"Ekspor data pemandangan ke file yang dapat Anda dapat impor nanti."},excalidrawPlus:{title:"Excalidraw+",button:"Ekspor ke Excalidraw+",description:"Simpan pemandangan ke ruang kerja Excalidraw+ Anda."}},modal:{loadFromFile:{title:"Muat dari file",button:"Muat dari file",description:"Memuat dari file yang akan menggantikan konten Anda sekarang.

    Anda dapat mencadangkan gambar anda dulu menggunakan opsi-opsi ini."},shareableLink:{title:"Muat dari link",button:"Ganti konten saya",description:"Memuat dari file yang akan menggantikan konten Anda sekarang.

    Anda dapat mencadangkan gambar anda dulu menggunakan opsi-opsi ini."}}},f={title:"",button:"",description:"",syntax:"",preview:""},x={labels:a,library:e,buttons:n,alerts:i,errors:t,toolBar:r,headings:s,hints:l,canvasError:d,errorSplash:k,roomDialog:o,errorDialog:u,exportDialog:m,helpDialog:p,clearCanvasDialog:g,publishDialog:b,publishSuccessDialog:c,confirmDialog:h,imageExportDialog:y,encrypted:T,stats:S,toast:v,colors:A,welcomeScreen:w,colorPicker:P,overwriteConfirm:E,mermaid:f};export{i as alerts,n as buttons,d as canvasError,g as clearCanvasDialog,P as colorPicker,A as colors,h as confirmDialog,x as default,T as encrypted,u as errorDialog,k as errorSplash,t as errors,m as exportDialog,s as headings,p as helpDialog,l as hints,y as imageExportDialog,a as labels,e as library,f as mermaid,E as overwriteConfirm,b as publishDialog,c as publishSuccessDialog,o as roomDialog,S as stats,v as toast,r as toolBar,w as welcomeScreen}; -//# sourceMappingURL=id-ID.json-XxPjS0Nx.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js.map b/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js.map deleted file mode 100644 index 864853c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/id-ID.json-XxPjS0Nx.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"id-ID.json-XxPjS0Nx.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js b/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js deleted file mode 100644 index 55c0ad3..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js +++ /dev/null @@ -1,12 +0,0 @@ -const e={paste:"Incolla",pasteAsPlaintext:"Incolla come testo normale",pasteCharts:"Incolla grafici",selectAll:"Seleziona tutto",multiSelect:"Aggiungi elemento alla selezione",moveCanvas:"Sposta tela",cut:"Taglia",copy:"Copia",copyAsPng:"Copia negli appunti come PNG",copyAsSvg:"Copia negli appunti come SVG",copyText:"Copia negli appunti come testo",copySource:"Copia sorgente negli appunti",convertToCode:"Converti in codice",bringForward:"Porta avanti",sendToBack:"Manda in fondo",bringToFront:"Porta in cima",sendBackward:"Manda dietro",delete:"Elimina",copyStyles:"Copia stili",pasteStyles:"Incolla stili",stroke:"Tratto",background:"Sfondo",fill:"Riempimento",strokeWidth:"Spessore del tratto",strokeStyle:"Stile del tratto",strokeStyle_solid:"Pieno",strokeStyle_dashed:"Tratteggiato",strokeStyle_dotted:"Punteggiato",sloppiness:"Imprecisione",opacity:"Opacità",textAlign:"Allineamento del testo",edges:"Bordi",sharp:"Acuto",round:"Rotondo",arrowheads:"Punta della freccia",arrowhead_none:"Nessuno",arrowhead_arrow:"Freccia",arrowhead_bar:"Barra",arrowhead_circle:"Cerchio",arrowhead_circle_outline:"Cerchio (contorno)",arrowhead_triangle:"Triangolo",arrowhead_triangle_outline:"Triangolo (contorno)",arrowhead_diamond:"Diamante",arrowhead_diamond_outline:"Diamante (contorno)",fontSize:"Dimensione carattere",fontFamily:"Carattere",addWatermark:'Aggiungi "Creato con Excalidraw"',handDrawn:"A mano libera",normal:"Normale",code:"Codice",small:"Piccolo",medium:"Medio",large:"Grande",veryLarge:"Molto grande",solid:"Pieno",hachure:"Tratteggio obliquo",zigzag:"Zig zag",crossHatch:"Tratteggio incrociato",thin:"Sottile",bold:"Grassetto",left:"Sinistra",center:"Centro",right:"Destra",extraBold:"Extra Grassetto",architect:"Architetto",artist:"Artista",cartoonist:"Fumettista",fileTitle:"Nome del file",colorPicker:"Selettore colore",canvasColors:"Usato su tela",canvasBackground:"Sfondo tela",drawingCanvas:"Area di disegno",layers:"Livelli",actions:"Azioni",language:"Lingua",liveCollaboration:"Collaborazione dal vivo...",duplicateSelection:"Duplica",untitled:"Senza titolo",name:"Nome",yourName:"Il vostro nome",madeWithExcalidraw:"Creato con Excalidraw",group:"Crea gruppo da selezione",ungroup:"Dividi gruppo da selezione",collaborators:"Collaboratori",showGrid:"Visualizza griglia",addToLibrary:"Aggiungi alla libreria",removeFromLibrary:"Rimuovi dalla libreria",libraryLoadingMessage:"Caricamento libreria…",libraries:"Sfoglia librerie",loadingScene:"Caricamento della scena…",align:"Allinea",alignTop:"Allinea in alto",alignBottom:"Allinea in basso",alignLeft:"Allinea a sinistra",alignRight:"Allinea a destra",centerVertically:"Centra Verticalmente",centerHorizontally:"Centra orizzontalmente",distributeHorizontally:"Distribuisci orizzontalmente",distributeVertically:"Distribuisci verticalmente",flipHorizontal:"Capovolgi orizzontalmente",flipVertical:"Capovolgi verticalmente",viewMode:"Modalità visualizzazione",share:"Condividi",showStroke:"Mostra selettore colore del tratto",showBackground:"Mostra selettore colore di sfondo",toggleTheme:"Cambia tema",personalLib:"Libreria Personale",excalidrawLib:"Libreria di Excalidraw",decreaseFontSize:"Riduci dimensione dei caratteri",increaseFontSize:"Aumenta la dimensione dei caratteri",unbindText:"Scollega testo",bindText:"Associa il testo al container",createContainerFromText:"Avvolgi il testo in un container",link:{edit:"Modifica link",editEmbed:"Modifica collegamento e incorpora",create:"Crea link",createEmbed:"Crea collegamento e incorpora",label:"Link",labelEmbed:"Collega & incorpora",empty:"Nessun collegamento impostato"},lineEditor:{edit:"Modifica linea",exit:"Esci dall'editor di linea"},elementLock:{lock:"Blocca",unlock:"Sblocca",lockAll:"Blocca tutto",unlockAll:"Sblocca tutto"},statusPublished:"Pubblicato",sidebarLock:"Mantieni aperta la barra laterale",selectAllElementsInFrame:"Seleziona tutti gli elementi nel riquadro",removeAllElementsFromFrame:"Rimuovi tutti gli elementi dal riquadro",eyeDropper:"Scegli il colore della tela",textToDiagram:"Testo a diagramma",prompt:"Prompt"},i={noItems:"Nessun elemento ancora aggiunto...",hint_emptyLibrary:"Seleziona un elemento sulla tela per aggiungerlo qui, o installa una libreria dal repository pubblico qui sotto.",hint_emptyPrivateLibrary:"Seleziona un elemento sulla tela per aggiungerlo qui."},a={clearReset:"Svuota la tela",exportJSON:"Esporta su file",exportImage:"Esporta immagine...",export:"Salva in...",copyToClipboard:"Copia negli appunti",save:"Salva sul file corrente",saveAs:"Salva con nome",load:"Apri",getShareableLink:"Ottieni link condivisibile",close:"Chiudi",selectLanguage:"Seleziona lingua",scrollBackToContent:"Scorri indietro fino al contenuto",zoomIn:"Aumenta ingrandimento",zoomOut:"Riduci ingrandimento",resetZoom:"Ripristina ingrandimento",menu:"Menù",done:"Fatto",edit:"Modifica",undo:"Annulla",redo:"Ripeti",resetLibrary:"Ripristina libreria",createNewRoom:"Crea nuova stanza",fullScreen:"Schermo intero",darkMode:"Tema scuro",lightMode:"Tema chiaro",zenMode:"Modalità Zen",objectsSnapMode:"Aggancia agli oggetti",exitZenMode:"Uscire dalla modalità zen",cancel:"Annulla",clear:"Cancella",remove:"Rimuovi",embed:"Attiva/disattiva incorporamento",publishLibrary:"Pubblica",submit:"Invia",confirm:"Conferma",embeddableInteractionButton:"Clicca per interagire"},o={clearReset:"Questa azione cancellerà l'intera tela. Sei sicuro?",couldNotCreateShareableLink:"Non riesco a creare un link condivisibile.",couldNotCreateShareableLinkTooBig:"Impossibile creare il link condivisibile: la scena è troppo grande",couldNotLoadInvalidFile:"Impossibile caricare un file no valido",importBackendFailed:"Importazione dal server fallita.",cannotExportEmptyCanvas:"Non è possibile esportare una tela vuota.",couldNotCopyToClipboard:"Impossibile copiare negli appunti.",decryptFailed:"Impossibile decriptare i dati.",uploadedSecurly:"L'upload è stato protetto con la crittografia end-to-end, il che significa che il server Excalidraw e terze parti non possono leggere il contenuto.",loadSceneOverridePrompt:"Se carichi questo disegno esterno, sostituirà quello che hai. Vuoi continuare?",collabStopOverridePrompt:`Interrompere la sessione sovrascriverà il precedente disegno memorizzato localmente. Sei sicuro? - -(Se vuoi mantenere il tuo disegno locale, chiudi semplicemente la scheda del browser.)`,errorAddingToLibrary:"Impossibile aggiungere l'elemento alla libreria",errorRemovingFromLibrary:"Impossibile rimuovere l'elemento dalla libreria",confirmAddLibrary:"Questo aggiungerà {{numShapes}} forma(e) alla tua libreria. Sei sicuro?",imageDoesNotContainScene:"Questa immagine pare non contenere alcuna scena. Avevi incluso la scena durante l'esportazione?",cannotRestoreFromImage:"Impossibile ripristinare la scena da questo file immagine",invalidSceneUrl:"Impossibile importare la scena dall'URL fornito. Potrebbe essere malformato o non contenere dati JSON Excalidraw validi.",resetLibrary:"Questa azione cancellerà l'intera libreria. Sei sicuro?",removeItemsFromsLibrary:"Eliminare {{count}} elementi dalla libreria?",invalidEncryptionKey:"La chiave di cifratura deve essere composta da 22 caratteri. La collaborazione live è disabilitata.",collabOfflineWarning:`Nessuna connessione internet disponibile. -Le tue modifiche non verranno salvate!`},r={unsupportedFileType:"Tipo di file non supportato.",imageInsertError:"Non è stato possibile inserire l'immagine. Riprova più tardi...",fileTooBig:"Il file è troppo grande. La dimensione massima consentita è {{maxSize}}.",svgImageInsertError:"Impossibile inserire l'immagine SVG. Il markup SVG non sembra corretto.",failedToFetchImage:"Impossibile recuperare l'immagine.",invalidSVGString:"SVG non valido.",cannotResolveCollabServer:"Impossibile connettersi al server di collab. Ricarica la pagina e riprova.",importLibraryError:"Impossibile caricare la libreria",collabSaveFailed:"Impossibile salvare nel database di backend. Se i problemi persistono, dovresti salvare il tuo file localmente per assicurarti di non perdere il tuo lavoro.",collabSaveFailed_sizeExceeded:"Impossibile salvare nel database di backend, la tela sembra essere troppo grande. Dovresti salvare il file localmente per assicurarti di non perdere il tuo lavoro.",imageToolNotSupported:"Le immagini sono disabilitate.",brave_measure_text_error:{line1:"Sembra che tu stia utilizzando il browser Brave con l'impostazione Blocco aggressivo delle impronte digitali abilitata.",line2:"Ciò potrebbe causare la rottura degli Elementi di testo nei tuoi disegni.",line3:"Consigliamo vivamente di disabilitare questa impostazione. Puoi seguire questi passaggi su come farlo.",line4:"Se la disattivazione di questa impostazione non risolve la visualizzazione degli elementi di testo, apri un problema sul nostro GitHub o scrivici su Discord"},libraryElementTypeError:{embeddable:"Gli elementi incorporabili non possono essere aggiunti alla libreria.",iframe:"Gli elementi IFrame non possono essere aggiunti alla libreria.",image:"Il supporto per l'aggiunta d'immagini alla libreria verrà aggiunto a breve!"},asyncPasteFailedOnRead:"Impossibile incollare (non è possibile leggere dagli appunti di sistema).",asyncPasteFailedOnParse:"Impossibile incollare.",copyToSystemClipboardFailed:"Impossibile copiare negli appunti."},t={selection:"Selezione",image:"Inserisci immagine",rectangle:"Rettangolo",diamond:"Rombo",ellipse:"Ellisse",arrow:"Freccia",line:"Linea",freedraw:"Disegno",text:"Testo",library:"Libreria",lock:"Mantieni lo strumento selezionato attivo dopo aver disegnato",penMode:"Modalità penna - previene il tocco",link:"Aggiungi/ aggiorna il link per una forma selezionata",eraser:"Gomma",frame:"Strumento riquadro",magicframe:"",embeddable:"Incorporamento Web",laser:"Puntatore laser",hand:"Mano (strumento di panoramica)",extraTools:"Altri strumenti",mermaidToExcalidraw:"",magicSettings:"Impostazioni di IA"},n={canvasActions:"Azioni sulla Tela",selectedShapeActions:"Impostazioni della forma selezionata",shapes:"Forme"},l={canvasPanning:"Per spostare la tela, tieni premuta la rotellina del mouse o la barra spaziatrice mentre trascini oppure usa lo strumento mano",linearElement:"Clicca per iniziare una linea in più punti, trascina per singola linea",freeDraw:"Clicca e trascina, rilascia quando avrai finito",text:"Suggerimento: puoi anche aggiungere del testo facendo doppio clic ovunque con lo strumento di selezione",embeddable:"Fare click e trascina per creare un incorporamento web",text_selected:"Fai doppio click o premi INVIO per modificare il testo",text_editing:"Premi ESC o CtrlOCmd+INVIO per completare le modifiche",linearElementMulti:"Clicca sull'ultimo punto o premi Esc o Invio per finire",lockAngle:"Puoi limitare l'angolo tenendo premuto SHIFT",resize:`Per vincolare le proporzioni, tieni premuto MAIUSC durante il ridimensionamento; -per ridimensionare dal centro, tieni premuto ALT`,resizeImage:`Puoi ridimensionare liberamente tenendo premuto SHIFT, -tieni premuto ALT per ridimensionare dal centro`,rotate:"Puoi mantenere gli angoli tenendo premuto SHIFT durante la rotazione",lineEditor_info:"Tieni premuto Ctrl o Cmd e doppio clic oppure premi Ctrl o Cmd + Invio per modificare i punti",lineEditor_pointSelected:`Premi Elimina per rimuovere il punto(i), -CtrlOCmd+D per duplicare o trascinare per spostare`,lineEditor_nothingSelected:`Seleziona un punto da modificare (tieni premuto MAIUSC per selezionare più punti), -oppure tieni premuto Alt e fai clic per aggiungere nuovi punti`,placeImage:"Fai click per posizionare l'immagine, o click e trascina per impostarne la dimensione manualmente",publishLibrary:"Pubblica la tua libreria",bindTextToElement:"Premi invio per aggiungere il testo",deepBoxSelect:"Tieni premuto CtrlOCmd per selezionare in profondità e per impedire il trascinamento",eraserRevert:"Tieni premuto Alt per ripristinare gli elementi contrassegnati per l'eliminazione",firefox_clipboard_write:'Questa funzione può essere abilitata impostando il flag "dom.events.asyncClipboard.clipboardItem" su "true". Per modificare i flag del browser in Firefox, visitare la pagina "about:config".',disableSnapping:"Tieni premuto Ctrl o Cmd per disabilitare lo snap"},s={cannotShowPreview:"Impossibile visualizzare l'anteprima",canvasTooBig:"La tela potrebbe essere troppo grande.",canvasTooBigTip:"Suggerimento: prova a spostare gli elementi più lontani più vicini tra loro."},c={headingMain:"Si è verificato un errore. Provare ",clearCanvasMessage:"Se ricaricare non funziona, prova ",clearCanvasCaveat:" Questo risulterà nella perdita del lavoro ",trackedToSentry:"L'errore con identificativo {{eventId}} è stato tracciato nel nostro sistema.",openIssueMessage:"Siamo stati molto cauti nel non includere informazioni della scena nell'errore. Se la tua scena non è privata, ti preghiamo di considerare la sua inclusione nel nostro Per favore includi le informazioni riportate qui sotto copiandole e incollandole nella issue di GitHub.",sceneContent:"Contenuto della scena:"},d={desc_intro:"Puoi invitare persone nella tua scena attuale per collaborare con te.",desc_privacy:"Non preoccuparti, la sessione utilizza la crittografia end-to-end, quindi qualsiasi cosa disegni rimarrà privata. Nemmeno il nostro server sarà in grado di vedere cosa hai creato.",button_startSession:"Avvia sessione",button_stopSession:"Termina sessione",desc_inProgressIntro:"La sessione di collaborazione è attualmente in corso.",desc_shareLink:"Condividi questo link con chiunque desideri collaborare:",desc_exitSession:"Interrompere la sessione scollegherà la tua stanza ma potrai continuare a lavorare con la scena, localmente. Tieni presente che questo non influirà sulle altre persone, e che saranno ancora in grado di collaborare alla loro versione.",shareTitle:"Partecipa a una sessione di collaborazione live su Excalidraw"},p={title:"Errore"},u={disk_title:"Salva su disco",disk_details:"Esporta i dati della scena su file, dal quale potrai importare in seguito.",disk_button:"Salva su file",link_title:"Link condivisibile",link_details:"Esporta come link di sola lettura.",link_button:"Esporta come Link",excalidrawplus_description:"Salva la scena nel tuo spazio di lavoro Excalidraw+.",excalidrawplus_button:"Esporta",excalidrawplus_exportError:"Non è stato possibile esportare su Excalidraw+ al questo momento..."},m={blog:"Leggi il nostro blog",click:"click",deepSelect:"Selezione profonda",deepBoxSelect:"Seleziona in profondità all'interno della casella e previene il trascinamento",curvedArrow:"Freccia curva",curvedLine:"Linea curva",documentation:"Documentazione",doubleClick:"doppio-click",drag:"trascina",editor:"Editor",editLineArrowPoints:"Modifica punti linea/freccia",editText:"Modifica testo / aggiungi etichetta",github:"Trovato un problema? Segnalalo",howto:"Segui le nostre guide",or:"oppure",preventBinding:"Impedisci legame della freccia",tools:"Stumenti",shortcuts:"Scorciatoie da tastiera",textFinish:"Completa la modifica (editor di testo)",textNewLine:"Aggiungi nuova riga (editor di testo)",title:"Guida",view:"Vista",zoomToFit:"Adatta zoom per mostrare tutti gli elementi",zoomToSelection:"Zoom alla selezione",toggleElementLock:"Blocca/sblocca selezione",movePageUpDown:"Sposta la pagina su/giù",movePageLeftRight:"Sposta la pagina a sinistra/destra"},g={title:"Svuota la tela"},b={title:"Pubblica la libreria",itemName:"Nome dell'elemento",authorName:"Nome dell'autore",githubUsername:"Nome utente di GitHub",twitterUsername:"Nome utente di Twitter",libraryName:"Nome della libreria",libraryDesc:"Descrizione della libreria",website:"Sito Web",placeholder:{authorName:"Il tuo nome o nome utente",libraryName:"Nome della tua libreria",libraryDesc:"Descrizione della tua libreria per aiutare le persone a comprenderne lo scopo",githubHandle:"Handle di GitHub (opzionale), così che tu possa modificare la libreria una volta inviata per la revisione",twitterHandle:"Nome utente di Twitter (opzionale), così che sappiamo chi accreditare promuovendo su Twitter",website:"Link al tuo sito web personale o altro (opzionale)"},errors:{required:"Obbligatorio",website:"Inserisci un URL valido"},noteDescription:"Invia la tua libreria da includere nella repository della libreria pubblicaperché sia usata da altri nei loro disegni.",noteGuidelines:"La libreria dev'esser prima approvata manualmente. Sei pregato di leggere le linee guida prima di inviarla. Necessiterai di un profilo di GitHub per comunicare ed effettuare modifiche se richiesto, ma non è strettamente necessario.",noteLicense:"Inviando, acconsenti che la libreria sarà pubblicata sotto la Licenza MIT, che in breve significa che chiunque possa usarla senza restrizioni.",noteItems:"Ogni elemento della libreria deve avere il proprio nome, così che sia filtrabile. Gli elementi della seguente libreria saranno inclusi:",atleastOneLibItem:"Sei pregato di selezionare almeno un elemento della libreria per iniziare",republishWarning:"Nota: alcuni degli elementi selezionati sono contrassegnati come già pubblicati/presentati. È necessario reinviare gli elementi solo quando si aggiorna una libreria o una presentazione esistente."},v={title:"Libreria inviata",content:"Grazie {{authorName}}. La tua libreria è stata inviata per la revisione. Puoi monitorarne lo statoqui"},S={resetLibrary:"Ripristina la libreria",removeItemsFromLib:"Rimuovi gli elementi selezionati dalla libreria"},h={header:"Esporta immagine",label:{withBackground:"Sfondo",onlySelected:"Solo selezionato",darkMode:"Tema scuro",embedScene:"Includi scena",scale:"Scala",padding:"Rientro"},tooltip:{embedScene:`I dati della scena saranno salvati nel file PNG/SVG esportato in modo che la scena possa essere ripristinata da esso. -Questo aumenterà la dimensione del file esportato.`},title:{exportToPng:"Esporta come PNG",exportToSvg:"Esporta come SVG",copyPngToClipboard:"Copia PNG negli appunti"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copia negli appunti"}},z={tooltip:"I tuoi disegni sono crittografati end-to-end in modo che i server di Excalidraw non li possano mai vedere.",link:"Articolo del blog sulla crittografia end-to-end di Excalidraw"},f={angle:"Angolo",element:"Elemento",elements:"Elementi",height:"Altezza",scene:"Scena",selected:"Selezionato",storage:"Memoria",title:"Statistiche per nerd",total:"Totale",version:"Versione",versionCopy:"Clicca per copiare",versionNotAvailable:"Versione non disponibile",width:"Larghezza"},C={addedToLibrary:"Aggiunto alla libreria",copyStyles:"Stili copiati.",copyToClipboard:"Copiato negli appunti.",copyToClipboardAsPng:`{{exportSelection}} copiato negli appunti come PNG -({{exportColorScheme}})`,fileSaved:"File salvato.",fileSavedToFilename:"Salvato in {filename}",canvas:"tela",selection:"selezione",pasteAsSingleElement:`Usa {{shortcut}} per incollare come un singolo elemento, -o incollare in un editor di testo esistente`,unableToEmbed:"Incorporare questo url non è permesso. Crea una issue su GitHub per richiedere che l'url sia autorizzato",unrecognizedLinkFormat:"Il link che hai incorporato non corrisponde al formato previsto. Prova a incollare la stringa 'embed' fornita dal sito di origine"},k={transparent:"Trasparente",black:"Nero",white:"Bianco",red:"Rosso",pink:"Rosa",grape:"Uva",violet:"Viola",gray:"Grigio",blue:"Blu",cyan:"Ciano",teal:"Verde acqua",green:"Verde",yellow:"Giallo",orange:"Arancio",bronze:"Bronzo"},I={app:{center_heading:"Tutti i tuoi dati sono salvati localmente nel browser.",center_heading_plus:"Volevi invece andare su Excalidraw+?",menuHint:"Esporta, preferenze, lingue, ..."},defaults:{menuHint:"Esporta, preferenze, e altro...",center_heading:"Diagrammi. Fatto. Semplice.",toolbarHint:"Scegli uno strumento & Inizia a disegnare!",helpHint:"Scorciatoie & aiuto"}},T={mostUsedCustomColors:"Colori personalizzati più utilizzati",colors:"Colori",shades:"Sfumature",hexCode:"Codice esadecimale",noShades:"Nessuna sfumatura disponibile per questo colore"},y={action:{exportToImage:{title:"Esporta come immagine",button:"Esporta come immagine",description:"Esporta i dati della scena come immagine, che potrai importare in seguito."},saveToDisk:{title:"Salva su disco",button:"Salva su disco",description:"Esporta i dati della scena su file, che potrai importare in seguito."},excalidrawPlus:{title:"Excalidraw+",button:"Esporta su Excalidraw+",description:"Salva la scena sul tuo spazio di lavoro Excalidraw+."}},modal:{loadFromFile:{title:"Carica da file",button:"Carica da file",description:"Il caricamento da file sostituirà il contenuto esistente.

    Puoi salvare il tuo disegno prima usando una delle opzioni qui sotto."},shareableLink:{title:"Carica da link",button:"Sostituisci il mio contenuto",description:"Il caricamento da file sostituirà il contenuto esistente.

    Puoi salvare il tuo disegno prima usando una delle opzioni qui sotto."}}},w={title:"",button:"Inserisci",description:"",syntax:"",preview:"Anteprima"},E={labels:e,library:i,buttons:a,alerts:o,errors:r,toolBar:t,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:p,exportDialog:u,helpDialog:m,clearCanvasDialog:g,publishDialog:b,publishSuccessDialog:v,confirmDialog:S,imageExportDialog:h,encrypted:z,stats:f,toast:C,colors:k,welcomeScreen:I,colorPicker:T,overwriteConfirm:y,mermaid:w};export{o as alerts,a as buttons,s as canvasError,g as clearCanvasDialog,T as colorPicker,k as colors,S as confirmDialog,E as default,z as encrypted,p as errorDialog,c as errorSplash,r as errors,u as exportDialog,n as headings,m as helpDialog,l as hints,h as imageExportDialog,e as labels,i as library,w as mermaid,y as overwriteConfirm,b as publishDialog,v as publishSuccessDialog,d as roomDialog,f as stats,C as toast,t as toolBar,I as welcomeScreen}; -//# sourceMappingURL=it-IT.json-rBd68gJl.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js.map b/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js.map deleted file mode 100644 index 036bc32..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/it-IT.json-rBd68gJl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"it-IT.json-rBd68gJl.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js b/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js deleted file mode 100644 index 4d696f9..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"貼り付け",pasteAsPlaintext:"書式なしテキストとして貼り付け",pasteCharts:"チャートの貼り付け",selectAll:"すべて選択",multiSelect:"複数選択",moveCanvas:"キャンバスを移動",cut:"切り取り",copy:"コピー",copyAsPng:"PNGとしてクリップボードへコピー",copyAsSvg:"SVGとしてクリップボードへコピー",copyText:"テキストとしてクリップボードにコピー",copySource:"",convertToCode:"",bringForward:"前面に移動",sendToBack:"最背面に移動",bringToFront:"最前面に移動",sendBackward:"背面に移動",delete:"削除",copyStyles:"スタイルのコピー",pasteStyles:"スタイルの貼り付け",stroke:"線",background:"背景",fill:"塗りつぶし",strokeWidth:"線の太さ",strokeStyle:"線の種類",strokeStyle_solid:"実線",strokeStyle_dashed:"破線",strokeStyle_dotted:"点線",sloppiness:"ばらつき加減",opacity:"透明度",textAlign:"文字の配置",edges:"角",sharp:"四角",round:"丸",arrowheads:"線の終点",arrowhead_none:"なし",arrowhead_arrow:"矢印",arrowhead_bar:"バー",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"三角",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"フォントの大きさ",fontFamily:"フォントの種類",addWatermark:'"Made with Excalidraw"と表示',handDrawn:"手描き風",normal:"普通",code:"コード",small:"小",medium:"中",large:"大",veryLarge:"特大",solid:"ベタ塗り",hachure:"斜線",zigzag:"ジグザグ",crossHatch:"網掛け",thin:"細",bold:"太字",left:"左寄せ",center:"中央寄せ",right:"右寄せ",extraBold:"極太",architect:"正確",artist:"アート",cartoonist:"漫画風",fileTitle:"ファイル名",colorPicker:"色選択",canvasColors:"キャンバス上で使用",canvasBackground:"キャンバスの背景",drawingCanvas:"キャンバスの描画",layers:"レイヤー",actions:"操作",language:"言語",liveCollaboration:"共同編集...",duplicateSelection:"複製",untitled:"無題",name:"名前",yourName:"あなたの名前",madeWithExcalidraw:"Excalidrawで作成",group:"グループ化",ungroup:"グループ化を解除",collaborators:"共同編集者",showGrid:"グリッドを表示",addToLibrary:"ライブラリに追加",removeFromLibrary:"ライブラリから削除",libraryLoadingMessage:"ライブラリを読み込み中…",libraries:"ライブラリを参照する",loadingScene:"シーンを読み込み中…",align:"配置",alignTop:"上揃え",alignBottom:"下揃え",alignLeft:"左揃え",alignRight:"右揃え",centerVertically:"縦方向に中央揃え",centerHorizontally:"横方向に中央揃え",distributeHorizontally:"水平方向に分散配置",distributeVertically:"垂直方向に分散配置",flipHorizontal:"水平方向に反転",flipVertical:"垂直方向に反転",viewMode:"閲覧モード",share:"共有",showStroke:"ストロークカラーピッカーを表示",showBackground:"背景色ピッカーを表示",toggleTheme:"テーマの切り替え",personalLib:"個人ライブラリ",excalidrawLib:"Excalidrawライブラリ",decreaseFontSize:"フォントサイズを縮小",increaseFontSize:"フォントサイズを拡大",unbindText:"テキストのバインド解除",bindText:"テキストをコンテナにバインド",createContainerFromText:"コンテナ内でテキストを折り返す",link:{edit:"リンクを編集",editEmbed:"リンクの編集と埋め込み",create:"リンクを作成",createEmbed:"リンクの作成と埋め込み",label:"リンク",labelEmbed:"リンクと埋め込み",empty:"リンクが設定されていません"},lineEditor:{edit:"行を編集",exit:"行エディタを終了"},elementLock:{lock:"ロック",unlock:"ロック解除",lockAll:"すべてロック",unlockAll:"すべてのロックを解除"},statusPublished:"公開済み",sidebarLock:"サイドバーを開いたままにする",selectAllElementsInFrame:"フレーム内のすべての要素を選択",removeAllElementsFromFrame:"フレーム内のすべての要素を削除",eyeDropper:"キャンバスから色を選択",textToDiagram:"",prompt:""},t={noItems:"まだアイテムが追加されていません…",hint_emptyLibrary:"キャンバス上のアイテムを選択してここに追加するか、以下の公開リポジトリからライブラリをインストールしてください。",hint_emptyPrivateLibrary:"キャンバス上のアイテムを選択すると、ここに追加されます。"},o={clearReset:"キャンバスのリセット",exportJSON:"ファイルへエクスポート",exportImage:"画像のエクスポート...",export:"名前を付けて保存...",copyToClipboard:"クリップボードにコピー",save:"現在のファイルに保存",saveAs:"名前を付けて保存",load:"開く",getShareableLink:"共有URLの取得",close:"閉じる",selectLanguage:"言語の選択",scrollBackToContent:"コンテンツまでスクロールで戻る",zoomIn:"拡大",zoomOut:"縮小",resetZoom:"拡大/縮小をリセット",menu:"メニュー",done:"完了",edit:"編集",undo:"元に戻す",redo:"やり直し",resetLibrary:"ライブラリをリセット",createNewRoom:"新しい部屋を作成する",fullScreen:"フルスクリーン",darkMode:"ダークモード",lightMode:"ライトモード",zenMode:"Zenモード",objectsSnapMode:"",exitZenMode:"集中モードをやめる",cancel:"キャンセル",clear:"消去",remove:"削除",embed:"埋め込みの切り替え",publishLibrary:"公開",submit:"送信",confirm:"確認",embeddableInteractionButton:""},r={clearReset:"この操作によってキャンバス全体が消えます。よろしいですか?",couldNotCreateShareableLink:"共有URLを作成できませんでした。",couldNotCreateShareableLinkTooBig:"共有可能なリンクを作成できませんでした: シーンが大きすぎます",couldNotLoadInvalidFile:"無効なファイルを読み込めませんでした。",importBackendFailed:"サーバーからの読み込みに失敗しました。",cannotExportEmptyCanvas:"空のキャンバスはエクスポートできません。",couldNotCopyToClipboard:"クリップボードにコピーできませんでした。",decryptFailed:"データを復号できませんでした。",uploadedSecurly:"データのアップロードはエンドツーエンド暗号化によって保護されています。Excalidrawサーバーと第三者はデータの内容を見ることができません。",loadSceneOverridePrompt:"外部図面を読み込むと、既存のコンテンツが置き換わります。続行しますか?",collabStopOverridePrompt:`セッションを停止すると、ローカルに保存されている図が上書きされます。 本当によろしいですか? - -(ローカルの図を保持したい場合は、セッションを停止せずにブラウザタブを閉じてください。)`,errorAddingToLibrary:"アイテムをライブラリに追加できませんでした",errorRemovingFromLibrary:"ライブラリからアイテムを削除できませんでした",confirmAddLibrary:"{{numShapes}} 個の図形をライブラリに追加します。よろしいですか?",imageDoesNotContainScene:"この画像にはシーンデータが含まれていないようです。エクスポート時にシーンの埋め込みを有効にしましたか?",cannotRestoreFromImage:"このイメージファイルからシーンを復元できませんでした",invalidSceneUrl:"指定された URL からシーンをインポートできませんでした。不正な形式であるか、有効な Excalidraw JSON データが含まれていません。",resetLibrary:"ライブラリを消去します。本当によろしいですか?",removeItemsFromsLibrary:"{{count}} 個のアイテムをライブラリから削除しますか?",invalidEncryptionKey:"暗号化キーは22文字でなければなりません。ライブコラボレーションは無効化されています。",collabOfflineWarning:`インターネットに接続されていません。 -変更は保存されません!`},a={unsupportedFileType:"サポートされていないファイル形式です。",imageInsertError:"画像を挿入できませんでした。後でもう一度お試しください...",fileTooBig:"ファイルが大きすぎます。許可される最大サイズは {{maxSize}} です。",svgImageInsertError:"SVGイメージを挿入できませんでした。SVGマークアップは無効に見えます。",failedToFetchImage:"",invalidSVGString:"無効なSVGです。",cannotResolveCollabServer:"コラボレーションサーバに接続できませんでした。ページを再読み込みして、もう一度お試しください。",importLibraryError:"ライブラリを読み込めませんでした。",collabSaveFailed:"バックエンドデータベースに保存できませんでした。問題が解決しない場合は、作業を失わないようにローカルにファイルを保存してください。",collabSaveFailed_sizeExceeded:"キャンバスが大きすぎるため、バックエンドデータベースに保存できませんでした。問題が解決しない場合は、作業を失わないようにローカルにファイルを保存してください。",imageToolNotSupported:"",brave_measure_text_error:{line1:"Aggressly Block Fingerprinting の設定が有効なBraveブラウザを使用しているようです。",line2:"これにより、図面の テキスト要素 が壊れる可能性があります。",line3:"この設定を無効にすることを強く推奨します。 設定手順 をこちらから確認できます。",line4:"この設定を無効にすると、テキスト要素の表示が修正されません。 GitHub で Issue を開くか、 Discord にご記入ください"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"選択",image:"画像を挿入",rectangle:"矩形",diamond:"ひし形",ellipse:"楕円",arrow:"矢印",line:"直線",freedraw:"描画",text:"テキスト",library:"ライブラリ",lock:"描画後も使用中のツールを選択したままにする",penMode:"ペンモード - タッチ防止",link:"選択した図形のリンクを追加/更新",eraser:"消しゴム",frame:"フレームツール",magicframe:"",embeddable:"Web埋め込み",laser:"",hand:"手 (パンニングツール)",extraTools:"その他のツール",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"キャンバス操作",selectedShapeActions:"選択された図形に対する操作",shapes:"図形"},n={canvasPanning:"キャンバスを移動するには、マウスホイールまたはスペースバーを押しながらドラッグするか、手ツールを使用します",linearElement:"クリックすると複数の頂点からなる曲線を開始、ドラッグすると直線",freeDraw:"クリックしてドラッグします。離すと終了します",text:"ヒント: 選択ツールを使用して任意の場所をダブルクリックしてテキストを追加することもできます",embeddable:"",text_selected:"テキストを編集するには、ダブルクリックまたはEnterキーを押します",text_editing:"Esc キーまたは CtrlOrCmd+ENTER キーを押して編集を終了します",linearElementMulti:"最後のポイントをクリックするか、エスケープまたはEnterを押して終了します",lockAngle:"SHIFTを押したままにすると、角度を制限することができます",resize:"サイズを変更中にSHIFTを押すと縦横比を固定できます。Altを押すと中央からサイズを変更できます",resizeImage:`SHIFTを長押しすると自由にサイズを変更できます。 -中央からサイズを変更するにはALTを長押しします`,rotate:"回転中にSHIFT キーを押すと角度を制限することができます",lineEditor_info:"CtrlOrCmd を押したままダブルクリックするか、CtrlOrCmd + Enter を押して点を編集します",lineEditor_pointSelected:"Deleteキーを押すと点を削除、CtrlOrCmd+Dで複製、マウスドラッグで移動",lineEditor_nothingSelected:`編集する点を選択(SHIFTを押したままで複数選択)、 -Altキーを押しながらクリックすると新しい点を追加`,placeImage:"クリックして画像を配置するか、クリックしてドラッグしてサイズを手動で設定します",publishLibrary:"自分のライブラリを公開",bindTextToElement:"Enterを押してテキストを追加",deepBoxSelect:"CtrlOrCmd を押し続けることでドラッグを抑止し、深い選択を行います",eraserRevert:"Alt を押し続けることで削除マークされた要素を元に戻す",firefox_clipboard_write:'この機能は、"dom.events.asyncClipboard.clipboardItem" フラグを "true" に設定することで有効になる可能性があります。Firefox でブラウザーの設定を変更するには、"about:config" ページを参照してください。',disableSnapping:""},s={cannotShowPreview:"プレビューを表示できません",canvasTooBig:"キャンバスが大きすぎます。",canvasTooBigTip:"ヒント: 最も遠い要素をもう少し近づけてみてください。"},c={headingMain:"エラーが発生しました。もう一度やり直してください。 ",clearCanvasMessage:"再読み込みがうまくいかない場合は、 ",clearCanvasCaveat:" これにより作業が失われます ",trackedToSentry:"識別子のエラー {{eventId}} が我々のシステムで追跡されました。",openIssueMessage:"エラーに関するシーン情報を含めないように非常に慎重に設定しました。もしあなたのシーンがプライベートでない場合は、私たちのフォローアップを検討してください。 GitHub のIssueに以下の情報をコピーして貼り付けてください。",sceneContent:"シーンの内容:"},d={desc_intro:"他の人を編集中のあなたの画面に招待して共同編集することができます。",desc_privacy:"このセッションはエンドツーエンド暗号化されており、描画内容は保護されています。運営サーバーからも内容は見えません。",button_startSession:"セッションを開始する",button_stopSession:"セッションを終了する",desc_inProgressIntro:"共同編集セッションが有効になっています。",desc_shareLink:"下記URLを共同編集したい人に共有してください:",desc_exitSession:"セッションを終了するとあなたはルームから切断されますが、ローカルで作業を続けることができます。セッションを終了しても他のメンバには影響はなく、引き続き共同作業を行うことができます。",shareTitle:"Excalidrawの共同編集セッションに参加する"},m={title:"エラー"},b={disk_title:"ディスクに保存",disk_details:"シーンデータを後からインポートできるファイルにエクスポートします。",disk_button:"ファイルへ保存",link_title:"共有可能なリンク",link_details:"読み取り専用リンクとしてエクスポート",link_button:"リンクとしてエクスポート",excalidrawplus_description:"Excalidraw+ ワークスペースにシーンを保存します。",excalidrawplus_button:"エクスポート",excalidrawplus_exportError:"Excalidraw+ にエクスポートできませんでした..."},p={blog:"公式ブログを読む",click:"クリック",deepSelect:"深い選択",deepBoxSelect:"ボックス内の深い選択、およびドラッグの抑止",curvedArrow:"カーブした矢印",curvedLine:"曲線",documentation:"ドキュメント",doubleClick:"ダブルクリック",drag:"ドラッグ",editor:"エディタ",editLineArrowPoints:"",editText:"テキストの編集 / ラベルの追加",github:"不具合報告はこちら",howto:"ヘルプ・マニュアル",or:"または",preventBinding:"矢印を結合しない",tools:"ツール",shortcuts:"キーボードショートカット",textFinish:"編集を終了 (テキストエディタ)",textNewLine:"新しい行を追加 (テキスト)",title:"ヘルプ",view:"表示",zoomToFit:"すべての要素が収まるようにズーム",zoomToSelection:"選択要素にズーム",toggleElementLock:"選択したアイテムをロック/ロック解除",movePageUpDown:"ページを上下に移動",movePageLeftRight:"ページを左右に移動"},g={title:"キャンバスを消去"},u={title:"ライブラリを公開",itemName:"アイテム名",authorName:"作成者名",githubUsername:"GitHub ユーザ名",twitterUsername:"Twitter ユーザ名",libraryName:"ライブラリ名",libraryDesc:"ライブラリの説明",website:"Webサイト",placeholder:{authorName:"お名前またはユーザー名",libraryName:"あなたのライブラリ名",libraryDesc:"ライブラリの使い方を理解するための説明",githubHandle:"GitHubハンドル(任意)。一度レビューのために送信されると、ライブラリを編集できます",twitterHandle:"Twitterのユーザー名 (任意)。Twitterでプロモーションする際にクレジットする人を知っておくためのものです",website:"個人のウェブサイトまたは他のサイトへのリンク (任意)"},errors:{required:"必須項目",website:"有効な URL を入力してください"},noteDescription:"以下に含めるライブラリを提出してください 公開ライブラリのリポジトリ他の人が作図に使えるようにするためです",noteGuidelines:"最初にライブラリを手動で承認する必要があります。次をお読みください ガイドライン 送信する前に、GitHubアカウントが必要になりますが、必須ではありません。",noteLicense:"提出することにより、ライブラリが次の下で公開されることに同意します: MIT ライセンス つまり誰でも制限なく使えるということです",noteItems:"各ライブラリ項目は、フィルタリングのために独自の名前を持つ必要があります。以下のライブラリアイテムが含まれます:",atleastOneLibItem:"開始するには少なくとも1つのライブラリ項目を選択してください",republishWarning:"注意: 選択された項目の中には、すでに公開/投稿済みと表示されているものがあります。既存のライブラリや投稿を更新する場合のみ、アイテムを再投稿してください。"},h={title:"ライブラリを送信しました",content:"{{authorName}} さん、ありがとうございます。あなたのライブラリはレビューのために提出されました。状況を追跡できます。こちら"},y={resetLibrary:"ライブラリをリセット",removeItemsFromLib:"選択したアイテムをライブラリから削除"},S={header:"画像をエクスポート",label:{withBackground:"背景",onlySelected:"",darkMode:"ダークモード",embedScene:"",scale:"スケール",padding:"余白"},tooltip:{embedScene:""},title:{exportToPng:"PNG にエクスポート",exportToSvg:"SVG にエクスポート",copyPngToClipboard:"クリップボードにPNGをコピー"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"クリップボードにコピー"}},w={tooltip:"描画内容はエンドツーエンド暗号化が施されており、Excalidrawサーバーが内容を見ることはできません。",link:"Excalidrawのエンドツーエンド暗号化に関するブログ記事"},v={angle:"角度",element:"要素",elements:"要素",height:"高さ",scene:"シーン",selected:"選択済み",storage:"ストレージ",title:"詳細統計情報",total:"合計",version:"バージョン",versionCopy:"クリックしてコピー",versionNotAvailable:"利用できないバージョン",width:"幅"},x={addedToLibrary:"ライブラリに追加しました",copyStyles:"スタイルをコピーしました。",copyToClipboard:"クリップボードにコピー",copyToClipboardAsPng:`{{exportSelection}} を PNG 形式でクリップボードにコピーしました -({{exportColorScheme}})`,fileSaved:"ファイルを保存しました",fileSavedToFilename:"{filename} に保存しました",canvas:"キャンバス",selection:"選択",pasteAsSingleElement:`{{shortcut}} を使用して単一の要素として貼り付けるか、 -既存のテキストエディタに貼り付け`,unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"透明",black:"黒",white:"白",red:"赤",pink:"ピンク",grape:"グレープ",violet:"バイオレット",gray:"灰色",blue:"青",cyan:"シアン",teal:"ティール",green:"緑",yellow:"黄",orange:"オレンジ",bronze:"ブロンズ"},T={app:{center_heading:"すべてのデータはブラウザにローカル保存されます。",center_heading_plus:"代わりにExcalidraw+を開きますか?",menuHint:"エクスポート、設定、言語..."},defaults:{menuHint:"エクスポート、設定、その他...",center_heading:"ダイアグラムを簡単に。",toolbarHint:"ツールを選んで描き始めよう!",helpHint:"ショートカットとヘルプ"}},E={mostUsedCustomColors:"最も使用されているカスタム色",colors:"色",shades:"影",hexCode:"Hexコード",noShades:""},L={action:{exportToImage:{title:"画像としてエクスポート",button:"画像としてエクスポート",description:""},saveToDisk:{title:"ディスクに保存",button:"ディスクに保存",description:""},excalidrawPlus:{title:"Excalidraw+",button:"Excalidraw+にエクスポート",description:"Excalidraw+ ワークスペースにシーンを保存します。"}},modal:{loadFromFile:{title:"ファイルからロード",button:"ファイルからロード",description:""},shareableLink:{title:"リンクからロード",button:"",description:""}}},_={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:w,stats:v,toast:x,colors:k,welcomeScreen:T,colorPicker:E,overwriteConfirm:L,mermaid:_};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,k as colors,y as confirmDialog,C as default,w as encrypted,m as errorDialog,c as errorSplash,a as errors,b as exportDialog,l as headings,p as helpDialog,n as hints,S as imageExportDialog,e as labels,t as library,_ as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,v as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=ja-JP.json-2da-VeKb.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js.map b/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js.map deleted file mode 100644 index 10fa39a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ja-JP.json-2da-VeKb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ja-JP.json-2da-VeKb.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js b/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js deleted file mode 100644 index 32e5d49..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"Qoyıw",pasteAsPlaintext:"Ápiwayı tekst retinde qoyıw",pasteCharts:"Diagrammalardı qoyıw",selectAll:"Barlıǵın tańlaw",multiSelect:"",moveCanvas:"",cut:"Qıyıw",copy:"Kóshirip alıw",copyAsPng:"Almasıw buferine PNG retinde kóshirip alıw",copyAsSvg:"Almasıw buferine SVG retinde kóshirip alıw",copyText:"Almasıw buferine tekst retinde kóshirip alıw",copySource:"",convertToCode:"",bringForward:"",sendToBack:"",bringToFront:"",sendBackward:"",delete:"Óshiriw",copyStyles:"",pasteStyles:"",stroke:"Jiyek",background:"Fon",fill:"",strokeWidth:"",strokeStyle:"",strokeStyle_solid:"",strokeStyle_dashed:"",strokeStyle_dotted:"",sloppiness:"",opacity:"",textAlign:"",edges:"Qırlar",sharp:"",round:"",arrowheads:"",arrowhead_none:"Joq",arrowhead_arrow:"Jebe",arrowhead_bar:"",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Shrift ólshemi",fontFamily:"Shrift toplamı",addWatermark:"",handDrawn:"",normal:"",code:"Kod",small:"",medium:"Ortasha",large:"Úlken",veryLarge:"Júdá úlken",solid:"",hachure:"",zigzag:"Zigzag",crossHatch:"",thin:"Jińishke",bold:"Qalıń",left:"",center:"",right:"",extraBold:"",architect:"",artist:"Súwretshi",cartoonist:"",fileTitle:"Fayl ataması",colorPicker:"Reńdi tańlaw",canvasColors:"",canvasBackground:"",drawingCanvas:"",layers:"Qatlamlar",actions:"Háreketler",language:"Til",liveCollaboration:"",duplicateSelection:"Nusqa",untitled:"Atamasız",name:"Ataması",yourName:"Atıńız",madeWithExcalidraw:"Excalidraw járdeminde islengen",group:"",ungroup:"",collaborators:"Qatnasıwshılar",showGrid:"",addToLibrary:"Kitapxanaǵa qosıw",removeFromLibrary:"Kitapxanadan alıp taslaw",libraryLoadingMessage:"Kitapxana júklenbekte…",libraries:"Kitapxanalardı kóriw",loadingScene:"Saxna júklenbekte…",align:"",alignTop:"",alignBottom:"",alignLeft:"",alignRight:"",centerVertically:"",centerHorizontally:"",distributeHorizontally:"",distributeVertically:"",flipHorizontal:"",flipVertical:"",viewMode:"Kóriw rejimi",share:"Bólisiw",showStroke:"",showBackground:"",toggleTheme:"Temanı ózgertiw",personalLib:"Jeke kitapxana",excalidrawLib:"Excalidraw kitapxanası",decreaseFontSize:"Shrift ólshemin kishireytiw",increaseFontSize:"Shrift ólshemin úlkeytiw",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"Siltemeni ózgertiw",editEmbed:"",create:"Siltemeni jaratıw",createEmbed:"",label:"Silteme",labelEmbed:"",empty:""},lineEditor:{edit:"Qatardı ózgertiw",exit:"Qatardı ózgertiw redaktorınan shıǵıw"},elementLock:{lock:"Qulıplaw",unlock:"Qulıptan shıǵarıw",lockAll:"Barlıǵın qulıplaw",unlockAll:"Barlıǵın qulıptan shıǵarıw"},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"",exportJSON:"",exportImage:"Súwretti eksportlaw...",export:"Retinde saqlaw...",copyToClipboard:"Almasıw buferine kóshirip alındı",save:"Ámeldegi faylǵa saqlaw",saveAs:"Retinde saqlaw",load:"Ashıw",getShareableLink:"",close:"Jabıw",selectLanguage:"Tildi tańlaw",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"Menyu",done:"Tayın",edit:"Ózgertiw",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"Tolıq ekran",darkMode:"Qarańǵı tema",lightMode:"Jaqtı tema",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"Biykarlaw",clear:"Tazalaw",remove:"Óshiriw",embed:"",publishLibrary:"Jariyalaw",submit:"Jiberiw",confirm:"Tastıyıqlaw",embeddableInteractionButton:""},r={clearReset:"",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"",couldNotCopyToClipboard:"Almasıw buferine kóshirip alıw ámelge aspadı.",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},i={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"Jaramsız SVG.",cannotResolveCollabServer:"",importLibraryError:"Kitapxananı júklew ámelge aspadı",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},o={selection:"",image:"Súwret qoyıw",rectangle:"Tórt múyeshlik",diamond:"",ellipse:"",arrow:"",line:"Sızıq",freedraw:"Sızıw",text:"Tekst",library:"Kitapxana",lock:"",penMode:"",link:"",eraser:"Óshirgish",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"",selectedShapeActions:"",shapes:"Figuralar"},n={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"Tekst qosıw ushın Enter túymesin basıń",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Aldınnan kóriwdi kórsetiw múmkin emes",canvasTooBig:"",canvasTooBigTip:""},d={headingMain:"",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},c={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:"Qátelik"},p={disk_title:"Diskke saqlaw",disk_details:"",disk_button:"Faylǵa saqlaw",link_title:"",link_details:"",link_button:"Siltemege eksportlaw",excalidrawplus_description:"",excalidrawplus_button:"Eksportlaw",excalidrawplus_exportError:""},w={blog:"Biziń blogtı oqıń",click:"basıw",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"Hújjetshilik",doubleClick:"",drag:"",editor:"Redaktor",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"yamasa",preventBinding:"",tools:"Ásbaplar",shortcuts:"",textFinish:"",textNewLine:"",title:"Járdem",view:"Kóriw",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},g={title:"",itemName:"",authorName:"Avtor atı",githubUsername:"GitHub paydalanıwshı atı",twitterUsername:"Twitter paydalanıwshı atı",libraryName:"Kitapxana ataması",libraryDesc:"",website:"Veb-sayt",placeholder:{authorName:"Atıńız yamasa paydalanıwshı atı",libraryName:"Kitapxanańız ataması",libraryDesc:"",githubHandle:"",twitterHandle:"",website:"Jeke veb-saytıńız yamasa basqa saytqa silteme (májbúriy emes)"},errors:{required:"Májbúriy",website:"Jaramlı URL mánzil kirgiziń"},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"Kitapxana jiberildi",content:""},y={resetLibrary:"Kitapxananı qayta ornatıw",removeItemsFromLib:""},u={header:"Súwretti eksportlaw",label:{withBackground:"Fon",onlySelected:"",darkMode:"Qarańǵı tema",embedScene:"",scale:"Kólem",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Almasıw buferine kóshirip alıw"}},k={tooltip:"",link:""},S={angle:"",element:"Element",elements:"Elementler",height:"",scene:"Saxna",selected:"Tańlandı",storage:"",title:"",total:"",version:"Versiya",versionCopy:"Kóshirip alıw ushın basıń",versionNotAvailable:"",width:"Eni"},v={addedToLibrary:"Kitapxanaǵa qosıldı",copyStyles:"",copyToClipboard:"Almasıw buferine kóshirip alındı.",copyToClipboardAsPng:"",fileSaved:"Fayl saqlandı.",fileSavedToFilename:"{filename} saqlandı",canvas:"",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"",black:"Qara",white:"Aq",red:"Qızıl",pink:"Qızǵılt",grape:"",violet:"Qızǵılt kók",gray:"",blue:"Kók",cyan:"Kók aspan",teal:"Piruza",green:"Jasıl",yellow:"Sarı",orange:"Qızǵılt sarı",bronze:""},T={app:{center_heading:"",center_heading_plus:"Excalidraw+ ge ótiwdi qáleysiz be?",menuHint:"Eksportlaw, sazlawlar, tiller, ..."},defaults:{menuHint:"Eksportlaw, sazlawlar hám basqa...",center_heading:"Diagrammalar. Ápiwayı.",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"Kóp qollanılatuǵın arnawlı reńler",colors:"Reńler",shades:"",hexCode:"",noShades:""},f={action:{exportToImage:{title:"Súwret retinde eksportlaw",button:"Súwret retinde eksportlaw",description:""},saveToDisk:{title:"Diskke saqlaw",button:"Diskke saqlaw",description:""},excalidrawPlus:{title:"Excalidraw+",button:"",description:""}},modal:{loadFromFile:{title:"Fayldan júklew",button:"Fayldan júklew",description:""},shareableLink:{title:"Siltemeden júklew",button:"",description:""}}},z={title:"",button:"",description:"",syntax:"",preview:""},E={labels:e,library:a,buttons:t,alerts:r,errors:i,toolBar:o,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:p,helpDialog:w,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:u,encrypted:k,stats:S,toast:v,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:f,mermaid:z};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,E as default,k as encrypted,m as errorDialog,d as errorSplash,i as errors,p as exportDialog,l as headings,w as helpDialog,n as hints,u as imageExportDialog,e as labels,a as library,z as mermaid,f as overwriteConfirm,g as publishDialog,h as publishSuccessDialog,c as roomDialog,S as stats,v as toast,o as toolBar,T as welcomeScreen}; -//# sourceMappingURL=kaa.json-SGqCLwRa.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js.map b/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js.map deleted file mode 100644 index cadb2a4..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kaa.json-SGqCLwRa.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"kaa.json-SGqCLwRa.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js b/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js deleted file mode 100644 index 28cb271..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"Senṭeḍ",pasteAsPlaintext:"",pasteCharts:"Senṭeḍ udlifen",selectAll:"Fren akk",multiSelect:"Rnu aferdis ɣer tefrayt",moveCanvas:"Smutti taɣzut n usuneɣ",cut:"Gzem",copy:"Nɣel",copyAsPng:"Nɣel ɣer tecfawit am PNG",copyAsSvg:"Nɣel ɣer tecfawit am SVG",copyText:"Nɣel ɣer tecfawit am uḍris",copySource:"",convertToCode:"",bringForward:"Awi ɣer sdat",sendToBack:"Awi s agilal",bringToFront:"Err ɣer deffir",sendBackward:"Awi ɣer deffir",delete:"Kkes",copyStyles:"Nɣel iɣunab",pasteStyles:"Senṭeḍ iɣunab",stroke:"Azizdew",background:"Agilal",fill:"Taččart",strokeWidth:"Tehri n yizirig",strokeStyle:"Aɣanib n tizirig",strokeStyle_solid:"Aččuran",strokeStyle_dashed:"S tjerriḍin",strokeStyle_dotted:"S tenqiḍin",sloppiness:"Astehzi",opacity:"Tiḍullest",textAlign:"Areyyec n uḍris",edges:"Leryuf",sharp:"Yemsed",round:"Imdewer",arrowheads:"Ixfawen n tenccabt",arrowhead_none:"Ulac",arrowhead_arrow:"Taneccabt",arrowhead_bar:"Afeggag",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Akerdis",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tiddi n tsefsit",fontFamily:"Tawacult n tsefsiyin",addWatermark:'Seddu "Yettwaxdem s Excalidraw"',handDrawn:"Asuneɣ s ufus",normal:"Amagnu",code:"Tangalt",small:"Meẓẓi",medium:"Alemmas",large:"Ameqran",veryLarge:"Meqqer aṭas",solid:"Aččuran",hachure:"Azerreg",zigzag:"",crossHatch:"Azerreg anmidag",thin:"Arqaq",bold:"Azuran",left:"Azelmaḍ",center:"Talemmast",right:"Ayfus",extraBold:"Azuran aṭas",architect:"Amasdag",artist:"Anaẓur",cartoonist:"Amefɣul",fileTitle:"Isem n ufaylu",colorPicker:"Amafran n yini",canvasColors:"Yettwaseqdec di teɣzut n usuneɣ",canvasBackground:"Agilal n teɣzut n usuneɣ",drawingCanvas:"Taɣzut n usuneɣ",layers:"Tissiyin",actions:"Tigawin",language:"Tutlayt",liveCollaboration:"Amɛiwen s srid...",duplicateSelection:"Sisleg",untitled:"War azwel",name:"Isem",yourName:"Isem-ik (im)",madeWithExcalidraw:"Yettwaxdem s Excalidraw",group:"Segrew tafrayt",ungroup:"Kkess asegrew i tefrayt",collaborators:"Imɛiwnen",showGrid:"Beqqeḍ aferrug",addToLibrary:"Rnu ɣer temkarḍit",removeFromLibrary:"Kkes si temkarḍit",libraryLoadingMessage:"Asali n temkarḍit…",libraries:"Snirem timkarḍiyin",loadingScene:"Asali n usayes…",align:"Reyyec",alignTop:"Areyyec uksawen",alignBottom:"Areyyec ukessar",alignLeft:"Reyyec s azelmaḍ",alignRight:"Areyyec s ayfus",centerVertically:"Di tlemmast s ibeddi",centerHorizontally:"Di tlemmast s uglawi",distributeHorizontally:"Freq s uglawi",distributeVertically:"Freq s yibeddi",flipHorizontal:"Tuttya taglawant",flipVertical:"Tuttya tubdidt",viewMode:"Askar n tmuɣli",share:"Bḍu",showStroke:"Beqqeḍ amelqaḍ n yini n yizirig",showBackground:"Beqqeḍ amelqaḍ n yini n ugilal",toggleTheme:"Snifel asentel",personalLib:"Tamkarḍit tudmawant",excalidrawLib:"Tamkarḍit n Excalidraw",decreaseFontSize:"Senqes tiddi n tsefsit",increaseFontSize:"Sali tiddi n tsefsit",unbindText:"Serreḥ iweḍris",bindText:"Arez aḍris s anagbar",createContainerFromText:"",link:{edit:"Ẓreg aseɣwen",editEmbed:"",create:"Snulfu-d aseɣwen",createEmbed:"",label:"Aseɣwen",labelEmbed:"",empty:""},lineEditor:{edit:"Ẓreg izirig",exit:"Ffeɣ seg umaẓrag n yizirig"},elementLock:{lock:"Sekkeṛ",unlock:"Serreḥ",lockAll:"Sekkeṛ akk",unlockAll:"Serreḥ akk"},statusPublished:"Yeffeɣ-d",sidebarLock:"Eǧǧ afeggag n yidis yeldi",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Ulac iferdisen yettwarnan yakan...",hint_emptyLibrary:"Fren aferdis di teɣzut nusuneɣ akken at-ternuḍ dagi, neɣ sbedd tamkarḍit seg usarsay azayez, ukessar-agi.",hint_emptyPrivateLibrary:"Fren aferdis di teɣzut nusuneɣ akken at-ternuḍ dagi."},t={clearReset:"Ales awennez n teɣzut n usuneɣ",exportJSON:"Sifeḍ afaylu",exportImage:"Sifeḍ tugna...",export:"Sekles di...",copyToClipboard:"Nɣel ɣer tecfawit",save:"Sekles deg ufaylu amiran",saveAs:"Sekles am",load:"Ldi",getShareableLink:"Awi-d aseɣwen n beṭṭu",close:"Mdel",selectLanguage:"Fren tutlayt",scrollBackToContent:"Uɣal s agbur",zoomIn:"Simɣur",zoomOut:"Simẓi",resetZoom:"Ales awennez n usemɣer",menu:"Umuɣ",done:"Ifukk",edit:"Ẓreg",undo:"Sefsex",redo:"Err-d",resetLibrary:"Ales awennez n temkarḍit",createNewRoom:"Snulfu-d taxxamt tamaynutt",fullScreen:"Agdil aččuran",darkMode:"Askar imsulles",lightMode:"Askar afaw",zenMode:"Askar Zen",objectsSnapMode:"",exitZenMode:"Ffeɣ seg uskar Zen",cancel:"Sefsex",clear:"Sfeḍ",remove:"Kkes",embed:"",publishLibrary:"Ẓreg",submit:"Azen",confirm:"Sentem",embeddableInteractionButton:""},i={clearReset:"Ayagi ad isfeḍ akk taɣzut n usuneɣ. Tetḥeqqeḍ?",couldNotCreateShareableLink:"D awezɣi asnulfu n useɣwen n beṭṭu.",couldNotCreateShareableLinkTooBig:"D awezɣi asnulfu n useɣwen n beṭṭu. Asayes ɣezzif aṭas",couldNotLoadInvalidFile:"D awezɣi asali n ufaylu armeɣtu",importBackendFailed:"Takterḍ seg uɣawas n deffir ur teddi ara.",cannotExportEmptyCanvas:"D awezɣi asifeḍ n teɣzut n usuneɣ tilemt.",couldNotCopyToClipboard:"Ulamek anɣal ɣer tecfawit.",decryptFailed:"D awezɣi tukksa n uwgelhen i yisefka.",uploadedSecurly:"Asili yettwasɣelles s uwgelhen ixef s ixef, ayagi yebɣa ad d-yini belli aqeddac n Excalidraw akked medden ur zmiren ara ad ɣren agbur.",loadSceneOverridePrompt:"Asali n wunuɣ uffiɣ ad isemselsi agbur-inek (m) yellan. Tebɣiḍ ad tkemmeleḍ?",collabStopOverridePrompt:`Aḥbas n tɣimit ad yesefsex unuɣ-inek (m) yettwaḥerzen yakan s wudem adigan. Tetḥeqqeḍ? -(Ma tebɣiḍ ad teǧǧeḍ unuɣ-inek (m) adigan, mdel iccer n yiminig, deg umḍiq.)`,errorAddingToLibrary:"Ulamek ara yettwarnu uferdis ɣer temkarḍit",errorRemovingFromLibrary:"Ulamek ara yettwakkes uferdis si temkarḍit",confirmAddLibrary:"Ayagi adirnu talɣa (win) {{numShapes}} ɣer temkarḍit-inek (m). Tetḥeqqeḍ?",imageDoesNotContainScene:"Tugna-agi tettban-d ur tesɛi ara isefka n usayes. Tesremdeḍ aseddu n usayes deg usifeḍ?",cannotRestoreFromImage:"Asayes ulamek ara d-yettwarr seg ufaylu-agi n tugna",invalidSceneUrl:"Ulamek taktert n usayes seg URL i d-ittunefken. Ahat mačči d tameɣtut neɣ ur tegbir ara isefka JSON n Excalidraw.",resetLibrary:"Ayagi ad isfeḍ tamkarḍit-inek•m. Tetḥeqqeḍ?",removeItemsFromsLibrary:"Ad tekkseḍ {{count}} n uferdis (en) si temkarḍit?",invalidEncryptionKey:"Tasarut n uwgelhen isefk ad tesɛu 22 n yiekkilen. Amɛiwen srid yensa.",collabOfflineWarning:`Ulac tuqqna n internet. -Ibedilen-ik ur ttwaklasen ara!`},n={unsupportedFileType:"Anaw n ufaylu ur yettwasefrak ara.",imageInsertError:"D awezɣi tugra n tugna. Eɛreḍ tikkelt-nniḍen ardeqqal...",fileTooBig:"Afaylu meqqer aṭas. Tiddi tafellayt yurgen d {{maxSize}}.",svgImageInsertError:"D awezɣi tugra n tugna SVG. Acraḍ SVG yettban-d d armeɣtu.",failedToFetchImage:"",invalidSVGString:"SVG armeɣtu.",cannotResolveCollabServer:"Ulamek tuqqna s aqeddac n umyalel. Ma ulac uɣilif ales asali n usebter sakin eɛreḍ tikkelt-nniḍen.",importLibraryError:"Ur d-ssalay ara tamkarḍit",collabSaveFailed:"Ulamek asekles deg uzadur n yisefka deg ugilal. Ma ikemmel wugur, isefk ad teskelseḍ afaylu s wudem adigan akken ad tetḥeqqeḍ ur tesruḥuyeḍ ara amahil-inek•inem.",collabSaveFailed_sizeExceeded:"Ulamek asekles deg uzadur n yisefka deg ugilal, taɣzut n usuneɣ tettban-d temqer aṭas. Isefk ad teskelseḍ afaylu s wudem adigan akken ad tetḥeqqeḍ ur tesruḥuyeḍ ara amahil-inek•inem.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"Ayagi yezmer ad d-iglu s truẓi nIferdisen n uḍrisdeg wunuɣen-inek.",line3:"Ad k-nsemter ad tsexsiḍ aɣewwar-agi. Tzemreḍ ad tḍefreḍisurifen-agi ɣef wamek ara txedmeḍ.",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Tafrayt",image:"Ger tugna",rectangle:"Asrem",diamond:"Ameɣṛun",ellipse:"Taglayt",arrow:"Taneccabt",line:"Izirig",freedraw:"Suneɣ",text:"Aḍris",library:"Tamkarḍit",lock:"Eǧǧ afecku n tefrayt yermed mbaɛd asuneɣ",penMode:"Askar n yimru - gdel tanalit",link:"Rnu/leqqem aseɣwen i talɣa yettwafernen",eraser:"Sfeḍ",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Afus (afecku n usmutti n tmuɣli)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Tigawin n teɣzut n usuneɣ",selectedShapeActions:"Tigawin n talɣa yettwafernen",shapes:"Talɣiwin"},l={canvasPanning:"Akken ad tesmuttiḍ taɣzut n usuneɣ, ṭṭef ṛṛuda n umumed, neɣ seqdec afecku Afus",linearElement:"Ssit akken ad tebduḍ aṭas n tenqiḍin, zuɣer i yiwen n yizirig",freeDraw:"Ssit yerna zuɣer, serreḥ ticki tfukeḍ",text:"Tixidest: tzemreḍ daɣen ad ternuḍ aḍris s usiti snat n tikkal anida tebɣiḍ s ufecku n tefrayt",embeddable:"",text_selected:"Ssit snat n tikkal neɣ ssed taqeffalt Kcem akken ad tẓergeḍ aḍris",text_editing:"Ssit Escape neɣ CtrlOrCmd+ENTER akken ad tfakkeḍ asiẓreg",linearElementMulti:"Ssit ɣef tenqiḍt taneggarut neɣ ssed taqeffalt Escape neɣ taqeffalt Kcem akken ad tfakkeḍ",lockAngle:"Tzemreḍ ad tḥettmeḍ tiɣmert s tuṭṭfa n tqeffalt SHIFT",resize:`Tzemreḍ ad tḥettemeḍ assaɣ s tuṭṭfa n tqeffalt SHIFT mi ara tettbeddileḍ tiddi, -ma teṭṭfeḍ ALT abeddel n tiddi ad yili si tlemmast`,resizeImage:`Tzemreḍ ad talseḍ tiddi s tilelli s tuṭṭfa n SHIFT, -ṭṭef ALT akken ad talseḍ tiddi si tlemmast`,rotate:"Tzemreḍ ad tḥettemeḍ tiɣemmar s tuṭṭfa n SHIFT di tuzzya",lineEditor_info:"Ssed ɣef CtrlOrCmd yerna ssit snat n tikkal neɣ ssed ɣef CtrlOrCmd + Kcem akken ad tẓergeḍ tineqqiḍin",lineEditor_pointSelected:`Ssed taqeffalt kkes akken ad tekkseḍ tanqiḍ (tinqiḍin), -CtrlOrCmd+D akken ad tsiselgeḍ, neɣ zuɣer akken ad tesmuttiḍ`,lineEditor_nothingSelected:`Fren tanqiḍt akken ad tẓergeḍ (ṭṭef SHIFT akken ad tferneḍ aṭas), -neɣ ṭṭef Alt akken ad ternuḍ tinqiḍin timaynutin`,placeImage:"Ssit akken ad tserseḍ tugna, neɣ ssit u zuɣer akken ad tesbaduḍ tiddi-ines s ufus",publishLibrary:"Siẓreg tamkarḍit-inek•inem",bindTextToElement:"Ssed ɣef kcem akken ad ternuḍ aḍris",deepBoxSelect:"Ṭṭef CtrlOrCmd akken ad tferneḍ s telqey, yerna ad trewleḍ i uzuɣer",eraserRevert:"Ssed Alt akken ad tsefsxeḍ iferdisen yettwacerḍen i tukksa",firefox_clipboard_write:"",disableSnapping:""},d={cannotShowPreview:"Ulamek abeqqeḍ n teskant",canvasTooBig:"Taɣzut n usuneɣ tezmer ad tili temeqqer aṭas.",canvasTooBigTip:"Tixidest: eɛreḍ ad tesqerbeḍ ciṭ iferdisen yembaɛaden."},u={headingMain:"Teḍra-d tuccḍa. Eɛreḍ ",clearCanvasMessage:"Ma yella tulsa n usali ur tefri ara ugur, eɛreḍ ",clearCanvasCaveat:" Ayagi ad d-iglu s usṛuḥu n umahil ",trackedToSentry:"Tuccḍa akked umesmagi {{eventId}} tettwasekles deg unagraw-nneɣ.",openIssueMessage:"Nḥuder aṭas akken ur nseddu ara talɣut n usayes-inek (m) di tuccḍa. Ma yella asayes-inek (m) mačči d amaẓlay, ttxil-k (m) xemmem ad ḍefreḍ Ma ulac uɣilif seddu talɣut ukessar-agi s wenɣal akked usenṭeḍ di GitHub issue.",sceneContent:"Agbur n usayes:"},o={desc_intro:"Tzemreḍ ad d-teɛerḍeḍ medden ɣer usayes-inek (m) amiran akken ad ttekkin yid-k.",desc_privacy:"Ur tqelliq ara, tiɣimit tsseqdac awgelhen ixef s ixef, dɣa ayen ara tsunɣeḍ ad iqqim d amaẓlay. Ula d aqeddac-nneɣ ur yezmir ara ad iwali acu txeddemeḍ.",button_startSession:"Bdu tiɣimit",button_stopSession:"Ḥbes tiɣimit",desc_inProgressIntro:"Tiɣimit n umɛawen s srid tetteddu akka tura.",desc_shareLink:"Bḍu aseɣwen-agi akked medden ukud tebɣiḍ ad temɛawaneḍ:",desc_exitSession:"Aḥbas n tɣimit ad k (m) yesenser si texxamt, maca ad tizmireḍ ad tkemmeleḍ amahil s usayes, s wudem adigan. Ẓer belli ayagi ur yettḥaz ara imdanen-nniḍen, yerna ad izmiren ad kemmelen ad mɛawanen di tsuffeɣt-nnsen.",shareTitle:"Rnu ɣer tɣimit n umɛiwen s srid n Excalidraw"},m={title:"Tuccḍa"},k={disk_title:"Sekles deg uḍebsi",disk_details:"Sekles isefka n usayes deg ufaylu ansi ara tizmireḍ ad d-tketreḍ areḍqal.",disk_button:"Sekles deg ufaylu",link_title:"Aseɣwen n beṭṭu",link_details:"Sifeḍ am useɣwen n tɣuri kan.",link_button:"Sifeḍ deg useɣwen",excalidrawplus_description:"Sekles asayes-inek•inem di tallunt n umahil Excalidraw+.",excalidrawplus_button:"Sifeḍ",excalidrawplus_exportError:"Ulamek asifeḍ ɣer Excalidraw+ akka tura..."},c={blog:"Ɣeṛ ablug-nneɣ",click:"ssit",deepSelect:"Afran s telqey",deepBoxSelect:"Afran s telqey s tnaka, yerna ad tyrewleḍ i uzuɣer",curvedArrow:"Taneccabt izelgen",curvedLine:"Izirig izelgen",documentation:"Tasemlit",doubleClick:"ssit snat n tikkal",drag:"zuɣer",editor:"Amaẓrag",editLineArrowPoints:"Ẓreg tinqiḍin n yizirig/taneccabt",editText:"Ẓreg aḍris/rnu tabzimt",github:"Tufiḍ-d ugur? Azen-aɣ-d",howto:"Ḍfer imniren-nneɣ",or:"neɣ",preventBinding:"Seḥbes tuqqna n tneccabin",tools:"Ifecka",shortcuts:"Inegzumen n unasiw",textFinish:"Fak asiẓreg (amaẓrag n uḍris)",textNewLine:"Rnu ajerriḍ amaynut (amaẓrag n uḍris)",title:"Tallelt",view:"Tamuɣli",zoomToFit:"Simɣur akken ad twliḍ akk iferdisen",zoomToSelection:"Simɣur ɣer tefrayt",toggleElementLock:"Sekkeṛ/kkes asekker i tefrayt",movePageUpDown:"Smutti asebter d asawen/akessar",movePageLeftRight:"Smutti asebter s azelmaḍ/ayfus"},g={title:"Sfeḍ taɣzut n usuneɣ"},y={title:"Suffeɣ-d tamkarḍit",itemName:"Isem n uferdis",authorName:"Isem n umeskar",githubUsername:"Isem n useqdac n GitHub",twitterUsername:"Isem n useqdac n Twitter",libraryName:"Isem n temkarḍit",libraryDesc:"Aglam n temkarḍit",website:"Asmel n web",placeholder:{authorName:"Isem neɣ isem n useqdac inek•inem",libraryName:"Isem n temkarḍit-inek•inem",libraryDesc:"Aglam n temkarḍit-inek•inem akken ad tɛiwneḍ medden ad fehmen aseqdec-inec",githubHandle:"Isem n useqdac n GitHub ( d anefrunan) akken ad tizmireḍ ad tisẓrigeḍ tamkarḍit ticki tuzneḍ-tt i uselken",twitterHandle:"Isem n useqdac n Twitter (d anefrunan) akken ad nẓer anwa ara nsenmer deg udellel di Twitter",website:"Aseɣwen ɣer usmel-inek•inem neɣ wayeḍ (d anefrunan)"},errors:{required:"Yettwasra",website:"Sekcem URL ameɣtu"},noteDescription:"Azen tamkarḍit-inek•inem akken ad teddu di akaram azayez n temkarḍiti yimdanen-nniḍen ara isqedcen deg wunuɣen-nnsen.",noteGuidelines:"Tamkarḍit teḥwaǧ ad tettwaqbel s ufus qbel. Ma ulac uɣilif ɣer iwellihen send ad tazneḍ. Tesriḍ amiḍan n GitHub akken ad tmmeslayeḍ yerna ad tgeḍ ibeddilen ma yelaq, maca mačči d ayen yettwaḥetmen.",noteLicense:"Mi tuzneḍ ad tqebleḍ akken tamkarḍit ad d-teffeɣ s Turagt MIT, ayen yebɣan ad d-yini belli yal yiwen izmer ad ten-iseqdec war tilist.",noteItems:"Yal aferdis n temkarḍit isefk ad isɛu isem-is i yiman-is akken ad yili wamek ara yettusizdeg. Iferdisen-agi n temkarḍit ad ddun:",atleastOneLibItem:"Ma ulac uɣilif fern ma drus yiwen n uferdis n temkarḍit akken ad tebduḍ",republishWarning:"Tamawt: kra n yiferdisen yettwafernen ttwacerḍen ffeɣen-d/ttwaznen. Isefk ad talseḍ tuzzna n yiferdisen anagar mi ara tleqqemeḍ tamkarḍit neɣ tuzzna yellan."},f={title:"Tamkarḍit tettwazen",content:"Tanemmirt-ik•im {{authorName}}. Tamkarḍit-inek•inem tettwazen i weselken. Tzemreḍ ad tḍefreḍ aẓayerdagi"},w={resetLibrary:"Ales awennez n temkarḍit",removeItemsFromLib:"Kkes iferdisen yettafernen si temkarḍit"},b={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"Unuɣen-inek (m) ttuwgelhnen seg yixef s ixef dɣa iqeddacen n Excalidraw werǧin ad ten-walin. ",link:"Amagrad ɣef uwgelhen ixef s ixef di Excalidraw"},p={angle:"Tiɣmeṛt",element:"Aferdis",elements:"Iferdisen",height:"Tattayt",scene:"Asayes",selected:"Yettwafren",storage:"Aḥraz",title:"",total:"Aɣrud",version:"Alqem",versionCopy:"Sit ad tneɣleḍ",versionNotAvailable:"Ur inuḥ ulqem",width:"Tehri"},z={addedToLibrary:"Yettwarna ɣer temkarḍit",copyStyles:"Iɣunab yettwaneɣlen.",copyToClipboard:"Yettwaɣel ɣer tecfawit.",copyToClipboardAsPng:`{{exportSelection}} yettwanɣel ɣer tecfawit am PNG -({{exportColorScheme}})`,fileSaved:"Afaylu yettwasekles.",fileSavedToFilename:"Yettwasekles di {filename}",canvas:"taɣzut n usuneɣ",selection:"tafrayt",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"Afrawan",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},A={app:{center_heading:"Akk isefka-inek•inem ttwakelsen s wudem adigan deg yiminig-inek•inem.",center_heading_plus:"Tebɣiḍ ad tedduḍ ɣer Excalidraw+ deg umḍiq?",menuHint:"Asifeḍ, ismenyifen, tutlayin, ..."},defaults:{menuHint:"Asifeḍ, ismenyifen, d wayen-nniḍen...",center_heading:"",toolbarHint:"Fren afecku tebduḍ asuneɣ!",helpHint:"Inegzumen akked tallelt"}},h={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},q={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},x={title:"",button:"",description:"",syntax:"",preview:""},v={labels:e,library:a,buttons:t,alerts:i,errors:n,toolBar:r,headings:s,hints:l,canvasError:d,errorSplash:u,roomDialog:o,errorDialog:m,exportDialog:k,helpDialog:c,clearCanvasDialog:g,publishDialog:y,publishSuccessDialog:f,confirmDialog:w,imageExportDialog:b,encrypted:S,stats:p,toast:z,colors:T,welcomeScreen:A,colorPicker:h,overwriteConfirm:q,mermaid:x};export{i as alerts,t as buttons,d as canvasError,g as clearCanvasDialog,h as colorPicker,T as colors,w as confirmDialog,v as default,S as encrypted,m as errorDialog,u as errorSplash,n as errors,k as exportDialog,s as headings,c as helpDialog,l as hints,b as imageExportDialog,e as labels,a as library,x as mermaid,q as overwriteConfirm,y as publishDialog,f as publishSuccessDialog,o as roomDialog,p as stats,z as toast,r as toolBar,A as welcomeScreen}; -//# sourceMappingURL=kab-KAB.json-S8YedR0v.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js.map b/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js.map deleted file mode 100644 index 7ffc22b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kab-KAB.json-S8YedR0v.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"kab-KAB.json-S8YedR0v.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js b/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js deleted file mode 100644 index d7dd464..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"Қою",pasteAsPlaintext:"",pasteCharts:"Диаграммаларды қою",selectAll:"Бәрін таңдау",multiSelect:"",moveCanvas:"",cut:"Қию",copy:"Көшіру",copyAsPng:"",copyAsSvg:"",copyText:"",copySource:"",convertToCode:"",bringForward:"",sendToBack:"",bringToFront:"",sendBackward:"",delete:"Жою",copyStyles:"Стильдерді көшіру",pasteStyles:"Стильдерді қою",stroke:"",background:"",fill:"",strokeWidth:"",strokeStyle:"",strokeStyle_solid:"",strokeStyle_dashed:"",strokeStyle_dotted:"",sloppiness:"",opacity:"",textAlign:"",edges:"",sharp:"",round:"",arrowheads:"Нұсқар ұштары",arrowhead_none:"Жоқ",arrowhead_arrow:"Нұсқар",arrowhead_bar:"Тосқауыл",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Қаріп өлшемі",fontFamily:"Қаріп тобы",addWatermark:"",handDrawn:"",normal:"Қалыпты",code:"",small:"Кіші",medium:"Орта",large:"Үлкен",veryLarge:"Өте үлкен",solid:"",hachure:"",zigzag:"",crossHatch:"",thin:"",bold:"",left:"Солға",center:"Ортаға",right:"Оңға",extraBold:"",architect:"",artist:"",cartoonist:"",fileTitle:"Файл атауы",colorPicker:"",canvasColors:"",canvasBackground:"",drawingCanvas:"",layers:"",actions:"",language:"Тіл",liveCollaboration:"",duplicateSelection:"Көшірме",untitled:"Атауысыз",name:"",yourName:"",madeWithExcalidraw:"",group:"",ungroup:"",collaborators:"",showGrid:"",addToLibrary:"",removeFromLibrary:"",libraryLoadingMessage:"",libraries:"",loadingScene:"",align:"",alignTop:"",alignBottom:"",alignLeft:"",alignRight:"",centerVertically:"",centerHorizontally:"",distributeHorizontally:"",distributeVertically:"",flipHorizontal:"",flipVertical:"",viewMode:"",share:"",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"",exportJSON:"",exportImage:"",export:"",copyToClipboard:"",save:"",saveAs:"",load:"",getShareableLink:"",close:"Жабу",selectLanguage:"Тілді таңдау",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"Mәзір",done:"Дайын",edit:"",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"",darkMode:"",lightMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},r={clearReset:"",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"",imageInsertError:"Суретті жүктеу мүмкін болмады. Кейінірек қайталап көріңіз...",fileTooBig:"Файл өте үлкен. Максималды рұқсат етілген көлем {{maxSize}}.",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"",image:"Суретті қою",rectangle:"",diamond:"",ellipse:"",arrow:"Нұсқар",line:"",freedraw:"",text:"Мәтін",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"",selectedShapeActions:"",shapes:""},n={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"",canvasTooBig:"",canvasTooBigTip:""},c={headingMain:"",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},d={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:"Қате"},p={disk_title:"",disk_details:"Сахна деректерін кейін қайта импорттауға болатын файлға экспорттаңыз.",disk_button:"Файлға сақтау",link_title:"Ортақ сілтеме",link_details:"Тек оқуға арналған сілтеме ретінде экспорттау.",link_button:"Сілтемеге экспорттау",excalidrawplus_description:"Сахнаны өзіңіздің Excalidraw+ жұмыс кеңістігінде сақтаңыз.",excalidrawplus_button:"Экспорт",excalidrawplus_exportError:"Қазіргі уақытта Excalidraw+ үшін экспорттау мүмкін емес..."},g={blog:"Біздің блогты оқу",click:"шерту",deepSelect:"",deepBoxSelect:"",curvedArrow:"Майысқан нұсқар",curvedLine:"Майысқан сызық",documentation:"Құжаттама",doubleClick:"қос шерту",drag:"апару",editor:"Өңдеу",editLineArrowPoints:"",editText:"",github:"Қате таптыңыз ба? Жолдаңыз",howto:"Біздің нұсқаулықтарды орындаңыз",or:"немесе",preventBinding:"Нұсқарды байланыстыруға жол бермеу",tools:"",shortcuts:"Пернетақта пәрмендері",textFinish:"Өңдеуді аяқтау (мәтіндік редактор)",textNewLine:"Жаңа жолға көшу (мәтіндік редактор)",title:"Көмек",view:"Көру",zoomToFit:"Барлық элементтердің көлеміне сәйкес үлкейту",zoomToSelection:"Таңдалғанды үлкейту",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"Сіздің сызбаларыңыз өтпелі шифрлеу арқылы шифрланған, сондықтан Excalidraw серверлері оларды ешқашан көрмейді.",link:"Excalidraw қолданатын өтпелі шифрлеу туралы блог жазбасы"},w={angle:"Бұрыш",element:"Элемент",elements:"Элементтер",height:"Биіктігі",scene:"Сахна",selected:"Таңдалды",storage:"Сақтау көлемі",title:"",total:"Барлығы",version:"Нұсқа",versionCopy:"Көшіру үшін басыңыз",versionNotAvailable:"Бұл нұсқа қолжетімсіз",width:"Ені"},x={addedToLibrary:"",copyStyles:"Стильдер көшірілді.",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"Файл сақталды.",fileSavedToFilename:"{filename} сақталды",canvas:"",selection:"таңдау",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},E={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:E};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,k as colors,y as confirmDialog,C as default,S as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,l as headings,g as helpDialog,n as hints,v as imageExportDialog,e as labels,o as library,E as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=kk-KZ.json-3Sz1_kBi.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js.map b/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js.map deleted file mode 100644 index a307a71..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/kk-KZ.json-3Sz1_kBi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"kk-KZ.json-3Sz1_kBi.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js b/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js deleted file mode 100644 index af47083..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js +++ /dev/null @@ -1,12 +0,0 @@ -const e={paste:"បិទភ្ជាប់",pasteAsPlaintext:"បិទភ្ជាប់ជាអត្ថបទធម្មតា",pasteCharts:"បិទភ្ជាប់តារាង",selectAll:"ជ្រើសរើស​ទាំងអស់",multiSelect:"បន្ថែមធាតុទៅលើការជ្រើសរើស",moveCanvas:"ផ្លាស់ទីបាវ",cut:"កាត់",copy:"ចម្លង",copyAsPng:"ចម្លងទៅក្តារតម្បៀតខ្ទាស់ជា​ PNG",copyAsSvg:"ចម្លងទៅក្តារតម្បៀតខ្ទាស់ជា​ SVG",copyText:"ចម្លងទៅក្តារតម្បៀតខ្ទាស់ជា​អត្ថបទ",copySource:"",convertToCode:"",bringForward:"នាំយកទៅលើ",sendToBack:"នាំយកទៅក្រោយបង្អស់",bringToFront:"នាំយកទៅលើបង្អស់",sendBackward:"នាំយកទៅក្រោយ",delete:"លុប",copyStyles:"ចម្លងរចនាប័ទ្ម",pasteStyles:"បិទភ្ជាប់រចនាប័ទ្ម",stroke:"ខ្វាច់",background:"ផ្ទៃខាងក្រោយ",fill:"បំពេញ",strokeWidth:"ទទឹងខ្វាច់",strokeStyle:"រចនាប័ទ្មរបស់ខ្វាច់",strokeStyle_solid:"តាន់",strokeStyle_dashed:"ដាច់ៗ",strokeStyle_dotted:"ចំណុចៗ",sloppiness:"រចនាប័ទ្មបន្ទាត់",opacity:"ភាពច្បាស់",textAlign:"តម្រឹមអត្ថបទ",edges:"គែម",sharp:"មុត",round:"រាងមូល",arrowheads:"ក្បាលព្រួញ",arrowhead_none:"គ្មាន",arrowhead_arrow:"ព្រួញ",arrowhead_bar:"របារ",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"ត្រីកោណ",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"ទំហំពុម្ពអក្សរ",fontFamily:"ក្រុម​ពុម្ពអក្សរ",addWatermark:'បន្ថែមវ៉ាត់ធើម៉ាក "Made with Excalidraw"',handDrawn:"គូរដោយដៃ",normal:"ធម្មតា",code:"កូដ",small:"តូច",medium:"មធ្យម",large:"ធំ",veryLarge:"ធំខ្លាំង",solid:"តាន់",hachure:"Hachure",zigzag:"Zigzag",crossHatch:"បន្ទាត់ឆ្នូតៗ",thin:"ស្តើង",bold:"ដឹត",left:"ខាងឆ្វេង",center:"កណ្ដាល",right:"នៅខាងស្ដាំ",extraBold:"ដិតបន្ថែម",architect:"ស្ថាបត្យករ",artist:"សិល្បៈករ",cartoonist:"អ្នកគំនូរជីវចល",fileTitle:"ឈ្មោះ​ឯកសារ",colorPicker:"ឧបករណ៍​ជ្រើស​ពណ៌",canvasColors:"ប្រើលើបាវ",canvasBackground:"ផ្ទៃខាងក្រោយបាវ",drawingCanvas:"តំបន់គំនូរ",layers:"ស្រទាប់",actions:"សកម្មភាព",language:"ភាសា",liveCollaboration:"សហការគ្នាផ្ទាល់...",duplicateSelection:"ចម្លង",untitled:"គ្មានឈ្មោះ",name:"ឈ្មោះ",yourName:"ឈ្មោះ​របស់​អ្នក",madeWithExcalidraw:"បង្កើតជាមួយ Excalidraw",group:"ការជ្រើសរើសជាក្រុម",ungroup:"បំបែកក្រុមការជ្រើសរើសជាក្រុម",collaborators:"អ្នកសហការ",showGrid:"បង្ហាញក្រឡាចត្រង្គ",addToLibrary:"បន្ថែមទៅបណ្ណាល័យ",removeFromLibrary:"លុបចេញពីបណ្ណាល័យ",libraryLoadingMessage:"កំពុងផ្ទុកបណ្ណាល័យ...",libraries:"រកមើលបណ្ណាល័យ",loadingScene:"កំពុង​ផ្ទុក​ស៊ីន...",align:"តម្រឹម",alignTop:"តម្រឹមផ្នែកខាងលើ",alignBottom:"តម្រឹមផ្នែកខាងក្រោម",alignLeft:"​តម្រឹម​ឆ្វេង",alignRight:"តម្រឹម​ស្តាំ",centerVertically:"កណ្តាល​បញ្ឈរ",centerHorizontally:"កណ្តាល​ផ្ដេក",distributeHorizontally:"ចែកចាយផ្ដេក",distributeVertically:"ចែកចាយបញ្ឈរ",flipHorizontal:"ត្រឡប់​ដោយ​ផ្ដេក",flipVertical:"ត្រឡប់​ដោយ​បញ្ឈរ",viewMode:"ម៉ូដ​បង្ហាញ",share:"ចែករំលែក",showStroke:"បង្ហាញឧបករណ៍ជ្រើសរើសពណ៌ខ្វាច់",showBackground:"បង្ហាញឧបករណ៍ជ្រើសរើសពណ៌ផ្ទៃខាងក្រោយ",toggleTheme:"បិទ/បើកប្រធានបទ",personalLib:"បណ្ណាល័យផ្ទាល់ខ្លួន",excalidrawLib:"បណ្ណាល័យ Excalidraw",decreaseFontSize:"បន្ថយទំហំពុម្ពអក្សរ",increaseFontSize:"បង្កើនទំហំពុម្ពអក្សរ",unbindText:"ស្រាយអត្ថបទ",bindText:"ភ្ជាប់អត្ថបទទៅប្រអប់",createContainerFromText:"រុំអត្ថបទក្នុងប្រអប់មួយ",link:{edit:"កែតំណភ្ជាប់",editEmbed:"",create:"បង្កើតតំណភ្ជាប់",createEmbed:"",label:"តំណ",labelEmbed:"",empty:""},lineEditor:{edit:"កែសម្រួលបន្ទាត់",exit:"ចាកចេញពីការកែសម្រួលបន្ទាត់"},elementLock:{lock:"ចាក់សោ",unlock:"ដោះសោ",lockAll:"ចាក់សោទាំងអស់",unlockAll:"ដោះសោទាំងអស់"},statusPublished:"ត្រូវបានបោះពុម្ពផ្សាយ",sidebarLock:"ទុករបារចំហៀងបើក",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},t={noItems:"មិនទាន់មានធាតុបន្ថែមទេ...",hint_emptyLibrary:"ជ្រើសរើសធាតុនៅលើបាវដើម្បីបន្ថែមវានៅទីនេះ ឬដំឡើងបណ្ណាល័យពីឃ្លាំងសាធារណៈខាងក្រោម។",hint_emptyPrivateLibrary:"ជ្រើសរើសធាតុនៅលើបាវដើម្បីបន្ថែមវានៅទីនេះ"},o={clearReset:"កំណត់បាវឡើងវិញ",exportJSON:"នាំចេញជាឯកសារ",exportImage:"នាំរូបភាពចេញ",export:"រក្សាទុក​នៅ...",copyToClipboard:"ចម្លងទៅក្តារតម្បៀតខ្ទាស់",save:"រក្សាទុកទៅឯកសារបច្ចុប្បន្ន",saveAs:"រក្សាទុក​ជា",load:"បើក",getShareableLink:"យកតំណដែលអាចចែករំលែកបាន",close:"បិទ",selectLanguage:"រើសភាសា",scrollBackToContent:"រំកិលត្រឡប់ទៅមាតិកាវិញ",zoomIn:"ពង្រីក",zoomOut:"បង្រួម",resetZoom:"កំណត់ការពង្រីកឡើងវិញ",menu:"ម៉ឺនុយ",done:"រួចរាល់",edit:"កែ",undo:"ត្រឡប់វិញ",redo:"ធ្វើ​វិញ",resetLibrary:"កំណត់បណ្ណាល័យឡើងវិញ",createNewRoom:"បង្កើតបន្ទប់ថ្មី",fullScreen:"ពេញ​អេក្រង់",darkMode:"ម៉ូដងងឹត",lightMode:"ម៉ូដភ្លឺ",zenMode:"ម៉ូត Zen",objectsSnapMode:"",exitZenMode:"ចេញពី zen​ ម៉ូត",cancel:"បោះបង់",clear:"សម្អាត",remove:"ដកចេញ",embed:"",publishLibrary:"បោះពុម្ពផ្សាយ",submit:"ដាក់​ស្នើ",confirm:"បញ្ជាក់",embeddableInteractionButton:""},r={clearReset:"វានឹងសម្អាតបាវទាំងមូល។ តើ​អ្នក​ប្រាកដ​ឬ​អត់?",couldNotCreateShareableLink:"មិនអាចបង្កើតតំណដែលអាចចែករំលែកបានទេ។",couldNotCreateShareableLinkTooBig:"មិន​អាច​បង្កើត​តំណ​ដែល​អាច​ចែក​រំលែក​បាន៖ ស៊ីន​ធំ​ពេក",couldNotLoadInvalidFile:"មិនអាចផ្ទុកឯកសារមិនត្រឹមត្រូវបានទេ។",importBackendFailed:"ការនាំចូលពីម៉ាស៊ីនមេបានបរាជ័យ។",cannotExportEmptyCanvas:"មិនអាចនាំចេញបាវទទេបានទេ។",couldNotCopyToClipboard:"មិនអាចចម្លងទៅក្ដារតម្បៀតខ្ទាស់បានទេ។",decryptFailed:"មិនអាចឌិគ្រីបទិន្នន័យបានទេ។",uploadedSecurly:"ការបង្ហោះត្រូវបានការពារដោយការអ៊ិនគ្រីបពីចុងដល់ចប់ មានន័យថា ទាំងម៉ាស៊ីនមេរបស់ Excalidraw ឬភាគីទីបីមិនអាចអានខ្លឹមសារបានទេ។",loadSceneOverridePrompt:"ការផ្ទុកគំនូរខាងក្រៅនឹងជំនួសមាតិកាដែលមានស្រាប់របស់អ្នក។ តើអ្នកចង់បន្តទេ?",collabStopOverridePrompt:`ការបញ្ឈប់សម័យនឹងសរសេរជាន់លើគំនូរដែលបានរក្សាទុកនៅលើកុំព្យូទ័ររបស់អ្នកពីមុន។ តើ​អ្នក​ប្រាកដ​ឬ​អត់? - -(ប្រសិនបើអ្នកចង់រក្សាគំនូរដែលនៅលើកុំព្យូទ័ររបស់អ្នក គ្រាន់តែបិទផ្ទាំងកម្មវិធីរុករក។)`,errorAddingToLibrary:"មិនអាចបន្ថែមធាតុទៅបណ្ណាល័យបានទេ",errorRemovingFromLibrary:"មិនអាចលុបធាតុចេញពីបណ្ណាល័យបានទេ",confirmAddLibrary:"វានឹងបន្ថែមរូបរាង {{numShapes}} ទៅបណ្ណាល័យរបស់អ្នក។ តើ​អ្នក​ប្រាកដ​ឬ​អត់?",imageDoesNotContainScene:"រូបភាពនេះហាក់ដូចជាមិនមានទិន្នន័យស៊ីនណាមួយទេ។ តើអ្នកបានបើកការបង្កប់ស៊ីននៅពេលនាំចេញទេ?",cannotRestoreFromImage:"មិនអាចស្ដារស៊ីនពីឯកសាររូបភាពនេះបានទេ",invalidSceneUrl:"មិន​អាច​នាំចូល​ស៊ីន​ពី URL ដែល​បាន​ផ្តល់​ឱ្យ​ទេ។ វាមានទម្រង់ខុស ឬមិនមានទិន្នន័យ Excalidraw JSON ដែលត្រឹមត្រូវ។",resetLibrary:"វានឹងសម្អាតបាវទាំងមូល។ តើ​អ្នក​ប្រាកដ​ឬ​អត់?",removeItemsFromsLibrary:"តើអ្នកប្រាកដថាចង់លុប {{count}} ធាតុចេញពីបណ្ណាល័យទេ?",invalidEncryptionKey:"សោអ៊ីនគ្រីបត្រូវតែមាន 22 តួអក្សរ។ ការសហការផ្ទាល់ត្រូវបានបិទ។",collabOfflineWarning:`គ្មានការតភ្ជាប់អ៊ីនធឺណិត។ -ការផ្លាស់ប្តូររបស់អ្នកនឹងមិនត្រូវបានរក្សាទុកទេ!`},a={unsupportedFileType:"ប្រភេទឯកសារមិនត្រូវបានគាំទ្រទេ។",imageInsertError:"មិនអាចបញ្ចូលរូបភាពបានទេ។ សូម​ព្យាយាម​ម្តង​ទៀត​នៅ​ពេល​ក្រោយ……",fileTooBig:"ឯកសារធំពេក។ ទំហំអតិបរមាដែលអនុញ្ញាតគឺ {{maxSize}}។",svgImageInsertError:"មិនអាចបញ្ចូលរូបភាព SVG បានទេ។ ស្លាក SVG ហាក់ដូចជាមិនត្រឹមត្រូវ។",failedToFetchImage:"",invalidSVGString:"SVG មិន​ត្រឹមត្រូវ។",cannotResolveCollabServer:"មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេសហការផ្ទាល់បានទេ។ សូមផ្ទុកទំព័រឡើងវិញ ហើយព្យាយាមម្តងទៀត។",importLibraryError:"មិនអាចផ្ទុកបណ្ណាល័យបានទេ។",collabSaveFailed:"មិនអាចរក្សាទុកទៅម៉ាស៊ីនមេបានទេ។ ប្រសិនបើបញ្ហានៅតែបន្តកើតមាន​ អ្នកគួរតែរក្សាទុកឯកសាររបស់អ្នកនៅលើកុំព្យូទ័ររបស់អ្នកសិន ដើម្បីធានាថាការងាររបស់អ្នកមិនបាត់បង់។",collabSaveFailed_sizeExceeded:"មិនអាចរក្សាទុកទៅម៉ាស៊ីនមេបានទេ, ផ្ទាំងបាវហាក់ដូចជាធំពេក។ អ្នកគួរតែរក្សាទុកឯកសាររបស់អ្នកនៅលើកុំព្យូទ័ររបស់អ្នកសិន ដើម្បីធានាថាការងាររបស់អ្នកមិនបាត់បង់។",imageToolNotSupported:"",brave_measure_text_error:{line1:"អ្នកហាក់ដូចជាកំពុងប្រើប្រាស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត Brave ជាមួយនឹងការកំណត់ ការពារស្នាមម្រាមដៃយ៉ាងធ្ងន់ធ្ងរ ត្រូវបានបើក។",line2:"វាអាចបណ្តាលឱ្យមានការបំបែក ធាតុអត្ថបទ នៅក្នុងគំនូររបស់អ្នក។",line3:"យើងណែនាំយ៉ាងមុតមាំឱ្យបិទការកំណត់នេះ។ អ្នកអាចអនុវត្តតាម ជំហានទាំងនេះ ដើម្បីបិទការកំណត់នេះ។",line4:"ប្រសិនបើការបិទការកំណត់នេះមិនបានជួសជុលការបង្ហាញធាតុអត្ថបទទេ សូមដាក់ issue នៅលើ GitHub ឬរាយការណ៍នៅលើ Discord របស់យើង"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"ការជ្រើសរើស",image:"បញ្ចូលរូបភាព",rectangle:"ចតុ​កោណ​កែង​",diamond:"ពេជ្រ",ellipse:"ពងក្រពើ",arrow:"ព្រួញ",line:"បន្ទាត់",freedraw:"គូរ",text:"អត្ថបទ",library:"បណ្ណាល័យ",lock:"រក្សារឧបករណ៍ដែលបានជ្រើសរើសបន្ទាប់ពីគូររួច",penMode:"របៀបប៊ិច - ជៀសវាងការប៉ះ",link:"បន្ថែម/ធ្វើបច្ចុប្បន្នភាពតំណភ្ជាប់សម្រាប់រូបរាងដែលបានជ្រើសរើស",eraser:"ជ័រលុប",frame:"",magicframe:"",embeddable:"",laser:"",hand:"ដៃ (panning tool)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"សកម្មភាពបាវ",selectedShapeActions:"សកម្មភាពរបស់រាងដែលបានជ្រើសរើស",shapes:"រាង"},l={canvasPanning:"ដើម្បីផ្លាស់ទីបាវ សូមសង្កត់កង់កណ្ដុរឬគ្រាប់ចុចspacebarខណៈពេលកំពុងអូស ឬប្រើឧបករណ៍ដៃ។",linearElement:"ចុចដើម្បីបង្កើតចំណុចច្រើន អូសដើម្បីបង្កើតបន្ទាត់មួយ",freeDraw:"ចុច​ហើយ​អូស លែង​ពេល​រួចរាល់",text:"គន្លឹះ៖ អ្នកក៏អាចបន្ថែមអត្ថបទដោយចុចពីរដងនៅកន្លែងណាមួយដោយប្រើឧបករណ៍ជ្រើសរើស",embeddable:"",text_selected:"ចុចពីរដង ឬចុច ENTER ដើម្បីកែសម្រួលអត្ថបទ",text_editing:"ចុច Escape ឬ CtrlOrCmd +ENTER ដើម្បីបញ្ចប់ការកែសម្រួល",linearElementMulti:"ចុចលើចំណុចចុងក្រោយ ឬចុច Esc/Enter ដើម្បីបញ្ចប់",lockAngle:"អ្នកអាចសង្កត់ Shift ដើម្បីកំណត់មុំ",resize:`អ្នកអាចសង្កត់ SHIFT ដើម្បីបងំ្ខឲមានសមាមាត្រ ខណៈពេលដែលប្តូរទំហំ -សង្កត់ ALT ដើម្បីប្តូរទំហំពីកណ្តាល`,resizeImage:`អ្នកអាចប្តូរទំហំរូបភាពដោយសេរីដោយសង្កត់ SHIFT, -សង្កត់ ALT ដើម្បីប្តូរទំហំពីកណ្តាល`,rotate:"អ្នកអាចសង្កត់ Shift ខណៈពេលកំពុងបង្វិល ដើម្បីកម្រិតមុំ",lineEditor_info:"សង្កត់ CtrlOrCmd ហើយចុចពីរដង ឬចុច CtrlOrCmd + Enter ដើម្បីកែសម្រួលចំណុច",lineEditor_pointSelected:`ចុច Delete ដើម្បីលុបចំណុច(ច្រើន) -CtrlOrCmd+D ដើម្បីចម្លង, ឬអូសដើម្បីផ្លាស់ទី`,lineEditor_nothingSelected:`ជ្រើសរើសចំណុចដែលត្រូវកែសម្រួល (សង្កត់ SHIFT ដើម្បីជ្រើសរើសច្រើនចំណុច) -ឬ សង្កត់ Alt ហើយចុចដើម្បីបន្ថែមចំណុចថ្មី។`,placeImage:"ចុចដើម្បីដាក់រូបភាព ឬចុចហើយអូសដើម្បីកំណត់ទំហំរបស់រូបភាពដោយដៃ",publishLibrary:"បោះពុម្ពផ្សាយបណ្ណាល័យផ្ទាល់ខ្លួនរបស់អ្នក",bindTextToElement:"ចុច Enter ដើម្បីបន្ថែមអត្ថបទ",deepBoxSelect:"សង្កត់ CtrlOrCmd ដើម្បីជ្រើសរើសយ៉ាងជ្រៅ និងជៀសវាងការអូស",eraserRevert:"សង្កត់ Alt ដើម្បីដកការជ្រើសរើសធាតុដែលត្រូវបានសម្គាល់សម្រាប់ការលុប",firefox_clipboard_write:`បើកមុខងារនេះដោយកំណត់ទង់ "dom.events.asyncClipboard.clipboardItem" ទៅ "true" -ដើម្បីផ្លាស់ប្តូរទង់កម្មវិធីរុករកនៅក្នុង Firefox សូមចូលទៅកាន់ទំព័រ "about:config"។`,disableSnapping:""},s={cannotShowPreview:"មិនអាចបង្ហាញការមើលជាមុនបាន",canvasTooBig:"បាវអាចមានទំហំធំពេក។",canvasTooBigTip:"គន្លឹះ៖ ព្យាយាមផ្លាស់ទីធាតុដែលឆ្ងាយបំផុតឱ្យទៅជិតគ្នាបន្តិច។"},c={headingMain:"បានជួបប្រទះកំហុសមួយ។ សូមព្យាយាម ។",clearCanvasMessage:"ប្រសិនបើការផ្ទុកឡើងវិញមិនអាចដោះស្រាយកំហុសបានទេ សូមសាកល្បង ",clearCanvasCaveat:" នេះនឹងបណ្តាលឱ្យបាត់បង់ការងារ ",trackedToSentry:"កំហុសជាមួយលេខសម្គាល់ {{eventId}} ត្រូវបានតាមដាននៅលើប្រព័ន្ធរបស់យើង។",openIssueMessage:"យើងមានការប្រុងប្រយ័ត្នខ្លាំងណាស់ក្នុងការមិនបញ្ចូលព័ត៌មានរបស់ស៊ីនរបស់អ្នកទៅលើកំហុស។ ប្រសិនបើស៊ីនរបស់អ្នកមិនមានលក្ខណៈឯកជនទេ សូមពិចារណាបន្តទៅកាន់ សូមបញ្ចូលព័ត៌មានខាងក្រោមដោយចម្លង និងបិទភ្ជាប់វាទៅក្នុងបញ្ហារបស់ GitHub។",sceneContent:"មាតិកាបាវ៖"},d={desc_intro:"អ្នកអាចអញ្ជើញអ្នកដទៃឱ្យសហការជាមួយអ្នកនៅលើស៊ីនបច្ចុប្បន្ន។",desc_privacy:"កុំបារម្ភ វគ្គប្រើការអ៊ិនគ្រីបពីចុងដល់ចប់ ដូច្នេះអ្វីដែលអ្នកគូរនឹងនៅតែជាឯកជន។ សូម្បីតែម៉ាស៊ីនមេរបស់យើងក៏នឹងមិនអាចមើលឃើញអ្វីដែលអ្នកកំពុងធ្វើដែរ។",button_startSession:"ចាប់ផ្តើមវគ្គ",button_stopSession:"បញ្ឈប់វគ្គ",desc_inProgressIntro:"វគ្គសហការផ្ទាល់ឥឡូវនេះកំពុងដំណើរការ។",desc_shareLink:"ចែករំលែកតំណនេះជាមួយអ្នកដែលអ្នកចង់សហការជាមួយ៖",desc_exitSession:"ការបញ្ឈប់វគ្គនេះនឹងផ្តាច់អ្នកចេញពីបន្ទប់ ប៉ុន្តែអ្នកនឹងនៅតែអាចបន្តប្រើបាវនៅលើកុំព្យូទ័ររបស់អ្នក។ សូមចំណាំថាវានឹងមិនប៉ះពាល់ដល់អ្នកប្រើប្រាស់ផ្សេងទៀតទេ​ ហើយពួកគេនឹងនៅតែអាចបន្តសហការលើកំណែរបស់ពួកគេ។",shareTitle:"ចូលរួមវគ្គសហការផ្ទាល់នៅលើ Excalidraw"},m={title:"មានកំហុស"},b={disk_title:"រក្សាទុកទៅថាស",disk_details:"នាំចេញទិន្នន័យរបស់ស៊ីនជាឯកសារដែលអ្នកអាចនាំចូលនៅពេលក្រោយ។",disk_button:"រក្សាទុកក្នុងឯកសារ",link_title:"តំណដែលអាចចែករំលែកបាន",link_details:"នាំចេញជាតំណបានតែមើលឬអាន។",link_button:"នាំចេញជាតំណ",excalidrawplus_description:"រក្សាទុកស៊ីនទៅកន្លែងធ្វើការ Excalidraw+ របស់អ្នក។",excalidrawplus_button:"នាំចេញ",excalidrawplus_exportError:"មិនអាចនាំចេញទៅ Excalidraw+ បានទេនៅពេលនេះ..."},p={blog:"អានប្លក់របស់យើង",click:"ចុច",deepSelect:"ការជ្រើសរើសជាក្រុម",deepBoxSelect:"ជ្រើសរើសជាក្រុម និង ជៀសវាងការអូសទាញផ្លាស់ទី",curvedArrow:"ព្រួញកោង",curvedLine:"ព្រួញកោង",documentation:"ឯកសារ",doubleClick:"ចុច​ពីរ​ដង",drag:"អូស",editor:"កម្មវិធីនិពន្ធ",editLineArrowPoints:"កែសម្រួលចំណុចនៃបន្ទាត់ ឬព្រួញ",editText:"បន្ថែម ឬកែសម្រួលអត្ថបទ",github:"រកឃើញបញ្ហា? ដាក់ស្នើ",howto:"ឯកសារជំនួយ",or:"ឬ",preventBinding:"ទប់ស្កាត់ការចងព្រួញ",tools:"ឧបករណ៍",shortcuts:"ផ្លូវកាត់ក្តារចុច",textFinish:"បញ្ចប់ការកែសម្រួល (កម្មវិធីនិពន្ធអត្ថបទ)",textNewLine:"ចុះបន្ទាត់ (កម្មវិធីនិពន្ធអត្ថបទ)",title:"ជំនួយ",view:"បង្ហាញ",zoomToFit:"ធ្វើមាត្រដ្ឋានឱ្យសមនឹងធាតុទាំងអស់។",zoomToSelection:"ពង្រីកទៅការជ្រើសរើស",toggleElementLock:"ចាក់សោ/ដោះសោការជ្រើសរើស",movePageUpDown:"ផ្លាស់ទីទំព័រឡើងលើ/ចុះក្រោម",movePageLeftRight:"ផ្លាស់ទីទំព័រទៅឆ្វេង/ស្ដាំ"},g={title:"សម្អាតបាវ"},u={title:"បោះពុម្ពបណ្ណាល័យ",itemName:"ឈ្មោះ​ធាតុ",authorName:"ឈ្មោះអ្នកនិពន្ធ",githubUsername:"ឈ្មោះអ្នកប្រើ GitHub",twitterUsername:"ឈ្មោះអ្នកប្រើ Twitter",libraryName:"ឈ្មោះបណ្ណាល័យ",libraryDesc:"ការពិពណ៌នាអំពីបណ្ណាល័យ",website:"គេហទំព័រ",placeholder:{authorName:"ឈ្មោះរបស់អ្នក ឬឈ្មោះអ្នកប្រើប្រាស់",libraryName:"ឈ្មោះបណ្ណាល័យរបស់អ្នក",libraryDesc:"ការពិពណ៌នាអំពីបណ្ណាល័យរបស់អ្នក នឹងអនុញ្ញាតឱ្យអ្នក​ផ្សេងយល់ពីការប្រើប្រាស់របស់វា។",githubHandle:"ឈ្មោះអ្នកប្រើ GitHub (ជាជម្រើស) ដូច្នេះអ្នកអាចកែសម្រួលបណ្ណាល័យបាននៅពេលដាក់ស្នើសម្រាប់ការពិនិត្យ",twitterHandle:"ឈ្មោះអ្នកប្រើប្រាស់ Twitter (ជាជម្រើស) ដូច្នេះយើងដឹងថាអ្នកណាដែលត្រូវផ្តល់ក្រេឌីតនៅពេលផ្សព្វផ្សាយតាម Twitter",website:"ភ្ជាប់ទៅគេហទំព័រផ្ទាល់ខ្លួនរបស់អ្នក ឬគេហទំព័រផ្សេងទៀត (ជាជម្រើស)"},errors:{required:"ត្រូវបានទាមទារ",website:"សូមវាយបញ្ចូល URL ​ដែលត្រឹមត្រូវ"},noteDescription:"ដាក់ស្នើបណ្ណាល័យរបស់អ្នកដើម្បីដាក់បញ្ចូលក្នុង ឃ្លាំងបណ្ណាល័យសាធារណៈ សម្រាប់ឲ្យអ្នកផ្សេងប្រើក្នុងគំនូររបស់ពួកគេ។",noteGuidelines:"បណ្ណាល័យត្រូវតែអនុម័តដោយដៃជាមុនសិន។ សូមអាន ការណែនាំ មុនពេលដាក់ស្នើ។ ការប្រាស្រ័យទាក់ទងជាបន្តបន្ទាប់ និងការផ្លាស់ប្តូរបណ្ណាល័យទាមទារឱ្យអ្នកមានគណនី GitHub ប៉ុន្តែមិនត្រូវបានទាមទារយ៉ាងតឹងរ៉ឹងទេ។",noteLicense:"តាមរយៈការដាក់ស្នើ អ្នកយល់ព្រមថាបណ្ណាល័យនឹងត្រូវបានបោះពុម្ពផ្សាយក្រោម អាជ្ញាប័ណ្ណ MIT ដែលមានន័យយ៉ាងខ្លី អ្នកណាក៏អាចប្រើប្រាស់វាបានដោយគ្មានការរឹតត្បិត។",noteItems:"ធាតុនីមួយៗនៅក្នុងបណ្ណាល័យត្រូវតែមានឈ្មោះផ្ទាល់ខ្លួនដើម្បីយើងអាចត្រងវាបាន។ ធាតុខាងក្រោមនឹងត្រូវបានរួមបញ្ចូល:",atleastOneLibItem:"សូមជ្រើសរើសយ៉ាងហោចណាស់ធាតុបណ្ណាល័យមួយដើម្បីចាប់ផ្តើម",republishWarning:"ចំណាំ៖ ធាតុដែលត្រូវបានជ្រើសរើសមួយចំនួនត្រូវបានសម្គាល់ថាបានបោះពុម្ព/បញ្ជូនរួចរាល់ហើយ។ អ្នកគួរតែបញ្ជូនធាតុឡើងវិញនៅពេលដែលធ្វើបច្ចុប្បន្នភាពបណ្ណាល័យដែលមានស្រាប់ ឬការបញ្ជូន។"},h={title:"បណ្ណាល័យត្រូវបានដាក់ស្នើ",content:"សូមអរគុណ {{authorName}}។ បណ្ណាល័យរបស់អ្នកត្រូវបានបញ្ជូនមកពិនិត្យ។ សូមចុច ទីនេះ ដើម្បីតាមដានស្ថានភាពនៃការដាក់ស្នើនេះ។"},y={resetLibrary:"កំណត់បណ្ណាល័យឡើងវិញ",removeItemsFromLib:"លុបធាតុដែលបានជ្រើសរើសចេញពីបណ្ណាល័យ"},S={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},v={tooltip:"គំនូររបស់អ្នកត្រូវបានអ៊ិនគ្រីបពីចុងដល់ចប់ ដូច្នេះម៉ាស៊ីនមេរបស់ Excalidraw នឹងមិនឃើញពួកវាទេ។",link:"ប្លក់ផុសលើការអ៊ិនគ្រីបពីចុងដល់ចុងក្នុង Excalidraw"},w={angle:"មុំ",element:"ធាតុ",elements:"ធាតុច្រើន",height:"កម្ពស់",scene:"ស៊ីន",selected:"បានជ្រើសរើស",storage:"ការផ្ទុក",title:"ស្ថិតិសម្រាប់ nerds",total:"សរុប",version:"ជំនាន់:",versionCopy:"ចុចដើម្បីចម្លង",versionNotAvailable:"កំណែមិនអាចប្រើបាន",width:"ទទឹង​"},k={addedToLibrary:"បានបន្ថែមទៅបណ្ណាល័យ",copyStyles:"រចនាប័ទ្មត្រូវបានចម្លង។",copyToClipboard:"បានចម្លងទៅក្ដារតម្បៀតខ្ទាស់។",copyToClipboardAsPng:`បានចម្លង {{exportSelection}} ទៅក្ដារតម្បៀតខ្ទាស់ជា PNG -({{exportColorScheme}})`,fileSaved:"ឯកសារត្រូវបានរក្សាទុក។",fileSavedToFilename:"បានរក្សាទុកនៅក្នុង {filename}",canvas:"តំបន់គំនូរ",selection:"ការជ្រើសរើស",pasteAsSingleElement:`ប្រើ {{shortcut}} ដើម្បីបិទភ្ជាប់ជាធាតុតែមួយ, -ឬបិទភ្ជាប់ទៅក្នុងកម្មវិធីនិពន្ធអត្ថបទដែលមានស្រាប់`,unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"ថ្លាមើលធ្លុះ",black:"ពណ៍ខ្មៅ",white:"ពណ៌ស",red:"ពណ៌ក្រហម",pink:"ពណ៌ផ្កាឈូក",grape:"ពណ៌ទំពាំងបាយជូរ",violet:"ពណ៌ស្វាយ",gray:"ពណ៌ប្រផេះ",blue:"ពណ៌ខៀវ",cyan:"ពណ៌ផ្ទៃមេឃ",teal:"ពណ៌​ខៀវបៃតង",green:"ពណ៌បៃតង",yellow:"ពណ៌លឿង",orange:"ពណ៌ទឹកក្រូច",bronze:"ពណ៌សំរិទ្ធ"},T={app:{center_heading:"ទិន្នន័យទាំងអស់របស់អ្នក ត្រូវបានរក្សាទុកនៅក្នុង browser របស់អ្នក ។",center_heading_plus:"តើ​អ្នក​ចង់​ទៅ Excalidraw+ ​វិញ ឬ មែន?",menuHint:"នាំចេញ ចំណូលចិត្ត ភាសា ..."},defaults:{menuHint:"ការនាំចេញ ចំណូលចិត្ត និង ច្រើនទៀត...",center_heading:"ងាយស្រួល ។ ធ្វើ ។​ ដ្យាក្រាម ។",toolbarHint:"ជ្រើសរើសឧបករណ៍មួយ និង ចាប់ផ្តើមគូរ!",helpHint:"ផ្លូវកាត់ &​ ជំនួយ"}},E={mostUsedCustomColors:"ពណ៌ផ្ទាល់ខ្លួនដែលប្រើច្រើនបំផុត",colors:"ពណ៌",shades:"ស្រមោល",hexCode:"លេខកូដ hex",noShades:"មិនមានស្រមោលសម្រាប់ពណ៌នេះទេ"},_={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:k,colors:x,welcomeScreen:T,colorPicker:E,overwriteConfirm:_,mermaid:C};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,x as colors,y as confirmDialog,L as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,b as exportDialog,n as headings,p as helpDialog,l as hints,S as imageExportDialog,e as labels,t as library,C as mermaid,_ as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,k as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=km-KH.json-KP5HxHUN.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js.map b/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js.map deleted file mode 100644 index 91ff446..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/km-KH.json-KP5HxHUN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"km-KH.json-KP5HxHUN.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js b/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js deleted file mode 100644 index 65b2fec..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"붙여넣기",pasteAsPlaintext:"일반 텍스트로 붙여넣기",pasteCharts:"차트 붙여넣기",selectAll:"전체 선택",multiSelect:"선택 영역에 추가하기",moveCanvas:"캔버스 이동",cut:"잘라내기",copy:"복사",copyAsPng:"클립보드로 PNG 이미지 복사",copyAsSvg:"클립보드로 SVG 이미지 복사",copyText:"클립보드로 텍스트 복사",copySource:"소스코드를 클립보드로 복사",convertToCode:"코드로 변환",bringForward:"앞으로 가져오기",sendToBack:"맨 뒤로 보내기",bringToFront:"맨 앞으로 가져오기",sendBackward:"뒤로 보내기",delete:"삭제",copyStyles:"스타일 복사하기",pasteStyles:"스타일 붙여넣기",stroke:"선 색상",background:"배경색",fill:"채우기",strokeWidth:"선 굵기",strokeStyle:"선",strokeStyle_solid:"실선",strokeStyle_dashed:"파선",strokeStyle_dotted:"점선",sloppiness:"대충 긋기",opacity:"불투명도",textAlign:"텍스트 정렬",edges:"가장자리",sharp:"뾰족하게",round:"둥글게",arrowheads:"화살촉",arrowhead_none:"없음",arrowhead_arrow:"화살표",arrowhead_bar:"막대",arrowhead_circle:"원",arrowhead_circle_outline:"원 (외곽선)",arrowhead_triangle:"삼각형",arrowhead_triangle_outline:"삼각형 (외곽선)",arrowhead_diamond:"마름모",arrowhead_diamond_outline:"마름모 (외곽선)",fontSize:"글자 크기",fontFamily:"글꼴",addWatermark:'"Made with Excalidraw" 추가',handDrawn:"손글씨",normal:"일반",code:"코드",small:"작게",medium:"보통",large:"크게",veryLarge:"매우 크게",solid:"단색",hachure:"평행선",zigzag:"지그재그",crossHatch:"교차선",thin:"얇게",bold:"굵게",left:"왼쪽",center:"가운데",right:"오른쪽",extraBold:"매우 굵게",architect:"건축가",artist:"예술가",cartoonist:"만화가",fileTitle:"파일 이름",colorPicker:"색상 선택기",canvasColors:"캔버스에서 사용되었음",canvasBackground:"캔버스 배경",drawingCanvas:"캔버스 그리기",layers:"레이어",actions:"동작",language:"언어",liveCollaboration:"실시간 협업...",duplicateSelection:"복제",untitled:"제목 없음",name:"이름",yourName:"이름 입력",madeWithExcalidraw:"Made with Excalidraw",group:"그룹 생성",ungroup:"그룹 해제",collaborators:"공동 작업자",showGrid:"그리드 보기",addToLibrary:"라이브러리에 추가",removeFromLibrary:"라이브러리에서 제거",libraryLoadingMessage:"라이브러리 불러오는 중…",libraries:"라이브러리 찾기",loadingScene:"화면 불러오는 중…",align:"정렬",alignTop:"상단 정렬",alignBottom:"하단 정렬",alignLeft:"왼쪽 정렬",alignRight:"오른쪽 정렬",centerVertically:"수직으로 중앙 정렬",centerHorizontally:"수평으로 중앙 정렬",distributeHorizontally:"수평으로 분배",distributeVertically:"수직으로 분배",flipHorizontal:"좌우반전",flipVertical:"상하반전",viewMode:"보기 모드",share:"공유",showStroke:"윤곽선 색상 선택기 열기",showBackground:"배경 색상 선택기 열기",toggleTheme:"테마 전환",personalLib:"개인 라이브러리",excalidrawLib:"Excalidraw 라이브러리",decreaseFontSize:"폰트 사이즈 줄이기",increaseFontSize:"폰트 사이즈 키우기",unbindText:"텍스트 분리",bindText:"텍스트를 컨테이너에 결합",createContainerFromText:"텍스트를 컨테이너에 담기",link:{edit:"링크 수정하기",editEmbed:"링크 & 임베드 수정하기",create:"링크 만들기",createEmbed:"링크 & 임베드 만들기",label:"링크",labelEmbed:"링크 & 임베드",empty:"링크를 지정하지 않았습니다"},lineEditor:{edit:"선 수정하기",exit:"선 편집기 종료"},elementLock:{lock:"잠금",unlock:"잠금 해제",lockAll:"모두 잠금",unlockAll:"모두 잠금 해제"},statusPublished:"게시됨",sidebarLock:"사이드바 유지",selectAllElementsInFrame:"프레임의 모든 요소 선택",removeAllElementsFromFrame:"프레임의 모든 요소 삭제",eyeDropper:"캔버스에서 색상 고르기",textToDiagram:"텍스트를 다이어그램으로",prompt:"프롬프트"},o={noItems:"추가된 아이템 없음",hint_emptyLibrary:"캔버스 위에서 아이템을 선택하여 여기에 추가를 하거나, 아래의 공용 저장소에서 라이브러리를 설치하세요.",hint_emptyPrivateLibrary:"캔버스 위에서 아이템을 선택하여 여기 추가하세요."},t={clearReset:"캔버스 초기화",exportJSON:"파일로 내보내기",exportImage:"이미지 내보내기",export:"다른 이름으로 저장...",copyToClipboard:"클립보드로 복사",save:"현재 파일에 저장",saveAs:"다른 이름으로 저장",load:"열기",getShareableLink:"공유 가능한 링크 생성",close:"닫기",selectLanguage:"언어 선택",scrollBackToContent:"콘텐츠 영역으로 스크롤하기",zoomIn:"확대",zoomOut:"축소",resetZoom:"확대/축소 초기화",menu:"메뉴",done:"완료",edit:"수정",undo:"실행 취소",redo:"다시 실행",resetLibrary:"라이브러리 리셋",createNewRoom:"방 만들기",fullScreen:"전체화면",darkMode:"다크 모드",lightMode:"밝은 모드",zenMode:"젠 모드",objectsSnapMode:"다른 요소들에 정렬시키기",exitZenMode:"젠 모드 종료하기",cancel:"취소",clear:"지우기",remove:"삭제",embed:"임베딩 토글",publishLibrary:"게시하기",submit:"제출",confirm:"확인",embeddableInteractionButton:"클릭하여 상호작용"},r={clearReset:"모든 작업 내용이 초기화됩니다. 계속하시겠습니까?",couldNotCreateShareableLink:"공유 가능한 링크를 생성할 수 없습니다.",couldNotCreateShareableLinkTooBig:"공유 가능한 링크를 생성할 수 없습니다: 화면이 너무 큽니다.",couldNotLoadInvalidFile:"유효하지 않은 파일입니다.",importBackendFailed:"서버로부터 불러 오지 못했습니다.",cannotExportEmptyCanvas:"빈 캔버스를 내보낼 수 없습니다.",couldNotCopyToClipboard:"클립보드로 복사하지 못했습니다.",decryptFailed:"데이터를 복호화하지 못했습니다.",uploadedSecurly:"업로드는 종단 간 암호화로 보호되므로 Excalidraw 서버 및 타사가 콘텐츠를 읽을 수 없습니다.",loadSceneOverridePrompt:"외부 파일을 불러 오면 기존 콘텐츠가 대체됩니다. 계속 진행할까요?",collabStopOverridePrompt:`협업 세션을 종료하면 로컬 저장소에 있는 그림이 협업 세션의 그림으로 대체됩니다. 진행하겠습니까? - -(로컬 저장소에 있는 그림을 유지하려면 현재 브라우저 탭을 닫아주세요.)`,errorAddingToLibrary:"아이템을 라이브러리에 추가 할수 없습니다",errorRemovingFromLibrary:"라이브러리에서 아이템을 삭제할수 없습니다",confirmAddLibrary:"{{numShapes}}개의 모양이 라이브러리에 추가됩니다. 계속하시겠어요?",imageDoesNotContainScene:"이 이미지는 화면 데이터를 포함하고 있지 않은 것 같습니다. 내보낼 때 화면을 첨부하도록 설정하셨나요?",cannotRestoreFromImage:"이미지 파일에서 화면을 복구할 수 없었습니다",invalidSceneUrl:"제공된 URL에서 화면을 가져오는데 실패했습니다. 주소가 잘못되거나, 유효한 Excalidraw JSON 데이터를 포함하고 있지 않은 것일 수 있습니다.",resetLibrary:"당신의 라이브러리를 초기화 합니다. 계속하시겠습니까?",removeItemsFromsLibrary:"{{count}}개의 아이템을 라이브러리에서 삭제하시겠습니까?",invalidEncryptionKey:"암호화 키는 반드시 22글자여야 합니다. 실시간 협업이 비활성화됩니다.",collabOfflineWarning:`인터넷에 연결되어 있지 않습니다. -변경 사항들이 저장되지 않습니다!`},a={unsupportedFileType:"지원하지 않는 파일 형식 입니다.",imageInsertError:"이미지를 삽입할 수 없습니다. 나중에 다시 시도 하십시오",fileTooBig:"파일이 너무 큽니다. 최대 크기는 {{maxSize}} 입니다.",svgImageInsertError:"SVG 이미지를 삽입하지 못했습니다. SVG 문법이 유효하지 않은 것 같습니다.",failedToFetchImage:"이미지를 가져오는데 실패했습니다.",invalidSVGString:"유효하지 않은 SVG입니다.",cannotResolveCollabServer:"협업 서버에 접속하는데 실패했습니다. 페이지를 새로고침하고 다시 시도해보세요.",importLibraryError:"라이브러리를 불러오지 못했습니다.",collabSaveFailed:"데이터베이스에 저장하지 못했습니다. 문제가 계속 된다면, 작업 내용을 잃지 않도록 로컬 저장소에 저장해 주세요.",collabSaveFailed_sizeExceeded:"데이터베이스에 저장하지 못했습니다. 캔버스가 너무 큰 거 같습니다. 문제가 계속 된다면, 작업 내용을 잃지 않도록 로컬 저장소에 저장해 주세요.",imageToolNotSupported:"이미지가 비활성화 되었습니다.",brave_measure_text_error:{line1:"귀하께서는 강력한 지문 차단 설정이 활성화된 Brave browser를 사용하고 계신 것 같습니다.",line2:"이 기능으로 인해 화이트보드의 텍스트 요소들이 손상될 수 있습니다.",line3:"저희는 해당 기능을 비활성화하는 것을 강력히 권장 드립니다. 비활성화 방법에 대해서는 이 게시글을 참고해주세요.",line4:"만약 이 설정을 껐음에도 텍스트 요소들이 올바르게 표시되지 않는다면, 저희 Github에 이슈를 올려주시거나 Discord로 알려주세요."},libraryElementTypeError:{embeddable:"임베드 요소들은 라이브러리에 추가할 수 없습니다.",iframe:"IFrame 요소들은 라이브러리에 추가할 수 없습니다.",image:"라이브러리에 이미지 삽입 기능은 곧 지원될 예정입니다!"},asyncPasteFailedOnRead:"붙여넣는데 실패했습니다. (시스템 클립보드를 읽는데 실패했습니다)",asyncPasteFailedOnParse:"붙여넣는데 실패했습니다.",copyToSystemClipboardFailed:"클립보드로 복사하는데 실패했습니다."},i={selection:"선택",image:"이미지 삽입",rectangle:"사각형",diamond:"다이아몬드",ellipse:"타원",arrow:"화살표",line:"선",freedraw:"그리기",text:"텍스트",library:"라이브러리",lock:"선택된 도구 유지하기",penMode:"펜 모드 - 터치 방지",link:"선택한 도형에 대해서 링크를 추가/업데이트",eraser:"지우개",frame:"프레임 도구",magicframe:"와이어프레임을 코드로",embeddable:"웹 임베드",laser:"레이저 포인터",hand:"손 (패닝 도구)",extraTools:"다른 도구",mermaidToExcalidraw:"Mermaid에서 불러오기",magicSettings:"AI 설정"},l={canvasActions:"캔버스 동작",selectedShapeActions:"선택된 모양 동작",shapes:"모양"},n={canvasPanning:"캔버스를 옮기려면 마우스 휠이나 스페이스바를 누르고 드래그하거나, 손 도구를 사용하기",linearElement:"여러 점을 연결하려면 클릭하고, 직선을 그리려면 바로 드래그하세요.",freeDraw:"클릭 후 드래그하세요. 완료되면 놓으세요.",text:"팁: 선택 툴로 아무 곳이나 더블 클릭해 텍스트를 추가할 수도 있습니다.",embeddable:"클릭 및 드래그하여 웹사이트 임베드 만들기",text_selected:"더블 클릭 또는 ENTER를 눌러서 텍스트 수정",text_editing:"ESC나 CtrlOrCmd+ENTER를 눌러서 수정을 종료하기",linearElementMulti:"마지막 지점을 클릭하거나 Esc 또는 Enter 키를 눌러 완료하세요.",lockAngle:"SHIFT 키를 누르면서 회전하면 각도를 제한할 수 있습니다.",resize:`SHIFT 키를 누르면서 조정하면 크기의 비율이 제한됩니다. -ALT를 누르면서 조정하면 중앙을 기준으로 크기를 조정합니다.`,resizeImage:`SHIFT를 눌러서 자유롭게 크기를 변경하거나, -ALT를 눌러서 중앙을 고정하고 크기를 변경하기`,rotate:"SHIFT 키를 누르면서 회전하면 각도를 제한할 수 있습니다.",lineEditor_info:"꼭짓점을 수정하려면 CtrlOrCmd 키를 누르고 더블 클릭을 하거나 CtrlOrCmd + Enter를 누르세요.",lineEditor_pointSelected:`Delete 키로 꼭짓점을 제거하거나, -CtrlOrCmd+D 로 복제하거나, 드래그 해서 이동시키기`,lineEditor_nothingSelected:`꼭짓점을 선택해서 수정하거나 (SHIFT를 눌러서 여러개 선택), -Alt를 누르고 클릭해서 새로운 꼭짓점 추가하기`,placeImage:"클릭해서 이미지를 배치하거나, 클릭하고 드래그해서 사이즈를 조정하기",publishLibrary:"당신만의 라이브러리를 게시하기",bindTextToElement:"Enter 키를 눌러서 텍스트 추가하기",deepBoxSelect:"CtrlOrCmd 키를 눌러서 깊게 선택하고, 드래그하지 않도록 하기",eraserRevert:"Alt를 눌러서 삭제하도록 지정된 요소를 되돌리기",firefox_clipboard_write:'이 기능은 설정에서 "dom.events.asyncClipboard.clipboardItem" 플래그를 "true"로 설정하여 활성화할 수 있습니다. Firefox에서 브라우저 플래그를 수정하려면, "about:config" 페이지에 접속하세요.',disableSnapping:"CtrlOrCmd 키를 눌러서 다른 요소와의 정렬 무시하기"},s={cannotShowPreview:"미리보기를 볼 수 없습니다",canvasTooBig:"캔버스가 너무 큽니다.",canvasTooBigTip:"팁: 멀리 있는 요소들을 좀 더 가까이로 붙여 보세요."},d={headingMain:"오류가 발생했습니다. ",clearCanvasMessage:"새로고침으로 해결되지 않을 경우, ",clearCanvasCaveat:" 작업 내용을 잃게 됩니다 ",trackedToSentry:"오류 {{eventId}} 가 시스템에서 발견되었습니다.",openIssueMessage:"저희는 화면 정보를 오류에 포함하지 않도록 매우 주의하고 있습니다. 혹시 화면에 민감한 내용이 없다면 이곳에 업로드를 고려해주세요. 아래 정보를 GitHub 이슈에 복사 및 붙여넣기해 주세요.",sceneContent:"화면 내용:"},c={desc_intro:"현재 화면에 공동 작업자를 초대해 협업할 수 있습니다.",desc_privacy:"안심하세요, 세션은 종단 간 암호화를 사용하므로 당신의 작업은 비공개로 유지되며 서버조차도 작업 내용을 알 수 없습니다.",button_startSession:"세션 시작",button_stopSession:"세션 중단",desc_inProgressIntro:"실시간 협업 세션이 진행 중입니다.",desc_shareLink:"공동 작업자에게 이 링크를 공유하세요.",desc_exitSession:"세션을 중단하면 연결은 끊어지나 작업을 이어갈 수 있습니다. 이 작업은 다른 작업자에게 영향을 미치지 않으며 각자의 공동 작업은 계속 유지됩니다.",shareTitle:"Excalidraw의 실시간 협업 세션에 참가하기"},m={title:"오류"},b={disk_title:"디스크에 저장",disk_details:"나중에 다시 불러올 수 있도록 화면 데이터를 내보냅니다.",disk_button:"파일로 저장",link_title:"공유 가능한 링크 생성",link_details:"읽기 전용 링크로 내보냅니다.",link_button:"링크로 내보내기",excalidrawplus_description:"화면을 당신의 Excalidraw+ 작업 공간으로 저장합니다.",excalidrawplus_button:"내보내기",excalidrawplus_exportError:"지금은 Excalidraw+로 내보낼 수 없습니다..."},p={blog:"블로그 읽어보기",click:"클릭",deepSelect:"깊게 선택",deepBoxSelect:"영역을 깊게 선택하고, 드래그하지 않도록 하기",curvedArrow:"곡선 화살표",curvedLine:"곡선",documentation:"설명서",doubleClick:"더블 클릭",drag:"드래그",editor:"에디터",editLineArrowPoints:"직선 / 화살표 꼭짓점 수정",editText:"텍스트 수정 / 라벨 추가",github:"문제 제보하기",howto:"가이드 참고하기",or:"또는",preventBinding:"화살표가 붙지 않게 하기",tools:"도구",shortcuts:"키보드 단축키",textFinish:"편집 완료 (텍스트 에디터)",textNewLine:"줄바꿈(텍스트 에디터)",title:"도움말",view:"보기",zoomToFit:"모든 요소가 보이도록 확대/축소",zoomToSelection:"선택 영역으로 확대/축소",toggleElementLock:"선택한 항목을 잠금/잠금 해제",movePageUpDown:"페이지 움직이기 위/아래",movePageLeftRight:"페이지 움직이기 좌/우"},g={title:"캔버스 지우기"},u={title:"라이브러리 게시하기",itemName:"아이템 이름",authorName:"저자명",githubUsername:"깃허브 사용자이름",twitterUsername:"트위터 사용자이름",libraryName:"라이브러리 이름",libraryDesc:"라이브러리 설명",website:"웹사이트",placeholder:{authorName:"이름 또는 사용자명",libraryName:"당신의 라이브러리 이름",libraryDesc:"사람들에게 라이브러리의 용도를 알기 쉽게 설명해주세요",githubHandle:"GitHub 사용자명 (선택), 제출한 뒤에도 심사를 위해서 라이브러리를 수정할 때 사용됩니다",twitterHandle:"Twitter 사용자명 (선택), Twitter를 통해서 홍보할 때 제작자를 밝히기 위해 사용됩니다",website:"개인 웹사이트나 다른 어딘가의 링크 (선택)"},errors:{required:"필수사항",website:"유효한 URL을 입력하세요"},noteDescription:"당신의 라이브러리를 제출하여 공개 라이브러리 저장소에서 다른 사람들의 그림에 사용할 수 있도록 하세요.",noteGuidelines:"라이브러리는 먼저 수동으로 승인되어야 합니다. 제출하기 전에 가이드라인을 먼저 읽어보세요. 의견을 공유하거나 변경사항을 만들기 위해선 GitHub 계정이 필요하지만, 반드시 필요하진 않습니다.",noteLicense:"제출함으로써, 당신은 라이브러리가 MIT 라이선스 하에 배포됨을, 즉 아무나 제약 없이 사용할 수 있음에 동의합니다.",noteItems:"각각의 라이브러리는 분류할 수 있도록 고유한 이름을 가져야 합니다. 다음의 라이브러리 항목이 포함됩니다:",atleastOneLibItem:"최소한 하나의 라이브러리를 선택해주세요",republishWarning:"참고: 선택된 항목의 일부는 이미 제출/게시되었습니다. 기존의 라이브러리나 제출물을 업데이트하는 경우에만 제출하세요."},h={title:"라이브러리 제출됨",content:"{{authorName}}님 감사합니다. 당신의 라이브러리가 심사를 위해 제출되었습니다. 진행 상황을여기에서 확인하실 수 있습니다."},S={resetLibrary:"라이브러리 리셋",removeItemsFromLib:"선택한 항목을 라이브러리에서 제거"},y={header:"이미지 내보내기",label:{withBackground:"배경",onlySelected:"선택한 항목만",darkMode:"다크 모드",embedScene:"화면을 담기",scale:"크기",padding:"여백"},tooltip:{embedScene:"화면 정보가 내보내는 PNG/SVG 파일에 저장되어 이후에 파일에서 화면을 복구할 수 있습니다. 파일 크기가 증가합니다."},title:{exportToPng:"PNG로 내보내기",exportToSvg:"SVG로 내보내기",copyPngToClipboard:"클립보드로 PNG 복사"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"클립보드로 복사"}},w={tooltip:"그림은 종단 간 암호화되므로 Excalidraw의 서버는 절대로 내용을 알 수 없습니다.",link:"Excalidraw의 종단 간 암호화에 대한 블로그 포스트"},k={angle:"각도",element:"요소",elements:"요소",height:"높이",scene:"화면",selected:"선택됨",storage:"저장공간",title:"덕후들을 위한 통계",total:"합계",version:"버전",versionCopy:"복사하려면 클릭",versionNotAvailable:"해당 버전 사용 불가능",width:"너비"},v={addedToLibrary:"라이브러리에 추가되었습니다",copyStyles:"스타일 복사.",copyToClipboard:"클립보드로 복사.",copyToClipboardAsPng:`{{exportSelection}}를 클립보드에 PNG로 복사했습니다 -({{exportColorScheme}})`,fileSaved:"파일이 저장되었습니다.",fileSavedToFilename:"{filename} 로 저장되었습니다",canvas:"캔버스",selection:"선택한 요소",pasteAsSingleElement:"단일 요소로 붙여넣거나, 기존 텍스트 에디터에 붙여넣으려면 {{shortcut}} 을 사용하세요.",unableToEmbed:"이 URL의 임베딩이 허용되지 않았습니다. GitHub에 이슈를 남겨서 이 URL이 화이트리스트에 등재될 수 있도록 요청하세요",unrecognizedLinkFormat:'임베딩하려는 링크의 형식이 잘못된 것 같습니다. 원본 사이트에서 제공하는 "임베딩" 텍스트를 그대로 붙여 넣어 주세요'},x={transparent:"투명",black:"블랙",white:"화이트",red:"레드",pink:"핑크",grape:"그레이프",violet:"바이올렛",gray:"그레이",blue:"블루",cyan:"시안",teal:"틸",green:"그린",yellow:"옐로우",orange:"오렌지",bronze:"브론즈"},T={app:{center_heading:"모든 데이터는 브라우저에 안전하게 저장됩니다.",center_heading_plus:"대신 Excalidraw+로 이동하시겠습니까?",menuHint:"내보내기, 설정, 언어, ..."},defaults:{menuHint:"내보내기, 설정, 등등...",center_heading:"간단하게 만드는 다이어그램.",toolbarHint:"도구를 선택하고, 그리세요!",helpHint:"단축키 & 도움말"}},E={mostUsedCustomColors:"가장 많이 사용된 색상들",colors:"색상",shades:"색조",hexCode:"Hex 코드",noShades:"사용할 수 있는 색조가 없음"},L={action:{exportToImage:{title:"이미지로 내보내기",button:"이미지로 내보내기",description:"나중에 다시 불러올 수 있도록 화면 데이터를 이미지로 내보냅니다."},saveToDisk:{title:"디스크에 저장",button:"디스크에 저장",description:"나중에 다시 불러올 수 있도록 화면 데이터를 내보냅니다."},excalidrawPlus:{title:"Excalidraw+",button:"Excalidraw+로 내보내기",description:"화면을 당신의 Excalidraw+ 작업 공간으로 저장합니다."}},modal:{loadFromFile:{title:"파일에서 불러오기",button:"파일에서 불러오기",description:"파일을 불러오면 현재 작성된 데이터를 덮어쓰게 됩니다.

    다음 옵션 중 하나를 선택하여 작업물을 백업해 둘 수 있습니다."},shareableLink:{title:"주소에서 불러오기",button:"컨텐츠를 덮어쓰기",description:"외부 작업물을 불러오면 현재 작성된 데이터를 덮어쓰게 됩니다.

    다음 옵션 중 하나를 선택하여 작업물을 백업해 둘 수 있습니다."}}},C={title:"Mermaid에서 불러오기",button:"삽입하기",description:"지금은 순서도, 시퀀스, 클래스 다이어그램만 지원합니다. 다른 형식들은 Excalidraw에서는 이미지로 표시됩니다.",syntax:"Mermaid 구문",preview:"미리보기"},_={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:S,imageExportDialog:y,encrypted:w,stats:k,toast:v,colors:x,welcomeScreen:T,colorPicker:E,overwriteConfirm:L,mermaid:C};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,x as colors,S as confirmDialog,_ as default,w as encrypted,m as errorDialog,d as errorSplash,a as errors,b as exportDialog,l as headings,p as helpDialog,n as hints,y as imageExportDialog,e as labels,o as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,k as stats,v as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=ko-KR.json-brzJvi-h.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js.map b/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js.map deleted file mode 100644 index 1d224d6..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ko-KR.json-brzJvi-h.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ko-KR.json-brzJvi-h.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js b/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js deleted file mode 100644 index 993a348..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"دانانەوە",pasteAsPlaintext:"دایبنێ وەک دەقی سادە",pasteCharts:"دانانەوەی خشتەکان",selectAll:"دیاریکردنی هەموو",multiSelect:"زیادکردنی بۆ دیاریکراوەکان",moveCanvas:"تابلۆ بجوڵێنە",cut:"بڕین",copy:"لەبەرگرتنەوە",copyAsPng:"PNGلەبەرگرتنەوە بۆ تەختەنووس وەک",copyAsSvg:"SVGلەبەرگرتنەوە بۆ تەختەنووس وەک",copyText:"لەبەرگرتنەوە بۆ تەختەنووس وەک نوسین",copySource:"",convertToCode:"",bringForward:"بهێنە پێشتر",sendToBack:"بنێرە دواوە",bringToFront:"بهێنە پێشەوە",sendBackward:"بنێرە دواتر",delete:"سڕینەوە",copyStyles:"لەبەرگرتنەوەی ستایل",pasteStyles:"دانانەوەی ستایل",stroke:"هێڵکار",background:"پاشبنەما",fill:"پڕکردنەوە",strokeWidth:"پانی هێڵکاری",strokeStyle:"ستایلی هێڵکاری",strokeStyle_solid:"سادە",strokeStyle_dashed:"پچڕ پچڕ",strokeStyle_dotted:"خاڵدار",sloppiness:"لێژی",opacity:"ڕوونی",textAlign:"ڕێکخستنی دەق",edges:"لێوارەکان",sharp:"تیژ",round:"چەماوە",arrowheads:"سەرەتیر",arrowhead_none:"هیچیان",arrowhead_arrow:"تیر",arrowhead_bar:"هێڵ",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"سێگۆشە",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"قەبارەی فۆنت",fontFamily:"خێزانی فۆنت",addWatermark:'زیادبکە "Made with Excalidraw"',handDrawn:"دەست کێشراو",normal:"ئاسایی",code:"کۆد",small:"بچووک",medium:"ناوەند",large:"گه‌وره‌",veryLarge:"زۆر گه‌وره‌",solid:"سادە",hachure:"هاچور",zigzag:"زیگزاگ",crossHatch:"کرۆس هاتچ",thin:"تەنک",bold:"تۆخ",left:"چەپ",center:"ناوه‌ند",right:"ڕاست",extraBold:"زۆر تۆخ",architect:"تەلارساز",artist:"هونەرمەند",cartoonist:"کارتۆنی",fileTitle:"ناوی فایل",colorPicker:"ڕەنگ هەڵگر",canvasColors:"بەکارهاتووە لەسەر تابلۆ",canvasBackground:"پاشبنەمای تابلۆ",drawingCanvas:"کێشانی تابلۆ",layers:"چینەکان",actions:"کردارەکان",language:"زمان",liveCollaboration:"هاوکاریکردنی زیندو...",duplicateSelection:"لەبەرگرتنەوە",untitled:"بێ ناونیشان",name:"ناو",yourName:"ناوەکەت",madeWithExcalidraw:"دروستکراوە بە Excalidraw",group:"دیاریکردنی گروپ",ungroup:"گروپی دیاریکراوەکان لابەرە",collaborators:"هاوکارەکان",showGrid:"گرید نیشانبدە",addToLibrary:"زیادکردن بۆ کتێبخانە",removeFromLibrary:"لابردن لە کتێبخانە",libraryLoadingMessage:"...بارکردنی کتێبخانە",libraries:"گەڕانی کتێبخانە",loadingScene:"...بارکردنی دیمەنەکە",align:"لاچەنکردن",alignTop:"لاچەنکردن بۆ سەرەوە",alignBottom:"لاچەنکردن بۆ خوارەوە",alignLeft:"لاچەنکردن بۆ چەپ",alignRight:"لاچەنکردن بۆ ڕاست",centerVertically:"بە ستونی ناوەند بکە",centerHorizontally:"بە ئاسۆی ناوەند بکە",distributeHorizontally:"بە ئاسۆی دابەشی بکە",distributeVertically:"بە ستونی دابەشی بکە",flipHorizontal:"هەڵگەڕانەوەی ئاسۆیی",flipVertical:"هەڵگەڕانەوەی ستونی",viewMode:"دۆخی بینین",share:"هاوبەشی پێکردن",showStroke:"ڕەنگهەڵگری هێڵکار نیشانبدە",showBackground:"ڕەنگهەڵگری باکگراوند نیشانبدە",toggleTheme:"دۆخی ڕوکار بگۆڕە",personalLib:"کتێبخانەی کەسی",excalidrawLib:"کتێبخانەی Excalidraw",decreaseFontSize:"کەمکردنەوەی قەبارەی فۆنت",increaseFontSize:"زایدکردنی قەبارەی فۆنت",unbindText:"دەقەکە جیابکەرەوە",bindText:"دەقەکە ببەستەوە بە کۆنتەینەرەکەوە",createContainerFromText:"دەق لە چوارچێوەیەکدا بپێچە",link:{edit:"دەستکاریکردنی بەستەر",editEmbed:"",create:"دروستکردنی بەستەر",createEmbed:"",label:"بەستەر",labelEmbed:"",empty:""},lineEditor:{edit:"دەستکاری کردنی دێڕ",exit:"دەرچوون لە دەستکاریکەری دێڕ"},elementLock:{lock:"قفڵکردن",unlock:"کردنەوە",lockAll:"قفڵکردنی هەموو",unlockAll:"کردنەوەی قفلی هەمووی"},statusPublished:"بڵاوکراوەتەوە",sidebarLock:"هێشتنەوەی شریتی لا بە کراوەیی",selectAllElementsInFrame:"هەموو توخمەکانی ناو چوارچێوەکە دیاری بکە",removeAllElementsFromFrame:"هەموو توخمەکانی ناو چوارچێوەکە لابەرە",eyeDropper:"ڕەنگێک لەسەر تابلۆکە هەڵبژێرە",textToDiagram:"",prompt:""},o={noItems:"هێشتا هیچ بڕگەیەک زیاد نەکراوە...",hint_emptyLibrary:"شتێک لەسەر تابلۆ هەڵبژێرە بۆ ئەوەی لێرە زیادی بکەیت، یان کتێبخانەیەک لە کۆگا گشتیەکەوە دابمەزرێنە، لە خوارەوە.",hint_emptyPrivateLibrary:"شتێک لەسەر تابلۆ هەڵبژێرە بۆ ئەوەی لێرە زیادی بکەیت."},t={clearReset:"تابلۆکە وەک سەرەتا لێبکەوە",exportJSON:"هەناردەکردن بۆ فایل",exportImage:"وێنە هەناردە بکە...",export:"پاشەکەوت بکە بۆ...",copyToClipboard:"له‌به‌ری بگره‌وه‌ بۆ ته‌خته‌نووس",save:"پاشەکەوت بکە بۆ فایلی بەردەست",saveAs:"پاشەکەوتکردن وەک",load:"بکەرەوە",getShareableLink:"بەستەری هاوبەشیپێکردن بەدەستبهێنە",close:"داخستن",selectLanguage:"دیاریکردنی زمان",scrollBackToContent:"گەڕاندنەوە بۆ ناوەڕۆک",zoomIn:"نزیک خستنەوە",zoomOut:"دوورخستنەوە",resetZoom:"ڕێستکردنی زووم",menu:"پێڕست",done:"تەواو",edit:"دەستکاری کردن",undo:"گه‌ڕانه‌وه‌ بۆ پێشوو",redo:"گه‌ڕانه‌وه‌ بۆ داهاتوو",resetLibrary:"ڕێکخستنەوەی کتێبخانە",createNewRoom:"ژوورێکی نوێ دروست بکە",fullScreen:"پڕ بە شاشە",darkMode:"دۆخی تاریک",lightMode:"دۆخی ڕووناک",zenMode:"دۆخی زێن",objectsSnapMode:"",exitZenMode:"بەجێهێشتنی دۆخی زێن",cancel:"هەڵوەشاندنەوە",clear:"خاوێنکردنەوە",remove:"لابردن",embed:"",publishLibrary:"بڵاوکردنەوە",submit:"پێشکەشکردن",confirm:"دوپاتکردنەوە",embeddableInteractionButton:""},r={clearReset:"ئەمە هەموو تابلۆکە خاوێن دەکاتەوە، دڵنیایت؟",couldNotCreateShareableLink:"نەتوانرا بەستەری هاوبەشیپێکردن دروستبکرێت",couldNotCreateShareableLinkTooBig:"نەتوانرا بەستەری هاوبەشیپێکردن دروستبکرێت: دیمەنەکە زۆر گەورەیە",couldNotLoadInvalidFile:"ناتوانرا باربکرێت، فایلەکە دروستنییە",importBackendFailed:"هاوردەکردن لە پاشکۆکە سەرکەوتوو نەبوو.",cannotExportEmptyCanvas:"ناتوانرێت تابلۆی بەتاڵ هەناردەبکرێت.",couldNotCopyToClipboard:"ناتوانرا لەبەربگیرێتەوە بۆ تەختەنوس",decryptFailed:"ناتوانرا داتاکان شیبکرێتەوە",uploadedSecurly:"بارکردنەکە بە کۆدکردنی کۆتایی بۆ کۆتایی پارێزراوە، ئەمەش واتە سێرڤەری Excalidraw و لایەنی سێیەم ناتوانن ناوەڕۆکەکە بخوێننەوە.",loadSceneOverridePrompt:"بارکردنی وێنەکێشانی دەرەکی جێگەی ناوەڕۆکی بەردەستت دەگرێتەوە. دەتەوێت بەردەوام بیت؟",collabStopOverridePrompt:`وەستاندنی دانیشتنەکە وێنەکێشانی پێشووت دەنووسێتەوە کە لە ناوخۆدا هەڵگیراوە. ئایا دڵنیایت? - -(ئەگەر دەتەوێت وێنەکێشانی ناوخۆیی خۆت بهێڵیتەوە، لەبری ئەوە تەنها تابی وێبگەڕەکە دابخە).`,errorAddingToLibrary:"نەیتوانی بڕگە زیاد بکات بۆ کتێبخانە",errorRemovingFromLibrary:"نەیتوانی بڕگە لە کتێبخانە بسڕێتەوە",confirmAddLibrary:"ئەمە {{numShapes}} شێوە(ەکان) زیاد دەکات بۆ کتێبخانەکەت. ئایا دڵنیایت?",imageDoesNotContainScene:"وادیارە ئەم وێنەیە هیچ داتایەکی دیمەنی تێدا نییە. ئایا دیمەنی چەسپاندنت لە کاتی هەناردەدا چالاک کردووە؟",cannotRestoreFromImage:"ناتوانرێت دیمەنەکە بگەڕێندرێتەوە لەم فایلە وێنەیە",invalidSceneUrl:'ناتوانێت دیمەنەکە هاوردە بکات لە URL ی دابینکراو. یان نادروستە، یان داتای "ئێکسکالیدراو" JSON ی دروستی تێدا نییە.',resetLibrary:"ئەمە کتێبخانەکەت خاوێن دەکاتەوە. ئایا دڵنیایت?",removeItemsFromsLibrary:"سڕینەوەی {{count}} ئایتم(ەکان) لە کتێبخانە؟",invalidEncryptionKey:"کلیلی رەمزاندن دەبێت لە 22 پیت بێت. هاوکاری ڕاستەوخۆ لە کارخراوە.",collabOfflineWarning:`هێڵی ئینتەرنێت بەردەست نییە. - گۆڕانکارییەکانت سەیڤ ناکرێن!`},a={unsupportedFileType:"جۆری فایلی پشتگیری نەکراو.",imageInsertError:"نەیتوانی وێنە داخڵ بکات. دواتر هەوڵ بدە",fileTooBig:"فایلەکە زۆر گەورەیە. زۆرترین قەبارەی ڕێگەپێدراو {{maxSize}}}.",svgImageInsertError:"نەیتوانی وێنەی SVG داخڵ بکات. نیشانەی ئێس ڤی جی نادروست دیارە.",failedToFetchImage:"",invalidSVGString:"ئێس ڤی جی نادروستە.",cannotResolveCollabServer:"ناتوانێت پەیوەندی بکات بە سێرڤەری کۆلاب. تکایە لاپەڕەکە دووبارە باربکەوە و دووبارە هەوڵ بدەوە.",importLibraryError:"نەیتوانی کتێبخانە بار بکات",collabSaveFailed:"نەتوانرا لە بنکەدراوەی ڕاژەدا پاشەکەوت بکرێت. ئەگەر کێشەکان بەردەوام بوون، پێویستە فایلەکەت لە ناوخۆدا هەڵبگریت بۆ ئەوەی دڵنیا بیت کە کارەکانت لەدەست نادەیت.",collabSaveFailed_sizeExceeded:"نەتوانرا لە بنکەدراوەی ڕاژەدا پاشەکەوت بکرێت، پێدەچێت تابلۆکە زۆر گەورە بێت. پێویستە فایلەکە لە ناوخۆدا هەڵبگریت بۆ ئەوەی دڵنیا بیت کە کارەکانت لەدەست نادەیت.",imageToolNotSupported:"",brave_measure_text_error:{line1:"وادیارە وێبگەڕی Brave بەکاردەهێنیت و ڕێکخستنی Aggressively Block Fingerprinting ـت چالاک کردووە.",line2:"ئەمە ئەکرێ ببێتە هۆی تێکدانی دانە دەقییەکان لە وێنەکێشانەکانتدا.",line3:"ئێمە بە توندی پێشنیاری لەکارخستنی ئەم ڕێکخستنە دەکەین. بۆ لە کارخستنی دەتوانیت بەم هەنگاوانەدا بڕۆیت.",line4:"ئەگەر لەکارخستنی ئەم ڕێکخستنە نەبوە هۆی چاککردنەوەی پێشاندانی دانە دەقییەکان، تکایە کێشەیەک بکەرەوە لەسەر گیتهەبەکەمان، یان بۆمان بنوسە لەسەر دیسکۆرد"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"دەستنیشانکردن",image:"داخڵکردنی وێنە",rectangle:"لاکێشە",diamond:"ئەڵماس",ellipse:"هێلکەیی",arrow:"تیر",line:"هێڵ",freedraw:"کێشان",text:"دەق",library:"کتێبخانە",lock:"ئامێرە دیاریکراوەکان چالاک بهێڵەوە دوای وێنەکێشان",penMode:"شێوازی قەڵەم - دەست لێدان ڕابگرە",link:"زیادکردن/ نوێکردنەوەی لینک بۆ شێوەی دیاریکراو",eraser:"سڕەر",frame:"ئامرازی چوارچێوە",magicframe:"",embeddable:"",laser:"",hand:"دەست (ئامرازی پانکردن)",extraTools:"ئامرازی زیاتر",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"کردارەکانی تابلۆ",selectedShapeActions:"کردارەکانی شێوەی دەستنیشانکراو",shapes:"شێوەکان"},l={canvasPanning:"بۆ جوڵاندنی تابلۆ، ویلی ماوسەکەت یان دوگمەی سپەیس بگرە لەکاتی ڕاکێشاندە، یانیش ئامرازی دەستەکە بەکاربهێنە",linearElement:"کرتە بکە بۆ دەستپێکردنی چەند خاڵێک، ڕایبکێشە بۆ یەک هێڵ",freeDraw:"کرتە بکە و ڕایبکێشە، کاتێک تەواو بوویت دەست هەڵگرە",text:"زانیاری: هەروەها دەتوانیت دەق زیادبکەیت بە دوو کرتەکردن لە هەر شوێنێک لەگەڵ ئامڕازی دەستنیشانکردن",embeddable:"",text_selected:"دووجار کلیک بکە یان ENTER بکە بۆ دەستکاریکردنی دەق",text_editing:"بۆ تەواوکردنی دەستکاریکردنەکە Escape یان Ctrl/Cmd+ENTER بکە",linearElementMulti:"کلیک لەسەر کۆتا خاڵ بکە یان Escape یان Enter بکە بۆ تەواوکردن",lockAngle:"دەتوانیت گۆشە سنووردار بکەیت بە ڕاگرتنی SHIFT",resize:`دەتوانیت ڕێژەکان سنووردار بکەیت بە ڕاگرتنی SHIFT لەکاتی گۆڕینی قەبارەدا، -ALT ڕابگرە بۆ گۆڕینی قەبارە لە ناوەندەوە`,resizeImage:`دەتوانیت بە ئازادی قەبارە بگۆڕیت بە ڕاگرتنی SHIFT، -ALT ڕابگرە بۆ گۆڕینی قەبارە لە ناوەندەوە`,rotate:"دەتوانیت گۆشەکان سنووردار بکەیت بە ڕاگرتنی SHIFT لەکاتی سوڕانەوەدا",lineEditor_info:"یان Ctrl یان Cmd بگرە و دوانە کلیک بکە یانیش پەنجە بنێ بە Ctrl یان Cmd + ئینتەر بۆ دەستکاریکردنی خاڵەکان",lineEditor_pointSelected:"بۆ لابردنی خاڵەکان Delete دابگرە، Ctrl Cmd+D بکە بۆ لەبەرگرتنەوە، یان بۆ جووڵە ڕاکێشان بکە",lineEditor_nothingSelected:`خاڵێک هەڵبژێرە بۆ دەستکاریکردن (SHIFT ڕابگرە بۆ هەڵبژاردنی چەندین)، -یان Alt ڕابگرە و کلیک بکە بۆ زیادکردنی خاڵە نوێیەکان`,placeImage:"کلیک بکە بۆ دانانی وێنەکە، یان کلیک بکە و ڕایبکێشە بۆ ئەوەی قەبارەکەی بە دەستی دابنێیت",publishLibrary:"کتێبخانەی تایبەت بە خۆت بڵاوبکەرەوە",bindTextToElement:"بۆ زیادکردنی دەق enter بکە",deepBoxSelect:"CtrlOrCmd ڕابگرە بۆ هەڵبژاردنی قووڵ، و بۆ ڕێگریکردن لە ڕاکێشان",eraserRevert:"بۆ گەڕاندنەوەی ئەو توخمانەی کە بۆ سڕینەوە نیشانە کراون، Alt ڕابگرە",firefox_clipboard_write:'ئەم تایبەتمەندییە بە ئەگەرێکی زۆرەوە دەتوانرێت چالاک بکرێت بە ڕێکخستنی ئاڵای "dom.events.asyncClipboard.clipboardItem" بۆ "true". بۆ گۆڕینی ئاڵاکانی وێبگەڕ لە فایەرفۆکسدا، سەردانی لاپەڕەی "about:config" بکە.',disableSnapping:""},s={cannotShowPreview:"ناتوانرێ پێشبینین پیشان بدرێت",canvasTooBig:"تابلۆکە لەوانەیە زۆر گەورەبێت.",canvasTooBigTip:"زانیاری: هەوڵ بدە دوورترین توخمەکان کەمێک لە یەکتر نزیک بکەوە."},c={headingMain:"تووشی هەڵەیەک بوو. هەوڵ بدە ",clearCanvasMessage:"ئەگەر دووبارە بارکردنەوە کار ناکات، هەوڵبدە ",clearCanvasCaveat:" ئەمە دەبێتە هۆی لەدەستدانی ئەوەی کە کردوتە ",trackedToSentry:"هەڵەکە لەگەڵ ناسێنەری {{eventId}} لەسەر سیستەمەکەمان بەدواداچوونی بۆ کرا.",openIssueMessage:"ئێمە زۆر وریا بووین کە زانیارییەکانی دیمەنەکەت لەسەر هەڵەکە نەخەینەڕوو. ئەگەر دیمەنەکەت تایبەت نییە، تکایە بیر لە بەدواداچوون بکەنەوە بۆ ئێمە تکایە ئەم زانیارییانەی خوارەوە کۆپی بکە و لە بەشی کێشەکانی Github دایبنێ.",sceneContent:"پێکهاتەی ناو دیمەنەکە:"},d={desc_intro:"دەتوانیت خەڵک بانگهێشت بکەیت بۆ دیمەنی ئێستات بۆ هاوکاری کردن لەگەڵت.",desc_privacy:"نیگەران مەبە، دانیشتنەکە کۆدکردنی کۆتایی بە کۆتایی بەکاردەهێنێت، بۆیە هەرچییەک بکێشیت بە تایبەتی دەمێنێتەوە. تەنانەت سێرڤەرەکەمان ناتوانێت بزانێت کە تۆ چیت دروستکردووە.",button_startSession:"دەستپێکردنی دانیشتن",button_stopSession:"وەستاندنی دانیشتن",desc_inProgressIntro:"دانیشتنی هاوکاری ڕاستەوخۆ ئێستا لە ئارادایە.",desc_shareLink:"هاوبەشکردنی ئەم لینکە لەگەڵ هەر کەسێک کە دەتەوێت هاوکاری بکەیت لەگەڵ:",desc_exitSession:"وەستاندنی دانیشتنەکە پەیوەندیت لەگەڵ ژوورەکە دەپچڕێنێت، بەڵام تۆ دەتوانیت بەردەوام بیت لە کارکردن لەگەڵ دیمەنەکە، لە ناوخۆدا. تێبینی بکە کە ئەمە کاریگەری لەسەر کەسانی تر نابێت، وە ئەوان هێشتا دەتوانن هاوکاری بکەن لەسەر وەشانەکەیان.",shareTitle:"بەشداری بکە لە دانیشتنی هاریکاری ڕاستەوخۆ لە ئێکسکالیدراو"},m={title:"هه‌ڵه‌ ڕوویدا"},p={disk_title:"پاشەکەوت بکە لە دیسک",disk_details:"هەناردەکردنی داتای دیمەنەکە بۆ فایلێک کە دواتر دەتوانیت لێی هاوردە بکەیت.",disk_button:"پاشەکەوت بکە بۆ فایل",link_title:"بەستەری هاوبەشیپێکردن",link_details:"ناردن وەک بەستەری تەنها-خوێندنەوە.",link_button:"هەناردەکردن بۆ بەستەر",excalidrawplus_description:"دیمەنەکە لە شوێنی کارکردنی Excalidraw+ هەڵبگرە.",excalidrawplus_button:"هەناردەکردن",excalidrawplus_exportError:"لەم ساتەدا نەتوانرا هەناردە بکرێت بۆ Excalidrow+..."},b={blog:"بلۆگەکەمان بخوێنەوە",click:"گرتە",deepSelect:"دەستنیشانکردنی قوڵ",deepBoxSelect:"لەناو بۆکسەکەدا بە قووڵی هەڵبژێرە، و ڕێگری لە ڕاکێشان بکە",curvedArrow:"تیری نوشتاوە",curvedLine:"هێڵی نوشتاوە",documentation:"دۆکیومێنتەیشن",doubleClick:"دوو گرتە",drag:"راکێشان",editor:"دەستکاریکەر",editLineArrowPoints:"دەستکاری خاڵەکانی هێڵ/تیر بکە",editText:"دەستکاری دەق بکە / لەیبڵێک زیاد بکە",github:"کێشەیەکت دۆزیەوە؟ پێشکەشکردن",howto:"شوێن ڕینماییەکانمان بکەوە",or:"یان",preventBinding:"ڕێگریبکە لە نوشتاناوەی تیر",tools:"ئامرازەکان",shortcuts:"کورتکراوەکانی تەختەکلیل",textFinish:"تەواوکردنی دەستکاریکردن (دەستکاریکەری دەق)",textNewLine:"زیادکردنی دێڕی نوێ (دەستکاریکەری دەق)",title:"یارماتی",view:"دیمەن",zoomToFit:"زووم بکە بۆ ئەوەی لەگەڵ هەموو توخمەکاندا بگونجێت",zoomToSelection:"زووم بکە بۆ دەستنیشانکراوەکان",toggleElementLock:"قفڵ/کردنەوەی دەستنیشانکراوەکان",movePageUpDown:"لاپەڕەکە بجوڵێنە بۆ سەرەوە/خوارەوە",movePageLeftRight:"لاپەڕەکە بجوڵێنە بۆ چەپ/ڕاست"},g={title:"تابلۆکە خاوێن بکەرەوە"},u={title:"پێشکەشکردنی کتێبخانە",itemName:"ناوی بڕگە",authorName:"ناوی نوسەر",githubUsername:"ناوی بەکارهێنەری Github",twitterUsername:"ناوی بەکارهێنەری Twitter",libraryName:"ناوی کتێبخانە",libraryDesc:"وەسفی کتێبخانە",website:"ماڵپەڕ",placeholder:{authorName:"ناوەکات یاخود ناوی بەکارهێنەر",libraryName:"ناوی کتێبخانەکەت",libraryDesc:"وەسفی کتێبخانەکەت بۆ یارمەتیدانی خەڵک بۆ تێگەیشتن لە بەکارهێنانی",githubHandle:"ناوی GitHub (ئارەزوومەندانە)، بۆیە دەتوانیت دەستکاری کتێبخانەکە بکەیت کاتێک پێشکەش دەکرێت بۆ پێداچوونەوە",twitterHandle:"ناوی بەکارهێنەری تویتەر (ئارەزوومەندانە)، بۆیە بزانین لەکاتی بانگەشەکردن لە ڕێگەی تویتەرەوە کریدت بۆ کێ بکەین",website:"لینکی ماڵپەڕی تایبەتی خۆت یان شوێنێکی تر (ئارەزومەندانە)"},errors:{required:"داواکراوە",website:"URLێکی دروست تێبنووسە"},noteDescription:"کتێبخانەکەت بنێرە بۆ ئەوەی بخرێتە ناو کۆگای کتێبخانەی گشتیبۆ ئەوەی کەسانی تر لە وێنەکێشانەکانیاندا بەکاری بهێنن.",noteGuidelines:"کتێبخانەکە پێویستە سەرەتا بە دەست پەسەند بکرێت. تکایە بفەرمو بە خوێندنەوەی ڕێنماییەکان پێش پێشکەشکردن. پێویستت بە ئەژمێری GitHub دەبێت بۆ پەیوەندیکردن و گۆڕانکاری ئەگەر داوای لێکرا، بەڵام بە توندی پێویست نییە.",noteLicense:"بە پێشکەشکردن، تۆ ڕەزامەندیت لەسەر بڵاوکردنەوەی کتێبخانەکە بەپێی مۆڵەتی MIT، کە بە کورتی مانای ئەوەیە کە هەرکەسێک دەتوانێت بە بێ سنوور بەکاری بهێنێت",noteItems:"هەر شتێکی کتێبخانە دەبێت ناوی تایبەتی خۆی هەبێت بۆ ئەوەی بتوانرێت فلتەر بکرێت. ئەم بابەتانەی کتێبخانانەی خوارەوە لەخۆدەگرێت:",atleastOneLibItem:"تکایە بەلایەنی کەمەوە یەک بڕگەی کتێبخانە دیاریبکە بۆ دەستپێکردن",republishWarning:"تێبینی: هەندێک لە ئایتمە دیاریکراوەکان نیشانکراون وەک ئەوەی پێشتر بڵاوکراونەتەوە/نێردراون. تەنها پێویستە شتەکان دووبارە پێشکەش بکەیتەوە لە کاتی نوێکردنەوەی کتێبخانەیەکی هەبوو یان پێشکەشکردن."},h={title:"کتێبخانە پێشکەش کرا",content:"سوپاس {{authorName}}. کتێبخانەکەت پێشکەش کراوە بۆ پێداچوونەوە. دەتوانیت بەدواداچوون بۆ دۆخەکە بکەیتلێرە"},y={resetLibrary:"ڕێکخستنەوەی کتێبخانە",removeItemsFromLib:"لابردنی ئایتمە دیاریکراوەکان لە کتێبخانە"},S={header:"وێنە هەناردە بکە",label:{withBackground:"پاشبنەما",onlySelected:"تەنها دیاریکراوەکان",darkMode:"دۆخی تاریک",embedScene:"دیمەنەکە بەکاربهێنەرەوە",scale:"قەبارە",padding:"بۆشایی"},tooltip:{embedScene:`داتاکانی دیمەنەکە لە فایلە هەناردەکراوەکەی PNG/SVG هەڵدەگیرێن بۆ ئەوەی دیمەنەکە لێیەوە بگەڕێتەوە. -قەبارەی پەڕگەی هەناردەکراو زیاد دەکات.`},title:{exportToPng:"هەناردە بکە وەک PNG",exportToSvg:"هەناردە بکە وەک SVG",copyPngToClipboard:"لەبەربگرەوە بۆ سەر تەختەنوس"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"له‌به‌ری بگره‌وه‌ بۆ ته‌خته‌نووس"}},v={tooltip:"وێنەکێشانەکانت لە کۆتاییەوە بۆ کۆتایی کۆد کراون بۆیە سێرڤەرەکانی ئێکسکالیدرا هەرگیز نایانبینن.",link:"بلۆگ پۆست لەسەر کۆدکردنی کۆتای بۆ کۆتای لە ئێکسکالیدرەو"},k={angle:"گۆشە",element:"توخم",elements:"توخمەکان",height:"بەرزی",scene:"دیمەنەکە",selected:"دەستنیشانکراوەکان",storage:"بیرگە",title:"ئامار بۆ نێردەکان",total:"گشتی",version:"وەشان",versionCopy:"کلیک بۆ لەبەرگرتنەوە",versionNotAvailable:"وەشان بەردەست نییە",width:"پانی"},w={addedToLibrary:"زیادکرا بۆ کتێبخانە",copyStyles:"ستایلی کۆپیکراو.",copyToClipboard:"لەبەرگیرایەوە بۆ تەختەنوس.",copyToClipboardAsPng:`کۆپی کراوە {{exportSelection}} بۆ کلیپبۆرد وەک PNG -({{exportColorScheme}})`,fileSaved:"فایل هەڵگیرا.",fileSavedToFilename:"هەڵگیراوە بۆ {filename}",canvas:"تابلۆ",selection:"دەستنیشانکراوەکان",pasteAsSingleElement:"بۆ دانانەوە وەکو یەک توخم یان دانانەوە بۆ نێو دەسکاریکەرێکی دەق کە بوونی هەیە {{shortcut}} بەکاربهێنە",unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"ڕوون",black:"ڕەش",white:"سپی",red:"سور",pink:"پەمەیی",grape:"مێوژی",violet:"مۆری کاڵ",gray:"خۆڵەمێشی",blue:"شین",cyan:"شینی ئاسمانی",teal:"شەدری",green:"سه‌وز",yellow:"زەرد",orange:"پرتەقاڵی",bronze:"برۆنزی"},x={app:{center_heading:"هەموو داتاکانت لە ناوخۆی وێنگەڕەکەتدا پاشەکەوت کراوە.",center_heading_plus:"ویستت بڕۆیت بۆ Excalidraw+?",menuHint:"هەناردەکردن، ڕێکخستنەکان، زمانەکان، ..."},defaults:{menuHint:"هەناردەکردن، ڕێکخستنەکان، و زیاتر...",center_heading:"دایاگرامەکان. ئاسان. کراون.",toolbarHint:"ئامرازێک هەڵبگرە و دەستبکە بە کێشان!",helpHint:"قەدبڕەکان و یارمەتی"}},_={mostUsedCustomColors:"زۆرترین ڕەنگە باوە بەکارهاتووەکان",colors:"ڕەنگەکان",shades:"سێبەرەکان",hexCode:"کۆدی هێکس",noShades:"هیچ سێبەرێک بۆ ئەم ڕەنگە بەردەست نییە"},C={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},L={title:"",button:"",description:"",syntax:"",preview:""},E={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:k,toast:w,colors:T,welcomeScreen:x,colorPicker:_,overwriteConfirm:C,mermaid:L};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,T as colors,y as confirmDialog,E as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,L as mermaid,C as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,k as stats,w as toast,i as toolBar,x as welcomeScreen}; -//# sourceMappingURL=ku-TR.json-3BiS76lb.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js.map b/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js.map deleted file mode 100644 index e22420c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ku-TR.json-3BiS76lb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ku-TR.json-3BiS76lb.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js b/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js deleted file mode 100644 index 2be1cc4..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js +++ /dev/null @@ -1,4 +0,0 @@ -const i={paste:"Įklijuoti",pasteAsPlaintext:"Įklijuoti kaip paprastą tekstą",pasteCharts:"Įklijuoti diagramas",selectAll:"Pažymėti viską",multiSelect:"Pridėkite elementą prie pasirinktų",moveCanvas:"Judinti drobę",cut:"Iškirpti",copy:"Kopijuoti",copyAsPng:"Kopijuoti į iškarpinę kaip PNG",copyAsSvg:"Kopijuoti į iškarpinę kaip SVG",copyText:"Kopijuoti į iškarpinę kaip tekstą",copySource:"",convertToCode:"",bringForward:"Kelti priekio link",sendToBack:"Nustumti į užnugarį",bringToFront:"Iškelti į priekį",sendBackward:"Nustumti link užnugario",delete:"Ištrinti",copyStyles:"Kopijuoti stilius",pasteStyles:"Įklijuoti stilius",stroke:"Linija",background:"Fonas",fill:"Užpildymas",strokeWidth:"Linijos storis",strokeStyle:"Linijos stilius",strokeStyle_solid:"Ištisinė",strokeStyle_dashed:"Brūkšniuota",strokeStyle_dotted:"Taškuota",sloppiness:"Netvarkingumas",opacity:"Nepermatomumas",textAlign:"Teksto lygiavimas",edges:"Kraštai",sharp:"Aštrus",round:"Užapvalintas",arrowheads:"Rodyklės viršūnės",arrowhead_none:"Jokios",arrowhead_arrow:"Rodyklė",arrowhead_bar:"Brukšnys",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trikampis",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Šrifto dydis",fontFamily:"Šriftas",addWatermark:"Sukurta su Excalidraw",handDrawn:"Ranka rašytas",normal:"Normalus",code:"Kodas",small:"Mažas",medium:"Vidutinis",large:"Didelis",veryLarge:"Labai didelis",solid:"",hachure:"",zigzag:"",crossHatch:"",thin:"Plonas",bold:"Pastorintas",left:"Kairėje",center:"Centre",right:"Dešinėje",extraBold:"Labiau pastorintas",architect:"Architektas",artist:"Menininkas",cartoonist:"Karikatūristas",fileTitle:"Failo pavadinimas",colorPicker:"Spalvos parinkiklis",canvasColors:"",canvasBackground:"Drobės fonas",drawingCanvas:"",layers:"Sluoksniai",actions:"Veiksmai",language:"Kalba",liveCollaboration:"Bendradarbiavimas gyvai...",duplicateSelection:"",untitled:"",name:"",yourName:"Jūsų vardas",madeWithExcalidraw:"Sukurta su Excalidraw",group:"Grupuoti pasirinkimą",ungroup:"Išgrupuoti pasirinkimą",collaborators:"Bendradarbiautojai",showGrid:"Rodyti tinklelį",addToLibrary:"Pridėti į biblioteką",removeFromLibrary:"Pašalinti iš bibliotekos",libraryLoadingMessage:"",libraries:"Naršyti bibliotekas",loadingScene:"",align:"Lygiuoti",alignTop:"Lygiuoti viršuje",alignBottom:"Lygiuoti apačioje",alignLeft:"Lygiuoti kairėje",alignRight:"Lygiuoti dešinėje",centerVertically:"Centruoti vertikaliai",centerHorizontally:"Centruoti horizontaliai",distributeHorizontally:"",distributeVertically:"",flipHorizontal:"Apversti horizontaliai",flipVertical:"Apversti vertikaliai",viewMode:"",share:"Dalintis",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"Asmeninė biblioteka",excalidrawLib:"Exaclidraw biblioteka",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"Redeguoti nuorodą",editEmbed:"",create:"Sukurti nuorodą",createEmbed:"",label:"Nuoroda",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"Užrakinti",unlock:"Atrakinti",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},e={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},a={clearReset:"",exportJSON:"Eksportuoti į failą",exportImage:"",export:"",copyToClipboard:"Kopijuoti į iškarpinę",save:"",saveAs:"Išsaugoti kaip",load:"",getShareableLink:"Gauti nuorodą dalinimuisi",close:"Uždaryti",selectLanguage:"Pasirinkite kalbą",scrollBackToContent:"",zoomIn:"Priartinti",zoomOut:"Nutolinti",resetZoom:"",menu:"Meniu",done:"",edit:"Redaguoti",undo:"Anuliuoti",redo:"",resetLibrary:"Atstatyti biblioteką",createNewRoom:"Sukurti naują kambarį",fullScreen:"Visas ekranas",darkMode:"Tamsus režimas",lightMode:"Šviesus režimas",zenMode:"„Zen“ režimas",objectsSnapMode:"",exitZenMode:"Išeiti iš „Zen“ režimo",cancel:"Atšaukti",clear:"Išvalyti",remove:"Pašalinti",embed:"",publishLibrary:"Paskelbti",submit:"Pateikti",confirm:"Patvirtinti",embeddableInteractionButton:""},t={clearReset:"",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:`Sesijos nutraukimas perrašys ankstesnį, lokaliai išsaugotą piešinį. Ar tikrai to nori? - -(Jei nori išlaikyti lokalų piešinį, tiesiog uždaryk naršyklės skirtuką.)`,errorAddingToLibrary:"Nepavyko įtraukti elemento į biblioteką",errorRemovingFromLibrary:"Nepavyko pašalinti elemento iš bibliotekos",confirmAddLibrary:"Tai įtrauks {{numShapes}} figūrą/-as į tavo biblioteką. Ar tikrai to nori?",imageDoesNotContainScene:"Panašu, jog šis paveiksliukas neturi scenos duomenų. Ar yra įjuntas scenos įtraukimas ekportavimo metu?",cannotRestoreFromImage:"Nepavyko atstatyti scenos iš šio nuotraukos failo",invalidSceneUrl:"Nepavyko suimportuoti scenos iš pateiktos nuorodos (URL). Ji arba blogai suformatuota, arba savyje neturi teisingų Excalidraw JSON duomenų.",resetLibrary:"Tai išvalys tavo biblioteką. Ar tikrai to nori?",removeItemsFromsLibrary:"Ištrinti {{count}} elementą/-us iš bibliotekos?",invalidEncryptionKey:"Šifravimo raktas turi būti iš 22 simbolių. Redagavimas gyvai yra išjungtas.",collabOfflineWarning:""},o={unsupportedFileType:"Nepalaikomas failo tipas.",imageInsertError:"Nepyko įkelti paveiksliuko. Pabandyk vėliau...",fileTooBig:"Per didelis failas. Didžiausias leidžiamas dydis yra {{maxSize}}.",svgImageInsertError:"Nepavyko įtraukti SVG paveiksliuko. Panašu, jog SVG yra nevalidus.",failedToFetchImage:"",invalidSVGString:"Nevalidus SVG.",cannotResolveCollabServer:"Nepavyko prisijungti prie serverio bendradarbiavimui. Perkrauk puslapį ir pabandyk prisijungti dar kartą.",importLibraryError:"Nepavyko įkelti bibliotekos",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Žymėjimas",image:"Įkelti paveiksliuką",rectangle:"Stačiakampis",diamond:"Deimantas",ellipse:"Elipsė",arrow:"Rodyklė",line:"Linija",freedraw:"Piešti",text:"Tekstas",library:"Biblioteka",lock:"Baigus piešti, išlaikyti pasirinktą įrankį",penMode:"Rašyklio režimas - neleisti prisilietimų",link:"Pridėti / Atnaujinti pasirinktos figūros nuorodą",eraser:"Trintukas",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Veiksmai su drobe",selectedShapeActions:"Veiksmai su pasirinkta figūra",shapes:"Figūros"},n={canvasPanning:"",linearElement:"Paspaudimai sukurs papildomus taškus, nepertraukiamas tempimas sukurs liniją",freeDraw:"Spausk ir tempk, paleisk kai norėsi pabaigti",text:"Užuomina: tekstą taip pat galima pridėti bet kur su dvigubu pelės paspaudimu, kol parinkas žymėjimo įrankis",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},l={cannotShowPreview:"",canvasTooBig:"",canvasTooBigTip:""},d={headingMain:"",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},u={desc_intro:"",desc_privacy:"",button_startSession:"Pradėti seansą",button_stopSession:"Sustabdyti seansą",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},k={title:"Klaida"},p={disk_title:"Įrašyti į diską",disk_details:"",disk_button:"Įrašyti į failą",link_title:"Nuoroda dalinimuisi",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"Eksportuoti",excalidrawplus_exportError:""},c={blog:"",click:"paspaudimas",deepSelect:"",deepBoxSelect:"",curvedArrow:"Banguota rodyklė",curvedLine:"Banguota linija",documentation:"Dokumentacija",doubleClick:"dvigubas paspaudimas",drag:"vilkti",editor:"Redaktorius",editLineArrowPoints:"",editText:"",github:"Radai klaidą? Pateik",howto:"Vadovaukis mūsų gidu",or:"arba",preventBinding:"",tools:"Įrankiai",shortcuts:"Spartieji klavišai",textFinish:"Baigti redagavimą (teksto redaktoriuje)",textNewLine:"Pridėti naują eilutę (tekto redaktoriuje)",title:"Pagalba",view:"",zoomToFit:"",zoomToSelection:"Priartinti iki pažymėtos vietos",toggleElementLock:"",movePageUpDown:"Pajudinti puslapį aukštyn/žemyn",movePageLeftRight:"Pajudinti puslapį kairėn/dešinėn"},m={title:"Išvalyti drobę"},b={title:"Paviešinti biblioteką",itemName:"Elemento pavadinimas",authorName:"Autoriaus vardas",githubUsername:"Github spalyvardis",twitterUsername:"Twitter slapyvardis",libraryName:"Bibliotekos pavadinimas",libraryDesc:"Bibliotekos aprašas",website:"Tinklalapis",placeholder:{authorName:"Tavo vardas arba spalyvardis",libraryName:"Tavo bibliotekos pavadinimas",libraryDesc:"Tavo bibliotekos aprašas, padėti žmonėms geriau suprasti jos paskirtį",githubHandle:"",twitterHandle:"",website:""},errors:{required:"Privalomas",website:"Įveskite teisingą nuorodą (URL)"},noteDescription:"Pateik savo biblioteką, jog ji galėtų būti įtraukta į jog kiti žmonės galėtų tai naudoti savo piešiniuose.",noteGuidelines:"Visų pirma, biblioteka turi būti rankiniu būdu patvirtinta. Prašome paskaityti gairės",noteLicense:"MIT licencija, ",noteItems:"",atleastOneLibItem:"",republishWarning:""},g={title:"Biblioteka pateikta",content:"Ačiū {{authorName}}. Tavo biblioteka buvo pateikta peržiūrai. Gali sekti būsenąčia"},y={resetLibrary:"Atstatyti biblioteką",removeItemsFromLib:"Pašalinti pasirinktus elementus iš bibliotekos"},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},h={tooltip:"",link:""},S={angle:"",element:"Elementas",elements:"Elementai",height:"Aukštis",scene:"Scena",selected:"Pasirinkta",storage:"Saugykla",title:"Informacija moksliukams",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:"Plotis"},T={addedToLibrary:"Pridėta į biblioteką",copyStyles:"",copyToClipboard:"Nukopijuota į iškarpinę.",copyToClipboardAsPng:"",fileSaved:"Failas išsaugotas.",fileSavedToFilename:"Išsaugota į {filename}",canvas:"drobė",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},P={transparent:"Permatoma",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},w={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},x={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},j={title:"",button:"",description:"",syntax:"",preview:""},_={labels:i,library:e,buttons:a,alerts:t,errors:o,toolBar:r,headings:s,hints:n,canvasError:l,errorSplash:d,roomDialog:u,errorDialog:k,exportDialog:p,helpDialog:c,clearCanvasDialog:m,publishDialog:b,publishSuccessDialog:g,confirmDialog:y,imageExportDialog:v,encrypted:h,stats:S,toast:T,colors:P,welcomeScreen:w,colorPicker:x,overwriteConfirm:L,mermaid:j};export{t as alerts,a as buttons,l as canvasError,m as clearCanvasDialog,x as colorPicker,P as colors,y as confirmDialog,_ as default,h as encrypted,k as errorDialog,d as errorSplash,o as errors,p as exportDialog,s as headings,c as helpDialog,n as hints,v as imageExportDialog,i as labels,e as library,j as mermaid,L as overwriteConfirm,b as publishDialog,g as publishSuccessDialog,u as roomDialog,S as stats,T as toast,r as toolBar,w as welcomeScreen}; -//# sourceMappingURL=lt-LT.json-VZNCnPUp.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js.map b/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js.map deleted file mode 100644 index ad80237..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/lt-LT.json-VZNCnPUp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"lt-LT.json-VZNCnPUp.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js b/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js deleted file mode 100644 index 09aed4e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js +++ /dev/null @@ -1,8 +0,0 @@ -const t={paste:"Ielīmēt",pasteAsPlaintext:"Ielīmēt kā vienkāršu tekstu",pasteCharts:"Ielīmēt grafikus",selectAll:"Atlasīt visu",multiSelect:"Pievienot elementu atlasei",moveCanvas:"Pārvietot tāfeli",cut:"Izgriezt",copy:"Kopēt",copyAsPng:"Kopēt starpliktuvē kā PNG",copyAsSvg:"Kopēt starpliktuvē kā SVG",copyText:"Kopēt starpliktuvē kā tekstu",copySource:"",convertToCode:"",bringForward:"Pārvietot vienu slāni augstāk",sendToBack:"Pārvietot uz zemāko slāni",bringToFront:"Pārvietot uz virsējo slāni",sendBackward:"Pārvietot par vienu slāni zemāk",delete:"Dzēst",copyStyles:"Kopēt stilus",pasteStyles:"Ielīmēt stilus",stroke:"Svītras krāsa",background:"Fona krāsa",fill:"Aizpildījums",strokeWidth:"Svītras platums",strokeStyle:"Svītras stils",strokeStyle_solid:"Vienlaidu",strokeStyle_dashed:"Raustīta līnija",strokeStyle_dotted:"Punktota līnija",sloppiness:"Precizitāte",opacity:"Necaurspīdīgums",textAlign:"Teksta līdzināšana",edges:"Malas",sharp:"Asas",round:"Apaļas",arrowheads:"Bultas",arrowhead_none:"Nekādas",arrowhead_arrow:"Bulta",arrowhead_bar:"Svītra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trijstūris",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Teksta lielums",fontFamily:"Fontu saime",addWatermark:'Pievienot "Radīts ar Excalidraw"',handDrawn:"Rokraksts",normal:"Parasts",code:"Kods",small:"Mazs",medium:"Vidējs",large:"Liels",veryLarge:"Ļoti liels",solid:"Pilns",hachure:"Svītrots",zigzag:"Zigzaglīnija",crossHatch:"Šķērssvītrots",thin:"Šaurs",bold:"Trekns",left:"Pa kreisi",center:"Vidū",right:"Pa labi",extraBold:"Īpaši trekns",architect:"Arhitekts",artist:"Mākslinieks",cartoonist:"Karikatūrists",fileTitle:"Datnes nosaukums",colorPicker:"Krāsu atlasītājs",canvasColors:"Izmantots tāfelei",canvasBackground:"Ainas fons",drawingCanvas:"Tāfele",layers:"Slāņi",actions:"Darbības",language:"Valoda",liveCollaboration:"Sadarbība tiešsaistē...",duplicateSelection:"Izveidot kopiju",untitled:"Bez nosaukuma",name:"Vārds",yourName:"Jūsu vārds",madeWithExcalidraw:"Radīts ar Excalidraw",group:"Grupēt atlasīto",ungroup:"Atgrupēt atlasīto",collaborators:"Dalībnieki",showGrid:"Rādīt režģi",addToLibrary:"Pievienot bibliotēkai",removeFromLibrary:"Izņemt no bibliotēkas",libraryLoadingMessage:"Ielādē bibliotēku…",libraries:"Apskatīt bibliotēkas",loadingScene:"Ielādē ainu…",align:"Līdzināt",alignTop:"Līdzināt augšpusē",alignBottom:"Līdzināt lejā",alignLeft:"Līdzināt pa kreisi",alignRight:"Līdzināt pa labi",centerVertically:"Centrēt vertikāli",centerHorizontally:"Centrēt horizontāli",distributeHorizontally:"Izdalīt horizontāli",distributeVertically:"Izdalīt vertikāli",flipHorizontal:"Apmest horizontāli",flipVertical:"Apmest vertikāli",viewMode:"Skata režīms",share:"Kopīgot",showStroke:"Rādīt svītras krāsas atlasītāju",showBackground:"Rādīt fona krāsas atlasītāju",toggleTheme:"Pārslēgt krāsu tēmu",personalLib:"Personīgā bibliotēka",excalidrawLib:"Excalidraw bibliotēka",decreaseFontSize:"Samazināt fonta izmēru",increaseFontSize:"Palielināt fonta izmēru",unbindText:"Atdalīt tekstu",bindText:"Piesaistīt tekstu figūrai",createContainerFromText:"Ietilpināt tekstu figurā",link:{edit:"Rediģēt saiti",editEmbed:"",create:"Izveidot saiti",createEmbed:"",label:"Saite",labelEmbed:"",empty:""},lineEditor:{edit:"Rediģēt līniju",exit:"Aizvērt līnijas redaktoru"},elementLock:{lock:"Fiksēt",unlock:"Atbrīvot",lockAll:"Fiksēt visu",unlockAll:"Atbrīvot visu"},statusPublished:"Publicēts",sidebarLock:"Paturēt atvērtu sānjoslu",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Neviena vienība vēl nav pievienota...",hint_emptyLibrary:"Atlasiet objektu tāfelē, lai to šeit pievienotu, vai pievienojiet publisku bibliotēku zemāk.",hint_emptyPrivateLibrary:"Atlasiet objektu tāfelē, lai to šeit pievienotu."},e={clearReset:"Atiestatīt tāfeli",exportJSON:"Eksportēt kā failu",exportImage:"Eksportēt attēlu...",export:"Saglabāt uz...",copyToClipboard:"Kopēt starpliktuvē",save:"Saglabāt pašreizējo datni",saveAs:"Saglabāt kā",load:"Atvērt",getShareableLink:"Iegūt kopīgošanas saiti",close:"Aizvērt",selectLanguage:"Izvēlieties valodu",scrollBackToContent:"Atgriezties pie satura",zoomIn:"Tuvināt",zoomOut:"Tālināt",resetZoom:"Atiestatīt tuvinājumu",menu:"Izvēlne",done:"Gatavs",edit:"Rediģēt",undo:"Atsaukt",redo:"Atcelt atsaukšanu",resetLibrary:"Atiestatīt bibliotēku",createNewRoom:"Izveidot jaunu telpu",fullScreen:"Pilnekrāna režīms",darkMode:"Tumšais režīms",lightMode:"Gaišais režīms",zenMode:"Zen režīms",objectsSnapMode:"",exitZenMode:"Pamest Zen režīmu",cancel:"Atcelt",clear:"Notīrīt",remove:"Noņemt",embed:"",publishLibrary:"Publicēt",submit:"Iesniegt",confirm:"Apstiprināt",embeddableInteractionButton:""},i={clearReset:"Šī funkcija notīrīs visu tāfeli. Vai turpināt?",couldNotCreateShareableLink:"Nevarēja izveidot kopīgojamo saiti.",couldNotCreateShareableLinkTooBig:"Nevarēja izveidot kopīgojamo saiti – aina ir par lielu",couldNotLoadInvalidFile:"Nevarēja ielādēt nederīgu datni",importBackendFailed:"Ielāde no krātuves neizdevās.",cannotExportEmptyCanvas:"Nevar eksportēt tukšu tāfeli.",couldNotCopyToClipboard:"Nevarēja nokopēt starpliktuvē.",decryptFailed:"Nevarēja atšifrēt datus.",uploadedSecurly:"Augšuplāde nodrošināta ar šifrēšanu no gala līdz galam, kas nozīmē, ka Excalidraw serveri un trešās puses nevar lasīt saturu.",loadSceneOverridePrompt:"Ārēja satura ielāde aizstās jūsu pašreizējo saturu. Vai vēlaties turpināt?",collabStopOverridePrompt:`Sesijas pārtraukšana pārrakstīs jūsu iepriekšējo zīmējumu, kas saglabāts jūsu pārlūkā. Vai turpināt? - -(Ja vēlaties paturēt zīmējumu, kas saglabāts jūsu pārlūkā, vienkārši aizveriet pārlūka cilni.)`,errorAddingToLibrary:"Nevarēja pievienot vienumu bibliotēkai",errorRemovingFromLibrary:"Nevarēja izņemt vienumu no bibliotēkas",confirmAddLibrary:"Šī funkcija pievienos {{numShapes}} formu(-as) jūsu bibliotēkai. Vai turpināt?",imageDoesNotContainScene:"Šķiet, ka attēls nesatur ainas datus. Vai iespējojāt ainas iegulšanu, kad eksportējāt?",cannotRestoreFromImage:"Ainu nevarēja atgūt no attēla datnes",invalidSceneUrl:"Nevarēja importēt ainu no norādītā URL. Vai nu tas ir nederīgs, vai nesatur derīgus Excalidraw JSON datus.",resetLibrary:"Šī funkcija iztukšos bibliotēku. Vai turpināt?",removeItemsFromsLibrary:"Vai izņemt {{count}} vienumu(s) no bibliotēkas?",invalidEncryptionKey:"Šifrēšanas atslēgai jābūt 22 simbolus garai. Tiešsaistes sadarbība ir izslēgta.",collabOfflineWarning:`Nav pieejams interneta pieslēgums. -Jūsu izmaiņas netiks saglabātas!`},s={unsupportedFileType:"Neatbalstīts datnes veids.",imageInsertError:"Nevarēja ievietot attēlu. Mēģiniet vēlāk...",fileTooBig:"Datne ir par lielu. Lielākais atļautais izmērs ir {{maxSize}}.",svgImageInsertError:"Nevarēja ievietot SVG attēlu. Šķiet, ka SVG marķējums nav derīgs.",failedToFetchImage:"",invalidSVGString:"Nederīgs SVG.",cannotResolveCollabServer:"Nevarēja savienoties ar sadarbošanās serveri. Lūdzu, pārlādējiet lapu un mēģiniet vēlreiz.",importLibraryError:"Nevarēja ielādēt bibliotēku",collabSaveFailed:"Darbs nav saglabāts datubāzē. Ja problēma turpinās, saglabājiet datni lokālajā krātuvē, lai nodrošinātos pret darba pazaudēšanu.",collabSaveFailed_sizeExceeded:"Darbs nav saglabāts datubāzē, šķiet, ka tāfele ir pārāk liela. Saglabājiet datni lokālajā krātuvē, lai nodrošinātos pret darba pazaudēšanu.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Atlase",image:"Ievietot attēlu",rectangle:"Taisnstūris",diamond:"Rombs",ellipse:"Elipse",arrow:"Bulta",line:"Līnija",freedraw:"Zīmēt",text:"Teksts",library:"Bibliotēka",lock:"Paturēt izvēlēto rīku pēc darbības",penMode:"Pildspalvas režīms – novērst pieskaršanos",link:"Pievienot/rediģēt atlasītās figūras saiti",eraser:"Dzēšgumija",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Roka (panoramēšanas rīks)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},o={canvasActions:"Tāfeles darbības",selectedShapeActions:"Izvēlētās formas darbības",shapes:"Formas"},l={canvasPanning:"Lai bīdītu tāfeli, turiet nospiestu ritināšanas vai atstarpes taustiņu, vai izmanto rokas rīku",linearElement:"Klikšķiniet, lai sāktu zīmēt vairākus punktus; velciet, lai zīmētu līniju",freeDraw:"Spiediet un velciet; atlaidiet, kad pabeidzat",text:"Ieteikums: lai pievienotu tekstu, varat arī jebkur dubultklikšķināt ar atlases rīku",embeddable:"",text_selected:"Dubultklikšķiniet vai spiediet ievades taustiņu, lai rediģētu tekstu",text_editing:"Spiediet iziešanas taustiņu vai CtrlOrCmd+ENTER, lai beigtu rediģēt",linearElementMulti:"Klikšķiniet uz pēdējā punkta vai spiediet izejas vai ievades taustiņu, lai pabeigtu",lockAngle:"Varat ierobežot leņķi, turot nospiestu SHIFT",resize:`Kad maināt izmēru, varat ierobežot proporcijas, turot nospiestu SHIFT, -vai arī ALT, lai mainītu izmēru ap centru`,resizeImage:`Varat brīvi mainīt izmēru, turot nospiestu SHIFT; -turiet nospiestu ALT, lai mainītu izmēru ap centru`,rotate:"Rotējot varat ierobežot leņķi, turot nospiestu SHIFT",lineEditor_info:"Turiet CtrlOrCmd un dubultklikšķiniet, vai spiediet CtrlOrCmd + Enter, lai rediģētu punktus",lineEditor_pointSelected:"Spiediet dzēšanas taustiņu, lai noņemtu punktus, – CtrlOrCmd+D, lai to kopētu, vai velciet, lai pārvietotu",lineEditor_nothingSelected:`Atlasiet punktu, lai labotu (turiet nospiestu SHIFT, lai atlasītu vairākus), -vai turiet Alt un clikšķiniet, lai pievienotu jaunus punktus`,placeImage:"Klikšķiniet, lai novietotu attēlu, vai spiediet un velciet, lai iestatītu tā izmēru",publishLibrary:"Publicēt savu bibliotēku",bindTextToElement:"Spiediet ievades taustiņu, lai pievienotu tekstu",deepBoxSelect:"Turient nospiestu Ctrl vai Cmd, lai atlasītu dziļumā un lai nepieļautu objektu pavilkšanu",eraserRevert:"Turiet Alt, lai noņemtu elementus no dzēsšanas atlases",firefox_clipboard_write:'Šis iestatījums var tikt ieslēgts ar "dom.events.asyncClipboard.clipboardItem" marķieri pārslēgtu uz "true". Lai mainītu pārlūka marķierus Firefox, apmeklē "about:config" lapu.',disableSnapping:""},n={cannotShowPreview:"Nevar rādīt priekšskatījumu",canvasTooBig:"Iespējams, tāfele ir par lielu.",canvasTooBigTip:"Ieteikums: mēģiniet satuvināt pašus tālākos elementus."},u={headingMain:"Notikusi kļūda. Mēģiniet ",clearCanvasMessage:"Ja pārlādēšana nestrādā, mēģiniet ",clearCanvasCaveat:" Tas novedīs pie darba zaudēšanas ",trackedToSentry:"Kļūda ar kodu {{eventId}} tika noteikta mūsu sistēmā.",openIssueMessage:"Mēs uzmanījāmies, lai neiekļautu jūsu ainas informāciju šajā kļūdā. Ja jūsu aina nav privāta, lūdzu ziņojiet par šo kļūdu mūsu Lūdzu, miniet sekojošo informāciju to kopējot un ielīmējot jūsu ziņojumā platformā GitHub.",sceneContent:"Ainas saturs:"},d={desc_intro:"Varat ielūgt cilvēkus pašreizējajā ainā, lai sadarbotos ar tiem.",desc_privacy:"Neuztraucieties, sesija izmanto šifrēšanu no gala līdz galam, tātad jūsu zīmējums paliks privāts. Pat mūsu serveri nevarēs redzēt, ar ko esat nācis klajā.",button_startSession:"Sākt sesiju",button_stopSession:"Beigt sesiju",desc_inProgressIntro:"Notiek tiešsaistes sadarbības sesija.",desc_shareLink:"Dalieties ar šo saiti ar jebkuru, ar ko vēlaties sadarboties:",desc_exitSession:"Sesijas beigšana jūs atvienos no sadarbošanās, bet jūs vēl joprojām varēsiet strādāt ar ainu savā datorā. Ievērojiet, ka šis neietekmēs citus dalībniekus, un viņi vēl joprojām varēs sadarboties savā ainas versijā.",shareTitle:"Pievienoties tiešsaistes sadarbībai programmā Excalidraw"},k={title:"Kļūda"},m={disk_title:"Saglabāt diskā",disk_details:"Eksportēt ainas datus datnē, ko vēlāk varēsiet importēt.",disk_button:"Saglabāt datnē",link_title:"Kopīgošanas saite",link_details:"Eksportēt kā tikai lasāmu saiti.",link_button:"Eksportēt kā saiti",excalidrawplus_description:"Saglabāt ainu savā Excalidraw+ darbvietā.",excalidrawplus_button:"Eksportēt",excalidrawplus_exportError:"Pašreiz nevarēja eksportēt uz Excalidraw+..."},p={blog:"Lasīt mūsu blogu",click:"klikšķis",deepSelect:"Atlasīt dziļumā",deepBoxSelect:"Atlasīt dziļumā kastes ietvaros, un nepieļaut pavilkšanu",curvedArrow:"Liekta bulta",curvedLine:"Liekta līnija",documentation:"Dokumentācija",doubleClick:"dubultklikšķis",drag:"vilkt",editor:"Redaktors",editLineArrowPoints:"Rediģēt līniju/bultu punktus",editText:"Rediģēt tekstu/pievienot birku",github:"Sastapāt kļūdu? Ziņot",howto:"Sekojiet mūsu instrukcijām",or:"vai",preventBinding:"Novērst bultu piesaistīšanos",tools:"Rīki",shortcuts:"Tastatūras saīsnes",textFinish:"Pabeigt rediģēšanu (teksta redaktorā)",textNewLine:"Nākamā rindiņa (teksta redaktorā)",title:"Palīdzība",view:"Skatīt",zoomToFit:"Iestatīt mērogu, kas iekļauj visus elementus",zoomToSelection:"Iestatīt mērogu, lai rādītu atlasi",toggleElementLock:"Fiksēt/atbrīvot atlasīto",movePageUpDown:"Pārvietot lapu augšup/lejup",movePageLeftRight:"Pārvietot lapu pa labi/kreisi"},b={title:"Notīrīt tāfeli"},v={title:"Publicēt bibliotēku",itemName:"Vienuma nosaukums",authorName:"Autora vārds",githubUsername:"GitHub lietotājvārds",twitterUsername:"Twitter lietotājvārds",libraryName:"Bibliotēkas nosaukums",libraryDesc:"Bibliotēkas apraksts",website:"Mājaslapa",placeholder:{authorName:"Jūsu vārds vai lietotājvārds",libraryName:"Jūsu bibliotēkas nosaukums",libraryDesc:"Bibliotēkas apraksts, kas palīdzēs citiem saprast tās pielietojumu",githubHandle:"GitHub lietotājvārds (neobligāts), lai jūs varētu rediģēt bibliotēku pēc tās iesniegšanas izskatīšanai",twitterHandle:"Twitter lietotājvārds (neobligāts), lai mēs varētu jūs pieminēt kā autoru, kad reklamēsim bibliotēku platformā Twitter",website:"Saikne uz jūsu personīgo mājaslapu vai kādu citu lapu (neobligāta)"},errors:{required:"Obligāts",website:"Ievadiet derīgu URL"},noteDescription:"Iesniegt savu bibliotēku iekļaušanai publiskajā bibliotēku datubāzē, lai citi to varētu izmantot savos zīmējumos.",noteGuidelines:"Šai bibliotēkai vispirms jātiek manuāli apstiprinātai. Lūdzu, izlasiet norādījumus pirms iesniegšanas. Jums vajadzēs GitHub kontu, lai sazinātos un veiktu izmaiņas, ja tādas būs pieprasītas, bet tas nav absolūti nepieciešams.",noteLicense:"Iesniedzot bibliotēku, jūs piekrītat tās publicēšanai saskaņā ar MIT Licenci, kas īsumā nozīmē, ka jebkurš to varēs izmantot bez ierobežojumiem.",noteItems:"Katram bibliotēkas vienumam jābūt savam nosaukumam, lai to varētu atrast filtrējot. Tiks iekļauti sekojošie bibliotēkas vienumi:",atleastOneLibItem:"Lūdzu, atlasiet vismaz vienu bibliotēkas vienumu, lai sāktu darbu",republishWarning:"Ievēro: daži no atzīmētajiem objektiem jau atzīmēti kā publicēti vai iesniegti publicēšanai. Tos vajadzētu atkārtoti iesniegt tikai tad, ja vēlies labot esošo bibliotēku."},c={title:"Bibliotēka iesniegta",content:"Paldies, {{authorName}}! Jūsu bibliotēka iesniegta izskatīšanai. Jūs varat izsekot iesnieguma statusamšeit"},g={resetLibrary:"Atiestatīt bibliotēku",removeItemsFromLib:"Noņemt atlasītos vienumus no bibliotēkas"},j={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},z={tooltip:"Jūsu zīmējumi ir šifrēti no gala līdz galam; līdz ar to Excalidraw serveri tos nekad neredzēs.",link:"Ieraksts par šifrēšanu no gala līdz galam Excalidraw blogā"},S={angle:"Leņķis",element:"Elements",elements:"Elementi",height:"Augstums",scene:"Aina",selected:"Atlasīti",storage:"Krātuve",title:"Statistika entuziastiem",total:"Kopā",version:"Versija",versionCopy:"Klikšķiniet, lai nokopētu",versionNotAvailable:"Versija nav pieejama",width:"Platums"},h={addedToLibrary:"Pievienots bibliotēkai",copyStyles:"Nokopēja stilus.",copyToClipboard:"Nokopēja starpliktuvē.",copyToClipboardAsPng:"Nokopēja {{exportSelection}} starpliktuvē kā PNG ({{exportColorScheme}})",fileSaved:"Datne saglabāta.",fileSavedToFilename:"Saglabāts kā {filename}",canvas:"tāfeli",selection:"atlasi",pasteAsSingleElement:"Izmantojiet {{shortcut}}, lai ielīmētu kā jaunu elementu, vai ielīmētu esošā teksta lauciņā",unableToEmbed:"",unrecognizedLinkFormat:""},y={transparent:"Caurspīdīgs",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"Visi jūsu dati tiek glabāti uz vietas jūsu pārlūkā.",center_heading_plus:"Vai tā vietā vēlies doties uz Excalidraw+?",menuHint:"Eksportēšana, iestatījumi, valodas..."},defaults:{menuHint:"Eksportēšana, iestatījumi un vēl...",center_heading:"Diagrammas. Izveidotas. Vienkārši.",toolbarHint:"Izvēlies rīku un sāc zīmēt!",helpHint:"Īsceļi un palīdzība"}},f={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},w={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},x={title:"",button:"",description:"",syntax:"",preview:""},I={labels:t,library:a,buttons:e,alerts:i,errors:s,toolBar:r,headings:o,hints:l,canvasError:n,errorSplash:u,roomDialog:d,errorDialog:k,exportDialog:m,helpDialog:p,clearCanvasDialog:b,publishDialog:v,publishSuccessDialog:c,confirmDialog:g,imageExportDialog:j,encrypted:z,stats:S,toast:h,colors:y,welcomeScreen:T,colorPicker:f,overwriteConfirm:w,mermaid:x};export{i as alerts,e as buttons,n as canvasError,b as clearCanvasDialog,f as colorPicker,y as colors,g as confirmDialog,I as default,z as encrypted,k as errorDialog,u as errorSplash,s as errors,m as exportDialog,o as headings,p as helpDialog,l as hints,j as imageExportDialog,t as labels,a as library,x as mermaid,w as overwriteConfirm,v as publishDialog,c as publishSuccessDialog,d as roomDialog,S as stats,h as toast,r as toolBar,T as welcomeScreen}; -//# sourceMappingURL=lv-LV.json-5aVXkl-5.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js.map b/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js.map deleted file mode 100644 index 5e82d7b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/lv-LV.json-5aVXkl-5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"lv-LV.json-5aVXkl-5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js b/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js deleted file mode 100644 index 7eb816b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js +++ /dev/null @@ -1,14 +0,0 @@ -const e={paste:"चिटकवा",pasteAsPlaintext:"साधा मजकूर च्या रुपात पेस्ट करा",pasteCharts:"चार्ट चिकटवा",selectAll:"समस्त निवडा",multiSelect:"निवडित तत्व जोडा",moveCanvas:"पटल हलवा",cut:"कापा",copy:"प्रतिलिपी",copyAsPng:"PNG रूपे फळी वर कॉपी करा",copyAsSvg:"SVG रूपे फळी वर कॉपी करा",copyText:"लिखित रूपे फळी वर कॉपी करा",copySource:"स्त्रोत फळी वर कॉपी करा",convertToCode:"सांकेतिक लिपित रूपांतरित करा",bringForward:"पुढे पुढे आणा",sendToBack:"सर्वात मागे करा",bringToFront:"सर्वात पुढे आणा",sendBackward:"मागे मागे करा",delete:"हटवा",copyStyles:"शैली कॉपी करा",pasteStyles:"कॉपी केलेली शैली वापरा",stroke:"रेघे चा रंग",background:"पार्श्वभूमी",fill:"भरा",strokeWidth:"रेघ रुंदी",strokeStyle:"रेघ शैली",strokeStyle_solid:"भरीव",strokeStyle_dashed:"तुटित तुटित",strokeStyle_dotted:"ठिपके ठिपके",sloppiness:"गबाळेपणा",opacity:"अपारदर्शक्ता",textAlign:"मजकूर संरेखन",edges:"किनारी",sharp:"टोचरं",round:"गोलाकार",arrowheads:"बाण टोक",arrowhead_none:"कुठलाहि नाही",arrowhead_arrow:"बाण",arrowhead_bar:"दांडुक",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"त्रिकोण",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"अक्षर आकार",fontFamily:"अक्षर समूह",addWatermark:'"एक्सकेलीड्रॉ ने बनवलेलं" जोडा',handDrawn:"हातानी बनवलेलं",normal:"सामान्य",code:"सांकेतिक लिपि",small:"छोटे",medium:"मध्यम",large:"मोठं",veryLarge:"फार मोठं",solid:"भरीव",hachure:"हैशूर रेखांकन",zigzag:"वाकडी तिकड़ी",crossHatch:"आडव्या रेघा",thin:"पातळ",bold:"जाड",left:"डावं",center:"मधे",right:"उजवं",extraBold:"जास्त जाड",architect:"वास्तुविद्याविशारद",artist:"कलाकार",cartoonist:"व्यंग्य चित्रकार",fileTitle:"फाईलचे नाव",colorPicker:"रंग निवडक",canvasColors:"कॅनवास वर वापरलेले",canvasBackground:"पटल पार्श्वभूमि",drawingCanvas:"चित्र पटल",layers:"स्तर",actions:"क्रिया",language:"भाषा",liveCollaboration:"ज्वलंत सहयोग...",duplicateSelection:"प्रतिलिपि",untitled:"अशीर्षकांकित",name:"नाव",yourName:"तुमचे नाव",madeWithExcalidraw:"एक्सकेलीड्रॉ ने बनवलेलं",group:"समूह निवड",ungroup:"समूह निवड ला रद्द करा",collaborators:"Sahayog",showGrid:"ग्रिड दाखवा",addToLibrary:"संग्रह मधे सम्मिलित करा",removeFromLibrary:"संग्रहातून काढ़ा",libraryLoadingMessage:"संग्रह लोड होत आहे…",libraries:"संग्रह देखे",loadingScene:"दृश्य लोड होत आहे…",align:"संरेखित करा",alignTop:"वर संरेखित करा",alignBottom:"खाली संरेखित करा",alignLeft:"डावा बाजूला संरेखित करा",alignRight:"उजव्या बाजूला संरेखित करा",centerVertically:"मधल्या मधे उभं संरेखित करा",centerHorizontally:"मधल्या मधे आडवं संरेखित करा",distributeHorizontally:"आडवं वितरित करा",distributeVertically:"उभं वितरित करा",flipHorizontal:"आडवं फ्लिप करा",flipVertical:"उभं फ्लिप करा",viewMode:"पहायची पद्धत",share:"सामायिक करा",showStroke:"रेघ रंग निवड यंत्र दाखवा",showBackground:"पार्श्वभूमि: रंग निवड यंत्र दाखवा",toggleTheme:"शैली बदला",personalLib:"वैयक्तिक संग्रह",excalidrawLib:"एक्सकेलीड्रॉ संग्रह",decreaseFontSize:"अक्षर आकार छोटा करा",increaseFontSize:"अक्षर आकार मोठा करा",unbindText:"लेखन संबंध संपवा",bindText:"शब्द समूह ला पात्रात घ्या",createContainerFromText:"मजकूर कंटेनर मधे मोडून दाखवा",link:{edit:"दुवा संपादन",editEmbed:"कड़ी सम्पादित करा आणि रुतवा",create:"दुवा तयार करा",createEmbed:"नवीन कड़ी बनवा आणि रुतवा",label:"दुवा",labelEmbed:"कड़ी आणि रूतवणे",empty:"कुठलिही कड़ी दिली नाही"},lineEditor:{edit:"रेघ संपादन",exit:"रेघ संपादकाबाहेर"},elementLock:{lock:"कुलूपात ठेवा",unlock:"कुलूपातून बाहेर",lockAll:"सर्व कुलूपात ठेवा",unlockAll:"सर्व कुलूपातून बाहेर"},statusPublished:"प्रकाशित करा",sidebarLock:"साइडबार उघडं ठेवा",selectAllElementsInFrame:"चौकटीतले सर्व तत्वांचे चयन करा",removeAllElementsFromFrame:"चौकटीतून सर्व काढून टाका",eyeDropper:"चित्रफलकातून रंग निवडा",textToDiagram:"",prompt:""},o={noItems:"अजून कोणतेही आइटम जोडलेले नाही...",hint_emptyLibrary:"पटल वर एक वस्तु निवडुन एथे जोडा, किव्हा एक संग्रह जन कोष कडुन खाली स्थापित करा.",hint_emptyPrivateLibrary:"ईथे जोडण्या साठी पटल वरून एक वस्तु निवडा."},t={clearReset:"पटल पुसा",exportJSON:"फ़ाइलमधे बाहेर ठेवा",exportImage:"प्रतिमा निर्यात करा...",export:"येथे सुरक्षित करा...",copyToClipboard:"फळी वर कॉपी करा",save:"वर्तमान फ़ाइल मधे जतन करा",saveAs:"ह्या नावाने जतन करा",load:"उघडा",getShareableLink:"सामायिके साठी दुवा प्राप्त करा",close:"बंद करा",selectLanguage:"भाषा निवड करा",scrollBackToContent:"पहलेचा मजकुर वर मागे स्क्रॉल करा",zoomIn:"मोठं करून पहा",zoomOut:"छोटं करून पहा",resetZoom:"छोटं मोठं करणं बंद करा",menu:"यादि",done:"झालं",edit:"संपादित करा",undo:"पूर्ववत करा",redo:"पुन्हा करा(&R)",resetLibrary:"संग्रह पुनर्स्थित करा",createNewRoom:"एक नवी खोली बनवा",fullScreen:"पूर्ण दृश्यपटल",darkMode:"अंधार स्थिथि",lightMode:"उजेड स्थिति",zenMode:"ध्यानग्र स्थिति",objectsSnapMode:"वस्तूंपासून पकड़ा",exitZenMode:"ध्यानग्र स्थितितून बाहेर",cancel:"रद्द",clear:"स्वछ",remove:"हटवा",embed:"रुतवणे उलटे करा",publishLibrary:"प्रकाशित करा",submit:"जमा करा",confirm:"पुष्टि करा",embeddableInteractionButton:"संवादा साठी क्लिक करा"},r={clearReset:"पटल स्वच्छ होणार, तुम्हाला खात्री आहे का?",couldNotCreateShareableLink:"सामायी करण करण्या योग्य दुवा नाही बनवता आला.",couldNotCreateShareableLinkTooBig:"सामायी करण करण्या योग्य दुवा नाही बनवता आला: दृश्य फार मोठं आहे",couldNotLoadInvalidFile:"अवैध फ़ाइल लोड करता आली नाही",importBackendFailed:"बैकएंड हून मागवणे विफल झाले.",cannotExportEmptyCanvas:"रिकामा पटल जतन करता येत नाही.",couldNotCopyToClipboard:"पटल वर कॉपी नाही झाली.",decryptFailed:"डीक्रिप्ट करता आले नाही.",uploadedSecurly:"अपलोड या टोकापासून त्या टोकापर्यंत कूटबद्धित करून सुरक्षित केले गेले आहे, हयाचा अर्थ असा की एक्सकेलीड्रॉ सर्व्हर आणि तृतीय पक्ष मजकूर वाचू शकत नाहीत.",loadSceneOverridePrompt:"बाह्य रेखाचित्र लोड केल्याने तुमची तुमचा विद्यमान मजकूर बदलेल. हे काम तुम्हाला चालू ठेवायचे आहे का?",collabStopOverridePrompt:`सत्र थांबवल्याने तुमचे पूर्वीचे, स्थानिकरित्या संग्रहित रेखाचित्र अधिलिखित होईल. तुला खात्री आहे? - -(तुम्हाला तुमचे स्थानिक रेखाचित्र ठेवायचे असल्यास, त्याऐवजी फक्त ब्राउझर टॅब बंद करा.)`,errorAddingToLibrary:"संग्रहात तत्व जोडू शकलो नाही",errorRemovingFromLibrary:"संग्रहातून तत्व काढू शकलो नाही",confirmAddLibrary:"हे तुमच्या संग्राहात {{numShapes}} आकार (एक किव्हा अनेक) जोडेल. तुला खात्री आहे?",imageDoesNotContainScene:"या प्रतिमेमध्ये कोणताही दृश्य डेटा असल्याचे दिसत नाही. बाहेर जतन करताना तुम्ही दृश्य रुतवले होते का?",cannotRestoreFromImage:"प्रतिमा फ़ाइल पासून दृश्य पुनः रचित नाही झाला",invalidSceneUrl:"दिलेल्या यू-आर-एल पासून दृश्य आणू शकलो नाही. तो एकतर बरोबार नाही आहे किंवा त्यात वैध एक्सकेलीड्रॉ जेसन डेटा नाही.",resetLibrary:"पटल स्वच्छ होणार, तुम्हाला खात्री आहे का?",removeItemsFromsLibrary:"संग्रहातून {{count}} तत्व (एक किव्हा अनेक) काढू?",invalidEncryptionKey:"कूटबद्धन कुंजी 22 अक्षरांची असणे आवश्यक आहे. थेट सहयोग अक्षम केले आहे.",collabOfflineWarning:`इंटरनेट कनेक्शन उपलब्ध नाही. -तुमचे बदल जतन केले जाणार नाहीत!`},a={unsupportedFileType:"असमर्थित फाइल प्रकार.",imageInsertError:"प्रतिमा आत घालता येत नाही. नंतर पुन्हा प्रयत्न करा...",fileTooBig:"फाइल फार मोठी आहे. आकाराची कमाल परवानगी {{maxSize}} आहे.",svgImageInsertError:"एस-वी-जी प्रतिमा आत घालवू शकलो नाही. एस-वी-जी-मार्क-अप यंत्र अयोग्य आहे.",failedToFetchImage:"प्रतिमा आणणे नाही जमले.",invalidSVGString:"अयोग्य एस-वी-जी.",cannotResolveCollabServer:"कॉलेब-सर्वर हे पोहोचत नाही आहे. पान परत लोड करायचा प्रयत्न करावे.",importLibraryError:"संग्रह प्रतिस्थापित नाही करता आला",collabSaveFailed:"काही कारणा निमित्त आतल्या डेटाबेसमध्ये जतन करू शकत नाही। समस्या तशिस राहिल्यास, तुम्ही तुमचे काम गमावणार नाही याची खात्री करण्यासाठी तुम्ही तुमची फाइल स्थानिक जतन करावी.",collabSaveFailed_sizeExceeded:`लगता है कि पृष्ठ तल काफ़ी बड़ा है, इस्कारण अंदरूनी डेटाबेस में सहेजा नहीं जा सका। किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे। - -बॅकएंड डेटाबेसमध्ये जतन करू शकत नाही, कॅनव्हास खूप मोठा असल्याचे दिसते. तुम्ही तुमचे काम गमावणार नाही याची खात्री करण्यासाठी तुम्ही फाइल स्थानिक पातळीवर जतन करावी.`,imageToolNotSupported:"प्रतिमां अक्षम केली गेली आहेत.",brave_measure_text_error:{line1:"असं वाटते की तुम्हीं Brave ब्राउज़र वापरतात आहात आणि त्या बरोबार आक्रामक पद्धति चें बोटांचे ठसे हां सेटिंग्स चा विकल्प चयन केलेला आहे.",line2:"हे तुमच्या चित्रांच्या पाठ तत्वांनां खंडित करू शकतात.",line3:"तुम्हाला आमच्या कड़ून खूप आग्रह आहे की हे सेटिंग्स मधले चयन नका करु. हे अनुक्रम हे कसे करावे हे दाखवु शकते.",line4:"ही सेटिंग अक्षम करूनही पृष्ठ योग्यरित्या प्रदर्शित होत नसल्यास, आमच्या GitHub वर समस्या सबमिट करा, किव्हा डिस्कॉर्ड वर आम्हाला लिहा"},libraryElementTypeError:{embeddable:"रुतलेले तत्व समूह कोषात जोडले जाऊ शकत नाही.",iframe:"आयफ़्रेम तत्व समूहकोषात जोडला जाऊ शकत नाही.",image:"प्रतिमा समूह कोषात जोड़ायचे लवकरच येत आहेत!"},asyncPasteFailedOnRead:"चिटकवता नाही जमले ( सिस्टम क्लिप्बॉर्ड पासून वाचणे नाही जमले).",asyncPasteFailedOnParse:"चिटकवता नाही जमले.",copyToSystemClipboardFailed:"क्लिपबोर्ड वर प्रतिलिपि करणे नाही जमले."},i={selection:"निवड",image:"प्रतिमा आत घाला",rectangle:"आयत",diamond:"चौकोन आकाराचा",ellipse:"अंडाकार",arrow:"बाण",line:"रेखा",freedraw:"रेखांकित करा",text:"टेक्स्ट",library:"संग्रह",lock:"निवडलेले यंत्र चित्रकरण झाल्या नंतर ही सक्रिय ठेवा",penMode:"पेन चा मोड - स्पर्श टाळा",link:"निवडलेल्या आकारासाठी दुवा जोडा/बदल करा",eraser:"खोड रबर",frame:"चौकट यंत्र",magicframe:"वायरफ़्रेम पासून सांकेतिक लिपि",embeddable:"वेब रुतवा",laser:"लेसर टॉर्च",hand:"हात ( सरकवण्या चे उपकरण)",extraTools:"आणिक यंत्रे",mermaidToExcalidraw:"मर्मेड पासून एक्सकाली मधे",magicSettings:"कृतिम बुद्दिवत्ता सेटिंग्स"},n={canvasActions:"पटल क्रिया",selectedShapeActions:"निवडित आकार क्रिया",shapes:"आकार"},l={canvasPanning:"कॅनव्हास सरकवण्या साठी, ड्रॅग करताना माउस व्हील धरा किंवा स्पेसबार दाबून ठेवा अथवा हात वालं उपकरण वापरा",linearElement:"अनेक बिंदु साठी क्लिक करा, रेघे साठी ड्रैग करा",freeDraw:"क्लिक आणि ड्रैग करा, झालं तेव्हा सोडा",text:"टीप: तुम्हीं निवड यंत्रानी कोठेही दुहेरी क्लिक करून टेक्स्ट जोडू शकता",embeddable:"वेबसाइट रुतोण्या साठी दाबून-खेचा (क्लिक-ड्रैग करा)",text_selected:"लेखन संपादन साठी दुहेरी क्लिक करा किव्हा एंटर दाबा",text_editing:"संपादन संपवायचं असल्यास एस्केप दाबा किव्हा कंट्रोल या कम्मांड बरोबार एंटर दाबा",linearElementMulti:"शेवटच्या बिंदु वर क्लिक करा किव्हा एस्केप या एंटर दाबा",lockAngle:"शिफ्ट धरून तुम्ही कोन मर्यादित करू शकता",resize:`आकार छोटा मोठा करताना SHIFT धरून तुम्ही प्रमाण मर्यादित करू शकता, -केंद्रापासून आकार छोटा मोठा करण्यासाठी ALT धरून ठेवा`,resizeImage:`SHIFT धरून तुम्ही मुक्तपणे आकार मोठा छोटा करु शकता, -केंद्रापासून आकार मोठा छोटा करण्यासाठी ALT धरून ठेवा`,rotate:"फिरवत असताना शिफ्ट धरून तुम्ही कोन मर्यादित करू शकता",lineEditor_info:"पॉइंट संपादित करण्यासाठी CtrlOrCmd दाबून ठेवुन डबल-क्लिक करा किंवा CtrlOrCmd + Enter बरोबर दाबा",lineEditor_pointSelected:`बिंदु (एक किव्हा अनेक) काढ़ण्या साठी डिलीट की दाबा, -CtrlOrCmd बरोबार D प्रति साठी, -किव्हा ड्रेग हलवण्या साठी`,lineEditor_nothingSelected:`संपादित करण्यासाठी एक बिंदू निवडा (अनेक निवडण्यासाठी SHIFT धरून ठेवा), -किंवा Alt धरून ठेवा आणि नवीन बिंदू जोडण्यासाठी क्लिक करा`,placeImage:"प्रतिमा ठेवण्यासाठी क्लिक करा, किंवा त्याचा आकार बदलण्या साठी क्लिक करा आणि ड्रॅग करा",publishLibrary:"आपला खाजगी संग्रह प्रकाशित करा",bindTextToElement:"मजकूर जोडण्यासाठी एंटर की दाबा",deepBoxSelect:"खोल निवड ह्या साठी कंट्रोल किव्हा कमांड दाबून ठेवा, आणि बाहेर खेचणे वाचवण्या साठी पण",eraserRevert:"खोडण्या साठी घेतलेल्या वस्तु ना घेण्या साठी Alt दाबून ठेवावे",firefox_clipboard_write:'हे वैशिष्ट्य "dom.events.asyncClipboard.clipboardItem" फ्लॅग "सत्य" वर सेट करून शक्यतो सक्षम केले जाऊ शकते. Firefox मध्ये ब्राउझर फ्लॅग बदलण्यासाठी, "about:config" पृष्ठावर जा.',disableSnapping:"स्नैपिंग अक्षम करण्या साठी CtrlOrCmd दाबून ठेवा"},s={cannotShowPreview:"पूर्वावलोकन दाखवू शकत नाही",canvasTooBig:"पटल खूप जास्त मोठा असू शकतो.",canvasTooBigTip:"टीप: दूर चा तत्व थोडं जवळ आणण्याचा प्रयत्न करावा."},d={headingMain:"त्रुटि आली. परत प्रयत्न करा ",clearCanvasMessage:"रीलोडिंग होत नसल्यास, परत प्रयत्न करा ",clearCanvasCaveat:" त्यामुळे केलेल्या कामाचे नुकसान होईल ",trackedToSentry:"त्रुटि क्रमांक के साथ त्रुटि {{eventId}} आमच्या प्रणाली नी निरीक्षण केले होते.",openIssueMessage:"त्रुटीत तुमची दृश्य माहिती समाविष्ट न करण्यासाठी आम्ही खूप सावध होतो. तुमचा सीन खाजगी नसल्यास, कृपया आम्हाला पुढ च्या कारवाई साठी सम्पर्क साधा कृपया गिटहब समस्येमध्ये कॉपी आणि पेस्ट करून खालिल माहिती समाविष्ट करा.",sceneContent:"दृश्य विषय:"},c={desc_intro:"तुम्‍ही तुमच्‍या सध्‍याच्‍या दृश्यासाठी लोकांना आपल्‍यासह सहयोग करण्‍यासाठी आमंत्रित करू शकता.",desc_privacy:"काळजी करू नका, सत्र या टोकापासून त्या टोकापर्यंत कूटबद्धता वापरते, त्यामुळे तुम्ही जे काही काढाल ते खाजगी राहील. तुम्ही काय घेऊन आला आहात हे आमचा सर्व्हर ही देखील पाहू शकत नाही.",button_startSession:"सत्र सुरु करा",button_stopSession:"सत्र थाम्बवा",desc_inProgressIntro:"थेट सहयोग सत्र चालू आहे.",desc_shareLink:"तुम्ही ज्यांच्याशी सहयोग करू इच्छिता त्यांच्याशी ही दुवा सामायिक करा:",desc_exitSession:"सत्र थांबवल्याने तुम्हीं खोली तून बाहेर याल, तरिही तुम्ही स्थानिक पातळीवर दृश्यासह काम करु शकाल. लक्षात ठेवा की याचा इतर लोकांवर परिणाम होणार नाही आणि ते त्यांच्या आवृत्तीवर सहयोग करित राहातील.",shareTitle:"एक्सकेलीड्रॉ वर थेट सहयोग सत्रात सामील व्हा"},m={title:"त्रुटि"},b={disk_title:"डिस्क मधे जतन करा",disk_details:"सीन डेटा बाहेर एक फ़ाइल मधे जतन करा, त्या फ़ाइल मधुम तो डेटा नंतर परत आणु शकता.",disk_button:"फ़ाइल मधे जतन करा",link_title:"सामायिके साठी दुवा",link_details:"नुसतं वाचु देणारा दुवा चा स्वरूपे बाहेर ठेवा.",link_button:"दुवा स्वरूपे बाहेर ठेवा",excalidrawplus_description:"दृश्य तुमच्या एक्सकेलीड्रॉ कार्यक्षेत्र मधे जतन करा.",excalidrawplus_button:"बाहेर ठेवा",excalidrawplus_exportError:"एक्सकेलीड्रॉ मधे बाहेर ठेवता नाही येत..."},p={blog:"आमचा ब्लॉग वाचा",click:"क्लिक करा",deepSelect:"खोल निवड",deepBoxSelect:"चौकट मधे खोल निवड करा आणि बाहेर ओढणे वाचवा",curvedArrow:"वक्र बाण",curvedLine:"वक्र रेघ",documentation:"कागदपत्रे",doubleClick:"दुहेरी क्लिक",drag:"ओढा",editor:"संपादक",editLineArrowPoints:"रेघ/तीर बिंदु सम्पादित करा",editText:"पाठ्य सम्पादित करा/ लेबल जोडा",github:"समस्या मिळाली? प्रस्तुत करा",howto:"आमच्या मार्गदर्शकाचे अनुसरण करा",or:"किंवा",preventBinding:"बाण बंधन होणं टाळा",tools:"अवजार",shortcuts:"कीबोर्ड शॉर्टकट",textFinish:"संपादन संपले (मजकूर संपादन)",textNewLine:"नवी ओळ जोडा (मजकूर संपादक)",title:"मदत",view:"दृश्य",zoomToFit:"सर्व तत्व दिसतील असे दृश्यरूप आकार करा",zoomToSelection:"निवडी प्रयंत दृश्यरूप आकार करा",toggleElementLock:"कुलूपातून आत/बाहेर निवड",movePageUpDown:"पान वर/खाली करा",movePageLeftRight:"पान डावी/उजवी कडे करा"},g={title:"पटल स्वच्छ करा"},u={title:"संग्रह प्रकाशित करा",itemName:"वस्तु चे नाव",authorName:"लेखक चे नाव",githubUsername:"गिटहब वापरकर्तानाव",twitterUsername:"ट्विटर वापरकर्तानाव",libraryName:"संग्रहाचे नाव",libraryDesc:"संग्रहाचे वर्णन",website:"वेबसाइट",placeholder:{authorName:"तुमचे नाव किव्हा वापरकर्तानाव",libraryName:"तुमचा संग्रहाचे नाव",libraryDesc:"तुमचा संग्रहाचे वर्णन लोकांना संग्रहा बद्दल जाणकारी देतील",githubHandle:"गिटहब हैंडल (वैकल्पिक), एकदा संग्रह पुनरावलोकना साठी जमा केल्या नंतर ही तुम्हीं सम्पादित करु शकता",twitterHandle:"ट्विटर वापरकार्यक नाव (वैकल्पिक), त्यामुळे ट्विटर वर ज़हीरांति साठी कोणाला गुण द्यायचे हे आम्हाला समजेल",website:"दुवा तुमच्या वैयक्तिक वेब-साइट किव्हा कुठे दूसरिकडे (ऐच्छिक) करावा"},errors:{required:"आवश्यक आहे",website:"वैध यू-आर-एल द्या"},noteDescription:"समाविष्ट करण्या साठी तुमचा संग्रह ह्याचात जमा करा सार्वजनिक संग्रहाचे कोठारइतर लोकांना त्यांच्या रेखाचित्रांमधे वापरण्यासाठी.",noteGuidelines:"संग्रहाला आधी स्वहस्ते स्वीकृती मिळणे आवश्यक आहे. कृपया हे वाचा मार्गदर्शक तत्त्वे जमा करण्या पूर्वी, तुमच्या जवळ एक गिटहब खाते असणे आवश्यक आहे जे संवादा साठी आणिक बदल करण्या साठी लागेल, तरी हे सर्व अगदी आवश्यक नाही आहे.",noteLicense:"जमा करताना तुम्हीं सहमति दाखवतात आहे की संग्रह ह्याचा खाली प्रकाशित होईल एम-आइ-टी परवाना, ज्याचा थोडक्यात अर्थ कोणीही निर्बंधांशिवाय वापरू शकतो.",noteItems:"प्रतैक संग्रहाचे नाव, नीट शोधनासाठी, असणे आवश्यक आहे. खाली दिलेल्या वस्तु समाविष्ट केल्या जातील:",atleastOneLibItem:"सुरु करण्यासाठी, कृपया करून, कमित कमी एक वस्तु तरी निवडा",republishWarning:"टीप: काही निवडक आयटम आधीच प्रकाशित/प्रस्तुत केलेले आहेत. विद्यमान लायब्ररी किंवा प्रस्तुतित आयटम अद्यावित करताना तुम्ही फक्त तो पुन्हा प्रस्तुत करा."},h={title:"संग्रह जमा केला",content:"धन्यवाद {{authorName}}. आपला संग्रह पुनरावलोकना साठी जमा झाला आहे. तुम्हीं स्थिति सारखी तपासू सकताइकडे"},y={resetLibrary:"संग्रह पुनर्स्थित करा",removeItemsFromLib:"निवडलेले आयटम्स संग्रहातून काढा"},S={header:"प्रतिमा निर्यात करा",label:{withBackground:"पार्श्वभूमि",onlySelected:"फक्त चयन केलेले",darkMode:"अंधारमय स्थिति",embedScene:"दृश्य रुतवा",scale:"क़िती पट",padding:"ग़ादी"},tooltip:{embedScene:"दृश्य डेटा निर्यात केलेल्या पी-एन-जी किव्हा एस-वी-जी फ़ाईल मधे सुरक्षीत केला जाईल, त्याने दृश्य पुनः परत आणता येईल. निर्यात केलेली फ़ाईल चा आकार त्याने वाढेल."},title:{exportToPng:"पी-एन-जी स्वरूपात बाहेर ठेवा",exportToSvg:"एस-वी-जी स्वरूपात बाहेर ठेवा",copyPngToClipboard:"पी-एन-जी रूपे फळी वर कॉपी करा"},button:{exportToPng:"पीएनजी",exportToSvg:"एसविज़ी",copyPngToClipboard:"फळी वर कॉपी करा"}},v={tooltip:"तुमचे चित्रे या टोकापासून त्या टोकापर्यंत कूटबद्धतित आहेत, त्या कारणांनी ऐक्सकैलिड्रॉ सर्वर्स ह्यानां ते पहाणं कधीच जमणार नाही.",link:"ब्लॉग पोस्ट ऐक्सकैलिड्रॉ मधे या टोकापासून त्या टोकापर्यंत कूटबद्धतित आहेत"},k={angle:"कोण",element:"वस्तु",elements:"वस्तु",height:"उंची",scene:"दृश्य",selected:"निवडलेले",storage:"साठवण",title:"अभ्यासू लोगो के लिये आंकडे",total:"योग",version:"आवृत्ती",versionCopy:"कॉपी करायला क्लिक करा",versionNotAvailable:"आवृति उपलब्ध नाही",width:"रुंदी"},w={addedToLibrary:"संग्रह मधे सम्मिलित",copyStyles:"कॉपी केलेली शैली.",copyToClipboard:"फळी वर कॉपी झाली.",copyToClipboardAsPng:`{{exportSelection}} फळी वर पी-एन-जी स्वरूपात कॉपी झाली -({{exportColorScheme}})`,fileSaved:"फ़ाइल जतन झाली.",fileSavedToFilename:"{filename} मधे जतन झाली",canvas:"पटल",selection:"निवड",pasteAsSingleElement:`एक घटक म्हणून चिपकावण्या साठी {{shortcut}} वापरा, -किंवा विद्यमान मजकूर संपादकात चिपकवा`,unableToEmbed:"युआरेल रूतवणे प्रतिबंधित आहेत. आपली युआरेल श्वेतसूचित आणण्या साठी कृपया एक मुद्दा ग़िटहब वर उठवा",unrecognizedLinkFormat:"जी युआरेल तुम्हीं रतवली आहे, ती आपेक्षित प्रकारे नाही आहे. कृपया स्त्रोत साइट नी 'रूतवण्या साठी दिलेलि लिपि' चिपकावण्याचा प्रयास करा"},x={transparent:"पारदर्शक",black:"काळा",white:"पांढरा",red:"लाल",pink:"गुलाबी",grape:"अंगूरी",violet:"जांभळा",gray:"राखाडी",blue:"निळा",cyan:"आकाशी",teal:"हिरवट निळा",green:"हिरवा",yellow:"पिवळा",orange:"केशरी",bronze:"कांस्य"},T={app:{center_heading:"तुमचा सर्व डेटा तुमच्या ब्राउझरमध्ये स्थानिक पातळीवर जतन केला जातो.",center_heading_plus:"त्याऐवजी तुम्हाला Excalidraw+ वर जायचे आहे का?",menuHint:"निर्यात, आवड़ी-निवडी, भाषा, ..."},defaults:{menuHint:"निर्यात, आवड़ी निवडी आणि आणकिही...",center_heading:"आकृत्या. काढणे. सोपे.",toolbarHint:"एक साधन निवडा आणि चित्रीकरण सुरु करा!",helpHint:"शॉर्टकट आणि सहाय्य"}},_={mostUsedCustomColors:"सर्वात जास्त वापरणीस रंग",colors:"रंग",shades:"रंगछटा",hexCode:"हेक्स कोड",noShades:"ह्या रंगाच्या छटा उपलब्ध नाहित"},C={action:{exportToImage:{title:"छवि स्वरूपे निर्यात करा",button:"छवि स्वरूपे निर्यात करा",description:"सीन डेटा बाहेर एक फ़ाइल मधे जतन करा, त्या फ़ाइल मधुन तो डेटा नंतर परत आणु शकता."},saveToDisk:{title:"डिस्क मधे जतन करा",button:"डिस्क मधे जतन करा",description:"सीन डेटा बाहेर एक फ़ाइल मधे जतन करा, त्या फ़ाइल मधुन तो डेटा नंतर परत आणु शकता."},excalidrawPlus:{title:"एक्षकालीड्रॉ +",button:"एक्षकाली ड्रॉ+ मधे निर्यात करा",description:"दृष्य तुमच्या एक्षकालीड्रॉ+ चा कार्यस्थल मधे जतन करा."}},modal:{loadFromFile:{title:"फ़ाइल मधुन लोड करा",button:"फ़ाइल मधुन लोड करा",description:"फ़ाइल मधुन लोड केल्या वर ते तुमचा सध्याचा कामा ठिकाणि एईल

    तुम्हीं तुमचं चित्र एकाधं खाली दिलेलं विकल्प निवडुन पहले सुरक्षीत करु शकता."},shareableLink:{title:"लिंक पासून लोड करा",button:"माझ सध्याचे कार्य बदला",description:"बाहरी चित्र लोड केल्या वर ते तुमचा सध्याचा कामा ठिकाणि एईल

    तुम्हीं तुमचं चित्र एकाधं खाली दिलेलं विकल्प निवडुन पहले सुरक्षीत करु शकता."}}},L={title:"मर्मेड पासून एक्सकाली मधे",button:"शिरवा",description:"",syntax:"मर्मेड संरचना नियम",preview:"पूर्वावलोकन"},f={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:k,toast:w,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:C,mermaid:L};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,f as default,v as encrypted,m as errorDialog,d as errorSplash,a as errors,b as exportDialog,n as headings,p as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,L as mermaid,C as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,k as stats,w as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=mr-IN.json-uScRhQ9i.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js.map b/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js.map deleted file mode 100644 index fcbd921..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/mr-IN.json-uScRhQ9i.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mr-IN.json-uScRhQ9i.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js b/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js deleted file mode 100644 index 893e74d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"ထား",pasteAsPlaintext:"",pasteCharts:"",selectAll:"အကုန်ရွေး",multiSelect:"ရွေးထားသည့်ထဲပုံထည့်",moveCanvas:"ကားချပ်ရွှေ့",cut:"",copy:"ကူး",copyAsPng:"PNG အနေဖြင့်ကူး",copyAsSvg:"SVG အနေဖြင့်ကူး",copyText:"",copySource:"",convertToCode:"",bringForward:"ရှေ့ပို့",sendToBack:"နောက်ဆုံးထား",bringToFront:"ရှေ့ဆုံးထား",sendBackward:"နောက်ပို့",delete:"ဖျက်",copyStyles:"ပုံစံကူး",pasteStyles:"ပုံစံထား",stroke:"မျဉ်း",background:"နောက်ခံ",fill:"ဖြည့်",strokeWidth:"မျဉ်းအထူ",strokeStyle:"မျဉ်းပုံစံ",strokeStyle_solid:"အပြည့်",strokeStyle_dashed:"မျဉ်းပြတ်",strokeStyle_dotted:"မျဉ်းစက်",sloppiness:"သေသပ်မှု",opacity:"ထင်ရှားမှု",textAlign:"စာသားညှိ",edges:"အစွန်း",sharp:"ထောင့်ချွန်",round:"ထောင့်ဝိုင်း",arrowheads:"မြှားခေါင်း",arrowhead_none:"ဘာမျှမရှိ",arrowhead_arrow:"မြှား",arrowhead_bar:"",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"စာလုံးအရွယ်",fontFamily:"စာလုံးပုံစံ",addWatermark:'"Excalidraw ဖြင့်ဖန်တီးသည်။" စာသားထည့်',handDrawn:"လက်ရေး",normal:"ပုံမှန်",code:"ကုဒ်",small:"အသေး",medium:"အလတ်",large:"အကြီး",veryLarge:"ပိုကြီး",solid:"အပြည့်",hachure:"မျဉ်းစောင်း",zigzag:"",crossHatch:"ဇကာကွက်",thin:"ပါး",bold:"ထူ",left:"ဘယ်",center:"အလယ်",right:"ညာ",extraBold:"ပိုထူ",architect:"ဗိသုကာ",artist:"ပန်းချီ",cartoonist:"ကာတွန်း",fileTitle:"",colorPicker:"အရောင်ရွေး",canvasColors:"",canvasBackground:"ကားချပ်နောက်ခံ",drawingCanvas:"ပုံဆွဲကားချပ်",layers:"အလွှာများ",actions:"လုပ်ဆောင်ချက်များ",language:"ဘာသာစကား",liveCollaboration:"",duplicateSelection:"ပွား",untitled:"အမည်မရှိ",name:"အမည်",yourName:"သင့်အမည်",madeWithExcalidraw:"Excalidraw ဖြင့်ဖန်တီးသည်။",group:"အုပ်စုဖွဲ့",ungroup:"အုပ်စုဖျက်သိမ်း",collaborators:"ပူးပေါင်းပါဝင်သူများ",showGrid:"",addToLibrary:"မှတ်တမ်းတင်",removeFromLibrary:"မှတ်တမ်းမှထုတ်",libraryLoadingMessage:"မှတ်တမ်းအား တင်သွင်းနေသည်…",libraries:"စာကြည့်တိုက်တွင်ရှာဖွေပါ",loadingScene:"မြင်ကွင်းဖော်နေသည်…",align:"ချိန်ညှိ",alignTop:"ထိပ်ညှိ",alignBottom:"အခြေညှိ",alignLeft:"ဘယ်ညှိ",alignRight:"ညာညှိ",centerVertically:"ဒေါင်လိုက်အလယ်ညှိ",centerHorizontally:"အလျားလိုက်အလယ်ညှိ",distributeHorizontally:"အလျားလိုက်",distributeVertically:"ထောင်လိုက်",flipHorizontal:"",flipVertical:"",viewMode:"",share:"",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"ကားချပ်ရှင်းလင်း",exportJSON:"",exportImage:"",export:"",copyToClipboard:"ကူးယူ",save:"",saveAs:"ပြောင်းသိမ်း",load:"",getShareableLink:"မျှဝေရန် လင့်ခ်ရယူ",close:"ပိတ်",selectLanguage:"ဘာသာစကားရွေးပါ",scrollBackToContent:"ကားချပ်ပြန်တည်",zoomIn:"ချဲ့",zoomOut:"ချုံ့",resetZoom:"ပုံမှန်ပြန်ထား",menu:"မီနူး",done:"ပြီးပြီ",edit:"ပြင်ဆင်",undo:"ပြန်ထား",redo:"ထပ်လုပ်",resetLibrary:"",createNewRoom:"အခန်းသစ်ဖွဲ့",fullScreen:"",darkMode:"",lightMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"ဇင်မြင်ကွင်းမှထွက်",cancel:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},r={clearReset:"ကားချပ်တစ်ခုလုံးရှင်းလင်းပါတော့မည်။ အတည်ပြုပါ။",couldNotCreateShareableLink:"မျှဝေရန် လင့်ခ်မရယူနိုင်သေးပါ။",couldNotCreateShareableLinkTooBig:"မြင်ကွင်းအရမ်းကြီးနေသဖြင့် မျှဝေရန် လင့်ခ်မရယူနိုင်သေးပါ။",couldNotLoadInvalidFile:"လွဲမှားနေသောဖိုင်အား တင်၍မရပါ။",importBackendFailed:"Backend မှမလုပ်ဆောင်နိုင်သေးပါ။",cannotExportEmptyCanvas:"ကားချပ်အလွတ်အားထုတ်ယူ၍မရပါ။",couldNotCopyToClipboard:"",decryptFailed:"အချက်အလက်ဖော်ယူ၍မရပါ။",uploadedSecurly:"တင်သွင်းအချက်အလက်များအား နှစ်ဘက်စွန်းတိုင်လျှို့ဝှက်စနစ်အသုံးပြု၍လုံခြုံစွာထိန်းသိမ်းထားပါသဖြင့် Excalidraw ဆာဗာနှင့်ဆက်စပ်အဖွဲ့အစည်းများပင်လျှင်မဖတ်ရှုနိုင်ပါ။",loadSceneOverridePrompt:"လက်ရှိရေးဆွဲထားသမျှအား ပြင်ပမှတင်သွင်းသောပုံနှင့်အစားထိုးပါမည်။ ဆက်လက်ဆောင်ရွက်လိုပါသလား။",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"{{numShapes}} ခုသောပုံသဏ္ဌာန်အားမှတ်တမ်းတင်ပါမည်။ အတည်ပြုပါ။",imageDoesNotContainScene:"",cannotRestoreFromImage:"ဤပုံဖြင့်မြင်ကွင်းပြန်လည်မရယူနိုင်ပါ။",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"ရွေးချယ်",image:"",rectangle:"စတုဂံ",diamond:"စိန်",ellipse:"အဝိုင်း",arrow:"မြှား",line:"မျဉ်း",freedraw:"",text:"စာသား",library:"မှတ်တမ်း",lock:"ရွေးချယ်ထားသောကိရိယာကိုသာဆက်သုံး",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"ကားချပ်လုပ်ဆောင်ချက်",selectedShapeActions:"ပုံသဏ္ဌာန်လုပ်ဆောင်ချက်",shapes:"ပုံသဏ္ဌာန်များ"},l={canvasPanning:"",linearElement:"အမှတ်များချမှတ်ရေးဆွဲရန်ကလစ်နှိပ်ပါ၊ မျဉ်းတစ်ကြောင်းတည်းအတွက် တရွတ်ဆွဲပါ။",freeDraw:"ကလစ်နှိပ်၍ တရွတ်ဆွဲပါ၊ ပြီးလျှင်လွှတ်ပါ။",text:"မှတ်ချက်။ ။မည်သည့်ကိရိယာရွေးထားသည်ဖြစ်စေ ကလစ်နှစ်ချက်နှိပ်၍စာသားထည့်နိုင်သည်",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"နောက်ဆုံးအမှတ်ပေါ်တွင်ကလစ်နှိပ်ခြင်း၊ Escape (သို့) Enter နှိပ်ခြင်းတို့ဖြင့်အဆုံးသတ်နိုင်",lockAngle:"",resize:"အချိုးအစားကန့်သတ်ရန် Shift နှင့် ဗဟိုမှချိန်ညှိရန် Alt တို့ကိုနှိပ်ထားနိုင်သည်",resizeImage:"",rotate:"Shift ကိုနှိပ်ထားခြင်းဖြင့် ထောင့်အလိုက်လှည့်နိုင်သည်",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"နမူနာမပြသနိုင်ပါ",canvasTooBig:"ကားချပ်အလွန်ကြီးကောင်းကြီးနေနိုင်သည်။",canvasTooBigTip:"မှတ်ချက်။ ။ဝေးကွာနေသော ပုံများ၊ စာများအား ပိုမိုနီးကပ်အောင်ရွှေ့ကြည့်ပါ။"},c={headingMain:"ချို့ယွင်းမှုဖြစ်ပေါ်ခဲ့သဖြင့် ထပ်မံကြိုးစားကြည့်ရန် ",clearCanvasMessage:"အသစ်ပြန်လည်မရယူနိုင်ပါက ထပ်မံကြိုးစားကြည့်ရန်",clearCanvasCaveat:" ရေးဆွဲထားသည်များ ဆုံးရှုံးနိုင်သည် ",trackedToSentry:"ချို့ယွင်းမှုသတ်မှတ်ချက် {{eventId}} အားစနစ်အတွင်းခြေရာကောက်ပြီးပါပြီ။",openIssueMessage:"ချို့ယွင်းမှုမှတ်တမ်းတွင် အရေးကြီးအချက်အလက်များပါဝင်မှုမရှိစေရန်အထူးသတိပြုပါသည်။ မပါဝင်ပါက ဆက်လက်ဆောင်ရွက်ရန် အောက်ပါအချက်အလက်များအား Github တွင် Issue အနေဖြင့်ဖြည့်သွင်းဖော်ပြပေးပါ။",sceneContent:"မြင်ကွင်းပါအချက်အလက်။ ။"},d={desc_intro:"လက်ရှိမြင်ကွင်းတွင်ပူးပေါင်းရေးဆွဲရန် အခြားသူများအား ဖိတ်ကြားနိုင်သည်။",desc_privacy:"နှစ်ဘက်စွန်းတိုင်လျှို့ဝှက်ထားသဖြင့်ရေးဆွဲသမျှအား ဆာဗာပေါ်မှပင်လျှင်ကြည့်ရှုနိုင်မည်မဟုတ်ပါ။ မစိုးရိမ်ပါနှင့်။",button_startSession:"ပူးပေါင်းမှုစတင်",button_stopSession:"ပူးပေါင်းမှုအဆုံးသတ်",desc_inProgressIntro:"တိုက်ရိုက်ပူးပေါင်းရေးဆွဲမှုများပြုလုပ်နေပါသည်။",desc_shareLink:"ဤလင့်ခ်အား ပူးပေါင်းရေးဆွဲလိုသူများထံပေးပို့ပါ။ ။ ",desc_exitSession:"ပူးပေါင်းမှုရပ်တန့်ပါက အဖွဲ့အတွင်းမှထွက်ခွာသွားမည်ဖြစ်သော်လည်း မိမိမြင်ကွင်းတွင်ဆက်လက်ရေးဆွဲနိုင်ပါမည်။ အဖွဲ့အတွင်းကျန်ရှိနေခဲ့သောအခြားပါဝင်သူများသည်လည်း ဆက်လက်ပူးပေါင်းရေးဆွဲနေနိုင်ပါလိမ့်မည်။",shareTitle:""},m={title:"ချို့ယွင်းချက်"},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},b={blog:"",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},g={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"ရေးဆွဲထားသောပုံများအား နှစ်ဘက်စွန်းတိုင်လျှို့ဝှက်ထားသဖြင့် Excalidraw ၏ဆာဗာများပင်လျှင်မြင်တွေ့ရမည်မဟုတ်ပါ။",link:""},w={angle:"ထောင့်",element:"",elements:"",height:"အမြင့်",scene:"မြင်ကွင်း",selected:"ရွေးချယ်သည်",storage:"သိုလှောင်ခန်း",title:"အက္ခရာများအတွက်အချက်အလက်များ",total:"စုစုပေါင်း",version:"",versionCopy:"",versionNotAvailable:"",width:"အကျယ်"},x={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},E={title:"",button:"",description:"",syntax:"",preview:""},f={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:E};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,k as colors,y as confirmDialog,f as default,S as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,v as imageExportDialog,e as labels,o as library,E as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=my-MM.json-Rvx7mHUJ.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js.map b/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js.map deleted file mode 100644 index ae9ac17..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/my-MM.json-Rvx7mHUJ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"my-MM.json-Rvx7mHUJ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js b/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js deleted file mode 100644 index bc5534b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"Lim inn",pasteAsPlaintext:"Lim inn som klartekst",pasteCharts:"Lim inn diagrammer",selectAll:"Velg alt",multiSelect:"Legg til element i utvalg",moveCanvas:"Flytt lerretet",cut:"Klipp ut",copy:"Kopier",copyAsPng:"Kopier til PNG",copyAsSvg:"Kopier til utklippstavlen som SVG",copyText:"Kopier til utklippstavlen som tekst",copySource:"",convertToCode:"",bringForward:"Flytt framover",sendToBack:"Send bakerst",bringToFront:"Flytt forrest",sendBackward:"Send bakover",delete:"Slett",copyStyles:"Kopier stiler",pasteStyles:"Lim inn stiler",stroke:"Strek",background:"Bakgrunn",fill:"Fyll",strokeWidth:"Strektykkelse",strokeStyle:"Strekstil",strokeStyle_solid:"Heltrukket",strokeStyle_dashed:"Stiplet",strokeStyle_dotted:"Prikket",sloppiness:"Ujevnhet",opacity:"Synlighet",textAlign:"Tekstjustering",edges:"Kanter",sharp:"Skarp",round:"Rund",arrowheads:"Pilspisser",arrowhead_none:"Ingen",arrowhead_arrow:"Pil",arrowhead_bar:"Søyle",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trekant",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Skriftstørrelse",fontFamily:"Fontfamilie",addWatermark:'Legg til "Laget med Excalidraw"',handDrawn:"Håndtegnet",normal:"Normal",code:"Kode",small:"Liten",medium:"Medium",large:"Stor",veryLarge:"Svært stor",solid:"Helfarge",hachure:"Skravert",zigzag:"Sikk-sakk",crossHatch:"Krysskravert",thin:"Tynn",bold:"Tykk",left:"Venstre",center:"Midtstill",right:"Høyre",extraBold:"Ekstra tykk",architect:"Arkitekt",artist:"Kunstner",cartoonist:"Tegner",fileTitle:"Filnavn",colorPicker:"Fargevelger",canvasColors:"Brukes på lerretet",canvasBackground:"Lerretsbakgrunn",drawingCanvas:"Lerret",layers:"Lag",actions:"Handlinger",language:"Språk",liveCollaboration:"Sanntids-samarbeid...",duplicateSelection:"Dupliser",untitled:"Uten navn",name:"Navn",yourName:"Ditt navn",madeWithExcalidraw:"Laget med Excalidraw",group:"Gruppér utvalg",ungroup:"Avgruppér utvalg",collaborators:"Samarbeidspartnere",showGrid:"Vis rutenett",addToLibrary:"Legg til i bibliotek",removeFromLibrary:"Fjern fra bibliotek",libraryLoadingMessage:"Laster bibliotek…",libraries:"Bla gjennom biblioteker",loadingScene:"Laster inn scene…",align:"Juster",alignTop:"Juster øverst",alignBottom:"Juster nederst",alignLeft:"Juster venstre",alignRight:"Juster høyre",centerVertically:"Midtstill vertikalt",centerHorizontally:"Midtstill horisontalt",distributeHorizontally:"Distribuer horisontalt",distributeVertically:"Distribuer vertikalt",flipHorizontal:"Snu horisontalt",flipVertical:"Snu vertikalt",viewMode:"Visningsmodus",share:"Del",showStroke:"Vis fargevelger for kantfarge",showBackground:"Vis fargevelger for bakgrunnsfarge",toggleTheme:"Veksle tema",personalLib:"Personlig bibliotek",excalidrawLib:"Excalidraw-bibliotek",decreaseFontSize:"Reduser skriftstørrelse",increaseFontSize:"Øk skriftstørrelse",unbindText:"Avbind tekst",bindText:"Bind tekst til beholderen",createContainerFromText:"La tekst flyte i en beholder",link:{edit:"Rediger lenke",editEmbed:"Rediger lenke og bygg inn",create:"Opprett lenke",createEmbed:"Opprett lenke og bygg inn",label:"Lenke",labelEmbed:"Lenk & bygg inn",empty:"Ingen lenke er valgt"},lineEditor:{edit:"Rediger linje",exit:"Avslutt linjeredigering"},elementLock:{lock:"Lås",unlock:"Lås opp",lockAll:"Lås alle",unlockAll:"Lås opp alle"},statusPublished:"Publisert",sidebarLock:"Holde sidemenyen åpen",selectAllElementsInFrame:"Velg alle elementene i rammen",removeAllElementsFromFrame:"Fjern alle elementer fra rammen",eyeDropper:"Velg farge fra lerretet",textToDiagram:"",prompt:""},t={noItems:"Ingen elementer lagt til ennå...",hint_emptyLibrary:"Velg et objekt på lerretet for å legge det til her, eller installer et bibliotek fra den offentlige samlingen under.",hint_emptyPrivateLibrary:"Velg et objekt på lerretet for å legge det til her."},r={clearReset:"Tøm lerretet og tilbakestill bakgrunnsfargen",exportJSON:"Eksporter til fil",exportImage:"Eksporter bilde...",export:"Lagre som...",copyToClipboard:"Kopier til utklippstavle",save:"Lagre til aktiv fil",saveAs:"Lagre som",load:"Åpne",getShareableLink:"Få delingslenke",close:"Lukk",selectLanguage:"Velg språk",scrollBackToContent:"Skroll tilbake til innhold",zoomIn:"Zoom inn",zoomOut:"Zoom ut",resetZoom:"Nullstill zoom",menu:"Meny",done:"Ferdig",edit:"Rediger",undo:"Angre",redo:"Gjør om",resetLibrary:"Nullstill bibliotek",createNewRoom:"Opprett et nytt rom",fullScreen:"Fullskjerm",darkMode:"Mørk modus",lightMode:"Lys modus",zenMode:"Zen-modus",objectsSnapMode:"",exitZenMode:"Avslutt zen-modus",cancel:"Avbryt",clear:"Tøm",remove:"Fjern",embed:"Slå av/på innebygging",publishLibrary:"Publiser",submit:"Send inn",confirm:"Bekreft",embeddableInteractionButton:"Klikk for å samhandle"},n={clearReset:"Dette vil tømme lerretet. Er du sikker?",couldNotCreateShareableLink:"Kunne ikke lage delbar lenke.",couldNotCreateShareableLinkTooBig:"Kunne ikke opprette lenke til deling: scenen er for stor",couldNotLoadInvalidFile:"Kunne ikke laste inn ugyldig fil",importBackendFailed:"Importering av backend feilet.",cannotExportEmptyCanvas:"Kan ikke eksportere et tomt lerret.",couldNotCopyToClipboard:"Kunne ikke kopiere til utklippstavlen.",decryptFailed:"Kunne ikke dekryptere data.",uploadedSecurly:"Opplastingen er kryptert og kan ikke leses av Excalidraw-serveren eller tredjeparter.",loadSceneOverridePrompt:"Å laste inn ekstern tegning vil erstatte det eksisterende innholdet. Ønsker du å fortsette?",collabStopOverridePrompt:`Hvis du slutter økten, overskrives din forrige, lokalt lagrede tegning. Er du sikker? - -(Hvis du ønsker å beholde din lokale tegning, bare lukk nettleserfanen i stedet.)`,errorAddingToLibrary:"Kunne ikke legge element i biblioteket",errorRemovingFromLibrary:"Kunne ikke fjerne element fra biblioteket",confirmAddLibrary:"Dette vil legge til {{numShapes}} figur(er) i biblioteket ditt. Er du sikker?",imageDoesNotContainScene:"Det ser ikke ut til at dette bildet inneholder noen scenedata. Har du aktivert innebygging av scene under eksporten?",cannotRestoreFromImage:"Scenen kunne ikke gjenopprettes fra denne bildefilen",invalidSceneUrl:"Kunne ikke importere scene fra den oppgitte URL-en. Den er enten ødelagt, eller inneholder ikke gyldig Excalidraw JSON-data.",resetLibrary:"Dette vil tømme biblioteket ditt. Er du sikker?",removeItemsFromsLibrary:"Slett {{count}} element(er) fra biblioteket?",invalidEncryptionKey:"Krypteringsnøkkel må ha 22 tegn. Live-samarbeid er deaktivert.",collabOfflineWarning:`Ingen Internett-tilkobling tilgjengelig. -Endringer dine vil ikke bli lagret!`},i={unsupportedFileType:"Filtypen støttes ikke.",imageInsertError:"Kunne ikke sette inn bildet. Prøv igjen senere...",fileTooBig:"Filen er for stor. Maksimal tillatt størrelse er {{maxSize}}.",svgImageInsertError:"Kunne ikke sette inn SVG-bilde. SVG-koden ser ugyldig ut.",failedToFetchImage:"",invalidSVGString:"Ugyldig SVG.",cannotResolveCollabServer:"Kunne ikke koble til samarbeidsserveren. Vennligst oppdater siden og prøv på nytt.",importLibraryError:"Kunne ikke laste bibliotek",collabSaveFailed:"Kan ikke lagre i backend-databasen. Hvis problemer vedvarer, bør du lagre filen lokalt for å sikre at du ikke mister arbeidet.",collabSaveFailed_sizeExceeded:"Kunne ikke lagre til backend-databasen, lerretet ser ut til å være for stort. Du bør lagre filen lokalt for å sikre at du ikke mister arbeidet ditt.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Ser ut som om du bruker Brave nettleser med Aggressivt Block Finger -innstillingen aktivert.",line2:"Dette kan resultere i å bryte tekst-elementene i tegningene.",line3:"Vi anbefaler på det sterkeste å deaktivere denne innstillingen. Du kan følge disse trinnene om hvordan du gjør det.",line4:"Hvis deaktivering av denne innstillingen ikke fikser visningen av tekstelementer, vennligst åpne en sak på vår GitHub, eller skriv oss på Discord"},libraryElementTypeError:{embeddable:"Innebygde elementer kan ikke legges til i biblioteket.",iframe:"",image:"Støtte for å legge til bilder i biblioteket kommer snart!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},l={selection:"Velg",image:"Sett inn bilde",rectangle:"Rektangel",diamond:"Diamant",ellipse:"Ellipse",arrow:"Pil",line:"Linje",freedraw:"Tegn",text:"Tekst",library:"Bibliotek",lock:"Behold merket verktøy som aktivt",penMode:"Pennemodus - forhindre berøring",link:"Legg til / oppdater link for en valgt figur",eraser:"Viskelær",frame:"Rammeverktøy",magicframe:"",embeddable:"Nettinnbygging",laser:"",hand:"Hånd (panoreringsverktøy)",extraTools:"Flere verktøy",mermaidToExcalidraw:"",magicSettings:""},o={canvasActions:"Handlinger: lerret",selectedShapeActions:"Handlinger: valgt objekt",shapes:"Former"},a={canvasPanning:"For å flytte lerretet, hold musehjulet eller mellomromstasten mens du drar, eller bruk hånd-verktøyet",linearElement:"Klikk for å starte linje med flere punkter, eller dra for en enkel linje",freeDraw:"Klikk og dra, slipp når du er ferdig",text:"Tips: du kan også legge til tekst ved å dobbeltklikke hvor som helst med utvalgsverktøyet",embeddable:"Klikk og dra for å opprette en nettside innebygd",text_selected:"Dobbeltklikk eller trykk ENTER for å redigere tekst",text_editing:"Trykk Escape eller Ctrl/Cmd+Enter for å fullføre redigering",linearElementMulti:"Klikk på siste punkt eller trykk Escape eller Enter for å fullføre",lockAngle:"Du kan låse vinkelen ved å holde nede SHIFT",resize:`Du kan beholde forholdet ved å trykke SHIFT mens du endrer størrelse, -trykk ALT for å endre størrelsen fra midten`,resizeImage:`Du kan endre størrelse fritt ved å holde SHIFT, -hold ALT for å endre størrelse fra midten`,rotate:"Du kan låse vinklene ved å holde SHIFT mens du roterer",lineEditor_info:"Hold Ctrl/Cmd og dobbelklikk eller trykk Ctrl/Cmd + Enter for å endre punkter",lineEditor_pointSelected:"Trykk på Slett for å fjerne punktet, Ctrl / Cmd+D for å duplisere, eller dra for å flytte",lineEditor_nothingSelected:`Velg et punkt å redigere (hold SHIFT for å velge flere), -eller hold Alt og klikk for å legge til nye punkter`,placeImage:"Klikk for å plassere bildet, eller klikk og dra for å angi størrelsen manuelt",publishLibrary:"Publiser ditt eget bibliotek",bindTextToElement:"Trykk Enter for å legge til tekst",deepBoxSelect:"Hold CTRL/CMD for å markere dypt og forhindre flytting",eraserRevert:"Hold Alt for å reversere elementene merket for sletting",firefox_clipboard_write:'Denne funksjonen kan sannsynligvis aktiveres ved å sette "dom.events.asyncClipboard.clipboardItem" flagget til "true". For å endre nettleserens flagg i Firefox, besøk "about:config"-siden.',disableSnapping:""},s={cannotShowPreview:"Kan ikke vise forhåndsvisning",canvasTooBig:"Lerretet kan være for stort.",canvasTooBigTip:"Tips: Prøv å flytte de ytterste elementene litt tettere sammen."},d={headingMain:"En feil oppsto. Prøv ",clearCanvasMessage:"Om ny sidelasting ikke fungerer, prøv ",clearCanvasCaveat:" Dette vil føre til tap av arbeid ",trackedToSentry:"Feilen med identifikator {{eventId}} ble logget i vårt system.",openIssueMessage:"Vi er veldig nøye med å ikke inkludere dine scene-opplysninger i feilen. Hvis din scene ikke er privat, vurder å følge opp i vårt Ta med opplysningene nedenfor ved å kopiere og lime inn i GitHub-saken.",sceneContent:"Scene-innhold:"},k={desc_intro:"Du kan invitere personer til scenen din for å samarbeide med deg.",desc_privacy:"Ta det med ro, sesjonen bruker ende-til-ende-kryptering, så alt du tegner forblir privat. Ikke en gang serveren vår kan se hva du lager.",button_startSession:"Start økt",button_stopSession:"Stopp sesjon",desc_inProgressIntro:"Sanntids-samarbeidsøkt er nå i gang.",desc_shareLink:"Del denne linken med de du vil samarbeide med:",desc_exitSession:"Dersom du avslutter sesjonen blir du frakoblet rommet, men du kan fortsette å arbeide med scenen lokalt. Vær oppmerksom på at dette ikke vil påvirke andre personer, og de vil fortsatt ha mulighet til å samarbeide på deres versjon.",shareTitle:"Bli med i en live samarbeidsøkt på Excalidraw"},g={title:"Feil"},b={disk_title:"Lagre til disk",disk_details:"Eksporter scene-dataene til en fil som du kan importere fra senere.",disk_button:"Lagre til fil",link_title:"Delbar lenke",link_details:"Eksporter som en skrivebeskyttet lenke.",link_button:"Eksporter til lenke",excalidrawplus_description:"Lagre scenen til ditt Excalidraw+ arbeidsområde.",excalidrawplus_button:"Eksporter",excalidrawplus_exportError:"Kunne ikke eksportere til Excalidraw+ for øyeblikket..."},m={blog:"Les bloggen vår",click:"klikk",deepSelect:"Marker dypt",deepBoxSelect:"Marker dypt innad i boks og forhindre flytting",curvedArrow:"Buet pil",curvedLine:"Buet linje",documentation:"Dokumentasjon",doubleClick:"dobbeltklikk",drag:"dra",editor:"Redigeringsvisning",editLineArrowPoints:"Rediger linje/pilpunkter",editText:"Rediger tekst / legg til etikett",github:"Funnet et problem? Send inn",howto:"Følg våre veiledninger",or:"eller",preventBinding:"Forhindre pilbinding",tools:"Verktøy",shortcuts:"Tastatursnarveier",textFinish:"Fullfør redigering (teksteditor)",textNewLine:"Legg til ny linje (teksteditor)",title:"Hjelp",view:"Vis",zoomToFit:"Zoom for å se alle elementer",zoomToSelection:"Zoom til utvalg",toggleElementLock:"Lås/lås opp utvalg",movePageUpDown:"Flytt side opp/ned",movePageLeftRight:"Flytt siden til venstre/høyre"},p={title:"Tøm lerret"},u={title:"Publiser bibliotek",itemName:"Elementnavn",authorName:"Forfatterens navn",githubUsername:"GitHub-brukernavnet",twitterUsername:"Twitter-brukernavn",libraryName:"Biblioteknavn",libraryDesc:"Beskrivelse av bibliotek",website:"Nettsted",placeholder:{authorName:"Ditt navn eller brukernavn",libraryName:"Navnet på biblioteket ditt",libraryDesc:"Beskrivelse av biblioteket ditt for å hjelpe folk med å forstå bruken",githubHandle:"Github-brukernavn (valgfritt), slik at du kan redigere biblioteket når du har sendt inn for gjennomgang",twitterHandle:"Twitter-brukernavn (valgfritt), slik at vi vet hvem vi skal kreditere når promotert på Twitter",website:"Lenke til din personlige nettside eller et annet sted (valgfritt)"},errors:{required:"Påkrevd",website:"Angi en gyldig nettadresse"},noteDescription:"Send inn biblioteket ditt som skal inkluderes i kildekode for offentlig bibliotekfor andre å bruke dem i tegninger.",noteGuidelines:"Biblioteket må godkjennes manuelt først. Les retningslinjene før innsending. Du vil trenge en GitHub-konto for å kommunisere og gjøre endringer hvis ønsket, men det er ikke påkrevd.",noteLicense:"Ved å sende inn godtar du at biblioteket blir publisert under MIT-lisens, som kortfattet betyr at andre kan bruke dem uten begrensninger.",noteItems:"Hvert bibliotek må ha sitt eget navn, så det er filtrerbart. Følgende bibliotekselementer vil bli inkludert:",atleastOneLibItem:"Vennligst velg minst ett bibliotek for å komme i gang",republishWarning:"Merk: noen av de valgte elementene er merket som allerede publisert/sendt. Du bør kun sende inn elementer på nytt når du oppdaterer et eksisterende bibliotek eller innlevering."},c={title:"Bibliotek innsendt",content:"Takk {{authorName}}. Ditt bibliotek har blitt sendt inn for gjennomgang. Du kan spore statusenher"},v={resetLibrary:"Nullstill bibliotek",removeItemsFromLib:"Fjern valgte elementer fra bibliotek"},f={header:"Eksporter bilde",label:{withBackground:"Bakgrunn",onlySelected:"Kun valgte",darkMode:"Mørk modus",embedScene:"Bygg inn scene",scale:"Skalering",padding:"Avstand"},tooltip:{embedScene:`Scenedata vil bli lagret i den eksporterte PNG/SVG-filen, slik at scenen kan gjenopprettes fra den. -Det vil øke den eksporterte filstørrelsen.`},title:{exportToPng:"Eksporter til PNG",exportToSvg:"Eksporter til SVG",copyPngToClipboard:"Kopier PNG til utklippstavlen"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopier til utklippstavle"}},y={tooltip:"Dine tegninger er ende-til-ende-krypterte slik at Excalidraw sine servere aldri vil se dem.",link:"Blogginnlegg om ende-til-ende-kryptering i Excalidraw"},h={angle:"Vinkel",element:"Element",elements:"Elementer",height:"Høyde",scene:"Scene",selected:"Valgt",storage:"Lagring",title:"Statistikk for nerder",total:"Totalt",version:"Versjon",versionCopy:"Klikk for å kopiere",versionNotAvailable:"Versjon ikke tilgjengelig",width:"Bredde"},S={addedToLibrary:"Lagt til i biblioteket",copyStyles:"Kopierte stiler.",copyToClipboard:"Kopiert til utklippstavlen.",copyToClipboardAsPng:`Kopierte {{exportSelection}} til utklippstavlen som PNG -({{exportColorScheme}})`,fileSaved:"Fil lagret.",fileSavedToFilename:"Lagret til {filename}",canvas:"lerret",selection:"utvalg",pasteAsSingleElement:`Bruk {{shortcut}} for å lime inn som ett enkelt element, -eller lim inn i en eksisterende tekstbehandler`,unableToEmbed:"Innbygging av denne nettadressen er ikke tillatt. Oppret en sak på GitHub for å be om url-hvitelisting",unrecognizedLinkFormat:'Linken du bygget inn samsvarer ikke med det forventede formatet. Prøv å lime inn "bygg inn"-strengen fra kildesiden'},L={transparent:"Gjennomsiktig",black:"Svart",white:"Hvit",red:"Rød",pink:"Rosa",grape:"Drue",violet:"Fiolett",gray:"Grå",blue:"Blå",cyan:"Turkis",teal:"Blågrønn",green:"Grønn",yellow:"Gul",orange:"Oransje",bronze:"Bronse"},T={app:{center_heading:"Alle dine data lagres lokalt i din nettleser.",center_heading_plus:"Ønsker du å gå til Excalidraw+ i stedet?",menuHint:"Eksporter, innstillinger, språk, ..."},defaults:{menuHint:"Eksporter, innstillinger og mer...",center_heading:"Diagrammer. Gjort. Enkelt.",toolbarHint:"Velg et verktøy og start å tegne!",helpHint:"Snarveier & hjelp"}},E={mostUsedCustomColors:"Mest brukte egendefinerte farger",colors:"Farger",shades:"Toner",hexCode:"Heksadesimal kode",noShades:"Ingen toner tilgjengelig for denne fargen"},w={action:{exportToImage:{title:"Eksporter som bilde",button:"Eksporter som bilde",description:"Eksporter scene-dataene til en fil som du kan importere fra senere."},saveToDisk:{title:"Lagre til disk",button:"Lagre til disk",description:"Eksporter scene-dataene til en fil som du kan importere fra senere."},excalidrawPlus:{title:"Excalidraw+",button:"Eksporter til Excalidraw+",description:"Lagre scenen til ditt Excalidraw+-arbeidsområde."}},modal:{loadFromFile:{title:"Last inn fra fil",button:"Last inn fra fil",description:"Å laste fra en fil vil erstatte ditt eksisterende innhold.

    Du kan sikkerhetskopiere tegningen din først ved å bruke en av valgene under."},shareableLink:{title:"Last inn fra lenke",button:"Erstatt innholdet mitt",description:"Lasting av ekstern tegning vil erstatte ditt eksisterende innhold.

    Du kan sikkerhetskopiere tegningen din først ved å bruke en av valgene nedenfor."}}},F={title:"",button:"",description:"",syntax:"",preview:""},D={labels:e,library:t,buttons:r,alerts:n,errors:i,toolBar:l,headings:o,hints:a,canvasError:s,errorSplash:d,roomDialog:k,errorDialog:g,exportDialog:b,helpDialog:m,clearCanvasDialog:p,publishDialog:u,publishSuccessDialog:c,confirmDialog:v,imageExportDialog:f,encrypted:y,stats:h,toast:S,colors:L,welcomeScreen:T,colorPicker:E,overwriteConfirm:w,mermaid:F};export{n as alerts,r as buttons,s as canvasError,p as clearCanvasDialog,E as colorPicker,L as colors,v as confirmDialog,D as default,y as encrypted,g as errorDialog,d as errorSplash,i as errors,b as exportDialog,o as headings,m as helpDialog,a as hints,f as imageExportDialog,e as labels,t as library,F as mermaid,w as overwriteConfirm,u as publishDialog,c as publishSuccessDialog,k as roomDialog,h as stats,S as toast,l as toolBar,T as welcomeScreen}; -//# sourceMappingURL=nb-NO.json-Jc97XkYt.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js.map b/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js.map deleted file mode 100644 index c100349..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nb-NO.json-Jc97XkYt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"nb-NO.json-Jc97XkYt.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js b/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js deleted file mode 100644 index 366223d..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"Plakken",pasteAsPlaintext:"Plakken als platte tekst",pasteCharts:"Plak grafieken",selectAll:"Alles selecteren",multiSelect:"Voeg element toe aan selectie",moveCanvas:"Canvas verplaatsen",cut:"Knip",copy:"Kopiëren",copyAsPng:"Kopieer als PNG",copyAsSvg:"Kopieer naar klembord als SVG",copyText:"Kopieer naar klembord als tekst",copySource:"",convertToCode:"",bringForward:"Breng naar voren",sendToBack:"Stuur naar achtergrond",bringToFront:"Breng naar voorgrond",sendBackward:"Breng naar achter",delete:"Verwijderen",copyStyles:"Kopieer opmaak",pasteStyles:"Plak opmaak",stroke:"Lijn",background:"Achtergrond",fill:"Invulling",strokeWidth:"Lijnbreedte",strokeStyle:"Lijnstijl",strokeStyle_solid:"Ononderbroken",strokeStyle_dashed:"Gestreept",strokeStyle_dotted:"Gestippeld",sloppiness:"Slordigheid",opacity:"Doorzichtigheid",textAlign:"Uitlijning",edges:"Randen",sharp:"Hoekig",round:"Rond",arrowheads:"Pijlpunten",arrowhead_none:"Geen",arrowhead_arrow:"Pijl",arrowhead_bar:"Balk",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Driehoek",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tekstgrootte",fontFamily:"Lettertype",addWatermark:'Voeg "Gemaakt met Excalidraw" toe',handDrawn:"Handgetekend",normal:"Normaal",code:"Code",small:"Klein",medium:"Medium",large:"Groot",veryLarge:"Zeer groot",solid:"Ingekleurd",hachure:"Arcering",zigzag:"",crossHatch:"Tweemaal gearceerd",thin:"Dun",bold:"Vet",left:"Links",center:"Midden",right:"Rechts",extraBold:"Zwaar",architect:"Architect",artist:"Artiest",cartoonist:"Cartoonist",fileTitle:"Bestandsnaam",colorPicker:"Kleurenkiezer",canvasColors:"Gebruikt op canvas",canvasBackground:"Canvas achtergrond",drawingCanvas:"Canvas",layers:"Lagen",actions:"Acties",language:"Taal",liveCollaboration:"Live Samenwerking...",duplicateSelection:"Dupliceer",untitled:"Naamloos",name:"Naam",yourName:"Jouw naam",madeWithExcalidraw:"Gemaakt met Excalidraw",group:"Groeperen",ungroup:"Groep opheffen",collaborators:"Deelnemers",showGrid:"Raster weergeven",addToLibrary:"Voeg toe aan bibliotheek",removeFromLibrary:"Verwijder uit bibliotheek",libraryLoadingMessage:"Bibliotheek laden…",libraries:"Blader door bibliotheken",loadingScene:"Scène laden…",align:"Uitlijnen",alignTop:"Boven uitlijnen",alignBottom:"Onder uitlijnen",alignLeft:"Links uitlijnen",alignRight:"Rechts uitlijnen",centerVertically:"Verticaal Centreren",centerHorizontally:"Horizontaal Centreren",distributeHorizontally:"Horizontaal verspreiden",distributeVertically:"Verticaal distribueren",flipHorizontal:"Horizontaal spiegelen",flipVertical:"Verticaal spiegelen",viewMode:"Weergavemodus",share:"Deel",showStroke:"Toon lijn kleur kiezer",showBackground:"Toon achtergrondkleur kiezer",toggleTheme:"Thema aan/uit",personalLib:"Persoonlijke bibliotheek",excalidrawLib:"Excalidraw bibliotheek",decreaseFontSize:"Letters verkleinen",increaseFontSize:"Letters vergroten",unbindText:"Ontkoppel tekst",bindText:"Koppel tekst aan de container",createContainerFromText:"",link:{edit:"Wijzig link",editEmbed:"Link bewerken & insluiten",create:"Maak link",createEmbed:"Link maken en insluiten",label:"Link",labelEmbed:"Link toevoegen & insluiten",empty:"Er is geen link ingesteld"},lineEditor:{edit:"Bewerk regel",exit:"Verlaat regel-editor"},elementLock:{lock:"Vergrendel",unlock:"Ontgrendel",lockAll:"Vergrendel alles",unlockAll:"Ontgrendel alles"},statusPublished:"Gepubliceerd",sidebarLock:"Zijbalk open houden",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},n={noItems:"Nog geen items toegevoegd...",hint_emptyLibrary:"Selecteer een item op het canvas om het hier toe te voegen of installeer een bibliotheek uit de openbare repository, hieronder.",hint_emptyPrivateLibrary:"Selecteer een item op het canvas om het hier toe te voegen."},t={clearReset:"Canvas opnieuw instellen",exportJSON:"Exporteren naar bestand",exportImage:"Exporteer afbeelding...",export:"Sla op...",copyToClipboard:"Kopieer",save:"Opslaan naar huidige bestand",saveAs:"Opslaan als",load:"Open",getShareableLink:"Maak een deelbare link",close:"Sluiten",selectLanguage:"Taal selecteren",scrollBackToContent:"Scroll terug naar inhoud",zoomIn:"Inzoomen",zoomOut:"Uitzoomen",resetZoom:"Zoom terugzetten",menu:"Menu",done:"Klaar",edit:"Bewerken",undo:"Ongedaan maken",redo:"Herstel ongedaan maken",resetLibrary:"Bibliotheek Resetten",createNewRoom:"Creëer live-samenwerkingssessie",fullScreen:"Volledig scherm",darkMode:"Donkere modus",lightMode:"Lichte modus",zenMode:"Zen modus",objectsSnapMode:"",exitZenMode:"Verlaat zen modus",cancel:"Annuleren",clear:"Wissen",remove:"Verwijderen",embed:"Insluiten in-/uitschakelen",publishLibrary:"Publiceren",submit:"Versturen",confirm:"Bevestigen",embeddableInteractionButton:"Klik voor interactie"},o={clearReset:"Dit zal het hele canvas verwijderen. Weet je het zeker?",couldNotCreateShareableLink:"Kon geen deelbare link aanmaken.",couldNotCreateShareableLinkTooBig:"Kan geen deelbare link aanmaken: de scène is te groot",couldNotLoadInvalidFile:"Kan ongeldig bestand niet laden",importBackendFailed:"Importeren vanuit backend mislukt.",cannotExportEmptyCanvas:"Kan geen leeg canvas exporteren.",couldNotCopyToClipboard:"Kon niet naar klembord kopiëren.",decryptFailed:"Kan gegevens niet decoderen.",uploadedSecurly:"De upload is beveiligd met end-to-end encryptie, wat betekent dat de Excalidraw server en derden de inhoud niet kunnen lezen.",loadSceneOverridePrompt:"Het inladen van een externe tekening zal je bestaande inhoud vervangen. Wil je verdergaan?",collabStopOverridePrompt:`Wanneer de sessie wordt gestopt, overschrijft u de eerdere, lokaal opgeslagen tekening. Weet je het zeker? - -(Als je de lokale tekening wilt behouden, sluit je in plaats daarvan het browsertabblad)`,errorAddingToLibrary:"Kan item niet toevoegen aan de bibliotheek",errorRemovingFromLibrary:"Kan item niet uit de bibliotheek verwijderen",confirmAddLibrary:"Dit zal {{numShapes}} vorm(en) toevoegen aan je bibliotheek. Weet je het zeker?",imageDoesNotContainScene:"Deze afbeelding lijkt geen scène gegevens te bevatten. Heb je scène embedding tijdens het exporteren ingeschakeld?",cannotRestoreFromImage:"Scène kan niet worden hersteld vanuit dit afbeeldingsbestand",invalidSceneUrl:"Kan scène niet importeren vanuit de opgegeven URL. Het is onjuist of bevat geen geldige Excalidraw JSON-gegevens.",resetLibrary:"Dit zal je bibliotheek wissen. Weet je het zeker?",removeItemsFromsLibrary:"Verwijder {{count}} item(s) uit bibliotheek?",invalidEncryptionKey:"Encryptiesleutel moet 22 tekens zijn. Live samenwerking is uitgeschakeld.",collabOfflineWarning:`Geen internetverbinding beschikbaar. -Je wijzigingen worden niet opgeslagen!`},i={unsupportedFileType:"Niet-ondersteund bestandstype.",imageInsertError:"Afbeelding invoegen mislukt. Probeer het later opnieuw...",fileTooBig:"Bestand is te groot. Maximale grootte is {{maxSize}}.",svgImageInsertError:"Kon geen SVG-afbeelding invoegen. De SVG-opmaak ziet er niet geldig uit.",failedToFetchImage:"",invalidSVGString:"Ongeldige SVG.",cannotResolveCollabServer:"Kan geen verbinding maken met de collab server. Herlaad de pagina en probeer het opnieuw.",importLibraryError:"Kon bibliotheek niet laden",collabSaveFailed:"Kan niet opslaan in de backend database. Als de problemen blijven bestaan, moet u het bestand lokaal opslaan om ervoor te zorgen dat u uw werk niet verliest.",collabSaveFailed_sizeExceeded:"Kan de backend database niet opslaan, het canvas lijkt te groot te zijn. U moet het bestand lokaal opslaan om ervoor te zorgen dat u uw werk niet verliest.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"Ingesloten elementen kunnen niet worden toegevoegd aan de bibliotheek.",iframe:"",image:"Ondersteuning voor het toevoegen van afbeeldingen aan de bibliotheek komt binnenkort!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},a={selection:"Selectie",image:"Voeg afbeelding in",rectangle:"Rechthoek",diamond:"Ruit",ellipse:"Ovaal",arrow:"Pijl",line:"Lijn",freedraw:"Teken",text:"Tekst",library:"Bibliotheek",lock:"Geselecteerde tool actief houden na tekenen",penMode:"Pen modus - Blokkeer aanraken",link:"Link toevoegen / bijwerken voor een geselecteerde vorm",eraser:"Gum",frame:"",magicframe:"",embeddable:"Web insluiten",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},r={canvasActions:"Canvasacties",selectedShapeActions:"Acties van geselecteerde vorm",shapes:"Vormen"},l={canvasPanning:"Om de canvas te verplaatsen, houd muiswiel of spatiebalk ingedrukt tijdens slepen, of gebruik het handgereedschap",linearElement:"Klik om meerdere punten te starten, sleep voor één lijn",freeDraw:"Klik en sleep, laat los als je klaar bent",text:"Tip: je kunt tekst toevoegen door ergens dubbel te klikken met de selectietool",embeddable:"Klink-sleep om een website-insluiting te maken",text_selected:"Dubbelklik of druk op ENTER om tekst te bewerken",text_editing:"Druk op Escape of CtrlOrCmd+ENTER om het bewerken te voltooien",linearElementMulti:"Klik op het laatste punt of druk op Escape of Enter om te stoppen",lockAngle:"Je kunt de hoek beperken door SHIFT ingedrukt te houden",resize:`Houd tijdens het vergroten SHIFT ingedrukt om verhoudingen te behouden, -gebruik ALT om vanuit het midden te vergroten/verkleinen`,resizeImage:"",rotate:"Je kan hoeken beperken door SHIFT ingedrukt te houden wanneer je draait",lineEditor_info:"Houd CtrlOrCmd en Dubbelklik of druk op CtrlOrCmd + Enter om punten te bewerken",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"Publiceer je eigen bibliotheek",bindTextToElement:"Druk op enter om tekst toe te voegen",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Kan voorbeeld niet tonen",canvasTooBig:"Het canvas is mogelijk te groot.",canvasTooBigTip:"Tip: beweeg de verste elementen iets dichter bij elkaar."},d={headingMain:"Fout opgetreden. Probeer ",clearCanvasMessage:"Als herladen niet werkt, probeer ",clearCanvasCaveat:" Dit zal leiden tot verlies van je werk ",trackedToSentry:"De fout met ID {{eventId}} was gevolgd op ons systeem.",openIssueMessage:"We waren voorzichtig om je scène-informatie niet in de fout toe te voegen. Als je scène niet privé is, overweeg dan alstublieft het opvolgen op onze Kopieer de informatie hieronder naar de GitHub issue.",sceneContent:"Scène-inhoud:"},c={desc_intro:"Je kunt mensen uitnodigen om met je samen te werken.",desc_privacy:"Geen zorgen, de sessie gebruikt end-to-end encryptie, dus wat je tekent blijft privé. Zelfs onze server zal niet kunnen zien wat je tekent.",button_startSession:"Start sessie",button_stopSession:"Stop sessie",desc_inProgressIntro:"De live-samenwerkingssessie is nu gestart.",desc_shareLink:"Deel deze link met iedereen waarmee je wil samenwerken:",desc_exitSession:`Het stoppen van de sessie zal je loskoppelen van de kamer, maar je kunt lokaal doorwerken met de scène. -Pas op: dit heeft geen invloed op andere mensen en dat zij nog steeds in staat zullen zijn om samen te werken aan hun versie.`,shareTitle:"Neem deel aan een live samenwerkingssessie op Excalidraw"},g={title:"Fout"},k={disk_title:"Opslaan op schijf",disk_details:"De scènegegevens exporteren naar een bestand waaruit u later kunt importeren.",disk_button:"Opslaan naar bestand",link_title:"Deelbare link",link_details:"Exporteren als een alleen-lezen link.",link_button:"Exporteer naar link",excalidrawplus_description:"Sla de scène op in je Excalidraw+ werkruimte.",excalidrawplus_button:"Exporteer",excalidrawplus_exportError:"Kan op dit moment niet exporteren naar Excalidraw+..."},b={blog:"Lees onze blog",click:"klik",deepSelect:"Deep selecteer",deepBoxSelect:"",curvedArrow:"Gebogen pijl",curvedLine:"Kromme lijn",documentation:"Documentatie",doubleClick:"dubbelklikken",drag:"slepen",editor:"Editor",editLineArrowPoints:"",editText:"",github:"Probleem gevonden? Verzenden",howto:"Volg onze handleidingen",or:"of",preventBinding:"Pijlbinding voorkomen",tools:"Tools",shortcuts:"Sneltoetsen",textFinish:"Voltooi het bewerken (teksteditor)",textNewLine:"Nieuwe regel toevoegen (teksteditor)",title:"Help",view:"Weergave",zoomToFit:"Zoom in op alle elementen",zoomToSelection:"Inzoomen op selectie",toggleElementLock:"",movePageUpDown:"Pagina omhoog/omlaag",movePageLeftRight:"Verplaats pagina links/rechts"},m={title:"Wis canvas"},p={title:"Publiceer bibliotheek",itemName:"Itemnaam",authorName:"Naam auteur",githubUsername:"GitHub gebruikersnaam",twitterUsername:"Twitter gebruikersnaam",libraryName:"Naam bibliotheek",libraryDesc:"Beschrijving van de bibliotheek",website:"Website",placeholder:{authorName:"Je naam of gebruikersnaam",libraryName:"Naam van je bibliotheek",libraryDesc:"Beschrijving van je bibliotheek om mensen te helpen het gebruik ervan te begrijpen",githubHandle:"",twitterHandle:"",website:"Link naar je persoonlijke website of elders (optioneel)"},errors:{required:"Vereist",website:"Vul een geldige URL in"},noteDescription:"openbare repository",noteGuidelines:"richtlijnen",noteLicense:"MIT-licentie, ",noteItems:"",atleastOneLibItem:"",republishWarning:""},u={title:"Bibliotheek ingediend",content:"Hier"},h={resetLibrary:"Reset bibliotheek",removeItemsFromLib:"Verwijder geselecteerde items uit bibliotheek"},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},w={tooltip:"Je tekeningen zijn beveiligd met end-to-end encryptie, dus Excalidraw's servers zullen nooit zien wat je tekent.",link:"Blog post over end-to-end versleuteling in Excalidraw"},S={angle:"Hoek",element:"Element",elements:"Elementen",height:"Hoogte",scene:"Scene",selected:"Geselecteerd",storage:"Opslag",title:"Statistieken voor nerds",total:"Totaal",version:"Versie",versionCopy:"Klik om te kopiëren",versionNotAvailable:"Versie niet beschikbaar",width:"Breedte"},y={addedToLibrary:"Toegevoegd aan bibliotheek",copyStyles:"Stijlen gekopieerd.",copyToClipboard:"Gekopieerd naar het klembord.",copyToClipboardAsPng:`{{exportSelection}} naar klembord gekopieerd als PNG -({{exportColorScheme}})`,fileSaved:"Bestand opgeslagen.",fileSavedToFilename:"Opgeslagen als {filename}",canvas:"canvas",selection:"selectie",pasteAsSingleElement:`Gebruik {{shortcut}} om te plakken als een enkel element, -of plak in een bestaande teksteditor`,unableToEmbed:"Het insluiten van deze url is momenteel niet toegestaan. Zet een probleem op GitHub om de URL op de whitelist te zetten",unrecognizedLinkFormat:"De link die u hebt ingesloten komt niet overeen met het verwachte formaat. Probeer de 'embed' string van de bronsite te plakken"},j={transparent:"Transparant",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},x={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"Exporteren, voorkeuren en meer...",center_heading:"Diagrammen. Eenvoudig. Gemaakt.",toolbarHint:"Kies een tool & begin met tekenen!",helpHint:"Snelkoppelingen en hulp"}},T={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},z={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},f={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:n,buttons:t,alerts:o,errors:i,toolBar:a,headings:r,hints:l,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:g,exportDialog:k,helpDialog:b,clearCanvasDialog:m,publishDialog:p,publishSuccessDialog:u,confirmDialog:h,imageExportDialog:v,encrypted:w,stats:S,toast:y,colors:j,welcomeScreen:x,colorPicker:T,overwriteConfirm:z,mermaid:f};export{o as alerts,t as buttons,s as canvasError,m as clearCanvasDialog,T as colorPicker,j as colors,h as confirmDialog,L as default,w as encrypted,g as errorDialog,d as errorSplash,i as errors,k as exportDialog,r as headings,b as helpDialog,l as hints,v as imageExportDialog,e as labels,n as library,f as mermaid,z as overwriteConfirm,p as publishDialog,u as publishSuccessDialog,c as roomDialog,S as stats,y as toast,a as toolBar,x as welcomeScreen}; -//# sourceMappingURL=nl-NL.json-lulb62bF.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js.map b/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js.map deleted file mode 100644 index 32a961a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nl-NL.json-lulb62bF.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"nl-NL.json-lulb62bF.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js b/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js deleted file mode 100644 index d20f27a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js +++ /dev/null @@ -1,9 +0,0 @@ -const e={paste:"Lim inn",pasteAsPlaintext:"",pasteCharts:"Lim inn diagram",selectAll:"Vel alt",multiSelect:"Legg til element i utval",moveCanvas:"Flytt lerretet",cut:"Klipp ut",copy:"Kopier",copyAsPng:"Kopier til utklippstavla som PNG",copyAsSvg:"Kopier til utklippstavla som SVG",copyText:"",copySource:"",convertToCode:"",bringForward:"Flytt framover",sendToBack:"Send heilt bak",bringToFront:"Flytt heilt fram",sendBackward:"Send bakover",delete:"Slett",copyStyles:"Kopier stilar",pasteStyles:"Lim inn stilar",stroke:"Strek",background:"Bakgrunn",fill:"Fyll",strokeWidth:"Strekbreidd",strokeStyle:"Strekstil",strokeStyle_solid:"Solid",strokeStyle_dashed:"Stipla",strokeStyle_dotted:"Prikka",sloppiness:"Ujamnheit",opacity:"Synlegheit",textAlign:"Tekstjustering",edges:"Kanter",sharp:"Skarp",round:"Rund",arrowheads:"Pilhovud",arrowhead_none:"Ingen",arrowhead_arrow:"Pil",arrowhead_bar:"Stolpe",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Trekant",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Skriftstorleik",fontFamily:"Skrifttype",addWatermark:"Legg til «Laga med Excalidraw»",handDrawn:"Handteikna",normal:"Normal",code:"Kode",small:"Liten",medium:"Medium",large:"Stor",veryLarge:"Svært stor",solid:"Solid",hachure:"Skravert",zigzag:"",crossHatch:"Krysskravert",thin:"Tynn",bold:"Tjukk",left:"Venstre",center:"Midstill",right:"Høgre",extraBold:"Ekstra tjukk",architect:"Arkitekt",artist:"Kunstnar",cartoonist:"Teiknar",fileTitle:"Filnamn",colorPicker:"Fargeveljar",canvasColors:"Brukt på lerretet",canvasBackground:"Lerretsbakgrunn",drawingCanvas:"Lerret",layers:"Lag",actions:"Handlingar",language:"Språk",liveCollaboration:"",duplicateSelection:"Dupliser",untitled:"Utan namn",name:"Namn",yourName:"Namnet ditt",madeWithExcalidraw:"Laga med Excalidraw",group:"Grupper utval",ungroup:"Avgrupper utval",collaborators:"Samarbeidarar",showGrid:"Vis rutenett",addToLibrary:"Legg til i bibliotek",removeFromLibrary:"Fjern frå bibliotek",libraryLoadingMessage:"Laster bibliotek…",libraries:"Blad gjennom bibliotek",loadingScene:"Laster scene…",align:"Juster",alignTop:"Juster til topp",alignBottom:"Juster til botn",alignLeft:"Juster til venstre",alignRight:"Juster til høgre",centerVertically:"Midtstill vertikalt",centerHorizontally:"Midtstill horisontalt",distributeHorizontally:"Sprei horisontalt",distributeVertically:"Sprei vertikalt",flipHorizontal:"Vipp vassrett",flipVertical:"Vipp loddrett",viewMode:"Visningsmodus",share:"Del",showStroke:"Vis fargeveljar for linjer",showBackground:"Vis fargeveljar for bakgrunn",toggleTheme:"Veksle tema",personalLib:"Personleg bibliotek",excalidrawLib:"Excalidraw-bibliotek",decreaseFontSize:"Gjer skriftstorleik mindre",increaseFontSize:"Gjer skriftstorleik større",unbindText:"Avbind tekst",bindText:"",createContainerFromText:"",link:{edit:"Rediger lenke",editEmbed:"",create:"Lag lenke",createEmbed:"",label:"Lenke",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},t={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},r={clearReset:"Tilbakestill lerretet",exportJSON:"Eksporter til fil",exportImage:"",export:"",copyToClipboard:"Kopier til utklippstavla",save:"Lagre til noverande fil",saveAs:"Lagre som",load:"",getShareableLink:"Hent delingslenke",close:"Lukk",selectLanguage:"Vel språk",scrollBackToContent:"Skroll tilbake til innhald",zoomIn:"Zoom inn",zoomOut:"Zoom ut",resetZoom:"Nullstill zoom",menu:"Meny",done:"Ferdig",edit:"Rediger",undo:"Angre",redo:"Gjer om",resetLibrary:"Nullstill bibliotek",createNewRoom:"Lag nytt rom",fullScreen:"Fullskjerm",darkMode:"Mørk modus",lightMode:"Lys modus",zenMode:"Zen-modus",objectsSnapMode:"",exitZenMode:"Avslutt zen-modus",cancel:"Avbryt",clear:"Tøm",remove:"Fjern",embed:"",publishLibrary:"Publiser",submit:"Send inn",confirm:"Stadfest",embeddableInteractionButton:""},i={clearReset:"Dette vil tømme lerretet. Er du sikker?",couldNotCreateShareableLink:"Kunne ikkje lage delingslenke.",couldNotCreateShareableLinkTooBig:"Kunne ikkje opprette deleleg lenke: scena er for stor",couldNotLoadInvalidFile:"Kunne ikkje laste inn ugyldig fil",importBackendFailed:"Importering av backend feila.",cannotExportEmptyCanvas:"Kan ikkje eksportere eit tomt lerret.",couldNotCopyToClipboard:"",decryptFailed:"Kunne ikkje dekryptere data.",uploadedSecurly:"Opplastinga er kryptert og er ikkje mogleg å lese av Excalidraw-serveren eller tredjepartar.",loadSceneOverridePrompt:"Innlasting av ekstern teikning erstattar ditt eksisterande innhald. Ynskjer du å fortsette?",collabStopOverridePrompt:`Viss du avsluttar økta overskriv du den førre, lokalt lagra teikninga di. Er du sikker? - -(Ønsker du å halde fram med denne? Då er det berre å lukke denne fana.)`,errorAddingToLibrary:"Kunne ikkje legge elementet i biblioteket",errorRemovingFromLibrary:"Kunne ikkje fjerne elementet frå biblioteket",confirmAddLibrary:"Dette vil legge til {{numShapes}} form(er) i biblioteket ditt. Er du sikker?",imageDoesNotContainScene:"Dette biletet ser ikkje ut til å ha noko scenedata. Har du skrutt på innbygging av scene medan eksporteringa heldt på?",cannotRestoreFromImage:"Scena kunne ikkje gjenopprettast frå denne biletfila",invalidSceneUrl:"Kunne ikkje hente noko scene frå den URL-en. Ho er anten øydelagd eller inneheld ikkje gyldig Excalidraw JSON-data.",resetLibrary:"Dette vil fjerne alt innhald frå biblioteket. Er du sikker?",removeItemsFromsLibrary:"Slette {{count}} element frå biblioteket?",invalidEncryptionKey:"Krypteringsnøkkelen må ha 22 teikn. Sanntidssamarbeid er deaktivert.",collabOfflineWarning:""},n={unsupportedFileType:"Filtypen er ikkje støtta.",imageInsertError:"Kunne ikkje sette inn biletet. Prøv igjen seinare...",fileTooBig:"Fila er for stor. Maksimal tillate storleik er {{maxSize}}.",svgImageInsertError:"Kunne ikkje sette inn SVG-biletet. SVG-koden ser ugyldig ut.",failedToFetchImage:"",invalidSVGString:"Ugyldig SVG.",cannotResolveCollabServer:"Kunne ikkje kople til samarbeidsserveren. Ver vennleg å oppdatere inn sida og prøv på nytt.",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},a={selection:"Vel",image:"Sett in bilete",rectangle:"Rektangel",diamond:"Diamant",ellipse:"Ellipse",arrow:"Pil",line:"Linje",freedraw:"Teikn",text:"Tekst",library:"Bibliotek",lock:"Hald fram med valt verktøy",penMode:"",link:"Legg til/ oppdater lenke til valt figur",eraser:"Viskelêr",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"Handlingar: lerret",selectedShapeActions:"Handlingar: valt objekt",shapes:"Formar"},o={canvasPanning:"",linearElement:"Klikk for å starte linje med fleire punkt, eller drag for ei enkel linje",freeDraw:"Klikk og drag, slepp når du er ferdig",text:"Tips: du kan òg leggje til tekst ved å dobbeltklikke kor som helst med utvalgsverktyet",embeddable:"",text_selected:"Dobbelklikk eller trykk ENTER for å redigere teksta",text_editing:"Trykk Escape eller CtrlOrCmd+ENTER for å fullføre redigeringa",linearElementMulti:"Klikk på siste punkt eller trykk Escape eller Enter for å fullføre",lockAngle:"Du kan begrense vinkelen ved å holde nede SKIFT",resize:`Du kan halde fram med forholdet ved å trykke SHIFT medan du endrar storleik, -trykk ALT for å endre storleiken frå midten`,resizeImage:`Du kan endre storleiken fritt ved å halde inne SHIFT, -hald ALT for å endre storleik frå sentrum`,rotate:"Du kan låse vinklane ved å halde SHIFT medan du roterer",lineEditor_info:"",lineEditor_pointSelected:`Trykk på Slett for å fjerne punkt(a), -Ctrl / Cmd+D for å duplisere, eller drag for å flytte`,lineEditor_nothingSelected:`Vel eit punkt å redigere (hald inne SHIFT for å velje fleire), -eller hald inne Alt og klikk for å legge til nye punkt`,placeImage:"Klikk for å plassere biletet, eller klikk og drag for å velje storleik manuelt",publishLibrary:"Publiser ditt eige bibliotek",bindTextToElement:"Trykk på enter for å legge til tekst",deepBoxSelect:"Hald inne Ctrl / Cmd for å velje djupt, og forhindre flytting",eraserRevert:"Hald inne Alt for å reversere markering av element for sletting",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Kan ikkje vise førehandsvising",canvasTooBig:"Lerretet er mogleg for stort.",canvasTooBigTip:"Tips: prøv å flytte elementa som er lengst frå kvarandre, litt nærare kvarandre."},d={headingMain:"Ein feil oppstod. Prøv ",clearCanvasMessage:"Om ny sidelasting ikkje fungerer, prøv ",clearCanvasCaveat:" Dette vil føre til tap av arbeid ",trackedToSentry:"Feilen med identifikator {{eventId}} vart logga i systemet vårt.",openIssueMessage:"Vi er veldig nøye med å ikkje inkludere scene-opplysingane dine i feilmeldinga. Viss scena di ikkje er privat kan du vurdere å følge opp i Ta med opplysingane nedanfor ved å kopiere og lime inn i GitHub-saka.",sceneContent:"Scene-innhald:"},k={desc_intro:"Du kan invitere personar til scena di for å samarbeide med deg.",desc_privacy:"Ta det med ro; økta brukar ende-til-ende-kryptering, så alt du teiknar held fram med å vere privat. Ikkje ein gong serveren vår kan sjå kva du lagar.",button_startSession:"Start økt",button_stopSession:"Stopp økt",desc_inProgressIntro:"Sanntids-samarbeidsøkt er no i gang.",desc_shareLink:"Del denne lenka med dei du vil samarbeide med:",desc_exitSession:"Dersom du avsluttar økta blir du kopla frå rommet, men du kan halde fram med å arbeide med scena lokalt. Ver merksam på at dette ikkje vil påverke andre personar, og desse vil framleis ha moglegheit til å samarbeide på deira eigen versjon.",shareTitle:"Bli med på eit sanntidssamarbeid på Excalidraw"},g={title:"Feil"},m={disk_title:"Lagre til disk",disk_details:"Eksporter scenedataa til ei fil du kan importere seinare.",disk_button:"Lagre til fil",link_title:"Deleleg lenke",link_details:"Eksporter som skrivebeskytta lenke.",link_button:"Eksporter til lenke",excalidrawplus_description:"Lagre scena til Excalidraw+-arbeidsområdet ditt.",excalidrawplus_button:"Eksporter",excalidrawplus_exportError:"Kunne ikkje eksportere til Excalidraw+ akkurat no..."},p={blog:"Les bloggen vår",click:"klikk",deepSelect:"Marker djupt",deepBoxSelect:"Marker djupt inni boksen og forhindr flytting",curvedArrow:"Boga pil",curvedLine:"Boga linje",documentation:"Dokumentasjon",doubleClick:"dobbelklikk",drag:"drag",editor:"Redigering",editLineArrowPoints:"",editText:"",github:"Funne eit problem? Send inn",howto:"Følg vegleiinga vår",or:"eller",preventBinding:"Hindre pilkopling",tools:"",shortcuts:"Tastatursnarvegar",textFinish:"Fullfør redigering (teksthandsamar)",textNewLine:"Legg til ny linje (teksthandsamar)",title:"Hjelp",view:"Vising",zoomToFit:"Zoom for å sjå alle elementa",zoomToSelection:"Zoom til utval",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},c={title:"Tøm lerretet"},b={title:"Publiser bibliotek",itemName:"Elementnamn",authorName:"Eigaren sitt namn",githubUsername:"GitHub-brukarnamn",twitterUsername:"Twitter-brukarnamn",libraryName:"Biblioteknamn",libraryDesc:"Bibliotekskildring",website:"Nettstad",placeholder:{authorName:"Namnet eller brukarnamnet ditt",libraryName:"Namnet på biblioteket ditt",libraryDesc:"Skildring av biblioteket ditt sånn at andre forstår bruken av det",githubHandle:"GitHub-brukarnamn (valfritt), slik at du kan redigere bibiloteket når det er sendt inn til vurdering",twitterHandle:"Twitter-brukarnamn (valfritt), så vi veit kven vi skal kreditere på Twitter",website:"Lenke til den personlege nettstaden din eller ein anna stad (valfritt)"},errors:{required:"Kravt",website:"Fyll inn ein gyldig URL"},noteDescription:"Send inn biblioteket ditt til inkludering i den offentlege bibliotek-kjeldekodaslik at andre kan bruke det i teikningane deira.",noteGuidelines:"Biblioteket må godkjennast manuelt fyrst. Ver vennleg å lese retningslinjene før du sender inn. Du kjem til å trenge ein GitHub-konto for å kommunisere og gjere endringar dersom kravt, men det er ikkje strengt naudsynt.",noteLicense:"Ved å sende inn godkjenner du at biblioteket vert publisert under MIT-lisensen, som kort sagt betyr at kven som helst kan bruke det utan avgrensingar.",noteItems:"Kvart bibliotekselement må ha eit eige namn, slik at det er mogleg å filtrere. Dei følgande bibliotekselementa blir inkludert:",atleastOneLibItem:"Ver vennleg å markere minst eitt bibliotekselement for å starte",republishWarning:""},u={title:"Bibliotek innsendt",content:"Tusen takk {{authorName}}! Biblioteket ditt har blitt sendt inn til gjennomgang. Du kan halde styr på statusher"},v={resetLibrary:"Tilbakestill bibliotek",removeItemsFromLib:"Fjern valde element frå biblioteket"},f={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},y={tooltip:"Teikningane dine er ende-til-ende-krypterte slik at Excalidraw sine serverar aldri får sjå dei.",link:"Blogginnlegg om ende-til-ende-kryptering i Excalidraw"},h={angle:"Vinkel",element:"Element",elements:"Element",height:"Høgde",scene:"Scene",selected:"Valde",storage:"Lagring",title:"Statistikk for nerdar",total:"Totalt",version:"Versjon",versionCopy:"Klikk for å kopiere",versionNotAvailable:"Versjonen er ikkje tilgjengeleg",width:"Breidde"},S={addedToLibrary:"Lagt til i bibliotek",copyStyles:"Kopierte stilane.",copyToClipboard:"Kopiert til utklippstavla.",copyToClipboardAsPng:`Kopierte {{exportSelection}} til utklippstavla som PNG -({{exportColorScheme}})`,fileSaved:"Fila er lagra.",fileSavedToFilename:"Lagra som {filename}",canvas:"lerret",selection:"val",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"Gjennomsiktig",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},j={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},L={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},w={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},E={title:"",button:"",description:"",syntax:"",preview:""},x={labels:e,library:t,buttons:r,alerts:i,errors:n,toolBar:a,headings:l,hints:o,canvasError:s,errorSplash:d,roomDialog:k,errorDialog:g,exportDialog:m,helpDialog:p,clearCanvasDialog:c,publishDialog:b,publishSuccessDialog:u,confirmDialog:v,imageExportDialog:f,encrypted:y,stats:h,toast:S,colors:T,welcomeScreen:j,colorPicker:L,overwriteConfirm:w,mermaid:E};export{i as alerts,r as buttons,s as canvasError,c as clearCanvasDialog,L as colorPicker,T as colors,v as confirmDialog,x as default,y as encrypted,g as errorDialog,d as errorSplash,n as errors,m as exportDialog,l as headings,p as helpDialog,o as hints,f as imageExportDialog,e as labels,t as library,E as mermaid,w as overwriteConfirm,b as publishDialog,u as publishSuccessDialog,k as roomDialog,h as stats,S as toast,a as toolBar,j as welcomeScreen}; -//# sourceMappingURL=nn-NO.json-19EVdr9m.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js.map b/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js.map deleted file mode 100644 index b22ce16..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/nn-NO.json-19EVdr9m.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"nn-NO.json-19EVdr9m.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js b/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js deleted file mode 100644 index 65b5320..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js +++ /dev/null @@ -1,9 +0,0 @@ -const a={paste:"Pegar",pasteAsPlaintext:"Pegar en tèxt brut",pasteCharts:"Pegar los grafics",selectAll:"Tot seleccionar",multiSelect:"Apondre un element a la seleccion",moveCanvas:"Desplaçar lo canabàs",cut:"Talhar",copy:"Copiar",copyAsPng:"Copiar al quichapapièrs coma PNG",copyAsSvg:"Copiar al quichapapièrs coma SVG",copyText:"Copiar al quichapapièrs coma tèxt",copySource:"",convertToCode:"",bringForward:"En avant",sendToBack:"En arrièr",bringToFront:"A l’endavant",sendBackward:"Endarrièr",delete:"Suprimir",copyStyles:"Copiar los estiles",pasteStyles:"Pegar los estils",stroke:"Contorn",background:"Rèireplan",fill:"Empliment",strokeWidth:"Largor de contorn",strokeStyle:"Estil de contorn",strokeStyle_solid:"Solide",strokeStyle_dashed:"Tiret",strokeStyle_dotted:"Puntilhat",sloppiness:"Estil de traça",opacity:"Opacitat",textAlign:"Alinhament tèxt",edges:"Angles",sharp:"Ponchut",round:"Arredonit",arrowheads:"Cap de la flècha",arrowhead_none:"Cap",arrowhead_arrow:"Sageta",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triangle",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Talha polissa",fontFamily:"Familha de polissa",addWatermark:"Apondre « Fabricat amb Excalidraw »",handDrawn:"A la man levada",normal:"Normala",code:"Còdi",small:"Pichona",medium:"Mejana",large:"Granda",veryLarge:"Gradassa",solid:"Solide",hachure:"Raia",zigzag:"Zigzag",crossHatch:"Raia crosada",thin:"Fin",bold:"Espés",left:"Esquèrra",center:"Centre",right:"Drecha",extraBold:"Espesàs",architect:"Arquitècte",artist:"Artista",cartoonist:"Dessenhaire",fileTitle:"Nom del fichièr",colorPicker:"Selector de color",canvasColors:"Utilizada suls canabassses",canvasBackground:"Rèireplan del canabàs",drawingCanvas:"Zòna de dessenh",layers:"Calques",actions:"Accions",language:"Lenga",liveCollaboration:"Collaboracion en dirèct...",duplicateSelection:"Duplicar",untitled:"Sens títol",name:"Nom",yourName:"Vòstre nom",madeWithExcalidraw:"Fabricat amb Excalidraw",group:"Gropar la seleccion",ungroup:"Desunir la seleccion",collaborators:"Collaborators",showGrid:"Afichar la gresilha",addToLibrary:"Apondre a la bibliotèca",removeFromLibrary:"Suprimir de la bibliotèca",libraryLoadingMessage:"Cargament de la bibliotèca…",libraries:"Percórrer las bibliotècas",loadingScene:"Cargament de la scèna…",align:"Alinhament",alignTop:"Alinhar ennaut",alignBottom:"Alinhar enbàs",alignLeft:"Alinhar a esquèrra",alignRight:"Alinhar a drecha",centerVertically:"Centrar verticalament",centerHorizontally:"Centrar orizontalament",distributeHorizontally:"Distribuir orizontalament",distributeVertically:"Distribuir verticalament",flipHorizontal:"Virar orizontalament",flipVertical:"Virar verticalament",viewMode:"Mòde de vista",share:"Partejar",showStroke:"Mostrar lo selector de color de contorn",showBackground:"Mostrar lo selector de color de fons",toggleTheme:"Alternar tèma",personalLib:"Bibliotèca personala",excalidrawLib:"Bibliotèca Excalidraw",decreaseFontSize:"Reduire talha polissa",increaseFontSize:"Aumentar talha polissa",unbindText:"Dessociar lo tèxte",bindText:"Ligar lo tèxt al contenidor",createContainerFromText:"Envelopar lo tèxte dins un contenedor",link:{edit:"Modificar lo ligam",editEmbed:"Modificar lo ligam e l’integracion",create:"Crear un ligam",createEmbed:"Crear un ligam e son integracion",label:"Ligam",labelEmbed:"Ligam e integracion",empty:"Cap de ligam pas definit"},lineEditor:{edit:"Modificar la linha",exit:"Sortir de l’editor de linha"},elementLock:{lock:"Verrolhar",unlock:"Desverrolhar",lockAll:"Tot verrolhar",unlockAll:"Tot desverrolhar"},statusPublished:"Publicat",sidebarLock:"Gardar la barra laterala dobèrta",selectAllElementsInFrame:"Seleccionar totes los elements del quadre",removeAllElementsFromFrame:"Tirar totes los elements d’al quadre",eyeDropper:"Prendre la color a partir d’un canabàs",textToDiagram:"",prompt:""},e={noItems:"Cap d’element pas encara apondut...",hint_emptyLibrary:"Seleccionatz un element d’apondre aquí, o installatz una bibliotèca del depaus public, çai-jos.",hint_emptyPrivateLibrary:"Seleccionatz un element d’apondre aquí pel canabàs."},r={clearReset:"Reïnicializar lo canabàs",exportJSON:"Exportar en fichièr",exportImage:"Exportar imatges...",export:"Enregistrar dins...",copyToClipboard:"Copiar al quichapapièrs",save:"Salvar al fichièr actual",saveAs:"Enregistrar jos",load:"Dobrir",getShareableLink:"Obténer lo ligam de partatge",close:"Tampar",selectLanguage:"Causir una lenga",scrollBackToContent:"Tornar al contengut",zoomIn:"Zoom avant",zoomOut:"Zoom arrièr",resetZoom:"Tirar lo zoom",menu:"Menú",done:"Acabat",edit:"Modificar",undo:"Anullar",redo:"Restablir",resetLibrary:"Reïnicializar la bibliotèca",createNewRoom:"Crear sala novèla",fullScreen:"Ecran complèt",darkMode:"Mòde escur",lightMode:"Mòde clar",zenMode:"Mòde escur",objectsSnapMode:"Ancorar als objèctes",exitZenMode:"Sortir del mòde zen",cancel:"Anullar",clear:"Escafar",remove:"Tirar",embed:"Alternar l’integracion",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:"Clicar per interagir"},i={clearReset:"Aquò suprimirà lo canabàs complèt. O volètz vertadièrament ?",couldNotCreateShareableLink:"Creacion impossibla del ligam de partatge.",couldNotCreateShareableLinkTooBig:"Creacion impossibla del ligam de partatge : la scèna es tròp granda",couldNotLoadInvalidFile:"Cargament impossible d’un fichièr invalid",importBackendFailed:"Importacion fracassada.",cannotExportEmptyCanvas:"Impossible d’exportar los canabasses voids.",couldNotCopyToClipboard:"Còpia impossibla al quichapapièrs.",decryptFailed:"Deschiframent impossible de las donadas.",uploadedSecurly:"Lo telecargament es estat securizat amb un chiframent del cap a la fin, significa que los servidors d’Excalidraw o que quina tèrça part que siá pòdon pas legir lo contengut.",loadSceneOverridePrompt:"Cargar un dessenh extèrn remplaçarà vòstre contengut existent. Volètz contunhar ?",collabStopOverridePrompt:`Arrestar la session remplaçarà vòstre precedent dessenh gardat localament. O volètz vertadièrament ? - -(Se volètz gardar vòstre dessenh local, tampatz simplament l’onglet del navegador a la plaça)`,errorAddingToLibrary:"Apondon impossible de l’element a la bibliotèca",errorRemovingFromLibrary:"Supression impossibla de l’element a la bibliotèca",confirmAddLibrary:"Apondrà {{numShapes}} forma(s) a vòstra bibliotèca. Confirmatz ?",imageDoesNotContainScene:"Aqueste imatge sembla pas conténer cap de donadas de scèna. Avètz activat l’integracion de scèna pendent l’exportacion ?",cannotRestoreFromImage:"Restauracion impossibla de la scèna a partir del fichièr imatge",invalidSceneUrl:"Importacion impossibla de la scèna a partir de l’URL provesida. Es siá mal formatada o siá conten pas cap de donada JSON Excalidraw valida.",resetLibrary:"Aquò suprimirà vòstra bibliotèca. O volètz vertadièrament ?",removeItemsFromsLibrary:"Suprimir {{count}} element(s) de la bibliotèca ?",invalidEncryptionKey:"La clau de chiframent deu conténer 22 caractèrs. La collaboracion en dirèct es desactivada.",collabOfflineWarning:`Cap de connexion pas disponibla. -Vòstras modificacions seràn pas salvadas !`},t={unsupportedFileType:"Tipe de fichièr pas pres en carga.",imageInsertError:"Insercion d’imatge impossibla. Tornatz ensajar mai tard...",fileTooBig:"Fichièr tròp pesuc. La talha maximala autorizada es {{maxSize}}.",svgImageInsertError:"Insercion d’imatge SVG impossibla. Las balisas SVG semblan invalidas.",failedToFetchImage:"Fracàs de la recuperacion de l’imatge.",invalidSVGString:"SVG invalid.",cannotResolveCollabServer:"Connexion impossibla al servidor collab. Mercés de recargar la pagina e tornar ensajar.",importLibraryError:"Impossible de cargar la bibliotèca",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"Empegatge impossible (lectura impossibla a partir del quichapapièrs).",asyncPasteFailedOnParse:"Empegatge impossible.",copyToSystemClipboardFailed:"Còpia impossibla al quichapapièrs."},o={selection:"Seleccion",image:"Inserir imatge",rectangle:"Rectangle",diamond:"Lausange",ellipse:"Ellipsa",arrow:"Sageta",line:"Linha",freedraw:"Dessenhar",text:"Tèxt",library:"Bibliotèca",lock:"Mantenir activa l’aisina aprèp dessenhar",penMode:"Mòde estilo - empachar lo contact",link:"Apondre/Actualizar lo ligam per una fòrma seleccionada",eraser:"Goma",frame:"Esplech quadre",magicframe:"",embeddable:"Integracion Web",laser:"Puntador laser",hand:"Man (aisina de desplaçament de la vista)",extraTools:"Mai d’aisinas",mermaidToExcalidraw:"De Mermaid cap a Excalidraw",magicSettings:""},n={canvasActions:"Accions del canabàs",selectedShapeActions:"Accions per la forma seleccionada",shapes:"Formas"},l={canvasPanning:"",linearElement:"Clicatz per començar mantun punt, lisatz per una sola linha",freeDraw:"Clicatz e lisatz, relargatz un còp acabat",text:"Astúcia : podètz tanben apondre de tèxt en doble clicant ont que siá amb l’aisina de seleccion",embeddable:"",text_selected:"Clicatz dos còps o quichatz ENTRADA per modificar lo tèxt",text_editing:"Quichatz ESCAPAR o CtrlOrCmd+ENTRADA per acabar la modificacion",linearElementMulti:"Clicatz sul darrièr punt o quichatz Ecap o Entrada per acabar",lockAngle:"Podètz restrénger l’angle en mantenent MAJ",resize:`Podètz servar las proporcions en mantenent la tòca MAJ pendent lo redimensionament, -mantenètz la tòca ALT per redimensionar a partir del centre`,resizeImage:`Podètz retalhar liurament en quichant CTRL, -quichatz ALT per retalhar a partir del centre`,rotate:"Podètz restrénger los angles en mantenent MAJ pendent la rotacion",lineEditor_info:"Tenètz quichat Ctrl o Cmd e doble clic o quichatz Ctrl o Cmd + Entrada per modificar los ponches",lineEditor_pointSelected:`Quichar Suprimir per tirar lo(s) punt(s), -CtrlOCmd+D per duplicar, o lisatz per desplaçar`,lineEditor_nothingSelected:`Seleccionar un punt d’editar (manténer Maj. per ne seleccionar mantun), -o manténer Alt e clicar per n’apondre de novèls`,placeImage:"Clicatz per plaçar l’imatge, o clicatz e lisatz per definir sa talha manualament",publishLibrary:"Publicar vòstra pròpria bibliotèca",bindTextToElement:"Quichatz Entrada per apondre de tèxte",deepBoxSelect:"Gardar CtrlOCmd per una seleccion gropada e empachar lo desplaçament",eraserRevert:"Tenètz quichat Alt per anullar los elements marcats per supression",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Afichatge impossible de l’apercebut",canvasTooBig:"Lo canabàs pòt èsser tròp grand.",canvasTooBigTip:"Astúcia : ensajatz de sarrar los elements mai alonhats."},c={headingMain:"Una error s’es producha. Ensajatz ",clearCanvasMessage:"Se recargar fonciona pas, ensajatz ",clearCanvasCaveat:" Menarà a una pèrda del trabalh ",trackedToSentry:"Error amb l’identificant {{eventId}} es estada enregistrada sus nòstre sistèma.",openIssueMessage:"Èrem plan prudents per inclure pas d’informacions de la scèna vòstra sus l’error. Se vòstra scèna es pas privada, volgatz considerar de perseguir sus nòstre Volgatz inclure las informacions çai-jos en las copiant e pegant a l’issue GitHub.",sceneContent:"Contengut de la scèna :"},d={desc_intro:"Podètz convidar lo monde a vòstra scèna actuala per participar amb vos.",desc_privacy:"Vos en fagatz pas, la session utiliza lo chiframent del cap a la fin, çò que dessenetz demorarà privat. Mai nòstres servidors poiràn pas veire vòstra creacion.",button_startSession:"Començar la session",button_stopSession:"Arrestar la session",desc_inProgressIntro:"La session de collaboracion es ara en cors.",desc_shareLink:"Partejatz aqueste ligam amb lo monde amb qui volètz collaborar :",desc_exitSession:"Arrestar la session vos desconnectarà de la sala, mas poiretz contunhar de trabalhar a la scèna, en local. Notatz qu’aquò afectarà pas los autres, e poiràn collaborar a lor version.",shareTitle:"Rejonhètz una session collaborativa sus Excalidraw"},p={title:"Error"},m={disk_title:"Salvar al disc",disk_details:"Exportar las donadas de la scèna cap a un fichièr que podètz importar mai tard.",disk_button:"Salvar al fichièr",link_title:"Ligam de partejar",link_details:"Exportar coma un ligam de lectura sola.",link_button:"Exportar en ligam",excalidrawplus_description:"Enregistrar la scèna dins vòstre espaci de trabalh Excalidraw+.",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"Export impossibla cap a Excalidraw+ pel moment..."},u={blog:"Legir nòstre blog",click:"clic",deepSelect:"Seleccion prigonda",deepBoxSelect:"Seleccionar demest un grop e empacha lo desplaçament",curvedArrow:"Sageta corba",curvedLine:"Linha corba",documentation:"Documentacion",doubleClick:"doble clic",drag:"lisar",editor:"Editor",editLineArrowPoints:"",editText:"Modificar lo tèxte / apondre etiqueta",github:"Problèma trobat ? Senhalatz-lo",howto:"Seguissètz nòstras guidas",or:"o",preventBinding:"Empachar la fixacion de sagetas",tools:"Aisinas",shortcuts:"Acorchis clavièr",textFinish:"Terminar l’edicion (editor de tèxt)",textNewLine:"Apondre linha novèl (editor de tèxt)",title:"Ajuda",view:"Vista",zoomToFit:"Zoomar per veire totes los elements",zoomToSelection:"Zoomar la seleccion",toggleElementLock:"Verrolhar/Desverrolhar la seleccion",movePageUpDown:"Desplaçar la pagina ennaut/enbàs",movePageLeftRight:"Desplaçar la pagina a esquèrra/drecha"},b={title:"Escafar canabàs"},g={title:"Publicar la bibliotèca",itemName:"Nom de l’element",authorName:"Nom de l’autor",githubUsername:"Nom d’utilizaire GitHub",twitterUsername:"Nom d’utilizaire Twitter",libraryName:"Nom de la bibliotèca",libraryDesc:"Descripcion de la bibliotèca",website:"Site web",placeholder:{authorName:"Vòstre nom o nom d’utilizaire",libraryName:"Nom de vòstra bibliotèca",libraryDesc:"Descripcion de vòstra bibliotèca per ajudar lo monde a comprendre son utilizacion",githubHandle:"GitHub handle(opcional), per poder modificar la bibliotèca un còp enviada per repassa",twitterHandle:"Nom d’utilizaire Twitter (opcional), per saber qual mercejar quand ne parlam sus Twitter",website:"Ligam cap a vòstre site web personal o endacòm mai (opcional)"},errors:{required:"Requerit",website:"Picatz una URL valida"},noteDescription:"Enviatz vòstra bibliotèca per èsser compresa al repertòri public de bibliotècaper que los autres l’utilizen dins lor dessenhs.",noteGuidelines:"Qualqu’un deu aprovar la bibliotèca manualament per començar. Volgatz legir las linhas directrises abans de sometre. Vos farà mestièr un compte GitHub per comunicar e realizar de modificacions se demandadas, mas es pas complètament obligatòri.",noteLicense:"En sometent, acceptatz que la bibliotèca siá publicada sota la Licéncia MIT, que significa en brèu que qual que siá pòt l’utilizar sens cap de restriccion.",noteItems:"Cada element de bibliotèca deu aver un nom pròpri per èsser filtrable. Los elements de bibliotèca seguentas seràn incluses :",atleastOneLibItem:"Volgatz seleccionar almens un element de bibliotèca per començar",republishWarning:"Nòta : d’unes elements seleccionats son marcats ja coma publicats/enviats. Deuriatz sonque tornar enviar los elements pendent l’actualizacion d’una bibliotèca existenta o un mandadís."},h={title:"Bibliotèca somesa",content:"Mercés {{authorName}}. Vòstre bibliotèca es estada somesa per repassa. Podètz seguir l’avançamentaquí"},v={resetLibrary:"Reïnicializar la bibliotèca",removeItemsFromLib:"Tirar los elements seleccionats de la bibliotèca"},S={header:"Exportar imatges",label:{withBackground:"Rèireplan",onlySelected:"Seleccion sonque",darkMode:"Mòde escur",embedScene:"Embarcar la scèna",scale:"Escala",padding:"Espaçament"},tooltip:{embedScene:""},title:{exportToPng:"Exportar en PNG",exportToSvg:"Exportar en SVG",copyPngToClipboard:"Copiar PNG al quichapapièrs"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiar al quichapapièrs"}},z={tooltip:"Vòstres dessenhs son chifrats del cap a la fin en consequéncia los servidors d’Excalidraw los veiràn pas jamai.",link:"Article de blòg sul chiframent del cap a la fin dins Excalidraw"},E={angle:"Angle",element:"Element",elements:"Elements",height:"Nautor",scene:"Scèna",selected:"Seleccionat",storage:"Emmagazinatge",title:"Estatisticas pels nerds",total:"Total",version:"Version",versionCopy:"Clicar per copiar",versionNotAvailable:"Version pas disponibla",width:"Largor"},x={addedToLibrary:"Apondut a la bibliotèca",copyStyles:"Estiles copiats.",copyToClipboard:"Copiats al quichapapièrs.",copyToClipboardAsPng:"{{exportSelection}} copiat coma PNG ({{exportColorScheme}})",fileSaved:"Fichièr enregistrat.",fileSavedToFilename:"Enregistrat jos {filename}",canvas:"canabàs",selection:"seleccion",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},C={transparent:"Transparéncia",black:"Negre",white:"Blanc",red:"Roge",pink:"Ròse",grape:"Bordèu",violet:"Violet",gray:"Gris",blue:"Blau",cyan:"Cian",teal:"Sarcèla",green:"Verd",yellow:"Jaune",orange:"Irange",bronze:"Bronze"},f={app:{center_heading:"Totas las donadas son enregistradas dins vòstre navegador.",center_heading_plus:"Voliatz puslèu utilizar Excalidraw+ a la plaça ?",menuHint:"Exportar, preferéncias, lengas, ..."},defaults:{menuHint:"Exportar, preferéncias, e mai...",center_heading:"Diagram. Tot. Simplament.",toolbarHint:"Prenètz un esplech e començatz de dessenhar !",helpHint:"Acorchis e ajuda"}},A={mostUsedCustomColors:"Colors personalizadas mai utilizadas",colors:"Colors",shades:"Nuanças",hexCode:"Còdi exadecimal",noShades:"Cap de nuança pas disponibla per aquesta color"},T={action:{exportToImage:{title:"Exportar coma imatge",button:"Exportar coma imatge",description:""},saveToDisk:{title:"Salvar al disc",button:"Salvar al disc",description:"Exportar las donadas de la scèna cap a un fichièr que podètz importar mai tard."},excalidrawPlus:{title:"Excalidraw+",button:"Exportar dins Excalidraw+",description:"Enregistrar la scèna dins vòstre espaci de trabalh Excalidraw+."}},modal:{loadFromFile:{title:"Cargar d’un fichièr",button:"Cargar d’un fichièr",description:""},shareableLink:{title:"Cargar d’un ligam",button:"Remplaçar mon contengut",description:""}}},y={title:"De Mermaid cap a Excalidraw",button:"Inserir",description:"",syntax:"Sintaxi Mermaid",preview:"Apercebut"},w={labels:a,library:e,buttons:r,alerts:i,errors:t,toolBar:o,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:p,exportDialog:m,helpDialog:u,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:h,confirmDialog:v,imageExportDialog:S,encrypted:z,stats:E,toast:x,colors:C,welcomeScreen:f,colorPicker:A,overwriteConfirm:T,mermaid:y};export{i as alerts,r as buttons,s as canvasError,b as clearCanvasDialog,A as colorPicker,C as colors,v as confirmDialog,w as default,z as encrypted,p as errorDialog,c as errorSplash,t as errors,m as exportDialog,n as headings,u as helpDialog,l as hints,S as imageExportDialog,a as labels,e as library,y as mermaid,T as overwriteConfirm,g as publishDialog,h as publishSuccessDialog,d as roomDialog,E as stats,x as toast,o as toolBar,f as welcomeScreen}; -//# sourceMappingURL=oc-FR.json-mgdR7xZo.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js.map b/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js.map deleted file mode 100644 index 1fde225..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/oc-FR.json-mgdR7xZo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"oc-FR.json-mgdR7xZo.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js b/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js deleted file mode 100644 index 04e2ebe..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js +++ /dev/null @@ -1,5 +0,0 @@ -const e={paste:"ਪੇਸਟ ਕਰੋ",pasteAsPlaintext:"ਸਾਦੇ ਪਾਠ ਵਜੋਂ ਪੇਸਟ ਕਰੋ",pasteCharts:"ਚਾਰਟ ਪੇਸਟ ਕਰੋ",selectAll:"ਸਾਰੇ ਚੁਣੋ",multiSelect:"ਐਲੀਮੈਂਟ ਨੂੰ ਚੋਣ ਵਿੱਚ ਜੋੜੋ",moveCanvas:"ਕੈਨਵਸ ਹਿਲਾਓ",cut:"ਕੱਟੋ",copy:"ਕਾਪੀ ਕਰੋ",copyAsPng:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ PNG ਵਜੋਂ ਕਾਪੀ ਕਰੋ",copyAsSvg:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ SVG ਵਜੋਂ ਕਾਪੀ ਕਰੋ",copyText:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਪਾਠ ਵਜੋਂ ਕਾਪੀ ਕਰੋ",copySource:"",convertToCode:"",bringForward:"ਅੱਗੇ ਲਿਆਓ",sendToBack:"ਸਭ ਤੋਂ ਪਿੱਛੇ ਭੇਜੋ",bringToFront:"ਸਭ ਤੋਂ ਅੱਗੇ ਲਿਆਓ",sendBackward:"ਪਿੱਛੇ ਭੇਜੋ",delete:"ਮਿਟਾਓ",copyStyles:"ਸਟਾਇਲ ਕਾਪੀ ਕਰੋ",pasteStyles:"ਸਟਾਇਲ ਪੇਸਟ ਕਰੋ",stroke:"ਰੇਖਾ",background:"ਬੈਕਗਰਾਉਂਡ",fill:"ਭਰਨਾ",strokeWidth:"ਰੇਖਾ ਦੀ ਚੌੜਾਈ",strokeStyle:"ਰੇਖਾ ਦਾ ਸਟਾਇਲ",strokeStyle_solid:"ਠੋਸ",strokeStyle_dashed:"ਡੈਸ਼ ਵਾਲੀ",strokeStyle_dotted:"ਬਿੰਦੀਆਂ ਵਾਲੀ",sloppiness:"ਬੇਤਰਤੀਬੀ",opacity:"ਅਪਾਰਦਰਸ਼ਤਾ",textAlign:"ਲਿਖਤ ਇਕਸਾਰਤਾ",edges:"ਕਿਨਾਰੇ",sharp:"ਤਿੱਖੇ",round:"ਗੋਲ",arrowheads:"ਤੀਰ ਦੇ ਸਿਰੇ",arrowhead_none:"ਕੋਈ ਨਹੀਂ",arrowhead_arrow:"ਤੀਰ",arrowhead_bar:"ਡੰਡੀ",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"ਤਿਕੋਣ",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"ਫੌਂਟ ਅਕਾਰ",fontFamily:"ਫੌਂਟ ਪਰਿਵਾਰ",addWatermark:'"Excalidraw ਨਾਲ ਬਣਾਇਆ" ਜੋੜੋ',handDrawn:"ਹੱਥਲਿਖਤ",normal:"ਆਮ",code:"ਕੋਡ",small:"ਛੋਟਾ",medium:"ਮੱਧਮ",large:"ਵੱਡਾ",veryLarge:"ਬਹੁਤ ਵੱਡਾ",solid:"ਠੋਸ",hachure:"ਤਿਰਛੀਆਂ ਗਰਿੱਲਾਂ",zigzag:"ਵਿੰਗ-ਤੜਿੰਗ",crossHatch:"ਜਾਲੀ",thin:"ਪਤਲੀ",bold:"ਮੋਟੀ",left:"ਖੱਬੇ",center:"ਵਿਚਕਾਰ",right:"ਸੱਜੇ",extraBold:"ਬਹੁਤ ਮੋਟੀ",architect:"ਭਵਨ ਨਿਰਮਾਣਕਾਰੀ",artist:"ਕਲਾਕਾਰ",cartoonist:"ਕਾਰਟੂਨਿਸਟ",fileTitle:"ਫਾਈਲ ਦਾ ਨਾਂ",colorPicker:"ਰੰਗ ਚੋਣਕਾਰ",canvasColors:"ਕੈਨਵਸ 'ਤੇ ਵਰਤਿਆ",canvasBackground:"ਕੈਨਵਸ ਦਾ ਬੈਕਗਰਾਉਂਡ",drawingCanvas:"ਡਰਾਇੰਗ ਕੈਨਵਸ",layers:"ਪਰਤਾਂ",actions:"ਕਾਰਵਾਈਆਂ",language:"ਭਾਸ਼ਾ",liveCollaboration:"ਲਾਇਵ ਸਹਿਯੋਗ...",duplicateSelection:"ਡੁਪਲੀਕੇਟ ਬਣਾਓ",untitled:"ਬੇ-ਸਿਰਨਾਵਾਂ",name:"ਨਾਂ",yourName:"ਤੁਹਾਡਾ ਨਾਂ",madeWithExcalidraw:"Excalidraw ਨਾਲ ਬਣਾਇਆ",group:"ਚੋਣ ਦਾ ਗਰੁੱਪ ਬਣਾਓ",ungroup:"ਚੋਣ ਦਾ ਗਰੁੱਪ ਤੋੜੋ",collaborators:"ਸਹਿਯੋਗੀ",showGrid:"ਜਾਲੀ ਦਿਖਾਓ",addToLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਜੋੜੋ",removeFromLibrary:"ਲਾਇਬ੍ਰੇਰੀ 'ਚੋਂ ਹਟਾਓ",libraryLoadingMessage:"ਲਾਇਬ੍ਰੇਰੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…",libraries:"ਲਾਇਬ੍ਰੇਰੀਆਂ ਬਰਾਉਜ਼ ਕਰੋ",loadingScene:"ਦ੍ਰਿਸ਼ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…",align:"ਇਕਸਾਰ",alignTop:"ਉੱਪਰ ਇਕਸਾਰ ਕਰੋ",alignBottom:"ਹੇਠਾਂ ਇਕਸਾਰ ਕਰੋ",alignLeft:"ਖੱਬੇ ਇਕਸਾਰ ਕਰੋ",alignRight:"ਸੱਜੇ ਇਕਸਾਰ ਕਰੋ",centerVertically:"ਲੇਟਵੇਂ ਵਿਚਕਾਰ ਕਰੋ",centerHorizontally:"ਖੜ੍ਹਵੇਂ ਵਿਚਕਾਰ ਕਰੋ",distributeHorizontally:"ਖੜ੍ਹਵੇਂ ਇਕਸਾਰ ਵੰਡੋ",distributeVertically:"ਲੇਟਵੇਂ ਇਕਸਾਰ ਵੰਡੋ",flipHorizontal:"ਲੇਟਵੇਂ ਪਾਸੇ ਪਲਟੋ",flipVertical:"ਖੜ੍ਹਵੇਂ ਪਾਸੇ ਪਲਟੋ",viewMode:"ਦੇਖਣ ਵਾਲਾ ਮੋਡ",share:"ਸਾਂਝਾ ਕਰੋ",showStroke:"ਰੇਖਾ ਦਾ ਰੰਗ ਚੋਣਕਾਰ ਦਿਖਾਓ",showBackground:"ਬੈਕਗਰਾਉਂਡ ਦਾ ਰੰਗ ਚੋਣਕਾਰ ਦਿਖਾਓ",toggleTheme:"ਥੀਮ ਬਦਲੋ",personalLib:"ਨਿੱਜੀ ਲਾਇਬ੍ਰੇਰੀ",excalidrawLib:"ਐਕਸਕਲੀਡਰਾਅ ਲਾਇਬ੍ਰੇਰੀ",decreaseFontSize:"ਫੌਂਟ ਦਾ ਅਕਾਰ ਘਟਾਓ",increaseFontSize:"ਫੌਂਟ ਦਾ ਅਕਾਰ ਵਧਾਓ",unbindText:"ਪਾਠ ਨੂੰ ਵੱਖ ਕਰੋ",bindText:"ਪਾਠ ਨੂੰ ਕੰਟੇਨਰ ਨਾਲ ਬੰਨ੍ਹੋ",createContainerFromText:"ਪਾਠ ਨੂੰ ਕੰਟੇਨਰ ਵਿੱਚ ਇਕੱਠਾ ਕਰੋ",link:{edit:"ਕੜੀ ਸੋਧੋ",editEmbed:"",create:"ਕੜੀ ਬਣਾਓ",createEmbed:"",label:"ਕੜੀ",labelEmbed:"",empty:""},lineEditor:{edit:"ਪੰਕਤੀ ਸੋਧੋ",exit:"ਪੰਕਤੀ ਸੋਧਕ 'ਤੋਂ ਬਾਹਰ ਨਿਕਲੋ"},elementLock:{lock:"ਲਾਕ ਕਰੋ",unlock:"ਅਨਲਾਕ ਕਰੋ",lockAll:"ਸਭ ਲਾਕ ਕਰੋ",unlockAll:"ਸਭ ਅਨਲਾਕ ਕਰੋ"},statusPublished:"ਪ੍ਰਕਾਸ਼ਤ ਹੈ",sidebarLock:"ਸਾਈਡਬਾਰ ਨੂੰ ਖੁੱਲ੍ਹਾ ਰੱਖੋ",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"ਹਾਲੇ ਤੱਕ ਕੋਈ ਚੀਜ ਜੋੜੀ ਨਹੀਂ ਗਈ...",hint_emptyLibrary:"ਇੱਥੇ ਆਈਟਮ ਜੋੜਨ ਲਈ ਉਸਨੂੰ ਕੈਨਵਸ ‘ਤੇ ਚੁਣੋ, ਜਾਂ ਹੇਠਾਂ ਪਬਲਿਕ ਰਿਪਾਜ਼ੀਟਰੀ ‘ਚੋਂ ਲਾਇਬ੍ਰੇਰੀ ਸਥਾਪਤ ਕਰੋ।",hint_emptyPrivateLibrary:"ਇੱਥੇ ਆਈਟਮ ਜੋੜਨ ਲਈ ਉਸਨੂੰ ਕੈਨਵਸ ‘ਤੇ ਚੁਣੋ।"},t={clearReset:"ਕੈਨਵਸ ਰੀਸੈੱਟ ਕਰੋ",exportJSON:"ਫਾਈਲ ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ",exportImage:"ਤਸਵੀਰ ਨਿਰਯਾਤ ਕਰੋ...",export:"ਇਸ ਵਿੱਚ ਸਾਂਭੋ...",copyToClipboard:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ",save:"ਮੌਜੂਦਾ ਫਾਈਲ ਵਿੱਚ ਸਾਂਭੋ",saveAs:"ਇਸ ਵਜੋਂ ਸਾਂਭੋ",load:"ਖੋਲ੍ਹੋ",getShareableLink:"ਸਾਂਝੀ ਕਰਨ ਵਾਲੀ ਲਿੰਕ ਲਵੋ",close:"ਬੰਦ ਕਰੋ",selectLanguage:"ਭਾਸ਼ਾ ਚੁਣੋ",scrollBackToContent:"ਸਮੱਗਰੀ 'ਤੇ ਵਾਪਸ ਸਕਰੋਲ ਕਰੋ",zoomIn:"ਜ਼ੂਮ ਵਧਾਓ",zoomOut:"ਜ਼ੂਮ ਘਟਾਓ",resetZoom:"ਜ਼ੂਮ ਰੀਸੈੱਟ ਕਰੋ",menu:"ਮੇਨੂ",done:"ਹੋ ਗਿਆ",edit:"ਸੋਧੋ",undo:"ਅਣਕੀਤਾ ਕਰੋ",redo:"ਮੁੜ-ਕਰੋ",resetLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਰੀਸੈੱਟ ਕਰੋ",createNewRoom:"ਨਵਾਂ ਕਮਰਾ ਬਣਾਓ",fullScreen:"ਪੂਰੀ ਸਕਰੀਨ",darkMode:"ਡਾਰਕ ਮੋਡ",lightMode:"ਲਾਇਟ ਮੋਡ",zenMode:"ਜ਼ੈੱਨ ਮੋਡ",objectsSnapMode:"",exitZenMode:"ਜ਼ੈੱਨ ਮੋਡ 'ਚੋਂ ਬਾਹਰ ਨਿਕਲੋ",cancel:"ਰੱਦ ਕਰੋ",clear:"ਸਾਫ਼ ਕਰੋ",remove:"ਹਟਾਓ",embed:"",publishLibrary:"ਪ੍ਰਕਾਸ਼ਤ ਕਰੋ",submit:"ਜਮ੍ਹਾ ਕਰਵਾਓ",confirm:"ਪੁਸ਼ਟੀ ਕਰੋ",embeddableInteractionButton:""},r={clearReset:"ਇਹ ਸਾਰਾ ਕੈਨਵਸ ਸਾਫ ਕਰ ਦੇਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਪੱਕਾ ਇੰਝ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",couldNotCreateShareableLink:"ਸਾਂਝੀ ਕਰਨ ਵਾਲੀ ਲਿੰਕ ਨਹੀਂ ਬਣਾ ਸਕੇ।",couldNotCreateShareableLinkTooBig:"ਸਾਂਝੀ ਕਰਨ ਵਾਲੀ ਲਿੰਕ ਨਹੀਂ ਬਣਾ ਸਕੇ: ਦ੍ਰਿਸ਼ ਬਹੁਤ ਵੱਡਾ ਹੈ",couldNotLoadInvalidFile:"ਨਜਾਇਜ਼ ਫਾਈਲ ਲੋਡ ਨਹੀਂ ਕਰ ਸਕੇ",importBackendFailed:"ਬੈਕਐੱਨਡ ਤੋਂ ਆਯਾਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਹੇ।",cannotExportEmptyCanvas:"ਖਾਲੀ ਕੈਨਵਸ ਨੂੰ ਨਿਰਯਾਤ ਨਹੀਂ ਕਰ ਸਕਦੇ।",couldNotCopyToClipboard:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।",decryptFailed:"ਡਾਟਾ ਡੀਕਰਿਪਟ ਨਹੀਂ ਕਰ ਸਕੇ।",uploadedSecurly:"ਅੱਪਲੋਡ ਸਿਰੇ-ਤੋਂ-ਸਿਰੇ ਤੱਕ ਇਨਕਰਿਪਸ਼ਨ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਹੋਈ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਇਹ ਹੈ ਕਿ Excalidraw ਸਰਵਰ ਅਤੇ ਤੀਜੀ ਧਿਰ ਦੇ ਬੰਦੇ ਸਮੱਗਰੀ ਨੂੰ ਪੜ੍ਹ ਨਹੀਂ ਸਕਦੇ।",loadSceneOverridePrompt:"ਬਾਹਰੀ ਡਰਾਇੰਗ ਨੂੰ ਲੋਡ ਕਰਨਾ ਤੁਹਾਡੀ ਮੌਜੂਦਾ ਸਮੱਗਰੀ ਦੀ ਥਾਂ ਲੈ ਲਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?",collabStopOverridePrompt:`ਇਜਲਾਸ ਨੂੰ ਰੋਕਣਾ ਪਿਛਲੀ ਲੋਕਲ ਸਾਂਭੀ ਡਰਾਇੰਗ ਦੀ ਥਾਂ ਲੈ ਲਵੇਗਾ। ਪੱਕਾ ਇੰਝ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ? - -(ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਲੋਕਲ ਡਰਾਇੰਗ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਇਹ ਕਰਨ ਦੀ ਬਜਾਏ ਬੱਸ ਆਪਣਾ ਟੈਬ ਬੰਦ ਕਰ ਦਿਉ।)`,errorAddingToLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਸਮੱਗਰੀ ਨਹੀਂ ਜੋੜ ਸਕੇ",errorRemovingFromLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚੋਂ ਸਮੱਗਰੀ ਨਹੀਂ ਹਟਾ ਸਕੇ",confirmAddLibrary:"ਇਹ ਤੁਹਾਡੀ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ {{numShapes}} ਆਕ੍ਰਿਤੀ(ਆਂ) ਨੂੰ ਜੋੜ ਦੇਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਪੱਕਾ ਇੰਝ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",imageDoesNotContainScene:"ਇਸ ਤਸਵੀਰ ਵਿੱਚ ਦ੍ਰਿਸ਼ ਦਾ ਕੋਈ ਵੀ ਡਾਟਾ ਨਜ਼ਰ ਨਹੀਂ ਆ ਰਿਹਾ। ਕੀ ਤੁਸੀਂ ਨਿਰਯਾਤ ਕਰਦੇ ਸਮੇਂ ਦ੍ਰਿਸ਼ ਨੂੰ ਮੜ੍ਹਣਾ ਸਮਰੱਥ ਕੀਤਾ ਸੀ?",cannotRestoreFromImage:"ਇਸ ਤਸਵੀਰ ਫਾਈਲ ਤੋਂ ਦ੍ਰਿਸ਼ ਬਹਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ",invalidSceneUrl:"ਦਿੱਤੀ ਗਈ URL 'ਚੋਂ ਦ੍ਰਿਸ਼ ਨੂੰ ਆਯਾਤ ਨਹੀਂ ਕਰ ਸਕੇ। ਇਹ ਜਾਂ ਤਾਂ ਖਰਾਬ ਹੈ, ਜਾਂ ਇਸ ਵਿੱਚ ਜਾਇਜ਼ Excalidraw JSON ਡਾਟਾ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ।",resetLibrary:"ਇਹ ਤੁਹਾਡੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਸਾਫ ਕਰ ਦੇਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਪੱਕਾ ਇੰਝ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",removeItemsFromsLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚੋਂ {{count}} ਚੀਜ਼(-ਜ਼ਾਂ) ਮਿਟਾਉਣੀਆਂ ਹਨ?",invalidEncryptionKey:"ਇਨਕਰਿਪਸ਼ਨ ਕੁੰਜੀ ‌‌22 ਅੱਖਰਾਂ ਦੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਲਾਇਵ ਸਹਿਯੋਗ ਬੰਦ ਹੈ।",collabOfflineWarning:`ਕੋਈ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ -ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਸਾਂਭੀਆਂ ਨਹੀਂ ਜਾਣਗੀਆਂ।`},a={unsupportedFileType:"ਫਾਈਲ ਦੀ ਕਿਸਮ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।",imageInsertError:"ਚਿੱਤਰ ਸ਼ਾਮਲ ਨਹੀਂ ਜਾ ਸਕਿਆ, ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ...",fileTooBig:"ਫਾਈਲ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ ਹੈ। ਵੱਧ-ਤੋਂ-ਵੱਧ ਪ੍ਰਵਾਨਤ ਅਕਾਰ {{maxSize}} ਹੈ।",svgImageInsertError:"SVG ਤਸਵੀਰ ਸ਼ਾਮਲ ਨਹੀਂ ਕਰ ਸਕੇ। SVG ਮਾਰਕ-ਅੱਪ ਨਜਾਇਜ਼ ਲੱਗ ਰਿਹਾ ਹੈ।",failedToFetchImage:"",invalidSVGString:"SVG ਨਜਾਇਜ਼ ਹੈ।",cannotResolveCollabServer:"",importLibraryError:"ਲਾਇਬ੍ਰੇਰੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"ਚੋਣਕਾਰ",image:"ਤਸਵੀਰ ਸ਼ਾਮਲ ਕਰੋ",rectangle:"ਆਇਤ",diamond:"ਹੀਰਾ",ellipse:"ਅੰਡਾਕਾਰ",arrow:"ਤੀਰ",line:"ਲਕੀਰ",freedraw:"ਵਾਹੋ",text:"ਪਾਠ",library:"ਲਾਇਬ੍ਰੇਰੀ",lock:"ਡਰਾਇੰਗ ਤੋਂ ਬਾਅਦ ਵੀ ਚੁਣੇ ਹੋਏ ਸੰਦ ਨੂੰ ਸਰਗਰਮ ਰੱਖੋ ",penMode:"ਪੈੱਨ ਮੋਡ - ਟੱਚ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ",link:"",eraser:"ਰਬੜ",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"ਕੈਨਵਸ ਦੀਆਂ ਕਾਰਵਾਈਆਂ",selectedShapeActions:"ਚੁਣੀ ਆਕ੍ਰਿਤੀ ਦੀਆਂ ਕਾਰਵਾਈਆਂ",shapes:"ਆਕ੍ਰਿਤੀਆਂ"},l={canvasPanning:"",linearElement:"ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਬਿੰਦੂਆਂ ਲਈ ਕਲਿੱਕ ਕਰਕੇ ਸ਼ੁਰੂਆਤ ਕਰੋ, ਇਕਹਿਰੀ ਲਕੀਰ ਲਈ ਘਸੀਟੋ",freeDraw:"ਕਲਿੱਕ ਕਰਕੇ ਘਸੀਟੋ, ਪੂਰਾ ਹੋਣ 'ਤੇ ਛੱਡ ਦਿਉ",text:"ਨੁਸਖਾ: ਤੁਸੀਂ ਚੋਣਕਾਰ ਸੰਦ ਰਾਹੀਂ ਕਿਤੇ ਵੀ ਡਬਲ-ਕਲਿੱਕ ਕਰਕੇ ਵੀ ਪਾਠ ਜੋੜ ਸਕਦੇ ਹੋ",embeddable:"",text_selected:"ਪਾਠ ਨੂੰ ਸੋਧਣ ਲਈ ਡਬਲ-ਕਲਿੱਕ ਕਰੋ ਜਾਂ ਐਂਟਰ ਦਬਾਓ",text_editing:"ਸੋਧ ਮੁਕੰਮਲ ਕਰਨ ਲਈ ਐਸਕੇਪ (Esc) ਜਾਂ Ctrl-ਜਾਂ-Cmd+ਐਂਟਰ (enter) ਦਬਾਓ",linearElementMulti:"ਮੁਕੰਮਲ ਕਰਨ ਲਈ ਆਖਰੀ ਬਿੰਦੂ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਜਾਂ ਇਸਕੇਪ ਜਾਂ ਐਂਟਰ ਦਬਾਓ",lockAngle:"ਤੁਸੀਂ SHIFT ਦਬਾਈ ਰੱਖ ਕੇ ਕੋਣਾਂ ਨੂੰ ਕਾਬੂ ਕਰ ਸਕਦੇ ਹੋ",resize:"ਤੁਸੀਂ ਅਕਾਰ ਬਦਲਦੇ ਸਮੇਂ SHIFT ਦਬਾਈ ਰੱਖ ਕੇ ਅਨੁਪਾਤ ਨੂੰ ਕਾਬੂ ਕਰ ਸਕਦੇ ਹੋ, ਵਿਚਕਾਰ ਤੋਂ ਅਕਾਰ ਬਦਲਣ ਲਈ ALT ਦਬਾਓ",resizeImage:"",rotate:"ਤੁਸੀਂ ਘੁਮਾਉਂਦੇ ਹੋਏ SHIFT ਦਬਾਈ ਰੱਖ ਕੇ ਕੋਣਾਂ ਨੂੰ ਕਾਬੂ ਕਰ ਸਕਦੇ ਹੋ",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"ਆਪਣੀ ਲਾਇਬ੍ਰੇਰੀ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ",bindTextToElement:"ਪਾਠ ਜੋੜਨ ਲਈ ਐੰਟਰ ਦਬਾਓ",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"ਝਲਕ ਨਹੀਂ ਦਿਖਾ ਸਕਦੇ",canvasTooBig:"ਸ਼ਾਇਦ ਕੈਨਵਸ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡਾ ਹੈ।",canvasTooBigTip:"ਨੁਸਖਾ: ਸਭ ਤੋਂ ਦੂਰ ਸਥਿੱਤ ਐਲੀਮੈਂਟਾਂ ਨੂੰ ਥੋੜ੍ਹਾ ਜਿਹਾ ਨੇੜੇ ਲਿਆ ਕੇ ਦੇਖੋ।"},c={headingMain:"ਕੋਈ ਸਮੱਸਿਆ ਖੜ੍ਹੀ ਹੋਈ। ਕਰਕੇ ਦੇਖੋ।",clearCanvasMessage:"ਜੇ ਮੁੜ-ਲੋਡ ਕਰਨਾ ਕੰਮ ਨਾ ਕਰੇ, ਤਾਂ ਇਹ ਕਰਕੇ ਦੇਖੋ ",clearCanvasCaveat:" ਇਹ ਸਾਰਾ ਕੰਮ ਗਵਾ ਦੇਵੇਗਾ ",trackedToSentry:"ਸੂਚਕ {{eventId}} ਵਾਲੀ ਸਮੱਸਿਆ ਸਾਡੇ ਸਿਸਟਮ 'ਤੇ ਟਰੈਕ ਕੀਤੀ ਗਈ ਸੀ।",openIssueMessage:"ਅਸੀਂ ਬੜੇ ਸਾਵਧਾਨ ਸੀ ਕਿ ਗਲਤੀ ਵਿੱਚ ਤੁਹਾਡੇ ਦ੍ਰਿਸ਼ ਦੀ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਨਾ ਕਰੀਏ। ਜੇ ਤੁਹਾਡਾ ਦ੍ਰਿਸ਼ ਨਿੱਜੀ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ 'ਤੇ ਸਾਡੇ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜੀ ਹੇਠਾਂ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਨੂੰ ਕਾਪੀ ਕਰਕੇ ਗਿੱਟਹੱਬ ਮੁੱਦੇ ਵਿੱਚ ਪੇਸਟ ਕਰਕੇ ਸ਼ਾਮਲ ਕਰੋ ਜੀ।",sceneContent:"ਦ੍ਰਿਸ਼ ਦੀ ਸਮੱਗਰੀ:"},d={desc_intro:"ਤੁਸੀਂ ਲੋਕਾਂ ਨੂੰ ਆਪਣੇ ਨਾਲ ਮੌਜੂਦਾ ਦ੍ਰਿਸ਼ 'ਤੇ ਸਹਿਯੋਗ ਕਰਨ ਲਈ ਸੱਦਾ ਭੇਜ ਸਕਦੇ ਹੋ।",desc_privacy:"ਫਿਕਰ ਨਾ ਕਰੋ, ਇਜਲਾਸ ਸਿਰੇ-ਤੋਂ-ਸਿਰੇ ਤੱਕ ਇਨਕਰਿਪਸ਼ਨ ਵਰਤਦਾ ਹੈ, ਸੋ ਜੋ ਕੁਝ ਵੀ ਤੁਸੀਂ ਵਾਹੁੰਦੇ ਹੋ ਉਹ ਨਿੱਜੀ ਹੀ ਰਹਿੰਦਾ ਹੈ। ਇੱਥੋਂ ਤੱਕ ਕਿ ਸਾਡੇ ਸਰਵਰ ਵੀ ਨਹੀਂ ਜਾਣ ਸਕਣਗੇ ਕਿ ਤੁਸੀਂ ਕੀ ਬਣਾਇਆ ਹੈ।",button_startSession:"ਇਜਲਾਸ ਸ਼ੁਰੂ ਕਰੋ",button_stopSession:"ਇਜਲਾਸ ਰੋਕੋ",desc_inProgressIntro:"ਲਾਇਵ ਸਹਿਯੋਗ ਇਜਲਾਸ ਹੁਣ ਚੱਲ ਰਿਹਾ ਹੈ।",desc_shareLink:"ਇਸ ਲਿੰਕ ਨੂੰ ਉਹਨਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ ਜਿਹਨਾਂ ਨਾਲ ਤੁਸੀਂ ਸਹਿਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ:",desc_exitSession:"ਇਜਲਾਸ ਨੂੰ ਰੋਕਣਾ ਤੁਹਾਡਾ ਕਮਰੇ ਨਾਲੋਂ ਨਾਤਾ ਤੋੜ ਦੇਵੇਗਾ, ਪਰ ਤੁਸੀਂ ਸਥਾਨਕ ਪੱਧਰ 'ਤੇ ਦ੍ਰਿਸ਼ ਨਾਲ ਕੰਮ ਕਰਨਾ ਜਾਰੀ ਰੱਖ ਸਕੋਗੇ। ਇਹ ਧਿਆਨ 'ਚ ਰੱਖੋ ਕਿ ਇਹ ਬਾਕੀ ਲੋਕਾਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਕਰੇਗਾ , ਅਤੇ ਉਹ ਹਾਲੇ ਵੀ ਆਪਣੇ ਸੰਸਕਰਨ 'ਤੇ ਸਹਿਯੋਗ ਕਰਨ ਦੇ ਕਾਬਲ ਹੋਣਗੇ।",shareTitle:"Excalidraw 'ਤੇ ਲਾਈਵ ਇਜਲਾਸ ਦਾ ਹਿੱਸਾ ਬਣੋ"},m={title:"ਗਲਤੀ"},p={disk_title:"ਡਿਸਕ ਵਿੱਚ ਸਾਂਭੋ",disk_details:"ਦ੍ਰਿਸ਼ ਦਾ ਡਾਟਾ ਫਾਈਲ ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ ਜਿੱਥੋਂ ਤੁਸੀਂ ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਆਯਾਤ ਕਰ ਸਕਦੇ ਹੋ।",disk_button:"ਫਾਈਲ ਵਿੱਚ ਸਾਂਭੋ",link_title:"ਸਾਂਝੀ ਕਰਨ ਵਾਲੀ ਲਿੰਕ",link_details:"ਸਿਰਫ ਦੇਖੇ-ਜਾਣ ਵਾਲੀ ਲਿੰਕ ਵਜੋਂ ਨਿਰਯਾਤ ਕਰੋ।",link_button:"ਲਿੰਕ ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ",excalidrawplus_description:"ਆਪਣੇ ਦ੍ਰਿਸ਼ ਦੇ ਡਾਟੇ ਨੂੰ Excalidraw+ ਵਰਕਸਪੇਸ ਵਿੱਚ ਸਾਂਭੋ।",excalidrawplus_button:"ਨਿਰਯਾਤ ਕਰੋ",excalidrawplus_exportError:"ਇਸ ਸਮੇਂ Excalidraw+ ਵਿੱਚ ਨਿਰਯਾਤ ਨਹੀਂ ਕਰ ਸਕੇ..."},g={blog:"ਸਾਡਾ ਬਲੌਗ ਪੜ੍ਹੋ",click:"ਕਲਿੱਕ",deepSelect:"",deepBoxSelect:"",curvedArrow:"ਵਿੰਗਾ ਤੀਰ",curvedLine:"ਵਿੰਗੀ ਲਕੀਰ",documentation:"ਕਾਗਜ਼ਾਤ",doubleClick:"ਡਬਲ-ਕਲਿੱਕ",drag:"ਘਸੀਟੋ",editor:"ਸੋਧਕ",editLineArrowPoints:"",editText:"",github:"ਕੋਈ ਸਮੱਸਿਆ ਲੱਭੀ? ਜਮ੍ਹਾਂ ਕਰਵਾਓ",howto:"ਸਾਡੀਆਂ ਗਾਈਡਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ",or:"ਜਾਂ",preventBinding:"ਤੀਰ ਬੱਝਣਾ ਰੋਕੋ",tools:"ਟੂਲ",shortcuts:"ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ",textFinish:"ਸੋਧਣਾ ਮੁਕੰਮਲ ਕਰੋ (ਪਾਠ ਸੋਧਕ)",textNewLine:"ਨਵੀਂ ਪੰਕਤੀ ਜੋੜੋ (ਪਾਠ ਸੋਧਕ)",title:"ਮਦਦ",view:"ਦਿੱਖ",zoomToFit:"ਸਾਰੇ ਐਲੀਮੈਂਟਾਂ ਨੂੰ ਫਿੱਟ ਕਰਨ ਲਈ ਜ਼ੂਮ ਕਰੋ",zoomToSelection:"ਚੋਣ ਤੱਕ ਜ਼ੂਮ ਕਰੋ",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:"ਕੈਨਵਸ ਨੂੰ ਸਾਫ਼ ਕਰੋ"},u={title:"ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਪ੍ਰਕਾਸ਼ਤ ਕਰੋ",itemName:"ਚੀਜ਼ ਦਾ ਨਾਂ",authorName:"ਲੇਖਕ ਦਾ ਨਾਂ",githubUsername:"ਗਿੱਟਹੱਬ ਵਰਤੋਂਕਾਰ ਨਾਂ",twitterUsername:"ਟਵਿੱਟਰ ਦਾ ਵਰਤੋਂਕਾਰ-ਨਾਂ",libraryName:"ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਨਾਂ",libraryDesc:"ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਵੇਰਵਾ",website:"ਵੈੱਬਸਾਇਟ",placeholder:{authorName:"ਤੁਹਾਡਾ ਨਾਂ ਜਾਂ ਵਰਤੋਂਕਾਰ-ਨਾਂ",libraryName:"ਤੁਹਾਡੀ ਲਾਇਬਰ੍ਰੀ ਦਾ ਨਾਂ",libraryDesc:"ਤੁਹਾਡੀ ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਵੇਰਵਾ ਤਾਂ ਜੋ ਲੋਕਾਂ ਨੂੰ ਇਸ ਤੋੰਂ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਸਬੰਧੀ ਮਦਦ ਮਿਲ ਸਕੇ",githubHandle:"",twitterHandle:"",website:""},errors:{required:"ਲੋੜੀਂਦਾ",website:"ਜਾਇਜ਼ URL ਭਰੋ"},noteDescription:"ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਤੁਹਾਡੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਵਰਤਣ ਲਈ ਸਕਣ ਇਸ ਲਈਜਨਤਕ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਰਿਪਾਜ਼ੀਟਰੀ ਵਿੱਚ ਆਪਣੀ ਲਾਇਬ੍ਰੇਰੀ ਸ਼ਾਮਲ ਕਰਵਾਉਣ ਲਈ ਜਮ੍ਹਾ ਕਰਵਾਓ",noteGuidelines:"ਦਿਸ਼ਾ ਨਿਰਦੇਸ਼",noteLicense:"MIT ਲਾਇਸੈਂਸ, ",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"ਲਾਇਬ੍ਰੇਰੀ ਜਮ੍ਹਾਂ ਕਰਵਾਈ",content:"ਧੰਨਵਾਦ {{authorName}} ਜੀਉ। ਤੁਹਾਡੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਸਮੀਖਿਆ ਲਈ ਭੇਜ ਦਿੱਤਾ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਉਸਦੀ ਸਥਿਤੀ ਇੱਥੇ ਦੇਖ ਸਕਦੇ ਹੋ।"},y={resetLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਰੀਸੈੱਟ ਕਰੋ",removeItemsFromLib:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚੋਂ ਚੁਣੀਆਂ ਹੋਈਆਂ ਆਈਟਮਾਂ ਹਟਾਓ"},S={header:"ਤਸਵੀਰ ਨਿਰਯਾਤ ਕਰੋ",label:{withBackground:"ਪਿਛੋਕੜ",onlySelected:"ਸਿਰਫ ਚੁਣੇ ਹੋਏ",darkMode:"ਡਾਰਕ ਮੋਡ",embedScene:"ਦ੍ਰਿਸ਼ ਮੜ੍ਹੋ",scale:"ਸਕੇਲ",padding:"ਪੈਡਿੰਗ"},tooltip:{embedScene:""},title:{exportToPng:"PNG ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ",exportToSvg:"SVG ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ",copyPngToClipboard:"PNG ਨੂੰ ਕਲਿੱਪੋਬਰਡ ‘ਤੇ ਕਾਪੀ ਕਰੋ"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"ਗੱਤੇ 'ਤੇ ਕਾਪੀ ਕਰੋ"}},v={tooltip:"ਤੁਹਾਡੀ ਡਰਾਇੰਗਾਂ ਸਿਰੇ-ਤੋਂ-ਸਿਰੇ ਤੱਕ ਇਨਕਰਿਪਟ ਕੀਤੀਆਂ ਹੋਈਆਂ ਹਨ, ਇਸ ਲਈ Excalidraw ਦੇ ਸਰਵਰ ਉਹਨਾਂ ਨੂੰ ਕਦੇ ਵੀ ਨਹੀਂ ਦੇਖਣਗੇ।",link:"Excalidraw ਵਿੱਚ ਸਿਰੇ-ਤੋਂ-ਸਿਰੇ ਤੱਕ ਇਨਕ੍ਰਿਪਸ਼ਨ 'ਤੇ ਬਲੌਗ ਸੰਪਾਦਨਾ"},w={angle:"ਕੋਣ",element:"ਐਲੀਮੈਂਟ",elements:"ਐਲੀਮੈਂਟ",height:"ਉਚਾਈ",scene:"ਦ੍ਰਿਸ਼",selected:"ਚੁਣੇ",storage:"ਸਟੋਰੇਜ",title:"ਪੜਾਕੂਆਂ ਲਈ ਅੰਕੜੇ",total:"ਕੁੱਲ",version:"ਸੰਸਕਰਨ",versionCopy:"ਕਾਪੀ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ",versionNotAvailable:"ਸੰਸਕਰਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ",width:"ਚੌੜਾਈ"},x={addedToLibrary:"ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਜੋੜਿਆ",copyStyles:"ਕਾਪੀ ਕੀਤੇ ਸਟਾਇਲ।",copyToClipboard:"ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕੀਤਾ।",copyToClipboardAsPng:"{{exportSelection}} ਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ PNG ਵਜੋਂ ਕਾਪੀ ਕੀਤਾ ({{exportColorScheme}})",fileSaved:"ਫਾਈਲ ਸਾਂਭੀ ਗਈ।",fileSavedToFilename:"{filename} ਵਿੱਚ ਸਾਂਭੀ",canvas:"ਕੈਨਵਸ",selection:"ਚੋਣ",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"ਪਾਰਦਰਸ਼ੀ",black:"ਕਾਲੀ",white:"ਸਫ਼ੈਦ",red:"ਲਾਲ",pink:"ਗੁਲਾਬੀ",grape:"ਅੰਗੂਰੀ",violet:"ਜਾਮਣੀ",gray:"ਸੁਰਮਈ",blue:"ਨੀਲਾ",cyan:"ਫਿਰੋਜੀ",teal:"ਟੀਲ",green:"ਹਰਾ",yellow:"ਪੀਲਾ",orange:"ਸੰਤਰੀ",bronze:"ਕਾਂਸੇਰੰਗਾ"},T={app:{center_heading:"ਤੁਹਾਡਾ ਸਾਰਾ ਡਾਟਾ ਤੁਹਾਡੇ ਲੋਕਲ ਬਰਾਉਜ਼ਰ ਵਿੱਚ ਸਾਂਭਿਆ ਹੋਇਆ ਹੈ।",center_heading_plus:"",menuHint:"ਨਿਰਯਾਤ, ਤਰਜੀਹਾਂ, ਭਾਸ਼ਾਵਾਂ, …"},defaults:{menuHint:"ਨਿਰਯਾਤ, ਤਰਜੀਹਾਂ, ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ…",center_heading:"ਡਾਇਆਗ੍ਰਾਮਾਂ। ਕੀਤੀਆਂ। ਸੁਖਾਲੀਆਂ।",toolbarHint:"",helpHint:"ਸ਼ਾਰਟਕੱਟ ਤੇ ਮਦਦ"}},_={mostUsedCustomColors:"ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਕਸਟਮ ਰੰਗ",colors:"ਰੰਗ",shades:"ਸ਼ੇਡਾਂ",hexCode:"ਹੈਕਸ ਕੋਡ",noShades:"ਇਸ ਰੰਗ ਦੀ ਕੋਈ ਸ਼ੇਡ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"},E={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},L={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:_,overwriteConfirm:E,mermaid:L};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,k as colors,y as confirmDialog,C as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,g as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,L as mermaid,E as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=pa-IN.json-6nU3HEBq.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js.map b/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js.map deleted file mode 100644 index b2a42e4..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pa-IN.json-6nU3HEBq.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pa-IN.json-6nU3HEBq.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js b/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js deleted file mode 100644 index 40819d6..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Wklej",pasteAsPlaintext:"Wklej jako zwykły tekst",pasteCharts:"Wklej wykresy",selectAll:"Zaznacz wszystko",multiSelect:"Dodaj element do zaznaczenia",moveCanvas:"Przesuń obszar roboczy",cut:"Wytnij",copy:"Kopiuj",copyAsPng:"Skopiuj do schowka jako plik PNG",copyAsSvg:"Skopiuj do schowka jako plik SVG",copyText:"Skopiuj do schowka jako tekst",copySource:"Skopiuj źródło do schowka",convertToCode:"Skonwertuj do kodu",bringForward:"Przenieś wyżej",sendToBack:"Przenieś na spód",bringToFront:"Przenieś na wierzch",sendBackward:"Przenieś niżej",delete:"Usuń",copyStyles:"Kopiuj style",pasteStyles:"Wklej style",stroke:"Kolor obramowania",background:"Kolor wypełnienia",fill:"Wypełnienie",strokeWidth:"Grubość obramowania",strokeStyle:"Styl obrysu",strokeStyle_solid:"Pełny",strokeStyle_dashed:"Kreskowany",strokeStyle_dotted:"Kropkowany",sloppiness:"Styl kreski",opacity:"Przeźroczystość",textAlign:"Wyrównanie tekstu",edges:"Krawędzie",sharp:"Ostry",round:"Zaokrąglij",arrowheads:"Groty",arrowhead_none:"Brak",arrowhead_arrow:"Strzałka",arrowhead_bar:"Kreska",arrowhead_circle:"Okrąg",arrowhead_circle_outline:"Okrąg (obrys)",arrowhead_triangle:"Trójkąt",arrowhead_triangle_outline:"Trójkąt (obrys)",arrowhead_diamond:"Romb",arrowhead_diamond_outline:"Romb (obrys)",fontSize:"Rozmiar tekstu",fontFamily:"Krój pisma",addWatermark:'Dodaj "Zrobione w Excalidraw"',handDrawn:"Odręczny",normal:"Normalny",code:"Kod",small:"Mały",medium:"Średni",large:"Duży",veryLarge:"Bardzo duży",solid:"Pełne",hachure:"Linie",zigzag:"Zygzak",crossHatch:"Zakreślone",thin:"Cienkie",bold:"Pogrubione",left:"Do lewej",center:"Do środka",right:"Do prawej",extraBold:"Ekstra pogrubione",architect:"Dokładny",artist:"Artystyczny",cartoonist:"Rysunkowy",fileTitle:"Nazwa pliku",colorPicker:"Paleta kolorów",canvasColors:"Używane na płótnie",canvasBackground:"Kolor dokumentu",drawingCanvas:"Obszar roboczy",layers:"Warstwy",actions:"Akcje",language:"Język",liveCollaboration:"Współpraca w czasie rzeczywistym...",duplicateSelection:"Powiel",untitled:"Bez tytułu",name:"Nazwa",yourName:"Twoje imię",madeWithExcalidraw:"Zrobione w Excalidraw",group:"Zgrupuj wybrane",ungroup:"Rozgrupuj wybrane",collaborators:"Współtwórcy",showGrid:"Pokaż siatkę",addToLibrary:"Dodaj do biblioteki",removeFromLibrary:"Usuń z biblioteki",libraryLoadingMessage:"Wczytywanie biblioteki…",libraries:"Przeglądaj biblioteki",loadingScene:"Wczytywanie sceny…",align:"Wyrównaj",alignTop:"Wyrównaj do góry",alignBottom:"Wyrównaj do dołu",alignLeft:"Wyrównaj do lewej",alignRight:"Wyrównaj do prawej",centerVertically:"Wyśrodkuj w pionie",centerHorizontally:"Wyśrodkuj w poziomie",distributeHorizontally:"Rozłóż poziomo",distributeVertically:"Rozłóż pionowo",flipHorizontal:"Odwróć w poziomie",flipVertical:"Odwróć w pionie",viewMode:"Tryb widoku",share:"Udostępnij",showStroke:"Pokaż próbnik kolorów obrysu",showBackground:"Pokaż próbnik koloru tła",toggleTheme:"Przełącz motyw",personalLib:"Biblioteka prywatna",excalidrawLib:"Biblioteka Excalidraw",decreaseFontSize:"Zmniejsz rozmiar czcionki",increaseFontSize:"Zwiększ rozmiar czcionki",unbindText:"Odłącz tekst od kontenera",bindText:"Połącz tekst z kontenerem",createContainerFromText:"Zawijaj tekst w kontenerze",link:{edit:"Edytuj łącze",editEmbed:"Edytuj i osadź link",create:"Utwórz łącze",createEmbed:"Stwórz i osadź link",label:"Łącze",labelEmbed:"Podlinkuj i osadź",empty:"Nie ustawiono linku"},lineEditor:{edit:"Edytuj linię",exit:"Wyjdź z edytora linii"},elementLock:{lock:"Zablokuj",unlock:"Odblokuj",lockAll:"Zablokuj wszystko",unlockAll:"Odblokuj wszystko"},statusPublished:"Opublikowano",sidebarLock:"Panel boczny zawsze otwarty",selectAllElementsInFrame:"Zaznacz wszystkie elementy w ramce",removeAllElementsFromFrame:"Usuń wszystkie elementy z ramki",eyeDropper:"Wybierz kolor z płótna",textToDiagram:"Tekst do diagramu",prompt:""},o={noItems:"Nie dodano jeszcze żadnych elementów...",hint_emptyLibrary:"Wybierz element na płótnie, aby go tutaj dodać, lub zainstaluj bibliotekę z poniższego publicznego repozytorium.",hint_emptyPrivateLibrary:"Wybierz element, aby dodać go tutaj."},a={clearReset:"Wyczyść dokument i zresetuj kolor dokumentu",exportJSON:"Eksportuj do pliku",exportImage:"Eksportuj obraz...",export:"Zapisz jako...",copyToClipboard:"Skopiuj do schowka",save:"Zapisz do bieżącego pliku",saveAs:"Zapisz jako",load:"Otwórz",getShareableLink:"Udostępnij",close:"Zamknij",selectLanguage:"Wybierz język",scrollBackToContent:"Wróć do obszaru roboczego",zoomIn:"Powiększ",zoomOut:"Pomniejsz",resetZoom:"Zresetuj powiększenie",menu:"Menu",done:"Gotowe",edit:"Edytuj",undo:"Cofnij",redo:"Przywróć",resetLibrary:"Resetuj bibliotekę",createNewRoom:"Utwórz nowy pokój",fullScreen:"Pełny ekran",darkMode:"Ciemny motyw",lightMode:"Jasny motyw",zenMode:"Tryb Zen",objectsSnapMode:"Przyciąganie do obiektów",exitZenMode:"Wyjdź z trybu Zen",cancel:"Anuluj",clear:"Wyczyść",remove:"Usuń",embed:"Przełącz osadzenie",publishLibrary:"Opublikuj",submit:"Prześlij",confirm:"Zatwierdź",embeddableInteractionButton:"Kliknij, aby wejść w interakcję"},i={clearReset:"To spowoduje usunięcie wszystkiego z dokumentu. Czy chcesz kontynuować?",couldNotCreateShareableLink:"Wystąpił błąd przy generowaniu linka do udostępniania.",couldNotCreateShareableLinkTooBig:"Nie można utworzyć linku do udostępnienia: scena jest za duża",couldNotLoadInvalidFile:"Nie udało się otworzyć pliku. Wybrany plik jest nieprawidłowy.",importBackendFailed:"Wystąpił błąd podczas importowania pliku.",cannotExportEmptyCanvas:"Najpierw musisz coś narysować, aby zapisać dokument.",couldNotCopyToClipboard:"Nie udało się skopiować do schowka.",decryptFailed:"Nie udało się odszyfrować danych.",uploadedSecurly:"By zapewnić Ci prywatność, udostępnianie projektu jest zabezpieczone szyfrowaniem end-to-end, co oznacza, że poza tobą i osobą z którą podzielisz się linkiem, nikt nie ma dostępu do tego co udostępniasz.",loadSceneOverridePrompt:"Wczytanie zewnętrznego rysunku zastąpi istniejącą zawartość. Czy chcesz kontynuować?",collabStopOverridePrompt:`Zatrzymanie sesji nadpisze poprzedni, zapisany lokalnie rysunek. Czy jesteś pewien? - -(Jeśli chcesz zachować swój lokalny rysunek, po prostu zamknij zakładkę przeglądarki.)`,errorAddingToLibrary:"Nie udało się dodać elementu do biblioteki",errorRemovingFromLibrary:"Nie udało się usunąć elementu z biblioteki",confirmAddLibrary:"To doda {{numShapes}} kształtów do twojej biblioteki. Jesteś pewien?",imageDoesNotContainScene:"Ten obraz nie zawiera żadnych informacji o scenie. Czy włączyłeś osadzanie sceny podczas eksportu?",cannotRestoreFromImage:"Scena nie mogła zostać przywrócona z pliku obrazu",invalidSceneUrl:"Nie udało się zaimportować sceny z podanego adresu URL. Jest ona wadliwa lub nie zawiera poprawnych danych Excalidraw w formacie JSON.",resetLibrary:"To wyczyści twoją bibliotekę. Jesteś pewien?",removeItemsFromsLibrary:"Usunąć {{count}} element(ów) z biblioteki?",invalidEncryptionKey:"Klucz szyfrowania musi składać się z 22 znaków. Współpraca na żywo jest wyłączona.",collabOfflineWarning:`Brak połączenia z Internetem. -Twoje zmiany nie zostaną zapisane!`},n={unsupportedFileType:"Nieobsługiwany typ pliku.",imageInsertError:"Nie udało się wstawić obrazu. Spróbuj ponownie później...",fileTooBig:"Plik jest zbyt duży. Maksymalny dozwolony rozmiar to {{maxSize}}.",svgImageInsertError:"Nie udało się wstawić obrazu SVG. Znacznik SVG wygląda na nieprawidłowy.",failedToFetchImage:"Nie udało się załadować obrazu.",invalidSVGString:"Nieprawidłowy SVG.",cannotResolveCollabServer:"Nie można połączyć się z serwerem współpracy w czasie rzeczywistym. Proszę odświeżyć stronę i spróbować ponownie.",importLibraryError:"Wystąpił błąd w trakcie ładowania biblioteki",collabSaveFailed:"Nie udało się zapisać w bazie danych. Jeśli problemy nie ustąpią, zapisz plik lokalnie, aby nie utracić swojej pracy.",collabSaveFailed_sizeExceeded:"Nie udało się zapisać w bazie danych — dokument jest za duży. Zapisz plik lokalnie, aby nie utracić swojej pracy.",imageToolNotSupported:"Dodawanie obrazów jest wyłączone.",brave_measure_text_error:{line1:"Wygląda na to, że używasz przeglądarki Brave z włączonym ustawieniem Agressively Block Fingerprinting.",line2:"Może to doprowadzić do złamania elementów tekstu na rysunkach.",line3:"Zdecydowanie zalecamy wyłączenie tego ustawienia. Możesz wykonać te kroki, aby to zrobić.",line4:"Jeśli wyłączenie tego ustawienia nie naprawia wyświetlania elementów tekstowych, zgłoś problem na naszym GitHubie lub napisz do nas na Discordzie"},libraryElementTypeError:{embeddable:"Elementy osadzone nie mogą zostać dodane do biblioteki.",iframe:"Elementy IFrame nie mogą zostać dodane do biblioteki.",image:"Dodawania obrazów do biblioteki nadejdzie wkrótce!"},asyncPasteFailedOnRead:"Nie udało się wkleić (nie udało się odczytać ze schowka systemowego).",asyncPasteFailedOnParse:"Nie udało się wkleić.",copyToSystemClipboardFailed:"Nie udało się skopiować do schowka."},r={selection:"Zaznaczenie",image:"Wstaw obraz",rectangle:"Prostokąt",diamond:"Romb",ellipse:"Elipsa",arrow:"Strzałka",line:"Linia",freedraw:"Rysuj",text:"Tekst",library:"Biblioteka",lock:"Zablokuj wybrane narzędzie",penMode:"Tryb pióra — zapobiegaj dotknięciom",link:"Dodaj/aktualizuj link dla wybranego kształtu",eraser:"Gumka",frame:"Ramka",magicframe:"Wireframe do kodu",embeddable:"Osadzenie z internetu",laser:"Wskaźnik laserowy",hand:"Ręka (narzędzie do przesuwania)",extraTools:"Więcej narzędzi",mermaidToExcalidraw:"Konwertuj diagram Mermaid do Excalidraw",magicSettings:"Ustawienia AI"},t={canvasActions:"Narzędzia",selectedShapeActions:"Wybrane narzędzie",shapes:"Kształty"},s={canvasPanning:"Aby przesunąć płótno, przytrzymaj kółko myszy lub spację podczas przeciągania, albo użyj narzędzia ręki",linearElement:"Naciśnij, aby zrobić punkt, przeciągnij, aby narysować linię",freeDraw:"Naciśnij i przeciągnij by rysować, puść kiedy skończysz",text:"Wskazówka: możesz również dodać tekst klikając dwukrotnie gdziekolwiek za pomocą narzędzia zaznaczania",embeddable:"Kliknij i przeciągnij, aby stworzyć osadzenie strony",text_selected:"Kliknij dwukrotnie lub naciśnij ENTER, aby edytować tekst",text_editing:"Naciśnij Escape lub Ctrl (Cmd w macOS) + ENTER, aby zakończyć edycję",linearElementMulti:"Aby zakończyć krzywą, ponownie kliknij w ostatni punkt, bądź naciśnij Esc albo Enter",lockAngle:"Możesz ograniczyć kąt trzymając SHIFT",resize:"Możesz zachować proporcję trzymająć wcisnięty SHIFT, przytrzymaj ALT by zmienić rozmiar względem środka",resizeImage:`Możesz zmienić rozmiar swobodnie trzymając SHIFT, -przytrzymaj ALT, aby przeskalować względem środka obiektu`,rotate:"Możesz obracać element w równych odstępach trzymając wciśnięty SHIFT",lineEditor_info:"Przytrzymaj CtrlOrCmd i kliknij dwukrotnie lub naciśnij CtrlOrCmd + Enter, aby edytować punkty",lineEditor_pointSelected:"Naciśnij przycisk Delete, aby usunąć punkt. Ctrl/Cmd+D, aby go zduplikować. Przeciągnij, aby go przenieść",lineEditor_nothingSelected:`Wybierz punkt do edycji (przytrzymaj SHIFT, aby wybrać wiele), -lub przytrzymaj Alt i kliknij, aby dodać nowe punkty`,placeImage:"Kliknij, aby umieścić obraz, lub kliknij i przeciągnij, aby ustawić jego rozmiar ręcznie",publishLibrary:"Opublikuj własną bibliotekę",bindTextToElement:"Wciśnij enter, aby dodać tekst",deepBoxSelect:"Przytrzymaj CtrlOrCmd, aby wybrać w obrębie grupy i uniknąć przeciągania",eraserRevert:"Przytrzymaj Alt, aby przywrócić elementy oznaczone do usunięcia",firefox_clipboard_write:'Ta funkcja może być włączona poprzez ustawienie flagi "dom.events.asyncClipboard.clipboardItem" na "true". Aby zmienić flagi przeglądarki w Firefox, odwiedź stronę "about:config".',disableSnapping:"Przytrzymaj Ctrl lub Cmd, aby wyłączyć przyciąganie"},l={cannotShowPreview:"Nie można wyświetlić podglądu",canvasTooBig:"Obszar roboczy może być za duży.",canvasTooBigTip:"Wskazówka: spróbuj nieco zbliżyć najdalej wysunięte elementy."},d={headingMain:"Wystąpił błąd. Spróbuj ",clearCanvasMessage:"Jeśli odświeżenie strony nie zadziałało, spróbuj ",clearCanvasCaveat:" Pamiętaj tylko, że spowoduje to utratę całej twojej pracy ",trackedToSentry:"Błąd o identyfikatorze {{eventId}} został zaraportowany w naszym systemie.",openIssueMessage:"Szanujemy twoją prywatność i raport nie zawierał żadnych danych dotyczących tego nad czym pracowałeś, natomiast jeżeli jesteś w stanie podzielić się tym nad czym pracowałeś, prosimy o dodatkowy raport poprzez Prosimy o dołączenie poniższej informacji poprzez skopiowanie jej i umieszczenie jej w zgłoszeniu na portalu GitHub.",sceneContent:"Zawartość dokumentu:"},z={desc_intro:"Będziesz w stanie pracować wraz z osobami które zaprosisz do współpracy.",desc_privacy:"By zapewnić Ci prywatność, sesja współpracy na żywo jest zabezpieczona szyfrowaniem end-to-end, co oznacza, że poza tobą i osobami z którymi podzielisz się linkiem, nikt nie ma dostępu do tego co będziecie tworzyć.",button_startSession:"Rozpocznij sesję",button_stopSession:"Zakończ sesję",desc_inProgressIntro:"Sesja współpracy na żywo właśnie się rozpoczęła.",desc_shareLink:"Udostępnij ten link osobom, z którymi chcesz współpracować:",desc_exitSession:"Zakończenie sesji spowoduje odłączenie ciebie od pokoju, ale nadal będziesz mógł lokalnie kontynuować pracę. Zauważ, że osoby z którymi współpracowałeś nadal będą mogły współpracować.",shareTitle:"Dołącz do sesji współpracy na żywo w Excalidraw"},y={title:"Wystąpił błąd"},c={disk_title:"Zapisz na dysku",disk_details:"Eksportuj dane sceny do pliku, z którego możesz importować później.",disk_button:"Zapisz do pliku",link_title:"Link do udostępnienia",link_details:"Eksportuj jako link tylko do odczytu.",link_button:"Wygeneruj link",excalidrawplus_description:"Zapisz scenę do swojego obszaru roboczego Excalidraw+.",excalidrawplus_button:"Eksportuj",excalidrawplus_exportError:"W tej chwili nie można wyeksportować do Excalidraw+..."},w={blog:"Przeczytaj na naszym blogu",click:"kliknięcie",deepSelect:"Wybór w obrębie grupy",deepBoxSelect:"Wybór w obrębie grupy i unikanie przeciągania",curvedArrow:"Zakrzywiona strzałka",curvedLine:"Zakrzywiona linia",documentation:"Dokumentacja",doubleClick:"podwójne kliknięcie",drag:"przeciągnij",editor:"Edytor",editLineArrowPoints:"Edytuj punkty linii/strzałki",editText:"Edytuj tekst/dodaj etykietę",github:"Znalazłeś problem? Prześlij",howto:"Skorzystaj z instrukcji",or:"lub",preventBinding:"Zapobiegaj wiązaniu strzałek",tools:"Narzędzia",shortcuts:"Skróty klawiszowe",textFinish:"Zakończ edycję (edytor tekstu)",textNewLine:"Dodaj nowy wiersz (edytor tekstu)",title:"Pomoc",view:"Widok",zoomToFit:"Powiększ, aby wyświetlić wszystkie elementy",zoomToSelection:"Przybliż do zaznaczenia",toggleElementLock:"Zablokuj/odblokuj zaznaczenie",movePageUpDown:"Przesuń stronę w górę/w dół",movePageLeftRight:"Przenieś stronę w lewo/prawo"},k={title:"Wyczyść płótno"},p={title:"Opublikuj bibliotekę",itemName:"Nazwa elementu",authorName:"Nazwa autora",githubUsername:"Nazwa użytkownika na GitHubie",twitterUsername:"Nazwa użytkownika Twitter",libraryName:"Nazwa biblioteki",libraryDesc:"Opis biblioteki",website:"Strona internetowa",placeholder:{authorName:"Twoje imię lub nazwa użytkownika",libraryName:"Nazwa twojej biblioteki",libraryDesc:"Opis twojej biblioteki, aby pomóc innym zrozumieć jej działanie",githubHandle:"Uchwyt GitHub (opcjonalny), dzięki czemu możesz edytować bibliotekę po przesłaniu do sprawdzenia",twitterHandle:"Nazwa użytkownika w serwisie Twitter (opcjonalna), aby wiedzieć kogo oznaczyć przy promowaniu na Twitterze",website:"Link do Twojej osobistej strony internetowej lub gdzie indziej (opcjonalnie)"},errors:{required:"Wymagane",website:"Wprowadź prawidłowy adres URL"},noteDescription:"dla innych osób do wykorzystania w swoich rysunkach.",noteGuidelines:"Biblioteka musi być najpierw zatwierdzona ręcznie. Przeczytaj wytyczne",noteLicense:"Wysyłając zgadzasz się, że biblioteka zostanie opublikowana pod Licencja MIT, w skrócie, każdy może z nich korzystać bez ograniczeń.",noteItems:"Każdy element biblioteki musi mieć własną nazwę, aby był filtrowalny. Uwzględnione zostaną następujące elementy biblioteki:",atleastOneLibItem:"Proszę wybrać co najmniej jeden element biblioteki, by rozpocząć",republishWarning:"Uwaga: niektóre z wybranych elementów są oznaczone jako już opublikowane/wysłane. Powinieneś ponownie przesłać elementy tylko wtedy, gdy aktualizujesz istniejącą bibliotekę lub zgłoszenie."},u={title:"Biblioteka została przesłana",content:"Dziękujemy {{authorName}}. Twoja biblioteka została przesłana do sprawdzenia. Możesz śledzić jej stantutaj"},b={resetLibrary:"Zresetuj Bibliotekę",removeItemsFromLib:"Usuń wybrane elementy z biblioteki"},m={header:"Eksportuj obraz",label:{withBackground:"Tło",onlySelected:"Tylko wybrane",darkMode:"Tryb ciemny",embedScene:"Osadź scenę",scale:"Skala",padding:"Dopełnienie"},tooltip:{embedScene:`Dane sceny zostaną zapisane w eksportowanym pliku PNG/SVG tak, aby scena mogła zostać z niego przywrócona. -Zwiększy to rozmiar eksportowanego pliku.`},title:{exportToPng:"Zapisz jako PNG",exportToSvg:"Zapisz jako SVG",copyPngToClipboard:"Skopiuj do schowka jako PNG"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Skopiuj do schowka"}},j={tooltip:"Twoje rysunki są zabezpieczone szyfrowaniem end-to-end, tak więc nawet w Excalidraw nie jesteśmy w stanie zobaczyć tego co tworzysz.",link:"Wpis na blogu dotyczący szyfrowania end-to-end w Excalidraw"},g={angle:"Kąt",element:"Element",elements:"Elementy",height:"Wysokość",scene:"Scena",selected:"Zaznaczenie",storage:"Pamięć",title:"Statystyki dla nerdów",total:"Łącznie",version:"Wersja",versionCopy:"Kliknij, aby skopiować",versionNotAvailable:"Wersja niedostępna",width:"Szerokość"},h={addedToLibrary:"Dodano do biblioteki",copyStyles:"Skopiowano style.",copyToClipboard:"Skopiowano do schowka.",copyToClipboardAsPng:`Skopiowano {{exportSelection}} do schowka jako PNG -({{exportColorScheme}})`,fileSaved:"Zapisano plik.",fileSavedToFilename:"Zapisano jako {filename}",canvas:"płótno",selection:"zaznaczenie",pasteAsSingleElement:`Użyj {{shortcut}}, aby wkleić jako pojedynczy element, -lub wklej do istniejącego edytora tekstu`,unableToEmbed:"Osadzenie tego linku jest obecnie niedozwolone. Zgłoś propozycję na portalu GitHub, aby dodać go do listy dozwolonych wyjątków",unrecognizedLinkFormat:'Osadzony link ma niewłaściwy format. Spróbuj wkleić całą zawartość pola "embed" z oryginalnej strony.'},S={transparent:"Przezroczysty",black:"Czarny",white:"Biały",red:"Czerwony",pink:"Różowy",grape:"Winogronowy",violet:"Fioletowy",gray:"Szary",blue:"Niebieski",cyan:"Cyjanowy",teal:"Turkusowy",green:"Zielony",yellow:"Żółty",orange:"Pomarańczowy",bronze:"Brązowy"},T={app:{center_heading:"Wszystkie dane są zapisywane lokalnie w przeglądarce.",center_heading_plus:"Czy zamiast tego chcesz przejść do Excalidraw+?",menuHint:"Eksportuj, preferencje, języki..."},defaults:{menuHint:"Eksportuj, preferencje i więcej...",center_heading:"Schematy uproszczone.",toolbarHint:"Wybierz narzędzie i zacznij rysować!",helpHint:"Skróty klawiaturowe i pomoc"}},E={mostUsedCustomColors:"Najczęściej używane kolory",colors:"Kolory",shades:"Odcienie",hexCode:"Kod HEX",noShades:"Brak dostępnych odcieni dla tego koloru"},P={action:{exportToImage:{title:"Eksportuj jako obraz",button:"Eksportuj jako obraz",description:"Eksportuj zawartość sceny jako obraz z możliwością importowania."},saveToDisk:{title:"Zapisz na dysku",button:"Zapisz na dysku",description:"Eksportuj zawartość sceny jako plik z możliwością importowania."},excalidrawPlus:{title:"Excalidraw+",button:"Eksportuj do Excalidraw+",description:"Zapisz scenę do swojego obszaru roboczego Excalidraw+."}},modal:{loadFromFile:{title:"Wczytaj z pliku",button:"Wczytaj z pliku",description:"Wczytanie z pliku nadpisze istniejącą zawartość.

    Możesz najpierw utworzyć kopię zapasową swojego rysunku, używając jednej z poniższych opcji."},shareableLink:{title:"Wczytaj z linku",button:"Nadpisz moją zawartość",description:"Wczytanie zewnętrznego pliku nadpisze istniejącą zawartość.

    Możesz najpierw utworzyć kopię zapasową swojego rysunku, używając jednej z poniższych opcji."}}},W={title:"Konwertuj diagram Mermaid do Excalidraw",button:"Wstaw",description:"Obecnie wspierane są jedynie proste grafy, sekwencje i diagramy klas. Pozostałe typy będą wyświetlane jako obrazy w Excalidraw.",syntax:"Składnia diagramów Mermaid",preview:"Podgląd"},v={labels:e,library:o,buttons:a,alerts:i,errors:n,toolBar:r,headings:t,hints:s,canvasError:l,errorSplash:d,roomDialog:z,errorDialog:y,exportDialog:c,helpDialog:w,clearCanvasDialog:k,publishDialog:p,publishSuccessDialog:u,confirmDialog:b,imageExportDialog:m,encrypted:j,stats:g,toast:h,colors:S,welcomeScreen:T,colorPicker:E,overwriteConfirm:P,mermaid:W};export{i as alerts,a as buttons,l as canvasError,k as clearCanvasDialog,E as colorPicker,S as colors,b as confirmDialog,v as default,j as encrypted,y as errorDialog,d as errorSplash,n as errors,c as exportDialog,t as headings,w as helpDialog,s as hints,m as imageExportDialog,e as labels,o as library,W as mermaid,P as overwriteConfirm,p as publishDialog,u as publishSuccessDialog,z as roomDialog,g as stats,h as toast,r as toolBar,T as welcomeScreen}; -//# sourceMappingURL=pl-PL.json-e9P_Yfh8.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js.map b/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js.map deleted file mode 100644 index 3118eec..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pl-PL.json-e9P_Yfh8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pl-PL.json-e9P_Yfh8.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js b/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js deleted file mode 100644 index 86c5ac7..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Colar",pasteAsPlaintext:"Colar como texto sem formatação",pasteCharts:"Colar gráficos",selectAll:"Selecionar tudo",multiSelect:"Adicionar elemento à seleção",moveCanvas:"Mover tela",cut:"Recortar",copy:"Copiar",copyAsPng:"Copiar para a área de transferência como PNG",copyAsSvg:"Copiar para a área de transferência como SVG",copyText:"Copiar para área de transferência como texto",copySource:"",convertToCode:"",bringForward:"Trazer para a frente",sendToBack:"Enviar para o fundo",bringToFront:"Trazer para o primeiro plano",sendBackward:"Enviar para trás",delete:"Apagar",copyStyles:"Copiar os estilos",pasteStyles:"Colar os estilos",stroke:"Contorno",background:"Fundo",fill:"Preenchimento",strokeWidth:"Espessura do traço",strokeStyle:"Estilo de traço",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Tracejado",strokeStyle_dotted:"Pontilhado",sloppiness:"Precisão do traço",opacity:"Opacidade",textAlign:"Alinhamento do texto",edges:"Arestas",sharp:"Pontudo",round:"Arredondado",arrowheads:"Pontas",arrowhead_none:"Nenhuma",arrowhead_arrow:"Flecha",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triângulo",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tamanho da fonte",fontFamily:"Família da fonte",addWatermark:'Adicionar "Feito com Excalidraw"',handDrawn:"Manuscrito",normal:"Normal",code:"Código",small:"Pequeno",medium:"Médio",large:"Grande",veryLarge:"Muito grande",solid:"Sólido",hachure:"Hachura",zigzag:"Zigue-zague",crossHatch:"Hachura cruzada",thin:"Fino",bold:"Espesso",left:"Esquerda",center:"Centralizar",right:"Direita",extraBold:"Muito espesso",architect:"Arquiteto",artist:"Artista",cartoonist:"Cartunista",fileTitle:"Nome do arquivo",colorPicker:"Seletor de cores",canvasColors:"Usado na tela",canvasBackground:"Fundo da tela",drawingCanvas:"Tela de desenho",layers:"Camadas",actions:"Ações",language:"Idioma",liveCollaboration:"Colaboração ao vivo...",duplicateSelection:"Duplicar",untitled:"Sem título",name:"Nome",yourName:"Seu nome",madeWithExcalidraw:"Feito com Excalidraw",group:"Agrupar seleção",ungroup:"Desagrupar seleção",collaborators:"Colaboradores",showGrid:"Mostrar grade",addToLibrary:"Adicionar à biblioteca",removeFromLibrary:"Remover da biblioteca",libraryLoadingMessage:"Carregando biblioteca…",libraries:"Procurar bibliotecas",loadingScene:"Carregando cena…",align:"Alinhamento",alignTop:"Alinhar ao topo",alignBottom:"Alinhar embaixo",alignLeft:"Alinhar à esquerda",alignRight:"Alinhar à direita",centerVertically:"Centralizar verticalmente",centerHorizontally:"Centralizar horizontalmente",distributeHorizontally:"Distribuir horizontalmente",distributeVertically:"Distribuir verticalmente",flipHorizontal:"Inverter horizontalmente",flipVertical:"Inverter verticalmente",viewMode:"Modo de visualização",share:"Compartilhar",showStroke:"Exibir seletor de cores do traço",showBackground:"Exibir seletor de cores do fundo",toggleTheme:"Alternar tema",personalLib:"Biblioteca Pessoal",excalidrawLib:"Biblioteca do Excalidraw",decreaseFontSize:"Diminuir o tamanho da fonte",increaseFontSize:"Aumentar o tamanho da fonte",unbindText:"Desvincular texto",bindText:"Vincular texto ao contêiner",createContainerFromText:"Envolver texto em um contêiner",link:{edit:"Editar link",editEmbed:"",create:"Criar link",createEmbed:"",label:"Link",labelEmbed:"",empty:""},lineEditor:{edit:"Editar linha",exit:"Sair do editor de linha"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear tudo",unlockAll:"Desbloquear tudo"},statusPublished:"Publicado",sidebarLock:"Manter barra lateral aberta",selectAllElementsInFrame:"Selecionar todos os elementos no quadro",removeAllElementsFromFrame:"Remover todos os elementos do quadro",eyeDropper:"Escolher cor da tela",textToDiagram:"",prompt:""},a={noItems:"Nenhum item adicionado ainda...",hint_emptyLibrary:"Selecione um item na tela para adicioná-lo aqui, ou instale uma biblioteca do repositório público, abaixo.",hint_emptyPrivateLibrary:"Selecione um item na tela para adicioná-lo aqui."},o={clearReset:"Limpar o canvas e redefinir a cor de fundo",exportJSON:"Exportar arquivo",exportImage:"Exportar imagem...",export:"Salvar como...",copyToClipboard:"Copiar para o clipboard",save:"Salvar para o arquivo atual",saveAs:"Salvar como",load:"Abrir",getShareableLink:"Obter um link de compartilhamento",close:"Fechar",selectLanguage:"Selecionar idioma",scrollBackToContent:"Voltar para o conteúdo",zoomIn:"Aumentar zoom",zoomOut:"Diminuir zoom",resetZoom:"Redefinir zoom",menu:"Menu",done:"Concluído",edit:"Editar",undo:"Desfazer",redo:"Refazer",resetLibrary:"Redefinir biblioteca",createNewRoom:"Criar nova sala",fullScreen:"Tela cheia",darkMode:"Modo escuro",lightMode:"Modo claro",zenMode:"Modo Zen",objectsSnapMode:"",exitZenMode:"Sair do modo zen",cancel:"Cancelar",clear:"Limpar",remove:"Remover",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:""},r={clearReset:"Isto irá limpar toda a tela. Você tem certeza?",couldNotCreateShareableLink:"Não foi possível criar um link de compartilhamento.",couldNotCreateShareableLinkTooBig:"Não foi possível criar um link compartilhável: a cena é muito grande",couldNotLoadInvalidFile:"Não foi possível carregar o arquivo inválido",importBackendFailed:"A importação do servidor falhou.",cannotExportEmptyCanvas:"Não é possível exportar um canvas vazio.",couldNotCopyToClipboard:"Não foi possível copiar para a área de transferência.",decryptFailed:"Não foi possível descriptografar os dados.",uploadedSecurly:"O upload foi protegido com criptografia de ponta a ponta, o que significa que o servidor do Excalidraw e terceiros não podem ler o conteúdo.",loadSceneOverridePrompt:"Carregar um desenho externo substituirá o seu conteúdo existente. Deseja continuar?",collabStopOverridePrompt:`Ao interromper a sessão, você substituirá seu desenho anterior, armazenado localmente. Você tem certeza? - -(Se você deseja manter seu desenho local, simplesmente feche a aba do navegador.)`,errorAddingToLibrary:"Não foi possível adicionar o item à biblioteca",errorRemovingFromLibrary:"Não foi possível remover o item da biblioteca",confirmAddLibrary:"Isso adicionará {{numShapes}} forma(s) à sua biblioteca. Tem certeza?",imageDoesNotContainScene:"Esta imagem parece não conter dados de cenas. Você ativou a incorporação da cena durante a exportação?",cannotRestoreFromImage:"Não foi possível restaurar a cena deste arquivo de imagem",invalidSceneUrl:"Não foi possível importar a cena da URL fornecida. Ela está incompleta ou não contém dados JSON válidos do Excalidraw.",resetLibrary:"Isto limpará a sua biblioteca. Você tem certeza?",removeItemsFromsLibrary:"Excluir {{count}} item(ns) da biblioteca?",invalidEncryptionKey:"A chave de encriptação deve ter 22 caracteres. A colaboração ao vivo está desabilitada.",collabOfflineWarning:`Sem conexão com a internet disponível. -Suas alterações não serão salvas!`},i={unsupportedFileType:"Tipo de arquivo não suportado.",imageInsertError:"Não foi possível inserir imagem. Tente novamente mais tarde...",fileTooBig:"O arquivo é muito grande. O tamanho máximo permitido é {{maxSize}}.",svgImageInsertError:"Não foi possível inserir a imagem SVG. A marcação SVG parece inválida.",failedToFetchImage:"",invalidSVGString:"SVG Inválido.",cannotResolveCollabServer:"Não foi possível conectar-se ao servidor colaborativo. Por favor, recarregue a página e tente novamente.",importLibraryError:"Não foi possível carregar a biblioteca",collabSaveFailed:"Não foi possível salvar no banco de dados do servidor. Se os problemas persistirem, salve o arquivo localmente para garantir que não perca o seu trabalho.",collabSaveFailed_sizeExceeded:"Não foi possível salvar no banco de dados do servidor, a tela parece ser muito grande. Se os problemas persistirem, salve o arquivo localmente para garantir que não perca o seu trabalho.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Parece que você está usando o navegador Brave com a configuração Bloquear Impressões Digitais no modo agressivo.",line2:"Isso pode acabar quebrando Elementos de Texto em seus desenhos.",line3:"Recomendamos fortemente desativar essa configuração. Você pode acessar o passo a passo sobre como fazer isso.",line4:"Se desativar essa configuração não corrigir a exibição de elementos de texto, por favor abra uma issue em nosso GitHub, ou mande uma mensagem em nosso Discord"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},t={selection:"Seleção",image:"Inserir imagem",rectangle:"Retângulo",diamond:"Losango",ellipse:"Elipse",arrow:"Flecha",line:"Linha",freedraw:"Desenhar",text:"Texto",library:"Biblioteca",lock:"Manter ativa a ferramenta selecionada após desenhar",penMode:"Modo caneta — impede o toque",link:"Adicionar/Atualizar link para uma forma selecionada",eraser:"Borracha",frame:"Ferramenta de quadro",magicframe:"",embeddable:"",laser:"",hand:"Mão (ferramenta de rolagem)",extraTools:"Mais ferramentas",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Ações da tela",selectedShapeActions:"Ações das formas selecionadas",shapes:"Formas"},n={canvasPanning:"Para mover a tela, segure a roda do mouse ou a barra de espaço enquanto arrasta ou use a ferramenta de mão",linearElement:"Clique para iniciar vários pontos, arraste para uma única linha",freeDraw:"Toque e arraste, solte quando terminar",text:"Dica: você também pode adicionar texto clicando duas vezes em qualquer lugar com a ferramenta de seleção",embeddable:"",text_selected:"Clique duplo ou tecle ENTER para editar o texto",text_editing:"Pressione Esc ou Ctrl/Cmd+ENTER para encerrar a edição",linearElementMulti:"Clique no último ponto ou pressione Escape ou Enter para terminar",lockAngle:"Você pode restringir o ângulo segurando o SHIFT",resize:`Você pode restringir proporções segurando SHIFT enquanto redimensiona, -segure ALT para redimensionar do centro`,resizeImage:`Você pode redimensionar livremente segurando SHIFT, -segure ALT para redimensionar a partir do centro`,rotate:"Você pode restringir os ângulos segurando SHIFT enquanto gira",lineEditor_info:"Pressione CtrlOuCmd e duplo-clique ou pressione CtrlOuCmd + Enter para editar pontos",lineEditor_pointSelected:`Pressione Delete para remover o(s) ponto(s), -Ctrl/Cmd+D para duplicar ou arraste para mover`,lineEditor_nothingSelected:"Selecione um ponto para editar (segure SHIFT para selecionar vários) ou segure Alt e clique para adicionar novos pontos",placeImage:"Clique para colocar a imagem, ou clique e arraste para definir manualmente o seu tamanho",publishLibrary:"Publicar sua própria biblioteca",bindTextToElement:"Pressione Enter para adicionar o texto",deepBoxSelect:"Segure Ctrl/Cmd para seleção profunda e para evitar arrastar",eraserRevert:"Segure a tecla Alt para inverter os elementos marcados para exclusão",firefox_clipboard_write:'Esse recurso pode ser ativado configurando a opção "dom.events.asyncClipboard.clipboardItem" como "true". Para alterar os sinalizadores do navegador no Firefox, visite a página "about:config".',disableSnapping:""},l={cannotShowPreview:"Não é possível mostrar pré-visualização",canvasTooBig:"A tela pode ser muito grande.",canvasTooBigTip:"Dica: tente aproximar um pouco os elementos mais distantes."},d={headingMain:"Foi encontrado um erro. Tente ",clearCanvasMessage:"Se recarregar a página não funcionar, tente ",clearCanvasCaveat:" Isso resultará em perda de trabalho ",trackedToSentry:"O erro com o identificador {{eventId}} foi rastreado no nosso sistema.",openIssueMessage:"Fomos muito cautelosos para não incluir suas informações de cena no erro. Se sua cena não for privada, por favor, considere seguir nosso Por favor, inclua informações abaixo, copiando e colando para a issue do GitHub.",sceneContent:"Conteúdo da cena:"},c={desc_intro:"Você pode convidar pessoas para sua cena atual para colaborar com você.",desc_privacy:"Não se preocupe, a sessão usa criptografia de ponta a ponta; portanto, o que você desenhar permanecerá privado. Nem mesmo nosso servidor poderá ver o que você cria.",button_startSession:"Iniciar sessão",button_stopSession:"Parar sessão",desc_inProgressIntro:"A sessão de colaboração ao vivo está agora em andamento.",desc_shareLink:"Compartilhe este link com qualquer pessoa com quem você queira colaborar:",desc_exitSession:"Interrompendo a sessão você irá se desconectar da sala, mas você poderá continuar trabalhando com a cena localmente. Observe que isso não afetará outras pessoas, e elas ainda poderão colaborar em suas versões.",shareTitle:"Participe de uma sessão ao vivo de colaboração no Excalidraw"},m={title:"Erro"},u={disk_title:"Salvar no computador",disk_details:"Exportar os dados da cena para um arquivo que você poderá importar mais tarde.",disk_button:"Salvar em um arquivo",link_title:"Link compartilhável",link_details:"Exportar como link de apenas leitura.",link_button:"Exportar link",excalidrawplus_description:"Salvar a cena na sua área de trabalho Excalidraw+.",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"Não é possível exportar para o Excalidraw+ neste momento..."},p={blog:"Leia o nosso blog",click:"clicar",deepSelect:"Seleção profunda",deepBoxSelect:"Use a seleção profunda dentro da caixa para previnir arrastar",curvedArrow:"Seta curva",curvedLine:"Linha curva",documentation:"Documentação",doubleClick:"clique duplo",drag:"arrastar",editor:"Editor",editLineArrowPoints:"Editar linha/ponta da seta",editText:"Editar texto / adicionar etiqueta",github:"Encontrou algum problema? Nos informe",howto:"Siga nossos guias",or:"ou",preventBinding:"Evitar fixação de seta",tools:"Ferramentas",shortcuts:"Atalhos de teclado",textFinish:"Encerrar edição (editor de texto)",textNewLine:"Adicionar nova linha (editor de texto)",title:"Ajudar",view:"Visualizar",zoomToFit:"Ampliar para encaixar todos os elementos",zoomToSelection:"Ampliar a seleção",toggleElementLock:"Bloquear/desbloquear seleção",movePageUpDown:"Mover a página para cima/baixo",movePageLeftRight:"Mover a página para esquerda/direita"},b={title:"Limpar a tela"},v={title:"Publicar biblioteca",itemName:"Nome do item",authorName:"Nome do autor",githubUsername:"Nome de usuário do GitHub",twitterUsername:"Nome de usuário do Twitter",libraryName:"Nome da Biblioteca",libraryDesc:"Descrição da biblioteca",website:"Site",placeholder:{authorName:"Seu nome ou nome de usuário",libraryName:"Nome da sua biblioteca",libraryDesc:"Descrição para ajudar as pessoas a entenderem o uso da sua da sua biblioteca",githubHandle:"Identificador do GitHub (opcional), para que você possa editar a biblioteca depois de enviar para revisão",twitterHandle:"Nome de usuário do Twitter (opcional), para que saibamos quem deve ser creditado se promovermos no Twitter",website:"Link para o seu site pessoal ou outro lugar (opcional)"},errors:{required:"Obrigatório",website:"Informe uma URL válida"},noteDescription:"Envie sua biblioteca para ser incluída no repositório de biblioteca públicapara outras pessoas usarem em seus desenhos.",noteGuidelines:"A biblioteca precisa ser aprovada manualmente primeiro. Por favor leia o orientações antes de enviar. Você precisará de uma conta do GitHub para se comunicar e fazer alterações quando solicitado, mas não é estritamente necessário.",noteLicense:"Ao enviar, você concorda que a biblioteca será publicada sob a Licença MIT, o que, em suma, significa que qualquer pessoa pode utilizá-los sem restrições.",noteItems:"Cada item da biblioteca deve ter seu próprio nome para que seja filtrável. Os seguintes itens da biblioteca serão incluídos:",atleastOneLibItem:"Por favor, selecione pelo menos um item da biblioteca para começar",republishWarning:"Nota: alguns dos itens selecionados estão marcados como já publicado/enviado. Você só deve reenviar itens ao atualizar uma biblioteca existente ou submissão."},g={title:"Biblioteca enviada",content:"Obrigado {{authorName}}. Sua biblioteca foi enviada para análise. Você pode acompanhar o statusaqui"},h={resetLibrary:"Redefinir biblioteca",removeItemsFromLib:"Remover itens selecionados da biblioteca"},x={header:"Exportar imagem",label:{withBackground:"Fundo",onlySelected:"Somente selecionados",darkMode:"Modo escuro",embedScene:"Incorporar cena",scale:"Escala",padding:"Margem interna"},tooltip:{embedScene:`Os dados da cena serão salvos no arquivo PNG/SVG exportado para que a cena possa ser restaurada a partir dele. -Isso aumentará o tamanho do arquivo exportado.`},title:{exportToPng:"Exportar como PNG",exportToSvg:"Exportar como SVG",copyPngToClipboard:"Copiar PNG para área de transferência"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiar para a área de transferência"}},f={tooltip:"Seus desenhos são criptografados de ponta a ponta, então os servidores do Excalidraw nunca os verão.",link:"Publicação de blog com criptografia de ponta a ponta no Excalidraw"},S={angle:"Ângulo",element:"Elemento",elements:"Elementos",height:"Altura",scene:"Cena",selected:"Selecionado",storage:"Armazenamento",title:"Estatísticas para nerds",total:"Total",version:"Versão",versionCopy:"Clique para copiar",versionNotAvailable:"Versão não disponível",width:"Largura"},E={addedToLibrary:"Adicionado à biblioteca",copyStyles:"Estilos copiados.",copyToClipboard:"Copiado para área de transferência.",copyToClipboardAsPng:"{{exportSelection}} copiado para a área de transferência como PNG ({{exportColorScheme}})",fileSaved:"Arquivo salvo.",fileSavedToFilename:"Salvo em {filename}",canvas:"tela",selection:"seleção",pasteAsSingleElement:`Use {{shortcut}} para colar como um único elemento, -ou cole em um editor de texto já existente`,unableToEmbed:"",unrecognizedLinkFormat:""},C={transparent:"Transparente",black:"Preto",white:"Branco",red:"Vermelho",pink:"Rosa",grape:"Uva",violet:"Violeta",gray:"Cinza",blue:"Azul",cyan:"Ciano",teal:"Verde-azulado",green:"Verde",yellow:"Amarelo",orange:"Laranja",bronze:"Bronze"},q={app:{center_heading:"Todos os dados são salvos localmente no seu navegador.",center_heading_plus:"Você queria ir para o Excalidraw+ em vez disso?",menuHint:"Exportar, preferências, idiomas..."},defaults:{menuHint:"Exportar, preferências e mais...",center_heading:"Diagramas, Feito. Simples.",toolbarHint:"Escolha uma ferramenta e comece a desenhar!",helpHint:"Atalhos e ajuda"}},y={mostUsedCustomColors:"Cores personalizadas mais usadas",colors:"Cores",shades:"Tons",hexCode:"Código hexadecimal",noShades:"Sem tons disponíveis para essa cor"},T={action:{exportToImage:{title:"Exportar como imagem",button:"Exportar como imagem",description:"Exportar os dados da cena para um arquivo que você poderá importar mais tarde."},saveToDisk:{title:"Salvar no computador",button:"Salvar no computador",description:"Exportar os dados da cena para um arquivo que você poderá importar mais tarde."},excalidrawPlus:{title:"Excalidraw+",button:"Exportar para Excalidraw+",description:"Salvar a cena na sua área de trabalho Excalidraw+."}},modal:{loadFromFile:{title:"Carregar de arquivo",button:"Carregar de arquivo",description:"Carregar de um arquivo irá substituir o conteúdo existente.

    Você pode salvar seu desenho primeiro usando uma das opções abaixo."},shareableLink:{title:"Carregar de um link",button:"Substituir meu conteúdo",description:"Carregar um desenho externo irá substituir seu conteúdo existente.

    Você pode salvar seu desenho antes utilizando uma das opções abaixo."}}},k={title:"",button:"",description:"",syntax:"",preview:""},w={labels:e,library:a,buttons:o,alerts:r,errors:i,toolBar:t,headings:s,hints:n,canvasError:l,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:u,helpDialog:p,clearCanvasDialog:b,publishDialog:v,publishSuccessDialog:g,confirmDialog:h,imageExportDialog:x,encrypted:f,stats:S,toast:E,colors:C,welcomeScreen:q,colorPicker:y,overwriteConfirm:T,mermaid:k};export{r as alerts,o as buttons,l as canvasError,b as clearCanvasDialog,y as colorPicker,C as colors,h as confirmDialog,w as default,f as encrypted,m as errorDialog,d as errorSplash,i as errors,u as exportDialog,s as headings,p as helpDialog,n as hints,x as imageExportDialog,e as labels,a as library,k as mermaid,T as overwriteConfirm,v as publishDialog,g as publishSuccessDialog,c as roomDialog,S as stats,E as toast,t as toolBar,q as welcomeScreen}; -//# sourceMappingURL=pt-BR.json-SvBckatZ.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js.map b/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js.map deleted file mode 100644 index fd29f88..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pt-BR.json-SvBckatZ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pt-BR.json-SvBckatZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js b/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js deleted file mode 100644 index 75784d4..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Colar",pasteAsPlaintext:"Colar como texto simples",pasteCharts:"Colar gráficos",selectAll:"Selecionar tudo",multiSelect:"Adicionar elemento à seleção",moveCanvas:"Mover tela",cut:"Cortar",copy:"Copiar",copyAsPng:"Copiar para a área de transferência como PNG",copyAsSvg:"Copiar para a área de transferência como SVG",copyText:"Copiar para Área de Transferência como texto",copySource:"",convertToCode:"",bringForward:"Trazer para o primeiro plano",sendToBack:"Enviar para o plano de fundo",bringToFront:"Trazer para o primeiro plano",sendBackward:"Enviar para trás",delete:"Apagar",copyStyles:"Copiar os estilos",pasteStyles:"Colar os estilos",stroke:"Contornos",background:"Fundo",fill:"Preenchimento",strokeWidth:"Espessura do traço",strokeStyle:"Estilo de traço",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Tracejado",strokeStyle_dotted:"Pontilhado",sloppiness:"Desleixo",opacity:"Opacidade",textAlign:"Alinhamento do texto",edges:"Arestas",sharp:"Aguçado",round:"Redondo",arrowheads:"Pontas",arrowhead_none:"Nenhuma",arrowhead_arrow:"Seta",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triângulo",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tamanho da fonte",fontFamily:"Família da fontes",addWatermark:'Adicionar "Feito com Excalidraw"',handDrawn:"Manuscrito",normal:"Normal",code:"Código",small:"Pequeno",medium:"Médio",large:"Grande",veryLarge:"Muito grande",solid:"Sólido",hachure:"Eclosão",zigzag:"ziguezague",crossHatch:"Sombreado",thin:"Fino",bold:"Espesso",left:"Esquerda",center:"Centralizar",right:"Direita",extraBold:"Muito espesso",architect:"Arquitecto",artist:"Artista",cartoonist:"Caricaturista",fileTitle:"Nome do ficheiro",colorPicker:"Seletor de cores",canvasColors:"Usado na tela",canvasBackground:"Fundo da área de desenho",drawingCanvas:"Área de desenho",layers:"Camadas",actions:"Ações",language:"Idioma",liveCollaboration:"Colaboração ao vivo...",duplicateSelection:"Duplicar",untitled:"Sem título",name:"Nome",yourName:"O seu nome",madeWithExcalidraw:"Feito com Excalidraw",group:"Agrupar seleção",ungroup:"Desagrupar seleção",collaborators:"Colaboradores",showGrid:"Mostrar grelha",addToLibrary:"Adicionar à biblioteca",removeFromLibrary:"Remover da biblioteca",libraryLoadingMessage:"A carregar a biblioteca…",libraries:"Procurar bibliotecas",loadingScene:"A carregar a cena…",align:"Alinhamento",alignTop:"Alinhar ao topo",alignBottom:"Alinhar ao fundo",alignLeft:"Alinhar à esquerda",alignRight:"Alinhar à direita",centerVertically:"Centrar verticalmente",centerHorizontally:"Centrar horizontalmente",distributeHorizontally:"Distribuir horizontalmente",distributeVertically:"Distribuir verticalmente",flipHorizontal:"Inverter horizontalmente",flipVertical:"Inverter verticalmente",viewMode:"Modo de visualização",share:"Partilhar",showStroke:"Mostrar seletor de cores do traço",showBackground:"Mostrar seletor de cores do fundo",toggleTheme:"Alternar tema",personalLib:"Biblioteca pessoal",excalidrawLib:"Biblioteca do Excalidraw",decreaseFontSize:"Reduzir o tamanho do tipo de letra",increaseFontSize:"Aumentar o tamanho do tipo de letra",unbindText:"Desvincular texto",bindText:"Ligar texto ao recipiente",createContainerFromText:"Envolver texto num recipiente",link:{edit:"Editar ligação",editEmbed:"",create:"Criar ligação",createEmbed:"",label:"Ligação",labelEmbed:"",empty:""},lineEditor:{edit:"Editar linha",exit:"Sair do editor de linha"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear todos",unlockAll:"Desbloquear todos"},statusPublished:"Publicado",sidebarLock:"Manter a barra lateral aberta",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},a={noItems:"Ainda não foram adicionados nenhuns itens...",hint_emptyLibrary:"Seleccione um item na tela para adicioná-lo aqui, ou então instale uma biblioteca do repositório público abaixo.",hint_emptyPrivateLibrary:"Seleccione um item na tela para adicioná-lo aqui."},o={clearReset:"Limpar a área de desenho e redefinir a cor de fundo",exportJSON:"Exportar para ficheiro",exportImage:"Exportar imagem...",export:"Guardar para...",copyToClipboard:"Copiar para o clipboard",save:"Guardar no ficheiro atual",saveAs:"Guardar como",load:"Abrir",getShareableLink:"Obter um link de partilha",close:"Fechar",selectLanguage:"Selecionar idioma",scrollBackToContent:"Voltar ao conteúdo",zoomIn:"Aumentar zoom",zoomOut:"Diminuir zoom",resetZoom:"Redefinir zoom",menu:"Menu",done:"Concluído",edit:"Editar",undo:"Desfazer",redo:"Refazer",resetLibrary:"Repor a biblioteca",createNewRoom:"Criar nova sala",fullScreen:"Ecrã inteiro",darkMode:"Modo escuro",lightMode:"Modo claro",zenMode:"Modo zen",objectsSnapMode:"",exitZenMode:"Sair do modo zen",cancel:"Cancelar",clear:"Limpar",remove:"Remover",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:""},r={clearReset:"Isto irá limpar toda a área de desenho. Tem a certeza?",couldNotCreateShareableLink:"Não foi possível criar um link partilhável.",couldNotCreateShareableLinkTooBig:"Não foi possível criar um link partilhável: a cena é muito grande",couldNotLoadInvalidFile:"Não foi possível carregar o ficheiro inválido",importBackendFailed:"A importação do servidor falhou.",cannotExportEmptyCanvas:"Não é possível exportar uma área de desenho vazia.",couldNotCopyToClipboard:"Não foi possível copiar para a área de transferência.",decryptFailed:"Não foi possível desencriptar os dados.",uploadedSecurly:"O upload foi protegido com criptografia de ponta a ponta, o que significa que o servidor do Excalidraw e terceiros não podem ler o conteúdo.",loadSceneOverridePrompt:"Se carregar um desenho externo substituirá o conteúdo existente. Quer continuar?",collabStopOverridePrompt:`Ao interromper a sessão irá substituir o último desenho guardado. Tem a certeza? - -(Caso queira manter o último desenho, simplesmente feche a janela do navegador.)`,errorAddingToLibrary:"Não foi possível adicionar o item à biblioteca",errorRemovingFromLibrary:"Não foi possível remover o item da biblioteca",confirmAddLibrary:"Isso adicionará {{numShapes}} forma(s) à sua biblioteca. Tem a certeza?",imageDoesNotContainScene:"Esta imagem parece não conter dados de cenas. Ativou a incorporação da cena durante a exportação?",cannotRestoreFromImage:"Não foi possível restaurar a cena deste ficheiro de imagem",invalidSceneUrl:"Não foi possível importar a cena a partir do URL fornecido. Ou está mal formado ou não contém dados JSON do Excalidraw válidos.",resetLibrary:"Isto irá limpar a sua biblioteca. Tem a certeza?",removeItemsFromsLibrary:"Apagar {{count}} item(ns) da biblioteca?",invalidEncryptionKey:"Chave de encriptação deve ter 22 caracteres. A colaboração ao vivo está desativada.",collabOfflineWarning:`Sem ligação à internet disponível. -As suas alterações não serão salvas!`},i={unsupportedFileType:"Tipo de ficheiro não suportado.",imageInsertError:"Não foi possível inserir a imagem, tente novamente mais tarde...",fileTooBig:"O ficheiro é muito grande. O tamanho máximo permitido é {{maxSize}}.",svgImageInsertError:"Não foi possível inserir a imagem SVG. A marcação SVG parece inválida.",failedToFetchImage:"",invalidSVGString:"SVG inválido.",cannotResolveCollabServer:"Não foi possível fazer a ligação ao servidor colaborativo. Por favor, volte a carregar a página e tente novamente.",importLibraryError:"Não foi possível carregar a biblioteca",collabSaveFailed:"Não foi possível guardar na base de dados de backend. Se os problemas persistirem, guarde o ficheiro localmente para garantir que não perde o seu trabalho.",collabSaveFailed_sizeExceeded:"Não foi possível guardar na base de dados de backend, o ecrã parece estar muito grande. Deve guardar o ficheiro localmente para garantir que não perde o seu trabalho.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},t={selection:"Seleção",image:"Inserir imagem",rectangle:"Retângulo",diamond:"Losango",ellipse:"Elipse",arrow:"Flecha",line:"Linha",freedraw:"Desenhar",text:"Texto",library:"Biblioteca",lock:"Manter a ferramenta selecionada ativa após desenhar",penMode:"Modo caneta - impedir toque",link:"Acrescentar/ Adicionar ligação para uma forma seleccionada",eraser:"Borracha",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Mão (ferramenta de movimento da tela)",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"Ações da área de desenho",selectedShapeActions:"Ações das formas selecionadas",shapes:"Formas"},s={canvasPanning:"Para mover a tela, carregue na roda do rato ou na barra de espaço enquanto arrasta, ou use a ferramenta da mão",linearElement:"Clique para iniciar vários pontos, arraste para uma única linha",freeDraw:"Clique e arraste, large quando terminar",text:"Dica: também pode adicionar texto clicando duas vezes em qualquer lugar com a ferramenta de seleção",embeddable:"",text_selected:"Clique duas vezes ou pressione a tecla Enter para editar o texto",text_editing:"Pressione a tecla Escape ou CtrlOrCmd+ENTER para terminar a edição",linearElementMulti:"Clique no último ponto ou pressione Escape ou Enter para terminar",lockAngle:"Pode restringir o ângulo mantendo premida a tecla SHIFT",resize:`Pode restringir as proporções mantendo a tecla SHIFT premida enquanto redimensiona, -mantenha a tecla ALT premida para redimensionar a partir do centro`,resizeImage:`Pode redimensionar livremente mantendo pressionada a tecla SHIFT, -mantenha pressionada a tecla ALT para redimensionar do centro`,rotate:"Pode restringir os ângulos mantendo a tecla SHIFT premida enquanto roda",lineEditor_info:"Pressione CtrlOrCmd e faça um duplo-clique ou pressione CtrlOrCmd + Enter para editar pontos",lineEditor_pointSelected:"Carregue na tecla Delete para remover o(s) ponto(s), CtrlOuCmd+D para duplicar, ou arraste para mover",lineEditor_nothingSelected:`Seleccione um ponto para editar (carregue em SHIFT para seleccionar vários), -ou carregue em Alt e clique para acrescentar novos pontos`,placeImage:"Clique para colocar a imagem ou clique e arraste para definir o seu tamanho manualmente",publishLibrary:"Publique a sua própria biblioteca",bindTextToElement:"Carregue Enter para acrescentar texto",deepBoxSelect:"Mantenha a tecla CtrlOrCmd carregada para selecção profunda, impedindo o arrastamento",eraserRevert:"Carregue também em Alt para reverter os elementos marcados para serem apagados",firefox_clipboard_write:'Esta função pode provavelmente ser ativada definindo a opção "dom.events.asyncClipboard.clipboardItem" como "true". Para alterar os sinalizadores do navegador no Firefox, visite a página "about:config".',disableSnapping:""},l={cannotShowPreview:"Não é possível mostrar uma pré-visualização",canvasTooBig:"A área de desenho pode ser muito grande.",canvasTooBigTip:"Dica: tente aproximar um pouco os elementos mais distantes."},d={headingMain:"Foi encontrado um erro. Tente ",clearCanvasMessage:"Se a recarga não funcionar, tente ",clearCanvasCaveat:" Isso resultará em perda de trabalho ",trackedToSentry:"O erro com o identificador {{eventId}} foi rastreado no nosso sistema.",openIssueMessage:"Fomos muito cautelosos para não incluir suas informações de cena no erro. Se sua cena não for privada, por favor, considere seguir nosso Por favor, inclua informações abaixo, copiando e colando no relatório de erros no GitHub.",sceneContent:"Conteúdo da cena:"},c={desc_intro:"Pode convidar pessoas para colaborarem na sua cena atual.",desc_privacy:"Não se preocupe, a sessão usa criptografia de ponta-a-ponta, por isso o que desenhar permanecerá privado. Nem mesmo o nosso servidor poderá ver o que cria.",button_startSession:"Iniciar sessão",button_stopSession:"Parar sessão",desc_inProgressIntro:"A sessão de colaboração ao vivo está agora em andamento.",desc_shareLink:"Partilhe este link com qualquer pessoa com quem queira colaborar:",desc_exitSession:"Interrompendo a sessão irá desconectar-se da sala, mas poderá continuar a trabalhar com a cena localmente. Note que isso não afetará outras pessoas e elas ainda poderão colaborar nas versões deles.",shareTitle:"Participe numa sessão de colaboração ao vivo no Excalidraw"},m={title:"Erro"},p={disk_title:"Guardar no disco",disk_details:"Exportar os dados da cena para um ficheiro do qual poderá importar mais tarde.",disk_button:"Guardar num ficheiro",link_title:"Link partilhável",link_details:"Exportar como um link de apenas leitura.",link_button:"Exportar para link",excalidrawplus_description:"Guardar a cena no seu espaço de trabalho Excalidraw+",excalidrawplus_button:"Exportar",excalidrawplus_exportError:"Não foi possível exportar para o Excalidraw+ neste momento..."},u={blog:"Leia o nosso blogue",click:"clicar",deepSelect:"Selecção profunda",deepBoxSelect:"Selecção profunda dentro da caixa, impedindo que seja arrastada",curvedArrow:"Seta curva",curvedLine:"Linha curva",documentation:"Documentação",doubleClick:"clique duplo",drag:"arrastar",editor:"Editor",editLineArrowPoints:"Editar pontos de linha/seta",editText:"Editar texto / adicionar etiqueta",github:"Encontrou algum problema? Informe-nos",howto:"Siga os nossos guias",or:"ou",preventBinding:"Prevenir fixação de seta",tools:"Ferramentas",shortcuts:"Atalhos de teclado",textFinish:"Finalizar edição (editor texto)",textNewLine:"Adicionar nova linha (editor de texto)",title:"Ajuda",view:"Visualizar",zoomToFit:"Ajustar para todos os elementos caberem",zoomToSelection:"Ampliar a seleção",toggleElementLock:"Trancar/destrancar selecção",movePageUpDown:"Mover página para cima / baixo",movePageLeftRight:"Mover página para esquerda / direita"},b={title:"Apagar tela"},g={title:"Publicar biblioteca",itemName:"Nome do item",authorName:"Nome do autor",githubUsername:"Nome de utilizador do GitHub",twitterUsername:"Nome de utilizador no Twitter",libraryName:"Nome da biblioteca",libraryDesc:"Descrição da biblioteca",website:"Página web",placeholder:{authorName:"Introduza o seu nome ou nome de utilizador",libraryName:"Nome da sua biblioteca",libraryDesc:"Descrição da sua biblioteca para ajudar as pessoas a entender a utilização dela",githubHandle:"Identificador do GitHub (opcional), para que possa editar a biblioteca depois desta ser enviada para revisão",twitterHandle:"Nome do Twitter (opcional), para que saibamos quem merece os créditos na promoção via Twitter",website:"Ligação para a sua página pessoal ou qualquer outra (opcional)"},errors:{required:"Obrigatório",website:"Introduza um URL válido"},noteDescription:"Envie a sua biblioteca para ser incluída no repositório de bibliotecas públicaspara outras pessoas a poderem usar nos seus próprios desenhos.",noteGuidelines:"A biblioteca precisa ser aprovada manualmente primeiro. Por favor, leia orientações antes de enviar. Vai precisar de uma conta no GitHub para comunicar e fazer alterações se solicitado, mas não é estritamente necessária.",noteLicense:"Ao enviar, concorda que a biblioteca será publicada sob a Licença MIT, o que significa, de forma resumida, que qualquer pessoa pode utilizá-la sem restrições.",noteItems:"Cada item da biblioteca deve ter o seu próprio nome para que este seja pesquisável com filtros. Os seguintes itens da biblioteca serão incluídos:",atleastOneLibItem:"Por favor, seleccione pelo menos um item da biblioteca para começar",republishWarning:"Nota: alguns dos itens seleccionados estão marcados como já publicados/enviados. Só deve reenviar itens ao actualizar uma biblioteca existente ou submissão."},v={title:"Biblioteca enviada",content:"Obrigado {{authorName}}. A sua biblioteca foi enviada para análise. Pode acompanhar o statusaqui"},h={resetLibrary:"Repor a biblioteca",removeItemsFromLib:"Remover os itens seleccionados da biblioteca"},f={header:"Exportar imagem",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"Cena embutida",scale:"",padding:"Espaçamento"},tooltip:{embedScene:""},title:{exportToPng:"Exportar em PNG",exportToSvg:"Exportar em SVG",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:""}},S={tooltip:"Os seus desenhos são encriptados de ponta-a-ponta, por isso os servidores do Excalidraw nunca os verão.",link:"Publicação de blogue na encriptação ponta-a-ponta no Excalidraw"},x={angle:"Ângulo",element:"Elemento",elements:"Elementos",height:"Altura",scene:"Cena",selected:"Selecionado",storage:"Armazenamento",title:"Estatísticas para nerds",total:"Total",version:"Versão",versionCopy:"Clique para copiar",versionNotAvailable:"Versão não disponível",width:"Largura"},C={addedToLibrary:"Acrescentado à biblioteca",copyStyles:"Estilos copiados.",copyToClipboard:"Copiado para a área de transferência.",copyToClipboardAsPng:`{{exportSelection}} copiado para a área de transferência como PNG -({{exportColorScheme}})`,fileSaved:"Ficheiro guardado.",fileSavedToFilename:"Guardado como {filename}",canvas:"área de desenho",selection:"seleção",pasteAsSingleElement:`Usar {{shortcut}} para colar como um único elemento, -ou colar num editor de texto existente`,unableToEmbed:"",unrecognizedLinkFormat:""},E={transparent:"Transparente",black:"Preto",white:"Branco",red:"Vermelho",pink:"Rosa",grape:"Uva",violet:"Violeta",gray:"Cinza",blue:"Azul",cyan:"",teal:"",green:"Verde",yellow:"Amarelo",orange:"Laranja",bronze:"Bronze"},y={app:{center_heading:"Todos os dados são guardados no seu navegador local.",center_heading_plus:"Queria antes ir para o Excalidraw+?",menuHint:"Exportar, preferências, idiomas..."},defaults:{menuHint:"Exportar, preferências e outros...",center_heading:"Diagramas. Feito. Simples.",toolbarHint:"Escolha uma ferramenta e comece a desenhar!",helpHint:"Atalhos e ajuda"}},T={mostUsedCustomColors:"",colors:"Cores",shades:"Tons",hexCode:"",noShades:""},A={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"Guardar no disco",button:"Guardar no disco",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"Carregar a partir de ficheiro",button:"Carregar a partir de ficheiro",description:""},shareableLink:{title:"",button:"",description:""}}},k={title:"",button:"",description:"",syntax:"",preview:""},w={labels:e,library:a,buttons:o,alerts:r,errors:i,toolBar:t,headings:n,hints:s,canvasError:l,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:p,helpDialog:u,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:v,confirmDialog:h,imageExportDialog:f,encrypted:S,stats:x,toast:C,colors:E,welcomeScreen:y,colorPicker:T,overwriteConfirm:A,mermaid:k};export{r as alerts,o as buttons,l as canvasError,b as clearCanvasDialog,T as colorPicker,E as colors,h as confirmDialog,w as default,S as encrypted,m as errorDialog,d as errorSplash,i as errors,p as exportDialog,n as headings,u as helpDialog,s as hints,f as imageExportDialog,e as labels,a as library,k as mermaid,A as overwriteConfirm,g as publishDialog,v as publishSuccessDialog,c as roomDialog,x as stats,C as toast,t as toolBar,y as welcomeScreen}; -//# sourceMappingURL=pt-PT.json-kkhuggAD.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js.map b/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js.map deleted file mode 100644 index 0206df1..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/pt-PT.json-kkhuggAD.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pt-PT.json-kkhuggAD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js b/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js deleted file mode 100644 index ba4b42e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js +++ /dev/null @@ -1,12 +0,0 @@ -const e={paste:"Lipire",pasteAsPlaintext:"Inserare ca text simplu",pasteCharts:"Lipire diagrame",selectAll:"Selectare totală",multiSelect:"Adaugă element la selecție",moveCanvas:"Mutare pânză",cut:"Decupare",copy:"Copiere",copyAsPng:"Copiere în memoria temporară ca PNG",copyAsSvg:"Copiere în memoria temporară ca SVG",copyText:"Copiere în memoria temporară ca text",copySource:"Copiere sursă în memoria temporară",convertToCode:"Convertire în cod",bringForward:"Aducere în plan apropiat",sendToBack:"Trimitere în ultimul plan",bringToFront:"Aducere în prim plan",sendBackward:"Trimitere în plan secundar",delete:"Ștergere",copyStyles:"Copiere stiluri",pasteStyles:"Lipire stiluri",stroke:"Contur",background:"Fundal",fill:"Umplere",strokeWidth:"Lățimea conturului",strokeStyle:"Stilul conturului",strokeStyle_solid:"Neîntrerupt",strokeStyle_dashed:"Liniuțe",strokeStyle_dotted:"Punctat",sloppiness:"Aspectul trasării",opacity:"Opacitate",textAlign:"Alinierea textului",edges:"Margini",sharp:"Ascuțite",round:"Rotunde",arrowheads:"Vârfuri de săgeată",arrowhead_none:"Niciunul",arrowhead_arrow:"Săgeată",arrowhead_bar:"Bară",arrowhead_circle:"Cerc",arrowhead_circle_outline:"Cerc (contur)",arrowhead_triangle:"Triunghi",arrowhead_triangle_outline:"Triunghi (contur)",arrowhead_diamond:"Romb",arrowhead_diamond_outline:"Romb (contur)",fontSize:"Dimensiune font",fontFamily:"Familia de fonturi",addWatermark:"Adaugă „Realizat cu Excalidraw”",handDrawn:"Scris de mână",normal:"Normal",code:"Cod",small:"Mică",medium:"Medie",large:"Mare",veryLarge:"Foarte mare",solid:"Plină",hachure:"Hașură",zigzag:"Zigzag",crossHatch:"Hașură transversală",thin:"Subțire",bold:"Îngroșată",left:"Stânga",center:"Centru",right:"Dreapta",extraBold:"Extra îngroșată",architect:"Arhitect",artist:"Artist",cartoonist:"Caricaturist",fileTitle:"Nume de fișier",colorPicker:"Selector de culoare",canvasColors:"Folosite pe pânză",canvasBackground:"Fundalul pânzei",drawingCanvas:"Pânză pentru desenat",layers:"Straturi",actions:"Acțiuni",language:"Limbă",liveCollaboration:"Colaborare în direct...",duplicateSelection:"Duplicare",untitled:"Nedenumit",name:"Nume",yourName:"Numele tău",madeWithExcalidraw:"Realizat cu Excalidraw",group:"Grupare selecție",ungroup:"Degrupare selecție",collaborators:"Colaboratori",showGrid:"Afișare grilă",addToLibrary:"Adăugare la bibliotecă",removeFromLibrary:"Eliminare din bibliotecă",libraryLoadingMessage:"Se încarcă biblioteca…",libraries:"Răsfoiește bibliotecile",loadingScene:"Se încarcă scena…",align:"Aliniere",alignTop:"Aliniere sus",alignBottom:"Aliniere jos",alignLeft:"Aliniere la stânga",alignRight:"Aliniere la dreapta",centerVertically:"Centrare verticală",centerHorizontally:"Centrare orizontală",distributeHorizontally:"Distribuie orizontal",distributeVertically:"Distribuie vertical",flipHorizontal:"Răsturnare orizontală",flipVertical:"Răsturnare verticală",viewMode:"Mod de vizualizare",share:"Distribuie",showStroke:"Afișare selector culoare contur",showBackground:"Afișare selector culoare fundal",toggleTheme:"Comutare temă",personalLib:"Biblioteca personală",excalidrawLib:"Biblioteca Excalidraw",decreaseFontSize:"Micșorează dimensiunea fontului",increaseFontSize:"Mărește dimensiunea fontului",unbindText:"Deconectare text",bindText:"Legare text de container",createContainerFromText:"Încadrare text într-un container",link:{edit:"Editare URL",editEmbed:"Editare URL și încorporare",create:"Creare URL",createEmbed:"Creare URL și încorporare",label:"URL",labelEmbed:"URL și încorporare",empty:"Nu este setat niciun URL"},lineEditor:{edit:"Editare linie",exit:"Părăsire editor de linii"},elementLock:{lock:"Blocare",unlock:"Deblocare",lockAll:"Blocare toate",unlockAll:"Deblocare toate"},statusPublished:"Publicat",sidebarLock:"Păstrează deschisă bara laterală",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"Alegere culoare din pânză",textToDiagram:"Text la diagramă",prompt:"Solicitare"},a={noItems:"Niciun element adăugat încă...",hint_emptyLibrary:"Selectează un element de pe pânză pentru a-l adăuga aici sau instalează o bibliotecă din depozitul public, de mai jos.",hint_emptyPrivateLibrary:"Selectează un element de pe pânză pentru a-l adăuga aici."},i={clearReset:"Resetare pânză",exportJSON:"Exportare la fișiere",exportImage:"Exportare imagine...",export:"Salvare în...",copyToClipboard:"Copiere în memoria temporară",save:"Salvare în fișierul curent",saveAs:"Salvare ca",load:"Deschidere",getShareableLink:"Obține URL partajabil",close:"Închidere",selectLanguage:"Selectare limbă",scrollBackToContent:"Derulare înapoi la conținut",zoomIn:"Apropiere",zoomOut:"Depărtare",resetZoom:"Resetare transfocare",menu:"Meniu",done:"Efectuat",edit:"Edit",undo:"Anulare",redo:"Refacere",resetLibrary:"Resetare bibliotecă",createNewRoom:"Creare cameră nouă",fullScreen:"Ecran complet",darkMode:"Mod întunecat",lightMode:"Mod luminos",zenMode:"Mod zen",objectsSnapMode:"Ancorare la obiecte",exitZenMode:"Ieșire din modul zen",cancel:"Anulare",clear:"Ștergere",remove:"Eliminare",embed:"Comutare încorporare",publishLibrary:"Publicare",submit:"Trimitere",confirm:"Confirmare",embeddableInteractionButton:"Clic pentru interacționare"},r={clearReset:"Această opțiune va șterge întreaga pânză. Confirmi?",couldNotCreateShareableLink:"Nu s-a putut crea un URL partajabil.",couldNotCreateShareableLinkTooBig:"Nu s-a putut crea un URL partajabil: scena este prea mare",couldNotLoadInvalidFile:"Fișierul invalid nu a putut fi încărcat",importBackendFailed:"Importarea de la nivel de server a eșuat.",cannotExportEmptyCanvas:"Nu se poate exporta pânza goală.",couldNotCopyToClipboard:"Nu s-a putut copia în memoria temporară.",decryptFailed:"Datele nu au putut fi decriptate.",uploadedSecurly:"Încărcarea a fost securizată prin criptare integrală, însemnând că serverul Excalidraw și terții nu pot citi conținutul.",loadSceneOverridePrompt:"Încărcarea desenului extern va înlocui conținutul existent. Dorești să continui?",collabStopOverridePrompt:`Oprirea sesiunii va suprascrie desenul anterior stocat local. Confirmi alegerea? - -(Dacă vrei să păstrezi desenul local, pur și simplu închide fila navigatorului în schimb.)`,errorAddingToLibrary:"Elementul nu a putut fi adăugat în bibliotecă",errorRemovingFromLibrary:"Elementul nu a putut fi eliminat din bibliotecă",confirmAddLibrary:"Această acțiune va adăuga {{numShapes}} formă(e) la biblioteca ta. Confirmi?",imageDoesNotContainScene:"Această imagine nu pare să conțină date de scenă. Ai activat încorporarea scenei în timpul exportului?",cannotRestoreFromImage:"Scena nu a putut fi restaurată din acest fișier de imagine",invalidSceneUrl:"Scena nu a putut fi importată din URL-ul furnizat. Este fie incorect formată, fie nu conține date JSON Excalidraw valide.",resetLibrary:"Această opțiune va elimina conținutul din bibliotecă. Confirmi?",removeItemsFromsLibrary:"Ștergi {{count}} element(e) din bibliotecă?",invalidEncryptionKey:"Cheia de criptare trebuie să aibă 22 de caractere. Colaborarea în direct este dezactivată.",collabOfflineWarning:`Nu este disponibilă nicio conexiune la internet. -Modificările nu vor fi salvate!`},t={unsupportedFileType:"Tip de fișier neacceptat.",imageInsertError:"Imaginea nu a putut fi introdusă. Reîncearcă mai târziu...",fileTooBig:"Fișierul este prea mare. Dimensiunea maximă permisă este de {{maxSize}}.",svgImageInsertError:"Imaginea SVG nu a putut fi introdus. Marcajul SVG pare invalid.",failedToFetchImage:"Preluarea imaginii a eșuat.",invalidSVGString:"SVG invalid.",cannotResolveCollabServer:"Nu a putut fi realizată conexiunea la serverul de colaborare. Reîncarcă pagina și încearcă din nou.",importLibraryError:"Biblioteca nu a putut fi încărcată",collabSaveFailed:"Nu s-a putut salva în baza de date la nivel de server. Dacă problemele persistă, ar trebui să salvezi fișierul la nivel local pentru a te asigura că nu îți pierzi munca.",collabSaveFailed_sizeExceeded:"Nu s-a putut salva în baza de date la nivel de server, întrucât se pare că pânza este prea mare. Ar trebui să salvezi fișierul la nivel local pentru a te asigura că nu îți pierzi munca.",imageToolNotSupported:"Imaginile sunt dezactivate.",brave_measure_text_error:{line1:"Se pare că folosești navigatorul Brave cu opțiunea strictă pentru blocarea amprentării.",line2:"Acest lucru poate duce la întreruperea elementelor text din desene.",line3:"Îți recomandăm ferm să dezactivezi această setare. Poți urma acești pași pentru a face acest lucru.",line4:"Dacă dezactivarea acestei setări nu duce la remedierea afișării elementelor text, deschide un tichet de problemă pe pagina noastră de GitHub sau scrie-ne pe Discord"},libraryElementTypeError:{embeddable:"Elementele încorporabile nu pot fi adăugate la bibliotecă.",iframe:"Elementele iFrame nu pot fi adăugate la bibliotecă.",image:"În curând vor putea fi adăugate imagini în bibliotecă!"},asyncPasteFailedOnRead:"Lipirea nu a putut fi efectuată (nu s-a putut citit din memoria temporară a sistemului).",asyncPasteFailedOnParse:"Lipirea nu a putut fi efectuată.",copyToSystemClipboardFailed:"Nu s-a putut copia în memoria temporară."},n={selection:"Selecție",image:"Introducere imagine",rectangle:"Dreptunghi",diamond:"Romb",ellipse:"Elipsă",arrow:"Săgeată",line:"Linie",freedraw:"Desenare",text:"Text",library:"Bibliotecă",lock:"Menține activ instrumentul selectat după desenare",penMode:"Mod stilou – împiedică atingerea",link:"Adăugare/actualizare URL pentru forma selectată",eraser:"Radieră",frame:"",magicframe:"Structură-de-fire la cod",embeddable:"Încorporare web",laser:"Indicator laser",hand:"Mână (instrument de panoramare)",extraTools:"",mermaidToExcalidraw:"Mermaid la Excalidraw",magicSettings:"Setări IA"},o={canvasActions:"Acțiuni pentru pânză",selectedShapeActions:"Acțiuni pentru forma selectată",shapes:"Forme"},l={canvasPanning:"Pentru a muta pânză, ține apăsată rotița mausului sau bara de spațiu sau folosește instrumentul în formă de mână",linearElement:"Dă clic pentru a crea mai multe puncte, glisează pentru a forma o singură linie",freeDraw:"Dă clic pe pânză și glisează cursorul, apoi eliberează-l când ai terminat",text:"Sfat: poți adăuga text și dând dublu clic oriunde cu instrumentul de selecție",embeddable:"Dă clic și trage pentru a crea un cod de încorporare de pagină web",text_selected:"Dă dublu clic sau apasă tasta Enter pentru a edita textul",text_editing:"Apasă tasta Escape sau Ctrl sau Cmd + Enter pentru a finaliza editarea",linearElementMulti:"Dă clic pe ultimul punct sau apasă tasta Escape sau tasta Enter pentru a termina",lockAngle:"Poți constrânge unghiul prin ținerea apăsată a tastei SHIFT",resize:`Poți constrânge proporțiile, ținând apăsată tasta SHIFT în timp ce redimensionezi, -ține apăsată tasta ALT pentru a redimensiona de la centru`,resizeImage:`Poți redimensiona liber ținând apăsată tasta SHIFT, -ține apăsată tasta ALT pentru a redimensiona din centru`,rotate:"Poți constrânge unghiurile, ținând apăsată tasta SHIFT în timp ce rotești",lineEditor_info:"Ține apăsată tasta Ctrl sau Cmd și dă dublu clic sau apasă tasta Ctrl sau Cmd + Enter pentru a edita puncte",lineEditor_pointSelected:`Apasă tasta Delete pentru a elimina punctele, -combinația de taste Ctrl sau Cmd + D pentru a le duplica sau glisează-le pentru a le schimba poziția`,lineEditor_nothingSelected:`Selectează un punct pentru a-l edita (ține apăsată tasta SHIFT pentru a selecta mai multe), -sau ține apăsată tasta Alt și dă clic pentru a adăuga puncte noi`,placeImage:"Dă clic pentru a poziționa imaginea sau dă clic și glisează pentru a seta manual dimensiunea imaginii",publishLibrary:"Publică propria bibliotecă",bindTextToElement:"Apasă tasta Enter pentru a adăuga text",deepBoxSelect:"Ține apăsată tasta Ctrl sau Cmd pentru a efectua selectarea de adâncime și pentru a preveni glisarea",eraserRevert:"Ține apăsată tasta Alt pentru a anula elementele marcate pentru ștergere",firefox_clipboard_write:"Această caracteristică poate fi probabil activată prin setarea preferinței „dom.events.asyncClipboard.clipboardItem” ca „true”. Pentru a schimba preferințele navigatorului în Firefox, accesează pagina „about:config”.",disableSnapping:"Ține apăsat CtrlOrCmd pentru a dezactiva ancorarea"},c={cannotShowPreview:"Nu se poate afișa previzualizarea",canvasTooBig:"Pânza poate fi prea mare.",canvasTooBigTip:"Sfat: încearcă să apropii puțin mai mult elementele cele mai îndepărtate."},u={headingMain:"A apărut o eroare. Încearcă .",clearCanvasMessage:"Dacă reîncărcarea nu funcționează, încearcă .",clearCanvasCaveat:" Acest lucru va duce la pierderea progresului ",trackedToSentry:"Eroarea cu identificatorul {{eventId}} a fost urmărită în sistemul nostru.",openIssueMessage:"Am luat măsuri de precauție pentru a nu include informații despre scenă în eroare. Dacă scena nu este privată, oferă-ne mai multe informații în . Include informațiile de mai jos copiindu-le și lipindu-le în tichetul cu problemă de pe GitHub.",sceneContent:"Conținutul scenei:"},s={desc_intro:"Poți invita alte persoane pentru a colabora la scena actuală.",desc_privacy:"Nu te îngrijora. Sesiunea utilizează criptarea integrală, astfel încât orice desenezi va rămâne privat. Nici măcar serverul nostru nu va putea vedea pe ce ai lucrat.",button_startSession:"Pornire sesiune",button_stopSession:"Oprire sesiune",desc_inProgressIntro:"Sesiunea de colaborare în direct este în curs de desfășurare.",desc_shareLink:"Distribuie acest URL persoanelor cu care dorești să colaborezi:",desc_exitSession:"Oprirea sesiunii te va deconecta de la sală, însă vei putea lucra în continuare, pe plan local, cu scena. Reține că această opțiune nu va afecta alte persoane, iar acestea vor putea să colaboreze în continuare pe versiunea lor.",shareTitle:"Alătură-te unei sesiuni de colaborare în direct pe Excalidraw"},d={title:"Eroare"},p={disk_title:"Salvare pe disc",disk_details:"Exportă datele scenei pe un fișier din care poți importa mai târziu.",disk_button:"Salvare în fișier",link_title:"URL partajabil",link_details:"Exportă ca URL doar în citire.",link_button:"Exportare în URL",excalidrawplus_description:"Salvează scena în spațiul de lucru Excalidraw+.",excalidrawplus_button:"Exportare",excalidrawplus_exportError:"Excalidraw+ nu a putut fi exportat în acest moment..."},m={blog:"Citește blogul nostru",click:"clic",deepSelect:"Selectare de adâncime",deepBoxSelect:"Selectare de adâncime în casetă și prevenire glisare",curvedArrow:"Săgeată curbată",curvedLine:"Linie curbată",documentation:"Documentație",doubleClick:"dublu clic",drag:"glisare",editor:"Editor",editLineArrowPoints:"Editare puncte de săgeată/rând",editText:"Editare text/adăugare etichetă",github:"Ai întâmpinat o problemă? Trimite un raport",howto:"Urmărește ghidurile noastre",or:"sau",preventBinding:"Împiedică legarea săgeții",tools:"Instrumente",shortcuts:"Comenzi rapide de la tastatură",textFinish:"Finalizează editarea (editor de text)",textNewLine:"Adaugă o linie nouă (editor de text)",title:"Ajutor",view:"Vizualizare",zoomToFit:"Transfocare pentru a cuprinde totul",zoomToSelection:"Transfocare la selecție",toggleElementLock:"Blocare/deblocare selecție",movePageUpDown:"Deplasare pagină sus/jos",movePageLeftRight:"Deplasare pagină stânga/dreapta"},b={title:"Ștergere pânză"},g={title:"Publicare bibliotecă",itemName:"Denumirea elementului",authorName:"Numele autorului",githubUsername:"Numele de utilizator GitHub",twitterUsername:"Numele de utilizator Twitter",libraryName:"Denumirea bibliotecii",libraryDesc:"Descrierea bibliotecii",website:"Pagină de internet",placeholder:{authorName:"Numele sau numele tău de utilizator",libraryName:"Numele bibliotecii tale",libraryDesc:"Descrierea bibliotecii tale pentru a ajuta oamenii să înțeleagă utilizarea acesteia",githubHandle:"Numele de utilizator GitHub (opțional), pentru a putea edita biblioteca odată ce este trimisă spre revizuire",twitterHandle:"Numele de utilizator Twitter (opțional), pentru a indica sursa la promovarea pe Twitter",website:"Trimitere către pagina ta personală de internet sau altundeva (opțional)"},errors:{required:"Obligatoriu",website:"Introdu un URL valid"},noteDescription:"Trimite-ți biblioteca pentru a fi inclusă în depozitul de biblioteci publice în vederea utilizării de către alte persoane în desenele lor.",noteGuidelines:"Biblioteca trebuie aprobată manual mai întâi. Citește orientările înainte de trimitere. Vei avea nevoie de un cont GitHub pentru a comunica și efectua modificări, dacă este cazul, însă nu este strict necesar.",noteLicense:"Prin trimiterea bibliotecii, ești de acord că aceasta va fi publicată sub Licența MIT, care, pe scurt, înseamnă că oricine o poate folosi fără restricții.",noteItems:"Fiecare element din bibliotecă trebuie să aibă propriul nume astfel încât să fie filtrabil. Următoarele elemente din bibliotecă vor fi incluse:",atleastOneLibItem:"Selectează cel puțin un element din bibliotecă pentru a începe",republishWarning:"Observație: unele dintre elementele selectate sunt marcate ca fiind deja publicate/trimise. Ar trebui să retrimiți elemente numai atunci când actualizezi o trimitere sau o bibliotecă existentă."},v={title:"Bibliotecă trimisă",content:"Îți mulțumim, {{authorName}}. Biblioteca a fost trimisă spre revizuire. Poți urmări starea aici"},f={resetLibrary:"Resetare bibliotecă",removeItemsFromLib:"Elimină elementele selectate din bibliotecă"},S={header:"Exportare imagine",label:{withBackground:"Fundal",onlySelected:"Numai selecția",darkMode:"Mod întunecat",embedScene:"Încorporare scenă",scale:"Scală",padding:"Spațiere"},tooltip:{embedScene:`Datele scenei vor fi salvate în fișierul PNG/SVG exportat, astfel că scena va putea fi restaurată din acesta. -Va crește dimensiunea fișierului exportat.`},title:{exportToPng:"Exportare ca PNG",exportToSvg:"Exportare ca SVG",copyPngToClipboard:"Copiere PNG în memoria temporară"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Copiere în memoria temporară"}},z={tooltip:"Desenele tale sunt criptate integral, astfel că serverele Excalidraw nu le vor vedea niciodată.",link:"Articol de blog pe criptarea integrală din Excalidraw"},x={angle:"Unghi",element:"Element",elements:"Elemente",height:"Înălțime",scene:"Scenă",selected:"Selectate",storage:"Stocare",title:"Statistici pentru pasionați",total:"Total",version:"Versiune",versionCopy:"Clic pentru copiere",versionNotAvailable:"Versiune indisponibilă",width:"Lățime"},h={addedToLibrary:"Adăugat în bibliotecă",copyStyles:"Stiluri copiate.",copyToClipboard:"Copiat în memoria temporară.",copyToClipboardAsPng:`S-a copiat {{exportSelection}} în memoria temporară sub formă de PNG -({{exportColorScheme}})`,fileSaved:"Fișier salvat.",fileSavedToFilename:"Salvat în {filename}",canvas:"pânza",selection:"selecția",pasteAsSingleElement:`Folosește {{shortcut}} pentru a insera ca un singur element -sau insera într-un editor de text existent`,unableToEmbed:"Încorporarea acestui URL nu este permisă momentan. Deschideți un tichet cu probleme pe GitHub pentru a solicita adăugarea acestui URL în lista albă",unrecognizedLinkFormat:"URL-ul pe care l-ai încorporat nu coincide cu formatul așteptat. Încearcă să lipești șirul „de încorporat” furnizat de pagina sursă"},C={transparent:"Transparent",black:"Negru",white:"Alb",red:"Roșu",pink:"Roz",grape:"Struguriu",violet:"Violet",gray:"Gri",blue:"Albastru",cyan:"Cyan",teal:"Cyan-verde",green:"Verde",yellow:"Galben",orange:"Portocaliu",bronze:"Bronz"},E={app:{center_heading:"Toate datele tale sunt salvate local în navigatorul tău.",center_heading_plus:"Ai vrut să mergi în schimb la Excalidraw+?",menuHint:"Exportare, preferințe, limbi, ..."},defaults:{menuHint:"Exportare, preferințe și mai multe...",center_heading:"Diagrame. Făcute. Simple.",toolbarHint:"Alege un instrument și începe să desenezi!",helpHint:"Comenzi rapide și ajutor"}},L={mostUsedCustomColors:"Cele mai utilizate culori personalizate",colors:"Culori",shades:"Nuanțe",hexCode:"Cod hexa",noShades:"Nu este disponibilă nicio nuanță pentru această culoare"},y={action:{exportToImage:{title:"Exportare ca imagine",button:"Exportare ca imagine",description:"Exportă datele scenei ca fișier din care poți importa mai târziu."},saveToDisk:{title:"Salvare pe disc",button:"Salvare pe disc",description:"Exportă datele scenei pe un fișier din care poți importa mai târziu."},excalidrawPlus:{title:"Excalidraw+",button:"Exportare în Excalidraw+",description:"Salvează scena în spațiul de lucru Excalidraw+."}},modal:{loadFromFile:{title:"Încărcare din fișier",button:"Încărcare din fișier",description:"Încărcarea dintr-un fișier va înlocui conținutul existent.

    Poți face mai întâi o copie de rezervă a desenului folosind una dintre opțiunile de mai jos."},shareableLink:{title:"Încărcare din lnk",button:"Înlocuiește conținutul meu",description:"Încărcarea unui desen extern va înlocui conținutul existent.

    Poți face mai întâi o copie de rezervă a desenului folosind una dintre opțiunile de mai jos."}}},w={title:"Mermaid la Excalidraw",button:"Introducere",description:"În prezent, numai Organigramele, Diagramele de secvență și Diagramele de clasă sunt acceptate. Celelalte tipuri vor fi redate ca imagine în Excalidraw.",syntax:"Sintaxă Mermaid",preview:"Previzualizare"},A={labels:e,library:a,buttons:i,alerts:r,errors:t,toolBar:n,headings:o,hints:l,canvasError:c,errorSplash:u,roomDialog:s,errorDialog:d,exportDialog:p,helpDialog:m,clearCanvasDialog:b,publishDialog:g,publishSuccessDialog:v,confirmDialog:f,imageExportDialog:S,encrypted:z,stats:x,toast:h,colors:C,welcomeScreen:E,colorPicker:L,overwriteConfirm:y,mermaid:w};export{r as alerts,i as buttons,c as canvasError,b as clearCanvasDialog,L as colorPicker,C as colors,f as confirmDialog,A as default,z as encrypted,d as errorDialog,u as errorSplash,t as errors,p as exportDialog,o as headings,m as helpDialog,l as hints,S as imageExportDialog,e as labels,a as library,w as mermaid,y as overwriteConfirm,g as publishDialog,v as publishSuccessDialog,s as roomDialog,x as stats,h as toast,n as toolBar,E as welcomeScreen}; -//# sourceMappingURL=ro-RO.json-IuXq2Sgz.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js.map b/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js.map deleted file mode 100644 index ad3cdba..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ro-RO.json-IuXq2Sgz.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ro-RO.json-IuXq2Sgz.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js b/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js deleted file mode 100644 index f977d25..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"Вставить",pasteAsPlaintext:"Вставить как обычный текст",pasteCharts:"Вставить диаграммы",selectAll:"Выбрать всё",multiSelect:"Добавить элемент в выделенный фрагмент",moveCanvas:"Переместить холст",cut:"Вырезать",copy:"Копировать",copyAsPng:"Скопировать в буфер обмена как PNG",copyAsSvg:"Скопировать в буфер обмена как SVG",copyText:"Скопировать в буфер обмена как текст",copySource:"Копировать источник в буфер обмена",convertToCode:"Преобразовать в код",bringForward:"Переместить вперед",sendToBack:"На задний план",bringToFront:"На передний план",sendBackward:"Переместить назад",delete:"Удалить",copyStyles:"Скопировать стили",pasteStyles:"Вставить стили",stroke:"Обводка",background:"Фон",fill:"Заливка",strokeWidth:"Толщина штриха",strokeStyle:"Стиль обводки",strokeStyle_solid:"Сплошная",strokeStyle_dashed:"Пунктирная",strokeStyle_dotted:"Точечная",sloppiness:"Стиль обводки",opacity:"Непрозрачность",textAlign:"Выравнивание текста",edges:"Края",sharp:"Острые",round:"Скругленные",arrowheads:"Стрелка",arrowhead_none:"Нет",arrowhead_arrow:"Cтрелка",arrowhead_bar:"Черта",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Треугольник",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Размер шрифта",fontFamily:"Семейство шрифтов",addWatermark:"Добавить «Создано в Excalidraw»",handDrawn:"От руки",normal:"Обычный",code:"Код",small:"Малый",medium:"Средний",large:"Большой",veryLarge:"Очень большой",solid:"Однотонная",hachure:"Штрихованная",zigzag:"Зигзаг",crossHatch:"Перекрестная",thin:"Тонкая",bold:"Жирная",left:"Слева",center:"Центр",right:"Справа",extraBold:"Очень жирная",architect:"Архитектор",artist:"Художник",cartoonist:"Карикатурист",fileTitle:"Имя файла",colorPicker:"Выбор цвета",canvasColors:"Используется на холсте",canvasBackground:"Фон холста",drawingCanvas:"Полотно",layers:"Слои",actions:"Действия",language:"Язык",liveCollaboration:"Онлайн взаимодействие...",duplicateSelection:"Дубликат",untitled:"Безымянный",name:"Имя",yourName:"Ваше имя",madeWithExcalidraw:"Сделано в Excalidraw",group:"Сгруппировать выделение",ungroup:"Разделить выделение",collaborators:"Участники",showGrid:"Показать сетку",addToLibrary:"Добавить в библиотеку",removeFromLibrary:"Удалить из библиотеки",libraryLoadingMessage:"Загрузка библиотеки…",libraries:"Просмотреть библиотеки",loadingScene:"Загрузка сцены…",align:"Выровнять",alignTop:"Выровнять по верхнему краю",alignBottom:"Выровнять по нижнему краю",alignLeft:"Выровнять по левому краю",alignRight:"Выровнять по правому краю",centerVertically:"Центрировать по вертикали",centerHorizontally:"Центрировать по горизонтали",distributeHorizontally:"Распределить по горизонтали",distributeVertically:"Распределить по вертикали",flipHorizontal:"Переворот по горизонтали",flipVertical:"Переворот по вертикали",viewMode:"Вид",share:"Поделиться",showStroke:"Показать выбор цвета обводки",showBackground:"Показать выбор цвета фона",toggleTheme:"Переключить тему",personalLib:"Личная библиотека",excalidrawLib:"Библиотека Excalidraw",decreaseFontSize:"Уменьшить шрифт",increaseFontSize:"Увеличить шрифт",unbindText:"Отвязать текст",bindText:"Привязать текст к контейнеру",createContainerFromText:"Поместить текст в контейнер",link:{edit:"Редактировать ссылку",editEmbed:"",create:"Создать ссылку",createEmbed:"",label:"Ссылка",labelEmbed:"",empty:""},lineEditor:{edit:"Редактирование строки",exit:"Выход из редактора строки"},elementLock:{lock:"Блокировать",unlock:"Разблокировать",lockAll:"Заблокировать все",unlockAll:"Разблокировать все"},statusPublished:"Опубликовано",sidebarLock:"Держать боковую панель открытой",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"Взять образец цвета с холста",textToDiagram:"Текст в диаграмму",prompt:""},t={noItems:"Пока ничего не добавлено...",hint_emptyLibrary:"Выберите объект на холсте, чтобы добавить его сюда, или установите библиотеку из публичного репозитория ниже.",hint_emptyPrivateLibrary:"Выберите объект на холсте, чтобы добавить его сюда."},o={clearReset:"Очистить холст и сбросить цвет фона",exportJSON:"Сохранить в",exportImage:"Экспортировать изображение...",export:"Сохранить как...",copyToClipboard:"Скопировать в буфер обмена",save:"Сохранить в текущий файл",saveAs:"Сохранить как",load:"Открыть",getShareableLink:"Получить доступ по ссылке",close:"Закрыть",selectLanguage:"Выбрать язык",scrollBackToContent:"Вернуться к содержимому",zoomIn:"Увеличить",zoomOut:"Уменьшить",resetZoom:"Сбросить масштаб",menu:"Меню",done:"Готово",edit:"Изменить",undo:"Шаг назад",redo:"Шаг вперед",resetLibrary:"Сброс библиотеки",createNewRoom:"Создать новую комнату",fullScreen:"Полный экран",darkMode:"Темная тема",lightMode:"Светлая тема",zenMode:"Режим Дзен",objectsSnapMode:"Привязка к объектам",exitZenMode:"Выключить режим концентрации внимания",cancel:"Отменить",clear:"Очистить",remove:"Удалить",embed:"",publishLibrary:"Опубликовать",submit:"Отправить",confirm:"Подтвердить",embeddableInteractionButton:""},r={clearReset:"Это очистит весь холст. Вы уверены?",couldNotCreateShareableLink:"Не удалось создать общедоступную ссылку.",couldNotCreateShareableLinkTooBig:"Нельзя создать ссылку, чтобы поделиться. Сцена слишком большая",couldNotLoadInvalidFile:"Не удалось загрузить недопустимый файл",importBackendFailed:"Не удалось импортировать из бэкэнда.",cannotExportEmptyCanvas:"Не может экспортировать пустой холст.",couldNotCopyToClipboard:"Не удалось скопировать в буфер обмена.",decryptFailed:"Не удалось расшифровать данные.",uploadedSecurly:"Загружаемые данные защищена сквозным шифрованием, что означает, что сервер Excalidraw и третьи стороны не могут прочитать содержимое.",loadSceneOverridePrompt:"Загрузка рисунка приведёт к замене имеющегося содержимого. Вы хотите продолжить?",collabStopOverridePrompt:`Остановка сессии перезапишет ваш предыдущий, локально сохранённый рисунок. Вы уверены? - -(Если вы хотите оставить ваш локальный рисунок, просто закройте вкладку браузера)`,errorAddingToLibrary:"Не удалось добавить объект в библиотеку",errorRemovingFromLibrary:"Не удалось удалить объект из библиотеки",confirmAddLibrary:"Будет добавлено {{numShapes}} фигур в вашу библиотеку. Продолжить?",imageDoesNotContainScene:"Это изображение не содержит данных сцены. Вы включили встраивание сцены во время экспорта?",cannotRestoreFromImage:"Сцена не может быть восстановлена из этого изображения",invalidSceneUrl:"Невозможно импортировать сцену с предоставленного URL. Неверный формат, или не содержит верных Excalidraw JSON данных.",resetLibrary:"Это очистит вашу библиотеку. Вы уверены?",removeItemsFromsLibrary:"Удалить {{count}} объект(ов) из библиотеки?",invalidEncryptionKey:"Ключ шифрования должен состоять из 22 символов. Одновременное редактирование отключено.",collabOfflineWarning:`Отсутствует интернет-соединение. -Ваши изменения не будут сохранены!`},a={unsupportedFileType:"Неподдерживаемый тип файла.",imageInsertError:"Не удалось вставить изображение. Попробуйте позже...",fileTooBig:"Очень большой файл. Максимально разрешенный размер {{maxSize}}.",svgImageInsertError:"Не удалось вставить изображение SVG. Разметка SVG выглядит недействительной.",failedToFetchImage:"Не удалось получить изображение.",invalidSVGString:"Некорректный SVG.",cannotResolveCollabServer:"Не удалось подключиться к серверу совместного редактирования. Перезагрузите страницу и повторите попытку.",importLibraryError:"Не удалось загрузить библиотеку",collabSaveFailed:"Не удалось сохранить в базу данных. Если проблема повторится, нужно будет сохранить файл локально, чтобы быть уверенным, что вы не потеряете вашу работу.",collabSaveFailed_sizeExceeded:"Не удалось сохранить в базу данных. Похоже, что холст слишком большой. Нужно сохранить файл локально, чтобы быть уверенным, что вы не потеряете вашу работу.",imageToolNotSupported:"Изображения отключены.",brave_measure_text_error:{line1:"Похоже, вы используете браузер Brave с включенной опцией Агрессивно блокировать отслеживание.",line2:"Это может привести к поломке Текстовых объектов на рисунке.",line3:"Мы настоятельно рекомендуем отключить эту настройку. Для этого нужно выполнить эти шаги.",line4:"Если отключение этой настройки не исправит отображение текстовых объектов, создайте issue на нашем GitHub или напишите нам в Discord"},libraryElementTypeError:{embeddable:"",iframe:"Элементы IFrame не могут быть добавлены в библиотеку.",image:""},asyncPasteFailedOnRead:"Не удалось вставить (невозможно прочитать из системного буфера обмена).",asyncPasteFailedOnParse:"Не удалось вставить.",copyToSystemClipboardFailed:"Не удалось скопировать в буфер обмена."},i={selection:"Выделение области",image:"Вставить изображение",rectangle:"Прямоугольник",diamond:"Ромб",ellipse:"Эллипс",arrow:"Cтрелка",line:"Линия",freedraw:"Чертить",text:"Текст",library:"Библиотека",lock:"Сохранять выбранный инструмент активным после рисования",penMode:"Режим пера - предотвращение касания",link:"Добавить/обновить ссылку для выбранной фигуры",eraser:"Ластик",frame:"",magicframe:"",embeddable:"",laser:"Лазерная указка",hand:"Рука (перемещение холста)",extraTools:"",mermaidToExcalidraw:"Из Mermaid в Excalidraw",magicSettings:"Параметры AI"},l={canvasActions:"Операции холста",selectedShapeActions:"Операции выбранной фигуры",shapes:"Фигуры"},n={canvasPanning:'Чтобы двигать холст, удерживайте колесо мыши или пробел во время перетаскивания, или используйте инструмент "Рука"',linearElement:"Нажмите, чтобы начать несколько точек, перетащите для одной линии",freeDraw:"Нажмите и перетаскивайте, отпустите по завершении",text:"Совет: при выбранном инструменте выделения дважды щёлкните в любом месте, чтобы добавить текст",embeddable:"",text_selected:"Дважды щелкните мышью или нажмите ENTER, чтобы редактировать текст",text_editing:"Нажмите Escape либо Ctrl или Cmd + ENTER для завершения редактирования",linearElementMulti:"Кликните на последней точке или нажмите Escape или Enter чтобы закончить",lockAngle:"Вы можете ограничить угол удерживая SHIFT",resize:`Вы можете ограничить пропорции, удерживая SHIFT во время изменения размеров, -удерживайте ALT чтобы изменить размер из центра`,resizeImage:`Вы можете свободно изменять размеры, удерживая кнопку SHIFT, -удерживайте кнопку ALT, чтобы изменять размер относительно центра`,rotate:"Вы можете ограничить углы, удерживая SHIFT во время вращения",lineEditor_info:"Удерживайте CtrlOrCmd и дважды кликните или нажмите CtrlOrCmd + Enter для редактирования точек",lineEditor_pointSelected:`Нажмите Delete для удаления точки (точек), -Ctrl+D или Cmd+D для дублирования, перетащите для перемещения`,lineEditor_nothingSelected:`Выберите точку для редактирования (удерживайте SHIFT выбора нескольких точек), -или удерживайте Alt и кликните для добавления новых точек`,placeImage:"Щелкните, чтобы разместить изображение, или нажмите и перетащите, чтобы установить его размер вручную",publishLibrary:"Опубликовать свою собственную библиотеку",bindTextToElement:"Нажмите Enter для добавления текста",deepBoxSelect:"Удерживайте Ctrl или Cmd для глубокого выделения, чтобы предотвратить перетаскивание",eraserRevert:"Удерживайте Alt, чтобы вернуть элементы, отмеченные для удаления",firefox_clipboard_write:'Эта функция может быть включена при изменении значения флага "dom.events.asyncClipboard.clipboardItem" на "true". Чтобы изменить флаги браузера в Firefox, посетите страницу "about:config".',disableSnapping:""},s={cannotShowPreview:"Не удается отобразить предпросмотр",canvasTooBig:"Сцена слишком большая.",canvasTooBigTip:"Совет: попробуйте сблизить элементы рисунка."},d={headingMain:"Возникла ошибка. Попробуйте ",clearCanvasMessage:"Если перезагрузка страницы не помогла, попробуйте ",clearCanvasCaveat:" Текущая работа будет утеряна ",trackedToSentry:"Ошибка с идентификатором {{eventId}} отслеживается в нашей системе.",openIssueMessage:"Для безопасности информация о вашей сцене не включена в ошибку. Если в сцене нет ничего конфиденциального, пожалуйста следуйте нашим Пожалуйста, приложите информацию ниже, скопировав и вставив её, в issue GitHub.",sceneContent:"Содержание сцены:"},c={desc_intro:"Вы можете пригласить людей в текущую сцену для совместной работы.",desc_privacy:"Не беспокойтесь — во время сеанса используется сквозное шифрование. Всё, что вы нарисуете, останется конфиденциальным и не будет доступно даже нашему серверу.",button_startSession:"Начать сеанс",button_stopSession:"Завершить сеанс",desc_inProgressIntro:"Сеанс совместной работы запущен.",desc_shareLink:"Поделитесь этой ссылкой со всеми участниками:",desc_exitSession:"Завершив сеанс, вы выйдете из комнаты, но сможете продолжить работать с документом локально. Это не повлияет на работу других пользователей — они смогут продолжить совместную работу с их версией документа.",shareTitle:"Присоединиться к активной совместной сессии на Excalidraw"},m={title:"Ошибка"},b={disk_title:"Сохранить на диск",disk_details:"Экспортировать данные сцены в файл, из которого можно импортировать позже.",disk_button:"Сохранить в файл",link_title:"Поделитесь ссылкой",link_details:"Экспорт ссылки только для чтения.",link_button:"Экспорт в ссылку",excalidrawplus_description:"Сохраните сцену в ваше рабочее пространство Excalidraw+.",excalidrawplus_button:"Экспорт",excalidrawplus_exportError:"Не удалось экспортировать в Excalidraw+ на данный момент..."},p={blog:"Прочитайте наш блог",click:"нажать",deepSelect:"Глубокое выделение",deepBoxSelect:"Глубокое выделение рамкой, и предотвращение перетаскивания",curvedArrow:"Изогнутая стрелка",curvedLine:"Изогнутая линия",documentation:"Документация",doubleClick:"двойной клик",drag:"перетащить",editor:"Редактор",editLineArrowPoints:"Редактировать концы линий/стрелок",editText:"Редактировать текст / добавить метку",github:"Нашли проблему? Отправьте",howto:"Следуйте нашим инструкциям",or:"или",preventBinding:"Предотвращать привязку стрелок",tools:"Инструменты",shortcuts:"Горячие клавиши",textFinish:"Закончить редактирование (текстовый редактор)",textNewLine:"Добавить новую строку (текстовый редактор)",title:"Помощь",view:"Просмотр",zoomToFit:"Отмастштабировать, чтобы поместились все элементы",zoomToSelection:"Увеличить до выделенного",toggleElementLock:"Заблокировать/разблокировать выделение",movePageUpDown:"Сдвинуть страницу вверх/вниз",movePageLeftRight:"Сдвинуть страницу вправо/влево"},g={title:"Очистить холст"},u={title:"Опубликовать библиотеку",itemName:"Название объекта",authorName:"Имя автора",githubUsername:"Имя пользователя GitHub",twitterUsername:"Имя пользователя в Twitter",libraryName:"Название библиотеки",libraryDesc:"Описание библиотеки",website:"Веб-сайт",placeholder:{authorName:"Ваше имя или имя пользователя",libraryName:"Название вашей библиотеки",libraryDesc:"Описание вашей библиотеки, которое поможет людям понять её назначение",githubHandle:"Имя пользователя GitHub (необязательно), чтобы вы смогли редактировать библиотеку после её отправки на проверку",twitterHandle:"Имя пользователя в Twitter (необязательно), чтобы мы знали, кого упомянуть при продвижении в Twitter",website:"Ссылка на ваш личный или какой-то другой сайт (необязательно)"},errors:{required:"Обязательно",website:"Введите допустимый URL-адрес"},noteDescription:"Отправить вашу библиотеку для включения в хранилище публичных библиотек, чтобы другие люди могли использовать объекты из вашей библиотеки в своих рисунках.",noteGuidelines:"Библиотека должна быть подтверждена вручную. Пожалуйста, прочтите рекомендации перед отправкой. Вам понадобится учетная запись GitHub, чтобы общаться и вносить изменения при необходимости, но это не обязательно.",noteLicense:"Выполняя отправку, вы соглашаетесь с тем, что библиотека будет опубликована под лицензией MIT, , что, вкратце, означает, что каждый может использовать её без ограничений.",noteItems:"Каждый объект в библиотеке должен иметь свое собственное имя, чтобы по нему можно было фильтровать. Следующие объекты библиотеки будут включены:",atleastOneLibItem:"Пожалуйста, выберите хотя бы один объект в библиотеке, чтобы начать",republishWarning:"Примечание: некоторые из выбранных элементов помечены как уже опубликованные/отправленные. Вы должны повторно отправить элементы только при обновлении существующей библиотеки или сдаче работы."},h={title:"Библиотека отправлена",content:"Благодарим вас, {{authorName}}. Ваша библиотека была отправлена на проверку. Вы можете отслеживать статусздесь"},S={resetLibrary:"Сброс библиотеки",removeItemsFromLib:"Удалить выбранные объекты из библиотеки"},y={header:"Экспортировать изображение",label:{withBackground:"Фон",onlySelected:"Только выделенное",darkMode:"Темная тема",embedScene:"Встроить сцену",scale:"Масштаб",padding:"Отступ"},tooltip:{embedScene:"Сцена будет сохранена в PNG/SVG файл так, чтобы всю сцену можно будет восстановить из этого файла. Это увеличит размер файла."},title:{exportToPng:"Экспорт в PNG",exportToSvg:"Экспорт в SVG",copyPngToClipboard:"Скопировать PNG в буфер обмена"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Скопировать в буфер обмена"}},w={tooltip:"Ваши данные защищены сквозным (End-to-end) шифрованием. Серверы Excalidraw никогда не получат доступ к ним.",link:"Запись блога о сквозном шифровании в Excalidraw"},v={angle:"Угол",element:"Элемент",elements:"Элементы",height:"Высота",scene:"Сцены",selected:"Выбран",storage:"Хранилище",title:"Статистика для ботаников",total:"Всего",version:"Версия",versionCopy:"Копировать",versionNotAvailable:"Версия не доступна",width:"Ширина"},x={addedToLibrary:"Добавлено в библиотеку",copyStyles:"Скопированы стили.",copyToClipboard:"Скопировано в буфер обмена.",copyToClipboardAsPng:"{{exportSelection}} скопировано как PNG ({{exportColorScheme}})",fileSaved:"Файл сохранён.",fileSavedToFilename:"Сохранено в {filename}",canvas:"холст",selection:"выделение",pasteAsSingleElement:`Используйте {{shortcut}}, чтобы вставить один объект, -или вставьте в существующий текстовый редактор`,unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"Прозрачный",black:"Чёрный",white:"Белый",red:"Красный",pink:"Розовый",grape:"Виноградный",violet:"Фиолетовый",gray:"Серый",blue:"Синий",cyan:"Голубой",teal:"Бирюзовый",green:"Зелёный",yellow:"Жёлтый",orange:"Оранжевый",bronze:"Бронзовый"},T={app:{center_heading:"Все ваши данные сохраняются локально в вашем браузере.",center_heading_plus:"Хотите перейти на Excalidraw+?",menuHint:"Экспорт, настройки, языки, ..."},defaults:{menuHint:"Экспорт, настройки и другое...",center_heading:"Диаграммы. Просто.",toolbarHint:"Выберите инструмент и начните рисовать!",helpHint:"Сочетания клавиш и помощь"}},E={mostUsedCustomColors:"Часто используемые пользовательские цвета",colors:"Цвета",shades:"Оттенки",hexCode:"Шестнадцатеричный код",noShades:"Нет доступных оттенков для этого цвета"},C={action:{exportToImage:{title:"Экспортировать как изображение",button:"Экспортировать как изображение",description:""},saveToDisk:{title:"Сохранить на диск",button:"Сохранить на диск",description:""},excalidrawPlus:{title:"Excalidraw+",button:"Экспорт в Excalidraw+",description:""}},modal:{loadFromFile:{title:"Загрузить из файла",button:"Загрузить из файла",description:""},shareableLink:{title:"Загрузить по ссылке",button:"",description:""}}},_={title:"Из Mermaid в Excalidraw",button:"Вставить",description:"",syntax:"Синтаксис Mermaid",preview:"Предпросмотр"},L={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:S,imageExportDialog:y,encrypted:w,stats:v,toast:x,colors:k,welcomeScreen:T,colorPicker:E,overwriteConfirm:C,mermaid:_};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,k as colors,S as confirmDialog,L as default,w as encrypted,m as errorDialog,d as errorSplash,a as errors,b as exportDialog,l as headings,p as helpDialog,n as hints,y as imageExportDialog,e as labels,t as library,_ as mermaid,C as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,v as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=ru-RU.json-AKny6SqI.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js.map b/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js.map deleted file mode 100644 index c63770b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ru-RU.json-AKny6SqI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ru-RU.json-AKny6SqI.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js b/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js deleted file mode 100644 index 76e2acc..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"අලවන්න",pasteAsPlaintext:"",pasteCharts:"ප්‍රස්ථාරය",selectAll:"සියල්ලම",multiSelect:"තෝරා ගැනීමට අංගය එකතු කරන්න",moveCanvas:"කැන්වසය චලනය කරන්න",cut:"කපන්න",copy:"පිටපත් කරන්න",copyAsPng:"PNG ලෙස පිටපත් කරන්න",copyAsSvg:"SVG ලෙස පිටපත් කරන්න",copyText:"",copySource:"",convertToCode:"",bringForward:"ඉදිරියට ගෙන්න",sendToBack:"පසුපසටම ගෙනියන්න",bringToFront:"ඉදිරියටම ගෙන්න",sendBackward:"පසුපසට ගෙනියන්න",delete:"මකන්න",copyStyles:"",pasteStyles:"",stroke:"",background:"",fill:"",strokeWidth:"",strokeStyle:"",strokeStyle_solid:"",strokeStyle_dashed:"",strokeStyle_dotted:"",sloppiness:"",opacity:"",textAlign:"",edges:"",sharp:"",round:"",arrowheads:"",arrowhead_none:"",arrowhead_arrow:"",arrowhead_bar:"",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"",fontFamily:"",addWatermark:"",handDrawn:"",normal:"",code:"",small:"",medium:"",large:"",veryLarge:"ඉතා විශාල",solid:"විශාල",hachure:"මධ්‍යම",zigzag:"",crossHatch:"",thin:"කෙට්ටු",bold:"තද",left:"වම",center:"මැද",right:"දකුණ",extraBold:"ඉතා තද",architect:"වාස්තුවේදීයා",artist:"කලාකරු",cartoonist:"සැකිලිරූකරු",fileTitle:"ගොනු නාමය",colorPicker:"පාට තෝරකය",canvasColors:"",canvasBackground:"කැන්වස පසුබිම",drawingCanvas:"චිත්‍රක කැන්වසය",layers:"ලේයර",actions:"ක්‍රියාකාරකම",language:"භාෂාව ",liveCollaboration:"",duplicateSelection:"",untitled:"",name:"නම",yourName:"",madeWithExcalidraw:"",group:"",ungroup:"",collaborators:"",showGrid:"",addToLibrary:"",removeFromLibrary:"",libraryLoadingMessage:"",libraries:"",loadingScene:"",align:"",alignTop:"",alignBottom:"",alignLeft:"",alignRight:"",centerVertically:"",centerHorizontally:"",distributeHorizontally:"",distributeVertically:"",flipHorizontal:"",flipVertical:"",viewMode:"",share:"",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"",exportJSON:"",exportImage:"",export:"",copyToClipboard:"",save:"",saveAs:"",load:"",getShareableLink:"",close:"",selectLanguage:"",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"",done:"",edit:"",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"",darkMode:"",lightMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},r={clearReset:"",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"",image:"",rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"",selectedShapeActions:"",shapes:""},l={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"",canvasTooBig:"",canvasTooBigTip:""},c={headingMain:"",clearCanvasMessage:"",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},d={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:""},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},g={blog:"",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"",link:""},w={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},k={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},f={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:w,toast:k,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:C};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,f as default,S as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,g as helpDialog,l as hints,v as imageExportDialog,e as labels,o as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,k as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=si-LK.json-htW_YYt1.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js.map b/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js.map deleted file mode 100644 index 505293c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/si-LK.json-htW_YYt1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"si-LK.json-htW_YYt1.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js b/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js deleted file mode 100644 index f8e89fe..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js +++ /dev/null @@ -1,7 +0,0 @@ -const e={paste:"Vložiť",pasteAsPlaintext:"Vložiť ako obyčajný text",pasteCharts:"Vložiť grafy",selectAll:"Vybrať všetko",multiSelect:"Pridať prvok do výberu",moveCanvas:"Pohyb plátna",cut:"Vystrihnúť",copy:"Kopírovať",copyAsPng:"Kopírovať do schránky ako PNG",copyAsSvg:"Kopírovať do schránky ako SVG",copyText:"Kopírovať do schránky ako text",copySource:"Kopírovať kód do schránky",convertToCode:"Konvertovať na kód",bringForward:"Presunúť o úroveň dopredu",sendToBack:"Presunúť dozadu",bringToFront:"Presunúť dopredu",sendBackward:"Presunúť o úroveň dozadu",delete:"Vymazať",copyStyles:"Kopírovať štýly",pasteStyles:"Vložiť štýly",stroke:"Obrys",background:"Pozadie",fill:"Výplň",strokeWidth:"Hrúbka obrysu",strokeStyle:"Štýl obrysu",strokeStyle_solid:"Plný",strokeStyle_dashed:"Čiarkovaný",strokeStyle_dotted:"Bodkovaný",sloppiness:"Štylizácia",opacity:"Priehľadnosť",textAlign:"Zarovnanie textu",edges:"Okraje",sharp:"Ostré",round:"Zaokrúhlené",arrowheads:"Zakončenie šípky",arrowhead_none:"Žiadne",arrowhead_arrow:"Šípka",arrowhead_bar:"Čiara",arrowhead_circle:"Kruh",arrowhead_circle_outline:"Kruh (obrys)",arrowhead_triangle:"Trojuholník",arrowhead_triangle_outline:"Trojuholník (obrys)",arrowhead_diamond:"Diamant",arrowhead_diamond_outline:"Diamant (obrys)",fontSize:"Veľkosť písma",fontFamily:"Písmo",addWatermark:'Pridať "Vytvorené s Excalidraw"',handDrawn:"Ručne písané",normal:"Normálne",code:"Kód",small:"Malé",medium:"Stredné",large:"Veľké",veryLarge:"Veľmi veľké",solid:"Plná",hachure:"Šrafovaná",zigzag:"Cik-cak",crossHatch:"Mriežkovaná",thin:"Tenká",bold:"Hrubá",left:"Doľava",center:"Na stred",right:"Doprava",extraBold:"Veľmi hrubá",architect:"Architekt",artist:"Umelec",cartoonist:"Ilustrátor",fileTitle:"Názov súboru",colorPicker:"Výber farby",canvasColors:"Použité na plátne",canvasBackground:"Pozadie plátna",drawingCanvas:"Kresliace plátno",layers:"Vrstvy",actions:"Akcie",language:"Jazyk",liveCollaboration:"Živá spolupráca...",duplicateSelection:"Duplikovať",untitled:"Bez názvu",name:"Meno",yourName:"Vaše meno",madeWithExcalidraw:"Vytvorené s Excalidraw",group:"Zoskupiť",ungroup:"Zrušiť zoskupenie",collaborators:"Spolupracovníci",showGrid:"Zobraziť mriežku",addToLibrary:"Pridať do knižnice",removeFromLibrary:"Odstrániť z knižnice",libraryLoadingMessage:"Načítavanie knižnice…",libraries:"Prehliadať knižnice",loadingScene:"Načítavanie scény…",align:"Zarovnanie",alignTop:"Zarovnať nahor",alignBottom:"Zarovnať nadol",alignLeft:"Zarovnať doľava",alignRight:"Zarovnať doprava",centerVertically:"Zarovnať zvislo na stred",centerHorizontally:"Zarovnať vodorovne na stred",distributeHorizontally:"Rozmiestniť vodorovne",distributeVertically:"Rozmiestniť zvisle",flipHorizontal:"Prevrátiť vodorovne",flipVertical:"Prevrátiť zvislo",viewMode:"Režim zobrazenia",share:"Zdieľať",showStroke:"Zobraziť výber farby pre obrys",showBackground:"Zobraziť výber farby pre pozadie",toggleTheme:"Prepnúť tému",personalLib:"Moja knižnica",excalidrawLib:"Excalidraw knižnica",decreaseFontSize:"Zmenšiť veľkosť písma",increaseFontSize:"Zväčšiť veľkosť písma",unbindText:"Zrušiť previazanie textu",bindText:"Previazať text s kontajnerom",createContainerFromText:"Zabaliť text do kontajneru",link:{edit:"Upraviť odkaz",editEmbed:"Editovať a zapustiť odkaz",create:"Vytvoriť odkaz",createEmbed:"Vytvoriť a zapustiť odkaz",label:"Odkaz",labelEmbed:"Zapustiť odkaz",empty:"Nie je nastavený žiaden odkaz"},lineEditor:{edit:"Upraviť čiaru",exit:"Ukončiť editovanie čiary"},elementLock:{lock:"Zamknúť",unlock:"Odomknúť",lockAll:"Zamknúť všetko",unlockAll:"Odomknúť všetko"},statusPublished:"Zverejnené",sidebarLock:"Nechať bočný panel otvorený",selectAllElementsInFrame:"Vybrať všetky prvky v ráme",removeAllElementsFromFrame:"Odstrániť všetky prvky z rámu",eyeDropper:"Vybrať farbu z plátna",textToDiagram:"Text na diagram",prompt:"Inštrukcia"},o={noItems:"Zatiaľ neboli pridané žiadne položky...",hint_emptyLibrary:"Vyberte položku z plátna pre jej pridanie do knižnice alebo použite knižnicu z verejného zoznamu knižníc nižšie.",hint_emptyPrivateLibrary:"Vyberte položku z plátna pre jej pridanie do knižnice."},a={clearReset:"Obnoviť plátno",exportJSON:"Exportovať do súboru",exportImage:"Exportovať obrázok...",export:"Uložiť do...",copyToClipboard:"Kopírovať do schránky",save:"Uložiť do aktuálneho súboru",saveAs:"Uložiť ako",load:"Otvoriť",getShareableLink:"Získať odkaz na zdieľanie",close:"Zavrieť",selectLanguage:"Zvoliť jazyk",scrollBackToContent:"Vrátiť sa späť na obsah",zoomIn:"Priblížiť",zoomOut:"Oddialiť",resetZoom:"Obnoviť priblíženie",menu:"Ponuka",done:"Hotovo",edit:"Upraviť",undo:"Späť",redo:"Znova",resetLibrary:"Obnoviť knižnicu",createNewRoom:"Vytvoriť novú miestnosť",fullScreen:"Celá obrazovka",darkMode:"Tmavý režim",lightMode:"Svetlý režim",zenMode:"Režim zen",objectsSnapMode:"Prichytiť k objektom",exitZenMode:"Zrušiť režim zen",cancel:"Zrušiť",clear:"Vymazať",remove:"Odstrániť",embed:"Prepnúť zapustenie",publishLibrary:"Uverejniť",submit:"Potvrdiť",confirm:"Potvrdiť",embeddableInteractionButton:"Kliknite pre interakciu"},n={clearReset:"Týmto sa vyčistí celé plátno. Ste si istí?",couldNotCreateShareableLink:"Nepodarilo sa vytvoriť odkaz na zdieľanie.",couldNotCreateShareableLinkTooBig:"Nepodarilo sa vytvoriť odkaz na zdieľanie: scéna je príliš veľká",couldNotLoadInvalidFile:"Nepodarilo sa načítať nevalidný súbor",importBackendFailed:"Nepdarilo sa importovanie zo serveru.",cannotExportEmptyCanvas:"Nie je možné exportovať prázdne plátno.",couldNotCopyToClipboard:"Kopírovanie do schránky sa nepodarilo.",decryptFailed:"Nepodarilo sa rozšifrovať údaje.",uploadedSecurly:"Nahratie je zabezpečené end-to-end šifrovaním, takže Excalidraw server a tretie strany nedokážu prečítať jeho obsah.",loadSceneOverridePrompt:"Nahratie externej kresby nahradí existujúci obsah. Prajete si pokračovať?",collabStopOverridePrompt:`Ukončenie schôdze nahradí vašu predchádzajúcu lokálne uloženú scénu. Ste si istý? - -(Ak si chcete ponechať lokálnu scénu, jednoducho iba zavrite kartu prehliadača.)`,errorAddingToLibrary:"Nepodarilo sa pridať položku do knižnice",errorRemovingFromLibrary:"Nepodarilo sa odstrániť položku z knižnice",confirmAddLibrary:"Týmto sa pridá {{numShapes}} tvar(ov) do vašej knižnice. Ste si istí?",imageDoesNotContainScene:"Tento obrázok neobsahuje žiadne údaje scény. Zvolili ste možnosť zahrnúť scénu počas exportu?",cannotRestoreFromImage:"Nepodarilo sa obnoviť scénu z tohto obrázkového súboru",invalidSceneUrl:"Nepodarilo sa načítať scénu z poskytnutej URL. Je nevalidná alebo neobsahuje žiadne validné Excalidraw JSON dáta.",resetLibrary:"Týmto vyprázdnite vašu knižnicu. Ste si istý?",removeItemsFromsLibrary:"Odstrániť {{count}} položiek z knižnice?",invalidEncryptionKey:"Šifrovací kľúč musí mať 22 znakov. Živá spolupráca je vypnutá.",collabOfflineWarning:`Internetové pripojenie nie je dostupné. -Vaše zmeny nebudú uložené!`},i={unsupportedFileType:"Nepodporovaný typ súboru.",imageInsertError:"Nepodarilo sa vložiť obrázok. Skúste to znova neskôr...",fileTooBig:"Súbor je príliš veľký. Maximálna povolená veľkosť je {{maxSize}}.",svgImageInsertError:"Nepodarilo sa vložiť SVG obrázok. SVG formát je pravdepodobne nevalidný.",failedToFetchImage:"Načítanie obrázka zlyhalo.",invalidSVGString:"Nevalidné SVG.",cannotResolveCollabServer:"Nepodarilo sa pripojiť ku kolaboračnému serveru. Prosím obnovte stránku a skúste to znovu.",importLibraryError:"Nepodarilo sa načítať knižnicu",collabSaveFailed:"Uloženie do databázy sa nepodarilo. Ak tento problém pretrváva uložte si váš súbor lokálne aby ste nestratili vašu prácu.",collabSaveFailed_sizeExceeded:"Uloženie do databázy sa nepodarilo, pretože veľkosť plátna je príliš veľká. Uložte si váš súbor lokálne aby ste nestratili vašu prácu.",imageToolNotSupported:"Obrázky sú vypnuté.",brave_measure_text_error:{line1:"Vyzerá to, že používate prehliadač Brave so zapnutým nastavením pre agresívne blokovanie.",line2:"To môže spôsobiť nesprávne zobrazenie textových prvkov vo vašej kresbe.",line3:"Dôrazne odporúčame vypnutie toho nastavenia. Môžete tak spraviť vykonaním týchto krokov.",line4:"Ak vypnutie toho nastavenia nevyrieši problém so zobrazením textových prvkov, prosím ohláste problém na našom GitHub-e alebo nám napíšte na náš Discord"},libraryElementTypeError:{embeddable:"Zapustené prvky nie je možné pridať do knižnice.",iframe:"Vložené rámce IFrame nie je možné pridať do knižnice.",image:"Podpora pre pridávanie obrázkov do knižnice bude dostupná už čoskoro!"},asyncPasteFailedOnRead:"Vloženie sa nepodarilo (nebolo možné prečítať obsah schránky).",asyncPasteFailedOnParse:"Vloženie sa nepodarilo.",copyToSystemClipboardFailed:"Kopírovanie do schránky sa nepodarilo."},r={selection:"Výber",image:"Vložiť obrázok",rectangle:"Obdĺžnik",diamond:"Diamant",ellipse:"Elipsa",arrow:"Šípka",line:"Čiara",freedraw:"Kresliť",text:"Text",library:"Knižnica",lock:"Nechať zvolený nástroj aktívny po skončení kreslenia",penMode:"Režim pera – zabrániť dotyku",link:"Pridať/ Upraviť odkaz pre vybraný tvar",eraser:"Guma",frame:"Nástroj rám",magicframe:"Drôtený model na kód",embeddable:"Web Embed",laser:"Laserový ukazovateľ",hand:"Ruka (nástroj pre pohyb plátna)",extraTools:"Ďalšie nástroje",mermaidToExcalidraw:"Mermaid do Excalidraw",magicSettings:"AI nastavenia"},t={canvasActions:"Akcie plátna",selectedShapeActions:"Akcie tvarov z výberu",shapes:"Tvary"},s={canvasPanning:"Pre pohyb plátna podržte koliesko myši alebo medzerník počas ťahania, alebo použite nástroj ruka",linearElement:"Kliknite na vloženie viacerých bodov, potiahnite na vytvorenie jednej priamky",freeDraw:"Kliknite a ťahajte, pustite na ukončenie",text:"Tip: text môžete pridať aj dvojklikom kdekoľvek, ak je zvolený nástroj výber",embeddable:"Kliknite a ťahajte pre zapustenie webovej stránky",text_selected:"Použite dvojklik alebo stlačte Enter na editáciu textu",text_editing:"Stlačte Escape alebo CtrlOrCmd+ENTER na ukončenie editovania",linearElementMulti:"Kliknite na počiatočný bod alebo stlačte Escape alebo Enter na ukončenie",lockAngle:"Počas rotácie obmedzíte uhol podržaním SHIFT",resize:"Počas zmeny veľkosti zachováte proporcie podržaním SHIFT,\\npodržaním ALT meníte veľkosť so zachovaním stredu",resizeImage:"Podržte SHIFT pre voľnú zmenu veľkosti, podržte ALT pre zmenu veľkosti od stredu",rotate:"Počas rotácie obmedzíte uhol podržaním SHIFT",lineEditor_info:"Podržte CtrlOrCmd a kliknite dva krát alebo stlačte CtrlOrCmd + Enter pre editáciu bodov",lineEditor_pointSelected:"Stačte Delete na vymazanie bodu (bodov), CtrlOrCmd+D na duplikovanie, alebo potiahnite na presunutie",lineEditor_nothingSelected:"Zvoľte bod na upravovanie (podržte SHIFT pre zvolenie viacerých bodov) alebo podržte Alt a kliknite na pridanie nového bodu",placeImage:"Kliknite pre umiestnenie obrázka alebo kliknite a ťahajte pre zmenu jeho veľkosti",publishLibrary:"Uverejniť vašu knižnicu",bindTextToElement:"Stlačte enter na pridanie textu",deepBoxSelect:"Podržte CtrlOrCmd na výber v skupine alebo zamedzeniu poťiahnutia",eraserRevert:"Podržte Alt pre prehodenie položiek určených na vymazanie",firefox_clipboard_write:'Táto sa funkcionalita sa dá zapnúť nastavením "dom.events.asyncClipboard.clipboardItem" na "true". Pre zmenu nastavení vo Firefox-e otvorte stránku "about:config".',disableSnapping:"Podržte CtrlOrCmd pre vypnutie prichytávania"},l={cannotShowPreview:"Nie je možné zobraziť náhľad plátna",canvasTooBig:"Plátno je možno príliš veľké.",canvasTooBigTip:"Tip: skúste presunúť najvzdialenejšie prvky bližšie k sebe."},d={headingMain:"Nastala chyba. Vyskúšajte ",clearCanvasMessage:"Ak obnovenie stránky nepomáha, vyskúšajte ",clearCanvasCaveat:" To bude mať za následok stratu práce ",trackedToSentry:"Chyba s identifikátorom {{eventId}} bola zaznamenaná v našom systéme.",openIssueMessage:"Boli sme veľmi opatrní, aby informácie vašej scény neboli v chybe zaznamenané. Ak vaša scéna nie je súkromná, prosím zvážte pokračovanie na naše Prosím zahrňte informácie nižšie pomocou kopírovania a prilepenia do GitHub issue.",sceneContent:"Obsah scény:"},v={desc_intro:"Pozvite niekoho do svojej aktuálnej scény a pracujte spoločne.",desc_privacy:"Nemajte obavy, schôdza používa end-to-end šifrovanie, takže všetko čo nakreslíte je súkromné. Dokonca, ani náš server dedokáže prečítať, čo ste vytvorili.",button_startSession:"Začať schôdzu",button_stopSession:"Ukončiť schôdzu",desc_inProgressIntro:"Práve prebieha živá schôdza.",desc_shareLink:"Zdieľajte tento odkaz s osobou, s ktorou chcete spolupracovať:",desc_exitSession:"Ukončenie schôdze vás odpojí z miestnosti, avšak naďalej budete môcť pokračovať v práci na scéne lokálne. Toto neovplyvní ostatných spolupracovníkov a stále budú môcť spolupracovať na ich verzii.",shareTitle:"Pripojiť sa k živej schôdzi na Excalidraw"},p={title:"Chyba"},k={disk_title:"Uložiť na disk",disk_details:"Exportovať údaje scény do súboru, z ktorého môžu byť neskôr importované.",disk_button:"Uložiť do súboru",link_title:"Odkaz na zdieľanie",link_details:"Exportovať ako odkaz iba na čítanie.",link_button:"Exportovať ako odkaz",excalidrawplus_description:"Uložiť scénu do vášho Excalidraw+ pracovného priestoru.",excalidrawplus_button:"Exportovať",excalidrawplus_exportError:"Nepodarilo sa vykonať export do Excalidraw+..."},c={blog:"Prečítajte si náš blog",click:"kliknutie",deepSelect:"Výber v skupine",deepBoxSelect:"Výber v skupine alebo zamedzenie poťiahnutia",curvedArrow:"Zakrivená šípka",curvedLine:"Zakrivená čiara",documentation:"Dokumentácia",doubleClick:"dvojklik",drag:"potiahnutie",editor:"Editovanie",editLineArrowPoints:"Editácia bodov čiary/šípky",editText:"Editácia textu / pridanie štítku",github:"Objavili ste problém? Nahláste ho",howto:"Postupujte podľa naších návodov",or:"alebo",preventBinding:"Zakázať pripájanie šípky",tools:"Nástroje",shortcuts:"Klávesové skratky",textFinish:"Ukončenie editovania (text editor)",textNewLine:"Vložiť nový riadok (text editor)",title:"Pomocník",view:"Zobrazenie",zoomToFit:"Priblížiť aby boli zahrnuté všetky prvky",zoomToSelection:"Priblížiť na výber",toggleElementLock:"Zamknúť/odomknúť vybrané",movePageUpDown:"Posunúť stranu hore/dole",movePageLeftRight:"Posunúť stranu doľava/doprava"},u={title:"Vyčistiť plátno"},b={title:"Uverejniť knižnicu",itemName:"Názov položky",authorName:"Meno autora",githubUsername:"Github užívateľské meno",twitterUsername:"Twitter užívateľské meno",libraryName:"Názov knižnice",libraryDesc:"Popis knižnice",website:"Webová stránka",placeholder:{authorName:"Vaše meno alebo užívateľské meno",libraryName:"Názov vašej knižnice",libraryDesc:"Popis vašej knižnice, ktorý ostatným pomôže porozumieť jej vhodnému použitiu",githubHandle:"GitHub užívateľské meno (nepovinné), aby ste mohli robiť úpravy po tom, čo bude knižnica uverejnená na schválenie",twitterHandle:"Twitter užívateľské meno (nepovinné), aby sme vedeli komu pripísať zásluhu pri propagovaní cez Twitter",website:"Odkaz na vašu osobnú webovú stránku alebo niekam inam (nepovinné)"},errors:{required:"Povinné",website:"Zadajte platnú adresu URL"},noteDescription:"Uverejnite vašu knižnicu vo verejnom zozname knižnícaby ju aj ostatní mohli použiť v ich náčrtoch.",noteGuidelines:"Knižnica musí byť najprv manuálne schválená. Prosím prečítajte si pokyny pred uverejnením. Budete potrebovať Github účet na komunikáciu a vykonanie zmien, ak budú potrebné, avšak nie je to úplne povinné.",noteLicense:"Potvrdením súhlasíte, že knižnica bude zverejnená s MIT licenciou, čo v skratke znamená, že ju môže použiť hocikto bez obmedzení.",noteItems:"Každá položka v knižnici musí mať svoje vlastné meno, aby sa dala vyhľadať. Súčasťou knižnice budú nasledujúce položky:",atleastOneLibItem:"Začnite prosím zvolením aspoň jednej položky z knižnice",republishWarning:"Poznámka: Niektoré z vybraných položiek sú už označené ako zverejnené. Ich znovu uverejnenie by ste mali vykovať iba vtedy ak aktualizujete už existujúcu knižnicu alebo požiadavku na uverejnenie."},m={title:"Knižnica uverejnená",content:"Ďakujeme vám {{authorName}}. Vaša knižnica bola uverejnená na posúdenie. Stav môžete skontrolovaťtu"},y={resetLibrary:"Obnoviť knižnicu",removeItemsFromLib:"Odstrániť zvolené položky z knižnice"},h={header:"Exportovať obrázok",label:{withBackground:"Pozadie",onlySelected:"Iba vybrané",darkMode:"Tmavý režim",embedScene:"Zahrnúť scénu",scale:"Mierka",padding:"Odsadenie"},tooltip:{embedScene:`Údaje scény budú uložené do exportovaného PNG/SVG súboru, takže scéna z neho môže byť opäť obnovená. -Bude to mať za následok zvýšenie veľkosti súboru.`},title:{exportToPng:"Exportovať do PNG",exportToSvg:"Exportovať do SVG",copyPngToClipboard:"Kopírovať PNG do schránky"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopírovať do schránky"}},z={tooltip:"Vaše kresby používajú end-to-end šifrovanie, takže ich Excalidraw server nedokáže prečítať.",link:"Blog o end-to-end šifrovaní v Excalidraw"},j={angle:"Uhol",element:"Prvok",elements:"Prvky",height:"Výška",scene:"Scéna",selected:"Vybrané",storage:"Úložisko",title:"Štatistiky",total:"Celkom",version:"Verzia",versionCopy:"Kliknutím skopírujete",versionNotAvailable:"Verzia nie je k dispozícii",width:"Šírka"},g={addedToLibrary:"Pridané do knižnice",copyStyles:"Štýly skopírované.",copyToClipboard:"Skopírované do schránky.",copyToClipboardAsPng:`Kopírovanie {{exportSelection}} do schránky ako PNG prebehlo úspešne -({{exportColorScheme}})`,fileSaved:"Súbor uložený.",fileSavedToFilename:"Uložený ako {filename}",canvas:"plátna",selection:"výberu",pasteAsSingleElement:"Použitím {{shortcut}} vložte ako samostatný prvok alebo vložte do existujúceho editovaného textu",unableToEmbed:"Zapustenie tejto URL nie je povolené. Vytvorte issue na GitHub-e a požiadajte povolenie tejto URL",unrecognizedLinkFormat:"Odkaz, ktorý sa snažíte zapustiť nie je v očakávanom formáte. Prosím skúste vložiť 'odkaz na zdieľanie' poskytnutý zdrojovou webovou stránkou"},x={transparent:"Priehľadná",black:"Čierna",white:"Biela",red:"Červená",pink:"Ružová",grape:"Hroznová fialová",violet:"Fialová",gray:"Sivá",blue:"Modrá",cyan:"Azúrová",teal:"Modrozelená",green:"Zelená",yellow:"Žltá",orange:"Oranžová",bronze:"Bronzová"},S={app:{center_heading:"Všetky vaše dáta sú uložené lokálne vo vašom prehliadači.",center_heading_plus:"Chceli ste namiesto toho prejsť do Excalidraw+?",menuHint:"Exportovanie, nastavenia, jazyky, ..."},defaults:{menuHint:"Exportovanie, nastavenia a ďalšie...",center_heading:"Diagramy. Jednoducho.",toolbarHint:"Zvoľte nástroj a začnite kresliť!",helpHint:"Klávesové skratky a pomocník"}},P={mostUsedCustomColors:"Najpoužívanejšie vlastné farby",colors:"Farby",shades:"Odtiene",hexCode:"Hex kód",noShades:"Pre túto farbu nie sú dostupné žiadne odtiene"},w={action:{exportToImage:{title:"Exportovať ako obrázok",button:"Exportovať ako obrázok",description:"Exportovať údaje scény ako obrázok, z ktorého môžu byť neskôr importované."},saveToDisk:{title:"Uložiť na disk",button:"Uložiť na disk",description:"Exportovať údaje scény do súboru, z ktorého môžu byť neskôr importované."},excalidrawPlus:{title:"Excalidraw+",button:"Exportovať ako Excalidraw+",description:"Uložiť scénu do vášho Excalidraw+ pracovného priestoru."}},modal:{loadFromFile:{title:"Načítať zo súboru",button:"Načítať zo súboru",description:"Načítanie zo súboru nahradí váš existujúci obsah.

    Vašu kresbu môžete zálohovať jednou z nižšie uvedených možností."},shareableLink:{title:"Načítať z odkazu",button:"Nahradiť môj obsah",description:"Načítanie externej kresby nahradí váš existujúci obsah.

    Vašu kresbu môžete zálohovať jednou z nižšie uvedených možností."}}},T={title:"Mermaid do Excalidraw",button:"Vložiť",description:"Aktuálne sú podporované iba vývojové diagramy, sekvenčné diagramy a diagramy tried. Ostatné typy budú v Excalidraw vykreslené ako obrázky.",syntax:"Mermaid syntax",preview:"Ukážka"},E={labels:e,library:o,buttons:a,alerts:n,errors:i,toolBar:r,headings:t,hints:s,canvasError:l,errorSplash:d,roomDialog:v,errorDialog:p,exportDialog:k,helpDialog:c,clearCanvasDialog:u,publishDialog:b,publishSuccessDialog:m,confirmDialog:y,imageExportDialog:h,encrypted:z,stats:j,toast:g,colors:x,welcomeScreen:S,colorPicker:P,overwriteConfirm:w,mermaid:T};export{n as alerts,a as buttons,l as canvasError,u as clearCanvasDialog,P as colorPicker,x as colors,y as confirmDialog,E as default,z as encrypted,p as errorDialog,d as errorSplash,i as errors,k as exportDialog,t as headings,c as helpDialog,s as hints,h as imageExportDialog,e as labels,o as library,T as mermaid,w as overwriteConfirm,b as publishDialog,m as publishSuccessDialog,v as roomDialog,j as stats,g as toast,r as toolBar,S as welcomeScreen}; -//# sourceMappingURL=sk-SK.json-9kwfDB_I.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js.map b/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js.map deleted file mode 100644 index dcc5b65..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sk-SK.json-9kwfDB_I.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sk-SK.json-9kwfDB_I.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js b/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js deleted file mode 100644 index e50bff6..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js +++ /dev/null @@ -1,7 +0,0 @@ -const e={paste:"Prilepi",pasteAsPlaintext:"Prilepi kot navadno besedilo",pasteCharts:"Prilepi grafikone",selectAll:"Izberi vse",multiSelect:"Dodaj element v izbor",moveCanvas:"Premakni platno",cut:"Izreži",copy:"Kopiraj",copyAsPng:"Kopiraj v odložišče kot PNG",copyAsSvg:"Kopiraj v odložišče kot SVG",copyText:"Kopiraj v odložišče kot besedilo",copySource:"Kopiraj vir v odložišče",convertToCode:"Pretvori v kodo",bringForward:"Postavi naprej",sendToBack:"Pomakni v ozadje",bringToFront:"Pomakni v ospredje",sendBackward:"Pošlji nazaj",delete:"Izbriši",copyStyles:"Kopiraj slog",pasteStyles:"Prilepi slog",stroke:"Poteza",background:"Ozadje",fill:"Polnilo",strokeWidth:"Debelina poteze",strokeStyle:"Slog poteze",strokeStyle_solid:"Polna",strokeStyle_dashed:"Črtkana",strokeStyle_dotted:"Pikasta",sloppiness:"Površnost",opacity:"Prekrivnost",textAlign:"Poravnava besedila",edges:"Robovi",sharp:"Ostri",round:"Okrogli",arrowheads:"Puščice",arrowhead_none:"Brez",arrowhead_arrow:"Puščica",arrowhead_bar:"Palica",arrowhead_circle:"Krog",arrowhead_circle_outline:"Krog (oris)",arrowhead_triangle:"Trikotnik",arrowhead_triangle_outline:"Trikotnik (oris)",arrowhead_diamond:"Diamant",arrowhead_diamond_outline:"Diamant (oris)",fontSize:"Velikost pisave",fontFamily:"Družina pisave",addWatermark:'Dodaj "Izdelano z Excalidraw"',handDrawn:"Ročno narisano",normal:"Običajno",code:"Koda",small:"Majhna",medium:"Srednja",large:"Velika",veryLarge:"Zelo velika",solid:"Polno",hachure:"Šrafura",zigzag:"Cikcak",crossHatch:"Križno",thin:"Tanko",bold:"Krepko",left:"Levo",center:"Sredina",right:"Desno",extraBold:"Ekstra krepko",architect:"Arhitekt",artist:"Umetnik",cartoonist:"Risar",fileTitle:"Ime datoteke",colorPicker:"Izbor barve",canvasColors:"Uporabljeno na platnu",canvasBackground:"Ozadje platna",drawingCanvas:"Platno za risanje",layers:"Plasti",actions:"Dejanja",language:"Jezik",liveCollaboration:"Sodelovanje v živo...",duplicateSelection:"Podvoji",untitled:"Neimenovana",name:"Ime",yourName:"Vaše ime",madeWithExcalidraw:"Izdelano z Excalidraw",group:"Združi izbor",ungroup:"Razdruži izbor",collaborators:"Sodelavci",showGrid:"Prikaži mrežo",addToLibrary:"Dodaj v knjižnico",removeFromLibrary:"Odstrani iz knjižnice",libraryLoadingMessage:"Nalaganje knjižnice ...",libraries:"Brskaj po knjižnicah",loadingScene:"Nalaganje scene...",align:"Poravnava",alignTop:"Poravnaj na vrh",alignBottom:"Poravnaj na dno",alignLeft:"Poravnaj levo",alignRight:"Poravnaj desno",centerVertically:"Navpično na sredini",centerHorizontally:"Vodoravno na sredini",distributeHorizontally:"Porazdeli vodoravno",distributeVertically:"Porazdeli navpično",flipHorizontal:"Obrni vodoravno",flipVertical:"Obrni navpično",viewMode:"Način ogleda",share:"Deli",showStroke:"Prikaži izbirnik barv poteze",showBackground:"Prikaži izbirnik barv ozadja",toggleTheme:"Obrni temo",personalLib:"Osebna knjižnica",excalidrawLib:"Knjižnica Excalidraw",decreaseFontSize:"Zmanjšaj velikost pisave",increaseFontSize:"Povečaj velikost pisave",unbindText:"Veži besedilo",bindText:"Veži besedilo na element",createContainerFromText:"Zavij besedilo v vsebnik",link:{edit:"Uredi povezavo",editEmbed:"Uredi povezavo in vdelaj",create:"Ustvari povezavo",createEmbed:"Ustvari povezavo in vdelaj",label:"Povezava",labelEmbed:"Povezava in vdelovanje",empty:"Povezava ni nastavljena"},lineEditor:{edit:"Uredi črto",exit:"Zapri urejanje črte"},elementLock:{lock:"Zakleni",unlock:"Odkleni",lockAll:"Zakleni vse",unlockAll:"Odkleni vse"},statusPublished:"Objavljeno",sidebarLock:"Obdrži stransko vrstico odprto",selectAllElementsInFrame:"Izberi vse elemente v okvirju",removeAllElementsFromFrame:"Izbriši vse elemente v okvirju",eyeDropper:"Izberi barvo s platna",textToDiagram:"Besedilo v diagram",prompt:"Poziv"},o={noItems:"Dodan še ni noben element...",hint_emptyLibrary:"Izberite element na platnu, da ga dodate sem, ali namestite knjižnico iz javnega skladišča spodaj.",hint_emptyPrivateLibrary:"Izberite element na platnu, da ga dodate sem."},i={clearReset:"Ponastavi platno",exportJSON:"Izvozi v datoteko",exportImage:"Izvozi sliko...",export:"Shrani v...",copyToClipboard:"Kopiraj v odložišče",save:"Shrani v trenutno datoteko",saveAs:"Shrani kot",load:"Odpri",getShareableLink:"Pridobi povezavo za deljenje",close:"Zapri",selectLanguage:"Izberi jezik",scrollBackToContent:"Pomakni se nazaj na vsebino",zoomIn:"Povečaj",zoomOut:"Pomanjšaj",resetZoom:"Ponastavi povečavo",menu:"Meni",done:"Končano",edit:"Uredi",undo:"Razveljavi",redo:"Ponovi",resetLibrary:"Ponastavi knjižnico",createNewRoom:"Ustvari novo sobo",fullScreen:"Celozaslonski način",darkMode:"Temni način",lightMode:"Svetli način",zenMode:"Način Zen",objectsSnapMode:"Pripenjanje na predmete",exitZenMode:"Zapri način Zen",cancel:"Prekliči",clear:"Počisti",remove:"Odstrani",embed:"Preklopi vdelavo",publishLibrary:"Objavi",submit:"Pošlji",confirm:"Potrdi",embeddableInteractionButton:"Kliknite za interakcijo"},a={clearReset:"To bo počistilo celotno platno. Ali ste prepričani?",couldNotCreateShareableLink:"Povezave za deljenje ni bilo mogoče ustvariti.",couldNotCreateShareableLinkTooBig:"Povezave za deljenje ni bilo mogoče ustvariti: scena je prevelika",couldNotLoadInvalidFile:"Neveljavne datoteke ni bilo mogoče naložiti",importBackendFailed:"Uvoz iz zaledja ni uspel.",cannotExportEmptyCanvas:"Izvoz prazne scene ni mogoč.",couldNotCopyToClipboard:"Kopiranje v odložišče ni uspelo.",decryptFailed:"Dešifriranje podatkov ni uspelo.",uploadedSecurly:"Nalaganje je bilo zaščiteno s šifriranjem od konca do konca, kar pomeni, da strežnik Excalidraw in tretje osebe ne morejo brati vsebine.",loadSceneOverridePrompt:"Nalaganje zunanje risbe bo nadomestilo vašo obstoječo vsebino. Ali želite nadaljevati?",collabStopOverridePrompt:`Ustavitev seje bo prepisala vašo prejšnjo, lokalno shranjeno risbo. Ali ste prepričani? - -(Če želite obdržati lokalno risbo, preprosto zaprite zavihek brskalnika.)`,errorAddingToLibrary:"Elementa ni bilo mogoče dodati v knjižnico",errorRemovingFromLibrary:"Elementa ni bilo mogoče izbrisati iz knjižnice",confirmAddLibrary:"S tem boste v vašo knjižnico dodali oblike ({{numShapes}}). Ali ste prepričani?",imageDoesNotContainScene:"Zdi se, da ta slika ne vsebuje podatkov o sceni. Ali ste med izvozom omogočili vdelavo scene?",cannotRestoreFromImage:"Scene ni bilo mogoče obnoviti iz te slikovne datoteke",invalidSceneUrl:"S priloženega URL-ja ni bilo mogoče uvoziti scene. Je napačno oblikovana ali pa ne vsebuje veljavnih podatkov Excalidraw JSON.",resetLibrary:"To bo počistilo vašo knjižnico. Ali ste prepričani?",removeItemsFromsLibrary:"Izbriši elemente ({{count}}) iz knjižnice?",invalidEncryptionKey:"Ključ za šifriranje mora vsebovati 22 znakov. Sodelovanje v živo je onemogočeno.",collabOfflineWarning:`Internetna povezava ni na voljo. -Vaše spremembe ne bodo shranjene!`},n={unsupportedFileType:"Nepodprt tip datoteke.",imageInsertError:"Vstavljanje slike ni bilo uspešno. Poskusite ponovno kasneje...",fileTooBig:"Datoteka je prevelika. Največja dovoljena velikost je {{maxSize}}.",svgImageInsertError:"Vstavljanje slike SVG ni uspelo. Oznake SVG so videti neveljavne.",failedToFetchImage:"Pridobivanje slike ni uspelo.",invalidSVGString:"Neveljaven SVG.",cannotResolveCollabServer:"Povezave s strežnikom za sodelovanje ni bilo mogoče vzpostaviti. Ponovno naložite stran in poskusite znova.",importLibraryError:"Nalaganje knjižnice ni uspelo",collabSaveFailed:"Ni bilo mogoče shraniti v zaledno bazo podatkov. Če se težave nadaljujejo, shranite datoteko lokalno, da ne boste izgubili svojega dela.",collabSaveFailed_sizeExceeded:"Ni bilo mogoče shraniti v zaledno bazo podatkov, zdi se, da je platno preveliko. Datoteko shranite lokalno, da ne izgubite svojega dela.",imageToolNotSupported:"Slike so onemogočene.",brave_measure_text_error:{line1:"Videti je, da uporabljate brskalnik Brave z omogočeno nastavitvijo Agresivno blokiranje prstnih odtisov.",line2:"To bi lahko povzročilo motnje v obnašanju besedilnih elementov v vaših risbah.",line3:"Močno priporočamo, da onemogočite to nastavitev. Sledite tem korakom, kako to storiti.",line4:"Če onemogočanje te nastavitve ne popravi prikaza besedilnih elementov, odprite vprašanje na našem GitHubu ali nam pišite na Discord"},libraryElementTypeError:{embeddable:"Vdelani elementi ne morejo biti dodani v knjižnico.",iframe:"Elementov iFrame ni mogoče dodati v knjižnico.",image:"Podpora za dodajanje slik v knjižnico prihaja kmalu!"},asyncPasteFailedOnRead:"Ni bilo mogoče prilepiti (ni bilo mogoče brati iz sistemskega odložišča).",asyncPasteFailedOnParse:"Ni bilo mogoče prilepiti.",copyToSystemClipboardFailed:"Ni bilo mogoče kopirati v odložišče."},t={selection:"Izbor",image:"Vstavi sliko",rectangle:"Pravokotnik",diamond:"Diamant",ellipse:"Elipsa",arrow:"Puščica",line:"Črta",freedraw:"Risanje",text:"Besedilo",library:"Knjižnica",lock:"Ohrani izbrano orodje aktivno po risanju",penMode:"Način peresa - prepreči dotik",link:"Dodaj/posodobi povezavo za izbrano obliko",eraser:"Radirka",frame:"Okvir",magicframe:"Žični okvir v kodo",embeddable:"Spletna vdelava",laser:"Laserski kazalec",hand:"Roka (orodje za premikanje)",extraTools:"Več orodij",mermaidToExcalidraw:"Mermaid v Excalidraw",magicSettings:"Nastavitve AI"},r={canvasActions:"Dejanja za platno",selectedShapeActions:"Dejanja za izbrane oblike",shapes:"Oblike"},l={canvasPanning:"Za premikanje platna med vlečenjem držite kolesce miške ali preslednico ali uporabite orodje roka",linearElement:"Kliknite za začetek več točk, povlecite za posamezno črto",freeDraw:"Kliknite in povlecite, spustite, ko končate",text:"Namig: besedilo lahko dodate tudi z dvoklikom kjer koli z orodjem za izbiro",embeddable:"Kliknite in povlecite, da ustvarite spletno vdelavo",text_selected:"Dvokliknite ali pritisnite tipko Enter, da uredite besedilo",text_editing:"Pritisnite tipko Escape ali CtrlOrCmd+Enter za zaključek urejanja",linearElementMulti:"Kliknite zadnjo točko ali pritisnite Escape ali Enter, da končate",lockAngle:"Kot lahko omejite tako, da držite tipko Shift",resize:"Razmerja lahko omejite tako, da držite tipko Shift med spreminjanjem velikosti. Držite tipko Alt, da spremenite velikost od središča",resizeImage:"Velikost lahko prosto spreminjate tako, da držite tipko Shift. Držite tipko Alt, da spremenite velikost od središča",rotate:"Kote lahko omejite tako, da med vrtenjem držite tipko Shift",lineEditor_info:"Držite CtrlOrCmd in dvokliknite ali pritisnite CtrlOrCmd + Enter za urejanje točk",lineEditor_pointSelected:"Pritisnite tipko Delete, da odstranite točko(e), CtrlOrCmd+D za podvojitev ali povlecite za premikanje",lineEditor_nothingSelected:"Izberite točko za urejanje (pridržite tipko Shift za izbiro več točk), ali držite tipko Alt in kliknite za dodajanje novih točk",placeImage:"Kliknite, da postavite sliko, ali kliknite in povlecite, da ročno nastavite njeno velikost",publishLibrary:"Objavi svojo knjižnico",bindTextToElement:"Pritisnite tipko Enter za dodajanje besedila",deepBoxSelect:"Držite tipko CtrlOrCmd za globoko izbiro in preprečitev vlečenja",eraserRevert:"Pridržite tipko Alt, da razveljavite elemente, označene za brisanje",firefox_clipboard_write:'To funkcijo lahko verjetno omogočite z nastavitvijo zastavice "dom.events.asyncClipboard.clipboardItem" na "true". Če želite spremeniti zastavice brskalnika v Firefoxu, obiščite stran "about:config".',disableSnapping:"Držite CtrlOrCmd, da onemogočite pripenjanje"},s={cannotShowPreview:"Predogleda ni bilo mogoče prikazati",canvasTooBig:"Morda je platno preveliko.",canvasTooBigTip:"Nasvet: poskusite premakniti najbolj oddaljene elemente nekoliko bližje skupaj."},d={headingMain:"Prišlo je do napake. Poskusite ",clearCanvasMessage:"Če ponovno nalaganje ne deluje, poskusite ",clearCanvasCaveat:" To bo povzročilo izgubo dela ",trackedToSentry:"Napaka z identifikatorjem {{eventId}} smo zabeležili v naš sistem.",openIssueMessage:"Zelo smo bili previdni, da v podatke o napaki nismo vključili vaših podatkov o sceni. Če vaša scena ni zasebna, vas prosimo, da napišete več podrobnosti na našem Prosimo, vključite spodnje informacije tako, da jih kopirate in prilepite v GitHub vprašanje.",sceneContent:"Vsebina scene:"},v={desc_intro:"Na vašo trenutno sceno lahko povabite osebe, ki bodo sodelovale z vami.",desc_privacy:"Brez skrbi. Seja uporablja šifriranje od konca do konca, tako da bo vse, kar narišete, ostalo zasebno. Niti naš strežnik ne bo mogel videti, kaj si izmislite.",button_startSession:"Začni sejo",button_stopSession:"Ustavi sejo",desc_inProgressIntro:"Seja sodelovanja v živo je v teku.",desc_shareLink:"Delite to povezavo z vsemi, s katerimi želite sodelovati:",desc_exitSession:"Ustavitev seje vas bo odklopila od sobe, vendar boste lahko lokalno nadaljevali delo s sceno. To pa ne bo vplivalo na druge osebe. Druge osebe bodo še vedno lahko sodelovale v svoji različici.",shareTitle:"Pridruži se seji sodelovanja v živo na Excalidraw"},k={title:"Napaka"},p={disk_title:"Shrani na disk",disk_details:"Izvozite podatke scene v datoteko, iz katere jo lahko pozneje uvozite.",disk_button:"Shrani v datoteko",link_title:"Povezava za deljenje",link_details:"Izvoz kot povezava samo za branje.",link_button:"Izvoz kot povezava",excalidrawplus_description:"Shrani sceno v svoj delovni prostor Excalidraw+.",excalidrawplus_button:"Izvoz",excalidrawplus_exportError:"Trenutno ni bilo mogoče izvoziti v Excalidraw+..."},j={blog:"Preberite naš blog",click:"klik",deepSelect:"Globoka izbira",deepBoxSelect:"Globoka izbira znotraj polja in preprečitev vlečenja",curvedArrow:"Ukrivljena puščica",curvedLine:"Ukrivljena črta",documentation:"Dokumentacija",doubleClick:"dvojni klik",drag:"vleci",editor:"Urejevalnik",editLineArrowPoints:"Uredi črto/točke puščice",editText:"Uredi besedilo / dodaj oznako",github:"Ste našli težavo? Pošljite",howto:"Sledite našim vodičem",or:"ali",preventBinding:"Prepreči vezanje puščice",tools:"Orodja",shortcuts:"Bližnjice na tipkovnici",textFinish:"Zaključi urejanje (urejevalnik besedila)",textNewLine:"Dodaj novo vrstico (urejevalnik besedila)",title:"Pomoč",view:"Pogled",zoomToFit:"Približaj na vse elemente",zoomToSelection:"Približaj na izbor",toggleElementLock:"Zakleni/odkleni izbor",movePageUpDown:"Premakni stran gor/dol",movePageLeftRight:"Premakni stran levo/desno"},b={title:"Počisti platno"},c={title:"Objavi knjižnico",itemName:"Ime elementa",authorName:"Ime avtorja",githubUsername:"GitHub uporabniško ime",twitterUsername:"Twitter uporabniško ime",libraryName:"Ime knjižnice",libraryDesc:"Opis knijžnice",website:"Spletna stran",placeholder:{authorName:"Vaše ime ali uporabniško ime",libraryName:"Ime vaše knjižnice",libraryDesc:"Opis vaše knjižnice, da bodo ljudje lažje razumeli njeno uporabo",githubHandle:"GitHub uporabniško ime (neobvezno), tako da lahko urejate knjižnico potem, ko jo pošljete v pregled",twitterHandle:"Twitter uporabniško ime (neobvezno), tako da vemo, koga omeniti pri promociji prek Twitterja",website:"Povezava na vašo osebno spletno stran ali drugam (neobvezno)"},errors:{required:"Obvezno",website:"Vnesite veljaven URL"},noteDescription:"Predložite svojo knjižnico, da bo vključena v javno skladišče knjižnic,da jih drugi lahko uporabljajo v svojih risbah.",noteGuidelines:"Knjižnica mora biti najprej ročno odobrena. Prosimo vas, da pred oddajanjem preberete naše smernice.Za komunikacijo in spreminjanje po potrebi boste potrebovali račun GitHub, vendar to ni obvezno.",noteLicense:"Z oddajo se strinjate, da bo knjižnica objavljena pod licenco MIT, kar na kratko pomeni, da jo lahko kdorkoli uporablja brez omejitev.",noteItems:"Vsak element knjižnice mora imeti svoje ime, tako da ga je mogoče filtrirati. Vključeni bodo naslednji elementi knjižnice:",atleastOneLibItem:"Za začetek izberite vsaj en element knjižnice",republishWarning:"Opomba: nekateri izbrani predmeti so označeni kot že objavljeni/oddani. Elemente lahko znova oddate samo, ko posodabljate obstoječo knjižnico ali oddajo."},m={title:"Knjižnica oddana",content:"{{authorName}}, hvala. Vaša knjižnica je bila poslana v pregled. Stanje lahko spremljatetukaj"},z={resetLibrary:"Ponastavi knjižnico",removeItemsFromLib:"Odstran izbrane elemente iz knjižnice"},u={header:"Izvozi sliko",label:{withBackground:"Ozadje",onlySelected:"Samo izbor",darkMode:"Temni način",embedScene:"Vdelaj sceno",scale:"Povečava",padding:"Odmik"},tooltip:{embedScene:`Podatki o sceni bodo shranjeni v izvoženo datoteko PNG/SVG, tako da bo sceno mogoče obnoviti iz nje. -To bo povečalo velikost izvožene datoteke.`},title:{exportToPng:"Izvozi v PNG",exportToSvg:"Izvozi v SVG",copyPngToClipboard:"Kopiraj PNG v odložišče"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopiraj v odložišče"}},g={tooltip:"Vaše risbe so šifrirane od konca do konca, tako da jih strežniki Excalidraw nikoli ne bodo videli.",link:"Blog objava o šifriranju od konca do konca v Excalidraw"},h={angle:"Kot",element:"Element",elements:"Elementi",height:"Višina",scene:"Scena",selected:"Izbrano",storage:"Shramba",title:"Statistika za napredne uporabnike",total:"Skupaj",version:"Različica",versionCopy:"Kliknite za kopiranje",versionNotAvailable:"Različica ni na voljo",width:"Širina"},P={addedToLibrary:"Dodano v knjižnico",copyStyles:"Slogi kopirani.",copyToClipboard:"Kopirano v odložišče.",copyToClipboardAsPng:"Kopirano v odložišče kot PNG ({{exportSelection}}, {{exportColorScheme}})",fileSaved:"Datoteka shranjena.",fileSavedToFilename:"Shranjeno v {filename}",canvas:"platno",selection:"izbor",pasteAsSingleElement:`Uporabite {{shortcut}}, da prilepite kot en element, - ali prilepite v obstoječ urejevalnik besedil`,unableToEmbed:"Vdelava tega URL-ja trenutno ni dovoljena. Ustvarite vprašanje na GitHub-u in prosite za vmestitev URL-ja na seznam dovoljenih",unrecognizedLinkFormat:"Povezava, ki ste jo vdelali, se ne ujema s pričakovano obliko. Poskusite prilepiti niz za vdelavo, ki ste ga prejeli na izvorni strani"},S={transparent:"Prosojno",black:"Črna",white:"Bela",red:"Rdeča",pink:"Roza",grape:"Grozdje",violet:"Vijolična",gray:"Siva",blue:"Modra",cyan:"Cijan",teal:"Turkizna",green:"Zelena",yellow:"Rumena",orange:"Oranžna",bronze:"Bronasta"},y={app:{center_heading:"Vsi vaši podatki so shranjeni lokalno v vašem brskalniku.",center_heading_plus:"Ste namesto tega želeli odpreti Excalidraw+?",menuHint:"Izvoz, nastavitve, jeziki, ..."},defaults:{menuHint:"Izvoz, nastavitve in več ...",center_heading:"Diagrami. Enostavno.",toolbarHint:"Izberi orodje in začni z risanjem!",helpHint:"Bližnjice in pomoč"}},w={mostUsedCustomColors:"Najpogosteje uporabljene barve po meri",colors:"Barve",shades:"Odtenki",hexCode:"Hex koda",noShades:"Odtenki za to barvo niso na voljo"},x={action:{exportToImage:{title:"Izvozi kot sliko",button:"Izvozi kot sliko",description:"Izvozite podatke scene kot sliko, iz katere jo lahko pozneje uvozite."},saveToDisk:{title:"Shrani na disk",button:"Shrani na disk",description:"Izvozite podatke scene v datoteko, iz katere jo lahko pozneje uvozite."},excalidrawPlus:{title:"Excalidraw+",button:"Izvozi v Excalidraw+",description:"Shrani sceno v svoj delovni prostor Excalidraw+."}},modal:{loadFromFile:{title:"Naloži iz datoteke",button:"Naloži iz datoteke",description:"Nalaganje iz datoteke bo prepisalo vašo obstoječo vsebino.

    Svojo risbo lahko najprej varnostno kopirate z eno od spodnjih možnosti."},shareableLink:{title:"Naloži iz povezave",button:"Zamenjaj mojo vsebino",description:"Nalaganje zunanje risbe bo prepisalo vašo obstoječo vsebino.

    Svojo risbo lahko najprej varnostno kopirate z eno od spodnjih možnosti."}}},T={title:"Mermaid v Excalidraw",button:"Vstavi",description:"Trenutno so podprti samo diagrami poteka, diagrami zaporedij in Razredni diagrami. Druge vrste bodo upodobljene kot slike v Excalidraw.",syntax:"Sintaksa Mermaid",preview:"Predogled"},I={labels:e,library:o,buttons:i,alerts:a,errors:n,toolBar:t,headings:r,hints:l,canvasError:s,errorSplash:d,roomDialog:v,errorDialog:k,exportDialog:p,helpDialog:j,clearCanvasDialog:b,publishDialog:c,publishSuccessDialog:m,confirmDialog:z,imageExportDialog:u,encrypted:g,stats:h,toast:P,colors:S,welcomeScreen:y,colorPicker:w,overwriteConfirm:x,mermaid:T};export{a as alerts,i as buttons,s as canvasError,b as clearCanvasDialog,w as colorPicker,S as colors,z as confirmDialog,I as default,g as encrypted,k as errorDialog,d as errorSplash,n as errors,p as exportDialog,r as headings,j as helpDialog,l as hints,u as imageExportDialog,e as labels,o as library,T as mermaid,x as overwriteConfirm,c as publishDialog,m as publishSuccessDialog,v as roomDialog,h as stats,P as toast,t as toolBar,y as welcomeScreen}; -//# sourceMappingURL=sl-SI.json-ASsZh3wt.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js.map b/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js.map deleted file mode 100644 index 979701e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sl-SI.json-ASsZh3wt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sl-SI.json-ASsZh3wt.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js b/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js deleted file mode 100644 index abc14f0..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"Klistra in",pasteAsPlaintext:"Klistra som oformaterad text",pasteCharts:"Klistra in diagram",selectAll:"Markera alla",multiSelect:"Lägg till element till markering",moveCanvas:"Flytta canvas",cut:"Klipp ut",copy:"Kopiera",copyAsPng:"Kopiera till urklipp som PNG",copyAsSvg:"Kopiera till urklipp som SVG",copyText:"Kopiera till urklipp som text",copySource:"Kopiera källa till urklipp",convertToCode:"Konvertera till kod",bringForward:"Flytta framåt",sendToBack:"Flytta underst",bringToFront:"Flytta främst",sendBackward:"Skicka bakåt",delete:"Ta bort",copyStyles:"Kopiera stil",pasteStyles:"Klistra in stil",stroke:"Linje",background:"Bakgrund",fill:"Fyllnad",strokeWidth:"Linjebredd",strokeStyle:"Linjestil",strokeStyle_solid:"Solid",strokeStyle_dashed:"Streckad",strokeStyle_dotted:"Punktad",sloppiness:"Slarvighet",opacity:"Genomskinlighet",textAlign:"Textjustering",edges:"Kanter",sharp:"Skarp",round:"Rund",arrowheads:"Pilhuvuden",arrowhead_none:"Inga",arrowhead_arrow:"Pil",arrowhead_bar:"Stolpe",arrowhead_circle:"Cirkel",arrowhead_circle_outline:"Cirkel (kontur)",arrowhead_triangle:"Triangel",arrowhead_triangle_outline:"Triangel (kontur)",arrowhead_diamond:"Diamant",arrowhead_diamond_outline:"Diamant (kontur)",fontSize:"Teckenstorlek",fontFamily:"Teckensnitt",addWatermark:'Lägg till "Skapad med Excalidraw"',handDrawn:"Handritad",normal:"Normal",code:"Kod",small:"Liten",medium:"Medium",large:"Stor",veryLarge:"Mycket stor",solid:"Solid",hachure:"Skraffering",zigzag:"Sicksack",crossHatch:"Skraffera med kors",thin:"Tunn",bold:"Fet",left:"Vänster",center:"Centrera",right:"Höger",extraBold:"Extra fet",architect:"Arkitekt",artist:"Artist",cartoonist:"Serietecknare",fileTitle:"Filnamn",colorPicker:"Färgväljare",canvasColors:"Används på canvas",canvasBackground:"Canvas-bakgrund",drawingCanvas:"Ritar canvas",layers:"Lager",actions:"Åtgärder",language:"Språk",liveCollaboration:"Samarbeta live...",duplicateSelection:"Duplicera",untitled:"Namnlös",name:"Namn",yourName:"Ditt namn",madeWithExcalidraw:"Skapad med Excalidraw",group:"Gruppera markering",ungroup:"Avgruppera markering",collaborators:"Medarbetare",showGrid:"Visa rutnät",addToLibrary:"Lägg till i biblioteket",removeFromLibrary:"Ta bort från bibliotek",libraryLoadingMessage:"Laddar bibliotek…",libraries:"Bläddra i bibliotek",loadingScene:"Laddar skiss…",align:"Justera",alignTop:"Justera överkant",alignBottom:"Justera underkant",alignLeft:"Justera vänster",alignRight:"Justera höger",centerVertically:"Centrera vertikalt",centerHorizontally:"Centrera horisontellt",distributeHorizontally:"Fördela horisontellt",distributeVertically:"Fördela vertikalt",flipHorizontal:"Vänd horisontellt",flipVertical:"Vänd vertikalt",viewMode:"Visningsläge",share:"Dela",showStroke:"Visa färgväljare för linjefärg",showBackground:"Visa färgväljare för bakgrundsfärg",toggleTheme:"Växla tema",personalLib:"Personligt bibliotek",excalidrawLib:"Excalidraw bibliotek",decreaseFontSize:"Minska fontstorleken",increaseFontSize:"Öka fontstorleken",unbindText:"Koppla bort text",bindText:"Bind texten till behållaren",createContainerFromText:"Radbryt text i en avgränsad yta",link:{edit:"Redigera länk",editEmbed:"Redigera länk & bädda in",create:"Skapa länk",createEmbed:"Skapa länk & bädda in",label:"Länk",labelEmbed:"Länka & bädda in",empty:"Ingen länk är angiven"},lineEditor:{edit:"Redigera linje",exit:"Avsluta linjeredigerare"},elementLock:{lock:"Lås",unlock:"Lås upp",lockAll:"Lås alla",unlockAll:"Lås upp alla"},statusPublished:"Publicerad",sidebarLock:"Håll sidofältet öppet",selectAllElementsInFrame:"Markera alla element i rutan",removeAllElementsFromFrame:"Ta bort alla element från rutan",eyeDropper:"Välj färg från canvas",textToDiagram:"Text till diagram",prompt:"Fråga"},t={noItems:"Inga objekt tillagda ännu...",hint_emptyLibrary:"Välj ett objekt på canvasen för att lägga till det här, eller installera ett bibliotek från det publika arkivet, nedan.",hint_emptyPrivateLibrary:"Välj ett objekt på canvasen för att lägga till det här."},a={clearReset:"Återställ canvasen",exportJSON:"Exportera till fil",exportImage:"Exportera bild...",export:"Spara till...",copyToClipboard:"Kopiera till urklipp",save:"Spara till aktuell fil",saveAs:"Spara som",load:"Öppna",getShareableLink:"Hämta delbar länk",close:"Stäng",selectLanguage:"Välj språk",scrollBackToContent:"Bläddra tillbaka till innehållet",zoomIn:"Zooma in",zoomOut:"Zooma ut",resetZoom:"Återställ zoom",menu:"Meny",done:"Klart",edit:"Redigera",undo:"Ångra",redo:"Gör om",resetLibrary:"Återställ bibliotek",createNewRoom:"Skapa ett nytt rum",fullScreen:"Helskärm",darkMode:"Mörkt läge",lightMode:"Ljust läge",zenMode:"Zen-läge",objectsSnapMode:"Fäst mot objekt",exitZenMode:"Gå ur zen-läge",cancel:"Avbryt",clear:"Rensa",remove:"Ta bort",embed:"Växla inbäddning",publishLibrary:"Publicera",submit:"Skicka",confirm:"Bekräfta",embeddableInteractionButton:"Klicka för att interagera"},r={clearReset:"Detta rensar hela canvasen. Är du säker?",couldNotCreateShareableLink:"Kunde inte skapa delbar länk.",couldNotCreateShareableLinkTooBig:"Kunde inte skapa delbar länk: skissen är för stor",couldNotLoadInvalidFile:"Kunde inte ladda ogiltig fil",importBackendFailed:"Importering från backend misslyckades.",cannotExportEmptyCanvas:"Kan inte exportera tom canvas.",couldNotCopyToClipboard:"Kunde inte kopiera till urklipp.",decryptFailed:"Kunde inte avkryptera data.",uploadedSecurly:"Uppladdning har säkrats med kryptering från ände till ände. vilket innebär att Excalidraw server och tredje part inte kan läsa innehållet.",loadSceneOverridePrompt:"Laddning av extern skiss kommer att ersätta ditt befintliga innehåll. Vill du fortsätta?",collabStopOverridePrompt:`Att stoppa sessionen kommer att skriva över din föregående, lokalt lagrade skiss. Är du säker? - -(Om du vill behålla din lokala skiss, stäng bara webbläsarfliken istället.)`,errorAddingToLibrary:"Kunde inte lägga till objekt i biblioteket",errorRemovingFromLibrary:"Kunde inte ta bort objekt från biblioteket",confirmAddLibrary:"Detta kommer att lägga till {{numShapes}} form(er) till ditt bibliotek. Är du säker?",imageDoesNotContainScene:"Den här bilden verkar inte innehålla någon skissdata. Har du aktiverat inbäddning av skiss under export?",cannotRestoreFromImage:"Skiss kunde inte återställas från denna bildfil",invalidSceneUrl:"Det gick inte att importera skiss från den angivna webbadressen. Antingen har den fel format, eller så innehåller den ingen giltig Excalidraw JSON data.",resetLibrary:"Detta kommer att rensa ditt bibliotek. Är du säker?",removeItemsFromsLibrary:"Ta bort {{count}} objekt från biblioteket?",invalidEncryptionKey:"Krypteringsnyckeln måste vara 22 tecken. Livesamarbetet är inaktiverat.",collabOfflineWarning:`Ingen internetanslutning tillgänglig. -Dina ändringar kommer inte att sparas!`},n={unsupportedFileType:"Filtypen stöds inte.",imageInsertError:"Kunde inte infoga bild. Försök igen senare...",fileTooBig:"Filen är för stor. Maximal tillåten storlek är {{maxSize}}.",svgImageInsertError:"Kunde inte infoga SVG-bild. SVG-koden ser ogiltig ut.",failedToFetchImage:"Kunde inte hämta bilden.",invalidSVGString:"Ogiltig SVG.",cannotResolveCollabServer:"Det gick inte att ansluta till samarbets-servern. Ladda om sidan och försök igen.",importLibraryError:"Kunde inte ladda bibliotek",collabSaveFailed:"Det gick inte att spara i backend-databasen. Om problemen kvarstår bör du spara filen lokalt för att se till att du inte förlorar ditt arbete.",collabSaveFailed_sizeExceeded:"Det gick inte att spara till backend-databasen, whiteboarden verkar vara för stor. Du bör spara filen lokalt för att du inte ska förlora ditt arbete.",imageToolNotSupported:"Bilder är inaktiverade.",brave_measure_text_error:{line1:"Det ser ut som om du använder Brave-webbläsaren med Aggressivt Blockera fingeravtryck inställningen aktiverad.",line2:"Detta kan resultera i trasiga Textelement i dina ritningar.",line3:"Vi rekommenderar starkt att du inaktiverar den här inställningen. Du kan följa dessa steg för att inaktivera den.",line4:"Om inaktivering av denna inställning inte åtgärdar visningen av textelement, öppna ett ärende på vår GitHub, eller skriv till oss på Discord"},libraryElementTypeError:{embeddable:"Inbäddbara element kan inte läggas till i biblioteket.",iframe:"IFrame-element kan inte läggas till i biblioteket.",image:"Stöd för att lägga till bilder till biblioteket kommer snart!"},asyncPasteFailedOnRead:"Kunde inte klistra in (kunde inte läsa från urklipp).",asyncPasteFailedOnParse:"Kunde inte klistra in.",copyToSystemClipboardFailed:"Kunde inte kopiera till urklipp."},i={selection:"Markering",image:"Infoga bild",rectangle:"Rektangel",diamond:"Diamant",ellipse:"Ellips",arrow:"Pil",line:"Linje",freedraw:"Rita",text:"Text",library:"Bibliotek",lock:"Håll valt verktyg aktivt efter ritande",penMode:"Pennläge - förhindra touch",link:"Lägg till / Uppdatera länk för en vald form",eraser:"Radergummi",frame:"Rutverktyg",magicframe:"Trådram till kod",embeddable:"Bädda in (web)",laser:"Laserpekare",hand:"Hand (panoreringsverktyg)",extraTools:"Fler verktyg",mermaidToExcalidraw:"Mermaid till Excalidraw",magicSettings:"AI-inställningar"},l={canvasActions:"Canvas-åtgärder",selectedShapeActions:"Valda formåtgärder",shapes:"Former"},o={canvasPanning:"För att flytta whiteboarden, håll mushjulet eller mellanslagstangenten medan du drar eller använd handverktyget",linearElement:"Klicka för att starta flera punkter, dra för en linje",freeDraw:"Klicka och dra, släpp när du är klar",text:"Tips: du kan också lägga till text genom att dubbelklicka var som helst med markeringsverktyget",embeddable:"Klicka-dra för att skapa en webbplats-inbäddning",text_selected:"Dubbelklicka eller tryck ENTER för att redigera text",text_editing:"Tryck Escape eller CtrlOrCmd + ENTER för att slutföra redigeringen",linearElementMulti:"Klicka på sista punkten eller tryck Escape eller Enter för att avsluta",lockAngle:"Du kan begränsa vinkeln genom att hålla SKIFT",resize:`Du kan behålla proportioner genom att hålla SHIFT medan du ändrar storlek, -håller du ALT ändras storlek relativt mitten`,resizeImage:`Du kan ändra storlek fritt genom att hålla SHIFT, -håll ALT för att ändra storlek från mitten`,rotate:"Du kan begränsa vinklar genom att hålla SHIFT medan du roterar",lineEditor_info:"Håll Ctrl/Cmd och dubbelklicka eller tryck på Ctrl/Cmd + Enter för att redigera punkter",lineEditor_pointSelected:"Tryck på Ta bort för att ta bort punkt(er), Ctrl + D eller Cmd + D för att duplicera, eller dra för att flytta",lineEditor_nothingSelected:`Välj en punkt att redigera (håll SHIFT för att välja flera), -eller håll ned Alt och klicka för att lägga till nya punkter`,placeImage:"Klicka för att placera bilden, eller klicka och dra för att ställa in dess storlek manuellt",publishLibrary:"Publicera ditt eget bibliotek",bindTextToElement:"Tryck på Enter för att lägga till text",deepBoxSelect:"Håll Ctrl eller Cmd för att djupvälja, och för att förhindra att dra",eraserRevert:"Håll Alt för att återställa de element som är markerade för borttagning",firefox_clipboard_write:'Denna funktion kan sannolikt aktiveras genom att ställa in "dom.events.asyncClipboard.clipboardItem" flaggan till "true". För att ändra webbläsarens flaggor i Firefox, besök "about:config" sidan.',disableSnapping:"Håll Ctrl eller Cmd för att inaktivera fästning"},s={cannotShowPreview:"Kan inte visa förhandsgranskning",canvasTooBig:"Canvasen kan vara för stor.",canvasTooBigTip:"Tips: prova att flytta de mest avlägsna elementen lite närmare varandra."},d={headingMain:"Ett fel uppstod. Försök ",clearCanvasMessage:"Om omladdning inte fungerar, försök ",clearCanvasCaveat:" Detta kommer att leda till förlust av arbete ",trackedToSentry:"Felet med identifieraren {{eventId}} spårades på vårt system.",openIssueMessage:"Vi var mycket försiktiga med att inte inkludera din skissinformation om felet. Om din skiss inte är privat, vänligen överväga att följa upp på vår Vänligen inkludera information nedan genom att kopiera och klistra in i GitHub-problemet.",sceneContent:"Skissinnehåll:"},k={desc_intro:"Du kan bjuda in personer till din nuvarande skiss för att samarbeta med dig.",desc_privacy:"Oroa dig inte, sessionen använder kryptering från ände till ände, så vad du än ritar kommer att förbli privat. Inte ens vår server kommer att kunna se vad du skissar.",button_startSession:"Starta sessionen",button_stopSession:"Stoppa session",desc_inProgressIntro:"Nu pågår en live-samarbetssession.",desc_shareLink:"Dela denna länk med någon du vill samarbeta med:",desc_exitSession:"Att avbryta sessionen kommer att koppla bort dig från rummet, men du kommer att kunna fortsätta arbeta med skissen, lokalt. Observera att detta inte påverkar andra människor, och de kommer fortfarande att kunna samarbeta på deras version.",shareTitle:"Delta i en live-samarbetssession på Excalidraw"},g={title:"Fel"},m={disk_title:"Spara till disk",disk_details:"Exportera skissdata till en fil som du kan importera från senare.",disk_button:"Spara till fil",link_title:"Delbar länk",link_details:"Exportera som en skrivskyddad länk.",link_button:"Exportera till länk",excalidrawplus_description:"Spara skissen till din Excalidraw+ arbetsyta.",excalidrawplus_button:"Exportera",excalidrawplus_exportError:"Det gick inte att exportera till Excalidraw+ just nu..."},b={blog:"Läs vår blogg",click:"klicka",deepSelect:"Djupval",deepBoxSelect:"Djupval inom boxen, och förhindra att dra",curvedArrow:"Böjd pil",curvedLine:"Böjd linje",documentation:"Dokumentation",doubleClick:"dubbelklicka",drag:"dra",editor:"Redigerare",editLineArrowPoints:"Redigera linje-/pilpunkter",editText:"Redigera text / lägg till etikett",github:"Hittat ett problem? Rapportera",howto:"Följ våra guider",or:"eller",preventBinding:"Förhindra pilbindning",tools:"Verktyg",shortcuts:"Tangentbordsgenvägar",textFinish:"Slutför redigering (text)",textNewLine:"Lägg till ny rad (text)",title:"Hjälp",view:"Visa",zoomToFit:"Zooma för att rymma alla element",zoomToSelection:"Zooma till markering",toggleElementLock:"Lås/Lås upp valda",movePageUpDown:"Flytta sida upp/ner",movePageLeftRight:"Flytta sida vänster/höger"},p={title:"Rensa canvas"},c={title:"Publicera bibliotek",itemName:"Objektnamn",authorName:"Upphovsmannens namn",githubUsername:"GitHub-användarnamn",twitterUsername:"Twitter-användarnamn",libraryName:"Biblioteksnamn",libraryDesc:"Biblioteksbeskrivning",website:"Webbplats",placeholder:{authorName:"Ditt namn eller användarnamn",libraryName:"Namn på ditt bibliotek",libraryDesc:"Beskrivning av ditt bibliotek för att hjälpa människor att förstå dess användning",githubHandle:"Github-användarnamn (valfritt), så att du kan redigera biblioteket när du har skickat in det för granskning",twitterHandle:"Twitter-användarnamn (valfritt), så vi vet vem att kreditera när du marknadsför på Twitter",website:"Länk till din personliga webbplats eller någon annan (valfritt)"},errors:{required:"Obligatoriskt",website:"Ange en giltig URL"},noteDescription:"Skicka ditt bibliotek för att inkluderas i det offentliga bibliotekets arkivför andra människor att använda i sina skisser.",noteGuidelines:"Biblioteket måste godkännas manuellt först. Vänligen läs riktlinjerna innan du skickar in. Du behöver ett GitHub-konto för att kommunicera och göra ändringar om så önskas, men det krävs inte.",noteLicense:"Genom att skicka in godkänner du att biblioteket kommer att publiceras under MIT-licens, vilket kort sagt betyder att vem som helst kan använda det utan restriktioner.",noteItems:"Varje objekt måste ha sitt eget namn så att det är filtrerbart. Följande objekt kommer att inkluderas:",atleastOneLibItem:"Välj minst ett biblioteksobjekt för att komma igång",republishWarning:"Obs: några av de markerade objekten är redan markerade som publicerade/skickade. Du bör endast skicka objekt igen när du uppdaterar ett befintligt bibliotek eller inlämning."},u={title:"Bibliotek inskickat",content:"Tack {{authorName}}. Ditt bibliotek har skickats för granskning. Du kan följa statushär"},v={resetLibrary:"Återställ bibliotek",removeItemsFromLib:"Ta bort markerade objekt från biblioteket"},f={header:"Exportera bild",label:{withBackground:"Bakgrund",onlySelected:"Endast markerade",darkMode:"Mörkt läge",embedScene:"Bädda in skiss",scale:"Skala",padding:"Utfyllnad"},tooltip:{embedScene:`Skissdata kommer att sparas i den exporterade PNG/SVG-filen så att skissen kan återställas från den. -Kommer att öka exporterad filstorlek.`},title:{exportToPng:"Exportera till PNG",exportToSvg:"Exportera till SVG",copyPngToClipboard:"Kopiera PNG till urklipp"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Kopiera till urklipp"}},h={tooltip:"Dina skisser är krypterade från ände till ände så Excalidraws servrar kommer aldrig att se dem.",link:"Blogginlägg om kryptering från ände till ände i Excalidraw"},y={angle:"Vinkel",element:"Element",elements:"Element",height:"Höjd",scene:"Skiss",selected:"Valda",storage:"Lagring",title:"Statistik för nördar",total:"Totalt",version:"Version",versionCopy:"Klicka för att kopiera",versionNotAvailable:"Versionen är inte tillgänglig",width:"Bredd"},S={addedToLibrary:"Tillagd i biblioteket",copyStyles:"Kopierade stilar.",copyToClipboard:"Kopierad till urklipp.",copyToClipboardAsPng:`Kopierade {{exportSelection}} till urklipp som PNG -({{exportColorScheme}})`,fileSaved:"Fil sparad.",fileSavedToFilename:"Sparad till {filename}",canvas:"canvas",selection:"markering",pasteAsSingleElement:`Använd {{shortcut}} för att klistra in som ett enda element, -eller klistra in i en befintlig textredigerare`,unableToEmbed:"Att bädda in denna webbadress är för närvarande inte tillåtet. Skapa en problemrapport på GitHub för att begära att webbadressen vitlistas.",unrecognizedLinkFormat:"Länken du bäddade in matchar inte det förväntade formatet. Försök klistra in 'embed'-strängen som tillhandahålls av källwebbplatsen"},x={transparent:"Genomskinlig",black:"Svart",white:"Vit",red:"Röd",pink:"Rosa",grape:"Lila",violet:"Violett",gray:"Grå",blue:"Blå",cyan:"Turkos",teal:"Blågrön",green:"Grön",yellow:"Gul",orange:"Orange",bronze:"Brons"},w={app:{center_heading:"All data sparas lokalt i din webbläsare.",center_heading_plus:"Ville du gå till Excalidraw+ istället?",menuHint:"Exportera, inställningar, språk, ..."},defaults:{menuHint:"Exportera, inställningar och mer...",center_heading:"Förenklade. Diagram.",toolbarHint:"Välj ett verktyg & börja rita!",helpHint:"Genvägar & hjälp"}},T={mostUsedCustomColors:"Mest frekvent använda anpassade färger",colors:"Färger",shades:"Nyanser",hexCode:"Hex-kod",noShades:"Inga nyanser tillgängliga för denna färg"},L={action:{exportToImage:{title:"Exportera som bild",button:"Exportera som bild",description:"Exportera scendata som en bild från vilken du kan importera senare."},saveToDisk:{title:"Spara till disk",button:"Spara till disk",description:"Exportera scendata till en fil från vilken du kan importera senare."},excalidrawPlus:{title:"Excalidraw+",button:"Exportera till Excalidraw+",description:"Spara skissen till din Excalidraw+ arbetsyta."}},modal:{loadFromFile:{title:"Läs in från fil",button:"Läs in från fil",description:"Laddar från en fil kommer ersätta ditt befintliga innehåll.

    Du kan säkerhetskopiera din ritning först med hjälp av ett av alternativen nedan."},shareableLink:{title:"Läs in från länk",button:"Ersätt mitt innehåll",description:"Inläsning av en extern ritning kommer ersätta ditt befintliga innehåll.

    Du kan säkerhetskopiera din ritning först genom att använda ett av alternativen nedan."}}},E={title:"Mermaid till Excalidraw",button:"Infoga",description:"För närvarande stöds endast Flödesdiagram, Sekvensdiagram och Klassdiagram. De andra typerna kommer att återges som bild i Excalidraw.",syntax:"Mermaid-syntax",preview:"Förhandsgranska"},D={labels:e,library:t,buttons:a,alerts:r,errors:n,toolBar:i,headings:l,hints:o,canvasError:s,errorSplash:d,roomDialog:k,errorDialog:g,exportDialog:m,helpDialog:b,clearCanvasDialog:p,publishDialog:c,publishSuccessDialog:u,confirmDialog:v,imageExportDialog:f,encrypted:h,stats:y,toast:S,colors:x,welcomeScreen:w,colorPicker:T,overwriteConfirm:L,mermaid:E};export{r as alerts,a as buttons,s as canvasError,p as clearCanvasDialog,T as colorPicker,x as colors,v as confirmDialog,D as default,h as encrypted,g as errorDialog,d as errorSplash,n as errors,m as exportDialog,l as headings,b as helpDialog,o as hints,f as imageExportDialog,e as labels,t as library,E as mermaid,L as overwriteConfirm,c as publishDialog,u as publishSuccessDialog,k as roomDialog,y as stats,S as toast,i as toolBar,w as welcomeScreen}; -//# sourceMappingURL=sv-SE.json-lo_GRO0H.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js.map b/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js.map deleted file mode 100644 index a34f9c2..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/sv-SE.json-lo_GRO0H.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sv-SE.json-lo_GRO0H.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js b/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js deleted file mode 100644 index 5a13d26..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"ஒட்டு",pasteAsPlaintext:"அலங்காரமின்றி ஒட்டு",pasteCharts:"விளக்கப்படங்களை ஒட்டு",selectAll:"எல்லாம் தேர்ந்தெடு",multiSelect:"உறுப்பைத் தெரிவில் சேர்",moveCanvas:"கித்தானை நகர்த்து",cut:"வெட்டு",copy:"நகலெடு",copyAsPng:"நகலகத்திற்கு PNG ஆக நகலெடு",copyAsSvg:"நகலகத்திற்கு SVG ஆக நகலெடு",copyText:"நகலகத்திற்கு உரையாக நகலெடு",copySource:"",convertToCode:"",bringForward:"முன்நோக்கி கொண்டுவா",sendToBack:"பின்னே அனுப்பு",bringToFront:"முன்னே கொண்டுவா",sendBackward:"பின்நோக்கி அனுப்பு",delete:"அழி",copyStyles:"ஒயில்களை நகலெடு",pasteStyles:"ஒயில்களை ஒட்டு",stroke:"கீறல்",background:"பின்புலம்",fill:"நிரப்பல்",strokeWidth:"கீறல் அகலம்",strokeStyle:"கீறல் ஒயில்",strokeStyle_solid:"திடமான",strokeStyle_dashed:"கோடிட்ட",strokeStyle_dotted:"புள்ளியிட்ட",sloppiness:"அசட்டுத்தனம்",opacity:"ஒளிபுகாவியல்பு",textAlign:"உரைச் சீரமைப்பு",edges:"விளிம்புகள்",sharp:"கூர்மை",round:"வட்டம்",arrowheads:"அம்புத்தலைகள்",arrowhead_none:"ஏதுமில்லை",arrowhead_arrow:"அம்பு",arrowhead_bar:"பட்டை",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"முக்கோணம்",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"எழுத்துரு அளவு",fontFamily:"எழுத்துரு குடும்பம்",addWatermark:'"எக்ஸ்கேலிட்ரா கொண்டு ஆனது"-ஐச் சேர்',handDrawn:"கையால்-வரைந்த",normal:"இயல்பு",code:"குறியீடு",small:"சிறிய",medium:"நடுத்தரமான",large:"பெரிய",veryLarge:"மிகப் பெரிய",solid:"திடமான",hachure:"மலைக்குறிக்கோடு",zigzag:"கோணல்மாணல்",crossHatch:"குறுக்குகதவு",thin:"மெல்லிய",bold:"பட்டை",left:"இடது",center:"மையம்",right:"வலது",extraBold:"கூடுதல் பட்டை",architect:"கட்டடக்கலைஞர்",artist:"கலைஞர்",cartoonist:"கேலிச்சித்திர ஓவியர்",fileTitle:"கோப்புப் பெயர்",colorPicker:"நிறத் தேர்வி",canvasColors:"கித்தானில் பயன்படுத்தப்பட்டது",canvasBackground:"கித்தான் பின்னணி",drawingCanvas:"கித்தான் வரைகிறது",layers:"அடுக்குகள்",actions:"செயல்கள்",language:"மொழி",liveCollaboration:"நேரடி கூட்டுப்பணி...",duplicateSelection:"நகலாக்கு",untitled:"தலைப்பற்றது",name:"பெயர்",yourName:"உங்கள் பெயர்",madeWithExcalidraw:"எக்ஸ்கேலிட்ரா கொண்டு ஆனது",group:"தேர்ந்ததை ஒன்றிணை",ungroup:"தேர்ந்ததைப் பிரி",collaborators:"கூட்டுப்பணியினர்",showGrid:"கட்டதைக் காட்டு",addToLibrary:"நூலகத்தில் சேர்",removeFromLibrary:"நூலகத்திலிருந்து நீக்கு",libraryLoadingMessage:"நூலகத்தை ஏற்றுகிறது…",libraries:"நூலகங்களை உலாவு",loadingScene:"காட்சியை ஏற்றுகிறது…",align:"சீரமை",alignTop:"மேலே சீரமை",alignBottom:"கீழே சீரமை",alignLeft:"இடதில் சீரமை",alignRight:"வலதில் சீரமை",centerVertically:"செங்குத்தாக மையப்படுத்து",centerHorizontally:"கிடைமட்டமாக மையப்படுத்து",distributeHorizontally:"கிடைமட்டமாக விநியோகி",distributeVertically:"செங்குத்தாக விநியோகி",flipHorizontal:"கிடைமட்டமாக புரட்டு",flipVertical:"செங்குத்தாக புரட்டு",viewMode:"பார்வை பயன்முறை",share:"பகிர்",showStroke:"கீறல் நிற எடுப்பானைக் காட்டு",showBackground:"பின்னணி நிற எடுப்பானைக் காட்டு",toggleTheme:"தோற்றத்தை நிலைமாற்று",personalLib:"தனக்குரிய நூலகம்",excalidrawLib:"எக்ஸ்கேலிட்ரா நூலகம்",decreaseFontSize:"எழுத்துரு அளவைக் குறை",increaseFontSize:"எழுத்துரு அளவை அதிகரி",unbindText:"உரையைப் பிணைவவிழ்",bindText:"உரையைக் கொள்கலனுக்குப் பிணை",createContainerFromText:"உரையைக் கொள்கலனுள் சுருட்டு",link:{edit:"தொடுப்பைத் திருத்து",editEmbed:"",create:"தொடுப்பைப் படை",createEmbed:"",label:"தொடுப்பு",labelEmbed:"",empty:""},lineEditor:{edit:"தொடுப்பைத் திருத்து",exit:"வரி திருத்தியிலிருந்து வெளியேறு"},elementLock:{lock:"பூட்டு",unlock:"பூட்டவிழ்",lockAll:"எல்லாம் பூட்டு",unlockAll:"எல்லாம் பூட்டவிழ்"},statusPublished:"வெளியிடப்பட்டது",sidebarLock:"பக்கப்பட்டையைத் திறந்தே வை",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"கித்தானிலிருந்து நிறம் தேர்ந்தெடு",textToDiagram:"",prompt:""},o={noItems:"இதுவரை உருப்படிகள் சேரக்கப்படவில்லை...",hint_emptyLibrary:"கித்தானிலுள்ள உருப்படியை இங்குச் சேர்க்க தேர்ந்தெடு, அல்லது கீழுள்ள பொது களஞ்சியத்திலிருந்து நூலகத்தை நிறுவு.",hint_emptyPrivateLibrary:"கித்தானிலுள்ள உருப்படியை இங்குச் சேர்க்க தேர்ந்தெடு."},t={clearReset:"கித்தானை அகரமாக்கு",exportJSON:"கோப்புக்கு ஏற்றுமதிசெய்",exportImage:"படத்தை ஏற்றுமதிசெய்...",export:"இதில் சேமி...",copyToClipboard:"நகலகத்திற்கு நகலெடு",save:"தற்போதைய கோப்புக்குச் சேமி",saveAs:"இப்படி சேமி",load:"திற",getShareableLink:"பகிரக்கூடிய தொடுப்பைப் பெறு",close:"மூடு",selectLanguage:"மொழியைத் தேர்ந்தெடு",scrollBackToContent:"உருட்டி உள்ளடக்கத்துக்குத் திரும்பு",zoomIn:"பெரிதாக்கு",zoomOut:"சிறிதாக்கு",resetZoom:"உருவளவை அகரமாக்கு",menu:"சிறுபட்டி",done:"முடிந்தது",edit:"திருத்து",undo:"செயல்தவிர்",redo:"மீண்டும்செய்",resetLibrary:"நூலகத்தை அகரமாக்கு",createNewRoom:"புதிய அறையை உருவாக்கு",fullScreen:"முழுத் திரை",darkMode:"கருமை பயன்முறை",lightMode:"வெளிர்ந்த பயன்முறை",zenMode:"ஜென் பயன்முறை",objectsSnapMode:"",exitZenMode:"ஜென் பயன்முறையை விலகு",cancel:"ரத்துசெய்",clear:"துடை",remove:"நீக்கு",embed:"",publishLibrary:"பிரசுரி",submit:"சமர்ப்பி",confirm:"உறுதிசெய்",embeddableInteractionButton:""},r={clearReset:"இது முழு கித்தானையும் துடைக்கும். நீங்கள் உறுதியா?",couldNotCreateShareableLink:"பகிரக்கூடிய தொடுப்பை உருவாக்க முடியவில்லை.",couldNotCreateShareableLinkTooBig:"பகிரக்கூடிய தொடுப்பை உருவாக்க முடியவில்லை: காட்சி மிகப்பெரிதாக உள்ளது",couldNotLoadInvalidFile:"செல்லாத கோப்பை ஏற்ற முடியவில்லை",importBackendFailed:"தேகத்திலிருந்து இறக்குமதி தோல்வி.",cannotExportEmptyCanvas:"காலியான கித்தானை ஏற்றுமதிசெய்ய முடியாது.",couldNotCopyToClipboard:"நகலகத்திற்கு நகலெடுக்க முடியவில்லை.",decryptFailed:"தரவை மறைநீக்க முடியவில்லை.",uploadedSecurly:"பதிவேற்றம் இருமுனை மறையாகத்தால் பாதுகாக்கப்பட்டுள்ளது, எனவே எக்ஸ்கேலிட்ரா சேவையகமும் மூன்றாம் தரப்பினரும் உள்ளடக்கத்தை வாசிக்கமுடியாது.",loadSceneOverridePrompt:"வெளிப்புறச்சித்திரமேற்றல் இருக்கிற உள்ளடக்கத்தை இடங்கொள்ளும். தொடர விருப்பமா?",collabStopOverridePrompt:`அமர்வை நிறுத்துதல் முன்னர் அகமாக தேக்கிய உம் சித்திரத்தை மேலெழுதும். நீங்கள் உறுதியா? - -(உம் அக சித்திரத்தை வைக்கவேண்டுமெனில், சும்மா உலாவி தாவலை மூடுக அதற்குபதிலாக.)`,errorAddingToLibrary:"உருப்படியை நூலகத்தில் சேர்க்க இயலா",errorRemovingFromLibrary:"உருப்படியை நூலகத்திலிருந்து நீக்க இயலா",confirmAddLibrary:"இதனால் {{numShapes}} வடிவம்(கள்) உம் நூலகத்தில் சேரும். நீங்கள் உறுதியா?",imageDoesNotContainScene:"இப்படத்தில் காட்சி தரவு ஏதும் இருப்பதுபோல் தெரியவில்லை. ஏற்றுமதியின்போது காட்சி உட்பதிதலை இயக்கினீரா?",cannotRestoreFromImage:"இப்படக்கோப்பிலிருந்து காட்சி மீட்டெடுக்கப்பட முடியாது",invalidSceneUrl:"வழங்கப்பட்ட உரலியிலிருந்து காட்சியை இறக்கவியலா. இது தவறான வடிவத்தில் உள்ளது, அ செல்லத்தக்க எக்ஸ்கேலிட்ரா JSON தரவைக் கொண்டில்லை.",resetLibrary:"இது உங்கள் நுலகத்தைத் துடைக்கும். நீங்கள் உறுதியா?",removeItemsFromsLibrary:"{{count}} உருப்படி(கள்)-ஐ உம் நூலகத்திலிருந்து அழிக்கவா?",invalidEncryptionKey:"மறையாக்க விசை 22 வரியுருக்கள் கொண்டிருக்கவேண்டும். நேரடி கூட்டுப்பணி முடக்கப்பட்டது.",collabOfflineWarning:`இணைய இணைப்பு இல்லை. -உமது மாற்றங்கள் சேமிக்கப்படா!`},a={unsupportedFileType:"ஆதரிக்கப்படா கோப்பு வகை.",imageInsertError:"படத்தைப் புகுத்தவியலா. பிறகு மீண்டும் முயலவும்...",fileTooBig:"கோப்பு மிகப்பெரிது. அனுமதிக்கப்பட்ட அதிகபட்ச அளவு {{maxSize}}.",svgImageInsertError:"எஸ்விஜி படத்தைப் புகுத்தவியலா. எஸ்விஜியின் மார்க்அப் செல்லாததாக தெரிகிறது.",failedToFetchImage:"",invalidSVGString:"செல்லாத SVG.",cannotResolveCollabServer:"கூட்டுப்பணிச் சேவையகத்துடன் இணைக்க முடியவில்லை. பக்கத்தை மீளேற்றி மீண்டும் முயலவும்.",importLibraryError:"நூலகத்தை ஏற்ற முடியவில்லை",collabSaveFailed:"பின்முனை தரவுத்தளத்தில் சேமிக்க முடியவில்லை. சிக்கல்கள் நீடித்தால், உமது வேலைகளை இழக்காமலிருப்பதை உறுதிசெய்ய உமது கோப்பை உள்ளகத்தில் சேமிக்க வேண்டும்.",collabSaveFailed_sizeExceeded:"பின்முனை தரவுத்தளத்தில் சேமிக்க முடியவில்லை, கித்தான் மிகப்பெரிதாகத் தெரிகிறது. உமது வேலைகளை இழக்காமலிருப்பதை உறுதிசெய்ய உமது கோப்பை உள்ளகத்தில் சேமிக்க வேண்டும்.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"தெரிவு",image:"படத்தைப் புகுத்து",rectangle:"செவ்வகம்",diamond:"வைரம்",ellipse:"நீள்வட்டம்",arrow:"அம்பு",line:"வரி",freedraw:"வரை",text:"உரை",library:"நூலகம்",lock:"தேர்ந்த கருவியை வரைந்த பின்பும் வைத்திரு",penMode:"பேனா - தடுப்பு தொடுதல்",link:"தேர்தெடுத்த வடிவத்திற்குத் தொடுப்பைச் சேர்/ புதுப்பி",eraser:"அழிப்பி",frame:"சட்டகம் கருவி",magicframe:"",embeddable:"",laser:"",hand:"கை (பார்வை நகர்கும் கருவி)",extraTools:"மற்ற கருவிகள்",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"கித்தான் செயல்கள்",selectedShapeActions:"தேர்ந்த வடிவம் செயல்கள்",shapes:"வடிவங்கள்"},l={canvasPanning:"",linearElement:"பல புள்ளிகளைத் துவக்க சொடுக்கு, ஒற்றை வரிக்கு பிடித்திழு",freeDraw:"சொடுக்கி பிடித்திழு, முடித்ததும் விடுவி",text:"துணுக்குதவி: தெரிவு கருவி கொண்டு எங்காவது இரு-சொடுக்கி உரையைச் சேர்க்கலாம்",embeddable:"",text_selected:"உரையைத் திருத்த இரு-சொடுக்கு அ ENTERஐ அழுத்து",text_editing:"திருத்துவதை முடிக்க Escape அ CtrlOrCmd+ENTERஐ அழுத்து",linearElementMulti:"கடைசி புள்ளியில் சொடுக்கு அ முடிக்க Escape அ Enter அழுத்து",lockAngle:"SHIFTஐ அழுத்திப்பிடித்து கோணத்தை வற்புறுத்தலாம்",resize:`மறுஅளவிடுகையில் SHIFTஐ அழுத்திப்பிடித்து விகிதசமத்தை வற்புறுத்தலாம், -மையத்திலிருந்து மறுஅளவிட ALTஐ அழுத்திப்பிடி`,resizeImage:`SHIFTஐ நீண்டழுத்தி கட்டற்று அளவுமாற்றலாம், -மையத்திலிருந்து அளவுமாற்ற ALTஐ நீண்டழுத்துக`,rotate:"சுழற்றுகையில் SHIFTஐ அழுத்திப்பிடித்து கோணங்களை வற்புறுத்தலாம்",lineEditor_info:"",lineEditor_pointSelected:`புள்ளி(கள்)ஐ நீக்க Deleteஐ அழுத்து, -நகலாக்க CtrlOrCmd+D, அ நகர்த்த பிடித்திழு`,lineEditor_nothingSelected:`திருத்த புள்ளியைத் தேர்ந்தெடு (பலவற்றை தேர SHIFTஐ அழுத்திப்பிடி), -அ புதிய புள்ளிகளைச் சேர்க்க Altஐ அழுத்திப்பிடித்துச் சொடுக்கு`,placeImage:"படத்தை வைக்கச் சொடுக்கு, அ கைமுறையாக அளவு அமைக்க சொடுக்கி பிடித்திழு",publishLibrary:"உம் சொந்த நூலகத்தைப் பிரசுரி",bindTextToElement:"உரையைச் சேர்க்க enterஐ அழுத்து",deepBoxSelect:"ஆழ்ந்துத் தேரவும் பிடித்திழுத்தலைத் தவிர்க்கவும் CtrlOrCmdஐ அழுத்திப்பிடி",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"முன்னோட்டம் காட்ட இயலவில்லை",canvasTooBig:"கித்தான் மிகப்பெரிதாக இருக்கலாம்.",canvasTooBigTip:"துணுக்குதவி: தூரத்திலுள்ள உறுப்புகளைப் நெருக்கமாக நகர்த்தப்பார்."},c={headingMain:"பிழையைச் சந்தித்தீரா. முயலவும் ",clearCanvasMessage:"மீண்டுமேற்றல் வேலைசெய்யவிட்டால், முயற்சி ",clearCanvasCaveat:" இது வேலையை இழக்கக்கூடும் ",trackedToSentry:"இனங்காணியில் பிழை {{eventId}} எங்கள் இயங்குதளத்தில் தடமறியப்பட்டது.",openIssueMessage:"பிழையில் உம் காட்சி தகவலை உள்ளடக்காமலிருக்க நாங்கள் மிக எச்சரிக்கையாக இருந்தோம். உம் காட்சி தனிப்பட்டதில்லையெனில், பின்தொடர்வதற்கு பரிசீலிக்கவும் எங்கள் கீழுள்ள தகவலை நகலெடுத்து ஒட்டி GitHub சிக்கலுள் உள்ளடக்கவும்.",sceneContent:"காட்சி உள்ளடக்கம்:"},d={desc_intro:"உம்முடன் கூட்டுப்பணிசெய்ய மக்களை தற்போதைய காட்சிக்கு அழைப்பிடலாம்.",desc_privacy:"வருந்தாதீர், அமர்வு இருமுனை மறையகத்தைப் பயன்படுத்துகிறது, ஆக நீங்கள் வரைவது எதுவும் தனிப்பட்டதாக இருக்கும். எங்கள் சேவையகத்தால் கூட நீங்கள் என்ன செய்ததைப் பார்க்கவியலாது.",button_startSession:"அமர்வைத் துவக்கு",button_stopSession:"அமர்வை நிறுத்து",desc_inProgressIntro:"நேரடி-கூட்டுப்பணி அமர்வு தற்போது செயலிலுள்ளது.",desc_shareLink:"கூட்டுப்பணிபுரிய விரும்பும் எவருனும் இத்தொடுப்பைப் பகிர்க:",desc_exitSession:"அமர்வை நிறுத்தல் உம்மை அறையிலிருந்து துண்டிக்கும், ஆனால் காட்சியுடன் தொடர்ந்து பணிபுரிய உம்மாலியலும், அகமாக. இது பிற மக்களைப் பாதிக்காதென்பதைக் குறி, மற்றும் அவர்களாலவர்களுடைய பதிப்பில் இன்னும் கூட்டுப்பணிபுரியவியலும்.",shareTitle:"எக்ஸ்கேலிட்ராவில் நேரடி கூட்டுப்பணி அமர்வில் சேர்"},m={title:"பிழை"},p={disk_title:"வட்டில் சேமி",disk_details:"காட்சித் தரவை நீங்கள் பின்னர் இறக்குமதி செய்யக்கூடிய ஒரு கோப்பிற்கு ஏற்றுமதிசெய்க.",disk_button:"கோப்பில் சேமி",link_title:"பகிரக்கூடிய தொடுப்பு",link_details:"வாசிக்க-மட்டும் தொடுப்பாக ஏற்றுமதிசெய்.",link_button:"தொடுப்புக்கு ஏற்றுமதிசெய்",excalidrawplus_description:"காட்சியை உன் எக்ஸ்கேலிட்ரா பணியிடத்தில் சேமி.",excalidrawplus_button:"ஏற்றுமதி",excalidrawplus_exportError:"இத்தருணத்தில் எக்ஸ்கேலிட்ரா+ க்கு ஏற்றுமதிசெய்ய முடியவில்லை..."},b={blog:"எமது வலைப்பூவை வாசி",click:"சொடுக்கு",deepSelect:"ஆழ்ந்துத் தேர்",deepBoxSelect:"பெட்டியினுள் ஆழ்ந்துத் தேர், மற்றும் பிடித்திழுத்தலைத் தவிர்",curvedArrow:"வளைந்த அம்பு",curvedLine:"வளைந்த வரி",documentation:"ஆவணமாக்கல்",doubleClick:"இரு-சொடுக்கு",drag:"பிடித்திழு",editor:"திருத்தி",editLineArrowPoints:"",editText:"",github:"சிக்கலைக் கண்டீரா? சமர்ப்பி",howto:"எங்கள் கையேடுகளைப் பின்பற்றுக",or:"அ",preventBinding:"அம்பு பிணைதலைத் தவிர்",tools:"கருவிகள்",shortcuts:"விசைப்பலகை குறுக்குவழிகள்",textFinish:"திருத்துதலை முடி (உரை திருத்தி)",textNewLine:"புதிய வரியைச் சேர் (உரை திருத்தி)",title:"உதவி",view:"பார்",zoomToFit:"அனைத்துறுப்புகளும் பொருந்தும்படி விரிவாக்கு",zoomToSelection:"தெரிவுக்கு விரிவாக்கு",toggleElementLock:"தேர்ந்தெடுப்பைப் பூட்டு/பூட்டவிழ்",movePageUpDown:"மேலே/கீழே நகர்த்தவும்",movePageLeftRight:"இடது/வலது பக்கம் நகர்த்தவும்"},g={title:"கித்தானைத் துடை"},u={title:"நூலகத்தைப் பிரசுரி",itemName:"உருப்படியின் பெயர்",authorName:"ஆசிரியர் பெயர்",githubUsername:"GitHub பயனர்பெயர்",twitterUsername:"டுவிட்டர் பயனர்பெயர்",libraryName:"நூலக பெயர்",libraryDesc:"நூலக விவரிப்பு",website:"வலைத்தளம்",placeholder:{authorName:"உம் பெயர் அ பயனர்பெயர்",libraryName:"உம் நூலகத்தின் பெயர்",libraryDesc:"உம் நூலகத்தின் விவரிப்பு இதன் பயன்பாட்டை மக்கள் புரிந்துகொள்ளவுதவ",githubHandle:"GitHub கைப்பிடி (விரும்பினால்), ஆதலால் நீங்கள் நூலகத்தை மதிப்பாய்விற்காக சமர்ப்பித்தவுடன் திருத்தமுடியும்",twitterHandle:"டுவிட்டர் பயனர்பெயர் (விரும்பினால்), ஆதலால் டுவிட்டரில் முன்னிறுத்தும்போது யாமெவரைப் புகழ்வதென்றறிவோம்",website:"உமக்குரிய வலைத்தளத்திற்கு அ வேறெங்கிற்குமான தொடுப்பு (விரும்பினால்)"},errors:{required:"தேவைப்டுகிறது",website:"செல்லத்தக்க உரலியை உள்ளிடு"},noteDescription:"உம் நூலகத்தைச் சமர்ப்பி உள்ளடக்குவதற்கு பொது நூலக களஞ்சியத்தில்பிற மக்களவர்களின் சித்திரங்களில் பயன்படுத்த.",noteGuidelines:"நூலகம் முதலில் கைமுறையாக ஒப்புக்கொள்ளப்படவேண்டும். வாசிக்கவும் வழிகாட்டுதல்களைச் சமர்ப்பிக்கும் முன்பு. கோரப்பட்டால் தொடர்புகொள்ள மற்றும் மாற்றங்கள் செய்ய உமக்கொரு GitHub கணக்கு தேவை, ஆனால் அது கண்டிப்பாக தேவையல்ல.",noteLicense:"சமர்ப்பிப்பதனால், நூலகம் இதனடியில் பிரசரிக்கப்பட ஏற்கிறீர்கள் MIT உரிமம், சுருக்கமாக எவருமிதைப் வரையறையின்றி பயன்படுத்தலாமென குறிக்கிறது.",noteItems:"வடிக்கட்டக்கூடியதாகவிருக்க ஒவ்வொரு நூலகவுருப்படிக்கும் சொந்த பெயர் இருக்கவேண்டும். பின்வரும் நூலகவுருப்படிகள் உள்ளடக்கப்படும்:",atleastOneLibItem:"ஆரம்பிக்க ஒரு நூலக உருப்படியையாவது தேர்ந்தெடுக்கவும்",republishWarning:""},h={title:"நூலகம் சமர்ப்பிக்கப்பட்டது",content:"நன்றி {{authorName}}. உமது நூலகம் மதிப்பாய்விற்காக சமர்ப்பிக்கப்பட்டது. நிலையை நீங்கள் தடமறியலாம்இங்கே"},y={resetLibrary:"நூலகத்தை அகரமாக்கு",removeItemsFromLib:"நூலகத்திலிருந்து தேர்ந்தெடுத்த உருப்படிகளை நீக்கு"},S={header:"படத்தை ஏற்றுமதிதல",label:{withBackground:"பின்னணி",onlySelected:"தேர்ந்ததை மட்டும்",darkMode:"இருள் பயன்முறை",embedScene:"காட்சியை உட்பொதி",scale:"அளவுகோல்",padding:""},tooltip:{embedScene:""},title:{exportToPng:"PNGக்கு ஏற்றுமதிசெய்",exportToSvg:"SVGக்கு ஏற்றுமதிசெய்",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:""}},v={tooltip:"உம் சித்திரங்கள் இருமுனை மறையாக்கம் செய்யப்பட்டவையாதலால் எக்ஸ்கேலிட்ராவின் சேவையகங்கள் அவற்றை ஒருபோதும் பார்க்கா.",link:"எக்ஸ்கேலிட்ராவில் இருமுனை மறையாக்கம் மீதான வலைப்பூ இடுகை"},k={angle:"கோணம்",element:"உறுப்பு",elements:"உறுப்புகள்",height:"உயரம்",scene:"காட்சி",selected:"தேர்ந்தவை",storage:"சேமிப்பகம்",title:"மேதாவிகளுக்கான புள்ளிவிவரங்கள்",total:"மொத்தம்",version:"பதிப்பு",versionCopy:"நகலெடுக்க சொடுக்கு",versionNotAvailable:"பதிப்பு கிடைக்கவில்லை",width:"அகலம்"},T={addedToLibrary:"நூலகத்தில் சேர்க்கப்பட்டது",copyStyles:"ஒயில்கள் நகலெடுக்கப்பட்டன.",copyToClipboard:"நகலகத்திற்கு நகலெடுக்கப்பட்டது.",copyToClipboardAsPng:`{{exportSelection}}-ஐ நகலகத்திற்கு PNG ஆக நகலெடுத்தது -({{exportColorScheme}})`,fileSaved:"கோப்பு சேமிக்கப்பட்டது.",fileSavedToFilename:"{filename}-க்கு சேமிக்கப்பட்டது",canvas:"கித்தான்",selection:"தெரிவு",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},w={transparent:"ஒளிபுகுத்தன்மை",black:"கருப்பு",white:"வெள்ளை",red:"சிவப்பு",pink:"இளஞ்சிவப்பு",grape:"திராட்சை",violet:"ஊதா",gray:"சாம்பல்",blue:"நீலம்",cyan:"மயில்நிறம்",teal:"டீல்",green:"பச்சை",yellow:"மஞ்சள்",orange:"ஆரஞ்சு",bronze:"வெண்கலம்"},x={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"எளிமையாக வரைபடங்கள் உருவாக்க!",toolbarHint:"கருவியைத் தேர்ந்தெடு & வரை!",helpHint:"குறுக்குவழிகள் & உதவி"}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},C={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},L={title:"",button:"",description:"",syntax:"",preview:""},E={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:b,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:k,toast:T,colors:w,welcomeScreen:x,colorPicker:_,overwriteConfirm:C,mermaid:L};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,_ as colorPicker,w as colors,y as confirmDialog,E as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,b as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,L as mermaid,C as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,k as stats,T as toast,i as toolBar,x as welcomeScreen}; -//# sourceMappingURL=ta-IN.json-heb0CKI9.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js.map b/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js.map deleted file mode 100644 index 421be4e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/ta-IN.json-heb0CKI9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ta-IN.json-heb0CKI9.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js b/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js deleted file mode 100644 index c473f64..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js +++ /dev/null @@ -1,3 +0,0 @@ -const e={paste:"วาง",pasteAsPlaintext:"วางโดยไม่มีการจัดรูปแบบ",pasteCharts:"วางแผนภูมิ",selectAll:"เลือกทั้งหมด",multiSelect:"",moveCanvas:"",cut:"ตัด",copy:"คัดลอก",copyAsPng:"คัดลองไปยังคลิปบอร์ดเป็น PNG",copyAsSvg:"คัดลองไปยังคลิปบอร์ดเป็น SVG",copyText:"คัดลองไปยังคลิปบอร์ดเป็นข้อความ",copySource:"",convertToCode:"",bringForward:"นำขึ้นข้างบน",sendToBack:"ย้ายไปข้างล่าง",bringToFront:"นำขึ้นข้างหน้า",sendBackward:"ย้ายไปข้างหลัง",delete:"ลบ",copyStyles:"คัดลอกรูปแบบ",pasteStyles:"วางรูปแบบ",stroke:"เส้นขอบ",background:"พื้นหลัง",fill:"เติมสี",strokeWidth:"น้ำหนักเส้นขอบ",strokeStyle:"รูปแบบเส้น",strokeStyle_solid:"เส้นทึบ",strokeStyle_dashed:"เส้นประ",strokeStyle_dotted:"จุด",sloppiness:"ความเลอะเทอะ",opacity:"ความทึบแสง",textAlign:"จัดข้อความ",edges:"ขอบ",sharp:"",round:"",arrowheads:"หัวลูกศร",arrowhead_none:"ไม่มี",arrowhead_arrow:"ลูกศร",arrowhead_bar:"แถบ",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"สามเหลี่ยม",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"ขนาดตัวอักษร",fontFamily:"แบบตัวอักษร",addWatermark:'เพิ่มลายน้ำ "สร้างด้วย Excalidraw"',handDrawn:"ลายมือ",normal:"ปกติ",code:"โค้ด",small:"เล็ก",medium:"กลาง",large:"ใหญ่",veryLarge:"ใหญ่มาก",solid:"",hachure:"",zigzag:"",crossHatch:"",thin:"บาง",bold:"หนา",left:"ซ้าย",center:"กลาง",right:"ขวา",extraBold:"หนาพิเศษ",architect:"",artist:"ศิลปิน",cartoonist:"",fileTitle:"ชื่อไฟล์",colorPicker:"เลือกสีที่กำหนดเอง",canvasColors:"",canvasBackground:"",drawingCanvas:"",layers:"",actions:"การกระทำ",language:"ภาษา",liveCollaboration:"",duplicateSelection:"ทำสำเนา",untitled:"ไม่มีชื่อ",name:"ชื่อ",yourName:"ชื่อของคุณ",madeWithExcalidraw:"",group:"จัดกลุ่ม",ungroup:"ยกเลิกการจัดกลุ่ม",collaborators:"",showGrid:"แสดงเส้นตาราง",addToLibrary:"เพิ่มไปในคลัง",removeFromLibrary:"นำออกจากคลัง",libraryLoadingMessage:"กำลังโหลดคลัง...",libraries:"",loadingScene:"กำลังโหลดฉาก",align:"จัดตำแหน่ง",alignTop:"จัดชิดด้านบน",alignBottom:"จัดชิดด้านล่าง",alignLeft:"จัดชิดซ้าย",alignRight:"จัดชิดขวา",centerVertically:"กึ่งกลางแนวตั้ง",centerHorizontally:"กึ่งกลางแนวนอน",distributeHorizontally:"กระจายแนวนอน",distributeVertically:"กระจายแนวตั้ง",flipHorizontal:"พลิกแนวนอน",flipVertical:"พลิกแนวตั้ง",viewMode:"โหมดมุมมอง",share:"แชร์",showStroke:"",showBackground:"",toggleTheme:"สลับธีม",personalLib:"คลังของฉัน",excalidrawLib:"คลังของ Excalidraw",decreaseFontSize:"ลดขนาดตัวอักษร",increaseFontSize:"เพิ่มขนาดตัวอักษร",unbindText:"ยกเลิกการผูกติด",bindText:"",createContainerFromText:"",link:{edit:"แก้ไขลิงก์",editEmbed:"แก้ไขลิงค์และการฝัง",create:"สร้างลิงค์",createEmbed:"สร้างลิงค์และการฝัง",label:"ลิงค์",labelEmbed:"ลิงค์และการฝัง",empty:"ไม่ได้ใส่ลิงค์"},lineEditor:{edit:"แก้ไขเส้น",exit:""},elementLock:{lock:"ล็อก",unlock:"ปลดล็อก",lockAll:"ล็อกทั้งหมด",unlockAll:"ปลดล็อกทั้งหมด"},statusPublished:"เผยแพร่",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"ยังไม่มีรายการที่เพิ่มเข้าไปได้",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"รีเซ็ทผืนผ้าใบ",exportJSON:"ส่งออกไปยังไฟล์",exportImage:"ส่งออกเป็นรูปภาพ",export:"บันทึกไปยัง",copyToClipboard:"คัดลอกไปยังคลิปบอร์ด",save:"บันทึกเป็นไฟล์ปัจจุบัน",saveAs:"บันทึกเป็น",load:"เปิด",getShareableLink:"สร้างลิงค์ที่แชร์ได้",close:"ปิด",selectLanguage:"เลือกภาษา",scrollBackToContent:"เลื่อนกลับไปด้านบน",zoomIn:"ซูมเข้า",zoomOut:"ซูมออก",resetZoom:"รีเซ็ตการซูม",menu:"เมนู",done:"เสร็จสิ้น",edit:"แก้ไข",undo:"เลิกทำ",redo:"ทำซ้ำ",resetLibrary:"รีเซ็ตคลัง",createNewRoom:"สร้างห้องใหม่",fullScreen:"เต็มหน้าจอ",darkMode:"โหมดกลางคืน",lightMode:"โหมดกลางวัน",zenMode:"โหมด Zen",objectsSnapMode:"",exitZenMode:"ออกจากโหมด Zen",cancel:"ยกเลิก",clear:"เคลียร์",remove:"ลบ",embed:"สลับการฝัง",publishLibrary:"เผยแพร่",submit:"ตกลง",confirm:"ยืนยัน",embeddableInteractionButton:"คลิกเพื่อปฏิสัมพันธ์"},r={clearReset:"",couldNotCreateShareableLink:"ไม่สามารถสร้างลิงค์ได้",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"ไม่สามารถโหลดไฟล์ที่ผิดพลาดได้",importBackendFailed:"เกิดข้อผิดพลาดจากการนำเข้าจากระบบหลังบ้าน",cannotExportEmptyCanvas:"ไม่สามารถนำออกจากผืนผ้าใบที่ว่างเปล่าได้",couldNotCopyToClipboard:"ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้",decryptFailed:"ไม่สามารถถอดรหัสข้อมูลได้",uploadedSecurly:"การอัพโหลดได้ถูกเข้ารหัสแบบ end-to-end หมายความว่าเซิร์ฟเวอร์ของ Excalidraw และบุคคลอื่นไม่สามารถอ่านข้อมูลได้",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"ไม่สามารถเพิ่มรายการเข้าไปในคลังได้",errorRemovingFromLibrary:"ไม่สามารถลบรายการนี้ออกจากคลังได้",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"ไม่รองรับชนิดของไฟล์นี้",imageInsertError:"ไม่สามารถเพิ่มรูปภาพได้ ลองอีกครั้งในภายหลัง",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"ไฟล์ SVG ผิดพลาด",cannotResolveCollabServer:"ไม่สามารถเชื่อต่อกับ collab เซิร์ฟเวอร์ได้ โปรดลองโหลดหน้านี้ใหม่และลองอีกครั้ง",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"การเพิ่มองค์ประกอบที่ฝังยังไม่สามารถเพิ่มเข้าไปในไลบลารีได้",iframe:"",image:"การสนับสนุนสำหรับเพิ่มรูปภาพลงในไลบลารีจะมาในเร็ว ๆ นี้"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"",image:"",rectangle:"สี่เหลี่ยมผืนผ้า",diamond:"",ellipse:"วงรี",arrow:"ลูกศร",line:"",freedraw:"",text:"ข้อความ",library:"คลัง",lock:"",penMode:"",link:"",eraser:"ยางลบ",frame:"",magicframe:"",embeddable:"ฝังเว็บ",laser:"",hand:"",extraTools:"เครื่องมืออื่นๆ",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"",selectedShapeActions:"",shapes:"รูปร่าง"},l={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"คลิกและลากเพื่อสร้างการฝังสำหรับเว็บไซต์",text_selected:"คลิกสองครั้งหรือกด ENTER เพื่อแก้ไขข้อความ",text_editing:"กดปุ่ม Esc หรือกด Ctrl, Cmd + Enter เพื่อเสร็จการแก้ไข",linearElementMulti:"คลิกที่จุดสุดท้ายหรือกด Escape หรือ Enter เพื่อเสร็จสิ้น",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:`กดปุ่ม Delete เพื่อลบจุด -กด Ctrl หรือ Cmd + D เพื่อทำซ้ำหรือลากเพื่อเคลื่อนย้าย`,lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"",canvasTooBig:"",canvasTooBigTip:""},c={headingMain:"",clearCanvasMessage:"ถ้าโหลดไม่ได้ ให้ลอง ",clearCanvasCaveat:"",trackedToSentry:"",openIssueMessage:"",sceneContent:""},d={desc_intro:"",desc_privacy:"",button_startSession:"เริ่มเซสชัน",button_stopSession:"หยุดเซสชัน",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:""},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:"ไม่สามารถส่งออกไปที่ Excalidraw+ ได้ในขณะนี้"},g={blog:"อ่านบล็อกของพวกเรา",click:"คลิก",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"ดับเบิลคลิก",drag:"ลาก",editor:"",editLineArrowPoints:"",editText:"แก้ไขข้อความ / เพิ่มข้อความ",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"ช่วยเหลือ",view:"ดู",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:"ย้ายหน้าไปด้าน ซ้าย/ขวา"},b={title:""},u={title:"",itemName:"",authorName:"ชื่อเจ้าของ",githubUsername:"ชื่อผู้ใช้ GitHub",twitterUsername:"ชื่อผู้ใช้ Twitter",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},S={header:"",label:{withBackground:"",onlySelected:"",darkMode:"โหมดกลางคืน",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"ส่งออกไปเป็น SVG",exportToSvg:"ส่งออกไปเป็น SVG",copyPngToClipboard:"คัดลอก PNG ไปยังคลิปบอร์ด"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"คัดลอกไปยังคลิปบอร์ด"}},v={tooltip:"",link:""},w={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},x={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},k={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"ฟ้าน้ำทะเล",green:"เขียว",yellow:"เหลือง",orange:"ส้ม",bronze:"ทองแดง"},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},E={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},L={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:_,overwriteConfirm:E,mermaid:C};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,k as colors,y as confirmDialog,L as default,v as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,g as helpDialog,l as hints,S as imageExportDialog,e as labels,o as library,C as mermaid,E as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=th-TH.json-28RYlLeB.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js.map b/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js.map deleted file mode 100644 index ba2a32e..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/th-TH.json-28RYlLeB.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"th-TH.json-28RYlLeB.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js b/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js deleted file mode 100644 index 2038597..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js +++ /dev/null @@ -1,8 +0,0 @@ -const e={paste:"Yapıştır",pasteAsPlaintext:"Düz metin olarak yapıştır",pasteCharts:"Grafikleri yapıştır",selectAll:"Tümünü seç",multiSelect:"Seçime öge ekle",moveCanvas:"Tuvali taşı",cut:"Kes",copy:"Kopyala",copyAsPng:"Panoya PNG olarak kopyala",copyAsSvg:"Panoya SVG olarak kopyala",copyText:"Panoya metin olarak kopyala",copySource:"",convertToCode:"",bringForward:"Bir öne getir",sendToBack:"Arkaya gönder",bringToFront:"En öne getir",sendBackward:"Bir geriye gönder",delete:"Sil",copyStyles:"Stilleri kopyala",pasteStyles:"Stilleri yapıştır",stroke:"Vurgu",background:"Arka plan",fill:"Doldur",strokeWidth:"Kontur genişliği",strokeStyle:"Kontur stili",strokeStyle_solid:"Dolu",strokeStyle_dashed:"Kesik çizgili",strokeStyle_dotted:"Noktalı",sloppiness:"Üstün körülük",opacity:"Opaklık",textAlign:"Metin hizala",edges:"Kenarlar",sharp:"Keskin",round:"Yuvarlak",arrowheads:"Ok uçları",arrowhead_none:"Yok",arrowhead_arrow:"Ok",arrowhead_bar:"Çizgi",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Üçgen",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Yazı tipi boyutu",fontFamily:"Yazı tipi ailesi",addWatermark:'"Excalidraw ile yapıldı" yazısını ekle',handDrawn:"El-yazısı",normal:"Normal",code:"Kod",small:"Küçük",medium:"Orta",large:"Büyük",veryLarge:"Çok geniş",solid:"Dolu",hachure:"Taralı",zigzag:"Zikzak",crossHatch:"Çapraz-taralı",thin:"İnce",bold:"Kalın",left:"Sol",center:"Ortala",right:"Sağ",extraBold:"Ekstra kalın",architect:"Mimar",artist:"Sanatçı",cartoonist:"Karikatürist",fileTitle:"Dosya adı",colorPicker:"Renk seçici",canvasColors:"Tuvalin üzerinde kullanıldı",canvasBackground:"Tuval arka planı",drawingCanvas:"Çizim tuvali",layers:"Katmanlar",actions:"Eylemler",language:"Dil",liveCollaboration:"Canlı ortak çalışma alanı...",duplicateSelection:"Çoğalt",untitled:"Adsız",name:"İsim",yourName:"İsminiz",madeWithExcalidraw:"Excalidraw ile yapıldı",group:"Seçimi grup yap",ungroup:"Seçilen grubu dağıt",collaborators:"Ortaklar",showGrid:"Izgarayı göster",addToLibrary:"Kütüphaneye ekle",removeFromLibrary:"Kütüphaneden kaldır",libraryLoadingMessage:"Kütüphane yükleniyor…",libraries:"Kütüphanelere gözat",loadingScene:"Sahne yükleniyor…",align:"Hizala",alignTop:"Yukarı hizala",alignBottom:"Aşağı hizala",alignLeft:"Sola hizala",alignRight:"Sağa hizala",centerVertically:"Dikeyde ortala",centerHorizontally:"Yatayda ortala",distributeHorizontally:"Yatay dağıt",distributeVertically:"Dikey dağıt",flipHorizontal:"Yatay döndür",flipVertical:"Dikey döndür",viewMode:"Görünüm modu",share:"Paylaş",showStroke:"Kontur için renk seçiciyi göster",showBackground:"Arkaplan için renk seçiciyi göster",toggleTheme:"Temayı etkinleştir/devre dışı bırak",personalLib:"Kişisel Kitaplık",excalidrawLib:"Excalidraw Kitaplığı",decreaseFontSize:"Yazı Tipi Boyutunu Küçült",increaseFontSize:"Yazı Tipi Boyutunu Büyült",unbindText:"Metni çöz",bindText:"Metni taşıyıcıya bağla",createContainerFromText:"Metni bileşen içinde sar",link:{edit:"Bağlantıyı düzenle",editEmbed:"Bağlantıyı düzenle & yerleştir",create:"Bağlantı oluştur",createEmbed:"Bağlantı oluştur & yerleştir",label:"Bağlantı",labelEmbed:"Bağlantı & yerleştirme",empty:"Herhangi bir bağlantı oluşturulmadı"},lineEditor:{edit:"Çizgiyi düzenle",exit:"Çizgi düzenlemeden çık"},elementLock:{lock:"Kilitle",unlock:"Kilidi Kaldır",lockAll:"Hepsini kilitle",unlockAll:"Hepsinin kilidini kaldır"},statusPublished:"Yayınlandı",sidebarLock:"Kenar çubuğu açık kalsın",selectAllElementsInFrame:"Çerçevedeki tüm bileşenleri seç",removeAllElementsFromFrame:"Çerçevedeki tüm bileşenleri sil",eyeDropper:"Tuvalden renk seç",textToDiagram:"",prompt:""},a={noItems:"Öğe eklenmedi...",hint_emptyLibrary:"Öğelerden birini eklemek için öğeyi seçiniz veya aşağıdaki genel kütüphaneden öğeleri ekleyin.",hint_emptyPrivateLibrary:"Tuvalden bir eleman seçerek sayfaya ekleyin."},i={clearReset:"Tuvali sıfırla",exportJSON:"Dosyaya aktar",exportImage:"Resimleri dışa aktar...",export:"Şuraya kaydet...",copyToClipboard:"Panoya kopyala",save:"Geçerli dosyaya kaydet",saveAs:"Farklı kaydet",load:"Aç",getShareableLink:"Paylaşılabilir bağlantı al",close:"Kapat",selectLanguage:"Dil seçin",scrollBackToContent:"İçeriğe geri dön",zoomIn:"Yakınlaştır",zoomOut:"Uzaklaştır",resetZoom:"Yakınlaştırmayı sıfırla",menu:"Menü",done:"Tamam",edit:"Düzenle",undo:"Geri Al",redo:"Yeniden yap",resetLibrary:"Kütüphaneyi sıfırla",createNewRoom:"Yeni oda oluştur",fullScreen:"Tam ekran",darkMode:"Koyu tema",lightMode:"Açık tema",zenMode:"Zen modu",objectsSnapMode:"Nesnelere hizala",exitZenMode:"Zen modundan çık",cancel:"İptal",clear:"Temizle",remove:"Kaldır",embed:"",publishLibrary:"Yayınla",submit:"Gönder",confirm:"Onayla",embeddableInteractionButton:"Etkileşime girmek için tıkla"},l={clearReset:"Tuvalin tamamı temizlenecek. Emin misiniz?",couldNotCreateShareableLink:"Paylaşılabilir bağlantı oluşturulamadı.",couldNotCreateShareableLinkTooBig:"Paylaşılabilir bağlantı oluşturulamadı: sahne çok büyük",couldNotLoadInvalidFile:"Bilinmeyen dosya yüklenemiyor",importBackendFailed:"Sunucudan içe aktarma başarısız.",cannotExportEmptyCanvas:"Boş tuval dışarıya aktarılamaz.",couldNotCopyToClipboard:"Panoya kopyalanamıyor.",decryptFailed:"Şifrelenmiş veri çözümlenemedi.",uploadedSecurly:"Yükleme uçtan uca şifreleme ile korunmaktadır. Excalidraw sunucusu ve üçüncül şahıslar içeriği okuyamayacaktır.",loadSceneOverridePrompt:"Harici çizimler yüklemek mevcut olan içeriği değiştirecektir. Devam etmek istiyor musunuz?",collabStopOverridePrompt:`Oturumu sonlandırmak daha önceki, yerel olarak kaydedilmiş çizimin üzerine kaydedilmesine sebep olacak. Emin misiniz? - -(Yerel çiziminizi kaybetmemek için tarayıcı sekmesini kapatabilirsiniz.)`,errorAddingToLibrary:"Öğe kütüphaneye eklenemedi",errorRemovingFromLibrary:"Öğe kütüphaneden silinemedi",confirmAddLibrary:"Bu, kitaplığınıza {{numShapes}} tane şekil ekleyecek. Emin misiniz?",imageDoesNotContainScene:"Bu görüntü herhangi bir sahne verisi içermiyor gibi görünüyor. Dışa aktarma sırasında sahne yerleştirmeyi etkinleştirdiniz mi?",cannotRestoreFromImage:"Sahne bu resim dosyasından geri yüklenemedi",invalidSceneUrl:"Verilen bağlantıdan çalışma alanı yüklenemedi. Dosya bozuk olabilir veya geçerli bir Excalidraw JSON verisi bulundurmuyor olabilir.",resetLibrary:"Bu işlem kütüphanenizi sıfırlayacak. Emin misiniz?",removeItemsFromsLibrary:"{{count}} öğe(ler) kitaplıktan kaldırılsın mı?",invalidEncryptionKey:"Şifreleme anahtarı 22 karakter olmalı. Canlı işbirliği devre dışı bırakıldı.",collabOfflineWarning:"İnternet bağlantısı bulunamadı. Değişiklikleriniz kaydedilmeyecek!"},n={unsupportedFileType:"Desteklenmeyen dosya türü.",imageInsertError:"Görsel eklenemedi. Daha sonra tekrar deneyin...",fileTooBig:"Dosya çok büyük. İzin verilen maksimum boyut {{maxSize}}.",svgImageInsertError:"SVG resmi eklenemedi. SVG işaretlemesi geçersiz görünüyor.",failedToFetchImage:"",invalidSVGString:"Geçersiz SVG.",cannotResolveCollabServer:"İş birliği sunucusuna bağlanılamıyor. Lütfen sayfayı yenileyip tekrar deneyin.",importLibraryError:"Kütüphane yüklenemedi",collabSaveFailed:"Backend veritabanına kaydedilemedi. Eğer problem devam ederse, çalışmanızı korumak için dosyayı yerel olarak kaydetmelisiniz.",collabSaveFailed_sizeExceeded:"Backend veritabanına kaydedilemedi; tuval çok büyük. Çalışmanızı korumak için dosyayı yerel olarak kaydetmelisiniz.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:"Resimleri kütüphaneye ekleme desteği yakında geliyor!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},r={selection:"Seçme",image:"Görsel ekle",rectangle:"Dikdörtgen",diamond:"Elmas",ellipse:"Elips",arrow:"Ok",line:"Çizgi",freedraw:"Çiz",text:"Yazı",library:"Kütüphane",lock:"Seçilen aracı çizimden sonra aktif tut",penMode:"Kalem modu - dokunmayı engelle",link:"Seçilen şekil için bağlantı Ekle/Güncelle",eraser:"Silgi",frame:"Çerçeve aracı",magicframe:"",embeddable:"Web Yerleştirme",laser:"Lazer işaretçisi",hand:"",extraTools:"Daha fazla araç",mermaidToExcalidraw:"",magicSettings:""},t={canvasActions:"Tuval eylemleri",selectedShapeActions:"Seçilen şekil aksiyonları",shapes:"Şekiller"},o={canvasPanning:"",linearElement:"Birden fazla nokta için tıklayın, tek çizgi için sürükleyin",freeDraw:"Tıkla ve sürükle, bitirdiğinde serbest bırak",text:"İpucu: seçme aracıyla herhangi bir yere çift tıklayarak da yazı ekleyebilirsin",embeddable:"Web sitesi yerleştirmek için sürükle bırak",text_selected:"Metni düzenlemek için çift tıklayın veya ENTER'a basın",text_editing:"Düzenlemeyi bitirmek için ESC veya Ctrl/Cmd+ENTER tuşlarına basın",linearElementMulti:"Bitirmek için son noktaya tıklayın ya da Escape veya Enter tuşuna basın",lockAngle:"SHIFT tuşuna basılı tutarak açıyı koruyabilirsiniz",resize:`Yeniden boyutlandırırken SHIFT tuşunu basılı tutarak oranları sınırlayabilirsiniz, -merkezden yeniden boyutlandırmak için ALT tuşunu basılı tutun`,resizeImage:"SHIFT'e basılı tutarak serbestçe yeniden boyutlandırabilirsiniz, merkezden yeniden boyutlandırmak için ALT tuşunu basılı tutun",rotate:"Döndürürken SHIFT tuşuna basılı tutarak açıları koruyabilirsiniz",lineEditor_info:"Puanları düzenlemek için ctrl veya cmd tuşuna basılı tutup çift tıklayın veya enter tuşuna basın",lineEditor_pointSelected:`Sil tuşuna basarak noktaları silin, -Ctrl/Cmd + D ile çoğaltın, ya da sürükleyerek taşıyın`,lineEditor_nothingSelected:`Düzenlemek için bir nokta seçin (birden fazla seçmek için SHIFT tuşunu basılı tutun), -veya Alt tuşunu basılı tutun ve yeni noktalar eklemek için tıklayın`,placeImage:"Resmi yerleştirmek için tıklayın ya da boyutunu manuel olarak ayarlamak için tıklayıp sürükleyin",publishLibrary:"Kendi kitaplığınızı yayınlayın",bindTextToElement:"Enter tuşuna basarak metin ekleyin",deepBoxSelect:"Ctrl/Cmd tuşuna basılı tutarak derin seçim yapın ya da sürüklemeyi engelleyin",eraserRevert:"Alt tuşuna basılı tutarak silinme için işaretlenmiş ögeleri tersine çevirin",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"Önizleme gösterilemiyor",canvasTooBig:"Kanvas çok büyük olabilir.",canvasTooBigTip:"İpucu: En uzaktaki elemanları birbirine yakınlaştırmayı deneyin."},d={headingMain:"Hata oluştu. Lütfen ",clearCanvasMessage:"Yenileme sonrası sorun devam ediyorsa, lütfen ",clearCanvasCaveat:" Bu, yaptığınız değişiklikleri sıfırlayacak ",trackedToSentry:"Tanımlayıcı ile ilgili hata {{eventId}} sistemimize yakalandı.",openIssueMessage:"Sahne bilginizi hata mesajına yansıtmamak için oldukça dikkatli davrandık. Eğer sahneniz gizli değilse hatayı lütfen şuradan takip edin Lütfen aşağıya GitHub sorununa kopyalayarak ve yapıştırarak bilgi ekleyin.",sceneContent:"Sahne içeriği:"},k={desc_intro:"Çalışma alanınıza, sizinle birlikte çalışabilmeleri için başkalarını da ekleyebilirsiniz.",desc_privacy:"Çalışma ortamında yaptıklarınız ve çizimleriniz uçtan uca şifrelemeyle saklanmaktadır. Sunucularımız dahi bu verileri şifrelenmemiş haliyle göremez.",button_startSession:"Oturumu başlat",button_stopSession:"Oturumu sonlandır",desc_inProgressIntro:"Ortak çalışma ortamı oluşturuldu.",desc_shareLink:"Bu bağlantıyı birlikte çalışacağınız kişilerle paylaşabilirsiniz:",desc_exitSession:"Çalışma ortamını kapattığınızda ortak çalışmadan ayrılmış olursunuz ancak kendi versiyonunuzda çalışmaya devam edebilirsiniz. Bu durumda ortak çalıştığınız diğer kişiler etkilenmeyecek, çalışma ortamındaki versiyon üzerinden çalışmaya devam edebilecekler.",shareTitle:"Excalidraw'da canlı ortak calışma oturumuna katıl"},m={title:"Hata"},y={disk_title:"Belleğe kaydet",disk_details:"Sahne verilerini daha sonra içe aktarabileceğiniz bir dosyaya aktarın.",disk_button:"Dosyaya kaydet",link_title:"Paylaşılabilir bağlantı",link_details:"Salt okunur bir bağlantı olarak dışa aktarın.",link_button:"Bağlantı olarak dışa aktar",excalidrawplus_description:"Sahneyi Excalidraw+ çalışma alanınıza kaydedin.",excalidrawplus_button:"Dışa aktar",excalidrawplus_exportError:"Şu anda Excalidraw+'a aktarılamadı..."},u={blog:"Blog'umuzu okuyun",click:"tıkla",deepSelect:"Derin seçim",deepBoxSelect:"Kutu içerisinde derin seçim yapın, sürüklemeyi engelleyin",curvedArrow:"Eğri ok",curvedLine:"Eğri çizgi",documentation:"Dokümantasyon",doubleClick:"çift-tıklama",drag:"sürükle",editor:"Düzenleyici",editLineArrowPoints:"Çizgi/ok noktalarını düzenle",editText:"Etiket / metin düzenle",github:"Bir hata mı buldun? Bildir",howto:"Rehberlerimizi takip edin",or:"veya",preventBinding:"Ok bağlamayı önleyin",tools:"Araçlar",shortcuts:"Klavye kısayolları",textFinish:"Düzenlemeyi bitir (metin düzenleyici)",textNewLine:"Yeni satır ekle (metin düzenleyici)",title:"Yardım",view:"Görünüm",zoomToFit:"Tüm öğeleri sığdırmak için yakınlaştır",zoomToSelection:"Seçime yakınlaş",toggleElementLock:"Seçimi Kilitle/çöz",movePageUpDown:"Sayfayı yukarı/aşağı kaydır",movePageLeftRight:"Sayfayı sola/sağa kaydır"},c={title:"Tuvali temizle"},b={title:"Kitaplığı yayınla",itemName:"Öğe adı",authorName:"Yazar adı",githubUsername:"GıtHub kullanıcı adı",twitterUsername:"Twitter kullanıcı adı",libraryName:"Kitaplık adı",libraryDesc:"Kitaplık açıklaması",website:"Web sitesi",placeholder:{authorName:"Adınız ya da kullanıcı adınız",libraryName:"Kitaplığınızın adı",libraryDesc:"İnsanların kullanımını anlamasına yardımcı olmak için kitaplığınızın açıklaması",githubHandle:"Github bağlantısı ( tercihe bağlı), kütüphane gözden geçirme için onaylandığında düzenleyebiliesiniz diye",twitterHandle:"Twitter kullanıcı adı ( tercihe bağlı), bu sayede Twitter üzerinde paylaşıren çalışmanızı size atfedebiliriz",website:"Kişisel web sayfanızı ya da başka bir yeri bağlayın (tercihe bağlı)"},errors:{required:"Gerekli",website:"Geçerli bir URL girin"},noteDescription:"Submit your library to be included in the genel kütüphane reposudiğer insanlar çizimlerinde kullanabilsin diye.",noteGuidelines:"Önce kütüphane elle onaylanmalı. şunu okuyun yönergeler onaylamadan önce. gerekli olması halinde iletişim kurmak için ve değişiklik için Github hesabı gerekli, ama çok da illaki olmalı değil.",noteLicense:"Bunu onaylayarak, kütüğhanenin şu lisansla yayınlanmasını onaylıyorsunuz MIT Lisans, ki bu kısaca herkesin onu kısıtlama olmaksızın kullanabileceği anlamına gelmektedir.",noteItems:"Her kütüphane kendi ismine sahip olmalı ki tarama yapabilelim. Şu kütüphane ögeleri dahil edilecek:",atleastOneLibItem:"Lütfen başlamak için en az bir tane kütüphane ögesi seçin",republishWarning:"Not: seçilen ögelerden bir kısmı zaten yayınlanmış/gönderilmiş. Yalnızca mevcut kütüphane ve gönderileri güncellerken yeniden gönderme işlemi yapmalısınız."},p={title:"Kütüphane gönderildi",content:"Teşekkürler {{authorName}}. Kütüphaneniz gözden geçirme için alındı. Durumu takip edebilirsinizburada"},g={resetLibrary:"Kütüphaneyi sıfırla",removeItemsFromLib:"Seçilen ögeleri kütüphaneden kaldır"},z={header:"Resmi dışa aktar",label:{withBackground:"Arka plan",onlySelected:"Sadece seçilen",darkMode:"Karanlık mod",embedScene:"Sahne yerleştir",scale:"Ölçeklendir",padding:"Dış boşluk"},tooltip:{embedScene:"Sahne verisi, sahnenin geri yüklenebilmesi için dışarı aktarılan PNG/SVG dosyasına kaydedilecektir. Bu, dışa aktarılan dosya boyutunu arttıracaktır."},title:{exportToPng:"PNG olarak dışa aktar",exportToSvg:"SVG olarak dışa aktar",copyPngToClipboard:""},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Panoya kopyala"}},h={tooltip:"Çizimleriniz uçtan-uca şifrelenmiştir, Excalidraw'ın sunucuları bile onları göremez.",link:"Excalidraw'da uçtan uca şifreleme hakkında blog yazısı"},v={angle:"Açı",element:"Bileşen",elements:"Bileşenler",height:"Yükseklik",scene:"Sahne",selected:"Seçili",storage:"Depolama",title:"İnekler için istatistikler",total:"Toplam",version:"Sürüm",versionCopy:"Kopyalamak için tıkla",versionNotAvailable:"Sürüm mevcut değil",width:"Genişlik"},S={addedToLibrary:"Kütüphaneye eklendi",copyStyles:"Stiller kopyalandı.",copyToClipboard:"Panoya kopyalandı.",copyToClipboardAsPng:`{{exportSelection}} panoya PNG olarak -({{exportColorScheme}}) kopyalandı`,fileSaved:"Dosya kaydedildi.",fileSavedToFilename:"{filename} kaydedildi",canvas:"tuval",selection:"seçim",pasteAsSingleElement:"Tekil obje olarak yapıştırmak için veya var olan bir metin editörüne yapıştırmak için {{shortcut}} kullanın",unableToEmbed:"",unrecognizedLinkFormat:""},T={transparent:"Şeffaf",black:"Siyah",white:"Beyaz",red:"Kırmızı",pink:"Pembe",grape:"Koyu Mor",violet:"Menekşe rengi",gray:"Gri",blue:"Mavi",cyan:"Camgöbeği",teal:"Deniz mavisi",green:"Yeşil",yellow:"Sarı",orange:"Turuncu",bronze:""},f={app:{center_heading:"",center_heading_plus:"Ecalidraw+'a mı gitmek istediniz?",menuHint:"Dışa aktar, seçenekler, diller, ..."},defaults:{menuHint:"Dışa aktar, seçenekler, ve daha fazlası...",center_heading:"",toolbarHint:"Bir araç seçin ve çizime başlayın!",helpHint:"Kısayollar & yardım"}},E={mostUsedCustomColors:"En çok kullanılan özel renkler",colors:"Renkler",shades:"",hexCode:"Hex kodu",noShades:""},w={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"Diske Kaydet",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},D={title:"",button:"",description:"",syntax:"",preview:""},x={labels:e,library:a,buttons:i,alerts:l,errors:n,toolBar:r,headings:t,hints:o,canvasError:s,errorSplash:d,roomDialog:k,errorDialog:m,exportDialog:y,helpDialog:u,clearCanvasDialog:c,publishDialog:b,publishSuccessDialog:p,confirmDialog:g,imageExportDialog:z,encrypted:h,stats:v,toast:S,colors:T,welcomeScreen:f,colorPicker:E,overwriteConfirm:w,mermaid:D};export{l as alerts,i as buttons,s as canvasError,c as clearCanvasDialog,E as colorPicker,T as colors,g as confirmDialog,x as default,h as encrypted,m as errorDialog,d as errorSplash,n as errors,y as exportDialog,t as headings,u as helpDialog,o as hints,z as imageExportDialog,e as labels,a as library,D as mermaid,w as overwriteConfirm,b as publishDialog,p as publishSuccessDialog,k as roomDialog,v as stats,S as toast,r as toolBar,f as welcomeScreen}; -//# sourceMappingURL=tr-TR.json-EHF5lOjE.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js.map b/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js.map deleted file mode 100644 index 5c9ac28..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/tr-TR.json-EHF5lOjE.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tr-TR.json-EHF5lOjE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js b/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js deleted file mode 100644 index 4b3d248..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js +++ /dev/null @@ -1,7 +0,0 @@ -const e={paste:"Вставити",pasteAsPlaintext:"Вставити як простий текст",pasteCharts:"Вставити діаграми",selectAll:"Вибрати все",multiSelect:"Додати елемент до вибраного",moveCanvas:"Перемістити полотно",cut:"Вирізати",copy:"Копіювати",copyAsPng:"Копіювати як PNG",copyAsSvg:"Копіювати як SVG",copyText:"Копіювати в буфер обміну як текст",copySource:"",convertToCode:"",bringForward:"Перемістити вперед",sendToBack:"На задній план",bringToFront:"На передній план",sendBackward:"Перемістити назад",delete:"Видалити",copyStyles:"Копіювати стилі",pasteStyles:"Вставити стилі",stroke:"Контур",background:"Тло",fill:"Заповнити",strokeWidth:"Товщина контуру",strokeStyle:"Стиль контуру",strokeStyle_solid:"Суцільний",strokeStyle_dashed:"Пунктир",strokeStyle_dotted:"Крапки",sloppiness:"Охайність",opacity:"Прозорість",textAlign:"Вирівнювання тексту",edges:"Краї",sharp:"Гострі",round:"Круглі",arrowheads:"Закінчення стрілки",arrowhead_none:"Жоден",arrowhead_arrow:"Стрілка",arrowhead_bar:"Колона",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Трикутник",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Розмір шрифту",fontFamily:"Шрифт",addWatermark:"Додати «Накреслене в Excalidraw»",handDrawn:"Ручний апарат",normal:"Звичайний",code:"Код",small:"Малий",medium:"Середній",large:"Великий",veryLarge:"Дуже великий",solid:"Суцільна",hachure:"Штриховка",zigzag:"Зиґзаґ",crossHatch:"Перехресна штриховка",thin:"Тонкий",bold:"Жирний",left:"Зліва",center:"По центру",right:"Справа",extraBold:"Товстий",architect:"Архітектор",artist:"Художник",cartoonist:"Карикатурист",fileTitle:"Назва файла",colorPicker:"Палітра кольорів",canvasColors:"Використовується на полотні",canvasBackground:"Тло полотна",drawingCanvas:"Полотно",layers:"Шари",actions:"Дії",language:"Мова",liveCollaboration:"Спільна робота наживо...",duplicateSelection:"Дублювати",untitled:"Без назви",name:"Ім’я",yourName:"Ваше ім’я",madeWithExcalidraw:"Накреслене в Excalidraw",group:"Групувати виділене",ungroup:"Розгрупувати виділене",collaborators:"Співавтори",showGrid:"Показати сітку",addToLibrary:"Додати до бібліотеки",removeFromLibrary:"Видалити з бібліотеки",libraryLoadingMessage:"Завантажити бібліотеку…",libraries:"Всі бібліотеки",loadingScene:"Завантаження сцени…",align:"Вирівнювання",alignTop:"Вирівняти по верхньому краю",alignBottom:"Вирівняти по нижньому краю",alignLeft:"Вирівняти по лівому краю",alignRight:"Вирівнювання по правому краю",centerVertically:"Центрувати по вертикалі",centerHorizontally:"Центрувати по горизонталі",distributeHorizontally:"Розподілити по горизонталі",distributeVertically:"Розподілити вертикально",flipHorizontal:"Віддзеркалити горизонтально",flipVertical:"Віддзеркалити вертикально",viewMode:"Режим перегляду",share:"Поділитися",showStroke:"Показати палітру для контура",showBackground:"Показати палітру для фону",toggleTheme:"Перемкнути тему",personalLib:"Персональна бібліотека",excalidrawLib:"Бібліотека Excalidraw",decreaseFontSize:"Зменшити розмір шрифту",increaseFontSize:"Збільшити розмір шрифту",unbindText:"Відв'язати текст",bindText:"Прив’язати текст до контейнера",createContainerFromText:"Огорнути текст у контейнер",link:{edit:"Редагування посилання",editEmbed:"Редагування посилання і вкладення",create:"Створити посилання",createEmbed:"Створити посилання і вкладення",label:"Посилання",labelEmbed:"Посилання і вкладення",empty:"Посилання відсутнє"},lineEditor:{edit:"Редагувати лінію",exit:"Закінчити редагування лінії"},elementLock:{lock:"Блокувати",unlock:"Розблокувати",lockAll:"Заблокувати все",unlockAll:"Розблокувати все"},statusPublished:"Опубліковано",sidebarLock:"Не закривати бокове меню",selectAllElementsInFrame:"Обрати всі елементи у фреймі",removeAllElementsFromFrame:"Видалити всі елементи з фрейму",eyeDropper:"Вибрати колір з полотна",textToDiagram:"",prompt:""},o={noItems:"Тут поки пусто...",hint_emptyLibrary:"Виберіть об'єкт на полотні, щоб додати його сюди або встановіть бібліотеку з публічного репозиторію, що нижче.",hint_emptyPrivateLibrary:"Виберіть елемент на полотні, щоб додати його сюди."},t={clearReset:"Очистити полотно",exportJSON:"Експорт у файл",exportImage:"Експорт зображення...",export:"Зберегти як...",copyToClipboard:"Скопіювати до буферу обміну",save:"Зберегти до поточного файлу",saveAs:"Зберегти як",load:"Відкрити",getShareableLink:"Отримати посилання",close:"Закрити",selectLanguage:"Обрати мову",scrollBackToContent:"Повернутися до вмісту",zoomIn:"Збільшити",zoomOut:"Зменшити",resetZoom:"Скинути масштаб",menu:"Меню",done:"Готово",edit:"Редагувати",undo:"Відмінити",redo:"Повторити",resetLibrary:"Очистити бібліотеку",createNewRoom:"Створити нову кімнату",fullScreen:"Повноекранний режим",darkMode:"Темна тема",lightMode:"Світла тема",zenMode:"Режим Дзен",objectsSnapMode:"",exitZenMode:"Вийти з дзен-режиму",cancel:"Скасувати",clear:"Очистити",remove:"Видалити",embed:"Перемкнути вкладення",publishLibrary:"Опублікувати",submit:"Надіслати",confirm:"Підтвердити",embeddableInteractionButton:"Натисніть для взаємодії"},r={clearReset:"Це очистить все полотно. Впевнені?",couldNotCreateShareableLink:"Не вдалося створити посилання.",couldNotCreateShareableLinkTooBig:"Не вдалося створити посилання для обміну: сцена занадто велика",couldNotLoadInvalidFile:"Файл з помилками не відкрився",importBackendFailed:"Імпортування невдале.",cannotExportEmptyCanvas:"Не вийшло експортувати пусте полотно.",couldNotCopyToClipboard:"Не вдалося скопіювати до буфера обміну.",decryptFailed:"Не вдалося розшифрувати дані.",uploadedSecurly:"Це завантаження було захищене наскрізним шифруванням, а це означає що сервер Excalidraw та інші не зможуть прочитати вміст.",loadSceneOverridePrompt:"Завантаження зовнішнього креслення замінить ваш наявний контент. Продовжити?",collabStopOverridePrompt:`Зупинка сесії перезапише ваш попередній, локально збережений малюнок. Ви впевнені? - -(Якщо ви хочете зберегти локальний малюнок, просто закрийте замість нього вкладку браузера.)`,errorAddingToLibrary:"Не вдалося додати елемент до бібліотеки",errorRemovingFromLibrary:"Не вдалося видалити елемент з бібліотеки",confirmAddLibrary:"Це призведе до додавання {{numShapes}} фігур до вашої бібліотеки. Ви впевнені?",imageDoesNotContainScene:"Виглядає ніби зображення не містить корисної інформації. Ви увімкнули вбудовування сцени при експорті?",cannotRestoreFromImage:"Сцена не може бути відновлена з цього файлу зображення",invalidSceneUrl:"Не вдалося імпортувати сцену з наданого URL. Він або недоформований, або не містить дійсних даних Excalidraw JSON.",resetLibrary:"Це призведе до очищення бібліотеки. Ви впевнені?",removeItemsFromsLibrary:"Видалити {{count}} елемент(ів) з бібліотеки?",invalidEncryptionKey:"Ключ шифрування повинен бути довжиною до 22 символів. Спільну роботу вимкнено.",collabOfflineWarning:`Немає підключення до Інтернету. -Ваші зміни не будуть збережені!`},a={unsupportedFileType:"Непідтримуваний тип файлу.",imageInsertError:"Не вдалося вставити зображення. Повторіть спробу пізніше...",fileTooBig:"Занадто великий розмір файлу, максимальний розмір файлу {{maxSize}}.",svgImageInsertError:"Не вдалося вставити SVG-зображення. Помилка розмітки SVG.",failedToFetchImage:"",invalidSVGString:"Недійсний SVG.",cannotResolveCollabServer:"Не вдалося приєднатися до сервера. Перезавантажте сторінку та повторіть спробу.",importLibraryError:"Не вдалося завантажити бібліотеку",collabSaveFailed:"Не вдалося зберегти у базу даних сервера. Якщо проблеми не зникнуть, Вам слід зберегти файл локально, щоб не втратити роботу.",collabSaveFailed_sizeExceeded:"Полотно завелике! Не вдалося зберегти у базу даних сервера. Вам слід зберегти файл локально, щоб не втратити свою роботу.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Ви використовуєте браузер Brave з увімкненим налаштуванням Агресивного Блокування Розпізнавання Пристрою.",line2:"Це може нашкодити текстовим елементам у ваших малюнках.",line3:"Ми наполегливо рекомендуємо вимкнути це налаштування. Виконайте наступні кроки, щоб виправити це.",line4:"Якщо вимкнення цього параметра не вирішує показ текстових елементів, тоді створіть, будь ласка, запит на розв'язання проблеми на нашому GitHub або напишіть нам у Discord"},libraryElementTypeError:{embeddable:"Вбудовані елементи не можна додати в бібліотеку.",iframe:"",image:"Підтримка додавання зображень в бібліотеку найближчим часом!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"Виділення",image:"Вставити зображення",rectangle:"Прямокутник",diamond:"Ромб",ellipse:"Еліпс",arrow:"Стрілка",line:"Лінія",freedraw:"Малювати",text:"Текст",library:"Бібліотека",lock:"Залишити обраний інструмент після креслення",penMode:"Режим пера - запобігання дотику",link:"Додати/Оновити посилання для вибраної форми",eraser:"Очищувач",frame:"Інструмент фрейму",magicframe:"",embeddable:"Веб вкладення",laser:"",hand:"Рука (інструмент для панорамування)",extraTools:"Інші інструменти",mermaidToExcalidraw:"",magicSettings:""},l={canvasActions:"Дії з полотном",selectedShapeActions:"Вибрані дії з фігурою",shapes:"Фігури"},n={canvasPanning:"Щоб перемістити полотно, утримуйте коліщатко миші або пробіл під час перетягування, або скористайтеся інструментом Рука",linearElement:"Натисніть щоб додати кілька точок. Перетягніть щоб намалювати одну лінію",freeDraw:"Натисніть і потягніть, відпустіть коли завершите",text:"Порада: можна також додати текст, двічі клацнувши по будь-якому місці інструментом вибору",embeddable:"Клікніть та перетягніть для створення вбудованого вебсайту",text_selected:"Подвійний клік або натисніть клавішу ENTER, щоб редагувати текст",text_editing:"Натисніть клавішу Escape або Ctrl/Cmd+ENTER, щоб завершити редагування",linearElementMulti:"Натисніть на останню точку, клацніть Esc або Enter щоб завершити",lockAngle:"Ви можете обмежити кут, утримуюючи SHIFT",resize:`Ви можете зберегти пропорції, утримуючи SHIFT під час зміни розміру, -утримуйте ALT для змінення розміру від центру`,resizeImage:"Ви можете змінювати розміри утримуючи клавішу SHIFT, втримуйте клавішу ALT щоб змінювати розмір відносно центру",rotate:"Ви можете обмежити кути, утримуючи SHIFT під час обертання",lineEditor_info:"Утримуйте CtrlOrCmd і двічі клацніть або натисніть CtrlOrCmd + Enter, щоб редагувати цятки",lineEditor_pointSelected:"Натисніть Delete для видалення точку (точок), або Ctrl/Cmd+D для дублювання, перетаскування працює як звично",lineEditor_nothingSelected:"Виберіть точку для редагування (втримуйте клавішу SHIFT для вибору кількох точок), або клавішу Alt для додавання нових точок",placeImage:"Клацніть, щоб розмістити зображення, або натисніть та потягніть щоб змінити його розмір",publishLibrary:"Опублікувати свою власну бібліотеку",bindTextToElement:"Натисніть Enter, щоб додати текст",deepBoxSelect:"Втримуйте Ctrl/Cmd для глибокого виділення та щоб попередити перетягування",eraserRevert:"Втримуйте клавішу Alt, щоб повернути елементи позначені для видалення",firefox_clipboard_write:'Цю функцію можна ввімкнути, встановивши значення "true" для налаштування "dom.events.asyncClipboard.clipboardItem". Перейдіть на сторінку «about:config», щоб змінити налаштування браузера у Firefox.',disableSnapping:""},s={cannotShowPreview:"Не вдається показати попередній перегляд",canvasTooBig:"Полотно може бути завеликим.",canvasTooBigTip:"Порада: спробуйте підсунути найвіддаленіші елементи ближче один до одного."},d={headingMain:"Сталася помилка. Спробуйте ",clearCanvasMessage:"Якщо перезавантаження не допоможе, спробуйте ",clearCanvasCaveat:" Це призведе до втрати роботи ",trackedToSentry:"Помилка з ідентифікатором {{eventId}} було відслідковано в нашій системі.",openIssueMessage:"Ми були дуже обережні, щоб не включати інформацію про ваші сцени в текст помилки. Якщо ваша сцена не була приватна, будь ласка, розгляньте можливість продовження на нашому Будь ласка, додайте інформацію нижче, скопіюючи і вставляючи у GitHub issue.",sceneContent:"Вміст сцени:"},c={desc_intro:"Ви можете запросити людей для спільної роботи.",desc_privacy:"Не хвилюйтеся, сесія захищена наскрізним шифруванням, тому ваше креслення залишиться приватним. Навіть наш сервер не побачить вашу роботу.",button_startSession:"Почати сесію",button_stopSession:"Закрити сесію",desc_inProgressIntro:"Сесія спільної роботи над кресленням триває.",desc_shareLink:"Поділіться цим посиланням з будь-ким для спільної роботи:",desc_exitSession:"Зупинка сесії відключить вас від кімнати, але ви зможете продовжити роботу з полотном локально. Зверніть увагу, що це не вплине на інших людей, і вони все одно зможуть працювати над їх версією.",shareTitle:"Приєднатися до сеансу спільної роботи на Excalidraw"},b={title:"Помилка"},m={disk_title:"Зберегти на диск",disk_details:"Експорт даних сцени в файл, з якого можна імпортувати пізніше.",disk_button:"Зберегти до файлу",link_title:"Доступ за посиланням",link_details:"Експортувати як посилання тільки для читання.",link_button:"Експортувати у посилання",excalidrawplus_description:"Збережіть сцену у вашому обліковому записі Excalidraw+.",excalidrawplus_button:"Експортувати",excalidrawplus_exportError:"Не вдалося експортувати у Excalidraw+..."},p={blog:"Наш блог",click:"натиснути",deepSelect:"Глибокий вибір",deepBoxSelect:"Глибоке виділення в межах рамки, та обмеження перетягування",curvedArrow:"Крива стрілка",curvedLine:"Крива лінія",documentation:"Документація",doubleClick:"подвійний клік",drag:"перетягнути",editor:"Редактор",editLineArrowPoints:"Редагувати лінію/стрілки",editText:"Редагувати текст / додати позначку",github:"Знайшли помилку? Повідомте",howto:"Дотримуйтесь наших інструкцій",or:"або",preventBinding:"Запобігти зв'язування зі стрілками",tools:"Інструменти",shortcuts:"Гарячі клавіші",textFinish:"Завершити редагування (текстовий редактор)",textNewLine:"Додати новий рядок (текстовий редактор)",title:"Допомога",view:"Вигляд",zoomToFit:"Збільшити щоб умістити всі елементи",zoomToSelection:"Наблизити вибране",toggleElementLock:"Заблокувати/розблокувати вибране",movePageUpDown:"Пересунути сторінку вгору/вниз",movePageLeftRight:"Пересунути сторінку вліво/вправо"},g={title:"Очистити полотно"},u={title:"Опублікувати бібліотеку",itemName:"Назва елементу",authorName:"Ім'я автора",githubUsername:"Ім'я користувача Github",twitterUsername:"Ім'я користувача Твитер",libraryName:"Назва бібліотеки",libraryDesc:"Опис бібліотеки",website:"Вебсайт",placeholder:{authorName:"Ваше ім'я або ім'я користувача",libraryName:"Назва вашої бібліотеки",libraryDesc:"Опис вашої бібліотеки, щоб допомогти людям зрозуміти її використання",githubHandle:"Ім'я користувача в GitHub (необов'язково), щоб ви могли редагувати бібліотеку під час перевірки",twitterHandle:"Ім'я користувача у Twitter (необов'язково), щоб ми могли згадати вас під час промоції у Twitter",website:"Посилання на ваш особистий сайт або інший сайт (опціонально)"},errors:{required:"Обов’язково",website:"Введіть дійсну URL-адресу"},noteDescription:"Подати бібліотеку, щоб вона була включена до публічного репозиторія бібліотекдля інших людей, для використання у їхніх полотнах.",noteGuidelines:"Спочатку бібліотека повинна бути підтверджена. Будь ласка, прочитайте настанови перед відправкою. Вам знадобиться обліковий запис на GitHub, щоб колаборувати та вносити зміни, але це не обов'язково.",noteLicense:"Публікуючи, ви погоджуєтеся, що бібліотека буде опублікована під Ліцензія MIT, , простими словами, це означає що нею зможе користуватися будь-хто без обмежень.",noteItems:"Кожен об'єкт в бібліотеці повинен мати назву, це потрібно для пошуку та фільтрування. Наступні об'єкти бібліотеки будуть включені:",atleastOneLibItem:"Будь ласка, виберіть принаймні один елемент бібліотеки, щоб почати",republishWarning:"Зауважте, деякі з вибраних елементів позначені як вже опубліковані/надіслані. Ви повинні повторно надсилати елементи тільки при оновленні вже опублікованої бібліотеки чи при публікації бібліотеки."},h={title:"Бібліотека відправлена",content:"Дякуємо, {{authorName}}. Ваша бібліотека була відправлена для розгляду. Ви можете відстежувати статустут"},S={resetLibrary:"Очистити бібліотеку",removeItemsFromLib:"Видалити вибрані елементи з бібліотеки"},y={header:"Експортувати зображення",label:{withBackground:"Тло",onlySelected:"Тільки вибране",darkMode:"Темний режим",embedScene:"Вбудована сцена",scale:"Масштабування",padding:"Відступ"},tooltip:{embedScene:"Дані сцени будуть збережені в експортований файл PNG/SVG. Ця сцена може бути відновлена з нього, однак це збільшить розмір експортованого файлу."},title:{exportToPng:"Експортувати в PNG",exportToSvg:"Експортувати у SVG",copyPngToClipboard:"Скопіювати PNG в буфер обміну"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"Копіювати в буфер обміну"}},v={tooltip:"Ваші креслення захищені наскрізним шифруванням — сервери Excalidraw ніколи їх не побачать.",link:"Допис у блозі на наскрізному шифруванні в Excalidraw"},w={angle:"Кут",element:"Елемент",elements:"Елементи",height:"Висота",scene:"Сцена",selected:"Обрано",storage:"Сховище",title:"Статистика",total:"Всього",version:"Версія",versionCopy:"Натисніть, щоб скопіювати",versionNotAvailable:"Версія недоступна",width:"Ширина"},x={addedToLibrary:"Додано до бібліотеки",copyStyles:"Скопійовані стилі.",copyToClipboard:"Скопіювати до буферу обміну.",copyToClipboardAsPng:`Скопійовано {{exportSelection}} до буфера обміну як PNG -({{exportColorScheme}})`,fileSaved:"Файл збережено.",fileSavedToFilename:"Збережено в {filename}",canvas:"полотно",selection:"виділення",pasteAsSingleElement:"Використайте {{shortcut}} для вставки самостійного зразка або використайте в текстовому редакторі",unableToEmbed:"Вбудування цієї url на даний час не допускається. Підніміть питання на GitHub, щоб попросити внести URL-адресу до білого списку",unrecognizedLinkFormat:'Посилання, яке ви вставили, не відповідає очікуваному формату. Будь ласка, спробуйте вставити рядок "embed", наданий сайтом-джерелом'},k={transparent:"Прозорий",black:"Чорний",white:"Білий",red:"Червоний",pink:"Рожевий",grape:"Виноградний",violet:"Фіолетовий",gray:"Сірий",blue:"Синій",cyan:"Ціан",teal:"Бірюзовий",green:"Зелений",yellow:"Жовтий",orange:"Помаранчевий",bronze:"Бронзовий"},T={app:{center_heading:"Всі ваші дані збережено локально у Вашому браузері.",center_heading_plus:"Чи бажаєте перейти до Excalidraw+?",menuHint:"Експорт, налаштування, мови, ..."},defaults:{menuHint:"Експорт, налаштування та багато іншого...",center_heading:"Діаграми. Робити. Просто.",toolbarHint:"Оберіть інструмент і почніть малювати!",helpHint:"Гарячі клавіші і допомога"}},E={mostUsedCustomColors:"Найбільш використовувані користувацькі кольори",colors:"Кольори",shades:"Тіні",hexCode:"Hex-код",noShades:"Немає доступних відтінків цього кольору"},_={action:{exportToImage:{title:"Експортувати як зображення",button:"Експортувати як зображення",description:"Експорт даних сцени у вигляді зображення, з якого можна імпортувати пізніше."},saveToDisk:{title:"Зберегти на диск",button:"Зберегти на диск",description:"Експорт даних сцени в файл, з якого можна імпортувати пізніше."},excalidrawPlus:{title:"Excalidraw+",button:"Експортувати до Excalidraw+",description:"Зберегти сцену до робочого простору Excalidraw+."}},modal:{loadFromFile:{title:"Завантажити з файлу",button:"Завантажити з файлу",description:"Завантаження з файлу замінить наявний вміст.

    Ви можете спочатку створити резервну копію малюнка, скориставшись одним із наведених нижче способів."},shareableLink:{title:"Завантажити з посилання",button:"Замінити мій контент",description:"Завантаження зовнішнього малюнка замінить ваш наявний вміст.

    Ви можете спочатку створити резервну копію малюнка, скориставшись одним із наведених нижче способів."}}},L={title:"",button:"",description:"",syntax:"",preview:""},C={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:b,exportDialog:m,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:S,imageExportDialog:y,encrypted:v,stats:w,toast:x,colors:k,welcomeScreen:T,colorPicker:E,overwriteConfirm:_,mermaid:L};export{r as alerts,t as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,k as colors,S as confirmDialog,C as default,v as encrypted,b as errorDialog,d as errorSplash,a as errors,m as exportDialog,l as headings,p as helpDialog,n as hints,y as imageExportDialog,e as labels,o as library,L as mermaid,_ as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,w as stats,x as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=uk-UA.json-opPb2znK.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js.map b/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js.map deleted file mode 100644 index 914d558..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/uk-UA.json-opPb2znK.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uk-UA.json-opPb2znK.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js b/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js deleted file mode 100644 index f2b4cff..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js +++ /dev/null @@ -1,6 +0,0 @@ -const n={paste:"Dán",pasteAsPlaintext:"Dán kiểu văn bản thuần",pasteCharts:"Dán biểu đồ",selectAll:"Chọn tất cả",multiSelect:"Thêm mới vào Select",moveCanvas:"Di chuyển canvas",cut:"Cắt",copy:"Sao chép",copyAsPng:"Sao chép vào bộ nhớ tạm dưới dạng PNG",copyAsSvg:"Sao chép vào bộ nhớ tạm dưới dạng SVG",copyText:"Sao chép vào bộ nhớ tạm dưới dạng chữ",copySource:"",convertToCode:"",bringForward:"Đưa ra trước",sendToBack:"Hạ xuống dưới",bringToFront:"Đưa ra đầu tiên",sendBackward:"Hạ xuống cuối",delete:"Xóa",copyStyles:"Sao chép định dạng",pasteStyles:"Dán định dạng",stroke:"Nét",background:"Nền",fill:"Fill",strokeWidth:"Độ dày nét",strokeStyle:"Kiểu nét",strokeStyle_solid:"Khối",strokeStyle_dashed:"Gạch ngang",strokeStyle_dotted:"Nhiều chấm",sloppiness:"Hoa văn nét",opacity:"Độ trong suốt",textAlign:"Căn chỉnh văn bản",edges:"Cạnh",sharp:"Nhọn",round:"Tròn",arrowheads:"Đầu mũi tên",arrowhead_none:"Không",arrowhead_arrow:"Mũi tên",arrowhead_bar:"Thanh",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Tam giác",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Cỡ chữ",fontFamily:"Phông chữ",addWatermark:'Làm với Excalidraw"',handDrawn:"Vẽ tay",normal:"Bình thường",code:"Mã",small:"Nhỏ",medium:"Vừa",large:"Lớn",veryLarge:"Rất lớn",solid:"Đặc",hachure:"Nét gạch gạch",zigzag:"Zigzag",crossHatch:"Nét gạch chéo",thin:"Mỏng",bold:"In đậm",left:"Trái",center:"Giữa",right:"Phải",extraBold:"Nét siêu đậm",architect:"Kiến trúc sư",artist:"Nghệ sỹ",cartoonist:"Hoạt hình",fileTitle:"Tên tập tin",colorPicker:"Chọn màu",canvasColors:"Đã dùng trên canvas",canvasBackground:"Nền canvas",drawingCanvas:"Canvas vẽ",layers:"Lớp",actions:"Chức năng",language:"Ngôn ngữ",liveCollaboration:"Hợp tác trực tiếp...",duplicateSelection:"Tạo bản sao",untitled:"Không có tiêu đề",name:"Tên",yourName:"Tên của bạn",madeWithExcalidraw:"Làm với Excalidraw",group:"Gộp nhóm lại lựa chọn",ungroup:"Tách nhóm lựa chọn",collaborators:"Cộng tác viên",showGrid:"Hiển thị lưới",addToLibrary:"Thêm vào thư viện",removeFromLibrary:"Xóa khỏi thư viện",libraryLoadingMessage:"Đang tải thư viện…",libraries:"Xem thư viện",loadingScene:"Đang tải về…",align:"Căn chỉnh",alignTop:"Căn trên",alignBottom:"Căn dưới",alignLeft:"Canh trái",alignRight:"Canh phải",centerVertically:"Giữa theo chiều dọc",centerHorizontally:"Giữa theo chiều ngang",distributeHorizontally:"Phân bố theo chiều ngang",distributeVertically:"Phân bố theo chiều dọc",flipHorizontal:"Lật ngang",flipVertical:"Lật dọc",viewMode:"Chế độ xem",share:"Chia sẻ",showStroke:"Hiển thị chọn màu",showBackground:"Hiện thị chọn màu nền",toggleTheme:"",personalLib:"Thư viện cá nhân",excalidrawLib:"Thư viện Excalidraw",decreaseFontSize:"Giảm cỡ chữ",increaseFontSize:"Tăng cỡ chữ",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"Sửa liên kết",editEmbed:"",create:"Tạo liên kết",createEmbed:"",label:"Liên kết",labelEmbed:"",empty:""},lineEditor:{edit:"Điều chỉnh nét",exit:"Thoát chỉnh nét"},elementLock:{lock:"Khoá",unlock:"Mở khoá",lockAll:"Khóa tất cả",unlockAll:"Mở khóa tất cả"},statusPublished:"Đã đăng tải",sidebarLock:"Giữ thanh bên luôn mở",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},e={noItems:"Chưa có món nào...",hint_emptyLibrary:"Chọn một món trên canvas để thêm nó vào đây, hoặc cài đặt thư viện từ kho lưu trữ công cộng, ở bên dưới.",hint_emptyPrivateLibrary:"Chọn một món trên canvas để thêm nó vào đây."},t={clearReset:"Reset canvas",exportJSON:"Xuất ra tập tin",exportImage:"Xuất file ảnh...",export:"Lưu vào...",copyToClipboard:"Sao chép vào bộ nhớ tạm",save:"Lưu vào tập tin hiện tại",saveAs:"Lưu thành",load:"Mở",getShareableLink:"Tạo liên kết để chia sẻ",close:"Đóng",selectLanguage:"Chọn ngôn ngữ",scrollBackToContent:"Cuộn về nội dung chính",zoomIn:"Phóng to",zoomOut:"Thu nhỏ",resetZoom:"Đặt lại thu phóng",menu:"Bảng chọn",done:"Xong",edit:"Chỉnh sửa",undo:"Hoàn tác",redo:"Làm lại",resetLibrary:"",createNewRoom:"Tạo phòng mới",fullScreen:"Toàn màn hình",darkMode:"Chế độ tối",lightMode:"Chế độ sáng",zenMode:"Chế độ zen",objectsSnapMode:"",exitZenMode:"Thoát chể độ zen",cancel:"Hủy",clear:"Làm sạch",remove:"Xóa",embed:"",publishLibrary:"Đăng tải",submit:"Gửi",confirm:"Xác nhận",embeddableInteractionButton:""},i={clearReset:"Điều này sẽ dọn hết canvas. Bạn có chắc không?",couldNotCreateShareableLink:"Không thể tạo đường dẫn chia sẻ.",couldNotCreateShareableLinkTooBig:"Không thể tạo đường dẫn chia sẻ: bản vẽ quá lớn",couldNotLoadInvalidFile:"Không thể load tập tin không hợp lệ",importBackendFailed:"",cannotExportEmptyCanvas:"Không thể xuất canvas trống.",couldNotCopyToClipboard:"",decryptFailed:"Không thể giải mã dữ liệu.",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:`Dừng phiên sẽ ghi đè lên bản vẽ được lưu trữ cục bộ trước đó của bạn. Bạn có chắc không? - -(Nếu bạn muốn giữ bản vẽ cục bộ của mình, chỉ cần đóng tab trình duyệt.)`,errorAddingToLibrary:"Không thể thêm món vào thư viện",errorRemovingFromLibrary:"Không thể xoá món khỏi thư viện",confirmAddLibrary:"Hình {{numShapes}} sẽ được thêm vào thư viện. Bạn chắc chứ?",imageDoesNotContainScene:"Hình ảnh này dường như không chứa bất kỳ dữ liệu cảnh nào. Bạn đã bật tính năng nhúng cảnh khi xuất chưa?",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"Xoá {{count}} món từ thư viện?",invalidEncryptionKey:"Khóa mã hóa phải có 22 ký tự. Hợp tác trực tiếp bị vô hiệu hóa.",collabOfflineWarning:`Không có kết nối internet. -Thay đổi của bạn sẽ không được lưu!`},o={unsupportedFileType:"Loại tập tin không được hỗ trợ.",imageInsertError:"Không thể thêm ảnh. Hãy thử lại sau...",fileTooBig:"Tệp tin quá lớn. Dung lượng tối đa cho phép là {{maxSize}}.",svgImageInsertError:"Không thể thêm ảnh SVG. Mã SVG có vẻ sai.",failedToFetchImage:"",invalidSVGString:"SVG không hợp lệ.",cannotResolveCollabServer:"Không thể kết nối với máy chủ hợp tác. Hãy tải lại trang và thử lại.",importLibraryError:"Không thể tải thư viện",collabSaveFailed:"Không thể lưu vào cơ sở dữ liệu. Nếu vấn đề tiếp tục xảy ra, bạn nên lưu tệp vào máy để đảm bảo bạn không bị mất công việc.",collabSaveFailed_sizeExceeded:"Không thể lưu vào cơ sở dữ liệu, canvas có vẻ quá lớn. Bạn nên lưu tệp cục bộ để đảm bảo bạn không bị mất công việc.",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},a={selection:"Lựa chọn",image:"Chèn ảnh",rectangle:"Hình chữ nhật",diamond:"Kim cương",ellipse:"Hình elíp",arrow:"Mũi tên",line:"Đường kẻ",freedraw:"Vẽ",text:"Văn bản",library:"Thư viện",lock:"Giữ dụng cũ hiện tại sau khi vẽ",penMode:"Chế độ bút vẽ - ngăn ngừa chạm nhầm",link:"Thêm/ Chỉnh sửa liên kết cho hình được chọn",eraser:"Xóa",frame:"",magicframe:"",embeddable:"",laser:"",hand:"Tay kéo",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},r={canvasActions:"Hành động canvas",selectedShapeActions:"Các hành động cho hình dạng đã chọn",shapes:"Các hình khối"},c={canvasPanning:"Để di chuyển canvas, giữ con lăn chuột hoặc phím cách trong khi kéo, hoặc sử dụng công cụ cầm tay",linearElement:"Ấn để bắt đầu nhiểm điểm vẽ, kéo để vẽ một đường thẳng",freeDraw:"Ấn bà kéo, thả khi bạn xong",text:"Mẹo: bạn có thể thêm văn bản tại bất cứ đâu bằng cách ấn hai lần bằng tool lựa chọn",embeddable:"",text_selected:"Ấn 2 lần hoặc nhấn ENTER để chỉnh văn bản",text_editing:"Nhấn Escape hoặc Ctrl/Cmd+ENTER để hoàn thành chỉnh sửa",linearElementMulti:"Nhấn vào điểm cuối hoặc nhấn Escape hoặc Enter để kết thúc",lockAngle:"Bạn có thể chỉnh lại góc bằng cách giữ phím SHIFT",resize:`Bạn có thể chỉnh tỷ lệ bằng cách giữ SHIFT khi chỉnh kích cỡ, -giữ ALT để chỉnh kích cỡ từ trung tâm`,resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:'Tính năng này có thể được bật bằng cách đặt cờ "dom.events.asyncClipboard.clipboardItem" thành "true". Để thay đổi cờ trình duyệt trong Firefox, hãy truy cập trang "about:config".',disableSnapping:""},h={cannotShowPreview:"Không thể xem trước",canvasTooBig:"Canvas này có thể hơi lớn.",canvasTooBigTip:"Mẹo: hãy thử di chuyển các elements nhất lại gần nhau hơn một chút."},l={headingMain:"",clearCanvasMessage:"Nếu không tải lại được, hãy thử ",clearCanvasCaveat:" Điều này sẽ dẫn đến mất dữ liệu bạn đã làm ",trackedToSentry:"",openIssueMessage:"",sceneContent:""},s={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},d={title:""},g={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},m={blog:"",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},u={title:"Dọn canvas"},b={title:"",itemName:"Tên món",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"Từng món trong thư viện phải có tên riêng để có thể lọc. Các món thư viện sau đây sẽ thêm:",atleastOneLibItem:"Vui lòng chọn ít nhất một món thư viện để bắt đầu",republishWarning:"Lưu ý: một số món đã chọn được đánh dấu là đã xuất bản/đã gửi. Bạn chỉ nên gửi lại các món khi cập nhật thư viện hiện có hoặc gửi."},p={title:"",content:""},v={resetLibrary:"",removeItemsFromLib:"Xóa món đã chọn khỏi thư viện"},y={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},k={tooltip:"",link:""},T={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},S={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"canvas",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},C={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},x={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},w={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},_={title:"",button:"",description:"",syntax:"",preview:""},E={labels:n,library:e,buttons:t,alerts:i,errors:o,toolBar:a,headings:r,hints:c,canvasError:h,errorSplash:l,roomDialog:s,errorDialog:d,exportDialog:g,helpDialog:m,clearCanvasDialog:u,publishDialog:b,publishSuccessDialog:p,confirmDialog:v,imageExportDialog:y,encrypted:k,stats:T,toast:S,colors:C,welcomeScreen:x,colorPicker:w,overwriteConfirm:L,mermaid:_};export{i as alerts,t as buttons,h as canvasError,u as clearCanvasDialog,w as colorPicker,C as colors,v as confirmDialog,E as default,k as encrypted,d as errorDialog,l as errorSplash,o as errors,g as exportDialog,r as headings,m as helpDialog,c as hints,y as imageExportDialog,n as labels,e as library,_ as mermaid,L as overwriteConfirm,b as publishDialog,p as publishSuccessDialog,s as roomDialog,T as stats,S as toast,a as toolBar,x as welcomeScreen}; -//# sourceMappingURL=vi-VN.json-lNqxPgt2.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js.map b/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js.map deleted file mode 100644 index d78144c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/vi-VN.json-lNqxPgt2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vi-VN.json-lNqxPgt2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js b/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js deleted file mode 100644 index c53fc6b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js +++ /dev/null @@ -1,11 +0,0 @@ -const e={paste:"粘贴",pasteAsPlaintext:"粘贴为纯文本",pasteCharts:"粘贴图表",selectAll:"全部选中",multiSelect:"添加元素到选区",moveCanvas:"移动画布",cut:"剪切",copy:"拷贝",copyAsPng:"复制为 PNG 到剪贴板",copyAsSvg:"复制为 SVG 到剪贴板",copyText:"复制文本到剪贴板",copySource:"复制源码到剪贴板",convertToCode:"转换成代码",bringForward:"上移一层",sendToBack:"置于底层",bringToFront:"置于顶层",sendBackward:"下移一层",delete:"删除",copyStyles:"拷贝样式",pasteStyles:"粘贴样式",stroke:"描边",background:"背景",fill:"填充",strokeWidth:"描边宽度",strokeStyle:"边框样式",strokeStyle_solid:"实线",strokeStyle_dashed:"虚线",strokeStyle_dotted:"点虚线",sloppiness:"线条风格",opacity:"透明度",textAlign:"文本对齐",edges:"边角",sharp:"尖锐",round:"圆润",arrowheads:"端点",arrowhead_none:"无",arrowhead_arrow:"箭头",arrowhead_bar:"条状",arrowhead_circle:"圆点",arrowhead_circle_outline:"圆点(空心)",arrowhead_triangle:"三角箭头",arrowhead_triangle_outline:"三角箭头(空心)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(空心)",fontSize:"字体大小",fontFamily:"字体",addWatermark:"添加 “使用 Excalidraw 创建” 水印",handDrawn:"手写",normal:"普通",code:"代码",small:"小",medium:"中",large:"大",veryLarge:"加大",solid:"实心",hachure:"线条",zigzag:"之字形折线",crossHatch:"交叉线条",thin:"细",bold:"粗",left:"左对齐",center:"居中",right:"右对齐",extraBold:"特粗",architect:"朴素",artist:"艺术",cartoonist:"漫画家",fileTitle:"文件名",colorPicker:"取色器",canvasColors:"画布上的",canvasBackground:"画布背景",drawingCanvas:"绘制 Canvas",layers:"图层",actions:"操作",language:"语言",liveCollaboration:"实时协作...",duplicateSelection:"复制",untitled:"无标题",name:"名字",yourName:"您的姓名",madeWithExcalidraw:"使用 Excalidraw 创建",group:"编组",ungroup:"解除编组",collaborators:"协作者",showGrid:"显示网格",addToLibrary:"添加到素材库中",removeFromLibrary:"从素材库中移除",libraryLoadingMessage:"正在加载素材库…",libraries:"浏览素材库",loadingScene:"正在加载绘图…",align:"对齐",alignTop:"顶部对齐",alignBottom:"底端对齐",alignLeft:"左对齐",alignRight:"右对齐",centerVertically:"垂直居中",centerHorizontally:"水平居中",distributeHorizontally:"水平等距分布",distributeVertically:"垂直等距分布",flipHorizontal:"水平翻转",flipVertical:"垂直翻转",viewMode:"查看模式",share:"分享",showStroke:"显示描边颜色选择器",showBackground:"显示背景颜色选择器",toggleTheme:"切换主题",personalLib:"个人素材库",excalidrawLib:"Excalidraw 素材库",decreaseFontSize:"缩小字体大小",increaseFontSize:"放大字体大小",unbindText:"取消文本绑定",bindText:"将文本绑定到容器",createContainerFromText:"将文本包围在容器中",link:{edit:"编辑链接",editEmbed:"编辑链接与嵌入",create:"新建链接",createEmbed:"创建链接与嵌入",label:"链接",labelEmbed:"链接与嵌入",empty:"未设定链接"},lineEditor:{edit:"编辑线条",exit:"退出线条编辑"},elementLock:{lock:"锁定",unlock:"解除锁定",lockAll:"全部锁定",unlockAll:"全部解锁"},statusPublished:"已发布",sidebarLock:"侧边栏常驻",selectAllElementsInFrame:"选择画框中的所有元素",removeAllElementsFromFrame:"分离出画框中的所有元素",eyeDropper:"从画布上取色",textToDiagram:"文字至图表",prompt:"Prompt"},t={noItems:"尚未添加任何项目……",hint_emptyLibrary:"选中画布上的项目添加到此处,或从下方的公共素材库中导入。",hint_emptyPrivateLibrary:"选中画布上的项目添加到此处。"},o={clearReset:"重置画布",exportJSON:"导出为文件",exportImage:"导出图片...",export:"保存到...",copyToClipboard:"复制到剪贴板",save:"保存至当前文件",saveAs:"保存为",load:"打开",getShareableLink:"获取共享链接",close:"关闭",selectLanguage:"选择语言",scrollBackToContent:"滚动回到内容",zoomIn:"放大",zoomOut:"缩小",resetZoom:"重置缩放",menu:"菜单",done:"完成",edit:"编辑",undo:"撤销",redo:"重做",resetLibrary:"重置素材库",createNewRoom:"新建会议室",fullScreen:"全屏",darkMode:"深色模式",lightMode:"浅色模式",zenMode:"禅模式",objectsSnapMode:"吸附至对象",exitZenMode:"退出禅模式",cancel:"取消",clear:"清除",remove:"删除",embed:"切换嵌入",publishLibrary:"发布",submit:"提交",confirm:"确定",embeddableInteractionButton:"点击以开始交互"},r={clearReset:"这将会清除整个画布。您是否要继续?",couldNotCreateShareableLink:"无法创建共享链接",couldNotCreateShareableLinkTooBig:"无法创建可共享链接:画布过大",couldNotLoadInvalidFile:"无法加载无效的文件",importBackendFailed:"从后端导入失败。",cannotExportEmptyCanvas:"无法导出空白画布。",couldNotCopyToClipboard:"无法复制到剪贴板。",decryptFailed:"无法解密数据。",uploadedSecurly:"上传已被端到端加密保护,这意味着 Excalidraw 的服务器和第三方都无法读取内容。",loadSceneOverridePrompt:"加载外部绘图将取代您现有的内容。您想要继续吗?",collabStopOverridePrompt:`停止会话将覆盖您先前本地存储的绘图。 您确定吗? - -(如果您想保持本地绘图,只需关闭浏览器选项卡。)`,errorAddingToLibrary:"无法将项目添加到素材库中",errorRemovingFromLibrary:"无法从素材库中移除项目",confirmAddLibrary:"这将添加 {{numShapes}} 个形状到您的素材库中。您确定吗?",imageDoesNotContainScene:"此图像似乎不包含任何画布数据。您是否在导出时启用了画布嵌入功能?",cannotRestoreFromImage:"无法从此图像文件恢复画布",invalidSceneUrl:"无法从提供的 URL 导入场景。它或者格式不正确,或者不包含有效的 Excalidraw JSON 数据。",resetLibrary:"这将会清除你的素材库。你确定要这么做吗?",removeItemsFromsLibrary:"确定要从素材库中删除 {{count}} 个项目吗?",invalidEncryptionKey:"密钥必须包含22个字符。实时协作已被禁用。",collabOfflineWarning:`无网络连接。 -您的改动将不会被保存!`},a={unsupportedFileType:"不支持的文件格式。",imageInsertError:"无法插入图像。请稍后再试……",fileTooBig:"文件过大。最大允许的大小为 {{maxSize}}。",svgImageInsertError:"无法插入 SVG 图像。该 SVG 标记似乎是无效的。",failedToFetchImage:"无法获取图片。",invalidSVGString:"无效的 SVG。",cannotResolveCollabServer:"无法连接到实时协作服务器。请重新加载页面并重试。",importLibraryError:"无法加载素材库",collabSaveFailed:"无法保存到后端数据库。如果问题持续存在,您应该保存文件到本地,以确保您的工作不会丢失。",collabSaveFailed_sizeExceeded:"无法保存到后端数据库,画布似乎过大。您应该保存文件到本地,以确保您的工作不会丢失。",imageToolNotSupported:"图片已被禁用。",brave_measure_text_error:{line1:"您似乎正在使用 Brave 浏览器并启用了积极阻止指纹识别的设置。",line2:"这可能会破坏绘图中的 文本元素。",line3:"我们强烈建议禁用此设置。您可以按照这些步骤来设置。",line4:"如果禁用此设置无法修复文本元素的显示,请在 GitHub 上提交一个 issue ,或者在 Discord 上反馈"},libraryElementTypeError:{embeddable:"嵌入的元素不能被添加到素材库。",iframe:"不能将 IFrame 元素添加到素材库中。",image:"我们不久将支持添加图片到素材库"},asyncPasteFailedOnRead:"无法粘贴(无法读取系统剪贴板)。",asyncPasteFailedOnParse:"无法粘贴。",copyToSystemClipboardFailed:"无法复制到剪贴板。"},i={selection:"选择",image:"插入图像",rectangle:"矩形",diamond:"菱形",ellipse:"椭圆",arrow:"箭头",line:"线条",freedraw:"自由书写",text:"文字",library:"素材库",lock:"绘制后保持所选的工具栏状态",penMode:"笔模式 – 避免误触",link:"为选中的形状添加/更新链接",eraser:"橡皮",frame:"画框工具",magicframe:"线框图至代码",embeddable:"嵌入网页",laser:"激光笔",hand:"抓手(平移工具)",extraTools:"更多工具",mermaidToExcalidraw:"Mermaid 至 Excalidraw",magicSettings:"AI 设置"},l={canvasActions:"画布动作",selectedShapeActions:"选定形状操作",shapes:"形状"},n={canvasPanning:"要移动画布,请按住鼠标滚轮或空格键同时拖拽鼠标,或使用抓手工具。",linearElement:"点击创建多个点 拖动创建直线",freeDraw:"点击并拖动,完成时松开",text:"提示:您也可以使用选择工具双击任意位置来添加文字",embeddable:"点击并拖动以创建嵌入网页",text_selected:"双击或按回车键以编辑文本",text_editing:"按下 Escape 或 CtrlOrCmd+ENTER 完成编辑",linearElementMulti:"点击最后一个点或按下 Esc/Enter 来完成",lockAngle:"可以按住 Shift 来约束角度",resize:`您可以按住SHIFT来限制比例大小, -按住ALT来调整中心大小`,resizeImage:`按住SHIFT可以自由缩放, -按住ALT可以从中间缩放`,rotate:"旋转时可以按住 Shift 来约束角度",lineEditor_info:"按住 CtrlOrCmd 并双击或按 CtrlOrCmd + Enter 来编辑点",lineEditor_pointSelected:"按下 Delete 移除点,CtrlOrCmd+D 以复制,拖动以移动",lineEditor_nothingSelected:`选择要编辑的点 (按住 SHIFT 选择多个), -或按住 Alt 并点击以添加新点`,placeImage:"点击放置图像,或者点击并拖动以手动设置图像大小",publishLibrary:"发布您自己的素材库",bindTextToElement:"按下 Enter 以添加文本",deepBoxSelect:"按住 CtrlOrCmd 以深度选择,并避免拖拽",eraserRevert:"按住 Alt 以反选被标记删除的元素",firefox_clipboard_write:"将高级配置首选项“dom.events.asyncClipboard.clipboardItem”设置为“true”可以启用此功能。要更改 Firefox 的高级配置首选项,请前往“about:config”页面。",disableSnapping:"按住 Ctrl 或 Cmd 以禁用吸附"},s={cannotShowPreview:"无法显示预览",canvasTooBig:"画布可能过大。",canvasTooBigTip:"提示:尝试将最远的元素移动到和其它元素更近一些。"},d={headingMain:"遇到异常。请尝试。",clearCanvasMessage:"如果重新加载页面无效,请尝试。",clearCanvasCaveat:"这会造成当前工作丢失",trackedToSentry:"标识符为{{eventId}}的错误已在我们的系统中被记录",openIssueMessage:"我们非常谨慎地处理错误信息,您的画布内容不会被包含在错误报告中。如果您的画布内容不需要保持私密,请考虑在我们的 上提供更多信息。请复制粘贴以下信息到 GitHub Issue 中。",sceneContent:"画布内容:"},c={desc_intro:"你可以邀请其他人到目前的画面中与你协作。",desc_privacy:"别担心,该会话使用端到端加密,无论绘制什么都将保持私密,甚至连我们的服务器也无法查看。",button_startSession:"开始会话",button_stopSession:"结束会话",desc_inProgressIntro:"实时协作会话进行中。",desc_shareLink:"分享此链接给你要协作的用户",desc_exitSession:"停止会话将中断您与房间的连接,但您依然可以在本地继续使用画布。请注意,这不会影响到其他用户,他们仍可以在他们的版本上继续协作。",shareTitle:"加入 Excalidraw 实时协作会话"},m={title:"错误"},b={disk_title:"保存到本地",disk_details:"将画布数据导出为文件,以便以后导入",disk_button:"保存为文件",link_title:"分享链接",link_details:"导出为只读链接。",link_button:"导出链接",excalidrawplus_description:"将画布保存到您的 Excalidraw+ 工作区。",excalidrawplus_button:"导出",excalidrawplus_exportError:"暂时无法导出到 Excalidraw+ ..."},p={blog:"浏览我们的博客",click:"单击",deepSelect:"深度选择",deepBoxSelect:"在方框内深度选择并避免拖拽",curvedArrow:"曲线箭头",curvedLine:"曲线",documentation:"文档",doubleClick:"双击",drag:"拖动",editor:"编辑器",editLineArrowPoints:"编辑线条或箭头的点",editText:"添加或编辑文本",github:"发现问题?提交反馈",howto:"帮助文档",or:"或",preventBinding:"禁用箭头吸附",tools:"工具",shortcuts:"快捷键列表",textFinish:"完成编辑 (文本编辑器)",textNewLine:"添加新行(文本编辑器)",title:"帮助",view:"视图",zoomToFit:"缩放以适应所有元素",zoomToSelection:"缩放到选区",toggleElementLock:"锁定/解锁",movePageUpDown:"上下移动页面",movePageLeftRight:"左右移动页面"},g={title:"清除画布"},u={title:"发布素材库",itemName:"项目名称",authorName:"作者名",githubUsername:"GitHub 用户名",twitterUsername:"Twitter 用户名",libraryName:"名称",libraryDesc:"简介",website:"网址",placeholder:{authorName:"您的名字或用户名",libraryName:"素材库名称",libraryDesc:"介绍您的素材库,让人们了解其用途",githubHandle:"GitHub 用户名(可选),填写后,您可以编辑已提交待审的素材库",twitterHandle:"Twitter 用户名(可选),填写后,当我们在Twitter发布推广信息时便可提及您",website:"您个人网站的或任意的链接(可选)"},errors:{required:"必填",website:"输入一个有效的URL"},noteDescription:"提交后,您的素材库将被包含在公共素材库广场以供其他人在绘图中使用。",noteGuidelines:"提交的素材库需先经人工审核。在提交之前,请先阅读指南 。后续沟通和对库的修改需要 GitHub 账号,但这不是必须的。",noteLicense:"提交即表明您已同意素材库将遵循 MIT 许可证,简而言之,任何人都可以不受限制地使用它们。",noteItems:"素材库中每个项目都有各自的名称以供筛选。以下项目将被包含:",atleastOneLibItem:"请选择至少一个素材库以开始",republishWarning:"注意:部分选中的项目已经发布或提交。请仅在更新已有或已提交的素材库时重复提交项目。"},h={title:"素材库已提交",content:"谢谢你 {{authorName}}。您的素材库已被提交审核。请点击此处跟进此次提交的状态"},S={resetLibrary:"重置素材库",removeItemsFromLib:"从素材库中删除选中的项目"},y={header:"导出图片",label:{withBackground:"背景",onlySelected:"仅选中",darkMode:"深色模式",embedScene:"包含画布数据",scale:"缩放比例",padding:"内边距"},tooltip:{embedScene:`画布数据将被保存到导出的 PNG/SVG 文件,以便恢复。 -将会增加导出文件的大小。`},title:{exportToPng:"导出为 PNG",exportToSvg:"导出为 SVG",copyPngToClipboard:"复制 PNG 到剪切板"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"复制到剪贴板"}},w={tooltip:"您的绘图采用端到端加密,其内容对于 Excalidraw 服务器是不可见的。",link:"Excalidraw 中关于端到端加密的博客"},k={angle:"角度",element:"元素",elements:"元素",height:"高度",scene:"画布",selected:"选中",storage:"存储",title:"详细统计信息",total:"总计",version:"版本",versionCopy:"点击复制",versionNotAvailable:"版本不可用",width:"宽度"},v={addedToLibrary:"添加到素材库中",copyStyles:"样式已拷贝。",copyToClipboard:"已复制到剪切板。",copyToClipboardAsPng:`已将 {{exportSelection}} 作为 PNG 复制到剪贴板 -({{exportColorScheme}})`,fileSaved:"文件已保存。",fileSavedToFilename:"保存到 {filename}",canvas:"画布",selection:"所选项",pasteAsSingleElement:`使用 {{shortcut}} 粘贴为单个元素, -或粘贴到现有的文本编辑器里`,unableToEmbed:"目前不允许嵌入此网址。请在 GitHub 上提 issue 请求将此网址加入白名单",unrecognizedLinkFormat:"您嵌入的链接不符合格式要求。请尝试粘贴源网站提供的“嵌入 (embed)”字符串"},x={transparent:"透明",black:"黑",white:"白",red:"红",pink:"粉红",grape:"紫红",violet:"蓝紫",gray:"灰",blue:"蓝",cyan:"青",teal:"蓝绿",green:"绿",yellow:"黄",orange:"橙",bronze:"古铜"},T={app:{center_heading:"您的所有数据都储存在浏览器本地。",center_heading_plus:"是否前往 Excalidraw+ ?",menuHint:"导出、首选项、语言……"},defaults:{menuHint:"导出、首选项……",center_heading:"图,化繁为简。",toolbarHint:"选择工具并开始绘图!",helpHint:"快捷键和帮助"}},E={mostUsedCustomColors:"常用自定义颜色",colors:"颜色",shades:"色调明暗",hexCode:"十六进制值",noShades:"此颜色没有可用的明暗变化"},L={action:{exportToImage:{title:"导出为图片",button:"导出为图片",description:"将画布数据导出为图片,以便以后导入。"},saveToDisk:{title:"保存到本地",button:"保存到本地",description:"将画布数据导出为文件,以便以后导入。"},excalidrawPlus:{title:"Excalidraw+",button:"导出到 Excalidraw+",description:"将画布保存到您的 Excalidraw+ 工作区。"}},modal:{loadFromFile:{title:"从文件加载",button:"从文件加载",description:"从文件加载将替换您现有的内容

    您可以先使用下列方式备份您的绘图。"},shareableLink:{title:"从链接加载",button:"替换我的内容",description:"加载外部绘图将替换您现有的内容

    您可以先使用下列方式备份您的绘图。"}}},C={title:"Mermaid 至 Excalidraw",button:"插入",description:"目前仅支持流程图序列图类图。其他类型在 Excalidraw 中将以图像呈现。",syntax:"Mermaid 语法",preview:"预览"},_={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:l,hints:n,canvasError:s,errorSplash:d,roomDialog:c,errorDialog:m,exportDialog:b,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:S,imageExportDialog:y,encrypted:w,stats:k,toast:v,colors:x,welcomeScreen:T,colorPicker:E,overwriteConfirm:L,mermaid:C};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,x as colors,S as confirmDialog,_ as default,w as encrypted,m as errorDialog,d as errorSplash,a as errors,b as exportDialog,l as headings,p as helpDialog,n as hints,y as imageExportDialog,e as labels,t as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,c as roomDialog,k as stats,v as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=zh-CN.json-I6DzD4ui.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js.map b/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js.map deleted file mode 100644 index 5a5251a..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-CN.json-I6DzD4ui.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zh-CN.json-I6DzD4ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js b/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js deleted file mode 100644 index 84d339b..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={paste:"貼上",pasteAsPlaintext:"",pasteCharts:"貼上圖表",selectAll:"全選",multiSelect:"多重選取",moveCanvas:"移動畫布",cut:"剪下",copy:"複製",copyAsPng:"以 PNG 格式複製",copyAsSvg:"以 SVG 格式複製",copyText:"",copySource:"",convertToCode:"",bringForward:"往上一層移動",sendToBack:"移到最底層",bringToFront:"移到最上層",sendBackward:"往下一層移動",delete:"刪除",copyStyles:"複製樣式",pasteStyles:"套用樣式",stroke:"筆跡顏色",background:"填充顏色",fill:"背景樣式",strokeWidth:"筆跡寬度",strokeStyle:"筆跡線條",strokeStyle_solid:"實線",strokeStyle_dashed:"虛線(較密)",strokeStyle_dotted:"虛線(較疏)",sloppiness:"筆跡風格",opacity:"透明度",textAlign:"文字對齊",edges:"邊角樣式",sharp:"銳角",round:"圓角",arrowheads:"箭嘴",arrowhead_none:"無箭嘴",arrowhead_arrow:"普通箭嘴",arrowhead_bar:"平頭條狀",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"三角箭嘴",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"字型大小",fontFamily:"字體",addWatermark:"加入「使用 Excalidraw 製圖」水印",handDrawn:"手繪體",normal:"電腦字體",code:"等寬體",small:"細",medium:"中",large:"大",veryLarge:"勁大",solid:"實心",hachure:"斜線",zigzag:"",crossHatch:"交叉格仔",thin:"幼",bold:"粗",left:"靠左對齊",center:"置中對齊",right:"靠右對齊",extraBold:"勁粗",architect:"手繪風格",artist:"藝術家風格",cartoonist:"卡通風格",fileTitle:"檔案名稱",colorPicker:"",canvasColors:"",canvasBackground:"畫布背景顏色",drawingCanvas:"畫布",layers:"圖層",actions:"動作",language:"🌏 語言",liveCollaboration:"",duplicateSelection:"製作副本",untitled:"未命名的作品",name:"",yourName:"你的名稱",madeWithExcalidraw:"使用 Excalidraw 製圖",group:"建立物件群組",ungroup:"取消物件群組",collaborators:"已連線的協作者",showGrid:"顯示網格",addToLibrary:"加入作品庫",removeFromLibrary:"從作品庫中移除",libraryLoadingMessage:"正在載入作品庫…",libraries:"瀏覽作品庫",loadingScene:"載入畫布中…",align:"物件對齊",alignTop:"水平置頂",alignBottom:"水平置底",alignLeft:"垂直靠左對齊",alignRight:"垂直靠右對齊",centerVertically:"垂直置中",centerHorizontally:"水平置中",distributeHorizontally:"左右等距",distributeVertically:"上下等距",flipHorizontal:"左右反轉",flipVertical:"上下反轉",viewMode:"唯讀模式",share:"",showStroke:"",showBackground:"",toggleTheme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",createEmbed:"",label:"",labelEmbed:"",empty:""},lineEditor:{edit:"",exit:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:""},o={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:""},t={clearReset:"清空畫布",exportJSON:"",exportImage:"",export:"",copyToClipboard:"",save:"",saveAs:"",load:"",getShareableLink:"",close:"",selectLanguage:"",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"",done:"",edit:"",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"",darkMode:"",lightMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},r={clearReset:"【‼️ 警告 ‼️ 無法復原的動作】你確定要清空呢塊畫布嗎?",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"無嘢可以匯出喎~畫吓嘢先?",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:""},a={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",invalidSVGString:"",cannotResolveCollabServer:"",importLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},i={selection:"",image:"",rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",hand:"",extraTools:"",mermaidToExcalidraw:"",magicSettings:""},n={canvasActions:"畫布動作",selectedShapeActions:"",shapes:""},l={canvasPanning:"",linearElement:"",freeDraw:"",text:"",embeddable:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",lineEditor_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",placeImage:"",publishLibrary:"",bindTextToElement:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:""},s={cannotShowPreview:"無法顯示預覽",canvasTooBig:"塊畫布太大啦,縮細啲先啦?",canvasTooBigTip:""},c={headingMain:"",clearCanvasMessage:"如果重新整理頁面都係睇唔到,你可以",clearCanvasCaveat:"(注意:呢個動作會直接丟棄你嘅作品,並且無法復原)",trackedToSentry:"",openIssueMessage:"",sceneContent:""},d={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},m={title:""},p={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},g={blog:"",click:"",deepSelect:"",deepBoxSelect:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:""},b={title:""},u={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},h={title:"",content:""},y={resetLibrary:"",removeItemsFromLib:""},v={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},S={tooltip:"",link:""},w={angle:"",element:"",elements:"",height:"",scene:"",selected:"",storage:"",title:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},k={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",fileSaved:"",fileSavedToFilename:"",canvas:"畫布",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:""},x={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},T={app:{center_heading:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},_={mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:""},L={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},C={title:"",button:"",description:"",syntax:"",preview:""},E={labels:e,library:o,buttons:t,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:m,exportDialog:p,helpDialog:g,clearCanvasDialog:b,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:v,encrypted:S,stats:w,toast:k,colors:x,welcomeScreen:T,colorPicker:_,overwriteConfirm:L,mermaid:C};export{r as alerts,t as buttons,s as canvasError,b as clearCanvasDialog,_ as colorPicker,x as colors,y as confirmDialog,E as default,S as encrypted,m as errorDialog,c as errorSplash,a as errors,p as exportDialog,n as headings,g as helpDialog,l as hints,v as imageExportDialog,e as labels,o as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,k as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=zh-HK.json-0R3Wdr1t.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js.map b/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js.map deleted file mode 100644 index 833aaf3..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-HK.json-0R3Wdr1t.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zh-HK.json-0R3Wdr1t.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js b/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js deleted file mode 100644 index 3021d71..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js +++ /dev/null @@ -1,10 +0,0 @@ -const e={paste:"貼上",pasteAsPlaintext:"以純文字貼上",pasteCharts:"貼上圖表",selectAll:"全選",multiSelect:"將物件加入選取範圍",moveCanvas:"移動畫布",cut:"剪下",copy:"複製",copyAsPng:"以PNG格式儲存到剪貼板",copyAsSvg:"以SVG格式複製到剪貼板",copyText:"以文字格式複製至剪貼簿",copySource:"複製來源至剪貼簿",convertToCode:"轉換為程式碼",bringForward:"上移一層",sendToBack:"移到最底層",bringToFront:"置於最頂層",sendBackward:"往後移一層",delete:"刪除",copyStyles:"複製樣式",pasteStyles:"貼上樣式",stroke:"筆畫",background:"背景",fill:"填滿",strokeWidth:"筆跡寬度",strokeStyle:"筆畫樣式",strokeStyle_solid:"實線",strokeStyle_dashed:"虛線",strokeStyle_dotted:"點線",sloppiness:"線條風格",opacity:"透明度",textAlign:"文字對齊",edges:"邊緣",sharp:"尖銳",round:"平滑",arrowheads:"箭頭",arrowhead_none:"無",arrowhead_arrow:"箭頭",arrowhead_bar:"條狀箭頭",arrowhead_circle:"圓形",arrowhead_circle_outline:"圓形(外框)",arrowhead_triangle:"三角形",arrowhead_triangle_outline:"三角形(外框)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(外框)",fontSize:"字型大小",fontFamily:"字體集",addWatermark:'加上 "Made with Excalidraw" 浮水印',handDrawn:"手寫",normal:"一般",code:"代碼",small:"小",medium:"中",large:"大",veryLarge:"特大",solid:"實心",hachure:"斜線筆觸",zigzag:"Z字形",crossHatch:"交叉筆觸",thin:"細",bold:"粗",left:"左側",center:"置中",right:"右側",extraBold:"極粗",architect:"精確",artist:"藝術",cartoonist:"卡通",fileTitle:"檔案名稱",colorPicker:"色彩選擇工具",canvasColors:"使用於畫布",canvasBackground:"Canvas 背景",drawingCanvas:"繪圖 canvas",layers:"圖層",actions:"動作",language:"語言",liveCollaboration:"即時協作...",duplicateSelection:"複製",untitled:"無標題",name:"名稱",yourName:"你的名稱",madeWithExcalidraw:"以 Excalidraw 製作",group:"建立群組",ungroup:"取消群組",collaborators:"協作者",showGrid:"顯示格線",addToLibrary:"加入資料庫",removeFromLibrary:"從資料庫中移除",libraryLoadingMessage:"資料庫讀取中…",libraries:"瀏覽資料庫",loadingScene:"場景讀取中…",align:"對齊",alignTop:"對齊頂部",alignBottom:"對齊底部",alignLeft:"對齊左側",alignRight:"對齊右側",centerVertically:"垂直置中",centerHorizontally:"水平置中",distributeHorizontally:"水平分布",distributeVertically:"垂直分布",flipHorizontal:"水平翻轉",flipVertical:"垂直翻轉",viewMode:"檢視模式",share:"共享",showStroke:"顯示線條檢色器",showBackground:"顯示背景檢色器",toggleTheme:"切換主題",personalLib:"個人資料庫",excalidrawLib:"Excalidraw 資料庫",decreaseFontSize:"縮小文字",increaseFontSize:"放大文字",unbindText:"取消綁定文字",bindText:"結合文字至容器",createContainerFromText:"將文字包於容器中",link:{edit:"編輯連結",editEmbed:"編輯連結&嵌入",create:"建立連結",createEmbed:"建立連結&嵌入",label:"連結",labelEmbed:"連結&嵌入",empty:"未設定連結"},lineEditor:{edit:"編輯線條",exit:"結束線條編輯"},elementLock:{lock:"鎖定",unlock:"解鎖",lockAll:"全部鎖定",unlockAll:"全部解鎖"},statusPublished:"已發布",sidebarLock:"側欄維持開啟",selectAllElementsInFrame:"選取框架內的所有元素",removeAllElementsFromFrame:"從框架內移除所有元素",eyeDropper:"從畫布中選取顏色",textToDiagram:"文字轉圖表",prompt:"提示詞"},t={noItems:"尚未加入任何物件...",hint_emptyLibrary:"選取畫布上的物件以加入,或從下方的公開 repository 中安裝資料庫",hint_emptyPrivateLibrary:"選擇畫布上的物件以在此加入"},o={clearReset:"重置 canvas",exportJSON:"匯出至檔案",exportImage:"匯出圖片",export:"儲存至...",copyToClipboard:"複製至剪貼簿",save:"儲存目前檔案",saveAs:"儲存為",load:"開啟",getShareableLink:"取得共享連結",close:"關閉",selectLanguage:"選擇語言",scrollBackToContent:"捲動回到內容",zoomIn:"放大",zoomOut:"縮小",resetZoom:"重設縮放",menu:"選單",done:"完成",edit:"編輯",undo:"復原",redo:"重做",resetLibrary:"重設資料庫",createNewRoom:"建立新協作會議室",fullScreen:"全螢幕",darkMode:"深色模式",lightMode:"淺色模式",zenMode:"專注模式",objectsSnapMode:"吸附至物件",exitZenMode:"離開專注模式",cancel:"取消",clear:"清除",remove:"刪除",embed:"切換嵌入",publishLibrary:"發布",submit:"送出",confirm:"確認",embeddableInteractionButton:"點擊以互動"},r={clearReset:"這將會清除整個 canvas。你確定嗎?",couldNotCreateShareableLink:"無法建立共享連結。",couldNotCreateShareableLinkTooBig:"無法建立共享連結:場景太大",couldNotLoadInvalidFile:"無法讀取失效的檔案。",importBackendFailed:"後端讀取失敗。",cannotExportEmptyCanvas:"無法輸出空白的 canvas。",couldNotCopyToClipboard:"無法複製到剪貼簿",decryptFailed:"無法解密資料。",uploadedSecurly:"上傳已通過 end-to-end 加密,Excalidraw 伺服器和第三方無法皆讀取其內容。",loadSceneOverridePrompt:"讀取外部圖樣將取代目前的內容。是否要繼續?",collabStopOverridePrompt:`停止連線將覆蓋您先前於本機儲存的繪圖進度,是否確認? - -(如要保留原有的本機繪圖進度,直接關閉瀏覽器分頁即可。)`,errorAddingToLibrary:"無法於此資料庫加入項目",errorRemovingFromLibrary:"無法由此資料庫移除項目",confirmAddLibrary:"這將會將 {{numShapes}} 個圖形加入你的資料庫,你確定嗎?",imageDoesNotContainScene:"此圖檔中未包含場景資料。輸出檔案時是否有包含場景資料?",cannotRestoreFromImage:"無法由此檔案回復場景。",invalidSceneUrl:"無法由提供的 URL 匯入場景。可能是發生異常,或未包含有效的 Excalidraw JSON 資料。",resetLibrary:"這會清除您的資料庫,是否確定?",removeItemsFromsLibrary:"從資料庫刪除 {{count}} 項?",invalidEncryptionKey:"加密鍵必須為22字元。即時協作已停用。",collabOfflineWarning:`沒有可用的網路連線。 -變更無法儲存!`},a={unsupportedFileType:"不支援的檔案類型。",imageInsertError:"無法插入圖片。請稍後再試…",fileTooBig:"檔案過大。可接受的最大尺寸為 {{maxSize}} 。",svgImageInsertError:"無法插入 SVG 圖片。此 SVG 檔案有問題。",failedToFetchImage:"無法獲取圖片。",invalidSVGString:"無效的 SVG。",cannotResolveCollabServer:"無法連結至 collab 伺服器。請重新整理後再試一次。",importLibraryError:"無法載入資料庫",collabSaveFailed:"無法儲存至後端資料庫。若此問題持續發生,請將檔案儲存於本機以確保資料不會遺失。",collabSaveFailed_sizeExceeded:"無法儲存至後端資料庫,可能的原因為畫布尺寸過大。請將檔案儲存於本機以確保資料不會遺失。",imageToolNotSupported:"圖片已停用",brave_measure_text_error:{line1:"看起來您開啟了 Brave 瀏覽器的 Aggressively Block Fingerprinting 設定。",line2:"這可能造成您畫布中 文字元素 的異常。",line3:"我們強烈建議您關閉此設定。您可以依照 這些步驟 來進行。",line4:"若關閉此設定並未修復文字元素的顯示問題,請回報於我們 GitHub 上的 issue,或在 Discord 上告訴我們。"},libraryElementTypeError:{embeddable:"可嵌入元素無法加入資料庫",iframe:"IFrame 元素無法加入資料庫",image:"即將支援加入圖片至資料庫!"},asyncPasteFailedOnRead:"無法貼上(無法由系統剪貼簿讀入)",asyncPasteFailedOnParse:"無法貼上",copyToSystemClipboardFailed:"無法複製至剪貼簿"},i={selection:"選取",image:"插入圖片",rectangle:"長方形",diamond:"菱形",ellipse:"橢圓",arrow:"箭頭",line:"線條",freedraw:"繪圖",text:"文字",library:"資料庫",lock:"可連續使用選取的工具",penMode:"筆模式 - 避免觸摸",link:"為所選的形狀增加\b/更新連結",eraser:"橡皮擦",frame:"框架工具",magicframe:"線框稿轉為程式碼",embeddable:"嵌入網站",laser:"雷射筆",hand:"手形(平移工具)",extraTools:"更多工具",mermaidToExcalidraw:"Mermaid 至 Excalidraw",magicSettings:"AI 設定"},n={canvasActions:"canvas 動作",selectedShapeActions:"選取圖形動作",shapes:"形狀"},l={canvasPanning:"若要移動畫布,請在拖曳時按住滑鼠滾輪或空白鍵,或使用手形工具",linearElement:"點擊以繪製多點曲線;或拖曳以繪製直線",freeDraw:"點擊並拖曳來繪圖,放開即結束",text:"提示:亦可使用選取工具在任何地方雙擊來加入文字",embeddable:"點擊並拖移以建立嵌入網站",text_selected:"雙擊滑鼠或按 Enter 以編輯文字",text_editing:"按跳脫鍵或 Ctrl 或 Cmd + Enter 以結束編輯",linearElementMulti:"按下 Escape 或 Enter 以結束繪製",lockAngle:"按住 SHIFT 可限制旋轉角度",resize:"縮放時按住 Shift 可保持原比例縮放;\\n按住 Alt 可由中心點進行縮放",resizeImage:"按住 SHIFT 可任意縮放,按住 ALT 可由中央縮放。",rotate:"旋轉時按住 Shift 可限制旋轉角度",lineEditor_info:"按住 Ctrl 或 Cmd 並雙擊或按住 Ctrl 或 Cmd + Enter 來編輯控制點",lineEditor_pointSelected:"按下 Delete 可移除錨點;Ctrl 或 Cmd + D 可複製;或可拖曳來移動",lineEditor_nothingSelected:`選擇要編輯的錨點(按住 SHIFT 可多選), -或按住 Alt 並點擊以增加新錨點。`,placeImage:"點擊以放置圖片,或點擊並拖曳以手動調整其尺寸。",publishLibrary:"發布個人資料庫",bindTextToElement:"按下 Enter 以加入文字。",deepBoxSelect:"按住 Ctrl 或 Cmd 以深度選取並避免拖曳",eraserRevert:"按住 Alt 以反選取已標記待刪除的元素",firefox_clipboard_write:`此功能有機會透過將 "dom.events.asyncClipboard.clipboardItem" 設定為 "true" 來開啟。 -若要變更 Firefox 瀏覽器的此設定值,請至 "about:config" 頁面。`,disableSnapping:"按住 Ctrl 或 Cmd 以禁用吸附"},s={cannotShowPreview:"無法顯示預覽",canvasTooBig:"畫布可能過大",canvasTooBigTip:"提示:可嘗試將最遠的元素移動至較集中的位置"},c={headingMain:"發生錯誤,嘗試",clearCanvasMessage:"若重新載入仍無法解決問題,嘗試",clearCanvasCaveat:"此動作將造成目前的作品被移除。",trackedToSentry:"此錯誤與其識別碼{{eventId}}將由系統記錄。",openIssueMessage:"我們將謹慎處理,你的作品內容不會被包含在錯誤報告中。若你的作品不需保持私密,請考慮使用我們的請將下列資訊複製貼上至 GitHub issue 中。",sceneContent:"作品內容:"},d={desc_intro:"你可以邀請其他人一起協作目前的作品。",desc_privacy:"連線使用 end-to-end 加密故無須擔心作品的安全性。即使是我們的伺服器也無法取得其內容。",button_startSession:"開始連線",button_stopSession:"停止連線",desc_inProgressIntro:"即時協作連線正在進行中。",desc_shareLink:"將此連結分享給欲協作的對象:",desc_exitSession:"停止連線將中斷你與協作會議室的連結,但你仍可於本機編輯此作品。意指停止連線後你的編輯不會被先前共同協作的人看見,且他們可繼續共同協作另一個版本。",shareTitle:"加入 Excalidraw 上的即時協作會議室"},b={title:"錯誤"},m={disk_title:"儲存至硬碟",disk_details:"將場景匯出為可供匯入之檔案",disk_button:"儲存至檔案",link_title:"可共享連結",link_details:"匯出為唯讀連結",link_button:"匯出為連結",excalidrawplus_description:"將此場景儲存至你的 Excalidraw+ 工作區",excalidrawplus_button:"輸出",excalidrawplus_exportError:"目前無法輸出至 Excalidraw+"},p={blog:"閱讀部落格",click:"點擊",deepSelect:"深度選取",deepBoxSelect:"在容器內深度選取並避免拖曳",curvedArrow:"曲箭頭",curvedLine:"曲線",documentation:"文件",doubleClick:"雙擊",drag:"拖曳",editor:"編輯器",editLineArrowPoints:"編輯線/箭頭控制點",editText:"編輯文字/增加標籤",github:"發現異常?回報問題",howto:"參照我們的說明",or:"或",preventBinding:"避免箭號連結",tools:"工具",shortcuts:"鍵盤快速鍵",textFinish:"完成編輯(文字編輯器)",textNewLine:"換行(文字編輯器)",title:"說明",view:"檢視",zoomToFit:"放大至填滿畫面",zoomToSelection:"縮放至選取區",toggleElementLock:"鎖定/解鎖已選的項目",movePageUpDown:"向上/下移動頁面",movePageLeftRight:"向左/右移動頁面"},g={title:"清除畫布"},u={title:"發布資料庫",itemName:"項目名稱",authorName:"作者名稱",githubUsername:"GitHub 帳號",twitterUsername:"Twitter 帳號",libraryName:"資料庫名稱",libraryDesc:"資料庫說明",website:"網站",placeholder:{authorName:"您的名稱或帳號",libraryName:"您的資料庫名稱",libraryDesc:"提供您的資料庫說明以利他人理解其用途",githubHandle:"Github handle(選填),填寫後您可編輯已送出待審查的資料庫",twitterHandle:"Twitter 帳號(選填),填寫後若我們在 Twitter 推廣時可提及您",website:"您個人網站或其他網站的連結(選填)"},errors:{required:"必填",website:"請輸入有效的 URL"},noteDescription:"送出您的資料庫後將被包含於公開資料庫 repository以利他人在其繪圖中使用。",noteGuidelines:"資料庫需先經人工審查。請閱讀說明文件再送出。若需溝通與修改時要透過 GitHub 帳號來進行,但並非強制需求。",noteLicense:"送出即代表您同意此資料庫將發布時使用 MIT 授權,簡單來說是指任何人都能不受限制的使用。",noteItems:"每個資料庫項目都有獨立的名稱故可篩選。會包含下列資料庫項目:",atleastOneLibItem:"請選擇至少一項資料庫項目",republishWarning:"注意:部分選取中的物件先前已發布/送出過。建議僅在要更新現存資料庫或已送出的物件時才重新送出這些物件。"},h={title:"資料庫已送出",content:"感謝 {{authorName}} 。您的資料庫已送出待審查。您可查看目前狀態在此"},y={resetLibrary:"重設資料庫",removeItemsFromLib:"從資料庫移除所選的項目"},S={header:"匯出圖片",label:{withBackground:"背景",onlySelected:"僅選取物件",darkMode:"深色模式",embedScene:"嵌入場景",scale:"縮放比例",padding:"內間距"},tooltip:{embedScene:`用於回復場景的場景資料會被包含在輸出的 PNG/SVG 檔案中。 -會增加輸出的檔案大小。`},title:{exportToPng:"輸出成 PNG",exportToSvg:"輸出成 SVG",copyPngToClipboard:"複製 PNG 至剪貼簿"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"複製至剪貼簿"}},v={tooltip:"你的作品已使用 end-to-end 方式加密,Excalidraw 的伺服器也無法取得其內容。",link:"Excalidraw 端到端加密的相關部落格文章"},w={angle:"角度",element:"元素",elements:"元素",height:"高度",scene:"場景",selected:"已選",storage:"儲存",title:"詳細統計",total:"合計",version:"版本",versionCopy:"點擊複製",versionNotAvailable:"無法取得版本",width:"寬度"},k={addedToLibrary:"加入資料庫",copyStyles:"已複製樣式",copyToClipboard:"複製至剪貼簿。",copyToClipboardAsPng:`以 PNG 格式將 {{exportSelection}} 複製至剪貼簿 -({{exportColorScheme}})`,fileSaved:"已儲存檔案。",fileSavedToFilename:"儲存為 {filename}",canvas:"畫布",selection:"已選項目",pasteAsSingleElement:`使用 {{shortcut}} 以做為單一物件貼上, -或貼上至現有的文字編輯器`,unableToEmbed:"目前不允許嵌入此網址。您可至 GitHub 提出 issue 以要求將此網址加入合格名單。",unrecognizedLinkFormat:"您嵌入的連結格式不符。請嘗試貼入原網站所提供的「嵌入」字串。"},x={transparent:"透明",black:"黑",white:"白",red:"紅",pink:"粉紅",grape:"深紫",violet:"藍紫",gray:"灰",blue:"藍",cyan:"青",teal:"藍綠",green:"綠",yellow:"黃",orange:"橘",bronze:"銅"},T={app:{center_heading:"所有資料皆已在瀏覽器中儲存於本機",center_heading_plus:"您是否是要前往 Excalidraw+ ?",menuHint:"輸出、偏好設定、語言..."},defaults:{menuHint:"輸出、偏好設定及其他...",center_heading:"圖表。製作。超簡單。",toolbarHint:"選個工具開始畫圖吧!",helpHint:"快速鍵與說明"}},E={mostUsedCustomColors:"最常使用的自訂顏色",colors:"顏色",shades:"漸變色",hexCode:"Hex 碼",noShades:"沒有此顏色的漸變色"},L={action:{exportToImage:{title:"匯出為圖片",button:"匯出為圖片",description:"將場景匯出為可供匯入的圖片檔案"},saveToDisk:{title:"儲存至硬碟",button:"儲存至硬碟",description:"將場景匯出為可供匯入的檔案"},excalidrawPlus:{title:"Excalidraw+",button:"匯出至 Excalidraw+",description:"將此場景儲存至您的 Excalidraw+ 工作區"}},modal:{loadFromFile:{title:"從檔案載入",button:"從檔案載入",description:"從檔案載入將取代您目前的內容

    可先使用下方的選項備份您的繪圖。"},shareableLink:{title:"從連結載入",button:"取代我的內容",description:"載入外部繪圖將取代您目前的內容

    可先使用下方的選項備份您的繪圖。"}}},C={title:"Mermaid 至 Excalidraw",button:"插入",description:"目前僅支援 FlowchartSequenceClass 圖表。其餘檔案類型在 Excalidraw 將會以圖像呈現。",syntax:"Mermaid 語法",preview:"預覽"},_={labels:e,library:t,buttons:o,alerts:r,errors:a,toolBar:i,headings:n,hints:l,canvasError:s,errorSplash:c,roomDialog:d,errorDialog:b,exportDialog:m,helpDialog:p,clearCanvasDialog:g,publishDialog:u,publishSuccessDialog:h,confirmDialog:y,imageExportDialog:S,encrypted:v,stats:w,toast:k,colors:x,welcomeScreen:T,colorPicker:E,overwriteConfirm:L,mermaid:C};export{r as alerts,o as buttons,s as canvasError,g as clearCanvasDialog,E as colorPicker,x as colors,y as confirmDialog,_ as default,v as encrypted,b as errorDialog,c as errorSplash,a as errors,m as exportDialog,n as headings,p as helpDialog,l as hints,S as imageExportDialog,e as labels,t as library,C as mermaid,L as overwriteConfirm,u as publishDialog,h as publishSuccessDialog,d as roomDialog,w as stats,k as toast,i as toolBar,T as welcomeScreen}; -//# sourceMappingURL=zh-TW.json-b9fBzTxw.js.map diff --git a/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js.map b/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js.map deleted file mode 100644 index a69235c..0000000 --- a/excalidraw/excalidraw-app/build/assets/locales/zh-TW.json-b9fBzTxw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zh-TW.json-b9fBzTxw.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js b/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js deleted file mode 100644 index fee2c31..0000000 --- a/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js +++ /dev/null @@ -1,110 +0,0 @@ -import{d as Ep,c as sn,l as qr,h as ti,t as wp,aK as xp,aL as Tp,aM as Cp}from"./index-jpNTxDe4.js";import{c as Dp}from"./createText-3df630b5-oLWc-GwH.js";import{h as Da,g as _u}from"./index-2K3MavtT.js";var Uu={exports:{}};(function(pe,le){(function(ee,ce){pe.exports=ce()})(Da,function(){function ee(t){"@babel/helpers - typeof";return ee=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},ee(t)}function ce(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function H(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,a=new Array(e);r"u"?null:window,$=D?D.navigator:null;D&&D.document;var _=ee(""),Q=ee({}),ne=ee(function(){}),oe=typeof HTMLElement>"u"?"undefined":ee(HTMLElement),J=function(e){return e&&e.instanceString&&Y(e.instanceString)?e.instanceString():null},j=function(e){return e!=null&&ee(e)==_},Y=function(e){return e!=null&&ee(e)===ne},te=function(e){return!de(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},L=function(e){return e!=null&&ee(e)===Q&&!te(e)&&e.constructor===Object},V=function(e){return e!=null&&ee(e)===Q},I=function(e){return e!=null&&ee(e)===ee(1)&&!isNaN(e)},W=function(e){return I(e)&&Math.floor(e)===e},fe=function(e){if(oe!=="undefined")return e!=null&&e instanceof HTMLElement},de=function(e){return Ae(e)||Ne(e)},Ae=function(e){return J(e)==="collection"&&e._private.single},Ne=function(e){return J(e)==="collection"&&!e._private.single},_e=function(e){return J(e)==="core"},tt=function(e){return J(e)==="stylesheet"},vt=function(e){return J(e)==="event"},Pe=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},Ve=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},Xe=function(e){return L(e)&&I(e.x1)&&I(e.x2)&&I(e.y1)&&I(e.y2)},rt=function(e){return V(e)&&Y(e.then)},ft=function(){return $&&$.userAgent.match(/msie|trident|edge/i)},at=function(e,r){r||(r=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;sr?1:0},ju=function(e,r){return-1*ji(e,r)},Ue=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(y-=1),y<1/6?v+(p-v)*6*y:y<1/2?p:y<2/3?v+(p-v)*(2/3-y)*6:v}var h=new RegExp("^"+un+"$").exec(e);if(h){if(a=parseInt(h[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(h[2]),n<0||n>100||(n=n/100,i=parseFloat(h[3]),i<0||i>100)||(i=i/100,s=h[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var c=i<.5?i*(1+n):i+n-i*n,d=2*i-c;o=Math.round(255*f(d,c,a+1/3)),l=Math.round(255*f(d,c,a)),u=Math.round(255*f(d,c,a-1/3))}r=[o,l,u,s]}return r},rl=function(e){var r,a=new RegExp("^"+dr+"$").exec(e);if(a){r=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var o=n[1]||n[2]||n[3],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;r.push(u)}}return r},al=function(e){return il[e.toLowerCase()]},nl=function(e){return(te(e)?e:null)||al(e)||el(e)||rl(e)||tl(e)},il={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]},es=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i=e||x<0||h&&R>=i}function g(){var A=ri();if(y(A))return m(A);o=setTimeout(g,p(A))}function m(A){return o=void 0,c&&a?d(A):(a=n=void 0,s)}function b(){o!==void 0&&clearTimeout(o),u=0,a=l=n=o=void 0}function E(){return o===void 0?s:m(ri())}function N(){var A=ri(),x=y(A);if(a=arguments,n=this,l=A,x){if(o===void 0)return v(l);if(h)return clearTimeout(o),o=setTimeout(g,e),d(l)}return o===void 0&&(o=setTimeout(g,e)),s}return N.cancel=b,N.flush=E,N}var fn=Ul,ai=D?D.performance:null,os=ai&&ai.now?function(){return ai.now()}:function(){return Date.now()},Yl=function(){if(D){if(D.requestAnimationFrame)return function(t){D.requestAnimationFrame(t)};if(D.mozRequestAnimationFrame)return function(t){D.mozRequestAnimationFrame(t)};if(D.webkitRequestAnimationFrame)return function(t){D.webkitRequestAnimationFrame(t)};if(D.msRequestAnimationFrame)return function(t){D.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(os())},1e3/60)}}(),hn=function(e){return Yl(e)},gr=os,Jr=9261,us=65599,Na=5381,ls=function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Jr,a=r,n;n=e.next(),!n.done;)a=a*us+n.value|0;return a},Ma=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Jr;return r*us+e|0},Ia=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Na;return(r<<5)+r+e|0},Hl=function(e,r){return e*2097152+r},wr=function(e){return e[0]*2097152+e[1]},cn=function(e,r){return[Ma(e[0],r[0]),Ia(e[1],r[1])]},Xl=function(e,r){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0&&!(e[n]===r&&(e.splice(n,1),a));n--);},si=function(e){e.splice(0,e.length)},jl=function(e,r){for(var a=0;a"u"?"undefined":ee(Set))!==tf?Set:rf,dn=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!_e(e)){Tt("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Tt("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=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:n,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?n==="edges":!!r.pannable,active:!1,classes:new jr,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(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),r.renderedPosition){var s=r.renderedPosition,o=e.pan(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];te(r.classes)?u=r.classes:j(r.classes)&&(u=r.classes.split(/\s+/));for(var f=0,h=u.length;fm?1:0},f=function(g,m,b,E,N){var A;if(b==null&&(b=0),N==null&&(N=a),b<0)throw new Error("lo must be non-negative");for(E==null&&(E=g.length);bB;0<=B?C++:C--)R.push(C);return R}).apply(this).reverse(),x=[],E=0,N=A.length;Ez;0<=z?++R:--R)M.push(s(g,b));return M},p=function(g,m,b,E){var N,A,x;for(E==null&&(E=a),N=g[b];b>m;){if(x=b-1>>1,A=g[x],E(N,A)<0){g[b]=A,b=x;continue}break}return g[b]=N},y=function(g,m,b){var E,N,A,x,R;for(b==null&&(b=a),N=g.length,R=m,A=g[m],E=2*m+1;E0;){var A=m.pop(),x=y(A),R=A.id();if(c[R]=x,x!==1/0)for(var C=A.neighborhood().intersect(v),B=0;B0)for(ie.unshift(Z);h[ge];){var se=h[ge];ie.unshift(se.edge),ie.unshift(se.node),ue=se.node,ge=ue.id()}return o.spawn(ie)}}}},of={kruskal:function(e){e=e||function(b){return 1};for(var r=this.byGroup(),a=r.nodes,n=r.edges,i=a.length,s=new Array(i),o=a,l=function(E){for(var N=0;N0;){if(N(),x++,E===f){for(var R=[],C=i,B=f,z=g[B];R.unshift(C),z!=null&&R.unshift(z),C=y[B],C!=null;)B=C.id(),z=g[B];return{found:!0,distance:h[E],path:this.spawn(R),steps:x}}d[E]=!0;for(var M=b._private.edges,X=0;Xz&&(v[B]=z,m[B]=C,b[B]=N),!i){var M=C*f+R;!i&&v[M]>z&&(v[M]=z,m[M]=R,b[M]=N)}}}for(var X=0;X1&&arguments[1]!==void 0?arguments[1]:s,je=b(ke),Ze=[],Ye=je;;){if(Ye==null)return r.spawn();var ct=m(Ye),De=ct.edge,k=ct.pred;if(Ze.unshift(Ye[0]),Ye.same(ze)&&Ze.length>0)break;De!=null&&Ze.unshift(De),Ye=k}return l.spawn(Ze)},A=0;A=0;f--){var h=u[f],c=h[1],d=h[2];(r[c]===o&&r[d]===l||r[c]===l&&r[d]===o)&&u.splice(f,1)}for(var v=0;vn;){var i=Math.floor(Math.random()*r.length);r=gf(i,e,r),a--}return r},pf={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(ie){return ie.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/df);if(i<2){Tt("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(r,a):(a0&&e.splice(0,r));for(var o=0,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(c,d){return c-d});var f=e.length,h=Math.floor(f/2);return f%2!==0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},xf=function(e){return Math.PI*e/180},pn=function(e,r){return Math.atan2(r,e)-Math.PI/2},ui=Math.log2||function(t){return Math.log(t)/Math.log(2)},bs=function(e){return e>0?1:e<0?-1:0},Br=function(e,r){return Math.sqrt(Fr(e,r))},Fr=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},Tf=function(e){for(var r=e.length,a=0,n=0;n=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}}},Df=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Sf=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},Lf=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},Af=function(e,r,a){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,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},yn=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},li=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(r.length===1)a=n=i=s=r[0];else if(r.length===2)a=i=r[0],s=n=r[1];else if(r.length===4){var o=w(r,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Es=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},fi=function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},ra=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},Of=function(e,r){return ra(e,r.x,r.y)},ws=function(e,r){return ra(e,r.x1,r.y1)&&ra(e,r.x2,r.y2)},xs=function(e,r,a,n,i,s,o){var l=za(i,s),u=i/2,f=s/2,h;{var c=a-u+l-o,d=n-f-o,v=a+u-l+o,p=d;if(h=Cr(e,r,a,n,c,d,v,p,!1),h.length>0)return h}{var y=a+u+o,g=n-f+l-o,m=y,b=n+f-l+o;if(h=Cr(e,r,a,n,y,g,m,b,!1),h.length>0)return h}{var E=a-u+l-o,N=n+f+o,A=a+u-l+o,x=N;if(h=Cr(e,r,a,n,E,N,A,x,!1),h.length>0)return h}{var R=a-u-o,C=n-f+l-o,B=R,z=n+f-l+o;if(h=Cr(e,r,a,n,R,C,B,z,!1),h.length>0)return h}var M;{var X=a-u+l,F=n-f+l;if(M=Ba(e,r,a,n,X,F,l+o),M.length>0&&M[0]<=X&&M[1]<=F)return[M[0],M[1]]}{var re=a+u-l,q=n-f+l;if(M=Ba(e,r,a,n,re,q,l+o),M.length>0&&M[0]>=re&&M[1]<=q)return[M[0],M[1]]}{var Z=a+u-l,ie=n+f-l;if(M=Ba(e,r,a,n,Z,ie,l+o),M.length>0&&M[0]>=Z&&M[1]>=ie)return[M[0],M[1]]}{var ue=a-u+l,ge=n+f-l;if(M=Ba(e,r,a,n,ue,ge,l+o),M.length>0&&M[0]<=ue&&M[1]>=ge)return[M[0],M[1]]}return[]},Nf=function(e,r,a,n,i,s,o){var l=o,u=Math.min(a,i),f=Math.max(a,i),h=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=f+l&&h-l<=r&&r<=c+l},Mf=function(e,r,a,n,i,s,o,l,u){var f={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(ef.x2||rf.y2)},If=function(e,r,a,n){a-=n;var i=r*r-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,l=(-r+s)/o,u=(-r-s)/o;return[l,u]},Rf=function(e,r,a,n,i){var s=1e-5;e===0&&(e=s),r/=e,a/=e,n/=e;var o,l,u,f,h,c,d,v;if(l=(3*a-r*r)/9,u=-(27*n)+r*(9*a-2*(r*r)),u/=54,o=l*l*l+u*u,i[1]=0,d=r/3,o>0){h=u+Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),c=u-Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-d+h+c,d+=(h+c)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-c+h)/2,i[3]=d,i[5]=-d;return}if(i[5]=i[3]=0,o===0){v=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-d+2*v,i[4]=i[2]=-(v+d);return}l=-l,f=l*l*l,f=Math.acos(u/Math.sqrt(f)),v=2*Math.sqrt(l),i[0]=-d+v*Math.cos(f/3),i[2]=-d+v*Math.cos((f+2*Math.PI)/3),i[4]=-d+v*Math.cos((f+4*Math.PI)/3)},kf=function(e,r,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,f=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,h=1*3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*l-n*r+2*s*s+2*s*r-l*r,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*r-s*r,d=[];Rf(u,f,h,c,d);for(var v=1e-7,p=[],y=0;y<6;y+=2)Math.abs(d[y+1])=0&&d[y]<=1&&p.push(d[y]);p.push(1),p.push(0);for(var g=-1,m,b,E,N=0;N=0?Eu?(e-i)*(e-i)+(r-s)*(r-s):f-c},Ht=function(e,r,a){for(var n,i,s,o,l,u=0,f=0;f=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>r&&u++;else continue;return u%2!==0},pr=function(e,r,a,n,i,s,o,l,u){var f=new Array(a.length),h;l[0]!=null?(h=Math.atan(l[1]/l[0]),l[0]<0?h=h+Math.PI/2:h=-h-Math.PI/2):h=l;for(var c=Math.cos(-h),d=Math.sin(-h),v=0;v0){var y=Cs(f,-u);p=Ts(y)}else p=f;return Ht(e,r,p)},Bf=function(e,r,a,n,i,s,o){for(var l=new Array(a.length),u=s/2,f=o/2,h=vi(s,o),c=h*h,d=0;d=0&&y<=1&&m.push(y),g>=0&&g<=1&&m.push(g),m.length===0)return[];var b=m[0]*l[0]+e,E=m[0]*l[1]+r;if(m.length>1){if(m[0]==m[1])return[b,E];var N=m[1]*l[0]+e,A=m[1]*l[1]+r;return[b,E,N,A]}else return[b,E]},hi=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},Cr=function(e,r,a,n,i,s,o,l,u){var f=e-i,h=a-e,c=o-i,d=r-s,v=n-r,p=l-s,y=c*d-p*f,g=h*d-v*f,m=p*h-c*v;if(m!==0){var b=y/m,E=g/m,N=.001,A=0-N,x=1+N;return A<=b&&b<=x&&A<=E&&E<=x?[e+b*h,r+b*v]:u?[e+b*h,r+b*v]:[]}else return y===0||g===0?hi(e,a,o)===o?[o,l]:hi(e,a,i)===i?[i,s]:hi(i,o,a)===a?[a,n]:[]:[]},Fa=function(e,r,a,n,i,s,o,l){var u=[],f,h=new Array(a.length),c=!0;s==null&&(c=!1);var d;if(c){for(var v=0;v0){var p=Cs(h,-l);d=Ts(p)}else d=h}else d=a;for(var y,g,m,b,E=0;E2){for(var q=[u[0],u[1]],Z=Math.pow(q[0]-e,2)+Math.pow(q[1]-r,2),ie=1;ief&&(f=E)},get:function(b){return u[b]}},c=0;c0?q=re.edgesTo(F)[0]:q=F.edgesTo(re)[0];var Z=n(q);F=F.id(),R[F]>R[M]+Z&&(R[F]=R[M]+Z,C.nodes.indexOf(F)<0?C.push(F):C.updateItem(F),x[F]=0,A[F]=[]),R[F]==R[M]+Z&&(x[F]=x[F]+x[M],A[F].push(M))}else for(var ie=0;ie0;){for(var ve=N.pop(),ye=0;ye0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},Jf=function(e,r){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:th,o=n,l,u,f=0;f=2?Ga(e,r,a,0,Rs,rh):Ga(e,r,a,0,Is)},squaredEuclidean:function(e,r,a){return Ga(e,r,a,0,Rs)},manhattan:function(e,r,a){return Ga(e,r,a,0,Is)},max:function(e,r,a){return Ga(e,r,a,-1/0,ah)}};ia["squared-euclidean"]=ia.squaredEuclidean,ia.squaredeuclidean=ia.squaredEuclidean;function bn(t,e,r,a,n,i){var s;return Y(t)?s=t:s=ia[t]||ia.euclidean,e===0&&Y(t)?s(n,i):s(e,r,a,n,i)}var nh=At({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),pi=function(e){return nh(e)},En=function(e,r,a,n,i){var s=i!=="kMedoids",o=s?function(h){return a[h]}:function(h){return n[h](a)},l=function(c){return n[c](r)},u=a,f=r;return bn(e,n.length,o,l,u,f)},yi=function(e,r,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(r),l=null,u=0;ua)return!1}return!0},oh=function(e,r,a){for(var n=0;no&&(o=r[u][f],l=f);i[l].push(e[u])}for(var h=0;h=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var v=r[s],p=r[n[s]],y;i.mode==="dendrogram"?y={left:v,right:p,key:v.key}:y={value:v.value.concat(p.value),key:v.key},e[v.index]=y,e.splice(p.index,1),r[v.key]=y;for(var g=0;ga[p.key][m.key]&&(l=a[p.key][m.key])):i.linkage==="max"?(l=a[v.key][m.key],a[v.key][m.key]0&&n.push(i);return n},$s=function(e,r,a){for(var n=[],i=0;io&&(s=u,o=r[i*e+u])}s>0&&n.push(s)}for(var f=0;fu&&(l=f,u=h)}a[i]=s[l]}return n=$s(e,r,a),n},_s=function(e){for(var r=this.cy(),a=this.nodes(),n=wh(e),i={},s=0;s=z?(M=z,z=F,X=re):F>M&&(M=F);for(var q=0;q0?1:0;x[C%n.minIterations*o+ve]=ye,se+=ye}if(se>0&&(C>=n.minIterations-1||C==n.maxIterations-1)){for(var Te=0,be=0;be1||A>1)&&(o=!0),h[b]=[],m.outgoers().forEach(function(R){R.isEdge()&&h[b].push(R.id())})}else c[b]=[void 0,m.target().id()]}):s.forEach(function(m){var b=m.id();if(m.isNode()){var E=m.degree(!0);E%2&&(l?u?o=!0:u=b:l=b),h[b]=[],m.connectedEdges().forEach(function(N){return h[b].push(N.id())})}else c[b]=[m.source().id(),m.target().id()]});var d={found:!1,trail:void 0};if(o)return d;if(u&&l)if(i){if(f&&u!=f)return d;f=u}else{if(f&&u!=f&&l!=f)return d;f||(f=u)}else f||(f=s[0].id());var v=function(b){for(var E=b,N=[b],A,x,R;h[E].length;)A=h[E].shift(),x=c[A][0],R=c[A][1],E!=R?(h[R]=h[R].filter(function(C){return C!=A}),E=R):!i&&E!=x&&(h[x]=h[x].filter(function(C){return C!=A}),E=x),N.unshift(A),N.unshift(E);return N},p=[],y=[];for(y=v(f);y.length!=1;)h[y[0]].length==0?(p.unshift(s.getElementById(y.shift())),p.unshift(s.getElementById(y.shift()))):y=v(y.shift()).concat(y);p.unshift(s.getElementById(y.shift()));for(var g in h)if(h[g].length)return d;return d.found=!0,d.trail=this.spawn(p,!0),d}},xn=function(){var e=this,r={},a=0,n=0,i=[],s=[],o={},l=function(c,d){for(var v=s.length-1,p=[],y=e.spawn();s[v].x!=c||s[v].y!=d;)p.push(s.pop().edge),v--;p.push(s.pop().edge),p.forEach(function(g){var m=g.connectedNodes().intersection(e);y.merge(g),m.forEach(function(b){var E=b.id(),N=b.connectedEdges().intersection(e);y.merge(b),r[E].cutVertex?y.merge(N.filter(function(A){return A.isLoop()})):y.merge(N)})}),i.push(y)},u=function h(c,d,v){c===v&&(n+=1),r[d]={id:a,low:a++,cutVertex:!1};var p=e.getElementById(d).connectedEdges().intersection(e);if(p.size()===0)i.push(e.spawn(e.getElementById(d)));else{var y,g,m,b;p.forEach(function(E){y=E.source().id(),g=E.target().id(),m=y===d?g:y,m!==v&&(b=E.id(),o[b]||(o[b]=!0,s.push({x:d,y:m,edge:E})),m in r?r[d].low=Math.min(r[d].low,r[m].id):(h(c,m,d),r[d].low=Math.min(r[d].low,r[m].low),r[d].id<=r[m].low&&(r[d].cutVertex=!0,l(d,m))))})}};e.forEach(function(h){if(h.isNode()){var c=h.id();c in r||(n=0,u(c,c),r[c].cutVertex=n>1)}});var f=Object.keys(r).filter(function(h){return r[h].cutVertex}).map(function(h){return e.getElementById(h)});return{cut:e.spawn(f),components:i}},Oh={hopcroftTarjanBiconnected:xn,htbc:xn,htb:xn,hopcroftTarjanBiconnectedComponents:xn},Tn=function(){var e=this,r={},a=0,n=[],i=[],s=e.spawn(e),o=function l(u){i.push(u),r[u]={index:a,low:a++,explored:!1};var f=e.getElementById(u).connectedEdges().intersection(e);if(f.forEach(function(p){var y=p.target().id();y!==u&&(y in r||l(y),r[y].explored||(r[u].low=Math.min(r[u].low,r[y].low)))}),r[u].index===r[u].low){for(var h=e.spawn();;){var c=i.pop();if(h.merge(e.getElementById(c)),r[c].low=r[u].index,r[c].explored=!0,c===u)break}var d=h.edgesWith(h),v=h.merge(d);n.push(v),s=s.difference(v)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in r||o(u)}}),{cut:s,components:n}},Nh={tarjanStronglyConnected:Tn,tsc:Tn,tscc:Tn,tarjanStronglyConnectedComponents:Tn},Us={};[Ra,sf,of,lf,hf,vf,pf,$f,aa,na,gi,eh,vh,bh,Sh,Ah,Oh,Nh].forEach(function(t){Ue(Us,t)});/*! -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) -*/var Ys=0,Hs=1,Xs=2,yr=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Ys,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))};yr.prototype={fulfill:function(e){return Ws(this,Hs,"fulfillValue",e)},reject:function(e){return Ws(this,Xs,"rejectReason",e)},then:function(e,r){var a=this,n=new yr;return a.onFulfilled.push(Zs(e,n,"fulfill")),a.onRejected.push(Zs(r,n,"reject")),qs(a),n.proxy}};var Ws=function(e,r,a,n){return e.state===Ys&&(e.state=r,e[a]=n,qs(e)),e},qs=function(e){e.state===Hs?Ks(e,"onFulfilled",e.fulfillValue):e.state===Xs&&Ks(e,"onRejected",e.rejectReason)},Ks=function(e,r,a){if(e[r].length!==0){var n=e[r];e[r]=[];var i=function(){for(var o=0;o0}},clearQueue:function(){return function(){var r=this,a=r.length!==void 0,n=a?r:[r],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s-1}var Fc=Bc;function zc(t,e){var r=this.__data__,a=Dn(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var Gc=zc;function ua(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0&&this.spawn(n).updateStyle().emit("class"),r},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},toggleClass:function(e,r){te(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=r===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,r){var a=this;if(r==null)r=250;else if(r===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},r),a}};Ln.className=Ln.classNames=Ln.classes;var nt={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:dt,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};nt.variable="(?:[\\w-.]|(?:\\\\"+nt.metaChar+"))+",nt.className="(?:[\\w-]|(?:\\\\"+nt.metaChar+"))+",nt.value=nt.string+"|"+nt.number,nt.id=nt.variable,function(){var t,e,r;for(t=nt.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(nt.comparatorOp+="|\\!"+e)}();var pt=function(){return{checks:[]}},Be={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},Ti=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(t,e){return ju(t.selector,e.selector)}),Uv=function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return ut("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return ut("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&ut("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},Kv=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(f){return f??""},r=function(f){return j(f)?'"'+f+'"':e(f)},a=function(f){return" "+f+" "},n=function(f,h){var c=f.type,d=f.value;switch(c){case Be.GROUP:{var v=e(d);return v.substring(0,v.length-1)}case Be.DATA_COMPARE:{var p=f.field,y=f.operator;return"["+p+a(e(y))+r(d)+"]"}case Be.DATA_BOOL:{var g=f.operator,m=f.field;return"["+e(g)+m+"]"}case Be.DATA_EXIST:{var b=f.field;return"["+b+"]"}case Be.META_COMPARE:{var E=f.operator,N=f.field;return"[["+N+a(e(E))+r(d)+"]]"}case Be.STATE:return d;case Be.ID:return"#"+d;case Be.CLASS:return"."+d;case Be.PARENT:case Be.CHILD:return i(f.parent,h)+a(">")+i(f.child,h);case Be.ANCESTOR:case Be.DESCENDANT:return i(f.ancestor,h)+" "+i(f.descendant,h);case Be.COMPOUND_SPLIT:{var A=i(f.left,h),x=i(f.subject,h),R=i(f.right,h);return A+(A.length>0?" ":"")+x+R}case Be.TRUE:return""}},i=function(f,h){return f.checks.reduce(function(c,d,v){return c+(h===f&&v===0?"$":"")+n(d,h)},"")},s="",o=0;o1&&o=0&&(r=r.replace("!",""),h=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(i||o||f)&&(l=!i&&!s?"":""+e,u=""+a),f&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),r){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e0;){var f=n.shift();e(f),i.add(f.id()),o&&a(n,i,f)}return t}function fo(t,e,r){if(r.isParent())for(var a=r._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return Si(this,t,e,fo)};function ho(t,e,r){if(r.isChild()){var a=r._private.parent;e.has(a.id())||t.push(a)}}ha.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Si(this,t,e,ho)};function ad(t,e,r){ho(t,e,r),fo(t,e,r)}ha.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Si(this,t,e,ad)},ha.ancestors=ha.parents;var $a,co;$a=co={data:ht.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:ht.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:ht.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:ht.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:ht.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:ht.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}},$a.attr=$a.data,$a.removeAttr=$a.removeData;var nd=co,An={};function Li(t){return function(e){var r=this;if(e===void 0&&(e=!0),r.length!==0)if(r.isNode()&&!r.removed()){for(var a=0,n=r[0],i=n._private.edges,s=0;se}),minIndegree:ca("indegree",function(t,e){return te}),minOutdegree:ca("outdegree",function(t,e){return te})}),Ue(An,{totalDegree:function(e){for(var r=0,a=this.nodes(),n=0;n0,c=h;h&&(f=f[0]);var d=c?f.position():{x:0,y:0};r!==void 0?u.position(e,r+d[e]):i!==void 0&&u.position({x:i.x+d.x,y:i.y+d.y})}else{var v=a.position(),p=o?a.parent():null,y=p&&p.length>0,g=y;y&&(p=p[0]);var m=g?p.position():{x:0,y:0};return i={x:v.x-m.x,y:v.y-m.y},e===void 0?i:i[e]}else if(!s)return;return this}},rr.modelPosition=rr.point=rr.position,rr.modelPositions=rr.points=rr.positions,rr.renderedPoint=rr.renderedPosition,rr.relativePoint=rr.relativePosition;var id=vo,va,Or;va=Or={},Or.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),a=r.zoom(),n=r.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}},Or.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 a=r._private;a.compoundBoundsClean=!1,a.bbCache=null,t||r.emitAndNotify("bounds")}}),this)},Or.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 o=s._private,l=s.children(),u=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")}},h=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(h.w===0||h.h===0)&&(h={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},h.x1=c.x-h.w/2,h.x2=c.x+h.w/2,h.y1=c.y-h.h/2,h.y2=c.y+h.h/2);function d(C,B,z){var M=0,X=0,F=B+z;return C>0&&F>0&&(M=B/F*C,X=z/F*C),{biasDiff:M,biasComplementDiff:X}}function v(C,B,z,M){if(z.units==="%")switch(M){case"width":return C>0?z.pfValue*C:0;case"height":return B>0?z.pfValue*B:0;case"average":return C>0&&B>0?z.pfValue*(C+B)/2:0;case"min":return C>0&&B>0?C>B?z.pfValue*B:z.pfValue*C:0;case"max":return C>0&&B>0?C>B?z.pfValue*C:z.pfValue*B:0;default:return 0}else return z.units==="px"?z.pfValue:0}var p=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(p=p*100/f.width.val);var y=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var g=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(g=g*100/f.height.val);var m=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(m=m*100/f.height.val);var b=d(f.width.val-h.w,p,y),E=b.biasDiff,N=b.biasComplementDiff,A=d(f.height.val-h.h,g,m),x=A.biasDiff,R=A.biasComplementDiff;o.autoPadding=v(h.w,h.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(h.w,f.width.val),c.x=(-E+h.x1+h.x2+N)/2,o.autoHeight=Math.max(h.h,f.height.val),c.y=(-x+h.y1+h.y2+R)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Vr=function(e,r){return r==null?e:ar(e,r.x1,r.y1,r.x2,r.y2)},_a=function(e,r,a){return tr(e,r,a)},On=function(e,r,a){if(!r.cy().headless()){var n=r._private,i=n.rstyle,s=i.arrowWidth/2,o=r.pstyle(a+"-arrow-shape").value,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var f=n.arrowBounds=n.arrowBounds||{},h=f[a]=f[a]||{};h.x1=l-s,h.y1=u-s,h.x2=l+s,h.y2=u+s,h.w=h.x2-h.x1,h.h=h.y2-h.y1,yn(h,1),ar(e,h.x1,h.y1,h.x2,h.y2)}}},Ai=function(e,r,a){if(!r.cy().headless()){var n;a?n=a+"-":n="";var i=r._private,s=i.rstyle,o=r.pstyle(n+"label").strValue;if(o){var l=r.pstyle("text-halign"),u=r.pstyle("text-valign"),f=_a(s,"labelWidth",a),h=_a(s,"labelHeight",a),c=_a(s,"labelX",a),d=_a(s,"labelY",a),v=r.pstyle(n+"text-margin-x").pfValue,p=r.pstyle(n+"text-margin-y").pfValue,y=r.isEdge(),g=r.pstyle(n+"text-rotation"),m=r.pstyle("text-outline-width").pfValue,b=r.pstyle("text-border-width").pfValue,E=b/2,N=r.pstyle("text-background-padding").pfValue,A=2,x=h,R=f,C=R/2,B=x/2,z,M,X,F;if(y)z=c-C,M=c+C,X=d-B,F=d+B;else{switch(l.value){case"left":z=c-R,M=c;break;case"center":z=c-C,M=c+C;break;case"right":z=c,M=c+R;break}switch(u.value){case"top":X=d-x,F=d;break;case"center":X=d-B,F=d+B;break;case"bottom":X=d,F=d+x;break}}z+=v-Math.max(m,E)-N-A,M+=v+Math.max(m,E)+N+A,X+=p-Math.max(m,E)-N-A,F+=p+Math.max(m,E)+N+A;var re=a||"main",q=i.labelBounds,Z=q[re]=q[re]||{};Z.x1=z,Z.y1=X,Z.x2=M,Z.y2=F,Z.w=M-z,Z.h=F-X;var ie=y&&g.strValue==="autorotate",ue=g.pfValue!=null&&g.pfValue!==0;if(ie||ue){var ge=ie?_a(i.rstyle,"labelAngle",a):g.pfValue,se=Math.cos(ge),ve=Math.sin(ge),ye=(z+M)/2,Te=(X+F)/2;if(!y){switch(l.value){case"left":ye=M;break;case"right":ye=z;break}switch(u.value){case"top":Te=F;break;case"bottom":Te=X;break}}var be=function(We,Re){return We=We-ye,Re=Re-Te,{x:We*se-Re*ve+ye,y:We*ve+Re*se+Te}},me=be(z,X),ae=be(z,F),xe=be(M,X),Ce=be(M,F);z=Math.min(me.x,ae.x,xe.x,Ce.x),M=Math.max(me.x,ae.x,xe.x,Ce.x),X=Math.min(me.y,ae.y,xe.y,Ce.y),F=Math.max(me.y,ae.y,xe.y,Ce.y)}var Oe=re+"Rot",Me=q[Oe]=q[Oe]||{};Me.x1=z,Me.y1=X,Me.x2=M,Me.y2=F,Me.w=M-z,Me.h=F-X,ar(e,z,X,M,F),ar(i.labelBounds.all,z,X,M,F)}return e}},sd=function(e,r){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=Yt(),o=e._private,l=e.isNode(),u=e.isEdge(),f,h,c,d,v,p,y=o.rstyle,g=l&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(Ge){return Ge.pstyle("display").value!=="none"},b=!n||m(e)&&(!u||m(e.source())&&m(e.target()));if(b){var E=0,N=0;n&&r.includeOverlays&&(E=e.pstyle("overlay-opacity").value,E!==0&&(N=e.pstyle("overlay-padding").value));var A=0,x=0;n&&r.includeUnderlays&&(A=e.pstyle("underlay-opacity").value,A!==0&&(x=e.pstyle("underlay-padding").value));var R=Math.max(N,x),C=0,B=0;if(n&&(C=e.pstyle("width").pfValue,B=C/2),l&&r.includeNodes){var z=e.position();v=z.x,p=z.y;var M=e.outerWidth(),X=M/2,F=e.outerHeight(),re=F/2;f=v-X,h=v+X,c=p-re,d=p+re,ar(s,f,c,h,d)}else if(u&&r.includeEdges)if(n&&!i){var q=e.pstyle("curve-style").strValue;if(f=Math.min(y.srcX,y.midX,y.tgtX),h=Math.max(y.srcX,y.midX,y.tgtX),c=Math.min(y.srcY,y.midY,y.tgtY),d=Math.max(y.srcY,y.midY,y.tgtY),f-=B,h+=B,c-=B,d+=B,ar(s,f,c,h,d),q==="haystack"){var Z=y.haystackPts;if(Z&&Z.length===2){if(f=Z[0].x,c=Z[0].y,h=Z[1].x,d=Z[1].y,f>h){var ie=f;f=h,h=ie}if(c>d){var ue=c;c=d,d=ue}ar(s,f-B,c-B,h+B,d+B)}}else if(q==="bezier"||q==="unbundled-bezier"||q==="segments"||q==="taxi"){var ge;switch(q){case"bezier":case"unbundled-bezier":ge=y.bezierPts;break;case"segments":case"taxi":ge=y.linePts;break}if(ge!=null)for(var se=0;seh){var ae=f;f=h,h=ae}if(c>d){var xe=c;c=d,d=xe}f-=B,h+=B,c-=B,d+=B,ar(s,f,c,h,d)}if(n&&r.includeEdges&&u&&(On(s,e,"mid-source"),On(s,e,"mid-target"),On(s,e,"source"),On(s,e,"target")),n){var Ce=e.pstyle("ghost").value==="yes";if(Ce){var Oe=e.pstyle("ghost-offset-x").pfValue,Me=e.pstyle("ghost-offset-y").pfValue;ar(s,s.x1+Oe,s.y1+Me,s.x2+Oe,s.y2+Me)}}var He=o.bodyBounds=o.bodyBounds||{};Es(He,s),li(He,g),yn(He,1),n&&(f=s.x1,h=s.x2,c=s.y1,d=s.y2,ar(s,f-R,c-R,h+R,d+R));var We=o.overlayBounds=o.overlayBounds||{};Es(We,s),li(We,g),yn(We,1);var Re=o.labelBounds=o.labelBounds||{};Re.all!=null?Sf(Re.all):Re.all=Yt(),n&&r.includeLabels&&(r.includeMainLabels&&Ai(s,e,null),u&&(r.includeSourceLabels&&Ai(s,e,"source"),r.includeTargetLabels&&Ai(s,e,"target")))}return s.x1=Qt(s.x1),s.y1=Qt(s.y1),s.x2=Qt(s.x2),s.y2=Qt(s.y2),s.w=Qt(s.x2-s.x1),s.h=Qt(s.y2-s.y1),s.w>0&&s.h>0&&b&&(li(s,g),yn(s,1)),s},yo=function(e){var r=0,a=function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:wd,e=arguments.length>1?arguments[1]:void 0,r=0;r=0;o--)s(o);return this},Nr.removeAllListeners=function(){return this.removeListener("*")},Nr.emit=Nr.trigger=function(t,e,r){var a=this.listeners,n=a.length;return this.emitting++,te(e)||(e=[e]),xd(this,function(i,s){r!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],n=a.length);for(var o=function(f){var h=a[f];if(h.type===s.type&&(!h.namespace||h.namespace===s.namespace||h.namespace===Ed)&&i.eventMatches(i.context,h,s)){var c=[s];e!=null&&jl(c,e),i.beforeEmit(i.context,h,s),h.conf&&h.conf.one&&(i.listeners=i.listeners.filter(function(p){return p!==h}));var d=i.callbackContext(i.context,h,s),v=h.callback.apply(d,c);i.afterEmit(i.context,h,s),v===!1&&(s.stopPropagation(),s.preventDefault())}},l=0;l1&&!s){var o=this.length-1,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var r=this._private,a=e._private.data.id,n=r.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var r=this._private.cy;if(!e)return this;if(e&&j(e)){var a=e;e=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];e(a)&&this.unmergeAt(r)}return this},map:function(e,r){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},min:function(e,r){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":ee(Symbol))!=e&&ee(Symbol.iterator)!=e;r&&(Rn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return T({next:function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){this.cleanStyle();var i=a._private.style[e];return i??(r?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var a=r.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},renderedStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=this[0];if(a)return r.style().getRenderedStyle(a,e)},style:function(e,r){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(L(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(j(e))if(r===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,r,n),this.emitAndNotify("style");else if(e===void 0){var l=this[0];return l?i.getRawStyle(l):void 0}return this},removeStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=!1,n=r.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(o[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Bt.neighbourhood=Bt.neighborhood,Bt.closedNeighbourhood=Bt.closedNeighborhood,Bt.openNeighbourhood=Bt.openNeighborhood,Ue(Bt,{source:Zt(function(e){var r=this[0],a;return r&&(a=r._private.source||r.cy().collection()),a&&e?a.filter(e):a},"source"),target:Zt(function(e){var r=this[0],a;return r&&(a=r._private.target||r.cy().collection()),a&&e?a.filter(e):a},"target"),sources:zo({attr:"source"}),targets:zo({attr:"target"})});function zo(t){return function(r){for(var a=[],n=0;n0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Bt.componentsOf=Bt.components;var Nt=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Tt("A collection must have a reference to the core");return}var i=new lr,s=!1;if(!r)r=[];else if(r.length>0&&L(r[0])&&!Ae(r[0])){s=!0;for(var o=[],l=new jr,u=0,f=r.length;u0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=r.cy(),n=a._private,i=[],s=[],o,l=0,u=r.length;l0){for(var ue=o.length===r.length?r:new Nt(a,o),ge=0;ge0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=[],n={},i=r._private.cy;function s(F){for(var re=F._private.edges,q=0;q0&&(t?z.emitAndNotify("remove"):e&&z.emit("remove"));for(var M=0;M0?M=F:z=F;while(Math.abs(X)>s&&++re=i?m(B,re):q===0?re:E(B,z,z+u)}var A=!1;function x(){A=!0,(t!==e||r!==a)&&b()}var R=function(z){return A||x(),t===e&&r===a?z:z===0?0:z===1?1:y(N(z),e,a)};R.getControlPoints=function(){return[{x:t,y:e},{x:r,y:a}]};var C="generateBezier("+[t,e,r,a]+")";return R.toString=function(){return C},R}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var Rd=function(){function t(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:t(s)}}function r(a,n){var i={dx:a.v,dv:t(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),f=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+f*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,f=1/1e4,h=16/1e3,c,d,v;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c?(u=a(n,i),d=u/s*h):d=h;v=r(v||o,d),l.push(1+v.x),u+=16,Math.abs(v.x)>f&&Math.abs(v.v)>f;);return c?function(p){return l[p*(l.length-1)|0]}:u}}(),Et=function(e,r,a,n){var i=Id(e,r,a,n);return function(s,o,l){return s+(o-s)*i(l)}},Fn={linear:function(e,r,a){return e+(r-e)*a},ease:Et(.25,.1,.25,1),"ease-in":Et(.42,0,1,1),"ease-out":Et(0,0,.58,1),"ease-in-out":Et(.42,0,.58,1),"ease-in-sine":Et(.47,0,.745,.715),"ease-out-sine":Et(.39,.575,.565,1),"ease-in-out-sine":Et(.445,.05,.55,.95),"ease-in-quad":Et(.55,.085,.68,.53),"ease-out-quad":Et(.25,.46,.45,.94),"ease-in-out-quad":Et(.455,.03,.515,.955),"ease-in-cubic":Et(.55,.055,.675,.19),"ease-out-cubic":Et(.215,.61,.355,1),"ease-in-out-cubic":Et(.645,.045,.355,1),"ease-in-quart":Et(.895,.03,.685,.22),"ease-out-quart":Et(.165,.84,.44,1),"ease-in-out-quart":Et(.77,0,.175,1),"ease-in-quint":Et(.755,.05,.855,.06),"ease-out-quint":Et(.23,1,.32,1),"ease-in-out-quint":Et(.86,0,.07,1),"ease-in-expo":Et(.95,.05,.795,.035),"ease-out-expo":Et(.19,1,.22,1),"ease-in-out-expo":Et(1,0,0,1),"ease-in-circ":Et(.6,.04,.98,.335),"ease-out-circ":Et(.075,.82,.165,1),"ease-in-out-circ":Et(.785,.135,.15,.86),spring:function(e,r,a){if(a===0)return Fn.linear;var n=Rd(e,r,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Et};function $o(t,e,r,a,n){if(a===1||e===r)return r;var i=n(e,r,a);return t==null||((t.roundValue||t.color)&&(i=Math.round(i)),t.min!==void 0&&(i=Math.max(i,t.min)),t.max!==void 0&&(i=Math.min(i,t.max))),i}function _o(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function pa(t,e,r,a,n){var i=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var s=_o(t,n),o=_o(e,n);if(I(s)&&I(o))return $o(i,s,o,r,a);if(te(s)&&te(o)){for(var l=[],u=0;u0?(d==="spring"&&v.push(s.duration),s.easingImpl=Fn[d].apply(null,v)):s.easingImpl=Fn[d]}var p=s.easingImpl,y;if(s.duration===0?y=1:y=(r-l)/s.duration,s.applying&&(y=s.progress),y<0?y=0:y>1&&(y=1),s.delay==null){var g=s.startPosition,m=s.position;if(m&&n&&!t.locked()){var b={};Wa(g.x,m.x)&&(b.x=pa(g.x,m.x,y,p)),Wa(g.y,m.y)&&(b.y=pa(g.y,m.y,y,p)),t.position(b)}var E=s.startPan,N=s.pan,A=i.pan,x=N!=null&&a;x&&(Wa(E.x,N.x)&&(A.x=pa(E.x,N.x,y,p)),Wa(E.y,N.y)&&(A.y=pa(E.y,N.y,y,p)),t.emit("pan"));var R=s.startZoom,C=s.zoom,B=C!=null&&a;B&&(Wa(R,C)&&(i.zoom=Pa(i.minZoom,pa(R,C,y,p),i.maxZoom)),t.emit("zoom")),(x||B)&&t.emit("viewport");var z=s.style;if(z&&z.length>0&&n){for(var M=0;M=0;x--){var R=A[x];R()}A.splice(0,A.length)},m=d.length-1;m>=0;m--){var b=d[m],E=b._private;if(E.stopped){d.splice(m,1),E.hooked=!1,E.playing=!1,E.started=!1,g(E.frames);continue}!E.playing&&!E.applying||(E.playing&&E.applying&&(E.applying=!1),E.started||Pd(f,b,t),kd(f,b,t,h),E.applying&&(E.applying=!1),g(E.frames),E.step!=null&&E.step(t),b.completed()&&(d.splice(m,1),E.hooked=!1,E.playing=!1,E.started=!1,g(E.completes)),p=!0)}return!h&&d.length===0&&v.length===0&&a.push(f),p}for(var i=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(a),e.emit("step")}var Bd={animate:ht.animate(),animation:ht.animation(),animated:ht.animated(),clearQueue:ht.clearQueue(),delay:ht.delay(),delayAnimation:ht.delayAnimation(),stop:ht.stop(),addToAnimationPool:function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&hn(function(i){Uo(i,e),r()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){Uo(s,e)},a.beforeRenderPriorities.animations):r()}},Fd={qualifierCompare:function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},eventMatches:function(e,r,a){var n=r.qualifier;return n!=null?e!==a.target&&Ae(a.target)&&n.matches(a.target):!0},addEventFields:function(e,r){r.cy=e,r.target=e},callbackContext:function(e,r,a){return r.qualifier!=null?a.target:e}},zn=function(e){return j(e)?new Sr(e):e},Yo={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Mn(Fd,this)),this},emitter:function(){return this._private.emitter},on:function(e,r,a){return this.emitter().on(e,zn(r),a),this},removeListener:function(e,r,a){return this.emitter().removeListener(e,zn(r),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,r,a){return this.emitter().one(e,zn(r),a),this},once:function(e,r,a){return this.emitter().one(e,zn(r),a),this},emit:function(e,r){return this.emitter().emit(e,r),this},emitAndNotify:function(e,r){return this.emit(e),this.notify(e,r),this}};ht.eventAliasesOn(Yo);var Mi={png:function(e){var r=this._private.renderer;return e=e||{},r.png(e)},jpg:function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)}};Mi.jpeg=Mi.jpg;var Gn={layout:function(e){var r=this;if(e==null){Tt("Layout options must be specified to make a layout");return}if(e.name==null){Tt("A `name` must be specified to make a layout");return}var a=e.name,n=r.extension("layout",a);if(n==null){Tt("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;j(e.eles)?i=r.$(e.eles):i=e.eles!=null?e.eles:r.$();var s=new n(Ue({},e,{cy:r,eles:i}));return s}};Gn.createLayout=Gn.makeLayout=Gn.layout;var zd={notify:function(e,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();r!=null&&n.merge(r);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,r)}},notifications:function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch: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(a){var n=e.batchNotifications[a];n.empty()?r.notify(a):r.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var r=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Ii.invalidateDimensions=Ii.resize;var Vn={collection:function(e,r){return j(e)?this.$(e):de(e)?e.collection():te(e)?(r||(r={}),new Nt(this,e,r.unique,r.removed)):new Nt(this)},nodes:function(e){var r=this.$(function(a){return a.isNode()});return e?r.filter(e):r},edges:function(e){var r=this.$(function(a){return a.isEdge()});return e?r.filter(e):r},$:function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},mutableElements:function(){return this._private.elements}};Vn.elements=Vn.filter=Vn.$;var Ft={},qa="t",Vd="f";Ft.apply=function(t){for(var e=this,r=e._private,a=r.cy,n=a.collection(),i=0;i0;if(c||h&&d){var v=void 0;c&&d||c?v=u.properties:d&&(v=u.mappedProperties);for(var p=0;p1&&(E=1),o.color){var A=a.valueMin[0],x=a.valueMax[0],R=a.valueMin[1],C=a.valueMax[1],B=a.valueMin[2],z=a.valueMax[2],M=a.valueMin[3]==null?1:a.valueMin[3],X=a.valueMax[3]==null?1:a.valueMax[3],F=[Math.round(A+(x-A)*E),Math.round(R+(C-R)*E),Math.round(B+(z-B)*E),Math.round(M+(X-M)*E)];i={bypass:a.bypass,name:a.name,value:F,strValue:"rgb("+F[0]+", "+F[1]+", "+F[2]+")"}}else if(o.number){var re=a.valueMin+(a.valueMax-a.valueMin)*E;i=this.parse(a.name,re,a.bypass,c)}else return!1;if(!i)return p(),!1;i.mapping=a,a=i;break}case s.data:{for(var q=a.field.split("."),Z=h.data,ie=0;ie0&&i>0){for(var o={},l=!1,u=0;u0?t.delayAnimation(s).play().promise().then(b):b()}).then(function(){return t.animation({style:o,duration:i,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1)},Ft.checkTrigger=function(t,e,r,a,n,i){var s=this.properties[e],o=n(s);o!=null&&o(r,a)&&i(s)},Ft.checkZOrderTrigger=function(t,e,r,a){var n=this;this.checkTrigger(t,e,r,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",t)})},Ft.checkBoundsTrigger=function(t,e,r,a){this.checkTrigger(t,e,r,a,function(n){return n.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&(e==="curve-style"&&(r==="bezier"||a==="bezier")||e==="display"&&(r==="none"||a==="none"))&&t.parallelEdges().forEach(function(i){i.isBundledBezier()&&i.dirtyBoundingBoxCache()})})},Ft.checkTriggers=function(t,e,r,a){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,a),this.checkBoundsTrigger(t,e,r,a)};var Ka={};Ka.applyBypass=function(t,e,r,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function l(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=a.match(/^\s*$/);if(u)break;var f=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){ut("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=f[0];var h=f[1];if(h!=="core"){var c=new Sr(h);if(c.invalid){ut("Skipping parsing of block: Invalid selector found in string stylesheet: "+h),o();continue}}var d=f[2],v=!1;i=d;for(var p=[];;){var y=i.match(/^\s*$/);if(y)break;var g=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){ut("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),v=!0;break}s=g[0];var m=g[1],b=g[2],E=e.properties[m];if(!E){ut("Skipping property: Invalid property name in: "+s),l();continue}var N=r.parse(m,b);if(!N){ut("Skipping property: Invalid property definition in: "+s),l();continue}p.push({name:m,val:b}),l()}if(v){o();break}r.selector(h);for(var A=0;A=7&&e[0]==="d"&&(f=new RegExp(o.data.regex).exec(e))){if(r)return!1;var c=o.data;return{name:t,value:f,strValue:""+e,mapped:c,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(h=new RegExp(o.mapData.regex).exec(e))){if(r||u.multiple)return!1;var d=o.mapData;if(!(u.color||u.number))return!1;var v=this.parse(t,h[4]);if(!v||v.mapped)return!1;var p=this.parse(t,h[5]);if(!p||p.mapped)return!1;if(v.pfValue===p.pfValue||v.strValue===p.strValue)return ut("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+v.strValue+"`"),this.parse(t,v.strValue);if(u.color){var y=v.value,g=p.value,m=y[0]===g[0]&&y[1]===g[1]&&y[2]===g[2]&&(y[3]===g[3]||(y[3]==null||y[3]===1)&&(g[3]==null||g[3]===1));if(m)return!1}return{name:t,value:h,strValue:""+e,mapped:d,field:h[1],fieldMin:parseFloat(h[2]),fieldMax:parseFloat(h[3]),valueMin:v.value,valueMax:p.value,bypass:r}}}if(u.multiple&&a!=="multiple"){var b;if(l?b=e.split(/\s+/):te(e)?b=e:b=[e],u.evenMultiple&&b.length%2!==0)return null;for(var E=[],N=[],A=[],x="",R=!1,C=0;C0?" ":"")+B.strValue}return u.validate&&!u.validate(E,N)?null:u.singleEnum&&R?E.length===1&&j(E[0])?{name:t,value:E[0],strValue:E[0],bypass:r}:null:{name:t,value:E,pfValue:A,strValue:x,bypass:r,units:N}}var z=function(){for(var Ce=0;Ceu.max||u.strictMax&&e===u.max))return null;var q={name:t,value:e,strValue:""+e+(M||""),units:M,bypass:r};return u.unitless||M!=="px"&&M!=="em"?q.pfValue=e:q.pfValue=M==="px"||!M?e:this.getEmSizeInPixels()*e,(M==="ms"||M==="s")&&(q.pfValue=M==="ms"?e:1e3*e),(M==="deg"||M==="rad")&&(q.pfValue=M==="rad"?e:xf(e)),M==="%"&&(q.pfValue=e/100),q}else if(u.propList){var Z=[],ie=""+e;if(ie!=="none"){for(var ue=ie.split(/\s*,\s*|\s+/),ge=0;ge0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*r)/a.w,(o-2*r)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l=a.minZoom&&(a.maxZoom=r),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var r=this._private,a=r.pan,n=r.zoom,i,s,o=!1;if(r.zoomingEnabled||(o=!0),I(e)?s=e:L(e)&&(s=e.level,e.position!=null?i=gn(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!r.panningEnabled&&(o=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var u=e.pan;I(u.x)&&(r.pan.x=u.x,o=!1),I(u.y)&&(r.pan.y=u.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,r){if(this._private.panningEnabled){if(j(e)){var a=e;e=this.mutableElements().filter(a)}else de(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var o={x:(i-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,r=e.container,a=this;return e.sizeCache=e.sizeCache||(r?function(){var n=a.window().getComputedStyle(r),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:r.clientWidth-i("padding-left")-i("padding-right"),height:r.clientHeight-i("padding-top")-i("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,r=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/r,x2:(a.x2-e.x)/r,y1:(a.y1-e.y)/r,y2:(a.y2-e.y)/r};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};$r.centre=$r.center,$r.autolockNodes=$r.autolock,$r.autoungrabifyNodes=$r.autoungrabify;var Za={data:ht.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:ht.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:ht.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:ht.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Za.attr=Za.data,Za.removeAttr=Za.removeData;var Qa=function(e){var r=this;e=Ue({},e);var a=e.container;a&&!fe(a)&&fe(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=r;var s=D!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=Ue({name:s?"grid":"null"},o.layout),o.renderer=Ue({name:s?"canvas":"null"},o.renderer);var l=function(v,p,y){return p!==void 0?p:y!==void 0?y:v},u=this._private={container:a,ready:!1,options:o,elements:new Nt(this),listeners:[],aniEles:new Nt(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:I(o.zoom)?o.zoom:1,pan:{x:L(o.pan)&&I(o.pan.x)?o.pan.x:0,y:L(o.pan)&&I(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var f=function(v,p){var y=v.some(rt);if(y)return sa.all(v).then(p);p(v)};u.styleEnabled&&r.setStyle([]);var h=Ue({},o,o.renderer);r.initRenderer(h);var c=function(v,p,y){r.notifications(!1);var g=r.mutableElements();g.length>0&&g.remove(),v!=null&&(L(v)||te(v))&&r.add(v),r.one("layoutready",function(b){r.notifications(!0),r.emit(b),r.one("load",p),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",y),r.emit("done")});var m=Ue({},r._private.options.layout);m.eles=r.elements(),r.layout(m).run()};f([o.style,o.elements],function(d){var v=d[0],p=d[1];u.styleEnabled&&r.style().append(v),c(p,function(){r.startAnimationLoop(),u.ready=!0,Y(o.ready)&&r.on("ready",o.ready);for(var y=0;y0,l=Yt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),u;if(de(e.roots))u=e.roots;else if(te(e.roots)){for(var f=[],h=0;h0;){var re=F(),q=B(re,M);if(q)re.outgoers().filter(function(Re){return Re.isNode()&&a.has(Re)}).forEach(X);else if(q===null){ut("Detected double maximal shift for node `"+re.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}C();var Z=0;if(e.avoidOverlap)for(var ie=0;ie0&&g[0].length<=3?Ye/2:0),k=2*Math.PI/g[Fe].length*ke;return Fe===0&&g[0].length===1&&(De=1),{x:Me.x+De*Math.cos(k),y:Me.y+De*Math.sin(k)}}else{var ct={x:Me.x+(ke+1-(ze+1)/2)*je,y:(Fe+1)*Ze};return ct}};return a.nodes().layoutPositions(this,e,We),this};var Hd={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:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Wo(t){this.options=Ue({},Hd,t)}Wo.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=Yt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),f,h=0,c=0;c1&&e.avoidOverlap){h*=1.75;var g=Math.cos(u)-Math.cos(0),m=Math.sin(u)-Math.sin(0),b=Math.sqrt(h*h/(g*g+m*m));f=Math.max(b,f)}var E=function(A,x){var R=e.startAngle+x*u*(n?1:-1),C=f*Math.cos(R),B=f*Math.sin(R),z={x:o.x+C,y:o.y+B};return z};return a.nodes().layoutPositions(this,e,E),this};var Xd={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:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function qo(t){this.options=Ue({},Xd,t)}qo.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=t.cy,n=e.eles,i=n.nodes().not(":parent"),s=Yt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=[],u=0,f=0;f0){var N=Math.abs(m[0].value-E.value);N>=y&&(m=[],g.push(m))}m.push(E)}var A=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=g.length>0&&g[0].length>1,R=Math.min(s.w,s.h)/2-A,C=R/(g.length+x?1:0);A=Math.min(A,C)}for(var B=0,z=0;z1&&e.avoidOverlap){var re=Math.cos(F)-Math.cos(0),q=Math.sin(F)-Math.sin(0),Z=Math.sqrt(A*A/(re*re+q*q));B=Math.max(Z,B)}M.r=B,B+=A}if(e.equidistant){for(var ie=0,ue=0,ge=0;ge=t.numIter||(eg(a,t),a.temperature=a.temperature*t.coolingFactor,a.temperature=t.animationThreshold&&i(),hn(h)}};f()}else{for(;u;)u=s(l),l++;Qo(a,t),o()}return this},Yn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Yn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var qd=function(e,r,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=Yt(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},l=a.eles.components(),u={},f=0;f0){o.graphSet.push(R);for(var f=0;fn.count?0:n.graph},Zd=function t(e,r,a,n){var i=n.graphSet[a];if(-10)var h=n.nodeOverlap*f,c=Math.sqrt(o*o+l*l),d=h*o/c,v=h*l/c;else var p=Hn(e,o,l),y=Hn(r,-1*o,-1*l),g=y.x-p.x,m=y.y-p.y,b=g*g+m*m,c=Math.sqrt(b),h=(e.nodeRepulsion+r.nodeRepulsion)/b,d=h*g/c,v=h*m/c;e.isLocked||(e.offsetX-=d,e.offsetY-=v),r.isLocked||(r.offsetX+=d,r.offsetY+=v)}},ag=function(e,r,a,n){if(a>0)var i=e.maxX-r.minX;else var i=r.maxX-e.minX;if(n>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},Hn=function(e,r,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/r,u=s/o,f={};return r===0&&0a?(f.x=n,f.y=i+s/2,f):0r&&-1*u<=l&&l<=u?(f.x=n-o/2,f.y=i-o*a/2/r,f):0=u)?(f.x=n+s*r/2/a,f.y=i+s/2,f):(0>a&&(l<=-1*u||l>=u)&&(f.x=n-s*r/2/a,f.y=i-s/2),f)},ng=function(e,r){for(var a=0;aa){var y=r.gravity*d/p,g=r.gravity*v/p;c.offsetX+=y,c.offsetY+=g}}}}},sg=function(e,r){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],l=e.layoutNodes[o],u=l.children;if(0a)var i={x:a*e/n,y:a*r/n};else var i={x:e,y:r};return i},lg=function t(e,r){var a=e.parentId;if(a!=null){var n=r.layoutNodes[r.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopg&&(v+=y+r.componentSpacing,d=0,p=0,y=0)}}},fg={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:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function Jo(t){this.options=Ue({},fg,t)}Jo.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=Yt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(ye){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),f=function(Te){if(Te==null)return Math.min(l,u);var be=Math.min(l,u);be==l?l=Te:u=Te},h=function(Te){if(Te==null)return Math.max(l,u);var be=Math.max(l,u);be==l?l=Te:u=Te},c=e.rows,d=e.cols!=null?e.cols:e.columns;if(c!=null&&d!=null)l=c,u=d;else if(c!=null&&d==null)l=c,u=Math.ceil(s/l);else if(c==null&&d!=null)u=d,l=Math.ceil(s/u);else if(u*l>s){var v=f(),p=h();(v-1)*p>=s?f(v-1):(p-1)*v>=s&&h(p-1)}else for(;u*l=s?h(g+1):f(y+1)}var m=i.w/u,b=i.h/l;if(e.condense&&(m=0,b=0),e.avoidOverlap)for(var E=0;E=u&&(re=0,F++)},Z={},ie=0;ie(re=Pf(t,e,q[Z],q[Z+1],q[Z+2],q[Z+3])))return y(x,re),!0}else if(C.edgeType==="bezier"||C.edgeType==="multibezier"||C.edgeType==="self"||C.edgeType==="compound"){for(var q=C.allpts,Z=0;Z+5(re=kf(t,e,q[Z],q[Z+1],q[Z+2],q[Z+3],q[Z+4],q[Z+5])))return y(x,re),!0}for(var ie=ie||R.source,ue=ue||R.target,ge=n.getArrowWidth(B,z),se=[{name:"source",x:C.arrowStartX,y:C.arrowStartY,angle:C.srcArrowAngle},{name:"target",x:C.arrowEndX,y:C.arrowEndY,angle:C.tgtArrowAngle},{name:"mid-source",x:C.midX,y:C.midY,angle:C.midsrcArrowAngle},{name:"mid-target",x:C.midX,y:C.midY,angle:C.midtgtArrowAngle}],Z=0;Z0&&(g(ie),g(ue))}function b(x,R,C){return tr(x,R,C)}function E(x,R){var C=x._private,B=c,z;R?z=R+"-":z="",x.boundingBox();var M=C.labelBounds[R||"main"],X=x.pstyle(z+"label").value,F=x.pstyle("text-events").strValue==="yes";if(!(!F||!X)){var re=b(C.rscratch,"labelX",R),q=b(C.rscratch,"labelY",R),Z=b(C.rscratch,"labelAngle",R),ie=x.pstyle(z+"text-margin-x").pfValue,ue=x.pstyle(z+"text-margin-y").pfValue,ge=M.x1-B-ie,se=M.x2+B-ie,ve=M.y1-B-ue,ye=M.y2+B-ue;if(Z){var Te=Math.cos(Z),be=Math.sin(Z),me=function(We,Re){return We=We-re,Re=Re-q,{x:We*Te-Re*be+re,y:We*be+Re*Te+q}},ae=me(ge,ve),xe=me(ge,ye),Ce=me(se,ve),Oe=me(se,ye),Me=[ae.x+ie,ae.y+ue,Ce.x+ie,Ce.y+ue,Oe.x+ie,Oe.y+ue,xe.x+ie,xe.y+ue];if(Ht(t,e,Me))return y(x),!0}else if(ra(M,t,e))return y(x),!0}}for(var N=s.length-1;N>=0;N--){var A=s[N];A.isNode()?g(A)||E(A):m(A)||E(A)||E(A,"source")||E(A,"target")}return o},_r.getAllInBox=function(t,e,r,a){var n=this.getCachedZSortedEles().interactive,i=[],s=Math.min(t,r),o=Math.max(t,r),l=Math.min(e,a),u=Math.max(e,a);t=s,r=o,e=l,a=u;for(var f=Yt({x1:t,y1:e,x2:r,y2:a}),h=0;h0?Math.max(Le-$e,0):Math.min(Le+$e,0)},X=M(B,R),F=M(z,C),re=!1;m===u?g=Math.abs(X)>Math.abs(F)?n:a:m===l||m===o?(g=a,re=!0):(m===i||m===s)&&(g=n,re=!0);var q=g===a,Z=q?F:X,ie=q?z:B,ue=bs(ie),ge=!1;!(re&&(E||A))&&(m===o&&ie<0||m===l&&ie>0||m===i&&ie>0||m===s&&ie<0)&&(ue*=-1,Z=ue*Math.abs(Z),ge=!0);var se;if(E){var ve=N<0?1+N:N;se=ve*Z}else{var ye=N<0?Z:0;se=ye+N*ue}var Te=function(Le){return Math.abs(Le)=Math.abs(Z)},be=Te(se),me=Te(Math.abs(Z)-Math.abs(se)),ae=be||me;if(ae&&!ge)if(q){var xe=Math.abs(ie)<=c/2,Ce=Math.abs(B)<=d/2;if(xe){var Oe=(f.x1+f.x2)/2,Me=f.y1,He=f.y2;r.segpts=[Oe,Me,Oe,He]}else if(Ce){var We=(f.y1+f.y2)/2,Re=f.x1,Ie=f.x2;r.segpts=[Re,We,Ie,We]}else r.segpts=[f.x1,f.y2]}else{var Ge=Math.abs(ie)<=h/2,Fe=Math.abs(z)<=v/2;if(Ge){var ke=(f.y1+f.y2)/2,ze=f.x1,je=f.x2;r.segpts=[ze,ke,je,ke]}else if(Fe){var Ze=(f.x1+f.x2)/2,Ye=f.y1,ct=f.y2;r.segpts=[Ze,Ye,Ze,ct]}else r.segpts=[f.x2,f.y1]}else if(q){var De=f.y1+se+(y?c/2*ue:0),k=f.x1,he=f.x2;r.segpts=[k,De,he,De]}else{var Se=f.x1+se+(y?h/2*ue:0),Ee=f.y1,we=f.y2;r.segpts=[Se,Ee,Se,we]}},Vt.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,f=e.tgtShape,h=!I(r.startX)||!I(r.startY),c=!I(r.arrowStartX)||!I(r.arrowStartY),d=!I(r.endX)||!I(r.endY),v=!I(r.arrowEndX)||!I(r.arrowEndY),p=3,y=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,g=p*y,m=Br({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),b=mF.poolIndex()){var re=X;X=F,F=re}var q=C.srcPos=X.position(),Z=C.tgtPos=F.position(),ie=C.srcW=X.outerWidth(),ue=C.srcH=X.outerHeight(),ge=C.tgtW=F.outerWidth(),se=C.tgtH=F.outerHeight(),ve=C.srcShape=r.nodeShapes[e.getNodeShape(X)],ye=C.tgtShape=r.nodeShapes[e.getNodeShape(F)];C.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Te=0;Te0){var xe=i,Ce=Fr(xe,ea(r)),Oe=Fr(xe,ea(ae)),Me=Ce;if(Oe2){var He=Fr(xe,{x:ae[2],y:ae[3]});He0){var k=s,he=Fr(k,ea(r)),Se=Fr(k,ea(De)),Ee=he;if(Se2){var we=Fr(k,{x:De[2],y:De[3]});we=v||x){y={cp:E,segment:A};break}}if(y)break}var R=y.cp,C=y.segment,B=(v-g)/C.length,z=C.t1-C.t0,M=d?C.t0+z*B:C.t1-z*B;M=Pa(0,M,1),e=ta(R.p0,R.p1,R.p2,M),c=pg(R.p0,R.p1,R.p2,M);break}case"straight":case"segments":case"haystack":{for(var X=0,F,re,q,Z,ie=a.allpts.length,ue=0;ue+3=v));ue+=2);var ge=v-re,se=ge/F;se=Pa(0,se,1),e=Cf(q,Z,se),c=su(q,Z);break}}s("labelX",h,e.x),s("labelY",h,e.y),s("labelAutoAngle",h,c)}};u("source"),u("target"),this.applyLabelDimensions(t)}},hr.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))},hr.applyPrefixedLabelDimensions=function(t,e){var r=t._private,a=this.getLabelText(t,e),n=this.calculateLabelDimensions(t,a),i=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,o=tr(r.rscratch,"labelWrapCachedLines",e)||[],l=s!=="wrap"?1:Math.max(o.length,1),u=n.height/l,f=u*i,h=n.width,c=n.height+(l-1)*(i-1)*u;Tr(r.rstyle,"labelWidth",e,h),Tr(r.rscratch,"labelWidth",e,h),Tr(r.rstyle,"labelHeight",e,c),Tr(r.rscratch,"labelHeight",e,c),Tr(r.rscratch,"labelLineHeight",e,f)},hr.getLabelText=function(t,e){var r=t._private,a=e?e+"-":"",n=t.pstyle(a+"label").strValue,i=t.pstyle("text-transform").value,s=function(ge,se){return se?(Tr(r.rscratch,ge,e,se),se):tr(r.rscratch,ge,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=t.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="​",f=n.split(` -`),h=t.pstyle("text-max-width").pfValue,c=t.pstyle("text-overflow-wrap").value,d=c==="anywhere",v=[],p=/[\s\u200b]+/,y=d?"":" ",g=0;gh){for(var A=m.split(p),x="",R=0;RX)break;F+=n[Z],Z===n.length-1&&(q=!0)}return q||(F+=re),F}return n},hr.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},hr.calculateLabelDimensions=function(t,e){var r=this,a=Pr(e,t._private.labelDimsKey),n=r.labelDimCache||(r.labelDimCache=[]),i=n[a];if(i!=null)return i;var s=0,o=t.pstyle("font-style").strValue,l=t.pstyle("font-size").pfValue,u=t.pstyle("font-family").strValue,f=t.pstyle("font-weight").strValue,h=this.labelCalcCanvas,c=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=document.createElement("canvas"),c=this.labelCalcCanvasContext=h.getContext("2d");var d=h.style;d.position="absolute",d.left="-9999px",d.top="-9999px",d.zIndex="-1",d.visibility="hidden",d.pointerEvents="none"}c.font="".concat(o," ").concat(f," ").concat(l,"px ").concat(u);for(var v=0,p=0,y=e.split(` -`),g=0;g1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var l=0;l=t.desktopTapThreshold2}var Er=n(k);Rt&&(t.hoverData.tapholdCancelled=!0);var Rr=function(){var vr=t.hoverData.dragDelta=t.hoverData.dragDelta||[];vr.length===0?(vr.push(Je[0]),vr.push(Je[1])):(vr[0]+=Je[0],vr[1]+=Je[1])};Se=!0,a(Qe,["mousemove","vmousemove","tapdrag"],k,{x:Le[0],y:Le[1]});var Ta=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||Ee.emit({originalEvent:k,type:"boxstart",position:{x:Le[0],y:Le[1]}}),gt[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if(Rt){var Xr={originalEvent:k,type:"cxtdrag",position:{x:Le[0],y:Le[1]}};Ke?Ke.emit(Xr):Ee.emit(Xr),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Qe!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:k,type:"cxtdragout",position:{x:Le[0],y:Le[1]}}),t.hoverData.cxtOver=Qe,Qe&&Qe.emit({originalEvent:k,type:"cxtdragover",position:{x:Le[0],y:Le[1]}}))}}else if(t.hoverData.dragging){if(Se=!0,Ee.panningEnabled()&&Ee.userPanningEnabled()){var Ca;if(t.hoverData.justStartedPan){var Jn=t.hoverData.mdownPos;Ca={x:(Le[0]-Jn[0])*we,y:(Le[1]-Jn[1])*we},t.hoverData.justStartedPan=!1}else Ca={x:Je[0]*we,y:Je[1]*we};Ee.panBy(Ca),Ee.emit("dragpan"),t.hoverData.dragged=!0}Le=t.projectIntoViewport(k.clientX,k.clientY)}else if(gt[4]==1&&(Ke==null||Ke.pannable())){if(Rt){if(!t.hoverData.dragging&&Ee.boxSelectionEnabled()&&(Er||!Ee.panningEnabled()||!Ee.userPanningEnabled()))Ta();else if(!t.hoverData.selecting&&Ee.panningEnabled()&&Ee.userPanningEnabled()){var Wr=i(Ke,t.hoverData.downs);Wr&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,gt[4]=0,t.data.bgActivePosistion=ea($e),t.redrawHint("select",!0),t.redraw())}Ke&&Ke.pannable()&&Ke.active()&&Ke.unactivate()}}else{if(Ke&&Ke.pannable()&&Ke.active()&&Ke.unactivate(),(!Ke||!Ke.grabbed())&&Qe!=lt&&(lt&&a(lt,["mouseout","tapdragout"],k,{x:Le[0],y:Le[1]}),Qe&&a(Qe,["mouseover","tapdragover"],k,{x:Le[0],y:Le[1]}),t.hoverData.last=Qe),Ke)if(Rt){if(Ee.boxSelectionEnabled()&&Er)Ke&&Ke.grabbed()&&(y(Dt),Ke.emit("freeon"),Dt.emit("free"),t.dragData.didDrag&&(Ke.emit("dragfreeon"),Dt.emit("dragfree"))),Ta();else if(Ke&&Ke.grabbed()&&t.nodeIsDraggable(Ke)){var Xt=!t.dragData.didDrag;Xt&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||v(Dt,{inDragLayer:!0});var $t={x:0,y:0};if(I(Je[0])&&I(Je[1])&&($t.x+=Je[0],$t.y+=Je[1],Xt)){var Wt=t.hoverData.dragDelta;Wt&&I(Wt[0])&&I(Wt[1])&&($t.x+=Wt[0],$t.y+=Wt[1])}t.hoverData.draggingEles=!0,Dt.silentShift($t).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Rr();Se=!0}if(gt[2]=Le[0],gt[3]=Le[1],Se)return k.stopPropagation&&k.stopPropagation(),k.preventDefault&&k.preventDefault(),!1}},!1);var B,z,M;t.registerBinding(e,"mouseup",function(k){var he=t.hoverData.capture;if(he){t.hoverData.capture=!1;var Se=t.cy,Ee=t.projectIntoViewport(k.clientX,k.clientY),we=t.selection,qe=t.findNearestElement(Ee[0],Ee[1],!0,!1),Le=t.dragData.possibleDragElements,$e=t.hoverData.down,ot=n(k);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,$e&&$e.unactivate(),t.hoverData.which===3){var gt={originalEvent:k,type:"cxttapend",position:{x:Ee[0],y:Ee[1]}};if($e?$e.emit(gt):Se.emit(gt),!t.hoverData.cxtDragged){var Qe={originalEvent:k,type:"cxttap",position:{x:Ee[0],y:Ee[1]}};$e?$e.emit(Qe):Se.emit(Qe)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(a(qe,["mouseup","tapend","vmouseup"],k,{x:Ee[0],y:Ee[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(a($e,["click","tap","vclick"],k,{x:Ee[0],y:Ee[1]}),z=!1,k.timeStamp-M<=Se.multiClickDebounceTime()?(B&&clearTimeout(B),z=!0,M=null,a($e,["dblclick","dbltap","vdblclick"],k,{x:Ee[0],y:Ee[1]})):(B=setTimeout(function(){z||a($e,["oneclick","onetap","voneclick"],k,{x:Ee[0],y:Ee[1]})},Se.multiClickDebounceTime()),M=k.timeStamp)),$e==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!n(k)&&(Se.$(r).unselect(["tapunselect"]),Le.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Le=Se.collection()),qe==$e&&!t.dragData.didDrag&&!t.hoverData.selecting&&qe!=null&&qe._private.selectable&&(t.hoverData.dragging||(Se.selectionType()==="additive"||ot?qe.selected()?qe.unselect(["tapunselect"]):qe.select(["tapselect"]):ot||(Se.$(r).unmerge(qe).unselect(["tapunselect"]),qe.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var lt=Se.collection(t.getAllInBox(we[0],we[1],we[2],we[3]));t.redrawHint("select",!0),lt.length>0&&t.redrawHint("eles",!0),Se.emit({type:"boxend",originalEvent:k,position:{x:Ee[0],y:Ee[1]}});var Ke=function(Rt){return Rt.selectable()&&!Rt.selected()};Se.selectionType()==="additive"||ot||Se.$(r).unmerge(lt).unselect(),lt.emit("box").stdFilter(Ke).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!we[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var Je=$e&&$e.grabbed();y(Le),Je&&($e.emit("freeon"),Le.emit("free"),t.dragData.didDrag&&($e.emit("dragfreeon"),Le.emit("dragfree")))}}we[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}},!1);var X=function(k){if(!t.scrollingPage){var he=t.cy,Se=he.zoom(),Ee=he.pan(),we=t.projectIntoViewport(k.clientX,k.clientY),qe=[we[0]*Se+Ee.x,we[1]*Se+Ee.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||R()){k.preventDefault();return}if(he.panningEnabled()&&he.userPanningEnabled()&&he.zoomingEnabled()&&he.userZoomingEnabled()){k.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var Le;k.deltaY!=null?Le=k.deltaY/-250:k.wheelDeltaY!=null?Le=k.wheelDeltaY/1e3:Le=k.wheelDelta/1e3,Le=Le*t.wheelSensitivity;var $e=k.deltaMode===1;$e&&(Le*=33);var ot=he.zoom()*Math.pow(10,Le);k.type==="gesturechange"&&(ot=t.gestureStartZoom*k.scale),he.zoom({level:ot,renderedPosition:{x:qe[0],y:qe[1]}}),he.emit(k.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",X,!0),t.registerBinding(e,"scroll",function(k){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(k){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||k.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(De){t.hasTouchStarted||X(De)},!0),t.registerBinding(t.container,"mouseout",function(k){var he=t.projectIntoViewport(k.clientX,k.clientY);t.cy.emit({originalEvent:k,type:"mouseout",position:{x:he[0],y:he[1]}})},!1),t.registerBinding(t.container,"mouseover",function(k){var he=t.projectIntoViewport(k.clientX,k.clientY);t.cy.emit({originalEvent:k,type:"mouseover",position:{x:he[0],y:he[1]}})},!1);var F,re,q,Z,ie,ue,ge,se,ve,ye,Te,be,me,ae=function(k,he,Se,Ee){return Math.sqrt((Se-k)*(Se-k)+(Ee-he)*(Ee-he))},xe=function(k,he,Se,Ee){return(Se-k)*(Se-k)+(Ee-he)*(Ee-he)},Ce;t.registerBinding(t.container,"touchstart",Ce=function(k){if(t.hasTouchStarted=!0,!!C(k)){m(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var he=t.cy,Se=t.touchData.now,Ee=t.touchData.earlier;if(k.touches[0]){var we=t.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);Se[0]=we[0],Se[1]=we[1]}if(k.touches[1]){var we=t.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);Se[2]=we[0],Se[3]=we[1]}if(k.touches[2]){var we=t.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);Se[4]=we[0],Se[5]=we[1]}if(k.touches[1]){t.touchData.singleTouchMoved=!0,y(t.dragData.touchDragEles);var qe=t.findContainerClientCoords();ve=qe[0],ye=qe[1],Te=qe[2],be=qe[3],F=k.touches[0].clientX-ve,re=k.touches[0].clientY-ye,q=k.touches[1].clientX-ve,Z=k.touches[1].clientY-ye,me=0<=F&&F<=Te&&0<=q&&q<=Te&&0<=re&&re<=be&&0<=Z&&Z<=be;var Le=he.pan(),$e=he.zoom();ie=ae(F,re,q,Z),ue=xe(F,re,q,Z),ge=[(F+q)/2,(re+Z)/2],se=[(ge[0]-Le.x)/$e,(ge[1]-Le.y)/$e];var ot=200,gt=ot*ot;if(ue=1){for(var ir=t.touchData.startPosition=[null,null,null,null,null,null],kt=0;kt=t.touchTapThreshold2}if(he&&t.touchData.cxt){k.preventDefault();var ir=k.touches[0].clientX-ve,kt=k.touches[0].clientY-ye,Jt=k.touches[1].clientX-ve,Ut=k.touches[1].clientY-ye,Er=xe(ir,kt,Jt,Ut),Rr=Er/ue,Ta=150,Xr=Ta*Ta,Ca=1.5,Jn=Ca*Ca;if(Rr>=Jn||Er>=Xr){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Wr={originalEvent:k,type:"cxttapend",position:{x:we[0],y:we[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Wr),t.touchData.start=null):Ee.emit(Wr)}}if(he&&t.touchData.cxt){var Wr={originalEvent:k,type:"cxtdrag",position:{x:we[0],y:we[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Wr):Ee.emit(Wr),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var Xt=t.findNearestElement(we[0],we[1],!0,!0);(!t.touchData.cxtOver||Xt!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:k,type:"cxtdragout",position:{x:we[0],y:we[1]}}),t.touchData.cxtOver=Xt,Xt&&Xt.emit({originalEvent:k,type:"cxtdragover",position:{x:we[0],y:we[1]}}))}else if(he&&k.touches[2]&&Ee.boxSelectionEnabled())k.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||Ee.emit({originalEvent:k,type:"boxstart",position:{x:we[0],y:we[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,Se[4]=1,!Se||Se.length===0||Se[0]===void 0?(Se[0]=(we[0]+we[2]+we[4])/3,Se[1]=(we[1]+we[3]+we[5])/3,Se[2]=(we[0]+we[2]+we[4])/3+1,Se[3]=(we[1]+we[3]+we[5])/3+1):(Se[2]=(we[0]+we[2]+we[4])/3,Se[3]=(we[1]+we[3]+we[5])/3),t.redrawHint("select",!0),t.redraw();else if(he&&k.touches[1]&&!t.touchData.didSelect&&Ee.zoomingEnabled()&&Ee.panningEnabled()&&Ee.userZoomingEnabled()&&Ee.userPanningEnabled()){k.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var $t=t.dragData.touchDragEles;if($t){t.redrawHint("drag",!0);for(var Wt=0;Wt<$t.length;Wt++){var jn=$t[Wt]._private;jn.grabbed=!1,jn.rscratch.inDragLayer=!1}}var vr=t.touchData.start,ir=k.touches[0].clientX-ve,kt=k.touches[0].clientY-ye,Jt=k.touches[1].clientX-ve,Ut=k.touches[1].clientY-ye,Bu=ae(ir,kt,Jt,Ut),hp=Bu/ie;if(me){var cp=ir-F,vp=kt-re,dp=Jt-q,gp=Ut-Z,pp=(cp+dp)/2,yp=(vp+gp)/2,an=Ee.zoom(),Xi=an*hp,ei=Ee.pan(),Fu=se[0]*an+ei.x,zu=se[1]*an+ei.y,mp={x:-Xi/an*(Fu-ei.x-pp)+Fu,y:-Xi/an*(zu-ei.y-yp)+zu};if(vr&&vr.active()){var $t=t.dragData.touchDragEles;y($t),t.redrawHint("drag",!0),t.redrawHint("eles",!0),vr.unactivate().emit("freeon"),$t.emit("free"),t.dragData.didDrag&&(vr.emit("dragfreeon"),$t.emit("dragfree"))}Ee.viewport({zoom:Xi,pan:mp,cancelOnFailedZoom:!0}),Ee.emit("pinchzoom"),ie=Bu,F=ir,re=kt,q=Jt,Z=Ut,t.pinching=!0}if(k.touches[0]){var $e=t.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);we[0]=$e[0],we[1]=$e[1]}if(k.touches[1]){var $e=t.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);we[2]=$e[0],we[3]=$e[1]}if(k.touches[2]){var $e=t.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);we[4]=$e[0],we[5]=$e[1]}}else if(k.touches[0]&&!t.touchData.didSelect){var sr=t.touchData.start,Wi=t.touchData.last,Xt;if(!t.hoverData.draggingEles&&!t.swipePanning&&(Xt=t.findNearestElement(we[0],we[1],!0,!0)),he&&sr!=null&&k.preventDefault(),he&&sr!=null&&t.nodeIsDraggable(sr))if(gt){var $t=t.dragData.touchDragEles,Gu=!t.dragData.didDrag;Gu&&v($t,{inDragLayer:!0}),t.dragData.didDrag=!0;var nn={x:0,y:0};if(I(Qe[0])&&I(Qe[1])&&(nn.x+=Qe[0],nn.y+=Qe[1],Gu)){t.redrawHint("eles",!0);var or=t.touchData.dragDelta;or&&I(or[0])&&I(or[1])&&(nn.x+=or[0],nn.y+=or[1])}t.hoverData.draggingEles=!0,$t.silentShift(nn).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==qe[0]&&t.touchData.startPosition[1]==qe[1]&&t.redrawHint("eles",!0),t.redraw()}else{var or=t.touchData.dragDelta=t.touchData.dragDelta||[];or.length===0?(or.push(Qe[0]),or.push(Qe[1])):(or[0]+=Qe[0],or[1]+=Qe[1])}if(a(sr||Xt,["touchmove","tapdrag","vmousemove"],k,{x:we[0],y:we[1]}),(!sr||!sr.grabbed())&&Xt!=Wi&&(Wi&&Wi.emit({originalEvent:k,type:"tapdragout",position:{x:we[0],y:we[1]}}),Xt&&Xt.emit({originalEvent:k,type:"tapdragover",position:{x:we[0],y:we[1]}})),t.touchData.last=Xt,he)for(var Wt=0;Wt0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var Me;t.registerBinding(e,"touchcancel",Me=function(k){var he=t.touchData.start;t.touchData.capture=!1,he&&he.unactivate()});var He,We,Re,Ie;if(t.registerBinding(e,"touchend",He=function(k){var he=t.touchData.start,Se=t.touchData.capture;if(Se)k.touches.length===0&&(t.touchData.capture=!1),k.preventDefault();else return;var Ee=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var we=t.cy,qe=we.zoom(),Le=t.touchData.now,$e=t.touchData.earlier;if(k.touches[0]){var ot=t.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);Le[0]=ot[0],Le[1]=ot[1]}if(k.touches[1]){var ot=t.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);Le[2]=ot[0],Le[3]=ot[1]}if(k.touches[2]){var ot=t.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);Le[4]=ot[0],Le[5]=ot[1]}he&&he.unactivate();var gt;if(t.touchData.cxt){if(gt={originalEvent:k,type:"cxttapend",position:{x:Le[0],y:Le[1]}},he?he.emit(gt):we.emit(gt),!t.touchData.cxtDragged){var Qe={originalEvent:k,type:"cxttap",position:{x:Le[0],y:Le[1]}};he?he.emit(Qe):we.emit(Qe)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!k.touches[2]&&we.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var lt=we.collection(t.getAllInBox(Ee[0],Ee[1],Ee[2],Ee[3]));Ee[0]=void 0,Ee[1]=void 0,Ee[2]=void 0,Ee[3]=void 0,Ee[4]=0,t.redrawHint("select",!0),we.emit({type:"boxend",originalEvent:k,position:{x:Le[0],y:Le[1]}});var Ke=function(Xr){return Xr.selectable()&&!Xr.selected()};lt.emit("box").stdFilter(Ke).select().emit("boxselect"),lt.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(he!=null&&he.unactivate(),k.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!k.touches[1]){if(!k.touches[0]){if(!k.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Je=t.dragData.touchDragEles;if(he!=null){var Dt=he._private.grabbed;y(Je),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Dt&&(he.emit("freeon"),Je.emit("free"),t.dragData.didDrag&&(he.emit("dragfreeon"),Je.emit("dragfree"))),a(he,["touchend","tapend","vmouseup","tapdragout"],k,{x:Le[0],y:Le[1]}),he.unactivate(),t.touchData.start=null}else{var Rt=t.findNearestElement(Le[0],Le[1],!0,!0);a(Rt,["touchend","tapend","vmouseup","tapdragout"],k,{x:Le[0],y:Le[1]})}var nr=t.touchData.startPosition[0]-Le[0],ir=nr*nr,kt=t.touchData.startPosition[1]-Le[1],Jt=kt*kt,Ut=ir+Jt,Er=Ut*qe*qe;t.touchData.singleTouchMoved||(he||we.$(":selected").unselect(["tapunselect"]),a(he,["tap","vclick"],k,{x:Le[0],y:Le[1]}),We=!1,k.timeStamp-Ie<=we.multiClickDebounceTime()?(Re&&clearTimeout(Re),We=!0,Ie=null,a(he,["dbltap","vdblclick"],k,{x:Le[0],y:Le[1]})):(Re=setTimeout(function(){We||a(he,["onetap","voneclick"],k,{x:Le[0],y:Le[1]})},we.multiClickDebounceTime()),Ie=k.timeStamp)),he!=null&&!t.dragData.didDrag&&he._private.selectable&&Er"u"){var Ge=[],Fe=function(k){return{clientX:k.clientX,clientY:k.clientY,force:1,identifier:k.pointerId,pageX:k.pageX,pageY:k.pageY,radiusX:k.width/2,radiusY:k.height/2,screenX:k.screenX,screenY:k.screenY,target:k.target}},ke=function(k){return{event:k,touch:Fe(k)}},ze=function(k){Ge.push(ke(k))},je=function(k){for(var he=0;he0)return se[0]}return null},d=Object.keys(h),v=0;v0?c:xs(i,s,e,r,a,n,o)},checkPoint:function(e,r,a,n,i,s,o){var l=za(n,i),u=2*l;if(pr(e,r,this.points,s,o,n,i-u,[0,-1],a)||pr(e,r,this.points,s,o,n-u,i,[0,-1],a))return!0;var f=n/2+2*a,h=i/2+2*a,c=[s-f,o-h,s-f,o,s+f,o,s+f,o-h];return!!(Ht(e,r,c)||zr(e,r,u,u,s+n/2-l,o+i/2-l,a)||zr(e,r,u,u,s-n/2+l,o+i/2-l,a))}}},mr.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",_t(3,0)),this.generateRoundPolygon("round-triangle",_t(3,0)),this.generatePolygon("rectangle",_t(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",_t(5,0)),this.generateRoundPolygon("round-pentagon",_t(5,0)),this.generatePolygon("hexagon",_t(6,0)),this.generateRoundPolygon("round-hexagon",_t(6,0)),this.generatePolygon("heptagon",_t(7,0)),this.generateRoundPolygon("round-heptagon",_t(7,0)),this.generatePolygon("octagon",_t(8,0)),this.generateRoundPolygon("round-octagon",_t(8,0));var a=new Array(20);{var n=ci(5,0),i=ci(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*E)break}else if(u){if(m>=e.deqCost*d||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*Gi)break;var N=e.deq(a,y,p);if(N.length>0)for(var A=0;A0&&(e.onDeqd(a,v),!u&&e.shouldRedraw(a,v,y,p)&&i())},o=e.priority||ii;n.beforeRender(s,o(a))}}}},mg=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:vn;ce(this,t),this.idsByKey=new lr,this.keyForId=new lr,this.cachesByLvl=new lr,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return O(t,[{key:"getIdsFor",value:function(r){r==null&&Tt("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new jr,a.set(r,n)),n}},{key:"addIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).add(a)}},{key:"deleteIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).delete(a)}},{key:"getNumberOfIdsForKey",value:function(r){return r==null?0:this.getIdsFor(r).size}},{key:"updateKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);return n!==i}},{key:"isInvalid",value:function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)}},{key:"getCachesAt",value:function(r){var a=this.cachesByLvl,n=this.lvls,i=a.get(r);return i||(i=new lr,a.set(r,i),n.push(r)),i}},{key:"getCache",value:function(r,a){return this.getCachesAt(a).get(r)}},{key:"get",value:function(r,a){var n=this.getKey(r),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(r),i}},{key:"getForCachedKey",value:function(r,a){var n=this.keyForId.get(r.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(r,a){return this.getCachesAt(a).has(r)}},{key:"has",value:function(r,a){var n=this.getKey(r);return this.hasCache(n,a)}},{key:"setCache",value:function(r,a,n){n.key=r,this.getCachesAt(a).set(r,n)}},{key:"set",value:function(r,a,n){var i=this.getKey(r);this.setCache(i,a,n),this.updateKeyMappingFor(r)}},{key:"deleteCache",value:function(r,a){this.getCachesAt(a).delete(r)}},{key:"delete",value:function(r,a){var n=this.getKey(r);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(r){var a=this;this.lvls.forEach(function(n){return a.deleteCache(r,n)})}},{key:"invalidate",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(r);var i=this.doesEleInvalidateKey(r);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0}}]),t}(),gu=25,Kn=50,Zn=-4,Vi=3,bg=7.99,Eg=8,wg=1024,xg=1024,Tg=1024,Cg=.2,Dg=.8,Sg=10,Lg=.15,Ag=.1,Og=.9,Ng=.9,Mg=100,Ig=1,Ea={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Rg=At({getKey:null,doesEleInvalidateKey:vn,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:cs,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),en=function(e,r){var a=this;a.renderer=e,a.onDequeues=[];var n=Rg(r);Ue(a,n),a.lookup=new mg(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},St=en.prototype;St.reasons=Ea,St.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]},St.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=r[t]=r[t]||[];return a},St.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new ka(function(r,a){return a.reqs-r.reqs});return e},St.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e},St.getElement=function(t,e,r,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!i.allowEdgeTxrCaching&&t.isEdge()||!i.allowParentTxrCaching&&t.isParent())return null;if(a==null&&(a=Math.ceil(ui(o*r))),a=bg||a>Vi)return null;var u=Math.pow(2,a),f=e.h*u,h=e.w*u,c=s.eleTextBiggerThanMin(t,u);if(!this.isVisible(t,c))return null;var d=l.get(t,a);if(d&&d.invalidated&&(d.invalidated=!1,d.texture.invalidatedWidth-=d.width),d)return d;var v;if(f<=gu?v=gu:f<=Kn?v=Kn:v=Math.ceil(f/Kn)*Kn,f>Tg||h>xg)return null;var p=i.getTextureQueue(v),y=p[p.length-2],g=function(){return i.recycleTexture(v,h)||i.addTexture(v,h)};y||(y=p[p.length-1]),y||(y=g()),y.width-y.usedWidtha;z--)C=i.getElement(t,e,r,z,Ea.downscale);B()}else return i.queueElement(t,A.level-1),A;else{var M;if(!b&&!E&&!N)for(var X=a-1;X>=Zn;X--){var F=l.get(t,X);if(F){M=F;break}}if(m(M))return i.queueElement(t,a),M;y.context.translate(y.usedWidth,0),y.context.scale(u,u),this.drawElement(y.context,t,e,c,!1),y.context.scale(1/u,1/u),y.context.translate(-y.usedWidth,0)}return d={x:y.usedWidth,texture:y,level:a,scale:u,width:h,height:f,scaledLabelShown:c},y.usedWidth+=Math.ceil(h+Eg),y.eleCaches.push(d),l.set(t,a,d),i.checkTextureFullness(y),d},St.invalidateElements=function(t){for(var e=0;e=Cg*t.width&&this.retireTexture(t)},St.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>Dg&&t.fullnessChecks>=Sg?xr(r,t):t.fullnessChecks++},St.retireTexture=function(t){var e=this,r=t.height,a=e.getTextureQueue(r),n=this.lookup;xr(a,t),t.retired=!0;for(var i=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,si(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),xr(n,s),a.push(s),s}},St.queueElement=function(t,e){var r=this,a=r.getElementQueue(),n=r.getElementKeyToQueue(),i=this.getKey(t),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,a.updateItem(s);else{var o={eles:t.spawn().merge(t),level:e,reqs:1,key:i};a.push(o),n[i]=o}},St.dequeue=function(t){for(var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s0;s++){var o=r.pop(),l=o.key,u=o.eles[0],f=i.hasCache(u,o.level);if(a[l]=null,f)continue;n.push(o);var h=e.getBoundingBox(u);e.getElement(u,h,t,o.level,Ea.dequeue)}return n},St.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(t),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=ni,r.updateItem(i),r.pop(),a[n]=null):i.eles.unmerge(t))},St.onDequeue=function(t){this.onDequeues.push(t)},St.offDequeue=function(t){xr(this.onDequeues,t)},St.setupDequeueing=du.setupDequeueing({deqRedrawThreshold:Mg,deqCost:Lg,deqAvgCost:Ag,deqNoDrawCost:Og,deqFastCost:Ng,deq:function(e,r,a){return e.dequeue(r,a)},onDeqd:function(e,r){for(var a=0;a=Pg||r>Qn)return null}a.validateLayersElesOrdering(r,t);var l=a.layersByLevel,u=Math.pow(2,r),f=l[r]=l[r]||[],h,c=a.levelIsComplete(r,t),d,v=function(){var B=function(re){if(a.validateLayersElesOrdering(re,t),a.levelIsComplete(re,t))return d=l[re],!0},z=function(re){if(!d)for(var q=r+re;tn<=q&&q<=Qn&&!B(q);q+=re);};z(1),z(-1);for(var M=f.length-1;M>=0;M--){var X=f[M];X.invalid&&xr(f,X)}};if(!c)v();else return f;var p=function(){if(!h){h=Yt();for(var B=0;BUg)return null;var X=a.makeLayer(h,r);if(z!=null){var F=f.indexOf(z)+1;f.splice(F,0,X)}else(B.insert===void 0||B.insert)&&f.unshift(X);return X};if(a.skipping&&!o)return null;for(var g=null,m=t.length/kg,b=!o,E=0;E=m||!ws(g.bb,N.boundingBox()))&&(g=y({insert:!0,after:g}),!g))return null;d||b?a.queueLayer(g,N):a.drawEleInLayer(g,N,r,e),g.eles.push(N),x[r]=g}return d||(b?null:f)},It.getEleLevelForLayerLevel=function(t,e){return t},It.drawEleInLayer=function(t,e,r,a){var n=this,i=this.renderer,s=t.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(r=n.getEleLevelForLayerLevel(r,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,r,Yg),i.setImgSmoothing(s,!0))},It.levelIsComplete=function(t,e){var r=this,a=r.layersByLevel[t];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length},It.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var a=0;a0){e=!0;break}}return e},It.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=gr(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(a,n,i){e.invalidateLayer(a)}))},It.invalidateLayer=function(t){if(this.lastInvalidationTime=gr(),!t.invalid){var e=t.level,r=t.eles,a=this.layersByLevel[e];xr(a,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(!(i&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var l;r&&(l=r,t.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,f=i?e.pstyle("line-opacity").value:1,h=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,d=e.pstyle("width").pfValue,v=e.pstyle("line-cap").value,p=u*f,y=u*f,g=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;h==="straight-triangle"?(s.eleStrokeStyle(t,e,M),s.drawEdgeTrianglePath(e,t,o.allpts)):(t.lineWidth=d,t.lineCap=v,s.eleStrokeStyle(t,e,M),s.drawEdgePath(e,t,o.allpts,c),t.lineCap="butt")},m=function(){n&&s.drawEdgeOverlay(t,e)},b=function(){n&&s.drawEdgeUnderlay(t,e)},E=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;s.drawArrowheads(t,e,M)},N=function(){s.drawElementText(t,e,null,a)};t.lineJoin="round";var A=e.pstyle("ghost").value==="yes";if(A){var x=e.pstyle("ghost-offset-x").pfValue,R=e.pstyle("ghost-offset-y").pfValue,C=e.pstyle("ghost-opacity").value,B=p*C;t.translate(x,R),g(B),E(B),t.translate(-x,-R)}b(),g(),E(),m(),N(),r&&t.translate(l.x1,l.y1)}};var xu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,f=a.pstyle("".concat(e,"-color")).value;r.lineWidth=u,o.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",i.colorStrokeStyle(r,f[0],f[1],f[2],n),i.drawEdgePath(a,r,o.allpts,"solid")}}}};br.drawEdgeOverlay=xu("overlay"),br.drawEdgeUnderlay=xu("underlay"),br.drawEdgePath=function(t,e,r,a){var n=t._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(l){var h=r.join("$"),c=n.pathCacheKey&&n.pathCacheKey===h;c?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=h,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var l=s.getLabelJustification(e);t.textAlign=l,t.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,f=e.pstyle("label"),h=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!f||!f.value)&&(!h||!h.value)&&(!c||!c.value))return;t.textAlign="center",t.textBaseline="bottom"}var d=!r,v;r&&(v=r,t.translate(-v.x1,-v.y1)),n==null?(s.drawText(t,e,null,d,i),e.isEdge()&&(s.drawText(t,e,"source",d,i),s.drawText(t,e,"target",d,i))):s.drawText(t,e,n,d,i),r&&t.translate(v.x1,v.y1)},Ur.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=a+" "+s+" "+n+" "+i,t.lineJoin="round",this.colorFillStyle(t,u[0],u[1],u[2],o),this.colorStrokeStyle(t,f[0],f[1],f[2],l)};function tp(t,e,r,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5;t.beginPath(),t.moveTo(e+i,r),t.lineTo(e+a-i,r),t.quadraticCurveTo(e+a,r,e+a,r+i),t.lineTo(e+a,r+n-i),t.quadraticCurveTo(e+a,r+n,e+a-i,r+n),t.lineTo(e+i,r+n),t.quadraticCurveTo(e,r+n,e,r+n-i),t.lineTo(e,r+i),t.quadraticCurveTo(e,r,e+i,r),t.closePath(),t.fill()}Ur.getTextAngle=function(t,e){var r,a=t._private,n=a.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),o=tr(n,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?o:0:s.strValue==="none"?r=0:r=s.pfValue,r},Ur.drawText=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var l=tr(s,"labelX",r),u=tr(s,"labelY",r),f,h,c=this.getLabelText(e,r);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(t,e,n);var d=r?r+"-":"",v=tr(s,"labelWidth",r),p=tr(s,"labelHeight",r),y=e.pstyle(d+"text-margin-x").pfValue,g=e.pstyle(d+"text-margin-y").pfValue,m=e.isEdge(),b=e.pstyle("text-halign").value,E=e.pstyle("text-valign").value;m&&(b="center",E="center"),l+=y,u+=g;var N;switch(a?N=this.getTextAngle(e,r):N=0,N!==0&&(f=l,h=u,t.translate(f,h),t.rotate(N),l=0,u=0),E){case"top":break;case"center":u+=p/2;break;case"bottom":u+=p;break}var A=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,R=e.pstyle("text-border-width").pfValue,C=e.pstyle("text-background-padding").pfValue;if(A>0||R>0&&x>0){var B=l-C;switch(b){case"left":B-=v;break;case"center":B-=v/2;break}var z=u-p-C,M=v+2*C,X=p+2*C;if(A>0){var F=t.fillStyle,re=e.pstyle("text-background-color").value;t.fillStyle="rgba("+re[0]+","+re[1]+","+re[2]+","+A*o+")";var q=e.pstyle("text-background-shape").strValue;q.indexOf("round")===0?tp(t,B,z,M,X,2):t.fillRect(B,z,M,X),t.fillStyle=F}if(R>0&&x>0){var Z=t.strokeStyle,ie=t.lineWidth,ue=e.pstyle("text-border-color").value,ge=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+ue[0]+","+ue[1]+","+ue[2]+","+x*o+")",t.lineWidth=R,t.setLineDash)switch(ge){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=R/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(t.strokeRect(B,z,M,X),ge==="double"){var se=R/2;t.strokeRect(B+se,z+se,M-se*2,X-se*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=ie,t.strokeStyle=Z}}var ve=2*e.pstyle("text-outline-width").pfValue;if(ve>0&&(t.lineWidth=ve),e.pstyle("text-wrap").value==="wrap"){var ye=tr(s,"labelWrapCachedLines",r),Te=tr(s,"labelLineHeight",r),be=v/2,me=this.getLabelJustification(e);switch(me==="auto"||(b==="left"?me==="left"?l+=-v:me==="center"&&(l+=-be):b==="center"?me==="left"?l+=-be:me==="right"&&(l+=be):b==="right"&&(me==="center"?l+=be:me==="right"&&(l+=v))),E){case"top":u-=(ye.length-1)*Te;break;case"center":case"bottom":u-=(ye.length-1)*Te;break}for(var ae=0;ae0&&t.strokeText(ye[ae],l,u),t.fillText(ye[ae],l,u),u+=Te}else ve>0&&t.strokeText(c,l,u),t.fillText(c,l,u);N!==0&&(t.rotate(-N),t.translate(-f,-h))}}};var wa={};wa.drawNode=function(t,e,r){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,l,u=e._private,f=u.rscratch,h=e.position();if(!(!I(h.x)||!I(h.y))&&!(i&&!e.visible())){var c=i?e.effectiveOpacity():1,d=s.usePaths(),v,p=!1,y=e.padding();o=e.width()+2*y,l=e.height()+2*y;var g;r&&(g=r,t.translate(-g.x1,-g.y1));for(var m=e.pstyle("background-image"),b=m.value,E=new Array(b.length),N=new Array(b.length),A=0,x=0;x0&&arguments[0]!==void 0?arguments[0]:X;s.eleFillStyle(t,e,ke)},ie=function(){var ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:q;s.colorStrokeStyle(t,F[0],F[1],F[2],ke)},ue=e.pstyle("shape").strValue,ge=e.pstyle("shape-polygon-points").pfValue;if(d){t.translate(h.x,h.y);var se=s.nodePathCache=s.nodePathCache||[],ve=fs(ue==="polygon"?ue+","+ge.join(","):ue,""+l,""+o),ye=se[ve];ye!=null?(v=ye,p=!0,f.pathCache=v):(v=new Path2D,se[ve]=f.pathCache=v)}var Te=function(){if(!p){var ke=h;d&&(ke={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(v||t,ke.x,ke.y,o,l)}d?t.fill(v):t.fill()},be=function(){for(var ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,je=u.backgrounding,Ze=0,Ye=0;Ye0&&arguments[0]!==void 0?arguments[0]:!1,ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasPie(e)&&(s.drawPie(t,e,ze),ke&&(d||s.nodeShapes[s.getNodeShape(e)].draw(t,h.x,h.y,o,l)))},ae=function(){var ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,ze=(z>0?z:-z)*ke,je=z>0?0:255;z!==0&&(s.colorFillStyle(t,je,je,je,ze),d?t.fill(v):t.fill())},xe=function(){if(M>0){if(t.lineWidth=M,t.lineCap="butt",t.setLineDash)switch(re){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}if(d?t.stroke(v):t.stroke(),re==="double"){t.lineWidth=M/3;var ke=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",d?t.stroke(v):t.stroke(),t.globalCompositeOperation=ke}t.setLineDash&&t.setLineDash([])}},Ce=function(){n&&s.drawNodeOverlay(t,e,h,o,l)},Oe=function(){n&&s.drawNodeUnderlay(t,e,h,o,l)},Me=function(){s.drawElementText(t,e,null,a)},He=e.pstyle("ghost").value==="yes";if(He){var We=e.pstyle("ghost-offset-x").pfValue,Re=e.pstyle("ghost-offset-y").pfValue,Ie=e.pstyle("ghost-opacity").value,Ge=Ie*c;t.translate(We,Re),Z(Ie*X),Te(),be(Ge,!0),ie(Ie*q),xe(),me(z!==0||M!==0),be(Ge,!1),ae(Ge),t.translate(-We,-Re)}d&&t.translate(-h.x,-h.y),Oe(),d&&t.translate(h.x,h.y),Z(),Te(),be(c,!0),ie(),xe(),me(z!==0||M!==0),be(c,!1),ae(),d&&t.translate(-h.x,-h.y),Me(),Ce(),r&&t.translate(g.x1,g.y1)}};var Tu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a,n,i,s){var o=this;if(a.visible()){var l=a.pstyle("".concat(e,"-padding")).pfValue,u=a.pstyle("".concat(e,"-opacity")).value,f=a.pstyle("".concat(e,"-color")).value,h=a.pstyle("".concat(e,"-shape")).value;if(u>0){if(n=n||a.position(),i==null||s==null){var c=a.padding();i=a.width()+2*c,s=a.height()+2*c}o.colorFillStyle(r,f[0],f[1],f[2],u),o.nodeShapes[h].draw(r,n.x,n.y,i+l*2,s+l*2),r.fill()}}}};wa.drawNodeOverlay=Tu("overlay"),wa.drawNodeUnderlay=Tu("underlay"),wa.hasPie=function(t){return t=t[0],t._private.hasPie},wa.drawPie=function(t,e,r,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=a.x,o=a.y,l=e.width(),u=e.height(),f=Math.min(l,u)/2,h=0,c=this.usePaths();c&&(s=0,o=0),i.units==="%"?f=f*i.pfValue:i.pfValue!==void 0&&(f=i.pfValue/2);for(var d=1;d<=n.pieBackgroundN;d++){var v=e.pstyle("pie-"+d+"-background-size").value,p=e.pstyle("pie-"+d+"-background-color").value,y=e.pstyle("pie-"+d+"-background-opacity").value*r,g=v/100;g+h>1&&(g=1-h);var m=1.5*Math.PI+2*Math.PI*h,b=2*Math.PI*g,E=m+b;v===0||h>=1||h+g>1||(t.beginPath(),t.moveTo(s,o),t.arc(s,o,f,m,E),t.closePath(),this.colorFillStyle(t,p[0],p[1],p[2],y),t.fill(),h+=g)}};var Kt={},rp=100;Kt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/e},Kt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,a,n=0;ns.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!h&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),E=n!==void 0?n:b,N=l.pan(),A={x:N.x,y:N.y},x={zoom:b,pan:{x:N.x,y:N.y}},R=s.prevViewport,C=R===void 0||x.zoom!==R.zoom||x.pan.x!==R.pan.x||x.pan.y!==R.pan.y;!C&&!(p&&!v)&&(s.motionBlurPxRatio=1),i&&(A=i),E*=o,A.x*=o,A.y*=o;var B=s.getCachedZSortedEles();function z(Re,Ie,Ge,Fe,ke){var ze=Re.globalCompositeOperation;Re.globalCompositeOperation="destination-out",s.colorFillStyle(Re,255,255,255,s.motionBlurTransparency),Re.fillRect(Ie,Ge,Fe,ke),Re.globalCompositeOperation=ze}function M(Re,Ie){var Ge,Fe,ke,ze;!s.clearingMotionBlur&&(Re===u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||Re===u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(Ge={x:N.x*d,y:N.y*d},Fe=b*d,ke=s.canvasWidth*d,ze=s.canvasHeight*d):(Ge=A,Fe=E,ke=s.canvasWidth,ze=s.canvasHeight),Re.setTransform(1,0,0,1,0,0),Ie==="motionBlur"?z(Re,0,0,ke,ze):!e&&(Ie===void 0||Ie)&&Re.clearRect(0,0,ke,ze),r||(Re.translate(Ge.x,Ge.y),Re.scale(Fe,Fe)),i&&Re.translate(i.x,i.y),n&&Re.scale(n,n)}if(h||(s.textureDrawLastFrame=!1),h){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=l.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var X=s.data.bufferContexts[s.TEXTURE_BUFFER];X.setTransform(1,0,0,1,0,0),X.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:X,drawOnlyNodeLayer:!0,forcedPxRatio:o*s.textureMult});var x=s.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:s.canvasWidth,height:s.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var F=u.contexts[s.NODE],re=s.textureCache.texture,x=s.textureCache.viewport;F.setTransform(1,0,0,1,0,0),c?z(F,0,0,x.width,x.height):F.clearRect(0,0,x.width,x.height);var q=m.core("outside-texture-bg-color").value,Z=m.core("outside-texture-bg-opacity").value;s.colorFillStyle(F,q[0],q[1],q[2],Z),F.fillRect(0,0,x.width,x.height);var b=l.zoom();M(F,!1),F.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/o,x.height/x.zoom/o),F.drawImage(re,x.mpan.x,x.mpan.y,x.width/x.zoom/o,x.height/x.zoom/o)}else s.textureOnViewport&&!e&&(s.textureCache=null);var ie=l.extent(),ue=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),ge=s.hideEdgesOnViewport&&ue,se=[];if(se[s.NODE]=!f[s.NODE]&&c&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,se[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),se[s.DRAG]=!f[s.DRAG]&&c&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,se[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||a||se[s.NODE]){var ve=c&&!se[s.NODE]&&d!==1,F=e||(ve?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),ye=c&&!ve?"motionBlur":void 0;M(F,ye),ge?s.drawCachedNodes(F,B.nondrag,o,ie):s.drawLayeredElements(F,B.nondrag,o,ie),s.debug&&s.drawDebugPoints(F,B.nondrag),!r&&!c&&(f[s.NODE]=!1)}if(!a&&(f[s.DRAG]||r||se[s.DRAG])){var ve=c&&!se[s.DRAG]&&d!==1,F=e||(ve?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]);M(F,c&&!ve?"motionBlur":void 0),ge?s.drawCachedNodes(F,B.drag,o,ie):s.drawCachedElements(F,B.drag,o,ie),s.debug&&s.drawDebugPoints(F,B.drag),!r&&!c&&(f[s.DRAG]=!1)}if(s.showFps||!a&&f[s.SELECT_BOX]&&!r){var F=e||u.contexts[s.SELECT_BOX];if(M(F),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var b=s.cy.zoom(),Te=m.core("selection-box-border-width").value/b;F.lineWidth=Te,F.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",F.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),Te>0&&(F.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",F.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){var b=s.cy.zoom(),be=u.bgActivePosistion;F.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",F.beginPath(),F.arc(be.x,be.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),F.fill()}var me=s.lastRedrawTime;if(s.showFps&&me){me=Math.round(me);var ae=Math.round(1e3/me);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.lineWidth=1,F.fillText("1 frame = "+me+" ms = "+ae+" fps",0,20);var xe=60;F.strokeRect(0,30,250,20),F.fillRect(0,30,250*Math.min(ae/xe,1),20)}r||(f[s.SELECT_BOX]=!1)}if(c&&d!==1){var Ce=u.contexts[s.NODE],Oe=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],Me=u.contexts[s.DRAG],He=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],We=function(Ie,Ge,Fe){Ie.setTransform(1,0,0,1,0,0),Fe||!g?Ie.clearRect(0,0,s.canvasWidth,s.canvasHeight):z(Ie,0,0,s.canvasWidth,s.canvasHeight);var ke=d;Ie.drawImage(Ge,0,0,s.canvasWidth*ke,s.canvasHeight*ke,0,0,s.canvasWidth,s.canvasHeight)};(f[s.NODE]||se[s.NODE])&&(We(Ce,Oe,se[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||se[s.DRAG])&&(We(Me,He,se[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=x,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),c&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!h,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},rp)),e||l.emit("render")};var Ir={};Ir.drawPolygonPath=function(t,e,r,a,n,i){var s=a/2,o=n/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*i[0],r+o*i[1]);for(var l=1;l0&&s>0){d.clearRect(0,0,i,s),d.globalCompositeOperation="source-over";var v=this.getCachedZSortedEles();if(t.full)d.translate(-a.x1*u,-a.y1*u),d.scale(u,u),this.drawElements(d,v),d.scale(1/u,1/u),d.translate(a.x1*u,a.y1*u);else{var p=e.pan(),y={x:p.x*u,y:p.y*u};u*=e.zoom(),d.translate(y.x,y.y),d.scale(u,u),this.drawElements(d,v),d.scale(1/u,1/u),d.translate(-y.x,-y.y)}t.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=t.bg,d.rect(0,0,i,s),d.fill())}return c};function ap(t,e){for(var r=atob(t),a=new ArrayBuffer(r.length),n=new Uint8Array(a),i=0;i"u"?"undefined":ee(OffscreenCanvas))!=="undefined"?r=new OffscreenCanvas(t,e):(r=document.createElement("canvas"),r.width=t,r.height=e),r},[bu,cr,br,_i,Ur,wa,Kt,Ir,rn,Ou].forEach(function(t){Ue(st,t)});var sp=[{name:"null",impl:tu},{name:"base",impl:vu},{name:"canvas",impl:np}],op=[{type:"layout",extensions:dg},{type:"renderer",extensions:sp}],Mu={},Iu={};function Ru(t,e,r){var a=r,n=function(R){ut("Can not register `"+e+"` for `"+t+"` since `"+R+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(Qa.prototype[e])return n(e);Qa.prototype[e]=r}else if(t==="collection"){if(Nt.prototype[e])return n(e);Nt.prototype[e]=r}else if(t==="layout"){for(var i=function(R){this.options=R,r.call(this,R),L(this._private)||(this._private={}),this._private.cy=R.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(r.prototype),o=[],l=0;l$&&(this.rect.x-=(this.labelWidth-$)/2,this.setWidth(this.labelWidth)),this.labelHeight>_&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-_)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-_),this.setHeight(this.labelHeight))}}},P.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==T.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},P.prototype.transform=function(D){var $=this.rect.x;$>S.WORLD_BOUNDARY?$=S.WORLD_BOUNDARY:$<-S.WORLD_BOUNDARY&&($=-S.WORLD_BOUNDARY);var _=this.rect.y;_>S.WORLD_BOUNDARY?_=S.WORLD_BOUNDARY:_<-S.WORLD_BOUNDARY&&(_=-S.WORLD_BOUNDARY);var Q=new U($,_),ne=D.inverseTransformPoint(Q);this.setLocation(ne.x,ne.y)},P.prototype.getLeft=function(){return this.rect.x},P.prototype.getRight=function(){return this.rect.x+this.rect.width},P.prototype.getTop=function(){return this.rect.y},P.prototype.getBottom=function(){return this.rect.y+this.rect.height},P.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},ee.exports=P},function(ee,ce,H){function O(T,w){T==null&&w==null?(this.x=0,this.y=0):(this.x=T,this.y=w)}O.prototype.getX=function(){return this.x},O.prototype.getY=function(){return this.y},O.prototype.setX=function(T){this.x=T},O.prototype.setY=function(T){this.y=T},O.prototype.getDifference=function(T){return new DimensionD(this.x-T.x,this.y-T.y)},O.prototype.getCopy=function(){return new O(this.x,this.y)},O.prototype.translate=function(T){return this.x+=T.width,this.y+=T.height,this},ee.exports=O},function(ee,ce,H){var O=H(2),T=H(10),w=H(0),S=H(6),G=H(3),U=H(1),P=H(13),K=H(12),D=H(11);function $(Q,ne,oe){O.call(this,oe),this.estimatedSize=T.MIN_VALUE,this.margin=w.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=Q,ne!=null&&ne instanceof S?this.graphManager=ne:ne!=null&&ne instanceof Layout&&(this.graphManager=ne.graphManager)}$.prototype=Object.create(O.prototype);for(var _ in O)$[_]=O[_];$.prototype.getNodes=function(){return this.nodes},$.prototype.getEdges=function(){return this.edges},$.prototype.getGraphManager=function(){return this.graphManager},$.prototype.getParent=function(){return this.parent},$.prototype.getLeft=function(){return this.left},$.prototype.getRight=function(){return this.right},$.prototype.getTop=function(){return this.top},$.prototype.getBottom=function(){return this.bottom},$.prototype.isConnected=function(){return this.isConnected},$.prototype.add=function(Q,ne,oe){if(ne==null&&oe==null){var J=Q;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(J)>-1)throw"Node already in graph!";return J.owner=this,this.getNodes().push(J),J}else{var j=Q;if(!(this.getNodes().indexOf(ne)>-1&&this.getNodes().indexOf(oe)>-1))throw"Source or target not in graph!";if(!(ne.owner==oe.owner&&ne.owner==this))throw"Both owners must be this graph!";return ne.owner!=oe.owner?null:(j.source=ne,j.target=oe,j.isInterGraph=!1,this.getEdges().push(j),ne.edges.push(j),oe!=ne&&oe.edges.push(j),j)}},$.prototype.remove=function(Q){var ne=Q;if(Q instanceof G){if(ne==null)throw"Node is null!";if(!(ne.owner!=null&&ne.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var oe=ne.edges.slice(),J,j=oe.length,Y=0;Y-1&&V>-1))throw"Source and/or target doesn't know this edge!";J.source.edges.splice(L,1),J.target!=J.source&&J.target.edges.splice(V,1);var te=J.source.owner.getEdges().indexOf(J);if(te==-1)throw"Not in owner's edge list!";J.source.owner.getEdges().splice(te,1)}},$.prototype.updateLeftTop=function(){for(var Q=T.MAX_VALUE,ne=T.MAX_VALUE,oe,J,j,Y=this.getNodes(),te=Y.length,L=0;Loe&&(Q=oe),ne>J&&(ne=J)}return Q==T.MAX_VALUE?null:(Y[0].getParent().paddingLeft!=null?j=Y[0].getParent().paddingLeft:j=this.margin,this.left=ne-j,this.top=Q-j,new K(this.left,this.top))},$.prototype.updateBounds=function(Q){for(var ne=T.MAX_VALUE,oe=-T.MAX_VALUE,J=T.MAX_VALUE,j=-T.MAX_VALUE,Y,te,L,V,I,W=this.nodes,fe=W.length,de=0;deY&&(ne=Y),oeL&&(J=L),jY&&(ne=Y),oeL&&(J=L),j=this.nodes.length){var fe=0;oe.forEach(function(de){de.owner==Q&&fe++}),fe==this.nodes.length&&(this.isConnected=!0)}},ee.exports=$},function(ee,ce,H){var O,T=H(1);function w(S){O=H(5),this.layout=S,this.graphs=[],this.edges=[]}w.prototype.addRoot=function(){var S=this.layout.newGraph(),G=this.layout.newNode(null),U=this.add(S,G);return this.setRootGraph(U),this.rootGraph},w.prototype.add=function(S,G,U,P,K){if(U==null&&P==null&&K==null){if(S==null)throw"Graph is null!";if(G==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(G.child!=null)throw"Already has a child!";return S.parent=G,G.child=S,S}else{K=U,P=G,U=S;var D=P.getOwner(),$=K.getOwner();if(!(D!=null&&D.getGraphManager()==this))throw"Source not in this graph mgr!";if(!($!=null&&$.getGraphManager()==this))throw"Target not in this graph mgr!";if(D==$)return U.isInterGraph=!1,D.add(U,P,K);if(U.isInterGraph=!0,U.source=P,U.target=K,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}},w.prototype.remove=function(S){if(S instanceof O){var G=S;if(G.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(G==this.rootGraph||G.parent!=null&&G.parent.graphManager==this))throw"Invalid parent node!";var U=[];U=U.concat(G.getEdges());for(var P,K=U.length,D=0;D=S.getRight()?G[0]+=Math.min(S.getX()-w.getX(),w.getRight()-S.getRight()):S.getX()<=w.getX()&&S.getRight()>=w.getRight()&&(G[0]+=Math.min(w.getX()-S.getX(),S.getRight()-w.getRight())),w.getY()<=S.getY()&&w.getBottom()>=S.getBottom()?G[1]+=Math.min(S.getY()-w.getY(),w.getBottom()-S.getBottom()):S.getY()<=w.getY()&&S.getBottom()>=w.getBottom()&&(G[1]+=Math.min(w.getY()-S.getY(),S.getBottom()-w.getBottom()));var K=Math.abs((S.getCenterY()-w.getCenterY())/(S.getCenterX()-w.getCenterX()));S.getCenterY()===w.getCenterY()&&S.getCenterX()===w.getCenterX()&&(K=1);var D=K*G[0],$=G[1]/K;G[0]<$?$=G[0]:D=G[1],G[0]=-1*P[0]*($/2+U),G[1]=-1*P[1]*(D/2+U)},T.decideDirectionsForOverlappingNodes=function(w,S,G){w.getCenterX()D)return G[0]=U,G[1]=_,G[2]=K,G[3]=W,!1;if(PK)return G[0]=$,G[1]=P,G[2]=V,G[3]=D,!1;if(UK?(G[0]=ne,G[1]=oe,Ne=!0):(G[0]=Q,G[1]=_,Ne=!0):tt===Pe&&(U>K?(G[0]=$,G[1]=_,Ne=!0):(G[0]=J,G[1]=oe,Ne=!0)),-vt===Pe?K>U?(G[2]=I,G[3]=W,_e=!0):(G[2]=V,G[3]=L,_e=!0):vt===Pe&&(K>U?(G[2]=te,G[3]=L,_e=!0):(G[2]=fe,G[3]=W,_e=!0)),Ne&&_e)return!1;if(U>K?P>D?(Ve=this.getCardinalDirection(tt,Pe,4),Xe=this.getCardinalDirection(vt,Pe,2)):(Ve=this.getCardinalDirection(-tt,Pe,3),Xe=this.getCardinalDirection(-vt,Pe,1)):P>D?(Ve=this.getCardinalDirection(-tt,Pe,1),Xe=this.getCardinalDirection(-vt,Pe,3)):(Ve=this.getCardinalDirection(tt,Pe,2),Xe=this.getCardinalDirection(vt,Pe,4)),!Ne)switch(Ve){case 1:ft=_,rt=U+-Y/Pe,G[0]=rt,G[1]=ft;break;case 2:rt=J,ft=P+j*Pe,G[0]=rt,G[1]=ft;break;case 3:ft=oe,rt=U+Y/Pe,G[0]=rt,G[1]=ft;break;case 4:rt=ne,ft=P+-j*Pe,G[0]=rt,G[1]=ft;break}if(!_e)switch(Xe){case 1:et=L,at=K+-Ae/Pe,G[2]=at,G[3]=et;break;case 2:at=fe,et=D+de*Pe,G[2]=at,G[3]=et;break;case 3:et=W,at=K+Ae/Pe,G[2]=at,G[3]=et;break;case 4:at=I,et=D+-de*Pe,G[2]=at,G[3]=et;break}}return!1},T.getCardinalDirection=function(w,S,G){return w>S?G:1+G%4},T.getIntersection=function(w,S,G,U){if(U==null)return this.getIntersection2(w,S,G);var P=w.x,K=w.y,D=S.x,$=S.y,_=G.x,Q=G.y,ne=U.x,oe=U.y,J=void 0,j=void 0,Y=void 0,te=void 0,L=void 0,V=void 0,I=void 0,W=void 0,fe=void 0;return Y=$-K,L=P-D,I=D*K-P*$,te=oe-Q,V=_-ne,W=ne*Q-_*oe,fe=Y*V-te*L,fe===0?null:(J=(L*W-V*I)/fe,j=(te*I-Y*W)/fe,new O(J,j))},T.angleOfVector=function(w,S,G,U){var P=void 0;return w!==G?(P=Math.atan((U-S)/(G-w)),G0?1:T<0?-1:0},O.floor=function(T){return T<0?Math.ceil(T):Math.floor(T)},O.ceil=function(T){return T<0?Math.floor(T):Math.ceil(T)},ee.exports=O},function(ee,ce,H){function O(){}O.MAX_VALUE=2147483647,O.MIN_VALUE=-2147483648,ee.exports=O},function(ee,ce,H){var O=function(){function P(K,D){for(var $=0;$"u"?"undefined":O(w);return w==null||S!="object"&&S!="function"},ee.exports=T},function(ee,ce,H){function O(_){if(Array.isArray(_)){for(var Q=0,ne=Array(_.length);Q<_.length;Q++)ne[Q]=_[Q];return ne}else return Array.from(_)}var T=H(0),w=H(6),S=H(3),G=H(1),U=H(5),P=H(4),K=H(17),D=H(27);function $(_){D.call(this),this.layoutQuality=T.QUALITY,this.createBendsAsNeeded=T.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=T.DEFAULT_INCREMENTAL,this.animationOnLayout=T.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=T.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=T.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=T.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new w(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,_!=null&&(this.isRemoteUse=_)}$.RANDOM_SEED=1,$.prototype=Object.create(D.prototype),$.prototype.getGraphManager=function(){return this.graphManager},$.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},$.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},$.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},$.prototype.newGraphManager=function(){var _=new w(this);return this.graphManager=_,_},$.prototype.newGraph=function(_){return new U(null,this.graphManager,_)},$.prototype.newNode=function(_){return new S(this.graphManager,_)},$.prototype.newEdge=function(_){return new G(null,null,_)},$.prototype.checkLayoutSuccess=function(){return this.graphManager.getRoot()==null||this.graphManager.getRoot().getNodes().length==0||this.graphManager.includesInvalidEdge()},$.prototype.runLayout=function(){this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters();var _;return this.checkLayoutSuccess()?_=!1:_=this.layout(),T.ANIMATE==="during"?!1:(_&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,_)},$.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},$.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var _=this.graphManager.getAllEdges(),Q=0;Q<_.length;Q++)_[Q];for(var ne=this.graphManager.getRoot().getNodes(),Q=0;Q0&&Q;){for(Y.push(L[0]);Y.length>0&&Q;){var V=Y[0];Y.splice(0,1),j.add(V);for(var I=V.getEdges(),J=0;J-1&&L.splice(Ae,1)}j=new Set,te=new Map}}return _},$.prototype.createDummyNodesForBendpoints=function(_){for(var Q=[],ne=_.source,oe=this.graphManager.calcLowestCommonAncestor(_.source,_.target),J=0;J<_.bendpoints.length;J++){var j=this.newNode(null);j.setRect(new Point(0,0),new Dimension(1,1)),oe.add(j);var Y=this.newEdge(null);this.graphManager.add(Y,ne,j),Q.add(j),ne=j}var Y=this.newEdge(null);return this.graphManager.add(Y,ne,_.target),this.edgeToDummyNodes.set(_,Q),_.isInterGraph()?this.graphManager.remove(_):oe.remove(_),Q},$.prototype.createBendpointsFromDummyNodes=function(){var _=[];_=_.concat(this.graphManager.getAllEdges()),_=[].concat(O(this.edgeToDummyNodes.keys())).concat(_);for(var Q=0;Q<_.length;Q++){var ne=_[Q];if(ne.bendpoints.length>0){for(var oe=this.edgeToDummyNodes.get(ne),J=0;J=0&&Q.splice(W,1);var fe=te.getNeighborsList();fe.forEach(function(Ne){if(ne.indexOf(Ne)<0){var _e=oe.get(Ne),tt=_e-1;tt==1&&V.push(Ne),oe.set(Ne,tt)}})}ne=ne.concat(V),(Q.length==1||Q.length==2)&&(J=!0,j=Q[0])}return j},$.prototype.setGraphManager=function(_){this.graphManager=_},ee.exports=$},function(ee,ce,H){function O(){}O.seed=1,O.x=0,O.nextDouble=function(){return O.x=Math.sin(O.seed++)*1e4,O.x-Math.floor(O.x)},ee.exports=O},function(ee,ce,H){var O=H(4);function T(w,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}T.prototype.getWorldOrgX=function(){return this.lworldOrgX},T.prototype.setWorldOrgX=function(w){this.lworldOrgX=w},T.prototype.getWorldOrgY=function(){return this.lworldOrgY},T.prototype.setWorldOrgY=function(w){this.lworldOrgY=w},T.prototype.getWorldExtX=function(){return this.lworldExtX},T.prototype.setWorldExtX=function(w){this.lworldExtX=w},T.prototype.getWorldExtY=function(){return this.lworldExtY},T.prototype.setWorldExtY=function(w){this.lworldExtY=w},T.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},T.prototype.setDeviceOrgX=function(w){this.ldeviceOrgX=w},T.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},T.prototype.setDeviceOrgY=function(w){this.ldeviceOrgY=w},T.prototype.getDeviceExtX=function(){return this.ldeviceExtX},T.prototype.setDeviceExtX=function(w){this.ldeviceExtX=w},T.prototype.getDeviceExtY=function(){return this.ldeviceExtY},T.prototype.setDeviceExtY=function(w){this.ldeviceExtY=w},T.prototype.transformX=function(w){var S=0,G=this.lworldExtX;return G!=0&&(S=this.ldeviceOrgX+(w-this.lworldOrgX)*this.ldeviceExtX/G),S},T.prototype.transformY=function(w){var S=0,G=this.lworldExtY;return G!=0&&(S=this.ldeviceOrgY+(w-this.lworldOrgY)*this.ldeviceExtY/G),S},T.prototype.inverseTransformX=function(w){var S=0,G=this.ldeviceExtX;return G!=0&&(S=this.lworldOrgX+(w-this.ldeviceOrgX)*this.lworldExtX/G),S},T.prototype.inverseTransformY=function(w){var S=0,G=this.ldeviceExtY;return G!=0&&(S=this.lworldOrgY+(w-this.ldeviceOrgY)*this.lworldExtY/G),S},T.prototype.inverseTransformPoint=function(w){var S=new O(this.inverseTransformX(w.x),this.inverseTransformY(w.y));return S},ee.exports=T},function(ee,ce,H){function O(D){if(Array.isArray(D)){for(var $=0,_=Array(D.length);$w.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*w.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(D-w.ADAPTATION_LOWER_NODE_LIMIT)/(w.ADAPTATION_UPPER_NODE_LIMIT-w.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-w.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=w.MAX_NODE_DISPLACEMENT_INCREMENTAL):(D>w.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(w.COOLING_ADAPTATION_FACTOR,1-(D-w.ADAPTATION_LOWER_NODE_LIMIT)/(w.ADAPTATION_UPPER_NODE_LIMIT-w.ADAPTATION_LOWER_NODE_LIMIT)*(1-w.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=w.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},P.prototype.calcSpringForces=function(){for(var D=this.getAllEdges(),$,_=0;_0&&arguments[0]!==void 0?arguments[0]:!0,$=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,_,Q,ne,oe,J=this.getAllNodes(),j;if(this.useFRGridVariant)for(this.totalIterations%w.GRID_CALCULATION_CHECK_PERIOD==1&&D&&this.updateGrid(),j=new Set,_=0;_Y||j>Y)&&(D.gravitationForceX=-this.gravityConstant*ne,D.gravitationForceY=-this.gravityConstant*oe)):(Y=$.getEstimatedSize()*this.compoundGravityRangeFactor,(J>Y||j>Y)&&(D.gravitationForceX=-this.gravityConstant*ne*this.compoundGravityConstant,D.gravitationForceY=-this.gravityConstant*oe*this.compoundGravityConstant))},P.prototype.isConverged=function(){var D,$=!1;return this.totalIterations>this.maxIterations/3&&($=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),D=this.totalDisplacement=J.length||Y>=J[0].length)){for(var te=0;teP}}]),G}();ee.exports=S},function(ee,ce,H){var O=function(){function S(G,U){for(var P=0;P2&&arguments[2]!==void 0?arguments[2]:1,K=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,D=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;T(this,S),this.sequence1=G,this.sequence2=U,this.match_score=P,this.mismatch_penalty=K,this.gap_penalty=D,this.iMax=G.length+1,this.jMax=U.length+1,this.grid=new Array(this.iMax);for(var $=0;$=0;G--){var U=this.listeners[G];U.event===w&&U.callback===S&&this.listeners.splice(G,1)}},T.emit=function(w,S){for(var G=0;GU.coolingFactor*U.maxNodeDisplacement&&(this.displacementX=U.coolingFactor*U.maxNodeDisplacement*w.sign(this.displacementX)),Math.abs(this.displacementY)>U.coolingFactor*U.maxNodeDisplacement&&(this.displacementY=U.coolingFactor*U.maxNodeDisplacement*w.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,P){for(var K=this.getChild().getNodes(),D,$=0;$0)this.positionNodesRadially(L);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var V=new Set(this.getAllNodes()),I=this.nodesWithGravity.filter(function(W){return V.has(W)});this.graphManager.setAllNodesToApplyGravitation(I),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},Y.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%K.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 L=new Set(this.getAllNodes()),V=this.nodesWithGravity.filter(function(fe){return L.has(fe)});this.graphManager.setAllNodesToApplyGravitation(V),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=K.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=K.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var I=!this.isTreeGrowing&&!this.isGrowthFinished,W=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(I,W),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},Y.prototype.getPositionsData=function(){for(var L=this.graphManager.getAllNodes(),V={},I=0;I1){var Ne;for(Ne=0;NeW&&(W=Math.floor(Ae.y)),de=Math.floor(Ae.x+P.DEFAULT_COMPONENT_SEPERATION)}this.transform(new _(D.WORLD_CENTER_X-Ae.x/2,D.WORLD_CENTER_Y-Ae.y/2))},Y.radialLayout=function(L,V,I){var W=Math.max(this.maxDiagonalInTree(L),P.DEFAULT_RADIAL_SEPARATION);Y.branchRadialLayout(V,null,0,359,0,W);var fe=J.calculateBounds(L),de=new j;de.setDeviceOrgX(fe.getMinX()),de.setDeviceOrgY(fe.getMinY()),de.setWorldOrgX(I.x),de.setWorldOrgY(I.y);for(var Ae=0;Ae1;){var et=at[0];at.splice(0,1);var yt=Pe.indexOf(et);yt>=0&&Pe.splice(yt,1),rt--,Ve--}V!=null?ft=(Pe.indexOf(at[0])+1)%rt:ft=0;for(var wt=Math.abs(W-I)/Ve,Pt=ft;Xe!=Ve;Pt=++Pt%rt){var dt=Pe[Pt].getOtherEnd(L);if(dt!=V){var dr=(I+Xe*wt)%360,qt=(dr+wt)%360;Y.branchRadialLayout(dt,L,dr,qt,fe+de,de),Xe++}}},Y.maxDiagonalInTree=function(L){for(var V=ne.MIN_VALUE,I=0;IV&&(V=fe)}return V},Y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},Y.prototype.groupZeroDegreeMembers=function(){var L=this,V={};this.memberGroups={},this.idToDummyNode={};for(var I=[],W=this.graphManager.getAllNodes(),fe=0;fe"u"&&(V[Ne]=[]),V[Ne]=V[Ne].concat(de)}Object.keys(V).forEach(function(_e){if(V[_e].length>1){var tt="DummyCompound_"+_e;L.memberGroups[tt]=V[_e];var vt=V[_e][0].getParent(),Pe=new G(L.graphManager);Pe.id=tt,Pe.paddingLeft=vt.paddingLeft||0,Pe.paddingRight=vt.paddingRight||0,Pe.paddingBottom=vt.paddingBottom||0,Pe.paddingTop=vt.paddingTop||0,L.idToDummyNode[tt]=Pe;var Ve=L.getGraphManager().add(L.newGraph(),Pe),Xe=vt.getChild();Xe.add(Pe);for(var rt=0;rt=0;L--){var V=this.compoundOrder[L],I=V.id,W=V.paddingLeft,fe=V.paddingTop;this.adjustLocations(this.tiledMemberPack[I],V.rect.x,V.rect.y,W,fe)}},Y.prototype.repopulateZeroDegreeMembers=function(){var L=this,V=this.tiledZeroDegreePack;Object.keys(V).forEach(function(I){var W=L.idToDummyNode[I],fe=W.paddingLeft,de=W.paddingTop;L.adjustLocations(V[I],W.rect.x,W.rect.y,fe,de)})},Y.prototype.getToBeTiled=function(L){var V=L.id;if(this.toBeTiled[V]!=null)return this.toBeTiled[V];var I=L.getChild();if(I==null)return this.toBeTiled[V]=!1,!1;for(var W=I.getNodes(),fe=0;fe0)return this.toBeTiled[V]=!1,!1;if(de.getChild()==null){this.toBeTiled[de.id]=!1;continue}if(!this.getToBeTiled(de))return this.toBeTiled[V]=!1,!1}return this.toBeTiled[V]=!0,!0},Y.prototype.getNodeDegree=function(L){L.id;for(var V=L.getEdges(),I=0,W=0;W_e&&(_e=vt.rect.height)}I+=_e+L.verticalPadding}},Y.prototype.tileCompoundMembers=function(L,V){var I=this;this.tiledMemberPack=[],Object.keys(L).forEach(function(W){var fe=V[W];I.tiledMemberPack[W]=I.tileNodes(L[W],fe.paddingLeft+fe.paddingRight),fe.rect.width=I.tiledMemberPack[W].width,fe.rect.height=I.tiledMemberPack[W].height})},Y.prototype.tileNodes=function(L,V){var I=P.TILING_PADDING_VERTICAL,W=P.TILING_PADDING_HORIZONTAL,fe={rows:[],rowWidth:[],rowHeight:[],width:0,height:V,verticalPadding:I,horizontalPadding:W};L.sort(function(Ne,_e){return Ne.rect.width*Ne.rect.height>_e.rect.width*_e.rect.height?-1:Ne.rect.width*Ne.rect.height<_e.rect.width*_e.rect.height?1:0});for(var de=0;de0&&(Ae+=L.horizontalPadding),L.rowWidth[I]=Ae,L.width0&&(Ne+=L.verticalPadding);var _e=0;Ne>L.rowHeight[I]&&(_e=L.rowHeight[I],L.rowHeight[I]=Ne,_e=L.rowHeight[I]-_e),L.height+=_e,L.rows[I].push(V)},Y.prototype.getShortestRowIndex=function(L){for(var V=-1,I=Number.MAX_VALUE,W=0;WI&&(V=W,I=L.rowWidth[W]);return V},Y.prototype.canAddHorizontal=function(L,V,I){var W=this.getShortestRowIndex(L);if(W<0)return!0;var fe=L.rowWidth[W];if(fe+L.horizontalPadding+V<=L.width)return!0;var de=0;L.rowHeight[W]0&&(de=I+L.verticalPadding-L.rowHeight[W]);var Ae;L.width-fe>=V+L.horizontalPadding?Ae=(L.height+de)/(fe+V+L.horizontalPadding):Ae=(L.height+de)/L.width,de=I+L.verticalPadding;var Ne;return L.widthde&&V!=I){W.splice(-1,1),L.rows[I].push(fe),L.rowWidth[V]=L.rowWidth[V]-de,L.rowWidth[I]=L.rowWidth[I]+de,L.width=L.rowWidth[instance.getLongestRowIndex(L)];for(var Ae=Number.MIN_VALUE,Ne=0;NeAe&&(Ae=W[Ne].height);V>0&&(Ae+=L.verticalPadding);var _e=L.rowHeight[V]+L.rowHeight[I];L.rowHeight[V]=Ae,L.rowHeight[I]0)for(var Xe=fe;Xe<=de;Xe++)Ve[0]+=this.grid[Xe][Ae-1].length+this.grid[Xe][Ae].length-1;if(de0)for(var Xe=Ae;Xe<=Ne;Xe++)Ve[3]+=this.grid[fe-1][Xe].length+this.grid[fe][Xe].length-1;for(var rt=ne.MAX_VALUE,ft,at,et=0;et0){var Ne;Ne=j.getGraphManager().add(j.newGraph(),I),this.processChildrenList(Ne,V,j)}}},_.prototype.stop=function(){return this.stopped=!0,this};var ne=function(J){J("layout","cose-bilkent",_)};typeof cytoscape<"u"&&ne(cytoscape),ce.exports=ne}])})})(Hu);var Op=Hu.exports;const Np=_u(Op);var Zi=function(){var pe=function(j,Y,te,L){for(te=te||{},L=j.length;L--;te[j[L]]=Y);return te},le=[1,4],ee=[1,13],ce=[1,12],H=[1,15],O=[1,16],T=[1,20],w=[1,19],S=[6,7,8],G=[1,26],U=[1,24],P=[1,25],K=[6,7,11],D=[1,6,13,15,16,19,22],$=[1,33],_=[1,34],Q=[1,6,7,11,13,15,16,19,22],ne={trace:function(){},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:function(Y,te,L,V,I,W,fe){var de=W.length-1;switch(I){case 6:case 7:return V;case 8:V.getLogger().trace("Stop NL ");break;case 9:V.getLogger().trace("Stop EOF ");break;case 11:V.getLogger().trace("Stop NL2 ");break;case 12:V.getLogger().trace("Stop EOF2 ");break;case 15:V.getLogger().info("Node: ",W[de].id),V.addNode(W[de-1].length,W[de].id,W[de].descr,W[de].type);break;case 16:V.getLogger().trace("Icon: ",W[de]),V.decorateNode({icon:W[de]});break;case 17:case 21:V.decorateNode({class:W[de]});break;case 18:V.getLogger().trace("SPACELIST");break;case 19:V.getLogger().trace("Node: ",W[de].id),V.addNode(0,W[de].id,W[de].descr,W[de].type);break;case 20:V.decorateNode({icon:W[de]});break;case 25:V.getLogger().trace("node found ..",W[de-2]),this.$={id:W[de-1],descr:W[de-1],type:V.getType(W[de-2],W[de])};break;case 26:this.$={id:W[de],descr:W[de],type:V.nodeType.DEFAULT};break;case 27:V.getLogger().trace("node found ..",W[de-3]),this.$={id:W[de-3],descr:W[de-1],type:V.getType(W[de-2],W[de])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:le},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:le},{6:ee,7:[1,10],9:9,12:11,13:ce,14:14,15:H,16:O,17:17,18:18,19:T,22:w},pe(S,[2,3]),{1:[2,2]},pe(S,[2,4]),pe(S,[2,5]),{1:[2,6],6:ee,12:21,13:ce,14:14,15:H,16:O,17:17,18:18,19:T,22:w},{6:ee,9:22,12:11,13:ce,14:14,15:H,16:O,17:17,18:18,19:T,22:w},{6:G,7:U,10:23,11:P},pe(K,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:T,22:w}),pe(K,[2,18]),pe(K,[2,19]),pe(K,[2,20]),pe(K,[2,21]),pe(K,[2,23]),pe(K,[2,24]),pe(K,[2,26],{19:[1,30]}),{20:[1,31]},{6:G,7:U,10:32,11:P},{1:[2,7],6:ee,12:21,13:ce,14:14,15:H,16:O,17:17,18:18,19:T,22:w},pe(D,[2,14],{7:$,11:_}),pe(Q,[2,8]),pe(Q,[2,9]),pe(Q,[2,10]),pe(K,[2,15]),pe(K,[2,16]),pe(K,[2,17]),{20:[1,35]},{21:[1,36]},pe(D,[2,13],{7:$,11:_}),pe(Q,[2,11]),pe(Q,[2,12]),{21:[1,37]},pe(K,[2,25]),pe(K,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(Y,te){if(te.recoverable)this.trace(Y);else{var L=new Error(Y);throw L.hash=te,L}},parse:function(Y){var te=this,L=[0],V=[],I=[null],W=[],fe=this.table,de="",Ae=0,Ne=0,_e=2,tt=1,vt=W.slice.call(arguments,1),Pe=Object.create(this.lexer),Ve={yy:{}};for(var Xe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Xe)&&(Ve.yy[Xe]=this.yy[Xe]);Pe.setInput(Y,Ve.yy),Ve.yy.lexer=Pe,Ve.yy.parser=this,typeof Pe.yylloc>"u"&&(Pe.yylloc={});var rt=Pe.yylloc;W.push(rt);var ft=Pe.options&&Pe.options.ranges;typeof Ve.yy.parseError=="function"?this.parseError=Ve.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function at(){var er;return er=V.pop()||Pe.lex()||tt,typeof er!="number"&&(er instanceof Array&&(V=er,er=V.pop()),er=te.symbols_[er]||er),er}for(var et,yt,wt,Pt,dt={},dr,qt,un,Zr;;){if(yt=L[L.length-1],this.defaultActions[yt]?wt=this.defaultActions[yt]:((et===null||typeof et>"u")&&(et=at()),wt=fe[yt]&&fe[yt][et]),typeof wt>"u"||!wt.length||!wt[0]){var Sa="";Zr=[];for(dr in fe[yt])this.terminals_[dr]&&dr>_e&&Zr.push("'"+this.terminals_[dr]+"'");Pe.showPosition?Sa="Parse error on line "+(Ae+1)+`: -`+Pe.showPosition()+` -Expecting `+Zr.join(", ")+", got '"+(this.terminals_[et]||et)+"'":Sa="Parse error on line "+(Ae+1)+": Unexpected "+(et==tt?"end of input":"'"+(this.terminals_[et]||et)+"'"),this.parseError(Sa,{text:Pe.match,token:this.terminals_[et]||et,line:Pe.yylineno,loc:rt,expected:Zr})}if(wt[0]instanceof Array&&wt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+et);switch(wt[0]){case 1:L.push(et),I.push(Pe.yytext),W.push(Pe.yylloc),L.push(wt[1]),et=null,Ne=Pe.yyleng,de=Pe.yytext,Ae=Pe.yylineno,rt=Pe.yylloc;break;case 2:if(qt=this.productions_[wt[1]][1],dt.$=I[I.length-qt],dt._$={first_line:W[W.length-(qt||1)].first_line,last_line:W[W.length-1].last_line,first_column:W[W.length-(qt||1)].first_column,last_column:W[W.length-1].last_column},ft&&(dt._$.range=[W[W.length-(qt||1)].range[0],W[W.length-1].range[1]]),Pt=this.performAction.apply(dt,[de,Ne,Ae,Ve.yy,wt[1],I,W].concat(vt)),typeof Pt<"u")return Pt;qt&&(L=L.slice(0,-1*qt*2),I=I.slice(0,-1*qt),W=W.slice(0,-1*qt)),L.push(this.productions_[wt[1]][0]),I.push(dt.$),W.push(dt._$),un=fe[L[L.length-2]][L[L.length-1]],L.push(un);break;case 3:return!0}}return!0}},oe=function(){var j={EOF:1,parseError:function(te,L){if(this.yy.parser)this.yy.parser.parseError(te,L);else throw new Error(te)},setInput:function(Y,te){return this.yy=te||this.yy||{},this._input=Y,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},input:function(){var Y=this._input[0];this.yytext+=Y,this.yyleng++,this.offset++,this.match+=Y,this.matched+=Y;var te=Y.match(/(?:\r\n?|\n).*/g);return te?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Y},unput:function(Y){var te=Y.length,L=Y.split(/(?:\r\n?|\n)/g);this._input=Y+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-te),this.offset-=te;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),L.length-1&&(this.yylineno-=L.length-1);var I=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:L?(L.length===V.length?this.yylloc.first_column:0)+V[V.length-L.length].length-L[0].length:this.yylloc.first_column-te},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-te]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(Y){this.unput(this.match.slice(Y))},pastInput:function(){var Y=this.matched.substr(0,this.matched.length-this.match.length);return(Y.length>20?"...":"")+Y.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Y=this.match;return Y.length<20&&(Y+=this._input.substr(0,20-Y.length)),(Y.substr(0,20)+(Y.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Y=this.pastInput(),te=new Array(Y.length+1).join("-");return Y+this.upcomingInput()+` -`+te+"^"},test_match:function(Y,te){var L,V,I;if(this.options.backtrack_lexer&&(I={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&&(I.yylloc.range=this.yylloc.range.slice(0))),V=Y[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+Y[0].length},this.yytext+=Y[0],this.match+=Y[0],this.matches=Y,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(Y[0].length),this.matched+=Y[0],L=this.performAction.call(this,this.yy,this,te,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var W in I)this[W]=I[W];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Y,te,L,V;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),W=0;Wte[0].length)){if(te=L,V=W,this.options.backtrack_lexer){if(Y=this.test_match(L,I[W]),Y!==!1)return Y;if(this._backtrack){te=!1;continue}else return!1}else if(!this.options.flex)break}return te?(Y=this.test_match(te,I[V]),Y!==!1?Y:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var te=this.next();return te||this.lex()},begin:function(te){this.conditionStack.push(te)},popState:function(){var te=this.conditionStack.length-1;return te>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(te){return te=this.conditionStack.length-1-Math.abs(te||0),te>=0?this.conditionStack[te]:"INITIAL"},pushState:function(te){this.begin(te)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(te,L,V,I){switch(V){case 0:return te.getLogger().trace("Found comment",L.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:te.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return te.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:te.getLogger().trace("end icon"),this.popState();break;case 10:return te.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return te.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return te.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return te.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;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:te.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return te.getLogger().trace("description:",L.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),te.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),te.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),te.getLogger().trace("node end ...",L.yytext),"NODE_DEND";case 30:return this.popState(),te.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),te.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),te.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),te.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),te.getLogger().trace("node end (("),"NODE_DEND";case 35:return te.getLogger().trace("Long description:",L.yytext),20;case 36:return te.getLogger().trace("Long description:",L.yytext),20}},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 j}();ne.lexer=oe;function J(){this.yy={}}return J.prototype=ne,ne.Parser=J,new J}();Zi.parser=Zi;const Mp=Zi,on=pe=>Ep(pe,sn());let jt=[],Xu=0,Qi={};const Ip=()=>{jt=[],Xu=0,Qi={}},Rp=function(pe){for(let le=jt.length-1;le>=0;le--)if(jt[le].leveljt.length>0?jt[0]:null,Pp=(pe,le,ee,ce)=>{qr.info("addNode",pe,le,ee,ce);const H=sn(),O={id:Xu++,nodeId:on(le),level:pe,descr:on(ee),type:ce,children:[],width:sn().mindmap.maxNodeWidth};switch(O.type){case mt.ROUNDED_RECT:O.padding=2*H.mindmap.padding;break;case mt.RECT:O.padding=2*H.mindmap.padding;break;case mt.HEXAGON:O.padding=2*H.mindmap.padding;break;default:O.padding=H.mindmap.padding}const T=Rp(pe);if(T)T.children.push(O),jt.push(O);else if(jt.length===0)jt.push(O);else{let w=new Error('There can be only one root. No parent could be found for ("'+O.descr+'")');throw w.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},w}},mt={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Bp=(pe,le)=>{switch(qr.debug("In get type",pe,le),pe){case"[":return mt.RECT;case"(":return le===")"?mt.ROUNDED_RECT:mt.CLOUD;case"((":return mt.CIRCLE;case")":return mt.CLOUD;case"))":return mt.BANG;case"{{":return mt.HEXAGON;default:return mt.DEFAULT}},Wu=(pe,le)=>{Qi[pe]=le},Fp=pe=>{const le=jt[jt.length-1];pe&&pe.icon&&(le.icon=on(pe.icon)),pe&&pe.class&&(le.class=on(pe.class))},Kr=pe=>{switch(pe){case mt.DEFAULT:return"no-border";case mt.RECT:return"rect";case mt.ROUNDED_RECT:return"rounded-rect";case mt.CIRCLE:return"circle";case mt.CLOUD:return"cloud";case mt.BANG:return"bang";case mt.HEXAGON:return"hexgon";default:return"no-border"}};let qu;const zp=pe=>{qu=pe},Gp=()=>qr,Vp=pe=>jt[pe],Ji=pe=>Qi[pe],$p=Object.freeze(Object.defineProperty({__proto__:null,addNode:Pp,clear:Ip,decorateNode:Fp,getElementById:Ji,getLogger:Gp,getMindmap:kp,getNodeById:Vp,getType:Bp,nodeType:mt,get parseError(){return qu},sanitizeText:on,setElementForId:Wu,setErrorHandler:zp,type2Str:Kr},Symbol.toStringTag,{value:"Module"})),Ku=12,_p=function(pe,le,ee){pe.append("path").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("d",`M0 ${le.height-5} v${-le.height+2*5} q0,-5 5,-5 h${le.width-2*5} q5,0 5,5 v${le.height-5} H0 Z`),pe.append("line").attr("class","node-line-"+ee).attr("x1",0).attr("y1",le.height).attr("x2",le.width).attr("y2",le.height)},Up=function(pe,le){pe.append("rect").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("height",le.height).attr("width",le.width)},Yp=function(pe,le){const ee=le.width,ce=le.height,H=.15*ee,O=.25*ee,T=.35*ee,w=.2*ee;pe.append("path").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("d",`M0 0 a${H},${H} 0 0,1 ${ee*.25},${-1*ee*.1} - a${T},${T} 1 0,1 ${ee*.4},${-1*ee*.1} - a${O},${O} 1 0,1 ${ee*.35},${1*ee*.2} - - a${H},${H} 1 0,1 ${ee*.15},${1*ce*.35} - a${w},${w} 1 0,1 ${-1*ee*.15},${1*ce*.65} - - a${O},${H} 1 0,1 ${-1*ee*.25},${ee*.15} - a${T},${T} 1 0,1 ${-1*ee*.5},0 - a${H},${H} 1 0,1 ${-1*ee*.25},${-1*ee*.15} - - a${H},${H} 1 0,1 ${-1*ee*.1},${-1*ce*.35} - a${w},${w} 1 0,1 ${ee*.1},${-1*ce*.65} - - H0 V0 Z`)},Hp=function(pe,le){const ee=le.width,ce=le.height,H=.15*ee;pe.append("path").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("d",`M0 0 a${H},${H} 1 0,0 ${ee*.25},${-1*ce*.1} - a${H},${H} 1 0,0 ${ee*.25},0 - a${H},${H} 1 0,0 ${ee*.25},0 - a${H},${H} 1 0,0 ${ee*.25},${1*ce*.1} - - a${H},${H} 1 0,0 ${ee*.15},${1*ce*.33} - a${H*.8},${H*.8} 1 0,0 0,${1*ce*.34} - a${H},${H} 1 0,0 ${-1*ee*.15},${1*ce*.33} - - a${H},${H} 1 0,0 ${-1*ee*.25},${ce*.15} - a${H},${H} 1 0,0 ${-1*ee*.25},0 - a${H},${H} 1 0,0 ${-1*ee*.25},0 - a${H},${H} 1 0,0 ${-1*ee*.25},${-1*ce*.15} - - a${H},${H} 1 0,0 ${-1*ee*.1},${-1*ce*.33} - a${H*.8},${H*.8} 1 0,0 0,${-1*ce*.34} - a${H},${H} 1 0,0 ${ee*.1},${-1*ce*.33} - - H0 V0 Z`)},Xp=function(pe,le){pe.append("circle").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("r",le.width/2)};function Wp(pe,le,ee,ce,H){return pe.insert("polygon",":first-child").attr("points",ce.map(function(O){return O.x+","+O.y}).join(" ")).attr("transform","translate("+(H.width-le)/2+", "+ee+")")}const qp=function(pe,le){const ee=le.height,H=ee/4,O=le.width-le.padding+2*H,T=[{x:H,y:0},{x:O-H,y:0},{x:O,y:-ee/2},{x:O-H,y:-ee},{x:H,y:-ee},{x:0,y:-ee/2}];Wp(pe,O,ee,T,le)},Kp=function(pe,le){pe.append("rect").attr("id","node-"+le.id).attr("class","node-bkg node-"+Kr(le.type)).attr("height",le.height).attr("rx",le.padding).attr("ry",le.padding).attr("width",le.width)},Zp=function(pe,le,ee,ce){const H=ce.htmlLabels,O=ee%(Ku-1),T=pe.append("g");le.section=O;let w="section-"+O;O<0&&(w+=" section-root"),T.attr("class",(le.class?le.class+" ":"")+"mindmap-node "+w);const S=T.append("g"),G=T.append("g"),U=le.descr.replace(/()/g,` -`);Dp(G,U,{useHtmlLabels:H,width:le.width,classes:"mindmap-node-label"}),H||G.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const P=G.node().getBBox(),K=ce.fontSize.replace?ce.fontSize.replace("px",""):ce.fontSize;if(le.height=P.height+K*1.1*.5+le.padding,le.width=P.width+2*le.padding,le.icon)if(le.type===mt.CIRCLE)le.height+=50,le.width+=50,T.append("foreignObject").attr("height","50px").attr("width",le.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+O+" "+le.icon),G.attr("transform","translate("+le.width/2+", "+(le.height/2-1.5*le.padding)+")");else{le.width+=50;const D=le.height;le.height=Math.max(D,60);const $=Math.abs(le.height-D);T.append("foreignObject").attr("width","60px").attr("height",le.height).attr("style","text-align: center;margin-top:"+$/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+O+" "+le.icon),G.attr("transform","translate("+(25+le.width/2)+", "+($/2+le.padding/2)+")")}else if(H){const D=(le.width-P.width)/2,$=(le.height-P.height)/2;G.attr("transform","translate("+D+", "+$+")")}else{const D=le.width/2,$=le.padding/2;G.attr("transform","translate("+D+", "+$+")")}switch(le.type){case mt.DEFAULT:_p(S,le,O);break;case mt.ROUNDED_RECT:Kp(S,le);break;case mt.RECT:Up(S,le);break;case mt.CIRCLE:S.attr("transform","translate("+le.width/2+", "+ +le.height/2+")"),Xp(S,le);break;case mt.CLOUD:Yp(S,le);break;case mt.BANG:Hp(S,le);break;case mt.HEXAGON:qp(S,le);break}return Wu(le.id,T),le.height},Qp=function(le,ee,ce,H,O){const T=O%(Ku-1),w=ce.x+ce.width/2,S=ce.y+ce.height/2,G=ee.x+ee.width/2,U=ee.y+ee.height/2,P=G>w?w+Math.abs(w-G)/2:w-Math.abs(w-G)/2,K=U>S?S+Math.abs(S-U)/2:S-Math.abs(S-U)/2,D=G>w?Math.abs(w-P)/2+w:-Math.abs(w-P)/2+w,$=U>S?Math.abs(S-K)/2+S:-Math.abs(S-K)/2+S;le.append("path").attr("d",ce.direction==="TB"||ce.direction==="BT"?`M${w},${S} Q${w},${$} ${P},${K} T${G},${U}`:`M${w},${S} Q${D},${S} ${P},${K} T${G},${U}`).attr("class","edge section-edge-"+T+" edge-depth-"+H)},Jp=function(pe){const le=Ji(pe.id),ee=pe.x||0,ce=pe.y||0;le.attr("transform","translate("+ee+","+ce+")")},Zu={drawNode:Zp,positionNode:Jp,drawEdge:Qp};Yu.use(Np);function Qu(pe,le,ee,ce){Zu.drawNode(pe,le,ee,ce),le.children&&le.children.forEach((H,O)=>{Qu(pe,H,ee<0?O:ee,ce)})}function jp(pe,le){le.edges().map((ee,ce)=>{const H=ee.data();if(ee[0]._private.bodyBounds){const O=ee[0]._private.rscratch;qr.trace("Edge: ",ce,H),pe.insert("path").attr("d",`M ${O.startX},${O.startY} L ${O.midX},${O.midY} L${O.endX},${O.endY} `).attr("class","edge section-edge-"+H.section+" edge-depth-"+H.depth)}})}function Ju(pe,le,ee,ce){le.add({group:"nodes",data:{id:pe.id,labelText:pe.descr,height:pe.height,width:pe.width,level:ce,nodeId:pe.id,padding:pe.padding,type:pe.type},position:{x:pe.x,y:pe.y}}),pe.children&&pe.children.forEach(H=>{Ju(H,le,ee,ce+1),le.add({group:"edges",data:{id:`${pe.id}_${H.id}`,source:pe.id,target:H.id,depth:ce,section:H.section}})})}function ey(pe,le){return new Promise(ee=>{const ce=ti("body").append("div").attr("id","cy").attr("style","display:none"),H=Yu({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});ce.remove(),Ju(pe,H,le,0),H.nodes().forEach(function(O){O.layoutDimensions=()=>{const T=O.data();return{w:T.width,h:T.height}}}),H.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),H.ready(O=>{qr.info("Ready",O),ee(H)})})}function ty(pe){pe.nodes().map((le,ee)=>{const ce=le.data();ce.x=le.position().x,ce.y=le.position().y,Zu.positionNode(ce);const H=Ji(ce.nodeId);qr.info("Id:",ee,"Position: (",le.position().x,", ",le.position().y,")",ce),H.attr("transform",`translate(${le.position().x-ce.width/2}, ${le.position().y-ce.height/2})`),H.attr("attr",`apa-${ee})`)})}const ry=async(pe,le,ee,ce)=>{const H=sn();H.htmlLabels=!1,ce.db.clear(),ce.parser.parse(pe),qr.debug(`Rendering mindmap diagram -`+pe,ce.parser);const O=sn().securityLevel;let T;O==="sandbox"&&(T=ti("#i"+le));const S=(O==="sandbox"?ti(T.nodes()[0].contentDocument.body):ti("body")).select("#"+le);S.append("g");const G=ce.db.getMindmap(),U=S.append("g");U.attr("class","mindmap-edges");const P=S.append("g");P.attr("class","mindmap-nodes"),Qu(P,G,-1,H);const K=await ey(G,H);jp(U,K),ty(K),wp(void 0,S,H.mindmap.padding,H.mindmap.useMaxWidth)},ay={draw:ry},ny=pe=>{let le="";for(let ee=0;ee` - .edge { - stroke-width: 3; - } - ${ny(pe)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${pe.git0}; - } - .section-root text { - fill: ${pe.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; - } -`,sy=iy,fy={db:$p,renderer:ay,parser:Mp,styles:sy};export{fy as diagram}; -//# sourceMappingURL=mindmap-definition-4fc2557c-YYRKFqOa.js.map diff --git a/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js.map b/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js.map deleted file mode 100644 index 59a62f6..0000000 --- a/excalidraw/excalidraw-app/build/assets/mindmap-definition-4fc2557c-YYRKFqOa.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mindmap-definition-4fc2557c-YYRKFqOa.js","sources":["../../../node_modules/cytoscape/dist/cytoscape.umd.js","../../../node_modules/layout-base/layout-base.js","../../../node_modules/cose-base/cose-base.js","../../../node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js","../../../node_modules/mermaid/dist/mindmap-definition-4fc2557c.js"],"sourcesContent":["/**\n * Copyright (c) 2016-2023, The Cytoscape Consortium.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the “Software”), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n * of the Software, and to permit persons to whom the Software is furnished to do\n * so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * 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 NONINFRINGEMENT. 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 FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.cytoscape = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef\n\n var navigator = _window ? _window.navigator : null;\n _window ? _window.document : null;\n var typeofstr = _typeof('');\n var typeofobj = _typeof({});\n var typeoffn = _typeof(function () {});\n var typeofhtmlele = typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement);\n var instanceStr = function instanceStr(obj) {\n return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;\n };\n\n var string = function string(obj) {\n return obj != null && _typeof(obj) == typeofstr;\n };\n var fn$6 = function fn(obj) {\n return obj != null && _typeof(obj) === typeoffn;\n };\n var array = function array(obj) {\n return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);\n };\n var plainObject = function plainObject(obj) {\n return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;\n };\n var object = function object(obj) {\n return obj != null && _typeof(obj) === typeofobj;\n };\n var number$1 = function number(obj) {\n return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);\n };\n var integer = function integer(obj) {\n return number$1(obj) && Math.floor(obj) === obj;\n };\n var htmlElement = function htmlElement(obj) {\n if ('undefined' === typeofhtmlele) {\n return undefined;\n } else {\n return null != obj && obj instanceof HTMLElement;\n }\n };\n var elementOrCollection = function elementOrCollection(obj) {\n return element(obj) || collection(obj);\n };\n var element = function element(obj) {\n return instanceStr(obj) === 'collection' && obj._private.single;\n };\n var collection = function collection(obj) {\n return instanceStr(obj) === 'collection' && !obj._private.single;\n };\n var core = function core(obj) {\n return instanceStr(obj) === 'core';\n };\n var stylesheet = function stylesheet(obj) {\n return instanceStr(obj) === 'stylesheet';\n };\n var event = function event(obj) {\n return instanceStr(obj) === 'event';\n };\n var emptyString = function emptyString(obj) {\n if (obj === undefined || obj === null) {\n // null is empty\n return true;\n } else if (obj === '' || obj.match(/^\\s+$/)) {\n return true; // empty string is empty\n }\n\n return false; // otherwise, we don't know what we've got\n };\n var domElement = function domElement(obj) {\n if (typeof HTMLElement === 'undefined') {\n return false; // we're not in a browser so it doesn't matter\n } else {\n return obj instanceof HTMLElement;\n }\n };\n var boundingBox = function boundingBox(obj) {\n return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);\n };\n var promise = function promise(obj) {\n return object(obj) && fn$6(obj.then);\n };\n var ms = function ms() {\n return navigator && navigator.userAgent.match(/msie|trident|edge/i);\n }; // probably a better way to detect this...\n\n var memoize$1 = function memoize(fn, keyFn) {\n if (!keyFn) {\n keyFn = function keyFn() {\n if (arguments.length === 1) {\n return arguments[0];\n } else if (arguments.length === 0) {\n return 'undefined';\n }\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n return args.join('$');\n };\n }\n var memoizedFn = function memoizedFn() {\n var self = this;\n var args = arguments;\n var ret;\n var k = keyFn.apply(self, args);\n var cache = memoizedFn.cache;\n if (!(ret = cache[k])) {\n ret = cache[k] = fn.apply(self, args);\n }\n return ret;\n };\n memoizedFn.cache = {};\n return memoizedFn;\n };\n\n var camel2dash = memoize$1(function (str) {\n return str.replace(/([A-Z])/g, function (v) {\n return '-' + v.toLowerCase();\n });\n });\n var dash2camel = memoize$1(function (str) {\n return str.replace(/(-\\w)/g, function (v) {\n return v[1].toUpperCase();\n });\n });\n var prependCamel = memoize$1(function (prefix, str) {\n return prefix + str[0].toUpperCase() + str.substring(1);\n }, function (prefix, str) {\n return prefix + '$' + str;\n });\n var capitalize = function capitalize(str) {\n if (emptyString(str)) {\n return str;\n }\n return str.charAt(0).toUpperCase() + str.substring(1);\n };\n\n var number = '(?:[-+]?(?:(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[Ee][+-]?\\\\d+)?))';\n var rgba = 'rgb[a]?\\\\((' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\n var rgbaNoBackRefs = 'rgb[a]?\\\\((?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\n var hsla = 'hsl[a]?\\\\((' + number + ')\\\\s*,\\\\s*(' + number + '[%])\\\\s*,\\\\s*(' + number + '[%])(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\n var hslaNoBackRefs = 'hsl[a]?\\\\((?:' + number + ')\\\\s*,\\\\s*(?:' + number + '[%])\\\\s*,\\\\s*(?:' + number + '[%])(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\n var hex3 = '\\\\#[0-9a-fA-F]{3}';\n var hex6 = '\\\\#[0-9a-fA-F]{6}';\n\n var ascending = function ascending(a, b) {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n };\n var descending = function descending(a, b) {\n return -1 * ascending(a, b);\n };\n\n var extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n var args = arguments;\n for (var i = 1; i < args.length; i++) {\n var obj = args[i];\n if (obj == null) {\n continue;\n }\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n tgt[k] = obj[k];\n }\n }\n return tgt;\n };\n\n // get [r, g, b] from #abc or #aabbcc\n var hex2tuple = function hex2tuple(hex) {\n if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') {\n return;\n }\n var shortHex = hex.length === 4;\n var r, g, b;\n var base = 16;\n if (shortHex) {\n r = parseInt(hex[1] + hex[1], base);\n g = parseInt(hex[2] + hex[2], base);\n b = parseInt(hex[3] + hex[3], base);\n } else {\n r = parseInt(hex[1] + hex[2], base);\n g = parseInt(hex[3] + hex[4], base);\n b = parseInt(hex[5] + hex[6], base);\n }\n return [r, g, b];\n };\n\n // get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0)\n var hsl2tuple = function hsl2tuple(hsl) {\n var ret;\n var h, s, l, a, r, g, b;\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n var m = new RegExp('^' + hsla + '$').exec(hsl);\n if (m) {\n // get hue\n h = parseInt(m[1]);\n if (h < 0) {\n h = (360 - -1 * h % 360) % 360;\n } else if (h > 360) {\n h = h % 360;\n }\n h /= 360; // normalise on [0, 1]\n\n s = parseFloat(m[2]);\n if (s < 0 || s > 100) {\n return;\n } // saturation is [0, 100]\n s = s / 100; // normalise on [0, 1]\n\n l = parseFloat(m[3]);\n if (l < 0 || l > 100) {\n return;\n } // lightness is [0, 100]\n l = l / 100; // normalise on [0, 1]\n\n a = m[4];\n if (a !== undefined) {\n a = parseFloat(a);\n if (a < 0 || a > 1) {\n return;\n } // alpha is [0, 1]\n }\n\n // now, convert to rgb\n // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript\n if (s === 0) {\n r = g = b = Math.round(l * 255); // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = Math.round(255 * hue2rgb(p, q, h + 1 / 3));\n g = Math.round(255 * hue2rgb(p, q, h));\n b = Math.round(255 * hue2rgb(p, q, h - 1 / 3));\n }\n ret = [r, g, b, a];\n }\n return ret;\n };\n\n // get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0)\n var rgb2tuple = function rgb2tuple(rgb) {\n var ret;\n var m = new RegExp('^' + rgba + '$').exec(rgb);\n if (m) {\n ret = [];\n var isPct = [];\n for (var i = 1; i <= 3; i++) {\n var channel = m[i];\n if (channel[channel.length - 1] === '%') {\n isPct[i] = true;\n }\n channel = parseFloat(channel);\n if (isPct[i]) {\n channel = channel / 100 * 255; // normalise to [0, 255]\n }\n\n if (channel < 0 || channel > 255) {\n return;\n } // invalid channel value\n\n ret.push(Math.floor(channel));\n }\n var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];\n var allArePct = isPct[1] && isPct[2] && isPct[3];\n if (atLeastOneIsPct && !allArePct) {\n return;\n } // must all be percent values if one is\n\n var alpha = m[4];\n if (alpha !== undefined) {\n alpha = parseFloat(alpha);\n if (alpha < 0 || alpha > 1) {\n return;\n } // invalid alpha value\n\n ret.push(alpha);\n }\n }\n return ret;\n };\n var colorname2tuple = function colorname2tuple(color) {\n return colors[color.toLowerCase()];\n };\n var color2tuple = function color2tuple(color) {\n return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);\n };\n var colors = {\n // special colour names\n transparent: [0, 0, 0, 0],\n // NB alpha === 0\n\n // regular colours\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n };\n\n // sets the value in a map (map may not be built)\n var setMap = function setMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to set map with object key');\n }\n if (i < keys.length - 1) {\n // extend the map if necessary\n if (obj[key] == null) {\n obj[key] = {};\n }\n obj = obj[key];\n } else {\n // set the value\n obj[key] = options.value;\n }\n }\n };\n\n // gets the value in a map even if it's not built in places\n var getMap = function getMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to get map with object key');\n }\n obj = obj[key];\n if (obj == null) {\n return obj;\n }\n }\n return obj;\n };\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n var isObject_1 = isObject;\n\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n var _freeGlobal = freeGlobal;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = _freeGlobal || freeSelf || Function('return this')();\n\n var _root = root;\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = function() {\n return _root.Date.now();\n };\n\n var now_1 = now;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n var _trimmedEndIndex = trimmedEndIndex;\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n var _baseTrim = baseTrim;\n\n /** Built-in value references. */\n var Symbol$1 = _root.Symbol;\n\n var _Symbol = Symbol$1;\n\n /** Used for built-in method references. */\n var objectProto$5 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$4 = objectProto$5.hasOwnProperty;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString$1 = objectProto$5.toString;\n\n /** Built-in value references. */\n var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty$4.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n }\n\n var _getRawTag = getRawTag;\n\n /** Used for built-in method references. */\n var objectProto$4 = Object.prototype;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto$4.toString;\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n var _objectToString = objectToString;\n\n /** `Object#toString` result references. */\n var nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n /** Built-in value references. */\n var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? _getRawTag(value)\n : _objectToString(value);\n }\n\n var _baseGetTag = baseGetTag;\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n var isObjectLike_1 = isObjectLike;\n\n /** `Object#toString` result references. */\n var symbolTag = '[object Symbol]';\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike_1(value) && _baseGetTag(value) == symbolTag);\n }\n\n var isSymbol_1 = isSymbol;\n\n /** Used as references for various `Number` constants. */\n var NAN = 0 / 0;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseInt = parseInt;\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol_1(value)) {\n return NAN;\n }\n if (isObject_1(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject_1(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = _baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n var toNumber_1 = toNumber;\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT$1 = 'Expected a function';\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeMax = Math.max,\n nativeMin = Math.min;\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT$1);\n }\n wait = toNumber_1(wait) || 0;\n if (isObject_1(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now_1();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now_1());\n }\n\n function debounced() {\n var time = now_1(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n var debounce_1 = debounce;\n\n var performance = _window ? _window.performance : null;\n var pnow = performance && performance.now ? function () {\n return performance.now();\n } : function () {\n return Date.now();\n };\n var raf = function () {\n if (_window) {\n if (_window.requestAnimationFrame) {\n return function (fn) {\n _window.requestAnimationFrame(fn);\n };\n } else if (_window.mozRequestAnimationFrame) {\n return function (fn) {\n _window.mozRequestAnimationFrame(fn);\n };\n } else if (_window.webkitRequestAnimationFrame) {\n return function (fn) {\n _window.webkitRequestAnimationFrame(fn);\n };\n } else if (_window.msRequestAnimationFrame) {\n return function (fn) {\n _window.msRequestAnimationFrame(fn);\n };\n }\n }\n return function (fn) {\n if (fn) {\n setTimeout(function () {\n fn(pnow());\n }, 1000 / 60);\n }\n };\n }();\n var requestAnimationFrame = function requestAnimationFrame(fn) {\n return raf(fn);\n };\n var performanceNow = pnow;\n\n var DEFAULT_HASH_SEED = 9261;\n var K = 65599; // 37 also works pretty well\n var DEFAULT_HASH_SEED_ALT = 5381;\n var hashIterableInts = function hashIterableInts(iterator) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n var hash = seed;\n var entry;\n for (;;) {\n entry = iterator.next();\n if (entry.done) {\n break;\n }\n hash = hash * K + entry.value | 0;\n }\n return hash;\n };\n var hashInt = function hashInt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n return seed * K + num | 0;\n };\n var hashIntAlt = function hashIntAlt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT;\n // djb2/string-hash\n return (seed << 5) + seed + num | 0;\n };\n var combineHashes = function combineHashes(hash1, hash2) {\n return hash1 * 0x200000 + hash2;\n };\n var combineHashesArray = function combineHashesArray(hashes) {\n return hashes[0] * 0x200000 + hashes[1];\n };\n var hashArrays = function hashArrays(hashes1, hashes2) {\n return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];\n };\n var hashIntsArray = function hashIntsArray(ints, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = ints.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = ints[i++];\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n };\n var hashString = function hashString(str, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = str.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = str.charCodeAt(i++);\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n };\n var hashStrings = function hashStrings() {\n return hashStringsArray(arguments);\n };\n var hashStringsArray = function hashStringsArray(strs) {\n var hash;\n for (var i = 0; i < strs.length; i++) {\n var str = strs[i];\n if (i === 0) {\n hash = hashString(str);\n } else {\n hash = hashString(str, hash);\n }\n }\n return hash;\n };\n\n /*global console */\n var warningsEnabled = true;\n var warnSupported = console.warn != null; // eslint-disable-line no-console\n var traceSupported = console.trace != null; // eslint-disable-line no-console\n\n var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;\n var trueify = function trueify() {\n return true;\n };\n var falsify = function falsify() {\n return false;\n };\n var zeroify = function zeroify() {\n return 0;\n };\n var noop$1 = function noop() {};\n var error = function error(msg) {\n throw new Error(msg);\n };\n var warnings = function warnings(enabled) {\n if (enabled !== undefined) {\n warningsEnabled = !!enabled;\n } else {\n return warningsEnabled;\n }\n };\n var warn = function warn(msg) {\n /* eslint-disable no-console */\n if (!warnings()) {\n return;\n }\n if (warnSupported) {\n console.warn(msg);\n } else {\n console.log(msg);\n if (traceSupported) {\n console.trace();\n }\n }\n }; /* eslint-enable */\n\n var clone = function clone(obj) {\n return extend({}, obj);\n };\n\n // gets a shallow copy of the argument\n var copy = function copy(obj) {\n if (obj == null) {\n return obj;\n }\n if (array(obj)) {\n return obj.slice();\n } else if (plainObject(obj)) {\n return clone(obj);\n } else {\n return obj;\n }\n };\n var copyArray$1 = function copyArray(arr) {\n return arr.slice();\n };\n var uuid = function uuid(a, b /* placeholders */) {\n for (\n // loop :)\n b = a = '';\n // b - result , a - numeric letiable\n a++ < 36;\n //\n b += a * 51 & 52 // if \"a\" is not 9 or 14 or 19 or 24\n ?\n // return a random number or 4\n (a ^ 15 // if \"a\" is not 15\n ?\n // generate a random number from 0 to 15\n 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless \"a\" is 20, in which case a random number from 8 to 11\n : 4 // otherwise 4\n ).toString(16) : '-' // in other cases (if \"a\" is 9,14,19,24) insert \"-\"\n ) {\n }\n return b;\n };\n var _staticEmptyObject = {};\n var staticEmptyObject = function staticEmptyObject() {\n return _staticEmptyObject;\n };\n var defaults$g = function defaults(_defaults) {\n var keys = Object.keys(_defaults);\n return function (opts) {\n var filledOpts = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var optVal = opts == null ? undefined : opts[key];\n filledOpts[key] = optVal === undefined ? _defaults[key] : optVal;\n }\n return filledOpts;\n };\n };\n var removeFromArray = function removeFromArray(arr, ele, oneCopy) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (arr[i] === ele) {\n arr.splice(i, 1);\n if (oneCopy) {\n break;\n }\n }\n }\n };\n var clearArray = function clearArray(arr) {\n arr.splice(0, arr.length);\n };\n var push = function push(arr, otherArr) {\n for (var i = 0; i < otherArr.length; i++) {\n var el = otherArr[i];\n arr.push(el);\n }\n };\n var getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n return obj[propName];\n };\n var setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n obj[propName] = value;\n };\n\n /* global Map */\n var ObjectMap = /*#__PURE__*/function () {\n function ObjectMap() {\n _classCallCheck(this, ObjectMap);\n this._obj = {};\n }\n _createClass(ObjectMap, [{\n key: \"set\",\n value: function set(key, val) {\n this._obj[key] = val;\n return this;\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this._obj[key] = undefined;\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = {};\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return this._obj[key] !== undefined;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this._obj[key];\n }\n }]);\n return ObjectMap;\n }();\n var Map$2 = typeof Map !== 'undefined' ? Map : ObjectMap;\n\n /* global Set */\n\n var undef = \"undefined\" ;\n var ObjectSet = /*#__PURE__*/function () {\n function ObjectSet(arrayOrObjectSet) {\n _classCallCheck(this, ObjectSet);\n this._obj = Object.create(null);\n this.size = 0;\n if (arrayOrObjectSet != null) {\n var arr;\n if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {\n arr = arrayOrObjectSet.toArray();\n } else {\n arr = arrayOrObjectSet;\n }\n for (var i = 0; i < arr.length; i++) {\n this.add(arr[i]);\n }\n }\n }\n _createClass(ObjectSet, [{\n key: \"instanceString\",\n value: function instanceString() {\n return 'set';\n }\n }, {\n key: \"add\",\n value: function add(val) {\n var o = this._obj;\n if (o[val] !== 1) {\n o[val] = 1;\n this.size++;\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(val) {\n var o = this._obj;\n if (o[val] === 1) {\n o[val] = 0;\n this.size--;\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = Object.create(null);\n }\n }, {\n key: \"has\",\n value: function has(val) {\n return this._obj[val] === 1;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var _this = this;\n return Object.keys(this._obj).filter(function (key) {\n return _this.has(key);\n });\n }\n }, {\n key: \"forEach\",\n value: function forEach(callback, thisArg) {\n return this.toArray().forEach(callback, thisArg);\n }\n }]);\n return ObjectSet;\n }();\n var Set$1 = (typeof Set === \"undefined\" ? \"undefined\" : _typeof(Set)) !== undef ? Set : ObjectSet;\n\n // represents a node or an edge\n var Element = function Element(cy, params) {\n var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (cy === undefined || params === undefined || !core(cy)) {\n error('An element must have a core reference and parameters set');\n return;\n }\n var group = params.group;\n\n // try to automatically infer the group if unspecified\n if (group == null) {\n if (params.data && params.data.source != null && params.data.target != null) {\n group = 'edges';\n } else {\n group = 'nodes';\n }\n }\n\n // validate group\n if (group !== 'nodes' && group !== 'edges') {\n error('An element must be of type `nodes` or `edges`; you specified `' + group + '`');\n return;\n }\n\n // make the element array-like, just like a collection\n this.length = 1;\n this[0] = this;\n\n // NOTE: when something is added here, add also to ele.json()\n var _p = this._private = {\n cy: cy,\n single: true,\n // indicates this is an element\n data: params.data || {},\n // data object\n position: params.position || {\n x: 0,\n y: 0\n },\n // (x, y) position pair\n autoWidth: undefined,\n // width and height of nodes calculated by the renderer when set to special 'auto' value\n autoHeight: undefined,\n autoPadding: undefined,\n compoundBoundsClean: false,\n // whether the compound dimensions need to be recalculated the next time dimensions are read\n listeners: [],\n // array of bound listeners\n group: group,\n // string; 'nodes' or 'edges'\n style: {},\n // properties as set by the style\n rstyle: {},\n // properties for style sent from the renderer to the core\n styleCxts: [],\n // applied style contexts from the styler\n styleKeys: {},\n // per-group keys of style property values\n removed: true,\n // whether it's inside the vis; true if removed (set true here since we call restore)\n selected: params.selected ? true : false,\n // whether it's selected\n selectable: params.selectable === undefined ? true : params.selectable ? true : false,\n // whether it's selectable\n locked: params.locked ? true : false,\n // whether the element is locked (cannot be moved)\n grabbed: false,\n // whether the element is grabbed by the mouse; renderer sets this privately\n grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false,\n // whether the element can be grabbed\n pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false,\n // whether the element has passthrough panning enabled\n active: false,\n // whether the element is active from user interaction\n classes: new Set$1(),\n // map ( className => true )\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n rscratch: {},\n // object in which the renderer can store information\n scratch: params.scratch || {},\n // scratch objects\n edges: [],\n // array of connected edges\n children: [],\n // array of children\n parent: params.parent && params.parent.isNode() ? params.parent : null,\n // parent ref\n traversalCache: {},\n // cache of output of traversal functions\n backgrounding: false,\n // whether background images are loading\n bbCache: null,\n // cache of the current bounding box\n bbCacheShift: {\n x: 0,\n y: 0\n },\n // shift applied to cached bb to be applied on next get\n bodyBounds: null,\n // bounds cache of element body, w/o overlay\n overlayBounds: null,\n // bounds cache of element body, including overlay\n labelBounds: {\n // bounds cache of labels\n all: null,\n source: null,\n target: null,\n main: null\n },\n arrowBounds: {\n // bounds cache of edge arrows\n source: null,\n target: null,\n 'mid-source': null,\n 'mid-target': null\n }\n };\n if (_p.position.x == null) {\n _p.position.x = 0;\n }\n if (_p.position.y == null) {\n _p.position.y = 0;\n }\n\n // renderedPosition overrides if specified\n if (params.renderedPosition) {\n var rpos = params.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n _p.position = {\n x: (rpos.x - pan.x) / zoom,\n y: (rpos.y - pan.y) / zoom\n };\n }\n var classes = [];\n if (array(params.classes)) {\n classes = params.classes;\n } else if (string(params.classes)) {\n classes = params.classes.split(/\\s+/);\n }\n for (var i = 0, l = classes.length; i < l; i++) {\n var cls = classes[i];\n if (!cls || cls === '') {\n continue;\n }\n _p.classes.add(cls);\n }\n this.createEmitter();\n var bypass = params.style || params.css;\n if (bypass) {\n warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.');\n this.style(bypass);\n }\n if (restore === undefined || restore) {\n this.restore();\n }\n };\n\n var defineSearch = function defineSearch(params) {\n params = {\n bfs: params.bfs || !params.dfs,\n dfs: params.dfs || !params.bfs\n };\n\n // from pseudocode on wikipedia\n return function searchFn(roots, fn, directed) {\n var options;\n if (plainObject(roots) && !elementOrCollection(roots)) {\n options = roots;\n roots = options.roots || options.root;\n fn = options.visit;\n directed = options.directed;\n }\n directed = arguments.length === 2 && !fn$6(fn) ? fn : directed;\n fn = fn$6(fn) ? fn : function () {};\n var cy = this._private.cy;\n var v = roots = string(roots) ? this.filter(roots) : roots;\n var Q = [];\n var connectedNodes = [];\n var connectedBy = {};\n var id2depth = {};\n var V = {};\n var j = 0;\n var found;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n\n // enqueue v\n for (var i = 0; i < v.length; i++) {\n var vi = v[i];\n var viId = vi.id();\n if (vi.isNode()) {\n Q.unshift(vi);\n if (params.bfs) {\n V[viId] = true;\n connectedNodes.push(vi);\n }\n id2depth[viId] = 0;\n }\n }\n var _loop = function _loop() {\n var v = params.bfs ? Q.shift() : Q.pop();\n var vId = v.id();\n if (params.dfs) {\n if (V[vId]) {\n return \"continue\";\n }\n V[vId] = true;\n connectedNodes.push(v);\n }\n var depth = id2depth[vId];\n var prevEdge = connectedBy[vId];\n var src = prevEdge != null ? prevEdge.source() : null;\n var tgt = prevEdge != null ? prevEdge.target() : null;\n var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0];\n var ret = void 0;\n ret = fn(v, prevEdge, prevNode, j++, depth);\n if (ret === true) {\n found = v;\n return \"break\";\n }\n if (ret === false) {\n return \"break\";\n }\n var vwEdges = v.connectedEdges().filter(function (e) {\n return (!directed || e.source().same(v)) && edges.has(e);\n });\n for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {\n var e = vwEdges[_i2];\n var w = e.connectedNodes().filter(function (n) {\n return !n.same(v) && nodes.has(n);\n });\n var wId = w.id();\n if (w.length !== 0 && !V[wId]) {\n w = w[0];\n Q.push(w);\n if (params.bfs) {\n V[wId] = true;\n connectedNodes.push(w);\n }\n connectedBy[wId] = e;\n id2depth[wId] = id2depth[vId] + 1;\n }\n }\n };\n while (Q.length !== 0) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n if (_ret === \"break\") break;\n }\n var connectedEles = cy.collection();\n for (var _i = 0; _i < connectedNodes.length; _i++) {\n var node = connectedNodes[_i];\n var edge = connectedBy[node.id()];\n if (edge != null) {\n connectedEles.push(edge);\n }\n connectedEles.push(node);\n }\n return {\n path: cy.collection(connectedEles),\n found: cy.collection(found)\n };\n };\n };\n\n // search, spanning trees, etc\n var elesfn$v = {\n breadthFirstSearch: defineSearch({\n bfs: true\n }),\n depthFirstSearch: defineSearch({\n dfs: true\n })\n };\n\n // nice, short mathematical alias\n elesfn$v.bfs = elesfn$v.breadthFirstSearch;\n elesfn$v.dfs = elesfn$v.depthFirstSearch;\n\n var heap$1 = createCommonjsModule(function (module, exports) {\n // Generated by CoffeeScript 1.8.0\n (function() {\n var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup;\n\n floor = Math.floor, min = Math.min;\n\n\n /*\n Default comparison function to be used\n */\n\n defaultCmp = function(x, y) {\n if (x < y) {\n return -1;\n }\n if (x > y) {\n return 1;\n }\n return 0;\n };\n\n\n /*\n Insert item x in list a, and keep it sorted assuming a is sorted.\n \n If x is already in a, insert it to the right of the rightmost x.\n \n Optional args lo (default 0) and hi (default a.length) bound the slice\n of a to be searched.\n */\n\n insort = function(a, x, lo, hi, cmp) {\n var mid;\n if (lo == null) {\n lo = 0;\n }\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (lo < 0) {\n throw new Error('lo must be non-negative');\n }\n if (hi == null) {\n hi = a.length;\n }\n while (lo < hi) {\n mid = floor((lo + hi) / 2);\n if (cmp(x, a[mid]) < 0) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n return ([].splice.apply(a, [lo, lo - lo].concat(x)), x);\n };\n\n\n /*\n Push item onto heap, maintaining the heap invariant.\n */\n\n heappush = function(array, item, cmp) {\n if (cmp == null) {\n cmp = defaultCmp;\n }\n array.push(item);\n return _siftdown(array, 0, array.length - 1, cmp);\n };\n\n\n /*\n Pop the smallest item off the heap, maintaining the heap invariant.\n */\n\n heappop = function(array, cmp) {\n var lastelt, returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n lastelt = array.pop();\n if (array.length) {\n returnitem = array[0];\n array[0] = lastelt;\n _siftup(array, 0, cmp);\n } else {\n returnitem = lastelt;\n }\n return returnitem;\n };\n\n\n /*\n Pop and return the current smallest value, and add the new item.\n \n This is more efficient than heappop() followed by heappush(), and can be\n more appropriate when using a fixed size heap. Note that the value\n returned may be larger than item! That constrains reasonable use of\n this routine unless written as part of a conditional replacement:\n if item > array[0]\n item = heapreplace(array, item)\n */\n\n heapreplace = function(array, item, cmp) {\n var returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n returnitem = array[0];\n array[0] = item;\n _siftup(array, 0, cmp);\n return returnitem;\n };\n\n\n /*\n Fast version of a heappush followed by a heappop.\n */\n\n heappushpop = function(array, item, cmp) {\n var _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (array.length && cmp(array[0], item) < 0) {\n _ref = [array[0], item], item = _ref[0], array[0] = _ref[1];\n _siftup(array, 0, cmp);\n }\n return item;\n };\n\n\n /*\n Transform list into a heap, in-place, in O(array.length) time.\n */\n\n heapify = function(array, cmp) {\n var i, _i, _len, _ref1, _results, _results1;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n _ref1 = (function() {\n _results1 = [];\n for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); }\n return _results1;\n }).apply(this).reverse();\n _results = [];\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n i = _ref1[_i];\n _results.push(_siftup(array, i, cmp));\n }\n return _results;\n };\n\n\n /*\n Update the position of the given item in the heap.\n This function should be called every time the item is being modified.\n */\n\n updateItem = function(array, item, cmp) {\n var pos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n pos = array.indexOf(item);\n if (pos === -1) {\n return;\n }\n _siftdown(array, 0, pos, cmp);\n return _siftup(array, pos, cmp);\n };\n\n\n /*\n Find the n largest elements in a dataset.\n */\n\n nlargest = function(array, n, cmp) {\n var elem, result, _i, _len, _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n result = array.slice(0, n);\n if (!result.length) {\n return result;\n }\n heapify(result, cmp);\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n heappushpop(result, elem, cmp);\n }\n return result.sort(cmp).reverse();\n };\n\n\n /*\n Find the n smallest elements in a dataset.\n */\n\n nsmallest = function(array, n, cmp) {\n var elem, los, result, _i, _j, _len, _ref, _ref1, _results;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (n * 10 <= array.length) {\n result = array.slice(0, n).sort(cmp);\n if (!result.length) {\n return result;\n }\n los = result[result.length - 1];\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n if (cmp(elem, los) < 0) {\n insort(result, elem, 0, null, cmp);\n result.pop();\n los = result[result.length - 1];\n }\n }\n return result;\n }\n heapify(array, cmp);\n _results = [];\n for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {\n _results.push(heappop(array, cmp));\n }\n return _results;\n };\n\n _siftdown = function(array, startpos, pos, cmp) {\n var newitem, parent, parentpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n newitem = array[pos];\n while (pos > startpos) {\n parentpos = (pos - 1) >> 1;\n parent = array[parentpos];\n if (cmp(newitem, parent) < 0) {\n array[pos] = parent;\n pos = parentpos;\n continue;\n }\n break;\n }\n return array[pos] = newitem;\n };\n\n _siftup = function(array, pos, cmp) {\n var childpos, endpos, newitem, rightpos, startpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n endpos = array.length;\n startpos = pos;\n newitem = array[pos];\n childpos = 2 * pos + 1;\n while (childpos < endpos) {\n rightpos = childpos + 1;\n if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) {\n childpos = rightpos;\n }\n array[pos] = array[childpos];\n pos = childpos;\n childpos = 2 * pos + 1;\n }\n array[pos] = newitem;\n return _siftdown(array, startpos, pos, cmp);\n };\n\n Heap = (function() {\n Heap.push = heappush;\n\n Heap.pop = heappop;\n\n Heap.replace = heapreplace;\n\n Heap.pushpop = heappushpop;\n\n Heap.heapify = heapify;\n\n Heap.updateItem = updateItem;\n\n Heap.nlargest = nlargest;\n\n Heap.nsmallest = nsmallest;\n\n function Heap(cmp) {\n this.cmp = cmp != null ? cmp : defaultCmp;\n this.nodes = [];\n }\n\n Heap.prototype.push = function(x) {\n return heappush(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pop = function() {\n return heappop(this.nodes, this.cmp);\n };\n\n Heap.prototype.peek = function() {\n return this.nodes[0];\n };\n\n Heap.prototype.contains = function(x) {\n return this.nodes.indexOf(x) !== -1;\n };\n\n Heap.prototype.replace = function(x) {\n return heapreplace(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pushpop = function(x) {\n return heappushpop(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.heapify = function() {\n return heapify(this.nodes, this.cmp);\n };\n\n Heap.prototype.updateItem = function(x) {\n return updateItem(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.clear = function() {\n return this.nodes = [];\n };\n\n Heap.prototype.empty = function() {\n return this.nodes.length === 0;\n };\n\n Heap.prototype.size = function() {\n return this.nodes.length;\n };\n\n Heap.prototype.clone = function() {\n var heap;\n heap = new Heap();\n heap.nodes = this.nodes.slice(0);\n return heap;\n };\n\n Heap.prototype.toArray = function() {\n return this.nodes.slice(0);\n };\n\n Heap.prototype.insert = Heap.prototype.push;\n\n Heap.prototype.top = Heap.prototype.peek;\n\n Heap.prototype.front = Heap.prototype.peek;\n\n Heap.prototype.has = Heap.prototype.contains;\n\n Heap.prototype.copy = Heap.prototype.clone;\n\n return Heap;\n\n })();\n\n (function(root, factory) {\n {\n return module.exports = factory();\n }\n })(this, function() {\n return Heap;\n });\n\n }).call(commonjsGlobal);\n });\n\n var heap = heap$1;\n\n var dijkstraDefaults = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n });\n var elesfn$u = {\n dijkstra: function dijkstra(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n weight: args[1],\n directed: args[2]\n };\n }\n var _dijkstraDefaults = dijkstraDefaults(options),\n root = _dijkstraDefaults.root,\n weight = _dijkstraDefaults.weight,\n directed = _dijkstraDefaults.directed;\n var eles = this;\n var weightFn = weight;\n var source = string(root) ? this.filter(root)[0] : root[0];\n var dist = {};\n var prev = {};\n var knownDist = {};\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (ele) {\n return ele.isLoop();\n });\n var getDist = function getDist(node) {\n return dist[node.id()];\n };\n var setDist = function setDist(node, d) {\n dist[node.id()] = d;\n Q.updateItem(node);\n };\n var Q = new heap(function (a, b) {\n return getDist(a) - getDist(b);\n });\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n dist[node.id()] = node.same(source) ? 0 : Infinity;\n Q.push(node);\n }\n var distBetween = function distBetween(u, v) {\n var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges);\n var smallestDistance = Infinity;\n var smallestEdge;\n for (var _i = 0; _i < uvs.length; _i++) {\n var edge = uvs[_i];\n var _weight = weightFn(edge);\n if (_weight < smallestDistance || !smallestEdge) {\n smallestDistance = _weight;\n smallestEdge = edge;\n }\n }\n return {\n edge: smallestEdge,\n dist: smallestDistance\n };\n };\n while (Q.size() > 0) {\n var u = Q.pop();\n var smalletsDist = getDist(u);\n var uid = u.id();\n knownDist[uid] = smalletsDist;\n if (smalletsDist === Infinity) {\n continue;\n }\n var neighbors = u.neighborhood().intersect(nodes);\n for (var _i2 = 0; _i2 < neighbors.length; _i2++) {\n var v = neighbors[_i2];\n var vid = v.id();\n var vDist = distBetween(u, v);\n var alt = smalletsDist + vDist.dist;\n if (alt < getDist(v)) {\n setDist(v, alt);\n prev[vid] = {\n node: u,\n edge: vDist.edge\n };\n }\n } // for\n } // while\n\n return {\n distanceTo: function distanceTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n return knownDist[target.id()];\n },\n pathTo: function pathTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n var S = [];\n var u = target;\n var uid = u.id();\n if (target.length > 0) {\n S.unshift(target);\n while (prev[uid]) {\n var p = prev[uid];\n S.unshift(p.edge);\n S.unshift(p.node);\n u = p.node;\n uid = u.id();\n }\n }\n return eles.spawn(S);\n }\n };\n }\n };\n\n var elesfn$t = {\n // kruskal's algorithm (finds min spanning tree, assuming undirected graph)\n // implemented from pseudocode from wikipedia\n kruskal: function kruskal(weightFn) {\n weightFn = weightFn || function (edge) {\n return 1;\n };\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var forest = new Array(numNodes);\n var A = nodes; // assumes byGroup() creates new collections that can be safely mutated\n\n var findSetIndex = function findSetIndex(ele) {\n for (var i = 0; i < forest.length; i++) {\n var eles = forest[i];\n if (eles.has(ele)) {\n return i;\n }\n }\n };\n\n // start with one forest per node\n for (var i = 0; i < numNodes; i++) {\n forest[i] = this.spawn(nodes[i]);\n }\n var S = edges.sort(function (a, b) {\n return weightFn(a) - weightFn(b);\n });\n for (var _i = 0; _i < S.length; _i++) {\n var edge = S[_i];\n var u = edge.source()[0];\n var v = edge.target()[0];\n var setUIndex = findSetIndex(u);\n var setVIndex = findSetIndex(v);\n var setU = forest[setUIndex];\n var setV = forest[setVIndex];\n if (setUIndex !== setVIndex) {\n A.merge(edge);\n\n // combine forests for u and v\n setU.merge(setV);\n forest.splice(setVIndex, 1);\n }\n }\n return A;\n }\n };\n\n var aStarDefaults = defaults$g({\n root: null,\n goal: null,\n weight: function weight(edge) {\n return 1;\n },\n heuristic: function heuristic(edge) {\n return 0;\n },\n directed: false\n });\n var elesfn$s = {\n // Implemented from pseudocode from wikipedia\n aStar: function aStar(options) {\n var cy = this.cy();\n var _aStarDefaults = aStarDefaults(options),\n root = _aStarDefaults.root,\n goal = _aStarDefaults.goal,\n heuristic = _aStarDefaults.heuristic,\n directed = _aStarDefaults.directed,\n weight = _aStarDefaults.weight;\n root = cy.collection(root)[0];\n goal = cy.collection(goal)[0];\n var sid = root.id();\n var tid = goal.id();\n var gScore = {};\n var fScore = {};\n var closedSetIds = {};\n var openSet = new heap(function (a, b) {\n return fScore[a.id()] - fScore[b.id()];\n });\n var openSetIds = new Set$1();\n var cameFrom = {};\n var cameFromEdge = {};\n var addToOpenSet = function addToOpenSet(ele, id) {\n openSet.push(ele);\n openSetIds.add(id);\n };\n var cMin, cMinId;\n var popFromOpenSet = function popFromOpenSet() {\n cMin = openSet.pop();\n cMinId = cMin.id();\n openSetIds[\"delete\"](cMinId);\n };\n var isInOpenSet = function isInOpenSet(id) {\n return openSetIds.has(id);\n };\n addToOpenSet(root, sid);\n gScore[sid] = 0;\n fScore[sid] = heuristic(root);\n\n // Counter\n var steps = 0;\n\n // Main loop\n while (openSet.size() > 0) {\n popFromOpenSet();\n steps++;\n\n // If we've found our goal, then we are done\n if (cMinId === tid) {\n var path = [];\n var pathNode = goal;\n var pathNodeId = tid;\n var pathEdge = cameFromEdge[pathNodeId];\n for (;;) {\n path.unshift(pathNode);\n if (pathEdge != null) {\n path.unshift(pathEdge);\n }\n pathNode = cameFrom[pathNodeId];\n if (pathNode == null) {\n break;\n }\n pathNodeId = pathNode.id();\n pathEdge = cameFromEdge[pathNodeId];\n }\n return {\n found: true,\n distance: gScore[cMinId],\n path: this.spawn(path),\n steps: steps\n };\n }\n\n // Add cMin to processed nodes\n closedSetIds[cMinId] = true;\n\n // Update scores for neighbors of cMin\n // Take into account if graph is directed or not\n var vwEdges = cMin._private.edges;\n for (var i = 0; i < vwEdges.length; i++) {\n var e = vwEdges[i];\n\n // edge must be in set of calling eles\n if (!this.hasElementWithId(e.id())) {\n continue;\n }\n\n // cMin must be the source of edge if directed\n if (directed && e.data('source') !== cMinId) {\n continue;\n }\n var wSrc = e.source();\n var wTgt = e.target();\n var w = wSrc.id() !== cMinId ? wSrc : wTgt;\n var wid = w.id();\n\n // node must be in set of calling eles\n if (!this.hasElementWithId(wid)) {\n continue;\n }\n\n // if node is in closedSet, ignore it\n if (closedSetIds[wid]) {\n continue;\n }\n\n // New tentative score for node w\n var tempScore = gScore[cMinId] + weight(e);\n\n // Update gScore for node w if:\n // w not present in openSet\n // OR\n // tentative gScore is less than previous value\n\n // w not in openSet\n if (!isInOpenSet(wid)) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n addToOpenSet(w, wid);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n continue;\n }\n\n // w already in openSet, but with greater gScore\n if (tempScore < gScore[wid]) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n }\n } // End of neighbors update\n } // End of main loop\n\n // If we've reached here, then we've not reached our goal\n return {\n found: false,\n distance: undefined,\n path: undefined,\n steps: steps\n };\n }\n }; // elesfn\n\n var floydWarshallDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n });\n var elesfn$r = {\n // Implemented from pseudocode from wikipedia\n floydWarshall: function floydWarshall(options) {\n var cy = this.cy();\n var _floydWarshallDefault = floydWarshallDefaults(options),\n weight = _floydWarshallDefault.weight,\n directed = _floydWarshallDefault.directed;\n var weightFn = weight;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var N = nodes.length;\n var Nsq = N * N;\n var indexOf = function indexOf(node) {\n return nodes.indexOf(node);\n };\n var atIndex = function atIndex(i) {\n return nodes[i];\n };\n\n // Initialize distance matrix\n var dist = new Array(Nsq);\n for (var n = 0; n < Nsq; n++) {\n var j = n % N;\n var i = (n - j) / N;\n if (i === j) {\n dist[n] = 0;\n } else {\n dist[n] = Infinity;\n }\n }\n\n // Initialize matrix used for path reconstruction\n // Initialize distance matrix\n var next = new Array(Nsq);\n var edgeNext = new Array(Nsq);\n\n // Process edges\n for (var _i = 0; _i < edges.length; _i++) {\n var edge = edges[_i];\n var src = edge.source()[0];\n var tgt = edge.target()[0];\n if (src === tgt) {\n continue;\n } // exclude loops\n\n var s = indexOf(src);\n var t = indexOf(tgt);\n var st = s * N + t; // source to target index\n var _weight = weightFn(edge);\n\n // Check if already process another edge between same 2 nodes\n if (dist[st] > _weight) {\n dist[st] = _weight;\n next[st] = t;\n edgeNext[st] = edge;\n }\n\n // If undirected graph, process 'reversed' edge\n if (!directed) {\n var ts = t * N + s; // target to source index\n\n if (!directed && dist[ts] > _weight) {\n dist[ts] = _weight;\n next[ts] = s;\n edgeNext[ts] = edge;\n }\n }\n }\n\n // Main loop\n for (var k = 0; k < N; k++) {\n for (var _i2 = 0; _i2 < N; _i2++) {\n var ik = _i2 * N + k;\n for (var _j = 0; _j < N; _j++) {\n var ij = _i2 * N + _j;\n var kj = k * N + _j;\n if (dist[ik] + dist[kj] < dist[ij]) {\n dist[ij] = dist[ik] + dist[kj];\n next[ij] = next[ik];\n }\n }\n }\n }\n var getArgEle = function getArgEle(ele) {\n return (string(ele) ? cy.filter(ele) : ele)[0];\n };\n var indexOfArgEle = function indexOfArgEle(ele) {\n return indexOf(getArgEle(ele));\n };\n var res = {\n distance: function distance(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n return dist[i * N + j];\n },\n path: function path(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n var fromNode = atIndex(i);\n if (i === j) {\n return fromNode.collection();\n }\n if (next[i * N + j] == null) {\n return cy.collection();\n }\n var path = cy.collection();\n var prev = i;\n var edge;\n path.merge(fromNode);\n while (i !== j) {\n prev = i;\n i = next[i * N + j];\n edge = edgeNext[prev * N + i];\n path.merge(edge);\n path.merge(atIndex(i));\n }\n return path;\n }\n };\n return res;\n } // floydWarshall\n }; // elesfn\n\n var bellmanFordDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n root: null\n });\n var elesfn$q = {\n // Implemented from pseudocode from wikipedia\n bellmanFord: function bellmanFord(options) {\n var _this = this;\n var _bellmanFordDefaults = bellmanFordDefaults(options),\n weight = _bellmanFordDefaults.weight,\n directed = _bellmanFordDefaults.directed,\n root = _bellmanFordDefaults.root;\n var weightFn = weight;\n var eles = this;\n var cy = this.cy();\n var _this$byGroup = this.byGroup(),\n edges = _this$byGroup.edges,\n nodes = _this$byGroup.nodes;\n var numNodes = nodes.length;\n var infoMap = new Map$2();\n var hasNegativeWeightCycle = false;\n var negativeWeightCycles = [];\n root = cy.collection(root)[0]; // in case selector passed\n\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numEdges = edges.length;\n var getInfo = function getInfo(node) {\n var obj = infoMap.get(node.id());\n if (!obj) {\n obj = {};\n infoMap.set(node.id(), obj);\n }\n return obj;\n };\n var getNodeFromTo = function getNodeFromTo(to) {\n return (string(to) ? cy.$(to) : to)[0];\n };\n var distanceTo = function distanceTo(to) {\n return getInfo(getNodeFromTo(to)).dist;\n };\n var pathTo = function pathTo(to) {\n var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root;\n var end = getNodeFromTo(to);\n var path = [];\n var node = end;\n for (;;) {\n if (node == null) {\n return _this.spawn();\n }\n var _getInfo = getInfo(node),\n edge = _getInfo.edge,\n pred = _getInfo.pred;\n path.unshift(node[0]);\n if (node.same(thisStart) && path.length > 0) {\n break;\n }\n if (edge != null) {\n path.unshift(edge);\n }\n node = pred;\n }\n return eles.spawn(path);\n };\n\n // Initializations { dist, pred, edge }\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n var info = getInfo(node);\n if (node.same(root)) {\n info.dist = 0;\n } else {\n info.dist = Infinity;\n }\n info.pred = null;\n info.edge = null;\n }\n\n // Edges relaxation\n var replacedEdge = false;\n var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) {\n var dist = info1.dist + weight;\n if (dist < info2.dist && !edge.same(info1.edge)) {\n info2.dist = dist;\n info2.pred = node1;\n info2.edge = edge;\n replacedEdge = true;\n }\n };\n for (var _i = 1; _i < numNodes; _i++) {\n replacedEdge = false;\n for (var e = 0; e < numEdges; e++) {\n var edge = edges[e];\n var src = edge.source();\n var tgt = edge.target();\n var _weight = weightFn(edge);\n var srcInfo = getInfo(src);\n var tgtInfo = getInfo(tgt);\n checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);\n\n // If undirected graph, we need to take into account the 'reverse' edge\n if (!directed) {\n checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);\n }\n }\n if (!replacedEdge) {\n break;\n }\n }\n if (replacedEdge) {\n // Check for negative weight cycles\n var negativeWeightCycleIds = [];\n for (var _e = 0; _e < numEdges; _e++) {\n var _edge = edges[_e];\n var _src = _edge.source();\n var _tgt = _edge.target();\n var _weight2 = weightFn(_edge);\n var srcDist = getInfo(_src).dist;\n var tgtDist = getInfo(_tgt).dist;\n if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {\n if (!hasNegativeWeightCycle) {\n warn('Graph contains a negative weight cycle for Bellman-Ford');\n hasNegativeWeightCycle = true;\n }\n if (options.findNegativeWeightCycles !== false) {\n var negativeNodes = [];\n if (srcDist + _weight2 < tgtDist) {\n negativeNodes.push(_src);\n }\n if (!directed && tgtDist + _weight2 < srcDist) {\n negativeNodes.push(_tgt);\n }\n var numNegativeNodes = negativeNodes.length;\n for (var n = 0; n < numNegativeNodes; n++) {\n var start = negativeNodes[n];\n var cycle = [start];\n cycle.push(getInfo(start).edge);\n var _node = getInfo(start).pred;\n while (cycle.indexOf(_node) === -1) {\n cycle.push(_node);\n cycle.push(getInfo(_node).edge);\n _node = getInfo(_node).pred;\n }\n cycle = cycle.slice(cycle.indexOf(_node));\n var smallestId = cycle[0].id();\n var smallestIndex = 0;\n for (var c = 2; c < cycle.length; c += 2) {\n if (cycle[c].id() < smallestId) {\n smallestId = cycle[c].id();\n smallestIndex = c;\n }\n }\n cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));\n cycle.push(cycle[0]);\n var cycleId = cycle.map(function (el) {\n return el.id();\n }).join(\",\");\n if (negativeWeightCycleIds.indexOf(cycleId) === -1) {\n negativeWeightCycles.push(eles.spawn(cycle));\n negativeWeightCycleIds.push(cycleId);\n }\n }\n } else {\n break;\n }\n }\n }\n }\n return {\n distanceTo: distanceTo,\n pathTo: pathTo,\n hasNegativeWeightCycle: hasNegativeWeightCycle,\n negativeWeightCycles: negativeWeightCycles\n };\n } // bellmanFord\n }; // elesfn\n\n var sqrt2 = Math.sqrt(2);\n\n // Function which colapses 2 (meta) nodes into one\n // Updates the remaining edge lists\n // Receives as a paramater the edge which causes the collapse\n var collapse = function collapse(edgeIndex, nodeMap, remainingEdges) {\n if (remainingEdges.length === 0) {\n error(\"Karger-Stein must be run on a connected (sub)graph\");\n }\n var edgeInfo = remainingEdges[edgeIndex];\n var sourceIn = edgeInfo[1];\n var targetIn = edgeInfo[2];\n var partition1 = nodeMap[sourceIn];\n var partition2 = nodeMap[targetIn];\n var newEdges = remainingEdges; // re-use array\n\n // Delete all edges between partition1 and partition2\n for (var i = newEdges.length - 1; i >= 0; i--) {\n var edge = newEdges[i];\n var src = edge[1];\n var tgt = edge[2];\n if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {\n newEdges.splice(i, 1);\n }\n }\n\n // All edges pointing to partition2 should now point to partition1\n for (var _i = 0; _i < newEdges.length; _i++) {\n var _edge = newEdges[_i];\n if (_edge[1] === partition2) {\n // Check source\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][1] = partition1;\n } else if (_edge[2] === partition2) {\n // Check target\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][2] = partition1;\n }\n }\n\n // Move all nodes from partition2 to partition1\n for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {\n if (nodeMap[_i2] === partition2) {\n nodeMap[_i2] = partition1;\n }\n }\n return newEdges;\n };\n\n // Contracts a graph until we reach a certain number of meta nodes\n var contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) {\n while (size > sizeLimit) {\n // Choose an edge randomly\n var edgeIndex = Math.floor(Math.random() * remainingEdges.length);\n\n // Collapse graph based on edge\n remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);\n size--;\n }\n return remainingEdges;\n };\n var elesfn$p = {\n // Computes the minimum cut of an undirected graph\n // Returns the correct answer with high probability\n kargerStein: function kargerStein() {\n var _this = this;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numNodes = nodes.length;\n var numEdges = edges.length;\n var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));\n var stopSize = Math.floor(numNodes / sqrt2);\n if (numNodes < 2) {\n error('At least 2 nodes are required for Karger-Stein algorithm');\n return undefined;\n }\n\n // Now store edge destination as indexes\n // Format for each edge (edge index, source node index, target node index)\n var edgeIndexes = [];\n for (var i = 0; i < numEdges; i++) {\n var e = edges[i];\n edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]);\n }\n\n // We will store the best cut found here\n var minCutSize = Infinity;\n var minCutEdgeIndexes = [];\n var minCutNodeMap = new Array(numNodes);\n\n // Initial meta node partition\n var metaNodeMap = new Array(numNodes);\n var metaNodeMap2 = new Array(numNodes);\n var copyNodesMap = function copyNodesMap(from, to) {\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n to[_i3] = from[_i3];\n }\n };\n\n // Main loop\n for (var iter = 0; iter <= numIter; iter++) {\n // Reset meta node partition\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n metaNodeMap[_i4] = _i4;\n }\n\n // Contract until stop point (stopSize nodes)\n var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);\n var edgesState2 = edgesState.slice(); // copy\n\n // Create a copy of the colapsed nodes state\n copyNodesMap(metaNodeMap, metaNodeMap2);\n\n // Run 2 iterations starting in the stop state\n var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);\n var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);\n\n // Is any of the 2 results the best cut so far?\n if (res1.length <= res2.length && res1.length < minCutSize) {\n minCutSize = res1.length;\n minCutEdgeIndexes = res1;\n copyNodesMap(metaNodeMap, minCutNodeMap);\n } else if (res2.length <= res1.length && res2.length < minCutSize) {\n minCutSize = res2.length;\n minCutEdgeIndexes = res2;\n copyNodesMap(metaNodeMap2, minCutNodeMap);\n }\n } // end of main loop\n\n // Construct result\n var cut = this.spawn(minCutEdgeIndexes.map(function (e) {\n return edges[e[0]];\n }));\n var partition1 = this.spawn();\n var partition2 = this.spawn();\n\n // traverse metaNodeMap for best cut\n var witnessNodePartition = minCutNodeMap[0];\n for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {\n var partitionId = minCutNodeMap[_i5];\n var node = nodes[_i5];\n if (partitionId === witnessNodePartition) {\n partition1.merge(node);\n } else {\n partition2.merge(node);\n }\n }\n\n // construct components corresponding to each disjoint subset of nodes\n var constructComponent = function constructComponent(subset) {\n var component = _this.spawn();\n subset.forEach(function (node) {\n component.merge(node);\n node.connectedEdges().forEach(function (edge) {\n // ensure edge is within calling collection and edge is not in cut\n if (_this.contains(edge) && !cut.contains(edge)) {\n component.merge(edge);\n }\n });\n });\n return component;\n };\n var components = [constructComponent(partition1), constructComponent(partition2)];\n var ret = {\n cut: cut,\n components: components,\n // n.b. partitions are included to be compatible with the old api spec\n // (could be removed in a future major version)\n partition1: partition1,\n partition2: partition2\n };\n return ret;\n }\n }; // elesfn\n\n var copyPosition = function copyPosition(p) {\n return {\n x: p.x,\n y: p.y\n };\n };\n var modelToRenderedPosition = function modelToRenderedPosition(p, zoom, pan) {\n return {\n x: p.x * zoom + pan.x,\n y: p.y * zoom + pan.y\n };\n };\n var renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) {\n return {\n x: (p.x - pan.x) / zoom,\n y: (p.y - pan.y) / zoom\n };\n };\n var array2point = function array2point(arr) {\n return {\n x: arr[0],\n y: arr[1]\n };\n };\n var min = function min(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var min = Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n min = Math.min(val, min);\n }\n }\n return min;\n };\n var max = function max(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var max = -Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n max = Math.max(val, max);\n }\n }\n return max;\n };\n var mean = function mean(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var total = 0;\n var n = 0;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n total += val;\n n++;\n }\n }\n return total / n;\n };\n var median = function median(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (copy) {\n arr = arr.slice(begin, end);\n } else {\n if (end < arr.length) {\n arr.splice(end, arr.length - end);\n }\n if (begin > 0) {\n arr.splice(0, begin);\n }\n }\n\n // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start\n var off = 0; // offset from non-finite values\n for (var i = arr.length - 1; i >= 0; i--) {\n var v = arr[i];\n if (includeHoles) {\n if (!isFinite(v)) {\n arr[i] = -Infinity;\n off++;\n }\n } else {\n // just remove it if we don't want to consider holes\n arr.splice(i, 1);\n }\n }\n if (sort) {\n arr.sort(function (a, b) {\n return a - b;\n }); // requires copy = true if you don't want to change the orig\n }\n\n var len = arr.length;\n var mid = Math.floor(len / 2);\n if (len % 2 !== 0) {\n return arr[mid + 1 + off];\n } else {\n return (arr[mid - 1 + off] + arr[mid + off]) / 2;\n }\n };\n var deg2rad = function deg2rad(deg) {\n return Math.PI * deg / 180;\n };\n var getAngleFromDisp = function getAngleFromDisp(dispX, dispY) {\n return Math.atan2(dispY, dispX) - Math.PI / 2;\n };\n var log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n };\n var signum = function signum(x) {\n if (x > 0) {\n return 1;\n } else if (x < 0) {\n return -1;\n } else {\n return 0;\n }\n };\n var dist = function dist(p1, p2) {\n return Math.sqrt(sqdist(p1, p2));\n };\n var sqdist = function sqdist(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return dx * dx + dy * dy;\n };\n var inPlaceSumNormalize = function inPlaceSumNormalize(v) {\n var length = v.length;\n\n // First, get sum of all elements\n var total = 0;\n for (var i = 0; i < length; i++) {\n total += v[i];\n }\n\n // Now, divide each by the sum of all elements\n for (var _i = 0; _i < length; _i++) {\n v[_i] = v[_i] / total;\n }\n return v;\n };\n\n // from http://en.wikipedia.org/wiki/Bézier_curve#Quadratic_curves\n var qbezierAt = function qbezierAt(p0, p1, p2, t) {\n return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2;\n };\n var qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) {\n return {\n x: qbezierAt(p0.x, p1.x, p2.x, t),\n y: qbezierAt(p0.y, p1.y, p2.y, t)\n };\n };\n var lineAt = function lineAt(p0, p1, t, d) {\n var vec = {\n x: p1.x - p0.x,\n y: p1.y - p0.y\n };\n var vecDist = dist(p0, p1);\n var normVec = {\n x: vec.x / vecDist,\n y: vec.y / vecDist\n };\n t = t == null ? 0 : t;\n d = d != null ? d : t * vecDist;\n return {\n x: p0.x + normVec.x * d,\n y: p0.y + normVec.y * d\n };\n };\n var bound = function bound(min, val, max) {\n return Math.max(min, Math.min(max, val));\n };\n\n // makes a full bb (x1, y1, x2, y2, w, h) from implicit params\n var makeBoundingBox = function makeBoundingBox(bb) {\n if (bb == null) {\n return {\n x1: Infinity,\n y1: Infinity,\n x2: -Infinity,\n y2: -Infinity,\n w: 0,\n h: 0\n };\n } else if (bb.x1 != null && bb.y1 != null) {\n if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x2,\n y2: bb.y2,\n w: bb.x2 - bb.x1,\n h: bb.y2 - bb.y1\n };\n } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x1 + bb.w,\n y2: bb.y1 + bb.h,\n w: bb.w,\n h: bb.h\n };\n }\n }\n };\n var copyBoundingBox = function copyBoundingBox(bb) {\n return {\n x1: bb.x1,\n x2: bb.x2,\n w: bb.w,\n y1: bb.y1,\n y2: bb.y2,\n h: bb.h\n };\n };\n var clearBoundingBox = function clearBoundingBox(bb) {\n bb.x1 = Infinity;\n bb.y1 = Infinity;\n bb.x2 = -Infinity;\n bb.y2 = -Infinity;\n bb.w = 0;\n bb.h = 0;\n };\n var updateBoundingBox = function updateBoundingBox(bb1, bb2) {\n // update bb1 with bb2 bounds\n\n bb1.x1 = Math.min(bb1.x1, bb2.x1);\n bb1.x2 = Math.max(bb1.x2, bb2.x2);\n bb1.w = bb1.x2 - bb1.x1;\n bb1.y1 = Math.min(bb1.y1, bb2.y1);\n bb1.y2 = Math.max(bb1.y2, bb2.y2);\n bb1.h = bb1.y2 - bb1.y1;\n };\n var expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) {\n bb.x1 = Math.min(bb.x1, x);\n bb.x2 = Math.max(bb.x2, x);\n bb.w = bb.x2 - bb.x1;\n bb.y1 = Math.min(bb.y1, y);\n bb.y2 = Math.max(bb.y2, y);\n bb.h = bb.y2 - bb.y1;\n };\n var expandBoundingBox = function expandBoundingBox(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n bb.x1 -= padding;\n bb.x2 += padding;\n bb.y1 -= padding;\n bb.y2 += padding;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n };\n var expandBoundingBoxSides = function expandBoundingBoxSides(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];\n var top, right, bottom, left;\n if (padding.length === 1) {\n top = right = bottom = left = padding[0];\n } else if (padding.length === 2) {\n top = bottom = padding[0];\n left = right = padding[1];\n } else if (padding.length === 4) {\n var _padding = _slicedToArray(padding, 4);\n top = _padding[0];\n right = _padding[1];\n bottom = _padding[2];\n left = _padding[3];\n }\n bb.x1 -= left;\n bb.x2 += right;\n bb.y1 -= top;\n bb.y2 += bottom;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n };\n\n // assign the values of bb2 into bb1\n var assignBoundingBox = function assignBoundingBox(bb1, bb2) {\n bb1.x1 = bb2.x1;\n bb1.y1 = bb2.y1;\n bb1.x2 = bb2.x2;\n bb1.y2 = bb2.y2;\n bb1.w = bb1.x2 - bb1.x1;\n bb1.h = bb1.y2 - bb1.y1;\n };\n var boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) {\n // case: one bb to right of other\n if (bb1.x1 > bb2.x2) {\n return false;\n }\n if (bb2.x1 > bb1.x2) {\n return false;\n }\n\n // case: one bb to left of other\n if (bb1.x2 < bb2.x1) {\n return false;\n }\n if (bb2.x2 < bb1.x1) {\n return false;\n }\n\n // case: one bb above other\n if (bb1.y2 < bb2.y1) {\n return false;\n }\n if (bb2.y2 < bb1.y1) {\n return false;\n }\n\n // case: one bb below other\n if (bb1.y1 > bb2.y2) {\n return false;\n }\n if (bb2.y1 > bb1.y2) {\n return false;\n }\n\n // otherwise, must have some overlap\n return true;\n };\n var inBoundingBox = function inBoundingBox(bb, x, y) {\n return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2;\n };\n var pointInBoundingBox = function pointInBoundingBox(bb, pt) {\n return inBoundingBox(bb, pt.x, pt.y);\n };\n var boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) {\n return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);\n };\n var roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n\n // Check intersections with straight line segments\n var straightLineIntersections;\n\n // Top segment, left to right\n {\n var topStartX = nodeX - halfWidth + cornerRadius - padding;\n var topStartY = nodeY - halfHeight - padding;\n var topEndX = nodeX + halfWidth - cornerRadius + padding;\n var topEndY = topStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Right segment, top to bottom\n {\n var rightStartX = nodeX + halfWidth + padding;\n var rightStartY = nodeY - halfHeight + cornerRadius - padding;\n var rightEndX = rightStartX;\n var rightEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Bottom segment, left to right\n {\n var bottomStartX = nodeX - halfWidth + cornerRadius - padding;\n var bottomStartY = nodeY + halfHeight + padding;\n var bottomEndX = nodeX + halfWidth - cornerRadius + padding;\n var bottomEndY = bottomStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Left segment, top to bottom\n {\n var leftStartX = nodeX - halfWidth - padding;\n var leftStartY = nodeY - halfHeight + cornerRadius - padding;\n var leftEndX = leftStartX;\n var leftEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Check intersections with arc segments\n var arcIntersections;\n\n // Top Left\n {\n var topLeftCenterX = nodeX - halfWidth + cornerRadius;\n var topLeftCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Top Right\n {\n var topRightCenterX = nodeX + halfWidth - cornerRadius;\n var topRightCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Right\n {\n var bottomRightCenterX = nodeX + halfWidth - cornerRadius;\n var bottomRightCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Left\n {\n var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;\n var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n return []; // if nothing\n };\n\n var inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) {\n var t = tolerance;\n var x1 = Math.min(lx1, lx2);\n var x2 = Math.max(lx1, lx2);\n var y1 = Math.min(ly1, ly2);\n var y2 = Math.max(ly1, ly2);\n return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t;\n };\n var inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) {\n var bb = {\n x1: Math.min(x1, x3, x2) - tolerance,\n x2: Math.max(x1, x3, x2) + tolerance,\n y1: Math.min(y1, y3, y2) - tolerance,\n y2: Math.max(y1, y3, y2) + tolerance\n };\n\n // if outside the rough bounding box for the bezier, then it can't be a hit\n if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) {\n // console.log('bezier out of rough bb')\n return false;\n } else {\n // console.log('do more expensive check');\n return true;\n }\n };\n var solveQuadratic = function solveQuadratic(a, b, c, val) {\n c -= val;\n var r = b * b - 4 * a * c;\n if (r < 0) {\n return [];\n }\n var sqrtR = Math.sqrt(r);\n var denom = 2 * a;\n var root1 = (-b + sqrtR) / denom;\n var root2 = (-b - sqrtR) / denom;\n return [root1, root2];\n };\n var solveCubic = function solveCubic(a, b, c, d, result) {\n // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where\n // r is the real component, i is the imaginary component\n\n // An implementation of the Cardano method from the year 1545\n // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots\n\n var epsilon = 0.00001;\n\n // avoid division by zero while keeping the overall expression close in value\n if (a === 0) {\n a = epsilon;\n }\n b /= a;\n c /= a;\n d /= a;\n var discriminant, q, r, dum1, s, t, term1, r13;\n q = (3.0 * c - b * b) / 9.0;\n r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b));\n r /= 54.0;\n discriminant = q * q * q + r * r;\n result[1] = 0;\n term1 = b / 3.0;\n if (discriminant > 0) {\n s = r + Math.sqrt(discriminant);\n s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0);\n t = r - Math.sqrt(discriminant);\n t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0);\n result[0] = -term1 + s + t;\n term1 += (s + t) / 2.0;\n result[4] = result[2] = -term1;\n term1 = Math.sqrt(3.0) * (-t + s) / 2;\n result[3] = term1;\n result[5] = -term1;\n return;\n }\n result[5] = result[3] = 0;\n if (discriminant === 0) {\n r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0);\n result[0] = -term1 + 2.0 * r13;\n result[4] = result[2] = -(r13 + term1);\n return;\n }\n q = -q;\n dum1 = q * q * q;\n dum1 = Math.acos(r / Math.sqrt(dum1));\n r13 = 2.0 * Math.sqrt(q);\n result[0] = -term1 + r13 * Math.cos(dum1 / 3.0);\n result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0);\n result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0);\n return;\n };\n var sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) {\n // Find minimum distance by using the minimum of the distance\n // function between the given point and the curve\n\n // This gives the coefficients of the resulting cubic equation\n // whose roots tell us where a possible minimum is\n // (Coefficients are divided by 4)\n\n var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3;\n var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3;\n var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y;\n var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y;\n\n // debug(\"coefficients: \" + a / a + \", \" + b / a + \", \" + c / a + \", \" + d / a);\n\n var roots = [];\n\n // Use the cubic solving algorithm\n solveCubic(a, b, c, d, roots);\n var zeroThreshold = 0.0000001;\n var params = [];\n for (var index = 0; index < 6; index += 2) {\n if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) {\n params.push(roots[index]);\n }\n }\n params.push(1.0);\n params.push(0.0);\n var minDistanceSquared = -1;\n var curX, curY, distSquared;\n for (var i = 0; i < params.length; i++) {\n curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3;\n curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3;\n distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2);\n // debug('distance for param ' + params[i] + \": \" + Math.sqrt(distSquared));\n if (minDistanceSquared >= 0) {\n if (distSquared < minDistanceSquared) {\n minDistanceSquared = distSquared;\n }\n } else {\n minDistanceSquared = distSquared;\n }\n }\n return minDistanceSquared;\n };\n var sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) {\n var offset = [x - x1, y - y1];\n var line = [x2 - x1, y2 - y1];\n var lineSq = line[0] * line[0] + line[1] * line[1];\n var hypSq = offset[0] * offset[0] + offset[1] * offset[1];\n var dotProduct = offset[0] * line[0] + offset[1] * line[1];\n var adjSq = dotProduct * dotProduct / lineSq;\n if (dotProduct < 0) {\n return hypSq;\n }\n if (adjSq > lineSq) {\n return (x - x2) * (x - x2) + (y - y2) * (y - y2);\n }\n return hypSq - adjSq;\n };\n var pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) {\n var x1, y1, x2, y2;\n var y3;\n\n // Intersect with vertical line through (x, y)\n var up = 0;\n // let down = 0;\n for (var i = 0; i < points.length / 2; i++) {\n x1 = points[i * 2];\n y1 = points[i * 2 + 1];\n if (i + 1 < points.length / 2) {\n x2 = points[(i + 1) * 2];\n y2 = points[(i + 1) * 2 + 1];\n } else {\n x2 = points[(i + 1 - points.length / 2) * 2];\n y2 = points[(i + 1 - points.length / 2) * 2 + 1];\n }\n if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) {\n y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1;\n if (y3 > y) {\n up++;\n }\n\n // if( y3 < y ){\n // down++;\n // }\n } else {\n continue;\n }\n }\n if (up % 2 === 0) {\n return false;\n } else {\n return true;\n }\n };\n var pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) {\n var transformedPoints = new Array(basePoints.length);\n\n // Gives negative angle\n var angle;\n if (direction[0] != null) {\n angle = Math.atan(direction[1] / direction[0]);\n if (direction[0] < 0) {\n angle = angle + Math.PI / 2;\n } else {\n angle = -angle - Math.PI / 2;\n }\n } else {\n angle = direction;\n }\n var cos = Math.cos(-angle);\n var sin = Math.sin(-angle);\n\n // console.log(\"base: \" + basePoints);\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin);\n transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin);\n transformedPoints[i * 2] += centerX;\n transformedPoints[i * 2 + 1] += centerY;\n }\n var points;\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n return pointInsidePolygonPoints(x, y, points);\n };\n var pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height) {\n var cutPolygonPoints = new Array(basePoints.length);\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n var squaredCornerRadius = cornerRadius * cornerRadius;\n for (var i = 0; i < basePoints.length / 4; i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (i === 0) {\n sourceUv = basePoints.length - 2;\n } else {\n sourceUv = i * 4 - 2;\n }\n destUv = i * 4 + 2;\n var px = centerX + halfW * basePoints[i * 4];\n var py = centerY + halfH * basePoints[i * 4 + 1];\n var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * basePoints[sourceUv];\n var cp0y = py - offset * basePoints[sourceUv + 1];\n var cp1x = px + offset * basePoints[destUv];\n var cp1y = py + offset * basePoints[destUv + 1];\n cutPolygonPoints[i * 4] = cp0x;\n cutPolygonPoints[i * 4 + 1] = cp0y;\n cutPolygonPoints[i * 4 + 2] = cp1x;\n cutPolygonPoints[i * 4 + 3] = cp1y;\n var orthx = basePoints[sourceUv + 1];\n var orthy = -basePoints[sourceUv];\n var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];\n if (cosAlpha < 0) {\n orthx *= -1;\n orthy *= -1;\n }\n var cx = cp0x + orthx * cornerRadius;\n var cy = cp0y + orthy * cornerRadius;\n var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2);\n if (squaredDistance <= squaredCornerRadius) {\n return true;\n }\n }\n return pointInsidePolygonPoints(x, y, cutPolygonPoints);\n };\n var joinLines = function joinLines(lineSet) {\n var vertices = new Array(lineSet.length / 2);\n var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;\n var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;\n for (var i = 0; i < lineSet.length / 4; i++) {\n currentLineStartX = lineSet[i * 4];\n currentLineStartY = lineSet[i * 4 + 1];\n currentLineEndX = lineSet[i * 4 + 2];\n currentLineEndY = lineSet[i * 4 + 3];\n if (i < lineSet.length / 4 - 1) {\n nextLineStartX = lineSet[(i + 1) * 4];\n nextLineStartY = lineSet[(i + 1) * 4 + 1];\n nextLineEndX = lineSet[(i + 1) * 4 + 2];\n nextLineEndY = lineSet[(i + 1) * 4 + 3];\n } else {\n nextLineStartX = lineSet[0];\n nextLineStartY = lineSet[1];\n nextLineEndX = lineSet[2];\n nextLineEndY = lineSet[3];\n }\n var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);\n vertices[i * 2] = intersection[0];\n vertices[i * 2 + 1] = intersection[1];\n }\n return vertices;\n };\n var expandPolygon = function expandPolygon(points, pad) {\n var expandedLineSet = new Array(points.length * 2);\n var currentPointX, currentPointY, nextPointX, nextPointY;\n for (var i = 0; i < points.length / 2; i++) {\n currentPointX = points[i * 2];\n currentPointY = points[i * 2 + 1];\n if (i < points.length / 2 - 1) {\n nextPointX = points[(i + 1) * 2];\n nextPointY = points[(i + 1) * 2 + 1];\n } else {\n nextPointX = points[0];\n nextPointY = points[1];\n }\n\n // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY]\n\n // Assume CCW polygon winding\n\n var offsetX = nextPointY - currentPointY;\n var offsetY = -(nextPointX - currentPointX);\n\n // Normalize\n var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);\n var normalizedOffsetX = offsetX / offsetLength;\n var normalizedOffsetY = offsetY / offsetLength;\n expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad;\n expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad;\n }\n return expandedLineSet;\n };\n var intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) {\n var dispX = centerX - x;\n var dispY = centerY - y;\n dispX /= ellipseWradius;\n dispY /= ellipseHradius;\n var len = Math.sqrt(dispX * dispX + dispY * dispY);\n var newLength = len - 1;\n if (newLength < 0) {\n return [];\n }\n var lenProportion = newLength / len;\n return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y];\n };\n var checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) {\n x -= centerX;\n y -= centerY;\n x /= width / 2 + padding;\n y /= height / 2 + padding;\n return x * x + y * y <= 1;\n };\n\n // Returns intersections of increasing distance from line's start point\n var intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) {\n // Calculate d, direction vector of line\n var d = [x2 - x1, y2 - y1]; // Direction vector of line\n var f = [x1 - centerX, y1 - centerY];\n var a = d[0] * d[0] + d[1] * d[1];\n var b = 2 * (f[0] * d[0] + f[1] * d[1]);\n var c = f[0] * f[0] + f[1] * f[1] - radius * radius;\n var discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n var t1 = (-b + Math.sqrt(discriminant)) / (2 * a);\n var t2 = (-b - Math.sqrt(discriminant)) / (2 * a);\n var tMin = Math.min(t1, t2);\n var tMax = Math.max(t1, t2);\n var inRangeParams = [];\n if (tMin >= 0 && tMin <= 1) {\n inRangeParams.push(tMin);\n }\n if (tMax >= 0 && tMax <= 1) {\n inRangeParams.push(tMax);\n }\n if (inRangeParams.length === 0) {\n return [];\n }\n var nearIntersectionX = inRangeParams[0] * d[0] + x1;\n var nearIntersectionY = inRangeParams[0] * d[1] + y1;\n if (inRangeParams.length > 1) {\n if (inRangeParams[0] == inRangeParams[1]) {\n return [nearIntersectionX, nearIntersectionY];\n } else {\n var farIntersectionX = inRangeParams[1] * d[0] + x1;\n var farIntersectionY = inRangeParams[1] * d[1] + y1;\n return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];\n }\n } else {\n return [nearIntersectionX, nearIntersectionY];\n }\n };\n var midOfThree = function midOfThree(a, b, c) {\n if (b <= a && a <= c || c <= a && a <= b) {\n return a;\n } else if (a <= b && b <= c || c <= b && b <= a) {\n return b;\n } else {\n return c;\n }\n };\n\n // (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4)\n var finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {\n var dx13 = x1 - x3;\n var dx21 = x2 - x1;\n var dx43 = x4 - x3;\n var dy13 = y1 - y3;\n var dy21 = y2 - y1;\n var dy43 = y4 - y3;\n var ua_t = dx43 * dy13 - dy43 * dx13;\n var ub_t = dx21 * dy13 - dy21 * dx13;\n var u_b = dy43 * dx21 - dx43 * dy21;\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n var flptThreshold = 0.001;\n var _min = 0 - flptThreshold;\n var _max = 1 + flptThreshold;\n if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {\n return [x1 + ua * dx21, y1 + ua * dy21];\n } else {\n if (!infiniteLines) {\n return [];\n } else {\n return [x1 + ua * dx21, y1 + ua * dy21];\n }\n }\n } else {\n if (ua_t === 0 || ub_t === 0) {\n // Parallel, coincident lines. Check if overlap\n\n // Check endpoint of second line\n if (midOfThree(x1, x2, x4) === x4) {\n return [x4, y4];\n }\n\n // Check start point of second line\n if (midOfThree(x1, x2, x3) === x3) {\n return [x3, y3];\n }\n\n // Endpoint of first line\n if (midOfThree(x3, x4, x2) === x2) {\n return [x2, y2];\n }\n return [];\n } else {\n // Parallel, non-coincident\n return [];\n }\n }\n };\n\n // math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding )\n // intersect a node polygon (pts transformed)\n //\n // math.polygonIntersectLine( x, y, basePoints, centerX, centerY )\n // intersect the points (no transform)\n var polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var transformedPoints = new Array(basePoints.length);\n var doTransform = true;\n if (width == null) {\n doTransform = false;\n }\n var points;\n if (doTransform) {\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = basePoints[i * 2] * width + centerX;\n transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY;\n }\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n } else {\n points = basePoints;\n }\n var currentX, currentY, nextX, nextY;\n for (var _i2 = 0; _i2 < points.length / 2; _i2++) {\n currentX = points[_i2 * 2];\n currentY = points[_i2 * 2 + 1];\n if (_i2 < points.length / 2 - 1) {\n nextX = points[(_i2 + 1) * 2];\n nextY = points[(_i2 + 1) * 2 + 1];\n } else {\n nextX = points[0];\n nextY = points[1];\n }\n intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n return intersections;\n };\n var roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var lines = new Array(basePoints.length);\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n for (var i = 0; i < basePoints.length / 4; i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (i === 0) {\n sourceUv = basePoints.length - 2;\n } else {\n sourceUv = i * 4 - 2;\n }\n destUv = i * 4 + 2;\n var px = centerX + halfW * basePoints[i * 4];\n var py = centerY + halfH * basePoints[i * 4 + 1];\n var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * basePoints[sourceUv];\n var cp0y = py - offset * basePoints[sourceUv + 1];\n var cp1x = px + offset * basePoints[destUv];\n var cp1y = py + offset * basePoints[destUv + 1];\n if (i === 0) {\n lines[basePoints.length - 2] = cp0x;\n lines[basePoints.length - 1] = cp0y;\n } else {\n lines[i * 4 - 2] = cp0x;\n lines[i * 4 - 1] = cp0y;\n }\n lines[i * 4] = cp1x;\n lines[i * 4 + 1] = cp1y;\n var orthx = basePoints[sourceUv + 1];\n var orthy = -basePoints[sourceUv];\n var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];\n if (cosAlpha < 0) {\n orthx *= -1;\n orthy *= -1;\n }\n var cx = cp0x + orthx * cornerRadius;\n var cy = cp0y + orthy * cornerRadius;\n intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n for (var _i3 = 0; _i3 < lines.length / 4; _i3++) {\n intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n if (intersections.length > 2) {\n var lowestIntersection = [intersections[0], intersections[1]];\n var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2);\n for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {\n var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2);\n if (squaredDistance <= lowestSquaredDistance) {\n lowestIntersection[0] = intersections[_i4 * 2];\n lowestIntersection[1] = intersections[_i4 * 2 + 1];\n lowestSquaredDistance = squaredDistance;\n }\n }\n return lowestIntersection;\n }\n return intersections;\n };\n var shortenIntersection = function shortenIntersection(intersection, offset, amount) {\n var disp = [intersection[0] - offset[0], intersection[1] - offset[1]];\n var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);\n var lenRatio = (length - amount) / length;\n if (lenRatio < 0) {\n lenRatio = 0.00001;\n }\n return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];\n };\n var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) {\n var points = generateUnitNgonPoints(sides, rotationRadians);\n points = fitPolygonToSquare(points);\n return points;\n };\n var fitPolygonToSquare = function fitPolygonToSquare(points) {\n var x, y;\n var sides = points.length / 2;\n var minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n for (var i = 0; i < sides; i++) {\n x = points[2 * i];\n y = points[2 * i + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n\n // stretch factors\n var sx = 2 / (maxX - minX);\n var sy = 2 / (maxY - minY);\n for (var _i5 = 0; _i5 < sides; _i5++) {\n x = points[2 * _i5] = points[2 * _i5] * sx;\n y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n if (minY < -1) {\n for (var _i6 = 0; _i6 < sides; _i6++) {\n y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);\n }\n }\n return points;\n };\n var generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) {\n var increment = 1.0 / sides * 2 * Math.PI;\n var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0;\n startAngle += rotationRadians;\n var points = new Array(sides * 2);\n var currentAngle;\n for (var i = 0; i < sides; i++) {\n currentAngle = i * increment + startAngle;\n points[2 * i] = Math.cos(currentAngle); // x\n points[2 * i + 1] = Math.sin(-currentAngle); // y\n }\n\n return points;\n };\n\n // Set the default radius, unless half of width or height is smaller than default\n var getRoundRectangleRadius = function getRoundRectangleRadius(width, height) {\n return Math.min(width / 4, height / 4, 8);\n };\n\n // Set the default radius\n var getRoundPolygonRadius = function getRoundPolygonRadius(width, height) {\n return Math.min(width / 10, height / 10, 8);\n };\n var getCutRectangleCornerLength = function getCutRectangleCornerLength() {\n return 8;\n };\n var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) {\n return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];\n };\n\n // get curve width, height, and control point position offsets as a percentage of node height / width\n var getBarrelCurveConstants = function getBarrelCurveConstants(width, height) {\n return {\n heightOffset: Math.min(15, 0.05 * height),\n widthOffset: Math.min(100, 0.25 * width),\n ctrlPtOffsetPct: 0.05\n };\n };\n\n var pageRankDefaults = defaults$g({\n dampingFactor: 0.8,\n precision: 0.000001,\n iterations: 200,\n weight: function weight(edge) {\n return 1;\n }\n });\n var elesfn$o = {\n pageRank: function pageRank(options) {\n var _pageRankDefaults = pageRankDefaults(options),\n dampingFactor = _pageRankDefaults.dampingFactor,\n precision = _pageRankDefaults.precision,\n iterations = _pageRankDefaults.iterations,\n weight = _pageRankDefaults.weight;\n var cy = this._private.cy;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var numNodesSqd = numNodes * numNodes;\n var numEdges = edges.length;\n\n // Construct transposed adjacency matrix\n // First lets have a zeroed matrix of the right size\n // We'll also keep track of the sum of each column\n var matrix = new Array(numNodesSqd);\n var columnSum = new Array(numNodes);\n var additionalProb = (1 - dampingFactor) / numNodes;\n\n // Create null matrix\n for (var i = 0; i < numNodes; i++) {\n for (var j = 0; j < numNodes; j++) {\n var n = i * numNodes + j;\n matrix[n] = 0;\n }\n columnSum[i] = 0;\n }\n\n // Now, process edges\n for (var _i = 0; _i < numEdges; _i++) {\n var edge = edges[_i];\n var srcId = edge.data('source');\n var tgtId = edge.data('target');\n\n // Don't include loops in the matrix\n if (srcId === tgtId) {\n continue;\n }\n var s = nodes.indexOfId(srcId);\n var t = nodes.indexOfId(tgtId);\n var w = weight(edge);\n var _n = t * numNodes + s;\n\n // Update matrix\n matrix[_n] += w;\n\n // Update column sum\n columnSum[s] += w;\n }\n\n // Add additional probability based on damping factor\n // Also, take into account columns that have sum = 0\n var p = 1.0 / numNodes + additionalProb; // Shorthand\n\n // Traverse matrix, column by column\n for (var _j = 0; _j < numNodes; _j++) {\n if (columnSum[_j] === 0) {\n // No 'links' out from node jth, assume equal probability for each possible node\n for (var _i2 = 0; _i2 < numNodes; _i2++) {\n var _n2 = _i2 * numNodes + _j;\n matrix[_n2] = p;\n }\n } else {\n // Node jth has outgoing link, compute normalized probabilities\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n var _n3 = _i3 * numNodes + _j;\n matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;\n }\n }\n }\n\n // Compute dominant eigenvector using power method\n var eigenvector = new Array(numNodes);\n var temp = new Array(numNodes);\n var previous;\n\n // Start with a vector of all 1's\n // Also, initialize a null vector which will be used as shorthand\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n eigenvector[_i4] = 1;\n }\n for (var iter = 0; iter < iterations; iter++) {\n // Temp array with all 0's\n for (var _i5 = 0; _i5 < numNodes; _i5++) {\n temp[_i5] = 0;\n }\n\n // Multiply matrix with previous result\n for (var _i6 = 0; _i6 < numNodes; _i6++) {\n for (var _j2 = 0; _j2 < numNodes; _j2++) {\n var _n4 = _i6 * numNodes + _j2;\n temp[_i6] += matrix[_n4] * eigenvector[_j2];\n }\n }\n inPlaceSumNormalize(temp);\n previous = eigenvector;\n eigenvector = temp;\n temp = previous;\n var diff = 0;\n // Compute difference (squared module) of both vectors\n for (var _i7 = 0; _i7 < numNodes; _i7++) {\n var delta = previous[_i7] - eigenvector[_i7];\n diff += delta * delta;\n }\n\n // If difference is less than the desired threshold, stop iterating\n if (diff < precision) {\n break;\n }\n }\n\n // Construct result\n var res = {\n rank: function rank(node) {\n node = cy.collection(node)[0];\n return eigenvector[nodes.indexOf(node)];\n }\n };\n return res;\n } // pageRank\n }; // elesfn\n\n var defaults$f = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n alpha: 0\n });\n var elesfn$n = {\n degreeCentralityNormalized: function degreeCentralityNormalized(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var nodes = this.nodes();\n var numNodes = nodes.length;\n if (!options.directed) {\n var degrees = {};\n var maxDegree = 0;\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n\n // add current node to the current options object and call degreeCentrality\n options.root = node;\n var currDegree = this.degreeCentrality(options);\n if (maxDegree < currDegree.degree) {\n maxDegree = currDegree.degree;\n }\n degrees[node.id()] = currDegree.degree;\n }\n return {\n degree: function degree(node) {\n if (maxDegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return degrees[node.id()] / maxDegree;\n }\n };\n } else {\n var indegrees = {};\n var outdegrees = {};\n var maxIndegree = 0;\n var maxOutdegree = 0;\n for (var _i = 0; _i < numNodes; _i++) {\n var _node = nodes[_i];\n var id = _node.id();\n\n // add current node to the current options object and call degreeCentrality\n options.root = _node;\n var _currDegree = this.degreeCentrality(options);\n if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree;\n if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree;\n indegrees[id] = _currDegree.indegree;\n outdegrees[id] = _currDegree.outdegree;\n }\n return {\n indegree: function indegree(node) {\n if (maxIndegree == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return indegrees[node.id()] / maxIndegree;\n },\n outdegree: function outdegree(node) {\n if (maxOutdegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return outdegrees[node.id()] / maxOutdegree;\n }\n };\n }\n },\n // degreeCentralityNormalized\n\n // Implemented from the algorithm in Opsahl's paper\n // \"Node centrality in weighted networks: Generalizing degree and shortest paths\"\n // check the heading 2 \"Degree\"\n degreeCentrality: function degreeCentrality(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var callingEles = this;\n var _options = options,\n root = _options.root,\n weight = _options.weight,\n directed = _options.directed,\n alpha = _options.alpha;\n root = cy.collection(root)[0];\n if (!directed) {\n var connEdges = root.connectedEdges().intersection(callingEles);\n var k = connEdges.length;\n var s = 0;\n\n // Now, sum edge weights\n for (var i = 0; i < connEdges.length; i++) {\n s += weight(connEdges[i]);\n }\n return {\n degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)\n };\n } else {\n var edges = root.connectedEdges();\n var incoming = edges.filter(function (edge) {\n return edge.target().same(root) && callingEles.has(edge);\n });\n var outgoing = edges.filter(function (edge) {\n return edge.source().same(root) && callingEles.has(edge);\n });\n var k_in = incoming.length;\n var k_out = outgoing.length;\n var s_in = 0;\n var s_out = 0;\n\n // Now, sum incoming edge weights\n for (var _i2 = 0; _i2 < incoming.length; _i2++) {\n s_in += weight(incoming[_i2]);\n }\n\n // Now, sum outgoing edge weights\n for (var _i3 = 0; _i3 < outgoing.length; _i3++) {\n s_out += weight(outgoing[_i3]);\n }\n return {\n indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),\n outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)\n };\n }\n } // degreeCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$n.dc = elesfn$n.degreeCentrality;\n elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;\n\n var defaults$e = defaults$g({\n harmonic: true,\n weight: function weight() {\n return 1;\n },\n directed: false,\n root: null\n });\n var elesfn$m = {\n closenessCentralityNormalized: function closenessCentralityNormalized(options) {\n var _defaults = defaults$e(options),\n harmonic = _defaults.harmonic,\n weight = _defaults.weight,\n directed = _defaults.directed;\n var cy = this.cy();\n var closenesses = {};\n var maxCloseness = 0;\n var nodes = this.nodes();\n var fw = this.floydWarshall({\n weight: weight,\n directed: directed\n });\n\n // Compute closeness for every node and find the maximum closeness\n for (var i = 0; i < nodes.length; i++) {\n var currCloseness = 0;\n var node_i = nodes[i];\n for (var j = 0; j < nodes.length; j++) {\n if (i !== j) {\n var d = fw.distance(node_i, nodes[j]);\n if (harmonic) {\n currCloseness += 1 / d;\n } else {\n currCloseness += d;\n }\n }\n }\n if (!harmonic) {\n currCloseness = 1 / currCloseness;\n }\n if (maxCloseness < currCloseness) {\n maxCloseness = currCloseness;\n }\n closenesses[node_i.id()] = currCloseness;\n }\n return {\n closeness: function closeness(node) {\n if (maxCloseness == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node)[0].id();\n } else {\n // from is a node\n node = node.id();\n }\n return closenesses[node] / maxCloseness;\n }\n };\n },\n // Implemented from pseudocode from wikipedia\n closenessCentrality: function closenessCentrality(options) {\n var _defaults2 = defaults$e(options),\n root = _defaults2.root,\n weight = _defaults2.weight,\n directed = _defaults2.directed,\n harmonic = _defaults2.harmonic;\n root = this.filter(root)[0];\n\n // we need distance from this node to every other node\n var dijkstra = this.dijkstra({\n root: root,\n weight: weight,\n directed: directed\n });\n var totalDistance = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (!n.same(root)) {\n var d = dijkstra.distanceTo(n);\n if (harmonic) {\n totalDistance += 1 / d;\n } else {\n totalDistance += d;\n }\n }\n }\n return harmonic ? totalDistance : 1 / totalDistance;\n } // closenessCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$m.cc = elesfn$m.closenessCentrality;\n elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;\n\n var defaults$d = defaults$g({\n weight: null,\n directed: false\n });\n var elesfn$l = {\n // Implemented from the algorithm in the paper \"On Variants of Shortest-Path Betweenness Centrality and their Generic Computation\" by Ulrik Brandes\n betweennessCentrality: function betweennessCentrality(options) {\n var _defaults = defaults$d(options),\n directed = _defaults.directed,\n weight = _defaults.weight;\n var weighted = weight != null;\n var cy = this.cy();\n\n // starting\n var V = this.nodes();\n var A = {};\n var _C = {};\n var max = 0;\n var C = {\n set: function set(key, val) {\n _C[key] = val;\n if (val > max) {\n max = val;\n }\n },\n get: function get(key) {\n return _C[key];\n }\n };\n\n // A contains the neighborhoods of every node\n for (var i = 0; i < V.length; i++) {\n var v = V[i];\n var vid = v.id();\n if (directed) {\n A[vid] = v.outgoers().nodes(); // get outgoers of every node\n } else {\n A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node\n }\n\n C.set(vid, 0);\n }\n var _loop = function _loop(s) {\n var sid = V[s].id();\n var S = []; // stack\n var P = {};\n var g = {};\n var d = {};\n var Q = new heap(function (a, b) {\n return d[a] - d[b];\n }); // queue\n\n // init dictionaries\n for (var _i = 0; _i < V.length; _i++) {\n var _vid = V[_i].id();\n P[_vid] = [];\n g[_vid] = 0;\n d[_vid] = Infinity;\n }\n g[sid] = 1; // sigma\n d[sid] = 0; // distance to s\n\n Q.push(sid);\n while (!Q.empty()) {\n var _v = Q.pop();\n S.push(_v);\n if (weighted) {\n for (var j = 0; j < A[_v].length; j++) {\n var w = A[_v][j];\n var vEle = cy.getElementById(_v);\n var edge = void 0;\n if (vEle.edgesTo(w).length > 0) {\n edge = vEle.edgesTo(w)[0];\n } else {\n edge = w.edgesTo(vEle)[0];\n }\n var edgeWeight = weight(edge);\n w = w.id();\n if (d[w] > d[_v] + edgeWeight) {\n d[w] = d[_v] + edgeWeight;\n if (Q.nodes.indexOf(w) < 0) {\n //if w is not in Q\n Q.push(w);\n } else {\n // update position if w is in Q\n Q.updateItem(w);\n }\n g[w] = 0;\n P[w] = [];\n }\n if (d[w] == d[_v] + edgeWeight) {\n g[w] = g[w] + g[_v];\n P[w].push(_v);\n }\n }\n } else {\n for (var _j = 0; _j < A[_v].length; _j++) {\n var _w = A[_v][_j].id();\n if (d[_w] == Infinity) {\n Q.push(_w);\n d[_w] = d[_v] + 1;\n }\n if (d[_w] == d[_v] + 1) {\n g[_w] = g[_w] + g[_v];\n P[_w].push(_v);\n }\n }\n }\n }\n var e = {};\n for (var _i2 = 0; _i2 < V.length; _i2++) {\n e[V[_i2].id()] = 0;\n }\n while (S.length > 0) {\n var _w2 = S.pop();\n for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {\n var _v2 = P[_w2][_j2];\n e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);\n }\n if (_w2 != V[s].id()) {\n C.set(_w2, C.get(_w2) + e[_w2]);\n }\n }\n };\n for (var s = 0; s < V.length; s++) {\n _loop(s);\n }\n var ret = {\n betweenness: function betweenness(node) {\n var id = cy.collection(node).id();\n return C.get(id);\n },\n betweennessNormalized: function betweennessNormalized(node) {\n if (max == 0) {\n return 0;\n }\n var id = cy.collection(node).id();\n return C.get(id) / max;\n }\n };\n\n // alias\n ret.betweennessNormalised = ret.betweennessNormalized;\n return ret;\n } // betweennessCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$l.bc = elesfn$l.betweennessCentrality;\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n\n /* eslint-disable no-unused-vars */\n var defaults$c = defaults$g({\n expandFactor: 2,\n // affects time of computation and cluster granularity to some extent: M * M\n inflateFactor: 2,\n // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)\n multFactor: 1,\n // optional self loops for each node. Use a neutral value to improve cluster computations.\n maxIterations: 20,\n // maximum number of iterations of the MCL algorithm in a single run\n attributes: [\n // attributes/features used to group nodes, ie. similarity values between nodes\n function (edge) {\n return 1;\n }]\n });\n /* eslint-enable */\n\n var setOptions$3 = function setOptions(options) {\n return defaults$c(options);\n };\n /* eslint-enable */\n\n var getSimilarity$1 = function getSimilarity(edge, attributes) {\n var total = 0;\n for (var i = 0; i < attributes.length; i++) {\n total += attributes[i](edge);\n }\n return total;\n };\n var addLoops = function addLoops(M, n, val) {\n for (var i = 0; i < n; i++) {\n M[i * n + i] = val;\n }\n };\n var normalize = function normalize(M, n) {\n var sum;\n for (var col = 0; col < n; col++) {\n sum = 0;\n for (var row = 0; row < n; row++) {\n sum += M[row * n + col];\n }\n for (var _row = 0; _row < n; _row++) {\n M[_row * n + col] = M[_row * n + col] / sum;\n }\n }\n };\n\n // TODO: blocked matrix multiplication?\n var mmult = function mmult(A, B, n) {\n var C = new Array(n * n);\n for (var i = 0; i < n; i++) {\n for (var j = 0; j < n; j++) {\n C[i * n + j] = 0;\n }\n for (var k = 0; k < n; k++) {\n for (var _j = 0; _j < n; _j++) {\n C[i * n + _j] += A[i * n + k] * B[k * n + _j];\n }\n }\n }\n return C;\n };\n var expand = function expand(M, n, expandFactor /** power **/) {\n var _M = M.slice(0);\n for (var p = 1; p < expandFactor; p++) {\n M = mmult(M, _M, n);\n }\n return M;\n };\n var inflate = function inflate(M, n, inflateFactor /** r **/) {\n var _M = new Array(n * n);\n\n // M(i,j) ^ inflatePower\n for (var i = 0; i < n * n; i++) {\n _M[i] = Math.pow(M[i], inflateFactor);\n }\n normalize(_M, n);\n return _M;\n };\n var hasConverged = function hasConverged(M, _M, n2, roundFactor) {\n // Check that both matrices have the same elements (i,j)\n for (var i = 0; i < n2; i++) {\n var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places\n var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);\n if (v1 !== v2) {\n return false;\n }\n }\n return true;\n };\n var assign$2 = function assign(M, n, nodes, cy) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var cluster = [];\n for (var j = 0; j < n; j++) {\n // Row-wise attractors and elements that they attract belong in same cluster\n if (Math.round(M[i * n + j] * 1000) / 1000 > 0) {\n cluster.push(nodes[j]);\n }\n }\n if (cluster.length !== 0) {\n clusters.push(cy.collection(cluster));\n }\n }\n return clusters;\n };\n var isDuplicate = function isDuplicate(c1, c2) {\n for (var i = 0; i < c1.length; i++) {\n if (!c2[i] || c1[i].id() !== c2[i].id()) {\n return false;\n }\n }\n return true;\n };\n var removeDuplicates = function removeDuplicates(clusters) {\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j < clusters.length; j++) {\n if (i != j && isDuplicate(clusters[i], clusters[j])) {\n clusters.splice(j, 1);\n }\n }\n }\n return clusters;\n };\n var markovClustering = function markovClustering(options) {\n var nodes = this.nodes();\n var edges = this.edges();\n var cy = this.cy();\n\n // Set parameters of algorithm:\n var opts = setOptions$3(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Generate stochastic matrix M from input graph G (should be symmetric/undirected)\n var n = nodes.length,\n n2 = n * n;\n var M = new Array(n2),\n _M;\n for (var _i = 0; _i < n2; _i++) {\n M[_i] = 0;\n }\n for (var e = 0; e < edges.length; e++) {\n var edge = edges[e];\n var _i2 = id2position[edge.source().id()];\n var j = id2position[edge.target().id()];\n var sim = getSimilarity$1(edge, opts.attributes);\n M[_i2 * n + j] += sim; // G should be symmetric and undirected\n M[j * n + _i2] += sim;\n }\n\n // Begin Markov cluster algorithm\n\n // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal\n addLoops(M, n, opts.multFactor);\n\n // Step 2: M = normalize( M );\n normalize(M, n);\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 3:\n _M = expand(M, n, opts.expandFactor);\n\n // Step 4:\n M = inflate(_M, n, opts.inflateFactor);\n\n // Step 5: check to see if ~steady state has been reached\n if (!hasConverged(M, _M, n2, 4)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Build clusters from matrix\n var clusters = assign$2(M, n, nodes, cy);\n\n // Remove duplicate clusters due to symmetry of graph and M matrix\n clusters = removeDuplicates(clusters);\n return clusters;\n };\n var markovClustering$1 = {\n markovClustering: markovClustering,\n mcl: markovClustering\n };\n\n // Common distance metrics for clustering algorithms\n var identity = function identity(x) {\n return x;\n };\n var absDiff = function absDiff(p, q) {\n return Math.abs(q - p);\n };\n var addAbsDiff = function addAbsDiff(total, p, q) {\n return total + absDiff(p, q);\n };\n var addSquaredDiff = function addSquaredDiff(total, p, q) {\n return total + Math.pow(q - p, 2);\n };\n var sqrt = function sqrt(x) {\n return Math.sqrt(x);\n };\n var maxAbsDiff = function maxAbsDiff(currentMax, p, q) {\n return Math.max(currentMax, absDiff(p, q));\n };\n var getDistance = function getDistance(length, getP, getQ, init, visit) {\n var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity;\n var ret = init;\n var p, q;\n for (var dim = 0; dim < length; dim++) {\n p = getP(dim);\n q = getQ(dim);\n ret = visit(ret, p, q);\n }\n return post(ret);\n };\n var distances = {\n euclidean: function euclidean(length, getP, getQ) {\n if (length >= 2) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt);\n } else {\n // for single attr case, more efficient to avoid sqrt\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n }\n },\n squaredEuclidean: function squaredEuclidean(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff);\n },\n manhattan: function manhattan(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n },\n max: function max(length, getP, getQ) {\n return getDistance(length, getP, getQ, -Infinity, maxAbsDiff);\n }\n };\n\n // in case the user accidentally doesn't use camel case\n distances['squared-euclidean'] = distances['squaredEuclidean'];\n distances['squaredeuclidean'] = distances['squaredEuclidean'];\n function clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) {\n var impl;\n if (fn$6(method)) {\n impl = method;\n } else {\n impl = distances[method] || distances.euclidean;\n }\n if (length === 0 && fn$6(method)) {\n return impl(nodeP, nodeQ);\n } else {\n return impl(length, getP, getQ, nodeP, nodeQ);\n }\n }\n\n var defaults$b = defaults$g({\n k: 2,\n m: 2,\n sensitivityThreshold: 0.0001,\n distance: 'euclidean',\n maxIterations: 10,\n attributes: [],\n testMode: false,\n testCentroids: null\n });\n var setOptions$2 = function setOptions(options) {\n return defaults$b(options);\n };\n\n var getDist = function getDist(type, node, centroid, attributes, mode) {\n var noNodeP = mode !== 'kMedoids';\n var getP = noNodeP ? function (i) {\n return centroid[i];\n } : function (i) {\n return attributes[i](centroid);\n };\n var getQ = function getQ(i) {\n return attributes[i](node);\n };\n var nodeP = centroid;\n var nodeQ = node;\n return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ);\n };\n var randomCentroids = function randomCentroids(nodes, k, attributes) {\n var ndim = attributes.length;\n var min = new Array(ndim);\n var max = new Array(ndim);\n var centroids = new Array(k);\n var centroid = null;\n\n // Find min, max values for each attribute dimension\n for (var i = 0; i < ndim; i++) {\n min[i] = nodes.min(attributes[i]).value;\n max[i] = nodes.max(attributes[i]).value;\n }\n\n // Build k centroids, each represented as an n-dim feature vector\n for (var c = 0; c < k; c++) {\n centroid = [];\n for (var _i = 0; _i < ndim; _i++) {\n centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value\n }\n\n centroids[c] = centroid;\n }\n return centroids;\n };\n var classify = function classify(node, centroids, distance, attributes, type) {\n var min = Infinity;\n var index = 0;\n for (var i = 0; i < centroids.length; i++) {\n var dist = getDist(distance, node, centroids[i], attributes, type);\n if (dist < min) {\n min = dist;\n index = i;\n }\n }\n return index;\n };\n var buildCluster = function buildCluster(centroid, nodes, assignment) {\n var cluster = [];\n var node = null;\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n if (assignment[node.id()] === centroid) {\n //console.log(\"Node \" + node.id() + \" is associated with medoid #: \" + m);\n cluster.push(node);\n }\n }\n return cluster;\n };\n var haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) {\n return Math.abs(v2 - v1) <= sensitivityThreshold;\n };\n var haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) {\n for (var i = 0; i < v1.length; i++) {\n for (var j = 0; j < v1[i].length; j++) {\n var diff = Math.abs(v1[i][j] - v2[i][j]);\n if (diff > sensitivityThreshold) {\n return false;\n }\n }\n }\n return true;\n };\n var seenBefore = function seenBefore(node, medoids, n) {\n for (var i = 0; i < n; i++) {\n if (node === medoids[i]) return true;\n }\n return false;\n };\n var randomMedoids = function randomMedoids(nodes, k) {\n var medoids = new Array(k);\n\n // For small data sets, the probability of medoid conflict is greater,\n // so we need to check to see if we've already seen or chose this node before.\n if (nodes.length < 50) {\n // Randomly select k medoids from the n nodes\n for (var i = 0; i < k; i++) {\n var node = nodes[Math.floor(Math.random() * nodes.length)];\n\n // If we've already chosen this node to be a medoid, don't choose it again (for small data sets).\n // Instead choose a different random node.\n while (seenBefore(node, medoids, i)) {\n node = nodes[Math.floor(Math.random() * nodes.length)];\n }\n medoids[i] = node;\n }\n } else {\n // Relatively large data set, so pretty safe to not check and just select random nodes\n for (var _i2 = 0; _i2 < k; _i2++) {\n medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)];\n }\n }\n return medoids;\n };\n var findCost = function findCost(potentialNewMedoid, cluster, attributes) {\n var cost = 0;\n for (var n = 0; n < cluster.length; n++) {\n cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids');\n }\n return cost;\n };\n var kMeans = function kMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n\n // Set parameters of algorithm: # of clusters, distance metric, etc.\n var opts = setOptions$2(options);\n\n // Begin k-means algorithm\n var clusters = new Array(opts.k);\n var assignment = {};\n var centroids;\n\n // Step 1: Initialize centroid positions\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') {\n // TODO: implement a seeded random number generator.\n opts.testCentroids;\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n } else if (_typeof(opts.testCentroids) === 'object') {\n centroids = opts.testCentroids;\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest centroid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans');\n }\n\n // Step 3: For each of the k clusters, update its centroid\n isStillMoving = false;\n for (var c = 0; c < opts.k; c++) {\n // Get all nodes that belong to this cluster\n var cluster = buildCluster(c, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n\n // Update centroids by calculating avg of all nodes within the cluster.\n var ndim = opts.attributes.length;\n var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ]\n var newCentroid = new Array(ndim);\n var sum = new Array(ndim);\n for (var d = 0; d < ndim; d++) {\n sum[d] = 0.0;\n for (var i = 0; i < cluster.length; i++) {\n node = cluster[i];\n sum[d] += opts.attributes[d](node);\n }\n newCentroid[d] = sum[d] / cluster.length;\n\n // Check to see if algorithm has converged, i.e. when centroids no longer change\n if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n }\n centroids[c] = newCentroid;\n clusters[c] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n };\n var kMedoids = function kMedoids(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n var opts = setOptions$2(options);\n\n // Begin k-medoids algorithm\n var clusters = new Array(opts.k);\n var medoids;\n var assignment = {};\n var curCost;\n var minCosts = new Array(opts.k); // minimum cost configuration for each cluster\n\n // Step 1: Initialize k medoids\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') {\n medoids = opts.testCentroids;\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest medoid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids');\n }\n isStillMoving = false;\n // Step 3: For each medoid m, and for each node associated with mediod m,\n // select the node with the lowest configuration cost as new medoid.\n for (var m = 0; m < medoids.length; m++) {\n // Get all nodes that belong to this medoid\n var cluster = buildCluster(m, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost\n\n // Select different medoid if its configuration has the lowest cost\n for (var _n = 0; _n < cluster.length; _n++) {\n curCost = findCost(cluster[_n], cluster, opts.attributes);\n if (curCost < minCosts[m]) {\n minCosts[m] = curCost;\n medoids[m] = cluster[_n];\n isStillMoving = true;\n }\n }\n clusters[m] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n };\n var updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) {\n var numerator, denominator;\n for (var n = 0; n < nodes.length; n++) {\n for (var c = 0; c < centroids.length; c++) {\n weight[n][c] = Math.pow(U[n][c], opts.m);\n }\n }\n for (var _c = 0; _c < centroids.length; _c++) {\n for (var dim = 0; dim < opts.attributes.length; dim++) {\n numerator = 0;\n denominator = 0;\n for (var _n2 = 0; _n2 < nodes.length; _n2++) {\n numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]);\n denominator += weight[_n2][_c];\n }\n centroids[_c][dim] = numerator / denominator;\n }\n }\n };\n var updateMembership = function updateMembership(U, _U, centroids, nodes, opts) {\n // Save previous step\n for (var i = 0; i < U.length; i++) {\n _U[i] = U[i].slice();\n }\n var sum, numerator, denominator;\n var pow = 2 / (opts.m - 1);\n for (var c = 0; c < centroids.length; c++) {\n for (var n = 0; n < nodes.length; n++) {\n sum = 0;\n for (var k = 0; k < centroids.length; k++) {\n // against all other centroids\n numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans');\n denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans');\n sum += Math.pow(numerator / denominator, pow);\n }\n U[n][c] = 1 / sum;\n }\n }\n };\n var assign$1 = function assign(nodes, U, opts, cy) {\n var clusters = new Array(opts.k);\n for (var c = 0; c < clusters.length; c++) {\n clusters[c] = [];\n }\n var max;\n var index;\n for (var n = 0; n < U.length; n++) {\n // for each node (U is N x C matrix)\n max = -Infinity;\n index = -1;\n // Determine which cluster the node is most likely to belong in\n for (var _c2 = 0; _c2 < U[0].length; _c2++) {\n if (U[n][_c2] > max) {\n max = U[n][_c2];\n index = _c2;\n }\n }\n clusters[index].push(nodes[n]);\n }\n\n // Turn every array into a collection of nodes\n for (var _c3 = 0; _c3 < clusters.length; _c3++) {\n clusters[_c3] = cy.collection(clusters[_c3]);\n }\n return clusters;\n };\n var fuzzyCMeans = function fuzzyCMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions$2(options);\n\n // Begin fuzzy c-means algorithm\n var clusters;\n var centroids;\n var U;\n var _U;\n var weight;\n\n // Step 1: Initialize letiables.\n _U = new Array(nodes.length);\n for (var i = 0; i < nodes.length; i++) {\n // N x C matrix\n _U[i] = new Array(opts.k);\n }\n U = new Array(nodes.length);\n for (var _i3 = 0; _i3 < nodes.length; _i3++) {\n // N x C matrix\n U[_i3] = new Array(opts.k);\n }\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var total = 0;\n for (var j = 0; j < opts.k; j++) {\n U[_i4][j] = Math.random();\n total += U[_i4][j];\n }\n for (var _j = 0; _j < opts.k; _j++) {\n U[_i4][_j] = U[_i4][_j] / total;\n }\n }\n centroids = new Array(opts.k);\n for (var _i5 = 0; _i5 < opts.k; _i5++) {\n centroids[_i5] = new Array(opts.attributes.length);\n }\n weight = new Array(nodes.length);\n for (var _i6 = 0; _i6 < nodes.length; _i6++) {\n // N x C matrix\n weight[_i6] = new Array(opts.k);\n }\n // end init FCM\n\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 2: Calculate the centroids for each step.\n updateCentroids(centroids, nodes, U, weight, opts);\n\n // Step 3: Update the partition matrix U.\n updateMembership(U, _U, centroids, nodes, opts);\n\n // Step 4: Check for convergence.\n if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Assign nodes to clusters with highest probability.\n clusters = assign$1(nodes, U, opts, cy);\n return {\n clusters: clusters,\n degreeOfMembership: U\n };\n };\n var kClustering = {\n kMeans: kMeans,\n kMedoids: kMedoids,\n fuzzyCMeans: fuzzyCMeans,\n fcm: fuzzyCMeans\n };\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n var defaults$a = defaults$g({\n distance: 'euclidean',\n // distance metric to compare nodes\n linkage: 'min',\n // linkage criterion : how to determine the distance between clusters of nodes\n mode: 'threshold',\n // mode:'threshold' => clusters must be threshold distance apart\n threshold: Infinity,\n // the distance threshold\n // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters\n addDendrogram: false,\n // whether to add the dendrogram to the graph for viz\n dendrogramDepth: 0,\n // depth at which dendrogram branches are merged into the returned clusters\n attributes: [] // array of attr functions\n });\n\n var linkageAliases = {\n 'single': 'min',\n 'complete': 'max'\n };\n var setOptions$1 = function setOptions(options) {\n var opts = defaults$a(options);\n var preferredAlias = linkageAliases[opts.linkage];\n if (preferredAlias != null) {\n opts.linkage = preferredAlias;\n }\n return opts;\n };\n var mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) {\n // Find two closest clusters from cached mins\n var minKey = 0;\n var min = Infinity;\n var dist;\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n for (var i = 0; i < clusters.length; i++) {\n var key = clusters[i].key;\n var _dist = dists[key][mins[key]];\n if (_dist < min) {\n minKey = key;\n min = _dist;\n }\n }\n if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) {\n return false;\n }\n var c1 = index[minKey];\n var c2 = index[mins[minKey]];\n var merged;\n\n // Merge two closest clusters\n if (opts.mode === 'dendrogram') {\n merged = {\n left: c1,\n right: c2,\n key: c1.key\n };\n } else {\n merged = {\n value: c1.value.concat(c2.value),\n key: c1.key\n };\n }\n clusters[c1.index] = merged;\n clusters.splice(c2.index, 1);\n index[c1.key] = merged;\n\n // Update distances with new merged cluster\n for (var _i = 0; _i < clusters.length; _i++) {\n var cur = clusters[_i];\n if (c1.key === cur.key) {\n dist = Infinity;\n } else if (opts.linkage === 'min') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'max') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'mean') {\n dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);\n } else {\n if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]);\n }\n dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric\n }\n\n // Update cached mins\n for (var _i2 = 0; _i2 < clusters.length; _i2++) {\n var key1 = clusters[_i2].key;\n if (mins[key1] === c1.key || mins[key1] === c2.key) {\n var _min = key1;\n for (var j = 0; j < clusters.length; j++) {\n var key2 = clusters[j].key;\n if (dists[key1][key2] < dists[key1][_min]) {\n _min = key2;\n }\n }\n mins[key1] = _min;\n }\n clusters[_i2].index = _i2;\n }\n\n // Clean up meta data used for clustering\n c1.key = c2.key = c1.index = c2.index = null;\n return true;\n };\n var getAllChildren = function getAllChildren(root, arr, cy) {\n if (!root) return;\n if (root.value) {\n arr.push(root.value);\n } else {\n if (root.left) getAllChildren(root.left, arr);\n if (root.right) getAllChildren(root.right, arr);\n }\n };\n var buildDendrogram = function buildDendrogram(root, cy) {\n if (!root) return '';\n if (root.left && root.right) {\n var leftStr = buildDendrogram(root.left, cy);\n var rightStr = buildDendrogram(root.right, cy);\n var node = cy.add({\n group: 'nodes',\n data: {\n id: leftStr + ',' + rightStr\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: leftStr,\n target: node.id()\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: rightStr,\n target: node.id()\n }\n });\n return node.id();\n } else if (root.value) {\n return root.value.id();\n }\n };\n var buildClustersFromTree = function buildClustersFromTree(root, k, cy) {\n if (!root) return [];\n var left = [],\n right = [],\n leaves = [];\n if (k === 0) {\n // don't cut tree, simply return all nodes as 1 single cluster\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n leaves = left.concat(right);\n return [cy.collection(leaves)];\n } else if (k === 1) {\n // cut at root\n\n if (root.value) {\n // leaf node\n return [cy.collection(root.value)];\n } else {\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n return [cy.collection(left), cy.collection(right)];\n }\n } else {\n if (root.value) {\n return [cy.collection(root.value)];\n } else {\n if (root.left) left = buildClustersFromTree(root.left, k - 1, cy);\n if (root.right) right = buildClustersFromTree(root.right, k - 1, cy);\n return left.concat(right);\n }\n }\n };\n\n var hierarchicalClustering = function hierarchicalClustering(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n\n // Set parameters of algorithm: linkage type, distance metric, etc.\n var opts = setOptions$1(options);\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n\n // Begin hierarchical algorithm\n var clusters = [];\n var dists = []; // distances between each pair of clusters\n var mins = []; // closest cluster for each cluster\n var index = []; // hash of all clusters by key\n\n // In agglomerative (bottom-up) clustering, each node starts as its own cluster\n for (var n = 0; n < nodes.length; n++) {\n var cluster = {\n value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]],\n key: n,\n index: n\n };\n clusters[n] = cluster;\n index[n] = cluster;\n dists[n] = [];\n mins[n] = 0;\n }\n\n // Calculate the distance between each pair of clusters\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j <= i; j++) {\n var dist = void 0;\n if (opts.mode === 'dendrogram') {\n // modes store cluster values differently\n dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value);\n } else {\n dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]);\n }\n dists[i][j] = dist;\n dists[j][i] = dist;\n if (dist < dists[i][mins[i]]) {\n mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j\n }\n }\n }\n\n // Find the closest pair of clusters and merge them into a single cluster.\n // Update distances between new cluster and each of the old clusters, and loop until threshold reached.\n var merged = mergeClosest(clusters, index, dists, mins, opts);\n while (merged) {\n merged = mergeClosest(clusters, index, dists, mins, opts);\n }\n var retClusters;\n\n // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges\n // in addition to returning the clusters.\n if (opts.mode === 'dendrogram') {\n retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);\n if (opts.addDendrogram) buildDendrogram(clusters[0], cy);\n } else {\n // Regular mode simply returns the clusters\n\n retClusters = new Array(clusters.length);\n clusters.forEach(function (cluster, i) {\n // Clean up meta data used for clustering\n cluster.key = cluster.index = null;\n retClusters[i] = cy.collection(cluster.value);\n });\n }\n return retClusters;\n };\n var hierarchicalClustering$1 = {\n hierarchicalClustering: hierarchicalClustering,\n hca: hierarchicalClustering\n };\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n var defaults$9 = defaults$g({\n distance: 'euclidean',\n // distance metric to compare attributes between two nodes\n preference: 'median',\n // suitability of a data point to serve as an exemplar\n damping: 0.8,\n // damping factor between [0.5, 1)\n maxIterations: 1000,\n // max number of iterations to run\n minIterations: 100,\n // min number of iterations to run in order for clustering to stop\n attributes: [// functions to quantify the similarity between any two points\n // e.g. node => node.data('weight')\n ]\n });\n var setOptions = function setOptions(options) {\n var dmp = options.damping;\n var pref = options.preference;\n if (!(0.5 <= dmp && dmp < 1)) {\n error(\"Damping must range on [0.5, 1). Got: \".concat(dmp));\n }\n var validPrefs = ['median', 'mean', 'min', 'max'];\n if (!(validPrefs.some(function (v) {\n return v === pref;\n }) || number$1(pref))) {\n error(\"Preference must be one of [\".concat(validPrefs.map(function (p) {\n return \"'\".concat(p, \"'\");\n }).join(', '), \"] or a number. Got: \").concat(pref));\n }\n return defaults$9(options);\n };\n\n var getSimilarity = function getSimilarity(type, n1, n2, attributes) {\n var attr = function attr(n, i) {\n return attributes[i](n);\n };\n\n // nb negative because similarity should have an inverse relationship to distance\n return -clusteringDistance(type, attributes.length, function (i) {\n return attr(n1, i);\n }, function (i) {\n return attr(n2, i);\n }, n1, n2);\n };\n var getPreference = function getPreference(S, preference) {\n // larger preference = greater # of clusters\n var p = null;\n if (preference === 'median') {\n p = median(S);\n } else if (preference === 'mean') {\n p = mean(S);\n } else if (preference === 'min') {\n p = min(S);\n } else if (preference === 'max') {\n p = max(S);\n } else {\n // Custom preference number, as set by user\n p = preference;\n }\n return p;\n };\n var findExemplars = function findExemplars(n, R, A) {\n var indices = [];\n for (var i = 0; i < n; i++) {\n if (R[i * n + i] + A[i * n + i] > 0) {\n indices.push(i);\n }\n }\n return indices;\n };\n var assignClusters = function assignClusters(n, S, exemplars) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var index = -1;\n var max = -Infinity;\n for (var ei = 0; ei < exemplars.length; ei++) {\n var e = exemplars[ei];\n if (S[i * n + e] > max) {\n index = e;\n max = S[i * n + e];\n }\n }\n if (index > 0) {\n clusters.push(index);\n }\n }\n for (var _ei = 0; _ei < exemplars.length; _ei++) {\n clusters[exemplars[_ei]] = exemplars[_ei];\n }\n return clusters;\n };\n var assign = function assign(n, S, exemplars) {\n var clusters = assignClusters(n, S, exemplars);\n for (var ei = 0; ei < exemplars.length; ei++) {\n var ii = [];\n for (var c = 0; c < clusters.length; c++) {\n if (clusters[c] === exemplars[ei]) {\n ii.push(c);\n }\n }\n var maxI = -1;\n var maxSum = -Infinity;\n for (var i = 0; i < ii.length; i++) {\n var sum = 0;\n for (var j = 0; j < ii.length; j++) {\n sum += S[ii[j] * n + ii[i]];\n }\n if (sum > maxSum) {\n maxI = i;\n maxSum = sum;\n }\n }\n exemplars[ei] = ii[maxI];\n }\n clusters = assignClusters(n, S, exemplars);\n return clusters;\n };\n var affinityPropagation = function affinityPropagation(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Begin affinity propagation algorithm\n\n var n; // number of data points\n var n2; // size of matrices\n var S; // similarity matrix (1D array)\n var p; // preference/suitability of a data point to serve as an exemplar\n var R; // responsibility matrix (1D array)\n var A; // availability matrix (1D array)\n\n n = nodes.length;\n n2 = n * n;\n\n // Initialize and build S similarity matrix\n S = new Array(n2);\n for (var _i = 0; _i < n2; _i++) {\n S[_i] = -Infinity; // for cases where two data points shouldn't be linked together\n }\n\n for (var _i2 = 0; _i2 < n; _i2++) {\n for (var j = 0; j < n; j++) {\n if (_i2 !== j) {\n S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes);\n }\n }\n }\n\n // Place preferences on the diagonal of S\n p = getPreference(S, opts.preference);\n for (var _i3 = 0; _i3 < n; _i3++) {\n S[_i3 * n + _i3] = p;\n }\n\n // Initialize R responsibility matrix\n R = new Array(n2);\n for (var _i4 = 0; _i4 < n2; _i4++) {\n R[_i4] = 0.0;\n }\n\n // Initialize A availability matrix\n A = new Array(n2);\n for (var _i5 = 0; _i5 < n2; _i5++) {\n A[_i5] = 0.0;\n }\n var old = new Array(n);\n var Rp = new Array(n);\n var se = new Array(n);\n for (var _i6 = 0; _i6 < n; _i6++) {\n old[_i6] = 0.0;\n Rp[_i6] = 0.0;\n se[_i6] = 0;\n }\n var e = new Array(n * opts.minIterations);\n for (var _i7 = 0; _i7 < e.length; _i7++) {\n e[_i7] = 0;\n }\n var iter;\n for (iter = 0; iter < opts.maxIterations; iter++) {\n // main algorithmic loop\n\n // Update R responsibility matrix\n for (var _i8 = 0; _i8 < n; _i8++) {\n var max = -Infinity,\n max2 = -Infinity,\n maxI = -1,\n AS = 0.0;\n for (var _j = 0; _j < n; _j++) {\n old[_j] = R[_i8 * n + _j];\n AS = A[_i8 * n + _j] + S[_i8 * n + _j];\n if (AS >= max) {\n max2 = max;\n max = AS;\n maxI = _j;\n } else if (AS > max2) {\n max2 = AS;\n }\n }\n for (var _j2 = 0; _j2 < n; _j2++) {\n R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2];\n }\n R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI];\n }\n\n // Update A availability matrix\n for (var _i9 = 0; _i9 < n; _i9++) {\n var sum = 0;\n for (var _j3 = 0; _j3 < n; _j3++) {\n old[_j3] = A[_j3 * n + _i9];\n Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);\n sum += Rp[_j3];\n }\n sum -= Rp[_i9];\n Rp[_i9] = R[_i9 * n + _i9];\n sum += Rp[_i9];\n for (var _j4 = 0; _j4 < n; _j4++) {\n A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];\n }\n A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];\n }\n\n // Check for convergence\n var K = 0;\n for (var _i10 = 0; _i10 < n; _i10++) {\n var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;\n e[iter % opts.minIterations * n + _i10] = E;\n K += E;\n }\n if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {\n var _sum = 0;\n for (var _i11 = 0; _i11 < n; _i11++) {\n se[_i11] = 0;\n for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {\n se[_i11] += e[_j5 * n + _i11];\n }\n if (se[_i11] === 0 || se[_i11] === opts.minIterations) {\n _sum++;\n }\n }\n if (_sum === n) {\n // then we have convergence\n break;\n }\n }\n }\n\n // Identify exemplars (cluster centers)\n var exemplarsIndices = findExemplars(n, R, A);\n\n // Assign nodes to clusters\n var clusterIndices = assign(n, S, exemplarsIndices);\n var clusters = {};\n for (var c = 0; c < exemplarsIndices.length; c++) {\n clusters[exemplarsIndices[c]] = [];\n }\n for (var _i12 = 0; _i12 < nodes.length; _i12++) {\n var pos = id2position[nodes[_i12].id()];\n var clusterIndex = clusterIndices[pos];\n if (clusterIndex != null) {\n // the node may have not been assigned a cluster if no valid attributes were specified\n clusters[clusterIndex].push(nodes[_i12]);\n }\n }\n var retClusters = new Array(exemplarsIndices.length);\n for (var _c = 0; _c < exemplarsIndices.length; _c++) {\n retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);\n }\n return retClusters;\n };\n var affinityPropagation$1 = {\n affinityPropagation: affinityPropagation,\n ap: affinityPropagation\n };\n\n var hierholzerDefaults = defaults$g({\n root: undefined,\n directed: false\n });\n var elesfn$k = {\n hierholzer: function hierholzer(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n directed: args[1]\n };\n }\n var _hierholzerDefaults = hierholzerDefaults(options),\n root = _hierholzerDefaults.root,\n directed = _hierholzerDefaults.directed;\n var eles = this;\n var dflag = false;\n var oddIn;\n var oddOut;\n var startVertex;\n if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id();\n var nodes = {};\n var edges = {};\n if (directed) {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var ind = ele.indegree(true);\n var outd = ele.outdegree(true);\n var d1 = ind - outd;\n var d2 = outd - ind;\n if (d1 == 1) {\n if (oddIn) dflag = true;else oddIn = id;\n } else if (d2 == 1) {\n if (oddOut) dflag = true;else oddOut = id;\n } else if (d2 > 1 || d1 > 1) {\n dflag = true;\n }\n nodes[id] = [];\n ele.outgoers().forEach(function (e) {\n if (e.isEdge()) nodes[id].push(e.id());\n });\n } else {\n edges[id] = [undefined, ele.target().id()];\n }\n });\n } else {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var d = ele.degree(true);\n if (d % 2) {\n if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true;\n }\n nodes[id] = [];\n ele.connectedEdges().forEach(function (e) {\n return nodes[id].push(e.id());\n });\n } else {\n edges[id] = [ele.source().id(), ele.target().id()];\n }\n });\n }\n var result = {\n found: false,\n trail: undefined\n };\n if (dflag) return result;else if (oddOut && oddIn) {\n if (directed) {\n if (startVertex && oddOut != startVertex) {\n return result;\n }\n startVertex = oddOut;\n } else {\n if (startVertex && oddOut != startVertex && oddIn != startVertex) {\n return result;\n } else if (!startVertex) {\n startVertex = oddOut;\n }\n }\n } else {\n if (!startVertex) startVertex = eles[0].id();\n }\n var walk = function walk(v) {\n var currentNode = v;\n var subtour = [v];\n var adj, adjTail, adjHead;\n while (nodes[currentNode].length) {\n adj = nodes[currentNode].shift();\n adjTail = edges[adj][0];\n adjHead = edges[adj][1];\n if (currentNode != adjHead) {\n nodes[adjHead] = nodes[adjHead].filter(function (e) {\n return e != adj;\n });\n currentNode = adjHead;\n } else if (!directed && currentNode != adjTail) {\n nodes[adjTail] = nodes[adjTail].filter(function (e) {\n return e != adj;\n });\n currentNode = adjTail;\n }\n subtour.unshift(adj);\n subtour.unshift(currentNode);\n }\n return subtour;\n };\n var trail = [];\n var subtour = [];\n subtour = walk(startVertex);\n while (subtour.length != 1) {\n if (nodes[subtour[0]].length == 0) {\n trail.unshift(eles.getElementById(subtour.shift()));\n trail.unshift(eles.getElementById(subtour.shift()));\n } else {\n subtour = walk(subtour.shift()).concat(subtour);\n }\n }\n trail.unshift(eles.getElementById(subtour.shift())); // final node\n\n for (var d in nodes) {\n if (nodes[d].length) {\n return result;\n }\n }\n result.found = true;\n result.trail = this.spawn(trail, true);\n return result;\n }\n };\n\n var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() {\n var eles = this;\n var nodes = {};\n var id = 0;\n var edgeCount = 0;\n var components = [];\n var stack = [];\n var visitedEdges = {};\n var buildComponent = function buildComponent(x, y) {\n var i = stack.length - 1;\n var cutset = [];\n var component = eles.spawn();\n while (stack[i].x != x || stack[i].y != y) {\n cutset.push(stack.pop().edge);\n i--;\n }\n cutset.push(stack.pop().edge);\n cutset.forEach(function (edge) {\n var connectedNodes = edge.connectedNodes().intersection(eles);\n component.merge(edge);\n connectedNodes.forEach(function (node) {\n var nodeId = node.id();\n var connectedEdges = node.connectedEdges().intersection(eles);\n component.merge(node);\n if (!nodes[nodeId].cutVertex) {\n component.merge(connectedEdges);\n } else {\n component.merge(connectedEdges.filter(function (edge) {\n return edge.isLoop();\n }));\n }\n });\n });\n components.push(component);\n };\n var biconnectedSearch = function biconnectedSearch(root, currentNode, parent) {\n if (root === parent) edgeCount += 1;\n nodes[currentNode] = {\n id: id,\n low: id++,\n cutVertex: false\n };\n var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles);\n if (edges.size() === 0) {\n components.push(eles.spawn(eles.getElementById(currentNode)));\n } else {\n var sourceId, targetId, otherNodeId, edgeId;\n edges.forEach(function (edge) {\n sourceId = edge.source().id();\n targetId = edge.target().id();\n otherNodeId = sourceId === currentNode ? targetId : sourceId;\n if (otherNodeId !== parent) {\n edgeId = edge.id();\n if (!visitedEdges[edgeId]) {\n visitedEdges[edgeId] = true;\n stack.push({\n x: currentNode,\n y: otherNodeId,\n edge: edge\n });\n }\n if (!(otherNodeId in nodes)) {\n biconnectedSearch(root, otherNodeId, currentNode);\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low);\n if (nodes[currentNode].id <= nodes[otherNodeId].low) {\n nodes[currentNode].cutVertex = true;\n buildComponent(currentNode, otherNodeId);\n }\n } else {\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id);\n }\n }\n });\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n edgeCount = 0;\n biconnectedSearch(nodeId, nodeId);\n nodes[nodeId].cutVertex = edgeCount > 1;\n }\n }\n });\n var cutVertices = Object.keys(nodes).filter(function (id) {\n return nodes[id].cutVertex;\n }).map(function (id) {\n return eles.getElementById(id);\n });\n return {\n cut: eles.spawn(cutVertices),\n components: components\n };\n };\n var hopcroftTarjanBiconnected$1 = {\n hopcroftTarjanBiconnected: hopcroftTarjanBiconnected,\n htbc: hopcroftTarjanBiconnected,\n htb: hopcroftTarjanBiconnected,\n hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected\n };\n\n var tarjanStronglyConnected = function tarjanStronglyConnected() {\n var eles = this;\n var nodes = {};\n var index = 0;\n var components = [];\n var stack = [];\n var cut = eles.spawn(eles);\n var stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) {\n stack.push(sourceNodeId);\n nodes[sourceNodeId] = {\n index: index,\n low: index++,\n explored: false\n };\n var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);\n connectedEdges.forEach(function (edge) {\n var targetNodeId = edge.target().id();\n if (targetNodeId !== sourceNodeId) {\n if (!(targetNodeId in nodes)) {\n stronglyConnectedSearch(targetNodeId);\n }\n if (!nodes[targetNodeId].explored) {\n nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low);\n }\n }\n });\n if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) {\n var componentNodes = eles.spawn();\n for (;;) {\n var nodeId = stack.pop();\n componentNodes.merge(eles.getElementById(nodeId));\n nodes[nodeId].low = nodes[sourceNodeId].index;\n nodes[nodeId].explored = true;\n if (nodeId === sourceNodeId) {\n break;\n }\n }\n var componentEdges = componentNodes.edgesWith(componentNodes);\n var component = componentNodes.merge(componentEdges);\n components.push(component);\n cut = cut.difference(component);\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n stronglyConnectedSearch(nodeId);\n }\n }\n });\n return {\n cut: cut,\n components: components\n };\n };\n var tarjanStronglyConnected$1 = {\n tarjanStronglyConnected: tarjanStronglyConnected,\n tsc: tarjanStronglyConnected,\n tscc: tarjanStronglyConnected,\n tarjanStronglyConnectedComponents: tarjanStronglyConnected\n };\n\n var elesfn$j = {};\n [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) {\n extend(elesfn$j, props);\n });\n\n /*!\n Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable\n Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)\n Licensed under The MIT License (http://opensource.org/licenses/MIT)\n */\n\n /* promise states [Promises/A+ 2.1] */\n var STATE_PENDING = 0; /* [Promises/A+ 2.1.1] */\n var STATE_FULFILLED = 1; /* [Promises/A+ 2.1.2] */\n var STATE_REJECTED = 2; /* [Promises/A+ 2.1.3] */\n\n /* promise object constructor */\n var api = function api(executor) {\n /* optionally support non-constructor/plain-function call */\n if (!(this instanceof api)) return new api(executor);\n\n /* initialize object */\n this.id = 'Thenable/1.0.7';\n this.state = STATE_PENDING; /* initial state */\n this.fulfillValue = undefined; /* initial value */ /* [Promises/A+ 1.3, 2.1.2.2] */\n this.rejectReason = undefined; /* initial reason */ /* [Promises/A+ 1.5, 2.1.3.2] */\n this.onFulfilled = []; /* initial handlers */\n this.onRejected = []; /* initial handlers */\n\n /* provide optional information-hiding proxy */\n this.proxy = {\n then: this.then.bind(this)\n };\n\n /* support optional executor function */\n if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this));\n };\n\n /* promise API methods */\n api.prototype = {\n /* promise resolving methods */\n fulfill: function fulfill(value) {\n return deliver(this, STATE_FULFILLED, 'fulfillValue', value);\n },\n reject: function reject(value) {\n return deliver(this, STATE_REJECTED, 'rejectReason', value);\n },\n /* \"The then Method\" [Promises/A+ 1.1, 1.2, 2.2] */\n then: function then(onFulfilled, onRejected) {\n var curr = this;\n var next = new api(); /* [Promises/A+ 2.2.7] */\n curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); /* [Promises/A+ 2.2.2/2.2.6] */\n curr.onRejected.push(resolver(onRejected, next, 'reject')); /* [Promises/A+ 2.2.3/2.2.6] */\n execute(curr);\n return next.proxy; /* [Promises/A+ 2.2.7, 3.3] */\n }\n };\n\n /* deliver an action */\n var deliver = function deliver(curr, state, name, value) {\n if (curr.state === STATE_PENDING) {\n curr.state = state; /* [Promises/A+ 2.1.2.1, 2.1.3.1] */\n curr[name] = value; /* [Promises/A+ 2.1.2.2, 2.1.3.2] */\n execute(curr);\n }\n return curr;\n };\n\n /* execute all handlers */\n var execute = function execute(curr) {\n if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason);\n };\n\n /* execute particular set of handlers */\n var execute_handlers = function execute_handlers(curr, name, value) {\n /* global setImmediate: true */\n /* global setTimeout: true */\n\n /* short-circuit processing */\n if (curr[name].length === 0) return;\n\n /* iterate over all handlers, exactly once */\n var handlers = curr[name];\n curr[name] = []; /* [Promises/A+ 2.2.2.3, 2.2.3.3] */\n var func = function func() {\n for (var i = 0; i < handlers.length; i++) {\n handlers[i](value);\n } /* [Promises/A+ 2.2.5] */\n };\n\n /* execute procedure asynchronously */ /* [Promises/A+ 2.2.4, 3.1] */\n if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0);\n };\n\n /* generate a resolver function */\n var resolver = function resolver(cb, next, method) {\n return function (value) {\n if (typeof cb !== 'function') /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */\n next[method].call(next, value); /* [Promises/A+ 2.2.7.3, 2.2.7.4] */else {\n var result;\n try {\n result = cb(value);\n } /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ catch (e) {\n next.reject(e); /* [Promises/A+ 2.2.7.2] */\n return;\n }\n resolve(next, result); /* [Promises/A+ 2.2.7.1] */\n }\n };\n };\n\n /* \"Promise Resolution Procedure\" */ /* [Promises/A+ 2.3] */\n var resolve = function resolve(promise, x) {\n /* sanity check arguments */ /* [Promises/A+ 2.3.1] */\n if (promise === x || promise.proxy === x) {\n promise.reject(new TypeError('cannot resolve promise with itself'));\n return;\n }\n\n /* surgically check for a \"then\" method\n (mainly to just call the \"getter\" of \"then\" only once) */\n var then;\n if (_typeof(x) === 'object' && x !== null || typeof x === 'function') {\n try {\n then = x.then;\n } /* [Promises/A+ 2.3.3.1, 3.5] */ catch (e) {\n promise.reject(e); /* [Promises/A+ 2.3.3.2] */\n return;\n }\n }\n\n /* handle own Thenables [Promises/A+ 2.3.2]\n and similar \"thenables\" [Promises/A+ 2.3.3] */\n if (typeof then === 'function') {\n var resolved = false;\n try {\n /* call retrieved \"then\" method */ /* [Promises/A+ 2.3.3.3] */\n then.call(x, /* resolvePromise */ /* [Promises/A+ 2.3.3.3.1] */\n function (y) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n if (y === x) /* [Promises/A+ 3.6] */\n promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y);\n }, /* rejectPromise */ /* [Promises/A+ 2.3.3.3.2] */\n function (r) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(r);\n });\n } catch (e) {\n if (!resolved) /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(e); /* [Promises/A+ 2.3.3.3.4] */\n }\n\n return;\n }\n\n /* handle other values */\n promise.fulfill(x); /* [Promises/A+ 2.3.4, 2.3.3.4] */\n };\n\n // so we always have Promise.all()\n api.all = function (ps) {\n return new api(function (resolveAll, rejectAll) {\n var vals = new Array(ps.length);\n var doneCount = 0;\n var fulfill = function fulfill(i, val) {\n vals[i] = val;\n doneCount++;\n if (doneCount === ps.length) {\n resolveAll(vals);\n }\n };\n for (var i = 0; i < ps.length; i++) {\n (function (i) {\n var p = ps[i];\n var isPromise = p != null && p.then != null;\n if (isPromise) {\n p.then(function (val) {\n fulfill(i, val);\n }, function (err) {\n rejectAll(err);\n });\n } else {\n var val = p;\n fulfill(i, val);\n }\n })(i);\n }\n });\n };\n api.resolve = function (val) {\n return new api(function (resolve, reject) {\n resolve(val);\n });\n };\n api.reject = function (val) {\n return new api(function (resolve, reject) {\n reject(val);\n });\n };\n var Promise$1 = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef\n\n var Animation = function Animation(target, opts, opts2) {\n var isCore = core(target);\n var isEle = !isCore;\n var _p = this._private = extend({\n duration: 1000\n }, opts, opts2);\n _p.target = target;\n _p.style = _p.style || _p.css;\n _p.started = false;\n _p.playing = false;\n _p.hooked = false;\n _p.applying = false;\n _p.progress = 0;\n _p.completes = [];\n _p.frames = [];\n if (_p.complete && fn$6(_p.complete)) {\n _p.completes.push(_p.complete);\n }\n if (isEle) {\n var pos = target.position();\n _p.startPosition = _p.startPosition || {\n x: pos.x,\n y: pos.y\n };\n _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);\n }\n if (isCore) {\n var pan = target.pan();\n _p.startPan = {\n x: pan.x,\n y: pan.y\n };\n _p.startZoom = target.zoom();\n }\n\n // for future timeline/animations impl\n this.length = 1;\n this[0] = this;\n };\n var anifn = Animation.prototype;\n extend(anifn, {\n instanceString: function instanceString() {\n return 'animation';\n },\n hook: function hook() {\n var _p = this._private;\n if (!_p.hooked) {\n // add to target's animation queue\n var q;\n var tAni = _p.target._private.animation;\n if (_p.queue) {\n q = tAni.queue;\n } else {\n q = tAni.current;\n }\n q.push(this);\n\n // add to the animation loop pool\n if (elementOrCollection(_p.target)) {\n _p.target.cy().addToAnimationPool(_p.target);\n }\n _p.hooked = true;\n }\n return this;\n },\n play: function play() {\n var _p = this._private;\n\n // autorewind\n if (_p.progress === 1) {\n _p.progress = 0;\n }\n _p.playing = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will start the animation...\n\n return this;\n },\n playing: function playing() {\n return this._private.playing;\n },\n apply: function apply() {\n var _p = this._private;\n _p.applying = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will apply the animation at this progress\n\n return this;\n },\n applying: function applying() {\n return this._private.applying;\n },\n pause: function pause() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n return this;\n },\n stop: function stop() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n _p.stopped = true; // to be removed from animation queues\n\n return this;\n },\n rewind: function rewind() {\n return this.progress(0);\n },\n fastforward: function fastforward() {\n return this.progress(1);\n },\n time: function time(t) {\n var _p = this._private;\n if (t === undefined) {\n return _p.progress * _p.duration;\n } else {\n return this.progress(t / _p.duration);\n }\n },\n progress: function progress(p) {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (p === undefined) {\n return _p.progress;\n } else {\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = p;\n _p.started = false;\n if (wasPlaying) {\n this.play();\n }\n }\n return this;\n },\n completed: function completed() {\n return this._private.progress === 1;\n },\n reverse: function reverse() {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = 1 - _p.progress;\n _p.started = false;\n var swap = function swap(a, b) {\n var _pa = _p[a];\n if (_pa == null) {\n return;\n }\n _p[a] = _p[b];\n _p[b] = _pa;\n };\n swap('zoom', 'startZoom');\n swap('pan', 'startPan');\n swap('position', 'startPosition');\n\n // swap styles\n if (_p.style) {\n for (var i = 0; i < _p.style.length; i++) {\n var prop = _p.style[i];\n var name = prop.name;\n var startStyleProp = _p.startStyle[name];\n _p.startStyle[name] = prop;\n _p.style[i] = startStyleProp;\n }\n }\n if (wasPlaying) {\n this.play();\n }\n return this;\n },\n promise: function promise(type) {\n var _p = this._private;\n var arr;\n switch (type) {\n case 'frame':\n arr = _p.frames;\n break;\n default:\n case 'complete':\n case 'completed':\n arr = _p.completes;\n }\n return new Promise$1(function (resolve, reject) {\n arr.push(function () {\n resolve();\n });\n });\n }\n });\n anifn.complete = anifn.completed;\n anifn.run = anifn.play;\n anifn.running = anifn.playing;\n\n var define$3 = {\n animated: function animated() {\n return function animatedImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = all[0];\n if (ele) {\n return ele._private.animation.current.length > 0;\n }\n };\n },\n // animated\n\n clearQueue: function clearQueue() {\n return function clearQueueImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n ele._private.animation.queue = [];\n }\n return this;\n };\n },\n // clearQueue\n\n delay: function delay() {\n return function delayImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animate({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n delayAnimation: function delayAnimation() {\n return function delayAnimationImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animation({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n animation: function animation() {\n return function animationImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n var isCore = !selfIsArrayLike;\n var isEles = !isCore;\n if (!cy.styleEnabled()) {\n return this;\n }\n var style = cy.style();\n properties = extend({}, properties, params);\n var propertiesEmpty = Object.keys(properties).length === 0;\n if (propertiesEmpty) {\n return new Animation(all[0], properties); // nothing to animate\n }\n\n if (properties.duration === undefined) {\n properties.duration = 400;\n }\n switch (properties.duration) {\n case 'slow':\n properties.duration = 600;\n break;\n case 'fast':\n properties.duration = 200;\n break;\n }\n if (isEles) {\n properties.style = style.getPropsList(properties.style || properties.css);\n properties.css = undefined;\n }\n if (isEles && properties.renderedPosition != null) {\n var rpos = properties.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n properties.position = renderedToModelPosition(rpos, zoom, pan);\n }\n\n // override pan w/ panBy if set\n if (isCore && properties.panBy != null) {\n var panBy = properties.panBy;\n var cyPan = cy.pan();\n properties.pan = {\n x: cyPan.x + panBy.x,\n y: cyPan.y + panBy.y\n };\n }\n\n // override pan w/ center if set\n var center = properties.center || properties.centre;\n if (isCore && center != null) {\n var centerPan = cy.getCenterPan(center.eles, properties.zoom);\n if (centerPan != null) {\n properties.pan = centerPan;\n }\n }\n\n // override pan & zoom w/ fit if set\n if (isCore && properties.fit != null) {\n var fit = properties.fit;\n var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);\n if (fitVp != null) {\n properties.pan = fitVp.pan;\n properties.zoom = fitVp.zoom;\n }\n }\n\n // override zoom (& potentially pan) w/ zoom obj if set\n if (isCore && plainObject(properties.zoom)) {\n var vp = cy.getZoomedViewport(properties.zoom);\n if (vp != null) {\n if (vp.zoomed) {\n properties.zoom = vp.zoom;\n }\n if (vp.panned) {\n properties.pan = vp.pan;\n }\n } else {\n properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed\n }\n }\n\n return new Animation(all[0], properties);\n };\n },\n // animate\n\n animate: function animate() {\n return function animateImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (params) {\n properties = extend({}, properties, params);\n }\n\n // manually hook and run the animation\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var queue = ele.animated() && (properties.queue === undefined || properties.queue);\n var ani = ele.animation(properties, queue ? {\n queue: true\n } : undefined);\n ani.play();\n }\n return this; // chaining\n };\n },\n\n // animate\n\n stop: function stop() {\n return function stopImpl(clearQueue, jumpToEnd) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var _p = ele._private;\n var anis = _p.animation.current;\n for (var j = 0; j < anis.length; j++) {\n var ani = anis[j];\n var ani_p = ani._private;\n if (jumpToEnd) {\n // next iteration of the animation loop, the animation\n // will go straight to the end and be removed\n ani_p.duration = 0;\n }\n }\n\n // clear the queue of future animations\n if (clearQueue) {\n _p.animation.queue = [];\n }\n if (!jumpToEnd) {\n _p.animation.current = [];\n }\n }\n\n // we have to notify (the animation loop doesn't do it for us on `stop`)\n cy.notify('draw');\n return this;\n };\n } // stop\n }; // define\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n var isArray_1 = isArray;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray_1(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol_1(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n var _isKey = isKey;\n\n /** `Object#toString` result references. */\n var asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject_1(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = _baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n var isFunction_1 = isFunction;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = _root['__core-js_shared__'];\n\n var _coreJsData = coreJsData;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n var _isMasked = isMasked;\n\n /** Used for built-in method references. */\n var funcProto$1 = Function.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString$1 = funcProto$1.toString;\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString$1.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n var _toSource = toSource;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used for built-in method references. */\n var funcProto = Function.prototype,\n objectProto$3 = Object.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$3 = objectProto$3.hasOwnProperty;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty$3).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject_1(value) || _isMasked(value)) {\n return false;\n }\n var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource(value));\n }\n\n var _baseIsNative = baseIsNative;\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue$1(object, key) {\n return object == null ? undefined : object[key];\n }\n\n var _getValue = getValue$1;\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = _getValue(object, key);\n return _baseIsNative(value) ? value : undefined;\n }\n\n var _getNative = getNative;\n\n /* Built-in method references that are verified to be native. */\n var nativeCreate = _getNative(Object, 'create');\n\n var _nativeCreate = nativeCreate;\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = _nativeCreate ? _nativeCreate(null) : {};\n this.size = 0;\n }\n\n var _hashClear = hashClear;\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n var _hashDelete = hashDelete;\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\n\n /** Used for built-in method references. */\n var objectProto$2 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$2 = objectProto$2.hasOwnProperty;\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED$1 ? undefined : result;\n }\n return hasOwnProperty$2.call(data, key) ? data[key] : undefined;\n }\n\n var _hashGet = hashGet;\n\n /** Used for built-in method references. */\n var objectProto$1 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$1 = objectProto$1.hasOwnProperty;\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key);\n }\n\n var _hashHas = hashHas;\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n var _hashSet = hashSet;\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = _hashClear;\n Hash.prototype['delete'] = _hashDelete;\n Hash.prototype.get = _hashGet;\n Hash.prototype.has = _hashHas;\n Hash.prototype.set = _hashSet;\n\n var _Hash = Hash;\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n var _listCacheClear = listCacheClear;\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n var eq_1 = eq;\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n var _assocIndexOf = assocIndexOf;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype;\n\n /** Built-in value references. */\n var splice = arrayProto.splice;\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n var _listCacheDelete = listCacheDelete;\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n var _listCacheGet = listCacheGet;\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return _assocIndexOf(this.__data__, key) > -1;\n }\n\n var _listCacheHas = listCacheHas;\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n var _listCacheSet = listCacheSet;\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = _listCacheClear;\n ListCache.prototype['delete'] = _listCacheDelete;\n ListCache.prototype.get = _listCacheGet;\n ListCache.prototype.has = _listCacheHas;\n ListCache.prototype.set = _listCacheSet;\n\n var _ListCache = ListCache;\n\n /* Built-in method references that are verified to be native. */\n var Map$1 = _getNative(_root, 'Map');\n\n var _Map = Map$1;\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash,\n 'map': new (_Map || _ListCache),\n 'string': new _Hash\n };\n }\n\n var _mapCacheClear = mapCacheClear;\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n var _isKeyable = isKeyable;\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n var _getMapData = getMapData;\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = _getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n var _mapCacheDelete = mapCacheDelete;\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return _getMapData(this, key).get(key);\n }\n\n var _mapCacheGet = mapCacheGet;\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return _getMapData(this, key).has(key);\n }\n\n var _mapCacheHas = mapCacheHas;\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = _getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n var _mapCacheSet = mapCacheSet;\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = _mapCacheClear;\n MapCache.prototype['delete'] = _mapCacheDelete;\n MapCache.prototype.get = _mapCacheGet;\n MapCache.prototype.has = _mapCacheHas;\n MapCache.prototype.set = _mapCacheSet;\n\n var _MapCache = MapCache;\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = _MapCache;\n\n var memoize_1 = memoize;\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize_1(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n var _memoizeCapped = memoizeCapped;\n\n /** Used to match property names within property paths. */\n var rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = _memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n var _stringToPath = stringToPath;\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n var _arrayMap = arrayMap;\n\n /** Used as references for various `Number` constants. */\n var INFINITY$1 = 1 / 0;\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray_1(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return _arrayMap(value, baseToString) + '';\n }\n if (isSymbol_1(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;\n }\n\n var _baseToString = baseToString;\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString$1(value) {\n return value == null ? '' : _baseToString(value);\n }\n\n var toString_1 = toString$1;\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray_1(value)) {\n return value;\n }\n return _isKey(value, object) ? [value] : _stringToPath(toString_1(value));\n }\n\n var _castPath = castPath;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0;\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol_1(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n var _toKey = toKey;\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = _castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[_toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n var _baseGet = baseGet;\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : _baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n var get_1 = get;\n\n var defineProperty = (function() {\n try {\n var func = _getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n var _defineProperty = defineProperty;\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty) {\n _defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n var _baseAssignValue = baseAssignValue;\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq_1(objValue, value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n }\n\n var _assignValue = assignValue;\n\n /** Used as references for various `Number` constants. */\n var MAX_SAFE_INTEGER = 9007199254740991;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n var _isIndex = isIndex;\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject_1(object)) {\n return object;\n }\n path = _castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = _toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject_1(objValue)\n ? objValue\n : (_isIndex(path[index + 1]) ? [] : {});\n }\n }\n _assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n var _baseSet = baseSet;\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : _baseSet(object, path, value);\n }\n\n var set_1 = set;\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n var _copyArray = copyArray;\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray_1(value)) {\n return _arrayMap(value, _toKey);\n }\n return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));\n }\n\n var toPath_1 = toPath;\n\n var define$2 = {\n // access data field\n data: function data(params) {\n var defaults = {\n field: 'data',\n bindingEvent: 'data',\n allowBinding: false,\n allowSetting: false,\n allowGetting: false,\n settingEvent: 'data',\n settingTriggersEvent: false,\n triggerFnName: 'trigger',\n immutableKeys: {},\n // key => true if immutable\n updateStyle: false,\n beforeGet: function beforeGet(self) {},\n beforeSet: function beforeSet(self, obj) {},\n onSet: function onSet(self) {},\n canSet: function canSet(self) {\n return true;\n }\n };\n params = extend({}, defaults, params);\n return function dataImpl(name, value) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var single = selfIsArrayLike ? self[0] : self;\n\n // .data('foo', ...)\n if (string(name)) {\n // set or get property\n var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot \n var path = isPathLike && toPath_1(name);\n\n // .data('foo')\n if (p.allowGetting && value === undefined) {\n // get\n\n var ret;\n if (single) {\n p.beforeGet(single);\n\n // check if it's path and a field with the same name doesn't exist\n if (path && single._private[p.field][name] === undefined) {\n ret = get_1(single._private[p.field], path);\n } else {\n ret = single._private[p.field][name];\n }\n }\n return ret;\n\n // .data('foo', 'bar')\n } else if (p.allowSetting && value !== undefined) {\n // set\n var valid = !p.immutableKeys[name];\n if (valid) {\n var change = _defineProperty$1({}, name, value);\n p.beforeSet(self, change);\n for (var i = 0, l = all.length; i < l; i++) {\n var ele = all[i];\n if (p.canSet(ele)) {\n if (path && single._private[p.field][name] === undefined) {\n set_1(ele._private[p.field], path, value);\n } else {\n ele._private[p.field][name] = value;\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n }\n }\n\n // .data({ 'foo': 'bar' })\n } else if (p.allowSetting && plainObject(name)) {\n // extend\n var obj = name;\n var k, v;\n var keys = Object.keys(obj);\n p.beforeSet(self, obj);\n for (var _i = 0; _i < keys.length; _i++) {\n k = keys[_i];\n v = obj[k];\n var _valid = !p.immutableKeys[k];\n if (_valid) {\n for (var j = 0; j < all.length; j++) {\n var _ele = all[j];\n if (p.canSet(_ele)) {\n _ele._private[p.field][k] = v;\n }\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n\n // .data(function(){ ... })\n } else if (p.allowBinding && fn$6(name)) {\n // bind to event\n var fn = name;\n self.on(p.bindingEvent, fn);\n\n // .data()\n } else if (p.allowGetting && name === undefined) {\n // get whole object\n var _ret;\n if (single) {\n p.beforeGet(single);\n _ret = single._private[p.field];\n }\n return _ret;\n }\n return self; // maintain chainability\n }; // function\n },\n\n // data\n\n // remove data field\n removeData: function removeData(params) {\n var defaults = {\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: false,\n immutableKeys: {} // key => true if immutable\n };\n\n params = extend({}, defaults, params);\n return function removeDataImpl(names) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n\n // .removeData('foo bar')\n if (string(names)) {\n // then get the list of keys, and delete them\n var keys = names.split(/\\s+/);\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n // delete each non-empty key\n var key = keys[i];\n if (emptyString(key)) {\n continue;\n }\n var valid = !p.immutableKeys[key]; // not valid if immutable\n if (valid) {\n for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {\n all[i_a]._private[p.field][key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n\n // .removeData()\n } else if (names === undefined) {\n // then delete all keys\n\n for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {\n var _privateFields = all[_i_a]._private[p.field];\n var _keys = Object.keys(_privateFields);\n for (var _i2 = 0; _i2 < _keys.length; _i2++) {\n var _key = _keys[_i2];\n var validKeyToDelete = !p.immutableKeys[_key];\n if (validKeyToDelete) {\n _privateFields[_key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n }\n return self; // maintain chaining\n }; // function\n } // removeData\n }; // define\n\n var define$1 = {\n eventAliasesOn: function eventAliasesOn(proto) {\n var p = proto;\n p.addListener = p.listen = p.bind = p.on;\n p.unlisten = p.unbind = p.off = p.removeListener;\n p.trigger = p.emit;\n\n // this is just a wrapper alias of .on()\n p.pon = p.promiseOn = function (events, selector) {\n var self = this;\n var args = Array.prototype.slice.call(arguments, 0);\n return new Promise$1(function (resolve, reject) {\n var callback = function callback(e) {\n self.off.apply(self, offArgs);\n resolve(e);\n };\n var onArgs = args.concat([callback]);\n var offArgs = onArgs.concat([]);\n self.on.apply(self, onArgs);\n });\n };\n }\n }; // define\n\n // use this module to cherry pick functions into your prototype\n var define = {};\n [define$3, define$2, define$1].forEach(function (m) {\n extend(define, m);\n });\n\n var elesfn$i = {\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop()\n };\n\n var elesfn$h = {\n classes: function classes(_classes) {\n var self = this;\n if (_classes === undefined) {\n var ret = [];\n self[0]._private.classes.forEach(function (cls) {\n return ret.push(cls);\n });\n return ret;\n } else if (!array(_classes)) {\n // extract classes from string\n _classes = (_classes || '').match(/\\S+/g) || [];\n }\n var changed = [];\n var classesSet = new Set$1(_classes);\n\n // check and update each ele\n for (var j = 0; j < self.length; j++) {\n var ele = self[j];\n var _p = ele._private;\n var eleClasses = _p.classes;\n var changedEle = false;\n\n // check if ele has all of the passed classes\n for (var i = 0; i < _classes.length; i++) {\n var cls = _classes[i];\n var eleHasClass = eleClasses.has(cls);\n if (!eleHasClass) {\n changedEle = true;\n break;\n }\n }\n\n // check if ele has classes outside of those passed\n if (!changedEle) {\n changedEle = eleClasses.size !== _classes.length;\n }\n if (changedEle) {\n _p.classes = classesSet;\n changed.push(ele);\n }\n }\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n addClass: function addClass(classes) {\n return this.toggleClass(classes, true);\n },\n hasClass: function hasClass(className) {\n var ele = this[0];\n return ele != null && ele._private.classes.has(className);\n },\n toggleClass: function toggleClass(classes, toggle) {\n if (!array(classes)) {\n // extract classes from string\n classes = classes.match(/\\S+/g) || [];\n }\n var self = this;\n var toggleUndefd = toggle === undefined;\n var changed = []; // eles who had classes changed\n\n for (var i = 0, il = self.length; i < il; i++) {\n var ele = self[i];\n var eleClasses = ele._private.classes;\n var changedEle = false;\n for (var j = 0; j < classes.length; j++) {\n var cls = classes[j];\n var hasClass = eleClasses.has(cls);\n var changedNow = false;\n if (toggle || toggleUndefd && !hasClass) {\n eleClasses.add(cls);\n changedNow = true;\n } else if (!toggle || toggleUndefd && hasClass) {\n eleClasses[\"delete\"](cls);\n changedNow = true;\n }\n if (!changedEle && changedNow) {\n changed.push(ele);\n changedEle = true;\n }\n } // for j classes\n } // for i eles\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n removeClass: function removeClass(classes) {\n return this.toggleClass(classes, false);\n },\n flashClass: function flashClass(classes, duration) {\n var self = this;\n if (duration == null) {\n duration = 250;\n } else if (duration === 0) {\n return self; // nothing to do really\n }\n\n self.addClass(classes);\n setTimeout(function () {\n self.removeClass(classes);\n }, duration);\n return self;\n }\n };\n elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;\n\n // tokens in the query language\n var tokens = {\n metaChar: '[\\\\!\\\\\"\\\\#\\\\$\\\\%\\\\&\\\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\.\\\\/\\\\:\\\\;\\\\<\\\\=\\\\>\\\\?\\\\@\\\\[\\\\]\\\\^\\\\`\\\\{\\\\|\\\\}\\\\~]',\n // chars we need to escape in let names, etc\n comparatorOp: '=|\\\\!=|>|>=|<|<=|\\\\$=|\\\\^=|\\\\*=',\n // binary comparison op (used in data selectors)\n boolOp: '\\\\?|\\\\!|\\\\^',\n // boolean (unary) operators (used in data selectors)\n string: '\"(?:\\\\\\\\\"|[^\"])*\"' + '|' + \"'(?:\\\\\\\\'|[^'])*'\",\n // string literals (used in data selectors) -- doublequotes | singlequotes\n number: number,\n // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123\n meta: 'degree|indegree|outdegree',\n // allowed metadata fields (i.e. allowed functions to use from Collection)\n separator: '\\\\s*,\\\\s*',\n // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass\n descendant: '\\\\s+',\n child: '\\\\s+>\\\\s+',\n subject: '\\\\$',\n group: 'node|edge|\\\\*',\n directedEdge: '\\\\s+->\\\\s+',\n undirectedEdge: '\\\\s+<->\\\\s+'\n };\n tokens.variable = '(?:[\\\\w-.]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods\n tokens.className = '(?:[\\\\w-]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name\n tokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number\n tokens.id = tokens.variable; // an element id (follows variable conventions)\n\n (function () {\n var ops, op, i;\n\n // add @ variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n tokens.comparatorOp += '|@' + op;\n }\n\n // add ! variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n if (op.indexOf('!') >= 0) {\n continue;\n } // skip ops that explicitly contain !\n if (op === '=') {\n continue;\n } // skip = b/c != is explicitly defined\n\n tokens.comparatorOp += '|\\\\!' + op;\n }\n })();\n\n /**\n * Make a new query object\n *\n * @prop type {Type} The type enum (int) of the query\n * @prop checks List of checks to make against an ele to test for a match\n */\n var newQuery = function newQuery() {\n return {\n checks: []\n };\n };\n\n /**\n * A check type enum-like object. Uses integer values for fast match() lookup.\n * The ordering does not matter as long as the ints are unique.\n */\n var Type = {\n /** E.g. node */\n GROUP: 0,\n /** A collection of elements */\n COLLECTION: 1,\n /** A filter(ele) function */\n FILTER: 2,\n /** E.g. [foo > 1] */\n DATA_COMPARE: 3,\n /** E.g. [foo] */\n DATA_EXIST: 4,\n /** E.g. [?foo] */\n DATA_BOOL: 5,\n /** E.g. [[degree > 2]] */\n META_COMPARE: 6,\n /** E.g. :selected */\n STATE: 7,\n /** E.g. #foo */\n ID: 8,\n /** E.g. .foo */\n CLASS: 9,\n /** E.g. #foo <-> #bar */\n UNDIRECTED_EDGE: 10,\n /** E.g. #foo -> #bar */\n DIRECTED_EDGE: 11,\n /** E.g. $#foo -> #bar */\n NODE_SOURCE: 12,\n /** E.g. #foo -> $#bar */\n NODE_TARGET: 13,\n /** E.g. $#foo <-> #bar */\n NODE_NEIGHBOR: 14,\n /** E.g. #foo > #bar */\n CHILD: 15,\n /** E.g. #foo #bar */\n DESCENDANT: 16,\n /** E.g. $#foo > #bar */\n PARENT: 17,\n /** E.g. $#foo #bar */\n ANCESTOR: 18,\n /** E.g. #foo > $bar > #baz */\n COMPOUND_SPLIT: 19,\n /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */\n TRUE: 20\n };\n\n var stateSelectors = [{\n selector: ':selected',\n matches: function matches(ele) {\n return ele.selected();\n }\n }, {\n selector: ':unselected',\n matches: function matches(ele) {\n return !ele.selected();\n }\n }, {\n selector: ':selectable',\n matches: function matches(ele) {\n return ele.selectable();\n }\n }, {\n selector: ':unselectable',\n matches: function matches(ele) {\n return !ele.selectable();\n }\n }, {\n selector: ':locked',\n matches: function matches(ele) {\n return ele.locked();\n }\n }, {\n selector: ':unlocked',\n matches: function matches(ele) {\n return !ele.locked();\n }\n }, {\n selector: ':visible',\n matches: function matches(ele) {\n return ele.visible();\n }\n }, {\n selector: ':hidden',\n matches: function matches(ele) {\n return !ele.visible();\n }\n }, {\n selector: ':transparent',\n matches: function matches(ele) {\n return ele.transparent();\n }\n }, {\n selector: ':grabbed',\n matches: function matches(ele) {\n return ele.grabbed();\n }\n }, {\n selector: ':free',\n matches: function matches(ele) {\n return !ele.grabbed();\n }\n }, {\n selector: ':removed',\n matches: function matches(ele) {\n return ele.removed();\n }\n }, {\n selector: ':inside',\n matches: function matches(ele) {\n return !ele.removed();\n }\n }, {\n selector: ':grabbable',\n matches: function matches(ele) {\n return ele.grabbable();\n }\n }, {\n selector: ':ungrabbable',\n matches: function matches(ele) {\n return !ele.grabbable();\n }\n }, {\n selector: ':animated',\n matches: function matches(ele) {\n return ele.animated();\n }\n }, {\n selector: ':unanimated',\n matches: function matches(ele) {\n return !ele.animated();\n }\n }, {\n selector: ':parent',\n matches: function matches(ele) {\n return ele.isParent();\n }\n }, {\n selector: ':childless',\n matches: function matches(ele) {\n return ele.isChildless();\n }\n }, {\n selector: ':child',\n matches: function matches(ele) {\n return ele.isChild();\n }\n }, {\n selector: ':orphan',\n matches: function matches(ele) {\n return ele.isOrphan();\n }\n }, {\n selector: ':nonorphan',\n matches: function matches(ele) {\n return ele.isChild();\n }\n }, {\n selector: ':compound',\n matches: function matches(ele) {\n if (ele.isNode()) {\n return ele.isParent();\n } else {\n return ele.source().isParent() || ele.target().isParent();\n }\n }\n }, {\n selector: ':loop',\n matches: function matches(ele) {\n return ele.isLoop();\n }\n }, {\n selector: ':simple',\n matches: function matches(ele) {\n return ele.isSimple();\n }\n }, {\n selector: ':active',\n matches: function matches(ele) {\n return ele.active();\n }\n }, {\n selector: ':inactive',\n matches: function matches(ele) {\n return !ele.active();\n }\n }, {\n selector: ':backgrounding',\n matches: function matches(ele) {\n return ele.backgrounding();\n }\n }, {\n selector: ':nonbackgrounding',\n matches: function matches(ele) {\n return !ele.backgrounding();\n }\n }].sort(function (a, b) {\n // n.b. selectors that are starting substrings of others must have the longer ones first\n return descending(a.selector, b.selector);\n });\n var lookup = function () {\n var selToFn = {};\n var s;\n for (var i = 0; i < stateSelectors.length; i++) {\n s = stateSelectors[i];\n selToFn[s.selector] = s.matches;\n }\n return selToFn;\n }();\n var stateSelectorMatches = function stateSelectorMatches(sel, ele) {\n return lookup[sel](ele);\n };\n var stateSelectorRegex = '(' + stateSelectors.map(function (s) {\n return s.selector;\n }).join('|') + ')';\n\n // when a token like a variable has escaped meta characters, we need to clean the backslashes out\n // so that values get compared properly in Selector.filter()\n var cleanMetaChars = function cleanMetaChars(str) {\n return str.replace(new RegExp('\\\\\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) {\n return $1;\n });\n };\n var replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) {\n selector[selector.length - 1] = replacementQuery;\n };\n\n // NOTE: add new expression syntax here to have it recognised by the parser;\n // - a query contains all adjacent (i.e. no separator in between) expressions;\n // - the current query is stored in selector[i]\n // - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward\n var exprs = [{\n name: 'group',\n // just used for identifying when debugging\n query: true,\n regex: '(' + tokens.group + ')',\n populate: function populate(selector, query, _ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n group = _ref2[0];\n query.checks.push({\n type: Type.GROUP,\n value: group === '*' ? group : group + 's'\n });\n }\n }, {\n name: 'state',\n query: true,\n regex: stateSelectorRegex,\n populate: function populate(selector, query, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n state = _ref4[0];\n query.checks.push({\n type: Type.STATE,\n value: state\n });\n }\n }, {\n name: 'id',\n query: true,\n regex: '\\\\#(' + tokens.id + ')',\n populate: function populate(selector, query, _ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n id = _ref6[0];\n query.checks.push({\n type: Type.ID,\n value: cleanMetaChars(id)\n });\n }\n }, {\n name: 'className',\n query: true,\n regex: '\\\\.(' + tokens.className + ')',\n populate: function populate(selector, query, _ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n className = _ref8[0];\n query.checks.push({\n type: Type.CLASS,\n value: cleanMetaChars(className)\n });\n }\n }, {\n name: 'dataExists',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n variable = _ref10[0];\n query.checks.push({\n type: Type.DATA_EXIST,\n field: cleanMetaChars(variable)\n });\n }\n }, {\n name: 'dataCompare',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.value + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref11) {\n var _ref12 = _slicedToArray(_ref11, 3),\n variable = _ref12[0],\n comparatorOp = _ref12[1],\n value = _ref12[2];\n var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null;\n if (valueIsString) {\n value = value.substring(1, value.length - 1);\n } else {\n value = parseFloat(value);\n }\n query.checks.push({\n type: Type.DATA_COMPARE,\n field: cleanMetaChars(variable),\n operator: comparatorOp,\n value: value\n });\n }\n }, {\n name: 'dataBool',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.boolOp + ')\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n boolOp = _ref14[0],\n variable = _ref14[1];\n query.checks.push({\n type: Type.DATA_BOOL,\n field: cleanMetaChars(variable),\n operator: boolOp\n });\n }\n }, {\n name: 'metaCompare',\n query: true,\n regex: '\\\\[\\\\[\\\\s*(' + tokens.meta + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.number + ')\\\\s*\\\\]\\\\]',\n populate: function populate(selector, query, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 3),\n meta = _ref16[0],\n comparatorOp = _ref16[1],\n number = _ref16[2];\n query.checks.push({\n type: Type.META_COMPARE,\n field: cleanMetaChars(meta),\n operator: comparatorOp,\n value: parseFloat(number)\n });\n }\n }, {\n name: 'nextQuery',\n separator: true,\n regex: tokens.separator,\n populate: function populate(selector, query) {\n var currentSubject = selector.currentSubject;\n var edgeCount = selector.edgeCount;\n var compoundCount = selector.compoundCount;\n var lastQ = selector[selector.length - 1];\n if (currentSubject != null) {\n lastQ.subject = currentSubject;\n selector.currentSubject = null;\n }\n lastQ.edgeCount = edgeCount;\n lastQ.compoundCount = compoundCount;\n selector.edgeCount = 0;\n selector.compoundCount = 0;\n\n // go on to next query\n var nextQuery = selector[selector.length++] = newQuery();\n return nextQuery; // this is the new query to be filled by the following exprs\n }\n }, {\n name: 'directedEdge',\n separator: true,\n regex: tokens.directedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.DIRECTED_EDGE,\n source: source,\n target: target\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // source/target\n var srcTgtQ = newQuery();\n var _source = query;\n var _target = newQuery();\n srcTgtQ.checks.push({\n type: Type.NODE_SOURCE,\n source: _source,\n target: _target\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, srcTgtQ);\n selector.edgeCount++;\n return _target; // now populating the target with the following expressions\n }\n }\n }, {\n name: 'undirectedEdge',\n separator: true,\n regex: tokens.undirectedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.UNDIRECTED_EDGE,\n nodes: [source, target]\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // neighbourhood\n var nhoodQ = newQuery();\n var node = query;\n var neighbor = newQuery();\n nhoodQ.checks.push({\n type: Type.NODE_NEIGHBOR,\n node: node,\n neighbor: neighbor\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, nhoodQ);\n return neighbor; // now populating the neighbor with following expressions\n }\n }\n }, {\n name: 'child',\n separator: true,\n regex: tokens.child,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: child query\n var parentChildQuery = newQuery();\n var child = newQuery();\n var parent = selector[selector.length - 1];\n parentChildQuery.checks.push({\n type: Type.CHILD,\n parent: parent,\n child: child\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, parentChildQuery);\n selector.compoundCount++;\n\n // we're now populating the child query with expressions that follow\n return child;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _child = newQuery();\n var _parent = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _parent.checks.push({\n type: Type.TRUE\n }); // parent implicitly refs the subject\n right.checks.push({\n type: Type.PARENT,\n // type is swapped on right side queries\n parent: _parent,\n child: _child // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _child; // now populating the right side's child\n } else {\n // parent query\n // info for parent query\n var _parent2 = newQuery();\n var _child2 = newQuery();\n var pcQChecks = [{\n type: Type.PARENT,\n parent: _parent2,\n child: _child2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _parent2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = pcQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _child2; // we're now populating the child\n }\n }\n }, {\n name: 'descendant',\n separator: true,\n regex: tokens.descendant,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: descendant query\n var ancChQuery = newQuery();\n var descendant = newQuery();\n var ancestor = selector[selector.length - 1];\n ancChQuery.checks.push({\n type: Type.DESCENDANT,\n ancestor: ancestor,\n descendant: descendant\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, ancChQuery);\n selector.compoundCount++;\n\n // we're now populating the descendant query with expressions that follow\n return descendant;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _descendant = newQuery();\n var _ancestor = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _ancestor.checks.push({\n type: Type.TRUE\n }); // ancestor implicitly refs the subject\n right.checks.push({\n type: Type.ANCESTOR,\n // type is swapped on right side queries\n ancestor: _ancestor,\n descendant: _descendant // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _descendant; // now populating the right side's descendant\n } else {\n // ancestor query\n // info for parent query\n var _ancestor2 = newQuery();\n var _descendant2 = newQuery();\n var adQChecks = [{\n type: Type.ANCESTOR,\n ancestor: _ancestor2,\n descendant: _descendant2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _ancestor2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = adQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _descendant2; // we're now populating the child\n }\n }\n }, {\n name: 'subject',\n modifier: true,\n regex: tokens.subject,\n populate: function populate(selector, query) {\n if (selector.currentSubject != null && selector.currentSubject !== query) {\n warn('Redefinition of subject in selector `' + selector.toString() + '`');\n return false;\n }\n selector.currentSubject = query;\n var topQ = selector[selector.length - 1];\n var topChk = topQ.checks[0];\n var topType = topChk == null ? null : topChk.type;\n if (topType === Type.DIRECTED_EDGE) {\n // directed edge with subject on the target\n\n // change to target node check\n topChk.type = Type.NODE_TARGET;\n } else if (topType === Type.UNDIRECTED_EDGE) {\n // undirected edge with subject on the second node\n\n // change to neighbor check\n topChk.type = Type.NODE_NEIGHBOR;\n topChk.node = topChk.nodes[1]; // second node is subject\n topChk.neighbor = topChk.nodes[0];\n\n // clean up unused fields for new type\n topChk.nodes = null;\n }\n }\n }];\n exprs.forEach(function (e) {\n return e.regexObj = new RegExp('^' + e.regex);\n });\n\n /**\n * Of all the expressions, find the first match in the remaining text.\n * @param {string} remaining The remaining text to parse\n * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }`\n */\n var consumeExpr = function consumeExpr(remaining) {\n var expr;\n var match;\n var name;\n for (var j = 0; j < exprs.length; j++) {\n var e = exprs[j];\n var n = e.name;\n var m = remaining.match(e.regexObj);\n if (m != null) {\n match = m;\n expr = e;\n name = n;\n var consumed = m[0];\n remaining = remaining.substring(consumed.length);\n break; // we've consumed one expr, so we can return now\n }\n }\n\n return {\n expr: expr,\n match: match,\n name: name,\n remaining: remaining\n };\n };\n\n /**\n * Consume all the leading whitespace\n * @param {string} remaining The text to consume\n * @returns The text with the leading whitespace removed\n */\n var consumeWhitespace = function consumeWhitespace(remaining) {\n var match = remaining.match(/^\\s+/);\n if (match) {\n var consumed = match[0];\n remaining = remaining.substring(consumed.length);\n }\n return remaining;\n };\n\n /**\n * Parse the string and store the parsed representation in the Selector.\n * @param {string} selector The selector string\n * @returns `true` if the selector was successfully parsed, `false` otherwise\n */\n var parse = function parse(selector) {\n var self = this;\n var remaining = self.inputText = selector;\n var currentQuery = self[0] = newQuery();\n self.length = 1;\n remaining = consumeWhitespace(remaining); // get rid of leading whitespace\n\n for (;;) {\n var exprInfo = consumeExpr(remaining);\n if (exprInfo.expr == null) {\n warn('The selector `' + selector + '`is invalid');\n return false;\n } else {\n var args = exprInfo.match.slice(1);\n\n // let the token populate the selector object in currentQuery\n var ret = exprInfo.expr.populate(self, currentQuery, args);\n if (ret === false) {\n return false; // exit if population failed\n } else if (ret != null) {\n currentQuery = ret; // change the current query to be filled if the expr specifies\n }\n }\n\n remaining = exprInfo.remaining;\n\n // we're done when there's nothing left to parse\n if (remaining.match(/^\\s*$/)) {\n break;\n }\n }\n var lastQ = self[self.length - 1];\n if (self.currentSubject != null) {\n lastQ.subject = self.currentSubject;\n }\n lastQ.edgeCount = self.edgeCount;\n lastQ.compoundCount = self.compoundCount;\n for (var i = 0; i < self.length; i++) {\n var q = self[i];\n\n // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations\n if (q.compoundCount > 0 && q.edgeCount > 0) {\n warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector');\n return false;\n }\n if (q.edgeCount > 1) {\n warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors');\n return false;\n } else if (q.edgeCount === 1) {\n warn('The selector `' + selector + '` 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.');\n }\n }\n return true; // success\n };\n\n /**\n * Get the selector represented as a string. This value uses default formatting,\n * so things like spacing may differ from the input text passed to the constructor.\n * @returns {string} The selector string\n */\n var toString = function toString() {\n if (this.toStringCache != null) {\n return this.toStringCache;\n }\n var clean = function clean(obj) {\n if (obj == null) {\n return '';\n } else {\n return obj;\n }\n };\n var cleanVal = function cleanVal(val) {\n if (string(val)) {\n return '\"' + val + '\"';\n } else {\n return clean(val);\n }\n };\n var space = function space(val) {\n return ' ' + val + ' ';\n };\n var checkToString = function checkToString(check, subject) {\n var type = check.type,\n value = check.value;\n switch (type) {\n case Type.GROUP:\n {\n var group = clean(value);\n return group.substring(0, group.length - 1);\n }\n case Type.DATA_COMPARE:\n {\n var field = check.field,\n operator = check.operator;\n return '[' + field + space(clean(operator)) + cleanVal(value) + ']';\n }\n case Type.DATA_BOOL:\n {\n var _operator = check.operator,\n _field = check.field;\n return '[' + clean(_operator) + _field + ']';\n }\n case Type.DATA_EXIST:\n {\n var _field2 = check.field;\n return '[' + _field2 + ']';\n }\n case Type.META_COMPARE:\n {\n var _operator2 = check.operator,\n _field3 = check.field;\n return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]';\n }\n case Type.STATE:\n {\n return value;\n }\n case Type.ID:\n {\n return '#' + value;\n }\n case Type.CLASS:\n {\n return '.' + value;\n }\n case Type.PARENT:\n case Type.CHILD:\n {\n return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject);\n }\n case Type.ANCESTOR:\n case Type.DESCENDANT:\n {\n return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject);\n }\n case Type.COMPOUND_SPLIT:\n {\n var lhs = queryToString(check.left, subject);\n var sub = queryToString(check.subject, subject);\n var rhs = queryToString(check.right, subject);\n return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs;\n }\n case Type.TRUE:\n {\n return '';\n }\n }\n };\n var queryToString = function queryToString(query, subject) {\n return query.checks.reduce(function (str, chk, i) {\n return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject);\n }, '');\n };\n var str = '';\n for (var i = 0; i < this.length; i++) {\n var query = this[i];\n str += queryToString(query, query.subject);\n if (this.length > 1 && i < this.length - 1) {\n str += ', ';\n }\n }\n this.toStringCache = str;\n return str;\n };\n var parse$1 = {\n parse: parse,\n toString: toString\n };\n\n var valCmp = function valCmp(fieldVal, operator, value) {\n var matches;\n var isFieldStr = string(fieldVal);\n var isFieldNum = number$1(fieldVal);\n var isValStr = string(value);\n var fieldStr, valStr;\n var caseInsensitive = false;\n var notExpr = false;\n var isIneqCmp = false;\n if (operator.indexOf('!') >= 0) {\n operator = operator.replace('!', '');\n notExpr = true;\n }\n if (operator.indexOf('@') >= 0) {\n operator = operator.replace('@', '');\n caseInsensitive = true;\n }\n if (isFieldStr || isValStr || caseInsensitive) {\n fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal;\n valStr = '' + value;\n }\n\n // if we're doing a case insensitive comparison, then we're using a STRING comparison\n // even if we're comparing numbers\n if (caseInsensitive) {\n fieldVal = fieldStr = fieldStr.toLowerCase();\n value = valStr = valStr.toLowerCase();\n }\n switch (operator) {\n case '*=':\n matches = fieldStr.indexOf(valStr) >= 0;\n break;\n case '$=':\n matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;\n break;\n case '^=':\n matches = fieldStr.indexOf(valStr) === 0;\n break;\n case '=':\n matches = fieldVal === value;\n break;\n case '>':\n isIneqCmp = true;\n matches = fieldVal > value;\n break;\n case '>=':\n isIneqCmp = true;\n matches = fieldVal >= value;\n break;\n case '<':\n isIneqCmp = true;\n matches = fieldVal < value;\n break;\n case '<=':\n isIneqCmp = true;\n matches = fieldVal <= value;\n break;\n default:\n matches = false;\n break;\n }\n\n // apply the not op, but null vals for inequalities should always stay non-matching\n if (notExpr && (fieldVal != null || !isIneqCmp)) {\n matches = !matches;\n }\n return matches;\n };\n var boolCmp = function boolCmp(fieldVal, operator) {\n switch (operator) {\n case '?':\n return fieldVal ? true : false;\n case '!':\n return fieldVal ? false : true;\n case '^':\n return fieldVal === undefined;\n }\n };\n var existCmp = function existCmp(fieldVal) {\n return fieldVal !== undefined;\n };\n var data$1 = function data(ele, field) {\n return ele.data(field);\n };\n var meta = function meta(ele, field) {\n return ele[field]();\n };\n\n /** A lookup of `match(check, ele)` functions by `Type` int */\n var match = [];\n\n /**\n * Returns whether the query matches for the element\n * @param query The `{ type, value, ... }` query object\n * @param ele The element to compare against\n */\n var matches$1 = function matches(query, ele) {\n return query.checks.every(function (chk) {\n return match[chk.type](chk, ele);\n });\n };\n match[Type.GROUP] = function (check, ele) {\n var group = check.value;\n return group === '*' || group === ele.group();\n };\n match[Type.STATE] = function (check, ele) {\n var stateSelector = check.value;\n return stateSelectorMatches(stateSelector, ele);\n };\n match[Type.ID] = function (check, ele) {\n var id = check.value;\n return ele.id() === id;\n };\n match[Type.CLASS] = function (check, ele) {\n var cls = check.value;\n return ele.hasClass(cls);\n };\n match[Type.META_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(meta(ele, field), operator, value);\n };\n match[Type.DATA_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(data$1(ele, field), operator, value);\n };\n match[Type.DATA_BOOL] = function (check, ele) {\n var field = check.field,\n operator = check.operator;\n return boolCmp(data$1(ele, field), operator);\n };\n match[Type.DATA_EXIST] = function (check, ele) {\n var field = check.field;\n check.operator;\n return existCmp(data$1(ele, field));\n };\n match[Type.UNDIRECTED_EDGE] = function (check, ele) {\n var qA = check.nodes[0];\n var qB = check.nodes[1];\n var src = ele.source();\n var tgt = ele.target();\n return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);\n };\n match[Type.NODE_NEIGHBOR] = function (check, ele) {\n return matches$1(check.node, ele) && ele.neighborhood().some(function (n) {\n return n.isNode() && matches$1(check.neighbor, n);\n });\n };\n match[Type.DIRECTED_EDGE] = function (check, ele) {\n return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());\n };\n match[Type.NODE_SOURCE] = function (check, ele) {\n return matches$1(check.source, ele) && ele.outgoers().some(function (n) {\n return n.isNode() && matches$1(check.target, n);\n });\n };\n match[Type.NODE_TARGET] = function (check, ele) {\n return matches$1(check.target, ele) && ele.incomers().some(function (n) {\n return n.isNode() && matches$1(check.source, n);\n });\n };\n match[Type.CHILD] = function (check, ele) {\n return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());\n };\n match[Type.PARENT] = function (check, ele) {\n return matches$1(check.parent, ele) && ele.children().some(function (c) {\n return matches$1(check.child, c);\n });\n };\n match[Type.DESCENDANT] = function (check, ele) {\n return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) {\n return matches$1(check.ancestor, a);\n });\n };\n match[Type.ANCESTOR] = function (check, ele) {\n return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) {\n return matches$1(check.descendant, d);\n });\n };\n match[Type.COMPOUND_SPLIT] = function (check, ele) {\n return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);\n };\n match[Type.TRUE] = function () {\n return true;\n };\n match[Type.COLLECTION] = function (check, ele) {\n var collection = check.value;\n return collection.has(ele);\n };\n match[Type.FILTER] = function (check, ele) {\n var filter = check.value;\n return filter(ele);\n };\n\n // filter an existing collection\n var filter = function filter(collection) {\n var self = this;\n\n // for 1 id #foo queries, just get the element\n if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) {\n return collection.getElementById(self[0].checks[0].value).collection();\n }\n var selectorFunction = function selectorFunction(element) {\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, element)) {\n return true;\n }\n }\n return false;\n };\n if (self.text() == null) {\n selectorFunction = function selectorFunction() {\n return true;\n };\n }\n return collection.filter(selectorFunction);\n }; // filter\n\n // does selector match a single element?\n var matches = function matches(ele) {\n var self = this;\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, ele)) {\n return true;\n }\n }\n return false;\n }; // matches\n\n var matching = {\n matches: matches,\n filter: filter\n };\n\n var Selector = function Selector(selector) {\n this.inputText = selector;\n this.currentSubject = null;\n this.compoundCount = 0;\n this.edgeCount = 0;\n this.length = 0;\n if (selector == null || string(selector) && selector.match(/^\\s*$/)) ; else if (elementOrCollection(selector)) {\n this.addQuery({\n checks: [{\n type: Type.COLLECTION,\n value: selector.collection()\n }]\n });\n } else if (fn$6(selector)) {\n this.addQuery({\n checks: [{\n type: Type.FILTER,\n value: selector\n }]\n });\n } else if (string(selector)) {\n if (!this.parse(selector)) {\n this.invalid = true;\n }\n } else {\n error('A selector must be created from a string; found ');\n }\n };\n var selfn = Selector.prototype;\n [parse$1, matching].forEach(function (p) {\n return extend(selfn, p);\n });\n selfn.text = function () {\n return this.inputText;\n };\n selfn.size = function () {\n return this.length;\n };\n selfn.eq = function (i) {\n return this[i];\n };\n selfn.sameText = function (otherSel) {\n return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();\n };\n selfn.addQuery = function (q) {\n this[this.length++] = q;\n };\n selfn.selector = selfn.toString;\n\n var elesfn$g = {\n allAre: function allAre(selector) {\n var selObj = new Selector(selector);\n return this.every(function (ele) {\n return selObj.matches(ele);\n });\n },\n is: function is(selector) {\n var selObj = new Selector(selector);\n return this.some(function (ele) {\n return selObj.matches(ele);\n });\n },\n some: function some(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (ret) {\n return true;\n }\n }\n return false;\n },\n every: function every(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (!ret) {\n return false;\n }\n }\n return true;\n },\n same: function same(collection) {\n // cheap collection ref check\n if (this === collection) {\n return true;\n }\n collection = this.cy().collection(collection);\n var thisLength = this.length;\n var collectionLength = collection.length;\n\n // cheap length check\n if (thisLength !== collectionLength) {\n return false;\n }\n\n // cheap element ref check\n if (thisLength === 1) {\n return this[0] === collection[0];\n }\n return this.every(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n anySame: function anySame(collection) {\n collection = this.cy().collection(collection);\n return this.some(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n allAreNeighbors: function allAreNeighbors(collection) {\n collection = this.cy().collection(collection);\n var nhood = this.neighborhood();\n return collection.every(function (ele) {\n return nhood.hasElementWithId(ele.id());\n });\n },\n contains: function contains(collection) {\n collection = this.cy().collection(collection);\n var self = this;\n return collection.every(function (ele) {\n return self.hasElementWithId(ele.id());\n });\n }\n };\n elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;\n elesfn$g.has = elesfn$g.contains;\n elesfn$g.equal = elesfn$g.equals = elesfn$g.same;\n\n var cache = function cache(fn, name) {\n return function traversalCache(arg1, arg2, arg3, arg4) {\n var selectorOrEles = arg1;\n var eles = this;\n var key;\n if (selectorOrEles == null) {\n key = '';\n } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {\n key = selectorOrEles.id();\n }\n if (eles.length === 1 && key) {\n var _p = eles[0]._private;\n var tch = _p.traversalCache = _p.traversalCache || {};\n var ch = tch[name] = tch[name] || [];\n var hash = hashString(key);\n var cacheHit = ch[hash];\n if (cacheHit) {\n return cacheHit;\n } else {\n return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4);\n }\n } else {\n return fn.call(eles, arg1, arg2, arg3, arg4);\n }\n };\n };\n\n var elesfn$f = {\n parent: function parent(selector) {\n var parents = [];\n\n // optimisation for single ele call\n if (this.length === 1) {\n var parent = this[0]._private.parent;\n if (parent) {\n return parent;\n }\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _parent = ele._private.parent;\n if (_parent) {\n parents.push(_parent);\n }\n }\n return this.spawn(parents, true).filter(selector);\n },\n parents: function parents(selector) {\n var parents = [];\n var eles = this.parent();\n while (eles.nonempty()) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n parents.push(ele);\n }\n eles = eles.parent();\n }\n return this.spawn(parents, true).filter(selector);\n },\n commonAncestors: function commonAncestors(selector) {\n var ancestors;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var parents = ele.parents();\n ancestors = ancestors || parents;\n ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set\n }\n\n return ancestors.filter(selector);\n },\n orphans: function orphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isOrphan();\n }).filter(selector);\n },\n nonorphans: function nonorphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isChild();\n }).filter(selector);\n },\n children: cache(function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var eleChildren = ele._private.children;\n for (var j = 0; j < eleChildren.length; j++) {\n children.push(eleChildren[j]);\n }\n }\n return this.spawn(children, true).filter(selector);\n }, 'children'),\n siblings: function siblings(selector) {\n return this.parent().children().not(this).filter(selector);\n },\n isParent: function isParent() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length !== 0;\n }\n },\n isChildless: function isChildless() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length === 0;\n }\n },\n isChild: function isChild() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent != null;\n }\n },\n isOrphan: function isOrphan() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent == null;\n }\n },\n descendants: function descendants(selector) {\n var elements = [];\n function add(eles) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n elements.push(ele);\n if (ele.children().nonempty()) {\n add(ele.children());\n }\n }\n }\n add(this.children());\n return this.spawn(elements, true).filter(selector);\n }\n };\n function forEachCompound(eles, fn, includeSelf, recursiveStep) {\n var q = [];\n var did = new Set$1();\n var cy = eles.cy();\n var hasCompounds = cy.hasCompoundNodes();\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (includeSelf) {\n q.push(ele);\n } else if (hasCompounds) {\n recursiveStep(q, did, ele);\n }\n }\n while (q.length > 0) {\n var _ele = q.shift();\n fn(_ele);\n did.add(_ele.id());\n if (hasCompounds) {\n recursiveStep(q, did, _ele);\n }\n }\n return eles;\n }\n function addChildren(q, did, ele) {\n if (ele.isParent()) {\n var children = ele._private.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (!did.has(child.id())) {\n q.push(child);\n }\n }\n }\n }\n\n // very efficient version of eles.add( eles.descendants() ).forEach()\n // for internal use\n elesfn$f.forEachDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addChildren);\n };\n function addParent(q, did, ele) {\n if (ele.isChild()) {\n var parent = ele._private.parent;\n if (!did.has(parent.id())) {\n q.push(parent);\n }\n }\n }\n elesfn$f.forEachUp = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParent);\n };\n function addParentAndChildren(q, did, ele) {\n addParent(q, did, ele);\n addChildren(q, did, ele);\n }\n elesfn$f.forEachUpAndDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParentAndChildren);\n };\n\n // aliases\n elesfn$f.ancestors = elesfn$f.parents;\n\n var fn$5, elesfn$e;\n fn$5 = elesfn$e = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n rscratch: define.data({\n field: 'rscratch',\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: true\n }),\n removeRscratch: define.removeData({\n field: 'rscratch',\n triggerEvent: false\n }),\n id: function id() {\n var ele = this[0];\n if (ele) {\n return ele._private.data.id;\n }\n }\n };\n\n // aliases\n fn$5.attr = fn$5.data;\n fn$5.removeAttr = fn$5.removeData;\n var data = elesfn$e;\n\n var elesfn$d = {};\n function defineDegreeFunction(callback) {\n return function (includeLoops) {\n var self = this;\n if (includeLoops === undefined) {\n includeLoops = true;\n }\n if (self.length === 0) {\n return;\n }\n if (self.isNode() && !self.removed()) {\n var degree = 0;\n var node = self[0];\n var connectedEdges = node._private.edges;\n for (var i = 0; i < connectedEdges.length; i++) {\n var edge = connectedEdges[i];\n if (!includeLoops && edge.isLoop()) {\n continue;\n }\n degree += callback(node, edge);\n }\n return degree;\n } else {\n return;\n }\n };\n }\n extend(elesfn$d, {\n degree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(edge.target())) {\n return 2;\n } else {\n return 1;\n }\n }),\n indegree: defineDegreeFunction(function (node, edge) {\n if (edge.target().same(node)) {\n return 1;\n } else {\n return 0;\n }\n }),\n outdegree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(node)) {\n return 1;\n } else {\n return 0;\n }\n })\n });\n function defineDegreeBoundsFunction(degreeFn, callback) {\n return function (includeLoops) {\n var ret;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var ele = nodes[i];\n var degree = ele[degreeFn](includeLoops);\n if (degree !== undefined && (ret === undefined || callback(degree, ret))) {\n ret = degree;\n }\n }\n return ret;\n };\n }\n extend(elesfn$d, {\n minDegree: defineDegreeBoundsFunction('degree', function (degree, min) {\n return degree < min;\n }),\n maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) {\n return degree > max;\n }),\n minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) {\n return degree < min;\n }),\n maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) {\n return degree > max;\n }),\n minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) {\n return degree < min;\n }),\n maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) {\n return degree > max;\n })\n });\n extend(elesfn$d, {\n totalDegree: function totalDegree(includeLoops) {\n var total = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n total += nodes[i].degree(includeLoops);\n }\n return total;\n }\n });\n\n var fn$4, elesfn$c;\n var beforePositionSet = function beforePositionSet(eles, newPos, silent) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.locked()) {\n var oldPos = ele._private.position;\n var delta = {\n x: newPos.x != null ? newPos.x - oldPos.x : 0,\n y: newPos.y != null ? newPos.y - oldPos.y : 0\n };\n if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {\n ele.children().shift(delta, silent);\n }\n ele.dirtyBoundingBoxCache();\n }\n }\n };\n var positionDef = {\n field: 'position',\n bindingEvent: 'position',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'position',\n settingTriggersEvent: true,\n triggerFnName: 'emitAndNotify',\n allowGetting: true,\n validKeys: ['x', 'y'],\n beforeGet: function beforeGet(ele) {\n ele.updateCompoundBounds();\n },\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, false);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n },\n canSet: function canSet(ele) {\n return !ele.locked();\n }\n };\n fn$4 = elesfn$c = {\n position: define.data(positionDef),\n // position but no notification to renderer\n silentPosition: define.data(extend({}, positionDef, {\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: false,\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, true);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n }\n })),\n positions: function positions(pos, silent) {\n if (plainObject(pos)) {\n if (silent) {\n this.silentPosition(pos);\n } else {\n this.position(pos);\n }\n } else if (fn$6(pos)) {\n var _fn = pos;\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _pos = void 0;\n if (_pos = _fn(ele, i)) {\n if (silent) {\n ele.silentPosition(_pos);\n } else {\n ele.position(_pos);\n }\n }\n }\n cy.endBatch();\n }\n return this; // chaining\n },\n\n silentPositions: function silentPositions(pos) {\n return this.positions(pos, true);\n },\n shift: function shift(dim, val, silent) {\n var delta;\n if (plainObject(dim)) {\n delta = {\n x: number$1(dim.x) ? dim.x : 0,\n y: number$1(dim.y) ? dim.y : 0\n };\n silent = val;\n } else if (string(dim) && number$1(val)) {\n delta = {\n x: 0,\n y: 0\n };\n delta[dim] = val;\n }\n if (delta != null) {\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n\n // exclude any node that is a descendant of the calling collection\n if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {\n continue;\n }\n var pos = ele.position();\n var newPos = {\n x: pos.x + delta.x,\n y: pos.y + delta.y\n };\n if (silent) {\n ele.silentPosition(newPos);\n } else {\n ele.position(newPos);\n }\n }\n cy.endBatch();\n }\n return this;\n },\n silentShift: function silentShift(dim, val) {\n if (plainObject(dim)) {\n this.shift(dim, true);\n } else if (string(dim) && number$1(val)) {\n this.shift(dim, val, true);\n }\n return this;\n },\n // get/set the rendered (i.e. on screen) positon of the element\n renderedPosition: function renderedPosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var rpos = plainObject(dim) ? dim : undefined;\n var setting = rpos !== undefined || val !== undefined && string(dim);\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele = this[i];\n if (val !== undefined) {\n // set one dimension\n _ele.position(dim, (val - pan[dim]) / zoom);\n } else if (rpos !== undefined) {\n // set whole position\n _ele.position(renderedToModelPosition(rpos, zoom, pan));\n }\n }\n } else {\n // getting\n var pos = ele.position();\n rpos = modelToRenderedPosition(pos, zoom, pan);\n if (dim === undefined) {\n // then return the whole rendered position\n return rpos;\n } else {\n // then return the specified dimension\n return rpos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n },\n\n // get/set the position relative to the parent\n relativePosition: function relativePosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var ppos = plainObject(dim) ? dim : undefined;\n var setting = ppos !== undefined || val !== undefined && string(dim);\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele2 = this[i];\n var parent = hasCompoundNodes ? _ele2.parent() : null;\n var hasParent = parent && parent.length > 0;\n var relativeToParent = hasParent;\n if (hasParent) {\n parent = parent[0];\n }\n var origin = relativeToParent ? parent.position() : {\n x: 0,\n y: 0\n };\n if (val !== undefined) {\n // set one dimension\n _ele2.position(dim, val + origin[dim]);\n } else if (ppos !== undefined) {\n // set whole position\n _ele2.position({\n x: ppos.x + origin.x,\n y: ppos.y + origin.y\n });\n }\n }\n } else {\n // getting\n var pos = ele.position();\n var _parent = hasCompoundNodes ? ele.parent() : null;\n var _hasParent = _parent && _parent.length > 0;\n var _relativeToParent = _hasParent;\n if (_hasParent) {\n _parent = _parent[0];\n }\n var _origin = _relativeToParent ? _parent.position() : {\n x: 0,\n y: 0\n };\n ppos = {\n x: pos.x - _origin.x,\n y: pos.y - _origin.y\n };\n if (dim === undefined) {\n // then return the whole rendered position\n return ppos;\n } else {\n // then return the specified dimension\n return ppos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n }\n };\n\n // aliases\n fn$4.modelPosition = fn$4.point = fn$4.position;\n fn$4.modelPositions = fn$4.points = fn$4.positions;\n fn$4.renderedPoint = fn$4.renderedPosition;\n fn$4.relativePoint = fn$4.relativePosition;\n var position = elesfn$c;\n\n var fn$3, elesfn$b;\n fn$3 = elesfn$b = {};\n elesfn$b.renderedBoundingBox = function (options) {\n var bb = this.boundingBox(options);\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var x1 = bb.x1 * zoom + pan.x;\n var x2 = bb.x2 * zoom + pan.x;\n var y1 = bb.y1 * zoom + pan.y;\n var y2 = bb.y2 * zoom + pan.y;\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2,\n w: x2 - x1,\n h: y2 - y1\n };\n };\n elesfn$b.dirtyCompoundBoundsCache = function () {\n var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n this.forEachUp(function (ele) {\n if (ele.isParent()) {\n var _p = ele._private;\n _p.compoundBoundsClean = false;\n _p.bbCache = null;\n if (!silent) {\n ele.emitAndNotify('bounds');\n }\n }\n });\n return this;\n };\n elesfn$b.updateCompoundBounds = function () {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n\n // not possible to do on non-compound graphs or with the style disabled\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n\n // save cycles when batching -- but bounds will be stale (or not exist yet)\n if (!force && cy.batching()) {\n return this;\n }\n function update(parent) {\n if (!parent.isParent()) {\n return;\n }\n var _p = parent._private;\n var children = parent.children();\n var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include';\n var min = {\n width: {\n val: parent.pstyle('min-width').pfValue,\n left: parent.pstyle('min-width-bias-left'),\n right: parent.pstyle('min-width-bias-right')\n },\n height: {\n val: parent.pstyle('min-height').pfValue,\n top: parent.pstyle('min-height-bias-top'),\n bottom: parent.pstyle('min-height-bias-bottom')\n }\n };\n var bb = children.boundingBox({\n includeLabels: includeLabels,\n includeOverlays: false,\n // updating the compound bounds happens outside of the regular\n // cache cycle (i.e. before fired events)\n useCache: false\n });\n var pos = _p.position;\n\n // if children take up zero area then keep position and fall back on stylesheet w/h\n if (bb.w === 0 || bb.h === 0) {\n bb = {\n w: parent.pstyle('width').pfValue,\n h: parent.pstyle('height').pfValue\n };\n bb.x1 = pos.x - bb.w / 2;\n bb.x2 = pos.x + bb.w / 2;\n bb.y1 = pos.y - bb.h / 2;\n bb.y2 = pos.y + bb.h / 2;\n }\n function computeBiasValues(propDiff, propBias, propBiasComplement) {\n var biasDiff = 0;\n var biasComplementDiff = 0;\n var biasTotal = propBias + propBiasComplement;\n if (propDiff > 0 && biasTotal > 0) {\n biasDiff = propBias / biasTotal * propDiff;\n biasComplementDiff = propBiasComplement / biasTotal * propDiff;\n }\n return {\n biasDiff: biasDiff,\n biasComplementDiff: biasComplementDiff\n };\n }\n function computePaddingValues(width, height, paddingObject, relativeTo) {\n // Assuming percentage is number from 0 to 1\n if (paddingObject.units === '%') {\n switch (relativeTo) {\n case 'width':\n return width > 0 ? paddingObject.pfValue * width : 0;\n case 'height':\n return height > 0 ? paddingObject.pfValue * height : 0;\n case 'average':\n return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0;\n case 'min':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0;\n case 'max':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0;\n default:\n return 0;\n }\n } else if (paddingObject.units === 'px') {\n return paddingObject.pfValue;\n } else {\n return 0;\n }\n }\n var leftVal = min.width.left.value;\n if (min.width.left.units === 'px' && min.width.val > 0) {\n leftVal = leftVal * 100 / min.width.val;\n }\n var rightVal = min.width.right.value;\n if (min.width.right.units === 'px' && min.width.val > 0) {\n rightVal = rightVal * 100 / min.width.val;\n }\n var topVal = min.height.top.value;\n if (min.height.top.units === 'px' && min.height.val > 0) {\n topVal = topVal * 100 / min.height.val;\n }\n var bottomVal = min.height.bottom.value;\n if (min.height.bottom.units === 'px' && min.height.val > 0) {\n bottomVal = bottomVal * 100 / min.height.val;\n }\n var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal);\n var diffLeft = widthBiasDiffs.biasDiff;\n var diffRight = widthBiasDiffs.biasComplementDiff;\n var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal);\n var diffTop = heightBiasDiffs.biasDiff;\n var diffBottom = heightBiasDiffs.biasComplementDiff;\n _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value);\n _p.autoWidth = Math.max(bb.w, min.width.val);\n pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;\n _p.autoHeight = Math.max(bb.h, min.height.val);\n pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.compoundBoundsClean || force) {\n update(ele);\n if (!cy.batching()) {\n _p.compoundBoundsClean = true;\n }\n }\n }\n return this;\n };\n var noninf = function noninf(x) {\n if (x === Infinity || x === -Infinity) {\n return 0;\n }\n return x;\n };\n var updateBounds = function updateBounds(b, x1, y1, x2, y2) {\n // don't update with zero area boxes\n if (x2 - x1 === 0 || y2 - y1 === 0) {\n return;\n }\n\n // don't update with null dim\n if (x1 == null || y1 == null || x2 == null || y2 == null) {\n return;\n }\n b.x1 = x1 < b.x1 ? x1 : b.x1;\n b.x2 = x2 > b.x2 ? x2 : b.x2;\n b.y1 = y1 < b.y1 ? y1 : b.y1;\n b.y2 = y2 > b.y2 ? y2 : b.y2;\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n };\n var updateBoundsFromBox = function updateBoundsFromBox(b, b2) {\n if (b2 == null) {\n return b;\n }\n return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);\n };\n var prefixedProperty = function prefixedProperty(obj, field, prefix) {\n return getPrefixedProperty(obj, field, prefix);\n };\n var updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var halfArW = rstyle.arrowWidth / 2;\n var arrowType = ele.pstyle(prefix + '-arrow-shape').value;\n var x;\n var y;\n if (arrowType !== 'none') {\n if (prefix === 'source') {\n x = rstyle.srcX;\n y = rstyle.srcY;\n } else if (prefix === 'target') {\n x = rstyle.tgtX;\n y = rstyle.tgtY;\n } else {\n x = rstyle.midX;\n y = rstyle.midY;\n }\n\n // always store the individual arrow bounds\n var bbs = _p.arrowBounds = _p.arrowBounds || {};\n var bb = bbs[prefix] = bbs[prefix] || {};\n bb.x1 = x - halfArW;\n bb.y1 = y - halfArW;\n bb.x2 = x + halfArW;\n bb.y2 = y + halfArW;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n expandBoundingBox(bb, 1);\n updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2);\n }\n };\n var updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var label = ele.pstyle(prefixDash + 'label').strValue;\n if (label) {\n var halign = ele.pstyle('text-halign');\n var valign = ele.pstyle('text-valign');\n var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix);\n var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix);\n var labelX = prefixedProperty(rstyle, 'labelX', prefix);\n var labelY = prefixedProperty(rstyle, 'labelY', prefix);\n var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var rotation = ele.pstyle(prefixDash + 'text-rotation');\n var outlineWidth = ele.pstyle('text-outline-width').pfValue;\n var borderWidth = ele.pstyle('text-border-width').pfValue;\n var halfBorderWidth = borderWidth / 2;\n var padding = ele.pstyle('text-background-padding').pfValue;\n var marginOfError = 2; // expand to work around browser dimension inaccuracies\n\n var lh = labelHeight;\n var lw = labelWidth;\n var lw_2 = lw / 2;\n var lh_2 = lh / 2;\n var lx1, lx2, ly1, ly2;\n if (isEdge) {\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n } else {\n switch (halign.value) {\n case 'left':\n lx1 = labelX - lw;\n lx2 = labelX;\n break;\n case 'center':\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n break;\n case 'right':\n lx1 = labelX;\n lx2 = labelX + lw;\n break;\n }\n switch (valign.value) {\n case 'top':\n ly1 = labelY - lh;\n ly2 = labelY;\n break;\n case 'center':\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n break;\n case 'bottom':\n ly1 = labelY;\n ly2 = labelY + lh;\n break;\n }\n }\n\n // shift by margin and expand by outline and border\n lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n\n // always store the unrotated label bounds separately\n var bbPrefix = prefix || 'main';\n var bbs = _p.labelBounds;\n var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};\n bb.x1 = lx1;\n bb.y1 = ly1;\n bb.x2 = lx2;\n bb.y2 = ly2;\n bb.w = lx2 - lx1;\n bb.h = ly2 - ly1;\n var isAutorotate = isEdge && rotation.strValue === 'autorotate';\n var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;\n if (isAutorotate || isPfValue) {\n var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue;\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n\n // rotation point (default value for center-center)\n var xo = (lx1 + lx2) / 2;\n var yo = (ly1 + ly2) / 2;\n if (!isEdge) {\n switch (halign.value) {\n case 'left':\n xo = lx2;\n break;\n case 'right':\n xo = lx1;\n break;\n }\n switch (valign.value) {\n case 'top':\n yo = ly2;\n break;\n case 'bottom':\n yo = ly1;\n break;\n }\n }\n var rotate = function rotate(x, y) {\n x = x - xo;\n y = y - yo;\n return {\n x: x * cos - y * sin + xo,\n y: x * sin + y * cos + yo\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n }\n var bbPrefixRot = bbPrefix + 'Rot';\n var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};\n bbRot.x1 = lx1;\n bbRot.y1 = ly1;\n bbRot.x2 = lx2;\n bbRot.y2 = ly2;\n bbRot.w = lx2 - lx1;\n bbRot.h = ly2 - ly1;\n updateBounds(bounds, lx1, ly1, lx2, ly2);\n updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);\n }\n return bounds;\n };\n\n // get the bounding box of the elements (in raw model position)\n var boundingBoxImpl = function boundingBoxImpl(ele, options) {\n var cy = ele._private.cy;\n var styleEnabled = cy.styleEnabled();\n var headless = cy.headless();\n var bounds = makeBoundingBox();\n var _p = ele._private;\n var isNode = ele.isNode();\n var isEdge = ele.isEdge();\n var ex1, ex2, ey1, ey2; // extrema of body / lines\n var x, y; // node pos\n var rstyle = _p.rstyle;\n var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0];\n\n // must use `display` prop only, as reading `compound.width()` causes recursion\n // (other factors like width values will be considered later in this function anyway)\n var isDisplayed = function isDisplayed(ele) {\n return ele.pstyle('display').value !== 'none';\n };\n var displayed = !styleEnabled || isDisplayed(ele)\n\n // must take into account connected nodes b/c of implicit edge hiding on display:none node\n && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));\n if (displayed) {\n // displayed suffices, since we will find zero area eles anyway\n var overlayOpacity = 0;\n var overlayPadding = 0;\n if (styleEnabled && options.includeOverlays) {\n overlayOpacity = ele.pstyle('overlay-opacity').value;\n if (overlayOpacity !== 0) {\n overlayPadding = ele.pstyle('overlay-padding').value;\n }\n }\n var underlayOpacity = 0;\n var underlayPadding = 0;\n if (styleEnabled && options.includeUnderlays) {\n underlayOpacity = ele.pstyle('underlay-opacity').value;\n if (underlayOpacity !== 0) {\n underlayPadding = ele.pstyle('underlay-padding').value;\n }\n }\n var padding = Math.max(overlayPadding, underlayPadding);\n var w = 0;\n var wHalf = 0;\n if (styleEnabled) {\n w = ele.pstyle('width').pfValue;\n wHalf = w / 2;\n }\n if (isNode && options.includeNodes) {\n var pos = ele.position();\n x = pos.x;\n y = pos.y;\n var _w = ele.outerWidth();\n var halfW = _w / 2;\n var h = ele.outerHeight();\n var halfH = h / 2;\n\n // handle node dimensions\n /////////////////////////\n\n ex1 = x - halfW;\n ex2 = x + halfW;\n ey1 = y - halfH;\n ey2 = y + halfH;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n } else if (isEdge && options.includeEdges) {\n if (styleEnabled && !headless) {\n var curveStyle = ele.pstyle('curve-style').strValue;\n\n // handle edge dimensions (rough box estimate)\n //////////////////////////////////////////////\n\n ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n\n // precise edges\n ////////////////\n\n if (curveStyle === 'haystack') {\n var hpts = rstyle.haystackPts;\n if (hpts && hpts.length === 2) {\n ex1 = hpts[0].x;\n ey1 = hpts[0].y;\n ex2 = hpts[1].x;\n ey2 = hpts[1].y;\n if (ex1 > ex2) {\n var temp = ex1;\n ex1 = ex2;\n ex2 = temp;\n }\n if (ey1 > ey2) {\n var _temp = ey1;\n ey1 = ey2;\n ey2 = _temp;\n }\n updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);\n }\n } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'taxi') {\n var pts;\n switch (curveStyle) {\n case 'bezier':\n case 'unbundled-bezier':\n pts = rstyle.bezierPts;\n break;\n case 'segments':\n case 'taxi':\n pts = rstyle.linePts;\n break;\n }\n if (pts != null) {\n for (var j = 0; j < pts.length; j++) {\n var pt = pts[j];\n ex1 = pt.x - wHalf;\n ex2 = pt.x + wHalf;\n ey1 = pt.y - wHalf;\n ey2 = pt.y + wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n }\n }\n } // bezier-like or segment-like edge\n } else {\n // headless or style disabled\n\n // fallback on source and target positions\n //////////////////////////////////////////\n\n var n1 = ele.source();\n var n1pos = n1.position();\n var n2 = ele.target();\n var n2pos = n2.position();\n ex1 = n1pos.x;\n ex2 = n2pos.x;\n ey1 = n1pos.y;\n ey2 = n2pos.y;\n if (ex1 > ex2) {\n var _temp2 = ex1;\n ex1 = ex2;\n ex2 = _temp2;\n }\n if (ey1 > ey2) {\n var _temp3 = ey1;\n ey1 = ey2;\n ey2 = _temp3;\n }\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n } // headless or style disabled\n } // edges\n\n // handle edge arrow size\n /////////////////////////\n\n if (styleEnabled && options.includeEdges && isEdge) {\n updateBoundsFromArrow(bounds, ele, 'mid-source');\n updateBoundsFromArrow(bounds, ele, 'mid-target');\n updateBoundsFromArrow(bounds, ele, 'source');\n updateBoundsFromArrow(bounds, ele, 'target');\n }\n\n // ghost\n ////////\n\n if (styleEnabled) {\n var ghost = ele.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = ele.pstyle('ghost-offset-x').pfValue;\n var gy = ele.pstyle('ghost-offset-y').pfValue;\n updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy);\n }\n }\n\n // always store the body bounds separately from the labels\n var bbBody = _p.bodyBounds = _p.bodyBounds || {};\n assignBoundingBox(bbBody, bounds);\n expandBoundingBoxSides(bbBody, manualExpansion);\n expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies\n\n // overlay\n //////////\n\n if (styleEnabled) {\n ex1 = bounds.x1;\n ex2 = bounds.x2;\n ey1 = bounds.y1;\n ey2 = bounds.y2;\n updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding);\n }\n\n // always store the body bounds separately from the labels\n var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};\n assignBoundingBox(bbOverlay, bounds);\n expandBoundingBoxSides(bbOverlay, manualExpansion);\n expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies\n\n // handle label dimensions\n //////////////////////////\n\n var bbLabels = _p.labelBounds = _p.labelBounds || {};\n if (bbLabels.all != null) {\n clearBoundingBox(bbLabels.all);\n } else {\n bbLabels.all = makeBoundingBox();\n }\n if (styleEnabled && options.includeLabels) {\n if (options.includeMainLabels) {\n updateBoundsFromLabel(bounds, ele, null);\n }\n if (isEdge) {\n if (options.includeSourceLabels) {\n updateBoundsFromLabel(bounds, ele, 'source');\n }\n if (options.includeTargetLabels) {\n updateBoundsFromLabel(bounds, ele, 'target');\n }\n }\n } // style enabled for labels\n } // if displayed\n\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n if (bounds.w > 0 && bounds.h > 0 && displayed) {\n expandBoundingBoxSides(bounds, manualExpansion);\n\n // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides\n expandBoundingBox(bounds, 1);\n }\n return bounds;\n };\n var getKey = function getKey(opts) {\n var i = 0;\n var tf = function tf(val) {\n return (val ? 1 : 0) << i++;\n };\n var key = 0;\n key += tf(opts.incudeNodes);\n key += tf(opts.includeEdges);\n key += tf(opts.includeLabels);\n key += tf(opts.includeMainLabels);\n key += tf(opts.includeSourceLabels);\n key += tf(opts.includeTargetLabels);\n key += tf(opts.includeOverlays);\n return key;\n };\n var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) {\n if (ele.isEdge()) {\n var p1 = ele.source().position();\n var p2 = ele.target().position();\n var r = function r(x) {\n return Math.round(x);\n };\n return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);\n } else {\n return 0;\n }\n };\n var cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) {\n var _p = ele._private;\n var bb;\n var isEdge = ele.isEdge();\n var key = opts == null ? defBbOptsKey : getKey(opts);\n var usingDefOpts = key === defBbOptsKey;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame;\n var isDirty = function isDirty(ele) {\n return ele._private.bbCache == null || ele._private.styleDirty;\n };\n var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());\n if (needRecalc) {\n if (!isPosKeySame) {\n ele.recalculateRenderedStyle(useCache);\n }\n bb = boundingBoxImpl(ele, defBbOpts);\n _p.bbCache = bb;\n _p.bbCachePosKey = currPosKey;\n } else {\n bb = _p.bbCache;\n }\n\n // not using def opts => need to build up bb from combination of sub bbs\n if (!usingDefOpts) {\n var isNode = ele.isNode();\n bb = makeBoundingBox();\n if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {\n if (opts.includeOverlays) {\n updateBoundsFromBox(bb, _p.overlayBounds);\n } else {\n updateBoundsFromBox(bb, _p.bodyBounds);\n }\n }\n if (opts.includeLabels) {\n if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {\n updateBoundsFromBox(bb, _p.labelBounds.all);\n } else {\n if (opts.includeMainLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.mainRot);\n }\n if (opts.includeSourceLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.sourceRot);\n }\n if (opts.includeTargetLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.targetRot);\n }\n }\n }\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n }\n return bb;\n };\n var defBbOpts = {\n includeNodes: true,\n includeEdges: true,\n includeLabels: true,\n includeMainLabels: true,\n includeSourceLabels: true,\n includeTargetLabels: true,\n includeOverlays: true,\n includeUnderlays: true,\n useCache: true\n };\n var defBbOptsKey = getKey(defBbOpts);\n var filledBbOpts = defaults$g(defBbOpts);\n elesfn$b.boundingBox = function (options) {\n var bounds;\n\n // the main usecase is ele.boundingBox() for a single element with no/def options\n // specified s.t. the cache is used, so check for this case to make it faster by\n // avoiding the overhead of the rest of the function\n if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === undefined || options.useCache === undefined || options.useCache === true)) {\n if (options === undefined) {\n options = defBbOpts;\n } else {\n options = filledBbOpts(options);\n }\n bounds = cachedBoundingBoxImpl(this[0], options);\n } else {\n bounds = makeBoundingBox();\n options = options || defBbOpts;\n var opts = filledBbOpts(options);\n var eles = this;\n var cy = eles.cy();\n var styleEnabled = cy.styleEnabled();\n if (styleEnabled) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;\n ele.recalculateRenderedStyle(useCache);\n }\n }\n this.updateCompoundBounds(!options.useCache);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele = eles[_i];\n updateBoundsFromBox(bounds, cachedBoundingBoxImpl(_ele, opts));\n }\n }\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n return bounds;\n };\n elesfn$b.dirtyBoundingBoxCache = function () {\n for (var i = 0; i < this.length; i++) {\n var _p = this[i]._private;\n _p.bbCache = null;\n _p.bbCachePosKey = null;\n _p.bodyBounds = null;\n _p.overlayBounds = null;\n _p.labelBounds.all = null;\n _p.labelBounds.source = null;\n _p.labelBounds.target = null;\n _p.labelBounds.main = null;\n _p.labelBounds.sourceRot = null;\n _p.labelBounds.targetRot = null;\n _p.labelBounds.mainRot = null;\n _p.arrowBounds.source = null;\n _p.arrowBounds.target = null;\n _p.arrowBounds['mid-source'] = null;\n _p.arrowBounds['mid-target'] = null;\n }\n this.emitAndNotify('bounds');\n return this;\n };\n\n // private helper to get bounding box for custom node positions\n // - good for perf in certain cases but currently requires dirtying the rendered style\n // - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer...\n // - try to use for only things like discrete layouts where the node position would change anyway\n elesfn$b.boundingBoxAt = function (fn) {\n var nodes = this.nodes();\n var cy = this.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n var parents = cy.collection();\n if (hasCompoundNodes) {\n parents = nodes.filter(function (node) {\n return node.isParent();\n });\n nodes = nodes.not(parents);\n }\n if (plainObject(fn)) {\n var obj = fn;\n fn = function fn() {\n return obj;\n };\n }\n var storeOldPos = function storeOldPos(node, i) {\n return node._private.bbAtOldPos = fn(node, i);\n };\n var getOldPos = function getOldPos(node) {\n return node._private.bbAtOldPos;\n };\n cy.startBatch();\n nodes.forEach(storeOldPos).silentPositions(fn);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n var bb = copyBoundingBox(this.boundingBox({\n useCache: false\n }));\n nodes.silentPositions(getOldPos);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n cy.endBatch();\n return bb;\n };\n fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;\n fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;\n var bounds = elesfn$b;\n\n var fn$2, elesfn$a;\n fn$2 = elesfn$a = {};\n var defineDimFns = function defineDimFns(opts) {\n opts.uppercaseName = capitalize(opts.name);\n opts.autoName = 'auto' + opts.uppercaseName;\n opts.labelName = 'label' + opts.uppercaseName;\n opts.outerName = 'outer' + opts.uppercaseName;\n opts.uppercaseOuterName = capitalize(opts.outerName);\n fn$2[opts.name] = function dimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n return _p[opts.autoName] || 0;\n }\n var d = ele.pstyle(opts.name);\n switch (d.strValue) {\n case 'label':\n ele.recalculateRenderedStyle();\n return _p.rstyle[opts.labelName] || 0;\n default:\n return d.pfValue;\n }\n } else {\n return 1;\n }\n }\n };\n fn$2['outer' + opts.uppercaseName] = function outerDimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n var dim = ele[opts.name]();\n var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side\n var padding = 2 * ele.padding();\n return dim + border + padding;\n } else {\n return 1;\n }\n }\n };\n fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() {\n var ele = this[0];\n if (ele) {\n var d = ele[opts.name]();\n return d * this.cy().zoom();\n }\n };\n fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() {\n var ele = this[0];\n if (ele) {\n var od = ele[opts.outerName]();\n return od * this.cy().zoom();\n }\n };\n };\n defineDimFns({\n name: 'width'\n });\n defineDimFns({\n name: 'height'\n });\n elesfn$a.padding = function () {\n var ele = this[0];\n var _p = ele._private;\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n if (_p.autoPadding !== undefined) {\n return _p.autoPadding;\n } else {\n return ele.pstyle('padding').pfValue;\n }\n } else {\n return ele.pstyle('padding').pfValue;\n }\n };\n elesfn$a.paddedHeight = function () {\n var ele = this[0];\n return ele.height() + 2 * ele.padding();\n };\n elesfn$a.paddedWidth = function () {\n var ele = this[0];\n return ele.width() + 2 * ele.padding();\n };\n var widthHeight = elesfn$a;\n\n var ifEdge = function ifEdge(ele, getValue) {\n if (ele.isEdge()) {\n return getValue(ele);\n }\n };\n var ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());\n }\n };\n var ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n var pan = cy.pan();\n var zoom = cy.zoom();\n return getPoints(ele).map(function (p) {\n return modelToRenderedPosition(p, zoom, pan);\n });\n }\n };\n var controlPoints = function controlPoints(ele) {\n return ele.renderer().getControlPoints(ele);\n };\n var segmentPoints = function segmentPoints(ele) {\n return ele.renderer().getSegmentPoints(ele);\n };\n var sourceEndpoint = function sourceEndpoint(ele) {\n return ele.renderer().getSourceEndpoint(ele);\n };\n var targetEndpoint = function targetEndpoint(ele) {\n return ele.renderer().getTargetEndpoint(ele);\n };\n var midpoint = function midpoint(ele) {\n return ele.renderer().getEdgeMidpoint(ele);\n };\n var pts = {\n controlPoints: {\n get: controlPoints,\n mult: true\n },\n segmentPoints: {\n get: segmentPoints,\n mult: true\n },\n sourceEndpoint: {\n get: sourceEndpoint\n },\n targetEndpoint: {\n get: targetEndpoint\n },\n midpoint: {\n get: midpoint\n }\n };\n var renderedName = function renderedName(name) {\n return 'rendered' + name[0].toUpperCase() + name.substr(1);\n };\n var edgePoints = Object.keys(pts).reduce(function (obj, name) {\n var spec = pts[name];\n var rName = renderedName(name);\n obj[name] = function () {\n return ifEdge(this, spec.get);\n };\n if (spec.mult) {\n obj[rName] = function () {\n return ifEdgeRenderedPositions(this, spec.get);\n };\n } else {\n obj[rName] = function () {\n return ifEdgeRenderedPosition(this, spec.get);\n };\n }\n return obj;\n }, {});\n\n var dimensions = extend({}, position, bounds, widthHeight, edgePoints);\n\n /*!\n Event object based on jQuery events, MIT license\n\n https://jquery.org/license/\n https://tldrlegal.com/license/mit-license\n https://github.com/jquery/jquery/blob/master/src/event.js\n */\n\n var Event = function Event(src, props) {\n this.recycle(src, props);\n };\n function returnFalse() {\n return false;\n }\n function returnTrue() {\n return true;\n }\n\n // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n Event.prototype = {\n instanceString: function instanceString() {\n return 'event';\n },\n recycle: function recycle(src, props) {\n this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;\n if (src != null && src.preventDefault) {\n // Browser Event object\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;\n } else if (src != null && src.type) {\n // Plain object containing all event details\n props = src;\n } else {\n // Event string\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props != null) {\n // more efficient to manually copy fields we use\n this.originalEvent = props.originalEvent;\n this.type = props.type != null ? props.type : this.type;\n this.cy = props.cy;\n this.target = props.target;\n this.position = props.position;\n this.renderedPosition = props.renderedPosition;\n this.namespace = props.namespace;\n this.layout = props.layout;\n }\n if (this.cy != null && this.position != null && this.renderedPosition == null) {\n // create a rendered position based on the passed position\n var pos = this.position;\n var zoom = this.cy.zoom();\n var pan = this.cy.pan();\n this.renderedPosition = {\n x: pos.x * zoom + pan.x,\n y: pos.y * zoom + pan.y\n };\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n },\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n this.stopPropagation();\n },\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse\n };\n\n var eventRegex = /^([^.]+)(\\.(?:[^.]+))?$/; // regex for matching event strings (e.g. \"click.namespace\")\n var universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally\n\n var defaults$8 = {\n qualifierCompare: function qualifierCompare(q1, q2) {\n return q1 === q2;\n },\n eventMatches: function eventMatches( /*context, listener, eventObj*/\n ) {\n return true;\n },\n addEventFields: function addEventFields( /*context, evt*/\n ) {},\n callbackContext: function callbackContext(context /*, listener, eventObj*/) {\n return context;\n },\n beforeEmit: function beforeEmit( /* context, listener, eventObj */\n ) {},\n afterEmit: function afterEmit( /* context, listener, eventObj */\n ) {},\n bubble: function bubble( /*context*/\n ) {\n return false;\n },\n parent: function parent( /*context*/\n ) {\n return null;\n },\n context: null\n };\n var defaultsKeys = Object.keys(defaults$8);\n var emptyOpts = {};\n function Emitter() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts;\n var context = arguments.length > 1 ? arguments[1] : undefined;\n // micro-optimisation vs Object.assign() -- reduces Element instantiation time\n for (var i = 0; i < defaultsKeys.length; i++) {\n var key = defaultsKeys[i];\n this[key] = opts[key] || defaults$8[key];\n }\n this.context = context || this.context;\n this.listeners = [];\n this.emitting = 0;\n }\n var p = Emitter.prototype;\n var forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) {\n if (fn$6(qualifier)) {\n callback = qualifier;\n qualifier = null;\n }\n if (confOverrides) {\n if (conf == null) {\n conf = confOverrides;\n } else {\n conf = extend({}, conf, confOverrides);\n }\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var ret = handler(self, evt, type, namespace, qualifier, callback, conf);\n if (ret === false) {\n break;\n } // allow exiting early\n }\n }\n };\n\n var makeEventObj = function makeEventObj(self, obj) {\n self.addEventFields(self.context, obj);\n return new Event(obj.type, obj);\n };\n var forEachEventObj = function forEachEventObj(self, handler, events) {\n if (event(events)) {\n handler(self, events);\n return;\n } else if (plainObject(events)) {\n handler(self, makeEventObj(self, events));\n return;\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var eventObj = makeEventObj(self, {\n type: type,\n namespace: namespace,\n target: self.context\n });\n handler(self, eventObj);\n }\n }\n };\n p.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) {\n forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) {\n if (fn$6(callback)) {\n self.listeners.push({\n event: event,\n // full event string\n callback: callback,\n // callback to run\n type: type,\n // the event type (e.g. 'click')\n namespace: namespace,\n // the event namespace (e.g. \".foo\")\n qualifier: qualifier,\n // a restriction on whether to match this emitter\n conf: conf // additional configuration\n });\n }\n }, events, qualifier, callback, conf, confOverrides);\n return this;\n };\n p.one = function (events, qualifier, callback, conf) {\n return this.on(events, qualifier, callback, conf, {\n one: true\n });\n };\n p.removeListener = p.off = function (events, qualifier, callback, conf) {\n var _this = this;\n if (this.emitting !== 0) {\n this.listeners = copyArray$1(this.listeners);\n }\n var listeners = this.listeners;\n var _loop = function _loop(i) {\n var listener = listeners[i];\n forEachEvent(_this, function (self, event, type, namespace, qualifier, callback /*, conf*/) {\n if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) {\n listeners.splice(i, 1);\n return false;\n }\n }, events, qualifier, callback, conf);\n };\n for (var i = listeners.length - 1; i >= 0; i--) {\n _loop(i);\n }\n return this;\n };\n p.removeAllListeners = function () {\n return this.removeListener('*');\n };\n p.emit = p.trigger = function (events, extraParams, manualCallback) {\n var listeners = this.listeners;\n var numListenersBeforeEmit = listeners.length;\n this.emitting++;\n if (!array(extraParams)) {\n extraParams = [extraParams];\n }\n forEachEventObj(this, function (self, eventObj) {\n if (manualCallback != null) {\n listeners = [{\n event: eventObj.event,\n type: eventObj.type,\n namespace: eventObj.namespace,\n callback: manualCallback\n }];\n numListenersBeforeEmit = listeners.length;\n }\n var _loop2 = function _loop2(i) {\n var listener = listeners[i];\n if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) {\n var args = [eventObj];\n if (extraParams != null) {\n push(args, extraParams);\n }\n self.beforeEmit(self.context, listener, eventObj);\n if (listener.conf && listener.conf.one) {\n self.listeners = self.listeners.filter(function (l) {\n return l !== listener;\n });\n }\n var context = self.callbackContext(self.context, listener, eventObj);\n var ret = listener.callback.apply(context, args);\n self.afterEmit(self.context, listener, eventObj);\n if (ret === false) {\n eventObj.stopPropagation();\n eventObj.preventDefault();\n }\n } // if listener matches\n };\n for (var i = 0; i < numListenersBeforeEmit; i++) {\n _loop2(i);\n } // for listener\n\n if (self.bubble(self.context) && !eventObj.isPropagationStopped()) {\n self.parent(self.context).emit(eventObj, extraParams);\n }\n }, events);\n this.emitting--;\n return this;\n };\n\n var emitterOptions$1 = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(ele, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(ele, evt) {\n evt.cy = ele.cy();\n evt.target = ele;\n },\n callbackContext: function callbackContext(ele, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : ele;\n },\n beforeEmit: function beforeEmit(context, listener /*, eventObj*/) {\n if (listener.conf && listener.conf.once) {\n listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);\n }\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(ele) {\n return ele.isChild() ? ele.parent() : ele.cy();\n }\n };\n var argSelector$1 = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n };\n var elesfn$9 = {\n createEmitter: function createEmitter() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions$1, ele);\n }\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback);\n }\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeListener(events, argSel, callback);\n }\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeAllListeners();\n }\n return this;\n },\n one: function one(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().one(events, argSel, callback);\n }\n return this;\n },\n once: function once(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback, {\n once: true,\n onceCollection: this\n });\n }\n },\n emit: function emit(events, extraParams) {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().emit(events, extraParams);\n }\n return this;\n },\n emitAndNotify: function emitAndNotify(event, extraParams) {\n // for internal use only\n if (this.length === 0) {\n return;\n } // empty collections don't need to notify anything\n\n // notify renderer\n this.cy().notify(event, this);\n this.emit(event, extraParams);\n return this;\n }\n };\n define.eventAliasesOn(elesfn$9);\n\n var elesfn$8 = {\n nodes: function nodes(selector) {\n return this.filter(function (ele) {\n return ele.isNode();\n }).filter(selector);\n },\n edges: function edges(selector) {\n return this.filter(function (ele) {\n return ele.isEdge();\n }).filter(selector);\n },\n // internal helper to get nodes and edges as separate collections with single iteration over elements\n byGroup: function byGroup() {\n var nodes = this.spawn();\n var edges = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele.isNode()) {\n nodes.push(ele);\n } else {\n edges.push(ele);\n }\n }\n return {\n nodes: nodes,\n edges: edges\n };\n },\n filter: function filter(_filter, thisArg) {\n if (_filter === undefined) {\n // check this first b/c it's the most common/performant case\n return this;\n } else if (string(_filter) || elementOrCollection(_filter)) {\n return new Selector(_filter).filter(this);\n } else if (fn$6(_filter)) {\n var filterEles = this.spawn();\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles);\n if (include) {\n filterEles.push(ele);\n }\n }\n return filterEles;\n }\n return this.spawn(); // if not handled by above, give 'em an empty collection\n },\n\n not: function not(toRemove) {\n if (!toRemove) {\n return this;\n } else {\n if (string(toRemove)) {\n toRemove = this.filter(toRemove);\n }\n var elements = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var element = this[i];\n var remove = toRemove.has(element);\n if (!remove) {\n elements.push(element);\n }\n }\n return elements;\n }\n },\n absoluteComplement: function absoluteComplement() {\n var cy = this.cy();\n return cy.mutableElements().not(this);\n },\n intersect: function intersect(other) {\n // if a selector is specified, then filter by it instead\n if (string(other)) {\n var selector = other;\n return this.filter(selector);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var col1Smaller = this.length < other.length;\n var colS = col1Smaller ? col1 : col2;\n var colL = col1Smaller ? col2 : col1;\n for (var i = 0; i < colS.length; i++) {\n var ele = colS[i];\n if (colL.has(ele)) {\n elements.push(ele);\n }\n }\n return elements;\n },\n xor: function xor(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (!inOther) {\n elements.push(ele);\n }\n }\n };\n add(col1, col2);\n add(col2, col1);\n return elements;\n },\n diff: function diff(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var left = this.spawn();\n var right = this.spawn();\n var both = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other, retEles) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (inOther) {\n both.merge(ele);\n } else {\n retEles.push(ele);\n }\n }\n };\n add(col1, col2, left);\n add(col2, col1, right);\n return {\n left: left,\n right: right,\n both: both\n };\n },\n add: function add(toAdd) {\n var cy = this._private.cy;\n if (!toAdd) {\n return this;\n }\n if (string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var elements = this.spawnSelf();\n for (var i = 0; i < toAdd.length; i++) {\n var ele = toAdd[i];\n var add = !this.has(ele);\n if (add) {\n elements.push(ele);\n }\n }\n return elements;\n },\n // in place merge on calling collection\n merge: function merge(toAdd) {\n var _p = this._private;\n var cy = _p.cy;\n if (!toAdd) {\n return this;\n }\n if (toAdd && string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var map = _p.map;\n for (var i = 0; i < toAdd.length; i++) {\n var toAddEle = toAdd[i];\n var id = toAddEle._private.data.id;\n var add = !map.has(id);\n if (add) {\n var index = this.length++;\n this[index] = toAddEle;\n map.set(id, {\n ele: toAddEle,\n index: index\n });\n }\n }\n return this; // chaining\n },\n\n unmergeAt: function unmergeAt(i) {\n var ele = this[i];\n var id = ele.id();\n var _p = this._private;\n var map = _p.map;\n\n // remove ele\n this[i] = undefined;\n map[\"delete\"](id);\n var unmergedLastEle = i === this.length - 1;\n\n // replace empty spot with last ele in collection\n if (this.length > 1 && !unmergedLastEle) {\n var lastEleI = this.length - 1;\n var lastEle = this[lastEleI];\n var lastEleId = lastEle._private.data.id;\n this[lastEleI] = undefined;\n this[i] = lastEle;\n map.set(lastEleId, {\n ele: lastEle,\n index: i\n });\n }\n\n // the collection is now 1 ele smaller\n this.length--;\n return this;\n },\n // remove single ele in place in calling collection\n unmergeOne: function unmergeOne(ele) {\n ele = ele[0];\n var _p = this._private;\n var id = ele._private.data.id;\n var map = _p.map;\n var entry = map.get(id);\n if (!entry) {\n return this; // no need to remove\n }\n\n var i = entry.index;\n this.unmergeAt(i);\n return this;\n },\n // remove eles in place on calling collection\n unmerge: function unmerge(toRemove) {\n var cy = this._private.cy;\n if (!toRemove) {\n return this;\n }\n if (toRemove && string(toRemove)) {\n var selector = toRemove;\n toRemove = cy.mutableElements().filter(selector);\n }\n for (var i = 0; i < toRemove.length; i++) {\n this.unmergeOne(toRemove[i]);\n }\n return this; // chaining\n },\n\n unmergeBy: function unmergeBy(toRmFn) {\n for (var i = this.length - 1; i >= 0; i--) {\n var ele = this[i];\n if (toRmFn(ele)) {\n this.unmergeAt(i);\n }\n }\n return this;\n },\n map: function map(mapFn, thisArg) {\n var arr = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles);\n arr.push(ret);\n }\n return arr;\n },\n reduce: function reduce(fn, initialValue) {\n var val = initialValue;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n val = fn(val, eles[i], i, eles);\n }\n return val;\n },\n max: function max(valFn, thisArg) {\n var max = -Infinity;\n var maxEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val > max) {\n max = val;\n maxEle = ele;\n }\n }\n return {\n value: max,\n ele: maxEle\n };\n },\n min: function min(valFn, thisArg) {\n var min = Infinity;\n var minEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val < min) {\n min = val;\n minEle = ele;\n }\n }\n return {\n value: min,\n ele: minEle\n };\n }\n };\n\n // aliases\n var fn$1 = elesfn$8;\n fn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add;\n fn$1['\\\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;\n fn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect;\n fn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;\n fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;\n fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;\n\n var elesfn$7 = {\n isNode: function isNode() {\n return this.group() === 'nodes';\n },\n isEdge: function isEdge() {\n return this.group() === 'edges';\n },\n isLoop: function isLoop() {\n return this.isEdge() && this.source()[0] === this.target()[0];\n },\n isSimple: function isSimple() {\n return this.isEdge() && this.source()[0] !== this.target()[0];\n },\n group: function group() {\n var ele = this[0];\n if (ele) {\n return ele._private.group;\n }\n }\n };\n\n /**\n * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges),\n * and z-index (low to high). These styles affect how this applies:\n *\n * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the\n * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from\n * root to leaves of the compound graph. The last drawn is `top`.\n * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes.\n * `manual` ignores this convention and draws based on the `z-index` value setting.\n * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher\n * `z-index` will be drawn on top of an element with a lower `z-index`.\n */\n var zIndexSort = function zIndexSort(a, b) {\n var cy = a.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n function getDepth(ele) {\n var style = ele.pstyle('z-compound-depth');\n if (style.value === 'auto') {\n return hasCompoundNodes ? ele.zDepth() : 0;\n } else if (style.value === 'bottom') {\n return -1;\n } else if (style.value === 'top') {\n return MAX_INT$1;\n }\n // 'orphan'\n return 0;\n }\n var depthDiff = getDepth(a) - getDepth(b);\n if (depthDiff !== 0) {\n return depthDiff;\n }\n function getEleDepth(ele) {\n var style = ele.pstyle('z-index-compare');\n if (style.value === 'auto') {\n return ele.isNode() ? 1 : 0;\n }\n // 'manual'\n return 0;\n }\n var eleDiff = getEleDepth(a) - getEleDepth(b);\n if (eleDiff !== 0) {\n return eleDiff;\n }\n var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value;\n if (zDiff !== 0) {\n return zDiff;\n }\n // compare indices in the core (order added to graph w/ last on top)\n return a.poolIndex() - b.poolIndex();\n };\n\n var elesfn$6 = {\n forEach: function forEach(fn, thisArg) {\n if (fn$6(fn)) {\n var N = this.length;\n for (var i = 0; i < N; i++) {\n var ele = this[i];\n var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this);\n if (ret === false) {\n break;\n } // exit each early on return false\n }\n }\n\n return this;\n },\n toArray: function toArray() {\n var array = [];\n for (var i = 0; i < this.length; i++) {\n array.push(this[i]);\n }\n return array;\n },\n slice: function slice(start, end) {\n var array = [];\n var thisSize = this.length;\n if (end == null) {\n end = thisSize;\n }\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start = thisSize + start;\n }\n if (end < 0) {\n end = thisSize + end;\n }\n for (var i = start; i >= 0 && i < end && i < thisSize; i++) {\n array.push(this[i]);\n }\n return this.spawn(array);\n },\n size: function size() {\n return this.length;\n },\n eq: function eq(i) {\n return this[i] || this.spawn();\n },\n first: function first() {\n return this[0] || this.spawn();\n },\n last: function last() {\n return this[this.length - 1] || this.spawn();\n },\n empty: function empty() {\n return this.length === 0;\n },\n nonempty: function nonempty() {\n return !this.empty();\n },\n sort: function sort(sortFn) {\n if (!fn$6(sortFn)) {\n return this;\n }\n var sorted = this.toArray().sort(sortFn);\n return this.spawn(sorted);\n },\n sortByZIndex: function sortByZIndex() {\n return this.sort(zIndexSort);\n },\n zDepth: function zDepth() {\n var ele = this[0];\n if (!ele) {\n return undefined;\n }\n\n // let cy = ele.cy();\n var _p = ele._private;\n var group = _p.group;\n if (group === 'nodes') {\n var depth = _p.data.parent ? ele.parents().size() : 0;\n if (!ele.isParent()) {\n return MAX_INT$1 - 1; // childless nodes always on top\n }\n\n return depth;\n } else {\n var src = _p.source;\n var tgt = _p.target;\n var srcDepth = src.zDepth();\n var tgtDepth = tgt.zDepth();\n return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent\n }\n }\n };\n\n elesfn$6.each = elesfn$6.forEach;\n var defineSymbolIterator = function defineSymbolIterator() {\n var typeofUndef = \"undefined\" ;\n var isIteratorSupported = (typeof Symbol === \"undefined\" ? \"undefined\" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; // eslint-disable-line no-undef\n\n if (isIteratorSupported) {\n elesfn$6[Symbol.iterator] = function () {\n var _this = this;\n // eslint-disable-line no-undef\n var entry = {\n value: undefined,\n done: false\n };\n var i = 0;\n var length = this.length;\n return _defineProperty$1({\n next: function next() {\n if (i < length) {\n entry.value = _this[i++];\n } else {\n entry.value = undefined;\n entry.done = true;\n }\n return entry;\n }\n }, Symbol.iterator, function () {\n // eslint-disable-line no-undef\n return this;\n });\n };\n }\n };\n defineSymbolIterator();\n\n var getLayoutDimensionOptions = defaults$g({\n nodeDimensionsIncludeLabels: false\n });\n var elesfn$5 = {\n // Calculates and returns node dimensions { x, y } based on options given\n layoutDimensions: function layoutDimensions(options) {\n options = getLayoutDimensionOptions(options);\n var dims;\n if (!this.takesUpSpace()) {\n dims = {\n w: 0,\n h: 0\n };\n } else if (options.nodeDimensionsIncludeLabels) {\n var bbDim = this.boundingBox();\n dims = {\n w: bbDim.w,\n h: bbDim.h\n };\n } else {\n dims = {\n w: this.outerWidth(),\n h: this.outerHeight()\n };\n }\n\n // sanitise the dimensions for external layouts (avoid division by zero)\n if (dims.w === 0 || dims.h === 0) {\n dims.w = dims.h = 1;\n }\n return dims;\n },\n // using standard layout options, apply position function (w/ or w/o animation)\n layoutPositions: function layoutPositions(layout, options, fn) {\n var nodes = this.nodes().filter(function (n) {\n return !n.isParent();\n });\n var cy = this.cy();\n var layoutEles = options.eles; // nodes & edges\n var getMemoizeKey = function getMemoizeKey(node) {\n return node.id();\n };\n var fnMem = memoize$1(fn, getMemoizeKey); // memoized version of position function\n\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n layout.animations = [];\n var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) {\n var center = {\n x: nodesBb.x1 + nodesBb.w / 2,\n y: nodesBb.y1 + nodesBb.h / 2\n };\n var spacingVector = {\n // scale from center of bounding box (not necessarily 0,0)\n x: (pos.x - center.x) * spacing,\n y: (pos.y - center.y) * spacing\n };\n return {\n x: center.x + spacingVector.x,\n y: center.y + spacingVector.y\n };\n };\n var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1;\n var spacingBb = function spacingBb() {\n if (!useSpacingFactor) {\n return null;\n }\n var bb = makeBoundingBox();\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = fnMem(node, i);\n expandBoundingBoxByPoint(bb, pos.x, pos.y);\n }\n return bb;\n };\n var bb = spacingBb();\n var getFinalPos = memoize$1(function (node, i) {\n var newPos = fnMem(node, i);\n if (useSpacingFactor) {\n var spacing = Math.abs(options.spacingFactor);\n newPos = calculateSpacing(spacing, bb, newPos);\n }\n if (options.transform != null) {\n newPos = options.transform(node, newPos);\n }\n return newPos;\n }, getMemoizeKey);\n if (options.animate) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var newPos = getFinalPos(node, i);\n var animateNode = options.animateFilter == null || options.animateFilter(node, i);\n if (animateNode) {\n var ani = node.animation({\n position: newPos,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(ani);\n } else {\n node.position(newPos);\n }\n }\n if (options.fit) {\n var fitAni = cy.animation({\n fit: {\n boundingBox: layoutEles.boundingBoxAt(getFinalPos),\n padding: options.padding\n },\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(fitAni);\n } else if (options.zoom !== undefined && options.pan !== undefined) {\n var zoomPanAni = cy.animation({\n zoom: options.zoom,\n pan: options.pan,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(zoomPanAni);\n }\n layout.animations.forEach(function (ani) {\n return ani.play();\n });\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n Promise$1.all(layout.animations.map(function (ani) {\n return ani.promise();\n })).then(function () {\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n });\n } else {\n nodes.positions(getFinalPos);\n if (options.fit) {\n cy.fit(options.eles, options.padding);\n }\n if (options.zoom != null) {\n cy.zoom(options.zoom);\n }\n if (options.pan) {\n cy.pan(options.pan);\n }\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n }\n return this; // chaining\n },\n\n layout: function layout(options) {\n var cy = this.cy();\n return cy.makeLayout(extend({}, options, {\n eles: this\n }));\n }\n };\n\n // aliases:\n elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;\n\n function styleCache(key, fn, ele) {\n var _p = ele._private;\n var cache = _p.styleCache = _p.styleCache || [];\n var val;\n if ((val = cache[key]) != null) {\n return val;\n } else {\n val = cache[key] = fn(ele);\n return val;\n }\n }\n function cacheStyleFunction(key, fn) {\n key = hashString(key);\n return function cachedStyleFunction(ele) {\n return styleCache(key, fn, ele);\n };\n }\n function cachePrototypeStyleFunction(key, fn) {\n key = hashString(key);\n var selfFn = function selfFn(ele) {\n return fn.call(ele);\n };\n return function cachedPrototypeStyleFunction() {\n var ele = this[0];\n if (ele) {\n return styleCache(key, selfFn, ele);\n }\n };\n }\n var elesfn$4 = {\n recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {\n var cy = this.cy();\n var renderer = cy.renderer();\n var styleEnabled = cy.styleEnabled();\n if (renderer && styleEnabled) {\n renderer.recalculateRenderedStyle(this, useCache);\n }\n return this;\n },\n dirtyStyleCache: function dirtyStyleCache() {\n var cy = this.cy();\n var dirty = function dirty(ele) {\n return ele._private.styleCache = null;\n };\n if (cy.hasCompoundNodes()) {\n var eles;\n eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n eles.merge(eles.connectedEdges());\n eles.forEach(dirty);\n } else {\n this.forEach(function (ele) {\n dirty(ele);\n ele.connectedEdges().forEach(dirty);\n });\n }\n return this;\n },\n // fully updates (recalculates) the style for the elements\n updateStyle: function updateStyle(notifyRenderer) {\n var cy = this._private.cy;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (cy.batching()) {\n var bEles = cy._private.batchStyleEles;\n bEles.merge(this);\n return this; // chaining and exit early when batching\n }\n\n var hasCompounds = cy.hasCompoundNodes();\n var updatedEles = this;\n notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false;\n if (hasCompounds) {\n // then add everything up and down for compound selector checks\n updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n }\n\n // let changedEles = style.apply( updatedEles );\n var changedEles = updatedEles;\n if (notifyRenderer) {\n changedEles.emitAndNotify('style'); // let renderer know we changed style\n } else {\n changedEles.emit('style'); // just fire the event\n }\n\n updatedEles.forEach(function (ele) {\n return ele._private.styleDirty = true;\n });\n return this; // chaining\n },\n\n // private: clears dirty flag and recalculates style\n cleanStyle: function cleanStyle() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele._private.styleDirty) {\n // n.b. this flag should be set before apply() to avoid potential infinite recursion\n ele._private.styleDirty = false;\n cy.style().apply(ele);\n }\n }\n },\n // get the internal parsed style object for the specified property\n parsedStyle: function parsedStyle(property) {\n var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var ele = this[0];\n var cy = ele.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n if (ele) {\n this.cleanStyle();\n var overriddenStyle = ele._private.style[property];\n if (overriddenStyle != null) {\n return overriddenStyle;\n } else if (includeNonDefault) {\n return cy.style().getDefaultProperty(property);\n } else {\n return null;\n }\n }\n },\n numericStyle: function numericStyle(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n var pstyle = ele.pstyle(property);\n return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value;\n }\n },\n numericStyleUnits: function numericStyleUnits(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n return ele.pstyle(property).units;\n }\n },\n // get the specified css property as a rendered value (i.e. on-screen value)\n // or get the whole rendered style if no property specified (NB doesn't allow setting)\n renderedStyle: function renderedStyle(property) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var ele = this[0];\n if (ele) {\n return cy.style().getRenderedStyle(ele, property);\n }\n },\n // read the calculated css style of the element or override the style (via a bypass)\n style: function style(name, value) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n if (plainObject(name)) {\n // then extend the bypass\n var props = name;\n style.applyBypass(this, props, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n } else if (string(name)) {\n if (value === undefined) {\n // then get the property from the style\n var ele = this[0];\n if (ele) {\n return style.getStylePropertyValue(ele, name);\n } else {\n // empty collection => can't get any value\n return;\n }\n } else {\n // then set the bypass with the property value\n style.applyBypass(this, name, value, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n }\n } else if (name === undefined) {\n var _ele = this[0];\n if (_ele) {\n return style.getRawStyle(_ele);\n } else {\n // empty collection => can't get any value\n return;\n }\n }\n return this; // chaining\n },\n\n removeStyle: function removeStyle(names) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n var eles = this;\n if (names === undefined) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n style.removeAllBypasses(ele, updateTransitions);\n }\n } else {\n names = names.split(/\\s+/);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele2 = eles[_i];\n style.removeBypasses(_ele2, names, updateTransitions);\n }\n }\n this.emitAndNotify('style'); // let the renderer know we've updated style\n\n return this; // chaining\n },\n\n show: function show() {\n this.css('display', 'element');\n return this; // chaining\n },\n\n hide: function hide() {\n this.css('display', 'none');\n return this; // chaining\n },\n\n effectiveOpacity: function effectiveOpacity() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return 1;\n }\n var hasCompoundNodes = cy.hasCompoundNodes();\n var ele = this[0];\n if (ele) {\n var _p = ele._private;\n var parentOpacity = ele.pstyle('opacity').value;\n if (!hasCompoundNodes) {\n return parentOpacity;\n }\n var parents = !_p.data.parent ? null : ele.parents();\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n var opacity = parent.pstyle('opacity').value;\n parentOpacity = opacity * parentOpacity;\n }\n }\n return parentOpacity;\n }\n },\n transparent: function transparent() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n var hasCompoundNodes = ele.cy().hasCompoundNodes();\n if (ele) {\n if (!hasCompoundNodes) {\n return ele.pstyle('opacity').value === 0;\n } else {\n return ele.effectiveOpacity() === 0;\n }\n }\n },\n backgrounding: function backgrounding() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n return ele._private.backgrounding ? true : false;\n }\n };\n function checkCompound(ele, parentOk) {\n var _p = ele._private;\n var parents = _p.data.parent ? ele.parents() : null;\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n if (!parentOk(parent)) {\n return false;\n }\n }\n }\n return true;\n }\n function defineDerivedStateFunction(specs) {\n var ok = specs.ok;\n var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;\n var parentOk = specs.parentOk || specs.ok;\n return function () {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return true;\n }\n var ele = this[0];\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele) {\n var _p = ele._private;\n if (!ok(ele)) {\n return false;\n }\n if (ele.isNode()) {\n return !hasCompoundNodes || checkCompound(ele, parentOk);\n } else {\n var src = _p.source;\n var tgt = _p.target;\n return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));\n }\n }\n };\n }\n var eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) {\n return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);\n });\n elesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({\n ok: eleTakesUpSpace\n }));\n var eleInteractive = cacheStyleFunction('eleInteractive', function (ele) {\n return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele);\n });\n var parentInteractive = cacheStyleFunction('parentInteractive', function (parent) {\n return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent);\n });\n elesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({\n ok: eleInteractive,\n parentOk: parentInteractive,\n edgeOkViaNode: eleTakesUpSpace\n }));\n elesfn$4.noninteractive = function () {\n var ele = this[0];\n if (ele) {\n return !ele.interactive();\n }\n };\n var eleVisible = cacheStyleFunction('eleVisible', function (ele) {\n return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele);\n });\n var edgeVisibleViaNode = eleTakesUpSpace;\n elesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({\n ok: eleVisible,\n edgeOkViaNode: edgeVisibleViaNode\n }));\n elesfn$4.hidden = function () {\n var ele = this[0];\n if (ele) {\n return !ele.visible();\n }\n };\n elesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () {\n if (!this.cy().styleEnabled()) {\n return false;\n }\n return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace();\n });\n elesfn$4.bypass = elesfn$4.css = elesfn$4.style;\n elesfn$4.renderedCss = elesfn$4.renderedStyle;\n elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;\n elesfn$4.pstyle = elesfn$4.parsedStyle;\n\n var elesfn$3 = {};\n function defineSwitchFunction(params) {\n return function () {\n var args = arguments;\n var changedEles = [];\n\n // e.g. cy.nodes().select( data, handler )\n if (args.length === 2) {\n var data = args[0];\n var handler = args[1];\n this.on(params.event, data, handler);\n }\n\n // e.g. cy.nodes().select( handler )\n else if (args.length === 1 && fn$6(args[0])) {\n var _handler = args[0];\n this.on(params.event, _handler);\n }\n\n // e.g. cy.nodes().select()\n // e.g. (private) cy.nodes().select(['tapselect'])\n else if (args.length === 0 || args.length === 1 && array(args[0])) {\n var addlEvents = args.length === 1 ? args[0] : null;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var able = !params.ableField || ele._private[params.ableField];\n var changed = ele._private[params.field] != params.value;\n if (params.overrideAble) {\n var overrideAble = params.overrideAble(ele);\n if (overrideAble !== undefined) {\n able = overrideAble;\n if (!overrideAble) {\n return this;\n } // to save cycles assume not able for all on override\n }\n }\n\n if (able) {\n ele._private[params.field] = params.value;\n if (changed) {\n changedEles.push(ele);\n }\n }\n }\n var changedColl = this.spawn(changedEles);\n changedColl.updateStyle(); // change of state => possible change of style\n changedColl.emit(params.event);\n if (addlEvents) {\n changedColl.emit(addlEvents);\n }\n }\n return this;\n };\n }\n function defineSwitchSet(params) {\n elesfn$3[params.field] = function () {\n var ele = this[0];\n if (ele) {\n if (params.overrideField) {\n var val = params.overrideField(ele);\n if (val !== undefined) {\n return val;\n }\n }\n return ele._private[params.field];\n }\n };\n elesfn$3[params.on] = defineSwitchFunction({\n event: params.on,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: true\n });\n elesfn$3[params.off] = defineSwitchFunction({\n event: params.off,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: false\n });\n }\n defineSwitchSet({\n field: 'locked',\n overrideField: function overrideField(ele) {\n return ele.cy().autolock() ? true : undefined;\n },\n on: 'lock',\n off: 'unlock'\n });\n defineSwitchSet({\n field: 'grabbable',\n overrideField: function overrideField(ele) {\n return ele.cy().autoungrabify() || ele.pannable() ? false : undefined;\n },\n on: 'grabify',\n off: 'ungrabify'\n });\n defineSwitchSet({\n field: 'selected',\n ableField: 'selectable',\n overrideAble: function overrideAble(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'select',\n off: 'unselect'\n });\n defineSwitchSet({\n field: 'selectable',\n overrideField: function overrideField(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'selectify',\n off: 'unselectify'\n });\n elesfn$3.deselect = elesfn$3.unselect;\n elesfn$3.grabbed = function () {\n var ele = this[0];\n if (ele) {\n return ele._private.grabbed;\n }\n };\n defineSwitchSet({\n field: 'active',\n on: 'activate',\n off: 'unactivate'\n });\n defineSwitchSet({\n field: 'pannable',\n on: 'panify',\n off: 'unpanify'\n });\n elesfn$3.inactive = function () {\n var ele = this[0];\n if (ele) {\n return !ele._private.active;\n }\n };\n\n var elesfn$2 = {};\n\n // DAG functions\n ////////////////\n\n var defineDagExtremity = function defineDagExtremity(params) {\n return function dagExtremityImpl(selector) {\n var eles = this;\n var ret = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var disqualified = false;\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {\n disqualified = true;\n break;\n }\n }\n if (!disqualified) {\n ret.push(ele);\n }\n }\n return this.spawn(ret, true).filter(selector);\n };\n };\n var defineDagOneHop = function defineDagOneHop(params) {\n return function (selector) {\n var eles = this;\n var oEles = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.outgoing && src === ele) {\n oEles.push(edge);\n oEles.push(tgt);\n } else if (params.incoming && tgt === ele) {\n oEles.push(edge);\n oEles.push(src);\n }\n }\n }\n return this.spawn(oEles, true).filter(selector);\n };\n };\n var defineDagAllHops = function defineDagAllHops(params) {\n return function (selector) {\n var eles = this;\n var sEles = [];\n var sElesIds = {};\n for (;;) {\n var next = params.outgoing ? eles.outgoers() : eles.incomers();\n if (next.length === 0) {\n break;\n } // done if none left\n\n var newNext = false;\n for (var i = 0; i < next.length; i++) {\n var n = next[i];\n var nid = n.id();\n if (!sElesIds[nid]) {\n sElesIds[nid] = true;\n sEles.push(n);\n newNext = true;\n }\n }\n if (!newNext) {\n break;\n } // done if touched all outgoers already\n\n eles = next;\n }\n return this.spawn(sEles, true).filter(selector);\n };\n };\n elesfn$2.clearTraversalCache = function () {\n for (var i = 0; i < this.length; i++) {\n this[i]._private.traversalCache = null;\n }\n };\n extend(elesfn$2, {\n // get the root nodes in the DAG\n roots: defineDagExtremity({\n noIncomingEdges: true\n }),\n // get the leaf nodes in the DAG\n leaves: defineDagExtremity({\n noOutgoingEdges: true\n }),\n // normally called children in graph theory\n // these nodes =edges=> outgoing nodes\n outgoers: cache(defineDagOneHop({\n outgoing: true\n }), 'outgoers'),\n // aka DAG descendants\n successors: defineDagAllHops({\n outgoing: true\n }),\n // normally called parents in graph theory\n // these nodes <=edges= incoming nodes\n incomers: cache(defineDagOneHop({\n incoming: true\n }), 'incomers'),\n // aka DAG ancestors\n predecessors: defineDagAllHops({\n incoming: true\n })\n });\n\n // Neighbourhood functions\n //////////////////////////\n\n extend(elesfn$2, {\n neighborhood: cache(function (selector) {\n var elements = [];\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n // for all nodes\n var node = nodes[i];\n var connectedEdges = node.connectedEdges();\n\n // for each connected edge, add the edge and the other node\n for (var j = 0; j < connectedEdges.length; j++) {\n var edge = connectedEdges[j];\n var src = edge.source();\n var tgt = edge.target();\n var otherNode = node === src ? tgt : src;\n\n // need check in case of loop\n if (otherNode.length > 0) {\n elements.push(otherNode[0]); // add node 1 hop away\n }\n\n // add connected edge\n elements.push(edge[0]);\n }\n }\n return this.spawn(elements, true).filter(selector);\n }, 'neighborhood'),\n closedNeighborhood: function closedNeighborhood(selector) {\n return this.neighborhood().add(this).filter(selector);\n },\n openNeighborhood: function openNeighborhood(selector) {\n return this.neighborhood(selector);\n }\n });\n\n // aliases\n elesfn$2.neighbourhood = elesfn$2.neighborhood;\n elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;\n elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;\n\n // Edge functions\n /////////////////\n\n extend(elesfn$2, {\n source: cache(function sourceImpl(selector) {\n var ele = this[0];\n var src;\n if (ele) {\n src = ele._private.source || ele.cy().collection();\n }\n return src && selector ? src.filter(selector) : src;\n }, 'source'),\n target: cache(function targetImpl(selector) {\n var ele = this[0];\n var tgt;\n if (ele) {\n tgt = ele._private.target || ele.cy().collection();\n }\n return tgt && selector ? tgt.filter(selector) : tgt;\n }, 'target'),\n sources: defineSourceFunction({\n attr: 'source'\n }),\n targets: defineSourceFunction({\n attr: 'target'\n })\n });\n function defineSourceFunction(params) {\n return function sourceImpl(selector) {\n var sources = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var src = ele._private[params.attr];\n if (src) {\n sources.push(src);\n }\n }\n return this.spawn(sources, true).filter(selector);\n };\n }\n extend(elesfn$2, {\n edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'),\n edgesTo: cache(defineEdgesWithFunction({\n thisIsSrc: true\n }), 'edgesTo')\n });\n function defineEdgesWithFunction(params) {\n return function edgesWithImpl(otherNodes) {\n var elements = [];\n var cy = this._private.cy;\n var p = params || {};\n\n // get elements if a selector is specified\n if (string(otherNodes)) {\n otherNodes = cy.$(otherNodes);\n }\n for (var h = 0; h < otherNodes.length; h++) {\n var edges = otherNodes[h]._private.edges;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var edgeData = edge._private.data;\n var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);\n var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);\n var edgeConnectsThisAndOther = thisToOther || otherToThis;\n if (!edgeConnectsThisAndOther) {\n continue;\n }\n if (p.thisIsSrc || p.thisIsTgt) {\n if (p.thisIsSrc && !thisToOther) {\n continue;\n }\n if (p.thisIsTgt && !otherToThis) {\n continue;\n }\n }\n elements.push(edge);\n }\n }\n return this.spawn(elements, true);\n };\n }\n extend(elesfn$2, {\n connectedEdges: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var node = eles[i];\n if (!node.isNode()) {\n continue;\n }\n var edges = node._private.edges;\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n retEles.push(edge);\n }\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedEdges'),\n connectedNodes: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var edge = eles[i];\n if (!edge.isEdge()) {\n continue;\n }\n retEles.push(edge.source()[0]);\n retEles.push(edge.target()[0]);\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedNodes'),\n parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'),\n codirectedEdges: cache(defineParallelEdgesFunction({\n codirected: true\n }), 'codirectedEdges')\n });\n function defineParallelEdgesFunction(params) {\n var defaults = {\n codirected: false\n };\n params = extend({}, defaults, params);\n return function parallelEdgesImpl(selector) {\n // micro-optimised for renderer\n var elements = [];\n var edges = this.edges();\n var p = params;\n\n // look at all the edges in the collection\n for (var i = 0; i < edges.length; i++) {\n var edge1 = edges[i];\n var edge1_p = edge1._private;\n var src1 = edge1_p.source;\n var srcid1 = src1._private.data.id;\n var tgtid1 = edge1_p.data.target;\n var srcEdges1 = src1._private.edges;\n\n // look at edges connected to the src node of this edge\n for (var j = 0; j < srcEdges1.length; j++) {\n var edge2 = srcEdges1[j];\n var edge2data = edge2._private.data;\n var tgtid2 = edge2data.target;\n var srcid2 = edge2data.source;\n var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;\n var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;\n if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) {\n elements.push(edge2);\n }\n }\n }\n return this.spawn(elements, true).filter(selector);\n };\n }\n\n // Misc functions\n /////////////////\n\n extend(elesfn$2, {\n components: function components(root) {\n var self = this;\n var cy = self.cy();\n var visited = cy.collection();\n var unvisited = root == null ? self.nodes() : root.nodes();\n var components = [];\n if (root != null && unvisited.empty()) {\n // root may contain only edges\n unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides\n }\n\n var visitInComponent = function visitInComponent(node, component) {\n visited.merge(node);\n unvisited.unmerge(node);\n component.merge(node);\n };\n if (unvisited.empty()) {\n return self.spawn();\n }\n var _loop = function _loop() {\n // each iteration yields a component\n var cmpt = cy.collection();\n components.push(cmpt);\n var root = unvisited[0];\n visitInComponent(root, cmpt);\n self.bfs({\n directed: false,\n roots: root,\n visit: function visit(v) {\n return visitInComponent(v, cmpt);\n }\n });\n cmpt.forEach(function (node) {\n node.connectedEdges().forEach(function (e) {\n // connectedEdges() usually cached\n if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e); // forEach() only considers nodes -- sets N at call time\n }\n });\n });\n };\n do {\n _loop();\n } while (unvisited.length > 0);\n return components;\n },\n component: function component() {\n var ele = this[0];\n return ele.cy().mutableElements().components(ele)[0];\n }\n });\n elesfn$2.componentsOf = elesfn$2.components;\n\n // represents a set of nodes, edges, or both together\n var Collection = function Collection(cy, elements) {\n var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (cy === undefined) {\n error('A collection must have a reference to the core');\n return;\n }\n var map = new Map$2();\n var createdElements = false;\n if (!elements) {\n elements = [];\n } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) {\n createdElements = true;\n\n // make elements from json and restore all at once later\n var eles = [];\n var elesIds = new Set$1();\n for (var i = 0, l = elements.length; i < l; i++) {\n var json = elements[i];\n if (json.data == null) {\n json.data = {};\n }\n var _data = json.data;\n\n // make sure newly created elements have valid ids\n if (_data.id == null) {\n _data.id = uuid();\n } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {\n continue; // can't create element if prior id already exists\n }\n\n var ele = new Element(cy, json, false);\n eles.push(ele);\n elesIds.add(_data.id);\n }\n elements = eles;\n }\n this.length = 0;\n for (var _i = 0, _l = elements.length; _i < _l; _i++) {\n var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements\n if (element$1 == null) {\n continue;\n }\n var id = element$1._private.data.id;\n if (!unique || !map.has(id)) {\n if (unique) {\n map.set(id, {\n index: this.length,\n ele: element$1\n });\n }\n this[this.length] = element$1;\n this.length++;\n }\n }\n this._private = {\n eles: this,\n cy: cy,\n get map() {\n if (this.lazyMap == null) {\n this.rebuildMap();\n }\n return this.lazyMap;\n },\n set map(m) {\n this.lazyMap = m;\n },\n rebuildMap: function rebuildMap() {\n var m = this.lazyMap = new Map$2();\n var eles = this.eles;\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n var _ele = eles[_i2];\n m.set(_ele.id(), {\n index: _i2,\n ele: _ele\n });\n }\n }\n };\n if (unique) {\n this._private.map = map;\n }\n\n // restore the elements if we created them from json\n if (createdElements && !removed) {\n this.restore();\n }\n };\n\n // Functions\n ////////////////////////////////////////////////////////////////////////////////////////////////////\n\n // keep the prototypes in sync (an element has the same functions as a collection)\n // and use elefn and elesfn as shorthands to the prototypes\n var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);\n elesfn$1.instanceString = function () {\n return 'collection';\n };\n elesfn$1.spawn = function (eles, unique) {\n return new Collection(this.cy(), eles, unique);\n };\n elesfn$1.spawnSelf = function () {\n return this.spawn(this);\n };\n elesfn$1.cy = function () {\n return this._private.cy;\n };\n elesfn$1.renderer = function () {\n return this._private.cy.renderer();\n };\n elesfn$1.element = function () {\n return this[0];\n };\n elesfn$1.collection = function () {\n if (collection(this)) {\n return this;\n } else {\n // an element\n return new Collection(this._private.cy, [this]);\n }\n };\n elesfn$1.unique = function () {\n return new Collection(this._private.cy, this, true);\n };\n elesfn$1.hasElementWithId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.has(id);\n };\n elesfn$1.getElementById = function (id) {\n id = '' + id; // id must be string\n\n var cy = this._private.cy;\n var entry = this._private.map.get(id);\n return entry ? entry.ele : new Collection(cy); // get ele or empty collection\n };\n\n elesfn$1.$id = elesfn$1.getElementById;\n elesfn$1.poolIndex = function () {\n var cy = this._private.cy;\n var eles = cy._private.elements;\n var id = this[0]._private.data.id;\n return eles._private.map.get(id).index;\n };\n elesfn$1.indexOf = function (ele) {\n var id = ele[0]._private.data.id;\n return this._private.map.get(id).index;\n };\n elesfn$1.indexOfId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.get(id).index;\n };\n elesfn$1.json = function (obj) {\n var ele = this.element();\n var cy = this.cy();\n if (ele == null && obj) {\n return this;\n } // can't set to no eles\n\n if (ele == null) {\n return undefined;\n } // can't get from no eles\n\n var p = ele._private;\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.data) {\n ele.data(obj.data);\n var _data2 = p.data;\n if (ele.isEdge()) {\n // source and target are immutable via data()\n var move = false;\n var spec = {};\n var src = obj.data.source;\n var tgt = obj.data.target;\n if (src != null && src != _data2.source) {\n spec.source = '' + src; // id must be string\n move = true;\n }\n if (tgt != null && tgt != _data2.target) {\n spec.target = '' + tgt; // id must be string\n move = true;\n }\n if (move) {\n ele = ele.move(spec);\n }\n } else {\n // parent is immutable via data()\n var newParentValSpecd = ('parent' in obj.data);\n var parent = obj.data.parent;\n if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {\n if (parent === undefined) {\n // can't set undefined imperatively, so use null\n parent = null;\n }\n if (parent != null) {\n parent = '' + parent; // id must be string\n }\n\n ele = ele.move({\n parent: parent\n });\n }\n }\n }\n if (obj.position) {\n ele.position(obj.position);\n }\n\n // ignore group -- immutable\n\n var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) {\n var obj_k = obj[k];\n if (obj_k != null && obj_k !== p[k]) {\n if (obj_k) {\n ele[trueFnName]();\n } else {\n ele[falseFnName]();\n }\n }\n };\n checkSwitch('removed', 'remove', 'restore');\n checkSwitch('selected', 'select', 'unselect');\n checkSwitch('selectable', 'selectify', 'unselectify');\n checkSwitch('locked', 'lock', 'unlock');\n checkSwitch('grabbable', 'grabify', 'ungrabify');\n checkSwitch('pannable', 'panify', 'unpanify');\n if (obj.classes != null) {\n ele.classes(obj.classes);\n }\n cy.endBatch();\n return this;\n } else if (obj === undefined) {\n // get\n\n var json = {\n data: copy(p.data),\n position: copy(p.position),\n group: p.group,\n removed: p.removed,\n selected: p.selected,\n selectable: p.selectable,\n locked: p.locked,\n grabbable: p.grabbable,\n pannable: p.pannable,\n classes: null\n };\n json.classes = '';\n var i = 0;\n p.classes.forEach(function (cls) {\n return json.classes += i++ === 0 ? cls : ' ' + cls;\n });\n return json;\n }\n };\n elesfn$1.jsons = function () {\n var jsons = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n jsons.push(json);\n }\n return jsons;\n };\n elesfn$1.clone = function () {\n var cy = this.cy();\n var elesArr = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n var clone = new Element(cy, json, false); // NB no restore\n\n elesArr.push(clone);\n }\n return new Collection(cy, elesArr);\n };\n elesfn$1.copy = elesfn$1.clone;\n elesfn$1.restore = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var cy = self.cy();\n var cy_p = cy._private;\n\n // create arrays of nodes and edges, since we need to\n // restore the nodes first\n var nodes = [];\n var edges = [];\n var elements;\n for (var _i3 = 0, l = self.length; _i3 < l; _i3++) {\n var ele = self[_i3];\n if (addToPool && !ele.removed()) {\n // don't need to handle this ele\n continue;\n }\n\n // keep nodes first in the array and edges after\n if (ele.isNode()) {\n // put to front of array if node\n nodes.push(ele);\n } else {\n // put to end of array if edge\n edges.push(ele);\n }\n }\n elements = nodes.concat(edges);\n var i;\n var removeFromElements = function removeFromElements() {\n elements.splice(i, 1);\n i--;\n };\n\n // now, restore each element\n for (i = 0; i < elements.length; i++) {\n var _ele2 = elements[i];\n var _private = _ele2._private;\n var _data3 = _private.data;\n\n // the traversal cache should start fresh when ele is added\n _ele2.clearTraversalCache();\n\n // set id and validate\n if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) {\n _data3.id = uuid();\n } else if (number$1(_data3.id)) {\n _data3.id = '' + _data3.id; // now it's a string\n } else if (emptyString(_data3.id) || !string(_data3.id)) {\n error('Can not create element with invalid string ID `' + _data3.id + '`');\n\n // can't create element if it has empty string as id or non-string id\n removeFromElements();\n continue;\n } else if (cy.hasElementWithId(_data3.id)) {\n error('Can not create second element with ID `' + _data3.id + '`');\n\n // can't create element if one already has that id\n removeFromElements();\n continue;\n }\n var id = _data3.id; // id is finalised, now let's keep a ref\n\n if (_ele2.isNode()) {\n // extra checks for nodes\n var pos = _private.position;\n\n // make sure the nodes have a defined position\n\n if (pos.x == null) {\n pos.x = 0;\n }\n if (pos.y == null) {\n pos.y = 0;\n }\n }\n if (_ele2.isEdge()) {\n // extra checks for edges\n\n var edge = _ele2;\n var fields = ['source', 'target'];\n var fieldsLength = fields.length;\n var badSourceOrTarget = false;\n for (var j = 0; j < fieldsLength; j++) {\n var field = fields[j];\n var val = _data3[field];\n if (number$1(val)) {\n val = _data3[field] = '' + _data3[field]; // now string\n }\n\n if (val == null || val === '') {\n // can't create if source or target is not defined properly\n error('Can not create edge `' + id + '` with unspecified ' + field);\n badSourceOrTarget = true;\n } else if (!cy.hasElementWithId(val)) {\n // can't create edge if one of its nodes doesn't exist\n error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`');\n badSourceOrTarget = true;\n }\n }\n if (badSourceOrTarget) {\n removeFromElements();\n continue;\n } // can't create this\n\n var src = cy.getElementById(_data3.source);\n var tgt = cy.getElementById(_data3.target);\n\n // only one edge in node if loop\n if (src.same(tgt)) {\n src._private.edges.push(edge);\n } else {\n src._private.edges.push(edge);\n tgt._private.edges.push(edge);\n }\n edge._private.source = src;\n edge._private.target = tgt;\n } // if is edge\n\n // create mock ids / indexes maps for element so it can be used like collections\n _private.map = new Map$2();\n _private.map.set(id, {\n ele: _ele2,\n index: 0\n });\n _private.removed = false;\n if (addToPool) {\n cy.addToPool(_ele2);\n }\n } // for each element\n\n // do compound node sanity checks\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n // each node\n var node = nodes[_i4];\n var _data4 = node._private.data;\n if (number$1(_data4.parent)) {\n // then automake string\n _data4.parent = '' + _data4.parent;\n }\n var parentId = _data4.parent;\n var specifiedParent = parentId != null;\n if (specifiedParent || node._private.parent) {\n var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId);\n if (parent.empty()) {\n // non-existant parent; just remove it\n _data4.parent = undefined;\n } else if (parent[0].removed()) {\n warn('Node added with missing parent, reference to parent removed');\n _data4.parent = undefined;\n node._private.parent = null;\n } else {\n var selfAsParent = false;\n var ancestor = parent;\n while (!ancestor.empty()) {\n if (node.same(ancestor)) {\n // mark self as parent and remove from data\n selfAsParent = true;\n _data4.parent = undefined; // remove parent reference\n\n // exit or we loop forever\n break;\n }\n ancestor = ancestor.parent();\n }\n if (!selfAsParent) {\n // connect with children\n parent[0]._private.children.push(node);\n node._private.parent = parent[0];\n\n // let the core know we have a compound graph\n cy_p.hasCompoundNodes = true;\n }\n } // else\n } // if specified parent\n } // for each node\n\n if (elements.length > 0) {\n var restored = elements.length === self.length ? self : new Collection(cy, elements);\n for (var _i5 = 0; _i5 < restored.length; _i5++) {\n var _ele3 = restored[_i5];\n if (_ele3.isNode()) {\n continue;\n }\n\n // adding an edge invalidates the traversal caches for the parallel edges\n _ele3.parallelEdges().clearTraversalCache();\n\n // adding an edge invalidates the traversal cache for the connected nodes\n _ele3.source().clearTraversalCache();\n _ele3.target().clearTraversalCache();\n }\n var toUpdateStyle;\n if (cy_p.hasCompoundNodes) {\n toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());\n } else {\n toUpdateStyle = restored;\n }\n toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);\n if (notifyRenderer) {\n restored.emitAndNotify('add');\n } else if (addToPool) {\n restored.emit('add');\n }\n }\n return self; // chainability\n };\n\n elesfn$1.removed = function () {\n var ele = this[0];\n return ele && ele._private.removed;\n };\n elesfn$1.inside = function () {\n var ele = this[0];\n return ele && !ele._private.removed;\n };\n elesfn$1.remove = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var elesToRemove = [];\n var elesToRemoveIds = {};\n var cy = self._private.cy;\n\n // add connected edges\n function addConnectedEdges(node) {\n var edges = node._private.edges;\n for (var i = 0; i < edges.length; i++) {\n add(edges[i]);\n }\n }\n\n // add descendant nodes\n function addChildren(node) {\n var children = node._private.children;\n for (var i = 0; i < children.length; i++) {\n add(children[i]);\n }\n }\n function add(ele) {\n var alreadyAdded = elesToRemoveIds[ele.id()];\n if (removeFromPool && ele.removed() || alreadyAdded) {\n return;\n } else {\n elesToRemoveIds[ele.id()] = true;\n }\n if (ele.isNode()) {\n elesToRemove.push(ele); // nodes are removed last\n\n addConnectedEdges(ele);\n addChildren(ele);\n } else {\n elesToRemove.unshift(ele); // edges are removed first\n }\n }\n\n // make the list of elements to remove\n // (may be removing more than specified due to connected edges etc)\n\n for (var i = 0, l = self.length; i < l; i++) {\n var ele = self[i];\n add(ele);\n }\n function removeEdgeRef(node, edge) {\n var connectedEdges = node._private.edges;\n removeFromArray(connectedEdges, edge);\n\n // removing an edges invalidates the traversal cache for its nodes\n node.clearTraversalCache();\n }\n function removeParallelRef(pllEdge) {\n // removing an edge invalidates the traversal caches for the parallel edges\n pllEdge.clearTraversalCache();\n }\n var alteredParents = [];\n alteredParents.ids = {};\n function removeChildRef(parent, ele) {\n ele = ele[0];\n parent = parent[0];\n var children = parent._private.children;\n var pid = parent.id();\n removeFromArray(children, ele); // remove parent => child ref\n\n ele._private.parent = null; // remove child => parent ref\n\n if (!alteredParents.ids[pid]) {\n alteredParents.ids[pid] = true;\n alteredParents.push(parent);\n }\n }\n self.dirtyCompoundBoundsCache();\n if (removeFromPool) {\n cy.removeFromPool(elesToRemove); // remove from core pool\n }\n\n for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {\n var _ele4 = elesToRemove[_i6];\n if (_ele4.isEdge()) {\n // remove references to this edge in its connected nodes\n var src = _ele4.source()[0];\n var tgt = _ele4.target()[0];\n removeEdgeRef(src, _ele4);\n removeEdgeRef(tgt, _ele4);\n var pllEdges = _ele4.parallelEdges();\n for (var j = 0; j < pllEdges.length; j++) {\n var pllEdge = pllEdges[j];\n removeParallelRef(pllEdge);\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n }\n } else {\n // remove reference to parent\n var parent = _ele4.parent();\n if (parent.length !== 0) {\n removeChildRef(parent, _ele4);\n }\n }\n if (removeFromPool) {\n // mark as removed\n _ele4._private.removed = true;\n }\n }\n\n // check to see if we have a compound graph or not\n var elesStillInside = cy._private.elements;\n cy._private.hasCompoundNodes = false;\n for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {\n var _ele5 = elesStillInside[_i7];\n if (_ele5.isParent()) {\n cy._private.hasCompoundNodes = true;\n break;\n }\n }\n var removedElements = new Collection(this.cy(), elesToRemove);\n if (removedElements.size() > 0) {\n // must manually notify since trigger won't do this automatically once removed\n\n if (notifyRenderer) {\n removedElements.emitAndNotify('remove');\n } else if (removeFromPool) {\n removedElements.emit('remove');\n }\n }\n\n // the parents who were modified by the removal need their style updated\n for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {\n var _ele6 = alteredParents[_i8];\n if (!removeFromPool || !_ele6.removed()) {\n _ele6.updateStyle();\n }\n }\n return removedElements;\n };\n elesfn$1.move = function (struct) {\n var cy = this._private.cy;\n var eles = this;\n\n // just clean up refs, caches, etc. in the same way as when removing and then restoring\n // (our calls to remove/restore do not remove from the graph or make events)\n var notifyRenderer = false;\n var modifyPool = false;\n var toString = function toString(id) {\n return id == null ? id : '' + id;\n }; // id must be string\n\n if (struct.source !== undefined || struct.target !== undefined) {\n var srcId = toString(struct.source);\n var tgtId = toString(struct.target);\n var srcExists = srcId != null && cy.hasElementWithId(srcId);\n var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);\n if (srcExists || tgtExists) {\n cy.batch(function () {\n // avoid duplicate style updates\n eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n eles.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data5 = ele._private.data;\n if (ele.isEdge()) {\n if (srcExists) {\n _data5.source = srcId;\n }\n if (tgtExists) {\n _data5.target = tgtId;\n }\n }\n }\n eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n } else if (struct.parent !== undefined) {\n // move node to new parent\n var parentId = toString(struct.parent);\n var parentExists = parentId === null || cy.hasElementWithId(parentId);\n if (parentExists) {\n var pidToAssign = parentId === null ? undefined : parentId;\n cy.batch(function () {\n // avoid duplicate style updates\n var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n updated.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data6 = ele._private.data;\n if (ele.isNode()) {\n _data6.parent = pidToAssign;\n }\n }\n updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n }\n return this;\n };\n [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) {\n extend(elesfn$1, props);\n });\n\n var corefn$9 = {\n add: function add(opts) {\n var elements;\n var cy = this;\n\n // add the elements\n if (elementOrCollection(opts)) {\n var eles = opts;\n if (eles._private.cy === cy) {\n // same instance => just restore\n elements = eles.restore();\n } else {\n // otherwise, copy from json\n var jsons = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n jsons.push(ele.json());\n }\n elements = new Collection(cy, jsons);\n }\n }\n\n // specify an array of options\n else if (array(opts)) {\n var _jsons = opts;\n elements = new Collection(cy, _jsons);\n }\n\n // specify via opts.nodes and opts.edges\n else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) {\n var elesByGroup = opts;\n var _jsons2 = [];\n var grs = ['nodes', 'edges'];\n for (var _i = 0, il = grs.length; _i < il; _i++) {\n var group = grs[_i];\n var elesArray = elesByGroup[group];\n if (array(elesArray)) {\n for (var j = 0, jl = elesArray.length; j < jl; j++) {\n var json = extend({\n group: group\n }, elesArray[j]);\n _jsons2.push(json);\n }\n }\n }\n elements = new Collection(cy, _jsons2);\n }\n\n // specify options for one element\n else {\n var _json = opts;\n elements = new Element(cy, _json).collection();\n }\n return elements;\n },\n remove: function remove(collection) {\n if (elementOrCollection(collection)) ; else if (string(collection)) {\n var selector = collection;\n collection = this.$(selector);\n }\n return collection.remove();\n }\n };\n\n /* global Float32Array */\n\n /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n function generateCubicBezier(mX1, mY1, mX2, mY2) {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\n float32ArraySupported = typeof Float32Array !== 'undefined';\n\n /* Must contain four arguments. */\n if (arguments.length !== 4) {\n return false;\n }\n\n /* Arguments must be numbers. */\n for (var i = 0; i < 4; ++i) {\n if (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\n return false;\n }\n }\n\n /* X values must be in the [0, 1] range. */\n mX1 = Math.min(mX1, 1);\n mX2 = Math.min(mX2, 1);\n mX1 = Math.max(mX1, 0);\n mX2 = Math.max(mX2, 0);\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n return 3.0 * aA1;\n }\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function calcSampleValues() {\n for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {\n mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);\n }\n }\n function binarySubdivide(aX, aA, aB) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function getTForX(aX) {\n var intervalStart = 0.0,\n currentSample = 1,\n lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n var _precomputed = false;\n function precompute() {\n _precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n var f = function f(aX) {\n if (!_precomputed) {\n precompute();\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return aX;\n }\n if (aX === 0) {\n return 0;\n }\n if (aX === 1) {\n return 1;\n }\n return calcBezier(getTForX(aX), mY1, mY2);\n };\n f.getControlPoints = function () {\n return [{\n x: mX1,\n y: mY1\n }, {\n x: mX2,\n y: mY2\n }];\n };\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\n f.toString = function () {\n return str;\n };\n return f;\n }\n\n /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n /* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\n var generateSpringRK4 = function () {\n function springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n }\n function springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n }\n function springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\n dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n }\n return function springRK4Factory(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n },\n path = [0],\n time_lapsed = 0,\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n have_duration,\n dt,\n last_state;\n tension = parseFloat(tension) || 500;\n friction = parseFloat(friction) || 20;\n duration = duration || null;\n initState.tension = tension;\n initState.friction = friction;\n have_duration = duration !== null;\n\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n if (have_duration) {\n /* Run the simulation without a duration. */\n time_lapsed = springRK4Factory(tension, friction);\n /* Compute the adjusted time delta. */\n dt = time_lapsed / duration * DT;\n } else {\n dt = DT;\n }\n for (;;) {\n /* Next/step function .*/\n last_state = springIntegrateState(last_state || initState, dt);\n /* Store the position. */\n path.push(1 + last_state.x);\n time_lapsed += 16;\n /* If the change threshold is reached, break. */\n if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\n break;\n }\n }\n\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\n computed path and returns a snapshot of the position according to a given percentComplete. */\n return !have_duration ? time_lapsed : function (percentComplete) {\n return path[percentComplete * (path.length - 1) | 0];\n };\n };\n }();\n\n var cubicBezier = function cubicBezier(t1, p1, t2, p2) {\n var bezier = generateCubicBezier(t1, p1, t2, p2);\n return function (start, end, percent) {\n return start + (end - start) * bezier(percent);\n };\n };\n var easings = {\n 'linear': function linear(start, end, percent) {\n return start + (end - start) * percent;\n },\n // default easings\n 'ease': cubicBezier(0.25, 0.1, 0.25, 1),\n 'ease-in': cubicBezier(0.42, 0, 1, 1),\n 'ease-out': cubicBezier(0, 0, 0.58, 1),\n 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1),\n // sine\n 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715),\n 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1),\n 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95),\n // quad\n 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53),\n 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94),\n 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955),\n // cubic\n 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19),\n 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1),\n 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1),\n // quart\n 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22),\n 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1),\n 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1),\n // quint\n 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06),\n 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1),\n 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1),\n // expo\n 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035),\n 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1),\n 'ease-in-out-expo': cubicBezier(1, 0, 0, 1),\n // circ\n 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335),\n 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1),\n 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86),\n // user param easings...\n\n 'spring': function spring(tension, friction, duration) {\n if (duration === 0) {\n // can't get a spring w/ duration 0\n return easings.linear; // duration 0 => jump to end so impl doesn't matter\n }\n\n var spring = generateSpringRK4(tension, friction, duration);\n return function (start, end, percent) {\n return start + (end - start) * spring(percent);\n };\n },\n 'cubic-bezier': cubicBezier\n };\n\n function getEasedValue(type, start, end, percent, easingFn) {\n if (percent === 1) {\n return end;\n }\n if (start === end) {\n return end;\n }\n var val = easingFn(start, end, percent);\n if (type == null) {\n return val;\n }\n if (type.roundValue || type.color) {\n val = Math.round(val);\n }\n if (type.min !== undefined) {\n val = Math.max(val, type.min);\n }\n if (type.max !== undefined) {\n val = Math.min(val, type.max);\n }\n return val;\n }\n function getValue(prop, spec) {\n if (prop.pfValue != null || prop.value != null) {\n if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) {\n return prop.pfValue;\n } else {\n return prop.value;\n }\n } else {\n return prop;\n }\n }\n function ease(startProp, endProp, percent, easingFn, propSpec) {\n var type = propSpec != null ? propSpec.type : null;\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n var start = getValue(startProp, propSpec);\n var end = getValue(endProp, propSpec);\n if (number$1(start) && number$1(end)) {\n return getEasedValue(type, start, end, percent, easingFn);\n } else if (array(start) && array(end)) {\n var easedArr = [];\n for (var i = 0; i < end.length; i++) {\n var si = start[i];\n var ei = end[i];\n if (si != null && ei != null) {\n var val = getEasedValue(type, si, ei, percent, easingFn);\n easedArr.push(val);\n } else {\n easedArr.push(ei);\n }\n }\n return easedArr;\n }\n return undefined;\n }\n\n function step$1(self, ani, now, isCore) {\n var isEles = !isCore;\n var _p = self._private;\n var ani_p = ani._private;\n var pEasing = ani_p.easing;\n var startTime = ani_p.startTime;\n var cy = isCore ? self : self.cy();\n var style = cy.style();\n if (!ani_p.easingImpl) {\n if (pEasing == null) {\n // use default\n ani_p.easingImpl = easings['linear'];\n } else {\n // then define w/ name\n var easingVals;\n if (string(pEasing)) {\n var easingProp = style.parse('transition-timing-function', pEasing);\n easingVals = easingProp.value;\n } else {\n // then assume preparsed array\n easingVals = pEasing;\n }\n var name, args;\n if (string(easingVals)) {\n name = easingVals;\n args = [];\n } else {\n name = easingVals[1];\n args = easingVals.slice(2).map(function (n) {\n return +n;\n });\n }\n if (args.length > 0) {\n // create with args\n if (name === 'spring') {\n args.push(ani_p.duration); // need duration to generate spring\n }\n\n ani_p.easingImpl = easings[name].apply(null, args);\n } else {\n // static impl by name\n ani_p.easingImpl = easings[name];\n }\n }\n }\n var easing = ani_p.easingImpl;\n var percent;\n if (ani_p.duration === 0) {\n percent = 1;\n } else {\n percent = (now - startTime) / ani_p.duration;\n }\n if (ani_p.applying) {\n percent = ani_p.progress;\n }\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (ani_p.delay == null) {\n // then update\n\n var startPos = ani_p.startPosition;\n var endPos = ani_p.position;\n if (endPos && isEles && !self.locked()) {\n var newPos = {};\n if (valid(startPos.x, endPos.x)) {\n newPos.x = ease(startPos.x, endPos.x, percent, easing);\n }\n if (valid(startPos.y, endPos.y)) {\n newPos.y = ease(startPos.y, endPos.y, percent, easing);\n }\n self.position(newPos);\n }\n var startPan = ani_p.startPan;\n var endPan = ani_p.pan;\n var pan = _p.pan;\n var animatingPan = endPan != null && isCore;\n if (animatingPan) {\n if (valid(startPan.x, endPan.x)) {\n pan.x = ease(startPan.x, endPan.x, percent, easing);\n }\n if (valid(startPan.y, endPan.y)) {\n pan.y = ease(startPan.y, endPan.y, percent, easing);\n }\n self.emit('pan');\n }\n var startZoom = ani_p.startZoom;\n var endZoom = ani_p.zoom;\n var animatingZoom = endZoom != null && isCore;\n if (animatingZoom) {\n if (valid(startZoom, endZoom)) {\n _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);\n }\n self.emit('zoom');\n }\n if (animatingPan || animatingZoom) {\n self.emit('viewport');\n }\n var props = ani_p.style;\n if (props && props.length > 0 && isEles) {\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var _name = prop.name;\n var end = prop;\n var start = ani_p.startStyle[_name];\n var propSpec = style.properties[start.name];\n var easedVal = ease(start, end, percent, easing, propSpec);\n style.overrideBypass(self, _name, easedVal);\n } // for props\n\n self.emit('style');\n } // if\n }\n\n ani_p.progress = percent;\n return percent;\n }\n function valid(start, end) {\n if (start == null || end == null) {\n return false;\n }\n if (number$1(start) && number$1(end)) {\n return true;\n } else if (start && end) {\n return true;\n }\n return false;\n }\n\n function startAnimation(self, ani, now, isCore) {\n var ani_p = ani._private;\n ani_p.started = true;\n ani_p.startTime = now - ani_p.progress * ani_p.duration;\n }\n\n function stepAll(now, cy) {\n var eles = cy._private.aniEles;\n var doneEles = [];\n function stepOne(ele, isCore) {\n var _p = ele._private;\n var current = _p.animation.current;\n var queue = _p.animation.queue;\n var ranAnis = false;\n\n // if nothing currently animating, get something from the queue\n if (current.length === 0) {\n var next = queue.shift();\n if (next) {\n current.push(next);\n }\n }\n var callbacks = function callbacks(_callbacks) {\n for (var j = _callbacks.length - 1; j >= 0; j--) {\n var cb = _callbacks[j];\n cb();\n }\n _callbacks.splice(0, _callbacks.length);\n };\n\n // step and remove if done\n for (var i = current.length - 1; i >= 0; i--) {\n var ani = current[i];\n var ani_p = ani._private;\n if (ani_p.stopped) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.frames);\n continue;\n }\n if (!ani_p.playing && !ani_p.applying) {\n continue;\n }\n\n // an apply() while playing shouldn't do anything\n if (ani_p.playing && ani_p.applying) {\n ani_p.applying = false;\n }\n if (!ani_p.started) {\n startAnimation(ele, ani, now);\n }\n step$1(ele, ani, now, isCore);\n if (ani_p.applying) {\n ani_p.applying = false;\n }\n callbacks(ani_p.frames);\n if (ani_p.step != null) {\n ani_p.step(now);\n }\n if (ani.completed()) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.completes);\n }\n ranAnis = true;\n }\n if (!isCore && current.length === 0 && queue.length === 0) {\n doneEles.push(ele);\n }\n return ranAnis;\n } // stepElement\n\n // handle all eles\n var ranEleAni = false;\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n var handledThisEle = stepOne(ele);\n ranEleAni = ranEleAni || handledThisEle;\n } // each element\n\n var ranCoreAni = stepOne(cy, true);\n\n // notify renderer\n if (ranEleAni || ranCoreAni) {\n if (eles.length > 0) {\n cy.notify('draw', eles);\n } else {\n cy.notify('draw');\n }\n }\n\n // remove elements from list of currently animating if its queues are empty\n eles.unmerge(doneEles);\n cy.emit('step');\n } // stepAll\n\n var corefn$8 = {\n // pull in animation functions\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop(),\n addToAnimationPool: function addToAnimationPool(eles) {\n var cy = this;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n cy._private.aniEles.merge(eles);\n },\n stopAnimationLoop: function stopAnimationLoop() {\n this._private.animationsRunning = false;\n },\n startAnimationLoop: function startAnimationLoop() {\n var cy = this;\n cy._private.animationsRunning = true;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n // NB the animation loop will exec in headless environments if style enabled\n // and explicit cy.destroy() is necessary to stop the loop\n\n function headlessStep() {\n if (!cy._private.animationsRunning) {\n return;\n }\n requestAnimationFrame(function animationStep(now) {\n stepAll(now, cy);\n headlessStep();\n });\n }\n var renderer = cy.renderer();\n if (renderer && renderer.beforeRender) {\n // let the renderer schedule animations\n renderer.beforeRender(function rendererAnimationStep(willDraw, now) {\n stepAll(now, cy);\n }, renderer.beforeRenderPriorities.animations);\n } else {\n // manage the animation loop ourselves\n headlessStep(); // first call\n }\n }\n };\n\n var emitterOptions = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(cy, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(cy, evt) {\n evt.cy = cy;\n evt.target = cy;\n },\n callbackContext: function callbackContext(cy, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : cy;\n }\n };\n var argSelector = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n };\n var elesfn = {\n createEmitter: function createEmitter() {\n var _p = this._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions, this);\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n this.emitter().on(events, argSelector(selector), callback);\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n this.emitter().removeListener(events, argSelector(selector), callback);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n one: function one(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n once: function once(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n emit: function emit(events, extraParams) {\n this.emitter().emit(events, extraParams);\n return this;\n },\n emitAndNotify: function emitAndNotify(event, eles) {\n this.emit(event);\n this.notify(event, eles);\n return this;\n }\n };\n define.eventAliasesOn(elesfn);\n\n var corefn$7 = {\n png: function png(options) {\n var renderer = this._private.renderer;\n options = options || {};\n return renderer.png(options);\n },\n jpg: function jpg(options) {\n var renderer = this._private.renderer;\n options = options || {};\n options.bg = options.bg || '#fff';\n return renderer.jpg(options);\n }\n };\n corefn$7.jpeg = corefn$7.jpg;\n\n var corefn$6 = {\n layout: function layout(options) {\n var cy = this;\n if (options == null) {\n error('Layout options must be specified to make a layout');\n return;\n }\n if (options.name == null) {\n error('A `name` must be specified to make a layout');\n return;\n }\n var name = options.name;\n var Layout = cy.extension('layout', name);\n if (Layout == null) {\n error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?');\n return;\n }\n var eles;\n if (string(options.eles)) {\n eles = cy.$(options.eles);\n } else {\n eles = options.eles != null ? options.eles : cy.$();\n }\n var layout = new Layout(extend({}, options, {\n cy: cy,\n eles: eles\n }));\n return layout;\n }\n };\n corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;\n\n var corefn$5 = {\n notify: function notify(eventName, eventEles) {\n var _p = this._private;\n if (this.batching()) {\n _p.batchNotifications = _p.batchNotifications || {};\n var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();\n if (eventEles != null) {\n eles.merge(eventEles);\n }\n return; // notifications are disabled during batching\n }\n\n if (!_p.notificationsEnabled) {\n return;\n } // exit on disabled\n\n var renderer = this.renderer();\n\n // exit if destroy() called on core or renderer in between frames #1499 #1528\n if (this.destroyed() || !renderer) {\n return;\n }\n renderer.notify(eventName, eventEles);\n },\n notifications: function notifications(bool) {\n var p = this._private;\n if (bool === undefined) {\n return p.notificationsEnabled;\n } else {\n p.notificationsEnabled = bool ? true : false;\n }\n return this;\n },\n noNotifications: function noNotifications(callback) {\n this.notifications(false);\n callback();\n this.notifications(true);\n },\n batching: function batching() {\n return this._private.batchCount > 0;\n },\n startBatch: function startBatch() {\n var _p = this._private;\n if (_p.batchCount == null) {\n _p.batchCount = 0;\n }\n if (_p.batchCount === 0) {\n _p.batchStyleEles = this.collection();\n _p.batchNotifications = {};\n }\n _p.batchCount++;\n return this;\n },\n endBatch: function endBatch() {\n var _p = this._private;\n if (_p.batchCount === 0) {\n return this;\n }\n _p.batchCount--;\n if (_p.batchCount === 0) {\n // update style for dirty eles\n _p.batchStyleEles.updateStyle();\n var renderer = this.renderer();\n\n // notify the renderer of queued eles and event types\n Object.keys(_p.batchNotifications).forEach(function (eventName) {\n var eles = _p.batchNotifications[eventName];\n if (eles.empty()) {\n renderer.notify(eventName);\n } else {\n renderer.notify(eventName, eles);\n }\n });\n }\n return this;\n },\n batch: function batch(callback) {\n this.startBatch();\n callback();\n this.endBatch();\n return this;\n },\n // for backwards compatibility\n batchData: function batchData(map) {\n var cy = this;\n return this.batch(function () {\n var ids = Object.keys(map);\n for (var i = 0; i < ids.length; i++) {\n var id = ids[i];\n var data = map[id];\n var ele = cy.getElementById(id);\n ele.data(data);\n }\n });\n }\n };\n\n var rendererDefaults = defaults$g({\n hideEdgesOnViewport: false,\n textureOnViewport: false,\n motionBlur: false,\n motionBlurOpacity: 0.05,\n pixelRatio: undefined,\n desktopTapThreshold: 4,\n touchTapThreshold: 8,\n wheelSensitivity: 1,\n debug: false,\n showFps: false\n });\n var corefn$4 = {\n renderTo: function renderTo(context, zoom, pan, pxRatio) {\n var r = this._private.renderer;\n r.renderTo(context, zoom, pan, pxRatio);\n return this;\n },\n renderer: function renderer() {\n return this._private.renderer;\n },\n forceRender: function forceRender() {\n this.notify('draw');\n return this;\n },\n resize: function resize() {\n this.invalidateSize();\n this.emitAndNotify('resize');\n return this;\n },\n initRenderer: function initRenderer(options) {\n var cy = this;\n var RendererProto = cy.extension('renderer', options.name);\n if (RendererProto == null) {\n error(\"Can not initialise: No such renderer `\".concat(options.name, \"` found. Did you forget to import it and `cytoscape.use()` it?\"));\n return;\n }\n if (options.wheelSensitivity !== undefined) {\n warn(\"You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.\");\n }\n var rOpts = rendererDefaults(options);\n rOpts.cy = cy;\n cy._private.renderer = new RendererProto(rOpts);\n this.notify('init');\n },\n destroyRenderer: function destroyRenderer() {\n var cy = this;\n cy.notify('destroy'); // destroy the renderer\n\n var domEle = cy.container();\n if (domEle) {\n domEle._cyreg = null;\n while (domEle.childNodes.length > 0) {\n domEle.removeChild(domEle.childNodes[0]);\n }\n }\n cy._private.renderer = null; // to be extra safe, remove the ref\n cy.mutableElements().forEach(function (ele) {\n var _p = ele._private;\n _p.rscratch = {};\n _p.rstyle = {};\n _p.animation.current = [];\n _p.animation.queue = [];\n });\n },\n onRender: function onRender(fn) {\n return this.on('render', fn);\n },\n offRender: function offRender(fn) {\n return this.off('render', fn);\n }\n };\n corefn$4.invalidateDimensions = corefn$4.resize;\n\n var corefn$3 = {\n // get a collection\n // - empty collection on no args\n // - collection of elements in the graph on selector arg\n // - guarantee a returned collection when elements or collection specified\n collection: function collection(eles, opts) {\n if (string(eles)) {\n return this.$(eles);\n } else if (elementOrCollection(eles)) {\n return eles.collection();\n } else if (array(eles)) {\n if (!opts) {\n opts = {};\n }\n return new Collection(this, eles, opts.unique, opts.removed);\n }\n return new Collection(this);\n },\n nodes: function nodes(selector) {\n var nodes = this.$(function (ele) {\n return ele.isNode();\n });\n if (selector) {\n return nodes.filter(selector);\n }\n return nodes;\n },\n edges: function edges(selector) {\n var edges = this.$(function (ele) {\n return ele.isEdge();\n });\n if (selector) {\n return edges.filter(selector);\n }\n return edges;\n },\n // search the graph like jQuery\n $: function $(selector) {\n var eles = this._private.elements;\n if (selector) {\n return eles.filter(selector);\n } else {\n return eles.spawnSelf();\n }\n },\n mutableElements: function mutableElements() {\n return this._private.elements;\n }\n };\n\n // aliases\n corefn$3.elements = corefn$3.filter = corefn$3.$;\n\n var styfn$8 = {};\n\n // keys for style blocks, e.g. ttfftt\n var TRUE = 't';\n var FALSE = 'f';\n\n // (potentially expensive calculation)\n // apply the style to the element based on\n // - its bypass\n // - what selectors match it\n styfn$8.apply = function (eles) {\n var self = this;\n var _p = self._private;\n var cy = _p.cy;\n var updatedEles = cy.collection();\n for (var ie = 0; ie < eles.length; ie++) {\n var ele = eles[ie];\n var cxtMeta = self.getContextMeta(ele);\n if (cxtMeta.empty) {\n continue;\n }\n var cxtStyle = self.getContextStyle(cxtMeta);\n var app = self.applyContextStyle(cxtMeta, cxtStyle, ele);\n if (ele._private.appliedInitStyle) {\n self.updateTransitions(ele, app.diffProps);\n } else {\n ele._private.appliedInitStyle = true;\n }\n var hintsDiff = self.updateStyleHints(ele);\n if (hintsDiff) {\n updatedEles.push(ele);\n }\n } // for elements\n\n return updatedEles;\n };\n styfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) {\n var self = this;\n var cache = self._private.propDiffs = self._private.propDiffs || {};\n var dualCxtKey = oldCxtKey + '-' + newCxtKey;\n var cachedVal = cache[dualCxtKey];\n if (cachedVal) {\n return cachedVal;\n }\n var diffProps = [];\n var addedProp = {};\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var oldHasCxt = oldCxtKey[i] === TRUE;\n var newHasCxt = newCxtKey[i] === TRUE;\n var cxtHasDiffed = oldHasCxt !== newHasCxt;\n var cxtHasMappedProps = cxt.mappedProperties.length > 0;\n if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {\n var props = void 0;\n if (cxtHasDiffed && cxtHasMappedProps) {\n props = cxt.properties; // suffices b/c mappedProperties is a subset of properties\n } else if (cxtHasDiffed) {\n props = cxt.properties; // need to check them all\n } else if (cxtHasMappedProps) {\n props = cxt.mappedProperties; // only need to check mapped\n }\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n var name = prop.name;\n\n // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter\n // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result\n // is cached)\n var laterCxtOverrides = false;\n for (var k = i + 1; k < self.length; k++) {\n var laterCxt = self[k];\n var hasLaterCxt = newCxtKey[k] === TRUE;\n if (!hasLaterCxt) {\n continue;\n } // can't override unless the context is active\n\n laterCxtOverrides = laterCxt.properties[prop.name] != null;\n if (laterCxtOverrides) {\n break;\n } // exit early as long as one later context overrides\n }\n\n if (!addedProp[name] && !laterCxtOverrides) {\n addedProp[name] = true;\n diffProps.push(name);\n }\n } // for props\n } // if\n } // for contexts\n\n cache[dualCxtKey] = diffProps;\n return diffProps;\n };\n styfn$8.getContextMeta = function (ele) {\n var self = this;\n var cxtKey = '';\n var diffProps;\n var prevKey = ele._private.styleCxtKey || '';\n\n // get the cxt key\n for (var i = 0; i < self.length; i++) {\n var context = self[i];\n var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core'\n\n if (contextSelectorMatches) {\n cxtKey += TRUE;\n } else {\n cxtKey += FALSE;\n }\n } // for context\n\n diffProps = self.getPropertiesDiff(prevKey, cxtKey);\n ele._private.styleCxtKey = cxtKey;\n return {\n key: cxtKey,\n diffPropNames: diffProps,\n empty: diffProps.length === 0\n };\n };\n\n // gets a computed ele style object based on matched contexts\n styfn$8.getContextStyle = function (cxtMeta) {\n var cxtKey = cxtMeta.key;\n var self = this;\n var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};\n\n // if already computed style, returned cached copy\n if (cxtStyles[cxtKey]) {\n return cxtStyles[cxtKey];\n }\n var style = {\n _private: {\n key: cxtKey\n }\n };\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var hasCxt = cxtKey[i] === TRUE;\n if (!hasCxt) {\n continue;\n }\n for (var j = 0; j < cxt.properties.length; j++) {\n var prop = cxt.properties[j];\n style[prop.name] = prop;\n }\n }\n cxtStyles[cxtKey] = style;\n return style;\n };\n styfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) {\n var self = this;\n var diffProps = cxtMeta.diffPropNames;\n var retDiffProps = {};\n var types = self.types;\n for (var i = 0; i < diffProps.length; i++) {\n var diffPropName = diffProps[i];\n var cxtProp = cxtStyle[diffPropName];\n var eleProp = ele.pstyle(diffPropName);\n if (!cxtProp) {\n // no context prop means delete\n if (!eleProp) {\n continue; // no existing prop means nothing needs to be removed\n // nb affects initial application on mapped values like control-point-distances\n } else if (eleProp.bypass) {\n cxtProp = {\n name: diffPropName,\n deleteBypassed: true\n };\n } else {\n cxtProp = {\n name: diffPropName,\n \"delete\": true\n };\n }\n }\n\n // save cycles when the context prop doesn't need to be applied\n if (eleProp === cxtProp) {\n continue;\n }\n\n // save cycles when a mapped context prop doesn't need to be applied\n if (cxtProp.mapped === types.fn // context prop is function mapper\n && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one)\n && eleProp.mapping != null // ele prop is a concrete value from from a mapper\n && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper\n ) {\n // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet)\n var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy\n var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss\n\n if (fnValue === mapping.prevFnValue) {\n continue;\n }\n }\n var retDiffProp = retDiffProps[diffPropName] = {\n prev: eleProp\n };\n self.applyParsedProperty(ele, cxtProp);\n retDiffProp.next = ele.pstyle(diffPropName);\n if (retDiffProp.next && retDiffProp.next.bypass) {\n retDiffProp.next = retDiffProp.next.bypassed;\n }\n }\n return {\n diffProps: retDiffProps\n };\n };\n styfn$8.updateStyleHints = function (ele) {\n var _p = ele._private;\n var self = this;\n var propNames = self.propertyGroupNames;\n var propGrKeys = self.propertyGroupKeys;\n var propHash = function propHash(ele, propNames, seedKey) {\n return self.getPropertiesHash(ele, propNames, seedKey);\n };\n var oldStyleKey = _p.styleKey;\n if (ele.removed()) {\n return false;\n }\n var isNode = _p.group === 'nodes';\n\n // get the style key hashes per prop group\n // but lazily -- only use non-default prop values to reduce the number of hashes\n //\n\n var overriddenStyles = ele._private.style;\n propNames = Object.keys(overriddenStyles);\n for (var i = 0; i < propGrKeys.length; i++) {\n var grKey = propGrKeys[i];\n _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n }\n var updateGrKey1 = function updateGrKey1(val, grKey) {\n return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]);\n };\n var updateGrKey2 = function updateGrKey2(val, grKey) {\n return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]);\n };\n var updateGrKey = function updateGrKey(val, grKey) {\n updateGrKey1(val, grKey);\n updateGrKey2(val, grKey);\n };\n var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) {\n for (var j = 0; j < strVal.length; j++) {\n var ch = strVal.charCodeAt(j);\n updateGrKey1(ch, grKey);\n updateGrKey2(ch, grKey);\n }\n };\n\n // - hashing works on 32 bit ints b/c we use bitwise ops\n // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function)\n // - raise up small numbers so more significant digits are seen by hashing\n // - make small numbers larger than a normal value to avoid collisions\n // - works in practice and it's relatively cheap\n var N = 2000000000;\n var cleanNum = function cleanNum(val) {\n return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;\n };\n for (var _i = 0; _i < propNames.length; _i++) {\n var name = propNames[_i];\n var parsedProp = overriddenStyles[name];\n if (parsedProp == null) {\n continue;\n }\n var propInfo = this.properties[name];\n var type = propInfo.type;\n var _grKey = propInfo.groupKey;\n var normalizedNumberVal = void 0;\n if (propInfo.hashOverride != null) {\n normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);\n } else if (parsedProp.pfValue != null) {\n normalizedNumberVal = parsedProp.pfValue;\n }\n\n // might not be a number if it allows enums\n var numberVal = propInfo.enums == null ? parsedProp.value : null;\n var haveNormNum = normalizedNumberVal != null;\n var haveUnitedNum = numberVal != null;\n var haveNum = haveNormNum || haveUnitedNum;\n var units = parsedProp.units;\n\n // numbers are cheaper to hash than strings\n // 1 hash op vs n hash ops (for length n string)\n if (type.number && haveNum && !type.multiple) {\n var v = haveNormNum ? normalizedNumberVal : numberVal;\n updateGrKey(cleanNum(v), _grKey);\n if (!haveNormNum && units != null) {\n updateGrKeyWStr(units, _grKey);\n }\n } else {\n updateGrKeyWStr(parsedProp.strValue, _grKey);\n }\n }\n\n // overall style key\n //\n\n var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {\n var _grKey2 = propGrKeys[_i2];\n var grHash = _p.styleKeys[_grKey2];\n hash[0] = hashInt(grHash[0], hash[0]);\n hash[1] = hashIntAlt(grHash[1], hash[1]);\n }\n _p.styleKey = combineHashes(hash[0], hash[1]);\n\n // label dims\n //\n\n var sk = _p.styleKeys;\n _p.labelDimsKey = combineHashesArray(sk.labelDimensions);\n var labelKeys = propHash(ele, ['label'], sk.labelDimensions);\n _p.labelKey = combineHashesArray(labelKeys);\n _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));\n if (!isNode) {\n var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions);\n _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);\n _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));\n var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions);\n _p.targetLabelKey = combineHashesArray(targetLabelKeys);\n _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));\n }\n\n // node\n //\n\n if (isNode) {\n var _p$styleKeys = _p.styleKeys,\n nodeBody = _p$styleKeys.nodeBody,\n nodeBorder = _p$styleKeys.nodeBorder,\n backgroundImage = _p$styleKeys.backgroundImage,\n compound = _p$styleKeys.compound,\n pie = _p$styleKeys.pie;\n var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie].filter(function (k) {\n return k != null;\n }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);\n _p.nodeKey = combineHashesArray(nodeKeys);\n _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT;\n }\n return oldStyleKey !== _p.styleKey;\n };\n styfn$8.clearStyleHints = function (ele) {\n var _p = ele._private;\n _p.styleCxtKey = '';\n _p.styleKeys = {};\n _p.styleKey = null;\n _p.labelKey = null;\n _p.labelStyleKey = null;\n _p.sourceLabelKey = null;\n _p.sourceLabelStyleKey = null;\n _p.targetLabelKey = null;\n _p.targetLabelStyleKey = null;\n _p.nodeKey = null;\n _p.hasPie = null;\n };\n\n // apply a property to the style (for internal use)\n // returns whether application was successful\n //\n // now, this function flattens the property, and here's how:\n //\n // for parsedProp:{ bypass: true, deleteBypass: true }\n // no property is generated, instead the bypass property in the\n // element's style is replaced by what's pointed to by the `bypassed`\n // field in the bypass property (i.e. restoring the property the\n // bypass was overriding)\n //\n // for parsedProp:{ mapped: truthy }\n // the generated flattenedProp:{ mapping: prop }\n //\n // for parsedProp:{ bypass: true }\n // the generated flattenedProp:{ bypassed: parsedProp }\n styfn$8.applyParsedProperty = function (ele, parsedProp) {\n var self = this;\n var prop = parsedProp;\n var style = ele._private.style;\n var flatProp;\n var types = self.types;\n var type = self.properties[prop.name].type;\n var propIsBypass = prop.bypass;\n var origProp = style[prop.name];\n var origPropIsBypass = origProp && origProp.bypass;\n var _p = ele._private;\n var flatPropMapping = 'mapping';\n var getVal = function getVal(p) {\n if (p == null) {\n return null;\n } else if (p.pfValue != null) {\n return p.pfValue;\n } else {\n return p.value;\n }\n };\n var checkTriggers = function checkTriggers() {\n var fromVal = getVal(origProp);\n var toVal = getVal(prop);\n self.checkTriggers(ele, prop.name, fromVal, toVal);\n };\n if (prop && prop.name.substr(0, 3) === 'pie') {\n warn('The pie style properties are deprecated. Create charts using background images instead.');\n }\n\n // edge sanity checks to prevent the client from making serious mistakes\n if (parsedProp.name === 'curve-style' && ele.isEdge() && (\n // loops must be bundled beziers\n parsedProp.value !== 'bezier' && ele.isLoop() ||\n // edges connected to compound nodes can not be haystacks\n parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) {\n prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass);\n }\n if (prop[\"delete\"]) {\n // delete the property and use the default value on falsey value\n style[prop.name] = undefined;\n checkTriggers();\n return true;\n }\n if (prop.deleteBypassed) {\n // delete the property that the\n if (!origProp) {\n checkTriggers();\n return true; // can't delete if no prop\n } else if (origProp.bypass) {\n // delete bypassed\n origProp.bypassed = undefined;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypassed\n }\n }\n\n // check if we need to delete the current bypass\n if (prop.deleteBypass) {\n // then this property is just here to indicate we need to delete\n if (!origProp) {\n checkTriggers();\n return true; // property is already not defined\n } else if (origProp.bypass) {\n // then replace the bypass property with the original\n // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary)\n style[prop.name] = origProp.bypassed;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypass\n }\n }\n\n var printMappingErr = function printMappingErr() {\n warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined');\n };\n\n // put the property in the style objects\n switch (prop.mapped) {\n // flatten the property if mapped\n case types.mapData:\n {\n // flatten the field (e.g. data.foo.bar)\n var fields = prop.field.split('.');\n var fieldVal = _p.data;\n for (var i = 0; i < fields.length && fieldVal; i++) {\n var field = fields[i];\n fieldVal = fieldVal[field];\n }\n if (fieldVal == null) {\n printMappingErr();\n return false;\n }\n var percent;\n if (!number$1(fieldVal)) {\n // then don't apply and fall back on the existing style\n warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)');\n return false;\n } else {\n var fieldWidth = prop.fieldMax - prop.fieldMin;\n if (fieldWidth === 0) {\n // safety check -- not strictly necessary as no props of zero range should be passed here\n percent = 0;\n } else {\n percent = (fieldVal - prop.fieldMin) / fieldWidth;\n }\n }\n\n // make sure to bound percent value\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (type.color) {\n var r1 = prop.valueMin[0];\n var r2 = prop.valueMax[0];\n var g1 = prop.valueMin[1];\n var g2 = prop.valueMax[1];\n var b1 = prop.valueMin[2];\n var b2 = prop.valueMax[2];\n var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];\n var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];\n var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];\n flatProp = {\n // colours are simple, so just create the flat property instead of expensive string parsing\n bypass: prop.bypass,\n // we're a bypass if the mapping property is a bypass\n name: prop.name,\n value: clr,\n strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')'\n };\n } else if (type.number) {\n var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;\n flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);\n } else {\n return false; // can only map to colours and numbers\n }\n\n if (!flatProp) {\n // if we can't flatten the property, then don't apply the property and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n\n // direct mapping\n case types.data:\n {\n // flatten the field (e.g. data.foo.bar)\n var _fields = prop.field.split('.');\n var _fieldVal = _p.data;\n for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {\n var _field = _fields[_i3];\n _fieldVal = _fieldVal[_field];\n }\n if (_fieldVal != null) {\n flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);\n }\n if (!flatProp) {\n // if we can't flatten the property, then don't apply and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case types.fn:\n {\n var fn = prop.value;\n var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function\n\n prop.prevFnValue = fnRetVal;\n if (fnRetVal == null) {\n warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)');\n return false;\n }\n flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);\n if (!flatProp) {\n warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)');\n return false;\n }\n flatProp.mapping = copy(prop); // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case undefined:\n break;\n // just set the property\n\n default:\n return false;\n // not a valid mapping\n }\n\n // if the property is a bypass property, then link the resultant property to the original one\n if (propIsBypass) {\n if (origPropIsBypass) {\n // then this bypass overrides the existing one\n prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass\n } else {\n // then link the orig prop to the new bypass\n prop.bypassed = origProp;\n }\n style[prop.name] = prop; // and set\n } else {\n // prop is not bypass\n if (origPropIsBypass) {\n // then keep the orig prop (since it's a bypass) and link to the new prop\n origProp.bypassed = prop;\n } else {\n // then just replace the old prop with the new one\n style[prop.name] = prop;\n }\n }\n checkTriggers();\n return true;\n };\n styfn$8.cleanElements = function (eles, keepBypasses) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n this.clearStyleHints(ele);\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n if (!keepBypasses) {\n ele._private.style = {};\n } else {\n var style = ele._private.style;\n var propNames = Object.keys(style);\n for (var j = 0; j < propNames.length; j++) {\n var propName = propNames[j];\n var eleProp = style[propName];\n if (eleProp != null) {\n if (eleProp.bypass) {\n eleProp.bypassed = null;\n } else {\n style[propName] = null;\n }\n }\n }\n }\n }\n };\n\n // updates the visual style for all elements (useful for manual style modification after init)\n styfn$8.update = function () {\n var cy = this._private.cy;\n var eles = cy.mutableElements();\n eles.updateStyle();\n };\n\n // diffProps : { name => { prev, next } }\n styfn$8.updateTransitions = function (ele, diffProps) {\n var self = this;\n var _p = ele._private;\n var props = ele.pstyle('transition-property').value;\n var duration = ele.pstyle('transition-duration').pfValue;\n var delay = ele.pstyle('transition-delay').pfValue;\n if (props.length > 0 && duration > 0) {\n var style = {};\n\n // build up the style to animate towards\n var anyPrev = false;\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var styProp = ele.pstyle(prop);\n var diffProp = diffProps[prop];\n if (!diffProp) {\n continue;\n }\n var prevProp = diffProp.prev;\n var fromProp = prevProp;\n var toProp = diffProp.next != null ? diffProp.next : styProp;\n var diff = false;\n var initVal = void 0;\n var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity)\n\n if (!fromProp) {\n continue;\n }\n\n // consider px values\n if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {\n diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy\n initVal = fromProp.pfValue + initDt * diff;\n\n // consider numerical values\n } else if (number$1(fromProp.value) && number$1(toProp.value)) {\n diff = toProp.value - fromProp.value; // nonzero is truthy\n initVal = fromProp.value + initDt * diff;\n\n // consider colour values\n } else if (array(fromProp.value) && array(toProp.value)) {\n diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];\n initVal = fromProp.strValue;\n }\n\n // the previous value is good for an animation only if it's different\n if (diff) {\n style[prop] = toProp.strValue; // to val\n this.applyBypass(ele, prop, initVal); // from val\n anyPrev = true;\n }\n } // end if props allow ani\n\n // can't transition if there's nothing previous to transition from\n if (!anyPrev) {\n return;\n }\n _p.transitioning = true;\n new Promise$1(function (resolve) {\n if (delay > 0) {\n ele.delayAnimation(delay).play().promise().then(resolve);\n } else {\n resolve();\n }\n }).then(function () {\n return ele.animation({\n style: style,\n duration: duration,\n easing: ele.pstyle('transition-timing-function').value,\n queue: false\n }).play().promise();\n }).then(function () {\n // if( !isBypass ){\n self.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n // }\n\n _p.transitioning = false;\n });\n } else if (_p.transitioning) {\n this.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n _p.transitioning = false;\n }\n };\n styfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) {\n var prop = this.properties[name];\n var triggerCheck = getTrigger(prop);\n if (triggerCheck != null && triggerCheck(fromValue, toValue)) {\n onTrigger(prop);\n }\n };\n styfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) {\n var _this = this;\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersZOrder;\n }, function () {\n _this._private.cy.notify('zorder', ele);\n });\n };\n styfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBounds;\n }, function (prop) {\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n\n // if the prop change makes the bb of pll bezier edges invalid,\n // then dirty the pll edge bb cache as well\n if (\n // only for beziers -- so performance of other edges isn't affected\n prop.triggersBoundsOfParallelBeziers && (name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier') || name === 'display' && (fromValue === 'none' || toValue === 'none'))) {\n ele.parallelEdges().forEach(function (pllEdge) {\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n });\n }\n });\n };\n styfn$8.checkTriggers = function (ele, name, fromValue, toValue) {\n ele.dirtyStyleCache();\n this.checkZOrderTrigger(ele, name, fromValue, toValue);\n this.checkBoundsTrigger(ele, name, fromValue, toValue);\n };\n\n var styfn$7 = {};\n\n // bypasses are applied to an existing style on an element, and just tacked on temporarily\n // returns true iff application was successful for at least 1 specified property\n styfn$7.applyBypass = function (eles, name, value, updateTransitions) {\n var self = this;\n var props = [];\n var isBypass = true;\n\n // put all the properties (can specify one or many) in an array after parsing them\n if (name === '*' || name === '**') {\n // apply to all property names\n\n if (value !== undefined) {\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var _name = prop.name;\n var parsedProp = this.parse(_name, value, true);\n if (parsedProp) {\n props.push(parsedProp);\n }\n }\n }\n } else if (string(name)) {\n // then parse the single property\n var _parsedProp = this.parse(name, value, true);\n if (_parsedProp) {\n props.push(_parsedProp);\n }\n } else if (plainObject(name)) {\n // then parse each property\n var specifiedProps = name;\n updateTransitions = value;\n var names = Object.keys(specifiedProps);\n for (var _i = 0; _i < names.length; _i++) {\n var _name2 = names[_i];\n var _value = specifiedProps[_name2];\n if (_value === undefined) {\n // try camel case name too\n _value = specifiedProps[dash2camel(_name2)];\n }\n if (_value !== undefined) {\n var _parsedProp2 = this.parse(_name2, _value, true);\n if (_parsedProp2) {\n props.push(_parsedProp2);\n }\n }\n }\n } else {\n // can't do anything without well defined properties\n return false;\n }\n\n // we've failed if there are no valid properties\n if (props.length === 0) {\n return false;\n }\n\n // now, apply the bypass properties on the elements\n var ret = false; // return true if at least one succesful bypass applied\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n // for each ele\n var ele = eles[_i2];\n var diffProps = {};\n var diffProp = void 0;\n for (var j = 0; j < props.length; j++) {\n // for each prop\n var _prop = props[j];\n if (updateTransitions) {\n var prevProp = ele.pstyle(_prop.name);\n diffProp = diffProps[_prop.name] = {\n prev: prevProp\n };\n }\n ret = this.applyParsedProperty(ele, copy(_prop)) || ret;\n if (updateTransitions) {\n diffProp.next = ele.pstyle(_prop.name);\n }\n } // for props\n\n if (ret) {\n this.updateStyleHints(ele);\n }\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n\n return ret;\n };\n\n // only useful in specific cases like animation\n styfn$7.overrideBypass = function (eles, name, value) {\n name = camel2dash(name);\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var prop = ele._private.style[name];\n var type = this.properties[name].type;\n var isColor = type.color;\n var isMulti = type.mutiple;\n var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;\n if (!prop || !prop.bypass) {\n // need a bypass if one doesn't exist\n this.applyBypass(ele, name, value);\n } else {\n prop.value = value;\n if (prop.pfValue != null) {\n prop.pfValue = value;\n }\n if (isColor) {\n prop.strValue = 'rgb(' + value.join(',') + ')';\n } else if (isMulti) {\n prop.strValue = value.join(' ');\n } else {\n prop.strValue = '' + value;\n }\n this.updateStyleHints(ele);\n }\n this.checkTriggers(ele, name, oldValue, value);\n }\n };\n styfn$7.removeAllBypasses = function (eles, updateTransitions) {\n return this.removeBypasses(eles, this.propertyNames, updateTransitions);\n };\n styfn$7.removeBypasses = function (eles, props, updateTransitions) {\n var isBypass = true;\n for (var j = 0; j < eles.length; j++) {\n var ele = eles[j];\n var diffProps = {};\n for (var i = 0; i < props.length; i++) {\n var name = props[i];\n var prop = this.properties[name];\n var prevProp = ele.pstyle(prop.name);\n if (!prevProp || !prevProp.bypass) {\n // if a bypass doesn't exist for the prop, nothing needs to be removed\n continue;\n }\n var value = ''; // empty => remove bypass\n var parsedProp = this.parse(name, value, true);\n var diffProp = diffProps[prop.name] = {\n prev: prevProp\n };\n this.applyParsedProperty(ele, parsedProp);\n diffProp.next = ele.pstyle(prop.name);\n } // for props\n\n this.updateStyleHints(ele);\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n };\n\n var styfn$6 = {};\n\n // gets what an em size corresponds to in pixels relative to a dom element\n styfn$6.getEmSizeInPixels = function () {\n var px = this.containerCss('font-size');\n if (px != null) {\n return parseFloat(px);\n } else {\n return 1; // for headless\n }\n };\n\n // gets css property from the core container\n styfn$6.containerCss = function (propName) {\n var cy = this._private.cy;\n var domElement = cy.container();\n var containerWindow = cy.window();\n if (containerWindow && domElement && containerWindow.getComputedStyle) {\n return containerWindow.getComputedStyle(domElement).getPropertyValue(propName);\n }\n };\n\n var styfn$5 = {};\n\n // gets the rendered style for an element\n styfn$5.getRenderedStyle = function (ele, prop) {\n if (prop) {\n return this.getStylePropertyValue(ele, prop, true);\n } else {\n return this.getRawStyle(ele, true);\n }\n };\n\n // gets the raw style for an element\n styfn$5.getRawStyle = function (ele, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var rstyle = {};\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal);\n if (val != null) {\n rstyle[prop.name] = val;\n rstyle[dash2camel(prop.name)] = val;\n }\n }\n return rstyle;\n }\n };\n styfn$5.getIndexedStyle = function (ele, property, subproperty, index) {\n var pstyle = ele.pstyle(property)[subproperty][index];\n return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0];\n };\n styfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var prop = self.properties[propName];\n if (prop.alias) {\n prop = prop.pointsTo;\n }\n var type = prop.type;\n var styleProp = ele.pstyle(prop.name);\n if (styleProp) {\n var value = styleProp.value,\n units = styleProp.units,\n strValue = styleProp.strValue;\n if (isRenderedVal && type.number && value != null && number$1(value)) {\n var zoom = ele.cy().zoom();\n var getRenderedValue = function getRenderedValue(val) {\n return val * zoom;\n };\n var getValueStringWithUnits = function getValueStringWithUnits(val, units) {\n return getRenderedValue(val) + units;\n };\n var isArrayValue = array(value);\n var haveUnits = isArrayValue ? units.every(function (u) {\n return u != null;\n }) : units != null;\n if (haveUnits) {\n if (isArrayValue) {\n return value.map(function (v, i) {\n return getValueStringWithUnits(v, units[i]);\n }).join(' ');\n } else {\n return getValueStringWithUnits(value, units);\n }\n } else {\n if (isArrayValue) {\n return value.map(function (v) {\n return string(v) ? v : '' + getRenderedValue(v);\n }).join(' ');\n } else {\n return '' + getRenderedValue(value);\n }\n }\n } else if (strValue != null) {\n return strValue;\n }\n }\n return null;\n }\n };\n styfn$5.getAnimationStartStyle = function (ele, aniProps) {\n var rstyle = {};\n for (var i = 0; i < aniProps.length; i++) {\n var aniProp = aniProps[i];\n var name = aniProp.name;\n var styleProp = ele.pstyle(name);\n if (styleProp !== undefined) {\n // then make a prop of it\n if (plainObject(styleProp)) {\n styleProp = this.parse(name, styleProp.strValue);\n } else {\n styleProp = this.parse(name, styleProp);\n }\n }\n if (styleProp) {\n rstyle[name] = styleProp;\n }\n }\n return rstyle;\n };\n styfn$5.getPropsList = function (propsObj) {\n var self = this;\n var rstyle = [];\n var style = propsObj;\n var props = self.properties;\n if (style) {\n var names = Object.keys(style);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var val = style[name];\n var prop = props[name] || props[camel2dash(name)];\n var styleProp = this.parse(prop.name, val);\n if (styleProp) {\n rstyle.push(styleProp);\n }\n }\n }\n return rstyle;\n };\n styfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) {\n var hash = seed.slice();\n var name, val, strVal, chVal;\n var i, j;\n for (i = 0; i < propNames.length; i++) {\n name = propNames[i];\n val = ele.pstyle(name, false);\n if (val == null) {\n continue;\n } else if (val.pfValue != null) {\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n } else {\n strVal = val.strValue;\n for (j = 0; j < strVal.length; j++) {\n chVal = strVal.charCodeAt(j);\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n }\n }\n }\n return hash;\n };\n styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;\n\n var styfn$4 = {};\n styfn$4.appendFromJson = function (json) {\n var style = this;\n for (var i = 0; i < json.length; i++) {\n var context = json[i];\n var selector = context.selector;\n var props = context.style || context.css;\n var names = Object.keys(props);\n style.selector(selector); // apply selector\n\n for (var j = 0; j < names.length; j++) {\n var name = names[j];\n var value = props[name];\n style.css(name, value); // apply property\n }\n }\n\n return style;\n };\n\n // accessible cy.style() function\n styfn$4.fromJson = function (json) {\n var style = this;\n style.resetToDefault();\n style.appendFromJson(json);\n return style;\n };\n\n // get json from cy.style() api\n styfn$4.json = function () {\n var json = [];\n for (var i = this.defaultLength; i < this.length; i++) {\n var cxt = this[i];\n var selector = cxt.selector;\n var props = cxt.properties;\n var css = {};\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n css[prop.name] = prop.strValue;\n }\n json.push({\n selector: !selector ? 'core' : selector.toString(),\n style: css\n });\n }\n return json;\n };\n\n var styfn$3 = {};\n styfn$3.appendFromString = function (string) {\n var self = this;\n var style = this;\n var remaining = '' + string;\n var selAndBlockStr;\n var blockRem;\n var propAndValStr;\n\n // remove comments from the style string\n remaining = remaining.replace(/[/][*](\\s|.)+?[*][/]/g, '');\n function removeSelAndBlockFromRemaining() {\n // remove the parsed selector and block from the remaining text to parse\n if (remaining.length > selAndBlockStr.length) {\n remaining = remaining.substr(selAndBlockStr.length);\n } else {\n remaining = '';\n }\n }\n function removePropAndValFromRem() {\n // remove the parsed property and value from the remaining block text to parse\n if (blockRem.length > propAndValStr.length) {\n blockRem = blockRem.substr(propAndValStr.length);\n } else {\n blockRem = '';\n }\n }\n for (;;) {\n var nothingLeftToParse = remaining.match(/^\\s*$/);\n if (nothingLeftToParse) {\n break;\n }\n var selAndBlock = remaining.match(/^\\s*((?:.|\\s)+?)\\s*\\{((?:.|\\s)+?)\\}/);\n if (!selAndBlock) {\n warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining);\n break;\n }\n selAndBlockStr = selAndBlock[0];\n\n // parse the selector\n var selectorStr = selAndBlock[1];\n if (selectorStr !== 'core') {\n var selector = new Selector(selectorStr);\n if (selector.invalid) {\n warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr);\n\n // skip this selector and block\n removeSelAndBlockFromRemaining();\n continue;\n }\n }\n\n // parse the block of properties and values\n var blockStr = selAndBlock[2];\n var invalidBlock = false;\n blockRem = blockStr;\n var props = [];\n for (;;) {\n var _nothingLeftToParse = blockRem.match(/^\\s*$/);\n if (_nothingLeftToParse) {\n break;\n }\n var propAndVal = blockRem.match(/^\\s*(.+?)\\s*:\\s*(.+?)(?:\\s*;|\\s*$)/);\n if (!propAndVal) {\n warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr);\n invalidBlock = true;\n break;\n }\n propAndValStr = propAndVal[0];\n var propStr = propAndVal[1];\n var valStr = propAndVal[2];\n var prop = self.properties[propStr];\n if (!prop) {\n warn('Skipping property: Invalid property name in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n var parsedProp = style.parse(propStr, valStr);\n if (!parsedProp) {\n warn('Skipping property: Invalid property definition in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n props.push({\n name: propStr,\n val: valStr\n });\n removePropAndValFromRem();\n }\n if (invalidBlock) {\n removeSelAndBlockFromRemaining();\n break;\n }\n\n // put the parsed block in the style\n style.selector(selectorStr);\n for (var i = 0; i < props.length; i++) {\n var _prop = props[i];\n style.css(_prop.name, _prop.val);\n }\n removeSelAndBlockFromRemaining();\n }\n return style;\n };\n styfn$3.fromString = function (string) {\n var style = this;\n style.resetToDefault();\n style.appendFromString(string);\n return style;\n };\n\n var styfn$2 = {};\n (function () {\n var number$1 = number;\n var rgba = rgbaNoBackRefs;\n var hsla = hslaNoBackRefs;\n var hex3$1 = hex3;\n var hex6$1 = hex6;\n var data = function data(prefix) {\n return '^' + prefix + '\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)$';\n };\n var mapData = function mapData(prefix) {\n var mapArg = number$1 + '|\\\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1;\n return '^' + prefix + '\\\\s*\\\\(([\\\\w\\\\.]+)\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + mapArg + ')\\\\s*\\\\,\\\\s*(' + mapArg + ')\\\\)$';\n };\n var urlRegexes = ['^url\\\\s*\\\\(\\\\s*[\\'\"]?(.+?)[\\'\"]?\\\\s*\\\\)$', '^(none)$', '^(.+)$'];\n\n // each visual style property has a type and needs to be validated according to it\n styfn$2.types = {\n time: {\n number: true,\n min: 0,\n units: 's|ms',\n implicitUnits: 'ms'\n },\n percent: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%'\n },\n percentages: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%',\n multiple: true\n },\n zeroOneNumber: {\n number: true,\n min: 0,\n max: 1,\n unitless: true\n },\n zeroOneNumbers: {\n number: true,\n min: 0,\n max: 1,\n unitless: true,\n multiple: true\n },\n nOneOneNumber: {\n number: true,\n min: -1,\n max: 1,\n unitless: true\n },\n nonNegativeInt: {\n number: true,\n min: 0,\n integer: true,\n unitless: true\n },\n nonNegativeNumber: {\n number: true,\n min: 0,\n unitless: true\n },\n position: {\n enums: ['parent', 'origin']\n },\n nodeSize: {\n number: true,\n min: 0,\n enums: ['label']\n },\n number: {\n number: true,\n unitless: true\n },\n numbers: {\n number: true,\n unitless: true,\n multiple: true\n },\n positiveNumber: {\n number: true,\n unitless: true,\n min: 0,\n strictMin: true\n },\n size: {\n number: true,\n min: 0\n },\n bidirectionalSize: {\n number: true\n },\n // allows negative\n bidirectionalSizeMaybePercent: {\n number: true,\n allowPercent: true\n },\n // allows negative\n bidirectionalSizes: {\n number: true,\n multiple: true\n },\n // allows negative\n sizeMaybePercent: {\n number: true,\n min: 0,\n allowPercent: true\n },\n axisDirection: {\n enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto']\n },\n paddingRelativeTo: {\n enums: ['width', 'height', 'average', 'min', 'max']\n },\n bgWH: {\n number: true,\n min: 0,\n allowPercent: true,\n enums: ['auto'],\n multiple: true\n },\n bgPos: {\n number: true,\n allowPercent: true,\n multiple: true\n },\n bgRelativeTo: {\n enums: ['inner', 'include-padding'],\n multiple: true\n },\n bgRepeat: {\n enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'],\n multiple: true\n },\n bgFit: {\n enums: ['none', 'contain', 'cover'],\n multiple: true\n },\n bgCrossOrigin: {\n enums: ['anonymous', 'use-credentials', 'null'],\n multiple: true\n },\n bgClip: {\n enums: ['none', 'node'],\n multiple: true\n },\n bgContainment: {\n enums: ['inside', 'over'],\n multiple: true\n },\n color: {\n color: true\n },\n colors: {\n color: true,\n multiple: true\n },\n fill: {\n enums: ['solid', 'linear-gradient', 'radial-gradient']\n },\n bool: {\n enums: ['yes', 'no']\n },\n bools: {\n enums: ['yes', 'no'],\n multiple: true\n },\n lineStyle: {\n enums: ['solid', 'dotted', 'dashed']\n },\n lineCap: {\n enums: ['butt', 'round', 'square']\n },\n borderStyle: {\n enums: ['solid', 'dotted', 'dashed', 'double']\n },\n curveStyle: {\n enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi']\n },\n fontFamily: {\n regex: '^([\\\\w- \\\\\"]+(?:\\\\s*,\\\\s*[\\\\w- \\\\\"]+)*)$'\n },\n fontStyle: {\n enums: ['italic', 'normal', 'oblique']\n },\n fontWeight: {\n enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900]\n },\n textDecoration: {\n enums: ['none', 'underline', 'overline', 'line-through']\n },\n textTransform: {\n enums: ['none', 'uppercase', 'lowercase']\n },\n textWrap: {\n enums: ['none', 'wrap', 'ellipsis']\n },\n textOverflowWrap: {\n enums: ['whitespace', 'anywhere']\n },\n textBackgroundShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle']\n },\n nodeShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon']\n },\n overlayShape: {\n enums: ['roundrectangle', 'round-rectangle', 'ellipse']\n },\n compoundIncludeLabels: {\n enums: ['include', 'exclude']\n },\n arrowShape: {\n enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none']\n },\n arrowFill: {\n enums: ['filled', 'hollow']\n },\n display: {\n enums: ['element', 'none']\n },\n visibility: {\n enums: ['hidden', 'visible']\n },\n zCompoundDepth: {\n enums: ['bottom', 'orphan', 'auto', 'top']\n },\n zIndexCompare: {\n enums: ['auto', 'manual']\n },\n valign: {\n enums: ['top', 'center', 'bottom']\n },\n halign: {\n enums: ['left', 'center', 'right']\n },\n justification: {\n enums: ['left', 'center', 'right', 'auto']\n },\n text: {\n string: true\n },\n data: {\n mapping: true,\n regex: data('data')\n },\n layoutData: {\n mapping: true,\n regex: data('layoutData')\n },\n scratch: {\n mapping: true,\n regex: data('scratch')\n },\n mapData: {\n mapping: true,\n regex: mapData('mapData')\n },\n mapLayoutData: {\n mapping: true,\n regex: mapData('mapLayoutData')\n },\n mapScratch: {\n mapping: true,\n regex: mapData('mapScratch')\n },\n fn: {\n mapping: true,\n fn: true\n },\n url: {\n regexes: urlRegexes,\n singleRegexMatchValue: true\n },\n urls: {\n regexes: urlRegexes,\n singleRegexMatchValue: true,\n multiple: true\n },\n propList: {\n propList: true\n },\n angle: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad'\n },\n textRotation: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad',\n enums: ['none', 'autorotate']\n },\n polygonPointList: {\n number: true,\n multiple: true,\n evenMultiple: true,\n min: -1,\n max: 1,\n unitless: true\n },\n edgeDistances: {\n enums: ['intersection', 'node-position', 'endpoints']\n },\n edgeEndpoint: {\n number: true,\n multiple: true,\n units: '%|px|em|deg|rad',\n implicitUnits: 'px',\n enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'],\n singleEnum: true,\n validate: function validate(valArr, unitsArr) {\n switch (valArr.length) {\n case 2:\n // can be % or px only\n return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad';\n case 1:\n // can be enum, deg, or rad only\n return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad';\n default:\n return false;\n }\n }\n },\n easing: {\n regexes: ['^(spring)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$', '^(cubic-bezier)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$'],\n enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ']\n },\n gradientDirection: {\n enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order\n ]\n },\n\n boundsExpansion: {\n number: true,\n multiple: true,\n min: 0,\n validate: function validate(valArr) {\n var length = valArr.length;\n return length === 1 || length === 2 || length === 4;\n }\n }\n };\n var diff = {\n zeroNonZero: function zeroNonZero(val1, val2) {\n if ((val1 == null || val2 == null) && val1 !== val2) {\n return true; // null cases could represent any value\n }\n if (val1 == 0 && val2 != 0) {\n return true;\n } else if (val1 != 0 && val2 == 0) {\n return true;\n } else {\n return false;\n }\n },\n any: function any(val1, val2) {\n return val1 != val2;\n },\n emptyNonEmpty: function emptyNonEmpty(str1, str2) {\n var empty1 = emptyString(str1);\n var empty2 = emptyString(str2);\n return empty1 && !empty2 || !empty1 && empty2;\n }\n };\n\n // define visual style properties\n //\n // - n.b. adding a new group of props may require updates to updateStyleHints()\n // - adding new props to an existing group gets handled automatically\n\n var t = styfn$2.types;\n var mainLabel = [{\n name: 'label',\n type: t.text,\n triggersBounds: diff.any,\n triggersZOrder: diff.emptyNonEmpty\n }, {\n name: 'text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }];\n var sourceLabel = [{\n name: 'source-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'source-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var targetLabel = [{\n name: 'target-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'target-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var labelDimensions = [{\n name: 'font-family',\n type: t.fontFamily,\n triggersBounds: diff.any\n }, {\n name: 'font-style',\n type: t.fontStyle,\n triggersBounds: diff.any\n }, {\n name: 'font-weight',\n type: t.fontWeight,\n triggersBounds: diff.any\n }, {\n name: 'font-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-transform',\n type: t.textTransform,\n triggersBounds: diff.any\n }, {\n name: 'text-wrap',\n type: t.textWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-overflow-wrap',\n type: t.textOverflowWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-max-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'line-height',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }];\n var commonLabel = [{\n name: 'text-valign',\n type: t.valign,\n triggersBounds: diff.any\n }, {\n name: 'text-halign',\n type: t.halign,\n triggersBounds: diff.any\n }, {\n name: 'color',\n type: t.color\n }, {\n name: 'text-outline-color',\n type: t.color\n }, {\n name: 'text-outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-color',\n type: t.color\n }, {\n name: 'text-background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-border-color',\n type: t.color\n }, {\n name: 'text-border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-style',\n type: t.borderStyle,\n triggersBounds: diff.any\n }, {\n name: 'text-background-shape',\n type: t.textBackgroundShape,\n triggersBounds: diff.any\n }, {\n name: 'text-justification',\n type: t.justification\n }];\n var behavior = [{\n name: 'events',\n type: t.bool,\n triggersZOrder: diff.any\n }, {\n name: 'text-events',\n type: t.bool,\n triggersZOrder: diff.any\n }];\n var visibility = [{\n name: 'display',\n type: t.display,\n triggersZOrder: diff.any,\n triggersBounds: diff.any,\n triggersBoundsOfParallelBeziers: true\n }, {\n name: 'visibility',\n type: t.visibility,\n triggersZOrder: diff.any\n }, {\n name: 'opacity',\n type: t.zeroOneNumber,\n triggersZOrder: diff.zeroNonZero\n }, {\n name: 'text-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'min-zoomed-font-size',\n type: t.size\n }, {\n name: 'z-compound-depth',\n type: t.zCompoundDepth,\n triggersZOrder: diff.any\n }, {\n name: 'z-index-compare',\n type: t.zIndexCompare,\n triggersZOrder: diff.any\n }, {\n name: 'z-index',\n type: t.number,\n triggersZOrder: diff.any\n }];\n var overlay = [{\n name: 'overlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'overlay-color',\n type: t.color\n }, {\n name: 'overlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'overlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }];\n var underlay = [{\n name: 'underlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'underlay-color',\n type: t.color\n }, {\n name: 'underlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'underlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }];\n var transition = [{\n name: 'transition-property',\n type: t.propList\n }, {\n name: 'transition-duration',\n type: t.time\n }, {\n name: 'transition-delay',\n type: t.time\n }, {\n name: 'transition-timing-function',\n type: t.easing\n }];\n var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) {\n if (parsedProp.value === 'label') {\n return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway)\n } else {\n return parsedProp.pfValue;\n }\n };\n var nodeBody = [{\n name: 'height',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'width',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'shape',\n type: t.nodeShape,\n triggersBounds: diff.any\n }, {\n name: 'shape-polygon-points',\n type: t.polygonPointList,\n triggersBounds: diff.any\n }, {\n name: 'background-color',\n type: t.color\n }, {\n name: 'background-fill',\n type: t.fill\n }, {\n name: 'background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'background-blacken',\n type: t.nOneOneNumber\n }, {\n name: 'background-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'background-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'background-gradient-direction',\n type: t.gradientDirection\n }, {\n name: 'padding',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'padding-relative-to',\n type: t.paddingRelativeTo,\n triggersBounds: diff.any\n }, {\n name: 'bounds-expansion',\n type: t.boundsExpansion,\n triggersBounds: diff.any\n }];\n var nodeBorder = [{\n name: 'border-color',\n type: t.color\n }, {\n name: 'border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'border-style',\n type: t.borderStyle\n }];\n var backgroundImage = [{\n name: 'background-image',\n type: t.urls\n }, {\n name: 'background-image-crossorigin',\n type: t.bgCrossOrigin\n }, {\n name: 'background-image-opacity',\n type: t.zeroOneNumbers\n }, {\n name: 'background-image-containment',\n type: t.bgContainment\n }, {\n name: 'background-image-smoothing',\n type: t.bools\n }, {\n name: 'background-position-x',\n type: t.bgPos\n }, {\n name: 'background-position-y',\n type: t.bgPos\n }, {\n name: 'background-width-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-height-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-repeat',\n type: t.bgRepeat\n }, {\n name: 'background-fit',\n type: t.bgFit\n }, {\n name: 'background-clip',\n type: t.bgClip\n }, {\n name: 'background-width',\n type: t.bgWH\n }, {\n name: 'background-height',\n type: t.bgWH\n }, {\n name: 'background-offset-x',\n type: t.bgPos\n }, {\n name: 'background-offset-y',\n type: t.bgPos\n }];\n var compound = [{\n name: 'position',\n type: t.position,\n triggersBounds: diff.any\n }, {\n name: 'compound-sizing-wrt-labels',\n type: t.compoundIncludeLabels,\n triggersBounds: diff.any\n }, {\n name: 'min-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-left',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-right',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-top',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-bottom',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }];\n var edgeLine = [{\n name: 'line-style',\n type: t.lineStyle\n }, {\n name: 'line-color',\n type: t.color\n }, {\n name: 'line-fill',\n type: t.fill\n }, {\n name: 'line-cap',\n type: t.lineCap\n }, {\n name: 'line-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'line-dash-pattern',\n type: t.numbers\n }, {\n name: 'line-dash-offset',\n type: t.number\n }, {\n name: 'line-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'line-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'curve-style',\n type: t.curveStyle,\n triggersBounds: diff.any,\n triggersBoundsOfParallelBeziers: true\n }, {\n name: 'haystack-radius',\n type: t.zeroOneNumber,\n triggersBounds: diff.any\n }, {\n name: 'source-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'target-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'control-point-step-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'control-point-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'control-point-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'segment-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn',\n type: t.bidirectionalSizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn-min-distance',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'taxi-direction',\n type: t.axisDirection,\n triggersBounds: diff.any\n }, {\n name: 'edge-distances',\n type: t.edgeDistances,\n triggersBounds: diff.any\n }, {\n name: 'arrow-scale',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }, {\n name: 'loop-direction',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'loop-sweep',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'source-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'target-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }];\n var ghost = [{\n name: 'ghost',\n type: t.bool,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-opacity',\n type: t.zeroOneNumber\n }];\n var core = [{\n name: 'selection-box-color',\n type: t.color\n }, {\n name: 'selection-box-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'selection-box-border-color',\n type: t.color\n }, {\n name: 'selection-box-border-width',\n type: t.size\n }, {\n name: 'active-bg-color',\n type: t.color\n }, {\n name: 'active-bg-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'active-bg-size',\n type: t.size\n }, {\n name: 'outside-texture-bg-color',\n type: t.color\n }, {\n name: 'outside-texture-bg-opacity',\n type: t.zeroOneNumber\n }];\n\n // pie backgrounds for nodes\n var pie = [];\n styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use)\n pie.push({\n name: 'pie-size',\n type: t.sizeMaybePercent\n });\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n pie.push({\n name: 'pie-' + i + '-background-color',\n type: t.color\n });\n pie.push({\n name: 'pie-' + i + '-background-size',\n type: t.percent\n });\n pie.push({\n name: 'pie-' + i + '-background-opacity',\n type: t.zeroOneNumber\n });\n }\n\n // edge arrows\n var edgeArrow = [];\n var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target'];\n [{\n name: 'arrow-shape',\n type: t.arrowShape,\n triggersBounds: diff.any\n }, {\n name: 'arrow-color',\n type: t.color\n }, {\n name: 'arrow-fill',\n type: t.arrowFill\n }].forEach(function (prop) {\n arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var type = prop.type,\n triggersBounds = prop.triggersBounds;\n edgeArrow.push({\n name: name,\n type: type,\n triggersBounds: triggersBounds\n });\n });\n }, {});\n var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie, compound, edgeLine, edgeArrow, core);\n var propGroups = styfn$2.propertyGroups = {\n // common to all eles\n behavior: behavior,\n transition: transition,\n visibility: visibility,\n overlay: overlay,\n underlay: underlay,\n ghost: ghost,\n // labels\n commonLabel: commonLabel,\n labelDimensions: labelDimensions,\n mainLabel: mainLabel,\n sourceLabel: sourceLabel,\n targetLabel: targetLabel,\n // node props\n nodeBody: nodeBody,\n nodeBorder: nodeBorder,\n backgroundImage: backgroundImage,\n pie: pie,\n compound: compound,\n // edge props\n edgeLine: edgeLine,\n edgeArrow: edgeArrow,\n core: core\n };\n var propGroupNames = styfn$2.propertyGroupNames = {};\n var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);\n propGroupKeys.forEach(function (key) {\n propGroupNames[key] = propGroups[key].map(function (prop) {\n return prop.name;\n });\n propGroups[key].forEach(function (prop) {\n return prop.groupKey = key;\n });\n });\n\n // define aliases\n var aliases = styfn$2.aliases = [{\n name: 'content',\n pointsTo: 'label'\n }, {\n name: 'control-point-distance',\n pointsTo: 'control-point-distances'\n }, {\n name: 'control-point-weight',\n pointsTo: 'control-point-weights'\n }, {\n name: 'edge-text-rotation',\n pointsTo: 'text-rotation'\n }, {\n name: 'padding-left',\n pointsTo: 'padding'\n }, {\n name: 'padding-right',\n pointsTo: 'padding'\n }, {\n name: 'padding-top',\n pointsTo: 'padding'\n }, {\n name: 'padding-bottom',\n pointsTo: 'padding'\n }];\n\n // list of property names\n styfn$2.propertyNames = props.map(function (p) {\n return p.name;\n });\n\n // allow access of properties by name ( e.g. style.properties.height )\n for (var _i = 0; _i < props.length; _i++) {\n var prop = props[_i];\n props[prop.name] = prop; // allow lookup by name\n }\n\n // map aliases\n for (var _i2 = 0; _i2 < aliases.length; _i2++) {\n var alias = aliases[_i2];\n var pointsToProp = props[alias.pointsTo];\n var aliasProp = {\n name: alias.name,\n alias: true,\n pointsTo: pointsToProp\n };\n\n // add alias prop for parsing\n props.push(aliasProp);\n props[alias.name] = aliasProp; // allow lookup by name\n }\n })();\n\n styfn$2.getDefaultProperty = function (name) {\n return this.getDefaultProperties()[name];\n };\n styfn$2.getDefaultProperties = function () {\n var _p = this._private;\n if (_p.defaultProperties != null) {\n return _p.defaultProperties;\n }\n var rawProps = extend({\n // core props\n 'selection-box-color': '#ddd',\n 'selection-box-opacity': 0.65,\n 'selection-box-border-color': '#aaa',\n 'selection-box-border-width': 1,\n 'active-bg-color': 'black',\n 'active-bg-opacity': 0.15,\n 'active-bg-size': 30,\n 'outside-texture-bg-color': '#000',\n 'outside-texture-bg-opacity': 0.125,\n // common node/edge props\n 'events': 'yes',\n 'text-events': 'no',\n 'text-valign': 'top',\n 'text-halign': 'center',\n 'text-justification': 'auto',\n 'line-height': 1,\n 'color': '#000',\n 'text-outline-color': '#000',\n 'text-outline-width': 0,\n 'text-outline-opacity': 1,\n 'text-opacity': 1,\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'text-wrap': 'none',\n 'text-overflow-wrap': 'whitespace',\n 'text-max-width': 9999,\n 'text-background-color': '#000',\n 'text-background-opacity': 0,\n 'text-background-shape': 'rectangle',\n 'text-background-padding': 0,\n 'text-border-opacity': 0,\n 'text-border-width': 0,\n 'text-border-style': 'solid',\n 'text-border-color': '#000',\n 'font-family': 'Helvetica Neue, Helvetica, sans-serif',\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': 16,\n 'min-zoomed-font-size': 0,\n 'text-rotation': 'none',\n 'source-text-rotation': 'none',\n 'target-text-rotation': 'none',\n 'visibility': 'visible',\n 'display': 'element',\n 'opacity': 1,\n 'z-compound-depth': 'auto',\n 'z-index-compare': 'auto',\n 'z-index': 0,\n 'label': '',\n 'text-margin-x': 0,\n 'text-margin-y': 0,\n 'source-label': '',\n 'source-text-offset': 0,\n 'source-text-margin-x': 0,\n 'source-text-margin-y': 0,\n 'target-label': '',\n 'target-text-offset': 0,\n 'target-text-margin-x': 0,\n 'target-text-margin-y': 0,\n 'overlay-opacity': 0,\n 'overlay-color': '#000',\n 'overlay-padding': 10,\n 'overlay-shape': 'round-rectangle',\n 'underlay-opacity': 0,\n 'underlay-color': '#000',\n 'underlay-padding': 10,\n 'underlay-shape': 'round-rectangle',\n 'transition-property': 'none',\n 'transition-duration': 0,\n 'transition-delay': 0,\n 'transition-timing-function': 'linear',\n // node props\n 'background-blacken': 0,\n 'background-color': '#999',\n 'background-fill': 'solid',\n 'background-opacity': 1,\n 'background-image': 'none',\n 'background-image-crossorigin': 'anonymous',\n 'background-image-opacity': 1,\n 'background-image-containment': 'inside',\n 'background-image-smoothing': 'yes',\n 'background-position-x': '50%',\n 'background-position-y': '50%',\n 'background-offset-x': 0,\n 'background-offset-y': 0,\n 'background-width-relative-to': 'include-padding',\n 'background-height-relative-to': 'include-padding',\n 'background-repeat': 'no-repeat',\n 'background-fit': 'none',\n 'background-clip': 'node',\n 'background-width': 'auto',\n 'background-height': 'auto',\n 'border-color': '#000',\n 'border-opacity': 1,\n 'border-width': 0,\n 'border-style': 'solid',\n 'height': 30,\n 'width': 30,\n 'shape': 'ellipse',\n 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1',\n 'bounds-expansion': 0,\n // node gradient\n 'background-gradient-direction': 'to-bottom',\n 'background-gradient-stop-colors': '#999',\n 'background-gradient-stop-positions': '0%',\n // ghost props\n 'ghost': 'no',\n 'ghost-offset-y': 0,\n 'ghost-offset-x': 0,\n 'ghost-opacity': 0,\n // compound props\n 'padding': 0,\n 'padding-relative-to': 'width',\n 'position': 'origin',\n 'compound-sizing-wrt-labels': 'include',\n 'min-width': 0,\n 'min-width-bias-left': 0,\n 'min-width-bias-right': 0,\n 'min-height': 0,\n 'min-height-bias-top': 0,\n 'min-height-bias-bottom': 0\n }, {\n // node pie bg\n 'pie-size': '100%'\n }, [{\n name: 'pie-{{i}}-background-color',\n value: 'black'\n }, {\n name: 'pie-{{i}}-background-size',\n value: '0%'\n }, {\n name: 'pie-{{i}}-background-opacity',\n value: 1\n }].reduce(function (css, prop) {\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n var name = prop.name.replace('{{i}}', i);\n var val = prop.value;\n css[name] = val;\n }\n return css;\n }, {}), {\n // edge props\n 'line-style': 'solid',\n 'line-color': '#999',\n 'line-fill': 'solid',\n 'line-cap': 'butt',\n 'line-opacity': 1,\n 'line-gradient-stop-colors': '#999',\n 'line-gradient-stop-positions': '0%',\n 'control-point-step-size': 40,\n 'control-point-weights': 0.5,\n 'segment-weights': 0.5,\n 'segment-distances': 20,\n 'taxi-turn': '50%',\n 'taxi-turn-min-distance': 10,\n 'taxi-direction': 'auto',\n 'edge-distances': 'intersection',\n 'curve-style': 'haystack',\n 'haystack-radius': 0,\n 'arrow-scale': 1,\n 'loop-direction': '-45deg',\n 'loop-sweep': '-90deg',\n 'source-distance-from-node': 0,\n 'target-distance-from-node': 0,\n 'source-endpoint': 'outside-to-node',\n 'target-endpoint': 'outside-to-node',\n 'line-dash-pattern': [6, 3],\n 'line-dash-offset': 0\n }, [{\n name: 'arrow-shape',\n value: 'none'\n }, {\n name: 'arrow-color',\n value: '#999'\n }, {\n name: 'arrow-fill',\n value: 'filled'\n }].reduce(function (css, prop) {\n styfn$2.arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var val = prop.value;\n css[name] = val;\n });\n return css;\n }, {}));\n var parsedProps = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n if (prop.pointsTo) {\n continue;\n }\n var name = prop.name;\n var val = rawProps[name];\n var parsedProp = this.parse(name, val);\n parsedProps[name] = parsedProp;\n }\n _p.defaultProperties = parsedProps;\n return _p.defaultProperties;\n };\n styfn$2.addDefaultStylesheet = function () {\n this.selector(':parent').css({\n 'shape': 'rectangle',\n 'padding': 10,\n 'background-color': '#eee',\n 'border-color': '#ccc',\n 'border-width': 1\n }).selector('edge').css({\n 'width': 3\n }).selector(':loop').css({\n 'curve-style': 'bezier'\n }).selector('edge:compound').css({\n 'curve-style': 'bezier',\n 'source-endpoint': 'outside-to-line',\n 'target-endpoint': 'outside-to-line'\n }).selector(':selected').css({\n 'background-color': '#0169D9',\n 'line-color': '#0169D9',\n 'source-arrow-color': '#0169D9',\n 'target-arrow-color': '#0169D9',\n 'mid-source-arrow-color': '#0169D9',\n 'mid-target-arrow-color': '#0169D9'\n }).selector(':parent:selected').css({\n 'background-color': '#CCE1F9',\n 'border-color': '#aec8e5'\n }).selector(':active').css({\n 'overlay-color': 'black',\n 'overlay-padding': 10,\n 'overlay-opacity': 0.25\n });\n this.defaultLength = this.length;\n };\n\n var styfn$1 = {};\n\n // a caching layer for property parsing\n styfn$1.parse = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n\n // function values can't be cached in all cases, and there isn't much benefit of caching them anyway\n if (fn$6(value)) {\n return self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat;\n var bypassKey = propIsBypass ? 't' : 'f';\n var valueKey = '' + value;\n var argHash = hashStrings(name, valueKey, bypassKey, flatKey);\n var propCache = self.propCache = self.propCache || [];\n var ret;\n if (!(ret = propCache[argHash])) {\n ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n\n // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden\n // - mappings can't be shared b/c mappings are per-element\n if (propIsBypass || propIsFlat === 'mapping') {\n // need a copy since props are mutated later in their lifecycles\n ret = copy(ret);\n if (ret) {\n ret.value = copy(ret.value); // because it could be an array, e.g. colour\n }\n }\n\n return ret;\n };\n styfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) {\n var prop = this.parseImpl(name, value, propIsBypass, propIsFlat);\n if (!prop && value != null) {\n warn(\"The style property `\".concat(name, \": \").concat(value, \"` is invalid\"));\n }\n if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') {\n warn('The style value of `label` is deprecated for `' + prop.name + '`');\n }\n return prop;\n };\n\n // parse a property; return null on invalid; return parsed property otherwise\n // fields :\n // - name : the name of the property\n // - value : the parsed, native-typed value of the property\n // - strValue : a string value that represents the property value in valid css\n // - bypass : true iff the property is a bypass property\n styfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName')\n\n var property = self.properties[name];\n var passedValue = value;\n var types = self.types;\n if (!property) {\n return null;\n } // return null on property of unknown name\n if (value === undefined) {\n return null;\n } // can't assign undefined\n\n // the property may be an alias\n if (property.alias) {\n property = property.pointsTo;\n name = property.name;\n }\n var valueIsString = string(value);\n if (valueIsString) {\n // trim the value to make parsing easier\n value = value.trim();\n }\n var type = property.type;\n if (!type) {\n return null;\n } // no type, no luck\n\n // check if bypass is null or empty string (i.e. indication to delete bypass property)\n if (propIsBypass && (value === '' || value === null)) {\n return {\n name: name,\n value: value,\n bypass: true,\n deleteBypass: true\n };\n }\n\n // check if value is a function used as a mapper\n if (fn$6(value)) {\n return {\n name: name,\n value: value,\n strValue: 'fn',\n mapped: types.fn,\n bypass: propIsBypass\n };\n }\n\n // check if value is mapped\n var data, mapData;\n if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n\n var mapped = types.data;\n return {\n name: name,\n value: data,\n strValue: '' + value,\n mapped: mapped,\n field: data[1],\n bypass: propIsBypass\n };\n } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n if (type.multiple) {\n return false;\n } // impossible to map to num\n\n var _mapped = types.mapData;\n\n // we can map only if the type is a colour or a number\n if (!(type.color || type.number)) {\n return false;\n }\n var valueMin = this.parse(name, mapData[4]); // parse to validate\n if (!valueMin || valueMin.mapped) {\n return false;\n } // can't be invalid or mapped\n\n var valueMax = this.parse(name, mapData[5]); // parse to validate\n if (!valueMax || valueMax.mapped) {\n return false;\n } // can't be invalid or mapped\n\n // check if valueMin and valueMax are the same\n if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {\n warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`');\n return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range\n } else if (type.color) {\n var c1 = valueMin.value;\n var c2 = valueMax.value;\n var same = c1[0] === c2[0] // red\n && c1[1] === c2[1] // green\n && c1[2] === c2[2] // blue\n && (\n // optional alpha\n c1[3] === c2[3] // same alpha outright\n || (c1[3] == null || c1[3] === 1 // full opacity for colour 1?\n ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2?\n );\n\n if (same) {\n return false;\n } // can't make a mapper without a range\n }\n\n return {\n name: name,\n value: mapData,\n strValue: '' + value,\n mapped: _mapped,\n field: mapData[1],\n fieldMin: parseFloat(mapData[2]),\n // min & max are numeric\n fieldMax: parseFloat(mapData[3]),\n valueMin: valueMin.value,\n valueMax: valueMax.value,\n bypass: propIsBypass\n };\n }\n if (type.multiple && propIsFlat !== 'multiple') {\n var vals;\n if (valueIsString) {\n vals = value.split(/\\s+/);\n } else if (array(value)) {\n vals = value;\n } else {\n vals = [value];\n }\n if (type.evenMultiple && vals.length % 2 !== 0) {\n return null;\n }\n var valArr = [];\n var unitsArr = [];\n var pfValArr = [];\n var strVal = '';\n var hasEnum = false;\n for (var i = 0; i < vals.length; i++) {\n var p = self.parse(name, vals[i], propIsBypass, 'multiple');\n hasEnum = hasEnum || string(p.value);\n valArr.push(p.value);\n pfValArr.push(p.pfValue != null ? p.pfValue : p.value);\n unitsArr.push(p.units);\n strVal += (i > 0 ? ' ' : '') + p.strValue;\n }\n if (type.validate && !type.validate(valArr, unitsArr)) {\n return null;\n }\n if (type.singleEnum && hasEnum) {\n if (valArr.length === 1 && string(valArr[0])) {\n return {\n name: name,\n value: valArr[0],\n strValue: valArr[0],\n bypass: propIsBypass\n };\n } else {\n return null;\n }\n }\n return {\n name: name,\n value: valArr,\n pfValue: pfValArr,\n strValue: strVal,\n bypass: propIsBypass,\n units: unitsArr\n };\n }\n\n // several types also allow enums\n var checkEnums = function checkEnums() {\n for (var _i = 0; _i < type.enums.length; _i++) {\n var en = type.enums[_i];\n if (en === value) {\n return {\n name: name,\n value: value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null;\n };\n\n // check the type and return the appropriate object\n if (type.number) {\n var units;\n var implicitUnits = 'px'; // not set => px\n\n if (type.units) {\n // use specified units if set\n units = type.units;\n }\n if (type.implicitUnits) {\n implicitUnits = type.implicitUnits;\n }\n if (!type.unitless) {\n if (valueIsString) {\n var unitsRegex = 'px|em' + (type.allowPercent ? '|\\\\%' : '');\n if (units) {\n unitsRegex = units;\n } // only allow explicit units if so set\n var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$');\n if (match) {\n value = match[1];\n units = match[2] || implicitUnits;\n }\n } else if (!units || type.implicitUnits) {\n units = implicitUnits; // implicitly px if unspecified\n }\n }\n\n value = parseFloat(value);\n\n // if not a number and enums not allowed, then the value is invalid\n if (isNaN(value) && type.enums === undefined) {\n return null;\n }\n\n // check if this number type also accepts special keywords in place of numbers\n // (i.e. `left`, `auto`, etc)\n if (isNaN(value) && type.enums !== undefined) {\n value = passedValue;\n return checkEnums();\n }\n\n // check if value must be an integer\n if (type.integer && !integer(value)) {\n return null;\n }\n\n // check value is within range\n if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) {\n return null;\n }\n var ret = {\n name: name,\n value: value,\n strValue: '' + value + (units ? units : ''),\n units: units,\n bypass: propIsBypass\n };\n\n // normalise value in pixels\n if (type.unitless || units !== 'px' && units !== 'em') {\n ret.pfValue = value;\n } else {\n ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value;\n }\n\n // normalise value in ms\n if (units === 'ms' || units === 's') {\n ret.pfValue = units === 'ms' ? value : 1000 * value;\n }\n\n // normalise value in rad\n if (units === 'deg' || units === 'rad') {\n ret.pfValue = units === 'rad' ? value : deg2rad(value);\n }\n\n // normalize value in %\n if (units === '%') {\n ret.pfValue = value / 100;\n }\n return ret;\n } else if (type.propList) {\n var props = [];\n var propsStr = '' + value;\n if (propsStr === 'none') ; else {\n // go over each prop\n\n var propsSplit = propsStr.split(/\\s*,\\s*|\\s+/);\n for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {\n var propName = propsSplit[_i2].trim();\n if (self.properties[propName]) {\n props.push(propName);\n } else {\n warn('`' + propName + '` is not a valid property name');\n }\n }\n if (props.length === 0) {\n return null;\n }\n }\n return {\n name: name,\n value: props,\n strValue: props.length === 0 ? 'none' : props.join(' '),\n bypass: propIsBypass\n };\n } else if (type.color) {\n var tuple = color2tuple(value);\n if (!tuple) {\n return null;\n }\n return {\n name: name,\n value: tuple,\n pfValue: tuple,\n strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')',\n // n.b. no spaces b/c of multiple support\n bypass: propIsBypass\n };\n } else if (type.regex || type.regexes) {\n // first check enums\n if (type.enums) {\n var enumProp = checkEnums();\n if (enumProp) {\n return enumProp;\n }\n }\n var regexes = type.regexes ? type.regexes : [type.regex];\n for (var _i3 = 0; _i3 < regexes.length; _i3++) {\n var regex = new RegExp(regexes[_i3]); // make a regex from the type string\n var m = regex.exec(value);\n if (m) {\n // regex matches\n return {\n name: name,\n value: type.singleRegexMatchValue ? m[1] : m,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null; // didn't match any\n } else if (type.string) {\n // just return\n return {\n name: name,\n value: '' + value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n } else if (type.enums) {\n // check enums last because it's a combo type in others\n return checkEnums();\n } else {\n return null; // not a type we can handle\n }\n };\n\n var Style = function Style(cy) {\n if (!(this instanceof Style)) {\n return new Style(cy);\n }\n if (!core(cy)) {\n error('A style must have a core reference');\n return;\n }\n this._private = {\n cy: cy,\n coreStyle: {}\n };\n this.length = 0;\n this.resetToDefault();\n };\n var styfn = Style.prototype;\n styfn.instanceString = function () {\n return 'style';\n };\n\n // remove all contexts\n styfn.clear = function () {\n var _p = this._private;\n var cy = _p.cy;\n var eles = cy.elements();\n for (var i = 0; i < this.length; i++) {\n this[i] = undefined;\n }\n this.length = 0;\n _p.contextStyles = {};\n _p.propDiffs = {};\n this.cleanElements(eles, true);\n eles.forEach(function (ele) {\n var ele_p = ele[0]._private;\n ele_p.styleDirty = true;\n ele_p.appliedInitStyle = false;\n });\n return this; // chaining\n };\n\n styfn.resetToDefault = function () {\n this.clear();\n this.addDefaultStylesheet();\n return this;\n };\n\n // builds a style object for the 'core' selector\n styfn.core = function (propName) {\n return this._private.coreStyle[propName] || this.getDefaultProperty(propName);\n };\n\n // create a new context from the specified selector string and switch to that context\n styfn.selector = function (selectorStr) {\n // 'core' is a special case and does not need a selector\n var selector = selectorStr === 'core' ? null : new Selector(selectorStr);\n var i = this.length++; // new context means new index\n this[i] = {\n selector: selector,\n properties: [],\n mappedProperties: [],\n index: i\n };\n return this; // chaining\n };\n\n // add one or many css rules to the current context\n styfn.css = function () {\n var self = this;\n var args = arguments;\n if (args.length === 1) {\n var map = args[0];\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var mapVal = map[prop.name];\n if (mapVal === undefined) {\n mapVal = map[dash2camel(prop.name)];\n }\n if (mapVal !== undefined) {\n this.cssRule(prop.name, mapVal);\n }\n }\n } else if (args.length === 2) {\n this.cssRule(args[0], args[1]);\n }\n\n // do nothing if args are invalid\n\n return this; // chaining\n };\n\n styfn.style = styfn.css;\n\n // add a single css rule to the current context\n styfn.cssRule = function (name, value) {\n // name-value pair\n var property = this.parse(name, value);\n\n // add property to current context if valid\n if (property) {\n var i = this.length - 1;\n this[i].properties.push(property);\n this[i].properties[property.name] = property; // allow access by name as well\n\n if (property.name.match(/pie-(\\d+)-background-size/) && property.value) {\n this._private.hasPie = true;\n }\n if (property.mapped) {\n this[i].mappedProperties.push(property);\n }\n\n // add to core style if necessary\n var currentSelectorIsCore = !this[i].selector;\n if (currentSelectorIsCore) {\n this._private.coreStyle[property.name] = property;\n }\n }\n return this; // chaining\n };\n\n styfn.append = function (style) {\n if (stylesheet(style)) {\n style.appendToStyle(this);\n } else if (array(style)) {\n this.appendFromJson(style);\n } else if (string(style)) {\n this.appendFromString(style);\n } // you probably wouldn't want to append a Style, since you'd duplicate the default parts\n\n return this;\n };\n\n // static function\n Style.fromJson = function (cy, json) {\n var style = new Style(cy);\n style.fromJson(json);\n return style;\n };\n Style.fromString = function (cy, string) {\n return new Style(cy).fromString(string);\n };\n [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) {\n extend(styfn, props);\n });\n Style.types = styfn.types;\n Style.properties = styfn.properties;\n Style.propertyGroups = styfn.propertyGroups;\n Style.propertyGroupNames = styfn.propertyGroupNames;\n Style.propertyGroupKeys = styfn.propertyGroupKeys;\n\n var corefn$2 = {\n style: function style(newStyle) {\n if (newStyle) {\n var s = this.setStyle(newStyle);\n s.update();\n }\n return this._private.style;\n },\n setStyle: function setStyle(style) {\n var _p = this._private;\n if (stylesheet(style)) {\n _p.style = style.generateStyle(this);\n } else if (array(style)) {\n _p.style = Style.fromJson(this, style);\n } else if (string(style)) {\n _p.style = Style.fromString(this, style);\n } else {\n _p.style = Style(this);\n }\n return _p.style;\n },\n // e.g. cy.data() changed => recalc ele mappers\n updateStyle: function updateStyle() {\n this.mutableElements().updateStyle(); // just send to all eles\n }\n };\n\n var defaultSelectionType = 'single';\n var corefn$1 = {\n autolock: function autolock(bool) {\n if (bool !== undefined) {\n this._private.autolock = bool ? true : false;\n } else {\n return this._private.autolock;\n }\n return this; // chaining\n },\n\n autoungrabify: function autoungrabify(bool) {\n if (bool !== undefined) {\n this._private.autoungrabify = bool ? true : false;\n } else {\n return this._private.autoungrabify;\n }\n return this; // chaining\n },\n\n autounselectify: function autounselectify(bool) {\n if (bool !== undefined) {\n this._private.autounselectify = bool ? true : false;\n } else {\n return this._private.autounselectify;\n }\n return this; // chaining\n },\n\n selectionType: function selectionType(selType) {\n var _p = this._private;\n if (_p.selectionType == null) {\n _p.selectionType = defaultSelectionType;\n }\n if (selType !== undefined) {\n if (selType === 'additive' || selType === 'single') {\n _p.selectionType = selType;\n }\n } else {\n return _p.selectionType;\n }\n return this;\n },\n panningEnabled: function panningEnabled(bool) {\n if (bool !== undefined) {\n this._private.panningEnabled = bool ? true : false;\n } else {\n return this._private.panningEnabled;\n }\n return this; // chaining\n },\n\n userPanningEnabled: function userPanningEnabled(bool) {\n if (bool !== undefined) {\n this._private.userPanningEnabled = bool ? true : false;\n } else {\n return this._private.userPanningEnabled;\n }\n return this; // chaining\n },\n\n zoomingEnabled: function zoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.zoomingEnabled = bool ? true : false;\n } else {\n return this._private.zoomingEnabled;\n }\n return this; // chaining\n },\n\n userZoomingEnabled: function userZoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.userZoomingEnabled = bool ? true : false;\n } else {\n return this._private.userZoomingEnabled;\n }\n return this; // chaining\n },\n\n boxSelectionEnabled: function boxSelectionEnabled(bool) {\n if (bool !== undefined) {\n this._private.boxSelectionEnabled = bool ? true : false;\n } else {\n return this._private.boxSelectionEnabled;\n }\n return this; // chaining\n },\n\n pan: function pan() {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n switch (args.length) {\n case 0:\n // .pan()\n return pan;\n case 1:\n if (string(args[0])) {\n // .pan('x')\n dim = args[0];\n return pan[dim];\n } else if (plainObject(args[0])) {\n // .pan({ x: 0, y: 100 })\n if (!this._private.panningEnabled) {\n return this;\n }\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x = x;\n }\n if (number$1(y)) {\n pan.y = y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .pan('x', 100)\n if (!this._private.panningEnabled) {\n return this;\n }\n dim = args[0];\n val = args[1];\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] = val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n panBy: function panBy(arg0, arg1) {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n if (!this._private.panningEnabled) {\n return this;\n }\n switch (args.length) {\n case 1:\n if (plainObject(arg0)) {\n // .panBy({ x: 0, y: 100 })\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x += x;\n }\n if (number$1(y)) {\n pan.y += y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .panBy('x', 100)\n dim = arg0;\n val = arg1;\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] += val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n fit: function fit(elements, padding) {\n var viewportState = this.getFitViewport(elements, padding);\n if (viewportState) {\n var _p = this._private;\n _p.zoom = viewportState.zoom;\n _p.pan = viewportState.pan;\n this.emit('pan zoom viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getFitViewport: function getFitViewport(elements, padding) {\n if (number$1(elements) && padding === undefined) {\n // elements is optional\n padding = elements;\n elements = undefined;\n }\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return;\n }\n var bb;\n if (string(elements)) {\n var sel = elements;\n elements = this.$(sel);\n } else if (boundingBox(elements)) {\n // assume bb\n var bbe = elements;\n bb = {\n x1: bbe.x1,\n y1: bbe.y1,\n x2: bbe.x2,\n y2: bbe.y2\n };\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elementOrCollection(elements) && elements.empty()) {\n return;\n } // can't fit to nothing\n\n bb = bb || elements.boundingBox();\n var w = this.width();\n var h = this.height();\n var zoom;\n padding = number$1(padding) ? padding : 0;\n if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {\n zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h);\n\n // crop zoom\n zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;\n zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;\n var pan = {\n // now pan to middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return {\n zoom: zoom,\n pan: pan\n };\n }\n return;\n },\n zoomRange: function zoomRange(min, max) {\n var _p = this._private;\n if (max == null) {\n var opts = min;\n min = opts.min;\n max = opts.max;\n }\n if (number$1(min) && number$1(max) && min <= max) {\n _p.minZoom = min;\n _p.maxZoom = max;\n } else if (number$1(min) && max === undefined && min <= _p.maxZoom) {\n _p.minZoom = min;\n } else if (number$1(max) && min === undefined && max >= _p.minZoom) {\n _p.maxZoom = max;\n }\n return this;\n },\n minZoom: function minZoom(zoom) {\n if (zoom === undefined) {\n return this._private.minZoom;\n } else {\n return this.zoomRange({\n min: zoom\n });\n }\n },\n maxZoom: function maxZoom(zoom) {\n if (zoom === undefined) {\n return this._private.maxZoom;\n } else {\n return this.zoomRange({\n max: zoom\n });\n }\n },\n getZoomedViewport: function getZoomedViewport(params) {\n var _p = this._private;\n var currentPan = _p.pan;\n var currentZoom = _p.zoom;\n var pos; // in rendered px\n var zoom;\n var bail = false;\n if (!_p.zoomingEnabled) {\n // zooming disabled\n bail = true;\n }\n if (number$1(params)) {\n // then set the zoom\n zoom = params;\n } else if (plainObject(params)) {\n // then zoom about a point\n zoom = params.level;\n if (params.position != null) {\n pos = modelToRenderedPosition(params.position, currentZoom, currentPan);\n } else if (params.renderedPosition != null) {\n pos = params.renderedPosition;\n }\n if (pos != null && !_p.panningEnabled) {\n // panning disabled\n bail = true;\n }\n }\n\n // crop zoom\n zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;\n zoom = zoom < _p.minZoom ? _p.minZoom : zoom;\n\n // can't zoom with invalid params\n if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {\n return null;\n }\n if (pos != null) {\n // set zoom about position\n var pan1 = currentPan;\n var zoom1 = currentZoom;\n var zoom2 = zoom;\n var pan2 = {\n x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,\n y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y\n };\n return {\n zoomed: true,\n panned: true,\n zoom: zoom2,\n pan: pan2\n };\n } else {\n // just set the zoom\n return {\n zoomed: true,\n panned: false,\n zoom: zoom,\n pan: currentPan\n };\n }\n },\n zoom: function zoom(params) {\n if (params === undefined) {\n // get\n return this._private.zoom;\n } else {\n // set\n var vp = this.getZoomedViewport(params);\n var _p = this._private;\n if (vp == null || !vp.zoomed) {\n return this;\n }\n _p.zoom = vp.zoom;\n if (vp.panned) {\n _p.pan.x = vp.pan.x;\n _p.pan.y = vp.pan.y;\n }\n this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport');\n this.notify('viewport');\n return this; // chaining\n }\n },\n\n viewport: function viewport(opts) {\n var _p = this._private;\n var zoomDefd = true;\n var panDefd = true;\n var events = []; // to trigger\n var zoomFailed = false;\n var panFailed = false;\n if (!opts) {\n return this;\n }\n if (!number$1(opts.zoom)) {\n zoomDefd = false;\n }\n if (!plainObject(opts.pan)) {\n panDefd = false;\n }\n if (!zoomDefd && !panDefd) {\n return this;\n }\n if (zoomDefd) {\n var z = opts.zoom;\n if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {\n zoomFailed = true;\n } else {\n _p.zoom = z;\n events.push('zoom');\n }\n }\n if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {\n var p = opts.pan;\n if (number$1(p.x)) {\n _p.pan.x = p.x;\n panFailed = false;\n }\n if (number$1(p.y)) {\n _p.pan.y = p.y;\n panFailed = false;\n }\n if (!panFailed) {\n events.push('pan');\n }\n }\n if (events.length > 0) {\n events.push('viewport');\n this.emit(events.join(' '));\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n center: function center(elements) {\n var pan = this.getCenterPan(elements);\n if (pan) {\n this._private.pan = pan;\n this.emit('pan viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getCenterPan: function getCenterPan(elements, zoom) {\n if (!this._private.panningEnabled) {\n return;\n }\n if (string(elements)) {\n var selector = elements;\n elements = this.mutableElements().filter(selector);\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elements.length === 0) {\n return;\n } // can't centre pan to nothing\n\n var bb = elements.boundingBox();\n var w = this.width();\n var h = this.height();\n zoom = zoom === undefined ? this._private.zoom : zoom;\n var pan = {\n // middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return pan;\n },\n reset: function reset() {\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return this;\n }\n this.viewport({\n pan: {\n x: 0,\n y: 0\n },\n zoom: 1\n });\n return this; // chaining\n },\n\n invalidateSize: function invalidateSize() {\n this._private.sizeCache = null;\n },\n size: function size() {\n var _p = this._private;\n var container = _p.container;\n var cy = this;\n return _p.sizeCache = _p.sizeCache || (container ? function () {\n var style = cy.window().getComputedStyle(container);\n var val = function val(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n return {\n width: container.clientWidth - val('padding-left') - val('padding-right'),\n height: container.clientHeight - val('padding-top') - val('padding-bottom')\n };\n }() : {\n // fallback if no container (not 0 b/c can be used for dividing etc)\n width: 1,\n height: 1\n });\n },\n width: function width() {\n return this.size().width;\n },\n height: function height() {\n return this.size().height;\n },\n extent: function extent() {\n var pan = this._private.pan;\n var zoom = this._private.zoom;\n var rb = this.renderedExtent();\n var b = {\n x1: (rb.x1 - pan.x) / zoom,\n x2: (rb.x2 - pan.x) / zoom,\n y1: (rb.y1 - pan.y) / zoom,\n y2: (rb.y2 - pan.y) / zoom\n };\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n return b;\n },\n renderedExtent: function renderedExtent() {\n var width = this.width();\n var height = this.height();\n return {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height,\n w: width,\n h: height\n };\n },\n multiClickDebounceTime: function multiClickDebounceTime(_int) {\n if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime;\n return this; // chaining\n }\n };\n\n // aliases\n corefn$1.centre = corefn$1.center;\n\n // backwards compatibility\n corefn$1.autolockNodes = corefn$1.autolock;\n corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;\n\n var fn = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n })\n };\n\n // aliases\n fn.attr = fn.data;\n fn.removeAttr = fn.removeData;\n\n var Core = function Core(opts) {\n var cy = this;\n opts = extend({}, opts);\n var container = opts.container;\n\n // allow for passing a wrapped jquery object\n // e.g. cytoscape({ container: $('#cy') })\n if (container && !htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery\n reg = reg || {};\n if (reg && reg.cy) {\n reg.cy.destroy();\n reg = {}; // old instance => replace reg completely\n }\n\n var readies = reg.readies = reg.readies || [];\n if (container) {\n container._cyreg = reg;\n } // make sure container assoc'd reg points to this cy\n reg.cy = cy;\n var head = _window !== undefined && container !== undefined && !opts.headless;\n var options = opts;\n options.layout = extend({\n name: head ? 'grid' : 'null'\n }, options.layout);\n options.renderer = extend({\n name: head ? 'canvas' : 'null'\n }, options.renderer);\n var defVal = function defVal(def, val, altVal) {\n if (val !== undefined) {\n return val;\n } else if (altVal !== undefined) {\n return altVal;\n } else {\n return def;\n }\n };\n var _p = this._private = {\n container: container,\n // html dom ele container\n ready: false,\n // whether ready has been triggered\n options: options,\n // cached options\n elements: new Collection(this),\n // elements in the graph\n listeners: [],\n // list of listeners\n aniEles: new Collection(this),\n // elements being animated\n data: options.data || {},\n // data for the core\n scratch: {},\n // scratch object for core\n layout: null,\n renderer: null,\n destroyed: false,\n // whether destroy was called\n notificationsEnabled: true,\n // whether notifications are sent to the renderer\n minZoom: 1e-50,\n maxZoom: 1e50,\n zoomingEnabled: defVal(true, options.zoomingEnabled),\n userZoomingEnabled: defVal(true, options.userZoomingEnabled),\n panningEnabled: defVal(true, options.panningEnabled),\n userPanningEnabled: defVal(true, options.userPanningEnabled),\n boxSelectionEnabled: defVal(true, options.boxSelectionEnabled),\n autolock: defVal(false, options.autolock, options.autolockNodes),\n autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes),\n autounselectify: defVal(false, options.autounselectify),\n styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled,\n zoom: number$1(options.zoom) ? options.zoom : 1,\n pan: {\n x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0,\n y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0\n },\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n hasCompoundNodes: false,\n multiClickDebounceTime: defVal(250, options.multiClickDebounceTime)\n };\n this.createEmitter();\n\n // set selection type\n this.selectionType(options.selectionType);\n\n // init zoom bounds\n this.zoomRange({\n min: options.minZoom,\n max: options.maxZoom\n });\n var loadExtData = function loadExtData(extData, next) {\n var anyIsPromise = extData.some(promise);\n if (anyIsPromise) {\n return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init\n } else {\n next(extData); // exec synchronously for convenience\n }\n };\n\n // start with the default stylesheet so we have something before loading an external stylesheet\n if (_p.styleEnabled) {\n cy.setStyle([]);\n }\n\n // create the renderer\n var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options\n cy.initRenderer(rendererOptions);\n var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) {\n cy.notifications(false);\n\n // remove old elements\n var oldEles = cy.mutableElements();\n if (oldEles.length > 0) {\n oldEles.remove();\n }\n if (elements != null) {\n if (plainObject(elements) || array(elements)) {\n cy.add(elements);\n }\n }\n cy.one('layoutready', function (e) {\n cy.notifications(true);\n cy.emit(e); // we missed this event by turning notifications off, so pass it on\n\n cy.one('load', onload);\n cy.emitAndNotify('load');\n }).one('layoutstop', function () {\n cy.one('done', ondone);\n cy.emit('done');\n });\n var layoutOpts = extend({}, cy._private.options.layout);\n layoutOpts.eles = cy.elements();\n cy.layout(layoutOpts).run();\n };\n loadExtData([options.style, options.elements], function (thens) {\n var initStyle = thens[0];\n var initEles = thens[1];\n\n // init style\n if (_p.styleEnabled) {\n cy.style().append(initStyle);\n }\n\n // initial load\n setElesAndLayout(initEles, function () {\n // onready\n cy.startAnimationLoop();\n _p.ready = true;\n\n // if a ready callback is specified as an option, the bind it\n if (fn$6(options.ready)) {\n cy.on('ready', options.ready);\n }\n\n // bind all the ready handlers registered before creating this instance\n for (var i = 0; i < readies.length; i++) {\n var fn = readies[i];\n cy.on('ready', fn);\n }\n if (reg) {\n reg.readies = [];\n } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc\n\n cy.emit('ready');\n }, options.done);\n });\n };\n var corefn = Core.prototype; // short alias\n\n extend(corefn, {\n instanceString: function instanceString() {\n return 'core';\n },\n isReady: function isReady() {\n return this._private.ready;\n },\n destroyed: function destroyed() {\n return this._private.destroyed;\n },\n ready: function ready(fn) {\n if (this.isReady()) {\n this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event\n } else {\n this.on('ready', fn);\n }\n return this;\n },\n destroy: function destroy() {\n var cy = this;\n if (cy.destroyed()) return;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n this.emit('destroy');\n cy._private.destroyed = true;\n return cy;\n },\n hasElementWithId: function hasElementWithId(id) {\n return this._private.elements.hasElementWithId(id);\n },\n getElementById: function getElementById(id) {\n return this._private.elements.getElementById(id);\n },\n hasCompoundNodes: function hasCompoundNodes() {\n return this._private.hasCompoundNodes;\n },\n headless: function headless() {\n return this._private.renderer.isHeadless();\n },\n styleEnabled: function styleEnabled() {\n return this._private.styleEnabled;\n },\n addToPool: function addToPool(eles) {\n this._private.elements.merge(eles);\n return this; // chaining\n },\n\n removeFromPool: function removeFromPool(eles) {\n this._private.elements.unmerge(eles);\n return this;\n },\n container: function container() {\n return this._private.container || null;\n },\n window: function window() {\n var container = this._private.container;\n if (container == null) return _window;\n var ownerDocument = this._private.container.ownerDocument;\n if (ownerDocument === undefined || ownerDocument == null) {\n return _window;\n }\n return ownerDocument.defaultView || _window;\n },\n mount: function mount(container) {\n if (container == null) {\n return;\n }\n var cy = this;\n var _p = cy._private;\n var options = _p.options;\n if (!htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n _p.container = container;\n _p.styleEnabled = true;\n cy.invalidateSize();\n cy.initRenderer(extend({}, options, options.renderer, {\n // allow custom renderer name to be re-used, otherwise use canvas\n name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name\n }));\n cy.startAnimationLoop();\n cy.style(options.style);\n cy.emit('mount');\n return cy;\n },\n unmount: function unmount() {\n var cy = this;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n cy.initRenderer({\n name: 'null'\n });\n cy.emit('unmount');\n return cy;\n },\n options: function options() {\n return copy(this._private.options);\n },\n json: function json(obj) {\n var cy = this;\n var _p = cy._private;\n var eles = cy.mutableElements();\n var getFreshRef = function getFreshRef(ele) {\n return cy.getElementById(ele.id());\n };\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.elements) {\n var idInJson = {};\n var updateEles = function updateEles(jsons, gr) {\n var toAdd = [];\n var toMod = [];\n for (var i = 0; i < jsons.length; i++) {\n var json = jsons[i];\n if (!json.data.id) {\n warn('cy.json() cannot handle elements without an ID attribute');\n continue;\n }\n var id = '' + json.data.id; // id must be string\n var ele = cy.getElementById(id);\n idInJson[id] = true;\n if (ele.length !== 0) {\n // existing element should be updated\n toMod.push({\n ele: ele,\n json: json\n });\n } else {\n // otherwise should be added\n if (gr) {\n json.group = gr;\n toAdd.push(json);\n } else {\n toAdd.push(json);\n }\n }\n }\n cy.add(toAdd);\n for (var _i = 0; _i < toMod.length; _i++) {\n var _toMod$_i = toMod[_i],\n _ele = _toMod$_i.ele,\n _json = _toMod$_i.json;\n _ele.json(_json);\n }\n };\n if (array(obj.elements)) {\n // elements: []\n updateEles(obj.elements);\n } else {\n // elements: { nodes: [], edges: [] }\n var grs = ['nodes', 'edges'];\n for (var i = 0; i < grs.length; i++) {\n var gr = grs[i];\n var elements = obj.elements[gr];\n if (array(elements)) {\n updateEles(elements, gr);\n }\n }\n }\n var parentsToRemove = cy.collection();\n eles.filter(function (ele) {\n return !idInJson[ele.id()];\n }).forEach(function (ele) {\n if (ele.isParent()) {\n parentsToRemove.merge(ele);\n } else {\n ele.remove();\n }\n });\n\n // so that children are not removed w/parent\n parentsToRemove.forEach(function (ele) {\n return ele.children().move({\n parent: null\n });\n });\n\n // intermediate parents may be moved by prior line, so make sure we remove by fresh refs\n parentsToRemove.forEach(function (ele) {\n return getFreshRef(ele).remove();\n });\n }\n if (obj.style) {\n cy.style(obj.style);\n }\n if (obj.zoom != null && obj.zoom !== _p.zoom) {\n cy.zoom(obj.zoom);\n }\n if (obj.pan) {\n if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {\n cy.pan(obj.pan);\n }\n }\n if (obj.data) {\n cy.data(obj.data);\n }\n var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime'];\n for (var _i2 = 0; _i2 < fields.length; _i2++) {\n var f = fields[_i2];\n if (obj[f] != null) {\n cy[f](obj[f]);\n }\n }\n cy.endBatch();\n return this; // chaining\n } else {\n // get\n var flat = !!obj;\n var json = {};\n if (flat) {\n json.elements = this.elements().map(function (ele) {\n return ele.json();\n });\n } else {\n json.elements = {};\n eles.forEach(function (ele) {\n var group = ele.group();\n if (!json.elements[group]) {\n json.elements[group] = [];\n }\n json.elements[group].push(ele.json());\n });\n }\n if (this._private.styleEnabled) {\n json.style = cy.style().json();\n }\n json.data = copy(cy.data());\n var options = _p.options;\n json.zoomingEnabled = _p.zoomingEnabled;\n json.userZoomingEnabled = _p.userZoomingEnabled;\n json.zoom = _p.zoom;\n json.minZoom = _p.minZoom;\n json.maxZoom = _p.maxZoom;\n json.panningEnabled = _p.panningEnabled;\n json.userPanningEnabled = _p.userPanningEnabled;\n json.pan = copy(_p.pan);\n json.boxSelectionEnabled = _p.boxSelectionEnabled;\n json.renderer = copy(options.renderer);\n json.hideEdgesOnViewport = options.hideEdgesOnViewport;\n json.textureOnViewport = options.textureOnViewport;\n json.wheelSensitivity = options.wheelSensitivity;\n json.motionBlur = options.motionBlur;\n json.multiClickDebounceTime = options.multiClickDebounceTime;\n return json;\n }\n }\n });\n corefn.$id = corefn.getElementById;\n [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) {\n extend(corefn, props);\n });\n\n /* eslint-disable no-unused-vars */\n var defaults$7 = {\n fit: true,\n // whether to fit the viewport to the graph\n directed: false,\n // whether the tree is directed downwards (or edges can point in any direction if false)\n padding: 30,\n // padding on fit\n circle: false,\n // put depths in concentric circles if true, put depths top down if false\n grid: false,\n // whether to create an even grid into which the DAG is placed (circle:false only)\n spacingFactor: 1.75,\n // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n roots: undefined,\n // the roots of the trees\n depthSort: undefined,\n // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled,\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n var deprecatedOptionDefaults = {\n maximal: false,\n // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also\n acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops\n };\n\n /* eslint-enable */\n\n var getInfo = function getInfo(ele) {\n return ele.scratch('breadthfirst');\n };\n var setInfo = function setInfo(ele, obj) {\n return ele.scratch('breadthfirst', obj);\n };\n function BreadthFirstLayout(options) {\n this.options = extend({}, defaults$7, deprecatedOptionDefaults, options);\n }\n BreadthFirstLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().filter(function (n) {\n return !n.isParent();\n });\n var graph = eles;\n var directed = options.directed;\n var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true\n\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var roots;\n if (elementOrCollection(options.roots)) {\n roots = options.roots;\n } else if (array(options.roots)) {\n var rootsArray = [];\n for (var i = 0; i < options.roots.length; i++) {\n var id = options.roots[i];\n var ele = cy.getElementById(id);\n rootsArray.push(ele);\n }\n roots = cy.collection(rootsArray);\n } else if (string(options.roots)) {\n roots = cy.$(options.roots);\n } else {\n if (directed) {\n roots = nodes.roots();\n } else {\n var components = eles.components();\n roots = cy.collection();\n var _loop = function _loop(_i) {\n var comp = components[_i];\n var maxDegree = comp.maxDegree(false);\n var compRoots = comp.filter(function (ele) {\n return ele.degree(false) === maxDegree;\n });\n roots = roots.add(compRoots);\n };\n for (var _i = 0; _i < components.length; _i++) {\n _loop(_i);\n }\n }\n }\n var depths = [];\n var foundByBfs = {};\n var addToDepth = function addToDepth(ele, d) {\n if (depths[d] == null) {\n depths[d] = [];\n }\n var i = depths[d].length;\n depths[d].push(ele);\n setInfo(ele, {\n index: i,\n depth: d\n });\n };\n var changeDepth = function changeDepth(ele, newDepth) {\n var _getInfo = getInfo(ele),\n depth = _getInfo.depth,\n index = _getInfo.index;\n depths[depth][index] = null;\n addToDepth(ele, newDepth);\n };\n\n // find the depths of the nodes\n graph.bfs({\n roots: roots,\n directed: options.directed,\n visit: function visit(node, edge, pNode, i, depth) {\n var ele = node[0];\n var id = ele.id();\n addToDepth(ele, depth);\n foundByBfs[id] = true;\n }\n });\n\n // check for nodes not found by bfs\n var orphanNodes = [];\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n if (foundByBfs[_ele.id()]) {\n continue;\n } else {\n orphanNodes.push(_ele);\n }\n }\n\n // assign the nodes a depth and index\n\n var assignDepthsAt = function assignDepthsAt(i) {\n var eles = depths[i];\n for (var j = 0; j < eles.length; j++) {\n var _ele2 = eles[j];\n if (_ele2 == null) {\n eles.splice(j, 1);\n j--;\n continue;\n }\n setInfo(_ele2, {\n depth: i,\n index: j\n });\n }\n };\n var assignDepths = function assignDepths() {\n for (var _i3 = 0; _i3 < depths.length; _i3++) {\n assignDepthsAt(_i3);\n }\n };\n var adjustMaximally = function adjustMaximally(ele, shifted) {\n var eInfo = getInfo(ele);\n var incomers = ele.incomers().filter(function (el) {\n return el.isNode() && eles.has(el);\n });\n var maxDepth = -1;\n var id = ele.id();\n for (var k = 0; k < incomers.length; k++) {\n var incmr = incomers[k];\n var iInfo = getInfo(incmr);\n maxDepth = Math.max(maxDepth, iInfo.depth);\n }\n if (eInfo.depth <= maxDepth) {\n if (!options.acyclic && shifted[id]) {\n return null;\n }\n var newDepth = maxDepth + 1;\n changeDepth(ele, newDepth);\n shifted[id] = newDepth;\n return true;\n }\n return false;\n };\n\n // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1)\n if (directed && maximal) {\n var Q = [];\n var shifted = {};\n var enqueue = function enqueue(n) {\n return Q.push(n);\n };\n var dequeue = function dequeue() {\n return Q.shift();\n };\n nodes.forEach(function (n) {\n return Q.push(n);\n });\n while (Q.length > 0) {\n var _ele3 = dequeue();\n var didShift = adjustMaximally(_ele3, shifted);\n if (didShift) {\n _ele3.outgoers().filter(function (el) {\n return el.isNode() && eles.has(el);\n }).forEach(enqueue);\n } else if (didShift === null) {\n warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.');\n break; // exit on failure\n }\n }\n }\n\n assignDepths(); // clear holes\n\n // find min distance we need to leave between nodes\n var minDistance = 0;\n if (options.avoidOverlap) {\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var n = nodes[_i4];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n }\n\n // get the weighted percent for an element based on its connectivity to other levels\n var cachedWeightedPercent = {};\n var getWeightedPercent = function getWeightedPercent(ele) {\n if (cachedWeightedPercent[ele.id()]) {\n return cachedWeightedPercent[ele.id()];\n }\n var eleDepth = getInfo(ele).depth;\n var neighbors = ele.neighborhood();\n var percent = 0;\n var samples = 0;\n for (var _i5 = 0; _i5 < neighbors.length; _i5++) {\n var neighbor = neighbors[_i5];\n if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) {\n continue;\n }\n var bf = getInfo(neighbor);\n if (bf == null) {\n continue;\n }\n var index = bf.index;\n var depth = bf.depth;\n\n // unassigned neighbours shouldn't affect the ordering\n if (index == null || depth == null) {\n continue;\n }\n var nDepth = depths[depth].length;\n if (depth < eleDepth) {\n // only get influenced by elements above\n percent += index / nDepth;\n samples++;\n }\n }\n samples = Math.max(1, samples);\n percent = percent / samples;\n if (samples === 0) {\n // put lone nodes at the start\n percent = 0;\n }\n cachedWeightedPercent[ele.id()] = percent;\n return percent;\n };\n\n // rearrange the indices in each depth level based on connectivity\n\n var sortFn = function sortFn(a, b) {\n var apct = getWeightedPercent(a);\n var bpct = getWeightedPercent(b);\n var diff = apct - bpct;\n if (diff === 0) {\n return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons\n } else {\n return diff;\n }\n };\n if (options.depthSort !== undefined) {\n sortFn = options.depthSort;\n }\n\n // sort each level to make connected nodes closer\n for (var _i6 = 0; _i6 < depths.length; _i6++) {\n depths[_i6].sort(sortFn);\n assignDepthsAt(_i6);\n }\n\n // assign orphan nodes to a new top-level depth\n var orphanDepth = [];\n for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {\n orphanDepth.push(orphanNodes[_i7]);\n }\n depths.unshift(orphanDepth);\n assignDepths();\n var biggestDepthSize = 0;\n for (var _i8 = 0; _i8 < depths.length; _i8++) {\n biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);\n }\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.x1 + bb.h / 2\n };\n var maxDepthSize = depths.reduce(function (max, eles) {\n return Math.max(max, eles.length);\n }, 0);\n var getPosition = function getPosition(ele) {\n var _getInfo2 = getInfo(ele),\n depth = _getInfo2.depth,\n index = _getInfo2.index;\n var depthSize = depths[depth].length;\n var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance);\n var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);\n var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);\n radiusStepSize = Math.max(radiusStepSize, minDistance);\n if (!options.circle) {\n var epos = {\n x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX,\n y: (depth + 1) * distanceY\n };\n return epos;\n } else {\n var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);\n var theta = 2 * Math.PI / depths[depth].length * index;\n if (depth === 0 && depths[0].length === 1) {\n radius = 1;\n }\n return {\n x: center.x + radius * Math.cos(theta),\n y: center.y + radius * Math.sin(theta)\n };\n }\n };\n eles.nodes().layoutPositions(this, options, getPosition);\n return this; // chaining\n };\n\n var defaults$6 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox and radius if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n radius: undefined,\n // the radius of the circle\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function CircleLayout(options) {\n this.options = extend({}, defaults$6, options);\n }\n CircleLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep;\n var dTheta = sweep / Math.max(1, nodes.length - 1);\n var r;\n var minDistance = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n if (number$1(options.radius)) {\n r = options.radius;\n } else if (nodes.length <= 1) {\n r = 0;\n } else {\n r = Math.min(bb.h, bb.w) / 2 - minDistance;\n }\n\n // calculate the radius\n if (nodes.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n minDistance *= 1.75; // just to have some nice spacing\n\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n r = Math.max(rMin, r);\n }\n var getPos = function getPos(ele, i) {\n var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1);\n var rx = r * Math.cos(theta);\n var ry = r * Math.sin(theta);\n var pos = {\n x: center.x + rx,\n y: center.y + ry\n };\n return pos;\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n };\n\n var defaults$5 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n equidistant: false,\n // whether levels have an equal radial distance betwen them, may cause bounding box overflow\n minNodeSpacing: 10,\n // min spacing between outside of nodes (used for radius adjustment)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n height: undefined,\n // height of layout area (overrides container height)\n width: undefined,\n // width of layout area (overrides container width)\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n concentric: function concentric(node) {\n // returns numeric value for each node, placing higher nodes in levels towards the centre\n return node.degree();\n },\n levelWidth: function levelWidth(nodes) {\n // the variation of concentric values in each level\n return nodes.maxDegree() / 4;\n },\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n function ConcentricLayout(options) {\n this.options = extend({}, defaults$5, options);\n }\n ConcentricLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var nodeValues = []; // { node, value }\n var maxNodeSize = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var value = void 0;\n\n // calculate the node value\n value = options.concentric(node);\n nodeValues.push({\n value: value,\n node: node\n });\n\n // for style mapping\n node._private.scratch.concentric = value;\n }\n\n // in case we used the `concentric` in style\n nodes.updateStyle();\n\n // calculate max size now based on potentially updated mappers\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var nbb = _node.layoutDimensions(options);\n maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);\n }\n\n // sort node values in descreasing order\n nodeValues.sort(function (a, b) {\n return b.value - a.value;\n });\n var levelWidth = options.levelWidth(nodes);\n\n // put the values into levels\n var levels = [[]];\n var currentLevel = levels[0];\n for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {\n var val = nodeValues[_i2];\n if (currentLevel.length > 0) {\n var diff = Math.abs(currentLevel[0].value - val.value);\n if (diff >= levelWidth) {\n currentLevel = [];\n levels.push(currentLevel);\n }\n }\n currentLevel.push(val);\n }\n\n // create positions from levels\n\n var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes\n\n if (!options.avoidOverlap) {\n // then strictly constrain to bb\n var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;\n var maxR = Math.min(bb.w, bb.h) / 2 - minDist;\n var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);\n minDist = Math.min(minDist, rStep);\n }\n\n // find the metrics for each level\n var r = 0;\n for (var _i3 = 0; _i3 < levels.length; _i3++) {\n var level = levels[_i3];\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep;\n var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);\n\n // calculate the radius\n if (level.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n\n r = Math.max(rMin, r);\n }\n level.r = r;\n r += minDist;\n }\n if (options.equidistant) {\n var rDeltaMax = 0;\n var _r = 0;\n for (var _i4 = 0; _i4 < levels.length; _i4++) {\n var _level = levels[_i4];\n var rDelta = _level.r - _r;\n rDeltaMax = Math.max(rDeltaMax, rDelta);\n }\n _r = 0;\n for (var _i5 = 0; _i5 < levels.length; _i5++) {\n var _level2 = levels[_i5];\n if (_i5 === 0) {\n _r = _level2.r;\n }\n _level2.r = _r;\n _r += rDeltaMax;\n }\n }\n\n // calculate the node positions\n var pos = {}; // id => position\n for (var _i6 = 0; _i6 < levels.length; _i6++) {\n var _level3 = levels[_i6];\n var _dTheta = _level3.dTheta;\n var _r2 = _level3.r;\n for (var j = 0; j < _level3.length; j++) {\n var _val = _level3[j];\n var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j;\n var p = {\n x: center.x + _r2 * Math.cos(theta),\n y: center.y + _r2 * Math.sin(theta)\n };\n pos[_val.node.id()] = p;\n }\n }\n\n // position the nodes\n eles.nodes().layoutPositions(this, options, function (ele) {\n var id = ele.id();\n return pos[id];\n });\n return this; // chaining\n };\n\n /*\n The CoSE layout was written by Gerardo Huck.\n https://www.linkedin.com/in/gerardohuck/\n\n Based on the following article:\n http://dl.acm.org/citation.cfm?id=1498047\n\n Modifications tracked on Github.\n */\n var DEBUG;\n\n /**\n * @brief : default layout options\n */\n var defaults$4 = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // Whether to animate while running the layout\n // true : Animate continuously as the layout is running\n // false : Just show the end result\n // 'end' : Animate with the end result, from the initial positions to the end positions\n animate: true,\n // Easing of the animation for animate:'end'\n animationEasing: undefined,\n // The duration of the animation for animate:'end'\n animationDuration: undefined,\n // A function that determines whether the node should be animated\n // All nodes animated by default on animate enabled\n // Non-animated nodes are positioned immediately when the layout starts\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // The layout animates only after this many milliseconds for animate:true\n // (prevents flashing on fast runs)\n animationThreshold: 250,\n // Number of iterations between consecutive screen positions update\n refresh: 20,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 30,\n // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n boundingBox: undefined,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n nodeDimensionsIncludeLabels: false,\n // Randomize the initial positions of the nodes (true) or use existing positions (false)\n randomize: false,\n // Extra spacing between components in non-compound graphs\n componentSpacing: 40,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 2048;\n },\n // Node repulsion (overlapping) multiplier\n nodeOverlap: 4,\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 32;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 32;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 1.2,\n // Gravity force (constant)\n gravity: 1,\n // Maximum number of iterations to perform\n numIter: 1000,\n // Initial temperature (maximum node displacement)\n initialTemp: 1000,\n // Cooling factor (how the temperature is reduced between consecutive iterations\n coolingFactor: 0.99,\n // Lower temperature threshold (below this point the layout will end)\n minTemp: 1.0\n };\n\n /**\n * @brief : constructor\n * @arg options : object containing layout options\n */\n function CoseLayout(options) {\n this.options = extend({}, defaults$4, options);\n this.options.layout = this;\n\n // Exclude any edge that has a source or target node that is not in the set of passed-in nodes\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n var notEdges = edges.filter(function (e) {\n var sourceId = e.source().data('id');\n var targetId = e.target().data('id');\n var hasSource = nodes.some(function (n) {\n return n.data('id') === sourceId;\n });\n var hasTarget = nodes.some(function (n) {\n return n.data('id') === targetId;\n });\n return !hasSource || !hasTarget;\n });\n this.options.eles = this.options.eles.not(notEdges);\n }\n\n /**\n * @brief : runs the layout\n */\n CoseLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var layout = this;\n layout.stopped = false;\n if (options.animate === true || options.animate === false) {\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n }\n\n // Set DEBUG - Global variable\n if (true === options.debug) {\n DEBUG = true;\n } else {\n DEBUG = false;\n }\n\n // Initialize layout info\n var layoutInfo = createLayoutInfo(cy, layout, options);\n\n // Show LayoutInfo contents if debugging\n if (DEBUG) {\n printLayoutInfo(layoutInfo);\n }\n\n // If required, randomize node positions\n if (options.randomize) {\n randomizePositions(layoutInfo);\n }\n var startTime = performanceNow();\n var refresh = function refresh() {\n refreshPositions(layoutInfo, cy, options);\n\n // Fit the graph if necessary\n if (true === options.fit) {\n cy.fit(options.padding);\n }\n };\n var mainLoop = function mainLoop(i) {\n if (layout.stopped || i >= options.numIter) {\n // logDebug(\"Layout manually stopped. Stopping computation in step \" + i);\n return false;\n }\n\n // Do one step in the phisical simulation\n step(layoutInfo, options);\n\n // Update temperature\n layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor;\n // logDebug(\"New temperature: \" + layoutInfo.temperature);\n\n if (layoutInfo.temperature < options.minTemp) {\n // logDebug(\"Temperature drop below minimum threshold. Stopping computation in step \" + i);\n return false;\n }\n return true;\n };\n var done = function done() {\n if (options.animate === true || options.animate === false) {\n refresh();\n\n // Layout has finished\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n } else {\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.layoutPositions(layout, options, getScaledPos);\n }\n };\n var i = 0;\n var loopRet = true;\n if (options.animate === true) {\n var frame = function frame() {\n var f = 0;\n while (loopRet && f < options.refresh) {\n loopRet = mainLoop(i);\n i++;\n f++;\n }\n if (!loopRet) {\n // it's done\n separateComponents(layoutInfo, options);\n done();\n } else {\n var now = performanceNow();\n if (now - startTime >= options.animationThreshold) {\n refresh();\n }\n requestAnimationFrame(frame);\n }\n };\n frame();\n } else {\n while (loopRet) {\n loopRet = mainLoop(i);\n i++;\n }\n separateComponents(layoutInfo, options);\n done();\n }\n return this; // chaining\n };\n\n /**\n * @brief : called on continuous layouts to stop them before they finish\n */\n CoseLayout.prototype.stop = function () {\n this.stopped = true;\n if (this.thread) {\n this.thread.stop();\n }\n this.emit('layoutstop');\n return this; // chaining\n };\n\n CoseLayout.prototype.destroy = function () {\n if (this.thread) {\n this.thread.stop();\n }\n return this; // chaining\n };\n\n /**\n * @brief : Creates an object which is contains all the data\n * used in the layout process\n * @arg cy : cytoscape.js object\n * @return : layoutInfo object initialized\n */\n var createLayoutInfo = function createLayoutInfo(cy, layout, options) {\n // Shortcut\n var edges = options.eles.edges();\n var nodes = options.eles.nodes();\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var layoutInfo = {\n isCompound: cy.hasCompoundNodes(),\n layoutNodes: [],\n idToIndex: {},\n nodeSize: nodes.size(),\n graphSet: [],\n indexToGraph: [],\n layoutEdges: [],\n edgeSize: edges.size(),\n temperature: options.initialTemp,\n clientWidth: bb.w,\n clientHeight: bb.h,\n boundingBox: bb\n };\n var components = options.eles.components();\n var id2cmptId = {};\n for (var i = 0; i < components.length; i++) {\n var component = components[i];\n for (var j = 0; j < component.length; j++) {\n var node = component[j];\n id2cmptId[node.id()] = i;\n }\n }\n\n // Iterate over all nodes, creating layout nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var tempNode = {};\n tempNode.isLocked = n.locked();\n tempNode.id = n.data('id');\n tempNode.parentId = n.data('parent');\n tempNode.cmptId = id2cmptId[n.id()];\n tempNode.children = [];\n tempNode.positionX = n.position('x');\n tempNode.positionY = n.position('y');\n tempNode.offsetX = 0;\n tempNode.offsetY = 0;\n tempNode.height = nbb.w;\n tempNode.width = nbb.h;\n tempNode.maxX = tempNode.positionX + tempNode.width / 2;\n tempNode.minX = tempNode.positionX - tempNode.width / 2;\n tempNode.maxY = tempNode.positionY + tempNode.height / 2;\n tempNode.minY = tempNode.positionY - tempNode.height / 2;\n tempNode.padLeft = parseFloat(n.style('padding'));\n tempNode.padRight = parseFloat(n.style('padding'));\n tempNode.padTop = parseFloat(n.style('padding'));\n tempNode.padBottom = parseFloat(n.style('padding'));\n\n // forces\n tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion;\n\n // Add new node\n layoutInfo.layoutNodes.push(tempNode);\n // Add entry to id-index map\n layoutInfo.idToIndex[tempNode.id] = i;\n }\n\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n var tempGraph = [];\n\n // Second pass to add child information and\n // initialize queue for hierarchical traversal\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n var p_id = n.parentId;\n // Check if node n has a parent node\n if (null != p_id) {\n // Add node Id to parent's list of children\n layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);\n } else {\n // If a node doesn't have a parent, then it's in the root graph\n queue[++end] = n.id;\n tempGraph.push(n.id);\n }\n }\n\n // Add root graph to graphSet\n layoutInfo.graphSet.push(tempGraph);\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var node_id = queue[start++];\n var node_ix = layoutInfo.idToIndex[node_id];\n var node = layoutInfo.layoutNodes[node_ix];\n var children = node.children;\n if (children.length > 0) {\n // Add children nodes as a new graph to graph set\n layoutInfo.graphSet.push(children);\n // Add children to que queue to be visited\n for (var i = 0; i < children.length; i++) {\n queue[++end] = children[i];\n }\n }\n }\n\n // Create indexToGraph map\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n for (var j = 0; j < graph.length; j++) {\n var index = layoutInfo.idToIndex[graph[j]];\n layoutInfo.indexToGraph[index] = i;\n }\n }\n\n // Iterate over all edges, creating Layout Edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n var e = edges[i];\n var tempEdge = {};\n tempEdge.id = e.data('id');\n tempEdge.sourceId = e.data('source');\n tempEdge.targetId = e.data('target');\n\n // Compute ideal length\n var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength;\n var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity;\n\n // Check if it's an inter graph edge\n var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];\n var targetIx = layoutInfo.idToIndex[tempEdge.targetId];\n var sourceGraph = layoutInfo.indexToGraph[sourceIx];\n var targetGraph = layoutInfo.indexToGraph[targetIx];\n if (sourceGraph != targetGraph) {\n // Find lowest common graph ancestor\n var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);\n\n // Compute sum of node depths, relative to lca graph\n var lcaGraph = layoutInfo.graphSet[lca];\n var depth = 0;\n\n // Source depth\n var tempNode = layoutInfo.layoutNodes[sourceIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // Target depth\n tempNode = layoutInfo.layoutNodes[targetIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId +\n // \". Index: \" + lca + \" Contents: \" + lcaGraph.toString() +\n // \". Depth: \" + depth);\n\n // Update idealLength\n idealLength *= depth * options.nestingFactor;\n }\n tempEdge.idealLength = idealLength;\n tempEdge.elasticity = elasticity;\n layoutInfo.layoutEdges.push(tempEdge);\n }\n\n // Finally, return layoutInfo object\n return layoutInfo;\n };\n\n /**\n * @brief : This function finds the index of the lowest common\n * graph ancestor between 2 nodes in the subtree\n * (from the graph hierarchy induced tree) whose\n * root is graphIx\n *\n * @arg node1: node1's ID\n * @arg node2: node2's ID\n * @arg layoutInfo: layoutInfo object\n *\n */\n var findLCA = function findLCA(node1, node2, layoutInfo) {\n // Find their common ancester, starting from the root graph\n var res = findLCA_aux(node1, node2, 0, layoutInfo);\n if (2 > res.count) {\n // If aux function couldn't find the common ancester,\n // then it is the root graph\n return 0;\n } else {\n return res.graph;\n }\n };\n\n /**\n * @brief : Auxiliary function used for LCA computation\n *\n * @arg node1 : node1's ID\n * @arg node2 : node2's ID\n * @arg graphIx : subgraph index\n * @arg layoutInfo : layoutInfo object\n *\n * @return : object of the form {count: X, graph: Y}, where:\n * X is the number of ancestors (max: 2) found in\n * graphIx (and it's subgraphs),\n * Y is the graph index of the lowest graph containing\n * all X nodes\n */\n var findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) {\n var graph = layoutInfo.graphSet[graphIx];\n // If both nodes belongs to graphIx\n if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {\n return {\n count: 2,\n graph: graphIx\n };\n }\n\n // Make recursive calls for all subgraphs\n var c = 0;\n for (var i = 0; i < graph.length; i++) {\n var nodeId = graph[i];\n var nodeIx = layoutInfo.idToIndex[nodeId];\n var children = layoutInfo.layoutNodes[nodeIx].children;\n\n // If the node has no child, skip it\n if (0 === children.length) {\n continue;\n }\n var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]];\n var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo);\n if (0 === result.count) {\n // Neither node1 nor node2 are present in this subgraph\n continue;\n } else if (1 === result.count) {\n // One of (node1, node2) is present in this subgraph\n c++;\n if (2 === c) {\n // We've already found both nodes, no need to keep searching\n break;\n }\n } else {\n // Both nodes are present in this subgraph\n return result;\n }\n }\n return {\n count: c,\n graph: graphIx\n };\n };\n\n /**\n * @brief: printsLayoutInfo into js console\n * Only used for debbuging\n */\nvar printLayoutInfo; \n\n /**\n * @brief : Randomizes the position of all nodes\n */\n var randomizePositions = function randomizePositions(layoutInfo, cy) {\n var width = layoutInfo.clientWidth;\n var height = layoutInfo.clientHeight;\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n\n // No need to randomize compound nodes or locked nodes\n if (0 === n.children.length && !n.isLocked) {\n n.positionX = Math.random() * width;\n n.positionY = Math.random() * height;\n }\n }\n };\n var getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) {\n var bb = layoutInfo.boundingBox;\n var coseBB = {\n x1: Infinity,\n x2: -Infinity,\n y1: Infinity,\n y2: -Infinity\n };\n if (options.boundingBox) {\n nodes.forEach(function (node) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]];\n coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);\n coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);\n coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);\n coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);\n });\n coseBB.w = coseBB.x2 - coseBB.x1;\n coseBB.h = coseBB.y2 - coseBB.y1;\n }\n return function (ele, i) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]];\n if (options.boundingBox) {\n // then add extra bounding box constraint\n var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;\n var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;\n return {\n x: bb.x1 + pctX * bb.w,\n y: bb.y1 + pctY * bb.h\n };\n } else {\n return {\n x: lnode.positionX,\n y: lnode.positionY\n };\n }\n };\n };\n\n /**\n * @brief : Updates the positions of nodes in the network\n * @arg layoutInfo : LayoutInfo object\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\n var refreshPositions = function refreshPositions(layoutInfo, cy, options) {\n // var s = 'Refreshing positions';\n // logDebug(s);\n\n var layout = options.layout;\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.positions(getScaledPos);\n\n // Trigger layoutReady only on first call\n if (true !== layoutInfo.ready) {\n // s = 'Triggering layoutready';\n // logDebug(s);\n layoutInfo.ready = true;\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: this\n });\n }\n };\n\n /**\n * @brief : Logs a debug message in JS console, if DEBUG is ON\n */\n // var logDebug = function(text) {\n // if (DEBUG) {\n // console.debug(text);\n // }\n // };\n\n /**\n * @brief : Performs one iteration of the physical simulation\n * @arg layoutInfo : LayoutInfo object already initialized\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\n var step = function step(layoutInfo, options, _step) {\n // var s = \"\\n\\n###############################\";\n // s += \"\\nSTEP: \" + step;\n // s += \"\\n###############################\\n\";\n // logDebug(s);\n\n // Calculate node repulsions\n calculateNodeForces(layoutInfo, options);\n // Calculate edge forces\n calculateEdgeForces(layoutInfo);\n // Calculate gravity forces\n calculateGravityForces(layoutInfo, options);\n // Propagate forces from parent to child\n propagateForces(layoutInfo);\n // Update positions based on calculated forces\n updatePositions(layoutInfo);\n };\n\n /**\n * @brief : Computes the node repulsion forces\n */\n var calculateNodeForces = function calculateNodeForces(layoutInfo, options) {\n // Go through each of the graphs in graphSet\n // Nodes only repel each other if they belong to the same graph\n // var s = 'calculateNodeForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Now get all the pairs of nodes\n // Only get each pair once, (A, B) = (B, A)\n for (var j = 0; j < numNodes; j++) {\n var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n for (var k = j + 1; k < numNodes; k++) {\n var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];\n nodeRepulsion(node1, node2, layoutInfo, options);\n }\n }\n }\n };\n var randomDistance = function randomDistance(max) {\n return -max + 2 * max * Math.random();\n };\n\n /**\n * @brief : Compute the node repulsion forces between a pair of nodes\n */\n var nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) {\n // var s = \"Node repulsion. Node1: \" + node1.id + \" Node2: \" + node2.id;\n\n var cmptId1 = node1.cmptId;\n var cmptId2 = node2.cmptId;\n if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {\n return;\n }\n\n // Get direction of line connecting both node centers\n var directionX = node2.positionX - node1.positionX;\n var directionY = node2.positionY - node1.positionY;\n var maxRandDist = 1;\n // s += \"\\ndirectionX: \" + directionX + \", directionY: \" + directionY;\n\n // If both centers are the same, apply a random force\n if (0 === directionX && 0 === directionY) {\n directionX = randomDistance(maxRandDist);\n directionY = randomDistance(maxRandDist);\n }\n var overlap = nodesOverlap(node1, node2, directionX, directionY);\n if (overlap > 0) {\n // s += \"\\nNodes DO overlap.\";\n // s += \"\\nOverlap: \" + overlap;\n // If nodes overlap, repulsion force is proportional\n // to the overlap\n var force = options.nodeOverlap * overlap;\n\n // Compute the module and components of the force vector\n var distance = Math.sqrt(directionX * directionX + directionY * directionY);\n // s += \"\\nDistance: \" + distance;\n var forceX = force * directionX / distance;\n var forceY = force * directionY / distance;\n } else {\n // s += \"\\nNodes do NOT overlap.\";\n // If there's no overlap, force is inversely proportional\n // to squared distance\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(node1, directionX, directionY);\n var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);\n\n // Use clipping points to compute distance\n var distanceX = point2.x - point1.x;\n var distanceY = point2.y - point1.y;\n var distanceSqr = distanceX * distanceX + distanceY * distanceY;\n var distance = Math.sqrt(distanceSqr);\n // s += \"\\nDistance: \" + distance;\n\n // Compute the module and components of the force vector\n var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;\n var forceX = force * distanceX / distance;\n var forceY = force * distanceY / distance;\n }\n\n // Apply force\n if (!node1.isLocked) {\n node1.offsetX -= forceX;\n node1.offsetY -= forceY;\n }\n if (!node2.isLocked) {\n node2.offsetX += forceX;\n node2.offsetY += forceY;\n }\n\n // s += \"\\nForceX: \" + forceX + \" ForceY: \" + forceY;\n // logDebug(s);\n\n return;\n };\n\n /**\n * @brief : Determines whether two nodes overlap or not\n * @return : Amount of overlapping (0 => no overlap)\n */\n var nodesOverlap = function nodesOverlap(node1, node2, dX, dY) {\n if (dX > 0) {\n var overlapX = node1.maxX - node2.minX;\n } else {\n var overlapX = node2.maxX - node1.minX;\n }\n if (dY > 0) {\n var overlapY = node1.maxY - node2.minY;\n } else {\n var overlapY = node2.maxY - node1.minY;\n }\n if (overlapX >= 0 && overlapY >= 0) {\n return Math.sqrt(overlapX * overlapX + overlapY * overlapY);\n } else {\n return 0;\n }\n };\n\n /**\n * @brief : Finds the point in which an edge (direction dX, dY) intersects\n * the rectangular bounding box of it's source/target node\n */\n var findClippingPoint = function findClippingPoint(node, dX, dY) {\n // Shorcuts\n var X = node.positionX;\n var Y = node.positionY;\n var H = node.height || 1;\n var W = node.width || 1;\n var dirSlope = dY / dX;\n var nodeSlope = H / W;\n\n // var s = 'Computing clipping point of node ' + node.id +\n // \" . Height: \" + H + \", Width: \" + W +\n // \"\\nDirection \" + dX + \", \" + dY;\n //\n // Compute intersection\n var res = {};\n\n // Case: Vertical direction (up)\n if (0 === dX && 0 < dY) {\n res.x = X;\n // s += \"\\nUp direction\";\n res.y = Y + H / 2;\n return res;\n }\n\n // Case: Vertical direction (down)\n if (0 === dX && 0 > dY) {\n res.x = X;\n res.y = Y + H / 2;\n // s += \"\\nDown direction\";\n\n return res;\n }\n\n // Case: Intersects the right border\n if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X + W / 2;\n res.y = Y + W * dY / 2 / dX;\n // s += \"\\nRightborder\";\n\n return res;\n }\n\n // Case: Intersects the left border\n if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X - W / 2;\n res.y = Y - W * dY / 2 / dX;\n // s += \"\\nLeftborder\";\n\n return res;\n }\n\n // Case: Intersects the top border\n if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X + H * dX / 2 / dY;\n res.y = Y + H / 2;\n // s += \"\\nTop border\";\n\n return res;\n }\n\n // Case: Intersects the bottom border\n if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X - H * dX / 2 / dY;\n res.y = Y - H / 2;\n // s += \"\\nBottom border\";\n\n return res;\n }\n\n // s += \"\\nClipping point found at \" + res.x + \", \" + res.y;\n // logDebug(s);\n return res;\n };\n\n /**\n * @brief : Calculates all edge forces\n */\n var calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) {\n // Iterate over all edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n // Get edge, source & target nodes\n var edge = layoutInfo.layoutEdges[i];\n var sourceIx = layoutInfo.idToIndex[edge.sourceId];\n var source = layoutInfo.layoutNodes[sourceIx];\n var targetIx = layoutInfo.idToIndex[edge.targetId];\n var target = layoutInfo.layoutNodes[targetIx];\n\n // Get direction of line connecting both node centers\n var directionX = target.positionX - source.positionX;\n var directionY = target.positionY - source.positionY;\n\n // If both centers are the same, do nothing.\n // A random force has already been applied as node repulsion\n if (0 === directionX && 0 === directionY) {\n continue;\n }\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(source, directionX, directionY);\n var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);\n var lx = point2.x - point1.x;\n var ly = point2.y - point1.y;\n var l = Math.sqrt(lx * lx + ly * ly);\n var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;\n if (0 !== l) {\n var forceX = force * lx / l;\n var forceY = force * ly / l;\n } else {\n var forceX = 0;\n var forceY = 0;\n }\n\n // Add this force to target and source nodes\n if (!source.isLocked) {\n source.offsetX += forceX;\n source.offsetY += forceY;\n }\n if (!target.isLocked) {\n target.offsetX -= forceX;\n target.offsetY -= forceY;\n }\n\n // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id;\n // s += \"\\nDistance: \" + l + \" Force: (\" + forceX + \", \" + forceY + \")\";\n // logDebug(s);\n }\n };\n\n /**\n * @brief : Computes gravity forces for all nodes\n */\n var calculateGravityForces = function calculateGravityForces(layoutInfo, options) {\n if (options.gravity === 0) {\n return;\n }\n var distThreshold = 1;\n\n // var s = 'calculateGravityForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Compute graph center\n if (0 === i) {\n var centerX = layoutInfo.clientHeight / 2;\n var centerY = layoutInfo.clientWidth / 2;\n } else {\n // Get Parent node for this graph, and use its position as center\n var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];\n var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];\n var centerX = parent.positionX;\n var centerY = parent.positionY;\n }\n // s = \"Center found at: \" + centerX + \", \" + centerY;\n // logDebug(s);\n\n // Apply force to all nodes in graph\n for (var j = 0; j < numNodes; j++) {\n var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n // s = \"Node: \" + node.id;\n\n if (node.isLocked) {\n continue;\n }\n var dx = centerX - node.positionX;\n var dy = centerY - node.positionY;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d > distThreshold) {\n var fx = options.gravity * dx / d;\n var fy = options.gravity * dy / d;\n node.offsetX += fx;\n node.offsetY += fy;\n // s += \": Applied force: \" + fx + \", \" + fy;\n }\n // logDebug(s);\n }\n }\n };\n\n /**\n * @brief : This function propagates the existing offsets from\n * parent nodes to its descendents.\n * @arg layoutInfo : layoutInfo Object\n * @arg cy : cytoscape Object\n * @arg options : Layout options\n */\n var propagateForces = function propagateForces(layoutInfo, options) {\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n // logDebug('propagateForces');\n\n // Start by visiting the nodes in the root graph\n queue.push.apply(queue, layoutInfo.graphSet[0]);\n end += layoutInfo.graphSet[0].length;\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var nodeId = queue[start++];\n var nodeIndex = layoutInfo.idToIndex[nodeId];\n var node = layoutInfo.layoutNodes[nodeIndex];\n var children = node.children;\n\n // We only need to process the node if it's compound\n if (0 < children.length && !node.isLocked) {\n var offX = node.offsetX;\n var offY = node.offsetY;\n\n // var s = \"Propagating offset from parent node : \" + node.id +\n // \". OffsetX: \" + offX + \". OffsetY: \" + offY;\n // s += \"\\n Children: \" + children.toString();\n // logDebug(s);\n\n for (var i = 0; i < children.length; i++) {\n var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]];\n // Propagate offset\n childNode.offsetX += offX;\n childNode.offsetY += offY;\n // Add children to queue to be visited\n queue[++end] = children[i];\n }\n\n // Reset parent offsets\n node.offsetX = 0;\n node.offsetY = 0;\n }\n }\n };\n\n /**\n * @brief : Updates the layout model positions, based on\n * the accumulated forces\n */\n var updatePositions = function updatePositions(layoutInfo, options) {\n // var s = 'Updating positions';\n // logDebug(s);\n\n // Reset boundaries for compound nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length) {\n // logDebug(\"Resetting boundaries of compound node: \" + n.id);\n n.maxX = undefined;\n n.minX = undefined;\n n.maxY = undefined;\n n.minY = undefined;\n }\n }\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length || n.isLocked) {\n // No need to set compound or locked node position\n // logDebug(\"Skipping position update of node: \" + n.id);\n continue;\n }\n // s = \"Node: \" + n.id + \" Previous position: (\" +\n // n.positionX + \", \" + n.positionY + \").\";\n\n // Limit displacement in order to improve stability\n var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);\n n.positionX += tempForce.x;\n n.positionY += tempForce.y;\n n.offsetX = 0;\n n.offsetY = 0;\n n.minX = n.positionX - n.width;\n n.maxX = n.positionX + n.width;\n n.minY = n.positionY - n.height;\n n.maxY = n.positionY + n.height;\n // s += \" New Position: (\" + n.positionX + \", \" + n.positionY + \").\";\n // logDebug(s);\n\n // Update ancestry boudaries\n updateAncestryBoundaries(n, layoutInfo);\n }\n\n // Update size, position of compund nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length && !n.isLocked) {\n n.positionX = (n.maxX + n.minX) / 2;\n n.positionY = (n.maxY + n.minY) / 2;\n n.width = n.maxX - n.minX;\n n.height = n.maxY - n.minY;\n // s = \"Updating position, size of compound node \" + n.id;\n // s += \"\\nPositionX: \" + n.positionX + \", PositionY: \" + n.positionY;\n // s += \"\\nWidth: \" + n.width + \", Height: \" + n.height;\n // logDebug(s);\n }\n }\n };\n\n /**\n * @brief : Limits a force (forceX, forceY) to be not\n * greater (in modulo) than max.\n 8 Preserves force direction.\n */\n var limitForce = function limitForce(forceX, forceY, max) {\n // var s = \"Limiting force: (\" + forceX + \", \" + forceY + \"). Max: \" + max;\n var force = Math.sqrt(forceX * forceX + forceY * forceY);\n if (force > max) {\n var res = {\n x: max * forceX / force,\n y: max * forceY / force\n };\n } else {\n var res = {\n x: forceX,\n y: forceY\n };\n }\n\n // s += \".\\nResult: (\" + res.x + \", \" + res.y + \")\";\n // logDebug(s);\n\n return res;\n };\n\n /**\n * @brief : Function used for keeping track of compound node\n * sizes, since they should bound all their subnodes.\n */\n var updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) {\n // var s = \"Propagating new position/size of node \" + node.id;\n var parentId = node.parentId;\n if (null == parentId) {\n // If there's no parent, we are done\n // s += \". No parent node.\";\n // logDebug(s);\n return;\n }\n\n // Get Parent Node\n var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];\n var flag = false;\n\n // MaxX\n if (null == p.maxX || node.maxX + p.padRight > p.maxX) {\n p.maxX = node.maxX + p.padRight;\n flag = true;\n // s += \"\\nNew maxX for parent node \" + p.id + \": \" + p.maxX;\n }\n\n // MinX\n if (null == p.minX || node.minX - p.padLeft < p.minX) {\n p.minX = node.minX - p.padLeft;\n flag = true;\n // s += \"\\nNew minX for parent node \" + p.id + \": \" + p.minX;\n }\n\n // MaxY\n if (null == p.maxY || node.maxY + p.padBottom > p.maxY) {\n p.maxY = node.maxY + p.padBottom;\n flag = true;\n // s += \"\\nNew maxY for parent node \" + p.id + \": \" + p.maxY;\n }\n\n // MinY\n if (null == p.minY || node.minY - p.padTop < p.minY) {\n p.minY = node.minY - p.padTop;\n flag = true;\n // s += \"\\nNew minY for parent node \" + p.id + \": \" + p.minY;\n }\n\n // If updated boundaries, propagate changes upward\n if (flag) {\n // logDebug(s);\n return updateAncestryBoundaries(p, layoutInfo);\n }\n\n // s += \". No changes in boundaries/position of parent node \" + p.id;\n // logDebug(s);\n return;\n };\n var separateComponents = function separateComponents(layoutInfo, options) {\n var nodes = layoutInfo.layoutNodes;\n var components = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var cid = node.cmptId;\n var component = components[cid] = components[cid] || [];\n component.push(node);\n }\n var totalA = 0;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n c.x1 = Infinity;\n c.x2 = -Infinity;\n c.y1 = Infinity;\n c.y2 = -Infinity;\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n c.x1 = Math.min(c.x1, n.positionX - n.width / 2);\n c.x2 = Math.max(c.x2, n.positionX + n.width / 2);\n c.y1 = Math.min(c.y1, n.positionY - n.height / 2);\n c.y2 = Math.max(c.y2, n.positionY + n.height / 2);\n }\n c.w = c.x2 - c.x1;\n c.h = c.y2 - c.y1;\n totalA += c.w * c.h;\n }\n components.sort(function (c1, c2) {\n return c2.w * c2.h - c1.w * c1.h;\n });\n var x = 0;\n var y = 0;\n var usedW = 0;\n var rowH = 0;\n var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n if (!n.isLocked) {\n n.positionX += x - c.x1;\n n.positionY += y - c.y1;\n }\n }\n x += c.w + options.componentSpacing;\n usedW += c.w + options.componentSpacing;\n rowH = Math.max(rowH, c.h);\n if (usedW > maxRowW) {\n y += rowH + options.componentSpacing;\n x = 0;\n usedW = 0;\n rowH = 0;\n }\n }\n };\n\n var defaults$3 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // padding used on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n avoidOverlapPadding: 10,\n // extra spacing around nodes when avoidOverlap: true\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n condense: false,\n // uses all available space on false, uses minimal space on true\n rows: undefined,\n // force num of rows in the grid\n cols: undefined,\n // force num of columns in the grid\n position: function position(node) {},\n // returns { row, col } for element\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function GridLayout(options) {\n this.options = extend({}, defaults$3, options);\n }\n GridLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n if (bb.h === 0 || bb.w === 0) {\n eles.nodes().layoutPositions(this, options, function (ele) {\n return {\n x: bb.x1,\n y: bb.y1\n };\n });\n } else {\n // width/height * splits^2 = cells where splits is number of times to split width\n var cells = nodes.size();\n var splits = Math.sqrt(cells * bb.h / bb.w);\n var rows = Math.round(splits);\n var cols = Math.round(bb.w / bb.h * splits);\n var small = function small(val) {\n if (val == null) {\n return Math.min(rows, cols);\n } else {\n var min = Math.min(rows, cols);\n if (min == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var large = function large(val) {\n if (val == null) {\n return Math.max(rows, cols);\n } else {\n var max = Math.max(rows, cols);\n if (max == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var oRows = options.rows;\n var oCols = options.cols != null ? options.cols : options.columns;\n\n // if rows or columns were set in options, use those values\n if (oRows != null && oCols != null) {\n rows = oRows;\n cols = oCols;\n } else if (oRows != null && oCols == null) {\n rows = oRows;\n cols = Math.ceil(cells / rows);\n } else if (oRows == null && oCols != null) {\n cols = oCols;\n rows = Math.ceil(cells / cols);\n }\n\n // otherwise use the automatic values and adjust accordingly\n\n // if rounding was up, see if we can reduce rows or columns\n else if (cols * rows > cells) {\n var sm = small();\n var lg = large();\n\n // reducing the small side takes away the most cells, so try it first\n if ((sm - 1) * lg >= cells) {\n small(sm - 1);\n } else if ((lg - 1) * sm >= cells) {\n large(lg - 1);\n }\n } else {\n // if rounding was too low, add rows or columns\n while (cols * rows < cells) {\n var _sm = small();\n var _lg = large();\n\n // try to add to larger side first (adds less in multiplication)\n if ((_lg + 1) * _sm >= cells) {\n large(_lg + 1);\n } else {\n small(_sm + 1);\n }\n }\n }\n var cellWidth = bb.w / cols;\n var cellHeight = bb.h / rows;\n if (options.condense) {\n cellWidth = 0;\n cellHeight = 0;\n }\n if (options.avoidOverlap) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = node._private.position;\n if (pos.x == null || pos.y == null) {\n // for bb\n pos.x = 0;\n pos.y = 0;\n }\n var nbb = node.layoutDimensions(options);\n var p = options.avoidOverlapPadding;\n var w = nbb.w + p;\n var h = nbb.h + p;\n cellWidth = Math.max(cellWidth, w);\n cellHeight = Math.max(cellHeight, h);\n }\n }\n var cellUsed = {}; // e.g. 'c-0-2' => true\n\n var used = function used(row, col) {\n return cellUsed['c-' + row + '-' + col] ? true : false;\n };\n var use = function use(row, col) {\n cellUsed['c-' + row + '-' + col] = true;\n };\n\n // to keep track of current cell position\n var row = 0;\n var col = 0;\n var moveToNextCell = function moveToNextCell() {\n col++;\n if (col >= cols) {\n col = 0;\n row++;\n }\n };\n\n // get a cache of all the manual positions\n var id2manPos = {};\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var rcPos = options.position(_node);\n if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) {\n // must have at least row or col def'd\n var _pos = {\n row: rcPos.row,\n col: rcPos.col\n };\n if (_pos.col === undefined) {\n // find unused col\n _pos.col = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.col++;\n }\n } else if (_pos.row === undefined) {\n // find unused row\n _pos.row = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.row++;\n }\n }\n id2manPos[_node.id()] = _pos;\n use(_pos.row, _pos.col);\n }\n }\n var getPos = function getPos(element, i) {\n var x, y;\n if (element.locked() || element.isParent()) {\n return false;\n }\n\n // see if we have a manual position set\n var rcPos = id2manPos[element.id()];\n if (rcPos) {\n x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1;\n y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1;\n } else {\n // otherwise set automatically\n\n while (used(row, col)) {\n moveToNextCell();\n }\n x = col * cellWidth + cellWidth / 2 + bb.x1;\n y = row * cellHeight + cellHeight / 2 + bb.y1;\n use(row, col);\n moveToNextCell();\n }\n return {\n x: x,\n y: y\n };\n };\n nodes.layoutPositions(this, options, getPos);\n }\n return this; // chaining\n };\n\n // default layout options\n var defaults$2 = {\n ready: function ready() {},\n // on layoutready\n stop: function stop() {} // on layoutstop\n };\n\n // constructor\n // options : object containing layout options\n function NullLayout(options) {\n this.options = extend({}, defaults$2, options);\n }\n\n // runs the layout\n NullLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles; // elements to consider in the layout\n var layout = this;\n\n // cy is automatically populated for us in the constructor\n // (disable eslint for next line as this serves as example layout code to external developers)\n // eslint-disable-next-line no-unused-vars\n options.cy;\n layout.emit('layoutstart');\n\n // puts all nodes at (0, 0)\n // n.b. most layouts would use layoutPositions(), instead of positions() and manual events\n eles.nodes().positions(function () {\n return {\n x: 0,\n y: 0\n };\n });\n\n // trigger layoutready when each node has had its position set at least once\n layout.one('layoutready', options.ready);\n layout.emit('layoutready');\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n layout.one('layoutstop', options.stop);\n layout.emit('layoutstop');\n return this; // chaining\n };\n\n // called on continuous layouts to stop them before they finish\n NullLayout.prototype.stop = function () {\n return this; // chaining\n };\n\n var defaults$1 = {\n positions: undefined,\n // map of (node id) => (position obj); or function(node){ return somPos; }\n zoom: undefined,\n // the zoom level to set (prob want fit = false if set)\n pan: undefined,\n // the pan level to set (prob want fit = false if set)\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // padding on fit\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n function PresetLayout(options) {\n this.options = extend({}, defaults$1, options);\n }\n PresetLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles;\n var nodes = eles.nodes();\n var posIsFn = fn$6(options.positions);\n function getPosition(node) {\n if (options.positions == null) {\n return copyPosition(node.position());\n }\n if (posIsFn) {\n return options.positions(node);\n }\n var pos = options.positions[node._private.data.id];\n if (pos == null) {\n return null;\n }\n return pos;\n }\n nodes.layoutPositions(this, options, function (node, i) {\n var position = getPosition(node);\n if (node.locked() || position == null) {\n return false;\n }\n return position;\n });\n return this; // chaining\n };\n\n var defaults = {\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // fit padding\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function RandomLayout(options) {\n this.options = extend({}, defaults, options);\n }\n RandomLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var getPos = function getPos(node, i) {\n return {\n x: bb.x1 + Math.round(Math.random() * bb.w),\n y: bb.y1 + Math.round(Math.random() * bb.h)\n };\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n };\n\n var layout = [{\n name: 'breadthfirst',\n impl: BreadthFirstLayout\n }, {\n name: 'circle',\n impl: CircleLayout\n }, {\n name: 'concentric',\n impl: ConcentricLayout\n }, {\n name: 'cose',\n impl: CoseLayout\n }, {\n name: 'grid',\n impl: GridLayout\n }, {\n name: 'null',\n impl: NullLayout\n }, {\n name: 'preset',\n impl: PresetLayout\n }, {\n name: 'random',\n impl: RandomLayout\n }];\n\n function NullRenderer(options) {\n this.options = options;\n this.notifications = 0; // for testing\n }\n\n var noop = function noop() {};\n var throwImgErr = function throwImgErr() {\n throw new Error('A headless instance can not render images');\n };\n NullRenderer.prototype = {\n recalculateRenderedStyle: noop,\n notify: function notify() {\n this.notifications++;\n },\n init: noop,\n isHeadless: function isHeadless() {\n return true;\n },\n png: throwImgErr,\n jpg: throwImgErr\n };\n\n var BRp$f = {};\n BRp$f.arrowShapeWidth = 0.3;\n BRp$f.registerArrowShapes = function () {\n var arrowShapes = this.arrowShapes = {};\n var renderer = this;\n\n // Contract for arrow shapes:\n // 0, 0 is arrow tip\n // (0, 1) is direction towards node\n // (1, 0) is right\n //\n // functional api:\n // collide: check x, y in shape\n // roughCollide: called before collide, no false negatives\n // draw: draw\n // spacing: dist(arrowTip, nodeBoundary)\n // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip\n\n var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) {\n var x1 = translation.x - size / 2 - padding;\n var x2 = translation.x + size / 2 + padding;\n var y1 = translation.y - size / 2 - padding;\n var y2 = translation.y + size / 2 + padding;\n var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2;\n return inside;\n };\n var transform = function transform(x, y, size, angle, translation) {\n var xRotated = x * Math.cos(angle) - y * Math.sin(angle);\n var yRotated = x * Math.sin(angle) + y * Math.cos(angle);\n var xScaled = xRotated * size;\n var yScaled = yRotated * size;\n var xTranslated = xScaled + translation.x;\n var yTranslated = yScaled + translation.y;\n return {\n x: xTranslated,\n y: yTranslated\n };\n };\n var transformPoints = function transformPoints(pts, size, angle, translation) {\n var retPts = [];\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push(transform(x, y, size, angle, translation));\n }\n return retPts;\n };\n var pointsToArr = function pointsToArr(pts) {\n var ret = [];\n for (var i = 0; i < pts.length; i++) {\n var p = pts[i];\n ret.push(p.x, p.y);\n }\n return ret;\n };\n var standardGap = function standardGap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2;\n };\n var defineArrowShape = function defineArrowShape(name, defn) {\n if (string(defn)) {\n defn = arrowShapes[defn];\n }\n arrowShapes[name] = extend({\n name: name,\n points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],\n collide: function collide(x, y, size, angle, translation, padding) {\n var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, points);\n return inside;\n },\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation) {\n var points = transformPoints(this.points, size, angle, translation);\n renderer.arrowShapeImpl('polygon')(context, points);\n },\n spacing: function spacing(edge) {\n return 0;\n },\n gap: standardGap\n }, defn);\n };\n defineArrowShape('none', {\n collide: falsify,\n roughCollide: falsify,\n draw: noop$1,\n spacing: zeroify,\n gap: zeroify\n });\n defineArrowShape('triangle', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3]\n });\n defineArrowShape('arrow', 'triangle');\n defineArrowShape('triangle-backcurve', {\n points: arrowShapes['triangle'].points,\n controlPoint: [0, -0.15],\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var ptsTrans = transformPoints(this.points, size, angle, translation);\n var ctrlPt = this.controlPoint;\n var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);\n },\n gap: function gap(edge) {\n return standardGap(edge) * 0.8;\n }\n });\n defineArrowShape('triangle-tee', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var teePts = transformPoints(this.pointsTee, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, teePts);\n }\n });\n defineArrowShape('circle-triangle', {\n radius: 0.15,\n pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n return pointInsidePolygonPoints(x, y, triPts) || circleInside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.pointsTr, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('triangle-cross', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n baseCrossLinePts: [-0.15, -0.4,\n // first half of the rectangle\n -0.15, -0.4, 0.15, -0.4,\n // second half of the rectangle\n 0.15, -0.4],\n crossLinePts: function crossLinePts(size, edgeWidth) {\n // shift points so that the distance between the cross points matches edge width\n var p = this.baseCrossLinePts.slice();\n var shiftFactor = edgeWidth / size;\n var y0 = 3;\n var y1 = 5;\n p[y0] = p[y0] - shiftFactor;\n p[y1] = p[y1] - shiftFactor;\n return p;\n },\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts);\n }\n });\n defineArrowShape('vee', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],\n gap: function gap(edge) {\n return standardGap(edge) * 0.525;\n }\n });\n defineArrowShape('circle', {\n radius: 0.15,\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('tee', {\n points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],\n spacing: function spacing(edge) {\n return 1;\n },\n gap: function gap(edge) {\n return 1;\n }\n });\n defineArrowShape('square', {\n points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3]\n });\n defineArrowShape('diamond', {\n points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],\n gap: function gap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n defineArrowShape('chevron', {\n points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],\n gap: function gap(edge) {\n return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n };\n\n var BRp$e = {};\n\n // Project mouse\n BRp$e.projectIntoViewport = function (clientX, clientY) {\n var cy = this.cy;\n var offsets = this.findContainerClientCoords();\n var offsetLeft = offsets[0];\n var offsetTop = offsets[1];\n var scale = offsets[4];\n var pan = cy.pan();\n var zoom = cy.zoom();\n var x = ((clientX - offsetLeft) / scale - pan.x) / zoom;\n var y = ((clientY - offsetTop) / scale - pan.y) / zoom;\n return [x, y];\n };\n BRp$e.findContainerClientCoords = function () {\n if (this.containerBB) {\n return this.containerBB;\n }\n var container = this.container;\n var rect = container.getBoundingClientRect();\n var style = this.cy.window().getComputedStyle(container);\n var styleValue = function styleValue(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n var padding = {\n left: styleValue('padding-left'),\n right: styleValue('padding-right'),\n top: styleValue('padding-top'),\n bottom: styleValue('padding-bottom')\n };\n var border = {\n left: styleValue('border-left-width'),\n right: styleValue('border-right-width'),\n top: styleValue('border-top-width'),\n bottom: styleValue('border-bottom-width')\n };\n var clientWidth = container.clientWidth;\n var clientHeight = container.clientHeight;\n var paddingHor = padding.left + padding.right;\n var paddingVer = padding.top + padding.bottom;\n var borderHor = border.left + border.right;\n var scale = rect.width / (clientWidth + borderHor);\n var unscaledW = clientWidth - paddingHor;\n var unscaledH = clientHeight - paddingVer;\n var left = rect.left + padding.left + border.left;\n var top = rect.top + padding.top + border.top;\n return this.containerBB = [left, top, unscaledW, unscaledH, scale];\n };\n BRp$e.invalidateContainerClientCoordsCache = function () {\n this.containerBB = null;\n };\n BRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) {\n return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0];\n };\n BRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) {\n var self = this;\n var r = this;\n var eles = r.getCachedZSortedEles();\n var near = []; // 1 node max, 1 edge max\n var zoom = r.cy.zoom();\n var hasCompounds = r.cy.hasCompoundNodes();\n var edgeThreshold = (isTouch ? 24 : 8) / zoom;\n var nodeThreshold = (isTouch ? 8 : 2) / zoom;\n var labelThreshold = (isTouch ? 8 : 2) / zoom;\n var minSqDist = Infinity;\n var nearEdge;\n var nearNode;\n if (interactiveElementsOnly) {\n eles = eles.interactive;\n }\n function addEle(ele, sqDist) {\n if (ele.isNode()) {\n if (nearNode) {\n return; // can't replace node\n } else {\n nearNode = ele;\n near.push(ele);\n }\n }\n if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) {\n if (nearEdge) {\n // then replace existing edge\n // can replace only if same z-index\n if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) {\n for (var i = 0; i < near.length; i++) {\n if (near[i].isEdge()) {\n near[i] = ele;\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n break;\n }\n }\n }\n } else {\n near.push(ele);\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n }\n }\n }\n function checkNode(node) {\n var width = node.outerWidth() + 2 * nodeThreshold;\n var height = node.outerHeight() + 2 * nodeThreshold;\n var hw = width / 2;\n var hh = height / 2;\n var pos = node.position();\n if (pos.x - hw <= x && x <= pos.x + hw // bb check x\n && pos.y - hh <= y && y <= pos.y + hh // bb check y\n ) {\n var shape = r.nodeShapes[self.getNodeShape(node)];\n if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) {\n addEle(node, 0);\n return true;\n }\n }\n }\n function checkEdge(edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var styleWidth = edge.pstyle('width').pfValue;\n var scale = edge.pstyle('arrow-scale').value;\n var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre\n var widthSq = width * width;\n var width2 = width * 2;\n var src = _p.source;\n var tgt = _p.target;\n var sqDist;\n if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') {\n var pts = rs.allpts;\n for (var i = 0; i + 3 < pts.length; i += 2) {\n if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n var pts = rs.allpts;\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n }\n\n // if we're close to the edge but didn't hit it, maybe we hit its arrows\n\n var src = src || _p.source;\n var tgt = tgt || _p.target;\n var arSize = self.getArrowWidth(styleWidth, scale);\n var arrows = [{\n name: 'source',\n x: rs.arrowStartX,\n y: rs.arrowStartY,\n angle: rs.srcArrowAngle\n }, {\n name: 'target',\n x: rs.arrowEndX,\n y: rs.arrowEndY,\n angle: rs.tgtArrowAngle\n }, {\n name: 'mid-source',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midsrcArrowAngle\n }, {\n name: 'mid-target',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midtgtArrowAngle\n }];\n for (var i = 0; i < arrows.length; i++) {\n var ar = arrows[i];\n var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value];\n var edgeWidth = edge.pstyle('width').pfValue;\n if (shape.roughCollide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold)) {\n addEle(edge);\n return true;\n }\n }\n\n // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence)\n if (hasCompounds && near.length > 0) {\n checkNode(src);\n checkNode(tgt);\n }\n }\n function preprop(obj, name, pre) {\n return getPrefixedProperty(obj, name, pre);\n }\n function checkLabel(ele, prefix) {\n var _p = ele._private;\n var th = labelThreshold;\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n ele.boundingBox();\n var bb = _p.labelBounds[prefix || 'main'];\n var text = ele.pstyle(prefixDash + 'label').value;\n var eventsEnabled = ele.pstyle('text-events').strValue === 'yes';\n if (!eventsEnabled || !text) {\n return;\n }\n var lx = preprop(_p.rscratch, 'labelX', prefix);\n var ly = preprop(_p.rscratch, 'labelY', prefix);\n var theta = preprop(_p.rscratch, 'labelAngle', prefix);\n var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin\n var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly)\n var ly1 = bb.y1 - th - oy;\n var ly2 = bb.y2 + th - oy;\n if (theta) {\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n var rotate = function rotate(x, y) {\n x = x - lx;\n y = y - ly;\n return {\n x: x * cos - y * sin + lx,\n y: x * sin + y * cos + ly\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n var points = [\n // with the margin added after the rotation is applied\n px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy];\n if (pointInsidePolygonPoints(x, y, points)) {\n addEle(ele);\n return true;\n }\n } else {\n // do a cheaper bb check\n if (inBoundingBox(bb, x, y)) {\n addEle(ele);\n return true;\n }\n }\n }\n for (var i = eles.length - 1; i >= 0; i--) {\n // reverse order for precedence\n var ele = eles[i];\n if (ele.isNode()) {\n checkNode(ele) || checkLabel(ele);\n } else {\n // then edge\n checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target');\n }\n }\n return near;\n };\n\n // 'Give me everything from this box'\n BRp$e.getAllInBox = function (x1, y1, x2, y2) {\n var eles = this.getCachedZSortedEles().interactive;\n var box = [];\n var x1c = Math.min(x1, x2);\n var x2c = Math.max(x1, x2);\n var y1c = Math.min(y1, y2);\n var y2c = Math.max(y1, y2);\n x1 = x1c;\n x2 = x2c;\n y1 = y1c;\n y2 = y2c;\n var boxBb = makeBoundingBox({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n if (ele.isNode()) {\n var node = ele;\n var nodeBb = node.boundingBox({\n includeNodes: true,\n includeEdges: false,\n includeLabels: false\n });\n if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {\n box.push(node);\n }\n } else {\n var edge = ele;\n var _p = edge._private;\n var rs = _p.rscratch;\n if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {\n continue;\n }\n if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {\n continue;\n }\n if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') {\n var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;\n var allInside = true;\n for (var i = 0; i < pts.length; i++) {\n if (!pointInBoundingBox(boxBb, pts[i])) {\n allInside = false;\n break;\n }\n }\n if (allInside) {\n box.push(edge);\n }\n } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') {\n box.push(edge);\n }\n }\n }\n return box;\n };\n\n var BRp$d = {};\n BRp$d.calculateArrowAngles = function (edge) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n var isBezier = rs.edgeType === 'bezier';\n var isMultibezier = rs.edgeType === 'multibezier';\n var isSegments = rs.edgeType === 'segments';\n var isCompound = rs.edgeType === 'compound';\n var isSelf = rs.edgeType === 'self';\n\n // Displacement gives direction for arrowhead orientation\n var dispX, dispY;\n var startX, startY, endX, endY, midX, midY;\n if (isHaystack) {\n startX = rs.haystackPts[0];\n startY = rs.haystackPts[1];\n endX = rs.haystackPts[2];\n endY = rs.haystackPts[3];\n } else {\n startX = rs.arrowStartX;\n startY = rs.arrowStartY;\n endX = rs.arrowEndX;\n endY = rs.arrowEndY;\n }\n midX = rs.midX;\n midY = rs.midY;\n\n // source\n //\n\n if (isSegments) {\n dispX = startX - rs.segpts[0];\n dispY = startY - rs.segpts[1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1);\n var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1);\n dispX = startX - bX;\n dispY = startY - bY;\n } else {\n dispX = startX - midX;\n dispY = startY - midY;\n }\n rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // mid target\n //\n\n var midX = rs.midX;\n var midY = rs.midY;\n if (isHaystack) {\n midX = (startX + endX) / 2;\n midY = (startY + endY) / 2;\n }\n dispX = endX - startX;\n dispY = endY - startY;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) {\n var i2 = pts.length / 2;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n } else {\n var i2 = pts.length / 2 - 1;\n var i1 = i2 - 2;\n var i3 = i2 + 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n }\n } else if (isMultibezier || isCompound || isSelf) {\n var pts = rs.allpts;\n var cpts = rs.ctrlpts;\n var bp0x, bp0y;\n var bp1x, bp1y;\n if (cpts.length / 2 % 2 === 0) {\n var p0 = pts.length / 2 - 1; // startpt\n var ic = p0 + 2;\n var p1 = ic + 2;\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001);\n } else {\n var ic = pts.length / 2 - 1; // ctrpt\n var p0 = ic - 2; // startpt\n var p1 = ic + 2; // endpt\n\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5);\n }\n dispX = bp1x - bp0x;\n dispY = bp1y - bp0y;\n }\n rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);\n rs.midDispX = dispX;\n rs.midDispY = dispY;\n\n // mid source\n //\n\n dispX *= -1;\n dispY *= -1;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) ; else {\n var i2 = pts.length / 2 - 1;\n var i3 = i2 + 2;\n dispX = -(pts[i3] - pts[i2]);\n dispY = -(pts[i3 + 1] - pts[i2 + 1]);\n }\n }\n rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // target\n //\n\n if (isSegments) {\n dispX = endX - rs.segpts[rs.segpts.length - 2];\n dispY = endY - rs.segpts[rs.segpts.length - 1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var l = pts.length;\n var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9);\n var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9);\n dispX = endX - bX;\n dispY = endY - bY;\n } else {\n dispX = endX - midX;\n dispY = endY - midY;\n }\n rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);\n };\n BRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) {\n var cache = this.arrowWidthCache = this.arrowWidthCache || {};\n var cachedVal = cache[edgeWidth + ', ' + scale];\n if (cachedVal) {\n return cachedVal;\n }\n cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;\n cache[edgeWidth + ', ' + scale] = cachedVal;\n return cachedVal;\n };\n\n var BRp$c = {};\n BRp$c.findMidptPtsEtc = function (edge, pairInfo) {\n var posPts = pairInfo.posPts,\n intersectionPts = pairInfo.intersectionPts,\n vectorNormInverse = pairInfo.vectorNormInverse;\n var midptPts;\n\n // n.b. assumes all edges in bezier bundle have same endpoints specified\n var srcManEndpt = edge.pstyle('source-endpoint');\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null;\n var recalcVectorNormInverse = function recalcVectorNormInverse(x1, y1, x2, y2) {\n var dy = y2 - y1;\n var dx = x2 - x1;\n var l = Math.sqrt(dx * dx + dy * dy);\n return {\n x: -dy / l,\n y: dx / l\n };\n };\n var edgeDistances = edge.pstyle('edge-distances').value;\n switch (edgeDistances) {\n case 'node-position':\n midptPts = posPts;\n break;\n case 'intersection':\n midptPts = intersectionPts;\n break;\n case 'endpoints':\n {\n if (haveManualEndPts) {\n var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt),\n _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2),\n x1 = _this$manualEndptToPx2[0],\n y1 = _this$manualEndptToPx2[1];\n var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt),\n _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2),\n x2 = _this$manualEndptToPx4[0],\n y2 = _this$manualEndptToPx4[1];\n var endPts = {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2);\n midptPts = endPts;\n } else {\n warn(\"Edge \".concat(edge.id(), \" has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).\"));\n midptPts = intersectionPts; // back to default\n }\n\n break;\n }\n }\n return {\n midptPts: midptPts,\n vectorNormInverse: vectorNormInverse\n };\n };\n BRp$c.findHaystackPoints = function (edges) {\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var rs = _p.rscratch;\n if (!rs.haystack) {\n var angle = Math.random() * 2 * Math.PI;\n rs.source = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n angle = Math.random() * 2 * Math.PI;\n rs.target = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n }\n var src = _p.source;\n var tgt = _p.target;\n var srcPos = src.position();\n var tgtPos = tgt.position();\n var srcW = src.width();\n var tgtW = tgt.width();\n var srcH = src.height();\n var tgtH = tgt.height();\n var radius = edge.pstyle('haystack-radius').value;\n var halfRadius = radius / 2; // b/c have to half width/height\n\n rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];\n rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;\n rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;\n\n // always override as haystack in case set to different type previously\n rs.edgeType = 'haystack';\n rs.haystack = true;\n this.storeEdgeProjections(edge);\n this.calculateArrowAngles(edge);\n this.recalculateEdgeLabelProjections(edge);\n this.calculateLabelAngles(edge);\n }\n };\n BRp$c.findSegmentsPoints = function (edge, pairInfo) {\n // Segments (multiple straight lines)\n\n var rs = edge._private.rscratch;\n var segmentWs = edge.pstyle('segment-weights');\n var segmentDs = edge.pstyle('segment-distances');\n var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);\n rs.edgeType = 'segments';\n rs.segpts = [];\n for (var s = 0; s < segmentsN; s++) {\n var w = segmentWs.pfValue[s];\n var d = segmentDs.pfValue[s];\n var w1 = 1 - w;\n var w2 = w;\n var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);\n }\n };\n BRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Self-edge\n\n var rs = edge._private.rscratch;\n var dirCounts = pairInfo.dirCounts,\n srcPos = pairInfo.srcPos;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var loopDir = edge.pstyle('loop-direction').pfValue;\n var loopSwp = edge.pstyle('loop-sweep').pfValue;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n rs.edgeType = 'self';\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopAngle = loopDir - Math.PI / 2;\n var outAngle = loopAngle - loopSwp / 2;\n var inAngle = loopAngle + loopSwp / 2;\n\n // increase by step size for overlapping loops, keyed on direction and sweep values\n var dc = String(loopDir + '_' + loopSwp);\n j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc];\n rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];\n };\n BRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Compound edge\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'compound';\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopW = 50;\n var loopaPos = {\n x: srcPos.x - srcW / 2,\n y: srcPos.y - srcH / 2\n };\n var loopbPos = {\n x: tgtPos.x - tgtW / 2,\n y: tgtPos.y - tgtH / 2\n };\n var loopPos = {\n x: Math.min(loopaPos.x, loopbPos.x),\n y: Math.min(loopaPos.y, loopbPos.y)\n };\n\n // avoids cases with impossible beziers\n var minCompoundStretch = 0.5;\n var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));\n var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));\n rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];\n };\n BRp$c.findStraightEdgePoints = function (edge) {\n // Straight edge within bundle\n\n edge._private.rscratch.edgeType = 'straight';\n };\n BRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) {\n var rs = edge._private.rscratch;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptWs = edge.pstyle('control-point-weights');\n var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var ctrlptWeight = ctrlptWs.value[0];\n\n // (Multi)bezier\n\n var multi = edgeIsUnbundled;\n rs.edgeType = multi ? 'multibezier' : 'bezier';\n rs.ctrlpts = [];\n for (var b = 0; b < bezierN; b++) {\n var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1);\n var manctrlptDist = void 0;\n var sign = signum(normctrlptDist);\n if (multi) {\n ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size\n ctrlptWeight = ctrlptWs.value[b];\n }\n if (edgeIsUnbundled) {\n // multi or single unbundled\n manctrlptDist = ctrlptDist;\n } else {\n manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined;\n }\n var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist;\n var w1 = 1 - ctrlptWeight;\n var w2 = ctrlptWeight;\n var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc2.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);\n }\n };\n BRp$c.findTaxiPoints = function (edge, pairInfo) {\n // Taxicab geometry with two turns maximum\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'segments';\n var VERTICAL = 'vertical';\n var HORIZONTAL = 'horizontal';\n var LEFTWARD = 'leftward';\n var RIGHTWARD = 'rightward';\n var DOWNWARD = 'downward';\n var UPWARD = 'upward';\n var AUTO = 'auto';\n var posPts = pairInfo.posPts,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var edgeDistances = edge.pstyle('edge-distances').value;\n var dIncludesNodeBody = edgeDistances !== 'node-position';\n var taxiDir = edge.pstyle('taxi-direction').value;\n var rawTaxiDir = taxiDir; // unprocessed value\n var taxiTurn = edge.pstyle('taxi-turn');\n var turnIsPercent = taxiTurn.units === '%';\n var taxiTurnPfVal = taxiTurn.pfValue;\n var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side\n var minD = edge.pstyle('taxi-turn-min-distance').pfValue;\n var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;\n var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;\n var pdx = posPts.x2 - posPts.x1;\n var pdy = posPts.y2 - posPts.y1;\n\n // take away the effective w/h from the magnitude of the delta value\n var subDWH = function subDWH(dxy, dwh) {\n if (dxy > 0) {\n return Math.max(dxy - dwh, 0);\n } else {\n return Math.min(dxy + dwh, 0);\n }\n };\n var dx = subDWH(pdx, dw);\n var dy = subDWH(pdy, dh);\n var isExplicitDir = false;\n if (rawTaxiDir === AUTO) {\n taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;\n } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {\n taxiDir = VERTICAL;\n isExplicitDir = true;\n } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {\n taxiDir = HORIZONTAL;\n isExplicitDir = true;\n }\n var isVert = taxiDir === VERTICAL;\n var l = isVert ? dy : dx;\n var pl = isVert ? pdy : pdx;\n var sgnL = signum(pl);\n var forcedDir = false;\n if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction\n && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {\n sgnL *= -1;\n l = sgnL * Math.abs(l);\n forcedDir = true;\n }\n var d;\n if (turnIsPercent) {\n var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;\n d = p * l;\n } else {\n var k = taxiTurnPfVal < 0 ? l : 0;\n d = k + taxiTurnPfVal * sgnL;\n }\n var getIsTooClose = function getIsTooClose(d) {\n return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l);\n };\n var isTooCloseSrc = getIsTooClose(d);\n var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));\n var isTooClose = isTooCloseSrc || isTooCloseTgt;\n if (isTooClose && !forcedDir) {\n // non-ideal routing\n if (isVert) {\n // vertical fallbacks\n var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;\n var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;\n if (lShapeInsideSrc) {\n // horizontal Z-shape (direction not respected)\n var x = (posPts.x1 + posPts.x2) / 2;\n var y1 = posPts.y1,\n y2 = posPts.y2;\n rs.segpts = [x, y1, x, y2];\n } else if (lShapeInsideTgt) {\n // vertical Z-shape (distance not respected)\n var y = (posPts.y1 + posPts.y2) / 2;\n var x1 = posPts.x1,\n x2 = posPts.x2;\n rs.segpts = [x1, y, x2, y];\n } else {\n // L-shape fallback (turn distance not respected, but works well with tree siblings)\n rs.segpts = [posPts.x1, posPts.y2];\n }\n } else {\n // horizontal fallbacks\n var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;\n var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;\n if (_lShapeInsideSrc) {\n // vertical Z-shape (direction not respected)\n var _y = (posPts.y1 + posPts.y2) / 2;\n var _x = posPts.x1,\n _x2 = posPts.x2;\n rs.segpts = [_x, _y, _x2, _y];\n } else if (_lShapeInsideTgt) {\n // horizontal Z-shape (turn distance not respected)\n var _x3 = (posPts.x1 + posPts.x2) / 2;\n var _y2 = posPts.y1,\n _y3 = posPts.y2;\n rs.segpts = [_x3, _y2, _x3, _y3];\n } else {\n // L-shape (turn distance not respected, but works well for tree siblings)\n rs.segpts = [posPts.x2, posPts.y1];\n }\n }\n } else {\n // ideal routing\n if (isVert) {\n var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);\n var _x4 = posPts.x1,\n _x5 = posPts.x2;\n rs.segpts = [_x4, _y4, _x5, _y4];\n } else {\n // horizontal\n var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);\n var _y5 = posPts.y1,\n _y6 = posPts.y2;\n rs.segpts = [_x6, _y5, _x6, _y6];\n }\n }\n };\n BRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) {\n var rs = edge._private.rscratch;\n\n // can only correct beziers for now...\n if (rs.edgeType === 'bezier') {\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH,\n srcShape = pairInfo.srcShape,\n tgtShape = pairInfo.tgtShape;\n var badStart = !number$1(rs.startX) || !number$1(rs.startY);\n var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);\n var badEnd = !number$1(rs.endX) || !number$1(rs.endY);\n var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);\n var minCpADistFactor = 3;\n var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n var minCpADist = minCpADistFactor * arrowW;\n var startACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.startX,\n y: rs.startY\n });\n var closeStartACp = startACpDist < minCpADist;\n var endACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.endX,\n y: rs.endY\n });\n var closeEndACp = endACpDist < minCpADist;\n var overlapping = false;\n if (badStart || badAStart || closeStartACp) {\n overlapping = true;\n\n // project control point along line from src centre to outside the src shape\n // (otherwise intersection will yield nothing)\n var cpD = {\n // delta\n x: rs.ctrlpts[0] - srcPos.x,\n y: rs.ctrlpts[1] - srcPos.y\n };\n var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line\n var cpM = {\n // normalised delta\n x: cpD.x / cpL,\n y: cpD.y / cpL\n };\n var radius = Math.max(srcW, srcH);\n var cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + cpM.x * 2 * radius,\n y: rs.ctrlpts[1] + cpM.y * 2 * radius\n };\n var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0);\n if (closeStartACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);\n } else {\n rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;\n rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;\n }\n }\n if (badEnd || badAEnd || closeEndACp) {\n overlapping = true;\n\n // project control point along line from tgt centre to outside the tgt shape\n // (otherwise intersection will yield nothing)\n var _cpD = {\n // delta\n x: rs.ctrlpts[0] - tgtPos.x,\n y: rs.ctrlpts[1] - tgtPos.y\n };\n var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line\n var _cpM = {\n // normalised delta\n x: _cpD.x / _cpL,\n y: _cpD.y / _cpL\n };\n var _radius = Math.max(srcW, srcH);\n var _cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,\n y: rs.ctrlpts[1] + _cpM.y * 2 * _radius\n };\n var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0);\n if (closeEndACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);\n } else {\n rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;\n rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;\n }\n }\n if (overlapping) {\n // recalc endpts\n this.findEndpoints(edge);\n }\n }\n };\n BRp$c.storeAllpts = function (edge) {\n var rs = edge._private.rscratch;\n if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {\n // ctrl pt itself\n rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);\n\n // the midpt between ctrlpts as intermediate destination pts\n if (b + 3 < rs.ctrlpts.length) {\n rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);\n }\n }\n rs.allpts.push(rs.endX, rs.endY);\n var m, mt;\n if (rs.ctrlpts.length / 2 % 2 === 0) {\n m = rs.allpts.length / 2 - 1;\n rs.midX = rs.allpts[m];\n rs.midY = rs.allpts[m + 1];\n } else {\n m = rs.allpts.length / 2 - 3;\n mt = 0.5;\n rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);\n rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);\n }\n } else if (rs.edgeType === 'straight') {\n // need to calc these after endpts\n rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];\n\n // default midpt for labels etc\n rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;\n rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;\n } else if (rs.edgeType === 'segments') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n rs.allpts.push.apply(rs.allpts, rs.segpts);\n rs.allpts.push(rs.endX, rs.endY);\n if (rs.segpts.length % 4 === 0) {\n var i2 = rs.segpts.length / 2;\n var i1 = i2 - 2;\n rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2;\n rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2;\n } else {\n var _i = rs.segpts.length / 2 - 1;\n rs.midX = rs.segpts[_i];\n rs.midY = rs.segpts[_i + 1];\n }\n }\n };\n BRp$c.checkForInvalidEdgeWarning = function (edge) {\n var rs = edge[0]._private.rscratch;\n if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {\n rs.loggedErr = false;\n } else {\n if (!rs.loggedErr) {\n rs.loggedErr = true;\n warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.');\n }\n }\n };\n BRp$c.findEdgeControlPoints = function (edges) {\n var _this = this;\n if (!edges || edges.length === 0) {\n return;\n }\n var r = this;\n var cy = r.cy;\n var hasCompounds = cy.hasCompoundNodes();\n var hashTable = {\n map: new Map$2(),\n get: function get(pairId) {\n var map2 = this.map.get(pairId[0]);\n if (map2 != null) {\n return map2.get(pairId[1]);\n } else {\n return null;\n }\n },\n set: function set(pairId, val) {\n var map2 = this.map.get(pairId[0]);\n if (map2 == null) {\n map2 = new Map$2();\n this.map.set(pairId[0], map2);\n }\n map2.set(pairId[1], val);\n }\n };\n var pairIds = [];\n var haystackEdges = [];\n\n // create a table of edge (src, tgt) => list of edges between them\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var curveStyle = edge.pstyle('curve-style').value;\n\n // ignore edges who are not to be displayed\n // they shouldn't take up space\n if (edge.removed() || !edge.takesUpSpace()) {\n continue;\n }\n if (curveStyle === 'haystack') {\n haystackEdges.push(edge);\n continue;\n }\n var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'straight' || curveStyle === 'straight-triangle' || curveStyle === 'taxi';\n var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier';\n var src = _p.source;\n var tgt = _p.target;\n var srcIndex = src.poolIndex();\n var tgtIndex = tgt.poolIndex();\n var pairId = [srcIndex, tgtIndex].sort();\n var tableEntry = hashTable.get(pairId);\n if (tableEntry == null) {\n tableEntry = {\n eles: []\n };\n hashTable.set(pairId, tableEntry);\n pairIds.push(pairId);\n }\n tableEntry.eles.push(edge);\n if (edgeIsUnbundled) {\n tableEntry.hasUnbundled = true;\n }\n if (edgeIsBezier) {\n tableEntry.hasBezier = true;\n }\n }\n\n // for each pair (src, tgt), create the ctrl pts\n // Nested for loop is OK; total number of iterations for both loops = edgeCount\n var _loop = function _loop(p) {\n var pairId = pairIds[p];\n var pairInfo = hashTable.get(pairId);\n var swappedpairInfo = void 0;\n if (!pairInfo.hasUnbundled) {\n var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) {\n return e.isBundledBezier();\n });\n clearArray(pairInfo.eles);\n pllEdges.forEach(function (edge) {\n return pairInfo.eles.push(edge);\n });\n\n // for each pair id, the edges should be sorted by index\n pairInfo.eles.sort(function (edge1, edge2) {\n return edge1.poolIndex() - edge2.poolIndex();\n });\n }\n var firstEdge = pairInfo.eles[0];\n var src = firstEdge.source();\n var tgt = firstEdge.target();\n\n // make sure src/tgt distinction is consistent w.r.t. pairId\n if (src.poolIndex() > tgt.poolIndex()) {\n var temp = src;\n src = tgt;\n tgt = temp;\n }\n var srcPos = pairInfo.srcPos = src.position();\n var tgtPos = pairInfo.tgtPos = tgt.position();\n var srcW = pairInfo.srcW = src.outerWidth();\n var srcH = pairInfo.srcH = src.outerHeight();\n var tgtW = pairInfo.tgtW = tgt.outerWidth();\n var tgtH = pairInfo.tgtH = tgt.outerHeight();\n var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)];\n var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)];\n pairInfo.dirCounts = {\n 'north': 0,\n 'west': 0,\n 'south': 0,\n 'east': 0,\n 'northwest': 0,\n 'southwest': 0,\n 'northeast': 0,\n 'southeast': 0\n };\n for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {\n var _edge = pairInfo.eles[_i2];\n var rs = _edge[0]._private.rscratch;\n var _curveStyle = _edge.pstyle('curve-style').value;\n var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || _curveStyle === 'segments' || _curveStyle === 'taxi';\n\n // whether the normalised pair order is the reverse of the edge's src-tgt order\n var edgeIsSwapped = !src.same(_edge.source());\n if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {\n pairInfo.calculatedIntersection = true;\n\n // pt outside src shape to calc distance/displacement from src to tgt\n var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0);\n var srcIntn = pairInfo.srcIntn = srcOutside;\n\n // pt outside tgt shape to calc distance/displacement from src to tgt\n var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0);\n var tgtIntn = pairInfo.tgtIntn = tgtOutside;\n var intersectionPts = pairInfo.intersectionPts = {\n x1: srcOutside[0],\n x2: tgtOutside[0],\n y1: srcOutside[1],\n y2: tgtOutside[1]\n };\n var posPts = pairInfo.posPts = {\n x1: srcPos.x,\n x2: tgtPos.x,\n y1: srcPos.y,\n y2: tgtPos.y\n };\n var dy = tgtOutside[1] - srcOutside[1];\n var dx = tgtOutside[0] - srcOutside[0];\n var l = Math.sqrt(dx * dx + dy * dy);\n var vector = pairInfo.vector = {\n x: dx,\n y: dy\n };\n var vectorNorm = pairInfo.vectorNorm = {\n x: vector.x / l,\n y: vector.y / l\n };\n var vectorNormInverse = {\n x: -vectorNorm.y,\n y: vectorNorm.x\n };\n\n // if node shapes overlap, then no ctrl pts to draw\n pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y);\n pairInfo.vectorNormInverse = vectorNormInverse;\n swappedpairInfo = {\n nodesOverlap: pairInfo.nodesOverlap,\n dirCounts: pairInfo.dirCounts,\n calculatedIntersection: true,\n hasBezier: pairInfo.hasBezier,\n hasUnbundled: pairInfo.hasUnbundled,\n eles: pairInfo.eles,\n srcPos: tgtPos,\n tgtPos: srcPos,\n srcW: tgtW,\n srcH: tgtH,\n tgtW: srcW,\n tgtH: srcH,\n srcIntn: tgtIntn,\n tgtIntn: srcIntn,\n srcShape: tgtShape,\n tgtShape: srcShape,\n posPts: {\n x1: posPts.x2,\n y1: posPts.y2,\n x2: posPts.x1,\n y2: posPts.y1\n },\n intersectionPts: {\n x1: intersectionPts.x2,\n y1: intersectionPts.y2,\n x2: intersectionPts.x1,\n y2: intersectionPts.y1\n },\n vector: {\n x: -vector.x,\n y: -vector.y\n },\n vectorNorm: {\n x: -vectorNorm.x,\n y: -vectorNorm.y\n },\n vectorNormInverse: {\n x: -vectorNormInverse.x,\n y: -vectorNormInverse.y\n }\n };\n }\n var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;\n rs.nodesOverlap = passedPairInfo.nodesOverlap;\n rs.srcIntn = passedPairInfo.srcIntn;\n rs.tgtIntn = passedPairInfo.tgtIntn;\n if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) {\n _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (src === tgt) {\n _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (_curveStyle === 'segments') {\n _this.findSegmentsPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'taxi') {\n _this.findTaxiPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {\n _this.findStraightEdgePoints(_edge);\n } else {\n _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);\n }\n _this.findEndpoints(_edge);\n _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);\n _this.checkForInvalidEdgeWarning(_edge);\n _this.storeAllpts(_edge);\n _this.storeEdgeProjections(_edge);\n _this.calculateArrowAngles(_edge);\n _this.recalculateEdgeLabelProjections(_edge);\n _this.calculateLabelAngles(_edge);\n } // for pair edges\n };\n for (var p = 0; p < pairIds.length; p++) {\n _loop(p);\n } // for pair ids\n\n // haystacks avoid the expense of pairInfo stuff (intersections etc.)\n this.findHaystackPoints(haystackEdges);\n };\n function getPts(pts) {\n var retPts = [];\n if (pts == null) {\n return;\n }\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push({\n x: x,\n y: y\n });\n }\n return retPts;\n }\n BRp$c.getSegmentPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'segments') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.segpts);\n }\n };\n BRp$c.getControlPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.ctrlpts);\n }\n };\n BRp$c.getEdgeMidpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n return {\n x: rs.midX,\n y: rs.midY\n };\n };\n\n var BRp$b = {};\n BRp$b.manualEndptToPx = function (node, prop) {\n var r = this;\n var npos = node.position();\n var w = node.outerWidth();\n var h = node.outerHeight();\n if (prop.value.length === 2) {\n var p = [prop.pfValue[0], prop.pfValue[1]];\n if (prop.units[0] === '%') {\n p[0] = p[0] * w;\n }\n if (prop.units[1] === '%') {\n p[1] = p[1] * h;\n }\n p[0] += npos.x;\n p[1] += npos.y;\n return p;\n } else {\n var angle = prop.pfValue[0];\n angle = -Math.PI / 2 + angle; // start at 12 o'clock\n\n var l = 2 * Math.max(w, h);\n var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];\n return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0);\n }\n };\n BRp$b.findEndpoints = function (edge) {\n var r = this;\n var intersect;\n var source = edge.source()[0];\n var target = edge.target()[0];\n var srcPos = source.position();\n var tgtPos = target.position();\n var tgtArShape = edge.pstyle('target-arrow-shape').value;\n var srcArShape = edge.pstyle('source-arrow-shape').value;\n var tgtDist = edge.pstyle('target-distance-from-node').pfValue;\n var srcDist = edge.pstyle('source-distance-from-node').pfValue;\n var curveStyle = edge.pstyle('curve-style').value;\n var rs = edge._private.rscratch;\n var et = rs.edgeType;\n var taxi = curveStyle === 'taxi';\n var self = et === 'self' || et === 'compound';\n var bezier = et === 'bezier' || et === 'multibezier' || self;\n var multi = et !== 'bezier';\n var lines = et === 'straight' || et === 'segments';\n var segments = et === 'segments';\n var hasEndpts = bezier || multi || lines;\n var overrideEndpts = self || taxi;\n var srcManEndpt = edge.pstyle('source-endpoint');\n var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value;\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value;\n rs.srcManEndpt = srcManEndpt;\n rs.tgtManEndpt = tgtManEndpt;\n var p1; // last known point of edge on target side\n var p2; // last known point of edge on source side\n\n var p1_i; // point to intersect with target shape\n var p2_i; // point to intersect with source shape\n\n if (bezier) {\n var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];\n var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;\n p1 = cpEnd;\n p2 = cpStart;\n } else if (lines) {\n var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);\n var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);\n p1 = tgtArrowFromPt;\n p2 = srcArrowFromPt;\n }\n if (tgtManEndptVal === 'inside-to-node') {\n intersect = [tgtPos.x, tgtPos.y];\n } else if (tgtManEndpt.units) {\n intersect = this.manualEndptToPx(target, tgtManEndpt);\n } else if (tgtManEndptVal === 'outside-to-line') {\n intersect = rs.tgtIntn; // use cached value from ctrlpt calc\n } else {\n if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') {\n p1_i = p1;\n } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') {\n p1_i = [srcPos.x, srcPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0);\n if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') {\n var trs = target._private.rscratch;\n var lw = trs.labelWidth;\n var lh = trs.labelHeight;\n var lx = trs.labelX;\n var ly = trs.labelY;\n var lw2 = lw / 2;\n var lh2 = lh / 2;\n var va = target.pstyle('text-valign').value;\n if (va === 'top') {\n ly -= lh2;\n } else if (va === 'bottom') {\n ly += lh2;\n }\n var ha = target.pstyle('text-halign').value;\n if (ha === 'left') {\n lx -= lw2;\n } else if (ha === 'right') {\n lx += lw2;\n }\n var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);\n if (labelIntersect.length > 0) {\n var refPt = srcPos;\n var intSqdist = sqdist(refPt, array2point(intersect));\n var labIntSqdist = sqdist(refPt, array2point(labelIntersect));\n var minSqDist = intSqdist;\n if (labIntSqdist < intSqdist) {\n intersect = labelIntersect;\n minSqDist = labIntSqdist;\n }\n if (labelIntersect.length > 2) {\n var labInt2SqDist = sqdist(refPt, {\n x: labelIntersect[2],\n y: labelIntersect[3]\n });\n if (labInt2SqDist < minSqDist) {\n intersect = [labelIntersect[2], labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);\n var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);\n rs.endX = edgeEnd[0];\n rs.endY = edgeEnd[1];\n rs.arrowEndX = arrowEnd[0];\n rs.arrowEndY = arrowEnd[1];\n if (srcManEndptVal === 'inside-to-node') {\n intersect = [srcPos.x, srcPos.y];\n } else if (srcManEndpt.units) {\n intersect = this.manualEndptToPx(source, srcManEndpt);\n } else if (srcManEndptVal === 'outside-to-line') {\n intersect = rs.srcIntn; // use cached value from ctrlpt calc\n } else {\n if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') {\n p2_i = p2;\n } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') {\n p2_i = [tgtPos.x, tgtPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0);\n if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') {\n var srs = source._private.rscratch;\n var _lw = srs.labelWidth;\n var _lh = srs.labelHeight;\n var _lx = srs.labelX;\n var _ly = srs.labelY;\n var _lw2 = _lw / 2;\n var _lh2 = _lh / 2;\n var _va = source.pstyle('text-valign').value;\n if (_va === 'top') {\n _ly -= _lh2;\n } else if (_va === 'bottom') {\n _ly += _lh2;\n }\n var _ha = source.pstyle('text-halign').value;\n if (_ha === 'left') {\n _lx -= _lw2;\n } else if (_ha === 'right') {\n _lx += _lw2;\n }\n var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);\n if (_labelIntersect.length > 0) {\n var _refPt = tgtPos;\n var _intSqdist = sqdist(_refPt, array2point(intersect));\n var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));\n var _minSqDist = _intSqdist;\n if (_labIntSqdist < _intSqdist) {\n intersect = [_labelIntersect[0], _labelIntersect[1]];\n _minSqDist = _labIntSqdist;\n }\n if (_labelIntersect.length > 2) {\n var _labInt2SqDist = sqdist(_refPt, {\n x: _labelIntersect[2],\n y: _labelIntersect[3]\n });\n if (_labInt2SqDist < _minSqDist) {\n intersect = [_labelIntersect[2], _labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);\n var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);\n rs.startX = edgeStart[0];\n rs.startY = edgeStart[1];\n rs.arrowStartX = arrowStart[0];\n rs.arrowStartY = arrowStart[1];\n if (hasEndpts) {\n if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {\n rs.badLine = true;\n } else {\n rs.badLine = false;\n }\n }\n };\n BRp$b.getSourceEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[0],\n y: rs.haystackPts[1]\n };\n default:\n return {\n x: rs.arrowStartX,\n y: rs.arrowStartY\n };\n }\n };\n BRp$b.getTargetEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[2],\n y: rs.haystackPts[3]\n };\n default:\n return {\n x: rs.arrowEndX,\n y: rs.arrowEndY\n };\n }\n };\n\n var BRp$a = {};\n function pushBezierPts(r, edge, pts) {\n var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) {\n return qbezierAt(p1, p2, p3, t);\n };\n var _p = edge._private;\n var bpts = _p.rstyle.bezierPts;\n for (var i = 0; i < r.bezierProjPcts.length; i++) {\n var p = r.bezierProjPcts[i];\n bpts.push({\n x: qbezierAt$1(pts[0], pts[2], pts[4], p),\n y: qbezierAt$1(pts[1], pts[3], pts[5], p)\n });\n }\n }\n BRp$a.storeEdgeProjections = function (edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var et = rs.edgeType;\n\n // clear the cached points state\n _p.rstyle.bezierPts = null;\n _p.rstyle.linePts = null;\n _p.rstyle.haystackPts = null;\n if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') {\n _p.rstyle.bezierPts = [];\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n pushBezierPts(this, edge, rs.allpts.slice(i, i + 6));\n }\n } else if (et === 'segments') {\n var lpts = _p.rstyle.linePts = [];\n for (var i = 0; i + 1 < rs.allpts.length; i += 2) {\n lpts.push({\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n });\n }\n } else if (et === 'haystack') {\n var hpts = rs.haystackPts;\n _p.rstyle.haystackPts = [{\n x: hpts[0],\n y: hpts[1]\n }, {\n x: hpts[2],\n y: hpts[3]\n }];\n }\n _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n };\n BRp$a.recalculateEdgeProjections = function (edges) {\n this.findEdgeControlPoints(edges);\n };\n\n /* global document */\n\n var BRp$9 = {};\n BRp$9.recalculateNodeLabelProjection = function (node) {\n var content = node.pstyle('label').strValue;\n if (emptyString(content)) {\n return;\n }\n var textX, textY;\n var _p = node._private;\n var nodeWidth = node.width();\n var nodeHeight = node.height();\n var padding = node.padding();\n var nodePos = node.position();\n var textHalign = node.pstyle('text-halign').strValue;\n var textValign = node.pstyle('text-valign').strValue;\n var rs = _p.rscratch;\n var rstyle = _p.rstyle;\n switch (textHalign) {\n case 'left':\n textX = nodePos.x - nodeWidth / 2 - padding;\n break;\n case 'right':\n textX = nodePos.x + nodeWidth / 2 + padding;\n break;\n default:\n // e.g. center\n textX = nodePos.x;\n }\n switch (textValign) {\n case 'top':\n textY = nodePos.y - nodeHeight / 2 - padding;\n break;\n case 'bottom':\n textY = nodePos.y + nodeHeight / 2 + padding;\n break;\n default:\n // e.g. middle\n textY = nodePos.y;\n }\n rs.labelX = textX;\n rs.labelY = textY;\n rstyle.labelX = textX;\n rstyle.labelY = textY;\n this.calculateLabelAngles(node);\n this.applyLabelDimensions(node);\n };\n var lineAngleFromDelta = function lineAngleFromDelta(dx, dy) {\n var angle = Math.atan(dy / dx);\n if (dx === 0 && angle < 0) {\n angle = angle * -1;\n }\n return angle;\n };\n var lineAngle = function lineAngle(p0, p1) {\n var dx = p1.x - p0.x;\n var dy = p1.y - p0.y;\n return lineAngleFromDelta(dx, dy);\n };\n var bezierAngle = function bezierAngle(p0, p1, p2, t) {\n var t0 = bound(0, t - 0.001, 1);\n var t1 = bound(0, t + 0.001, 1);\n var lp0 = qbezierPtAt(p0, p1, p2, t0);\n var lp1 = qbezierPtAt(p0, p1, p2, t1);\n return lineAngle(lp0, lp1);\n };\n BRp$9.recalculateEdgeLabelProjections = function (edge) {\n var p;\n var _p = edge._private;\n var rs = _p.rscratch;\n var r = this;\n var content = {\n mid: edge.pstyle('label').strValue,\n source: edge.pstyle('source-label').strValue,\n target: edge.pstyle('target-label').strValue\n };\n if (content.mid || content.source || content.target) ; else {\n return; // no labels => no calcs\n }\n\n // add center point to style so bounding box calculations can use it\n //\n p = {\n x: rs.midX,\n y: rs.midY\n };\n var setRs = function setRs(propName, prefix, value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n setPrefixedProperty(_p.rstyle, propName, prefix, value);\n };\n setRs('labelX', null, p.x);\n setRs('labelY', null, p.y);\n var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);\n setRs('labelAutoAngle', null, midAngle);\n var createControlPointInfo = function createControlPointInfo() {\n if (createControlPointInfo.cache) {\n return createControlPointInfo.cache;\n } // use cache so only 1x per edge\n\n var ctrlpts = [];\n\n // store each ctrlpt info init\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n var p0 = {\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n };\n var p1 = {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }; // ctrlpt\n var p2 = {\n x: rs.allpts[i + 4],\n y: rs.allpts[i + 5]\n };\n ctrlpts.push({\n p0: p0,\n p1: p1,\n p2: p2,\n startDist: 0,\n length: 0,\n segments: []\n });\n }\n var bpts = _p.rstyle.bezierPts;\n var nProjs = r.bezierProjPcts.length;\n function addSegment(cp, p0, p1, t0, t1) {\n var length = dist(p0, p1);\n var prevSegment = cp.segments[cp.segments.length - 1];\n var segment = {\n p0: p0,\n p1: p1,\n t0: t0,\n t1: t1,\n startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,\n length: length\n };\n cp.segments.push(segment);\n cp.length += length;\n }\n\n // update each ctrlpt with segment info\n for (var _i = 0; _i < ctrlpts.length; _i++) {\n var cp = ctrlpts[_i];\n var prevCp = ctrlpts[_i - 1];\n if (prevCp) {\n cp.startDist = prevCp.startDist + prevCp.length;\n }\n addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first\n\n for (var j = 0; j < nProjs - 1; j++) {\n addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);\n }\n addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last\n }\n\n return createControlPointInfo.cache = ctrlpts;\n };\n var calculateEndProjection = function calculateEndProjection(prefix) {\n var angle;\n var isSrc = prefix === 'source';\n if (!content[prefix]) {\n return;\n }\n var offset = edge.pstyle(prefix + '-text-offset').pfValue;\n switch (rs.edgeType) {\n case 'self':\n case 'compound':\n case 'bezier':\n case 'multibezier':\n {\n var cps = createControlPointInfo();\n var selected;\n var startDist = 0;\n var totalDist = 0;\n\n // find the segment we're on\n for (var i = 0; i < cps.length; i++) {\n var _cp = cps[isSrc ? i : cps.length - 1 - i];\n for (var j = 0; j < _cp.segments.length; j++) {\n var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];\n var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1;\n startDist = totalDist;\n totalDist += _seg.length;\n if (totalDist >= offset || lastSeg) {\n selected = {\n cp: _cp,\n segment: _seg\n };\n break;\n }\n }\n if (selected) {\n break;\n }\n }\n var cp = selected.cp;\n var seg = selected.segment;\n var tSegment = (offset - startDist) / seg.length;\n var segDt = seg.t1 - seg.t0;\n var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;\n t = bound(0, t, 1);\n p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t);\n angle = bezierAngle(cp.p0, cp.p1, cp.p2, t);\n break;\n }\n case 'straight':\n case 'segments':\n case 'haystack':\n {\n var d = 0,\n di,\n d0;\n var p0, p1;\n var l = rs.allpts.length;\n for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {\n if (isSrc) {\n p0 = {\n x: rs.allpts[_i2],\n y: rs.allpts[_i2 + 1]\n };\n p1 = {\n x: rs.allpts[_i2 + 2],\n y: rs.allpts[_i2 + 3]\n };\n } else {\n p0 = {\n x: rs.allpts[l - 2 - _i2],\n y: rs.allpts[l - 1 - _i2]\n };\n p1 = {\n x: rs.allpts[l - 4 - _i2],\n y: rs.allpts[l - 3 - _i2]\n };\n }\n di = dist(p0, p1);\n d0 = d;\n d += di;\n if (d >= offset) {\n break;\n }\n }\n var pD = offset - d0;\n var _t = pD / di;\n _t = bound(0, _t, 1);\n p = lineAt(p0, p1, _t);\n angle = lineAngle(p0, p1);\n break;\n }\n }\n setRs('labelX', prefix, p.x);\n setRs('labelY', prefix, p.y);\n setRs('labelAutoAngle', prefix, angle);\n };\n calculateEndProjection('source');\n calculateEndProjection('target');\n this.applyLabelDimensions(edge);\n };\n BRp$9.applyLabelDimensions = function (ele) {\n this.applyPrefixedLabelDimensions(ele);\n if (ele.isEdge()) {\n this.applyPrefixedLabelDimensions(ele, 'source');\n this.applyPrefixedLabelDimensions(ele, 'target');\n }\n };\n BRp$9.applyPrefixedLabelDimensions = function (ele, prefix) {\n var _p = ele._private;\n var text = this.getLabelText(ele, prefix);\n var labelDims = this.calculateLabelDimensions(ele, text);\n var lineHeight = ele.pstyle('line-height').pfValue;\n var textWrap = ele.pstyle('text-wrap').strValue;\n var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || [];\n var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1);\n var normPerLineHeight = labelDims.height / numLines;\n var labelLineHeight = normPerLineHeight * lineHeight;\n var width = labelDims.width;\n var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;\n setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight);\n };\n BRp$9.getLabelText = function (ele, prefix) {\n var _p = ele._private;\n var pfd = prefix ? prefix + '-' : '';\n var text = ele.pstyle(pfd + 'label').strValue;\n var textTransform = ele.pstyle('text-transform').value;\n var rscratch = function rscratch(propName, value) {\n if (value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n return value;\n } else {\n return getPrefixedProperty(_p.rscratch, propName, prefix);\n }\n };\n\n // for empty text, skip all processing\n if (!text) {\n return '';\n }\n if (textTransform == 'none') ; else if (textTransform == 'uppercase') {\n text = text.toUpperCase();\n } else if (textTransform == 'lowercase') {\n text = text.toLowerCase();\n }\n var wrapStyle = ele.pstyle('text-wrap').value;\n if (wrapStyle === 'wrap') {\n var labelKey = rscratch('labelKey');\n\n // save recalc if the label is the same as before\n if (labelKey != null && rscratch('labelWrapKey') === labelKey) {\n return rscratch('labelWrapCachedText');\n }\n var zwsp = \"\\u200B\";\n var lines = text.split('\\n');\n var maxW = ele.pstyle('text-max-width').pfValue;\n var overflow = ele.pstyle('text-overflow-wrap').value;\n var overflowAny = overflow === 'anywhere';\n var wrappedLines = [];\n var wordsRegex = /[\\s\\u200b]+/;\n var wordSeparator = overflowAny ? '' : ' ';\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var lineDims = this.calculateLabelDimensions(ele, line);\n var lineW = lineDims.width;\n if (overflowAny) {\n var processedLine = line.split('').join(zwsp);\n line = processedLine;\n }\n if (lineW > maxW) {\n // line is too long\n var words = line.split(wordsRegex);\n var subline = '';\n for (var w = 0; w < words.length; w++) {\n var word = words[w];\n var testLine = subline.length === 0 ? word : subline + wordSeparator + word;\n var testDims = this.calculateLabelDimensions(ele, testLine);\n var testW = testDims.width;\n if (testW <= maxW) {\n // word fits on current line\n subline += word + wordSeparator;\n } else {\n // word starts new line\n if (subline) {\n wrappedLines.push(subline);\n }\n subline = word + wordSeparator;\n }\n }\n\n // if there's remaining text, put it in a wrapped line\n if (!subline.match(/^[\\s\\u200b]+$/)) {\n wrappedLines.push(subline);\n }\n } else {\n // line is already short enough\n wrappedLines.push(line);\n }\n } // for\n\n rscratch('labelWrapCachedLines', wrappedLines);\n text = rscratch('labelWrapCachedText', wrappedLines.join('\\n'));\n rscratch('labelWrapKey', labelKey);\n } else if (wrapStyle === 'ellipsis') {\n var _maxW = ele.pstyle('text-max-width').pfValue;\n var ellipsized = '';\n var ellipsis = \"\\u2026\";\n var incLastCh = false;\n if (this.calculateLabelDimensions(ele, text).width < _maxW) {\n // the label already fits\n return text;\n }\n for (var i = 0; i < text.length; i++) {\n var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width;\n if (widthWithNextCh > _maxW) {\n break;\n }\n ellipsized += text[i];\n if (i === text.length - 1) {\n incLastCh = true;\n }\n }\n if (!incLastCh) {\n ellipsized += ellipsis;\n }\n return ellipsized;\n } // if ellipsize\n\n return text;\n };\n BRp$9.getLabelJustification = function (ele) {\n var justification = ele.pstyle('text-justification').strValue;\n var textHalign = ele.pstyle('text-halign').strValue;\n if (justification === 'auto') {\n if (ele.isNode()) {\n switch (textHalign) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n return 'center';\n }\n } else {\n return 'center';\n }\n } else {\n return justification;\n }\n };\n BRp$9.calculateLabelDimensions = function (ele, text) {\n var r = this;\n var cacheKey = hashString(text, ele._private.labelDimsKey);\n var cache = r.labelDimCache || (r.labelDimCache = []);\n var existingVal = cache[cacheKey];\n if (existingVal != null) {\n return existingVal;\n }\n var padding = 0; // add padding around text dims, as the measurement isn't that accurate\n var fStyle = ele.pstyle('font-style').strValue;\n var size = ele.pstyle('font-size').pfValue;\n var family = ele.pstyle('font-family').strValue;\n var weight = ele.pstyle('font-weight').strValue;\n var canvas = this.labelCalcCanvas;\n var c2d = this.labelCalcCanvasContext;\n if (!canvas) {\n canvas = this.labelCalcCanvas = document.createElement('canvas');\n c2d = this.labelCalcCanvasContext = canvas.getContext('2d');\n var ds = canvas.style;\n ds.position = 'absolute';\n ds.left = '-9999px';\n ds.top = '-9999px';\n ds.zIndex = '-1';\n ds.visibility = 'hidden';\n ds.pointerEvents = 'none';\n }\n c2d.font = \"\".concat(fStyle, \" \").concat(weight, \" \").concat(size, \"px \").concat(family);\n var width = 0;\n var height = 0;\n var lines = text.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var metrics = c2d.measureText(line);\n var w = Math.ceil(metrics.width);\n var h = size;\n width = Math.max(w, width);\n height += h;\n }\n width += padding;\n height += padding;\n return cache[cacheKey] = {\n width: width,\n height: height\n };\n };\n BRp$9.calculateLabelAngle = function (ele, prefix) {\n var _p = ele._private;\n var rs = _p.rscratch;\n var isEdge = ele.isEdge();\n var prefixDash = prefix ? prefix + '-' : '';\n var rot = ele.pstyle(prefixDash + 'text-rotation');\n var rotStr = rot.strValue;\n if (rotStr === 'none') {\n return 0;\n } else if (isEdge && rotStr === 'autorotate') {\n return rs.labelAutoAngle;\n } else if (rotStr === 'autorotate') {\n return 0;\n } else {\n return rot.pfValue;\n }\n };\n BRp$9.calculateLabelAngles = function (ele) {\n var r = this;\n var isEdge = ele.isEdge();\n var _p = ele._private;\n var rs = _p.rscratch;\n rs.labelAngle = r.calculateLabelAngle(ele);\n if (isEdge) {\n rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source');\n rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target');\n }\n };\n\n var BRp$8 = {};\n var TOO_SMALL_CUT_RECT = 28;\n var warnedCutRect = false;\n BRp$8.getNodeShape = function (node) {\n var r = this;\n var shape = node.pstyle('shape').value;\n if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) {\n if (!warnedCutRect) {\n warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead');\n warnedCutRect = true;\n }\n return 'rectangle';\n }\n if (node.isParent()) {\n if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') {\n return shape;\n } else {\n return 'rectangle';\n }\n }\n if (shape === 'polygon') {\n var points = node.pstyle('shape-polygon-points').value;\n return r.nodeShapes.makePolygon(points).name;\n }\n return shape;\n };\n\n var BRp$7 = {};\n BRp$7.registerCalculationListeners = function () {\n var cy = this.cy;\n var elesToUpdate = cy.collection();\n var r = this;\n var enqueue = function enqueue(eles) {\n var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n elesToUpdate.merge(eles);\n if (dirtyStyleCaches) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n rstyle.clean = false;\n rstyle.cleanConnected = false;\n }\n }\n };\n r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) {\n var ele = e.target;\n enqueue(ele);\n }).on('style.* background.*', function onDirtyStyle(e) {\n var ele = e.target;\n enqueue(ele, false);\n });\n var updateEleCalcs = function updateEleCalcs(willDraw) {\n if (willDraw) {\n var fns = r.onUpdateEleCalcsFns;\n\n // because we need to have up-to-date style (e.g. stylesheet mappers)\n // before calculating rendered style (and pstyle might not be called yet)\n elesToUpdate.cleanStyle();\n for (var i = 0; i < elesToUpdate.length; i++) {\n var ele = elesToUpdate[i];\n var rstyle = ele._private.rstyle;\n if (ele.isNode() && !rstyle.cleanConnected) {\n enqueue(ele.connectedEdges());\n rstyle.cleanConnected = true;\n }\n }\n if (fns) {\n for (var _i = 0; _i < fns.length; _i++) {\n var fn = fns[_i];\n fn(willDraw, elesToUpdate);\n }\n }\n r.recalculateRenderedStyle(elesToUpdate);\n elesToUpdate = cy.collection();\n }\n };\n r.flushRenderedStyleQueue = function () {\n updateEleCalcs(true);\n };\n r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);\n };\n BRp$7.onUpdateEleCalcs = function (fn) {\n var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];\n fns.push(fn);\n };\n BRp$7.recalculateRenderedStyle = function (eles, useCache) {\n var isCleanConnected = function isCleanConnected(ele) {\n return ele._private.rstyle.cleanConnected;\n };\n var edges = [];\n var nodes = [];\n\n // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox()\n if (this.destroyed) {\n return;\n }\n\n // use cache by default for perf\n if (useCache === undefined) {\n useCache = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n\n // an edge may be implicitly dirty b/c of one of its connected nodes\n // (and a request for recalc may come in between frames)\n if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {\n rstyle.clean = false;\n }\n\n // only update if dirty and in graph\n if (useCache && rstyle.clean || ele.removed()) {\n continue;\n }\n\n // only update if not display: none\n if (ele.pstyle('display').value === 'none') {\n continue;\n }\n if (_p.group === 'nodes') {\n nodes.push(ele);\n } else {\n // edges\n edges.push(ele);\n }\n rstyle.clean = true;\n }\n\n // update node data from projections\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n var _p2 = _ele._private;\n var _rstyle = _p2.rstyle;\n var pos = _ele.position();\n this.recalculateNodeLabelProjection(_ele);\n _rstyle.nodeX = pos.x;\n _rstyle.nodeY = pos.y;\n _rstyle.nodeW = _ele.pstyle('width').pfValue;\n _rstyle.nodeH = _ele.pstyle('height').pfValue;\n }\n this.recalculateEdgeProjections(edges);\n\n // update edge data from projections\n for (var _i3 = 0; _i3 < edges.length; _i3++) {\n var _ele2 = edges[_i3];\n var _p3 = _ele2._private;\n var _rstyle2 = _p3.rstyle;\n var rs = _p3.rscratch;\n\n // update rstyle positions\n _rstyle2.srcX = rs.arrowStartX;\n _rstyle2.srcY = rs.arrowStartY;\n _rstyle2.tgtX = rs.arrowEndX;\n _rstyle2.tgtY = rs.arrowEndY;\n _rstyle2.midX = rs.midX;\n _rstyle2.midY = rs.midY;\n _rstyle2.labelAngle = rs.labelAngle;\n _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;\n _rstyle2.targetLabelAngle = rs.targetLabelAngle;\n }\n };\n\n var BRp$6 = {};\n BRp$6.updateCachedGrabbedEles = function () {\n var eles = this.cachedZSortedEles;\n if (!eles) {\n // just let this be recalculated on the next z sort tick\n return;\n }\n eles.drag = [];\n eles.nondrag = [];\n var grabTargets = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n if (ele.grabbed() && !ele.isParent()) {\n grabTargets.push(ele);\n } else if (rs.inDragLayer) {\n eles.drag.push(ele);\n } else {\n eles.nondrag.push(ele);\n }\n }\n\n // put the grab target nodes last so it's on top of its neighbourhood\n for (var i = 0; i < grabTargets.length; i++) {\n var ele = grabTargets[i];\n eles.drag.push(ele);\n }\n };\n BRp$6.invalidateCachedZSortedEles = function () {\n this.cachedZSortedEles = null;\n };\n BRp$6.getCachedZSortedEles = function (forceRecalc) {\n if (forceRecalc || !this.cachedZSortedEles) {\n var eles = this.cy.mutableElements().toArray();\n eles.sort(zIndexSort);\n eles.interactive = eles.filter(function (ele) {\n return ele.interactive();\n });\n this.cachedZSortedEles = eles;\n this.updateCachedGrabbedEles();\n } else {\n eles = this.cachedZSortedEles;\n }\n return eles;\n };\n\n var BRp$5 = {};\n [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) {\n extend(BRp$5, props);\n });\n\n var BRp$4 = {};\n BRp$4.getCachedImage = function (url, crossOrigin, onLoad) {\n var r = this;\n var imageCache = r.imageCache = r.imageCache || {};\n var cache = imageCache[url];\n if (cache) {\n if (!cache.image.complete) {\n cache.image.addEventListener('load', onLoad);\n }\n return cache.image;\n } else {\n cache = imageCache[url] = imageCache[url] || {};\n var image = cache.image = new Image(); // eslint-disable-line no-undef\n\n image.addEventListener('load', onLoad);\n image.addEventListener('error', function () {\n image.error = true;\n });\n\n // #1582 safari doesn't load data uris with crossOrigin properly\n // https://bugs.webkit.org/show_bug.cgi?id=123978\n var dataUriPrefix = 'data:';\n var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;\n if (!isDataUri) {\n // if crossorigin is 'null'(stringified), then manually set it to null \n crossOrigin = crossOrigin === 'null' ? null : crossOrigin;\n image.crossOrigin = crossOrigin; // prevent tainted canvas\n }\n\n image.src = url;\n return image;\n }\n };\n\n var BRp$3 = {};\n\n /* global document, window, ResizeObserver, MutationObserver */\n\n BRp$3.registerBinding = function (target, event, handler, useCapture) {\n // eslint-disable-line no-unused-vars\n var args = Array.prototype.slice.apply(arguments, [1]); // copy\n var b = this.binder(target);\n return b.on.apply(b, args);\n };\n BRp$3.binder = function (tgt) {\n var r = this;\n var containerWindow = r.cy.window();\n var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt);\n if (r.supportsPassiveEvents == null) {\n // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n return true;\n }\n });\n containerWindow.addEventListener('test', null, opts);\n } catch (err) {\n // not supported\n }\n r.supportsPassiveEvents = supportsPassive;\n }\n var on = function on(event, handler, useCapture) {\n var args = Array.prototype.slice.call(arguments);\n if (tgtIsDom && r.supportsPassiveEvents) {\n // replace useCapture w/ opts obj\n args[2] = {\n capture: useCapture != null ? useCapture : false,\n passive: false,\n once: false\n };\n }\n r.bindings.push({\n target: tgt,\n args: args\n });\n (tgt.addEventListener || tgt.on).apply(tgt, args);\n return this;\n };\n return {\n on: on,\n addEventListener: on,\n addListener: on,\n bind: on\n };\n };\n BRp$3.nodeIsDraggable = function (node) {\n return node && node.isNode() && !node.locked() && node.grabbable();\n };\n BRp$3.nodeIsGrabbable = function (node) {\n return this.nodeIsDraggable(node) && node.interactive();\n };\n BRp$3.load = function () {\n var r = this;\n var containerWindow = r.cy.window();\n var isSelected = function isSelected(ele) {\n return ele.selected();\n };\n var triggerEvents = function triggerEvents(target, names, e, position) {\n if (target == null) {\n target = r.cy;\n }\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n target.emit({\n originalEvent: e,\n type: name,\n position: position\n });\n }\n };\n var isMultSelKeyDown = function isMultSelKeyDown(e) {\n return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey\n };\n\n var allowPanningPassthrough = function allowPanningPassthrough(down, downs) {\n var allowPassthrough = true;\n if (r.cy.hasCompoundNodes() && down && down.pannable()) {\n // a grabbable compound node below the ele => no passthrough panning\n for (var i = 0; downs && i < downs.length; i++) {\n var down = downs[i];\n\n //if any parent node in event hierarchy isn't pannable, reject passthrough\n if (down.isNode() && down.isParent() && !down.pannable()) {\n allowPassthrough = false;\n break;\n }\n }\n } else {\n allowPassthrough = true;\n }\n return allowPassthrough;\n };\n var setGrabbed = function setGrabbed(ele) {\n ele[0]._private.grabbed = true;\n };\n var setFreed = function setFreed(ele) {\n ele[0]._private.grabbed = false;\n };\n var setInDragLayer = function setInDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = true;\n };\n var setOutDragLayer = function setOutDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = false;\n };\n var setGrabTarget = function setGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = true;\n };\n var removeGrabTarget = function removeGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = false;\n };\n var addToDragList = function addToDragList(ele, opts) {\n var list = opts.addToList;\n var listHasEle = list.has(ele);\n if (!listHasEle && ele.grabbable() && !ele.locked()) {\n list.merge(ele);\n setGrabbed(ele);\n }\n };\n\n // helper function to determine which child nodes and inner edges\n // of a compound node to be dragged as well as the grabbed and selected nodes\n var addDescendantsToDrag = function addDescendantsToDrag(node, opts) {\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n var innerNodes = node.descendants();\n if (opts.inDragLayer) {\n innerNodes.forEach(setInDragLayer);\n innerNodes.connectedEdges().forEach(setInDragLayer);\n }\n if (opts.addToList) {\n addToDragList(innerNodes, opts);\n }\n };\n\n // adds the given nodes and its neighbourhood to the drag layer\n var addNodesToDrag = function addNodesToDrag(nodes, opts) {\n opts = opts || {};\n var hasCompoundNodes = nodes.cy().hasCompoundNodes();\n if (opts.inDragLayer) {\n nodes.forEach(setInDragLayer);\n nodes.neighborhood().stdFilter(function (ele) {\n return !hasCompoundNodes || ele.isEdge();\n }).forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n addDescendantsToDrag(nodes, opts); // always add to drag\n\n // also add nodes and edges related to the topmost ancestor\n updateAncestorsInDragLayer(nodes, {\n inDragLayer: opts.inDragLayer\n });\n r.updateCachedGrabbedEles();\n };\n var addNodeToDrag = addNodesToDrag;\n var freeDraggedElements = function freeDraggedElements(grabbedEles) {\n if (!grabbedEles) {\n return;\n }\n\n // just go over all elements rather than doing a bunch of (possibly expensive) traversals\n r.getCachedZSortedEles().forEach(function (ele) {\n setFreed(ele);\n setOutDragLayer(ele);\n removeGrabTarget(ele);\n });\n r.updateCachedGrabbedEles();\n };\n\n // helper function to determine which ancestor nodes and edges should go\n // to the drag layer (or should be removed from drag layer).\n var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) {\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n\n // find top-level parent\n var parent = node.ancestors().orphans();\n\n // no parent node: no nodes to add to the drag layer\n if (parent.same(node)) {\n return;\n }\n var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants());\n var edges = nodes.connectedEdges();\n if (opts.inDragLayer) {\n edges.forEach(setInDragLayer);\n nodes.forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n };\n var blurActiveDomElement = function blurActiveDomElement() {\n if (document.activeElement != null && document.activeElement.blur != null) {\n document.activeElement.blur();\n }\n };\n var haveMutationsApi = typeof MutationObserver !== 'undefined';\n var haveResizeObserverApi = typeof ResizeObserver !== 'undefined';\n\n // watch for when the cy container is removed from the dom\n if (haveMutationsApi) {\n r.removeObserver = new MutationObserver(function (mutns) {\n // eslint-disable-line no-undef\n for (var i = 0; i < mutns.length; i++) {\n var mutn = mutns[i];\n var rNodes = mutn.removedNodes;\n if (rNodes) {\n for (var j = 0; j < rNodes.length; j++) {\n var rNode = rNodes[j];\n if (rNode === r.container) {\n r.destroy();\n break;\n }\n }\n }\n }\n });\n if (r.container.parentNode) {\n r.removeObserver.observe(r.container.parentNode, {\n childList: true\n });\n }\n } else {\n r.registerBinding(r.container, 'DOMNodeRemoved', function (e) {\n // eslint-disable-line no-unused-vars\n r.destroy();\n });\n }\n var onResize = debounce_1(function () {\n r.cy.resize();\n }, 100);\n if (haveMutationsApi) {\n r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef\n\n r.styleObserver.observe(r.container, {\n attributes: true\n });\n }\n\n // auto resize\n r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef\n\n if (haveResizeObserverApi) {\n r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef\n\n r.resizeObserver.observe(r.container);\n }\n var forEachUp = function forEachUp(domEle, fn) {\n while (domEle != null) {\n fn(domEle);\n domEle = domEle.parentNode;\n }\n };\n var invalidateCoords = function invalidateCoords() {\n r.invalidateContainerClientCoordsCache();\n };\n forEachUp(r.container, function (domEle) {\n r.registerBinding(domEle, 'transitionend', invalidateCoords);\n r.registerBinding(domEle, 'animationend', invalidateCoords);\n r.registerBinding(domEle, 'scroll', invalidateCoords);\n });\n\n // stop right click menu from appearing on cy\n r.registerBinding(r.container, 'contextmenu', function (e) {\n e.preventDefault();\n });\n var inBoxSelection = function inBoxSelection() {\n return r.selection[4] !== 0;\n };\n var eventInContainer = function eventInContainer(e) {\n // save cycles if mouse events aren't to be captured\n var containerPageCoords = r.findContainerClientCoords();\n var x = containerPageCoords[0];\n var y = containerPageCoords[1];\n var width = containerPageCoords[2];\n var height = containerPageCoords[3];\n var positions = e.touches ? e.touches : [e];\n var atLeastOnePosInside = false;\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) {\n atLeastOnePosInside = true;\n break;\n }\n }\n if (!atLeastOnePosInside) {\n return false;\n }\n var container = r.container;\n var target = e.target;\n var tParent = target.parentNode;\n var containerIsTarget = false;\n while (tParent) {\n if (tParent === container) {\n containerIsTarget = true;\n break;\n }\n tParent = tParent.parentNode;\n }\n if (!containerIsTarget) {\n return false;\n } // if target is outisde cy container, then this event is not for us\n\n return true;\n };\n\n // Primary key\n r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) {\n if (!eventInContainer(e)) {\n return;\n }\n e.preventDefault();\n blurActiveDomElement();\n r.hoverData.capture = true;\n r.hoverData.which = e.which;\n var cy = r.cy;\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var select = r.selection;\n var nears = r.findNearestElements(pos[0], pos[1], true, false);\n var near = nears[0];\n var draggedElements = r.dragData.possibleDragElements;\n r.hoverData.mdownPos = pos;\n r.hoverData.mdownGPos = gpos;\n var checkForTaphold = function checkForTaphold() {\n r.hoverData.tapholdCancelled = false;\n clearTimeout(r.hoverData.tapholdTimeout);\n r.hoverData.tapholdTimeout = setTimeout(function () {\n if (r.hoverData.tapholdCancelled) {\n return;\n } else {\n var ele = r.hoverData.down;\n if (ele) {\n ele.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n } else {\n cy.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }, r.tapholdDuration);\n };\n\n // Right click button\n if (e.which == 3) {\n r.hoverData.cxtStarted = true;\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (near) {\n near.activate();\n near.emit(cxtEvt);\n r.hoverData.down = near;\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.downTime = new Date().getTime();\n r.hoverData.cxtDragged = false;\n\n // Primary button\n } else if (e.which == 1) {\n if (near) {\n near.activate();\n }\n\n // Element dragging\n {\n // If something is under the cursor and it is draggable, prepare to grab it\n if (near != null) {\n if (r.nodeIsGrabbable(near)) {\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n var triggerGrab = function triggerGrab(ele) {\n ele.emit(makeEvent('grab'));\n };\n setGrabTarget(near);\n if (!near.selected()) {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n addNodeToDrag(near, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon')).emit(makeEvent('grab'));\n } else {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n var selectedNodes = cy.$(function (ele) {\n return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon'));\n selectedNodes.forEach(triggerGrab);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n }\n r.hoverData.down = near;\n r.hoverData.downs = nears;\n r.hoverData.downTime = new Date().getTime();\n }\n triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (near == null) {\n select[4] = 1;\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n } else if (near.pannable()) {\n select[4] = 1; // for future pan\n }\n\n checkForTaphold();\n }\n\n // Initialize selection box coordinates\n select[0] = select[2] = pos[0];\n select[1] = select[3] = pos[1];\n }, false);\n r.registerBinding(containerWindow, 'mousemove', function mousemoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var preventDefault = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var mdownPos = r.hoverData.mdownPos;\n var mdownGPos = r.hoverData.mdownGPos;\n var select = r.selection;\n var near = null;\n if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {\n near = r.findNearestElement(pos[0], pos[1], true, false);\n }\n var last = r.hoverData.last;\n var down = r.hoverData.down;\n var disp = [pos[0] - select[2], pos[1] - select[3]];\n var draggedElements = r.dragData.possibleDragElements;\n var isOverThresholdDrag;\n if (mdownGPos) {\n var dx = gpos[0] - mdownGPos[0];\n var dx2 = dx * dx;\n var dy = gpos[1] - mdownGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2;\n }\n var multSelKeyDown = isMultSelKeyDown(e);\n if (isOverThresholdDrag) {\n r.hoverData.tapholdCancelled = true;\n }\n var updateDragDelta = function updateDragDelta() {\n var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n };\n preventDefault = true;\n triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, {\n x: pos[0],\n y: pos[1]\n });\n var goIntoBoxMode = function goIntoBoxMode() {\n r.data.bgActivePosistion = undefined;\n if (!r.hoverData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n select[4] = 1;\n r.hoverData.selecting = true;\n r.redrawHint('select', true);\n r.redraw();\n };\n\n // trigger context drag if rmouse down\n if (r.hoverData.which === 3) {\n // but only if over threshold\n if (isOverThresholdDrag) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.cxtDragged = true;\n if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {\n if (r.hoverData.cxtOver) {\n r.hoverData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n r.hoverData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }\n\n // Check if we are drag panning the entire graph\n } else if (r.hoverData.dragging) {\n preventDefault = true;\n if (cy.panningEnabled() && cy.userPanningEnabled()) {\n var deltaP;\n if (r.hoverData.justStartedPan) {\n var mdPos = r.hoverData.mdownPos;\n deltaP = {\n x: (pos[0] - mdPos[0]) * zoom,\n y: (pos[1] - mdPos[1]) * zoom\n };\n r.hoverData.justStartedPan = false;\n } else {\n deltaP = {\n x: disp[0] * zoom,\n y: disp[1] * zoom\n };\n }\n cy.panBy(deltaP);\n cy.emit('dragpan');\n r.hoverData.dragged = true;\n }\n\n // Needs reproject due to pan changing viewport\n pos = r.projectIntoViewport(e.clientX, e.clientY);\n\n // Checks primary button down & out of time & mouse not moved much\n } else if (select[4] == 1 && (down == null || down.pannable())) {\n if (isOverThresholdDrag) {\n if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {\n goIntoBoxMode();\n } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);\n if (allowPassthrough) {\n r.hoverData.dragging = true;\n r.hoverData.justStartedPan = true;\n select[4] = 0;\n r.data.bgActivePosistion = array2point(mdownPos);\n r.redrawHint('select', true);\n r.redraw();\n }\n }\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n }\n } else {\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n if ((!down || !down.grabbed()) && near != last) {\n if (last) {\n triggerEvents(last, ['mouseout', 'tapdragout'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n if (near) {\n triggerEvents(near, ['mouseover', 'tapdragover'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n r.hoverData.last = near;\n }\n if (down) {\n if (isOverThresholdDrag) {\n // then we can take action\n\n if (cy.boxSelectionEnabled() && multSelKeyDown) {\n // then selection overrides\n if (down && down.grabbed()) {\n freeDraggedElements(draggedElements);\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n goIntoBoxMode();\n } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {\n // drag node\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n }\n r.dragData.didDrag = true; // indicate that we actually did drag the node\n\n // now, add the elements to the drag layer if not done already\n if (!r.hoverData.draggingEles) {\n addNodesToDrag(draggedElements, {\n inDragLayer: true\n });\n }\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n var dragDelta = r.hoverData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedElements.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n r.redraw();\n }\n } else {\n // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant\n updateDragDelta();\n }\n }\n\n // prevent the dragging from triggering text selection on the page\n preventDefault = true;\n }\n select[2] = pos[0];\n select[3] = pos[1];\n if (preventDefault) {\n if (e.stopPropagation) e.stopPropagation();\n if (e.preventDefault) e.preventDefault();\n return false;\n }\n }, false);\n var clickTimeout, didDoubleClick, prevClickTimeStamp;\n r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture) {\n return;\n }\n r.hoverData.capture = false;\n var cy = r.cy;\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var select = r.selection;\n var near = r.findNearestElement(pos[0], pos[1], true, false);\n var draggedElements = r.dragData.possibleDragElements;\n var down = r.hoverData.down;\n var multSelKeyDown = isMultSelKeyDown(e);\n if (r.data.bgActivePosistion) {\n r.redrawHint('select', true);\n r.redraw();\n }\n r.hoverData.tapholdCancelled = true;\n r.data.bgActivePosistion = undefined; // not active bg now\n\n if (down) {\n down.unactivate();\n }\n if (r.hoverData.which === 3) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (!r.hoverData.cxtDragged) {\n var cxtTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtTap);\n } else {\n cy.emit(cxtTap);\n }\n }\n r.hoverData.cxtDragged = false;\n r.hoverData.which = null;\n } else if (r.hoverData.which === 1) {\n triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (!r.dragData.didDrag &&\n // didn't move a node around\n !r.hoverData.dragged &&\n // didn't pan\n !r.hoverData.selecting &&\n // not box selection\n !r.hoverData.isOverThresholdDrag // didn't move too much\n ) {\n triggerEvents(down, [\"click\", \"tap\", \"vclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n didDoubleClick = false;\n if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {\n clickTimeout && clearTimeout(clickTimeout);\n didDoubleClick = true;\n prevClickTimeStamp = null;\n triggerEvents(down, [\"dblclick\", \"dbltap\", \"vdblclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n } else {\n clickTimeout = setTimeout(function () {\n if (didDoubleClick) return;\n triggerEvents(down, [\"oneclick\", \"onetap\", \"voneclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n }, cy.multiClickDebounceTime());\n prevClickTimeStamp = e.timeStamp;\n }\n }\n\n // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something\n if (down == null // not mousedown on node\n && !r.dragData.didDrag // didn't move the node around\n && !r.hoverData.selecting // not box selection\n && !r.hoverData.dragged // didn't pan\n && !isMultSelKeyDown(e)) {\n cy.$(isSelected).unselect(['tapunselect']);\n if (draggedElements.length > 0) {\n r.redrawHint('eles', true);\n }\n r.dragData.possibleDragElements = draggedElements = cy.collection();\n }\n\n // Single selection\n if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {\n if (near != null && near._private.selectable) {\n if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) {\n if (near.selected()) {\n near.unselect(['tapunselect']);\n } else {\n near.select(['tapselect']);\n }\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(near).unselect(['tapunselect']);\n near.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n }\n if (r.hoverData.selecting) {\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n r.redrawHint('select', true);\n if (box.length > 0) {\n r.redrawHint('eles', true);\n }\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n if (cy.selectionType() === 'additive') {\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(box).unselect();\n }\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n }\n\n // always need redraw in case eles unselectable\n r.redraw();\n }\n\n // Cancel drag pan\n if (r.hoverData.dragging) {\n r.hoverData.dragging = false;\n r.redrawHint('select', true);\n r.redrawHint('eles', true);\n r.redraw();\n }\n if (!select[4]) {\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n var downWasGrabbed = down && down.grabbed();\n freeDraggedElements(draggedElements);\n if (downWasGrabbed) {\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n }\n } // else not right mouse\n\n select[4] = 0;\n r.hoverData.down = null;\n r.hoverData.cxtStarted = false;\n r.hoverData.draggingEles = false;\n r.hoverData.selecting = false;\n r.hoverData.isOverThresholdDrag = false;\n r.dragData.didDrag = false;\n r.hoverData.dragged = false;\n r.hoverData.dragDelta = [];\n r.hoverData.mdownPos = null;\n r.hoverData.mdownGPos = null;\n }, false);\n var wheelHandler = function wheelHandler(e) {\n if (r.scrollingPage) {\n return;\n } // while scrolling, ignore wheel-to-zoom\n\n var cy = r.cy;\n var zoom = cy.zoom();\n var pan = cy.pan();\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];\n if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {\n // if pan dragging or cxt dragging, wheel movements make no zoom\n e.preventDefault();\n return;\n }\n if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {\n e.preventDefault();\n r.data.wheelZooming = true;\n clearTimeout(r.data.wheelTimeout);\n r.data.wheelTimeout = setTimeout(function () {\n r.data.wheelZooming = false;\n r.redrawHint('eles', true);\n r.redraw();\n }, 150);\n var diff;\n if (e.deltaY != null) {\n diff = e.deltaY / -250;\n } else if (e.wheelDeltaY != null) {\n diff = e.wheelDeltaY / 1000;\n } else {\n diff = e.wheelDelta / 1000;\n }\n diff = diff * r.wheelSensitivity;\n var needsWheelFix = e.deltaMode === 1;\n if (needsWheelFix) {\n // fixes slow wheel events on ff/linux and ff/windows\n diff *= 33;\n }\n var newZoom = cy.zoom() * Math.pow(10, diff);\n if (e.type === 'gesturechange') {\n newZoom = r.gestureStartZoom * e.scale;\n }\n cy.zoom({\n level: newZoom,\n renderedPosition: {\n x: rpos[0],\n y: rpos[1]\n }\n });\n cy.emit(e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom');\n }\n };\n\n // Functions to help with whether mouse wheel should trigger zooming\n // --\n r.registerBinding(r.container, 'wheel', wheelHandler, true);\n\n // disable nonstandard wheel events\n // r.registerBinding(r.container, 'mousewheel', wheelHandler, true);\n // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true);\n // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox\n\n r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) {\n // eslint-disable-line no-unused-vars\n r.scrollingPage = true;\n clearTimeout(r.scrollingPageTimeout);\n r.scrollingPageTimeout = setTimeout(function () {\n r.scrollingPage = false;\n }, 250);\n }, true);\n\n // desktop safari pinch to zoom start\n r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) {\n r.gestureStartZoom = r.cy.zoom();\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n e.preventDefault();\n }\n }, true);\n r.registerBinding(r.container, 'gesturechange', function (e) {\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n wheelHandler(e);\n }\n }, true);\n\n // Functions to help with handling mouseout/mouseover on the Cytoscape container\n // Handle mouseout on Cytoscape container\n r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom\n var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom\n var center1, modelCenter1; // center point on start pinch to zoom\n var offsetLeft, offsetTop;\n var containerWidth, containerHeight;\n var twoFingersStartInside;\n var distance = function distance(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n var distanceSq = function distanceSq(x1, y1, x2, y2) {\n return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);\n };\n var touchstartHandler;\n r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) {\n r.hasTouchStarted = true;\n if (!eventInContainer(e)) {\n return;\n }\n blurActiveDomElement();\n r.touchData.capture = true;\n r.data.bgActivePosistion = undefined;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n\n // record starting points for pinch-to-zoom\n if (e.touches[1]) {\n r.touchData.singleTouchMoved = true;\n freeDraggedElements(r.dragData.touchDragEles);\n var offsets = r.findContainerClientCoords();\n offsetLeft = offsets[0];\n offsetTop = offsets[1];\n containerWidth = offsets[2];\n containerHeight = offsets[3];\n f1x1 = e.touches[0].clientX - offsetLeft;\n f1y1 = e.touches[0].clientY - offsetTop;\n f2x1 = e.touches[1].clientX - offsetLeft;\n f2y1 = e.touches[1].clientY - offsetTop;\n twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;\n var pan = cy.pan();\n var zoom = cy.zoom();\n distance1 = distance(f1x1, f1y1, f2x1, f2y1);\n distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);\n center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];\n modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];\n\n // consider context tap\n var cxtDistThreshold = 200;\n var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;\n if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {\n var near1 = r.findNearestElement(now[0], now[1], true, true);\n var near2 = r.findNearestElement(now[2], now[3], true, true);\n if (near1 && near1.isNode()) {\n near1.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near1;\n } else if (near2 && near2.isNode()) {\n near2.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near2;\n } else {\n cy.emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = true;\n r.touchData.cxtDragged = false;\n r.data.bgActivePosistion = undefined;\n r.redraw();\n return;\n }\n }\n if (e.touches[2]) {\n // ignore\n\n // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...)\n if (cy.boxSelectionEnabled()) {\n e.preventDefault();\n }\n } else if (e.touches[1]) ; else if (e.touches[0]) {\n var nears = r.findNearestElements(now[0], now[1], true, true);\n var near = nears[0];\n if (near != null) {\n near.activate();\n r.touchData.start = near;\n r.touchData.starts = nears;\n if (r.nodeIsGrabbable(near)) {\n var draggedEles = r.dragData.touchDragEles = cy.collection();\n var selectedNodes = null;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n if (near.selected()) {\n // reset drag elements, since near will be added again\n\n selectedNodes = cy.$(function (ele) {\n return ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedEles\n });\n } else {\n addNodeToDrag(near, {\n addToList: draggedEles\n });\n }\n setGrabTarget(near);\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n near.emit(makeEvent('grabon'));\n if (selectedNodes) {\n selectedNodes.forEach(function (n) {\n n.emit(makeEvent('grab'));\n });\n } else {\n near.emit(makeEvent('grab'));\n }\n }\n }\n triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, {\n x: now[0],\n y: now[1]\n });\n if (near == null) {\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n }\n\n // Tap, taphold\n // -----\n\n r.touchData.singleTouchMoved = false;\n r.touchData.singleTouchStartTime = +new Date();\n clearTimeout(r.touchData.tapholdTimeout);\n r.touchData.tapholdTimeout = setTimeout(function () {\n if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect\n && !r.touchData.selecting // box selection shouldn't allow taphold through\n ) {\n triggerEvents(r.touchData.start, ['taphold'], e, {\n x: now[0],\n y: now[1]\n });\n }\n }, r.tapholdDuration);\n }\n if (e.touches.length >= 1) {\n var sPos = r.touchData.startPosition = [null, null, null, null, null, null];\n for (var i = 0; i < now.length; i++) {\n sPos[i] = earlier[i] = now[i];\n }\n var touch0 = e.touches[0];\n r.touchData.startGPosition = [touch0.clientX, touch0.clientY];\n }\n }, false);\n var touchmoveHandler;\n r.registerBinding(window, 'touchmove', touchmoveHandler = function touchmoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.touchData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var select = r.selection;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n var zoom = cy.zoom();\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var startGPos = r.touchData.startGPosition;\n var isOverThresholdDrag;\n if (capture && e.touches[0] && startGPos) {\n var disp = [];\n for (var j = 0; j < now.length; j++) {\n disp[j] = now[j] - earlier[j];\n }\n var dx = e.touches[0].clientX - startGPos[0];\n var dx2 = dx * dx;\n var dy = e.touches[0].clientY - startGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n isOverThresholdDrag = dist2 >= r.touchTapThreshold2;\n }\n\n // context swipe cancelling\n if (capture && r.touchData.cxt) {\n e.preventDefault();\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 );\n var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);\n var factorSq = distance2Sq / distance1Sq;\n var distThreshold = 150;\n var distThresholdSq = distThreshold * distThreshold;\n var factorThreshold = 1.5;\n var factorThresholdSq = factorThreshold * factorThreshold;\n\n // cancel ctx gestures if the distance b/t the fingers increases\n if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {\n r.touchData.cxt = false;\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (r.touchData.start) {\n r.touchData.start.unactivate().emit(cxtEvt);\n r.touchData.start = null;\n } else {\n cy.emit(cxtEvt);\n }\n }\n }\n\n // context swipe\n if (capture && r.touchData.cxt) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n if (r.touchData.start) {\n r.touchData.start.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxtDragged = true;\n var near = r.findNearestElement(now[0], now[1], true, true);\n if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {\n if (r.touchData.cxtOver) {\n r.touchData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n\n // box selection\n } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n this.lastThreeTouch = +new Date();\n if (!r.touchData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.selecting = true;\n r.touchData.didSelect = true;\n select[4] = 1;\n if (!select || select.length === 0 || select[0] === undefined) {\n select[0] = (now[0] + now[2] + now[4]) / 3;\n select[1] = (now[1] + now[3] + now[5]) / 3;\n select[2] = (now[0] + now[2] + now[4]) / 3 + 1;\n select[3] = (now[1] + now[3] + now[5]) / 3 + 1;\n } else {\n select[2] = (now[0] + now[2] + now[4]) / 3;\n select[3] = (now[1] + now[3] + now[5]) / 3;\n }\n r.redrawHint('select', true);\n r.redraw();\n\n // pinch to zoom\n } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom\n && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {\n // two fingers => pinch to zoom\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (draggedEles) {\n r.redrawHint('drag', true);\n for (var i = 0; i < draggedEles.length; i++) {\n var de_p = draggedEles[i]._private;\n de_p.grabbed = false;\n de_p.rscratch.inDragLayer = false;\n }\n }\n var _start = r.touchData.start;\n\n // (x2, y2) for fingers 1 and 2\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n var distance2 = distance(f1x2, f1y2, f2x2, f2y2);\n // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 );\n // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq );\n var factor = distance2 / distance1;\n if (twoFingersStartInside) {\n // delta finger1\n var df1x = f1x2 - f1x1;\n var df1y = f1y2 - f1y1;\n\n // delta finger 2\n var df2x = f2x2 - f2x1;\n var df2y = f2y2 - f2y1;\n\n // translation is the normalised vector of the two fingers movement\n // i.e. so pinching cancels out and moving together pans\n var tx = (df1x + df2x) / 2;\n var ty = (df1y + df2y) / 2;\n\n // now calculate the zoom\n var zoom1 = cy.zoom();\n var zoom2 = zoom1 * factor;\n var pan1 = cy.pan();\n\n // the model center point converted to the current rendered pos\n var ctrx = modelCenter1[0] * zoom1 + pan1.x;\n var ctry = modelCenter1[1] * zoom1 + pan1.y;\n var pan2 = {\n x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,\n y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry\n };\n\n // remove dragged eles\n if (_start && _start.active()) {\n var draggedEles = r.dragData.touchDragEles;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n _start.unactivate().emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n _start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n cy.viewport({\n zoom: zoom2,\n pan: pan2,\n cancelOnFailedZoom: true\n });\n cy.emit('pinchzoom');\n distance1 = distance2;\n f1x1 = f1x2;\n f1y1 = f1y2;\n f2x1 = f2x2;\n f2y1 = f2y2;\n r.pinching = true;\n }\n\n // Re-project\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning\n ) {\n var start = r.touchData.start;\n var last = r.touchData.last;\n var near;\n if (!r.hoverData.draggingEles && !r.swipePanning) {\n near = r.findNearestElement(now[0], now[1], true, true);\n }\n if (capture && start != null) {\n e.preventDefault();\n }\n\n // dragging nodes\n if (capture && start != null && r.nodeIsDraggable(start)) {\n if (isOverThresholdDrag) {\n // then dragging can happen\n var draggedEles = r.dragData.touchDragEles;\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n addNodesToDrag(draggedEles, {\n inDragLayer: true\n });\n }\n r.dragData.didDrag = true;\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n var dragDelta = r.touchData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedEles.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n } else {\n // otherwise keep track of drag delta for later\n var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n }\n }\n\n // touchmove\n {\n triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, {\n x: now[0],\n y: now[1]\n });\n if ((!start || !start.grabbed()) && near != last) {\n if (last) {\n last.emit({\n originalEvent: e,\n type: 'tapdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'tapdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n r.touchData.last = near;\n }\n\n // check to cancel taphold\n if (capture) {\n for (var i = 0; i < now.length; i++) {\n if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) {\n r.touchData.singleTouchMoved = true;\n }\n }\n }\n\n // panning\n if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts);\n if (allowPassthrough) {\n e.preventDefault();\n if (!r.data.bgActivePosistion) {\n r.data.bgActivePosistion = array2point(r.touchData.startPosition);\n }\n if (r.swipePanning) {\n cy.panBy({\n x: disp[0] * zoom,\n y: disp[1] * zoom\n });\n cy.emit('dragpan');\n } else if (isOverThresholdDrag) {\n r.swipePanning = true;\n cy.panBy({\n x: dx * zoom,\n y: dy * zoom\n });\n cy.emit('dragpan');\n if (start) {\n start.unactivate();\n r.redrawHint('select', true);\n r.touchData.start = null;\n }\n }\n }\n\n // Re-project\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n\n // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning\n if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n r.redraw();\n }\n }, false);\n var touchcancelHandler;\n r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n r.touchData.capture = false;\n if (start) {\n start.unactivate();\n }\n });\n var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;\n r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n var capture = r.touchData.capture;\n if (capture) {\n if (e.touches.length === 0) {\n r.touchData.capture = false;\n }\n e.preventDefault();\n } else {\n return;\n }\n var select = r.selection;\n r.swipePanning = false;\n r.hoverData.draggingEles = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n if (start) {\n start.unactivate();\n }\n var ctxTapend;\n if (r.touchData.cxt) {\n ctxTapend = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTapend);\n } else {\n cy.emit(ctxTapend);\n }\n if (!r.touchData.cxtDragged) {\n var ctxTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTap);\n } else {\n cy.emit(ctxTap);\n }\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = false;\n r.touchData.start = null;\n r.redraw();\n return;\n }\n\n // no more box selection if we don't have three fingers\n if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {\n r.touchData.selecting = false;\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n select[0] = undefined;\n select[1] = undefined;\n select[2] = undefined;\n select[3] = undefined;\n select[4] = 0;\n r.redrawHint('select', true);\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: now[0],\n y: now[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n if (box.nonempty()) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n }\n if (start != null) {\n start.unactivate();\n }\n if (e.touches[2]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (start != null) {\n var startWasGrabbed = start._private.grabbed;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n if (startWasGrabbed) {\n start.emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n start.unactivate();\n r.touchData.start = null;\n } else {\n var near = r.findNearestElement(now[0], now[1], true, true);\n triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n }\n var dx = r.touchData.startPosition[0] - now[0];\n var dx2 = dx * dx;\n var dy = r.touchData.startPosition[1] - now[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n var rdist2 = dist2 * zoom * zoom;\n\n // Tap event, roughly same as mouse click event for touch\n if (!r.touchData.singleTouchMoved) {\n if (!start) {\n cy.$(':selected').unselect(['tapunselect']);\n }\n triggerEvents(start, ['tap', 'vclick'], e, {\n x: now[0],\n y: now[1]\n });\n didDoubleTouch = false;\n if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {\n touchTimeout && clearTimeout(touchTimeout);\n didDoubleTouch = true;\n prevTouchTimeStamp = null;\n triggerEvents(start, ['dbltap', 'vdblclick'], e, {\n x: now[0],\n y: now[1]\n });\n } else {\n touchTimeout = setTimeout(function () {\n if (didDoubleTouch) return;\n triggerEvents(start, ['onetap', 'voneclick'], e, {\n x: now[0],\n y: now[1]\n });\n }, cy.multiClickDebounceTime());\n prevTouchTimeStamp = e.timeStamp;\n }\n }\n\n // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance\n if (start != null && !r.dragData.didDrag // didn't drag nodes around\n && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection\n ) {\n if (cy.selectionType() === 'single') {\n cy.$(isSelected).unmerge(start).unselect(['tapunselect']);\n start.select(['tapselect']);\n } else {\n if (start.selected()) {\n start.unselect(['tapunselect']);\n } else {\n start.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n r.touchData.singleTouchMoved = true;\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n r.dragData.didDrag = false; // reset for next touchstart\n\n if (e.touches.length === 0) {\n r.touchData.dragDelta = [];\n r.touchData.startPosition = [null, null, null, null, null, null];\n r.touchData.startGPosition = null;\n r.touchData.didSelect = false;\n }\n if (e.touches.length < 2) {\n if (e.touches.length === 1) {\n // the old start global pos'n may not be the same finger that remains\n r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];\n }\n r.pinching = false;\n r.redrawHint('eles', true);\n r.redraw();\n }\n\n //r.redraw();\n }, false);\n\n // fallback compatibility layer for ms pointer events\n if (typeof TouchEvent === 'undefined') {\n var pointers = [];\n var makeTouch = function makeTouch(e) {\n return {\n clientX: e.clientX,\n clientY: e.clientY,\n force: 1,\n identifier: e.pointerId,\n pageX: e.pageX,\n pageY: e.pageY,\n radiusX: e.width / 2,\n radiusY: e.height / 2,\n screenX: e.screenX,\n screenY: e.screenY,\n target: e.target\n };\n };\n var makePointer = function makePointer(e) {\n return {\n event: e,\n touch: makeTouch(e)\n };\n };\n var addPointer = function addPointer(e) {\n pointers.push(makePointer(e));\n };\n var removePointer = function removePointer(e) {\n for (var i = 0; i < pointers.length; i++) {\n var p = pointers[i];\n if (p.event.pointerId === e.pointerId) {\n pointers.splice(i, 1);\n return;\n }\n }\n };\n var updatePointer = function updatePointer(e) {\n var p = pointers.filter(function (p) {\n return p.event.pointerId === e.pointerId;\n })[0];\n p.event = e;\n p.touch = makeTouch(e);\n };\n var addTouchesToEvent = function addTouchesToEvent(e) {\n e.touches = pointers.map(function (p) {\n return p.touch;\n });\n };\n var pointerIsMouse = function pointerIsMouse(e) {\n return e.pointerType === 'mouse' || e.pointerType === 4;\n };\n r.registerBinding(r.container, 'pointerdown', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n addPointer(e);\n addTouchesToEvent(e);\n touchstartHandler(e);\n });\n r.registerBinding(r.container, 'pointerup', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchendHandler(e);\n });\n r.registerBinding(r.container, 'pointercancel', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchcancelHandler(e);\n });\n r.registerBinding(r.container, 'pointermove', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n updatePointer(e);\n addTouchesToEvent(e);\n touchmoveHandler(e);\n });\n }\n };\n\n var BRp$2 = {};\n BRp$2.generatePolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding);\n }\n };\n };\n BRp$2.generateEllipse = function () {\n return this.nodeShapes['ellipse'] = {\n renderer: this,\n name: 'ellipse',\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return checkInEllipse(x, y, width, height, centerX, centerY, padding);\n }\n };\n };\n BRp$2.generateRoundPolygon = function (name, points) {\n // Pre-compute control points\n // Since these points depend on the radius length (which in turns depend on the width/height of the node) we will only pre-compute\n // the unit vectors.\n // For simplicity the layout will be:\n // [ p0, UnitVectorP0P1, p1, UniVectorP1P2, ..., pn, UnitVectorPnP0 ]\n var allPoints = new Array(points.length * 2);\n for (var i = 0; i < points.length / 2; i++) {\n var sourceIndex = i * 2;\n var destIndex = void 0;\n if (i < points.length / 2 - 1) {\n destIndex = (i + 1) * 2;\n } else {\n destIndex = 0;\n }\n allPoints[i * 4] = points[sourceIndex];\n allPoints[i * 4 + 1] = points[sourceIndex + 1];\n var xDest = points[destIndex] - points[sourceIndex];\n var yDest = points[destIndex + 1] - points[sourceIndex + 1];\n var norm = Math.sqrt(xDest * xDest + yDest * yDest);\n allPoints[i * 4 + 2] = xDest / norm;\n allPoints[i * 4 + 3] = yDest / norm;\n }\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: allPoints,\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height);\n }\n };\n };\n BRp$2.generateRoundRectangle = function () {\n return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = {\n renderer: this,\n name: 'round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var diam = cornerRadius * 2;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // Check top left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) {\n return true;\n }\n\n // Check top right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n };\n BRp$2.generateCutRectangle = function () {\n return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = {\n renderer: this,\n name: 'cut-rectangle',\n cornerLength: getCutRectangleCornerLength(),\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) {\n var cl = this.cornerLength;\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n\n // points are in clockwise order, inner (imaginary) triangle pt on [4, 5]\n return {\n topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],\n topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],\n bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],\n bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]\n };\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) {\n return true;\n }\n var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY);\n return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft);\n }\n };\n };\n BRp$2.generateBarrel = function () {\n return this.nodeShapes['barrel'] = {\n renderer: this,\n name: 'barrel',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n // use two fixed t values for the bezier curve approximation\n\n var t0 = 0.15;\n var t1 = 0.5;\n var t2 = 0.85;\n var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) {\n // approximate curve pts based on the two t values\n var m0 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t0);\n var m1 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t1);\n var m2 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t2);\n return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]];\n };\n var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) {\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width;\n\n // points are in clockwise order, inner (imaginary) control pt on [4, 5]\n var pts = {\n topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],\n topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],\n bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],\n bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]\n };\n pts.topLeft.isTop = true;\n pts.topRight.isTop = true;\n pts.bottomLeft.isBottom = true;\n pts.bottomRight.isBottom = true;\n return pts;\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) {\n return true;\n }\n var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY);\n var getCurveT = function getCurveT(x, y, curvePts) {\n var x0 = curvePts[4];\n var x1 = curvePts[2];\n var x2 = curvePts[0];\n var y0 = curvePts[5];\n // var y1 = curvePts[ 3 ];\n var y2 = curvePts[1];\n var xMin = Math.min(x0, x2);\n var xMax = Math.max(x0, x2);\n var yMin = Math.min(y0, y2);\n var yMax = Math.max(y0, y2);\n if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) {\n var coeff = bezierPtsToQuadCoeff(x0, x1, x2);\n var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x);\n var validRoots = roots.filter(function (r) {\n return 0 <= r && r <= 1;\n });\n if (validRoots.length > 0) {\n return validRoots[0];\n }\n }\n return null;\n };\n var curveRegions = Object.keys(barrelCurvePts);\n for (var i = 0; i < curveRegions.length; i++) {\n var corner = curveRegions[i];\n var cornerPts = barrelCurvePts[corner];\n var t = getCurveT(x, y, cornerPts);\n if (t == null) {\n continue;\n }\n var y0 = cornerPts[5];\n var y1 = cornerPts[3];\n var y2 = cornerPts[1];\n var bezY = qbezierAt(y0, y1, y2, t);\n if (cornerPts.isTop && bezY <= y) {\n return true;\n }\n if (cornerPts.isBottom && y <= bezY) {\n return true;\n }\n }\n return false;\n }\n };\n };\n BRp$2.generateBottomRoundrectangle = function () {\n return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = {\n renderer: this,\n name: 'bottom-round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n var topStartX = nodeX - (width / 2 + padding);\n var topStartY = nodeY - (height / 2 + padding);\n var topEndY = topStartY;\n var topEndX = nodeX + (width / 2 + padding);\n var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (topIntersections.length > 0) {\n return topIntersections;\n }\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var diam = 2 * cornerRadius;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // check non-rounded top side\n var outerWidth = width / 2 + 2 * padding;\n var outerHeight = height / 2 + 2 * padding;\n var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];\n if (pointInsidePolygonPoints(x, y, points)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n };\n BRp$2.registerNodeShapes = function () {\n var nodeShapes = this.nodeShapes = {};\n var renderer = this;\n this.generateEllipse();\n this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0));\n nodeShapes['square'] = nodeShapes['rectangle'];\n this.generateRoundRectangle();\n this.generateCutRectangle();\n this.generateBarrel();\n this.generateBottomRoundrectangle();\n {\n var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];\n this.generatePolygon('diamond', diamondPoints);\n this.generateRoundPolygon('round-diamond', diamondPoints);\n }\n this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0));\n this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0));\n var star5Points = new Array(20);\n {\n var outerPoints = generateUnitNgonPoints(5, 0);\n var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);\n\n // Outer radius is 1; inner radius of star is smaller\n var innerRadius = 0.5 * (3 - Math.sqrt(5));\n innerRadius *= 1.57;\n for (var i = 0; i < innerPoints.length / 2; i++) {\n innerPoints[i * 2] *= innerRadius;\n innerPoints[i * 2 + 1] *= innerRadius;\n }\n for (var i = 0; i < 20 / 4; i++) {\n star5Points[i * 4] = outerPoints[i * 2];\n star5Points[i * 4 + 1] = outerPoints[i * 2 + 1];\n star5Points[i * 4 + 2] = innerPoints[i * 2];\n star5Points[i * 4 + 3] = innerPoints[i * 2 + 1];\n }\n }\n star5Points = fitPolygonToSquare(star5Points);\n this.generatePolygon('star', star5Points);\n this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]);\n this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);\n this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]);\n this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);\n {\n var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];\n this.generatePolygon('tag', tagPoints);\n this.generateRoundPolygon('round-tag', tagPoints);\n }\n nodeShapes.makePolygon = function (points) {\n // use caching on user-specified polygons so they are as fast as native shapes\n\n var key = points.join('$');\n var name = 'polygon-' + key;\n var shape;\n if (shape = this[name]) {\n // got cached shape\n return shape;\n }\n\n // create and cache new shape\n return renderer.generatePolygon(name, points);\n };\n };\n\n var BRp$1 = {};\n BRp$1.timeToRender = function () {\n return this.redrawTotalTime / this.redrawCount;\n };\n BRp$1.redraw = function (options) {\n options = options || staticEmptyObject();\n var r = this;\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = 0;\n }\n if (r.lastRedrawTime === undefined) {\n r.lastRedrawTime = 0;\n }\n if (r.lastDrawTime === undefined) {\n r.lastDrawTime = 0;\n }\n r.requestedFrame = true;\n r.renderOptions = options;\n };\n BRp$1.beforeRender = function (fn, priority) {\n // the renderer can't add tick callbacks when destroyed\n if (this.destroyed) {\n return;\n }\n if (priority == null) {\n error('Priority is not optional for beforeRender');\n }\n var cbs = this.beforeRenderCallbacks;\n cbs.push({\n fn: fn,\n priority: priority\n });\n\n // higher priority callbacks executed first\n cbs.sort(function (a, b) {\n return b.priority - a.priority;\n });\n };\n var beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) {\n var cbs = r.beforeRenderCallbacks;\n for (var i = 0; i < cbs.length; i++) {\n cbs[i].fn(willDraw, startTime);\n }\n };\n BRp$1.startRenderLoop = function () {\n var r = this;\n var cy = r.cy;\n if (r.renderLoopStarted) {\n return;\n } else {\n r.renderLoopStarted = true;\n }\n var renderFn = function renderFn(requestTime) {\n if (r.destroyed) {\n return;\n }\n if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) {\n beforeRenderCallbacks(r, true, requestTime);\n var startTime = performanceNow();\n r.render(r.renderOptions);\n var endTime = r.lastDrawTime = performanceNow();\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = endTime - startTime;\n }\n if (r.redrawCount === undefined) {\n r.redrawCount = 0;\n }\n r.redrawCount++;\n if (r.redrawTotalTime === undefined) {\n r.redrawTotalTime = 0;\n }\n var duration = endTime - startTime;\n r.redrawTotalTime += duration;\n r.lastRedrawTime = duration;\n\n // use a weighted average with a bias from the previous average so we don't spike so easily\n r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;\n r.requestedFrame = false;\n } else {\n beforeRenderCallbacks(r, false, requestTime);\n }\n r.skipFrame = false;\n requestAnimationFrame(renderFn);\n };\n requestAnimationFrame(renderFn);\n };\n\n var BaseRenderer = function BaseRenderer(options) {\n this.init(options);\n };\n var BR = BaseRenderer;\n var BRp = BR.prototype;\n BRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl'];\n BRp.init = function (options) {\n var r = this;\n r.options = options;\n r.cy = options.cy;\n var ctr = r.container = options.cy.container();\n var containerWindow = r.cy.window();\n\n // prepend a stylesheet in the head such that\n if (containerWindow) {\n var document = containerWindow.document;\n var head = document.head;\n var stylesheetId = '__________cytoscape_stylesheet';\n var className = '__________cytoscape_container';\n var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null;\n if (ctr.className.indexOf(className) < 0) {\n ctr.className = (ctr.className || '') + ' ' + className;\n }\n if (!stylesheetAlreadyExists) {\n var stylesheet = document.createElement('style');\n stylesheet.id = stylesheetId;\n stylesheet.textContent = '.' + className + ' { position: relative; }';\n head.insertBefore(stylesheet, head.children[0]); // first so lowest priority\n }\n\n var computedStyle = containerWindow.getComputedStyle(ctr);\n var position = computedStyle.getPropertyValue('position');\n if (position === 'static') {\n warn('A Cytoscape container has style position:static and so can not use UI extensions properly');\n }\n }\n r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag\n\n r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];\n\n //--Pointer-related data\n r.hoverData = {\n down: null,\n last: null,\n downTime: null,\n triggerMode: null,\n dragging: false,\n initialPan: [null, null],\n capture: false\n };\n r.dragData = {\n possibleDragElements: []\n };\n r.touchData = {\n start: null,\n capture: false,\n // These 3 fields related to tap, taphold events\n startPosition: [null, null, null, null, null, null],\n singleTouchStartTime: null,\n singleTouchMoved: true,\n now: [null, null, null, null, null, null],\n earlier: [null, null, null, null, null, null]\n };\n r.redraws = 0;\n r.showFps = options.showFps;\n r.debug = options.debug;\n r.hideEdgesOnViewport = options.hideEdgesOnViewport;\n r.textureOnViewport = options.textureOnViewport;\n r.wheelSensitivity = options.wheelSensitivity;\n r.motionBlurEnabled = options.motionBlur; // on by default\n r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null;\n r.motionBlur = options.motionBlur; // for initial kick off\n r.motionBlurOpacity = options.motionBlurOpacity;\n r.motionBlurTransparency = 1 - r.motionBlurOpacity;\n r.motionBlurPxRatio = 1;\n r.mbPxRBlurry = 1; //0.8;\n r.minMbLowQualFrames = 4;\n r.fullQualityMb = false;\n r.clearedForMotionBlur = [];\n r.desktopTapThreshold = options.desktopTapThreshold;\n r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold;\n r.touchTapThreshold = options.touchTapThreshold;\n r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold;\n r.tapholdDuration = 500;\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.beforeRenderPriorities = {\n // higher priority execs before lower one\n animations: 400,\n eleCalcs: 300,\n eleTxrDeq: 200,\n lyrTxrDeq: 150,\n lyrTxrSkip: 100\n };\n r.registerNodeShapes();\n r.registerArrowShapes();\n r.registerCalculationListeners();\n };\n BRp.notify = function (eventName, eles) {\n var r = this;\n var cy = r.cy;\n\n // the renderer can't be notified after it's destroyed\n if (this.destroyed) {\n return;\n }\n if (eventName === 'init') {\n r.load();\n return;\n }\n if (eventName === 'destroy') {\n r.destroy();\n return;\n }\n if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') {\n r.invalidateCachedZSortedEles();\n }\n if (eventName === 'viewport') {\n r.redrawHint('select', true);\n }\n if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n this.startRenderLoop();\n this.redraw();\n };\n BRp.destroy = function () {\n var r = this;\n r.destroyed = true;\n r.cy.stopAnimationLoop();\n for (var i = 0; i < r.bindings.length; i++) {\n var binding = r.bindings[i];\n var b = binding;\n var tgt = b.target;\n (tgt.off || tgt.removeEventListener).apply(tgt, b.args);\n }\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.onUpdateEleCalcsFns = [];\n if (r.removeObserver) {\n r.removeObserver.disconnect();\n }\n if (r.styleObserver) {\n r.styleObserver.disconnect();\n }\n if (r.resizeObserver) {\n r.resizeObserver.disconnect();\n }\n if (r.labelCalcDiv) {\n try {\n document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef\n } catch (e) {\n // ie10 issue #1014\n }\n }\n };\n BRp.isHeadless = function () {\n return false;\n };\n [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) {\n extend(BRp, props);\n });\n\n var fullFpsTime = 1000 / 60; // assume 60 frames per second\n\n var defs = {\n setupDequeueing: function setupDequeueing(opts) {\n return function setupDequeueingImpl() {\n var self = this;\n var r = this.renderer;\n if (self.dequeueingSetup) {\n return;\n } else {\n self.dequeueingSetup = true;\n }\n var queueRedraw = debounce_1(function () {\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, opts.deqRedrawThreshold);\n var dequeue = function dequeue(willDraw, frameStartTime) {\n var startTime = performanceNow();\n var avgRenderTime = r.averageRedrawTime;\n var renderTime = r.lastRedrawTime;\n var deqd = [];\n var extent = r.cy.extent();\n var pixelRatio = r.getPixelRatio();\n\n // if we aren't in a tick that causes a draw, then the rendered style\n // queue won't automatically be flushed before dequeueing starts\n if (!willDraw) {\n r.flushRenderedStyleQueue();\n }\n while (true) {\n // eslint-disable-line no-constant-condition\n var now = performanceNow();\n var duration = now - startTime;\n var frameDuration = now - frameStartTime;\n if (renderTime < fullFpsTime) {\n // if we're rendering faster than the ideal fps, then do dequeueing\n // during all of the remaining frame time\n\n var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);\n if (frameDuration >= opts.deqFastCost * timeAvailable) {\n break;\n }\n } else {\n if (willDraw) {\n if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {\n break;\n }\n } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {\n break;\n }\n }\n var thisDeqd = opts.deq(self, pixelRatio, extent);\n if (thisDeqd.length > 0) {\n for (var i = 0; i < thisDeqd.length; i++) {\n deqd.push(thisDeqd[i]);\n }\n } else {\n break;\n }\n }\n\n // callbacks on dequeue\n if (deqd.length > 0) {\n opts.onDeqd(self, deqd);\n if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) {\n queueRedraw();\n }\n }\n };\n var priority = opts.priority || noop$1;\n r.beforeRender(dequeue, priority(self));\n };\n }\n };\n\n // Allows lookups for (ele, lvl) => cache.\n // Uses keys so elements may share the same cache.\n var ElementTextureCacheLookup = /*#__PURE__*/function () {\n function ElementTextureCacheLookup(getKey) {\n var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify;\n _classCallCheck(this, ElementTextureCacheLookup);\n this.idsByKey = new Map$2();\n this.keyForId = new Map$2();\n this.cachesByLvl = new Map$2();\n this.lvls = [];\n this.getKey = getKey;\n this.doesEleInvalidateKey = doesEleInvalidateKey;\n }\n _createClass(ElementTextureCacheLookup, [{\n key: \"getIdsFor\",\n value: function getIdsFor(key) {\n if (key == null) {\n error(\"Can not get id list for null key\");\n }\n var idsByKey = this.idsByKey;\n var ids = this.idsByKey.get(key);\n if (!ids) {\n ids = new Set$1();\n idsByKey.set(key, ids);\n }\n return ids;\n }\n }, {\n key: \"addIdForKey\",\n value: function addIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key).add(id);\n }\n }\n }, {\n key: \"deleteIdForKey\",\n value: function deleteIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key)[\"delete\"](id);\n }\n }\n }, {\n key: \"getNumberOfIdsForKey\",\n value: function getNumberOfIdsForKey(key) {\n if (key == null) {\n return 0;\n } else {\n return this.getIdsFor(key).size;\n }\n }\n }, {\n key: \"updateKeyMappingFor\",\n value: function updateKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var currKey = this.getKey(ele);\n this.deleteIdForKey(prevKey, id);\n this.addIdForKey(currKey, id);\n this.keyForId.set(id, currKey);\n }\n }, {\n key: \"deleteKeyMappingFor\",\n value: function deleteKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n this.deleteIdForKey(prevKey, id);\n this.keyForId[\"delete\"](id);\n }\n }, {\n key: \"keyHasChangedFor\",\n value: function keyHasChangedFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var newKey = this.getKey(ele);\n return prevKey !== newKey;\n }\n }, {\n key: \"isInvalid\",\n value: function isInvalid(ele) {\n return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);\n }\n }, {\n key: \"getCachesAt\",\n value: function getCachesAt(lvl) {\n var cachesByLvl = this.cachesByLvl,\n lvls = this.lvls;\n var caches = cachesByLvl.get(lvl);\n if (!caches) {\n caches = new Map$2();\n cachesByLvl.set(lvl, caches);\n lvls.push(lvl);\n }\n return caches;\n }\n }, {\n key: \"getCache\",\n value: function getCache(key, lvl) {\n return this.getCachesAt(lvl).get(key);\n }\n }, {\n key: \"get\",\n value: function get(ele, lvl) {\n var key = this.getKey(ele);\n var cache = this.getCache(key, lvl);\n\n // getting for an element may need to add to the id list b/c eles can share keys\n if (cache != null) {\n this.updateKeyMappingFor(ele);\n }\n return cache;\n }\n }, {\n key: \"getForCachedKey\",\n value: function getForCachedKey(ele, lvl) {\n var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key\n var cache = this.getCache(key, lvl);\n return cache;\n }\n }, {\n key: \"hasCache\",\n value: function hasCache(key, lvl) {\n return this.getCachesAt(lvl).has(key);\n }\n }, {\n key: \"has\",\n value: function has(ele, lvl) {\n var key = this.getKey(ele);\n return this.hasCache(key, lvl);\n }\n }, {\n key: \"setCache\",\n value: function setCache(key, lvl, cache) {\n cache.key = key;\n this.getCachesAt(lvl).set(key, cache);\n }\n }, {\n key: \"set\",\n value: function set(ele, lvl, cache) {\n var key = this.getKey(ele);\n this.setCache(key, lvl, cache);\n this.updateKeyMappingFor(ele);\n }\n }, {\n key: \"deleteCache\",\n value: function deleteCache(key, lvl) {\n this.getCachesAt(lvl)[\"delete\"](key);\n }\n }, {\n key: \"delete\",\n value: function _delete(ele, lvl) {\n var key = this.getKey(ele);\n this.deleteCache(key, lvl);\n }\n }, {\n key: \"invalidateKey\",\n value: function invalidateKey(key) {\n var _this = this;\n this.lvls.forEach(function (lvl) {\n return _this.deleteCache(key, lvl);\n });\n }\n\n // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)\n }, {\n key: \"invalidate\",\n value: function invalidate(ele) {\n var id = ele.id();\n var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key)\n\n this.deleteKeyMappingFor(ele);\n var entireKeyInvalidated = this.doesEleInvalidateKey(ele);\n if (entireKeyInvalidated) {\n // clear mapping for current key\n this.invalidateKey(key);\n }\n return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;\n }\n }]);\n return ElementTextureCacheLookup;\n }();\n\n var minTxrH = 25; // the size of the texture cache for small height eles (special case)\n var txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up\n var minLvl$1 = -4; // when scaling smaller than that we don't need to re-render\n var maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful)\n var maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used\n var eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps\n var defTxrWidth = 1024; // default/minimum texture width\n var maxTxrW = 1024; // the maximum width of a texture\n var maxTxrH = 1024; // the maximum height of a texture\n var minUtility = 0.2; // if usage of texture is less than this, it is retired\n var maxFullness = 0.8; // fullness of texture after which queue removal is checked\n var maxFullnessChecks = 10; // dequeued after this many checks\n var deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\n var deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time\n var deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\n var deqFastCost$1 = 0.9; // % of frame time to be used when >60fps\n var deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\n var maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch\n\n var getTxrReasons = {\n dequeue: 'dequeue',\n downscale: 'downscale',\n highQuality: 'highQuality'\n };\n var initDefaults = defaults$g({\n getKey: null,\n doesEleInvalidateKey: falsify,\n drawElement: null,\n getBoundingBox: null,\n getRotationPoint: null,\n getRotationOffset: null,\n isVisible: trueify,\n allowEdgeTxrCaching: true,\n allowParentTxrCaching: true\n });\n var ElementTextureCache = function ElementTextureCache(renderer, initOptions) {\n var self = this;\n self.renderer = renderer;\n self.onDequeues = [];\n var opts = initDefaults(initOptions);\n extend(self, opts);\n self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);\n self.setupDequeueing();\n };\n var ETCp = ElementTextureCache.prototype;\n ETCp.reasons = getTxrReasons;\n\n // the list of textures in which new subtextures for elements can be placed\n ETCp.getTextureQueue = function (txrH) {\n var self = this;\n self.eleImgCaches = self.eleImgCaches || {};\n return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || [];\n };\n\n // the list of usused textures which can be recycled (in use in texture queue)\n ETCp.getRetiredTextureQueue = function (txrH) {\n var self = this;\n var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {};\n var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];\n return rtxtrQ;\n };\n\n // queue of element draw requests at different scale levels\n ETCp.getElementQueue = function () {\n var self = this;\n var q = self.eleCacheQueue = self.eleCacheQueue || new heap(function (a, b) {\n return b.reqs - a.reqs;\n });\n return q;\n };\n\n // queue of element draw requests at different scale levels (element id lookup)\n ETCp.getElementKeyToQueue = function () {\n var self = this;\n var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {};\n return k2q;\n };\n ETCp.getElement = function (ele, bb, pxRatio, lvl, reason) {\n var self = this;\n var r = this.renderer;\n var zoom = r.cy.zoom();\n var lookup = this.lookup;\n if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {\n return null;\n }\n if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) {\n return null;\n }\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n }\n if (lvl < minLvl$1) {\n lvl = minLvl$1;\n } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {\n return null;\n }\n var scale = Math.pow(2, lvl);\n var eleScaledH = bb.h * scale;\n var eleScaledW = bb.w * scale;\n var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);\n if (!this.isVisible(ele, scaledLabelShown)) {\n return null;\n }\n var eleCache = lookup.get(ele, lvl);\n\n // if this get was on an unused/invalidated cache, then restore the texture usage metric\n if (eleCache && eleCache.invalidated) {\n eleCache.invalidated = false;\n eleCache.texture.invalidatedWidth -= eleCache.width;\n }\n if (eleCache) {\n return eleCache;\n }\n var txrH; // which texture height this ele belongs to\n\n if (eleScaledH <= minTxrH) {\n txrH = minTxrH;\n } else if (eleScaledH <= txrStepH) {\n txrH = txrStepH;\n } else {\n txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;\n }\n if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {\n return null; // caching large elements is not efficient\n }\n\n var txrQ = self.getTextureQueue(txrH);\n\n // first try the second last one in case it has space at the end\n var txr = txrQ[txrQ.length - 2];\n var addNewTxr = function addNewTxr() {\n return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW);\n };\n\n // try the last one if there is no second last one\n if (!txr) {\n txr = txrQ[txrQ.length - 1];\n }\n\n // if the last one doesn't exist, we need a first one\n if (!txr) {\n txr = addNewTxr();\n }\n\n // if there's no room in the current texture, we need a new one\n if (txr.width - txr.usedWidth < eleScaledW) {\n txr = addNewTxr();\n }\n var scalableFrom = function scalableFrom(otherCache) {\n return otherCache && otherCache.scaledLabelShown === scaledLabelShown;\n };\n var deqing = reason && reason === getTxrReasons.dequeue;\n var highQualityReq = reason && reason === getTxrReasons.highQuality;\n var downscaleReq = reason && reason === getTxrReasons.downscale;\n var higherCache; // the nearest cache with a higher level\n for (var l = lvl + 1; l <= maxLvl$1; l++) {\n var c = lookup.get(ele, l);\n if (c) {\n higherCache = c;\n break;\n }\n }\n var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;\n var downscale = function downscale() {\n txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);\n };\n\n // reset ele area in texture\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);\n if (scalableFrom(oneUpCache)) {\n // then we can relatively cheaply rescale the existing image w/o rerendering\n downscale();\n } else if (scalableFrom(higherCache)) {\n // then use the higher cache for now and queue the next level down\n // to cheaply scale towards the smaller level\n\n if (highQualityReq) {\n for (var _l = higherCache.level; _l > lvl; _l--) {\n oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);\n }\n downscale();\n } else {\n self.queueElement(ele, higherCache.level - 1);\n return higherCache;\n }\n } else {\n var lowerCache; // the nearest cache with a lower level\n if (!deqing && !highQualityReq && !downscaleReq) {\n for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {\n var _c = lookup.get(ele, _l2);\n if (_c) {\n lowerCache = _c;\n break;\n }\n }\n }\n if (scalableFrom(lowerCache)) {\n // then use the lower quality cache for now and queue the better one for later\n\n self.queueElement(ele, lvl);\n return lowerCache;\n }\n txr.context.translate(txr.usedWidth, 0);\n txr.context.scale(scale, scale);\n this.drawElement(txr.context, ele, bb, scaledLabelShown, false);\n txr.context.scale(1 / scale, 1 / scale);\n txr.context.translate(-txr.usedWidth, 0);\n }\n eleCache = {\n x: txr.usedWidth,\n texture: txr,\n level: lvl,\n scale: scale,\n width: eleScaledW,\n height: eleScaledH,\n scaledLabelShown: scaledLabelShown\n };\n txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);\n txr.eleCaches.push(eleCache);\n lookup.set(ele, lvl, eleCache);\n self.checkTextureFullness(txr);\n return eleCache;\n };\n ETCp.invalidateElements = function (eles) {\n for (var i = 0; i < eles.length; i++) {\n this.invalidateElement(eles[i]);\n }\n };\n ETCp.invalidateElement = function (ele) {\n var self = this;\n var lookup = self.lookup;\n var caches = [];\n var invalid = lookup.isInvalid(ele);\n if (!invalid) {\n return; // override the invalidation request if the element key has not changed\n }\n\n for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {\n var cache = lookup.getForCachedKey(ele, lvl);\n if (cache) {\n caches.push(cache);\n }\n }\n var noOtherElesUseCache = lookup.invalidate(ele);\n if (noOtherElesUseCache) {\n for (var i = 0; i < caches.length; i++) {\n var _cache = caches[i];\n var txr = _cache.texture;\n\n // remove space from the texture it belongs to\n txr.invalidatedWidth += _cache.width;\n\n // mark the cache as invalidated\n _cache.invalidated = true;\n\n // retire the texture if its utility is low\n self.checkTextureUtility(txr);\n }\n }\n\n // remove from queue since the old req was for the old state\n self.removeFromQueue(ele);\n };\n ETCp.checkTextureUtility = function (txr) {\n // invalidate all entries in the cache if the cache size is small\n if (txr.invalidatedWidth >= minUtility * txr.width) {\n this.retireTexture(txr);\n }\n };\n ETCp.checkTextureFullness = function (txr) {\n // if texture has been mostly filled and passed over several times, remove\n // it from the queue so we don't need to waste time looking at it to put new things\n\n var self = this;\n var txrQ = self.getTextureQueue(txr.height);\n if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {\n removeFromArray(txrQ, txr);\n } else {\n txr.fullnessChecks++;\n }\n };\n ETCp.retireTexture = function (txr) {\n var self = this;\n var txrH = txr.height;\n var txrQ = self.getTextureQueue(txrH);\n var lookup = this.lookup;\n\n // retire the texture from the active / searchable queue:\n\n removeFromArray(txrQ, txr);\n txr.retired = true;\n\n // remove the refs from the eles to the caches:\n\n var eleCaches = txr.eleCaches;\n for (var i = 0; i < eleCaches.length; i++) {\n var eleCache = eleCaches[i];\n lookup.deleteCache(eleCache.key, eleCache.level);\n }\n clearArray(eleCaches);\n\n // add the texture to a retired queue so it can be recycled in future:\n\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n rtxtrQ.push(txr);\n };\n ETCp.addTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var txr = {};\n txrQ.push(txr);\n txr.eleCaches = [];\n txr.height = txrH;\n txr.width = Math.max(defTxrWidth, minW);\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height);\n txr.context = txr.canvas.getContext('2d');\n return txr;\n };\n ETCp.recycleTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n for (var i = 0; i < rtxtrQ.length; i++) {\n var txr = rtxtrQ[i];\n if (txr.width >= minW) {\n txr.retired = false;\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n clearArray(txr.eleCaches);\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(0, 0, txr.width, txr.height);\n removeFromArray(rtxtrQ, txr);\n txrQ.push(txr);\n return txr;\n }\n }\n };\n ETCp.queueElement = function (ele, lvl) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var existingReq = k2q[key];\n if (existingReq) {\n // use the max lvl b/c in between lvls are cheap to make\n existingReq.level = Math.max(existingReq.level, lvl);\n existingReq.eles.merge(ele);\n existingReq.reqs++;\n q.updateItem(existingReq);\n } else {\n var req = {\n eles: ele.spawn().merge(ele),\n level: lvl,\n reqs: 1,\n key: key\n };\n q.push(req);\n k2q[key] = req;\n }\n };\n ETCp.dequeue = function (pxRatio /*, extent*/) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var dequeued = [];\n var lookup = self.lookup;\n for (var i = 0; i < maxDeqSize$1; i++) {\n if (q.size() > 0) {\n var req = q.pop();\n var key = req.key;\n var ele = req.eles[0]; // all eles have the same key\n var cacheExists = lookup.hasCache(ele, req.level);\n\n // clear out the key to req lookup\n k2q[key] = null;\n\n // dequeueing isn't necessary with an existing cache\n if (cacheExists) {\n continue;\n }\n dequeued.push(req);\n var bb = self.getBoundingBox(ele);\n self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);\n } else {\n break;\n }\n }\n return dequeued;\n };\n ETCp.removeFromQueue = function (ele) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var req = k2q[key];\n if (req != null) {\n if (req.eles.length === 1) {\n // remove if last ele in the req\n // bring to front of queue\n req.reqs = MAX_INT$1;\n q.updateItem(req);\n q.pop(); // remove from queue\n\n k2q[key] = null; // remove from lookup map\n } else {\n // otherwise just remove ele from req\n req.eles.unmerge(ele);\n }\n }\n };\n ETCp.onDequeue = function (fn) {\n this.onDequeues.push(fn);\n };\n ETCp.offDequeue = function (fn) {\n removeFromArray(this.onDequeues, fn);\n };\n ETCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold$1,\n deqCost: deqCost$1,\n deqAvgCost: deqAvgCost$1,\n deqNoDrawCost: deqNoDrawCost$1,\n deqFastCost: deqFastCost$1,\n deq: function deq(self, pxRatio, extent) {\n return self.dequeue(pxRatio, extent);\n },\n onDeqd: function onDeqd(self, deqd) {\n for (var i = 0; i < self.onDequeues.length; i++) {\n var fn = self.onDequeues[i];\n fn(deqd);\n }\n },\n shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) {\n for (var i = 0; i < deqd.length; i++) {\n var eles = deqd[i].eles;\n for (var j = 0; j < eles.length; j++) {\n var bb = eles[j].boundingBox();\n if (boundingBoxesIntersect(bb, extent)) {\n return true;\n }\n }\n }\n return false;\n },\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.eleTxrDeq;\n }\n });\n\n var defNumLayers = 1; // default number of layers to use\n var minLvl = -4; // when scaling smaller than that we don't need to re-render\n var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful)\n var maxZoom = 3.99; // beyond this zoom level, layered textures are not used\n var deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\n var refineEleDebounceTime = 50; // time to debounce sharper ele texture updates\n var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\n var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time\n var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\n var deqFastCost = 0.9; // % of frame time to be used when >60fps\n var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch\n var invalidThreshold = 250; // time threshold for disabling b/c of invalidations\n var maxLayerArea = 4000 * 4000; // layers can't be bigger than this\n var useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm)\n\n // var log = function(){ console.log.apply( console, arguments ); };\n\n var LayeredTextureCache = function LayeredTextureCache(renderer) {\n var self = this;\n var r = self.renderer = renderer;\n var cy = r.cy;\n self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ]\n\n self.firstGet = true;\n self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;\n self.skipping = false;\n self.eleTxrDeqs = cy.collection();\n self.scheduleElementRefinement = debounce_1(function () {\n self.refineElementTextures(self.eleTxrDeqs);\n self.eleTxrDeqs.unmerge(self.eleTxrDeqs);\n }, refineEleDebounceTime);\n r.beforeRender(function (willDraw, now) {\n if (now - self.lastInvalidationTime <= invalidThreshold) {\n self.skipping = true;\n } else {\n self.skipping = false;\n }\n }, r.beforeRenderPriorities.lyrTxrSkip);\n var qSort = function qSort(a, b) {\n return b.reqs - a.reqs;\n };\n self.layersQueue = new heap(qSort);\n self.setupDequeueing();\n };\n var LTCp = LayeredTextureCache.prototype;\n var layerIdPool = 0;\n var MAX_INT = Math.pow(2, 53) - 1;\n LTCp.makeLayer = function (bb, lvl) {\n var scale = Math.pow(2, lvl);\n var w = Math.ceil(bb.w * scale);\n var h = Math.ceil(bb.h * scale);\n var canvas = this.renderer.makeOffscreenCanvas(w, h);\n var layer = {\n id: layerIdPool = ++layerIdPool % MAX_INT,\n bb: bb,\n level: lvl,\n width: w,\n height: h,\n canvas: canvas,\n context: canvas.getContext('2d'),\n eles: [],\n elesQueue: [],\n reqs: 0\n };\n\n // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level);\n\n var cxt = layer.context;\n var dx = -layer.bb.x1;\n var dy = -layer.bb.y1;\n\n // do the transform on creation to save cycles (it's the same for all eles)\n cxt.scale(scale, scale);\n cxt.translate(dx, dy);\n return layer;\n };\n LTCp.getLayers = function (eles, pxRatio, lvl) {\n var self = this;\n var r = self.renderer;\n var cy = r.cy;\n var zoom = cy.zoom();\n var firstGet = self.firstGet;\n self.firstGet = false;\n\n // log('--\\nget layers with %s eles', eles.length);\n //log eles.map(function(ele){ return ele.id() }) );\n\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n if (lvl < minLvl) {\n lvl = minLvl;\n } else if (zoom >= maxZoom || lvl > maxLvl) {\n return null;\n }\n }\n self.validateLayersElesOrdering(lvl, eles);\n var layersByLvl = self.layersByLevel;\n var scale = Math.pow(2, lvl);\n var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];\n var bb;\n var lvlComplete = self.levelIsComplete(lvl, eles);\n var tmpLayers;\n var checkTempLevels = function checkTempLevels() {\n var canUseAsTmpLvl = function canUseAsTmpLvl(l) {\n self.validateLayersElesOrdering(l, eles);\n if (self.levelIsComplete(l, eles)) {\n tmpLayers = layersByLvl[l];\n return true;\n }\n };\n var checkLvls = function checkLvls(dir) {\n if (tmpLayers) {\n return;\n }\n for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {\n if (canUseAsTmpLvl(l)) {\n break;\n }\n }\n };\n checkLvls(+1);\n checkLvls(-1);\n\n // remove the invalid layers; they will be replaced as needed later in this function\n for (var i = layers.length - 1; i >= 0; i--) {\n var layer = layers[i];\n if (layer.invalid) {\n removeFromArray(layers, layer);\n }\n }\n };\n if (!lvlComplete) {\n // if the current level is incomplete, then use the closest, best quality layerset temporarily\n // and later queue the current layerset so we can get the proper quality level soon\n\n checkTempLevels();\n } else {\n // log('level complete, using existing layers\\n--');\n return layers;\n }\n var getBb = function getBb() {\n if (!bb) {\n bb = makeBoundingBox();\n for (var i = 0; i < eles.length; i++) {\n updateBoundingBox(bb, eles[i].boundingBox());\n }\n }\n return bb;\n };\n var makeLayer = function makeLayer(opts) {\n opts = opts || {};\n var after = opts.after;\n getBb();\n var area = bb.w * scale * (bb.h * scale);\n if (area > maxLayerArea) {\n return null;\n }\n var layer = self.makeLayer(bb, lvl);\n if (after != null) {\n var index = layers.indexOf(after) + 1;\n layers.splice(index, 0, layer);\n } else if (opts.insert === undefined || opts.insert) {\n // no after specified => first layer made so put at start\n layers.unshift(layer);\n }\n\n // if( tmpLayers ){\n //self.queueLayer( layer );\n // }\n\n return layer;\n };\n if (self.skipping && !firstGet) {\n // log('skip layers');\n return null;\n }\n\n // log('do layers');\n\n var layer = null;\n var maxElesPerLayer = eles.length / defNumLayers;\n var allowLazyQueueing = !firstGet;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n\n // log('look at ele', ele.id());\n\n var existingLayer = caches[lvl];\n if (existingLayer) {\n // reuse layer for later eles\n // log('reuse layer for', ele.id());\n layer = existingLayer;\n continue;\n }\n if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {\n // log('make new layer for ele %s', ele.id());\n\n layer = makeLayer({\n insert: true,\n after: layer\n });\n\n // if now layer can be built then we can't use layers at this level\n if (!layer) {\n return null;\n }\n\n // log('new layer with id %s', layer.id);\n }\n\n if (tmpLayers || allowLazyQueueing) {\n // log('queue ele %s in layer %s', ele.id(), layer.id);\n self.queueLayer(layer, ele);\n } else {\n // log('draw ele %s in layer %s', ele.id(), layer.id);\n self.drawEleInLayer(layer, ele, lvl, pxRatio);\n }\n layer.eles.push(ele);\n caches[lvl] = layer;\n }\n\n // log('--');\n\n if (tmpLayers) {\n // then we only queued the current layerset and can't draw it yet\n return tmpLayers;\n }\n if (allowLazyQueueing) {\n // log('lazy queue level', lvl);\n return null;\n }\n return layers;\n };\n\n // a layer may want to use an ele cache of a higher level to avoid blurriness\n // so the layer level might not equal the ele level\n LTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) {\n return lvl;\n };\n LTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) {\n var self = this;\n var r = this.renderer;\n var context = layer.context;\n var bb = ele.boundingBox();\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n lvl = self.getEleLevelForLayerLevel(lvl, pxRatio);\n {\n r.setImgSmoothing(context, false);\n }\n {\n r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);\n }\n {\n r.setImgSmoothing(context, true);\n }\n };\n LTCp.levelIsComplete = function (lvl, eles) {\n var self = this;\n var layers = self.layersByLevel[lvl];\n if (!layers || layers.length === 0) {\n return false;\n }\n var numElesInLayers = 0;\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n\n // if there are any eles needed to be drawn yet, the level is not complete\n if (layer.reqs > 0) {\n return false;\n }\n\n // if the layer is invalid, the level is not complete\n if (layer.invalid) {\n return false;\n }\n numElesInLayers += layer.eles.length;\n }\n\n // we should have exactly the number of eles passed in to be complete\n if (numElesInLayers !== eles.length) {\n return false;\n }\n return true;\n };\n LTCp.validateLayersElesOrdering = function (lvl, eles) {\n var layers = this.layersByLevel[lvl];\n if (!layers) {\n return;\n }\n\n // if in a layer the eles are not in the same order, then the layer is invalid\n // (i.e. there is an ele in between the eles in the layer)\n\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var offset = -1;\n\n // find the offset\n for (var j = 0; j < eles.length; j++) {\n if (layer.eles[0] === eles[j]) {\n offset = j;\n break;\n }\n }\n if (offset < 0) {\n // then the layer has nonexistent elements and is invalid\n this.invalidateLayer(layer);\n continue;\n }\n\n // the eles in the layer must be in the same continuous order, else the layer is invalid\n\n var o = offset;\n for (var j = 0; j < layer.eles.length; j++) {\n if (layer.eles[j] !== eles[o + j]) {\n // log('invalidate based on ordering', layer.id);\n\n this.invalidateLayer(layer);\n break;\n }\n }\n }\n };\n LTCp.updateElementsInLayers = function (eles, update) {\n var self = this;\n var isEles = element(eles[0]);\n\n // collect udpated elements (cascaded from the layers) and update each\n // layer itself along the way\n for (var i = 0; i < eles.length; i++) {\n var req = isEles ? null : eles[i];\n var ele = isEles ? eles[i] : eles[i].ele;\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n for (var l = minLvl; l <= maxLvl; l++) {\n var layer = caches[l];\n if (!layer) {\n continue;\n }\n\n // if update is a request from the ele cache, then it affects only\n // the matching level\n if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) {\n continue;\n }\n update(layer, ele, req);\n }\n }\n };\n LTCp.haveLayers = function () {\n var self = this;\n var haveLayers = false;\n for (var l = minLvl; l <= maxLvl; l++) {\n var layers = self.layersByLevel[l];\n if (layers && layers.length > 0) {\n haveLayers = true;\n break;\n }\n }\n return haveLayers;\n };\n LTCp.invalidateElements = function (eles) {\n var self = this;\n if (eles.length === 0) {\n return;\n }\n self.lastInvalidationTime = performanceNow();\n\n // log('update invalidate layer time from eles');\n\n if (eles.length === 0 || !self.haveLayers()) {\n return;\n }\n self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {\n self.invalidateLayer(layer);\n });\n };\n LTCp.invalidateLayer = function (layer) {\n // log('update invalidate layer time');\n\n this.lastInvalidationTime = performanceNow();\n if (layer.invalid) {\n return;\n } // save cycles\n\n var lvl = layer.level;\n var eles = layer.eles;\n var layers = this.layersByLevel[lvl];\n\n // log('invalidate layer', layer.id );\n\n removeFromArray(layers, layer);\n // layer.eles = [];\n\n layer.elesQueue = [];\n layer.invalid = true;\n if (layer.replacement) {\n layer.replacement.invalid = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var caches = eles[i]._private.rscratch.imgLayerCaches;\n if (caches) {\n caches[lvl] = null;\n }\n }\n };\n LTCp.refineElementTextures = function (eles) {\n var self = this;\n\n // log('refine', eles.length);\n\n self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {\n var rLyr = layer.replacement;\n if (!rLyr) {\n rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level);\n rLyr.replaces = layer;\n rLyr.eles = layer.eles;\n\n // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level);\n }\n\n if (!rLyr.reqs) {\n for (var i = 0; i < rLyr.eles.length; i++) {\n self.queueLayer(rLyr, rLyr.eles[i]);\n }\n\n // log('queue replacement layer refinement', rLyr.id);\n }\n });\n };\n\n LTCp.enqueueElementRefinement = function (ele) {\n this.eleTxrDeqs.merge(ele);\n this.scheduleElementRefinement();\n };\n LTCp.queueLayer = function (layer, ele) {\n var self = this;\n var q = self.layersQueue;\n var elesQ = layer.elesQueue;\n var hasId = elesQ.hasId = elesQ.hasId || {};\n\n // if a layer is going to be replaced, queuing is a waste of time\n if (layer.replacement) {\n return;\n }\n if (ele) {\n if (hasId[ele.id()]) {\n return;\n }\n elesQ.push(ele);\n hasId[ele.id()] = true;\n }\n if (layer.reqs) {\n layer.reqs++;\n q.updateItem(layer);\n } else {\n layer.reqs = 1;\n q.push(layer);\n }\n };\n LTCp.dequeue = function (pxRatio) {\n var self = this;\n var q = self.layersQueue;\n var deqd = [];\n var eleDeqs = 0;\n while (eleDeqs < maxDeqSize) {\n if (q.size() === 0) {\n break;\n }\n var layer = q.peek();\n\n // if a layer has been or will be replaced, then don't waste time with it\n if (layer.replacement) {\n // log('layer %s in queue skipped b/c it already has a replacement', layer.id);\n q.pop();\n continue;\n }\n\n // if this is a replacement layer that has been superceded, then forget it\n if (layer.replaces && layer !== layer.replaces.replacement) {\n // log('layer is no longer the most uptodate replacement; dequeued', layer.id)\n q.pop();\n continue;\n }\n if (layer.invalid) {\n // log('replacement layer %s is invalid; dequeued', layer.id);\n q.pop();\n continue;\n }\n var ele = layer.elesQueue.shift();\n if (ele) {\n // log('dequeue layer %s', layer.id);\n\n self.drawEleInLayer(layer, ele, layer.level, pxRatio);\n eleDeqs++;\n }\n if (deqd.length === 0) {\n // we need only one entry in deqd to queue redrawing etc\n deqd.push(true);\n }\n\n // if the layer has all its eles done, then remove from the queue\n if (layer.elesQueue.length === 0) {\n q.pop();\n layer.reqs = 0;\n\n // log('dequeue of layer %s complete', layer.id);\n\n // when a replacement layer is dequeued, it replaces the old layer in the level\n if (layer.replaces) {\n self.applyLayerReplacement(layer);\n }\n self.requestRedraw();\n }\n }\n return deqd;\n };\n LTCp.applyLayerReplacement = function (layer) {\n var self = this;\n var layersInLevel = self.layersByLevel[layer.level];\n var replaced = layer.replaces;\n var index = layersInLevel.indexOf(replaced);\n\n // if the replaced layer is not in the active list for the level, then replacing\n // refs would be a mistake (i.e. overwriting the true active layer)\n if (index < 0 || replaced.invalid) {\n // log('replacement layer would have no effect', layer.id);\n return;\n }\n layersInLevel[index] = layer; // replace level ref\n\n // replace refs in eles\n for (var i = 0; i < layer.eles.length; i++) {\n var _p = layer.eles[i]._private;\n var cache = _p.imgLayerCaches = _p.imgLayerCaches || {};\n if (cache) {\n cache[layer.level] = layer;\n }\n }\n\n // log('apply replacement layer %s over %s', layer.id, replaced.id);\n\n self.requestRedraw();\n };\n LTCp.requestRedraw = debounce_1(function () {\n var r = this.renderer;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, 100);\n LTCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold,\n deqCost: deqCost,\n deqAvgCost: deqAvgCost,\n deqNoDrawCost: deqNoDrawCost,\n deqFastCost: deqFastCost,\n deq: function deq(self, pxRatio) {\n return self.dequeue(pxRatio);\n },\n onDeqd: noop$1,\n shouldRedraw: trueify,\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.lyrTxrDeq;\n }\n });\n\n var CRp$a = {};\n var impl;\n function polygon(context, points) {\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n context.lineTo(pt.x, pt.y);\n }\n }\n function triangleBackcurve(context, points, controlPoint) {\n var firstPt;\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n if (i === 0) {\n firstPt = pt;\n }\n context.lineTo(pt.x, pt.y);\n }\n context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);\n }\n function triangleTee(context, trianglePoints, teePoints) {\n if (context.beginPath) {\n context.beginPath();\n }\n var triPts = trianglePoints;\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n var teePts = teePoints;\n var firstTeePt = teePoints[0];\n context.moveTo(firstTeePt.x, firstTeePt.y);\n for (var i = 1; i < teePts.length; i++) {\n var pt = teePts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n function circleTriangle(context, trianglePoints, rx, ry, r) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n var triPts = trianglePoints;\n var firstTrPt = triPts[0];\n context.moveTo(firstTrPt.x, firstTrPt.y);\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n function circle(context, rx, ry, r) {\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n }\n CRp$a.arrowShapeImpl = function (name) {\n return (impl || (impl = {\n 'polygon': polygon,\n 'triangle-backcurve': triangleBackcurve,\n 'triangle-tee': triangleTee,\n 'circle-triangle': circleTriangle,\n 'triangle-cross': triangleTee,\n 'circle': circle\n }))[name];\n };\n\n var CRp$9 = {};\n CRp$9.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {\n var r = this;\n if (ele.isNode()) {\n r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n } else {\n r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n }\n };\n CRp$9.drawElementOverlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeOverlay(context, ele);\n } else {\n r.drawEdgeOverlay(context, ele);\n }\n };\n CRp$9.drawElementUnderlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeUnderlay(context, ele);\n } else {\n r.drawEdgeUnderlay(context, ele);\n }\n };\n CRp$9.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) {\n var r = this;\n var bb = eleTxrCache.getBoundingBox(ele);\n if (bb.w === 0 || bb.h === 0) {\n return;\n } // ignore zero size case\n\n var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);\n if (eleCache != null) {\n var opacity = getOpacity(r, ele);\n if (opacity === 0) {\n return;\n }\n var theta = getRotation(r, ele);\n var x1 = bb.x1,\n y1 = bb.y1,\n w = bb.w,\n h = bb.h;\n var x, y, sx, sy, smooth;\n if (theta !== 0) {\n var rotPt = eleTxrCache.getRotationPoint(ele);\n sx = rotPt.x;\n sy = rotPt.y;\n context.translate(sx, sy);\n context.rotate(theta);\n smooth = r.getImgSmoothing(context);\n if (!smooth) {\n r.setImgSmoothing(context, true);\n }\n var off = eleTxrCache.getRotationOffset(ele);\n x = off.x;\n y = off.y;\n } else {\n x = x1;\n y = y1;\n }\n var oldGlobalAlpha;\n if (opacity !== 1) {\n oldGlobalAlpha = context.globalAlpha;\n context.globalAlpha = oldGlobalAlpha * opacity;\n }\n context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h);\n if (opacity !== 1) {\n context.globalAlpha = oldGlobalAlpha;\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-sx, -sy);\n if (!smooth) {\n r.setImgSmoothing(context, false);\n }\n }\n } else {\n eleTxrCache.drawElement(context, ele); // direct draw fallback\n }\n };\n\n var getZeroRotation = function getZeroRotation() {\n return 0;\n };\n var getLabelRotation = function getLabelRotation(r, ele) {\n return r.getTextAngle(ele, null);\n };\n var getSourceLabelRotation = function getSourceLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'source');\n };\n var getTargetLabelRotation = function getTargetLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'target');\n };\n var getOpacity = function getOpacity(r, ele) {\n return ele.effectiveOpacity();\n };\n var getTextOpacity = function getTextOpacity(e, ele) {\n return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity();\n };\n CRp$9.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) {\n var r = this;\n var _r$data = r.data,\n eleTxrCache = _r$data.eleTxrCache,\n lblTxrCache = _r$data.lblTxrCache,\n slbTxrCache = _r$data.slbTxrCache,\n tlbTxrCache = _r$data.tlbTxrCache;\n var bb = ele.boundingBox();\n var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n if (!extent || boundingBoxesIntersect(bb, extent)) {\n var isEdge = ele.isEdge();\n var badLine = ele.element()._private.rscratch.badLine;\n r.drawElementUnderlay(context, ele);\n r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);\n if (!isEdge || !badLine) {\n r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);\n }\n if (isEdge && !badLine) {\n r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);\n r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);\n }\n r.drawElementOverlay(context, ele);\n }\n };\n CRp$9.drawElements = function (context, eles) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawElement(context, ele);\n }\n };\n CRp$9.drawCachedElements = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n };\n CRp$9.drawCachedNodes = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n };\n CRp$9.drawLayeredElements = function (context, eles, pxRatio, extent) {\n var r = this;\n var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);\n if (layers) {\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var bb = layer.bb;\n if (bb.w === 0 || bb.h === 0) {\n continue;\n }\n context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);\n }\n } else {\n // fall back on plain caching if no layers\n r.drawCachedElements(context, eles, pxRatio, extent);\n }\n };\n\n /* global Path2D */\n var CRp$8 = {};\n CRp$8.drawEdge = function (context, edge, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var rs = edge._private.rscratch;\n if (shouldDrawOpacity && !edge.visible()) {\n return;\n }\n\n // if bezier ctrl pts can not be calculated, then die\n if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {\n // isNaN in case edge is impossible and browser bugs (e.g. safari)\n return;\n }\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1;\n var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1;\n var curveStyle = edge.pstyle('curve-style').value;\n var lineStyle = edge.pstyle('line-style').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var lineCap = edge.pstyle('line-cap').value;\n var effectiveLineOpacity = opacity * lineOpacity;\n // separate arrow opacity would require arrow-opacity property\n var effectiveArrowOpacity = opacity * lineOpacity;\n var drawLine = function drawLine() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n if (curveStyle === 'straight-triangle') {\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n context.lineWidth = edgeWidth;\n context.lineCap = lineCap;\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n\n var drawOverlay = function drawOverlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeOverlay(context, edge);\n };\n var drawUnderlay = function drawUnderlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeUnderlay(context, edge);\n };\n var drawArrows = function drawArrows() {\n var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity;\n r.drawArrowheads(context, edge, arrowOpacity);\n };\n var drawText = function drawText() {\n r.drawElementText(context, edge, null, drawLabel);\n };\n context.lineJoin = 'round';\n var ghost = edge.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = edge.pstyle('ghost-offset-x').pfValue;\n var gy = edge.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = edge.pstyle('ghost-opacity').value;\n var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;\n context.translate(gx, gy);\n drawLine(effectiveGhostOpacity);\n drawArrows(effectiveGhostOpacity);\n context.translate(-gx, -gy);\n }\n drawUnderlay();\n drawLine();\n drawArrows();\n drawOverlay();\n drawText();\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, edge) {\n if (!edge.visible()) {\n return;\n }\n var opacity = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n if (opacity === 0) {\n return;\n }\n var r = this;\n var usePaths = r.usePaths();\n var rs = edge._private.rscratch;\n var padding = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var width = 2 * padding;\n var color = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n context.lineWidth = width;\n if (rs.edgeType === 'self' && !usePaths) {\n context.lineCap = 'butt';\n } else {\n context.lineCap = 'round';\n }\n r.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n r.drawEdgePath(edge, context, rs.allpts, 'solid');\n };\n };\n CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay');\n CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay');\n CRp$8.drawEdgePath = function (edge, context, pts, type) {\n var rs = edge._private.rscratch;\n var canvasCxt = context;\n var path;\n var pathCacheHit = false;\n var usePaths = this.usePaths();\n var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue;\n var lineDashOffset = edge.pstyle('line-dash-offset').pfValue;\n if (usePaths) {\n var pathCacheKey = pts.join('$');\n var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;\n if (keyMatches) {\n path = context = rs.pathCache;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n rs.pathCacheKey = pathCacheKey;\n rs.pathCache = path;\n }\n }\n if (canvasCxt.setLineDash) {\n // for very outofdate browsers\n switch (type) {\n case 'dotted':\n canvasCxt.setLineDash([1, 1]);\n break;\n case 'dashed':\n canvasCxt.setLineDash(lineDashPattern);\n canvasCxt.lineDashOffset = lineDashOffset;\n break;\n case 'solid':\n canvasCxt.setLineDash([]);\n break;\n }\n }\n if (!pathCacheHit && !rs.badLine) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(pts[0], pts[1]);\n switch (rs.edgeType) {\n case 'bezier':\n case 'self':\n case 'compound':\n case 'multibezier':\n for (var i = 2; i + 3 < pts.length; i += 4) {\n context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]);\n }\n break;\n case 'straight':\n case 'segments':\n case 'haystack':\n for (var _i = 2; _i + 1 < pts.length; _i += 2) {\n context.lineTo(pts[_i], pts[_i + 1]);\n }\n break;\n }\n }\n context = canvasCxt;\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n\n // reset any line dashes\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n };\n CRp$8.drawEdgeTrianglePath = function (edge, context, pts) {\n // use line stroke style for triangle fill style\n context.fillStyle = context.strokeStyle;\n var edgeWidth = edge.pstyle('width').pfValue;\n for (var i = 0; i + 1 < pts.length; i += 2) {\n var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]];\n var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);\n var normal = [vector[1] / length, -vector[0] / length];\n var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];\n context.beginPath();\n context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]);\n context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]);\n context.lineTo(pts[i + 2], pts[i + 3]);\n context.closePath();\n context.fill();\n }\n };\n CRp$8.drawArrowheads = function (context, edge, opacity) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);\n }\n this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);\n this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);\n }\n };\n CRp$8.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) {\n if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) {\n return;\n }\n var self = this;\n var arrowShape = edge.pstyle(prefix + '-arrow-shape').value;\n if (arrowShape === 'none') {\n return;\n }\n var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled';\n var arrowFill = edge.pstyle(prefix + '-arrow-fill').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var edgeOpacity = edge.pstyle('opacity').value;\n if (opacity === undefined) {\n opacity = edgeOpacity;\n }\n var gco = context.globalCompositeOperation;\n if (opacity !== 1 || arrowFill === 'hollow') {\n // then extra clear is needed\n context.globalCompositeOperation = 'destination-out';\n self.colorFillStyle(context, 255, 255, 255, 1);\n self.colorStrokeStyle(context, 255, 255, 255, 1);\n self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle);\n context.globalCompositeOperation = gco;\n } // otherwise, the opaque arrow clears it for free :)\n\n var color = edge.pstyle(prefix + '-arrow-color').value;\n self.colorFillStyle(context, color[0], color[1], color[2], opacity);\n self.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x, y, angle);\n };\n CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, x, y, angle) {\n var r = this;\n var usePaths = this.usePaths() && shape !== 'triangle-cross';\n var pathCacheHit = false;\n var path;\n var canvasContext = context;\n var translation = {\n x: x,\n y: y\n };\n var scale = edge.pstyle('arrow-scale').value;\n var size = this.getArrowWidth(edgeWidth, scale);\n var shapeImpl = r.arrowShapes[shape];\n if (usePaths) {\n var cache = r.arrowPathCache = r.arrowPathCache || [];\n var key = hashString(shape);\n var cachedPath = cache[key];\n if (cachedPath != null) {\n path = context = cachedPath;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n cache[key] = path;\n }\n }\n if (!pathCacheHit) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (usePaths) {\n // store in the path cache with values easily manipulated later\n shapeImpl.draw(context, 1, 0, {\n x: 0,\n y: 0\n }, 1);\n } else {\n shapeImpl.draw(context, size, angle, translation, edgeWidth);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n context = canvasContext;\n if (usePaths) {\n // set transform to arrow position/orientation\n context.translate(x, y);\n context.rotate(angle);\n context.scale(size, size);\n }\n if (fill === 'filled' || fill === 'both') {\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n if (fill === 'hollow' || fill === 'both') {\n context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size : 1);\n context.lineJoin = 'miter';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n }\n if (usePaths) {\n // reset transform by applying inverse\n context.scale(1 / size, 1 / size);\n context.rotate(-angle);\n context.translate(-x, -y);\n }\n };\n\n var CRp$7 = {};\n CRp$7.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) {\n // detect problematic cases for old browsers with bad images (cheaper than try-catch)\n if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) {\n return;\n }\n try {\n context.drawImage(img, ix, iy, iw, ih, x, y, w, h);\n } catch (e) {\n warn(e);\n }\n };\n CRp$7.drawInscribedImage = function (context, img, node, index, nodeOpacity) {\n var r = this;\n var pos = node.position();\n var nodeX = pos.x;\n var nodeY = pos.y;\n var styleObj = node.cy().style();\n var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);\n var fit = getIndexedStyle(node, 'background-fit', 'value', index);\n var repeat = getIndexedStyle(node, 'background-repeat', 'value', index);\n var nodeW = node.width();\n var nodeH = node.height();\n var paddingX2 = node.padding() * 2;\n var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var rs = node._private.rscratch;\n var clip = getIndexedStyle(node, 'background-clip', 'value', index);\n var shouldClip = clip === 'node';\n var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity;\n var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index);\n var imgW = img.width || img.cachedW;\n var imgH = img.height || img.cachedH;\n\n // workaround for broken browsers like ie\n if (null == imgW || null == imgH) {\n document.body.appendChild(img); // eslint-disable-line no-undef\n\n imgW = img.cachedW = img.width || img.offsetWidth;\n imgH = img.cachedH = img.height || img.offsetHeight;\n document.body.removeChild(img); // eslint-disable-line no-undef\n }\n\n var w = imgW;\n var h = imgH;\n if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-width', 'units', index) === '%') {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW;\n } else {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index);\n }\n }\n if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-height', 'units', index) === '%') {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH;\n } else {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index);\n }\n }\n if (w === 0 || h === 0) {\n return; // no point in drawing empty image (and chrome is broken in this case)\n }\n\n if (fit === 'contain') {\n var scale = Math.min(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n } else if (fit === 'cover') {\n var scale = Math.max(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n }\n var x = nodeX - nodeTW / 2; // left\n var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index);\n var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index);\n if (posXUnits === '%') {\n x += (nodeTW - w) * posXPfVal;\n } else {\n x += posXPfVal;\n }\n var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index);\n var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index);\n if (offXUnits === '%') {\n x += (nodeTW - w) * offXPfVal;\n } else {\n x += offXPfVal;\n }\n var y = nodeY - nodeTH / 2; // top\n var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index);\n var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index);\n if (posYUnits === '%') {\n y += (nodeTH - h) * posYPfVal;\n } else {\n y += posYPfVal;\n }\n var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index);\n var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index);\n if (offYUnits === '%') {\n y += (nodeTH - h) * offYPfVal;\n } else {\n y += offYPfVal;\n }\n if (rs.pathCache) {\n x -= nodeX;\n y -= nodeY;\n nodeX = 0;\n nodeY = 0;\n }\n var gAlpha = context.globalAlpha;\n context.globalAlpha = imgOpacity;\n var smoothingEnabled = r.getImgSmoothing(context);\n var isSmoothingSwitched = false;\n if (smooth === 'no' && smoothingEnabled) {\n r.setImgSmoothing(context, false);\n isSmoothingSwitched = true;\n } else if (smooth === 'yes' && !smoothingEnabled) {\n r.setImgSmoothing(context, true);\n isSmoothingSwitched = true;\n }\n if (repeat === 'no-repeat') {\n if (shouldClip) {\n context.save();\n if (rs.pathCache) {\n context.clip(rs.pathCache);\n } else {\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);\n context.clip();\n }\n }\n r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h);\n if (shouldClip) {\n context.restore();\n }\n } else {\n var pattern = context.createPattern(img, repeat);\n context.fillStyle = pattern;\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);\n context.translate(x, y);\n context.fill();\n context.translate(-x, -y);\n }\n context.globalAlpha = gAlpha;\n if (isSmoothingSwitched) {\n r.setImgSmoothing(context, smoothingEnabled);\n }\n };\n\n var CRp$6 = {};\n CRp$6.eleTextBiggerThanMin = function (ele, scale) {\n if (!scale) {\n var zoom = ele.cy().zoom();\n var pxRatio = this.getPixelRatio();\n var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level\n\n scale = Math.pow(2, lvl);\n }\n var computedSize = ele.pstyle('font-size').pfValue * scale;\n var minSize = ele.pstyle('min-zoomed-font-size').pfValue;\n if (computedSize < minSize) {\n return false;\n }\n return true;\n };\n CRp$6.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) {\n var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n if (force == null) {\n if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {\n return;\n }\n } else if (force === false) {\n return;\n }\n if (ele.isNode()) {\n var label = ele.pstyle('label');\n if (!label || !label.value) {\n return;\n }\n var justification = r.getLabelJustification(ele);\n context.textAlign = justification;\n context.textBaseline = 'bottom';\n } else {\n var badLine = ele.element()._private.rscratch.badLine;\n var _label = ele.pstyle('label');\n var srcLabel = ele.pstyle('source-label');\n var tgtLabel = ele.pstyle('target-label');\n if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {\n return;\n }\n context.textAlign = 'center';\n context.textBaseline = 'bottom';\n }\n var applyRotation = !shiftToOriginWithBb;\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n if (prefix == null) {\n r.drawText(context, ele, null, applyRotation, useEleOpacity);\n if (ele.isEdge()) {\n r.drawText(context, ele, 'source', applyRotation, useEleOpacity);\n r.drawText(context, ele, 'target', applyRotation, useEleOpacity);\n }\n } else {\n r.drawText(context, ele, prefix, applyRotation, useEleOpacity);\n }\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n CRp$6.getFontCache = function (context) {\n var cache;\n this.fontCaches = this.fontCaches || [];\n for (var i = 0; i < this.fontCaches.length; i++) {\n cache = this.fontCaches[i];\n if (cache.context === context) {\n return cache;\n }\n }\n cache = {\n context: context\n };\n this.fontCaches.push(cache);\n return cache;\n };\n\n // set up canvas context with font\n // returns transformed text string\n CRp$6.setupTextStyle = function (context, ele) {\n var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // Font style\n var labelStyle = ele.pstyle('font-style').strValue;\n var labelSize = ele.pstyle('font-size').pfValue + 'px';\n var labelFamily = ele.pstyle('font-family').strValue;\n var labelWeight = ele.pstyle('font-weight').strValue;\n var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1;\n var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity;\n var color = ele.pstyle('color').value;\n var outlineColor = ele.pstyle('text-outline-color').value;\n context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily;\n context.lineJoin = 'round'; // so text outlines aren't jagged\n\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);\n };\n\n // TODO ensure re-used\n function roundRect(ctx, x, y, width, height) {\n var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n ctx.fill();\n }\n CRp$6.getTextAngle = function (ele, prefix) {\n var theta;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var pdash = prefix ? prefix + '-' : '';\n var rotation = ele.pstyle(pdash + 'text-rotation');\n var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix);\n if (rotation.strValue === 'autorotate') {\n theta = ele.isEdge() ? textAngle : 0;\n } else if (rotation.strValue === 'none') {\n theta = 0;\n } else {\n theta = rotation.pfValue;\n }\n return theta;\n };\n CRp$6.drawText = function (context, ele, prefix) {\n var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;\n if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) {\n return;\n }\n\n // use 'main' as an alias for the main label (i.e. null prefix)\n if (prefix === 'main') {\n prefix = null;\n }\n var textX = getPrefixedProperty(rscratch, 'labelX', prefix);\n var textY = getPrefixedProperty(rscratch, 'labelY', prefix);\n var orgTextX, orgTextY; // used for rotation\n var text = this.getLabelText(ele, prefix);\n if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) {\n this.setupTextStyle(context, ele, useEleOpacity);\n var pdash = prefix ? prefix + '-' : '';\n var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix);\n var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix);\n var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var halign = ele.pstyle('text-halign').value;\n var valign = ele.pstyle('text-valign').value;\n if (isEdge) {\n halign = 'center';\n valign = 'center';\n }\n textX += marginX;\n textY += marginY;\n var theta;\n if (!applyRotation) {\n theta = 0;\n } else {\n theta = this.getTextAngle(ele, prefix);\n }\n if (theta !== 0) {\n orgTextX = textX;\n orgTextY = textY;\n context.translate(orgTextX, orgTextY);\n context.rotate(theta);\n textX = 0;\n textY = 0;\n }\n switch (valign) {\n case 'top':\n break;\n case 'center':\n textY += textH / 2;\n break;\n case 'bottom':\n textY += textH;\n break;\n }\n var backgroundOpacity = ele.pstyle('text-background-opacity').value;\n var borderOpacity = ele.pstyle('text-border-opacity').value;\n var textBorderWidth = ele.pstyle('text-border-width').pfValue;\n var backgroundPadding = ele.pstyle('text-background-padding').pfValue;\n if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {\n var bgX = textX - backgroundPadding;\n switch (halign) {\n case 'left':\n bgX -= textW;\n break;\n case 'center':\n bgX -= textW / 2;\n break;\n }\n var bgY = textY - textH - backgroundPadding;\n var bgW = textW + 2 * backgroundPadding;\n var bgH = textH + 2 * backgroundPadding;\n if (backgroundOpacity > 0) {\n var textFill = context.fillStyle;\n var textBackgroundColor = ele.pstyle('text-background-color').value;\n context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')';\n var styleShape = ele.pstyle('text-background-shape').strValue;\n if (styleShape.indexOf('round') === 0) {\n roundRect(context, bgX, bgY, bgW, bgH, 2);\n } else {\n context.fillRect(bgX, bgY, bgW, bgH);\n }\n context.fillStyle = textFill;\n }\n if (textBorderWidth > 0 && borderOpacity > 0) {\n var textStroke = context.strokeStyle;\n var textLineWidth = context.lineWidth;\n var textBorderColor = ele.pstyle('text-border-color').value;\n var textBorderStyle = ele.pstyle('text-border-style').value;\n context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')';\n context.lineWidth = textBorderWidth;\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (textBorderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'double':\n context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders\n context.setLineDash([]);\n break;\n case 'solid':\n context.setLineDash([]);\n break;\n }\n }\n context.strokeRect(bgX, bgY, bgW, bgH);\n if (textBorderStyle === 'double') {\n var whiteWidth = textBorderWidth / 2;\n context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);\n }\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n context.lineWidth = textLineWidth;\n context.strokeStyle = textStroke;\n }\n }\n var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle\n\n if (lineWidth > 0) {\n context.lineWidth = lineWidth;\n }\n if (ele.pstyle('text-wrap').value === 'wrap') {\n var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix);\n var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix);\n var halfTextW = textW / 2;\n var justification = this.getLabelJustification(ele);\n if (justification === 'auto') ; else if (halign === 'left') {\n // auto justification : right\n if (justification === 'left') {\n textX += -textW;\n } else if (justification === 'center') {\n textX += -halfTextW;\n } // else same as auto\n } else if (halign === 'center') {\n // auto justfication : center\n if (justification === 'left') {\n textX += -halfTextW;\n } else if (justification === 'right') {\n textX += halfTextW;\n } // else same as auto\n } else if (halign === 'right') {\n // auto justification : left\n if (justification === 'center') {\n textX += halfTextW;\n } else if (justification === 'right') {\n textX += textW;\n } // else same as auto\n }\n\n switch (valign) {\n case 'top':\n textY -= (lines.length - 1) * lineHeight;\n break;\n case 'center':\n case 'bottom':\n textY -= (lines.length - 1) * lineHeight;\n break;\n }\n for (var l = 0; l < lines.length; l++) {\n if (lineWidth > 0) {\n context.strokeText(lines[l], textX, textY);\n }\n context.fillText(lines[l], textX, textY);\n textY += lineHeight;\n }\n } else {\n if (lineWidth > 0) {\n context.strokeText(text, textX, textY);\n }\n context.fillText(text, textX, textY);\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-orgTextX, -orgTextY);\n }\n }\n };\n\n /* global Path2D */\n var CRp$5 = {};\n CRp$5.drawNode = function (context, node, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var nodeWidth, nodeHeight;\n var _p = node._private;\n var rs = _p.rscratch;\n var pos = node.position();\n if (!number$1(pos.x) || !number$1(pos.y)) {\n return; // can't draw node with undefined position\n }\n\n if (shouldDrawOpacity && !node.visible()) {\n return;\n }\n var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1;\n var usePaths = r.usePaths();\n var path;\n var pathCacheHit = false;\n var padding = node.padding();\n nodeWidth = node.width() + 2 * padding;\n nodeHeight = node.height() + 2 * padding;\n\n //\n // setup shift\n\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n\n //\n // load bg image\n\n var bgImgProp = node.pstyle('background-image');\n var urls = bgImgProp.value;\n var urlDefined = new Array(urls.length);\n var image = new Array(urls.length);\n var numImages = 0;\n for (var i = 0; i < urls.length; i++) {\n var url = urls[i];\n var defd = urlDefined[i] = url != null && url !== 'none';\n if (defd) {\n var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i);\n numImages++;\n\n // get image, and if not loaded then ask to redraw when later loaded\n image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () {\n _p.backgroundTimestamp = Date.now();\n node.emitAndNotify('background');\n });\n }\n }\n\n //\n // setup styles\n\n var darkness = node.pstyle('background-blacken').value;\n var borderWidth = node.pstyle('border-width').pfValue;\n var bgOpacity = node.pstyle('background-opacity').value * eleOpacity;\n var borderColor = node.pstyle('border-color').value;\n var borderStyle = node.pstyle('border-style').value;\n var borderOpacity = node.pstyle('border-opacity').value * eleOpacity;\n context.lineJoin = 'miter'; // so borders are square with the node shape\n\n var setupShapeColor = function setupShapeColor() {\n var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity;\n r.eleFillStyle(context, node, bgOpy);\n };\n var setupBorderColor = function setupBorderColor() {\n var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity;\n r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);\n };\n\n //\n // setup shape\n\n var styleShape = node.pstyle('shape').strValue;\n var shapePts = node.pstyle('shape-polygon-points').pfValue;\n if (usePaths) {\n context.translate(pos.x, pos.y);\n var pathCache = r.nodePathCache = r.nodePathCache || [];\n var key = hashStrings(styleShape === 'polygon' ? styleShape + ',' + shapePts.join(',') : styleShape, '' + nodeHeight, '' + nodeWidth);\n var cachedPath = pathCache[key];\n if (cachedPath != null) {\n path = cachedPath;\n pathCacheHit = true;\n rs.pathCache = path;\n } else {\n path = new Path2D();\n pathCache[key] = rs.pathCache = path;\n }\n }\n var drawShape = function drawShape() {\n if (!pathCacheHit) {\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight);\n }\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n };\n var drawImages = function drawImages() {\n var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var prevBging = _p.backgrounding;\n var totalCompleted = 0;\n for (var _i = 0; _i < image.length; _i++) {\n var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i);\n if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') {\n totalCompleted++;\n continue;\n }\n if (urlDefined[_i] && image[_i].complete && !image[_i].error) {\n totalCompleted++;\n r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity);\n }\n }\n _p.backgrounding = !(totalCompleted === numImages);\n if (prevBging !== _p.backgrounding) {\n // update style b/c :backgrounding state changed\n node.updateStyle(false);\n }\n };\n var drawPie = function drawPie() {\n var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity;\n if (r.hasPie(node)) {\n r.drawPie(context, node, pieOpacity);\n\n // redraw/restore path if steps after pie need it\n if (redrawShape) {\n if (!usePaths) {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight);\n }\n }\n }\n };\n var darken = function darken() {\n var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;\n var c = darkness > 0 ? 0 : 255;\n if (darkness !== 0) {\n r.colorFillStyle(context, c, c, c, opacity);\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n };\n var drawBorder = function drawBorder() {\n if (borderWidth > 0) {\n context.lineWidth = borderWidth;\n context.lineCap = 'butt';\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (borderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n if (borderStyle === 'double') {\n context.lineWidth = borderWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOverlay = function drawOverlay() {\n if (shouldDrawOverlay) {\n r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawUnderlay = function drawUnderlay() {\n if (shouldDrawOverlay) {\n r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawText = function drawText() {\n r.drawElementText(context, node, null, drawLabel);\n };\n var ghost = node.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = node.pstyle('ghost-offset-x').pfValue;\n var gy = node.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = node.pstyle('ghost-opacity').value;\n var effGhostOpacity = ghostOpacity * eleOpacity;\n context.translate(gx, gy);\n setupShapeColor(ghostOpacity * bgOpacity);\n drawShape();\n drawImages(effGhostOpacity, true);\n setupBorderColor(ghostOpacity * borderOpacity);\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(effGhostOpacity, false);\n darken(effGhostOpacity);\n context.translate(-gx, -gy);\n }\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawUnderlay();\n if (usePaths) {\n context.translate(pos.x, pos.y);\n }\n setupShapeColor();\n drawShape();\n drawImages(eleOpacity, true);\n setupBorderColor();\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(eleOpacity, false);\n darken();\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawText();\n drawOverlay();\n\n //\n // clean up shift\n\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, node, pos, nodeWidth, nodeHeight) {\n var r = this;\n if (!node.visible()) {\n return;\n }\n var padding = node.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var opacity = node.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n var color = node.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n var shape = node.pstyle(\"\".concat(overlayOrUnderlay, \"-shape\")).value;\n if (opacity > 0) {\n pos = pos || node.position();\n if (nodeWidth == null || nodeHeight == null) {\n var _padding = node.padding();\n nodeWidth = node.width() + 2 * _padding;\n nodeHeight = node.height() + 2 * _padding;\n }\n r.colorFillStyle(context, color[0], color[1], color[2], opacity);\n r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2);\n context.fill();\n }\n };\n };\n CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay('overlay');\n CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay');\n\n // does the node have at least one pie piece?\n CRp$5.hasPie = function (node) {\n node = node[0]; // ensure ele ref\n\n return node._private.hasPie;\n };\n CRp$5.drawPie = function (context, node, nodeOpacity, pos) {\n node = node[0]; // ensure ele ref\n pos = pos || node.position();\n var cyStyle = node.cy().style();\n var pieSize = node.pstyle('pie-size');\n var x = pos.x;\n var y = pos.y;\n var nodeW = node.width();\n var nodeH = node.height();\n var radius = Math.min(nodeW, nodeH) / 2; // must fit in node\n var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1]\n var usePaths = this.usePaths();\n if (usePaths) {\n x = 0;\n y = 0;\n }\n if (pieSize.units === '%') {\n radius = radius * pieSize.pfValue;\n } else if (pieSize.pfValue !== undefined) {\n radius = pieSize.pfValue / 2;\n }\n for (var i = 1; i <= cyStyle.pieBackgroundN; i++) {\n // 1..N\n var size = node.pstyle('pie-' + i + '-background-size').value;\n var color = node.pstyle('pie-' + i + '-background-color').value;\n var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity;\n var percent = size / 100; // map integer range [0, 100] to [0, 1]\n\n // percent can't push beyond 1\n if (percent + lastPercent > 1) {\n percent = 1 - lastPercent;\n }\n var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise\n var angleDelta = 2 * Math.PI * percent;\n var angleEnd = angleStart + angleDelta;\n\n // ignore if\n // - zero size\n // - we're already beyond the full circle\n // - adding the current slice would go beyond the full circle\n if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {\n continue;\n }\n context.beginPath();\n context.moveTo(x, y);\n context.arc(x, y, radius, angleStart, angleEnd);\n context.closePath();\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n context.fill();\n lastPercent += percent;\n }\n };\n\n var CRp$4 = {};\n var motionBlurDelay = 100;\n\n // var isFirefox = typeof InstallTrigger !== 'undefined';\n\n CRp$4.getPixelRatio = function () {\n var context = this.data.contexts[0];\n if (this.forcedPixelRatio != null) {\n return this.forcedPixelRatio;\n }\n var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return (window.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef\n };\n\n CRp$4.paintCache = function (context) {\n var caches = this.paintCaches = this.paintCaches || [];\n var needToCreateCache = true;\n var cache;\n for (var i = 0; i < caches.length; i++) {\n cache = caches[i];\n if (cache.context === context) {\n needToCreateCache = false;\n break;\n }\n }\n if (needToCreateCache) {\n cache = {\n context: context\n };\n caches.push(cache);\n }\n return cache;\n };\n CRp$4.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) {\n var gradientStyle;\n var usePaths = this.usePaths();\n var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value,\n positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue;\n if (fill === 'radial-gradient') {\n if (ele.isEdge()) {\n var start = ele.sourceEndpoint(),\n end = ele.targetEndpoint(),\n mid = ele.midpoint();\n var d1 = dist(start, mid);\n var d2 = dist(end, mid);\n gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));\n } else {\n var pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n width = ele.paddedWidth(),\n height = ele.paddedHeight();\n gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height));\n }\n } else {\n if (ele.isEdge()) {\n var _start = ele.sourceEndpoint(),\n _end = ele.targetEndpoint();\n gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);\n } else {\n var _pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n _width = ele.paddedWidth(),\n _height = ele.paddedHeight(),\n halfWidth = _width / 2,\n halfHeight = _height / 2;\n var direction = ele.pstyle('background-gradient-direction').value;\n switch (direction) {\n case 'to-bottom':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);\n break;\n case 'to-top':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);\n break;\n case 'to-left':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);\n break;\n case 'to-right':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);\n break;\n case 'to-bottom-right':\n case 'to-right-bottom':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-right':\n case 'to-right-top':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);\n break;\n case 'to-bottom-left':\n case 'to-left-bottom':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-left':\n case 'to-left-top':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);\n break;\n }\n }\n }\n if (!gradientStyle) return null; // invalid gradient style\n\n var hasPositions = positions.length === colors.length;\n var length = colors.length;\n for (var i = 0; i < length; i++) {\n gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')');\n }\n return gradientStyle;\n };\n CRp$4.gradientFillStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.fillStyle = gradientStyle;\n };\n CRp$4.colorFillStyle = function (context, r, g, b, a) {\n context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.fillStyle !== fillStyle ){\n // context.fillStyle = cache.fillStyle = fillStyle;\n // }\n };\n\n CRp$4.eleFillStyle = function (context, ele, opacity) {\n var backgroundFill = ele.pstyle('background-fill').value;\n if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') {\n this.gradientFillStyle(context, ele, backgroundFill, opacity);\n } else {\n var backgroundColor = ele.pstyle('background-color').value;\n this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);\n }\n };\n CRp$4.gradientStrokeStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.strokeStyle = gradientStyle;\n };\n CRp$4.colorStrokeStyle = function (context, r, g, b, a) {\n context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.strokeStyle !== strokeStyle ){\n // context.strokeStyle = cache.strokeStyle = strokeStyle;\n // }\n };\n\n CRp$4.eleStrokeStyle = function (context, ele, opacity) {\n var lineFill = ele.pstyle('line-fill').value;\n if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') {\n this.gradientStrokeStyle(context, ele, lineFill, opacity);\n } else {\n var lineColor = ele.pstyle('line-color').value;\n this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);\n }\n };\n\n // Resize canvas\n CRp$4.matchCanvasSize = function (container) {\n var r = this;\n var data = r.data;\n var bb = r.findContainerClientCoords();\n var width = bb[2];\n var height = bb[3];\n var pixelRatio = r.getPixelRatio();\n var mbPxRatio = r.motionBlurPxRatio;\n if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {\n pixelRatio = mbPxRatio;\n }\n var canvasWidth = width * pixelRatio;\n var canvasHeight = height * pixelRatio;\n var canvas;\n if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {\n return; // save cycles if same\n }\n\n r.fontCaches = null; // resizing resets the style\n\n var canvasContainer = data.canvasContainer;\n canvasContainer.style.width = width + 'px';\n canvasContainer.style.height = height + 'px';\n for (var i = 0; i < r.CANVAS_LAYERS; i++) {\n canvas = data.canvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n for (var i = 0; i < r.BUFFER_COUNT; i++) {\n canvas = data.bufferCanvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n r.textureMult = 1;\n if (pixelRatio <= 1) {\n canvas = data.bufferCanvases[r.TEXTURE_BUFFER];\n r.textureMult = 2;\n canvas.width = canvasWidth * r.textureMult;\n canvas.height = canvasHeight * r.textureMult;\n }\n r.canvasWidth = canvasWidth;\n r.canvasHeight = canvasHeight;\n };\n CRp$4.renderTo = function (cxt, zoom, pan, pxRatio) {\n this.render({\n forcedContext: cxt,\n forcedZoom: zoom,\n forcedPan: pan,\n drawAllLayers: true,\n forcedPxRatio: pxRatio\n });\n };\n CRp$4.render = function (options) {\n options = options || staticEmptyObject();\n var forcedContext = options.forcedContext;\n var drawAllLayers = options.drawAllLayers;\n var drawOnlyNodeLayer = options.drawOnlyNodeLayer;\n var forcedZoom = options.forcedZoom;\n var forcedPan = options.forcedPan;\n var r = this;\n var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio;\n var cy = r.cy;\n var data = r.data;\n var needDraw = data.canvasNeedsRedraw;\n var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);\n var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur;\n var mbPxRatio = r.motionBlurPxRatio;\n var hasCompoundNodes = cy.hasCompoundNodes();\n var inNodeDragGesture = r.hoverData.draggingEles;\n var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;\n motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;\n var motionBlurFadeEffect = motionBlur;\n if (!forcedContext) {\n if (r.prevPxRatio !== pixelRatio) {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n r.prevPxRatio = pixelRatio;\n }\n if (!forcedContext && r.motionBlurTimeout) {\n clearTimeout(r.motionBlurTimeout);\n }\n if (motionBlur) {\n if (r.mbFrames == null) {\n r.mbFrames = 0;\n }\n r.mbFrames++;\n if (r.mbFrames < 3) {\n // need several frames before even high quality motionblur\n motionBlurFadeEffect = false;\n }\n\n // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing)\n if (r.mbFrames > r.minMbLowQualFrames) {\n //r.fullQualityMb = false;\n r.motionBlurPxRatio = r.mbPxRBlurry;\n }\n }\n if (r.clearingMotionBlur) {\n r.motionBlurPxRatio = 1;\n }\n\n // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame\n // because a rogue async texture frame would clear needDraw\n if (r.textureDrawLastFrame && !textureDraw) {\n needDraw[r.NODE] = true;\n needDraw[r.SELECT_BOX] = true;\n }\n var style = cy.style();\n var zoom = cy.zoom();\n var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom;\n var pan = cy.pan();\n var effectivePan = {\n x: pan.x,\n y: pan.y\n };\n var vp = {\n zoom: zoom,\n pan: {\n x: pan.x,\n y: pan.y\n }\n };\n var prevVp = r.prevViewport;\n var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;\n\n // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed)\n if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {\n r.motionBlurPxRatio = 1;\n }\n if (forcedPan) {\n effectivePan = forcedPan;\n }\n\n // apply pixel ratio\n\n effectiveZoom *= pixelRatio;\n effectivePan.x *= pixelRatio;\n effectivePan.y *= pixelRatio;\n var eles = r.getCachedZSortedEles();\n function mbclear(context, x, y, w, h) {\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency);\n context.fillRect(x, y, w, h);\n context.globalCompositeOperation = gco;\n }\n function setContextTransform(context, clear) {\n var ePan, eZoom, w, h;\n if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {\n ePan = {\n x: pan.x * mbPxRatio,\n y: pan.y * mbPxRatio\n };\n eZoom = zoom * mbPxRatio;\n w = r.canvasWidth * mbPxRatio;\n h = r.canvasHeight * mbPxRatio;\n } else {\n ePan = effectivePan;\n eZoom = effectiveZoom;\n w = r.canvasWidth;\n h = r.canvasHeight;\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (clear === 'motionBlur') {\n mbclear(context, 0, 0, w, h);\n } else if (!forcedContext && (clear === undefined || clear)) {\n context.clearRect(0, 0, w, h);\n }\n if (!drawAllLayers) {\n context.translate(ePan.x, ePan.y);\n context.scale(eZoom, eZoom);\n }\n if (forcedPan) {\n context.translate(forcedPan.x, forcedPan.y);\n }\n if (forcedZoom) {\n context.scale(forcedZoom, forcedZoom);\n }\n }\n if (!textureDraw) {\n r.textureDrawLastFrame = false;\n }\n if (textureDraw) {\n r.textureDrawLastFrame = true;\n if (!r.textureCache) {\n r.textureCache = {};\n r.textureCache.bb = cy.mutableElements().boundingBox();\n r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];\n var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);\n r.render({\n forcedContext: cxt,\n drawOnlyNodeLayer: true,\n forcedPxRatio: pixelRatio * r.textureMult\n });\n var vp = r.textureCache.viewport = {\n zoom: cy.zoom(),\n pan: cy.pan(),\n width: r.canvasWidth,\n height: r.canvasHeight\n };\n vp.mpan = {\n x: (0 - vp.pan.x) / vp.zoom,\n y: (0 - vp.pan.y) / vp.zoom\n };\n }\n needDraw[r.DRAG] = false;\n needDraw[r.NODE] = false;\n var context = data.contexts[r.NODE];\n var texture = r.textureCache.texture;\n var vp = r.textureCache.viewport;\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (motionBlur) {\n mbclear(context, 0, 0, vp.width, vp.height);\n } else {\n context.clearRect(0, 0, vp.width, vp.height);\n }\n var outsideBgColor = style.core('outside-texture-bg-color').value;\n var outsideBgOpacity = style.core('outside-texture-bg-opacity').value;\n r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);\n context.fillRect(0, 0, vp.width, vp.height);\n var zoom = cy.zoom();\n setContextTransform(context, false);\n context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n } else if (r.textureOnViewport && !forcedContext) {\n // clear the cache since we don't need it\n r.textureCache = null;\n }\n var extent = cy.extent();\n var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();\n var hideEdges = r.hideEdgesOnViewport && vpManip;\n var needMbClear = [];\n needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;\n if (needMbClear[r.NODE]) {\n r.clearedForMotionBlur[r.NODE] = true;\n }\n needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;\n if (needMbClear[r.DRAG]) {\n r.clearedForMotionBlur[r.DRAG] = true;\n }\n if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {\n var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]);\n var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined;\n setContextTransform(context, clear);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);\n } else {\n r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.nondrag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.NODE] = false;\n }\n }\n if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {\n var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]);\n setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.drag, pixelRatio, extent);\n } else {\n r.drawCachedElements(context, eles.drag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.drag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.DRAG] = false;\n }\n }\n if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {\n var context = forcedContext || data.contexts[r.SELECT_BOX];\n setContextTransform(context);\n if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {\n var zoom = r.cy.zoom();\n var borderWidth = style.core('selection-box-border-width').value / zoom;\n context.lineWidth = borderWidth;\n context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n if (borderWidth > 0) {\n context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n }\n }\n if (data.bgActivePosistion && !r.hoverData.selecting) {\n var zoom = r.cy.zoom();\n var pos = data.bgActivePosistion;\n context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')';\n context.beginPath();\n context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI);\n context.fill();\n }\n var timeToRender = r.lastRedrawTime;\n if (r.showFps && timeToRender) {\n timeToRender = Math.round(timeToRender);\n var fps = Math.round(1000 / timeToRender);\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.fillStyle = 'rgba(255, 0, 0, 0.75)';\n context.strokeStyle = 'rgba(255, 0, 0, 0.75)';\n context.lineWidth = 1;\n context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20);\n var maxFps = 60;\n context.strokeRect(0, 30, 250, 20);\n context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);\n }\n if (!drawAllLayers) {\n needDraw[r.SELECT_BOX] = false;\n }\n }\n\n // motionblur: blit rendered blurry frames\n if (motionBlur && mbPxRatio !== 1) {\n var cxtNode = data.contexts[r.NODE];\n var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];\n var cxtDrag = data.contexts[r.DRAG];\n var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];\n var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) {\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n if (needClear || !motionBlurFadeEffect) {\n cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight);\n } else {\n mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight);\n }\n var pxr = mbPxRatio;\n cxt.drawImage(txt,\n // img\n 0, 0,\n // sx, sy\n r.canvasWidth * pxr, r.canvasHeight * pxr,\n // sw, sh\n 0, 0,\n // x, y\n r.canvasWidth, r.canvasHeight // w, h\n );\n };\n\n if (needDraw[r.NODE] || needMbClear[r.NODE]) {\n drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);\n needDraw[r.NODE] = false;\n }\n if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {\n drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);\n needDraw[r.DRAG] = false;\n }\n }\n r.prevViewport = vp;\n if (r.clearingMotionBlur) {\n r.clearingMotionBlur = false;\n r.motionBlurCleared = true;\n r.motionBlur = true;\n }\n if (motionBlur) {\n r.motionBlurTimeout = setTimeout(function () {\n r.motionBlurTimeout = null;\n r.clearedForMotionBlur[r.NODE] = false;\n r.clearedForMotionBlur[r.DRAG] = false;\n r.motionBlur = false;\n r.clearingMotionBlur = !textureDraw;\n r.mbFrames = 0;\n needDraw[r.NODE] = true;\n needDraw[r.DRAG] = true;\n r.redraw();\n }, motionBlurDelay);\n }\n if (!forcedContext) {\n cy.emit('render');\n }\n };\n\n var CRp$3 = {};\n\n // @O Polygon drawing\n CRp$3.drawPolygonPath = function (context, x, y, width, height, points) {\n var halfW = width / 2;\n var halfH = height / 2;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x + halfW * points[0], y + halfH * points[1]);\n for (var i = 1; i < points.length / 2; i++) {\n context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]);\n }\n context.closePath();\n };\n CRp$3.drawRoundPolygonPath = function (context, x, y, width, height, points) {\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n for (var _i = 0; _i < points.length / 4; _i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (_i === 0) {\n sourceUv = points.length - 2;\n } else {\n sourceUv = _i * 4 - 2;\n }\n destUv = _i * 4 + 2;\n var px = x + halfW * points[_i * 4];\n var py = y + halfH * points[_i * 4 + 1];\n var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * points[sourceUv];\n var cp0y = py - offset * points[sourceUv + 1];\n var cp1x = px + offset * points[destUv];\n var cp1y = py + offset * points[destUv + 1];\n if (_i === 0) {\n context.moveTo(cp0x, cp0y);\n } else {\n context.lineTo(cp0x, cp0y);\n }\n context.arcTo(px, py, cp1x, cp1y, cornerRadius);\n }\n context.closePath();\n };\n\n // Round rectangle drawing\n CRp$3.drawRoundRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = getRoundRectangleRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n // Arc from middle top to right side\n context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius);\n // Arc from right side to bottom\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n // Arc from bottom to left side\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n // Arc from left side to topBorder\n context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius);\n // Join line\n context.lineTo(x, y - halfHeight);\n context.closePath();\n };\n CRp$3.drawBottomRoundRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = getRoundRectangleRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight);\n context.lineTo(x + halfWidth, y);\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n context.lineTo(x - halfWidth, y - halfHeight);\n context.lineTo(x, y - halfHeight);\n context.closePath();\n };\n CRp$3.drawCutRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerLength = getCutRectangleCornerLength();\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x - halfWidth + cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth - cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight + cornerLength);\n context.lineTo(x + halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x + halfWidth - cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth + cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x - halfWidth, y - halfHeight + cornerLength);\n context.closePath();\n };\n CRp$3.drawBarrelPath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var xBegin = x - halfWidth;\n var xEnd = x + halfWidth;\n var yBegin = y - halfHeight;\n var yEnd = y + halfHeight;\n var barrelCurveConstants = getBarrelCurveConstants(width, height);\n var wOffset = barrelCurveConstants.widthOffset;\n var hOffset = barrelCurveConstants.heightOffset;\n var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(xBegin, yBegin + hOffset);\n context.lineTo(xBegin, yEnd - hOffset);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);\n context.lineTo(xEnd - wOffset, yEnd);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);\n context.lineTo(xEnd, yBegin + hOffset);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);\n context.lineTo(xBegin + wOffset, yBegin);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);\n context.closePath();\n };\n var sin0 = Math.sin(0);\n var cos0 = Math.cos(0);\n var sin = {};\n var cos = {};\n var ellipseStepSize = Math.PI / 40;\n for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n sin[i] = Math.sin(i);\n cos[i] = Math.cos(i);\n }\n CRp$3.drawEllipsePath = function (context, centerX, centerY, width, height) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (context.ellipse) {\n context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n var xPos, yPos;\n var rw = width / 2;\n var rh = height / 2;\n for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0;\n yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0;\n if (i === 0) {\n context.moveTo(xPos, yPos);\n } else {\n context.lineTo(xPos, yPos);\n }\n }\n }\n context.closePath();\n };\n\n /* global atob, ArrayBuffer, Uint8Array, Blob */\n var CRp$2 = {};\n CRp$2.createBuffer = function (w, h) {\n var buffer = document.createElement('canvas'); // eslint-disable-line no-undef\n buffer.width = w;\n buffer.height = h;\n return [buffer, buffer.getContext('2d')];\n };\n CRp$2.bufferCanvasImage = function (options) {\n var cy = this.cy;\n var eles = cy.mutableElements();\n var bb = eles.boundingBox();\n var ctrRect = this.findContainerClientCoords();\n var width = options.full ? Math.ceil(bb.w) : ctrRect[2];\n var height = options.full ? Math.ceil(bb.h) : ctrRect[3];\n var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight);\n var pxRatio = this.getPixelRatio();\n var scale = 1;\n if (options.scale !== undefined) {\n width *= options.scale;\n height *= options.scale;\n scale = options.scale;\n } else if (specdMaxDims) {\n var maxScaleW = Infinity;\n var maxScaleH = Infinity;\n if (number$1(options.maxWidth)) {\n maxScaleW = scale * options.maxWidth / width;\n }\n if (number$1(options.maxHeight)) {\n maxScaleH = scale * options.maxHeight / height;\n }\n scale = Math.min(maxScaleW, maxScaleH);\n width *= scale;\n height *= scale;\n }\n if (!specdMaxDims) {\n width *= pxRatio;\n height *= pxRatio;\n scale *= pxRatio;\n }\n var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef\n\n buffCanvas.width = width;\n buffCanvas.height = height;\n buffCanvas.style.width = width + 'px';\n buffCanvas.style.height = height + 'px';\n var buffCxt = buffCanvas.getContext('2d');\n\n // Rasterize the layers, but only if container has nonzero size\n if (width > 0 && height > 0) {\n buffCxt.clearRect(0, 0, width, height);\n buffCxt.globalCompositeOperation = 'source-over';\n var zsortedEles = this.getCachedZSortedEles();\n if (options.full) {\n // draw the full bounds of the graph\n buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(bb.x1 * scale, bb.y1 * scale);\n } else {\n // draw the current view\n var pan = cy.pan();\n var translation = {\n x: pan.x * scale,\n y: pan.y * scale\n };\n scale *= cy.zoom();\n buffCxt.translate(translation.x, translation.y);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(-translation.x, -translation.y);\n }\n\n // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs\n if (options.bg) {\n buffCxt.globalCompositeOperation = 'destination-over';\n buffCxt.fillStyle = options.bg;\n buffCxt.rect(0, 0, width, height);\n buffCxt.fill();\n }\n }\n return buffCanvas;\n };\n function b64ToBlob(b64, mimeType) {\n var bytes = atob(b64);\n var buff = new ArrayBuffer(bytes.length);\n var buffUint8 = new Uint8Array(buff);\n for (var i = 0; i < bytes.length; i++) {\n buffUint8[i] = bytes.charCodeAt(i);\n }\n return new Blob([buff], {\n type: mimeType\n });\n }\n function b64UriToB64(b64uri) {\n var i = b64uri.indexOf(',');\n return b64uri.substr(i + 1);\n }\n function output(options, canvas, mimeType) {\n var getB64Uri = function getB64Uri() {\n return canvas.toDataURL(mimeType, options.quality);\n };\n switch (options.output) {\n case 'blob-promise':\n return new Promise$1(function (resolve, reject) {\n try {\n canvas.toBlob(function (blob) {\n if (blob != null) {\n resolve(blob);\n } else {\n reject(new Error('`canvas.toBlob()` sent a null value in its callback'));\n }\n }, mimeType, options.quality);\n } catch (err) {\n reject(err);\n }\n });\n case 'blob':\n return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);\n case 'base64':\n return b64UriToB64(getB64Uri());\n case 'base64uri':\n default:\n return getB64Uri();\n }\n }\n CRp$2.png = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/png');\n };\n CRp$2.jpg = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/jpeg');\n };\n\n var CRp$1 = {};\n CRp$1.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points) {\n switch (name) {\n case 'ellipse':\n return this.drawEllipsePath(context, centerX, centerY, width, height);\n case 'polygon':\n return this.drawPolygonPath(context, centerX, centerY, width, height, points);\n case 'round-polygon':\n return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points);\n case 'roundrectangle':\n case 'round-rectangle':\n return this.drawRoundRectanglePath(context, centerX, centerY, width, height);\n case 'cutrectangle':\n case 'cut-rectangle':\n return this.drawCutRectanglePath(context, centerX, centerY, width, height);\n case 'bottomroundrectangle':\n case 'bottom-round-rectangle':\n return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height);\n case 'barrel':\n return this.drawBarrelPath(context, centerX, centerY, width, height);\n }\n };\n\n var CR = CanvasRenderer;\n var CRp = CanvasRenderer.prototype;\n CRp.CANVAS_LAYERS = 3;\n //\n CRp.SELECT_BOX = 0;\n CRp.DRAG = 1;\n CRp.NODE = 2;\n CRp.BUFFER_COUNT = 3;\n //\n CRp.TEXTURE_BUFFER = 0;\n CRp.MOTIONBLUR_BUFFER_NODE = 1;\n CRp.MOTIONBLUR_BUFFER_DRAG = 2;\n function CanvasRenderer(options) {\n var r = this;\n r.data = {\n canvases: new Array(CRp.CANVAS_LAYERS),\n contexts: new Array(CRp.CANVAS_LAYERS),\n canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),\n bufferCanvases: new Array(CRp.BUFFER_COUNT),\n bufferContexts: new Array(CRp.CANVAS_LAYERS)\n };\n var tapHlOffAttr = '-webkit-tap-highlight-color';\n var tapHlOffStyle = 'rgba(0,0,0,0)';\n r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef\n var containerStyle = r.data.canvasContainer.style;\n r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;\n containerStyle.position = 'relative';\n containerStyle.zIndex = '0';\n containerStyle.overflow = 'hidden';\n var container = options.cy.container();\n container.appendChild(r.data.canvasContainer);\n container.style[tapHlOffAttr] = tapHlOffStyle;\n var styleMap = {\n '-webkit-user-select': 'none',\n '-moz-user-select': '-moz-none',\n 'user-select': 'none',\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\n 'outline-style': 'none'\n };\n if (ms()) {\n styleMap['-ms-touch-action'] = 'none';\n styleMap['touch-action'] = 'none';\n }\n for (var i = 0; i < CRp.CANVAS_LAYERS; i++) {\n var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.contexts[i] = canvas.getContext('2d');\n Object.keys(styleMap).forEach(function (k) {\n canvas.style[k] = styleMap[k];\n });\n canvas.style.position = 'absolute';\n canvas.setAttribute('data-id', 'layer' + i);\n canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i);\n r.data.canvasContainer.appendChild(canvas);\n r.data.canvasNeedsRedraw[i] = false;\n }\n r.data.topCanvas = r.data.canvases[0];\n r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node');\n r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox');\n r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag');\n for (var i = 0; i < CRp.BUFFER_COUNT; i++) {\n r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d');\n r.data.bufferCanvases[i].style.position = 'absolute';\n r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i);\n r.data.bufferCanvases[i].style.zIndex = String(-i - 1);\n r.data.bufferCanvases[i].style.visibility = 'hidden';\n //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]);\n }\n\n r.pathsEnabled = true;\n var emptyBb = makeBoundingBox();\n var getBoxCenter = function getBoxCenter(bb) {\n return {\n x: (bb.x1 + bb.x2) / 2,\n y: (bb.y1 + bb.y2) / 2\n };\n };\n var getCenterOffset = function getCenterOffset(bb) {\n return {\n x: -bb.w / 2,\n y: -bb.h / 2\n };\n };\n var backgroundTimestampHasChanged = function backgroundTimestampHasChanged(ele) {\n var _p = ele[0]._private;\n var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;\n return !same;\n };\n var getStyleKey = function getStyleKey(ele) {\n return ele[0]._private.nodeKey;\n };\n var getLabelKey = function getLabelKey(ele) {\n return ele[0]._private.labelStyleKey;\n };\n var getSourceLabelKey = function getSourceLabelKey(ele) {\n return ele[0]._private.sourceLabelStyleKey;\n };\n var getTargetLabelKey = function getTargetLabelKey(ele) {\n return ele[0]._private.targetLabelStyleKey;\n };\n var drawElement = function drawElement(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElement(context, ele, bb, false, false, useEleOpacity);\n };\n var drawLabel = function drawLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'main', useEleOpacity);\n };\n var drawSourceLabel = function drawSourceLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'source', useEleOpacity);\n };\n var drawTargetLabel = function drawTargetLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'target', useEleOpacity);\n };\n var getElementBox = function getElementBox(ele) {\n ele.boundingBox();\n return ele[0]._private.bodyBounds;\n };\n var getLabelBox = function getLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.main || emptyBb;\n };\n var getSourceLabelBox = function getSourceLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.source || emptyBb;\n };\n var getTargetLabelBox = function getTargetLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.target || emptyBb;\n };\n var isLabelVisibleAtScale = function isLabelVisibleAtScale(ele, scaledLabelShown) {\n return scaledLabelShown;\n };\n var getElementRotationPoint = function getElementRotationPoint(ele) {\n return getBoxCenter(getElementBox(ele));\n };\n var addTextMargin = function addTextMargin(prefix, pt, ele) {\n var pre = prefix ? prefix + '-' : '';\n return {\n x: pt.x + ele.pstyle(pre + 'text-margin-x').pfValue,\n y: pt.y + ele.pstyle(pre + 'text-margin-y').pfValue\n };\n };\n var getRsPt = function getRsPt(ele, x, y) {\n var rs = ele[0]._private.rscratch;\n return {\n x: rs[x],\n y: rs[y]\n };\n };\n var getLabelRotationPoint = function getLabelRotationPoint(ele) {\n return addTextMargin('', getRsPt(ele, 'labelX', 'labelY'), ele);\n };\n var getSourceLabelRotationPoint = function getSourceLabelRotationPoint(ele) {\n return addTextMargin('source', getRsPt(ele, 'sourceLabelX', 'sourceLabelY'), ele);\n };\n var getTargetLabelRotationPoint = function getTargetLabelRotationPoint(ele) {\n return addTextMargin('target', getRsPt(ele, 'targetLabelX', 'targetLabelY'), ele);\n };\n var getElementRotationOffset = function getElementRotationOffset(ele) {\n return getCenterOffset(getElementBox(ele));\n };\n var getSourceLabelRotationOffset = function getSourceLabelRotationOffset(ele) {\n return getCenterOffset(getSourceLabelBox(ele));\n };\n var getTargetLabelRotationOffset = function getTargetLabelRotationOffset(ele) {\n return getCenterOffset(getTargetLabelBox(ele));\n };\n var getLabelRotationOffset = function getLabelRotationOffset(ele) {\n var bb = getLabelBox(ele);\n var p = getCenterOffset(getLabelBox(ele));\n if (ele.isNode()) {\n switch (ele.pstyle('text-halign').value) {\n case 'left':\n p.x = -bb.w;\n break;\n case 'right':\n p.x = 0;\n break;\n }\n switch (ele.pstyle('text-valign').value) {\n case 'top':\n p.y = -bb.h;\n break;\n case 'bottom':\n p.y = 0;\n break;\n }\n }\n return p;\n };\n var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {\n getKey: getStyleKey,\n doesEleInvalidateKey: backgroundTimestampHasChanged,\n drawElement: drawElement,\n getBoundingBox: getElementBox,\n getRotationPoint: getElementRotationPoint,\n getRotationOffset: getElementRotationOffset,\n allowEdgeTxrCaching: false,\n allowParentTxrCaching: false\n });\n var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {\n getKey: getLabelKey,\n drawElement: drawLabel,\n getBoundingBox: getLabelBox,\n getRotationPoint: getLabelRotationPoint,\n getRotationOffset: getLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {\n getKey: getSourceLabelKey,\n drawElement: drawSourceLabel,\n getBoundingBox: getSourceLabelBox,\n getRotationPoint: getSourceLabelRotationPoint,\n getRotationOffset: getSourceLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {\n getKey: getTargetLabelKey,\n drawElement: drawTargetLabel,\n getBoundingBox: getTargetLabelBox,\n getRotationPoint: getTargetLabelRotationPoint,\n getRotationOffset: getTargetLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);\n r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {\n // each cache should check for sub-key diff to see that the update affects that cache particularly\n eleTxrCache.invalidateElements(eles);\n lblTxrCache.invalidateElements(eles);\n slbTxrCache.invalidateElements(eles);\n tlbTxrCache.invalidateElements(eles);\n\n // any change invalidates the layers\n lyrTxrCache.invalidateElements(eles);\n\n // update the old bg timestamp so diffs can be done in the ele txr caches\n for (var _i = 0; _i < eles.length; _i++) {\n var _p = eles[_i]._private;\n _p.oldBackgroundTimestamp = _p.backgroundTimestamp;\n }\n });\n var refineInLayers = function refineInLayers(reqs) {\n for (var i = 0; i < reqs.length; i++) {\n lyrTxrCache.enqueueElementRefinement(reqs[i].ele);\n }\n };\n eleTxrCache.onDequeue(refineInLayers);\n lblTxrCache.onDequeue(refineInLayers);\n slbTxrCache.onDequeue(refineInLayers);\n tlbTxrCache.onDequeue(refineInLayers);\n }\n CRp.redrawHint = function (group, bool) {\n var r = this;\n switch (group) {\n case 'eles':\n r.data.canvasNeedsRedraw[CRp.NODE] = bool;\n break;\n case 'drag':\n r.data.canvasNeedsRedraw[CRp.DRAG] = bool;\n break;\n case 'select':\n r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool;\n break;\n }\n };\n\n // whether to use Path2D caching for drawing\n var pathsImpld = typeof Path2D !== 'undefined';\n CRp.path2dEnabled = function (on) {\n if (on === undefined) {\n return this.pathsEnabled;\n }\n this.pathsEnabled = on ? true : false;\n };\n CRp.usePaths = function () {\n return pathsImpld && this.pathsEnabled;\n };\n CRp.setImgSmoothing = function (context, bool) {\n if (context.imageSmoothingEnabled != null) {\n context.imageSmoothingEnabled = bool;\n } else {\n context.webkitImageSmoothingEnabled = bool;\n context.mozImageSmoothingEnabled = bool;\n context.msImageSmoothingEnabled = bool;\n }\n };\n CRp.getImgSmoothing = function (context) {\n if (context.imageSmoothingEnabled != null) {\n return context.imageSmoothingEnabled;\n } else {\n return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;\n }\n };\n CRp.makeOffscreenCanvas = function (width, height) {\n var canvas;\n if ((typeof OffscreenCanvas === \"undefined\" ? \"undefined\" : _typeof(OffscreenCanvas)) !== (\"undefined\" )) {\n canvas = new OffscreenCanvas(width, height);\n } else {\n canvas = document.createElement('canvas'); // eslint-disable-line no-undef\n canvas.width = width;\n canvas.height = height;\n }\n return canvas;\n };\n [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function (props) {\n extend(CRp, props);\n });\n\n var renderer = [{\n name: 'null',\n impl: NullRenderer\n }, {\n name: 'base',\n impl: BR\n }, {\n name: 'canvas',\n impl: CR\n }];\n\n var incExts = [{\n type: 'layout',\n extensions: layout\n }, {\n type: 'renderer',\n extensions: renderer\n }];\n\n // registered extensions to cytoscape, indexed by name\n var extensions = {};\n\n // registered modules for extensions, indexed by name\n var modules = {};\n function setExtension(type, name, registrant) {\n var ext = registrant;\n var overrideErr = function overrideErr(field) {\n warn('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden');\n };\n if (type === 'core') {\n if (Core.prototype[name]) {\n return overrideErr(name);\n } else {\n Core.prototype[name] = registrant;\n }\n } else if (type === 'collection') {\n if (Collection.prototype[name]) {\n return overrideErr(name);\n } else {\n Collection.prototype[name] = registrant;\n }\n } else if (type === 'layout') {\n // fill in missing layout functions in the prototype\n\n var Layout = function Layout(options) {\n this.options = options;\n registrant.call(this, options);\n\n // make sure layout has _private for use w/ std apis like .on()\n if (!plainObject(this._private)) {\n this._private = {};\n }\n this._private.cy = options.cy;\n this._private.listeners = [];\n this.createEmitter();\n };\n var layoutProto = Layout.prototype = Object.create(registrant.prototype);\n var optLayoutFns = [];\n for (var i = 0; i < optLayoutFns.length; i++) {\n var fnName = optLayoutFns[i];\n layoutProto[fnName] = layoutProto[fnName] || function () {\n return this;\n };\n }\n\n // either .start() or .run() is defined, so autogen the other\n if (layoutProto.start && !layoutProto.run) {\n layoutProto.run = function () {\n this.start();\n return this;\n };\n } else if (!layoutProto.start && layoutProto.run) {\n layoutProto.start = function () {\n this.run();\n return this;\n };\n }\n var regStop = registrant.prototype.stop;\n layoutProto.stop = function () {\n var opts = this.options;\n if (opts && opts.animate) {\n var anis = this.animations;\n if (anis) {\n for (var _i = 0; _i < anis.length; _i++) {\n anis[_i].stop();\n }\n }\n }\n if (regStop) {\n regStop.call(this);\n } else {\n this.emit('layoutstop');\n }\n return this;\n };\n if (!layoutProto.destroy) {\n layoutProto.destroy = function () {\n return this;\n };\n }\n layoutProto.cy = function () {\n return this._private.cy;\n };\n var getCy = function getCy(layout) {\n return layout._private.cy;\n };\n var emitterOpts = {\n addEventFields: function addEventFields(layout, evt) {\n evt.layout = layout;\n evt.cy = getCy(layout);\n evt.target = layout;\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(layout) {\n return getCy(layout);\n }\n };\n extend(layoutProto, {\n createEmitter: function createEmitter() {\n this._private.emitter = new Emitter(emitterOpts, this);\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(evt, cb) {\n this.emitter().on(evt, cb);\n return this;\n },\n one: function one(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n once: function once(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n removeListener: function removeListener(evt, cb) {\n this.emitter().removeListener(evt, cb);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n emit: function emit(evt, params) {\n this.emitter().emit(evt, params);\n return this;\n }\n });\n define.eventAliasesOn(layoutProto);\n ext = Layout; // replace with our wrapped layout\n } else if (type === 'renderer' && name !== 'null' && name !== 'base') {\n // user registered renderers inherit from base\n\n var BaseRenderer = getExtension('renderer', 'base');\n var bProto = BaseRenderer.prototype;\n var RegistrantRenderer = registrant;\n var rProto = registrant.prototype;\n var Renderer = function Renderer() {\n BaseRenderer.apply(this, arguments);\n RegistrantRenderer.apply(this, arguments);\n };\n var proto = Renderer.prototype;\n for (var pName in bProto) {\n var pVal = bProto[pName];\n var existsInR = rProto[pName] != null;\n if (existsInR) {\n return overrideErr(pName);\n }\n proto[pName] = pVal; // take impl from base\n }\n\n for (var _pName in rProto) {\n proto[_pName] = rProto[_pName]; // take impl from registrant\n }\n\n bProto.clientFunctions.forEach(function (name) {\n proto[name] = proto[name] || function () {\n error('Renderer does not implement `renderer.' + name + '()` on its prototype');\n };\n });\n ext = Renderer;\n } else if (type === '__proto__' || type === 'constructor' || type === 'prototype') {\n // to avoid potential prototype pollution\n return error(type + ' is an illegal type to be registered, possibly lead to prototype pollutions');\n }\n return setMap({\n map: extensions,\n keys: [type, name],\n value: ext\n });\n }\n function getExtension(type, name) {\n return getMap({\n map: extensions,\n keys: [type, name]\n });\n }\n function setModule(type, name, moduleType, moduleName, registrant) {\n return setMap({\n map: modules,\n keys: [type, name, moduleType, moduleName],\n value: registrant\n });\n }\n function getModule(type, name, moduleType, moduleName) {\n return getMap({\n map: modules,\n keys: [type, name, moduleType, moduleName]\n });\n }\n var extension = function extension() {\n // e.g. extension('renderer', 'svg')\n if (arguments.length === 2) {\n return getExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', { ... })\n else if (arguments.length === 3) {\n return setExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse')\n else if (arguments.length === 4) {\n return getModule.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... })\n else if (arguments.length === 5) {\n return setModule.apply(null, arguments);\n } else {\n error('Invalid extension access syntax');\n }\n };\n\n // allows a core instance to access extensions internally\n Core.prototype.extension = extension;\n\n // included extensions\n incExts.forEach(function (group) {\n group.extensions.forEach(function (ext) {\n setExtension(group.type, ext.name, ext.impl);\n });\n });\n\n // a dummy stylesheet object that doesn't need a reference to the core\n // (useful for init)\n var Stylesheet = function Stylesheet() {\n if (!(this instanceof Stylesheet)) {\n return new Stylesheet();\n }\n this.length = 0;\n };\n var sheetfn = Stylesheet.prototype;\n sheetfn.instanceString = function () {\n return 'stylesheet';\n };\n\n // just store the selector to be parsed later\n sheetfn.selector = function (selector) {\n var i = this.length++;\n this[i] = {\n selector: selector,\n properties: []\n };\n return this; // chaining\n };\n\n // just store the property to be parsed later\n sheetfn.css = function (name, value) {\n var i = this.length - 1;\n if (string(name)) {\n this[i].properties.push({\n name: name,\n value: value\n });\n } else if (plainObject(name)) {\n var map = name;\n var propNames = Object.keys(map);\n for (var j = 0; j < propNames.length; j++) {\n var key = propNames[j];\n var mapVal = map[key];\n if (mapVal == null) {\n continue;\n }\n var prop = Style.properties[key] || Style.properties[dash2camel(key)];\n if (prop == null) {\n continue;\n }\n var _name = prop.name;\n var _value = mapVal;\n this[i].properties.push({\n name: _name,\n value: _value\n });\n }\n }\n return this; // chaining\n };\n\n sheetfn.style = sheetfn.css;\n\n // generate a real style object from the dummy stylesheet\n sheetfn.generateStyle = function (cy) {\n var style = new Style(cy);\n return this.appendToStyle(style);\n };\n\n // append a dummy stylesheet object on a real style object\n sheetfn.appendToStyle = function (style) {\n for (var i = 0; i < this.length; i++) {\n var context = this[i];\n var selector = context.selector;\n var props = context.properties;\n style.selector(selector); // apply selector\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n style.css(prop.name, prop.value); // apply property\n }\n }\n\n return style;\n };\n\n var version = \"3.27.0\";\n\n var cytoscape = function cytoscape(options) {\n // if no options specified, use default\n if (options === undefined) {\n options = {};\n }\n\n // create instance\n if (plainObject(options)) {\n return new Core(options);\n }\n\n // allow for registration of extensions\n else if (string(options)) {\n return extension.apply(extension, arguments);\n }\n };\n\n // e.g. cytoscape.use( require('cytoscape-foo'), bar )\n cytoscape.use = function (ext) {\n var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext\n\n args.unshift(cytoscape); // cytoscape is first arg to ext\n\n ext.apply(null, args);\n return this;\n };\n cytoscape.warnings = function (bool) {\n return warnings(bool);\n };\n\n // replaced by build system\n cytoscape.version = version;\n\n // expose public apis (mostly for extensions)\n cytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet;\n\n return cytoscape;\n\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[\"layoutBase\"] = factory();\n\telse\n\t\troot[\"layoutBase\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 26);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LayoutConstants() {}\n\n/**\r\n * Layout Quality: 0:draft, 1:default, 2:proof\r\n */\nLayoutConstants.QUALITY = 1;\n\n/**\r\n * Default parameters\r\n */\nLayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;\nLayoutConstants.DEFAULT_INCREMENTAL = false;\nLayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;\nLayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;\nLayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;\nLayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;\n\n// -----------------------------------------------------------------------------\n// Section: General other constants\n// -----------------------------------------------------------------------------\n/*\r\n * Margins of a graph to be applied on bouding rectangle of its contents. We\r\n * assume margins on all four sides to be uniform.\r\n */\nLayoutConstants.DEFAULT_GRAPH_MARGIN = 15;\n\n/*\r\n * Whether to consider labels in node dimensions or not\r\n */\nLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_SIZE = 40;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;\n\n/*\r\n * Empty compound node size. When a compound node is empty, its both\r\n * dimensions should be of this value.\r\n */\nLayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;\n\n/*\r\n * Minimum length that an edge should take during layout\r\n */\nLayoutConstants.MIN_EDGE_LENGTH = 1;\n\n/*\r\n * World boundaries that layout operates on\r\n */\nLayoutConstants.WORLD_BOUNDARY = 1000000;\n\n/*\r\n * World boundaries that random positioning can be performed with\r\n */\nLayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000;\n\n/*\r\n * Coordinates of the world center\r\n */\nLayoutConstants.WORLD_CENTER_X = 1200;\nLayoutConstants.WORLD_CENTER_Y = 900;\n\nmodule.exports = LayoutConstants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction LEdge(source, target, vEdge) {\n LGraphObject.call(this, vEdge);\n\n this.isOverlapingSourceAndTarget = false;\n this.vGraphObject = vEdge;\n this.bendpoints = [];\n this.source = source;\n this.target = target;\n}\n\nLEdge.prototype = Object.create(LGraphObject.prototype);\n\nfor (var prop in LGraphObject) {\n LEdge[prop] = LGraphObject[prop];\n}\n\nLEdge.prototype.getSource = function () {\n return this.source;\n};\n\nLEdge.prototype.getTarget = function () {\n return this.target;\n};\n\nLEdge.prototype.isInterGraph = function () {\n return this.isInterGraph;\n};\n\nLEdge.prototype.getLength = function () {\n return this.length;\n};\n\nLEdge.prototype.isOverlapingSourceAndTarget = function () {\n return this.isOverlapingSourceAndTarget;\n};\n\nLEdge.prototype.getBendpoints = function () {\n return this.bendpoints;\n};\n\nLEdge.prototype.getLca = function () {\n return this.lca;\n};\n\nLEdge.prototype.getSourceInLca = function () {\n return this.sourceInLca;\n};\n\nLEdge.prototype.getTargetInLca = function () {\n return this.targetInLca;\n};\n\nLEdge.prototype.getOtherEnd = function (node) {\n if (this.source === node) {\n return this.target;\n } else if (this.target === node) {\n return this.source;\n } else {\n throw \"Node is not incident with this edge\";\n }\n};\n\nLEdge.prototype.getOtherEndInGraph = function (node, graph) {\n var otherEnd = this.getOtherEnd(node);\n var root = graph.getGraphManager().getRoot();\n\n while (true) {\n if (otherEnd.getOwner() == graph) {\n return otherEnd;\n }\n\n if (otherEnd.getOwner() == root) {\n break;\n }\n\n otherEnd = otherEnd.getOwner().getParent();\n }\n\n return null;\n};\n\nLEdge.prototype.updateLength = function () {\n var clipPointCoordinates = new Array(4);\n\n this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);\n\n if (!this.isOverlapingSourceAndTarget) {\n this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];\n this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n }\n};\n\nLEdge.prototype.updateLengthSimple = function () {\n this.lengthX = this.target.getCenterX() - this.source.getCenterX();\n this.lengthY = this.target.getCenterY() - this.source.getCenterY();\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n};\n\nmodule.exports = LEdge;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LGraphObject(vGraphObject) {\n this.vGraphObject = vGraphObject;\n}\n\nmodule.exports = LGraphObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar RectangleD = __webpack_require__(13);\nvar LayoutConstants = __webpack_require__(0);\nvar RandomSeed = __webpack_require__(16);\nvar PointD = __webpack_require__(4);\n\nfunction LNode(gm, loc, size, vNode) {\n //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode)\n if (size == null && vNode == null) {\n vNode = loc;\n }\n\n LGraphObject.call(this, vNode);\n\n //Alternative constructor 2 : LNode(Layout layout, Object vNode)\n if (gm.graphManager != null) gm = gm.graphManager;\n\n this.estimatedSize = Integer.MIN_VALUE;\n this.inclusionTreeDepth = Integer.MAX_VALUE;\n this.vGraphObject = vNode;\n this.edges = [];\n this.graphManager = gm;\n\n if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD();\n}\n\nLNode.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LNode[prop] = LGraphObject[prop];\n}\n\nLNode.prototype.getEdges = function () {\n return this.edges;\n};\n\nLNode.prototype.getChild = function () {\n return this.child;\n};\n\nLNode.prototype.getOwner = function () {\n // if (this.owner != null) {\n // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) {\n // throw \"assert failed\";\n // }\n // }\n\n return this.owner;\n};\n\nLNode.prototype.getWidth = function () {\n return this.rect.width;\n};\n\nLNode.prototype.setWidth = function (width) {\n this.rect.width = width;\n};\n\nLNode.prototype.getHeight = function () {\n return this.rect.height;\n};\n\nLNode.prototype.setHeight = function (height) {\n this.rect.height = height;\n};\n\nLNode.prototype.getCenterX = function () {\n return this.rect.x + this.rect.width / 2;\n};\n\nLNode.prototype.getCenterY = function () {\n return this.rect.y + this.rect.height / 2;\n};\n\nLNode.prototype.getCenter = function () {\n return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);\n};\n\nLNode.prototype.getLocation = function () {\n return new PointD(this.rect.x, this.rect.y);\n};\n\nLNode.prototype.getRect = function () {\n return this.rect;\n};\n\nLNode.prototype.getDiagonal = function () {\n return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);\n};\n\n/**\n * This method returns half the diagonal length of this node.\n */\nLNode.prototype.getHalfTheDiagonal = function () {\n return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;\n};\n\nLNode.prototype.setRect = function (upperLeft, dimension) {\n this.rect.x = upperLeft.x;\n this.rect.y = upperLeft.y;\n this.rect.width = dimension.width;\n this.rect.height = dimension.height;\n};\n\nLNode.prototype.setCenter = function (cx, cy) {\n this.rect.x = cx - this.rect.width / 2;\n this.rect.y = cy - this.rect.height / 2;\n};\n\nLNode.prototype.setLocation = function (x, y) {\n this.rect.x = x;\n this.rect.y = y;\n};\n\nLNode.prototype.moveBy = function (dx, dy) {\n this.rect.x += dx;\n this.rect.y += dy;\n};\n\nLNode.prototype.getEdgeListToNode = function (to) {\n var edgeList = [];\n var edge;\n var self = this;\n\n self.edges.forEach(function (edge) {\n\n if (edge.target == to) {\n if (edge.source != self) throw \"Incorrect edge source!\";\n\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getEdgesBetween = function (other) {\n var edgeList = [];\n var edge;\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (!(edge.source == self || edge.target == self)) throw \"Incorrect edge source and/or target\";\n\n if (edge.target == other || edge.source == other) {\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getNeighborsList = function () {\n var neighbors = new Set();\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (edge.source == self) {\n neighbors.add(edge.target);\n } else {\n if (edge.target != self) {\n throw \"Incorrect incidency!\";\n }\n\n neighbors.add(edge.source);\n }\n });\n\n return neighbors;\n};\n\nLNode.prototype.withChildren = function () {\n var withNeighborsList = new Set();\n var childNode;\n var children;\n\n withNeighborsList.add(this);\n\n if (this.child != null) {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n children = childNode.withChildren();\n children.forEach(function (node) {\n withNeighborsList.add(node);\n });\n }\n }\n\n return withNeighborsList;\n};\n\nLNode.prototype.getNoOfChildren = function () {\n var noOfChildren = 0;\n var childNode;\n\n if (this.child == null) {\n noOfChildren = 1;\n } else {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n\n noOfChildren += childNode.getNoOfChildren();\n }\n }\n\n if (noOfChildren == 0) {\n noOfChildren = 1;\n }\n return noOfChildren;\n};\n\nLNode.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLNode.prototype.calcEstimatedSize = function () {\n if (this.child == null) {\n return this.estimatedSize = (this.rect.width + this.rect.height) / 2;\n } else {\n this.estimatedSize = this.child.calcEstimatedSize();\n this.rect.width = this.estimatedSize;\n this.rect.height = this.estimatedSize;\n\n return this.estimatedSize;\n }\n};\n\nLNode.prototype.scatter = function () {\n var randomCenterX;\n var randomCenterY;\n\n var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;\n\n var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;\n\n this.rect.x = randomCenterX;\n this.rect.y = randomCenterY;\n};\n\nLNode.prototype.updateBounds = function () {\n if (this.getChild() == null) {\n throw \"assert failed\";\n }\n if (this.getChild().getNodes().length != 0) {\n // wrap the children nodes by re-arranging the boundaries\n var childGraph = this.getChild();\n childGraph.updateBounds(true);\n\n this.rect.x = childGraph.getLeft();\n this.rect.y = childGraph.getTop();\n\n this.setWidth(childGraph.getRight() - childGraph.getLeft());\n this.setHeight(childGraph.getBottom() - childGraph.getTop());\n\n // Update compound bounds considering its label properties \n if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = childGraph.getRight() - childGraph.getLeft();\n var height = childGraph.getBottom() - childGraph.getTop();\n\n if (this.labelWidth > width) {\n this.rect.x -= (this.labelWidth - width) / 2;\n this.setWidth(this.labelWidth);\n }\n\n if (this.labelHeight > height) {\n if (this.labelPos == \"center\") {\n this.rect.y -= (this.labelHeight - height) / 2;\n } else if (this.labelPos == \"top\") {\n this.rect.y -= this.labelHeight - height;\n }\n this.setHeight(this.labelHeight);\n }\n }\n }\n};\n\nLNode.prototype.getInclusionTreeDepth = function () {\n if (this.inclusionTreeDepth == Integer.MAX_VALUE) {\n throw \"assert failed\";\n }\n return this.inclusionTreeDepth;\n};\n\nLNode.prototype.transform = function (trans) {\n var left = this.rect.x;\n\n if (left > LayoutConstants.WORLD_BOUNDARY) {\n left = LayoutConstants.WORLD_BOUNDARY;\n } else if (left < -LayoutConstants.WORLD_BOUNDARY) {\n left = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var top = this.rect.y;\n\n if (top > LayoutConstants.WORLD_BOUNDARY) {\n top = LayoutConstants.WORLD_BOUNDARY;\n } else if (top < -LayoutConstants.WORLD_BOUNDARY) {\n top = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var leftTop = new PointD(left, top);\n var vLeftTop = trans.inverseTransformPoint(leftTop);\n\n this.setLocation(vLeftTop.x, vLeftTop.y);\n};\n\nLNode.prototype.getLeft = function () {\n return this.rect.x;\n};\n\nLNode.prototype.getRight = function () {\n return this.rect.x + this.rect.width;\n};\n\nLNode.prototype.getTop = function () {\n return this.rect.y;\n};\n\nLNode.prototype.getBottom = function () {\n return this.rect.y + this.rect.height;\n};\n\nLNode.prototype.getParent = function () {\n if (this.owner == null) {\n return null;\n }\n\n return this.owner.getParent();\n};\n\nmodule.exports = LNode;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction PointD(x, y) {\n if (x == null && y == null) {\n this.x = 0;\n this.y = 0;\n } else {\n this.x = x;\n this.y = y;\n }\n}\n\nPointD.prototype.getX = function () {\n return this.x;\n};\n\nPointD.prototype.getY = function () {\n return this.y;\n};\n\nPointD.prototype.setX = function (x) {\n this.x = x;\n};\n\nPointD.prototype.setY = function (y) {\n this.y = y;\n};\n\nPointD.prototype.getDifference = function (pt) {\n return new DimensionD(this.x - pt.x, this.y - pt.y);\n};\n\nPointD.prototype.getCopy = function () {\n return new PointD(this.x, this.y);\n};\n\nPointD.prototype.translate = function (dim) {\n this.x += dim.width;\n this.y += dim.height;\n return this;\n};\n\nmodule.exports = PointD;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar RectangleD = __webpack_require__(13);\nvar Point = __webpack_require__(12);\nvar LinkedList = __webpack_require__(11);\n\nfunction LGraph(parent, obj2, vGraph) {\n LGraphObject.call(this, vGraph);\n this.estimatedSize = Integer.MIN_VALUE;\n this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;\n this.edges = [];\n this.nodes = [];\n this.isConnected = false;\n this.parent = parent;\n\n if (obj2 != null && obj2 instanceof LGraphManager) {\n this.graphManager = obj2;\n } else if (obj2 != null && obj2 instanceof Layout) {\n this.graphManager = obj2.graphManager;\n }\n}\n\nLGraph.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LGraph[prop] = LGraphObject[prop];\n}\n\nLGraph.prototype.getNodes = function () {\n return this.nodes;\n};\n\nLGraph.prototype.getEdges = function () {\n return this.edges;\n};\n\nLGraph.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLGraph.prototype.getParent = function () {\n return this.parent;\n};\n\nLGraph.prototype.getLeft = function () {\n return this.left;\n};\n\nLGraph.prototype.getRight = function () {\n return this.right;\n};\n\nLGraph.prototype.getTop = function () {\n return this.top;\n};\n\nLGraph.prototype.getBottom = function () {\n return this.bottom;\n};\n\nLGraph.prototype.isConnected = function () {\n return this.isConnected;\n};\n\nLGraph.prototype.add = function (obj1, sourceNode, targetNode) {\n if (sourceNode == null && targetNode == null) {\n var newNode = obj1;\n if (this.graphManager == null) {\n throw \"Graph has no graph mgr!\";\n }\n if (this.getNodes().indexOf(newNode) > -1) {\n throw \"Node already in graph!\";\n }\n newNode.owner = this;\n this.getNodes().push(newNode);\n\n return newNode;\n } else {\n var newEdge = obj1;\n if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {\n throw \"Source or target not in graph!\";\n }\n\n if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {\n throw \"Both owners must be this graph!\";\n }\n\n if (sourceNode.owner != targetNode.owner) {\n return null;\n }\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // set as intra-graph edge\n newEdge.isInterGraph = false;\n\n // add to graph edge list\n this.getEdges().push(newEdge);\n\n // add to incidency lists\n sourceNode.edges.push(newEdge);\n\n if (targetNode != sourceNode) {\n targetNode.edges.push(newEdge);\n }\n\n return newEdge;\n }\n};\n\nLGraph.prototype.remove = function (obj) {\n var node = obj;\n if (obj instanceof LNode) {\n if (node == null) {\n throw \"Node is null!\";\n }\n if (!(node.owner != null && node.owner == this)) {\n throw \"Owner graph is invalid!\";\n }\n if (this.graphManager == null) {\n throw \"Owner graph manager is invalid!\";\n }\n // remove incident edges first (make a copy to do it safely)\n var edgesToBeRemoved = node.edges.slice();\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n\n if (edge.isInterGraph) {\n this.graphManager.remove(edge);\n } else {\n edge.source.owner.remove(edge);\n }\n }\n\n // now the node itself\n var index = this.nodes.indexOf(node);\n if (index == -1) {\n throw \"Node not in owner node list!\";\n }\n\n this.nodes.splice(index, 1);\n } else if (obj instanceof LEdge) {\n var edge = obj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {\n throw \"Source and/or target owner is invalid!\";\n }\n\n var sourceIndex = edge.source.edges.indexOf(edge);\n var targetIndex = edge.target.edges.indexOf(edge);\n if (!(sourceIndex > -1 && targetIndex > -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n edge.source.edges.splice(sourceIndex, 1);\n\n if (edge.target != edge.source) {\n edge.target.edges.splice(targetIndex, 1);\n }\n\n var index = edge.source.owner.getEdges().indexOf(edge);\n if (index == -1) {\n throw \"Not in owner's edge list!\";\n }\n\n edge.source.owner.getEdges().splice(index, 1);\n }\n};\n\nLGraph.prototype.updateLeftTop = function () {\n var top = Integer.MAX_VALUE;\n var left = Integer.MAX_VALUE;\n var nodeTop;\n var nodeLeft;\n var margin;\n\n var nodes = this.getNodes();\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeTop = lNode.getTop();\n nodeLeft = lNode.getLeft();\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n }\n\n // Do we have any nodes in this graph?\n if (top == Integer.MAX_VALUE) {\n return null;\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = left - margin;\n this.top = top - margin;\n\n // Apply the margins and return the result\n return new Point(this.left, this.top);\n};\n\nLGraph.prototype.updateBounds = function (recursive) {\n // calculate bounds\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n var margin;\n\n var nodes = this.nodes;\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n\n if (recursive && lNode.child != null) {\n lNode.updateBounds();\n }\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n if (left == Integer.MAX_VALUE) {\n this.left = this.parent.getLeft();\n this.right = this.parent.getRight();\n this.top = this.parent.getTop();\n this.bottom = this.parent.getBottom();\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = boundingRect.x - margin;\n this.right = boundingRect.x + boundingRect.width + margin;\n this.top = boundingRect.y - margin;\n this.bottom = boundingRect.y + boundingRect.height + margin;\n};\n\nLGraph.calculateBounds = function (nodes) {\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n\n return boundingRect;\n};\n\nLGraph.prototype.getInclusionTreeDepth = function () {\n if (this == this.graphManager.getRoot()) {\n return 1;\n } else {\n return this.parent.getInclusionTreeDepth();\n }\n};\n\nLGraph.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLGraph.prototype.calcEstimatedSize = function () {\n var size = 0;\n var nodes = this.nodes;\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n size += lNode.calcEstimatedSize();\n }\n\n if (size == 0) {\n this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;\n } else {\n this.estimatedSize = size / Math.sqrt(this.nodes.length);\n }\n\n return this.estimatedSize;\n};\n\nLGraph.prototype.updateConnected = function () {\n var self = this;\n if (this.nodes.length == 0) {\n this.isConnected = true;\n return;\n }\n\n var queue = new LinkedList();\n var visited = new Set();\n var currentNode = this.nodes[0];\n var neighborEdges;\n var currentNeighbor;\n var childrenOfNode = currentNode.withChildren();\n childrenOfNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n\n while (queue.length !== 0) {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n neighborEdges = currentNode.getEdges();\n var size = neighborEdges.length;\n for (var i = 0; i < size; i++) {\n var neighborEdge = neighborEdges[i];\n currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);\n\n // Add unvisited neighbors to the list to visit\n if (currentNeighbor != null && !visited.has(currentNeighbor)) {\n var childrenOfNeighbor = currentNeighbor.withChildren();\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n }\n }\n }\n\n this.isConnected = false;\n\n if (visited.size >= this.nodes.length) {\n var noOfVisitedInThisGraph = 0;\n\n visited.forEach(function (visitedNode) {\n if (visitedNode.owner == self) {\n noOfVisitedInThisGraph++;\n }\n });\n\n if (noOfVisitedInThisGraph == this.nodes.length) {\n this.isConnected = true;\n }\n }\n};\n\nmodule.exports = LGraph;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph;\nvar LEdge = __webpack_require__(1);\n\nfunction LGraphManager(layout) {\n LGraph = __webpack_require__(5); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now.\n this.layout = layout;\n\n this.graphs = [];\n this.edges = [];\n}\n\nLGraphManager.prototype.addRoot = function () {\n var ngraph = this.layout.newGraph();\n var nnode = this.layout.newNode(null);\n var root = this.add(ngraph, nnode);\n this.setRootGraph(root);\n return this.rootGraph;\n};\n\nLGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) {\n //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge\n if (newEdge == null && sourceNode == null && targetNode == null) {\n if (newGraph == null) {\n throw \"Graph is null!\";\n }\n if (parentNode == null) {\n throw \"Parent node is null!\";\n }\n if (this.graphs.indexOf(newGraph) > -1) {\n throw \"Graph already in this graph mgr!\";\n }\n\n this.graphs.push(newGraph);\n\n if (newGraph.parent != null) {\n throw \"Already has a parent!\";\n }\n if (parentNode.child != null) {\n throw \"Already has a child!\";\n }\n\n newGraph.parent = parentNode;\n parentNode.child = newGraph;\n\n return newGraph;\n } else {\n //change the order of the parameters\n targetNode = newEdge;\n sourceNode = parentNode;\n newEdge = newGraph;\n var sourceGraph = sourceNode.getOwner();\n var targetGraph = targetNode.getOwner();\n\n if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {\n throw \"Source not in this graph mgr!\";\n }\n if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {\n throw \"Target not in this graph mgr!\";\n }\n\n if (sourceGraph == targetGraph) {\n newEdge.isInterGraph = false;\n return sourceGraph.add(newEdge, sourceNode, targetNode);\n } else {\n newEdge.isInterGraph = true;\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // add edge to inter-graph edge list\n if (this.edges.indexOf(newEdge) > -1) {\n throw \"Edge already in inter-graph edge list!\";\n }\n\n this.edges.push(newEdge);\n\n // add edge to source and target incidency lists\n if (!(newEdge.source != null && newEdge.target != null)) {\n throw \"Edge source and/or target is null!\";\n }\n\n if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {\n throw \"Edge already in source and/or target incidency list!\";\n }\n\n newEdge.source.edges.push(newEdge);\n newEdge.target.edges.push(newEdge);\n\n return newEdge;\n }\n }\n};\n\nLGraphManager.prototype.remove = function (lObj) {\n if (lObj instanceof LGraph) {\n var graph = lObj;\n if (graph.getGraphManager() != this) {\n throw \"Graph not in this graph mgr\";\n }\n if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {\n throw \"Invalid parent node!\";\n }\n\n // first the edges (make a copy to do it safely)\n var edgesToBeRemoved = [];\n\n edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());\n\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n graph.remove(edge);\n }\n\n // then the nodes (make a copy to do it safely)\n var nodesToBeRemoved = [];\n\n nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());\n\n var node;\n s = nodesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n node = nodesToBeRemoved[i];\n graph.remove(node);\n }\n\n // check if graph is the root\n if (graph == this.rootGraph) {\n this.setRootGraph(null);\n }\n\n // now remove the graph itself\n var index = this.graphs.indexOf(graph);\n this.graphs.splice(index, 1);\n\n // also reset the parent of the graph\n graph.parent = null;\n } else if (lObj instanceof LEdge) {\n edge = lObj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!edge.isInterGraph) {\n throw \"Not an inter-graph edge!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n\n // remove edge from source and target nodes' incidency lists\n\n if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n var index = edge.source.edges.indexOf(edge);\n edge.source.edges.splice(index, 1);\n index = edge.target.edges.indexOf(edge);\n edge.target.edges.splice(index, 1);\n\n // remove edge from owner graph manager's inter-graph edge list\n\n if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {\n throw \"Edge owner graph or owner graph manager is null!\";\n }\n if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {\n throw \"Not in owner graph manager's edge list!\";\n }\n\n var index = edge.source.owner.getGraphManager().edges.indexOf(edge);\n edge.source.owner.getGraphManager().edges.splice(index, 1);\n }\n};\n\nLGraphManager.prototype.updateBounds = function () {\n this.rootGraph.updateBounds(true);\n};\n\nLGraphManager.prototype.getGraphs = function () {\n return this.graphs;\n};\n\nLGraphManager.prototype.getAllNodes = function () {\n if (this.allNodes == null) {\n var nodeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < s; i++) {\n nodeList = nodeList.concat(graphs[i].getNodes());\n }\n this.allNodes = nodeList;\n }\n return this.allNodes;\n};\n\nLGraphManager.prototype.resetAllNodes = function () {\n this.allNodes = null;\n};\n\nLGraphManager.prototype.resetAllEdges = function () {\n this.allEdges = null;\n};\n\nLGraphManager.prototype.resetAllNodesToApplyGravitation = function () {\n this.allNodesToApplyGravitation = null;\n};\n\nLGraphManager.prototype.getAllEdges = function () {\n if (this.allEdges == null) {\n var edgeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < graphs.length; i++) {\n edgeList = edgeList.concat(graphs[i].getEdges());\n }\n\n edgeList = edgeList.concat(this.edges);\n\n this.allEdges = edgeList;\n }\n return this.allEdges;\n};\n\nLGraphManager.prototype.getAllNodesToApplyGravitation = function () {\n return this.allNodesToApplyGravitation;\n};\n\nLGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) {\n if (this.allNodesToApplyGravitation != null) {\n throw \"assert failed\";\n }\n\n this.allNodesToApplyGravitation = nodeList;\n};\n\nLGraphManager.prototype.getRoot = function () {\n return this.rootGraph;\n};\n\nLGraphManager.prototype.setRootGraph = function (graph) {\n if (graph.getGraphManager() != this) {\n throw \"Root not in this graph mgr!\";\n }\n\n this.rootGraph = graph;\n // root graph must have a root node associated with it for convenience\n if (graph.parent == null) {\n graph.parent = this.layout.newNode(\"Root node\");\n }\n};\n\nLGraphManager.prototype.getLayout = function () {\n return this.layout;\n};\n\nLGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) {\n if (!(firstNode != null && secondNode != null)) {\n throw \"assert failed\";\n }\n\n if (firstNode == secondNode) {\n return true;\n }\n // Is second node an ancestor of the first one?\n var ownerGraph = firstNode.getOwner();\n var parentNode;\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == secondNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n // Is first node an ancestor of the second one?\n ownerGraph = secondNode.getOwner();\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == firstNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n\n return false;\n};\n\nLGraphManager.prototype.calcLowestCommonAncestors = function () {\n var edge;\n var sourceNode;\n var targetNode;\n var sourceAncestorGraph;\n var targetAncestorGraph;\n\n var edges = this.getAllEdges();\n var s = edges.length;\n for (var i = 0; i < s; i++) {\n edge = edges[i];\n\n sourceNode = edge.source;\n targetNode = edge.target;\n edge.lca = null;\n edge.sourceInLca = sourceNode;\n edge.targetInLca = targetNode;\n\n if (sourceNode == targetNode) {\n edge.lca = sourceNode.getOwner();\n continue;\n }\n\n sourceAncestorGraph = sourceNode.getOwner();\n\n while (edge.lca == null) {\n edge.targetInLca = targetNode;\n targetAncestorGraph = targetNode.getOwner();\n\n while (edge.lca == null) {\n if (targetAncestorGraph == sourceAncestorGraph) {\n edge.lca = targetAncestorGraph;\n break;\n }\n\n if (targetAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca != null) {\n throw \"assert failed\";\n }\n edge.targetInLca = targetAncestorGraph.getParent();\n targetAncestorGraph = edge.targetInLca.getOwner();\n }\n\n if (sourceAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca == null) {\n edge.sourceInLca = sourceAncestorGraph.getParent();\n sourceAncestorGraph = edge.sourceInLca.getOwner();\n }\n }\n\n if (edge.lca == null) {\n throw \"assert failed\";\n }\n }\n};\n\nLGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) {\n if (firstNode == secondNode) {\n return firstNode.getOwner();\n }\n var firstOwnerGraph = firstNode.getOwner();\n\n do {\n if (firstOwnerGraph == null) {\n break;\n }\n var secondOwnerGraph = secondNode.getOwner();\n\n do {\n if (secondOwnerGraph == null) {\n break;\n }\n\n if (secondOwnerGraph == firstOwnerGraph) {\n return secondOwnerGraph;\n }\n secondOwnerGraph = secondOwnerGraph.getParent().getOwner();\n } while (true);\n\n firstOwnerGraph = firstOwnerGraph.getParent().getOwner();\n } while (true);\n\n return firstOwnerGraph;\n};\n\nLGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) {\n if (graph == null && depth == null) {\n graph = this.rootGraph;\n depth = 1;\n }\n var node;\n\n var nodes = graph.getNodes();\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n node = nodes[i];\n node.inclusionTreeDepth = depth;\n\n if (node.child != null) {\n this.calcInclusionTreeDepths(node.child, depth + 1);\n }\n }\n};\n\nLGraphManager.prototype.includesInvalidEdge = function () {\n var edge;\n\n var s = this.edges.length;\n for (var i = 0; i < s; i++) {\n edge = this.edges[i];\n\n if (this.isOneAncestorOfOther(edge.source, edge.target)) {\n return true;\n }\n }\n return false;\n};\n\nmodule.exports = LGraphManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0);\n\nfunction FDLayoutConstants() {}\n\n//FDLayoutConstants inherits static props in LayoutConstants\nfor (var prop in LayoutConstants) {\n FDLayoutConstants[prop] = LayoutConstants[prop];\n}\n\nFDLayoutConstants.MAX_ITERATIONS = 2500;\n\nFDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\nFDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;\nFDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0;\nFDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0;\nFDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;\nFDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;\nFDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;\nFDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;\nFDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;\nFDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000;\nFDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;\nFDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\nFDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;\nFDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;\nFDLayoutConstants.MIN_EDGE_LENGTH = 1;\nFDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;\n\nmodule.exports = FDLayoutConstants;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This class maintains a list of static geometry related utility methods.\n *\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar Point = __webpack_require__(12);\n\nfunction IGeometry() {}\n\n/**\n * This method calculates *half* the amount in x and y directions of the two\n * input rectangles needed to separate them keeping their respective\n * positioning, and returns the result in the input array. An input\n * separation buffer added to the amount in both directions. We assume that\n * the two rectangles do intersect.\n */\nIGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) {\n if (!rectA.intersects(rectB)) {\n throw \"assert failed\";\n }\n\n var directions = new Array(2);\n\n this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);\n\n overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);\n overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);\n\n // update the overlapping amounts for the following cases:\n if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {\n /* Case x.1:\n *\n * rectA\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectB\n */\n overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());\n } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {\n /* Case x.2:\n *\n * rectB\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectA\n */\n overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());\n }\n if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {\n /* Case y.1:\n * ________ rectA\n * |\n * |\n * ______|____ rectB\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());\n } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {\n /* Case y.2:\n * ________ rectB\n * |\n * |\n * ______|____ rectA\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());\n }\n\n // find slope of the line passes two centers\n var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));\n // if centers are overlapped\n if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {\n // assume the slope is 1 (45 degree)\n slope = 1.0;\n }\n\n var moveByY = slope * overlapAmount[0];\n var moveByX = overlapAmount[1] / slope;\n if (overlapAmount[0] < moveByX) {\n moveByX = overlapAmount[0];\n } else {\n moveByY = overlapAmount[1];\n }\n // return half the amount so that if each rectangle is moved by these\n // amounts in opposite directions, overlap will be resolved\n overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);\n overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);\n};\n\n/**\n * This method decides the separation direction of overlapping nodes\n *\n * if directions[0] = -1, then rectA goes left\n * if directions[0] = 1, then rectA goes right\n * if directions[1] = -1, then rectA goes up\n * if directions[1] = 1, then rectA goes down\n */\nIGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) {\n if (rectA.getCenterX() < rectB.getCenterX()) {\n directions[0] = -1;\n } else {\n directions[0] = 1;\n }\n\n if (rectA.getCenterY() < rectB.getCenterY()) {\n directions[1] = -1;\n } else {\n directions[1] = 1;\n }\n};\n\n/**\n * This method calculates the intersection (clipping) points of the two\n * input rectangles with line segment defined by the centers of these two\n * rectangles. The clipping points are saved in the input double array and\n * whether or not the two rectangles overlap is returned.\n */\nIGeometry.getIntersection2 = function (rectA, rectB, result) {\n //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB\n var p1x = rectA.getCenterX();\n var p1y = rectA.getCenterY();\n var p2x = rectB.getCenterX();\n var p2y = rectB.getCenterY();\n\n //if two rectangles intersect, then clipping points are centers\n if (rectA.intersects(rectB)) {\n result[0] = p1x;\n result[1] = p1y;\n result[2] = p2x;\n result[3] = p2y;\n return true;\n }\n //variables for rectA\n var topLeftAx = rectA.getX();\n var topLeftAy = rectA.getY();\n var topRightAx = rectA.getRight();\n var bottomLeftAx = rectA.getX();\n var bottomLeftAy = rectA.getBottom();\n var bottomRightAx = rectA.getRight();\n var halfWidthA = rectA.getWidthHalf();\n var halfHeightA = rectA.getHeightHalf();\n //variables for rectB\n var topLeftBx = rectB.getX();\n var topLeftBy = rectB.getY();\n var topRightBx = rectB.getRight();\n var bottomLeftBx = rectB.getX();\n var bottomLeftBy = rectB.getBottom();\n var bottomRightBx = rectB.getRight();\n var halfWidthB = rectB.getWidthHalf();\n var halfHeightB = rectB.getHeightHalf();\n\n //flag whether clipping points are found\n var clipPointAFound = false;\n var clipPointBFound = false;\n\n // line is vertical\n if (p1x === p2x) {\n if (p1y > p2y) {\n result[0] = p1x;\n result[1] = topLeftAy;\n result[2] = p2x;\n result[3] = bottomLeftBy;\n return false;\n } else if (p1y < p2y) {\n result[0] = p1x;\n result[1] = bottomLeftAy;\n result[2] = p2x;\n result[3] = topLeftBy;\n return false;\n } else {\n //not line, return null;\n }\n }\n // line is horizontal\n else if (p1y === p2y) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = p1y;\n result[2] = topRightBx;\n result[3] = p2y;\n return false;\n } else if (p1x < p2x) {\n result[0] = topRightAx;\n result[1] = p1y;\n result[2] = topLeftBx;\n result[3] = p2y;\n return false;\n } else {\n //not valid line, return null;\n }\n } else {\n //slopes of rectA's and rectB's diagonals\n var slopeA = rectA.height / rectA.width;\n var slopeB = rectB.height / rectB.width;\n\n //slope of line between center of rectA and center of rectB\n var slopePrime = (p2y - p1y) / (p2x - p1x);\n var cardinalDirectionA = void 0;\n var cardinalDirectionB = void 0;\n var tempPointAx = void 0;\n var tempPointAy = void 0;\n var tempPointBx = void 0;\n var tempPointBy = void 0;\n\n //determine whether clipping point is the corner of nodeA\n if (-slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = bottomLeftAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = topRightAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n }\n } else if (slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = bottomRightAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n }\n }\n\n //determine whether clipping point is the corner of nodeB\n if (-slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = bottomLeftBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = topRightBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n }\n } else if (slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = topLeftBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = bottomRightBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n }\n }\n\n //if both clipping points are corners\n if (clipPointAFound && clipPointBFound) {\n return false;\n }\n\n //determine Cardinal Direction of rectangles\n if (p1x > p2x) {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);\n } else {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);\n }\n } else {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);\n } else {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);\n }\n }\n //calculate clipping Point if it is not found before\n if (!clipPointAFound) {\n switch (cardinalDirectionA) {\n case 1:\n tempPointAy = topLeftAy;\n tempPointAx = p1x + -halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 2:\n tempPointAx = bottomRightAx;\n tempPointAy = p1y + halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 3:\n tempPointAy = bottomLeftAy;\n tempPointAx = p1x + halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 4:\n tempPointAx = bottomLeftAx;\n tempPointAy = p1y + -halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n }\n }\n if (!clipPointBFound) {\n switch (cardinalDirectionB) {\n case 1:\n tempPointBy = topLeftBy;\n tempPointBx = p2x + -halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 2:\n tempPointBx = bottomRightBx;\n tempPointBy = p2y + halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 3:\n tempPointBy = bottomLeftBy;\n tempPointBx = p2x + halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 4:\n tempPointBx = bottomLeftBx;\n tempPointBy = p2y + -halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n }\n }\n }\n return false;\n};\n\n/**\n * This method returns in which cardinal direction does input point stays\n * 1: North\n * 2: East\n * 3: South\n * 4: West\n */\nIGeometry.getCardinalDirection = function (slope, slopePrime, line) {\n if (slope > slopePrime) {\n return line;\n } else {\n return 1 + line % 4;\n }\n};\n\n/**\n * This method calculates the intersection of the two lines defined by\n * point pairs (s1,s2) and (f1,f2).\n */\nIGeometry.getIntersection = function (s1, s2, f1, f2) {\n if (f2 == null) {\n return this.getIntersection2(s1, s2, f1);\n }\n\n var x1 = s1.x;\n var y1 = s1.y;\n var x2 = s2.x;\n var y2 = s2.y;\n var x3 = f1.x;\n var y3 = f1.y;\n var x4 = f2.x;\n var y4 = f2.y;\n var x = void 0,\n y = void 0; // intersection point\n var a1 = void 0,\n a2 = void 0,\n b1 = void 0,\n b2 = void 0,\n c1 = void 0,\n c2 = void 0; // coefficients of line eqns.\n var denom = void 0;\n\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 }\n\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 }\n\n denom = a1 * b2 - a2 * b1;\n\n if (denom === 0) {\n return null;\n }\n\n x = (b1 * c2 - b2 * c1) / denom;\n y = (a2 * c1 - a1 * c2) / denom;\n\n return new Point(x, y);\n};\n\n/**\n * This method finds and returns the angle of the vector from the + x-axis\n * in clockwise direction (compatible w/ Java coordinate system!).\n */\nIGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) {\n var C_angle = void 0;\n\n if (Cx !== Nx) {\n C_angle = Math.atan((Ny - Cy) / (Nx - Cx));\n\n if (Nx < Cx) {\n C_angle += Math.PI;\n } else if (Ny < Cy) {\n C_angle += this.TWO_PI;\n }\n } else if (Ny < Cy) {\n C_angle = this.ONE_AND_HALF_PI; // 270 degrees\n } else {\n C_angle = this.HALF_PI; // 90 degrees\n }\n\n return C_angle;\n};\n\n/**\n * This method checks whether the given two line segments (one with point\n * p1 and p2, the other with point p3 and p4) intersect at a point other\n * than these points.\n */\nIGeometry.doIntersect = function (p1, p2, p3, p4) {\n var a = p1.x;\n var b = p1.y;\n var c = p2.x;\n var d = p2.y;\n var p = p3.x;\n var q = p3.y;\n var r = p4.x;\n var s = p4.y;\n var det = (c - a) * (s - q) - (r - p) * (d - b);\n\n if (det === 0) {\n return false;\n } else {\n var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;\n var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;\n return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Class Constants\n// -----------------------------------------------------------------------------\n/**\n * Some useful pre-calculated constants\n */\nIGeometry.HALF_PI = 0.5 * Math.PI;\nIGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;\nIGeometry.TWO_PI = 2.0 * Math.PI;\nIGeometry.THREE_PI = 3.0 * Math.PI;\n\nmodule.exports = IGeometry;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction IMath() {}\n\n/**\n * This method returns the sign of the input value.\n */\nIMath.sign = function (value) {\n if (value > 0) {\n return 1;\n } else if (value < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\nIMath.floor = function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n};\n\nIMath.ceil = function (value) {\n return value < 0 ? Math.floor(value) : Math.ceil(value);\n};\n\nmodule.exports = IMath;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Integer() {}\n\nInteger.MAX_VALUE = 2147483647;\nInteger.MIN_VALUE = -2147483648;\n\nmodule.exports = Integer;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar nodeFrom = function nodeFrom(value) {\n return { value: value, next: null, prev: null };\n};\n\nvar add = function add(prev, node, next, list) {\n if (prev !== null) {\n prev.next = node;\n } else {\n list.head = node;\n }\n\n if (next !== null) {\n next.prev = node;\n } else {\n list.tail = node;\n }\n\n node.prev = prev;\n node.next = next;\n\n list.length++;\n\n return node;\n};\n\nvar _remove = function _remove(node, list) {\n var prev = node.prev,\n next = node.next;\n\n\n if (prev !== null) {\n prev.next = next;\n } else {\n list.head = next;\n }\n\n if (next !== null) {\n next.prev = prev;\n } else {\n list.tail = prev;\n }\n\n node.prev = node.next = null;\n\n list.length--;\n\n return node;\n};\n\nvar LinkedList = function () {\n function LinkedList(vals) {\n var _this = this;\n\n _classCallCheck(this, LinkedList);\n\n this.length = 0;\n this.head = null;\n this.tail = null;\n\n if (vals != null) {\n vals.forEach(function (v) {\n return _this.push(v);\n });\n }\n }\n\n _createClass(LinkedList, [{\n key: \"size\",\n value: function size() {\n return this.length;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(val, otherNode) {\n return add(otherNode.prev, nodeFrom(val), otherNode, this);\n }\n }, {\n key: \"insertAfter\",\n value: function insertAfter(val, otherNode) {\n return add(otherNode, nodeFrom(val), otherNode.next, this);\n }\n }, {\n key: \"insertNodeBefore\",\n value: function insertNodeBefore(newNode, otherNode) {\n return add(otherNode.prev, newNode, otherNode, this);\n }\n }, {\n key: \"insertNodeAfter\",\n value: function insertNodeAfter(newNode, otherNode) {\n return add(otherNode, newNode, otherNode.next, this);\n }\n }, {\n key: \"push\",\n value: function push(val) {\n return add(this.tail, nodeFrom(val), null, this);\n }\n }, {\n key: \"unshift\",\n value: function unshift(val) {\n return add(null, nodeFrom(val), this.head, this);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _remove(node, this);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n return _remove(this.tail, this).value;\n }\n }, {\n key: \"popNode\",\n value: function popNode() {\n return _remove(this.tail, this);\n }\n }, {\n key: \"shift\",\n value: function shift() {\n return _remove(this.head, this).value;\n }\n }, {\n key: \"shiftNode\",\n value: function shiftNode() {\n return _remove(this.head, this);\n }\n }, {\n key: \"get_object_at\",\n value: function get_object_at(index) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n return current.value;\n }\n }\n }, {\n key: \"set_object_at\",\n value: function set_object_at(index, value) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n current.value = value;\n }\n }\n }]);\n\n return LinkedList;\n}();\n\nmodule.exports = LinkedList;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\r\n *This class is the javascript implementation of the Point.java class in jdk\r\n */\nfunction Point(x, y, p) {\n this.x = null;\n this.y = null;\n if (x == null && y == null && p == null) {\n this.x = 0;\n this.y = 0;\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n this.x = x;\n this.y = y;\n } else if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.x = p.x;\n this.y = p.y;\n }\n}\n\nPoint.prototype.getX = function () {\n return this.x;\n};\n\nPoint.prototype.getY = function () {\n return this.y;\n};\n\nPoint.prototype.getLocation = function () {\n return new Point(this.x, this.y);\n};\n\nPoint.prototype.setLocation = function (x, y, p) {\n if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.setLocation(p.x, p.y);\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n //if both parameters are integer just move (x,y) location\n if (parseInt(x) == x && parseInt(y) == y) {\n this.move(x, y);\n } else {\n this.x = Math.floor(x + 0.5);\n this.y = Math.floor(y + 0.5);\n }\n }\n};\n\nPoint.prototype.move = function (x, y) {\n this.x = x;\n this.y = y;\n};\n\nPoint.prototype.translate = function (dx, dy) {\n this.x += dx;\n this.y += dy;\n};\n\nPoint.prototype.equals = function (obj) {\n if (obj.constructor.name == \"Point\") {\n var pt = obj;\n return this.x == pt.x && this.y == pt.y;\n }\n return this == obj;\n};\n\nPoint.prototype.toString = function () {\n return new Point().constructor.name + \"[x=\" + this.x + \",y=\" + this.y + \"]\";\n};\n\nmodule.exports = Point;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RectangleD(x, y, width, height) {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n\n if (x != null && y != null && width != null && height != null) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n}\n\nRectangleD.prototype.getX = function () {\n return this.x;\n};\n\nRectangleD.prototype.setX = function (x) {\n this.x = x;\n};\n\nRectangleD.prototype.getY = function () {\n return this.y;\n};\n\nRectangleD.prototype.setY = function (y) {\n this.y = y;\n};\n\nRectangleD.prototype.getWidth = function () {\n return this.width;\n};\n\nRectangleD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nRectangleD.prototype.getHeight = function () {\n return this.height;\n};\n\nRectangleD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nRectangleD.prototype.getRight = function () {\n return this.x + this.width;\n};\n\nRectangleD.prototype.getBottom = function () {\n return this.y + this.height;\n};\n\nRectangleD.prototype.intersects = function (a) {\n if (this.getRight() < a.x) {\n return false;\n }\n\n if (this.getBottom() < a.y) {\n return false;\n }\n\n if (a.getRight() < this.x) {\n return false;\n }\n\n if (a.getBottom() < this.y) {\n return false;\n }\n\n return true;\n};\n\nRectangleD.prototype.getCenterX = function () {\n return this.x + this.width / 2;\n};\n\nRectangleD.prototype.getMinX = function () {\n return this.getX();\n};\n\nRectangleD.prototype.getMaxX = function () {\n return this.getX() + this.width;\n};\n\nRectangleD.prototype.getCenterY = function () {\n return this.y + this.height / 2;\n};\n\nRectangleD.prototype.getMinY = function () {\n return this.getY();\n};\n\nRectangleD.prototype.getMaxY = function () {\n return this.getY() + this.height;\n};\n\nRectangleD.prototype.getWidthHalf = function () {\n return this.width / 2;\n};\n\nRectangleD.prototype.getHeightHalf = function () {\n return this.height / 2;\n};\n\nmodule.exports = RectangleD;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction UniqueIDGeneretor() {}\n\nUniqueIDGeneretor.lastID = 0;\n\nUniqueIDGeneretor.createID = function (obj) {\n if (UniqueIDGeneretor.isPrimitive(obj)) {\n return obj;\n }\n if (obj.uniqueID != null) {\n return obj.uniqueID;\n }\n obj.uniqueID = UniqueIDGeneretor.getString();\n UniqueIDGeneretor.lastID++;\n return obj.uniqueID;\n};\n\nUniqueIDGeneretor.getString = function (id) {\n if (id == null) id = UniqueIDGeneretor.lastID;\n return \"Object#\" + id + \"\";\n};\n\nUniqueIDGeneretor.isPrimitive = function (arg) {\n var type = typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg);\n return arg == null || type != \"object\" && type != \"function\";\n};\n\nmodule.exports = UniqueIDGeneretor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar LGraph = __webpack_require__(5);\nvar PointD = __webpack_require__(4);\nvar Transform = __webpack_require__(17);\nvar Emitter = __webpack_require__(27);\n\nfunction Layout(isRemoteUse) {\n Emitter.call(this);\n\n //Layout Quality: 0:draft, 1:default, 2:proof\n this.layoutQuality = LayoutConstants.QUALITY;\n //Whether layout should create bendpoints as needed or not\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n //Whether layout should be incremental or not\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n //Whether we animate from before to after layout node positions\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n //Whether we animate the layout process or not\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n //Number iterations that should be done between two successive animations\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n /**\r\n * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When\r\n * they are, both spring and repulsion forces between two leaf nodes can be\r\n * calculated without the expensive clipping point calculations, resulting\r\n * in major speed-up.\r\n */\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n /**\r\n * This is used for creation of bendpoints by using dummy nodes and edges.\r\n * Maps an LEdge to its dummy bendpoint path.\r\n */\n this.edgeToDummyNodes = new Map();\n this.graphManager = new LGraphManager(this);\n this.isLayoutFinished = false;\n this.isSubLayout = false;\n this.isRemoteUse = false;\n\n if (isRemoteUse != null) {\n this.isRemoteUse = isRemoteUse;\n }\n}\n\nLayout.RANDOM_SEED = 1;\n\nLayout.prototype = Object.create(Emitter.prototype);\n\nLayout.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLayout.prototype.getAllNodes = function () {\n return this.graphManager.getAllNodes();\n};\n\nLayout.prototype.getAllEdges = function () {\n return this.graphManager.getAllEdges();\n};\n\nLayout.prototype.getAllNodesToApplyGravitation = function () {\n return this.graphManager.getAllNodesToApplyGravitation();\n};\n\nLayout.prototype.newGraphManager = function () {\n var gm = new LGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nLayout.prototype.newGraph = function (vGraph) {\n return new LGraph(null, this.graphManager, vGraph);\n};\n\nLayout.prototype.newNode = function (vNode) {\n return new LNode(this.graphManager, vNode);\n};\n\nLayout.prototype.newEdge = function (vEdge) {\n return new LEdge(null, null, vEdge);\n};\n\nLayout.prototype.checkLayoutSuccess = function () {\n return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();\n};\n\nLayout.prototype.runLayout = function () {\n this.isLayoutFinished = false;\n\n if (this.tilingPreLayout) {\n this.tilingPreLayout();\n }\n\n this.initParameters();\n var isLayoutSuccessfull;\n\n if (this.checkLayoutSuccess()) {\n isLayoutSuccessfull = false;\n } else {\n isLayoutSuccessfull = this.layout();\n }\n\n if (LayoutConstants.ANIMATE === 'during') {\n // If this is a 'during' layout animation. Layout is not finished yet. \n // We need to perform these in index.js when layout is really finished.\n return false;\n }\n\n if (isLayoutSuccessfull) {\n if (!this.isSubLayout) {\n this.doPostLayout();\n }\n }\n\n if (this.tilingPostLayout) {\n this.tilingPostLayout();\n }\n\n this.isLayoutFinished = true;\n\n return isLayoutSuccessfull;\n};\n\n/**\r\n * This method performs the operations required after layout.\r\n */\nLayout.prototype.doPostLayout = function () {\n //assert !isSubLayout : \"Should not be called on sub-layout!\";\n // Propagate geometric changes to v-level objects\n if (!this.incremental) {\n this.transform();\n }\n this.update();\n};\n\n/**\r\n * This method updates the geometry of the target graph according to\r\n * calculated layout.\r\n */\nLayout.prototype.update2 = function () {\n // update bend points\n if (this.createBendsAsNeeded) {\n this.createBendpointsFromDummyNodes();\n\n // reset all edges, since the topology has changed\n this.graphManager.resetAllEdges();\n }\n\n // perform edge, node and root updates if layout is not called\n // remotely\n if (!this.isRemoteUse) {\n // update all edges\n var edge;\n var allEdges = this.graphManager.getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n // this.update(edge);\n }\n\n // recursively update nodes\n var node;\n var nodes = this.graphManager.getRoot().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n // this.update(node);\n }\n\n // update root graph\n this.update(this.graphManager.getRoot());\n }\n};\n\nLayout.prototype.update = function (obj) {\n if (obj == null) {\n this.update2();\n } else if (obj instanceof LNode) {\n var node = obj;\n if (node.getChild() != null) {\n // since node is compound, recursively update child nodes\n var nodes = node.getChild().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n update(nodes[i]);\n }\n }\n\n // if the l-level node is associated with a v-level graph object,\n // then it is assumed that the v-level node implements the\n // interface Updatable.\n if (node.vGraphObject != null) {\n // cast to Updatable without any type check\n var vNode = node.vGraphObject;\n\n // call the update method of the interface\n vNode.update(node);\n }\n } else if (obj instanceof LEdge) {\n var edge = obj;\n // if the l-level edge is associated with a v-level graph object,\n // then it is assumed that the v-level edge implements the\n // interface Updatable.\n\n if (edge.vGraphObject != null) {\n // cast to Updatable without any type check\n var vEdge = edge.vGraphObject;\n\n // call the update method of the interface\n vEdge.update(edge);\n }\n } else if (obj instanceof LGraph) {\n var graph = obj;\n // if the l-level graph is associated with a v-level graph object,\n // then it is assumed that the v-level object implements the\n // interface Updatable.\n\n if (graph.vGraphObject != null) {\n // cast to Updatable without any type check\n var vGraph = graph.vGraphObject;\n\n // call the update method of the interface\n vGraph.update(graph);\n }\n }\n};\n\n/**\r\n * This method is used to set all layout parameters to default values\r\n * determined at compile time.\r\n */\nLayout.prototype.initParameters = function () {\n if (!this.isSubLayout) {\n this.layoutQuality = LayoutConstants.QUALITY;\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n }\n\n if (this.animationDuringLayout) {\n this.animationOnLayout = false;\n }\n};\n\nLayout.prototype.transform = function (newLeftTop) {\n if (newLeftTop == undefined) {\n this.transform(new PointD(0, 0));\n } else {\n // create a transformation object (from Eclipse to layout). When an\n // inverse transform is applied, we get upper-left coordinate of the\n // drawing or the root graph at given input coordinate (some margins\n // already included in calculation of left-top).\n\n var trans = new Transform();\n var leftTop = this.graphManager.getRoot().updateLeftTop();\n\n if (leftTop != null) {\n trans.setWorldOrgX(newLeftTop.x);\n trans.setWorldOrgY(newLeftTop.y);\n\n trans.setDeviceOrgX(leftTop.x);\n trans.setDeviceOrgY(leftTop.y);\n\n var nodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n node.transform(trans);\n }\n }\n }\n};\n\nLayout.prototype.positionNodesRandomly = function (graph) {\n\n if (graph == undefined) {\n //assert !this.incremental;\n this.positionNodesRandomly(this.getGraphManager().getRoot());\n this.getGraphManager().getRoot().updateBounds(true);\n } else {\n var lNode;\n var childGraph;\n\n var nodes = graph.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n lNode = nodes[i];\n childGraph = lNode.getChild();\n\n if (childGraph == null) {\n lNode.scatter();\n } else if (childGraph.getNodes().length == 0) {\n lNode.scatter();\n } else {\n this.positionNodesRandomly(childGraph);\n lNode.updateBounds();\n }\n }\n }\n};\n\n/**\r\n * This method returns a list of trees where each tree is represented as a\r\n * list of l-nodes. The method returns a list of size 0 when:\r\n * - The graph is not flat or\r\n * - One of the component(s) of the graph is not a tree.\r\n */\nLayout.prototype.getFlatForest = function () {\n var flatForest = [];\n var isForest = true;\n\n // Quick reference for all nodes in the graph manager associated with\n // this layout. The list should not be changed.\n var allNodes = this.graphManager.getRoot().getNodes();\n\n // First be sure that the graph is flat\n var isFlat = true;\n\n for (var i = 0; i < allNodes.length; i++) {\n if (allNodes[i].getChild() != null) {\n isFlat = false;\n }\n }\n\n // Return empty forest if the graph is not flat.\n if (!isFlat) {\n return flatForest;\n }\n\n // Run BFS for each component of the graph.\n\n var visited = new Set();\n var toBeVisited = [];\n var parents = new Map();\n var unProcessedNodes = [];\n\n unProcessedNodes = unProcessedNodes.concat(allNodes);\n\n // Each iteration of this loop finds a component of the graph and\n // decides whether it is a tree or not. If it is a tree, adds it to the\n // forest and continued with the next component.\n\n while (unProcessedNodes.length > 0 && isForest) {\n toBeVisited.push(unProcessedNodes[0]);\n\n // Start the BFS. Each iteration of this loop visits a node in a\n // BFS manner.\n while (toBeVisited.length > 0 && isForest) {\n //pool operation\n var currentNode = toBeVisited[0];\n toBeVisited.splice(0, 1);\n visited.add(currentNode);\n\n // Traverse all neighbors of this node\n var neighborEdges = currentNode.getEdges();\n\n for (var i = 0; i < neighborEdges.length; i++) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);\n\n // If BFS is not growing from this neighbor.\n if (parents.get(currentNode) != currentNeighbor) {\n // We haven't previously visited this neighbor.\n if (!visited.has(currentNeighbor)) {\n toBeVisited.push(currentNeighbor);\n parents.set(currentNeighbor, currentNode);\n }\n // Since we have previously visited this neighbor and\n // this neighbor is not parent of currentNode, given\n // graph contains a component that is not tree, hence\n // it is not a forest.\n else {\n isForest = false;\n break;\n }\n }\n }\n }\n\n // The graph contains a component that is not a tree. Empty\n // previously found trees. The method will end.\n if (!isForest) {\n flatForest = [];\n }\n // Save currently visited nodes as a tree in our forest. Reset\n // visited and parents lists. Continue with the next component of\n // the graph, if any.\n else {\n var temp = [].concat(_toConsumableArray(visited));\n flatForest.push(temp);\n //flatForest = flatForest.concat(temp);\n //unProcessedNodes.removeAll(visited);\n for (var i = 0; i < temp.length; i++) {\n var value = temp[i];\n var index = unProcessedNodes.indexOf(value);\n if (index > -1) {\n unProcessedNodes.splice(index, 1);\n }\n }\n visited = new Set();\n parents = new Map();\n }\n }\n\n return flatForest;\n};\n\n/**\r\n * This method creates dummy nodes (an l-level node with minimal dimensions)\r\n * for the given edge (one per bendpoint). The existing l-level structure\r\n * is updated accordingly.\r\n */\nLayout.prototype.createDummyNodesForBendpoints = function (edge) {\n var dummyNodes = [];\n var prev = edge.source;\n\n var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);\n\n for (var i = 0; i < edge.bendpoints.length; i++) {\n // create new dummy node\n var dummyNode = this.newNode(null);\n dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));\n\n graph.add(dummyNode);\n\n // create new dummy edge between prev and dummy node\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, dummyNode);\n\n dummyNodes.add(dummyNode);\n prev = dummyNode;\n }\n\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, edge.target);\n\n this.edgeToDummyNodes.set(edge, dummyNodes);\n\n // remove real edge from graph manager if it is inter-graph\n if (edge.isInterGraph()) {\n this.graphManager.remove(edge);\n }\n // else, remove the edge from the current graph\n else {\n graph.remove(edge);\n }\n\n return dummyNodes;\n};\n\n/**\r\n * This method creates bendpoints for edges from the dummy nodes\r\n * at l-level.\r\n */\nLayout.prototype.createBendpointsFromDummyNodes = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);\n\n for (var k = 0; k < edges.length; k++) {\n var lEdge = edges[k];\n\n if (lEdge.bendpoints.length > 0) {\n var path = this.edgeToDummyNodes.get(lEdge);\n\n for (var i = 0; i < path.length; i++) {\n var dummyNode = path[i];\n var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());\n\n // update bendpoint's location according to dummy node\n var ebp = lEdge.bendpoints.get(i);\n ebp.x = p.x;\n ebp.y = p.y;\n\n // remove the dummy node, dummy edges incident with this\n // dummy node is also removed (within the remove method)\n dummyNode.getOwner().remove(dummyNode);\n }\n\n // add the real edge to graph\n this.graphManager.add(lEdge, lEdge.source, lEdge.target);\n }\n }\n};\n\nLayout.transform = function (sliderValue, defaultValue, minDiv, maxMul) {\n if (minDiv != undefined && maxMul != undefined) {\n var value = defaultValue;\n\n if (sliderValue <= 50) {\n var minValue = defaultValue / minDiv;\n value -= (defaultValue - minValue) / 50 * (50 - sliderValue);\n } else {\n var maxValue = defaultValue * maxMul;\n value += (maxValue - defaultValue) / 50 * (sliderValue - 50);\n }\n\n return value;\n } else {\n var a, b;\n\n if (sliderValue <= 50) {\n a = 9.0 * defaultValue / 500.0;\n b = defaultValue / 10.0;\n } else {\n a = 9.0 * defaultValue / 50.0;\n b = -8 * defaultValue;\n }\n\n return a * sliderValue + b;\n }\n};\n\n/**\r\n * This method finds and returns the center of the given nodes, assuming\r\n * that the given nodes form a tree in themselves.\r\n */\nLayout.findCenterOfTree = function (nodes) {\n var list = [];\n list = list.concat(nodes);\n\n var removedNodes = [];\n var remainingDegrees = new Map();\n var foundCenter = false;\n var centerNode = null;\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n var degree = node.getNeighborsList().size;\n remainingDegrees.set(node, node.getNeighborsList().size);\n\n if (degree == 1) {\n removedNodes.push(node);\n }\n }\n\n var tempList = [];\n tempList = tempList.concat(removedNodes);\n\n while (!foundCenter) {\n var tempList2 = [];\n tempList2 = tempList2.concat(tempList);\n tempList = [];\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n\n var index = list.indexOf(node);\n if (index >= 0) {\n list.splice(index, 1);\n }\n\n var neighbours = node.getNeighborsList();\n\n neighbours.forEach(function (neighbour) {\n if (removedNodes.indexOf(neighbour) < 0) {\n var otherDegree = remainingDegrees.get(neighbour);\n var newDegree = otherDegree - 1;\n\n if (newDegree == 1) {\n tempList.push(neighbour);\n }\n\n remainingDegrees.set(neighbour, newDegree);\n }\n });\n }\n\n removedNodes = removedNodes.concat(tempList);\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n }\n\n return centerNode;\n};\n\n/**\r\n * During the coarsening process, this layout may be referenced by two graph managers\r\n * this setter function grants access to change the currently being used graph manager\r\n */\nLayout.prototype.setGraphManager = function (gm) {\n this.graphManager = gm;\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RandomSeed() {}\n// adapted from: https://stackoverflow.com/a/19303725\nRandomSeed.seed = 1;\nRandomSeed.x = 0;\n\nRandomSeed.nextDouble = function () {\n RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000;\n return RandomSeed.x - Math.floor(RandomSeed.x);\n};\n\nmodule.exports = RandomSeed;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PointD = __webpack_require__(4);\n\nfunction Transform(x, y) {\n this.lworldOrgX = 0.0;\n this.lworldOrgY = 0.0;\n this.ldeviceOrgX = 0.0;\n this.ldeviceOrgY = 0.0;\n this.lworldExtX = 1.0;\n this.lworldExtY = 1.0;\n this.ldeviceExtX = 1.0;\n this.ldeviceExtY = 1.0;\n}\n\nTransform.prototype.getWorldOrgX = function () {\n return this.lworldOrgX;\n};\n\nTransform.prototype.setWorldOrgX = function (wox) {\n this.lworldOrgX = wox;\n};\n\nTransform.prototype.getWorldOrgY = function () {\n return this.lworldOrgY;\n};\n\nTransform.prototype.setWorldOrgY = function (woy) {\n this.lworldOrgY = woy;\n};\n\nTransform.prototype.getWorldExtX = function () {\n return this.lworldExtX;\n};\n\nTransform.prototype.setWorldExtX = function (wex) {\n this.lworldExtX = wex;\n};\n\nTransform.prototype.getWorldExtY = function () {\n return this.lworldExtY;\n};\n\nTransform.prototype.setWorldExtY = function (wey) {\n this.lworldExtY = wey;\n};\n\n/* Device related */\n\nTransform.prototype.getDeviceOrgX = function () {\n return this.ldeviceOrgX;\n};\n\nTransform.prototype.setDeviceOrgX = function (dox) {\n this.ldeviceOrgX = dox;\n};\n\nTransform.prototype.getDeviceOrgY = function () {\n return this.ldeviceOrgY;\n};\n\nTransform.prototype.setDeviceOrgY = function (doy) {\n this.ldeviceOrgY = doy;\n};\n\nTransform.prototype.getDeviceExtX = function () {\n return this.ldeviceExtX;\n};\n\nTransform.prototype.setDeviceExtX = function (dex) {\n this.ldeviceExtX = dex;\n};\n\nTransform.prototype.getDeviceExtY = function () {\n return this.ldeviceExtY;\n};\n\nTransform.prototype.setDeviceExtY = function (dey) {\n this.ldeviceExtY = dey;\n};\n\nTransform.prototype.transformX = function (x) {\n var xDevice = 0.0;\n var worldExtX = this.lworldExtX;\n if (worldExtX != 0.0) {\n xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;\n }\n\n return xDevice;\n};\n\nTransform.prototype.transformY = function (y) {\n var yDevice = 0.0;\n var worldExtY = this.lworldExtY;\n if (worldExtY != 0.0) {\n yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;\n }\n\n return yDevice;\n};\n\nTransform.prototype.inverseTransformX = function (x) {\n var xWorld = 0.0;\n var deviceExtX = this.ldeviceExtX;\n if (deviceExtX != 0.0) {\n xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;\n }\n\n return xWorld;\n};\n\nTransform.prototype.inverseTransformY = function (y) {\n var yWorld = 0.0;\n var deviceExtY = this.ldeviceExtY;\n if (deviceExtY != 0.0) {\n yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;\n }\n return yWorld;\n};\n\nTransform.prototype.inverseTransformPoint = function (inPoint) {\n var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));\n return outPoint;\n};\n\nmodule.exports = Transform;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar Layout = __webpack_require__(15);\nvar FDLayoutConstants = __webpack_require__(7);\nvar LayoutConstants = __webpack_require__(0);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction FDLayout() {\n Layout.call(this);\n\n this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.totalDisplacement = 0.0;\n this.oldTotalDisplacement = 0.0;\n this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;\n}\n\nFDLayout.prototype = Object.create(Layout.prototype);\n\nfor (var prop in Layout) {\n FDLayout[prop] = Layout[prop];\n}\n\nFDLayout.prototype.initParameters = function () {\n Layout.prototype.initParameters.call(this, arguments);\n\n this.totalIterations = 0;\n this.notAnimatedIterations = 0;\n\n this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;\n\n this.grid = [];\n};\n\nFDLayout.prototype.calcIdealEdgeLengths = function () {\n var edge;\n var lcaDepth;\n var source;\n var target;\n var sizeOfSourceInLca;\n var sizeOfTargetInLca;\n\n var allEdges = this.getGraphManager().getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n\n edge.idealLength = this.idealEdgeLength;\n\n if (edge.isInterGraph) {\n source = edge.getSource();\n target = edge.getTarget();\n\n sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();\n sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();\n\n if (this.useSmartIdealEdgeLengthCalculation) {\n edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;\n }\n\n lcaDepth = edge.getLca().getInclusionTreeDepth();\n\n edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);\n }\n }\n};\n\nFDLayout.prototype.initSpringEmbedder = function () {\n\n var s = this.getAllNodes().length;\n if (this.incremental) {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n }\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;\n } else {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n } else {\n this.coolingFactor = 1.0;\n }\n this.initialCoolingFactor = this.coolingFactor;\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;\n }\n\n this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);\n\n this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;\n\n this.repulsionRange = this.calcRepulsionRange();\n};\n\nFDLayout.prototype.calcSpringForces = function () {\n var lEdges = this.getAllEdges();\n var edge;\n\n for (var i = 0; i < lEdges.length; i++) {\n edge = lEdges[i];\n\n this.calcSpringForce(edge, edge.idealLength);\n }\n};\n\nFDLayout.prototype.calcRepulsionForces = function () {\n var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var i, j;\n var nodeA, nodeB;\n var lNodes = this.getAllNodes();\n var processedNodeSet;\n\n if (this.useFRGridVariant) {\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {\n this.updateGrid();\n }\n\n processedNodeSet = new Set();\n\n // calculate repulsion forces between each nodes and its surrounding\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);\n processedNodeSet.add(nodeA);\n }\n } else {\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n\n for (j = i + 1; j < lNodes.length; j++) {\n nodeB = lNodes[j];\n\n // If both nodes are not members of the same graph, skip.\n if (nodeA.getOwner() != nodeB.getOwner()) {\n continue;\n }\n\n this.calcRepulsionForce(nodeA, nodeB);\n }\n }\n }\n};\n\nFDLayout.prototype.calcGravitationalForces = function () {\n var node;\n var lNodes = this.getAllNodesToApplyGravitation();\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n this.calcGravitationalForce(node);\n }\n};\n\nFDLayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\nFDLayout.prototype.calcSpringForce = function (edge, idealLength) {\n var sourceNode = edge.getSource();\n var targetNode = edge.getTarget();\n\n var length;\n var springForce;\n var springForceX;\n var springForceY;\n\n // Update edge length\n if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {\n edge.updateLengthSimple();\n } else {\n edge.updateLength();\n\n if (edge.isOverlapingSourceAndTarget) {\n return;\n }\n }\n\n length = edge.getLength();\n\n if (length == 0) return;\n\n // Calculate spring forces\n springForce = this.springConstant * (length - idealLength);\n\n // Project force onto x and y axes\n springForceX = springForce * (edge.lengthX / length);\n springForceY = springForce * (edge.lengthY / length);\n\n // Apply forces on the end nodes\n sourceNode.springForceX += springForceX;\n sourceNode.springForceY += springForceY;\n targetNode.springForceX -= springForceX;\n targetNode.springForceY -= springForceY;\n};\n\nFDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) {\n var rectA = nodeA.getRect();\n var rectB = nodeB.getRect();\n var overlapAmount = new Array(2);\n var clipPoints = new Array(4);\n var distanceX;\n var distanceY;\n var distanceSquared;\n var distance;\n var repulsionForce;\n var repulsionForceX;\n var repulsionForceY;\n\n if (rectA.intersects(rectB)) // two nodes overlap\n {\n // calculate separation amount in x and y directions\n IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0);\n\n repulsionForceX = 2 * overlapAmount[0];\n repulsionForceY = 2 * overlapAmount[1];\n\n var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);\n\n // Apply forces on the two nodes\n nodeA.repulsionForceX -= childrenConstant * repulsionForceX;\n nodeA.repulsionForceY -= childrenConstant * repulsionForceY;\n nodeB.repulsionForceX += childrenConstant * repulsionForceX;\n nodeB.repulsionForceY += childrenConstant * repulsionForceY;\n } else // no overlap\n {\n // calculate distance\n\n if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers\n {\n distanceX = rectB.getCenterX() - rectA.getCenterX();\n distanceY = rectB.getCenterY() - rectA.getCenterY();\n } else // use clipping points\n {\n IGeometry.getIntersection(rectA, rectB, clipPoints);\n\n distanceX = clipPoints[2] - clipPoints[0];\n distanceY = clipPoints[3] - clipPoints[1];\n }\n\n // No repulsion range. FR grid variant should take care of this.\n if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n distanceSquared = distanceX * distanceX + distanceY * distanceY;\n distance = Math.sqrt(distanceSquared);\n\n repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;\n\n // Project force onto x and y axes\n repulsionForceX = repulsionForce * distanceX / distance;\n repulsionForceY = repulsionForce * distanceY / distance;\n\n // Apply forces on the two nodes \n nodeA.repulsionForceX -= repulsionForceX;\n nodeA.repulsionForceY -= repulsionForceY;\n nodeB.repulsionForceX += repulsionForceX;\n nodeB.repulsionForceY += repulsionForceY;\n }\n};\n\nFDLayout.prototype.calcGravitationalForce = function (node) {\n var ownerGraph;\n var ownerCenterX;\n var ownerCenterY;\n var distanceX;\n var distanceY;\n var absDistanceX;\n var absDistanceY;\n var estimatedSize;\n ownerGraph = node.getOwner();\n\n ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;\n ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;\n distanceX = node.getCenterX() - ownerCenterX;\n distanceY = node.getCenterY() - ownerCenterY;\n absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;\n absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;\n\n if (node.getOwner() == this.graphManager.getRoot()) // in the root graph\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX;\n node.gravitationForceY = -this.gravityConstant * distanceY;\n }\n } else // inside a compound\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;\n node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;\n }\n }\n};\n\nFDLayout.prototype.isConverged = function () {\n var converged;\n var oscilating = false;\n\n if (this.totalIterations > this.maxIterations / 3) {\n oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;\n }\n\n converged = this.totalDisplacement < this.totalDisplacementThreshold;\n\n this.oldTotalDisplacement = this.totalDisplacement;\n\n return converged || oscilating;\n};\n\nFDLayout.prototype.animate = function () {\n if (this.animationDuringLayout && !this.isSubLayout) {\n if (this.notAnimatedIterations == this.animationPeriod) {\n this.update();\n this.notAnimatedIterations = 0;\n } else {\n this.notAnimatedIterations++;\n }\n }\n};\n\n//This method calculates the number of children (weight) for all nodes\nFDLayout.prototype.calcNoOfChildrenForAllNodes = function () {\n var node;\n var allNodes = this.graphManager.getAllNodes();\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n node.noOfChildren = node.getNoOfChildren();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: FR-Grid Variant Repulsion Force Calculation\n// -----------------------------------------------------------------------------\n\nFDLayout.prototype.calcGrid = function (graph) {\n\n var sizeX = 0;\n var sizeY = 0;\n\n sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));\n sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));\n\n var grid = new Array(sizeX);\n\n for (var i = 0; i < sizeX; i++) {\n grid[i] = new Array(sizeY);\n }\n\n for (var i = 0; i < sizeX; i++) {\n for (var j = 0; j < sizeY; j++) {\n grid[i][j] = new Array();\n }\n }\n\n return grid;\n};\n\nFDLayout.prototype.addNodeToGrid = function (v, left, top) {\n\n var startX = 0;\n var finishX = 0;\n var startY = 0;\n var finishY = 0;\n\n startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));\n finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));\n startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));\n finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));\n\n for (var i = startX; i <= finishX; i++) {\n for (var j = startY; j <= finishY; j++) {\n this.grid[i][j].push(v);\n v.setGridCoordinates(startX, finishX, startY, finishY);\n }\n }\n};\n\nFDLayout.prototype.updateGrid = function () {\n var i;\n var nodeA;\n var lNodes = this.getAllNodes();\n\n this.grid = this.calcGrid(this.graphManager.getRoot());\n\n // put all nodes to proper grid cells\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());\n }\n};\n\nFDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {\n\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {\n var surrounding = new Set();\n nodeA.surrounding = new Array();\n var nodeB;\n var grid = this.grid;\n\n for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {\n for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {\n if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {\n for (var k = 0; k < grid[i][j].length; k++) {\n nodeB = grid[i][j][k];\n\n // If both nodes are not members of the same graph, \n // or both nodes are the same, skip.\n if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {\n continue;\n }\n\n // check if the repulsion force between\n // nodeA and nodeB has already been calculated\n if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {\n var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);\n var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);\n\n // if the distance between nodeA and nodeB \n // is less then calculation range\n if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {\n //then add nodeB to surrounding of nodeA\n surrounding.add(nodeB);\n }\n }\n }\n }\n }\n }\n\n nodeA.surrounding = [].concat(_toConsumableArray(surrounding));\n }\n for (i = 0; i < nodeA.surrounding.length; i++) {\n this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);\n }\n};\n\nFDLayout.prototype.calcRepulsionRange = function () {\n return 0.0;\n};\n\nmodule.exports = FDLayout;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEdge = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(7);\n\nfunction FDLayoutEdge(source, target, vEdge) {\n LEdge.call(this, source, target, vEdge);\n this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n}\n\nFDLayoutEdge.prototype = Object.create(LEdge.prototype);\n\nfor (var prop in LEdge) {\n FDLayoutEdge[prop] = LEdge[prop];\n}\n\nmodule.exports = FDLayoutEdge;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LNode = __webpack_require__(3);\n\nfunction FDLayoutNode(gm, loc, size, vNode) {\n // alternative constructor is handled inside LNode\n LNode.call(this, gm, loc, size, vNode);\n //Spring, repulsion and gravitational forces acting on this node\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n //Amount by which this node is to be moved in this iteration\n this.displacementX = 0;\n this.displacementY = 0;\n\n //Start and finish grid coordinates that this node is fallen into\n this.startX = 0;\n this.finishX = 0;\n this.startY = 0;\n this.finishY = 0;\n\n //Geometric neighbors of this node\n this.surrounding = [];\n}\n\nFDLayoutNode.prototype = Object.create(LNode.prototype);\n\nfor (var prop in LNode) {\n FDLayoutNode[prop] = LNode[prop];\n}\n\nFDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) {\n this.startX = _startX;\n this.finishX = _finishX;\n this.startY = _startY;\n this.finishY = _finishY;\n};\n\nmodule.exports = FDLayoutNode;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction DimensionD(width, height) {\n this.width = 0;\n this.height = 0;\n if (width !== null && height !== null) {\n this.height = height;\n this.width = width;\n }\n}\n\nDimensionD.prototype.getWidth = function () {\n return this.width;\n};\n\nDimensionD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nDimensionD.prototype.getHeight = function () {\n return this.height;\n};\n\nDimensionD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nmodule.exports = DimensionD;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashMap() {\n this.map = {};\n this.keys = [];\n}\n\nHashMap.prototype.put = function (key, value) {\n var theId = UniqueIDGeneretor.createID(key);\n if (!this.contains(theId)) {\n this.map[theId] = value;\n this.keys.push(key);\n }\n};\n\nHashMap.prototype.contains = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[key] != null;\n};\n\nHashMap.prototype.get = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[theId];\n};\n\nHashMap.prototype.keySet = function () {\n return this.keys;\n};\n\nmodule.exports = HashMap;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashSet() {\n this.set = {};\n}\n;\n\nHashSet.prototype.add = function (obj) {\n var theId = UniqueIDGeneretor.createID(obj);\n if (!this.contains(theId)) this.set[theId] = obj;\n};\n\nHashSet.prototype.remove = function (obj) {\n delete this.set[UniqueIDGeneretor.createID(obj)];\n};\n\nHashSet.prototype.clear = function () {\n this.set = {};\n};\n\nHashSet.prototype.contains = function (obj) {\n return this.set[UniqueIDGeneretor.createID(obj)] == obj;\n};\n\nHashSet.prototype.isEmpty = function () {\n return this.size() === 0;\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\n//concats this.set to the given list\nHashSet.prototype.addAllTo = function (list) {\n var keys = Object.keys(this.set);\n var length = keys.length;\n for (var i = 0; i < length; i++) {\n list.push(this.set[keys[i]]);\n }\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\nHashSet.prototype.addAll = function (list) {\n var s = list.length;\n for (var i = 0; i < s; i++) {\n var v = list[i];\n this.add(v);\n }\n};\n\nmodule.exports = HashSet;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A classic Quicksort algorithm with Hoare's partition\n * - Works also on LinkedList objects\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar LinkedList = __webpack_require__(11);\n\nvar Quicksort = function () {\n function Quicksort(A, compareFunction) {\n _classCallCheck(this, Quicksort);\n\n if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction;\n\n var length = void 0;\n if (A instanceof LinkedList) length = A.size();else length = A.length;\n\n this._quicksort(A, 0, length - 1);\n }\n\n _createClass(Quicksort, [{\n key: '_quicksort',\n value: function _quicksort(A, p, r) {\n if (p < r) {\n var q = this._partition(A, p, r);\n this._quicksort(A, p, q);\n this._quicksort(A, q + 1, r);\n }\n }\n }, {\n key: '_partition',\n value: function _partition(A, p, r) {\n var x = this._get(A, p);\n var i = p;\n var j = r;\n while (true) {\n while (this.compareFunction(x, this._get(A, j))) {\n j--;\n }while (this.compareFunction(this._get(A, i), x)) {\n i++;\n }if (i < j) {\n this._swap(A, i, j);\n i++;\n j--;\n } else return j;\n }\n }\n }, {\n key: '_get',\n value: function _get(object, index) {\n if (object instanceof LinkedList) return object.get_object_at(index);else return object[index];\n }\n }, {\n key: '_set',\n value: function _set(object, index, value) {\n if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value;\n }\n }, {\n key: '_swap',\n value: function _swap(A, i, j) {\n var temp = this._get(A, i);\n this._set(A, i, this._get(A, j));\n this._set(A, j, temp);\n }\n }, {\n key: '_defaultCompareFunction',\n value: function _defaultCompareFunction(a, b) {\n return b > a;\n }\n }]);\n\n return Quicksort;\n}();\n\nmodule.exports = Quicksort;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string\n * sequences by S.B.Needleman and C.D.Wunsch (1970).\n *\n * Aside from the inputs, you can assign the scores for,\n * - Match: The two characters at the current index are same.\n * - Mismatch: The two characters at the current index are different.\n * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string.\n */\n\nvar NeedlemanWunsch = function () {\n function NeedlemanWunsch(sequence1, sequence2) {\n var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n\n _classCallCheck(this, NeedlemanWunsch);\n\n this.sequence1 = sequence1;\n this.sequence2 = sequence2;\n this.match_score = match_score;\n this.mismatch_penalty = mismatch_penalty;\n this.gap_penalty = gap_penalty;\n\n // Just the remove redundancy\n this.iMax = sequence1.length + 1;\n this.jMax = sequence2.length + 1;\n\n // Grid matrix of scores\n this.grid = new Array(this.iMax);\n for (var i = 0; i < this.iMax; i++) {\n this.grid[i] = new Array(this.jMax);\n\n for (var j = 0; j < this.jMax; j++) {\n this.grid[i][j] = 0;\n }\n }\n\n // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions)\n this.tracebackGrid = new Array(this.iMax);\n for (var _i = 0; _i < this.iMax; _i++) {\n this.tracebackGrid[_i] = new Array(this.jMax);\n\n for (var _j = 0; _j < this.jMax; _j++) {\n this.tracebackGrid[_i][_j] = [null, null, null];\n }\n }\n\n // The aligned sequences (return multiple possibilities)\n this.alignments = [];\n\n // Final alignment score\n this.score = -1;\n\n // Calculate scores and tracebacks\n this.computeGrids();\n }\n\n _createClass(NeedlemanWunsch, [{\n key: \"getScore\",\n value: function getScore() {\n return this.score;\n }\n }, {\n key: \"getAlignments\",\n value: function getAlignments() {\n return this.alignments;\n }\n\n // Main dynamic programming procedure\n\n }, {\n key: \"computeGrids\",\n value: function computeGrids() {\n // Fill in the first row\n for (var j = 1; j < this.jMax; j++) {\n this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;\n this.tracebackGrid[0][j] = [false, false, true];\n }\n\n // Fill in the first column\n for (var i = 1; i < this.iMax; i++) {\n this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;\n this.tracebackGrid[i][0] = [false, true, false];\n }\n\n // Fill the rest of the grid\n for (var _i2 = 1; _i2 < this.iMax; _i2++) {\n for (var _j2 = 1; _j2 < this.jMax; _j2++) {\n // Find the max score(s) among [`Diag`, `Up`, `Left`]\n var diag = void 0;\n if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;\n\n var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;\n var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;\n\n // If there exists multiple max values, capture them for multiple paths\n var maxOf = [diag, up, left];\n var indices = this.arrayAllMaxIndexes(maxOf);\n\n // Update Grids\n this.grid[_i2][_j2] = maxOf[indices[0]];\n this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];\n }\n }\n\n // Update alignment score\n this.score = this.grid[this.iMax - 1][this.jMax - 1];\n }\n\n // Gets all possible valid sequence combinations\n\n }, {\n key: \"alignmentTraceback\",\n value: function alignmentTraceback() {\n var inProcessAlignments = [];\n\n inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length],\n seq1: \"\",\n seq2: \"\"\n });\n\n while (inProcessAlignments[0]) {\n var current = inProcessAlignments[0];\n var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];\n\n if (directions[0]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n if (directions[1]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: '-' + current.seq2\n });\n }\n if (directions[2]) {\n inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1],\n seq1: '-' + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n\n if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1,\n sequence2: current.seq2\n });\n\n inProcessAlignments.shift();\n }\n\n return this.alignments;\n }\n\n // Helper Functions\n\n }, {\n key: \"getAllIndexes\",\n value: function getAllIndexes(arr, val) {\n var indexes = [],\n i = -1;\n while ((i = arr.indexOf(val, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n }\n }, {\n key: \"arrayAllMaxIndexes\",\n value: function arrayAllMaxIndexes(array) {\n return this.getAllIndexes(array, Math.max.apply(null, array));\n }\n }]);\n\n return NeedlemanWunsch;\n}();\n\nmodule.exports = NeedlemanWunsch;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar layoutBase = function layoutBase() {\n return;\n};\n\nlayoutBase.FDLayout = __webpack_require__(18);\nlayoutBase.FDLayoutConstants = __webpack_require__(7);\nlayoutBase.FDLayoutEdge = __webpack_require__(19);\nlayoutBase.FDLayoutNode = __webpack_require__(20);\nlayoutBase.DimensionD = __webpack_require__(21);\nlayoutBase.HashMap = __webpack_require__(22);\nlayoutBase.HashSet = __webpack_require__(23);\nlayoutBase.IGeometry = __webpack_require__(8);\nlayoutBase.IMath = __webpack_require__(9);\nlayoutBase.Integer = __webpack_require__(10);\nlayoutBase.Point = __webpack_require__(12);\nlayoutBase.PointD = __webpack_require__(4);\nlayoutBase.RandomSeed = __webpack_require__(16);\nlayoutBase.RectangleD = __webpack_require__(13);\nlayoutBase.Transform = __webpack_require__(17);\nlayoutBase.UniqueIDGeneretor = __webpack_require__(14);\nlayoutBase.Quicksort = __webpack_require__(24);\nlayoutBase.LinkedList = __webpack_require__(11);\nlayoutBase.LGraphObject = __webpack_require__(2);\nlayoutBase.LGraph = __webpack_require__(5);\nlayoutBase.LEdge = __webpack_require__(1);\nlayoutBase.LGraphManager = __webpack_require__(6);\nlayoutBase.LNode = __webpack_require__(3);\nlayoutBase.Layout = __webpack_require__(15);\nlayoutBase.LayoutConstants = __webpack_require__(0);\nlayoutBase.NeedlemanWunsch = __webpack_require__(25);\n\nmodule.exports = layoutBase;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Emitter() {\n this.listeners = [];\n}\n\nvar p = Emitter.prototype;\n\np.addListener = function (event, callback) {\n this.listeners.push({\n event: event,\n callback: callback\n });\n};\n\np.removeListener = function (event, callback) {\n for (var i = this.listeners.length; i >= 0; i--) {\n var l = this.listeners[i];\n\n if (l.event === event && l.callback === callback) {\n this.listeners.splice(i, 1);\n }\n }\n};\n\np.emit = function (event, data) {\n for (var i = 0; i < this.listeners.length; i++) {\n var l = this.listeners[i];\n\n if (event === l.event) {\n l.callback(data);\n }\n }\n};\n\nmodule.exports = Emitter;\n\n/***/ })\n/******/ ]);\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph = __webpack_require__(0).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphManager = __webpack_require__(0).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutNode = __webpack_require__(0).FDLayoutNode;\nvar IMath = __webpack_require__(0).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // a simple node, just move it\n if (this.child == null) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // an empty compound node, again just move it\n else if (this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // non-empty compound node, propogate movement to children as well\n else {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.moveBy(dX, dY);\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayout = __webpack_require__(0).FDLayout;\nvar CoSEGraphManager = __webpack_require__(4);\nvar CoSEGraph = __webpack_require__(3);\nvar CoSENode = __webpack_require__(5);\nvar CoSEEdge = __webpack_require__(2);\nvar CoSEConstants = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(0).LayoutConstants;\nvar Point = __webpack_require__(0).Point;\nvar PointD = __webpack_require__(0).PointD;\nvar Layout = __webpack_require__(0).Layout;\nvar Integer = __webpack_require__(0).Integer;\nvar IGeometry = __webpack_require__(0).IGeometry;\nvar LGraph = __webpack_require__(0).LGraph;\nvar Transform = __webpack_require__(0).Transform;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;\n this.coolingAdjuster = 1;\n }\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n this.initSpringEmbedder();\n this.runSpringEmbedder();\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n 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);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) {\n x += compoundHorizontalMargin;\n y += compoundVerticalMargin;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding\n };\n\n // Sort the nodes in ascending order of their areas\n nodes.sort(function (n1, n2) {\n if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1;\n if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1;\n return 0;\n });\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(0);\ncoseBase.CoSEConstants = __webpack_require__(1);\ncoseBase.CoSEEdge = __webpack_require__(2);\ncoseBase.CoSEGraph = __webpack_require__(3);\ncoseBase.CoSEGraphManager = __webpack_require__(4);\ncoseBase.CoSELayout = __webpack_require__(6);\ncoseBase.CoSENode = __webpack_require__(5);\n\nmodule.exports = coseBase;\n\n/***/ })\n/******/ ]);\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cose-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cose-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeCoseBilkent\"] = factory(require(\"cose-base\"));\n\telse\n\t\troot[\"cytoscapeCoseBilkent\"] = factory(root[\"coseBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;\nvar FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;\nvar CoSEConstants = __webpack_require__(0).CoSEConstants;\nvar CoSELayout = __webpack_require__(0).CoSELayout;\nvar CoSENode = __webpack_require__(0).CoSENode;\nvar PointD = __webpack_require__(0).layoutBase.PointD;\nvar DimensionD = __webpack_require__(0).layoutBase.DimensionD;\n\nvar defaults = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // 'draft', 'default' or 'proof\" \n // - 'draft' fast cooling rate \n // - 'default' moderate cooling rate \n // - \"proof\" slow cooling rate\n quality: 'default',\n // include labels in node dimensions\n nodeDimensionsIncludeLabels: false,\n // number of ticks per frame; higher is faster but more jerky\n refresh: 30,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 10,\n // Whether to enable incremental mode\n randomize: true,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: 4500,\n // Ideal edge (non nested) length\n idealEdgeLength: 50,\n // Divisor to compute edge forces\n edgeElasticity: 0.45,\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 0.1,\n // Gravity force (constant)\n gravity: 0.25,\n // Maximum number of iterations to perform\n numIter: 2500,\n // For enabling tiling\n tile: true,\n // Type of layout animation. The option set is {'during', 'end', false}\n animate: 'end',\n // Duration for animate:end\n animationDuration: 500,\n // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingVertical: 10,\n // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingHorizontal: 10,\n // Gravity range (constant) for compounds\n gravityRangeCompound: 1.5,\n // Gravity force (constant) for compounds\n gravityCompound: 1.0,\n // Gravity range (constant)\n gravityRange: 3.8,\n // Initial cooling factor for incremental layout\n initialEnergyOnIncremental: 0.5\n};\n\nfunction extend(defaults, options) {\n var obj = {};\n\n for (var i in defaults) {\n obj[i] = defaults[i];\n }\n\n for (var i in options) {\n obj[i] = options[i];\n }\n\n return obj;\n};\n\nfunction _CoSELayout(_options) {\n this.options = extend(defaults, _options);\n getUserOptions(this.options);\n}\n\nvar getUserOptions = function getUserOptions(options) {\n if (options.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion;\n if (options.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;\n if (options.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity;\n if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;\n if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;\n if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;\n if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;\n if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;\n if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;\n if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;\n\n if (options.quality == 'draft') LayoutConstants.QUALITY = 0;else if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 1;\n\n CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;\n CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;\n CoSEConstants.TILE = options.tile;\n CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;\n CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;\n};\n\n_CoSELayout.prototype.run = function () {\n var ready;\n var frameId;\n var options = this.options;\n var idToLNode = this.idToLNode = {};\n var layout = this.layout = new CoSELayout();\n var self = this;\n\n self.stopped = false;\n\n this.cy = this.options.cy;\n\n this.cy.trigger({ type: 'layoutstart', layout: this });\n\n var gm = layout.newGraphManager();\n this.gm = gm;\n\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n\n this.root = gm.addRoot();\n this.processChildrenList(this.root, this.getTopMostNodes(nodes), layout);\n\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var sourceNode = this.idToLNode[edge.data(\"source\")];\n var targetNode = this.idToLNode[edge.data(\"target\")];\n if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {\n var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);\n e1.id = edge.id();\n }\n }\n\n var getPositions = function getPositions(ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var theId = ele.data('id');\n var lNode = self.idToLNode[theId];\n\n return {\n x: lNode.getRect().getCenterX(),\n y: lNode.getRect().getCenterY()\n };\n };\n\n /*\n * Reposition nodes in iterations animatedly\n */\n var iterateAnimated = function iterateAnimated() {\n // Thigs to perform after nodes are repositioned on screen\n var afterReposition = function afterReposition() {\n if (options.fit) {\n options.cy.fit(options.eles, options.padding);\n }\n\n if (!ready) {\n ready = true;\n self.cy.one('layoutready', options.ready);\n self.cy.trigger({ type: 'layoutready', layout: self });\n }\n };\n\n var ticksPerFrame = self.options.refresh;\n var isDone;\n\n for (var i = 0; i < ticksPerFrame && !isDone; i++) {\n isDone = self.stopped || self.layout.tick();\n }\n\n // If layout is done\n if (isDone) {\n // If the layout is not a sublayout and it is successful perform post layout.\n if (layout.checkLayoutSuccess() && !layout.isSubLayout) {\n layout.doPostLayout();\n }\n\n // If layout has a tilingPostLayout function property call it.\n if (layout.tilingPostLayout) {\n layout.tilingPostLayout();\n }\n\n layout.isLayoutFinished = true;\n\n self.options.eles.nodes().positions(getPositions);\n\n afterReposition();\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n self.cy.one('layoutstop', self.options.stop);\n self.cy.trigger({ type: 'layoutstop', layout: self });\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n\n ready = false;\n return;\n }\n\n var animationData = self.layout.getPositionsData(); // Get positions of layout nodes note that all nodes may not be layout nodes because of tiling\n\n // Position nodes, for the nodes whose id does not included in data (because they are removed from their parents and included in dummy compounds)\n // use position of their ancestors or dummy ancestors\n options.eles.nodes().positions(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n // If ele is a compound node, then its position will be defined by its children\n if (!ele.isParent()) {\n var theId = ele.id();\n var pNode = animationData[theId];\n var temp = ele;\n // If pNode is undefined search until finding position data of its first ancestor (It may be dummy as well)\n while (pNode == null) {\n pNode = animationData[temp.data('parent')] || animationData['DummyCompound_' + temp.data('parent')];\n animationData[theId] = pNode;\n temp = temp.parent()[0];\n if (temp == undefined) {\n break;\n }\n }\n if (pNode != null) {\n return {\n x: pNode.x,\n y: pNode.y\n };\n } else {\n return {\n x: ele.position('x'),\n y: ele.position('y')\n };\n }\n }\n });\n\n afterReposition();\n\n frameId = requestAnimationFrame(iterateAnimated);\n };\n\n /*\n * Listen 'layoutstarted' event and start animated iteration if animate option is 'during'\n */\n layout.addListener('layoutstarted', function () {\n if (self.options.animate === 'during') {\n frameId = requestAnimationFrame(iterateAnimated);\n }\n });\n\n layout.runLayout(); // Run cose layout\n\n /*\n * If animate option is not 'during' ('end' or false) perform these here (If it is 'during' similar things are already performed)\n */\n if (this.options.animate !== \"during\") {\n self.options.eles.nodes().not(\":parent\").layoutPositions(self, self.options, getPositions); // Use layout positions to reposition the nodes it considers the options parameter\n ready = false;\n }\n\n return this; // chaining\n};\n\n//Get the top most ones of a list of nodes\n_CoSELayout.prototype.getTopMostNodes = function (nodes) {\n var nodesMap = {};\n for (var i = 0; i < nodes.length; i++) {\n nodesMap[nodes[i].id()] = true;\n }\n var roots = nodes.filter(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var parent = ele.parent()[0];\n while (parent != null) {\n if (nodesMap[parent.id()]) {\n return false;\n }\n parent = parent.parent()[0];\n }\n return true;\n });\n\n return roots;\n};\n\n_CoSELayout.prototype.processChildrenList = function (parent, children, layout) {\n var size = children.length;\n for (var i = 0; i < size; i++) {\n var theChild = children[i];\n var children_of_children = theChild.children();\n var theNode;\n\n var dimensions = theChild.layoutDimensions({\n nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels\n });\n\n if (theChild.outerWidth() != null && theChild.outerHeight() != null) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n } else {\n theNode = parent.add(new CoSENode(this.graphManager));\n }\n // Attach id to the layout node\n theNode.id = theChild.data(\"id\");\n // Attach the paddings of cy node to layout node\n theNode.paddingLeft = parseInt(theChild.css('padding'));\n theNode.paddingTop = parseInt(theChild.css('padding'));\n theNode.paddingRight = parseInt(theChild.css('padding'));\n theNode.paddingBottom = parseInt(theChild.css('padding'));\n\n //Attach the label properties to compound if labels will be included in node dimensions \n if (this.options.nodeDimensionsIncludeLabels) {\n if (theChild.isParent()) {\n var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;\n var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;\n var labelPos = theChild.css(\"text-halign\");\n theNode.labelWidth = labelWidth;\n theNode.labelHeight = labelHeight;\n theNode.labelPos = labelPos;\n }\n }\n\n // Map the layout node\n this.idToLNode[theChild.data(\"id\")] = theNode;\n\n if (isNaN(theNode.rect.x)) {\n theNode.rect.x = 0;\n }\n\n if (isNaN(theNode.rect.y)) {\n theNode.rect.y = 0;\n }\n\n if (children_of_children != null && children_of_children.length > 0) {\n var theNewGraph;\n theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);\n this.processChildrenList(theNewGraph, children_of_children, layout);\n }\n }\n};\n\n/**\n * @brief : called on continuous layouts to stop them before they finish\n */\n_CoSELayout.prototype.stop = function () {\n this.stopped = true;\n\n return this; // chaining\n};\n\nvar register = function register(cytoscape) {\n // var Layout = getLayout( cytoscape );\n\n cytoscape('layout', 'cose-bilkent', _CoSELayout);\n};\n\n// auto reg for globals\nif (typeof cytoscape !== 'undefined') {\n register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ })\n/******/ ]);\n});","import { d as sanitizeText$1, c as getConfig, l as log, p as setupGraphViewbox } from \"./mermaid-b0ad2de1.js\";\nimport { select } from \"d3\";\nimport { c as createText } from \"./createText-3df630b5.js\";\nimport cytoscape from \"cytoscape/dist/cytoscape.umd.js\";\nimport coseBilkent from \"cytoscape-cose-bilkent\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 16:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 17:\n case 21:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 18:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 19:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 20:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 25:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 26:\n this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\n parseError: function parseError2(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError2(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n case 1:\n return 8;\n case 2:\n this.begin(\"CLASS\");\n break;\n case 3:\n this.popState();\n return 16;\n case 4:\n this.popState();\n break;\n case 5:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 6:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n case 7:\n return 7;\n case 8:\n return 15;\n case 9:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 10:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 19;\n case 11:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 19;\n case 12:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 19;\n case 13:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 19;\n case 14:\n this.begin(\"NODE\");\n return 19;\n case 15:\n this.begin(\"NODE\");\n return 19;\n case 16:\n this.begin(\"NODE\");\n return 19;\n case 17:\n this.begin(\"NODE\");\n return 19;\n case 18:\n return 13;\n case 19:\n return 22;\n case 20:\n return 11;\n case 21:\n this.begin(\"NSTR2\");\n break;\n case 22:\n return \"NODE_DESCR\";\n case 23:\n this.popState();\n break;\n case 24:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 25:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 26:\n this.popState();\n break;\n case 27:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n case 28:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n case 29:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n case 30:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 31:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 32:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 35:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n case 36:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n }\n },\n 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],\n conditions: { \"CLASS\": { \"rules\": [3, 4], \"inclusive\": false }, \"ICON\": { \"rules\": [8, 9], \"inclusive\": false }, \"NSTR2\": { \"rules\": [22, 23], \"inclusive\": false }, \"NSTR\": { \"rules\": [25, 26], \"inclusive\": false }, \"NODE\": { \"rules\": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst mindmapParser = parser;\nconst sanitizeText = (text) => sanitizeText$1(text, getConfig());\nlet nodes = [];\nlet cnt = 0;\nlet elements = {};\nconst clear = () => {\n nodes = [];\n cnt = 0;\n elements = {};\n};\nconst getParent = function(level) {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level < level) {\n return nodes[i];\n }\n }\n return null;\n};\nconst getMindmap = () => {\n return nodes.length > 0 ? nodes[0] : null;\n};\nconst addNode = (level, id, descr, type) => {\n log.info(\"addNode\", level, id, descr, type);\n const conf = getConfig();\n const node = {\n id: cnt++,\n nodeId: sanitizeText(id),\n level,\n descr: sanitizeText(descr),\n type,\n children: [],\n width: getConfig().mindmap.maxNodeWidth\n };\n switch (node.type) {\n case nodeType.ROUNDED_RECT:\n node.padding = 2 * conf.mindmap.padding;\n break;\n case nodeType.RECT:\n node.padding = 2 * conf.mindmap.padding;\n break;\n case nodeType.HEXAGON:\n node.padding = 2 * conf.mindmap.padding;\n break;\n default:\n node.padding = conf.mindmap.padding;\n }\n const parent = getParent(level);\n if (parent) {\n parent.children.push(node);\n nodes.push(node);\n } else {\n if (nodes.length === 0) {\n nodes.push(node);\n } else {\n let error = new Error(\n 'There can be only one root. No parent could be found for (\"' + node.descr + '\")'\n );\n error.hash = {\n text: \"branch \" + name,\n token: \"branch \" + name,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"checkout ' + name + '\"']\n };\n throw error;\n }\n }\n};\nconst nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nconst getType = (startStr, endStr) => {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case \"((\":\n return nodeType.CIRCLE;\n case \")\":\n return nodeType.CLOUD;\n case \"))\":\n return nodeType.BANG;\n case \"{{\":\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n};\nconst setElementForId = (id, element) => {\n elements[id] = element;\n};\nconst decorateNode = (decoration) => {\n const node = nodes[nodes.length - 1];\n if (decoration && decoration.icon) {\n node.icon = sanitizeText(decoration.icon);\n }\n if (decoration && decoration.class) {\n node.class = sanitizeText(decoration.class);\n }\n};\nconst type2Str = (type) => {\n switch (type) {\n case nodeType.DEFAULT:\n return \"no-border\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case nodeType.CIRCLE:\n return \"circle\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexgon\";\n default:\n return \"no-border\";\n }\n};\nlet parseError;\nconst setErrorHandler = (handler) => {\n parseError = handler;\n};\nconst getLogger = () => log;\nconst getNodeById = (id) => nodes[id];\nconst getElementById = (id) => elements[id];\nconst mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addNode,\n clear,\n decorateNode,\n getElementById,\n getLogger,\n getMindmap,\n getNodeById,\n getType,\n nodeType,\n get parseError() {\n return parseError;\n },\n sanitizeText,\n setElementForId,\n setErrorHandler,\n type2Str\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst rectBkg = function(elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"height\", node.height).attr(\"width\", node.width);\n};\nconst cloudBkg = function(elem, node) {\n const w = node.width;\n const h = node.height;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n\n H0 V0 Z`\n );\n};\nconst bangBkg = function(elem, node) {\n const w = node.width;\n const h = node.height;\n const r = 0.15 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}\n\n a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}\n a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}\n a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}\n\n H0 V0 Z`\n );\n};\nconst circleBkg = function(elem, node) {\n elem.append(\"circle\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"r\", node.width / 2);\n};\nfunction insertPolygonShape(parent, w, h, points, node) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + (node.width - w) / 2 + \", \" + h + \")\");\n}\nconst hexagonBkg = function(elem, node) {\n const h = node.height;\n const f = 4;\n const m = h / f;\n const w = node.width - node.padding + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n insertPolygonShape(elem, w, h, points, node);\n};\nconst roundedRectBkg = function(elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"height\", node.height).attr(\"rx\", node.padding).attr(\"ry\", node.padding).attr(\"width\", node.width);\n};\nconst drawNode = function(elem, node, fullSection, conf) {\n const htmlLabels = conf.htmlLabels;\n const section = fullSection % (MAX_SECTIONS - 1);\n const nodeElem = elem.append(\"g\");\n node.section = section;\n let sectionClass = \"section-\" + section;\n if (section < 0) {\n sectionClass += \" section-root\";\n }\n nodeElem.attr(\"class\", (node.class ? node.class + \" \" : \"\") + \"mindmap-node \" + sectionClass);\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const description = node.descr.replace(/()/g, \"\\n\");\n createText(textElem, description, {\n useHtmlLabels: htmlLabels,\n width: node.width,\n classes: \"mindmap-node-label\"\n });\n if (!htmlLabels) {\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n }\n const bbox = textElem.node().getBBox();\n const fontSize = conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.width = bbox.width + 2 * node.padding;\n if (node.icon) {\n if (node.type === nodeType.CIRCLE) {\n node.height += 50;\n node.width += 50;\n const icon = nodeElem.append(\"foreignObject\").attr(\"height\", \"50px\").attr(\"width\", node.width).attr(\"style\", \"text-align: center;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + node.width / 2 + \", \" + (node.height / 2 - 1.5 * node.padding) + \")\"\n );\n } else {\n node.width += 50;\n const orgHeight = node.height;\n node.height = Math.max(orgHeight, 60);\n const heightDiff = Math.abs(node.height - orgHeight);\n const icon = nodeElem.append(\"foreignObject\").attr(\"width\", \"60px\").attr(\"height\", node.height).attr(\"style\", \"text-align: center;margin-top:\" + heightDiff / 2 + \"px;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + (25 + node.width / 2) + \", \" + (heightDiff / 2 + node.padding / 2) + \")\"\n );\n }\n } else {\n if (!htmlLabels) {\n const dx = node.width / 2;\n const dy = node.padding / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n } else {\n const dx = (node.width - bbox.width) / 2;\n const dy = (node.height - bbox.height) / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n }\n }\n switch (node.type) {\n case nodeType.DEFAULT:\n defaultBkg(bkgElem, node, section);\n break;\n case nodeType.ROUNDED_RECT:\n roundedRectBkg(bkgElem, node);\n break;\n case nodeType.RECT:\n rectBkg(bkgElem, node);\n break;\n case nodeType.CIRCLE:\n bkgElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + +node.height / 2 + \")\");\n circleBkg(bkgElem, node);\n break;\n case nodeType.CLOUD:\n cloudBkg(bkgElem, node);\n break;\n case nodeType.BANG:\n bangBkg(bkgElem, node);\n break;\n case nodeType.HEXAGON:\n hexagonBkg(bkgElem, node);\n break;\n }\n setElementForId(node.id, nodeElem);\n return node.height;\n};\nconst drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) {\n const section = fullSection % (MAX_SECTIONS - 1);\n const sx = parent.x + parent.width / 2;\n const sy = parent.y + parent.height / 2;\n const ex = mindmap.x + mindmap.width / 2;\n const ey = mindmap.y + mindmap.height / 2;\n const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;\n const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;\n const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;\n const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;\n edgesElem.append(\"path\").attr(\n \"d\",\n parent.direction === \"TB\" || parent.direction === \"BT\" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`\n ).attr(\"class\", \"edge section-edge-\" + section + \" edge-depth-\" + depth);\n};\nconst positionNode = function(node) {\n const nodeElem = getElementById(node.id);\n const x = node.x || 0;\n const y = node.y || 0;\n nodeElem.attr(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n};\nconst svgDraw = { drawNode, positionNode, drawEdge };\ncytoscape.use(coseBilkent);\nfunction drawNodes(svg, mindmap, section, conf) {\n svgDraw.drawNode(svg, mindmap, section, conf);\n if (mindmap.children) {\n mindmap.children.forEach((child, index) => {\n drawNodes(svg, child, section < 0 ? index : section, conf);\n });\n }\n}\nfunction drawEdges(edgesEl, cy) {\n cy.edges().map((edge, id) => {\n const data = edge.data();\n if (edge[0]._private.bodyBounds) {\n const bounds = edge[0]._private.rscratch;\n log.trace(\"Edge: \", id, data);\n edgesEl.insert(\"path\").attr(\n \"d\",\n `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `\n ).attr(\"class\", \"edge section-edge-\" + data.section + \" edge-depth-\" + data.depth);\n }\n });\n}\nfunction addNodes(mindmap, cy, conf, level) {\n cy.add({\n group: \"nodes\",\n data: {\n id: mindmap.id,\n labelText: mindmap.descr,\n height: mindmap.height,\n width: mindmap.width,\n level,\n nodeId: mindmap.id,\n padding: mindmap.padding,\n type: mindmap.type\n },\n position: {\n x: mindmap.x,\n y: mindmap.y\n }\n });\n if (mindmap.children) {\n mindmap.children.forEach((child) => {\n addNodes(child, cy, conf, level + 1);\n cy.add({\n group: \"edges\",\n data: {\n id: `${mindmap.id}_${child.id}`,\n source: mindmap.id,\n target: child.id,\n depth: level,\n section: child.section\n }\n });\n });\n }\n}\nfunction layoutMindmap(node, conf) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n // container to render in\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"bezier\"\n }\n }\n ]\n });\n renderEl.remove();\n addNodes(node, cy, conf, 0);\n cy.nodes().forEach(function(n) {\n n.layoutDimensions = () => {\n const data = n.data();\n return { w: data.width, h: data.height };\n };\n });\n cy.layout({\n name: \"cose-bilkent\",\n quality: \"proof\",\n // headless: true,\n styleEnabled: false,\n animate: false\n }).run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\nfunction positionNodes(cy) {\n cy.nodes().map((node, id) => {\n const data = node.data();\n data.x = node.position().x;\n data.y = node.position().y;\n svgDraw.positionNode(data);\n const el = getElementById(data.nodeId);\n log.info(\"Id:\", id, \"Position: (\", node.position().x, \", \", node.position().y, \")\", data);\n el.attr(\n \"transform\",\n `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`\n );\n el.attr(\"attr\", `apa-${id})`);\n });\n}\nconst draw = async (text, id, version, diagObj) => {\n const conf = getConfig();\n conf.htmlLabels = false;\n diagObj.db.clear();\n diagObj.parser.parse(text);\n log.debug(\"Rendering mindmap diagram\\n\" + text, diagObj.parser);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const mm = diagObj.db.getMindmap();\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"mindmap-edges\");\n const nodesElem = svg.append(\"g\");\n nodesElem.attr(\"class\", \"mindmap-nodes\");\n drawNodes(nodesElem, mm, -1, conf);\n const cy = await layoutMindmap(mm, conf);\n drawEdges(edgesElem, cy);\n positionNodes(cy);\n setupGraphViewbox(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);\n};\nconst mindmapRenderer = {\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`;\nconst mindmapStyles = getStyles;\nconst diagram = {\n db: mindmapDb,\n renderer: mindmapRenderer,\n parser: mindmapParser,\n styles: mindmapStyles\n};\nexport {\n diagram\n};\n"],"names":["global","factory","module","this","_typeof","obj","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","_defineProperty$1","key","value","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","err","o","minLen","_arrayLikeToArray","n","len","arr2","_window","navigator","typeofstr","typeofobj","typeoffn","typeofhtmlele","instanceStr","fn$6","string","array","elementOrCollection","plainObject","object","number$1","integer","htmlElement","element","collection","core","stylesheet","event","emptyString","domElement","boundingBox","promise","ms","memoize$1","fn","keyFn","args","memoizedFn","self","ret","k","cache","camel2dash","str","v","dash2camel","prependCamel","prefix","capitalize","number","rgba","rgbaNoBackRefs","hsla","hslaNoBackRefs","hex3","hex6","ascending","a","b","descending","extend","tgt","keys","j","hex2tuple","hex","shortHex","r","g","base","hsl2tuple","hsl","h","s","l","hue2rgb","p","q","t","m","rgb2tuple","rgb","isPct","channel","atLeastOneIsPct","allArePct","alpha","colorname2tuple","color","colors","color2tuple","setMap","options","getMap","isObject","type","isObject_1","commonjsGlobal","createCommonjsModule","freeGlobal","_freeGlobal","freeSelf","root","_root","now","now_1","reWhitespace","trimmedEndIndex","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","Symbol$1","_Symbol","objectProto$5","hasOwnProperty$4","nativeObjectToString$1","symToStringTag$1","getRawTag","isOwn","tag","unmasked","result","_getRawTag","objectProto$4","nativeObjectToString","objectToString","_objectToString","nullTag","undefinedTag","symToStringTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT$1","nativeMax","nativeMin","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","performance","pnow","raf","requestAnimationFrame","performanceNow","DEFAULT_HASH_SEED","K","DEFAULT_HASH_SEED_ALT","hashIterableInts","iterator","seed","hash","entry","hashInt","num","hashIntAlt","combineHashes","hash1","hash2","combineHashesArray","hashes","hashArrays","hashes1","hashes2","hashIntsArray","ints","length","hashString","hashStrings","hashStringsArray","strs","warningsEnabled","warnSupported","traceSupported","MAX_INT$1","trueify","falsify","zeroify","noop$1","error","msg","warnings","enabled","warn","clone","copy","copyArray$1","uuid","_staticEmptyObject","staticEmptyObject","defaults$g","_defaults","opts","filledOpts","optVal","removeFromArray","ele","oneCopy","clearArray","push","otherArr","el","getPrefixedProperty","propName","setPrefixedProperty","ObjectMap","val","Map$2","undef","ObjectSet","arrayOrObjectSet","_this","callback","Set$1","Element","cy","params","restore","group","_p","rpos","pan","zoom","classes","cls","bypass","defineSearch","roots","directed","Q","connectedNodes","connectedBy","id2depth","V","found","_this$byGroup","nodes","edges","vi","viId","_loop","vId","depth","prevEdge","src","prevNode","vwEdges","e","_i2","w","wId","_ret","connectedEles","node","edge","elesfn$v","heap$1","exports","Heap","defaultCmp","floor","heapify","heappop","heappush","heappushpop","heapreplace","insort","min","nlargest","nsmallest","updateItem","_siftdown","_siftup","x","y","lo","hi","cmp","mid","item","lastelt","returnitem","_ref","_len","_ref1","_results","_results1","_j","pos","elem","los","startpos","newitem","parent","parentpos","childpos","endpos","rightpos","heap","dijkstraDefaults","elesfn$u","_dijkstraDefaults","weight","eles","weightFn","source","dist","prev","knownDist","getDist","setDist","d","distBetween","u","uvs","smallestDistance","smallestEdge","_weight","smalletsDist","uid","neighbors","vid","vDist","alt","S","elesfn$t","numNodes","forest","A","findSetIndex","setUIndex","setVIndex","setU","setV","aStarDefaults","elesfn$s","_aStarDefaults","goal","heuristic","sid","tid","gScore","fScore","closedSetIds","openSet","openSetIds","cameFrom","cameFromEdge","addToOpenSet","id","cMin","cMinId","popFromOpenSet","isInOpenSet","steps","path","pathNode","pathNodeId","pathEdge","wSrc","wTgt","wid","tempScore","floydWarshallDefaults","elesfn$r","_floydWarshallDefault","N","Nsq","indexOf","atIndex","next","edgeNext","st","ts","ik","ij","kj","getArgEle","indexOfArgEle","res","from","to","fromNode","bellmanFordDefaults","elesfn$q","_bellmanFordDefaults","infoMap","hasNegativeWeightCycle","negativeWeightCycles","numEdges","getInfo","getNodeFromTo","distanceTo","pathTo","thisStart","end","_getInfo","pred","info","replacedEdge","checkForEdgeReplacement","node1","node2","info1","info2","srcInfo","tgtInfo","negativeWeightCycleIds","_edge","_src","_tgt","_weight2","srcDist","tgtDist","negativeNodes","numNegativeNodes","start","cycle","_node","smallestId","smallestIndex","c","cycleId","sqrt2","collapse","edgeIndex","nodeMap","remainingEdges","edgeInfo","sourceIn","targetIn","partition1","partition2","newEdges","contractUntil","metaNodeMap","size","sizeLimit","elesfn$p","numIter","stopSize","edgeIndexes","minCutSize","minCutEdgeIndexes","minCutNodeMap","metaNodeMap2","copyNodesMap","_i3","iter","_i4","edgesState","edgesState2","res1","res2","cut","witnessNodePartition","_i5","partitionId","constructComponent","subset","component","components","copyPosition","modelToRenderedPosition","renderedToModelPosition","array2point","begin","max","mean","total","median","sort","includeHoles","off","deg2rad","deg","getAngleFromDisp","dispX","dispY","log2","signum","p1","p2","sqdist","dx","dy","inPlaceSumNormalize","qbezierAt","p0","qbezierPtAt","lineAt","vec","vecDist","normVec","bound","makeBoundingBox","bb","copyBoundingBox","clearBoundingBox","updateBoundingBox","bb1","bb2","expandBoundingBoxByPoint","expandBoundingBox","padding","expandBoundingBoxSides","top","right","bottom","left","_padding","assignBoundingBox","boundingBoxesIntersect","inBoundingBox","pointInBoundingBox","pt","boundingBoxInBoundingBox","roundRectangleIntersectLine","nodeX","nodeY","width","height","cornerRadius","getRoundRectangleRadius","halfWidth","halfHeight","straightLineIntersections","topStartX","topStartY","topEndX","topEndY","finiteLinesIntersect","rightStartX","rightStartY","rightEndX","rightEndY","bottomStartX","bottomStartY","bottomEndX","bottomEndY","leftStartX","leftStartY","leftEndX","leftEndY","arcIntersections","topLeftCenterX","topLeftCenterY","intersectLineCircle","topRightCenterX","topRightCenterY","bottomRightCenterX","bottomRightCenterY","bottomLeftCenterX","bottomLeftCenterY","inLineVicinity","lx1","ly1","lx2","ly2","tolerance","x1","x2","y1","y2","inBezierVicinity","x3","y3","solveQuadratic","sqrtR","denom","root1","root2","solveCubic","epsilon","discriminant","dum1","term1","r13","sqdistToQuadraticBezier","zeroThreshold","minDistanceSquared","curX","curY","distSquared","sqdistToFiniteLine","offset","line","lineSq","hypSq","dotProduct","adjSq","pointInsidePolygonPoints","points","up","pointInsidePolygon","basePoints","centerX","centerY","direction","transformedPoints","angle","cos","sin","expandedLineSet","expandPolygon","joinLines","pointInsideRoundPolygon","cutPolygonPoints","halfW","halfH","getRoundPolygonRadius","squaredCornerRadius","sourceUv","destUv","px","py","cosTheta","cp0x","cp0y","cp1x","cp1y","orthx","orthy","cosAlpha","cx","squaredDistance","lineSet","vertices","currentLineStartX","currentLineStartY","currentLineEndX","currentLineEndY","nextLineStartX","nextLineStartY","nextLineEndX","nextLineEndY","intersection","pad","currentPointX","currentPointY","nextPointX","nextPointY","offsetX","offsetY","offsetLength","normalizedOffsetX","normalizedOffsetY","intersectLineEllipse","ellipseWradius","ellipseHradius","newLength","lenProportion","checkInEllipse","radius","f","t1","t2","tMin","tMax","inRangeParams","nearIntersectionX","nearIntersectionY","farIntersectionX","farIntersectionY","midOfThree","x4","y4","infiniteLines","dx13","dx21","dx43","dy13","dy21","dy43","ua_t","ub_t","u_b","ua","ub","flptThreshold","_min","_max","polygonIntersectLine","intersections","doTransform","currentX","currentY","nextX","nextY","roundPolygonIntersectLine","lines","lowestIntersection","lowestSquaredDistance","shortenIntersection","amount","disp","lenRatio","generateUnitNgonPointsFitToSquare","sides","rotationRadians","generateUnitNgonPoints","fitPolygonToSquare","minX","minY","maxX","maxY","sx","sy","_i6","increment","startAngle","currentAngle","getCutRectangleCornerLength","bezierPtsToQuadCoeff","getBarrelCurveConstants","pageRankDefaults","elesfn$o","_pageRankDefaults","dampingFactor","precision","iterations","numNodesSqd","matrix","columnSum","additionalProb","srcId","tgtId","_n2","_n3","eigenvector","temp","previous","_j2","_n4","diff","_i7","delta","defaults$f","elesfn$n","indegrees","outdegrees","maxIndegree","maxOutdegree","_currDegree","degrees","maxDegree","currDegree","callingEles","_options","incoming","outgoing","k_in","k_out","s_in","s_out","connEdges","defaults$e","elesfn$m","harmonic","closenesses","maxCloseness","fw","currCloseness","node_i","_defaults2","dijkstra","totalDistance","defaults$d","elesfn$l","weighted","_C","C","P","_vid","_v","vEle","edgeWeight","_w","_w2","_v2","defaults$c","setOptions$3","getSimilarity$1","attributes","addLoops","M","normalize","sum","col","row","_row","mmult","B","expand","expandFactor","_M","inflate","inflateFactor","hasConverged","n2","roundFactor","v1","v2","assign$2","clusters","cluster","isDuplicate","c1","c2","removeDuplicates","markovClustering","id2position","sim","isStillMoving","markovClustering$1","identity","absDiff","addAbsDiff","addSquaredDiff","sqrt","maxAbsDiff","currentMax","getDistance","getP","getQ","init","visit","post","dim","distances","clusteringDistance","method","nodeP","nodeQ","impl","defaults$b","setOptions$2","centroid","mode","noNodeP","randomCentroids","ndim","centroids","classify","distance","buildCluster","assignment","haveValuesConverged","sensitivityThreshold","haveMatricesConverged","seenBefore","medoids","randomMedoids","findCost","potentialNewMedoid","cost","kMeans","newCentroid","kMedoids","curCost","minCosts","updateCentroids","U","numerator","denominator","_c","updateMembership","_U","pow","assign$1","_c2","_c3","fuzzyCMeans","kClustering","defaults$a","linkageAliases","setOptions$1","preferredAlias","mergeClosest","dists","mins","minKey","attrs","n1","_dist","merged","cur","key1","key2","getAllChildren","buildDendrogram","leftStr","rightStr","buildClustersFromTree","leaves","hierarchicalClustering","retClusters","hierarchicalClustering$1","defaults$9","setOptions","dmp","pref","validPrefs","getSimilarity","attr","getPreference","preference","findExemplars","R","indices","assignClusters","exemplars","ei","_ei","assign","ii","maxI","maxSum","affinityPropagation","old","Rp","se","_i8","max2","AS","_i9","_j3","_j4","_i10","E","_sum","_i11","_j5","exemplarsIndices","clusterIndices","_i12","clusterIndex","affinityPropagation$1","hierholzerDefaults","elesfn$k","_hierholzerDefaults","dflag","oddIn","oddOut","startVertex","ind","outd","d1","d2","walk","currentNode","subtour","adj","adjTail","adjHead","trail","hopcroftTarjanBiconnected","edgeCount","stack","visitedEdges","buildComponent","cutset","nodeId","connectedEdges","biconnectedSearch","sourceId","targetId","otherNodeId","edgeId","cutVertices","hopcroftTarjanBiconnected$1","tarjanStronglyConnected","stronglyConnectedSearch","sourceNodeId","targetNodeId","componentNodes","componentEdges","tarjanStronglyConnected$1","elesfn$j","STATE_PENDING","STATE_FULFILLED","STATE_REJECTED","api","executor","deliver","onFulfilled","onRejected","curr","resolver","execute","state","name","execute_handlers","handlers","cb","resolve","then","resolved","ps","resolveAll","rejectAll","vals","doneCount","fulfill","isPromise","reject","Promise$1","Animation","opts2","isCore","isEle","anifn","tAni","wasPlaying","swap","_pa","prop","startStyleProp","define$3","selfIsArrayLike","all","complete","properties","isEles","style","propertiesEmpty","panBy","cyPan","center","centerPan","fit","fitVp","vp","queue","ani","clearQueue","jumpToEnd","anis","ani_p","isArray","isArray_1","reIsDeepProp","reIsPlainProp","isKey","_isKey","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction_1","coreJsData","_coreJsData","maskSrcKey","isMasked","_isMasked","funcProto$1","funcToString$1","toSource","_toSource","reRegExpChar","reIsHostCtor","funcProto","objectProto$3","funcToString","hasOwnProperty$3","reIsNative","baseIsNative","pattern","_baseIsNative","getValue$1","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED$1","objectProto$2","hasOwnProperty$2","hashGet","data","_hashGet","objectProto$1","hasOwnProperty$1","hashHas","_hashHas","HASH_UNDEFINED","hashSet","_hashSet","Hash","entries","_Hash","listCacheClear","_listCacheClear","eq","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map$1","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","memoized","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","match","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","INFINITY$1","symbolProto","symbolToString","baseToString","_baseToString","toString$1","toString_1","castPath","_castPath","INFINITY","toKey","_toKey","baseGet","_baseGet","get","defaultValue","get_1","defineProperty","_defineProperty","baseAssignValue","_baseAssignValue","objectProto","hasOwnProperty","assignValue","objValue","_assignValue","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","baseSet","customizer","nested","newValue","_baseSet","set","set_1","copyArray","_copyArray","toPath","toPath_1","define$2","defaults","single","isPathLike","valid","change","_valid","_ele","names","i_a","l_a","_i_a","_l_a","_privateFields","_keys","_key","validKeyToDelete","define$1","proto","events","selector","offArgs","onArgs","define","elesfn$i","elesfn$h","_classes","changed","classesSet","eleClasses","changedEle","eleHasClass","className","toggle","toggleUndefd","il","hasClass","changedNow","duration","tokens","ops","op","newQuery","Type","stateSelectors","lookup","selToFn","stateSelectorMatches","sel","stateSelectorRegex","cleanMetaChars","$1","replaceLastQuery","examiningQuery","replacementQuery","exprs","query","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","variable","_ref11","_ref12","comparatorOp","valueIsString","_ref13","_ref14","boolOp","_ref15","_ref16","meta","currentSubject","compoundCount","lastQ","nextQuery","edgeQuery","srcTgtQ","_source","_target","nhoodQ","neighbor","parentChildQuery","child","compound","subject","_child","_parent","_parent2","_child2","pcQChecks","ancChQuery","descendant","ancestor","_descendant","_ancestor","_ancestor2","_descendant2","adQChecks","topQ","topChk","topType","consumeExpr","remaining","expr","consumed","consumeWhitespace","parse","currentQuery","exprInfo","toString","clean","cleanVal","space","checkToString","check","field","operator","_operator","_field","_field2","_operator2","_field3","queryToString","lhs","sub","rhs","chk","parse$1","valCmp","fieldVal","matches","isFieldStr","isFieldNum","isValStr","fieldStr","valStr","caseInsensitive","notExpr","isIneqCmp","boolCmp","existCmp","data$1","matches$1","stateSelector","qA","qB","filter","selectorFunction","matching","Selector","selfn","otherSel","elesfn$g","selObj","thisLength","collectionLength","nhood","arg1","arg2","arg3","arg4","selectorOrEles","tch","ch","cacheHit","elesfn$f","parents","ancestors","children","eleChildren","elements","add","forEachCompound","includeSelf","recursiveStep","did","hasCompounds","addChildren","addParent","addParentAndChildren","fn$5","elesfn$e","elesfn$d","defineDegreeFunction","includeLoops","degree","defineDegreeBoundsFunction","degreeFn","fn$4","elesfn$c","beforePositionSet","newPos","silent","oldPos","positionDef","_fn","_pos","setting","ppos","hasCompoundNodes","_ele2","hasParent","relativeToParent","origin","_hasParent","_relativeToParent","_origin","position","fn$3","elesfn$b","force","update","includeLabels","computeBiasValues","propDiff","propBias","propBiasComplement","biasDiff","biasComplementDiff","biasTotal","computePaddingValues","paddingObject","relativeTo","leftVal","rightVal","topVal","bottomVal","widthBiasDiffs","diffLeft","diffRight","heightBiasDiffs","diffTop","diffBottom","noninf","updateBounds","updateBoundsFromBox","b2","prefixedProperty","updateBoundsFromArrow","bounds","rstyle","halfArW","arrowType","bbs","updateBoundsFromLabel","prefixDash","label","halign","valign","labelWidth","labelHeight","labelX","labelY","marginX","marginY","isEdge","rotation","outlineWidth","borderWidth","halfBorderWidth","marginOfError","lh","lw","lw_2","lh_2","bbPrefix","isAutorotate","isPfValue","theta","xo","yo","rotate","px1y1","px1y2","px2y1","px2y2","bbPrefixRot","bbRot","boundingBoxImpl","styleEnabled","headless","isNode","ex1","ex2","ey1","ey2","manualExpansion","isDisplayed","displayed","overlayOpacity","overlayPadding","underlayOpacity","underlayPadding","wHalf","curveStyle","hpts","_temp","pts","n1pos","n2pos","_temp2","_temp3","ghost","gx","gy","bbBody","bbOverlay","bbLabels","getKey","tf","getBoundingBoxPosKey","cachedBoundingBoxImpl","defBbOptsKey","usingDefOpts","currPosKey","isPosKeySame","useCache","isDirty","needRecalc","defBbOpts","filledBbOpts","storeOldPos","getOldPos","fn$2","elesfn$a","defineDimFns","border","od","widthHeight","ifEdge","getValue","ifEdgeRenderedPosition","getPoint","ifEdgeRenderedPositions","getPoints","controlPoints","segmentPoints","sourceEndpoint","targetEndpoint","midpoint","renderedName","edgePoints","spec","rName","dimensions","Event","returnFalse","returnTrue","eventRegex","universalNamespace","defaults$8","q1","q2","context","defaultsKeys","emptyOpts","Emitter","forEachEvent","handler","qualifier","conf","confOverrides","eventList","evt","namespace","makeEventObj","forEachEventObj","eventObj","listeners","listener","extraParams","manualCallback","numListenersBeforeEmit","_loop2","emitterOptions$1","selector1","selector2","argSelector$1","arg","elesfn$9","argSel","elesfn$8","_filter","filterEles","include","toRemove","remove","col1","col2","col1Smaller","colS","colL","inOther","both","retEles","toAdd","toAddEle","unmergedLastEle","lastEleI","lastEle","lastEleId","toRmFn","mapFn","initialValue","valFn","maxEle","minEle","fn$1","elesfn$7","zIndexSort","getDepth","depthDiff","getEleDepth","eleDiff","zDiff","elesfn$6","thisSize","sortFn","sorted","srcDepth","tgtDepth","defineSymbolIterator","typeofUndef","isIteratorSupported","getLayoutDimensionOptions","elesfn$5","dims","bbDim","layout","layoutEles","getMemoizeKey","fnMem","calculateSpacing","spacing","nodesBb","spacingVector","useSpacingFactor","spacingBb","getFinalPos","animateNode","fitAni","zoomPanAni","styleCache","cacheStyleFunction","cachePrototypeStyleFunction","selfFn","elesfn$4","renderer","dirty","notifyRenderer","bEles","updatedEles","changedEles","property","includeNonDefault","overriddenStyle","pstyle","updateTransitions","parentOpacity","opacity","checkCompound","parentOk","defineDerivedStateFunction","specs","ok","edgeOkViaNode","eleTakesUpSpace","eleInteractive","parentInteractive","eleVisible","edgeVisibleViaNode","elesfn$3","defineSwitchFunction","_handler","addlEvents","able","overrideAble","changedColl","defineSwitchSet","elesfn$2","defineDagExtremity","disqualified","defineDagOneHop","oEles","defineDagAllHops","sEles","sElesIds","newNext","nid","otherNode","defineSourceFunction","sources","defineEdgesWithFunction","otherNodes","edgeData","thisToOther","otherToThis","edgeConnectsThisAndOther","defineParallelEdgesFunction","edge1","edge1_p","src1","srcid1","tgtid1","srcEdges1","edge2","edge2data","tgtid2","srcid2","codirected","oppdirected","visited","unvisited","visitInComponent","cmpt","Collection","unique","removed","createdElements","elesIds","json","_data","_l","element$1","elesfn$1","_data2","move","newParentValSpecd","checkSwitch","trueFnName","falseFnName","obj_k","jsons","elesArr","addToPool","cy_p","removeFromElements","_private","_data3","fields","fieldsLength","badSourceOrTarget","_data4","parentId","specifiedParent","selfAsParent","restored","_ele3","toUpdateStyle","removeFromPool","elesToRemove","elesToRemoveIds","addConnectedEdges","alreadyAdded","removeEdgeRef","removeParallelRef","pllEdge","alteredParents","removeChildRef","pid","_ele4","pllEdges","elesStillInside","_ele5","removedElements","_ele6","struct","modifyPool","srcExists","tgtExists","_data5","parentExists","pidToAssign","updated","_data6","corefn$9","_jsons","elesByGroup","_jsons2","grs","elesArray","jl","_json","generateCubicBezier","mX1","mY1","mX2","mY2","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","mSampleValues","aA1","aA2","calcBezier","aT","getSlope","newtonRaphsonIterate","aX","aGuessT","currentSlope","calcSampleValues","binarySubdivide","aA","aB","currentT","getTForX","intervalStart","currentSample","lastSample","guessForT","initialSlope","_precomputed","precompute","generateSpringRK4","springAccelerationForState","springEvaluateStateWithDerivative","initialState","dt","derivative","springIntegrateState","dxdt","dvdt","springRK4Factory","tension","friction","initState","time_lapsed","DT","have_duration","last_state","percentComplete","cubicBezier","bezier","percent","easings","spring","getEasedValue","easingFn","ease","startProp","endProp","propSpec","easedArr","si","step$1","pEasing","startTime","easingVals","easingProp","easing","startPos","endPos","startPan","endPan","animatingPan","startZoom","endZoom","animatingZoom","_name","easedVal","startAnimation","stepAll","doneEles","stepOne","current","ranAnis","callbacks","_callbacks","ranEleAni","handledThisEle","ranCoreAni","corefn$8","headlessStep","willDraw","emitterOptions","argSelector","elesfn","corefn$7","corefn$6","Layout","corefn$5","eventName","eventEles","bool","ids","rendererDefaults","corefn$4","pxRatio","RendererProto","rOpts","domEle","corefn$3","styfn$8","TRUE","FALSE","ie","cxtMeta","cxtStyle","app","hintsDiff","oldCxtKey","newCxtKey","dualCxtKey","cachedVal","diffProps","addedProp","cxt","oldHasCxt","newHasCxt","cxtHasDiffed","cxtHasMappedProps","laterCxtOverrides","laterCxt","hasLaterCxt","cxtKey","prevKey","contextSelectorMatches","cxtStyles","hasCxt","retDiffProps","types","diffPropName","cxtProp","eleProp","mapping","fnValue","retDiffProp","propNames","propGrKeys","propHash","seedKey","oldStyleKey","overriddenStyles","grKey","updateGrKey1","updateGrKey2","updateGrKey","updateGrKeyWStr","strVal","cleanNum","parsedProp","propInfo","_grKey","normalizedNumberVal","numberVal","haveNormNum","haveUnitedNum","haveNum","units","_grKey2","grHash","sk","labelKeys","sourceLabelKeys","targetLabelKeys","_p$styleKeys","nodeBody","nodeBorder","backgroundImage","pie","nodeKeys","flatProp","propIsBypass","origProp","origPropIsBypass","flatPropMapping","getVal","checkTriggers","fromVal","toVal","printMappingErr","fieldWidth","r1","r2","g1","g2","b1","a1","a2","clr","calcValue","_fields","_fieldVal","fnRetVal","keepBypasses","delay","anyPrev","styProp","diffProp","prevProp","fromProp","toProp","initVal","initDt","fromValue","toValue","getTrigger","onTrigger","triggerCheck","styfn$7","isBypass","_parsedProp","specifiedProps","_name2","_value","_parsedProp2","_prop","isColor","isMulti","oldValue","styfn$6","containerWindow","styfn$5","isRenderedVal","subproperty","styleProp","strValue","getRenderedValue","getValueStringWithUnits","isArrayValue","haveUnits","aniProps","aniProp","propsObj","chVal","styfn$4","css","styfn$3","selAndBlockStr","blockRem","propAndValStr","removeSelAndBlockFromRemaining","removePropAndValFromRem","nothingLeftToParse","selAndBlock","selectorStr","blockStr","invalidBlock","_nothingLeftToParse","propAndVal","propStr","styfn$2","hex3$1","hex6$1","mapData","mapArg","urlRegexes","valArr","unitsArr","val1","val2","str1","str2","empty1","empty2","mainLabel","sourceLabel","targetLabel","labelDimensions","commonLabel","behavior","visibility","overlay","underlay","transition","nodeSizeHashOverride","edgeLine","edgeArrow","arrowPrefixes","triggersBounds","propGroups","propGroupNames","propGroupKeys","aliases","alias","pointsToProp","aliasProp","rawProps","parsedProps","styfn$1","propIsFlat","flatKey","bypassKey","valueKey","argHash","propCache","passedValue","mapped","_mapped","valueMin","valueMax","same","pfValArr","hasEnum","checkEnums","en","implicitUnits","unitsRegex","propsStr","propsSplit","tuple","enumProp","regexes","regex","Style","styfn","ele_p","mapVal","currentSelectorIsCore","corefn$2","newStyle","defaultSelectionType","corefn$1","selType","arg0","viewportState","bbe","currentPan","currentZoom","bail","pan1","zoom1","zoom2","pan2","zoomDefd","panDefd","zoomFailed","panFailed","z","container","rb","_int","Core","reg","readies","head","defVal","def","altVal","loadExtData","extData","anyIsPromise","rendererOptions","setElesAndLayout","onload","ondone","oldEles","layoutOpts","thens","initStyle","initEles","corefn","ownerDocument","getFreshRef","idInJson","updateEles","gr","toMod","_toMod$_i","parentsToRemove","flat","defaults$7","deprecatedOptionDefaults","setInfo","BreadthFirstLayout","graph","maximal","rootsArray","comp","compRoots","depths","foundByBfs","addToDepth","changeDepth","newDepth","pNode","orphanNodes","assignDepthsAt","assignDepths","adjustMaximally","shifted","eInfo","incomers","maxDepth","incmr","iInfo","enqueue","dequeue","didShift","minDistance","nbb","cachedWeightedPercent","getWeightedPercent","eleDepth","samples","bf","nDepth","apct","bpct","orphanDepth","biggestDepthSize","maxDepthSize","getPosition","_getInfo2","depthSize","distanceX","distanceY","radiusStepSize","epos","defaults$6","CircleLayout","clockwise","sweep","dTheta","dcos","dsin","rMin","getPos","rx","ry","defaults$5","ConcentricLayout","nodeValues","maxNodeSize","levelWidth","levels","currentLevel","minDist","firstLvlHasMulti","maxR","rStep","level","rDeltaMax","_r","_level","rDelta","_level2","_level3","_dTheta","_r2","_val","DEBUG","defaults$4","CoseLayout","notEdges","hasSource","hasTarget","layoutInfo","createLayoutInfo","printLayoutInfo","randomizePositions","refresh","refreshPositions","mainLoop","step","done","getScaledPos","getScaleInBoundsFn","loopRet","frame","separateComponents","id2cmptId","tempNode","tempGraph","p_id","node_id","node_ix","tempEdge","idealLength","elasticity","sourceIx","targetIx","sourceGraph","targetGraph","lca","findLCA","lcaGraph","findLCA_aux","graphIx","nodeIx","childGraphIx","coseBB","lnode","pctX","pctY","_step","calculateNodeForces","calculateEdgeForces","calculateGravityForces","propagateForces","updatePositions","nodeRepulsion","randomDistance","cmptId1","cmptId2","directionX","directionY","maxRandDist","overlap","nodesOverlap","forceX","forceY","point1","findClippingPoint","point2","distanceSqr","dX","dY","overlapX","overlapY","X","Y","H","W","dirSlope","nodeSlope","lx","ly","distThreshold","fx","fy","nodeIndex","offX","offY","childNode","tempForce","limitForce","updateAncestryBoundaries","flag","cid","totalA","usedW","rowH","maxRowW","defaults$3","GridLayout","cells","splits","rows","cols","small","large","oRows","oCols","sm","lg","_sm","_lg","cellWidth","cellHeight","cellUsed","used","use","moveToNextCell","id2manPos","rcPos","defaults$2","NullLayout","defaults$1","PresetLayout","posIsFn","RandomLayout","NullRenderer","noop","throwImgErr","BRp$f","arrowShapes","bbCollide","translation","edgeWidth","inside","transform","xRotated","yRotated","xScaled","yScaled","xTranslated","yTranslated","transformPoints","retPts","pointsToArr","standardGap","defineArrowShape","defn","ptsTrans","ctrlPt","ctrlPtTrans","triPts","teePts","circleInside","shiftFactor","y0","crossLinePts","BRp$e","clientX","clientY","offsets","offsetLeft","offsetTop","scale","rect","styleValue","clientWidth","clientHeight","paddingHor","paddingVer","borderHor","unscaledW","unscaledH","interactiveElementsOnly","isTouch","near","edgeThreshold","nodeThreshold","labelThreshold","minSqDist","nearEdge","nearNode","addEle","sqDist","checkNode","hw","hh","shape","checkEdge","rs","styleWidth","widthSq","width2","arSize","arrows","ar","preprop","pre","checkLabel","th","text","eventsEnabled","ox","oy","box","x1c","x2c","y1c","y2c","boxBb","nodeBb","allInside","BRp$d","isHaystack","isBezier","isMultibezier","isSegments","isCompound","isSelf","startX","startY","endX","endY","midX","midY","bX","bY","i2","i1","i3","cpts","bp0x","bp0y","bp1x","bp1y","ic","BRp$c","pairInfo","posPts","intersectionPts","vectorNormInverse","midptPts","srcManEndpt","tgtManEndpt","haveManualEndPts","recalcVectorNormInverse","edgeDistances","_this$manualEndptToPx","_this$manualEndptToPx2","_this$manualEndptToPx3","_this$manualEndptToPx4","endPts","srcPos","tgtPos","srcW","tgtW","srcH","tgtH","halfRadius","segmentWs","segmentDs","segmentsN","w1","w2","_this$findMidptPtsEtc","adjustedMidpt","edgeIsUnbundled","dirCounts","ctrlptDists","ctrlptDist","loopDir","loopSwp","stepSize","loopDist","loopAngle","outAngle","inAngle","dc","loopW","loopaPos","loopbPos","loopPos","minCompoundStretch","compoundStretchA","compoundStretchB","edgeIsSwapped","ctrlptWs","bezierN","ctrlptWeight","multi","normctrlptDist","manctrlptDist","sign","distanceFromMidpoint","_this$findMidptPtsEtc2","VERTICAL","HORIZONTAL","LEFTWARD","RIGHTWARD","DOWNWARD","UPWARD","AUTO","dIncludesNodeBody","taxiDir","rawTaxiDir","taxiTurn","turnIsPercent","taxiTurnPfVal","turnIsNegative","minD","dw","dh","pdx","pdy","subDWH","dxy","dwh","isExplicitDir","isVert","pl","sgnL","forcedDir","getIsTooClose","isTooCloseSrc","isTooCloseTgt","isTooClose","lShapeInsideSrc","lShapeInsideTgt","_lShapeInsideSrc","_lShapeInsideTgt","_y","_x","_x2","_x3","_y2","_y3","_y4","_x4","_x5","_x6","_y5","_y6","srcShape","tgtShape","badStart","badAStart","badEnd","badAEnd","minCpADistFactor","arrowW","minCpADist","startACpDist","closeStartACp","endACpDist","closeEndACp","overlapping","cpD","cpL","cpM","cpProj","srcCtrlPtIntn","_cpD","_cpL","_cpM","_radius","_cpProj","tgtCtrlPtIntn","mt","hashTable","pairId","map2","pairIds","haystackEdges","edgeIsBezier","srcIndex","tgtIndex","tableEntry","swappedpairInfo","firstEdge","_curveStyle","_edgeIsUnbundled","srcOutside","srcIntn","tgtOutside","tgtIntn","vector","vectorNorm","passedPairInfo","getPts","BRp$b","npos","intersect","tgtArShape","srcArShape","et","taxi","segments","hasEndpts","overrideEndpts","srcManEndptVal","tgtManEndptVal","p1_i","p2_i","cpStart","cpEnd","srcArrowFromPt","tgtArrowFromPt","trs","lw2","lh2","va","ha","labelIntersect","refPt","intSqdist","labIntSqdist","labInt2SqDist","arrowEnd","edgeEnd","srs","_lw","_lh","_lx","_ly","_lw2","_lh2","_va","_ha","_labelIntersect","_refPt","_intSqdist","_labIntSqdist","_minSqDist","_labInt2SqDist","arrowStart","edgeStart","BRp$a","pushBezierPts","qbezierAt$1","p3","bpts","lpts","BRp$9","content","textX","textY","nodeWidth","nodeHeight","nodePos","textHalign","textValign","lineAngleFromDelta","lineAngle","bezierAngle","t0","lp0","lp1","setRs","midAngle","createControlPointInfo","ctrlpts","nProjs","addSegment","cp","prevSegment","segment","prevCp","calculateEndProjection","isSrc","cps","selected","startDist","totalDist","_cp","_seg","lastSeg","seg","tSegment","segDt","di","d0","pD","_t","labelDims","lineHeight","textWrap","numLines","normPerLineHeight","labelLineHeight","pfd","textTransform","rscratch","wrapStyle","labelKey","zwsp","maxW","overflow","overflowAny","wrappedLines","wordsRegex","wordSeparator","lineDims","lineW","processedLine","words","subline","word","testLine","testDims","testW","_maxW","ellipsized","ellipsis","incLastCh","widthWithNextCh","justification","cacheKey","existingVal","fStyle","family","canvas","c2d","ds","metrics","rot","rotStr","BRp$8","TOO_SMALL_CUT_RECT","warnedCutRect","BRp$7","elesToUpdate","dirtyStyleCaches","updateEleCalcs","fns","isCleanConnected","_p2","_rstyle","_p3","_rstyle2","BRp$6","grabTargets","forceRecalc","BRp$5","BRp$4","url","crossOrigin","onLoad","imageCache","image","dataUriPrefix","isDataUri","BRp$3","useCapture","tgtIsDom","supportsPassive","on","isSelected","triggerEvents","isMultSelKeyDown","allowPanningPassthrough","down","downs","allowPassthrough","setGrabbed","setFreed","setInDragLayer","setOutDragLayer","setGrabTarget","removeGrabTarget","addToDragList","list","listHasEle","addDescendantsToDrag","innerNodes","addNodesToDrag","updateAncestorsInDragLayer","addNodeToDrag","freeDraggedElements","grabbedEles","blurActiveDomElement","haveMutationsApi","haveResizeObserverApi","mutns","mutn","rNodes","rNode","onResize","forEachUp","invalidateCoords","inBoxSelection","eventInContainer","containerPageCoords","positions","atLeastOnePosInside","tParent","containerIsTarget","gpos","select","nears","draggedElements","checkForTaphold","cxtEvt","makeEvent","triggerGrab","selectedNodes","capture","preventDefault","mdownPos","mdownGPos","last","isOverThresholdDrag","dx2","dy2","dist2","multSelKeyDown","updateDragDelta","dragDelta","goIntoBoxMode","deltaP","mdPos","justStartedDrag","totalShift","clickTimeout","didDoubleClick","prevClickTimeStamp","cxtTap","eleWouldBeSelected","downWasGrabbed","wheelHandler","needsWheelFix","newZoom","f1x1","f1y1","f2x1","f2y1","distance1","distance1Sq","center1","modelCenter1","containerWidth","containerHeight","twoFingersStartInside","distanceSq","touchstartHandler","earlier","cxtDistThreshold","cxtDistThresholdSq","near1","near2","draggedEles","sPos","touch0","touchmoveHandler","startGPos","f1x2","f1y2","f2x2","f2y2","distance2Sq","factorSq","distThresholdSq","factorThreshold","factorThresholdSq","de_p","_start","distance2","factor","df1x","df1y","df2x","df2y","tx","ty","ctrx","ctry","touchcancelHandler","touchendHandler","didDoubleTouch","touchTimeout","prevTouchTimeStamp","ctxTapend","ctxTap","startWasGrabbed","rdist2","pointers","makeTouch","makePointer","addPointer","removePointer","updatePointer","addTouchesToEvent","pointerIsMouse","BRp$2","allPoints","sourceIndex","destIndex","xDest","yDest","norm","diam","cl","xBegin","xEnd","yBegin","yEnd","cPts","cutTrianglePts","bPts","approximateBarrelCurvePts","m0","m1","m2","curveConstants","hOffset","wOffset","ctrlPtXOffset","barrelCurvePts","getCurveT","curvePts","x0","xMin","xMax","yMin","yMax","coeff","validRoots","curveRegions","corner","cornerPts","bezY","topIntersections","outerWidth","outerHeight","nodeShapes","diamondPoints","star5Points","outerPoints","innerPoints","innerRadius","tagPoints","BRp$1","priority","cbs","beforeRenderCallbacks","renderFn","requestTime","endTime","BaseRenderer","BR","BRp","ctr","document","stylesheetId","stylesheetAlreadyExists","computedStyle","binding","fullFpsTime","defs","queueRedraw","frameStartTime","avgRenderTime","renderTime","deqd","extent","pixelRatio","frameDuration","timeAvailable","thisDeqd","ElementTextureCacheLookup","doesEleInvalidateKey","idsByKey","currKey","newKey","lvl","cachesByLvl","lvls","caches","entireKeyInvalidated","minTxrH","txrStepH","minLvl$1","maxLvl$1","maxZoom$1","eleTxrSpacing","defTxrWidth","maxTxrW","maxTxrH","minUtility","maxFullness","maxFullnessChecks","deqCost$1","deqAvgCost$1","deqNoDrawCost$1","deqFastCost$1","deqRedrawThreshold$1","maxDeqSize$1","getTxrReasons","initDefaults","ElementTextureCache","initOptions","ETCp","txrH","rtxtrQs","rtxtrQ","k2q","reason","eleScaledH","eleScaledW","scaledLabelShown","eleCache","txrQ","txr","addNewTxr","scalableFrom","otherCache","deqing","highQualityReq","downscaleReq","higherCache","oneUpCache","downscale","lowerCache","_l2","invalid","noOtherElesUseCache","_cache","eleCaches","minW","existingReq","req","dequeued","cacheExists","defNumLayers","minLvl","maxLvl","maxZoom","deqRedrawThreshold","refineEleDebounceTime","deqCost","deqAvgCost","deqNoDrawCost","deqFastCost","maxDeqSize","invalidThreshold","maxLayerArea","useHighQualityEleTxrReqs","LayeredTextureCache","qSort","LTCp","layerIdPool","MAX_INT","layer","firstGet","layersByLvl","layers","lvlComplete","tmpLayers","checkTempLevels","canUseAsTmpLvl","checkLvls","dir","getBb","makeLayer","after","area","maxElesPerLayer","allowLazyQueueing","existingLayer","numElesInLayers","haveLayers","rLyr","elesQ","hasId","eleDeqs","layersInLevel","replaced","CRp$a","polygon","triangleBackcurve","controlPoint","firstPt","triangleTee","trianglePoints","teePoints","firstTeePt","circleTriangle","firstTrPt","circle","CRp$9","shiftToOriginWithBb","showLabel","showOverlay","showOpacity","eleTxrCache","getRotation","getOpacity","smooth","rotPt","oldGlobalAlpha","getZeroRotation","getLabelRotation","getSourceLabelRotation","getTargetLabelRotation","getTextOpacity","requestHighQuality","_r$data","lblTxrCache","slbTxrCache","tlbTxrCache","badLine","CRp$8","drawLabel","shouldDrawOverlay","shouldDrawOpacity","lineOpacity","lineStyle","lineCap","effectiveLineOpacity","effectiveArrowOpacity","drawLine","strokeOpacity","drawOverlay","drawUnderlay","drawArrows","arrowOpacity","drawText","ghostOpacity","effectiveGhostOpacity","drawEdgeOverlayUnderlay","overlayOrUnderlay","usePaths","canvasCxt","pathCacheHit","lineDashPattern","lineDashOffset","pathCacheKey","keyMatches","normal","triangleHead","arrowShape","arrowClearFill","arrowFill","edgeOpacity","gco","fill","canvasContext","shapeImpl","cachedPath","CRp$7","img","ix","iy","iw","ih","nodeOpacity","styleObj","getIndexedStyle","repeat","nodeW","nodeH","paddingX2","nodeTW","nodeTH","clip","shouldClip","imgOpacity","imgW","imgH","posXUnits","posXPfVal","offXUnits","offXPfVal","posYUnits","posYPfVal","offYUnits","offYPfVal","gAlpha","smoothingEnabled","isSmoothingSwitched","CRp$6","computedSize","minSize","useEleOpacity","_label","srcLabel","tgtLabel","applyRotation","labelStyle","labelSize","labelFamily","labelWeight","outlineOpacity","outlineColor","roundRect","ctx","pdash","textAngle","orgTextX","orgTextY","textW","textH","backgroundOpacity","borderOpacity","textBorderWidth","backgroundPadding","bgX","bgY","bgW","bgH","textFill","textBackgroundColor","styleShape","textStroke","textLineWidth","textBorderColor","textBorderStyle","whiteWidth","lineWidth","halfTextW","CRp$5","eleOpacity","bgImgProp","urls","urlDefined","numImages","defd","bgImgCrossOrigin","darkness","bgOpacity","borderColor","borderStyle","setupShapeColor","bgOpy","setupBorderColor","bdrOpy","shapePts","pathCache","drawShape","drawImages","prevBging","totalCompleted","bgContainment","drawPie","redrawShape","pieOpacity","darken","darkenOpacity","drawBorder","effGhostOpacity","drawNodeOverlayUnderlay","cyStyle","pieSize","lastPercent","angleStart","angleDelta","angleEnd","CRp$4","motionBlurDelay","backingStore","needToCreateCache","shapeStyleName","gradientStyle","_end","_width","_height","hasPositions","backgroundFill","backgroundColor","lineFill","lineColor","mbPxRatio","canvasWidth","canvasHeight","canvasContainer","forcedContext","drawAllLayers","drawOnlyNodeLayer","forcedZoom","forcedPan","needDraw","textureDraw","motionBlur","inNodeDragGesture","motionBlurFadeEffect","effectiveZoom","effectivePan","prevVp","viewportIsDiff","mbclear","setContextTransform","clear","ePan","eZoom","texture","outsideBgColor","outsideBgOpacity","vpManip","hideEdges","needMbClear","useBuffer","timeToRender","fps","maxFps","cxtNode","txtNode","cxtDrag","txtDrag","drawMotionBlur","txt","needClear","pxr","CRp$3","cornerLength","barrelCurveConstants","sin0","cos0","ellipseStepSize","xPos","yPos","rw","rh","CRp$2","buffer","ctrRect","specdMaxDims","maxScaleW","maxScaleH","buffCanvas","buffCxt","zsortedEles","b64ToBlob","b64","mimeType","bytes","buff","buffUint8","b64UriToB64","b64uri","output","getB64Uri","blob","CRp$1","CR","CanvasRenderer","CRp","tapHlOffAttr","tapHlOffStyle","containerStyle","styleMap","emptyBb","getBoxCenter","getCenterOffset","backgroundTimestampHasChanged","getStyleKey","getLabelKey","getSourceLabelKey","getTargetLabelKey","drawElement","drawSourceLabel","drawTargetLabel","getElementBox","getLabelBox","getSourceLabelBox","getTargetLabelBox","isLabelVisibleAtScale","getElementRotationPoint","addTextMargin","getRsPt","getLabelRotationPoint","getSourceLabelRotationPoint","getTargetLabelRotationPoint","getElementRotationOffset","getSourceLabelRotationOffset","getTargetLabelRotationOffset","getLabelRotationOffset","lyrTxrCache","refineInLayers","reqs","pathsImpld","incExts","extensions","modules","setExtension","registrant","ext","overrideErr","layoutProto","optLayoutFns","fnName","regStop","getCy","emitterOpts","getExtension","bProto","RegistrantRenderer","rProto","Renderer","pName","pVal","existsInR","_pName","setModule","moduleType","moduleName","getModule","extension","Stylesheet","sheetfn","version","cytoscape","installedModules","__webpack_require__","moduleId","getter","LayoutConstants","LGraphObject","IGeometry","IMath","LEdge","vEdge","otherEnd","clipPointCoordinates","vGraphObject","Integer","RectangleD","RandomSeed","PointD","LNode","gm","loc","vNode","upperLeft","dimension","edgeList","withNeighborsList","noOfChildren","randomCenterX","randomCenterY","childGraph","trans","leftTop","vLeftTop","LGraphManager","Point","LinkedList","LGraph","obj2","vGraph","obj1","sourceNode","targetNode","newNode","newEdge","edgesToBeRemoved","targetIndex","nodeTop","nodeLeft","margin","lNode","recursive","nodeRight","nodeBottom","boundingRect","neighborEdges","currentNeighbor","childrenOfNode","neighborEdge","childrenOfNeighbor","noOfVisitedInThisGraph","visitedNode","ngraph","nnode","newGraph","parentNode","lObj","nodesToBeRemoved","nodeList","graphs","firstNode","secondNode","ownerGraph","sourceAncestorGraph","targetAncestorGraph","firstOwnerGraph","secondOwnerGraph","FDLayoutConstants","rectA","rectB","overlapAmount","separationBuffer","directions","slope","moveByY","moveByX","p1x","p1y","p2x","p2y","topLeftAx","topLeftAy","topRightAx","bottomLeftAx","bottomLeftAy","bottomRightAx","halfWidthA","halfHeightA","topLeftBx","topLeftBy","topRightBx","bottomLeftBx","bottomLeftBy","bottomRightBx","halfWidthB","halfHeightB","clipPointAFound","clipPointBFound","slopeA","slopeB","slopePrime","cardinalDirectionA","cardinalDirectionB","tempPointAx","tempPointAy","tempPointBx","tempPointBy","s1","s2","f1","f2","Cx","Cy","Nx","Ny","C_angle","p4","det","lambda","gamma","defineProperties","nodeFrom","_remove","UniqueIDGeneretor","_toConsumableArray","Transform","isRemoteUse","isLayoutSuccessfull","allEdges","newLeftTop","flatForest","isForest","allNodes","isFlat","toBeVisited","unProcessedNodes","dummyNodes","dummyNode","dummyEdge","lEdge","ebp","sliderValue","minDiv","maxMul","minValue","maxValue","removedNodes","remainingDegrees","foundCenter","centerNode","tempList","tempList2","neighbours","neighbour","otherDegree","newDegree","wox","woy","wex","wey","dox","doy","dex","dey","xDevice","worldExtX","yDevice","worldExtY","xWorld","deviceExtX","yWorld","deviceExtY","inPoint","outPoint","FDLayout","lcaDepth","sizeOfSourceInLca","sizeOfTargetInLca","lEdges","gridUpdateAllowed","forceToNodeSurroundingUpdate","nodeA","nodeB","lNodes","processedNodeSet","springForce","springForceX","springForceY","clipPoints","distanceSquared","repulsionForce","repulsionForceX","repulsionForceY","childrenConstant","ownerCenterX","ownerCenterY","absDistanceX","absDistanceY","estimatedSize","converged","oscilating","sizeX","sizeY","grid","finishX","finishY","surrounding","FDLayoutEdge","FDLayoutNode","_startX","_finishX","_startY","_finishY","DimensionD","HashMap","theId","HashSet","Quicksort","compareFunction","NeedlemanWunsch","sequence1","sequence2","match_score","mismatch_penalty","gap_penalty","diag","maxOf","inProcessAlignments","indexes","layoutBase","require$$0","__WEBPACK_EXTERNAL_MODULE_0__","CoSEConstants","CoSEEdge","CoSEGraph","graphMgr","CoSEGraphManager","CoSENode","pred1","processed","CoSELayout","createBendsAsNeeded","pData","layoutEnded","multiEdge","currentStartingPoint","numberOfColumns","point","tree","startingPoint","radialSep","bottomRight","parentOfNode","endAngle","radialSeparation","halfInterval","nodeAngle","teta","x_","y_","childCount","branchCount","incEdgesCount","startIndex","stepAngle","childStartAngle","childEndAngle","maxDiagonal","diagonal","tempMemberGroups","zeroDegree","dummyCompoundId","dummyCompound","dummyParentGraph","parentGraph","childGraphMap","idToNode","tiledZeroDegreePack","compoundNode","lCompoundNode","horizontalMargin","verticalMargin","tiledPack","theChild","organization","compoundHorizontalMargin","compoundVerticalMargin","maxHeight","minWidth","verticalPadding","horizontalPadding","rowIndex","minCompoundSize","secondDimension","extraHeight","extraWidth","sri","hDiff","add_to_row_ratio","add_new_row_ratio","longest","prevTotal","finalTotal","prunedNodesAll","containsLeaf","prunedNodesInStepTemp","prunedNodesInStep","lengthOfPrunedNodesInStep","nodeData","gridForPrunedNode","nodeToConnect","prunedNode","startGridX","finishGridX","startGridY","finishGridY","upNodeCount","downNodeCount","rightNodeCount","leftNodeCount","controlRegions","minCount","minIndex","random","coseBase","_CoSELayout","getUserOptions","ready","frameId","e1","getPositions","iterateAnimated","afterReposition","ticksPerFrame","isDone","animationData","nodesMap","children_of_children","theNode","labelPos","theNewGraph","register","parser","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","input","tstack","vstack","lstack","table","TERROR","EOF","lexer2","sharedState","yyloc","ranges","lex","token","symbol","action","yyval","newState","expected","errStr","lexer","oldLines","past","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","mindmapParser","sanitizeText","sanitizeText$1","getConfig","cnt","getParent","getMindmap","addNode","descr","log","nodeType","getType","startStr","endStr","setElementForId","decorateNode","decoration","type2Str","parseError","setErrorHandler","getLogger","getNodeById","getElementById","mindmapDb","MAX_SECTIONS","defaultBkg","section","rectBkg","cloudBkg","r3","r4","bangBkg","circleBkg","insertPolygonShape","hexagonBkg","roundedRectBkg","drawNode","fullSection","htmlLabels","nodeElem","sectionClass","bkgElem","textElem","description","createText","bbox","fontSize","orgHeight","heightDiff","drawEdge","edgesElem","mindmap","ex","ey","mx","my","qx","qy","positionNode","svgDraw","coseBilkent","drawNodes","svg","drawEdges","edgesEl","addNodes","layoutMindmap","renderEl","positionNodes","draw","diagObj","securityLevel","sandboxElement","mm","nodesElem","setupGraphViewbox","mindmapRenderer","genSections","sections","isDark","lighten","sw","getStyles","mindmapStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js b/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js deleted file mode 100644 index 06ca606..0000000 --- a/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js +++ /dev/null @@ -1,2 +0,0 @@ -const c=Math.PI,x=2*c,u=1e-6,m=x-u;function E(e){this._+=e[0];for(let t=1,h=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return E;const h=10**t;return function(i){this._+=i[0];for(let s=1,n=i.length;su)if(!(Math.abs(o*p-l*_)>u)||!n)this._append`L${this._x1=t},${this._y1=h}`;else{let d=i-$,f=s-r,y=p*p+l*l,T=d*d+f*f,g=Math.sqrt(y),v=Math.sqrt(a),w=n*Math.tan((c-Math.acos((y+a-T)/(2*g*v)))/2),M=w/v,b=w/g;Math.abs(M-1)>u&&this._append`L${t+M*_},${h+M*o}`,this._append`A${n},${n},0,0,${+(o*d>_*f)},${this._x1=t+b*p},${this._y1=h+b*l}`}}arc(t,h,i,s,n,$){if(t=+t,h=+h,i=+i,$=!!$,i<0)throw new Error(`negative radius: ${i}`);let r=i*Math.cos(s),p=i*Math.sin(s),l=t+r,_=h+p,o=1^$,a=$?s-n:n-s;this._x1===null?this._append`M${l},${_}`:(Math.abs(this._x1-l)>u||Math.abs(this._y1-_)>u)&&this._append`L${l},${_}`,i&&(a<0&&(a=a%x+x),a>m?this._append`A${i},${i},0,1,${o},${t-r},${h-p}A${i},${i},0,1,${o},${this._x1=l},${this._y1=_}`:a>u&&this._append`A${i},${i},0,${+(a>=c)},${o},${this._x1=t+i*Math.cos(n)},${this._y1=h+i*Math.sin(n)}`)}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function P(e){return function(){return e}}function q(e){let t=3;return e.digits=function(h){if(!arguments.length)return t;if(h==null)t=null;else{const i=Math.floor(h);if(!(i>=0))throw new RangeError(`invalid digits: ${h}`);t=i}return e},()=>new L(t)}export{P as c,q as w}; -//# sourceMappingURL=path-aUcfwwLI.js.map diff --git a/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js.map b/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js.map deleted file mode 100644 index 646ba73..0000000 --- a/excalidraw/excalidraw-app/build/assets/path-aUcfwwLI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"path-aUcfwwLI.js","sources":["../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/path.js"],"sourcesContent":["const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n"],"names":["pi","tau","epsilon","tauEpsilon","append","strings","i","n","appendRound","digits","d","k","Path","x","y","x1","y1","x2","y2","r","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h","constant","withPath","shape","_"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/pica-k97f9p3G.js b/excalidraw/excalidraw-app/build/assets/pica-k97f9p3G.js deleted file mode 100644 index 1d79b20..0000000 --- a/excalidraw/excalidraw-app/build/assets/pica-k97f9p3G.js +++ /dev/null @@ -1,8 +0,0 @@ -import{g as X}from"./index-2K3MavtT.js";import{c as T}from"./_commonjs-dynamic-modules-h-SxKiO4.js";function N(H,Y){for(var d=0;dI[G]})}}}return Object.freeze(Object.defineProperty(H,Symbol.toStringTag,{value:"Module"}))}var W={exports:{}};/*! - -pica -https://github.com/nodeca/pica - -*/(function(H,Y){(function(d){H.exports=d()})(function(){return function(){function d(I,G,v){function o(a,t){if(!G[a]){if(!I[a]){var e=typeof T=="function"&&T;if(!t&&e)return e(a,!0);if(A)return A(a,!0);var i=new Error("Cannot find module '"+a+"'");throw i.code="MODULE_NOT_FOUND",i}var h=G[a]={exports:{}};I[a][0].call(h.exports,function(c){var f=I[a][1][c];return o(f||c)},h,h.exports,d,I,G,v)}return G[a].exports}for(var A=typeof T=="function"&&T,n=0;n=0,wasm:e.indexOf("wasm")>=0};o.call(this,i),this.features={js:i.js,wasm:i.wasm&&this.has_wasm()},this.use(A),this.use(n)}v(a,o),a.prototype.resizeAndUnsharp=function(e,i){var h=this.resize(e,i);return e.unsharpAmount&&this.unsharp_mask(h,e.toWidth,e.toHeight,e.unsharpAmount,e.unsharpRadius,e.unsharpThreshold),h},I.exports=a},{"./mm_resize":4,"./mm_unsharp_mask":9,inherits:19,multimath:20}],2:[function(d,I,G){function v(n){return n<0?0:n>255?255:n}function o(n,a,t,e,i,h){var c,f,_,p,m,w,B,y,E,R,b,F=0,D=0;for(E=0;E0;B--)b=h[m++],p=p+b*n[y+3]|0,_=_+b*n[y+2]|0,f=f+b*n[y+1]|0,c=c+b*n[y]|0,y=y+4|0;a[D+3]=v(p+8192>>14),a[D+2]=v(_+8192>>14),a[D+1]=v(f+8192>>14),a[D]=v(c+8192>>14),D=D+e*4|0}D=(E+1)*4|0,F=(E+1)*t*4|0}}function A(n,a,t,e,i,h){var c,f,_,p,m,w,B,y,E,R,b,F=0,D=0;for(E=0;E0;B--)b=h[m++],p=p+b*n[y+3]|0,_=_+b*n[y+2]|0,f=f+b*n[y+1]|0,c=c+b*n[y]|0,y=y+4|0;a[D+3]=v(p+8192>>14),a[D+2]=v(_+8192>>14),a[D+1]=v(f+8192>>14),a[D]=v(c+8192>>14),D=D+e*4|0}D=(E+1)*4|0,F=(E+1)*t*4|0}}I.exports={convolveHorizontally:o,convolveVertically:A}},{}],3:[function(d,I,G){I.exports="AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEXA2AAAGAGf39/f39/AGAHf39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMEAwABAgYGAX8AQQALB1cFEV9fd2FzbV9jYWxsX2N0b3JzAAAIY29udm9sdmUAAQpjb252b2x2ZUhWAAIMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAK7AMDAwABC8YDAQ9/AkAgA0UNACAERQ0AA0AgDCENQQAhE0EAIQcDQCAHQQJqIQYCfyAHQQF0IAVqIgcuAQIiFEUEQEGAwAAhCEGAwAAhCUGAwAAhCkGAwAAhCyAGDAELIBIgBy4BAGohCEEAIQsgFCEHQQAhDiAGIQlBACEPQQAhEANAIAUgCUEBdGouAQAiESAAIAhBAnRqKAIAIgpBGHZsIBBqIRAgCkH/AXEgEWwgC2ohCyAKQRB2Qf8BcSARbCAPaiEPIApBCHZB/wFxIBFsIA5qIQ4gCEEBaiEIIAlBAWohCSAHQQFrIgcNAAsgC0GAQGshCCAOQYBAayEJIA9BgEBrIQogEEGAQGshCyAGIBRqCyEHIAEgDUECdGogCUEOdSIGQf8BIAZB/wFIGyIGQQAgBkEAShtBCHRBgP4DcSAKQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EQdEGAgPwHcSALQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobcjYCACADIA1qIQ0gE0EBaiITIARHDQALIAxBAWoiDCACbCESIAMgDEcNAAsLCx4AQQAgAiADIAQgBSAAEAEgAkEAIAQgBSAGIAEQAQs="},{}],4:[function(d,I,G){I.exports={name:"resize",fn:d("./resize"),wasm_fn:d("./resize_wasm"),wasm_src:d("./convolve_wasm_base64")}},{"./convolve_wasm_base64":3,"./resize":5,"./resize_wasm":8}],5:[function(d,I,G){var v=d("./resize_filter_gen"),o=d("./convolve").convolveHorizontally,A=d("./convolve").convolveVertically;function n(a,t,e){for(var i=3,h=t*e*4|0;i"u"?3:t.quality,E=t.alpha||!1,R=v(y,i,c,_,m),b=v(y,h,f,p,w),F=new Uint8Array(c*h*4);return o(e,F,i,h,c,R),A(F,B,h,c,f,b),E||n(B,c,f),B}},{"./convolve":2,"./resize_filter_gen":6}],6:[function(d,I,G){var v=d("./resize_filter_info"),o=14;function A(n){return Math.round(n*((1<>1]+=A(1-j),r=0;r0&&b[u]===0;)u--;if(s=B+r,l=u-r+1,M[C++]=s,M[C++]=l,!Q)M.set(b.subarray(r,u+1),C),C+=l;else for(x=r;x<=u;x++)M[C++]=b[x]}else M[C++]=0,M[C++]=0}return M}},{"./resize_filter_info":7}],7:[function(d,I,G){I.exports=[{win:.5,filter:function(o){return o>=-.5&&o<.5?1:0}},{win:1,filter:function(o){if(o<=-1||o>=1)return 0;if(o>-11920929e-14&&o<11920929e-14)return 1;var A=o*Math.PI;return Math.sin(A)/A*(.54+.46*Math.cos(A/1))}},{win:2,filter:function(o){if(o<=-2||o>=2)return 0;if(o>-11920929e-14&&o<11920929e-14)return 1;var A=o*Math.PI;return Math.sin(A)/A*Math.sin(A/2)/(A/2)}},{win:3,filter:function(o){if(o<=-3||o>=3)return 0;if(o>-11920929e-14&&o<11920929e-14)return 1;var A=o*Math.PI;return Math.sin(A)/A*Math.sin(A/3)/(A/3)}}]},{}],8:[function(d,I,G){var v=d("./resize_filter_gen");function o(t,e,i){for(var h=3,c=e*i*4|0;h>8&255}}I.exports=function(e){var i=e.src,h=e.width,c=e.height,f=e.toWidth,_=e.toHeight,p=e.scaleX||e.toWidth/e.width,m=e.scaleY||e.toHeight/e.height,w=e.offsetX||0,B=e.offsetY||0,y=e.dest||new Uint8Array(f*_*4),E=typeof e.quality>"u"?3:e.quality,R=e.alpha||!1,b=v(E,h,f,p,w),F=v(E,c,_,m,B),D=0,x=this.__align(D+Math.max(i.byteLength,y.byteLength)),S=this.__align(x+c*f*4),j=this.__align(S+b.byteLength),k=j+F.byteLength,r=this.__instance("resize",k),u=new Uint8Array(this.__memory.buffer),s=new Uint32Array(this.__memory.buffer),l=new Uint32Array(i.buffer);s.set(l),a(b,u,S),a(F,u,j);var g=r.exports.convolveHV||r.exports._convolveHV;g(S,j,x,h,c,f,_);var M=new Uint32Array(y.buffer);return M.set(new Uint32Array(this.__memory.buffer,0,_*f)),R||o(y,f,_),y}},{"./resize_filter_gen":6}],9:[function(d,I,G){I.exports={name:"unsharp_mask",fn:d("./unsharp_mask"),wasm_fn:d("./unsharp_mask_wasm"),wasm_src:d("./unsharp_mask_wasm_base64")}},{"./unsharp_mask":10,"./unsharp_mask_wasm":11,"./unsharp_mask_wasm_base64":12}],10:[function(d,I,G){var v=d("glur/mono16");function o(A,n,a){for(var t=n*a,e=new Uint16Array(t),i,h,c,f,_=0;_=h&&i>=c?i:h>=c&&h>=i?h:c,e[_]=f<<8;return e}I.exports=function(n,a,t,e,i,h){var c,f,_,p,m;if(!(e===0||i<.5)){i>2&&(i=2);var w=o(n,a,t),B=new Uint16Array(w);v(B,a,t,i);for(var y=e/100*4096+.5|0,E=h<<8,R=a*t,b=0;b=E&&(f=c+(y*p+2048>>12),f=f>65280?65280:f,f=f<0?0:f,c=c!==0?c:1,_=(f<<12)/c|0,m=b*4,n[m]=n[m]*_+2048>>12,n[m+1]=n[m+1]*_+2048>>12,n[m+2]=n[m+2]*_+2048>>12)}}},{"glur/mono16":18}],11:[function(d,I,G){I.exports=function(o,A,n,a,t,e){if(!(a===0||t<.5)){t>2&&(t=2);var i=A*n,h=i*4,c=i*2,f=i*2,_=Math.max(A,n)*4,p=8*4,m=0,w=h,B=w+c,y=B+f,E=y+f,R=E+_,b=this.__instance("unsharp_mask",h+c+f*2+_+p,{exp:Math.exp}),F=new Uint32Array(o.buffer),D=new Uint32Array(this.__memory.buffer);D.set(F);var x=b.exports.hsv_v16||b.exports._hsv_v16;x(m,w,A,n),x=b.exports.blurMono16||b.exports._blurMono16,x(w,B,y,E,R,A,n,t),x=b.exports.unsharp||b.exports._unsharp,x(m,m,w,B,A,n,a,e),F.set(new Uint32Array(this.__memory.buffer,0,i))}}},{}],12:[function(d,I,G){I.exports="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"},{}],13:[function(d,I,G){var v=100;function o(A,n){this.create=A,this.available=[],this.acquired={},this.lastId=1,this.timeoutId=0,this.idle=n||2e3}o.prototype.acquire=function(){var A=this,n;return this.available.length!==0?n=this.available.pop():(n=this.create(),n.id=this.lastId++,n.release=function(){return A.release(n)}),this.acquired[n.id]=n,n},o.prototype.release=function(A){var n=this;delete this.acquired[A.id],A.lastUsed=Date.now(),this.available.push(A),this.timeoutId===0&&(this.timeoutId=setTimeout(function(){return n.gc()},v))},o.prototype.gc=function(){var A=this,n=Date.now();this.available=this.available.filter(function(a){return n-a.lastUsed>A.idle?(a.destroy(),!1):!0}),this.available.length!==0?this.timeoutId=setTimeout(function(){return A.gc()},v):this.timeoutId=0},I.exports=o},{}],14:[function(d,I,G){var v=2;I.exports=function(A,n,a,t,e,i){var h=a/A,c=t/n,f=(2*i+v+1)/e;if(f>.5)return[[a,t]];var _=Math.ceil(Math.log(Math.min(h,c))/Math.log(f));if(_<=1)return[[a,t]];for(var p=[],m=0;m<_;m++){var w=Math.round(Math.pow(Math.pow(A,_-m-1)*Math.pow(a,m+1),1/_)),B=Math.round(Math.pow(Math.pow(n,_-m-1)*Math.pow(t,m+1),1/_));p.push([w,B])}return p}},{}],15:[function(d,I,G){var v=1e-5;function o(n){var a=Math.round(n);return Math.abs(n-a)=a.toWidth&&(m=a.toWidth-c),f=p-a.destTileBorder,f<0&&(f=0),w=p+h+a.destTileBorder-f,f+w>=a.toHeight&&(w=a.toHeight-f),y={toX:c,toY:f,toWidth:m,toHeight:w,toInnerX:_,toInnerY:p,toInnerWidth:i,toInnerHeight:h,offsetX:c/t-o(c/t),offsetY:f/e-o(f/e),scaleX:t,scaleY:e,x:o(c/t),y:o(f/e),width:A(m/t),height:A(w/e)},B.push(y);return B}},{}],16:[function(d,I,G){function v(o){return Object.prototype.toString.call(o)}I.exports.isCanvas=function(A){var n=v(A);return n==="[object HTMLCanvasElement]"||n==="[object OffscreenCanvas]"||n==="[object Canvas]"},I.exports.isImage=function(A){return v(A)==="[object HTMLImageElement]"},I.exports.isImageBitmap=function(A){return v(A)==="[object ImageBitmap]"},I.exports.limiter=function(A){var n=0,a=[];function t(){n"u")return!1;var n=A(100,100);return createImageBitmap(n,0,0,100,100,{resizeWidth:10,resizeHeight:10,resizeQuality:"high"}).then(function(a){var t=a.width===10;return a.close(),n=null,t})}).catch(function(){return!1})},I.exports.worker_offscreen_canvas_support=function(){return new Promise(function(A,n){if(typeof OffscreenCanvas>"u"){A(!1);return}function a(i){if(typeof createImageBitmap>"u"){i.postMessage(!1);return}Promise.resolve().then(function(){var h=new OffscreenCanvas(10,10),c=h.getContext("2d");return c.rect(0,0,1,1),createImageBitmap(h,0,0,1,1)}).then(function(){return i.postMessage(!0)},function(){return i.postMessage(!1)})}var t=btoa("(".concat(a.toString(),")(self);")),e=new Worker("data:text/javascript;base64,".concat(t));e.onmessage=function(i){return A(i.data)},e.onerror=n}).then(function(A){return A},function(){return!1})},I.exports.can_use_canvas=function(A){var n=!1;try{var a=A(2,1),t=a.getContext("2d"),e=t.createImageData(2,1);e.data[0]=12,e.data[1]=23,e.data[2]=34,e.data[3]=255,e.data[4]=45,e.data[5]=56,e.data[6]=67,e.data[7]=255,t.putImageData(e,0,0),e=null,e=t.getImageData(0,0,2,1),e.data[0]===12&&e.data[1]===23&&e.data[2]===34&&e.data[3]===255&&e.data[4]===45&&e.data[5]===56&&e.data[6]===67&&e.data[7]===255&&(n=!0)}catch{}return n},I.exports.cib_can_use_region=function(){return new Promise(function(A){if(typeof createImageBitmap>"u"){A(!1);return}var n=new Image;n.src="data:image/jpeg;base64,/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRcZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRAf/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z",n.onload=function(){createImageBitmap(n,0,0,n.width,n.height).then(function(a){a.width===n.width&&a.height===n.height?A(!0):A(!1)},function(){return A(!1)})},n.onerror=function(){return A(!1)}})}},{}],17:[function(d,I,G){I.exports=function(){var v=d("./mathlib"),o;onmessage=function(n){var a=n.data.opts;if(!a.src&&a.srcBitmap){var t=new OffscreenCanvas(a.width,a.height),e=t.getContext("2d",{alpha:!!a.alpha});e.drawImage(a.srcBitmap,0,0),a.src=e.getImageData(0,0,a.width,a.height).data,t.width=t.height=0,t=null,a.srcBitmap.close(),a.srcBitmap=null}o||(o=new v(n.data.features));var i=o.resizeAndUnsharp(a);postMessage({data:i},[i.buffer])}}},{"./mathlib":1}],18:[function(d,I,G){var v,o,A,n,a,t,e,i;function h(_){_<.5&&(_=.5);var p=Math.exp(.726*.726)/_,m=Math.exp(-p),w=Math.exp(-2*p),B=(1-m)*(1-m)/(1+2*p*m-w);return v=B,o=B*(p-1)*m,A=B*(p+1)*m,n=-B*w,a=2*m,t=-w,e=(v+o)/(1-a-t),i=(A+n)/(1-a-t),new Float32Array([v,o,A,n,a,t,e,i])}function c(_,p,m,w,B,y){var E,R,b,F,D,x,S,j,k,r,u,s,l,g;for(k=0;k=0;r--)b=R*u+E*s+F*l+D*g,D=F,F=b,E=R,R=_[x],p[S]=m[j]+F,x--,j--,S-=y}}function f(_,p,m,w){if(w){var B=new Uint16Array(_.length),y=new Float32Array(Math.max(p,m)),E=h(w);c(_,B,y,E,p,m),c(B,_,y,E,m,p)}}I.exports=f},{}],19:[function(d,I,G){typeof Object.create=="function"?I.exports=function(o,A){A&&(o.super_=A,o.prototype=Object.create(A.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}))}:I.exports=function(o,A){if(A){o.super_=A;var n=function(){};n.prototype=A.prototype,o.prototype=new n,o.prototype.constructor=o}}},{}],20:[function(d,I,G){var v=d("object-assign"),o=d("./lib/base64decode"),A=d("./lib/wa_detect"),n={js:!0,wasm:!0};function a(t){if(!(this instanceof a))return new a(t);var e=v({},n,t||{});if(this.options=e,this.__cache={},this.__init_promise=null,this.__modules=e.modules||{},this.__memory=null,this.__wasm={},this.__isLE=new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]===1,!this.options.js&&!this.options.wasm)throw new Error('mathlib: at least "js" or "wasm" should be enabled')}a.prototype.has_wasm=A,a.prototype.use=function(t){return this.__modules[t.name]=t,this.options.wasm&&this.has_wasm()&&t.wasm_fn?this[t.name]=t.wasm_fn:this[t.name]=t.fn,this},a.prototype.init=function(){if(this.__init_promise)return this.__init_promise;if(!this.options.js&&this.options.wasm&&!this.has_wasm())return Promise.reject(new Error(`mathlib: only "wasm" was enabled, but it's not supported`));var t=this;return this.__init_promise=Promise.all(Object.keys(t.__modules).map(function(e){var i=t.__modules[e];return!t.options.wasm||!t.has_wasm()||!i.wasm_fn||t.__wasm[e]?null:WebAssembly.compile(t.__base64decode(i.wasm_src)).then(function(h){t.__wasm[e]=h})})).then(function(){return t}),this.__init_promise},a.prototype.__base64decode=o,a.prototype.__reallocate=function(e){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(e/(64*1024))}),this.__memory;var i=this.__memory.buffer.byteLength;return i>2),e=0,i=0,h=0;h>16&255,t[i++]=e>>8&255,t[i++]=e&255),e=e<<6|v.indexOf(n.charAt(h));var c=a%4*6;return c===0?(t[i++]=e>>16&255,t[i++]=e>>8&255,t[i++]=e&255):c===18?(t[i++]=e>>10&255,t[i++]=e>>2&255):c===12&&(t[i++]=e>>4&255),t}},{}],22:[function(d,I,G){var v;I.exports=function(){if(typeof v<"u"||(v=!1,typeof WebAssembly>"u"))return v;try{var A=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),n=new WebAssembly.Module(A),a=new WebAssembly.Instance(n,{});return a.exports.test(4)!==0&&(v=!0),v}catch{}return v}},{}],23:[function(d,I,G){var v=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;function n(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function a(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},i=0;i<10;i++)e["_"+String.fromCharCode(i)]=i;var h=Object.getOwnPropertyNames(e).map(function(f){return e[f]});if(h.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(f){c[f]=f}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}I.exports=a()?Object.assign:function(t,e){for(var i,h=n(t),c,f=1;fr.length)&&(u=r.length);for(var s=0,l=new Array(u);s=0)}catch{}var y=1;typeof navigator<"u"&&(y=Math.min(navigator.hardwareConcurrency||1,4));var E={tile:1024,concurrency:y,features:["js","wasm","ww"],idle:2e3,createCanvas:function(u,s){var l=document.createElement("canvas");return l.width=u,l.height=s,l}},R={quality:3,alpha:!1,unsharpAmount:0,unsharpRadius:0,unsharpThreshold:0},b=!1,F=!1,D=!1,x=!1,S=!1;function j(){return{value:i(_),destroy:function(){if(this.value.terminate(),typeof window<"u"){var u=window.URL||window.webkitURL||window.mozURL||window.msURL;u&&u.revokeObjectURL&&this.value.objectURL&&u.revokeObjectURL(this.value.objectURL)}}}}function k(r){if(!(this instanceof k))return new k(r);this.options=e({},E,r||{});var u="lk_".concat(this.options.concurrency);this.__limit=w[u]||f.limiter(this.options.concurrency),w[u]||(w[u]=this.__limit),this.features={js:!1,wasm:!1,cib:!1,ww:!1},this.__workersPool=null,this.__requested_features=[],this.__mathlib=null}k.prototype.init=function(){var r=this;if(this.__initPromise)return this.__initPromise;if(typeof ImageData<"u"&&typeof Uint8ClampedArray<"u")try{new ImageData(new Uint8ClampedArray(400),10,10),b=!0}catch{}typeof ImageBitmap<"u"&&(ImageBitmap.prototype&&ImageBitmap.prototype.close?F=!0:this.debug("ImageBitmap does not support .close(), disabled"));var u=this.options.features.slice();if(u.indexOf("all")>=0&&(u=["cib","wasm","js","ww"]),this.__requested_features=u,this.__mathlib=new h(u),u.indexOf("ww")>=0&&typeof window<"u"&&"Worker"in window)try{var s=d("webworkify")(function(){});s.terminate(),this.features.ww=!0;var l="wp_".concat(JSON.stringify(this.options));w[l]?this.__workersPool=w[l]:(this.__workersPool=new c(j,this.options.idle),w[l]=this.__workersPool)}catch{}var g=this.__mathlib.init().then(function(U){e(r.features,U.features)}),M;F?M=f.cib_support(this.options.createCanvas).then(function(U){if(r.features.cib&&u.indexOf("cib")<0){r.debug("createImageBitmap() resize supported, but disabled by config");return}u.indexOf("cib")>=0&&(r.features.cib=U)}):M=Promise.resolve(!1),D=f.can_use_canvas(this.options.createCanvas);var C;F&&b&&u.indexOf("ww")!==-1?C=f.worker_offscreen_canvas_support():C=Promise.resolve(!1),C=C.then(function(U){x=U});var Q=f.cib_can_use_region().then(function(U){S=U});return this.__initPromise=Promise.all([g,M,C,Q]).then(function(){return r}),this.__initPromise},k.prototype.__invokeResize=function(r,u){var s=this;return u.__mathCache=u.__mathCache||{},Promise.resolve().then(function(){return s.features.ww?new Promise(function(l,g){var M=s.__workersPool.acquire();u.cancelToken&&u.cancelToken.catch(function(Q){return g(Q)}),M.value.onmessage=function(Q){M.release(),Q.data.err?g(Q.data.err):l(Q.data)};var C=[];r.src&&C.push(r.src.buffer),r.srcBitmap&&C.push(r.srcBitmap),M.value.postMessage({opts:r,features:s.__requested_features,preload:{wasm_nodule:s.__mathlib.__}},C)}):{data:s.__mathlib.resizeAndUnsharp(r,u.__mathCache)}})},k.prototype.__extractTileData=function(r,u,s,l,g){if(this.features.ww&&x&&(f.isCanvas(u)||S))return this.debug("Create tile for OffscreenCanvas"),createImageBitmap(l.srcImageBitmap||u,r.x,r.y,r.width,r.height).then(function(Q){return g.srcBitmap=Q,g});if(f.isCanvas(u))return l.srcCtx||(l.srcCtx=u.getContext("2d",{alpha:!!s.alpha})),this.debug("Get tile pixel data"),g.src=l.srcCtx.getImageData(r.x,r.y,r.width,r.height).data,g;this.debug("Draw tile imageBitmap/image to temporary canvas");var M=this.options.createCanvas(r.width,r.height),C=M.getContext("2d",{alpha:!!s.alpha});return C.globalCompositeOperation="copy",C.drawImage(l.srcImageBitmap||u,r.x,r.y,r.width,r.height,0,0,r.width,r.height),this.debug("Get tile pixel data"),g.src=C.getImageData(0,0,r.width,r.height).data,M.width=M.height=0,g},k.prototype.__landTileData=function(r,u,s){var l;if(this.debug("Convert raw rgba tile result to ImageData"),u.bitmap)return s.toCtx.drawImage(u.bitmap,r.toX,r.toY),null;if(b)l=new ImageData(new Uint8ClampedArray(u.data),r.toWidth,r.toHeight);else if(l=s.toCtx.createImageData(r.toWidth,r.toHeight),l.data.set)l.data.set(u.data);else for(var g=l.data.length-1;g>=0;g--)l.data[g]=u.data[g];return this.debug("Draw tile"),B?s.toCtx.putImageData(l,r.toX,r.toY,r.toInnerX-r.toX,r.toInnerY-r.toY,r.toInnerWidth+1e-5,r.toInnerHeight+1e-5):s.toCtx.putImageData(l,r.toX,r.toY,r.toInnerX-r.toX,r.toInnerY-r.toY,r.toInnerWidth,r.toInnerHeight),null},k.prototype.__tileAndResize=function(r,u,s){var l=this,g={srcCtx:null,srcImageBitmap:null,isImageBitmapReused:!1,toCtx:null},M=function(Q){return l.__limit(function(){if(s.canceled)return s.cancelToken;var U={width:Q.width,height:Q.height,toWidth:Q.toWidth,toHeight:Q.toHeight,scaleX:Q.scaleX,scaleY:Q.scaleY,offsetX:Q.offsetX,offsetY:Q.offsetY,quality:s.quality,alpha:s.alpha,unsharpAmount:s.unsharpAmount,unsharpRadius:s.unsharpRadius,unsharpThreshold:s.unsharpThreshold};return l.debug("Invoke resize math"),Promise.resolve(U).then(function(O){return l.__extractTileData(Q,r,s,g,O)}).then(function(O){return l.debug("Invoke resize math"),l.__invokeResize(O,s)}).then(function(O){return s.canceled?s.cancelToken:(g.srcImageData=null,l.__landTileData(Q,O,g))})})};return Promise.resolve().then(function(){if(g.toCtx=u.getContext("2d",{alpha:!!s.alpha}),f.isCanvas(r))return null;if(f.isImageBitmap(r))return g.srcImageBitmap=r,g.isImageBitmapReused=!0,null;if(f.isImage(r))return F?(l.debug("Decode image via createImageBitmap"),createImageBitmap(r).then(function(C){g.srcImageBitmap=C}).catch(function(C){return null})):null;throw new Error('Pica: ".from" should be Image, Canvas or ImageBitmap')}).then(function(){if(s.canceled)return s.cancelToken;l.debug("Calculate tiles");var C=m({width:s.width,height:s.height,srcTileSize:l.options.tile,toWidth:s.toWidth,toHeight:s.toHeight,destTileBorder:s.__destTileBorder}),Q=C.map(function(O){return M(O)});function U(O){O.srcImageBitmap&&(O.isImageBitmapReused||O.srcImageBitmap.close(),O.srcImageBitmap=null)}return l.debug("Process tiles"),Promise.all(Q).then(function(){return l.debug("Finished!"),U(g),u},function(O){throw U(g),O})})},k.prototype.__processStages=function(r,u,s,l){var g=this;if(l.canceled)return l.cancelToken;var M=r.shift(),C=v(M,2),Q=C[0],U=C[1],O=r.length===0;l=e({},l,{toWidth:Q,toHeight:U,quality:O?l.quality:Math.min(1,l.quality)});var P;return O||(P=this.options.createCanvas(Q,U)),this.__tileAndResize(u,O?s:P,l).then(function(){return O?s:(l.width=Q,l.height=U,g.__processStages(r,P,s,l))}).then(function(L){return P&&(P.width=P.height=0),L})},k.prototype.__resizeViaCreateImageBitmap=function(r,u,s){var l=this,g=u.getContext("2d",{alpha:!!s.alpha});return this.debug("Resize via createImageBitmap()"),createImageBitmap(r,{resizeWidth:s.toWidth,resizeHeight:s.toHeight,resizeQuality:f.cib_quality_name(s.quality)}).then(function(M){if(s.canceled)return s.cancelToken;if(!s.unsharpAmount)return g.drawImage(M,0,0),M.close(),g=null,l.debug("Finished!"),u;l.debug("Unsharp result");var C=l.options.createCanvas(s.toWidth,s.toHeight),Q=C.getContext("2d",{alpha:!!s.alpha});Q.drawImage(M,0,0),M.close();var U=Q.getImageData(0,0,s.toWidth,s.toHeight);return l.__mathlib.unsharp_mask(U.data,s.toWidth,s.toHeight,s.unsharpAmount,s.unsharpRadius,s.unsharpThreshold),g.putImageData(U,0,0),C.width=C.height=0,U=Q=C=g=null,l.debug("Finished!"),u})},k.prototype.resize=function(r,u,s){var l=this;this.debug("Start resize...");var g=e({},R);if(isNaN(s)?s&&(g=e(g,s)):g=e(g,{quality:s}),g.toWidth=u.width,g.toHeight=u.height,g.width=r.naturalWidth||r.width,g.height=r.naturalHeight||r.height,u.width===0||u.height===0)return Promise.reject(new Error("Invalid output size: ".concat(u.width,"x").concat(u.height)));g.unsharpRadius>2&&(g.unsharpRadius=2),g.canceled=!1,g.cancelToken&&(g.cancelToken=g.cancelToken.then(function(C){throw g.canceled=!0,C},function(C){throw g.canceled=!0,C}));var M=3;return g.__destTileBorder=Math.ceil(Math.max(M,2.5*g.unsharpRadius|0)),this.init().then(function(){if(g.canceled)return g.cancelToken;if(l.features.cib)return l.__resizeViaCreateImageBitmap(r,u,g);if(!D){var C=new Error("Pica: cannot use getImageData on canvas, make sure fingerprinting protection isn't enabled");throw C.code="ERR_GET_IMAGE_DATA",C}var Q=p(g.width,g.height,g.toWidth,g.toHeight,l.options.tile,g.__destTileBorder);return l.__processStages(Q,r,u,g)})},k.prototype.resizeBuffer=function(r){var u=this,s=e({},R,r);return this.init().then(function(){return u.__mathlib.resizeAndUnsharp(s)})},k.prototype.toBlob=function(r,u,s){return u=u||"image/png",new Promise(function(l){if(r.toBlob){r.toBlob(function(U){return l(U)},u,s);return}if(r.convertToBlob){l(r.convertToBlob({type:u,quality:s}));return}for(var g=atob(r.toDataURL(u,s).split(",")[1]),M=g.length,C=new Uint8Array(M),Q=0;Q= 0,\n wasm: __requested_features.indexOf('wasm') >= 0\n };\n Multimath.call(this, features);\n this.features = {\n js: features.js,\n wasm: features.wasm && this.has_wasm()\n };\n this.use(mm_unsharp_mask);\n this.use(mm_resize);\n}\n\ninherits(MathLib, Multimath);\n\nMathLib.prototype.resizeAndUnsharp = function resizeAndUnsharp(options, cache) {\n var result = this.resize(options, cache);\n\n if (options.unsharpAmount) {\n this.unsharp_mask(result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold);\n }\n\n return result;\n};\n\nmodule.exports = MathLib;\n\n},{\"./mm_resize\":4,\"./mm_unsharp_mask\":9,\"inherits\":19,\"multimath\":20}],2:[function(_dereq_,module,exports){\n// Resize convolvers, pure JS implementation\n//\n'use strict'; // Precision of fixed FP values\n//var FIXED_FRAC_BITS = 14;\n\nfunction clampTo8(i) {\n return i < 0 ? 0 : i > 255 ? 255 : i;\n} // Convolve image in horizontal directions and transpose output. In theory,\n// transpose allow:\n//\n// - use the same convolver for both passes (this fails due different\n// types of input array and temporary buffer)\n// - making vertical pass by horisonltal lines inprove CPU cache use.\n//\n// But in real life this doesn't work :)\n//\n\n\nfunction convolveHorizontally(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Bring this value back in range. All of the filter scaling factors\n // are in fixed point with FIXED_FRAC_BITS bits of fractional part.\n //\n // (!) Add 1/2 of value before clamping to get proper rounding. In other\n // case brightness loss will be noticeable if you resize image with white\n // border and place it on white background.\n //\n\n\n dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n} // Technically, convolvers are the same. But input array and temporary\n// buffer can be of different type (especially, in old browsers). So,\n// keep code in separate functions to avoid deoptimizations & speed loss.\n\n\nfunction convolveVertically(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Bring this value back in range. All of the filter scaling factors\n // are in fixed point with FIXED_FRAC_BITS bits of fractional part.\n //\n // (!) Add 1/2 of value before clamping to get proper rounding. In other\n // case brightness loss will be noticeable if you resize image with white\n // border and place it on white background.\n //\n\n\n dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14\n /*FIXED_FRAC_BITS*/\n );\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n}\n\nmodule.exports = {\n convolveHorizontally: convolveHorizontally,\n convolveVertically: convolveVertically\n};\n\n},{}],3:[function(_dereq_,module,exports){\n// This is autogenerated file from math.wasm, don't edit.\n//\n'use strict';\n/* eslint-disable max-len */\n\nmodule.exports = 'AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEXA2AAAGAGf39/f39/AGAHf39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMEAwABAgYGAX8AQQALB1cFEV9fd2FzbV9jYWxsX2N0b3JzAAAIY29udm9sdmUAAQpjb252b2x2ZUhWAAIMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAK7AMDAwABC8YDAQ9/AkAgA0UNACAERQ0AA0AgDCENQQAhE0EAIQcDQCAHQQJqIQYCfyAHQQF0IAVqIgcuAQIiFEUEQEGAwAAhCEGAwAAhCUGAwAAhCkGAwAAhCyAGDAELIBIgBy4BAGohCEEAIQsgFCEHQQAhDiAGIQlBACEPQQAhEANAIAUgCUEBdGouAQAiESAAIAhBAnRqKAIAIgpBGHZsIBBqIRAgCkH/AXEgEWwgC2ohCyAKQRB2Qf8BcSARbCAPaiEPIApBCHZB/wFxIBFsIA5qIQ4gCEEBaiEIIAlBAWohCSAHQQFrIgcNAAsgC0GAQGshCCAOQYBAayEJIA9BgEBrIQogEEGAQGshCyAGIBRqCyEHIAEgDUECdGogCUEOdSIGQf8BIAZB/wFIGyIGQQAgBkEAShtBCHRBgP4DcSAKQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EQdEGAgPwHcSALQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobcjYCACADIA1qIQ0gE0EBaiITIARHDQALIAxBAWoiDCACbCESIAMgDEcNAAsLCx4AQQAgAiADIAQgBSAAEAEgAkEAIAQgBSAGIAEQAQs=';\n\n},{}],4:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n name: 'resize',\n fn: _dereq_('./resize'),\n wasm_fn: _dereq_('./resize_wasm'),\n wasm_src: _dereq_('./convolve_wasm_base64')\n};\n\n},{\"./convolve_wasm_base64\":3,\"./resize\":5,\"./resize_wasm\":8}],5:[function(_dereq_,module,exports){\n'use strict';\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nvar convolveHorizontally = _dereq_('./convolve').convolveHorizontally;\n\nvar convolveVertically = _dereq_('./convolve').convolveVertically;\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nmodule.exports = function resize(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0;\n var offsetY = options.offsetY || 0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var quality = typeof options.quality === 'undefined' ? 3 : options.quality;\n var alpha = options.alpha || false;\n var filtersX = createFilters(quality, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(quality, srcH, destH, scaleY, offsetY);\n var tmp = new Uint8Array(destW * srcH * 4); // To use single function we need src & tmp of the same type.\n // But src can be CanvasPixelArray, and tmp - Uint8Array. So, keep\n // vertical and horizontal passes separately to avoid deoptimization.\n\n convolveHorizontally(src, tmp, srcW, srcH, destW, filtersX);\n convolveVertically(tmp, dest, srcH, destW, destH, filtersY); // That's faster than doing checks in convolver.\n // !!! Note, canvas data is not premultipled. We don't need other\n // alpha corrections.\n\n if (!alpha) resetAlpha(dest, destW, destH);\n return dest;\n};\n\n},{\"./convolve\":2,\"./resize_filter_gen\":6}],6:[function(_dereq_,module,exports){\n// Calculate convolution filters for each destination point,\n// and pack data to Int16Array:\n//\n// [ shift, length, data..., shift2, length2, data..., ... ]\n//\n// - shift - offset in src image\n// - length - filter length (in src points)\n// - data - filter values sequence\n//\n'use strict';\n\nvar FILTER_INFO = _dereq_('./resize_filter_info'); // Precision of fixed FP values\n\n\nvar FIXED_FRAC_BITS = 14;\n\nfunction toFixedPoint(num) {\n return Math.round(num * ((1 << FIXED_FRAC_BITS) - 1));\n}\n\nmodule.exports = function resizeFilterGen(quality, srcSize, destSize, scale, offset) {\n var filterFunction = FILTER_INFO[quality].filter;\n var scaleInverted = 1.0 / scale;\n var scaleClamped = Math.min(1.0, scale); // For upscale\n // Filter window (averaging interval), scaled to src image\n\n var srcWindow = FILTER_INFO[quality].win / scaleClamped;\n var destPixel, srcPixel, srcFirst, srcLast, filterElementSize, floatFilter, fxpFilter, total, pxl, idx, floatVal, filterTotal, filterVal;\n var leftNotEmpty, rightNotEmpty, filterShift, filterSize;\n var maxFilterElementSize = Math.floor((srcWindow + 1) * 2);\n var packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);\n var packedFilterPtr = 0;\n var slowCopy = !packedFilter.subarray || !packedFilter.set; // For each destination pixel calculate source range and built filter values\n\n for (destPixel = 0; destPixel < destSize; destPixel++) {\n // Scaling should be done relative to central pixel point\n srcPixel = (destPixel + 0.5) * scaleInverted + offset;\n srcFirst = Math.max(0, Math.floor(srcPixel - srcWindow));\n srcLast = Math.min(srcSize - 1, Math.ceil(srcPixel + srcWindow));\n filterElementSize = srcLast - srcFirst + 1;\n floatFilter = new Float32Array(filterElementSize);\n fxpFilter = new Int16Array(filterElementSize);\n total = 0.0; // Fill filter values for calculated range\n\n for (pxl = srcFirst, idx = 0; pxl <= srcLast; pxl++, idx++) {\n floatVal = filterFunction((pxl + 0.5 - srcPixel) * scaleClamped);\n total += floatVal;\n floatFilter[idx] = floatVal;\n } // Normalize filter, convert to fixed point and accumulate conversion error\n\n\n filterTotal = 0;\n\n for (idx = 0; idx < floatFilter.length; idx++) {\n filterVal = floatFilter[idx] / total;\n filterTotal += filterVal;\n fxpFilter[idx] = toFixedPoint(filterVal);\n } // Compensate normalization error, to minimize brightness drift\n\n\n fxpFilter[destSize >> 1] += toFixedPoint(1.0 - filterTotal); //\n // Now pack filter to useable form\n //\n // 1. Trim heading and tailing zero values, and compensate shitf/length\n // 2. Put all to single array in this format:\n //\n // [ pos shift, data length, value1, value2, value3, ... ]\n //\n\n leftNotEmpty = 0;\n\n while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) {\n leftNotEmpty++;\n }\n\n if (leftNotEmpty < fxpFilter.length) {\n rightNotEmpty = fxpFilter.length - 1;\n\n while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) {\n rightNotEmpty--;\n }\n\n filterShift = srcFirst + leftNotEmpty;\n filterSize = rightNotEmpty - leftNotEmpty + 1;\n packedFilter[packedFilterPtr++] = filterShift; // shift\n\n packedFilter[packedFilterPtr++] = filterSize; // size\n\n if (!slowCopy) {\n packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);\n packedFilterPtr += filterSize;\n } else {\n // fallback for old IE < 11, without subarray/set methods\n for (idx = leftNotEmpty; idx <= rightNotEmpty; idx++) {\n packedFilter[packedFilterPtr++] = fxpFilter[idx];\n }\n }\n } else {\n // zero data, write header only\n packedFilter[packedFilterPtr++] = 0; // shift\n\n packedFilter[packedFilterPtr++] = 0; // size\n }\n }\n\n return packedFilter;\n};\n\n},{\"./resize_filter_info\":7}],7:[function(_dereq_,module,exports){\n// Filter definitions to build tables for\n// resizing convolvers.\n//\n// Presets for quality 0..3. Filter functions + window size\n//\n'use strict';\n\nmodule.exports = [{\n // Nearest neibor (Box)\n win: 0.5,\n filter: function filter(x) {\n return x >= -0.5 && x < 0.5 ? 1.0 : 0.0;\n }\n}, {\n // Hamming\n win: 1.0,\n filter: function filter(x) {\n if (x <= -1.0 || x >= 1.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * (0.54 + 0.46 * Math.cos(xpi / 1.0));\n }\n}, {\n // Lanczos, win = 2\n win: 2.0,\n filter: function filter(x) {\n if (x <= -2.0 || x >= 2.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 2.0) / (xpi / 2.0);\n }\n}, {\n // Lanczos, win = 3\n win: 3.0,\n filter: function filter(x) {\n if (x <= -3.0 || x >= 3.0) {\n return 0.0;\n }\n\n if (x > -1.19209290E-07 && x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 3.0) / (xpi / 3.0);\n }\n}];\n\n},{}],8:[function(_dereq_,module,exports){\n'use strict';\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nfunction asUint8Array(src) {\n return new Uint8Array(src.buffer, 0, src.byteLength);\n}\n\nvar IS_LE = true; // should not crash everything on module load in old browsers\n\ntry {\n IS_LE = new Uint32Array(new Uint8Array([1, 0, 0, 0]).buffer)[0] === 1;\n} catch (__) {}\n\nfunction copyInt16asLE(src, target, target_offset) {\n if (IS_LE) {\n target.set(asUint8Array(src), target_offset);\n return;\n }\n\n for (var ptr = target_offset, i = 0; i < src.length; i++) {\n var data = src[i];\n target[ptr++] = data & 0xFF;\n target[ptr++] = data >> 8 & 0xFF;\n }\n}\n\nmodule.exports = function resize_wasm(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0.0;\n var offsetY = options.offsetY || 0.0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var quality = typeof options.quality === 'undefined' ? 3 : options.quality;\n var alpha = options.alpha || false;\n var filtersX = createFilters(quality, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(quality, srcH, destH, scaleY, offsetY); // destination is 0 too.\n\n var src_offset = 0; // buffer between convolve passes\n\n var tmp_offset = this.__align(src_offset + Math.max(src.byteLength, dest.byteLength));\n\n var filtersX_offset = this.__align(tmp_offset + srcH * destW * 4);\n\n var filtersY_offset = this.__align(filtersX_offset + filtersX.byteLength);\n\n var alloc_bytes = filtersY_offset + filtersY.byteLength;\n\n var instance = this.__instance('resize', alloc_bytes); //\n // Fill memory block with data to process\n //\n\n\n var mem = new Uint8Array(this.__memory.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer); // 32-bit copy is much faster in chrome\n\n var src32 = new Uint32Array(src.buffer);\n mem32.set(src32); // We should guarantee LE bytes order. Filters are not big, so\n // speed difference is not significant vs direct .set()\n\n copyInt16asLE(filtersX, mem, filtersX_offset);\n copyInt16asLE(filtersY, mem, filtersY_offset); //\n // Now call webassembly method\n // emsdk does method names with '_'\n\n var fn = instance.exports.convolveHV || instance.exports._convolveHV;\n fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH); //\n // Copy data back to typed array\n //\n // 32-bit copy is much faster in chrome\n\n var dest32 = new Uint32Array(dest.buffer);\n dest32.set(new Uint32Array(this.__memory.buffer, 0, destH * destW)); // That's faster than doing checks in convolver.\n // !!! Note, canvas data is not premultipled. We don't need other\n // alpha corrections.\n\n if (!alpha) resetAlpha(dest, destW, destH);\n return dest;\n};\n\n},{\"./resize_filter_gen\":6}],9:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n name: 'unsharp_mask',\n fn: _dereq_('./unsharp_mask'),\n wasm_fn: _dereq_('./unsharp_mask_wasm'),\n wasm_src: _dereq_('./unsharp_mask_wasm_base64')\n};\n\n},{\"./unsharp_mask\":10,\"./unsharp_mask_wasm\":11,\"./unsharp_mask_wasm_base64\":12}],10:[function(_dereq_,module,exports){\n// Unsharp mask filter\n//\n// http://stackoverflow.com/a/23322820/1031804\n// USM(O) = O + (2 * (Amount / 100) * (O - GB))\n// GB - gaussian blur.\n//\n// Image is converted from RGB to HSV, unsharp mask is applied to the\n// brightness channel and then image is converted back to RGB.\n//\n'use strict';\n\nvar glur_mono16 = _dereq_('glur/mono16');\n\nfunction hsv_v16(img, width, height) {\n var size = width * height;\n var out = new Uint16Array(size);\n var r, g, b, max;\n\n for (var i = 0; i < size; i++) {\n r = img[4 * i];\n g = img[4 * i + 1];\n b = img[4 * i + 2];\n max = r >= g && r >= b ? r : g >= b && g >= r ? g : b;\n out[i] = max << 8;\n }\n\n return out;\n}\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n var v1, v2, vmul;\n var diff, iTimes4;\n\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var brightness = hsv_v16(img, width, height);\n var blured = new Uint16Array(brightness); // copy, because blur modify src\n\n glur_mono16(blured, width, height, radius);\n var amountFp = amount / 100 * 0x1000 + 0.5 | 0;\n var thresholdFp = threshold << 8;\n var size = width * height;\n /* eslint-disable indent */\n\n for (var i = 0; i < size; i++) {\n v1 = brightness[i];\n diff = v1 - blured[i];\n\n if (Math.abs(diff) >= thresholdFp) {\n // add unsharp mask to the brightness channel\n v2 = v1 + (amountFp * diff + 0x800 >> 12); // Both v1 and v2 are within [0.0 .. 255.0] (0000-FF00) range, never going into\n // [255.003 .. 255.996] (FF01-FFFF). This allows to round this value as (x+.5)|0\n // later without overflowing.\n\n v2 = v2 > 0xff00 ? 0xff00 : v2;\n v2 = v2 < 0x0000 ? 0x0000 : v2; // Avoid division by 0. V=0 means rgb(0,0,0), unsharp with unsharpAmount>0 cannot\n // change this value (because diff between colors gets inflated), so no need to verify correctness.\n\n v1 = v1 !== 0 ? v1 : 1; // Multiplying V in HSV model by a constant is equivalent to multiplying each component\n // in RGB by the same constant (same for HSL), see also:\n // https://beesbuzz.biz/code/16-hsv-color-transforms\n\n vmul = (v2 << 12) / v1 | 0; // Result will be in [0..255] range because:\n // - all numbers are positive\n // - r,g,b <= (v1/256)\n // - r,g,b,(v1/256),(v2/256) <= 255\n // So highest this number can get is X*255/X+0.5=255.5 which is < 256 and rounds down.\n\n iTimes4 = i * 4;\n img[iTimes4] = img[iTimes4] * vmul + 0x800 >> 12; // R\n\n img[iTimes4 + 1] = img[iTimes4 + 1] * vmul + 0x800 >> 12; // G\n\n img[iTimes4 + 2] = img[iTimes4 + 2] * vmul + 0x800 >> 12; // B\n }\n }\n};\n\n},{\"glur/mono16\":18}],11:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var pixels = width * height;\n var img_bytes_cnt = pixels * 4;\n var hsv_bytes_cnt = pixels * 2;\n var blur_bytes_cnt = pixels * 2;\n var blur_line_byte_cnt = Math.max(width, height) * 4; // float32 array\n\n var blur_coeffs_byte_cnt = 8 * 4; // float32 array\n\n var img_offset = 0;\n var hsv_offset = img_bytes_cnt;\n var blur_offset = hsv_offset + hsv_bytes_cnt;\n var blur_tmp_offset = blur_offset + blur_bytes_cnt;\n var blur_line_offset = blur_tmp_offset + blur_bytes_cnt;\n var blur_coeffs_offset = blur_line_offset + blur_line_byte_cnt;\n\n var instance = this.__instance('unsharp_mask', img_bytes_cnt + hsv_bytes_cnt + blur_bytes_cnt * 2 + blur_line_byte_cnt + blur_coeffs_byte_cnt, {\n exp: Math.exp\n }); // 32-bit copy is much faster in chrome\n\n\n var img32 = new Uint32Array(img.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer);\n mem32.set(img32); // HSL\n\n var fn = instance.exports.hsv_v16 || instance.exports._hsv_v16;\n fn(img_offset, hsv_offset, width, height); // BLUR\n\n fn = instance.exports.blurMono16 || instance.exports._blurMono16;\n fn(hsv_offset, blur_offset, blur_tmp_offset, blur_line_offset, blur_coeffs_offset, width, height, radius); // UNSHARP\n\n fn = instance.exports.unsharp || instance.exports._unsharp;\n fn(img_offset, img_offset, hsv_offset, blur_offset, width, height, amount, threshold); // 32-bit copy is much faster in chrome\n\n img32.set(new Uint32Array(this.__memory.buffer, 0, pixels));\n};\n\n},{}],12:[function(_dereq_,module,exports){\n// This is autogenerated file from math.wasm, don't edit.\n//\n'use strict';\n/* eslint-disable max-len */\n\nmodule.exports = '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';\n\n},{}],13:[function(_dereq_,module,exports){\n'use strict';\n\nvar GC_INTERVAL = 100;\n\nfunction Pool(create, idle) {\n this.create = create;\n this.available = [];\n this.acquired = {};\n this.lastId = 1;\n this.timeoutId = 0;\n this.idle = idle || 2000;\n}\n\nPool.prototype.acquire = function () {\n var _this = this;\n\n var resource;\n\n if (this.available.length !== 0) {\n resource = this.available.pop();\n } else {\n resource = this.create();\n resource.id = this.lastId++;\n\n resource.release = function () {\n return _this.release(resource);\n };\n }\n\n this.acquired[resource.id] = resource;\n return resource;\n};\n\nPool.prototype.release = function (resource) {\n var _this2 = this;\n\n delete this.acquired[resource.id];\n resource.lastUsed = Date.now();\n this.available.push(resource);\n\n if (this.timeoutId === 0) {\n this.timeoutId = setTimeout(function () {\n return _this2.gc();\n }, GC_INTERVAL);\n }\n};\n\nPool.prototype.gc = function () {\n var _this3 = this;\n\n var now = Date.now();\n this.available = this.available.filter(function (resource) {\n if (now - resource.lastUsed > _this3.idle) {\n resource.destroy();\n return false;\n }\n\n return true;\n });\n\n if (this.available.length !== 0) {\n this.timeoutId = setTimeout(function () {\n return _this3.gc();\n }, GC_INTERVAL);\n } else {\n this.timeoutId = 0;\n }\n};\n\nmodule.exports = Pool;\n\n},{}],14:[function(_dereq_,module,exports){\n// Add intermediate resizing steps when scaling down by a very large factor.\n//\n// For example, when resizing 10000x10000 down to 10x10, it'll resize it to\n// 300x300 first.\n//\n// It's needed because tiler has issues when the entire tile is scaled down\n// to a few pixels (1024px source tile with border size 3 should result in\n// at least 3+3+2 = 8px target tile, so max scale factor is 128 here).\n//\n// Also, adding intermediate steps can speed up processing if we use lower\n// quality algorithms for first stages.\n//\n'use strict'; // min size = 0 results in infinite loop,\n// min size = 1 can consume large amount of memory\n\nvar MIN_INNER_TILE_SIZE = 2;\n\nmodule.exports = function createStages(fromWidth, fromHeight, toWidth, toHeight, srcTileSize, destTileBorder) {\n var scaleX = toWidth / fromWidth;\n var scaleY = toHeight / fromHeight; // derived from createRegions equation:\n // innerTileWidth = pixelFloor(srcTileSize * scaleX) - 2 * destTileBorder;\n\n var minScale = (2 * destTileBorder + MIN_INNER_TILE_SIZE + 1) / srcTileSize; // refuse to scale image multiple times by less than twice each time,\n // it could only happen because of invalid options\n\n if (minScale > 0.5) return [[toWidth, toHeight]];\n var stageCount = Math.ceil(Math.log(Math.min(scaleX, scaleY)) / Math.log(minScale)); // no additional resizes are necessary,\n // stageCount can be zero or be negative when enlarging the image\n\n if (stageCount <= 1) return [[toWidth, toHeight]];\n var result = [];\n\n for (var i = 0; i < stageCount; i++) {\n var width = Math.round(Math.pow(Math.pow(fromWidth, stageCount - i - 1) * Math.pow(toWidth, i + 1), 1 / stageCount));\n var height = Math.round(Math.pow(Math.pow(fromHeight, stageCount - i - 1) * Math.pow(toHeight, i + 1), 1 / stageCount));\n result.push([width, height]);\n }\n\n return result;\n};\n\n},{}],15:[function(_dereq_,module,exports){\n// Split original image into multiple 1024x1024 chunks to reduce memory usage\n// (images have to be unpacked into typed arrays for resizing) and allow\n// parallel processing of multiple tiles at a time.\n//\n'use strict';\n/*\n * pixelFloor and pixelCeil are modified versions of Math.floor and Math.ceil\n * functions which take into account floating point arithmetic errors.\n * Those errors can cause undesired increments/decrements of sizes and offsets:\n * Math.ceil(36 / (36 / 500)) = 501\n * pixelCeil(36 / (36 / 500)) = 500\n */\n\nvar PIXEL_EPSILON = 1e-5;\n\nfunction pixelFloor(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.floor(x);\n}\n\nfunction pixelCeil(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.ceil(x);\n}\n\nmodule.exports = function createRegions(options) {\n var scaleX = options.toWidth / options.width;\n var scaleY = options.toHeight / options.height;\n var innerTileWidth = pixelFloor(options.srcTileSize * scaleX) - 2 * options.destTileBorder;\n var innerTileHeight = pixelFloor(options.srcTileSize * scaleY) - 2 * options.destTileBorder; // prevent infinite loop, this should never happen\n\n if (innerTileWidth < 1 || innerTileHeight < 1) {\n throw new Error('Internal error in pica: target tile width/height is too small.');\n }\n\n var x, y;\n var innerX, innerY, toTileWidth, toTileHeight;\n var tiles = [];\n var tile; // we go top-to-down instead of left-to-right to make image displayed from top to\n // doesn in the browser\n\n for (innerY = 0; innerY < options.toHeight; innerY += innerTileHeight) {\n for (innerX = 0; innerX < options.toWidth; innerX += innerTileWidth) {\n x = innerX - options.destTileBorder;\n\n if (x < 0) {\n x = 0;\n }\n\n toTileWidth = innerX + innerTileWidth + options.destTileBorder - x;\n\n if (x + toTileWidth >= options.toWidth) {\n toTileWidth = options.toWidth - x;\n }\n\n y = innerY - options.destTileBorder;\n\n if (y < 0) {\n y = 0;\n }\n\n toTileHeight = innerY + innerTileHeight + options.destTileBorder - y;\n\n if (y + toTileHeight >= options.toHeight) {\n toTileHeight = options.toHeight - y;\n }\n\n tile = {\n toX: x,\n toY: y,\n toWidth: toTileWidth,\n toHeight: toTileHeight,\n toInnerX: innerX,\n toInnerY: innerY,\n toInnerWidth: innerTileWidth,\n toInnerHeight: innerTileHeight,\n offsetX: x / scaleX - pixelFloor(x / scaleX),\n offsetY: y / scaleY - pixelFloor(y / scaleY),\n scaleX: scaleX,\n scaleY: scaleY,\n x: pixelFloor(x / scaleX),\n y: pixelFloor(y / scaleY),\n width: pixelCeil(toTileWidth / scaleX),\n height: pixelCeil(toTileHeight / scaleY)\n };\n tiles.push(tile);\n }\n }\n\n return tiles;\n};\n\n},{}],16:[function(_dereq_,module,exports){\n'use strict';\n\nfunction objClass(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nmodule.exports.isCanvas = function isCanvas(element) {\n var cname = objClass(element);\n return cname === '[object HTMLCanvasElement]'\n /* browser */\n || cname === '[object OffscreenCanvas]' || cname === '[object Canvas]'\n /* node-canvas */\n ;\n};\n\nmodule.exports.isImage = function isImage(element) {\n return objClass(element) === '[object HTMLImageElement]';\n};\n\nmodule.exports.isImageBitmap = function isImageBitmap(element) {\n return objClass(element) === '[object ImageBitmap]';\n};\n\nmodule.exports.limiter = function limiter(concurrency) {\n var active = 0,\n queue = [];\n\n function roll() {\n if (active < concurrency && queue.length) {\n active++;\n queue.shift()();\n }\n }\n\n return function limit(fn) {\n return new Promise(function (resolve, reject) {\n queue.push(function () {\n fn().then(function (result) {\n resolve(result);\n active--;\n roll();\n }, function (err) {\n reject(err);\n active--;\n roll();\n });\n });\n roll();\n });\n };\n};\n\nmodule.exports.cib_quality_name = function cib_quality_name(num) {\n switch (num) {\n case 0:\n return 'pixelated';\n\n case 1:\n return 'low';\n\n case 2:\n return 'medium';\n }\n\n return 'high';\n};\n\nmodule.exports.cib_support = function cib_support(createCanvas) {\n return Promise.resolve().then(function () {\n if (typeof createImageBitmap === 'undefined') {\n return false;\n }\n\n var c = createCanvas(100, 100);\n return createImageBitmap(c, 0, 0, 100, 100, {\n resizeWidth: 10,\n resizeHeight: 10,\n resizeQuality: 'high'\n }).then(function (bitmap) {\n var status = bitmap.width === 10; // Branch below is filtered on upper level. We do not call resize\n // detection for basic ImageBitmap.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap\n // old Crome 51 has ImageBitmap without .close(). Then this code\n // will throw and return 'false' as expected.\n //\n\n bitmap.close();\n c = null;\n return status;\n });\n })[\"catch\"](function () {\n return false;\n });\n};\n\nmodule.exports.worker_offscreen_canvas_support = function worker_offscreen_canvas_support() {\n return new Promise(function (resolve, reject) {\n if (typeof OffscreenCanvas === 'undefined') {\n // if OffscreenCanvas is present, we assume browser supports Worker and built-in Promise as well\n resolve(false);\n return;\n }\n\n function workerPayload(self) {\n if (typeof createImageBitmap === 'undefined') {\n self.postMessage(false);\n return;\n }\n\n Promise.resolve().then(function () {\n var canvas = new OffscreenCanvas(10, 10); // test that 2d context can be used in worker\n\n var ctx = canvas.getContext('2d');\n ctx.rect(0, 0, 1, 1); // test that cib can be used to return image bitmap from worker\n\n return createImageBitmap(canvas, 0, 0, 1, 1);\n }).then(function () {\n return self.postMessage(true);\n }, function () {\n return self.postMessage(false);\n });\n }\n\n var code = btoa(\"(\".concat(workerPayload.toString(), \")(self);\"));\n var w = new Worker(\"data:text/javascript;base64,\".concat(code));\n\n w.onmessage = function (ev) {\n return resolve(ev.data);\n };\n\n w.onerror = reject;\n }).then(function (result) {\n return result;\n }, function () {\n return false;\n });\n}; // Check if canvas.getContext('2d').getImageData can be used,\n// FireFox randomizes the output of that function in `privacy.resistFingerprinting` mode\n\n\nmodule.exports.can_use_canvas = function can_use_canvas(createCanvas) {\n var usable = false;\n\n try {\n var canvas = createCanvas(2, 1);\n var ctx = canvas.getContext('2d');\n var d = ctx.createImageData(2, 1);\n d.data[0] = 12;\n d.data[1] = 23;\n d.data[2] = 34;\n d.data[3] = 255;\n d.data[4] = 45;\n d.data[5] = 56;\n d.data[6] = 67;\n d.data[7] = 255;\n ctx.putImageData(d, 0, 0);\n d = null;\n d = ctx.getImageData(0, 0, 2, 1);\n\n if (d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255) {\n usable = true;\n }\n } catch (err) {}\n\n return usable;\n}; // Check if createImageBitmap(img, sx, sy, sw, sh) signature works correctly\n// with JPEG images oriented with Exif;\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n// TODO: remove after it's fixed in chrome for at least 2 releases\n\n\nmodule.exports.cib_can_use_region = function cib_can_use_region() {\n return new Promise(function (resolve) {\n if (typeof createImageBitmap === 'undefined') {\n resolve(false);\n return;\n }\n\n var image = new Image();\n image.src = 'data:image/jpeg;base64,' + '/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAA' + 'AABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9' + 'sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRc' + 'ZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoa' + 'GhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRA' + 'f/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAA' + 'IQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAA' + 'AAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIB' + 'AT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAA' + 'AAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAA' + 'AAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQ' + 'QAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';\n\n image.onload = function () {\n createImageBitmap(image, 0, 0, image.width, image.height).then(function (bitmap) {\n if (bitmap.width === image.width && bitmap.height === image.height) {\n resolve(true);\n } else {\n resolve(false);\n }\n }, function () {\n return resolve(false);\n });\n };\n\n image.onerror = function () {\n return resolve(false);\n };\n });\n};\n\n},{}],17:[function(_dereq_,module,exports){\n// Web Worker wrapper for image resize function\n'use strict';\n\nmodule.exports = function () {\n var MathLib = _dereq_('./mathlib');\n\n var mathLib;\n /* eslint-disable no-undef */\n\n onmessage = function onmessage(ev) {\n var tileOpts = ev.data.opts;\n var returnBitmap = false;\n\n if (!tileOpts.src && tileOpts.srcBitmap) {\n var canvas = new OffscreenCanvas(tileOpts.width, tileOpts.height);\n var ctx = canvas.getContext('2d', {\n alpha: Boolean(tileOpts.alpha)\n });\n ctx.drawImage(tileOpts.srcBitmap, 0, 0);\n tileOpts.src = ctx.getImageData(0, 0, tileOpts.width, tileOpts.height).data;\n canvas.width = canvas.height = 0;\n canvas = null;\n tileOpts.srcBitmap.close();\n tileOpts.srcBitmap = null; // Temporary force out data to typed array, because Chrome have artefacts\n // https://github.com/nodeca/pica/issues/223\n // returnBitmap = true;\n }\n\n if (!mathLib) mathLib = new MathLib(ev.data.features); // Use multimath's sync auto-init. Avoid Promise use in old browsers,\n // because polyfills are not propagated to webworker.\n\n var data = mathLib.resizeAndUnsharp(tileOpts);\n\n if (returnBitmap) {\n var toImageData = new ImageData(new Uint8ClampedArray(data), tileOpts.toWidth, tileOpts.toHeight);\n\n var _canvas = new OffscreenCanvas(tileOpts.toWidth, tileOpts.toHeight);\n\n var _ctx = _canvas.getContext('2d', {\n alpha: Boolean(tileOpts.alpha)\n });\n\n _ctx.putImageData(toImageData, 0, 0);\n\n createImageBitmap(_canvas).then(function (bitmap) {\n postMessage({\n bitmap: bitmap\n }, [bitmap]);\n });\n } else {\n postMessage({\n data: data\n }, [data.buffer]);\n }\n };\n};\n\n},{\"./mathlib\":1}],18:[function(_dereq_,module,exports){\n// Calculate Gaussian blur of an image using IIR filter\n// The method is taken from Intel's white paper and code example attached to it:\n// https://software.intel.com/en-us/articles/iir-gaussian-blur-filter\n// -implementation-using-intel-advanced-vector-extensions\n\nvar a0, a1, a2, a3, b1, b2, left_corner, right_corner;\n\nfunction gaussCoef(sigma) {\n if (sigma < 0.5) {\n sigma = 0.5;\n }\n\n var a = Math.exp(0.726 * 0.726) / sigma,\n g1 = Math.exp(-a),\n g2 = Math.exp(-2 * a),\n k = (1 - g1) * (1 - g1) / (1 + 2 * a * g1 - g2);\n\n a0 = k;\n a1 = k * (a - 1) * g1;\n a2 = k * (a + 1) * g1;\n a3 = -k * g2;\n b1 = 2 * g1;\n b2 = -g2;\n left_corner = (a0 + a1) / (1 - b1 - b2);\n right_corner = (a2 + a3) / (1 - b1 - b2);\n\n // Attempt to force type to FP32.\n return new Float32Array([ a0, a1, a2, a3, b1, b2, left_corner, right_corner ]);\n}\n\nfunction convolveMono16(src, out, line, coeff, width, height) {\n // takes src image and writes the blurred and transposed result into out\n\n var prev_src, curr_src, curr_out, prev_out, prev_prev_out;\n var src_index, out_index, line_index;\n var i, j;\n var coeff_a0, coeff_a1, coeff_b1, coeff_b2;\n\n for (i = 0; i < height; i++) {\n src_index = i * width;\n out_index = i;\n line_index = 0;\n\n // left to right\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[6];\n prev_out = prev_prev_out;\n\n coeff_a0 = coeff[0];\n coeff_a1 = coeff[1];\n coeff_b1 = coeff[4];\n coeff_b2 = coeff[5];\n\n for (j = 0; j < width; j++) {\n curr_src = src[src_index];\n\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n prev_src = curr_src;\n\n line[line_index] = prev_out;\n line_index++;\n src_index++;\n }\n\n src_index--;\n line_index--;\n out_index += height * (width - 1);\n\n // right to left\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[7];\n prev_out = prev_prev_out;\n curr_src = prev_src;\n\n coeff_a0 = coeff[2];\n coeff_a1 = coeff[3];\n\n for (j = width - 1; j >= 0; j--) {\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n\n prev_src = curr_src;\n curr_src = src[src_index];\n\n out[out_index] = line[line_index] + prev_out;\n\n src_index--;\n line_index--;\n out_index -= height;\n }\n }\n}\n\n\nfunction blurMono16(src, width, height, radius) {\n // Quick exit on zero radius\n if (!radius) { return; }\n\n var out = new Uint16Array(src.length),\n tmp_line = new Float32Array(Math.max(width, height));\n\n var coeff = gaussCoef(radius);\n\n convolveMono16(src, out, tmp_line, coeff, width, height, radius);\n convolveMono16(out, src, tmp_line, coeff, height, width, radius);\n}\n\nmodule.exports = blurMono16;\n\n},{}],19:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n\n},{}],20:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar assign = _dereq_('object-assign');\nvar base64decode = _dereq_('./lib/base64decode');\nvar hasWebAssembly = _dereq_('./lib/wa_detect');\n\n\nvar DEFAULT_OPTIONS = {\n js: true,\n wasm: true\n};\n\n\nfunction MultiMath(options) {\n if (!(this instanceof MultiMath)) return new MultiMath(options);\n\n var opts = assign({}, DEFAULT_OPTIONS, options || {});\n\n this.options = opts;\n\n this.__cache = {};\n\n this.__init_promise = null;\n this.__modules = opts.modules || {};\n this.__memory = null;\n this.__wasm = {};\n\n this.__isLE = ((new Uint32Array((new Uint8Array([ 1, 0, 0, 0 ])).buffer))[0] === 1);\n\n if (!this.options.js && !this.options.wasm) {\n throw new Error('mathlib: at least \"js\" or \"wasm\" should be enabled');\n }\n}\n\n\nMultiMath.prototype.has_wasm = hasWebAssembly;\n\n\nMultiMath.prototype.use = function (module) {\n this.__modules[module.name] = module;\n\n // Pin the best possible implementation\n if (this.options.wasm && this.has_wasm() && module.wasm_fn) {\n this[module.name] = module.wasm_fn;\n } else {\n this[module.name] = module.fn;\n }\n\n return this;\n};\n\n\nMultiMath.prototype.init = function () {\n if (this.__init_promise) return this.__init_promise;\n\n if (!this.options.js && this.options.wasm && !this.has_wasm()) {\n return Promise.reject(new Error('mathlib: only \"wasm\" was enabled, but it\\'s not supported'));\n }\n\n var self = this;\n\n this.__init_promise = Promise.all(Object.keys(self.__modules).map(function (name) {\n var module = self.__modules[name];\n\n if (!self.options.wasm || !self.has_wasm() || !module.wasm_fn) return null;\n\n // If already compiled - exit\n if (self.__wasm[name]) return null;\n\n // Compile wasm source\n return WebAssembly.compile(self.__base64decode(module.wasm_src))\n .then(function (m) { self.__wasm[name] = m; });\n }))\n .then(function () { return self; });\n\n return this.__init_promise;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Methods below are for internal use from plugins\n\n\n// Simple decode base64 to typed array. Useful to load embedded webassembly\n// code. You probably don't need to call this method directly.\n//\nMultiMath.prototype.__base64decode = base64decode;\n\n\n// Increase current memory to include specified number of bytes. Do nothing if\n// size is already ok. You probably don't need to call this method directly,\n// because it will be invoked from `.__instance()`.\n//\nMultiMath.prototype.__reallocate = function mem_grow_to(bytes) {\n if (!this.__memory) {\n this.__memory = new WebAssembly.Memory({\n initial: Math.ceil(bytes / (64 * 1024))\n });\n return this.__memory;\n }\n\n var mem_size = this.__memory.buffer.byteLength;\n\n if (mem_size < bytes) {\n this.__memory.grow(Math.ceil((bytes - mem_size) / (64 * 1024)));\n }\n\n return this.__memory;\n};\n\n\n// Returns instantinated webassembly item by name, with specified memory size\n// and environment.\n// - use cache if available\n// - do sync module init, if async init was not called earlier\n// - allocate memory if not enougth\n// - can export functions to webassembly via \"env_extra\",\n// for example, { exp: Math.exp }\n//\nMultiMath.prototype.__instance = function instance(name, memsize, env_extra) {\n if (memsize) this.__reallocate(memsize);\n\n // If .init() was not called, do sync compile\n if (!this.__wasm[name]) {\n var module = this.__modules[name];\n this.__wasm[name] = new WebAssembly.Module(this.__base64decode(module.wasm_src));\n }\n\n if (!this.__cache[name]) {\n var env_base = {\n memoryBase: 0,\n memory: this.__memory,\n tableBase: 0,\n table: new WebAssembly.Table({ initial: 0, element: 'anyfunc' })\n };\n\n this.__cache[name] = new WebAssembly.Instance(this.__wasm[name], {\n env: assign(env_base, env_extra || {})\n });\n }\n\n return this.__cache[name];\n};\n\n\n// Helper to calculate memory aligh for pointers. Webassembly does not require\n// this, but you may wish to experiment. Default base = 8;\n//\nMultiMath.prototype.__align = function align(number, base) {\n base = base || 8;\n var reminder = number % base;\n return number + (reminder ? base - reminder : 0);\n};\n\n\nmodule.exports = MultiMath;\n\n},{\"./lib/base64decode\":21,\"./lib/wa_detect\":22,\"object-assign\":23}],21:[function(_dereq_,module,exports){\n// base64 decode str -> Uint8Array, to load WA modules\n//\n'use strict';\n\n\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n\nmodule.exports = function base64decode(str) {\n var input = str.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length;\n\n var out = new Uint8Array((max * 3) >> 2);\n\n // Collect by 6*4 bits (3 bytes)\n\n var bits = 0;\n var ptr = 0;\n\n for (var idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n }\n\n bits = (bits << 6) | BASE64_MAP.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n var tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n } else if (tailbits === 18) {\n out[ptr++] = (bits >> 10) & 0xFF;\n out[ptr++] = (bits >> 2) & 0xFF;\n } else if (tailbits === 12) {\n out[ptr++] = (bits >> 4) & 0xFF;\n }\n\n return out;\n};\n\n},{}],22:[function(_dereq_,module,exports){\n// Detect WebAssembly support.\n// - Check global WebAssembly object\n// - Try to load simple module (can be disabled via CSP)\n//\n'use strict';\n\n\nvar wa;\n\n\nmodule.exports = function hasWebAssembly() {\n // use cache if called before;\n if (typeof wa !== 'undefined') return wa;\n\n wa = false;\n\n if (typeof WebAssembly === 'undefined') return wa;\n\n // If WebAssenbly is disabled, code can throw on compile\n try {\n // https://github.com/brion/min-wasm-fail/blob/master/min-wasm-fail.in.js\n // Additional check that WA internals are correct\n\n /* eslint-disable comma-spacing, max-len */\n var bin = new Uint8Array([ 0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11 ]);\n var module = new WebAssembly.Module(bin);\n var instance = new WebAssembly.Instance(module, {});\n\n // test storing to and loading from a non-zero location via a parameter.\n // Safari on iOS 11.2.5 returns 0 unexpectedly at non-zero locations\n if (instance.exports.test(4) !== 0) wa = true;\n\n return wa;\n } catch (__) {}\n\n return wa;\n};\n\n},{}],23:[function(_dereq_,module,exports){\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}],24:[function(_dereq_,module,exports){\nvar bundleFn = arguments[3];\nvar sources = arguments[4];\nvar cache = arguments[5];\n\nvar stringify = JSON.stringify;\n\nmodule.exports = function (fn, options) {\n var wkey;\n var cacheKeys = Object.keys(cache);\n\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n var exp = cache[key].exports;\n // Using babel as a transpiler to use esmodule, the export will always\n // be an object with the default export as a property of it. To ensure\n // the existing api and babel esmodule exports are both supported we\n // check for both\n if (exp === fn || exp && exp.default === fn) {\n wkey = key;\n break;\n }\n }\n\n if (!wkey) {\n wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n var wcache = {};\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n wcache[key] = key;\n }\n sources[wkey] = [\n 'function(require,module,exports){' + fn + '(self); }',\n wcache\n ];\n }\n var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n\n var scache = {}; scache[wkey] = wkey;\n sources[skey] = [\n 'function(require,module,exports){' +\n // try to call default if defined to also support babel esmodule exports\n 'var f = require(' + stringify(wkey) + ');' +\n '(f.default ? f.default : f)(self);' +\n '}',\n scache\n ];\n\n var workerSources = {};\n resolveSources(skey);\n\n function resolveSources(key) {\n workerSources[key] = true;\n\n for (var depPath in sources[key][1]) {\n var depKey = sources[key][1][depPath];\n if (!workerSources[depKey]) {\n resolveSources(depKey);\n }\n }\n }\n\n var src = '(' + bundleFn + ')({'\n + Object.keys(workerSources).map(function (key) {\n return stringify(key) + ':['\n + sources[key][0]\n + ',' + stringify(sources[key][1]) + ']'\n ;\n }).join(',')\n + '},{},[' + stringify(skey) + '])'\n ;\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n var blob = new Blob([src], { type: 'text/javascript' });\n if (options && options.bare) { return blob; }\n var workerUrl = URL.createObjectURL(blob);\n var worker = new Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n},{}],\"/index.js\":[function(_dereq_,module,exports){\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = _dereq_('object-assign');\n\nvar webworkify = _dereq_('webworkify');\n\nvar MathLib = _dereq_('./lib/mathlib');\n\nvar Pool = _dereq_('./lib/pool');\n\nvar utils = _dereq_('./lib/utils');\n\nvar worker = _dereq_('./lib/worker');\n\nvar createStages = _dereq_('./lib/stepper');\n\nvar createRegions = _dereq_('./lib/tiler'); // Deduplicate pools & limiters with the same configs\n// when user creates multiple pica instances.\n\n\nvar singletones = {};\nvar NEED_SAFARI_FIX = false;\n\ntry {\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n NEED_SAFARI_FIX = navigator.userAgent.indexOf('Safari') >= 0;\n }\n} catch (e) {}\n\nvar concurrency = 1;\n\nif (typeof navigator !== 'undefined') {\n concurrency = Math.min(navigator.hardwareConcurrency || 1, 4);\n}\n\nvar DEFAULT_PICA_OPTS = {\n tile: 1024,\n concurrency: concurrency,\n features: ['js', 'wasm', 'ww'],\n idle: 2000,\n createCanvas: function createCanvas(width, height) {\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n return tmpCanvas;\n }\n};\nvar DEFAULT_RESIZE_OPTS = {\n quality: 3,\n alpha: false,\n unsharpAmount: 0,\n unsharpRadius: 0.0,\n unsharpThreshold: 0\n};\nvar CAN_NEW_IMAGE_DATA = false;\nvar CAN_CREATE_IMAGE_BITMAP = false;\nvar CAN_USE_CANVAS_GET_IMAGE_DATA = false;\nvar CAN_USE_OFFSCREEN_CANVAS = false;\nvar CAN_USE_CIB_REGION_FOR_IMAGE = false;\n\nfunction workerFabric() {\n return {\n value: webworkify(worker),\n destroy: function destroy() {\n this.value.terminate();\n\n if (typeof window !== 'undefined') {\n var url = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n if (url && url.revokeObjectURL && this.value.objectURL) {\n url.revokeObjectURL(this.value.objectURL);\n }\n }\n }\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// API methods\n\n\nfunction Pica(options) {\n if (!(this instanceof Pica)) return new Pica(options);\n this.options = assign({}, DEFAULT_PICA_OPTS, options || {});\n var limiter_key = \"lk_\".concat(this.options.concurrency); // Share limiters to avoid multiple parallel workers when user creates\n // multiple pica instances.\n\n this.__limit = singletones[limiter_key] || utils.limiter(this.options.concurrency);\n if (!singletones[limiter_key]) singletones[limiter_key] = this.__limit; // List of supported features, according to options & browser/node.js\n\n this.features = {\n js: false,\n // pure JS implementation, can be disabled for testing\n wasm: false,\n // webassembly implementation for heavy functions\n cib: false,\n // resize via createImageBitmap (only FF at this moment)\n ww: false // webworkers\n\n };\n this.__workersPool = null; // Store requested features for webworkers\n\n this.__requested_features = [];\n this.__mathlib = null;\n}\n\nPica.prototype.init = function () {\n var _this = this;\n\n if (this.__initPromise) return this.__initPromise; // Test if we can create ImageData without canvas and memory copy\n\n if (typeof ImageData !== 'undefined' && typeof Uint8ClampedArray !== 'undefined') {\n try {\n /* eslint-disable no-new */\n new ImageData(new Uint8ClampedArray(400), 10, 10);\n CAN_NEW_IMAGE_DATA = true;\n } catch (__) {}\n } // ImageBitmap can be effective in 2 places:\n //\n // 1. Threaded jpeg unpack (basic)\n // 2. Built-in resize (blocked due problem in chrome, see issue #89)\n //\n // For basic use we also need ImageBitmap wo support .close() method,\n // see https://developer.mozilla.org/ru/docs/Web/API/ImageBitmap\n\n\n if (typeof ImageBitmap !== 'undefined') {\n if (ImageBitmap.prototype && ImageBitmap.prototype.close) {\n CAN_CREATE_IMAGE_BITMAP = true;\n } else {\n this.debug('ImageBitmap does not support .close(), disabled');\n }\n }\n\n var features = this.options.features.slice();\n\n if (features.indexOf('all') >= 0) {\n features = ['cib', 'wasm', 'js', 'ww'];\n }\n\n this.__requested_features = features;\n this.__mathlib = new MathLib(features); // Check WebWorker support if requested\n\n if (features.indexOf('ww') >= 0) {\n if (typeof window !== 'undefined' && 'Worker' in window) {\n // IE <= 11 don't allow to create webworkers from string. We should check it.\n // https://connect.microsoft.com/IE/feedback/details/801810/web-workers-from-blob-urls-in-ie-10-and-11\n try {\n var wkr = _dereq_('webworkify')(function () {});\n\n wkr.terminate();\n this.features.ww = true; // pool uniqueness depends on pool config + webworker config\n\n var wpool_key = \"wp_\".concat(JSON.stringify(this.options));\n\n if (singletones[wpool_key]) {\n this.__workersPool = singletones[wpool_key];\n } else {\n this.__workersPool = new Pool(workerFabric, this.options.idle);\n singletones[wpool_key] = this.__workersPool;\n }\n } catch (__) {}\n }\n }\n\n var initMath = this.__mathlib.init().then(function (mathlib) {\n // Copy detected features\n assign(_this.features, mathlib.features);\n });\n\n var checkCibResize;\n\n if (!CAN_CREATE_IMAGE_BITMAP) {\n checkCibResize = Promise.resolve(false);\n } else {\n checkCibResize = utils.cib_support(this.options.createCanvas).then(function (status) {\n if (_this.features.cib && features.indexOf('cib') < 0) {\n _this.debug('createImageBitmap() resize supported, but disabled by config');\n\n return;\n }\n\n if (features.indexOf('cib') >= 0) _this.features.cib = status;\n });\n }\n\n CAN_USE_CANVAS_GET_IMAGE_DATA = utils.can_use_canvas(this.options.createCanvas);\n var checkOffscreenCanvas;\n\n if (CAN_CREATE_IMAGE_BITMAP && CAN_NEW_IMAGE_DATA && features.indexOf('ww') !== -1) {\n checkOffscreenCanvas = utils.worker_offscreen_canvas_support();\n } else {\n checkOffscreenCanvas = Promise.resolve(false);\n }\n\n checkOffscreenCanvas = checkOffscreenCanvas.then(function (result) {\n CAN_USE_OFFSCREEN_CANVAS = result;\n }); // we use createImageBitmap to crop image data and pass it to workers,\n // so need to check whether function works correctly;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n\n var checkCibRegion = utils.cib_can_use_region().then(function (result) {\n CAN_USE_CIB_REGION_FOR_IMAGE = result;\n }); // Init math lib. That's async because can load some\n\n this.__initPromise = Promise.all([initMath, checkCibResize, checkOffscreenCanvas, checkCibRegion]).then(function () {\n return _this;\n });\n return this.__initPromise;\n}; // Call resizer in webworker or locally, depending on config\n\n\nPica.prototype.__invokeResize = function (tileOpts, opts) {\n var _this2 = this;\n\n // Share cache between calls:\n //\n // - wasm instance\n // - wasm memory object\n //\n opts.__mathCache = opts.__mathCache || {};\n return Promise.resolve().then(function () {\n if (!_this2.features.ww) {\n // not possible to have ImageBitmap here if user disabled WW\n return {\n data: _this2.__mathlib.resizeAndUnsharp(tileOpts, opts.__mathCache)\n };\n }\n\n return new Promise(function (resolve, reject) {\n var w = _this2.__workersPool.acquire();\n\n if (opts.cancelToken) opts.cancelToken[\"catch\"](function (err) {\n return reject(err);\n });\n\n w.value.onmessage = function (ev) {\n w.release();\n if (ev.data.err) reject(ev.data.err);else resolve(ev.data);\n };\n\n var transfer = [];\n if (tileOpts.src) transfer.push(tileOpts.src.buffer);\n if (tileOpts.srcBitmap) transfer.push(tileOpts.srcBitmap);\n w.value.postMessage({\n opts: tileOpts,\n features: _this2.__requested_features,\n preload: {\n wasm_nodule: _this2.__mathlib.__\n }\n }, transfer);\n });\n });\n}; // this function can return promise if createImageBitmap is used\n\n\nPica.prototype.__extractTileData = function (tile, from, opts, stageEnv, extractTo) {\n if (this.features.ww && CAN_USE_OFFSCREEN_CANVAS && ( // createImageBitmap doesn't work for images (Image, ImageBitmap) with Exif orientation in Chrome,\n // can use canvas because canvas doesn't have orientation;\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n utils.isCanvas(from) || CAN_USE_CIB_REGION_FOR_IMAGE)) {\n this.debug('Create tile for OffscreenCanvas');\n return createImageBitmap(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height).then(function (bitmap) {\n extractTo.srcBitmap = bitmap;\n return extractTo;\n });\n } // Extract tile RGBA buffer, depending on input type\n\n\n if (utils.isCanvas(from)) {\n if (!stageEnv.srcCtx) stageEnv.srcCtx = from.getContext('2d', {\n alpha: Boolean(opts.alpha)\n }); // If input is Canvas - extract region data directly\n\n this.debug('Get tile pixel data');\n extractTo.src = stageEnv.srcCtx.getImageData(tile.x, tile.y, tile.width, tile.height).data;\n return extractTo;\n } // If input is Image or decoded to ImageBitmap,\n // draw region to temporary canvas and extract data from it\n //\n // Note! Attempt to reuse this canvas causes significant slowdown in chrome\n //\n\n\n this.debug('Draw tile imageBitmap/image to temporary canvas');\n var tmpCanvas = this.options.createCanvas(tile.width, tile.height);\n var tmpCtx = tmpCanvas.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n tmpCtx.globalCompositeOperation = 'copy';\n tmpCtx.drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);\n this.debug('Get tile pixel data');\n extractTo.src = tmpCtx.getImageData(0, 0, tile.width, tile.height).data; // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n return extractTo;\n};\n\nPica.prototype.__landTileData = function (tile, result, stageEnv) {\n var toImageData;\n this.debug('Convert raw rgba tile result to ImageData');\n\n if (result.bitmap) {\n stageEnv.toCtx.drawImage(result.bitmap, tile.toX, tile.toY);\n return null;\n }\n\n if (CAN_NEW_IMAGE_DATA) {\n // this branch is for modern browsers\n // If `new ImageData()` & Uint8ClampedArray suported\n toImageData = new ImageData(new Uint8ClampedArray(result.data), tile.toWidth, tile.toHeight);\n } else {\n // fallback for `node-canvas` and old browsers\n // (IE11 has ImageData but does not support `new ImageData()`)\n toImageData = stageEnv.toCtx.createImageData(tile.toWidth, tile.toHeight);\n\n if (toImageData.data.set) {\n toImageData.data.set(result.data);\n } else {\n // IE9 don't have `.set()`\n for (var i = toImageData.data.length - 1; i >= 0; i--) {\n toImageData.data[i] = result.data[i];\n }\n }\n }\n\n this.debug('Draw tile');\n\n if (NEED_SAFARI_FIX) {\n // Safari draws thin white stripes between tiles without this fix\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth + 1e-5, tile.toInnerHeight + 1e-5);\n } else {\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth, tile.toInnerHeight);\n }\n\n return null;\n};\n\nPica.prototype.__tileAndResize = function (from, to, opts) {\n var _this3 = this;\n\n var stageEnv = {\n srcCtx: null,\n srcImageBitmap: null,\n isImageBitmapReused: false,\n toCtx: null\n };\n\n var processTile = function processTile(tile) {\n return _this3.__limit(function () {\n if (opts.canceled) return opts.cancelToken;\n var tileOpts = {\n width: tile.width,\n height: tile.height,\n toWidth: tile.toWidth,\n toHeight: tile.toHeight,\n scaleX: tile.scaleX,\n scaleY: tile.scaleY,\n offsetX: tile.offsetX,\n offsetY: tile.offsetY,\n quality: opts.quality,\n alpha: opts.alpha,\n unsharpAmount: opts.unsharpAmount,\n unsharpRadius: opts.unsharpRadius,\n unsharpThreshold: opts.unsharpThreshold\n };\n\n _this3.debug('Invoke resize math');\n\n return Promise.resolve(tileOpts).then(function (tileOpts) {\n return _this3.__extractTileData(tile, from, opts, stageEnv, tileOpts);\n }).then(function (tileOpts) {\n _this3.debug('Invoke resize math');\n\n return _this3.__invokeResize(tileOpts, opts);\n }).then(function (result) {\n if (opts.canceled) return opts.cancelToken;\n stageEnv.srcImageData = null;\n return _this3.__landTileData(tile, result, stageEnv);\n });\n });\n }; // Need to normalize data source first. It can be canvas or image.\n // If image - try to decode in background if possible\n\n\n return Promise.resolve().then(function () {\n stageEnv.toCtx = to.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n if (utils.isCanvas(from)) return null;\n\n if (utils.isImageBitmap(from)) {\n stageEnv.srcImageBitmap = from;\n stageEnv.isImageBitmapReused = true;\n return null;\n }\n\n if (utils.isImage(from)) {\n // try do decode image in background for faster next operations;\n // if we're using offscreen canvas, cib is called per tile, so not needed here\n if (!CAN_CREATE_IMAGE_BITMAP) return null;\n\n _this3.debug('Decode image via createImageBitmap');\n\n return createImageBitmap(from).then(function (imageBitmap) {\n stageEnv.srcImageBitmap = imageBitmap;\n }) // Suppress error to use fallback, if method fails\n // https://github.com/nodeca/pica/issues/190\n\n /* eslint-disable no-unused-vars */\n [\"catch\"](function (e) {\n return null;\n });\n }\n\n throw new Error('Pica: \".from\" should be Image, Canvas or ImageBitmap');\n }).then(function () {\n if (opts.canceled) return opts.cancelToken;\n\n _this3.debug('Calculate tiles'); //\n // Here we are with \"normalized\" source,\n // follow to tiling\n //\n\n\n var regions = createRegions({\n width: opts.width,\n height: opts.height,\n srcTileSize: _this3.options.tile,\n toWidth: opts.toWidth,\n toHeight: opts.toHeight,\n destTileBorder: opts.__destTileBorder\n });\n var jobs = regions.map(function (tile) {\n return processTile(tile);\n });\n\n function cleanup(stageEnv) {\n if (stageEnv.srcImageBitmap) {\n if (!stageEnv.isImageBitmapReused) stageEnv.srcImageBitmap.close();\n stageEnv.srcImageBitmap = null;\n }\n }\n\n _this3.debug('Process tiles');\n\n return Promise.all(jobs).then(function () {\n _this3.debug('Finished!');\n\n cleanup(stageEnv);\n return to;\n }, function (err) {\n cleanup(stageEnv);\n throw err;\n });\n });\n};\n\nPica.prototype.__processStages = function (stages, from, to, opts) {\n var _this4 = this;\n\n if (opts.canceled) return opts.cancelToken;\n\n var _stages$shift = stages.shift(),\n _stages$shift2 = _slicedToArray(_stages$shift, 2),\n toWidth = _stages$shift2[0],\n toHeight = _stages$shift2[1];\n\n var isLastStage = stages.length === 0;\n opts = assign({}, opts, {\n toWidth: toWidth,\n toHeight: toHeight,\n // only use user-defined quality for the last stage,\n // use simpler (Hamming) filter for the first stages where\n // scale factor is large enough (more than 2-3)\n quality: isLastStage ? opts.quality : Math.min(1, opts.quality)\n });\n var tmpCanvas;\n\n if (!isLastStage) {\n // create temporary canvas\n tmpCanvas = this.options.createCanvas(toWidth, toHeight);\n }\n\n return this.__tileAndResize(from, isLastStage ? to : tmpCanvas, opts).then(function () {\n if (isLastStage) return to;\n opts.width = toWidth;\n opts.height = toHeight;\n return _this4.__processStages(stages, tmpCanvas, to, opts);\n }).then(function (res) {\n if (tmpCanvas) {\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n tmpCanvas.width = tmpCanvas.height = 0;\n }\n\n return res;\n });\n};\n\nPica.prototype.__resizeViaCreateImageBitmap = function (from, to, opts) {\n var _this5 = this;\n\n var toCtx = to.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n this.debug('Resize via createImageBitmap()');\n return createImageBitmap(from, {\n resizeWidth: opts.toWidth,\n resizeHeight: opts.toHeight,\n resizeQuality: utils.cib_quality_name(opts.quality)\n }).then(function (imageBitmap) {\n if (opts.canceled) return opts.cancelToken; // if no unsharp - draw directly to output canvas\n\n if (!opts.unsharpAmount) {\n toCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n }\n\n _this5.debug('Unsharp result');\n\n var tmpCanvas = _this5.options.createCanvas(opts.toWidth, opts.toHeight);\n\n var tmpCtx = tmpCanvas.getContext('2d', {\n alpha: Boolean(opts.alpha)\n });\n tmpCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n var iData = tmpCtx.getImageData(0, 0, opts.toWidth, opts.toHeight);\n\n _this5.__mathlib.unsharp_mask(iData.data, opts.toWidth, opts.toHeight, opts.unsharpAmount, opts.unsharpRadius, opts.unsharpThreshold);\n\n toCtx.putImageData(iData, 0, 0); // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n iData = tmpCtx = tmpCanvas = toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n });\n};\n\nPica.prototype.resize = function (from, to, options) {\n var _this6 = this;\n\n this.debug('Start resize...');\n var opts = assign({}, DEFAULT_RESIZE_OPTS);\n\n if (!isNaN(options)) {\n opts = assign(opts, {\n quality: options\n });\n } else if (options) {\n opts = assign(opts, options);\n }\n\n opts.toWidth = to.width;\n opts.toHeight = to.height;\n opts.width = from.naturalWidth || from.width;\n opts.height = from.naturalHeight || from.height; // Prevent stepper from infinite loop\n\n if (to.width === 0 || to.height === 0) {\n return Promise.reject(new Error(\"Invalid output size: \".concat(to.width, \"x\").concat(to.height)));\n }\n\n if (opts.unsharpRadius > 2) opts.unsharpRadius = 2;\n opts.canceled = false;\n\n if (opts.cancelToken) {\n // Wrap cancelToken to avoid successive resolve & set flag\n opts.cancelToken = opts.cancelToken.then(function (data) {\n opts.canceled = true;\n throw data;\n }, function (err) {\n opts.canceled = true;\n throw err;\n });\n }\n\n var DEST_TILE_BORDER = 3; // Max possible filter window size\n\n opts.__destTileBorder = Math.ceil(Math.max(DEST_TILE_BORDER, 2.5 * opts.unsharpRadius | 0));\n return this.init().then(function () {\n if (opts.canceled) return opts.cancelToken; // if createImageBitmap supports resize, just do it and return\n\n if (_this6.features.cib) {\n return _this6.__resizeViaCreateImageBitmap(from, to, opts);\n }\n\n if (!CAN_USE_CANVAS_GET_IMAGE_DATA) {\n var err = new Error('Pica: cannot use getImageData on canvas, ' + \"make sure fingerprinting protection isn't enabled\");\n err.code = 'ERR_GET_IMAGE_DATA';\n throw err;\n } //\n // No easy way, let's resize manually via arrays\n //\n\n\n var stages = createStages(opts.width, opts.height, opts.toWidth, opts.toHeight, _this6.options.tile, opts.__destTileBorder);\n return _this6.__processStages(stages, from, to, opts);\n });\n}; // RGBA buffer resize\n//\n\n\nPica.prototype.resizeBuffer = function (options) {\n var _this7 = this;\n\n var opts = assign({}, DEFAULT_RESIZE_OPTS, options);\n return this.init().then(function () {\n return _this7.__mathlib.resizeAndUnsharp(opts);\n });\n};\n\nPica.prototype.toBlob = function (canvas, mimeType, quality) {\n mimeType = mimeType || 'image/png';\n return new Promise(function (resolve) {\n if (canvas.toBlob) {\n canvas.toBlob(function (blob) {\n return resolve(blob);\n }, mimeType, quality);\n return;\n }\n\n if (canvas.convertToBlob) {\n resolve(canvas.convertToBlob({\n type: mimeType,\n quality: quality\n }));\n return;\n } // Fallback for old browsers\n\n\n var asString = atob(canvas.toDataURL(mimeType, quality).split(',')[1]);\n var len = asString.length;\n var asBuffer = new Uint8Array(len);\n\n for (var i = 0; i < len; i++) {\n asBuffer[i] = asString.charCodeAt(i);\n }\n\n resolve(new Blob([asBuffer], {\n type: mimeType\n }));\n });\n};\n\nPica.prototype.debug = function () {};\n\nmodule.exports = Pica;\n\n},{\"./lib/mathlib\":1,\"./lib/pool\":13,\"./lib/stepper\":14,\"./lib/tiler\":15,\"./lib/utils\":16,\"./lib/worker\":17,\"object-assign\":23,\"webworkify\":24}]},{},[])(\"/index.js\")\n});\n"],"names":["f","module","r","e","n","t","i","c","require","u","a","p","_dereq_","exports","inherits","Multimath","mm_unsharp_mask","mm_resize","MathLib","requested_features","__requested_features","features","options","cache","result","clampTo8","convolveHorizontally","src","dest","srcW","srcH","destW","filters","g","b","filterPtr","filterShift","filterSize","srcPtr","srcY","destX","filterVal","srcOffset","destOffset","convolveVertically","createFilters","resetAlpha","dst","width","height","ptr","len","destH","scaleX","scaleY","offsetX","offsetY","quality","alpha","filtersX","filtersY","tmp","FILTER_INFO","FIXED_FRAC_BITS","toFixedPoint","num","srcSize","destSize","scale","offset","filterFunction","scaleInverted","scaleClamped","srcWindow","destPixel","srcPixel","srcFirst","srcLast","filterElementSize","floatFilter","fxpFilter","total","pxl","idx","floatVal","filterTotal","leftNotEmpty","rightNotEmpty","maxFilterElementSize","packedFilter","packedFilterPtr","slowCopy","x","xpi","asUint8Array","IS_LE","copyInt16asLE","target","target_offset","data","src_offset","tmp_offset","filtersX_offset","filtersY_offset","alloc_bytes","instance","mem","mem32","src32","fn","dest32","glur_mono16","hsv_v16","img","size","out","max","amount","radius","threshold","v1","v2","vmul","diff","iTimes4","brightness","blured","amountFp","thresholdFp","pixels","img_bytes_cnt","hsv_bytes_cnt","blur_bytes_cnt","blur_line_byte_cnt","blur_coeffs_byte_cnt","img_offset","hsv_offset","blur_offset","blur_tmp_offset","blur_line_offset","blur_coeffs_offset","img32","GC_INTERVAL","Pool","create","idle","_this","resource","_this2","_this3","now","MIN_INNER_TILE_SIZE","fromWidth","fromHeight","toWidth","toHeight","srcTileSize","destTileBorder","minScale","stageCount","PIXEL_EPSILON","pixelFloor","nearest","pixelCeil","innerTileWidth","innerTileHeight","y","innerX","innerY","toTileWidth","toTileHeight","tiles","tile","objClass","obj","element","cname","concurrency","active","queue","roll","resolve","reject","err","createCanvas","bitmap","status","workerPayload","self","canvas","ctx","code","w","ev","usable","d","image","mathLib","tileOpts","a0","a1","a2","a3","b1","b2","left_corner","right_corner","gaussCoef","sigma","g1","g2","k","convolveMono16","line","coeff","prev_src","curr_src","curr_out","prev_out","prev_prev_out","src_index","out_index","line_index","j","coeff_a0","coeff_a1","coeff_b1","coeff_b2","blurMono16","tmp_line","ctor","superCtor","TempCtor","assign","base64decode","hasWebAssembly","DEFAULT_OPTIONS","MultiMath","opts","name","m","bytes","mem_size","memsize","env_extra","env_base","number","base","reminder","BASE64_MAP","str","input","bits","tailbits","wa","bin","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","source","from","to","symbols","s","key","bundleFn","sources","stringify","wkey","cacheKeys","l","exp","wcache","skey","scache","workerSources","resolveSources","depPath","depKey","URL","blob","workerUrl","worker","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","arr2","_i","_arr","_n","_d","_s","_e","webworkify","utils","createStages","createRegions","singletones","NEED_SAFARI_FIX","DEFAULT_PICA_OPTS","tmpCanvas","DEFAULT_RESIZE_OPTS","CAN_NEW_IMAGE_DATA","CAN_CREATE_IMAGE_BITMAP","CAN_USE_CANVAS_GET_IMAGE_DATA","CAN_USE_OFFSCREEN_CANVAS","CAN_USE_CIB_REGION_FOR_IMAGE","workerFabric","url","Pica","limiter_key","wkr","wpool_key","initMath","mathlib","checkCibResize","checkOffscreenCanvas","checkCibRegion","transfer","stageEnv","extractTo","tmpCtx","toImageData","processTile","imageBitmap","regions","jobs","cleanup","stages","_this4","_stages$shift","_stages$shift2","isLastStage","res","_this5","toCtx","iData","_this6","DEST_TILE_BORDER","_this7","mimeType","asString","asBuffer"],"mappings":";;;;;kBAOC,SAASA,EAAE,CAA4DC,EAAA,QAAeD,EAAG,CAAmO,GAAG,UAAU,CAA2B,OAAQ,UAAU,CAAC,SAASE,EAAEC,EAAEC,EAAEC,EAAE,CAAC,SAAS,EAAEC,EAAEN,EAAE,CAAC,GAAG,CAACI,EAAEE,CAAC,EAAE,CAAC,GAAG,CAACH,EAAEG,CAAC,EAAE,CAAC,IAAIC,EAAc,OAAOC,GAAnB,YAA4BA,EAAQ,GAAG,CAACR,GAAGO,EAAE,OAAOA,EAAED,EAAE,EAAE,EAAE,GAAGG,EAAE,OAAOA,EAAEH,EAAE,EAAE,EAAE,IAAII,EAAE,IAAI,MAAM,uBAAuBJ,EAAE,GAAG,EAAE,MAAMI,EAAE,KAAK,mBAAmBA,CAAC,CAAC,IAAIC,EAAEP,EAAEE,CAAC,EAAE,CAAC,QAAQ,CAAA,CAAE,EAAEH,EAAEG,CAAC,EAAE,CAAC,EAAE,KAAKK,EAAE,QAAQ,SAAST,EAAE,CAAC,IAAIE,EAAED,EAAEG,CAAC,EAAE,CAAC,EAAEJ,CAAC,EAAE,OAAO,EAAEE,GAAGF,CAAC,CAAC,EAAES,EAAEA,EAAE,QAAQT,EAAEC,EAAEC,EAAEC,CAAC,CAAC,CAAC,OAAOD,EAAEE,CAAC,EAAE,OAAO,CAAC,QAAQG,EAAc,OAAOD,GAAnB,YAA4BA,EAAQF,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAI,EAAED,EAAEC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAOJ,CAAC,EAAI,EAAC,CAAC,EAAE,CAAC,SAASU,EAAQX,EAAOY,EAAQ,CAQ51B,IAAIC,EAAWF,EAAQ,UAAU,EAE7BG,EAAYH,EAAQ,WAAW,EAE/BI,EAAkBJ,EAAQ,mBAAmB,EAE7CK,EAAYL,EAAQ,aAAa,EAErC,SAASM,EAAQC,EAAoB,CACnC,IAAIC,EAAuBD,GAAsB,GAE7CE,EAAW,CACb,GAAID,EAAqB,QAAQ,IAAI,GAAK,EAC1C,KAAMA,EAAqB,QAAQ,MAAM,GAAK,CAClD,EACEL,EAAU,KAAK,KAAMM,CAAQ,EAC7B,KAAK,SAAW,CACd,GAAIA,EAAS,GACb,KAAMA,EAAS,MAAQ,KAAK,SAAU,CAC1C,EACE,KAAK,IAAIL,CAAe,EACxB,KAAK,IAAIC,CAAS,CACnB,CAEDH,EAASI,EAASH,CAAS,EAE3BG,EAAQ,UAAU,iBAAmB,SAA0BI,EAASC,EAAO,CAC7E,IAAIC,EAAS,KAAK,OAAOF,EAASC,CAAK,EAEvC,OAAID,EAAQ,eACV,KAAK,aAAaE,EAAQF,EAAQ,QAASA,EAAQ,SAAUA,EAAQ,cAAeA,EAAQ,cAAeA,EAAQ,gBAAgB,EAG9HE,CACT,EAEAvB,EAAO,QAAUiB,CAEjB,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,SAAW,GAAG,UAAY,EAAE,CAAC,EAAE,EAAE,CAAC,SAASN,EAAQX,EAAOY,EAAQ,CAM3G,SAASY,EAASnB,EAAG,CACnB,OAAOA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,CACpC,CAWD,SAASoB,EAAqBC,EAAKC,EAAMC,EAAMC,EAAMC,EAAOC,EAAS,CACnE,IAAI9B,EAAG+B,EAAGC,EAAGxB,EACTyB,EAAWC,EAAaC,EACxBC,EAAQC,EAAMC,EAAOC,EACrBC,EAAY,EACZC,EAAa,EAEjB,IAAKJ,EAAO,EAAGA,EAAOT,EAAMS,IAAQ,CAGlC,IAFAJ,EAAY,EAEPK,EAAQ,EAAGA,EAAQT,EAAOS,IAAS,CAOtC,IALAJ,EAAcJ,EAAQG,GAAW,EACjCE,EAAaL,EAAQG,GAAW,EAChCG,EAASI,EAAYN,EAAc,EAAI,EACvClC,EAAI+B,EAAIC,EAAIxB,EAAI,EAET2B,EAAa,EAAGA,IACrBI,EAAYT,EAAQG,GAAW,EAG/BzB,EAAIA,EAAI+B,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCJ,EAAIA,EAAIO,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCL,EAAIA,EAAIQ,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCpC,EAAIA,EAAIuC,EAAYd,EAAIW,CAAM,EAAI,EAClCA,EAASA,EAAS,EAAI,EAUxBV,EAAKe,EAAa,CAAC,EAAIlB,EAASf,EAAK,MAAY,EAEvD,EACMkB,EAAKe,EAAa,CAAC,EAAIlB,EAASS,EAAK,MAAY,EAEvD,EACMN,EAAKe,EAAa,CAAC,EAAIlB,EAASQ,EAAK,MAAY,EAEvD,EACML,EAAKe,CAAU,EAAIlB,EAASvB,EAAK,MAAY,EAEnD,EACMyC,EAAaA,EAAab,EAAO,EAAI,CACtC,CAEDa,GAAcJ,EAAO,GAAK,EAAI,EAC9BG,GAAaH,EAAO,GAAKV,EAAO,EAAI,CACrC,CACF,CAKD,SAASe,EAAmBjB,EAAKC,EAAMC,EAAMC,EAAMC,EAAOC,EAAS,CACjE,IAAI9B,EAAG+B,EAAGC,EAAGxB,EACTyB,EAAWC,EAAaC,EACxBC,EAAQC,EAAMC,EAAOC,EACrBC,EAAY,EACZC,EAAa,EAEjB,IAAKJ,EAAO,EAAGA,EAAOT,EAAMS,IAAQ,CAGlC,IAFAJ,EAAY,EAEPK,EAAQ,EAAGA,EAAQT,EAAOS,IAAS,CAOtC,IALAJ,EAAcJ,EAAQG,GAAW,EACjCE,EAAaL,EAAQG,GAAW,EAChCG,EAASI,EAAYN,EAAc,EAAI,EACvClC,EAAI+B,EAAIC,EAAIxB,EAAI,EAET2B,EAAa,EAAGA,IACrBI,EAAYT,EAAQG,GAAW,EAG/BzB,EAAIA,EAAI+B,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCJ,EAAIA,EAAIO,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCL,EAAIA,EAAIQ,EAAYd,EAAIW,EAAS,CAAC,EAAI,EACtCpC,EAAIA,EAAIuC,EAAYd,EAAIW,CAAM,EAAI,EAClCA,EAASA,EAAS,EAAI,EAUxBV,EAAKe,EAAa,CAAC,EAAIlB,EAASf,EAAK,MAAY,EAEvD,EACMkB,EAAKe,EAAa,CAAC,EAAIlB,EAASS,EAAK,MAAY,EAEvD,EACMN,EAAKe,EAAa,CAAC,EAAIlB,EAASQ,EAAK,MAAY,EAEvD,EACML,EAAKe,CAAU,EAAIlB,EAASvB,EAAK,MAAY,EAEnD,EACMyC,EAAaA,EAAab,EAAO,EAAI,CACtC,CAEDa,GAAcJ,EAAO,GAAK,EAAI,EAC9BG,GAAaH,EAAO,GAAKV,EAAO,EAAI,CACrC,CACF,CAED5B,EAAO,QAAU,CACf,qBAAsByB,EACtB,mBAAoBkB,CACtB,CAEA,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,SAAShC,EAAQX,EAAOY,EAAQ,CAMzCZ,EAAO,QAAU,s3BAEjB,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,SAASW,EAAQX,EAAOY,EAAQ,CAGzCZ,EAAO,QAAU,CACf,KAAM,SACN,GAAIW,EAAQ,UAAU,EACtB,QAASA,EAAQ,eAAe,EAChC,SAAUA,EAAQ,wBAAwB,CAC5C,CAEC,EAAC,CAAC,yBAAyB,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,SAASA,EAAQX,EAAOY,EAAQ,CAGlG,IAAIgC,EAAgBjC,EAAQ,qBAAqB,EAE7Cc,EAAuBd,EAAQ,YAAY,EAAE,qBAE7CgC,EAAqBhC,EAAQ,YAAY,EAAE,mBAE/C,SAASkC,EAAWC,EAAKC,EAAOC,EAAQ,CAItC,QAHIC,EAAM,EACNC,EAAMH,EAAQC,EAAS,EAAI,EAExBC,EAAMC,GACXJ,EAAIG,CAAG,EAAI,IACXA,EAAMA,EAAM,EAAI,CAEnB,CAEDjD,EAAO,QAAU,SAAgBqB,EAAS,CACxC,IAAIK,EAAML,EAAQ,IACdO,EAAOP,EAAQ,MACfQ,EAAOR,EAAQ,OACfS,EAAQT,EAAQ,QAChB8B,EAAQ9B,EAAQ,SAChB+B,EAAS/B,EAAQ,QAAUA,EAAQ,QAAUA,EAAQ,MACrDgC,EAAShC,EAAQ,QAAUA,EAAQ,SAAWA,EAAQ,OACtDiC,EAAUjC,EAAQ,SAAW,EAC7BkC,EAAUlC,EAAQ,SAAW,EAC7BM,EAAON,EAAQ,MAAQ,IAAI,WAAWS,EAAQqB,EAAQ,CAAC,EACvDK,EAAU,OAAOnC,EAAQ,QAAY,IAAc,EAAIA,EAAQ,QAC/DoC,EAAQpC,EAAQ,OAAS,GACzBqC,EAAWd,EAAcY,EAAS5B,EAAME,EAAOsB,EAAQE,CAAO,EAC9DK,EAAWf,EAAcY,EAAS3B,EAAMsB,EAAOE,EAAQE,CAAO,EAC9DK,EAAM,IAAI,WAAW9B,EAAQD,EAAO,CAAC,EAIzC,OAAAJ,EAAqBC,EAAKkC,EAAKhC,EAAMC,EAAMC,EAAO4B,CAAQ,EAC1Df,EAAmBiB,EAAKjC,EAAME,EAAMC,EAAOqB,EAAOQ,CAAQ,EAIrDF,GAAOZ,EAAWlB,EAAMG,EAAOqB,CAAK,EAClCxB,CACT,CAEC,EAAC,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,SAAShB,EAAQX,EAAOY,EAAQ,CAY/E,IAAIiD,EAAclD,EAAQ,sBAAsB,EAG5CmD,EAAkB,GAEtB,SAASC,EAAaC,EAAK,CACzB,OAAO,KAAK,MAAMA,IAAQ,GAAKF,GAAmB,EAAE,CACrD,CAED9D,EAAO,QAAU,SAAyBwD,EAASS,EAASC,EAAUC,EAAOC,EAAQ,CACnF,IAAIC,EAAiBR,EAAYL,CAAO,EAAE,OACtCc,EAAgB,EAAMH,EACtBI,EAAe,KAAK,IAAI,EAAKJ,CAAK,EAGlCK,EAAYX,EAAYL,CAAO,EAAE,IAAMe,EACvCE,EAAWC,EAAUC,EAAUC,EAASC,EAAmBC,EAAaC,EAAWC,EAAOC,EAAKC,EAAKC,EAAUC,EAAa5C,EAC3H6C,EAAcC,EAAenD,EAAaC,EAC1CmD,EAAuB,KAAK,OAAOf,EAAY,GAAK,CAAC,EACrDgB,EAAe,IAAI,YAAYD,EAAuB,GAAKrB,CAAQ,EACnEuB,EAAkB,EAClBC,EAAW,CAACF,EAAa,UAAY,CAACA,EAAa,IAEvD,IAAKf,EAAY,EAAGA,EAAYP,EAAUO,IAAa,CAUrD,IARAC,GAAYD,EAAY,IAAOH,EAAgBF,EAC/CO,EAAW,KAAK,IAAI,EAAG,KAAK,MAAMD,EAAWF,CAAS,CAAC,EACvDI,EAAU,KAAK,IAAIX,EAAU,EAAG,KAAK,KAAKS,EAAWF,CAAS,CAAC,EAC/DK,EAAoBD,EAAUD,EAAW,EACzCG,EAAc,IAAI,aAAaD,CAAiB,EAChDE,EAAY,IAAI,WAAWF,CAAiB,EAC5CG,EAAQ,EAEHC,EAAMN,EAAUO,EAAM,EAAGD,GAAOL,EAASK,IAAOC,IACnDC,EAAWd,GAAgBY,EAAM,GAAMP,GAAYH,CAAY,EAC/DS,GAASG,EACTL,EAAYI,CAAG,EAAIC,EAMrB,IAFAC,EAAc,EAETF,EAAM,EAAGA,EAAMJ,EAAY,OAAQI,IACtC1C,EAAYsC,EAAYI,CAAG,EAAIF,EAC/BI,GAAe5C,EACfuC,EAAUG,CAAG,EAAInB,EAAavB,CAAS,EAezC,IAXAuC,EAAUb,GAAY,CAAC,GAAKH,EAAa,EAAMqB,CAAW,EAS1DC,EAAe,EAERA,EAAeN,EAAU,QAAUA,EAAUM,CAAY,IAAM,GACpEA,IAGF,GAAIA,EAAeN,EAAU,OAAQ,CAGnC,IAFAO,EAAgBP,EAAU,OAAS,EAE5BO,EAAgB,GAAKP,EAAUO,CAAa,IAAM,GACvDA,IASF,GANAnD,EAAcwC,EAAWU,EACzBjD,EAAakD,EAAgBD,EAAe,EAC5CG,EAAaC,GAAiB,EAAItD,EAElCqD,EAAaC,GAAiB,EAAIrD,EAE9B,CAACsD,EACHF,EAAa,IAAIT,EAAU,SAASM,EAAcC,EAAgB,CAAC,EAAGG,CAAe,EACrFA,GAAmBrD,MAGnB,KAAK8C,EAAMG,EAAcH,GAAOI,EAAeJ,IAC7CM,EAAaC,GAAiB,EAAIV,EAAUG,CAAG,CAGzD,MAEMM,EAAaC,GAAiB,EAAI,EAElCD,EAAaC,GAAiB,EAAI,CAErC,CAED,OAAOD,CACT,CAEA,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS7E,EAAQX,EAAOY,EAAQ,CAQjEZ,EAAO,QAAU,CAAC,CAEhB,IAAK,GACL,OAAQ,SAAgB2F,EAAG,CACzB,OAAOA,GAAK,KAAQA,EAAI,GAAM,EAAM,CACrC,CACH,EAAG,CAED,IAAK,EACL,OAAQ,SAAgBA,EAAG,CACzB,GAAIA,GAAK,IAAQA,GAAK,EACpB,MAAO,GAGT,GAAIA,EAAI,eAAmBA,EAAI,aAC7B,MAAO,GAGT,IAAIC,EAAMD,EAAI,KAAK,GACnB,OAAO,KAAK,IAAIC,CAAG,EAAIA,GAAO,IAAO,IAAO,KAAK,IAAIA,EAAM,CAAG,EAC/D,CACH,EAAG,CAED,IAAK,EACL,OAAQ,SAAgBD,EAAG,CACzB,GAAIA,GAAK,IAAQA,GAAK,EACpB,MAAO,GAGT,GAAIA,EAAI,eAAmBA,EAAI,aAC7B,MAAO,GAGT,IAAIC,EAAMD,EAAI,KAAK,GACnB,OAAO,KAAK,IAAIC,CAAG,EAAIA,EAAM,KAAK,IAAIA,EAAM,CAAG,GAAKA,EAAM,EAC3D,CACH,EAAG,CAED,IAAK,EACL,OAAQ,SAAgBD,EAAG,CACzB,GAAIA,GAAK,IAAQA,GAAK,EACpB,MAAO,GAGT,GAAIA,EAAI,eAAmBA,EAAI,aAC7B,MAAO,GAGT,IAAIC,EAAMD,EAAI,KAAK,GACnB,OAAO,KAAK,IAAIC,CAAG,EAAIA,EAAM,KAAK,IAAIA,EAAM,CAAG,GAAKA,EAAM,EAC3D,CACH,CAAC,CAED,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,SAASjF,EAAQX,EAAOY,EAAQ,CAGzC,IAAIgC,EAAgBjC,EAAQ,qBAAqB,EAEjD,SAASkC,EAAWC,EAAKC,EAAOC,EAAQ,CAItC,QAHIC,EAAM,EACNC,EAAMH,EAAQC,EAAS,EAAI,EAExBC,EAAMC,GACXJ,EAAIG,CAAG,EAAI,IACXA,EAAMA,EAAM,EAAI,CAEnB,CAED,SAAS4C,EAAanE,EAAK,CACzB,OAAO,IAAI,WAAWA,EAAI,OAAQ,EAAGA,EAAI,UAAU,CACpD,CAED,IAAIoE,EAAQ,GAEZ,GAAI,CACFA,EAAQ,IAAI,YAAY,IAAI,WAAW,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAM,CACtE,MAAa,CAAE,CAEf,SAASC,EAAcrE,EAAKsE,EAAQC,EAAe,CACjD,GAAIH,EAAO,CACTE,EAAO,IAAIH,EAAanE,CAAG,EAAGuE,CAAa,EAC3C,MACD,CAED,QAAShD,EAAMgD,EAAe5F,EAAI,EAAGA,EAAIqB,EAAI,OAAQrB,IAAK,CACxD,IAAI6F,EAAOxE,EAAIrB,CAAC,EAChB2F,EAAO/C,GAAK,EAAIiD,EAAO,IACvBF,EAAO/C,GAAK,EAAIiD,GAAQ,EAAI,GAC7B,CACF,CAEDlG,EAAO,QAAU,SAAqBqB,EAAS,CAC7C,IAAIK,EAAML,EAAQ,IACdO,EAAOP,EAAQ,MACfQ,EAAOR,EAAQ,OACfS,EAAQT,EAAQ,QAChB8B,EAAQ9B,EAAQ,SAChB+B,EAAS/B,EAAQ,QAAUA,EAAQ,QAAUA,EAAQ,MACrDgC,EAAShC,EAAQ,QAAUA,EAAQ,SAAWA,EAAQ,OACtDiC,EAAUjC,EAAQ,SAAW,EAC7BkC,EAAUlC,EAAQ,SAAW,EAC7BM,EAAON,EAAQ,MAAQ,IAAI,WAAWS,EAAQqB,EAAQ,CAAC,EACvDK,EAAU,OAAOnC,EAAQ,QAAY,IAAc,EAAIA,EAAQ,QAC/DoC,EAAQpC,EAAQ,OAAS,GACzBqC,EAAWd,EAAcY,EAAS5B,EAAME,EAAOsB,EAAQE,CAAO,EAC9DK,EAAWf,EAAcY,EAAS3B,EAAMsB,EAAOE,EAAQE,CAAO,EAE9D4C,EAAa,EAEbC,EAAa,KAAK,QAAQD,EAAa,KAAK,IAAIzE,EAAI,WAAYC,EAAK,UAAU,CAAC,EAEhF0E,EAAkB,KAAK,QAAQD,EAAavE,EAAOC,EAAQ,CAAC,EAE5DwE,EAAkB,KAAK,QAAQD,EAAkB3C,EAAS,UAAU,EAEpE6C,EAAcD,EAAkB3C,EAAS,WAEzC6C,EAAW,KAAK,WAAW,SAAUD,CAAW,EAKhDE,EAAM,IAAI,WAAW,KAAK,SAAS,MAAM,EACzCC,EAAQ,IAAI,YAAY,KAAK,SAAS,MAAM,EAE5CC,EAAQ,IAAI,YAAYjF,EAAI,MAAM,EACtCgF,EAAM,IAAIC,CAAK,EAGfZ,EAAcrC,EAAU+C,EAAKJ,CAAe,EAC5CN,EAAcpC,EAAU8C,EAAKH,CAAe,EAI5C,IAAIM,EAAKJ,EAAS,QAAQ,YAAcA,EAAS,QAAQ,YACzDI,EAAGP,EAAiBC,EAAiBF,EAAYxE,EAAMC,EAAMC,EAAOqB,CAAK,EAKzE,IAAI0D,EAAS,IAAI,YAAYlF,EAAK,MAAM,EACxC,OAAAkF,EAAO,IAAI,IAAI,YAAY,KAAK,SAAS,OAAQ,EAAG1D,EAAQrB,CAAK,CAAC,EAI7D2B,GAAOZ,EAAWlB,EAAMG,EAAOqB,CAAK,EAClCxB,CACT,CAEA,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,SAAShB,EAAQX,EAAOY,EAAQ,CAGhEZ,EAAO,QAAU,CACf,KAAM,eACN,GAAIW,EAAQ,gBAAgB,EAC5B,QAASA,EAAQ,qBAAqB,EACtC,SAAUA,EAAQ,4BAA4B,CAChD,CAEC,EAAC,CAAC,iBAAiB,GAAG,sBAAsB,GAAG,6BAA6B,EAAE,CAAC,EAAE,GAAG,CAAC,SAASA,EAAQX,EAAOY,EAAQ,CAYtH,IAAIkG,EAAcnG,EAAQ,aAAa,EAEvC,SAASoG,EAAQC,EAAKjE,EAAOC,EAAQ,CAKnC,QAJIiE,EAAOlE,EAAQC,EACfkE,EAAM,IAAI,YAAYD,CAAI,EAC1BhH,EAAG+B,EAAGC,EAAGkF,EAEJ9G,EAAI,EAAGA,EAAI4G,EAAM5G,IACxBJ,EAAI+G,EAAI,EAAI3G,CAAC,EACb2B,EAAIgF,EAAI,EAAI3G,EAAI,CAAC,EACjB4B,EAAI+E,EAAI,EAAI3G,EAAI,CAAC,EACjB8G,EAAMlH,GAAK+B,GAAK/B,GAAKgC,EAAIhC,EAAI+B,GAAKC,GAAKD,GAAK/B,EAAI+B,EAAIC,EACpDiF,EAAI7G,CAAC,EAAI8G,GAAO,EAGlB,OAAOD,CACR,CAEDlH,EAAO,QAAU,SAAiBgH,EAAKjE,EAAOC,EAAQoE,EAAQC,EAAQC,EAAW,CAC/E,IAAIC,EAAIC,EAAIC,EACRC,EAAMC,EAEV,GAAI,EAAAP,IAAW,GAAKC,EAAS,IAI7B,CAAIA,EAAS,IACXA,EAAS,GAGX,IAAIO,EAAab,EAAQC,EAAKjE,EAAOC,CAAM,EACvC6E,EAAS,IAAI,YAAYD,CAAU,EAEvCd,EAAYe,EAAQ9E,EAAOC,EAAQqE,CAAM,EAMzC,QALIS,EAAWV,EAAS,IAAM,KAAS,GAAM,EACzCW,EAAcT,GAAa,EAC3BL,EAAOlE,EAAQC,EAGV3C,EAAI,EAAGA,EAAI4G,EAAM5G,IACxBkH,EAAKK,EAAWvH,CAAC,EACjBqH,EAAOH,EAAKM,EAAOxH,CAAC,EAEhB,KAAK,IAAIqH,CAAI,GAAKK,IAEpBP,EAAKD,GAAMO,EAAWJ,EAAO,MAAS,IAItCF,EAAKA,EAAK,MAAS,MAASA,EAC5BA,EAAKA,EAAK,EAAS,EAASA,EAG5BD,EAAKA,IAAO,EAAIA,EAAK,EAIrBE,GAAQD,GAAM,IAAMD,EAAK,EAMzBI,EAAUtH,EAAI,EACd2G,EAAIW,CAAO,EAAIX,EAAIW,CAAO,EAAIF,EAAO,MAAS,GAE9CT,EAAIW,EAAU,CAAC,EAAIX,EAAIW,EAAU,CAAC,EAAIF,EAAO,MAAS,GAEtDT,EAAIW,EAAU,CAAC,EAAIX,EAAIW,EAAU,CAAC,EAAIF,EAAO,MAAS,IAG5D,CAEA,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS9G,EAAQX,EAAOY,EAAQ,CAG1DZ,EAAO,QAAU,SAAiBgH,EAAKjE,EAAOC,EAAQoE,EAAQC,EAAQC,EAAW,CAC/E,GAAI,EAAAF,IAAW,GAAKC,EAAS,IAI7B,CAAIA,EAAS,IACXA,EAAS,GAGX,IAAIW,EAASjF,EAAQC,EACjBiF,EAAgBD,EAAS,EACzBE,EAAgBF,EAAS,EACzBG,EAAiBH,EAAS,EAC1BI,EAAqB,KAAK,IAAIrF,EAAOC,CAAM,EAAI,EAE/CqF,EAAuB,EAAI,EAE3BC,EAAa,EACbC,EAAaN,EACbO,EAAcD,EAAaL,EAC3BO,EAAkBD,EAAcL,EAChCO,EAAmBD,EAAkBN,EACrCQ,EAAqBD,EAAmBN,EAExC5B,EAAW,KAAK,WAAW,eAAgByB,EAAgBC,EAAgBC,EAAiB,EAAIC,EAAqBC,EAAsB,CAC7I,IAAK,KAAK,GACd,CAAG,EAGGO,EAAQ,IAAI,YAAY5B,EAAI,MAAM,EAClCN,EAAQ,IAAI,YAAY,KAAK,SAAS,MAAM,EAChDA,EAAM,IAAIkC,CAAK,EAEf,IAAIhC,EAAKJ,EAAS,QAAQ,SAAWA,EAAS,QAAQ,SACtDI,EAAG0B,EAAYC,EAAYxF,EAAOC,CAAM,EAExC4D,EAAKJ,EAAS,QAAQ,YAAcA,EAAS,QAAQ,YACrDI,EAAG2B,EAAYC,EAAaC,EAAiBC,EAAkBC,EAAoB5F,EAAOC,EAAQqE,CAAM,EAExGT,EAAKJ,EAAS,QAAQ,SAAWA,EAAS,QAAQ,SAClDI,EAAG0B,EAAYA,EAAYC,EAAYC,EAAazF,EAAOC,EAAQoE,EAAQE,CAAS,EAEpFsB,EAAM,IAAI,IAAI,YAAY,KAAK,SAAS,OAAQ,EAAGZ,CAAM,CAAC,EAC5D,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASrH,EAAQX,EAAOY,EAAQ,CAM1CZ,EAAO,QAAU,87EAEjB,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASW,EAAQX,EAAOY,EAAQ,CAG1C,IAAIiI,EAAc,IAElB,SAASC,EAAKC,EAAQC,EAAM,CAC1B,KAAK,OAASD,EACd,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,KAAOC,GAAQ,GACrB,CAEDF,EAAK,UAAU,QAAU,UAAY,CACnC,IAAIG,EAAQ,KAERC,EAEJ,OAAI,KAAK,UAAU,SAAW,EAC5BA,EAAW,KAAK,UAAU,OAE1BA,EAAW,KAAK,SAChBA,EAAS,GAAK,KAAK,SAEnBA,EAAS,QAAU,UAAY,CAC7B,OAAOD,EAAM,QAAQC,CAAQ,CACnC,GAGE,KAAK,SAASA,EAAS,EAAE,EAAIA,EACtBA,CACT,EAEAJ,EAAK,UAAU,QAAU,SAAUI,EAAU,CAC3C,IAAIC,EAAS,KAEb,OAAO,KAAK,SAASD,EAAS,EAAE,EAChCA,EAAS,SAAW,KAAK,MACzB,KAAK,UAAU,KAAKA,CAAQ,EAExB,KAAK,YAAc,IACrB,KAAK,UAAY,WAAW,UAAY,CACtC,OAAOC,EAAO,IACf,EAAEN,CAAW,EAElB,EAEAC,EAAK,UAAU,GAAK,UAAY,CAC9B,IAAIM,EAAS,KAETC,EAAM,KAAK,MACf,KAAK,UAAY,KAAK,UAAU,OAAO,SAAUH,EAAU,CACzD,OAAIG,EAAMH,EAAS,SAAWE,EAAO,MACnCF,EAAS,QAAO,EACT,IAGF,EACX,CAAG,EAEG,KAAK,UAAU,SAAW,EAC5B,KAAK,UAAY,WAAW,UAAY,CACtC,OAAOE,EAAO,IACf,EAAEP,CAAW,EAEd,KAAK,UAAY,CAErB,EAEA7I,EAAO,QAAU8I,CAEjB,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASnI,EAAQX,EAAOY,EAAQ,CAgB1C,IAAI0I,EAAsB,EAE1BtJ,EAAO,QAAU,SAAsBuJ,EAAWC,EAAYC,EAASC,EAAUC,EAAaC,EAAgB,CAC5G,IAAIxG,EAASqG,EAAUF,EACnBlG,EAASqG,EAAWF,EAGpBK,GAAY,EAAID,EAAiBN,EAAsB,GAAKK,EAGhE,GAAIE,EAAW,GAAK,MAAO,CAAC,CAACJ,EAASC,CAAQ,CAAC,EAC/C,IAAII,EAAa,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI1G,EAAQC,CAAM,CAAC,EAAI,KAAK,IAAIwG,CAAQ,CAAC,EAGlF,GAAIC,GAAc,EAAG,MAAO,CAAC,CAACL,EAASC,CAAQ,CAAC,EAGhD,QAFInI,EAAS,CAAA,EAEJlB,EAAI,EAAGA,EAAIyJ,EAAYzJ,IAAK,CACnC,IAAI0C,EAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,IAAIwG,EAAWO,EAAazJ,EAAI,CAAC,EAAI,KAAK,IAAIoJ,EAASpJ,EAAI,CAAC,EAAG,EAAIyJ,CAAU,CAAC,EAC/G9G,EAAS,KAAK,MAAM,KAAK,IAAI,KAAK,IAAIwG,EAAYM,EAAazJ,EAAI,CAAC,EAAI,KAAK,IAAIqJ,EAAUrJ,EAAI,CAAC,EAAG,EAAIyJ,CAAU,CAAC,EACtHvI,EAAO,KAAK,CAACwB,EAAOC,CAAM,CAAC,CAC5B,CAED,OAAOzB,CACT,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASZ,EAAQX,EAAOY,EAAQ,CAc1C,IAAImJ,EAAgB,KAEpB,SAASC,EAAWrE,EAAG,CACrB,IAAIsE,EAAU,KAAK,MAAMtE,CAAC,EAE1B,OAAI,KAAK,IAAIA,EAAIsE,CAAO,EAAIF,EACnBE,EAGF,KAAK,MAAMtE,CAAC,CACpB,CAED,SAASuE,EAAUvE,EAAG,CACpB,IAAIsE,EAAU,KAAK,MAAMtE,CAAC,EAE1B,OAAI,KAAK,IAAIA,EAAIsE,CAAO,EAAIF,EACnBE,EAGF,KAAK,KAAKtE,CAAC,CACnB,CAED3F,EAAO,QAAU,SAAuBqB,EAAS,CAC/C,IAAI+B,EAAS/B,EAAQ,QAAUA,EAAQ,MACnCgC,EAAShC,EAAQ,SAAWA,EAAQ,OACpC8I,EAAiBH,EAAW3I,EAAQ,YAAc+B,CAAM,EAAI,EAAI/B,EAAQ,eACxE+I,EAAkBJ,EAAW3I,EAAQ,YAAcgC,CAAM,EAAI,EAAIhC,EAAQ,eAE7E,GAAI8I,EAAiB,GAAKC,EAAkB,EAC1C,MAAM,IAAI,MAAM,gEAAgE,EAGlF,IAAIzE,EAAG0E,EACHC,EAAQC,EAAQC,EAAaC,EAC7BC,EAAQ,CAAA,EACRC,EAGJ,IAAKJ,EAAS,EAAGA,EAASlJ,EAAQ,SAAUkJ,GAAUH,EACpD,IAAKE,EAAS,EAAGA,EAASjJ,EAAQ,QAASiJ,GAAUH,EACnDxE,EAAI2E,EAASjJ,EAAQ,eAEjBsE,EAAI,IACNA,EAAI,GAGN6E,EAAcF,EAASH,EAAiB9I,EAAQ,eAAiBsE,EAE7DA,EAAI6E,GAAenJ,EAAQ,UAC7BmJ,EAAcnJ,EAAQ,QAAUsE,GAGlC0E,EAAIE,EAASlJ,EAAQ,eAEjBgJ,EAAI,IACNA,EAAI,GAGNI,EAAeF,EAASH,EAAkB/I,EAAQ,eAAiBgJ,EAE/DA,EAAII,GAAgBpJ,EAAQ,WAC9BoJ,EAAepJ,EAAQ,SAAWgJ,GAGpCM,EAAO,CACL,IAAKhF,EACL,IAAK0E,EACL,QAASG,EACT,SAAUC,EACV,SAAUH,EACV,SAAUC,EACV,aAAcJ,EACd,cAAeC,EACf,QAASzE,EAAIvC,EAAS4G,EAAWrE,EAAIvC,CAAM,EAC3C,QAASiH,EAAIhH,EAAS2G,EAAWK,EAAIhH,CAAM,EAC3C,OAAQD,EACR,OAAQC,EACR,EAAG2G,EAAWrE,EAAIvC,CAAM,EACxB,EAAG4G,EAAWK,EAAIhH,CAAM,EACxB,MAAO6G,EAAUM,EAAcpH,CAAM,EACrC,OAAQ8G,EAAUO,EAAepH,CAAM,CAC/C,EACMqH,EAAM,KAAKC,CAAI,EAInB,OAAOD,CACT,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS/J,EAAQX,EAAOY,EAAQ,CAG1C,SAASgK,EAASC,EAAK,CACrB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,CAC1C,CAED7K,EAAO,QAAQ,SAAW,SAAkB8K,EAAS,CACnD,IAAIC,EAAQH,EAASE,CAAO,EAC5B,OAAOC,IAAU,8BAEdA,IAAU,4BAA8BA,IAAU,iBAGvD,EAEA/K,EAAO,QAAQ,QAAU,SAAiB8K,EAAS,CACjD,OAAOF,EAASE,CAAO,IAAM,2BAC/B,EAEA9K,EAAO,QAAQ,cAAgB,SAAuB8K,EAAS,CAC7D,OAAOF,EAASE,CAAO,IAAM,sBAC/B,EAEA9K,EAAO,QAAQ,QAAU,SAAiBgL,EAAa,CACrD,IAAIC,EAAS,EACTC,EAAQ,CAAA,EAEZ,SAASC,GAAO,CACVF,EAASD,GAAeE,EAAM,SAChCD,IACAC,EAAM,MAAK,IAEd,CAED,OAAO,SAAetE,EAAI,CACxB,OAAO,IAAI,QAAQ,SAAUwE,EAASC,EAAQ,CAC5CH,EAAM,KAAK,UAAY,CACrBtE,EAAI,EAAC,KAAK,SAAUrF,EAAQ,CAC1B6J,EAAQ7J,CAAM,EACd0J,IACAE,GACD,EAAE,SAAUG,EAAK,CAChBD,EAAOC,CAAG,EACVL,IACAE,GACV,CAAS,CACT,CAAO,EACDA,GACN,CAAK,CACL,CACA,EAEAnL,EAAO,QAAQ,iBAAmB,SAA0BgE,EAAK,CAC/D,OAAQA,EAAG,CACT,IAAK,GACH,MAAO,YAET,IAAK,GACH,MAAO,MAET,IAAK,GACH,MAAO,QACV,CAED,MAAO,MACT,EAEAhE,EAAO,QAAQ,YAAc,SAAqBuL,EAAc,CAC9D,OAAO,QAAQ,UAAU,KAAK,UAAY,CACxC,GAAI,OAAO,kBAAsB,IAC/B,MAAO,GAGT,IAAIjL,EAAIiL,EAAa,IAAK,GAAG,EAC7B,OAAO,kBAAkBjL,EAAG,EAAG,EAAG,IAAK,IAAK,CAC1C,YAAa,GACb,aAAc,GACd,cAAe,MACrB,CAAK,EAAE,KAAK,SAAUkL,EAAQ,CACxB,IAAIC,EAASD,EAAO,QAAU,GAQ9B,OAAAA,EAAO,MAAK,EACZlL,EAAI,KACGmL,CACb,CAAK,CACL,CAAG,EAAE,MAAS,UAAY,CACtB,MAAO,EACX,CAAG,CACH,EAEAzL,EAAO,QAAQ,gCAAkC,UAA2C,CAC1F,OAAO,IAAI,QAAQ,SAAUoL,EAASC,EAAQ,CAC5C,GAAI,OAAO,gBAAoB,IAAa,CAE1CD,EAAQ,EAAK,EACb,MACD,CAED,SAASM,EAAcC,EAAM,CAC3B,GAAI,OAAO,kBAAsB,IAAa,CAC5CA,EAAK,YAAY,EAAK,EACtB,MACD,CAED,QAAQ,UAAU,KAAK,UAAY,CACjC,IAAIC,EAAS,IAAI,gBAAgB,GAAI,EAAE,EAEnCC,EAAMD,EAAO,WAAW,IAAI,EAChC,OAAAC,EAAI,KAAK,EAAG,EAAG,EAAG,CAAC,EAEZ,kBAAkBD,EAAQ,EAAG,EAAG,EAAG,CAAC,CACnD,CAAO,EAAE,KAAK,UAAY,CAClB,OAAOD,EAAK,YAAY,EAAI,CACpC,EAAS,UAAY,CACb,OAAOA,EAAK,YAAY,EAAK,CACrC,CAAO,CACF,CAED,IAAIG,EAAO,KAAK,IAAI,OAAOJ,EAAc,SAAQ,EAAI,UAAU,CAAC,EAC5DK,EAAI,IAAI,OAAO,+BAA+B,OAAOD,CAAI,CAAC,EAE9DC,EAAE,UAAY,SAAUC,EAAI,CAC1B,OAAOZ,EAAQY,EAAG,IAAI,CAC5B,EAEID,EAAE,QAAUV,CAChB,CAAG,EAAE,KAAK,SAAU9J,EAAQ,CACxB,OAAOA,CACX,EAAK,UAAY,CACb,MAAO,EACX,CAAG,CACH,EAIAvB,EAAO,QAAQ,eAAiB,SAAwBuL,EAAc,CACpE,IAAIU,EAAS,GAEb,GAAI,CACF,IAAIL,EAASL,EAAa,EAAG,CAAC,EAC1BM,EAAMD,EAAO,WAAW,IAAI,EAC5BM,EAAIL,EAAI,gBAAgB,EAAG,CAAC,EAChCK,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,IACZA,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,GACZA,EAAE,KAAK,CAAC,EAAI,IACZL,EAAI,aAAaK,EAAG,EAAG,CAAC,EACxBA,EAAI,KACJA,EAAIL,EAAI,aAAa,EAAG,EAAG,EAAG,CAAC,EAE3BK,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,KAAOA,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,IAAM,MAC7JD,EAAS,GAEf,MAAgB,CAAE,CAEhB,OAAOA,CACT,EAMAjM,EAAO,QAAQ,mBAAqB,UAA8B,CAChE,OAAO,IAAI,QAAQ,SAAUoL,EAAS,CACpC,GAAI,OAAO,kBAAsB,IAAa,CAC5CA,EAAQ,EAAK,EACb,MACD,CAED,IAAIe,EAAQ,IAAI,MAChBA,EAAM,IAAM,0zBAEZA,EAAM,OAAS,UAAY,CACzB,kBAAkBA,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,EAAE,KAAK,SAAUX,EAAQ,CAC3EA,EAAO,QAAUW,EAAM,OAASX,EAAO,SAAWW,EAAM,OAC1Df,EAAQ,EAAI,EAEZA,EAAQ,EAAK,CAEvB,EAAS,UAAY,CACb,OAAOA,EAAQ,EAAK,CAC5B,CAAO,CACP,EAEIe,EAAM,QAAU,UAAY,CAC1B,OAAOf,EAAQ,EAAK,CAC1B,CACA,CAAG,CACH,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASzK,EAAQX,EAAOY,EAAQ,CAI1CZ,EAAO,QAAU,UAAY,CAC3B,IAAIiB,EAAUN,EAAQ,WAAW,EAE7ByL,EAGJ,UAAY,SAAmBJ,EAAI,CACjC,IAAIK,EAAWL,EAAG,KAAK,KAGvB,GAAI,CAACK,EAAS,KAAOA,EAAS,UAAW,CACvC,IAAIT,EAAS,IAAI,gBAAgBS,EAAS,MAAOA,EAAS,MAAM,EAC5DR,EAAMD,EAAO,WAAW,KAAM,CAChC,MAAO,EAAQS,EAAS,KAChC,CAAO,EACDR,EAAI,UAAUQ,EAAS,UAAW,EAAG,CAAC,EACtCA,EAAS,IAAMR,EAAI,aAAa,EAAG,EAAGQ,EAAS,MAAOA,EAAS,MAAM,EAAE,KACvET,EAAO,MAAQA,EAAO,OAAS,EAC/BA,EAAS,KACTS,EAAS,UAAU,QACnBA,EAAS,UAAY,IAGtB,CAEID,IAASA,EAAU,IAAInL,EAAQ+K,EAAG,KAAK,QAAQ,GAGpD,IAAI9F,EAAOkG,EAAQ,iBAAiBC,CAAQ,EAmB1C,YAAY,CACV,KAAMnG,CACd,EAAS,CAACA,EAAK,MAAM,CAAC,CAEtB,CACA,CAEA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,SAASvF,EAAQX,EAAOY,EAAQ,CAMvD,IAAI0L,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAaC,EAEzC,SAASC,EAAUC,EAAO,CACpBA,EAAQ,KACVA,EAAQ,IAGV,IAAItM,EAAI,KAAK,IAAI,KAAQ,IAAK,EAAIsM,EAC9BC,EAAK,KAAK,IAAI,CAACvM,CAAC,EAChBwM,EAAK,KAAK,IAAI,GAAKxM,CAAC,EACpByM,GAAK,EAAIF,IAAO,EAAIA,IAAO,EAAI,EAAIvM,EAAIuM,EAAKC,GAEhD,OAAAX,EAAKY,EACLX,EAAKW,GAAKzM,EAAI,GAAKuM,EACnBR,EAAKU,GAAKzM,EAAI,GAAKuM,EACnBP,EAAK,CAACS,EAAID,EACVP,EAAK,EAAIM,EACTL,EAAK,CAACM,EACNL,GAAeN,EAAKC,IAAO,EAAIG,EAAKC,GACpCE,GAAgBL,EAAKC,IAAO,EAAIC,EAAKC,GAG9B,IAAI,aAAa,CAAEL,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAaC,CAAc,CAAA,CAC9E,CAED,SAASM,EAAezL,EAAKwF,EAAKkG,EAAMC,EAAOtK,EAAOC,EAAQ,CAG5D,IAAIsK,EAAUC,EAAUC,EAAUC,EAAUC,EACxCC,EAAWC,EAAWC,EACtBxN,EAAGyN,EACHC,EAAUC,EAAUC,EAAUC,EAElC,IAAK7N,EAAI,EAAGA,EAAI2C,EAAQ3C,IAAK,CAe3B,IAdAsN,EAAYtN,EAAI0C,EAChB6K,EAAYvN,EACZwN,EAAa,EAGbP,EAAW5L,EAAIiM,CAAS,EACxBD,EAAgBJ,EAAWD,EAAM,CAAC,EAClCI,EAAWC,EAEXK,EAAWV,EAAM,CAAC,EAClBW,EAAWX,EAAM,CAAC,EAClBY,EAAWZ,EAAM,CAAC,EAClBa,EAAWb,EAAM,CAAC,EAEbS,EAAI,EAAGA,EAAI/K,EAAO+K,IACrBP,EAAW7L,EAAIiM,CAAS,EAExBH,EAAWD,EAAWQ,EACXT,EAAWU,EACXP,EAAWQ,EACXP,EAAgBQ,EAE3BR,EAAgBD,EAChBA,EAAWD,EACXF,EAAWC,EAEXH,EAAKS,CAAU,EAAIJ,EACnBI,IACAF,IAgBF,IAbAA,IACAE,IACAD,GAAa5K,GAAUD,EAAQ,GAG/BuK,EAAW5L,EAAIiM,CAAS,EACxBD,EAAgBJ,EAAWD,EAAM,CAAC,EAClCI,EAAWC,EACXH,EAAWD,EAEXS,EAAWV,EAAM,CAAC,EAClBW,EAAWX,EAAM,CAAC,EAEbS,EAAI/K,EAAQ,EAAG+K,GAAK,EAAGA,IAC1BN,EAAWD,EAAWQ,EACXT,EAAWU,EACXP,EAAWQ,EACXP,EAAgBQ,EAE3BR,EAAgBD,EAChBA,EAAWD,EAEXF,EAAWC,EACXA,EAAW7L,EAAIiM,CAAS,EAExBzG,EAAI0G,CAAS,EAAIR,EAAKS,CAAU,EAAIJ,EAEpCE,IACAE,IACAD,GAAa5K,CAEhB,CACF,CAGD,SAASmL,EAAWzM,EAAKqB,EAAOC,EAAQqE,EAAQ,CAE9C,GAAKA,EAEL,KAAIH,EAAW,IAAI,YAAYxF,EAAI,MAAM,EACrC0M,EAAW,IAAI,aAAa,KAAK,IAAIrL,EAAOC,CAAM,CAAC,EAEnDqK,EAAQP,EAAUzF,CAAM,EAE5B8F,EAAezL,EAAKwF,EAAKkH,EAAUf,EAAOtK,EAAOC,CAAc,EAC/DmK,EAAejG,EAAKxF,EAAK0M,EAAUf,EAAOrK,EAAQD,CAAa,EAChE,CAED/C,EAAO,QAAUmO,CAEjB,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASxN,EAAQX,EAAOY,EAAQ,CACtC,OAAO,OAAO,QAAW,WAE3BZ,EAAO,QAAU,SAAkBqO,EAAMC,EAAW,CAC9CA,IACFD,EAAK,OAASC,EACdD,EAAK,UAAY,OAAO,OAAOC,EAAU,UAAW,CAClD,YAAa,CACX,MAAOD,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACf,CACT,CAAO,EAEP,EAGErO,EAAO,QAAU,SAAkBqO,EAAMC,EAAW,CAClD,GAAIA,EAAW,CACbD,EAAK,OAASC,EACd,IAAIC,EAAW,UAAY,CAAE,EAC7BA,EAAS,UAAYD,EAAU,UAC/BD,EAAK,UAAY,IAAIE,EACrBF,EAAK,UAAU,YAAcA,CAC9B,CACF,CAGH,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS1N,EAAQX,EAAOY,EAAQ,CAI1C,IAAI4N,EAAiB7N,EAAQ,eAAe,EACxC8N,EAAiB9N,EAAQ,oBAAoB,EAC7C+N,EAAiB/N,EAAQ,iBAAiB,EAG1CgO,EAAkB,CACpB,GAAI,GACJ,KAAM,EACR,EAGA,SAASC,EAAUvN,EAAS,CAC1B,GAAI,EAAE,gBAAgBuN,GAAY,OAAO,IAAIA,EAAUvN,CAAO,EAE9D,IAAIwN,EAAOL,EAAO,CAAA,EAAIG,EAAiBtN,GAAW,CAAA,CAAE,EAapD,GAXA,KAAK,QAAkBwN,EAEvB,KAAK,QAAkB,GAEvB,KAAK,eAAkB,KACvB,KAAK,UAAkBA,EAAK,SAAW,CAAA,EACvC,KAAK,SAAkB,KACvB,KAAK,OAAkB,GAEvB,KAAK,OAAW,IAAI,YAAa,IAAI,WAAW,CAAE,EAAG,EAAG,EAAG,CAAC,CAAE,EAAG,MAAM,EAAG,CAAC,IAAM,EAE7E,CAAC,KAAK,QAAQ,IAAM,CAAC,KAAK,QAAQ,KACpC,MAAM,IAAI,MAAM,oDAAoD,CAEvE,CAGDD,EAAU,UAAU,SAAWF,EAG/BE,EAAU,UAAU,IAAM,SAAU5O,EAAQ,CAC1C,YAAK,UAAUA,EAAO,IAAI,EAAIA,EAG1B,KAAK,QAAQ,MAAQ,KAAK,SAAU,GAAIA,EAAO,QACjD,KAAKA,EAAO,IAAI,EAAIA,EAAO,QAE3B,KAAKA,EAAO,IAAI,EAAIA,EAAO,GAGtB,IACT,EAGA4O,EAAU,UAAU,KAAO,UAAY,CACrC,GAAI,KAAK,eAAgB,OAAO,KAAK,eAErC,GAAI,CAAC,KAAK,QAAQ,IAAM,KAAK,QAAQ,MAAQ,CAAC,KAAK,WACjD,OAAO,QAAQ,OAAO,IAAI,MAAM,0DAA2D,CAAC,EAG9F,IAAIjD,EAAO,KAEX,YAAK,eAAiB,QAAQ,IAAI,OAAO,KAAKA,EAAK,SAAS,EAAE,IAAI,SAAUmD,EAAM,CAChF,IAAI9O,EAAS2L,EAAK,UAAUmD,CAAI,EAKhC,MAHI,CAACnD,EAAK,QAAQ,MAAQ,CAACA,EAAK,SAAQ,GAAM,CAAC3L,EAAO,SAGlD2L,EAAK,OAAOmD,CAAI,EAAU,KAGvB,YAAY,QAAQnD,EAAK,eAAe3L,EAAO,QAAQ,CAAC,EAC5D,KAAK,SAAU+O,EAAG,CAAEpD,EAAK,OAAOmD,CAAI,EAAIC,CAAE,CAAE,CACnD,CAAG,CAAC,EACC,KAAK,UAAY,CAAE,OAAOpD,CAAO,CAAA,EAE7B,KAAK,cACd,EAUAiD,EAAU,UAAU,eAAiBH,EAOrCG,EAAU,UAAU,aAAe,SAAqBI,EAAO,CAC7D,GAAI,CAAC,KAAK,SACR,YAAK,SAAW,IAAI,YAAY,OAAO,CACrC,QAAS,KAAK,KAAKA,GAAS,GAAK,KAAK,CAC5C,CAAK,EACM,KAAK,SAGd,IAAIC,EAAW,KAAK,SAAS,OAAO,WAEpC,OAAIA,EAAWD,GACb,KAAK,SAAS,KAAK,KAAK,MAAMA,EAAQC,IAAa,GAAK,KAAK,CAAC,EAGzD,KAAK,QACd,EAWAL,EAAU,UAAU,WAAa,SAAkBE,EAAMI,EAASC,EAAW,CAI3E,GAHID,GAAS,KAAK,aAAaA,CAAO,EAGlC,CAAC,KAAK,OAAOJ,CAAI,EAAG,CACtB,IAAI9O,EAAS,KAAK,UAAU8O,CAAI,EAChC,KAAK,OAAOA,CAAI,EAAI,IAAI,YAAY,OAAO,KAAK,eAAe9O,EAAO,QAAQ,CAAC,CAChF,CAED,GAAI,CAAC,KAAK,QAAQ8O,CAAI,EAAG,CACvB,IAAIM,EAAW,CACb,WAAY,EACZ,OAAQ,KAAK,SACb,UAAW,EACX,MAAO,IAAI,YAAY,MAAM,CAAE,QAAS,EAAG,QAAS,UAAW,CACrE,EAEI,KAAK,QAAQN,CAAI,EAAI,IAAI,YAAY,SAAS,KAAK,OAAOA,CAAI,EAAG,CAC/D,IAAKN,EAAOY,EAAUD,GAAa,CAAA,CAAE,CAC3C,CAAK,CACF,CAED,OAAO,KAAK,QAAQL,CAAI,CAC1B,EAMAF,EAAU,UAAU,QAAU,SAAeS,EAAQC,EAAM,CACzDA,EAAOA,GAAQ,EACf,IAAIC,EAAWF,EAASC,EACxB,OAAOD,GAAUE,EAAWD,EAAOC,EAAW,EAChD,EAGAvP,EAAO,QAAU4O,CAEhB,EAAC,CAAC,qBAAqB,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,SAASjO,EAAQX,EAAOY,EAAQ,CAMzG,IAAI4O,EAAa,mEAGjBxP,EAAO,QAAU,SAAsByP,EAAK,CAW1C,QAVIC,EAAQD,EAAI,QAAQ,WAAY,EAAE,EAClCtI,EAAQuI,EAAM,OAEdxI,EAAM,IAAI,WAAYC,EAAM,GAAM,CAAC,EAInCwI,EAAO,EACP1M,EAAO,EAEFiC,EAAM,EAAGA,EAAMiC,EAAKjC,IACtBA,EAAM,IAAM,GAAMA,IACrBgC,EAAIjE,GAAK,EAAK0M,GAAQ,GAAM,IAC5BzI,EAAIjE,GAAK,EAAK0M,GAAQ,EAAK,IAC3BzI,EAAIjE,GAAK,EAAI0M,EAAO,KAGtBA,EAAQA,GAAQ,EAAKH,EAAW,QAAQE,EAAM,OAAOxK,CAAG,CAAC,EAK3D,IAAI0K,EAAYzI,EAAM,EAAK,EAE3B,OAAIyI,IAAa,GACf1I,EAAIjE,GAAK,EAAK0M,GAAQ,GAAM,IAC5BzI,EAAIjE,GAAK,EAAK0M,GAAQ,EAAK,IAC3BzI,EAAIjE,GAAK,EAAI0M,EAAO,KACXC,IAAa,IACtB1I,EAAIjE,GAAK,EAAK0M,GAAQ,GAAM,IAC5BzI,EAAIjE,GAAK,EAAK0M,GAAQ,EAAK,KAClBC,IAAa,KACtB1I,EAAIjE,GAAK,EAAK0M,GAAQ,EAAK,KAGtBzI,CACT,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASvG,EAAQX,EAAOY,EAAQ,CAQ1C,IAAIiP,EAGJ7P,EAAO,QAAU,UAA0B,CAMzC,GAJI,OAAO6P,EAAO,MAElBA,EAAK,GAED,OAAO,YAAgB,KAAa,OAAOA,EAG/C,GAAI,CAKF,IAAIC,EAAW,IAAI,WAAW,CAAE,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAI,CAAA,EAClK9P,EAAW,IAAI,YAAY,OAAO8P,CAAG,EACrCtJ,EAAW,IAAI,YAAY,SAASxG,EAAQ,CAAE,CAAA,EAIlD,OAAIwG,EAAS,QAAQ,KAAK,CAAC,IAAM,IAAGqJ,EAAK,IAElCA,CACX,MAAe,CAAE,CAEf,OAAOA,CACT,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASlP,EAAQX,EAAOY,EAAQ,CAS1C,IAAImP,EAAwB,OAAO,sBAC/BC,EAAiB,OAAO,UAAU,eAClCC,EAAmB,OAAO,UAAU,qBAExC,SAASC,EAASC,EAAK,CACtB,GAAIA,GAAQ,KACX,MAAM,IAAI,UAAU,uDAAuD,EAG5E,OAAO,OAAOA,CAAG,CACjB,CAED,SAASC,GAAkB,CAC1B,GAAI,CACH,GAAI,CAAC,OAAO,OACX,MAAO,GAMR,IAAIC,EAAQ,IAAI,OAAO,KAAK,EAE5B,GADAA,EAAM,CAAC,EAAI,KACP,OAAO,oBAAoBA,CAAK,EAAE,CAAC,IAAM,IAC5C,MAAO,GAKR,QADIC,EAAQ,CAAA,EACH,EAAI,EAAG,EAAI,GAAI,IACvBA,EAAM,IAAM,OAAO,aAAa,CAAC,CAAC,EAAI,EAEvC,IAAIC,EAAS,OAAO,oBAAoBD,CAAK,EAAE,IAAI,SAAUnQ,EAAG,CAC/D,OAAOmQ,EAAMnQ,CAAC,CACjB,CAAG,EACD,GAAIoQ,EAAO,KAAK,EAAE,IAAM,aACvB,MAAO,GAIR,IAAIC,EAAQ,CAAA,EAIZ,MAHA,uBAAuB,MAAM,EAAE,EAAE,QAAQ,SAAUC,EAAQ,CAC1DD,EAAMC,CAAM,EAAIA,CACnB,CAAG,EACG,OAAO,KAAK,OAAO,OAAO,CAAE,EAAED,CAAK,CAAC,EAAE,KAAK,EAAE,IAC/C,sBAKF,MAAa,CAEb,MAAO,EACP,CACD,CAEDxQ,EAAO,QAAUoQ,EAAiB,EAAG,OAAO,OAAS,SAAUpK,EAAQ0K,EAAQ,CAK9E,QAJIC,EACAC,EAAKV,EAASlK,CAAM,EACpB6K,EAEKC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAC1CH,EAAO,OAAO,UAAUG,CAAC,CAAC,EAE1B,QAASC,KAAOJ,EACXX,EAAe,KAAKW,EAAMI,CAAG,IAChCH,EAAGG,CAAG,EAAIJ,EAAKI,CAAG,GAIpB,GAAIhB,EAAuB,CAC1Bc,EAAUd,EAAsBY,CAAI,EACpC,QAAStQ,EAAI,EAAGA,EAAIwQ,EAAQ,OAAQxQ,IAC/B4P,EAAiB,KAAKU,EAAME,EAAQxQ,CAAC,CAAC,IACzCuQ,EAAGC,EAAQxQ,CAAC,CAAC,EAAIsQ,EAAKE,EAAQxQ,CAAC,CAAC,EAGlC,CACD,CAED,OAAOuQ,CACR,CAEA,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAASjQ,EAAQX,EAAOY,EAAQ,CAC1C,IAAIoQ,EAAW,UAAU,CAAC,EACtBC,EAAU,UAAU,CAAC,EACrB3P,EAAQ,UAAU,CAAC,EAEnB4P,EAAY,KAAK,UAErBlR,EAAO,QAAU,SAAU4G,EAAIvF,EAAS,CAIpC,QAHI8P,EACAC,EAAY,OAAO,KAAK9P,CAAK,EAExBjB,EAAI,EAAGgR,EAAID,EAAU,OAAQ/Q,EAAIgR,EAAGhR,IAAK,CAC9C,IAAI0Q,EAAMK,EAAU/Q,CAAC,EACjBiR,EAAMhQ,EAAMyP,CAAG,EAAE,QAKrB,GAAIO,IAAQ1K,GAAM0K,GAAOA,EAAI,UAAY1K,EAAI,CACzCuK,EAAOJ,EACP,KACH,CACJ,CAED,GAAI,CAACI,EAAM,CACPA,EAAO,KAAK,MAAM,KAAK,IAAI,GAAI,CAAC,EAAI,KAAK,OAAM,CAAE,EAAE,SAAS,EAAE,EAE9D,QADII,EAAS,CAAA,EACJlR,EAAI,EAAGgR,EAAID,EAAU,OAAQ/Q,EAAIgR,EAAGhR,IAAK,CAC9C,IAAI0Q,EAAMK,EAAU/Q,CAAC,EACrBkR,EAAOR,CAAG,EAAIA,CACjB,CACDE,EAAQE,CAAI,EAAI,CACZ,oCAAsCvK,EAAK,YAC3C2K,CACZ,CACK,CACD,IAAIC,EAAO,KAAK,MAAM,KAAK,IAAI,GAAI,CAAC,EAAI,KAAK,OAAM,CAAE,EAAE,SAAS,EAAE,EAE9DC,EAAS,CAAA,EAAIA,EAAON,CAAI,EAAIA,EAChCF,EAAQO,CAAI,EAAI,CACZ,oDAEyBN,EAAUC,CAAI,EAAI,wCAG3CM,CACR,EAEI,IAAIC,EAAgB,CAAA,EACpBC,EAAeH,CAAI,EAEnB,SAASG,EAAeZ,EAAK,CACzBW,EAAcX,CAAG,EAAI,GAErB,QAASa,KAAWX,EAAQF,CAAG,EAAE,CAAC,EAAG,CACjC,IAAIc,EAASZ,EAAQF,CAAG,EAAE,CAAC,EAAEa,CAAO,EAC/BF,EAAcG,CAAM,GACrBF,EAAeE,CAAM,CAE5B,CACJ,CAED,IAAInQ,EAAM,IAAMsP,EAAW,MACrB,OAAO,KAAKU,CAAa,EAAE,IAAI,SAAUX,EAAK,CAC5C,OAAOG,EAAUH,CAAG,EAAI,KAClBE,EAAQF,CAAG,EAAE,CAAC,EACd,IAAMG,EAAUD,EAAQF,CAAG,EAAE,CAAC,CAAC,EAAI,GAErD,CAAS,EAAE,KAAK,GAAG,EACT,SAAWG,EAAUM,CAAI,EAAI,KAG/BM,EAAM,OAAO,KAAO,OAAO,WAAa,OAAO,QAAU,OAAO,MAEhEC,EAAO,IAAI,KAAK,CAACrQ,CAAG,EAAG,CAAE,KAAM,iBAAiB,CAAE,EACtD,GAAIL,GAAWA,EAAQ,KAAQ,OAAO0Q,EACtC,IAAIC,EAAYF,EAAI,gBAAgBC,CAAI,EACpCE,EAAS,IAAI,OAAOD,CAAS,EACjC,OAAAC,EAAO,UAAYD,EACZC,CACX,CAEA,EAAE,CAAA,CAAE,EAAE,YAAY,CAAC,SAAStR,EAAQX,EAAOY,EAAQ,CAGnD,SAASsR,EAAeC,EAAK9R,EAAG,CAAE,OAAO+R,EAAgBD,CAAG,GAAKE,EAAsBF,EAAK9R,CAAC,GAAKiS,EAA4BH,EAAK9R,CAAC,GAAKkS,EAAgB,CAAK,CAE9J,SAASA,GAAmB,CAAE,MAAM,IAAI,UAAU;AAAA,mFAA2I,CAAI,CAEjM,SAASD,EAA4BE,EAAGC,EAAQ,CAAE,GAAKD,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOE,EAAkBF,EAAGC,CAAM,EAAG,IAAItS,EAAI,OAAO,UAAU,SAAS,KAAKqS,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzDrS,IAAM,UAAYqS,EAAE,cAAarS,EAAIqS,EAAE,YAAY,MAAUrS,IAAM,OAASA,IAAM,MAAO,OAAO,MAAM,KAAKqS,CAAC,EAAG,GAAIrS,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAG,OAAOuS,EAAkBF,EAAGC,CAAM,EAAI,CAEha,SAASC,EAAkBP,EAAKjP,EAAK,EAAMA,GAAO,MAAQA,EAAMiP,EAAI,UAAQjP,EAAMiP,EAAI,QAAQ,QAAS9R,EAAI,EAAGsS,EAAO,IAAI,MAAMzP,CAAG,EAAG7C,EAAI6C,EAAK7C,IAAOsS,EAAKtS,CAAC,EAAI8R,EAAI9R,CAAC,EAAK,OAAOsS,CAAO,CAEvL,SAASN,EAAsBF,EAAK9R,EAAG,CAAE,IAAIuS,EAAKT,GAAO,KAAO,KAAO,OAAO,OAAW,KAAeA,EAAI,OAAO,QAAQ,GAAKA,EAAI,YAAY,EAAG,GAAIS,GAAM,KAAc,KAAIC,EAAO,CAAA,EAAQC,EAAK,GAAUC,EAAK,GAAWC,EAAIC,EAAI,GAAI,CAAE,IAAKL,EAAKA,EAAG,KAAKT,CAAG,EAAG,EAAEW,GAAME,EAAKJ,EAAG,QAAQ,QAAoBC,EAAK,KAAKG,EAAG,KAAK,EAAO,EAAA3S,GAAKwS,EAAK,SAAWxS,IAA3DyS,EAAK,GAA6B,CAAoC,OAAUxH,EAAK,CAAEyH,EAAK,GAAME,EAAK3H,SAAe,CAAE,GAAI,CAAM,CAACwH,GAAMF,EAAG,QAAa,MAAMA,EAAG,OAAW,SAAY,CAAE,GAAIG,EAAI,MAAME,CAAK,CAAA,CAAG,OAAOJ,EAAO,CAEjgB,SAAST,EAAgBD,EAAK,CAAE,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,CAAM,CAErE,IAAI3D,EAAS7N,EAAQ,eAAe,EAEhCuS,EAAavS,EAAQ,YAAY,EAEjCM,EAAUN,EAAQ,eAAe,EAEjCmI,EAAOnI,EAAQ,YAAY,EAE3BwS,EAAQxS,EAAQ,aAAa,EAE7BsR,EAAStR,EAAQ,cAAc,EAE/ByS,EAAezS,EAAQ,eAAe,EAEtC0S,EAAgB1S,EAAQ,aAAa,EAIrC2S,EAAc,CAAA,EACdC,EAAkB,GAEtB,GAAI,CACE,OAAO,UAAc,KAAe,UAAU,YAChDA,EAAkB,UAAU,UAAU,QAAQ,QAAQ,GAAK,EAE/D,MAAY,CAAE,CAEd,IAAIvI,EAAc,EAEd,OAAO,UAAc,MACvBA,EAAc,KAAK,IAAI,UAAU,qBAAuB,EAAG,CAAC,GAG9D,IAAIwI,EAAoB,CACtB,KAAM,KACN,YAAaxI,EACb,SAAU,CAAC,KAAM,OAAQ,IAAI,EAC7B,KAAM,IACN,aAAc,SAAsBjI,EAAOC,EAAQ,CACjD,IAAIyQ,EAAY,SAAS,cAAc,QAAQ,EAC/C,OAAAA,EAAU,MAAQ1Q,EAClB0Q,EAAU,OAASzQ,EACZyQ,CACR,CACH,EACIC,EAAsB,CACxB,QAAS,EACT,MAAO,GACP,cAAe,EACf,cAAe,EACf,iBAAkB,CACpB,EACIC,EAAqB,GACrBC,EAA0B,GAC1BC,EAAgC,GAChCC,EAA2B,GAC3BC,EAA+B,GAEnC,SAASC,GAAe,CACtB,MAAO,CACL,MAAOd,EAAWjB,CAAM,EACxB,QAAS,UAAmB,CAG1B,GAFA,KAAK,MAAM,YAEP,OAAO,OAAW,IAAa,CACjC,IAAIgC,EAAM,OAAO,KAAO,OAAO,WAAa,OAAO,QAAU,OAAO,MAEhEA,GAAOA,EAAI,iBAAmB,KAAK,MAAM,WAC3CA,EAAI,gBAAgB,KAAK,MAAM,SAAS,CAE3C,CACF,CACL,CACC,CAID,SAASC,EAAK7S,EAAS,CACrB,GAAI,EAAE,gBAAgB6S,GAAO,OAAO,IAAIA,EAAK7S,CAAO,EACpD,KAAK,QAAUmN,EAAO,CAAA,EAAIgF,EAAmBnS,GAAW,CAAA,CAAE,EAC1D,IAAI8S,EAAc,MAAM,OAAO,KAAK,QAAQ,WAAW,EAGvD,KAAK,QAAUb,EAAYa,CAAW,GAAKhB,EAAM,QAAQ,KAAK,QAAQ,WAAW,EAC5EG,EAAYa,CAAW,IAAGb,EAAYa,CAAW,EAAI,KAAK,SAE/D,KAAK,SAAW,CACd,GAAI,GAEJ,KAAM,GAEN,IAAK,GAEL,GAAI,EAER,EACE,KAAK,cAAgB,KAErB,KAAK,qBAAuB,GAC5B,KAAK,UAAY,IAClB,CAEDD,EAAK,UAAU,KAAO,UAAY,CAChC,IAAIjL,EAAQ,KAEZ,GAAI,KAAK,cAAe,OAAO,KAAK,cAEpC,GAAI,OAAO,UAAc,KAAe,OAAO,kBAAsB,IACnE,GAAI,CAEF,IAAI,UAAU,IAAI,kBAAkB,GAAG,EAAG,GAAI,EAAE,EAChD0K,EAAqB,EAC3B,MAAiB,CAAE,CAUb,OAAO,YAAgB,MACrB,YAAY,WAAa,YAAY,UAAU,MACjDC,EAA0B,GAE1B,KAAK,MAAM,iDAAiD,GAIhE,IAAIxS,EAAW,KAAK,QAAQ,SAAS,MAAK,EAS1C,GAPIA,EAAS,QAAQ,KAAK,GAAK,IAC7BA,EAAW,CAAC,MAAO,OAAQ,KAAM,IAAI,GAGvC,KAAK,qBAAuBA,EAC5B,KAAK,UAAY,IAAIH,EAAQG,CAAQ,EAEjCA,EAAS,QAAQ,IAAI,GAAK,GACxB,OAAO,OAAW,KAAe,WAAY,OAG/C,GAAI,CACF,IAAIgT,EAAMzT,EAAQ,YAAY,EAAE,UAAY,CAAE,CAAA,EAE9CyT,EAAI,UAAS,EACb,KAAK,SAAS,GAAK,GAEnB,IAAIC,EAAY,MAAM,OAAO,KAAK,UAAU,KAAK,OAAO,CAAC,EAErDf,EAAYe,CAAS,EACvB,KAAK,cAAgBf,EAAYe,CAAS,GAE1C,KAAK,cAAgB,IAAIvL,EAAKkL,EAAc,KAAK,QAAQ,IAAI,EAC7DV,EAAYe,CAAS,EAAI,KAAK,cAExC,MAAmB,CAAE,CAInB,IAAIC,EAAW,KAAK,UAAU,KAAI,EAAG,KAAK,SAAUC,EAAS,CAE3D/F,EAAOvF,EAAM,SAAUsL,EAAQ,QAAQ,CAC3C,CAAG,EAEGC,EAECZ,EAGHY,EAAiBrB,EAAM,YAAY,KAAK,QAAQ,YAAY,EAAE,KAAK,SAAU1H,EAAQ,CACnF,GAAIxC,EAAM,SAAS,KAAO7H,EAAS,QAAQ,KAAK,EAAI,EAAG,CACrD6H,EAAM,MAAM,8DAA8D,EAE1E,MACD,CAEG7H,EAAS,QAAQ,KAAK,GAAK,IAAG6H,EAAM,SAAS,IAAMwC,EAC7D,CAAK,EAVD+I,EAAiB,QAAQ,QAAQ,EAAK,EAaxCX,EAAgCV,EAAM,eAAe,KAAK,QAAQ,YAAY,EAC9E,IAAIsB,EAEAb,GAA2BD,GAAsBvS,EAAS,QAAQ,IAAI,IAAM,GAC9EqT,EAAuBtB,EAAM,kCAE7BsB,EAAuB,QAAQ,QAAQ,EAAK,EAG9CA,EAAuBA,EAAqB,KAAK,SAAUlT,EAAQ,CACjEuS,EAA2BvS,CAC/B,CAAG,EAID,IAAImT,EAAiBvB,EAAM,mBAAoB,EAAC,KAAK,SAAU5R,EAAQ,CACrEwS,EAA+BxS,CACnC,CAAG,EAED,YAAK,cAAgB,QAAQ,IAAI,CAAC+S,EAAUE,EAAgBC,EAAsBC,CAAc,CAAC,EAAE,KAAK,UAAY,CAClH,OAAOzL,CACX,CAAG,EACM,KAAK,aACd,EAGAiL,EAAK,UAAU,eAAiB,SAAU7H,EAAUwC,EAAM,CACxD,IAAI1F,EAAS,KAOb,OAAA0F,EAAK,YAAcA,EAAK,aAAe,CAAA,EAChC,QAAQ,UAAU,KAAK,UAAY,CACxC,OAAK1F,EAAO,SAAS,GAOd,IAAI,QAAQ,SAAUiC,EAASC,EAAQ,CAC5C,IAAIU,EAAI5C,EAAO,cAAc,QAAO,EAEhC0F,EAAK,aAAaA,EAAK,YAAY,MAAS,SAAUvD,EAAK,CAC7D,OAAOD,EAAOC,CAAG,CACzB,CAAO,EAEDS,EAAE,MAAM,UAAY,SAAUC,EAAI,CAChCD,EAAE,QAAO,EACLC,EAAG,KAAK,IAAKX,EAAOW,EAAG,KAAK,GAAG,EAAOZ,EAAQY,EAAG,IAAI,CACjE,EAEM,IAAI2I,EAAW,CAAA,EACXtI,EAAS,KAAKsI,EAAS,KAAKtI,EAAS,IAAI,MAAM,EAC/CA,EAAS,WAAWsI,EAAS,KAAKtI,EAAS,SAAS,EACxDN,EAAE,MAAM,YAAY,CAClB,KAAMM,EACN,SAAUlD,EAAO,qBACjB,QAAS,CACP,YAAaA,EAAO,UAAU,EAC/B,CACF,EAAEwL,CAAQ,CACjB,CAAK,EA3BQ,CACL,KAAMxL,EAAO,UAAU,iBAAiBkD,EAAUwC,EAAK,WAAW,CAC1E,CA0BA,CAAG,CACH,EAGAqF,EAAK,UAAU,kBAAoB,SAAUvJ,EAAMgG,EAAM9B,EAAM+F,EAAUC,EAAW,CAClF,GAAI,KAAK,SAAS,IAAMf,IAGxBX,EAAM,SAASxC,CAAI,GAAKoD,GACtB,YAAK,MAAM,iCAAiC,EACrC,kBAAkBa,EAAS,gBAAkBjE,EAAMhG,EAAK,EAAGA,EAAK,EAAGA,EAAK,MAAOA,EAAK,MAAM,EAAE,KAAK,SAAUa,EAAQ,CACxH,OAAAqJ,EAAU,UAAYrJ,EACfqJ,CACb,CAAK,EAIH,GAAI1B,EAAM,SAASxC,CAAI,EACrB,OAAKiE,EAAS,SAAQA,EAAS,OAASjE,EAAK,WAAW,KAAM,CAC5D,MAAO,EAAQ9B,EAAK,KAC1B,CAAK,GAED,KAAK,MAAM,qBAAqB,EAChCgG,EAAU,IAAMD,EAAS,OAAO,aAAajK,EAAK,EAAGA,EAAK,EAAGA,EAAK,MAAOA,EAAK,MAAM,EAAE,KAC/EkK,EAQT,KAAK,MAAM,iDAAiD,EAC5D,IAAIpB,EAAY,KAAK,QAAQ,aAAa9I,EAAK,MAAOA,EAAK,MAAM,EAC7DmK,EAASrB,EAAU,WAAW,KAAM,CACtC,MAAO,EAAQ5E,EAAK,KACxB,CAAG,EACD,OAAAiG,EAAO,yBAA2B,OAClCA,EAAO,UAAUF,EAAS,gBAAkBjE,EAAMhG,EAAK,EAAGA,EAAK,EAAGA,EAAK,MAAOA,EAAK,OAAQ,EAAG,EAAGA,EAAK,MAAOA,EAAK,MAAM,EACxH,KAAK,MAAM,qBAAqB,EAChCkK,EAAU,IAAMC,EAAO,aAAa,EAAG,EAAGnK,EAAK,MAAOA,EAAK,MAAM,EAAE,KAGnE8I,EAAU,MAAQA,EAAU,OAAS,EAC9BoB,CACT,EAEAX,EAAK,UAAU,eAAiB,SAAUvJ,EAAMpJ,EAAQqT,EAAU,CAChE,IAAIG,EAGJ,GAFA,KAAK,MAAM,2CAA2C,EAElDxT,EAAO,OACT,OAAAqT,EAAS,MAAM,UAAUrT,EAAO,OAAQoJ,EAAK,IAAKA,EAAK,GAAG,EACnD,KAGT,GAAIgJ,EAGFoB,EAAc,IAAI,UAAU,IAAI,kBAAkBxT,EAAO,IAAI,EAAGoJ,EAAK,QAASA,EAAK,QAAQ,UAI3FoK,EAAcH,EAAS,MAAM,gBAAgBjK,EAAK,QAASA,EAAK,QAAQ,EAEpEoK,EAAY,KAAK,IACnBA,EAAY,KAAK,IAAIxT,EAAO,IAAI,MAGhC,SAASlB,EAAI0U,EAAY,KAAK,OAAS,EAAG1U,GAAK,EAAGA,IAChD0U,EAAY,KAAK1U,CAAC,EAAIkB,EAAO,KAAKlB,CAAC,EAKzC,YAAK,MAAM,WAAW,EAElBkT,EAEFqB,EAAS,MAAM,aAAaG,EAAapK,EAAK,IAAKA,EAAK,IAAKA,EAAK,SAAWA,EAAK,IAAKA,EAAK,SAAWA,EAAK,IAAKA,EAAK,aAAe,KAAMA,EAAK,cAAgB,IAAI,EAEpKiK,EAAS,MAAM,aAAaG,EAAapK,EAAK,IAAKA,EAAK,IAAKA,EAAK,SAAWA,EAAK,IAAKA,EAAK,SAAWA,EAAK,IAAKA,EAAK,aAAcA,EAAK,aAAa,EAGjJ,IACT,EAEAuJ,EAAK,UAAU,gBAAkB,SAAUvD,EAAMC,EAAI/B,EAAM,CACzD,IAAIzF,EAAS,KAETwL,EAAW,CACb,OAAQ,KACR,eAAgB,KAChB,oBAAqB,GACrB,MAAO,IACX,EAEMI,EAAc,SAAqBrK,EAAM,CAC3C,OAAOvB,EAAO,QAAQ,UAAY,CAChC,GAAIyF,EAAK,SAAU,OAAOA,EAAK,YAC/B,IAAIxC,EAAW,CACb,MAAO1B,EAAK,MACZ,OAAQA,EAAK,OACb,QAASA,EAAK,QACd,SAAUA,EAAK,SACf,OAAQA,EAAK,OACb,OAAQA,EAAK,OACb,QAASA,EAAK,QACd,QAASA,EAAK,QACd,QAASkE,EAAK,QACd,MAAOA,EAAK,MACZ,cAAeA,EAAK,cACpB,cAAeA,EAAK,cACpB,iBAAkBA,EAAK,gBAC/B,EAEM,OAAAzF,EAAO,MAAM,oBAAoB,EAE1B,QAAQ,QAAQiD,CAAQ,EAAE,KAAK,SAAUA,EAAU,CACxD,OAAOjD,EAAO,kBAAkBuB,EAAMgG,EAAM9B,EAAM+F,EAAUvI,CAAQ,CAC5E,CAAO,EAAE,KAAK,SAAUA,EAAU,CAC1B,OAAAjD,EAAO,MAAM,oBAAoB,EAE1BA,EAAO,eAAeiD,EAAUwC,CAAI,CACnD,CAAO,EAAE,KAAK,SAAUtN,EAAQ,CACxB,OAAIsN,EAAK,SAAiBA,EAAK,aAC/B+F,EAAS,aAAe,KACjBxL,EAAO,eAAeuB,EAAMpJ,EAAQqT,CAAQ,EAC3D,CAAO,CACP,CAAK,CACL,EAIE,OAAO,QAAQ,UAAU,KAAK,UAAY,CAIxC,GAHAA,EAAS,MAAQhE,EAAG,WAAW,KAAM,CACnC,MAAO,EAAQ/B,EAAK,KAC1B,CAAK,EACGsE,EAAM,SAASxC,CAAI,EAAG,OAAO,KAEjC,GAAIwC,EAAM,cAAcxC,CAAI,EAC1B,OAAAiE,EAAS,eAAiBjE,EAC1BiE,EAAS,oBAAsB,GACxB,KAGT,GAAIzB,EAAM,QAAQxC,CAAI,EAGpB,OAAKiD,GAELxK,EAAO,MAAM,oCAAoC,EAE1C,kBAAkBuH,CAAI,EAAE,KAAK,SAAUsE,EAAa,CACzDL,EAAS,eAAiBK,CAClC,CAAO,EAIA,MAAS,SAAU/U,EAAG,CACrB,OAAO,IACf,CAAO,GAZoC,KAevC,MAAM,IAAI,MAAM,sDAAsD,CAC1E,CAAG,EAAE,KAAK,UAAY,CAClB,GAAI2O,EAAK,SAAU,OAAOA,EAAK,YAE/BzF,EAAO,MAAM,iBAAiB,EAM9B,IAAI8L,EAAU7B,EAAc,CAC1B,MAAOxE,EAAK,MACZ,OAAQA,EAAK,OACb,YAAazF,EAAO,QAAQ,KAC5B,QAASyF,EAAK,QACd,SAAUA,EAAK,SACf,eAAgBA,EAAK,gBAC3B,CAAK,EACGsG,EAAOD,EAAQ,IAAI,SAAUvK,EAAM,CACrC,OAAOqK,EAAYrK,CAAI,CAC7B,CAAK,EAED,SAASyK,EAAQR,EAAU,CACrBA,EAAS,iBACNA,EAAS,qBAAqBA,EAAS,eAAe,MAAK,EAChEA,EAAS,eAAiB,KAE7B,CAED,OAAAxL,EAAO,MAAM,eAAe,EAErB,QAAQ,IAAI+L,CAAI,EAAE,KAAK,UAAY,CACxC,OAAA/L,EAAO,MAAM,WAAW,EAExBgM,EAAQR,CAAQ,EACThE,CACR,EAAE,SAAUtF,EAAK,CAChB,MAAA8J,EAAQR,CAAQ,EACVtJ,CACZ,CAAK,CACL,CAAG,CACH,EAEA4I,EAAK,UAAU,gBAAkB,SAAUmB,EAAQ1E,EAAMC,EAAI/B,EAAM,CACjE,IAAIyG,EAAS,KAEb,GAAIzG,EAAK,SAAU,OAAOA,EAAK,YAE/B,IAAI0G,EAAgBF,EAAO,MAAO,EAC9BG,EAAiBtD,EAAeqD,EAAe,CAAC,EAChD9L,EAAU+L,EAAe,CAAC,EAC1B9L,EAAW8L,EAAe,CAAC,EAE3BC,EAAcJ,EAAO,SAAW,EACpCxG,EAAOL,EAAO,CAAE,EAAEK,EAAM,CACtB,QAASpF,EACT,SAAUC,EAIV,QAAS+L,EAAc5G,EAAK,QAAU,KAAK,IAAI,EAAGA,EAAK,OAAO,CAClE,CAAG,EACD,IAAI4E,EAEJ,OAAKgC,IAEHhC,EAAY,KAAK,QAAQ,aAAahK,EAASC,CAAQ,GAGlD,KAAK,gBAAgBiH,EAAM8E,EAAc7E,EAAK6C,EAAW5E,CAAI,EAAE,KAAK,UAAY,CACrF,OAAI4G,EAAoB7E,GACxB/B,EAAK,MAAQpF,EACboF,EAAK,OAASnF,EACP4L,EAAO,gBAAgBD,EAAQ5B,EAAW7C,EAAI/B,CAAI,EAC7D,CAAG,EAAE,KAAK,SAAU6G,EAAK,CACrB,OAAIjC,IAGFA,EAAU,MAAQA,EAAU,OAAS,GAGhCiC,CACX,CAAG,CACH,EAEAxB,EAAK,UAAU,6BAA+B,SAAUvD,EAAMC,EAAI/B,EAAM,CACtE,IAAI8G,EAAS,KAETC,EAAQhF,EAAG,WAAW,KAAM,CAC9B,MAAO,EAAQ/B,EAAK,KACxB,CAAG,EACD,YAAK,MAAM,gCAAgC,EACpC,kBAAkB8B,EAAM,CAC7B,YAAa9B,EAAK,QAClB,aAAcA,EAAK,SACnB,cAAesE,EAAM,iBAAiBtE,EAAK,OAAO,CACtD,CAAG,EAAE,KAAK,SAAUoG,EAAa,CAC7B,GAAIpG,EAAK,SAAU,OAAOA,EAAK,YAE/B,GAAI,CAACA,EAAK,cACR,OAAA+G,EAAM,UAAUX,EAAa,EAAG,CAAC,EACjCA,EAAY,MAAK,EACjBW,EAAQ,KAERD,EAAO,MAAM,WAAW,EAEjB/E,EAGT+E,EAAO,MAAM,gBAAgB,EAE7B,IAAIlC,EAAYkC,EAAO,QAAQ,aAAa9G,EAAK,QAASA,EAAK,QAAQ,EAEnEiG,EAASrB,EAAU,WAAW,KAAM,CACtC,MAAO,EAAQ5E,EAAK,KAC1B,CAAK,EACDiG,EAAO,UAAUG,EAAa,EAAG,CAAC,EAClCA,EAAY,MAAK,EACjB,IAAIY,EAAQf,EAAO,aAAa,EAAG,EAAGjG,EAAK,QAASA,EAAK,QAAQ,EAEjE,OAAA8G,EAAO,UAAU,aAAaE,EAAM,KAAMhH,EAAK,QAASA,EAAK,SAAUA,EAAK,cAAeA,EAAK,cAAeA,EAAK,gBAAgB,EAEpI+G,EAAM,aAAaC,EAAO,EAAG,CAAC,EAG9BpC,EAAU,MAAQA,EAAU,OAAS,EACrCoC,EAAQf,EAASrB,EAAYmC,EAAQ,KAErCD,EAAO,MAAM,WAAW,EAEjB/E,CACX,CAAG,CACH,EAEAsD,EAAK,UAAU,OAAS,SAAUvD,EAAMC,EAAIvP,EAAS,CACnD,IAAIyU,EAAS,KAEb,KAAK,MAAM,iBAAiB,EAC5B,IAAIjH,EAAOL,EAAO,CAAE,EAAEkF,CAAmB,EAezC,GAbK,MAAMrS,CAAO,EAIPA,IACTwN,EAAOL,EAAOK,EAAMxN,CAAO,GAJ3BwN,EAAOL,EAAOK,EAAM,CAClB,QAASxN,CACf,CAAK,EAKHwN,EAAK,QAAU+B,EAAG,MAClB/B,EAAK,SAAW+B,EAAG,OACnB/B,EAAK,MAAQ8B,EAAK,cAAgBA,EAAK,MACvC9B,EAAK,OAAS8B,EAAK,eAAiBA,EAAK,OAErCC,EAAG,QAAU,GAAKA,EAAG,SAAW,EAClC,OAAO,QAAQ,OAAO,IAAI,MAAM,wBAAwB,OAAOA,EAAG,MAAO,GAAG,EAAE,OAAOA,EAAG,MAAM,CAAC,CAAC,EAG9F/B,EAAK,cAAgB,IAAGA,EAAK,cAAgB,GACjDA,EAAK,SAAW,GAEZA,EAAK,cAEPA,EAAK,YAAcA,EAAK,YAAY,KAAK,SAAU3I,EAAM,CACvD,MAAA2I,EAAK,SAAW,GACV3I,CACP,EAAE,SAAUoF,EAAK,CAChB,MAAAuD,EAAK,SAAW,GACVvD,CACZ,CAAK,GAGH,IAAIyK,EAAmB,EAEvB,OAAAlH,EAAK,iBAAmB,KAAK,KAAK,KAAK,IAAIkH,EAAkB,IAAMlH,EAAK,cAAgB,CAAC,CAAC,EACnF,KAAK,OAAO,KAAK,UAAY,CAClC,GAAIA,EAAK,SAAU,OAAOA,EAAK,YAE/B,GAAIiH,EAAO,SAAS,IAClB,OAAOA,EAAO,6BAA6BnF,EAAMC,EAAI/B,CAAI,EAG3D,GAAI,CAACgF,EAA+B,CAClC,IAAIvI,EAAM,IAAI,MAAM,4FAAiG,EACrH,MAAAA,EAAI,KAAO,qBACLA,CACP,CAKD,IAAI+J,EAASjC,EAAavE,EAAK,MAAOA,EAAK,OAAQA,EAAK,QAASA,EAAK,SAAUiH,EAAO,QAAQ,KAAMjH,EAAK,gBAAgB,EAC1H,OAAOiH,EAAO,gBAAgBT,EAAQ1E,EAAMC,EAAI/B,CAAI,CACxD,CAAG,CACH,EAIAqF,EAAK,UAAU,aAAe,SAAU7S,EAAS,CAC/C,IAAI2U,EAAS,KAETnH,EAAOL,EAAO,CAAE,EAAEkF,EAAqBrS,CAAO,EAClD,OAAO,KAAK,OAAO,KAAK,UAAY,CAClC,OAAO2U,EAAO,UAAU,iBAAiBnH,CAAI,CACjD,CAAG,CACH,EAEAqF,EAAK,UAAU,OAAS,SAAUtI,EAAQqK,EAAUzS,EAAS,CAC3D,OAAAyS,EAAWA,GAAY,YAChB,IAAI,QAAQ,SAAU7K,EAAS,CACpC,GAAIQ,EAAO,OAAQ,CACjBA,EAAO,OAAO,SAAUmG,EAAM,CAC5B,OAAO3G,EAAQ2G,CAAI,CAC3B,EAASkE,EAAUzS,CAAO,EACpB,MACD,CAED,GAAIoI,EAAO,cAAe,CACxBR,EAAQQ,EAAO,cAAc,CAC3B,KAAMqK,EACN,QAASzS,CACV,CAAA,CAAC,EACF,MACD,CAOD,QAJI0S,EAAW,KAAKtK,EAAO,UAAUqK,EAAUzS,CAAO,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,EACjEN,EAAMgT,EAAS,OACfC,EAAW,IAAI,WAAWjT,CAAG,EAExB7C,EAAI,EAAGA,EAAI6C,EAAK7C,IACvB8V,EAAS9V,CAAC,EAAI6V,EAAS,WAAW7V,CAAC,EAGrC+K,EAAQ,IAAI,KAAK,CAAC+K,CAAQ,EAAG,CAC3B,KAAMF,CACP,CAAA,CAAC,CACN,CAAG,CACH,EAEA/B,EAAK,UAAU,MAAQ,UAAY,GAEnClU,EAAO,QAAUkU,CAEjB,EAAE,CAAC,gBAAgB,EAAE,aAAa,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAa,EAAE,CAAC,CAAC,EAAE,CAAE,EAAC,EAAE,EAAE,WAAW,CACpK,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js b/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js deleted file mode 100644 index 3075241..0000000 --- a/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js +++ /dev/null @@ -1,36 +0,0 @@ -import{ap as it,c as U,s as gt,g as dt,v as mt,x as _t,a as vt,b as bt,m as kt,j as xt,l as B,z as St,h as nt,i as wt,aq as At}from"./index-jpNTxDe4.js";import{i as Et}from"./init-Hi12RPRh.js";import{a as Dt}from"./array-Nw74a44z.js";import{c as z}from"./path-aUcfwwLI.js";import{a as lt}from"./arc-uMvMTTPz.js";import"./index-2K3MavtT.js";class ct extends Map{constructor(s,l=It){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:l}}),s!=null)for(const[o,p]of s)this.set(o,p)}get(s){return super.get(ot(this,s))}has(s){return super.has(ot(this,s))}set(s,l){return super.set($t(this,s),l)}delete(s){return super.delete(Tt(this,s))}}function ot({_intern:t,_key:s},l){const o=s(l);return t.has(o)?t.get(o):l}function $t({_intern:t,_key:s},l){const o=s(l);return t.has(o)?t.get(o):(t.set(o,l),l)}function Tt({_intern:t,_key:s},l){const o=s(l);return t.has(o)&&(l=t.get(o),t.delete(o)),l}function It(t){return t!==null&&typeof t=="object"?t.valueOf():t}const ht=Symbol("implicit");function ut(){var t=new ct,s=[],l=[],o=ht;function p(g){let h=t.get(g);if(h===void 0){if(o!==ht)return o;t.set(g,h=s.push(g)-1)}return l[h%l.length]}return p.domain=function(g){if(!arguments.length)return s.slice();s=[],t=new ct;for(const h of g)t.has(h)||t.set(h,s.push(h)-1);return p},p.range=function(g){return arguments.length?(l=Array.from(g),p):l.slice()},p.unknown=function(g){return arguments.length?(o=g,p):o},p.copy=function(){return ut(s,l).unknown(o)},Et.apply(p,arguments),p}function Vt(t,s){return st?1:s>=t?0:NaN}function Pt(t){return t}function Ot(){var t=Pt,s=Vt,l=null,o=z(0),p=z(it),g=z(0);function h(c){var d,y=(c=Dt(c)).length,w,L,N=0,x=new Array(y),A=new Array(y),T=+o.apply(this,arguments),D=Math.min(it,Math.max(-it,p.apply(this,arguments)-T)),W,C=Math.min(Math.abs(D)/y,g.apply(this,arguments)),I=C*(D<0?-1:1),v;for(d=0;d0&&(N+=v);for(s!=null?x.sort(function(E,b){return s(A[E],A[b])}):l!=null&&x.sort(function(E,b){return l(c[E],c[b])}),d=0,L=N?(D-y*I)/N:0;d0?v*L:0)+I,A[w]={data:c[w],index:d,value:v,startAngle:T,endAngle:W,padAngle:C};return A}return h.value=function(c){return arguments.length?(t=typeof c=="function"?c:z(+c),h):t},h.sortValues=function(c){return arguments.length?(s=c,l=null,h):s},h.sort=function(c){return arguments.length?(l=c,s=null,h):l},h.startAngle=function(c){return arguments.length?(o=typeof c=="function"?c:z(+c),h):o},h.endAngle=function(c){return arguments.length?(p=typeof c=="function"?c:z(+c),h):p},h.padAngle=function(c){return arguments.length?(g=typeof c=="function"?c:z(+c),h):g},h}var rt=function(){var t=function(b,e,i,a){for(i=i||{},a=b.length;a--;i[b[a]]=e);return i},s=[1,4],l=[1,5],o=[1,6],p=[1,7],g=[1,9],h=[1,11,13,15,17,19,20,26,27,28,29],c=[2,5],d=[1,6,11,13,15,17,19,20,26,27,28,29],y=[26,27,28],w=[2,8],L=[1,18],N=[1,19],x=[1,20],A=[1,21],T=[1,22],D=[1,23],W=[1,28],C=[6,26,27,28,29],I={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(e,i,a,n,u,r,f){var m=r.length-1;switch(u){case 4:n.setShowData(!0);break;case 7:this.$=r[m-1];break;case 9:n.addSection(r[m-1],n.cleanupValue(r[m]));break;case 10:this.$=r[m].trim(),n.setDiagramTitle(this.$);break;case 11:this.$=r[m].trim(),n.setAccTitle(this.$);break;case 12:case 13:this.$=r[m].trim(),n.setAccDescription(this.$);break;case 14:n.addSection(r[m].substr(8)),this.$=r[m].substr(8);break;case 21:n.parseDirective("%%{","open_directive");break;case 22:n.parseDirective(r[m],"type_directive");break;case 23:r[m]=r[m].trim().replace(/'/g,'"'),n.parseDirective(r[m],"arg_directive");break;case 24:n.parseDirective("}%%","close_directive","pie");break}},table:[{3:1,4:2,5:3,6:s,21:8,26:l,27:o,28:p,29:g},{1:[3]},{3:10,4:2,5:3,6:s,21:8,26:l,27:o,28:p,29:g},{3:11,4:2,5:3,6:s,21:8,26:l,27:o,28:p,29:g},t(h,c,{7:12,8:[1,13]}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(y,w,{21:8,9:16,10:17,5:24,1:[2,3],11:L,13:N,15:x,17:A,19:T,20:D,29:g}),t(h,c,{7:25}),{23:26,24:[1,27],32:W},t([24,32],[2,22]),t(h,[2,6]),{4:29,26:l,27:o,28:p},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(y,[2,13]),t(y,[2,14]),t(y,[2,15]),t(y,w,{21:8,9:16,10:17,5:24,1:[2,4],11:L,13:N,15:x,17:A,19:T,20:D,29:g}),t(C,[2,16]),{25:34,31:[1,35]},t(C,[2,24]),t(h,[2,7]),t(y,[2,9]),t(y,[2,10]),t(y,[2,11]),t(y,[2,12]),{23:36,32:W},{32:[2,23]},t(C,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(e,i){if(i.recoverable)this.trace(e);else{var a=new Error(e);throw a.hash=i,a}},parse:function(e){var i=this,a=[0],n=[],u=[null],r=[],f=this.table,m="",F=0,q=0,Q=2,G=1,ft=r.slice.call(arguments,1),_=Object.create(this.lexer),M={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(M.yy[X]=this.yy[X]);_.setInput(e,M.yy),M.yy.lexer=_,M.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Z=_.yylloc;r.push(Z);var pt=_.options&&_.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function yt(){var P;return P=n.pop()||_.lex()||G,typeof P!="number"&&(P instanceof Array&&(n=P,P=n.pop()),P=i.symbols_[P]||P),P}for(var k,j,S,tt,R={},H,V,at,J;;){if(j=a[a.length-1],this.defaultActions[j]?S=this.defaultActions[j]:((k===null||typeof k>"u")&&(k=yt()),S=f[j]&&f[j][k]),typeof S>"u"||!S.length||!S[0]){var et="";J=[];for(H in f[j])this.terminals_[H]&&H>Q&&J.push("'"+this.terminals_[H]+"'");_.showPosition?et="Parse error on line "+(F+1)+`: -`+_.showPosition()+` -Expecting `+J.join(", ")+", got '"+(this.terminals_[k]||k)+"'":et="Parse error on line "+(F+1)+": Unexpected "+(k==G?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(et,{text:_.match,token:this.terminals_[k]||k,line:_.yylineno,loc:Z,expected:J})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+j+", token: "+k);switch(S[0]){case 1:a.push(k),u.push(_.yytext),r.push(_.yylloc),a.push(S[1]),k=null,q=_.yyleng,m=_.yytext,F=_.yylineno,Z=_.yylloc;break;case 2:if(V=this.productions_[S[1]][1],R.$=u[u.length-V],R._$={first_line:r[r.length-(V||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(V||1)].first_column,last_column:r[r.length-1].last_column},pt&&(R._$.range=[r[r.length-(V||1)].range[0],r[r.length-1].range[1]]),tt=this.performAction.apply(R,[m,q,F,M.yy,S[1],u,r].concat(ft)),typeof tt<"u")return tt;V&&(a=a.slice(0,-1*V*2),u=u.slice(0,-1*V),r=r.slice(0,-1*V)),a.push(this.productions_[S[1]][0]),u.push(R.$),r.push(R._$),at=f[a[a.length-2]][a[a.length-1]],a.push(at);break;case 3:return!0}}return!0}},v=function(){var b={EOF:1,parseError:function(i,a){if(this.yy.parser)this.yy.parser.parseError(i,a);else throw new Error(i)},setInput:function(e,i){return this.yy=i||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},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var i=e.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var i=e.length,a=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;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),a.length-1&&(this.yylineno-=a.length-1);var u=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:a?(a.length===n.length?this.yylloc.first_column:0)+n[n.length-a.length].length-a[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var e=this.pastInput(),i=new Array(e.length+1).join("-");return e+this.upcomingInput()+` -`+i+"^"},test_match:function(e,i){var a,n,u;if(this.options.backtrack_lexer&&(u={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&&(u.yylloc.range=this.yylloc.range.slice(0))),n=e[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+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],a=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var r in u)this[r]=u[r];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,i,a,n;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),r=0;ri[0].length)){if(i=a,n=r,this.options.backtrack_lexer){if(e=this.test_match(a,u[r]),e!==!1)return e;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(e=this.test_match(i,u[n]),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})},lex:function(){var i=this.next();return i||this.lex()},begin:function(i){this.conditionStack.push(i)},popState:function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},pushState:function(i){this.begin(i)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(i,a,n,u){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:break;case 6:break;case 7:return 26;case 8:break;case 9:break;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 20:this.popState();break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/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,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};return b}();I.lexer=v;function E(){this.yy={}}return E.prototype=I,I.Parser=E,new E}();rt.parser=rt;const Lt=rt;let K={},st=!1;const Nt=function(t,s,l){kt.parseDirective(this,t,s,l)},Wt=function(t,s){t=xt.sanitizeText(t,U()),K[t]===void 0&&(K[t]=s,B.debug("Added new section :",t))},Ct=()=>K,Ft=function(t){st=t},Mt=function(){return st},jt=function(t){return t.substring(0,1)===":"&&(t=t.substring(1).trim()),Number(t.trim())},zt=function(){K={},st=!1,St()},Rt={parseDirective:Nt,getConfig:()=>U().pie,addSection:Wt,getSections:Ct,cleanupValue:jt,clear:zt,setAccTitle:gt,getAccTitle:dt,setDiagramTitle:mt,getDiagramTitle:_t,setShowData:Ft,getShowData:Mt,getAccDescription:vt,setAccDescription:bt},Yt=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}; - } -`,Bt=Yt;let $=U(),O;const Y=450,Ut=(t,s,l,o)=>{var p;try{$=U(),B.debug(`Rendering info diagram -`+t);const v=U().securityLevel;let E;v==="sandbox"&&(E=nt("#i"+s));const b=v==="sandbox"?nt(E.nodes()[0].contentDocument.body):nt("body"),e=v==="sandbox"?E.nodes()[0].contentDocument:document;o.db.clear(),o.parser.parse(t),B.debug("Parsed info diagram");const i=e.getElementById(s);O=i.parentElement.offsetWidth,O===void 0&&(O=1200),$.useWidth!==void 0&&(O=$.useWidth),$.pie.useWidth!==void 0&&(O=$.pie.useWidth);const a=b.select("#"+s);wt(a,Y,O,$.pie.useMaxWidth),i.setAttribute("viewBox","0 0 "+O+" "+Y);var g=40,h=18,c=4,d=Math.min(O,Y)/2-g,y=a.append("g").attr("transform","translate("+O/2+","+Y/2+")"),w=o.db.getSections(),L=0;Object.keys(w).forEach(function(f){L+=w[f]});const n=$.themeVariables;var N=[n.pie1,n.pie2,n.pie3,n.pie4,n.pie5,n.pie6,n.pie7,n.pie8,n.pie9,n.pie10,n.pie11,n.pie12];const u=((p=$.pie)==null?void 0:p.textPosition)??.75;let[r]=At(n.pieOuterStrokeWidth);r??(r=2);var x=ut().range(N),A=Object.entries(w).map(function(f,m){return{order:m,name:f[0],value:f[1]}}),T=Ot().value(function(f){return f.value}).sort(function(f,m){return f.order-m.order}),D=T(A),W=lt().innerRadius(0).outerRadius(d),C=lt().innerRadius(d*u).outerRadius(d*u);y.append("circle").attr("cx",0).attr("cy",0).attr("r",d+r/2).attr("class","pieOuterCircle"),y.selectAll("mySlices").data(D).enter().append("path").attr("d",W).attr("fill",function(f){return x(f.data.name)}).attr("class","pieCircle"),y.selectAll("mySlices").data(D).enter().append("text").text(function(f){return(f.data.value/L*100).toFixed(0)+"%"}).attr("transform",function(f){return"translate("+C.centroid(f)+")"}).style("text-anchor","middle").attr("class","slice"),y.append("text").text(o.db.getDiagramTitle()).attr("x",0).attr("y",-(Y-50)/2).attr("class","pieTitleText");var I=y.selectAll(".legend").data(x.domain()).enter().append("g").attr("class","legend").attr("transform",function(f,m){const F=h+c,q=F*x.domain().length/2,Q=12*h,G=m*F-q;return"translate("+Q+","+G+")"});I.append("rect").attr("width",h).attr("height",h).style("fill",x).style("stroke",x),I.data(D).append("text").attr("x",h+c).attr("y",h-c).text(function(f){return o.db.getShowData()||$.showData||$.pie.showData?f.data.name+" ["+f.data.value+"]":f.data.name})}catch(v){B.error("Error while rendering info diagram"),B.error(v)}},qt={draw:Ut},Zt={parser:Lt,db:Rt,renderer:qt,styles:Bt};export{Zt as diagram}; -//# sourceMappingURL=pieDiagram-157505fe-K3QYu1_A.js.map diff --git a/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js.map b/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js.map deleted file mode 100644 index a0ada15..0000000 --- a/excalidraw/excalidraw-app/build/assets/pieDiagram-157505fe-K3QYu1_A.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pieDiagram-157505fe-K3QYu1_A.js","sources":["../../../node_modules/internmap/src/index.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-shape/src/descending.js","../../../node_modules/d3-shape/src/identity.js","../../../node_modules/d3-shape/src/pie.js","../../../node_modules/mermaid/dist/pieDiagram-157505fe.js"],"sourcesContent":["export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import { c as getConfig, s as setAccTitle, g as getAccTitle, r as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, m as mermaidAPI, e as common, l as log, v as clear$1, i as configureSvgSize, B as parseFontSize } from \"./mermaid-b0ad2de1.js\";\nimport { select, scaleOrdinal, pie, arc } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 9], $V5 = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V6 = [2, 5], $V7 = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V8 = [26, 27, 28], $V9 = [2, 8], $Va = [1, 18], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 28], $Vh = [6, 26, 27, 28, 29];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"directive\": 5, \"PIE\": 6, \"document\": 7, \"showData\": 8, \"line\": 9, \"statement\": 10, \"txt\": 11, \"value\": 12, \"title\": 13, \"title_value\": 14, \"acc_title\": 15, \"acc_title_value\": 16, \"acc_descr\": 17, \"acc_descr_value\": 18, \"acc_descr_multiline_value\": 19, \"section\": 20, \"openDirective\": 21, \"typeDirective\": 22, \"closeDirective\": 23, \":\": 24, \"argDirective\": 25, \"NEWLINE\": 26, \";\": 27, \"EOF\": 28, \"open_directive\": 29, \"type_directive\": 30, \"arg_directive\": 31, \"close_directive\": 32, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"PIE\", 8: \"showData\", 11: \"txt\", 12: \"value\", 13: \"title\", 14: \"title_value\", 15: \"acc_title\", 16: \"acc_title_value\", 17: \"acc_descr\", 18: \"acc_descr_value\", 19: \"acc_descr_multiline_value\", 20: \"section\", 24: \":\", 26: \"NEWLINE\", 27: \";\", 28: \"EOF\", 29: \"open_directive\", 30: \"type_directive\", 31: \"arg_directive\", 32: \"close_directive\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.setShowData(true);\n break;\n case 7:\n this.$ = $$[$0 - 1];\n break;\n case 9:\n yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));\n break;\n case 10:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 11:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 12:\n case 13:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 14:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 21:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 22:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 23:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 24:\n yy.parseDirective(\"}%%\", \"close_directive\", \"pie\");\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, o($V5, $V6, { 7: 12, 8: [1, 13] }), o($V7, [2, 18]), o($V7, [2, 19]), o($V7, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($V5, $V6, { 7: 25 }), { 23: 26, 24: [1, 27], 32: $Vg }, o([24, 32], [2, 22]), o($V5, [2, 6]), { 4: 29, 26: $V1, 27: $V2, 28: $V3 }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($Vh, [2, 16]), { 25: 34, 31: [1, 35] }, o($Vh, [2, 24]), o($V5, [2, 7]), o($V8, [2, 9]), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 23: 36, 32: $Vg }, { 32: [2, 23] }, o($Vh, [2, 17])],\n defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 29;\n case 1:\n this.begin(\"type_directive\");\n return 30;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 24;\n case 3:\n this.popState();\n this.popState();\n return 32;\n case 4:\n return 31;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 26;\n case 8:\n break;\n case 9:\n break;\n case 10:\n this.begin(\"title\");\n return 13;\n case 11:\n this.popState();\n return \"title_value\";\n case 12:\n this.begin(\"acc_title\");\n return 15;\n case 13:\n this.popState();\n return \"acc_title_value\";\n case 14:\n this.begin(\"acc_descr\");\n return 17;\n case 15:\n this.popState();\n return \"acc_descr_value\";\n case 16:\n this.begin(\"acc_descr_multiline\");\n break;\n case 17:\n this.popState();\n break;\n case 18:\n return \"acc_descr_multiline_value\";\n case 19:\n this.begin(\"string\");\n break;\n case 20:\n this.popState();\n break;\n case 21:\n return \"txt\";\n case 22:\n return 6;\n case 23:\n return 8;\n case 24:\n return \"value\";\n case 25:\n return 28;\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:[\\s]+)/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, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:pie\\b)/i, /^(?:showData\\b)/i, /^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [17, 18], \"inclusive\": false }, \"acc_descr\": { \"rules\": [15], \"inclusive\": false }, \"acc_title\": { \"rules\": [13], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"title\": { \"rules\": [11], \"inclusive\": false }, \"string\": { \"rules\": [20, 21], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet sections = {};\nlet showData = false;\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst addSection = function(id, value) {\n id = common.sanitizeText(id, getConfig());\n if (sections[id] === void 0) {\n sections[id] = value;\n log.debug(\"Added new section :\", id);\n }\n};\nconst getSections = () => sections;\nconst setShowData = function(toggle) {\n showData = toggle;\n};\nconst getShowData = function() {\n return showData;\n};\nconst cleanupValue = function(value) {\n if (value.substring(0, 1) === \":\") {\n value = value.substring(1).trim();\n return Number(value.trim());\n } else {\n return Number(value.trim());\n }\n};\nconst clear = function() {\n sections = {};\n showData = false;\n clear$1();\n};\nconst db = {\n parseDirective,\n getConfig: () => getConfig().pie,\n addSection,\n getSections,\n cleanupValue,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setShowData,\n getShowData,\n getAccDescription,\n setAccDescription\n};\nconst getStyles = (options) => `\n .pieCircle{\n stroke: ${options.pieStrokeColor};\n stroke-width : ${options.pieStrokeWidth};\n opacity : ${options.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${options.pieOuterStrokeColor};\n stroke-width: ${options.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${options.pieTitleTextSize};\n fill: ${options.pieTitleTextColor};\n font-family: ${options.fontFamily};\n }\n .slice {\n font-family: ${options.fontFamily};\n fill: ${options.pieSectionTextColor};\n font-size:${options.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${options.pieLegendTextColor};\n font-family: ${options.fontFamily};\n font-size: ${options.pieLegendTextSize};\n }\n`;\nconst styles = getStyles;\nlet conf = getConfig();\nlet width;\nconst height = 450;\nconst draw = (txt, id, _version, diagObj) => {\n var _a;\n try {\n conf = getConfig();\n log.debug(\"Rendering info diagram\\n\" + txt);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n diagObj.db.clear();\n diagObj.parser.parse(txt);\n log.debug(\"Parsed info diagram\");\n const elem = doc.getElementById(id);\n width = elem.parentElement.offsetWidth;\n if (width === void 0) {\n width = 1200;\n }\n if (conf.useWidth !== void 0) {\n width = conf.useWidth;\n }\n if (conf.pie.useWidth !== void 0) {\n width = conf.pie.useWidth;\n }\n const diagram2 = root.select(\"#\" + id);\n configureSvgSize(diagram2, height, width, conf.pie.useMaxWidth);\n elem.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n var margin = 40;\n var legendRectSize = 18;\n var legendSpacing = 4;\n var radius = Math.min(width, height) / 2 - margin;\n var svg = diagram2.append(\"g\").attr(\"transform\", \"translate(\" + width / 2 + \",\" + height / 2 + \")\");\n var data = diagObj.db.getSections();\n var sum = 0;\n Object.keys(data).forEach(function(key) {\n sum += data[key];\n });\n const themeVariables = conf.themeVariables;\n var myGeneratedColors = [\n themeVariables.pie1,\n themeVariables.pie2,\n themeVariables.pie3,\n themeVariables.pie4,\n themeVariables.pie5,\n themeVariables.pie6,\n themeVariables.pie7,\n themeVariables.pie8,\n themeVariables.pie9,\n themeVariables.pie10,\n themeVariables.pie11,\n themeVariables.pie12\n ];\n const textPosition = ((_a = conf.pie) == null ? void 0 : _a.textPosition) ?? 0.75;\n let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);\n outerStrokeWidth ?? (outerStrokeWidth = 2);\n var color = scaleOrdinal().range(myGeneratedColors);\n var pieData = Object.entries(data).map(function(el, idx) {\n return {\n order: idx,\n name: el[0],\n value: el[1]\n };\n });\n var pie$1 = pie().value(function(d) {\n return d.value;\n }).sort(function(a, b) {\n return a.order - b.order;\n });\n var dataReady = pie$1(pieData);\n var arcGenerator = arc().innerRadius(0).outerRadius(radius);\n var labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);\n svg.append(\"circle\").attr(\"cx\", 0).attr(\"cy\", 0).attr(\"r\", radius + outerStrokeWidth / 2).attr(\"class\", \"pieOuterCircle\");\n svg.selectAll(\"mySlices\").data(dataReady).enter().append(\"path\").attr(\"d\", arcGenerator).attr(\"fill\", function(d) {\n return color(d.data.name);\n }).attr(\"class\", \"pieCircle\");\n svg.selectAll(\"mySlices\").data(dataReady).enter().append(\"text\").text(function(d) {\n return (d.data.value / sum * 100).toFixed(0) + \"%\";\n }).attr(\"transform\", function(d) {\n return \"translate(\" + labelArcGenerator.centroid(d) + \")\";\n }).style(\"text-anchor\", \"middle\").attr(\"class\", \"slice\");\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", 0).attr(\"y\", -(height - 50) / 2).attr(\"class\", \"pieTitleText\");\n var legend = svg.selectAll(\".legend\").data(color.domain()).enter().append(\"g\").attr(\"class\", \"legend\").attr(\"transform\", function(d, i) {\n const height2 = legendRectSize + legendSpacing;\n const offset = height2 * color.domain().length / 2;\n const horizontal = 12 * legendRectSize;\n const vertical = i * height2 - offset;\n return \"translate(\" + horizontal + \",\" + vertical + \")\";\n });\n legend.append(\"rect\").attr(\"width\", legendRectSize).attr(\"height\", legendRectSize).style(\"fill\", color).style(\"stroke\", color);\n legend.data(dataReady).append(\"text\").attr(\"x\", legendRectSize + legendSpacing).attr(\"y\", legendRectSize - legendSpacing).text(function(d) {\n if (diagObj.db.getShowData() || conf.showData || conf.pie.showData) {\n return d.data.name + \" [\" + d.data.value + \"]\";\n } else {\n return d.data.name;\n }\n });\n } catch (e) {\n log.error(\"Error while rendering info diagram\");\n log.error(e);\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["InternMap","entries","key","keyof","value","intern_get","intern_set","intern_delete","_intern","_key","implicit","ordinal","index","domain","range","unknown","scale","d","i","_","initRange","descending","a","b","identity","pie","sortValues","sort","startAngle","constant","endAngle","tau","padAngle","data","n","array","j","k","sum","arcs","a0","da","a1","p","pa","parser","o","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","sections","showData","parseDirective","statement","context","type","mermaidAPI","addSection","id","common","getConfig","log","getSections","setShowData","toggle","getShowData","cleanupValue","clear","clear$1","db","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","getStyles","options","styles","conf","width","height","draw","txt","_version","diagObj","_a","securityLevel","sandboxElement","select","root","doc","elem","diagram2","configureSvgSize","margin","legendRectSize","legendSpacing","radius","svg","themeVariables","myGeneratedColors","textPosition","outerStrokeWidth","parseFontSize","color","scaleOrdinal","pieData","el","idx","pie$1","dataReady","arcGenerator","arc","labelArcGenerator","legend","height2","offset","horizontal","vertical","e","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js b/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js deleted file mode 100644 index f568593..0000000 --- a/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js +++ /dev/null @@ -1,8 +0,0 @@ -import{aD as Dt,c as _t,aE as I,l as ct,s as zt,g as Et,v as It,x as vt,a as Bt,b as Vt,m as wt,z as Rt,h as yt,i as Wt,d as Nt}from"./index-jpNTxDe4.js";import{l as St}from"./linear-WA_JRKe7.js";import"./index-2K3MavtT.js";import"./init-Hi12RPRh.js";var qt=function(){var e=function(K,n,r,d){for(r=r||{},d=K.length;d--;r[K[d]]=n);return r},a=[1,3],c=[1,5],f=[1,6],g=[1,7],x=[1,8],h=[1,10],p=[1,5,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],s=[1,5,7,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],l=[38,39,40],y=[2,8],B=[1,19],W=[1,23],L=[1,24],C=[1,25],N=[1,26],M=[1,27],X=[1,29],D=[1,30],it=[1,31],at=[1,32],nt=[1,33],rt=[1,34],Q=[1,37],U=[1,38],T=[1,39],_=[1,40],t=[1,41],m=[1,42],b=[1,43],A=[1,44],S=[1,45],v=[1,46],k=[1,47],F=[1,48],P=[1,49],Tt=[1,52],O=[1,67],Y=[1,68],z=[5,23,27,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61],ht=[5,7,38,39,40,41],dt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,directive:6,QUADRANT:7,document:8,line:9,statement:10,axisDetails:11,quadrantDetails:12,points:13,title:14,title_value:15,acc_title:16,acc_title_value:17,acc_descr:18,acc_descr_value:19,acc_descr_multiline_value:20,section:21,text:22,point_start:23,point_x:24,point_y:25,"X-AXIS":26,"AXIS-TEXT-DELIMITER":27,"Y-AXIS":28,QUADRANT_1:29,QUADRANT_2:30,QUADRANT_3:31,QUADRANT_4:32,openDirective:33,typeDirective:34,closeDirective:35,":":36,argDirective:37,NEWLINE:38,SEMI:39,EOF:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,alphaNumToken:45,textNoTagsToken:46,STR:47,MD_STR:48,alphaNum:49,PUNCTUATION:50,AMP:51,NUM:52,ALPHA:53,COMMA:54,PLUS:55,EQUALS:56,MULT:57,DOT:58,BRKT:59,UNDERSCORE:60,MINUS:61,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",7:"QUADRANT",14:"title",15:"title_value",16:"acc_title",17:"acc_title_value",18:"acc_descr",19:"acc_descr_value",20:"acc_descr_multiline_value",21:"section",23:"point_start",24:"point_x",25:"point_y",26:"X-AXIS",27:"AXIS-TEXT-DELIMITER",28:"Y-AXIS",29:"QUADRANT_1",30:"QUADRANT_2",31:"QUADRANT_3",32:"QUADRANT_4",36:":",38:"NEWLINE",39:"SEMI",40:"EOF",41:"open_directive",42:"type_directive",43:"arg_directive",44:"close_directive",47:"STR",48:"MD_STR",50:"PUNCTUATION",51:"AMP",52:"NUM",53:"ALPHA",54:"COMMA",55:"PLUS",56:"EQUALS",57:"MULT",58:"DOT",59:"BRKT",60:"UNDERSCORE",61:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[10,0],[10,2],[10,1],[10,1],[10,1],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[13,4],[11,4],[11,3],[11,2],[11,4],[11,3],[11,2],[12,2],[12,2],[12,2],[12,2],[6,3],[6,5],[4,1],[4,1],[4,1],[33,1],[34,1],[37,1],[35,1],[22,1],[22,2],[22,1],[22,1],[49,1],[49,2],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[46,1],[46,1],[46,1]],performAction:function(n,r,d,o,q,i,et){var u=i.length-1;switch(q){case 13:this.$=i[u].trim(),o.setDiagramTitle(this.$);break;case 14:this.$=i[u].trim(),o.setAccTitle(this.$);break;case 15:case 16:this.$=i[u].trim(),o.setAccDescription(this.$);break;case 17:o.addSection(i[u].substr(8)),this.$=i[u].substr(8);break;case 19:o.addPoint(i[u-3],i[u-1],i[u]);break;case 20:o.setXAxisLeftText(i[u-2]),o.setXAxisRightText(i[u]);break;case 21:i[u-1].text+=" ⟶ ",o.setXAxisLeftText(i[u-1]);break;case 22:o.setXAxisLeftText(i[u]);break;case 23:o.setYAxisBottomText(i[u-2]),o.setYAxisTopText(i[u]);break;case 24:i[u-1].text+=" ⟶ ",o.setYAxisBottomText(i[u-1]);break;case 25:o.setYAxisBottomText(i[u]);break;case 26:o.setQuadrant1Text(i[u]);break;case 27:o.setQuadrant2Text(i[u]);break;case 28:o.setQuadrant3Text(i[u]);break;case 29:o.setQuadrant4Text(i[u]);break;case 35:o.parseDirective("%%{","open_directive");break;case 36:o.parseDirective(i[u],"type_directive");break;case 37:i[u]=i[u].trim().replace(/'/g,'"'),o.parseDirective(i[u],"arg_directive");break;case 38:o.parseDirective("}%%","close_directive","quadrantChart");break;case 39:this.$={text:i[u],type:"text"};break;case 40:this.$={text:i[u-1].text+""+i[u],type:i[u-1].type};break;case 41:this.$={text:i[u],type:"text"};break;case 42:this.$={text:i[u],type:"markdown"};break;case 43:this.$=i[u];break;case 44:this.$=i[u-1]+""+i[u];break}},table:[{3:1,4:2,5:a,6:4,7:c,33:9,38:f,39:g,40:x,41:h},{1:[3]},{3:11,4:2,5:a,6:4,7:c,33:9,38:f,39:g,40:x,41:h},{3:12,4:2,5:a,6:4,7:c,33:9,38:f,39:g,40:x,41:h},{3:13,4:2,5:a,6:4,7:c,33:9,38:f,39:g,40:x,41:h},e(p,[2,5],{8:14}),e(s,[2,32]),e(s,[2,33]),e(s,[2,34]),{34:15,42:[1,16]},{42:[2,35]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(l,y,{33:9,9:17,10:18,11:20,12:21,13:22,6:28,22:35,45:36,1:[2,4],5:B,14:W,16:L,18:C,20:N,21:M,26:X,28:D,29:it,30:at,31:nt,32:rt,41:h,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P}),{35:50,36:[1,51],44:Tt},e([36,44],[2,36]),e(p,[2,6]),{4:53,38:f,39:g,40:x},e(l,y,{33:9,11:20,12:21,13:22,6:28,22:35,45:36,10:54,5:B,14:W,16:L,18:C,20:N,21:M,26:X,28:D,29:it,30:at,31:nt,32:rt,41:h,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P}),e(l,[2,10]),e(l,[2,11]),e(l,[2,12]),{15:[1,55]},{17:[1,56]},{19:[1,57]},e(l,[2,16]),e(l,[2,17]),e(l,[2,18]),{22:58,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{22:59,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{22:60,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{22:61,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{22:62,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{22:63,45:36,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P},{5:O,23:[1,64],45:66,46:65,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y},e(z,[2,39]),e(z,[2,41]),e(z,[2,42]),e(z,[2,45]),e(z,[2,46]),e(z,[2,47]),e(z,[2,48]),e(z,[2,49]),e(z,[2,50]),e(z,[2,51]),e(z,[2,52]),e(z,[2,53]),e(z,[2,54]),e(z,[2,55]),e(ht,[2,30]),{37:69,43:[1,70]},e(ht,[2,38]),e(p,[2,7]),e(l,[2,9]),e(l,[2,13]),e(l,[2,14]),e(l,[2,15]),e(l,[2,22],{46:65,45:66,5:O,27:[1,71],50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,25],{46:65,45:66,5:O,27:[1,72],50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,26],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,27],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,28],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,29],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),{24:[1,73]},e(z,[2,40]),e(z,[2,56]),e(z,[2,57]),e(z,[2,58]),{35:74,44:Tt},{44:[2,37]},e(l,[2,21],{45:36,22:75,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P}),e(l,[2,24],{45:36,22:76,47:Q,48:U,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P}),{25:[1,77]},e(ht,[2,31]),e(l,[2,20],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,23],{46:65,45:66,5:O,50:T,51:_,52:t,53:m,54:b,55:A,56:S,57:v,58:k,59:F,60:P,61:Y}),e(l,[2,19])],defaultActions:{10:[2,35],11:[2,1],12:[2,2],13:[2,3],70:[2,37]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var d=new Error(n);throw d.hash=r,d}},parse:function(n){var r=this,d=[0],o=[],q=[null],i=[],et=this.table,u="",st=0,mt=0,Ft=2,bt=1,Pt=i.slice.call(arguments,1),E=Object.create(this.lexer),Z={yy:{}};for(var xt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xt)&&(Z.yy[xt]=this.yy[xt]);E.setInput(n,Z.yy),Z.yy.lexer=E,Z.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ft=E.yylloc;i.push(ft);var Lt=E.options&&E.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ct(){var G;return G=o.pop()||E.lex()||bt,typeof G!="number"&&(G instanceof Array&&(o=G,G=o.pop()),G=r.symbols_[G]||G),G}for(var R,J,H,gt,tt={},lt,j,At,ot;;){if(J=d[d.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((R===null||typeof R>"u")&&(R=Ct()),H=et[J]&&et[J][R]),typeof H>"u"||!H.length||!H[0]){var pt="";ot=[];for(lt in et[J])this.terminals_[lt]&<>Ft&&ot.push("'"+this.terminals_[lt]+"'");E.showPosition?pt="Parse error on line "+(st+1)+`: -`+E.showPosition()+` -Expecting `+ot.join(", ")+", got '"+(this.terminals_[R]||R)+"'":pt="Parse error on line "+(st+1)+": Unexpected "+(R==bt?"end of input":"'"+(this.terminals_[R]||R)+"'"),this.parseError(pt,{text:E.match,token:this.terminals_[R]||R,line:E.yylineno,loc:ft,expected:ot})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+R);switch(H[0]){case 1:d.push(R),q.push(E.yytext),i.push(E.yylloc),d.push(H[1]),R=null,mt=E.yyleng,u=E.yytext,st=E.yylineno,ft=E.yylloc;break;case 2:if(j=this.productions_[H[1]][1],tt.$=q[q.length-j],tt._$={first_line:i[i.length-(j||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(j||1)].first_column,last_column:i[i.length-1].last_column},Lt&&(tt._$.range=[i[i.length-(j||1)].range[0],i[i.length-1].range[1]]),gt=this.performAction.apply(tt,[u,mt,st,Z.yy,H[1],q,i].concat(Pt)),typeof gt<"u")return gt;j&&(d=d.slice(0,-1*j*2),q=q.slice(0,-1*j),i=i.slice(0,-1*j)),d.push(this.productions_[H[1]][0]),q.push(tt.$),i.push(tt._$),At=et[d[d.length-2]][d[d.length-1]],d.push(At);break;case 3:return!0}}return!0}},kt=function(){var K={EOF:1,parseError:function(r,d){if(this.yy.parser)this.yy.parser.parseError(r,d);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,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},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,d=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var o=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),d.length-1&&(this.yylineno-=d.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:d?(d.length===o.length?this.yylloc.first_column:0)+o[o.length-d.length].length-d[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` -`+r+"^"},test_match:function(n,r){var d,o,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))),o=n[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,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(n[0].length),this.matched+=n[0],d=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var i in q)this[i]=q[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,r,d,o;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),i=0;ir[0].length)){if(r=d,o=i,this.options.backtrack_lexer){if(n=this.test_match(d,q[i]),n!==!1)return n;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(n=this.test_match(r,q[o]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,d,o,q){switch(o){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),36;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:break;case 6:break;case 7:return 38;case 8:break;case 9:return this.begin("title"),14;case 10:return this.popState(),"title_value";case 11:return this.begin("acc_title"),16;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),18;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 26;case 19:return 28;case 20:return 27;case 21:return 29;case 22:return 30;case 23:return 31;case 24:return 32;case 25:this.begin("md_string");break;case 26:return"MD_STR";case 27:this.popState();break;case 28:this.begin("string");break;case 29:this.popState();break;case 30:return"STR";case 31:return this.begin("point_start"),23;case 32:return this.begin("point_x"),24;case 33:this.popState();break;case 34:this.popState(),this.begin("point_y");break;case 35:return this.popState(),25;case 36:return 7;case 37:return 53;case 38:return"COLON";case 39:return 55;case 40:return 54;case 41:return 56;case 42:return 56;case 43:return 57;case 44:return 59;case 45:return 60;case 46:return 58;case 47:return 51;case 48:return 61;case 49:return 52;case 50:return 5;case 51:return 39;case 52:return 50;case 53:return 40}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\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,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/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:{point_y:{rules:[35],inclusive:!1},point_x:{rules:[34],inclusive:!1},point_start:{rules:[32,33],inclusive:!1},acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[10],inclusive:!1},md_string:{rules:[26,27],inclusive:!1},string:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,11,13,15,18,19,20,21,22,23,24,25,28,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],inclusive:!0}}};return K}();dt.lexer=kt;function ut(){this.yy={}}return ut.prototype=dt,dt.Parser=ut,new ut}();qt.parser=qt;const Ut=qt,w=Dt();class Qt{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var a,c,f,g,x,h,p,s,l,y,B,W,L,C,N,M,X,D;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((a=I.quadrantChart)==null?void 0:a.chartWidth)||500,chartWidth:((c=I.quadrantChart)==null?void 0:c.chartHeight)||500,titlePadding:((f=I.quadrantChart)==null?void 0:f.titlePadding)||10,titleFontSize:((g=I.quadrantChart)==null?void 0:g.titleFontSize)||20,quadrantPadding:((x=I.quadrantChart)==null?void 0:x.quadrantPadding)||5,xAxisLabelPadding:((h=I.quadrantChart)==null?void 0:h.xAxisLabelPadding)||5,yAxisLabelPadding:((p=I.quadrantChart)==null?void 0:p.yAxisLabelPadding)||5,xAxisLabelFontSize:((s=I.quadrantChart)==null?void 0:s.xAxisLabelFontSize)||16,yAxisLabelFontSize:((l=I.quadrantChart)==null?void 0:l.yAxisLabelFontSize)||16,quadrantLabelFontSize:((y=I.quadrantChart)==null?void 0:y.quadrantLabelFontSize)||16,quadrantTextTopPadding:((B=I.quadrantChart)==null?void 0:B.quadrantTextTopPadding)||5,pointTextPadding:((W=I.quadrantChart)==null?void 0:W.pointTextPadding)||5,pointLabelFontSize:((L=I.quadrantChart)==null?void 0:L.pointLabelFontSize)||12,pointRadius:((C=I.quadrantChart)==null?void 0:C.pointRadius)||5,xAxisPosition:((N=I.quadrantChart)==null?void 0:N.xAxisPosition)||"top",yAxisPosition:((M=I.quadrantChart)==null?void 0:M.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((X=I.quadrantChart)==null?void 0:X.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((D=I.quadrantChart)==null?void 0:D.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:w.quadrant1Fill,quadrant2Fill:w.quadrant2Fill,quadrant3Fill:w.quadrant3Fill,quadrant4Fill:w.quadrant4Fill,quadrant1TextFill:w.quadrant1TextFill,quadrant2TextFill:w.quadrant2TextFill,quadrant3TextFill:w.quadrant3TextFill,quadrant4TextFill:w.quadrant4TextFill,quadrantPointFill:w.quadrantPointFill,quadrantPointTextFill:w.quadrantPointTextFill,quadrantXAxisTextFill:w.quadrantXAxisTextFill,quadrantYAxisTextFill:w.quadrantYAxisTextFill,quadrantTitleFill:w.quadrantTitleFill,quadrantInternalBorderStrokeFill:w.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:w.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),ct.info("clear called")}setData(a){this.data={...this.data,...a}}addPoints(a){this.data.points=[...a,...this.data.points]}setConfig(a){ct.trace("setConfig called with: ",a),this.config={...this.config,...a}}setThemeConfig(a){ct.trace("setThemeConfig called with: ",a),this.themeConfig={...this.themeConfig,...a}}calculateSpace(a,c,f,g){const x=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,h={top:a==="top"&&c?x:0,bottom:a==="bottom"&&c?x:0},p=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,s={left:this.config.yAxisPosition==="left"&&f?p:0,right:this.config.yAxisPosition==="right"&&f?p:0},l=this.config.titleFontSize+this.config.titlePadding*2,y={top:g?l:0},B=this.config.quadrantPadding+s.left,W=this.config.quadrantPadding+h.top+y.top,L=this.config.chartWidth-this.config.quadrantPadding*2-s.left-s.right,C=this.config.chartHeight-this.config.quadrantPadding*2-h.top-h.bottom-y.top,N=L/2,M=C/2;return{xAxisSpace:h,yAxisSpace:s,titleSpace:y,quadrantSpace:{quadrantLeft:B,quadrantTop:W,quadrantWidth:L,quadrantHalfWidth:N,quadrantHeight:C,quadrantHalfHeight:M}}}getAxisLabels(a,c,f,g){const{quadrantSpace:x,titleSpace:h}=g,{quadrantHalfHeight:p,quadrantHeight:s,quadrantLeft:l,quadrantHalfWidth:y,quadrantTop:B,quadrantWidth:W}=x,L=this.data.points.length===0,C=[];return this.data.xAxisLeftText&&c&&C.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:l+(L?y/2:0),y:a==="top"?this.config.xAxisLabelPadding+h.top:this.config.xAxisLabelPadding+B+s+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:L?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&c&&C.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:l+y+(L?y/2:0),y:a==="top"?this.config.xAxisLabelPadding+h.top:this.config.xAxisLabelPadding+B+s+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:L?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&f&&C.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+l+W+this.config.quadrantPadding,y:B+s-(L?p/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:L?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&f&&C.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+l+W+this.config.quadrantPadding,y:B+p-(L?p/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:L?"center":"left",horizontalPos:"top",rotation:-90}),C}getQuadrants(a){const{quadrantSpace:c}=a,{quadrantHalfHeight:f,quadrantLeft:g,quadrantHalfWidth:x,quadrantTop:h}=c,p=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:g+x,y:h,width:x,height:f,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:g,y:h,width:x,height:f,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:g,y:h+f,width:x,height:f,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:g+x,y:h+f,width:x,height:f,fill:this.themeConfig.quadrant4Fill}];for(const s of p)s.text.x=s.x+s.width/2,this.data.points.length===0?(s.text.y=s.y+s.height/2,s.text.horizontalPos="middle"):(s.text.y=s.y+this.config.quadrantTextTopPadding,s.text.horizontalPos="top");return p}getQuadrantPoints(a){const{quadrantSpace:c}=a,{quadrantHeight:f,quadrantLeft:g,quadrantTop:x,quadrantWidth:h}=c,p=St().domain([0,1]).range([g,h+g]),s=St().domain([0,1]).range([f+x,x]);return this.data.points.map(y=>({x:p(y.x),y:s(y.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:y.text,fill:this.themeConfig.quadrantPointTextFill,x:p(y.x),y:s(y.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(a){const c=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:f}=a,{quadrantHalfHeight:g,quadrantHeight:x,quadrantLeft:h,quadrantHalfWidth:p,quadrantTop:s,quadrantWidth:l}=f;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:h-c,y1:s,x2:h+l+c,y2:s},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:h+l,y1:s+c,x2:h+l,y2:s+x-c},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:h-c,y1:s+x,x2:h+l+c,y2:s+x},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:h,y1:s+c,x2:h,y2:s+x-c},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:h+p,y1:s+c,x2:h+p,y2:s+x-c},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:h+c,y1:s+g,x2:h+l-c,y2:s+g}]}getTitle(a){if(a)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(){const a=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),c=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),f=this.config.showTitle&&!!this.data.titleText,g=this.data.points.length>0?"bottom":this.config.xAxisPosition,x=this.calculateSpace(g,a,c,f);return{points:this.getQuadrantPoints(x),quadrants:this.getQuadrants(x),axisLabels:this.getAxisLabels(g,a,c,x),borderLines:this.getBorders(x),title:this.getTitle(f)}}}const Ht=_t();function $(e){return Nt(e.trim(),Ht)}const V=new Qt;function Mt(e){V.setData({quadrant1Text:$(e.text)})}function Xt(e){V.setData({quadrant2Text:$(e.text)})}function Ot(e){V.setData({quadrant3Text:$(e.text)})}function Yt(e){V.setData({quadrant4Text:$(e.text)})}function jt(e){V.setData({xAxisLeftText:$(e.text)})}function Gt(e){V.setData({xAxisRightText:$(e.text)})}function $t(e){V.setData({yAxisTopText:$(e.text)})}function Kt(e){V.setData({yAxisBottomText:$(e.text)})}function Zt(e,a,c){V.addPoints([{x:a,y:c,text:$(e.text)}])}function Jt(e){V.setConfig({chartWidth:e})}function te(e){V.setConfig({chartHeight:e})}function ee(){const e=_t(),{themeVariables:a,quadrantChart:c}=e;return c&&V.setConfig(c),V.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),V.setData({titleText:vt()}),V.build()}const ie=function(e,a,c){wt.parseDirective(this,e,a,c)},ae=function(){V.clear(),Rt()},ne={setWidth:Jt,setHeight:te,setQuadrant1Text:Mt,setQuadrant2Text:Xt,setQuadrant3Text:Ot,setQuadrant4Text:Yt,setXAxisLeftText:jt,setXAxisRightText:Gt,setYAxisTopText:$t,setYAxisBottomText:Kt,addPoint:Zt,getQuadrantData:ee,parseDirective:ie,clear:ae,setAccTitle:zt,getAccTitle:Et,setDiagramTitle:It,getDiagramTitle:vt,getAccDescription:Bt,setAccDescription:Vt},re=(e,a,c,f)=>{var g,x,h;function p(t){return t==="top"?"hanging":"middle"}function s(t){return t==="left"?"start":"middle"}function l(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const y=_t();ct.debug(`Rendering quadrant chart -`+e);const B=y.securityLevel;let W;B==="sandbox"&&(W=yt("#i"+a));const C=(B==="sandbox"?yt(W.nodes()[0].contentDocument.body):yt("body")).select(`[id="${a}"]`),N=C.append("g").attr("class","main"),M=((g=y.quadrantChart)==null?void 0:g.chartWidth)||500,X=((x=y.quadrantChart)==null?void 0:x.chartHeight)||500;Wt(C,X,M,((h=y.quadrantChart)==null?void 0:h.useMaxWidth)||!0),C.attr("viewBox","0 0 "+M+" "+X),f.db.setHeight(X),f.db.setWidth(M);const D=f.db.getQuadrantData(),it=N.append("g").attr("class","quadrants"),at=N.append("g").attr("class","border"),nt=N.append("g").attr("class","data-points"),rt=N.append("g").attr("class","labels"),Q=N.append("g").attr("class","title");D.title&&Q.append("text").attr("x",0).attr("y",0).attr("fill",D.title.fill).attr("font-size",D.title.fontSize).attr("dominant-baseline",p(D.title.horizontalPos)).attr("text-anchor",s(D.title.verticalPos)).attr("transform",l(D.title)).text(D.title.text),D.borderLines&&at.selectAll("line").data(D.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);const U=it.selectAll("g.quadrant").data(D.quadrants).enter().append("g").attr("class","quadrant");U.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),U.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>p(t.text.horizontalPos)).attr("text-anchor",t=>s(t.text.verticalPos)).attr("transform",t=>l(t.text)).text(t=>t.text.text),rt.selectAll("g.label").data(D.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>p(t.horizontalPos)).attr("text-anchor",t=>s(t.verticalPos)).attr("transform",t=>l(t));const _=nt.selectAll("g.data-point").data(D.points).enter().append("g").attr("class","data-point");_.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill),_.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>p(t.text.horizontalPos)).attr("text-anchor",t=>s(t.text.verticalPos)).attr("transform",t=>l(t.text))},se={draw:re},de={parser:Ut,db:ne,renderer:se,styles:()=>""};export{de as diagram}; -//# sourceMappingURL=quadrantDiagram-fd70f2d0-9W_l-w0k.js.map diff --git a/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js.map b/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js.map deleted file mode 100644 index 2ab491b..0000000 --- a/excalidraw/excalidraw-app/build/assets/quadrantDiagram-fd70f2d0-9W_l-w0k.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"quadrantDiagram-fd70f2d0-9W_l-w0k.js","sources":["../../../node_modules/mermaid/dist/quadrantDiagram-fd70f2d0.js"],"sourcesContent":["import { C as getThemeVariables, D as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, r as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, m as mermaidAPI, v as clear$1, d as sanitizeText, i as configureSvgSize } from \"./mermaid-b0ad2de1.js\";\nimport { scaleLinear, select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [1, 10], $V6 = [1, 5, 14, 16, 18, 20, 21, 26, 28, 29, 30, 31, 32, 38, 39, 40, 41, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], $V7 = [1, 5, 7, 14, 16, 18, 20, 21, 26, 28, 29, 30, 31, 32, 38, 39, 40, 41, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], $V8 = [38, 39, 40], $V9 = [2, 8], $Va = [1, 19], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 37], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 52], $VA = [1, 67], $VB = [1, 68], $VC = [5, 23, 27, 38, 39, 40, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61], $VD = [5, 7, 38, 39, 40, 41];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"SPACE\": 5, \"directive\": 6, \"QUADRANT\": 7, \"document\": 8, \"line\": 9, \"statement\": 10, \"axisDetails\": 11, \"quadrantDetails\": 12, \"points\": 13, \"title\": 14, \"title_value\": 15, \"acc_title\": 16, \"acc_title_value\": 17, \"acc_descr\": 18, \"acc_descr_value\": 19, \"acc_descr_multiline_value\": 20, \"section\": 21, \"text\": 22, \"point_start\": 23, \"point_x\": 24, \"point_y\": 25, \"X-AXIS\": 26, \"AXIS-TEXT-DELIMITER\": 27, \"Y-AXIS\": 28, \"QUADRANT_1\": 29, \"QUADRANT_2\": 30, \"QUADRANT_3\": 31, \"QUADRANT_4\": 32, \"openDirective\": 33, \"typeDirective\": 34, \"closeDirective\": 35, \":\": 36, \"argDirective\": 37, \"NEWLINE\": 38, \"SEMI\": 39, \"EOF\": 40, \"open_directive\": 41, \"type_directive\": 42, \"arg_directive\": 43, \"close_directive\": 44, \"alphaNumToken\": 45, \"textNoTagsToken\": 46, \"STR\": 47, \"MD_STR\": 48, \"alphaNum\": 49, \"PUNCTUATION\": 50, \"AMP\": 51, \"NUM\": 52, \"ALPHA\": 53, \"COMMA\": 54, \"PLUS\": 55, \"EQUALS\": 56, \"MULT\": 57, \"DOT\": 58, \"BRKT\": 59, \"UNDERSCORE\": 60, \"MINUS\": 61, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"SPACE\", 7: \"QUADRANT\", 14: \"title\", 15: \"title_value\", 16: \"acc_title\", 17: \"acc_title_value\", 18: \"acc_descr\", 19: \"acc_descr_value\", 20: \"acc_descr_multiline_value\", 21: \"section\", 23: \"point_start\", 24: \"point_x\", 25: \"point_y\", 26: \"X-AXIS\", 27: \"AXIS-TEXT-DELIMITER\", 28: \"Y-AXIS\", 29: \"QUADRANT_1\", 30: \"QUADRANT_2\", 31: \"QUADRANT_3\", 32: \"QUADRANT_4\", 36: \":\", 38: \"NEWLINE\", 39: \"SEMI\", 40: \"EOF\", 41: \"open_directive\", 42: \"type_directive\", 43: \"arg_directive\", 44: \"close_directive\", 47: \"STR\", 48: \"MD_STR\", 50: \"PUNCTUATION\", 51: \"AMP\", 52: \"NUM\", 53: \"ALPHA\", 54: \"COMMA\", 55: \"PLUS\", 56: \"EQUALS\", 57: \"MULT\", 58: \"DOT\", 59: \"BRKT\", 60: \"UNDERSCORE\", 61: \"MINUS\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [10, 0], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [13, 4], [11, 4], [11, 3], [11, 2], [11, 4], [11, 3], [11, 2], [12, 2], [12, 2], [12, 2], [12, 2], [6, 3], [6, 5], [4, 1], [4, 1], [4, 1], [33, 1], [34, 1], [37, 1], [35, 1], [22, 1], [22, 2], [22, 1], [22, 1], [49, 1], [49, 2], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [46, 1], [46, 1], [46, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 13:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 14:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 15:\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 17:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 19:\n yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 20:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 21:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 22:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 23:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 24:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 25:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 26:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 27:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 28:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 29:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 35:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 36:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 37:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 38:\n yy.parseDirective(\"}%%\", \"close_directive\", \"quadrantChart\");\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 40:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 41:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 42:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 43:\n this.$ = $$[$0];\n break;\n case 44:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 1: [3] }, { 3: 11, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 3: 12, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 3: 13, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, o($V6, [2, 5], { 8: 14 }), o($V7, [2, 32]), o($V7, [2, 33]), o($V7, [2, 34]), { 34: 15, 42: [1, 16] }, { 42: [2, 35] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($V8, $V9, { 33: 9, 9: 17, 10: 18, 11: 20, 12: 21, 13: 22, 6: 28, 22: 35, 45: 36, 1: [2, 4], 5: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 20: $Ve, 21: $Vf, 26: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 32: $Vl, 41: $V5, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), { 35: 50, 36: [1, 51], 44: $Vz }, o([36, 44], [2, 36]), o($V6, [2, 6]), { 4: 53, 38: $V2, 39: $V3, 40: $V4 }, o($V8, $V9, { 33: 9, 11: 20, 12: 21, 13: 22, 6: 28, 22: 35, 45: 36, 10: 54, 5: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 20: $Ve, 21: $Vf, 26: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 32: $Vl, 41: $V5, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 15: [1, 55] }, { 17: [1, 56] }, { 19: [1, 57] }, o($V8, [2, 16]), o($V8, [2, 17]), o($V8, [2, 18]), { 22: 58, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 59, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 60, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 61, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 62, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 63, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 5: $VA, 23: [1, 64], 45: 66, 46: 65, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }, o($VC, [2, 39]), o($VC, [2, 41]), o($VC, [2, 42]), o($VC, [2, 45]), o($VC, [2, 46]), o($VC, [2, 47]), o($VC, [2, 48]), o($VC, [2, 49]), o($VC, [2, 50]), o($VC, [2, 51]), o($VC, [2, 52]), o($VC, [2, 53]), o($VC, [2, 54]), o($VC, [2, 55]), o($VD, [2, 30]), { 37: 69, 43: [1, 70] }, o($VD, [2, 38]), o($V6, [2, 7]), o($V8, [2, 9]), o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, [2, 22], { 46: 65, 45: 66, 5: $VA, 27: [1, 71], 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 25], { 46: 65, 45: 66, 5: $VA, 27: [1, 72], 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 26], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 27], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 28], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 29], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), { 24: [1, 73] }, o($VC, [2, 40]), o($VC, [2, 56]), o($VC, [2, 57]), o($VC, [2, 58]), { 35: 74, 44: $Vz }, { 44: [2, 37] }, o($V8, [2, 21], { 45: 36, 22: 75, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), o($V8, [2, 24], { 45: 36, 22: 76, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), { 25: [1, 77] }, o($VD, [2, 31]), o($V8, [2, 20], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 23], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 19])],\n defaultActions: { 10: [2, 35], 11: [2, 1], 12: [2, 2], 13: [2, 3], 70: [2, 37] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 41;\n case 1:\n this.begin(\"type_directive\");\n return 42;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 36;\n case 3:\n this.popState();\n this.popState();\n return 44;\n case 4:\n return 43;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 38;\n case 8:\n break;\n case 9:\n this.begin(\"title\");\n return 14;\n case 10:\n this.popState();\n return \"title_value\";\n case 11:\n this.begin(\"acc_title\");\n return 16;\n case 12:\n this.popState();\n return \"acc_title_value\";\n case 13:\n this.begin(\"acc_descr\");\n return 18;\n case 14:\n this.popState();\n return \"acc_descr_value\";\n case 15:\n this.begin(\"acc_descr_multiline\");\n break;\n case 16:\n this.popState();\n break;\n case 17:\n return \"acc_descr_multiline_value\";\n case 18:\n return 26;\n case 19:\n return 28;\n case 20:\n return 27;\n case 21:\n return 29;\n case 22:\n return 30;\n case 23:\n return 31;\n case 24:\n return 32;\n case 25:\n this.begin(\"md_string\");\n break;\n case 26:\n return \"MD_STR\";\n case 27:\n this.popState();\n break;\n case 28:\n this.begin(\"string\");\n break;\n case 29:\n this.popState();\n break;\n case 30:\n return \"STR\";\n case 31:\n this.begin(\"point_start\");\n return 23;\n case 32:\n this.begin(\"point_x\");\n return 24;\n case 33:\n this.popState();\n break;\n case 34:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 35:\n this.popState();\n return 25;\n case 36:\n return 7;\n case 37:\n return 53;\n case 38:\n return \"COLON\";\n case 39:\n return 55;\n case 40:\n return 54;\n case 41:\n return 56;\n case 42:\n return 56;\n case 43:\n return 57;\n case 44:\n return 59;\n case 45:\n return 60;\n case 46:\n return 58;\n case 47:\n return 51;\n case 48:\n return 61;\n case 49:\n return 52;\n case 50:\n return 5;\n case 51:\n return 39;\n case 52:\n return 50;\n case 53:\n return 40;\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:%%(?!\\{)[^\\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, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/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],\n conditions: { \"point_y\": { \"rules\": [35], \"inclusive\": false }, \"point_x\": { \"rules\": [34], \"inclusive\": false }, \"point_start\": { \"rules\": [32, 33], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [16, 17], \"inclusive\": false }, \"acc_descr\": { \"rules\": [14], \"inclusive\": false }, \"acc_title\": { \"rules\": [12], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"title\": { \"rules\": [10], \"inclusive\": false }, \"md_string\": { \"rules\": [26, 27], \"inclusive\": false }, \"string\": { \"rules\": [29, 30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 7, 8, 9, 11, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 28, 31, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst defaultThemeVariables = getThemeVariables();\nclass QuadrantBuilder {\n constructor() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n log.info(\"clear called\");\n }\n setData(data) {\n this.data = { ...this.data, ...data };\n }\n addPoints(points) {\n this.data.points = [...points, ...this.data.points];\n }\n setConfig(config2) {\n log.trace(\"setConfig called with: \", config2);\n this.config = { ...this.config, ...config2 };\n }\n setThemeConfig(themeConfig) {\n log.trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = { ...this.themeConfig, ...themeConfig };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft,\n quadrantTop,\n quadrantWidth,\n quadrantHalfWidth,\n quadrantHeight,\n quadrantHalfHeight\n };\n return {\n xAxisSpace,\n yAxisSpace,\n titleSpace,\n quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace, titleSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const drawAxisLabelInMiddle = this.data.points.length === 0;\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawAxisLabelInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.xAxisRightText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawAxisLabelInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.yAxisBottomText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawAxisLabelInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n if (this.data.yAxisTopText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawAxisLabelInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants) {\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n const points = this.data.points.map((point) => {\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: this.themeConfig.quadrantPointFill,\n radius: this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n }\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) {\n return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n }\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n}\nconst config = getConfig();\nfunction textSanitizer(text) {\n return sanitizeText(text.trim(), config);\n}\nconst quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant2Text(textObj) {\n quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant3Text(textObj) {\n quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant4Text(textObj) {\n quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\nfunction setXAxisLeftText(textObj) {\n quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\nfunction setXAxisRightText(textObj) {\n quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\nfunction setYAxisTopText(textObj) {\n quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\nfunction setYAxisBottomText(textObj) {\n quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\nfunction addPoint(textObj, x, y) {\n quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]);\n}\nfunction setWidth(width) {\n quadrantBuilder.setConfig({ chartWidth: width });\n}\nfunction setHeight(height) {\n quadrantBuilder.setConfig({ chartHeight: height });\n}\nfunction getQuadrantData() {\n const config2 = getConfig();\n const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) {\n quadrantBuilder.setConfig(quadrantChartConfig);\n }\n quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n quadrantBuilder.setData({ titleText: getDiagramTitle() });\n return quadrantBuilder.build();\n}\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst clear = function() {\n quadrantBuilder.clear();\n clear$1();\n};\nconst db = {\n setWidth,\n setHeight,\n setQuadrant1Text,\n setQuadrant2Text,\n setQuadrant3Text,\n setQuadrant4Text,\n setXAxisLeftText,\n setXAxisRightText,\n setYAxisTopText,\n setYAxisBottomText,\n addPoint,\n getQuadrantData,\n parseDirective,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\nconst draw = (txt, id, _version, diagObj) => {\n var _a, _b, _c;\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n const conf = getConfig();\n log.debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) {\n titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n }\n if (quadrantData.borderLines) {\n borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n }\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles: () => \"\"\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","n","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","defaultThemeVariables","getThemeVariables","QuadrantBuilder","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","defaultConfig","log","data","points","config2","themeConfig","xAxisPosition","showXAxis","showYAxis","showTitle","xAxisSpaceCalculation","xAxisSpace","yAxisSpaceCalculation","yAxisSpace","titleSpaceCalculation","titleSpace","quadrantLeft","quadrantTop","quadrantWidth","quadrantHeight","quadrantHalfWidth","quadrantHalfHeight","spaceData","quadrantSpace","drawAxisLabelInMiddle","axisLabels","quadrants","quadrant","xAxis","scaleLinear","yAxis","point","halfExternalBorderWidth","calculatedSpace","config","getConfig","textSanitizer","text","sanitizeText","quadrantBuilder","setQuadrant1Text","textObj","setQuadrant2Text","setQuadrant3Text","setQuadrant4Text","setXAxisLeftText","setXAxisRightText","setYAxisTopText","setYAxisBottomText","addPoint","x","y","setWidth","width","setHeight","height","getQuadrantData","themeVariables","quadrantChartConfig","getDiagramTitle","parseDirective","statement","context","type","mermaidAPI","clear","clear$1","db","setAccTitle","getAccTitle","setDiagramTitle","getAccDescription","setAccDescription","draw","txt","id","_version","diagObj","getDominantBaseLine","horizontalPos","getTextAnchor","verticalPos","getTransformation","conf","securityLevel","sandboxElement","select","svg","group","configureSvgSize","quadrantData","quadrantsGroup","borderGroup","dataPointGroup","labelGroup","titleGroup","dataPoints","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js b/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js deleted file mode 100644 index 29e71dd..0000000 --- a/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js +++ /dev/null @@ -1,2 +0,0 @@ -var o=["aardvark","albatross","alligator","alpaca","ant","anteater","antelope","ape","armadillo","baboon","badger","barracuda","bat","bear","beaver","bee","bison","boar","buffalo","butterfly","camel","capybara","caribou","cassowary","cat","caterpillar","chamois","cheetah","chicken","chimpanzee","chinchilla","clam","cobra","cod","cormorant","coyote","crab","crane","crocodile","crow","deer","dinosaur","dog","dogfish","dolphin","dove","dragonfly","duck","eagle","echidna","eel","elephant","elk","emu","falcon","ferret","finch","fish","flamingo","fly","fox","frog","gazelle","gerbil","giraffe","goat","goldfinch","goldfish","goose","gorilla","goshawk","grasshopper","grouse","guanaco","gull","hamster","hare","hawk","hedgehog","heron","herring","hippopotamus","hornet","horse","hummingbird","ibex","jackal","jaguar","jay","jellyfish","kangaroo","kingfisher","koala","lark","lemur","leopard","lion","llama","lobster","locust","loris","lyrebird","magpie","mallard","manatee","mandrill","mantis","marten","meerkat","mink","mongoose","monkey","moose","mouse","narwhal","nightingale","octopus","okapi","opossum","ostrich","otter","owl","oyster","panther","parrot","partridge","pelican","penguin","pheasant","pigeon","pony","porcupine","porpoise","quail","rabbit","raccoon","ram","raven","reindeer","rhinoceros","rook","salamander","salmon","sandpiper","sardine","scorpion","seahorse","seal","shark","sheep","snail","sparrow","spoonbill","squid","squirrel","starling","stingray","stork","swallow","swan","tiger","trout","turkey","turtle","viper","wallaby","walrus","wasp","weasel","whale","wildcat","wolf","wolverine","wombat","woodcock","woodpecker","yak","zebra"],t=["absolute","adorable","adventurous","acclaimed","accomplished","accurate","acrobatic","active","actual","adept","admirable","admired","adolescent","adorable","adored","advanced","affectionate","agile","alert","alive","altruistic","amazing","ambitious","amused","amusing","ancient","animated","antique","apprehensive","apt","arctic","artistic","assured","astonishing","athletic","attentive","attractive","authentic","authorized","automatic","awesome","beautiful","beloved","beneficial","big","blissful","blue","bold","bouncy","brave","bright","brilliant","brisk","bronze","busy","calm","careful","caring","celebrated","charming","cheerful","cheery","clever","colorful","compassionate","competent","complete","composed","conscious","considerate","content","cool","courageous","courteous","crafty","creative","cuddly","cultivated","cultured","cute","daring","dazzling","dearest","decisive","deep","defiant","definite","delightful","dependable","determined","diligent","distinct","dutiful","earnest","elegant","enchanted","enchanting","energetic","enlightened","esteemed","euphoric","excited","fabulous","fancy","fearless","generous","gentle","genuine","glamorous","gleaming","glittering","glorious","golden","graceful","gracious","grand","great","green","handmade","handsome","handy","happy","harmonious","healthy","hearty","honorable","imaginative","impassioned","impeccable","impressive","incomparable","incredible","infamous","innocent","joyful","joyous","jubilant","knowledgeable","lawful","legal","luminous","magnificent","majestic","major","minty","modern","mysterious","optimistic","orange","orderly","ornate","original","outstanding","passionate","peaceful","pleased","positive","powerful","productive","proud","purple","puzzled","real","reasonable","reliable","remarkable","respectful","responsible","rusty","serene","silky","silver","sociable","solid","sophisticated","soulful","spectacular","speedy","splendid","squiggly","stimulating","striking","striped","strong","stunning","stylish","substantial","subtle","super","superb","supportive","swift","tangible","teeming","terrific","thoughtful","timely","total","tremendous","true","trustworthy","truthful","ultimate","uncommon","unique","upbeat","velvety","venerated","verifiable","vibrant","victorious","vigilant","vigorous","violet","virtuous","vital","warm","warmhearted","watchful","whole","wise","witty","wonderful","worthwhile","worthy","zealous"],r=function(e){return e[Math.floor(Math.random()*e.length)]},i=function(e){return e[0].toUpperCase()+e.slice(1)},l=function(){return i(r(t))+" "+i(r(o))};export{t as adjectives,o as animals,l as getRandomUsername}; -//# sourceMappingURL=random-username.esm-K7eb4aAo.js.map diff --git a/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js.map b/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js.map deleted file mode 100644 index 5d8042a..0000000 --- a/excalidraw/excalidraw-app/build/assets/random-username.esm-K7eb4aAo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"random-username.esm-K7eb4aAo.js","sources":["../../../node_modules/@excalidraw/random-username/dist/random-username.esm.js"],"sourcesContent":["var animals = ['aardvark', 'albatross', 'alligator', 'alpaca', 'ant', 'anteater', 'antelope', 'ape', 'armadillo', 'baboon', 'badger', 'barracuda', 'bat', 'bear', 'beaver', 'bee', 'bison', 'boar', 'buffalo', 'butterfly', 'camel', 'capybara', 'caribou', 'cassowary', 'cat', 'caterpillar', 'chamois', 'cheetah', 'chicken', 'chimpanzee', 'chinchilla', 'clam', 'cobra', 'cod', 'cormorant', 'coyote', 'crab', 'crane', 'crocodile', 'crow', 'deer', 'dinosaur', 'dog', 'dogfish', 'dolphin', 'dove', 'dragonfly', 'duck', 'eagle', 'echidna', 'eel', 'elephant', 'elk', 'emu', 'falcon', 'ferret', 'finch', 'fish', 'flamingo', 'fly', 'fox', 'frog', 'gazelle', 'gerbil', 'giraffe', 'goat', 'goldfinch', 'goldfish', 'goose', 'gorilla', 'goshawk', 'grasshopper', 'grouse', 'guanaco', 'gull', 'hamster', 'hare', 'hawk', 'hedgehog', 'heron', 'herring', 'hippopotamus', 'hornet', 'horse', 'hummingbird', 'ibex', 'jackal', 'jaguar', 'jay', 'jellyfish', 'kangaroo', 'kingfisher', 'koala', 'lark', 'lemur', 'leopard', 'lion', 'llama', 'lobster', 'locust', 'loris', 'lyrebird', 'magpie', 'mallard', 'manatee', 'mandrill', 'mantis', 'marten', 'meerkat', 'mink', 'mongoose', 'monkey', 'moose', 'mouse', 'narwhal', 'nightingale', 'octopus', 'okapi', 'opossum', 'ostrich', 'otter', 'owl', 'oyster', 'panther', 'parrot', 'partridge', 'pelican', 'penguin', 'pheasant', 'pigeon', 'pony', 'porcupine', 'porpoise', 'quail', 'rabbit', 'raccoon', 'ram', 'raven', 'reindeer', 'rhinoceros', 'rook', 'salamander', 'salmon', 'sandpiper', 'sardine', 'scorpion', 'seahorse', 'seal', 'shark', 'sheep', 'snail', 'sparrow', 'spoonbill', 'squid', 'squirrel', 'starling', 'stingray', 'stork', 'swallow', 'swan', 'tiger', 'trout', 'turkey', 'turtle', 'viper', 'wallaby', 'walrus', 'wasp', 'weasel', 'whale', 'wildcat', 'wolf', 'wolverine', 'wombat', 'woodcock', 'woodpecker', 'yak', 'zebra'];\nvar adjectives = ['absolute', 'adorable', 'adventurous', 'acclaimed', 'accomplished', 'accurate', 'acrobatic', 'active', 'actual', 'adept', 'admirable', 'admired', 'adolescent', 'adorable', 'adored', 'advanced', 'affectionate', 'agile', 'alert', 'alive', 'altruistic', 'amazing', 'ambitious', 'amused', 'amusing', 'ancient', 'animated', 'antique', 'apprehensive', 'apt', 'arctic', 'artistic', 'assured', 'astonishing', 'athletic', 'attentive', 'attractive', 'authentic', 'authorized', 'automatic', 'awesome', 'beautiful', 'beloved', 'beneficial', 'big', 'blissful', 'blue', 'bold', 'bouncy', 'brave', 'bright', 'brilliant', 'brisk', 'bronze', 'busy', 'calm', 'careful', 'caring', 'celebrated', 'charming', 'cheerful', 'cheery', 'clever', 'colorful', 'compassionate', 'competent', 'complete', 'composed', 'conscious', 'considerate', 'content', 'cool', 'courageous', 'courteous', 'crafty', 'creative', 'cuddly', 'cultivated', 'cultured', 'cute', 'daring', 'dazzling', 'dearest', 'decisive', 'deep', 'defiant', 'definite', 'delightful', 'dependable', 'determined', 'diligent', 'distinct', 'dutiful', 'earnest', 'elegant', 'enchanted', 'enchanting', 'energetic', 'enlightened', 'esteemed', 'euphoric', 'excited', 'fabulous', 'fancy', 'fearless', 'generous', 'gentle', 'genuine', 'glamorous', 'gleaming', 'glittering', 'glorious', 'golden', 'graceful', 'gracious', 'grand', 'great', 'green', 'handmade', 'handsome', 'handy', 'happy', 'harmonious', 'healthy', 'hearty', 'honorable', 'imaginative', 'impassioned', 'impeccable', 'impressive', 'incomparable', 'incredible', 'infamous', 'innocent', 'joyful', 'joyous', 'jubilant', 'knowledgeable', 'lawful', 'legal', 'luminous', 'magnificent', 'majestic', 'major', 'minty', 'modern', 'mysterious', 'optimistic', 'orange', 'orderly', 'ornate', 'original', 'outstanding', 'passionate', 'peaceful', 'pleased', 'positive', 'powerful', 'productive', 'proud', 'purple', 'puzzled', 'real', 'reasonable', 'reliable', 'remarkable', 'respectful', 'responsible', 'rusty', 'serene', 'silky', 'silver', 'sociable', 'solid', 'sophisticated', 'soulful', 'spectacular', 'speedy', 'splendid', 'squiggly', 'stimulating', 'striking', 'striped', 'strong', 'stunning', 'stylish', 'substantial', 'subtle', 'super', 'superb', 'supportive', 'swift', 'tangible', 'teeming', 'terrific', 'thoughtful', 'timely', 'total', 'tremendous', 'true', 'trustworthy', 'truthful', 'ultimate', 'uncommon', 'unique', 'upbeat', 'velvety', 'venerated', 'verifiable', 'vibrant', 'victorious', 'vigilant', 'vigorous', 'violet', 'virtuous', 'vital', 'warm', 'warmhearted', 'watchful', 'whole', 'wise', 'witty', 'wonderful', 'worthwhile', 'worthy', 'zealous'];\n\nvar sample = function sample(arr) {\n return arr[Math.floor(Math.random() * arr.length)];\n};\n\nvar upperFirst = function upperFirst(str) {\n return str[0].toUpperCase() + str.slice(1);\n};\n\nvar getRandomUsername = function getRandomUsername() {\n return upperFirst(sample(adjectives)) + \" \" + upperFirst(sample(animals));\n};\n\nexport { adjectives, animals, getRandomUsername };\n//# sourceMappingURL=random-username.esm.js.map\n"],"names":["animals","adjectives","sample","arr","upperFirst","str","getRandomUsername"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js b/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js deleted file mode 100644 index 5c98b83..0000000 --- a/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js +++ /dev/null @@ -1,53 +0,0 @@ -import{c as ve,s as Fe,g as Me,b as Pe,a as Ye,m as Ue,l as xe,z as Be,h as oe,i as Qe,j as Te}from"./index-jpNTxDe4.js";import{G as He,l as We}from"./layout-ewywu0M6.js";import{l as Ke}from"./line-reZX-DPl.js";import"./index-2K3MavtT.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";var he=function(){var e=function(q,r,s,l){for(s=s||{},l=q.length;l--;s[q[l]]=r);return s},t=[1,3],a=[1,5],c=[1,6],d=[1,7],u=[1,8],p=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],h=[1,22],o=[2,13],g=[1,26],R=[1,27],v=[1,28],S=[1,29],T=[1,30],x=[1,31],A=[1,24],N=[1,32],w=[1,33],pe=[1,36],F=[71,72],_e=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],fe=[1,56],ye=[1,57],ge=[1,58],Ee=[1,59],Re=[1,60],me=[1,61],Ie=[1,62],O=[62,63],M=[1,74],P=[1,70],Y=[1,71],U=[1,72],B=[1,73],Q=[1,75],j=[1,79],X=[1,80],J=[1,77],Z=[1,78],m=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],re={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",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",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(r,s,l,i,f,n,K){var _=n.length-1;switch(f){case 6:this.$=n[_].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=n[_].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(n[_],"type_directive");break;case 11:n[_]=n[_].trim().replace(/'/g,'"'),i.parseDirective(n[_],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(n[_-3],n[_-4]);break;case 20:i.setNewReqId(n[_-2]);break;case 21:i.setNewReqText(n[_-2]);break;case 22:i.setNewReqRisk(n[_-2]);break;case 23:i.setNewReqVerifyMethod(n[_-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(n[_-3]);break;case 40:i.setNewElementType(n[_-2]);break;case 41:i.setNewElementDocRef(n[_-2]);break;case 44:i.addRelationship(n[_-2],n[_],n[_-4]);break;case 45:i.addRelationship(n[_-2],n[_-4],n[_]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:4,14:a,16:c,18:d,19:u},{1:[3]},{3:10,4:2,5:[1,9],6:t,9:4,14:a,16:c,18:d,19:u},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},e(p,[2,8]),{20:[2,9]},{3:16,4:2,6:t,9:4,14:a,16:c,18:d,19:u},{1:[2,2]},{4:21,5:h,7:17,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{11:34,12:[1,35],22:pe},e([12,22],[2,10]),e(p,[2,6]),e(p,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:h,7:38,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{4:21,5:h,7:39,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{4:21,5:h,7:40,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{4:21,5:h,7:41,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{4:21,5:h,7:42,8:o,9:4,14:a,16:c,18:d,19:u,23:18,24:19,25:20,26:23,32:25,40:g,41:R,42:v,43:S,44:T,45:x,53:A,71:N,72:w},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},e(F,[2,26]),e(F,[2,27]),e(F,[2,28]),e(F,[2,29]),e(F,[2,30]),e(F,[2,31]),e(_e,[2,55]),e(_e,[2,56]),e(p,[2,4]),{13:51,21:[1,52]},e(p,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:fe,65:ye,66:ge,67:Ee,68:Re,69:me,70:Ie},{61:63,64:fe,65:ye,66:ge,67:Ee,68:Re,69:me,70:Ie},{11:64,22:pe},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},e(O,[2,46]),e(O,[2,47]),e(O,[2,48]),e(O,[2,49]),e(O,[2,50]),e(O,[2,51]),e(O,[2,52]),{63:[1,68]},e(p,[2,5]),{5:M,29:69,30:P,33:Y,35:U,37:B,39:Q},{5:j,39:X,55:76,56:J,58:Z},{32:81,71:N,72:w},{32:82,71:N,72:w},e(m,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:M,29:87,30:P,33:Y,35:U,37:B,39:Q},e(m,[2,25]),e(m,[2,39]),{31:[1,88]},{31:[1,89]},{5:j,39:X,55:90,56:J,58:Z},e(m,[2,43]),e(m,[2,44]),e(m,[2,45]),{32:91,71:N,72:w},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},e(m,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},e(m,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:M,29:116,30:P,33:Y,35:U,37:B,39:Q},{5:M,29:117,30:P,33:Y,35:U,37:B,39:Q},{5:M,29:118,30:P,33:Y,35:U,37:B,39:Q},{5:M,29:119,30:P,33:Y,35:U,37:B,39:Q},{5:j,39:X,55:120,56:J,58:Z},{5:j,39:X,55:121,56:J,58:Z},e(m,[2,20]),e(m,[2,21]),e(m,[2,22]),e(m,[2,23]),e(m,[2,40]),e(m,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(r,s){if(s.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=s,l}},parse:function(r){var s=this,l=[0],i=[],f=[null],n=[],K=this.table,_="",ee=0,be=0,Le=2,ke=1,Oe=n.slice.call(arguments,1),E=Object.create(this.lexer),C={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(C.yy[se]=this.yy[se]);E.setInput(r,C.yy),C.yy.lexer=E,C.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ae=E.yylloc;n.push(ae);var Ce=E.options&&E.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function De(){var $;return $=i.pop()||E.lex()||ke,typeof $!="number"&&($ instanceof Array&&(i=$,$=i.pop()),$=s.symbols_[$]||$),$}for(var I,D,k,le,H={},te,V,Se,ie;;){if(D=l[l.length-1],this.defaultActions[D]?k=this.defaultActions[D]:((I===null||typeof I>"u")&&(I=De()),k=K[D]&&K[D][I]),typeof k>"u"||!k.length||!k[0]){var ce="";ie=[];for(te in K[D])this.terminals_[te]&&te>Le&&ie.push("'"+this.terminals_[te]+"'");E.showPosition?ce="Parse error on line "+(ee+1)+`: -`+E.showPosition()+` -Expecting `+ie.join(", ")+", got '"+(this.terminals_[I]||I)+"'":ce="Parse error on line "+(ee+1)+": Unexpected "+(I==ke?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(ce,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:ae,expected:ie})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+D+", token: "+I);switch(k[0]){case 1:l.push(I),f.push(E.yytext),n.push(E.yylloc),l.push(k[1]),I=null,be=E.yyleng,_=E.yytext,ee=E.yylineno,ae=E.yylloc;break;case 2:if(V=this.productions_[k[1]][1],H.$=f[f.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},Ce&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),le=this.performAction.apply(H,[_,be,ee,C.yy,k[1],f,n].concat(Oe)),typeof le<"u")return le;V&&(l=l.slice(0,-1*V*2),f=f.slice(0,-1*V),n=n.slice(0,-1*V)),l.push(this.productions_[k[1]][0]),f.push(H.$),n.push(H._$),Se=K[l[l.length-2]][l[l.length-1]],l.push(Se);break;case 3:return!0}}return!0}},qe=function(){var q={EOF:1,parseError:function(s,l){if(this.yy.parser)this.yy.parser.parseError(s,l);else throw new Error(s)},setInput:function(r,s){return this.yy=s||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},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var s=r.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var s=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var i=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),l.length-1&&(this.yylineno-=l.length-1);var f=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:l?(l.length===i.length?this.yylloc.first_column:0)+i[i.length-l.length].length-l[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var r=this.pastInput(),s=new Array(r.length+1).join("-");return r+this.upcomingInput()+` -`+s+"^"},test_match:function(r,s){var l,i,f;if(this.options.backtrack_lexer&&(f={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&&(f.yylloc.range=this.yylloc.range.slice(0))),i=r[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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],l=this.performAction.call(this,this.yy,this,s,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var n in f)this[n]=f[n];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,s,l,i;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),n=0;ns[0].length)){if(s=l,i=n,this.options.backtrack_lexer){if(r=this.test_match(l,f[n]),r!==!1)return r;if(this._backtrack){s=!1;continue}else return!1}else if(!this.options.flex)break}return s?(r=this.test_match(s,f[i]),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})},lex:function(){var s=this.next();return s||this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){var s=this.conditionStack.length-1;return s>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(s){return s=this.conditionStack.length-1-Math.abs(s||0),s>=0?this.conditionStack[s]:"INITIAL"},pushState:function(s){this.begin(s)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(s,l,i,f){switch(i){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:break;case 15:break;case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 53:this.popState();break;case 54:return"qString";case 55:return l.yytext=l.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/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,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,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,55],inclusive:!0}}};return q}();re.lexer=qe;function ne(){this.yy={}}return ne.prototype=re,re.Parser=ne,new ne}();he.parser=he;const Ge=he;let de=[],b={},G={},L={},z={};const ze={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},je={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},Xe={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Je={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Ze=function(e,t,a){Ue.parseDirective(this,e,t,a)},et=(e,t)=>(G[e]===void 0&&(G[e]={name:e,type:t,id:b.id,text:b.text,risk:b.risk,verifyMethod:b.verifyMethod}),b={},G[e]),tt=()=>G,it=e=>{b!==void 0&&(b.id=e)},rt=e=>{b!==void 0&&(b.text=e)},nt=e=>{b!==void 0&&(b.risk=e)},st=e=>{b!==void 0&&(b.verifyMethod=e)},at=e=>(z[e]===void 0&&(z[e]={name:e,type:L.type,docRef:L.docRef},xe.info("Added new requirement: ",e)),L={},z[e]),lt=()=>z,ct=e=>{L!==void 0&&(L.type=e)},ot=e=>{L!==void 0&&(L.docRef=e)},ht=(e,t,a)=>{de.push({type:e,src:t,dst:a})},ut=()=>de,dt=()=>{de=[],b={},G={},L={},z={},Be()},pt={RequirementType:ze,RiskLevel:je,VerifyType:Xe,Relationships:Je,parseDirective:Ze,getConfig:()=>ve().req,addRequirement:et,getRequirements:tt,setNewReqId:it,setNewReqText:rt,setNewReqRisk:nt,setNewReqVerifyMethod:st,setAccTitle:Fe,getAccTitle:Me,setAccDescription:Pe,getAccDescription:Ye,addElement:at,getElements:lt,setNewElementType:ct,setNewElementDocRef:ot,addRelationship:ht,getRelationships:ut,clear:dt},_t=e=>` - - marker { - fill: ${e.relationColor}; - stroke: ${e.relationColor}; - } - - marker.cross { - stroke: ${e.lineColor}; - } - - svg { - font-family: ${e.fontFamily}; - font-size: ${e.fontSize}; - } - - .reqBox { - fill: ${e.requirementBackground}; - fill-opacity: 1.0; - stroke: ${e.requirementBorderColor}; - stroke-width: ${e.requirementBorderSize}; - } - - .reqTitle, .reqLabel{ - fill: ${e.requirementTextColor}; - } - .reqLabelBox { - fill: ${e.relationLabelBackground}; - fill-opacity: 1.0; - } - - .req-title-line { - stroke: ${e.requirementBorderColor}; - stroke-width: ${e.requirementBorderSize}; - } - .relationshipLine { - stroke: ${e.relationColor}; - stroke-width: 1; - } - .relationshipLabel { - fill: ${e.relationLabelColor}; - } - -`,ft=_t,ue={CONTAINS:"contains",ARROW:"arrow"},yt=(e,t)=>{let a=e.append("defs").append("marker").attr("id",ue.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");a.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),a.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),a.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",ue.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 - L${t.line_height},${t.line_height/2} - M${t.line_height},${t.line_height/2} - L0,${t.line_height}`).attr("stroke-width",1)},Ae={ReqMarkers:ue,insertLineEndings:yt};let y={},Ne=0;const we=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",y.rect_min_width+"px").attr("height",y.rect_min_height+"px"),Ve=(e,t,a)=>{let c=y.rect_min_width/2,d=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",c).attr("y",y.rect_padding).attr("dominant-baseline","hanging"),u=0;a.forEach(g=>{u==0?d.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",0).text(g):d.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",y.line_height*.75).text(g),u++});let p=1.5*y.rect_padding,h=u*y.line_height*.75,o=p+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",y.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:d,y:o}},$e=(e,t,a,c)=>{let d=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",y.rect_padding).attr("y",c).attr("dominant-baseline","hanging"),u=0;const p=30;let h=[];return a.forEach(o=>{let g=o.length;for(;g>p&&u<3;){let R=o.substring(0,p);o=o.substring(p,o.length),g=o.length,h[h.length]=R,u++}if(u==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;u=0}),h.forEach(o=>{d.append("tspan").attr("x",y.rect_padding).attr("dy",y.line_height).text(o)}),d},gt=(e,t,a,c)=>{const d=t.node().getTotalLength(),u=t.node().getPointAtLength(d*.5),p="rel"+Ne;Ne++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",p).attr("x",u.x).attr("y",u.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(c).node().getBBox();e.insert("rect","#"+p).attr("class","req reqLabelBox").attr("x",u.x-o.width/2).attr("y",u.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},Et=function(e,t,a,c,d){const u=a.edge(W(t.src),W(t.dst)),p=Ke().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+c).attr("class","er relationshipLine").attr("d",p(u.points)).attr("fill","none");t.type==d.db.Relationships.CONTAINS?h.attr("marker-start","url("+Te.getUrl(y.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+Te.getUrl(y.arrowMarkerAbsolute)+"#"+Ae.ReqMarkers.ARROW+"_line_ending)")),gt(e,h,y,`<<${t.type}>>`)},Rt=(e,t,a)=>{Object.keys(e).forEach(c=>{let d=e[c];c=W(c),xe.info("Added new requirement: ",c);const u=a.append("g").attr("id",c),p="req-"+c,h=we(u,p);let o=Ve(u,c+"_title",[`<<${d.type}>>`,`${d.name}`]);$e(u,c+"_body",[`Id: ${d.id}`,`Text: ${d.text}`,`Risk: ${d.risk}`,`Verification: ${d.verifyMethod}`],o.y);const g=h.node().getBBox();t.setNode(c,{width:g.width,height:g.height,shape:"rect",id:c})})},mt=(e,t,a)=>{Object.keys(e).forEach(c=>{let d=e[c];const u=W(c),p=a.append("g").attr("id",u),h="element-"+u,o=we(p,h);let g=Ve(p,h+"_title",["<>",`${c}`]);$e(p,h+"_body",[`Type: ${d.type||"Not Specified"}`,`Doc Ref: ${d.docRef||"None"}`],g.y);const R=o.node().getBBox();t.setNode(u,{width:R.width,height:R.height,shape:"rect",id:u})})},It=(e,t)=>(e.forEach(function(a){let c=W(a.src),d=W(a.dst);t.setEdge(c,d,{relationship:a})}),e),bt=function(e,t){t.nodes().forEach(function(a){a!==void 0&&t.node(a)!==void 0&&(e.select("#"+a),e.select("#"+a).attr("transform","translate("+(t.node(a).x-t.node(a).width/2)+","+(t.node(a).y-t.node(a).height/2)+" )"))})},W=e=>e.replace(/\s/g,"").replace(/\./g,"_"),kt=(e,t,a,c)=>{y=ve().requirement,c.db.clear(),c.parser.parse(e);const d=y.securityLevel;let u;d==="sandbox"&&(u=oe("#i"+t));const h=(d==="sandbox"?oe(u.nodes()[0].contentDocument.body):oe("body")).select(`[id='${t}']`);Ae.insertLineEndings(h,y);const o=new He({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:y.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let g=c.db.getRequirements(),R=c.db.getElements(),v=c.db.getRelationships();Rt(g,o,h),mt(R,o,h),It(v,o),We(o),bt(h,o),v.forEach(function(N){Et(h,N,o,t,c)});const S=y.rect_padding,T=h.node().getBBox(),x=T.width+S*2,A=T.height+S*2;Qe(h,A,x,y.useMaxWidth),h.attr("viewBox",`${T.x-S} ${T.y-S} ${x} ${A}`)},St={draw:kt},Vt={parser:Ge,db:pt,renderer:St,styles:ft};export{Vt as diagram}; -//# sourceMappingURL=requirementDiagram-19c99588-nu0kgzn5.js.map diff --git a/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js.map b/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js.map deleted file mode 100644 index 3f67522..0000000 --- a/excalidraw/excalidraw-app/build/assets/requirementDiagram-19c99588-nu0kgzn5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"requirementDiagram-19c99588-nu0kgzn5.js","sources":["../../../node_modules/mermaid/dist/requirementDiagram-19c99588.js"],"sourcesContent":["import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, m as mermaidAPI, l as log, v as clear$1, i as configureSvgSize, e as common } from \"./mermaid-b0ad2de1.js\";\nimport { select, line } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], $V6 = [1, 22], $V7 = [2, 13], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 28], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 24], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 36], $Vi = [71, 72], $Vj = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], $Vk = [1, 56], $Vl = [1, 57], $Vm = [1, 58], $Vn = [1, 59], $Vo = [1, 60], $Vp = [1, 61], $Vq = [1, 62], $Vr = [62, 63], $Vs = [1, 74], $Vt = [1, 70], $Vu = [1, 71], $Vv = [1, 72], $Vw = [1, 73], $Vx = [1, 75], $Vy = [1, 79], $Vz = [1, 80], $VA = [1, 77], $VB = [1, 78], $VC = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"directive\": 4, \"NEWLINE\": 5, \"RD\": 6, \"diagram\": 7, \"EOF\": 8, \"openDirective\": 9, \"typeDirective\": 10, \"closeDirective\": 11, \":\": 12, \"argDirective\": 13, \"acc_title\": 14, \"acc_title_value\": 15, \"acc_descr\": 16, \"acc_descr_value\": 17, \"acc_descr_multiline_value\": 18, \"open_directive\": 19, \"type_directive\": 20, \"arg_directive\": 21, \"close_directive\": 22, \"requirementDef\": 23, \"elementDef\": 24, \"relationshipDef\": 25, \"requirementType\": 26, \"requirementName\": 27, \"STRUCT_START\": 28, \"requirementBody\": 29, \"ID\": 30, \"COLONSEP\": 31, \"id\": 32, \"TEXT\": 33, \"text\": 34, \"RISK\": 35, \"riskLevel\": 36, \"VERIFYMTHD\": 37, \"verifyType\": 38, \"STRUCT_STOP\": 39, \"REQUIREMENT\": 40, \"FUNCTIONAL_REQUIREMENT\": 41, \"INTERFACE_REQUIREMENT\": 42, \"PERFORMANCE_REQUIREMENT\": 43, \"PHYSICAL_REQUIREMENT\": 44, \"DESIGN_CONSTRAINT\": 45, \"LOW_RISK\": 46, \"MED_RISK\": 47, \"HIGH_RISK\": 48, \"VERIFY_ANALYSIS\": 49, \"VERIFY_DEMONSTRATION\": 50, \"VERIFY_INSPECTION\": 51, \"VERIFY_TEST\": 52, \"ELEMENT\": 53, \"elementName\": 54, \"elementBody\": 55, \"TYPE\": 56, \"type\": 57, \"DOCREF\": 58, \"ref\": 59, \"END_ARROW_L\": 60, \"relationship\": 61, \"LINE\": 62, \"END_ARROW_R\": 63, \"CONTAINS\": 64, \"COPIES\": 65, \"DERIVES\": 66, \"SATISFIES\": 67, \"VERIFIES\": 68, \"REFINES\": 69, \"TRACES\": 70, \"unqString\": 71, \"qString\": 72, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"NEWLINE\", 6: \"RD\", 8: \"EOF\", 12: \":\", 14: \"acc_title\", 15: \"acc_title_value\", 16: \"acc_descr\", 17: \"acc_descr_value\", 18: \"acc_descr_multiline_value\", 19: \"open_directive\", 20: \"type_directive\", 21: \"arg_directive\", 22: \"close_directive\", 28: \"STRUCT_START\", 30: \"ID\", 31: \"COLONSEP\", 33: \"TEXT\", 35: \"RISK\", 37: \"VERIFYMTHD\", 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\", 56: \"TYPE\", 58: \"DOCREF\", 60: \"END_ARROW_L\", 62: \"LINE\", 63: \"END_ARROW_R\", 64: \"CONTAINS\", 65: \"COPIES\", 66: \"DERIVES\", 67: \"SATISFIES\", 68: \"VERIFIES\", 69: \"REFINES\", 70: \"TRACES\", 71: \"unqString\", 72: \"qString\" },\n productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 7:\n case 8:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 9:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 10:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 11:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 12:\n yy.parseDirective(\"}%%\", \"close_directive\", \"pie\");\n break;\n case 13:\n this.$ = [];\n break;\n case 19:\n yy.addRequirement($$[$0 - 3], $$[$0 - 4]);\n break;\n case 20:\n yy.setNewReqId($$[$0 - 2]);\n break;\n case 21:\n yy.setNewReqText($$[$0 - 2]);\n break;\n case 22:\n yy.setNewReqRisk($$[$0 - 2]);\n break;\n case 23:\n yy.setNewReqVerifyMethod($$[$0 - 2]);\n break;\n case 26:\n this.$ = yy.RequirementType.REQUIREMENT;\n break;\n case 27:\n this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;\n break;\n case 28:\n this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;\n break;\n case 29:\n this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;\n break;\n case 30:\n this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;\n break;\n case 31:\n this.$ = yy.RequirementType.DESIGN_CONSTRAINT;\n break;\n case 32:\n this.$ = yy.RiskLevel.LOW_RISK;\n break;\n case 33:\n this.$ = yy.RiskLevel.MED_RISK;\n break;\n case 34:\n this.$ = yy.RiskLevel.HIGH_RISK;\n break;\n case 35:\n this.$ = yy.VerifyType.VERIFY_ANALYSIS;\n break;\n case 36:\n this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;\n break;\n case 37:\n this.$ = yy.VerifyType.VERIFY_INSPECTION;\n break;\n case 38:\n this.$ = yy.VerifyType.VERIFY_TEST;\n break;\n case 39:\n yy.addElement($$[$0 - 3]);\n break;\n case 40:\n yy.setNewElementType($$[$0 - 2]);\n break;\n case 41:\n yy.setNewElementDocRef($$[$0 - 2]);\n break;\n case 44:\n yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 45:\n yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 46:\n this.$ = yy.Relationships.CONTAINS;\n break;\n case 47:\n this.$ = yy.Relationships.COPIES;\n break;\n case 48:\n this.$ = yy.Relationships.DERIVES;\n break;\n case 49:\n this.$ = yy.Relationships.SATISFIES;\n break;\n case 50:\n this.$ = yy.Relationships.VERIFIES;\n break;\n case 51:\n this.$ = yy.Relationships.REFINES;\n break;\n case 52:\n this.$ = yy.Relationships.TRACES;\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, o($V5, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [2, 2] }, { 4: 21, 5: $V6, 7: 17, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 11: 34, 12: [1, 35], 22: $Vh }, o([12, 22], [2, 10]), o($V5, [2, 6]), o($V5, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: $V6, 7: 38, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 39, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 40, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 41, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 42, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, o($Vi, [2, 26]), o($Vi, [2, 27]), o($Vi, [2, 28]), o($Vi, [2, 29]), o($Vi, [2, 30]), o($Vi, [2, 31]), o($Vj, [2, 55]), o($Vj, [2, 56]), o($V5, [2, 4]), { 13: 51, 21: [1, 52] }, o($V5, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 61: 63, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 11: 64, 22: $Vh }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, o($Vr, [2, 46]), o($Vr, [2, 47]), o($Vr, [2, 48]), o($Vr, [2, 49]), o($Vr, [2, 50]), o($Vr, [2, 51]), o($Vr, [2, 52]), { 63: [1, 68] }, o($V5, [2, 5]), { 5: $Vs, 29: 69, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 76, 56: $VA, 58: $VB }, { 32: 81, 71: $Vf, 72: $Vg }, { 32: 82, 71: $Vf, 72: $Vg }, o($VC, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: $Vs, 29: 87, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, o($VC, [2, 25]), o($VC, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: $Vy, 39: $Vz, 55: 90, 56: $VA, 58: $VB }, o($VC, [2, 43]), o($VC, [2, 44]), o($VC, [2, 45]), { 32: 91, 71: $Vf, 72: $Vg }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, o($VC, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, o($VC, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: $Vs, 29: 116, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 117, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 118, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 119, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 120, 56: $VA, 58: $VB }, { 5: $Vy, 39: $Vz, 55: 121, 56: $VA, 58: $VB }, o($VC, [2, 20]), o($VC, [2, 21]), o($VC, [2, 22]), o($VC, [2, 23]), o($VC, [2, 40]), o($VC, [2, 41])],\n defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 19;\n case 1:\n this.begin(\"type_directive\");\n return 20;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 12;\n case 3:\n this.popState();\n this.popState();\n return 22;\n case 4:\n return 21;\n case 5:\n return \"title\";\n case 6:\n this.begin(\"acc_title\");\n return 14;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 16;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 5;\n case 14:\n break;\n case 15:\n break;\n case 16:\n break;\n case 17:\n return 8;\n case 18:\n return 6;\n case 19:\n return 28;\n case 20:\n return 39;\n case 21:\n return 31;\n case 22:\n return 30;\n case 23:\n return 33;\n case 24:\n return 35;\n case 25:\n return 37;\n case 26:\n return 40;\n case 27:\n return 41;\n case 28:\n return 42;\n case 29:\n return 43;\n case 30:\n return 44;\n case 31:\n return 45;\n case 32:\n return 46;\n case 33:\n return 47;\n case 34:\n return 48;\n case 35:\n return 49;\n case 36:\n return 50;\n case 37:\n return 51;\n case 38:\n return 52;\n case 39:\n return 53;\n case 40:\n return 64;\n case 41:\n return 65;\n case 42:\n return 66;\n case 43:\n return 67;\n case 44:\n return 68;\n case 45:\n return 69;\n case 46:\n return 70;\n case 47:\n return 56;\n case 48:\n return 58;\n case 49:\n return 60;\n case 50:\n return 63;\n case 51:\n return 62;\n case 52:\n this.begin(\"string\");\n break;\n case 53:\n this.popState();\n break;\n case 54:\n return \"qString\";\n case 55:\n yy_.yytext = yy_.yytext.trim();\n return 71;\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\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, /^(?:(\\r?\\n)+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\\b)/i, /^(?:\\{)/i, /^(?:\\})/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, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"close_directive\": { \"rules\": [], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"unqString\": { \"rules\": [], \"inclusive\": false }, \"token\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [53, 54], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 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, 55], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet relations = [];\nlet latestRequirement = {};\nlet requirements = {};\nlet latestElement = {};\nlet elements = {};\nconst RequirementType = {\n REQUIREMENT: \"Requirement\",\n FUNCTIONAL_REQUIREMENT: \"Functional Requirement\",\n INTERFACE_REQUIREMENT: \"Interface Requirement\",\n PERFORMANCE_REQUIREMENT: \"Performance Requirement\",\n PHYSICAL_REQUIREMENT: \"Physical Requirement\",\n DESIGN_CONSTRAINT: \"Design Constraint\"\n};\nconst RiskLevel = {\n LOW_RISK: \"Low\",\n MED_RISK: \"Medium\",\n HIGH_RISK: \"High\"\n};\nconst VerifyType = {\n VERIFY_ANALYSIS: \"Analysis\",\n VERIFY_DEMONSTRATION: \"Demonstration\",\n VERIFY_INSPECTION: \"Inspection\",\n VERIFY_TEST: \"Test\"\n};\nconst Relationships = {\n CONTAINS: \"contains\",\n COPIES: \"copies\",\n DERIVES: \"derives\",\n SATISFIES: \"satisfies\",\n VERIFIES: \"verifies\",\n REFINES: \"refines\",\n TRACES: \"traces\"\n};\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst addRequirement = (name, type) => {\n if (requirements[name] === void 0) {\n requirements[name] = {\n name,\n type,\n id: latestRequirement.id,\n text: latestRequirement.text,\n risk: latestRequirement.risk,\n verifyMethod: latestRequirement.verifyMethod\n };\n }\n latestRequirement = {};\n return requirements[name];\n};\nconst getRequirements = () => requirements;\nconst setNewReqId = (id) => {\n if (latestRequirement !== void 0) {\n latestRequirement.id = id;\n }\n};\nconst setNewReqText = (text) => {\n if (latestRequirement !== void 0) {\n latestRequirement.text = text;\n }\n};\nconst setNewReqRisk = (risk) => {\n if (latestRequirement !== void 0) {\n latestRequirement.risk = risk;\n }\n};\nconst setNewReqVerifyMethod = (verifyMethod) => {\n if (latestRequirement !== void 0) {\n latestRequirement.verifyMethod = verifyMethod;\n }\n};\nconst addElement = (name) => {\n if (elements[name] === void 0) {\n elements[name] = {\n name,\n type: latestElement.type,\n docRef: latestElement.docRef\n };\n log.info(\"Added new requirement: \", name);\n }\n latestElement = {};\n return elements[name];\n};\nconst getElements = () => elements;\nconst setNewElementType = (type) => {\n if (latestElement !== void 0) {\n latestElement.type = type;\n }\n};\nconst setNewElementDocRef = (docRef) => {\n if (latestElement !== void 0) {\n latestElement.docRef = docRef;\n }\n};\nconst addRelationship = (type, src, dst) => {\n relations.push({\n type,\n src,\n dst\n });\n};\nconst getRelationships = () => relations;\nconst clear = () => {\n relations = [];\n latestRequirement = {};\n requirements = {};\n latestElement = {};\n elements = {};\n clear$1();\n};\nconst db = {\n RequirementType,\n RiskLevel,\n VerifyType,\n Relationships,\n parseDirective,\n getConfig: () => getConfig().req,\n addRequirement,\n getRequirements,\n setNewReqId,\n setNewReqText,\n setNewReqRisk,\n setNewReqVerifyMethod,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addElement,\n getElements,\n setNewElementType,\n setNewElementDocRef,\n addRelationship,\n getRelationships,\n clear\n};\nconst getStyles = (options) => `\n\n marker {\n fill: ${options.relationColor};\n stroke: ${options.relationColor};\n }\n\n marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n .reqBox {\n fill: ${options.requirementBackground};\n fill-opacity: 1.0;\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${options.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${options.relationLabelBackground};\n fill-opacity: 1.0;\n }\n\n .req-title-line {\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${options.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${options.relationLabelColor};\n }\n\n`;\nconst styles = getStyles;\nconst ReqMarkers = {\n CONTAINS: \"contains\",\n ARROW: \"arrow\"\n};\nconst insertLineEndings = (parentNode, conf2) => {\n let containsNode = parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.CONTAINS + \"_line_ending\").attr(\"refX\", 0).attr(\"refY\", conf2.line_height / 2).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", conf2.line_height / 2).attr(\"cy\", conf2.line_height / 2).attr(\"r\", conf2.line_height / 2).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 0).attr(\"x2\", conf2.line_height).attr(\"y1\", conf2.line_height / 2).attr(\"y2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n containsNode.append(\"line\").attr(\"y1\", 0).attr(\"y2\", conf2.line_height).attr(\"x1\", conf2.line_height / 2).attr(\"x2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.ARROW + \"_line_ending\").attr(\"refX\", conf2.line_height).attr(\"refY\", 0.5 * conf2.line_height).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L${conf2.line_height},${conf2.line_height / 2}\n M${conf2.line_height},${conf2.line_height / 2}\n L0,${conf2.line_height}`\n ).attr(\"stroke-width\", 1);\n};\nconst markers = {\n ReqMarkers,\n insertLineEndings\n};\nlet conf = {};\nlet relCnt = 0;\nconst newRectNode = (parentNode, id) => {\n return parentNode.insert(\"rect\", \"#\" + id).attr(\"class\", \"req reqBox\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", conf.rect_min_width + \"px\").attr(\"height\", conf.rect_min_height + \"px\");\n};\nconst newTitleNode = (parentNode, id, txts) => {\n let x = conf.rect_min_width / 2;\n let title = parentNode.append(\"text\").attr(\"class\", \"req reqLabel reqTitle\").attr(\"id\", id).attr(\"x\", x).attr(\"y\", conf.rect_padding).attr(\"dominant-baseline\", \"hanging\");\n let i = 0;\n txts.forEach((textStr) => {\n if (i == 0) {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", 0).text(textStr);\n } else {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", conf.line_height * 0.75).text(textStr);\n }\n i++;\n });\n let yPadding = 1.5 * conf.rect_padding;\n let linePadding = i * conf.line_height * 0.75;\n let totalY = yPadding + linePadding;\n parentNode.append(\"line\").attr(\"class\", \"req-title-line\").attr(\"x1\", \"0\").attr(\"x2\", conf.rect_min_width).attr(\"y1\", totalY).attr(\"y2\", totalY);\n return {\n titleNode: title,\n y: totalY\n };\n};\nconst newBodyNode = (parentNode, id, txts, yStart) => {\n let body = parentNode.append(\"text\").attr(\"class\", \"req reqLabel\").attr(\"id\", id).attr(\"x\", conf.rect_padding).attr(\"y\", yStart).attr(\"dominant-baseline\", \"hanging\");\n let currentRow = 0;\n const charLimit = 30;\n let wrappedTxts = [];\n txts.forEach((textStr) => {\n let currentTextLen = textStr.length;\n while (currentTextLen > charLimit && currentRow < 3) {\n let firstPart = textStr.substring(0, charLimit);\n textStr = textStr.substring(charLimit, textStr.length);\n currentTextLen = textStr.length;\n wrappedTxts[wrappedTxts.length] = firstPart;\n currentRow++;\n }\n if (currentRow == 3) {\n let lastStr = wrappedTxts[wrappedTxts.length - 1];\n wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + \"...\";\n } else {\n wrappedTxts[wrappedTxts.length] = textStr;\n }\n currentRow = 0;\n });\n wrappedTxts.forEach((textStr) => {\n body.append(\"tspan\").attr(\"x\", conf.rect_padding).attr(\"dy\", conf.line_height).text(textStr);\n });\n return body;\n};\nconst addEdgeLabel = (parentNode, svgPath, conf2, txt) => {\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n relCnt++;\n const labelNode = parentNode.append(\"text\").attr(\"class\", \"req relationshipLabel\").attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(txt);\n const labelBBox = labelNode.node().getBBox();\n parentNode.insert(\"rect\", \"#\" + labelId).attr(\"class\", \"req reqLabelBox\").attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height).attr(\"fill\", \"white\").attr(\"fill-opacity\", \"85%\");\n};\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n const edge = g.edge(elementString(rel.src), elementString(rel.dst));\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n });\n const svgPath = svg.insert(\"path\", \"#\" + insert).attr(\"class\", \"er relationshipLine\").attr(\"d\", lineFunction(edge.points)).attr(\"fill\", \"none\");\n if (rel.type == diagObj.db.Relationships.CONTAINS) {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + rel.type + \"_line_ending)\"\n );\n } else {\n svgPath.attr(\"stroke-dasharray\", \"10,7\");\n svgPath.attr(\n \"marker-end\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + markers.ReqMarkers.ARROW + \"_line_ending)\"\n );\n }\n addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`);\n return;\n};\nconst drawReqs = (reqs, graph, svgNode) => {\n Object.keys(reqs).forEach((reqName) => {\n let req = reqs[reqName];\n reqName = elementString(reqName);\n log.info(\"Added new requirement: \", reqName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", reqName);\n const textId = \"req-\" + reqName;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, reqName + \"_title\", [\n `<<${req.type}>>`,\n `${req.name}`\n ]);\n newBodyNode(\n groupNode,\n reqName + \"_body\",\n [\n `Id: ${req.id}`,\n `Text: ${req.text}`,\n `Risk: ${req.risk}`,\n `Verification: ${req.verifyMethod}`\n ],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(reqName, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: reqName\n });\n });\n};\nconst drawElements = (els, graph, svgNode) => {\n Object.keys(els).forEach((elName) => {\n let el = els[elName];\n const id = elementString(elName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", id);\n const textId = \"element-\" + id;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, textId + \"_title\", [`<>`, `${elName}`]);\n newBodyNode(\n groupNode,\n textId + \"_body\",\n [`Type: ${el.type || \"Not Specified\"}`, `Doc Ref: ${el.docRef || \"None\"}`],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(id, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id\n });\n });\n};\nconst addRelationships = (relationships, g) => {\n relationships.forEach(function(r) {\n let src = elementString(r.src);\n let dst = elementString(r.dst);\n g.setEdge(src, dst, { relationship: r });\n });\n return relationships;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v);\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n return;\n};\nconst elementString = (str) => {\n return str.replace(/\\s/g, \"\").replace(/\\./g, \"_\");\n};\nconst draw = (text, id, _version, diagObj) => {\n conf = getConfig().requirement;\n diagObj.db.clear();\n diagObj.parser.parse(text);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n markers.insertLineEndings(svg, conf);\n const g = new graphlib.Graph({\n multigraph: false,\n compound: false,\n directed: true\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let requirements2 = diagObj.db.getRequirements();\n let elements2 = diagObj.db.getElements();\n let relationships = diagObj.db.getRelationships();\n drawReqs(requirements2, g, svg);\n drawElements(elements2, g, svg);\n addRelationships(relationships, g);\n layout(g);\n adjustEntities(svg, g);\n relationships.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, id, diagObj);\n });\n const padding = conf.rect_padding;\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","relations","latestRequirement","requirements","latestElement","elements","RequirementType","RiskLevel","VerifyType","Relationships","parseDirective","statement","context","type","mermaidAPI","addRequirement","name","getRequirements","setNewReqId","id","setNewReqText","text","setNewReqRisk","risk","setNewReqVerifyMethod","verifyMethod","addElement","log","getElements","setNewElementType","setNewElementDocRef","docRef","addRelationship","src","dst","getRelationships","clear","clear$1","db","getConfig","setAccTitle","getAccTitle","setAccDescription","getAccDescription","getStyles","options","styles","ReqMarkers","insertLineEndings","parentNode","conf2","containsNode","markers","conf","relCnt","newRectNode","newTitleNode","txts","x","title","textStr","yPadding","linePadding","totalY","newBodyNode","yStart","body","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","svgPath","txt","labelPoint","labelId","labelBBox","drawRelationshipFromLayout","svg","rel","g","insert","diagObj","edge","elementString","lineFunction","line","d","common","drawReqs","reqs","graph","svgNode","reqName","req","groupNode","textId","rectNode","titleNodeInfo","rectBBox","drawElements","els","elName","el","addRelationships","relationships","adjustEntities","draw","_version","securityLevel","sandboxElement","select","graphlib.Graph","requirements2","elements2","layout","padding","svgBounds","width","height","configureSvgSize","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js b/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js deleted file mode 100644 index a34b30e..0000000 --- a/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{var R,m,C;(R=Path2D.prototype).roundRect??(R.roundRect=P),globalThis.CanvasRenderingContext2D&&((m=globalThis.CanvasRenderingContext2D.prototype).roundRect??(m.roundRect=P)),globalThis.OffscreenCanvasRenderingContext2D&&((C=globalThis.OffscreenCanvasRenderingContext2D.prototype).roundRect??(C.roundRect=P));function P(t,s,u,a,o){if(![t,s,u,a].every(n=>Number.isFinite(n)))return;o=O(o);let e,r,i,h;if(o.length===4)e=l(o[0]),r=l(o[1]),i=l(o[2]),h=l(o[3]);else if(o.length===3)e=l(o[0]),r=l(o[1]),h=l(o[1]),i=l(o[2]);else if(o.length===2)e=l(o[0]),i=l(o[0]),r=l(o[1]),h=l(o[1]);else if(o.length===1)e=l(o[0]),r=l(o[0]),i=l(o[0]),h=l(o[0]);else throw new RangeError(`${b(this)} ${o.length} is not a valid size for radii sequence.`);const g=[e,r,i,h],p=g.find(({x:n,y:f})=>n<0||f<0);if((p==null?void 0:p.x)<0?p.x:p==null||p.y,g.some(({x:n,y:f})=>!Number.isFinite(n)||!Number.isFinite(f)))return;if(p)throw new RangeError(`${b(this)} Radius value ${p} is negative.`);v(g),u<0&&a<0?(this.moveTo(t-e.x,s),this.ellipse(t+u+r.x,s-r.y,r.x,r.y,0,-Math.PI*1.5,-Math.PI),this.ellipse(t+u+i.x,s+a+i.y,i.x,i.y,0,-Math.PI,-Math.PI/2),this.ellipse(t-h.x,s+a+h.y,h.x,h.y,0,-Math.PI/2,0),this.ellipse(t-e.x,s-e.y,e.x,e.y,0,0,-Math.PI/2)):u<0?(this.moveTo(t-e.x,s),this.ellipse(t+u+r.x,s+r.y,r.x,r.y,0,-Math.PI/2,-Math.PI,1),this.ellipse(t+u+i.x,s+a-i.y,i.x,i.y,0,-Math.PI,-Math.PI*1.5,1),this.ellipse(t-h.x,s+a-h.y,h.x,h.y,0,Math.PI/2,0,1),this.ellipse(t-e.x,s+e.y,e.x,e.y,0,0,-Math.PI/2,1)):a<0?(this.moveTo(t+e.x,s),this.ellipse(t+u-r.x,s-r.y,r.x,r.y,0,Math.PI/2,0,1),this.ellipse(t+u-i.x,s+a+i.y,i.x,i.y,0,0,-Math.PI/2,1),this.ellipse(t+h.x,s+a+h.y,h.x,h.y,0,-Math.PI/2,-Math.PI,1),this.ellipse(t+e.x,s-e.y,e.x,e.y,0,-Math.PI,-Math.PI*1.5,1)):(this.moveTo(t+e.x,s),this.ellipse(t+u-r.x,s+r.y,r.x,r.y,0,-Math.PI/2,0),this.ellipse(t+u-i.x,s+a-i.y,i.x,i.y,0,0,Math.PI/2),this.ellipse(t+h.x,s+a-h.y,h.x,h.y,0,Math.PI/2,Math.PI),this.ellipse(t+e.x,s+e.y,e.x,e.y,0,Math.PI,Math.PI*1.5)),this.closePath(),this.moveTo(t,s);function N(n){const{x:f,y:x,z:c,w:M}=n;return{x:f,y:x,z:c,w:M}}function O(n){const f=typeof n;return f==="undefined"||n===null?[0]:f==="function"?[NaN]:f==="object"?typeof n[Symbol.iterator]=="function"?[...n].map(x=>{const c=typeof x;return c==="undefined"||x===null?0:c==="function"?NaN:c==="object"?N(x):y(x)}):[N(n)]:[y(n)]}function y(n){return+n}function l(n){const f=y(n);return Number.isFinite(f)?{x:f,y:f}:Object(n)===n?{x:y(n.x??0),y:y(n.y??0)}:{x:NaN,y:NaN}}function v(n){const[f,x,c,M]=n,F=[Math.abs(u)/(f.x+x.x),Math.abs(a)/(x.y+c.y),Math.abs(u)/(c.x+M.x),Math.abs(a)/(f.y+M.y)],I=Math.min(...F);if(I<=1)for(const D of n)D.x*=I,D.y*=I}}function b(t){return`Failed to execute 'roundRect' on '${T(t)}':`}function T(t){return Object(t)===t&&t instanceof Path2D?"Path2D":t instanceof(globalThis==null?void 0:globalThis.CanvasRenderingContext2D)?"CanvasRenderingContext2D":t instanceof(globalThis==null?void 0:globalThis.OffscreenCanvasRenderingContext2D)?"OffscreenCanvasRenderingContext2D":(t==null?void 0:t.constructor.name)||t}})(); -//# sourceMappingURL=roundRect-CCyChLky.js.map diff --git a/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js.map b/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js.map deleted file mode 100644 index 91b95d3..0000000 --- a/excalidraw/excalidraw-app/build/assets/roundRect-CCyChLky.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"roundRect-CCyChLky.js","sources":["../../../node_modules/canvas-roundrect-polyfill/roundRect.js"],"sourcesContent":["/*\n * Implements the .roundRect() method of the CanvasPath mixin\n * as introduced by https://github.com/whatwg/html/pull/6765\n */\n(() => {\n\n \"use strict\";\n\n Path2D.prototype.roundRect ??= roundRect;\n if (globalThis.CanvasRenderingContext2D) {\n\n globalThis.CanvasRenderingContext2D.prototype.roundRect ??= roundRect;\n\n }\n if (globalThis.OffscreenCanvasRenderingContext2D) {\n\n globalThis.OffscreenCanvasRenderingContext2D.prototype.roundRect ??= roundRect;\n\n }\n\n function roundRect(x, y, w, h, radii) {\n\n if (!([x, y, w, h].every((input) => Number.isFinite(input)))) {\n\n return;\n\n }\n\n radii = parseRadiiArgument(radii);\n\n let upperLeft, upperRight, lowerRight, lowerLeft;\n\n if (radii.length === 4) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerRight = toCornerPoint(radii[2]);\n lowerLeft = toCornerPoint(radii[3]);\n\n } else if (radii.length === 3) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerLeft = toCornerPoint(radii[1]);\n lowerRight = toCornerPoint(radii[2]);\n\n } else if (radii.length === 2) {\n\n upperLeft = toCornerPoint(radii[0]);\n lowerRight = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerLeft = toCornerPoint(radii[1]);\n\n } else if (radii.length === 1) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[0]);\n lowerRight = toCornerPoint(radii[0]);\n lowerLeft = toCornerPoint(radii[0]);\n\n } else {\n\n throw new RangeError(`${ getErrorMessageHeader(this) } ${ radii.length } is not a valid size for radii sequence.`);\n\n }\n\n const corners = [upperLeft, upperRight, lowerRight, lowerLeft];\n const negativeCorner = corners.find(({x, y}) => x < 0 || y < 0);\n const negativeValue = negativeCorner?.x < 0 ? negativeCorner.x : negativeCorner?.y\n\n if (corners.some(({x, y}) => !Number.isFinite(x) || !Number.isFinite(y))) {\n\n return;\n\n }\n\n if (negativeCorner) {\n\n throw new RangeError(`${ getErrorMessageHeader(this) } Radius value ${ negativeCorner } is negative.`);\n\n }\n\n fixOverlappingCorners(corners);\n\n if (w < 0 && h < 0) {\n\n this.moveTo(x - upperLeft.x, y);\n this.ellipse(x + w + upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI * 1.5, -Math.PI);\n this.ellipse(x + w + lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI / 2);\n this.ellipse(x - lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, 0);\n this.ellipse(x - upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2);\n\n } else if (w < 0) {\n\n this.moveTo(x - upperLeft.x, y);\n this.ellipse(x + w + upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, -Math.PI, 1);\n this.ellipse(x + w + lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI * 1.5, 1);\n this.ellipse(x - lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, 0, 1);\n this.ellipse(x - upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2, 1);\n\n } else if (h < 0) {\n\n this.moveTo(x + upperLeft.x, y);\n this.ellipse(x + w - upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, Math.PI / 2, 0, 1);\n this.ellipse(x + w - lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, -Math.PI / 2, 1);\n this.ellipse(x + lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, -Math.PI, 1);\n this.ellipse(x + upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, -Math.PI, -Math.PI * 1.5, 1);\n\n } else {\n\n this.moveTo(x + upperLeft.x, y);\n this.ellipse(x + w - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, 0);\n this.ellipse(x + w - lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, Math.PI / 2);\n this.ellipse(x + lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, Math.PI);\n this.ellipse(x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, Math.PI, Math.PI * 1.5);\n\n }\n\n this.closePath();\n this.moveTo(x, y);\n\n function toDOMPointInit(value) {\n\n const {x, y, z, w} = value;\n return {x, y, z, w};\n\n }\n\n function parseRadiiArgument(value) {\n\n // https://webidl.spec.whatwg.org/#es-union\n // with 'optional (unrestricted double or DOMPointInit\n // or sequence<(unrestricted double or DOMPointInit)>) radii = 0'\n const type = typeof value;\n\n if (type === \"undefined\" || value === null) {\n\n return [0];\n\n }\n if (type === \"function\") {\n\n return [NaN];\n\n }\n if (type === \"object\") {\n\n if (typeof value[Symbol.iterator] === \"function\") {\n\n return [...value].map((elem) => {\n // https://webidl.spec.whatwg.org/#es-union\n // with '(unrestricted double or DOMPointInit)'\n const elemType = typeof elem;\n if (elemType === \"undefined\" || elem === null) {\n return 0;\n }\n if (elemType === \"function\") {\n return NaN;\n }\n if (elemType === \"object\") {\n return toDOMPointInit(elem);\n }\n return toUnrestrictedNumber(elem);\n });\n\n }\n\n return [toDOMPointInit(value)];\n\n }\n\n return [toUnrestrictedNumber(value)];\n\n }\n\n function toUnrestrictedNumber(value) {\n\n return +value;\n\n }\n\n function toCornerPoint(value) {\n\n const asNumber = toUnrestrictedNumber(value);\n if (Number.isFinite(asNumber)) {\n\n return {\n x: asNumber,\n y: asNumber\n };\n\n }\n if (Object(value) === value) {\n\n return {\n x: toUnrestrictedNumber(value.x ?? 0),\n y: toUnrestrictedNumber(value.y ?? 0)\n };\n\n }\n\n return {\n x: NaN,\n y: NaN\n };\n\n }\n\n function fixOverlappingCorners(corners) {\n\n const [upperLeft, upperRight, lowerRight, lowerLeft] = corners;\n const factors = [\n Math.abs(w) / (upperLeft.x + upperRight.x),\n Math.abs(h) / (upperRight.y + lowerRight.y),\n Math.abs(w) / (lowerRight.x + lowerLeft.x),\n Math.abs(h) / (upperLeft.y + lowerLeft.y)\n ];\n const minFactor = Math.min(...factors);\n if (minFactor <= 1) {\n\n for (const radii of corners) {\n\n radii.x *= minFactor;\n radii.y *= minFactor;\n\n }\n\n }\n\n }\n\n }\n\n function getErrorMessageHeader(instance) {\n\n return `Failed to execute 'roundRect' on '${ getConstructorName(instance) }':`;\n\n }\n\n function getConstructorName(instance) {\n\n return Object(instance) === instance &&\n instance instanceof Path2D ? \"Path2D\" :\n instance instanceof globalThis?.CanvasRenderingContext2D ? \"CanvasRenderingContext2D\" :\n instance instanceof globalThis?.OffscreenCanvasRenderingContext2D ? \"OffscreenCanvasRenderingContext2D\" :\n instance?.constructor.name ||\n instance;\n\n }\n\n})();\n"],"names":["_a","_b","_c","roundRect","x","y","w","h","radii","input","parseRadiiArgument","upperLeft","upperRight","lowerRight","lowerLeft","toCornerPoint","getErrorMessageHeader","corners","negativeCorner","fixOverlappingCorners","toDOMPointInit","value","z","type","elem","elemType","toUnrestrictedNumber","asNumber","factors","minFactor","instance","getConstructorName"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js b/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js deleted file mode 100644 index 3e7d9c1..0000000 --- a/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js +++ /dev/null @@ -1,2 +0,0 @@ -import{a1 as t,a2 as n,a3 as o}from"./index-jpNTxDe4.js";function r(e){return typeof e=="string"?new t([document.querySelectorAll(e)],[document.documentElement]):new t([o(e)],n)}export{r as s}; -//# sourceMappingURL=selectAll-ksDY_7eo.js.map diff --git a/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js.map b/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js.map deleted file mode 100644 index 5894536..0000000 --- a/excalidraw/excalidraw-app/build/assets/selectAll-ksDY_7eo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"selectAll-ksDY_7eo.js","sources":["../../../node_modules/d3-selection/src/selectAll.js"],"sourcesContent":["import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n"],"names":["selectAll","selector","Selection","array","root"],"mappings":"yDAGe,SAAQA,EAACC,EAAU,CAChC,OAAO,OAAOA,GAAa,SACrB,IAAIC,EAAU,CAAC,SAAS,iBAAiBD,CAAQ,CAAC,EAAG,CAAC,SAAS,eAAe,CAAC,EAC/E,IAAIC,EAAU,CAACC,EAAMF,CAAQ,CAAC,EAAGG,CAAI,CAC7C","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js b/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js deleted file mode 100644 index e3744cf..0000000 --- a/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js +++ /dev/null @@ -1,123 +0,0 @@ -import{g as me,x as ve,v as we,c as lt,s as te,b as _e,a as ke,m as Pe,z as Le,l as K,d as Lt,j as w,e as Ie,h as Pt,i as Ne,y as C,n as ee,aq as ie,aF as Ae,aG as Se}from"./index-jpNTxDe4.js";import{d as Me,a as Re,g as It,b as De,c as Ve,e as zt}from"./svgDrawCommon-f26cad39-uSOEV6F1.js";import{s as Ce}from"./selectAll-ksDY_7eo.js";import"./index-2K3MavtT.js";var Bt=function(){var t=function(ot,b,_,P){for(_=_||{},P=ot.length;P--;_[ot[P]]=b);return _},e=[1,2],r=[1,3],i=[1,5],s=[1,7],n=[2,5],c=[1,15],l=[1,17],p=[1,19],d=[1,21],T=[1,22],y=[1,23],u=[1,29],x=[1,30],m=[1,31],L=[1,32],A=[1,33],M=[1,34],I=[1,35],Y=[1,36],V=[1,37],H=[1,38],G=[1,39],W=[1,40],O=[1,41],X=[1,43],F=[1,44],q=[1,46],U=[1,47],J=[1,48],Z=[1,49],v=[1,50],E=[1,51],j=[1,54],k=[1,4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,52,53,54,55,57,58,63,64,65,66,74,84],N=[4,5,21,55,57],vt=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,55,57,58,63,64,65,66,74,84],Gt=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,54,55,57,58,63,64,65,66,74,84],St=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,53,55,57,58,63,64,65,66,74,84],Xt=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,52,55,57,58,63,64,65,66,74,84],rt=[72,73,74],it=[1,128],Jt=[1,4,5,7,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,52,53,54,55,57,58,63,64,65,66,74,84],Mt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,box:19,restOfLine:20,end:21,signal:22,autonumber:23,NUM:24,off:25,activate:26,actor:27,deactivate:28,note_statement:29,links_statement:30,link_statement:31,properties_statement:32,details_statement:33,title:34,legacy_title:35,acc_title:36,acc_title_value:37,acc_descr:38,acc_descr_value:39,acc_descr_multiline_value:40,loop:41,rect:42,opt:43,alt:44,else_sections:45,par:46,par_sections:47,par_over:48,critical:49,option_sections:50,break:51,option:52,and:53,else:54,participant:55,AS:56,participant_actor:57,note:58,placement:59,text2:60,over:61,actor_pair:62,links:63,link:64,properties:65,details:66,spaceList:67,",":68,left_of:69,right_of:70,signaltype:71,"+":72,"-":73,ACTOR:74,SOLID_OPEN_ARROW:75,DOTTED_OPEN_ARROW:76,SOLID_ARROW:77,DOTTED_ARROW:78,SOLID_CROSS:79,DOTTED_CROSS:80,SOLID_POINT:81,DOTTED_POINT:82,TXT:83,open_directive:84,type_directive:85,arg_directive:86,close_directive:87,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"box",20:"restOfLine",21:"end",23:"autonumber",24:"NUM",25:"off",26:"activate",28:"deactivate",34:"title",35:"legacy_title",36:"acc_title",37:"acc_title_value",38:"acc_descr",39:"acc_descr_value",40:"acc_descr_multiline_value",41:"loop",42:"rect",43:"opt",44:"alt",46:"par",48:"par_over",49:"critical",51:"break",52:"option",53:"and",54:"else",55:"participant",56:"AS",57:"participant_actor",58:"note",61:"over",63:"links",64:"link",65:"properties",66:"details",68:",",69:"left_of",70:"right_of",72:"+",73:"-",74:"ACTOR",75:"SOLID_OPEN_ARROW",76:"DOTTED_OPEN_ARROW",77:"SOLID_ARROW",78:"DOTTED_ARROW",79:"SOLID_CROSS",80:"DOTTED_CROSS",81:"SOLID_POINT",82:"DOTTED_POINT",83:"TXT",84:"open_directive",85:"type_directive",86:"arg_directive",87:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[50,1],[50,4],[47,1],[47,4],[45,1],[45,4],[13,5],[13,3],[13,5],[13,3],[29,4],[29,4],[30,3],[31,3],[32,3],[33,3],[67,2],[67,1],[62,3],[62,1],[59,1],[59,1],[22,5],[22,5],[22,4],[27,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[60,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(b,_,P,g,S,o,yt){var h=o.length-1;switch(S){case 4:return g.apply(o[h]),o[h];case 5:case 10:this.$=[];break;case 6:case 11:o[h-1].push(o[h]),this.$=o[h-1];break;case 7:case 8:case 12:case 13:this.$=o[h];break;case 9:case 14:this.$=[];break;case 18:o[h-1].unshift({type:"boxStart",boxData:g.parseBoxData(o[h-2])}),o[h-1].push({type:"boxEnd",boxText:o[h-2]}),this.$=o[h-1];break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(o[h-2]),sequenceIndexStep:Number(o[h-1]),sequenceVisible:!0,signalType:g.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(o[h-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:g.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:g.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:g.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"activeStart",signalType:g.LINETYPE.ACTIVE_START,actor:o[h-1]};break;case 25:this.$={type:"activeEnd",signalType:g.LINETYPE.ACTIVE_END,actor:o[h-1]};break;case 31:g.setDiagramTitle(o[h].substring(6)),this.$=o[h].substring(6);break;case 32:g.setDiagramTitle(o[h].substring(7)),this.$=o[h].substring(7);break;case 33:this.$=o[h].trim(),g.setAccTitle(this.$);break;case 34:case 35:this.$=o[h].trim(),g.setAccDescription(this.$);break;case 36:o[h-1].unshift({type:"loopStart",loopText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.LOOP_START}),o[h-1].push({type:"loopEnd",loopText:o[h-2],signalType:g.LINETYPE.LOOP_END}),this.$=o[h-1];break;case 37:o[h-1].unshift({type:"rectStart",color:g.parseMessage(o[h-2]),signalType:g.LINETYPE.RECT_START}),o[h-1].push({type:"rectEnd",color:g.parseMessage(o[h-2]),signalType:g.LINETYPE.RECT_END}),this.$=o[h-1];break;case 38:o[h-1].unshift({type:"optStart",optText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.OPT_START}),o[h-1].push({type:"optEnd",optText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.OPT_END}),this.$=o[h-1];break;case 39:o[h-1].unshift({type:"altStart",altText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.ALT_START}),o[h-1].push({type:"altEnd",signalType:g.LINETYPE.ALT_END}),this.$=o[h-1];break;case 40:o[h-1].unshift({type:"parStart",parText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.PAR_START}),o[h-1].push({type:"parEnd",signalType:g.LINETYPE.PAR_END}),this.$=o[h-1];break;case 41:o[h-1].unshift({type:"parStart",parText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.PAR_OVER_START}),o[h-1].push({type:"parEnd",signalType:g.LINETYPE.PAR_END}),this.$=o[h-1];break;case 42:o[h-1].unshift({type:"criticalStart",criticalText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.CRITICAL_START}),o[h-1].push({type:"criticalEnd",signalType:g.LINETYPE.CRITICAL_END}),this.$=o[h-1];break;case 43:o[h-1].unshift({type:"breakStart",breakText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.BREAK_START}),o[h-1].push({type:"breakEnd",optText:g.parseMessage(o[h-2]),signalType:g.LINETYPE.BREAK_END}),this.$=o[h-1];break;case 46:this.$=o[h-3].concat([{type:"option",optionText:g.parseMessage(o[h-1]),signalType:g.LINETYPE.CRITICAL_OPTION},o[h]]);break;case 48:this.$=o[h-3].concat([{type:"and",parText:g.parseMessage(o[h-1]),signalType:g.LINETYPE.PAR_AND},o[h]]);break;case 50:this.$=o[h-3].concat([{type:"else",altText:g.parseMessage(o[h-1]),signalType:g.LINETYPE.ALT_ELSE},o[h]]);break;case 51:o[h-3].type="addParticipant",o[h-3].description=g.parseMessage(o[h-1]),this.$=o[h-3];break;case 52:o[h-1].type="addParticipant",this.$=o[h-1];break;case 53:o[h-3].type="addActor",o[h-3].description=g.parseMessage(o[h-1]),this.$=o[h-3];break;case 54:o[h-1].type="addActor",this.$=o[h-1];break;case 55:this.$=[o[h-1],{type:"addNote",placement:o[h-2],actor:o[h-1].actor,text:o[h]}];break;case 56:o[h-2]=[].concat(o[h-1],o[h-1]).slice(0,2),o[h-2][0]=o[h-2][0].actor,o[h-2][1]=o[h-2][1].actor,this.$=[o[h-1],{type:"addNote",placement:g.PLACEMENT.OVER,actor:o[h-2].slice(0,2),text:o[h]}];break;case 57:this.$=[o[h-1],{type:"addLinks",actor:o[h-1].actor,text:o[h]}];break;case 58:this.$=[o[h-1],{type:"addALink",actor:o[h-1].actor,text:o[h]}];break;case 59:this.$=[o[h-1],{type:"addProperties",actor:o[h-1].actor,text:o[h]}];break;case 60:this.$=[o[h-1],{type:"addDetails",actor:o[h-1].actor,text:o[h]}];break;case 63:this.$=[o[h-2],o[h]];break;case 64:this.$=o[h];break;case 65:this.$=g.PLACEMENT.LEFTOF;break;case 66:this.$=g.PLACEMENT.RIGHTOF;break;case 67:this.$=[o[h-4],o[h-1],{type:"addMessage",from:o[h-4].actor,to:o[h-1].actor,signalType:o[h-3],msg:o[h]},{type:"activeStart",signalType:g.LINETYPE.ACTIVE_START,actor:o[h-1]}];break;case 68:this.$=[o[h-4],o[h-1],{type:"addMessage",from:o[h-4].actor,to:o[h-1].actor,signalType:o[h-3],msg:o[h]},{type:"activeEnd",signalType:g.LINETYPE.ACTIVE_END,actor:o[h-4]}];break;case 69:this.$=[o[h-3],o[h-1],{type:"addMessage",from:o[h-3].actor,to:o[h-1].actor,signalType:o[h-2],msg:o[h]}];break;case 70:this.$={type:"addParticipant",actor:o[h]};break;case 71:this.$=g.LINETYPE.SOLID_OPEN;break;case 72:this.$=g.LINETYPE.DOTTED_OPEN;break;case 73:this.$=g.LINETYPE.SOLID;break;case 74:this.$=g.LINETYPE.DOTTED;break;case 75:this.$=g.LINETYPE.SOLID_CROSS;break;case 76:this.$=g.LINETYPE.DOTTED_CROSS;break;case 77:this.$=g.LINETYPE.SOLID_POINT;break;case 78:this.$=g.LINETYPE.DOTTED_POINT;break;case 79:this.$=g.parseMessage(o[h].trim().substring(1));break;case 80:g.parseDirective("%%{","open_directive");break;case 81:g.parseDirective(o[h],"type_directive");break;case 82:o[h]=o[h].trim().replace(/'/g,'"'),g.parseDirective(o[h],"arg_directive");break;case 83:g.parseDirective("}%%","close_directive","sequence");break}},table:[{3:1,4:e,5:r,6:4,7:i,14:6,84:s},{1:[3]},{3:8,4:e,5:r,6:4,7:i,14:6,84:s},{3:9,4:e,5:r,6:4,7:i,14:6,84:s},{3:10,4:e,5:r,6:4,7:i,14:6,84:s},t([1,4,5,19,23,26,28,34,35,36,38,40,41,42,43,44,46,48,49,51,55,57,58,63,64,65,66,74,84],n,{8:11}),{15:12,85:[1,13]},{85:[2,80]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{16:52,17:[1,53],87:j},t([17,87],[2,81]),t(k,[2,6]),{6:42,10:55,13:18,14:6,19:p,22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},t(k,[2,8]),t(k,[2,9]),t(k,[2,17]),{20:[1,56]},{5:[1,57]},{5:[1,60],24:[1,58],25:[1,59]},{27:61,74:E},{27:62,74:E},{5:[1,63]},{5:[1,64]},{5:[1,65]},{5:[1,66]},{5:[1,67]},t(k,[2,31]),t(k,[2,32]),{37:[1,68]},{39:[1,69]},t(k,[2,35]),{20:[1,70]},{20:[1,71]},{20:[1,72]},{20:[1,73]},{20:[1,74]},{20:[1,75]},{20:[1,76]},{20:[1,77]},t(k,[2,44]),{27:78,74:E},{27:79,74:E},{71:80,75:[1,81],76:[1,82],77:[1,83],78:[1,84],79:[1,85],80:[1,86],81:[1,87],82:[1,88]},{59:89,61:[1,90],69:[1,91],70:[1,92]},{27:93,74:E},{27:94,74:E},{27:95,74:E},{27:96,74:E},t([5,56,68,75,76,77,78,79,80,81,82,83],[2,70]),{5:[1,97]},{18:98,86:[1,99]},{5:[2,83]},t(k,[2,7]),t(N,[2,10],{11:100}),t(k,[2,19]),{5:[1,102],24:[1,101]},{5:[1,103]},t(k,[2,23]),{5:[1,104]},{5:[1,105]},t(k,[2,26]),t(k,[2,27]),t(k,[2,28]),t(k,[2,29]),t(k,[2,30]),t(k,[2,33]),t(k,[2,34]),t(vt,n,{8:106}),t(vt,n,{8:107}),t(vt,n,{8:108}),t(Gt,n,{45:109,8:110}),t(St,n,{47:111,8:112}),t(St,n,{8:112,47:113}),t(Xt,n,{50:114,8:115}),t(vt,n,{8:116}),{5:[1,118],56:[1,117]},{5:[1,120],56:[1,119]},{27:123,72:[1,121],73:[1,122],74:E},t(rt,[2,71]),t(rt,[2,72]),t(rt,[2,73]),t(rt,[2,74]),t(rt,[2,75]),t(rt,[2,76]),t(rt,[2,77]),t(rt,[2,78]),{27:124,74:E},{27:126,62:125,74:E},{74:[2,65]},{74:[2,66]},{60:127,83:it},{60:129,83:it},{60:130,83:it},{60:131,83:it},t(Jt,[2,15]),{16:132,87:j},{87:[2,82]},{4:[1,135],5:[1,137],12:134,13:136,21:[1,133],55:X,57:F},{5:[1,138]},t(k,[2,21]),t(k,[2,22]),t(k,[2,24]),t(k,[2,25]),{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[1,139],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[1,140],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[1,141],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{21:[1,142]},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[2,49],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,54:[1,143],55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{21:[1,144]},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[2,47],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,53:[1,145],55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{21:[1,146]},{21:[1,147]},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[2,45],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,52:[1,148],55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{4:c,5:l,6:42,9:14,10:16,13:18,14:6,19:p,21:[1,149],22:20,23:d,26:T,27:45,28:y,29:24,30:25,31:26,32:27,33:28,34:u,35:x,36:m,38:L,40:A,41:M,42:I,43:Y,44:V,46:H,48:G,49:W,51:O,55:X,57:F,58:q,63:U,64:J,65:Z,66:v,74:E,84:s},{20:[1,150]},t(k,[2,52]),{20:[1,151]},t(k,[2,54]),{27:152,74:E},{27:153,74:E},{60:154,83:it},{60:155,83:it},{60:156,83:it},{68:[1,157],83:[2,64]},{5:[2,57]},{5:[2,79]},{5:[2,58]},{5:[2,59]},{5:[2,60]},{5:[1,158]},t(k,[2,18]),t(N,[2,11]),{13:159,55:X,57:F},t(N,[2,13]),t(N,[2,14]),t(k,[2,20]),t(k,[2,36]),t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),{20:[1,160]},t(k,[2,40]),{20:[1,161]},t(k,[2,41]),t(k,[2,42]),{20:[1,162]},t(k,[2,43]),{5:[1,163]},{5:[1,164]},{60:165,83:it},{60:166,83:it},{5:[2,69]},{5:[2,55]},{5:[2,56]},{27:167,74:E},t(Jt,[2,16]),t(N,[2,12]),t(Gt,n,{8:110,45:168}),t(St,n,{8:112,47:169}),t(Xt,n,{8:115,50:170}),t(k,[2,51]),t(k,[2,53]),{5:[2,67]},{5:[2,68]},{83:[2,63]},{21:[2,50]},{21:[2,48]},{21:[2,46]}],defaultActions:{7:[2,80],8:[2,1],9:[2,2],10:[2,3],54:[2,83],91:[2,65],92:[2,66],99:[2,82],127:[2,57],128:[2,79],129:[2,58],130:[2,59],131:[2,60],154:[2,69],155:[2,55],156:[2,56],165:[2,67],166:[2,68],167:[2,63],168:[2,50],169:[2,48],170:[2,46]},parseError:function(b,_){if(_.recoverable)this.trace(b);else{var P=new Error(b);throw P.hash=_,P}},parse:function(b){var _=this,P=[0],g=[],S=[null],o=[],yt=this.table,h="",wt=0,Zt=0,Te=2,Qt=1,ye=o.slice.call(arguments,1),B=Object.create(this.lexer),ht={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(ht.yy[Dt]=this.yy[Dt]);B.setInput(b,ht.yy),ht.yy.lexer=B,ht.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var Vt=B.yylloc;o.push(Vt);var Ee=B.options&&B.options.ranges;typeof ht.yy.parseError=="function"?this.parseError=ht.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function be(){var nt;return nt=g.pop()||B.lex()||Qt,typeof nt!="number"&&(nt instanceof Array&&(g=nt,nt=g.pop()),nt=_.symbols_[nt]||nt),nt}for(var z,dt,Q,Ct,ft={},_t,st,jt,kt;;){if(dt=P[P.length-1],this.defaultActions[dt]?Q=this.defaultActions[dt]:((z===null||typeof z>"u")&&(z=be()),Q=yt[dt]&&yt[dt][z]),typeof Q>"u"||!Q.length||!Q[0]){var Ot="";kt=[];for(_t in yt[dt])this.terminals_[_t]&&_t>Te&&kt.push("'"+this.terminals_[_t]+"'");B.showPosition?Ot="Parse error on line "+(wt+1)+`: -`+B.showPosition()+` -Expecting `+kt.join(", ")+", got '"+(this.terminals_[z]||z)+"'":Ot="Parse error on line "+(wt+1)+": Unexpected "+(z==Qt?"end of input":"'"+(this.terminals_[z]||z)+"'"),this.parseError(Ot,{text:B.match,token:this.terminals_[z]||z,line:B.yylineno,loc:Vt,expected:kt})}if(Q[0]instanceof Array&&Q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+dt+", token: "+z);switch(Q[0]){case 1:P.push(z),S.push(B.yytext),o.push(B.yylloc),P.push(Q[1]),z=null,Zt=B.yyleng,h=B.yytext,wt=B.yylineno,Vt=B.yylloc;break;case 2:if(st=this.productions_[Q[1]][1],ft.$=S[S.length-st],ft._$={first_line:o[o.length-(st||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(st||1)].first_column,last_column:o[o.length-1].last_column},Ee&&(ft._$.range=[o[o.length-(st||1)].range[0],o[o.length-1].range[1]]),Ct=this.performAction.apply(ft,[h,Zt,wt,ht.yy,Q[1],S,o].concat(ye)),typeof Ct<"u")return Ct;st&&(P=P.slice(0,-1*st*2),S=S.slice(0,-1*st),o=o.slice(0,-1*st)),P.push(this.productions_[Q[1]][0]),S.push(ft.$),o.push(ft._$),jt=yt[P[P.length-2]][P[P.length-1]],P.push(jt);break;case 3:return!0}}return!0}},xe=function(){var ot={EOF:1,parseError:function(_,P){if(this.yy.parser)this.yy.parser.parseError(_,P);else throw new Error(_)},setInput:function(b,_){return this.yy=_||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},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var _=b.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),b},unput:function(b){var _=b.length,P=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var g=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),P.length-1&&(this.yylineno-=P.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:P?(P.length===g.length?this.yylloc.first_column:0)+g[g.length-P.length].length-P[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var b=this.pastInput(),_=new Array(b.length+1).join("-");return b+this.upcomingInput()+` -`+_+"^"},test_match:function(b,_){var P,g,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))),g=b[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.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],P=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),P)return P;if(this._backtrack){for(var o in S)this[o]=S[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,_,P,g;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),o=0;o_[0].length)){if(_=P,g=o,this.options.backtrack_lexer){if(b=this.test_match(P,S[o]),b!==!1)return b;if(this._backtrack){_=!1;continue}else return!1}else if(!this.options.flex)break}return _?(b=this.test_match(_,S[g]),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})},lex:function(){var _=this.next();return _||this.lex()},begin:function(_){this.conditionStack.push(_)},popState:function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},pushState:function(_){this.begin(_)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(_,P,g,S){switch(g){case 0:return this.begin("open_directive"),84;case 1:return this.begin("type_directive"),85;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),87;case 4:return 86;case 5:return 5;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),55;case 14:return this.begin("ID"),57;case 15:return P.yytext=P.yytext.trim(),this.begin("ALIAS"),74;case 16:return this.popState(),this.popState(),this.begin("LINE"),56;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),54;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),48;case 25:return this.begin("LINE"),53;case 26:return this.begin("LINE"),49;case 27:return this.begin("LINE"),52;case 28:return this.begin("LINE"),51;case 29:return this.popState(),20;case 30:return 21;case 31:return 69;case 32:return 70;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 66;case 37:return 61;case 38:return 58;case 39:return this.begin("ID"),26;case 40:return this.begin("ID"),28;case 41:return 34;case 42:return 35;case 43:return this.begin("acc_title"),36;case 44:return this.popState(),"acc_title_value";case 45:return this.begin("acc_descr"),38;case 46:return this.popState(),"acc_descr_value";case 47:this.begin("acc_descr_multiline");break;case 48:this.popState();break;case 49:return"acc_descr_multiline_value";case 50:return 7;case 51:return 23;case 52:return 25;case 53:return 68;case 54:return 5;case 55:return P.yytext=P.yytext.trim(),74;case 56:return 77;case 57:return 78;case 58:return 75;case 59:return 76;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 83;case 65:return 72;case 66:return 73;case 67:return 5;case 68:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/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,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[48,49],inclusive:!1},acc_descr:{rules:[46],inclusive:!1},acc_title:{rules:[44],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,15],inclusive:!1},ALIAS:{rules:[7,8,16,17],inclusive:!1},LINE:{rules:[7,8,29],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,47,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68],inclusive:!0}}};return ot}();Mt.lexer=xe;function Rt(){this.yy={}}return Rt.prototype=Mt,Mt.Parser=Rt,new Rt}();Bt.parser=Bt;const Oe=Bt;let Et,ct={},xt=[],$=[],Nt=!1,Yt,at;const Be=function(t,e,r){Pe.parseDirective(this,t,e,r)},Ye=function(t){xt.push({name:t.text,wrap:t.wrap===void 0&&pt()||!!t.wrap,fill:t.color,actorKeys:[]}),at=xt.slice(-1)[0]},Ft=function(t,e,r,i){let s=at;const n=ct[t];if(n){if(at&&n.box&&at!==n.box)throw new Error("A same participant should only be defined in one Box: "+n.name+" can't be in '"+n.box.name+"' and in '"+at.name+"' at the same time.");if(s=n.box?n.box:at,n.box=s,n&&e===n.name&&r==null)return}(r==null||r.text==null)&&(r={text:e,wrap:null,type:i}),(i==null||r.text==null)&&(r={text:e,wrap:null,type:i}),ct[t]={box:s,name:e,description:r.text,wrap:r.wrap===void 0&&pt()||!!r.wrap,prevActor:Et,links:{},properties:{},actorCnt:null,rectData:null,type:i||"participant"},Et&&ct[Et]&&(ct[Et].nextActor=t),at&&at.actorKeys.push(t),Et=t},Fe=t=>{let e,r=0;for(e=0;e<$.length;e++)$[e].type===bt.ACTIVE_START&&$[e].from.actor===t&&r++,$[e].type===bt.ACTIVE_END&&$[e].from.actor===t&&r--;return r},We=function(t,e,r,i){$.push({from:t,to:e,message:r.text,wrap:r.wrap===void 0&&pt()||!!r.wrap,answer:i})},R=function(t,e,r={text:void 0,wrap:void 0},i){if(i===bt.ACTIVE_END&&Fe(t.actor)<1){let n=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw n.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},n}return $.push({from:t,to:e,message:r.text,wrap:r.wrap===void 0&&pt()||!!r.wrap,type:i}),!0},qe=function(){return xt.length>0},ze=function(){return xt.some(t=>t.name)},He=function(){return $},Ue=function(){return xt},Ke=function(){return ct},mt=function(t){return ct[t]},Ge=function(){return Object.keys(ct)},Xe=function(){Nt=!0},Je=function(){Nt=!1},Ze=()=>Nt,Qe=function(t){Yt=t},pt=()=>Yt!==void 0?Yt:lt().sequence.wrap,je=function(){ct={},xt=[],$=[],Nt=!1,Le()},$e=function(t){const e=t.trim(),r={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return K.debug("parseMessage:",r),r},t0=function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let r=e!=null&&e[1]?e[1].trim():"transparent",i=e!=null&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",r)||(r="transparent",i=t.trim());else{const n=new Option().style;n.color=r,n.color!==r&&(r="transparent",i=t.trim())}return{color:r,text:i!==void 0?Lt(i.replace(/^:?(?:no)?wrap:/,""),lt()):void 0,wrap:i!==void 0?i.match(/^:?wrap:/)!==null?!0:i.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},bt={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},e0={FILLED:0,OPEN:1},i0={LEFTOF:0,RIGHTOF:1,OVER:2},se=function(t,e,r){r.text,r.wrap===void 0&&pt()||r.wrap;const i=[].concat(t,t);$.push({from:i[0],to:i[1],message:r.text,wrap:r.wrap===void 0&&pt()||!!r.wrap,type:bt.NOTE,placement:e})},ne=function(t,e){const r=mt(t);try{let i=Lt(e.text,lt());i=i.replace(/&/g,"&"),i=i.replace(/=/g,"=");const s=JSON.parse(i);Ht(r,s)}catch(i){K.error("error while parsing actor link text",i)}},s0=function(t,e){const r=mt(t);try{const c={};let l=Lt(e.text,lt());var i=l.indexOf("@");l=l.replace(/&/g,"&"),l=l.replace(/=/g,"=");var s=l.slice(0,i-1).trim(),n=l.slice(i+1).trim();c[s]=n,Ht(r,c)}catch(c){K.error("error while parsing actor link text",c)}};function Ht(t,e){if(t.links==null)t.links=e;else for(let r in e)t.links[r]=e[r]}const ae=function(t,e){const r=mt(t);try{let i=Lt(e.text,lt());const s=JSON.parse(i);re(r,s)}catch(i){K.error("error while parsing actor properties text",i)}};function re(t,e){if(t.properties==null)t.properties=e;else for(let r in e)t.properties[r]=e[r]}function n0(){at=void 0}const oe=function(t,e){const r=mt(t),i=document.getElementById(e.text);try{const s=i.innerHTML,n=JSON.parse(s);n.properties&&re(r,n.properties),n.links&&Ht(r,n.links)}catch(s){K.error("error while parsing actor details text",s)}},a0=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},ce=function(t){if(Array.isArray(t))t.forEach(function(e){ce(e)});else switch(t.type){case"sequenceIndex":$.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":Ft(t.actor,t.actor,t.description,"participant");break;case"addActor":Ft(t.actor,t.actor,t.description,"actor");break;case"activeStart":R(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":R(t.actor,void 0,void 0,t.signalType);break;case"addNote":se(t.actor,t.placement,t.text);break;case"addLinks":ne(t.actor,t.text);break;case"addALink":s0(t.actor,t.text);break;case"addProperties":ae(t.actor,t.text);break;case"addDetails":oe(t.actor,t.text);break;case"addMessage":R(t.from,t.to,t.msg,t.signalType);break;case"boxStart":Ye(t.boxData);break;case"boxEnd":n0();break;case"loopStart":R(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":R(void 0,void 0,void 0,t.signalType);break;case"rectStart":R(void 0,void 0,t.color,t.signalType);break;case"rectEnd":R(void 0,void 0,void 0,t.signalType);break;case"optStart":R(void 0,void 0,t.optText,t.signalType);break;case"optEnd":R(void 0,void 0,void 0,t.signalType);break;case"altStart":R(void 0,void 0,t.altText,t.signalType);break;case"else":R(void 0,void 0,t.altText,t.signalType);break;case"altEnd":R(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":te(t.text);break;case"parStart":R(void 0,void 0,t.parText,t.signalType);break;case"and":R(void 0,void 0,t.parText,t.signalType);break;case"parEnd":R(void 0,void 0,void 0,t.signalType);break;case"criticalStart":R(void 0,void 0,t.criticalText,t.signalType);break;case"option":R(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":R(void 0,void 0,void 0,t.signalType);break;case"breakStart":R(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":R(void 0,void 0,void 0,t.signalType);break}},r0={addActor:Ft,addMessage:We,addSignal:R,addLinks:ne,addDetails:oe,addProperties:ae,autoWrap:pt,setWrap:Qe,enableSequenceNumbers:Xe,disableSequenceNumbers:Je,showSequenceNumbers:Ze,getMessages:He,getActors:Ke,getActor:mt,getActorKeys:Ge,getActorProperty:a0,getAccTitle:me,getBoxes:Ue,getDiagramTitle:ve,setDiagramTitle:we,parseDirective:Be,getConfig:()=>lt().sequence,clear:je,parseMessage:$e,parseBoxData:t0,LINETYPE:bt,ARROWTYPE:e0,PLACEMENT:i0,addNote:se,setAccTitle:te,apply:ce,setAccDescription:_e,getAccDescription:ke,hasAtLeastOneBox:qe,hasAtLeastOneBoxWithTitle:ze},o0=t=>`.actor { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - } - - text.actor > tspan { - fill: ${t.actorTextColor}; - stroke: none; - } - - .actor-line { - stroke: ${t.actorLineColor}; - } - - .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; - } -`,c0=o0,Ut=function(t,e){return Me(t,e)},le=(t,e)=>{Ae(()=>{const r=document.querySelectorAll(t);r.length!==0&&(r[0].addEventListener("mouseover",function(){p0("actor"+e+"_popup")}),r[0].addEventListener("mouseout",function(){u0("actor"+e+"_popup")}))})},l0=function(t,e,r,i,s){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const n=e.links,c=e.actorCnt,l=e.rectData;var p="none";s&&(p="block !important");const d=t.append("g");d.attr("id","actor"+c+"_popup"),d.attr("class","actorPopupMenu"),d.attr("display",p),le("#actor"+c+"_popup",c);var T="";l.class!==void 0&&(T=" "+l.class);let y=l.width>r?l.width:r;const u=d.append("rect");if(u.attr("class","actorPopupMenuPanel"+T),u.attr("x",l.x),u.attr("y",l.height),u.attr("fill",l.fill),u.attr("stroke",l.stroke),u.attr("width",y),u.attr("height",l.height),u.attr("rx",l.rx),u.attr("ry",l.ry),n!=null){var x=20;for(let A in n){var m=d.append("a"),L=ee.sanitizeUrl(n[A]);m.attr("xlink:href",L),m.attr("target","_blank"),N0(i)(A,m,l.x+10,l.height+x,y,20,{class:"actor"},i),x+=30}}return u.attr("height",x),{height:l.height+x,width:y}},h0=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},d0=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},p0=function(t){var e=document.getElementById(t);e!=null&&(e.style.display="block")},u0=function(t){var e=document.getElementById(t);e!=null&&(e.style.display="none")},Tt=function(t,e){let r=0,i=0;const s=e.text.split(w.lineBreakRegex),[n,c]=ie(e.fontSize);let l=[],p=0,d=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":d=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":d=()=>Math.round(e.y+(r+i+e.textMargin)/2);break;case"bottom":case"end":d=()=>Math.round(e.y+(r+i+2*e.textMargin)-e.textMargin);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[T,y]of s.entries()){e.textMargin!==void 0&&e.textMargin===0&&n!==void 0&&(p=T*n);const u=t.append("text");u.attr("x",e.x),u.attr("y",d()),e.anchor!==void 0&&u.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&u.style("font-family",e.fontFamily),c!==void 0&&u.style("font-size",c),e.fontWeight!==void 0&&u.style("font-weight",e.fontWeight),e.fill!==void 0&&u.attr("fill",e.fill),e.class!==void 0&&u.attr("class",e.class),e.dy!==void 0?u.attr("dy",e.dy):p!==0&&u.attr("dy",p);const x=y||Se;if(e.tspan){const m=u.append("tspan");m.attr("x",e.x),e.fill!==void 0&&m.attr("fill",e.fill),m.text(x)}else u.text(x);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(i+=(u._groups||u)[0][0].getBBox().height,r=i),l.push(u)}return l},he=function(t,e){function r(s,n,c,l,p){return s+","+n+" "+(s+c)+","+n+" "+(s+c)+","+(n+l-p)+" "+(s+c-p*1.2)+","+(n+l)+" "+s+","+(n+l)}const i=t.append("polygon");return i.attr("points",r(e.x,e.y,e.width,e.height,7)),i.attr("class","labelBox"),e.y=e.y+e.height/2,Tt(t,e),i};let et=-1;const de=(t,e)=>{t.selectAll&&t.selectAll(".actor-line").attr("class","200").attr("y2",e-55)},f0=function(t,e,r,i){const s=e.x+e.width/2,n=e.y+5,c=t.append("g");var l=c;i||(et++,l.append("line").attr("id","actor"+et).attr("x1",s).attr("y1",n).attr("x2",s).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),l=c.append("g"),e.actorCnt=et,e.links!=null&&(l.attr("id","root-"+et),le("#root-"+et,et)));const p=It();var d="actor";e.properties!=null&&e.properties.class?d=e.properties.class:p.fill="#eaeaea",p.x=e.x,p.y=e.y,p.width=e.width,p.height=e.height,p.class=d,p.rx=3,p.ry=3;const T=Ut(l,p);if(e.rectData=p,e.properties!=null&&e.properties.icon){const u=e.properties.icon.trim();u.charAt(0)==="@"?De(l,p.x+p.width-20,p.y+10,u.substr(1)):Ve(l,p.x+p.width-20,p.y+10,u)}Kt(r)(e.description,l,p.x,p.y,p.width,p.height,{class:"actor"},r);let y=e.height;if(T.node){const u=T.node().getBBox();e.height=u.height,y=u.height}return y},g0=function(t,e,r,i){const s=e.x+e.width/2,n=e.y+80;i||(et++,t.append("line").attr("id","actor"+et).attr("x1",s).attr("y1",n).attr("x2",s).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const c=t.append("g");c.attr("class","actor-man");const l=It();l.x=e.x,l.y=e.y,l.fill="#eaeaea",l.width=e.width,l.height=e.height,l.class="actor",l.rx=3,l.ry=3,c.append("line").attr("id","actor-man-torso"+et).attr("x1",s).attr("y1",e.y+25).attr("x2",s).attr("y2",e.y+45),c.append("line").attr("id","actor-man-arms"+et).attr("x1",s-18).attr("y1",e.y+33).attr("x2",s+18).attr("y2",e.y+33),c.append("line").attr("x1",s-18).attr("y1",e.y+60).attr("x2",s).attr("y2",e.y+45),c.append("line").attr("x1",s).attr("y1",e.y+45).attr("x2",s+16).attr("y2",e.y+60);const p=c.append("circle");p.attr("cx",e.x+e.width/2),p.attr("cy",e.y+10),p.attr("r",15),p.attr("width",e.width),p.attr("height",e.height);const d=c.node().getBBox();return e.height=d.height,Kt(r)(e.description,c,l.x,l.y+35,l.width,l.height,{class:"actor"},r),e.height},x0=function(t,e,r,i){switch(e.type){case"actor":return g0(t,e,r,i);case"participant":return f0(t,e,r,i)}},T0=function(t,e,r){const s=t.append("g");pe(s,e),e.name&&Kt(r)(e.name,s,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),s.lower()},y0=function(t){return t.append("g")},E0=function(t,e,r,i,s){const n=It(),c=e.anchored;n.x=e.startx,n.y=e.starty,n.class="activation"+s%3,n.width=e.stopx-e.startx,n.height=r-e.starty,Ut(c,n)},b0=function(t,e,r,i){const{boxMargin:s,boxTextMargin:n,labelBoxHeight:c,labelBoxWidth:l,messageFontFamily:p,messageFontSize:d,messageFontWeight:T}=i,y=t.append("g"),u=function(L,A,M,I){return y.append("line").attr("x1",L).attr("y1",A).attr("x2",M).attr("y2",I).attr("class","loopLine")};u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(L){u(e.startx,L.y,e.stopx,L.y).style("stroke-dasharray","3, 3")});let x=zt();x.text=r,x.x=e.startx,x.y=e.starty,x.fontFamily=p,x.fontSize=d,x.fontWeight=T,x.anchor="middle",x.valign="middle",x.tspan=!1,x.width=l||50,x.height=c||20,x.textMargin=n,x.class="labelText",he(y,x),x=ue(),x.text=e.title,x.x=e.startx+l/2+(e.stopx-e.startx)/2,x.y=e.starty+s+n,x.anchor="middle",x.valign="middle",x.textMargin=n,x.class="loopText",x.fontFamily=p,x.fontSize=d,x.fontWeight=T,x.wrap=!0;let m=Tt(y,x);return e.sectionTitles!==void 0&&e.sectionTitles.forEach(function(L,A){if(L.message){x.text=L.message,x.x=e.startx+(e.stopx-e.startx)/2,x.y=e.sections[A].y+s+n,x.class="loopText",x.anchor="middle",x.valign="middle",x.tspan=!1,x.fontFamily=p,x.fontSize=d,x.fontWeight=T,x.wrap=e.wrap,m=Tt(y,x);let M=Math.round(m.map(I=>(I._groups||I)[0][0].getBBox().height).reduce((I,Y)=>I+Y));e.sections[A].height+=M-(s+n)}}),e.height=Math.round(e.stopy-e.starty),y},pe=function(t,e){Re(t,e)},m0=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")},v0=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")},w0=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")},_0=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")},k0=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")},P0=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)},L0=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",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")},ue=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}},I0=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Kt=function(){function t(s,n,c,l,p,d,T){const y=n.append("text").attr("x",c+p/2).attr("y",l+d/2+5).style("text-anchor","middle").text(s);i(y,T)}function e(s,n,c,l,p,d,T,y){const{actorFontSize:u,actorFontFamily:x,actorFontWeight:m}=y,[L,A]=ie(u),M=s.split(w.lineBreakRegex);for(let I=0;It.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))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init: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,ge(lt())},updateVal:function(t,e,r,i){t[e]===void 0?t[e]=r:t[e]=i(r,t[e])},updateBounds:function(t,e,r,i){const s=this;let n=0;function c(l){return function(d){n++;const T=s.sequenceItems.length-n+1;s.updateVal(d,"starty",e-T*a.boxMargin,Math.min),s.updateVal(d,"stopy",i+T*a.boxMargin,Math.max),s.updateVal(f.data,"startx",t-T*a.boxMargin,Math.min),s.updateVal(f.data,"stopx",r+T*a.boxMargin,Math.max),l!=="activation"&&(s.updateVal(d,"startx",t-T*a.boxMargin,Math.min),s.updateVal(d,"stopx",r+T*a.boxMargin,Math.max),s.updateVal(f.data,"starty",e-T*a.boxMargin,Math.min),s.updateVal(f.data,"stopy",i+T*a.boxMargin,Math.max))}}this.sequenceItems.forEach(c()),this.activations.forEach(c("activation"))},insert:function(t,e,r,i){const s=w.getMin(t,r),n=w.getMax(t,r),c=w.getMin(e,i),l=w.getMax(e,i);this.updateVal(f.data,"startx",s,Math.min),this.updateVal(f.data,"starty",c,Math.min),this.updateVal(f.data,"stopx",n,Math.max),this.updateVal(f.data,"stopy",l,Math.max),this.updateBounds(s,c,n,l)},newActivation:function(t,e,r){const i=r[t.from.actor],s=At(t.from.actor).length||0,n=i.x+i.width/2+(s-1)*a.activationWidth/2;this.activations.push({startx:n,starty:this.verticalPos+2,stopx:n+a.activationWidth,stopy:void 0,actor:t.from.actor,anchored:D.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop: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}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:f.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=w.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},A0=function(t,e){f.bumpVerticalPos(a.boxMargin),e.height=a.boxMargin,e.starty=f.getVerticalPos();const r=It();r.x=e.startx,r.y=e.starty,r.width=e.width||a.width,r.class="note";const i=t.append("g"),s=D.drawRect(i,r),n=zt();n.x=e.startx,n.y=e.starty,n.width=r.width,n.dy="1em",n.text=e.message,n.class="noteText",n.fontFamily=a.noteFontFamily,n.fontSize=a.noteFontSize,n.fontWeight=a.noteFontWeight,n.anchor=a.noteAlign,n.textMargin=a.noteMargin,n.valign="center";const c=Tt(i,n),l=Math.round(c.map(p=>(p._groups||p)[0][0].getBBox().height).reduce((p,d)=>p+d));s.attr("height",l+2*a.noteMargin),e.height+=l+2*a.noteMargin,f.bumpVerticalPos(l+2*a.noteMargin),e.stopy=e.starty+l+2*a.noteMargin,e.stopx=e.startx+r.width,f.insert(e.startx,e.starty,e.stopx,e.stopy),f.models.addNote(e)},ut=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),gt=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Wt=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});function S0(t,e){f.bumpVerticalPos(10);const{startx:r,stopx:i,message:s}=e,n=w.splitBreaks(s).length,c=C.calculateTextDimensions(s,ut(a)),l=c.height/n;e.height+=l,f.bumpVerticalPos(l);let p,d=c.height-10;const T=c.width;if(r===i){p=f.getVerticalPos()+d,a.rightAngles||(d+=a.boxMargin,p=f.getVerticalPos()+d),d+=30;const y=w.getMax(T/2,a.width/2);f.insert(r-y,f.getVerticalPos()-10+d,i+y,f.getVerticalPos()+30+d)}else d+=a.boxMargin,p=f.getVerticalPos()+d,f.insert(r,p-10,i,p);return f.bumpVerticalPos(d),e.height+=d,e.stopy=e.starty+e.height,f.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),p}const M0=function(t,e,r,i){const{startx:s,stopx:n,starty:c,message:l,type:p,sequenceIndex:d,sequenceVisible:T}=e,y=C.calculateTextDimensions(l,ut(a)),u=zt();u.x=s,u.y=c+10,u.width=n-s,u.class="messageText",u.dy="1em",u.text=l,u.fontFamily=a.messageFontFamily,u.fontSize=a.messageFontSize,u.fontWeight=a.messageFontWeight,u.anchor=a.messageAlign,u.valign="center",u.textMargin=a.wrapPadding,u.tspan=!1,Tt(t,u);const x=y.width;let m;s===n?a.rightAngles?m=t.append("path").attr("d",`M ${s},${r} H ${s+w.getMax(a.width/2,x/2)} V ${r+25} H ${s}`):m=t.append("path").attr("d","M "+s+","+r+" C "+(s+60)+","+(r-10)+" "+(s+60)+","+(r+30)+" "+s+","+(r+20)):(m=t.append("line"),m.attr("x1",s),m.attr("y1",r),m.attr("x2",n),m.attr("y2",r)),p===i.db.LINETYPE.DOTTED||p===i.db.LINETYPE.DOTTED_CROSS||p===i.db.LINETYPE.DOTTED_POINT||p===i.db.LINETYPE.DOTTED_OPEN?(m.style("stroke-dasharray","3, 3"),m.attr("class","messageLine1")):m.attr("class","messageLine0");let L="";a.arrowMarkerAbsolute&&(L=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,L=L.replace(/\(/g,"\\("),L=L.replace(/\)/g,"\\)")),m.attr("stroke-width",2),m.attr("stroke","none"),m.style("fill","none"),(p===i.db.LINETYPE.SOLID||p===i.db.LINETYPE.DOTTED)&&m.attr("marker-end","url("+L+"#arrowhead)"),(p===i.db.LINETYPE.SOLID_POINT||p===i.db.LINETYPE.DOTTED_POINT)&&m.attr("marker-end","url("+L+"#filled-head)"),(p===i.db.LINETYPE.SOLID_CROSS||p===i.db.LINETYPE.DOTTED_CROSS)&&m.attr("marker-end","url("+L+"#crosshead)"),(T||a.showSequenceNumbers)&&(m.attr("marker-start","url("+L+"#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(d))},qt=function(t,e,r,i,s,n,c){if(s.hideUnusedParticipants===!0){const y=new Set;n.forEach(u=>{y.add(u.from),y.add(u.to)}),r=r.filter(u=>y.has(u))}let l=0,p=0,d=0,T;for(const y of r){const u=e[y],x=u.box;T&&T!=x&&(c||f.models.addBox(T),p+=a.boxMargin+T.margin),x&&x!=T&&(c||(x.x=l+p,x.y=i),p+=x.margin),u.width=u.width||a.width,u.height=w.getMax(u.height||a.height,a.height),u.margin=u.margin||a.actorMargin,u.x=l+p,u.y=f.getVerticalPos();const m=D.drawActor(t,u,a,c);d=w.getMax(d,m),f.insert(u.x,i,u.x+u.width,u.height),l+=u.width+p,u.box&&(u.box.width=l+x.margin-u.box.x),p=u.margin,T=u.box,f.models.addActor(u)}T&&!c&&f.models.addBox(T),f.bumpVerticalPos(d)},fe=function(t,e,r,i){let s=0,n=0;for(const c of r){const l=e[c],p=V0(l),d=D.drawPopup(t,l,p,a,a.forceMenus,i);d.height>s&&(s=d.height),d.width+l.x>n&&(n=d.width+l.x)}return{maxHeight:s,maxWidth:n}},ge=function(t){Ie(a,t),t.fontFamily&&(a.actorFontFamily=a.noteFontFamily=a.messageFontFamily=t.fontFamily),t.fontSize&&(a.actorFontSize=a.noteFontSize=a.messageFontSize=t.fontSize),t.fontWeight&&(a.actorFontWeight=a.noteFontWeight=a.messageFontWeight=t.fontWeight)},At=function(t){return f.activations.filter(function(e){return e.actor===t})},$t=function(t,e){const r=e[t],i=At(t),s=i.reduce(function(c,l){return w.getMin(c,l.startx)},r.x+r.width/2),n=i.reduce(function(c,l){return w.getMax(c,l.stopx)},r.x+r.width/2);return[s,n]};function tt(t,e,r,i,s){f.bumpVerticalPos(r);let n=i;if(e.id&&e.message&&t[e.id]){const c=t[e.id].width,l=ut(a);e.message=C.wrapLabel(`[${e.message}]`,c-2*a.wrapPadding,l),e.width=c,e.wrap=!0;const p=C.calculateTextDimensions(e.message,l),d=w.getMax(p.height,a.labelBoxHeight);n=i+d,K.debug(`${d} - ${e.message}`)}s(e),f.bumpVerticalPos(n)}const R0=function(t,e,r,i){const{securityLevel:s,sequence:n}=lt();a=n,i.db.clear(),i.parser.parse(t);let c;s==="sandbox"&&(c=Pt("#i"+e));const l=s==="sandbox"?Pt(c.nodes()[0].contentDocument.body):Pt("body"),p=s==="sandbox"?c.nodes()[0].contentDocument:document;f.init(),K.debug(i.db);const d=s==="sandbox"?l.select(`[id="${e}"]`):Pt(`[id="${e}"]`),T=i.db.getActors(),y=i.db.getBoxes(),u=i.db.getActorKeys(),x=i.db.getMessages(),m=i.db.getDiagramTitle(),L=i.db.hasAtLeastOneBox(),A=i.db.hasAtLeastOneBoxWithTitle(),M=D0(T,x,i);a.height=C0(T,M,y),D.insertComputerIcon(d),D.insertDatabaseIcon(d),D.insertClockIcon(d),L&&(f.bumpVerticalPos(a.boxMargin),A&&f.bumpVerticalPos(y[0].textMaxHeight)),qt(d,T,u,0,a,x,!1);const I=Y0(x,T,M,i);D.insertArrowHead(d),D.insertArrowCrossHead(d),D.insertArrowFilledHead(d),D.insertSequenceNumber(d);function Y(v,E){const j=f.endActivation(v);j.starty+18>E&&(j.starty=E-6,E+=12),D.drawActivation(d,j,E,a,At(v.from.actor).length),f.insert(j.startx,E-10,j.stopx,E)}let V=1,H=1;const G=[];x.forEach(function(v){let E,j,k;switch(v.type){case i.db.LINETYPE.NOTE:f.resetVerticalPos(),j=v.noteModel,A0(d,j);break;case i.db.LINETYPE.ACTIVE_START:f.newActivation(v,d,T);break;case i.db.LINETYPE.ACTIVE_END:Y(v,f.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N));break;case i.db.LINETYPE.LOOP_END:E=f.endLoop(),D.drawLoop(d,E,"loop",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;case i.db.LINETYPE.RECT_START:tt(I,v,a.boxMargin,a.boxMargin,N=>f.newLoop(void 0,N.message));break;case i.db.LINETYPE.RECT_END:E=f.endLoop(),D.drawBackgroundRect(d,E),f.models.addLoop(E),f.bumpVerticalPos(E.stopy-f.getVerticalPos());break;case i.db.LINETYPE.OPT_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N));break;case i.db.LINETYPE.OPT_END:E=f.endLoop(),D.drawLoop(d,E,"opt",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;case i.db.LINETYPE.ALT_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N));break;case i.db.LINETYPE.ALT_ELSE:tt(I,v,a.boxMargin+a.boxTextMargin,a.boxMargin,N=>f.addSectionToLoop(N));break;case i.db.LINETYPE.ALT_END:E=f.endLoop(),D.drawLoop(d,E,"alt",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.PAR_OVER_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N)),f.saveVerticalPos();break;case i.db.LINETYPE.PAR_AND:tt(I,v,a.boxMargin+a.boxTextMargin,a.boxMargin,N=>f.addSectionToLoop(N));break;case i.db.LINETYPE.PAR_END:E=f.endLoop(),D.drawLoop(d,E,"par",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;case i.db.LINETYPE.AUTONUMBER:V=v.message.start||V,H=v.message.step||H,v.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N));break;case i.db.LINETYPE.CRITICAL_OPTION:tt(I,v,a.boxMargin+a.boxTextMargin,a.boxMargin,N=>f.addSectionToLoop(N));break;case i.db.LINETYPE.CRITICAL_END:E=f.endLoop(),D.drawLoop(d,E,"critical",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;case i.db.LINETYPE.BREAK_START:tt(I,v,a.boxMargin,a.boxMargin+a.boxTextMargin,N=>f.newLoop(N));break;case i.db.LINETYPE.BREAK_END:E=f.endLoop(),D.drawLoop(d,E,"break",a),f.bumpVerticalPos(E.stopy-f.getVerticalPos()),f.models.addLoop(E);break;default:try{f.resetVerticalPos(),k=v.msgModel,k.starty=f.getVerticalPos(),k.sequenceIndex=V,k.sequenceVisible=i.db.showSequenceNumbers();const N=S0(d,k);G.push({messageModel:k,lineStartY:N}),f.models.addMessage(k)}catch(N){K.error("error while drawing message",N)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT].includes(v.type)&&(V=V+H)}),G.forEach(v=>M0(d,v.messageModel,v.lineStartY,i)),a.mirrorActors&&(f.bumpVerticalPos(a.boxMargin*2),qt(d,T,u,f.getVerticalPos(),a,x,!0),f.bumpVerticalPos(a.boxMargin),de(d,f.getVerticalPos())),f.models.boxes.forEach(function(v){v.height=f.getVerticalPos()-v.y,f.insert(v.x,v.y,v.x+v.width,v.height),v.startx=v.x,v.starty=v.y,v.stopx=v.startx+v.width,v.stopy=v.starty+v.height,v.stroke="rgb(0,0,0, 0.5)",D.drawBox(d,v,a)}),L&&f.bumpVerticalPos(a.boxMargin);const W=fe(d,T,u,p),{bounds:O}=f.getBounds();K.debug("For line height fix Querying: #"+e+" .actor-line"),Ce("#"+e+" .actor-line").attr("y2",O.stopy);let F=O.stopy-O.starty;F{const c=t[n];c.wrap&&(c.description=C.wrapLabel(c.description,a.width-2*a.wrapPadding,Wt(a)));const l=C.calculateTextDimensions(c.description,Wt(a));c.width=c.wrap?a.width:w.getMax(a.width,l.width+2*a.wrapPadding),c.height=c.wrap?w.getMax(l.height,a.height):a.height,i=w.getMax(i,c.height)});for(const n in e){const c=t[n];if(!c)continue;const l=t[c.nextActor];if(!l){const y=e[n]+a.actorMargin-c.width/2;c.margin=w.getMax(y,a.actorMargin);continue}const d=e[n]+a.actorMargin-c.width/2-l.width/2;c.margin=w.getMax(d,a.actorMargin)}let s=0;return r.forEach(n=>{const c=ut(a);let l=n.actorKeys.reduce((T,y)=>T+=t[y].width+(t[y].margin||0),0);l-=2*a.boxTextMargin,n.wrap&&(n.name=C.wrapLabel(n.name,l-2*a.wrapPadding,c));const p=C.calculateTextDimensions(n.name,c);s=w.getMax(p.height,s);const d=w.getMax(l,p.width+2*a.wrapPadding);if(n.margin=a.boxTextMargin,ln.textMaxHeight=s),w.getMax(i,a.height)}const O0=function(t,e,r){const i=e[t.from].x,s=e[t.to].x,n=t.wrap&&t.message;let c=C.calculateTextDimensions(n?C.wrapLabel(t.message,a.width,gt(a)):t.message,gt(a));const l={width:n?a.width:w.getMax(a.width,c.width+2*a.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===r.db.PLACEMENT.RIGHTOF?(l.width=n?w.getMax(a.width,c.width):w.getMax(e[t.from].width/2+e[t.to].width/2,c.width+2*a.noteMargin),l.startx=i+(e[t.from].width+a.actorMargin)/2):t.placement===r.db.PLACEMENT.LEFTOF?(l.width=n?w.getMax(a.width,c.width+2*a.noteMargin):w.getMax(e[t.from].width/2+e[t.to].width/2,c.width+2*a.noteMargin),l.startx=i-l.width+(e[t.from].width-a.actorMargin)/2):t.to===t.from?(c=C.calculateTextDimensions(n?C.wrapLabel(t.message,w.getMax(a.width,e[t.from].width),gt(a)):t.message,gt(a)),l.width=n?w.getMax(a.width,e[t.from].width):w.getMax(e[t.from].width,a.width,c.width+2*a.noteMargin),l.startx=i+(e[t.from].width-l.width)/2):(l.width=Math.abs(i+e[t.from].width/2-(s+e[t.to].width/2))+a.actorMargin,l.startx=iu.actor).lastIndexOf(d.from.actor);delete f.activations.splice(y,1)[0]}break}d.placement!==void 0?(l=O0(d,e,i),d.noteModel=l,n.forEach(y=>{c=y,c.from=w.getMin(c.from,l.startx),c.to=w.getMax(c.to,l.startx+l.width),c.width=w.getMax(c.width,Math.abs(c.from-c.to))-a.labelBoxWidth})):(p=B0(d,e,i),d.msgModel=p,p.startx&&p.stopx&&n.length>0&&n.forEach(y=>{if(c=y,p.startx===p.stopx){const u=e[d.from],x=e[d.to];c.from=w.getMin(u.x-p.width/2,u.x-u.width/2,c.from),c.to=w.getMax(x.x+p.width/2,x.x+u.width/2,c.to),c.width=w.getMax(c.width,Math.abs(c.to-c.from))-a.labelBoxWidth}else c.from=w.getMin(p.startx,c.from),c.to=w.getMax(p.stopx,c.to),c.width=w.getMax(c.width,p.width)-a.labelBoxWidth}))}),f.activations=[],K.debug("Loop type widths:",s),s},F0={bounds:f,drawActors:qt,drawActorsPopup:fe,setConf:ge,draw:R0},U0={parser:Oe,db:r0,renderer:F0,styles:c0};export{U0 as diagram}; -//# sourceMappingURL=sequenceDiagram-5dfd0049-6G3skaqL.js.map diff --git a/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js.map b/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js.map deleted file mode 100644 index 3e7c760..0000000 --- a/excalidraw/excalidraw-app/build/assets/sequenceDiagram-5dfd0049-6G3skaqL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sequenceDiagram-5dfd0049-6G3skaqL.js","sources":["../../../node_modules/mermaid/dist/sequenceDiagram-5dfd0049.js"],"sourcesContent":["import { g as getAccTitle, t as getDiagramTitle, r as setDiagramTitle, c as getConfig, s as setAccTitle, b as setAccDescription, a as getAccDescription, m as mermaidAPI, v as clear$1, l as log, d as sanitizeText, e as common, B as parseFontSize, E as addFunction, Z as ZERO_WIDTH_SPACE, f as assignWithDepth, i as configureSvgSize, u as utils } from \"./mermaid-b0ad2de1.js\";\nimport { select, selectAll } from \"d3\";\nimport { d as drawRect$1, a as drawBackgroundRect$1, b as drawEmbeddedImage, c as drawImage, e as getTextObj$1, g as getNoteRect$1 } from \"./svgDrawCommon-f26cad39.js\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 19], $V8 = [1, 21], $V9 = [1, 22], $Va = [1, 23], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 34], $Vh = [1, 35], $Vi = [1, 36], $Vj = [1, 37], $Vk = [1, 38], $Vl = [1, 39], $Vm = [1, 40], $Vn = [1, 41], $Vo = [1, 43], $Vp = [1, 44], $Vq = [1, 46], $Vr = [1, 47], $Vs = [1, 48], $Vt = [1, 49], $Vu = [1, 50], $Vv = [1, 51], $Vw = [1, 54], $Vx = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 53, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84], $Vy = [4, 5, 21, 55, 57], $Vz = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VA = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VB = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 53, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VC = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VD = [72, 73, 74], $VE = [1, 128], $VF = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 53, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NEWLINE\": 5, \"directive\": 6, \"SD\": 7, \"document\": 8, \"line\": 9, \"statement\": 10, \"box_section\": 11, \"box_line\": 12, \"participant_statement\": 13, \"openDirective\": 14, \"typeDirective\": 15, \"closeDirective\": 16, \":\": 17, \"argDirective\": 18, \"box\": 19, \"restOfLine\": 20, \"end\": 21, \"signal\": 22, \"autonumber\": 23, \"NUM\": 24, \"off\": 25, \"activate\": 26, \"actor\": 27, \"deactivate\": 28, \"note_statement\": 29, \"links_statement\": 30, \"link_statement\": 31, \"properties_statement\": 32, \"details_statement\": 33, \"title\": 34, \"legacy_title\": 35, \"acc_title\": 36, \"acc_title_value\": 37, \"acc_descr\": 38, \"acc_descr_value\": 39, \"acc_descr_multiline_value\": 40, \"loop\": 41, \"rect\": 42, \"opt\": 43, \"alt\": 44, \"else_sections\": 45, \"par\": 46, \"par_sections\": 47, \"par_over\": 48, \"critical\": 49, \"option_sections\": 50, \"break\": 51, \"option\": 52, \"and\": 53, \"else\": 54, \"participant\": 55, \"AS\": 56, \"participant_actor\": 57, \"note\": 58, \"placement\": 59, \"text2\": 60, \"over\": 61, \"actor_pair\": 62, \"links\": 63, \"link\": 64, \"properties\": 65, \"details\": 66, \"spaceList\": 67, \",\": 68, \"left_of\": 69, \"right_of\": 70, \"signaltype\": 71, \"+\": 72, \"-\": 73, \"ACTOR\": 74, \"SOLID_OPEN_ARROW\": 75, \"DOTTED_OPEN_ARROW\": 76, \"SOLID_ARROW\": 77, \"DOTTED_ARROW\": 78, \"SOLID_CROSS\": 79, \"DOTTED_CROSS\": 80, \"SOLID_POINT\": 81, \"DOTTED_POINT\": 82, \"TXT\": 83, \"open_directive\": 84, \"type_directive\": 85, \"arg_directive\": 86, \"close_directive\": 87, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NEWLINE\", 7: \"SD\", 17: \":\", 19: \"box\", 20: \"restOfLine\", 21: \"end\", 23: \"autonumber\", 24: \"NUM\", 25: \"off\", 26: \"activate\", 28: \"deactivate\", 34: \"title\", 35: \"legacy_title\", 36: \"acc_title\", 37: \"acc_title_value\", 38: \"acc_descr\", 39: \"acc_descr_value\", 40: \"acc_descr_multiline_value\", 41: \"loop\", 42: \"rect\", 43: \"opt\", 44: \"alt\", 46: \"par\", 48: \"par_over\", 49: \"critical\", 51: \"break\", 52: \"option\", 53: \"and\", 54: \"else\", 55: \"participant\", 56: \"AS\", 57: \"participant_actor\", 58: \"note\", 61: \"over\", 63: \"links\", 64: \"link\", 65: \"properties\", 66: \"details\", 68: \",\", 69: \"left_of\", 70: \"right_of\", 72: \"+\", 73: \"-\", 74: \"ACTOR\", 75: \"SOLID_OPEN_ARROW\", 76: \"DOTTED_OPEN_ARROW\", 77: \"SOLID_ARROW\", 78: \"DOTTED_ARROW\", 79: \"SOLID_CROSS\", 80: \"DOTTED_CROSS\", 81: \"SOLID_POINT\", 82: \"DOTTED_POINT\", 83: \"TXT\", 84: \"open_directive\", 85: \"type_directive\", 86: \"arg_directive\", 87: \"close_directive\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [50, 1], [50, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [67, 2], [67, 1], [62, 3], [62, 1], [59, 1], [59, 1], [22, 5], [22, 5], [22, 4], [27, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [60, 1], [14, 1], [15, 1], [18, 1], [16, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.apply($$[$0]);\n return $$[$0];\n case 5:\n case 10:\n this.$ = [];\n break;\n case 6:\n case 11:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 7:\n case 8:\n case 12:\n case 13:\n this.$ = $$[$0];\n break;\n case 9:\n case 14:\n this.$ = [];\n break;\n case 18:\n $$[$0 - 1].unshift({ type: \"boxStart\", boxData: yy.parseBoxData($$[$0 - 2]) });\n $$[$0 - 1].push({ type: \"boxEnd\", boxText: $$[$0 - 2] });\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 21:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 22:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 23:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 24:\n this.$ = { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };\n break;\n case 25:\n this.$ = { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };\n break;\n case 31:\n yy.setDiagramTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 32:\n yy.setDiagramTitle($$[$0].substring(7));\n this.$ = $$[$0].substring(7);\n break;\n case 33:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 34:\n case 35:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 36:\n $$[$0 - 1].unshift({ type: \"loopStart\", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });\n $$[$0 - 1].push({ type: \"loopEnd\", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });\n this.$ = $$[$0 - 1];\n break;\n case 37:\n $$[$0 - 1].unshift({ type: \"rectStart\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });\n $$[$0 - 1].push({ type: \"rectEnd\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });\n this.$ = $$[$0 - 1];\n break;\n case 38:\n $$[$0 - 1].unshift({ type: \"optStart\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });\n $$[$0 - 1].push({ type: \"optEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });\n this.$ = $$[$0 - 1];\n break;\n case 39:\n $$[$0 - 1].unshift({ type: \"altStart\", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });\n $$[$0 - 1].push({ type: \"altEnd\", signalType: yy.LINETYPE.ALT_END });\n this.$ = $$[$0 - 1];\n break;\n case 40:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 41:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 42:\n $$[$0 - 1].unshift({ type: \"criticalStart\", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });\n $$[$0 - 1].push({ type: \"criticalEnd\", signalType: yy.LINETYPE.CRITICAL_END });\n this.$ = $$[$0 - 1];\n break;\n case 43:\n $$[$0 - 1].unshift({ type: \"breakStart\", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });\n $$[$0 - 1].push({ type: \"breakEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });\n this.$ = $$[$0 - 1];\n break;\n case 46:\n this.$ = $$[$0 - 3].concat([{ type: \"option\", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);\n break;\n case 48:\n this.$ = $$[$0 - 3].concat([{ type: \"and\", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);\n break;\n case 50:\n this.$ = $$[$0 - 3].concat([{ type: \"else\", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);\n break;\n case 51:\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 52:\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 53:\n $$[$0 - 3].type = \"addActor\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 54:\n $$[$0 - 1].type = \"addActor\";\n this.$ = $$[$0 - 1];\n break;\n case 55:\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 56:\n $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);\n $$[$0 - 2][0] = $$[$0 - 2][0].actor;\n $$[$0 - 2][1] = $$[$0 - 2][1].actor;\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];\n break;\n case 57:\n this.$ = [$$[$0 - 1], { type: \"addLinks\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 58:\n this.$ = [$$[$0 - 1], { type: \"addALink\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 59:\n this.$ = [$$[$0 - 1], { type: \"addProperties\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 60:\n this.$ = [$$[$0 - 1], { type: \"addDetails\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 63:\n this.$ = [$$[$0 - 2], $$[$0]];\n break;\n case 64:\n this.$ = $$[$0];\n break;\n case 65:\n this.$ = yy.PLACEMENT.LEFTOF;\n break;\n case 66:\n this.$ = yy.PLACEMENT.RIGHTOF;\n break;\n case 67:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },\n { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }\n ];\n break;\n case 68:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },\n { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }\n ];\n break;\n case 69:\n this.$ = [$$[$0 - 3], $$[$0 - 1], { type: \"addMessage\", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];\n break;\n case 70:\n this.$ = { type: \"addParticipant\", actor: $$[$0] };\n break;\n case 71:\n this.$ = yy.LINETYPE.SOLID_OPEN;\n break;\n case 72:\n this.$ = yy.LINETYPE.DOTTED_OPEN;\n break;\n case 73:\n this.$ = yy.LINETYPE.SOLID;\n break;\n case 74:\n this.$ = yy.LINETYPE.DOTTED;\n break;\n case 75:\n this.$ = yy.LINETYPE.SOLID_CROSS;\n break;\n case 76:\n this.$ = yy.LINETYPE.DOTTED_CROSS;\n break;\n case 77:\n this.$ = yy.LINETYPE.SOLID_POINT;\n break;\n case 78:\n this.$ = yy.LINETYPE.DOTTED_POINT;\n break;\n case 79:\n this.$ = yy.parseMessage($$[$0].trim().substring(1));\n break;\n case 80:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 81:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 82:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 83:\n yy.parseDirective(\"}%%\", \"close_directive\", \"sequence\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, o([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 55, 57, 58, 63, 64, 65, 66, 74, 84], $V4, { 8: 11 }), { 15: 12, 85: [1, 13] }, { 85: [2, 80] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 16: 52, 17: [1, 53], 87: $Vw }, o([17, 87], [2, 81]), o($Vx, [2, 6]), { 6: 42, 10: 55, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, o($Vx, [2, 8]), o($Vx, [2, 9]), o($Vx, [2, 17]), { 20: [1, 56] }, { 5: [1, 57] }, { 5: [1, 60], 24: [1, 58], 25: [1, 59] }, { 27: 61, 74: $Vv }, { 27: 62, 74: $Vv }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, { 5: [1, 67] }, o($Vx, [2, 31]), o($Vx, [2, 32]), { 37: [1, 68] }, { 39: [1, 69] }, o($Vx, [2, 35]), { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, { 20: [1, 76] }, { 20: [1, 77] }, o($Vx, [2, 44]), { 27: 78, 74: $Vv }, { 27: 79, 74: $Vv }, { 71: 80, 75: [1, 81], 76: [1, 82], 77: [1, 83], 78: [1, 84], 79: [1, 85], 80: [1, 86], 81: [1, 87], 82: [1, 88] }, { 59: 89, 61: [1, 90], 69: [1, 91], 70: [1, 92] }, { 27: 93, 74: $Vv }, { 27: 94, 74: $Vv }, { 27: 95, 74: $Vv }, { 27: 96, 74: $Vv }, o([5, 56, 68, 75, 76, 77, 78, 79, 80, 81, 82, 83], [2, 70]), { 5: [1, 97] }, { 18: 98, 86: [1, 99] }, { 5: [2, 83] }, o($Vx, [2, 7]), o($Vy, [2, 10], { 11: 100 }), o($Vx, [2, 19]), { 5: [1, 102], 24: [1, 101] }, { 5: [1, 103] }, o($Vx, [2, 23]), { 5: [1, 104] }, { 5: [1, 105] }, o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 29]), o($Vx, [2, 30]), o($Vx, [2, 33]), o($Vx, [2, 34]), o($Vz, $V4, { 8: 106 }), o($Vz, $V4, { 8: 107 }), o($Vz, $V4, { 8: 108 }), o($VA, $V4, { 45: 109, 8: 110 }), o($VB, $V4, { 47: 111, 8: 112 }), o($VB, $V4, { 8: 112, 47: 113 }), o($VC, $V4, { 50: 114, 8: 115 }), o($Vz, $V4, { 8: 116 }), { 5: [1, 118], 56: [1, 117] }, { 5: [1, 120], 56: [1, 119] }, { 27: 123, 72: [1, 121], 73: [1, 122], 74: $Vv }, o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), o($VD, [2, 77]), o($VD, [2, 78]), { 27: 124, 74: $Vv }, { 27: 126, 62: 125, 74: $Vv }, { 74: [2, 65] }, { 74: [2, 66] }, { 60: 127, 83: $VE }, { 60: 129, 83: $VE }, { 60: 130, 83: $VE }, { 60: 131, 83: $VE }, o($VF, [2, 15]), { 16: 132, 87: $Vw }, { 87: [2, 82] }, { 4: [1, 135], 5: [1, 137], 12: 134, 13: 136, 21: [1, 133], 55: $Vo, 57: $Vp }, { 5: [1, 138] }, o($Vx, [2, 21]), o($Vx, [2, 22]), o($Vx, [2, 24]), o($Vx, [2, 25]), { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 139], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 140], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 141], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 142] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 49], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 54: [1, 143], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 144] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 47], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 53: [1, 145], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 146] }, { 21: [1, 147] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 45], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 52: [1, 148], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 149], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 20: [1, 150] }, o($Vx, [2, 52]), { 20: [1, 151] }, o($Vx, [2, 54]), { 27: 152, 74: $Vv }, { 27: 153, 74: $Vv }, { 60: 154, 83: $VE }, { 60: 155, 83: $VE }, { 60: 156, 83: $VE }, { 68: [1, 157], 83: [2, 64] }, { 5: [2, 57] }, { 5: [2, 79] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [2, 60] }, { 5: [1, 158] }, o($Vx, [2, 18]), o($Vy, [2, 11]), { 13: 159, 55: $Vo, 57: $Vp }, o($Vy, [2, 13]), o($Vy, [2, 14]), o($Vx, [2, 20]), o($Vx, [2, 36]), o($Vx, [2, 37]), o($Vx, [2, 38]), o($Vx, [2, 39]), { 20: [1, 160] }, o($Vx, [2, 40]), { 20: [1, 161] }, o($Vx, [2, 41]), o($Vx, [2, 42]), { 20: [1, 162] }, o($Vx, [2, 43]), { 5: [1, 163] }, { 5: [1, 164] }, { 60: 165, 83: $VE }, { 60: 166, 83: $VE }, { 5: [2, 69] }, { 5: [2, 55] }, { 5: [2, 56] }, { 27: 167, 74: $Vv }, o($VF, [2, 16]), o($Vy, [2, 12]), o($VA, $V4, { 8: 110, 45: 168 }), o($VB, $V4, { 8: 112, 47: 169 }), o($VC, $V4, { 8: 115, 50: 170 }), o($Vx, [2, 51]), o($Vx, [2, 53]), { 5: [2, 67] }, { 5: [2, 68] }, { 83: [2, 63] }, { 21: [2, 50] }, { 21: [2, 48] }, { 21: [2, 46] }],\n defaultActions: { 7: [2, 80], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 83], 91: [2, 65], 92: [2, 66], 99: [2, 82], 127: [2, 57], 128: [2, 79], 129: [2, 58], 130: [2, 59], 131: [2, 60], 154: [2, 69], 155: [2, 55], 156: [2, 56], 165: [2, 67], 166: [2, 68], 167: [2, 63], 168: [2, 50], 169: [2, 48], 170: [2, 46] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 84;\n case 1:\n this.begin(\"type_directive\");\n return 85;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 17;\n case 3:\n this.popState();\n this.popState();\n return 87;\n case 4:\n return 86;\n case 5:\n return 5;\n case 6:\n break;\n case 7:\n break;\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n return 24;\n case 12:\n this.begin(\"LINE\");\n return 19;\n case 13:\n this.begin(\"ID\");\n return 55;\n case 14:\n this.begin(\"ID\");\n return 57;\n case 15:\n yy_.yytext = yy_.yytext.trim();\n this.begin(\"ALIAS\");\n return 74;\n case 16:\n this.popState();\n this.popState();\n this.begin(\"LINE\");\n return 56;\n case 17:\n this.popState();\n this.popState();\n return 5;\n case 18:\n this.begin(\"LINE\");\n return 41;\n case 19:\n this.begin(\"LINE\");\n return 42;\n case 20:\n this.begin(\"LINE\");\n return 43;\n case 21:\n this.begin(\"LINE\");\n return 44;\n case 22:\n this.begin(\"LINE\");\n return 54;\n case 23:\n this.begin(\"LINE\");\n return 46;\n case 24:\n this.begin(\"LINE\");\n return 48;\n case 25:\n this.begin(\"LINE\");\n return 53;\n case 26:\n this.begin(\"LINE\");\n return 49;\n case 27:\n this.begin(\"LINE\");\n return 52;\n case 28:\n this.begin(\"LINE\");\n return 51;\n case 29:\n this.popState();\n return 20;\n case 30:\n return 21;\n case 31:\n return 69;\n case 32:\n return 70;\n case 33:\n return 63;\n case 34:\n return 64;\n case 35:\n return 65;\n case 36:\n return 66;\n case 37:\n return 61;\n case 38:\n return 58;\n case 39:\n this.begin(\"ID\");\n return 26;\n case 40:\n this.begin(\"ID\");\n return 28;\n case 41:\n return 34;\n case 42:\n return 35;\n case 43:\n this.begin(\"acc_title\");\n return 36;\n case 44:\n this.popState();\n return \"acc_title_value\";\n case 45:\n this.begin(\"acc_descr\");\n return 38;\n case 46:\n this.popState();\n return \"acc_descr_value\";\n case 47:\n this.begin(\"acc_descr_multiline\");\n break;\n case 48:\n this.popState();\n break;\n case 49:\n return \"acc_descr_multiline_value\";\n case 50:\n return 7;\n case 51:\n return 23;\n case 52:\n return 25;\n case 53:\n return 68;\n case 54:\n return 5;\n case 55:\n yy_.yytext = yy_.yytext.trim();\n return 74;\n case 56:\n return 77;\n case 57:\n return 78;\n case 58:\n return 75;\n case 59:\n return 76;\n case 60:\n return 79;\n case 61:\n return 80;\n case 62:\n return 81;\n case 63:\n return 82;\n case 64:\n return 83;\n case 65:\n return 72;\n case 66:\n return 73;\n case 67:\n return 5;\n case 68:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[0-9]+(?=[ \\n]+))/i, /^(?:box\\b)/i, /^(?:participant\\b)/i, /^(?:actor\\b)/i, /^(?:[^\\->:\\n,;]+?([\\-]*[^\\->:\\n,;]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/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, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\\)])/i, /^(?:--[\\)])/i, /^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i, /^(?:\\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [48, 49], \"inclusive\": false }, \"acc_descr\": { \"rules\": [46], \"inclusive\": false }, \"acc_title\": { \"rules\": [44], \"inclusive\": false }, \"open_directive\": { \"rules\": [1, 8], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3, 8], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4, 8], \"inclusive\": false }, \"ID\": { \"rules\": [7, 8, 15], \"inclusive\": false }, \"ALIAS\": { \"rules\": [7, 8, 16, 17], \"inclusive\": false }, \"LINE\": { \"rules\": [7, 8, 29], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet prevActor = void 0;\nlet actors = {};\nlet boxes = [];\nlet messages = [];\nlet sequenceNumbersEnabled = false;\nlet wrapEnabled;\nlet currentBox = void 0;\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst addBox = function(data) {\n boxes.push({\n name: data.text,\n wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,\n fill: data.color,\n actorKeys: []\n });\n currentBox = boxes.slice(-1)[0];\n};\nconst addActor = function(id, name, description, type) {\n let assignedBox = currentBox;\n const old = actors[id];\n if (old) {\n if (currentBox && old.box && currentBox !== old.box) {\n throw new Error(\n \"A same participant should only be defined in one Box: \" + old.name + \" can't be in '\" + old.box.name + \"' and in '\" + currentBox.name + \"' at the same time.\"\n );\n }\n assignedBox = old.box ? old.box : currentBox;\n old.box = assignedBox;\n if (old && name === old.name && description == null) {\n return;\n }\n }\n if (description == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n if (type == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n actors[id] = {\n box: assignedBox,\n name,\n description: description.text,\n wrap: description.wrap === void 0 && autoWrap() || !!description.wrap,\n prevActor,\n links: {},\n properties: {},\n actorCnt: null,\n rectData: null,\n type: type || \"participant\"\n };\n if (prevActor && actors[prevActor]) {\n actors[prevActor].nextActor = id;\n }\n if (currentBox) {\n currentBox.actorKeys.push(id);\n }\n prevActor = id;\n};\nconst activationCount = (part) => {\n let i;\n let count = 0;\n for (i = 0; i < messages.length; i++) {\n if (messages[i].type === LINETYPE.ACTIVE_START && messages[i].from.actor === part) {\n count++;\n }\n if (messages[i].type === LINETYPE.ACTIVE_END && messages[i].from.actor === part) {\n count--;\n }\n }\n return count;\n};\nconst addMessage = function(idFrom, idTo, message, answer) {\n messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n answer\n });\n};\nconst addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType) {\n if (messageType === LINETYPE.ACTIVE_END) {\n const cnt = activationCount(idFrom.actor);\n if (cnt < 1) {\n let error = new Error(\"Trying to inactivate an inactive participant (\" + idFrom.actor + \")\");\n error.hash = {\n text: \"->>-\",\n token: \"->>-\",\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"'ACTIVE_PARTICIPANT'\"]\n };\n throw error;\n }\n }\n messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: messageType\n });\n return true;\n};\nconst hasAtLeastOneBox = function() {\n return boxes.length > 0;\n};\nconst hasAtLeastOneBoxWithTitle = function() {\n return boxes.some((b) => b.name);\n};\nconst getMessages = function() {\n return messages;\n};\nconst getBoxes = function() {\n return boxes;\n};\nconst getActors = function() {\n return actors;\n};\nconst getActor = function(id) {\n return actors[id];\n};\nconst getActorKeys = function() {\n return Object.keys(actors);\n};\nconst enableSequenceNumbers = function() {\n sequenceNumbersEnabled = true;\n};\nconst disableSequenceNumbers = function() {\n sequenceNumbersEnabled = false;\n};\nconst showSequenceNumbers = () => sequenceNumbersEnabled;\nconst setWrap = function(wrapSetting) {\n wrapEnabled = wrapSetting;\n};\nconst autoWrap = () => {\n if (wrapEnabled !== void 0) {\n return wrapEnabled;\n }\n return getConfig().sequence.wrap;\n};\nconst clear = function() {\n actors = {};\n boxes = [];\n messages = [];\n sequenceNumbersEnabled = false;\n clear$1();\n};\nconst parseMessage = function(str) {\n const _str = str.trim();\n const message = {\n text: _str.replace(/^:?(?:no)?wrap:/, \"\").trim(),\n wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0\n };\n log.debug(\"parseMessage:\", message);\n return message;\n};\nconst parseBoxData = function(str) {\n const match = str.match(/^((?:rgba?|hsla?)\\s*\\(.*\\)|\\w*)(.*)$/);\n let color = match != null && match[1] ? match[1].trim() : \"transparent\";\n let title = match != null && match[2] ? match[2].trim() : void 0;\n if (window && window.CSS) {\n if (!window.CSS.supports(\"color\", color)) {\n color = \"transparent\";\n title = str.trim();\n }\n } else {\n const style = new Option().style;\n style.color = color;\n if (style.color !== color) {\n color = \"transparent\";\n title = str.trim();\n }\n }\n const boxData = {\n color,\n text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, \"\"), getConfig()) : void 0,\n wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0\n };\n return boxData;\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n AUTONUMBER: 26,\n CRITICAL_START: 27,\n CRITICAL_OPTION: 28,\n CRITICAL_END: 29,\n BREAK_START: 30,\n BREAK_END: 31,\n PAR_OVER_START: 32\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst addNote = function(actor, placement, message) {\n ({\n actor,\n placement,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap\n });\n const actors2 = [].concat(actor, actor);\n messages.push({\n from: actors2[0],\n to: actors2[1],\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: LINETYPE.NOTE,\n placement\n });\n};\nconst addLinks = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n const links = JSON.parse(sanitizedText);\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nconst addALink = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n const links = {};\n let sanitizedText = sanitizeText(text.text, getConfig());\n var sep = sanitizedText.indexOf(\"@\");\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n var label = sanitizedText.slice(0, sep - 1).trim();\n var link = sanitizedText.slice(sep + 1).trim();\n links[label] = link;\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nfunction insertLinks(actor, links) {\n if (actor.links == null) {\n actor.links = links;\n } else {\n for (let key in links) {\n actor.links[key] = links[key];\n }\n }\n}\nconst addProperties = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n const properties = JSON.parse(sanitizedText);\n insertProperties(actor, properties);\n } catch (e) {\n log.error(\"error while parsing actor properties text\", e);\n }\n};\nfunction insertProperties(actor, properties) {\n if (actor.properties == null) {\n actor.properties = properties;\n } else {\n for (let key in properties) {\n actor.properties[key] = properties[key];\n }\n }\n}\nfunction boxEnd() {\n currentBox = void 0;\n}\nconst addDetails = function(actorId, text) {\n const actor = getActor(actorId);\n const elem = document.getElementById(text.text);\n try {\n const text2 = elem.innerHTML;\n const details = JSON.parse(text2);\n if (details[\"properties\"]) {\n insertProperties(actor, details[\"properties\"]);\n }\n if (details[\"links\"]) {\n insertLinks(actor, details[\"links\"]);\n }\n } catch (e) {\n log.error(\"error while parsing actor details text\", e);\n }\n};\nconst getActorProperty = function(actor, key) {\n if (actor !== void 0 && actor.properties !== void 0) {\n return actor.properties[key];\n }\n return void 0;\n};\nconst apply = function(param) {\n if (Array.isArray(param)) {\n param.forEach(function(item) {\n apply(item);\n });\n } else {\n switch (param.type) {\n case \"sequenceIndex\":\n messages.push({\n from: void 0,\n to: void 0,\n message: {\n start: param.sequenceIndex,\n step: param.sequenceIndexStep,\n visible: param.sequenceVisible\n },\n wrap: false,\n type: param.signalType\n });\n break;\n case \"addParticipant\":\n addActor(param.actor, param.actor, param.description, \"participant\");\n break;\n case \"addActor\":\n addActor(param.actor, param.actor, param.description, \"actor\");\n break;\n case \"activeStart\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"activeEnd\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"addNote\":\n addNote(param.actor, param.placement, param.text);\n break;\n case \"addLinks\":\n addLinks(param.actor, param.text);\n break;\n case \"addALink\":\n addALink(param.actor, param.text);\n break;\n case \"addProperties\":\n addProperties(param.actor, param.text);\n break;\n case \"addDetails\":\n addDetails(param.actor, param.text);\n break;\n case \"addMessage\":\n addSignal(param.from, param.to, param.msg, param.signalType);\n break;\n case \"boxStart\":\n addBox(param.boxData);\n break;\n case \"boxEnd\":\n boxEnd();\n break;\n case \"loopStart\":\n addSignal(void 0, void 0, param.loopText, param.signalType);\n break;\n case \"loopEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"rectStart\":\n addSignal(void 0, void 0, param.color, param.signalType);\n break;\n case \"rectEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"optStart\":\n addSignal(void 0, void 0, param.optText, param.signalType);\n break;\n case \"optEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"altStart\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"else\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"altEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"setAccTitle\":\n setAccTitle(param.text);\n break;\n case \"parStart\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"and\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"parEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"criticalStart\":\n addSignal(void 0, void 0, param.criticalText, param.signalType);\n break;\n case \"option\":\n addSignal(void 0, void 0, param.optionText, param.signalType);\n break;\n case \"criticalEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"breakStart\":\n addSignal(void 0, void 0, param.breakText, param.signalType);\n break;\n case \"breakEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n }\n }\n};\nconst db = {\n addActor,\n addMessage,\n addSignal,\n addLinks,\n addDetails,\n addProperties,\n autoWrap,\n setWrap,\n enableSequenceNumbers,\n disableSequenceNumbers,\n showSequenceNumbers,\n getMessages,\n getActors,\n getActor,\n getActorKeys,\n getActorProperty,\n getAccTitle,\n getBoxes,\n getDiagramTitle,\n setDiagramTitle,\n parseDirective,\n getConfig: () => getConfig().sequence,\n clear,\n parseMessage,\n parseBoxData,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n addNote,\n setAccTitle,\n apply,\n setAccDescription,\n getAccDescription,\n hasAtLeastOneBox,\n hasAtLeastOneBoxWithTitle\n};\nconst getStyles = (options) => `.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n #arrowhead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${options.signalColor};\n }\n\n #crosshead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n`;\nconst styles = getStyles;\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst addPopupInteraction = (id, actorCnt2) => {\n addFunction(() => {\n const arr = document.querySelectorAll(id);\n if (arr.length === 0) {\n return;\n }\n arr[0].addEventListener(\"mouseover\", function() {\n popupMenuUpFunc(\"actor\" + actorCnt2 + \"_popup\");\n });\n arr[0].addEventListener(\"mouseout\", function() {\n popupMenuDownFunc(\"actor\" + actorCnt2 + \"_popup\");\n });\n });\n};\nconst drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {\n if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {\n return { height: 0, width: 0 };\n }\n const links = actor.links;\n const actorCnt2 = actor.actorCnt;\n const rectData = actor.rectData;\n var displayValue = \"none\";\n if (forceMenus) {\n displayValue = \"block !important\";\n }\n const g = elem.append(\"g\");\n g.attr(\"id\", \"actor\" + actorCnt2 + \"_popup\");\n g.attr(\"class\", \"actorPopupMenu\");\n g.attr(\"display\", displayValue);\n addPopupInteraction(\"#actor\" + actorCnt2 + \"_popup\", actorCnt2);\n var actorClass = \"\";\n if (rectData.class !== void 0) {\n actorClass = \" \" + rectData.class;\n }\n let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;\n const rectElem = g.append(\"rect\");\n rectElem.attr(\"class\", \"actorPopupMenuPanel\" + actorClass);\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.height);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", menuWidth);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (links != null) {\n var linkY = 20;\n for (let key in links) {\n var linkElem = g.append(\"a\");\n var sanitizedLink = sanitizeUrl(links[key]);\n linkElem.attr(\"xlink:href\", sanitizedLink);\n linkElem.attr(\"target\", \"_blank\");\n _drawMenuItemTextCandidateFunc(textAttrs)(\n key,\n linkElem,\n rectData.x + 10,\n rectData.height + linkY,\n menuWidth,\n 20,\n { class: \"actor\" },\n textAttrs\n );\n linkY += 30;\n }\n }\n rectElem.attr(\"height\", linkY);\n return { height: rectData.height + linkY, width: menuWidth };\n};\nconst popupMenu = function(popid) {\n return \"var pu = document.getElementById('\" + popid + \"'); if (pu != null) { pu.style.display = 'block'; }\";\n};\nconst popdownMenu = function(popid) {\n return \"var pu = document.getElementById('\" + popid + \"'); if (pu != null) { pu.style.display = 'none'; }\";\n};\nconst popupMenuUpFunc = function(popupId) {\n var pu = document.getElementById(popupId);\n if (pu != null) {\n pu.style.display = \"block\";\n }\n};\nconst popupMenuDownFunc = function(popupId) {\n var pu = document.getElementById(popupId);\n if (pu != null) {\n pu.style.display = \"none\";\n }\n};\nconst drawText = function(elem, textData) {\n let prevTextHeight = 0;\n let textHeight = 0;\n const lines = textData.text.split(common.lineBreakRegex);\n const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);\n let textElems = [];\n let dy = 0;\n let yfunc = () => textData.y;\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n switch (textData.valign) {\n case \"top\":\n case \"start\":\n yfunc = () => Math.round(textData.y + textData.textMargin);\n break;\n case \"middle\":\n case \"center\":\n yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);\n break;\n case \"bottom\":\n case \"end\":\n yfunc = () => Math.round(\n textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin\n );\n break;\n }\n }\n if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {\n switch (textData.anchor) {\n case \"left\":\n case \"start\":\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = \"start\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"middle\":\n case \"center\":\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = \"middle\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"right\":\n case \"end\":\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = \"end\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n }\n }\n for (let [i, line] of lines.entries()) {\n if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {\n dy = i * _textFontSize;\n }\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", yfunc());\n if (textData.anchor !== void 0) {\n textElem.attr(\"text-anchor\", textData.anchor).attr(\"dominant-baseline\", textData.dominantBaseline).attr(\"alignment-baseline\", textData.alignmentBaseline);\n }\n if (textData.fontFamily !== void 0) {\n textElem.style(\"font-family\", textData.fontFamily);\n }\n if (_textFontSizePx !== void 0) {\n textElem.style(\"font-size\", _textFontSizePx);\n }\n if (textData.fontWeight !== void 0) {\n textElem.style(\"font-weight\", textData.fontWeight);\n }\n if (textData.fill !== void 0) {\n textElem.attr(\"fill\", textData.fill);\n }\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n if (textData.dy !== void 0) {\n textElem.attr(\"dy\", textData.dy);\n } else if (dy !== 0) {\n textElem.attr(\"dy\", dy);\n }\n const text = line || ZERO_WIDTH_SPACE;\n if (textData.tspan) {\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x);\n if (textData.fill !== void 0) {\n span.attr(\"fill\", textData.fill);\n }\n span.text(text);\n } else {\n textElem.text(text);\n }\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n textElems.push(textElem);\n }\n return textElems;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.height / 2;\n drawText(elem, txtObject);\n return polygon;\n};\nlet actorCnt = -1;\nconst fixLifeLineHeights = (diagram2, bounds2) => {\n if (!diagram2.selectAll) {\n return;\n }\n diagram2.selectAll(\".actor-line\").attr(\"class\", \"200\").attr(\"y2\", bounds2 - 55);\n};\nconst drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {\n const center = actor.x + actor.width / 2;\n const centerY = actor.y + 5;\n const boxpluslineGroup = elem.append(\"g\");\n var g = boxpluslineGroup;\n if (!isFooter) {\n actorCnt++;\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n g = boxpluslineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n addPopupInteraction(\"#root-\" + actorCnt, actorCnt);\n }\n }\n const rect = getNoteRect$1();\n var cssclass = \"actor\";\n if (actor.properties != null && actor.properties[\"class\"]) {\n cssclass = actor.properties[\"class\"];\n } else {\n rect.fill = \"#eaeaea\";\n }\n rect.x = actor.x;\n rect.y = actor.y;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.rx = 3;\n rect.ry = 3;\n const rectElem = drawRect(g, rect);\n actor.rectData = rect;\n if (actor.properties != null && actor.properties[\"icon\"]) {\n const iconSrc = actor.properties[\"icon\"].trim();\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));\n } else {\n drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);\n }\n }\n _drawTextCandidateFunc(conf2)(\n actor.description,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n let height = actor.height;\n if (rectElem.node) {\n const bounds2 = rectElem.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n};\nconst drawActorTypeActor = function(elem, actor, conf2, isFooter) {\n const center = actor.x + actor.width / 2;\n const centerY = actor.y + 80;\n if (!isFooter) {\n actorCnt++;\n elem.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n }\n const actElem = elem.append(\"g\");\n actElem.attr(\"class\", \"actor-man\");\n const rect = getNoteRect$1();\n rect.x = actor.x;\n rect.y = actor.y;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n rect.rx = 3;\n rect.ry = 3;\n actElem.append(\"line\").attr(\"id\", \"actor-man-torso\" + actorCnt).attr(\"x1\", center).attr(\"y1\", actor.y + 25).attr(\"x2\", center).attr(\"y2\", actor.y + 45);\n actElem.append(\"line\").attr(\"id\", \"actor-man-arms\" + actorCnt).attr(\"x1\", center - 18).attr(\"y1\", actor.y + 33).attr(\"x2\", center + 18).attr(\"y2\", actor.y + 33);\n actElem.append(\"line\").attr(\"x1\", center - 18).attr(\"y1\", actor.y + 60).attr(\"x2\", center).attr(\"y2\", actor.y + 45);\n actElem.append(\"line\").attr(\"x1\", center).attr(\"y1\", actor.y + 45).attr(\"x2\", center + 16).attr(\"y2\", actor.y + 60);\n const circle = actElem.append(\"circle\");\n circle.attr(\"cx\", actor.x + actor.width / 2);\n circle.attr(\"cy\", actor.y + 10);\n circle.attr(\"r\", 15);\n circle.attr(\"width\", actor.width);\n circle.attr(\"height\", actor.height);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height;\n _drawTextCandidateFunc(conf2)(\n actor.description,\n actElem,\n rect.x,\n rect.y + 35,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n return actor.height;\n};\nconst drawActor = function(elem, actor, conf2, isFooter) {\n switch (actor.type) {\n case \"actor\":\n return drawActorTypeActor(elem, actor, conf2, isFooter);\n case \"participant\":\n return drawActorTypeParticipant(elem, actor, conf2, isFooter);\n }\n};\nconst drawBox = function(elem, box, conf2) {\n const boxplustextGroup = elem.append(\"g\");\n const g = boxplustextGroup;\n drawBackgroundRect(g, box);\n if (box.name) {\n _drawTextCandidateFunc(conf2)(\n box.name,\n g,\n box.x,\n box.y + (box.textMaxHeight || 0) / 2,\n box.width,\n 0,\n { class: \"text\" },\n conf2\n );\n }\n g.lower();\n};\nconst anchorElement = function(elem) {\n return elem.append(\"g\");\n};\nconst drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {\n const rect = getNoteRect$1();\n const g = bounds2.anchored;\n rect.x = bounds2.startx;\n rect.y = bounds2.starty;\n rect.class = \"activation\" + actorActivations2 % 3;\n rect.width = bounds2.stopx - bounds2.startx;\n rect.height = verticalPos - bounds2.starty;\n drawRect(g, rect);\n};\nconst drawLoop = function(elem, loopModel, labelText, conf2) {\n const {\n boxMargin,\n boxTextMargin,\n labelBoxHeight,\n labelBoxWidth,\n messageFontFamily: fontFamily,\n messageFontSize: fontSize,\n messageFontWeight: fontWeight\n } = conf2;\n const g = elem.append(\"g\");\n const drawLoopLine = function(startx, starty, stopx, stopy) {\n return g.append(\"line\").attr(\"x1\", startx).attr(\"y1\", starty).attr(\"x2\", stopx).attr(\"y2\", stopy).attr(\"class\", \"loopLine\");\n };\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);\n drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);\n if (loopModel.sections !== void 0) {\n loopModel.sections.forEach(function(item) {\n drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(\n \"stroke-dasharray\",\n \"3, 3\"\n );\n });\n }\n let txt = getTextObj$1();\n txt.text = labelText;\n txt.x = loopModel.startx;\n txt.y = loopModel.starty;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.width = labelBoxWidth || 50;\n txt.height = labelBoxHeight || 20;\n txt.textMargin = boxTextMargin;\n txt.class = \"labelText\";\n drawLabel(g, txt);\n txt = getTextObj();\n txt.text = loopModel.title;\n txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.starty + boxMargin + boxTextMargin;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.textMargin = boxTextMargin;\n txt.class = \"loopText\";\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = true;\n let textElem = drawText(g, txt);\n if (loopModel.sectionTitles !== void 0) {\n loopModel.sectionTitles.forEach(function(item, idx) {\n if (item.message) {\n txt.text = item.message;\n txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;\n txt.class = \"loopText\";\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = loopModel.wrap;\n textElem = drawText(g, txt);\n let sectionHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);\n }\n });\n }\n loopModel.height = Math.round(loopModel.stopy - loopModel.starty);\n return g;\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.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\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.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\");\n};\nconst insertSequenceNumber = function(elem) {\n elem.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);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 4).attr(\"refY\", 5);\n marker.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\");\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: void 0,\n style: \"#666\",\n width: void 0,\n height: void 0,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: void 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").style(\"font-size\", _actorFontSizePx).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst _drawMenuItemTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").style(\"font-size\", actorFontSize).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawText,\n drawLabel,\n drawActor,\n drawBox,\n drawPopup,\n anchorElement,\n drawActivation,\n drawLoop,\n drawBackgroundRect,\n insertArrowHead,\n insertArrowFilledHead,\n insertSequenceNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj,\n getNoteRect,\n popupMenu,\n popdownMenu,\n fixLifeLineHeights,\n sanitizeUrl\n};\nlet conf = {};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n activations: [],\n models: {\n getHeight: function() {\n return Math.max.apply(\n null,\n this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)\n ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));\n },\n clear: function() {\n this.actors = [];\n this.boxes = [];\n this.loops = [];\n this.messages = [];\n this.notes = [];\n },\n addBox: function(boxModel) {\n this.boxes.push(boxModel);\n },\n addActor: function(actorModel) {\n this.actors.push(actorModel);\n },\n addLoop: function(loopModel) {\n this.loops.push(loopModel);\n },\n addMessage: function(msgModel) {\n this.messages.push(msgModel);\n },\n addNote: function(noteModel) {\n this.notes.push(noteModel);\n },\n lastActor: function() {\n return this.actors[this.actors.length - 1];\n },\n lastLoop: function() {\n return this.loops[this.loops.length - 1];\n },\n lastMessage: function() {\n return this.messages[this.messages.length - 1];\n },\n lastNote: function() {\n return this.notes[this.notes.length - 1];\n },\n actors: [],\n boxes: [],\n loops: [],\n messages: [],\n notes: []\n },\n init: function() {\n this.sequenceItems = [];\n this.activations = [];\n this.models.clear();\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n setConf(getConfig());\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n this.activations.forEach(updateFn(\"activation\"));\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = common.getMin(startx, stopx);\n const _stopx = common.getMax(startx, stopx);\n const _starty = common.getMin(starty, stopy);\n const _stopy = common.getMax(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n newActivation: function(message, diagram2, actors2) {\n const actorRect = actors2[message.from.actor];\n const stackedSize = actorActivations(message.from.actor).length || 0;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n this.activations.push({\n startx: x,\n starty: this.verticalPos + 2,\n stopx: x + conf.activationWidth,\n stopy: void 0,\n actor: message.from.actor,\n anchored: svgDraw.anchorElement(diagram2)\n });\n },\n endActivation: function(message) {\n const lastActorActivationIdx = this.activations.map(function(activation) {\n return activation.actor;\n }).lastIndexOf(message.from.actor);\n return this.activations.splice(lastActorActivationIdx, 1)[0];\n },\n createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n return {\n startx: void 0,\n starty: this.verticalPos,\n stopx: void 0,\n stopy: void 0,\n title: title.message,\n wrap: title.wrap,\n width: title.width,\n height: 0,\n fill\n };\n },\n newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n this.sequenceItems.push(this.createLoop(title, fill));\n },\n endLoop: function() {\n return this.sequenceItems.pop();\n },\n isLoopOverlap: function() {\n return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;\n },\n addSectionToLoop: function(message) {\n const loop = this.sequenceItems.pop();\n loop.sections = loop.sections || [];\n loop.sectionTitles = loop.sectionTitles || [];\n loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });\n loop.sectionTitles.push(message);\n this.sequenceItems.push(loop);\n },\n saveVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.savedVerticalPos = this.verticalPos;\n }\n },\n resetVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.verticalPos = this.savedVerticalPos;\n }\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = common.getMax(this.data.stopy, this.verticalPos);\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return { bounds: this.data, models: this.models };\n }\n};\nconst drawNote = function(elem, noteModel) {\n bounds.bumpVerticalPos(conf.boxMargin);\n noteModel.height = conf.boxMargin;\n noteModel.starty = bounds.getVerticalPos();\n const rect = getNoteRect$1();\n rect.x = noteModel.startx;\n rect.y = noteModel.starty;\n rect.width = noteModel.width || conf.width;\n rect.class = \"note\";\n const g = elem.append(\"g\");\n const rectElem = svgDraw.drawRect(g, rect);\n const textObj = getTextObj$1();\n textObj.x = noteModel.startx;\n textObj.y = noteModel.starty;\n textObj.width = rect.width;\n textObj.dy = \"1em\";\n textObj.text = noteModel.message;\n textObj.class = \"noteText\";\n textObj.fontFamily = conf.noteFontFamily;\n textObj.fontSize = conf.noteFontSize;\n textObj.fontWeight = conf.noteFontWeight;\n textObj.anchor = conf.noteAlign;\n textObj.textMargin = conf.noteMargin;\n textObj.valign = \"center\";\n const textElem = drawText(g, textObj);\n const textHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n rectElem.attr(\"height\", textHeight + 2 * conf.noteMargin);\n noteModel.height += textHeight + 2 * conf.noteMargin;\n bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);\n noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;\n noteModel.stopx = noteModel.startx + rect.width;\n bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);\n bounds.models.addNote(noteModel);\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nconst noteFont = (cnf) => {\n return {\n fontFamily: cnf.noteFontFamily,\n fontSize: cnf.noteFontSize,\n fontWeight: cnf.noteFontWeight\n };\n};\nconst actorFont = (cnf) => {\n return {\n fontFamily: cnf.actorFontFamily,\n fontSize: cnf.actorFontSize,\n fontWeight: cnf.actorFontWeight\n };\n};\nfunction boundMessage(_diagram, msgModel) {\n bounds.bumpVerticalPos(10);\n const { startx, stopx, message } = msgModel;\n const lines = common.splitBreaks(message).length;\n const textDims = utils.calculateTextDimensions(message, messageFont(conf));\n const lineHeight = textDims.height / lines;\n msgModel.height += lineHeight;\n bounds.bumpVerticalPos(lineHeight);\n let lineStartY;\n let totalOffset = textDims.height - 10;\n const textWidth = textDims.width;\n if (startx === stopx) {\n lineStartY = bounds.getVerticalPos() + totalOffset;\n if (!conf.rightAngles) {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n }\n totalOffset += 30;\n const dx = common.getMax(textWidth / 2, conf.width / 2);\n bounds.insert(\n startx - dx,\n bounds.getVerticalPos() - 10 + totalOffset,\n stopx + dx,\n bounds.getVerticalPos() + 30 + totalOffset\n );\n } else {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n bounds.insert(startx, lineStartY - 10, stopx, lineStartY);\n }\n bounds.bumpVerticalPos(totalOffset);\n msgModel.height += totalOffset;\n msgModel.stopy = msgModel.starty + msgModel.height;\n bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);\n return lineStartY;\n}\nconst drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {\n const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;\n const textDims = utils.calculateTextDimensions(message, messageFont(conf));\n const textObj = getTextObj$1();\n textObj.x = startx;\n textObj.y = starty + 10;\n textObj.width = stopx - startx;\n textObj.class = \"messageText\";\n textObj.dy = \"1em\";\n textObj.text = message;\n textObj.fontFamily = conf.messageFontFamily;\n textObj.fontSize = conf.messageFontSize;\n textObj.fontWeight = conf.messageFontWeight;\n textObj.anchor = conf.messageAlign;\n textObj.valign = \"center\";\n textObj.textMargin = conf.wrapPadding;\n textObj.tspan = false;\n drawText(diagram2, textObj);\n const textWidth = textDims.width;\n let line;\n if (startx === stopx) {\n if (conf.rightAngles) {\n line = diagram2.append(\"path\").attr(\n \"d\",\n `M ${startx},${lineStartY} H ${startx + common.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`\n );\n } else {\n line = diagram2.append(\"path\").attr(\n \"d\",\n \"M \" + startx + \",\" + lineStartY + \" C \" + (startx + 60) + \",\" + (lineStartY - 10) + \" \" + (startx + 60) + \",\" + (lineStartY + 30) + \" \" + startx + \",\" + (lineStartY + 20)\n );\n }\n } else {\n line = diagram2.append(\"line\");\n line.attr(\"x1\", startx);\n line.attr(\"y1\", lineStartY);\n line.attr(\"x2\", stopx);\n line.attr(\"y2\", lineStartY);\n }\n if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {\n line.style(\"stroke-dasharray\", \"3, 3\");\n line.attr(\"class\", \"messageLine1\");\n } else {\n line.attr(\"class\", \"messageLine0\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n line.attr(\"stroke-width\", 2);\n line.attr(\"stroke\", \"none\");\n line.style(\"fill\", \"none\");\n if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {\n line.attr(\"marker-end\", \"url(\" + url + \"#filled-head)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {\n line.attr(\"marker-end\", \"url(\" + url + \"#crosshead)\");\n }\n if (sequenceVisible || conf.showSequenceNumbers) {\n line.attr(\"marker-start\", \"url(\" + url + \"#sequencenumber)\");\n diagram2.append(\"text\").attr(\"x\", startx).attr(\"y\", lineStartY + 4).attr(\"font-family\", \"sans-serif\").attr(\"font-size\", \"12px\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"sequenceNumber\").text(sequenceIndex);\n }\n};\nconst drawActors = function(diagram2, actors2, actorKeys, verticalPos, configuration, messages2, isFooter) {\n if (configuration.hideUnusedParticipants === true) {\n const newActors = /* @__PURE__ */ new Set();\n messages2.forEach((message) => {\n newActors.add(message.from);\n newActors.add(message.to);\n });\n actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));\n }\n let prevWidth = 0;\n let prevMargin = 0;\n let maxHeight = 0;\n let prevBox = void 0;\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n const box = actor.box;\n if (prevBox && prevBox != box) {\n if (!isFooter) {\n bounds.models.addBox(prevBox);\n }\n prevMargin += conf.boxMargin + prevBox.margin;\n }\n if (box && box != prevBox) {\n if (!isFooter) {\n box.x = prevWidth + prevMargin;\n box.y = verticalPos;\n }\n prevMargin += box.margin;\n }\n actor.width = actor.width || conf.width;\n actor.height = common.getMax(actor.height || conf.height, conf.height);\n actor.margin = actor.margin || conf.actorMargin;\n actor.x = prevWidth + prevMargin;\n actor.y = bounds.getVerticalPos();\n const height = svgDraw.drawActor(diagram2, actor, conf, isFooter);\n maxHeight = common.getMax(maxHeight, height);\n bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);\n prevWidth += actor.width + prevMargin;\n if (actor.box) {\n actor.box.width = prevWidth + box.margin - actor.box.x;\n }\n prevMargin = actor.margin;\n prevBox = actor.box;\n bounds.models.addActor(actor);\n }\n if (prevBox && !isFooter) {\n bounds.models.addBox(prevBox);\n }\n bounds.bumpVerticalPos(maxHeight);\n};\nconst drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {\n let maxHeight = 0;\n let maxWidth = 0;\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n const minMenuWidth = getRequiredPopupWidth(actor);\n const menuDimensions = svgDraw.drawPopup(\n diagram2,\n actor,\n minMenuWidth,\n conf,\n conf.forceMenus,\n doc\n );\n if (menuDimensions.height > maxHeight) {\n maxHeight = menuDimensions.height;\n }\n if (menuDimensions.width + actor.x > maxWidth) {\n maxWidth = menuDimensions.width + actor.x;\n }\n }\n return { maxHeight, maxWidth };\n};\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst actorActivations = function(actor) {\n return bounds.activations.filter(function(activation) {\n return activation.actor === actor;\n });\n};\nconst activationBounds = function(actor, actors2) {\n const actorObj = actors2[actor];\n const activations = actorActivations(actor);\n const left = activations.reduce(function(acc, activation) {\n return common.getMin(acc, activation.startx);\n }, actorObj.x + actorObj.width / 2);\n const right = activations.reduce(function(acc, activation) {\n return common.getMax(acc, activation.stopx);\n }, actorObj.x + actorObj.width / 2);\n return [left, right];\n};\nfunction adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {\n bounds.bumpVerticalPos(preMargin);\n let heightAdjust = postMargin;\n if (msg.id && msg.message && loopWidths[msg.id]) {\n const loopWidth = loopWidths[msg.id].width;\n const textConf = messageFont(conf);\n msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);\n msg.width = loopWidth;\n msg.wrap = true;\n const textDims = utils.calculateTextDimensions(msg.message, textConf);\n const totalOffset = common.getMax(textDims.height, conf.labelBoxHeight);\n heightAdjust = postMargin + totalOffset;\n log.debug(`${totalOffset} - ${msg.message}`);\n }\n addLoopFn(msg);\n bounds.bumpVerticalPos(heightAdjust);\n}\nconst draw = function(_text, id, _version, diagObj) {\n const { securityLevel, sequence } = getConfig();\n conf = sequence;\n diagObj.db.clear();\n diagObj.parser.parse(_text);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n bounds.init();\n log.debug(diagObj.db);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const actors2 = diagObj.db.getActors();\n const boxes2 = diagObj.db.getBoxes();\n const actorKeys = diagObj.db.getActorKeys();\n const messages2 = diagObj.db.getMessages();\n const title = diagObj.db.getDiagramTitle();\n const hasBoxes = diagObj.db.hasAtLeastOneBox();\n const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();\n const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);\n conf.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n if (hasBoxTitles) {\n bounds.bumpVerticalPos(boxes2[0].textMaxHeight);\n }\n }\n drawActors(diagram2, actors2, actorKeys, 0, conf, messages2, false);\n const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n svgDraw.insertSequenceNumber(diagram2);\n function activeEnd(msg, verticalPos) {\n const activationData = bounds.endActivation(msg);\n if (activationData.starty + 18 > verticalPos) {\n activationData.starty = verticalPos - 6;\n verticalPos += 12;\n }\n svgDraw.drawActivation(\n diagram2,\n activationData,\n verticalPos,\n conf,\n actorActivations(msg.from.actor).length\n );\n bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);\n }\n let sequenceIndex = 1;\n let sequenceIndexStep = 1;\n const messagesToDraw = [];\n messages2.forEach(function(msg) {\n let loopModel, noteModel, msgModel;\n switch (msg.type) {\n case diagObj.db.LINETYPE.NOTE:\n bounds.resetVerticalPos();\n noteModel = msg.noteModel;\n drawNote(diagram2, noteModel);\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n bounds.newActivation(msg, diagram2, actors2);\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n activeEnd(msg, bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.LOOP_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"loop\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.RECT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin,\n (message) => bounds.newLoop(void 0, message.message)\n );\n break;\n case diagObj.db.LINETYPE.RECT_END:\n loopModel = bounds.endLoop();\n svgDraw.drawBackgroundRect(diagram2, loopModel);\n bounds.models.addLoop(loopModel);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.OPT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.OPT_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"opt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.ALT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"alt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n bounds.saveVerticalPos();\n break;\n case diagObj.db.LINETYPE.PAR_AND:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.PAR_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"par\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.AUTONUMBER:\n sequenceIndex = msg.message.start || sequenceIndex;\n sequenceIndexStep = msg.message.step || sequenceIndexStep;\n if (msg.message.visible) {\n diagObj.db.enableSequenceNumbers();\n } else {\n diagObj.db.disableSequenceNumbers();\n }\n break;\n case diagObj.db.LINETYPE.CRITICAL_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"critical\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.BREAK_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.BREAK_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"break\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n default:\n try {\n bounds.resetVerticalPos();\n msgModel = msg.msgModel;\n msgModel.starty = bounds.getVerticalPos();\n msgModel.sequenceIndex = sequenceIndex;\n msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();\n const lineStartY = boundMessage(diagram2, msgModel);\n messagesToDraw.push({ messageModel: msgModel, lineStartY });\n bounds.models.addMessage(msgModel);\n } catch (e) {\n log.error(\"error while drawing message\", e);\n }\n }\n if ([\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n sequenceIndex = sequenceIndex + sequenceIndexStep;\n }\n });\n messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));\n if (conf.mirrorActors) {\n bounds.bumpVerticalPos(conf.boxMargin * 2);\n drawActors(diagram2, actors2, actorKeys, bounds.getVerticalPos(), conf, messages2, true);\n bounds.bumpVerticalPos(conf.boxMargin);\n fixLifeLineHeights(diagram2, bounds.getVerticalPos());\n }\n bounds.models.boxes.forEach(function(box2) {\n box2.height = bounds.getVerticalPos() - box2.y;\n bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);\n box2.startx = box2.x;\n box2.starty = box2.y;\n box2.stopx = box2.startx + box2.width;\n box2.stopy = box2.starty + box2.height;\n box2.stroke = \"rgb(0,0,0, 0.5)\";\n svgDraw.drawBox(diagram2, box2, conf);\n });\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n }\n const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);\n const { bounds: box } = bounds.getBounds();\n log.debug(\"For line height fix Querying: #\" + id + \" .actor-line\");\n const actorLines = selectAll(\"#\" + id + \" .actor-line\");\n actorLines.attr(\"y2\", box.stopy);\n let boxHeight = box.stopy - box.starty;\n if (boxHeight < requiredBoxSize.maxHeight) {\n boxHeight = requiredBoxSize.maxHeight;\n }\n let height = boxHeight + 2 * conf.diagramMarginY;\n if (conf.mirrorActors) {\n height = height - conf.boxMargin + conf.bottomMarginAdj;\n }\n let boxWidth = box.stopx - box.startx;\n if (boxWidth < requiredBoxSize.maxWidth) {\n boxWidth = requiredBoxSize.maxWidth;\n }\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr(\"y\", -25);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title ? 40 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, bounds.models);\n};\nfunction getMaxMessageWidthPerActor(actors2, messages2, diagObj) {\n const maxMessageWidthPerActor = {};\n messages2.forEach(function(msg) {\n if (actors2[msg.to] && actors2[msg.from]) {\n const actor = actors2[msg.to];\n if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {\n return;\n }\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {\n return;\n }\n const isNote = msg.placement !== void 0;\n const isMessage = !isNote;\n const textFont = isNote ? noteFont(conf) : messageFont(conf);\n const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;\n const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);\n const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;\n if (isMessage && msg.from === actor.nextActor) {\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === actor.prevActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === msg.to) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth / 2\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {\n if (actor.prevActor) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth / 2\n );\n }\n if (actor.nextActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n }\n }\n }\n });\n log.debug(\"maxMessageWidthPerActor:\", maxMessageWidthPerActor);\n return maxMessageWidthPerActor;\n}\nconst getRequiredPopupWidth = function(actor) {\n let requiredPopupWidth = 0;\n const textFont = actorFont(conf);\n for (const key in actor.links) {\n const labelDimensions = utils.calculateTextDimensions(key, textFont);\n const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;\n if (requiredPopupWidth < labelWidth) {\n requiredPopupWidth = labelWidth;\n }\n }\n return requiredPopupWidth;\n};\nfunction calculateActorMargins(actors2, actorToMessageWidth, boxes2) {\n let maxHeight = 0;\n Object.keys(actors2).forEach((prop) => {\n const actor = actors2[prop];\n if (actor.wrap) {\n actor.description = utils.wrapLabel(\n actor.description,\n conf.width - 2 * conf.wrapPadding,\n actorFont(conf)\n );\n }\n const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf));\n actor.width = actor.wrap ? conf.width : common.getMax(conf.width, actDims.width + 2 * conf.wrapPadding);\n actor.height = actor.wrap ? common.getMax(actDims.height, conf.height) : conf.height;\n maxHeight = common.getMax(maxHeight, actor.height);\n });\n for (const actorKey in actorToMessageWidth) {\n const actor = actors2[actorKey];\n if (!actor) {\n continue;\n }\n const nextActor = actors2[actor.nextActor];\n if (!nextActor) {\n const messageWidth2 = actorToMessageWidth[actorKey];\n const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;\n actor.margin = common.getMax(actorWidth2, conf.actorMargin);\n continue;\n }\n const messageWidth = actorToMessageWidth[actorKey];\n const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;\n actor.margin = common.getMax(actorWidth, conf.actorMargin);\n }\n let maxBoxHeight = 0;\n boxes2.forEach((box) => {\n const textFont = messageFont(conf);\n let totalWidth = box.actorKeys.reduce((total, aKey) => {\n return total += actors2[aKey].width + (actors2[aKey].margin || 0);\n }, 0);\n totalWidth -= 2 * conf.boxTextMargin;\n if (box.wrap) {\n box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);\n }\n const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);\n maxBoxHeight = common.getMax(boxMsgDimensions.height, maxBoxHeight);\n const minWidth = common.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);\n box.margin = conf.boxTextMargin;\n if (totalWidth < minWidth) {\n const missing = (minWidth - totalWidth) / 2;\n box.margin += missing;\n }\n });\n boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);\n return common.getMax(maxHeight, conf.height);\n}\nconst buildNoteModel = function(msg, actors2, diagObj) {\n const startx = actors2[msg.from].x;\n const stopx = actors2[msg.to].x;\n const shouldWrap = msg.wrap && msg.message;\n let textDimensions = utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,\n noteFont(conf)\n );\n const noteModel = {\n width: shouldWrap ? conf.width : common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin),\n height: 0,\n startx: actors2[msg.from].x,\n stopx: 0,\n starty: 0,\n stopy: 0,\n message: msg.message\n };\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width) : common.getMax(\n actors2[msg.from].width / 2 + actors2[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors2[msg.from].width + conf.actorMargin) / 2;\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common.getMax(\n actors2[msg.from].width / 2 + actors2[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf.actorMargin) / 2;\n } else if (msg.to === msg.from) {\n textDimensions = utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(\n msg.message,\n common.getMax(conf.width, actors2[msg.from].width),\n noteFont(conf)\n ) : msg.message,\n noteFont(conf)\n );\n noteModel.width = shouldWrap ? common.getMax(conf.width, actors2[msg.from].width) : common.getMax(\n actors2[msg.from].width,\n conf.width,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;\n } else {\n noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf.actorMargin;\n noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf.actorMargin / 2;\n }\n if (shouldWrap) {\n noteModel.message = utils.wrapLabel(\n msg.message,\n noteModel.width - 2 * conf.wrapPadding,\n noteFont(conf)\n );\n }\n log.debug(\n `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`\n );\n return noteModel;\n};\nconst buildMessageModel = function(msg, actors2, diagObj) {\n let process = false;\n if ([\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n process = true;\n }\n if (!process) {\n return {};\n }\n const fromBounds = activationBounds(msg.from, actors2);\n const toBounds = activationBounds(msg.to, actors2);\n const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;\n const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;\n const allBounds = [...fromBounds, ...toBounds];\n const boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);\n if (msg.wrap && msg.message) {\n msg.message = utils.wrapLabel(\n msg.message,\n common.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width),\n messageFont(conf)\n );\n }\n const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf));\n return {\n width: common.getMax(\n msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,\n boundedWidth + 2 * conf.wrapPadding,\n conf.width\n ),\n height: 0,\n startx: fromBounds[fromIdx],\n stopx: toBounds[toIdx],\n starty: 0,\n stopy: 0,\n message: msg.message,\n type: msg.type,\n wrap: msg.wrap,\n fromBounds: Math.min.apply(null, allBounds),\n toBounds: Math.max.apply(null, allBounds)\n };\n};\nconst calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {\n const loops = {};\n const stack = [];\n let current, noteModel, msgModel;\n messages2.forEach(function(msg) {\n msg.id = utils.random({ length: 10 });\n switch (msg.type) {\n case diagObj.db.LINETYPE.LOOP_START:\n case diagObj.db.LINETYPE.ALT_START:\n case diagObj.db.LINETYPE.OPT_START:\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n case diagObj.db.LINETYPE.CRITICAL_START:\n case diagObj.db.LINETYPE.BREAK_START:\n stack.push({\n id: msg.id,\n msg: msg.message,\n from: Number.MAX_SAFE_INTEGER,\n to: Number.MIN_SAFE_INTEGER,\n width: 0\n });\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n case diagObj.db.LINETYPE.PAR_AND:\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n if (msg.message) {\n current = stack.pop();\n loops[current.id] = current;\n loops[msg.id] = current;\n stack.push(current);\n }\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n case diagObj.db.LINETYPE.ALT_END:\n case diagObj.db.LINETYPE.OPT_END:\n case diagObj.db.LINETYPE.PAR_END:\n case diagObj.db.LINETYPE.CRITICAL_END:\n case diagObj.db.LINETYPE.BREAK_END:\n current = stack.pop();\n loops[current.id] = current;\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n {\n const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];\n const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n const toAdd = {\n startx: x,\n stopx: x + conf.activationWidth,\n actor: msg.from.actor,\n enabled: true\n };\n bounds.activations.push(toAdd);\n }\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n {\n const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);\n delete bounds.activations.splice(lastActorActivationIdx, 1)[0];\n }\n break;\n }\n const isNote = msg.placement !== void 0;\n if (isNote) {\n noteModel = buildNoteModel(msg, actors2, diagObj);\n msg.noteModel = noteModel;\n stack.forEach((stk) => {\n current = stk;\n current.from = common.getMin(current.from, noteModel.startx);\n current.to = common.getMax(current.to, noteModel.startx + noteModel.width);\n current.width = common.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;\n });\n } else {\n msgModel = buildMessageModel(msg, actors2, diagObj);\n msg.msgModel = msgModel;\n if (msgModel.startx && msgModel.stopx && stack.length > 0) {\n stack.forEach((stk) => {\n current = stk;\n if (msgModel.startx === msgModel.stopx) {\n const from = actors2[msg.from];\n const to = actors2[msg.to];\n current.from = common.getMin(\n from.x - msgModel.width / 2,\n from.x - from.width / 2,\n current.from\n );\n current.to = common.getMax(\n to.x + msgModel.width / 2,\n to.x + from.width / 2,\n current.to\n );\n current.width = common.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;\n } else {\n current.from = common.getMin(msgModel.startx, current.from);\n current.to = common.getMax(msgModel.stopx, current.to);\n current.width = common.getMax(current.width, msgModel.width) - conf.labelBoxWidth;\n }\n });\n }\n }\n });\n bounds.activations = [];\n log.debug(\"Loop type widths:\", loops);\n return loops;\n};\nconst renderer = {\n bounds,\n drawActors,\n drawActorsPopup,\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","prevActor","actors","boxes","messages","sequenceNumbersEnabled","wrapEnabled","currentBox","parseDirective","statement","context","type","mermaidAPI","addBox","data","autoWrap","addActor","id","name","description","assignedBox","old","activationCount","part","count","LINETYPE","addMessage","idFrom","idTo","message","answer","addSignal","messageType","hasAtLeastOneBox","hasAtLeastOneBoxWithTitle","b","getMessages","getBoxes","getActors","getActor","getActorKeys","enableSequenceNumbers","disableSequenceNumbers","showSequenceNumbers","setWrap","wrapSetting","getConfig","clear","clear$1","parseMessage","_str","log","parseBoxData","color","title","style","sanitizeText","ARROWTYPE","PLACEMENT","addNote","actor","placement","actors2","addLinks","actorId","text","sanitizedText","links","insertLinks","e","addALink","sep","label","link","key","addProperties","properties","insertProperties","boxEnd","addDetails","elem","text2","details","getActorProperty","apply","param","item","setAccTitle","db","getAccTitle","getDiagramTitle","setDiagramTitle","setAccDescription","getAccDescription","getStyles","options","styles","drawRect","rectData","drawRect$1","addPopupInteraction","actorCnt2","addFunction","arr","popupMenuUpFunc","popupMenuDownFunc","drawPopup","minMenuWidth","textAttrs","forceMenus","displayValue","g","actorClass","menuWidth","rectElem","linkY","linkElem","sanitizedLink","sanitizeUrl","_drawMenuItemTextCandidateFunc","popupMenu","popid","popdownMenu","popupId","pu","drawText","textData","prevTextHeight","textHeight","common","_textFontSize","_textFontSizePx","parseFontSize","textElems","dy","yfunc","line","textElem","ZERO_WIDTH_SPACE","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","actorCnt","fixLifeLineHeights","diagram2","bounds2","drawActorTypeParticipant","conf2","isFooter","center","centerY","boxpluslineGroup","rect","getNoteRect$1","cssclass","iconSrc","drawEmbeddedImage","drawImage","_drawTextCandidateFunc","drawActorTypeActor","actElem","circle","drawActor","drawBox","box","drawBackgroundRect","anchorElement","drawActivation","verticalPos","actorActivations2","drawLoop","loopModel","labelText","boxMargin","boxTextMargin","labelBoxHeight","labelBoxWidth","fontFamily","fontSize","fontWeight","drawLoopLine","startx","starty","stopx","stopy","txt","getTextObj$1","getTextObj","idx","sectionHeight","te","acc","curr","drawBackgroundRect$1","insertDatabaseIcon","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowFilledHead","insertSequenceNumber","insertArrowCrossHead","getNoteRect","byText","content","_setTextAttrs","byTspan","actorFontSize","actorFontFamily","actorFontWeight","_actorFontSize","_actorFontSizePx","byFo","s","toText","fromTextAttrsDict","svgDraw","conf","bounds","it","h","boxModel","actorModel","msgModel","noteModel","setConf","obj","val","fun","_self","cnt","updateFn","_startx","_stopx","_starty","_stopy","actorRect","stackedSize","actorActivations","lastActorActivationIdx","activation","fill","loop","bump","drawNote","textObj","messageFont","cnf","noteFont","actorFont","boundMessage","_diagram","textDims","utils","lineHeight","lineStartY","totalOffset","textWidth","dx","drawMessage","diagObj","sequenceIndex","sequenceVisible","url","drawActors","actorKeys","configuration","messages2","newActors","actorKey","prevWidth","prevMargin","maxHeight","prevBox","drawActorsPopup","doc","maxWidth","getRequiredPopupWidth","menuDimensions","assignWithDepth","activationBounds","actorObj","activations","left","right","adjustLoopHeightForWrap","loopWidths","msg","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","textConf","draw","_text","_version","securityLevel","sequence","sandboxElement","select","root","boxes2","hasBoxes","hasBoxTitles","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","calculateLoopBounds","activeEnd","activationData","sequenceIndexStep","messagesToDraw","box2","requiredBoxSize","selectAll","boxHeight","boxWidth","configureSvgSize","extraVertForTitle","isNote","isMessage","textFont","wrappedMessage","messageWidth","requiredPopupWidth","labelWidth","actorToMessageWidth","prop","actDims","nextActor","actorWidth2","actorWidth","maxBoxHeight","totalWidth","total","aKey","boxMsgDimensions","minWidth","missing","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","process","fromBounds","toBounds","fromIdx","toIdx","allBounds","boundedWidth","msgDims","_maxWidthPerActor","loops","current","toAdd","a","stk","from","to","renderer","diagram"],"mappings":"4WAWA,IAAIA,GAAS,UAAW,CACtB,IAAIC,EAAI,SAASC,GAAGC,EAAGC,EAAIC,EAAG,CAC5B,IAAKD,EAAKA,GAAM,GAAIC,EAAIH,GAAE,OAAQG,IAAKD,EAAGF,GAAEG,CAAC,CAAC,EAAIF,EAChD,CACF,OAAOC,CACX,EAAKE,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC7yCC,GAAU,CACZ,MAAO,UAAiB,CACvB,EACD,GAAI,CAAE,EACN,SAAU,CAAE,MAAS,EAAG,MAAS,EAAG,MAAS,EAAG,QAAW,EAAG,UAAa,EAAG,GAAM,EAAG,SAAY,EAAG,KAAQ,EAAG,UAAa,GAAI,YAAe,GAAI,SAAY,GAAI,sBAAyB,GAAI,cAAiB,GAAI,cAAiB,GAAI,eAAkB,GAAI,IAAK,GAAI,aAAgB,GAAI,IAAO,GAAI,WAAc,GAAI,IAAO,GAAI,OAAU,GAAI,WAAc,GAAI,IAAO,GAAI,IAAO,GAAI,SAAY,GAAI,MAAS,GAAI,WAAc,GAAI,eAAkB,GAAI,gBAAmB,GAAI,eAAkB,GAAI,qBAAwB,GAAI,kBAAqB,GAAI,MAAS,GAAI,aAAgB,GAAI,UAAa,GAAI,gBAAmB,GAAI,UAAa,GAAI,gBAAmB,GAAI,0BAA6B,GAAI,KAAQ,GAAI,KAAQ,GAAI,IAAO,GAAI,IAAO,GAAI,cAAiB,GAAI,IAAO,GAAI,aAAgB,GAAI,SAAY,GAAI,SAAY,GAAI,gBAAmB,GAAI,MAAS,GAAI,OAAU,GAAI,IAAO,GAAI,KAAQ,GAAI,YAAe,GAAI,GAAM,GAAI,kBAAqB,GAAI,KAAQ,GAAI,UAAa,GAAI,MAAS,GAAI,KAAQ,GAAI,WAAc,GAAI,MAAS,GAAI,KAAQ,GAAI,WAAc,GAAI,QAAW,GAAI,UAAa,GAAI,IAAK,GAAI,QAAW,GAAI,SAAY,GAAI,WAAc,GAAI,IAAK,GAAI,IAAK,GAAI,MAAS,GAAI,iBAAoB,GAAI,kBAAqB,GAAI,YAAe,GAAI,aAAgB,GAAI,YAAe,GAAI,aAAgB,GAAI,YAAe,GAAI,aAAgB,GAAI,IAAO,GAAI,eAAkB,GAAI,eAAkB,GAAI,cAAiB,GAAI,gBAAmB,GAAI,QAAW,EAAG,KAAQ,CAAG,EACr8C,WAAY,CAAE,EAAG,QAAS,EAAG,QAAS,EAAG,UAAW,EAAG,KAAM,GAAI,IAAK,GAAI,MAAO,GAAI,aAAc,GAAI,MAAO,GAAI,aAAc,GAAI,MAAO,GAAI,MAAO,GAAI,WAAY,GAAI,aAAc,GAAI,QAAS,GAAI,eAAgB,GAAI,YAAa,GAAI,kBAAmB,GAAI,YAAa,GAAI,kBAAmB,GAAI,4BAA6B,GAAI,OAAQ,GAAI,OAAQ,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,WAAY,GAAI,WAAY,GAAI,QAAS,GAAI,SAAU,GAAI,MAAO,GAAI,OAAQ,GAAI,cAAe,GAAI,KAAM,GAAI,oBAAqB,GAAI,OAAQ,GAAI,OAAQ,GAAI,QAAS,GAAI,OAAQ,GAAI,aAAc,GAAI,UAAW,GAAI,IAAK,GAAI,UAAW,GAAI,WAAY,GAAI,IAAK,GAAI,IAAK,GAAI,QAAS,GAAI,mBAAoB,GAAI,oBAAqB,GAAI,cAAe,GAAI,eAAgB,GAAI,cAAe,GAAI,eAAgB,GAAI,cAAe,GAAI,eAAgB,GAAI,MAAO,GAAI,iBAAkB,GAAI,iBAAkB,GAAI,gBAAiB,GAAI,iBAAmB,EAC76B,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,CAAC,EAChvB,cAAe,SAAmBC,EAAQC,EAAQC,EAAUC,EAAIC,EAASC,EAAIC,GAAI,CAC/E,IAAIC,EAAKF,EAAG,OAAS,EACrB,OAAQD,EAAO,CACb,IAAK,GACH,OAAAD,EAAG,MAAME,EAAGE,CAAE,CAAC,EACRF,EAAGE,CAAE,EACd,IAAK,GACL,IAAK,IACH,KAAK,EAAI,GACT,MACF,IAAK,GACL,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,KAAKF,EAAGE,CAAE,CAAC,EACtB,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,GACL,IAAK,GACL,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,GACL,IAAK,IACH,KAAK,EAAI,GACT,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,CAAC,CAAE,EAC7EF,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,SAAU,QAASF,EAAGE,EAAK,CAAC,CAAG,CAAA,EACvD,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,gBAAiB,cAAe,OAAOF,EAAGE,EAAK,CAAC,CAAC,EAAG,kBAAmB,OAAOF,EAAGE,EAAK,CAAC,CAAC,EAAG,gBAAiB,GAAM,WAAYJ,EAAG,SAAS,UAAU,EACrK,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,gBAAiB,cAAe,OAAOE,EAAGE,EAAK,CAAC,CAAC,EAAG,kBAAmB,EAAG,gBAAiB,GAAM,WAAYJ,EAAG,SAAS,YAC1I,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,gBAAiB,gBAAiB,GAAO,WAAYA,EAAG,SAAS,UAAU,EAC5F,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,gBAAiB,gBAAiB,GAAM,WAAYA,EAAG,SAAS,UAAU,EAC3F,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,cAAe,WAAYA,EAAG,SAAS,aAAc,MAAOE,EAAGE,EAAK,CAAC,CAAC,EACvF,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,YAAa,WAAYJ,EAAG,SAAS,WAAY,MAAOE,EAAGE,EAAK,CAAC,CAAC,EACnF,MACF,IAAK,IACHJ,EAAG,gBAAgBE,EAAGE,CAAE,EAAE,UAAU,CAAC,CAAC,EACtC,KAAK,EAAIF,EAAGE,CAAE,EAAE,UAAU,CAAC,EAC3B,MACF,IAAK,IACHJ,EAAG,gBAAgBE,EAAGE,CAAE,EAAE,UAAU,CAAC,CAAC,EACtC,KAAK,EAAIF,EAAGE,CAAE,EAAE,UAAU,CAAC,EAC3B,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,YAAY,KAAK,CAAC,EACrB,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIE,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,kBAAkB,KAAK,CAAC,EAC3B,MACF,IAAK,IACHE,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,YAAa,SAAUJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,UAAU,CAAE,EACnHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,UAAW,SAAUF,EAAGE,EAAK,CAAC,EAAG,WAAYJ,EAAG,SAAS,QAAQ,CAAE,EAC3F,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,YAAa,MAAOJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,UAAU,CAAE,EAChHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,UAAW,MAAOJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,QAAQ,CAAE,EACzG,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,SAAS,CAAE,EAChHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,SAAU,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,OAAO,CAAE,EACzG,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,SAAS,CAAE,EAChHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,SAAU,WAAYJ,EAAG,SAAS,OAAS,CAAA,EACnE,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,SAAS,CAAE,EAChHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,SAAU,WAAYJ,EAAG,SAAS,OAAS,CAAA,EACnE,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,cAAc,CAAE,EACrHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,SAAU,WAAYJ,EAAG,SAAS,OAAS,CAAA,EACnE,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,gBAAiB,aAAcJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,cAAc,CAAE,EAC/HE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,cAAe,WAAYJ,EAAG,SAAS,YAAc,CAAA,EAC7E,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,QAAQ,CAAE,KAAM,aAAc,UAAWJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,WAAW,CAAE,EACtHE,EAAGE,EAAK,CAAC,EAAE,KAAK,CAAE,KAAM,WAAY,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,SAAS,CAAE,EAC7G,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAAE,OAAO,CAAC,CAAE,KAAM,SAAU,WAAYJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,iBAAmBE,EAAGE,CAAE,CAAC,CAAC,EACzI,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAAE,OAAO,CAAC,CAAE,KAAM,MAAO,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,SAAWE,EAAGE,CAAE,CAAC,CAAC,EAC3H,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAAE,OAAO,CAAC,CAAE,KAAM,OAAQ,QAASJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EAAG,WAAYJ,EAAG,SAAS,UAAYE,EAAGE,CAAE,CAAC,CAAC,EAC7H,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,KAAO,iBAClBF,EAAGE,EAAK,CAAC,EAAE,YAAcJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EACnD,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,KAAO,iBAClB,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,KAAO,WAClBF,EAAGE,EAAK,CAAC,EAAE,YAAcJ,EAAG,aAAaE,EAAGE,EAAK,CAAC,CAAC,EACnD,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,KAAO,WAClB,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,UAAW,UAAWF,EAAGE,EAAK,CAAC,EAAG,MAAOF,EAAGE,EAAK,CAAC,EAAE,MAAO,KAAMF,EAAGE,CAAE,CAAG,CAAA,EACvG,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAI,CAAE,EAAC,OAAOF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EAAE,MAAM,EAAG,CAAC,EACzDF,EAAGE,EAAK,CAAC,EAAE,CAAC,EAAIF,EAAGE,EAAK,CAAC,EAAE,CAAC,EAAE,MAC9BF,EAAGE,EAAK,CAAC,EAAE,CAAC,EAAIF,EAAGE,EAAK,CAAC,EAAE,CAAC,EAAE,MAC9B,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,UAAW,UAAWJ,EAAG,UAAU,KAAM,MAAOE,EAAGE,EAAK,CAAC,EAAE,MAAM,EAAG,CAAC,EAAG,KAAMF,EAAGE,CAAE,CAAG,CAAA,EACpH,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,WAAY,MAAOF,EAAGE,EAAK,CAAC,EAAE,MAAO,KAAMF,EAAGE,CAAE,CAAC,CAAE,EACjF,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,WAAY,MAAOF,EAAGE,EAAK,CAAC,EAAE,MAAO,KAAMF,EAAGE,CAAE,CAAC,CAAE,EACjF,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,gBAAiB,MAAOF,EAAGE,EAAK,CAAC,EAAE,MAAO,KAAMF,EAAGE,CAAE,CAAC,CAAE,EACtF,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,aAAc,MAAOF,EAAGE,EAAK,CAAC,EAAE,MAAO,KAAMF,EAAGE,CAAE,CAAC,CAAE,EACnF,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAC5B,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,IACH,KAAK,EAAIJ,EAAG,UAAU,OACtB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,UAAU,QACtB,MACF,IAAK,IACH,KAAK,EAAI,CACPE,EAAGE,EAAK,CAAC,EACTF,EAAGE,EAAK,CAAC,EACT,CAAE,KAAM,aAAc,KAAMF,EAAGE,EAAK,CAAC,EAAE,MAAO,GAAIF,EAAGE,EAAK,CAAC,EAAE,MAAO,WAAYF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,CAAG,EACzG,CAAE,KAAM,cAAe,WAAYJ,EAAG,SAAS,aAAc,MAAOE,EAAGE,EAAK,CAAC,CAAG,CAC5F,EACU,MACF,IAAK,IACH,KAAK,EAAI,CACPF,EAAGE,EAAK,CAAC,EACTF,EAAGE,EAAK,CAAC,EACT,CAAE,KAAM,aAAc,KAAMF,EAAGE,EAAK,CAAC,EAAE,MAAO,GAAIF,EAAGE,EAAK,CAAC,EAAE,MAAO,WAAYF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,CAAG,EACzG,CAAE,KAAM,YAAa,WAAYJ,EAAG,SAAS,WAAY,MAAOE,EAAGE,EAAK,CAAC,CAAG,CACxF,EACU,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAG,CAAE,KAAM,aAAc,KAAMF,EAAGE,EAAK,CAAC,EAAE,MAAO,GAAIF,EAAGE,EAAK,CAAC,EAAE,MAAO,WAAYF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,CAAC,CAAE,EAC3I,MACF,IAAK,IACH,KAAK,EAAI,CAAE,KAAM,iBAAkB,MAAOF,EAAGE,CAAE,GAC/C,MACF,IAAK,IACH,KAAK,EAAIJ,EAAG,SAAS,WACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,YACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,MACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,OACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,YACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,aACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,YACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,aACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,aAAaE,EAAGE,CAAE,EAAE,KAAM,EAAC,UAAU,CAAC,CAAC,EACnD,MACF,IAAK,IACHJ,EAAG,eAAe,MAAO,gBAAgB,EACzC,MACF,IAAK,IACHA,EAAG,eAAeE,EAAGE,CAAE,EAAG,gBAAgB,EAC1C,MACF,IAAK,IACHF,EAAGE,CAAE,EAAIF,EAAGE,CAAE,EAAE,KAAI,EAAG,QAAQ,KAAM,GAAG,EACxCJ,EAAG,eAAeE,EAAGE,CAAE,EAAG,eAAe,EACzC,MACF,IAAK,IACHJ,EAAG,eAAe,MAAO,kBAAmB,UAAU,EACtD,KACH,CACF,EACD,MAAO,CAAC,CAAE,EAAG,EAAG,EAAG9C,EAAK,EAAGC,EAAK,EAAG,EAAG,EAAGC,EAAK,GAAI,EAAG,GAAIC,CAAK,EAAE,CAAE,EAAG,CAAC,CAAC,CAAC,EAAI,CAAE,EAAG,EAAG,EAAGH,EAAK,EAAGC,EAAK,EAAG,EAAG,EAAGC,EAAK,GAAI,EAAG,GAAIC,CAAK,EAAE,CAAE,EAAG,EAAG,EAAGH,EAAK,EAAGC,EAAK,EAAG,EAAG,EAAGC,EAAK,GAAI,EAAG,GAAIC,CAAK,EAAE,CAAE,EAAG,GAAI,EAAGH,EAAK,EAAGC,EAAK,EAAG,EAAG,EAAGC,EAAK,GAAI,EAAG,GAAIC,CAAG,EAAIR,EAAE,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGS,EAAK,CAAE,EAAG,EAAI,CAAA,EAAG,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,CAAC,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,CAAC,EAAG,EAAGC,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,GAAO,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI6B,CAAG,EAAIrC,EAAE,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAGA,EAAEsC,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI1B,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAK,EAAER,EAAEsC,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,GAAI,GAAIF,CAAK,EAAE,CAAE,GAAI,GAAI,GAAIA,CAAK,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAEpC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,GAAKtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAItC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,GAAI,GAAIF,CAAK,EAAE,CAAE,GAAI,GAAI,GAAIA,CAAK,EAAE,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,GAAI,GAAIA,CAAG,EAAI,CAAE,GAAI,GAAI,GAAIA,GAAO,CAAE,GAAI,GAAI,GAAIA,CAAK,EAAE,CAAE,GAAI,GAAI,GAAIA,CAAG,EAAIpC,EAAE,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAEA,EAAEsC,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGtC,EAAEuC,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,GAAG,CAAE,EAAGvC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,GAAG,CAAC,EAAItC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,GAAG,CAAC,EAAItC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEwC,GAAK/B,EAAK,CAAE,EAAG,GAAK,CAAA,EAAGT,EAAEwC,GAAK/B,EAAK,CAAE,EAAG,GAAG,CAAE,EAAGT,EAAEwC,GAAK/B,EAAK,CAAE,EAAG,GAAK,CAAA,EAAGT,EAAEyC,GAAKhC,EAAK,CAAE,GAAI,IAAK,EAAG,GAAK,CAAA,EAAGT,EAAE0C,GAAKjC,EAAK,CAAE,GAAI,IAAK,EAAG,GAAK,CAAA,EAAGT,EAAE0C,GAAKjC,EAAK,CAAE,EAAG,IAAK,GAAI,GAAG,CAAE,EAAGT,EAAE2C,GAAKlC,EAAK,CAAE,GAAI,IAAK,EAAG,GAAG,CAAE,EAAGT,EAAEwC,GAAK/B,EAAK,CAAE,EAAG,GAAK,CAAA,EAAG,CAAE,EAAG,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,GAAI,IAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI2B,CAAG,EAAIpC,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,IAAK,GAAIR,CAAG,EAAI,CAAE,GAAI,IAAK,GAAI,IAAK,GAAIA,CAAG,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,IAAK,GAAIS,EAAG,EAAI,CAAE,GAAI,IAAK,GAAIA,EAAG,EAAI,CAAE,GAAI,IAAK,GAAIA,EAAG,EAAI,CAAE,GAAI,IAAK,GAAIA,EAAK,EAAE7C,EAAE8C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,IAAK,GAAIT,CAAK,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,GAAG,EAAG,EAAG,CAAC,EAAG,GAAG,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAIR,EAAK,GAAIC,GAAO,CAAE,EAAG,CAAC,EAAG,GAAG,CAAG,EAAE9B,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG5B,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAK,EAAE,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAG,EAAI,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAK,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAG,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAG,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAK,EAAE,CAAE,EAAGE,EAAK,EAAGC,EAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAIC,EAAK,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI5B,CAAG,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,GAAKR,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAItC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,IAAK,GAAIF,CAAG,EAAI,CAAE,GAAI,IAAK,GAAIA,CAAG,EAAI,CAAE,GAAI,IAAK,GAAIS,EAAK,EAAE,CAAE,GAAI,IAAK,GAAIA,IAAO,CAAE,GAAI,IAAK,GAAIA,EAAK,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,GAAK,CAAE,EAAG,CAAC,EAAG,GAAG,CAAG,EAAE7C,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEuC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,IAAK,GAAIV,EAAK,GAAIC,CAAK,EAAE9B,EAAEuC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGvC,EAAEuC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGvC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAEtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAItC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAEtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,GAAG,GAAK,CAAE,EAAG,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,GAAI,IAAK,GAAIO,EAAG,EAAI,CAAE,GAAI,IAAK,GAAIA,EAAG,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,IAAK,GAAIT,CAAG,EAAIpC,EAAE8C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG9C,EAAEuC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGvC,EAAEyC,GAAKhC,EAAK,CAAE,EAAG,IAAK,GAAI,GAAK,CAAA,EAAGT,EAAE0C,GAAKjC,EAAK,CAAE,EAAG,IAAK,GAAI,GAAG,CAAE,EAAGT,EAAE2C,GAAKlC,EAAK,CAAE,EAAG,IAAK,GAAI,IAAK,EAAGT,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGtC,EAAEsC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,CAAE,EAChyN,eAAgB,CAAE,EAAG,CAAC,EAAG,EAAE,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,CAAG,EACxT,WAAY,SAAoBkB,EAAKC,EAAM,CACzC,GAAIA,EAAK,YACP,KAAK,MAAMD,CAAG,MACT,CACL,IAAIE,EAAQ,IAAI,MAAMF,CAAG,EACzB,MAAAE,EAAM,KAAOD,EACPC,CACP,CACF,EACD,MAAO,SAAeC,EAAO,CAC3B,IAAIC,EAAO,KAAMC,EAAQ,CAAC,CAAC,EAAGC,EAAS,CAAA,EAAIC,EAAS,CAAC,IAAI,EAAGC,EAAS,CAAE,EAAEC,GAAQ,KAAK,MAAOjB,EAAS,GAAIE,GAAW,EAAGD,GAAS,EAAGiB,GAAS,EAAGC,GAAM,EAClJC,GAAOJ,EAAO,MAAM,KAAK,UAAW,CAAC,EACrCK,EAAS,OAAO,OAAO,KAAK,KAAK,EACjCC,GAAc,CAAE,GAAI,CAAA,GACxB,QAASrE,MAAK,KAAK,GACb,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,EAAC,IACjDqE,GAAY,GAAGrE,EAAC,EAAI,KAAK,GAAGA,EAAC,GAGjCoE,EAAO,SAASV,EAAOW,GAAY,EAAE,EACrCA,GAAY,GAAG,MAAQD,EACvBC,GAAY,GAAG,OAAS,KACpB,OAAOD,EAAO,OAAU,MAC1BA,EAAO,OAAS,IAElB,IAAIE,GAAQF,EAAO,OACnBL,EAAO,KAAKO,EAAK,EACjB,IAAIC,GAASH,EAAO,SAAWA,EAAO,QAAQ,OAC1C,OAAOC,GAAY,GAAG,YAAe,WACvC,KAAK,WAAaA,GAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAEhD,SAASG,IAAM,CACb,IAAIC,GACJ,OAAAA,GAAQZ,EAAO,IAAG,GAAMO,EAAO,IAAK,GAAIF,GACpC,OAAOO,IAAU,WACfA,cAAiB,QACnBZ,EAASY,GACTA,GAAQZ,EAAO,OAEjBY,GAAQd,EAAK,SAASc,EAAK,GAAKA,IAE3BA,EACR,CAED,QADIC,EAAQC,GAAOC,EAAQC,GAAGC,GAAQ,CAAE,EAAEC,GAAGC,GAAKC,GAAUC,KAC/C,CAUX,GATAP,GAAQf,EAAMA,EAAM,OAAS,CAAC,EAC1B,KAAK,eAAee,EAAK,EAC3BC,EAAS,KAAK,eAAeD,EAAK,IAE9BD,IAAW,MAAQ,OAAOA,EAAU,OACtCA,EAASF,GAAG,GAEdI,EAASZ,GAAMW,EAAK,GAAKX,GAAMW,EAAK,EAAED,CAAM,GAE1C,OAAOE,EAAW,KAAe,CAACA,EAAO,QAAU,CAACA,EAAO,CAAC,EAAG,CACjE,IAAIO,GAAS,GACbD,GAAW,CAAA,EACX,IAAKH,MAAKf,GAAMW,EAAK,EACf,KAAK,WAAWI,EAAC,GAAKA,GAAId,IAC5BiB,GAAS,KAAK,IAAM,KAAK,WAAWH,EAAC,EAAI,GAAG,EAG5CX,EAAO,aACTe,GAAS,wBAA0BlC,GAAW,GAAK;AAAA,EAAQmB,EAAO,aAAc,EAAG;AAAA,YAAiBc,GAAS,KAAK,IAAI,EAAI,WAAa,KAAK,WAAWR,CAAM,GAAKA,GAAU,IAE5KS,GAAS,wBAA0BlC,GAAW,GAAK,iBAAmByB,GAAUR,GAAM,eAAiB,KAAO,KAAK,WAAWQ,CAAM,GAAKA,GAAU,KAErJ,KAAK,WAAWS,GAAQ,CACtB,KAAMf,EAAO,MACb,MAAO,KAAK,WAAWM,CAAM,GAAKA,EAClC,KAAMN,EAAO,SACb,IAAKE,GACL,SAAAY,EACZ,CAAW,CACF,CACD,GAAIN,EAAO,CAAC,YAAa,OAASA,EAAO,OAAS,EAChD,MAAM,IAAI,MAAM,oDAAsDD,GAAQ,YAAcD,CAAM,EAEpG,OAAQE,EAAO,CAAC,EAAC,CACf,IAAK,GACHhB,EAAM,KAAKc,CAAM,EACjBZ,EAAO,KAAKM,EAAO,MAAM,EACzBL,EAAO,KAAKK,EAAO,MAAM,EACzBR,EAAM,KAAKgB,EAAO,CAAC,CAAC,EACpBF,EAAS,KAEP1B,GAASoB,EAAO,OAChBrB,EAASqB,EAAO,OAChBnB,GAAWmB,EAAO,SAClBE,GAAQF,EAAO,OAEjB,MACF,IAAK,GAwBH,GAvBAY,GAAM,KAAK,aAAaJ,EAAO,CAAC,CAAC,EAAE,CAAC,EACpCE,GAAM,EAAIhB,EAAOA,EAAO,OAASkB,EAAG,EACpCF,GAAM,GAAK,CACT,WAAYf,EAAOA,EAAO,QAAUiB,IAAO,EAAE,EAAE,WAC/C,UAAWjB,EAAOA,EAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,EAAOA,EAAO,QAAUiB,IAAO,EAAE,EAAE,aACjD,YAAajB,EAAOA,EAAO,OAAS,CAAC,EAAE,WACrD,EACgBQ,KACFO,GAAM,GAAG,MAAQ,CACff,EAAOA,EAAO,QAAUiB,IAAO,EAAE,EAAE,MAAM,CAAC,EAC1CjB,EAAOA,EAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACjD,GAEYc,GAAI,KAAK,cAAc,MAAMC,GAAO,CAClC/B,EACAC,GACAC,GACAoB,GAAY,GACZO,EAAO,CAAC,EACRd,EACAC,CACd,EAAc,OAAOI,EAAI,CAAC,EACV,OAAOU,GAAM,IACf,OAAOA,GAELG,KACFpB,EAAQA,EAAM,MAAM,EAAG,GAAKoB,GAAM,CAAC,EACnClB,EAASA,EAAO,MAAM,EAAG,GAAKkB,EAAG,EACjCjB,EAASA,EAAO,MAAM,EAAG,GAAKiB,EAAG,GAEnCpB,EAAM,KAAK,KAAK,aAAagB,EAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1Cd,EAAO,KAAKgB,GAAM,CAAC,EACnBf,EAAO,KAAKe,GAAM,EAAE,EACpBG,GAAWjB,GAAMJ,EAAMA,EAAM,OAAS,CAAC,CAAC,EAAEA,EAAMA,EAAM,OAAS,CAAC,CAAC,EACjEA,EAAM,KAAKqB,EAAQ,EACnB,MACF,IAAK,GACH,MAAO,EACV,CACF,CACD,MAAO,EACR,CACL,EACMG,GAAQ,UAAW,CACrB,IAAIhB,GAAS,CACX,IAAK,EACL,WAAY,SAAoBb,EAAKC,EAAM,CACzC,GAAI,KAAK,GAAG,OACV,KAAK,GAAG,OAAO,WAAWD,EAAKC,CAAI,MAEnC,OAAM,IAAI,MAAMD,CAAG,CAEtB,EAED,SAAU,SAASG,EAAOR,EAAI,CAC5B,YAAK,GAAKA,GAAM,KAAK,IAAM,CAAA,EAC3B,KAAK,OAASQ,EACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACZ,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CACvB,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAG,CAAC,GAE3B,KAAK,OAAS,EACP,IACR,EAED,MAAO,UAAW,CAChB,IAAI2B,EAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,EACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,EACd,KAAK,SAAWA,EAChB,IAAIC,EAAQD,EAAG,MAAM,iBAAiB,EACtC,OAAIC,GACF,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEV,KAAK,QAAQ,QACf,KAAK,OAAO,MAAM,CAAC,IAErB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1BD,CACR,EAED,MAAO,SAASA,EAAI,CAClB,IAAIL,EAAMK,EAAG,OACTC,EAAQD,EAAG,MAAM,eAAe,EACpC,KAAK,OAASA,EAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAASL,CAAG,EAC5D,KAAK,QAAUA,EACf,IAAIO,EAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EACzDD,EAAM,OAAS,IACjB,KAAK,UAAYA,EAAM,OAAS,GAElC,IAAIT,EAAI,KAAK,OAAO,MACpB,YAAK,OAAS,CACZ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaS,GAASA,EAAM,SAAWC,EAAS,OAAS,KAAK,OAAO,aAAe,GAAKA,EAASA,EAAS,OAASD,EAAM,MAAM,EAAE,OAASA,EAAM,CAAC,EAAE,OAAS,KAAK,OAAO,aAAeN,CAClM,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAACH,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,KAAK,OAASG,CAAG,GAErD,KAAK,OAAS,KAAK,OAAO,OACnB,IACR,EAED,KAAM,UAAW,CACf,YAAK,MAAQ,GACN,IACR,EAED,OAAQ,UAAW,CACjB,GAAI,KAAK,QAAQ,gBACf,KAAK,WAAa,OAElB,QAAO,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAChO,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,EAEH,OAAO,IACR,EAED,KAAM,SAASQ,EAAG,CAChB,KAAK,MAAM,KAAK,MAAM,MAAMA,CAAC,CAAC,CAC/B,EAED,UAAW,UAAW,CACpB,IAAIC,EAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,EAAK,OAAS,GAAK,MAAQ,IAAMA,EAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC5E,EAED,cAAe,UAAW,CACxB,IAAIC,EAAO,KAAK,MAChB,OAAIA,EAAK,OAAS,KAChBA,GAAQ,KAAK,OAAO,OAAO,EAAG,GAAKA,EAAK,MAAM,IAExCA,EAAK,OAAO,EAAG,EAAE,GAAKA,EAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CAChF,EAED,aAAc,UAAW,CACvB,IAAIC,EAAM,KAAK,YACXC,EAAI,IAAI,MAAMD,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,EAAM,KAAK,cAAe,EAAG;AAAA,EAAOC,EAAI,GAChD,EAED,WAAY,SAASC,EAAOC,EAAc,CACxC,IAAIrB,EAAOa,EAAOS,EAmDlB,GAlDI,KAAK,QAAQ,kBACfA,EAAS,CACP,SAAU,KAAK,SACf,OAAQ,CACN,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WAC1B,EACD,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACvB,EACc,KAAK,QAAQ,SACfA,EAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAGnDT,EAAQO,EAAM,CAAC,EAAE,MAAM,iBAAiB,EACpCP,IACF,KAAK,UAAYA,EAAM,QAEzB,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,EAAQA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAAS,KAAK,OAAO,YAAcO,EAAM,CAAC,EAAE,MACvJ,EACQ,KAAK,QAAUA,EAAM,CAAC,EACtB,KAAK,OAASA,EAAM,CAAC,EACrB,KAAK,QAAUA,EACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAE9D,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,EAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,EAAM,CAAC,EACvBpB,EAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMqB,EAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SACpB,KAAK,KAAO,IAEVrB,EACF,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1B,QAASzE,KAAK+F,EACZ,KAAK/F,CAAC,EAAI+F,EAAO/F,CAAC,EAEpB,MAAO,EACR,CACD,MAAO,EACR,EAED,KAAM,UAAW,CACf,GAAI,KAAK,KACP,OAAO,KAAK,IAET,KAAK,SACR,KAAK,KAAO,IAEd,IAAIyE,EAAOoB,EAAOG,EAAWC,EACxB,KAAK,QACR,KAAK,OAAS,GACd,KAAK,MAAQ,IAGf,QADIC,EAAQ,KAAK,gBACRC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAEhC,GADAH,EAAY,KAAK,OAAO,MAAM,KAAK,MAAME,EAAMC,CAAC,CAAC,CAAC,EAC9CH,IAAc,CAACH,GAASG,EAAU,CAAC,EAAE,OAASH,EAAM,CAAC,EAAE,SAGzD,GAFAA,EAAQG,EACRC,EAAQE,EACJ,KAAK,QAAQ,gBAAiB,CAEhC,GADA1B,EAAQ,KAAK,WAAWuB,EAAWE,EAAMC,CAAC,CAAC,EACvC1B,IAAU,GACZ,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1BoB,EAAQ,GACR,QAChB,KACgB,OAAO,EAEV,SAAU,CAAC,KAAK,QAAQ,KACvB,MAIN,OAAIA,GACFpB,EAAQ,KAAK,WAAWoB,EAAOK,EAAMD,CAAK,CAAC,EACvCxB,IAAU,GACLA,EAEF,IAEL,KAAK,SAAW,GACX,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACtH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,CAEJ,EAED,IAAK,UAAe,CAClB,IAAII,EAAI,KAAK,OACb,OAAIA,GAGK,KAAK,KAEf,EAED,MAAO,SAAeuB,EAAW,CAC/B,KAAK,eAAe,KAAKA,CAAS,CACnC,EAED,SAAU,UAAoB,CAC5B,IAAIZ,EAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,EAAI,EACC,KAAK,eAAe,MAEpB,KAAK,eAAe,CAAC,CAE/B,EAED,cAAe,UAAyB,CACtC,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EAC3E,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAErC,EAED,SAAU,SAAkBA,EAAG,CAE7B,OADAA,EAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,GAAK,CAAC,EAChDA,GAAK,EACA,KAAK,eAAeA,CAAC,EAErB,SAEV,EAED,UAAW,SAAmBY,EAAW,CACvC,KAAK,MAAMA,CAAS,CACrB,EAED,eAAgB,UAA0B,CACxC,OAAO,KAAK,eAAe,MAC5B,EACD,QAAS,CAAE,mBAAoB,EAAM,EACrC,cAAe,SAAmBlD,EAAImD,EAAKC,EAA2BC,EAAU,CAC9E,OAAQD,EAAyB,CAC/B,IAAK,GACH,YAAK,MAAM,gBAAgB,EACpB,GACT,IAAK,GACH,YAAK,MAAM,gBAAgB,EACpB,GACT,IAAK,GACH,YAAK,SAAQ,EACb,KAAK,MAAM,eAAe,EACnB,GACT,IAAK,GACH,YAAK,SAAQ,EACb,KAAK,SAAQ,EACN,GACT,IAAK,GACH,MAAO,IACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,IACH,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,IAAI,EACR,GACT,IAAK,IACH,YAAK,MAAM,IAAI,EACR,GACT,IAAK,IACH,OAAAD,EAAI,OAASA,EAAI,OAAO,KAAI,EAC5B,KAAK,MAAM,OAAO,EACX,GACT,IAAK,IACH,YAAK,SAAQ,EACb,KAAK,SAAQ,EACb,KAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,SAAQ,EACb,KAAK,SAAQ,EACN,EACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACT,IAAK,IACH,YAAK,SAAQ,EACN,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,YAAK,MAAM,IAAI,EACR,GACT,IAAK,IACH,YAAK,MAAM,IAAI,EACR,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACT,IAAK,IACH,YAAK,SAAQ,EACN,kBACT,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACT,IAAK,IACH,YAAK,SAAQ,EACN,kBACT,IAAK,IACH,KAAK,MAAM,qBAAqB,EAChC,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,4BACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,OAAAA,EAAI,OAASA,EAAI,OAAO,KAAI,EACrB,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,SACV,CACF,EACD,MAAO,CAAC,aAAc,6BAA8B,UAAW,aAAc,4BAA6B,cAAe,YAAa,oBAAqB,gBAAiB,sBAAuB,sBAAuB,yBAA0B,cAAe,sBAAuB,gBAAiB,8EAA+E,aAAc,aAAc,eAAgB,eAAgB,cAAe,cAAe,eAAgB,cAAe,mBAAoB,cAAe,mBAAoB,iBAAkB,gBAAiB,qCAAsC,cAAe,kBAAmB,mBAAoB,gBAAiB,eAAgB,qBAAsB,kBAAmB,eAAgB,eAAgB,mBAAoB,qBAAsB,wBAAyB,yBAA0B,wBAAyB,wBAAyB,wBAAyB,wBAAyB,yBAA0B,aAAc,eAAgB,0BAA2B,qBAAsB,cAAe,UAAW,UAAW,kEAAmE,YAAa,aAAc,WAAY,YAAa,aAAc,cAAe,cAAe,eAAgB,kCAAmC,WAAY,UAAW,UAAW,SAAS,EACn2C,WAAY,CAAE,oBAAuB,CAAE,MAAS,CAAC,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,UAAa,CAAE,MAAS,CAAC,EAAE,EAAG,UAAa,EAAO,EAAE,UAAa,CAAE,MAAS,CAAC,EAAE,EAAG,UAAa,EAAO,EAAE,eAAkB,CAAE,MAAS,CAAC,EAAG,CAAC,EAAG,UAAa,EAAO,EAAE,eAAkB,CAAE,MAAS,CAAC,EAAG,EAAG,CAAC,EAAG,UAAa,EAAK,EAAI,cAAiB,CAAE,MAAS,CAAC,EAAG,EAAG,CAAC,EAAG,UAAa,EAAK,EAAI,GAAM,CAAE,MAAS,CAAC,EAAG,EAAG,EAAE,EAAG,UAAa,EAAK,EAAI,MAAS,CAAE,MAAS,CAAC,EAAG,EAAG,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,KAAQ,CAAE,MAAS,CAAC,EAAG,EAAG,EAAE,EAAG,UAAa,IAAS,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,GAAQ,CAC9xB,EACI,OAAOjC,EACX,IACEtB,GAAQ,MAAQsC,GAChB,SAASoB,IAAS,CAChB,KAAK,GAAK,EACX,CACD,OAAAA,GAAO,UAAY1D,GACnBA,GAAQ,OAAS0D,GACV,IAAIA,EACb,IACA1G,GAAO,OAASA,GAChB,MAAM2G,GAAW3G,GACjB,IAAI4G,GACAC,GAAS,CAAA,EACTC,GAAQ,CAAA,EACRC,EAAW,CAAA,EACXC,GAAyB,GACzBC,GACAC,GACJ,MAAMC,GAAiB,SAASC,EAAWC,EAASC,EAAM,CACxDC,GAAW,eAAe,KAAMH,EAAWC,EAASC,CAAI,CAC1D,EACME,GAAS,SAASC,EAAM,CAC5BX,GAAM,KAAK,CACT,KAAMW,EAAK,KACX,KAAMA,EAAK,OAAS,QAAUC,MAAc,CAAC,CAACD,EAAK,KACnD,KAAMA,EAAK,MACX,UAAW,CAAE,CACjB,CAAG,EACDP,GAAaJ,GAAM,MAAM,EAAE,EAAE,CAAC,CAChC,EACMa,GAAW,SAASC,EAAIC,EAAMC,EAAaR,EAAM,CACrD,IAAIS,EAAcb,GAClB,MAAMc,EAAMnB,GAAOe,CAAE,EACrB,GAAII,EAAK,CACP,GAAId,IAAcc,EAAI,KAAOd,KAAec,EAAI,IAC9C,MAAM,IAAI,MACR,yDAA2DA,EAAI,KAAO,iBAAmBA,EAAI,IAAI,KAAO,aAAed,GAAW,KAAO,qBACjJ,EAII,GAFAa,EAAcC,EAAI,IAAMA,EAAI,IAAMd,GAClCc,EAAI,IAAMD,EACNC,GAAOH,IAASG,EAAI,MAAQF,GAAe,KAC7C,MAEH,EACGA,GAAe,MAAQA,EAAY,MAAQ,QAC7CA,EAAc,CAAE,KAAMD,EAAM,KAAM,KAAM,KAAAP,KAEtCA,GAAQ,MAAQQ,EAAY,MAAQ,QACtCA,EAAc,CAAE,KAAMD,EAAM,KAAM,KAAM,KAAAP,IAE1CT,GAAOe,CAAE,EAAI,CACX,IAAKG,EACL,KAAAF,EACA,YAAaC,EAAY,KACzB,KAAMA,EAAY,OAAS,QAAUJ,MAAc,CAAC,CAACI,EAAY,KACjE,UAAAlB,GACA,MAAO,CAAE,EACT,WAAY,CAAE,EACd,SAAU,KACV,SAAU,KACV,KAAMU,GAAQ,aAClB,EACMV,IAAaC,GAAOD,EAAS,IAC/BC,GAAOD,EAAS,EAAE,UAAYgB,GAE5BV,IACFA,GAAW,UAAU,KAAKU,CAAE,EAE9BhB,GAAYgB,CACd,EACMK,GAAmBC,GAAS,CAChC,IAAI7B,EACA8B,EAAQ,EACZ,IAAK9B,EAAI,EAAGA,EAAIU,EAAS,OAAQV,IAC3BU,EAASV,CAAC,EAAE,OAAS+B,GAAS,cAAgBrB,EAASV,CAAC,EAAE,KAAK,QAAU6B,GAC3EC,IAEEpB,EAASV,CAAC,EAAE,OAAS+B,GAAS,YAAcrB,EAASV,CAAC,EAAE,KAAK,QAAU6B,GACzEC,IAGJ,OAAOA,CACT,EACME,GAAa,SAASC,EAAQC,EAAMC,EAASC,EAAQ,CACzD1B,EAAS,KAAK,CACZ,KAAMuB,EACN,GAAIC,EACJ,QAASC,EAAQ,KACjB,KAAMA,EAAQ,OAAS,QAAUd,MAAc,CAAC,CAACc,EAAQ,KACzD,OAAAC,CACJ,CAAG,CACH,EACMC,EAAY,SAASJ,EAAQC,EAAMC,EAAU,CAAE,KAAM,OAAQ,KAAM,MAAM,EAAIG,EAAa,CAC9F,GAAIA,IAAgBP,GAAS,YACfH,GAAgBK,EAAO,KAAK,EAC9B,EAAG,CACX,IAAI3E,EAAQ,IAAI,MAAM,iDAAmD2E,EAAO,MAAQ,GAAG,EAC3F,MAAA3E,EAAM,KAAO,CACX,KAAM,OACN,MAAO,OACP,KAAM,IACN,IAAK,CAAE,WAAY,EAAG,UAAW,EAAG,aAAc,EAAG,YAAa,CAAG,EACrE,SAAU,CAAC,sBAAsB,CACzC,EACYA,CACP,CAEH,OAAAoD,EAAS,KAAK,CACZ,KAAMuB,EACN,GAAIC,EACJ,QAASC,EAAQ,KACjB,KAAMA,EAAQ,OAAS,QAAUd,MAAc,CAAC,CAACc,EAAQ,KACzD,KAAMG,CACV,CAAG,EACM,EACT,EACMC,GAAmB,UAAW,CAClC,OAAO9B,GAAM,OAAS,CACxB,EACM+B,GAA4B,UAAW,CAC3C,OAAO/B,GAAM,KAAMgC,GAAMA,EAAE,IAAI,CACjC,EACMC,GAAc,UAAW,CAC7B,OAAOhC,CACT,EACMiC,GAAW,UAAW,CAC1B,OAAOlC,EACT,EACMmC,GAAY,UAAW,CAC3B,OAAOpC,EACT,EACMqC,GAAW,SAAStB,EAAI,CAC5B,OAAOf,GAAOe,CAAE,CAClB,EACMuB,GAAe,UAAW,CAC9B,OAAO,OAAO,KAAKtC,EAAM,CAC3B,EACMuC,GAAwB,UAAW,CACvCpC,GAAyB,EAC3B,EACMqC,GAAyB,UAAW,CACxCrC,GAAyB,EAC3B,EACMsC,GAAsB,IAAMtC,GAC5BuC,GAAU,SAASC,EAAa,CACpCvC,GAAcuC,CAChB,EACM9B,GAAW,IACXT,KAAgB,OACXA,GAEFwC,GAAS,EAAG,SAAS,KAExBC,GAAQ,UAAW,CACvB7C,GAAS,CAAA,EACTC,GAAQ,CAAA,EACRC,EAAW,CAAA,EACXC,GAAyB,GACzB2C,IACF,EACMC,GAAe,SAASnG,EAAK,CACjC,MAAMoG,EAAOpG,EAAI,OACX+E,EAAU,CACd,KAAMqB,EAAK,QAAQ,kBAAmB,EAAE,EAAE,KAAM,EAChD,KAAMA,EAAK,MAAM,UAAU,IAAM,KAAO,GAAOA,EAAK,MAAM,YAAY,IAAM,KAAO,GAAQ,MAC/F,EACEC,OAAAA,EAAI,MAAM,gBAAiBtB,CAAO,EAC3BA,CACT,EACMuB,GAAe,SAAStG,EAAK,CACjC,MAAMsC,EAAQtC,EAAI,MAAM,sCAAsC,EAC9D,IAAIuG,EAAQjE,GAAS,MAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAI,EAAK,cACtDkE,EAAQlE,GAAS,MAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAM,EAAG,OAC1D,GAAI,QAAU,OAAO,IACd,OAAO,IAAI,SAAS,QAASiE,CAAK,IACrCA,EAAQ,cACRC,EAAQxG,EAAI,YAET,CACL,MAAMyG,EAAQ,IAAI,OAAQ,EAAC,MAC3BA,EAAM,MAAQF,EACVE,EAAM,QAAUF,IAClBA,EAAQ,cACRC,EAAQxG,EAAI,OAEf,CAMD,MALgB,CACd,MAAAuG,EACA,KAAMC,IAAU,OAASE,GAAaF,EAAM,QAAQ,kBAAmB,EAAE,EAAGR,GAAW,CAAA,EAAI,OAC3F,KAAMQ,IAAU,OAASA,EAAM,MAAM,UAAU,IAAM,KAAO,GAAOA,EAAM,MAAM,YAAY,IAAM,KAAO,GAAQ,OAAS,MAC7H,CAEA,EACM7B,GAAW,CACf,MAAO,EACP,OAAQ,EACR,KAAM,EACN,YAAa,EACb,aAAc,EACd,WAAY,EACZ,YAAa,EACb,WAAY,GACZ,SAAU,GACV,UAAW,GACX,SAAU,GACV,QAAS,GACT,UAAW,GACX,QAAS,GACT,aAAc,GACd,WAAY,GACZ,UAAW,GACX,QAAS,GACT,QAAS,GACT,WAAY,GACZ,SAAU,GACV,YAAa,GACb,aAAc,GACd,WAAY,GACZ,eAAgB,GAChB,gBAAiB,GACjB,aAAc,GACd,YAAa,GACb,UAAW,GACX,eAAgB,EAClB,EACMgC,GAAY,CAChB,OAAQ,EACR,KAAM,CACR,EACMC,GAAY,CAChB,OAAQ,EACR,QAAS,EACT,KAAM,CACR,EACMC,GAAU,SAASC,EAAOC,EAAWhC,EAAS,CAIvCA,EAAQ,KACXA,EAAQ,OAAS,QAAUd,MAAgBc,EAAQ,KAE3D,MAAMiC,EAAU,CAAE,EAAC,OAAOF,EAAOA,CAAK,EACtCxD,EAAS,KAAK,CACZ,KAAM0D,EAAQ,CAAC,EACf,GAAIA,EAAQ,CAAC,EACb,QAASjC,EAAQ,KACjB,KAAMA,EAAQ,OAAS,QAAUd,MAAc,CAAC,CAACc,EAAQ,KACzD,KAAMJ,GAAS,KACf,UAAAoC,CACJ,CAAG,CACH,EACME,GAAW,SAASC,EAASC,EAAM,CACvC,MAAML,EAAQrB,GAASyB,CAAO,EAC9B,GAAI,CACF,IAAIE,EAAgBV,GAAaS,EAAK,KAAMnB,GAAW,CAAA,EACvDoB,EAAgBA,EAAc,QAAQ,SAAU,GAAG,EACnDA,EAAgBA,EAAc,QAAQ,YAAa,GAAG,EACtD,MAAMC,EAAQ,KAAK,MAAMD,CAAa,EACtCE,GAAYR,EAAOO,CAAK,CACzB,OAAQE,EAAG,CACVlB,EAAI,MAAM,sCAAuCkB,CAAC,CACnD,CACH,EACMC,GAAW,SAASN,EAASC,EAAM,CACvC,MAAML,EAAQrB,GAASyB,CAAO,EAC9B,GAAI,CACF,MAAMG,EAAQ,CAAA,EACd,IAAID,EAAgBV,GAAaS,EAAK,KAAMnB,GAAW,CAAA,EACvD,IAAIyB,EAAML,EAAc,QAAQ,GAAG,EACnCA,EAAgBA,EAAc,QAAQ,SAAU,GAAG,EACnDA,EAAgBA,EAAc,QAAQ,YAAa,GAAG,EACtD,IAAIM,EAAQN,EAAc,MAAM,EAAGK,EAAM,CAAC,EAAE,OACxCE,EAAOP,EAAc,MAAMK,EAAM,CAAC,EAAE,OACxCJ,EAAMK,CAAK,EAAIC,EACfL,GAAYR,EAAOO,CAAK,CACzB,OAAQE,EAAG,CACVlB,EAAI,MAAM,sCAAuCkB,CAAC,CACnD,CACH,EACA,SAASD,GAAYR,EAAOO,EAAO,CACjC,GAAIP,EAAM,OAAS,KACjBA,EAAM,MAAQO,MAEd,SAASO,KAAOP,EACdP,EAAM,MAAMc,CAAG,EAAIP,EAAMO,CAAG,CAGlC,CACA,MAAMC,GAAgB,SAASX,EAASC,EAAM,CAC5C,MAAML,EAAQrB,GAASyB,CAAO,EAC9B,GAAI,CACF,IAAIE,EAAgBV,GAAaS,EAAK,KAAMnB,GAAW,CAAA,EACvD,MAAM8B,EAAa,KAAK,MAAMV,CAAa,EAC3CW,GAAiBjB,EAAOgB,CAAU,CACnC,OAAQP,EAAG,CACVlB,EAAI,MAAM,4CAA6CkB,CAAC,CACzD,CACH,EACA,SAASQ,GAAiBjB,EAAOgB,EAAY,CAC3C,GAAIhB,EAAM,YAAc,KACtBA,EAAM,WAAagB,MAEnB,SAASF,KAAOE,EACdhB,EAAM,WAAWc,CAAG,EAAIE,EAAWF,CAAG,CAG5C,CACA,SAASI,IAAS,CAChBvE,GAAa,MACf,CACA,MAAMwE,GAAa,SAASf,EAASC,EAAM,CACzC,MAAML,EAAQrB,GAASyB,CAAO,EACxBgB,EAAO,SAAS,eAAef,EAAK,IAAI,EAC9C,GAAI,CACF,MAAMgB,EAAQD,EAAK,UACbE,EAAU,KAAK,MAAMD,CAAK,EAC5BC,EAAQ,YACVL,GAAiBjB,EAAOsB,EAAQ,UAAa,EAE3CA,EAAQ,OACVd,GAAYR,EAAOsB,EAAQ,KAAQ,CAEtC,OAAQb,EAAG,CACVlB,EAAI,MAAM,yCAA0CkB,CAAC,CACtD,CACH,EACMc,GAAmB,SAASvB,EAAOc,EAAK,CAC5C,GAAId,IAAU,QAAUA,EAAM,aAAe,OAC3C,OAAOA,EAAM,WAAWc,CAAG,CAG/B,EACMU,GAAQ,SAASC,EAAO,CAC5B,GAAI,MAAM,QAAQA,CAAK,EACrBA,EAAM,QAAQ,SAASC,EAAM,CAC3BF,GAAME,CAAI,CAChB,CAAK,MAED,QAAQD,EAAM,KAAI,CAChB,IAAK,gBACHjF,EAAS,KAAK,CACZ,KAAM,OACN,GAAI,OACJ,QAAS,CACP,MAAOiF,EAAM,cACb,KAAMA,EAAM,kBACZ,QAASA,EAAM,eAChB,EACD,KAAM,GACN,KAAMA,EAAM,UACtB,CAAS,EACD,MACF,IAAK,iBACHrE,GAASqE,EAAM,MAAOA,EAAM,MAAOA,EAAM,YAAa,aAAa,EACnE,MACF,IAAK,WACHrE,GAASqE,EAAM,MAAOA,EAAM,MAAOA,EAAM,YAAa,OAAO,EAC7D,MACF,IAAK,cACHtD,EAAUsD,EAAM,MAAO,OAAQ,OAAQA,EAAM,UAAU,EACvD,MACF,IAAK,YACHtD,EAAUsD,EAAM,MAAO,OAAQ,OAAQA,EAAM,UAAU,EACvD,MACF,IAAK,UACH1B,GAAQ0B,EAAM,MAAOA,EAAM,UAAWA,EAAM,IAAI,EAChD,MACF,IAAK,WACHtB,GAASsB,EAAM,MAAOA,EAAM,IAAI,EAChC,MACF,IAAK,WACHf,GAASe,EAAM,MAAOA,EAAM,IAAI,EAChC,MACF,IAAK,gBACHV,GAAcU,EAAM,MAAOA,EAAM,IAAI,EACrC,MACF,IAAK,aACHN,GAAWM,EAAM,MAAOA,EAAM,IAAI,EAClC,MACF,IAAK,aACHtD,EAAUsD,EAAM,KAAMA,EAAM,GAAIA,EAAM,IAAKA,EAAM,UAAU,EAC3D,MACF,IAAK,WACHxE,GAAOwE,EAAM,OAAO,EACpB,MACF,IAAK,SACHP,KACA,MACF,IAAK,YACH/C,EAAU,OAAQ,OAAQsD,EAAM,SAAUA,EAAM,UAAU,EAC1D,MACF,IAAK,UACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,YACHtD,EAAU,OAAQ,OAAQsD,EAAM,MAAOA,EAAM,UAAU,EACvD,MACF,IAAK,UACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,WACHtD,EAAU,OAAQ,OAAQsD,EAAM,QAASA,EAAM,UAAU,EACzD,MACF,IAAK,SACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,WACHtD,EAAU,OAAQ,OAAQsD,EAAM,QAASA,EAAM,UAAU,EACzD,MACF,IAAK,OACHtD,EAAU,OAAQ,OAAQsD,EAAM,QAASA,EAAM,UAAU,EACzD,MACF,IAAK,SACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,cACHE,GAAYF,EAAM,IAAI,EACtB,MACF,IAAK,WACHtD,EAAU,OAAQ,OAAQsD,EAAM,QAASA,EAAM,UAAU,EACzD,MACF,IAAK,MACHtD,EAAU,OAAQ,OAAQsD,EAAM,QAASA,EAAM,UAAU,EACzD,MACF,IAAK,SACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,gBACHtD,EAAU,OAAQ,OAAQsD,EAAM,aAAcA,EAAM,UAAU,EAC9D,MACF,IAAK,SACHtD,EAAU,OAAQ,OAAQsD,EAAM,WAAYA,EAAM,UAAU,EAC5D,MACF,IAAK,cACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,MACF,IAAK,aACHtD,EAAU,OAAQ,OAAQsD,EAAM,UAAWA,EAAM,UAAU,EAC3D,MACF,IAAK,WACHtD,EAAU,OAAQ,OAAQ,OAAQsD,EAAM,UAAU,EAClD,KACH,CAEL,EACMG,GAAK,CACT,SAAAxE,GACA,WAAAU,GACA,UAAAK,EACA,SAAAgC,GACA,WAAAgB,GACA,cAAAJ,GACA,SAAA5D,GACA,QAAA6B,GACA,sBAAAH,GACA,uBAAAC,GACA,oBAAAC,GACA,YAAAP,GACA,UAAAE,GACA,SAAAC,GACA,aAAAC,GACA,iBAAA2C,GACA,YAAAM,GACA,SAAApD,GACA,gBAAAqD,GACA,gBAAAC,GACA,eAAAnF,GACA,UAAW,IAAMsC,GAAS,EAAG,SAC7B,MAAAC,GACA,aAAAE,GACA,aAAAG,GACA,SAAA3B,GACA,UAAAgC,GACA,UAAAC,GACA,QAAAC,GACA,YAAA4B,GACA,MAAAH,GACA,kBAAAQ,GACA,kBAAAC,GACA,iBAAA5D,GACA,0BAAAC,EACF,EACM4D,GAAaC,GAAY;AAAA,cACjBA,EAAQ,WAAW;AAAA,YACrBA,EAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA,YAIhBA,EAAQ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,cAKpBA,EAAQ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAMtBA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAMnBA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,YAIrBA,EAAQ,WAAW;AAAA,cACjBA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,YAIrBA,EAAQ,mBAAmB;AAAA;AAAA;AAAA;AAAA,YAI3BA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,YAInBA,EAAQ,WAAW;AAAA,cACjBA,EAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,YAIrBA,EAAQ,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,cAKrBA,EAAQ,mBAAmB;AAAA,YAC7BA,EAAQ,gBAAgB;AAAA;AAAA;AAAA;AAAA,YAIxBA,EAAQ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,YAKtBA,EAAQ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAOnBA,EAAQ,mBAAmB;AAAA,YAC7BA,EAAQ,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,cAKzBA,EAAQ,eAAe;AAAA,YACzBA,EAAQ,YAAY;AAAA;AAAA;AAAA;AAAA,YAIpBA,EAAQ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,YAKrBA,EAAQ,kBAAkB;AAAA,cACxBA,EAAQ,qBAAqB;AAAA;AAAA;AAAA;AAAA,YAI/BA,EAAQ,kBAAkB;AAAA,cACxBA,EAAQ,qBAAqB;AAAA;AAAA;AAAA;AAAA,YAI/BA,EAAQ,kBAAkB;AAAA,cACxBA,EAAQ,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAS/BA,EAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,cAKdA,EAAQ,WAAW;AAAA,YACrBA,EAAQ,QAAQ;AAAA;AAAA;AAAA,cAGdA,EAAQ,WAAW;AAAA,YACrBA,EAAQ,QAAQ;AAAA;AAAA;AAAA,EAItBC,GAASF,GACTG,GAAW,SAASjB,EAAMkB,EAAU,CACxC,OAAOC,GAAWnB,EAAMkB,CAAQ,CAClC,EACME,GAAsB,CAACnF,EAAIoF,IAAc,CAC7CC,GAAY,IAAM,CAChB,MAAMC,EAAM,SAAS,iBAAiBtF,CAAE,EACpCsF,EAAI,SAAW,IAGnBA,EAAI,CAAC,EAAE,iBAAiB,YAAa,UAAW,CAC9CC,GAAgB,QAAUH,EAAY,QAAQ,CACpD,CAAK,EACDE,EAAI,CAAC,EAAE,iBAAiB,WAAY,UAAW,CAC7CE,GAAkB,QAAUJ,EAAY,QAAQ,CACtD,CAAK,EACL,CAAG,CACH,EACMK,GAAY,SAAS1B,EAAMpB,EAAO+C,EAAcC,EAAWC,EAAY,CAC3E,GAAIjD,EAAM,QAAU,QAAUA,EAAM,QAAU,MAAQ,OAAO,KAAKA,EAAM,KAAK,EAAE,SAAW,EACxF,MAAO,CAAE,OAAQ,EAAG,MAAO,CAAC,EAE9B,MAAMO,EAAQP,EAAM,MACdyC,EAAYzC,EAAM,SAClBsC,EAAWtC,EAAM,SACvB,IAAIkD,EAAe,OACfD,IACFC,EAAe,oBAEjB,MAAMC,EAAI/B,EAAK,OAAO,GAAG,EACzB+B,EAAE,KAAK,KAAM,QAAUV,EAAY,QAAQ,EAC3CU,EAAE,KAAK,QAAS,gBAAgB,EAChCA,EAAE,KAAK,UAAWD,CAAY,EAC9BV,GAAoB,SAAWC,EAAY,SAAUA,CAAS,EAC9D,IAAIW,EAAa,GACbd,EAAS,QAAU,SACrBc,EAAa,IAAMd,EAAS,OAE9B,IAAIe,EAAYf,EAAS,MAAQS,EAAeT,EAAS,MAAQS,EACjE,MAAMO,EAAWH,EAAE,OAAO,MAAM,EAUhC,GATAG,EAAS,KAAK,QAAS,sBAAwBF,CAAU,EACzDE,EAAS,KAAK,IAAKhB,EAAS,CAAC,EAC7BgB,EAAS,KAAK,IAAKhB,EAAS,MAAM,EAClCgB,EAAS,KAAK,OAAQhB,EAAS,IAAI,EACnCgB,EAAS,KAAK,SAAUhB,EAAS,MAAM,EACvCgB,EAAS,KAAK,QAASD,CAAS,EAChCC,EAAS,KAAK,SAAUhB,EAAS,MAAM,EACvCgB,EAAS,KAAK,KAAMhB,EAAS,EAAE,EAC/BgB,EAAS,KAAK,KAAMhB,EAAS,EAAE,EAC3B/B,GAAS,KAAM,CACjB,IAAIgD,EAAQ,GACZ,QAASzC,KAAOP,EAAO,CACrB,IAAIiD,EAAWL,EAAE,OAAO,GAAG,EACvBM,EAAgBC,GAAW,YAACnD,EAAMO,CAAG,CAAC,EAC1C0C,EAAS,KAAK,aAAcC,CAAa,EACzCD,EAAS,KAAK,SAAU,QAAQ,EAChCG,GAA+BX,CAAS,EACtClC,EACA0C,EACAlB,EAAS,EAAI,GACbA,EAAS,OAASiB,EAClBF,EACA,GACA,CAAE,MAAO,OAAS,EAClBL,CACR,EACMO,GAAS,EACV,CACF,CACD,OAAAD,EAAS,KAAK,SAAUC,CAAK,EACtB,CAAE,OAAQjB,EAAS,OAASiB,EAAO,MAAOF,EACnD,EACMO,GAAY,SAASC,EAAO,CAChC,MAAO,qCAAuCA,EAAQ,qDACxD,EACMC,GAAc,SAASD,EAAO,CAClC,MAAO,qCAAuCA,EAAQ,oDACxD,EACMjB,GAAkB,SAASmB,EAAS,CACxC,IAAIC,EAAK,SAAS,eAAeD,CAAO,EACpCC,GAAM,OACRA,EAAG,MAAM,QAAU,QAEvB,EACMnB,GAAoB,SAASkB,EAAS,CAC1C,IAAIC,EAAK,SAAS,eAAeD,CAAO,EACpCC,GAAM,OACRA,EAAG,MAAM,QAAU,OAEvB,EACMC,GAAW,SAAS7C,EAAM8C,EAAU,CACxC,IAAIC,EAAiB,EACjBC,EAAa,EACjB,MAAMnJ,EAAQiJ,EAAS,KAAK,MAAMG,EAAO,cAAc,EACjD,CAACC,EAAeC,CAAe,EAAIC,GAAcN,EAAS,QAAQ,EACxE,IAAIO,EAAY,CAAA,EACZC,EAAK,EACLC,EAAQ,IAAMT,EAAS,EAC3B,GAAIA,EAAS,SAAW,QAAUA,EAAS,aAAe,QAAUA,EAAS,WAAa,EACxF,OAAQA,EAAS,OAAM,CACrB,IAAK,MACL,IAAK,QACHS,EAAQ,IAAM,KAAK,MAAMT,EAAS,EAAIA,EAAS,UAAU,EACzD,MACF,IAAK,SACL,IAAK,SACHS,EAAQ,IAAM,KAAK,MAAMT,EAAS,GAAKC,EAAiBC,EAAaF,EAAS,YAAc,CAAC,EAC7F,MACF,IAAK,SACL,IAAK,MACHS,EAAQ,IAAM,KAAK,MACjBT,EAAS,GAAKC,EAAiBC,EAAa,EAAIF,EAAS,YAAcA,EAAS,UAC1F,EACQ,KACH,CAEH,GAAIA,EAAS,SAAW,QAAUA,EAAS,aAAe,QAAUA,EAAS,QAAU,OACrF,OAAQA,EAAS,OAAM,CACrB,IAAK,OACL,IAAK,QACHA,EAAS,EAAI,KAAK,MAAMA,EAAS,EAAIA,EAAS,UAAU,EACxDA,EAAS,OAAS,QAClBA,EAAS,iBAAmB,SAC5BA,EAAS,kBAAoB,SAC7B,MACF,IAAK,SACL,IAAK,SACHA,EAAS,EAAI,KAAK,MAAMA,EAAS,EAAIA,EAAS,MAAQ,CAAC,EACvDA,EAAS,OAAS,SAClBA,EAAS,iBAAmB,SAC5BA,EAAS,kBAAoB,SAC7B,MACF,IAAK,QACL,IAAK,MACHA,EAAS,EAAI,KAAK,MAAMA,EAAS,EAAIA,EAAS,MAAQA,EAAS,UAAU,EACzEA,EAAS,OAAS,MAClBA,EAAS,iBAAmB,SAC5BA,EAAS,kBAAoB,SAC7B,KACH,CAEH,OAAS,CAACpI,EAAG8I,CAAI,IAAK3J,EAAM,QAAO,EAAI,CACjCiJ,EAAS,aAAe,QAAUA,EAAS,aAAe,GAAKI,IAAkB,SACnFI,EAAK5I,EAAIwI,GAEX,MAAMO,EAAWzD,EAAK,OAAO,MAAM,EACnCyD,EAAS,KAAK,IAAKX,EAAS,CAAC,EAC7BW,EAAS,KAAK,IAAKF,EAAO,CAAA,EACtBT,EAAS,SAAW,QACtBW,EAAS,KAAK,cAAeX,EAAS,MAAM,EAAE,KAAK,oBAAqBA,EAAS,gBAAgB,EAAE,KAAK,qBAAsBA,EAAS,iBAAiB,EAEtJA,EAAS,aAAe,QAC1BW,EAAS,MAAM,cAAeX,EAAS,UAAU,EAE/CK,IAAoB,QACtBM,EAAS,MAAM,YAAaN,CAAe,EAEzCL,EAAS,aAAe,QAC1BW,EAAS,MAAM,cAAeX,EAAS,UAAU,EAE/CA,EAAS,OAAS,QACpBW,EAAS,KAAK,OAAQX,EAAS,IAAI,EAEjCA,EAAS,QAAU,QACrBW,EAAS,KAAK,QAASX,EAAS,KAAK,EAEnCA,EAAS,KAAO,OAClBW,EAAS,KAAK,KAAMX,EAAS,EAAE,EACtBQ,IAAO,GAChBG,EAAS,KAAK,KAAMH,CAAE,EAExB,MAAMrE,EAAOuE,GAAQE,GACrB,GAAIZ,EAAS,MAAO,CAClB,MAAMa,EAAOF,EAAS,OAAO,OAAO,EACpCE,EAAK,KAAK,IAAKb,EAAS,CAAC,EACrBA,EAAS,OAAS,QACpBa,EAAK,KAAK,OAAQb,EAAS,IAAI,EAEjCa,EAAK,KAAK1E,CAAI,CACpB,MACMwE,EAAS,KAAKxE,CAAI,EAEhB6D,EAAS,SAAW,QAAUA,EAAS,aAAe,QAAUA,EAAS,WAAa,IACxFE,IAAeS,EAAS,SAAWA,GAAU,CAAC,EAAE,CAAC,EAAE,QAAS,EAAC,OAC7DV,EAAiBC,GAEnBK,EAAU,KAAKI,CAAQ,CACxB,CACD,OAAOJ,CACT,EACMO,GAAY,SAAS5D,EAAM6D,EAAW,CAC1C,SAASC,EAAUC,EAAGC,EAAGC,EAAOC,EAAQC,EAAK,CAC3C,OAAOJ,EAAI,IAAMC,EAAI,KAAOD,EAAIE,GAAS,IAAMD,EAAI,KAAOD,EAAIE,GAAS,KAAOD,EAAIE,EAASC,GAAO,KAAOJ,EAAIE,EAAQE,EAAM,KAAO,KAAOH,EAAIE,GAAU,IAAMH,EAAI,KAAOC,EAAIE,EAC7K,CACD,MAAME,EAAUpE,EAAK,OAAO,SAAS,EACrC,OAAAoE,EAAQ,KAAK,SAAUN,EAAUD,EAAU,EAAGA,EAAU,EAAGA,EAAU,MAAOA,EAAU,OAAQ,CAAC,CAAC,EAChGO,EAAQ,KAAK,QAAS,UAAU,EAChCP,EAAU,EAAIA,EAAU,EAAIA,EAAU,OAAS,EAC/ChB,GAAS7C,EAAM6D,CAAS,EACjBO,CACT,EACA,IAAIC,GAAW,GACf,MAAMC,GAAqB,CAACC,EAAUC,IAAY,CAC3CD,EAAS,WAGdA,EAAS,UAAU,aAAa,EAAE,KAAK,QAAS,KAAK,EAAE,KAAK,KAAMC,EAAU,EAAE,CAChF,EACMC,GAA2B,SAASzE,EAAMpB,EAAO8F,EAAOC,EAAU,CACtE,MAAMC,EAAShG,EAAM,EAAIA,EAAM,MAAQ,EACjCiG,EAAUjG,EAAM,EAAI,EACpBkG,EAAmB9E,EAAK,OAAO,GAAG,EACxC,IAAI+B,EAAI+C,EACHH,IACHN,KACAtC,EAAE,OAAO,MAAM,EAAE,KAAK,KAAM,QAAUsC,EAAQ,EAAE,KAAK,KAAMO,CAAM,EAAE,KAAK,KAAMC,CAAO,EAAE,KAAK,KAAMD,CAAM,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,QAAS,YAAY,EAAE,KAAK,eAAgB,OAAO,EAAE,KAAK,SAAU,MAAM,EACzM7C,EAAI+C,EAAiB,OAAO,GAAG,EAC/BlG,EAAM,SAAWyF,GACbzF,EAAM,OAAS,OACjBmD,EAAE,KAAK,KAAM,QAAUsC,EAAQ,EAC/BjD,GAAoB,SAAWiD,GAAUA,EAAQ,IAGrD,MAAMU,EAAOC,KACb,IAAIC,EAAW,QACXrG,EAAM,YAAc,MAAQA,EAAM,WAAW,MAC/CqG,EAAWrG,EAAM,WAAW,MAE5BmG,EAAK,KAAO,UAEdA,EAAK,EAAInG,EAAM,EACfmG,EAAK,EAAInG,EAAM,EACfmG,EAAK,MAAQnG,EAAM,MACnBmG,EAAK,OAASnG,EAAM,OACpBmG,EAAK,MAAQE,EACbF,EAAK,GAAK,EACVA,EAAK,GAAK,EACV,MAAM7C,EAAWjB,GAASc,EAAGgD,CAAI,EAEjC,GADAnG,EAAM,SAAWmG,EACbnG,EAAM,YAAc,MAAQA,EAAM,WAAW,KAAS,CACxD,MAAMsG,EAAUtG,EAAM,WAAW,KAAQ,KAAI,EACzCsG,EAAQ,OAAO,CAAC,IAAM,IACxBC,GAAkBpD,EAAGgD,EAAK,EAAIA,EAAK,MAAQ,GAAIA,EAAK,EAAI,GAAIG,EAAQ,OAAO,CAAC,CAAC,EAE7EE,GAAUrD,EAAGgD,EAAK,EAAIA,EAAK,MAAQ,GAAIA,EAAK,EAAI,GAAIG,CAAO,CAE9D,CACDG,GAAuBX,CAAK,EAC1B9F,EAAM,YACNmD,EACAgD,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,OAAS,EAClBL,CACJ,EACE,IAAIR,EAAStF,EAAM,OACnB,GAAIsD,EAAS,KAAM,CACjB,MAAMsC,EAAUtC,EAAS,KAAM,EAAC,QAAO,EACvCtD,EAAM,OAAS4F,EAAQ,OACvBN,EAASM,EAAQ,MAClB,CACD,OAAON,CACT,EACMoB,GAAqB,SAAStF,EAAMpB,EAAO8F,EAAOC,EAAU,CAChE,MAAMC,EAAShG,EAAM,EAAIA,EAAM,MAAQ,EACjCiG,EAAUjG,EAAM,EAAI,GACrB+F,IACHN,KACArE,EAAK,OAAO,MAAM,EAAE,KAAK,KAAM,QAAUqE,EAAQ,EAAE,KAAK,KAAMO,CAAM,EAAE,KAAK,KAAMC,CAAO,EAAE,KAAK,KAAMD,CAAM,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,QAAS,YAAY,EAAE,KAAK,eAAgB,OAAO,EAAE,KAAK,SAAU,MAAM,GAE9M,MAAMW,EAAUvF,EAAK,OAAO,GAAG,EAC/BuF,EAAQ,KAAK,QAAS,WAAW,EACjC,MAAMR,EAAOC,KACbD,EAAK,EAAInG,EAAM,EACfmG,EAAK,EAAInG,EAAM,EACfmG,EAAK,KAAO,UACZA,EAAK,MAAQnG,EAAM,MACnBmG,EAAK,OAASnG,EAAM,OACpBmG,EAAK,MAAQ,QACbA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVQ,EAAQ,OAAO,MAAM,EAAE,KAAK,KAAM,kBAAoBlB,EAAQ,EAAE,KAAK,KAAMO,CAAM,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAAE,KAAK,KAAMgG,CAAM,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EACtJ2G,EAAQ,OAAO,MAAM,EAAE,KAAK,KAAM,iBAAmBlB,EAAQ,EAAE,KAAK,KAAMO,EAAS,EAAE,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAAE,KAAK,KAAMgG,EAAS,EAAE,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAC/J2G,EAAQ,OAAO,MAAM,EAAE,KAAK,KAAMX,EAAS,EAAE,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAAE,KAAK,KAAMgG,CAAM,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAClH2G,EAAQ,OAAO,MAAM,EAAE,KAAK,KAAMX,CAAM,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAAE,KAAK,KAAMgG,EAAS,EAAE,EAAE,KAAK,KAAMhG,EAAM,EAAI,EAAE,EAClH,MAAM4G,EAASD,EAAQ,OAAO,QAAQ,EACtCC,EAAO,KAAK,KAAM5G,EAAM,EAAIA,EAAM,MAAQ,CAAC,EAC3C4G,EAAO,KAAK,KAAM5G,EAAM,EAAI,EAAE,EAC9B4G,EAAO,KAAK,IAAK,EAAE,EACnBA,EAAO,KAAK,QAAS5G,EAAM,KAAK,EAChC4G,EAAO,KAAK,SAAU5G,EAAM,MAAM,EAClC,MAAM4F,EAAUe,EAAQ,KAAM,EAAC,QAAO,EACtC,OAAA3G,EAAM,OAAS4F,EAAQ,OACvBa,GAAuBX,CAAK,EAC1B9F,EAAM,YACN2G,EACAR,EAAK,EACLA,EAAK,EAAI,GACTA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,OAAS,EAClBL,CACJ,EACS9F,EAAM,MACf,EACM6G,GAAY,SAASzF,EAAMpB,EAAO8F,EAAOC,EAAU,CACvD,OAAQ/F,EAAM,KAAI,CAChB,IAAK,QACH,OAAO0G,GAAmBtF,EAAMpB,EAAO8F,EAAOC,CAAQ,EACxD,IAAK,cACH,OAAOF,GAAyBzE,EAAMpB,EAAO8F,EAAOC,CAAQ,CAC/D,CACH,EACMe,GAAU,SAAS1F,EAAM2F,EAAKjB,EAAO,CAEzC,MAAM3C,EADmB/B,EAAK,OAAO,GAAG,EAExC4F,GAAmB7D,EAAG4D,CAAG,EACrBA,EAAI,MACNN,GAAuBX,CAAK,EAC1BiB,EAAI,KACJ5D,EACA4D,EAAI,EACJA,EAAI,GAAKA,EAAI,eAAiB,GAAK,EACnCA,EAAI,MACJ,EACA,CAAE,MAAO,MAAQ,EACjBjB,CACN,EAEE3C,EAAE,MAAK,CACT,EACM8D,GAAgB,SAAS7F,EAAM,CACnC,OAAOA,EAAK,OAAO,GAAG,CACxB,EACM8F,GAAiB,SAAS9F,EAAMwE,EAASuB,EAAarB,EAAOsB,EAAmB,CACpF,MAAMjB,EAAOC,KACPjD,EAAIyC,EAAQ,SAClBO,EAAK,EAAIP,EAAQ,OACjBO,EAAK,EAAIP,EAAQ,OACjBO,EAAK,MAAQ,aAAeiB,EAAoB,EAChDjB,EAAK,MAAQP,EAAQ,MAAQA,EAAQ,OACrCO,EAAK,OAASgB,EAAcvB,EAAQ,OACpCvD,GAASc,EAAGgD,CAAI,CAClB,EACMkB,GAAW,SAASjG,EAAMkG,EAAWC,EAAWzB,EAAO,CAC3D,KAAM,CACJ,UAAA0B,EACA,cAAAC,EACA,eAAAC,EACA,cAAAC,EACA,kBAAmBC,EACnB,gBAAiBC,EACjB,kBAAmBC,CACpB,EAAGhC,EACE3C,EAAI/B,EAAK,OAAO,GAAG,EACnB2G,EAAe,SAASC,EAAQC,EAAQC,EAAOC,EAAO,CAC1D,OAAOhF,EAAE,OAAO,MAAM,EAAE,KAAK,KAAM6E,CAAM,EAAE,KAAK,KAAMC,CAAM,EAAE,KAAK,KAAMC,CAAK,EAAE,KAAK,KAAMC,CAAK,EAAE,KAAK,QAAS,UAAU,CAC9H,EACEJ,EAAaT,EAAU,OAAQA,EAAU,OAAQA,EAAU,MAAOA,EAAU,MAAM,EAClFS,EAAaT,EAAU,MAAOA,EAAU,OAAQA,EAAU,MAAOA,EAAU,KAAK,EAChFS,EAAaT,EAAU,OAAQA,EAAU,MAAOA,EAAU,MAAOA,EAAU,KAAK,EAChFS,EAAaT,EAAU,OAAQA,EAAU,OAAQA,EAAU,OAAQA,EAAU,KAAK,EAC9EA,EAAU,WAAa,QACzBA,EAAU,SAAS,QAAQ,SAAS5F,EAAM,CACxCqG,EAAaT,EAAU,OAAQ5F,EAAK,EAAG4F,EAAU,MAAO5F,EAAK,CAAC,EAAE,MAC9D,mBACA,MACR,CACA,CAAK,EAEH,IAAI0G,EAAMC,KACVD,EAAI,KAAOb,EACXa,EAAI,EAAId,EAAU,OAClBc,EAAI,EAAId,EAAU,OAClBc,EAAI,WAAaR,EACjBQ,EAAI,SAAWP,EACfO,EAAI,WAAaN,EACjBM,EAAI,OAAS,SACbA,EAAI,OAAS,SACbA,EAAI,MAAQ,GACZA,EAAI,MAAQT,GAAiB,GAC7BS,EAAI,OAASV,GAAkB,GAC/BU,EAAI,WAAaX,EACjBW,EAAI,MAAQ,YACZpD,GAAU7B,EAAGiF,CAAG,EAChBA,EAAME,GAAU,EAChBF,EAAI,KAAOd,EAAU,MACrBc,EAAI,EAAId,EAAU,OAASK,EAAgB,GAAKL,EAAU,MAAQA,EAAU,QAAU,EACtFc,EAAI,EAAId,EAAU,OAASE,EAAYC,EACvCW,EAAI,OAAS,SACbA,EAAI,OAAS,SACbA,EAAI,WAAaX,EACjBW,EAAI,MAAQ,WACZA,EAAI,WAAaR,EACjBQ,EAAI,SAAWP,EACfO,EAAI,WAAaN,EACjBM,EAAI,KAAO,GACX,IAAIvD,EAAWZ,GAASd,EAAGiF,CAAG,EAC9B,OAAId,EAAU,gBAAkB,QAC9BA,EAAU,cAAc,QAAQ,SAAS5F,EAAM6G,EAAK,CAClD,GAAI7G,EAAK,QAAS,CAChB0G,EAAI,KAAO1G,EAAK,QAChB0G,EAAI,EAAId,EAAU,QAAUA,EAAU,MAAQA,EAAU,QAAU,EAClEc,EAAI,EAAId,EAAU,SAASiB,CAAG,EAAE,EAAIf,EAAYC,EAChDW,EAAI,MAAQ,WACZA,EAAI,OAAS,SACbA,EAAI,OAAS,SACbA,EAAI,MAAQ,GACZA,EAAI,WAAaR,EACjBQ,EAAI,SAAWP,EACfO,EAAI,WAAaN,EACjBM,EAAI,KAAOd,EAAU,KACrBzC,EAAWZ,GAASd,EAAGiF,CAAG,EAC1B,IAAII,EAAgB,KAAK,MACvB3D,EAAS,IAAK4D,IAAQA,EAAG,SAAWA,GAAI,CAAC,EAAE,CAAC,EAAE,QAAS,EAAC,MAAM,EAAE,OAAO,CAACC,EAAKC,IAASD,EAAMC,CAAI,CAC1G,EACQrB,EAAU,SAASiB,CAAG,EAAE,QAAUC,GAAiBhB,EAAYC,EAChE,CACP,CAAK,EAEHH,EAAU,OAAS,KAAK,MAAMA,EAAU,MAAQA,EAAU,MAAM,EACzDnE,CACT,EACM6D,GAAqB,SAAS5F,EAAMwE,EAAS,CACjDgD,GAAqBxH,EAAMwE,CAAO,CACpC,EACMiD,GAAqB,SAASzH,EAAM,CACxCA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,UAAU,EAAE,KAAK,YAAa,SAAS,EAAE,KAAK,YAAa,SAAS,EAAE,OAAO,MAAM,EAAE,KAAK,YAAa,WAAW,EAAE,KAClK,IACA,i1ZACJ,CACA,EACM0H,GAAqB,SAAS1H,EAAM,CACxCA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,UAAU,EAAE,KAAK,QAAS,IAAI,EAAE,KAAK,SAAU,IAAI,EAAE,OAAO,MAAM,EAAE,KAAK,YAAa,WAAW,EAAE,KACjJ,IACA,0JACJ,CACA,EACM2H,GAAkB,SAAS3H,EAAM,CACrCA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,OAAO,EAAE,KAAK,QAAS,IAAI,EAAE,KAAK,SAAU,IAAI,EAAE,OAAO,MAAM,EAAE,KAAK,YAAa,WAAW,EAAE,KAC9I,IACA,2UACJ,CACA,EACM4H,GAAkB,SAAS5H,EAAM,CACrCA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,WAAW,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,uBAAuB,CAC7P,EACM6H,GAAwB,SAAS7H,EAAM,CAC3CA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,aAAa,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,2BAA2B,CAC9N,EACM8H,GAAuB,SAAS9H,EAAM,CAC1CA,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,gBAAgB,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,EAAE,EAAE,KAAK,KAAM,EAAE,EAAE,KAAK,IAAK,CAAC,CACxO,EACM+H,GAAuB,SAAS/H,EAAM,CAC7BA,EAAK,OAAO,MAAM,EACX,OAAO,QAAQ,EAAE,KAAK,KAAM,WAAW,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,MAAM,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAC3J,OAAO,MAAM,EAAE,KAAK,OAAQ,MAAM,EAAE,KAAK,SAAU,SAAS,EAAE,MAAM,mBAAoB,MAAM,EAAE,KAAK,eAAgB,KAAK,EAAE,KAAK,IAAK,yBAAyB,CACxK,EACMkH,GAAa,UAAW,CAC5B,MAAO,CACL,EAAG,EACH,EAAG,EACH,KAAM,OACN,OAAQ,OACR,MAAO,OACP,MAAO,OACP,OAAQ,OACR,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,MAAO,GACP,OAAQ,MACZ,CACA,EACMc,GAAc,UAAW,CAC7B,MAAO,CACL,EAAG,EACH,EAAG,EACH,KAAM,UACN,OAAQ,OACR,MAAO,IACP,OAAQ,QACR,OAAQ,IACR,GAAI,EACJ,GAAI,CACR,CACA,EACM3C,GAAyB,UAAW,CACxC,SAAS4C,EAAOC,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW,CAC1D,MAAM3C,EAAO8C,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKgC,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAKD,EAAIE,EAAS,EAAI,CAAC,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAKgE,CAAO,EAChIC,EAAclJ,EAAM2C,CAAS,CAC9B,CACD,SAASwG,EAAQF,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,EAAO,CAClE,KAAM,CAAE,cAAA2D,EAAe,gBAAAC,EAAiB,gBAAAC,CAAe,EAAK7D,EACtD,CAAC8D,EAAgBC,CAAgB,EAAIrF,GAAciF,CAAa,EAChExO,EAAQqO,EAAQ,MAAMjF,EAAO,cAAc,EACjD,QAASvI,EAAI,EAAGA,EAAIb,EAAM,OAAQa,IAAK,CACrC,MAAM4I,EAAK5I,EAAI8N,EAAiBA,GAAkB3O,EAAM,OAAS,GAAK,EAChEoF,EAAO8C,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKgC,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAKD,CAAC,EAAE,MAAM,cAAe,QAAQ,EAAE,MAAM,YAAayE,CAAgB,EAAE,MAAM,cAAeF,CAAe,EAAE,MAAM,cAAeD,CAAe,EAClNrJ,EAAK,OAAO,OAAO,EAAE,KAAK,IAAK8E,EAAIE,EAAQ,CAAC,EAAE,KAAK,KAAMX,CAAE,EAAE,KAAKzJ,EAAMa,CAAC,CAAC,EAC1EuE,EAAK,KAAK,IAAK+E,EAAIE,EAAS,CAAC,EAAE,KAAK,oBAAqB,SAAS,EAAE,KAAK,qBAAsB,SAAS,EACxGiE,EAAclJ,EAAM2C,CAAS,CAC9B,CACF,CACD,SAAS8G,EAAKR,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,EAAO,CAC/D,MAAMiE,EAAI5G,EAAE,OAAO,QAAQ,EAErB9C,EADI0J,EAAE,OAAO,eAAe,EAAE,KAAK,IAAK5E,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASC,CAAK,EAAE,KAAK,SAAUC,CAAM,EACzF,OAAO,WAAW,EAAE,MAAM,UAAW,OAAO,EAAE,MAAM,SAAU,MAAM,EAAE,MAAM,QAAS,MAAM,EAC1GjF,EAAK,OAAO,KAAK,EAAE,MAAM,UAAW,YAAY,EAAE,MAAM,aAAc,QAAQ,EAAE,MAAM,iBAAkB,QAAQ,EAAE,KAAKiJ,CAAO,EAC9HE,EAAQF,EAASS,EAAG5E,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,CAAK,EACzDyD,EAAclJ,EAAM2C,CAAS,CAC9B,CACD,SAASuG,EAAcS,EAAQC,EAAmB,CAChD,UAAWnJ,KAAOmJ,EACZA,EAAkB,eAAenJ,CAAG,GACtCkJ,EAAO,KAAKlJ,EAAKmJ,EAAkBnJ,CAAG,CAAC,CAG5C,CACD,OAAO,SAASgF,EAAO,CACrB,OAAOA,EAAM,gBAAkB,KAAOgE,EAAOhE,EAAM,gBAAkB,MAAQuD,EAASG,CAC1F,CACA,IACM7F,GAAiC,UAAW,CAChD,SAAS0F,EAAOC,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW,CAC1D,MAAM3C,EAAO8C,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKgC,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,MAAM,cAAe,OAAO,EAAE,KAAKkE,CAAO,EAClGC,EAAclJ,EAAM2C,CAAS,CAC9B,CACD,SAASwG,EAAQF,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,EAAO,CAClE,KAAM,CAAE,cAAA2D,EAAe,gBAAAC,EAAiB,gBAAAC,CAAe,EAAK7D,EACtD7K,EAAQqO,EAAQ,MAAMjF,EAAO,cAAc,EACjD,QAASvI,EAAI,EAAGA,EAAIb,EAAM,OAAQa,IAAK,CACrC,MAAM4I,EAAK5I,EAAI2N,EAAgBA,GAAiBxO,EAAM,OAAS,GAAK,EAC9DoF,EAAO8C,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKgC,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,MAAM,cAAe,OAAO,EAAE,MAAM,YAAaqE,CAAa,EAAE,MAAM,cAAeE,CAAe,EAAE,MAAM,cAAeD,CAAe,EAClMrJ,EAAK,OAAO,OAAO,EAAE,KAAK,IAAK8E,CAAC,EAAE,KAAK,KAAMT,CAAE,EAAE,KAAKzJ,EAAMa,CAAC,CAAC,EAC9DuE,EAAK,KAAK,IAAK+E,EAAIE,EAAS,CAAC,EAAE,KAAK,oBAAqB,SAAS,EAAE,KAAK,qBAAsB,SAAS,EACxGiE,EAAclJ,EAAM2C,CAAS,CAC9B,CACF,CACD,SAAS8G,EAAKR,EAASnG,EAAGgC,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,EAAO,CAC/D,MAAMiE,EAAI5G,EAAE,OAAO,QAAQ,EAErB9C,EADI0J,EAAE,OAAO,eAAe,EAAE,KAAK,IAAK5E,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASC,CAAK,EAAE,KAAK,SAAUC,CAAM,EACzF,OAAO,WAAW,EAAE,MAAM,UAAW,OAAO,EAAE,MAAM,SAAU,MAAM,EAAE,MAAM,QAAS,MAAM,EAC1GjF,EAAK,OAAO,KAAK,EAAE,MAAM,UAAW,YAAY,EAAE,MAAM,aAAc,QAAQ,EAAE,MAAM,iBAAkB,QAAQ,EAAE,KAAKiJ,CAAO,EAC9HE,EAAQF,EAASS,EAAG5E,EAAGC,EAAGC,EAAOC,EAAQtC,EAAW8C,CAAK,EACzDyD,EAAclJ,EAAM2C,CAAS,CAC9B,CACD,SAASuG,EAAcS,EAAQC,EAAmB,CAChD,UAAWnJ,KAAOmJ,EACZA,EAAkB,eAAenJ,CAAG,GACtCkJ,EAAO,KAAKlJ,EAAKmJ,EAAkBnJ,CAAG,CAAC,CAG5C,CACD,OAAO,SAASgF,EAAO,CACrB,OAAOA,EAAM,gBAAkB,KAAOgE,EAAOhE,EAAM,gBAAkB,MAAQuD,EAASG,CAC1F,CACA,IACMU,EAAU,CACd,SAAA7H,GACA,SAAA4B,GACA,UAAAe,GACA,UAAA6B,GACA,QAAAC,GACA,UAAAhE,GACA,cAAAmE,GACA,eAAAC,GACA,SAAAG,GACA,mBAAAL,GACA,gBAAAgC,GACA,sBAAAC,GACA,qBAAAC,GACA,qBAAAC,GACA,mBAAAN,GACA,mBAAAC,GACA,gBAAAC,GACA,WAAAT,GACA,YAAAc,GACA,UAAAxF,GACA,YAAAE,GACA,mBAAA4B,GACF,YAAEhC,GAAW,WACb,EACA,IAAIyG,EAAO,CAAA,EACX,MAAMC,EAAS,CACb,KAAM,CACJ,OAAQ,OACR,MAAO,OACP,OAAQ,OACR,MAAO,MACR,EACD,YAAa,EACb,cAAe,CAAE,EACjB,YAAa,CAAE,EACf,OAAQ,CACN,UAAW,UAAW,CACpB,OAAO,KAAK,IAAI,MACd,KACA,KAAK,OAAO,SAAW,EAAI,CAAC,CAAC,EAAI,KAAK,OAAO,IAAKpK,GAAUA,EAAM,QAAU,CAAC,CAC9E,GAAI,KAAK,MAAM,SAAW,EAAI,EAAI,KAAK,MAAM,IAAKqK,GAAOA,EAAG,QAAU,CAAC,EAAE,OAAO,CAAC3B,EAAK4B,IAAM5B,EAAM4B,CAAC,IAAM,KAAK,SAAS,SAAW,EAAI,EAAI,KAAK,SAAS,IAAKD,GAAOA,EAAG,QAAU,CAAC,EAAE,OAAO,CAAC3B,EAAK4B,IAAM5B,EAAM4B,CAAC,IAAM,KAAK,MAAM,SAAW,EAAI,EAAI,KAAK,MAAM,IAAKD,GAAOA,EAAG,QAAU,CAAC,EAAE,OAAO,CAAC3B,EAAK4B,IAAM5B,EAAM4B,CAAC,EACrT,EACD,MAAO,UAAW,CAChB,KAAK,OAAS,GACd,KAAK,MAAQ,GACb,KAAK,MAAQ,GACb,KAAK,SAAW,GAChB,KAAK,MAAQ,EACd,EACD,OAAQ,SAASC,EAAU,CACzB,KAAK,MAAM,KAAKA,CAAQ,CACzB,EACD,SAAU,SAASC,EAAY,CAC7B,KAAK,OAAO,KAAKA,CAAU,CAC5B,EACD,QAAS,SAASlD,EAAW,CAC3B,KAAK,MAAM,KAAKA,CAAS,CAC1B,EACD,WAAY,SAASmD,EAAU,CAC7B,KAAK,SAAS,KAAKA,CAAQ,CAC5B,EACD,QAAS,SAASC,EAAW,CAC3B,KAAK,MAAM,KAAKA,CAAS,CAC1B,EACD,UAAW,UAAW,CACpB,OAAO,KAAK,OAAO,KAAK,OAAO,OAAS,CAAC,CAC1C,EACD,SAAU,UAAW,CACnB,OAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,CACxC,EACD,YAAa,UAAW,CACtB,OAAO,KAAK,SAAS,KAAK,SAAS,OAAS,CAAC,CAC9C,EACD,SAAU,UAAW,CACnB,OAAO,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,CACxC,EACD,OAAQ,CAAE,EACV,MAAO,CAAE,EACT,MAAO,CAAE,EACT,SAAU,CAAE,EACZ,MAAO,CAAE,CACV,EACD,KAAM,UAAW,CACf,KAAK,cAAgB,GACrB,KAAK,YAAc,GACnB,KAAK,OAAO,QACZ,KAAK,KAAO,CACV,OAAQ,OACR,MAAO,OACP,OAAQ,OACR,MAAO,MACb,EACI,KAAK,YAAc,EACnBC,GAAQzL,GAAS,CAAE,CACpB,EACD,UAAW,SAAS0L,EAAK9J,EAAK+J,EAAKC,EAAK,CAClCF,EAAI9J,CAAG,IAAM,OACf8J,EAAI9J,CAAG,EAAI+J,EAEXD,EAAI9J,CAAG,EAAIgK,EAAID,EAAKD,EAAI9J,CAAG,CAAC,CAE/B,EACD,aAAc,SAASkH,EAAQC,EAAQC,EAAOC,EAAO,CACnD,MAAM4C,EAAQ,KACd,IAAIC,EAAM,EACV,SAASC,EAASlO,EAAM,CACtB,OAAO,SAA0B2E,EAAM,CACrCsJ,IACA,MAAM7P,EAAI4P,EAAM,cAAc,OAASC,EAAM,EAC7CD,EAAM,UAAUrJ,EAAM,SAAUuG,EAAS9M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EACrEY,EAAM,UAAUrJ,EAAM,QAASyG,EAAQhN,EAAIgP,EAAK,UAAW,KAAK,GAAG,EACnEY,EAAM,UAAUX,EAAO,KAAM,SAAUpC,EAAS7M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EAC5EY,EAAM,UAAUX,EAAO,KAAM,QAASlC,EAAQ/M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EACpEpN,IAAS,eACbgO,EAAM,UAAUrJ,EAAM,SAAUsG,EAAS7M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EACrEY,EAAM,UAAUrJ,EAAM,QAASwG,EAAQ/M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EACnEY,EAAM,UAAUX,EAAO,KAAM,SAAUnC,EAAS9M,EAAIgP,EAAK,UAAW,KAAK,GAAG,EAC5EY,EAAM,UAAUX,EAAO,KAAM,QAASjC,EAAQhN,EAAIgP,EAAK,UAAW,KAAK,GAAG,EAEpF,CACK,CACD,KAAK,cAAc,QAAQc,EAAU,CAAA,EACrC,KAAK,YAAY,QAAQA,EAAS,YAAY,CAAC,CAChD,EACD,OAAQ,SAASjD,EAAQC,EAAQC,EAAOC,EAAO,CAC7C,MAAM+C,EAAU7G,EAAO,OAAO2D,EAAQE,CAAK,EACrCiD,EAAS9G,EAAO,OAAO2D,EAAQE,CAAK,EACpCkD,EAAU/G,EAAO,OAAO4D,EAAQE,CAAK,EACrCkD,EAAShH,EAAO,OAAO4D,EAAQE,CAAK,EAC1C,KAAK,UAAUiC,EAAO,KAAM,SAAUc,EAAS,KAAK,GAAG,EACvD,KAAK,UAAUd,EAAO,KAAM,SAAUgB,EAAS,KAAK,GAAG,EACvD,KAAK,UAAUhB,EAAO,KAAM,QAASe,EAAQ,KAAK,GAAG,EACrD,KAAK,UAAUf,EAAO,KAAM,QAASiB,EAAQ,KAAK,GAAG,EACrD,KAAK,aAAaH,EAASE,EAASD,EAAQE,CAAM,CACnD,EACD,cAAe,SAASpN,EAAS0H,EAAUzF,EAAS,CAClD,MAAMoL,EAAYpL,EAAQjC,EAAQ,KAAK,KAAK,EACtCsN,EAAcC,GAAiBvN,EAAQ,KAAK,KAAK,EAAE,QAAU,EAC7DkH,EAAImG,EAAU,EAAIA,EAAU,MAAQ,GAAKC,EAAc,GAAKpB,EAAK,gBAAkB,EACzF,KAAK,YAAY,KAAK,CACpB,OAAQhF,EACR,OAAQ,KAAK,YAAc,EAC3B,MAAOA,EAAIgF,EAAK,gBAChB,MAAO,OACP,MAAOlM,EAAQ,KAAK,MACpB,SAAUiM,EAAQ,cAAcvE,CAAQ,CAC9C,CAAK,CACF,EACD,cAAe,SAAS1H,EAAS,CAC/B,MAAMwN,EAAyB,KAAK,YAAY,IAAI,SAASC,EAAY,CACvE,OAAOA,EAAW,KACnB,CAAA,EAAE,YAAYzN,EAAQ,KAAK,KAAK,EACjC,OAAO,KAAK,YAAY,OAAOwN,EAAwB,CAAC,EAAE,CAAC,CAC5D,EACD,WAAY,SAAS/L,EAAQ,CAAE,QAAS,OAAQ,KAAM,GAAO,MAAO,MAAM,EAAIiM,EAAM,CAClF,MAAO,CACL,OAAQ,OACR,OAAQ,KAAK,YACb,MAAO,OACP,MAAO,OACP,MAAOjM,EAAM,QACb,KAAMA,EAAM,KACZ,MAAOA,EAAM,MACb,OAAQ,EACR,KAAAiM,CACN,CACG,EACD,QAAS,SAASjM,EAAQ,CAAE,QAAS,OAAQ,KAAM,GAAO,MAAO,MAAM,EAAIiM,EAAM,CAC/E,KAAK,cAAc,KAAK,KAAK,WAAWjM,EAAOiM,CAAI,CAAC,CACrD,EACD,QAAS,UAAW,CAClB,OAAO,KAAK,cAAc,KAC3B,EACD,cAAe,UAAW,CACxB,OAAO,KAAK,cAAc,OAAS,KAAK,cAAc,KAAK,cAAc,OAAS,CAAC,EAAE,QAAU,EAChG,EACD,iBAAkB,SAAS1N,EAAS,CAClC,MAAM2N,EAAO,KAAK,cAAc,IAAG,EACnCA,EAAK,SAAWA,EAAK,UAAY,CAAA,EACjCA,EAAK,cAAgBA,EAAK,eAAiB,CAAA,EAC3CA,EAAK,SAAS,KAAK,CAAE,EAAGxB,EAAO,iBAAkB,OAAQ,CAAC,CAAE,EAC5DwB,EAAK,cAAc,KAAK3N,CAAO,EAC/B,KAAK,cAAc,KAAK2N,CAAI,CAC7B,EACD,gBAAiB,UAAW,CACtB,KAAK,kBACP,KAAK,iBAAmB,KAAK,YAEhC,EACD,iBAAkB,UAAW,CACvB,KAAK,kBACP,KAAK,YAAc,KAAK,iBAE3B,EACD,gBAAiB,SAASC,EAAM,CAC9B,KAAK,YAAc,KAAK,YAAcA,EACtC,KAAK,KAAK,MAAQxH,EAAO,OAAO,KAAK,KAAK,MAAO,KAAK,WAAW,CAClE,EACD,eAAgB,UAAW,CACzB,OAAO,KAAK,WACb,EACD,UAAW,UAAW,CACpB,MAAO,CAAE,OAAQ,KAAK,KAAM,OAAQ,KAAK,OAC1C,CACH,EACMyH,GAAW,SAAS1K,EAAMsJ,EAAW,CACzCN,EAAO,gBAAgBD,EAAK,SAAS,EACrCO,EAAU,OAASP,EAAK,UACxBO,EAAU,OAASN,EAAO,iBAC1B,MAAMjE,EAAOC,KACbD,EAAK,EAAIuE,EAAU,OACnBvE,EAAK,EAAIuE,EAAU,OACnBvE,EAAK,MAAQuE,EAAU,OAASP,EAAK,MACrChE,EAAK,MAAQ,OACb,MAAMhD,EAAI/B,EAAK,OAAO,GAAG,EACnBkC,EAAW4G,EAAQ,SAAS/G,EAAGgD,CAAI,EACnC4F,EAAU1D,KAChB0D,EAAQ,EAAIrB,EAAU,OACtBqB,EAAQ,EAAIrB,EAAU,OACtBqB,EAAQ,MAAQ5F,EAAK,MACrB4F,EAAQ,GAAK,MACbA,EAAQ,KAAOrB,EAAU,QACzBqB,EAAQ,MAAQ,WAChBA,EAAQ,WAAa5B,EAAK,eAC1B4B,EAAQ,SAAW5B,EAAK,aACxB4B,EAAQ,WAAa5B,EAAK,eAC1B4B,EAAQ,OAAS5B,EAAK,UACtB4B,EAAQ,WAAa5B,EAAK,WAC1B4B,EAAQ,OAAS,SACjB,MAAMlH,EAAWZ,GAASd,EAAG4I,CAAO,EAC9B3H,EAAa,KAAK,MACtBS,EAAS,IAAK4D,IAAQA,EAAG,SAAWA,GAAI,CAAC,EAAE,CAAC,EAAE,QAAS,EAAC,MAAM,EAAE,OAAO,CAACC,EAAKC,IAASD,EAAMC,CAAI,CACpG,EACErF,EAAS,KAAK,SAAUc,EAAa,EAAI+F,EAAK,UAAU,EACxDO,EAAU,QAAUtG,EAAa,EAAI+F,EAAK,WAC1CC,EAAO,gBAAgBhG,EAAa,EAAI+F,EAAK,UAAU,EACvDO,EAAU,MAAQA,EAAU,OAAStG,EAAa,EAAI+F,EAAK,WAC3DO,EAAU,MAAQA,EAAU,OAASvE,EAAK,MAC1CiE,EAAO,OAAOM,EAAU,OAAQA,EAAU,OAAQA,EAAU,MAAOA,EAAU,KAAK,EAClFN,EAAO,OAAO,QAAQM,CAAS,CACjC,EACMsB,GAAeC,IACZ,CACL,WAAYA,EAAI,kBAChB,SAAUA,EAAI,gBACd,WAAYA,EAAI,iBACpB,GAEMC,GAAYD,IACT,CACL,WAAYA,EAAI,eAChB,SAAUA,EAAI,aACd,WAAYA,EAAI,cACpB,GAEME,GAAaF,IACV,CACL,WAAYA,EAAI,gBAChB,SAAUA,EAAI,cACd,WAAYA,EAAI,eACpB,GAEA,SAASG,GAAaC,EAAU5B,EAAU,CACxCL,EAAO,gBAAgB,EAAE,EACzB,KAAM,CAAE,OAAApC,EAAQ,MAAAE,EAAO,QAAAjK,CAAO,EAAKwM,EAC7BxP,EAAQoJ,EAAO,YAAYpG,CAAO,EAAE,OACpCqO,EAAWC,EAAM,wBAAwBtO,EAAS+N,GAAY7B,CAAI,CAAC,EACnEqC,EAAaF,EAAS,OAASrR,EACrCwP,EAAS,QAAU+B,EACnBpC,EAAO,gBAAgBoC,CAAU,EACjC,IAAIC,EACAC,EAAcJ,EAAS,OAAS,GACpC,MAAMK,EAAYL,EAAS,MAC3B,GAAItE,IAAWE,EAAO,CACpBuE,EAAarC,EAAO,eAAgB,EAAGsC,EAClCvC,EAAK,cACRuC,GAAevC,EAAK,UACpBsC,EAAarC,EAAO,eAAgB,EAAGsC,GAEzCA,GAAe,GACf,MAAME,EAAKvI,EAAO,OAAOsI,EAAY,EAAGxC,EAAK,MAAQ,CAAC,EACtDC,EAAO,OACLpC,EAAS4E,EACTxC,EAAO,iBAAmB,GAAKsC,EAC/BxE,EAAQ0E,EACRxC,EAAO,iBAAmB,GAAKsC,CACrC,CACA,MACIA,GAAevC,EAAK,UACpBsC,EAAarC,EAAO,eAAgB,EAAGsC,EACvCtC,EAAO,OAAOpC,EAAQyE,EAAa,GAAIvE,EAAOuE,CAAU,EAE1D,OAAArC,EAAO,gBAAgBsC,CAAW,EAClCjC,EAAS,QAAUiC,EACnBjC,EAAS,MAAQA,EAAS,OAASA,EAAS,OAC5CL,EAAO,OAAOK,EAAS,WAAYA,EAAS,OAAQA,EAAS,SAAUA,EAAS,KAAK,EAC9EgC,CACT,CACA,MAAMI,GAAc,SAASlH,EAAU8E,EAAUgC,EAAYK,EAAS,CACpE,KAAM,CAAE,OAAA9E,EAAQ,MAAAE,EAAO,OAAAD,EAAQ,QAAAhK,EAAS,KAAAlB,EAAM,cAAAgQ,EAAe,gBAAAC,CAAiB,EAAGvC,EAC3E6B,EAAWC,EAAM,wBAAwBtO,EAAS+N,GAAY7B,CAAI,CAAC,EACnE4B,EAAU1D,KAChB0D,EAAQ,EAAI/D,EACZ+D,EAAQ,EAAI9D,EAAS,GACrB8D,EAAQ,MAAQ7D,EAAQF,EACxB+D,EAAQ,MAAQ,cAChBA,EAAQ,GAAK,MACbA,EAAQ,KAAO9N,EACf8N,EAAQ,WAAa5B,EAAK,kBAC1B4B,EAAQ,SAAW5B,EAAK,gBACxB4B,EAAQ,WAAa5B,EAAK,kBAC1B4B,EAAQ,OAAS5B,EAAK,aACtB4B,EAAQ,OAAS,SACjBA,EAAQ,WAAa5B,EAAK,YAC1B4B,EAAQ,MAAQ,GAChB9H,GAAS0B,EAAUoG,CAAO,EAC1B,MAAMY,EAAYL,EAAS,MAC3B,IAAI1H,EACAoD,IAAWE,EACTiC,EAAK,YACPvF,EAAOe,EAAS,OAAO,MAAM,EAAE,KAC7B,IACA,MAAMqC,CAAM,IAAIyE,CAAU,MAAMzE,EAAS3D,EAAO,OAAO8F,EAAK,MAAQ,EAAGwC,EAAY,CAAC,CAAC,MAAMF,EAAa,EAAE,MAAMzE,CAAM,EAC9H,EAEMpD,EAAOe,EAAS,OAAO,MAAM,EAAE,KAC7B,IACA,KAAOqC,EAAS,IAAMyE,EAAa,OAASzE,EAAS,IAAM,KAAOyE,EAAa,IAAM,KAAOzE,EAAS,IAAM,KAAOyE,EAAa,IAAM,IAAMzE,EAAS,KAAOyE,EAAa,GAChL,GAGI7H,EAAOe,EAAS,OAAO,MAAM,EAC7Bf,EAAK,KAAK,KAAMoD,CAAM,EACtBpD,EAAK,KAAK,KAAM6H,CAAU,EAC1B7H,EAAK,KAAK,KAAMsD,CAAK,EACrBtD,EAAK,KAAK,KAAM6H,CAAU,GAExB1P,IAAS+P,EAAQ,GAAG,SAAS,QAAU/P,IAAS+P,EAAQ,GAAG,SAAS,cAAgB/P,IAAS+P,EAAQ,GAAG,SAAS,cAAgB/P,IAAS+P,EAAQ,GAAG,SAAS,aAChKlI,EAAK,MAAM,mBAAoB,MAAM,EACrCA,EAAK,KAAK,QAAS,cAAc,GAEjCA,EAAK,KAAK,QAAS,cAAc,EAEnC,IAAIqI,EAAM,GACN9C,EAAK,sBACP8C,EAAM,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAO,OAAO,SAAS,SAAW,OAAO,SAAS,OAC1GA,EAAMA,EAAI,QAAQ,MAAO,KAAK,EAC9BA,EAAMA,EAAI,QAAQ,MAAO,KAAK,GAEhCrI,EAAK,KAAK,eAAgB,CAAC,EAC3BA,EAAK,KAAK,SAAU,MAAM,EAC1BA,EAAK,MAAM,OAAQ,MAAM,GACrB7H,IAAS+P,EAAQ,GAAG,SAAS,OAAS/P,IAAS+P,EAAQ,GAAG,SAAS,SACrElI,EAAK,KAAK,aAAc,OAASqI,EAAM,aAAa,GAElDlQ,IAAS+P,EAAQ,GAAG,SAAS,aAAe/P,IAAS+P,EAAQ,GAAG,SAAS,eAC3ElI,EAAK,KAAK,aAAc,OAASqI,EAAM,eAAe,GAEpDlQ,IAAS+P,EAAQ,GAAG,SAAS,aAAe/P,IAAS+P,EAAQ,GAAG,SAAS,eAC3ElI,EAAK,KAAK,aAAc,OAASqI,EAAM,aAAa,GAElDD,GAAmB7C,EAAK,uBAC1BvF,EAAK,KAAK,eAAgB,OAASqI,EAAM,kBAAkB,EAC3DtH,EAAS,OAAO,MAAM,EAAE,KAAK,IAAKqC,CAAM,EAAE,KAAK,IAAKyE,EAAa,CAAC,EAAE,KAAK,cAAe,YAAY,EAAE,KAAK,YAAa,MAAM,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAK,QAAS,gBAAgB,EAAE,KAAKM,CAAa,EAEpN,EACMG,GAAa,SAASvH,EAAUzF,EAASiN,EAAWhG,EAAaiG,EAAeC,EAAWtH,EAAU,CACzG,GAAIqH,EAAc,yBAA2B,GAAM,CACjD,MAAME,EAA4B,IAAI,IACtCD,EAAU,QAASpP,GAAY,CAC7BqP,EAAU,IAAIrP,EAAQ,IAAI,EAC1BqP,EAAU,IAAIrP,EAAQ,EAAE,CAC9B,CAAK,EACDkP,EAAYA,EAAU,OAAQI,GAAaD,EAAU,IAAIC,CAAQ,CAAC,CACnE,CACD,IAAIC,EAAY,EACZC,EAAa,EACbC,EAAY,EACZC,EACJ,UAAWJ,KAAYJ,EAAW,CAChC,MAAMnN,EAAQE,EAAQqN,CAAQ,EACxBxG,EAAM/G,EAAM,IACd2N,GAAWA,GAAW5G,IACnBhB,GACHqE,EAAO,OAAO,OAAOuD,CAAO,EAE9BF,GAActD,EAAK,UAAYwD,EAAQ,QAErC5G,GAAOA,GAAO4G,IACX5H,IACHgB,EAAI,EAAIyG,EAAYC,EACpB1G,EAAI,EAAII,GAEVsG,GAAc1G,EAAI,QAEpB/G,EAAM,MAAQA,EAAM,OAASmK,EAAK,MAClCnK,EAAM,OAASqE,EAAO,OAAOrE,EAAM,QAAUmK,EAAK,OAAQA,EAAK,MAAM,EACrEnK,EAAM,OAASA,EAAM,QAAUmK,EAAK,YACpCnK,EAAM,EAAIwN,EAAYC,EACtBzN,EAAM,EAAIoK,EAAO,iBACjB,MAAM9E,EAAS4E,EAAQ,UAAUvE,EAAU3F,EAAOmK,EAAMpE,CAAQ,EAChE2H,EAAYrJ,EAAO,OAAOqJ,EAAWpI,CAAM,EAC3C8E,EAAO,OAAOpK,EAAM,EAAGmH,EAAanH,EAAM,EAAIA,EAAM,MAAOA,EAAM,MAAM,EACvEwN,GAAaxN,EAAM,MAAQyN,EACvBzN,EAAM,MACRA,EAAM,IAAI,MAAQwN,EAAYzG,EAAI,OAAS/G,EAAM,IAAI,GAEvDyN,EAAazN,EAAM,OACnB2N,EAAU3N,EAAM,IAChBoK,EAAO,OAAO,SAASpK,CAAK,CAC7B,CACG2N,GAAW,CAAC5H,GACdqE,EAAO,OAAO,OAAOuD,CAAO,EAE9BvD,EAAO,gBAAgBsD,CAAS,CAClC,EACME,GAAkB,SAASjI,EAAUzF,EAASiN,EAAWU,EAAK,CAClE,IAAIH,EAAY,EACZI,EAAW,EACf,UAAWP,KAAYJ,EAAW,CAChC,MAAMnN,EAAQE,EAAQqN,CAAQ,EACxBxK,EAAegL,GAAsB/N,CAAK,EAC1CgO,EAAiB9D,EAAQ,UAC7BvE,EACA3F,EACA+C,EACAoH,EACAA,EAAK,WACL0D,CACN,EACQG,EAAe,OAASN,IAC1BA,EAAYM,EAAe,QAEzBA,EAAe,MAAQhO,EAAM,EAAI8N,IACnCA,EAAWE,EAAe,MAAQhO,EAAM,EAE3C,CACD,MAAO,CAAE,UAAA0N,EAAW,SAAAI,EACtB,EACMnD,GAAU,SAASsB,EAAK,CAC5BgC,GAAgB9D,EAAM8B,CAAG,EACrBA,EAAI,aACN9B,EAAK,gBAAkBA,EAAK,eAAiBA,EAAK,kBAAoB8B,EAAI,YAExEA,EAAI,WACN9B,EAAK,cAAgBA,EAAK,aAAeA,EAAK,gBAAkB8B,EAAI,UAElEA,EAAI,aACN9B,EAAK,gBAAkBA,EAAK,eAAiBA,EAAK,kBAAoB8B,EAAI,WAE9E,EACMT,GAAmB,SAASxL,EAAO,CACvC,OAAOoK,EAAO,YAAY,OAAO,SAASsB,EAAY,CACpD,OAAOA,EAAW,QAAU1L,CAChC,CAAG,CACH,EACMkO,GAAmB,SAASlO,EAAOE,EAAS,CAChD,MAAMiO,EAAWjO,EAAQF,CAAK,EACxBoO,EAAc5C,GAAiBxL,CAAK,EACpCqO,EAAOD,EAAY,OAAO,SAAS1F,EAAKgD,EAAY,CACxD,OAAOrH,EAAO,OAAOqE,EAAKgD,EAAW,MAAM,CAC5C,EAAEyC,EAAS,EAAIA,EAAS,MAAQ,CAAC,EAC5BG,EAAQF,EAAY,OAAO,SAAS1F,EAAKgD,EAAY,CACzD,OAAOrH,EAAO,OAAOqE,EAAKgD,EAAW,KAAK,CAC3C,EAAEyC,EAAS,EAAIA,EAAS,MAAQ,CAAC,EAClC,MAAO,CAACE,EAAMC,CAAK,CACrB,EACA,SAASC,GAAwBC,EAAYC,EAAKC,EAAWC,EAAYC,EAAW,CAClFxE,EAAO,gBAAgBsE,CAAS,EAChC,IAAIG,EAAeF,EACnB,GAAIF,EAAI,IAAMA,EAAI,SAAWD,EAAWC,EAAI,EAAE,EAAG,CAC/C,MAAMK,EAAYN,EAAWC,EAAI,EAAE,EAAE,MAC/BM,EAAW/C,GAAY7B,CAAI,EACjCsE,EAAI,QAAUlC,EAAM,UAAU,IAAIkC,EAAI,OAAO,IAAKK,EAAY,EAAI3E,EAAK,YAAa4E,CAAQ,EAC5FN,EAAI,MAAQK,EACZL,EAAI,KAAO,GACX,MAAMnC,EAAWC,EAAM,wBAAwBkC,EAAI,QAASM,CAAQ,EAC9DrC,EAAcrI,EAAO,OAAOiI,EAAS,OAAQnC,EAAK,cAAc,EACtE0E,EAAeF,EAAajC,EAC5BnN,EAAI,MAAM,GAAGmN,CAAW,MAAM+B,EAAI,OAAO,EAAE,CAC5C,CACDG,EAAUH,CAAG,EACbrE,EAAO,gBAAgByE,CAAY,CACrC,CACA,MAAMG,GAAO,SAASC,EAAO5R,EAAI6R,EAAUpC,EAAS,CAClD,KAAM,CAAE,cAAAqC,EAAe,SAAAC,CAAU,EAAGlQ,GAAS,EAC7CiL,EAAOiF,EACPtC,EAAQ,GAAG,QACXA,EAAQ,OAAO,MAAMmC,CAAK,EAC1B,IAAII,EACAF,IAAkB,YACpBE,EAAiBC,GAAO,KAAOjS,CAAE,GAEnC,MAAMkS,EAAOJ,IAAkB,UAAYG,GAAOD,EAAe,MAAK,EAAG,CAAC,EAAE,gBAAgB,IAAI,EAAIC,GAAO,MAAM,EAC3GzB,EAAMsB,IAAkB,UAAYE,EAAe,MAAK,EAAG,CAAC,EAAE,gBAAkB,SACtFjF,EAAO,KAAI,EACX7K,EAAI,MAAMuN,EAAQ,EAAE,EACpB,MAAMnH,EAAWwJ,IAAkB,UAAYI,EAAK,OAAO,QAAQlS,CAAE,IAAI,EAAIiS,GAAO,QAAQjS,CAAE,IAAI,EAC5F6C,EAAU4M,EAAQ,GAAG,UAAS,EAC9B0C,EAAS1C,EAAQ,GAAG,SAAQ,EAC5BK,EAAYL,EAAQ,GAAG,aAAY,EACnCO,EAAYP,EAAQ,GAAG,YAAW,EAClCpN,EAAQoN,EAAQ,GAAG,gBAAe,EAClC2C,EAAW3C,EAAQ,GAAG,iBAAgB,EACtC4C,EAAe5C,EAAQ,GAAG,0BAAyB,EACnD6C,EAA0BC,GAA2B1P,EAASmN,EAAWP,CAAO,EACtF3C,EAAK,OAAS0F,GAAsB3P,EAASyP,EAAyBH,CAAM,EAC5EtF,EAAQ,mBAAmBvE,CAAQ,EACnCuE,EAAQ,mBAAmBvE,CAAQ,EACnCuE,EAAQ,gBAAgBvE,CAAQ,EAC5B8J,IACFrF,EAAO,gBAAgBD,EAAK,SAAS,EACjCuF,GACFtF,EAAO,gBAAgBoF,EAAO,CAAC,EAAE,aAAa,GAGlDtC,GAAWvH,EAAUzF,EAASiN,EAAW,EAAGhD,EAAMkD,EAAW,EAAK,EAClE,MAAMmB,EAAasB,GAAoBzC,EAAWnN,EAASyP,EAAyB7C,CAAO,EAC3F5C,EAAQ,gBAAgBvE,CAAQ,EAChCuE,EAAQ,qBAAqBvE,CAAQ,EACrCuE,EAAQ,sBAAsBvE,CAAQ,EACtCuE,EAAQ,qBAAqBvE,CAAQ,EACrC,SAASoK,EAAUtB,EAAKtH,EAAa,CACnC,MAAM6I,EAAiB5F,EAAO,cAAcqE,CAAG,EAC3CuB,EAAe,OAAS,GAAK7I,IAC/B6I,EAAe,OAAS7I,EAAc,EACtCA,GAAe,IAEjB+C,EAAQ,eACNvE,EACAqK,EACA7I,EACAgD,EACAqB,GAAiBiD,EAAI,KAAK,KAAK,EAAE,MACvC,EACIrE,EAAO,OAAO4F,EAAe,OAAQ7I,EAAc,GAAI6I,EAAe,MAAO7I,CAAW,CACzF,CACD,IAAI4F,EAAgB,EAChBkD,EAAoB,EACxB,MAAMC,EAAiB,CAAA,EACvB7C,EAAU,QAAQ,SAASoB,EAAK,CAC9B,IAAInH,EAAWoD,EAAWD,EAC1B,OAAQgE,EAAI,KAAI,CACd,KAAK3B,EAAQ,GAAG,SAAS,KACvB1C,EAAO,iBAAgB,EACvBM,EAAY+D,EAAI,UAChB3C,GAASnG,EAAU+E,CAAS,EAC5B,MACF,KAAKoC,EAAQ,GAAG,SAAS,aACvB1C,EAAO,cAAcqE,EAAK9I,EAAUzF,CAAO,EAC3C,MACF,KAAK4M,EAAQ,GAAG,SAAS,WACvBiD,EAAUtB,EAAKrE,EAAO,eAAgB,CAAA,EACtC,MACF,KAAK0C,EAAQ,GAAG,SAAS,WACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,SACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,OAAQ6C,CAAI,EAClDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,KAAKwF,EAAQ,GAAG,SAAS,WACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UACJlM,GAAYmM,EAAO,QAAQ,OAAQnM,EAAQ,OAAO,CAC7D,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,SACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,mBAAmBvE,EAAU2B,CAAS,EAC9C8C,EAAO,OAAO,QAAQ9C,CAAS,EAC/B8C,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChE,MACF,KAAK0C,EAAQ,GAAG,SAAS,UACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,QACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,MAAO6C,CAAI,EACjDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,KAAKwF,EAAQ,GAAG,SAAS,UACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,SACvByB,GACEC,EACAC,EACAtE,EAAK,UAAYA,EAAK,cACtBA,EAAK,UACJlM,GAAYmM,EAAO,iBAAiBnM,CAAO,CACtD,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,QACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,MAAO6C,CAAI,EACjDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,KAAKwF,EAAQ,GAAG,SAAS,UACzB,KAAKA,EAAQ,GAAG,SAAS,eACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQmM,EAAO,gBAAe,EACtB,MACF,KAAK0C,EAAQ,GAAG,SAAS,QACvByB,GACEC,EACAC,EACAtE,EAAK,UAAYA,EAAK,cACtBA,EAAK,UACJlM,GAAYmM,EAAO,iBAAiBnM,CAAO,CACtD,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,QACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,MAAO6C,CAAI,EACjDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,KAAKwF,EAAQ,GAAG,SAAS,WACvBC,EAAgB0B,EAAI,QAAQ,OAAS1B,EACrCkD,EAAoBxB,EAAI,QAAQ,MAAQwB,EACpCxB,EAAI,QAAQ,QACd3B,EAAQ,GAAG,wBAEXA,EAAQ,GAAG,yBAEb,MACF,KAAKA,EAAQ,GAAG,SAAS,eACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,gBACvByB,GACEC,EACAC,EACAtE,EAAK,UAAYA,EAAK,cACtBA,EAAK,UACJlM,GAAYmM,EAAO,iBAAiBnM,CAAO,CACtD,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,aACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,WAAY6C,CAAI,EACtDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,KAAKwF,EAAQ,GAAG,SAAS,YACvByB,GACEC,EACAC,EACAtE,EAAK,UACLA,EAAK,UAAYA,EAAK,cACrBlM,GAAYmM,EAAO,QAAQnM,CAAO,CAC7C,EACQ,MACF,KAAK6O,EAAQ,GAAG,SAAS,UACvBxF,EAAY8C,EAAO,UACnBF,EAAQ,SAASvE,EAAU2B,EAAW,QAAS6C,CAAI,EACnDC,EAAO,gBAAgB9C,EAAU,MAAQ8C,EAAO,eAAc,CAAE,EAChEA,EAAO,OAAO,QAAQ9C,CAAS,EAC/B,MACF,QACE,GAAI,CACF8C,EAAO,iBAAgB,EACvBK,EAAWgE,EAAI,SACfhE,EAAS,OAASL,EAAO,iBACzBK,EAAS,cAAgBsC,EACzBtC,EAAS,gBAAkBqC,EAAQ,GAAG,oBAAmB,EACzD,MAAML,EAAaL,GAAazG,EAAU8E,CAAQ,EAClDyF,EAAe,KAAK,CAAE,aAAczF,EAAU,WAAAgC,CAAY,CAAA,EAC1DrC,EAAO,OAAO,WAAWK,CAAQ,CAClC,OAAQhK,EAAG,CACVlB,EAAI,MAAM,8BAA+BkB,CAAC,CAC3C,CACJ,CACG,CACFqM,EAAQ,GAAG,SAAS,WACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,MACpBA,EAAQ,GAAG,SAAS,OACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,aACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,YAC1B,EAAM,SAAS2B,EAAI,IAAI,IACjB1B,EAAgBA,EAAgBkD,EAEtC,CAAG,EACDC,EAAe,QAASzP,GAAMoM,GAAYlH,EAAUlF,EAAE,aAAcA,EAAE,WAAYqM,CAAO,CAAC,EACtF3C,EAAK,eACPC,EAAO,gBAAgBD,EAAK,UAAY,CAAC,EACzC+C,GAAWvH,EAAUzF,EAASiN,EAAW/C,EAAO,eAAc,EAAID,EAAMkD,EAAW,EAAI,EACvFjD,EAAO,gBAAgBD,EAAK,SAAS,EACrCzE,GAAmBC,EAAUyE,EAAO,eAAgB,CAAA,GAEtDA,EAAO,OAAO,MAAM,QAAQ,SAAS+F,EAAM,CACzCA,EAAK,OAAS/F,EAAO,eAAc,EAAK+F,EAAK,EAC7C/F,EAAO,OAAO+F,EAAK,EAAGA,EAAK,EAAGA,EAAK,EAAIA,EAAK,MAAOA,EAAK,MAAM,EAC9DA,EAAK,OAASA,EAAK,EACnBA,EAAK,OAASA,EAAK,EACnBA,EAAK,MAAQA,EAAK,OAASA,EAAK,MAChCA,EAAK,MAAQA,EAAK,OAASA,EAAK,OAChCA,EAAK,OAAS,kBACdjG,EAAQ,QAAQvE,EAAUwK,EAAMhG,CAAI,CACxC,CAAG,EACGsF,GACFrF,EAAO,gBAAgBD,EAAK,SAAS,EAEvC,MAAMiG,EAAkBxC,GAAgBjI,EAAUzF,EAASiN,EAAWU,CAAG,EACnE,CAAE,OAAQ9G,CAAK,EAAGqD,EAAO,UAAS,EACxC7K,EAAI,MAAM,kCAAoClC,EAAK,cAAc,EAC9CgT,GAAU,IAAMhT,EAAK,cAAc,EAC3C,KAAK,KAAM0J,EAAI,KAAK,EAC/B,IAAIuJ,EAAYvJ,EAAI,MAAQA,EAAI,OAC5BuJ,EAAYF,EAAgB,YAC9BE,EAAYF,EAAgB,WAE9B,IAAI9K,EAASgL,EAAY,EAAInG,EAAK,eAC9BA,EAAK,eACP7E,EAASA,EAAS6E,EAAK,UAAYA,EAAK,iBAE1C,IAAIoG,EAAWxJ,EAAI,MAAQA,EAAI,OAC3BwJ,EAAWH,EAAgB,WAC7BG,EAAWH,EAAgB,UAE7B,MAAM/K,EAAQkL,EAAW,EAAIpG,EAAK,eAC9BzK,GACFiG,EAAS,OAAO,MAAM,EAAE,KAAKjG,CAAK,EAAE,KAAK,KAAMqH,EAAI,MAAQA,EAAI,QAAU,EAAI,EAAIoD,EAAK,cAAc,EAAE,KAAK,IAAK,GAAG,EAErHqG,GAAiB7K,EAAUL,EAAQD,EAAO8E,EAAK,WAAW,EAC1D,MAAMsG,EAAoB/Q,EAAQ,GAAK,EACvCiG,EAAS,KACP,UACAoB,EAAI,OAASoD,EAAK,eAAiB,MAAQA,EAAK,eAAiBsG,GAAqB,IAAMpL,EAAQ,KAAOC,EAASmL,EACxH,EACElR,EAAI,MAAM,UAAW6K,EAAO,MAAM,CACpC,EACA,SAASwF,GAA2B1P,EAASmN,EAAWP,EAAS,CAC/D,MAAM6C,EAA0B,CAAA,EAChC,OAAAtC,EAAU,QAAQ,SAASoB,EAAK,CAC9B,GAAIvO,EAAQuO,EAAI,EAAE,GAAKvO,EAAQuO,EAAI,IAAI,EAAG,CACxC,MAAMzO,EAAQE,EAAQuO,EAAI,EAAE,EAI5B,GAHIA,EAAI,YAAc3B,EAAQ,GAAG,UAAU,QAAU,CAAC9M,EAAM,WAGxDyO,EAAI,YAAc3B,EAAQ,GAAG,UAAU,SAAW,CAAC9M,EAAM,UAC3D,OAEF,MAAM0Q,EAASjC,EAAI,YAAc,OAC3BkC,EAAY,CAACD,EACbE,EAAWF,EAASxE,GAAS/B,CAAI,EAAI6B,GAAY7B,CAAI,EACrD0G,EAAiBpC,EAAI,KAAOlC,EAAM,UAAUkC,EAAI,QAAStE,EAAK,MAAQ,EAAIA,EAAK,YAAayG,CAAQ,EAAInC,EAAI,QAE5GqC,EADoBvE,EAAM,wBAAwBsE,EAAgBD,CAAQ,EACzC,MAAQ,EAAIzG,EAAK,YACpDwG,GAAalC,EAAI,OAASzO,EAAM,UAClC2P,EAAwBlB,EAAI,EAAE,EAAIpK,EAAO,OACvCsL,EAAwBlB,EAAI,EAAE,GAAK,EACnCqC,CACV,EACiBH,GAAalC,EAAI,OAASzO,EAAM,UACzC2P,EAAwBlB,EAAI,IAAI,EAAIpK,EAAO,OACzCsL,EAAwBlB,EAAI,IAAI,GAAK,EACrCqC,CACV,EACiBH,GAAalC,EAAI,OAASA,EAAI,IACvCkB,EAAwBlB,EAAI,IAAI,EAAIpK,EAAO,OACzCsL,EAAwBlB,EAAI,IAAI,GAAK,EACrCqC,EAAe,CACzB,EACQnB,EAAwBlB,EAAI,EAAE,EAAIpK,EAAO,OACvCsL,EAAwBlB,EAAI,EAAE,GAAK,EACnCqC,EAAe,CACzB,GACiBrC,EAAI,YAAc3B,EAAQ,GAAG,UAAU,QAChD6C,EAAwBlB,EAAI,IAAI,EAAIpK,EAAO,OACzCsL,EAAwBlB,EAAI,IAAI,GAAK,EACrCqC,CACV,EACiBrC,EAAI,YAAc3B,EAAQ,GAAG,UAAU,OAChD6C,EAAwB3P,EAAM,SAAS,EAAIqE,EAAO,OAChDsL,EAAwB3P,EAAM,SAAS,GAAK,EAC5C8Q,CACV,EACiBrC,EAAI,YAAc3B,EAAQ,GAAG,UAAU,OAC5C9M,EAAM,YACR2P,EAAwB3P,EAAM,SAAS,EAAIqE,EAAO,OAChDsL,EAAwB3P,EAAM,SAAS,GAAK,EAC5C8Q,EAAe,CAC3B,GAEY9Q,EAAM,YACR2P,EAAwBlB,EAAI,IAAI,EAAIpK,EAAO,OACzCsL,EAAwBlB,EAAI,IAAI,GAAK,EACrCqC,EAAe,CAC3B,GAGK,CACL,CAAG,EACDvR,EAAI,MAAM,2BAA4BoQ,CAAuB,EACtDA,CACT,CACA,MAAM5B,GAAwB,SAAS/N,EAAO,CAC5C,IAAI+Q,EAAqB,EACzB,MAAMH,EAAWzE,GAAUhC,CAAI,EAC/B,UAAWrJ,KAAOd,EAAM,MAAO,CAE7B,MAAMgR,EADkBzE,EAAM,wBAAwBzL,EAAK8P,CAAQ,EAChC,MAAQ,EAAIzG,EAAK,YAAc,EAAIA,EAAK,UACvE4G,EAAqBC,IACvBD,EAAqBC,EAExB,CACD,OAAOD,CACT,EACA,SAASlB,GAAsB3P,EAAS+Q,EAAqBzB,EAAQ,CACnE,IAAI9B,EAAY,EAChB,OAAO,KAAKxN,CAAO,EAAE,QAASgR,GAAS,CACrC,MAAMlR,EAAQE,EAAQgR,CAAI,EACtBlR,EAAM,OACRA,EAAM,YAAcuM,EAAM,UACxBvM,EAAM,YACNmK,EAAK,MAAQ,EAAIA,EAAK,YACtBgC,GAAUhC,CAAI,CACtB,GAEI,MAAMgH,EAAU5E,EAAM,wBAAwBvM,EAAM,YAAamM,GAAUhC,CAAI,CAAC,EAChFnK,EAAM,MAAQA,EAAM,KAAOmK,EAAK,MAAQ9F,EAAO,OAAO8F,EAAK,MAAOgH,EAAQ,MAAQ,EAAIhH,EAAK,WAAW,EACtGnK,EAAM,OAASA,EAAM,KAAOqE,EAAO,OAAO8M,EAAQ,OAAQhH,EAAK,MAAM,EAAIA,EAAK,OAC9EuD,EAAYrJ,EAAO,OAAOqJ,EAAW1N,EAAM,MAAM,CACrD,CAAG,EACD,UAAWuN,KAAY0D,EAAqB,CAC1C,MAAMjR,EAAQE,EAAQqN,CAAQ,EAC9B,GAAI,CAACvN,EACH,SAEF,MAAMoR,EAAYlR,EAAQF,EAAM,SAAS,EACzC,GAAI,CAACoR,EAAW,CAEd,MAAMC,EADgBJ,EAAoB1D,CAAQ,EACdpD,EAAK,YAAcnK,EAAM,MAAQ,EACrEA,EAAM,OAASqE,EAAO,OAAOgN,EAAalH,EAAK,WAAW,EAC1D,QACD,CAED,MAAMmH,EADeL,EAAoB1D,CAAQ,EACfpD,EAAK,YAAcnK,EAAM,MAAQ,EAAIoR,EAAU,MAAQ,EACzFpR,EAAM,OAASqE,EAAO,OAAOiN,EAAYnH,EAAK,WAAW,CAC1D,CACD,IAAIoH,EAAe,EACnB,OAAA/B,EAAO,QAASzI,GAAQ,CACtB,MAAM6J,EAAW5E,GAAY7B,CAAI,EACjC,IAAIqH,EAAazK,EAAI,UAAU,OAAO,CAAC0K,EAAOC,IACrCD,GAASvR,EAAQwR,CAAI,EAAE,OAASxR,EAAQwR,CAAI,EAAE,QAAU,GAC9D,CAAC,EACJF,GAAc,EAAIrH,EAAK,cACnBpD,EAAI,OACNA,EAAI,KAAOwF,EAAM,UAAUxF,EAAI,KAAMyK,EAAa,EAAIrH,EAAK,YAAayG,CAAQ,GAElF,MAAMe,EAAmBpF,EAAM,wBAAwBxF,EAAI,KAAM6J,CAAQ,EACzEW,EAAelN,EAAO,OAAOsN,EAAiB,OAAQJ,CAAY,EAClE,MAAMK,EAAWvN,EAAO,OAAOmN,EAAYG,EAAiB,MAAQ,EAAIxH,EAAK,WAAW,EAExF,GADApD,EAAI,OAASoD,EAAK,cACdqH,EAAaI,EAAU,CACzB,MAAMC,GAAWD,EAAWJ,GAAc,EAC1CzK,EAAI,QAAU8K,CACf,CACL,CAAG,EACDrC,EAAO,QAASzI,GAAQA,EAAI,cAAgBwK,CAAY,EACjDlN,EAAO,OAAOqJ,EAAWvD,EAAK,MAAM,CAC7C,CACA,MAAM2H,GAAiB,SAASrD,EAAKvO,EAAS4M,EAAS,CACrD,MAAM9E,EAAS9H,EAAQuO,EAAI,IAAI,EAAE,EAC3BvG,EAAQhI,EAAQuO,EAAI,EAAE,EAAE,EACxBsD,EAAatD,EAAI,MAAQA,EAAI,QACnC,IAAIuD,EAAiBzF,EAAM,wBACzBwF,EAAaxF,EAAM,UAAUkC,EAAI,QAAStE,EAAK,MAAO+B,GAAS/B,CAAI,CAAC,EAAIsE,EAAI,QAC5EvC,GAAS/B,CAAI,CACjB,EACE,MAAMO,EAAY,CAChB,MAAOqH,EAAa5H,EAAK,MAAQ9F,EAAO,OAAO8F,EAAK,MAAO6H,EAAe,MAAQ,EAAI7H,EAAK,UAAU,EACrG,OAAQ,EACR,OAAQjK,EAAQuO,EAAI,IAAI,EAAE,EAC1B,MAAO,EACP,OAAQ,EACR,MAAO,EACP,QAASA,EAAI,OACjB,EACE,OAAIA,EAAI,YAAc3B,EAAQ,GAAG,UAAU,SACzCpC,EAAU,MAAQqH,EAAa1N,EAAO,OAAO8F,EAAK,MAAO6H,EAAe,KAAK,EAAI3N,EAAO,OACtFnE,EAAQuO,EAAI,IAAI,EAAE,MAAQ,EAAIvO,EAAQuO,EAAI,EAAE,EAAE,MAAQ,EACtDuD,EAAe,MAAQ,EAAI7H,EAAK,UACtC,EACIO,EAAU,OAAS1C,GAAU9H,EAAQuO,EAAI,IAAI,EAAE,MAAQtE,EAAK,aAAe,GAClEsE,EAAI,YAAc3B,EAAQ,GAAG,UAAU,QAChDpC,EAAU,MAAQqH,EAAa1N,EAAO,OAAO8F,EAAK,MAAO6H,EAAe,MAAQ,EAAI7H,EAAK,UAAU,EAAI9F,EAAO,OAC5GnE,EAAQuO,EAAI,IAAI,EAAE,MAAQ,EAAIvO,EAAQuO,EAAI,EAAE,EAAE,MAAQ,EACtDuD,EAAe,MAAQ,EAAI7H,EAAK,UACtC,EACIO,EAAU,OAAS1C,EAAS0C,EAAU,OAASxK,EAAQuO,EAAI,IAAI,EAAE,MAAQtE,EAAK,aAAe,GACpFsE,EAAI,KAAOA,EAAI,MACxBuD,EAAiBzF,EAAM,wBACrBwF,EAAaxF,EAAM,UACjBkC,EAAI,QACJpK,EAAO,OAAO8F,EAAK,MAAOjK,EAAQuO,EAAI,IAAI,EAAE,KAAK,EACjDvC,GAAS/B,CAAI,CACd,EAAGsE,EAAI,QACRvC,GAAS/B,CAAI,CACnB,EACIO,EAAU,MAAQqH,EAAa1N,EAAO,OAAO8F,EAAK,MAAOjK,EAAQuO,EAAI,IAAI,EAAE,KAAK,EAAIpK,EAAO,OACzFnE,EAAQuO,EAAI,IAAI,EAAE,MAClBtE,EAAK,MACL6H,EAAe,MAAQ,EAAI7H,EAAK,UACtC,EACIO,EAAU,OAAS1C,GAAU9H,EAAQuO,EAAI,IAAI,EAAE,MAAQ/D,EAAU,OAAS,IAE1EA,EAAU,MAAQ,KAAK,IAAI1C,EAAS9H,EAAQuO,EAAI,IAAI,EAAE,MAAQ,GAAKvG,EAAQhI,EAAQuO,EAAI,EAAE,EAAE,MAAQ,EAAE,EAAItE,EAAK,YAC9GO,EAAU,OAAS1C,EAASE,EAAQF,EAAS9H,EAAQuO,EAAI,IAAI,EAAE,MAAQ,EAAItE,EAAK,YAAc,EAAIjC,EAAQhI,EAAQuO,EAAI,EAAE,EAAE,MAAQ,EAAItE,EAAK,YAAc,GAEvJ4H,IACFrH,EAAU,QAAU6B,EAAM,UACxBkC,EAAI,QACJ/D,EAAU,MAAQ,EAAIP,EAAK,YAC3B+B,GAAS/B,CAAI,CACnB,GAEE5K,EAAI,MACF,OAAOmL,EAAU,MAAM,IAAIA,EAAU,KAAK,IAAIA,EAAU,MAAM,IAAIA,EAAU,KAAK,IAAIA,EAAU,KAAK,IAAIA,EAAU,MAAM,IAAI+D,EAAI,OAAO,GAC3I,EACS/D,CACT,EACMuH,GAAoB,SAASxD,EAAKvO,EAAS4M,EAAS,CACxD,IAAIoF,EAAU,GAad,GAZI,CACFpF,EAAQ,GAAG,SAAS,WACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,MACpBA,EAAQ,GAAG,SAAS,OACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,aACpBA,EAAQ,GAAG,SAAS,YACpBA,EAAQ,GAAG,SAAS,YACxB,EAAI,SAAS2B,EAAI,IAAI,IACjByD,EAAU,IAER,CAACA,EACH,MAAO,GAET,MAAMC,EAAajE,GAAiBO,EAAI,KAAMvO,CAAO,EAC/CkS,EAAWlE,GAAiBO,EAAI,GAAIvO,CAAO,EAC3CmS,EAAUF,EAAW,CAAC,GAAKC,EAAS,CAAC,EAAI,EAAI,EAC7CE,EAAQH,EAAW,CAAC,EAAIC,EAAS,CAAC,EAAI,EAAI,EAC1CG,EAAY,CAAC,GAAGJ,EAAY,GAAGC,CAAQ,EACvCI,EAAe,KAAK,IAAIJ,EAASE,CAAK,EAAIH,EAAWE,CAAO,CAAC,EAC/D5D,EAAI,MAAQA,EAAI,UAClBA,EAAI,QAAUlC,EAAM,UAClBkC,EAAI,QACJpK,EAAO,OAAOmO,EAAe,EAAIrI,EAAK,YAAaA,EAAK,KAAK,EAC7D6B,GAAY7B,CAAI,CACtB,GAEE,MAAMsI,EAAUlG,EAAM,wBAAwBkC,EAAI,QAASzC,GAAY7B,CAAI,CAAC,EAC5E,MAAO,CACL,MAAO9F,EAAO,OACZoK,EAAI,KAAO,EAAIgE,EAAQ,MAAQ,EAAItI,EAAK,YACxCqI,EAAe,EAAIrI,EAAK,YACxBA,EAAK,KACN,EACD,OAAQ,EACR,OAAQgI,EAAWE,CAAO,EAC1B,MAAOD,EAASE,CAAK,EACrB,OAAQ,EACR,MAAO,EACP,QAAS7D,EAAI,QACb,KAAMA,EAAI,KACV,KAAMA,EAAI,KACV,WAAY,KAAK,IAAI,MAAM,KAAM8D,CAAS,EAC1C,SAAU,KAAK,IAAI,MAAM,KAAMA,CAAS,CAC5C,CACA,EACMzC,GAAsB,SAASzC,EAAWnN,EAASwS,EAAmB5F,EAAS,CACnF,MAAM6F,EAAQ,CAAA,EACRpZ,EAAQ,CAAA,EACd,IAAIqZ,EAASlI,EAAWD,EACxB,OAAA4C,EAAU,QAAQ,SAASoB,EAAK,CAE9B,OADAA,EAAI,GAAKlC,EAAM,OAAO,CAAE,OAAQ,EAAE,CAAE,EAC5BkC,EAAI,KAAI,CACd,KAAK3B,EAAQ,GAAG,SAAS,WACzB,KAAKA,EAAQ,GAAG,SAAS,UACzB,KAAKA,EAAQ,GAAG,SAAS,UACzB,KAAKA,EAAQ,GAAG,SAAS,UACzB,KAAKA,EAAQ,GAAG,SAAS,eACzB,KAAKA,EAAQ,GAAG,SAAS,eACzB,KAAKA,EAAQ,GAAG,SAAS,YACvBvT,EAAM,KAAK,CACT,GAAIkV,EAAI,GACR,IAAKA,EAAI,QACT,KAAM,OAAO,iBACb,GAAI,OAAO,iBACX,MAAO,CACjB,CAAS,EACD,MACF,KAAK3B,EAAQ,GAAG,SAAS,SACzB,KAAKA,EAAQ,GAAG,SAAS,QACzB,KAAKA,EAAQ,GAAG,SAAS,gBACnB2B,EAAI,UACNmE,EAAUrZ,EAAM,MAChBoZ,EAAMC,EAAQ,EAAE,EAAIA,EACpBD,EAAMlE,EAAI,EAAE,EAAImE,EAChBrZ,EAAM,KAAKqZ,CAAO,GAEpB,MACF,KAAK9F,EAAQ,GAAG,SAAS,SACzB,KAAKA,EAAQ,GAAG,SAAS,QACzB,KAAKA,EAAQ,GAAG,SAAS,QACzB,KAAKA,EAAQ,GAAG,SAAS,QACzB,KAAKA,EAAQ,GAAG,SAAS,aACzB,KAAKA,EAAQ,GAAG,SAAS,UACvB8F,EAAUrZ,EAAM,MAChBoZ,EAAMC,EAAQ,EAAE,EAAIA,EACpB,MACF,KAAK9F,EAAQ,GAAG,SAAS,aACvB,CACE,MAAMxB,EAAYpL,EAAQuO,EAAI,KAAOA,EAAI,KAAK,MAAQA,EAAI,GAAG,KAAK,EAC5DlD,EAAcC,GAAiBiD,EAAI,KAAOA,EAAI,KAAK,MAAQA,EAAI,GAAG,KAAK,EAAE,OACzE,EAAInD,EAAU,EAAIA,EAAU,MAAQ,GAAKC,EAAc,GAAKpB,EAAK,gBAAkB,EACnF0I,EAAQ,CACZ,OAAQ,EACR,MAAO,EAAI1I,EAAK,gBAChB,MAAOsE,EAAI,KAAK,MAChB,QAAS,EACrB,EACUrE,EAAO,YAAY,KAAKyI,CAAK,CAC9B,CACD,MACF,KAAK/F,EAAQ,GAAG,SAAS,WACvB,CACE,MAAMrB,EAAyBrB,EAAO,YAAY,IAAK0I,GAAMA,EAAE,KAAK,EAAE,YAAYrE,EAAI,KAAK,KAAK,EAChG,OAAOrE,EAAO,YAAY,OAAOqB,EAAwB,CAAC,EAAE,CAAC,CAC9D,CACD,KACH,CACcgD,EAAI,YAAc,QAE/B/D,EAAYoH,GAAerD,EAAKvO,EAAS4M,CAAO,EAChD2B,EAAI,UAAY/D,EAChBnR,EAAM,QAASwZ,GAAQ,CACrBH,EAAUG,EACVH,EAAQ,KAAOvO,EAAO,OAAOuO,EAAQ,KAAMlI,EAAU,MAAM,EAC3DkI,EAAQ,GAAKvO,EAAO,OAAOuO,EAAQ,GAAIlI,EAAU,OAASA,EAAU,KAAK,EACzEkI,EAAQ,MAAQvO,EAAO,OAAOuO,EAAQ,MAAO,KAAK,IAAIA,EAAQ,KAAOA,EAAQ,EAAE,CAAC,EAAIzI,EAAK,aACjG,CAAO,IAEDM,EAAWwH,GAAkBxD,EAAKvO,EAAS4M,CAAO,EAClD2B,EAAI,SAAWhE,EACXA,EAAS,QAAUA,EAAS,OAASlR,EAAM,OAAS,GACtDA,EAAM,QAASwZ,GAAQ,CAErB,GADAH,EAAUG,EACNtI,EAAS,SAAWA,EAAS,MAAO,CACtC,MAAMuI,EAAO9S,EAAQuO,EAAI,IAAI,EACvBwE,EAAK/S,EAAQuO,EAAI,EAAE,EACzBmE,EAAQ,KAAOvO,EAAO,OACpB2O,EAAK,EAAIvI,EAAS,MAAQ,EAC1BuI,EAAK,EAAIA,EAAK,MAAQ,EACtBJ,EAAQ,IACtB,EACYA,EAAQ,GAAKvO,EAAO,OAClB4O,EAAG,EAAIxI,EAAS,MAAQ,EACxBwI,EAAG,EAAID,EAAK,MAAQ,EACpBJ,EAAQ,EACtB,EACYA,EAAQ,MAAQvO,EAAO,OAAOuO,EAAQ,MAAO,KAAK,IAAIA,EAAQ,GAAKA,EAAQ,IAAI,CAAC,EAAIzI,EAAK,aACrG,MACYyI,EAAQ,KAAOvO,EAAO,OAAOoG,EAAS,OAAQmI,EAAQ,IAAI,EAC1DA,EAAQ,GAAKvO,EAAO,OAAOoG,EAAS,MAAOmI,EAAQ,EAAE,EACrDA,EAAQ,MAAQvO,EAAO,OAAOuO,EAAQ,MAAOnI,EAAS,KAAK,EAAIN,EAAK,aAEhF,CAAS,EAGT,CAAG,EACDC,EAAO,YAAc,GACrB7K,EAAI,MAAM,oBAAqBoT,CAAK,EAC7BA,CACT,EACMO,GAAW,CACf,OAAA9I,EACA,WAAA8C,GACA,gBAAAU,GACA,QAAAjD,GACA,KAAAqE,EACF,EACMmE,GAAU,CACd,OAAQ/W,GACR,GAAAwF,GACA,SAAAsR,GACA,OAAA9Q,EACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js b/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js deleted file mode 100644 index 7260192..0000000 --- a/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js +++ /dev/null @@ -1,2 +0,0 @@ -import{p as R,d as N,s as W}from"./styles-fa41df25-AN4ki2j_.js";import{c as t,h as H,l as b,i as v,j as L,a5 as U,y as C}from"./index-jpNTxDe4.js";import{G as A,l as F}from"./layout-ewywu0M6.js";import{l as $}from"./line-reZX-DPl.js";import"./index-2K3MavtT.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(d,m,f){const S=d.append("tspan").attr("x",2*t().state.padding).text(m);f||S.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(d){a||(o(p,d,r),r=!1),a=!1});const w=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),l=Math.max(x.width,s.width);return w.attr("x2",l+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",l+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let l=Math.max(x,p);l===p&&(l=l+s);let d;const m=e.node().getBBox();i.doc,d=a-c,x>p&&(d=(p-l)/2+c),Math.abs(a-m.x)p&&(d=a-(x-p)/2);const f=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",d).attr("y",f).attr("class",o?"alt-composit":"composit").attr("width",l).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",d+c),x<=p&&r.attr("x",a+(l-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",d).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",l).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",d).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",l).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
    ");p=p.replace(/\n/g,"
    ");const a=p.split(L.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const w of a){const x=w.trim();if(x.length>0){const l=g.append("tspan");if(l.text(x),r===0){const d=l.node().getBBox();r+=d.height}s+=r,l.attr("x",i+t().state.noteMargin),l.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},T=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const D=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(U),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:w,y:x}=C.calcLabelPosition(i.points),l=L.getRows(o.title);let d=0;const m=[];let f=0,S=0;for(let u=0;u<=l.length;u++){const h=r.append("text").attr("text-anchor","middle").text(l[u]).attr("x",w).attr("y",x+d),y=h.node().getBBox();f=Math.max(f,y.width),S=Math.min(S,y.x),b.info(y.x,w,x+d),d===0&&(d=h.node().getBBox().height,b.info("Title height",d,x)),m.push(h)}let k=d*l.length;if(l.length>1){const u=(l.length-1)*d*.5;m.forEach((h,y)=>h.attr("y",x+y*d-u)),k=d*l.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",w-f/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",f+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},K=function(){},Q=function(e){e.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")},V=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);Q(r),new A({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel(function(){return{}});const x=c.db.getRootDoc();P(x,r,void 0,!1,p,a,c);const l=B.padding,d=r.node().getBBox(),m=d.width+l*2,f=d.height+l*2,S=m*1.75;v(r,f,S,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+m+" "+f)},tt=e=>e?e.length*B.fontSizeFactor:1,P=(e,i,o,c,s,g,p)=>{const a=new A({compound:!0,multigraph:!0});let r,w=!0;for(r=0;r{const y=h.parentElement;let E=0,M=0;y&&(y.parentElement&&(E=y.parentElement.getBBox().width),M=parseInt(y.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",E-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let S=f.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),D(i,a.edge(n),a.edge(n).relation))}),S=f.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=S.width+2*B.padding,k.height=S.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:K,draw:V},ct={parser:R,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{ct as diagram}; -//# sourceMappingURL=stateDiagram-133e3642-C-DPoShl.js.map diff --git a/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js.map b/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js.map deleted file mode 100644 index fc2b080..0000000 --- a/excalidraw/excalidraw-app/build/assets/stateDiagram-133e3642-C-DPoShl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"stateDiagram-133e3642-C-DPoShl.js","sources":["../../../node_modules/mermaid/dist/stateDiagram-133e3642.js"],"sourcesContent":["import { d as db, p as parser, s as styles } from \"./styles-fa41df25.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as getConfig, u as utils, e as common, l as log, i as configureSvgSize } from \"./mermaid-b0ad2de1.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst idCache = {};\nconst set = (key, val) => {\n idCache[key] = val;\n};\nconst get = (k) => idCache[k];\nconst keys = () => Object.keys(idCache);\nconst size = () => keys().length;\nconst idCache$1 = {\n get,\n set,\n keys,\n size\n};\nconst drawStartState = (g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit);\nconst drawDivider = (g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0);\nconst drawSimpleState = (g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n};\nconst drawDescrState = (g, stateDef) => {\n const addTspan = function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n };\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst addTitleAndBox = (g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc)\n ;\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst drawEndState = (g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n};\nconst drawForkJoinState = (g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n};\nconst _drawLongText = (_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"
    \");\n text = text.replace(/\\n/g, \"
    \");\n const lines = text.split(common.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n};\nconst drawNote = (text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n};\nconst drawState = function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n idCache$1.set(id, stateInfo);\n return stateInfo;\n};\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation) {\n const getRelationType = function(type) {\n switch (type) {\n case db.relationType.AGGREGATION:\n return \"aggregation\";\n case db.relationType.EXTENSION:\n return \"extension\";\n case db.relationType.COMPOSITION:\n return \"composition\";\n case db.relationType.DEPENDENCY:\n return \"dependency\";\n }\n };\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(db.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils.calcLabelPosition(path.points);\n const rows = common.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundstmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundstmp.width);\n minX = Math.min(minX, boundstmp.x);\n log.info(boundstmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n};\nlet conf;\nconst transformationLog = {};\nconst setConf = function() {\n};\nconst insertMarkers = function(elem) {\n elem.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\");\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n rankdir: \"RL\"\n // ranksep: '20'\n });\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n};\nconst getLabelWidth = (text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n};\nconst renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n diagObj.db.extract(doc);\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys2 = Object.keys(states);\n for (const key of keys2) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n }\n } else {\n node = drawState(diagram2, stateDef);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n layout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"],"names":["drawStartState","g","getConfig","drawDivider","drawSimpleState","stateDef","state","classBox","drawDescrState","addTspan","textEl","txt","isFirst2","tSpan","titleBox","titleHeight","description","isFirst","isSecond","descr","descrLine","descrBox","width","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","title","titleWidth","startX","graphBox","lineY","drawEndState","drawForkJoinState","height","tmp","_drawLongText","_text","x","y","textHeight","textElem","text","lines","common","tHeight","line2","span","textBounds","drawNote","note","rectElem","textWidth","drawState","elem","id","stateInfo","stateBox","edgeCount","drawEdge","path","relation","getRelationType","type","db","p","lineData","lineFunction","line","d","curveBasis","svgPath","url","label","utils","rows","titleRows","maxWidth","minX","i","boundstmp","log","boxHeight","heightAdj","bounds","conf","transformationLog","setConf","insertMarkers","draw","_version","diagObj","securityLevel","sandboxElement","select","root","doc","diagram2","graphlib.Graph","rootDoc","renderDoc","padding","svgWidth","configureSvgSize","getLabelWidth","parentId","domDocument","graph","edgeFreeDoc","states","relations","keys2","key","node","sub","boxBounds","noteDef","cnt","layout","svgElem","v","divider","parent","pWidth","pShift","e","renderer","diagram","parser","styles","cnf"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js b/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js deleted file mode 100644 index eb4e3f7..0000000 --- a/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js +++ /dev/null @@ -1,2 +0,0 @@ -import{p as Q,d as B,s as X,D as H,a as Z,S as j,b as F,c as I}from"./styles-fa41df25-AN4ki2j_.js";import{G as tt}from"./layout-ewywu0M6.js";import{l,c as g,h as x,y as et,i as ot,j as w}from"./index-jpNTxDe4.js";import{r as st}from"./index-a92ac404-gZDUZJdp.js";import"./index-2K3MavtT.js";import"./edges-49ac43a2-VNwnN65b.js";import"./createText-3df630b5-oLWc-GwH.js";import"./svgDraw-0fcc813d-8P1J7hc8.js";import"./line-reZX-DPl.js";import"./array-Nw74a44z.js";import"./path-aUcfwwLI.js";const A="rect",C="rectWithTitle",nt="start",ct="end",it="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,ft="cluster-alt",bt=`${_}-${ft}`,V="parent",Y="note",ht="state",N="----",At=`${N}${Y}`,M=`${N}${V}`,W="fill:none",z="fill: #333",m="c",q="text",K="normal";let y={},E=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){l.trace("Extracting classes"),n.db.clear();try{return n.parser.parse(t),n.db.extract(n.db.getRootDocV2()),n.db.getClasses()}catch(e){return e}};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",c=N){const i=e!==null&&e.length>0?`${c}${e}`:"";return`${ht}-${t}${i}-${n}`}const h=(t,n,e,c,i,r)=>{const o=e.id,u=$t(c[o]);if(o!=="root"){let T=A;e.start===!0&&(T=nt),e.start===!1&&(T=ct),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=A,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=A),!s.type&&e.doc&&(l.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===Z?it:rt,s.classes=s.classes+" "+Dt+" "+(r?bt:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,E),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const a={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+At+"-"+E,domId:R(o,E,Y),type:s.type,padding:15},d={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,E,V),type:"group",padding:0};E++;const D=o+M;t.setNode(D,d),t.setNode(a.id,a),t.setNode(o,p),t.setParent(o,D),t.setParent(a.id,D);let S=o,f=a.id;e.note.position==="left of"&&(S=a.id,f=o),t.setEdge(S,f,{arrowhead:"none",arrowType:"",style:W,labelStyle:"",classes:pt,arrowheadStyle:z,labelpos:m,labelType:q,thickness:K})}else t.setNode(o,p)}n&&n.id!=="root"&&(l.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(l.trace("Adding nodes children "),xt(t,e,e.doc,c,i,!r))},xt=(t,n,e,c,i,r)=>{l.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:h(t,n,o,c,i,r);break;case H:h(t,n,o,c,i,r);break;case j:{h(t,n,o.state1,c,i,r),h(t,n,o.state2,c,i,r);const u={id:"edge"+E,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:W,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:z,labelpos:m,labelType:q,thickness:K,classes:U};t.setEdge(o.state1.id,o.state2.id,u,E),E++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let c=0;c{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Ut as diagram}; -//# sourceMappingURL=stateDiagram-v2-6371a76b-m56clzbO.js.map diff --git a/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js.map b/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js.map deleted file mode 100644 index ce085dc..0000000 --- a/excalidraw/excalidraw-app/build/assets/stateDiagram-v2-6371a76b-m56clzbO.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"stateDiagram-v2-6371a76b-m56clzbO.js","sources":["../../../node_modules/mermaid/dist/stateDiagram-v2-6371a76b.js"],"sourcesContent":["import { D as DEFAULT_STATE_TYPE, a as DIVIDER_TYPE, S as STMT_RELATION, b as STMT_STATE, c as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from \"./styles-fa41df25.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select } from \"d3\";\nimport { l as log, c as getConfig, u as utils, i as configureSvgSize, e as common } from \"./mermaid-b0ad2de1.js\";\nimport { r as render } from \"./index-a92ac404.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-49ac43a2.js\";\nimport \"./createText-3df630b5.js\";\nimport \"mdast-util-from-markdown\";\nimport \"./svgDraw-0fcc813d.js\";\nconst SHAPE_STATE = \"rect\";\nconst SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nconst SHAPE_START = \"start\";\nconst SHAPE_END = \"end\";\nconst SHAPE_DIVIDER = \"divider\";\nconst SHAPE_GROUP = \"roundedWithTitle\";\nconst SHAPE_NOTE = \"note\";\nconst SHAPE_NOTEGROUP = \"noteGroup\";\nconst CSS_DIAGRAM = \"statediagram\";\nconst CSS_STATE = \"state\";\nconst CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nconst CSS_EDGE = \"transition\";\nconst CSS_NOTE = \"note\";\nconst CSS_NOTE_EDGE = \"note-edge\";\nconst CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nconst CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nconst CSS_CLUSTER = \"cluster\";\nconst CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nconst CSS_CLUSTER_ALT = \"cluster-alt\";\nconst CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nconst PARENT = \"parent\";\nconst NOTE = \"note\";\nconst DOMID_STATE = \"state\";\nconst DOMID_TYPE_SPACER = \"----\";\nconst NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nconst PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\nconst G_EDGE_STYLE = \"fill:none\";\nconst G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nconst G_EDGE_LABELPOS = \"c\";\nconst G_EDGE_LABELTYPE = \"text\";\nconst G_EDGE_THICKNESS = \"normal\";\nlet nodeDb = {};\nlet graphItemCount = 0;\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n cnf[key];\n }\n};\nconst getClasses = function(text, diagramObj) {\n log.trace(\"Extracting classes\");\n diagramObj.db.clear();\n try {\n diagramObj.parser.parse(text);\n diagramObj.db.extract(diagramObj.db.getRootDocV2());\n return diagramObj.db.getClasses();\n } catch (e) {\n return e;\n }\n};\nfunction getClassesFromDbInfo(dbInfoItem) {\n if (dbInfoItem === void 0 || dbInfoItem === null) {\n return \"\";\n } else {\n if (dbInfoItem.classes) {\n return dbInfoItem.classes.join(\" \");\n } else {\n return \"\";\n }\n }\n}\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\nconst setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {\n const itemId = parsedItem.id;\n const classStr = getClassesFromDbInfo(diagramStates[itemId]);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n }\n if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb[itemId]) {\n nodeDb[itemId] = {\n id: itemId,\n shape,\n description: common.sanitizeText(itemId, getConfig()),\n classes: `${classStr} ${CSS_DIAGRAM_STATE}`\n };\n }\n const newNode = nodeDb[itemId];\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig());\n }\n if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n newNode.shape = SHAPE_STATE;\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for \", itemId, getDir(parsedItem));\n newNode.type = \"group\";\n newNode.dir = getDir(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.classes = newNode.classes + \" \" + CSS_DIAGRAM_CLUSTER + \" \" + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\");\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n labelText: newNode.description,\n // typeof newNode.description === 'object'\n // ? newNode.description[0]\n // : newNode.description,\n classes: newNode.classes,\n style: \"\",\n //styles.style,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n labelText: parsedItem.note.text,\n classes: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n style: \"\",\n // styles.style,\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n labelText: parsedItem.note.text,\n classes: newNode.classes,\n style: \"\",\n // styles.style,\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n padding: 0\n //getConfig().flowchart.padding\n };\n graphItemCount++;\n const parentNodeId = itemId + PARENT_ID;\n g.setNode(parentNodeId, groupData);\n g.setNode(noteData.id, noteData);\n g.setNode(itemId, nodeData);\n g.setParent(itemId, parentNodeId);\n g.setParent(noteData.id, parentNodeId);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n g.setEdge(from, to, {\n arrowhead: \"none\",\n arrowType: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS\n });\n } else {\n g.setNode(itemId, nodeData);\n }\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n g.setParent(itemId, parent.id);\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);\n }\n};\nconst setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case DEFAULT_STATE_TYPE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case STMT_RELATION:\n {\n setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);\n setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);\n const edgeData = {\n id: \"edge\" + graphItemCount,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common.sanitizeText(item.description, getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE\n };\n g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);\n graphItemCount++;\n }\n break;\n }\n });\n};\nconst getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (let i = 0; i < parsedItem.doc.length; i++) {\n const parsedItemDoc = parsedItem.doc[i];\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n};\nconst draw = async function(text, id, _version, diag) {\n log.info(\"Drawing state diagram (v2)\", id);\n nodeDb = {};\n diag.db.getDirection();\n const { securityLevel, state: conf } = getConfig();\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n log.info(diag.db.getRootDocV2());\n diag.db.extract(diag.db.getRootDocV2());\n log.info(diag.db.getRootDocV2());\n const diagramStates = diag.db.getStates();\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: getDir(diag.db.getRootDocV2()),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"barb\"], CSS_DIAGRAM, id);\n const padding = 8;\n utils.insertTitle(svg, \"statediagramTitleText\", conf.titleTopMargin, diag.db.getDiagramTitle());\n const bounds = svg.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n svg.attr(\"class\", CSS_DIAGRAM);\n const svgBounds = svg.node().getBBox();\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n svg.attr(\"viewBox\", vBox);\n const labels = document.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = document.createElementNS(\"http://www.w3.org/2000/svg\", SHAPE_STATE);\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n};\nconst renderer = {\n setConf,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"],"names":["SHAPE_STATE","SHAPE_STATE_WITH_DESC","SHAPE_START","SHAPE_END","SHAPE_DIVIDER","SHAPE_GROUP","SHAPE_NOTE","SHAPE_NOTEGROUP","CSS_DIAGRAM","CSS_STATE","CSS_DIAGRAM_STATE","CSS_EDGE","CSS_NOTE","CSS_NOTE_EDGE","CSS_EDGE_NOTE_EDGE","CSS_DIAGRAM_NOTE","CSS_CLUSTER","CSS_DIAGRAM_CLUSTER","CSS_CLUSTER_ALT","CSS_DIAGRAM_CLUSTER_ALT","PARENT","NOTE","DOMID_STATE","DOMID_TYPE_SPACER","NOTE_ID","PARENT_ID","G_EDGE_STYLE","G_EDGE_ARROWHEADSTYLE","G_EDGE_LABELPOS","G_EDGE_LABELTYPE","G_EDGE_THICKNESS","nodeDb","graphItemCount","setConf","cnf","keys","key","getClasses","text","diagramObj","log","getClassesFromDbInfo","dbInfoItem","stateDomId","itemId","counter","type","typeSpacer","typeStr","setupNode","g","parent","parsedItem","diagramStates","diagramDb","altFlag","classStr","shape","DEFAULT_STATE_TYPE","common","getConfig","newNode","getDir","DIVIDER_TYPE","nodeData","noteData","groupData","parentNodeId","from","to","setupDoc","parentParsedItem","doc","item","STMT_STATE","STMT_RELATION","edgeData","defaultDir","DEFAULT_NESTED_DOC_DIR","dir","i","parsedItemDoc","draw","id","_version","diag","securityLevel","conf","nodeSpacing","rankSpacing","graphlib.Graph","sandboxElement","select","root","svg","element","render","padding","utils","bounds","width","height","svgBounds","configureSvgSize","vBox","labels","label","dim","rect","renderer","diagram","parser","db","styles"],"mappings":"2eAmBA,MAAMA,EAAc,OACdC,EAAwB,gBACxBC,GAAc,QACdC,GAAY,MACZC,GAAgB,UAChBC,GAAc,mBACdC,GAAa,OACbC,GAAkB,YAClBC,EAAc,eACdC,GAAY,QACZC,GAAoB,GAAGF,CAAW,IAAIC,EAAS,GAC/CE,EAAW,aACXC,GAAW,OACXC,GAAgB,YAChBC,GAAqB,GAAGH,CAAQ,IAAIE,EAAa,GACjDE,GAAmB,GAAGP,CAAW,IAAII,EAAQ,GAC7CI,GAAc,UACdC,GAAsB,GAAGT,CAAW,IAAIQ,EAAW,GACnDE,GAAkB,cAClBC,GAA0B,GAAGX,CAAW,IAAIU,EAAe,GAC3DE,EAAS,SACTC,EAAO,OACPC,GAAc,QACdC,EAAoB,OACpBC,GAAU,GAAGD,CAAiB,GAAGF,CAAI,GACrCI,EAAY,GAAGF,CAAiB,GAAGH,CAAM,GACzCM,EAAe,YACfC,EAAwB,aACxBC,EAAkB,IAClBC,EAAmB,OACnBC,EAAmB,SACzB,IAAIC,EAAS,CAAA,EACTC,EAAiB,EACrB,MAAMC,GAAU,SAASC,EAAK,CAC5B,MAAMC,EAAO,OAAO,KAAKD,CAAG,EAC5B,UAAWE,KAAOD,EAChBD,EAAIE,CAAG,CAEX,EACMC,GAAa,SAASC,EAAMC,EAAY,CAC5CC,EAAI,MAAM,oBAAoB,EAC9BD,EAAW,GAAG,QACd,GAAI,CACF,OAAAA,EAAW,OAAO,MAAMD,CAAI,EAC5BC,EAAW,GAAG,QAAQA,EAAW,GAAG,aAAY,CAAE,EAC3CA,EAAW,GAAG,YACtB,OAAQ,EAAG,CACV,OAAO,CACR,CACH,EACA,SAASE,GAAqBC,EAAY,CACxC,OAA6BA,GAAe,KACnC,GAEHA,EAAW,QACNA,EAAW,QAAQ,KAAK,GAAG,EAE3B,EAGb,CACA,SAASC,EAAWC,EAAS,GAAIC,EAAU,EAAGC,EAAO,GAAIC,EAAaxB,EAAmB,CACvF,MAAMyB,EAAUF,IAAS,MAAQA,EAAK,OAAS,EAAI,GAAGC,CAAU,GAAGD,CAAI,GAAK,GAC5E,MAAO,GAAGxB,EAAW,IAAIsB,CAAM,GAAGI,CAAO,IAAIH,CAAO,EACtD,CACA,MAAMI,EAAY,CAACC,EAAGC,EAAQC,EAAYC,EAAeC,EAAWC,IAAY,CAC9E,MAAMX,EAASQ,EAAW,GACpBI,EAAWf,GAAqBY,EAAcT,CAAM,CAAC,EAC3D,GAAIA,IAAW,OAAQ,CACrB,IAAIa,EAAQzD,EACRoD,EAAW,QAAU,KACvBK,EAAQvD,IAENkD,EAAW,QAAU,KACvBK,EAAQtD,IAENiD,EAAW,OAASM,IACtBD,EAAQL,EAAW,MAEhBrB,EAAOa,CAAM,IAChBb,EAAOa,CAAM,EAAI,CACf,GAAIA,EACJ,MAAAa,EACA,YAAaE,EAAO,aAAaf,EAAQgB,EAAS,CAAE,EACpD,QAAS,GAAGJ,CAAQ,IAAI9C,EAAiB,EACjD,GAEI,MAAMmD,EAAU9B,EAAOa,CAAM,EACzBQ,EAAW,cACT,MAAM,QAAQS,EAAQ,WAAW,GACnCA,EAAQ,MAAQ5D,EAChB4D,EAAQ,YAAY,KAAKT,EAAW,WAAW,GAE3CS,EAAQ,YAAY,OAAS,GAC/BA,EAAQ,MAAQ5D,EACZ4D,EAAQ,cAAgBjB,EAC1BiB,EAAQ,YAAc,CAACT,EAAW,WAAW,EAE7CS,EAAQ,YAAc,CAACA,EAAQ,YAAaT,EAAW,WAAW,IAGpES,EAAQ,MAAQ7D,EAChB6D,EAAQ,YAAcT,EAAW,aAGrCS,EAAQ,YAAcF,EAAO,oBAAoBE,EAAQ,YAAaD,EAAS,CAAE,GAE/EC,EAAQ,YAAY,SAAW,GAAKA,EAAQ,QAAU5D,IACxD4D,EAAQ,MAAQ7D,GAEd,CAAC6D,EAAQ,MAAQT,EAAW,MAC9BZ,EAAI,KAAK,uBAAwBI,EAAQkB,EAAOV,CAAU,CAAC,EAC3DS,EAAQ,KAAO,QACfA,EAAQ,IAAMC,EAAOV,CAAU,EAC/BS,EAAQ,MAAQT,EAAW,OAASW,EAAe3D,GAAgBC,GACnEwD,EAAQ,QAAUA,EAAQ,QAAU,IAAM5C,GAAsB,KAAOsC,EAAUpC,GAA0B,KAE7G,MAAM6C,EAAW,CACf,WAAY,GACZ,MAAOH,EAAQ,MACf,UAAWA,EAAQ,YAInB,QAASA,EAAQ,QACjB,MAAO,GAEP,GAAIjB,EACJ,IAAKiB,EAAQ,IACb,MAAOlB,EAAWC,EAAQZ,CAAc,EACxC,KAAM6B,EAAQ,KACd,QAAS,EAEf,EAEI,GADAG,EAAS,YAAc,GACnBZ,EAAW,KAAM,CACnB,MAAMa,EAAW,CACf,WAAY,GACZ,MAAO3D,GACP,UAAW8C,EAAW,KAAK,KAC3B,QAASrC,GAET,MAAO,GAEP,GAAI6B,EAASpB,GAAU,IAAMQ,EAC7B,MAAOW,EAAWC,EAAQZ,EAAgBX,CAAI,EAC9C,KAAMwC,EAAQ,KACd,QAAS,EAEjB,EACYK,EAAY,CAChB,WAAY,GACZ,MAAO3D,GACP,UAAW6C,EAAW,KAAK,KAC3B,QAASS,EAAQ,QACjB,MAAO,GAEP,GAAIjB,EAASnB,EACb,MAAOkB,EAAWC,EAAQZ,EAAgBZ,CAAM,EAChD,KAAM,QACN,QAAS,CAEjB,EACMY,IACA,MAAMmC,EAAevB,EAASnB,EAC9ByB,EAAE,QAAQiB,EAAcD,CAAS,EACjChB,EAAE,QAAQe,EAAS,GAAIA,CAAQ,EAC/Bf,EAAE,QAAQN,EAAQoB,CAAQ,EAC1Bd,EAAE,UAAUN,EAAQuB,CAAY,EAChCjB,EAAE,UAAUe,EAAS,GAAIE,CAAY,EACrC,IAAIC,EAAOxB,EACPyB,EAAKJ,EAAS,GACdb,EAAW,KAAK,WAAa,YAC/BgB,EAAOH,EAAS,GAChBI,EAAKzB,GAEPM,EAAE,QAAQkB,EAAMC,EAAI,CAClB,UAAW,OACX,UAAW,GACX,MAAO3C,EACP,WAAY,GACZ,QAASZ,GACT,eAAgBa,EAChB,SAAUC,EACV,UAAWC,EACX,UAAWC,CACnB,CAAO,CACP,MACMoB,EAAE,QAAQN,EAAQoB,CAAQ,CAE7B,CACGb,GAAUA,EAAO,KAAO,SAC1BX,EAAI,MAAM,gBAAiBI,EAAQ,8BAA+BO,EAAO,EAAE,EAC3ED,EAAE,UAAUN,EAAQO,EAAO,EAAE,GAE3BC,EAAW,MACbZ,EAAI,MAAM,wBAAwB,EAClC8B,GAASpB,EAAGE,EAAYA,EAAW,IAAKC,EAAeC,EAAW,CAACC,CAAO,EAE9E,EACMe,GAAW,CAACpB,EAAGqB,EAAkBC,EAAKnB,EAAeC,EAAWC,IAAY,CAChFf,EAAI,MAAM,QAASgC,CAAG,EACtBA,EAAI,QAASC,GAAS,CACpB,OAAQA,EAAK,KAAI,CACf,KAAKC,EACHzB,EAAUC,EAAGqB,EAAkBE,EAAMpB,EAAeC,EAAWC,CAAO,EACtE,MACF,KAAKG,EACHT,EAAUC,EAAGqB,EAAkBE,EAAMpB,EAAeC,EAAWC,CAAO,EACtE,MACF,KAAKoB,EACH,CACE1B,EAAUC,EAAGqB,EAAkBE,EAAK,OAAQpB,EAAeC,EAAWC,CAAO,EAC7EN,EAAUC,EAAGqB,EAAkBE,EAAK,OAAQpB,EAAeC,EAAWC,CAAO,EAC7E,MAAMqB,EAAW,CACf,GAAI,OAAS5C,EACb,UAAW,SACX,aAAc,aACd,MAAON,EACP,WAAY,GACZ,MAAOiC,EAAO,aAAac,EAAK,YAAab,EAAS,CAAE,EACxD,eAAgBjC,EAChB,SAAUC,EACV,UAAWC,EACX,UAAWC,EACX,QAASnB,CACrB,EACUuC,EAAE,QAAQuB,EAAK,OAAO,GAAIA,EAAK,OAAO,GAAIG,EAAU5C,CAAc,EAClEA,GACD,CACD,KACH,CACL,CAAG,CACH,EACM8B,EAAS,CAACV,EAAYyB,EAAaC,IAA2B,CAClE,IAAIC,EAAMF,EACV,GAAIzB,EAAW,IACb,QAAS4B,EAAI,EAAGA,EAAI5B,EAAW,IAAI,OAAQ4B,IAAK,CAC9C,MAAMC,EAAgB7B,EAAW,IAAI4B,CAAC,EAClCC,EAAc,OAAS,QACzBF,EAAME,EAAc,MAEvB,CAEH,OAAOF,CACT,EACMG,GAAO,eAAe5C,EAAM6C,EAAIC,EAAUC,EAAM,CACpD7C,EAAI,KAAK,6BAA8B2C,CAAE,EACzCpD,EAAS,CAAA,EACTsD,EAAK,GAAG,eACR,KAAM,CAAE,cAAAC,EAAe,MAAOC,CAAM,EAAG3B,EAAS,EAC1C4B,EAAcD,EAAK,aAAe,GAClCE,EAAcF,EAAK,aAAe,GACxC/C,EAAI,KAAK6C,EAAK,GAAG,aAAc,CAAA,EAC/BA,EAAK,GAAG,QAAQA,EAAK,GAAG,aAAY,CAAE,EACtC7C,EAAI,KAAK6C,EAAK,GAAG,aAAc,CAAA,EAC/B,MAAMhC,EAAgBgC,EAAK,GAAG,UAAS,EACjCnC,EAAI,IAAIwC,GAAe,CAC3B,WAAY,GACZ,SAAU,EACX,CAAA,EAAE,SAAS,CACV,QAAS5B,EAAOuB,EAAK,GAAG,aAAY,CAAE,EACtC,QAASG,EACT,QAASC,EACT,QAAS,EACT,QAAS,CACb,CAAG,EAAE,oBAAoB,UAAW,CAChC,MAAO,EACX,CAAG,EACDxC,EAAUC,EAAG,OAAQmC,EAAK,GAAG,aAAc,EAAEhC,EAAegC,EAAK,GAAI,EAAI,EACzE,IAAIM,EACAL,IAAkB,YACpBK,EAAiBC,EAAO,KAAOT,CAAE,GAEnC,MAAMU,EAAOP,IAAkB,UAAYM,EAAOD,EAAe,MAAK,EAAG,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAO,MAAM,EAC3GE,EAAMD,EAAK,OAAO,QAAQV,CAAE,IAAI,EAChCY,EAAUF,EAAK,OAAO,IAAMV,EAAK,IAAI,EAC3C,MAAMa,GAAOD,EAAS7C,EAAG,CAAC,MAAM,EAAG1C,EAAa2E,CAAE,EAClD,MAAMc,EAAU,EAChBC,GAAM,YAAYJ,EAAK,wBAAyBP,EAAK,eAAgBF,EAAK,GAAG,gBAAe,CAAE,EAC9F,MAAMc,EAASL,EAAI,KAAM,EAAC,QAAO,EAC3BM,EAAQD,EAAO,MAAQF,EAAU,EACjCI,EAASF,EAAO,OAASF,EAAU,EACzCH,EAAI,KAAK,QAAStF,CAAW,EAC7B,MAAM8F,EAAYR,EAAI,KAAM,EAAC,QAAO,EACpCS,GAAiBT,EAAKO,EAAQD,EAAOb,EAAK,WAAW,EACrD,MAAMiB,EAAO,GAAGF,EAAU,EAAIL,CAAO,IAAIK,EAAU,EAAIL,CAAO,IAAIG,CAAK,IAAIC,CAAM,GACjF7D,EAAI,MAAM,WAAWgE,CAAI,EAAE,EAC3BV,EAAI,KAAK,UAAWU,CAAI,EACxB,MAAMC,EAAS,SAAS,iBAAiB,QAAUtB,EAAK,sBAAsB,EAC9E,UAAWuB,KAASD,EAAQ,CAC1B,MAAME,EAAMD,EAAM,UACZE,EAAO,SAAS,gBAAgB,6BAA8B5G,CAAW,EAC/E4G,EAAK,aAAa,KAAM,CAAC,EACzBA,EAAK,aAAa,KAAM,CAAC,EACzBA,EAAK,aAAa,QAASD,EAAI,KAAK,EACpCC,EAAK,aAAa,SAAUD,EAAI,MAAM,EACtCD,EAAM,aAAaE,EAAMF,EAAM,UAAU,CAC1C,CACH,EACMG,GAAW,CACf,QAAA5E,GACA,WAAAI,GACA,KAAA6C,EACF,EACM4B,GAAU,CAChB,OAAEC,EACA,GAAAC,EACA,SAAAH,GACA,OAAAI,EACA,KAAO/E,GAAQ,CACRA,EAAI,QACPA,EAAI,MAAQ,IAEdA,EAAI,MAAM,oBAAsBA,EAAI,oBACpC8E,EAAG,MAAK,CACT,CACH","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js b/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js deleted file mode 100644 index 3f953cf..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js +++ /dev/null @@ -1,111 +0,0 @@ -import{i as V,G as q}from"./layout-ewywu0M6.js";import{_ as M,$ as R,X as F,p as N,l as u,q as U,c as $,j as I,r as C,o as E,h as _,y as X,t as H,a0 as W}from"./index-jpNTxDe4.js";import{f as J}from"./flowDb-6a57c1b4-o7QdmK-d.js";import{r as K}from"./index-a92ac404-gZDUZJdp.js";import{s as Q}from"./selectAll-ksDY_7eo.js";const Y=(e,l)=>M.lang.round(R.parse(e)[l]),Z=Y;function be(e,l){return!!e.children(l).length}function fe(e){return L(e.v)+":"+L(e.w)+":"+L(e.name)}var j=/:/g;function L(e){return e?String(e).replace(j,"\\:"):""}function O(e,l){l&&e.attr("style",l)}function ue(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function we(e,l){var c=l.graph();if(V(c)){var a=c.transition;if(F(a))return a(e)}return e}function ee(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}O(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const G={},te=function(e){const l=Object.keys(e);for(const c of l)G[c]=e[c]},z=function(e,l,c,a,i,d){const w=a.select(`[id="${c}"]`);Object.keys(e).forEach(function(p){const r=e[p];let g="default";r.classes.length>0&&(g=r.classes.join(" ")),g=g+" flowchart-label";const h=N(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(u.info("vertex",r,r.labelType),r.labelType==="markdown")u.info("vertex",r,r.labelType);else if(U($().flowchart.htmlLabels)){const m={label:t.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};s=ee(w,m).node(),s.parentNode.removeChild(s)}else{const m=i.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=t.split(I.lineBreakRegex);for(const T of k){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=T,m.appendChild(v)}s=m}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}l.setNode(r.id,{labelStyle:h.labelStyle,shape:o,labelText:t,labelType:r.labelType,rx:b,ry:b,class:g,style:h.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:$().flowchart.padding}),u.info("setNode",{labelStyle:h.labelStyle,labelType:r.labelType,shape:o,labelText:t,rx:b,ry:b,class:g,style:h.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:$().flowchart.padding})})},P=function(e,l,c){u.info("abc78 edges = ",e);let a=0,i={},d,w;if(e.defaultStyle!==void 0){const n=N(e.defaultStyle);d=n.style,w=n.labelStyle}e.forEach(function(n){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,u.info("abc78 new entry",p,i[p])):(i[p]++,u.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];u.info("abc78 new link id to be used is",p,r,i[p]);const g="LS-"+n.start,h="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),w!==void 0&&(b=w),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=N(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=C(n.interpolate,E):e.defaultInterpolate!==void 0?t.curve=C(e.defaultInterpolate,E):t.curve=C(G.curve,E),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=n.text.replace(I.lineBreakRegex,` -`),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+g+" "+h,l.setEdge(n.start,n.end,t,a)})},re=function(e,l){u.info("Extracting classes"),l.db.clear();try{return l.parse(e),l.db.getClasses()}catch{return}},le=async function(e,l,c,a){u.info("Drawing flowchart"),a.db.clear(),J.setGen("gen-2"),a.parser.parse(e);let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:w}=$(),n=w.nodeSpacing||50,p=w.rankSpacing||50;let r;d==="sandbox"&&(r=_("#i"+l));const g=d==="sandbox"?_(r.nodes()[0].contentDocument.body):_("body"),h=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new q({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();u.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],u.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),m=a.db.getEdges();u.info("Edges",m);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Q("cluster").append("text");for(let f=0;f{const c=Z,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return W(a,i,d,l)},oe=e=>`.label { - font-family: ${e.fontFamily}; - color: ${e.nodeTextColor||e.textColor}; - } - .cluster-label text { - fill: ${e.titleColor}; - } - .cluster-label span,p { - color: ${e.titleColor}; - } - - .label text,span,p { - fill: ${e.nodeTextColor||e.textColor}; - color: ${e.nodeTextColor||e.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${e.mainBkg}; - stroke: ${e.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: ${e.arrowheadColor}; - } - - .edgePath .path { - stroke: ${e.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${e.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${e.edgeLabelBackground}; - rect { - opacity: 0.5; - background-color: ${e.edgeLabelBackground}; - fill: ${e.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${ae(e.edgeLabelBackground,.5)}; - // background-color: - } - - .cluster rect { - fill: ${e.clusterBkg}; - stroke: ${e.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${e.titleColor}; - } - - .cluster span,p { - color: ${e.titleColor}; - } - /* .cluster div { - color: ${e.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${e.fontFamily}; - font-size: 12px; - background: ${e.tertiaryColor}; - border: 1px solid ${e.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; - } -`,ye=oe;export{O as a,ee as b,we as c,ue as d,fe as e,he as f,ye as g,be as i}; -//# sourceMappingURL=styles-5f89df53-Cnw1EiWb.js.map diff --git a/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js.map b/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js.map deleted file mode 100644 index 2509f8f..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-5f89df53-Cnw1EiWb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles-5f89df53-Cnw1EiWb.js","sources":["../../../node_modules/khroma/dist/methods/channel.js","../../../node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js","../../../node_modules/mermaid/dist/styles-5f89df53.js"],"sourcesContent":["/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n","import * as _ from 'lodash-es';\n\n// Public utility functions\nexport { isSubgraph, edgeToId, applyStyle, applyClass, applyTransition };\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + ':' + escapeId(e.w) + ':' + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, '\\\\:') : '';\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom.attr('class', classFn).attr('class', otherClasses + ' ' + dom.attr('class'));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","import * as util from '../util.js';\n\nexport { addHtmlLabel };\n\nfunction addHtmlLabel(root, node) {\n var fo = root.append('foreignObject').attr('width', '100000');\n\n var div = fo.append('xhtml:div');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n var label = node.label;\n switch (typeof label) {\n case 'function':\n div.insert(label);\n break;\n case 'object':\n // Currently we assume this is a DOM object.\n div.insert(function () {\n return label;\n });\n break;\n default:\n div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n\n var client = div.node().getBoundingClientRect();\n fo.attr('width', client.width).attr('height', client.height);\n\n return fo;\n}\n","import * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { curveLinear, select, selectAll } from \"d3\";\nimport { f as flowDb } from \"./flowDb-6a57c1b4.js\";\nimport { k as getStylesFromArray, l as log, n as evaluate, c as getConfig, e as common, o as interpolateToCurve, u as utils, p as setupGraphViewbox } from \"./mermaid-b0ad2de1.js\";\nimport { r as render } from \"./index-a92ac404.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport * as khroma from \"khroma\";\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = function(vert, g, svgId, root, doc, diagObj) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(vert);\n keys.forEach(function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n log.info(\"vertex\", vertex, vertex.labelType);\n if (vertex.labelType === \"markdown\") {\n log.info(\"vertex\", vertex, vertex.labelType);\n } else {\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n )\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n }\n let radious = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radious = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n labelType: vertex.labelType,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n log.info(\"setNode\", {\n labelStyle: styles.labelStyle,\n labelType: vertex.labelType,\n shape: _shape,\n labelText: vertexText,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n domId: diagObj.db.lookUpDomId(vertex.id),\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n dir: vertex.dir,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n });\n};\nconst addEdges = function(edges, g, diagObj) {\n log.info(\"abc78 edges = \", edges);\n let cnt = 0;\n let linkIdCnt = {};\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n cnt++;\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n case \"invisible\":\n edgeData.thickness = \"invisible\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 0;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n g.setEdge(edge.start, edge.end, edgeData, cnt);\n });\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n diagObj.db.clear();\n try {\n diagObj.parse(text);\n return diagObj.db.getClasses();\n } catch (e) {\n return;\n }\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n diagObj.db.clear();\n flowDb.setGen(\"gen-2\");\n diagObj.parser.parse(text);\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 0,\n marginy: 0\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n log.info(\"Subgraph - \", subG);\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const vert = diagObj.db.getVertices();\n const edges = diagObj.db.getEdges();\n log.info(\"Edges\", edges);\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.info(\"Setting up subgraphs\", subG.nodes[j], subG.id);\n g.setParent(subG.nodes[j], subG.id);\n }\n }\n addVertices(vert, g, id, root, doc, diagObj);\n addEdges(edges, g);\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"point\", \"circle\", \"cross\"], \"flowchart\", id);\n utils.insertTitle(svg, \"flowchartTitleText\", conf2.titleTopMargin, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n diagObj.db.indexNodes(\"subGraph\" + i);\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = select(\"#\" + id + ' [id=\"' + key + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRendererV2 = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nexport {\n flowStyles as a,\n flowRendererV2 as f\n};\n"],"names":["channel","color","_","Color","channel$1","isSubgraph","g","v","edgeToId","escapeId","ID_DELIM","str","applyStyle","dom","styleFn","applyClass","classFn","otherClasses","applyTransition","selection","graph","_.isPlainObject","transition","_.isFunction","addHtmlLabel","root","node","fo","div","label","util.applyStyle","client","conf","setConf","cnf","keys","key","addVertices","vert","svgId","doc","diagObj","svg","id","vertex","classStr","styles","getStylesFromArray","vertexText","vertexNode","log","evaluate","getConfig","s","svgLabel","rows","common","row","tspan","radious","_shape","addEdges","edges","cnt","linkIdCnt","defaultStyle","defaultLabelStyle","defaultStyles","edge","linkIdBase","linkId","linkNameStart","linkNameEnd","edgeData","style","labelStyle","interpolateToCurve","curveLinear","getClasses","text","draw","_version","flowDb","dir","securityLevel","conf2","nodeSpacing","rankSpacing","sandboxElement","select","graphlib.Graph","subG","subGraphs","i2","i","selectAll","j","element","render","utils","setupGraphViewbox","labels","dim","rect","link","linkNode","shape","flowRendererV2","fade","opacity","khroma.channel","r","b","khroma.rgba","getStyles","options","flowStyles"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js b/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js deleted file mode 100644 index 824688b..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js +++ /dev/null @@ -1,161 +0,0 @@ -import{s as He,g as We,a as qe,b as Je,c as R,v as Ze,x as $e,m as et,z as tt,l as st,j as De,y as Ve,h as M}from"./index-jpNTxDe4.js";var Be=function(){var e=function(v,n,r,c){for(r=r||{},c=v.length;c--;r[v[c]]=n);return r},u=[1,34],l=[1,35],o=[1,36],h=[1,37],F=[1,9],m=[1,8],_=[1,19],D=[1,20],z=[1,21],Y=[1,40],L=[1,41],K=[1,27],j=[1,25],Q=[1,26],X=[1,32],H=[1,33],W=[1,28],q=[1,29],J=[1,30],Z=[1,31],f=[1,45],d=[1,42],E=[1,43],C=[1,44],k=[1,46],pe=[1,24],a=[1,16,24],$=[1,60],ee=[1,61],te=[1,62],se=[1,63],ie=[1,64],fe=[1,65],de=[1,66],ue=[1,16,24,52],Le=[1,77],w=[1,16,24,27,28,36,50,52,55,68,69,70,71,72,73,74,79,81],ne=[1,16,24,27,28,34,36,50,52,55,59,68,69,70,71,72,73,74,79,81,94,96,97,98,99],Ie=[1,86],re=[28,94,96,97,98,99],V=[28,73,74,94,96,97,98,99],xe=[28,68,69,70,71,72,94,96,97,98,99],Ee=[1,99],Ce=[1,16,24,50,52,55],ae=[1,16,24,36],Oe=[8,9,10,11,19,23,44,46,48,53,57,58,60,61,63,65,75,76,78,82,94,96,97,98,99],ge={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,statements:6,direction:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,EOF:24,statement:25,classLabel:26,SQS:27,STR:28,SQE:29,namespaceName:30,alphaNumToken:31,className:32,classLiteralName:33,GENERICTYPE:34,relationStatement:35,LABEL:36,namespaceStatement:37,classStatement:38,methodStatement:39,annotationStatement:40,clickStatement:41,cssClassStatement:42,noteStatement:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,namespaceIdentifier:49,STRUCT_START:50,classStatements:51,STRUCT_STOP:52,NAMESPACE:53,classIdentifier:54,STYLE_SEPARATOR:55,members:56,CLASS:57,ANNOTATION_START:58,ANNOTATION_END:59,MEMBER:60,SEPARATOR:61,relation:62,NOTE_FOR:63,noteText:64,NOTE: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,CSSCLASS:82,commentToken:83,textToken:84,graphCodeTokens:85,textNoTagsToken:86,TAGSTART:87,TAGEND:88,"==":89,"--":90,PCT:91,DEFAULT:92,SPACE:93,MINUS:94,keywords:95,UNICODE_TEXT:96,NUM:97,ALPHA:98,BQUOTE_STR:99,$accept:0,$end:1},terminals_:{2:"error",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",24:"EOF",27:"SQS",28:"STR",29:"SQE",34:"GENERICTYPE",36:"LABEL",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",50:"STRUCT_START",52:"STRUCT_STOP",53:"NAMESPACE",55:"STYLE_SEPARATOR",57:"CLASS",58:"ANNOTATION_START",59:"ANNOTATION_END",60:"MEMBER",61:"SEPARATOR",63:"NOTE_FOR",65:"NOTE",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:"CSSCLASS",85:"graphCodeTokens",87:"TAGSTART",88:"TAGEND",89:"==",90:"--",91:"PCT",92:"DEFAULT",93:"SPACE",94:"MINUS",95:"keywords",96:"UNICODE_TEXT",97:"NUM",98:"ALPHA",99:"BQUOTE_STR"},productions_:[0,[3,1],[3,2],[3,1],[7,1],[7,1],[7,1],[7,1],[4,1],[5,4],[5,6],[13,1],[14,1],[18,1],[15,1],[12,4],[6,1],[6,2],[6,3],[26,3],[30,1],[30,2],[32,1],[32,1],[32,2],[32,2],[32,2],[25,1],[25,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,2],[25,2],[25,1],[37,4],[37,5],[49,2],[51,1],[51,2],[51,3],[38,1],[38,3],[38,4],[38,6],[54,2],[54,3],[40,4],[56,1],[56,2],[39,1],[39,2],[39,1],[39,1],[35,3],[35,4],[35,4],[35,5],[43,3],[43,2],[62,3],[62,2],[62,2],[62,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[41,3],[41,4],[41,3],[41,4],[41,4],[41,5],[41,3],[41,4],[41,4],[41,5],[41,3],[41,4],[41,4],[41,5],[42,3],[83,1],[83,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[86,1],[86,1],[86,1],[86,1],[31,1],[31,1],[31,1],[31,1],[33,1],[64,1]],performAction:function(n,r,c,i,A,t,G){var s=t.length-1;switch(A){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:i.parseDirective(t[s],"type_directive");break;case 13:t[s]=t[s].trim().replace(/'/g,'"'),i.parseDirective(t[s],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","class");break;case 19:this.$=t[s-1];break;case 20:case 22:case 23:this.$=t[s];break;case 21:case 24:this.$=t[s-1]+t[s];break;case 25:case 26:this.$=t[s-1]+"~"+t[s]+"~";break;case 27:i.addRelation(t[s]);break;case 28:t[s-1].title=i.cleanupLabel(t[s]),i.addRelation(t[s-1]);break;case 37:this.$=t[s].trim(),i.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),i.setAccDescription(this.$);break;case 40:i.addClassesToNamespace(t[s-3],t[s-1]);break;case 41:i.addClassesToNamespace(t[s-4],t[s-1]);break;case 42:this.$=t[s],i.addNamespace(t[s]);break;case 43:this.$=[t[s]];break;case 44:this.$=[t[s-1]];break;case 45:t[s].unshift(t[s-2]),this.$=t[s];break;case 47:i.setCssClass(t[s-2],t[s]);break;case 48:i.addMembers(t[s-3],t[s-1]);break;case 49:i.setCssClass(t[s-5],t[s-3]),i.addMembers(t[s-5],t[s-1]);break;case 50:this.$=t[s],i.addClass(t[s]);break;case 51:this.$=t[s-1],i.addClass(t[s-1]),i.setClassLabel(t[s-1],t[s]);break;case 52:i.addAnnotation(t[s],t[s-2]);break;case 53:this.$=[t[s]];break;case 54:t[s].push(t[s-1]),this.$=t[s];break;case 55:break;case 56:i.addMember(t[s-1],i.cleanupLabel(t[s]));break;case 57:break;case 58:break;case 59:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 60:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 61:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 62:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 63:i.addNote(t[s],t[s-1]);break;case 64:i.addNote(t[s]);break;case 65:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 66:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 67:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 68:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 69:this.$=i.relationType.AGGREGATION;break;case 70:this.$=i.relationType.EXTENSION;break;case 71:this.$=i.relationType.COMPOSITION;break;case 72:this.$=i.relationType.DEPENDENCY;break;case 73:this.$=i.relationType.LOLLIPOP;break;case 74:this.$=i.lineType.LINE;break;case 75:this.$=i.lineType.DOTTED_LINE;break;case 76:case 82:this.$=t[s-2],i.setClickEvent(t[s-1],t[s]);break;case 77:case 83:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 78:case 86:this.$=t[s-2],i.setLink(t[s-1],t[s]);break;case 79:this.$=t[s-3],i.setLink(t[s-2],t[s-1],t[s]);break;case 80:case 88:this.$=t[s-3],i.setLink(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 81:case 89:this.$=t[s-4],i.setLink(t[s-3],t[s-2],t[s]),i.setTooltip(t[s-3],t[s-1]);break;case 84:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1],t[s]);break;case 85:this.$=t[s-4],i.setClickEvent(t[s-3],t[s-2],t[s-1]),i.setTooltip(t[s-3],t[s]);break;case 87:this.$=t[s-3],i.setLink(t[s-2],t[s-1],t[s]);break;case 90:i.setCssClass(t[s-1],t[s]);break}},table:[{3:1,4:2,5:3,6:4,7:18,8:u,9:l,10:o,11:h,12:5,13:6,19:F,23:m,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:_,46:D,48:z,49:23,53:Y,54:24,57:L,58:K,60:j,61:Q,63:X,65:H,75:W,76:q,78:J,82:Z,94:f,96:d,97:E,98:C,99:k},{1:[3]},{1:[2,1]},{3:47,4:2,5:3,6:4,7:18,8:u,9:l,10:o,11:h,12:5,13:6,19:F,23:m,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:_,46:D,48:z,49:23,53:Y,54:24,57:L,58:K,60:j,61:Q,63:X,65:H,75:W,76:q,78:J,82:Z,94:f,96:d,97:E,98:C,99:k},{1:[2,3]},{1:[2,8]},{14:48,20:[1,49]},e(pe,[2,16],{16:[1,50]}),{16:[1,51]},{20:[2,11]},e(a,[2,27],{36:[1,52]}),e(a,[2,29]),e(a,[2,30]),e(a,[2,31]),e(a,[2,32]),e(a,[2,33]),e(a,[2,34]),e(a,[2,35]),e(a,[2,36]),{45:[1,53]},{47:[1,54]},e(a,[2,39]),e(a,[2,55],{62:55,66:58,67:59,28:[1,56],36:[1,57],68:$,69:ee,70:te,71:se,72:ie,73:fe,74:de}),{50:[1,67]},e(ue,[2,46],{50:[1,69],55:[1,68]}),e(a,[2,57]),e(a,[2,58]),{31:70,94:f,96:d,97:E,98:C},{31:38,32:71,33:39,94:f,96:d,97:E,98:C,99:k},{31:38,32:72,33:39,94:f,96:d,97:E,98:C,99:k},{31:38,32:73,33:39,94:f,96:d,97:E,98:C,99:k},{28:[1,74]},{31:38,32:75,33:39,94:f,96:d,97:E,98:C,99:k},{28:Le,64:76},e(a,[2,4]),e(a,[2,5]),e(a,[2,6]),e(a,[2,7]),e(w,[2,22],{31:38,33:39,32:78,34:[1,79],94:f,96:d,97:E,98:C,99:k}),e(w,[2,23],{34:[1,80]}),{30:81,31:82,94:f,96:d,97:E,98:C},{31:38,32:83,33:39,94:f,96:d,97:E,98:C,99:k},e(ne,[2,104]),e(ne,[2,105]),e(ne,[2,106]),e(ne,[2,107]),e([1,16,24,27,28,34,36,50,52,55,68,69,70,71,72,73,74,79,81],[2,108]),{1:[2,2]},{15:84,17:[1,85],22:Ie},e([17,22],[2,12]),e(pe,[2,17],{25:7,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,7:18,32:22,49:23,54:24,31:38,33:39,6:87,8:u,9:l,10:o,11:h,44:_,46:D,48:z,53:Y,57:L,58:K,60:j,61:Q,63:X,65:H,75:W,76:q,78:J,82:Z,94:f,96:d,97:E,98:C,99:k}),{6:88,7:18,8:u,9:l,10:o,11:h,25:7,31:38,32:22,33:39,35:10,37:11,38:12,39:13,40:14,41:15,42:16,43:17,44:_,46:D,48:z,49:23,53:Y,54:24,57:L,58:K,60:j,61:Q,63:X,65:H,75:W,76:q,78:J,82:Z,94:f,96:d,97:E,98:C,99:k},e(a,[2,28]),e(a,[2,37]),e(a,[2,38]),{28:[1,90],31:38,32:89,33:39,94:f,96:d,97:E,98:C,99:k},{62:91,66:58,67:59,68:$,69:ee,70:te,71:se,72:ie,73:fe,74:de},e(a,[2,56]),{67:92,73:fe,74:de},e(re,[2,68],{66:93,68:$,69:ee,70:te,71:se,72:ie}),e(V,[2,69]),e(V,[2,70]),e(V,[2,71]),e(V,[2,72]),e(V,[2,73]),e(xe,[2,74]),e(xe,[2,75]),{16:[1,95],38:96,51:94,54:24,57:L},{31:97,94:f,96:d,97:E,98:C},{56:98,60:Ee},{59:[1,100]},{28:[1,101]},{28:[1,102]},{79:[1,103],81:[1,104]},{31:105,94:f,96:d,97:E,98:C},{28:Le,64:106},e(a,[2,64]),e(a,[2,109]),e(w,[2,24]),e(w,[2,25]),e(w,[2,26]),{50:[2,42]},{30:107,31:82,50:[2,20],94:f,96:d,97:E,98:C},e(Ce,[2,50],{26:108,27:[1,109]}),{16:[1,110]},{18:111,21:[1,112]},{16:[2,14]},e(pe,[2,18]),{24:[1,113]},e(ae,[2,59]),{31:38,32:114,33:39,94:f,96:d,97:E,98:C,99:k},{28:[1,116],31:38,32:115,33:39,94:f,96:d,97:E,98:C,99:k},e(re,[2,67],{66:117,68:$,69:ee,70:te,71:se,72:ie}),e(re,[2,66]),{52:[1,118]},{38:96,51:119,54:24,57:L},{16:[1,120],52:[2,43]},e(ue,[2,47],{50:[1,121]}),{52:[1,122]},{52:[2,53],56:123,60:Ee},{31:38,32:124,33:39,94:f,96:d,97:E,98:C,99:k},e(a,[2,76],{28:[1,125]}),e(a,[2,78],{28:[1,127],77:[1,126]}),e(a,[2,82],{28:[1,128],80:[1,129]}),e(a,[2,86],{28:[1,131],77:[1,130]}),e(a,[2,90]),e(a,[2,63]),{50:[2,21]},e(Ce,[2,51]),{28:[1,132]},e(Oe,[2,9]),{15:133,22:Ie},{22:[2,13]},{1:[2,15]},e(ae,[2,61]),e(ae,[2,60]),{31:38,32:134,33:39,94:f,96:d,97:E,98:C,99:k},e(re,[2,65]),e(a,[2,40]),{52:[1,135]},{38:96,51:136,52:[2,44],54:24,57:L},{56:137,60:Ee},e(ue,[2,48]),{52:[2,54]},e(a,[2,52]),e(a,[2,77]),e(a,[2,79]),e(a,[2,80],{77:[1,138]}),e(a,[2,83]),e(a,[2,84],{28:[1,139]}),e(a,[2,87]),e(a,[2,88],{77:[1,140]}),{29:[1,141]},{16:[1,142]},e(ae,[2,62]),e(a,[2,41]),{52:[2,45]},{52:[1,143]},e(a,[2,81]),e(a,[2,85]),e(a,[2,89]),e(Ce,[2,19]),e(Oe,[2,10]),e(ue,[2,49])],defaultActions:{2:[2,1],4:[2,3],5:[2,8],9:[2,11],47:[2,2],81:[2,42],86:[2,14],107:[2,21],112:[2,13],113:[2,15],123:[2,54],136:[2,45]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=r,c}},parse:function(n){var r=this,c=[0],i=[],A=[null],t=[],G=this.table,s="",ce=0,Re=0,Ke=2,Pe=1,je=t.slice.call(arguments,1),g=Object.create(this.lexer),I={yy:{}};for(var ke in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ke)&&(I.yy[ke]=this.yy[ke]);g.setInput(n,I.yy),I.yy.lexer=g,I.yy.parser=this,typeof g.yylloc>"u"&&(g.yylloc={});var Fe=g.yylloc;t.push(Fe);var Qe=g.options&&g.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Xe(){var y;return y=i.pop()||g.lex()||Pe,typeof y!="number"&&(y instanceof Array&&(i=y,y=i.pop()),y=r.symbols_[y]||y),y}for(var b,x,B,be,O={},le,T,we,oe;;){if(x=c[c.length-1],this.defaultActions[x]?B=this.defaultActions[x]:((b===null||typeof b>"u")&&(b=Xe()),B=G[x]&&G[x][b]),typeof B>"u"||!B.length||!B[0]){var _e="";oe=[];for(le in G[x])this.terminals_[le]&&le>Ke&&oe.push("'"+this.terminals_[le]+"'");g.showPosition?_e="Parse error on line "+(ce+1)+`: -`+g.showPosition()+` -Expecting `+oe.join(", ")+", got '"+(this.terminals_[b]||b)+"'":_e="Parse error on line "+(ce+1)+": Unexpected "+(b==Pe?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(_e,{text:g.match,token:this.terminals_[b]||b,line:g.yylineno,loc:Fe,expected:oe})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(B[0]){case 1:c.push(b),A.push(g.yytext),t.push(g.yylloc),c.push(B[1]),b=null,Re=g.yyleng,s=g.yytext,ce=g.yylineno,Fe=g.yylloc;break;case 2:if(T=this.productions_[B[1]][1],O.$=A[A.length-T],O._$={first_line:t[t.length-(T||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(T||1)].first_column,last_column:t[t.length-1].last_column},Qe&&(O._$.range=[t[t.length-(T||1)].range[0],t[t.length-1].range[1]]),be=this.performAction.apply(O,[s,Re,ce,I.yy,B[1],A,t].concat(je)),typeof be<"u")return be;T&&(c=c.slice(0,-1*T*2),A=A.slice(0,-1*T),t=t.slice(0,-1*T)),c.push(this.productions_[B[1]][0]),A.push(O.$),t.push(O._$),we=G[c[c.length-2]][c[c.length-1]],c.push(we);break;case 3:return!0}}return!0}},Ye=function(){var v={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,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},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,c=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var i=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),c.length-1&&(this.yylineno-=c.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:c?(c.length===i.length?this.yylloc.first_column:0)+i[i.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` -`+r+"^"},test_match:function(n,r){var c,i,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))),i=n[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,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(n[0].length),this.matched+=n[0],c=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var t in A)this[t]=A[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,r,c,i;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),t=0;tr[0].length)){if(r=c,i=t,this.options.backtrack_lexer){if(n=this.test_match(c,A[t]),n!==!1)return n;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(n=this.test_match(r,A[i]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(r,c,i,A){switch(i){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:break;case 10:break;case 11:return this.begin("acc_title"),44;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),46;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 19:break;case 20:return 23;case 21:return 23;case 22:return"EDGE_STATE";case 23:return this.begin("namespace"),53;case 24:return this.popState(),16;case 25:break;case 26:return this.begin("namespace-body"),50;case 27:return this.popState(),52;case 28:return"EOF_IN_STRUCT";case 29:return 16;case 30:break;case 31:return"EDGE_STATE";case 32:return this.begin("class"),57;case 33:return this.popState(),16;case 34:break;case 35:return this.popState(),this.popState(),52;case 36:return this.begin("class-body"),50;case 37:return this.popState(),52;case 38:return"EOF_IN_STRUCT";case 39:return"EDGE_STATE";case 40:return"OPEN_IN_STRUCT";case 41:break;case 42:return"MEMBER";case 43:return 82;case 44:return 75;case 45:return 76;case 46:return 78;case 47:return 63;case 48:return 65;case 49:return 58;case 50:return 59;case 51:this.begin("href");break;case 52:this.popState();break;case 53:return 81;case 54:this.begin("callback_name");break;case 55:this.popState();break;case 56:this.popState(),this.begin("callback_args");break;case 57:return 79;case 58:this.popState();break;case 59:return 80;case 60:this.popState();break;case 61:return"GENERICTYPE";case 62:this.begin("generic");break;case 63:this.popState();break;case 64:return"STR";case 65:this.begin("string");break;case 66:this.popState();break;case 67:return"BQUOTE_STR";case 68:this.begin("bqstring");break;case 69:return 77;case 70:return 77;case 71:return 77;case 72:return 77;case 73:return 69;case 74:return 69;case 75:return 71;case 76:return 71;case 77:return 70;case 78:return 68;case 79:return 72;case 80:return 73;case 81:return 74;case 82:return 36;case 83:return 55;case 84:return 94;case 85:return"DOT";case 86:return"PLUS";case 87:return 91;case 88:return"EQUALS";case 89:return"EQUALS";case 90:return 98;case 91:return 27;case 92:return 29;case 93:return"PUNCTUATION";case 94:return 97;case 95:return 96;case 96:return 93;case 97:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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)/,/^(?:\[\*\])/,/^(?: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[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[~])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_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)/,/^(?:$)/],conditions:{"namespace-body":{rules:[27,28,29,30,31,32,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},namespace:{rules:[23,24,25,26,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},"class-body":{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},class:{rules:[33,34,35,36,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},acc_descr_multiline:{rules:[16,17,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},acc_descr:{rules:[14,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},acc_title:{rules:[12,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},arg_directive:{rules:[7,8,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},type_directive:{rules:[6,7,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},open_directive:{rules:[5,43,44,45,46,47,48,49,50,51,54,62,65,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:!1},callback_args:{rules:[43,44,45,46,47,48,49,50,51,54,58,59,62,65,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:!1},callback_name:{rules:[43,44,45,46,47,48,49,50,51,54,55,56,57,62,65,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:!1},href:{rules:[43,44,45,46,47,48,49,50,51,52,53,54,62,65,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:!1},struct:{rules:[43,44,45,46,47,48,49,50,51,54,62,65,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:!1},generic:{rules:[43,44,45,46,47,48,49,50,51,54,60,61,62,65,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:!1},bqstring:{rules:[43,44,45,46,47,48,49,50,51,54,62,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:!1},string:{rules:[43,44,45,46,47,48,49,50,51,54,62,63,64,65,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:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,32,43,44,45,46,47,48,49,50,51,54,62,65,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 v}();ge.lexer=Ye;function me(){this.yy={}}return me.prototype=ge,ge.Parser=me,new me}();Be.parser=Be;const Lt=Be,Ae="classId-";let ve=[],p={},he=[],Te=0,N={},ye=0,U=[];const S=e=>De.sanitizeText(e,R()),it=function(e,u,l){et.parseDirective(this,e,u,l)},P=function(e){let u="",l=e;if(e.indexOf("~")>0){const o=e.split("~");l=S(o[0]),u=S(o[1])}return{className:l,type:u}},ut=function(e,u){u&&(u=S(u));const{className:l}=P(e);p[l].label=u},Se=function(e){const u=P(e);p[u.className]===void 0&&(p[u.className]={id:u.className,type:u.type,label:u.className,cssClasses:[],methods:[],members:[],annotations:[],domId:Ae+u.className+"-"+Te},Te++)},Ge=function(e){if(e in p)return p[e].domId;throw new Error("Class not found: "+e)},nt=function(){ve=[],p={},he=[],U=[],U.push(Ue),N={},ye=0,tt()},rt=function(e){return p[e]},at=function(){return p},ct=function(){return ve},lt=function(){return he},ot=function(e){st.debug("Adding relation: "+JSON.stringify(e)),Se(e.id1),Se(e.id2),e.id1=P(e.id1).className,e.id2=P(e.id2).className,e.relationTitle1=De.sanitizeText(e.relationTitle1.trim(),R()),e.relationTitle2=De.sanitizeText(e.relationTitle2.trim(),R()),ve.push(e)},ht=function(e,u){const l=P(e).className;p[l].annotations.push(u)},Me=function(e,u){const l=P(e).className,o=p[l];if(typeof u=="string"){const h=u.trim();h.startsWith("<<")&&h.endsWith(">>")?o.annotations.push(S(h.substring(2,h.length-2))):h.indexOf(")")>0?o.methods.push(S(h)):h&&o.members.push(S(h))}},At=function(e,u){Array.isArray(u)&&(u.reverse(),u.forEach(l=>Me(e,l)))},pt=function(e,u){const l={id:`note${he.length}`,class:u,text:e};he.push(l)},ft=function(e){return e.startsWith(":")&&(e=e.substring(1)),S(e.trim())},Ne=function(e,u){e.split(",").forEach(function(l){let o=l;l[0].match(/\d/)&&(o=Ae+o),p[o]!==void 0&&p[o].cssClasses.push(u)})},dt=function(e,u){e.split(",").forEach(function(l){u!==void 0&&(p[l].tooltip=S(u))})},Et=function(e,u){return u?N[u].classes[e].tooltip:p[e].tooltip},Ct=function(e,u,l){const o=R();e.split(",").forEach(function(h){let F=h;h[0].match(/\d/)&&(F=Ae+F),p[F]!==void 0&&(p[F].link=Ve.formatUrl(u,o),o.securityLevel==="sandbox"?p[F].linkTarget="_top":typeof l=="string"?p[F].linkTarget=S(l):p[F].linkTarget="_blank")}),Ne(e,"clickable")},gt=function(e,u,l){e.split(",").forEach(function(o){mt(o,u,l),p[o].haveCallback=!0}),Ne(e,"clickable")},mt=function(e,u,l){if(R().securityLevel!=="loose"||u===void 0)return;const h=e;if(p[h]!==void 0){const F=Ge(h);let m=[];if(typeof l=="string"){m=l.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let _=0;_")),h.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),M(this).classed("hover",!1)})};U.push(Ue);let ze="TB";const _t=()=>ze,Dt=e=>{ze=e},Bt=function(e){N[e]===void 0&&(N[e]={id:e,classes:{},children:{},domId:Ae+e+"-"+ye},ye++)},Tt=function(e){return N[e]},yt=function(){return N},St=function(e,u){N[e]!==void 0&&u.map(l=>{N[e].classes[l]=p[l],delete p[l],Te--})},It={parseDirective:it,setAccTitle:He,getAccTitle:We,getAccDescription:qe,setAccDescription:Je,getConfig:()=>R().class,addClass:Se,bindFunctions:kt,clear:nt,getClass:rt,getClasses:at,getNotes:lt,addAnnotation:ht,addNote:pt,getRelations:ct,addRelation:ot,getDirection:_t,setDirection:Dt,addMember:Me,addMembers:At,cleanupLabel:ft,lineType:Ft,relationType:bt,setClickEvent:gt,setCssClass:Ne,setLink:Ct,getTooltip:Et,setTooltip:dt,lookUpDomId:Ge,setDiagramTitle:Ze,getDiagramTitle:$e,setClassLabel:ut,addNamespace:Bt,addClassesToNamespace:St,getNamespace:Tt,getNamespaces:yt},vt=e=>`g.classGroup text { - fill: ${e.nodeBorder}; - fill: ${e.classText}; - stroke: none; - font-family: ${e.fontFamily}; - font-size: 10px; - - .title { - font-weight: bolder; - } - -} - -.nodeLabel, .edgeLabel { - color: ${e.classText}; -} -.edgeLabel .label rect { - fill: ${e.mainBkg}; -} -.label text { - fill: ${e.classText}; -} -.edgeLabel .label span { - background: ${e.mainBkg}; -} - -.classTitle { - font-weight: bolder; -} -.node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; - stroke-width: 1px; - } - - -.divider { - stroke: ${e.nodeBorder}; - stroke-width: 1; -} - -g.clickable { - cursor: pointer; -} - -g.classGroup rect { - fill: ${e.mainBkg}; - stroke: ${e.nodeBorder}; -} - -g.classGroup line { - stroke: ${e.nodeBorder}; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: ${e.mainBkg}; - opacity: 0.5; -} - -.classLabel .label { - fill: ${e.nodeBorder}; - font-size: 10px; -} - -.relation { - stroke: ${e.lineColor}; - stroke-width: 1; - fill: none; -} - -.dashed-line{ - stroke-dasharray: 3; -} - -.dotted-line{ - stroke-dasharray: 1 2; -} - -#compositionStart, .composition { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#compositionEnd, .composition { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${e.lineColor} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#extensionStart, .extension { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#extensionEnd, .extension { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#aggregationStart, .aggregation { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#aggregationEnd, .aggregation { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#lollipopStart, .lollipop { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -#lollipopEnd, .lollipop { - fill: ${e.mainBkg} !important; - stroke: ${e.lineColor} !important; - stroke-width: 1; -} - -.edgeTerminals { - font-size: 11px; -} - -.classTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; -} -`,xt=vt;export{It as d,Lt as p,xt as s}; -//# sourceMappingURL=styles-aefe6593-IaILeGot.js.map diff --git a/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js.map b/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js.map deleted file mode 100644 index 275a3e0..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-aefe6593-IaILeGot.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles-aefe6593-IaILeGot.js","sources":["../../../node_modules/mermaid/dist/styles-aefe6593.js"],"sourcesContent":["import { select } from \"d3\";\nimport { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, r as setDiagramTitle, t as getDiagramTitle, m as mermaidAPI, v as clear$1, l as log, e as common, u as utils } from \"./mermaid-b0ad2de1.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 34], $V1 = [1, 35], $V2 = [1, 36], $V3 = [1, 37], $V4 = [1, 9], $V5 = [1, 8], $V6 = [1, 19], $V7 = [1, 20], $V8 = [1, 21], $V9 = [1, 40], $Va = [1, 41], $Vb = [1, 27], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 30], $Vj = [1, 31], $Vk = [1, 45], $Vl = [1, 42], $Vm = [1, 43], $Vn = [1, 44], $Vo = [1, 46], $Vp = [1, 24], $Vq = [1, 16, 24], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 64], $Vw = [1, 65], $Vx = [1, 66], $Vy = [1, 16, 24, 52], $Vz = [1, 77], $VA = [1, 16, 24, 27, 28, 36, 50, 52, 55, 68, 69, 70, 71, 72, 73, 74, 79, 81], $VB = [1, 16, 24, 27, 28, 34, 36, 50, 52, 55, 59, 68, 69, 70, 71, 72, 73, 74, 79, 81, 94, 96, 97, 98, 99], $VC = [1, 86], $VD = [28, 94, 96, 97, 98, 99], $VE = [28, 73, 74, 94, 96, 97, 98, 99], $VF = [28, 68, 69, 70, 71, 72, 94, 96, 97, 98, 99], $VG = [1, 99], $VH = [1, 16, 24, 50, 52, 55], $VI = [1, 16, 24, 36], $VJ = [8, 9, 10, 11, 19, 23, 44, 46, 48, 53, 57, 58, 60, 61, 63, 65, 75, 76, 78, 82, 94, 96, 97, 98, 99];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"directive\": 5, \"statements\": 6, \"direction\": 7, \"direction_tb\": 8, \"direction_bt\": 9, \"direction_rl\": 10, \"direction_lr\": 11, \"graphConfig\": 12, \"openDirective\": 13, \"typeDirective\": 14, \"closeDirective\": 15, \"NEWLINE\": 16, \":\": 17, \"argDirective\": 18, \"open_directive\": 19, \"type_directive\": 20, \"arg_directive\": 21, \"close_directive\": 22, \"CLASS_DIAGRAM\": 23, \"EOF\": 24, \"statement\": 25, \"classLabel\": 26, \"SQS\": 27, \"STR\": 28, \"SQE\": 29, \"namespaceName\": 30, \"alphaNumToken\": 31, \"className\": 32, \"classLiteralName\": 33, \"GENERICTYPE\": 34, \"relationStatement\": 35, \"LABEL\": 36, \"namespaceStatement\": 37, \"classStatement\": 38, \"methodStatement\": 39, \"annotationStatement\": 40, \"clickStatement\": 41, \"cssClassStatement\": 42, \"noteStatement\": 43, \"acc_title\": 44, \"acc_title_value\": 45, \"acc_descr\": 46, \"acc_descr_value\": 47, \"acc_descr_multiline_value\": 48, \"namespaceIdentifier\": 49, \"STRUCT_START\": 50, \"classStatements\": 51, \"STRUCT_STOP\": 52, \"NAMESPACE\": 53, \"classIdentifier\": 54, \"STYLE_SEPARATOR\": 55, \"members\": 56, \"CLASS\": 57, \"ANNOTATION_START\": 58, \"ANNOTATION_END\": 59, \"MEMBER\": 60, \"SEPARATOR\": 61, \"relation\": 62, \"NOTE_FOR\": 63, \"noteText\": 64, \"NOTE\": 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, \"CSSCLASS\": 82, \"commentToken\": 83, \"textToken\": 84, \"graphCodeTokens\": 85, \"textNoTagsToken\": 86, \"TAGSTART\": 87, \"TAGEND\": 88, \"==\": 89, \"--\": 90, \"PCT\": 91, \"DEFAULT\": 92, \"SPACE\": 93, \"MINUS\": 94, \"keywords\": 95, \"UNICODE_TEXT\": 96, \"NUM\": 97, \"ALPHA\": 98, \"BQUOTE_STR\": 99, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 8: \"direction_tb\", 9: \"direction_bt\", 10: \"direction_rl\", 11: \"direction_lr\", 16: \"NEWLINE\", 17: \":\", 19: \"open_directive\", 20: \"type_directive\", 21: \"arg_directive\", 22: \"close_directive\", 23: \"CLASS_DIAGRAM\", 24: \"EOF\", 27: \"SQS\", 28: \"STR\", 29: \"SQE\", 34: \"GENERICTYPE\", 36: \"LABEL\", 44: \"acc_title\", 45: \"acc_title_value\", 46: \"acc_descr\", 47: \"acc_descr_value\", 48: \"acc_descr_multiline_value\", 50: \"STRUCT_START\", 52: \"STRUCT_STOP\", 53: \"NAMESPACE\", 55: \"STYLE_SEPARATOR\", 57: \"CLASS\", 58: \"ANNOTATION_START\", 59: \"ANNOTATION_END\", 60: \"MEMBER\", 61: \"SEPARATOR\", 63: \"NOTE_FOR\", 65: \"NOTE\", 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: \"CSSCLASS\", 85: \"graphCodeTokens\", 87: \"TAGSTART\", 88: \"TAGEND\", 89: \"==\", 90: \"--\", 91: \"PCT\", 92: \"DEFAULT\", 93: \"SPACE\", 94: \"MINUS\", 95: \"keywords\", 96: \"UNICODE_TEXT\", 97: \"NUM\", 98: \"ALPHA\", 99: \"BQUOTE_STR\" },\n productions_: [0, [3, 1], [3, 2], [3, 1], [7, 1], [7, 1], [7, 1], [7, 1], [4, 1], [5, 4], [5, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [6, 1], [6, 2], [6, 3], [26, 3], [30, 1], [30, 2], [32, 1], [32, 1], [32, 2], [32, 2], [32, 2], [25, 1], [25, 2], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 2], [25, 2], [25, 1], [37, 4], [37, 5], [49, 2], [51, 1], [51, 2], [51, 3], [38, 1], [38, 3], [38, 4], [38, 6], [54, 2], [54, 3], [40, 4], [56, 1], [56, 2], [39, 1], [39, 2], [39, 1], [39, 1], [35, 3], [35, 4], [35, 4], [35, 5], [43, 3], [43, 2], [62, 3], [62, 2], [62, 2], [62, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [67, 1], [67, 1], [41, 3], [41, 4], [41, 3], [41, 4], [41, 4], [41, 5], [41, 3], [41, 4], [41, 4], [41, 5], [41, 3], [41, 4], [41, 4], [41, 5], [42, 3], [83, 1], [83, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [86, 1], [86, 1], [86, 1], [86, 1], [31, 1], [31, 1], [31, 1], [31, 1], [33, 1], [64, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.setDirection(\"TB\");\n break;\n case 5:\n yy.setDirection(\"BT\");\n break;\n case 6:\n yy.setDirection(\"RL\");\n break;\n case 7:\n yy.setDirection(\"LR\");\n break;\n case 11:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 12:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 14:\n yy.parseDirective(\"}%%\", \"close_directive\", \"class\");\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n case 22:\n case 23:\n this.$ = $$[$0];\n break;\n case 21:\n case 24:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 25:\n case 26:\n this.$ = $$[$0 - 1] + \"~\" + $$[$0] + \"~\";\n break;\n case 27:\n yy.addRelation($$[$0]);\n break;\n case 28:\n $$[$0 - 1].title = yy.cleanupLabel($$[$0]);\n yy.addRelation($$[$0 - 1]);\n break;\n case 37:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 38:\n case 39:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 40:\n yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);\n break;\n case 41:\n yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);\n break;\n case 42:\n this.$ = $$[$0];\n yy.addNamespace($$[$0]);\n break;\n case 43:\n this.$ = [$$[$0]];\n break;\n case 44:\n this.$ = [$$[$0 - 1]];\n break;\n case 45:\n $$[$0].unshift($$[$0 - 2]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.setCssClass($$[$0 - 2], $$[$0]);\n break;\n case 48:\n yy.addMembers($$[$0 - 3], $$[$0 - 1]);\n break;\n case 49:\n yy.setCssClass($$[$0 - 5], $$[$0 - 3]);\n yy.addMembers($$[$0 - 5], $$[$0 - 1]);\n break;\n case 50:\n this.$ = $$[$0];\n yy.addClass($$[$0]);\n break;\n case 51:\n this.$ = $$[$0 - 1];\n yy.addClass($$[$0 - 1]);\n yy.setClassLabel($$[$0 - 1], $$[$0]);\n break;\n case 52:\n yy.addAnnotation($$[$0], $$[$0 - 2]);\n break;\n case 53:\n this.$ = [$$[$0]];\n break;\n case 54:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 55:\n break;\n case 56:\n yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));\n break;\n case 57:\n break;\n case 58:\n break;\n case 59:\n this.$ = { \"id1\": $$[$0 - 2], \"id2\": $$[$0], relation: $$[$0 - 1], relationTitle1: \"none\", relationTitle2: \"none\" };\n break;\n case 60:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: \"none\" };\n break;\n case 61:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: \"none\", relationTitle2: $$[$0 - 1] };\n break;\n case 62:\n this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };\n break;\n case 63:\n yy.addNote($$[$0], $$[$0 - 1]);\n break;\n case 64:\n yy.addNote($$[$0]);\n break;\n case 65:\n this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 66:\n this.$ = { type1: \"none\", type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 67:\n this.$ = { type1: $$[$0 - 1], type2: \"none\", lineType: $$[$0] };\n break;\n case 68:\n this.$ = { type1: \"none\", type2: \"none\", lineType: $$[$0] };\n break;\n case 69:\n this.$ = yy.relationType.AGGREGATION;\n break;\n case 70:\n this.$ = yy.relationType.EXTENSION;\n break;\n case 71:\n this.$ = yy.relationType.COMPOSITION;\n break;\n case 72:\n this.$ = yy.relationType.DEPENDENCY;\n break;\n case 73:\n this.$ = yy.relationType.LOLLIPOP;\n break;\n case 74:\n this.$ = yy.lineType.LINE;\n break;\n case 75:\n this.$ = yy.lineType.DOTTED_LINE;\n break;\n case 76:\n case 82:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 77:\n case 83:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 78:\n case 86:\n this.$ = $$[$0 - 2];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 79:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 80:\n case 88:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 81:\n case 89:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 3], $$[$0 - 1]);\n break;\n case 84:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 85:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 87:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 90:\n yy.setCssClass($$[$0 - 1], $$[$0]);\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 1: [3] }, { 1: [2, 1] }, { 3: 47, 4: 2, 5: 3, 6: 4, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 1: [2, 3] }, { 1: [2, 8] }, { 14: 48, 20: [1, 49] }, o($Vp, [2, 16], { 16: [1, 50] }), { 16: [1, 51] }, { 20: [2, 11] }, o($Vq, [2, 27], { 36: [1, 52] }), o($Vq, [2, 29]), o($Vq, [2, 30]), o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vq, [2, 34]), o($Vq, [2, 35]), o($Vq, [2, 36]), { 45: [1, 53] }, { 47: [1, 54] }, o($Vq, [2, 39]), o($Vq, [2, 55], { 62: 55, 66: 58, 67: 59, 28: [1, 56], 36: [1, 57], 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }), { 50: [1, 67] }, o($Vy, [2, 46], { 50: [1, 69], 55: [1, 68] }), o($Vq, [2, 57]), o($Vq, [2, 58]), { 31: 70, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 31: 38, 32: 71, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 31: 38, 32: 72, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 31: 38, 32: 73, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: [1, 74] }, { 31: 38, 32: 75, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: $Vz, 64: 76 }, o($Vq, [2, 4]), o($Vq, [2, 5]), o($Vq, [2, 6]), o($Vq, [2, 7]), o($VA, [2, 22], { 31: 38, 33: 39, 32: 78, 34: [1, 79], 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }), o($VA, [2, 23], { 34: [1, 80] }), { 30: 81, 31: 82, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 31: 38, 32: 83, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VB, [2, 104]), o($VB, [2, 105]), o($VB, [2, 106]), o($VB, [2, 107]), o([1, 16, 24, 27, 28, 34, 36, 50, 52, 55, 68, 69, 70, 71, 72, 73, 74, 79, 81], [2, 108]), { 1: [2, 2] }, { 15: 84, 17: [1, 85], 22: $VC }, o([17, 22], [2, 12]), o($Vp, [2, 17], { 25: 7, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 7: 18, 32: 22, 49: 23, 54: 24, 31: 38, 33: 39, 6: 87, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 44: $V6, 46: $V7, 48: $V8, 53: $V9, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }), { 6: 88, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($Vq, [2, 28]), o($Vq, [2, 37]), o($Vq, [2, 38]), { 28: [1, 90], 31: 38, 32: 89, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 62: 91, 66: 58, 67: 59, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }, o($Vq, [2, 56]), { 67: 92, 73: $Vw, 74: $Vx }, o($VD, [2, 68], { 66: 93, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VE, [2, 69]), o($VE, [2, 70]), o($VE, [2, 71]), o($VE, [2, 72]), o($VE, [2, 73]), o($VF, [2, 74]), o($VF, [2, 75]), { 16: [1, 95], 38: 96, 51: 94, 54: 24, 57: $Va }, { 31: 97, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 56: 98, 60: $VG }, { 59: [1, 100] }, { 28: [1, 101] }, { 28: [1, 102] }, { 79: [1, 103], 81: [1, 104] }, { 31: 105, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 28: $Vz, 64: 106 }, o($Vq, [2, 64]), o($Vq, [2, 109]), o($VA, [2, 24]), o($VA, [2, 25]), o($VA, [2, 26]), { 50: [2, 42] }, { 30: 107, 31: 82, 50: [2, 20], 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, o($VH, [2, 50], { 26: 108, 27: [1, 109] }), { 16: [1, 110] }, { 18: 111, 21: [1, 112] }, { 16: [2, 14] }, o($Vp, [2, 18]), { 24: [1, 113] }, o($VI, [2, 59]), { 31: 38, 32: 114, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: [1, 116], 31: 38, 32: 115, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VD, [2, 67], { 66: 117, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VD, [2, 66]), { 52: [1, 118] }, { 38: 96, 51: 119, 54: 24, 57: $Va }, { 16: [1, 120], 52: [2, 43] }, o($Vy, [2, 47], { 50: [1, 121] }), { 52: [1, 122] }, { 52: [2, 53], 56: 123, 60: $VG }, { 31: 38, 32: 124, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($Vq, [2, 76], { 28: [1, 125] }), o($Vq, [2, 78], { 28: [1, 127], 77: [1, 126] }), o($Vq, [2, 82], { 28: [1, 128], 80: [1, 129] }), o($Vq, [2, 86], { 28: [1, 131], 77: [1, 130] }), o($Vq, [2, 90]), o($Vq, [2, 63]), { 50: [2, 21] }, o($VH, [2, 51]), { 28: [1, 132] }, o($VJ, [2, 9]), { 15: 133, 22: $VC }, { 22: [2, 13] }, { 1: [2, 15] }, o($VI, [2, 61]), o($VI, [2, 60]), { 31: 38, 32: 134, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VD, [2, 65]), o($Vq, [2, 40]), { 52: [1, 135] }, { 38: 96, 51: 136, 52: [2, 44], 54: 24, 57: $Va }, { 56: 137, 60: $VG }, o($Vy, [2, 48]), { 52: [2, 54] }, o($Vq, [2, 52]), o($Vq, [2, 77]), o($Vq, [2, 79]), o($Vq, [2, 80], { 77: [1, 138] }), o($Vq, [2, 83]), o($Vq, [2, 84], { 28: [1, 139] }), o($Vq, [2, 87]), o($Vq, [2, 88], { 77: [1, 140] }), { 29: [1, 141] }, { 16: [1, 142] }, o($VI, [2, 62]), o($Vq, [2, 41]), { 52: [2, 45] }, { 52: [1, 143] }, o($Vq, [2, 81]), o($Vq, [2, 85]), o($Vq, [2, 89]), o($VH, [2, 19]), o($VJ, [2, 10]), o($Vy, [2, 49])],\n defaultActions: { 2: [2, 1], 4: [2, 3], 5: [2, 8], 9: [2, 11], 47: [2, 2], 81: [2, 42], 86: [2, 14], 107: [2, 21], 112: [2, 13], 113: [2, 15], 123: [2, 54], 136: [2, 45] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 19;\n case 1:\n return 8;\n case 2:\n return 9;\n case 3:\n return 10;\n case 4:\n return 11;\n case 5:\n this.begin(\"type_directive\");\n return 20;\n case 6:\n this.popState();\n this.begin(\"arg_directive\");\n return 17;\n case 7:\n this.popState();\n this.popState();\n return 22;\n case 8:\n return 21;\n case 9:\n break;\n case 10:\n break;\n case 11:\n this.begin(\"acc_title\");\n return 44;\n case 12:\n this.popState();\n return \"acc_title_value\";\n case 13:\n this.begin(\"acc_descr\");\n return 46;\n case 14:\n this.popState();\n return \"acc_descr_value\";\n case 15:\n this.begin(\"acc_descr_multiline\");\n break;\n case 16:\n this.popState();\n break;\n case 17:\n return \"acc_descr_multiline_value\";\n case 18:\n return 16;\n case 19:\n break;\n case 20:\n return 23;\n case 21:\n return 23;\n case 22:\n return \"EDGE_STATE\";\n case 23:\n this.begin(\"namespace\");\n return 53;\n case 24:\n this.popState();\n return 16;\n case 25:\n break;\n case 26:\n this.begin(\"namespace-body\");\n return 50;\n case 27:\n this.popState();\n return 52;\n case 28:\n return \"EOF_IN_STRUCT\";\n case 29:\n return 16;\n case 30:\n break;\n case 31:\n return \"EDGE_STATE\";\n case 32:\n this.begin(\"class\");\n return 57;\n case 33:\n this.popState();\n return 16;\n case 34:\n break;\n case 35:\n this.popState();\n this.popState();\n return 52;\n case 36:\n this.begin(\"class-body\");\n return 50;\n case 37:\n this.popState();\n return 52;\n case 38:\n return \"EOF_IN_STRUCT\";\n case 39:\n return \"EDGE_STATE\";\n case 40:\n return \"OPEN_IN_STRUCT\";\n case 41:\n break;\n case 42:\n return \"MEMBER\";\n case 43:\n return 82;\n case 44:\n return 75;\n case 45:\n return 76;\n case 46:\n return 78;\n case 47:\n return 63;\n case 48:\n return 65;\n case 49:\n return 58;\n case 50:\n return 59;\n case 51:\n this.begin(\"href\");\n break;\n case 52:\n this.popState();\n break;\n case 53:\n return 81;\n case 54:\n this.begin(\"callback_name\");\n break;\n case 55:\n this.popState();\n break;\n case 56:\n this.popState();\n this.begin(\"callback_args\");\n break;\n case 57:\n return 79;\n case 58:\n this.popState();\n break;\n case 59:\n return 80;\n case 60:\n this.popState();\n break;\n case 61:\n return \"GENERICTYPE\";\n case 62:\n this.begin(\"generic\");\n break;\n case 63:\n this.popState();\n break;\n case 64:\n return \"STR\";\n case 65:\n this.begin(\"string\");\n break;\n case 66:\n this.popState();\n break;\n case 67:\n return \"BQUOTE_STR\";\n case 68:\n this.begin(\"bqstring\");\n break;\n case 69:\n return 77;\n case 70:\n return 77;\n case 71:\n return 77;\n case 72:\n return 77;\n case 73:\n return 69;\n case 74:\n return 69;\n case 75:\n return 71;\n case 76:\n return 71;\n case 77:\n return 70;\n case 78:\n return 68;\n case 79:\n return 72;\n case 80:\n return 73;\n case 81:\n return 74;\n case 82:\n return 36;\n case 83:\n return 55;\n case 84:\n return 94;\n case 85:\n return \"DOT\";\n case 86:\n return \"PLUS\";\n case 87:\n return 91;\n case 88:\n return \"EQUALS\";\n case 89:\n return \"EQUALS\";\n case 90:\n return 98;\n case 91:\n return 27;\n case 92:\n return 29;\n case 93:\n return \"PUNCTUATION\";\n case 94:\n return 97;\n case 95:\n return 96;\n case 96:\n return 93;\n case 97:\n return 24;\n }\n },\n rules: [/^(?:%%\\{)/, /^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:((?:(?!\\}%%)[^:.])*))/, /^(?::)/, /^(?:\\}%%)/, /^(?:((?:(?!\\}%%).|\\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)/, /^(?:\\[\\*\\])/, /^(?: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[\\s]+[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:call[\\s]+)/, /^(?:\\([\\s]*\\))/, /^(?:\\()/, /^(?:[^(]*)/, /^(?:\\))/, /^(?:[^)]*)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:[~])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[\"])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_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)/, /^(?:$)/],\n conditions: { \"namespace-body\": { \"rules\": [27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"namespace\": { \"rules\": [23, 24, 25, 26, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"class-body\": { \"rules\": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"class\": { \"rules\": [33, 34, 35, 36, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"acc_descr_multiline\": { \"rules\": [16, 17, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"acc_descr\": { \"rules\": [14, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"acc_title\": { \"rules\": [12, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"arg_directive\": { \"rules\": [7, 8, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"type_directive\": { \"rules\": [6, 7, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"open_directive\": { \"rules\": [5, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"callback_args\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 58, 59, 62, 65, 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\": false }, \"callback_name\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 62, 65, 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\": false }, \"href\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 62, 65, 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\": false }, \"struct\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": false }, \"generic\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 60, 61, 62, 65, 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\": false }, \"bqstring\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 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\": false }, \"string\": { \"rules\": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 63, 64, 65, 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\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 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\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst MERMAID_DOM_ID_PREFIX = \"classId-\";\nlet relations = [];\nlet classes = {};\nlet notes = [];\nlet classCounter = 0;\nlet namespaces = {};\nlet namespaceCounter = 0;\nlet functions = [];\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst splitClassNameAndType = function(id) {\n let genericType = \"\";\n let className = id;\n if (id.indexOf(\"~\") > 0) {\n const split = id.split(\"~\");\n className = sanitizeText(split[0]);\n genericType = sanitizeText(split[1]);\n }\n return { className, type: genericType };\n};\nconst setClassLabel = function(id, label) {\n if (label) {\n label = sanitizeText(label);\n }\n const { className } = splitClassNameAndType(id);\n classes[className].label = label;\n};\nconst addClass = function(id) {\n const classId = splitClassNameAndType(id);\n if (classes[classId.className] !== void 0) {\n return;\n }\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n label: classId.className,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + \"-\" + classCounter\n };\n classCounter++;\n};\nconst lookUpDomId = function(id) {\n if (id in classes) {\n return classes[id].domId;\n }\n throw new Error(\"Class not found: \" + id);\n};\nconst clear = function() {\n relations = [];\n classes = {};\n notes = [];\n functions = [];\n functions.push(setupToolTips);\n namespaces = {};\n namespaceCounter = 0;\n clear$1();\n};\nconst getClass = function(id) {\n return classes[id];\n};\nconst getClasses = function() {\n return classes;\n};\nconst getRelations = function() {\n return relations;\n};\nconst getNotes = function() {\n return notes;\n};\nconst addRelation = function(relation) {\n log.debug(\"Adding relation: \" + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n relation.relationTitle1 = common.sanitizeText(\n relation.relationTitle1.trim(),\n getConfig()\n );\n relation.relationTitle2 = common.sanitizeText(\n relation.relationTitle2.trim(),\n getConfig()\n );\n relations.push(relation);\n};\nconst addAnnotation = function(className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\nconst addMember = function(className, member) {\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n if (typeof member === \"string\") {\n const memberString = member.trim();\n if (memberString.startsWith(\"<<\") && memberString.endsWith(\">>\")) {\n theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(\")\") > 0) {\n theClass.methods.push(sanitizeText(memberString));\n } else if (memberString) {\n theClass.members.push(sanitizeText(memberString));\n }\n }\n};\nconst addMembers = function(className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\nconst addNote = function(text, className) {\n const note = {\n id: `note${notes.length}`,\n class: className,\n text\n };\n notes.push(note);\n};\nconst cleanupLabel = function(label) {\n if (label.startsWith(\":\")) {\n label = label.substring(1);\n }\n return sanitizeText(label.trim());\n};\nconst setCssClass = function(ids, className) {\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n if (classes[id] !== void 0) {\n classes[id].cssClasses.push(className);\n }\n });\n};\nconst setTooltip = function(ids, tooltip) {\n ids.split(\",\").forEach(function(id) {\n if (tooltip !== void 0) {\n classes[id].tooltip = sanitizeText(tooltip);\n }\n });\n};\nconst getTooltip = function(id, namespace) {\n if (namespace) {\n return namespaces[namespace].classes[id].tooltip;\n }\n return classes[id].tooltip;\n};\nconst setLink = function(ids, linkStr, target) {\n const config = getConfig();\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n if (classes[id] !== void 0) {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (config.securityLevel === \"sandbox\") {\n classes[id].linkTarget = \"_top\";\n } else if (typeof target === \"string\") {\n classes[id].linkTarget = sanitizeText(target);\n } else {\n classes[id].linkTarget = \"_blank\";\n }\n }\n });\n setCssClass(ids, \"clickable\");\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, \"clickable\");\n};\nconst setClickFunc = function(domId, functionName, functionArgs) {\n const config = getConfig();\n if (config.securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n const id = domId;\n if (classes[id] !== void 0) {\n const elemId = lookUpDomId(id);\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(elemId);\n }\n functions.push(function() {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n function() {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\nconst bindFunctions = function(element) {\n functions.forEach(function(fun) {\n fun(element);\n });\n};\nconst lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nconst relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n LOLLIPOP: 4\n};\nconst setupToolTips = function(element) {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", function() {\n const el = select(this);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.top - 14 + document.body.scrollTop + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
    \"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", function() {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(this);\n el.classed(\"hover\", false);\n });\n};\nfunctions.push(setupToolTips);\nlet direction = \"TB\";\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\nconst addNamespace = function(id) {\n if (namespaces[id] !== void 0) {\n return;\n }\n namespaces[id] = {\n id,\n classes: {},\n children: {},\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + namespaceCounter\n };\n namespaceCounter++;\n};\nconst getNamespace = function(name) {\n return namespaces[name];\n};\nconst getNamespaces = function() {\n return namespaces;\n};\nconst addClassesToNamespace = function(id, classNames) {\n if (namespaces[id] !== void 0) {\n classNames.map((className) => {\n namespaces[id].classes[className] = classes[className];\n delete classes[className];\n classCounter--;\n });\n }\n};\nconst db = {\n parseDirective,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n getNotes,\n addAnnotation,\n addNote,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n getTooltip,\n setTooltip,\n lookUpDomId,\n setDiagramTitle,\n getDiagramTitle,\n setClassLabel,\n addNamespace,\n addClassesToNamespace,\n getNamespace,\n getNamespaces\n};\nconst getStyles = (options) => `g.classGroup text {\n fill: ${options.nodeBorder};\n fill: ${options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`;\nconst styles = getStyles;\nexport {\n db as d,\n parser$1 as p,\n styles as s\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","n","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","MERMAID_DOM_ID_PREFIX","relations","classes","notes","classCounter","namespaces","namespaceCounter","functions","sanitizeText","txt","common","getConfig","parseDirective","statement","context","type","mermaidAPI","splitClassNameAndType","id","genericType","className","split","setClassLabel","label","addClass","classId","lookUpDomId","clear","setupToolTips","clear$1","getClass","getClasses","getRelations","getNotes","addRelation","relation","log","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","addMembers","members","addNote","text","note","cleanupLabel","setCssClass","ids","_id","setTooltip","tooltip","getTooltip","namespace","setLink","linkStr","target","config","utils","setClickEvent","functionName","functionArgs","setClickFunc","domId","elemId","argList","item","elem","bindFunctions","element","fun","lineType","relationType","tooltipElem","select","el","rect","direction","getDirection","setDirection","dir","addNamespace","getNamespace","name","getNamespaces","addClassesToNamespace","classNames","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","getStyles","options","styles"],"mappings":"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GAAI,QAAS,GAAI,YAAc,EACpjC,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,CAAC,EACx9B,cAAe,SAAmBC,EAAQC,EAAQC,EAAUC,EAAIC,EAASC,EAAIC,EAAI,CAC/E,IAAIC,EAAKF,EAAG,OAAS,EACrB,OAAQD,EAAO,CACb,IAAK,GACHD,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,GACHA,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,GACHA,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,GACHA,EAAG,aAAa,IAAI,EACpB,MACF,IAAK,IACHA,EAAG,eAAe,MAAO,gBAAgB,EACzC,MACF,IAAK,IACHA,EAAG,eAAeE,EAAGE,CAAE,EAAG,gBAAgB,EAC1C,MACF,IAAK,IACHF,EAAGE,CAAE,EAAIF,EAAGE,CAAE,EAAE,KAAI,EAAG,QAAQ,KAAM,GAAG,EACxCJ,EAAG,eAAeE,EAAGE,CAAE,EAAG,eAAe,EACzC,MACF,IAAK,IACHJ,EAAG,eAAe,MAAO,kBAAmB,OAAO,EACnD,MACF,IAAK,IACH,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,IACL,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAAIF,EAAGE,CAAE,EAC3B,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAAI,IAAMF,EAAGE,CAAE,EAAI,IACrC,MACF,IAAK,IACHJ,EAAG,YAAYE,EAAGE,CAAE,CAAC,EACrB,MACF,IAAK,IACHF,EAAGE,EAAK,CAAC,EAAE,MAAQJ,EAAG,aAAaE,EAAGE,CAAE,CAAC,EACzCJ,EAAG,YAAYE,EAAGE,EAAK,CAAC,CAAC,EACzB,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,YAAY,KAAK,CAAC,EACrB,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIE,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,kBAAkB,KAAK,CAAC,EAC3B,MACF,IAAK,IACHA,EAAG,sBAAsBE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EAC/C,MACF,IAAK,IACHJ,EAAG,sBAAsBE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EAC/C,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EACdJ,EAAG,aAAaE,EAAGE,CAAE,CAAC,EACtB,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,CAAE,CAAC,EAChB,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,EAAK,CAAC,CAAC,EACpB,MACF,IAAK,IACHF,EAAGE,CAAE,EAAE,QAAQF,EAAGE,EAAK,CAAC,CAAC,EACzB,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,IACHJ,EAAG,YAAYE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACjC,MACF,IAAK,IACHJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACpC,MACF,IAAK,IACHJ,EAAG,YAAYE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACrCJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACpC,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,CAAE,EACdJ,EAAG,SAASE,EAAGE,CAAE,CAAC,EAClB,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,SAASE,EAAGE,EAAK,CAAC,CAAC,EACtBJ,EAAG,cAAcE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACnC,MACF,IAAK,IACHJ,EAAG,cAAcE,EAAGE,CAAE,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACnC,MACF,IAAK,IACH,KAAK,EAAI,CAACF,EAAGE,CAAE,CAAC,EAChB,MACF,IAAK,IACHF,EAAGE,CAAE,EAAE,KAAKF,EAAGE,EAAK,CAAC,CAAC,EACtB,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,IACH,MACF,IAAK,IACHJ,EAAG,UAAUE,EAAGE,EAAK,CAAC,EAAGJ,EAAG,aAAaE,EAAGE,CAAE,CAAC,CAAC,EAChD,MACF,IAAK,IACH,MACF,IAAK,IACH,MACF,IAAK,IACH,KAAK,EAAI,CAAE,IAAOF,EAAGE,EAAK,CAAC,EAAG,IAAOF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,EAAG,eAAgB,OAAQ,eAAgB,QAC3G,MACF,IAAK,IACH,KAAK,EAAI,CAAE,IAAKF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,EAAG,eAAgBF,EAAGE,EAAK,CAAC,EAAG,eAAgB,QAC3G,MACF,IAAK,IACH,KAAK,EAAI,CAAE,IAAKF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,EAAG,eAAgB,OAAQ,eAAgBF,EAAGE,EAAK,CAAC,GAChH,MACF,IAAK,IACH,KAAK,EAAI,CAAE,IAAKF,EAAGE,EAAK,CAAC,EAAG,IAAKF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,EAAG,eAAgBF,EAAGE,EAAK,CAAC,EAAG,eAAgBF,EAAGE,EAAK,CAAC,CAAC,EACrH,MACF,IAAK,IACHJ,EAAG,QAAQE,EAAGE,CAAE,EAAGF,EAAGE,EAAK,CAAC,CAAC,EAC7B,MACF,IAAK,IACHJ,EAAG,QAAQE,EAAGE,CAAE,CAAC,EACjB,MACF,IAAK,IACH,KAAK,EAAI,CAAE,MAAOF,EAAGE,EAAK,CAAC,EAAG,MAAOF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,GAChE,MACF,IAAK,IACH,KAAK,EAAI,CAAE,MAAO,OAAQ,MAAOF,EAAGE,CAAE,EAAG,SAAUF,EAAGE,EAAK,CAAC,CAAC,EAC7D,MACF,IAAK,IACH,KAAK,EAAI,CAAE,MAAOF,EAAGE,EAAK,CAAC,EAAG,MAAO,OAAQ,SAAUF,EAAGE,CAAE,CAAC,EAC7D,MACF,IAAK,IACH,KAAK,EAAI,CAAE,MAAO,OAAQ,MAAO,OAAQ,SAAUF,EAAGE,CAAE,GACxD,MACF,IAAK,IACH,KAAK,EAAIJ,EAAG,aAAa,YACzB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,aAAa,UACzB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,aAAa,YACzB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,aAAa,WACzB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,aAAa,SACzB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,KACrB,MACF,IAAK,IACH,KAAK,EAAIA,EAAG,SAAS,YACrB,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIE,EAAGE,EAAK,CAAC,EAClBJ,EAAG,cAAcE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACnC,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,cAAcE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACvCJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAChC,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAC7B,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACzC,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACjCJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAChC,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACzCJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACpC,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,cAAcE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAC/C,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,cAAcE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,CAAC,EACnDJ,EAAG,WAAWE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAChC,MACF,IAAK,IACH,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClBJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACzC,MACF,IAAK,IACHJ,EAAG,YAAYE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EACjC,KACH,CACF,EACD,MAAO,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAGtD,EAAK,EAAGC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,EAAG,GAAI,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE,CAAE,EAAG,CAAC,CAAC,GAAK,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAAE,CAAE,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAGxB,EAAK,EAAGC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,EAAG,GAAI,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAO,CAAE,EAAG,CAAC,EAAG,CAAC,CAAC,EAAI,CAAE,EAAG,CAAC,EAAG,CAAC,GAAK,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,GAAK7B,EAAE8B,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,CAAE,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK9B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,CAAE,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAItC,EAAEuC,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,CAAG,CAAA,EAAGvC,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,GAAI,GAAIN,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIH,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIJ,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAO,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIJ,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIJ,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI,CAAE,GAAIW,GAAK,GAAI,IAAMxC,EAAE+B,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG/B,EAAEyC,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAIhB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,EAAG7B,EAAEyC,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,CAAA,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAIhB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIH,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAO7B,EAAE0C,GAAK,CAAC,EAAG,GAAG,CAAC,EAAG1C,EAAE0C,GAAK,CAAC,EAAG,GAAG,CAAC,EAAG1C,EAAE0C,GAAK,CAAC,EAAG,GAAG,CAAC,EAAG1C,EAAE0C,GAAK,CAAC,EAAG,GAAG,CAAC,EAAG1C,EAAE,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,CAAC,EAAG,GAAG,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,CAAG,EAAE,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI2C,EAAG,EAAI3C,EAAE,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAGA,EAAE8B,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAGzB,EAAK,EAAGC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIG,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,EAAG,CAAE,EAAG,GAAI,EAAG,GAAI,EAAGxB,EAAK,EAAGC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIG,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI7B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIN,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIG,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAItC,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,GAAI,GAAIM,GAAK,GAAIC,EAAK,EAAEtC,EAAE4C,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,GAAI,GAAIZ,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,EAAGpC,EAAE6C,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG7C,EAAE6C,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG7C,EAAE6C,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG7C,EAAE6C,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG7C,EAAE6C,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG7C,EAAE8C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG9C,EAAE8C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI/B,CAAK,EAAE,CAAE,GAAI,GAAI,GAAIU,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI,CAAE,GAAI,GAAI,GAAImB,EAAK,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,GAAK,CAAE,GAAI,IAAK,GAAItB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE,CAAE,GAAIY,GAAK,GAAI,GAAG,EAAIxC,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,GAAG,CAAC,EAAG/B,EAAEyC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGzC,EAAEyC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGzC,EAAEyC,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,GAAI,IAAK,GAAI,GAAI,GAAI,CAAC,EAAG,EAAE,EAAG,GAAIhB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE5B,EAAEgD,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,IAAK,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,IAAK,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,EAAE,GAAKhD,EAAE8B,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,GAAK9B,EAAEiD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAIxB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAIJ,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI7B,EAAE4C,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,IAAK,GAAIZ,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,EAAGpC,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI7B,GAAO,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,EAAE,GAAKf,EAAEuC,GAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,IAAK,GAAIQ,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAItB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAK,EAAE7B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,EAAG,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,EAAG,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,GAAI,CAAC,EAAG,GAAG,EAAG,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE/B,EAAEgD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAEhD,EAAEkD,GAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,GAAI,IAAK,GAAIP,EAAG,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,GAAK,CAAE,EAAG,CAAC,EAAG,EAAE,CAAG,EAAE3C,EAAEiD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAGjD,EAAEiD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAIxB,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAI7B,EAAE4C,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG5C,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,CAAE,GAAI,GAAI,GAAI,IAAK,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,GAAI,GAAIhB,CAAG,EAAI,CAAE,GAAI,IAAK,GAAIgC,IAAO/C,EAAEuC,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,GAAKvC,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,CAAA,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,CAAA,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,GAAK,CAAE,GAAI,CAAC,EAAG,GAAG,CAAG,EAAE/B,EAAEiD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAGjD,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAG,EAAE,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAE+B,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG/B,EAAEgD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAGhD,EAAEkD,GAAK,CAAC,EAAG,EAAE,CAAC,EAAGlD,EAAEuC,GAAK,CAAC,EAAG,EAAE,CAAC,CAAC,EAC/8K,eAAgB,CAAE,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,GAAI,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,EAAG,IAAK,CAAC,EAAG,EAAE,CAAG,EAC3K,WAAY,SAAoBqB,EAAKC,EAAM,CACzC,GAAIA,EAAK,YACP,KAAK,MAAMD,CAAG,MACT,CACL,IAAIE,EAAQ,IAAI,MAAMF,CAAG,EACzB,MAAAE,EAAM,KAAOD,EACPC,CACP,CACF,EACD,MAAO,SAAeC,EAAO,CAC3B,IAAIC,EAAO,KAAMC,EAAQ,CAAC,CAAC,EAAGC,EAAS,CAAA,EAAIC,EAAS,CAAC,IAAI,EAAGC,EAAS,CAAE,EAAEC,EAAQ,KAAK,MAAOjB,EAAS,GAAIE,GAAW,EAAGD,GAAS,EAAGiB,GAAS,EAAGC,GAAM,EAClJC,GAAOJ,EAAO,MAAM,KAAK,UAAW,CAAC,EACrCK,EAAS,OAAO,OAAO,KAAK,KAAK,EACjCC,EAAc,CAAE,GAAI,CAAA,GACxB,QAASzE,MAAK,KAAK,GACb,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,EAAC,IACjDyE,EAAY,GAAGzE,EAAC,EAAI,KAAK,GAAGA,EAAC,GAGjCwE,EAAO,SAASV,EAAOW,EAAY,EAAE,EACrCA,EAAY,GAAG,MAAQD,EACvBC,EAAY,GAAG,OAAS,KACpB,OAAOD,EAAO,OAAU,MAC1BA,EAAO,OAAS,IAElB,IAAIE,GAAQF,EAAO,OACnBL,EAAO,KAAKO,EAAK,EACjB,IAAIC,GAASH,EAAO,SAAWA,EAAO,QAAQ,OAC1C,OAAOC,EAAY,GAAG,YAAe,WACvC,KAAK,WAAaA,EAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAEhD,SAASG,IAAM,CACb,IAAIC,EACJ,OAAAA,EAAQZ,EAAO,IAAG,GAAMO,EAAO,IAAK,GAAIF,GACpC,OAAOO,GAAU,WACfA,aAAiB,QACnBZ,EAASY,EACTA,EAAQZ,EAAO,OAEjBY,EAAQd,EAAK,SAASc,CAAK,GAAKA,GAE3BA,CACR,CAED,QADIC,EAAQC,EAAOC,EAAQC,GAAGC,EAAQ,CAAE,EAAEC,GAAGC,EAAKC,GAAUC,KAC/C,CAUX,GATAP,EAAQf,EAAMA,EAAM,OAAS,CAAC,EAC1B,KAAK,eAAee,CAAK,EAC3BC,EAAS,KAAK,eAAeD,CAAK,IAE9BD,IAAW,MAAQ,OAAOA,EAAU,OACtCA,EAASF,GAAG,GAEdI,EAASZ,EAAMW,CAAK,GAAKX,EAAMW,CAAK,EAAED,CAAM,GAE1C,OAAOE,EAAW,KAAe,CAACA,EAAO,QAAU,CAACA,EAAO,CAAC,EAAG,CACjE,IAAIO,GAAS,GACbD,GAAW,CAAA,EACX,IAAKH,MAAKf,EAAMW,CAAK,EACf,KAAK,WAAWI,EAAC,GAAKA,GAAId,IAC5BiB,GAAS,KAAK,IAAM,KAAK,WAAWH,EAAC,EAAI,GAAG,EAG5CX,EAAO,aACTe,GAAS,wBAA0BlC,GAAW,GAAK;AAAA,EAAQmB,EAAO,aAAc,EAAG;AAAA,YAAiBc,GAAS,KAAK,IAAI,EAAI,WAAa,KAAK,WAAWR,CAAM,GAAKA,GAAU,IAE5KS,GAAS,wBAA0BlC,GAAW,GAAK,iBAAmByB,GAAUR,GAAM,eAAiB,KAAO,KAAK,WAAWQ,CAAM,GAAKA,GAAU,KAErJ,KAAK,WAAWS,GAAQ,CACtB,KAAMf,EAAO,MACb,MAAO,KAAK,WAAWM,CAAM,GAAKA,EAClC,KAAMN,EAAO,SACb,IAAKE,GACL,SAAAY,EACZ,CAAW,CACF,CACD,GAAIN,EAAO,CAAC,YAAa,OAASA,EAAO,OAAS,EAChD,MAAM,IAAI,MAAM,oDAAsDD,EAAQ,YAAcD,CAAM,EAEpG,OAAQE,EAAO,CAAC,EAAC,CACf,IAAK,GACHhB,EAAM,KAAKc,CAAM,EACjBZ,EAAO,KAAKM,EAAO,MAAM,EACzBL,EAAO,KAAKK,EAAO,MAAM,EACzBR,EAAM,KAAKgB,EAAO,CAAC,CAAC,EACpBF,EAAS,KAEP1B,GAASoB,EAAO,OAChBrB,EAASqB,EAAO,OAChBnB,GAAWmB,EAAO,SAClBE,GAAQF,EAAO,OAEjB,MACF,IAAK,GAwBH,GAvBAY,EAAM,KAAK,aAAaJ,EAAO,CAAC,CAAC,EAAE,CAAC,EACpCE,EAAM,EAAIhB,EAAOA,EAAO,OAASkB,CAAG,EACpCF,EAAM,GAAK,CACT,WAAYf,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,WAC/C,UAAWjB,EAAOA,EAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,aACjD,YAAajB,EAAOA,EAAO,OAAS,CAAC,EAAE,WACrD,EACgBQ,KACFO,EAAM,GAAG,MAAQ,CACff,EAAOA,EAAO,QAAUiB,GAAO,EAAE,EAAE,MAAM,CAAC,EAC1CjB,EAAOA,EAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACjD,GAEYc,GAAI,KAAK,cAAc,MAAMC,EAAO,CAClC/B,EACAC,GACAC,GACAoB,EAAY,GACZO,EAAO,CAAC,EACRd,EACAC,CACd,EAAc,OAAOI,EAAI,CAAC,EACV,OAAOU,GAAM,IACf,OAAOA,GAELG,IACFpB,EAAQA,EAAM,MAAM,EAAG,GAAKoB,EAAM,CAAC,EACnClB,EAASA,EAAO,MAAM,EAAG,GAAKkB,CAAG,EACjCjB,EAASA,EAAO,MAAM,EAAG,GAAKiB,CAAG,GAEnCpB,EAAM,KAAK,KAAK,aAAagB,EAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1Cd,EAAO,KAAKgB,EAAM,CAAC,EACnBf,EAAO,KAAKe,EAAM,EAAE,EACpBG,GAAWjB,EAAMJ,EAAMA,EAAM,OAAS,CAAC,CAAC,EAAEA,EAAMA,EAAM,OAAS,CAAC,CAAC,EACjEA,EAAM,KAAKqB,EAAQ,EACnB,MACF,IAAK,GACH,MAAO,EACV,CACF,CACD,MAAO,EACR,CACL,EACMG,GAAQ,UAAW,CACrB,IAAIhB,EAAS,CACX,IAAK,EACL,WAAY,SAAoBb,EAAKC,EAAM,CACzC,GAAI,KAAK,GAAG,OACV,KAAK,GAAG,OAAO,WAAWD,EAAKC,CAAI,MAEnC,OAAM,IAAI,MAAMD,CAAG,CAEtB,EAED,SAAU,SAASG,EAAOR,EAAI,CAC5B,YAAK,GAAKA,GAAM,KAAK,IAAM,CAAA,EAC3B,KAAK,OAASQ,EACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACZ,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CACvB,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAG,CAAC,GAE3B,KAAK,OAAS,EACP,IACR,EAED,MAAO,UAAW,CAChB,IAAI2B,EAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,EACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,EACd,KAAK,SAAWA,EAChB,IAAIC,EAAQD,EAAG,MAAM,iBAAiB,EACtC,OAAIC,GACF,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEV,KAAK,QAAQ,QACf,KAAK,OAAO,MAAM,CAAC,IAErB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1BD,CACR,EAED,MAAO,SAASA,EAAI,CAClB,IAAIL,EAAMK,EAAG,OACTC,EAAQD,EAAG,MAAM,eAAe,EACpC,KAAK,OAASA,EAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAASL,CAAG,EAC5D,KAAK,QAAUA,EACf,IAAIO,EAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EACzDD,EAAM,OAAS,IACjB,KAAK,UAAYA,EAAM,OAAS,GAElC,IAAIT,EAAI,KAAK,OAAO,MACpB,YAAK,OAAS,CACZ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaS,GAASA,EAAM,SAAWC,EAAS,OAAS,KAAK,OAAO,aAAe,GAAKA,EAASA,EAAS,OAASD,EAAM,MAAM,EAAE,OAASA,EAAM,CAAC,EAAE,OAAS,KAAK,OAAO,aAAeN,CAClM,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAACH,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,KAAK,OAASG,CAAG,GAErD,KAAK,OAAS,KAAK,OAAO,OACnB,IACR,EAED,KAAM,UAAW,CACf,YAAK,MAAQ,GACN,IACR,EAED,OAAQ,UAAW,CACjB,GAAI,KAAK,QAAQ,gBACf,KAAK,WAAa,OAElB,QAAO,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAChO,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,EAEH,OAAO,IACR,EAED,KAAM,SAAS,EAAG,CAChB,KAAK,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC,CAC/B,EAED,UAAW,UAAW,CACpB,IAAIQ,EAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,EAAK,OAAS,GAAK,MAAQ,IAAMA,EAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC5E,EAED,cAAe,UAAW,CACxB,IAAIC,EAAO,KAAK,MAChB,OAAIA,EAAK,OAAS,KAChBA,GAAQ,KAAK,OAAO,OAAO,EAAG,GAAKA,EAAK,MAAM,IAExCA,EAAK,OAAO,EAAG,EAAE,GAAKA,EAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CAChF,EAED,aAAc,UAAW,CACvB,IAAIC,EAAM,KAAK,YACXC,EAAI,IAAI,MAAMD,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,EAAM,KAAK,cAAe,EAAG;AAAA,EAAOC,EAAI,GAChD,EAED,WAAY,SAASC,EAAOC,EAAc,CACxC,IAAIpB,EAAOa,EAAOQ,EAmDlB,GAlDI,KAAK,QAAQ,kBACfA,EAAS,CACP,SAAU,KAAK,SACf,OAAQ,CACN,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WAC1B,EACD,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACvB,EACc,KAAK,QAAQ,SACfA,EAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAGnDR,EAAQM,EAAM,CAAC,EAAE,MAAM,iBAAiB,EACpCN,IACF,KAAK,UAAYA,EAAM,QAEzB,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,EAAQA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAAS,KAAK,OAAO,YAAcM,EAAM,CAAC,EAAE,MACvJ,EACQ,KAAK,QAAUA,EAAM,CAAC,EACtB,KAAK,OAASA,EAAM,CAAC,EACrB,KAAK,QAAUA,EACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAE9D,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,EAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,EAAM,CAAC,EACvBnB,EAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMoB,EAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SACpB,KAAK,KAAO,IAEVpB,EACF,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1B,QAAS7E,KAAKkG,EACZ,KAAKlG,CAAC,EAAIkG,EAAOlG,CAAC,EAEpB,MAAO,EACR,CACD,MAAO,EACR,EAED,KAAM,UAAW,CACf,GAAI,KAAK,KACP,OAAO,KAAK,IAET,KAAK,SACR,KAAK,KAAO,IAEd,IAAI6E,EAAOmB,EAAOG,EAAWC,EACxB,KAAK,QACR,KAAK,OAAS,GACd,KAAK,MAAQ,IAGf,QADIC,EAAQ,KAAK,gBACRC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAEhC,GADAH,EAAY,KAAK,OAAO,MAAM,KAAK,MAAME,EAAMC,CAAC,CAAC,CAAC,EAC9CH,IAAc,CAACH,GAASG,EAAU,CAAC,EAAE,OAASH,EAAM,CAAC,EAAE,SAGzD,GAFAA,EAAQG,EACRC,EAAQE,EACJ,KAAK,QAAQ,gBAAiB,CAEhC,GADAzB,EAAQ,KAAK,WAAWsB,EAAWE,EAAMC,CAAC,CAAC,EACvCzB,IAAU,GACZ,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1BmB,EAAQ,GACR,QAChB,KACgB,OAAO,EAEV,SAAU,CAAC,KAAK,QAAQ,KACvB,MAIN,OAAIA,GACFnB,EAAQ,KAAK,WAAWmB,EAAOK,EAAMD,CAAK,CAAC,EACvCvB,IAAU,GACLA,EAEF,IAEL,KAAK,SAAW,GACX,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACtH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,CAEJ,EAED,IAAK,UAAe,CAClB,IAAI,EAAI,KAAK,OACb,OAAI,GAGK,KAAK,KAEf,EAED,MAAO,SAAe0B,EAAW,CAC/B,KAAK,eAAe,KAAKA,CAAS,CACnC,EAED,SAAU,UAAoB,CAC5B,IAAIC,EAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,EAAI,EACC,KAAK,eAAe,MAEpB,KAAK,eAAe,CAAC,CAE/B,EAED,cAAe,UAAyB,CACtC,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EAC3E,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAErC,EAED,SAAU,SAAkBA,EAAG,CAE7B,OADAA,EAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,GAAK,CAAC,EAChDA,GAAK,EACA,KAAK,eAAeA,CAAC,EAErB,SAEV,EAED,UAAW,SAAmBD,EAAW,CACvC,KAAK,MAAMA,CAAS,CACrB,EAED,eAAgB,UAA0B,CACxC,OAAO,KAAK,eAAe,MAC5B,EACD,QAAS,CAAE,EACX,cAAe,SAAmBjD,EAAImD,EAAKC,EAA2BC,EAAU,CAC9E,OAAQD,EAAyB,CAC/B,IAAK,GACH,YAAK,MAAM,gBAAgB,EACpB,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,IACT,IAAK,GACH,MAAO,IACT,IAAK,GACH,YAAK,MAAM,gBAAgB,EACpB,GACT,IAAK,GACH,YAAK,SAAQ,EACb,KAAK,MAAM,eAAe,EACnB,GACT,IAAK,GACH,YAAK,SAAQ,EACb,KAAK,SAAQ,EACN,GACT,IAAK,GACH,MAAO,IACT,IAAK,GACH,MACF,IAAK,IACH,MACF,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACT,IAAK,IACH,YAAK,SAAQ,EACN,kBACT,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACT,IAAK,IACH,YAAK,SAAQ,EACN,kBACT,IAAK,IACH,KAAK,MAAM,qBAAqB,EAChC,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,4BACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,aACT,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACT,IAAK,IACH,YAAK,SAAQ,EACN,GACT,IAAK,IACH,MACF,IAAK,IACH,YAAK,MAAM,gBAAgB,EACpB,GACT,IAAK,IACH,YAAK,SAAQ,EACN,GACT,IAAK,IACH,MAAO,gBACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MACF,IAAK,IACH,MAAO,aACT,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GACT,IAAK,IACH,YAAK,SAAQ,EACN,GACT,IAAK,IACH,MACF,IAAK,IACH,YAAK,SAAQ,EACb,KAAK,SAAQ,EACN,GACT,IAAK,IACH,YAAK,MAAM,YAAY,EAChB,GACT,IAAK,IACH,YAAK,SAAQ,EACN,GACT,IAAK,IACH,MAAO,gBACT,IAAK,IACH,MAAO,aACT,IAAK,IACH,MAAO,iBACT,IAAK,IACH,MACF,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,KAAK,MAAM,MAAM,EACjB,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,KAAK,MAAM,eAAe,EAC1B,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,KAAK,SAAQ,EACb,KAAK,MAAM,eAAe,EAC1B,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,cACT,IAAK,IACH,KAAK,MAAM,SAAS,EACpB,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,MACT,IAAK,IACH,KAAK,MAAM,QAAQ,EACnB,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,aACT,IAAK,IACH,KAAK,MAAM,UAAU,EACrB,MACF,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,MACT,IAAK,IACH,MAAO,OACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,cACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,GACV,CACF,EACD,MAAO,CAAC,YAAa,8BAA+B,8BAA+B,8BAA+B,8BAA+B,4BAA6B,SAAU,YAAa,2BAA4B,gCAAiC,wBAAyB,uBAAwB,uBAAwB,uBAAwB,uBAAwB,wBAAyB,YAAa,cAAe,mBAAoB,WAAY,yBAA0B,sBAAuB,cAAe,mBAAoB,mBAAoB,WAAY,WAAY,WAAY,SAAU,mBAAoB,WAAY,cAAe,eAAgB,mBAAoB,WAAY,WAAY,WAAY,WAAY,SAAU,cAAe,WAAY,YAAa,gBAAiB,kBAAmB,kBAAmB,cAAe,eAAgB,kBAAmB,cAAe,UAAW,UAAW,oBAAqB,WAAY,aAAc,iBAAkB,iBAAkB,UAAW,aAAc,UAAW,aAAc,WAAY,aAAc,WAAY,WAAY,aAAc,WAAY,WAAY,aAAc,WAAY,eAAgB,gBAAiB,iBAAkB,cAAe,cAAe,cAAe,YAAa,YAAa,aAAc,cAAe,eAAgB,UAAW,YAAa,oBAAqB,YAAa,SAAU,UAAW,UAAW,SAAU,SAAU,SAAU,WAAY,UAAW,UAAW,2BAA4B,cAAe,qxIAAsxI,UAAW,QAAQ,EACrzL,WAAY,CAAE,iBAAkB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,UAAa,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,aAAc,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,MAAS,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,oBAAuB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,IAAS,UAAa,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,UAAa,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,IAAS,cAAiB,CAAE,MAAS,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,eAAkB,CAAE,MAAS,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,eAAkB,CAAE,MAAS,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,cAAiB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,cAAiB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,KAAQ,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,OAAU,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,QAAW,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,SAAY,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,OAAU,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAO,EAAE,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAI,CAAI,CACtjI,EACI,OAAOlC,CACX,IACEtB,GAAQ,MAAQsC,GAChB,SAASoB,IAAS,CAChB,KAAK,GAAK,EACX,CACD,OAAAA,GAAO,UAAY1D,GACnBA,GAAQ,OAAS0D,GACV,IAAIA,EACb,IACA9G,GAAO,OAASA,GACX,MAAC+G,GAAW/G,GACXgH,GAAwB,WAC9B,IAAIC,GAAY,CAAA,EACZC,EAAU,CAAA,EACVC,GAAQ,CAAA,EACRC,GAAe,EACfC,EAAa,CAAA,EACbC,GAAmB,EACnBC,EAAY,CAAA,EAChB,MAAMC,EAAgBC,GAAQC,GAAO,aAAaD,EAAKE,EAAS,CAAE,EAC5DC,GAAiB,SAASC,EAAWC,EAASC,EAAM,CACxDC,GAAW,eAAe,KAAMH,EAAWC,EAASC,CAAI,CAC1D,EACME,EAAwB,SAASC,EAAI,CACzC,IAAIC,EAAc,GACdC,EAAYF,EAChB,GAAIA,EAAG,QAAQ,GAAG,EAAI,EAAG,CACvB,MAAMG,EAAQH,EAAG,MAAM,GAAG,EAC1BE,EAAYZ,EAAaa,EAAM,CAAC,CAAC,EACjCF,EAAcX,EAAaa,EAAM,CAAC,CAAC,CACpC,CACD,MAAO,CAAE,UAAAD,EAAW,KAAMD,EAC5B,EACMG,GAAgB,SAASJ,EAAIK,EAAO,CACpCA,IACFA,EAAQf,EAAae,CAAK,GAE5B,KAAM,CAAE,UAAAH,CAAS,EAAKH,EAAsBC,CAAE,EAC9ChB,EAAQkB,CAAS,EAAE,MAAQG,CAC7B,EACMC,GAAW,SAASN,EAAI,CAC5B,MAAMO,EAAUR,EAAsBC,CAAE,EACpChB,EAAQuB,EAAQ,SAAS,IAAM,SAGnCvB,EAAQuB,EAAQ,SAAS,EAAI,CAC3B,GAAIA,EAAQ,UACZ,KAAMA,EAAQ,KACd,MAAOA,EAAQ,UACf,WAAY,CAAE,EACd,QAAS,CAAE,EACX,QAAS,CAAE,EACX,YAAa,CAAE,EACf,MAAOzB,GAAwByB,EAAQ,UAAY,IAAMrB,EAC7D,EACEA,KACF,EACMsB,GAAc,SAASR,EAAI,CAC/B,GAAIA,KAAMhB,EACR,OAAOA,EAAQgB,CAAE,EAAE,MAErB,MAAM,IAAI,MAAM,oBAAsBA,CAAE,CAC1C,EACMS,GAAQ,UAAW,CACvB1B,GAAY,CAAA,EACZC,EAAU,CAAA,EACVC,GAAQ,CAAA,EACRI,EAAY,CAAA,EACZA,EAAU,KAAKqB,EAAa,EAC5BvB,EAAa,CAAA,EACbC,GAAmB,EACnBuB,IACF,EACMC,GAAW,SAASZ,EAAI,CAC5B,OAAOhB,EAAQgB,CAAE,CACnB,EACMa,GAAa,UAAW,CAC5B,OAAO7B,CACT,EACM8B,GAAe,UAAW,CAC9B,OAAO/B,EACT,EACMgC,GAAW,UAAW,CAC1B,OAAO9B,EACT,EACM+B,GAAc,SAASC,EAAU,CACrCC,GAAI,MAAM,oBAAsB,KAAK,UAAUD,CAAQ,CAAC,EACxDX,GAASW,EAAS,GAAG,EACrBX,GAASW,EAAS,GAAG,EACrBA,EAAS,IAAMlB,EAAsBkB,EAAS,GAAG,EAAE,UACnDA,EAAS,IAAMlB,EAAsBkB,EAAS,GAAG,EAAE,UACnDA,EAAS,eAAiBzB,GAAO,aAC/ByB,EAAS,eAAe,KAAM,EAC9BxB,EAAW,CACf,EACEwB,EAAS,eAAiBzB,GAAO,aAC/ByB,EAAS,eAAe,KAAM,EAC9BxB,EAAW,CACf,EACEV,GAAU,KAAKkC,CAAQ,CACzB,EACME,GAAgB,SAASjB,EAAWkB,EAAY,CACpD,MAAMC,EAAqBtB,EAAsBG,CAAS,EAAE,UAC5DlB,EAAQqC,CAAkB,EAAE,YAAY,KAAKD,CAAU,CACzD,EACME,GAAY,SAASpB,EAAWqB,EAAQ,CAC5C,MAAMF,EAAqBtB,EAAsBG,CAAS,EAAE,UACtDsB,EAAWxC,EAAQqC,CAAkB,EAC3C,GAAI,OAAOE,GAAW,SAAU,CAC9B,MAAME,EAAeF,EAAO,OACxBE,EAAa,WAAW,IAAI,GAAKA,EAAa,SAAS,IAAI,EAC7DD,EAAS,YAAY,KAAKlC,EAAamC,EAAa,UAAU,EAAGA,EAAa,OAAS,CAAC,CAAC,CAAC,EACjFA,EAAa,QAAQ,GAAG,EAAI,EACrCD,EAAS,QAAQ,KAAKlC,EAAamC,CAAY,CAAC,EACvCA,GACTD,EAAS,QAAQ,KAAKlC,EAAamC,CAAY,CAAC,CAEnD,CACH,EACMC,GAAa,SAASxB,EAAWyB,EAAS,CAC1C,MAAM,QAAQA,CAAO,IACvBA,EAAQ,QAAO,EACfA,EAAQ,QAASJ,GAAWD,GAAUpB,EAAWqB,CAAM,CAAC,EAE5D,EACMK,GAAU,SAASC,EAAM3B,EAAW,CACxC,MAAM4B,EAAO,CACX,GAAI,OAAO7C,GAAM,MAAM,GACvB,MAAOiB,EACP,KAAA2B,CACJ,EACE5C,GAAM,KAAK6C,CAAI,CACjB,EACMC,GAAe,SAAS1B,EAAO,CACnC,OAAIA,EAAM,WAAW,GAAG,IACtBA,EAAQA,EAAM,UAAU,CAAC,GAEpBf,EAAae,EAAM,KAAI,CAAE,CAClC,EACM2B,GAAc,SAASC,EAAK/B,EAAW,CAC3C+B,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASC,EAAK,CACnC,IAAIlC,EAAKkC,EACLA,EAAI,CAAC,EAAE,MAAM,IAAI,IACnBlC,EAAKlB,GAAwBkB,GAE3BhB,EAAQgB,CAAE,IAAM,QAClBhB,EAAQgB,CAAE,EAAE,WAAW,KAAKE,CAAS,CAE3C,CAAG,CACH,EACMiC,GAAa,SAASF,EAAKG,EAAS,CACxCH,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASjC,EAAI,CAC9BoC,IAAY,SACdpD,EAAQgB,CAAE,EAAE,QAAUV,EAAa8C,CAAO,EAEhD,CAAG,CACH,EACMC,GAAa,SAASrC,EAAIsC,EAAW,CACzC,OAAIA,EACKnD,EAAWmD,CAAS,EAAE,QAAQtC,CAAE,EAAE,QAEpChB,EAAQgB,CAAE,EAAE,OACrB,EACMuC,GAAU,SAASN,EAAKO,EAASC,EAAQ,CAC7C,MAAMC,EAASjD,IACfwC,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASC,EAAK,CACnC,IAAIlC,EAAKkC,EACLA,EAAI,CAAC,EAAE,MAAM,IAAI,IACnBlC,EAAKlB,GAAwBkB,GAE3BhB,EAAQgB,CAAE,IAAM,SAClBhB,EAAQgB,CAAE,EAAE,KAAO2C,GAAM,UAAUH,EAASE,CAAM,EAC9CA,EAAO,gBAAkB,UAC3B1D,EAAQgB,CAAE,EAAE,WAAa,OAChB,OAAOyC,GAAW,SAC3BzD,EAAQgB,CAAE,EAAE,WAAaV,EAAamD,CAAM,EAE5CzD,EAAQgB,CAAE,EAAE,WAAa,SAGjC,CAAG,EACDgC,GAAYC,EAAK,WAAW,CAC9B,EACMW,GAAgB,SAASX,EAAKY,EAAcC,EAAc,CAC9Db,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASjC,EAAI,CAClC+C,GAAa/C,EAAI6C,EAAcC,CAAY,EAC3C9D,EAAQgB,CAAE,EAAE,aAAe,EAC/B,CAAG,EACDgC,GAAYC,EAAK,WAAW,CAC9B,EACMc,GAAe,SAASC,EAAOH,EAAcC,EAAc,CAK/D,GAJerD,IACJ,gBAAkB,SAGzBoD,IAAiB,OACnB,OAEF,MAAM7C,EAAKgD,EACX,GAAIhE,EAAQgB,CAAE,IAAM,OAAQ,CAC1B,MAAMiD,EAASzC,GAAYR,CAAE,EAC7B,IAAIkD,EAAU,CAAA,EACd,GAAI,OAAOJ,GAAiB,SAAU,CACpCI,EAAUJ,EAAa,MAAM,+BAA+B,EAC5D,QAASxE,EAAI,EAAGA,EAAI4E,EAAQ,OAAQ5E,IAAK,CACvC,IAAI6E,EAAOD,EAAQ5E,CAAC,EAAE,KAAI,EACtB6E,EAAK,OAAO,CAAC,IAAM,KAAOA,EAAK,OAAOA,EAAK,OAAS,CAAC,IAAM,MAC7DA,EAAOA,EAAK,OAAO,EAAGA,EAAK,OAAS,CAAC,GAEvCD,EAAQ5E,CAAC,EAAI6E,CACd,CACF,CACGD,EAAQ,SAAW,GACrBA,EAAQ,KAAKD,CAAM,EAErB5D,EAAU,KAAK,UAAW,CACxB,MAAM+D,EAAO,SAAS,cAAc,QAAQH,CAAM,IAAI,EAClDG,IAAS,MACXA,EAAK,iBACH,QACA,UAAW,CACTT,GAAM,QAAQE,EAAc,GAAGK,CAAO,CACvC,EACD,EACV,CAEA,CAAK,CACF,CACH,EACMG,GAAgB,SAASC,EAAS,CACtCjE,EAAU,QAAQ,SAASkE,EAAK,CAC9BA,EAAID,CAAO,CACf,CAAG,CACH,EACME,GAAW,CACf,KAAM,EACN,YAAa,CACf,EACMC,GAAe,CACnB,YAAa,EACb,UAAW,EACX,YAAa,EACb,WAAY,EACZ,SAAU,CACZ,EACM/C,GAAgB,SAAS4C,EAAS,CACtC,IAAII,EAAcC,EAAO,iBAAiB,GACrCD,EAAY,SAAWA,GAAa,CAAC,EAAE,CAAC,IAAM,OACjDA,EAAcC,EAAO,MAAM,EAAE,OAAO,KAAK,EAAE,KAAK,QAAS,gBAAgB,EAAE,MAAM,UAAW,CAAC,GAEnFA,EAAOL,CAAO,EAAE,OAAO,KAAK,EACtB,UAAU,QAAQ,EAC9B,GAAG,YAAa,UAAW,CAC/B,MAAMM,EAAKD,EAAO,IAAI,EAEtB,GADcC,EAAG,KAAK,OAAO,IACf,KACZ,OAEF,MAAMC,EAAO,KAAK,wBAClBH,EAAY,WAAY,EAAC,SAAS,GAAG,EAAE,MAAM,UAAW,IAAI,EAC5DA,EAAY,KAAKE,EAAG,KAAK,OAAO,CAAC,EAAE,MAAM,OAAQ,OAAO,QAAUC,EAAK,MAAQA,EAAK,MAAQA,EAAK,MAAQ,EAAI,IAAI,EAAE,MAAM,MAAO,OAAO,QAAUA,EAAK,IAAM,GAAK,SAAS,KAAK,UAAY,IAAI,EAC/LH,EAAY,KAAKA,EAAY,KAAI,EAAG,QAAQ,gBAAiB,OAAO,CAAC,EACrEE,EAAG,QAAQ,QAAS,EAAI,CAC5B,CAAG,EAAE,GAAG,WAAY,UAAW,CAC3BF,EAAY,WAAY,EAAC,SAAS,GAAG,EAAE,MAAM,UAAW,CAAC,EAC9CC,EAAO,IAAI,EACnB,QAAQ,QAAS,EAAK,CAC7B,CAAG,CACH,EACAtE,EAAU,KAAKqB,EAAa,EAC5B,IAAIoD,GAAY,KAChB,MAAMC,GAAe,IAAMD,GACrBE,GAAgBC,GAAQ,CAC5BH,GAAYG,CACd,EACMC,GAAe,SAASlE,EAAI,CAC5Bb,EAAWa,CAAE,IAAM,SAGvBb,EAAWa,CAAE,EAAI,CACf,GAAAA,EACA,QAAS,CAAE,EACX,SAAU,CAAE,EACZ,MAAOlB,GAAwBkB,EAAK,IAAMZ,EAC9C,EACEA,KACF,EACM+E,GAAe,SAASC,EAAM,CAClC,OAAOjF,EAAWiF,CAAI,CACxB,EACMC,GAAgB,UAAW,CAC/B,OAAOlF,CACT,EACMmF,GAAwB,SAAStE,EAAIuE,EAAY,CACjDpF,EAAWa,CAAE,IAAM,QACrBuE,EAAW,IAAKrE,GAAc,CAC5Bf,EAAWa,CAAE,EAAE,QAAQE,CAAS,EAAIlB,EAAQkB,CAAS,EACrD,OAAOlB,EAAQkB,CAAS,EACxBhB,IACN,CAAK,CAEL,EACMsF,GAAK,CACT,eAAA9E,GACA,YAAA+E,GACA,YAAAC,GACA,kBAAAC,GACA,kBAAAC,GACA,UAAW,IAAMnF,EAAS,EAAG,MAC7B,SAAAa,GACA,cAAA+C,GACA,MAAA5C,GACA,SAAAG,GACA,WAAAC,GACA,SAAAE,GACA,cAAAI,GACA,QAAAS,GACA,aAAAd,GACA,YAAAE,GACA,aAAA+C,GACA,aAAAC,GACA,UAAA1C,GACA,WAAAI,GACA,aAAAK,GACA,SAAAyB,GACA,aAAAC,GACA,cAAAb,GACA,YAAAZ,GACA,QAAAO,GACA,WAAAF,GACA,WAAAF,GACA,YAAA3B,GACA,gBAAAqE,GACA,gBAAAC,GACA,cAAA1E,GACA,aAAA8D,GACA,sBAAAI,GACA,aAAAH,GACA,cAAAE,EACF,EACMU,GAAaC,GAAY;AAAA,UACrBA,EAAQ,UAAU;AAAA,UAClBA,EAAQ,SAAS;AAAA;AAAA,iBAEVA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAUxBA,EAAQ,SAAS;AAAA;AAAA;AAAA,UAGlBA,EAAQ,OAAO;AAAA;AAAA;AAAA,UAGfA,EAAQ,SAAS;AAAA;AAAA;AAAA,gBAGXA,EAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWnBA,EAAQ,OAAO;AAAA,cACbA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMpBA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASpBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,YAIlBA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOpBA,EAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKfA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAcnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWnBA,EAAQ,SAAS;AAAA;AAAA,EAGrBC,GAASF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js b/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js deleted file mode 100644 index f4976f5..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js +++ /dev/null @@ -1,208 +0,0 @@ -import{c as Y,g as Ht,s as Xt,a as Kt,b as Wt,v as Jt,x as qt,m as Qt,l as v,j as ht,z as Zt,aH as te}from"./index-jpNTxDe4.js";var mt=function(){var t=function(D,r,a,i){for(a=a||{},i=D.length;i--;a[D[i]]=r);return a},s=[1,2],n=[1,3],h=[1,5],u=[1,7],f=[2,5],p=[1,15],x=[1,17],d=[1,21],k=[1,22],T=[1,23],G=[1,24],R=[1,37],j=[1,25],U=[1,26],z=[1,27],M=[1,28],H=[1,29],X=[1,32],K=[1,33],W=[1,34],J=[1,35],q=[1,36],Q=[1,39],Z=[1,40],tt=[1,41],et=[1,42],w=[1,38],Ct=[1,45],o=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],st=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],ut=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],At=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],dt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement: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,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"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:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(r,a,i,l,y,e,B){var c=e.length-1;switch(y){case 4:return l.setRootDoc(e[c]),e[c];case 5:this.$=[];break;case 6:e[c]!="nl"&&(e[c-1].push(e[c]),this.$=e[c-1]);break;case 7:case 8:this.$=e[c];break;case 9:this.$="nl";break;case 12:this.$=e[c];break;case 13:const $=e[c-1];$.description=l.trimColon(e[c]),this.$=$;break;case 14:this.$={stmt:"relation",state1:e[c-2],state2:e[c]};break;case 15:const pt=l.trimColon(e[c]);this.$={stmt:"relation",state1:e[c-3],state2:e[c-1],description:pt};break;case 19:this.$={stmt:"state",id:e[c-3],type:"default",description:"",doc:e[c-1]};break;case 20:var C=e[c],O=e[c-2].trim();if(e[c].match(":")){var it=e[c].split(":");C=it[0],O=[O,it[1]]}this.$={stmt:"state",id:C,type:"default",description:O};break;case 21:this.$={stmt:"state",id:e[c-3],type:"default",description:e[c-5],doc:e[c-1]};break;case 22:this.$={stmt:"state",id:e[c],type:"fork"};break;case 23:this.$={stmt:"state",id:e[c],type:"join"};break;case 24:this.$={stmt:"state",id:e[c],type:"choice"};break;case 25:this.$={stmt:"state",id:l.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:e[c-1].trim(),note:{position:e[c-2].trim(),text:e[c].trim()}};break;case 30:this.$=e[c].trim(),l.setAccTitle(this.$);break;case 31:case 32:this.$=e[c].trim(),l.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:e[c-1].trim(),classes:e[c].trim()};break;case 35:this.$={stmt:"applyClass",id:e[c-1].trim(),styleClass:e[c].trim()};break;case 38:l.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:l.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:l.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:l.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:e[c].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:e[c-2].trim(),classes:[e[c].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:e[c-2].trim(),classes:[e[c].trim()],type:"default",description:""};break;case 50:l.parseDirective("%%{","open_directive");break;case 51:l.parseDirective(e[c],"type_directive");break;case 52:e[c]=e[c].trim().replace(/'/g,'"'),l.parseDirective(e[c],"arg_directive");break;case 53:l.parseDirective("}%%","close_directive","state");break}},table:[{3:1,4:s,5:n,6:4,7:h,45:6,60:u},{1:[3]},{3:8,4:s,5:n,6:4,7:h,45:6,60:u},{3:9,4:s,5:n,6:4,7:h,45:6,60:u},{3:10,4:s,5:n,6:4,7:h,45:6,60:u},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],f,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:p,5:x,6:30,9:14,10:16,11:18,12:19,13:20,16:d,17:k,19:T,22:G,24:R,25:j,26:U,27:z,28:M,29:H,32:31,33:X,35:K,37:W,38:J,42:q,45:6,50:Q,51:Z,52:tt,53:et,56:w,60:u},{47:43,48:[1,44],63:Ct},t([48,63],[2,51]),t(o,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:d,17:k,19:T,22:G,24:R,25:j,26:U,27:z,28:M,29:H,32:31,33:X,35:K,37:W,38:J,42:q,45:6,50:Q,51:Z,52:tt,53:et,56:w,60:u},t(o,[2,8]),t(o,[2,9]),t(o,[2,10]),t(o,[2,11]),t(o,[2,12],{14:[1,47],15:[1,48]}),t(o,[2,16]),{18:[1,49]},t(o,[2,18],{20:[1,50]}),{23:[1,51]},t(o,[2,22]),t(o,[2,23]),t(o,[2,24]),t(o,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},t(o,[2,28]),t(o,[2,29]),{34:[1,56]},{36:[1,57]},t(o,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},t(st,[2,44],{57:[1,61]}),t(st,[2,45],{57:[1,62]}),t(o,[2,38]),t(o,[2,39]),t(o,[2,40]),t(o,[2,41]),t(ut,[2,36]),{49:63,62:[1,64]},t(ut,[2,53]),t(o,[2,7]),t(o,[2,13]),{13:65,24:R,56:w},t(o,[2,17]),t(At,f,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},t(o,[2,30]),t(o,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:Ct},{63:[2,52]},t(o,[2,14],{14:[1,76]}),{4:p,5:x,6:30,9:14,10:16,11:18,12:19,13:20,16:d,17:k,19:T,21:[1,77],22:G,24:R,25:j,26:U,27:z,28:M,29:H,32:31,33:X,35:K,37:W,38:J,42:q,45:6,50:Q,51:Z,52:tt,53:et,56:w,60:u},t(o,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},t(o,[2,33]),t(o,[2,34]),t(o,[2,35]),t(st,[2,46]),t(st,[2,47]),t(ut,[2,37]),t(o,[2,15]),t(o,[2,19]),t(At,f,{8:81}),t(o,[2,26]),t(o,[2,27]),{4:p,5:x,6:30,9:14,10:16,11:18,12:19,13:20,16:d,17:k,19:T,21:[1,82],22:G,24:R,25:j,26:U,27:z,28:M,29:H,32:31,33:X,35:K,37:W,38:J,42:q,45:6,50:Q,51:Z,52:tt,53:et,56:w,60:u},t(o,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(r,a){if(a.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=a,i}},parse:function(r){var a=this,i=[0],l=[],y=[null],e=[],B=this.table,c="",C=0,O=0,it=2,$=1,pt=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,yt)&&(A.yy[yt]=this.yy[yt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var St=S.yylloc;e.push(St);var zt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var E;return E=l.pop()||S.lex()||$,typeof E!="number"&&(E instanceof Array&&(l=E,E=l.pop()),E=a.symbols_[E]||E),E}for(var _,L,m,gt,N={},rt,b,Lt,nt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=Mt()),m=B[L]&&B[L][_]),typeof m>"u"||!m.length||!m[0]){var _t="";nt=[];for(rt in B[L])this.terminals_[rt]&&rt>it&&nt.push("'"+this.terminals_[rt]+"'");S.showPosition?_t="Parse error on line "+(C+1)+`: -`+S.showPosition()+` -Expecting `+nt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":_t="Parse error on line "+(C+1)+": Unexpected "+(_==$?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(_t,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:St,expected:nt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),y.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,c=S.yytext,C=S.yylineno,St=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=y[y.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},zt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),gt=this.performAction.apply(N,[c,O,C,A.yy,m[1],y,e].concat(pt)),typeof gt<"u")return gt;b&&(i=i.slice(0,-1*b*2),y=y.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),y.push(N.$),e.push(N._$),Lt=B[i[i.length-2]][i[i.length-1]],i.push(Lt);break;case 3:return!0}}return!0}},Ut=function(){var D={EOF:1,parseError:function(a,i){if(this.yy.parser)this.yy.parser.parseError(a,i);else throw new Error(a)},setInput:function(r,a){return this.yy=a||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},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var a=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var l=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 y=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===l.length?this.yylloc.first_column:0)+l[l.length-i.length].length-i[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` -`+a+"^"},test_match:function(r,a){var i,l,y;if(this.options.backtrack_lexer&&(y={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&&(y.yylloc.range=this.yylloc.range.slice(0))),l=r[0].match(/(?:\r\n?|\n).*/g),l&&(this.yylineno+=l.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:l?l[l.length-1].length-l[l.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],i=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var e in y)this[e]=y[e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,a,i,l;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),e=0;ea[0].length)){if(a=i,l=e,this.options.backtrack_lexer){if(r=this.test_match(i,y[e]),r!==!1)return r;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(r=this.test_match(a,y[l]),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})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(a,i,l,y){switch(l){case 0:return 41;case 1:return 50;case 2:return 51;case 3:return 52;case 4:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:break;case 11:break;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:break;case 17:return this.pushState("SCALE"),17;case 18:return 18;case 19:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 25:this.popState();break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 34:return this.pushState("SCALE"),17;case 35:return 18;case 36:this.popState();break;case 37:this.pushState("STATE");break;case 38:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 39:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),26;case 40:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),27;case 41:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 42:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),26;case 43:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),27;case 44:return 50;case 45:return 51;case 46:return 52;case 47:return 53;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:return this.popState(),"ID";case 51:this.popState();break;case 52:return"STATE_DESCR";case 53:return 19;case 54:this.popState();break;case 55:return this.popState(),this.pushState("struct"),20;case 56:break;case 57:return this.popState(),21;case 58:break;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 64:break;case 65:return"NOTE_TEXT";case 66:return this.popState(),"ID";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),i.yytext=i.yytext.substr(2).trim(),31;case 69:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),31;case 70:return 7;case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return i.yytext=i.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 79:return 5;case 80:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?: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;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}};return D}();dt.lexer=Ut;function ft(){this.yy={}}return ft.prototype=dt,dt.Parser=ft,new ft}();mt.parser=mt;const Ie=mt,ee="LR",Oe="TB",Tt="state",Rt="relation",se="classDef",ie="applyClass",vt="default",re="divider",xt="[*]",wt="start",Bt=xt,$t="end",It="color",Ot="fill",ne="bgFill",ae=",";function Pt(){return{}}let Vt=ee,lt=[],P=Pt();const Ft=()=>({relations:[],states:{},documents:{}});let ot={root:Ft()},g=ot.root,V=0,Nt=0;const ce={LINE:0,DOTTED_LINE:1},le={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},at=t=>JSON.parse(JSON.stringify(t)),oe=function(t,s,n){Qt.parseDirective(this,t,s,n)},he=t=>{v.info("Setting root doc",t),lt=t},ue=()=>lt,ct=(t,s,n)=>{if(s.stmt===Rt)ct(t,s.state1,!0),ct(t,s.state2,!1);else if(s.stmt===Tt&&(s.id==="[*]"?(s.id=n?t.id+"_start":t.id+"_end",s.start=n):s.id=s.id.trim()),s.doc){const h=[];let u=[],f;for(f=0;f0&&u.length>0){const p={stmt:Tt,id:te(),type:"divider",doc:at(u)};h.push(at(p)),s.doc=h}s.doc.forEach(p=>ct(s,p,!0))}},de=()=>(ct({id:"root"},{id:"root",doc:lt},!0),{id:"root",doc:lt}),fe=t=>{let s;t.doc?s=t.doc:s=t,v.info(s),Yt(!0),v.info("Extract",s),s.forEach(n=>{switch(n.stmt){case Tt:I(n.id.trim(),n.type,n.doc,n.description,n.note,n.classes,n.styles,n.textStyles);break;case Rt:Gt(n.state1,n.state2,n.description);break;case se:jt(n.id.trim(),n.classes);break;case ie:Dt(n.id.trim(),n.styleClass);break}})},I=function(t,s=vt,n=null,h=null,u=null,f=null,p=null,x=null){const d=t==null?void 0:t.trim();g.states[d]===void 0?(v.info("Adding state ",d,h),g.states[d]={id:d,descriptions:[],type:s,doc:n,note:u,classes:[],styles:[],textStyles:[]}):(g.states[d].doc||(g.states[d].doc=n),g.states[d].type||(g.states[d].type=s)),h&&(v.info("Setting state description",d,h),typeof h=="string"&&Et(d,h.trim()),typeof h=="object"&&h.forEach(k=>Et(d,k.trim()))),u&&(g.states[d].note=u,g.states[d].note.text=ht.sanitizeText(g.states[d].note.text,Y())),f&&(v.info("Setting state classes",d,f),(typeof f=="string"?[f]:f).forEach(T=>Dt(d,T.trim()))),p&&(v.info("Setting state styles",d,p),(typeof p=="string"?[p]:p).forEach(T=>Ee(d,T.trim()))),x&&(v.info("Setting state styles",d,p),(typeof x=="string"?[x]:x).forEach(T=>ve(d,T.trim())))},Yt=function(t){ot={root:Ft()},g=ot.root,V=0,P=Pt(),t||Zt()},F=function(t){return g.states[t]},pe=function(){return g.states},ye=function(){v.info("Documents = ",ot)},Se=function(){return g.relations};function kt(t=""){let s=t;return t===xt&&(V++,s=`${wt}${V}`),s}function bt(t="",s=vt){return t===xt?wt:s}function ge(t=""){let s=t;return t===Bt&&(V++,s=`${$t}${V}`),s}function _e(t="",s=vt){return t===Bt?$t:s}function me(t,s,n){let h=kt(t.id.trim()),u=bt(t.id.trim(),t.type),f=kt(s.id.trim()),p=bt(s.id.trim(),s.type);I(h,u,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),I(f,p,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),g.relations.push({id1:h,id2:f,relationTitle:ht.sanitizeText(n,Y())})}const Gt=function(t,s,n){if(typeof t=="object")me(t,s,n);else{const h=kt(t.trim()),u=bt(t),f=ge(s.trim()),p=_e(s);I(h,u),I(f,p),g.relations.push({id1:h,id2:f,title:ht.sanitizeText(n,Y())})}},Et=function(t,s){const n=g.states[t],h=s.startsWith(":")?s.replace(":","").trim():s;n.descriptions.push(ht.sanitizeText(h,Y()))},Te=function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},ke=()=>(Nt++,"divider-id-"+Nt),jt=function(t,s=""){P[t]===void 0&&(P[t]={id:t,styles:[],textStyles:[]});const n=P[t];s!=null&&s.split(ae).forEach(h=>{const u=h.replace(/([^;]*);/,"$1").trim();if(h.match(It)){const p=u.replace(Ot,ne).replace(It,Ot);n.textStyles.push(p)}n.styles.push(u)})},be=function(){return P},Dt=function(t,s){t.split(",").forEach(function(n){let h=F(n);if(h===void 0){const u=n.trim();I(u),h=F(u)}h.classes.push(s)})},Ee=function(t,s){const n=F(t);n!==void 0&&n.textStyles.push(s)},ve=function(t,s){const n=F(t);n!==void 0&&n.textStyles.push(s)},xe=()=>Vt,De=t=>{Vt=t},Ce=t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),Ne={parseDirective:oe,getConfig:()=>Y().state,addState:I,clear:Yt,getState:F,getStates:pe,getRelations:Se,getClasses:be,getDirection:xe,addRelation:Gt,getDividerId:ke,setDirection:De,cleanupLabel:Te,lineType:ce,relationType:le,logDocuments:ye,getRootDoc:ue,setRootDoc:he,getRootDocV2:de,extract:fe,trimColon:Ce,getAccTitle:Ht,setAccTitle:Xt,getAccDescription:Kt,setAccDescription:Wt,addStyleClass:jt,setCssClass:Dt,addDescription:Et,setDiagramTitle:Jt,getDiagramTitle:qt},Ae=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 .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}; -} - -.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}; -} -`,Re=Ae;export{vt as D,Rt as S,re as a,Tt as b,Oe as c,Ne as d,Ie as p,Re as s}; -//# sourceMappingURL=styles-fa41df25-AN4ki2j_.js.map diff --git a/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js.map b/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js.map deleted file mode 100644 index 9bc1453..0000000 --- a/excalidraw/excalidraw-app/build/assets/styles-fa41df25-AN4ki2j_.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles-fa41df25-AN4ki2j_.js","sources":["../../../node_modules/mermaid/dist/styles-fa41df25.js"],"sourcesContent":["import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, r as setDiagramTitle, t as getDiagramTitle, m as mermaidAPI, l as log, e as common, v as clear$1, F as generateId } from \"./mermaid-b0ad2de1.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 37], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 32], $Vi = [1, 33], $Vj = [1, 34], $Vk = [1, 35], $Vl = [1, 36], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 38], $Vr = [1, 45], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vu = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vv = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NL\": 5, \"directive\": 6, \"SD\": 7, \"document\": 8, \"line\": 9, \"statement\": 10, \"classDefStatement\": 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, \"classDef\": 38, \"CLASSDEF_ID\": 39, \"CLASSDEF_STYLEOPTS\": 40, \"DEFAULT\": 41, \"class\": 42, \"CLASSENTITY_IDS\": 43, \"STYLECLASS\": 44, \"openDirective\": 45, \"typeDirective\": 46, \"closeDirective\": 47, \":\": 48, \"argDirective\": 49, \"direction_tb\": 50, \"direction_bt\": 51, \"direction_rl\": 52, \"direction_lr\": 53, \"eol\": 54, \";\": 55, \"EDGE_STATE\": 56, \"STYLE_SEPARATOR\": 57, \"left_of\": 58, \"right_of\": 59, \"open_directive\": 60, \"type_directive\": 61, \"arg_directive\": 62, \"close_directive\": 63, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NL\", 7: \"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: \"classDef\", 39: \"CLASSDEF_ID\", 40: \"CLASSDEF_STYLEOPTS\", 41: \"DEFAULT\", 42: \"class\", 43: \"CLASSENTITY_IDS\", 44: \"STYLECLASS\", 48: \":\", 50: \"direction_tb\", 51: \"direction_bt\", 52: \"direction_rl\", 53: \"direction_lr\", 55: \";\", 56: \"EDGE_STATE\", 57: \"STYLE_SEPARATOR\", 58: \"left_of\", 59: \"right_of\", 60: \"open_directive\", 61: \"type_directive\", 62: \"arg_directive\", 63: \"close_directive\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.setRootDoc($$[$0]);\n return $$[$0];\n case 5:\n this.$ = [];\n break;\n case 6:\n if ($$[$0] != \"nl\") {\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n }\n break;\n case 7:\n case 8:\n this.$ = $$[$0];\n break;\n case 9:\n this.$ = \"nl\";\n break;\n case 12:\n this.$ = $$[$0];\n break;\n case 13:\n const stateStmt = $$[$0 - 1];\n stateStmt.description = yy.trimColon($$[$0]);\n this.$ = stateStmt;\n break;\n case 14:\n this.$ = { stmt: \"relation\", state1: $$[$0 - 2], state2: $$[$0] };\n break;\n case 15:\n const relDescription = yy.trimColon($$[$0]);\n this.$ = { stmt: \"relation\", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };\n break;\n case 19:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: \"\", doc: $$[$0 - 1] };\n break;\n case 20:\n var id = $$[$0];\n var description = $$[$0 - 2].trim();\n if ($$[$0].match(\":\")) {\n var parts = $$[$0].split(\":\");\n id = parts[0];\n description = [description, parts[1]];\n }\n this.$ = { stmt: \"state\", id, type: \"default\", description };\n break;\n case 21:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: $$[$0 - 5], doc: $$[$0 - 1] };\n break;\n case 22:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"fork\" };\n break;\n case 23:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"join\" };\n break;\n case 24:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"choice\" };\n break;\n case 25:\n this.$ = { stmt: \"state\", id: yy.getDividerId(), type: \"divider\" };\n break;\n case 26:\n this.$ = { stmt: \"state\", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };\n break;\n case 30:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 31:\n case 32:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 33:\n case 34:\n this.$ = { stmt: \"classDef\", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };\n break;\n case 35:\n this.$ = { stmt: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n yy.setDirection(\"TB\");\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 39:\n yy.setDirection(\"BT\");\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 40:\n yy.setDirection(\"RL\");\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 41:\n yy.setDirection(\"LR\");\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n case 44:\n case 45:\n this.$ = { stmt: \"state\", id: $$[$0].trim(), type: \"default\", description: \"\" };\n break;\n case 46:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 47:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 50:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 51:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 52:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 53:\n yy.parseDirective(\"}%%\", \"close_directive\", \"state\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $V4, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, { 47: 43, 48: [1, 44], 63: $Vr }, o([48, 63], [2, 51]), o($Vs, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 47], 15: [1, 48] }), o($Vs, [2, 16]), { 18: [1, 49] }, o($Vs, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, o($Vs, [2, 28]), o($Vs, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, o($Vs, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, o($Vt, [2, 44], { 57: [1, 61] }), o($Vt, [2, 45], { 57: [1, 62] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vu, [2, 36]), { 49: 63, 62: [1, 64] }, o($Vu, [2, 53]), o($Vs, [2, 7]), o($Vs, [2, 13]), { 13: 65, 24: $Vb, 56: $Vq }, o($Vs, [2, 17]), o($Vv, $V4, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 30]), o($Vs, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: $Vr }, { 63: [2, 52] }, o($Vs, [2, 14], { 14: [1, 76] }), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 77], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, o($Vs, [2, 33]), o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vu, [2, 37]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vv, $V4, { 8: 81 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 82], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 21])],\n defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 41;\n case 1:\n return 50;\n case 2:\n return 51;\n case 3:\n return 52;\n case 4:\n return 53;\n case 5:\n this.begin(\"open_directive\");\n return 60;\n case 6:\n this.begin(\"type_directive\");\n return 61;\n case 7:\n this.popState();\n this.begin(\"arg_directive\");\n return 48;\n case 8:\n this.popState();\n this.popState();\n return 63;\n case 9:\n return 62;\n case 10:\n break;\n case 11:\n break;\n case 12:\n return 5;\n case 13:\n break;\n case 14:\n break;\n case 15:\n break;\n case 16:\n break;\n case 17:\n this.pushState(\"SCALE\");\n return 17;\n case 18:\n return 18;\n case 19:\n this.popState();\n break;\n case 20:\n this.begin(\"acc_title\");\n return 33;\n case 21:\n this.popState();\n return \"acc_title_value\";\n case 22:\n this.begin(\"acc_descr\");\n return 35;\n case 23:\n this.popState();\n return \"acc_descr_value\";\n case 24:\n this.begin(\"acc_descr_multiline\");\n break;\n case 25:\n this.popState();\n break;\n case 26:\n return \"acc_descr_multiline_value\";\n case 27:\n this.pushState(\"CLASSDEF\");\n return 38;\n case 28:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n case 29:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 39;\n case 30:\n this.popState();\n return 40;\n case 31:\n this.pushState(\"CLASS\");\n return 42;\n case 32:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 43;\n case 33:\n this.popState();\n return 44;\n case 34:\n this.pushState(\"SCALE\");\n return 17;\n case 35:\n return 18;\n case 36:\n this.popState();\n break;\n case 37:\n this.pushState(\"STATE\");\n break;\n case 38:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n case 39:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n case 40:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n case 41:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n case 42:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n case 43:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n case 44:\n return 50;\n case 45:\n return 51;\n case 46:\n return 52;\n case 47:\n return 53;\n case 48:\n this.pushState(\"STATE_STRING\");\n break;\n case 49:\n this.pushState(\"STATE_ID\");\n return \"AS\";\n case 50:\n this.popState();\n return \"ID\";\n case 51:\n this.popState();\n break;\n case 52:\n return \"STATE_DESCR\";\n case 53:\n return 19;\n case 54:\n this.popState();\n break;\n case 55:\n this.popState();\n this.pushState(\"struct\");\n return 20;\n case 56:\n break;\n case 57:\n this.popState();\n return 21;\n case 58:\n break;\n case 59:\n this.begin(\"NOTE\");\n return 29;\n case 60:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 58;\n case 61:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 59;\n case 62:\n this.popState();\n this.pushState(\"FLOATING_NOTE\");\n break;\n case 63:\n this.popState();\n this.pushState(\"FLOATING_NOTE_ID\");\n return \"AS\";\n case 64:\n break;\n case 65:\n return \"NOTE_TEXT\";\n case 66:\n this.popState();\n return \"ID\";\n case 67:\n this.popState();\n this.pushState(\"NOTE_TEXT\");\n return 24;\n case 68:\n this.popState();\n yy_.yytext = yy_.yytext.substr(2).trim();\n return 31;\n case 69:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 31;\n case 70:\n return 7;\n case 71:\n return 7;\n case 72:\n return 16;\n case 73:\n return 56;\n case 74:\n return 24;\n case 75:\n yy_.yytext = yy_.yytext.trim();\n return 14;\n case 76:\n return 15;\n case 77:\n return 28;\n case 78:\n return 57;\n case 79:\n return 5;\n case 80:\n return \"INVALID\";\n }\n },\n rules: [/^(?:default\\b)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\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, /^(?: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;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"LINE\": { \"rules\": [14, 15], \"inclusive\": false }, \"close_directive\": { \"rules\": [14, 15], \"inclusive\": false }, \"arg_directive\": { \"rules\": [8, 9, 14, 15], \"inclusive\": false }, \"type_directive\": { \"rules\": [7, 8, 14, 15], \"inclusive\": false }, \"open_directive\": { \"rules\": [6, 14, 15], \"inclusive\": false }, \"struct\": { \"rules\": [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], \"inclusive\": false }, \"FLOATING_NOTE_ID\": { \"rules\": [66], \"inclusive\": false }, \"FLOATING_NOTE\": { \"rules\": [63, 64, 65], \"inclusive\": false }, \"NOTE_TEXT\": { \"rules\": [68, 69], \"inclusive\": false }, \"NOTE_ID\": { \"rules\": [67], \"inclusive\": false }, \"NOTE\": { \"rules\": [60, 61, 62], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [33], \"inclusive\": false }, \"CLASS\": { \"rules\": [32], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [30], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [28, 29], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [25, 26], \"inclusive\": false }, \"acc_descr\": { \"rules\": [23], \"inclusive\": false }, \"acc_title\": { \"rules\": [21], \"inclusive\": false }, \"SCALE\": { \"rules\": [18, 19, 35, 36], \"inclusive\": false }, \"ALIAS\": { \"rules\": [], \"inclusive\": false }, \"STATE_ID\": { \"rules\": [50], \"inclusive\": false }, \"STATE_STRING\": { \"rules\": [51, 52], \"inclusive\": false }, \"FORK_STATE\": { \"rules\": [], \"inclusive\": false }, \"STATE\": { \"rules\": [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], \"inclusive\": false }, \"ID\": { \"rules\": [14, 15], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_DIAGRAM_DIRECTION = \"LR\";\nconst DEFAULT_NESTED_DOC_DIR = \"TB\";\nconst STMT_STATE = \"state\";\nconst STMT_RELATION = \"relation\";\nconst STMT_CLASSDEF = \"classDef\";\nconst STMT_APPLYCLASS = \"applyClass\";\nconst DEFAULT_STATE_TYPE = \"default\";\nconst DIVIDER_TYPE = \"divider\";\nconst START_NODE = \"[*]\";\nconst START_TYPE = \"start\";\nconst END_NODE = START_NODE;\nconst END_TYPE = \"end\";\nconst COLOR_KEYWORD = \"color\";\nconst FILL_KEYWORD = \"fill\";\nconst BG_FILL = \"bgFill\";\nconst STYLECLASS_SEP = \",\";\nfunction newClassesList() {\n return {};\n}\nlet direction = DEFAULT_DIAGRAM_DIRECTION;\nlet rootDoc = [];\nlet classes = newClassesList();\nconst newDoc = () => {\n return {\n relations: [],\n states: {},\n documents: {}\n };\n};\nlet documents = {\n root: newDoc()\n};\nlet currentDocument = documents.root;\nlet startEndCount = 0;\nlet dividerCnt = 0;\nconst lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nconst relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3\n};\nconst clone = (o) => JSON.parse(JSON.stringify(o));\nconst parseDirective = function(statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\nconst setRootDoc = (o) => {\n log.info(\"Setting root doc\", o);\n rootDoc = o;\n};\nconst getRootDoc = () => rootDoc;\nconst docTranslator = (parent, node, first) => {\n if (node.stmt === STMT_RELATION) {\n docTranslator(parent, node.state1, true);\n docTranslator(parent, node.state2, false);\n } else {\n if (node.stmt === STMT_STATE) {\n if (node.id === \"[*]\") {\n node.id = first ? parent.id + \"_start\" : parent.id + \"_end\";\n node.start = first;\n } else {\n node.id = node.id.trim();\n }\n }\n if (node.doc) {\n const doc = [];\n let currentDoc = [];\n let i;\n for (i = 0; i < node.doc.length; i++) {\n if (node.doc[i].type === DIVIDER_TYPE) {\n const newNode = clone(node.doc[i]);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(node.doc[i]);\n }\n }\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: \"divider\",\n doc: clone(currentDoc)\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n node.doc.forEach((docNode) => docTranslator(node, docNode, true));\n }\n }\n};\nconst getRootDocV2 = () => {\n docTranslator({ id: \"root\" }, { id: \"root\", doc: rootDoc }, true);\n return { id: \"root\", doc: rootDoc };\n};\nconst extract = (_doc) => {\n let doc;\n if (_doc.doc) {\n doc = _doc.doc;\n } else {\n doc = _doc;\n }\n log.info(doc);\n clear(true);\n log.info(\"Extract\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n addState(\n item.id.trim(),\n item.type,\n item.doc,\n item.description,\n item.note,\n item.classes,\n item.styles,\n item.textStyles\n );\n break;\n case STMT_RELATION:\n addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_APPLYCLASS:\n setCssClass(item.id.trim(), item.styleClass);\n break;\n }\n });\n};\nconst addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) {\n const trimmedId = id == null ? void 0 : id.trim();\n if (currentDocument.states[trimmedId] === void 0) {\n log.info(\"Adding state \", trimmedId, descr);\n currentDocument.states[trimmedId] = {\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: []\n };\n } else {\n if (!currentDocument.states[trimmedId].doc) {\n currentDocument.states[trimmedId].doc = doc;\n }\n if (!currentDocument.states[trimmedId].type) {\n currentDocument.states[trimmedId].type = type;\n }\n }\n if (descr) {\n log.info(\"Setting state description\", trimmedId, descr);\n if (typeof descr === \"string\") {\n addDescription(trimmedId, descr.trim());\n }\n if (typeof descr === \"object\") {\n descr.forEach((des) => addDescription(trimmedId, des.trim()));\n }\n }\n if (note) {\n currentDocument.states[trimmedId].note = note;\n currentDocument.states[trimmedId].note.text = common.sanitizeText(\n currentDocument.states[trimmedId].note.text,\n getConfig()\n );\n }\n if (classes2) {\n log.info(\"Setting state classes\", trimmedId, classes2);\n const classesList = typeof classes2 === \"string\" ? [classes2] : classes2;\n classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));\n }\n if (styles2) {\n log.info(\"Setting state styles\", trimmedId, styles2);\n const stylesList = typeof styles2 === \"string\" ? [styles2] : styles2;\n stylesList.forEach((style) => setStyle(trimmedId, style.trim()));\n }\n if (textStyles) {\n log.info(\"Setting state styles\", trimmedId, styles2);\n const textStylesList = typeof textStyles === \"string\" ? [textStyles] : textStyles;\n textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));\n }\n};\nconst clear = function(saveCommon) {\n documents = {\n root: newDoc()\n };\n currentDocument = documents.root;\n startEndCount = 0;\n classes = newClassesList();\n if (!saveCommon) {\n clear$1();\n }\n};\nconst getState = function(id) {\n return currentDocument.states[id];\n};\nconst getStates = function() {\n return currentDocument.states;\n};\nconst logDocuments = function() {\n log.info(\"Documents = \", documents);\n};\nconst getRelations = function() {\n return currentDocument.relations;\n};\nfunction startIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === START_NODE) {\n startEndCount++;\n fixedId = `${START_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\nfunction startTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === START_NODE ? START_TYPE : type;\n}\nfunction endIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === END_NODE) {\n startEndCount++;\n fixedId = `${END_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\nfunction endTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === END_NODE ? END_TYPE : type;\n}\nfunction addRelationObjs(item1, item2, relationTitle) {\n let id1 = startIdIfNeeded(item1.id.trim());\n let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);\n let id2 = startIdIfNeeded(item2.id.trim());\n let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);\n addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common.sanitizeText(relationTitle, getConfig())\n });\n}\nconst addRelation = function(item1, item2, title) {\n if (typeof item1 === \"object\") {\n addRelationObjs(item1, item2, title);\n } else {\n const id1 = startIdIfNeeded(item1.trim());\n const type1 = startTypeIfNeeded(item1);\n const id2 = endIdIfNeeded(item2.trim());\n const type2 = endTypeIfNeeded(item2);\n addState(id1, type1);\n addState(id2, type2);\n currentDocument.relations.push({\n id1,\n id2,\n title: common.sanitizeText(title, getConfig())\n });\n }\n};\nconst addDescription = function(id, descr) {\n const theState = currentDocument.states[id];\n const _descr = descr.startsWith(\":\") ? descr.replace(\":\", \"\").trim() : descr;\n theState.descriptions.push(common.sanitizeText(_descr, getConfig()));\n};\nconst cleanupLabel = function(label) {\n if (label.substring(0, 1) === \":\") {\n return label.substr(2).trim();\n } else {\n return label.trim();\n }\n};\nconst getDividerId = () => {\n dividerCnt++;\n return \"divider-id-\" + dividerCnt;\n};\nconst addStyleClass = function(id, styleAttributes = \"\") {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n const foundClass = classes[id];\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (attrib.match(COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n};\nconst getClasses = function() {\n return classes;\n};\nconst setCssClass = function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundState = getState(id);\n if (foundState === void 0) {\n const trimmedId = id.trim();\n addState(trimmedId);\n foundState = getState(trimmedId);\n }\n foundState.classes.push(cssClassName);\n });\n};\nconst setStyle = function(itemId, styleText) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.textStyles.push(styleText);\n }\n};\nconst setTextStyle = function(itemId, cssClassName) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.textStyles.push(cssClassName);\n }\n};\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\nconst trimColon = (str) => str && str[0] === \":\" ? str.substr(1).trim() : str.trim();\nconst db = {\n parseDirective,\n getConfig: () => getConfig().state,\n addState,\n clear,\n getState,\n getStates,\n getRelations,\n getClasses,\n getDirection,\n addRelation,\n getDividerId,\n setDirection,\n cleanupLabel,\n lineType,\n relationType,\n logDocuments,\n getRootDoc,\n setRootDoc,\n getRootDocV2,\n extract,\n trimColon,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n addStyleClass,\n setCssClass,\n addDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst getStyles = (options) => `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`;\nconst styles = getStyles;\nexport {\n DEFAULT_STATE_TYPE as D,\n STMT_RELATION as S,\n DIVIDER_TYPE as a,\n STMT_STATE as b,\n DEFAULT_NESTED_DOC_DIR as c,\n db as d,\n parser$1 as p,\n styles as s\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","stateStmt","relDescription","id","description","parts","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","DEFAULT_DIAGRAM_DIRECTION","DEFAULT_NESTED_DOC_DIR","STMT_STATE","STMT_RELATION","STMT_CLASSDEF","STMT_APPLYCLASS","DEFAULT_STATE_TYPE","DIVIDER_TYPE","START_NODE","START_TYPE","END_NODE","END_TYPE","COLOR_KEYWORD","FILL_KEYWORD","BG_FILL","STYLECLASS_SEP","newClassesList","direction","rootDoc","classes","newDoc","documents","currentDocument","startEndCount","dividerCnt","lineType","relationType","clone","parseDirective","statement","context","type","mermaidAPI","setRootDoc","log","getRootDoc","docTranslator","parent","node","first","doc","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","clear","item","addState","addRelation","addStyleClass","setCssClass","descr","note","classes2","styles2","textStyles","trimmedId","addDescription","des","common","getConfig","klass","style","setStyle","textStyle","setTextStyle","saveCommon","clear$1","getState","getStates","logDocuments","getRelations","startIdIfNeeded","fixedId","startTypeIfNeeded","endIdIfNeeded","endTypeIfNeeded","addRelationObjs","item1","item2","relationTitle","id1","type1","id2","type2","title","theState","_descr","cleanupLabel","label","getDividerId","styleAttributes","foundClass","attrib","fixedAttrib","newStyle2","getClasses","itemIds","cssClassName","foundState","itemId","styleText","getDirection","setDirection","dir","trimColon","db","getAccTitle","setAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","getStyles","options","styles"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/svgDraw-0fcc813d-8P1J7hc8.js b/excalidraw/excalidraw-app/build/assets/svgDraw-0fcc813d-8P1J7hc8.js deleted file mode 100644 index f61aba0..0000000 --- a/excalidraw/excalidraw-app/build/assets/svgDraw-0fcc813d-8P1J7hc8.js +++ /dev/null @@ -1,3 +0,0 @@ -import{a5 as k,y as v,l as B,a7 as N}from"./index-jpNTxDe4.js";import{l as I}from"./line-reZX-DPl.js";let S=0;const O=function(i,e,t,a,r){const o=function(d){switch(d){case r.db.relationType.AGGREGATION:return"aggregation";case r.db.relationType.EXTENSION:return"extension";case r.db.relationType.COMPOSITION:return"composition";case r.db.relationType.DEPENDENCY:return"dependency";case r.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter(d=>!Number.isNaN(d.y));const l=e.points,g=I().x(function(d){return d.x}).y(function(d){return d.y}).curve(k),s=i.append("path").attr("d",g(l)).attr("id","edge"+S).attr("class","relation");let p="";a.arrowMarkerAbsolute&&(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\(/g,"\\("),p=p.replace(/\)/g,"\\)")),t.relation.lineType==1&&s.attr("class","relation dashed-line"),t.relation.lineType==10&&s.attr("class","relation dotted-line"),t.relation.type1!=="none"&&s.attr("marker-start","url("+p+"#"+o(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&s.attr("marker-end","url("+p+"#"+o(t.relation.type2)+"End)");let h,n;const c=e.points.length;let b=v.calcLabelPosition(e.points);h=b.x,n=b.y;let x,m,f,T;if(c%2!==0&&c>1){let d=v.calcCardinalityPosition(t.relation.type1!=="none",e.points,e.points[0]),w=v.calcCardinalityPosition(t.relation.type2!=="none",e.points,e.points[c-1]);B.debug("cardinality_1_point "+JSON.stringify(d)),B.debug("cardinality_2_point "+JSON.stringify(w)),x=d.x,m=d.y,f=w.x,T=w.y}if(t.title!==void 0){const d=i.append("g").attr("class","classLabel"),w=d.append("text").attr("class","label").attr("x",h).attr("y",n).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=w;const y=w.node().getBBox();d.insert("rect",":first-child").attr("class","box").attr("x",y.x-a.padding/2).attr("y",y.y-a.padding/2).attr("width",y.width+a.padding).attr("height",y.height+a.padding)}B.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",x).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",f).attr("y",T).attr("fill","black").attr("font-size","6").text(t.relationTitle2),S++},P=function(i,e,t,a){B.debug("Rendering class ",e,t);const r=e.id,o={id:r,label:e.id,width:0,height:0},l=i.append("g").attr("id",a.db.lookUpDomId(r)).attr("class","classGroup");let g;e.link?g=l.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):g=l.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let s=!0;e.annotations.forEach(function(u){const H=g.append("tspan").text("«"+u+"»");s||H.attr("dy",t.textHeight),s=!1});let p=E(e);const h=g.append("tspan").text(p).attr("class","title");s||h.attr("dy",t.textHeight);const n=g.node().getBBox().height,c=l.append("line").attr("x1",0).attr("y1",t.padding+n+t.dividerMargin/2).attr("y2",t.padding+n+t.dividerMargin/2),b=l.append("text").attr("x",t.padding).attr("y",n+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");s=!0,e.members.forEach(function(u){_(b,u,s,t),s=!1});const x=b.node().getBBox(),m=l.append("line").attr("x1",0).attr("y1",t.padding+n+t.dividerMargin+x.height).attr("y2",t.padding+n+t.dividerMargin+x.height),f=l.append("text").attr("x",t.padding).attr("y",n+2*t.dividerMargin+x.height+t.textHeight).attr("fill","white").attr("class","classText");s=!0,e.methods.forEach(function(u){_(f,u,s,t),s=!1});const T=l.node().getBBox();var d=" ";e.cssClasses.length>0&&(d=d+e.cssClasses.join(" "));const y=l.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",T.width+2*t.padding).attr("height",T.height+t.padding+.5*t.dividerMargin).attr("class",d).node().getBBox().width;return g.node().childNodes.forEach(function(u){u.setAttribute("x",(y-u.getBBox().width)/2)}),e.tooltip&&g.insert("title").text(e.tooltip),c.attr("x2",y),m.attr("x2",y),o.width=y,o.height=T.height+t.padding+.5*t.dividerMargin,o},E=function(i){let e=i.id;return i.type&&(e+="<"+i.type+">"),e},A=function(i,e,t,a){B.debug("Rendering note ",e,t);const r=e.id,o={id:r,text:e.text,width:0,height:0},l=i.append("g").attr("id",r).attr("class","classGroup");let g=l.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const s=JSON.parse(`"${e.text}"`).split(` -`);s.forEach(function(c){B.debug(`Adding line: ${c}`),g.append("tspan").text(c).attr("class","title").attr("dy",t.textHeight)});const p=l.node().getBBox(),n=l.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",p.width+2*t.padding).attr("height",p.height+s.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return g.node().childNodes.forEach(function(c){c.setAttribute("x",(n-c.getBBox().width)/2)}),o.width=n,o.height=p.height+s.length*t.textHeight+t.padding+.5*t.dividerMargin,o},M=function(i){let e="",t="",a="",r="",o=i.substring(0,1),l=i.substring(i.length-1,i.length);o.match(/[#+~-]/)&&(r=o);let g=/[\s\w)~]/;l.match(g)||(t=C(l));const s=r===""?0:1;let p=t===""?i.length:i.length-1;i=i.substring(s,p);const h=i.indexOf("("),n=i.indexOf(")");if(h>1&&n>h&&n<=i.length){let b=i.substring(0,h).trim();const x=i.substring(h+1,n);if(e=r+b+"("+N(x.trim())+")",n !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"relation\");\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n if (relation.relation.lineType == 1) {\n svgPath.attr(\"class\", \"relation dashed-line\");\n }\n if (relation.relation.lineType == 10) {\n svgPath.attr(\"class\", \"relation dotted-line\");\n }\n if (relation.relation.type1 !== \"none\") {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type1) + \"Start)\"\n );\n }\n if (relation.relation.type2 !== \"none\") {\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type2) + \"End)\"\n );\n }\n let x, y;\n const l = path.points.length;\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== \"none\",\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== \"none\",\n path.points,\n path.points[l - 1]\n );\n log.debug(\"cardinality_1_point \" + JSON.stringify(cardinality_1_point));\n log.debug(\"cardinality_2_point \" + JSON.stringify(cardinality_2_point));\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n if (relation.title !== void 0) {\n const g = elem.append(\"g\").attr(\"class\", \"classLabel\");\n const label = g.append(\"text\").attr(\"class\", \"label\").attr(\"x\", x).attr(\"y\", y).attr(\"fill\", \"red\").attr(\"text-anchor\", \"middle\").text(relation.title);\n window.label = label;\n const bounds = label.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", bounds.x - conf.padding / 2).attr(\"y\", bounds.y - conf.padding / 2).attr(\"width\", bounds.width + conf.padding).attr(\"height\", bounds.height + conf.padding);\n }\n log.info(\"Rendering relation \" + JSON.stringify(relation));\n if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type1\").attr(\"x\", p1_card_x).attr(\"y\", p1_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle1);\n }\n if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type2\").attr(\"x\", p2_card_x).attr(\"y\", p2_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle2);\n }\n edgeCount++;\n};\nconst drawClass = function(elem, classDef, conf, diagObj) {\n log.debug(\"Rendering class \", classDef, conf);\n const id = classDef.id;\n const classInfo = {\n id,\n label: classDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", diagObj.db.lookUpDomId(id)).attr(\"class\", \"classGroup\");\n let title;\n if (classDef.link) {\n title = g.append(\"svg:a\").attr(\"xlink:href\", classDef.link).attr(\"target\", classDef.linkTarget).append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n } else {\n title = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n }\n let isFirst = true;\n classDef.annotations.forEach(function(member) {\n const titleText2 = title.append(\"tspan\").text(\"«\" + member + \"»\");\n if (!isFirst) {\n titleText2.attr(\"dy\", conf.textHeight);\n }\n isFirst = false;\n });\n let classTitleString = getClassTitleString(classDef);\n const classTitle = title.append(\"tspan\").text(classTitleString).attr(\"class\", \"title\");\n if (!isFirst) {\n classTitle.attr(\"dy\", conf.textHeight);\n }\n const titleHeight = title.node().getBBox().height;\n const membersLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin / 2).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin / 2);\n const members = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + conf.dividerMargin + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.members.forEach(function(member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n const membersBox = members.node().getBBox();\n const methodsLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n const methods = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.methods.forEach(function(method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n const classBox = g.node().getBBox();\n var cssClassStr = \" \";\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(\" \");\n }\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", classBox.width + 2 * conf.padding).attr(\"height\", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr(\"class\", cssClassStr);\n const rectWidth = rect.node().getBBox().width;\n title.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n if (classDef.tooltip) {\n title.insert(\"title\").text(classDef.tooltip);\n }\n membersLine.attr(\"x2\", rectWidth);\n methodsLine.attr(\"x2\", rectWidth);\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n return classInfo;\n};\nconst getClassTitleString = function(classDef) {\n let classTitleString = classDef.id;\n if (classDef.type) {\n classTitleString += \"<\" + classDef.type + \">\";\n }\n return classTitleString;\n};\nconst drawNote = function(elem, note, conf, diagObj) {\n log.debug(\"Rendering note \", note, conf);\n const id = note.id;\n const noteInfo = {\n id,\n text: note.text,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"classGroup\");\n let text = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n const lines = JSON.parse(`\"${note.text}\"`).split(\"\\n\");\n lines.forEach(function(line2) {\n log.debug(`Adding line: ${line2}`);\n text.append(\"tspan\").text(line2).attr(\"class\", \"title\").attr(\"dy\", conf.textHeight);\n });\n const noteBox = g.node().getBBox();\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", noteBox.width + 2 * conf.padding).attr(\n \"height\",\n noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin\n );\n const rectWidth = rect.node().getBBox().width;\n text.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n noteInfo.width = rectWidth;\n noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;\n return noteInfo;\n};\nconst parseMember = function(text) {\n let displayText = \"\";\n let cssStyle = \"\";\n let returnType = \"\";\n let visibility = \"\";\n let firstChar = text.substring(0, 1);\n let lastChar = text.substring(text.length - 1, text.length);\n if (firstChar.match(/[#+~-]/)) {\n visibility = firstChar;\n }\n let noClassifierRe = /[\\s\\w)~]/;\n if (!lastChar.match(noClassifierRe)) {\n cssStyle = parseClassifier(lastChar);\n }\n const startIndex = visibility === \"\" ? 0 : 1;\n let endIndex = cssStyle === \"\" ? text.length : text.length - 1;\n text = text.substring(startIndex, endIndex);\n const methodStart = text.indexOf(\"(\");\n const methodEnd = text.indexOf(\")\");\n const isMethod = methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length;\n if (isMethod) {\n let methodName = text.substring(0, methodStart).trim();\n const parameters = text.substring(methodStart + 1, methodEnd);\n displayText = visibility + methodName + \"(\" + parseGenericTypes(parameters.trim()) + \")\";\n if (methodEnd < text.length) {\n let potentialClassifier = text.substring(methodEnd + 1, methodEnd + 2);\n if (cssStyle === \"\" && !potentialClassifier.match(noClassifierRe)) {\n cssStyle = parseClassifier(potentialClassifier);\n returnType = text.substring(methodEnd + 2).trim();\n } else {\n returnType = text.substring(methodEnd + 1).trim();\n }\n if (returnType !== \"\") {\n if (returnType.charAt(0) === \":\") {\n returnType = returnType.substring(1).trim();\n }\n returnType = \" : \" + parseGenericTypes(returnType);\n displayText += returnType;\n }\n }\n } else {\n displayText = visibility + parseGenericTypes(text);\n }\n return {\n displayText,\n cssStyle\n };\n};\nconst addTspan = function(textEl, txt, isFirst, conf) {\n let member = parseMember(txt);\n const tSpan = textEl.append(\"tspan\").attr(\"x\", conf.padding).text(member.displayText);\n if (member.cssStyle !== \"\") {\n tSpan.attr(\"style\", member.cssStyle);\n }\n if (!isFirst) {\n tSpan.attr(\"dy\", conf.textHeight);\n }\n};\nconst parseClassifier = function(classifier) {\n switch (classifier) {\n case \"*\":\n return \"font-style:italic;\";\n case \"$\":\n return \"text-decoration:underline;\";\n default:\n return \"\";\n }\n};\nconst svgDraw = {\n getClassTitleString,\n drawClass,\n drawEdge,\n drawNote,\n parseMember\n};\nexport {\n parseMember as p,\n svgDraw as s\n};\n"],"names":["edgeCount","drawEdge","elem","path","relation","conf","diagObj","getRelationType","type","p","lineData","lineFunction","line","curveBasis","svgPath","url","x","y","l","labelPosition","utils","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","cardinality_2_point","log","g","label","bounds","drawClass","classDef","id","classInfo","title","isFirst","member","titleText2","classTitleString","getClassTitleString","classTitle","titleHeight","membersLine","members","addTspan","membersBox","methodsLine","methods","method","classBox","cssClassStr","rectWidth","drawNote","note","noteInfo","text","lines","line2","noteBox","parseMember","displayText","cssStyle","returnType","visibility","firstChar","lastChar","noClassifierRe","parseClassifier","startIndex","endIndex","methodStart","methodEnd","methodName","parameters","parseGenericTypes","potentialClassifier","textEl","txt","tSpan","classifier","svgDraw"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js b/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js deleted file mode 100644 index e8f4231..0000000 --- a/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js +++ /dev/null @@ -1,2 +0,0 @@ -import{n as a}from"./index-jpNTxDe4.js";const l=function(e,t){const r=e.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),r.attr("rx",t.rx),r.attr("ry",t.ry),t.attrs!=="undefined"&&t.attrs!==null)for(let s in t.attrs)r.attr(s,t.attrs[s]);return t.class!=="undefined"&&r.attr("class",t.class),r},c=function(e,t){l(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"}).lower()},d=function(e,t){const r=t.text.replace(//gi," "),s=e.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class!==void 0&&s.attr("class",t.class);const n=s.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),s},x=function(e,t,r,s){const n=e.append("image");n.attr("x",t),n.attr("y",r);var i=a.sanitizeUrl(s);n.attr("xlink:href",i)},f=function(e,t,r,s){const n=e.append("use");n.attr("x",t),n.attr("y",r);const i=a.sanitizeUrl(s);n.attr("xlink:href","#"+i)},h=function(){return{x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}},g=function(){return{x:0,y:0,width:100,height:100,fill:void 0,anchor:void 0,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}};export{c as a,f as b,x as c,l as d,g as e,d as f,h as g}; -//# sourceMappingURL=svgDrawCommon-f26cad39-uSOEV6F1.js.map diff --git a/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js.map b/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js.map deleted file mode 100644 index a33683c..0000000 --- a/excalidraw/excalidraw-app/build/assets/svgDrawCommon-f26cad39-uSOEV6F1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"svgDrawCommon-f26cad39-uSOEV6F1.js","sources":["../../../node_modules/mermaid/dist/svgDrawCommon-f26cad39.js"],"sourcesContent":["import { sanitizeUrl } from \"@braintree/sanitize-url\";\nconst drawRect = function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.attrs !== \"undefined\" && rectData.attrs !== null) {\n for (let attrKey in rectData.attrs) {\n rectElem.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n if (rectData.class !== \"undefined\") {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n};\nconst drawBackgroundRect = function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n });\n rectElem.lower();\n};\nconst drawText = function(elem, textData) {\n const nText = textData.text.replace(//gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n};\nconst drawImage = function(elem, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n var sanitizedLink = sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawEmbeddedImage = function(elem, x, y, link) {\n const imageElem = elem.append(\"use\");\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", \"#\" + sanitizedLink);\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: void 0,\n anchor: void 0,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: void 0\n };\n};\nexport {\n drawBackgroundRect as a,\n drawEmbeddedImage as b,\n drawImage as c,\n drawRect as d,\n getTextObj as e,\n drawText as f,\n getNoteRect as g\n};\n"],"names":["drawRect","elem","rectData","rectElem","attrKey","drawBackgroundRect","bounds","drawText","textData","nText","textElem","span","drawImage","x","y","link","imageElem","sanitizedLink","sanitizeUrl","drawEmbeddedImage","getNoteRect","getTextObj"],"mappings":"wCACK,MAACA,EAAW,SAASC,EAAMC,EAAU,CACxC,MAAMC,EAAWF,EAAK,OAAO,MAAM,EASnC,GARAE,EAAS,KAAK,IAAKD,EAAS,CAAC,EAC7BC,EAAS,KAAK,IAAKD,EAAS,CAAC,EAC7BC,EAAS,KAAK,OAAQD,EAAS,IAAI,EACnCC,EAAS,KAAK,SAAUD,EAAS,MAAM,EACvCC,EAAS,KAAK,QAASD,EAAS,KAAK,EACrCC,EAAS,KAAK,SAAUD,EAAS,MAAM,EACvCC,EAAS,KAAK,KAAMD,EAAS,EAAE,EAC/BC,EAAS,KAAK,KAAMD,EAAS,EAAE,EAC3BA,EAAS,QAAU,aAAeA,EAAS,QAAU,KACvD,QAASE,KAAWF,EAAS,MAC3BC,EAAS,KAAKC,EAASF,EAAS,MAAME,CAAO,CAAC,EAGlD,OAAIF,EAAS,QAAU,aACrBC,EAAS,KAAK,QAASD,EAAS,KAAK,EAEhCC,CACT,EACME,EAAqB,SAASJ,EAAMK,EAAQ,CAC/BN,EAASC,EAAM,CAC9B,EAAGK,EAAO,OACV,EAAGA,EAAO,OACV,MAAOA,EAAO,MAAQA,EAAO,OAC7B,OAAQA,EAAO,MAAQA,EAAO,OAC9B,KAAMA,EAAO,KACb,OAAQA,EAAO,OACf,MAAO,MACX,CAAG,EACQ,MAAK,CAChB,EACMC,EAAW,SAASN,EAAMO,EAAU,CACxC,MAAMC,EAAQD,EAAS,KAAK,QAAQ,eAAgB,GAAG,EACjDE,EAAWT,EAAK,OAAO,MAAM,EACnCS,EAAS,KAAK,IAAKF,EAAS,CAAC,EAC7BE,EAAS,KAAK,IAAKF,EAAS,CAAC,EAC7BE,EAAS,KAAK,QAAS,QAAQ,EAC/BA,EAAS,MAAM,cAAeF,EAAS,MAAM,EACzCA,EAAS,QAAU,QACrBE,EAAS,KAAK,QAASF,EAAS,KAAK,EAEvC,MAAMG,EAAOD,EAAS,OAAO,OAAO,EACpC,OAAAC,EAAK,KAAK,IAAKH,EAAS,EAAIA,EAAS,WAAa,CAAC,EACnDG,EAAK,KAAKF,CAAK,EACRC,CACT,EACME,EAAY,SAASX,EAAMY,EAAGC,EAAGC,EAAM,CAC3C,MAAMC,EAAYf,EAAK,OAAO,OAAO,EACrCe,EAAU,KAAK,IAAKH,CAAC,EACrBG,EAAU,KAAK,IAAKF,CAAC,EACrB,IAAIG,EAAgBC,cAAYH,CAAI,EACpCC,EAAU,KAAK,aAAcC,CAAa,CAC5C,EACME,EAAoB,SAASlB,EAAMY,EAAGC,EAAGC,EAAM,CACnD,MAAMC,EAAYf,EAAK,OAAO,KAAK,EACnCe,EAAU,KAAK,IAAKH,CAAC,EACrBG,EAAU,KAAK,IAAKF,CAAC,EACrB,MAAMG,EAAgBC,cAAYH,CAAI,EACtCC,EAAU,KAAK,aAAc,IAAMC,CAAa,CAClD,EACMG,EAAc,UAAW,CAC7B,MAAO,CACL,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,KAAM,UACN,OAAQ,OACR,OAAQ,QACR,GAAI,EACJ,GAAI,CACR,CACA,EACMC,EAAa,UAAW,CAC5B,MAAO,CACL,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,KAAM,OACN,OAAQ,OACR,cAAe,QACf,MAAO,OACP,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,MAAO,GACP,OAAQ,MACZ,CACA","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js b/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js deleted file mode 100644 index 421adb9..0000000 --- a/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js +++ /dev/null @@ -1,63 +0,0 @@ -import{aI as bt,aJ as vt,z as kt,c as wt,l as I,h as U,t as St,aK as Et,aL as Tt,aM as It}from"./index-jpNTxDe4.js";import{a as it}from"./arc-uMvMTTPz.js";import"./index-2K3MavtT.js";import"./path-aUcfwwLI.js";var Y=function(){var n=function(b,r,a,h){for(a=a||{},h=b.length;h--;a[b[h]]=r);return a},t=[1,2],e=[1,5],s=[6,9,11,17,18,20,22,23,26,27,28],i=[1,15],o=[1,16],l=[1,17],g=[1,18],d=[1,19],y=[1,23],x=[1,24],w=[1,27],v=[4,6,9,11,17,18,20,22,23,26,27,28],_={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(r,a,h,u,f,c,T){var m=c.length-1;switch(f){case 1:return c[m-1];case 3:this.$=[];break;case 4:c[m-1].push(c[m]),this.$=c[m-1];break;case 5:case 6:this.$=c[m];break;case 7:case 8:this.$=[];break;case 11:u.getCommonDb().setDiagramTitle(c[m].substr(6)),this.$=c[m].substr(6);break;case 12:this.$=c[m].trim(),u.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=c[m].trim(),u.getCommonDb().setAccDescription(this.$);break;case 15:u.addSection(c[m].substr(8)),this.$=c[m].substr(8);break;case 19:u.addTask(c[m],0,""),this.$=c[m];break;case 20:u.addEvent(c[m].substr(2)),this.$=c[m];break;case 21:u.parseDirective("%%{","open_directive");break;case 22:u.parseDirective(c[m],"type_directive");break;case 23:c[m]=c[m].trim().replace(/'/g,'"'),u.parseDirective(c[m],"arg_directive");break;case 24:u.parseDirective("}%%","close_directive","timeline");break}},table:[{3:1,4:t,7:3,12:4,28:e},{1:[3]},n(s,[2,3],{5:6}),{3:7,4:t,7:3,12:4,28:e},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:i,18:o,20:l,22:g,23:d,24:20,25:21,26:y,27:x,28:e},{1:[2,2]},{14:25,15:[1,26],31:w},n([15,31],[2,22]),n(s,[2,8],{1:[2,1]}),n(s,[2,4]),{7:22,10:28,12:4,17:i,18:o,20:l,22:g,23:d,24:20,25:21,26:y,27:x,28:e},n(s,[2,6]),n(s,[2,7]),n(s,[2,11]),{19:[1,29]},{21:[1,30]},n(s,[2,14]),n(s,[2,15]),n(s,[2,16]),n(s,[2,17]),n(s,[2,18]),n(s,[2,19]),n(s,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},n(s,[2,5]),n(s,[2,12]),n(s,[2,13]),n(v,[2,9]),{14:34,31:w},{31:[2,23]},{11:[1,35]},n(v,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(r,a){if(a.recoverable)this.trace(r);else{var h=new Error(r);throw h.hash=a,h}},parse:function(r){var a=this,h=[0],u=[],f=[null],c=[],T=this.table,m="",M=0,z=0,j=2,K=1,H=c.slice.call(arguments,1),p=Object.create(this.lexer),E={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(E.yy[L]=this.yy[L]);p.setInput(r,E.yy),E.yy.lexer=p,E.yy.parser=this,typeof p.yylloc>"u"&&(p.yylloc={});var C=p.yylloc;c.push(C);var V=p.options&&p.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(){var P;return P=u.pop()||p.lex()||K,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=a.symbols_[P]||P),P}for(var k,R,$,Q,W={},G,A,nt,q;;){if(R=h[h.length-1],this.defaultActions[R]?$=this.defaultActions[R]:((k===null||typeof k>"u")&&(k=et()),$=T[R]&&T[R][k]),typeof $>"u"||!$.length||!$[0]){var X="";q=[];for(G in T[R])this.terminals_[G]&&G>j&&q.push("'"+this.terminals_[G]+"'");p.showPosition?X="Parse error on line "+(M+1)+`: -`+p.showPosition()+` -Expecting `+q.join(", ")+", got '"+(this.terminals_[k]||k)+"'":X="Parse error on line "+(M+1)+": Unexpected "+(k==K?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(X,{text:p.match,token:this.terminals_[k]||k,line:p.yylineno,loc:C,expected:q})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+k);switch($[0]){case 1:h.push(k),f.push(p.yytext),c.push(p.yylloc),h.push($[1]),k=null,z=p.yyleng,m=p.yytext,M=p.yylineno,C=p.yylloc;break;case 2:if(A=this.productions_[$[1]][1],W.$=f[f.length-A],W._$={first_line:c[c.length-(A||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(A||1)].first_column,last_column:c[c.length-1].last_column},V&&(W._$.range=[c[c.length-(A||1)].range[0],c[c.length-1].range[1]]),Q=this.performAction.apply(W,[m,z,M,E.yy,$[1],f,c].concat(H)),typeof Q<"u")return Q;A&&(h=h.slice(0,-1*A*2),f=f.slice(0,-1*A),c=c.slice(0,-1*A)),h.push(this.productions_[$[1]][0]),f.push(W.$),c.push(W._$),nt=T[h[h.length-2]][h[h.length-1]],h.push(nt);break;case 3:return!0}}return!0}},S=function(){var b={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(r,a){return this.yy=a||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},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var a=r.length,h=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var u=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),h.length-1&&(this.yylineno-=h.length-1);var f=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:h?(h.length===u.length?this.yylloc.first_column:0)+u[u.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` -`+a+"^"},test_match:function(r,a){var h,u,f;if(this.options.backtrack_lexer&&(f={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&&(f.yylloc.range=this.yylloc.range.slice(0))),u=r[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.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],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var c in f)this[c]=f[c];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,a,h,u;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),c=0;ca[0].length)){if(a=h,u=c,this.options.backtrack_lexer){if(r=this.test_match(h,f[c]),r!==!1)return r;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(r=this.test_match(a,f[u]),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})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(a,h,u,f){switch(u){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};return b}();_.lexer=S;function N(){this.yy={}}return N.prototype=_,_.Parser=N,new N}();Y.parser=Y;const $t=Y;let B="",ct=0;const D=[],Z=[],O=[],lt=()=>bt,ot=(n,t,e)=>{vt(globalThis,n,t,e)},ht=function(){D.length=0,Z.length=0,B="",O.length=0,kt()},dt=function(n){B=n,D.push(n)},ut=function(){return D},pt=function(){let n=st();const t=100;let e=0;for(;!n&&ee.id===ct-1).events.push(n)},ft=function(n){const t={section:B,type:B,description:n,task:n,classes:[]};Z.push(t)},st=function(){const n=function(e){return O[e].processed};let t=!0;for(const[e,s]of O.entries())n(e),t=t&&s.processed;return t},Nt={clear:ht,getCommonDb:lt,addSection:dt,getSections:ut,getTasks:pt,addTask:yt,addTaskOrg:ft,addEvent:gt,parseDirective:ot},Mt=Object.freeze(Object.defineProperty({__proto__:null,addEvent:gt,addSection:dt,addTask:yt,addTaskOrg:ft,clear:ht,default:Nt,getCommonDb:lt,getSections:ut,getTasks:pt,parseDirective:ot},Symbol.toStringTag,{value:"Module"})),Lt=12,J=function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},At=function(n,t){const s=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=n.append("g");i.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function o(d){const y=it().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);d.append("path").attr("class","mouth").attr("d",y).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}function l(d){const y=it().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);d.append("path").attr("class","mouth").attr("d",y).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}function g(d){d.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return t.score>3?o(i):t.score<3?l(i):g(i),s},Pt=function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},mt=function(n,t){const e=t.text.replace(//gi," "),s=n.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class!==void 0&&s.attr("class",t.class);const i=s.append("tspan");return i.attr("x",t.x+t.textMargin*2),i.text(e),s},Ht=function(n,t){function e(i,o,l,g,d){return i+","+o+" "+(i+l)+","+o+" "+(i+l)+","+(o+g-d)+" "+(i+l-d*1.2)+","+(o+g)+" "+i+","+(o+g)}const s=n.append("polygon");s.attr("points",e(t.x,t.y,50,20,7)),s.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,mt(n,t)},Ct=function(n,t,e){const s=n.append("g"),i=tt();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=e.width,i.height=e.height,i.class="journey-section section-type-"+t.num,i.rx=3,i.ry=3,J(s,i),xt(e)(t.text,s,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+t.num},e,t.colour)};let rt=-1;const zt=function(n,t,e){const s=t.x+e.width/2,i=n.append("g");rt++;const o=300+5*30;i.append("line").attr("id","task"+rt).attr("x1",s).attr("y1",t.y).attr("x2",s).attr("y2",o).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),At(i,{cx:s,cy:300+(5-t.score)*30,score:t.score});const l=tt();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=e.width,l.height=e.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,J(i,l),t.x+14,xt(e)(t.task,i,l.x,l.y,l.width,l.height,{class:"task"},e,t.colour)},Vt=function(n,t){J(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},Rt=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},tt=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},xt=function(){function n(i,o,l,g,d,y,x,w){const v=o.append("text").attr("x",l+d/2).attr("y",g+y/2+5).style("font-color",w).style("text-anchor","middle").text(i);s(v,x)}function t(i,o,l,g,d,y,x,w,v){const{taskFontSize:_,taskFontFamily:S}=w,N=i.split(//gi);for(let b=0;b)/).reverse(),i,o=[],l=1.1,g=e.attr("y"),d=parseFloat(e.attr("dy")),y=e.text(null).append("tspan").attr("x",0).attr("y",g).attr("dy",d+"em");for(let x=0;xt||i==="
    ")&&(o.pop(),y.text(o.join(" ").trim()),i==="
    "?o=[""]:o=[i],y=e.append("tspan").attr("x",0).attr("y",g).attr("dy",l+"em").text(i))})}const Wt=function(n,t,e,s){const i=e%Lt-1,o=n.append("g");t.section=i,o.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+i));const l=o.append("g"),g=o.append("g"),y=g.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(_t,t.width).node().getBBox(),x=s.fontSize&&s.fontSize.replace?s.fontSize.replace("px",""):s.fontSize;return t.height=y.height+x*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,g.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),Ot(l,t,i),t},Bt=function(n,t,e){const s=n.append("g"),o=s.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(_t,t.width).node().getBBox(),l=e.fontSize&&e.fontSize.replace?e.fontSize.replace("px",""):e.fontSize;return s.remove(),o.height+l*1.1*.5+t.padding},Ot=function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+2*5} q0,-5 5,-5 h${t.width-2*5} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},F={drawRect:J,drawCircle:Pt,drawSection:Ct,drawText:mt,drawLabel:Ht,drawTask:zt,drawBackgroundRect:Vt,getTextObj:Rt,getNoteRect:tt,initGraphics:Ft,drawNode:Wt,getVirtualNodeHeight:Bt},jt=function(n,t,e,s){var i,o,l,g;const d=wt(),y=d.leftMargin??50;(o=(i=s.db).clear)==null||o.call(i),s.parser.parse(n+` -`),I.debug("timeline",s.db);const x=d.securityLevel;let w;x==="sandbox"&&(w=U("#i"+t));const _=(x==="sandbox"?U(w.nodes()[0].contentDocument.body):U("body")).select("#"+t);_.append("g");const S=s.db.getTasks(),N=s.db.getCommonDb().getDiagramTitle();I.debug("task",S),F.initGraphics(_);const b=s.db.getSections();I.debug("sections",b);let r=0,a=0,h=0,u=0,f=50+y,c=50;u=50;let T=0,m=!0;b.forEach(function(H){const p={number:T,descr:H,section:T,width:150,padding:20,maxHeight:r},E=F.getVirtualNodeHeight(_,p,d);I.debug("sectionHeight before draw",E),r=Math.max(r,E+20)});let M=0,z=0;I.debug("tasks.length",S.length);for(const[H,p]of S.entries()){const E={number:H,descr:p,section:p.section,width:150,padding:20,maxHeight:a},L=F.getVirtualNodeHeight(_,E,d);I.debug("taskHeight before draw",L),a=Math.max(a,L+20),M=Math.max(M,p.events.length);let C=0;for(let V=0;V0?b.forEach(H=>{const p=S.filter(V=>V.section===H),E={number:T,descr:H,section:T,width:200*Math.max(p.length,1)-50,padding:20,maxHeight:r};I.debug("sectionNode",E);const L=_.append("g"),C=F.drawNode(L,E,T,d);I.debug("sectionNode output",C),L.attr("transform",`translate(${f}, ${u})`),c+=r+50,p.length>0&&at(_,p,T,f,c,a,d,M,z,r,!1),f+=200*Math.max(p.length,1),c=u,T++}):(m=!1,at(_,S,T,f,c,a,d,M,z,r,!0));const j=_.node().getBBox();I.debug("bounds",j),N&&_.append("text").text(N).attr("x",j.width/2-y).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),h=m?r+a+150:a+100,_.append("g").attr("class","lineWrapper").append("line").attr("x1",y).attr("y1",h).attr("x2",j.width+3*y).attr("y2",h).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),St(void 0,_,((l=d.timeline)==null?void 0:l.padding)??50,((g=d.timeline)==null?void 0:g.useMaxWidth)??!1)},at=function(n,t,e,s,i,o,l,g,d,y,x){var w;for(const v of t){const _={descr:v.task,section:e,number:e,width:150,padding:20,maxHeight:o};I.debug("taskNode",_);const S=n.append("g").attr("class","taskWrapper"),b=F.drawNode(S,_,e,l).height;if(I.debug("taskHeight after draw",b),S.attr("transform",`translate(${s}, ${i})`),o=Math.max(o,b),v.events){const r=n.append("g").attr("class","lineWrapper");let a=o;i+=100,a=a+Gt(n,v.events,e,s,i,l),i-=100,r.append("line").attr("x1",s+190/2).attr("y1",i+o).attr("x2",s+190/2).attr("y2",i+o+(x?o:y)+d+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s=s+200,x&&!((w=l.timeline)!=null&&w.disableMulticolor)&&e++}i=i-10},Gt=function(n,t,e,s,i,o){let l=0;const g=i;i=i+100;for(const d of t){const y={descr:d,section:e,number:e,width:150,padding:20,maxHeight:50};I.debug("eventNode",y);const x=n.append("g").attr("class","eventWrapper"),v=F.drawNode(x,y,e,o).height;l=l+v,x.attr("transform",`translate(${s}, ${i})`),i=i+10+v}return i=g,l},qt={setConf:()=>{},draw:jt},Ut=n=>{let t="";for(let e=0;e` - .edge { - stroke-width: 3; - } - ${Ut(n)} - .section-root rect, .section-root path, .section-root circle { - fill: ${n.git0}; - } - .section-root text { - fill: ${n.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .eventWrapper { - filter: brightness(120%); - } -`,Jt=Zt,Dt={db:Mt,renderer:qt,parser:$t,styles:Jt};export{Dt as diagram}; -//# sourceMappingURL=timeline-definition-5ed366f4-6Q7yW0Tk.js.map diff --git a/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js.map b/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js.map deleted file mode 100644 index 3b9b911..0000000 --- a/excalidraw/excalidraw-app/build/assets/timeline-definition-5ed366f4-6Q7yW0Tk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"timeline-definition-5ed366f4-6Q7yW0Tk.js","sources":["../../../node_modules/mermaid/dist/timeline-definition-5ed366f4.js"],"sourcesContent":["import { I as commonDb, J as parseDirective$1, v as clear$1, c as getConfig, l as log, p as setupGraphViewbox } from \"./mermaid-b0ad2de1.js\";\nimport { select, arc } from \"d3\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"timeline\": 4, \"document\": 5, \"EOF\": 6, \"directive\": 7, \"line\": 8, \"SPACE\": 9, \"statement\": 10, \"NEWLINE\": 11, \"openDirective\": 12, \"typeDirective\": 13, \"closeDirective\": 14, \":\": 15, \"argDirective\": 16, \"title\": 17, \"acc_title\": 18, \"acc_title_value\": 19, \"acc_descr\": 20, \"acc_descr_value\": 21, \"acc_descr_multiline_value\": 22, \"section\": 23, \"period_statement\": 24, \"event_statement\": 25, \"period\": 26, \"event\": 27, \"open_directive\": 28, \"type_directive\": 29, \"arg_directive\": 30, \"close_directive\": 31, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"timeline\", 6: \"EOF\", 9: \"SPACE\", 11: \"NEWLINE\", 15: \":\", 17: \"title\", 18: \"acc_title\", 19: \"acc_title_value\", 20: \"acc_descr\", 21: \"acc_descr_value\", 22: \"acc_descr_multiline_value\", 23: \"section\", 26: \"period\", 27: \"event\", 28: \"open_directive\", 29: \"type_directive\", 30: \"arg_directive\", 31: \"close_directive\" },\n productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 3:\n this.$ = [];\n break;\n case 4:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 5:\n case 6:\n this.$ = $$[$0];\n break;\n case 7:\n case 8:\n this.$ = [];\n break;\n case 11:\n yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 12:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccTitle(this.$);\n break;\n case 13:\n case 14:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccDescription(this.$);\n break;\n case 15:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 19:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 20:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n case 21:\n yy.parseDirective(\"%%{\", \"open_directive\");\n break;\n case 22:\n yy.parseDirective($$[$0], \"type_directive\");\n break;\n case 23:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"');\n yy.parseDirective($$[$0], \"arg_directive\");\n break;\n case 24:\n yy.parseDirective(\"}%%\", \"close_directive\", \"timeline\");\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],\n defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return 28;\n case 1:\n this.begin(\"type_directive\");\n return 29;\n case 2:\n this.popState();\n this.begin(\"arg_directive\");\n return 15;\n case 3:\n this.popState();\n this.popState();\n return 31;\n case 4:\n return 30;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 11;\n case 8:\n break;\n case 9:\n break;\n case 10:\n return 4;\n case 11:\n return 17;\n case 12:\n this.begin(\"acc_title\");\n return 18;\n case 13:\n this.popState();\n return \"acc_title_value\";\n case 14:\n this.begin(\"acc_descr\");\n return 20;\n case 15:\n this.popState();\n return \"acc_descr_value\";\n case 16:\n this.begin(\"acc_descr_multiline\");\n break;\n case 17:\n this.popState();\n break;\n case 18:\n return \"acc_descr_multiline_value\";\n case 19:\n return 23;\n case 20:\n return 27;\n case 21:\n return 26;\n case 22:\n return 6;\n case 23:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:((?:(?!\\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\\}%%)/i, /^(?:((?:(?!\\}%%).|\\n)*))/i, /^(?:%(?!\\{)[^\\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;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"open_directive\": { \"rules\": [1], \"inclusive\": false }, \"type_directive\": { \"rules\": [2, 3], \"inclusive\": false }, \"arg_directive\": { \"rules\": [3, 4], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [17, 18], \"inclusive\": false }, \"acc_descr\": { \"rules\": [15], \"inclusive\": false }, \"acc_title\": { \"rules\": [13], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nlet currentTaskId = 0;\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst getCommonDb = () => commonDb;\nconst parseDirective = (statement, context, type) => {\n parseDirective$1(globalThis, statement, context, type);\n};\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst addTask = function(period, length, event) {\n const rawTask = {\n id: currentTaskId++,\n section: currentSection,\n type: currentSection,\n task: period,\n score: length ? length : 0,\n //if event is defined, then add it the events array\n events: event ? [event] : []\n };\n rawTasks.push(rawTask);\n};\nconst addEvent = function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst timelineDb = {\n clear,\n getCommonDb,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent,\n parseDirective\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addEvent,\n addSection,\n addTask,\n addTaskOrg,\n clear,\n default: timelineDb,\n getCommonDb,\n getSections,\n getTasks,\n parseDirective\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst drawRect = function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.class !== void 0) {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n const nText = textData.text.replace(//gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf) {\n const center = task.x + conf.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n task.x + 14;\n _drawTextCandidateFunc(conf)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n class: \"rect\"\n });\n rectElem.lower();\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n \"text-anchor\": \"start\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n const { taskFontSize, taskFontFamily } = conf;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf) {\n return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nfunction wrap(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/(\\s+|
    )/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n for (let j = 0; j < words.length; j++) {\n word = words[words.length - 1 - j];\n line.push(word);\n tspan.text(line.join(\" \").trim());\n if (tspan.node().getComputedTextLength() > width || word === \"
    \") {\n line.pop();\n tspan.text(line.join(\" \").trim());\n if (word === \"
    \") {\n line = [\"\"];\n } else {\n line = [word];\n }\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n }\n }\n });\n}\nconst drawNode = function(elem, node, fullSection, conf) {\n const section = fullSection % MAX_SECTIONS - 1;\n const nodeElem = elem.append(\"g\");\n node.section = section;\n nodeElem.attr(\n \"class\",\n (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n );\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.height = Math.max(node.height, node.maxHeight);\n node.width = node.width + 2 * node.padding;\n textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n defaultBkg(bkgElem, node, section);\n return node;\n};\nconst getVirtualNodeHeight = function(elem, node, conf) {\n const textElem = elem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n};\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n getTextObj,\n getNoteRect,\n initGraphics,\n drawNode,\n getVirtualNodeHeight\n};\nconst draw = function(text, id, version, diagObj) {\n var _a, _b, _c, _d;\n const conf = getConfig();\n const LEFT_MARGIN = conf.leftMargin ?? 50;\n (_b = (_a = diagObj.db).clear) == null ? void 0 : _b.call(_a);\n diagObj.parser.parse(text + \"\\n\");\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? (\n // @ts-ignore d3 types are wrong\n select(sandboxElement.nodes()[0].contentDocument.body)\n ) : select(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw.initGraphics(svg);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n let depthY = 0;\n let sectionBeginY = 0;\n let masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n sectionBeginY = 50;\n let sectionNumber = 0;\n let hasSections = true;\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n });\n let maxEventCount = 0;\n let maxEventLineLength = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n maxEventCount = Math.max(maxEventCount, task.events.length);\n let maxEventLineLengthTemp = 0;\n for (let j = 0; j < task.events.length; j++) {\n const event = task.events[j];\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);\n }\n maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n if (sections2 && sections2.length > 0) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 200 * Math.max(tasksForSection.length, 1) - 50,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false\n );\n }\n masterX += 200 * Math.max(tasksForSection.length, 1);\n masterY = sectionBeginY;\n sectionNumber++;\n });\n } else {\n hasSections = false;\n drawTasks(\n svg,\n tasks2,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true\n );\n }\n const box = svg.node().getBBox();\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n }\n depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n setupGraphViewbox(\n void 0,\n svg,\n ((_c = conf.timeline) == null ? void 0 : _c.padding) ?? 50,\n ((_d = conf.timeline) == null ? void 0 : _d.useMaxWidth) ?? false\n );\n};\nconst drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {\n var _a;\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events) {\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n let lineLength = maxTaskHeight;\n masterY += 100;\n lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\n \"y2\",\n masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120\n ).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n};\nconst drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) {\n let maxEventHeight = 0;\n const eventBeginY = masterY;\n masterY = masterY + 100;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf);\n const eventHeight = node.height;\n maxEventHeight = maxEventHeight + eventHeight;\n eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n masterY = masterY + 10 + eventHeight;\n }\n masterY = eventBeginY;\n return maxEventHeight;\n};\nconst renderer = {\n setConf: () => {\n },\n draw\n};\nconst genSections = (options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${options[\"cScaleLabel\" + i]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections2;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n"],"names":["parser","o","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","n","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","currentSection","currentTaskId","sections","tasks","rawTasks","getCommonDb","commonDb","parseDirective","statement","context","type","parseDirective$1","clear","clear$1","addSection","txt","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","addTask","period","length","event","rawTask","addEvent","task","addTaskOrg","descr","newTask","compileTask","pos","allProcessed","timelineDb","db","MAX_SECTIONS","drawRect","elem","rectData","rectElem","drawFace","element","faceData","circleElement","face","smile","face2","arc$1","arc","sad","ambivalent","drawCircle","circleData","drawText","textData","nText","textElem","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","center","maxHeight","drawBackgroundRect","bounds","getTextObj","byText","content","textAttrs","colour","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","wrap","text2","select","words","word","line","lineHeight","tspan","j","drawNode","node","fullSection","nodeElem","bkgElem","bbox","fontSize","defaultBkg","getVirtualNodeHeight","svgDraw","draw","id","version","diagObj","_a","_b","_c","_d","getConfig","LEFT_MARGIN","log","securityLevel","sandboxElement","svg","tasks2","title","sections2","maxSectionHeight","maxTaskHeight","depthY","sectionBeginY","masterX","masterY","sectionNumber","hasSections","sectionNode","sectionHeight","maxEventCount","maxEventLineLength","taskNode","taskHeight","maxEventLineLengthTemp","eventNode","tasksForSection","sectionNodeWrapper","drawTasks","box","setupGraphViewbox","diagram2","sectionColor","isWithoutSections","taskWrapper","lineWrapper","lineLength","drawEvents","events","maxEventHeight","eventBeginY","eventWrapper","eventHeight","renderer","genSections","options","isDark","lighten","darken","sw","getStyles","styles","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/excalidraw/excalidraw-app/build/assets/workbox-window.prod.es5-prqDwDSL.js b/excalidraw/excalidraw-app/build/assets/workbox-window.prod.es5-prqDwDSL.js deleted file mode 100644 index eaff2f4..0000000 --- a/excalidraw/excalidraw-app/build/assets/workbox-window.prod.es5-prqDwDSL.js +++ /dev/null @@ -1,3 +0,0 @@ -try{self["workbox:window:7.0.0"]&&_()}catch{}function S(t,r){return new Promise(function(e){var i=new MessageChannel;i.port1.onmessage=function(f){e(f.data)},t.postMessage(r,[i.port2])})}function W(t,r){for(var e=0;et.length)&&(r=t.length);for(var e=0,i=new Array(r);e"u"||t[Symbol.iterator]==null){if(Array.isArray(t)||(e=function(f,d){if(f){if(typeof f=="string")return E(f,d);var h=Object.prototype.toString.call(f).slice(8,-1);return h==="Object"&&f.constructor&&(h=f.constructor.name),h==="Map"||h==="Set"?Array.from(f):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?E(f,d):void 0}}(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[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.`)}return(e=t[Symbol.iterator]()).next.bind(e)}try{self["workbox:core:7.0.0"]&&_()}catch{}var y=function(){var t=this;this.promise=new Promise(function(r,e){t.resolve=r,t.reject=e})};function b(t,r){var e=location.href;return new URL(t,e).href===new URL(r,e).href}var g=function(t,r){this.type=t,Object.assign(this,r)};function p(t,r,e){return e?r?r(t):t:(t&&t.then||(t=Promise.resolve(t)),r?t.then(r):t)}function L(){}var j={type:"SKIP_WAITING"};function P(t,r){if(!r)return t&&t.then?t.then(L):Promise.resolve()}var x=function(t){var r,e;function i(v,c){var n,o;return c===void 0&&(c={}),(n=t.call(this)||this).nn={},n.tn=0,n.rn=new y,n.en=new y,n.on=new y,n.un=0,n.an=new Set,n.cn=function(){var s=n.fn,a=s.installing;n.tn>0||!b(a.scriptURL,n.sn.toString())||performance.now()>n.un+6e4?(n.vn=a,s.removeEventListener("updatefound",n.cn)):(n.hn=a,n.an.add(a),n.rn.resolve(a)),++n.tn,a.addEventListener("statechange",n.ln)},n.ln=function(s){var a=n.fn,u=s.target,l=u.state,m=u===n.vn,w={sw:u,isExternal:m,originalEvent:s};!m&&n.mn&&(w.isUpdate=!0),n.dispatchEvent(new g(l,w)),l==="installed"?n.wn=self.setTimeout(function(){l==="installed"&&a.waiting===u&&n.dispatchEvent(new g("waiting",w))},200):l==="activating"&&(clearTimeout(n.wn),m||n.en.resolve(u))},n.dn=function(s){var a=n.hn,u=a!==navigator.serviceWorker.controller;n.dispatchEvent(new g("controlling",{isExternal:u,originalEvent:s,sw:a,isUpdate:n.mn})),u||n.on.resolve(a)},n.gn=(o=function(s){var a=s.data,u=s.ports,l=s.source;return p(n.getSW(),function(){n.an.has(l)&&n.dispatchEvent(new g("message",{data:a,originalEvent:s,ports:u,sw:l}))})},function(){for(var s=[],a=0;an.length)&&(t=n.length);for(var r=0,e=new Array(t);r=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}return(e=n[Symbol.iterator]()).next.bind(e)}try{self[\"workbox:core:7.0.0\"]&&_()}catch(n){}var i=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function o(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var u=function(n,t){this.type=n,Object.assign(this,t)};function a(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function c(){}var f={type:\"SKIP_WAITING\"};function s(n,t){if(!t)return n&&n.then?n.then(c):Promise.resolve()}var v=function(r){var e,c;function v(n,t){var e,c;return void 0===t&&(t={}),(e=r.call(this)||this).nn={},e.tn=0,e.rn=new i,e.en=new i,e.on=new i,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!o(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,a={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(a.isUpdate=!0),e.dispatchEvent(new u(i,a)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new u(\"waiting\",a))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.dn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new u(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(c=function(n){var t=n.data,r=n.ports,i=n.source;return a(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new u(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],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 diff --git a/excalidraw/excalidraw-app/build/favicon.svg b/excalidraw/excalidraw-app/build/favicon.svg deleted file mode 100644 index ee99676..0000000 --- a/excalidraw/excalidraw-app/build/favicon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/excalidraw/excalidraw-app/build/fonts/Assistant-Bold.woff2 b/excalidraw/excalidraw-app/build/fonts/Assistant-Bold.woff2 deleted file mode 100644 index 751ba1ceb5883ebce6c67d21c572ae2dfb78f24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20380 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∈%?q7f-cLnRe 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 TcQlRP`t>*4_1V8ZM$4EBNmmhp diff --git a/excalidraw/excalidraw-app/build/fonts/Assistant-SemiBold.woff2 b/excalidraw/excalidraw-app/build/fonts/Assistant-SemiBold.woff2 deleted file mode 100644 index d17aa74bba428f3dbb386ed8fe12e1526b955f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20212 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 diff --git a/excalidraw/excalidraw-app/build/fonts/Cascadia.ttf b/excalidraw/excalidraw-app/build/fonts/Cascadia.ttf deleted file mode 100644 index fee603fa21c77de3affba8e86597c4cf91db1ffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213476 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 z%0A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

    H4;(BXGc?le%FC2c4K(amM!3jrZ$`#9?hR@ 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 VE68m@n{Jd-S1{O|y3%sh{|Ci!#0gt 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

  • }+ge_7#9CU9D!)YesBnVssbK*3(=}X24p^;Ft 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
    s}3uQ-W3@Dg~oME*l^Jczd;3xu<6gw~Dj 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

    jP7IHxjB911lLTHUyWNNm?6i1;m8M9zrrTfX3 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

    o#<~uUPluf;eW3^a zA`lI2%dzmt|M!w8=%AE2YgE1L*2es1nB2Z&ORHK zc3rXKqs?#~7gmd0(76%8Y@UNKH4IJAaq6Gs95jC-i1rMyK>=&t(&tzg*!EL>WmPD+ zPa3Z{5B)EtfBxAq+NbZfdH>42dff3t861lYz?Q*l%G=?!Nq35sneiur)^16Y;i~hX z-;tZk#p8YQW99p`eS6#y-w^e>{P0sqX@ZJ&tt zAZB4~$+rD+Fd3WQJ&W$_o%?!G0M~eC!!Q=`zWd-4rq_rOV*fs2KdtC#&Pj$|b&nuZk$qeo*9pV>3g7^m39_~X#5p%e z<~z9`sMGG`BCy-V#_nQIZ?jS9Nsk0AWzwML8@Uj07=`7r07qzk!9$g$aZy+ViG+X! zR*Z6lYXJL=Dvw5pG~i2>^`3pPoypNB2Xsc3P4Zq^h-d1?*V7~a zxsmA+AsjxLX)6)0$Yjj;TP@ zf?;*opij&*_drN_z1&OrRgW?1yzpYnWU-3oErVwJ!+bAy3zqTOuGNgXonb$@-jqQM zX!^UP&?7I}cCel}$V;(b8Q$hh*9PLgN7Xh=_NZovF6=iCZ#@u(;`G29Ut6V^h+U)9 z_6`Qa6YU$x@yU?>My-$c+n!)xyz&BN2w1z($>DCk1&a(PZMkO4?=^;PE6E<{*?fG( zM(rrt(c+#xbJAL=PYcy@40cmFJv=>|hV8I}`$xDzDh&b0OVxbuzzZ7VqMVeUSc6-W zT_gz&Ua$`-=wlc*$2-GvgybgDQk-$o)ri+KzPozSB+y{M#h|H00-w~9xRAVPv61-m z(GYZ(66ZUho4sX-`S_Xov>HxhsB`~I@>x*BbrBebyWY!=Qv~^q` z>XUi)!s>CcT(L;r54uyXY&^P zQ`5fjn*Y0Fy!$|r?54&}4R_Wy2H*1x9JhAx*^%9m_R_Nt*`mJ=1uS8om-Dmb31

  • _{zDz&p>3TDQc)6hETbC-{f_tzLHj$*#VYkB| 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 diff --git a/excalidraw/excalidraw-app/build/fonts/fonts.css b/excalidraw/excalidraw-app/build/fonts/fonts.css deleted file mode 100644 index 166afd8..0000000 --- a/excalidraw/excalidraw-app/build/fonts/fonts.css +++ /dev/null @@ -1,38 +0,0 @@ -/* http://www.eaglefonts.com/fg-virgil-ttf-131249.htm */ -@font-face { - font-family: "Virgil"; - src: url("Virgil.woff2"); - font-display: swap; -} - -/* https://github.com/microsoft/cascadia-code */ -@font-face { - font-family: "Cascadia"; - src: url("Cascadia.woff2"); - font-display: swap; -} - -@font-face { - font-family: "Assistant"; - src: url("Assistant-Regular.woff2"); - font-display: swap; - font-weight: 400; -} -@font-face { - font-family: "Assistant"; - src: url("Assistant-Medium.woff2"); - font-display: swap; - font-weight: 500; -} -@font-face { - font-family: "Assistant"; - src: url("Assistant-SemiBold.woff2"); - font-display: swap; - font-weight: 600; -} -@font-face { - font-family: "Assistant"; - src: url("Assistant-Bold.woff2"); - font-display: swap; - font-weight: 700; -} diff --git a/excalidraw/excalidraw-app/build/index.html b/excalidraw/excalidraw-app/build/index.html deleted file mode 100644 index 493fe11..0000000 --- a/excalidraw/excalidraw-app/build/index.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - Excalidraw | Hand-drawn look & feel • Collaborative • Secure - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -

    Excalidraw

    -
    -
    - - - - - - - diff --git a/excalidraw/excalidraw-app/build/manifest.json b/excalidraw/excalidraw-app/build/manifest.json deleted file mode 100644 index 374d426..0000000 --- a/excalidraw/excalidraw-app/build/manifest.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "short_name": "Excalidraw", - "name": "Excalidraw", - "description": "Excalidraw is a whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.", - "icons": [ - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "apple-touch-icon.png", - "type": "image/png", - "sizes": "180x180" - } - ], - "start_url": "/", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff", - "file_handlers": [ - { - "action": "/", - "accept": { - "application/vnd.excalidraw+json": [".excalidraw"] - } - } - ], - "share_target": { - "action": "/web-share-target", - "method": "POST", - "enctype": "multipart/form-data", - "params": { - "files": [ - { - "name": "file", - "accept": ["application/vnd.excalidraw+json", "application/json", ".excalidraw"] - } - ] - } - }, - "screenshots": [ - { - "src": "/screenshots/virtual-whiteboard.png", - "type": "image/png", - "sizes": "462x945" - }, - { - "src": "/screenshots/wireframe.png", - "type": "image/png", - "sizes": "462x945" - }, - { - "src": "/screenshots/illustration.png", - "type": "image/png", - "sizes": "462x945" - }, - { - "src": "/screenshots/shapes.png", - "type": "image/png", - "sizes": "462x945" - }, - { - "src": "/screenshots/collaboration.png", - "type": "image/png", - "sizes": "462x945" - }, - { - "src": "/screenshots/export.png", - "type": "image/png", - "sizes": "462x945" - } - ] -} diff --git a/excalidraw/excalidraw-app/build/manifest.webmanifest b/excalidraw/excalidraw-app/build/manifest.webmanifest deleted file mode 100644 index 332f703..0000000 --- a/excalidraw/excalidraw-app/build/manifest.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"Excalidraw","short_name":"Excalidraw","start_url":"/","display":"standalone","background_color":"#ffffff","lang":"en","scope":"/","description":"Excalidraw is a whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.","icons":[{"src":"android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"apple-touch-icon.png","type":"image/png","sizes":"180x180"},{"src":"favicon-32x32.png","sizes":"32x32","type":"image/png"},{"src":"favicon-16x16.png","sizes":"16x16","type":"image/png"}],"theme_color":"#121212","file_handlers":[{"action":"/","accept":{"application/vnd.excalidraw+json":[".excalidraw"]}}],"share_target":{"action":"/web-share-target","method":"POST","enctype":"multipart/form-data","params":{"files":[{"name":"file","accept":["application/vnd.excalidraw+json","application/json",".excalidraw"]}]}},"screenshots":[{"src":"/screenshots/virtual-whiteboard.png","type":"image/png","sizes":"462x945"},{"src":"/screenshots/wireframe.png","type":"image/png","sizes":"462x945"},{"src":"/screenshots/illustration.png","type":"image/png","sizes":"462x945"},{"src":"/screenshots/shapes.png","type":"image/png","sizes":"462x945"},{"src":"/screenshots/collaboration.png","type":"image/png","sizes":"462x945"},{"src":"/screenshots/export.png","type":"image/png","sizes":"462x945"}]} diff --git a/excalidraw/excalidraw-app/build/maskable_icon_x192.png b/excalidraw/excalidraw-app/build/maskable_icon_x192.png deleted file mode 100644 index 321f0bb7611140dc06ccaa5bed8557dcf3d74a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3639 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 diff --git a/excalidraw/excalidraw-app/build/maskable_icon_x512.png b/excalidraw/excalidraw-app/build/maskable_icon_x512.png deleted file mode 100644 index 0a620acf74b3f5959544b6305b5fcef8066d024b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14181 zcmeHN`9G9x)W2sM8OoY1VFoF(w#aUfsALI6*?9_Cv+pyKCA$*JUZEa)*|)KTEFpw! zV_&lG!z}lEd!Enx>-z`1pJ#rV<-X>eYdPn8&iS6}rJjx^13foA000cPZ>j48037-V z2aqSBw_TsXBj^q0uCJ*E6!q{d0{|Mht*&b5W4<XYZ~-{$BY~Qx7`+{&Gl_+jYpEp#JniA0RcI^P%0Dcot`}n|D;ByzNHh+BBhh{A!FWNSCQ` zNS6-_RtkXgC~CmZ=c%cg>B>h$PK8Iy4|2|+fje=`BxaQ?e|Ywkq{zN|BlHZVBO@c} z(R&8Bh(H2wk7Ej(I@+idEdhZk z`S|P6ne>0sy|F=l#HIPcg;D7{IKb{&$+#L2`~`XX)UH}K;me4wuQrhQ=2VXH4Iq*A zWyl(F%_SqF8Eci@w}L18i-s}9hK~*FS}G=@s1>o~Q2fflB=!dxOi&fxoJ6PutNtGN zxEX)6``SgP661K5o1mb0&Dq>{diUs@Ek93(0%fjGUTR?l&!7@I`-DPh} zuRFQm&IP2kU2U!h+{CFxw8>=v5K_{1fS}hKEQNwR_+7{=K%_des8WZOA+TO`iRNq}X zTm#70HhBhcn~rT9RBN1eQmPYLqX^RPUzqHnu#vk;uhI1B6cz8i0F1Rt687Cs!CG2o z2+E{=j~B=kHHC;*n=TrsxNkSSaTX?a0Y~V*E9T-B+CUl41WkjsID+TFX_V4U*B>#T zTf>GpOg}t0z%!jX*jLuCbbgvw`&v1WwQ65@;cF)Fz5UCdj0FxjV@s%kARkvn@A z**cat)&8}{BgY-sc6H3*glE0ERkUlfE{-L>SbAVWWArY4kQ~6>WYqsk%6ZaG_(-W} zkU%d1D`EdFPZ9$DM2}r~pj$sbe1)NeBjQH%5Nr2vkT6*jt8y_@bAI<4^2klhx+4LB z#0f5QdTms<2DMyk3`dbm-(BscEt`(9?XVBKQCo_ZQY*1|zwUdXHOTyp`$c$GnsK5f z9ZXM+jlR@seOe(v<>P`UfcGQz^UfDHkTVAc#_(dSG#ol>$yw41BS9WRgqMJEZ%Gax z5|{M8x<9$v6KJWkT3Z3s_?eg*rycBCG|ijAlUAF*P*i`f7a>UFx26d{@IK^;<(=M! zn7Yx&T69G2DSc}v3tga$m(V)-gBQtG!B~DpQQ`Ck9`bm9+xJZVogrvh3<-xcPSY_u z7k#ivm{b;BsC$_oX5<%a0EjY-YdkpvoC_{2AFJjcDPcsf7J{20#SWfM{p)&z1V2*K zazF;wnV*{_UXmO}+9{1*dkI7c{c86_sGy$3?z=gs;GuP1?ty^j#dUR+)785Uxf-ec z{sULSa5gv_;XQW-Sf6ge2gUSr3#cJjqKBAk;*C?1+%FnaD3?S;$9zAO57yEYYTsY3LD6whF&7|5v8hV- zGlFLge&?|p&hZ4A3N|;CC}Ey(U6;)C9;Q4xaDS3iJQ2e|Y-O=~eAzy&^0C<-79@ZY zUFabm2zF%Iuy18HocJvr+0;szM1S>S)m6lr46Z8No>7umxdYEC@ZoV{fVp}g=wT{hN7eFmWjb8VY~{M1&$vl{Qlk~FNZORdqz8e@JNao6DWRgvF`l`%HBoo&Z#8F*Hxu=7+4vFZM2qY^K1nPENe@mKWU0>XlfLJw7eM7Egcj@4z1Q+qPztIii2`}>$-y)S=n z;IFw?)J}Q>6*eXgy$F@Ugt3uzEn0Z!th$K;tIw%4^~N3X4@3}@Jni`{mq4=dIM0D&b=+r3#)>7E)jq6o;)U@2E+7wB zZ?8#GU;)b2{{RY-;t2AumgMzZ7&(c>&I}edyD;7H?eNEW|JSwoJEH9$-__H0WkDc3D%Tz{d>&4uVuv*Qn(Bhq^Og+FY zpBVSJkYAx50qa{bnd#ucINW@ks3DYD>o7adLq zp8jVcr`l|+O8>J?Wxh7zo5azn$t2mw*TmWaTz9?>7+FwzmzUQp-m#Ze01FforyR(X z-rRDYYtK2H&@0K!rM-S7C(8N8y`!aB3$~3FXq7oVBwdE6@BpR;8r8l#&cm+^S}z8M zoMZ(UPD)p5xwq8mJnPav^2O$0N{&}7$J)U6a5NZmIXWa0S|RptO5O8Ojiidh{Qea- z7+l5NR7mO~(0pTefB*NdeF1yF*3E(j=GyMVwH5-3y%wIgBJME5+yz{patn8p@Ovw?H+k99 zkA^Uu1wz(#&l<1Fl$=0c?F*|B1i0xJl8VI69!>Penv<0E5vE5Mz8yYfZW%usXX)4c zCh5J!q>Q*QExgLj*bLe9_Zs>2+rS`8UQ1z`0?Vdri~JRIJF^#kk;sk)AX`bjOhI^1|68!ObUWKc?Av z#UCzb`lU+pVU2b*OOd$2@B2SvfhED7{Q5FROX+4u-qm{}&r98R#trh0LS@!AK`gOp z_&3>f?5Fu6Az4xB32o!3*wb1iSf5wGS3jfvI_C%NmsTBDXi4J{y@Sl4RJXZ4|9C!; zX$5wNRe9E<;zU+6W}R320^s$+j8u5XuW`7?t&n0ukE@=^mAAh%GrwW-UlFUbIKH&C*YkQ?`Y`jhZO6eId{ z39I$&8fP2p@OQ_z7tannG@@li1B@>$#tO9pzW-`-Evz@e4CYP#wYa~>G`4cbpQL0x zQu|H%3I|X`ad5yx3kiz;>T5i6Ln77vjYrx1_`c~Dlgr@Z*hHAsKC5PEEcZTjGX%p? zF0>hu5PydnopN{rvcF4W0(zrklLE8ns(kWiu2&9&^#>NU-cvuM=ab-^_T*So?M?@0Kv2}vLB$WfvU8^{_?4M{iQA)Pz7^(q&L z9ie0C>hPRrMgyHMZ%QX6?&lgXRI!ISUp~MXk#DdBQerqa*um^iiHh_d9|7Uzv}i$1 zwFe)oa}}U;+w0_H^V*$2l0)!XB9jSQd38eCv^u`}Cbs31%4bxQ+@BwnWrD%tfa9Kh z{IDb(E!ivKca@>UBBfH;&fVh6x!kionm%m{>Ij~4-vzY)s;?`6pXhL(U ztgr##_6Uc}sPz)q9|>NJ!)Ge4UPLCm3a91`iHL>OzgM-#GC@aze4?pMhl_olKJcqQ zOws-5!5s^Kc5uq2YFMfcbN{Xb_ug-RYV9?vvPv+ATwh`%2ZLM6T@}~KtL<$_I)Wu~ zz{^_u!0}Cr=@x2CZ}i-H4p+E6&NZm%$B$FBADdYQ1e)3_Cxcx5{79>l5e%>rt&!9! zI#{1NSKPCi2wKABjCKEE@rBYw4aYE=utk%RwpM)E;aZB_>U~5UYx68Wb!X%e!1bEH zhz_bkeB~MqTOPEMe=MhkeVKmRgl2zv9!s=3W6(ApX48Q9}~2 zq(IHD$NYg+jc%$bjN}u03yDm|ZPyb$s($px)1U~x2fqxM6;d#~AQ>DfPU#$6DyFd)^ z{or8ahAu*d>E2|Y<^bS3<$QSqW7N3FL5X4F`TN-8&VorUAIyUg3)Z4HZMs z!i9ahzvY6uFmaWKU?Ek1Y%LkElc}ind%|sbc6~g5U@;ObsdD{8FfrS$6l3)?Q{n&? zz?Dd|mqV<8kVcMLYOMKLvvXh4cBsi3me#R{(xC>r`_Y8$_V;6CtkPw%4t;pmM>|8u zC;?Vf-S`f5_yHMv)FFd8JISZ3l+y4r&VDFn3|qv$()vqjpf zo}cbef{uk8F4Ov%9h_yFPpJ_RmJ_&pmIKIO0^>qe)nz19r(&UufaME|?6yalqmJXq zz4aMP<%A0tW5%U*4vG`kR7@=&(@tjlBo&OAmKlZc%+4~-wM)2Bac?||TI6(4TQNg; z7b8ej8=7!e1YJl3`J_jfixB28lzTbWb>^jLw&kzzeeU8D;?81EB7~JF ztiA)5q?RZwFp(7fuAZb%bL@Eb`H(|?n-8VzCftnniZ=P{Hxn^gC9}7$_3ft+0 z--<7t!JGKm;(r?Q#Z-caL|w1B3C~-A2j{j8FQdRzCH}Cuwzr^y*mbC<^LyR46?^WX z^nG$KXRth_IK~*YOapU0PtnDh2;#inB|4O+2^yQrb$ zy1o67ffh~4;bnAw6u%0%<1R_S9k&BRhCR%}_gi3;?x-A6g{m znin$z{pp{(66bjy{~gB~pHJpXp~plV>G=P=UpdgTMrl3@T$@2)VH{_)cXW zTE7VaSyUMbik;h#RF}sN2S>D@BEk2A^5mJV?+N^1OUuu47(!)uT5{}=b(m&OjCy&D z(sOV$wr=FrWBz45KmzmRuRL>?hvrZa&I%LubetVL*MCoTe|()&dCk88B-P;trS7{K z7Tl?Ixx0G$Fqxx#e~lj)jeEAomsBF_+B<{NIGY=`7dVyIW2lVDIDA)hjh%Gq_1xCa8iU!pV%PJMq!UR3Ya6VCnC zL|if&qx`wOyLBCtPhNRxqMO7DDBY}Ou{dCZj14Sb3mV=(3g3LVWueK+^!~>sP=4lD z{u_i!aYFIkPu}C9WPq$5NjS%J4CzHs0DgOzG6^<+sgs>x;)8Zms-= zGU3G~nFZ3QCv5*nCW%?0>M9$ULX)PDGRuJ!6Ho!fn&)S@ksnXLU8K(aNns<4#zaW*dJ_qAa3++@J+ ztHU5VeQD?@|7>2SvIdWc1S>^iS5+}hs4+@s&q_%2 z%BJUC?eCy%w=&OFpy*o?d1nV^*ud>Ga&ui$YF8_+FTQ1&H?Xu4h1iq_0v&Pr25>7o z<+|#Bh{@w}$!}$iHZMHRyhqL1xznn{9ISRh{B>FHVm|V;gL+257R78m8Y_2m?vkLi zh9y6gV(?2P3rgLzd^!>&%-xbo$(f!>42=>fWeR3)M{{7o)&uXcE8!OFp&v*-vl2)$ zWK8i4$b$1yGPbD6(|M8Lq1O$6iqT2SmIbS$g+dFA6amj~V}{a%$bi^-1sN4f=Mm-o zL`*Aw{5-N1go8Pm=|eGxgZw8)>BeC@z z%=8qWH`vW@0oeMjzYaa2$DSHRDpRqIgXcbOl9sG}YC8fZ_ov2{F+0&OMd+`)y-RJ=H+7B?GnPP;0^a6Pli8n(^Ck zXnNrv%(*YP+81M8Nu!!pY@qzBmH;g8Gwa97kYgw(`8|zq9511ai(nUB;v=!Vx2+oR zv9hICBwh4LikZI{a!B2_`PRG!@up*?zua393z1l^3yke88BC(5k?8u(^Qo^a2lO zN~?KKuvblnzT_ZzvOLkzfLv2RwYne>p3HdkQf_7#n)E_MYtVdK*yDDn;*7P~=%Har z5v5xBfDp^E`^VM_@;BiW+uXZ_KZS=MCGnS_AS=ZTts4plYtd4Ksi7yu`^7{lf{;)x zXuFcF7I#&q`c*Lot(XEDABY0S!*&-eoFyKv8aX=}KR5|_V6<$>3;=g;RS;u~5}`64 z$)W8MD$7PBSrfZzAX43fml~9g_vq_|%x>UyJAs1eIUJiC&kH6AJqlaoAiZIseJ}_m zkDml}3c7Du77@c+tkht11MpeGVD{zxBiqxra*NbfC;h?l0Vo-N>o>>%cY*@*XsqN$ z57JbAY0-$uqGoIbL)8`+Fd%nniAGU6qv)bKp;RRiCCKqaK+0PgE6f*(z3`pZW7e2( zBCGcC8OXygG=G1|1$XzSK(wLiU@G2#YAw9s|KqSII&fp%89As8%}F7sAnv^DGUNx6 zByEO^3iFbzyE@4aS1ZrhRoX+8OP`0294E5-$M5hrl*Loj+(?i!4qq#yhFg7x*uO-z z>iqt^d3I*CXAGKfh3zUMEkw{%WL|hN zfq^0+J1GC!Y6Z&KZVm1?%kPB#8m40ghR;^NSA)B^>_=iln-tS^Oi(NSPBEIyFssrf zBG;1q?JwNHC}`Z5Y`No6(+pS0V?-J0Zz~amFZ$M9Z>U;29=rFOzHC32UV(j0%W7%a*5;V z%wOvns&Ea6L3Z=IZ+~`VTyfoSi^(uI>`nb)G9;&HSNH5TUOf~kENE+-po0T$+2%cl zAtV?Ub;OSh$fuB_(R3#4VEGNI`?u$frw3rFNFu+UASABsQ|X}#BB`!glsbQ*=fTdO z>M*k8OPu#);2ztzC=|RL@`tBUTu@cm=4P3ny*qw`nylXFzky#EnQGhqLhFsh@x33< zigTDGS8}sDGw&=&IFedw+CAT_23pY5f-R|)Q3uVqLNlHax<)$a!6H#X^ z1hUe`t#9){2on1`pPoO9$jKVP{=~7o9lLT!tQ6m_|o7}y8GFp&vL;2TXMp7BA16sd;ZKN0QyAs5o59r{(rwmF0f(OYs8lghP!8V^(PGg$WD3!ILn?br^(z6C~S z*AuifPQd--D9BQy671t&H@@OGZ^c|ZR16fMF7r4s-G$7K4+22GSijrnnQN<7>WJ+X zTGzC`BH<==t!<2?aI4)EmJdi7#`+gXh?qZ+xd_zg2G0WDIG(kFRa`$N9&YuXd5!*S z^0+54{ULeB;}a)>12O@QMmKw9cqCRi$^W3NbvdZM{xHs_;@40|{Z2FGk03VxI2bX#RZCEGf;f=0F%A=9_iq}ge-Y5-*<=nII0C zv~s-dR-9a;2pgDJ+55z4EWA(I`Py<=VgffgCTCt}k+e*#3KtdUSrO?=_h-mh&vxGP}nqtZyg zPUscQA&UXIm*DJ&9UBu27>)$Zqk63)@o|cj6c(?Ot6RfA7nP7W<=KX}(6c9YMxLey zTNh7mg!@T8tGLv0tq3Z-^~}C^O3UUDEyhkhD5~5uzRm`gv}2!ULZW_HPm)jkN>Thf zJV;sVAksiNYR^y}!mnNAeQS&E8>D~{i!Fk3)eR^|)hEoDf+EG%QTVi~v@`y#4y106 za8}61q0Xz@IX3Xh37*rgEz23S!(rqRCWw z;H6*2S5IsiK!cmeq><0rP^`9nx!de{u+V$Yp`or8V6nB?kd9} z1JIegElp8z+`ya@~HkyxmB8S~EB7b1H zXko0smHDmULd5KvQaIlFG#HuZeuKCyQpI5vj`HDrQ6bYIV6LsXDhGrK-G8>TK$fDbCr9D z#>sD@RThq0D7@3RqBEZwDetv;BEdoD=vR~EJao_eedYvpm4-4=tD}pVGJd14pl~5H zK~H)>?qV2)_LV%f;;)fpPHz7IGnjd7jFv5bk~JQY=QKcGZrhI8(QIaLMw+i1>r-FOZR{k;$9!buJCszD7U5U%A6LzL`~2$GUtf= z2RG>RL^8mq;?!Xccr!kHhF#-Ch9cEjsHq`!_=@zPcVg^L22|MuKJ$)c0a{Gg3{@}n zWOp*u7?Mri&ekWohaic6n83h2;&SJW`p<`jbDg>I@@r|p(zQ(kXN9=>w7;sLp<^q7 zP9!_7Wi-6sec%Az|GRwh6=0{-oIpLa)II-+S7PNeF)r^!ZVx@zETd_UuHra9kM?-; zP~(N>lnFXGTA}|){#vGmPPYU*$oIh0LV-h;?aSDh?L4ADK_Z zz`dpTtcDq-d2tw;_6c3u2BWLINyA@sOaxjP$-5F?49R(N7GwPJlJbGO=X;MLc7!D9 z068fw%cn%o6igYrsM0ew(8G&^HuvkfN<;FFYe79HJZm56>OLP4tkOwJ%#RDu>FV$xJ;W$>nOY}Q(Wh|aZRBWD@Sl>r|sPvsdaT)<6547 z`=K=j;x$q4=~6;sG(0z&t3RJ<#iZN+EyZwgX3wYb%?(_?d*QDngi3zG#CJ*elEcPJ zR9|BW_S|6qkrNotC4IiA&Xv|kaNAn{`Avih-MvrUC*4a{PUJ$kBD-#7uLIF|-gw_p zawQELSXVuy?}AX#`Z@kHIfrSSS6h_&Ae&fsKy`SXC&A$o&~#GbM~5mxu|Dv+FUO6h zB8}8sqUMJ`+Yk@ZRkHX@-jnfq@5IV#>$1aGo0Gjxg&0%?I=L5yPSW8x-usj=X)RhZ zUH9G@vv{-y{%psOkg3kDHU1x%z*cftu|>n-QqDkLX28I=L?HX@8Q)=Mzzuy07Ih-i z#*qB=qd}5R(p|dfn~hLWr5P127WQQQ8=JwCECz2);2O_(y_v~&=Y)|d70>rG8LD;}_+%o&StiYB<>OT2L3twiN)-cU! z(!4|W<5rLuklz7^XXV=6w_fR|bry0qyXOAqg zH!Qpw-Z=8Y^xQnSOPxAQjMgL|ZcDv{on z!!AYKe9Guu-3=;vy++^7*Ky!JttqY%BB50tt!h|ym<&5>Jg!NY$)uZuO?>0neWi{I zP(a_~t`mawS?Xzde;%wJG<4=``#jfa&nc?Y9=`gmqGK&5pi8@qKtwIlF8c)*AN`2+bah#*% zeHqZxZ<|=_DTD7DefcUid#%C-o;B8&JnggEQgPY=Tc)-pDK6l<_ELPwUz<*t>N}fX z`OhsiSJ~hX3;G7UMr4DIU%w=-ONQ&xV<2}=54k*m)VlS8`cKd2y8;H`22lXV4DTg) zH7YGX`mKEd(M7dM>&bV~ zUL(?nCo$J{(dJqu_-5>+lpT0( zR)^eY59oTpl<@X?>Rt3=$;t?lX=X0oj(8$iND!9&QZOi|=if_KwFj5rTBwR-X9zLq zL)$RS5oTPUh+1#|&C7xrIuLFVfN1gSEeBau^pkg;hgAJM1Qb5$?pd~6f?sADuRbSC z&F^ziykVJ=OAqoWvnWoUB>rp%U2Cd+VG0OFh_~S3gP)v3#|uDk!85n_ET$2C@;US7 zeY`^%nUn!-mXdw#a4sTAjM0!R!w}lTqLKxNG|;G8&s>2I4?&*R&J10$WP>EpOFKay zp=f5!Qr@BIfY{~_o96&M;pS_7tQ(<-)X%mDPdeN#uhNX_#3 F{{Zt+x4!@Y diff --git a/excalidraw/excalidraw-app/build/og-image-2.png b/excalidraw/excalidraw-app/build/og-image-2.png deleted file mode 100644 index 4fe1c83cd048894553f3fcbf20a8f0b88b5d12d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74022 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 diff --git a/excalidraw/excalidraw-app/build/screenshots/export.png b/excalidraw/excalidraw-app/build/screenshots/export.png deleted file mode 100644 index b25253a71dc38f42f3756b4f2dcfc1d015ef7f49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25959 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 XDUfX6Dcm3a)PSO_0FkeeGYkGNwyi1o diff --git a/excalidraw/excalidraw-app/build/screenshots/illustration.png b/excalidraw/excalidraw-app/build/screenshots/illustration.png deleted file mode 100644 index 00d8ee6d003bf682a5bb550cd1934d29d01ddc5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48095 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 q^r0yx`;EQyxSXnL57_AB~M;nhtUC~>hD4iC9l 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


    #NO&!rRhP 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 Of>V?Q%G64k1^+iNjPY&& diff --git a/excalidraw/excalidraw-app/build/screenshots/wireframe.png b/excalidraw/excalidraw-app/build/screenshots/wireframe.png deleted file mode 100644 index 8d284cf8603ee79baa89d4dc62b58a102467dffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27243 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�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 { - self.skipWaiting(); -}); - -self.addEventListener("activate", () => { - self.registration - .unregister() - .then(() => { - return self.clients.matchAll(); - }) - .then((clients) => { - clients.forEach((client) => client.navigate(client.url)); - }); -});